pax_global_header00006660000000000000000000000064144172300030014504gustar00rootroot0000000000000052 comment=9e4737f2293c0d127bda92e5b01896df10571424 libwmf-0.2.13/000077500000000000000000000000001441723000300130475ustar00rootroot00000000000000libwmf-0.2.13/AUTHORS000066400000000000000000000000751441723000300141210ustar00rootroot00000000000000See CREDITS file in the same directory as this AUTHORS file. libwmf-0.2.13/BUILDING000066400000000000000000000005041441723000300141660ustar00rootroot00000000000000RPMS If any files are added to the package, or if files-to-be-installed changes, then libwmf.spec needs to be updated. To create the RPMs, I use the sequence: # ./configure # make dist # cp libwmf.spec /usr/src/redhat/SPECS # cp libwmf-0.2.0.tar.gz /usr/src/redhat/SOURCES # cd /usr/src/redhat # rpm -ba SPECS/libwmf.spec libwmf-0.2.13/COPYING000066400000000000000000000431101441723000300141010ustar00rootroot00000000000000 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. libwmf-0.2.13/CREDITS000066400000000000000000000026041441723000300140710ustar00rootroot00000000000000(1) Export to PNG and JPEG uses Thomas Boutell's GD library. http://www.boutell.com/gd/ (2) Font support in GD and in libwmf is provided by the FreeType library. http://freetype.sourceforge.net/ (3) Also deserving of credit are: (a) allegro http://www.talula.demon.co.uk/allegro/ (b) Gdtclft http://www.tcltk.com/ (c) wine http://www.winehq.com/ (d) Bjorn Reese and Daniel Stenberg for trio. (4) Caolan McNamara was original author of libwmf, and although I (Francis James Franklin) have reworked much of it the core of the interpreter (i.e., the most important part) owes everything to Caolan. http://www.csn.ul.ie/~caolan http://www.alinameridon.com/ (5) Export to FIG format (readable/editable by xfig) was added by David Airlie, Frédéric Vivien and Martin Vermeer. http://www.csn.ul.ie/~airlied http://www.netby.net/Oest/Europa-Alle/vermeer (6) Bob Friesenhahn linked libwmf into ImageMagick, so now you are able to convert WMF files to anything ImageMagick supports using the handy ImageMagick command syntax. (7) Other contributors include Raj Manandhar, Steven Michael Robbins, Bob Bell Albert Chin and Matej Vila. Also, Benjamin Geer, Peter Ohlerich, Steve Oney and Michael Cree have helped with debugging. (8) Finally, special thanks to Dom Lachowicz for all sorts of reasons. http://www.seas.upenn.edu/~dominicl/ libwmf-0.2.13/ChangeLog000066400000000000000000000600121441723000300146200ustar00rootroot00000000000000v. 0.2.13 * new release with various fixes v. 0.2.12 * fix abi v. 0.2.11 * merge in fixes for libgd CVE-2019-6978 v. 0.2.10 * fix coverity, clang and shellcheck warnings v. 0.2.9 * merge in my fixes from fedora libwmf v. 0.2.8.4 * 3 patches from Caolan at RedHat: remove unnecessary extra linked libs; remove some warnings; rh154813 which (same redhat issuzilla bug id) I theorize fixes some upsidedown wmfs. v. 0.2.8.3 * configure.ac: Don't use -lm on Windows. mingw has an (empty) dummy libm, but it confuses libtool.) [Tor Lillqvist ] * libwm-config.in: Make installation-location-independent when run in a Cygwin shell. [Tor Lillqvist ] * src/Makefile.am: Don't use -lm on Windows. Add libwmflite.la to io_wmf_la_LIBADD. [Tor Lillqvist ] * src/wmf.c: Don't use hardcoded path for WMF_FONTDIR on Windows. Instead, assume being built as a DLL, and look up the DLL location in a DllMain routine, and use that to build the font directory path at run-time. [Tor Lillqvist ] * src/font.c: Don't use hardcoded path for WMF_XTRA_FONTMAP either. (remap_font_file_name): On Windows, if a font file name starts with the build-time prefix, replace that with the run-time installation prefix. [Tor Lillqvist ] v. 0.2.8.2 * proper freetype header inclusion (c. "war") v. 0.2.8.1 * security fix (Artem Frolov) v. 0.2.8 * update wmf2x & wmf2gd to use wmf_display_size() (fjf) * ditch wmf_gd_image_free(); api_destroy takes care of the image (fjf) * add new wmf_display_size() function which returns integer size of image for display; io-wmf loader update (dom) * add two convenience functions to xgd device layer for manipulating GD image post-conversion (fjf) * give libwmflite its own interface/binary numbers (fjf) * change gd.c (add _tpixels member to gdImageStruct) - now allocates contiguous array for truecolor pixels (fjf) * gdk-pixbuf plugin added (dom); config update (fjf) v. 0.2.7-2 * fix updated Fontmap[.GS] detection (fjf) * add some more paranoia into the font loader (fjf) * change a couple of C++ comments to C comments; configure.ac|in corrections (c. Olav Kolbu) * fix non-XML case in wmf2x.c; simplify freetype2 detection (fjf) v. 0.2.7 v. 0.2.7-Darwin * update Fontmap[.GS] detection (guesswork, really) (fjf) * don't include trio.h when --disable-heavy is used (fjf) * remember to update both version numbers in configure.ac! * move player.h's defs into metadefs.h for recorder.c (fjf) * add some missing "extern"s (c. Jeremy Shane Sanders) * added recorder.h & libwmf/canvas.h; call it Canvas now (fjf) v. 0.2.6 * added recorder.c, first stab at a metafile writer (fjf) * new --disable-heavy configure option (fjf) * initialize default font user_data to 0 (c. Corby Wilson) * tidy docs/dox installation (fjf) * basic editing features w/ API_ENABLE_EDITING (fjf) * expat/libxml2 configuration updated (fjf) * wmf2x will read *.xml & *.XML as wmfxml (fjf) * some initial wmfxml import work (fjf) * option to write WMF as, er, WMF. or XML. (fjf) * bump version number; disallow plotutils (fjf) * remove MVG back-end v. 0.2.5 * use memset to handle varying size of libxml2's SAX struct (fjf) v. 0.2.4 (this is not a release) * fake polypolygon for devices that can't handle it (fjf) * docs update * add draw_polypolygon () callback to IPA - will default to old behaviour; initialize function reference entries to 0 (fjf) v. 0.2.3 (this is not a release) * config update - move acconfig to patches, etc. (fjf) * RPM spec file update (c. Michal Jaegermann) * gd: support for bitmap transparency (fjf) * new RPM spec file (fjf) * don't add libwmflite.la into libwmf.la (fjf) * config clean-up (fjf) * install font.h (Bob Friesenhahn) * remove wmf_api_destroy from api.c (Bob Friesenhahn) * configure.ac: define TRIO_REPLACE_STDIO (Masafumi Matsumura) close WMF file on exit, if opened via libwmf2 (Bob Friesenhahn) * config updates - no more lt trickery (fjf) * major internal reorganization to separate out libwmflite; move font engine behind user_data handles; addition of wmf_lite_create () & wmf_lite_destroy (); post libwmf-0.2.2 versioning (fjf) v. 0.2.2 * fix wmf2x arg detection bug (Bob Friesenhahn) * added --with-layers option (fjf) * de-necessitate GD, add libpng support (highly experimental); rename config.h* to wmfconfig.h*; libxml2 fix (fjf) * release builds: configure-time Darwin-detection & lt-patching; make magick device layer optional; rewrite xml2 detection (wv); make secondary IPA functions static (fjf) * change copyright on include/libwmf/magick.h * add paranoid check for xmlChar**attributes==NULL * add one of many missing consts (Bob Friesenhahn) * add check for vsnprintf in libdb (David C Sterratt) * add 'foreign' device layer for non-wmf stuff * x,gd: better placement of text * x,gd: beginnings of a ROP implementation * change gd-layer source file names to 'xgd' root * use X-layer style text drawing in gd-layer * yet more config updates (fun, fun, fun!) * update other config stuff to handle autoconf-2.52 * update config.sub/guess to libtool-1.4.1 * make building/inclusion of GD library optional (fjf) * acinclude fix (Tomasz K³oczko) * up the version number (fjf) v. 0.2.1 * radical IPA fontmap rewrite; GS Fontmap used now also (fjf) * clean up GS fontmap parser (fjf) * add missing `%' signs in src/ipa/eps.c (Kees Zeelenberg) * x: flip arcs; added a new example (fjftest.wmf) (fjf) * added GS fontmap parser; GS font dir configure option (fjf) * update config.sub/guess to libtool-1.4b * beginnings of doxygen documentation; release FT library only after device end (fjf) * move ltmain.sh to libwmf2/patches; autogen fix; add 6 bytes to maximum record size (fjf) * configurable doc & font dirs (Matej Vela) update spec file; make $prefix/share/doc default doc dir (fjf) * reset clip properly on RESTOREDC (fjf) * fig: substitute patterns for bitmaps when filling (fjf) * move palette_create to meta; add oid/obj diagnostics in meta; tag invalid SELECTCLIP as non-fatal (fjf) * (empty) framework for ghostscript fontmap parser (fjf) * more macros; use in the interpreter as well (part 1 of ?) (fjf) * fig: 2 new options (--maxpect & --no-margins) to wmf2fig; make build of wmf2x and wmf2plot conditional (fjf) * isolate WMF_LDFLAGS in src/convert/Makefile (fjf) * make inclusion of libtrio conditional (fjf) * fig: use explicit image scaling (fjf) * if image has a set size then (new fn) wmf_size returns it (fjf) * magick: images now cropped automatically; fig: option (--image=) to save images as PNG or JPEG; * svg: sodipodi-friendly text support (fjf) * svg: option (--inline) to wmf2svg to inline (data URL) images; various rewiring in svg & ipa layers + base64 option (fjf) * added wmf_ztream (compressed stream) functions to API; svg: option (-z) to wmf2svg to output as svgz (fjf) * fig: re-enable BMP support, but w/ cropping (fjf) * svg: sodipodi-friendly image support (fjf) * fig: re-enable BMP support, but w/o cropping (fjf) * improved color table support in IPA; more DC macros defined; fig device layer: updates (macros & wmf_stream_*), minor fixes, eps code removal, general clean-up, BMP support disabled (fjf) * use of wmf_stream in magick device layer (fjf) * fix gd-clip-flood; use macros to access dc: updated x layer (fjf) * check for vfscanf; use of wmf_stream in eps device layer; added to-memory `sink' re-router in gd device layer; use macros to access dc: updated eps & gd layers (fjf) * fixed bug in wmf_[*]alloc to do with zero-sized requests (fjf); (thanks to Michael Cree for spotting & debugging this) * added functions: wmf_detach, wmf_stream* file/memory IO, & wmf_printf; also implemented internal string buffer (fjf) * switching to autogen.sh method (fjf) * added trio suite of string functions; minor config fixes; ==== fixes to enable building package in separate directory ==== update to autoconf 2.50, automake-1.4-p2, libtool-1.4; (fjf) v. 0.2.0 * updated to gd-2.0.1; refined arc bounding box; updated docs; added support for non-system XML fontmap to read in addition to system XML fontmap, and added libwmf-fontmap script (fjf) * added Magick layer & ditched (unnecessary) support in configure; clean-up, moved libwmf.m4 to acinclude.m4 - `make dist' works now; updated README, added BUILDING and libwmf.spec for RPM generation; added support for images and text to SVG device layer; (fjf) * added --wmf-diagnostics option, which is now distinct from debug mode - allows examination of metafiles for parameter-list lengths etc.; separated meta stuff out of src/player.c into src/player/meta.h; tidier & more seg-safe reimplementation of parameter access (fjf) * added SVG device layer; basic drawing support only (fjf) * Fix to the drawing direction of arcs (speculative); arcs added to FIG (fjf/mv) * added wmf_gd_image output type which creates a gd image rather than PNG/JPEG/etc.; added color indexing - wmf_scan now creates a list of colors (excluding bitmap colors) specified in metafile (fjf) * FIG functionality more or less complete (mv) * added FIG format support framework (copied from eps stuff) and got it to build with makefiles etc. (mv) * added ; added libxml2 support for reading XML fontmap; updated config.sub, config.guess; added checks for GNU plotutils & ImageMagick to configure.in; updates to documentation; other minor changes; (fjf) libwmf2 imported to cvs March 28th 2001 (fjf) * See README, TODO, etc. libwmf2 Branch Point: (some changes may be lost; cf. libwmf ChangeLog) * F.J. Franklin patch cleaning up header files (add common.h, region.h). * F.J. Franklin patch improves TTF config. * Bob Bell syntax fixes. v 0.1.20 * Bob Bell patch to remove ctime warning in wmftoeps. * Bob Bell patch to prevent buffer ovfl in wmftoeps. * Option scale-bmp to xwmf also. * Removed gdImageColorResolveRich again, and implemented a better solution in gdxpm.c based on gridding the colour cube. * MV: Improved routine gdImageColorResolve (introducing a gdImageColorResolveRich version) to better handle color rich XPM files. Could be improved still. * Added option scale-bmp to wmftopng. v 0.1.19 * Vivien: embedded bitmaps "stack" now handled (apparently) correctly. cell.wmf works, test.wmf appears to as well! * Lots and lots of fixes/development on .fig graphics elements output, line styles, colour use, etc etc. "Depth hack". * Added use of lpDx[i] (explicit char placement). * Better font finder/fallback routines in .fig, .eps and .png. * Fixed text output in wmftopng, especially placement. * Added rudimentary wmftoeps. * Extensive text support for wmftofig. v 0.1.18 * A beginning of text support for the wmftofig export. Badly broken still. Some cleanup and documentation in libxfig. * Fixed the function names clash of read_32ubit (...16...) with wvware. * Fixes to realclean in gd-1.7.3 directory in two Makefile.in's. v 0.1.17 * moved codebase over the gd-1.7.3, * sent some patches to gd maintainer, hopefully in a release or two I won't have to distribute my own patched version of gd. * wmftogif is now gone, and wmftopng is there instead, because of the changes in gd. TODO * extra space for XRot, probably should create an XRotDrawText. * underline and strike-through have to be done as well. * test Text Support for X & gd, with all the extras, like bold/italic/ extra space for chars and breaks/rotated letters/escarpment etc. * run purify over it again to fully debug clipping * internal resizing support, the ppm utils do bad things to the colors, and dont support xpm files with > 256 colors, and i might as well try and support the resizing flags of windows, so ill try and patch in wine source again. * 1 created a clipping wmf file that demoed that stuff. * 2 clean up so that bitblt has all the bitblt calls and patblt calls, give it a proper SetDIBits as well. Test the x and y src on both those types of call as well. * 3 create a single wmf file with the frame and fill etc regions. * 4 single wmf that demos all the pen stuff with rectangles. * 5 single wmf that demos all the brush stuff with rectangles. * 6 single wmf with all graphic drawing primitives. * 7 one awful wmf that does all the font and text stuff ? * bring gd up to speed with X binding. * patch in the wine handling for text for X, SetTextJustification etc. * extend gd rectangle pen and brush to all shapes. * fully support all dib depths. * im still not happy with the MAPMODE setting, out.wmf looks too small, but otherwise dancers.wmf and Eg.wmf become too huge, but it looks like the same set of opcodes. * fiddle with join styles and all the other pen things. * we need to get the docs for this ability of X11R6 to do rotated text, as i cant work it out fully from the wine source, implement that, look at wine for orientation as well. * do a better api for clipping in gd, see if the maintainer will take a patch for it, i dont really want to haul around a special version of gd with me. v 0.1.16 * Albert Chin-A-Young , noted that there was a few syntatical errors, missing include , unended comment block and an empty struct v 0.1.15 Sam Sirlin reports that -L. before the -l lines doesn't appear to guarantee that the new libs get linked, and that old ones do instead, so i added -L. to the beginning as well. v 0.1.14 * added patches from (Raj Manandhar) to fix gdttf to find symbol font, and to be able to zoom in with xwmf, use + to zoom in and - to zoom out v 0.1.13 * bugfix patch from Bob Van Valzah v 0.1.12 * David.Airlie@ul.ie began and implemented a large chunk of functionality to convert wmf files to fig format. I'd like to request aid to finish off this area. v 0.1.11 * added patched from Albert Chin-A-Young for configure file and a NULL check. v 0.1.10 * removed c++ comment * stripped ^M's out * cast a few things to void pointers before assigning them to userdata. v 0.1.9 * added more bullet proffing against the sort of nightmare wmf's that come out of mswordview. * some better error checking for missing fonts, (doh !) * broke tt, fixed tt * removd debugging messages. v 0.1.8 * trivial change to wmfapi.h to make life easier with blip handling in mswordview * made configure script get heroic when searching for components, checks for for includes and libs both below a --with-stuff dir, and also inside it as well. v 0.1.7 * added ability to gd to read xbm's from data, rather than file, changed source accordingly, dont need to carry xbm's around anymore. * changed configure script to agressively find the xpm header file, * tested to work under aix (of all things :-)) * tested to work under solaris. * checked that it reports lack of xpm lib, and fails to go any further. * fiddled a bit more, and libwmf now works cleanly with mswordview, all cheer. v 0.1.6 * fixed tendency to blank out the area underneath it, this is due to the attempt to paint the bgcolor underneath the text. * configure script check for freetype is in. * forced to move gd1.3 back into the main tree, as i need custom clipping. * made sure that realwidth and realheight are always in positive units. * added TOP/BOTTOM/BASELINE positioning to gd version. * added better handling of background color for rotated text. * added better handling of the two types of putting extra space between letters to the gd binding. * added text background color for gd for text that doesnt include a rect. * changed gd to xgd, make gd, gdextras and gdttf all into one lib called libxgd, then only require a client app to link against that + libdib + libXpm + libX11, and only to include the dib include * made libdib a self contained entity. * the wmfapi include file and the gdwmfapi file can be used from other apps now. * tidied things up so that it can be used as a library properly, added a make install for all the components. v 0.1.5 * patched in wines clipping for INTERSECTCLIP and OFFSETCLIP * patched in EXCLUDECLIP * added SelectClippingRgn, untested. * Added basic TEXTOUT support, * stuck in some sensible aliases for common windows fonts, still you're so much better off runnning xfsft over your windows fonts, i think they make most of them freely available if you dont have windows, check out http://www.freetype.org for links to them. * the gd stuff has to be told the location of the ttf font dir, get all the font names and fontfaces, and then for the moment use the ttftopnm thing. * set up the region handlers so that clipping doesnt affect them, which appears to be the right road to go down, i.e. for region based calls, save the clipping region, and then do the call, and then restore the clipping. * added paint rgn to gd. * added (broken) clipping to gd. * finished and fixed clipping for gd * the gd stuff can be told the location of the tt fonts, and it will find the correct font to use from the fontname. * added some code from xvertext to allow me to do rotated text, i probably should use the X11R6 stuff, but this code was available already. * sent off some patches to the gd maintainer on the clipping code. * put in the support for rotated text from Gdtclft, added extra space code for it, ttf support is now integrated into the gd binding. v 0.1.4 * purify run again. * implemeted FRAMEREGION, it might even be right, who knows. * do clipping ala wine, INTERSECT and EXCLUDE and MODE that'll give us everything except full font support and palettes, which we're going to ignore i think. * supported META_SETDIBTODEV, im pretty sure ive got it right, its a bit tricky, and win95 appears to ignore it so its hard to be sure ive got it right, on the other hand, its probably not used at all in the real world. * documented all the supported wmf operations, and they are available in the doc subdir, or on http://www.csn.ul.ie/~caolan/docs/libwmf.html Id ask for everyone's help in reading the docs and fixing metafile operations thatyou know to be wrong, or just to fix my grammer and give better explanations than what i have etc etc. v 0.1.3 * rats, my changelog got corrupted, would you believe that linux 2.2.2 still has a bug with vfat floppies, dammit. anyhow * added viewportorg, and viewportext, fiddled with a few things that should sort out the scaling correctly in these cases, but untested, and quite possibly never to be tested in reallife. * added offset and scale opcodes, all untested. * added META_SETMAPPERFLAGS to ignore. * added simple test for being a metafile or not, reran purify over xwmf, removed a few more leaks and dodginess. * added DIBBITBLT pretty much fully, figured out the silliness involved there. * added some ROPS for DIBBITBLT, extented the stretch ones to use them. * from my investigations patched wine to fix their dashed lines > 1 & floodfill & a patch for the other varient of DibBitBlt thats equivalent to PatBlt * src offset in DIB handling. * added some SETDIBTODEVICE handling. * patched in the wine CREATEREGION code. * added PAINTREGION & INVERTREGION, must test these 3. v 0.1.2 * fixed leaks and some bugs with purify. * added META_STRETCHDIB * changed the system call to netpbm to quantize the colors after a shrink if necessary. * fixed xpm importation into gif binding. * fixed gd binding in relation to non-placeable wmf files. * fixed crash under solaris, removed all mem leaks for X, cleaned up the gd binding substationally. * added PATBLT, same top parsing i believe. * added the PALETTE operands, but ignored them all, i think thats ok. * patched in some of the wine handling for ExtTextOut for X, i.e the spacing support for that op. * X polyline color issue. * settled opaque for text, not exactly perfect in the text box. * i went to all the hassle of putting in the wine text code coz i thought rotated text would work, and it doesnt ! (no in wine either, whats gives ?) * add X support for OPAQUE and Transparent handling for pens in the area of line drawing, brushes for stippled brushes and background for text (done). * added wine ROP support to X pen and brush, maybe it worksm who knows. * placed winding in the fillcode, dont know if it works though. * added SetPixel to X and gd. * successfully converted all of the win3.1 word 6 and msworks clipart files in X mode, and they all look right, my god !, this calls for a release v 0.1.1 * forgot to set gd binding to use new polygon filling code v 0.1.0 * renamed 0.1.0, uploaded to sunsite and announced it v 0.0.9 * moved out all but one reference to X stuff to the X bindings * create function pointers for all the graphic etc calls in wmfapi and * finish making size code indenpendant of X. remove X code into Xwmf1api.c * create void pointer in CSTRUCT for userdata i.e display and drawable in X, im_out etc in gd. * make gd load the image from DIBSTRETCH as well. * seperated X and gd. * configure script to get the right AR command and to search for gd * make the gd section more modular for this setup. v 0.0.8 * changed gd color alloc to the one in the tcl gdttf. * added some ROP support to gd and X. * make Xinit and gd_init into just init. * created void pointer in CSTRUCT for userdata i.e display and drawable in X, im_out etc in gd. v 0.0.7 * INSIDE and ellipse for X and gd completed. * polypolygon for X and gd completed. * added completely arbitrary switch between 1440 / 100 units per inch when given no other clues based upon the width in metafile units. * pies, arcs and chords done for X. * figured out the equation for gd arcs. * chords, arcs and pies for gd, implemented by using a temporary image and floodfill. v 0.0.6 * seperated dib code to a libdib library. * patch for gd for polygon fill. * quick and dirty patch for gd to to import xpms. * hacked in DibBrushes for gd lib. * added ExtTextOut support to X version. * added OPAQUE for ExtTextOut to gd version. * set vertical text align done. * X round rect completed. v 0.0.5 * pen becomes solid if we're using any of the dashes, but are > 1 in width. * primitive pen width implemented in gd. * implemented insideframe for X and gd rectangles. * implemented two of the hatching styles in both X and gd. * finished hatching styles for X and gd. * added 24,8,4 and 1 bit dib to xpm handling. v 0.0.4 * lineto,moveto and clipping regions done, dc saving and restoration minimally done, windoworg and ext done. * selecting & deleting objects done. * fixed it so it wont crash on non-placeable wmf files. * added the other objects to my lists to make sure i dont loose count of the various objects. * fixed which to use, pen vs brush. * pulled down wine, and began to compare and add according to wine. * added line width to pen calls. * added line styles, join styles, and dashing to pen, i think :-) i havent tested. * ellipses back in again. * added part imple of MAPMODE * support 1 pixel wide line for drawing in gd and X, dashing done. * all pen styles done in X, except for INSIDEFRAME which doesnt mean very much to me yet. all pen styles done in gd as well, except that lines wider than 1 pixel arent supported yet :-). * using flat joining for X rectangles as well. v 0.0.3 arcs and ellipses done. v 0.0.2 found a graphics lib that i can use instead of X for drawing, so that i can do it offline. began to seperate code up so that i can plugin X code or gd code easily to do one or the other. v 0.0.1 does something, parses standard wmf files, differenciates between placeable and nonplaceable. Can extract rectangle, SetText and polygon details. With a direct hook-up to X calls can draw then too. funnily enough with polygon implemented you can basically get the outline of nearly all the wmf example that came with the old win 3.1 version of word 6 that im stuck with out here at home for christmas. TODO & THOUGHTS * compile as a standalone gtk app. * divide into 2 portions, lib and frontend hooks for draw commands. * create straight X drawing commands for it. * maybe create straight -> xfig calls for it. libwmf-0.2.13/INSTALL000066400000000000000000000366141441723000300141120ustar00rootroot00000000000000Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell command './configure && make && make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the 'README' file for instructions specific to this package. Some packages provide this 'INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The 'configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a 'Makefile' in each directory of the package. It may also create one or more '.h' files containing system-dependent definitions. Finally, it creates a shell script 'config.status' that you can run in the future to recreate the current configuration, and a file 'config.log' containing compiler output (useful mainly for debugging 'configure'). It can also use an optional file (typically called 'config.cache' and enabled with '--cache-file=config.cache' or simply '-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how 'configure' could check whether to do them, and mail diffs or instructions to the address given in the 'README' so they can be considered for the next release. If you are using the cache, and at some point 'config.cache' contains results you don't want to keep, you may remove or edit it. The file 'configure.ac' (or 'configure.in') is used to create 'configure' by a program called 'autoconf'. You need 'configure.ac' if you want to change it or regenerate 'configure' using a newer version of 'autoconf'. The simplest way to compile this package is: 1. 'cd' to the directory containing the package's source code and type './configure' to configure the package for your system. Running 'configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type 'make' to compile the package. 3. Optionally, type 'make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type 'make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the 'make install' phase executed with root privileges. 5. Optionally, type 'make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior 'make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing 'make clean'. To also remove the files that 'configure' created (so you can compile the package for a different kind of computer), type 'make distclean'. There is also a 'make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type 'make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide 'make distcheck', which can by used by developers to test that all other targets like 'make install' and 'make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the 'configure' script does not know about. Run './configure --help' for details on some of the pertinent environment variables. You can give 'configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU 'make'. 'cd' to the directory where you want the object files and executables to go and run the 'configure' script. 'configure' automatically checks for the source code in the directory that 'configure' is in and in '..'. This is known as a "VPATH" build. With a non-GNU 'make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use 'make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple '-arch' options to the compiler but only a single '-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the 'lipo' tool if you have problems. Installation Names ================== By default, 'make install' installs the package's commands under '/usr/local/bin', include files under '/usr/local/include', etc. You can specify an installation prefix other than '/usr/local' by giving 'configure' the option '--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option '--exec-prefix=PREFIX' to 'configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like '--bindir=DIR' to specify different values for particular kinds of files. Run 'configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of '${prefix}', so that specifying just '--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to 'configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the 'make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, 'make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of '${prefix}'. Any directories that were specified during 'configure', but not in terms of '${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the 'DESTDIR' variable. For example, 'make install DESTDIR=/alternate/directory' will prepend '/alternate/directory' before all installation names. The approach of 'DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of '${prefix}' at 'configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving 'configure' the option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. Some packages pay attention to '--enable-FEATURE' options to 'configure', where FEATURE indicates an optional part of the package. They may also pay attention to '--with-PACKAGE' options, where PACKAGE is something like 'gnu-as' or 'x' (for the X Window System). The 'README' should mention any '--enable-' and '--with-' options that the package recognizes. For packages that use the X Window System, 'configure' can usually find the X include and library files automatically, but if it doesn't, you can use the 'configure' options '--x-includes=DIR' and '--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of 'make' will be. For these packages, running './configure --enable-silent-rules' sets the default to minimal output, which can be overridden with 'make V=1'; while running './configure --disable-silent-rules' sets the default to verbose, which can be overridden with 'make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX 'make' updates targets which have the same time stamps as their prerequisites, which makes it generally unusable when shipped generated files such as 'configure' are involved. Use GNU 'make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its '' header file. The option '-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put '/usr/ucb' early in your 'PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in '/usr/bin'. So, if you need '/usr/ucb' in your 'PATH', put it _after_ '/usr/bin'. On Haiku, software installed for all users goes in '/boot/common', not '/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features 'configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, 'configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the '--build=TYPE' option. TYPE can either be a short name for the system type, such as 'sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file 'config.sub' for the possible values of each field. If 'config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option '--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with '--host=TYPE'. Sharing Defaults ================ If you want to set default values for 'configure' scripts to share, you can create a site shell script called 'config.site' that gives default values for variables like 'CC', 'cache_file', and 'prefix'. 'configure' looks for 'PREFIX/share/config.site' if it exists, then 'PREFIX/etc/config.site' if it exists. Or, you can set the 'CONFIG_SITE' environment variable to the location of the site script. A warning: not all 'configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to 'configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the 'configure' command line, using 'VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified 'gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash 'configure' Invocation ====================== 'configure' recognizes the following options to control how it operates. '--help' '-h' Print a summary of all of the options to 'configure', and exit. '--help=short' '--help=recursive' Print a summary of the options unique to this package's 'configure', and exit. The 'short' variant lists options used only in the top level, while the 'recursive' variant lists options also present in any nested packages. '--version' '-V' Print the version of Autoconf used to generate the 'configure' script, and exit. '--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally 'config.cache'. FILE defaults to '/dev/null' to disable caching. '--config-cache' '-C' Alias for '--cache-file=config.cache'. '--quiet' '--silent' '-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to '/dev/null' (any error messages will still be shown). '--srcdir=DIR' Look for the package's source code in directory DIR. Usually 'configure' can determine that directory automatically. '--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. '--no-create' '-n' Run the configure checks, but stop before creating any output files. 'configure' also accepts some other, not widely useful, options. Run 'configure --help' for more details. libwmf-0.2.13/Makefile.am000066400000000000000000000014251441723000300151050ustar00rootroot00000000000000if LIBWMF_BUILD_ALL DIRHEAVY = . src include fonts else DIRHEAVY = . src include endif DIST_SUBDIRS = . src include fonts SUBDIRS = $(DIRHEAVY) bin_SCRIPTS = libwmf-config pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libwmf.pc WMFEXAMPLES = \ examples/2doorvan.wmf \ examples/Eg.wmf \ examples/anim0002.wmf \ examples/ant.wmf \ examples/arrow01.wmf \ examples/cell.wmf \ examples/fjftest.wmf \ examples/formula1.wmf \ examples/formula2.wmf \ examples/formula3.wmf \ examples/formula4.wmf \ examples/fulltest.wmf \ examples/p0000001.wmf \ examples/p0000016.wmf \ examples/sample.wmf \ examples/sample2.wmf \ examples/text.wmf EXTRA_DIST = AUTHORS BUILDING CREDITS NEWS README $(WMFEXAMPLES) \ libwmf.spec \ patches/acconfig.h \ ac-helpers/pkg-config/pkg.m4 libwmf-0.2.13/Makefile.in000066400000000000000000000751041441723000300151230ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2018 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@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = wmfconfig.h CONFIG_CLEAN_FILES = libwmf.pc libwmf.spec CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)" SCRIPTS = $(bin_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)wmfconfig.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/libwmf.pc.in \ $(srcdir)/libwmf.spec.in $(srcdir)/wmfconfig.h.in AUTHORS \ COPYING ChangeLog INSTALL NEWS README TODO compile \ config.guess config.sub install-sh ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FREETYPE_CONFIG = @FREETYPE_CONFIG@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_DIR = @GDK_PIXBUF_DIR@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GD_DEFS = @GD_DEFS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBWMF_BUILDSTYLE = @LIBWMF_BUILDSTYLE@ LIBWMF_PACKAGE = @LIBWMF_PACKAGE@ LIBWMF_RELEASE = @LIBWMF_RELEASE@ LIBWMF_VERSION = @LIBWMF_VERSION@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_LITE_AGE = @LT_LITE_AGE@ LT_LITE_CURRENT = @LT_LITE_CURRENT@ LT_LITE_REVISION = @LT_LITE_REVISION@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_LIBM = @SYS_LIBM@ VERSION = @VERSION@ WMF_CFLAGS = @WMF_CFLAGS@ WMF_CONFIG_CFLAGS = @WMF_CONFIG_CFLAGS@ WMF_DEFS = @WMF_DEFS@ WMF_DOCDIR = @WMF_DOCDIR@ WMF_FONTDIR = @WMF_FONTDIR@ WMF_GS_FONTDIR = @WMF_GS_FONTDIR@ WMF_GS_FONTMAP = @WMF_GS_FONTMAP@ WMF_LIBFLAGS = @WMF_LIBFLAGS@ WMF_SYS_FONTMAP = @WMF_SYS_FONTMAP@ WMF_XTRA_FONTMAP = @WMF_XTRA_FONTMAP@ XMKMF = @XMKMF@ XML2_CONFIG = @XML2_CONFIG@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @LIBWMF_BUILD_ALL_FALSE@DIRHEAVY = . src include @LIBWMF_BUILD_ALL_TRUE@DIRHEAVY = . src include fonts DIST_SUBDIRS = . src include fonts SUBDIRS = $(DIRHEAVY) bin_SCRIPTS = libwmf-config pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libwmf.pc WMFEXAMPLES = \ examples/2doorvan.wmf \ examples/Eg.wmf \ examples/anim0002.wmf \ examples/ant.wmf \ examples/arrow01.wmf \ examples/cell.wmf \ examples/fjftest.wmf \ examples/formula1.wmf \ examples/formula2.wmf \ examples/formula3.wmf \ examples/formula4.wmf \ examples/fulltest.wmf \ examples/p0000001.wmf \ examples/p0000016.wmf \ examples/sample.wmf \ examples/sample2.wmf \ examples/text.wmf EXTRA_DIST = AUTHORS BUILDING CREDITS NEWS README $(WMFEXAMPLES) \ libwmf.spec \ patches/acconfig.h \ ac-helpers/pkg-config/pkg.m4 all: wmfconfig.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): wmfconfig.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/wmfconfig.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status wmfconfig.h $(srcdir)/wmfconfig.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f wmfconfig.h stamp-h1 libwmf.pc: $(top_builddir)/config.status $(srcdir)/libwmf.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ libwmf.spec: $(top_builddir)/config.status $(srcdir)/libwmf.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) 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 ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(SCRIPTS) $(DATA) wmfconfig.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ dist-xz dist-zip distcheck distclean distclean-generic \ distclean-hdr distclean-libtool distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-binSCRIPTS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-pkgconfigDATA install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-binSCRIPTS \ uninstall-pkgconfigDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libwmf-0.2.13/NEWS000066400000000000000000000001101441723000300135360ustar00rootroot00000000000000August 22nd, 2001 libwmf-0.2.1 release. See README for release notes. libwmf-0.2.13/README000066400000000000000000000214101441723000300137250ustar00rootroot00000000000000libwmf-0.2.13 Release Notes --------------------------- - https://github.com/caolanm/libwmf/issues/2 - https://github.com/caolanm/libwmf/issues/4 libwmf-0.2.12 Release Notes --------------------------- fix abi libwmf-0.2.11 Release Notes --------------------------- merge in fixes for libgd CVE-2019-6978 libwmf-0.2.10 Release Notes --------------------------- release with coverity, clang and shellcheck fixes libwmf-0.2.9 Release Notes -------------------------- Seeing as wvware.sourceforge.net seems to be dead, but libwmf is still in use and has had a bunch of security bugs reported against, and I've a history with libwmf, I'll call this libwmf 0.2.9 and merge in my (Red Hat) fixes. libwmf-0.2.2 Release Notes -------------------------- While there have been some improvements to text placement and rendering in the X and gd layers, most changes are in the configuration. (It is now possible to build libwmf without any device layers, but this has not been tested extensively and is not recommended for general use.) Special thanks to Bob Friesenhahn, Leonard Rosenthol, David C Sterratt and Tomasz K³oczko. Hopefully this release will build on Solaris. My apologies to everyone who had problems with libwmf-0.2.1. libwmf-0.2.1 Release Notes -------------------------- In adherence with the ancient philosophy of `It's my birthday and I'll release if I want to,' today, August 22nd 2001, sees the release of libwmf-0.2.1, a.k.a. `The Inspector General's Nose'. I was, in fact, tempted to call it version 0.3.0, but I've been calling it 0.2.1 for so many preview snapshots that, well, to do otherwise now would seem like a betrayal. The most significant change is the introduction of redirectable character output streams (i.e., wmfStream) which should facilitate the writing of WMF importers. - Speaking of which, CVS sodipodi now has optional support for importing WMF, requiring libwmf-0.2.1, and an importer for AbiWord is in the works. This has, however, necessitated a slight change in the API, and people who use libwmf in conjuction with wv will need to upgrade to wv-0.7.0 or later. Other significant changes are support for a ghostscript-style fontmap and the beginnings of doxygen-generated documentation (which will grow more complete with future releases). Otherwise, there has been considerable clean-up, bug-fixes and improvement of both the source and the build system, and some additional functionality, including: (a) The .fig export uses scaling now, and has options to save images as PNG or JPEG. (b) The .svg export now supports inline (data URI) images and compression to .svgz (plus sodipodi-specific workarounds). (c) Use of metafile size info., if any (a mixed blessing). Special thanks to: (a) Matej Vila, for helping to make libwmf more Debian-friendly; (b) Michael Cree, for helping me to get libwmf working on Tru64; (c) Steve Oney, whose help I have not yet done justice to... Thanks also to: Bob Friesenhahn, Michal Jaegermann, Anil Madhavapeddy, Jacqueline Signore, Shuang Wang, Sean Young, and Kees Zeelenberg. Finally, having just assumed the mantle of maintainership, I would like to take this opportunity once again to thank Martin Vermeer for all of his work on libwmf. Francis James Franklin 22nd August, 2001 =============================================================================== Amendment #1 ------------ This version of libwmf is now officially part of the wvWare project, available by CVS under the module named `libwmf2'. I have added device layers for SVG (W3C's XML-based vector graphic format) and MVG (ImageMagick's proprietary vector graphic format); the X device layer has not been changed and I have no intention of changing it in the near future, but it works. I have also added a device layer for GNU plotutils, but currently it is only a shell, so don't use it. The MVG work is based on information supplied by Bob Friesenhahn who did the WMF coder for ImageMagick. (ImageMagick's WMF coder links against libwmf(1), not this version.) I am using version ImageMagick-5.3.3, and I don't know whether earlier (or later) versions will be compatible with the MVG format assumed by libwmf. In fact, I am already finding bugs, particularly with dashed lines... Also, I don't really know how to implement fonts; I suspect ImageMagick could do with some serious hacking on this point... Martin Vermeer has added a FIG device layer, so now there are two routes available if anyone wants to *edit* the images as vector graphics: (a) WMF->FIG for editing with xfig; (b) WMF->SVG for editing with, for example, sodipodi (best to get the *very* latest source for sodipodi; the GNOME-1.4 release and earlier are colour- blind). The svg & magick device layers write all bitmap data as PNG images, using filenames provided via the device layer interface. The current version of the GD library subsumed within libwmf is gd-2.0.0, with my additions. This supports 24-bit colour. There is some documentation, but the best way to learn how to use the various the device layers is to read the source in src/convert/ Francis James Franklin 13th May, 2001 =============================================================================== This is my own (i.e., unofficial) development version of libwmf which I propose as a candidate for release as (official) libwmf version 0.2.0. Although based on Caolan's excellent libwmf, there has been an almost complete restructuring to take libwmf away from it's batch-process origins and make it as well-behaved a library as possible. (1) The names have been changed to protect the innocent. All global / external variables have the prefix `wmf' (or, since the GD library is subsumed within libwmf, `gd'). With very few exceptions: (a) functions: wmf_function_name (...) (b) types: wmfType, or wmfType_t (c) macros: WMF_Macro (...) (2) It is my belief that device-layer (e.g., output) implementations should not need to know anything about wmf files or the interpreter's methods. In addition, the writing of such device-layers should be made as simple as possible, though not of course at the expense of image fidelity or quality. As such, I have crafted a new interface between the interpreter and the device layer, which I choose to call the `ipa' (as opposed to the `api' which is the `application / program interface'). There must also be an interface between the application and the device layer, but this third interface is independent of the interpreter. Although this may sound unnecessarily complicated, in fact it makes programming applications or device layers significantly easier. (3) With very few exceptions, all function calls refer to a variable of type `wmfAPI' which incorporates all data associated with a given wmf file. A final call to wmf_api_destroy frees up all memory allocated during the initialization and processing of the metafile. (4) (a) There is no longer any dependence on temporary files; all processing of the metafile is performed in-memory or w.r.t. original metafile. (b) Metafiles can be in-memory if desired; or applications can specify their own read/seek/tell functions for reading the metafile. (5) (a) Xpm dependence & system calls have been removed; libwmf provides bitmap scaling functionality. (b) Bitmaps are read using code taken from ImageMagick [?? - are there licensing issues to be addressed here?] (c) libwmf now uses freetype (2) for stringwidth calculations, and is bundled with the standard thirteen ghostscript fonts [?? - are there licensing issues to be addressed here?] (d) libwmf incorporates GD (gd-1.8.4 at time of writing) which supports freetype (2), with some enhancements (filled arcs & clipping). * * libz, libpng and freetype(2) are the sole required external libraries. * (6) (a) The build system uses automake and libtool, and the only library created is `libwmf', which includes the eps and gd device layers and the GD library as well as the interpreter and api. (b) Header files are installed in a `libwmf' sub-directory. (7) I have added the wmf examples with Tor Lillqvist's plug-in for the Gimp: http://www.iki.fi/tml/gimp/wmf [?? - are there licensing issues to be addressed here?] Currently the only device layers are eps [eps & ps] and gd [png & jpeg]. Implementing more should be relatively straight-forward. I recognize that, until device layers for X, xfig and magick exist, this proposed revision of libwmf is at a disadvantage... I have tested only with PPC Linux 2000 and (x86) Linux RH7. Francis James Franklin 4th March, 2001 =============================================================================== libwmf-0.2.13/TODO000066400000000000000000000046241441723000300135450ustar00rootroot00000000000000o Do we need to check for memcpy (), memset (), ... ?? o Does Win* have unlink () ?? Better to remove() ?? o Should I be opening files with "rb" & "wb" - check! o crop, width, height, etc. tests for bitmaps o further tests for division by zero o Add a dpi option in wmf_eps_t struct ?? o eps,gd,x: bmp_draw ignores bitmap type o -geometry option to wmf2x doesn't work properly; ditch position ?? o Does that (X) flood fill function really work? o What is the proper order of x & y coordinates in lists of points in *poly* ?? o Check mismatch in DIBSTRETCHBLT/crop o Need to check use of font map options o in player/dc.h, pointers set up to default brush/pen/font; are these over-written ?? o reset bounding box before play ?? (in which case, need to remove SCAN() qualifies around registration...) o what is opacity for non-32bit bitmaps? assuming 0xff, but maybe 0x00 ?? o xwmf in official libwmf tree: (a) renders test11.wmf incorrectly o (b) angles text the wrong way o scaling of pattern brush? - multiply imaging is possible but potentially expensive... PS forms ?? o I'm uncertain about the eps arc-draw functions... Does anyone have an elliptic pie-chart ?? o char width calcs using wmf_D_Coord_translate need to translate origin as well! - check - why not just multiply by pixel_width? or have official scale function... o finish eps,gd text: need underline (& strikethrough ?? (& ... ??)) o eps,gd,x: ROP ?? o eps fill transparency/color gets trashed on x86 - this seems to be a problem with ghostscript... ... but what to do about it? o gd,eps,x: Has the rounded rectangle been implemented ?? o gd,eps,x: PS_INSIDE_FRAME - How to implement this (see gdwmfapi.c...) o gd,eps,x: drawpixel implementations aren't scaling... o add wmf_attach () & wmf_detach () functions for inserting/removing memory from libwmf MM array ?? o add WMF_SCAN_HEADER option ?? not sure this is a valid test. Why not do a full scan? o original libwmf: gd_draw_rectangle uses height instead of width? o with arcs, if start and end points the same then the player should request an ellipse, *not* an arc o x: use of unqualified arrays is perhaps dangerous ?? o x: flood fill o x,gd: angled text: I'm not entirely convinced about this; - also, bounding box may be at wrong angle... - in fact, bad assumption here: what references WMF_TEXT_ANGLE that shouldn't ?? o gd: background colour is black instead of white? libwmf-0.2.13/ac-helpers/000077500000000000000000000000001441723000300150725ustar00rootroot00000000000000libwmf-0.2.13/ac-helpers/pkg-config/000077500000000000000000000000001441723000300171165ustar00rootroot00000000000000libwmf-0.2.13/ac-helpers/pkg-config/pkg.m4000066400000000000000000000037511441723000300201470ustar00rootroot00000000000000 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 ]) libwmf-0.2.13/acinclude.m4000066400000000000000000000065661441723000300152550ustar00rootroot00000000000000dnl AC_CHECK_VERSION(version_number_of_package,reference_minimum_version_number) dnl sets ac_check_version_okay=yes if successful dnl AC_DEFUN([AC_CHECK_VERSION],[ current_version=$1 current_major_version=`echo $current_version | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` current_minor_version=`echo $current_version | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` current_micro_version=`echo $current_version | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` minimum_version=$2 minimum_major_version=`echo $minimum_version | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` minimum_minor_version=`echo $minimum_version | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` minimum_micro_version=`echo $minimum_version | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` ac_check_version_okay=no if [ test $current_major_version -gt $minimum_major_version ]; then ac_check_version_okay=yes elif [ test $current_major_version -eq $minimum_major_version ]; then if [ test $current_minor_version -gt $minimum_minor_version ]; then ac_check_version_okay=yes elif [ test $current_minor_version -eq $minimum_minor_version ]; then if [ test $current_micro_version -ge $minimum_micro_version ]; then ac_check_version_okay=yes fi fi fi ]) AC_DEFUN([AC_LIBPLOT_LIBS],[ ac_can_link_libplot=no LIBPLOT_LIBS="-lplot" ac_libplot_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS $LIBPLOT_LIBS" AC_MSG_CHECKING(whether libplot requires X) AC_TRY_LINK([ #include #include ],[ plPlotter* plotter; plPlotterParams* params; params = pl_newplparams (); plotter = pl_newpl_r ("X",stdin,stdout,stderr,params); pl_deletepl_r (plotter); pl_deleteplparams (params); ],[ ac_can_link_libplot=yes AC_MSG_RESULT(no) ],[ AC_MSG_RESULT(yes) ]) LDFLAGS=$ac_libplot_ldflags if [ test "x$no_x" != "xyes" ]; then dnl Athena: if [ test $ac_can_link_libplot != yes ]; then LIBPLOT_LIBS="-lplot $X_LIBS -lXaw -lXmu -lXt $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS -lm" ac_libplot_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS $LIBPLOT_LIBS" AC_MSG_CHECKING(whether libplot links against Athena) AC_TRY_LINK([ #include #include ],[ plPlotter* plotter; plPlotterParams* params; params = pl_newplparams (); plotter = pl_newpl_r ("X",stdin,stdout,stderr,params); pl_deletepl_r (plotter); pl_deleteplparams (params); ],[ ac_can_link_libplot=yes AC_MSG_RESULT(yes) ],[ AC_MSG_RESULT(no) ]) LDFLAGS=$ac_libplot_ldflags fi dnl Motif: if [ test $ac_can_link_libplot != yes ]; then ac_libplot_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS $X_LIBS" AC_CHECK_LIB(Xp,main,[libXp="-lXp"],[libXp=""],-lXext -lX11) LIBPLOT_LIBS="-lplot $X_LIBS -lXm $libXp -lXt $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS -lm" AC_CHECK_LIB(gen,main,[LIBPLOT_LIBS="$LIBPLOT_LIBS -lgen"]) AC_CHECK_LIB(PW,main,[LIBPLOT_LIBS="$LIBPLOT_LIBS -lPW"]) LDFLAGS=$ac_libplot_ldflags LDFLAGS="$LDFLAGS $LIBPLOT_LIBS" AC_MSG_CHECKING(whether libplot links against Motif) AC_TRY_LINK([ #include #include ],[ plPlotter* plotter; plPlotterParams* params; params = pl_newplparams (); plotter = pl_newpl_r ("X",stdin,stdout,stderr,params); pl_deletepl_r (plotter); pl_deleteplparams (params); ],[ ac_can_link_libplot=yes AC_MSG_RESULT(yes) ],[ AC_MSG_RESULT(no) ]) LDFLAGS=$ac_libplot_ldflags fi fi ]) libwmf-0.2.13/aclocal.m4000066400000000000000000013616601441723000300147240ustar00rootroot00000000000000# generated automatically by aclocal 1.16.1 -*- Autoconf -*- # Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . ]) # serial 58 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_PREPARE_CC_BASENAME # ----------------------- m4_defun([_LT_PREPARE_CC_BASENAME], [ # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } ])# _LT_PREPARE_CC_BASENAME # _LT_CC_BASENAME(CC) # ------------------- # It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, # but that macro is also expanded into generated libtool script, which # arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], [m4_require([_LT_PREPARE_CC_BASENAME])dnl AC_REQUIRE([_LT_DECL_SED])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl func_cc_basename $1 cc_basename=$func_cc_basename_result ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl m4_require([_LT_CMD_TRUNCATE])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from 'configure', and 'config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # 'config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain=$ac_aux_dir/ltmain.sh ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the 'libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to 'config.status' so that its # declaration there will have the same value as in 'configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags='_LT_TAGS'dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into 'config.status', and then the shell code to quote escape them in # for loops in 'config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # '#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test 0 = "$lt_write_fail" && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ '$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test 0 != $[#] do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try '$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try '$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test yes = "$silent" && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 _LT_COPYING _LT_LIBTOOL_TAGS # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE _LT_PREPARE_MUNGE_PATH_LIST _LT_PREPARE_CC_BASENAME # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS=$save_LDFLAGS ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[[012]][[,.]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test yes = "$lt_cv_ld_force_load"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], [ if test yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script that will find a shell with a builtin # printf (that we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case $ECHO in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and where our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ]) if test yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n "$lt_cv_sys_max_cmd_len"; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes = "$cross_compiling"; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen=shl_load], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen=dlopen], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) ]) ]) ]) ]) ]) ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links=nottested if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test no = "$hard_links"; then AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", [Define to the sub-directory where libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then # We can hardcode non-existent directories. if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_PREPARE_MUNGE_PATH_LIST # --------------------------- # Make sure func_munge_path_list() is defined correctly. m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], [[# func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } ]])# _LT_PREPARE_PATH_LIST # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown AC_ARG_VAR([LT_SYS_LIBRARY_PATH], [User-defined run-time library search path.]) case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a[(]lib.so.V[)]' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $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' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], [Detected run-time system search path for libraries]) _LT_DECL([], [configure_time_lt_sys_library_path], [2], [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program that can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$1"; then lt_cv_path_MAGIC_CMD=$ac_dir/"$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac]) MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program that can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], [if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi]) rm -f conftest.i conftest2.i conftest.out]) ])# _LT_PATH_DD # _LT_CMD_TRUNCATE # ---------------- # find command to truncate a binary pipe m4_defun([_LT_CMD_TRUNCATE], [m4_require([_LT_PATH_DD]) AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], [printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) _LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], [Command to truncate a binary pipe]) ])# _LT_CMD_TRUNCATE # _LT_CHECK_MAGIC_METHOD # ---------------------- # how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[[4-9]]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi]) if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # _LT_DLL_DEF_P([FILE]) # --------------------- # True iff FILE is a Windows DLL '.def' file. # Keep in sync with func_dll_def_p in the libtool script AC_DEFUN([_LT_DLL_DEF_P], [dnl test DEF = "`$SED -n dnl -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl -e q dnl Only consider the first "real" line $1`" dnl ])# _LT_DLL_DEF_P # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM=-lm) ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test yes = "$GCC"; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $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 <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], [Transform the output of nm into a list of symbols to manually relocate]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([nm_interface], [lt_cv_nm_interface], [1], [The name lister interface]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' if test ia64 != "$host_cpu"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64, which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test yes = "$GCC"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS=$save_LDFLAGS]) if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; osf3*) if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test yes = "$GCC"; then wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test yes,yes = "$GCC,$enable_shared"; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting $shlibpath_var if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC=$CC AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report what library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC=$lt_save_CC ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test yes = "$GXX"; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test yes = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GXX"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(GCC, $1)=$GXX _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test yes != "$_lt_caught_CXX_error" AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case @S|@2 in .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test x-L = "$p" || test x-R = "$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)=$prev$p else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test no = "$pre_test_object_deps_done"; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)=$p else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)=$p else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test no = "$F77"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_F77"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$G77 _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_F77" AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test no = "$FC"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_FC"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_FC" AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code=$lt_simple_compile_test_code # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f "$lt_ac_sed" && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test 10 -lt "$lt_ac_count" && break lt_ac_count=`expr $lt_ac_count + 1` if test "$lt_ac_count" -gt "$lt_ac_max"; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine what file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 8 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option '$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl 'shared' nor 'disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], [_LT_WITH_AIX_SONAME([aix])]) ]) ])# _LT_SET_OPTIONS # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the 'shared' and # 'disable-shared' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the 'static' and # 'disable-static' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the 'fast-install' # and 'disable-fast-install' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_AIX_SONAME([DEFAULT]) # ---------------------------------- # implement the --with-aix-soname flag, and support the `aix-soname=aix' # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT # is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. m4_define([_LT_WITH_AIX_SONAME], [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[[5-9]]*,yes) AC_MSG_CHECKING([which variant of shared library versioning to provide]) AC_ARG_WITH([aix-soname], [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], [case $withval in aix|svr4|both) ;; *) AC_MSG_ERROR([Unknown argument to --with-aix-soname]) ;; esac lt_cv_with_aix_soname=$with_aix_soname], [AC_CACHE_VAL([lt_cv_with_aix_soname], [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) with_aix_soname=$lt_cv_with_aix_soname]) AC_MSG_RESULT([$with_aix_soname]) if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac _LT_DECL([], [shared_archive_member_spec], [0], [Shared archive member basename, for filename based shared library versioning on AIX])dnl ])# _LT_WITH_AIX_SONAME LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the 'pic-only' and 'no-pic' # LT_INIT options. # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac], [pic_mode=m4_default([$1], [default])]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59, which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 4179 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.6]) m4_define([LT_PACKAGE_REVISION], [2.4.6]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.6' macro_revision='2.4.6' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software # Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 11 (pkg-config-0.29.1) dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, but dnl WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA dnl 02111-1307, USA. dnl dnl As a special exception to the GNU General Public License, if you dnl distribute this file as part of a program that contains a dnl configuration script generated by Autoconf, you may include it under dnl the same distribution terms that you use for the rest of that dnl program. dnl PKG_PREREQ(MIN-VERSION) dnl ----------------------- dnl Since: 0.29 dnl dnl Verify that the version of the pkg-config macros are at least dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's dnl installed version of pkg-config, this checks the developer's version dnl of pkg.m4 when generating configure. dnl dnl To ensure that this macro is defined, also add: dnl m4_ifndef([PKG_PREREQ], dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) dnl dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], [m4_define([PKG_MACROS_VERSION], [0.29.1]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) dnl ---------------------------------- dnl Since: 0.16 dnl dnl Search for the pkg-config tool and set the PKG_CONFIG variable to dnl first found in the path. Checks that the version of pkg-config found dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is dnl used since that's the first version where most current features of dnl pkg-config existed. AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])dnl PKG_PROG_PKG_CONFIG dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------------------------------- dnl Since: 0.18 dnl dnl Check to see whether a particular set of modules exists. Similar to dnl PKG_CHECK_MODULES(), but does not set variables or print errors. dnl dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) dnl only at the first occurence in configure.ac, so if the first place dnl it's called might be skipped (such as if it is within an "if", you dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) dnl --------------------------------------------- dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting dnl pkg_failed based on the result. m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])dnl _PKG_CONFIG dnl _PKG_SHORT_ERRORS_SUPPORTED dnl --------------------------- dnl Internal check to see if pkg-config supports short errors. AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])dnl _PKG_SHORT_ERRORS_SUPPORTED dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl -------------------------------------------------------------- dnl Since: 0.4.0 dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES might not happen, you should be sure to include an dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])dnl PKG_CHECK_MODULES dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl --------------------------------------------------------------------- dnl Since: 0.29 dnl dnl Checks for existence of MODULES and gathers its build flags with dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags dnl and VARIABLE-PREFIX_LIBS from --libs. dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to dnl include an explicit call to PKG_PROG_PKG_CONFIG in your dnl configure.ac. AC_DEFUN([PKG_CHECK_MODULES_STATIC], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl _save_PKG_CONFIG=$PKG_CONFIG PKG_CONFIG="$PKG_CONFIG --static" PKG_CHECK_MODULES($@) PKG_CONFIG=$_save_PKG_CONFIG[]dnl ])dnl PKG_CHECK_MODULES_STATIC dnl PKG_INSTALLDIR([DIRECTORY]) dnl ------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable pkgconfigdir as the location where a module dnl should install pkg-config .pc files. By default the directory is dnl $libdir/pkgconfig, but the default can be changed by passing dnl DIRECTORY. The user can override through the --with-pkgconfigdir dnl parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_INSTALLDIR dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) dnl -------------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable noarch_pkgconfigdir as the location where a dnl module should install arch-independent pkg-config .pc files. By dnl default the directory is $datadir/pkgconfig, but the default can be dnl changed by passing DIRECTORY. The user can override through the dnl --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_NOARCH_INSTALLDIR dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------- dnl Since: 0.28 dnl dnl Retrieves the value of the pkg-config variable for the given module. AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl _PKG_CONFIG([$1], [variable="][$3]["], [$2]) AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], dnl [DESCRIPTION], [DEFAULT]) dnl ------------------------------------------ dnl dnl Prepare a "--with-" configure option using the lowercase dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and dnl PKG_CHECK_MODULES in a single macro. AC_DEFUN([PKG_WITH_MODULES], [ m4_pushdef([with_arg], m4_tolower([$1])) m4_pushdef([description], [m4_default([$5], [build with ]with_arg[ support])]) m4_pushdef([def_arg], [m4_default([$6], [auto])]) m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) m4_case(def_arg, [yes],[m4_pushdef([with_without], [--without-]with_arg)], [m4_pushdef([with_without],[--with-]with_arg)]) AC_ARG_WITH(with_arg, AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, [AS_TR_SH([with_]with_arg)=def_arg]) AS_CASE([$AS_TR_SH([with_]with_arg)], [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], [auto],[PKG_CHECK_MODULES([$1],[$2], [m4_n([def_action_if_found]) $3], [m4_n([def_action_if_not_found]) $4])]) m4_popdef([with_arg]) m4_popdef([description]) m4_popdef([def_arg]) ])dnl PKG_WITH_MODULES dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, dnl [DESCRIPTION], [DEFAULT]) dnl ----------------------------------------------- dnl dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES dnl check._[VARIABLE-PREFIX] is exported as make variable. AC_DEFUN([PKG_HAVE_WITH_MODULES], [ PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) AM_CONDITIONAL([HAVE_][$1], [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) ])dnl PKG_HAVE_WITH_MODULES dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, dnl [DESCRIPTION], [DEFAULT]) dnl ------------------------------------------------------ dnl dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make dnl and preprocessor variable. AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], [ PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) ])dnl PKG_HAVE_DEFINE_WITH_MODULES # Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.16.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.16.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. AS_CASE([$CONFIG_FILES], [*\'*], [eval set x "$CONFIG_FILES"], [*], [set x $CONFIG_FILES]) shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`AS_DIRNAME(["$am_mf"])` am_filepart=`AS_BASENAME(["$am_mf"])` AM_RUN_LOG([cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles]) || am_rc=$? done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments for automatic dependency tracking. Try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi AS_UNSET([am_dirpart]) AS_UNSET([am_filepart]) AS_UNSET([am_mf]) AS_UNSET([am_rc]) rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking is enabled. # This creates each '.Po' and '.Plo' makefile fragment that we'll need in # order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check whether make has an 'include' directive that can support all # the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) AS_CASE([$?:`cat confinc.out 2>/dev/null`], ['0:this is the am__doit target'], [AS_CASE([$s], [BSD], [am__include='.include' am__quote='"'], [am__include='include' am__quote=''])]) if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* AC_MSG_RESULT([${_am_result}]) AC_SUBST([am__include])]) AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # -*- Autoconf -*- # Obsolete and "removed" macros, that must however still report explicit # error messages when used, to smooth transition. # # Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([AM_CONFIG_HEADER], [AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl AC_CONFIG_HEADERS($@)]) AC_DEFUN([AM_PROG_CC_STDC], [AC_PROG_CC am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should simply use the 'AC][_PROG_CC' macro instead. Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', but upon 'ac_cv_prog_cc_stdc'.])]) AC_DEFUN([AM_C_PROTOTYPES], [AC_FATAL([automatic de-ANSI-fication support has been removed])]) AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([acinclude.m4]) libwmf-0.2.13/compile000077500000000000000000000163271441723000300144360ustar00rootroot00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2018-03-07.03; # UTC # Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: libwmf-0.2.13/config.guess000077500000000000000000001262061441723000300153760ustar00rootroot00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2018 Free Software Foundation, Inc. timestamp='2018-03-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi 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 "$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 ; set_cc_for_build= ;' # 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 case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval "$set_cc_for_build" cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" # If ldd exists, use it to detect musl libc. if command -v ldd >/dev/null && \ ldd --version 2>&1 | grep -q ^musl then LIBC=musl fi ;; esac # Note: order is significant - the case branches are not exclusive. case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ "/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 ;; sh5el) machine=sh5le-unknown ;; earmv*) arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` machine="${arch}${endian}"-unknown ;; *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. case "$UNAME_MACHINE_ARCH" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # Determine ABI tags. case "$UNAME_MACHINE_ARCH" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "$machine-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" exit ;; *:MidnightBSD:*:*) echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:Sortix:*:*) echo "$UNAME_MACHINE"-unknown-sortix exit ;; *:Redox:*:*) echo "$UNAME_MACHINE"-unknown-redox exit ;; mips:OSF1:*.*) echo mips-dec-osf1 exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") UNAME_MACHINE=alpha ;; "EV5 (21164)") UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; 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 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval "$set_cc_for_build" SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; 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 ;; 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 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; 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 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # 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 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; 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" && dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; 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 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????: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 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; 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 ;; *: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 if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi 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 ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/lslpp ] ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 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 eval "$set_cc_for_build" # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux"$HPUX_REV" exit ;; 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" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo "$UNAME_MACHINE"-unknown-osf1mk else echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; 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 ;; 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 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case "$UNAME_PROCESSOR" in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) case "$UNAME_MACHINE" in x86) echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; i*:UWIN*:*) echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; i*86:Minix:*:*) echo "$UNAME_MACHINE"-pc-minix exit ;; aarch64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; 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 -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) eval "$set_cc_for_build" if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; e2k:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; k1om:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval "$set_cc_for_build" sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #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-$LIBC"; exit; } ;; mips64el:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-"$LIBC" exit ;; 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-"$LIBC" ;; PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-"$LIBC" exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; xtensa*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; 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 ;; 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 ;; 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 ;; i*86:XTS-300:*:STOP) echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; i*86:*: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 ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" exit ;; 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 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; 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 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *: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 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; 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 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux"$UNAME_RELEASE" exit ;; SX-ACE:SUPER-UX:*:*) echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval "$set_cc_for_build" if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_PPC >/dev/null then UNAME_PROCESSOR=powerpc fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub # that puts up a graphical alert prompting to install # developer tools. Any system running Mac OS X 10.7 or # later (Darwin 11 and later) is required to have a 64-bit # processor. This is not true of the ARM version of Darwin # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *: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 ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-*:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk"$UNAME_RELEASE" exit ;; NSR-*:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk"$UNAME_RELEASE" exit ;; NSV-*:NONSTOP_KERNEL:*:*) echo nsv-tandem-nsk"$UNAME_RELEASE" exit ;; NSX-*:NONSTOP_KERNEL:*:*) echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *: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 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) echo "$UNAME_MACHINE"-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; esac echo "$0: unable to guess system type" >&2 case "$UNAME_MACHINE:$UNAME_SYSTEM" in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&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 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libwmf-0.2.13/config.sub000077500000000000000000001070701441723000300150370ustar00rootroot00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2018 Free Software Foundation, Inc. timestamp='2018-05-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 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo "$1" exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Spilt fields of configuration type IFS="-" read -r field1 field2 field3 field4 <&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nfp-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pru-* \ | pyramid-* \ | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ | wasm32-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # 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-pc 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 ;; abacus) basic_machine=abacus-unknown ;; 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 ;; aros) basic_machine=i386-pc os=-aros ;; asmjs) basic_machine=asmjs-unknown ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; 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 ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; 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 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2*) basic_machine=m68k-bull os=-sysv3 ;; e500v[12]) basic_machine=powerpc-unknown os=$os"spe" ;; e500v[12]-*) basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=$os"spe" ;; 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 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; 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 ;; 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 ;; leon-*|leon[3-9]-*) basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; 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 ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; moxiebox) basic_machine=moxie-unknown os=-moxiebox ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; 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 ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; nsv-tandem) basic_machine=nsv-tandem ;; nsx-tandem) basic_machine=nsx-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; 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 ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; 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 | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle) 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) 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 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; 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 ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh5el) basic_machine=sh5le-unknown ;; 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 ;; strongarm-* | thumb-*) basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; 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 ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; 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 ;; x64) basic_machine=x86_64-pc ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; 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 ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; 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. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # es1800 is here to avoid being matched by es* (a different OS) -es1800*) os=-ose ;; # Now 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* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ | -midnightbsd*) # 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 | -xray | -os68k* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* \ | -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 ;; -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 ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -pikeos*) # Until real need of OS specific support for # particular features comes up, bare metal # configurations are quite functional. case $basic_machine in arm*) os=-eabi ;; *) os=-elf ;; esac ;; -nacl*) ;; -ios) ;; -none) ;; -*-eabi) case $basic_machine in arm*) ;; esac ;; *) # 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 score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; pru-*) os=-elf ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) 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 ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -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 # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libwmf-0.2.13/configure000077500000000000000000017742011441723000300147720ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="src/player.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS GD_DEFS WMF_DEFS WMF_GS_FONTDIR WMF_GS_FONTMAP WMF_XTRA_FONTMAP WMF_SYS_FONTMAP WMF_FONTDIR WMF_DOCDIR WMF_LIBFLAGS WMF_CONFIG_CFLAGS WMF_CFLAGS GDK_PIXBUF_DIR LIBWMF_GDK_PIXBUF_FALSE LIBWMF_GDK_PIXBUF_TRUE GDK_PIXBUF_LIBS GDK_PIXBUF_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG LIBWMF_OPT_PLOT_FALSE LIBWMF_OPT_PLOT_TRUE LIBWMF_OPT_SYS_GD_FALSE LIBWMF_OPT_SYS_GD_TRUE LIBWMF_OPT_GD_FALSE LIBWMF_OPT_GD_TRUE FREETYPE_CONFIG XML2_CONFIG LIBWMF_OPT_X_FALSE LIBWMF_OPT_X_TRUE X_EXTRA_LIBS X_LIBS X_PRE_LIBS X_CFLAGS XMKMF LIBWMF_OPT_LAYERS_FALSE LIBWMF_OPT_LAYERS_TRUE LIBWMF_OPT_MODULES_FALSE LIBWMF_OPT_MODULES_TRUE LIBWMF_OPT_TRIO_FALSE LIBWMF_OPT_TRIO_TRUE LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED LIBTOOL OBJDUMP DLLTOOL AS LN_S CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC SYS_LIBM host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBWMF_BUILD_ALL_FALSE LIBWMF_BUILD_ALL_TRUE LIBWMF_BUILDSTYLE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM LT_LITE_AGE LT_LITE_REVISION LT_LITE_CURRENT LT_AGE LT_REVISION LT_CURRENT LT_RELEASE LIBWMF_RELEASE LIBWMF_VERSION LIBWMF_PACKAGE target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_debug enable_ansi enable_pedantic enable_heavy enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock with_layers with_x with_expat with_libxml2 with_freetype with_zlib with_png with_jpeg with_sys_gd enable_gd with_docdir with_fontdir with_sysfontmap with_xtrafontmap with_gsfontmap with_gsfontdir ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP LT_SYS_LIBRARY_PATH XMKMF PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR GDK_PIXBUF_CFLAGS GDK_PIXBUF_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures 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 \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names X features: --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR 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-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-debug set DEBUG option to libwmf default=no --enable-ansi set -ansi option to libwmf default=no --enable-pedantic set -pedantic option to libwmf default=no --disable-heavy only build libwmflite default=build all --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-gd don't build GD, don't look for it, don't require it Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, [default=aix]. --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-layers whether to build layers default is yes --with-x use the X Window System --with-expat=DIR use expat in DIR --with-libxml2=DIR use libxml2 in DIR --with-freetype=DIR use freetype2 in DIR --with-zlib=DIR use libz in DIR --with-png=DIR use libpng in DIR --with-jpeg=DIR use libjpeg in DIR --with-sys-gd=DIR use system GD in DIR (if compatible) --with-docdir=DIR install documentation in DIR --with-fontdir=DIR install Type1 fonts in DIR --with-sysfontmap=FILE default is /usr/share/fonts/fontmap --with-xtrafontmap=FILE non-system XML fontmap --with-gsfontmap=FILE ghostscript fontmap --with-gsfontdir=DIR directory for ghostscript fonts Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor LT_SYS_LIBRARY_PATH User-defined run-time library search path. XMKMF Path to xmkmf, Makefile generator for X Window System PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path GDK_PIXBUF_CFLAGS C compiler flags for GDK_PIXBUF, overriding pkg-config GDK_PIXBUF_LIBS linker flags for GDK_PIXBUF, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu LIBWMF_PACKAGE=libwmf # Making releases: # WMF_MICRO_VERSION += 1; # WMF_INTERFACE_AGE += 1; # WMF_BINARY_AGE += 1; # if any functions have been added, set WMF_INTERFACE_AGE to 0. # if backwards compatibility has been broken, # set WMF_BINARY_AGE and WMF_INTERFACE_AGE to 0. # WMF_MAJOR_VERSION=0 WMF_MINOR_VERSION=2 WMF_MICRO_VERSION=13 WMF_INTERFACE_AGE=5 WMF_BINARY_AGE=6 WMFLITE_INTERFACE_AGE=6 WMFLITE_BINARY_AGE=6 LIBWMF_VERSION=$WMF_MAJOR_VERSION.$WMF_MINOR_VERSION.$WMF_MICRO_VERSION LIBWMF_RELEASE=1 # libtool versioning LT_RELEASE=$WMF_MAJOR_VERSION.$WMF_MINOR_VERSION LT_CURRENT=`expr $WMF_MICRO_VERSION - $WMF_INTERFACE_AGE` LT_REVISION=$WMF_INTERFACE_AGE LT_AGE=`expr $WMF_BINARY_AGE - $WMF_INTERFACE_AGE` LT_LITE_CURRENT=`expr $WMF_MICRO_VERSION - $WMFLITE_INTERFACE_AGE` LT_LITE_REVISION=$WMFLITE_INTERFACE_AGE LT_LITE_AGE=`expr $WMFLITE_BINARY_AGE - $WMFLITE_INTERFACE_AGE` # For automake. PACKAGE=$LIBWMF_PACKAGE VERSION=$LIBWMF_VERSION am__api_version='1.16' 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 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=$PACKAGE VERSION=$VERSION # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi # Specify a configuration file ac_config_headers="$ac_config_headers wmfconfig.h" # CFLAGS to be listed by libwmf-config should be added to this: WMF_CONFIG_CFLAGS= # Other CFLAGS, not to be listed by libwmf-config, should be added to this: WMF_CFLAGS= # LDFLAGS to be listed by libwmf-config should be added to this: WMF_LIBFLAGS= # WMF_DEFS is for flags such as -DDEBUG which are to applied only to # libwmf source not extra packages such as gd - more global defs should be # added to WMF_CFLAGS # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; if test "x$enableval" != "xno" ; then WMF_DEFS="-DDEBUG=1" else WMF_DEFS= fi else WMF_DEFS= fi # Check whether --enable-ansi was given. if test "${enable_ansi+set}" = set; then : enableval=$enable_ansi; if test "x$enableval" != "xno" ; then WMF_DEFS="$WMF_DEFS -ansi" fi fi # Check whether --enable-pedantic was given. if test "${enable_pedantic+set}" = set; then : enableval=$enable_pedantic; if test "x$enableval" != "xno" ; then WMF_DEFS="$WMF_DEFS -pedantic" fi fi LIBWMF_BUILDSTYLE=heavy libwmf_build_all=yes # Check whether --enable-heavy was given. if test "${enable_heavy+set}" = set; then : enableval=$enable_heavy; if test "x$enableval" = "xno" ; then LIBWMF_BUILDSTYLE=lite libwmf_build_all=no fi fi if test "x$libwmf_build_all" = "xyes" ; then LIBWMF_BUILD_ALL_TRUE= LIBWMF_BUILD_ALL_FALSE='#' else LIBWMF_BUILD_ALL_TRUE='#' LIBWMF_BUILD_ALL_FALSE= fi # gd does not read config.h so need to pass it options on the command line: GD_DEFS= # Tests for Windows # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac case $host_os in *cygwin* ) CYGWIN=yes;; * ) CYGWIN=no;; esac case $host_os in *mingw32* ) MINGW32=yes;; * ) MINGW32=no;; esac # End Tests for Windows { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Win32" >&5 $as_echo_n "checking for Win32... " >&6; } case "$host" in *-*-mingw*) os_win32=yes SYS_LIBM="" ;; *) os_win32=no SYS_LIBM="-lm" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $os_win32" >&5 $as_echo "$os_win32" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : 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 ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_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" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 $as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } case $?:`cat confinc.out 2>/dev/null` in #( '0:this is the am__doit target') : case $s in #( BSD) : am__include='.include' am__quote='"' ;; #( *) : am__include='include' am__quote='' ;; esac ;; #( *) : ;; esac if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 $as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # Configure libtool enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ac_tool_prefix}as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AS=$ac_cv_prog_AS if test -n "$AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AS="as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.6' macro_revision='2.4.6' ltmain=$ac_aux_dir/ltmain.sh # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n "$lt_cv_sys_max_cmd_len"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; then reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$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=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 $as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 $as_echo_n "checking for a working dd... " >&6; } if ${ac_cv_path_lt_DD+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in dd; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 $as_echo "$ac_cv_path_lt_DD" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 $as_echo_n "checking how to truncate binary pipes... " >&6; } if ${lt_cv_truncate_bin+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 $as_echo "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[012][,.]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else pic_mode=default fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac else enable_fast_install=yes fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 $as_echo_n "checking which variant of shared library versioning to provide... " >&6; } # Check whether --with-aix-soname was given. if test "${with_aix_soname+set}" = set; then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else if ${lt_cv_with_aix_soname+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_with_aix_soname=aix fi with_aix_soname=$lt_cv_with_aix_soname fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 $as_echo "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o func_cc_basename $compiler cc_basename=$func_cc_basename_result # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/${ac_tool_prefix}file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC=$CC ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test no = "$hard_links"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='$wl--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test no = "$ld_shlibs"; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' $wl-bernotok' allow_undefined_flag=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' else archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; osf3*) if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='$wl-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='$wl-z,text' allow_undefined_flag='$wl-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='$wl-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $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' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen=shl_load else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen=dlopen else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi fi fi fi fi fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report what library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC ac_config_commands="$ac_config_commands libtool" # Only expand once: #end libtool stuff { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_header in time.h do : ac_fn_c_check_header_mongrel "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default" if test "x$ac_cv_header_time_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TIME_H 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" if test "x$ac_cv_header_unistd_h" = xyes; then : $as_echo "#define HAVE_UNISTD_H 1" >>confdefs.h GD_DEFS="$GD_DEFS -DHAVE_UNISTD_H" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* 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"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 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 sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define off_t long int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi for ac_func in strstr do : ac_fn_c_check_func "$LINENO" "strstr" "ac_cv_func_strstr" if test "x$ac_cv_func_strstr" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRSTR 1 _ACEOF fi done require_trio=no if test $LIBWMF_BUILDSTYLE = heavy; then for ac_func in printf fprintf vfprintf sprintf do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else require_trio=yes fi done for ac_func in vprintf vsprintf do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in sscanf do : ac_fn_c_check_func "$LINENO" "sscanf" "ac_cv_func_sscanf" if test "x$ac_cv_func_sscanf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SSCANF 1 _ACEOF else require_trio=yes fi done for ac_func in scanf vscanf fscanf vsscanf do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in vsnprintf do : ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" if test "x$ac_cv_func_vsnprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VSNPRINTF 1 _ACEOF else check_for_vsnprintf=yes fi done if test "x$check_for_vsnprintf" = "xyes" ; then ac_fn_c_check_func "$LINENO" "_vsnprintf" "ac_cv_func__vsnprintf" if test "x$ac_cv_func__vsnprintf" = xyes; then : $as_echo "#define HAVE_VSNPRINTF 1" >>confdefs.h $as_echo "#define vsnprintf _vsnprintf" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vsnprintf in -ldb" >&5 $as_echo_n "checking for vsnprintf in -ldb... " >&6; } if ${ac_cv_lib_db_vsnprintf+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldb $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char vsnprintf (); int main () { return vsnprintf (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_db_vsnprintf=yes else ac_cv_lib_db_vsnprintf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_db_vsnprintf" >&5 $as_echo "$ac_cv_lib_db_vsnprintf" >&6; } if test "x$ac_cv_lib_db_vsnprintf" = xyes; then : $as_echo "#define HAVE_VSNPRINTF 1" >>confdefs.h WMF_LIBFLAGS="$WMF_LIBFLAGS -ldb" else require_trio=yes fi fi fi for ac_func in snprintf do : ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" if test "x$ac_cv_func_snprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SNPRINTF 1 _ACEOF else check_for_snprintf=yes fi done if test "x$check_for_snprintf" = "xyes" ; then ac_fn_c_check_func "$LINENO" "_snprintf" "ac_cv_func__snprintf" if test "x$ac_cv_func__snprintf" = xyes; then : $as_echo "#define HAVE_SNPRINTF 1" >>confdefs.h $as_echo "#define snprintf _snprintf" >>confdefs.h fi fi for ac_func in vfscanf do : ac_fn_c_check_func "$LINENO" "vfscanf" "ac_cv_func_vfscanf" if test "x$ac_cv_func_vfscanf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VFSCANF 1 _ACEOF else check_for_vfscanf=yes fi done if test "x$check_for_vfscanf" = "xyes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vfscanf in stdio.h" >&5 $as_echo_n "checking for vfscanf in stdio.h... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "vfscanf" >/dev/null 2>&1; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_VFSCANF 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f conftest* fi fi # $LIBWMF_BUILDSTYLE = heavy if test "x$require_trio" = "xyes" ; then LIBWMF_OPT_TRIO_TRUE= LIBWMF_OPT_TRIO_FALSE='#' else LIBWMF_OPT_TRIO_TRUE='#' LIBWMF_OPT_TRIO_FALSE= fi # Check whether --with-layers was given. if test "${with_layers+set}" = set; then : withval=$with_layers; if test "x$withval" = "xyes" ; then libwmf_layers=yes elif test "x$withval" = "xno" ; then libwmf_layers=no elif test "x$withval" = "xmodules" ; then as_fn_error $? "* * * Sorry, modules not yet supported! * * *" "$LINENO" 5 libwmf_layers=modules else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: * * * Bad option to --with-layers! * * *" >&5 $as_echo "$as_me: WARNING: * * * Bad option to --with-layers! * * *" >&2;} libwmf_layers=yes fi else libwmf_layers=yes fi if test $LIBWMF_BUILDSTYLE = lite; then libwmf_layers=no fi # $LIBWMF_BUILDSTYLE = lite if test $libwmf_layers = no ; then $as_echo "#define WITHOUT_LAYERS 1" >>confdefs.h fi if test $libwmf_layers = modules ; then LIBWMF_OPT_MODULES_TRUE= LIBWMF_OPT_MODULES_FALSE='#' else LIBWMF_OPT_MODULES_TRUE='#' LIBWMF_OPT_MODULES_FALSE= fi if test $libwmf_layers != no ; then LIBWMF_OPT_LAYERS_TRUE= LIBWMF_OPT_LAYERS_FALSE='#' else LIBWMF_OPT_LAYERS_TRUE='#' LIBWMF_OPT_LAYERS_FALSE= fi libwmf_x=no libwmf_xml=no libwmf_gd_jpeg=no libwmf_plot=no if test $libwmf_layers != no ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 $as_echo_n "checking for X... " >&6; } # Check whether --with-x was given. if test "${with_x+set}" = set; then : withval=$with_x; fi # $have_x is `yes', `no', `disabled', or empty when we do not yet know. if test "x$with_x" = xno; then # The user explicitly disabled X. have_x=disabled else case $x_includes,$x_libraries in #( *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. ac_x_includes=no ac_x_libraries=no rm -f -r conftest.dir if mkdir conftest.dir; then cd conftest.dir cat >Imakefile <<'_ACEOF' incroot: @echo incroot='${INCROOT}' usrlibdir: @echo usrlibdir='${USRLIBDIR}' libdir: @echo libdir='${LIBDIR}' _ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl dylib la dll; do if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && test -f "$ac_im_libdir/libX11.$ac_extension"; then ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are # bogus both because they are the default anyway, and because # using them would break gcc on systems where it needs fixed includes. case $ac_im_incroot in /usr/include) ac_x_includes= ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; esac case $ac_im_usrlibdir in /usr/lib | /usr/lib64 | /lib | /lib64) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; esac fi cd .. rm -f -r conftest.dir fi # Standard set of common directories for X headers. # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include /usr/X11R7/include /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 /usr/include/X11R7 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include /usr/local/X11R7/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 /usr/local/include/X11R7 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 /usr/X386/include /usr/x386/include /usr/XFree86/include/X11 /usr/include /usr/local/include /usr/unsupported/include /usr/athena/include /usr/local/x11r5/include /usr/lpp/Xamples/include /usr/openwin/include /usr/openwin/share/include' if test "$ac_x_includes" = no; then # Guess where to find include files, by looking for Xlib.h. # First, try using that file with no special directory specified. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # We can compile using X headers with no special include directory. ac_x_includes= else for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi done fi rm -f conftest.err conftest.i conftest.$ac_ext fi # $ac_x_includes = no if test "$ac_x_libraries" = no; then # Check for the libraries. # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS LIBS="-lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { XrmInitialize () ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else LIBS=$ac_save_LIBS for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl dylib la dll; do if test -r "$ac_dir/libX11.$ac_extension"; then ac_x_libraries=$ac_dir break 2 fi done done fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no case $ac_x_includes,$ac_x_libraries in #( no,* | *,no | *\'*) # Didn't find X, or a directory has "'" in its name. ac_cv_have_x="have_x=no";; #( *) # Record where we found X for the cache. ac_cv_have_x="have_x=yes\ ac_x_includes='$ac_x_includes'\ ac_x_libraries='$ac_x_libraries'" esac fi ;; #( *) have_x=yes;; esac eval "$ac_cv_have_x" fi # $with_x != no if test "$have_x" != yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 $as_echo "$have_x" >&6; } no_x=yes else # If each of the values was on the command line, it overrides each guess. test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes\ ac_x_includes='$x_includes'\ ac_x_libraries='$x_libraries'" { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 $as_echo "libraries $x_libraries, headers $x_includes" >&6; } fi if test "$no_x" = yes; then # Not all programs may use this symbol, but it does not hurt to define it. $as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= else if test -n "$x_includes"; then X_CFLAGS="$X_CFLAGS -I$x_includes" fi # It would also be nice to do this for all -L options, not just this one. if test -n "$x_libraries"; then X_LIBS="$X_LIBS -L$x_libraries" # For Solaris; some versions of Sun CC require a space after -R and # others require no space. Words are not sufficient . . . . { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 $as_echo_n "checking whether -R must be followed by a space... " >&6; } ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" ac_xsave_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } X_LIBS="$X_LIBS -R$x_libraries" else LIBS="$ac_xsave_LIBS -R $x_libraries" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } X_LIBS="$X_LIBS -R $x_libraries" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 $as_echo "neither works" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_c_werror_flag=$ac_xsave_c_werror_flag LIBS=$ac_xsave_LIBS fi # Check for system-dependent libraries X programs must link with. # Do this before checking for the system-independent R6 libraries # (-lICE), since we may need -lsocket or whatever for X linking. if test "$ISC" = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" else # Martyn Johnson says this is needed for Ultrix, if the X # libraries were built with DECnet support. And Karl Berry says # the Alpha needs dnet_stub (dnet does not exist). ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XOpenDisplay (); int main () { return XOpenDisplay (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 $as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dnet_ntoa (); int main () { return dnet_ntoa (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dnet_dnet_ntoa=yes else ac_cv_lib_dnet_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 $as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet_stub $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dnet_ntoa (); int main () { return dnet_ntoa (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dnet_stub_dnet_ntoa=yes else ac_cv_lib_dnet_stub_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" fi fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$ac_xsave_LIBS" # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, # to get the SysV transport functions. # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) # needs -lnsl. # The nsl library prevents programs from opening the X display # on Irix 5.2, according to T.E. Dickey. # The functions gethostbyname, getservbyname, and inet_addr are # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" if test "x$ac_cv_func_gethostbyname" = xyes; then : fi if test $ac_cv_func_gethostbyname = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } if ${ac_cv_lib_nsl_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nsl_gethostbyname=yes else ac_cv_lib_nsl_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" fi if test $ac_cv_lib_nsl_gethostbyname = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 $as_echo_n "checking for gethostbyname in -lbsd... " >&6; } if ${ac_cv_lib_bsd_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_bsd_gethostbyname=yes else ac_cv_lib_bsd_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" fi fi fi # lieder@skyler.mavd.honeywell.com says without -lsocket, # socket/setsockopt and other routines are undefined under SCO ODT # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary # on later versions), says Simon Leinen: it contains gethostby* # variants that don't use the name server (or something). -lsocket # must be given before -lnsl if both are needed. We assume that # if connect needs -lnsl, so does gethostbyname. ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" if test "x$ac_cv_func_connect" = xyes; then : fi if test $ac_cv_func_connect = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 $as_echo_n "checking for connect in -lsocket... " >&6; } if ${ac_cv_lib_socket_connect+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); int main () { return connect (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_connect=yes else ac_cv_lib_socket_connect=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 $as_echo "$ac_cv_lib_socket_connect" >&6; } if test "x$ac_cv_lib_socket_connect" = xyes; then : X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" fi fi # Guillermo Gomez says -lposix is necessary on A/UX. ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" if test "x$ac_cv_func_remove" = xyes; then : fi if test $ac_cv_func_remove = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 $as_echo_n "checking for remove in -lposix... " >&6; } if ${ac_cv_lib_posix_remove+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char remove (); int main () { return remove (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_posix_remove=yes else ac_cv_lib_posix_remove=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 $as_echo "$ac_cv_lib_posix_remove" >&6; } if test "x$ac_cv_lib_posix_remove" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" fi fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" if test "x$ac_cv_func_shmat" = xyes; then : fi if test $ac_cv_func_shmat = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 $as_echo_n "checking for shmat in -lipc... " >&6; } if ${ac_cv_lib_ipc_shmat+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lipc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shmat (); int main () { return shmat (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ipc_shmat=yes else ac_cv_lib_ipc_shmat=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 $as_echo "$ac_cv_lib_ipc_shmat" >&6; } if test "x$ac_cv_lib_ipc_shmat" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" fi fi fi # Check for libraries that X11R6 Xt/Xaw programs need. ac_save_LDFLAGS=$LDFLAGS test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to # check for ICE first), but we must link in the order -lSM -lICE or # we get undefined symbols. So assume we have SM if we have ICE. # These have to be linked with before -lX11, unlike the other # libraries we check for below, so use a different variable. # John Interrante, Karl Berry { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 $as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char IceConnectionNumber (); int main () { return IceConnectionNumber (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ICE_IceConnectionNumber=yes else ac_cv_lib_ICE_IceConnectionNumber=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" fi LDFLAGS=$ac_save_LDFLAGS fi else X_CFLAGS="-DX_DISPLAY_MISSING=1" no_x=yes fi WMF_X_CONFIG_CFLAGS="" WMF_X_CFLAGS="" WMF_X_LDFLAGS="" WMF_X_CFLAGS="$X_CFLAGS" if test "x$no_x" != "xyes" ; then WMF_X_CONFIG_CFLAGS="$X_CFLAGS" WMF_X_LDFLAGS="$X_LIBS -lX11" libwmf_x=yes fi if test "x$no_x" != "xyes" ; then LIBWMF_OPT_X_TRUE= LIBWMF_OPT_X_FALSE='#' else LIBWMF_OPT_X_TRUE='#' LIBWMF_OPT_X_FALSE= fi WMF_XML_DIR="" WMF_XML_CFLAGS="" WMF_XML_LDFLAGS="" libwmf_xml=unknown # Check whether --with-expat was given. if test "${with_expat+set}" = set; then : withval=$with_expat; if test "x$withval" = "xno"; then libwmf_xml=libxml2 elif test "x$withval" = "xyes"; then libwmf_xml=expat else libwmf_xml=expat WMF_XML_DIR="$withval" fi fi # Check whether --with-libxml2 was given. if test "${with_libxml2+set}" = set; then : withval=$with_libxml2; if test "x$withval" = "xno"; then if test $libwmf_xml = libxml2; then libwmf_xml=none else libwmf_xml=expat fi elif test "x$withval" = "xyes"; then if test $libwmf_xml = expat; then as_fn_error $? "* * * Can't specify both expat and libxml2! * * *" "$LINENO" 5 else libwmf_xml=libxml2 fi else if test $libwmf_xml = expat; then as_fn_error $? "* * * Can't specify both expat and libxml2! * * *" "$LINENO" 5 else libwmf_xml=libxml2 WMF_XML_DIR="$withval" fi fi fi if test $LIBWMF_BUILDSTYLE = lite; then libwmf_xml=none fi # $LIBWMF_BUILDSTYLE = lite if test $libwmf_xml = expat -o $libwmf_xml = unknown; then if test "x$WMF_XML_DIR" != "x"; then _cppflags=$CPPFLAGS _ldflags=$LDFLAGS CPPFLAGS="$CPPFLAGS -I$WMF_XML_DIR/include" LDFLAGS="$LDFLAGS -L$WMF_XML_DIR/lib" WMF_XML_CFLAGS="-I$WMF_XML_DIR/include" WMF_XML_LDFLAGS="-L$WMF_XML_DIR/lib -lexpat" else WMF_XML_CFLAGS="" WMF_XML_LDFLAGS="-lexpat" fi ac_fn_c_check_header_mongrel "$LINENO" "expat.h" "ac_cv_header_expat_h" "$ac_includes_default" if test "x$ac_cv_header_expat_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML_ParserFree in -lexpat" >&5 $as_echo_n "checking for XML_ParserFree in -lexpat... " >&6; } if ${ac_cv_lib_expat_XML_ParserFree+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lexpat $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XML_ParserFree (); int main () { return XML_ParserFree (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_expat_XML_ParserFree=yes else ac_cv_lib_expat_XML_ParserFree=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_expat_XML_ParserFree" >&5 $as_echo "$ac_cv_lib_expat_XML_ParserFree" >&6; } if test "x$ac_cv_lib_expat_XML_ParserFree" = xyes; then : libwmf_xml=expat else if test $libwmf_xml = expat; then as_fn_error $? "* * * unable to find expat * * *" "$LINENO" 5 fi fi else if test $libwmf_xml = expat; then as_fn_error $? "* * * unable to find expat * * *" "$LINENO" 5 fi fi if test "x$WMF_XML_DIR" != "x"; then CPPFLAGS=$_cppflags LDFLAGS=$_ldflags fi fi if test $libwmf_xml = libxml2 -o $libwmf_xml = unknown; then if test -n "$WMF_XML_DIR" ; then # Extract the first word of "xml2-config", so it can be a program name with args. set dummy xml2-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XML2_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $XML2_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_XML2_CONFIG="$XML2_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $WMF_XML_DIR/bin $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XML2_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XML2_CONFIG=$ac_cv_path_XML2_CONFIG if test -n "$XML2_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XML2_CONFIG" >&5 $as_echo "$XML2_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else # Extract the first word of "xml2-config", so it can be a program name with args. set dummy xml2-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XML2_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $XML2_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_XML2_CONFIG="$XML2_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XML2_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XML2_CONFIG=$ac_cv_path_XML2_CONFIG if test -n "$XML2_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XML2_CONFIG" >&5 $as_echo "$XML2_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test "x$XML2_CONFIG" != "x"; then WMF_XML_CFLAGS=`$XML2_CONFIG --cflags` WMF_XML_LDFLAGS=`$XML2_CONFIG --libs` libwmf_xml=libxml2 elif test $libwmf_xml = libxml2; then as_fn_error $? "* * * unable to find xml2-config; see ftp://xmlsoft.org/ * * *" "$LINENO" 5 fi fi if test $libwmf_xml = expat; then $as_echo "#define HAVE_EXPAT 1" >>confdefs.h elif test $libwmf_xml = libxml2; then $as_echo "#define HAVE_LIBXML2 1" >>confdefs.h else libwmf_xml=none WMF_XML_CFLAGS="" WMF_XML_LDFLAGS="" fi WMF_FT_CONFIG_CFLAGS="" WMF_FT_CFLAGS="" WMF_FT_LDFLAGS="" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS have_freetype=no # Check whether --with-freetype was given. if test "${with_freetype+set}" = set; then : withval=$with_freetype; if test "x$withval" != "xno" ; then if test "x$withval" != "xyes" ; then FREETYPE_DIR=$withval fi else as_fn_error $? "* * * libwmf requires freetype2 * * *" "$LINENO" 5 fi fi if test -n "$FREETYPE_DIR" ; then # Extract the first word of "freetype-config", so it can be a program name with args. set dummy freetype-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_FREETYPE_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $FREETYPE_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_FREETYPE_CONFIG="$FREETYPE_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$FREETYPE_DIR/bin:$PATH" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_FREETYPE_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi FREETYPE_CONFIG=$ac_cv_path_FREETYPE_CONFIG if test -n "$FREETYPE_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_CONFIG" >&5 $as_echo "$FREETYPE_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else # Extract the first word of "freetype-config", so it can be a program name with args. set dummy freetype-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_FREETYPE_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $FREETYPE_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_FREETYPE_CONFIG="$FREETYPE_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_FREETYPE_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi FREETYPE_CONFIG=$ac_cv_path_FREETYPE_CONFIG if test -n "$FREETYPE_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_CONFIG" >&5 $as_echo "$FREETYPE_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -n "$FREETYPE_CONFIG" ; then if test -n "$FREETYPE_DIR" ; then freetype_cflags="`$FREETYPE_CONFIG --cflags` -I$FREETYPE_DIR/include" freetype_libs=`$FREETYPE_CONFIG --libs` else freetype_cflags=`$FREETYPE_CONFIG --cflags` freetype_libs=`$FREETYPE_CONFIG --libs` fi else if test -n "$FREETYPE_DIR" ; then freetype_cflags="-I$FREETYPE_DIR/include/freetype2 -I$FREETYPE_DIR/include" freetype_libs="-L$FREETYPE_DIR/lib -lfreetype" else freetype_cflags="" freetype_libs="-lfreetype" fi fi CPPFLAGS="$freetype_cflags $CPPFLAGS" LDFLAGS="$LDFLAGS $freetype_libs" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT_Init_FreeType in -lfreetype" >&5 $as_echo_n "checking for FT_Init_FreeType in -lfreetype... " >&6; } if ${ac_cv_lib_freetype_FT_Init_FreeType+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lfreetype $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char FT_Init_FreeType (); int main () { return FT_Init_FreeType (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_freetype_FT_Init_FreeType=yes else ac_cv_lib_freetype_FT_Init_FreeType=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_freetype_FT_Init_FreeType" >&5 $as_echo "$ac_cv_lib_freetype_FT_Init_FreeType" >&6; } if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = xyes; then : WMF_FT_LDFLAGS="$freetype_libs" else as_fn_error $? "* * * freetype(2) is required * * *" "$LINENO" 5 fi ac_fn_c_check_header_mongrel "$LINENO" "ft2build.h" "ac_cv_header_ft2build_h" "$ac_includes_default" if test "x$ac_cv_header_ft2build_h" = xyes; then : WMF_FT_CFLAGS="$freetype_cflags" WMF_FT_CONFIG_CFLAGS="$freetype_cflags" else as_fn_error $? "* * * freetype(2) is required * * *" "$LINENO" 5 fi GD_DEFS="$GD_DEFS -DHAVE_LIBFREETYPE" CPPFLAGS=$_cppflags LDFLAGS=$_ldflags WMF_Z_CONFIG_CFLAGS="" WMF_Z_CFLAGS="" WMF_Z_LDFLAGS="" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS # Check whether --with-zlib was given. if test "${with_zlib+set}" = set; then : withval=$with_zlib; if test "x$withval" != "xno" ; then if test "x$withval" != "xyes" ; then ZLIB_DIR=$withval CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" fi else as_fn_error $? "* * * libwmf requires zlib * * *" "$LINENO" 5 fi fi if test $LIBWMF_BUILDSTYLE = heavy; then ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" if test "x$ac_cv_header_zlib_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzputs in -lz" >&5 $as_echo_n "checking for gzputs in -lz... " >&6; } if ${ac_cv_lib_z_gzputs+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gzputs (); int main () { return gzputs (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_z_gzputs=yes else ac_cv_lib_z_gzputs=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzputs" >&5 $as_echo "$ac_cv_lib_z_gzputs" >&6; } if test "x$ac_cv_lib_z_gzputs" = xyes; then : if test "x$ZLIB_DIR" != "x" ; then WMF_Z_CONFIG_CFLAGS="-I$ZLIB_DIR/include" WMF_Z_CFLAGS="-I$ZLIB_DIR/include" WMF_Z_LDFLAGS="-L$ZLIB_DIR/lib -lz" else WMF_Z_LDFLAGS="-lz" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzputs in -lgz" >&5 $as_echo_n "checking for gzputs in -lgz... " >&6; } if ${ac_cv_lib_gz_gzputs+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gzputs (); int main () { return gzputs (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gz_gzputs=yes else ac_cv_lib_gz_gzputs=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gz_gzputs" >&5 $as_echo "$ac_cv_lib_gz_gzputs" >&6; } if test "x$ac_cv_lib_gz_gzputs" = xyes; then : if test "x$ZLIB_DIR" != "x" ; then WMF_Z_CONFIG_CFLAGS="-I$ZLIB_DIR/include" WMF_Z_CFLAGS="-I$ZLIB_DIR/include" WMF_Z_LDFLAGS="-L$ZLIB_DIR/lib -lgz" else WMF_Z_LDFLAGS="-lgz" fi else as_fn_error $? "* * * unable to find libz which is required by libwmf * * *" "$LINENO" 5 fi fi else as_fn_error $? "* * * unable to find \"zlib.h\" which is required by libwmf * * *" "$LINENO" 5 fi fi # $LIBWMF_BUILDSTYLE = heavy CPPFLAGS=$_cppflags LDFLAGS=$_ldflags WMF_PNG_CFLAGS="" WMF_PNG_LDFLAGS="" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS # Check whether --with-png was given. if test "${with_png+set}" = set; then : withval=$with_png; if test "x$withval" != "xno" ; then if test "x$withval" != "xyes" ; then PNG_DIR=$withval CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" fi else as_fn_error $? "* * * libwmf requires libpng * * *" "$LINENO" 5 fi fi if test $LIBWMF_BUILDSTYLE = heavy; then CPPFLAGS="$CPPFLAGS $WMF_Z_CFLAGS" ac_fn_c_check_header_mongrel "$LINENO" "png.h" "ac_cv_header_png_h" "$ac_includes_default" if test "x$ac_cv_header_png_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_write_image in -lpng" >&5 $as_echo_n "checking for png_write_image in -lpng... " >&6; } if ${ac_cv_lib_png_png_write_image+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpng -lz -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char png_write_image (); int main () { return png_write_image (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_png_png_write_image=yes else ac_cv_lib_png_png_write_image=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_png_write_image" >&5 $as_echo "$ac_cv_lib_png_png_write_image" >&6; } if test "x$ac_cv_lib_png_png_write_image" = xyes; then : if test "x$PNG_DIR" != "x" ; then WMF_PNG_CFLAGS="-I$PNG_DIR/include" WMF_PNG_LDFLAGS="-L$PNG_DIR/lib -lpng" else WMF_PNG_LDFLAGS="-lpng" fi else as_fn_error $? "* * * unable to find libpng which is required by libwmf * * *" "$LINENO" 5 fi else as_fn_error $? "* * * unable to find \"png.h\" which is required by libwmf * * *" "$LINENO" 5 fi $as_echo "#define HAVE_LIBPNG 1" >>confdefs.h GD_DEFS="$GD_DEFS -DHAVE_LIBPNG" fi # $LIBWMF_BUILDSTYLE = heavy CPPFLAGS=$_cppflags LDFLAGS=$_ldflags WMF_JPEG_CFLAGS="" WMF_JPEG_LDFLAGS="" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS # Check whether --with-jpeg was given. if test "${with_jpeg+set}" = set; then : withval=$with_jpeg; if test "x$withval" != "xno" ; then if test "x$withval" != "xyes" ; then JPEG_DIR=$withval CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" fi search_for_jpeg=yes else search_for_jpeg=no fi else search_for_jpeg=yes fi if test $LIBWMF_BUILDSTYLE = lite; then search_for_jpeg=no fi # $LIBWMF_BUILDSTYLE = lite if test "$search_for_jpeg" != "no" ; then ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" if test "x$ac_cv_header_jpeglib_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_CreateCompress in -ljpeg" >&5 $as_echo_n "checking for jpeg_CreateCompress in -ljpeg... " >&6; } if ${ac_cv_lib_jpeg_jpeg_CreateCompress+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ljpeg $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char jpeg_CreateCompress (); int main () { return jpeg_CreateCompress (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_jpeg_jpeg_CreateCompress=yes else ac_cv_lib_jpeg_jpeg_CreateCompress=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_CreateCompress" >&5 $as_echo "$ac_cv_lib_jpeg_jpeg_CreateCompress" >&6; } if test "x$ac_cv_lib_jpeg_jpeg_CreateCompress" = xyes; then : if test "x$JPEG_DIR" != "x" ; then WMF_JPEG_CFLAGS="-I$JPEG_DIR/include" WMF_JPEG_LDFLAGS="-L$JPEG_DIR/lib -ljpeg" else WMF_JPEG_LDFLAGS="-ljpeg" fi $as_echo "#define HAVE_LIBJPEG 1" >>confdefs.h GD_DEFS="$GD_DEFS -DHAVE_LIBJPEG" libwmf_gd_jpeg=yes fi fi fi CPPFLAGS=$_cppflags LDFLAGS=$_ldflags WMF_GD_CFLAGS="" WMF_GD_LDFLAGS="" libwmf_gd="wmf" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS # Check whether --with-sys-gd was given. if test "${with_sys_gd+set}" = set; then : withval=$with_sys_gd; if test "x$withval" != "xno" ; then if test "x$withval" != "xyes" ; then GD_DIR=$withval CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" fi search_for_gd=yes else search_for_gd=no fi else search_for_gd=yes fi # Check whether --enable-gd was given. if test "${enable_gd+set}" = set; then : enableval=$enable_gd; if test "x$enableval" = "xno" ; then search_for_gd=no libwmf_gd="none" fi else if test $libwmf_layers = no ; then search_for_gd=no libwmf_gd="none" fi fi if test "$search_for_gd" != "no" ; then other_libs="" if test "x$libwmf_x" = "xyes" ; then CPPFLAGS="$CPPFLAGS $WMF_X_CFLAGS" LDFLAGS="$LDFLAGS $WMF_X_LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lXpm" >&5 $as_echo_n "checking for main in -lXpm... " >&6; } if ${ac_cv_lib_Xpm_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXpm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_Xpm_main=yes else ac_cv_lib_Xpm_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xpm_main" >&5 $as_echo "$ac_cv_lib_Xpm_main" >&6; } if test "x$ac_cv_lib_Xpm_main" = xyes; then : other_libs="$other_libs -lXpm" WMF_GD_LDFLAGS="-lXpm" fi fi if test "x$libwmf_gd_jpeg" = "xyes" ; then CPPFLAGS="$CPPFLAGS $WMF_JPEG_CFLAGS" LDFLAGS="$LDFLAGS $WMF_JPEG_LDFLAGS" other_libs="$other_libs -ljpeg" fi CPPFLAGS="$CPPFLAGS $WMF_FT_CFLAGS $WMF_PNG_CFLAGS $WMF_Z_CFLAGS" LDFLAGS="$LDFLAGS $WMF_FT_LDFLAGS $WMF_PNG_LDFLAGS $WMF_Z_LDFLAGS" other_libs="$other_libs -lfreetype -lpng -lz -lm" ac_fn_c_check_header_mongrel "$LINENO" "gd.h" "ac_cv_header_gd_h" "$ac_includes_default" if test "x$ac_cv_header_gd_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdClipSetAdd in -lgd" >&5 $as_echo_n "checking for gdClipSetAdd in -lgd... " >&6; } if ${ac_cv_lib_gd_gdClipSetAdd+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgd $other_libs $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gdClipSetAdd (); int main () { return gdClipSetAdd (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gd_gdClipSetAdd=yes else ac_cv_lib_gd_gdClipSetAdd=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdClipSetAdd" >&5 $as_echo "$ac_cv_lib_gd_gdClipSetAdd" >&6; } if test "x$ac_cv_lib_gd_gdClipSetAdd" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdft_draw_bitmap in -lgd" >&5 $as_echo_n "checking for gdft_draw_bitmap in -lgd... " >&6; } if ${ac_cv_lib_gd_gdft_draw_bitmap+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgd $other_libs $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gdft_draw_bitmap (); int main () { return gdft_draw_bitmap (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gd_gdft_draw_bitmap=yes else ac_cv_lib_gd_gdft_draw_bitmap=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdft_draw_bitmap" >&5 $as_echo "$ac_cv_lib_gd_gdft_draw_bitmap" >&6; } if test "x$ac_cv_lib_gd_gdft_draw_bitmap" = xyes; then : libwmf_gd="sys" fi fi fi fi if test "x$libwmf_gd" != "xnone" ; then $as_echo "#define HAVE_GD 1" >>confdefs.h build_gd_layer=yes else build_gd_layer=no fi if test "x$libwmf_gd" = "xsys" ; then if test "x$GD_DIR" != "x" ; then WMF_GD_CFLAGS="-I$GD_DIR/include" WMF_GD_LDFLAGS="-L$GD_DIR/lib -lgd $WMF_GD_LDFLAGS" else WMF_GD_LDFLAGS="-lgd $WMF_GD_LDFLAGS" fi elif test "x$libwmf_gd" = "xnone" ; then libwmf_gd="sys" else WMF_GD_LDFLAGS="" fi if test "x$build_gd_layer" = "xyes" ; then LIBWMF_OPT_GD_TRUE= LIBWMF_OPT_GD_FALSE='#' else LIBWMF_OPT_GD_TRUE='#' LIBWMF_OPT_GD_FALSE= fi if test "x$libwmf_gd" = "xsys" ; then LIBWMF_OPT_SYS_GD_TRUE= LIBWMF_OPT_SYS_GD_FALSE='#' else LIBWMF_OPT_SYS_GD_TRUE='#' LIBWMF_OPT_SYS_GD_FALSE= fi CPPFLAGS=$_cppflags LDFLAGS=$_ldflags WMF_PLOT_CFLAGS="" WMF_PLOT_LDFLAGS="" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS #AC_ARG_WITH(plot,[ --with-plot=DIR use GNU plotutils (>= 2.4.0) in DIR (default no)],[ # if [ test "x$withval" != "xno" ]; then # AC_MSG_ERROR([* * * plotutils is not supported, sorry * * *]) # if [ test "x$withval" != "xyes" ]; then # PLOT_DIR=$withval # CPPFLAGS="$CPPFLAGS -I$withval/include" # LDFLAGS="$LDFLAGS -L$withval/lib" # fi # search_for_plot=yes # else # search_for_plot=no # fi #],[ search_for_plot=no #]) search_for_plot=no if test "$search_for_plot" != "no" ; then ac_fn_c_check_header_mongrel "$LINENO" "plot.h" "ac_cv_header_plot_h" "$ac_includes_default" if test "x$ac_cv_header_plot_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pl_libplot_ver in -lplot" >&5 $as_echo_n "checking for pl_libplot_ver in -lplot... " >&6; } if ${ac_cv_lib_plot_pl_libplot_ver+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lplot $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pl_libplot_ver (); int main () { return pl_libplot_ver (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_plot_pl_libplot_ver=yes else ac_cv_lib_plot_pl_libplot_ver=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_plot_pl_libplot_ver" >&5 $as_echo "$ac_cv_lib_plot_pl_libplot_ver" >&6; } if test "x$ac_cv_lib_plot_pl_libplot_ver" = xyes; then : ac_can_link_libplot=no LIBPLOT_LIBS="-lplot" ac_libplot_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS $LIBPLOT_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libplot requires X" >&5 $as_echo_n "checking whether libplot requires X... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { plPlotter* plotter; plPlotterParams* params; params = pl_newplparams (); plotter = pl_newpl_r ("X",stdin,stdout,stderr,params); pl_deletepl_r (plotter); pl_deleteplparams (params); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_can_link_libplot=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$ac_libplot_ldflags if test "x$no_x" != "xyes" ; then if test $ac_can_link_libplot != yes ; then LIBPLOT_LIBS="-lplot $X_LIBS -lXaw -lXmu -lXt $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS -lm" ac_libplot_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS $LIBPLOT_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libplot links against Athena" >&5 $as_echo_n "checking whether libplot links against Athena... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { plPlotter* plotter; plPlotterParams* params; params = pl_newplparams (); plotter = pl_newpl_r ("X",stdin,stdout,stderr,params); pl_deletepl_r (plotter); pl_deleteplparams (params); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_can_link_libplot=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$ac_libplot_ldflags fi if test $ac_can_link_libplot != yes ; then ac_libplot_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS $X_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lXp" >&5 $as_echo_n "checking for main in -lXp... " >&6; } if ${ac_cv_lib_Xp_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lXp -lXext -lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_Xp_main=yes else ac_cv_lib_Xp_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xp_main" >&5 $as_echo "$ac_cv_lib_Xp_main" >&6; } if test "x$ac_cv_lib_Xp_main" = xyes; then : libXp="-lXp" else libXp="" fi LIBPLOT_LIBS="-lplot $X_LIBS -lXm $libXp -lXt $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS -lm" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgen" >&5 $as_echo_n "checking for main in -lgen... " >&6; } if ${ac_cv_lib_gen_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgen $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gen_main=yes else ac_cv_lib_gen_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gen_main" >&5 $as_echo "$ac_cv_lib_gen_main" >&6; } if test "x$ac_cv_lib_gen_main" = xyes; then : LIBPLOT_LIBS="$LIBPLOT_LIBS -lgen" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lPW" >&5 $as_echo_n "checking for main in -lPW... " >&6; } if ${ac_cv_lib_PW_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lPW $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_PW_main=yes else ac_cv_lib_PW_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_PW_main" >&5 $as_echo "$ac_cv_lib_PW_main" >&6; } if test "x$ac_cv_lib_PW_main" = xyes; then : LIBPLOT_LIBS="$LIBPLOT_LIBS -lPW" fi LDFLAGS=$ac_libplot_ldflags LDFLAGS="$LDFLAGS $LIBPLOT_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libplot links against Motif" >&5 $as_echo_n "checking whether libplot links against Motif... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { plPlotter* plotter; plPlotterParams* params; params = pl_newplparams (); plotter = pl_newpl_r ("X",stdin,stdout,stderr,params); pl_deletepl_r (plotter); pl_deleteplparams (params); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_can_link_libplot=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$ac_libplot_ldflags fi fi if test $ac_can_link_libplot != no ; then if test "x$PLOT_DIR" != "x" ; then WMF_PLOT_CFLAGS="-I$PLOT_DIR/include" WMF_PLOT_LDFLAGS="-L$PLOT_DIR/lib $LIBPLOT_LIBS" else WMF_PLOT_LDFLAGS="$LIBPLOT_LIBS" fi $as_echo "#define HAVE_LIBPLOT 1" >>confdefs.h libwmf_plot=maybe else as_fn_error $? "* * * sorry - unable to link against libplot * * *" "$LINENO" 5 fi else as_fn_error $? "GNU plotutils >= 2.4.0 required" "$LINENO" 5 fi fi fi if test "x$libwmf_plot" != "xno" ; then LIBWMF_OPT_PLOT_TRUE= LIBWMF_OPT_PLOT_FALSE='#' else LIBWMF_OPT_PLOT_TRUE='#' LIBWMF_OPT_PLOT_FALSE= fi CPPFLAGS=$_cppflags LDFLAGS=$_ldflags wmf_gdk_pixbuf=no GDK_PIXBUF_CFLAGS="" GDK_PIXBUF_LIBS="" GDK_PIXBUF_DIR="" if test $LIBWMF_BUILDSTYLE != lite; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GDK_PIXBUF" >&5 $as_echo_n "checking for GDK_PIXBUF... " >&6; } if test -n "$GDK_PIXBUF_CFLAGS"; then pkg_cv_GDK_PIXBUF_CFLAGS="$GDK_PIXBUF_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gdk-pixbuf-2.0 >= 2.1.2\""; } >&5 ($PKG_CONFIG --exists --print-errors "gdk-pixbuf-2.0 >= 2.1.2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GDK_PIXBUF_CFLAGS=`$PKG_CONFIG --cflags "gdk-pixbuf-2.0 >= 2.1.2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GDK_PIXBUF_LIBS"; then pkg_cv_GDK_PIXBUF_LIBS="$GDK_PIXBUF_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gdk-pixbuf-2.0 >= 2.1.2\""; } >&5 ($PKG_CONFIG --exists --print-errors "gdk-pixbuf-2.0 >= 2.1.2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GDK_PIXBUF_LIBS=`$PKG_CONFIG --libs "gdk-pixbuf-2.0 >= 2.1.2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GDK_PIXBUF_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gdk-pixbuf-2.0 >= 2.1.2" 2>&1` else GDK_PIXBUF_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gdk-pixbuf-2.0 >= 2.1.2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GDK_PIXBUF_PKG_ERRORS" >&5 wmf_gdk_pixbuf=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } wmf_gdk_pixbuf=no else GDK_PIXBUF_CFLAGS=$pkg_cv_GDK_PIXBUF_CFLAGS GDK_PIXBUF_LIBS=$pkg_cv_GDK_PIXBUF_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } GDK_PIXBUF_VERSION=`$PKG_CONFIG --variable=gdk_pixbuf_binary_version gdk-pixbuf-2.0` GDK_PIXBUF_DIR="gdk-pixbuf-2.0/$GDK_PIXBUF_VERSION/loaders" wmf_gdk_pixbuf=yes fi fi if test $wmf_gdk_pixbuf = yes; then LIBWMF_GDK_PIXBUF_TRUE= LIBWMF_GDK_PIXBUF_FALSE='#' else LIBWMF_GDK_PIXBUF_TRUE='#' LIBWMF_GDK_PIXBUF_FALSE= fi # Check whether --with-docdir was given. if test "${with_docdir+set}" = set; then : withval=$with_docdir; WMF_DOCDIR=$withval else if test "x$prefix" = "xNONE"; then WMF_DOCDIR=$ac_default_prefix/share/doc/$PACKAGE else WMF_DOCDIR=$prefix/share/doc/$PACKAGE fi fi # Check whether --with-fontdir was given. if test "${with_fontdir+set}" = set; then : withval=$with_fontdir; WMF_FONTDIR=$withval else if test "x$prefix" = "xNONE"; then WMF_FONTDIR=$ac_default_prefix/share/$PACKAGE/fonts else WMF_FONTDIR=$prefix/share/$PACKAGE/fonts fi fi # Check whether --with-sysfontmap was given. if test "${with_sysfontmap+set}" = set; then : withval=$with_sysfontmap; WMF_SYS_FONTMAP=$withval else WMF_SYS_FONTMAP=/usr/share/fonts/fontmap fi # Check whether --with-xtrafontmap was given. if test "${with_xtrafontmap+set}" = set; then : withval=$with_xtrafontmap; WMF_XTRA_FONTMAP=$withval else WMF_XTRA_FONTMAP=$WMF_FONTDIR/fontmap fi # Check whether --with-gsfontmap was given. if test "${with_gsfontmap+set}" = set; then : withval=$with_gsfontmap; WMF_GS_FONTMAP=$withval else if test -r /var/lib/defoma/gs.d/dirs/fonts/Fontmap.GS ; then WMF_GS_FONTMAP=/var/lib/defoma/gs.d/dirs/fonts/Fontmap.GS elif test -r /var/lib/defoma/gs.d/dirs/fonts/Fontmap ; then WMF_GS_FONTMAP=/var/lib/defoma/gs.d/dirs/fonts/Fontmap elif test -r 'c:/progra~1/gs/gs/lib/fontmap.gs' ; then WMF_GS_FONTMAP='c:/progra~1/gs/gs/lib/fontmap.gs' elif test -r 'c:/progra~1/gs/gs/lib/fontmap' ; then WMF_GS_FONTMAP='c:/progra~1/gs/gs/lib/fontmap' elif test -r 'c:/gs/fonts/fontmap.gs' ; then WMF_GS_FONTMAP='c:/gs/fonts/fontmap.gs' elif test -r 'c:/gs/fonts/fontmap' ; then WMF_GS_FONTMAP='c:/gs/fonts/fontmap' else WMF_GS_FONTMAP=/usr/share/ghostscript/5.50/Fontmap if test -d /usr/share/ghostscript; then for i in `ls /usr/share/ghostscript`; do if test -r "/usr/share/ghostscript/$i/Resource/Init/Fontmap.GS"; then WMF_GS_FONTMAP="/usr/share/ghostscript/$i/Resource/Init/Fontmap.GS" elif test -r "/usr/share/ghostscript/$i/Fontmap.GS"; then WMF_GS_FONTMAP="/usr/share/ghostscript/$i/Fontmap.GS" elif test -r "/usr/share/ghostscript/$i/Fontmap"; then WMF_GS_FONTMAP="/usr/share/ghostscript/$i/Fontmap" elif test -r "/usr/share/ghostscript/$i/lib/Fontmap.GS"; then WMF_GS_FONTMAP="/usr/share/ghostscript/$i/lib/Fontmap.GS" elif test -r "/usr/share/ghostscript/$i/lib/Fontmap"; then WMF_GS_FONTMAP="/usr/share/ghostscript/$i/lib/Fontmap" fi done fi fi fi # Check whether --with-gsfontdir was given. if test "${with_gsfontdir+set}" = set; then : withval=$with_gsfontdir; WMF_GS_FONTDIR=$withval else if test -d /var/lib/defoma/gs.d/dirs/fonts ; then WMF_GS_FONTDIR=/var/lib/defoma/gs.d/dirs/fonts elif test -d 'c:/progra~1/gs/gs/lib/fonts' ; then WMF_GS_FONTDIR='c:/progra~1/gs/gs/lib/fonts' elif test -d 'c:/gs/fonts' ; then WMF_GS_FONTDIR='c:/gs/fonts' else WMF_GS_FONTDIR=/usr/share/fonts/default/Type1 fi fi WMF_CFLAGS="$WMF_FT_CFLAGS $WMF_X_CFLAGS $WMF_PLOT_CFLAGS $WMF_XML_CFLAGS" WMF_CFLAGS="$WMF_CFLAGS $WMF_GD_CFLAGS $WMF_JPEG_CFLAGS $WMF_PNG_CFLAGS $WMF_Z_CFLAGS" WMF_CONFIG_CFLAGS="$WMF_FT_CONFIG_CFLAGS $WMF_Z_CONFIG_CFLAGS $WMF_X_CONFIG_CFLAGS" WMF_LIBFLAGS="$WMF_PLOT_LDFLAGS $WMF_GD_LDFLAGS $WMF_FT_LDFLAGS $WMF_X_LDFLAGS $WMF_XML_LDFLAGS" WMF_LIBFLAGS="$WMF_LIBFLAGS $WMF_JPEG_LDFLAGS $WMF_PNG_LDFLAGS $WMF_Z_LDFLAGS $SYS_LIBM" ac_config_files="$ac_config_files Makefile doc/Makefile doc/caolan/Makefile doc/caolan/pics/Makefile doc/html/Makefile fonts/Makefile fonts/libwmf-fontmap fonts/fontmap include/Makefile include/libwmf/Makefile src/Makefile src/extra/Makefile src/extra/trio/Makefile src/extra/gd/Makefile src/ipa/Makefile src/convert/Makefile libwmf.pc libwmf.spec" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${LIBWMF_BUILD_ALL_TRUE}" && test -z "${LIBWMF_BUILD_ALL_FALSE}"; then as_fn_error $? "conditional \"LIBWMF_BUILD_ALL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBWMF_OPT_TRIO_TRUE}" && test -z "${LIBWMF_OPT_TRIO_FALSE}"; then as_fn_error $? "conditional \"LIBWMF_OPT_TRIO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBWMF_OPT_MODULES_TRUE}" && test -z "${LIBWMF_OPT_MODULES_FALSE}"; then as_fn_error $? "conditional \"LIBWMF_OPT_MODULES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBWMF_OPT_LAYERS_TRUE}" && test -z "${LIBWMF_OPT_LAYERS_FALSE}"; then as_fn_error $? "conditional \"LIBWMF_OPT_LAYERS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBWMF_OPT_X_TRUE}" && test -z "${LIBWMF_OPT_X_FALSE}"; then as_fn_error $? "conditional \"LIBWMF_OPT_X\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBWMF_OPT_GD_TRUE}" && test -z "${LIBWMF_OPT_GD_FALSE}"; then as_fn_error $? "conditional \"LIBWMF_OPT_GD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBWMF_OPT_SYS_GD_TRUE}" && test -z "${LIBWMF_OPT_SYS_GD_FALSE}"; then as_fn_error $? "conditional \"LIBWMF_OPT_SYS_GD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBWMF_OPT_PLOT_TRUE}" && test -z "${LIBWMF_OPT_PLOT_FALSE}"; then as_fn_error $? "conditional \"LIBWMF_OPT_PLOT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBWMF_GDK_PIXBUF_TRUE}" && test -z "${LIBWMF_GDK_PIXBUF_FALSE}"; then as_fn_error $? "conditional \"LIBWMF_GDK_PIXBUF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in AS \ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "wmfconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS wmfconfig.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/caolan/Makefile") CONFIG_FILES="$CONFIG_FILES doc/caolan/Makefile" ;; "doc/caolan/pics/Makefile") CONFIG_FILES="$CONFIG_FILES doc/caolan/pics/Makefile" ;; "doc/html/Makefile") CONFIG_FILES="$CONFIG_FILES doc/html/Makefile" ;; "fonts/Makefile") CONFIG_FILES="$CONFIG_FILES fonts/Makefile" ;; "fonts/libwmf-fontmap") CONFIG_FILES="$CONFIG_FILES fonts/libwmf-fontmap" ;; "fonts/fontmap") CONFIG_FILES="$CONFIG_FILES fonts/fontmap" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "include/libwmf/Makefile") CONFIG_FILES="$CONFIG_FILES include/libwmf/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/extra/Makefile") CONFIG_FILES="$CONFIG_FILES src/extra/Makefile" ;; "src/extra/trio/Makefile") CONFIG_FILES="$CONFIG_FILES src/extra/trio/Makefile" ;; "src/extra/gd/Makefile") CONFIG_FILES="$CONFIG_FILES src/extra/gd/Makefile" ;; "src/ipa/Makefile") CONFIG_FILES="$CONFIG_FILES src/ipa/Makefile" ;; "src/convert/Makefile") CONFIG_FILES="$CONFIG_FILES src/convert/Makefile" ;; "libwmf.pc") CONFIG_FILES="$CONFIG_FILES libwmf.pc" ;; "libwmf.spec") CONFIG_FILES="$CONFIG_FILES libwmf.spec" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. case $CONFIG_FILES in #( *\'*) : eval set x "$CONFIG_FILES" ;; #( *) : set x $CONFIG_FILES ;; #( *) : ;; esac shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`$as_dirname -- "$am_mf" || $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$am_mf" : 'X\(//\)[^/]' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` am_filepart=`$as_basename -- "$am_mf" || $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$am_mf" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` { echo "$as_me:$LINENO: cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles" >&5 (cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } || am_rc=$? done if test $am_rc -ne 0; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments for automatic dependency tracking. Try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). See \`config.log' for more details" "$LINENO" 5; } fi { am_dirpart=; unset am_dirpart;} { am_filepart=; unset am_filepart;} { am_mf=; unset am_mf;} { am_rc=; unset am_rc;} rm -f conftest-deps.mk } ;; "libtool":C) # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # The names of the tagged configurations supported by this script. available_tags='' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # Assembler program. AS=$lt_AS # DLL creation program. DLLTOOL=$lt_DLLTOOL # Object dumper program. OBJDUMP=$lt_OBJDUMP # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain=$ac_aux_dir/ltmain.sh # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo "" echo " Support for X: $libwmf_x" echo " Support for GD: $libwmf_gd" echo " Support for JPEG though GD: $libwmf_gd_jpeg" echo " Support for XML: $libwmf_xml" echo "" echo " Documentation directory: $WMF_DOCDIR" echo " Font directory: $WMF_FONTDIR" echo " System XML fontmap file: $WMF_SYS_FONTMAP" echo " Non-system XML fontmap file: $WMF_XTRA_FONTMAP" echo " ghostscript fontmap file: $WMF_GS_FONTMAP" echo " ghostscript font directory: $WMF_GS_FONTDIR" echo "" echo " building gdk-pixbuf plug-in? $wmf_gdk_pixbuf" echo "" libwmf-0.2.13/configure.ac000066400000000000000000000550501441723000300153420ustar00rootroot00000000000000dnl Process this file with autoconf to produce a configure script. AC_INIT(src/player.c) LIBWMF_PACKAGE=libwmf AC_SUBST(LIBWMF_PACKAGE) dnl This next section is courtesy gtk+ dnl # Making releases: # WMF_MICRO_VERSION += 1; # WMF_INTERFACE_AGE += 1; # WMF_BINARY_AGE += 1; # if any functions have been added, set WMF_INTERFACE_AGE to 0. # if backwards compatibility has been broken, # set WMF_BINARY_AGE and WMF_INTERFACE_AGE to 0. # WMF_MAJOR_VERSION=0 WMF_MINOR_VERSION=2 WMF_MICRO_VERSION=13 WMF_INTERFACE_AGE=5 WMF_BINARY_AGE=6 WMFLITE_INTERFACE_AGE=6 WMFLITE_BINARY_AGE=6 dnl spec file substitutions LIBWMF_VERSION=$WMF_MAJOR_VERSION.$WMF_MINOR_VERSION.$WMF_MICRO_VERSION LIBWMF_RELEASE=1 AC_SUBST(LIBWMF_VERSION) AC_SUBST(LIBWMF_RELEASE) # libtool versioning LT_RELEASE=$WMF_MAJOR_VERSION.$WMF_MINOR_VERSION AC_SUBST(LT_RELEASE) LT_CURRENT=`expr $WMF_MICRO_VERSION - $WMF_INTERFACE_AGE` LT_REVISION=$WMF_INTERFACE_AGE LT_AGE=`expr $WMF_BINARY_AGE - $WMF_INTERFACE_AGE` AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) LT_LITE_CURRENT=`expr $WMF_MICRO_VERSION - $WMFLITE_INTERFACE_AGE` LT_LITE_REVISION=$WMFLITE_INTERFACE_AGE LT_LITE_AGE=`expr $WMFLITE_BINARY_AGE - $WMFLITE_INTERFACE_AGE` AC_SUBST(LT_LITE_CURRENT) AC_SUBST(LT_LITE_REVISION) AC_SUBST(LT_LITE_AGE) # For automake. PACKAGE=$LIBWMF_PACKAGE VERSION=$LIBWMF_VERSION dnl Initialize automake stuff AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) # Specify a configuration file AM_CONFIG_HEADER(wmfconfig.h) # CFLAGS to be listed by libwmf-config should be added to this: WMF_CONFIG_CFLAGS= # Other CFLAGS, not to be listed by libwmf-config, should be added to this: WMF_CFLAGS= # LDFLAGS to be listed by libwmf-config should be added to this: WMF_LIBFLAGS= # WMF_DEFS is for flags such as -DDEBUG which are to applied only to # libwmf source not extra packages such as gd - more global defs should be # added to WMF_CFLAGS AC_ARG_ENABLE(debug,[ --enable-debug set DEBUG option to libwmf [default=no]],[ if [ test "x$enableval" != "xno" ]; then WMF_DEFS="-DDEBUG=1" else WMF_DEFS= fi ],[ WMF_DEFS= ]) AC_ARG_ENABLE(ansi,[ --enable-ansi set -ansi option to libwmf [default=no]],[ if [ test "x$enableval" != "xno" ]; then WMF_DEFS="$WMF_DEFS -ansi" fi ]) AC_ARG_ENABLE(pedantic,[ --enable-pedantic set -pedantic option to libwmf [default=no]],[ if [ test "x$enableval" != "xno" ]; then WMF_DEFS="$WMF_DEFS -pedantic" fi ]) LIBWMF_BUILDSTYLE=heavy libwmf_build_all=yes AC_ARG_ENABLE(heavy,[ --disable-heavy only build libwmflite [default=build all]],[ if [ test "x$enableval" = "xno" ]; then LIBWMF_BUILDSTYLE=lite libwmf_build_all=no fi ]) AC_SUBST(LIBWMF_BUILDSTYLE) AM_CONDITIONAL(LIBWMF_BUILD_ALL,[ test "x$libwmf_build_all" = "xyes" ]) # gd does not read config.h so need to pass it options on the command line: GD_DEFS= dnl Initialize libtool # Tests for Windows AC_CYGWIN AC_EXEEXT AC_OBJEXT AC_MINGW32 # End Tests for Windows AC_MSG_CHECKING([for Win32]) case "$host" in *-*-mingw*) os_win32=yes SYS_LIBM="" ;; *) os_win32=no SYS_LIBM="-lm" ;; esac AC_MSG_RESULT([$os_win32]) AC_SUBST(SYS_LIBM) dnl Checks for programs. AC_PROG_AWK AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET # Configure libtool AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL #end libtool stuff dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(time.h) AC_CHECK_HEADER(unistd.h,[ AC_DEFINE([HAVE_UNISTD_H], [], [Header unistd.h is available]) GD_DEFS="$GD_DEFS -DHAVE_UNISTD_H" ]) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_OFF_T AC_TYPE_SIZE_T dnl Checks for library functions. AC_CHECK_FUNCS(strstr) dnl Check for trio functions. require_trio=no if test $LIBWMF_BUILDSTYLE = heavy; then AC_CHECK_FUNCS(printf fprintf vfprintf sprintf,,require_trio=yes) AC_CHECK_FUNCS(vprintf vsprintf) AC_CHECK_FUNCS(sscanf,,require_trio=yes) AC_CHECK_FUNCS(scanf vscanf fscanf vsscanf) dnl Special case (1): vsnprintf AC_CHECK_FUNCS(vsnprintf,,check_for_vsnprintf=yes) if [ test "x$check_for_vsnprintf" = "xyes" ]; then AC_CHECK_FUNC(_vsnprintf,[ AC_DEFINE([HAVE_VSNPRINTF], [], [Function _vsnprintf is available]) AC_DEFINE([vsnprintf], [_vsnprintf], [Use _vsnprintf instead of vsnprintf]) ],[ dnl Hmm. On the off-chance, check for vsnprintf in libdb. dnl This should, hopefully, solve the problem with Tru64 4.x dnl which is incompatible with trio (the latter's fault). AC_CHECK_LIB(db,vsnprintf,[ AC_DEFINE([HAVE_VSNPRINTF], [], [Function vsnprintf is available]) WMF_LIBFLAGS="$WMF_LIBFLAGS -ldb" ],[ require_trio=yes ]) ]) fi dnl Special case (2): snprintf AC_CHECK_FUNCS(snprintf,,check_for_snprintf=yes) if [ test "x$check_for_snprintf" = "xyes" ]; then AC_CHECK_FUNC(_snprintf,[ AC_DEFINE([HAVE_SNPRINTF], [], [Function _snprintf is available]) AC_DEFINE([snprintf], [_snprintf], [Use _snprintf instead of snprintf]) ]) fi dnl Special case (3): vfscanf is defined as a macro for Darwin / Mac OS X AC_CHECK_FUNCS(vfscanf,,check_for_vfscanf=yes) if [ test "x$check_for_vfscanf" = "xyes" ]; then AC_MSG_CHECKING(for vfscanf in stdio.h) AC_EGREP_HEADER(vfscanf,stdio.h,[ AC_MSG_RESULT(yes) AC_DEFINE([HAVE_VFSCANF], [], [Function vfscanf is available]) ],[ AC_MSG_RESULT(no) ]) fi fi # $LIBWMF_BUILDSTYLE = heavy AM_CONDITIONAL(LIBWMF_OPT_TRIO,[ test "x$require_trio" = "xyes" ]) dnl Checks for libraries, etc. AC_ARG_WITH(layers,[ --with-layers whether to build layers [default is yes]],[ if [ test "x$withval" = "xyes" ]; then libwmf_layers=yes elif [ test "x$withval" = "xno" ]; then libwmf_layers=no elif [ test "x$withval" = "xmodules" ]; then AC_MSG_ERROR([* * * Sorry, modules not yet supported! * * *]) libwmf_layers=modules else AC_MSG_WARN([* * * Bad option to --with-layers! * * *]) libwmf_layers=yes fi ],[ libwmf_layers=yes ]) if test $LIBWMF_BUILDSTYLE = lite; then libwmf_layers=no fi # $LIBWMF_BUILDSTYLE = lite if [ test $libwmf_layers = no ]; then AC_DEFINE([WITHOUT_LAYERS], [1], [Don't use layers]) fi AM_CONDITIONAL(LIBWMF_OPT_MODULES,[ test $libwmf_layers = modules ]) AM_CONDITIONAL(LIBWMF_OPT_LAYERS,[ test $libwmf_layers != no ]) libwmf_x=no libwmf_xml=no libwmf_gd_jpeg=no libwmf_plot=no if [ test $libwmf_layers != no ]; then AC_PATH_X AC_PATH_XTRA else X_CFLAGS="-DX_DISPLAY_MISSING=1" no_x=yes fi dnl (1) X {-lX11} [(!)-DX_DISPLAY_MISSING] WMF_X_CONFIG_CFLAGS="" WMF_X_CFLAGS="" WMF_X_LDFLAGS="" WMF_X_CFLAGS="$X_CFLAGS" if [ test "x$no_x" != "xyes" ]; then WMF_X_CONFIG_CFLAGS="$X_CFLAGS" WMF_X_LDFLAGS="$X_LIBS -lX11" libwmf_x=yes fi AM_CONDITIONAL(LIBWMF_OPT_X,[ test "x$no_x" != "xyes" ]) dnl (2) expat/libxml2 {-lexpat/-lxml2} WMF_XML_DIR="" WMF_XML_CFLAGS="" WMF_XML_LDFLAGS="" libwmf_xml=unknown AC_ARG_WITH(expat,[ --with-expat=DIR use expat in DIR],[ if test "x$withval" = "xno"; then libwmf_xml=libxml2 elif test "x$withval" = "xyes"; then libwmf_xml=expat else libwmf_xml=expat WMF_XML_DIR="$withval" fi ]) AC_ARG_WITH(libxml2,[ --with-libxml2=DIR use libxml2 in DIR],[ if test "x$withval" = "xno"; then if test $libwmf_xml = libxml2; then libwmf_xml=none else libwmf_xml=expat fi elif test "x$withval" = "xyes"; then if test $libwmf_xml = expat; then AC_MSG_ERROR([* * * Can't specify both expat and libxml2! * * *]) else libwmf_xml=libxml2 fi else if test $libwmf_xml = expat; then AC_MSG_ERROR([* * * Can't specify both expat and libxml2! * * *]) else libwmf_xml=libxml2 WMF_XML_DIR="$withval" fi fi ]) if test $LIBWMF_BUILDSTYLE = lite; then libwmf_xml=none fi # $LIBWMF_BUILDSTYLE = lite if test $libwmf_xml = expat -o $libwmf_xml = unknown; then if test "x$WMF_XML_DIR" != "x"; then _cppflags=$CPPFLAGS _ldflags=$LDFLAGS CPPFLAGS="$CPPFLAGS -I$WMF_XML_DIR/include" LDFLAGS="$LDFLAGS -L$WMF_XML_DIR/lib" WMF_XML_CFLAGS="-I$WMF_XML_DIR/include" WMF_XML_LDFLAGS="-L$WMF_XML_DIR/lib -lexpat" else WMF_XML_CFLAGS="" WMF_XML_LDFLAGS="-lexpat" fi AC_CHECK_HEADER(expat.h,[ AC_CHECK_LIB(expat,XML_ParserFree,[ libwmf_xml=expat ],[ if test $libwmf_xml = expat; then AC_MSG_ERROR([* * * unable to find expat * * *]) fi ]) ],[ if test $libwmf_xml = expat; then AC_MSG_ERROR([* * * unable to find expat * * *]) fi ]) if test "x$WMF_XML_DIR" != "x"; then CPPFLAGS=$_cppflags LDFLAGS=$_ldflags fi fi if test $libwmf_xml = libxml2 -o $libwmf_xml = unknown; then if [ test -n "$WMF_XML_DIR" ]; then AC_PATH_PROG(XML2_CONFIG,xml2-config,,$WMF_XML_DIR/bin $PATH) else AC_PATH_PROG(XML2_CONFIG,xml2-config) fi if test "x$XML2_CONFIG" != "x"; then WMF_XML_CFLAGS=`$XML2_CONFIG --cflags` WMF_XML_LDFLAGS=`$XML2_CONFIG --libs` libwmf_xml=libxml2 elif test $libwmf_xml = libxml2; then AC_MSG_ERROR([* * * unable to find xml2-config; see ftp://xmlsoft.org/ * * *]) fi fi if test $libwmf_xml = expat; then AC_DEFINE([HAVE_EXPAT], [], [Use expat as libwmf_xml]) elif test $libwmf_xml = libxml2; then AC_DEFINE([HAVE_LIBXML2], [], [Use libxml2 as libwmf_xml]) else libwmf_xml=none WMF_XML_CFLAGS="" WMF_XML_LDFLAGS="" fi dnl (3) freetype {-lfreetype} [-DHAVE_LIBFREETYPE] WMF_FT_CONFIG_CFLAGS="" WMF_FT_CFLAGS="" WMF_FT_LDFLAGS="" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS have_freetype=no AC_ARG_WITH(freetype,[ --with-freetype=DIR use freetype2 in DIR],[ if [ test "x$withval" != "xno" ]; then if [ test "x$withval" != "xyes" ]; then FREETYPE_DIR=$withval fi else AC_MSG_ERROR(* * * libwmf requires freetype2 * * *) fi ]) if [ test -n "$FREETYPE_DIR" ]; then AC_PATH_PROG(FREETYPE_CONFIG,freetype-config, ,[$FREETYPE_DIR/bin:$PATH]) else AC_PATH_PROG(FREETYPE_CONFIG,freetype-config) fi if [ test -n "$FREETYPE_CONFIG" ]; then if [ test -n "$FREETYPE_DIR" ]; then freetype_cflags="`$FREETYPE_CONFIG --cflags` -I$FREETYPE_DIR/include" freetype_libs=`$FREETYPE_CONFIG --libs` else freetype_cflags=`$FREETYPE_CONFIG --cflags` freetype_libs=`$FREETYPE_CONFIG --libs` fi else if [ test -n "$FREETYPE_DIR" ]; then freetype_cflags="-I$FREETYPE_DIR/include/freetype2 -I$FREETYPE_DIR/include" freetype_libs="-L$FREETYPE_DIR/lib -lfreetype" else freetype_cflags="" freetype_libs="-lfreetype" fi fi CPPFLAGS="$freetype_cflags $CPPFLAGS" LDFLAGS="$LDFLAGS $freetype_libs" PKG_CHECK_MODULES(FT2, freetype2) WMF_FT_LDFLAGS=$FT2_LIBS WMF_FT_CFLAGS=$FT2_CFLAGS WMF_FT_CONFIG_CFLAGS=$FT2_CFLAGS GD_DEFS="$GD_DEFS -DHAVE_LIBFREETYPE" CPPFLAGS=$_cppflags LDFLAGS=$_ldflags dnl (4) zlib {-lz} WMF_Z_CONFIG_CFLAGS="" WMF_Z_CFLAGS="" WMF_Z_LDFLAGS="" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS AC_ARG_WITH(zlib,[ --with-zlib=DIR use libz in DIR],[ if [ test "x$withval" != "xno" ]; then if [ test "x$withval" != "xyes" ]; then ZLIB_DIR=$withval CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" fi else AC_MSG_ERROR(* * * libwmf requires zlib * * *) fi ]) if test $LIBWMF_BUILDSTYLE = heavy; then dnl WMF_Z_CFLAGS are required later on when testing for png, etc. AC_CHECK_HEADER(zlib.h,[ AC_CHECK_LIB(z,gzputs,[ if [ test "x$ZLIB_DIR" != "x" ]; then WMF_Z_CONFIG_CFLAGS="-I$ZLIB_DIR/include" WMF_Z_CFLAGS="-I$ZLIB_DIR/include" WMF_Z_LDFLAGS="-L$ZLIB_DIR/lib -lz" else WMF_Z_LDFLAGS="-lz" fi ],[ AC_CHECK_LIB(gz,gzputs,[ if [ test "x$ZLIB_DIR" != "x" ]; then WMF_Z_CONFIG_CFLAGS="-I$ZLIB_DIR/include" WMF_Z_CFLAGS="-I$ZLIB_DIR/include" WMF_Z_LDFLAGS="-L$ZLIB_DIR/lib -lgz" else WMF_Z_LDFLAGS="-lgz" fi ],[ AC_MSG_ERROR(* * * unable to find libz which is required by libwmf * * *) ]) ]) ],[ AC_MSG_ERROR(* * * unable to find "zlib.h" which is required by libwmf * * *) ]) fi # $LIBWMF_BUILDSTYLE = heavy CPPFLAGS=$_cppflags LDFLAGS=$_ldflags dnl (5) png {-lpng} [-DHAVE_LIBPNG] WMF_PNG_CFLAGS="" WMF_PNG_LDFLAGS="" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS AC_ARG_WITH(png,[ --with-png=DIR use libpng in DIR],[ if [ test "x$withval" != "xno" ]; then if [ test "x$withval" != "xyes" ]; then PNG_DIR=$withval CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" fi else AC_MSG_ERROR(* * * libwmf requires libpng * * *) fi ]) if test $LIBWMF_BUILDSTYLE = heavy; then dnl "png.h" includes "zlib.h" CPPFLAGS="$CPPFLAGS $WMF_Z_CFLAGS" AC_CHECK_HEADER(png.h,[ AC_CHECK_LIB(png,png_write_image,[ if [ test "x$PNG_DIR" != "x" ]; then WMF_PNG_CFLAGS="-I$PNG_DIR/include" WMF_PNG_LDFLAGS="-L$PNG_DIR/lib -lpng" else WMF_PNG_LDFLAGS="-lpng" fi ],[ AC_MSG_ERROR(* * * unable to find libpng which is required by libwmf * * *) ],-lz -lm) ],[ AC_MSG_ERROR(* * * unable to find "png.h" which is required by libwmf * * *) ]) AC_DEFINE([HAVE_LIBPNG], [], [Library libpng is available]) GD_DEFS="$GD_DEFS -DHAVE_LIBPNG" fi # $LIBWMF_BUILDSTYLE = heavy CPPFLAGS=$_cppflags LDFLAGS=$_ldflags dnl (6) jpeg {-ljpeg} [-DHAVE_LIBJPEG] (optional) WMF_JPEG_CFLAGS="" WMF_JPEG_LDFLAGS="" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS AC_ARG_WITH(jpeg,[ --with-jpeg=DIR use libjpeg in DIR],[ if [ test "x$withval" != "xno" ]; then if [ test "x$withval" != "xyes" ]; then JPEG_DIR=$withval CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" fi search_for_jpeg=yes else search_for_jpeg=no fi ],[ search_for_jpeg=yes ]) if test $LIBWMF_BUILDSTYLE = lite; then search_for_jpeg=no fi # $LIBWMF_BUILDSTYLE = lite if [ test "$search_for_jpeg" != "no" ]; then AC_CHECK_HEADER(jpeglib.h,[ AC_CHECK_LIB(jpeg,jpeg_CreateCompress,[ if [ test "x$JPEG_DIR" != "x" ]; then WMF_JPEG_CFLAGS="-I$JPEG_DIR/include" WMF_JPEG_LDFLAGS="-L$JPEG_DIR/lib -ljpeg" else WMF_JPEG_LDFLAGS="-ljpeg" fi AC_DEFINE([HAVE_LIBJPEG], [], [Library libjpeg is available]) GD_DEFS="$GD_DEFS -DHAVE_LIBJPEG" libwmf_gd_jpeg=yes ]) ]) fi CPPFLAGS=$_cppflags LDFLAGS=$_ldflags dnl (7) gd {-lgd} dnl Chances are that even if gd is present, it won't have been patched for compatibility dnl with libwmf, but worth checking anyway... WMF_GD_CFLAGS="" WMF_GD_LDFLAGS="" libwmf_gd="wmf" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS AC_ARG_WITH(sys-gd,[ --with-sys-gd=DIR use system GD in DIR (if compatible)],[ if [ test "x$withval" != "xno" ]; then if [ test "x$withval" != "xyes" ]; then GD_DIR=$withval CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" fi search_for_gd=yes else search_for_gd=no fi ],[ search_for_gd=yes ]) AC_ARG_ENABLE(gd,[ --disable-gd don't build GD, don't look for it, don't require it],[ if [ test "x$enableval" = "xno" ]; then search_for_gd=no libwmf_gd="none" fi ],[ if [ test $libwmf_layers = no ]; then search_for_gd=no libwmf_gd="none" fi ]) if [ test "$search_for_gd" != "no" ]; then other_libs="" dnl Do I need extra libs with Xpm? dnl if [ test "x$libwmf_x" = "xyes" ]; then CPPFLAGS="$CPPFLAGS $WMF_X_CFLAGS" LDFLAGS="$LDFLAGS $WMF_X_LDFLAGS" AC_CHECK_LIB(Xpm,main,[ other_libs="$other_libs -lXpm" WMF_GD_LDFLAGS="-lXpm" ]) fi if [ test "x$libwmf_gd_jpeg" = "xyes" ]; then CPPFLAGS="$CPPFLAGS $WMF_JPEG_CFLAGS" LDFLAGS="$LDFLAGS $WMF_JPEG_LDFLAGS" other_libs="$other_libs -ljpeg" fi CPPFLAGS="$CPPFLAGS $WMF_FT_CFLAGS $WMF_PNG_CFLAGS $WMF_Z_CFLAGS" LDFLAGS="$LDFLAGS $WMF_FT_LDFLAGS $WMF_PNG_LDFLAGS $WMF_Z_LDFLAGS" other_libs="$other_libs -lfreetype -lpng -lz -lm" AC_CHECK_HEADER(gd.h,[ AC_CHECK_LIB(gd,gdClipSetAdd,[ AC_CHECK_LIB(gd,gdft_draw_bitmap,[ libwmf_gd="sys" ],,$other_libs) ],,$other_libs) ]) fi if [ test "x$libwmf_gd" != "xnone" ]; then AC_DEFINE([HAVE_GD], [1], [Library gd is available]) build_gd_layer=yes else build_gd_layer=no fi if [ test "x$libwmf_gd" = "xsys" ]; then if [ test "x$GD_DIR" != "x" ]; then WMF_GD_CFLAGS="-I$GD_DIR/include" WMF_GD_LDFLAGS="-L$GD_DIR/lib -lgd $WMF_GD_LDFLAGS" else WMF_GD_LDFLAGS="-lgd $WMF_GD_LDFLAGS" fi elif [ test "x$libwmf_gd" = "xnone" ]; then dnl Slight hack here to disable GD build: libwmf_gd="sys" else WMF_GD_LDFLAGS="" fi AM_CONDITIONAL(LIBWMF_OPT_GD,[ test "x$build_gd_layer" = "xyes" ]) AM_CONDITIONAL(LIBWMF_OPT_SYS_GD,[ test "x$libwmf_gd" = "xsys" ]) CPPFLAGS=$_cppflags LDFLAGS=$_ldflags dnl (8) plot {-lplot} WMF_PLOT_CFLAGS="" WMF_PLOT_LDFLAGS="" _cppflags=$CPPFLAGS _ldflags=$LDFLAGS #AC_ARG_WITH(plot,[ --with-plot=DIR use GNU plotutils (>= 2.4.0) in DIR (default no)],[ # if [ test "x$withval" != "xno" ]; then # AC_MSG_ERROR([* * * plotutils is not supported, sorry * * *]) # if [ test "x$withval" != "xyes" ]; then # PLOT_DIR=$withval # CPPFLAGS="$CPPFLAGS -I$withval/include" # LDFLAGS="$LDFLAGS -L$withval/lib" # fi # search_for_plot=yes # else # search_for_plot=no # fi #],[ search_for_plot=no #]) search_for_plot=no if [ test "$search_for_plot" != "no" ]; then AC_CHECK_HEADER(plot.h,[ AC_CHECK_LIB(plot,pl_libplot_ver,[ AC_LIBPLOT_LIBS if [ test $ac_can_link_libplot != no ]; then if [ test "x$PLOT_DIR" != "x" ]; then WMF_PLOT_CFLAGS="-I$PLOT_DIR/include" WMF_PLOT_LDFLAGS="-L$PLOT_DIR/lib $LIBPLOT_LIBS" else WMF_PLOT_LDFLAGS="$LIBPLOT_LIBS" fi AC_DEFINE([HAVE_LIBPLOT], [], [Library libplot is available]) libwmf_plot=maybe else AC_MSG_ERROR(* * * sorry - unable to link against libplot * * *) fi ],[ AC_MSG_ERROR(GNU plotutils >= 2.4.0 required) ]) ]) fi AM_CONDITIONAL(LIBWMF_OPT_PLOT,[ test "x$libwmf_plot" != "xno" ]) CPPFLAGS=$_cppflags LDFLAGS=$_ldflags dnl Dom's gdk-pixbuf plugin wmf_gdk_pixbuf=no GDK_PIXBUF_CFLAGS="" GDK_PIXBUF_LIBS="" GDK_PIXBUF_DIR="" if test $LIBWMF_BUILDSTYLE != lite; then PKG_CHECK_MODULES(GDK_PIXBUF,gdk-pixbuf-2.0 >= 2.1.2,[ GDK_PIXBUF_VERSION=`$PKG_CONFIG --variable=gdk_pixbuf_binary_version gdk-pixbuf-2.0` GDK_PIXBUF_DIR="gdk-pixbuf-2.0/$GDK_PIXBUF_VERSION/loaders" wmf_gdk_pixbuf=yes ],[ wmf_gdk_pixbuf=no ]) fi AM_CONDITIONAL(LIBWMF_GDK_PIXBUF,[test $wmf_gdk_pixbuf = yes]) AC_SUBST(GDK_PIXBUF_CFLAGS) AC_SUBST(GDK_PIXBUF_LIBS) AC_SUBST(GDK_PIXBUF_DIR) dnl Other options... AC_ARG_WITH(docdir,[ --with-docdir=DIR install documentation in DIR],[ WMF_DOCDIR=$withval ],[ if test "x$prefix" = "xNONE"; then WMF_DOCDIR=$ac_default_prefix/share/doc/$PACKAGE else WMF_DOCDIR=$prefix/share/doc/$PACKAGE fi ]) AC_ARG_WITH(fontdir,[ --with-fontdir=DIR install Type1 fonts in DIR],[ WMF_FONTDIR=$withval ],[ if test "x$prefix" = "xNONE"; then WMF_FONTDIR=$ac_default_prefix/share/$PACKAGE/fonts else WMF_FONTDIR=$prefix/share/$PACKAGE/fonts fi ]) AC_ARG_WITH(sysfontmap,[ --with-sysfontmap=FILE [default is /usr/share/fonts/fontmap]],[ WMF_SYS_FONTMAP=$withval ],[ WMF_SYS_FONTMAP=/usr/share/fonts/fontmap ]) AC_ARG_WITH(xtrafontmap,[ --with-xtrafontmap=FILE non-system XML fontmap],[ WMF_XTRA_FONTMAP=$withval ],[ WMF_XTRA_FONTMAP=$WMF_FONTDIR/fontmap ]) AC_ARG_WITH(gsfontmap,[ --with-gsfontmap=FILE ghostscript fontmap],[ WMF_GS_FONTMAP=$withval ],[ dnl dnl Test first for Debian Font Manager's ghostscript Fontmap. dnl Next test for GnuWin32 ghostscript Fontmap. dnl Next test for standard ghostscript Fontmap. dnl If not found, default to RedHat location. dnl if [ test -r /var/lib/defoma/gs.d/dirs/fonts/Fontmap.GS ]; then WMF_GS_FONTMAP=/var/lib/defoma/gs.d/dirs/fonts/Fontmap.GS elif [ test -r /var/lib/defoma/gs.d/dirs/fonts/Fontmap ]; then WMF_GS_FONTMAP=/var/lib/defoma/gs.d/dirs/fonts/Fontmap elif [ test -r 'c:/progra~1/gs/gs/lib/fontmap.gs' ]; then WMF_GS_FONTMAP='c:/progra~1/gs/gs/lib/fontmap.gs' elif [ test -r 'c:/progra~1/gs/gs/lib/fontmap' ]; then WMF_GS_FONTMAP='c:/progra~1/gs/gs/lib/fontmap' elif [ test -r 'c:/gs/fonts/fontmap.gs' ]; then WMF_GS_FONTMAP='c:/gs/fonts/fontmap.gs' elif [ test -r 'c:/gs/fonts/fontmap' ]; then WMF_GS_FONTMAP='c:/gs/fonts/fontmap' else WMF_GS_FONTMAP=/usr/share/ghostscript/5.50/Fontmap if test -d /usr/share/ghostscript; then for i in `ls /usr/share/ghostscript`; do if test -r "/usr/share/ghostscript/$i/Resource/Init/Fontmap.GS"; then WMF_GS_FONTMAP="/usr/share/ghostscript/$i/Resource/Init/Fontmap.GS" elif test -r "/usr/share/ghostscript/$i/Fontmap.GS"; then WMF_GS_FONTMAP="/usr/share/ghostscript/$i/Fontmap.GS" elif test -r "/usr/share/ghostscript/$i/Fontmap"; then WMF_GS_FONTMAP="/usr/share/ghostscript/$i/Fontmap" elif test -r "/usr/share/ghostscript/$i/lib/Fontmap.GS"; then WMF_GS_FONTMAP="/usr/share/ghostscript/$i/lib/Fontmap.GS" elif test -r "/usr/share/ghostscript/$i/lib/Fontmap"; then WMF_GS_FONTMAP="/usr/share/ghostscript/$i/lib/Fontmap" fi done fi fi ]) AC_ARG_WITH(gsfontdir,[ --with-gsfontdir=DIR directory for ghostscript fonts],[ WMF_GS_FONTDIR=$withval ],[ dnl dnl Test first for Debian Font Manager's ghostscript font directory. dnl Next test for GnuWin32 ghostscript font directory. dnl Next test for standard ghostscript font directory. dnl If not found, default to RedHat location. dnl if [ test -d /var/lib/defoma/gs.d/dirs/fonts ]; then WMF_GS_FONTDIR=/var/lib/defoma/gs.d/dirs/fonts elif [ test -d 'c:/progra~1/gs/gs/lib/fonts' ]; then WMF_GS_FONTDIR='c:/progra~1/gs/gs/lib/fonts' elif [ test -d 'c:/gs/fonts' ]; then WMF_GS_FONTDIR='c:/gs/fonts' else WMF_GS_FONTDIR=/usr/share/fonts/default/Type1 fi ]) dnl Output... WMF_CFLAGS="$WMF_FT_CFLAGS $WMF_X_CFLAGS $WMF_PLOT_CFLAGS $WMF_XML_CFLAGS" WMF_CFLAGS="$WMF_CFLAGS $WMF_GD_CFLAGS $WMF_JPEG_CFLAGS $WMF_PNG_CFLAGS $WMF_Z_CFLAGS" AC_SUBST(WMF_CFLAGS) WMF_CONFIG_CFLAGS="$WMF_FT_CONFIG_CFLAGS $WMF_Z_CONFIG_CFLAGS $WMF_X_CONFIG_CFLAGS" AC_SUBST(WMF_CONFIG_CFLAGS) WMF_LIBFLAGS="$WMF_PLOT_LDFLAGS $WMF_GD_LDFLAGS $WMF_FT_LDFLAGS $WMF_X_LDFLAGS $WMF_XML_LDFLAGS" WMF_LIBFLAGS="$WMF_LIBFLAGS $WMF_JPEG_LDFLAGS $WMF_PNG_LDFLAGS $WMF_Z_LDFLAGS $SYS_LIBM" AC_SUBST(WMF_LIBFLAGS) AC_SUBST(WMF_DOCDIR) AC_SUBST(WMF_FONTDIR) AC_SUBST(WMF_SYS_FONTMAP) AC_SUBST(WMF_XTRA_FONTMAP) AC_SUBST(WMF_GS_FONTMAP) AC_SUBST(WMF_GS_FONTDIR) AC_SUBST(WMF_DEFS) AC_SUBST(GD_DEFS) AC_OUTPUT([ Makefile doc/Makefile doc/caolan/Makefile doc/caolan/pics/Makefile doc/html/Makefile fonts/Makefile fonts/libwmf-fontmap fonts/fontmap include/Makefile include/libwmf/Makefile src/Makefile src/extra/Makefile src/extra/trio/Makefile src/extra/gd/Makefile src/ipa/Makefile src/convert/Makefile libwmf.pc libwmf.spec ]) echo "" echo " Support for X: $libwmf_x" echo " Support for GD: $libwmf_gd" echo " Support for JPEG though GD: $libwmf_gd_jpeg" echo " Support for XML: $libwmf_xml" echo "" echo " Documentation directory: $WMF_DOCDIR" echo " Font directory: $WMF_FONTDIR" echo " System XML fontmap file: $WMF_SYS_FONTMAP" echo " Non-system XML fontmap file: $WMF_XTRA_FONTMAP" echo " ghostscript fontmap file: $WMF_GS_FONTMAP" echo " ghostscript font directory: $WMF_GS_FONTDIR" echo "" echo " building gdk-pixbuf plug-in? $wmf_gdk_pixbuf" echo "" libwmf-0.2.13/depcomp000077500000000000000000000560201441723000300144270ustar00rootroot00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2018-03-07.03; # UTC # Copyright (C) 1999-2018 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: libwmf-0.2.13/doc/000077500000000000000000000000001441723000300136145ustar00rootroot00000000000000libwmf-0.2.13/doc/Makefile.am000066400000000000000000000006701441723000300156530ustar00rootroot00000000000000SUBDIRS = . caolan html wmfdocdir = @WMF_DOCDIR@ install-data-local: @echo "Installing libwmf2 documentation"; \ cd $(srcdir) && \ $(mkinstalldirs) $(DESTDIR)$(wmfdocdir); \ (for i in smlogo2.gif wmfpic.png *.html; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(wmfdocdir)/$$i; \ done) DOCUMENTATION = \ gd.html \ index.html \ tutapi.html \ tutipa.html \ dlayer.html \ wmfpic.png \ smlogo2.gif EXTRA_DIST = $(DOCUMENTATION) libwmf-0.2.13/doc/Makefile.in000066400000000000000000000465271441723000300156770ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2018 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@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/wmfconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FREETYPE_CONFIG = @FREETYPE_CONFIG@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_DIR = @GDK_PIXBUF_DIR@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GD_DEFS = @GD_DEFS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBWMF_BUILDSTYLE = @LIBWMF_BUILDSTYLE@ LIBWMF_PACKAGE = @LIBWMF_PACKAGE@ LIBWMF_RELEASE = @LIBWMF_RELEASE@ LIBWMF_VERSION = @LIBWMF_VERSION@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_LITE_AGE = @LT_LITE_AGE@ LT_LITE_CURRENT = @LT_LITE_CURRENT@ LT_LITE_REVISION = @LT_LITE_REVISION@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_LIBM = @SYS_LIBM@ VERSION = @VERSION@ WMF_CFLAGS = @WMF_CFLAGS@ WMF_CONFIG_CFLAGS = @WMF_CONFIG_CFLAGS@ WMF_DEFS = @WMF_DEFS@ WMF_DOCDIR = @WMF_DOCDIR@ WMF_FONTDIR = @WMF_FONTDIR@ WMF_GS_FONTDIR = @WMF_GS_FONTDIR@ WMF_GS_FONTMAP = @WMF_GS_FONTMAP@ WMF_LIBFLAGS = @WMF_LIBFLAGS@ WMF_SYS_FONTMAP = @WMF_SYS_FONTMAP@ WMF_XTRA_FONTMAP = @WMF_XTRA_FONTMAP@ XMKMF = @XMKMF@ XML2_CONFIG = @XML2_CONFIG@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = . caolan html wmfdocdir = @WMF_DOCDIR@ DOCUMENTATION = \ gd.html \ index.html \ tutapi.html \ tutipa.html \ dlayer.html \ wmfpic.png \ smlogo2.gif EXTRA_DIST = $(DOCUMENTATION) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile install-data-local: @echo "Installing libwmf2 documentation"; \ cd $(srcdir) && \ $(mkinstalldirs) $(DESTDIR)$(wmfdocdir); \ (for i in smlogo2.gif wmfpic.png *.html; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(wmfdocdir)/$$i; \ 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: libwmf-0.2.13/doc/caolan/000077500000000000000000000000001441723000300150515ustar00rootroot00000000000000libwmf-0.2.13/doc/caolan/2.html000066400000000000000000000303121441723000300160770ustar00rootroot00000000000000 Q: How do I display a 256 color bitmap?

Q: How do I display a 256 color bitmap?

A: To display a 256 color bitmap, you must use the palette information that is in the bitmap. With the palette information, you create a GDI object known as a logical palette, using the function CreatePalette(). You must also call the functions SelectPalette() and RealizePalette() before displaying the bitmap. The SelectPalette() function is used to select a logical palette into the device context. The RealizePalette() function maps color entries in the logical palette that is selected into the device context to entries in the system palette.

Since the system palette may be shared by more than one application, Windows uses a few messages for sharing the palette. When an application is about to receive the input focus, Windows sends the window a WM_QUERYNEWPALETTE message. If the application uses the palette, it should realize its logical palette, invalidate the window's client area, and return TRUE to indicate that it has changed the system palette.

When the system palette has been changed, Windows sends WM_PALETTECHANGED messages to all the inactive windows, from top to bottom in the Z-order. A window that uses the palette should do one of two things:

  • It can realize its palette by calling RealizePalette(), and redraw the client area. When realizing its palette, colors are mapped to any free entries in the system palette that remain, otherwise, they are mapped to the closest colors in the system palette.
  • It can call the function UpdateColors(). This function quickly maps existing system palette colors on the screen to the closest colors in the new system palette. The accuracy of the matched colors decreases every time this function is called, so a bitmap color's will become more and more distorted, until the window is brought to the foreground.

The following example displays a 256 color bitmap:

// bmp256.c
// copyright 1995 Robert Mashlan

#define STRICT
#include <windows.h>
#include <windowsx.h>
#include <commdlg.h>
#include <string.h>

#include "bmp256.rh"

#define LOCALFUNC static NEAR PASCAL

#define WM_OPENFILE WM_USER // message used to open a file

// app's HINSTANCE
HINSTANCE hInst;

int LOCALFUNC WMPaint( HWND hwnd )
// WM_PAINT message handler
{
   PAINTSTRUCT ps;
   BITMAP bm;
   HDC hdc = BeginPaint(hwnd,&ps);
   HBITMAP hbmp = (HGLOBAL)GetProp(hwnd,"bmp");
   HPALETTE hPal = (HPALETTE)GetProp(hwnd,"palette");
   HPALETTE hPalOld;
   HDC hdcMem = CreateCompatibleDC(hdc);
   if(hPal) {
      hPalOld = SelectPalette(hdc,hPal,FALSE);
      RealizePalette(hdc);
   }
   GetObject(hbmp,sizeof(bm),(LPSTR)&bm);
   hbmp = SelectObject(hdcMem,hbmp);
   BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,hdcMem,0,0,SRCCOPY);
   hbmp = SelectObject(hdcMem,hbmp);
   if(hPalOld)
      SelectPalette(hdc,hPalOld,FALSE);
   DeleteDC(hdcMem);
   EndPaint(hwnd,&ps);
   return 0;
}

#define ISWIN30DIB(lpbi) ((*(LPDWORD)(lpbi))==sizeof(BITMAPINFOHEADER))
#define GETDIBBITS(lpbi) (lpbi+(WORD)(*(LPDWORD)lpbi)+PaletteSize(lpbi))

WORD DIBNumColors(LPSTR lpbi)
// returns the number of palette entries in a memory DIB
{
   WORD wBitCount;
   if(ISWIN30DIB(lpbi)) {
      // use the biClrUsed entry, if non-zero
      DWORD dwClrUsed = ((LPBITMAPINFOHEADER)lpbi)->biClrUsed;
      if(dwClrUsed)
         return (WORD)dwClrUsed;
   }
   // Calculate the number of colors in the color table based on
   //  the number of bits per pixel for the DIB.
   if(ISWIN30DIB (lpbi))
      wBitCount = ((LPBITMAPINFOHEADER)lpbi)->biBitCount;
   else
      wBitCount = ((LPBITMAPCOREHEADER)lpbi)->bcBitCount;
   switch(wBitCount) {
      case 1:
         return 2;
      case 4:
         return 16;
      case 8:
         return 256;
      default:
         return 0;
   }
}

WORD PaletteSize(LPSTR lpbi)
// returns the size of the palette in a memory DIB
{
   WORD wResult = DIBNumColors(lpbi);
   if(ISWIN30DIB(lpbi))
      return(wResult*sizeof(RGBQUAD));
   else
      return(wResult*sizeof(RGBTRIPLE));
}


HPALETTE LOCALFUNC CreateDIBPalette( HGLOBAL hDIB )
// this function creates a logical palette from a
// in-memory DIB
{
   LPLOGPALETTE lpPal;
   HPALETTE  hPal = NULL;
   int       i, wNumColors;
   LPSTR     lpbi = NULL;
   LPBITMAPINFO  lpbmi;
   LPBITMAPCOREINFO lpbmc;

   if (!hDIB) return NULL;
   lpbi = GlobalLock(hDIB);
   lpbmi = (LPBITMAPINFO)lpbi;
   lpbmc = (LPBITMAPCOREINFO)lpbi;
   wNumColors = DIBNumColors(lpbi);
   if(wNumColors) {
      lpPal = (LPLOGPALETTE)GlobalAllocPtr(GHND,sizeof(LOGPALETTE)+
                             sizeof(PALETTEENTRY)*wNumColors);
      if(!lpPal) {
         GlobalUnlock(hDIB);
         return NULL;
      }
      lpPal->palVersion = 0x300;
      lpPal->palNumEntries = wNumColors;
      for(i=0;i<wNumColors;i++) {
         if(ISWIN30DIB(lpbi)) {
            lpPal->palPalEntry[i].peRed =
               lpbmi->bmiColors[i].rgbRed;
            lpPal->palPalEntry[i].peGreen =
               lpbmi->bmiColors[i].rgbGreen;
            lpPal->palPalEntry[i].peBlue  =
               lpbmi->bmiColors[i].rgbBlue;
            lpPal->palPalEntry[i].peFlags = 0;
         } else {
            lpPal->palPalEntry[i].peRed =
               lpbmc->bmciColors[i].rgbtRed;
            lpPal->palPalEntry[i].peGreen =
               lpbmc->bmciColors[i].rgbtGreen;
            lpPal->palPalEntry[i].peBlue = 
               lpbmc->bmciColors[i].rgbtBlue;
            lpPal->palPalEntry[i].peFlags = 0;
         }
      }
      hPal = CreatePalette(lpPal);
      GlobalFreePtr(lpPal);
   }
   GlobalUnlock(hDIB);
   return hPal;
}

HBITMAP LOCALFUNC DIBToBMP(HGLOBAL hDIB, HPALETTE hPal)
// convert a DIB in a global memory block to a DDB
{
   LPSTR    lpDIBHdr;
   HBITMAP  hbmp;
   HDC      hdc;
   HPALETTE hPalOld = NULL;

   if (!hDIB)
      return NULL;

   lpDIBHdr = GlobalLock(hDIB);
   hdc = GetDC(NULL);
   if(!hdc) {
      GlobalUnlock(hDIB);
      return NULL;
   }
   if (hPal) {
      hPalOld = SelectPalette(hdc,hPal,FALSE);
      RealizePalette(hdc);
   }
   hbmp = CreateDIBitmap(hdc,
      (LPBITMAPINFOHEADER)lpDIBHdr,
      CBM_INIT,
      GETDIBBITS(lpDIBHdr),
      (LPBITMAPINFO)lpDIBHdr,
      DIB_RGB_COLORS);
   if(hPalOld)
      hPalOld = SelectPalette(hdc,hPalOld,FALSE);
   ReleaseDC(NULL,hdc);
   GlobalUnlock(hDIB);
   return hbmp;
}

BOOL LOCALFUNC ReadDIBFile( HWND hwnd, LPCSTR lpstrFileName )
// reads a DIB file, and converts it to a DDB, and creates the
// logical palette.
{
   BITMAPFILEHEADER bmfh;
   OFSTRUCT of;
   DWORD dwSize;
   HGLOBAL hDat = NULL;
   LPSTR lpDat = NULL;
   HFILE hf = OpenFile(lpstrFileName,&of,OF_READ);
   HPALETTE hPal;
   if( hf == HFILE_ERROR ) goto failed;
   if( _hread(hf,&bmfh,sizeof(bmfh) ) != sizeof(bmfh) ) goto failed;
   if( bmfh.bfType != 'BM' ) goto failed;
   dwSize = _llseek(hf,0,2) - sizeof(bmfh);
   _llseek(hf,sizeof(bmfh),0);
   hDat = GlobalAlloc(GHND,dwSize);
   if( !hDat ) goto failed;
   lpDat = GlobalLock( hDat );
   _hread(hf,lpDat,dwSize);
   GlobalUnlock(hDat);
   hPal = CreateDIBPalette(hDat);
   SetProp(hwnd,"palette",hPal);
   SetProp(hwnd,"bmp",DIBToBMP(hDat,hPal));
   GlobalFree(hDat);
   _lclose(hf);
   return TRUE;
failed:
   if( lpDat )
      GlobalUnlock(hDat);
   if( hDat )
      GlobalFree(hDat);
   if( hf != HFILE_ERROR )
      _lclose(hf);
   return FALSE;
}

void LOCALFUNC OpenDIBFile( HWND hwnd, LPCSTR lpstrFileName )
// read DIB file, updates title and display
{
   char szTitle[80] = "256 Color BMP Viewer";
   HPALETTE hPal = GetProp(hwnd,"palette");
   HBITMAP hbmp = GetProp(hwnd,"bmp");
   if(hPal) {
      DeleteObject(hPal);
      RemoveProp(hwnd,"palette");
   }
   if(hbmp) {
      DeleteObject(hbmp);
      RemoveProp(hwnd,"bmp");
   }
   if( lpstrFileName ) {
      ReadDIBFile(hwnd,lpstrFileName);
      lstrcat(szTitle," - ");
      GetFileTitle(lpstrFileName,szTitle+lstrlen(szTitle),
         sizeof(szTitle)-lstrlen(szTitle));
   }
   SetWindowText(hwnd,szTitle);
   InvalidateRect(hwnd,NULL,TRUE);
}


void LOCALFUNC OpenFileDlg( HWND hwnd )
// displays Open File dialog
{
   char szFileName[80] = "";
   static OPENFILENAME ofn;

   ofn.lStructSize = sizeof(ofn);
   ofn.hwndOwner = hwnd;
   ofn.hInstance = hInst;
   ofn.lpstrFilter = "bitmaps\000*.bmp;*.dib;*.rle\000";
   ofn.lpstrFile = szFileName;
   ofn.nMaxFile = sizeof(szFileName);
   ofn.Flags = OFN_HIDEREADONLY | OFN_FILEMUSTEXIST;
   ofn.lpstrDefExt = "BMP";
   if( GetOpenFileName(&ofn) )
      SendMessage(hwnd,WM_OPENFILE,0,(LPARAM)(LPSTR)szFileName);
}

int LOCALFUNC RealizeMyPalette( HWND hwnd )
// realize palette to screen DC, return number of changed entries
{
   HDC hdc = GetDC(hwnd);
   HPALETTE hPal = GetProp(hwnd,"palette");
   int i = 0;
   if(hPal) {
      hPal = SelectPalette(hdc,hPal,FALSE);
      i = RealizePalette(hdc);
      SelectPalette(hdc,hPal,FALSE);
      ReleaseDC(hwnd,hdc);
   }
   return i;
}

LRESULT CALLBACK _export MainWndProc( HWND hwnd, UINT msg,
   WPARAM wParam, LPARAM lParam )
{
   switch(msg) {

      case WM_DESTROY:
         OpenDIBFile(hwnd,NULL);
         PostQuitMessage(0);
         return 0;

      case WM_PAINT:
         return WMPaint(hwnd);

      case WM_PALETTECHANGED:
         if( (HWND)wParam != hwnd && GetProp(hwnd,"palette") )
            if( RealizeMyPalette(hwnd) )
               InvalidateRect(hwnd,NULL,TRUE);
         return 0;

      case WM_QUERYNEWPALETTE: {
         if(RealizeMyPalette(hwnd)) {
            InvalidateRect(hwnd,NULL,TRUE);
            return TRUE;
         }
         return 0;
      }

      case WM_OPENFILE:
         OpenDIBFile(hwnd,(LPSTR)lParam);
         return 0;

      case WM_COMMAND:
         switch(wParam) {
            case CM_EXIT:
               SendMessage(hwnd,WM_CLOSE,0,0);
               return 0;
            case CM_FILEOPEN:
               OpenFileDlg(hwnd);
               return 0;
         }
         return 0;

   }
   return DefWindowProc(hwnd,msg,wParam,lParam);
}

int MessagePump(void)
{
   MSG msg;
   while( GetMessage(&msg,NULL,0,0) ) {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
   }
   return msg.wParam;
}

#pragma argsused
int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,
                    LPSTR lpstrCmdLine, int nCmdShow )
{
   char szClassName[] = "256BmpDemo";
   HWND hwnd;
   hInst = hInstance;
   if(!hPrevInst) {
      WNDCLASS wc;
      memset(&wc,0,sizeof(wc));
      wc.style         = CS_HREDRAW|CS_VREDRAW;
      wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
      wc.hCursor       = LoadCursor(NULL,IDC_ARROW);
      wc.hIcon         = LoadIcon(NULL,IDI_APPLICATION);
      wc.lpfnWndProc   = MainWndProc;
      wc.lpszClassName = szClassName;
      wc.lpszMenuName  = MAKEINTRESOURCE(MENU_MAIN);
      wc.hInstance     = hInst;
      RegisterClass(&wc);
   }
   hwnd = CreateWindow(szClassName,"256 Color Bitmap",
                       WS_OVERLAPPEDWINDOW,
                       CW_USEDEFAULT,CW_USEDEFAULT,500,500,
                       NULL,NULL,hInst,NULL);
   if(hwnd) {
      if( lstrlen(lpstrCmdLine) )
         SendMessage(hwnd,WM_OPENFILE,0,(LPARAM)lpstrCmdLine);
      ShowWindow(hwnd,nCmdShow);
      UpdateWindow(hwnd);
      return MessagePump();
   }
   return -1;
}

Listing for bmp256.rh:

/* bmp256.rh */
#define MENU_MAIN     1001
#define CM_FILEOPEN   102
#define CM_EXIT       101
Listing for bmp256.rc:
/* bmp256.rc */
#include "bmp256.rh"

MENU_MAIN MENU 
{
 POPUP "&File"
 {
  MENUITEM "&Open...", CM_FILEOPEN
  MENUITEM "E&xit", CM_EXIT
 }
}

Listing for bmp256.def:

NAME        BMP256
DESCRIPTION "256 Color DIB demo - Copyright 1995 Robert Mashlan"
EXETYPE     WINDOWS
CODE        LOADONCALL MOVEABLE DISCARDABLE
DATA        PRELOAD MOVEABLE MULTIPLE
HEAPSIZE    1024
STACKSIZE   8196

Copyright 1995 Robert Mashlan
Return to Windows Developer FAQ - Graphics
Comments?
libwmf-0.2.13/doc/caolan/Arc.html000066400000000000000000000027311441723000300164470ustar00rootroot00000000000000 META_ARC

NAME

META_ARC

NEAREST API CALL

#include <windows.h>

BOOL32 Arc
(
    HDC32 hdc,
    INT32 left,
    INT32 top,
    INT32 right,
    INT32 bottom,
    INT32 xstart,
    INT32 ystart,
    INT32 xend,
    INT32 yend
);

DESCRIPTION

U16 array noValue
0 yend, y of endpoint
1 xend, x of endpoint
2 ystart, y of endpoint
3xstart, x of endpoint
4bottom, bottom of bounding box
5right, right of bounding box
6top, top of bounding box
7left, left of bounding box
left, right, top and bottom are the extents of the ellipse of which the arc is a part
xstart,ystart define a point from which you draw an imaginary line between it and the center of the ellipse, where that line intersects the ellipse is the starting part of the arc
xend,yend similiarly define the end of the arc.

This is quite different from how X, and other drawing lib's define an Arc, and its somewhat awkward to convert from it to X's mechanism, see the X bindings for libwmf for info on that.

back libwmf-0.2.13/doc/caolan/BitBlt.html000066400000000000000000000014231441723000300171170ustar00rootroot00000000000000 BitBlt - BitBlt32 (GDI32.10)

NAME

BitBlt - BitBlt32 (GDI32.10)

SYNOPSIS

#include <windows.h>

BOOL32 BitBlt
(
	HDC32 hdcDst,
	INT32 xDst,
	INT32 yDst,
	INT32 width,
	INT32 height,
	HDC32 hdcSrc,
	INT32 xSrc,
	INT32 ySrc,
	DWORD rop
);

DESCRIPTION

BitBlt32 (GDI32.10).

SEE ALSO

PatBlt , StretchBlt , MaskBlt , PlgBlt

back libwmf-0.2.13/doc/caolan/Bmpfrmat.html000066400000000000000000001003421441723000300175070ustar00rootroot00000000000000 BMP Format

Title:

BMP Format

Subject:

Windows Bitmap File Format Specifications

Author:

Wim Wouters

Version:

V1.1

 

Table of Contents

Table of Contents

Introduction

Bitmap File Format

General

BMP Contents

Field Details

Height Field

Bits Per Pixel Field

Compression Field

Colors Field

Important Colors Field

 

Introduction

This document describes the Microsoft Windows and IBM OS/2 picture bitmap files, called Bitmaps or BMP files. Most of the descriptions of the BMP file concentrate on the Microsoft Windows BMP structures like BMPINFOHEADER and BMPCOREINFO , but only a few describe the file contents on byte level. This information is therefor only intended to be used in applications where direct reading and writing of a BMP file is required.

Bitmap File Format

The following chapters contain the detailed information on the contents of the BMP file. First more general information will be given regarding the byte order and file alignment. The second chapter will concentrate on the byte-level contents of a BMP file. The third chapter will elaborate on this chapter and explain some of the concepts - like compression - and/or values in detail.

General

The BMP file has been created by Microsoft and IBM and is therefor very strictly bound to the architecture of the main hardware platform that both companies support: the IBM compatible PC. This means that all values stored in the BMP file are in the Intel format, sometimes also called the Little Endian format because of the byte order that an Intel processor uses internally to store values.

 

The BMP files are the way, Windows stores bit mapped images. The BMP image data is bit packed but every line must end on a dword boundary - if that’s not the case, it must be padded with zeroes. BMP files are stored bottom-up, that means that the first scan line is the bottom line.

 

The BMP format has four incarnations, two under Windows (new and old) and two under OS/2, all are described here.

BMP Contents

The following table contains a description of the contents of the BMP file. For every field, the file offset, the length and the contents will be given. For a more detailed discussion, see the following chapters.

 

Offset

Field

Size

Contents

0000h

Identifier

2 bytes

The characters identifying the bitmap. The following entries are possible:

 

‘BM’ - Windows 3.1x, 95, NT, …

‘BA’ - OS/2 Bitmap Array

‘CI’ - OS/2 Color Icon

‘CP’ - OS/2 Color Pointer

‘IC’ - OS/2 Icon

‘PT’ - OS/2 Pointer

0002h

File Size

1 dword

Complete file size in bytes.

0006h

Reserved

1 dword

Reserved for later use.

000Ah

Bitmap Data Offset

1 dword

Offset from beginning of file to the beginning of the bitmap data.

000Eh

Bitmap Header Size

1 dword

Length of the Bitmap Info Header used to describe the bitmap colors, compression, … The following sizes are possible:

 

28h - Windows 3.1x, 95, NT, …

0Ch - OS/2 1.x

F0h - OS/2 2.x

0012h

Width

1 dword

Horizontal width of bitmap in pixels.

0016h

Height

1 dword

Vertical height of bitmap in pixels.

001Ah

Planes

1 word

Number of planes in this bitmap.

001Ch

Bits Per Pixel

1 word

Bits per pixel used to store palette entry information. This also identifies in an indirect way the number of possible colors. Possible values are:

1 - Monochrome bitmap

4 - 16 color bitmap

8 - 256 color bitmap

16 - 16bit (high color) bitmap

24 - 24bit (true color) bitmap

32 - 32bit (true color) bitmap

001Eh

Compression

1 dword

Compression specifications. The following values are possible:

0 - none (Also identified by BI_RGB)

1 - RLE 8-bit / pixel (Also identified by BI_RLE4)

2 - RLE 4-bit / pixel (Also identified by BI_RLE8)

3 - Bitfields (Also identified by BI_BITFIELDS)

0022h

Bitmap Data Size

1 dword

Size of the bitmap data in bytes. This number must be rounded to the next 4 byte boundary.

0026h

HResolution

1 dword

Horizontal resolution expressed in pixel per meter.

002Ah

VResolution

1 dword

Vertical resolution expressed in pixels per meter.

002Eh

Colors

1 dword

Number of colors used by this bitmap. For a 8-bit / pixel bitmap this will be 100h or 256.

0032h

Important Colors

1 dword

Number of important colors. This number will be equal to the number of colors when every color is important.

0036h

Palette

N * 4 byte

The palette specification. For every entry in the palette four bytes are used to describe the RGB values of the color in the following way:

1 byte for blue component

1 byte for green component

1 byte for red component

1 byte filler which is set to 0 (zero)

0436h

Bitmap Data

x bytes

Depending on the compression specifications, this field contains all the bitmap data bytes which represent indices in the color palette.

 

 

Note: The following sizes were used in the specification above:

 

Size

# bytes

Sign

char

1

signed

word

2

unsigned

dword

4

unsigned

Field Details

Some of the fields require some more information. The following chapters will try to provide this information:

Height Field

The Height field identifies the height of the bitmap in pixels. In other words, it describes the number of scan lines of the bitmap. If this field is negative, indicating a top-down DIB, the Compression field must be either BI_RGB or BI_BITFIELDS. Top-down DIBs cannot be compressed.

Bits Per Pixel Field

The Bits Per Pixel (BBP) field of the bitmap file determines the number of bits that define each pixel and the maximum number of colors in the bitmap.

 

  • When this field is equal to 1.

 

The bitmap is monochrome, and the palette contains two entries. Each bit in the bitmap array represents a pixel. If the bit is clear, the pixel is displayed with the color of the first entry in the palette; if the bit is set, the pixel has the color of the second entry in the table.

 

 

  • When this field is equal to 4.

 

The bitmap has a maximum of 16 colors, and the palette contains up to 16 entries. Each pixel in the bitmap is represented by a 4-bit index into the palette. For example, if the first byte in the bitmap is 1Fh, the byte represents two pixels. The first pixel contains the color in the second palette entry, and the second pixel contains the color in the sixteenth palette entry.

 

 

  • When this field is equal to 8.

 

The bitmap has a maximum of 256 colors, and the palette contains up to 256 entries. In this case, each byte in the array represents a single pixel.

 

 

  • When this field is equal to 16.

 

The bitmap has a maximum of 2^16 colors. If the Compression field of the bitmap file is set to BI_RGB, the Palette field does not contain any entries. Each word in the bitmap array represents a single pixel. The relative intensities of red, green, and blue are represented with 5 bits for each color component. The value for blue is in the least significant 5 bits, followed by 5 bits each for green and red, respectively. The most significant bit is not used.

 

If the Compression field of the bitmap file is set to BI_BITFIELDS, the Palette field contains three dword color masks that specify the red, green, and blue components, respectively, of each pixel. Each word in the bitmap array represents a single pixel.

 

Windows NT specific: When the Compression field is set to BI_BITFIELDS, bits set in each dword mask must be contiguous and should not overlap the bits of another mask. All the bits in the pixel do not have to be used.

 

Windows 95 specific: When the Compression field is set to BI_BITFIELDS, Windows 95 supports only the following 16bpp color masks: A 5-5-5 16-bit image, where the blue mask is 0x001F, the green mask is 0x03E0, and the red mask is 0x7C00; and a 5-6-5 16-bit image, where the blue mask is 0x001F, the green mask is 0x07E0, and the red mask is 0xF800.

 

 

  • When this field is equal to 24.

 

The bitmap has a maximum of 2^24 colors, and the Palette field does not contain any entries. Each 3-byte triplet in the bitmap array represents the relative intensities of blue, green, and red, respectively, for a pixel.

 

 

  • When this field is equal to 32.

 

The bitmap has a maximum of 2^32 colors. If the Compression field of the bitmap is set to BI_RGB, the Palette field does not contain any entries. Each dword in the bitmap array represents the relative intensities of blue, green, and red, respectively, for a pixel. The high byte in each dword is not used.

 

If the Compression field of the bitmap is set to BI_BITFIELDS, the Palette field contains three dword color masks that specify the red, green, and blue components, respectively, of each pixel. Each dword in the bitmap array represents a single pixel.

 

Windows NT specific: When the Compression field is set to BI_BITFIELDS, bits set in each dword mask must be contiguous and should not overlap the bits of another mask. All the bits in the pixel do not have to be used.

 

Windows 95 specific: When the Compression field is set to BI_BITFIELDS, Windows 95 supports only the following 32bpp color mask: The blue mask is 0x000000FF, the green mask is 0x0000FF00, and the red mask is 0x00FF0000.

Compression Field

The Compression field specifies the way the bitmap data is stored in the file. This information together with the Bits Per Pixel (BPP) field identifies the compression algorithm to follow.

 

The following values are possible in this field:

 

Value

Meaning

BI_RGB

An uncompressed format.

BI_RLE4

An RLE format for bitmaps with 4 bits per pixel. The compression format is a two-byte format consisting of a count byte followed by two word-length color indices. For more information, see the following Remarks section.

BI_RLE8

A run-length encoded (RLE) format for bitmaps with 8 bits per pixel. The compression format is a two-byte format consisting of a count byte followed by a byte containing a color index. For more information, see the following Remarks section.

BI_BITFIELDS

Specifies that the bitmap is not compressed and that the color table consists of three double word color masks that specify the red, green, and blue components, respectively, of each pixel. This is valid when used with 16- and 32- bits-per-pixel bitmaps.

 

When the Compression field is BI_RLE8, the bitmap is compressed by using a run-length encoding (RLE) format for an 8-bit bitmap. This format can be compressed in encoded or absolute modes. Both modes can occur anywhere in the same bitmap.

 

  • Encoded mode consists of two bytes:

 

The first byte specifies the number of consecutive pixels to be drawn using the color index contained in the second byte. In addition, the first byte of the pair can be set to zero to indicate an escape that denotes an end of line, end of bitmap, or delta. The interpretation of the escape depends on the value of the second byte of the pair, which can be one of the following:

 

0

End of line.

1

End of bitmap.

2

Delta. The two bytes following the escape contain unsigned values indicating the horizontal and vertical offsets of the next pixel from the current position.

 

  • Absolute mode.

 

The first byte is zero and the second byte is a value in the range 03H through FFH. The second byte represents the number of bytes that follow, each of which contains the color index of a single pixel. When the second byte is 2 or less, the escape has the same meaning as in encoded mode. In absolute mode, each run must be aligned on a word boundary.

 

 

 

The following example shows the hexadecimal values of an 8-bit compressed bitmap.

 

03 04 05 06 00 03 45 56 67 00 02 78 00 02 05 01 02 78 00 00 09 1E 00 01

 

This bitmap would expand as follows (two-digit values represent a color index for a single pixel):

 

04 04 04

06 06 06 06 06

45 56 67

78 78

move current position 5 right and 1 down

78 78

end of line

1E 1E 1E 1E 1E 1E 1E 1E 1E

end of RLE bitmap

 

 

When the Compression field is BI_RLE4, the bitmap is compressed by using a run-length encoding format for a 4-bit bitmap, which also uses encoded and absolute modes:

 

  • In encoded mode.

 

The first byte of the pair contains the number of pixels to be drawn using the color indices in the second byte. The second byte contains two color indices, one in its high-order four bits and one in its low-order four bits. The first of the pixels is drawn using the color specified by the high-order four bits, the second is drawn using the color in the low-order four bits, the third is drawn using the color in the high-order four bits, and so on, until all the pixels specified by the first byte have been drawn.

 

  • In absolute mode.

 

The first byte is zero, the second byte contains the number of color indices that follow, and subsequent bytes contain color indices in their high- and low-order four bits, one color index for each pixel. In absolute mode, each run must be aligned on a word boundary.

The end-of-line, end-of-bitmap, and delta escapes described for BI_RLE8 also apply to BI_RLE4 compression.

 

 

The following example shows the hexadecimal values of a 4-bit compressed bitmap.

 

03 04 05 06 00 06 45 56 67 00 04 78 00 02 05 01 04 78 00 00 09 1E 00 01

 

This bitmap would expand as follows (single-digit values represent a color index for a single pixel):

 

0 4 0

0 6 0 6 0

4 5 5 6 6 7

7 8 7 8

move current position 5 right and 1 down

7 8 7 8

end of line

1 E 1 E 1 E 1 E 1

end of RLE bitmap

Colors Field

The Colors field specifies the number of color indices in the color table that are actually used by the bitmap. If this value is zero, the bitmap uses the maximum number of colors corresponding to the value of the BBP field for the compression mode specified by the Compression field.

 

If the Colors field is nonzero and the BBP field less than 16, the Colors field specifies the actual number of colors the graphics engine or device driver accesses.

 

If the BBP field is 16 or greater, then Colors field specifies the size of the color table used to optimize performance of Windows color palettes.

 

If BBP equals 16 or 32, the optimal color palette starts immediately following the three double word masks.

If the bitmap is a packed bitmap (a bitmap in which the bitmap array immediately follows the bitmap header and which is referenced by a single pointer), the Colors field must be either 0 or the actual size of the color table.

Important Colors Field

The Important Colors field specifies the number of color indices that are considered important for displaying the bitmap. If this value is zero, all colors are important.

 

libwmf-0.2.13/doc/caolan/Chord.html000066400000000000000000000010561441723000300170000ustar00rootroot00000000000000 META_CHORD

NAME

META_CHORD

NEAREST API CALL

#include <windows.h>
BOOL32 Chord
(
	HDC32 hdc,
	INT32 left,
	INT32 top,
	INT32 right,
	INT32 bottom,
	INT32 xstart,
	INT32 ystart,
	INT32 xend,
	INT32 yend
);

DESCRIPTION

The exact same as an arc, only the arc is closed, and may be filled with a brush.

back

libwmf-0.2.13/doc/caolan/CreateBrushIndirect.html000066400000000000000000000021701441723000300216300ustar00rootroot00000000000000 META_CREATEBRUSHINDIRECT

NAME

META_CREATEBRUSHINDIRECT

NEAREST API CALL

#include <windows.h>
HBRUSH32 CreateBrushIndirect(const LOGBRUSH32 *brush);

typedef struct tagLOGBRUSH
{
	UINT        lbStyle;
	COLORREF    lbColor;
	LONG        lbHatch;
} LOGBRUSH;

DESCRIPTION

U16 Value
0 lbStyle
1 lbColor
2
3 lbHatch
lbColor is the color of the brush, lbStyle can be one of BS_SOLID,BS_NULL & BS_HATCHED, there are others, but i dont think they can show up in metafiles

if lbStyle is not hatched then lbHatch is ignored, otherwise lbHatch is one of HS_HORIZONTAL, HS_VERTICAL, HS_FDIAGONAL, HS_BDIAGONAL, HS_CROSS, HS_DIAGCROSS. See the source for details of these.

This operation adds an entry for itself in the object list.

back

libwmf-0.2.13/doc/caolan/CreatePenIndirect.html000066400000000000000000000031141441723000300212660ustar00rootroot00000000000000 META_CREATEPENINDIRECT

NAME

META_CREATEPENINDIRECT

NEAREST API CALL

#include <windows.h>
HPEN32 CreatePenIndirect(const LOGPEN32 *pen);

typedef struct tagLOGPEN
{
	UINT        lopnStyle;
	POINT       lopnWidth;
	COLORREF    lopnColor;
} LOGPEN;

DESCRIPTION

U16 Value
0 lopnStyle
1 lopnWidth
2 lopnColor
3
lopnColor is the color of the pen, lopnWidth is the width of the pen, if the pen's width is > 1 but the lopnStyle is not solid, then lopnStyle is ignored and set to solid anyway.
lopnStyle can be one of PS_SOLID, PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT, PS_NULL, PS_INSIDEFRAME, PS_USERSTYLE, PS_ALTERNATE . Check out the source for that they actually mean. Theres also a set of flags and masks that can be found in lopnStyle as well that set the end and join styles of lines drawn with a pen, they are PS_STYLE_MASK, PS_ENDCAP_ROUND, PS_ENDCAP_SQUARE, PS_ENDCAP_FLAT, PS_ENDCAP_MASK, PS_JOIN_ROUND, PS_JOIN_BEVEL, PS_JOIN_MITER, PS_JOIN_MASK, PS_COSMETIC, PS_GEOMETRIC, PS_TYPE_MASK, again check out the source to figure these out.

This operation adds an entry for itself in the object list.

back

libwmf-0.2.13/doc/caolan/CreateRegion.html000066400000000000000000000026541441723000300203150ustar00rootroot00000000000000 META_CREATEREGION

NAME

META_CREATEREGION

NEAREST API CALL

#include <windows.h>
HRGN32 CreateRectRgn
(
	INT32 left,
	INT32 top,
	INT32 right,
	INT32 bottom
);

DESCRIPTION

Now on this one, i havent a clue, so heres what the wine source has to say on the matter, i blithered for a while and gave up and just dumped the wine source into libwmf and waved a dead chicken over it, and it appears to work for rectangular regions so....
/*
 *  The layout of the record looks something like this:
 *  
 *   rdParam    meaning
 *   0      Always 0?
 *   1      Always 6?
 *   2      Looks like a handle? - not constant
 *   3      0 or 1 ??
 *   4      Total number of bytes
 *   5      No. of seperate bands = n [see below]
 *   6      Largest number of x co-ords in a band
 *   7-10       Bounding box x1 y1 x2 y2
 *   11-...     n bands
 *
 *   Regions are divided into bands that are uniform in the
 *   y-direction. Each band consists of pairs of on/off x-coords and is
 *   written as
 *      m y0 y1 x1 x2 x3 ... xm m
 *   into successive rdParam[]s.
 *
 *   This is probably just a dump of the internal RGNOBJ?
 *
 *   HDMD - 18/12/97
 *
 */

This operation adds an entry for itself in the object list.

back

libwmf-0.2.13/doc/caolan/DeleteObject.html000066400000000000000000000013371441723000300202740ustar00rootroot00000000000000 META_DELETEOBJECT

NAME

META_DELETEOBJECT

NEAREST API CALL

#include <windows.h>
BOOL32 DeleteObject(HGDIOBJ32 obj)

DESCRIPTION

U16 Value
0 object no
object no is the number of the object to delete, this frees up the number of the object to be reused by any of the Create operands, e.g CreatePenIndirect, SelectObject has more details on objects.

back

libwmf-0.2.13/doc/caolan/DibBitBlt.html000066400000000000000000000065351441723000300175470ustar00rootroot00000000000000 META_DIBBITBLT

NAME

META_DIBBITBLT

NEAREST API CALL

#include <windows.h>

BOOL32 BitBlt
(
    HDC32 hdcDst,
    INT32 xDst,
    INT32 yDst,
    INT32 width,
    INT32 height,
    HDC32 hdcSrc,
    INT32 xSrc,
    INT32 ySrc,
    DWORD rop
);

DESCRIPTION

DIBBITBLT is the operand that BitBlt converts to automatically when used with a metafile. It has two forms so watch out.

DibBitBlt basically copies a dib into a dest location transformed by the ROP, but it can also be used with ROP's that dont use the src at all.

Form 1
In the scenario where hdcSrc is NULL, then the arguments are as follows
U16Value
0rop
1
2ySrc
3xSrc
4???, probably nothing
5height
6width
7yDst
8xDst

Form 2
In the scenario where hdcSrc is not NULL, then the arguments are as follows
U16Value
0rop
1
2ySrc
3xSrc
4height
5width
6yDst
7xDst
8 until the endthe src dib

rop is the ROP.
ySrc is the starting y coord to copy from (in log units i suppose) in the dib (if it exists).
xSrc it the x coord to copy from (in log units i suppose) in the dib (if it exists).
height is height in logical units of the destination rectangle
width is width in logical units of the destination rectangle
yDst is the y pos in logical units of the rectangle to copy to in the destination window
xDst is the x pos in logical units of the rectangle to copy to in the destination window

The primary purpose of this is to copy a dib to a given location, but it can be used to do all sorts of ROP tricks as well or instead.

back

Some realworld examples and thoughts at the time on DIBBITBLT


DIBBITBLT is created from a BitBlt call, i havent seen BITBLT in the wild at
all and suspect that it doesnt exist.

theres two sets of possibilites for the parameters.
one that fits the layout of the call which is used 
when the src is NULL, i.e....

head
40 09

0 }__dwRop
1 }

2 srcy  
00 00

3 srcx  
00 00

4       ?
00 00

5 height
50 00

6 width
50 00

7 dest y
00 00

8 dest x
5a 00

and the other when src is not NULL, with the calls that use
src, where in effect argument 4 (the src dc) is missing
and the dib placed after the end of the parameters. I suppose
you can tell one from the other either by looking at the
no of parameters, or by seeing if no 4 is 0, or by seeing
if the dwROP requires a src, i use approach one, as its simple.




head
40 09


0 }__dwROP 
1 }
09 0a fb 00

2 srcy
00 00

3 srcx
00 00

4 dest height
50 00

5 dest width
50 00

6 dest y
b4 00

7 dest x
b4 00

8 the dib itself.
28 00

9
00 00

10
50 00

11
00 00

12
50 00

13
00 00

01 00

Caolan
libwmf-0.2.13/doc/caolan/DibCreatePatternBrush.html000066400000000000000000000010361441723000300221230ustar00rootroot00000000000000 META_DIBCREATEPATTERNBRUSH

NAME

META_SETBKCOLOR

NEAREST API CALL

#include <windows.h>
HBRUSH32 CreatePatternBrush(HBITMAP32 hbitmap);

DESCRIPTION

U16 Value
0 until end the dib
The bytes of the dib that makes up the brush.

back

libwmf-0.2.13/doc/caolan/DibStretchBlt.html000066400000000000000000000022071441723000300204350ustar00rootroot00000000000000 META_DIBSTRETCHBLT

NAME

META_DIBSTRETCHBLT

NEAREST API CALL

#include <windows.h>
BOOL32 StretchBlt
(
	HDC32 hdcDst,
	INT32 xDst,
	INT32 yDst,
	INT32 widthDst,
	INT32 heightDst,
	HDC32 hdcSrc,
	INT32 xSrc,
	INT32 ySrc,
	INT32 widthSrc,
	INT32 heightSrc,
	DWORD rop
);

DESCRIPTION

U16Value
0rop
1
2ySrc
3xSrc
4src height
5src width
6dest height
7dest width
8yDest
9xDest
10 until the endthe full dib
DibStretchBlt stretches a dib of src height and src width (from location ySrc and xSrc ?) to the destination x and y, with the dest width and height, transformed by the rop.

back

libwmf-0.2.13/doc/caolan/Ellipse.html000066400000000000000000000013731441723000300173400ustar00rootroot00000000000000 META_ELLIPSE

NAME

META_ELLIPSE

NEAREST API CALL

#include <windows.h>
BOOL32 Ellipse
(
HDC32 hdc,
INT32 left,
INT32 top,
INT32 right,
INT32 bottom
);

DESCRIPTION

U16 array noValue
0bottom, bottom of bounding box
1right, right of bounding box
2top, top of bounding box
3left, left of bounding box
left, right, top and bottom are the extents of the ellipse.

back libwmf-0.2.13/doc/caolan/ExcludeClipRect.html000066400000000000000000000015021441723000300207540ustar00rootroot00000000000000 META_EXCLUDECLIPRECT

NAME

META_EXCLUDECLIPRECT

NEAREST API CALL

#include <windows.h>
INT32 ExcludeClipRect
(
	HDC32 hdc,
	INT32 left,
	INT32 top,
	INT32 right,
	INT32 bottom
);

DESCRIPTION

DESCRIPTION

U16 array noValue
0 bottom
1 right
2 top
3left
top, left, right and bottom define the points of the region to be deleted from the clipping region, the resultant clipping region is the original region minus this region.

back

libwmf-0.2.13/doc/caolan/ExtFloodFill.html000066400000000000000000000017021441723000300202720ustar00rootroot00000000000000 META_EXTFLOODFILL

NAME

META_EXTFLOODFILL

NEAREST API CALL

#include <windows.h>
BOOL32 ExtFloodFill
(
	HDC32 hdc,
	INT32 x,
	INT32 y,
	COLORREF color,
	UINT32 fillType
);

DESCRIPTION

U16 Value
0 fillType
1 COLORREF
2
3 y
4 x
The same as FloodFill, except that fillType is prepended, which can be one of FLOODFILLBORDER or FLOODFILLSURFACE. FLOODFILLBORDER makes ExtFloodFill function as FloodFill, FLOODFILLSURFACE converts the area of color that the point x,y is set to, to the new color.

back

libwmf-0.2.13/doc/caolan/ExtTextOut.html000066400000000000000000000041061441723000300200350ustar00rootroot00000000000000 META_EXTTEXTOUT

NAME

META_EXTTEXTOUT

NEAREST API CALL

#include <windows.h>
BOOL32 ExtTextOutA
(
	HDC32 hdc,
	INT32 x,
	INT32 y,
	UINT32 flags,
	const RECT32 *lprect,
	LPCSTR str,
	UINT32 count,
	const INT32 *lpDx
);

DESCRIPTION

U16 Value
0 y
1 x
2 count
3 flag
If flag & ETO_CLIPPED is true then the following parameters are...
U16 Value
4 x1
5 y1
6 x2
7 y2
In either case the next parameters are
U16 Value
next parameter, for a count of parameter[2]/2 two chars of the string
There may be extra parameters after the end of the string , this array is known as lpDx and each element is the extra distance from one character to the next.
U16 Value
each next parameter, until the end of the record
count is the number of characters in the string, as each char is only a 8bit number, two chars exist in each 16bit parameter entry.
flag is one or both of ETO_OPAQUE and ETO_CLIPPED, the first means that the background of the box that the text is typed in is OPAQUE, and the usual opaque rules apply, (SetBkMode. The second means that the text is clipped to the rectangle supplied. x1, y1, x2 and y2, are the points of the optional clipping rectangle, included if flags has ETO_CLIPPED set
Then the string follows, and then there is an optional array of widths, each 16bit width is the distance from one character to the next.

back

libwmf-0.2.13/doc/caolan/FillRgn.html000066400000000000000000000012141441723000300172720ustar00rootroot00000000000000 META_FILLREGION

NAME

META_FILLREGION

NEAREST API CALL

#include <windows.h>
BOOL32 FillRgn
(
HDC32 hdc,
HRGN32 hrgn,
HBRUSH32 hbrush
);

DESCRIPTION

U16 array noValue
0 region object no
1 brush object no
FillRgn fills the region identified by the first param with the brush identified with the second param.

back libwmf-0.2.13/doc/caolan/FloodFill.html000066400000000000000000000014071441723000300176130ustar00rootroot00000000000000 META_FLOODFILL

NAME

META_FLOODFILL

NEAREST API CALL

#include <windows.h>
BOOL32 FloodFill
(
	HDC32 hdc,
	INT32 x,
	INT32 y,
	COLORREF color
);

DESCRIPTION

U16 Value
0 COLORREF
1
2 y
3 x
At the point x,y FloodFill fills with the color COLORREF in all directions until it meets a border of the same color as COLORREF. see ExtFloodFill

back libwmf-0.2.13/doc/caolan/FrameRgn.html000066400000000000000000000015361441723000300174450ustar00rootroot00000000000000 META_FRAMEREGION

NAME

META_FRAMEREGION

NEAREST API CALL

#include <windows.h>
BOOL32 FrameRgn
(
	HDC32 hdc,
	HRGN32 hrgn,
	HBRUSH32 hbrush,
	INT32 nWidth,
	INT32 nHeight
);

DESCRIPTION

U16 array noValue
0 height
1 width
2 region object no
3 brush object no
FrameRgn draws a border around region identified by the first param with the brush identified with the second param. width is the width of vertical lines, and height is the height of horizontal lines.

back libwmf-0.2.13/doc/caolan/IntersectClipRect.html000066400000000000000000000014741441723000300213330ustar00rootroot00000000000000 META_INTERSECTCLIPRECT

NAME

META_INTERSECTCLIPRECT

NEAREST API CALL

#include <windows.h>
INT32 IntersectClipRect
(
	HDC32 hdc,
	INT32 left,
	INT32 top,
	INT32 right,
	INT32 bottom
);

DESCRIPTION

DESCRIPTION

U16 array noValue
0 bottom
1 right
2 top
3left
top, left, right and bottom define the points of the clipping region, the resultant clipping region is the intersection of this region and the original region.

back

libwmf-0.2.13/doc/caolan/InvertRgn.html000066400000000000000000000010461441723000300176560ustar00rootroot00000000000000 META_INVERTREGION

NAME

META_INVERTREGION

NEAREST API CALL

#include <windows.h>
BOOL32 InvertRgn
(
HDC32 hdc,
HRGN32 hrgn
);

DESCRIPTION

U16 array noValue
0 region object no
InvertRgn inverts the region identified by the first param.

back libwmf-0.2.13/doc/caolan/LineTo.html000066400000000000000000000012471441723000300171350ustar00rootroot00000000000000 META_LINETO

NAME

META_LINETO

NEAREST API CALL

#include <windows.h>
BOOL32 LineTo
(
	HDC32 hdc,
	INT32 x,
	INT32 y
);

DESCRIPTION

U16 Value
0 y
1 x
LineTo draws a line from the current position to the specified position (in logical units).
The current position is set with MoveTo (and some others ?)

back libwmf-0.2.13/doc/caolan/Makefile.am000066400000000000000000000033171441723000300171110ustar00rootroot00000000000000SUBDIRS = . pics wmfonedocdir = @WMF_DOCDIR@/caolan install-data-local: @echo "Installing Caolan's documentation"; \ cd $(srcdir) && \ $(mkinstalldirs) $(DESTDIR)$(wmfonedocdir); \ (for i in *.html *.gif; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(wmfonedocdir)/$$i; \ done) DOCUMENTATION = \ 2.html \ Arc.html \ BitBlt.html \ Bmpfrmat.html \ Chord.html \ CreateBrushIndirect.html \ CreatePenIndirect.html \ CreateRegion.html \ DeleteObject.html \ DibBitBlt.html \ DibCreatePatternBrush.html \ DibStretchBlt.html \ Ellipse.html \ ExcludeClipRect.html \ ExtFloodFill.html \ ExtTextOut.html \ FillRgn.html \ FloodFill.html \ FrameRgn.html \ IntersectClipRect.html \ InvertRgn.html \ LineTo.html \ MoveTo.html \ OffsetClipRgn.html \ OffsetViewportOrg.html \ OffsetWindowOrg.html \ PaintRgn.html \ PatBlt.html \ Pie.html \ PolyPolygon.html \ Polygon.html \ Polyline.html \ Rectangle.html \ RestoreDC.html \ RoundRect.html \ SaveDC.html \ ScaleViewportExt.html \ ScaleWindowExt.html \ SelectClipRgn.html \ SelectObject.html \ SetBkColor.html \ SetBkMode.html \ SetDIBitsToDevice.html \ SetMapMode.html \ SetMapperFlags.html \ SetPixel.html \ SetPolyFillMode.html \ SetROP2.html \ SetStretchBltMode.html \ SetTextAlign.html \ SetTextCharacterExtra.html \ SetTextColor.html \ SetTextJustification.html \ SetViewportExt.html \ SetViewportOrg.html \ SetWindowExt.html \ SetWindowOrg.html \ StretchDib.html \ TextOut.html \ dibs.html \ esc.html \ index.html \ mapmode.html \ ora-clp.html \ ora-wmf.html \ rop.html \ support.html \ support2.html \ template.html \ unknown.html \ msmeta01.gif \ msmeta02.gif \ msmeta03.gif \ msmeta04.gif EXTRA_DIST = $(DOCUMENTATION) libwmf-0.2.13/doc/caolan/Makefile.in000066400000000000000000000512031441723000300171170ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2018 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@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/caolan ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/wmfconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FREETYPE_CONFIG = @FREETYPE_CONFIG@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_DIR = @GDK_PIXBUF_DIR@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GD_DEFS = @GD_DEFS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBWMF_BUILDSTYLE = @LIBWMF_BUILDSTYLE@ LIBWMF_PACKAGE = @LIBWMF_PACKAGE@ LIBWMF_RELEASE = @LIBWMF_RELEASE@ LIBWMF_VERSION = @LIBWMF_VERSION@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_LITE_AGE = @LT_LITE_AGE@ LT_LITE_CURRENT = @LT_LITE_CURRENT@ LT_LITE_REVISION = @LT_LITE_REVISION@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_LIBM = @SYS_LIBM@ VERSION = @VERSION@ WMF_CFLAGS = @WMF_CFLAGS@ WMF_CONFIG_CFLAGS = @WMF_CONFIG_CFLAGS@ WMF_DEFS = @WMF_DEFS@ WMF_DOCDIR = @WMF_DOCDIR@ WMF_FONTDIR = @WMF_FONTDIR@ WMF_GS_FONTDIR = @WMF_GS_FONTDIR@ WMF_GS_FONTMAP = @WMF_GS_FONTMAP@ WMF_LIBFLAGS = @WMF_LIBFLAGS@ WMF_SYS_FONTMAP = @WMF_SYS_FONTMAP@ WMF_XTRA_FONTMAP = @WMF_XTRA_FONTMAP@ XMKMF = @XMKMF@ XML2_CONFIG = @XML2_CONFIG@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = . pics wmfonedocdir = @WMF_DOCDIR@/caolan DOCUMENTATION = \ 2.html \ Arc.html \ BitBlt.html \ Bmpfrmat.html \ Chord.html \ CreateBrushIndirect.html \ CreatePenIndirect.html \ CreateRegion.html \ DeleteObject.html \ DibBitBlt.html \ DibCreatePatternBrush.html \ DibStretchBlt.html \ Ellipse.html \ ExcludeClipRect.html \ ExtFloodFill.html \ ExtTextOut.html \ FillRgn.html \ FloodFill.html \ FrameRgn.html \ IntersectClipRect.html \ InvertRgn.html \ LineTo.html \ MoveTo.html \ OffsetClipRgn.html \ OffsetViewportOrg.html \ OffsetWindowOrg.html \ PaintRgn.html \ PatBlt.html \ Pie.html \ PolyPolygon.html \ Polygon.html \ Polyline.html \ Rectangle.html \ RestoreDC.html \ RoundRect.html \ SaveDC.html \ ScaleViewportExt.html \ ScaleWindowExt.html \ SelectClipRgn.html \ SelectObject.html \ SetBkColor.html \ SetBkMode.html \ SetDIBitsToDevice.html \ SetMapMode.html \ SetMapperFlags.html \ SetPixel.html \ SetPolyFillMode.html \ SetROP2.html \ SetStretchBltMode.html \ SetTextAlign.html \ SetTextCharacterExtra.html \ SetTextColor.html \ SetTextJustification.html \ SetViewportExt.html \ SetViewportOrg.html \ SetWindowExt.html \ SetWindowOrg.html \ StretchDib.html \ TextOut.html \ dibs.html \ esc.html \ index.html \ mapmode.html \ ora-clp.html \ ora-wmf.html \ rop.html \ support.html \ support2.html \ template.html \ unknown.html \ msmeta01.gif \ msmeta02.gif \ msmeta03.gif \ msmeta04.gif EXTRA_DIST = $(DOCUMENTATION) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/caolan/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/caolan/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile install-data-local: @echo "Installing Caolan's documentation"; \ cd $(srcdir) && \ $(mkinstalldirs) $(DESTDIR)$(wmfonedocdir); \ (for i in *.html *.gif; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(wmfonedocdir)/$$i; \ 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: libwmf-0.2.13/doc/caolan/MoveTo.html000066400000000000000000000011251441723000300171470ustar00rootroot00000000000000 META_MOVETO

NAME

META_MOVETO

NEAREST API CALL

#include <windows.h>
BOOL32 MoveToEx
(
	HDC32 hdc,
	INT32 x,
	INT32 y,
	LPPOINT32 pt
);

DESCRIPTION

U16 Value
0 y
1 x
MoveTo moves the current position to the specified position (in logical units).

back libwmf-0.2.13/doc/caolan/OffsetClipRgn.html000066400000000000000000000010741441723000300204460ustar00rootroot00000000000000 META_OFFSETCLIPRGN

NAME

META_OFFSETCLIPRGN

NEAREST API CALL

#include <windows.h>
INT32 OffsetClipRgn
(
	HDC32 hdc,
	INT32 x,
	INT32 y
);

DESCRIPTION

U16 array noValue
0 y
1 x
The clipping region is moved by the values x and y.

back

libwmf-0.2.13/doc/caolan/OffsetViewportOrg.html000066400000000000000000000012521441723000300213750ustar00rootroot00000000000000 META_OFFSETVIEWPORTORG

NAME

META_OFFSETVIEWPORTORG

NEAREST API CALL

#include <windows.h>
BOOL32 OffsetViewportOrgEx
(
	HDC32 hdc,
	INT32 x,
	INT32 y,
	LPPOINT32 pt
);

DESCRIPTION

U16 Value
0 y diff
1 x diff
OffsetViewportOrg adds the arguments to the physical window origin, see this file for explanation.

back libwmf-0.2.13/doc/caolan/OffsetWindowOrg.html000066400000000000000000000012411441723000300210230ustar00rootroot00000000000000 META_OFFSETWINDOWORG

NAME

META_OFFSETWINDOWORG

NEAREST API CALL

#include <windows.h>
BOOL32 OffsetWindowOrgEx
(
	HDC32 hdc,
	INT32 x,
	INT32 y,
	LPPOINT32 pt
);

DESCRIPTION

U16 Value
0 y diff
1 x diff
OffsetWindowOrg adds the arguments to the logical window origin, see this file for explanation.

back libwmf-0.2.13/doc/caolan/PaintRgn.html000066400000000000000000000011041441723000300174550ustar00rootroot00000000000000 META_PAINTREGION

NAME

META_PAINTREGION

NEAREST API CALL

#include <windows.h>
BOOL32 PaintRgn
(
	HDC32 hdc,
	HRGN32 hrgn
);

DESCRIPTION

U16 array noValue
0 region object no
PaintRgn fills the region identified by the first param with the currently selected brush.

back libwmf-0.2.13/doc/caolan/PatBlt.html000066400000000000000000000015761441723000300171360ustar00rootroot00000000000000 META_PATBLT

NAME

META_PATBLT

NEAREST API CALL

#include <windows.h>
BOOL32 PatBlt
(
HDC32 hdc,
INT32 left,
INT32 top,
INT32 width,
INT32 height,
DWORD rop
);

DESCRIPTION

U16 Value
0 ROP
1
2 height
3 width
4 top
5 left
PalBlt combines a pattern i.e the currently selected brush, with the destination, which is defined by top,left,width and height.
The ROP defines how they should be combined. see rop

back libwmf-0.2.13/doc/caolan/Pie.html000066400000000000000000000027301441723000300164560ustar00rootroot00000000000000 META_PIE

NAME

META_PIE

NEAREST API CALL

#include <windows.h>

BOOL32 Pie
(
    HDC32 hdc,
    INT32 left,
    INT32 top,
    INT32 right,
    INT32 bottom,
    INT32 xstart,
    INT32 ystart,
    INT32 xend,
    INT32 yend
);

DESCRIPTION

U16 array noValue
0 yend, y of endpoint
1 xend, x of endpoint
2 ystart, y of endpoint
3xstart, x of endpoint
4bottom, bottom of bounding box
5right, right of bounding box
6top, top of bounding box
7left, left of bounding box
left, right, top and bottom are the extents of the ellipse of which the pie is a part
xstart,ystart define a point from which you draw an imaginary line between it and the center of the ellipse, where that line intersects the ellipse is the starting part of the arc
xend,yend similiarly define the end of the arc.

This is quite different from how X, and other drawing lib's define an Arc, and its somewhat awkward to convert from it to X's mechanism, see the X bindings for libwmf for into on that.

back libwmf-0.2.13/doc/caolan/PolyPolygon.html000066400000000000000000000017251441723000300202370ustar00rootroot00000000000000 META_POLYPOLYGON

NAME

META_POLYPOLYGON

NEAREST API CALL

#include <windows.h>
(
	HDC32 hdc,
	const POINT32 *pt,
	const INT32 *counts,
	UINT32 polygons
);

DESCRIPTION

U16 array noValue
0 no of polygons
1 to 1 + para[0] number of points in each polygon
next paramater until the end a y point, followed by an x point
PolyPolygon, is a list of polygons, for filled polygons SetPolyFillMode affects how the polygon is filled.
the number of polygons is recorded, followed by the number of points in each polygon, and then a long sequence of all the points of all the polygons.

back libwmf-0.2.13/doc/caolan/Polygon.html000066400000000000000000000014001441723000300173610ustar00rootroot00000000000000 META_POLYGON

NAME

META_POLYGON

NEAREST API CALL

#include <windows.h>
BOOL32 Polygon
(
	HDC32 hdc,
	const POINT32 *pt,
	INT32 count
);

DESCRIPTION

U16 array noValue
0 no of points
1 each odd until the end x of the point
2 each even until the end y of the point
Polygon, is a list of points, for filled polygons SetPolyFillMode affects how the polygon is filled.

back libwmf-0.2.13/doc/caolan/Polyline.html000066400000000000000000000013301441723000300175270ustar00rootroot00000000000000 META_POLYLINE

NAME

META_POLYLINE

NEAREST API CALL

#include <windows.h>
BOOL32 Polyline
(
	HDC32 hdc,
	const POINT32 *pt,
	INT32 count
);

DESCRIPTION

U16 array noValue
0 no of points
1 each odd until the end x of the point
2 each even until the end y of the point
Polyline, is a list of points, unlike polygon polyline is always unfilled, and can be open.

back libwmf-0.2.13/doc/caolan/Rectangle.html000066400000000000000000000012551441723000300176460ustar00rootroot00000000000000 META_RECTANGLE

NAME

META_RECTANGLE

NEAREST API CALL

#include <windows.h>
BOOL32 Rectangle
(
	HDC32 hdc,
	INT32 left,
	INT32 top,
	INT32 right,
	INT32 bottom
);

DESCRIPTION

U16 array noValue
0 bottom
1 right
2 top
3left
top, left, right and bottom define the points of the rectangle.

back libwmf-0.2.13/doc/caolan/RestoreDC.html000066400000000000000000000013551441723000300175750ustar00rootroot00000000000000 META_RESTOREDC

NAME

META_RESTOREDC

NEAREST API CALL

#include <windows.h>
BOOL32 RestoreDC
(
	HDC32 hdc,
	INT32 level
);

DESCRIPTION

U16 array noValue
0 level
RestoreDC restores a DC off the stack which it has been pushed by SaveDC. The value is the number of entries to be popped off the stack to find the correct one to restore. The DC'c between the top of the stack and the one to restore are discarded.

back libwmf-0.2.13/doc/caolan/RoundRect.html000066400000000000000000000016331441723000300176470ustar00rootroot00000000000000 META_ROUNDRECT

NAME

META_ROUNDRECT

NEAREST API CALL

#include <windows.h>
BOOL32 RoundRect
(
	HDC32 hdc,
	INT32 left,
	INT32 top,
	INT32 right,
	INT32 bottom,
	INT32 ell_width,
	INT32 ell_height
);

DESCRIPTION

U16 array noValue
0 ell_height
1 ell_width
2 bottom
3 right
4 top
5left
top, left, right and bottom define the points of the rectangle.
ell_width and ell_height define the width and height of each pie/arc on the corners of the round rectangle.

back libwmf-0.2.13/doc/caolan/SaveDC.html000066400000000000000000000010571441723000300170470ustar00rootroot00000000000000 META_SAVEDC

NAME

META_SAVEDC

NEAREST API CALL

#include <windows.h>
INT32 SaveDC(HDC32 hdc);

DESCRIPTION

SaveDC instructs that the current Device Context, which consists of such things as the currently selected brush and pen and so on, be pushed onto a stack, the DC can be restored with RestoreDC

back libwmf-0.2.13/doc/caolan/ScaleViewportExt.html000066400000000000000000000015531441723000300212130ustar00rootroot00000000000000 META_SCALEVIEWPORTEXT

NAME

META_SCALEVIEWPORTEXT

NEAREST API CALL

#include <windows.h>
BOOL32 ScaleViewportExtEx
(
	HDC32 hdc,
	INT32 xNum,
	INT32 xDenom,
	INT32 yNum,
	INT32 yDenom,
	LPSIZE32 size
);

DESCRIPTION

U16 Value
0 yDenom
1 yNum
2 xDenom
3 xNum
ScaleViewportExt resizes the width and height of the physical window by
width = (width * xNum) / xDenom;
height = (height * yNum) / yDenom;
see this file for explanation.

back libwmf-0.2.13/doc/caolan/ScaleWindowExt.html000066400000000000000000000015421441723000300206410ustar00rootroot00000000000000 META_SCALEWINDOWEXT

NAME

META_SCALEWINDOWEXT

NEAREST API CALL

#include <windows.h>
BOOL32 ScaleWindowExtEx
(
	HDC32 hdc,
	INT32 xNum,
	INT32 xDenom,
	INT32 yNum,
	INT32 yDenom,
	LPSIZE32 size
);

DESCRIPTION

U16 Value
0 yDenom
1 yNum
2 xDenom
3 xNum
ScaleWindowExt resizes the width and height of the logical window by
width = (width * xNum) / xDenom;
height = (height * yNum) / yDenom;
see this file for explanation.

back libwmf-0.2.13/doc/caolan/SelectClipRgn.html000066400000000000000000000011371441723000300204370ustar00rootroot00000000000000 META_SELECTCLIPREGION

NAME

META_SELECTCLIPREGION

NEAREST API CALL

#include <windows.h>
INT32 SelectClipRgn
(
	HDC32 hdc,
	HRGN32 hrgn
);

DESCRIPTION

U16 Value
0 Object No
SelectClipRgn asks for an given object no which should be a region to be selected as the current clipping region.

back

libwmf-0.2.13/doc/caolan/SelectObject.html000066400000000000000000000017021441723000300203050ustar00rootroot00000000000000 META_SELECTOBJECT

NAME

META_SELECTOBJECT

NEAREST API CALL

#include <windows.h>
HGDIOBJ32 SelectObject
(
	HDC32 hdc,
	HGDIOBJ32 handle
);

DESCRIPTION

U16 Value
0 Object No
SelectObject asks for an given object no to be selected, an internal list of objects is kept by libwmf.
The object no is an index into this list.
Object's include OBJ_PEN,OBJ_BRUSH,OBJ_PAL,OBJ_FONT & OBJ_REGION
SelectObject can select any of these to be the current object on their class, e.g. when you select a brush, it becomes the current brush, etc etc. libwmf handles all of this stuff for you (hopefully), see DeleteObject

back libwmf-0.2.13/doc/caolan/SetBkColor.html000066400000000000000000000021301441723000300177420ustar00rootroot00000000000000 META_SETBKCOLOR

NAME

META_SETBKCOLOR

NEAREST API CALL

#include <windows.h>

COLORREF SetBkColor
(
        HDC32 hdc,
        COLORREF color
);

DESCRIPTION

U16 Value
0 COLORREF
1
When the BkMode is set to OPAQUE, the color that SETBKCOLOR sets is the color that will be used as the background color for
  • the box that is the background to text.
  • the color that shows through the transparent areas of hatched brushes and styled (dashed) lines.
  • and for the background color when converting bitmaps to monochrome and vice versa, though i havent figured out if this last point has any revelence to a metafile converter.

back libwmf-0.2.13/doc/caolan/SetBkMode.html000066400000000000000000000014031441723000300175520ustar00rootroot00000000000000 META_SETBKMODE

NAME

META_SETBKMODE

NEAREST API CALL

#include <windows.h>
int SetBkMode(
   HDC hdc,
   INT iBkMode
 );

DESCRIPTION

U16 Value
0 BkMode
Sets the background mode to either OPAQUE of TRANSPARENT, if its OPAQUE then the effects described in META_SETBKCOLOR take effect.
If its TRANSPARENT, the ordinary behaviour takes place, where transparent parts of hatched brushes, pens and text remain transparent.

back libwmf-0.2.13/doc/caolan/SetDIBitsToDevice.html000066400000000000000000000036531441723000300211630ustar00rootroot00000000000000 META_SETDIBTODEV

NAME

META_SETDIBTODEV

NEAREST API CALL

#include <windows.h>
INT32 SetDIBitsToDevice
(
	HDC32 hdc,
	INT32 xDest,
	INT32 yDest,
	DWORD cx,
	DWORD cy,
	INT32 xSrc,
	INT32 ySrc,
	UINT32 startscan,
	UINT32 lines,
	LPCVOID bits,
	const BITMAPINFO *info,
	UINT32 coloruse
);

DESCRIPTION

U16Value
0coloruse
1lines
2starting line
3ySrc
4xSrc
5cy
6cx
7yDst
8xDst
9 to endthe dib itself
coloruse is one of either DIB_RGB_COLORS or DIB_PAL_COLORS
lines is the number of lines in the dib to copy, in fact only this number of lines *exist* in the dib attached to the record, the header of the dib may tell you that there's more lines in the dib that there actually is, so you must use this value to determine the truth (nasty eh!)
starting line is the line of the original dib that was to be the starting line to copy from, in the metafile record you can ignore this, as the attached dib is cropped as far as this line, so this work is done for you
xSrc, and ySrc are the location in the dib to copy from, im uncertain of these for the moment, as all examples have them to set to 0
cy and cx are the size of the destination rectangle, with xDest and yDest being the coordinate of the topleft of the dest rect.
the rest of the bytes are the dib itself, but remember the height of the dib, as shown in its header may be wrong, use the lines parameter to determine the truth

back

libwmf-0.2.13/doc/caolan/SetMapMode.html000066400000000000000000000026061441723000300177410ustar00rootroot00000000000000 META_SETMAPMODE

NAME

META_SETMAPMODE

NEAREST API CALL

#include <windows.h>
INT32 SetMapMode
(
    HDC32 hdc,
    INT32 mode
);

DESCRIPTION

U16 Value
0 MapMode
SetMapMode sets the mapping mode to one of MM_TEXT, MM_LOMETRIC,MM_HIMETRIC, MM_LOENGLISH,MM_HIENGLISH,MM_TWIPS,MM_ISOTROPIC,MM_ANISOTROPIC
Set this doc for explanation

Id like to point out here, that some wmf files do not set a mapping mode at all, and while the referenced doc here puts MM_TEXT as the default mapping mode, in practice when no map mode is set and the wmf isn't a placeable wmf, i.e. there is no information at all about the desired size of the wmf, then this is a problem because

  • wmfs exist which expect to be played in MM_TEXT mode where each unit is a pixel and
  • wmfs exist which expect to be played in MM_TWIPS mode where each unit is 1/1440 or an inch.
and neither set a MAPMODE. (grrr) so arbitrarily i put non-placeable wmf files that have no MAPMODE set into MM_TEXT mode if they are < 400 x 400 and into the other mode if they are not.

back libwmf-0.2.13/doc/caolan/SetMapperFlags.html000066400000000000000000000030701441723000300206140ustar00rootroot00000000000000 META_SETMAPPERFLAGS

NAME

META_SETMAPPERFLAGS

NEAREST API CALL

#include <windows.h>
DWORD SetMapperFlags
(
	HDC32 hDC,
	DWORD dwFlag
);

DESCRIPTION

extract from http://www.melander.dk/lib/windows/gdi/fontmap.htm
 Windows Font Mapping

 Ron Gery

 Microsoft Developer Network Technology Group

 Created: June 8, 1992

 Filters
An application can, to some extent, filter which physical fonts are examined by the font mapper. Aspect-ratio filtering, which is available in both Windows versions 3.0 and 3.1, allows an application to specify that only fonts designed for the device's aspect ratio should be considered by the font mapper. An application enables and disables this filter by using the SetMapperFlags function. Because nonscaling raster fonts are designed with a certain aspect ratio in mind, it is sometimes desirable to ensure that only fonts actually designed for the device are used. When this filter is enabled, the font mapper does not consider any physical fonts whose design aspect ratio does not match that of the device. Aspect-ratio filtering does not affect TrueType fonts because they can scale to match any aspect ratio. This filter affects all font selections to the DC until the filter is turned off. Aspect-ratio filtering is a holdover from earlier times and is not a recommended approach in today's font world.

back

libwmf-0.2.13/doc/caolan/SetPixel.html000066400000000000000000000012121441723000300174700ustar00rootroot00000000000000 META_SETPIXEL

NAME

META_SETPIXEL

NEAREST API CALL

#include <windows.h>
COLORREF SetPixel
(
	HDC32 hdc,
	INT32 x,
	INT32 y,
	COLORREF color
);

DESCRIPTION

U16 Value
0 COLORREF
1
2 y
3 x
SetPixel sets the pixel at x,y to the specified color.

back libwmf-0.2.13/doc/caolan/SetPolyFillMode.html000066400000000000000000000014041441723000300207510ustar00rootroot00000000000000 META_SETPOLYFILLMODE

NAME

META_SETPOLYFILLMODE

NEAREST API CALL

#include <windows.h>
int SetPolyFillMode(
	HDC hdc,
	INT fillmode
	);

DESCRIPTION

U16 Value
0 FillMode
SetPolyFillMode sets polygon filling to either ALTERNATE or WINDING.
ALTERNATE is equivalent to X's EvenOddRule, and
WINDING is equivalent to WindingRule
The default is ALTERNATE, and fills the polygon in the intuitive manner, im not too sure what the hell WINDING means.

back libwmf-0.2.13/doc/caolan/SetROP2.html000066400000000000000000000042021441723000300171330ustar00rootroot00000000000000 META_SETROP2

NAME

META_SETROP2

NEAREST API CALL

#include <windows.h>
INT32 SetROP2
(
HDC32 hdc,
INT32 ROP
);

DESCRIPTION

U16 Value
0 ROP
1
SetROP2 sets the binary raster operation which affects how the current brush and pen combine with the existing window contents when they draw to it, this is equivalent to the GC functions in X, heres an equivalence table and info where src is the brush or pen, and dest is where the pen or brush is being applied, R2_COPYPEN is the intuitive default.
X Function NameMS ROP2 NameOperation
GXclear R2_BLACK 0
GXnor R2_NOTMERGEPEN (NOT src) AND (NOT dst)
GXandInverted R2_MASKNOTPEN (NOT src) AND dst
GXcopyInverted R2_NOTCOPYPEN NOT src
GXandReverse R2_MASKPENNOT src AND NOT dst
GXinvert R2_NOT NOT dst
GXxor R2_XORPEN src XOR dst
GXnand R2_NOTMASKPEN (NOT src) OR (NOT dst)
GXand R2_MASKPEN src AND dst
GXequiv R2_NOTXORPEN (NOT src) XOR dst
GXnoop R2_NOP dst
GXorInverted R2_MERGENOTPEN (NOT src) OR dst
GXcopy R2_COPYPEN src
GXorReverse R2_MERGEPENNOT src OR (NOT dst)
GXor R2_MERGEPEN src OR dst
GXset R2_WHITE 1

back libwmf-0.2.13/doc/caolan/SetStretchBltMode.html000066400000000000000000000013751441723000300213040ustar00rootroot00000000000000 META_SETSTRETCHBLTMODE

NAME

META_SETSTRETCHBLTMODE

NEAREST API CALL

#include <windows.h>
int SetStretchBltMode(
	HDC hdc,
	INT StretchMode
	);

DESCRIPTION

U16 Value
0 StretchMode
SetStretchBltMode sets how StretchBlt will handle adding and removing lines from an original dib to fit it to a different requested size. The possibilities are BLACKONWHITE,WHITEONBLACK,COLORONCOLOR,HALFTONE, MAXSTRETCHBLTMODE.

libwmf currently ignores this hint.

back libwmf-0.2.13/doc/caolan/SetTextAlign.html000066400000000000000000000015471441723000300203210ustar00rootroot00000000000000 META_SETTEXTALIGN

NAME

META_SETTEXTALIGN

NEAREST API CALL

#include <windows.h>
UINT32 SetTextAlign
(
	HDC32 hdc,
	UINT32 textAlign
);

DESCRIPTION

U16 Value
0 magic no
magic no is combo of TA_NOUPDATECP,TA_UPDATECP,TA_LEFT,TA_RIGHT,TA_CENTER,TA_TOP,TA_BOTTOM,TA_BASELINE which basically specify whether the text is left or right aligned, or centered in the horizontal direction. centered on the baseline, at the top or the bottom of the baseline. And whether the current position is updated or not.See the source for more details on all this malarky.

back

libwmf-0.2.13/doc/caolan/SetTextCharacterExtra.html000066400000000000000000000011441441723000300221600ustar00rootroot00000000000000 META_SETTEXTCHAREXTRA

NAME

META_SETTEXTCHAREXTRA

NEAREST API CALL

#include <windows.h>

INT32 SetTextCharacterExtra
(
	HDC32 hdc,
	INT32 extra
);

DESCRIPTION

U16 Value
0 extra
SetTextCharacterExtra sets the space between characters of TextOut and ExtTextOut to be extra in logical units.

back libwmf-0.2.13/doc/caolan/SetTextColor.html000066400000000000000000000011351441723000300203360ustar00rootroot00000000000000 META_SETTEXTCOLOR

NAME

META_SETTEXTCOLOR

NEAREST API CALL

#include <windows.h>

COLORREF SetTextColor
(
	HDC32 hdc,
	COLORREF color
);

DESCRIPTION

U16 Value
0 COLORREF
1
SetTextColor sets the color that will be used for text in TextOut and ExtTextOut.

back libwmf-0.2.13/doc/caolan/SetTextJustification.html000066400000000000000000000006371441723000300221010ustar00rootroot00000000000000 META_SETTEXTJUSTIFICATION

NAME

META_SETTEXTJUSTIFICATION

NEAREST API CALL

#include <windows.h>
BOOL32 SetTextJustification
(
	HDC32 hdc,
	INT32 extra,
	INT32 breaks
);

DESCRIPTION

back libwmf-0.2.13/doc/caolan/SetViewportExt.html000066400000000000000000000012401441723000300207100ustar00rootroot00000000000000 META_SETVIEWPORTEXT

NAME

META_SETVIEWPORTEXT

NEAREST API CALL

#include <windows.h>
BOOL32 SetViewportExtEx
(
	HDC32 hdc,
	INT32 x,
	INT32 y,
	LPSIZE32 size
);

DESCRIPTION

U16 Value
0 height
1 width
SetViewportExt sets the logical window dimensions to these values, see this file for explanation.

back libwmf-0.2.13/doc/caolan/SetViewportOrg.html000066400000000000000000000012241441723000300207010ustar00rootroot00000000000000 META_SETVIEWPORTORG

NAME

META_SETVIEWPORTORG

NEAREST API CALL

#include <windows.h>
BOOL32 SetViewportOrgEx
(
	HDC32 hdc,
	INT32 x,
	INT32 y,
	LPPOINT32 pt
);

DESCRIPTION

U16 Value
0 y
1 x
SetViewportOrg sets the phyisical window origin to these values, see this file for explanation.

back libwmf-0.2.13/doc/caolan/SetWindowExt.html000066400000000000000000000012261441723000300203440ustar00rootroot00000000000000 META_SETWINDOWEXT

NAME

META_SETWINDOWEXT

NEAREST API CALL

#include <windows.h>
BOOL32 SetWindowExt
(
	HDC32 hdc,
	INT32 x,
	INT32 y,
	LPSIZE32 size
);

DESCRIPTION

U16 Value
0 height
1 width
SetWindowExt sets the logical window dimensions to these values, see this file for explanation.

back libwmf-0.2.13/doc/caolan/SetWindowOrg.html000066400000000000000000000012121441723000300203260ustar00rootroot00000000000000 META_SETWINDOWORG

NAME

META_SETWINDOWORG

NEAREST API CALL

#include <windows.h>
BOOL32 SetWindowOrgEx
(
	HDC32 hdc,
	INT32 x,
	INT32 y,
	LPPOINT32 pt
);

DESCRIPTION

U16 Value
0 y
1 x
SetWindowOrg sets the logical window origin to these values, see this file for explanation.

back libwmf-0.2.13/doc/caolan/StretchDib.html000066400000000000000000000020601441723000300177700ustar00rootroot00000000000000 META_STRETCHDIB

NAME

META_STRETCHDIB

NEAREST API CALL

???

DESCRIPTION

U16Value
0???
1???
2???
3src height
4src width
5ySrc
6xSrc
7dest height
8dest width
9yDest
10xDest
11 until the endthe full dib
META_STRETCHDIB stretches the part of the dib of src height and src width and starting from location ySrc and xSrc to the destination x and y, with the dest width and height. A rop in the first three arguments ? See DibStretchBlt.

back

libwmf-0.2.13/doc/caolan/TextOut.html000066400000000000000000000011721441723000300173540ustar00rootroot00000000000000 META_TEXTOUT

NAME

META_TEXTOUT

NEAREST API CALL

#include <windows.h>

DESCRIPTION

U16 Value
0 count
1 for a count of count/2 the string
after that y
after that x
See ExtTextOut for more details.

back

libwmf-0.2.13/doc/caolan/dibs.html000066400000000000000000000674761441723000300167040ustar00rootroot00000000000000 Device-Independent Bitmaps and Palettes

Device-Independent Bitmaps and Palettes

Introduction

The purpose of this article is to show how to create a Device-Independent Bitmap of a given format, how to get a pointer to the memory bits that make up the image and how to display it on screen regardless of the current display mode.

Pick a Flavor

When you create a DIB, you have to specify the pixel format you want it in. In general there are two "flavors":

  • Palette images
  • RGB images

Palette images usually contain 256 colors. You supply a palette of 256 colors, and each pixel in the image takes up one byte which is an index into the palette table.

With RGB images you specify each of the 3 RGB components for each pixel. RGB images are usually 16-bits or 24-bits per pixel.

Setting up the Palette

If you want to display a 256 color image then you'll need to set up a palette for it. We need this palette information twice: once to create the bitmap, and again to create a palette object we'll use when rendering to the window. To keep things simple, I'm going to start out by declaring a 256x3 array of bytes which we'll use later on. The following code also initializes the entire palette to a smooth gradiant from black to bright red:

// Set up a palette
BYTE palette[256][3];
for (i=0; i<255; i++)
{
 palette[i][0] = i; // red
 palette[i][1] = 0; // green
 palette[i][2] = 0; // blue
}

Creating the Bitmap

There are several ways to create a bitmap under Windows95, the most useful is probably with the CreateDIBSection() function. CreateDIBSection() allows you to specify the desired pixel format, and it returns both a handle to the bitmap object and a pointer to the image memory.

Before calling CreateDIBSection() we must set up a BITMAPINFO structure for the desired pixel format. The BITMAPINFO structure contains two fields: bmiHeader (of type BITMAPINFOHEADER) and bmiColors (a one element array of type RGBQUAD). The pixel format itself is stored in the bmiHeader header field, while the bmiColors field is used to store the first palette entry. Since this first example is for a 256-color bitmap, we need to allocate a structure containing enough memory for the BITMAPINFO structure itself as well as an extra 255 palette entries immediately after it (which we can then access by indexing off the bmiColors field). The following code will allocate the amount of memory we need:

// Allocate enough memory for the BITMAPINFOHEADER and 256 RGBQUAD palette entries
LPBITMAPINFO lpbi;
lpbi = (LPBITMAPINFO) new BYTE[sizeof(BITMAPINFOHEADER) + (256 * sizeof(RGBQUAD))];

Our next step is to initialize the fields in the BITMAPINFOHEADER member bmiHeader. BITMAPINFOHEADER contains the following fields:

  • biSize: the size of this structure, set it to sizeof(BITMAPINFOHEADER).
  • biWidth: the bitmap's width in pixels.
  • biHeight: the bitmap's height in pixels.
  • biPlanes: the number of planes in the image. This should be set to 1 for both palette and RGB bitmaps.
  • biBitCount: the number of bits per pixel. Set it to 8 for 256 color bitmaps, and 24 for 24-bit RGB bitmaps.
  • biCompression: the type of compression used. We don't want any compression, so set it to BI_RGB for both bitmap flavors.
  • biSizeImage: the size of the image, in bytes. This is used for compressed bitmaps where the image size is not a direct function of the width and height of the image itself. Our bitmaps aren't compressed, so we can set it to 0.
  • biXPelsPerMeter and biYPelsPerMeter: specifies the resolution of the bitmap. We'll be displaying these on the screen, so set both fields to 0.
  • biClrUsed and biClrImportant: these values are used to notify Windows of which colors in the image are most important. I won't be covering this topic in this article, so for now just set both to 0.

So the code to initialize the lpbi structure should look something like this:

lpbi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
lpbi->bmiHeader.biWidth = width;
lpbi->bmiHeader.biHeight = height;
lpbi->bmiHeader.biPlanes = 1;
lpbi->bmiHeader.biBitCount = 8;
lpbi->bmiHeader.biCompression = BI_RGB;
lpbi->bmiHeader.biSizeImage = 0;
lpbi->bmiHeader.biXPelsPerMeter = 0;
lpbi->bmiHeader.biYPelsPerMeter = 0;
lpbi->bmiHeader.biClrUsed = 0;
lpbi->bmiHeader.biClrImportant = 0;

The next step is to fill in the bmiColors array. We do this by simply copying the values out of the palette array we set up in the first step:

// Set the bitmap palette
for (i=0; i<255; i++)
{
 lpbi->bmiColors[i].rgbRed      = palette[i][0];
 lpbi->bmiColors[i].rgbGreen    = palette[i][1];
 lpbi->bmiColors[i].rgbBlue     = palette[i][2];
 lpbi->bmiColors[i].rgbReserved = 0;
}

We are now ready to create the bitmap. The CreateDIBSection() function is declared as follows:

HBITMAP CreateDIBSection(HDC hdc,CONST BITMAPINFO *pbmi,UINT iUsage,VOID *ppvBits,HANDLE hSection,DWORD dwOffset)

As you can see, the first parameter is a device context. What we need here is the device context for the screen, we can get it by calling GetWindowDC() and passing in NULL as the window handle. pbmi is a pointer to a BITMAPINFO structure (ie our lpbi variable). iUsage is an identifier that specifies the type of information we've filled the palette with, so set it to RGB (do so for 24-bit images as well). ppvBits should point to a variable of type LPBYTE, it will be filled with a pointer to the bitmap's pixel memory. hSection and dwOffset are used with file mapping objects, set them both to 0. The following code gets the screen dc, calls CreateDIBSection() to create the bitmap then frees both the dc and the lpbi structure we allocated:

HDC hScreenDC = GetWindowDC(NULL);
hBitmap = CreateDIBSection(hScreenDC, lpbi, DIB_RGB_COLORS, (LPVOID *)&m_pBits, NULL, 0 );
ReleaseDC(NULL,hScreenDC);
delete [](BYTE *)lpbi;

BTW, if you're using MFC then you'll probably want to declare a variable of type CBitmap and attach the bitmap handle to it with a call to the Attach() member function.

Creating a Palette Object

In order to display the bitmap on screen we also need a palette object. The palette object is created with a call to CreatePalette(), and we pass in a pointer to a LOGPALETTE structure. LOGPALETTE contains the following fields:

  • palVersion: indicates the Windows version number. You should set this to 0x300.
  • palNumEntries: the number of indices in the palette. This should be set to 256.
  • palPalEntry: an array of PALETTEENTRY structures containing the palette information.

The palPalEntry field contains a single element of type PALETTEENTRY, so we need to do the same trick we used when creating the bitmap to tack an extra 255 entries to the end of the LOGPALETTE structure. The following code allocates the memory, fills it with the information from our palette array and creates the palette object itself:

// Create the palette object
LPLOGPALETTE lpLogPal;
lpLogPal = (LPLOGPALETTE)new BYTE[sizeof(LOGPALETTE) + 255*sizeof(PALETTEENTRY)];
lpLogPal->palVersion = 0x0300;
lpLogPal->palNumEntries = 256;
for (i=0; i<255; i++)
{
 lpLogPal->palPalEntry[i].peRed   = palette[i][0];
 lpLogPal->palPalEntry[i].peGreen = palette[i][1];
 lpLogPal->palPalEntry[i].peBlue  = palette[i][2];
 lpLogPal->palPalEntry[i].peFlags = 0;
}
hPalette = ::CreatePalette(lpLogPal);
delete [](BYTE *)lpLogPal;

If you're using MFC then you'll probably want to attach the palette handle to a CPalette variable. Or better yet, call the CPalette's CreatePalette() member function and pass the lpLogPal variable into it.

Displaying the Bitmap

The information presented in this section is enough to display the bitmap if the user's display is set to an RGB mode (eg 16 or 24 bits per pixel). However, it's not enough for displaying in 256-color modes. To do that you need the code in this section, plus handlers for an extra 2 windows messages (which I'll show in the next section).

To display the bitmap you obviously need a device context for the window you're rendering to. This is usually obtained by calling BeginPaint() in response to a WM_PAINT message. The first task is to create a compatible device context for the bitmap. This is done by calling CreateCompatibleDC() and passing in the destination dc. Next, we need to select the bitmap into it by calling SelectObject(). Don't forget to save a copy of the bitmap handle it returns, you'll need to select it back into the dc when you're done. Finally, we need to select the palette into the destination dc, this is done with a call to the SelectPalette() function.

Before going any further, let me explain a bit about the SelectPalette() function and how it works. This function accepts a device context (the destination dc in our case), a handle to the palette object itself and a BOOLEAN variable called bForceBackground. bForceBackground indicates to Windows what it should do with the palette object we've just given it. If it's set to FALSE, then that means we want windows to try and perfectly match as many of the palette indices as possible. Windows normally reserves 20 palette entries for itself and other applications may add their own entries to the palette. If your application currently has the input focus then you get palette priority over other programs, but Windows still has priority over you to set the 20 reserved entries. When you set a palette, Windows searches for any matches between your palette entries and the entries in the current physical palette (i.e. the actual palette that the screen is set to). If no match is found, then what Windows does depends on the bForceBackground parameter. If bForceBackground is set to FALSE, then Windows will go ahead and pick the closest matching index from the current physical palette. If it's set to TRUE then Windows will find an empty entry in the physical palette and add the new index to it. None of this really matters in 16 or 24 bit modes, since Windows doesn't use a physical palette in those modes. It makes a big difference though in 256-color modes, since you want Windows to display as many of your palette colors as possible. Note that if your window does not have the focus and another window has set the palette, then Windows will map your palette indices to that application's palette regardless of what bForceBackground value you passed in.

So obviously we want to always pass in TRUE when we first call SelectPalette(), if our window doesn't have the focus then it'll just be ignored anyway. The function returns the handle to the previous palette, and when we're done rendering we need to set that palette back into the device context. In this second case though, we don't want windows to go and change all the palette entries back to the old palette, we want it to simply remap them to the palette we've just set. So when we call SelectPalette() the second time to restore the old palette, we want to pass in FALSE.

With the palette set we can now blt the bitmap to the destination dc. Here's some code that uses BitBlt to display the bitmap:

// Assume hPaintDC is a variable of type HDC, and the dc we're rendering to
HDC hBitmapDC = CreateCompatibleDC(hPaintDC);
HBITMAP hOldBitmap = (HBITMAP)SelectObject(hBitmapDC, hBitmap);
HPALETTE hOldPalette = SelectPalette(hPaintDC, hPalette, FALSE);
BitBlt(hPaintDC, 0, 0, BITMAP_WIDTH, BITMAP_HEIGHT, hBitmapDC, 0, 0, SRCCOPY);
SelectPalette(hPaintDC, hOldPalette, TRUE);
SelectObject(hBitmapDC, hOldBitmap);
DeleteDC(hBitmapDC);

Dueling Palettes

Windows is a multi-tasking environment, and that means that at any given moment there are typically numerous applications all fighting for control of the palette. Windows has a very simple method of determining who gets what: if your window has the input focus, then you get palette priority, and all other windows have their palettes remapped to yours. Windows loops through each index of all the other palettes, finds the entry in your palette that's closest and makes a note of it. Whenever one of those applications renders something to the screen Windows looks up each pixel's value in an internal table and draws the remapped color instead. Since the other application is using your palette, it's not going to look anywhere near as good as if it were using it's own, but at least it's better than the alternative (i.e. a jumbled mess of pixels).

Unfortunately it works both ways, since you too are subject to having another application rip the palette out from under your feet. In order to help you deal with this in an effective manner, Windows provides two messages to notify you of palette changes: WM_PALETTECHANGED and WM_QUERYNEWPALETTE.

WM_QUERYNEWPALETTE is sent whenever your application gets the input focus, thus giving you a chance to prepare the palette for rendering. When you select a palette into a device context, Windows assigns each palette index a space in the physical palette, but it does not actually go ahead and make changes to the physical palette itself. To do that you need to call the RealizePalette() function. The correct way to handle the WM_QUERYNEWPALETTE message is to get the device context for the window, select the palette into it with bForceBackground set to FALSE (remember to save the old palette handle), realize the palette, select the old palette back in with bForceBackground set to TRUE and release the device context. Here's the WM_QUERYNEWPALETTE handler code to do all this:

HDC hDC = GetWindowDC(hWnd);
HPALETTE hOldPalette = SelectPalette(hDC, hPalette, FALSE);
UINT nChanged = RealizePalette(hDC);
SelectPalette(hDC, hOldPalette, TRUE);
ReleaseDC(hWnd, hDC);

(Note that we could avoid handling this message by simply realizing the palette immediately after the SelectPalette() call in the WM_PAINT handler. Realizing a palette however is slow, so we may as well only do it when we need to).

WM_PALETTECHANGED is sent whenever any application, including yours, causes changes to the physical palette. If it's your own application doing the changing then you should ignore this message, but if it's another application then you need to realize your palette. Realizing the palette can be done with the same code as used for the WM_QUERYNEWPALETTE handler. Since this message is only handled when another window has received the input focus, we should be able to to still pass in a bForceBackground parameter of FALSE, since it'll be ignored anyway. However, one document I read stated that it's possible for the WM_PALETTECHANGED message to be sent to your window before the other window has actually received the input focus. If this happens and you're passing in FALSE, then the other windows' palette will be messed up, so it's best to stay on the safe side and pass in the correct value. When this message is received, check the wParam value to see if it matches your windows' HWND. If it's different, then realize the palette:

HDC hDC = GetWindowDC(hWnd);
HPALETTE hOldPalette = SelectPalette(hDC, hPalette, TRUE);
UINT nChanged = RealizePalette(hDC);
SelectPalette(hDC, hOldPalette, TRUE);
ReleaseDC(hWnd, hDC);

To avoid code duplication, you should probably have each message call a function which accepts the appropriate bForceBackground value and passes it into the first SelectPalette() call.

One last thing to keep in mind: if the RealizePalette() function in either handler returns non-zero, then you should invalidate and repaint your entire client area. This is needed to fix any image degradation caused when by another window changing the palette.

True-Color Tyranny

24-bit DIBs are somewhat easier to create than their 8-bit counterparts, since you no longer have to worry about a palette. Displaying them is a bit different though (that is, if want them to look semi-decent on a 256-color display).

To create a 24-bit bitmap you simply set the biBitCount field of the BITMAPINFOHEADER structure to 24. Since this bitmap doesn't require a palette, we can use an actual BITMAPINFOHEADER structure instead of a BITMAPINFO structure. The important thing to remember here is to save a copy of the BITMAPINFOHEADER variable. You need it to display the bitmap, for reasons which will become apparent in a minute. Here's the code to create a 24-bit DIB:

BITMAPINFOHEADER m_BitmapInfo; // <- this should be saved, eg make it a member variable

m_BitmapInfo.biSize = sizeof(BITMAPINFOHEADER);
m_BitmapInfo.biWidth = BITMAP_WIDTH;
m_BitmapInfo.biHeight = BITMAP_HEIGHT;
m_BitmapInfo.biPlanes = 1;
m_BitmapInfo.biBitCount = 24;
m_BitmapInfo.biCompression = BI_RGB;
m_BitmapInfo.biSizeImage = 0;
m_BitmapInfo.biXPelsPerMeter = 0;
m_BitmapInfo.biYPelsPerMeter = 0;
m_BitmapInfo.biClrUsed = 0;
m_BitmapInfo.biClrImportant = 0;
HDC hScreenDC = GetWindowDC(NULL);
hBitmap = CreateDIBSection(hScreenDC, (LPBITMAPINFO)&m_BitmapInfo, DIB_RGB_COLORS, (LPVOID *)&m_pBits, NULL, 0);
ReleaseDC(NULL,hScreenDC);

We no longer have to worry about selecting and realizing palettes, so we can just go ahead and select the bitmap into a device context and blt it to the destination device
in our WM_PAINT handler:

HDC hBitmapDC = CreateCompatibleDC(hPaintDC);
HBITMAP hOldBitmap = (HBITMAP)SelectObject(hBitmapDC, hBitmap);
BitBlt(hPaintDC, 0, 0, BITMAP_WIDTH, BITMAP_HEIGHT, hBitmapDC, 0, 0, SRCCOPY);
SelectObject(hBitmapDC, hOldBitmap);
DeleteDC(hBitmapDC);

This works fine if the display is in a true color mode, but if it's in a 256-color mode then Windows maps each pixel to the closest entry in the physical palette, i.e. usually one of it's 20 reserved entries. Needless to say, it looks like crap! In theory, we should should be able to call SetStretchBltMode(), SetBrushOrgEx() and StretchBlt() to render with dithering. I have tried and tried to get this to work, but to no avail. It may be a feature that only certain drivers support. If so, I have yet to find one that does!

Fortunately, Video for Windows provides a function for dithering DIBs. Instead of accepting the bitmap's device context, it requires a pointer to the memory bits and, lo-and-behold, it's BITMAPINFOHEADER structure (good thing you saved it, huh?). To use video for windows you need to add the following declarations to the top of your source. The first line includes it's header file while the second links in the appropriate lib file:

// Include video for windows
#include 
#pragma comment(lib, "vfw32.lib")

We no longer need a device context, so our display code is reduced to just 3 measly lines:

HDRAWDIB hdd = DrawDibOpen(); 
DrawDibDraw(hdd, hPaintDC,0,0,BITMAP_WIDTH,BITMAP_HEIGHT,&m_BitmapInfo,m_pBits,0,0,BITMAP_WIDTH,BITMAP_HEIGHT,DDF_HALFTONE);
DrawDibClose(hdd);

DrawDib apparently uses some kind of pattern dither (Bayer?) to display images, but it does a surprisingly good job of it. On my machine it's reasonably fast too! In the past I've used it to emulate the primary surface in debug builds of my DirectDraw code, since it allows me to display 16-bit images in a window even when I'm running in a 256-color mode.

Full-Screen Without DirectX

If you want to develop high-speed full-screen applications then you'll almost certainly want to use DirectX. However, the techniques discussed in this file can be used to develop full-screen apps, provided you don't try and update too much of the screen each frame (otherwise it'll bog down, particularly at higher resolutions).

The first thing you'll probably want to do is change the screen resolution. Win32 allows you to do this on the fly provided that you don't try and change the number of bits-per-pixel. I've already shown how to handle different pixel depths, so only changing the resolution will be adequate for our needs. Of course, if the user is running in a 16 or 24-bit mode and you're rendering an 8-bit bitmap then there'll be some slowdown since Windows has to convert it. The code to change the display mode is as follows:

SIZE m_sOldRes; // <-- save this somewhere
// Get current display mode
sOldRes.cx = GetSystemMetrics(SM_CXSCREEN);
sOldRes.cy = GetSystemMetrics(SM_CYSCREEN);

// Switch to our desired display mode
DEVMODE mode;
ZeroMemory(&mode, sizeof(mode));
mode.dmSize = sizeof(mode);
mode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
mode.dmPelsWidth = SCREEN_WIDTH; // eg 640
mode.dmPelsHeight = SCREEN_HEIGHT; // eg 480
ChangeDisplaySettings(&mode, 0); <- don't forget to check the error returned here

To change it back again once the program has finished you simply plug in the old resolution values:

// Restore old display mode
DEVMODE mode;
ZeroMemory(&mode, sizeof(mode));
mode.dmSize = sizeof(mode);
mode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
mode.dmPelsWidth = sOldRes.cx;
mode.dmPelsHeight = sOldRes.cy;
ChangeDisplaySettings(&mode, 0);

Finally, we need to create a window that covers the entire screen, including the task bar. This is easily done by creating a window with the WS_POPUP style and maximizing it with a call to ShowWindow(hWnd, SW_SHOWMAXIMISED).

 
Copyright (c) 1997 Mark Feldman (pcgpe@geocities.com) - All Rights Reserved
This article is part of The Win95 Game Programmer's Encyclopedia
Please retain this footer if you distribute this file.
Click Here!
libwmf-0.2.13/doc/caolan/esc.html000066400000000000000000000004421441723000300165110ustar00rootroot00000000000000 The layout of META_ESC is unknown, but it doesnt matter, as it has no effect on on screen metafile display (i think)

back libwmf-0.2.13/doc/caolan/index.html000066400000000000000000000105151441723000300170500ustar00rootroot00000000000000 Windows Metafiles, guide for non-windows programmers

Windows Metafiles

a guide for non-windows programmers

Windows Metafiles (wmf) files are common in the windows world. Basically they are a recording of the windows gdi (graphic) calls. They consist of a list of calls to such graphic primitives as LineTo, Polygon, Rectangle, etc. And as such as inherently a vector based format.

There are three basic kinds,

  • The original 16 bit format
  • Placeable 16 bit format
  • The new 32 bit (emf) format
O'Reilly's File Format handbook has a description of the headers of these files, and some other info on them

While this information is very useful, it lacks an explanation of each of the records that can exist in a metafile, for the development of libwmf it was required to understand each of the metafile records. To this end the wine source was a great aid. As was the basic help files of MS's Visual C compiler. In most cases just looking at the definition of an equivalent windows api call allows you to know what the parameters of each metafile record mean.

First you must know that the arguments to each api call are stored in reverse order in the actual disk dump that is a metafile record.
So in the case of a Rectangle call which from wine has the api

BOOL32 Rectangle
(
	HDC32 hdc,
	INT32 left,
	INT32 top,
	INT32 right,
	INT32 bottom
);

Now wine uses the win32 api, so in 16 bit wmf files left,top,right and bottom are all 16 bit values, not 32, and also they are stored in reverse order in the parameter list of wmf record, so the layout on disk for a RECTANGLE entry is

|32bit size of total record|0x041B |bottom|right|top|left|
Got that ?, so all the other records are the same.

There are complications when you start into the more complex operands such as BITBLT, and CREATEPATTERNBRUSH as they appear to get converted into DIBBITBLT and DIBCREATEPATTERNBRUSH when used in conjuntion with a metafile

There are other complications in many of the other operands, my particular favorite is one i found in DIBBITBLT.

I've created a list of all the known operands that can be used in 16 bit metafiles, as listed in wine's wingdi.h (and windows of course). The list attempts to document all the calls in terms of the layout of the operands' parameters as dumped to file, some of them are definitely correct, and some have been pieced together by the wine developers, and one of two ive put together myself from mucking around with a hexeditor and wmf files that i've created under windows. So if you know them to be incorrect or have any information that you think would help, please do send that information to me

This information is primarily intended for developers to create alternative bindings to the libwmf library which is a wmf library for non-windows machines that ive written, it takes care of most of the housecleaning and handling of wmf files. All new bindings should have to implement is handlers for the calls as listed in the (as yes non-existant) libwmf developer's documentation.
For that reason this list also shows what operands are supported in the various existing bindings for libwmf, which currently are one for X, and one for gd which is a graphic library for creating gif files. So as it stands any X program can display wmf files using the included X binding to libwmf, and there exists a wmftogif program which can create gif's from wmf files without requiring windows. libwmf was developed to allow my other project mswordview, a msword converter to extract wmf files in a unix-friendly format. Bindings that are missing that would be useful are eps and fig, to name two.

Enough already, here is the the known world's most complete wmf documentation to data

The Windows Metafile (wmf) Operand Documentation by Caolán McNamara libwmf-0.2.13/doc/caolan/mapmode.html000066400000000000000000000337761441723000300174010ustar00rootroot00000000000000 GDI Mapping Modes Explained

GDI Mapping Modes Explained

Date: 8 May 1997
Author: Rich Goldstein, MD  (goldstei@interport.net)

Overview

Each device context (DC, represented by TDC and derivatives in OWL) has the ability to maintain a coordinate system separate and distinct from the device it represents. So while the display may be a 640x480 or 800x600 or whatever pixels in dimension, we can tell the DC that the coordinate space uses some other units.

The result is the existence of 2 coordinate systems: the DEVICE coordinate system, and the LOGICAL coordinate system.

In general, DEVICE coordinates are established by the device or it's related drivers. So for the monitor, the display driver determines the DEVICE coordinates (0,0 in the top left, width,height in pixels in the lower right). These are rarely if ever changed programmatically (the exceptions, of course, include changing screen or printer resolution, or paper orientation, etc.).

The LOGICAL coordinates relate to the device context (DC) and are established by the mapping mode, viewport origin and extents, and window origin and extents. All DC related functions accept LOGICAL coordinates, unless explicitly stated (e.g. DPtoLP, which converts DEVICE coordinates to LOGICAL coordinates).

The system maps your LOGICAL coordinates to the DEVICE coordinates using the viewport/window origins and extents.

So WHAT ARE THEY, ALREADY???

Origins

OK, let's start with the window, which is expressed in LOGICAL coordinates.

SetWindowOrg() tells the DC the LOGICAL point that maps to the DEVICE point (0,0). So if you call SetWindowOrg(100,100) for a window, the LOGICAL point (100,100) occurs in the top left corner. (Hold on, this was the easy one...)

SetViewportOrg() tells the DC which DEVICE coordinate maps to LOGICAL point (0,0). So calling SetViewportOrg() with half the width and height of your window (in pixels), for example, sets the LOGICAL point (0,0) to the center of the window.

SetWindowOrg() and SetViewportOrg() can be called on any Mapping Mode. They serve to offset the origin of one system within the other. They have no effect on the relative distances specified by the two coordinate systems.

Advanced Note:
  Believe it or not, there are some (though few) reasons to use BOTH SetWindowOrg() and SetViewportOrg(). OWL's TScroller provides one such opportunity. In AutoOrg mode, the TScroller calls SetViewportOrg in it's BeginView member function, which is called before Paint is called. If your LOGICAL coordinate system uses an origin other that the top-left of the window, you can call SetWindowOrg in the Paint method to choose some other origin. Because both functions can be used safely together, you can let TScroller adjust the Viewport origin to facilitate scrolling, and you can adjust the Window origin to facilitate alternative coordinate systems.  

Mapping Modes

There are several mapping modes, some of which are constrained to a fixed relationship between DEVICE and LOGICAL coordinate systems. Here is the list:

Name/Constant  Constrained?  Logical Unit 
MM_TEXT (default)  Yes  Pixel 
MM_LOENGLISH  Yes  0.01 inch 
MM_HIENGLISH  Yes  0.001 inch 
MM_LOMETRIC  Yes  0.1 mm 
MM_HIMETRIC  Yes  0.01 mm 
MM_TWIPS  Yes  1/20 of a point, or 1/1440 of an inch 
MM_ISOTROPIC  No  User Defined 
MM_ANISOTROPIC  No  User Defined 

For the 'constrained' modes, all you are allowed is to change the origin of the logical system using either SetWindowOrg or SetViewportOrg.

This means that if I set the mapping mode to MM_LOENGLISH, the point (0,0) and (0,100) are 1 inch apart (1 Logical inch, defined by the device capabilities, see GetDeviceCaps())

Extents

Extents are a little trickier, because how they are interpreted depends on the mapping mode. They are only appropriate for the non-constrained modes, MM_ISOTROPIC and MM_ANISOTROPIC.

The difference between these two modes is that MM_ISOTROPIC takes the parameters you pass to SetViewportExt and SetWindowExt as 'suggestions' (see below) and adjusts the extents so the the x and y axis coordinates represent the same distance on the device. This way, a LOGICAL unit in the x direction is the same length (in terms of the output) as a LOGICAL unit in the y direction (this is not intuitive... some printers may have different resolutions in the two axes... this mode ensures that the LOGICAL units are equivalent in space).

MM_ANISOTROPIC differs in that the parameters passed to SetViewportExt and SetWindowExt are taken literally. Windows make no adjustment. Therefore, you can have very different coordinate systems in the two axes.

SetWindowExt and SetViewportExt are used as a team. These two functions set some internal members in the DC, which are used to map points between coordinate systems. As such, each is essentially meaningless taken alone.

SetWindowExt tells the DC that a rectangle with the LOGICAL width and height passed in, has the DEVICE width and height passed in via SetViewportExt. Confused yet?

Let's say that I call SetViewportExt for a display device with the parameters 100,50. Taken alone, that's rather meaningless. Now I call SetWindowExt with parameters 100,100. This means that for each LOGICAL unit in the x direction, I will move 1 DEVICE unit. On the other hand, for each LOGICAL unit I move in the y direction, I move 1/2 a unit in the DEVICE coordinate.

These functions can also be called with negative numbers. When the sign of the parameters to SetWindowExt and SetViewportExt a different, the direction of the axes changes. So that the positive y direction can be up, instead of the usual default of down, if I call:

SetWindowExt(1,-1);
SetViewportExt(1,1);

One LOGICAL x unit translates to 1 DEVICE x unit, but 1 LOGICAL y unit translates to 1 DEVICE y unit, in the opposite direction.

Basically, here is the formula used (by Windows) to convert LOGICAL points to DEVICE points:

where xD = the DEVICE coordinate
  and xL = the LOGICAL coordinate

     xD = (xL - xWindowOrg)*(xViewportExt/xWindowExt) + xViewportOrg

If that makes anything clearer.

How Windows handles extents for MM_ISOTROPIC

Assuming that SetWindowExt is called BEFORE SetViewportExt (recommended), how the adjustments are made depends on the actual physical dimensions of the extents passed to SetViewportExt. Since device coordinates are not necessarily in equal units in the two axes, they are probably adjusted internally according to LOGPIXELSX/LOGPIXELSY.

If the physical dimensions of the Viewport Extents are wider than they are tall, the x extent is adjusted so that it's LOGICAL units are equal to the LOGICAL units for the y axis (as defined by the y parameters passed to SetWindowExt / SetViewportExt).

If the physical dimensions of the Viewport Extents are taller than they are wide, the y extent is adjusted.


Contents of this page Copyright © 1997, Rich Goldstein, MD. All Rights Reserved.

back libwmf-0.2.13/doc/caolan/msmeta01.gif000066400000000000000000000076331441723000300172000ustar00rootroot00000000000000GIF87a²ƒ÷  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~€€€‚‚‚ƒƒƒ„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘’’’“““”””•••–––———˜˜˜™™™ššš›››œœœžžžŸŸŸ   ¡¡¡¢¢¢£££¤¤¤¥¥¥¦¦¦§§§¨¨¨©©©ªªª«««¬¬¬­­­®®®¯¯¯°°°±±±²²²³³³´´´µµµ¶¶¶···¸¸¸¹¹¹ººº»»»¼¼¼½½½¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÆÆÆÇÇÇÈÈÈÉÉÉÊÊÊËËËÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞßßßàààáááâââãããäääåååæææçççèèèéééêêêëëëìììíííîîîïïïðððñññòòòóóóôôôõõõööö÷÷÷øøøùùùúúúûûûüüüýýýþþþÿÿÿ,²ƒÿÿ H° Áƒ*\Ȱ¡Ã‡#JœH±¢Å‹3jÜȱ£Ç CŠI²¤É“(Sª\ɲ¥Ë—0cÊœI³¦Í›8sêÜɳ§ÏŸ@ƒ J´¨Ñ£H“*]Ê´©Ó§P£JJuæ½oX³jÝʵ«×¯`ÊK¶ìWjùªª]Ë’µ·pãÊK·®Ý»xóêÝË×®/\iÙ ÒmßÈ+^|Ø×)À„#KÆh˜±å˘3Óuü8ðäÏ VÖLº´é¼œ;‡^Íšàè·’jÔDM×'½ŸÔäUsû­ÞÔ ©)$÷Ø']ŇçNœîr]Àw÷ÆœúTºÖØC¿Ö`ìÔÿÐ+>/Ýo¨AM=û¸ŸÎË¥{ÙuËÇGW~æê×e'`d¯Å×E|Ÿ|Wˆ}5tAM² \ ßMØàƒBÔÀJ Bø×žz¬¸÷ lŸ@Ñ݆êbb}÷±a ÍQ£ßyÇd(Ä1(Þ¸a‡jÔÈá1öAÁ bh¤`¯Ó7RSŸ4 Ûx5H ¥wOR#e–Ož€‰üu@KÖ@ß5ˆ—¦—¿WžlÜ ± p‰§˜vp ˜x‡xxzù§zÓñU䑈RõZmO6Ýx’ðI¥™P®W^¤K:Igy®×šëŇ‚”ûéáy¾I) ú¶ n®ÿw+]ÀÚf{m>Ù&rDžâ«u‰Õk²(5£rIi|k"k¥“ìqæ”jÒ§Üyw|‰*”ªZËߌmþ–›¬·Æ*ny‰*ìºKøe!±rE“"(%½íÍ;©Œàuº¦$¡ ”BÑ!w¼q[/ö5Pçxû‰‡ð“·1£Û믲ëñQ‹Â €£ÙªñÝ’ºe‡êQs2ÆøÁ«Þ´ñ³ž’3s§§zÛŽ -²ê9è*5ûÅG¨x3˼íÑã¥û+°GMÔ¢DrÌ[Çwõ\Z¿Õõ|Cæe\ضö]ŸJ—m¼—Ûo±m™ºR×íÕ§å­÷Owÿl÷ß:á½÷à„÷E7àˆ×$xáŒ7>×á‰G“6¿Unùå˜g®ùæœwîùç ‡Î9}KnzL‹;®:ãŸîúI©¯.»Þ­¿n»H±Ï®;iµßî{G¹ï.üÜ¥ÿnb †4Ä!ùõk~/*щ"¤¢üýìE1ºl„#Ù8è²!‡ºÀ (¹ªeä˜gX‘$-©IOŠÒ”œd¥JK;ì ÿ:õ2 hRSžÂ¥ª8ÍéajxRûÄsz=Éf5ý(”ød)†¾ò ÇØE¥ld¢¦ƬKIJSüÂ\<ªU‘ê<¦ÒUªÆ*÷! j:OÕP1N9He…ú"^ÌGÆF„X:V²Øh©ñLògÒš#µŽx-5d L{„–·…‰ëI¶)äxäƒH/ÂÏ/t¤, â®úÄëKøBä½V©/LökZâ¥V°ƒõ¬[ «)ã#ŒL•R¾X‰x%ò•uaä,Ç2õìõ±M¡ GôáÞO¸ÂžmMXÛß³cwÀYcH,üâwˆD&6Îq‹cüãÞÎ6%¬Ýï^4›vÿŸ¸°*¾pgb0ï†Ì»a‘rÌœ0ß…(63|Üå~ø²‡Nô^Ü H¹ÊƒÅro"¢ØÅ0ºQ˜Èœ0ç¹Ï·žð>ÚK—š=v¾ fÐ(îèÎw¡u®»ý€øzJÃN÷ˆØë³È„Çß®ð¸Ï½î€¯ÈÕ³ž DðÜqc௛wc0Ï;Ç}s0^åyŸÅLfÎy™Wýòtï·™úÒÓDôÛ†éW{d"ãö`½ìgOûÚÛþö¸55fAúÜûž#åýï‡ÔßaÄO>EìÑs@¸CùЈ=ºûè[ÿúØÏ¾öGâŽ]|~ûÛwGÿÏïpvðgŸÜF¾ù³/þm—ý×ïþ÷áÿ`~ÐãþøÏ¿þï¯ú×ý÷—˜Ù@Z!€éð÷wþgYWñ 4• XqÈ 8PÅÖ8XAH x¿¥nwÁ X€øÇ(€ô@ Øi×p€Øû·ï0ƒéYq rá ÈЂNñ‚"ˆr?„í2„£ÆEh„Háj³ö„P…žSkKÈ„E!„Hhg….…YÈ;JÇ…7á…_È7`'†=±(á=z!Vh#>iƒeeÎÁ eà thq¸ˆ&‡t˜Taˆ†4± †2e‡Hƒ¥%ócXäÿƒXÍ¢XsñGàá?âv&‰6u†‚85ÖsbPR"Ë#B '–%¤H…ð'Ç`2Gh$"±!$jr ÒÙƒ*PÆ’ BÒZ4E=òŠËó‹B0$žT¬ ÒF“ДʼnˆÀu .Æ0s+ÊÅ>£Â €Ü(Dä2GK‚4Â$ ŒÝ1D{"bÕÉò0$ VEb¢%£bgàŽ—¨P ‰ FÕhj¸$(°‹Ò3޳Q)Íòã¸ãb3Ó"÷]Ec0 ¦2PÀ/42»h'ObðR.ÉVÿø3¶V<±jÐŒzR¦EIÍR“¾ÿ$Gö$V$* ²c+ñ´*’(1â1.)ôE#G­„XôÒˆ~öw.™îrK !ÖF¼¤*ü‚0šD/„ ]@jÐ!9”ñ! ’duE%…À#3a+&eˆu'P¹‰-9•TYkfJ…¨NˆÔ!™ò—ºÅÙrŽš0ÜQÜñB²\ßQd\ù)L’dÃ!&­Øó)á(G‚ù Óg™—z9†êuV@¢ áaPx¨5Ð! ·±šVƒ‡oq…p=eŽwp5’PÇ`›u w8$¼yWeQuÕÂС_„Öb„4håhæEš¥©8eèT[˜…±HÕÞ€ùdžŒ!žã <æYS虞A—0nò9ŸôYŸöyŸø™Ÿú¹ŸüÙŸù‰ èž'Qãwxz zo•@Êš ¡º RÙ 1ñ š¡ºu ªxz¡º¡":¢öV ú¡(š¢*º¢,Ú¢.ú¢0£2:£4Z£ ;libwmf-0.2.13/doc/caolan/msmeta02.gif000066400000000000000000000122301441723000300171660ustar00rootroot00000000000000GIF87a²™÷  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~€€€‚‚‚ƒƒƒ„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘’’’“““”””•••–––———˜˜˜™™™ššš›››œœœžžžŸŸŸ   ¡¡¡¢¢¢£££¤¤¤¥¥¥¦¦¦§§§¨¨¨©©©ªªª«««¬¬¬­­­®®®¯¯¯°°°±±±²²²³³³´´´µµµ¶¶¶···¸¸¸¹¹¹ººº»»»¼¼¼½½½¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÆÆÆÇÇÇÈÈÈÉÉÉÊÊÊËËËÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞßßßàààáááâââãããäääåååæææçççèèèéééêêêëëëìììíííîîîïïïðððñññòòòóóóôôôõõõööö÷÷÷øøøùùùúúúûûûüüüýýýþþþÿÿÿ,²™ÿÿ H° Áƒ*\Ȱ¡Ã‡#JœH±¢Å‹3jÜȱ£Ç CŠI²¤É“(Sª\ɲ¥Ë—0cÊœI³¦Í›8sêÜɳ§ÏŸ@ƒ J´¨Ñ£H“*]Ê´©Ó§P£JJµªÕ«X³jÝʵ«×¯`Ê5IšÙ³hÓª]˶­Û·pãÊÛöؼ±xó ,K·¯ß¿€÷ì®ÞÃ_ù ^̸±ãµÃzFLy«âǘ3k†Y²áÊ ©^ÞLºtæÎ’C«–:ú€×t©xöYןֺp‡Úk5ieëJ+©š5|_[ƒöìÜoq/FÝkµu§­Ôè ‹mjŸ ƒÿgeV×§áÔÌŸ­‹¼tóÇn¿†²ø±óàäfõ)þlV…¢5÷¡gVsÔ<—^fñx’è·àƒéÍEÝu*•Ç „m(¼†5Í ÆnúEøÚ'³½Vnw¼ÖÀƒ»¡ Æ&²ÒÀk*n'£.¿!§œ.; ÉY>×âŒÜÀäkú-yL ;ZØË•Õe¨eQÙmâ¶Õp‚Ý¡P{&"„kjmxª(p§\ÞEù‰©ªœrª›8Î+‹á%ÚÀŸaâ ëwx(§ÇJâí<úk ÜÊ«‹ÉfÉì¿89+*¨B„è› |À£jàɬã&Ä 槆¯ƒš˜êqøš®rr'’Î%J±~ l€ç¯ øZÃÉ÷Òu!À4×4­îRSHr¦ ©FÊýáYƒ.Å! r°B«Ò!ŽÜ` vó1x¢ Ë¾]Ò€™&G-‰â™ôY]$·3Ór*D ¬DˆÚ#ÝoÍtË4šixçý×Ìu÷ÿÍÒÝz.x[|ûmøI€®¸â…î¸H‰/.yÞ?nyG×|¡ùæœwîùç ‡.ú褗núé¡‚¥¿}òÇë°ƒqùì¹³úí¸ç®ûî¼÷îûïÀü&¬XÊд'ÏíÂ7ïüóÐGßü&ÏzBÈ+¯ýAÌKïý÷à‡Ÿ;õÕ_PöÛ§/P÷â·ïþû¾“I* ¡¯þöì÷Ë ¯íЋ_øÝÐ;GÀXzM€®®_(Åíð¯ÔÝ ˆÀP|òƒDýî§¾üð;€&.Ø GtðJŽˆ…þ1¶ð…½ÐDíðÁ+½æ¥Pà ÿ%ÈÁ^” #ˆÁÀP‡XÚà(ÃÆðJšà!©ˆ¥XTQx!! ñ7A¼@_àaGðšôJ À ”zÁF¸ Õ €¨1‚ € ø÷‚Qi⇴`,é@9¶ð€‚x  (ÉRè1’x¤$p¼0oŒd¼ÿ6éÈB^ÐŽG ¦PC ªá” ˜B #¹ÇZ°³Ä^ÀÁ)–,%/¹Ë("Ê/À@ÕàK-¾€´Læ2Dçyr!öåìòw¥ ^óƳÁ'9p„&ч_`` 5¥aÆ f"‡ùÿCc:b6È„ÒVødÚŸè´¡5!ÁP~R›É3áyø…SŽ •f<'=ßxQUð#xç+*È„¶ÉL!@õI@ ð¤Æ|$2G ˆ/8b (H9Òš:"˜Ï»¦B² ÑÇIô)´ÿ ¸6–óœ#p*šêÑ^¤²†{¤g¿É)0`œÂ3±ÊÒ&ò Œ)¯ ¥b«lu[¨Ðé5Ô¡Ø,*í¸YÃXöbvHe_0¥ö‚šN¬_`‡2`—PÄ JÛØb@àœ‚ `A;V¬½`eh€A` ´+Ô„&Øø‚Xس/„#{ÆÕÿšÑµN ê]ŨWËq~À .wûÐÞU¸ÈMî÷„Š=ãúV¹Ðîðˆ›Wç:î·ÒÍnv™{>ë:.s¨ ¯xÇKÞò†WÔªw‡]íº7¹Ü=Q×K³ö¾÷¾ð‹¯AæKßÙ¿Ÿ~ Âßþ.ë¿NpôLøRùÛ_ÿþ×HÞuw""+lÄN°‚ûÔ $Û ½ _i¹íƒâàkI¢(T! ]¸º+Æ‚†6¤1–t˜Å¾ÑŒAlàejD$v¢Í­#"+G’nñŠVÄÒ’W§CcɬýÝŠÒbcè¨hücï(I9’sÌoÌ#”öØÇ?–"ÿƒ4£!ÙÒÖ22¦JÄä$½éÄ:NÁ€œM!9aˆÖónËÿè²—­ÃÍQ"0‘¯TåRùFV¶4Òi–eIkiFþ}!—»ìå/óÙÒ:P—)&$i÷§L«m ˆ×¶®MÔrz›»hÿæÎ›à$ :UiN¦sœªl§K}Ü@y&ô‡”0©…iÀ~^ÉÓã$¨3(S%¶u¤&ÎuüvÝÝ^3K¢Kl E1ZlpK£ )³IIzž4¥ûi©Ý™§Æ^›€Î¤©M;kOX#p•áæ¶ŠÉ-_sŸ»ŒHmëR§*ÕvÛQªT©UW9ïnµ«_ ëX§½Ï³¦õß2ÿ+NSxÈ#`@ÞÄR(JCïÑŠvxeøŠÇ)ü•±ŠÅ`aˆØ¶±³…l'+Ù^X³„Ýlg?ëDÑzµ´§uâ í`ÛÖj¢ì+×ÏØ‹Ù(üJ¢wCy«ó+øííÃyÛ! ÷º/—áûû–l÷¾ëNîzÏßýNx,>ðׯyÏøÆ;þsè]{q¿šÁžð‡§¼j,ù¾g^ó á|çëþyÐSFô£{éMn¦r•þay—Ú(2Öé· ‡HXЦwbµ ‡…7{ý©Lþ;Þ ÌúÐHÅ2Ƶî» Yˆ5öq7ÛÊij¯ÎÓlädÿð.<›úoá’¯nóO_Ƭ°E_´¡„3PÐþ³cI š@@S±€lq[•DgM u¤1P›•I˜ÔNudSvtkƒvd½pr‡¶| ¶~;‡;l4š€€ßÄN4‡Jª´%c?q•@)tl”F&RA<äVJ”JÅojPLÿöL  ;Pk®†8¸FòKEi«3Ç;«ÇbÁM±ÐWÁÖBøôTÆF@•ls äMóäMfm¯§oÔVOÆôLß„PD.DjÔXWW<4_tsÈbPˆèÆ„”„ĦQÁˆ·SóÆ?5@÷v@qUVËÿS(§SgP?ÕKôAsˆ%Ad‡º–~굇zc©¤T—}XXN%hŠB–BJô…5ôq&rêÆJäˆÃThjň9%q3§BFXDEsÛwi¤v Åv …¸ƒO­EQ¸XCZHGÓx{‘TA‘ÅXÈ$YM¥PA×ÈXTZ>7JþZZÇX_ÇG±Ð€ÊöµWC<ø?DXƈWŸ˜Œcz©—`O¨\Áý`ÿZ!y_Oø ßðïð ÁÏ‘ù Ïð¿‘‘ð ÏðÉ™îõ„@€<` Ïðáð @ðñÿ¯!¹Š÷xB9”DI:‘wŒ q’ïà’Ï*ù ¯ðP@ß ð Ÿð ;ùðù“41’$¹]y8ð q’’Ty•@ ’ŸP—[ )ß@“2Ù—®pà“fy–i™zˆö`ðoù Ð’Ÿÿ ’ ð’ 0 ˜Ÿ•ÿßY˜†é=·P ª©š“àB®ùš°9 «©š«p˜xè‰ Œù–ƒùà™ÿ¿`•5 M¹›!š×•2I“Ÿ`š3Áw¬éBže^pؙڹܹdPˆàB™ÿ šwxy&Iš¾ +ù@¯1 š”y-¿à“pP–Ðùù³ G„vÝ9 Z Êp`|àBŸP µ w&)™-‰<¿ ™íI•¿—q-Áù ”Y¡p ™ûè0 ªš¢*º¢+š  êã)AÚµùŒé‘ÿÀ™£ ©• ù ïð‘ÿ𠀜#ú›À¢jLÚ¤†P ®¥RZ NÚ¤h ¤Xúv [0ºšùµ–‰v¤[‘¤ŠL¥¸p jêë ¦× ¥MŠ¥Jª¥žõ¢°y§x  €¦9'¦MA¦Øi‘à Âp ë@mú¦® †ÿ rú¨)‡€›åæ§Y iZDQj¥Lz¥ª^ ©H©~–Úváp Âà Tj¢º¢¤ŠŒ§ªy©Ê Qʨ®úªÚ)©²:« ˜ª×`«pZ¥¹ÊrउЫ¾š>õÀ^ÀšÚ}º¬ƒ ØÉ N1­Ôz8Â€×­Û JTê O¡­áz®zˆ®êú溮ÛÚ®îú/›À¥P®ñª<ÖzØ*­÷š<ùêûÊðÚ¯[R®jöJ° ¦ K°Û°ûù°»¸`+°Ë­Øàš±~ã Ø) ë±u³W ­#K²uó­ «²Iqî³î`ÞP³6ÿ{³8[³æ ³1Kë²'±1+Þ  Îà É\Gë Ö ³1{[ñ³@;h‰\Éà Òà´îR;µ!QµïU G«µû`]ëµ¶v·´6+³Ÿ‘¶C[´»€q¶hÛj›–K˶9Û·Ö°·Î 7W tëv{·‘·¶\ÔC¸†‹¸61x:¹”[¹–{¹˜›¹š»¹™k 帓¹1!¹œ[º¦{º¨›º–빟«¬¢ËŠ»¸_J© ÷º2»²ë>i»(»¹;\´›w¼ ÜÔ†¦¥ â—;?Õ;$£‡eSÏËI7Vž±FLäYº@šcZг¼WAÿTŒ¼Ì7¼üy;‡Uk(}¿Æ¾Ù·GS Ø'eÚwd¬´X6—† ”|ã§P´VNèWªùh¾°[F\‹måU´ØDœudã4Z LX¼DZÌFZÕö@ÈGšJGÐu¸J •A5„u(§D¶µ±ðu |ucÇJôÀ0TPfÀøÈk\À«³Hñû¥X‚DlW‚¯W Ä?.×@<äU;0@ñ÷V„ˆûd@¸øo_ÀF¥p´ØV+ç‹.ÇOÉÔ‹ôËN3<¾lÃ7¬Ül aôÈ@§˜PmLl4kó6Ä 5œÅAš0ãd†QlG üoã4IÏäi.%8&ÅoÿDŒþ;U|”¿·³»güµè{F©„iþW‚·Q™\UË–UlÄ„DŒ(u@æGr¦ÆNâëH:…šcPGÄAÞvpØÉ«#É“œ¶e4ŠÈ?AäK˜l%Ì—TóVCgÅCâ4LnLû¶l¨–‹7EǯÔQ§–LÀØQô+Wc|›e\©»|VGkÌÄÈ6Ìö× TUzô…<4Roö‚pHÅ–G¶(‚B†r/¥g”4Ãôg$hü†¸lx|:Î)ñ[:–C3¤;7ÖEÉ‹Y¿scPäE-伯¿·ÃEQ6Cü eºE¾¨Ðäü»~§Ë&­¾‹ÒwGÒéºÒ$ÑÒ.}-=*-ÓAÓ5 =7Óa²ºÔB=ÔJäæ:°ó:ÏéÓ# JÔPÕRmÔáÌÔ,áÔRÕZ­«TmÕ2Õ[Öb½¢FíÕ_M¬hÖj½ÖlÝÖnýÖp×i f]×v}×x×z½×|Ý×~ý׀؂=Ø„]Ø¢;libwmf-0.2.13/doc/caolan/msmeta03.gif000066400000000000000000000122571441723000300172000ustar00rootroot00000000000000GIF87a²™÷  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~€€€‚‚‚ƒƒƒ„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘’’’“““”””•••–––———˜˜˜™™™ššš›››œœœžžžŸŸŸ   ¡¡¡¢¢¢£££¤¤¤¥¥¥¦¦¦§§§¨¨¨©©©ªªª«««¬¬¬­­­®®®¯¯¯°°°±±±²²²³³³´´´µµµ¶¶¶···¸¸¸¹¹¹ººº»»»¼¼¼½½½¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÆÆÆÇÇÇÈÈÈÉÉÉÊÊÊËËËÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞßßßàààáááâââãããäääåååæææçççèèèéééêêêëëëìììíííîîîïïïðððñññòòòóóóôôôõõõööö÷÷÷øøøùùùúúúûûûüüüýýýþþþÿÿÿ,²™ÿÿ H° Áƒ*\Ȱ¡Ã‡#JœH±¢Å‹3jÜȱ£Ç CŠI²¤É“(Sª\ɲ¥Ë—0cÊœI³¦Í›8sêÜɳ§ÏŸ@ƒ J´¨Ñ£H“*]Ê´©Ó§P£JJµªÕ«X³jÝʵ«×¯`Ê5IšÙ³hÓª]˶­Û·pãÊÛöؼ±xó ,K·¯ß¿€÷ì®ÞÃ_ù ^̸±ãµÃzFLy«âǘ3k†Y²áÊ ©^ÞLºtæÎ’C«–:šZPS€Zj¨ñKû“ÙO°%邽í§âh%5Ps›šn¶ÍiÇ•Îu¯ÕØŽ^ƒv!é… ™ÿ=æÛy—òÔ>±¯íúO¯Ë×]ˆ85]ŸtQ£ÎêÓ1Ûèžs»‘§ßYÑÕFMg1øÛkf9hÖrY—Ý…JܬÔð]m·×P8›Ô [ºŒÀylPƒ° _Œ5¼¦›$5²BœŽ ÌÇnº±â¢$â&Ž(54ÂælMÖ0"]b¨eQÚx–t!¾ˆ‘] Ð€…qf ’ÈÜ…l€B|¿`e *ªE€ºI'„ñÕ"‘jÐ6r‚ÖHMÚXÃ60gmŒÖ÷‰ %Ε喜Õ%z`ÖÜ¥„ :ªtjŒ(êsvöVg”¯ÿZ£¬ ªèè ÒfŸYx~²§‰°}Ò¦”­ÖV££¸aÙ˲×uêlO]ª­aJÒœn¦Ú؉aîVìºÖ'ëqÇÕ¶Á{^ŠkŸÚ¢— s(H¢F‹@X,¼òêÒœ²Ì>ë¯NÛÅF£¼ƒ'„ŒÎ¼ÁpP °p]0:mŠÐn ³KÛ´ñˆ‚Å‚ÚF舛ä~µ9L£3š[qÊ/w˜¬¦Ì6ûïÍ4µvLj]PSn]À(¨x-ß1e…c¥]t(É·­· ‡…4í¡¾v’ç!mBÔÀJ@÷ìá14¢@aÐ>ã6lϯu­ Ôjoð¢k=ó»,ÎxËÔš[£šÿæ÷ßimš÷à+íÝV‡R®xi‚î8Y‹G.y[?nyH†O®ùß•_î9G×|!ú褗nú騧®úꬷîúë©R³AŸüaûí`|®;DîÔìûïÀ/üðÄoüñÈ#¿ +ý2ôÇîÐ3Ô{òÔWoýõØS¿ $ÌÛ¬ÐóчÐôÙ—oþùè¿=÷Þ'¾øð D~úô×oñëC’JCïÇ/þü½ˆÅ `³ƒ^Øá Æûˆç8‚Y°A €Àš•â ¥ð#0ð‚ö¢ƒÁó`È@¦/àŸÿâÀaЄ{á.˱ #¦°@Ú°š¢ÿL¸,ؼ ÔaGØ‹R8"ƒ tÄ?ø‚‘Y"4¡sD.KC|à™ .&…*\áÿ4€hâ C¤à`3‚^Ôˆ¬Q/æ€:`‚º"¢1À€8bp‚Ä_HMуŒ"+˜G:P°aÀ3YŠ@:“Ü$~x<4:OkôÝGYIFz°GX ¦Àêᕠ˜ 1iCÀ°ƒ¤ Fð‚Ná¼T`+‹™HbbñXŽx¨†c†ñ à¥4©©À#VÏ” é*uÀe)¥ð  0;¾@™Tæ:Û €#P‘‰EüÂy(ÿº1‡t 2!ÉL#>Ó´‰f¾ CØDóŸg¿ ‰Š¦ð”ã„^ 8Ä/¼rµl#<ûiGÊ/>íèÑDJ´Pv! :Ðv°0}¦%£9A|Á;`@BS:”úÔÊ´8¿—Q²ñ0´Ã¸ƒ9ºž#°ª/µŠÀXò°—ýDâ09ì SÀæWkJEG~ƒ:¡W U |u®Ž˜ë'ª=‹^4œMÝ]9y˜Ë^(Ò±á ¦ Õ^t³Š‰­â ì@C󊌩d) C h"S:h‡Æ¦µ´D-0 fV†šÐÄ_ ;ÿŒö‚p„eÝ(Û6Ö¶ŠJõkë¹rÞï¸È=¡p1JÜË7¹Ðn_-:Üæ>î¹ÒÍ®vÕ·\ÀZ×rØÝ®xµ»T÷}×r¡ƒz×ËÞöºW½rè.SÏë¸ðŽ÷¾É-/BÄI_œÙ¿®Ÿ~Âßþþë¿N°ùløYV°„ƒK]æ>øf  HÉá%Ux+Mâ;ÜD jƒ a&íy½/kÀ%ƒ âà sj£/Œá kX3/Æb‡=ä1³‚FA‰TâN›øDÇr¥ÀufóØR1z±‹Ì’rÍ‚dfÙa¶Æ›1Ajlc-mÔpŒ ý˜É<¶sÿÍvdzIHC–‘Šlc#iSÚNR§Q¥&ÏYE>N¡£…a;oøÖOÌ!s™/TÎU>’·”åbiGZÚ4ÓqÖ¥K{ùË~A˜Ä4&2jÓ>7p˜1^äj8Mݤô«tˆÛ.–¯T ³|Í;i÷œé\àmм(QNxØZšÀ~ÀƒTÄsA?êX?¥½¤ôcò pÿ4E¥<$:­u=Ö»,ô@Ñ(‚ÆK‚Λ ¾ãHYe‡Ü<ÞoäK±D=&HåGK’ÅsÏT‡Ô×~Åkî$±Jñ»5Vº1AvPVÀHE£ådì¤Z¼XÅ´ZF¶ZÝöIhšKG@v 8K§B<ôu.E½µ±`vìujGK ´Á7äPmÄÀI Á¾#Iü›Ž°è‚Älç‚°!rE4@4GACTV; @úgW4@¯8„Äxp_0G¥pÀHW1CõÄAÝ&M9—ÀOüÃîÛÀB<Ä)QNÉv$U$‹õ{üÃÒ$‰oÜO#0Z#¤ SÀNpÿÈm}”ÁÇNš„M¦vSd „@õôaTeì;ÍKÇ"@°K v€.Xo}lÊ 7m`5GU¨@ÐS*7„±L[Œ¢óPN4Bæöp$ÕàÔÉ5óÉ  5•8@HtLŒhGGRÎ ‰QEm<äVC´NÌTWɇÓkÅT»fk&õjlB–UK=œWp<ˆï[¯Çü¼EÌG÷ˆÅÐöÌåˆz”dž4rCÄRw‚àHÍH¸‚Iær8%h›ôÈth&¤hn¬‡ÄÌ,ÆÏ„[½6D?<½,=¿Ù;>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~€€€‚‚‚ƒƒƒ„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘’’’“““”””•••–––———˜˜˜™™™ššš›››œœœžžžŸŸŸ   ¡¡¡¢¢¢£££¤¤¤¥¥¥¦¦¦§§§¨¨¨©©©ªªª«««¬¬¬­­­®®®¯¯¯°°°±±±²²²³³³´´´µµµ¶¶¶···¸¸¸¹¹¹ººº»»»¼¼¼½½½¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÆÆÆÇÇÇÈÈÈÉÉÉÊÊÊËËËÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞßßßàààáááâââãããäääåååæææçççèèèéééêêêëëëìììíííîîîïïïðððñññòòòóóóôôôõõõööö÷÷÷øøøùùùúúúûûûüüüýýýþþþÿÿÿ,²Ïÿÿ H° Áƒ*\Ȱ¡Ã‡#JœH±¢Å‹3jÜȱ£Ç CŠI²¤É“(Sª\ɲ¥Ë—0cÊœI³¦Í›8sêÜɳ§ÏŸ@ƒ J´¨Ñ£H“ÒÔ—®©Ó§P£JJµªÕ«X³j¥ŠN©×¯`ÿÑ£F¶¬Ù³hÓª]˶­Û·pã®Mf-¬Ý»AÇÊÝË·¯ß¿{“õª‹·°a›z+^̸qZÁƒKžÜ2±ã˘3»…™²çÏ"-SÓ¥¦´š³¤u-NM–´Õ¥?¡þtìì±;Ÿ ¢¦FvZÝÔ>½vËZ1ç^î@+_žQô'М}î0u²Ï¨aý´Y5ª“ÿ_¨F jÚÕšçÞíuã½â#gN¿>DçéG—®Qè9þ¼Õ +®¨F PÊ5œö‰yí…twÌ Ö Ý‚ R£an»¥w µ‘µxŸpxšŠÁ ‹…Ü…\Ç%gß8„_ƒý€B5<÷c@¤@r§áB4 ¬Ôd„Ï5ÐÝÝQ$whxàOFÞzÚUˆeeÕ°Áá5& h¨‹”º ¥†ÒÅUcŽ|æˆ_œ]<'‰y‚šwŒ$]@ä D ÷àX>Ø(vЧvàeŠ"+w xž‡©vq¦ äcBžpžJ*Iª‘ªÿ©šžòÍ×ç­ôáçu„ŽYƒ. l'¯~2'5D9©„àhiŠò‡b¢‚J&´æ¡iây(Ò™l¢¨JÊ+²ÊV«¸¦û™®”Šë+u(4Úë«ÊË•ÚiH/¨£JZ¡pÒ] ž.Цɭ¯¯>× ¯ÿš—ðz4ž«îÄ”á±Är½C÷I¢4  – à«F<×[ÈĨè“[+êv,ßa0{‡,²§%òdωZ9çyˇ.ÅHß%Ú1Ÿ4Mm¬°Â´‚¬WHÔSGM +Û‘%ÉªÝÆ md1­‹.R»uoØxÇØÇè"›Öjs*‰YZË]Ûתéÿò6mb“Í÷ÖUßÑI'î•hš5îøe{*.¹RŒ?nùå|E>ùæEUŽùç «¥9ç¤åy訇>zé¬ïä9nõ&È—pfݱÛp©§¾zë¼#–ÖƒÔlÐ_Ê„·6+Ú¶}lóh‘RsÇò¹«.qïÔûŽÖº#Ý1°ÒÅÞoÐ+… ¶¥…4ÐjÙÏa7côÒ]ýü31. ÁÚ°¦ÛsÇ(Ï ¨…Óä ;ø£ÆáºÝÑï)a\N£(øL å3“¼Æ­“Ù¬{ŸH Yî ­Ò0°Óƒ  #ˆ– yèn¦ÙÎÕp !˜Q’tNf ‘w;!æÿ¸Â"‚„q.5&Ø) 6Q ’p’¨Èr¥–™¥{£Ù€?GD#zq#Œ³`pŒœÂ¥ˆ,cÃNkRT"50ˆ[´\¿HG‹ØO[™‘Äûâ(ÇÖñ9i.ùòv$¤"3GD:2!‚\¤$EçÇGZr!‘œ¤&ËÒÈKz2“›Ôd'=iImÄð”¨L¥*WÉÊVºò•°Œe,ùPIRÚR   ¥$GyËCæR—Šäe/ÿøK`R˜Ã¤c1Gd&Ó‹Œ‹ù±ï4-Bm ˜æv…Ò™Ï,b4k(!´}³JcY¸j0,ÚaÍÔÊ‚¼²) #ZÎ[^ô‡Áëý³/B€ã§7£_Q·nŪv£_¸jPÙÕÔKo­§h\ûi×Çlµ¯9§k`g¦×öO± 9a'[r¦”¥´§Míj[[Ú´œó³K·lf7ÙÛ^N·½½p‡4ã&w~µ}îÉ¥[Ý'vv»'&eUÚLnñíBóz4dÃÛŒ‰ëÛ´°™œ±–KoËv è=FÞófôt,uo •µ/ïÉÎÊòS…<çøYèT²SËEŸKÿô—æñˆßŠ]Žö’´ÓÚ+K©ÁýªÌY¡åJHQ"¥¡†Ppå¶î<ÇPCÏd–WEÉT¨Âæ?*--¹ënZý­Úˆs7¾00ǘ¯¸³V{ÝôQ¥ZƵóÔQÅEMŠé_êm¥üïÁW”[»5©Øomöl±ýí•6q ^Ó]îÊ ÿîõ^ Ž gÖR¡E0h•®_¾\uçƒ'Jæ×ùZ7ðªûUŸÍ„%ýarf¡}ÛCQàUÑa/Nœ p c2jÀVÛQ2áñ*.3UU åUMçU"5 ³?ˆíP„'"wx€_¡kõ„ópepma6ÓA{j¡6l!7e¡5îtFfñN™Ór2˜+ð¶^J¸„âքуPˆï&…BÖ\U˜#Ñvm^ø…`†©”m¡¶…}r…XTh†D†iÈjŒÇ†Lø†(‡r…tÈEOx‡‡!®aBfQ€Q®lˆ:ؽ‡ˆÓÿ×5~A;e“Oÿƒ{ȇ¸÷x÷Ö/|õ‚é×q-s-ê1%è(—uV´xeˆ‰s˜ƒùquü¡0òA"‹»Áf$¢,hÂ(žXAWCÂ=6e3‚*… tb¶0Å‹-"iKÄŒQ2câ)[×~,g‡®X1Ç# s$ŠRvPvâø$]¢*Qr)pg)Ud|u÷%±â+UU!‰‚Gm÷#þ¥Žp",þá$†§&@v?Òe‰ÜØ’!vRy‹b(oFyŒò{j+ËòU÷yšò"(ƒWC*]炪§* ãV®7/¥gp%‚¬xk‰n·W ø+êSvàg,m÷šÿÇ,ÝÁ|b}Å‘3£)ÞµX}¯¡(cC}×a}ÀQ^׊-¹.Ýç4ïR•:ç{^åR“g&£/£Ò~àÁ(ÿ"ZB0pv"w’q"% /K)c-ˆ=E²P•ÞhÙ¡€dÅŒ H,!0!s!C)¥y) Ò@ ‚8”óU‰%}Õ1Úq¨¢8R+©…v™Éã4Y“6T³5)"šyc„c6)pfƒ6<(7…ƒ5«7sS5j›xS5<˜šØáRU„µ›âÁ›tÉ’é™y8D—xœV˜œÊyÌ n蜵·œÑY](†Ú¹ÜéJdhœ×É}Ôÿù8kž21ãÉIÖižy¡Ì0 ðŸò Ÿ>hlåÉž/ñKП» ²  ¡ ™ Z z j  ¡  þ) ñ êuŸøYiq Ã` ²P ¡@ ú¡ ¢"Š   þ¹ ð)¡Á´žÚôðž¶à ¡0 #Z£6z£6J ê ²` )ê„ÐÙ¢D¥€£FZ ž5žp¤Lš :Ú þù ?Êk,*¤;A¤8𤬠Çp Õ0`ª` ¦ÎÐ¥Á5EÚ¤7š ê *¥ó ŸÌPû9§ÃПUj¥:¥Š5Ǧ/A¦ãp¦iÊ lš¨7j ºÿ¤|:ø0 Rã ã€@¡ãP Çp¨ŠÚ©Š žNf7¬°¤žŠ£ *ª£ZZ„z¦hà —ª ªœÙªtV¦]z ’ª¤lŠ ì€«Žä †P 1A¨eš¬a*¬—t ^ð¬ÂÀ¬é¬ÏŠ ÒÚõ`^Àõp­Þú­à®â:®œÃ ®­äº…áð¬^À éZ…Ôê®ð®PXhàh°ôZ¯×Эûú¯°Ëë€ ú:°`·÷ê×€°.¯óê°ó¶ìÚ°;±®`±[Gú@û± ²÷°±Õ±ôÀMß°²Ž‘ +û áàòà±ü@²Eÿ¤+{ ƒÄ +Ûì@³6+^äu +{éð³ôP³Aëx«¶²1{´;²(a²»´0ž’ij+KP1³!ûµûOq/› 0HVëX›ž‚¶i»k;žá¶o‹qKœA·u[w뜺·ÿpN3¸„[¸†{¸ˆ›¸Š»¸ŒÛ¸Ž»¸¢°§€û‚û¸–{¹˜›¹šk¹‘먓{}›œ»·¡›‡£[·¥K‡§û¶K3¸ÉSŸ|qƒLC6MC€jq6tc»¤™ˆ|!„kT@Xžû¹‘€ˆÇ‰1|\Ò1ÝDÇuä73ê!MràQ[Í[€’K¼˜4•O#rÿÃ%ÃÁ5$6»Ãá(îäVº -íX$¯’ÂÑS-sl)Mé Íg"õ$´¡¾îô<À[jL36\S”ã2[õ”¬Ê½Í1•cÓ—,“,–bS H0%£GŒi,Ó¾Ö=×2SuÀ¼×"$ŠGUO22ü3B@0±¥qV‚™ ÂÙ«žÃËÀ‘€D"WÏQ¿‚AâÈÃu%)iø2tžÂ¾ý#Ê÷£EÙ€á,Yé.¢‰’™ORÃd±ºi‹ôÀ1é_!ƒ•¾á‚àG) ƒ%ÐÒ("u‹9*³u™RE4JÙÖ·wݱ™8¹g•½"Äà'X©á0&ÿã)˜µC=Y~ # ’¿hé_?L0RÄKy2–OÈüb‡Æ½¢!öÂ{-c'Q¢>&c$*£%X’OE²zCUÚÁÎ2‚>ã$wb%D’|Kù#n Ê¡Ü~C©¡ËÜS6TÍ ]Ð¥ÿa3Q|ŠØ4ÐÌ62Í¡—\äô´Ãˆ²Ñ%²ã¼»á(#Œ[# P@ ÃQù”ƒ¯A÷ÅÛ{Ì‘ºoÆVëÏiÐK+ÐXHÐAkÐRˆÐ6[¹›ûÐÑm¸[—ül=Ñ½Ñ ¹û|Ñb‘žTzà I"Ý8 M² Ý„)½±•S»há»lá4ÿxƒðÖÒ‹Dhr(·L•½È;´Uk8-±~ØWôuܼ=ù¤Qã]>‚cøãVéÜnEžÂ k7ó»ÌTÔ«+¡÷ ZR2EuîhÆT0”¥%ÈHà•âUÁâ” Ö sS¬=ÐB Wò0UL(óW™ç¥2dx=°ìb“A™U+#)fa)P´5âcØr12“—ˆ7¡}ÑøQ`‚u’LÙ‚ÝuXÒ~~ùn•e-°Œc%ž‚(?ùUÂËCSÙ]G-šm$aBR‚$]wסÍÏŒÃ"ˈ¿í,ÀÑqÞµ d,¯ÑÜkó ¥ ’àÎÿ†Ü$]Ò±Ò7ÜÇLÞê6Û‹Þä¦ÞËÞÞæÞÿê9ZÃ$ˆ•˜ºÐß]Þá-ÞQ9º°MîEeUa÷­$bmÞ¡\9ü±cµ$ •c÷ØZc˜&,·!,†vP þß>Ë eï³Qð÷fÀ³g¹‘jÛ$25àTÁ£ŸÝÞȤ†&B`3Ú#ã4Í B¼A\$ÖcÂg=¦Õ!nÑ#þHt7.¤âç‘jò …F!&2Æ$Àsd}ã8ÜhB0cAŽv<¦Ñ%¦=¼Ñp/eBÒøå"ÞäŒ#²zlΪ¡Wƒçgc3ÐÌP¶ÍÀ³ä Üäݦ ½ ~Š‘o æ Ì8ôu“nè·Šè ßÌ&ßûªéö éÜëéÀÆéô:zꨞꪾê¬Þê®þê°ë²þê¸êÜ[ ´šëº¾ë6: µ0爎ë¼>ìÄÎë¾Îä˜îÂ^ìÌÞìlzì—žì ±ìÎ^íÖ.¢¾íÒΘª¬Þþíàîâ>îä^îæ~îè>æ°ÛÞîîþîðïò>ïô¾};libwmf-0.2.13/doc/caolan/ora-clp.html000066400000000000000000000477511441723000300173120ustar00rootroot00000000000000 GFF Format Summary: Microsoft Windows Clipboard

Microsoft Windows Clipboard

Also Known As: CLP


Type Metafile
Colors Bilevel to 24-bit
Compression None
Maximum Image Size 32Kx32K and 2Gx2G pixels
Multiple Images Per File Yes
Numerical Format Little-endian
Originator Microsoft Corporation
Platform Microsoft Windows
Supporting Applications Microsoft Clipboard and ClipBook Viewer
See Also Microsoft Bitmap, Microsoft Metafile, DIF, SYLK, RTF

Usage
Used as a "one-format-saves-all" solution for easily storing data in Windows to disk.

Comments
A useful and under-utilized format. Programmers can safely assume that every installation of Windows will have the ability to read and write Clipboard files.


The Clipboard file format is used to store Microsoft Windows Clipboard data to disk. The Clipboard is an area of shared memory found in the Windows operating system, and is the simplest mechanism available to exchange data between applications running in the Windows environment.

Contents:
File Organization
File Details
For Further Information

A set of functions in the Windows API is used to transfer data between the Clipboard and Windows applications. For example, the Cut, Copy, Clear, Paste, and Undo functions found in many Windows applications all use these function to access Clipboard memory as an area for temporary storage and data exchange. However, only one Windows application may access the Clipboard at a time. The Clipboard can also be accessed directly using the built-in Windows applications Clipboard Viewer and ClipBook Viewer.

The Clipboard Viewer is a simple application used to view the entire contents of the Clipboard and to save its data to disk using the CLP file format. The ClipBook Viewer is an extended version of the Clipboard Viewer that allows stored data to be divided into separate pages of information and shared over a Microsoft (NetBEUI) network using the OLE or DDE protocols. Each page in the ClipBook may hold the data captured by a single Cut or Copy operation. ClipBook may contain a maximum of 127 separate pages, each identified by a name up to 47 characters in length, and limited in size only by the amount of available disk space. Each page of the ClipBook may be stored in a separate CLP file.

The Clipboard Viewer and ClipBook Viewer are separate programs, but both use the executable file name clipbrd.exe, so it is not likely you will find both programs installed in the same Windows environment.

The Clipboard Viewer under Windows 2.x and 3.x is found in the Main group box. Windows for Workgroups 3.x and Windows NT 3.x provide only the ClipBook Viewer, also found in the Main group box.

Clipboard Viewer is not installed by default in Windows 95. To install the Clipboard Viewer under Windows 95, you must select Add/Remove Programs in Control Panel, click the Windows Setup tab, click Accessories, and then click Details. Click the Clipboard Viewer check box to select it, and then click OK or Apply. The Clipboard Viewer will be installed and a shortcut will be placed in the Accessories menu under the Programs menu.

The CD-ROM version of Windows 95 and CD-ROM Extras for Microsoft Windows 95 Upgrade also includes the ClipBook Viewer, but the floppy disk version of Windows 95 does not. If you install Windows 95 over Windows for Workgroups version 3.1, and during Setup choose to not install the Windows 95 Clipboard Viewer, Windows 95 retains and will use the Windows for Workgroups ClipBook Viewer.

It is important to realize that both the Clipboard and ClipBook Viewer are only applications that access the Clipboard and its data, and are not the Clipboard themselves. This point is often a source of confusion for both Windows users and programmers alike.

File Organization

Clipboard files use a very simple data format, but can be quite complicated because they can store many types of data. The CLP file format begins with a header and is followed by a directory of one or more records that indicates the type and location of data within the Clipboard file. Following these records are the actual Clipboard data. (See Figure Microsoft Windows Clipboard-1.)

Figure Microsoft Windows Clipboard-1: Basic layout of a CLP file

[Graphic: Figure Microsoft Windows Clipboard-1]

There will be one section of data per record. The standard Clipboard data formats are listed in Table Microsoft Windows Clipboard-1.

Table Microsoft Windows Clipboard-1: Standard Clipboard Data Formats
Data Format Format ID Description
TEXT 0x0001 ANSI text
BITMAP 0x0002 Windows Device-Dependent Bitmap
METAFILE 0x0003 Windows Clipboard Metafile
SYLK 0x0004 Microsoft spreadsheet format
DIF 0x0005 Soft Arts spreadsheet format
TIFF 0x0006 Adobe Tag Image File Format
OEMTEXT 0x0007 ASCII text
DIB 0x0008 Windows Device-Independent Bitmap
PALETTE 0x0009 Windows DIB Color Palette
PENDATA 0x000A Microsoft Pen Windows data
RIFF 0x000B Microsoft Resource Interchange File Format
WAVE 0x000C Microsoft Audio File Format
UNICODETEXT 0x000D Unicode text (Windows NT only)
ENHMETAFILE 0x000E Windows Enhanced Metafile (Windows 95 and NT only)
HDROP 0x000F Double NULL-terminated list of strings (Windows 95 only)
LOCALE 0x0010 Language and character set specifier (Windows 95 only)

Most of the native Windows data formats are supported by the Clipboard. The Clipboard is also capable of storing private or user-defined data formats (Table Microsoft Windows Metafile-2). Applications such as the Microsoft Windows Write word processor store a variety of private data formats using the Clipboard. You can also store any other file format as private data inside of a CLP file and read the file into the Clipboard using the Clipboard Viewer or your own Clipboard-aware application. Your application is then responsible for parsing and displaying the private data.

Table Microsoft Windows Clipboard-2: Private Clipboard Data Formats
Data Formats Format ID Description
OWNERDISPLAY 0x0080 Private data not displayable on the Clipboard
DSPTEXT 0x0081 Display Text
DSPBITMAP 0x0082 Display Bitmap
DSPMETAFILEPICT 0x0083 Display Metafile Picture
DSPENHMETAFILE 0x008E Display Enhanced Metafile
PRIVATEFIRST 0x0200 First Private Data Format
PRIVATELAST 0x02FF Last Private Data Format
GDIOBJFIRST 0x0300 First Private Graphics Device Interface Object
GDIOBJLAST 0x03FF Last Private Graphics Device Interface Object

When a CLP file is read by a Clipboard viewer, the data of the first usable entry will be displayed. It is therefore necessary to store the most important data first in a CLP file. For example, you might store the same piece of text in both the TEXT and OEMTEXT formats. Windows would use the TEXT data, and other applications that use only the ASCII character set would use the OEMTEXT data. The same text data could also be stored as RTF and UNICODETEXT in the same CLP file.

Not every flavor of Windows is capable of supporting every Clipboard data format. For example, ENHMETAFILE is not supported by Windows 3.x and UNICODETEXT is presently only supported by Windows NT. If Windows cannot find data in a usable format on the Clipboard, it will attempt to convert a recognized data format to one considered more suitable. For example, TEXT or OEMTEXT data may be converted to UNICODETEXT; METAFILEPICT to ENHMETAFILE; BITMAP to DIB, and DIB to PALETTE. Unrecognized formats are ignored and not displayed by the viewers.

File Details

The CLP header is four bytes in length and has the following format:

typedef struct _ClpHeader
{
    WORD FileId;        /* File identifier (always 3C50h) */
    WORD FormatCount;   /* Number of records in directory */
} CLPHEADER;

FileId is used to identify a CLP file. This value is always 3C50h.

FormatCount is the number of record entries in the format directory.

Clipboard Records

Following the header is one or more records that indicate the type and location of data within the Clipboard file. The number of records is specified by the FormatCount field in the header. Each record may be from 11 to 89 bytes in length and has the following format:

typedef struct _FormatRecord
{
    WORD  FormatId;       /* Format Identifier */
    DWORD DataLength;     /* Number of bytes in the data */
    DWORD DataOffset;     /* Offset of the data in the file */
    BYTE  FormatName[];   /* Format name */
} FORMATRECORD;

FormatId identifies the type of data indicated by this record. Valid values for this field are listed in the Format ID columns of Tables Microsoft Windows Clipboard-1 and Microsoft Windows Clipboard-2.

DataLength specifies the length of the data in bytes.

DataOffset indicates the offset of the data within the Clipboard file. The offset is always calculated from the beginning of the file.

FormatName is a plain-text string that describes the name of the format. This string will be "Text" for TEXT data, "Bitmap" for BITMAP data, and so forth. Private data types, such as "Rich Text Format", will also be described. This string may be up to 78 characters in length and is always terminated with a NULL (0x00).

The format of an entire Clipboard file can be defined as such:

typedef struct _ClipboardFormat
{
    CLPHEADER ClpHeader;
    FORMATRECORD ClpRecords[ClpHeader.FormatCount];
    BYTE Data[];
} CLIPBOARDFORMAT;

Clipboard Data

The CLP format supports a bewildering variety of data formats. Most of these formats are documented as separate file formats described elsewhere in this book. Following is a description of the format data types listed in Tables Microsoft Windows Clipboard-1 and Microsoft Windows Clipboard-2.

TEXT is one or more strings of 8-bit ANSI characters. Each string is terminated by a carriage return (0x0D) and a line feed (0x0A). A NULL (0x00) byte indicates the end of the TEXT data. The ANSI character set is the default character set used by Windows.

BITMAP is a Microsoft Device-Dependent Bitmap (DDB). Refer to the Microsoft Windows Bitmap format article for more information on the DDB format.

METAFILE is a standard Windows Metafile, but is preceded by an additional header used by the Clipboard. Refer to the Microsoft Windows Metafile format article for the format of the Clipboard Metafile.

SYLK is the Microsoft Symbolic Link data format used by Microsoft Excel, Chart, and Multiplan to store spreadsheet data. The SYLK data is stored as ASCII text with each line terminated with a carriage return and line feed. Refer to the Microsoft SYLK file format article for more information on the SYLK format.

DIF is the Software Arts Data Interchange Format used to store spreadsheet data. The DIF data is stored as ASCII text with each line terminated with a carriage return and line feed. Refer to the Lotus DIF file format article for more information on the DIF format.

TIFF is the Tag Image File Format created by Aldus, Hewlett-Packard, and others, and is now administered by Adobe Systems. Refer to the Tag Image File Format article for further information on TIFF.

OEMTEXT is one or more strings of 7-bit ASCII characters. Each string is terminated by a carriage return (0x0D) and a line feed (0x0A). A NULL (0x00) byte indicates the end of the OEMTEXT data. The ASCII character set is the default character set used by MS-DOS.

DIB is a Microsoft Device-Independent Bitmap (DIB). Refer to the Microsoft Windows Bitmap format article for more information on the DIB format.

PALETTE is a DIB color palette. Refer to the Microsoft Windows Bitmap format article for more information on the DIB color palettes.

RIFF is the Microsoft Resource Interchange File Format. This is Microsoft's "store anything" multimedia file format. Refer to the Microsoft RIFF article for more information.

WAVE is the Microsoft Waveform audio file format (.wav files). A wave file is nothing more than a RIFF file that stores only digital audio data.

UNICODETEXT is one or more strings of 16-bit Unicode characters. Each string is terminated by a carriage return (0x000D) and a line feed (0x000A). A NULL (0x0000) byte indicates the end of the UNICODETEXT data. The Unicode character set is the default character set used by Windows NT and Win32.

ENHMETAFILE is an Enhanced Windows Metafile found on Win32 systems. Refer to the Microsoft Windows Metafile format article for the format of the Enhanced Metafile.

OWNERDISPLAY is private data that is not recognized by the Clipboard, and is therefore not displayed by the Clipboard Viewer. The FormatName field of this data's record should yield a clue as to the format of the data.

DSPTEXT is a collection of private text. This data is stored using the same format as the TEXT format, and will be displayed as text, but is not available via the TEXT format ID.

DSPBITMAP is a collection of private text. This data is stored using the same format as the BITMAP format, and will be displayed as text, but is not retrievable using the BITMAP format ID.

DSPMETAFILEPICT is a collection of private text. This data is stored using the same format as the METAFILEPICT format, and will be displayed as text, but is not retrievable using the METAFILEPICT format ID.

DSPENHMETAFILE is a collection of private text. This data is stored using the same format as the ENHMETAFILE format, and will be displayed as text, but is not retrievable using the ENHMETAFILE format ID.

GDIOBJFIRST and GDIOBJLAST are a range of reserved values use to register private GDI objects. GDI objects include brushes, pens, palettes, and fonts. Under Windows the object is created first in memory and then saved to the Clipboard using the SetClipboardData() functions call. The handle of the GDI object and a value in the range of GDIOBJFIRST and GDIOBJLAST (inclusive) are passed to the function.

PRIVATEFIRST and PRIVATELAST are a range of reserved values used to register private data formats. There is no official registration of private data format numbers, so your reader application needs to both recognize this value and the FormatName string to properly identify the private data.

For example, let's say you want to import a 32K IFF file into your application through the Clipboard. You might construct a CLP file with a single record and containing the IFF file data:

typedef struct _PrivateIffFormat
{
    WORD  FileId;           /* 0x3C50 */
    WORD  FormatCount;      /* 0x0001 */
    WORD  FormatId;         /* 0x0200 */
    DWORD DataLength;       /* 0x00007FFF */
    DWORD DataOffset;       /* 0x00000026 */
    BYTE  FormatName[];     /* "Interchange File Format\0" */
    BYTE  Data[];           /* The entire IFF file */
} PRIVATEIFFFORMAT;

In this example we see a CLP file that contains a single record describing a private format with an ID value of 0x200. The data is 32K in size and begins 39 bytes into the file. Once this file has been read into the Clipboard the IFF file data may be read and parsed by any application that can access the Clipboard.

For Further Information

There is no official CLP file format specification. The Clipboard File Format and Clipboard management functions are described in detail in:

Microsoft Windows Programmer's Reference, Volumes 2 and 4, Microsoft Press, Redmond, WA, 1990.

The Microsoft Developers Network (MSDN) distributes several files containing information on the CLP format. These files may be found on the MSDN CD, or on the Microsoft Web site at:

http://www.microsoft.com/developr/MSDN/



Copyright © 1996, 1994 O'Reilly & Associates, Inc. All Rights Reserved.

libwmf-0.2.13/doc/caolan/ora-wmf.html000066400000000000000000001525431441723000300173210ustar00rootroot00000000000000 GFF Format Summary: Microsoft Windows Metafile

Microsoft Windows Metafile

Also Known As: WMF, Enhanced Metafile, EMF, APM


Type Metafile
Colors 24-bit
Compression None
Maximum Image Size NA
Multiple Images Per File Yes
Numerical Format Little-endian
Originator Microsoft Corporation
Platform Microsoft Windows
Supporting Applications Numerous Microsoft Windows-based graphics applications
See Also Encapsulated PostScript, Microsoft Windows Bitmap, and Microsoft Windows Clipboard

Usage
Storage of vector drawings and bitmaps.

Comments
A widely used format associated with Microsoft Windows, although many applications on other platforms provide support.


Microsoft Windows Metafile Format (WMF) files are used to store both vector and bitmap-format graphical data in memory or in disk files. The vector data stored in WMF files is described as Microsoft Windows Graphics Device Interface (GDI) commands. In the Window environment these commands are interpreted and played back on an output device using the Windows API PlayMetaFile() function. Bitmap data stored in a WMF file may be stored in the form of a Microsoft Device Dependent Bitmap (DDB), or Device Independent Bitmap (DIB).

Contents:
File Organization
File Details
For Further Information

In the Windows environment, metafiles are typically created and played back in memory. If the metafile data grows too large to be stored in memory, or needs to be saved before an application terminates, the data can be written to disk in the form of a WMF or EMF file and played back from disk. The maximum size of a Windows metafile is four gigabytes.

WMF is the original 16-bit Windows metafile format that appeared with Windows 2.0. EMF files are the 32-bit revision of the WMF format. EMF files have extended functionality over WMF files, including a color palette and full support for all 32-bit GDI commands. The Win32 API (Windows 95 and Windows NT) and 32-bit OLE support both WMF and EMF files. The Win16 and Win32s APIs (Windows 3.x) and 16-bit OLE only supports WMF files.

Although the Windows Metafile format is specific to Microsoft Windows, many non-Windows-based applications support this format as a method for interchanging graphical data with Windows applications. Because of the widespread popularity of the Microsoft Windows GUI, the Windows Metafile format has become a staple format for graphical applications and is therefore supported on most platforms. For example, Adobe's Encapsulated PostScript (EPS) supports the use of an included Windows Metafile when required to store vector-based data.

If you are using metafiles in the Windows or OS/2 operating systems you will not write code to parse them directly, but instead call a set of Windows API functions used to manipulate metafiles. Because there is ample documentation from Microsoft and IBM on how to use metafiles under Windows and OS/2, this article will look at the structure and direct parsing of Microsoft metafiles without the benefit of the Windows API.

If you have access to the Win16 Software Development Kit, then you will find all of the data structures and data type definitions associated with WMF files in the WINDOWS.H header file. For the Win32 SDK you will find WMF and EMF definitions in the WINUSER.H and WINGDI.H header files. Both of these SDKs are available with all C and C++ compilers that support Windows application development.

File Organization

A metafile is comprised of one or two information headers and an array of variable-length records that store the GDI function call information.

There are four flavors of Windows metafiles: standard, placeable, clipboard, and enhanced. A standard metafile contains an 18-byte WMF header followed by one or more records of GDI commands. A placeable metafile contains a 22-byte header followed by the standard 18-byte WMF header and GDI command records. Clipboard metafiles contains a 8-byte (Win16) or 16-byte (Win32) header that precedes the standard metafile header. Enhanced metafiles contain only EMF records, with the first record storing the header information. EMF files are not compatible in design with the other types of WMF metafiles.

Windows Metafiles (Figure Microsoft Windows Metafile-1) contain a header, followed by one or more records of data. The header contains a description of the record data stored in the metafile. Each record is a binary-encoded Microsoft Windows Graphics Device Interface (GDI) function call. The GDI is used by Windows to perform all output to a window, printer, or other output device. When the metafile data is rendered (or played back, in Microsoft terminology), the data from each record is used to perform the appropriate GDI function call to render each object stored in the file. The last record in the file contains information indicating that the end of the record data has been reached.

Figure Microsoft Windows Metafile-1: Standard metafile format

[Graphic: Figure Microsoft Windows Metafile-1]

Placeable metafiles (Figure Microsoft Windows Metafile-2) are WMF files with an 18-byte header prepended. This preheader contain information used to describe the position of the metafile drawing on the printed page (something that the original WMF file designers did not think of).

Figure Microsoft Windows Metafile-2: Placeable metafile format

[Graphic: Figure Microsoft Windows Metafile-2]

Clipboard metafiles (Figure Microsoft Windows Metafile-3) are similar to placeable metafiles in that that also contain an extra header prepended to a WMF file. The Clipboard preheader contains information used to describe the position of the metafile on the Windows Clipboard and the mapping mode used to playback the data.

Figure Microsoft Windows Metafile-3: Clipboard metafile format

[Graphic: Figure Microsoft Windows Metafile-3]

Enhanced metafiles (Figure Microsoft Windows Metafile-4) have the same basic format of WMF files: a header followed by one or more records of drawing objects stored as GDI commands. Unlike WMF, the header is also stored in a record which appears as the first record in each EMF file. The EMF header now contains additional information, including the position and mapping information stored in the placeable and clipboard metafile preheaders. EMF also adds the features of a file description string and a programmable color palette to the metafile format.

Figure Microsoft Windows Metafile-4: Enhanced metafile format

[Graphic: Figure Microsoft Windows Metafile-4]

File Details

The standard Windows metafile header is 18 bytes in length and is structured as follows:

typedef struct _WindowsMetaHeader
{
  WORD  FileType;       /* Type of metafile (0=memory, 1=disk) */
  WORD  HeaderSize;     /* Size of header in WORDS (always 9) */
  WORD  Version;        /* Version of Microsoft Windows used */
  DWORD FileSize;       /* Total size of the metafile in WORDs */
  WORD  NumOfObjects;   /* Number of objects in the file */
  DWORD MaxRecordSize;  /* The size of largest record in WORDs */
  WORD  NumOfParams;    /* Not Used (always 0) */
} WMFHEAD;

FileType contains a value which indicates the location of the metafile data. A value of 0 indicates that the metafile is stored in memory, while a 1 indicates that it is stored on disk.

HeaderSize contains the size of the metafile header in 16-bit WORDs. This value is always 9.

Version stores the version number of Microsoft Windows that created the metafile. This value is always read in hexadecimal format. For example, in a metafile created by Windows 3.0 and 3.1, this item would have the value 0x0300.

FileSize specifies the total size of the metafile in 16-bit WORDs.

NumOfObjects specifies the number of objects that are in the metafile.

MaxRecordSize specifies the size of the largest record in the metafile in WORDs.

NumOfParams is not used and is set to a value of 0.

Aldus Placeable Metafiles

Placeable Metafiles (file extension .APM) were created by Aldus Corporation as a non-standard way of specifying how a metafile is mapped and scaled on an output device. Placeable metafiles are quite wide-spread, but not directly supported by the Windows API. To playback a placeable metafile using the Windows API, you will first need to strip the placeable metafile header from the file. This is typically performed by copying the metafile to a temporary file starting at file offset 0x16. The contents of the temporary file may then be used as input to the Windows GetMetaFile(), PlayMetaFile(), CopyMetaFile(), etc. GDI functions. Placeable Metafiles are limited to 64K in length.

Each placeable metafile begins with a 22-byte header followed by a standard metafile:

typedef struct _PlaceableMetaHeader
{
  DWORD Key;           /* Magic number (always 9AC6CDD7h) */
  WORD  Handle;        /* Metafile HANDLE number (always 0) */
  SHORT Left;          /* Left coordinate in metafile units */
  SHORT Top;           /* Top coordinate in metafile units */
  SHORT Right;         /* Right coordinate in metafile units */
  SHORT Bottom;        /* Bottom coordinate in metafile units */
  WORD  Inch;          /* Number of metafile units per inch */
  DWORD Reserved;      /* Reserved (always 0) */
  WORD  Checksum;      /* Checksum value for previous 10 WORDs */
} PLACEABLEMETAHEADER;

Key contains a special identification value that indicates the presence of a placeable metafile header and is always 9AC6CDD7h.

Handle is used to stored the handle of the metafile in memory. When written to disk, this field is not used and will always contains the value 0.

Left, Top, Right, and Bottom contain the coordinates of the upper-left and lower-right corners of the image on the output device. These are measured in twips[1]. These four fields also correspond to the RECT structure used in Microsoft Windows and defined in the file WINDOWS.H.

[1] A twip (meaning "twentieth of a point") is the logical unit of measurement used in Windows Metafiles. A twip is equal to 1/1440 of an inch. Thus 720 twips equal 1/2 inch, while 32,768 twips is 22.75 inches.

Inch contains the number of twips per inch used to represent the image. Normally, there are 1440 twips per inch; however, this number may be changed to scale the image. A value of 720 indicates that the image is double its normal size, or scaled to a factor of 2:1. A value of 360 indicates a scale of 4:1, while a value of 2880 indicates that the image is scaled down in size by a factor of two. A value of 1440 indicates a 1:1 scale ratio.

Reserved is not used and is always set to 0.

Checksum contains a checksum value for the previous 10 WORDs in the header. This value can be in an attempt to detect if the metafile has become corrupted. The checksum is calculated by XORing each WORD value to an initial value of 0:

PLACEABLEMETAHEADER pmh; 
pmh.Checksum = 0;
pmh.Checksum ^= (pmh.Key & 0x0000FFFFUL);
pmh.Checksum ^= ((pmh.Key & 0xFFFF0000UL) >> 16);
pmh.Checksum ^= pmh.Handle; 
pmh.Checksum ^= pmh.Left;
pmh.Checksum ^= pmh.Top; 
pmh.Checksum ^= pmh.Right;
pmh.Checksum ^= pmh.Bottom; 
pmh.Checksum ^= pmh.Inch;
pmh.Checksum ^= (pmh.Reserved & 0x0000FFFFUL);
pmh.Checksum ^= ((pmh.Reserved & 0xFFFF0000UL) >> 16);

An alternative way to step through the header structure one WORD at a time is to use a pointer as shown below:

PLACEABLEMETAHEADER *pmh; 
WORD *ptr;
pmh->Checksum = 0;
for (ptr = (WORD *) pmh; ptr < (WORD *)pmh->Checksum; ptr++)
    pmh->Checksum ^= *ptr;

Clipboard Metafile

Clipboard metafiles are stored in Microsoft Clipboard Viewer files (file extension .CLP) and Microsoft Windows Write files (file extension .WRI). Clipboard metafiles are also based on the standard metafile format, but are preceded by an additional 8- or 16-byte header that allows the position of the metafile on the Clipboard viewer. If the Clipboard metafile was created using a 16-bit version of Windows (Windows and Windows for Workgroups) this header will contain 2-byte fields arranged in the following structure:

typedef struct _Clipboard16MetaHeader
{
  SHORT MappingMode; /* Units used to playback metafile */
  SHORT Width;       /* Width of the metafile */
  SHORT Height;      /* Height of the metafile */
  WORD  Handle;      /* Handle to the metafile in memory */
} CLIPBOARD16METAHEADER;

MappingMode specifies the type of Windows coordinate mapping units used to store and playback the metafile data. This field will contain one of the following values:

Value Mapping Mode One Unit Maps To
1 Text One pixel
2 Low Metric 0.1 millimeter
3 High Metric 0.01 millimeter
4 Low English 0.01 inch
5 High English 0.001 inch
6 Twips 1/1440th of an inch
7 Isotropic Application specific (aspect ratio preserved)
8 Anisotropic Application specific (aspect ratio not preserved)

Width and Height are the size of the metafile in the units specified in the MappingMode field.

Handle is used to stored the handle of the metafile in memory. When written to disk, this field is not used and will always contains the value 0.

If the clipboard metafile was created under a 32-bit Windows environment (Windows NT and Windows 95) this header will contain the same fields as the Win16 WMF header, but the fields are 32 bytes in length:

typedef struct _Clipboard32MetaHeader
{
  LONG  MappingMode; /* Units used to playback metafile */
  LONG  Width;       /* Width of the metafile */
  LONG  Height;      /* Height of the metafile */
  DWORD Handle;      /* Handle to the metafile in memory */
} CLIPBOARD32METAHEADER;

Enhanced Metafiles

Enhanced metafile files are a "new and improved" 32-bit revision of the standard metafile. Only the 32-bit Windows API (Win32) supports EMF files and the 16-bit Windows APIs (Win16 and Win32s) do not. It is also recommended that WMF files not be used by applications running the Window 32-bit environments (Windows 95 and Windows NT). Enhanced metafiles are typically saved to disk using the file extension ".EMF".

The string data found in EMF files uses the Unicode character set. Each Unicode character is 2-bytes in size. The first 256 (of the over 36000) characters of the Unicode characters set are also the 256 characters of the ANSI character set used by Windows. The low byte of each Unicode character will contain the ANSI character value and the high byte will be zero. You will recognize Unicode strings in data dumps when you see a byte pattern such as " S u m m a r y I n f o" rather than the more common ANSI or ASCII pattern of "SummaryInfo".

EMF files have a header that is 80 bytes in length and contains the same features as found in placeable and Clipboard metafiles. Although the header is considered to be just another EMF record, it must appear as the first record in every EMF file.

typedef struct _EnhancedMetaHeader
{
    DWORD RecordType;       /* Record type */
    DWORD RecordSize;       /* Size of the record in bytes */
    LONG  BoundsLeft;       /* Left inclusive bounds */
    LONG  BoundsRight;      /* Right inclusive bounds */
    LONG  BoundsTop;        /* Top inclusive bounds */
    LONG  BoundsBottom;     /* Bottom inclusive bounds */
    LONG  FrameLeft;        /* Left side of inclusive picture frame */
    LONG  FrameRight;       /* Right side of inclusive picture frame */
    LONG  FrameTop;         /* Top side of inclusive picture frame */
    LONG  FrameBottom;      /* Bottom side of inclusive picture frame */
    DWORD Signature;        /* Signature ID (always 0x464D4520) */
    DWORD Version;          /* Version of the metafile */
    DWORD Size;             /* Size of the metafile in bytes */
    DWORD NumOfRecords;     /* Number of records in the metafile */
    WORD  NumOfHandles;     /* Number of handles in the handle table */
    WORD  Reserved;         /* Not used (always 0) */
    DWORD SizeOfDescrip;    /* Size of description string in WORDs */
    DWORD OffsOfDescrip;    /* Offset of description string in metafile */
    DWORD NumPalEntries;    /* Number of color palette entries */
    LONG  WidthDevPixels;   /* Width of reference device in pixels */
    LONG  HeightDevPixels;  /* Height of reference device in pixels */
    LONG  WidthDevMM;       /* Width of reference device in millimeters */
    LONG  HeightDevMM;      /* Height of reference device in millimeters */
} ENHANCEDMETAHEADER;

RecordType identifies the type of EMF record. For the EMF header record this value is always 00000001h.

RecordSize is the size of the header in bytes.

BoundsLeft, BoundsRight, BoundsTop, and BoundsBottom specify the size of the metafile drawing using X, Y, width, and length coordinate system. BoundsTop and BoundsBottom must have greater values than BoundsLeft and BoundsRight.

FrameLeft, FrameRight, FrameTop, and FrameBottom specify the size of the frame or border that encloses the metafile using X, Y, width, and length coordinate system. FrameTop and FrameBottom must have greater values than FrameLeft and FrameRight.

Signature is a file identification value and is always set to the value of 0x464D4520.

Version is the version number of the EMF file format. The current version is 1.0 and is stored as the value 0x00000100.

Size is the size of the entire metafile in bytes.

NumOfRecords is the total number of records in the metafile, including the header record.

NumOfHandles is the number of handles currently stored in the memory handle table. This value is always 0 for metafile data stored to disk.

Reserved is not used and is always zero.

SizeOfDescrip is the number of 16-bit Unicode characters contained in the description string, including all NULL characters. If this value is 0 then no description string is present in the file.

OffsOfDescrip is the location of the description string calculated as the number of bytes from the beginning of the file. If this value is 0 then no description string is present in the file.

NumPalEntries indicates the number of entries in the color palette. The color palette, if present, will be located in the End-Of-File records. If this value is 0 then no color palette is present.

WidthDevPixels and HeightDevPixels are the width and height of the display device in pixels.

WidthDevMM and HeightDevMM are the width and height of the display device in millimeters.

EMF Description String

A Unicode description string may be stored in an EMF file. If the SizeOfDescrip and OffsOfDescrip header fields are not zero, then a description string is present in the file. It will be located OffsOfDescrip bytes from the beginning of the file and will contain SizeOfDescrip Unicode characters.

Although not limited in practical size (unless you want a description longer than two billion characters), the description string is expected to have a specific format. The format is the name of the application that created the picture, a NULL, the name or description of the picture, and finally two NULLs. A typical EMF creator/title Unicode description string may therefore appear as such:

"Pain Paint 1.5\0Eating at Polly's\0\0"

Adhering to this "double NULL-terminated format" guarantees that standard information may be obtained form an EMF file and also allows the description string to be easily read using Windows GDI function calls.

Standard Metafile Records

Following the standard header in all WMF metafiles is a series of data records. This record is defined by the METARECORD data type definition in WINDOWS.H and has the following format:

typedef struct _StandardMetaRecord
{
    DWORD Size;          /* Total size of the record in WORDs */
    WORD  Function;      /* Function number (defined in WINDOWS.H) */
    WORD  Parameters[];  /* Parameter values passed to function */
} WMFRECORD;

Size is the total size of the records in 16-bit WORDs, including the Size field itself. The minimum possible size for a record is 3.

Function is the GDI number of the function called to playback this record. The low-byte of this value identifies the specific GDI function to call. The high-byte is the number of WORDs passed to this function, and is also the number of elements in the Parameters array. For example, a value of 0x0213 indicates the LineTo() function (0x13) and that this function is passed two WORD values.

Parameters is an array of the parameters used by the GDI function specified by this record. The parameters are stored in the reverse order in which they are passed to the function. For example, the two parameter values of the LineTo record are passed to the LineTo() function in the order of X and Y, but store in the record as Y and X.

Although each record parameter is stored as a WORD, the exact data type of the parameter is determined by the function it is passed to. Parameter values that change, such as device context handles, are never stored in metafile records.

The last record in every metafile always has a function number of 0000h, a Size of 0003h, and no Parameters array. This record is used to indicate the end of the record data in the metafile. The use of this terminator record is missing from the original WMF description found in the Windows SDK and is now documented in article Q99334 of the Microsoft Knowledge Base.

When a Windows Metafile format file is played back in the Windows environment, each record is read and the function call it contains is executed in the sequence in which it is stored in the file. Windows creates a table of object handles used by the functions called in the metafile records. The maximum size of this object handle table is indicated by the value of the NumOfObjects field in the header. Windows inserts new objects into the table using the SelectObject() API call. The object handle table is only created and used during the access of the metafile in memory and is never stored in a WMF file.

There are several important considerations that must be observed when reading metafile record data.

Not all of the records in a Windows Metafile have the above format, although most do. The metafile records that do follow this basic record format are the following:

Record Name Function Number
AbortDoc 0x0052
Arc 0x0817
Chord 0x0830
DeleteObject 0x01f0
Ellipse 0x0418
EndDoc 0x005E
EndPage 0x0050
ExcludeClipRect 0x0415
ExtFloodFill 0x0548
FillRegion 0x0228
FloodFill 0x0419
FrameRegion 0x0429
IntersectClipRect 0x0416
InvertRegion 0x012A
LineTo 0x0213
MoveTo 0x0214
OffsetClipRgn 0x0220
OffsetViewportOrg 0x0211
OffsetWindowOrg 0x020F
PaintRegion 0x012B
PatBlt 0x061D
Pie 0x081A
RealizePalette 0x0035
Rectangle 0x041B
ResetDc 0x014C
ResizePalette 0x0139
RestoreDC 0x0127
RoundRect 0x061C
SaveDC 0x001E
ScaleViewportExt 0x0412
ScaleWindowExt 0x0410
SelectClipRegion 0x012C
SelectObject 0x012D
SelectPalette 0x0234
SetTextAlign 0x012E
SetBkColor 0x0201
SetBkMode 0x0102
SetDibToDev 0x0d33
SetMapMode 0x0103
SetMapperFlags 0x0231
SetPalEntries 0x0037
SetPixel 0x041F
SetPolyFillMode 0x0106
SetRelabs 0x0105
SetROP2 0x0104
SetStretchBltMode 0x0107
SetTextAlign 0x012E
SetTextCharExtra 0x0108
SetTextColor 0x0209
SetTextJustification 0x020A
SetViewportExt 0x020E
SetViewportOrg 0x020D
SetWindowExt 0x020C
SetWindowOrg 0x020B
StartDoc 0x014D
StartPage 0x004F

For example, the LineTo record stores information that is passed to the LineTo() GDI function. The LineTo() function draws a line from the current point to the coordinates specified in the record data. Assuming the line is to be drawn to location 100,50, the data in the LineTo record would appear as follows:

Size           5        /* Five WORDs in the file */
Function       0x0213   /* LineTo function number */
Parameters[0]  50       /* Y Coordinate */
Parameters[1]  100      /* X Coordinate */

This data would be read from the metafile and passed to the LineTo() GDI functions as such (the hDC handle is not stored in the metafile):

LineTo(hDC, 100, 5);    

Several record formats deviate from the basic record format by containing a data structure, rather than a data array, in the Parameters field. These records are:

Record Name Function Number
AnimatePalette 0x0436
BitBlt 0x0922
CreateBitmap 0x06FE
CreateBitmapIndirect 0x02FD
CreateBrush 0x00F8
CreateBrushIndirect 0x02FC
CreateFontIndirect 0x02FB
CreatePalette 0x00F7
CreatePatternBrush 0x01F9
CreatePenIndirect 0x02FA
CreateRegion 0x06FF
DeleteObject 0x01F0
DibBitblt 0x0940
DibCreatePatternBrush 0x0142
DibStretchBlt 0x0B41
DrawText 0x062F
Escape 0x0626
ExtTextOut 0x0A32
Polygon 0x0324
PolyPolygon 0x0538
Polyline 0x0325
TextOut 0x0521
StretchBlt 0x0B23
StretchDIBits 0x0F43

For example, the BitBlt record is used to store bitmap data in a metafile. The BitBlt record stores a Device Dependent Bitmap (DDB) in its Parameters field. A DDB is a simple header followed by uncompressed bitmap data. The entire BitBlt record in a Windows 2.x metafile will have the following format:

typedef struct _BitBltRecord
{
    DWORD     Size;             /* Total size of the record in WORDs */
    WORD      Function;         /* Function number (0x0922) */
    WORD      RasterOp;         /* High-order word for the raster operation */
    WORD      YSrcOrigin;       /* Y-coordinate of the source origin */
    WORD      XSrcOrigin;       /* X-coordinate of the source origin */
    WORD      YDest;            /* Destination width */
    WORD      XDest;            /* Destination height */
    WORD      YDestOrigin;      /* Y-coordinate of the destination origin */
    WORD      XDestOrigin;      /* X-coordinate of the destination origin */
    /* DDB Bitmap */
    DWORD     Width;            /* Width of bitmap in pixels */
    DWORD     Height;           /* Height of bitmap in scan lines */
    DWORD     BytesPerLine;     /* Number of bytes in each scan line */
    WORD      NumColorPlanes;   /* Number of color planes in the bitmap */
    WORD      BitsPerPixel;     /* Number of bits in each pixel */
    RGBTRIPLE Bitmap[];         /* Bitmap data */
} BITBLTRECORD;

The bitmap data itself is stored as an array of RGBTRIPLE structures:

typedef struct _RGBTriple
{
    BYTE Red;
    BYTE Green;
    BYTE Blue;
} RGBTRIPLE;

Note that DDB bitmap found in Windows 2.x WMF BitBlt records is not compatible with Windows 3.0 and later. Windows 3.0 created the DibBitBlt record to store a Device Independent Bitmap (DIB) rather than a DDB. A DibBitBlt record has the following format:

typedef struct _DibBitBltRecord
{
    DWORD   Size;             /* Total size of the record in WORDs */
    WORD    Function;         /* Function number (0x0940) */
    WORD    RasterOp;         /* High-order word for the raster operation */
    WORD    YSrcOrigin;       /* Y-coordinate of the source origin */
    WORD    XSrcOrigin;       /* X-coordinate of the source origin */
    WORD    YDest;            /* Destination width */
    WORD    XDest;            /* Destination height */
    WORD    YDestOrigin;      /* Y-coordinate of the destination origin */
    WORD    XDestOrigin;      /* X-coordinate of the destination origin */
    /* DIB Bitmap */
    DWORD   Width;            /* Width of bitmap in pixels */
    DWORD   Height;           /* Height of bitmap in scan lines */
    DWORD   BytesPerLine;     /* Number of bytes in each scan line */
    WORD    NumColorPlanes;   /* Number of color planes in the bitmap */
    WORD    BitsPerPixel;     /* Number of bits in each pixel */
    DWORD   Compression;      /* Compression type */
    DWORD   SizeImage;        /* Size of bitmap in bytes */
    LONG    XPelsPerMeter;    /* Width of image in pixels per meter */
    LONG    YPelsPerMeter;    /* Height of image in pixels per meter */
    DWORD   ClrUsed;          /* Number of colors used */
    DWORD   ClrImportant;     /* Number of important colors */
    RGBQUAD Bitmap[];         /* Bitmap data */
} DIBBITBLTRECORD;

The bitmap data itself is stored as an array of RGBQUAD structures:

typedef struct _RGBQuad
{
    BYTE Red;
    BYTE Green;
    BYTE Blue;
    BYTE Reserved;
} RGBQUAD;

One other function-specific metafile record that deserves attention is Escape. The Windows 3.x API supports 64 different printer escape sequences that may be embedded into a WMF metafile. The actual sequences available will vary depending upon the printer driver(s) currently installed it the Windows environment. The use of printer escapes is discouraged, as including one or more Escape records in the WMF file makes the metafile data device-dependent.

One of the most common Escape records is MFCOMMENT. The WMF format does not directly support the insertion of human-readable text. The MFCOMMENT printer sequence is therefore used insert a string (or other private data) up to 32K in size into a metafile. There may be multiple Escape records stored in a metafile.

Consult the Microsoft Windows Programmer's Reference, Volume 2, for the internal structure of each function-specific metafile records.

Several GDI function calls were added or had their parameters changed with the release of Microsoft Windows 3.0. GDI function calls in this category include:

AnimatePalette
BitBlt
CreatePalette
CreatePatternBrush
DeleteObject
DibBitBlt
DibCreatePatternBrush
DibStretchBlt
RealizePalette
ResizePalette
StretchBlt

Note that not all GDI function calls can appear in a metafile. The only calls that are valid are those that take a handle to a device context as their first parameter. A complete list of all of the GDI function calls is documented in Microsoft Windows Programmer's Reference, Volume 2. They are also found in the WINDOWS.H header file. These GDI function calls are the directives that begin with the characters META. There are more than 70 different GDI function calls defined for Windows 3.x.

Enhanced Metafile Records

Enhanced metafiles also have an enhanced metafile record structure. When compared to standard metafile records you will see that all three fields are now 32-bit DWORDs and the positions of the Size and Function fields are exchanged:

typedef struct _EnhancedMetaRecord
{
    DWORD Function;      /* Function number (defined in WINGDI.H) */
    DWORD Size;          /* Total size of the record in WORDs */
    DWORD Parameters[];   /* Parameter values passed to GDI function */
} EMFRECORD;

Function is the GDI number of the function called to playback this record. In the Win32 SDK these values identified by the EMR_* definitions in the WINDOWS.H header file.

Size is the total size of the records in BYTEs, including the Size and Function fields. The minimum possible size for a record is 8.

Parameters is an array of the parameters used by the GDI function specified by this record. The parameters are stored in the reverse order in which they are passed to the function. For example, the two parameter values of the LineTo record are passed to the LineTo() function in the order of X and Y, but stored in the record as Y and X.

An EMF file is composed entirely of EMF records. Of the 97 record types presently defined for EMF files, at least two records must be present in every file. These are the header record (record type 1) and the End Of File record (record type 14).

Here are the function identifiers for all 97 EMF records. If you need to add EMF file capability to your software, then you must obtain a copy of the Microsoft documents that describe these Win32 API functions.

Record Value Record Value
EMR_ABORTPATH 68 EMR_POLYLINE 4
EMR_ANGLEARC 41 EMR_POLYLINE16 87
EMR_ARC 45 EMR_POLYLINETO 6
EMR_ARCTO 55 EMR_POLYLINETO16 89
EMR_BEGINPATH 59 EMR_POLYPOLYGON 8
EMR_BITBLT 76 EMR_POLYPOLYGON16 91
EMR_CHORD 46 EMR_POLYPOLYLINE 7
EMR_CLOSEFIGURE 61 EMR_POLYPOLYLINE16 90
EMR_CREATEBRUSHINDIRECT 39 EMR_POLYTEXTOUTA 96
EMR_CREATEDIBPATTERNBRUSHPT 94 EMR_POLYTEXTOUTW 97
EMR_CREATEMONOBRUSH 93 EMR_REALIZEPALETTE 52
EMR_CREATEPALETTE 49 EMR_RECTANGLE 43
EMR_CREATEPEN 38 EMR_RESIZEPALETTE 51
EMR_DELETEOBJECT 40 EMR_RESTOREDC 34
EMR_ELLIPSE 42 EMR_ROUNDRECT 44
EMR_ENDPATH 60 EMR_SAVEDC 33
EMR_EOF 14 EMR_SCALEVIEWPORTEXTEX 31
EMR_EXCLUDECLIPRECT 29 EMR_SCALEWINDOWEXTEX 32
EMR_EXTCREATEFONTINDIRECTW 82 EMR_SELECTCLIPPATH 67
EMR_EXTCREATEPEN 95 EMR_SELECTOBJECT 37
EMR_EXTFLOODFILL 53 EMR_SELECTPALETTE 48
EMR_EXTSELECTCLIPRGN 75 EMR_SETARCDIRECTION 57
EMR_EXTTEXTOUTA 83 EMR_SETBKCOLOR 25
EMR_EXTTEXTOUTW 84 EMR_SETBKMODE 18
EMR_FILLPATH 62 EMR_SETBRUSHORGEX 13
EMR_FILLRGN 71 EMR_SETCOLORADJUSTMENT 23
EMR_FLATTENPATH 65 EMR_SETDIBITSTODEVICE 80
EMR_FRAMERGN 72 EMR_SETMAPMODE 17
EMR_GDICOMMENT 70 EMR_SETMAPPERFLAGS 16
EMR_HEADER 1 EMR_SETMETARGN 28
EMR_INTERSECTCLIPRECT 30 EMR_SETMITERLIMIT 58
EMR_INVERTRGN 73 EMR_SETPALETTEENTRIES 50
EMR_LINETO 54 EMR_SETPIXELV 15
EMR_MASKBLT 78 EMR_SETPOLYFILLMODE 19
EMR_MODIFYWORLDTRANSFORM 36 EMR_SETROP2 20
EMR_MOVETOEX 27 EMR_SETSTRETCHBLTMODE 21
EMR_OFFSETCLIPRGN 26 EMR_SETTEXTALIGN 22
EMR_PAINTRGN 74 EMR_SETTEXTCOLOR 24
EMR_PIE 47 EMR_SETVIEWPORTEXTEX 11
EMR_PLGBLT 79 EMR_SETVIEWPORTORGEX 12
EMR_POLYBEZIER 2 EMR_SETWINDOWEXTEX 9
EMR_POLYBEZIER16 85 EMR_SETWINDOWORGEX 10
EMR_POLYBEZIERTO 5 EMR_SETWORLDTRANSFORM 35
EMR_POLYBEZIERTO16 88 EMR_STRETCHBLT 77
EMR_POLYDRAW 56 EMR_STRETCHDIBITS 81
EMR_POLYDRAW16 92 EMR_STROKEANDFILLPATH 63
EMR_POLYGON 3 EMR_STROKEPATH 64
EMR_POLYGON16 86 EMR_WIDENPATH 66

Color Palette

EMF files may also contain an optional color palette used to render the EMF drawing. By comparison, WMF files do not store a color palette and instead use the default Windows foreground palette.

The NumPalEntries field in the EMF header will indicate the number of entries in the palette and will have a value of zero if no palette is present. The color palette, if present, will be stored in the End Of File record. The EOF record is always the last record stores in an EMF file and has the following format:

typedef struct _EndOfRecord
{
    DWORD  Function;        /* End Of Record ID (14) */
    DWORD  Size;            /* Total size of the record in WORDs */
    DWORD  NumPalEntries;   /* Number of color palette entries */
    DWORD  OffPalEntries;   /* Offset of color palette entries */
    PALENT Palette[];       /* The color palette data */
    DWORD  OffToEOF;        /* Offset to beginning of this record */
} ENDOFRECORD;

Function is the function number of this record. For EOF records this value is always 14.

Size is the total size of this record in bytes. For an EOF record that does not contain a color palette this value will be 20.

NumPalEntries is the number of color palette entries. This value will correspond the value of the NumPalEntries field in the EMF header. A value of zero indicates no color palette is present.

OffPalEntries indicates the position of the first color palette entry. The offset is measured from the beginning of the EOF record.

Palette is the color palette data stored as an array of PALENT structures. This field is not present in the EOF record if a color palette is not present.

OffToEOF indicates the byte offset back to the beginning of the EOF record. This field is located after the color palette data (if any) and always contains the same value as the Size field.

Each entry in the color palette is four bytes in size and has the following format:

typedef struct _PaletteEntry
{
    BYTE Red;       /* Red component value */
    BYTE Green;     /* Green component value */
    BYTE Blue;      /* Blue component value */
    BYTE Flags;     /* Flag values */
} PALENT;

Red, Green, and Blue contain the color component values for the 24-bit color palette entry.

Flags contains a bitfield of flags use to indicate the usage of the palette entry. Values for this field are:
0x01 Palette index used for animation
0x02 Palette index is explicit to device
0x04 Do not match color to system palette

GDI Comment

One very nice feature of the EMF format is the ability to embed private data within an EMF file. Unlike the WMF printer escape comment, the GDI comment may contain any type of data and is completely device independent.

The GDICOMMENT record has the following format:

typedef struct _GdiCommentRecord
{
    DWORD   Function;      /* GDI Comment ID (70) */
    DWORD   Size;          /* Total size of the record in WORDs */
    DWORD   SizeOfData;    /* Size of comment data in bytes */
    BYTE    Data[];        /* Comment data */        
} GDICOMMENTRECORD;

Function is the function number of this record. For GDI Comment records this value is always 70.

Size is the total size of this record in bytes. For an GDI comment record that does not contain any data this value will be 12.

SizeOfData is the number of bytes in the Data field.

Data is the GDI Comment data. The data may be strings, Encapsulated PostScipt, or an enhanced metafile.

Each GDI Comment record may store one or more types of comment data. The Metafile comment stores a single metafile. The BeginGroup and EndGroup comments store a collection of enhanced metafile objects and description strings. And the Multiformats comment stores multiple enhanced metafiles and Encapsulated PostScript data.

GDI Comments should never contain any application-specific data, as this would make the enhanced metafile device dependent. Comment data should also not store the offset position of any other data in the file. It is possible that records will be added or removed to the metafile causing the offset values to then be invalid.

The Metafile comment is a header followed by an enhanced metafile. The header has the following format:

typedef struct _GdiCommentMetafile
{
    DWORD Identifier;       /* Comment ID (0x43494447) */
    DWORD Comment;          /* Metafile ID (0x80000001) */
    DWORD Version;          /* Version of the metafile */
    DWORD Checksum;         /* Checksum value of the metafile */
    DWORD Flags;            /* Flags (always 0) */
    DWORD Size;             /* Size of the metafile data in bytes */
} GDICOMMENTMETAFILE;

Identifier contains a value of 0x43494447 identifying this structure as a GDI public comment.

Comment contains a value of 0x80000001 identifying this structure as a metafile comment.

Version is the version of the metafile. This value is typically 0x00000001.

Checksum is the checksum value of the metafile data.

Flags is not presently used and is always 0.

Size is the number of bytes in the metafile data.

The BeginGroup and EndGroup comments contain one or more EMF drawing objects. The BeginGroup comment starts the list, followed by all EMF records, and is completed by the EndGroup comment. Such groups may be nested. The format of the BeginGroup header is as follows:

typedef struct _GdiCommentBeginGroup
{
    DWORD Identifier;       /* Comment ID (0x43494447) */
    DWORD Comment;          /* BeginGroup ID (0x00000002) */
    LONG  BoundsLeft;       /* Left side of bounding rectangle */
    LONG  BoundsRight;      /* Right side of bounding rectangle */
    LONG  BoundsTop;        /* Top side of bounding rectangle */
    LONG  BoundsBottom;     /* Bottom side of bounding rectangle */
    DWORD SizeOfDescrip;    /* Number of characters in the description */     
} GDICOMMENTBEGINGROUP;

Identifier contains a value of 0x43494447 identifying this structure as a GDI public comment.

Comment contains a value of 0x00000002 identifying this structure as a BeginGroup comment.

BoundsLeft, BoundsRight, BoundsTop, and BoundsBottom define the bounding rectangle of the picture.

SizeOfDescrip is the number of Unicode characters in the description string. This string, if present, will always immediately follow this header. If this value is zero then there is no description string present.

The EndGroup comment contains only a header and no data. The header has the following format:

typedef struct _GdiCommentEndGroup
{
    DWORD Identifier;       /* Comment ID (0x43494447) */
    DWORD Comment;          /* EndGroup ID (0x00000003) */
} GDICOMMENTENDGROUP;

Identifier contains a value of 0x43494447 identifying this structure as a GDI public comment.

Comment contains a value of 0x00000003 identifying this structure as a EndGroup comment.

The Multiformats comment is used to store metafile and Encapsulated PostScript (EPS) picture data. This comment begins with a header followed by one or more pictures. The format of a Multiformats comments header is as follows:

typedef struct _GdiCommentMultiFormats
{
    DWORD Identifier;       /* Comment ID (0x43494447) */
    DWORD Comment;          /* Multiformats ID (0x40000004) */
    LONG  BoundsLeft;       /* Left side of bounding rectangle */
    LONG  BoundsRight;      /* Right side of bounding rectangle */
    LONG  BoundsTop;        /* Top side of bounding rectangle */
    LONG  BoundsBottom;     /* Bottom side of bounding rectangle */
    DWORD NumFormats;       /* Number of formats in comment */
    EMRFORMAT Data[];       /* Array of comment data */
} GDICOMMENTMULTIFORMATS

Identifier contains a value of 0x43494447 identifying this structure as a GDI public comment.

Comment contains a value of 0x40000004 identifying this structure as a Multiformats comment.

BoundsLeft, BoundsRight, BoundsTop, and BoundsBottom define the bounding rectangle of the picture.

NumFormats is the number of EMRFORMAT structures in the data.

Data contains one or more EMRFORMAT structures followed their associated data. Each structure identifies the type of comment data, its size and location in the record.

typedef struct _EmrFormat
{
    DWORD Signature;    /* Format signature */
    DWORD Version;      /* Format version number */
    DWORD Data;         /* Size of data in bytes */
    DWORD OffsetToData; /* Offset to data */
} EMRFORMAT;

Signature is the data format identifier. A value of 0x464D4520 indicates an enhanced metafile, and a value of 0x46535045 indicates an Encapsulated PostScript file.

Version is the version level of the data. For EPS data this field will hold the EPS version number. For an enhanced metafile this value of this field will be 0x00000001.

Data is the size of the data associated with this structure in bytes.

OffsetToData is the byte offset of the beginning of the data. The offset is measured from the beginning of the Comments field in the GDICOMMENTMULTIFORMATS record structure.

For Further Information

For further information about the Microsoft Windows Metafile and Enhanced Metafile formats, see the specification included on the CD-ROM that accompanies this book. You may also obtain information by contacting Microsoft at:

Microsoft Corporation
One Microsoft Way
Redmond, WA 98052-6399
Voice: 206-882-8080
FAX: 206-936-7329
BBS: 206-637-9009
WWW: http://www.microsoft.com/
FTP: ftp://ftp.microsoft.com/

Additional information about the Windows Metafile and Enhanced Metafile Format and the Microsoft Windows Graphics Device Interface can also be found in the following references:

Swan, Tom, Inside Windows File Formats, Sams Publishing, Indianapolis, IN, 1993.

Microsoft Corporation, Microsoft Windows: A Guide to Programming, Microsoft Windows Programmer's Reference Library, Microsoft Press, Redmond, WA, 1990.

Microsoft Corporation, Microsoft Windows: Programmer's Reference, Volume 4: Resources, Microsoft Windows Programmer's Reference Library, Microsoft Press, Redmond, WA, 1990.

Microsoft Corporation, Microsoft Windows: Programming Tools, Microsoft Windows Programmer's Reference Library, Microsoft Press, Redmond, WA, 1990.

The Microsoft Windows Programmer's Reference Library is the master reference for programmers working with all aspects of Microsoft Windows. The books in this library are supplied with the Microsoft Windows Software Development Kit (SDK). The manuals supplied with the Visual C++ 4.0 Professional Development Systems are also very helpful. You can get information about obtaining these products from:

Microsoft Information Center
Voice: 800-426-9400

The Microsoft Developers Network (MSDN) distributes several files containing information on the WMF and EMF formats. These files may be found on the MSDN CD, or on the Microsoft Web site at:

http://www.microsoft.com/Softlib/MSLFILES/ENMETA.EXE

This archive contains sample Windows code to manipulate EMF files. Two sample EMF files are included.

http://www.microsoft.com/Softlib/MSLFILES/METAFILE.EXE

This archive contains the METAFILE.HLP help file that describes the WMF file format.

http://www.microsoft.com/Softlib/MSLFILES/PLAYMETA.EXE

This archive contains sample Windows code to manipulate WMF files

http://www.microsoft.com/developr/MSDN/OctCD/EMFDCO.ZIP

This archive contains the Windows source code for the EMF decoding utility.

http://www.microsoft.com/developr/MSDN/OctCD/ENHMET.ZIP

This archive contains the ENHMETA.HLP help file that describes the EMF file format.

http://www.microsoft.com/developr/MSDN/OctCD/METAFI.ZIP

This archive contains the METAFI.HLP help file that describes the WMF file format.


Copyright © 1996, 1994 O'Reilly & Associates, Inc. All Rights Reserved.

libwmf-0.2.13/doc/caolan/pics/000077500000000000000000000000001441723000300160075ustar00rootroot00000000000000libwmf-0.2.13/doc/caolan/pics/Makefile.am000066400000000000000000000001741441723000300200450ustar00rootroot00000000000000wmfonedocdir = @WMF_DOCDIR@/caolan wmfonepicdir = $(wmfonedocdir)/pics wmfonepic_DATA = weave.jpg EXTRA_DIST = weave.jpg libwmf-0.2.13/doc/caolan/pics/Makefile.in000066400000000000000000000360051441723000300200600ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2018 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@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/caolan/pics ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/wmfconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(wmfonepicdir)" DATA = $(wmfonepic_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FREETYPE_CONFIG = @FREETYPE_CONFIG@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_DIR = @GDK_PIXBUF_DIR@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GD_DEFS = @GD_DEFS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBWMF_BUILDSTYLE = @LIBWMF_BUILDSTYLE@ LIBWMF_PACKAGE = @LIBWMF_PACKAGE@ LIBWMF_RELEASE = @LIBWMF_RELEASE@ LIBWMF_VERSION = @LIBWMF_VERSION@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_LITE_AGE = @LT_LITE_AGE@ LT_LITE_CURRENT = @LT_LITE_CURRENT@ LT_LITE_REVISION = @LT_LITE_REVISION@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_LIBM = @SYS_LIBM@ VERSION = @VERSION@ WMF_CFLAGS = @WMF_CFLAGS@ WMF_CONFIG_CFLAGS = @WMF_CONFIG_CFLAGS@ WMF_DEFS = @WMF_DEFS@ WMF_DOCDIR = @WMF_DOCDIR@ WMF_FONTDIR = @WMF_FONTDIR@ WMF_GS_FONTDIR = @WMF_GS_FONTDIR@ WMF_GS_FONTMAP = @WMF_GS_FONTMAP@ WMF_LIBFLAGS = @WMF_LIBFLAGS@ WMF_SYS_FONTMAP = @WMF_SYS_FONTMAP@ WMF_XTRA_FONTMAP = @WMF_XTRA_FONTMAP@ XMKMF = @XMKMF@ XML2_CONFIG = @XML2_CONFIG@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wmfonedocdir = @WMF_DOCDIR@/caolan wmfonepicdir = $(wmfonedocdir)/pics wmfonepic_DATA = weave.jpg EXTRA_DIST = weave.jpg all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/caolan/pics/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/caolan/pics/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-wmfonepicDATA: $(wmfonepic_DATA) @$(NORMAL_INSTALL) @list='$(wmfonepic_DATA)'; test -n "$(wmfonepicdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(wmfonepicdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(wmfonepicdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(wmfonepicdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(wmfonepicdir)" || exit $$?; \ done uninstall-wmfonepicDATA: @$(NORMAL_UNINSTALL) @list='$(wmfonepic_DATA)'; test -n "$(wmfonepicdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(wmfonepicdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(wmfonepicdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-wmfonepicDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-wmfonepicDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip install-wmfonepicDATA installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-wmfonepicDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libwmf-0.2.13/doc/caolan/pics/weave.jpg000066400000000000000000000155671441723000300176360ustar00rootroot00000000000000ÿØÿàJFIFÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷Sœd(o|ÒüÞ€}NiLmQŸSAëË(ÇlP“ü_¢Ñ¸øÿ€Ò’ñ7çFâ½­!Ç<Ê~‚åSNϹ˜ô xëŠ 8ûÙúŒP7Š£ž´™Ï'ž('œ˜ØŸcJaʺÿÀ©7)=8úQ•ã ÇÚ€iG#9ÏÕi>`yP{š\óÔŸa@;ícFoÇ4œ)ûÄRðGûдç?iy¦>”ÜdŒ–>àP6gž«@K6n=ù£÷yääþTmƒ´0÷»¹À\~˜Rs×êÔ¼g·ài2ÇéA磨ômbzŒ´iÎ>QŽÿ7»8.¤ûÒŸNHúÐ{àmÛ“Nù‡qFWŒnZM£“…cõ Ûœd)úÑŽ1€?ݤÚ:–è(ú1oå@SýÚ]¬?úóI´v¯âhؽ£S@yÃg¥ dÎGÖ—nû£Úœ7ú~T÷£ßT&Ç˱Gû¤T ­!fî3øÐÛïO¯ZL~qÓÒ”î¨üsHqÝqîE=¶óþÍ)òdlzH*õþ#éŠQÏBAûÌOµ!äsŸÊ€:á_ò àq·CŠQ‘ÿ,±îNi~`?ˆ¥±÷œþ"€Içi¤í?.=¸½yšLcøA>€{ Cš9';€úщ;€?ltSŽäЂ1ó}¨Áÿžmõ“ž0¹?ìœQ´žJõ<ÐT÷Cì7Ò“o©¤!G÷¿*PsÓëÁ ,z/çIŽF[ðÅ/NÍùÒe@Çõ c ü!çøAúŒÒ¤äO¥¶žHQì(O”•T{ R½LŒ=–”dôçÜŠv}1ùf€0G Ø÷ ìõß§8äúŠBÍŽñí@ 2:ÿ£sÐ}sI´ç,À}¥üHúŠBr2稥žqøšBÊ:±üñ@;†zýy †=A€x@?àT§v1…ÇÒŒcÐûŠC…êÇð¥ùqò†Ï°æ“=‹ÿriGN>Ù ¯ûJ¿AF9Îö4cåüiztÁúµÇO¸™#·>—¿oÀÐwu{Š9ìÄ}M!ÏáîÝirqËçð4™ôÁ4žVöÎh`?p/ÐRå¥`zﺀõSõ4 zãþI¹AÏ û¶( ž®¿ƒPÁ=?B(î* 7/A!ϧZ]¤ó¿?†( ¿0ãÐqI¾0?‰§ò2zþ4›ÝÎh¹“æ~"”ÙÈËϦMÉêß­/Íܘ¥×ò¦ e†\þ±4ÿ×J7@?'ÌGǘ“ºÿãÙ *yÜ»³ïH7ŒƓ®}…(#vB±Ï~Ôc¹äû”­¿¹Å“œøR`çë@ÏŒ–OÄÐþúþ›”sÊqÛi§àß•.9=~´…òp ü'9ùWëƒK‚0Nü € ñ÷ˆúŠÿhŠ3ŽÕ¨ù{…>ÀP<áÔþ  Ç„û ÿ¦dý)Á§á@Âÿ{ó¤ÈþûÆ…?êÀúRŽ9çþú iì{ŠOG øÒeIÀ~}2)yÝ÷‡å@V©ÏÖ“ žfǶ)qØÒpúµö @ÞäÒŒã‚ÓšBÜ@'ÑhÇrÍÿ|″ã޾¤P7` 'ÐAõb>´Ø« 8ã?€xÁCøš±œ{Rûn#ð *ƒï(ð*\ŒŒgð4ƒ±õaKÉU¿ 2ÝŽûF1Ç, öý•ãÒ—æÏ!—èEýÞ}èÿ¾GáFHëúŠBIãk¥'ßñÅ?„~4¹Ú~£4Ò»ã©àû»@õÍ·>ccð£nGéŠnÞ^€TžOûÆŽ‹Û>Ô˜\çgâN(w õjRYº? 0}TqšBËв}3GËžŸ¥.¦A9þŠ@Ñ’ãðRrþ4`c£-’3øQ•ðh}ö¥2ÐøPwäü²Ž?Ù¥Ÿãsô½Ï°÷Ò2yUcí@ •f‚SÎ(ç*¤{Qò…AŸ¥ÆÐ¿R(ÎxÞ¿£xÞàf”ä÷qÿFy“#Ð@eÝÃÀqJ1Ù‹~Ì:tôÅ ‘Gñ‚}¨$1韩¥ÞsÑ϶Ú2ÄpŒPmÏHÓêM)Àïøv¤Ãóªû|Ù£düçØ@ Ûï(Ô1Ë΂[ûõÀ4ø Ÿ¥.þ>ÙÍ'QÊ=ø¥ÁÇØR)Ë)ÉìNhÂöŒŸ¡ dvÄRnõW¥Žœ{ç4r>öÞ}é~|ƒµ¿:BI{?U !Ï%öZ7‘Ô6}  §#¼©ûìO Q@fÏ̤~€7P€zÔ½ù4ÒAçîûàÒöáÆ>”~>¬3GœÇø-8ûüúâŒ1»wÓŠ\ñ¹÷“yÉÚ¹?J_›?wój>|ýÌ{änÖ=PçØÒóžŽ? ÐIÏ%‡á@Æ>ùâ€q^¬*Aë‰?»¿::ž~t`tàþ4ÒG+Æ€‚‰×ÜÒeznÈ÷£œá³îiI*>þ? 7q…le¤Éßo¨ q—ü©Jç¡Ï=  Ëÿ c>¢Œ69+ÿ}Q‚døæŒzlZRÄuÎ)¿t·ÔÒí=v†úšN‡,@ô€1÷Põ éúÐB¹?Z0¸É>æ€ à»Ÿ­ç…ϾsN%»7à)0Iù°|šOçèiI ŒJ£Ûni7.0Ÿ§47pg¾(Û®}é70ëGÊ:œÒo@|úãëŠCŒ RNiw~þ>¢Œ€Ï»ÓŒP: “Ü R[8ÁJC°âC@¨ãë“@ ó{ãKQœó¸þ÷‡nF[ô£$àë@WîGüqJ3ŽŠhÿjDϵ(ÛŸSë@õPÖŒä•Qõ¥ùGb­4²vn@ ¸g ß­;æÇ¯éM'·ò 8òÂç¹ Æ$}Ô„ ÿkêhÀ#'Üw¥|˜?JN[`£Ð \ÓwáA#=¿I•Ç€Räýhùs¯׭.Ð3ò¨£§ ú 8ìÒ”$ŸÄRí?_­#ª§ó ç-…#ëNÇ©ÉúRdpp£ð žxñ ju<Ÿ­.ï¦=s@Þ øQÊ€9åvšS¸g PW=Kn1@]½ÆhaÎ:÷¤pA¥,ßì} Òþˆ>‡4 ßÞ{R,Oµ竱ü8¥ÉÏÖ€(p1“J t“qÈÉ?…)Î;þtr9Γž¹ÉÏ¥.xûØüé2½Ûò8 Ü}?\Ò|ìzqëšPÙSHOr0(~~»”§4„Ž8ÉõÅ –Ž=˜æ—ð?‰ ?|¨£ñ_  dð(ÚÞˆ­ûúѼcïûäÑ•,}¨Ïl†ž»‰öÅ4HýiK`cï~”1ô?÷Í Ïð®}Á¥Ãuo—ñÉ œõó?ãðÍ#¿þ;MÆ8ùºÿ§aAÎFh¿M´‡nqå®Oû4à1Ÿ½ùÒäŽÆ€‘×ùÐ aÔb“Âõ46ìtún pìV3Ÿ¾¸õͶU*ýÑôZ}üþT¼ž¨ü)3–Á+÷ix<@àuŠÐ7ÿ±aŠMªFqÈþð †õQøP–É<ÿ½Mäõp>” ï?JQÐå°}ň¿ˆ¤äààÀ/ ä¯âM7¡?JN=?J^™ü¨ïÈoÊ¿ï@óŸâühÆzþ†“$pªßSKÔœýhÜGñ=èÀÎx'×4›Àèò£p8é“è(8'?€&…ÚTÿµ‘üé~aÑ[¹Å9b>­@'äÇÐÐFNLgê ' IºzšXcï úÐð3Ç_z “ÉÇ`Ôœ‘ßø ÒÏü´ü@  ¸ û¶hz)4SÀBù4Ò±ŽªéÅ;ýÏÇm ŽÊ2=E'Q»þú&—#9‘õ =x3ôÍÔ5 ôÜ1ÙE.y/øÐõçn?LgªŸÎƒ‚yð4¤ÎÌÐÉ?y¿*Bqül>‹F1Õ‰>—çþ\P+d¬?<ãqú\°qÉÏ¥㻯á@ ÄPA?ÂGãIÃqç¹AN 6âã¹Å§ãš7qÆMPߣƒÜlЖ=J ìC ¤ß“€@úÒüäªE7å‡ü—¦z“ì1Fq•Ëþtg<ÿÀš€›Ó9÷ Ÿ(ŽisÉúb“OÒ€pwŸÆŒÿxúPOP6 M¹å™° °$~´r ¸ûñIµñ¸\ÒŸùhÿL qVÇ-·è3IŽ8ËsŠ0?ºxî[§Ó?ïP‚q…qШüi6w þ AÚ0 ?C@ ÀÏÍô¡‰Šjão ¿\Òç#®}….sÆóø @Ûs‚ÍJU‰ä¦hÁÊýhÜO\þT;ù@Äc¾¸4§-Á$û(ÜäàŸ­(,ã‚õ#Š0Àpª¿ZCÉÁÃ{ ^™B}vÑߨü©Fq÷G°mÇ;ˆ>ô™_|{R»‘õ4í¬yßúb—<ä0ü¨€ åYŽ{â—°;˜R’Û==b0»!è@ÞÞØ/u‡ÐÒó‘ômã¿Ó4Žïÿj\ â“ã¡úfŽ?¼Ô¹QIß••.=×ñ¤$/R¸j\ŸoÅM/p¤ý(Þù_ó9£êWð ü*>´™êIö£?ysþí.IéƒøÐc£íƒK´žä­@µ&q´Ÿ­/¦ãHHçs úQ”ƒÛ¥8Áü ü$}1F6ãéK¸Œ £‘ýßÊ€3’ÎÇО)xmüép[–ý8£…à>¦€‘ž¯e¥Ëw}i¸$ü¸9ô¥ÀAÏ­ëÈÅsúÒeOÝ#ùRÎzŸPh3‘÷›>‚”ã“óæ—,ïÒ““Ž9÷ çw •úR—¡f?JS>`¸ö¤Ê‘ÒEÆ€ƒíõ4^¡>¤Ò–\üE'-’늎»³êM_T"”=IÏû4áӿ⢀ €ûpiNÞl}Zާïʇ=ÔzÎ6°Å.Ày$þT€£s/ÐPqèÖ€i >ÀÐAÇ*Ÿ‰¤ÂŸþµ …êYxü¨qGà´lûÏúRîÀjBr:ã´¼ç„8õ¥~=!Ü:•ÅãŒ@ç¬?^OCùð)¿9?y?ï£@8àgêØ¥ÀÏSôÎhÚ{å¿LmÆÿ 0EqÊŸ¦ú_›øF(Ä ÿüh1·ðƒŽ®»\°ãpú 7`dŸÒ€@ (§š\z>‚šNpOÑx§ª@=I?P(ùÀüñHvó»åúSv.Ö“¯RÔóÁä±>ËM.½:{b½<ÏÅ©|ÝGå@ö- ÝWØÓ‰c÷p)¿?¢þõ¿ÚϾÊC OÒ–èsŸnirqÊ“øP qŸÊ‚Iö¤8þ(Çåš^}Ê€qÏÞü¤9?Ãÿb€´`} !/·õ æ=BßY¥ñ´} +Žþí.=¾”mç;ñøRáûàýhÀô€£®ÏÒ€žyÚ~´ÓŒrp¡¥ê2AÜÒe9ÃÄf€¬³øƒOÜsŒ1N)CÌü© #‚Ê( §VSùâ·°ü›`Ó<{ŒÒü§¨O° Ús’ûn çlaG¹£hîÿR•©'Ûµ7'?3àã¦iBŽäŸøi«€F2¼Ï¥?ÿ|þ”™'8ãÞ¬?‡ñÝA+ž¥ôÈ ûдƒ÷[ðjRJŒ“§&Ž=>´ƒ rþf€Êå·Ÿ¯€Gœ…çÔ“G¹bniÇ?ß úfŽì1ÿÍެqH2zd~dÈOÖ—ç=N( Ÿ¼~”Ш:"@(z—o¦AëÏáŠBª~÷CFÔë–?S@ žÀøÑŒõcúÒ 8à} £9çs}âôfúHA¦€§¦ò}Í/—þÀ?V ä€ QœŽãM É^}éI`8é@ —ç,¹ôß9Ï¥|ÁFI'æßµ&W89?Z^ùp>´¡0oÊ”<6 úPxë'éK¼ò°úÒ`v®°¥,3÷ÿJ:É?; þt˜°ò4a{Ç4¹öüqFGáô£ œ/?Z0{ª“ëœP¸/ñøb`ÅÁú P1ÝWõ¤*½Lü¨A'°ëI•ïÏÐÐùNê_˜g÷Ÿ÷ÊŠ2Ý•¿Š0Aèsþöi6·rø÷4s‘ÔÀhpO÷ãÅaÕØ{ ®G<ÒdcƒøšV,, } ¦ŒqÊŸø ¥U'{“ìipØþ/ÇœãÀü)Kïçò äÃêÔ|Çœ=… '9&2=ºÒ’ýp1ïC ›? £hÎvþf€`öo®8¤Êg!Gâiüžÿ•ïøPCàðê †ORÇð§n=±ôÅ.ædóè(¡”ýÕϱ¥ätB)I'¯ó¦×h?S@ A?ß_ ¼)à}é¤/qõÃÒnF7í@ù›88÷<Ò`œaÈú-†ççÅüMôÏJÕ™û´›ö¼ËôJxÈïI½²pÿ€Znäa˳~”£`u¿/˜Çª“ïŠ77n&xEüiOO›Û8¤ÆW?ƒPrGü 4aG;ÿR£<¨ú w?ßëHKd«õ . ÀoÍir›º“øÓ²øäÂŒ‘ê nT‘“ŸÂ—äÎq¡£$òTÒädàzb€—»8üiO?òÑ¿*Cë‚Þù ‚F|¶ü Tp]ÇÖ”ï󮧮qب÷æ“èc'Þ€ŒõÙI´£4™çõÚ)AÇ8?J2‹—‚C§ñ¥ÿy¸õoçïdÐ…$ Rîeò£œð!F1“øŒÐp‡ª±÷¥Úvþb”ídŸÀÐ0Ý ~tÙâ0G­&Õ~9 ¢gî)>ô½øPà“þ¬Æ“<«b‹Œ¿£b.àÿ¿@ä¡~‚“,Gß•&9È>‚—¡üñ@ Kçè)¤ž ùÐÜúÐîÁ¿ _˜ž¼{ ;õÊ‚r;þ˜ I!þ´¼žlzî£ûàýi»²2¯¤‚OÎxô °ߥ&ÕÇú¼ý)wÞCøPKmà·å@  @úRÇÝ'è´½:±ü!cü?1ú†q’„À©¨þ"?R¤Ž€Ÿ®hÛÛä…)nà“Iõ'ñ4½òJþT„ÿt7Ô Ðn^íÍ/’N=Ú”1êF8î´¼‘Î1@ åÛø]®~ó(‹Í&Tÿ 4?ê—?íP€Ûአ= Äâ“?wò8¸bzâ€*çýZÇ4¹Aü<ûÐrIñ¤ÝÆ7~\ÐçwÝLÒm Ýý~jR _¼ÿ‰Å&Õê}Ô½1­!+üL>›iTü;àY¤'Ÿõ„} nF(Ç'æqÅøÜÒñêOÔФr¤ýhDÿvƒÀœgëFìänC@ÿÙlibwmf-0.2.13/doc/caolan/rop.html000066400000000000000000000021231441723000300165350ustar00rootroot00000000000000 ROP Support

ROP Support

ROP CODE SUPPORTED
X version gd (gif) version
SRCCOPYXX
MERGECOPYX-
SRCANDX-
NOTSRCCOPYX-
SRCERASEX-
SRCINVERTX-
SRCPAINTX-
NOTSRCERASEX-
MERGEPAINTX-
PATPAINTX-
PATCOPYXX
DSTINVERTXX
PATINVERTXX
BLACKNESSXX
WHITENESSXX

back libwmf-0.2.13/doc/caolan/support.html000066400000000000000000000257651441723000300174720ustar00rootroot00000000000000 Window Metafile (wmf) Reference.

Window Metafile (wmf) Reference

METAFILE OPERAND SUPPORTED
X version gd (gif) version
#define META_SETBKCOLOR 0x0201
X X
#define META_SETBKMODE 0x0102 X X
#define META_SETMAPMODE 0x0103 X X
#define META_SETROP2 0x0104 X -
#define META_SETPOLYFILLMODE 0x0106 X4 -
#define META_SETSTRETCHBLTMODE 0x0107 -3 -3
#define META_SETTEXTCOLOR 0x0209 X X
#define META_SETTEXTCHAREXTRA 0x0108 X4 -
#define META_SETWINDOWORG 0x020B X X
#define META_SETWINDOWEXT 0x020C X X
#define META_SETVIEWPORTORG 0x020D X4 X4
#define META_SETVIEWPORTEXT 0x020E X4 X4
#define META_OFFSETWINDOWORG 0x020F X4 X4
#define META_SCALEWINDOWEXT 0x0410 X4 X4
#define META_OFFSETVIEWPORTORG 0x0211 X4 X4
#define META_SCALEVIEWPORTEXT 0x0412 X4 X4
#define META_LINETO 0x0213 X X
#define META_MOVETO 0x0214 X X
#define META_EXCLUDECLIPRECT 0x0415 X -
#define META_INTERSECTCLIPRECT 0x0416 X -
#define META_ARC 0x0817 X X
#define META_ELLIPSE 0x0418 X X
#define META_FLOODFILL 0x0419 X4 X4
#define META_PIE 0x081A X X
#define META_RECTANGLE 0x041B X X
#define META_ROUNDRECT 0x061C X X
#define META_PATBLT 0x061D X46 X46
#define META_SAVEDC 0x001E X X
#define META_SETPIXEL 0x041F X X
#define META_OFFSETCLIPRGN 0x0220 X -
#define META_POLYGON 0x0324 X X
#define META_POLYLINE 0x0325 X X
#define META_ESCAPE 0x0626 -5 -5
#define META_RESTOREDC 0x0127 X X
#define META_FILLREGION 0x0228 X X
#define META_FRAMEREGION 0x0429 X -
#define META_INVERTREGION 0x012A X4 -
#define META_PAINTREGION 0x012B X4 X
#define META_SELECTCLIPREGION 0x012C X4 -
#define META_SELECTOBJECT 0x012D X X
#define META_SETTEXTALIGN 0x012E X _
#define META_CHORD 0x0830 X X
#define META_SETMAPPERFLAGS 0x0231 -3 -3
#define META_TEXTOUT 0x0521
#define META_EXTTEXTOUT 0x0a32 X
#define META_SETDIBTODEV 0x0d33 X4 X4
#define META_POLYPOLYGON 0x0538 X X
#define META_DIBBITBLT 0x0940 X7 -
#define META_DIBSTRETCHBLT 0x0b41 X7 -
#define META_EXTFLOODFILL 0x0548 X4 X4
#define META_DELETEOBJECT 0x01f0 X X
#define META_CREATEPENINDIRECT 0x02FA X X
#define META_CREATEFONTINDIRECT 0x02FB
#define META_CREATEBRUSHINDIRECT 0x02FC X X
#define META_CREATEREGION 0x06FF X4 X4
#define META_STRETCHDIB 0x0f43 X X
#define META_SETTEXTJUSTIFICATION 0x020A X4 -

These opcodes are not seen in the wild, so realworld instances of these are welcome, they all appear to get translated into the equivalent that is prefixed with DIB

#define META_BITBLT 0x0922
#define META_STRETCHBLT 0x0B23 X7 -
#define META_CREATEPATTERNBRUSH 0x01F9

These opcodes are all related to palettes, and i dont think they matter at all, information to the contrary is welcome, these are only implemented to the degree that they dont mess up object counting

#define META_SELECTPALETTE 0x0234
#define META_REALIZEPALETTE 0x0035
#define META_ANIMATEPALETTE 0x0436
#define META_SETPALENTRIES 0x0037
#define META_RESIZEPALETTE 0x0139
#define META_CREATEPALETTE 0x00f7

These opcodes are unimplemented, for the reason that i dont know what they are, no known documentation

#define META_SETRELABS 0x0105 ?2 ?2

2 What on earth is this ?
3 Personally considered unimportant, to be dealt with at my leisure.
4 Untested
5 Has no effect on the output of the wmf file.
6 Full support pending palette handling.
7 Uses ROP, see ROP SUPPORT.


Caolan.McNamara@ul.ie
libwmf home
libwmf-0.2.13/doc/caolan/support2.html000066400000000000000000000063101441723000300175350ustar00rootroot00000000000000 META_SETBKCOLOR
META_SETBKMODE
META_SETMAPMODE
META_SETROP2
META_SETRELABS
META_SETPOLYFILLMODE
META_SETSTRETCHBLTMODE
META_SETTEXTCHAREXTRA

META_SETTEXTCOLOR

U32 color

META_SETTEXTJUSTIFICATION
META_SETWINDOWORG
META_SETWINDOWEXT
META_SETVIEWPORTORG
META_SETVIEWPORTEXT
META_OFFSETWINDOWORG
META_SCALEWINDOWEXT
META_OFFSETVIEWPORTORG
META_SCALEVIEWPORTEXT
META_LINETO
META_MOVETO
META_EXCLUDECLIPRECT
META_INTERSECTCLIPRECT


META_ARC

U16 array noValue
0 U16 yend, y of endpoint
1 U16 xend, x of endpoint
2 U16 ystart, y of endpoint
3 U16 xstart, x of endpoint
4 U16 bottom, bottom of bounding box
5 U16 right, right of bounding box
6 U16 top, top of bounding box
7 U16 left, left of bounding box
left, right, top and bottom are the extents of the ellipse of which the arc is a part
xstart,ystart define a point from which you draw an imaginary line between it and the center of the ellipse, where that line intersects the ellipse is the starting part of the arc
xend,yend similiarly define the end of the arc.

Arc


META_ELLIPSE
META_FLOODFILL
META_PIE
META_RECTANGLE
META_ROUNDRECT
META_PATBLT
META_SAVEDC
META_SETPIXEL
META_OFFSETCLIPRGN
META_TEXTOUT
META_BITBLT
META_STRETCHBLT
META_POLYGON
META_POLYLINE
META_ESCAPE
META_RESTOREDC
META_FILLREGION
META_FRAMEREGION
META_INVERTREGION
META_PAINTREGION
META_SELECTCLIPREGION
META_SELECTOBJECT
META_SETTEXTALIGN
META_CHORD
META_SETMAPPERFLAGS
META_EXTTEXTOUT
META_SETDIBTODEV
META_SELECTPALETTE
META_REALIZEPALETTE
META_ANIMATEPALETTE
META_SETPALENTRIES
META_POLYPOLYGON
META_RESIZEPALETTE
META_DIBBITBLT
META_DIBSTRETCHBLT
META_DIBCREATEPATTERNBRUSH
META_STRETCHDIB
META_EXTFLOODFILL
META_DELETEOBJECT
META_CREATEPALETTE
META_CREATEPATTERNBRUSH
META_CREATEPENINDIRECT
META_CREATEFONTINDIRECT
META_CREATEBRUSHINDIRECT
META_CREATEREGION
libwmf-0.2.13/doc/caolan/template.html000066400000000000000000000004641441723000300175560ustar00rootroot00000000000000

NAME

META_SETBKCOLOR

NEAREST API CALL

#include <windows.h>

DESCRIPTION

back

libwmf-0.2.13/doc/caolan/unknown.html000066400000000000000000000006061441723000300174400ustar00rootroot00000000000000 Unknown Op

NAME

Unknown Op

DESCRIPTION

I dont know what this does at all, noone appears to know, please if you know get in contact with me.

back libwmf-0.2.13/doc/dlayer.html000066400000000000000000000015421441723000300157640ustar00rootroot00000000000000 libwmf-0.2.0 Device Layer Reference

libwmf-0.2.0 Device Layer Reference

Currently libwmf has native support for only two device layers: gd, and eps. (In fact, there is also some preliminary, optional support for X, but that is not described here yet.)

Contents

gd

Supports: PNG, JPEG
Function: wmf_gd_function

eps

Supports: EPS, PS
Function: wmf_eps_function

Copyright 2001 wvWare/libwmf http://www.wvware.com/
libwmf-0.2.13/doc/gd.html000066400000000000000000004703261441723000300151100ustar00rootroot00000000000000 gd 2.0.1

This is gd 2.0.1 BETA.

If you have problems, report them in detail, and consider using gd 1.8.4 until gd 2.0 final is out.

The gd 2.0 documentation update is not complete, but most new features are documented to some degree and the what's new section is reasonably complete. Enjoy!

gd 2.0.1

A graphics library for fast image creation

Follow this link to the latest version of this document.

HEY! READ THIS! gd 2.0.1 creates PNG, JPEG and WBMP images, not GIF images. This is a good thing. PNG is a more compact format, and full compression is available. JPEG works well with photographic images, and is still more compatible with the major Web browsers than even PNG is. WBMP is intended for wireless devices (not regular web browsers). Existing code will need modification to call gdImagePng or gdImageJpeg instead of gdImageGif. Please do not ask us to send you the old GIF version of GD. Unisys holds a patent on the LZW compression algorithm, which is used in fully compressed GIF images. The best solution is to move to legally unencumbered, well-compressed, modern image formats such as PNG and JPEG as soon as possible.

gd 2.0.1 requires that the following libraries also be installed:

libpng (see the libpng home page)

zlib (see the info-zip home page) zlib

jpeg-6b or later, if desired (see the Independent JPEG Group home page)

If you want to use the TrueType font support, you must also install the FreeType 2.x library, including the header files. See the Freetype Home Page, or SourceForge. No, I cannot explain why that site is down on a particular day, and no, I can't send you a copy.

If you want to use the Xpm color bitmap loading support, you must also have the X Window System and the Xpm library installed (Xpm is often included in modern X distributions).

Please read the documentation and install the required libraries. Do not send email asking why png.h is not found. Do not send email asking why libgd.so is not found, either. See the requirements section for more information. Thank you!

Table of Contents

Up to the Boutell.Com, Inc. Home Page

Credits and license terms

In order to resolve any possible confusion regarding the authorship of gd, the following copyright statement covers all of the authors who have required such a statement. If you are aware of any oversights in this copyright notice, please contact Thomas Boutell who will be pleased to correct them.

COPYRIGHT STATEMENT FOLLOWS THIS LINE
Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 by Cold Spring Harbor Laboratory. Funded under Grant P41-RR02188 by the National Institutes of Health.

Portions copyright 1996, 1997, 1998, 1999, 2000, 2001 by Boutell.Com, Inc.

Portions relating to GD2 format copyright 1999, 2000 Philip Warner.

Portions relating to PNG copyright 1999, 2000 Greg Roelofs.

Portions relating to libttf copyright 1999, 2000 John Ellson (ellson@lucent.com).

Portions relating to JPEG and to color quantization copyright 2000, Doug Becker and copyright (C) 1994-1998, Thomas G. Lane. This software is based in part on the work of the Independent JPEG Group. See the file README-JPEG.TXT for more information.

Portions relating to WBMP copyright 2000 Maurice Szmurlo and Johan Van den Brande.

Permission has been granted to copy, distribute and modify gd in any context without fee, including a commercial application, provided that this notice is present in user-accessible supporting documentation.

This does not affect your ownership of the derived work itself, and the intent is to assure proper credit for the authors of gd, not to interfere with your productive use of gd. If you have questions, ask. "Derived works" includes all programs that utilize the library. Credit must be given in user-accessible documentation.

This software is provided "AS IS." The copyright holders disclaim all warranties, either express or implied, including but not limited to implied warranties of merchantability and fitness for a particular purpose, with respect to this code and accompanying documentation.

Although their code does not appear in gd 2.0.1, the authors wish to thank David Koblas, David Rowley, and Hutchison Avenue Software Corporation for their prior contributions.

END OF COPYRIGHT STATEMENT

What is gd?

gd is a graphics library. It allows your code to quickly draw images complete with lines, arcs, text, multiple colors, cut and paste from other images, and flood fills, and write out the result as a PNG or JPEG file. This is particularly useful in World Wide Web applications, where PNG and JPEG are two of the formats accepted for inline images by most browsers.

gd is not a paint program. If you are looking for a paint program, you are looking in the wrong place. If you are not a programmer, you are looking in the wrong place, unless you are installing a required library in order to run an application.

gd does not provide for every possible desirable graphics operation. It is not necessary or desirable for gd to become a kitchen-sink graphics package, but version 2.0 does include most frequently requested features, including both truecolor and palette images, resampling (smooth resizing of truecolor images) and so forth.

What if I want to use another programming language?

Not all of these tools are necessarily up to date and fully compatible with 2.0.1.

Perl

gd can also be used from Perl, courtesy of Lincoln Stein's GD.pm library, which uses gd as the basis for a set of Perl 5.x classes. Highly recommended.

Tcl

gd can be used from Tcl with John Ellson's Gdtclft dynamically loaded extension package. (Gdtclft2.0 or later is needed for gd-1.6 and up with PNG output.)

Pascal

Pascal enthusiasts should look into Michael Bradbury's gdfp package.

Haskell

A new gd interface is now available for Haskell programmers.

REXX

A gd interface for the REXX language is available.

Any Language

There are, at the moment, at least three simple interpreters that perform gd operations. You can output the desired commands to a simple text file from whatever scripting language you prefer to use, then invoke the interpreter.

  • tgd, by Bradley K. Sherman
  • fly, by Martin Gleeson

What's new in version 2.0.1?

  • Workaround for a bug in gcc, apparently found in gcc 2.7.2 and up. I reproduced and fixed it while using gcc 2.9.5.2. The bug occurred only when the -g option was in use. This problem caused gcc to spew internal error messages unrelated to the correctness of the code in gd_gd2.c. Howard Jones was first to report it.
  • gdImageFilledEllipse documented and altered; no longer requires a superfluous style argument. Thanks to Francis James Franklin.
  • The Makefile now offers the correct syntax for optionally creating a static library. Thanks to Jean-Lous Regez, among others.
  • A nested comment, an attempt to return the value of a void function, and a potentially significant error in gdImageCopyResampled were fixed thanks to Joseph Shirley.
  • A bug preventing proper truecolor text rendering was fixed, thanks to Jason Gallagher.
  • gdImageStringFT (FreeType) should now work better against a transparent or semitransparent background, and should act in a manner consistent with the most recent gdImageAlphaBlending setting. Antialiasing is now done via the alpha channel mechanism if the image is a truecolor image.
  • Bugs in the output of gdImageArc and gdImageFilledArc were reported by Bruce Verderaime. A simple and correct but inefficient implementation has been substituted until fixes are contributed for the faster code, which is in gd_arc_f_buggy.c along with the test program that reproduces the bug(s).
  • gdImageFilledArc now offers additional style options, which can be combined to produce various effects.
  • Masahito Yamaga (ma@yama-ga.com) sent a patch to improve support for Japanese output via gdImageStringFT. He also added a new readme.jpn file.
  • Zillions of documentation fixes.

What's new in version 2.0?

  • Support for truecolor images! Version 2.0 can load truecolor PNGs with no loss of color information, and almost no loss of alpha channel information. Version 2.0 can also load truecolor JPEGs with as little loss as possible; however, bear in mind that JPEG is a lossy format, so repeated load/save cycles always reduce image quality. This is not a bug. To create a truecolor image from scratch, call the new gdImageCreateTrueColor function. The gdImageCreate function is still available to create palette images, and may also be referred to as gdImageCreatePalette.
  • Support for alpha channels! In addition to 24 bits of color information for each pixel (eight bits of red, green, and blue respectively), version 2.0 supports 7 bits of "alpha channel" information. This is used to determine exactly how transparent the pixel should be. There is also support for a full 7 bits of transparency for each individual palette index in a palette-based image. Please note that, as of this writing, only Macintosh Internet Explorer 5.x and Mozilla/Netscape 6.x display partial transparency properly.
  • The new gdImageAlphaBlending function allows for two different modes of drawing. In blending mode, the alpha channel component of the color supplied to all drawing functions, such as gdImageSetPixel, determines how much of the underlying color should be allowed to shine through. The resulting image is not transparent. In non-blending mode, drawing color is copied literally with the alpha channel information, resulting in a transparent image. Blending mode is not available when drawing on palette images.
  • The gdImageCopyResampled function provides "smooth" copying from a large image to a smaller one, using a weighted average of the pixels of the source area rather than selecting one representative pixel. This function is identical to gdImageCopyResized when the destination image is a palette image.
  • The gdImageTrueColorToPalette function converts a truecolor image to a palette image. The code for this function was originally drawn from the Independent JPEG Group library code, which is excellent. The code has been modified to preserve as much alpha channel information as possible in the resulting palette, in addition to preserving colors as well as possible. This does not work as well as might be hoped. It is usually best to simply produce a truecolor output image instead, which guarantees the highest output quality.
  • A very high degree of backwards compatibility with existing gd 1.x code has been maintained, at both the source code and binary level. Code which directly accesses the pixels array will fail only if it encounters an existing truecolor image, which may happen if the code attempts to open and modify an existing JPEG or truecolor PNG. Such code should be modified to check the trueColor flag of the gdImage structure, and refer to the tpixels array instead when it is set.
  • gd is now compiled and installed as a shared library. However, gd still does not use autoconf, because I (TBB) have very limited patience with autoconf. These days, most Unix systems provide a fairly POSIX-standard environment, and the provided Makefile is likely to work well if users read it and follow the instructions at the top.
  • Support for line thickness was added by Michael Schwartz. My apologies to him for sitting on his patches for so long. See the new gdImageSetThickness function, which affects all standard gd functions that draw lines and curves. In addition, Michael added a convenient gdImageEllipse function.
  • The new gdImageFilledArc function provides a straightforward way to draw filled arcs. Also, gdImageFilledEllipse is a convenient way to fill an ellipse without specifying starting and ending angles. Thanks go out to F J Franklin.
  • To put an end to the confusion, TrueType 1.x support has been removed in favor of TrueType 2.x support. The old gdImageStringTTF function simply invokes gdImageStringFT.
  • The specialized .gd and .gd2 file formats have been upgraded to support truecolor. New images written by the versions of these functions found in 2.0 will be rejected, with varying degrees of grace, by older versions of gd. THIS AFFECTS THE .GD and .GD2 FORMATS ONLY. IF YOU ARE CONFUSED BY THIS PARAGRAPH, IT PROBABLY DOESN'T APPLY TO ANYTHING YOU WILL EVER ENCOUNTER. Since these file formats are absolutely, positively *not* designed for distributing images, just for preprocessing them, this should not be a big problem. gd 2.0 should read old .gd and .gd2 files correctly.

What's new in version 1.8.4?

  • Add support for FreeType2 (John Ellson ellson@lucent.com)
  • Add support for finding in fonts in a builtin DEFAULT_FONTPATH, or in a path from the GDFONTPATH environment variable.
  • remove some unused symbols to reduce compiler warnings
  • bugfix in size comparisons in gdImageCompare
  • REXX now mentioned
  • All memory allocation functions are now wrapped within the library; gdFree is exported and recommended for freeing memory returned by the gdImage(Something)Ptr family of functions.

What's new in version 1.8.3?

  • WBMP output memory leak fixed
  • #include <gd.h> corrected to #include "gd.h" in gd_wbmp.c
  • Documented the fact that the source and output images shouldn't match in the WBMP test except for black and white source images

What's new in version 1.8.2?

  • WBMP support debugged and improved by Johann Van den Brande
  • WBMP tests added to gdtest.c by Thomas Boutell
  • Use of platform-dependent 'install' command removed by Thomas Boutell
  • Comments added to Makefile warning users to juggle the order of the libraries if the linker complains; is there any portable way to do this automatically, short of using autoconf?
  • Documentation of gdImageCreateFromXpm corrected
  • Updated links to fast-moving, always dodging libpng and zlib web sites

What's new in version 1.8.1?

  • Optional components no longer built by default (following the documentation)
  • JPEG code no longer requires inappropriate header files
  • Win32 patches from Joe Gregorio
  • 16-bit font support for bdftogd, from Honza Pazdziora

What's new in version 1.8?

  • Support for JPEG output, courtesy of Doug Becker
  • A link to Michael Bradbery's Pascal wrapper
  • Support for WBMP output, courtesy of Maurice Szmurlo
  • gdImageColorClosestHWB function based on hue, whiteness, blackness, superior to the regular gdImageColorClosest function, courtesy of Philip Warner
  • License clarification: yes, you can modify gd

Additional JPEG Information

Support for reading and writing JPEG-format images is courtesy of Doug Becker and the Independent JPEG Group / Thomas G. Lane. You can get the latest version of the IJG JPEG software from ftp://ftp.uu.net/graphics/jpeg/ (e.g., the jpegsrc.v6b.tar.gz file). You must use version 6b or later of the IJG JPEG software. You might also consult the JPEG FAQ at http://www.faqs.org/faqs/jpeg-faq/.

What's new in version 1.7.3?

Another attempt at Makefile fixes to permit linking with all libraries required on platforms with order- dependent linkers. Perhaps it will work this time.

What's new in version 1.7.2?

An uninitialized-pointer bug in gdtestttf.c was corrected. This bug caused crashes at the end of each call to gdImageStringTTF on some platforms. Thanks to Wolfgang Haefelinger.

Documentation fixes. Thanks to Dohn Arms.

Makefile fixes to permit linking with all libraries required on platforms with order- dependent linkers.

What's new in version 1.7.1?

A minor buglet in the Makefile was corrected, as well as an inaccurate error message in gdtestttf.c. Thanks to Masahito Yamaga.

What's new in version 1.7?

Version 1.7 contains the following changes:
  • Japanese language support for the TrueType functions. Thanks to Masahito Yamaga.
  • autoconf and configure have been removed, in favor of a carefully designed Makefile which produces and properly installs the library and the binaries. System-dependent variables are at the top of the Makefile for easy modification. I'm sorry, folks, but autoconf generated many, many confused email messages from people who didn't have things where autoconf expected to find them. I am not an autoconf/automake wizard, and gd is a simple, very compact library which does not need to be a shared library. I did make many improvements over the old gd 1.3 Makefile, which were directly inspired by the autoconf version found in the 1.6 series (thanks to John Ellson).
  • Completely ANSI C compliant, according to the -pedantic-errors flag of gcc. Several pieces of not-quite-ANSI-C code were causing problems for those with non-gcc compilers.
  • gdttf.c patched to allow the use of Windows symbol fonts, when present (thanks to Joseph Peppin).
  • extern "C" wrappers added to gd.h and the font header files for the convenience of C++ programmers. bdftogd was also modified to automatically insert these wrappers into future font header files. Thanks to John Lindal.
  • Compiles correctly on platforms that don't define SEEK_SET. Thanks to Robert Bonomi.
  • Loads Xpm images via the gdImageCreateFromXpm function, if the Xpm library is available. Thanks to Caolan McNamara.

What's new in version 1.6.3?

Version 1.6.3 corrects a memory leak in gd_png.c. This leak caused a significant amount of memory to be allocated and not freed when writing a PNG image.

What's new in version 1.6.2?

Version 1.6.2 from John Ellson adds two new functions:
  • gdImageStringTTF - scalable, rotatable, anti-aliased, TrueType strings using the FreeType library, but only if libttf is found by configure. We do not provide TrueType fonts. Obtaining them is entirely up to you.
  • gdImageColorResolve - an efficient alternative for the common code fragment:
    
          if ((color=gdImageColorExact(im,R,G,B)) < 0)
              if ((color=gdImageColorAllocate(im,R,G,B)) < 0)
                  color=gdImageColorClosest(im,R,G,B);
    

Also in this release the build process has been converted to GNU autoconf/automake/libtool conventions so that both (or either) static and shared libraries can be built.

What's new in version 1.6.1?

Version 1.6.1 incorporates superior PNG reading and writing code from Greg Roelofs, with minor modifications by Tom Boutell. Specifically, I altered his code to read non-palette images (converting them to palette images badly, by dithering them), and to tolerate palette images with types of transparency that gd doesn't actually support (it just ignores the advanced transparency features). Any bugs in this area are therefore my fault, not Greg's.

Unlike gd 1.6, users should have no trouble linking with gd 1.6.1 if they follow the instructions and install all of the pieces. However, If you get undefined symbol errors, be sure to check for older versions of libpng in your library directories!

What's new in version 1.6?

Version 1.6 features the following changes:

Support for 8-bit palette PNG images has been added. Support for GIF has been removed. This step was taken to completely avoid the legal controversy regarding the LZW compression algorithm used in GIF. Unisys holds a patent which is relevant to LZW compression. PNG is a superior image format in any case. Now that PNG is supported by both Microsoft Internet Explorer and Netscape (in their recent releases), we highly recommend that GD users upgrade in order to get well-compressed images in a format which is legally unemcumbered.

What's new in version 1.5?

Version 1.5 featured the following changes:
New GD2 format
An improvement over the GD format, the GD2 format uses the zlib compression library to compress the image in chunks. This results in file sizes comparable to GIFs, with the ability to access parts of large images without having to read the entire image into memory.

This format also supports version numbers and rudimentary validity checks, so it should be more 'supportable' than the previous GD format.

Re-arranged source files
gd.c has been broken into constituant parts: io, gif, gd, gd2 and graphics functions are now in separate files.

Extended I/O capabilities.
The source/sink feature has been extended to support GD2 file formats (which require seek/tell functions), and to allow more general non-file I/O.

Better support for Lincoln Stein's Perl Module
The new gdImage*Ptr function returns the chosen format stored in a block of memory. This can be directly used by the GD perl module.

Added functions
gdImageCreateFromGd2Part - allows retrieval of part of an image (good for huge images, like maps),
gdImagePaletteCopy - Copies a palette from one image to another, doing it's best to match the colors in the target image to the colors in the source palette.
gdImageGd2, gdImageCreateFromGd2 - Support for new format
gdImageCopyMerge - Merges two images (useful to highlight part of an image)
gdImageCopyMergeGray - Similar to gdImageCopyMerge, but tries to preserve source image hue.
gdImagePngPtr, gdImageJpegPtr, gdImageWBMPPtr, gdImageGdPtr, gdImageGd2Ptr - return memory blocks for each type of image.
gdImageCreateFromPngCtx, gdImageCreateFromGdCtx, gdImageCreateFromGd2Ctx, gdImageCreateFromGd2PartCtx - Support for new I/O context.
NOTE: In fairness to Thomas Boutell, any bug/problems with any of the above features should probably be reported to Philip Warner.

What's new in version 1.4?

Version 1.4 features the following changes:
Fixed polygon fill routine (again)
Thanks to Kirsten Schulz, version 1.4 is able to fill numerous types of polygons that caused problems with previous releases, including version 1.3.
Support for alternate data sources
Programmers who wish to load a GIF from something other than a stdio FILE * stream can use the new gdImageCreateFromPngSource function.
Support for alternate data destinations
Programmers who wish to write a GIF to something other than a stdio FILE * stream can use the new gdImagePngToSink function.
More tolerant when reading GIFs
Version 1.4 does not crash when reading certain animated GIFs, although it still only reads the first frame. Version 1.4 also has overflow testing code to prevent crashes when reading damaged GIFs.

What's new in version 1.3?

Version 1.3 features the following changes:
Non-LZW-based GIF compression code
Version 1.3 contained GIF compression code that uses simple Run Length Encoding instead of LZW compression, while still retaining compatibility with normal LZW-based GIF decoders (your browser will still like your GIFs). LZW compression is patented by Unisys. We are currently reevaluating the approach taken by gd 1.3. The current release of gd does not support this approach. We recommend that you use the current release, and generate PNG images. Thanks to Hutchison Avenue Software Corporation for contributing the RLE GIF code.
8-bit fonts, and 8-bit font support
This improves support for European languages. Thanks are due to Honza Pazdziora and also to Jan Pazdziora . Also see the provided bdftogd Perl script if you wish to convert fixed-width X11 fonts to gd fonts.
16-bit font support (no fonts provided)
Although no such fonts are provided in the distribution, fonts containing more than 256 characters should work if the gdImageString16 and gdImageStringUp16 routines are used.
Improvements to the "webpng" example/utility
The "webpng" utility is now a slightly more useful application. Thanks to Brian Dowling for this code.
Corrections to the color resolution field of GIF output
Thanks to Bruno Aureli.
Fixed polygon fills
A one-line patch for the infamous polygon fill bug, courtesy of Jim Mason. I believe this fix is sufficient. However, if you find a situation where polygon fills still fail to behave properly, please send code that demonstrates the problem, and a fix if you have one. Verifying the fix is important.
Row-major, not column-major
Internally, gd now represents the array of pixels as an array of rows of pixels, rather than an array of columns of pixels. This improves the performance of compression and decompression routines slightly, because horizontally adjacent pixels are now next to each other in memory. This should not affect properly written gd applications, but applications that directly manipulate the pixels array will require changes.

What else do I need to use gd?

To use gd, you will need an ANSI C compiler. All popular Windows 95 and NT C compilers are ANSI C compliant. Any full-ANSI-standard C compiler should be adequate. The cc compiler released with SunOS 4.1.3 is not an ANSI C compiler. Most Unix users who do not already have gcc should get it. gcc is free, ANSI compliant and a de facto industry standard. Ask your ISP why it is missing.

As of version 1.6, you also need the zlib compression library, and the libpng library. As of version 1.6.2, you can draw text using antialiased TrueType fonts if you also have the libttf library installed, but this is not mandatory. zlib is available for a variety of platforms from the zlib web site. libpng is available for a variety of platforms from the PNG web site.

You will also want a PNG viewer, if you do not already have one for your system, since you will need a good way to check the results of your work. Netscape 4.04 and higher, and Microsoft Internet Explorer 4.0 or higher, both support PNG. For some purposes you might be happier with a package like Lview Pro for Windows or xv for X. There are PNG viewers available for every graphics-capable modern operating system, so consult newsgroups relevant to your particular system.

How do I get gd?

By HTTP

By FTP

How do I build gd?

In order to build gd, you must first unpack the archive you have downloaded. If you are not familiar with tar and gunzip (Unix) or ZIP (Windows), please consult with an experienced user of your system. Sorry, we cannot answer questions about basic Internet skills.

Unpacking the archive will produce a directory called "gd-2.0.1".

For Unix

cd to the 2.0.1 directory. Edit the Makefile with your preferred text editor and make any necessary changes to the settings at the top, especially if you want Xpm or TrueType support. Next, type "make install". Because gd 2.0 and above installs as a shared library, it is necessary to install the library properly before running gd-based programs.

If you get errors, edit the Makefile again, paying special attention to the INCLUDEDIRS and LIBDIRS settings.

IF YOU GET LINKER ERRORS, TRY JUGGLING THE ORDER OF THE -l DIRECTIVES IN THE MAKEFILE. Some platforms may prefer that the libraries be listed in the opposite order.

For Windows, Mac, Et Cetera

Create a project using your favorite programming environment. Copy all of the gd files to the project directory. Add gd.c to your project. Add other source files as appropriate. Learning the basic skills of creating projects with your chosen C environment is up to you.

If you wish to test the library, type "make test" AFTER you have successfully executed "make install". This will build several test programs, including "gddemo". Run gddemo to see some of the capabilities of gd.

gddemo should execute without incident, creating the file demoout.png. (Note there is also a file named demoin.png, which is provided in the package as part of the demonstration.)

Display demoout.png in your PNG viewer. The image should be 128x128 pixels and should contain an image of the space shuttle with quite a lot of graphical elements drawn on top of it.

(If you are missing the demoin.png file, the other items should appear anyway.)

Look at demoin.png to see the original space shuttle image which was scaled and copied into the output image.

gd basics: using gd in your program

gd lets you create PNG or JPEG images on the fly. To use gd in your program, include the file gd.h, and link with the libgd.a library produced by "make libgd.a", under Unix. Under other operating systems you will add gd.c to your own project.

If you want to use the provided fonts, include gdfontt.h, gdfonts.h, gdfontmb.h, gdfontl.h and/or gdfontg.h. For more impressive results, install FreeType 2.x and use the new gdImageStringFT function. If you are not using the provided Makefile and/or a library-based approach, be sure to include the source modules as well in your project. (They may be too large for 16-bit memory models, that is, 16-bit DOS and Windows.)

Here is a short example program. (For a more advanced example, see gddemo.c, included in the distribution. gddemo.c is NOT the same program; it demonstrates additional features!)

/* Bring in gd library functions */
#include "gd.h"

/* Bring in standard I/O so we can output the PNG to a file */
#include <stdio.h>

int main() {
	/* Declare the image */
	gdImagePtr im;
	/* Declare output files */
	FILE *pngout, *jpegout;
	/* Declare color indexes */
	int black;
	int white;

	/* Allocate the image: 64 pixels across by 64 pixels tall */
	im = gdImageCreate(64, 64);

	/* Allocate the color black (red, green and blue all minimum).
		Since this is the first color in a new image, it will
		be the background color. */
	black = gdImageColorAllocate(im, 0, 0, 0);	

	/* Allocate the color white (red, green and blue all maximum). */
	white = gdImageColorAllocate(im, 255, 255, 255);	
	
	/* Draw a line from the upper left to the lower right,
		using white color index. */
	gdImageLine(im, 0, 0, 63, 63, white);	

	/* Open a file for writing. "wb" means "write binary", important
		under MSDOS, harmless under Unix. */
	pngout = fopen("test.png", "wb");

	/* Do the same for a JPEG-format file. */
	jpegout = fopen("test.jpg", "wb");

	/* Output the image to the disk file in PNG format. */
	gdImagePng(im, pngout);

	/* Output the same image in JPEG format, using the default
		JPEG quality setting. */
	gdImageJpeg(im, jpegout, -1);

	/* Close the files. */
	fclose(pngout);
	fclose(jpegout);

	/* Destroy the image in memory. */
	gdImageDestroy(im);
}
When executed, this program creates an image, allocates two colors (the first color allocated becomes the background color), draws a diagonal line (note that 0, 0 is the upper left corner), writes the image to PNG and JPEG files, and destroys the image.

The above example program should give you an idea of how the package works. gd provides many additional functions, which are listed in the following reference chapters, complete with code snippets demonstrating each. There is also an alphabetical index.

Webpng: a more powerful gd example

Webpng is a simple utility program to manipulate PNGs from the command line. It is written for Unix and similar command-line systems, but should be easily adapted for other environments. Webpng allows you to set transparency and interlacing and output interesting information about the PNG in question.

webpng.c is provided in the distribution. Unix users can simply type "make webpng" to compile the program. Type "webpng" with no arguments to see the available options.

Function and type reference

Types

gdImage(TYPE)
The data structure in which gd stores images. gdImageCreate, gdImageCreateTrueColor and the various image file-loading functions return a pointer to this type, and the other functions expect to receive a pointer to this type as their first argument. It is reasonably safe to examine any of the members of this structure. It is also reasonably safe to modify individual pixels within the pixels or tpixels arrays. If the trueColor flag is set, the tpixels array is valid; otherwise the pixels array is valid.

The colorsTotal, red, green, blue, alpha and open arrays manage the palette. They are valid only when the trueColor flag is not set. The transparent value contains the palette index of the first transparent color as read-only information for backwards compatibility; gd 2.0 stores this information in the alpha array so that variable transparency can be supported for each palette entry. However, for truecolor images, transparent represents a single RGB color which is always 100% transparent, and this feature is generally supported by browsers which do not support full alpha channels.

typedef struct {
	/* Palette-based image pixels */
	unsigned char ** pixels;
	int sx;
	int sy;
	/* These are valid in palette images only. See also
	/* 'alpha', which appears later in the structure to
		preserve binary backwards compatibility */
	int colorsTotal;
	int red[gdMaxColors];
	int green[gdMaxColors];
	int blue[gdMaxColors]; 
	int open[gdMaxColors];
	/* For backwards compatibility, this is set to the
		first palette entry with 100% transparency,
		and is also set and reset by the 
		gdImageColorTransparent function. Newer
		applications can allocate palette entries
		with any desired level of transparency; however,
		bear in mind that many viewers, notably
		many web browsers, fail to implement
		full alpha channel for PNG and provide
		support for full opacity or transparency only. */
	int transparent;
	int *polyInts;
	int polyAllocated;
	struct gdImageStruct *brush;
	struct gdImageStruct *tile;	
	int brushColorMap[gdMaxColors];
	int tileColorMap[gdMaxColors];
	int styleLength;
	int stylePos;
	int *style;
	int interlace;
	/* New in 2.0: alpha channel for palettes. Note that only
		Macintosh Internet Explorer and (possibly) Netscape 6
		really support multiple levels of transparency in
		palettes, to my knowledge, as of 2/15/01. Most
		common browsers will display 100% opaque and
		100% transparent correctly, and do something 
		unpredictable and/or undesirable for levels
		in between. TBB */
	int alpha[gdMaxColors]; 
	/* Truecolor flag and pixels. New 2.0 fields appear here at the
		end to minimize breakage of existing object code. */
	int trueColor;
	int ** tpixels;
	/* Should alpha channel be copied, or applied, each time a
		pixel is drawn? This applies to truecolor images only.
		No attempt is made to alpha-blend in palette images,
		even if semitransparent palette entries exist. 
		To do that, build your image as a truecolor image,
		then quantize down to 8 bits. */
	int alphaBlendingFlag;
	/* Should the alpha channel of the image be saved? This affects
		PNG at the moment; other future formats may also
		have that capability. JPEG doesn't. */
	int saveAlphaFlag;
} gdImage;

The order of the structure members may appear confusing, but was chosen deliberately to increase backwards compatibility with existing gd 1.x-based binary code that references particular structure members.

gdImagePtr (TYPE)
A pointer to an image structure. gdImageCreate returns this type, and the other functions expect it as the first argument.
gdFont (TYPE)
A font structure. Used to declare the characteristics of a font. Plese see the files gdfontl.c and gdfontl.h for an example of the proper declaration of this structure. You can provide your own font data by providing such a structure and the associated pixel array. You can determine the width and height of a single character in a font by examining the w and h members of the structure. If you will not be creating your own fonts, you will not need to concern yourself with the rest of the components of this structure.
typedef struct {
	/* # of characters in font */
	int nchars;
	/* First character is numbered... (usually 32 = space) */
	int offset;
	/* Character width and height */
	int w;
	int h;
	/* Font data; array of characters, one row after another.
		Easily included in code, also easily loaded from
		data files. */
	char *data;
} gdFont;
gdFontPtr (TYPE)
A pointer to a font structure. Text-output functions expect these as their second argument, following the gdImagePtr argument. Two such pointers are declared in the provided include files gdfonts.h and gdfontl.h.
gdPoint (TYPE)
Represents a point in the coordinate space of the image; used by gdImagePolygon and gdImageFilledPolygon.
typedef struct {
        int x, y;
} gdPoint, *gdPointPtr;
gdPointPtr (TYPE)
A pointer to a gdPoint structure; passed as an argument to gdImagePolygon and gdImageFilledPolygon.
gdSource (TYPE)
typedef struct {
        int (*source) (void *context, char *buffer, int len);
        void *context;
} gdSource, *gdSourcePtr;
Represents a source from which a PNG can be read. Programmers who do not wish to read PNGs from a file can provide their own alternate input mechanism, using the gdImageCreateFromPngSource function. See the documentation of that function for an example of the proper use of this type.
gdSink (TYPE)
typedef struct {
        int (*sink) (void *context, char *buffer, int len);
        void *context;
} gdSink, *gdSinkPtr;
Represents a "sink" (destination) to which a PNG can be written. Programmers who do not wish to write PNGs to a file can provide their own alternate output mechanism, using the gdImagePngToSink function. See the documentation of that function for an example of the proper use of this type.

Image creation, destruction, loading and saving

gdImageCreate(sx, sy) (FUNCTION)
gdImageCreate is called to create palette-based images, with no more than 256 colors. Invoke gdImageCreate with the x and y dimensions of the desired image. gdImageCreate returns a gdImagePtr to the new image, or NULL if unable to allocate the image. The image must eventually be destroyed using gdImageDestroy().
... inside a function ...
gdImagePtr im;
im = gdImageCreate(64, 64);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateTrueColor(sx, sy) (FUNCTION)
gdImageCreateTrueColor is called to create truecolor images, with an essentially unlimited number of colors. Invoke gdImageCreateTrueColor with the x and y dimensions of the desired image. gdImageCreateTrueColor returns a gdImagePtr to the new image, or NULL if unable to allocate the image. The image must eventually be destroyed using gdImageDestroy().

Truecolor images are always filled with black at creation time.

... inside a function ...
gdImagePtr im;
im = gdImageCreateTrueColor(64, 64);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromJpeg(FILE *in) (FUNCTION)
gdImageCreateFromJpegCtx(FILE *in) (FUNCTION)

gdImageCreateFromJpeg(FILE *in) (FUNCTION)
gdImageCreateFromJpegCtx(FILE *in) (FUNCTION)

gdImageCreateFromJpeg is called to load images from JPEG format files. Invoke gdImageCreateFromJpeg with an already opened pointer to a file containing the desired image. gdImageCreateFromJpeg returns a gdImagePtr to the new truecolor image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a JPEG image). gdImageCreateFromJpeg does not close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy(). The returned image is always a truecolor image.
gdImagePtr im;
... inside a function ...
FILE *in;
in = fopen("myjpeg.jpg", "rb");
im = gdImageCreateFromJpeg(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromPng(FILE *in) (FUNCTION)
gdImageCreateFromPngCtx(gdIOCtx *in) (FUNCTION)

gdImageCreateFromPng is called to load images from PNG format files. Invoke gdImageCreateFromPng with an already opened pointer to a file containing the desired image. gdImageCreateFromPng returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a PNG image). gdImageCreateFromPng does not close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy().

If the PNG image being loaded is a truecolor image, the resulting gdImagePtr will refer to a truecolor image. If the PNG image being loaded is a palette or grayscale image, the resulting gdImagePtr will refer to a palette image. gd retains only 8 bits of resolution for each of the red, green and blue channels, and only 7 bits of resolution for the alpha channel. The former restriction affects only a handful of very rare 48-bit color and 16-bit grayscale PNG images. The second restriction affects all semitransparent PNG images, but the difference is essentially invisible to the eye. 7 bits of alpha channel resolution is, in practice, quite a lot.

gdImagePtr im;
... inside a function ...
FILE *in;
in = fopen("mypng.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromPngSource(gdSourcePtr in) (FUNCTION)
gdImageCreateFromPngSource is called to load a PNG from a data source other than a file. Usage is very similar to the gdImageCreateFromPng function, except that the programmer provides a custom data source.

The programmer must write an input function which accepts a context pointer, a buffer, and a number of bytes to be read as arguments. This function must read the number of bytes requested, unless the end of the file has been reached, in which case the function should return zero, or an error has occurred, in which case the function should return -1. The programmer then creates a gdSource structure and sets the source pointer to the input function and the context pointer to any value which is useful to the programmer.

The example below implements gdImageCreateFromPng by creating a custom data source and invoking gdImageCreateFromPngSource.

static int freadWrapper(void *context, char *buf, int len);

gdImagePtr gdImageCreateFromPng(FILE *in)
{
        gdSource s;
        s.source = freadWrapper;
        s.context = in;
        return gdImageCreateFromPngSource(&s);
}

static int freadWrapper(void *context, char *buf, int len)
{
        int got = fread(buf, 1, len, (FILE *) context);
        return got;
}
gdImageCreateFromGd(FILE *in) (FUNCTION)
gdImageCreateFromGdCtx(gdIOCtx *in) (FUNCTION)

gdImageCreateFromGd is called to load images from gd format files. Invoke gdImageCreateFromGd with an already opened pointer to a file containing the desired image in the gd file format, which is specific to gd and intended for very fast loading. (It is not intended for compression; for compression, use PNG or JPEG.) gdImageCreateFromGd returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a gd format image). gdImageCreateFromGd does not close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy().
... inside a function ...
gdImagePtr im;
FILE *in;
in = fopen("mygd.gd", "rb");
im = gdImageCreateFromGd(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromGd2(FILE *in) (FUNCTION)
gdImageCreateFromGd2Ctx(gdIOCtx *in) (FUNCTION)

gdImageCreateFromGd2 is called to load images from gd2 format files. Invoke gdImageCreateFromGd2 with an already opened pointer to a file containing the desired image in the gd2 file format, which is specific to gd2 and intended for fast loading of parts of large images. (It is a compressed format, but generally not as good as maximum compression of the entire image would be.) gdImageCreateFromGd returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a gd format image). gdImageCreateFromGd2 does not close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy().
... inside a function ...
gdImagePtr im;
FILE *in;
in = fopen("mygd.gd2", "rb");
im = gdImageCreateFromGd2(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromGd2Part(FILE *in, int srcX, int srcY, int w, int h) (FUNCTION)
gdImageCreateFromGd2PartCtx(gdIOCtx *in) (FUNCTION)

gdImageCreateFromGd2Part is called to load parts of images from gd2 format files. Invoked in the same way as gdImageCreateFromGd2, but with extra parameters indicating the source (x, y) and width/height of the desired image. gdImageCreateFromGd2Part returns a gdImagePtr to the new image, or NULL if unable to load the image. The image must eventually be destroyed using gdImageDestroy().

gdImageCreateFromXbm(FILE *in) (FUNCTION)
gdImageCreateFromXbm is called to load images from X bitmap format files. Invoke gdImageCreateFromXbm with an already opened pointer to a file containing the desired image. gdImageCreateFromXbm returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain an X bitmap format image). gdImageCreateFromXbm does not close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy().
... inside a function ...
gdImagePtr im;
FILE *in;
in = fopen("myxbm.xbm", "rb");
im = gdImageCreateFromXbm(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromXpm(char *filename) (FUNCTION)
gdImageCreateFromXbm is called to load images from XPM X Window System color bitmap format files. This function is available only if HAVE_XPM is selected in the Makefile and the Xpm library is linked with the application. Unlike most gd file functions, the Xpm functions require filenames, not file pointers. gdImageCreateFromXpm returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain an XPM bitmap format image). You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy().
... inside a function ...
gdImagePtr im;
FILE *in;
in = fopen("myxpm.xpm", "rb");
im = gdImageCreateFromXpm(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageDestroy(gdImagePtr im) (FUNCTION)
gdImageDestroy is used to free the memory associated with an image. It is important to invoke gdImageDestroy before exiting your program or assigning a new image to a gdImagePtr variable.
... inside a function ...
gdImagePtr im;
im = gdImageCreate(10, 10);
/* ... Use the image ... */
/* Now destroy it */
gdImageDestroy(im);
void gdImageJpeg(gdImagePtr im, FILE *out, int quality) (FUNCTION)
void gdImageJpegCtx(gdImagePtr im, gdIOCtx *out, int quality) (FUNCTION)
gdImageJpeg outputs the specified image to the specified file in JPEG format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImageJpeg does not close the file; your code must do so.

If quality is negative, the default IJG JPEG quality value (which should yield a good general quality / size tradeoff for most situations) is used. Otherwise, for practical purposes, quality should be a value in the range 0-95, higher quality values usually implying both higher quality and larger image sizes.

If you have set image interlacing using gdImageInterlace, this function will interpret that to mean you wish to output a progressive JPEG. Some programs (e.g., Web browsers) can display progressive JPEGs incrementally; this can be useful when browsing over a relatively slow communications link, for example. Progressive JPEGs can also be slightly smaller than sequential (non-progressive) JPEGs.

... inside a function ...
gdImagePtr im;
int black, white;
FILE *out;
/* Create the image */
im = gdImageCreate(100, 100);
/* Allocate background */
white = gdImageColorAllocate(im, 255, 255, 255);
/* Allocate drawing color */
black = gdImageColorAllocate(im, 0, 0, 0);
/* Draw rectangle */
gdImageRectangle(im, 0, 0, 99, 99, black);
/* Open output file in binary mode */
out = fopen("rect.jpg", "wb");
/* Write JPEG using default quality */
gdImageJpeg(im, out, -1);
/* Close file */
fclose(out);
/* Destroy image */
gdImageDestroy(im);
void* gdImageJpegPtr(gdImagePtr im, int *size) (FUNCTION)
Identical to gdImageJpeg except that it returns a pointer to a memory area with the JPEG data. This memory must be freed by the caller when it is no longer needed. The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time. The 'size' parameter receives the total size of the block of memory.
void gdImagePng(gdImagePtr im, FILE *out) (FUNCTION)
gdImagePng outputs the specified image to the specified file in PNG format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImagePng does not close the file; your code must do so.
... inside a function ...
gdImagePtr im;
int black, white;
FILE *out;
/* Create the image */
im = gdImageCreate(100, 100);
/* Allocate background */
white = gdImageColorAllocate(im, 255, 255, 255);
/* Allocate drawing color */
black = gdImageColorAllocate(im, 0, 0, 0);
/* Draw rectangle */
gdImageRectangle(im, 0, 0, 99, 99, black);
/* Open output file in binary mode */
out = fopen("rect.png", "wb");
/* Write PNG */
gdImagePng(im, out);
/* Close file */
fclose(out);
/* Destroy image */
gdImageDestroy(im);
void* gdImagePngPtr(gdImagePtr im, int *size) (FUNCTION)
Identical to gdImagePng except that it returns a pointer to a memory area with the PNG data. This memory must be freed by the caller when it is no longer needed. The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time. The 'size' parameter receives the total size of the block of memory.
gdImagePngToSink(gdImagePtr im, gdSinkPtr out) (FUNCTION)
gdImagePngToSink is called to write a PNG to a data "sink" (destination) other than a file. Usage is very similar to the gdImagePng function, except that the programmer provides a custom data sink.

The programmer must write an output function which accepts a context pointer, a buffer, and a number of bytes to be written as arguments. This function must write the number of bytes requested and return that number, unless an error has occurred, in which case the function should return -1. The programmer then creates a gdSink structure and sets the sink pointer to the output function and the context pointer to any value which is useful to the programmer.

The example below implements gdImagePng by creating a custom data source and invoking gdImagePngFromSink.

static int stdioSink(void *context, char *buffer, int len)
{
	return fwrite(buffer, 1, len, (FILE *) context);
}

void gdImagePng(gdImagePtr im, FILE *out)
{
	gdSink mySink;
	mySink.context = (void *) out;
	mySink.sink = stdioSink;
	gdImagePngToSink(im, &mySink);
}
void gdImageWBMP(gdImagePtr im, int fg, FILE *out)
gdImageWBMPCtx(gdIOCtx *out) (FUNCTION)(FUNCTION)
gdImageWBMP outputs the specified image to the specified file in WBMP format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImageWBMP does not close the file; your code must do so.

WBMP file support is black and white only. The color index specified by the fg argument is the "foreground," and only pixels of this color will be set in the WBMP file. All other pixels will be considered "background."

... inside a function ...
gdImagePtr im;
int black, white;
FILE *out;
/* Create the image */
im = gdImageCreate(100, 100);
/* Allocate background */
white = gdImageColorAllocate(im, 255, 255, 255);
/* Allocate drawing color */
black = gdImageColorAllocate(im, 0, 0, 0);
/* Draw rectangle */
gdImageRectangle(im, 0, 0, 99, 99, black);
/* Open output file in binary mode */
out = fopen("rect.wbmp", "wb");
/* Write WBMP, with black as foreground */
gdImageWBMP(im, black, out);
/* Close file */
fclose(out);
/* Destroy image */
gdImageDestroy(im);
void* gdImageWBMPPtr(gdImagePtr im, int *size) (FUNCTION)
Identical to gdImageWBMP except that it returns a pointer to a memory area with the WBMP data. This memory must be freed by the caller when it is no longer needed. The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time. The 'size' parameter receives the total size of the block of memory.
void gdImageGd(gdImagePtr im, FILE *out) (FUNCTION)
gdImageGd outputs the specified image to the specified file in the gd image format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImagePng does not close the file; your code must do so.

The gd image format is intended for fast reads and writes of images your program will need frequently to build other images. It is not a compressed format, and is not intended for general use.

... inside a function ...
gdImagePtr im;
int black, white;
FILE *out;
/* Create the image */
im = gdImageCreate(100, 100);
/* Allocate background */
white = gdImageColorAllocate(im, 255, 255, 255);
/* Allocate drawing color */
black = gdImageColorAllocate(im, 0, 0, 0);
/* Draw rectangle */
gdImageRectangle(im, 0, 0, 99, 99, black);
/* Open output file in binary mode */
out = fopen("rect.gd", "wb");
/* Write gd format file */
gdImageGd(im, out);
/* Close file */
fclose(out);
/* Destroy image */
gdImageDestroy(im);
void* gdImageGdPtr(gdImagePtr im, int *size) (FUNCTION)
Identical to gdImageGd except that it returns a pointer to a memory area with the GD data. This memory must be freed by the caller when it is no longer needed. The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time. The 'size' parameter receives the total size of the block of memory.
void gdImageGd2(gdImagePtr im, FILE *out, int chunkSize, int fmt) (FUNCTION)
gdImageGd2 outputs the specified image to the specified file in the gd2 image format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImageGd2 does not close the file; your code must do so.

The gd2 image format is intended for fast reads and writes of parts of images. It is a compressed format, and well suited to retrieving smll sections of much larger images. The third and fourth parameters are the 'chunk size' and format resposectively.

The file is stored as a series of compressed subimages, and the Chunk Size determines the sub-image size - a value of zero causes the GD library to use the default.

It is also possible to store GD2 files in an uncompressed format, in which case the fourth parameter should be GD2_FMT_RAW.

... inside a function ...
gdImagePtr im;
int black, white;
FILE *out;
/* Create the image */
im = gdImageCreate(100, 100);
/* Allocate background */
white = gdImageColorAllocate(im, 255, 255, 255);
/* Allocate drawing color */
black = gdImageColorAllocate(im, 0, 0, 0);
/* Draw rectangle */
gdImageRectangle(im, 0, 0, 99, 99, black);
/* Open output file in binary mode */
out = fopen("rect.gd", "wb");
/* Write gd2 format file */
gdImageGd2(im, out, 0, GD2_FMT_COMPRESSED);
/* Close file */
fclose(out);
/* Destroy image */
gdImageDestroy(im);
void* gdImageGd2Ptr(gdImagePtr im, int chunkSize, int fmt, int *size) (FUNCTION)
Identical to gdImageGd2 except that it returns a pointer to a memory area with the GD2 data. This memory must be freed by the caller when it is no longer needed. The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time. The 'size' parameter receives the total size of the block of memory.

Drawing Functions

void gdImageSetPixel(gdImagePtr im, int x, int y, int color) (FUNCTION)
gdImageSetPixel sets a pixel to a particular color index. Always use this function or one of the other drawing functions to access pixels; do not access the pixels of the gdImage structure directly.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Set a pixel near the center. */
gdImageSetPixel(im, 50, 50, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageLine(gdImagePtr im, int x1, int y1, int x2, int y2, int color) (FUNCTION)
gdImageLine is used to draw a line between two endpoints (x1,y1 and x2, y2). The line is drawn using the color index specified. Note that the color index can be an actual color returned by gdImageColorAllocate or one of gdStyled, gdBrushed or gdStyledBrushed.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a line from the upper left corner to the lower right corner. */
gdImageLine(im, 0, 0, 99, 99, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageDashedLine(gdImagePtr im, int x1, int y1, int x2, int y2, int color) (FUNCTION)
gdImageDashedLine is provided solely for backwards compatibility with gd 1.0. New programs should draw dashed lines using the normal gdImageLine function and the new gdImageSetStyle function.

gdImageDashedLine is used to draw a dashed line between two endpoints (x1,y1 and x2, y2). The line is drawn using the color index specified. The portions of the line that are not drawn are left transparent so the background is visible.

... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a dashed line from the upper left corner to the lower right corner. */
gdImageDashedLine(im, 0, 0, 99, 99);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImagePolygon(gdImagePtr im, gdPointPtr points, int pointsTotal, int color) (FUNCTION)
gdImagePolygon is used to draw a polygon with the verticies (at least 3) specified, using the color index specified. See also gdImageFilledPolygon.
... inside a function ...
gdImagePtr im;
int black;
int white;
/* Points of polygon */
gdPoint points[3];
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a triangle. */
points[0].x = 50;
points[0].y = 0;
points[1].x = 99;
points[1].y = 99;
points[2].x = 0;
points[2].y = 99;
gdImagePolygon(im, points, 3, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color) (FUNCTION)
gdImageRectangle is used to draw a rectangle with the two corners (upper left first, then lower right) specified, using the color index specified.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a rectangle occupying the central area. */
gdImageRectangle(im, 25, 25, 74, 74, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFilledPolygon(gdImagePtr im, gdPointPtr points, int pointsTotal, int color) (FUNCTION)
gdImageFilledPolygon is used to fill a polygon with the verticies (at least 3) specified, using the color index specified. See also gdImagePolygon.
... inside a function ...
gdImagePtr im;
int black;
int white;
int red;
/* Points of polygon */
gdPoint points[3];
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Allocate the color red. */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* Draw a triangle. */
points[0].x = 50;
points[0].y = 0;
points[1].x = 99;
points[1].y = 99;
points[2].x = 0;
points[2].y = 99;
/* Paint it in white */
gdImageFilledPolygon(im, points, 3, white);
/* Outline it in red; must be done second */
gdImagePolygon(im, points, 3, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFilledRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color) (FUNCTION)
gdImageFilledRectangle is used to draw a solid rectangle with the two corners (upper left first, then lower right) specified, using the color index specified.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = int gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a filled rectangle occupying the central area. */
gdImageFilledRectangle(im, 25, 25, 74, 74, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageArc(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color) (FUNCTION)
gdImageArc is used to draw a partial ellipse centered at the given point, with the specified width and height in pixels. The arc begins at the position in degrees specified by s and ends at the position specified by e. The arc is drawn in the color specified by the last argument. A circle can be drawn by beginning from 0 degrees and ending at 360 degrees, with width and height being equal. e must be greater than s. Values greater than 360 are interpreted modulo 360.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 50);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Inscribe an ellipse in the image. */
gdImageArc(im, 50, 25, 98, 48, 0, 360, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFilledArc(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color, int style) (FUNCTION)
gdImageFilledArc is used to draw a partial ellipse centered at the given point, with the specified width and height in pixels. The arc begins at the position in degrees specified by s and ends at the position specified by e. The arc is filled in the color specified by the second to last argument. A circle can be drawn by beginning from 0 degrees and ending at 360 degrees, with width and height being equal. e must be greater than s. Values greater than 360 are interpreted modulo 360. The last argument is a bitwise OR of the following possibilities:
  • gdArc
  • gdChord
  • gdPie (synonym for gdChord)
  • gdNoFill
  • gdEdged
gdArc and gdChord are mutually exclusive; gdChord just connects the starting and ending angles with a straight line, while gdArc produces a rounded edge. gdPie is a synonym for gdArc. gdNoFill indicates that the arc or chord should be outlined, not filled. gdEdged, used together with gdNoFill, indicates that the beginning and ending angles should be connected to the center; this is a good way to outline (rather than fill) a 'pie slice'.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 50);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Inscribe a filled pie slice in the image. */
gdImageFilledArc(im, 50, 25, 98, 48, 0, 45, white, gdArc);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFilledEllipse(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color) (FUNCTION)
gdImageFilledEllipse is used to draw an ellipse centered at the given point, with the specified width and height in pixels. The ellipse is filled in the color specified by the last argument. A circle can be drawn by beginning from 0 degrees and ending at 360 degrees, with width and height being equal. e must be greater than s. Values greater than 360 are interpreted modulo 360.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 50);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Inscribe a filled ellipse in the image. */
gdImageFilledEllipse(im, 50, 25, 98, 48, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFillToBorder(gdImagePtr im, int x, int y, int border, int color) (FUNCTION)
gdImageFillToBorder floods a portion of the image with the specified color, beginning at the specified point and stopping at the specified border color. For a way of flooding an area defined by the color of the starting point, see gdImageFill.

The border color cannot be a special color such as gdTiled; it must be a proper solid color. The fill color can be, however.

Note that gdImageFillToBorder is recursive. It is not the most naive implementation possible, and the implementation is expected to improve, but there will always be degenerate cases in which the stack can become very deep. This can be a problem in MSDOS and MS Windows 3.1 environments. (Of course, in a Unix or Windows 95/98/NT environment with a proper stack, this is not a problem at all.)

... inside a function ...
gdImagePtr im;
int black;
int white;
int red;
im = gdImageCreate(100, 50);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Allocate the color red. */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* Inscribe an ellipse in the image. */
gdImageArc(im, 50, 25, 98, 48, 0, 360, white);
/* Flood-fill the ellipse. Fill color is red, border color is
	white (ellipse). */
gdImageFillToBorder(im, 50, 50, white, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFill(gdImagePtr im, int x, int y, int color) (FUNCTION)
gdImageFill floods a portion of the image with the specified color, beginning at the specified point and flooding the surrounding region of the same color as the starting point. For a way of flooding a region defined by a specific border color rather than by its interior color, see gdImageFillToBorder.

The fill color can be gdTiled, resulting in a tile fill using another image as the tile. However, the tile image cannot be transparent. If the image you wish to fill with has a transparent color index, call gdImageTransparent on the tile image and set the transparent color index to -1 to turn off its transparency.

Note that gdImageFill is recursive. It is not the most naive implementation possible, and the implementation is expected to improve, but there will always be degenerate cases in which the stack can become very deep. This can be a problem in MSDOS and MS Windows environments. (Of course, in a Unix or Windows 95/98/NT environment with a proper stack, this is not a problem at all.)

... inside a function ...
gdImagePtr im;
int black;
int white;
int red;
im = gdImageCreate(100, 50);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Allocate the color red. */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* Inscribe an ellipse in the image. */
gdImageArc(im, 50, 25, 98, 48, 0, 360, white);
/* Flood-fill the ellipse. Fill color is red, and will replace the
	black interior of the ellipse. */
gdImageFill(im, 50, 50, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageSetBrush(gdImagePtr im, gdImagePtr brush) (FUNCTION)
A "brush" is an image used to draw wide, shaped strokes in another image. Just as a paintbrush is not a single point, a brush image need not be a single pixel. Any gd image can be used as a brush, and by setting the transparent color index of the brush image with gdImageColorTransparent, a brush of any shape can be created. All line-drawing functions, such as gdImageLine and gdImagePolygon, will use the current brush if the special "color" gdBrushed or gdStyledBrushed is used when calling them.

gdImageSetBrush is used to specify the brush to be used in a particular image. You can set any image to be the brush. If the brush image does not have the same color map as the first image, any colors missing from the first image will be allocated. If not enough colors can be allocated, the closest colors already available will be used. This allows arbitrary PNGs to be used as brush images. It also means, however, that you should not set a brush unless you will actually use it; if you set a rapid succession of different brush images, you can quickly fill your color map, and the results will not be optimal.

You need not take any special action when you are finished with a brush. As for any other image, if you will not be using the brush image for any further purpose, you should call gdImageDestroy. You must not use the color gdBrushed if the current brush has been destroyed; you can of course set a new brush to replace it.

... inside a function ...
gdImagePtr im, brush;
FILE *in;
int black;
im = gdImageCreate(100, 100);
/* Open the brush PNG. For best results, portions of the
	brush that should be transparent (ie, not part of the
	brush shape) should have the transparent color index. */
in = fopen("star.png", "rb");
brush = gdImageCreateFromPng(in);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
gdImageSetBrush(im, brush);
/* Draw a line from the upper left corner to the lower right corner
	using the brush. */
gdImageLine(im, 0, 0, 99, 99, gdBrushed);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
/* Destroy the brush image */
gdImageDestroy(brush);
void gdImageSetTile(gdImagePtr im, gdImagePtr tile) (FUNCTION)
A "tile" is an image used to fill an area with a repeated pattern. Any gd image can be used as a tile, and by setting the transparent color index of the tile image with gdImageColorTransparent, a tile that allows certain parts of the underlying area to shine through can be created. All region-filling functions, such as gdImageFill and gdImageFilledPolygon, will use the current tile if the special "color" gdTiled is used when calling them.

gdImageSetTile is used to specify the tile to be used in a particular image. You can set any image to be the tile. If the tile image does not have the same color map as the first image, any colors missing from the first image will be allocated. If not enough colors can be allocated, the closest colors already available will be used. This allows arbitrary PNGs to be used as tile images. It also means, however, that you should not set a tile unless you will actually use it; if you set a rapid succession of different tile images, you can quickly fill your color map, and the results will not be optimal.

You need not take any special action when you are finished with a tile. As for any other image, if you will not be using the tile image for any further purpose, you should call gdImageDestroy. You must not use the color gdTiled if the current tile has been destroyed; you can of course set a new tile to replace it.

... inside a function ...
gdImagePtr im, tile;
FILE *in;
int black;
im = gdImageCreate(100, 100);
/* Open the tile PNG. For best results, portions of the
	tile that should be transparent (ie, allowing the
	background to shine through) should have the transparent
	color index. */
in = fopen("star.png", "rb");
tile = gdImageCreateFromPng(in);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
gdImageSetTile(im, tile);
/* Fill an area using the tile. */
gdImageFilledRectangle(im, 25, 25, 75, 75, gdTiled);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
/* Destroy the tile image */
gdImageDestroy(tile);
void gdImageSetStyle(gdImagePtr im, int *style, int styleLength) (FUNCTION)
It is often desirable to draw dashed lines, dotted lines, and other variations on a broken line. gdImageSetStyle can be used to set any desired series of colors, including a special color that leaves the background intact, to be repeated during the drawing of a line.

To use gdImageSetStyle, create an array of integers and assign them the desired series of color values to be repeated. You can assign the special color value gdTransparent to indicate that the existing color should be left unchanged for that particular pixel (allowing a dashed line to be attractively drawn over an existing image).

Then, to draw a line using the style, use the normal gdImageLine function with the special color value gdStyled.

As of version 1.1.1, the style array is copied when you set the style, so you need not be concerned with keeping the array around indefinitely. This should not break existing code that assumes styles are not copied.

You can also combine styles and brushes to draw the brush image at intervals instead of in a continuous stroke. When creating a style for use with a brush, the style values are interpreted differently: zero (0) indicates pixels at which the brush should not be drawn, while one (1) indicates pixels at which the brush should be drawn. To draw a styled, brushed line, you must use the special color value gdStyledBrushed. For an example of this feature in use, see gddemo.c (provided in the distribution).

gdImagePtr im;
int styleDotted[2], styleDashed[6];
FILE *in;
int black;
int red;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
red = gdImageColorAllocate(im, 255, 0, 0);	
/* Set up dotted style. Leave every other pixel alone. */
styleDotted[0] = red;
styleDotted[1] = gdTransparent;
/* Set up dashed style. Three on, three off. */
styleDashed[0] = red;
styleDashed[1] = red;
styleDashed[2] = red;
styleDashed[3] = gdTransparent;
styleDashed[4] = gdTransparent;
styleDashed[5] = gdTransparent;
/* Set dotted style. Note that we have to specify how many pixels are
	in the style! */
gdImageSetStyle(im, styleDotted, 2);
/* Draw a line from the upper left corner to the lower right corner. */
gdImageLine(im, 0, 0, 99, 99, gdStyled);
/* Now the dashed line. */
gdImageSetStyle(im, styleDashed, 6);
gdImageLine(im, 0, 99, 0, 99, gdStyled);

/* ... Do something with the image, such as saving it to a file ... */

/* Destroy it */
gdImageDestroy(im);
void gdImageAlphaBlending(gdImagePtr im, int blending) (FUNCTION)
The gdImageAlphaBlending function allows for two different modes of drawing on truecolor images. In blending mode, the alpha channel component of the color supplied to all drawing functions, such as gdImageSetPixel, determines how much of the underlying color should be allowed to shine through. As a result, gd automatically blends the existing color at that point with the drawing color, and stores the result in the image. The resulting pixel is opaque. In non-blending mode, the drawing color is copied literally with its alpha channel information, replacing the destination pixel. Blending mode is not available when drawing on palette images.
gdImagePtr im;
int red, blue;
im = gdImageCreateTrueColor(100, 100);
/* Background color */
red = gdTrueColor(255, 0, 0);	
gdImageFilledRectangle(im, 0, 0, 100, 100, red);
/* Drawing color. Full transparency would be an alpha channel value
	of 127 (gd has a 7 bit alpha chnanel). 0 is opaque,
	127 is transparent. So cut gdAlphaTransparent in half to get
	50% blending. */
blue = gdTrueColorAlpha(0, 0, 255, gdAlphaTransparent / 2);	
/* Draw with blending. Result will be 50% red, 50% blue: yellow 
	(emitted light, remember, not reflected light. What you learned 
	in Kindergarten is wrong here). */
gdImageAlphaBlending(im, 1);
gdImageFilledRectangle(im, 0, 0, 25, 25, blue);
/* Draw without blending. Result will be 50% blue, 50%
	the background color of the image viewer or web browser
	used; results in browsers that don't support
	semi-transparent pixels are unpredictable! */
gdImageAlphaBlending(im, 0);
gdImageFilledRectangle(im, 75, 75, 25, 25, blue);
/* Write the image to disk, etc. */

Query Functions

int gdImageAlpha(gdImagePtr im, int color) (MACRO)
gdImageAlpha is a macro which returns the alpha channel component of the specified color index. Alpha channel values vary between 0 (gdAlphaOpaque), which does not blend at all with the background, through 127 (gdAlphaTransparent), which allows the background to shine through 100%. Use this macro rather than accessing the structure members directly. int gdImageBlue(gdImagePtr im, int color) (MACRO)
gdImageBlue is a macro which returns the blue component of the specified color index. Use this macro rather than accessing the structure members directly.
int gdImageGetPixel(gdImagePtr im, int x, int y) (FUNCTION)
gdImageGetPixel() retrieves the color index of a particular pixel. Always use this function to query pixels; do not access the pixels of the gdImage structure directly.
... inside a function ...
FILE *in;
gdImagePtr im;
int c;
in = fopen("mypng.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
c = gdImageGetPixel(im, gdImageSX(im) / 2, gdImageSY(im) / 2);
printf("The value of the center pixel is %d; RGB values are %d,%d,%d\n",
	c, im->red[c], im->green[c], im->blue[c]);
gdImageDestroy(im);
int gdImageBoundsSafe(gdImagePtr im, int x, int y) (FUNCTION)
gdImageBoundsSafe returns true (1) if the specified point is within the bounds of the image, false (0) if not. This function is intended primarily for use by those who wish to add functions to gd. All of the gd drawing functions already clip safely to the edges of the image.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
if (gdImageBoundsSafe(im, 50, 50)) {
	printf("50, 50 is within the image bounds\n");
} else {
	printf("50, 50 is outside the image bounds\n");
}
gdImageDestroy(im);
int gdImageGreen(gdImagePtr im, int color) (MACRO)
gdImageGreen is a macro which returns the green component of the specified color index. Use this macro rather than accessing the structure members directly.
int gdImageRed(gdImagePtr im, int color) (MACRO)
gdImageRed is a macro which returns the red component of the specified color index. Use this macro rather than accessing the structure members directly.
int gdImageSX(gdImagePtr im) (MACRO)
gdImageSX is a macro which returns the width of the image in pixels. Use this macro rather than accessing the structure members directly.
int gdImageSY(gdImagePtr im) (MACRO)
gdImageSY is a macro which returns the height of the image in pixels. Use this macro rather than accessing the structure members directly.

Fonts and text-handling functions

void gdImageChar(gdImagePtr im, gdFontPtr font, int x, int y, int c, int color) (FUNCTION)
gdImageChar is used to draw single characters on the image. (To draw multiple characters, use gdImageString or gdImageString16. See also gdImageStringFT for a high quality solution.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The character specified by the fifth argument is drawn from left to right in the specified color. (See gdImageCharUp for a way of drawing vertical text.) Pixels not set by a particular character retain their previous color.
#include "gd.h"
#include "gdfontl.h"
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a character. */
gdImageChar(im, gdFontLarge, 0, 0, 'Q', white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageCharUp(gdImagePtr im, gdFontPtr font, int x, int y, int c, int color) (FUNCTION)
gdImageCharUp is used to draw single characters on the image, rotated 90 degrees. (To draw multiple characters, use gdImageStringUp or gdImageStringUp16.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The character specified by the fifth argument is drawn from bottom to top, rotated at a 90-degree angle, in the specified color. (See gdImageChar for a way of drawing horizontal text.) Pixels not set by a particular character retain their previous color.
#include "gd.h"
#include "gdfontl.h"
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a character upwards so it rests against the top of the image. */
gdImageCharUp(im, gdFontLarge,
	0, gdFontLarge->h, 'Q', white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageString(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color) (FUNCTION)
gdImageString is used to draw multiple characters on the image. (To draw single characters, use gdImageChar.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The null-terminated C string specified by the fifth argument is drawn from left to right in the specified color. (See gdImageStringUp for a way of drawing vertical text. See also gdImageStringFT for a high quality solution.) Pixels not set by a particular character retain their previous color.
#include "gd.h"
#include "gdfontl.h"
#include <string.h>
... inside a function ...
gdImagePtr im;
int black;
int white;
/* String to draw. */
char *s = "Hello.";
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a centered string. */
gdImageString(im, gdFontLarge,
	im->w / 2 - (strlen(s) * gdFontLarge->w / 2),
	im->h / 2 - gdFontLarge->h / 2,
	s, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageString16(gdImagePtr im, gdFontPtr font, int x, int y, unsigned short *s, int color) (FUNCTION)
gdImageString is used to draw multiple 16-bit characters on the image. (To draw single characters, use gdImageChar.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The null-terminated string of characters represented as 16-bit unsigned short integers specified by the fifth argument is drawn from left to right in the specified color. (See gdImageStringUp16 for a way of drawing vertical text.) Pixels not set by a particular character retain their previous color.

This function was added in gd1.3 to provide a means of rendering fonts with more than 256 characters for those who have them. A more frequently used routine is gdImageString.

void gdImageStringUp(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color) (FUNCTION)
gdImageStringUp is used to draw multiple characters on the image, rotated 90 degrees. (To draw single characters, use gdImageCharUp.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts.The null-terminated C string specified by the fifth argument is drawn from bottom to top (rotated 90 degrees) in the specified color. (See gdImageString for a way of drawing horizontal text.) Pixels not set by a particular character retain their previous color.
#include "gd.h"
#include "gdfontl.h"
#include <string.h>
... inside a function ...
gdImagePtr im;
int black;
int white;
/* String to draw. */
char *s = "Hello.";
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a centered string going upwards. Axes are reversed,
	and Y axis is decreasing as the string is drawn. */
gdImageStringUp(im, gdFontLarge,
	im->w / 2 - gdFontLarge->h / 2,
	im->h / 2 + (strlen(s) * gdFontLarge->w / 2),
	s, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageStringUp16(gdImagePtr im, gdFontPtr font, int x, int y, unsigned short *s, int color) (FUNCTION)
gdImageString is used to draw multiple 16-bit characters vertically on the image. (To draw single characters, use gdImageChar.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The null-terminated string of characters represented as 16-bit unsigned short integers specified by the fifth argument is drawn from bottom to top in the specified color. (See gdImageStringUp16 for a way of drawing horizontal text.) Pixels not set by a particular character retain their previous color.

This function was added in gd1.3 to provide a means of rendering fonts with more than 256 characters for those who have them. A more frequently used routine is gdImageStringUp.

char *gdImageStringFT(gdImagePtr im, int *brect, int fg, char *fontname, double ptsize, double angle, int x, int y, char *string) (FUNCTION)
RECOMMENDED. New in 1.8.4. gdImageStringFT draws text using the FreeType 2.x library.

gdImageStringFT draws a string of anti-aliased characters on the image using the FreeType library to render user-supplied TrueType fonts. We do not provide TrueType fonts (.ttf and .ttc files). Obtaining them is entirely up to you. The string is anti-aliased, meaning that there should be fewer "jaggies" visible. The fontname is the full pathname to a TrueType font file, or a font face name if the GDFONTPATH environment variable or FreeType's DEFAULT_FONTPATH variable have been set intelligently. The string may be arbitrarily scaled (ptsize) and rotated (angle in radians).

The user-supplied int brect[8] array is filled on return from gdImageStringFT with the 8 elements representing the 4 corner coordinates of the bounding rectangle.
0 lower left corner, X position
lower left corner, Y position
lower right corner, X position
3 lower right corner, Y position
4 upper right corner, X position
5 upper right corner, Y position
6 upper left corner, X position
7 upper left corner, Y position

The points are relative to the text regardless of the angle, so "upper left" means in the top left-hand corner seeing the text horizontally.

Use a NULL gdImagePtr to get the bounding rectangle without rendering. This is a relatively cheap operation if followed by a rendering of the same string, because of the caching of the partial rendering during bounding rectangle calculation.

The string is rendered in the color indicated by the gf color index. Use the negative of the desired color index to disable anti-aliasing.

The string may contain UTF-8 sequences like: "&#192;"

gdImageStringFT will return a null char* on success, or an error string on failure.

#include "gd.h"
#include <string.h>
... inside a function ...
gdImagePtr im;
int black;
int white;
int brect[8];
int x, y;
char *err;

char *s = "Hello."; /* String to draw. */
double sz = 40.;
char *f = "/usr/local/share/ttf/Times.ttf";  /* User supplied font */

/* obtain brect so that we can size the image */
err = gdImageStringFT(NULL,&brect[0],0,f,sz,0.,0,0,s);
if (err) {fprintf(stderr,err); return 1;}

/* create an image big enough for the string plus a little whitespace */
x = brect[2]-brect[6] + 6;
y = brect[3]-brect[7] + 6;
im = gdImageCreate(x,y);

/* Background color (first allocated) */
white = gdImageColorResolve(im, 255, 255, 255);
black = gdImageColorResolve(im, 0, 0, 0);

/* render the string, offset origin to center string*/
/* note that we use top-left coordinate for adjustment
 * since gd origin is in top-left with y increasing downwards. */
x = 3 - brect[6];
y = 3 - brect[7];
err = gdImageStringFT(im,&brect[0],black,f,sz,0.0,x,y,s);
if (err) {fprintf(stderr,err); return 1;}

/* Write img to stdout */
gdImagePng(im, stdout);

/* Destroy it */
gdImageDestroy(im);
char *gdImageStringTTF(gdImagePtr im, int *brect, int fg, char *fontname, double ptsize, double angle, int x, int y, char *string) (FUNCTION)
DEPRECATED. THis function simply invokes gdImageStringFT for backwards compatibility with old code that was written with FreeType 1.x. /DL>

Color-handling functions

int gdImageColorAllocate(gdImagePtr im, int r, int g, int b) (FUNCTION)
gdImageColorAllocate finds the first available color index in the image specified, sets its RGB values to those requested (255 is the maximum for each), and returns the index of the new color table entry, or an RGBA value in the case of a truecolor image; in either case you can then use the returned value as a parameter to drawing functions. When creating a new palette-based image, the first time you invoke this function, you are setting the background color for that image.

In the event that all gdMaxColors colors (256) have already been allocated, gdImageColorAllocate will return -1 to indicate failure. (This is not uncommon when working with existing PNG files that already use 256 colors.) Note that gdImageColorAllocate does not check for existing colors that match your request; see gdImageColorExact, gdImageColorClosest and gdImageColorClosestHWB for ways to locate existing colors that approximate the color desired in situations where a new color is not available. Also see gdImageColorResolve, new in gd-1.6.2.

... inside a function ...
gdImagePtr im;
int black;
int red;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color red. */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* Draw a dashed line from the upper left corner to the lower right corner. */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorAllocateAlpha(gdImagePtr im, int r, int g, int b, int a) (FUNCTION)
gdImageColorAllocateAlpha finds the first available color index in the image specified, sets its RGBA values to those requested (255 is the maximum for red, green and blue, and 127 represents full transparency for alpha), and returns the index of the new color table entry, or an RGBA value in the case of a truecolor image; in either case you can then use the returned value as a parameter to drawing functions. When creating a new palette-based image, the first time you invoke this function, you are setting the background color for that image.

In the event that all gdMaxColors colors (256) have already been allocated, gdImageColorAllocate will return -1 to indicate failure. (This is not uncommon when working with existing palette-based PNG files that already use 256 colors.) Note that gdImageColorAllocateAlpha does not check for existing colors that match your request; see gdImageColorExactAlpha and gdImageColorClosestAlpha for ways to locate existing colors that approximate the color desired in situations where a new color is not available. Also see gdImageColorResolveAlpha.

... inside a function ...
gdImagePtr im;
int black;
int red;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color red, 50% transparent. */
red = gdImageColorAllocateAlpha(im, 255, 0, 0, 64);	
/* Draw a dashed line from the upper left corner to the lower right corner. */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorClosest(gdImagePtr im, int r, int g, int b) (FUNCTION)
gdImageColorClosest searches the colors which have been defined thus far in the image specified and returns the index of the color with RGB values closest to those of the request. (Closeness is determined by Euclidian distance, which is used to determine the distance in three-dimensional color space between colors.)

If no colors have yet been allocated in the image, gdImageColorClosest returns -1.

When applied to a truecolor image, this function always succeeds in returning the desired color.

This function is most useful as a backup method for choosing a drawing color when an image already contains gdMaxColors (256) colors and no more can be allocated. (This is not uncommon when working with existing PNG files that already use many colors.) See gdImageColorExact for a method of locating exact matches only.

... inside a function ...
gdImagePtr im;
FILE *in;
int red;
/* Let's suppose that photo.png is a scanned photograph with
	many colors. */
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* Try to allocate red directly */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* If we fail to allocate red... */
if (red == (-1)) {
	/* Find the closest color instead. */
	red = gdImageColorClosest(im, 255, 0, 0);
}
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorClosestAlpha(gdImagePtr im, int r, int g, int b, int a) (FUNCTION)
gdImageColorClosest searches the colors which have been defined thus far in the image specified and returns the index of the color with RGBA values closest to those of the request. (Closeness is determined by Euclidian distance, which is used to determine the distance in four-dimensional color/alpha space between colors.)

If no colors have yet been allocated in the image, gdImageColorClosestAlpha returns -1.

When applied to a truecolor image, this function always succeeds in returning the desired color.

This function is most useful as a backup method for choosing a drawing color when a palette-based image already contains gdMaxColors (256) colors and no more can be allocated. (This is not uncommon when working with existing palette-based PNG files that already use many colors.) See gdImageColorExactAlpha for a method of locating exact matches only.

... inside a function ...
gdImagePtr im;
FILE *in;
int red;
/* Let's suppose that photo.png is a scanned photograph with
	many colors. */
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* Try to allocate red, 50% transparent, directly */
red = gdImageColorAllocateAlpha(im, 255, 0, 0, 64);	
/* If we fail to allocate red... */
if (red == (-1)) {
	/* Find the closest color instead. */
	red = gdImageColorClosestAlpha(im, 255, 0, 0, 64);
}
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorClosestHWB(gdImagePtr im, int r, int g, int b) (FUNCTION)
gdImageColorClosestHWB searches the colors which have been defined thus far in the image specified and returns the index of the color with hue, whiteness and blackness closest to the requested color. This scheme is typically superior to the Euclidian distance scheme used by gdImageColorClosest.

If no colors have yet been allocated in the image, gdImageColorClosestHWB returns -1.

When applied to a truecolor image, this function always succeeds in returning the desired color.

This function is most useful as a backup method for choosing a drawing color when an image already contains gdMaxColors (256) colors and no more can be allocated. (This is not uncommon when working with existing PNG files that already use many colors.) See gdImageColorExact for a method of locating exact matches only.

... inside a function ...
gdImagePtr im;
FILE *in;
int red;
/* Let's suppose that photo.png is a scanned photograph with
	many colors. */
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* Try to allocate red directly */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* If we fail to allocate red... */
if (red == (-1)) {
	/* Find the closest color instead. */
	red = gdImageColorClosestHWB(im, 255, 0, 0);
}
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorExact(gdImagePtr im, int r, int g, int b) (FUNCTION)
gdImageColorExact searches the colors which have been defined thus far in the image specified and returns the index of the first color with RGB values which exactly match those of the request. If no allocated color matches the request precisely, gdImageColorExact returns -1. See gdImageColorClosest for a way to find the color closest to the color requested.

When applied to a truecolor image, this function always succeeds in returning the desired color.

... inside a function ...
gdImagePtr im;
int red;
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* The image may already contain red; if it does, we'll save a slot
	in the color table by using that color. */
/* Try to allocate red directly */
red = gdImageColorExact(im, 255, 0, 0);
/* If red isn't already present... */
if (red == (-1)) {
	/* Second best: try to allocate it directly. */
	red = gdImageColorAllocate(im, 255, 0, 0);	
	/* Out of colors, so find the closest color instead. */
	red = gdImageColorClosest(im, 255, 0, 0);
}
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorResolve(gdImagePtr im, int r, int g, int b) (FUNCTION)
gdImageColorResolve searches the colors which have been defined thus far in the image specified and returns the index of the first color with RGB values which exactly match those of the request. If no allocated color matches the request precisely, then gdImageColorResolve tries to allocate the exact color. If there is no space left in the color table then gdImageColorResolve returns the closest color (as in gdImageColorClosest). This function always returns an index of a color.

When applied to a truecolor image, this function always succeeds in returning the desired color.

... inside a function ...
gdImagePtr im;
int red;
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* The image may already contain red; if it does, we'll save a slot
	in the color table by using that color. */
/* Get index of red, or color closest to red */
red = gdImageColorResolve(im, 255, 0, 0);
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorResolveAlpha(gdImagePtr im, int r, int g, int b, int a) (FUNCTION)
gdImageColorResolveAlpha searches the colors which have been defined thus far in the image specified and returns the index of the first color with RGBA values which exactly match those of the request. If no allocated color matches the request precisely, then gdImageColorResolveAlpha tries to allocate the exact color. If there is no space left in the color table then gdImageColorResolveAlpha returns the closest color (as in gdImageColorClosestAlpha). This function always returns an index of a color.

When applied to a truecolor image, this function always succeeds in returning the desired color.

... inside a function ...
gdImagePtr im;
int red;
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* The image may already contain red; if it does, we'll save a slot
	in the color table by using that color. */
/* Get index of red, 50% transparent, or the next best thing */
red = gdImageColorResolveAlpha(im, 255, 0, 0, 64);
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorsTotal(gdImagePtr im) (MACRO)
gdImageColorsTotal is a macro which returns the number of colors currently allocated in a palette image. For truecolor images, the result of this call is undefined and should not be used.
int gdImageColorRed(gdImagePtr im, int c) (MACRO)
gdImageColorRed is a macro which returns the red portion of the specified color in the image. This macro works for both palette and truecolor images.
int gdImageColorGreen(gdImagePtr im, int c) (MACRO)
gdImageColorGreen is a macro which returns the green portion of the specified color in the image. This macro works for both palette and truecolor images.
int gdImageColorBlue(gdImagePtr im, int c) (MACRO)
gdImageColorBlue is a macro which returns the green portion of the specified color in the image. This macro works for both palette and truecolor images.
int gdImageGetInterlaced(gdImagePtr im) (MACRO)
gdImageGetInterlaced is a macro which returns true (1) if the image is interlaced, false (0) if not. Use this macro to obtain this information; do not access the structure directly. See gdImageInterlace for a means of interlacing images.
int gdImageGetTransparent(gdImagePtr im) (MACRO)
gdImageGetTransparent is a macro which returns the current transparent color index in the image. If there is no transparent color, gdImageGetTransparent returns -1. Use this macro to obtain this information; do not access the structure directly.
void gdImageColorDeallocate(gdImagePtr im, int color) (FUNCTION)
gdImageColorDeallocate marks the specified color as being available for reuse. It does not attempt to determine whether the color index is still in use in the image. After a call to this function, the next call to gdImageColorAllocate for the same image will set new RGB values for that color index, changing the color of any pixels which have that index as a result. If multiple calls to gdImageColorDeallocate are made consecutively, the lowest-numbered index among them will be reused by the next gdImageColorAllocate call.
... inside a function ...
gdImagePtr im;
int red, blue;
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* Look for red in the color table. */
red = gdImageColorExact(im, 255, 0, 0);
/* If red is present... */
if (red != (-1)) {
	/* Deallocate it. */
	gdImageColorDeallocate(im, red);
	/* Allocate blue, reusing slot in table.
		Existing red pixels will change color. */
	blue = gdImageColorAllocate(im, 0, 0, 255);
}
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageColorTransparent(gdImagePtr im, int color) (FUNCTION)
gdImageColorTransparent sets the transparent color index for the specified image to the specified index. To indicate that there should be no transparent color, invoke gdImageColorTransparent with a color index of -1. Note that JPEG images do not support transparency, so this setting has no effect when writing JPEG images.

The color index used should be an index allocated by gdImageColorAllocate, whether explicitly invoked by your code or implicitly invoked by loading an image. In order to ensure that your image has a reasonable appearance when viewed by users who do not have transparent background capabilities (or when you are writing a JPEG-format file, which does not support transparency), be sure to give reasonable RGB values to the color you allocate for use as a transparent color, even though it will be transparent on systems that support PNG transparency.

... inside a function ...
gdImagePtr im;
int black;
FILE *in, *out;
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* Look for black in the color table and make it transparent. */
black = gdImageColorExact(im, 0, 0, 0);
/* If black is present... */
if (black != (-1)) {
	/* Make it transparent */
	gdImageColorTransparent(im, black);
}
/* Save the newly-transparent image back to the file */
out = fopen("photo.png", "wb");
gdImagePng(im, out);
fclose(out);
/* Destroy it */
gdImageDestroy(im);
void gdImageTrueColor(int red, int green, int blue) (MACRO)
gdImageTrueColor returns an RGBA color value for use when drawing on a truecolor image. Red, green, and blue are all in the range between 0 (off) and 255 (maximum). This macro should not be used with palette-based images. If you need to write code which is compatible with both palette-based and truecolor images, use gdImageColorResolve.
void gdImageTrueColorAlpha(int red, int green, int blue, int alpha) (MACRO)
gdImageTrueColorAlpha returns an RGBA color value for use when drawing on a truecolor image with alpha channel transparency. Red, green, and blue are all in the range between 0 (off) and 255 (maximum). Alpha is in the range between 0 (opaque) and 127 (fully transparent). This macro should not be used with palette-based images. If you need to write code which is compatible with both palette-based and truecolor images, use gdImageColorResolveAlpha.

Copying and resizing functions

void gdImageCopy(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h) (FUNCTION)
gdImageCopy is used to copy a rectangular portion of one image to another image. (For a way of stretching or shrinking the image in the process, see gdImageCopyResized.)

The dst argument is the destination image to which the region will be copied. The src argument is the source image from which the region is copied. The dstX and dstY arguments specify the point in the destination image to which the region will be copied. The srcX and srcY arguments specify the upper left corner of the region in the source image. The w and h arguments specify the width and height of the region.

When you copy a region from one location in an image to another location in the same image, gdImageCopy will perform as expected unless the regions overlap, in which case the result is unpredictable.

Important note on copying between images: since different images do not necessarily have the same color tables, pixels are not simply set to the same color index values to copy them. gdImageCopy will attempt to find an identical RGB value in the destination image for each pixel in the copied portion of the source image by invoking gdImageColorExact. If such a value is not found, gdImageCopy will attempt to allocate colors as needed using gdImageColorAllocate. If both of these methods fail, gdImageCopy will invoke gdImageColorClosest to find the color in the destination image which most closely approximates the color of the pixel being copied.

... Inside a function ...
gdImagePtr im_in;
gdImagePtr im_out;
int x, y;
FILE *in;
FILE *out;
/* Load a small png to tile the larger one with */
in = fopen("small.png", "rb");
im_in = gdImageCreateFromPng(in);
fclose(in);
/* Make the output image four times as large on both axes */
im_out = gdImageCreate(im_in->sx * 4, im_in->sy * 4);
/* Now tile the larger image using the smaller one */
for (y = 0; (y < 4); y++) {
	for (x = 0; (x < 4); x++) {
		gdImageCopy(im_out, im_in,
			x * im_in->sx, y * im_in->sy,
			0, 0,
			im_in->sx, im_in->sy);
	}
}
out = fopen("tiled.png", "wb");
gdImagePng(im_out, out);
fclose(out);
gdImageDestroy(im_in);
gdImageDestroy(im_out);
void gdImageCopyResized(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int destW, int destH, int srcW, int srcH) (FUNCTION)
gdImageCopyResized is used to copy a rectangular portion of one image to another image. The X and Y dimensions of the original region and the destination region can vary, resulting in stretching or shrinking of the region as appropriate. (For a simpler version of this function which does not deal with resizing, see gdImageCopy.)

The dst argument is the destination image to which the region will be copied. The src argument is the source image from which the region is copied. The dstX and dstY arguments specify the point in the destination image to which the region will be copied. The srcX and srcY arguments specify the upper left corner of the region in the source image. The dstW and dstH arguments specify the width and height of the destination region. The srcW and srcH arguments specify the width and height of the source region and can differ from the destination size, allowing a region to be scaled during the copying process.

When you copy a region from one location in an image to another location in the same image, gdImageCopy will perform as expected unless the regions overlap, in which case the result is unpredictable. If this presents a problem, create a scratch image in which to keep intermediate results.

Important note on copying between images: since images do not necessarily have the same color tables, pixels are not simply set to the same color index values to copy them. gdImageCopy will attempt to find an identical RGB value in the destination image for each pixel in the copied portion of the source image by invoking gdImageColorExact. If such a value is not found, gdImageCopy will attempt to allocate colors as needed using gdImageColorAllocate. If both of these methods fail, gdImageCopy will invoke gdImageColorClosest to find the color in the destination image which most closely approximates the color of the pixel being copied.

... Inside a function ...
gdImagePtr im_in;
gdImagePtr im_out;
int x, y;
FILE *in;
FILE *out;
/* Load a small png to expand in the larger one */
in = fopen("small.png", "rb");
im_in = gdImageCreateFromPng(in);
fclose(in);
/* Make the output image four times as large on both axes */
im_out = gdImageCreate(im_in->sx * 4, im_in->sy * 4);
/* Now copy the smaller image, but four times larger */
gdImageCopyResized(im_out, im_in, 0, 0, 0, 0,
	im_out->sx, im_out->sy,
	im_in->sx, im_in->sy);	
out = fopen("large.png", "wb");
gdImagePng(im_out, out);
fclose(out);
gdImageDestroy(im_in);
gdImageDestroy(im_out);
void gdImageCopyResampled(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int destW, int destH, int srcW, int srcH) (FUNCTION)
gdImageCopyResampled is used to copy a rectangular portion of one image to another image, smoothly interpolating pixel values so that, in particular, reducing the size of an image still retains a great deal of clarity. The X and Y dimensions of the original region and the destination region can vary, resulting in stretching or shrinking of the region as appropriate. (For a simpler version of this function which does not deal with resizing, see gdImageCopy. For a version which does not interpolate pixel values, see gdImageCopyResized.

Pixel values are only interpolated if the destination image is a truecolor image. Otherwise, gdImageCopyResized is automatically invoked.

The dst argument is the destination image to which the region will be copied. The src argument is the source image from which the region is copied. The dstX and dstY arguments specify the point in the destination image to which the region will be copied. The srcX and srcY arguments specify the upper left corner of the region in the source image. The dstW and dstH arguments specify the width and height of the destination region. The srcW and srcH arguments specify the width and height of the source region and can differ from the destination size, allowing a region to be scaled during the copying process.

When you copy a region from one location in an image to another location in the same image, gdImageCopy will perform as expected unless the regions overlap, in which case the result is unpredictable. If this presents a problem, create a scratch image in which to keep intermediate results.

Important note on copying between images: since images do not necessarily have the same color tables, pixels are not simply set to the same color index values to copy them. If the destination image is a palette image, gd will use the gdImageColorResolve function to determine the best color available.

... Inside a function ...
gdImagePtr im_in;
gdImagePtr im_out;
int x, y;
FILE *in;
FILE *out;
/* Load a large png to shrink in the smaller one */
in = fopen("large.png", "rb");
im_in = gdImageCreateFromPng(in);
fclose(in);
/* Make the output image four times as small on both axes. Use
	a true color image so that we can interpolate colors. */
im_out = gdImageCreateTrueColor(im_in->sx / 4, im_in->sy / 4);
/* Now copy the large image, but four times smaller */
gdImageCopyResampled(im_out, im_in, 0, 0, 0, 0,
	im_out->sx, im_out->sy,
	im_in->sx, im_in->sy);	
out = fopen("large.png", "wb");
gdImagePng(im_out, out);
fclose(out);
gdImageDestroy(im_in);
gdImageDestroy(im_out);
void gdImageCopyMerge(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h, int pct) (FUNCTION)
gdImageCopyMerge is almost identical to gdImageCopy, except that it 'merges' the two images by an amount specified in the last parameter. If the last parameter is 100, then it will function identically to gdImageCopy - the source image replaces the pixels in the destination.

If, however, the pct parameter is less than 100, then the two images are merged. With pct = 0, no action is taken.

This feature is most useful to 'highlight' sections of an image by merging a solid color with pct = 50:

... Inside a function ...
gdImageCopyMerge(im_out, im_in, 100, 200, 0, 0, 30, 50, 50);
void gdImageCopyMergeGray(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h, int pct) (FUNCTION)
gdImageCopyMergeGray is almost identical to gdImageCopyMerge, except that when merging images it preserves the hue of the source by converting the destination pixels to grey scale before the copy operation.
... Inside a function ...
gdImageCopyMergeGray(im_out, im_in, 100, 200, 0, 0, 30, 50, 50);
void gdImagePaletteCopy(gdImagePtr dst, gdImagePtr src) (FUNCTION)
Copies a palette from one image to another, attempting to match the colors in the target image to the colors in the source palette.

Miscellaneous Functions

int gdImageCompare(gdImagePtr im1, gdImagePtr im2) (FUNCTION)
gdImageCompare returns a bitmap indicating if the two images are different. The members of the bitmap are defined in gd.h, but the most important is GD_CMP_IMAGE, which indicated that the images will actually appear different when displayed. Other, less important, differences relate to pallette entries. Any difference in the transparent colour is assumed to make images display differently, even if the transparent colour is not used.
... Inside a function ...
cmpMask = gdImageCompare(im1, im2);
gdImageInterlace(gdImagePtr im, int interlace) (FUNCTION)
gdImageInterlace is used to determine whether an image should be stored in a linear fashion, in which lines will appear on the display from first to last, or in an interlaced fashion, in which the image will "fade in" over several passes. By default, images are not interlaced. (When writing JPEG images, interlacing implies generating progressive JPEG files, which are represented as a series of scans of increasing quality. Noninterlaced gd images result in regular [sequential] JPEG data streams.)

A nonzero value for the interlace argument turns on interlace; a zero value turns it off. Note that interlace has no effect on other functions, and has no meaning unless you save the image in PNG or JPEG format; the gd and xbm formats do not support interlace.

When a PNG is loaded with gdImageCreateFromPng or a JPEG is loaded with gdImageCreateFromJpeg, interlace will be set according to the setting in the PNG or JPEG file.

Note that many PNG and JPEG viewers and web browsers do not support interlace or the incremental display of progressive JPEGs. However, the interlaced PNG or progressive JPEG should still display; it will simply appear all at once, just as other images do.

gdImagePtr im;
FILE *out;
/* ... Create or load the image... */

/* Now turn on interlace */
gdImageInterlace(im, 1);
/* And open an output file */
out = fopen("test.png", "wb");
/* And save the image  -- could also use gdImageJpeg */
gdImagePng(im, out);
fclose(out);
gdImageDestroy(im);
gdFree(void *ptr) (FUNCTION)
gdFree provides a reliable way to free memory allocated by functions such as gdImagePngPtr which return blocks of memory. Use of this function guarantees that the version of free() that is ultimately called will be intended for use with the version of malloc() that originally allocated the block.

Constants

gdBrushed (CONSTANT)
Used in place of a color when invoking a line-drawing function such as gdImageLine or gdImageRectangle. When gdBrushed is used as the color, the brush image set with gdImageSetBrush is drawn in place of each pixel of the line (the brush is usually larger than one pixel, creating the effect of a wide paintbrush). See also gdStyledBrushed for a way to draw broken lines with a series of distinct copies of an image.
gdMaxColors(CONSTANT)
The constant 256. This is the maximum number of colors in a PNG file according to the PNG standard, and is also the maximum number of colors in a gd image.
gdStyled (CONSTANT)
Used in place of a color when invoking a line-drawing function such as gdImageLine or gdImageRectangle. When gdStyled is used as the color, the colors of the pixels are drawn successively from the style that has been set with gdImageSetStyle. If the color of a pixel is equal to gdTransparent, that pixel is not altered. (This mechanism is completely unrelated to the "transparent color" of the image itself; see gdImageColorTransparent gdImageColorTransparent for that mechanism.) See also gdStyledBrushed.
gdStyledBrushed (CONSTANT)
Used in place of a color when invoking a line-drawing function such as gdImageLine or gdImageRectangle. When gdStyledBrushed is used as the color, the brush image set with gdImageSetBrush is drawn at each pixel of the line, providing that the style set with gdImageSetStyle contains a nonzero value (OR gdTransparent, which does not equal zero but is supported for consistency) for the current pixel. (Pixels are drawn successively from the style as the line is drawn, returning to the beginning when the available pixels in the style are exhausted.) Note that this differs from the behavior of gdStyled, in which the values in the style are used as actual pixel colors, except for gdTransparent.
gdDashSize (CONSTANT)
The length of a dash in a dashed line. Defined to be 4 for backwards compatibility with programs that use gdImageDashedLine. New programs should use gdImageSetStyle and call the standard gdImageLine function with the special "color" gdStyled or gdStyledBrushed.
gdTiled (CONSTANT)
Used in place of a normal color in gdImageFilledRectangle, gdImageFilledPolygon, gdImageFill, and gdImageFillToBorder. gdTiled selects a pixel from the tile image set with gdImageSetTile in such a way as to ensure that the filled area will be tiled with copies of the tile image. See the discussions of gdImageFill and gdImageFillToBorder for special restrictions regarding those functions.
gdTransparent (CONSTANT)
Used in place of a normal color in a style to be set with gdImageSetStyle. gdTransparent is not the transparent color index of the image; for that functionality please see gdImageColorTransparent.

About the additional .gd image file format

In addition to reading and writing the PNG and JPEG formats and reading the X Bitmap format, gd has the capability to read and write its own ".gd" format. This format is not intended for general purpose use and should never be used to distribute images. It is not a compressed format. Its purpose is solely to allow very fast loading of images your program needs often in order to build other images for output. If you are experiencing performance problems when loading large, fixed PNG images your program needs to produce its output images, you may wish to examine the functions gdImageCreateFromGd and gdImageGd, which read and write .gd format images.

The program "pngtogd.c" is provided as a simple way of converting .png files to .gd format. I emphasize again that you will not need to use this format unless you have a need for high-speed loading of a few frequently-used images in your program.

About the .gd2 image file format

In addition to reading and writing the PNG format and reading the X Bitmap format, gd has the capability to read and write its own ".gd2" format. This format is not intended for general purpose use and should never be used to distribute images. It is a compressed format allowing pseudo-random access to large image files. Its purpose is solely to allow very fast loading of parts of images If you are experiencing performance problems when loading large, fixed PNG or JPEG images your program needs to produce its output images, you may wish to examine the functions gdImageCreateFromGd2, gdImageCreateFromGd2Part and gdImageGd2, which read and write .gd2 format images.

The program "pngtogd2.c" is provided as a simple way of converting .png files to .gd2 format.

About the gdIOCtx structure

Version 1.5 of GD added a new style of I/O based on an IOCtx structure (the most up-to-date version can be found in gd_io.h):
typedef struct gdIOCtx {
        int     (*getC)(struct gdIOCtx*);
        int     (*getBuf)(struct gdIOCtx*, void*, int);

        void     (*putC)(struct gdIOCtx*, int);
        int     (*putBuf)(struct gdIOCtx*, const void*, int);

        int     (*seek)(struct gdIOCtx*, const int);
        long    (*tell)(struct gdIOCtx*);

        void    (*free)(struct gdIOCtx*);

} gdIOCtx;
Most functions that accepted files in previous versions now also have a counterpart that accepts an I/O context. These functions have a 'Ctx' suffix.

The Ctx routines use the function pointers in the I/O context pointed to by gdIOCtx to perform all I/O. Examples of how to implement an I/O context can be found in io_file.c (which provides a wrapper for file routines), and io_dp.c (which implements in-memory storage).

It is not necessary to implement all functions in an I/O context if you know that it will only be used in limited cirsumstances. At the time of writing (Version 1.6.1, July 1999), the known requirements are:

All Must have 'free',
Anything that reads from the contextMust have 'getC' and 'getBuf',
Anything that writes to the contextMust have 'putC' and 'putBuf'.
If gdCreateFromGd2Part is calledMust also have 'seek' and 'tell'.
If gdImageGd2 is calledMust also have 'seek' and 'tell'.

Please tell us you're using gd!

When you contact us and let us know you are using gd, you help us justify the time spent in maintaining and improving it. So please let us know. If the results are publicly visible on the web, a URL is a wonderful thing to receive, but if it's not a publicly visible project, a simple note is just as welcome.

If you have problems

If you have any difficulties with gd, feel free to contact the author, Thomas Boutell. Problems relating to the gd2 format should be addressed to Philip Warner.

Be sure to read this manual carefully first.

Alphabetical quick index

gdBrushed | gdDashSize | gdFont | gdFontPtr | gdFree | gdImage | gdImageAlphaBlending | gdImageArc | gdImageBlue | gdImageBoundsSafe | gdImageChar | gdImageCharUp | gdImageColorAllocate | gdImageColorAllocateAlpha | gdImageColorClosest | gdImageColorClosestAlpha | gdImageColorDeallocate | gdImageColorExact | gdImageColorExactAlpha | gdImageColorResolve | gdImageColorResolveAlpha | gdImageColorTransparent | gdImageCopy | gdImageCopyMerge | gdImageMergeGray | gdImageCopyResized | gdImageCopyResampled | gdImageCreate | gdImageCreatePalette | gdImageCreateTrueColor | gdImageCreateFromGd | gdImageCreateFromGd2 | gdImageCreateFromGd2Part | gdImageCreateFromJpeg | gdImageCreateFromPng | gdImageCreateFromPngSource | gdImageCreateFromXbm | gdImageCreateFromXpm | gdImageDashedLine | gdImageDestroy | gdImageFill | gdImageFilledArc | gdImageFilledEllipse | gdImageFillToBorder | gdImageFilledRectangle | gdImageGd | gdImageGd2 | gdImageGetInterlaced | gdImageGetPixel | gdImageGetTransparent | gdImageGreen | gdImageInterlace | gdImageJpeg | gdImageLine | gdImageFilledPolygon | gdImagePaletteCopy | gdImagePng | gdImagePngToSink | gdImagePolygon | gdImagePtr | gdImageWBMP | gdImageRectangle | gdImageRed | gdImageSetBrush | gdImageSetPixel | gdImageSetStyle | gdImageSetTile | gdImageString | gdImageString16 | gdImageStringFT | gdImageStringTTF | gdImageStringUp | gdImageStringUp16 | gdImageWBMP | gdMaxColors | gdPoint | gdStyled | gdStyledBrushed | gdTiled | gdTransparent

Boutell.Com, Inc. libwmf-0.2.13/doc/html/000077500000000000000000000000001441723000300145605ustar00rootroot00000000000000libwmf-0.2.13/doc/html/Makefile.am000066400000000000000000000101721441723000300166150ustar00rootroot00000000000000wmfdocdir = @WMF_DOCDIR@ htmldocdir = $(wmfdocdir)/html install-data-local: @echo "Installing doxymentation"; \ cd $(srcdir) && \ $(mkinstalldirs) $(DESTDIR)$(htmldocdir); \ (for i in *.html doxygen.*; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(htmldocdir)/$$i; \ done) DOCUMENTATION = \ doxygen.gif \ doxygen.png \ index.html \ files.html \ api_8c.html \ api_8h.html \ bbuf_8c.html \ xml_8c.html \ xml_8h.html \ eps_2bmp_8h.html \ fig_2bmp_8h.html \ ipa_2bmp_8h.html \ magick_2bmp_8h.html \ plot_2bmp_8h.html \ svg_2bmp_8h.html \ x_2bmp_8h.html \ xgd_2bmp_8h.html \ clip_8h.html \ include_2libwmf_2color_8h.html \ src_2ipa_2fig_2color_8h.html \ src_2ipa_2ipa_2color_8h.html \ src_2ipa_2x_2color_8h.html \ src_2player_2color_8h.html \ coord_8h.html \ dc_8h.html \ defaults_8h.html \ defs_8h.html \ eps_2device_8h.html \ fig_2device_8h.html \ magick_2device_8h.html \ plot_2device_8h.html \ svg_2device_8h.html \ x_2device_8h.html \ xgd_2device_8h.html \ eps_2draw_8h.html \ fig_2draw_8h.html \ magick_2draw_8h.html \ plot_2draw_8h.html \ svg_2draw_8h.html \ x_2draw_8h.html \ xgd_2draw_8h.html \ eps_8c.html \ eps_8h.html \ fig_8c.html \ fig_8h.html \ font_8c.html \ include_2libwmf_2font_8h.html \ src_2font_8h.html \ src_2ipa_2fig_2font_8h.html \ src_2ipa_2ipa_2font_8h.html \ src_2ipa_2x_2font_8h.html \ src_2ipa_2xgd_2font_8h.html \ foreign_8c.html \ foreign_8h.html \ fund_8h.html \ gd_8h.html \ ipa_8c.html \ ipa_8h.html \ macro_8h.html \ magick_8c.html \ magick_8h.html \ meta_8c.html \ meta_8h.html \ player_8c.html \ plot_8c.html \ plot_8h.html \ record_8h.html \ ipa_2eps_2region_8h.html \ ipa_2fig_2region_8h.html \ ipa_2magick_2region_8h.html \ ipa_2plot_2region_8h.html \ ipa_2svg_2region_8h.html \ ipa_2x_2region_8h.html \ ipa_2xgd_2region_8h.html \ player_2region_8h.html \ stream_8c.html \ svg_8c.html \ svg_8h.html \ template_8c.html \ template_8h.html \ types_8h.html \ wmf_8c.html \ x_8c.html \ x_8h.html \ xgd_8c.html \ annotated.html \ classes.html \ functions.html \ struct__wmf__eps__t.html \ struct__wmf__fig__t.html \ struct__wmf__fig__t_1_1__wmf__fig__image.html \ struct__wmf__foreign__t.html \ struct__wmf__gd__t.html \ struct__wmf__gd__t_1_1__wmf__gd__sink.html \ struct__wmf__magick__t.html \ struct__wmf__magick__t_1_1__wmf__magick__image.html \ struct__wmf__plot__t.html \ struct__wmf__svg__t.html \ struct__wmf__svg__t_1_1__wmf__svg__image.html \ struct__wmf__template__t.html \ struct__wmf__x__t.html \ struct__wmfAPI.html \ struct__wmfAPI__Options.html \ struct__wmfBMP.html \ struct__wmfBMP__Draw__t.html \ struct__wmfBMP__Read__t.html \ struct__wmfBrush.html \ struct__wmfColorData.html \ struct__wmfD__Coord.html \ struct__wmfD__Rect.html \ struct__wmfDC.html \ struct__wmfDrawArc__t.html \ struct__wmfDrawLine__t.html \ struct__wmfDrawPixel__t.html \ struct__wmfDrawRectangle__t.html \ struct__wmfDrawText__t.html \ struct__wmfFlood__t.html \ struct__wmfFont.html \ struct__wmfFontData.html \ struct__wmfFontMap.html \ struct__wmfFontmapData.html \ struct__wmfFT__CacheEntry.html \ struct__wmfFT__Mapping.html \ struct__wmfFunctionReference.html \ struct__wmfGS__FontData.html \ struct__wmfGS__FontInfo.html \ struct__wmfHead.html \ struct__wmfImage.html \ struct__wmfIPAFont.html \ struct__wmfMapping.html \ struct__wmfMetaHeader.html \ struct__wmfPen.html \ struct__wmfPlaceableMetaHeader.html \ struct__wmfPolyLine__t.html \ struct__wmfPolyPoly__t.html \ struct__wmfPolyRectangle__t.html \ struct__wmfRGB.html \ struct__wmfROP__Draw__t.html \ globals.html \ struct__wmfStream.html \ struct__wmfUserData__t.html \ struct__wmfXML__FontData.html \ struct__wmfXML__FontInfo.html \ struct__wmfXML__InputData.html \ struct__wmfWriteFileInfo.html \ struct__wmfAttributeStore.html \ struct__wmfAttributes.html \ canvas_8h.html \ recorder_8c.html \ recorder_8h.html \ metadefs_8h.html \ struct__wmfCanvasBrush.html \ struct__wmfCanvasPen.html \ struct__wmfCanvasFont.html \ struct__wmfConstruct.html \ struct__wmfRecordBox.html \ doxygen.css \ io-wmf_8c.html \ structWmfContext.html EXTRA_DIST = $(DOCUMENTATION) libwmf-0.2.13/doc/html/Makefile.in000066400000000000000000000414601441723000300166320ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2018 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@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/html ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/wmfconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FREETYPE_CONFIG = @FREETYPE_CONFIG@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_DIR = @GDK_PIXBUF_DIR@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GD_DEFS = @GD_DEFS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBWMF_BUILDSTYLE = @LIBWMF_BUILDSTYLE@ LIBWMF_PACKAGE = @LIBWMF_PACKAGE@ LIBWMF_RELEASE = @LIBWMF_RELEASE@ LIBWMF_VERSION = @LIBWMF_VERSION@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_LITE_AGE = @LT_LITE_AGE@ LT_LITE_CURRENT = @LT_LITE_CURRENT@ LT_LITE_REVISION = @LT_LITE_REVISION@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_LIBM = @SYS_LIBM@ VERSION = @VERSION@ WMF_CFLAGS = @WMF_CFLAGS@ WMF_CONFIG_CFLAGS = @WMF_CONFIG_CFLAGS@ WMF_DEFS = @WMF_DEFS@ WMF_DOCDIR = @WMF_DOCDIR@ WMF_FONTDIR = @WMF_FONTDIR@ WMF_GS_FONTDIR = @WMF_GS_FONTDIR@ WMF_GS_FONTMAP = @WMF_GS_FONTMAP@ WMF_LIBFLAGS = @WMF_LIBFLAGS@ WMF_SYS_FONTMAP = @WMF_SYS_FONTMAP@ WMF_XTRA_FONTMAP = @WMF_XTRA_FONTMAP@ XMKMF = @XMKMF@ XML2_CONFIG = @XML2_CONFIG@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ wmfdocdir = @WMF_DOCDIR@ htmldocdir = $(wmfdocdir)/html DOCUMENTATION = \ doxygen.gif \ doxygen.png \ index.html \ files.html \ api_8c.html \ api_8h.html \ bbuf_8c.html \ xml_8c.html \ xml_8h.html \ eps_2bmp_8h.html \ fig_2bmp_8h.html \ ipa_2bmp_8h.html \ magick_2bmp_8h.html \ plot_2bmp_8h.html \ svg_2bmp_8h.html \ x_2bmp_8h.html \ xgd_2bmp_8h.html \ clip_8h.html \ include_2libwmf_2color_8h.html \ src_2ipa_2fig_2color_8h.html \ src_2ipa_2ipa_2color_8h.html \ src_2ipa_2x_2color_8h.html \ src_2player_2color_8h.html \ coord_8h.html \ dc_8h.html \ defaults_8h.html \ defs_8h.html \ eps_2device_8h.html \ fig_2device_8h.html \ magick_2device_8h.html \ plot_2device_8h.html \ svg_2device_8h.html \ x_2device_8h.html \ xgd_2device_8h.html \ eps_2draw_8h.html \ fig_2draw_8h.html \ magick_2draw_8h.html \ plot_2draw_8h.html \ svg_2draw_8h.html \ x_2draw_8h.html \ xgd_2draw_8h.html \ eps_8c.html \ eps_8h.html \ fig_8c.html \ fig_8h.html \ font_8c.html \ include_2libwmf_2font_8h.html \ src_2font_8h.html \ src_2ipa_2fig_2font_8h.html \ src_2ipa_2ipa_2font_8h.html \ src_2ipa_2x_2font_8h.html \ src_2ipa_2xgd_2font_8h.html \ foreign_8c.html \ foreign_8h.html \ fund_8h.html \ gd_8h.html \ ipa_8c.html \ ipa_8h.html \ macro_8h.html \ magick_8c.html \ magick_8h.html \ meta_8c.html \ meta_8h.html \ player_8c.html \ plot_8c.html \ plot_8h.html \ record_8h.html \ ipa_2eps_2region_8h.html \ ipa_2fig_2region_8h.html \ ipa_2magick_2region_8h.html \ ipa_2plot_2region_8h.html \ ipa_2svg_2region_8h.html \ ipa_2x_2region_8h.html \ ipa_2xgd_2region_8h.html \ player_2region_8h.html \ stream_8c.html \ svg_8c.html \ svg_8h.html \ template_8c.html \ template_8h.html \ types_8h.html \ wmf_8c.html \ x_8c.html \ x_8h.html \ xgd_8c.html \ annotated.html \ classes.html \ functions.html \ struct__wmf__eps__t.html \ struct__wmf__fig__t.html \ struct__wmf__fig__t_1_1__wmf__fig__image.html \ struct__wmf__foreign__t.html \ struct__wmf__gd__t.html \ struct__wmf__gd__t_1_1__wmf__gd__sink.html \ struct__wmf__magick__t.html \ struct__wmf__magick__t_1_1__wmf__magick__image.html \ struct__wmf__plot__t.html \ struct__wmf__svg__t.html \ struct__wmf__svg__t_1_1__wmf__svg__image.html \ struct__wmf__template__t.html \ struct__wmf__x__t.html \ struct__wmfAPI.html \ struct__wmfAPI__Options.html \ struct__wmfBMP.html \ struct__wmfBMP__Draw__t.html \ struct__wmfBMP__Read__t.html \ struct__wmfBrush.html \ struct__wmfColorData.html \ struct__wmfD__Coord.html \ struct__wmfD__Rect.html \ struct__wmfDC.html \ struct__wmfDrawArc__t.html \ struct__wmfDrawLine__t.html \ struct__wmfDrawPixel__t.html \ struct__wmfDrawRectangle__t.html \ struct__wmfDrawText__t.html \ struct__wmfFlood__t.html \ struct__wmfFont.html \ struct__wmfFontData.html \ struct__wmfFontMap.html \ struct__wmfFontmapData.html \ struct__wmfFT__CacheEntry.html \ struct__wmfFT__Mapping.html \ struct__wmfFunctionReference.html \ struct__wmfGS__FontData.html \ struct__wmfGS__FontInfo.html \ struct__wmfHead.html \ struct__wmfImage.html \ struct__wmfIPAFont.html \ struct__wmfMapping.html \ struct__wmfMetaHeader.html \ struct__wmfPen.html \ struct__wmfPlaceableMetaHeader.html \ struct__wmfPolyLine__t.html \ struct__wmfPolyPoly__t.html \ struct__wmfPolyRectangle__t.html \ struct__wmfRGB.html \ struct__wmfROP__Draw__t.html \ globals.html \ struct__wmfStream.html \ struct__wmfUserData__t.html \ struct__wmfXML__FontData.html \ struct__wmfXML__FontInfo.html \ struct__wmfXML__InputData.html \ struct__wmfWriteFileInfo.html \ struct__wmfAttributeStore.html \ struct__wmfAttributes.html \ canvas_8h.html \ recorder_8c.html \ recorder_8h.html \ metadefs_8h.html \ struct__wmfCanvasBrush.html \ struct__wmfCanvasPen.html \ struct__wmfCanvasFont.html \ struct__wmfConstruct.html \ struct__wmfRecordBox.html \ doxygen.css \ io-wmf_8c.html \ structWmfContext.html EXTRA_DIST = $(DOCUMENTATION) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/html/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/html/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am .PRECIOUS: Makefile install-data-local: @echo "Installing doxymentation"; \ cd $(srcdir) && \ $(mkinstalldirs) $(DESTDIR)$(htmldocdir); \ (for i in *.html doxygen.*; do \ $(INSTALL_DATA) $$i $(DESTDIR)$(htmldocdir)/$$i; \ 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: libwmf-0.2.13/doc/html/annotated.html000066400000000000000000000224721441723000300174320ustar00rootroot00000000000000 Annotated Index

Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

libwmf Data Structures

Here are the data structures with brief descriptions:
_wmf_eps_t
_wmf_fig_t
_wmf_fig_t::_wmf_fig_image
_wmf_foreign_t
_wmf_gd_t
_wmf_gd_t::_wmf_gd_sink
_wmf_magick_t
_wmf_magick_t::_wmf_magick_image
_wmf_plot_t
_wmf_svg_t
_wmf_svg_t::_wmf_svg_image
_wmf_template_t
_wmf_x_t
_wmfAPI
_wmfAPI_Options
_wmfAttributes
_wmfAttributeStore
_wmfBMP
_wmfBMP_Draw_t
_wmfBMP_Read_t
_wmfBrush
_wmfCanvasBrush
_wmfCanvasFont
_wmfCanvasPen
_wmfColorData
_wmfConstruct
_wmfD_Coord
_wmfD_Rect
_wmfDC
_wmfDrawArc_t
_wmfDrawLine_t
_wmfDrawPixel_t
_wmfDrawRectangle_t
_wmfDrawText_t
_wmfFlood_t
_wmfFont
_wmfFontData
_wmfFontMap
_wmfFontmapData
_wmfFT_CacheEntry
_wmfFT_Mapping
_wmfFunctionReference
_wmfGS_FontData
_wmfGS_FontInfo
_wmfHead
_wmfImage
_wmfIPAFont
_wmfMapping
_wmfMetaHeader
_wmfPen
_wmfPlaceableMetaHeader
_wmfPolyLine_t
_wmfPolyPoly_t
_wmfPolyRectangle_t
_wmfRecordBox
_wmfRGB
_wmfROP_Draw_t
_wmfStream
_wmfUserData_t
_wmfWriteFileInfo
_wmfXML_FontData
_wmfXML_FontInfo
_wmfXML_InputData
WmfContext

Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/api_8c.html000066400000000000000000001015161441723000300166150ustar00rootroot00000000000000 api.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

api.c File Reference


Functions

wmf_error_t wmf_lite_create (wmfAPI **API_return, unsigned long flags, wmfAPI_Options *options)
wmf_error_t wmf_lite_destroy (wmfAPI *API)
void wmf_assert (wmfAPI *API, char *file, int line)
void wmf_error (wmfAPI *API, char *file, int line, char *msg)
void wmf_debug (wmfAPI *API, char *file, int line, char *msg)
void wmf_printf (wmfAPI *API, char *msg,...)
void * wmf_malloc (wmfAPI *API, size_t size)
void * wmf_calloc (wmfAPI *API, size_t number, size_t size)
void * wmf_realloc (wmfAPI *API, void *mem, size_t size)
void wmf_free (wmfAPI *API, void *mem)
void wmf_detach (wmfAPI *API, void *mem)
char * wmf_strdup (wmfAPI *API, const char *str)
char * wmf_str_append (wmfAPI *API, char *pre, char *post)
char * wmf_strstr (const char *haystack, const char *needle)
void wmf_status_function (wmfAPI *API, void *context, wmfStatus function)
unsigned long wmf_strbuf_grow (wmfAPI *API)

Function Documentation

void wmf_assert wmfAPI   API,
char *    file,
int    line
 

Set the error state of the library to wmf_E_Assert.

Parameters:
API  the API handle
file  file name
line  line number
This should only be called via the macro WMF_ASSERT(API,<expr>) which is defined (for debug builds only) as:
#define WMF_ASSERT(Z,M) if (!(M)) wmf_assert (Z,__FILE__,__LINE__)
i.e., if <expr> evaluates to 0 then call wmf_assert() with current file name and line number.

void* wmf_calloc wmfAPI   API,
size_t    number,
size_t    size
 

Allocate memory of specified size and attach to the API's memory manager's internal list.

Parameters:
API  the API handle
number  number or elements
size  size in bytes of memory required by one element
With syntax similar to calloc(), wmf_calloc() allocates number * size bytes of memory and adds a reference to it in the memory manager's list. To free the memory, use wmf_free().

Returns:
Pointer to new memory, or zero on failure. Sets error state wmf_E_InsMem on failure.

void wmf_debug wmfAPI   API,
char *    file,
int    line,
char *    msg
 

Print message to debug stream.

Parameters:
API  the API handle
file  file name
line  line number
msg  message to print
This should only be called via the macro WMF_DEBUG(API,msg) which (in debug builds only) calls wmf_debug() with the current file name and line number.

void wmf_detach wmfAPI   API,
void *    mem
 

Detach memory attached to the API's memory manager's internal list.

Parameters:
API  the API handle
mem  pointer to memory previously allocated via the API
This removes the reference in the API's memory manager's internal list, and the memory will not, therefore, be released by wmf_api_destroy(). To free subsequently, use free().

void wmf_error wmfAPI   API,
char *    file,
int    line,
char *    msg
 

Print message to error stream.

Parameters:
API  the API handle
file  file name
line  line number
msg  message to print
This should only be called via the macro WMF_ERROR(API,msg) which calls wmf_error() with the current file name and line number.

void wmf_free wmfAPI   API,
void *    mem
 

Frees memory attached to the API's memory manager's internal list.

Parameters:
API  the API handle
mem  pointer to memory previously allocated via the API
Syntax is similar to free().

wmf_error_t wmf_lite_create wmfAPI **    API_return,
unsigned long    flags,
wmfAPI_Options   options
 

Creates and initializes an instance of the libwmf library (lite interface) for a specified device layer.

Parameters:
API_return  pointer to a wmfAPI* (the API handle use henceforth)
flags  bitwise OR of WMF_OPT_ options
options  pointer to wmfAPI_Options structure
This is the first and necessary step when using libwmf. Options are passed via the wmfAPI_Options structure and flags. wmf_api_create allocates the wmfAPI structure and initializes the color tables, the metafile player, and the device layer. If successful then the pointer to the wmfAPI structure is returned via API_return, otherwise all allocated memory is released and the library exits with an appropriate error.

wmf_lite_create () ignores command line arguments, if any are given, and does not attempt to set up font mapping.

The library should be closed using the corresponding wmf_lite_destroy () function.

Returns:
The error state of the library: wmf_E_None indicates successful creation and initialization of the library, and *API_return will be non-zero. For any other error value *API_return will be zero.

wmf_error_t wmf_lite_destroy wmfAPI   API
 

Close the device layer, if open, and release all allocated memory attached to the memory manager.

Parameters:
API  the API handle
Returns:
The final error state of the library.

void* wmf_malloc wmfAPI   API,
size_t    size
 

Allocate memory of specified size and attach to the API's memory manager's internal list.

Parameters:
API  the API handle
size  size in bytes of memory required
With syntax similar to malloc(), wmf_malloc() allocates size bytes of memory and adds a reference to it in the memory manager's list. To free the memory, use wmf_free().

Returns:
Pointer to new memory, or zero on failure. Sets error state wmf_E_InsMem on failure.

void wmf_printf wmfAPI   API,
char *    msg,
...   
 

Print formatted message to debug stream.

Parameters:
API  the API handle
msg  message to print
With syntax similar to printf(), wmf_printf() prints formatted output to the debug stream.

void* wmf_realloc wmfAPI   API,
void *    mem,
size_t    size
 

(Re)Allocate memory of specified size and attach to the API's memory manager's internal list.

Parameters:
API  the API handle
mem  pointer to memory previously allocated via the API
size  new size in bytes of memory required
With syntax similar to realloc(), wmf_realloc() allocates size bytes of memory and adds a reference to it in the memory manager's list. To free the memory, use wmf_free(). If mem is zero, this is equivalent to a call to wmf_malloc(). If size is zero, the memory is released via wmf_free().

Returns:
Pointer to new memory, or zero on failure. Sets error state wmf_E_InsMem on failure.

void wmf_status_function wmfAPI   API,
void *    context,
wmfStatus    function
 

Set a status call-back function.

Parameters:
API  the API handle
context  handle for user data
function  call-back function
The metafile player calls the status function after each record.

char* wmf_str_append wmfAPI   API,
char *    pre,
char *    post
 

Create concatenatation of two strings and attach to the API's memory manager's internal list.

Parameters:
API  the API handle
pre  a string
post  a string
wmf_str_append() allocates the necessary memory via wmf_malloc(), copies pre into the string and appends post. Use wmf_free() to free the string.

Returns:
Pointer to new string, or zero on failure. Sets error state wmf_E_InsMem on failure, or wmf_E_Glitch if str is zero.

unsigned long wmf_strbuf_grow wmfAPI   API
 

Increase the size of the internal string buffer.

Parameters:
API  the API handle
libwmf maintains an internal buffer for string operations. wmf_strbuf_grow() increases the size by 64.

Returns:
Returns the new size of the buffer. Uses wmf_realloc(), so may set wmf_E_InsMem on failure.

char* wmf_strdup wmfAPI   API,
const char *    str
 

Duplicate string and attach to the API's memory manager's internal list.

Parameters:
API  the API handle
str  a string
With syntax similar to strdup(), wmf_strdup() allocates the necessary memory via wmf_malloc() and copies the string. Use wmf_free() to free the string.

Returns:
Pointer to new string, or zero on failure. Sets error state wmf_E_InsMem on failure, or wmf_E_Glitch if str is zero.

char* wmf_strstr const char *    haystack,
const char *    needle
 

Substring search.

Parameters:
haystack  a string
needle  a substring to search for in haystack
With syntax identical to strstr(), wmf_strstr() searches for string needle in string haystack.

Returns:
Pointer to substring needle found in haystack, or zero if not found.


Generated on Tue Dec 10 19:53:47 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/api_8h.html000066400000000000000000003566121441723000300166330ustar00rootroot00000000000000 api.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

api.h File Reference


Defines

#define WMF_ERROR(Z, M)   wmf_error (Z,__FILE__,__LINE__,M)
#define WMF_DEBUG(Z, M)
#define WMF_ASSERT(Z, M)
#define WMF_OPT_ALLOC   (1<<0)
#define WMF_OPT_ARGS   (1<<1)
#define WMF_OPT_FONTDIRS   (1<<2)
#define WMF_OPT_FONTMAP   (1<<3)
#define WMF_OPT_SYS_FONTS   (1<<4)
#define WMF_OPT_SYS_FONTMAP   (1<<5)
#define WMF_OPT_XTRA_FONTS   (1<<6)
#define WMF_OPT_XTRA_FONTMAP   (1<<7)
#define WMF_OPT_GS_FONTMAP   (1<<8)
#define WMF_OPT_WRITE   (1<<9)
#define WMF_OPT_FUNCTION   (1<<10)
#define WMF_OPT_MODULE   (1<<11)
#define WMF_OPT_MODULE_DIRS   (1<<12)
#define WMF_OPT_IGNORE_NONFATAL   (1<<14)
#define WMF_OPT_NO_ERROR   (1<<15)
#define WMF_OPT_NO_DEBUG   (1<<16)
#define WMF_OPT_LOG_ERROR   (1<<17)
#define WMF_OPT_LOG_DEBUG   (1<<18)
#define WMF_OPT_DIAGNOSTICS   (1<<19)

Functions

wmf_error_t wmf_api_create (wmfAPI **, unsigned long, wmfAPI_Options *)
wmf_error_t wmf_api_destroy (wmfAPI *)
wmf_error_t wmf_lite_create (wmfAPI **, unsigned long, wmfAPI_Options *)
wmf_error_t wmf_lite_destroy (wmfAPI *)
wmf_error_t wmf_header_read (wmfAPI *)
wmf_error_t wmf_scan (wmfAPI *, unsigned long, wmfD_Rect *)
wmf_error_t wmf_play (wmfAPI *, unsigned long, wmfD_Rect *)
wmf_error_t wmf_size (wmfAPI *, float *, float *)
wmf_error_t wmf_display_size (wmfAPI *, unsigned int *, unsigned int *, double, double)
wmf_error_t wmf_bbuf_input (wmfAPI *, wmfRead, wmfSeek, wmfTell, void *)
wmf_error_t wmf_file_open (wmfAPI *, const char *)
wmf_error_t wmf_file_close (wmfAPI *)
wmf_error_t wmf_mem_open (wmfAPI *, unsigned char *, long)
wmf_error_t wmf_mem_close (wmfAPI *)
wmfStreamwmf_ztream_create (wmfAPI *, gzFile)
wmfStreamwmf_stream_create (wmfAPI *, FILE *)
void wmf_ztream_destroy (wmfAPI *, wmfStream *, char **, unsigned long *)
void wmf_stream_destroy (wmfAPI *, wmfStream *, char **, unsigned long *)
int wmf_stream_printf (wmfAPI *, wmfStream *, char *,...)
void * wmf_malloc (wmfAPI *, size_t)
void * wmf_calloc (wmfAPI *, size_t, size_t)
void * wmf_realloc (wmfAPI *, void *, size_t)
void wmf_free (wmfAPI *, void *)
void wmf_detach (wmfAPI *, void *)
char * wmf_strdup (wmfAPI *, const char *)
char * wmf_str_append (wmfAPI *, char *, char *)
char * wmf_strstr (const char *, const char *)
unsigned long wmf_strbuf_grow (wmfAPI *)
wmf_error_t wmf_player_init (wmfAPI *)
U16 wmf_aldus_checksum (wmfAPI *)
U16 wmf_read_16 (wmfAPI *)
U32 wmf_read_32 (wmfAPI *, U16 *, U16 *)
int wmf_file_read (void *)
int wmf_file_seek (void *, long)
long wmf_file_tell (void *)
int wmf_mem_read (void *)
int wmf_mem_seek (void *, long)
long wmf_mem_tell (void *)
int wmf_stream_zputs (char *, void *)
int wmf_stream_rezet (void *)
int wmf_stream_sputs (char *, void *)
int wmf_stream_reset (void *)
void wmf_error (wmfAPI *, char *, int, char *)
void wmf_debug (wmfAPI *, char *, int, char *)
void wmf_printf (wmfAPI *, char *,...)
void wmf_assert (wmfAPI *, char *, int)
char * wmf_help (void)
void wmf_set_viewport_origin (wmfAPI *, wmfD_Coord)
void wmf_status_function (wmfAPI *, void *, wmfStatus)
void wmf_write (wmfAPI *, unsigned long, unsigned int, const char *, char **, const unsigned char *, unsigned long)
void wmf_write_begin (wmfAPI *, const char *)
void wmf_write_end (wmfAPI *)
void wmf_attr_new (wmfAPI *, wmfAttributes *)
void wmf_attr_clear (wmfAPI *, wmfAttributes *)
void wmf_attr_free (wmfAPI *, wmfAttributes *)
const char * wmf_attr_add (wmfAPI *, wmfAttributes *, const char *, const char *)
const char * wmf_attr_query (wmfAPI *, wmfAttributes *, const char *)
wmf_error_t wmf_wmfxml_import (wmfAPI *, const char *)

Define Documentation

#define WMF_ASSERT Z,
 
 

Parameters:
Z  the API handle
M  an <expr>, if zero then call wmf_assert()
(debug build only)

#define WMF_DEBUG Z,
 
 

Parameters:
Z  the API handle
M  string to send to the debug stream via wmf_debug()
(debug build only)

#define WMF_ERROR Z,
     wmf_error (Z,__FILE__,__LINE__,M)
 

Parameters:
Z  the API handle
M  string to send to the error stream via wmf_error()

#define WMF_OPT_ALLOC   (1<<0)
 

Option to wmf_api_create()

use provided [*]alloc/free functions

#define WMF_OPT_ARGS   (1<<1)
 

Option to wmf_api_create()

check provided command line for --wmf-<option>

#define WMF_OPT_DIAGNOSTICS   (1<<19)
 

Option to wmf_api_create()

emit diagnostic information --wmf-diagnostics

#define WMF_OPT_FONTDIRS   (1<<2)
 

Option to wmf_api_create()

font directories specified

#define WMF_OPT_FONTMAP   (1<<3)
 

Option to wmf_api_create()

font mappings specified

#define WMF_OPT_FUNCTION   (1<<10)
 

Option to wmf_api_create()

initialize device-layer with supplied function

#define WMF_OPT_GS_FONTMAP   (1<<8)
 

Option to wmf_api_create()

use specified ghostscript fontmap file

#define WMF_OPT_IGNORE_NONFATAL   (1<<14)
 

Option to wmf_api_create()

ignore (some) non-fatal errors --wmf-ignore-nonfatal

#define WMF_OPT_LOG_DEBUG   (1<<18)
 

Option to wmf_api_create()

divert debug reports to specified stream

#define WMF_OPT_LOG_ERROR   (1<<17)
 

Option to wmf_api_create()

divert error reports to specified stream

#define WMF_OPT_MODULE   (1<<11)
 

Option to wmf_api_create()

initialize device-layer with specified module

#define WMF_OPT_MODULE_DIRS   (1<<12)
 

Option to wmf_api_create()

check for module also in specified directories

#define WMF_OPT_NO_DEBUG   (1<<16)
 

Option to wmf_api_create()

suppress all debug reports --wmf-debug

#define WMF_OPT_NO_ERROR   (1<<15)
 

Option to wmf_api_create()

suppress all error reports --wmf-error

#define WMF_OPT_SYS_FONTMAP   (1<<5)
 

Option to wmf_api_create()

use specified XML system fontmap file

#define WMF_OPT_SYS_FONTS   (1<<4)
 

Option to wmf_api_create()

use system fonts, if found

#define WMF_OPT_WRITE   (1<<9)
 

Option to wmf_api_create()

write metafile to specified file

#define WMF_OPT_XTRA_FONTMAP   (1<<7)
 

Option to wmf_api_create()

use specified XML non-system fontmap file

#define WMF_OPT_XTRA_FONTS   (1<<6)
 

Option to wmf_api_create()

use non-system fonts, if found


Function Documentation

U16 wmf_aldus_checksum wmfAPI   API
 

Compute the Aldus checksum of the metafile's header.

Parameters:
API  the API handle
(Must read the header first, either via wmf_scan() or by calling wmf_header_read() directly.)

Returns:
Returns the checksum.

wmf_error_t wmf_api_create wmfAPI **    API_return,
unsigned long    flags,
wmfAPI_Options   options
 

Creates and initializes an instance of the libwmf library for a specified device layer.

Parameters:
API_return  pointer to a wmfAPI* (the API handle use henceforth)
flags  bitwise OR of WMF_OPT_ options
options  pointer to wmfAPI_Options structure
This is the first and necessary step when using libwmf. Options are passed via the wmfAPI_Options structure and flags. wmf_api_create allocates the wmfAPI structure and initializes the color and font tables, the metafile player, and the device layer. If successful then the pointer to the wmfAPI structure is returned via API_return, otherwise all allocated memory is released and the library exits with an appropriate error.

Returns:
The error state of the library: wmf_E_None indicates successful creation and initialization of the library, and *API_return will be non-zero. For any other error value *API_return will be zero.

wmf_error_t wmf_api_destroy wmfAPI   API
 

Close the device layer, if open, and release all allocated memory attached to the memory manager.

Parameters:
API  the API handle
Returns:
The final error state of the library.

void wmf_assert wmfAPI   API,
char *    file,
int    line
 

Set the error state of the library to wmf_E_Assert.

Parameters:
API  the API handle
file  file name
line  line number
This should only be called via the macro WMF_ASSERT(API,<expr>) which is defined (for debug builds only) as:
#define WMF_ASSERT(Z,M) if (!(M)) wmf_assert (Z,__FILE__,__LINE__)
i.e., if <expr> evaluates to 0 then call wmf_assert() with current file name and line number.

const char* wmf_attr_add wmfAPI  ,
wmfAttributes  ,
const char *   ,
const char *   
 

Add an name&value to a wmfAttributes structure; returns ptr to value-in-list

void wmf_attr_clear wmfAPI  ,
wmfAttributes  
 

Clear/Empty a wmfAttributes structure

void wmf_attr_free wmfAPI  ,
wmfAttributes  
 

Free memory associated with a wmfAttributes structure

void wmf_attr_new wmfAPI  ,
wmfAttributes  
 

Initialize a wmfAttributes structure

const char* wmf_attr_query wmfAPI  ,
wmfAttributes  ,
const char *   
 

Return value of name in a wmfAttributes structure; returns 0 if name not found

wmf_error_t wmf_bbuf_input wmfAPI   API,
wmfRead    fp_read,
wmfSeek    fp_seek,
wmfTell    fp_tell,
void *    user_data
 

Set custom metafile input-stream handler functions.

Parameters:
API  the API handle
fp_read  function to read a byte
fp_seek  function to set position
fp_tell  function to get position
user_data  handle for user data
libwmf has simple methods for reading either from file or from memory, but many applications will want to use customized variants of these. wmf_bbuf_input() enables this.

typedef int  (*wmfRead) (void* user_data);
typedef int  (*wmfSeek) (void* user_data,long position);
typedef long (*wmfTell) (void* user_data);

wmfRead returns unsigned char cast to int, or EOF (cf. fgetc())

wmfSeek returns (-1) on error, otherwise 0 (cf. fseek())

wmfTell returns (-1) on error, otherwise current position (cf. ftell())

Returns:
Returns the library error state (wmf_E_None on success). Possible library error state of wmf_E_Glitch, if any of the three functions is zero.

void* wmf_calloc wmfAPI   API,
size_t    number,
size_t    size
 

Allocate memory of specified size and attach to the API's memory manager's internal list.

Parameters:
API  the API handle
number  number or elements
size  size in bytes of memory required by one element
With syntax similar to calloc(), wmf_calloc() allocates number * size bytes of memory and adds a reference to it in the memory manager's list. To free the memory, use wmf_free().

Returns:
Pointer to new memory, or zero on failure. Sets error state wmf_E_InsMem on failure.

void wmf_debug wmfAPI   API,
char *    file,
int    line,
char *    msg
 

Print message to debug stream.

Parameters:
API  the API handle
file  file name
line  line number
msg  message to print
This should only be called via the macro WMF_DEBUG(API,msg) which (in debug builds only) calls wmf_debug() with the current file name and line number.

void wmf_detach wmfAPI   API,
void *    mem
 

Detach memory attached to the API's memory manager's internal list.

Parameters:
API  the API handle
mem  pointer to memory previously allocated via the API
This removes the reference in the API's memory manager's internal list, and the memory will not, therefore, be released by wmf_api_destroy(). To free subsequently, use free().

wmf_error_t wmf_display_size wmfAPI   API,
unsigned int *    width,
unsigned int *    height,
double    res_x,
double    res_y
 

Get estimate of image display size.

Parameters:
API  the API handle
width  width return
height  height return
res_x  x-resolution of display
res_y  y-resolution of display
wmf_display_size() returns image width in *width and image height in *height. wmf_size() is used to get the calculated/estimate width and height of the image, and these values are converted to integer width and height estimates for display.

Returns:
Returns the library error state (wmf_E_None on success). Possible library error state of wmf_E_Glitch (the metafile has not been scanned).

void wmf_error wmfAPI   API,
char *    file,
int    line,
char *    msg
 

Print message to error stream.

Parameters:
API  the API handle
file  file name
line  line number
msg  message to print
This should only be called via the macro WMF_ERROR(API,msg) which calls wmf_error() with the current file name and line number.

wmf_error_t wmf_file_close wmfAPI   API
 

Close metafile input file stream.

Parameters:
API  the API handle
Returns:
Returns the library error state (wmf_E_None on success). Possible library error state of wmf_E_Glitch.

wmf_error_t wmf_file_open wmfAPI   API,
const char *    file
 

Open file as metafile.

Parameters:
API  the API handle
file  file name
Simple method for reading from file.

Returns:
Returns the library error state (wmf_E_None on success). Possible library error states of wmf_E_Glitch or wmf_E_BadFile.

int wmf_file_read void *   
 

file input (wmf_file_open): fgetc()

int wmf_file_seek void *   ,
long   
 

file input (wmf_file_open): fseek()

long wmf_file_tell void *   
 

file input (wmf_file_open): ftell()

void wmf_free wmfAPI   API,
void *    mem
 

Frees memory attached to the API's memory manager's internal list.

Parameters:
API  the API handle
mem  pointer to memory previously allocated via the API
Syntax is similar to free().

wmf_error_t wmf_header_read wmfAPI   API
 

Read the metafile's header.

Parameters:
API  the API handle
(Must read the header first, either via wmf_scan() or by calling wmf_header_read() directly.)

Returns:
Returns the library error state (wmf_E_None on success). Possible library error states of wmf_E_Glitch, wmf_E_BadFormat (bad header), wmf_E_BadFile (no open input stream) and wmf_E_EOF (premature end-of-file).

char* wmf_help void   
 

 
Additional wmf-related options:

  --wmf-error[=yes|no]            switch for error reports.
  --wmf-debug[=yes|no]            switch for debug reports, if any.
  --wmf-ignore-nonfatal[=yes|no]  switch to ignore (some) non-fatal errors.
  --wmf-diagnostics               emit diagnostic information.
  --wmf-fontdir=<path>            add <path> to list of font directories.
  --wmf-sys-fonts                 use system fonts, if any found.
  --wmf-sys-fontmap=<file>        use system xml-fontmap file <file>.
  --wmf-xtra-fonts                use non-system fonts, if any found.
  --wmf-xtra-fontmap=<file>       use non-system xml-fontmap file <file>.
  --wmf-gs-fontmap=<file>         use ghostscript file <file>.
  --wmf-write=<file>              write metafile to <file>.

Report bugs to <http://www.wvware.com/>.

Returns:
Returns the above as a string.

wmf_error_t wmf_lite_create wmfAPI **    API_return,
unsigned long    flags,
wmfAPI_Options   options
 

Creates and initializes an instance of the libwmf library (lite interface) for a specified device layer.

Parameters:
API_return  pointer to a wmfAPI* (the API handle use henceforth)
flags  bitwise OR of WMF_OPT_ options
options  pointer to wmfAPI_Options structure
This is the first and necessary step when using libwmf. Options are passed via the wmfAPI_Options structure and flags. wmf_api_create allocates the wmfAPI structure and initializes the color tables, the metafile player, and the device layer. If successful then the pointer to the wmfAPI structure is returned via API_return, otherwise all allocated memory is released and the library exits with an appropriate error.

wmf_lite_create () ignores command line arguments, if any are given, and does not attempt to set up font mapping.

The library should be closed using the corresponding wmf_lite_destroy () function.

Returns:
The error state of the library: wmf_E_None indicates successful creation and initialization of the library, and *API_return will be non-zero. For any other error value *API_return will be zero.

wmf_error_t wmf_lite_destroy wmfAPI   API
 

Close the device layer, if open, and release all allocated memory attached to the memory manager.

Parameters:
API  the API handle
Returns:
The final error state of the library.

void* wmf_malloc wmfAPI   API,
size_t    size
 

Allocate memory of specified size and attach to the API's memory manager's internal list.

Parameters:
API  the API handle
size  size in bytes of memory required
With syntax similar to malloc(), wmf_malloc() allocates size bytes of memory and adds a reference to it in the memory manager's list. To free the memory, use wmf_free().

Returns:
Pointer to new memory, or zero on failure. Sets error state wmf_E_InsMem on failure.

wmf_error_t wmf_mem_close wmfAPI   API
 

Close metafile input memory stream.

Parameters:
API  the API handle
Returns:
Returns the library error state (wmf_E_None on success).

wmf_error_t wmf_mem_open wmfAPI   API,
unsigned char *    mem,
long    length
 

Open metafile in memory.

Parameters:
API  the API handle
mem  the metafile in memory
length  the length in bytes of metafile data
Simple method for reading from memory as array of unsigned char.

Returns:
Returns the library error state (wmf_E_None on success). Possible library error state of wmf_E_Glitch.

int wmf_mem_read void *   
 

memory input (wmf_mem_open): fgetc() equiv.

int wmf_mem_seek void *   ,
long   
 

memory input (wmf_mem_open): fseek() equiv.

long wmf_mem_tell void *   
 

memory input (wmf_mem_open): ftell() equiv.

wmf_error_t wmf_play wmfAPI   API,
unsigned long    flags,
wmfD_Rect   d_r
 

Play the metafile.

Parameters:
API  the API handle
flags  (unused)
d_r  for bounding-box return
Before the metafile can be played, it must be scanned - see wmf_scan().

The first time (and only the first time) the metafile is played, it first calls device_open() for the device layer specified (and initialized) in wmf_api_create(). Then, and also each subsequent time the metafile is played, it calls device_begin(), plays the metafile (with calls to various other device layer functions), and finally it calls device_end(). device_close() is only ever called via wmf_api_destroy().

d_r is recomputed, but should not change.

Returns:
Returns the library error state (wmf_E_None on success).

wmf_error_t wmf_player_init wmfAPI  
 

Initializes the metafile player (called by wmf_api_create())

void wmf_printf wmfAPI   API,
char *    msg,
...   
 

Print formatted message to debug stream.

Parameters:
API  the API handle
msg  message to print
With syntax similar to printf(), wmf_printf() prints formatted output to the debug stream.

U16 wmf_read_16 wmfAPI  
 

Reads a two-byte sequence from the current metafile, returns U16

U32 wmf_read_32 wmfAPI  ,
U16 *   ,
U16 *   
 

Reads a four-byte sequence from the current metafile, returns U32

void* wmf_realloc wmfAPI   API,
void *    mem,
size_t    size
 

(Re)Allocate memory of specified size and attach to the API's memory manager's internal list.

Parameters:
API  the API handle
mem  pointer to memory previously allocated via the API
size  new size in bytes of memory required
With syntax similar to realloc(), wmf_realloc() allocates size bytes of memory and adds a reference to it in the memory manager's list. To free the memory, use wmf_free(). If mem is zero, this is equivalent to a call to wmf_malloc(). If size is zero, the memory is released via wmf_free().

Returns:
Pointer to new memory, or zero on failure. Sets error state wmf_E_InsMem on failure.

wmf_error_t wmf_scan wmfAPI   API,
unsigned long    flags,
wmfD_Rect   d_r
 

Scan the metafile.

Parameters:
API  the API handle
flags  (unused)
d_r  for bounding-box return
Before the metafile can be played, it must be scanned. This is because metafile headers do not always provide image size information. Although the device layer (the graphics exporter) is initialized in wmf_api_create(), the output device is not opened until after the metafile is scanned. By scanning, therefore, the device layer can be provided on opening not only with size information but also a list of colors to expect (not including those in raster images) and of other required resources, if necessary. Finally, if scanning fails, then there's certainly no point in playing the metafile.

The bounding box, in device coordinates, is returned in *d_r.

Returns:
Returns the library error state (wmf_E_None on success).

void wmf_set_viewport_origin wmfAPI   API,
wmfD_Coord    d_pt
 

Set the device origin coordinate.

Parameters:
API  the API handle
d_pt  origin in device coordinates
Not really recommended.

wmf_error_t wmf_size wmfAPI   API,
float *    width,
float *    height
 

Get image size.

Parameters:
API  the API handle
width  width return
height  height return
wmf_size() returns image width in *width and image height in *height. If supplied, the metafile header values are used, otherwise the width and height found by wmf_scan() are used.

Returns:
Returns the library error state (wmf_E_None on success). Possible library error state of wmf_E_Glitch (the metafile has not been scanned).

void wmf_status_function wmfAPI   API,
void *    context,
wmfStatus    function
 

Set a status call-back function.

Parameters:
API  the API handle
context  handle for user data
function  call-back function
The metafile player calls the status function after each record.

char* wmf_str_append wmfAPI   API,
char *    pre,
char *    post
 

Create concatenatation of two strings and attach to the API's memory manager's internal list.

Parameters:
API  the API handle
pre  a string
post  a string
wmf_str_append() allocates the necessary memory via wmf_malloc(), copies pre into the string and appends post. Use wmf_free() to free the string.

Returns:
Pointer to new string, or zero on failure. Sets error state wmf_E_InsMem on failure, or wmf_E_Glitch if str is zero.

unsigned long wmf_strbuf_grow wmfAPI   API
 

Increase the size of the internal string buffer.

Parameters:
API  the API handle
libwmf maintains an internal buffer for string operations. wmf_strbuf_grow() increases the size by 64.

Returns:
Returns the new size of the buffer. Uses wmf_realloc(), so may set wmf_E_InsMem on failure.

char* wmf_strdup wmfAPI   API,
const char *    str
 

Duplicate string and attach to the API's memory manager's internal list.

Parameters:
API  the API handle
str  a string
With syntax similar to strdup(), wmf_strdup() allocates the necessary memory via wmf_malloc() and copies the string. Use wmf_free() to free the string.

Returns:
Pointer to new string, or zero on failure. Sets error state wmf_E_InsMem on failure, or wmf_E_Glitch if str is zero.

wmfStream* wmf_stream_create wmfAPI   API,
FILE *    out
 

Open an uncompressed character output stream.

Parameters:
API  the API handle
out  descriptor for a file stream; or zero to write to memory
wmf_stream_create() creates a wmfStream (a character-based output stream) for output to a file or, if out is zero, to memory.

Returns:
Returns a wmfStream pointer, or zero on failure. Possible library error states of wmf_E_InsMem or wmf_E_BadFile.

void wmf_stream_destroy wmfAPI   API,
wmfStream   stream,
char **    buffer,
unsigned long *    length
 

Close an uncompressed character output stream.

Parameters:
API  the API handle
stream  stream handle
buffer  for memory return
length  for length return
In the case of write-to-memory, on return *buffer is an array of length length.

int wmf_stream_printf wmfAPI   API,
wmfStream   stream,
char *    format,
...   
 

Formatted print to character output stream.

Parameters:
API  the API handle
stream  stream handle
format  print format
With syntax similar to printf(), wmf_stream_printf() prints a formatted message to a wmfStream character stream.

Returns:
Returns the number of characters written, or zero on failure. Possible library error state of wmf_E_InsMem.

int wmf_stream_reset void *   
 

uncompressed char output (wmf_stream_create): rewind()

int wmf_stream_rezet void *   
 

compressed char output (wmf_ztream_create): rewind()

int wmf_stream_sputs char *   ,
void *   
 

uncompressed char output (wmf_stream_create): fputs()

int wmf_stream_zputs char *   ,
void *   
 

compressed char output (wmf_ztream_create): fputs()

char* wmf_strstr const char *    haystack,
const char *    needle
 

Substring search.

Parameters:
haystack  a string
needle  a substring to search for in haystack
With syntax identical to strstr(), wmf_strstr() searches for string needle in string haystack.

Returns:
Pointer to substring needle found in haystack, or zero if not found.

wmf_error_t wmf_wmfxml_import wmfAPI  ,
const char *   
 

Load wmfxml file and wmf_mem_open() it

void wmf_write wmfAPI  ,
unsigned    long,
unsigned    int,
const char *   ,
char **   ,
const unsigned char *   ,
unsigned    long
 

Writes to --wmf-write file (which may be WMF or home-made wmfxml)

void wmf_write_begin wmfAPI  ,
const char *   
 

Open --wmf-write file (which may be WMF or home-made wmfxml)

void wmf_write_end wmfAPI  
 

Close --wmf-write file (which may be WMF or home-made wmfxml)

wmfStream* wmf_ztream_create wmfAPI   API,
gzFile    out
 

Open a compressed character output stream.

Parameters:
API  the API handle
out  descriptor for a zlib compressed file stream
wmf_ztream_create() creates a wmfStream (a character-based output stream) for output to a file opened via zlib. (Writing compressed data to memory is not currently supported.)

Returns:
Returns a wmfStream pointer, or zero on failure. Possible library error state of wmf_E_InsMem.

void wmf_ztream_destroy wmfAPI   API,
wmfStream   stream,
char **    buffer,
unsigned long *    length
 

Close a compressed character output stream.

Parameters:
API  the API handle
stream  stream handle
buffer  (unused)
length  (unused)


Generated on Tue Dec 10 19:53:47 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/bbuf_8c.html000066400000000000000000000423501441723000300167620ustar00rootroot00000000000000 bbuf.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

bbuf.c File Reference


Functions

wmf_error_t wmf_bbuf_input (wmfAPI *API, wmfRead fp_read, wmfSeek fp_seek, wmfTell fp_tell, void *user_data)
wmf_error_t wmf_file_open (wmfAPI *API, const char *file)
wmf_error_t wmf_file_close (wmfAPI *API)
int wmf_file_read (void *user_data)
int wmf_file_seek (void *user_data, long pos)
long wmf_file_tell (void *user_data)
wmf_error_t wmf_mem_open (wmfAPI *API, unsigned char *mem, long length)
wmf_error_t wmf_mem_close (wmfAPI *API)
int wmf_mem_read (void *user_data)
int wmf_mem_seek (void *user_data, long pos)
long wmf_mem_tell (void *user_data)

Function Documentation

wmf_error_t wmf_bbuf_input wmfAPI   API,
wmfRead    fp_read,
wmfSeek    fp_seek,
wmfTell    fp_tell,
void *    user_data
 

Set custom metafile input-stream handler functions.

Parameters:
API  the API handle
fp_read  function to read a byte
fp_seek  function to set position
fp_tell  function to get position
user_data  handle for user data
libwmf has simple methods for reading either from file or from memory, but many applications will want to use customized variants of these. wmf_bbuf_input() enables this.

typedef int  (*wmfRead) (void* user_data);
typedef int  (*wmfSeek) (void* user_data,long position);
typedef long (*wmfTell) (void* user_data);

wmfRead returns unsigned char cast to int, or EOF (cf. fgetc())

wmfSeek returns (-1) on error, otherwise 0 (cf. fseek())

wmfTell returns (-1) on error, otherwise current position (cf. ftell())

Returns:
Returns the library error state (wmf_E_None on success). Possible library error state of wmf_E_Glitch, if any of the three functions is zero.

wmf_error_t wmf_file_close wmfAPI   API
 

Close metafile input file stream.

Parameters:
API  the API handle
Returns:
Returns the library error state (wmf_E_None on success). Possible library error state of wmf_E_Glitch.

wmf_error_t wmf_file_open wmfAPI   API,
const char *    file
 

Open file as metafile.

Parameters:
API  the API handle
file  file name
Simple method for reading from file.

Returns:
Returns the library error state (wmf_E_None on success). Possible library error states of wmf_E_Glitch or wmf_E_BadFile.

int wmf_file_read void *   
 

file input (wmf_file_open): fgetc()

int wmf_file_seek void *   ,
long   
 

file input (wmf_file_open): fseek()

long wmf_file_tell void *   
 

file input (wmf_file_open): ftell()

wmf_error_t wmf_mem_close wmfAPI   API
 

Close metafile input memory stream.

Parameters:
API  the API handle
Returns:
Returns the library error state (wmf_E_None on success).

wmf_error_t wmf_mem_open wmfAPI   API,
unsigned char *    mem,
long    length
 

Open metafile in memory.

Parameters:
API  the API handle
mem  the metafile in memory
length  the length in bytes of metafile data
Simple method for reading from memory as array of unsigned char.

Returns:
Returns the library error state (wmf_E_None on success). Possible library error state of wmf_E_Glitch.

int wmf_mem_read void *   
 

memory input (wmf_mem_open): fgetc() equiv.

int wmf_mem_seek void *   ,
long   
 

memory input (wmf_mem_open): fseek() equiv.

long wmf_mem_tell void *   
 

memory input (wmf_mem_open): ftell() equiv.


Generated on Tue Dec 10 19:53:47 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/canvas_8h.html000066400000000000000000001631251441723000300173300ustar00rootroot00000000000000 canvas.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

canvas.h File Reference


Typedefs

typedef void * wmfCanvas
typedef enum _wmf_canvas_arc_t wmf_canvas_arc_t

Enumerations

enum  _wmf_canvas_arc_t {
  wmf_CA_open = 0,
  wmf_CA_chord,
  wmf_CA_pie
}

Functions

wmfCanvaswmf_canvas (wmfAPI *, unsigned short, unsigned short, unsigned short)
unsigned char * wmf_canvas_done (wmfAPI *, wmfCanvas *, unsigned char **, unsigned long *)
int wmf_canvas_set_pen (wmfAPI *, wmfCanvas *, unsigned short, unsigned short, unsigned short, unsigned short, wmfRGB)
int wmf_canvas_set_brush (wmfAPI *, wmfCanvas *, unsigned short, unsigned short, wmfRGB)
int wmf_canvas_set_font (wmfAPI *, wmfCanvas *, const char *, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)
int wmf_canvas_set_polyfill (wmfAPI *, wmfCanvas *, unsigned short)
int wmf_canvas_set_background (wmfAPI *, wmfCanvas *, unsigned short)
int wmf_canvas_set_bgcolor (wmfAPI *, wmfCanvas *, wmfRGB)
int wmf_canvas_set_textcolor (wmfAPI *, wmfCanvas *, wmfRGB)
int wmf_canvas_line (wmfAPI *, wmfCanvas *, unsigned short, unsigned short, unsigned short, unsigned short)
int wmf_canvas_roundrect (wmfAPI *, wmfCanvas *, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)
int wmf_canvas_rect (wmfAPI *, wmfCanvas *, unsigned short, unsigned short, unsigned short, unsigned short)
int wmf_canvas_ellipse (wmfAPI *, wmfCanvas *, unsigned short, unsigned short, unsigned short, unsigned short)
int wmf_canvas_arc (wmfAPI *, wmfCanvas *, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, wmf_canvas_arc_t)
int wmf_canvas_polyline (wmfAPI *, wmfCanvas *, unsigned short *, unsigned short *, unsigned short)
int wmf_canvas_polygon (wmfAPI *, wmfCanvas *, unsigned short *, unsigned short *, unsigned short)
int wmf_canvas_polygons (wmfAPI *, wmfCanvas *, unsigned short, unsigned short **, unsigned short **, unsigned short *)
int wmf_canvas_text (wmfAPI *, wmfCanvas *, unsigned short, unsigned short, const char *)
int wmf_canvas_bitmap (wmfAPI *, wmfCanvas *, unsigned short, unsigned short, unsigned short, unsigned short, const unsigned char *, unsigned long)

Typedef Documentation

typedef enum _wmf_canvas_arc_t wmf_canvas_arc_t
 

wmf_canvas_arc_t is the (enumeration) type used to distinguish arc type.

typedef void* wmfCanvas
 


Enumeration Type Documentation

enum _wmf_canvas_arc_t
 

wmf_canvas_arc_t is the (enumeration) type used to distinguish arc type.

Enumeration values:
wmf_CA_open  drawn arc segment (no fill)
wmf_CA_chord  start & end of arc joined together
wmf_CA_pie  start & end of arc joined to centre


Function Documentation

wmfCanvas* wmf_canvas wmfAPI   API,
unsigned short    width,
unsigned short    height,
unsigned short    dpi
 

Get a handle for creating a new metafile.

Parameters:
API  the API handle
width  width in 'dots' (a.k.a. 'twips'?)
height  height in 'dots' (a.k.a. 'twips'?)
dpi  dots per inch: one of 1440, 2880, 720, or 360
In case you want to use simple drawing routines to create your own metafile; all drawing commands expect a wmfCanvas handle as well as the API handle.

Returns:
Returns 0 on failure.

int wmf_canvas_arc wmfAPI   API,
wmfCanvas   canvas,
unsigned short    left,
unsigned short    top,
unsigned short    right,
unsigned short    bottom,
unsigned short    x1,
unsigned short    y1,
unsigned short    x2,
unsigned short    y2,
wmf_canvas_arc_t    type
 

Draw an arc, open or fill as chord or pie.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
left  lower x-coordinate
top  lower y-coordinate
right  upper x-coordinate
bottom  upper y-coordinate
x1  x-coordinate of start of arc
y1  y-coordinate of start of arc
x2  x-coordinate of end of arc
y2  y-coordinate of end of arc
type  arc type (open, chord or pie)
Draw an arc in the given bounding box, from (x1,y1) to (x2,y2). Coordinate origin is at the top-left, y increasing down.

Returns:
Returns 0 on success.

int wmf_canvas_bitmap wmfAPI   API,
wmfCanvas   canvas,
unsigned short    x,
unsigned short    y,
unsigned short    width,
unsigned short    height,
const unsigned char *    buffer,
unsigned long    length
 

Place a bitmap.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
x  x-coordinate of bitmap
y  y-coordinate of bitmap
width  (scaled) width of bitmap
height  (scaled) height of bitmap
buffer  buffer containing bitmap
length  length of buffer
Place a bitmap.

Returns:
Returns 0 on success.

unsigned char* wmf_canvas_done wmfAPI   API,
wmfCanvas   canvas,
unsigned char **    buffer,
unsigned long *    length
 

Last command when creating a new metafile; returns the metafile you have drawn.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
buffer  metafile buffer return
length  metafile length return
Cleans up memory etc. associated with the canvas process, except of course for the new metafile itself which gets returned.

Returns:
Returns 0 on failure, *buffer on success

int wmf_canvas_ellipse wmfAPI   API,
wmfCanvas   canvas,
unsigned short    left,
unsigned short    top,
unsigned short    right,
unsigned short    bottom
 

Draw an ellipse.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
left  lower x-coordinate
top  lower y-coordinate
right  upper x-coordinate
bottom  upper y-coordinate
Draw an ellipse in the given bounding box. Coordinate origin is at the top-left, y increasing down.

Returns:
Returns 0 on success.

int wmf_canvas_line wmfAPI   API,
wmfCanvas   canvas,
unsigned short    x1,
unsigned short    y1,
unsigned short    x2,
unsigned short    y2
 

Draw a line.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
x1  x-coordinate of start point
y1  y-coordinate of start point
x2  x-coordinate of end point
y2  y-coordinate of end point
Draw line from (x1,y1) to (x2,y2).

Returns:
Returns 0 on success.

int wmf_canvas_polygon wmfAPI   API,
wmfCanvas   canvas,
unsigned short *    x,
unsigned short *    y,
unsigned short    N
 

Draw a polygon.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
x  array of N x-coordinates
y  array of N y-coordinates
N  number of points of polygon
Draw a polygon.

Returns:
Returns 0 on success.

int wmf_canvas_polygons wmfAPI   API,
wmfCanvas   canvas,
unsigned short    count,
unsigned short **    x,
unsigned short **    y,
unsigned short *    N
 

Draw a set of polygons.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
count  number of polygons [i = 0..count-1]
x  x[i] is array of N x-coordinates in ith polygon
y  y[i] is array of N y-coordinates in ith polygon
N  N[i] is number of points of ith polygon
Draw a set of polygons.

Returns:
Returns 0 on success.

int wmf_canvas_polyline wmfAPI   API,
wmfCanvas   canvas,
unsigned short *    x,
unsigned short *    y,
unsigned short    N
 

Draw a line connecting a sequence of points.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
x  array of N x-coordinates
y  array of N y-coordinates
N  number of points on line
Draw a line connecting a sequence of points.

Returns:
Returns 0 on success.

int wmf_canvas_rect wmfAPI   API,
wmfCanvas   canvas,
unsigned short    left,
unsigned short    top,
unsigned short    right,
unsigned short    bottom
 

Draw a rectangle.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
left  lower x-coordinate
top  lower y-coordinate
right  upper x-coordinate
bottom  upper y-coordinate
Draw a rectangle. Coordinate origin is at the top-left, y increasing down.

Returns:
Returns 0 on success.

int wmf_canvas_roundrect wmfAPI   API,
wmfCanvas   canvas,
unsigned short    left,
unsigned short    top,
unsigned short    right,
unsigned short    bottom,
unsigned short    rx,
unsigned short    ry
 

Draw a rounded rectangle.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
left  lower x-coordinate
top  lower y-coordinate
right  upper x-coordinate
bottom  upper y-coordinate
rx  x-axis of corner ellipse
ry  y-axis of corner ellipse
Draw a rounded rectangle. Coordinate origin is at the top-left, y increasing down.

Returns:
Returns 0 on success.

int wmf_canvas_set_background wmfAPI   API,
wmfCanvas   canvas,
unsigned short    mode
 

Set background mode.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
mode  one of TRANSPARENT or OPAQUE
Set background mode.

Returns:
Returns 0 on success.

int wmf_canvas_set_bgcolor wmfAPI   API,
wmfCanvas   canvas,
wmfRGB    color
 

Set background color.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
color  background color
Set background color.

Returns:
Returns 0 on success.

int wmf_canvas_set_brush wmfAPI   API,
wmfCanvas   canvas,
unsigned short    style,
unsigned short    hatch,
wmfRGB    color
 

Change current brush style.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
style  one of BS_SOLID, BS_NULL, or BS_HATCHED
hatch  one of HS_HORIZONTAL, HS_VERTICAL, HS_FDIAGONAL, HS_BDIAGONAL, HS_CROSS or HS_DIAGCROSS
color  stroke color
Brush settings to be used with next drawing command.

Returns:
Returns 0 on success.

int wmf_canvas_set_font wmfAPI   API,
wmfCanvas   canvas,
const char *    name,
unsigned short    size,
unsigned short    orient,
unsigned short    weight,
unsigned short    italic,
unsigned short    strike,
unsigned short    uscore,
unsigned short    encode,
unsigned short    pitch
 

Change current font.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
name  font name
size  font height (in twips)
orient  text rotation in tenths of degrees
weight  400 for normal text, 700 for bold
italic  0 for normal text, 1 for oblique/italic
strike  0 for normal text, 1 for strike-through
uscore  0 for normal text, 1 for underscore (I think; and 2 for double uscore ??)
encode  encoding; 0 for most fonts, 2 for symbol fonts; presumably others...
pitch  italic angle; usually 0 (webdings), 16 (times), 32 (arial) or 48 (courier)
Font settings to be used with next drawing command.

Returns:
Returns 0 on success.

int wmf_canvas_set_pen wmfAPI   API,
wmfCanvas   canvas,
unsigned short    line,
unsigned short    endcap,
unsigned short    join,
unsigned short    width,
wmfRGB    color
 

Change current pen style.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
line  one of PS_SOLID, PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT, PS_NULL, PS_INSIDEFRAME, PS_USERSTYLE, or PS_ALTERNATE
endcap  one of PS_ENDCAP_ROUND, PS_ENDCAP_SQUARE, or PS_ENDCAP_FLAT
join  one of PS_JOIN_ROUND, PS_JOIN_BEVEL, or PS_JOIN_MITER
width  stroke width
color  stroke color
Pen settings to be used with next drawing command.

Returns:
Returns 0 on success.

int wmf_canvas_set_polyfill wmfAPI   API,
wmfCanvas   canvas,
unsigned short    mode
 

Set polygon fill mode.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
mode  one of ALTERNATE or WINDING
Set polygon fill mode.

Returns:
Returns 0 on success.

int wmf_canvas_set_textcolor wmfAPI   API,
wmfCanvas   canvas,
wmfRGB    color
 

Set text color.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
color  text color
Set text color.

Returns:
Returns 0 on success.

int wmf_canvas_text wmfAPI   API,
wmfCanvas   canvas,
unsigned short    x,
unsigned short    y,
const char *    str
 

Draw text.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
x  x-coordinate of string
y  y-coordinate of string
str  the text string to be drawn
Draw text.

Returns:
Returns 0 on success.


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/classes.html000066400000000000000000000165511441723000300171130ustar00rootroot00000000000000 Alphabetical index
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

libwmf Data Structure Index

  _  
_wmfCanvasBrush   _wmfGS_FontInfo   
_wmf_eps_t   _wmfCanvasFont   _wmfHead   
_wmf_fig_t   _wmfCanvasPen   _wmfImage   
_wmf_fig_t::_wmf_fig_image   _wmfColorData   _wmfIPAFont   
_wmf_foreign_t   _wmfConstruct   _wmfMapping   
_wmf_gd_t   _wmfD_Coord   _wmfMetaHeader   
_wmf_gd_t::_wmf_gd_sink   _wmfD_Rect   _wmfPen   
_wmf_magick_t   _wmfDC   _wmfPlaceableMetaHeader   
_wmf_magick_t::_wmf_magick_image   _wmfDrawArc_t   _wmfPolyLine_t   
_wmf_plot_t   _wmfDrawLine_t   _wmfPolyPoly_t   
_wmf_svg_t   _wmfDrawPixel_t   _wmfPolyRectangle_t   
_wmf_svg_t::_wmf_svg_image   _wmfDrawRectangle_t   _wmfRecordBox   
_wmf_template_t   _wmfDrawText_t   _wmfRGB   
_wmf_x_t   _wmfFlood_t   _wmfROP_Draw_t   
_wmfAPI   _wmfFont   _wmfStream   
_wmfAPI_Options   _wmfFontData   _wmfUserData_t   
_wmfAttributes   _wmfFontMap   _wmfWriteFileInfo   
_wmfAttributeStore   _wmfFontmapData   _wmfXML_FontData   
_wmfBMP   _wmfFT_CacheEntry   _wmfXML_FontInfo   
_wmfBMP_Draw_t   _wmfFT_Mapping   _wmfXML_InputData   
_wmfBMP_Read_t   _wmfFunctionReference   
  W  
_wmfBrush   _wmfGS_FontData   WmfContext   

Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/clip_8h.html000066400000000000000000000020371441723000300167760ustar00rootroot00000000000000 clip.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

clip.h File Reference


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/coord_8h.html000066400000000000000000000053511441723000300171570ustar00rootroot00000000000000 coord.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

coord.h File Reference


Functions

void wmf_set_viewport_origin (wmfAPI *API, wmfD_Coord d_pt)

Function Documentation

void wmf_set_viewport_origin wmfAPI   API,
wmfD_Coord    d_pt
 

Set the device origin coordinate.

Parameters:
API  the API handle
d_pt  origin in device coordinates
Not really recommended.


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/dc_8h.html000066400000000000000000000020331441723000300164310ustar00rootroot00000000000000 dc.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

dc.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/defaults_8h.html000066400000000000000000000020471441723000300176570ustar00rootroot00000000000000 defaults.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

defaults.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/defs_8h.html000066400000000000000000002100271441723000300167700ustar00rootroot00000000000000 defs.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

defs.h File Reference


Defines

#define ALTERNATE   1
#define WINDING   2
#define POLYFILL_LAST   2
#define BS_SOLID   0
#define BS_NULL   1
#define BS_HOLLOW   BS_NULL
#define BS_HATCHED   2
#define BS_PATTERN   3
#define BS_INDEXED   4
#define BS_DIBPATTERN   5
#define BS_DIBPATTERNPT   6
#define BS_PATTERN8X8   7
#define BS_DIBPATTERN8X8   8
#define TO_FILL(Z)   ((Z)->dc->brush->lbStyle != BS_NULL)
#define HS_HORIZONTAL   0
#define HS_VERTICAL   1
#define HS_FDIAGONAL   2
#define HS_BDIAGONAL   3
#define HS_CROSS   4
#define HS_DIAGCROSS   5
#define PS_SOLID   0
#define PS_DASH   1
#define PS_DOT   2
#define PS_DASHDOT   3
#define PS_DASHDOTDOT   4
#define PS_NULL   5
#define PS_INSIDEFRAME   6
#define PS_USERSTYLE   7
#define PS_ALTERNATE   8
#define PS_STYLE_MASK   0x0000000F
#define TO_DRAW(Z)   (((Z)->dc->pen->lopnStyle & PS_STYLE_MASK) != PS_NULL)
#define PS_ENDCAP_ROUND   0x00000000
#define PS_ENDCAP_SQUARE   0x00000100
#define PS_ENDCAP_FLAT   0x00000200
#define PS_ENDCAP_MASK   0x00000F00
#define PS_JOIN_ROUND   0x00000000
#define PS_JOIN_BEVEL   0x00001000
#define PS_JOIN_MITER   0x00002000
#define PS_JOIN_MASK   0x0000F000
#define PS_COSMETIC   0x00000000
#define PS_GEOMETRIC   0x00010000
#define PS_TYPE_MASK   0x000F0000
#define OBJ_PEN   1
#define OBJ_BRUSH   2
#define OBJ_DC   3
#define OBJ_METADC   4
#define OBJ_PAL   5
#define OBJ_FONT   6
#define OBJ_BITMAP   7
#define OBJ_REGION   8
#define OBJ_METAFILE   9
#define OBJ_MEMDC   10
#define OBJ_EXTPEN   11
#define OBJ_ENHMETADC   12
#define OBJ_ENHMETAFILE   13
#define TA_NOUPDATECP   0
#define TA_UPDATECP   1
#define TA_LEFT   0
#define TA_RIGHT   2
#define TA_CENTER   6
#define TA_TOP   0
#define TA_BOTTOM   8
#define TA_BASELINE   24
#define TA_MASK   (TA_BASELINE+TA_CENTER+TA_UPDATECP)
#define R2_BLACK   1
#define R2_NOTMERGEPEN   2
#define R2_MASKNOTPEN   3
#define R2_NOTCOPYPEN   4
#define R2_MASKPENNOT   5
#define R2_NOT   6
#define R2_XORPEN   7
#define R2_NOTMASKPEN   8
#define R2_MASKPEN   9
#define R2_NOTXORPEN   10
#define R2_NOP   11
#define R2_MERGENOTPEN   12
#define R2_COPYPEN   13
#define R2_MERGEPENNOT   14
#define R2_MERGEPEN   15
#define R2_WHITE   16
#define R2_LAST   16
#define SRCCOPY   (U32)0x00CC0020
#define SRCPAINT   (U32)0x00EE0086
#define SRCAND   (U32)0x008800C6
#define SRCINVERT   (U32)0x00660046
#define SRCERASE   (U32)0x00440328
#define NOTSRCCOPY   (U32)0x00330008
#define NOTSRCERASE   (U32)0x001100A6
#define MERGECOPY   (U32)0x00C000CA
#define MERGEPAINT   (U32)0x00BB0226
#define PATCOPY   (U32)0x00F00021
#define PATPAINT   (U32)0x00FB0A09
#define PATINVERT   (U32)0x005A0049
#define DSTINVERT   (U32)0x00550009
#define BLACKNESS   (U32)0x00000042
#define WHITENESS   (U32)0x00FF0062
#define BLACKONWHITE   1
#define WHITEONBLACK   2
#define COLORONCOLOR   3
#define HALFTONE   4
#define MAXSTRETCHBLTMODE   4
#define TRANSPARENT   1
#define OPAQUE   2
#define BKMODE_LAST   2
#define ETO_OPAQUE   0x0002
#define ETO_CLIPPED   0x0004
#define FLOODFILLBORDER   0
#define FLOODFILLSURFACE   1

Define Documentation

#define ALTERNATE   1
 

#define BKMODE_LAST   2
 

#define BLACKNESS   (U32)0x00000042
 

#define BLACKONWHITE   1
 

#define BS_DIBPATTERN   5
 

#define BS_DIBPATTERN8X8   8
 

#define BS_DIBPATTERNPT   6
 

#define BS_HATCHED   2
 

#define BS_HOLLOW   BS_NULL
 

#define BS_INDEXED   4
 

#define BS_NULL   1
 

#define BS_PATTERN   3
 

#define BS_PATTERN8X8   7
 

#define BS_SOLID   0
 

#define COLORONCOLOR   3
 

#define DSTINVERT   (U32)0x00550009
 

#define ETO_CLIPPED   0x0004
 

#define ETO_OPAQUE   0x0002
 

#define FLOODFILLBORDER   0
 

#define FLOODFILLSURFACE   1
 

#define HALFTONE   4
 

#define HS_BDIAGONAL   3
 

#define HS_CROSS   4
 

#define HS_DIAGCROSS   5
 

#define HS_FDIAGONAL   2
 

#define HS_HORIZONTAL   0
 

#define HS_VERTICAL   1
 

#define MAXSTRETCHBLTMODE   4
 

#define MERGECOPY   (U32)0x00C000CA
 

#define MERGEPAINT   (U32)0x00BB0226
 

#define NOTSRCCOPY   (U32)0x00330008
 

#define NOTSRCERASE   (U32)0x001100A6
 

#define OBJ_BITMAP   7
 

#define OBJ_BRUSH   2
 

#define OBJ_DC   3
 

#define OBJ_ENHMETADC   12
 

#define OBJ_ENHMETAFILE   13
 

#define OBJ_EXTPEN   11
 

#define OBJ_FONT   6
 

#define OBJ_MEMDC   10
 

#define OBJ_METADC   4
 

#define OBJ_METAFILE   9
 

#define OBJ_PAL   5
 

#define OBJ_PEN   1
 

#define OBJ_REGION   8
 

#define OPAQUE   2
 

#define PATCOPY   (U32)0x00F00021
 

#define PATINVERT   (U32)0x005A0049
 

#define PATPAINT   (U32)0x00FB0A09
 

#define POLYFILL_LAST   2
 

#define PS_ALTERNATE   8
 

#define PS_COSMETIC   0x00000000
 

#define PS_DASH   1
 

#define PS_DASHDOT   3
 

#define PS_DASHDOTDOT   4
 

#define PS_DOT   2
 

#define PS_ENDCAP_FLAT   0x00000200
 

#define PS_ENDCAP_MASK   0x00000F00
 

#define PS_ENDCAP_ROUND   0x00000000
 

#define PS_ENDCAP_SQUARE   0x00000100
 

#define PS_GEOMETRIC   0x00010000
 

#define PS_INSIDEFRAME   6
 

#define PS_JOIN_BEVEL   0x00001000
 

#define PS_JOIN_MASK   0x0000F000
 

#define PS_JOIN_MITER   0x00002000
 

#define PS_JOIN_ROUND   0x00000000
 

#define PS_NULL   5
 

#define PS_SOLID   0
 

#define PS_STYLE_MASK   0x0000000F
 

#define PS_TYPE_MASK   0x000F0000
 

#define PS_USERSTYLE   7
 

#define R2_BLACK   1
 

#define R2_COPYPEN   13
 

#define R2_LAST   16
 

#define R2_MASKNOTPEN   3
 

#define R2_MASKPEN   9
 

#define R2_MASKPENNOT   5
 

#define R2_MERGENOTPEN   12
 

#define R2_MERGEPEN   15
 

#define R2_MERGEPENNOT   14
 

#define R2_NOP   11
 

#define R2_NOT   6
 

#define R2_NOTCOPYPEN   4
 

#define R2_NOTMASKPEN   8
 

#define R2_NOTMERGEPEN   2
 

#define R2_NOTXORPEN   10
 

#define R2_WHITE   16
 

#define R2_XORPEN   7
 

#define SRCAND   (U32)0x008800C6
 

#define SRCCOPY   (U32)0x00CC0020
 

#define SRCERASE   (U32)0x00440328
 

#define SRCINVERT   (U32)0x00660046
 

#define SRCPAINT   (U32)0x00EE0086
 

#define TA_BASELINE   24
 

#define TA_BOTTOM   8
 

#define TA_CENTER   6
 

#define TA_LEFT   0
 

#define TA_MASK   (TA_BASELINE+TA_CENTER+TA_UPDATECP)
 

#define TA_NOUPDATECP   0
 

#define TA_RIGHT   2
 

#define TA_TOP   0
 

#define TA_UPDATECP   1
 

#define TO_DRAW      (((Z)->dc->pen->lopnStyle & PS_STYLE_MASK) != PS_NULL)
 

#define TO_FILL      ((Z)->dc->brush->lbStyle != BS_NULL)
 

#define TRANSPARENT   1
 

#define WHITENESS   (U32)0x00FF0062
 

#define WHITEONBLACK   2
 

#define WINDING   2
 


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/doxygen.css000066400000000000000000000034121441723000300167470ustar00rootroot00000000000000H1 { text-align: center; } CAPTION { font-weight: bold } A.qindex {} A.qindexRef {} A.el { text-decoration: none; font-weight: bold } A.elRef { font-weight: bold } A.code { text-decoration: none; font-weight: normal; color: #4444ee } A.codeRef { font-weight: normal; color: #4444ee } A:hover { text-decoration: none; background-color: #f2f2ff } DL.el { margin-left: -1cm } DIV.fragment { width: 100%; border: none; background-color: #eeeeee } DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } TD.md { background-color: #f2f2ff; font-weight: bold; } TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; } TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; } DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold } DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller } BODY { background: white } TD.indexkey { background-color: #eeeeff; font-weight: bold; padding-right : 10px; padding-top : 2px; padding-left : 10px; padding-bottom : 2px; margin-left : 0px; margin-right : 0px; margin-top : 2px; margin-bottom : 2px } TD.indexvalue { background-color: #eeeeff; font-style: italic; padding-right : 10px; padding-top : 2px; padding-left : 10px; padding-bottom : 2px; margin-left : 0px; margin-right : 0px; margin-top : 2px; margin-bottom : 2px } span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } libwmf-0.2.13/doc/html/doxygen.gif000066400000000000000000000045121441723000300167260ustar00rootroot00000000000000GIF89an5çÿÿ⟠¶%%ÿÿàÿÿÜß߯ÿÌÌß²²þüÓ¿¿©ÿÿãøæ“ÿÿÛßßÀõÜvßßÄøæ’ÞܹîÃ,üô½üô¼ýøÉßßÅóÖdûð¯Õ»Wùë¡öâ†ÙÉ÷ᆿ¿¤ÿÿßôÖd=6ýøÈúï¯ ùë ýùÉÝÙ°üõ¼²’!ÜÕ¤ßßÇ?<,¸¥X÷â…õÜu ÿþÛ¿¿ª÷á…ùê¡Ð«&òÐRÿüÓÚÎ@?5ÜÕ¥÷â†úð¯>;(@@9@@7ÛÒ™»°xûï¯ÖÀgúë¡ÝÚ°öá†þüÔ\Q&º¬nßßÃïÆ4ðÊB¹©dÿþÜ õÝv[Q&ÝÚ¯ùê ?=/µœ=ÖÁgÜÒ™úë Õ¼WÙÉ€?>2>:%þøÈÚÎŒ ÷æ“ׯu=7ûï®ýùȾ½ž»´ƒ×ÅuÜј  ¿¿¥@@8ßܹüõ½ôÖeúê¡ØÉðËBßÞÀöÜu¿¿¨ØÆuÖÀf÷æ’ñÊBÒ²:¾¾žC@/ׯt¸¦X¼´ƒÚÍô×d»°yþùÉ^ZBúê ``Uq¼´‚ˆº¬m½·ŽïÅ4ØÅuÿÿÝûð®DD:ÿÿáÞßÀ ó×dÑ­-½¸ßß¿™™>9"_\GïÆ5öÜvÿÿÞaaT``Tûô¼>8"?;( ÜÖ¤_^L»³‚^X< ÞÙ°ãÙŸÒ±:»´‚ÍÆ™ Måⶸ©dßßÁÚÍŒúð®þøÉú﮿¾¥b\?ñÐR^X=¾º—`_P(&¹¬nqc.ÛÍØÅtþýÔ˜c`^L·~öá…öâ… B>+¾»—ÜÑ™=4½·˜†>™‰JîÅ4'%áЄ``R>9!>8!`_ODD;îÆ5 öÝvÛÒ˜µœ>ÜÒ˜…mЭ.“|(îÆ4<4ÝÙ¯ããÇ¿¾¤¿½žDC800)ïÅ5HG<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ùÿ,n5þÿ H° Áƒ*\Ȱ¡Ã‡#JœH±¢Å‹3V¬Ç±c= CZ¬§É8Eª\ɰ^0¤dI³¦@—0 È´É“%Θ3{ ÍøSgСH)Ý™´éÄ¥GJ]uªÕ– *ÁÄõª×›ž>| å©ëפ;>ÀöAÊ´ƽÙñß\‚wáÞµ«—®^Ž9&(`¡á˜(.ð±Þà† ¬˜Ñ8 *HШ^£Á™ñZÞÜq°áÂC >}:³ãËQ“~踀Ÿo+V°¢Þ·ƒãžüc€Û~ŒùQàxïÁË5®€÷ï»uWçÍqFóãÚþPÆ®;{õÐ ë}ǽ›=ãìã+ÎÌžózÆØç7–À æòÕçXy†¹§^€¶Ä[|0À6ÈÖn1ÁàLD(!õ,ÈàZl1aJ=30È¡]k‰õ€r€ø`;)>È‘‹|Ôc ˆÖãbˆ :èVKyÀ€ x„—xÀÀ’ ÈE „’PÈ@€‘ É$2x0F=r¼´ä;õx ƒ•øD …—ÈóM&BÊd&PeB!$yÔ“É’Pz°ML6i–\i  (èPšÄŠFPI0ê(G:D°èõ¢(¥Š¦±i=idʨ7“*£©*þž2JÏ£nH‚–zJiĈŠ)£ðÔA™Î¡ƒ*s @ª¥TYQ˜pB !à ъpB=І1mG1XÁ‹"°SÏ'@«H°0ãºÙ­ hHѼØÂŠ&õÄ ´–Ao`k‚ aóG£aE ×" ­‡Þd (L0 $täÎP@ÁõP ñ$ ñ( *ˆLÁ*õ`±ƒÉ(ÐA$sD‚$§L1Í«`ÁQ'>S@K(ÅÈl2Å*d\³É#WJÎ*„LÇ,S@‡Æ*TlW'`ÐCA°Ð [ ÑAÔƒÁ#l1È9»¼2È# Áþ,,´·Þg°möÙåX‚%yc`ÈÙjˆ=B,A´xׄ­7Û†,²ˆj˜=M/#ô0Îo´¡Kgœ±…×v‰ÁH %Ô D*Sø „W”pEõ SC 4óK6ÑQv “ÊíEpQ‚và.„M‘ð\Ô°{Z>äP‚%!¾¬Þ½EÔpˆ+Á$’ úBÔ“Ãë2Åb<ï-EÁ Ã8À/ÿ»C=–ÀüA^ðÿ·0 ðä1XÁŽ€Á ø–—HÜ!„" ïØÀ@ÞAƒd@ ê¡Áÿq€ lÐ`g˜ž'l€þx:Àgtà‡4HF=ªp„#Ò G8‚¦è‡*ôá‰/X7ºQ†¼àxB=¤0Æ5‘kø *žÐJ<1ˆ3äÈœØü0ˆe¨GŽø BHA „xÁ:ð‚<:¤…p ¦(ŒbŠ ‚ êahA‘œ¢ª "`Ò-h ¦-¤£-@¥'a@…Iþ…#•tàÂ{ Â#°IÖƒ{P¤ByI*,’¬»‰R\ÎAR „À! !¨B.ÀÍ l"Uˆ”Ði*! QЦ4Ó‚zÀ¡!È@‘½„Àíþäˆ2ÀM"£#ÙìB¸)ÍŽðÓ›AV(],Š„ÒǶ—v#?JBQ Oèõ;3çœ=Ûnw·õJÑÜÉäfvÎ73ß|»{{·Û5‡Ì3Óþ?æJé˜MYJO,›é-® ›Ž”@µeýÄŽØ•’m:RBAÛ±#v¥ds¥tÌ\)3WJÇÌ•Ò1s¥tÌ\)³iKÙ¥¤ÜïJÉ6=)ضEÞØ•’- 1&ZÖAÛ>ÍŽXKé™Üb6œ,ÿ'iÂñׯÇxÙt¤äÊ@à Ë ZV3]e`Û=¶ÝËŽ—zÿ `öCÀÎh ÍÆâZTô^âª3…Päi4Ï A@Ò0E##KéVšÞ¸•͉S“R´í°VM¹™ C)€óò^…ÇÁXMÂìÔGhŽŒÏ—Š+ ŠtS£#ï“ÁJw`ž‹ÀàŽŽeO®Uƒb ùýV­ÂV+ؤjN*¥15Ž”r[Ò±7¾+Q|ÍAÜͦ×üL}øá[ÑG;·!Á\㖃ƪÑÁ¤IBJü¹¾ÒŸqOd×ø^iYMà&¬;4Mè|:ú¶ÛTTô¬úèE’ZJcº˜›—— w㇙$™Þ¸û;8ÐmäY“¡Zä I L”b RZÝüäØiuâTåå=âóÍÏÏÏB,òÊÕs%=fŽ…L0®Œ¼èâ#ñ,5Öi6¡ZQˆï;Ý.2Õ£+Mo¬"}«Dõ­«©µ*ÍAoéÒûòóWt«r¦'ka• é)XI*씜i—¢¢U–NF­œHJ€>»ü»öîÐy¹Ë¿þúëæÌ™•ÿX&2¶qŠ#ŠO˜`6ÄÈèVeÛ˜‚¡f!q8¡G­}J½™âóÝ­›#xâñl&‰w±aï6õgz ³#ÝžÖ4í@Ã' y‚“–šbåz夤ì꨹2Ôreègqnéj¯õySxCAÔ›‚ ƒyÑK † pG͘ì†Ó$sýS*MZºÛk‹ Ÿ4Ÿ9FMé¨Õ|® ÿÜX÷ÃtþÞï×>‰wš‡BJÎóÚF…´WK¤ó°àÜøãG'FŽ0´­ä¾„äžè6)/_ª~±:YåóÎÓKz½óB'«é€zÄHRÌàj€¡¸Òà*F p«øªææã“½WÂö¯¿Æwk÷îqž`bâ$1¾û8çÏ£«þ"ÿîc?2Ìcè4';ãδ»oÉɸ“3ì¼v|’&“˜ù‰Éd†6Îû©Ï÷}zú :€ÉñÝYçY)üðJ¼Œ‰ÁÑŸ‡àãßd‰’òy–ÒYb罹ò§-±”0 Q3ƒǾ~ ?¸ì\sFsÆÑ¯Å—4&¬?˜Xó2 „ŸCUPT!F“˜…ÿÐñiK,¥Ä’¯Žýrѹ¦%ì%R&ƒá–­aãGÿ*Ãdÿì̬™ASÇiêÎ%¬ãUå<Ó¢MÎLi”PýñX㯲Žöµ,%,mÞìIm2ùWïêØ5-åË\)3WJÇÌ•Ò1s¥tÌ\)3WJÇÌ•Ò1s¥tÌ\)3WJÇÌ•Ò1s¥tÌ\)3WJÇÌ•Ò1s¥tÌþ¾cé*:MÊÂCtEXtSoftware@(#)ImageMagick 4.2.7 99/07/01 cristy@mystic.es.dupont.comkÃ*tEXtSignature5463a785bb11d367022701c77ebe81ab¾c÷tEXtPage110x53+0+0»EÑBIEND®B`‚libwmf-0.2.13/doc/html/eps_2bmp_8h.html000066400000000000000000000020411441723000300175510ustar00rootroot00000000000000 eps/bmp.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

bmp.h File Reference


Generated on Tue Dec 10 19:53:47 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/eps_2device_8h.html000066400000000000000000000020471441723000300202400ustar00rootroot00000000000000 eps/device.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

device.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/eps_2draw_8h.html000066400000000000000000000020431441723000300177320ustar00rootroot00000000000000 eps/draw.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

draw.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/eps_8c.html000066400000000000000000000041361441723000300166330ustar00rootroot00000000000000 eps.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

eps.c File Reference


Functions

void wmf_eps_function (wmfAPI *API)

Function Documentation

void wmf_eps_function wmfAPI   API
 


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/eps_8h.html000066400000000000000000000127011441723000300166350ustar00rootroot00000000000000 eps.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

eps.h File Reference


Data Structures

struct  _wmf_eps_t

Defines

#define WMF_EPS_STYLE_PS   (1 << 0)
#define WMF_EPS_LANDSCAPE   (1 << 1)
#define WMF_EPS_GetData(Z)   ((wmf_eps_t*)((Z)->device_data))

Typedefs

typedef _wmf_eps_t wmf_eps_t

Functions

void wmf_eps_function (wmfAPI *)

Define Documentation

#define WMF_EPS_GetData      ((wmf_eps_t*)((Z)->device_data))
 

#define WMF_EPS_LANDSCAPE   (1 << 1)
 

#define WMF_EPS_STYLE_PS   (1 << 0)
 


Typedef Documentation

typedef struct _wmf_eps_t wmf_eps_t
 


Function Documentation

void wmf_eps_function wmfAPI  
 


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/fig_2bmp_8h.html000066400000000000000000000020411441723000300175270ustar00rootroot00000000000000 fig/bmp.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

bmp.h File Reference


Generated on Tue Dec 10 19:53:47 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/fig_2device_8h.html000066400000000000000000000020471441723000300202160ustar00rootroot00000000000000 fig/device.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

device.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/fig_2draw_8h.html000066400000000000000000000020431441723000300177100ustar00rootroot00000000000000 fig/draw.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

draw.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/fig_8c.html000066400000000000000000000041361441723000300166110ustar00rootroot00000000000000 fig.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

fig.c File Reference


Functions

void wmf_fig_function (wmfAPI *API)

Function Documentation

void wmf_fig_function wmfAPI   API
 


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/fig_8h.html000066400000000000000000000275251441723000300166250ustar00rootroot00000000000000 fig.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

fig.h File Reference


Data Structures

struct  _wmf_fig_image
struct  _wmf_fig_t

Defines

#define WMF_FIG_LANDSCAPE   (1 << 0)
#define WMF_FIG_IMAGE_PNG   (2)
#define WMF_FIG_IMAGE_JPEG   (6)
#define WMF_FIG_ImageIsEPS(Z)   (((Z)->flags & WMF_FIG_IMAGE_JPEG) == 0)
#define WMF_FIG_ImageIsPNG(Z)   (((Z)->flags & WMF_FIG_IMAGE_JPEG) == WMF_FIG_IMAGE_PNG )
#define WMF_FIG_ImageIsJPG(Z)   (((Z)->flags & WMF_FIG_IMAGE_JPEG) == WMF_FIG_IMAGE_JPEG)
#define WMF_FIG_SUPPORTS_PNG   (1 << 3)
#define WMF_FIG_SUPPORTS_JPEG   (1 << 4)
#define WMF_FIG_MAXPECT   (1 << 5)
#define WMF_FIG_NO_MARGINS   (1 << 6)
#define WMF_FIG_GetData(Z)   ((wmf_fig_t*)((Z)->device_data))

Typedefs

typedef _wmf_fig_t wmf_fig_t

Functions

void wmf_fig_function (wmfAPI *)

Define Documentation

#define WMF_FIG_GetData      ((wmf_fig_t*)((Z)->device_data))
 

#define WMF_FIG_IMAGE_JPEG   (6)
 

#define WMF_FIG_IMAGE_PNG   (2)
 

#define WMF_FIG_ImageIsEPS      (((Z)->flags & WMF_FIG_IMAGE_JPEG) == 0)
 

#define WMF_FIG_ImageIsJPG      (((Z)->flags & WMF_FIG_IMAGE_JPEG) == WMF_FIG_IMAGE_JPEG)
 

#define WMF_FIG_ImageIsPNG      (((Z)->flags & WMF_FIG_IMAGE_JPEG) == WMF_FIG_IMAGE_PNG )
 

#define WMF_FIG_LANDSCAPE   (1 << 0)
 

#define WMF_FIG_MAXPECT   (1 << 5)
 

#define WMF_FIG_NO_MARGINS   (1 << 6)
 

#define WMF_FIG_SUPPORTS_JPEG   (1 << 4)
 

#define WMF_FIG_SUPPORTS_PNG   (1 << 3)
 


Typedef Documentation

typedef struct _wmf_fig_t wmf_fig_t
 


Function Documentation

void wmf_fig_function wmfAPI  
 


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/files.html000066400000000000000000000257341441723000300165630ustar00rootroot00000000000000 File Index
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

libwmf File List

Here is a list of all files with brief descriptions:
api.c
api.h
bbuf.c
eps/bmp.h
fig/bmp.h
ipa/bmp.h
magick/bmp.h
plot/bmp.h
svg/bmp.h
x/bmp.h
xgd/bmp.h
canvas.h
clip.h
include/libwmf/color.h
src/ipa/fig/color.h
src/ipa/ipa/color.h
src/ipa/x/color.h
src/player/color.h
coord.h
dc.h
defaults.h
defs.h
eps/device.h
fig/device.h
magick/device.h
plot/device.h
svg/device.h
x/device.h
xgd/device.h
eps/draw.h
fig/draw.h
magick/draw.h
plot/draw.h
svg/draw.h
x/draw.h
xgd/draw.h
eps.c
eps.h
fig.c
fig.h
font.c
include/libwmf/font.h
src/font.h
src/ipa/fig/font.h
src/ipa/ipa/font.h
src/ipa/x/font.h
src/ipa/xgd/font.h
foreign.c
foreign.h
fund.h
gd.h
io-wmf.c
ipa.c
ipa.h
macro.h
magick.c
magick.h
meta.c
meta.h
metadefs.h
player.c
plot.c
plot.h
record.h
recorder.c
recorder.h
ipa/eps/region.h
ipa/fig/region.h
ipa/magick/region.h
ipa/plot/region.h
ipa/svg/region.h
ipa/x/region.h
ipa/xgd/region.h
player/region.h
stream.c
svg.c
svg.h
template.c
template.h
types.h
wmf.c
x.c
x.h
xgd.c
xml.c
xml.h

Generated on Tue Dec 10 19:53:46 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/font_8c.html000066400000000000000000000346671441723000300170260ustar00rootroot00000000000000 font.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

font.c File Reference


Functions

char * wmf_ipa_font_lookup (wmfAPI *API, char *ps_name)
void wmf_ipa_font_init (wmfAPI *API, wmfAPI_Options *options)
void wmf_ipa_font_map_set (wmfAPI *API, wmfMap map)
void wmf_ipa_font_dir (wmfAPI *API, char *fontdir)
float wmf_ipa_font_stringwidth (wmfAPI *API, wmfFont *font, char *str)
void wmf_ipa_draw_text (wmfAPI *API, wmfDrawText_t *draw_text, wmfCharDrawer ipa_draw_text)
void wmf_ipa_font_map_xml (wmfAPI *API, wmfXML_FontData *FD, char *xmlfontmap)
void wmf_ipa_font_map_gs (wmfAPI *API, wmfGS_FontData *FD, char *gsfontmap)
void wmf_ipa_font_map (wmfAPI *API, wmfFont *font)

Function Documentation

void wmf_ipa_draw_text wmfAPI   API,
wmfDrawText_t   draw_text,
wmfCharDrawer    ipa_draw_text
 

void wmf_ipa_font_dir wmfAPI   API,
char *    fontdir
 

void wmf_ipa_font_init wmfAPI   API,
wmfAPI_Options   options
 

char* wmf_ipa_font_lookup wmfAPI   API,
char *    ps_name
 

void wmf_ipa_font_map wmfAPI   API,
wmfFont   font
 

This is the fun bit.

Parameters:
API  the API handle
font  WMF font object: font's family name, italics flag, and the weight
Other inputs include: a ghostscript-style Fontmap, and up to two XML RedHat-style fontmaps. (These are all parsed earlier.) There are also the fallback 13 standard postscript fonts. And then there is a list of font directories to search for fonts.

libwmf requires fonts to have a postscript name, and maintains an internal cache of glyphs path and freetype font face, keyed to postscript font name. Unfortunately, although the XML fontmaps do have font family name, the GS fontmap does not. In the latter, therefore, matching WMF font info to postscript font name is hit-and-miss.

void wmf_ipa_font_map_gs wmfAPI   API,
wmfGS_FontData   FD,
char *    gsfontmap
 

void wmf_ipa_font_map_set wmfAPI   API,
wmfMap    map
 

void wmf_ipa_font_map_xml wmfAPI   API,
wmfXML_FontData   FD,
char *    xmlfontmap
 

float wmf_ipa_font_stringwidth wmfAPI   API,
wmfFont   font,
char *    str
 


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/foreign_8c.html000066400000000000000000000175111441723000300174760ustar00rootroot00000000000000 foreign.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

foreign.c File Reference


Functions

void wmf_foreign_function (wmfAPI *API)
int wmf_image_load_png (wmfAPI *API, FILE *png_in, wmfImage *image)
int wmf_image_load_jpg (wmfAPI *API, FILE *jpg_in, wmfImage *image)
int wmf_image_save_eps (wmfAPI *API, FILE *file, wmfImage *image)
void wmf_image_free (wmfAPI *API, wmfImage *image)

Function Documentation

void wmf_foreign_function wmfAPI   API
 

void wmf_image_free wmfAPI   API,
wmfImage   image
 

int wmf_image_load_jpg wmfAPI   API,
FILE *    jpg_in,
wmfImage   image
 

int wmf_image_load_png wmfAPI   API,
FILE *    png_in,
wmfImage   image
 

int wmf_image_save_eps wmfAPI   API,
FILE *    file,
wmfImage   image
 


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/foreign_8h.html000066400000000000000000000262041441723000300175020ustar00rootroot00000000000000 foreign.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

foreign.h File Reference


Data Structures

struct  _wmf_foreign_t

Defines

#define WMF_FOREIGN_SUPPORTS_PNG   (1 << 0)
#define WMF_FOREIGN_SUPPORTS_JPEG   (1 << 1)
#define WMF_FOREIGN_GetData(Z)   ((wmf_foreign_t*)((Z)->device_data))

Typedefs

typedef _wmf_foreign_t wmf_foreign_t

Functions

void wmf_foreign_function (wmfAPI *API)
int wmf_image_load_png (wmfAPI *, FILE *, wmfImage *)
int wmf_image_load_jpg (wmfAPI *, FILE *, wmfImage *)
int wmf_image_save_eps (wmfAPI *, FILE *, wmfImage *)
void wmf_image_free (wmfAPI *, wmfImage *)

Define Documentation

#define WMF_FOREIGN_GetData      ((wmf_foreign_t*)((Z)->device_data))
 

#define WMF_FOREIGN_SUPPORTS_JPEG   (1 << 1)
 

#define WMF_FOREIGN_SUPPORTS_PNG   (1 << 0)
 


Typedef Documentation

typedef struct _wmf_foreign_t wmf_foreign_t
 


Function Documentation

void wmf_foreign_function wmfAPI   API
 

void wmf_image_free wmfAPI  ,
wmfImage  
 

int wmf_image_load_jpg wmfAPI  ,
FILE *   ,
wmfImage  
 

int wmf_image_load_png wmfAPI  ,
FILE *   ,
wmfImage  
 

int wmf_image_save_eps wmfAPI  ,
FILE *   ,
wmfImage  
 


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/functions.html000066400000000000000000001115001441723000300174540ustar00rootroot00000000000000 Compound Member Index
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

libwmf Data Fields

a | b | c | d | e | f | g | h | i | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y

Here is a list of all struct and union fields with links to the struct/union documentation for each field:

- a -

- b -

- c -

- d -

- e -

- f -

- g -

- h -

- i -

- k -

- l -

- m -

- n -

- o -

- p -

- q -

- r -

- s -

- t -

- u -

- v -

- w -

- x -

- y -


Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/fund_8h.html000066400000000000000000000141411441723000300170020ustar00rootroot00000000000000 fund.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

fund.h File Reference


Defines

#define U32   unsigned int
#define S32   int
#define U16   unsigned short
#define S16   short
#define U8   unsigned char
#define U16_2_S16(X)   (((X) & 0x8000) ? ((S16) ((S32) (X) - (S32) 0x10000)) : ((S16) (X)))
#define U16_2_S32(X)   (((X) & 0x8000) ? ((S32) (X) - (S32) 0x10000) : ((S32) (X)))

Define Documentation

#define S16   short
 

#define S32   int
 

#define U16   unsigned short
 

#define U16_2_S16      (((X) & 0x8000) ? ((S16) ((S32) (X) - (S32) 0x10000)) : ((S16) (X)))
 

#define U16_2_S32      (((X) & 0x8000) ? ((S32) (X) - (S32) 0x10000) : ((S32) (X)))
 

#define U32   unsigned int
 

#define U8   unsigned char
 


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/gd_8h.html000066400000000000000000000254611441723000300164470ustar00rootroot00000000000000 gd.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

gd.h File Reference


Data Structures

struct  _wmf_gd_sink
struct  _wmf_gd_t

Defines

#define WMF_GD_SUPPORTS_PNG   (1 << 0)
#define WMF_GD_SUPPORTS_JPEG   (1 << 1)
#define WMF_GD_OUTPUT_FILE   (1 << 16)
#define WMF_GD_OUTPUT_MEMORY   (1 << 17)
#define WMF_GD_OWN_BUFFER   (1 << 18)
#define WMF_GD_GetData(Z)   ((wmf_gd_t*)((Z)->device_data))

Typedefs

typedef enum _wmf_gd_subtype wmf_gd_subtype
typedef _wmf_gd_t wmf_gd_t

Enumerations

enum  _wmf_gd_subtype {
  wmf_gd_png = 0,
  wmf_gd_jpeg,
  wmf_gd_image
}

Functions

void wmf_gd_function (wmfAPI *)
int * wmf_gd_image_pixels (void *gd_image)

Define Documentation

#define WMF_GD_GetData      ((wmf_gd_t*)((Z)->device_data))
 

#define WMF_GD_OUTPUT_FILE   (1 << 16)
 

#define WMF_GD_OUTPUT_MEMORY   (1 << 17)
 

#define WMF_GD_OWN_BUFFER   (1 << 18)
 

#define WMF_GD_SUPPORTS_JPEG   (1 << 1)
 

#define WMF_GD_SUPPORTS_PNG   (1 << 0)
 


Typedef Documentation

typedef enum _wmf_gd_subtype wmf_gd_subtype
 

typedef struct _wmf_gd_t wmf_gd_t
 


Enumeration Type Documentation

enum _wmf_gd_subtype
 

Enumeration values:
wmf_gd_png 
wmf_gd_jpeg 
wmf_gd_image 


Function Documentation

void wmf_gd_function wmfAPI  
 

int* wmf_gd_image_pixels void *    gd_image
 

If using the wmf_gd_image option to write to a GD image, collected from the void* gd_image member of the device data struct above, the true-color pixels (stored in a contiguous array of height * width integers) of the image can be retrieved using wmf_gd_image_pixels()


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/globals.html000066400000000000000000002345001441723000300170750ustar00rootroot00000000000000 File Member Index
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

libwmf Globals

_ | a | b | c | d | e | f | h | m | n | o | p | r | s | t | u | w

Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- _ -

- a -

- b -

- c -

- d -

- e -

- f -

- h -

- m -

- n -

- o -

- p -

- r -

- s -

- t -

- u -

- w -


Generated on Tue Dec 10 19:53:55 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/include_2libwmf_2color_8h.html000066400000000000000000003137011441723000300223770ustar00rootroot00000000000000 include/libwmf/color.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

color.h File Reference


Variables

wmfRGB wmf_aliceblue
wmfRGB wmf_antiquewhite
wmfRGB wmf_aqua
wmfRGB wmf_aquamarine
wmfRGB wmf_azure
wmfRGB wmf_beige
wmfRGB wmf_bisque
wmfRGB wmf_black
wmfRGB wmf_blanchedalmond
wmfRGB wmf_blue
wmfRGB wmf_blueviolet
wmfRGB wmf_brown
wmfRGB wmf_burlywood
wmfRGB wmf_cadetblue
wmfRGB wmf_chartreuse
wmfRGB wmf_chocolate
wmfRGB wmf_coral
wmfRGB wmf_cornflowerblue
wmfRGB wmf_cornsilk
wmfRGB wmf_crimson
wmfRGB wmf_cyan
wmfRGB wmf_darkblue
wmfRGB wmf_darkcyan
wmfRGB wmf_darkgoldenrod
wmfRGB wmf_darkgray
wmfRGB wmf_darkgreen
wmfRGB wmf_darkgrey
wmfRGB wmf_darkkhaki
wmfRGB wmf_darkmagenta
wmfRGB wmf_darkolivegreen
wmfRGB wmf_darkorange
wmfRGB wmf_darkorchid
wmfRGB wmf_darkred
wmfRGB wmf_darksalmon
wmfRGB wmf_darkseagreen
wmfRGB wmf_darkslateblue
wmfRGB wmf_darkslategray
wmfRGB wmf_darkslategrey
wmfRGB wmf_darkturquoise
wmfRGB wmf_darkviolet
wmfRGB wmf_deeppink
wmfRGB wmf_deepskyblue
wmfRGB wmf_dimgray
wmfRGB wmf_dimgrey
wmfRGB wmf_dodgerblue
wmfRGB wmf_firebrick
wmfRGB wmf_floralwhite
wmfRGB wmf_forestgreen
wmfRGB wmf_fuchsia
wmfRGB wmf_gainsboro
wmfRGB wmf_ghostwhite
wmfRGB wmf_gold
wmfRGB wmf_goldenrod
wmfRGB wmf_gray
wmfRGB wmf_grey
wmfRGB wmf_green
wmfRGB wmf_greenyellow
wmfRGB wmf_honeydew
wmfRGB wmf_hotpink
wmfRGB wmf_indianred
wmfRGB wmf_indigo
wmfRGB wmf_ivory
wmfRGB wmf_khaki
wmfRGB wmf_lavender
wmfRGB wmf_lavenderblush
wmfRGB wmf_lawngreen
wmfRGB wmf_lemonchiffon
wmfRGB wmf_lightblue
wmfRGB wmf_lightcoral
wmfRGB wmf_lightcyan
wmfRGB wmf_lightgoldenrodyellow
wmfRGB wmf_lightgray
wmfRGB wmf_lightgreen
wmfRGB wmf_lightgrey
wmfRGB wmf_lightpink
wmfRGB wmf_lightsalmon
wmfRGB wmf_lightseagreen
wmfRGB wmf_lightskyblue
wmfRGB wmf_lightslategray
wmfRGB wmf_lightslategrey
wmfRGB wmf_lightsteelblue
wmfRGB wmf_lightyellow
wmfRGB wmf_lime
wmfRGB wmf_limegreen
wmfRGB wmf_linen
wmfRGB wmf_magenta
wmfRGB wmf_maroon
wmfRGB wmf_mediumaquamarine
wmfRGB wmf_mediumblue
wmfRGB wmf_mediumorchid
wmfRGB wmf_mediumpurple
wmfRGB wmf_mediumseagreen
wmfRGB wmf_mediumslateblue
wmfRGB wmf_mediumspringgreen
wmfRGB wmf_mediumturquoise
wmfRGB wmf_mediumvioletred
wmfRGB wmf_midnightblue
wmfRGB wmf_mintcream
wmfRGB wmf_mistyrose
wmfRGB wmf_moccasin
wmfRGB wmf_navajowhite
wmfRGB wmf_navy
wmfRGB wmf_oldlace
wmfRGB wmf_olive
wmfRGB wmf_olivedrab
wmfRGB wmf_orange
wmfRGB wmf_orangered
wmfRGB wmf_orchid
wmfRGB wmf_palegoldenrod
wmfRGB wmf_palegreen
wmfRGB wmf_paleturquoise
wmfRGB wmf_palevioletred
wmfRGB wmf_papayawhip
wmfRGB wmf_peachpuff
wmfRGB wmf_peru
wmfRGB wmf_pink
wmfRGB wmf_plum
wmfRGB wmf_powderblue
wmfRGB wmf_purple
wmfRGB wmf_red
wmfRGB wmf_rosybrown
wmfRGB wmf_royalblue
wmfRGB wmf_saddlebrown
wmfRGB wmf_salmon
wmfRGB wmf_sandybrown
wmfRGB wmf_seagreen
wmfRGB wmf_seashell
wmfRGB wmf_sienna
wmfRGB wmf_silver
wmfRGB wmf_skyblue
wmfRGB wmf_slateblue
wmfRGB wmf_slategray
wmfRGB wmf_slategrey
wmfRGB wmf_snow
wmfRGB wmf_springgreen
wmfRGB wmf_steelblue
wmfRGB wmf_tan
wmfRGB wmf_teal
wmfRGB wmf_thistle
wmfRGB wmf_tomato
wmfRGB wmf_turquoise
wmfRGB wmf_violet
wmfRGB wmf_wheat
wmfRGB wmf_white
wmfRGB wmf_whitesmoke
wmfRGB wmf_yellow
wmfRGB wmf_yellowgreen

Variable Documentation

wmfRGB wmf_aliceblue
 

wmfRGB wmf_antiquewhite
 

wmfRGB wmf_aqua
 

wmfRGB wmf_aquamarine
 

wmfRGB wmf_azure
 

wmfRGB wmf_beige
 

wmfRGB wmf_bisque
 

wmfRGB wmf_black
 

wmfRGB wmf_blanchedalmond
 

wmfRGB wmf_blue
 

wmfRGB wmf_blueviolet
 

wmfRGB wmf_brown
 

wmfRGB wmf_burlywood
 

wmfRGB wmf_cadetblue
 

wmfRGB wmf_chartreuse
 

wmfRGB wmf_chocolate
 

wmfRGB wmf_coral
 

wmfRGB wmf_cornflowerblue
 

wmfRGB wmf_cornsilk
 

wmfRGB wmf_crimson
 

wmfRGB wmf_cyan
 

wmfRGB wmf_darkblue
 

wmfRGB wmf_darkcyan
 

wmfRGB wmf_darkgoldenrod
 

wmfRGB wmf_darkgray
 

wmfRGB wmf_darkgreen
 

wmfRGB wmf_darkgrey
 

wmfRGB wmf_darkkhaki
 

wmfRGB wmf_darkmagenta
 

wmfRGB wmf_darkolivegreen
 

wmfRGB wmf_darkorange
 

wmfRGB wmf_darkorchid
 

wmfRGB wmf_darkred
 

wmfRGB wmf_darksalmon
 

wmfRGB wmf_darkseagreen
 

wmfRGB wmf_darkslateblue
 

wmfRGB wmf_darkslategray
 

wmfRGB wmf_darkslategrey
 

wmfRGB wmf_darkturquoise
 

wmfRGB wmf_darkviolet
 

wmfRGB wmf_deeppink
 

wmfRGB wmf_deepskyblue
 

wmfRGB wmf_dimgray
 

wmfRGB wmf_dimgrey
 

wmfRGB wmf_dodgerblue
 

wmfRGB wmf_firebrick
 

wmfRGB wmf_floralwhite
 

wmfRGB wmf_forestgreen
 

wmfRGB wmf_fuchsia
 

wmfRGB wmf_gainsboro
 

wmfRGB wmf_ghostwhite
 

wmfRGB wmf_gold
 

wmfRGB wmf_goldenrod
 

wmfRGB wmf_gray
 

wmfRGB wmf_green
 

wmfRGB wmf_greenyellow
 

wmfRGB wmf_grey
 

wmfRGB wmf_honeydew
 

wmfRGB wmf_hotpink
 

wmfRGB wmf_indianred
 

wmfRGB wmf_indigo
 

wmfRGB wmf_ivory
 

wmfRGB wmf_khaki
 

wmfRGB wmf_lavender
 

wmfRGB wmf_lavenderblush
 

wmfRGB wmf_lawngreen
 

wmfRGB wmf_lemonchiffon
 

wmfRGB wmf_lightblue
 

wmfRGB wmf_lightcoral
 

wmfRGB wmf_lightcyan
 

wmfRGB wmf_lightgoldenrodyellow
 

wmfRGB wmf_lightgray
 

wmfRGB wmf_lightgreen
 

wmfRGB wmf_lightgrey
 

wmfRGB wmf_lightpink
 

wmfRGB wmf_lightsalmon
 

wmfRGB wmf_lightseagreen
 

wmfRGB wmf_lightskyblue
 

wmfRGB wmf_lightslategray
 

wmfRGB wmf_lightslategrey
 

wmfRGB wmf_lightsteelblue
 

wmfRGB wmf_lightyellow
 

wmfRGB wmf_lime
 

wmfRGB wmf_limegreen
 

wmfRGB wmf_linen
 

wmfRGB wmf_magenta
 

wmfRGB wmf_maroon
 

wmfRGB wmf_mediumaquamarine
 

wmfRGB wmf_mediumblue
 

wmfRGB wmf_mediumorchid
 

wmfRGB wmf_mediumpurple
 

wmfRGB wmf_mediumseagreen
 

wmfRGB wmf_mediumslateblue
 

wmfRGB wmf_mediumspringgreen
 

wmfRGB wmf_mediumturquoise
 

wmfRGB wmf_mediumvioletred
 

wmfRGB wmf_midnightblue
 

wmfRGB wmf_mintcream
 

wmfRGB wmf_mistyrose
 

wmfRGB wmf_moccasin
 

wmfRGB wmf_navajowhite
 

wmfRGB wmf_navy
 

wmfRGB wmf_oldlace
 

wmfRGB wmf_olive
 

wmfRGB wmf_olivedrab
 

wmfRGB wmf_orange
 

wmfRGB wmf_orangered
 

wmfRGB wmf_orchid
 

wmfRGB wmf_palegoldenrod
 

wmfRGB wmf_palegreen
 

wmfRGB wmf_paleturquoise
 

wmfRGB wmf_palevioletred
 

wmfRGB wmf_papayawhip
 

wmfRGB wmf_peachpuff
 

wmfRGB wmf_peru
 

wmfRGB wmf_pink
 

wmfRGB wmf_plum
 

wmfRGB wmf_powderblue
 

wmfRGB wmf_purple
 

wmfRGB wmf_red
 

wmfRGB wmf_rosybrown
 

wmfRGB wmf_royalblue
 

wmfRGB wmf_saddlebrown
 

wmfRGB wmf_salmon
 

wmfRGB wmf_sandybrown
 

wmfRGB wmf_seagreen
 

wmfRGB wmf_seashell
 

wmfRGB wmf_sienna
 

wmfRGB wmf_silver
 

wmfRGB wmf_skyblue
 

wmfRGB wmf_slateblue
 

wmfRGB wmf_slategray
 

wmfRGB wmf_slategrey
 

wmfRGB wmf_snow
 

wmfRGB wmf_springgreen
 

wmfRGB wmf_steelblue
 

wmfRGB wmf_tan
 

wmfRGB wmf_teal
 

wmfRGB wmf_thistle
 

wmfRGB wmf_tomato
 

wmfRGB wmf_turquoise
 

wmfRGB wmf_violet
 

wmfRGB wmf_wheat
 

wmfRGB wmf_white
 

wmfRGB wmf_whitesmoke
 

wmfRGB wmf_yellow
 

wmfRGB wmf_yellowgreen
 


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/include_2libwmf_2font_8h.html000066400000000000000000000622731441723000300222340ustar00rootroot00000000000000 include/libwmf/font.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

font.h File Reference


Data Structures

struct  _wmfFontmapData
struct  _wmfFT_CacheEntry
struct  _wmfFT_Mapping
struct  _wmfGS_FontData
struct  _wmfGS_FontInfo
struct  _wmfIPAFont
struct  _wmfXML_FontData
struct  _wmfXML_FontInfo

Defines

#define WMF_FONT_PSNAME(F)   ((F)->user_data ? ((wmfIPAFont*) (F)->user_data)->ps_name : 0)
#define WMF_FONT_FTFACE(F)   ((F)->user_data ? ((wmfIPAFont*) (F)->user_data)->ft_face : 0)

Typedefs

typedef _wmfFT_Mapping wmfFT_Mapping
typedef _wmfFT_CacheEntry wmfFT_CacheEntry
typedef _wmfGS_FontData wmfGS_FontData
typedef _wmfGS_FontInfo wmfGS_FontInfo
typedef _wmfXML_FontData wmfXML_FontData
typedef _wmfXML_FontInfo wmfXML_FontInfo
typedef _wmfFontmapData wmfFontmapData
typedef _wmfIPAFont wmfIPAFont
typedef void(* wmfCharDrawer )(wmfAPI *, wmfDrawText_t *)

Functions

void wmf_ipa_font_init (wmfAPI *, wmfAPI_Options *)
void wmf_ipa_font_map_gs (wmfAPI *, wmfGS_FontData *, char *)
void wmf_ipa_font_map_xml (wmfAPI *, wmfXML_FontData *, char *)
void wmf_ipa_font_map_set (wmfAPI *, wmfMap)
void wmf_ipa_font_map (wmfAPI *, wmfFont *)
void wmf_ipa_font_dir (wmfAPI *, char *)
float wmf_ipa_font_stringwidth (wmfAPI *, wmfFont *, char *)
char * wmf_ipa_font_lookup (wmfAPI *, char *)
void wmf_ipa_draw_text (wmfAPI *, wmfDrawText_t *, wmfCharDrawer)

Define Documentation

#define WMF_FONT_FTFACE      ((F)->user_data ? ((wmfIPAFont*) (F)->user_data)->ft_face : 0)
 

WMF_FONT_FTFACE(wmfFont* F) -> (FT_Face) freetype(2) font face

#define WMF_FONT_PSNAME      ((F)->user_data ? ((wmfIPAFont*) (F)->user_data)->ps_name : 0)
 

WMF_FONT_PSNAME(wmfFont* F) -> (char*) font name to use in postscript output


Typedef Documentation

typedef void(* wmfCharDrawer)(wmfAPI*,wmfDrawText_t*)
 

typedef struct _wmfFontmapData wmfFontmapData
 

typedef struct _wmfFT_CacheEntry wmfFT_CacheEntry
 

typedef struct _wmfFT_Mapping wmfFT_Mapping
 

typedef struct _wmfGS_FontData wmfGS_FontData
 

typedef struct _wmfGS_FontInfo wmfGS_FontInfo
 

typedef struct _wmfIPAFont wmfIPAFont
 

typedef struct _wmfXML_FontData wmfXML_FontData
 

typedef struct _wmfXML_FontInfo wmfXML_FontInfo
 


Function Documentation

void wmf_ipa_draw_text wmfAPI  ,
wmfDrawText_t  ,
wmfCharDrawer   
 

void wmf_ipa_font_dir wmfAPI  ,
char *   
 

void wmf_ipa_font_init wmfAPI  ,
wmfAPI_Options  
 

char* wmf_ipa_font_lookup wmfAPI  ,
char *   
 

void wmf_ipa_font_map wmfAPI   API,
wmfFont   font
 

This is the fun bit.

Parameters:
API  the API handle
font  WMF font object: font's family name, italics flag, and the weight
Other inputs include: a ghostscript-style Fontmap, and up to two XML RedHat-style fontmaps. (These are all parsed earlier.) There are also the fallback 13 standard postscript fonts. And then there is a list of font directories to search for fonts.

libwmf requires fonts to have a postscript name, and maintains an internal cache of glyphs path and freetype font face, keyed to postscript font name. Unfortunately, although the XML fontmaps do have font family name, the GS fontmap does not. In the latter, therefore, matching WMF font info to postscript font name is hit-and-miss.

void wmf_ipa_font_map_gs wmfAPI  ,
wmfGS_FontData  ,
char *   
 

void wmf_ipa_font_map_set wmfAPI  ,
wmfMap   
 

void wmf_ipa_font_map_xml wmfAPI  ,
wmfXML_FontData  ,
char *   
 

float wmf_ipa_font_stringwidth wmfAPI  ,
wmfFont  ,
char *   
 


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/index.html000066400000000000000000000017531441723000300165630ustar00rootroot00000000000000 Main Page
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

libwmf Documentation

0.2.8


Generated on Tue Dec 10 19:53:46 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/io-wmf_8c.html000066400000000000000000000062311441723000300172400ustar00rootroot00000000000000 io-wmf.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

io-wmf.c File Reference


Data Structures

struct  WmfContext

Functions

G_MODULE_EXPORT void fill_vtable (GdkPixbufModule *module)
G_MODULE_EXPORT void fill_info (GdkPixbufFormat *info)

Function Documentation

void fill_info GdkPixbufFormat *    info
 

void fill_vtable GdkPixbufModule *    module
 


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/ipa_2bmp_8h.html000066400000000000000000000427111441723000300175430ustar00rootroot00000000000000 ipa/bmp.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

bmp.h File Reference


Functions

void wmf_ipa_bmp_b64 (wmfAPI *API, wmfBMP_Draw_t *bmp_draw, wmfStream *out)
void wmf_ipa_bmp_png (wmfAPI *API, wmfBMP_Draw_t *bmp_draw, char *name)
void wmf_ipa_bmp_jpg (wmfAPI *API, wmfBMP_Draw_t *bmp_draw, char *name)
void wmf_ipa_bmp_eps (wmfAPI *API, wmfBMP_Draw_t *bmp_draw, char *name)
void wmf_ipa_bmp_read (wmfAPI *API, wmfBMP_Read_t *bmp_read)
void wmf_ipa_bmp_free (wmfAPI *API, wmfBMP *bmp)
wmfBMP wmf_ipa_bmp_copy (wmfAPI *API, wmfBMP *bmp, unsigned int width, unsigned int height)
int wmf_ipa_bmp_color (wmfAPI *API, wmfBMP *bmp, wmfRGB *rgb, unsigned int x, unsigned int y)
int wmf_ipa_bmp_interpolate (wmfAPI *API, wmfBMP *bmp, wmfRGB *rgb, float x, float y)
void wmf_ipa_bmp_setcolor (wmfAPI *API, wmfBMP *bmp, wmfRGB *rgb, unsigned char opacity, unsigned int x, unsigned int y)

Function Documentation

void wmf_ipa_bmp_b64 wmfAPI   API,
wmfBMP_Draw_t   bmp_draw,
wmfStream   out
 

int wmf_ipa_bmp_color wmfAPI   API,
wmfBMP   bmp,
wmfRGB   rgb,
unsigned int    x,
unsigned int    y
 

wmfBMP wmf_ipa_bmp_copy wmfAPI   API,
wmfBMP   bmp,
unsigned int    width,
unsigned int    height
 

void wmf_ipa_bmp_eps wmfAPI   API,
wmfBMP_Draw_t   bmp_draw,
char *    name
 

void wmf_ipa_bmp_free wmfAPI   API,
wmfBMP   bmp
 

int wmf_ipa_bmp_interpolate wmfAPI   API,
wmfBMP   bmp,
wmfRGB   rgb,
float    x,
float    y
 

void wmf_ipa_bmp_jpg wmfAPI   API,
wmfBMP_Draw_t   bmp_draw,
char *    name
 

void wmf_ipa_bmp_png wmfAPI   API,
wmfBMP_Draw_t   bmp_draw,
char *    name
 

void wmf_ipa_bmp_read wmfAPI   API,
wmfBMP_Read_t   bmp_read
 

void wmf_ipa_bmp_setcolor wmfAPI   API,
wmfBMP   bmp,
wmfRGB   rgb,
unsigned char    opacity,
unsigned int    x,
unsigned int    y
 


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/ipa_2eps_2region_8h.html000066400000000000000000000020531441723000300211740ustar00rootroot00000000000000 ipa/eps/region.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

region.h File Reference


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/ipa_2fig_2region_8h.html000066400000000000000000000020531441723000300211520ustar00rootroot00000000000000 ipa/fig/region.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

region.h File Reference


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/ipa_2magick_2region_8h.html000066400000000000000000000020561441723000300216430ustar00rootroot00000000000000 ipa/magick/region.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

region.h File Reference


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/ipa_2plot_2region_8h.html000066400000000000000000000020541441723000300213640ustar00rootroot00000000000000 ipa/plot/region.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

region.h File Reference


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/ipa_2svg_2region_8h.html000066400000000000000000000020531441723000300212040ustar00rootroot00000000000000 ipa/svg/region.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

region.h File Reference


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/ipa_2x_2region_8h.html000066400000000000000000000020511441723000300206520ustar00rootroot00000000000000 ipa/x/region.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

region.h File Reference


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/ipa_2xgd_2region_8h.html000066400000000000000000000020531441723000300211670ustar00rootroot00000000000000 ipa/xgd/region.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

region.h File Reference


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/ipa_8c.html000066400000000000000000000144101441723000300166110ustar00rootroot00000000000000 ipa.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

ipa.c File Reference


Defines

#define WMF_IPA   1
#define NPageTypes   11

Functions

char * wmf_ipa_page_format (wmfAPI *API, wmf_page_t type)
unsigned int wmf_ipa_page_width (wmfAPI *API, wmf_page_t type)
unsigned int wmf_ipa_page_height (wmfAPI *API, wmf_page_t type)

Define Documentation

#define NPageTypes   11
 

#define WMF_IPA   1
 


Function Documentation

char* wmf_ipa_page_format wmfAPI   API,
wmf_page_t    type
 

unsigned int wmf_ipa_page_height wmfAPI   API,
wmf_page_t    type
 

unsigned int wmf_ipa_page_width wmfAPI   API,
wmf_page_t    type
 


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/ipa_8h.html000066400000000000000000001505651441723000300166320ustar00rootroot00000000000000 ipa.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

ipa.h File Reference


Data Structures

struct  _wmfBMP_Draw_t
struct  _wmfBMP_Read_t
struct  _wmfBMP
struct  _wmfBrush
struct  _wmfColorData
struct  _wmfDC
struct  _wmfDrawArc_t
struct  _wmfDrawLine_t
struct  _wmfDrawPixel_t
struct  _wmfDrawRectangle_t
struct  _wmfDrawText_t
struct  _wmfFlood_t
struct  _wmfFont
struct  _wmfFontData
struct  _wmfFunctionReference
struct  _wmfPen
struct  _wmfPolyLine_t
struct  _wmfPolyPoly_t
struct  _wmfPolyRectangle_t
struct  _wmfRGB
struct  _wmfROP_Draw_t
struct  _wmfUserData_t

Typedefs

typedef _wmfRGB wmfRGB
typedef _wmfBMP wmfBMP
typedef _wmfBrush wmfBrush
typedef _wmfPen wmfPen
typedef _wmfFont wmfFont
typedef _wmfFontData wmfFontData
typedef _wmfColorData wmfColorData
typedef _wmfDC wmfDC
typedef _wmfFlood_t wmfFlood_t
typedef _wmfDrawPixel_t wmfDrawPixel_t
typedef _wmfDrawArc_t wmfDrawArc_t
typedef _wmfDrawLine_t wmfDrawLine_t
typedef _wmfPolyLine_t wmfPolyLine_t
typedef _wmfPolyPoly_t wmfPolyPoly_t
typedef _wmfDrawRectangle_t wmfDrawRectangle_t
typedef _wmfPolyRectangle_t wmfPolyRectangle_t
typedef _wmfBMP_Read_t wmfBMP_Read_t
typedef _wmfBMP_Draw_t wmfBMP_Draw_t
typedef _wmfROP_Draw_t wmfROP_Draw_t
typedef _wmfDrawText_t wmfDrawText_t
typedef _wmfUserData_t wmfUserData_t
typedef _wmfFunctionReference wmfFunctionReference
typedef float(* wmfStringWidth )(wmfAPI *, wmfFont *, char *)
typedef void(* wmfMap )(wmfAPI *, wmfFont *)

Functions

void wmf_ipa_bmp_b64 (wmfAPI *, wmfBMP_Draw_t *, wmfStream *)
void wmf_ipa_bmp_png (wmfAPI *, wmfBMP_Draw_t *, char *)
void wmf_ipa_bmp_jpg (wmfAPI *, wmfBMP_Draw_t *, char *)
void wmf_ipa_bmp_eps (wmfAPI *, wmfBMP_Draw_t *, char *)
void wmf_ipa_bmp_read (wmfAPI *, wmfBMP_Read_t *)
void wmf_ipa_bmp_free (wmfAPI *, wmfBMP *)
wmfBMP wmf_ipa_bmp_copy (wmfAPI *, wmfBMP *, unsigned int, unsigned int)
int wmf_ipa_bmp_color (wmfAPI *, wmfBMP *, wmfRGB *, unsigned int, unsigned int)
void wmf_ipa_bmp_setcolor (wmfAPI *, wmfBMP *, wmfRGB *, unsigned char, unsigned int, unsigned int)
int wmf_ipa_bmp_interpolate (wmfAPI *, wmfBMP *, wmfRGB *, float, float)
void wmf_ipa_color_init (wmfAPI *)
void wmf_ipa_color_add (wmfAPI *, wmfRGB *)
unsigned long wmf_ipa_color_index (wmfAPI *, wmfRGB *)
unsigned long wmf_ipa_color_count (wmfAPI *)
wmfRGBwmf_ipa_color (wmfAPI *, unsigned long)
char * wmf_ipa_page_format (wmfAPI *, wmf_page_t)
unsigned int wmf_ipa_page_width (wmfAPI *, wmf_page_t)
unsigned int wmf_ipa_page_height (wmfAPI *, wmf_page_t)
wmfRGB wmf_rgb_color (wmfAPI *, float, float, float)

Variables

wmfRGB wmf_rgb_white (wmfAPI *)
wmfRGB wmf_rgb_black (wmfAPI *)

Typedef Documentation

typedef struct _wmfBMP wmfBMP
 

typedef struct _wmfBMP_Draw_t wmfBMP_Draw_t
 

typedef struct _wmfBMP_Read_t wmfBMP_Read_t
 

typedef struct _wmfBrush wmfBrush
 

typedef struct _wmfColorData wmfColorData
 

typedef struct _wmfDC wmfDC
 

typedef struct _wmfDrawArc_t wmfDrawArc_t
 

typedef struct _wmfDrawLine_t wmfDrawLine_t
 

typedef struct _wmfDrawPixel_t wmfDrawPixel_t
 

typedef struct _wmfDrawRectangle_t wmfDrawRectangle_t
 

typedef struct _wmfDrawText_t wmfDrawText_t
 

typedef struct _wmfFlood_t wmfFlood_t
 

typedef struct _wmfFont wmfFont
 

typedef struct _wmfFontData wmfFontData
 

typedef struct _wmfFunctionReference wmfFunctionReference
 

typedef void(* wmfMap)(wmfAPI*,wmfFont*)
 

typedef struct _wmfPen wmfPen
 

typedef struct _wmfPolyLine_t wmfPolyLine_t
 

typedef struct _wmfPolyPoly_t wmfPolyPoly_t
 

typedef struct _wmfPolyRectangle_t wmfPolyRectangle_t
 

typedef struct _wmfRGB wmfRGB
 

typedef struct _wmfROP_Draw_t wmfROP_Draw_t
 

typedef float(* wmfStringWidth)(wmfAPI*,wmfFont*,char*)
 

typedef struct _wmfUserData_t wmfUserData_t
 


Function Documentation

void wmf_ipa_bmp_b64 wmfAPI  ,
wmfBMP_Draw_t  ,
wmfStream  
 

int wmf_ipa_bmp_color wmfAPI  ,
wmfBMP  ,
wmfRGB  ,
unsigned    int,
unsigned    int
 

wmfBMP wmf_ipa_bmp_copy wmfAPI  ,
wmfBMP  ,
unsigned    int,
unsigned    int
 

void wmf_ipa_bmp_eps wmfAPI  ,
wmfBMP_Draw_t  ,
char *   
 

void wmf_ipa_bmp_free wmfAPI  ,
wmfBMP  
 

int wmf_ipa_bmp_interpolate wmfAPI  ,
wmfBMP  ,
wmfRGB  ,
float   ,
float   
 

void wmf_ipa_bmp_jpg wmfAPI  ,
wmfBMP_Draw_t  ,
char *   
 

void wmf_ipa_bmp_png wmfAPI  ,
wmfBMP_Draw_t  ,
char *   
 

void wmf_ipa_bmp_read wmfAPI  ,
wmfBMP_Read_t  
 

void wmf_ipa_bmp_setcolor wmfAPI  ,
wmfBMP  ,
wmfRGB  ,
unsigned    char,
unsigned    int,
unsigned    int
 

wmfRGB* wmf_ipa_color wmfAPI   API,
unsigned long    index
 

Get indexed color.

Parameters:
API  the API handle
index  the index of the color
Returns:
Returns pointer to the indexed color.

void wmf_ipa_color_add wmfAPI   API,
wmfRGB   rgb
 

Add a color to the internal table.

Parameters:
API  the API handle
rgb  pointer to the color to be added

unsigned long wmf_ipa_color_count wmfAPI   API
 

Get the number of indexed colors.

Parameters:
API  the API handle
Returns:
Returns the number of indexed colors.

unsigned long wmf_ipa_color_index wmfAPI   API,
wmfRGB   rgb
 

Find closest matching color in internal table and return its index.

Parameters:
API  the API handle
rgb  pointer to the color to be matched
Returns:
Returns the index of the closest matching color.

void wmf_ipa_color_init wmfAPI   API
 

Initialize internal color table

Parameters:
API  the API handle

char* wmf_ipa_page_format wmfAPI  ,
wmf_page_t   
 

unsigned int wmf_ipa_page_height wmfAPI  ,
wmf_page_t   
 

unsigned int wmf_ipa_page_width wmfAPI  ,
wmf_page_t   
 

wmfRGB wmf_rgb_color wmfAPI   API,
float    red,
float    green,
float    blue
 

Create a color with specified fractions of red, green and blue.

Parameters:
API  the API handle
red  fraction (0 to 1 inclusive) of color red
green  fraction (0 to 1 inclusive) of color green
blue  fraction (0 to 1 inclusive) of color blue
wmf_rgb_color (API,1,1,1) returns wmf_white.

wmf_rgb_color (API,0,0,0) returns wmf_black.

Returns:
Returns the color.


Variable Documentation

wmfRGB wmf_rgb_black(wmfAPI*)
 

wmfRGB wmf_rgb_white(wmfAPI*)
 


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/macro_8h.html000066400000000000000000002413701441723000300171550ustar00rootroot00000000000000 macro.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

macro.h File Reference


Defines

#define WMF_PEN_STYLE(P)   ((P)->lopnStyle & PS_STYLE_MASK)
#define WMF_PEN_ENDCAP(P)   ((P)->lopnStyle & PS_ENDCAP_MASK)
#define WMF_PEN_JOIN(P)   ((P)->lopnStyle & PS_JOIN_MASK)
#define WMF_PEN_TYPE(P)   ((P)->lopnStyle & PS_TYPE_MASK)
#define WMF_PEN_WIDTH(P)   ((P)->width)
#define WMF_PEN_HEIGHT(P)   ((P)->height)
#define WMF_PEN_COLOR(P)   (&((P)->lopnColor))
#define WMF_PEN_SET_STYLE(P, Z)   (P)->lopnStyle = ((P)->lopnStyle & ~PS_STYLE_MASK ) | ((Z) & PS_STYLE_MASK )
#define WMF_PEN_SET_ENDCAP(P, Z)   (P)->lopnStyle = ((P)->lopnStyle & ~PS_ENDCAP_MASK) | ((Z) & PS_ENDCAP_MASK)
#define WMF_PEN_SET_JOIN(P, Z)   (P)->lopnStyle = ((P)->lopnStyle & ~PS_JOIN_MASK ) | ((Z) & PS_JOIN_MASK )
#define WMF_PEN_SET_TYPE(P, Z)   (P)->lopnStyle = ((P)->lopnStyle & ~PS_TYPE_MASK ) | ((Z) & PS_TYPE_MASK )
#define WMF_PEN_SET_WIDTH(P, Z)   (P)->width = (Z)
#define WMF_PEN_SET_HEIGHT(P, Z)   (P)->height = (Z)
#define WMF_PEN_SET_COLOR(P, Z)   (P)->lopnColor = (*(Z))
#define WMF_BRUSH_STYLE(B)   ((B)->lbStyle)
#define WMF_BRUSH_HATCH(B)   ((B)->lbHatch)
#define WMF_BRUSH_COLOR(B)   (&((B)->lbColor))
#define WMF_BRUSH_BITMAP(B)   (&((B)->bmp))
#define WMF_BRUSH_SET_STYLE(B, Z)   (B)->lbStyle = (Z)
#define WMF_BRUSH_SET_HATCH(B, Z)   (B)->lbHatch = (Z)
#define WMF_BRUSH_SET_COLOR(B, Z)   (B)->lbColor = (*(Z))
#define WMF_BRUSH_SET_BITMAP(B, Z)   (B)->bmp = (*(Z))
#define WMF_TEXT_ANGLE(F)   ((((double) (F)->lfEscapement) / 10) * M_PI / 180)
#define WMF_TEXT_UNDERLINE(F)   ((F)->lfUnderline)
#define WMF_TEXT_STRIKEOUT(F)   ((F)->lfStrikeOut)
#define WMF_FONT_WIDTH(F)   ((F)->lfWidth)
#define WMF_FONT_HEIGHT(F)   ((F)->lfHeight)
#define WMF_FONT_ESCAPEMENT(F)   ((F)->lfEscapement)
#define WMF_FONT_ORIENTATION(F)   ((F)->lfOrientation)
#define WMF_FONT_WEIGHT(F)   ((F)->lfWeight)
#define WMF_FONT_ITALIC(F)   ((F)->lfItalic)
#define WMF_FONT_OUT(F)   ((F)->lfOutPrecision)
#define WMF_FONT_CLIP(F)   ((F)->lfClipPrecision)
#define WMF_FONT_QUALITY(F)   ((F)->lfQuality)
#define WMF_FONT_PITCH(F)   ((F)->lfPitchAndFamily)
#define WMF_FONT_CHARSET(F)   ((F)->lfCharSet)
#define WMF_FONT_NAME(F)   ((F)->lfFaceName)
#define WMF_TEXT_SET_UNDERLINE(F, Z)   (F)->lfUnderline = (Z)
#define WMF_TEXT_SET_STRIKEOUT(F, Z)   (F)->lfStrikeOut = (Z)
#define WMF_FONT_SET_WIDTH(F, Z)   (F)->lfWidth = (Z)
#define WMF_FONT_SET_HEIGHT(F, Z)   (F)->lfHeight = (Z)
#define WMF_FONT_SET_ESCAPEMENT(F, Z)   (F)->lfEscapement = (Z)
#define WMF_FONT_SET_ORIENTATION(F, Z)   (F)->lfOrientation = (Z)
#define WMF_FONT_SET_WEIGHT(F, Z)   (F)->lfWeight = (Z)
#define WMF_FONT_SET_ITALIC(F, Z)   (F)->lfItalic = (Z)
#define WMF_FONT_SET_OUT(F, Z)   (F)->lfOutPrecision = (Z)
#define WMF_FONT_SET_CLIP(F, Z)   (F)->lfClipPrecision = (Z)
#define WMF_FONT_SET_QUALITY(F, Z)   (F)->lfQuality = (Z)
#define WMF_FONT_SET_PITCH(F, Z)   (F)->lfPitchAndFamily = (Z)
#define WMF_FONT_SET_CHARSET(F, Z)   (F)->lfCharSet = (Z)
#define WMF_FONT_SET_NAME(F, Z)   (F)->lfFaceName = (Z)
#define WMF_DC_BRUSH(C)   ((C)->brush)
#define WMF_DC_PEN(C)   ((C)->pen)
#define WMF_DC_FONT(C)   ((C)->font)
#define WMF_DC_TEXTCOLOR(C)   (&((C)->textcolor))
#define WMF_DC_BACKGROUND(C)   (&((C)->bgcolor))
#define WMF_DC_OPAQUE(C)   ((C)->bgmode == OPAQUE)
#define WMF_DC_TRANSPARENT(C)   ((C)->bgmode == TRANSPARENT)
#define WMF_DC_POLYFILL(C)   ((C)->polyfillmode)
#define WMF_DC_ROP(C)   ((C)->ROPmode)
#define WMF_DC_TEXTALIGN(C)   ((C)->textalign)
#define WMF_DC_CHAREXTRA(C)   ((C)->charextra)
#define WMF_DC_BREAKEXTRA(C)   ((C)->breakextra)
#define WMF_DC_SET_PEN(C, Z)   (C)->pen = (Z)
#define WMF_DC_SET_BRUSH(C, Z)   (C)->brush = (Z)
#define WMF_DC_SET_FONT(C, Z)   (C)->font = (Z)
#define WMF_DC_SET_TEXTCOLOR(C, Z)   (C)->textcolor = (*(Z))
#define WMF_DC_SET_BACKGROUND(C, Z)   (C)->bgcolor = (*(Z))
#define WMF_DC_SET_OPAQUE(C)   (C)->bgmode = OPAQUE
#define WMF_DC_SET_TRANSPARENT(C)   (C)->bgmode = TRANSPARENT
#define WMF_DC_SET_POLYFILL(C, Z)   (C)->polyfillmode = (Z)
#define WMF_DC_SET_ROP(C, Z)   (C)->ROPmode = (Z)
#define WMF_DC_SET_TEXTALIGN(C, Z)   (C)->textalign = (Z)
#define WMF_DC_SET_CHAREXTRA(C, Z)   (C)->charextra = (Z)
#define WMF_DC_SET_BREAKEXTRA(C, Z)   (C)->breakextra = (Z)

Define Documentation

#define WMF_BRUSH_BITMAP      (&((B)->bmp))
 

WMF_BRUSH_BITMAP(wmfBrush* B) -> (wmfBMP*) brush bitmap

#define WMF_BRUSH_COLOR      (&((B)->lbColor))
 

WMF_BRUSH_COLOR(wmfBrush* B) -> (wmfRGB*) brush color

#define WMF_BRUSH_HATCH      ((B)->lbHatch)
 

WMF_BRUSH_HATCH(wmfBrush* B) -> (U16) brush hatch style

#define WMF_BRUSH_SET_BITMAP B,
     (B)->bmp = (*(Z))
 

WMF_BRUSH_SET_BITMAP(wmfBrush* B,(wmfBMP*) brush bitmap)

#define WMF_BRUSH_SET_COLOR B,
     (B)->lbColor = (*(Z))
 

WMF_BRUSH_SET_COLOR(wmfBrush* B,(wmfRGB*) brush color)

#define WMF_BRUSH_SET_HATCH B,
     (B)->lbHatch = (Z)
 

WMF_BRUSH_SET_HATCH(wmfBrush* B,(U16) brush hatch style)

#define WMF_BRUSH_SET_STYLE B,
     (B)->lbStyle = (Z)
 

WMF_BRUSH_SET_STYLE(wmfBrush* B,(U16) brush style)

#define WMF_BRUSH_STYLE      ((B)->lbStyle)
 

WMF_BRUSH_STYLE(wmfBrush* B) -> (U16) brush style

#define WMF_DC_BACKGROUND      (&((C)->bgcolor))
 

WMF_DC_BACKGROUND(wmfDC* C) -> (wmfRGB*) background color

#define WMF_DC_BREAKEXTRA      ((C)->breakextra)
 

WMF_DC_BREAKEXTRA(wmfDC* C) -> (U16) break [line break??]

#define WMF_DC_BRUSH      ((C)->brush)
 

WMF_DC_BRUSH(wmfDC* C) -> (wmfBrush*) current brush

#define WMF_DC_CHAREXTRA      ((C)->charextra)
 

WMF_DC_CHAREXTRA(wmfDC* C) -> (U16) char [extended character set??]

#define WMF_DC_FONT      ((C)->font)
 

WMF_DC_FONT(wmfDC* C) -> (wmfFont*) current font

#define WMF_DC_OPAQUE      ((C)->bgmode == OPAQUE)
 

WMF_DC_OPAQUE(wmfDC* C) -> (U16) whether to fill opaque (non-zero if true)

#define WMF_DC_PEN      ((C)->pen)
 

WMF_DC_PEN(wmfDC* C) -> (wmfPen*) current pen

#define WMF_DC_POLYFILL      ((C)->polyfillmode)
 

WMF_DC_POLYFILL(wmfDC* C) -> (U16) how to fill polygons

#define WMF_DC_ROP      ((C)->ROPmode)
 

WMF_DC_ROP(wmfDC* C) -> (U16) ROP mode

#define WMF_DC_SET_BACKGROUND C,
     (C)->bgcolor = (*(Z))
 

WMF_DC_SET_BACKGROUND(wmfDC* C,(wmfRGB*) background color)

#define WMF_DC_SET_BREAKEXTRA C,
     (C)->breakextra = (Z)
 

WMF_DC_SET_BREAKEXTRA(wmfDC* C,(U16) break [line break??])

#define WMF_DC_SET_BRUSH C,
     (C)->brush = (Z)
 

WMF_DC_SET_BRUSH(wmfDC* C,(wmfBrush*) current brush)

#define WMF_DC_SET_CHAREXTRA C,
     (C)->charextra = (Z)
 

WMF_DC_SET_CHAREXTRA(wmfDC* C,(U16) char [extended character set??])

#define WMF_DC_SET_FONT C,
     (C)->font = (Z)
 

WMF_DC_SET_FONT(wmfDC* C,(wmfFont*) current font)

#define WMF_DC_SET_OPAQUE      (C)->bgmode = OPAQUE
 

WMF_DC_SET_OPAQUE(wmfDC* C)

#define WMF_DC_SET_PEN C,
     (C)->pen = (Z)
 

WMF_DC_SET_PEN(wmfDC* C,(wmfPen*) current pen)

#define WMF_DC_SET_POLYFILL C,
     (C)->polyfillmode = (Z)
 

WMF_DC_SET_POLYFILL(wmfDC* C,(U16) how to fill polygons)

#define WMF_DC_SET_ROP C,
     (C)->ROPmode = (Z)
 

WMF_DC_SET_ROP(wmfDC* C,(U16) ROP mode)

#define WMF_DC_SET_TEXTALIGN C,
     (C)->textalign = (Z)
 

WMF_DC_SET_TEXTALIGN(wmfDC* C,(U16) how to align text)

#define WMF_DC_SET_TEXTCOLOR C,
     (C)->textcolor = (*(Z))
 

WMF_DC_SET_TEXTCOLOR(wmfDC* C,(wmfRGB*) text color)

#define WMF_DC_SET_TRANSPARENT      (C)->bgmode = TRANSPARENT
 

WMF_DC_SET_TRANSPARENT(wmfDC* C)

#define WMF_DC_TEXTALIGN      ((C)->textalign)
 

WMF_DC_TEXTALIGN(wmfDC* C) -> (U16) how to align text

#define WMF_DC_TEXTCOLOR      (&((C)->textcolor))
 

WMF_DC_TEXTCOLOR(wmfDC* C) -> (wmfRGB*) text color

#define WMF_DC_TRANSPARENT      ((C)->bgmode == TRANSPARENT)
 

WMF_DC_TRANSPARENT(wmfDC* C) -> (U16) whether to fill transparent

#define WMF_FONT_CHARSET      ((F)->lfCharSet)
 

WMF_FONT_CHARSET(wmfFont* F) -> (U8) character set

#define WMF_FONT_CLIP      ((F)->lfClipPrecision)
 

WMF_FONT_CLIP(wmfFont* F) -> (U8) clip precision [??]

#define WMF_FONT_ESCAPEMENT      ((F)->lfEscapement)
 

WMF_FONT_ESCAPEMENT(wmfFont* F) -> (S16) escapement [use WMF_TEXT_ANGLE instead]

#define WMF_FONT_HEIGHT      ((F)->lfHeight)
 

WMF_FONT_HEIGHT(wmfFont* F) -> (U16) font height

#define WMF_FONT_ITALIC      ((F)->lfItalic)
 

WMF_FONT_ITALIC(wmfFont* F) -> (U8) italic

#define WMF_FONT_NAME      ((F)->lfFaceName)
 

WMF_FONT_NAME(wmfFont* F) -> (char*) font name supplied by metafile

#define WMF_FONT_ORIENTATION      ((F)->lfOrientation)
 

WMF_FONT_ORIENTATION(wmfFont* F) -> (S16) orientation [??]

#define WMF_FONT_OUT      ((F)->lfOutPrecision)
 

WMF_FONT_OUT(wmfFont* F) -> (U8) output precision [??]

#define WMF_FONT_PITCH      ((F)->lfPitchAndFamily)
 

WMF_FONT_PITCH(wmfFont* F) -> (U8) pitch & family [??]

#define WMF_FONT_QUALITY      ((F)->lfQuality)
 

WMF_FONT_QUALITY(wmfFont* F) -> (U8) quality [??]

#define WMF_FONT_SET_CHARSET F,
     (F)->lfCharSet = (Z)
 

WMF_FONT_SET_CHARSET(wmfFont* F,(U8) chracter set)

#define WMF_FONT_SET_CLIP F,
     (F)->lfClipPrecision = (Z)
 

WMF_FONT_SET_CLIP(wmfFont* F,(U8) clip precision [??])

#define WMF_FONT_SET_ESCAPEMENT F,
     (F)->lfEscapement = (Z)
 

WMF_FONT_SET_ESCAPEMENT(wmfFont* F,(S16) escapement)

#define WMF_FONT_SET_HEIGHT F,
     (F)->lfHeight = (Z)
 

WMF_FONT_SET_HEIGHT(wmfFont* F,(U16) font height)

#define WMF_FONT_SET_ITALIC F,
     (F)->lfItalic = (Z)
 

WMF_FONT_SET_ITALIC(wmfFont* F,(U8) italic)

#define WMF_FONT_SET_NAME F,
     (F)->lfFaceName = (Z)
 

WMF_FONT_SET_NAME(wmfFont* F,(char*) font name supplied by metafile [do not free this string!])

#define WMF_FONT_SET_ORIENTATION F,
     (F)->lfOrientation = (Z)
 

WMF_FONT_SET_ORIENTATION(wmfFont* F,(S16) orientation [??])

#define WMF_FONT_SET_OUT F,
     (F)->lfOutPrecision = (Z)
 

WMF_FONT_SET_OUT(wmfFont* F,(U8) output precision [??])

#define WMF_FONT_SET_PITCH F,
     (F)->lfPitchAndFamily = (Z)
 

WMF_FONT_SET_PITCH(wmfFont* F,(U8) pitch & family [??])

#define WMF_FONT_SET_QUALITY F,
     (F)->lfQuality = (Z)
 

WMF_FONT_SET_QUALITY(wmfFont* F,(U8) quality [??])

#define WMF_FONT_SET_WEIGHT F,
     (F)->lfWeight = (Z)
 

WMF_FONT_SET_WEIGHT(wmfFont* F,(U16) weight)

#define WMF_FONT_SET_WIDTH F,
     (F)->lfWidth = (Z)
 

WMF_FONT_SET_WIDTH(wmfFont* F,(U16) font `width')

#define WMF_FONT_WEIGHT      ((F)->lfWeight)
 

WMF_FONT_WEIGHT(wmfFont* F) -> (U16) weight

#define WMF_FONT_WIDTH      ((F)->lfWidth)
 

WMF_FONT_WIDTH(wmfFont* F) -> (U16) font `width'

#define WMF_PEN_COLOR      (&((P)->lopnColor))
 

WMF_PEN_COLOR(wmfPen* P) -> (wmfRGB*) pen color

#define WMF_PEN_ENDCAP      ((P)->lopnStyle & PS_ENDCAP_MASK)
 

WMF_PEN_ENDCAP(wmfPen* P) -> (U16) endcap style

#define WMF_PEN_HEIGHT      ((P)->height)
 

WMF_PEN_HEIGHT(wmfPen* P) -> (double) pen `height' (thickness w.r.t. y-axis)

#define WMF_PEN_JOIN      ((P)->lopnStyle & PS_JOIN_MASK)
 

WMF_PEN_JOIN(wmfPen* P) -> (U16) join style

#define WMF_PEN_SET_COLOR P,
     (P)->lopnColor = (*(Z))
 

WMF_PEN_SET_COLOR(wmfPen* P,(wmfRGB*) pen color)

#define WMF_PEN_SET_ENDCAP P,
     (P)->lopnStyle = ((P)->lopnStyle & ~PS_ENDCAP_MASK) | ((Z) & PS_ENDCAP_MASK)
 

WMF_PEN_SET_ENDCAP(wmfPen* P,(U16) endcap style)

#define WMF_PEN_SET_HEIGHT P,
     (P)->height = (Z)
 

WMF_PEN_SET_HEIGHT(wmfPen* P,(double) pen `height')

#define WMF_PEN_SET_JOIN P,
     (P)->lopnStyle = ((P)->lopnStyle & ~PS_JOIN_MASK ) | ((Z) & PS_JOIN_MASK )
 

WMF_PEN_SET_JOIN(wmfPen* P,(U16) join style)

#define WMF_PEN_SET_STYLE P,
     (P)->lopnStyle = ((P)->lopnStyle & ~PS_STYLE_MASK ) | ((Z) & PS_STYLE_MASK )
 

WMF_PEN_SET_STYLE(wmfPen* P,(U16) pen style)

#define WMF_PEN_SET_TYPE P,
     (P)->lopnStyle = ((P)->lopnStyle & ~PS_TYPE_MASK ) | ((Z) & PS_TYPE_MASK )
 

WMF_PEN_SET_TYPE(wmfPen* P,(U16) `type' of pen)

#define WMF_PEN_SET_WIDTH P,
     (P)->width = (Z)
 

WMF_PEN_SET_WIDTH(wmfPen* P,(double) pen `width')

#define WMF_PEN_STYLE      ((P)->lopnStyle & PS_STYLE_MASK)
 

WMF_PEN_STYLE(wmfPen* P) -> (U16) pen style

#define WMF_PEN_TYPE      ((P)->lopnStyle & PS_TYPE_MASK)
 

WMF_PEN_TYPE(wmfPen* P) -> (U16) `type' of pen (??)

#define WMF_PEN_WIDTH      ((P)->width)
 

WMF_PEN_WIDTH(wmfPen* P) -> (double) pen `width' (thickness w.r.t. x-axis)

#define WMF_TEXT_ANGLE      ((((double) (F)->lfEscapement) / 10) * M_PI / 180)
 

WMF_TEXT_ANGLE(wmfFont* F) -> (double) text angle in radians

#define WMF_TEXT_SET_STRIKEOUT F,
     (F)->lfStrikeOut = (Z)
 

WMF_TEXT_SET_STRIKEOUT(wmfFont* F,(U8) ?? whether to strikeout (?? how thick))

#define WMF_TEXT_SET_UNDERLINE F,
     (F)->lfUnderline = (Z)
 

WMF_TEXT_SET_UNDERLINE(wmfFont* F,(U8) ?? whether to underline (?? how thick))

#define WMF_TEXT_STRIKEOUT      ((F)->lfStrikeOut)
 

WMF_TEXT_STRIKEOUT(wmfFont* F) -> (U8) ?? whether to strikeout (?? how thick)

#define WMF_TEXT_UNDERLINE      ((F)->lfUnderline)
 

WMF_TEXT_UNDERLINE(wmfFont* F) -> (U8) ?? whether to underline (?? how thick)


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/magick_2bmp_8h.html000066400000000000000000000020441441723000300202200ustar00rootroot00000000000000 magick/bmp.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

bmp.h File Reference


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/magick_2device_8h.html000066400000000000000000000020521441723000300207000ustar00rootroot00000000000000 magick/device.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

device.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/magick_2draw_8h.html000066400000000000000000000020461441723000300204010ustar00rootroot00000000000000 magick/draw.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

draw.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/magick_8c.html000066400000000000000000000041611441723000300172750ustar00rootroot00000000000000 magick.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

magick.c File Reference


Functions

void wmf_magick_function (wmfAPI *API)

Function Documentation

void wmf_magick_function wmfAPI   API
 


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/magick_8h.html000066400000000000000000000106341441723000300173040ustar00rootroot00000000000000 magick.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

magick.h File Reference


Data Structures

struct  _wmf_magick_image
struct  _wmf_magick_t

Defines

#define WMF_MAGICK_GetData(Z)   ((wmf_magick_t*)((Z)->device_data))

Typedefs

typedef _wmf_magick_t wmf_magick_t

Functions

void wmf_magick_function (wmfAPI *)

Define Documentation

#define WMF_MAGICK_GetData      ((wmf_magick_t*)((Z)->device_data))
 


Typedef Documentation

typedef struct _wmf_magick_t wmf_magick_t
 


Function Documentation

void wmf_magick_function wmfAPI  
 


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/meta_8c.html000066400000000000000000000521621441723000300167740ustar00rootroot00000000000000 meta.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

meta.c File Reference


Data Structures

struct  _wmfWriteFileInfo

Typedefs

typedef enum _wmf_write_t wmf_write_t
typedef _wmfWriteFileInfo wmfWriteFileInfo

Enumerations

enum  _wmf_write_t {
  wmf_W_WMF = 0,
  wmf_W_XML
}

Functions

U16 wmf_read_16 (wmfAPI *API)
U32 wmf_read_32 (wmfAPI *API, U16 *u16a, U16 *u16b)
U16 wmf_aldus_checksum (wmfAPI *API)
wmf_error_t wmf_header_read (wmfAPI *API)
void wmf_write (wmfAPI *API, unsigned long Size, unsigned int Function, const char *name, char **atts, const unsigned char *buffer, unsigned long length)
void wmf_write_begin (wmfAPI *API, const char *filename)
void wmf_write_end (wmfAPI *API)
void wmf_attr_new (wmfAPI *API, wmfAttributes *list)
void wmf_attr_clear (wmfAPI *API, wmfAttributes *list)
void wmf_attr_free (wmfAPI *API, wmfAttributes *list)
const char * wmf_attr_add (wmfAPI *API, wmfAttributes *list, const char *name, const char *value)
const char * wmf_attr_query (wmfAPI *API, wmfAttributes *list, const char *name)

Typedef Documentation

typedef enum _wmf_write_t wmf_write_t
 

typedef struct _wmfWriteFileInfo wmfWriteFileInfo
 


Enumeration Type Documentation

enum _wmf_write_t
 

Enumeration values:
wmf_W_WMF 
wmf_W_XML 


Function Documentation

U16 wmf_aldus_checksum wmfAPI   API
 

Compute the Aldus checksum of the metafile's header.

Parameters:
API  the API handle
(Must read the header first, either via wmf_scan() or by calling wmf_header_read() directly.)

Returns:
Returns the checksum.

const char* wmf_attr_add wmfAPI  ,
wmfAttributes  ,
const char *   ,
const char *   
 

Add an name&value to a wmfAttributes structure; returns ptr to value-in-list

void wmf_attr_clear wmfAPI  ,
wmfAttributes  
 

Clear/Empty a wmfAttributes structure

void wmf_attr_free wmfAPI  ,
wmfAttributes  
 

Free memory associated with a wmfAttributes structure

void wmf_attr_new wmfAPI  ,
wmfAttributes  
 

Initialize a wmfAttributes structure

const char* wmf_attr_query wmfAPI  ,
wmfAttributes  ,
const char *   
 

Return value of name in a wmfAttributes structure; returns 0 if name not found

wmf_error_t wmf_header_read wmfAPI   API
 

Read the metafile's header.

Parameters:
API  the API handle
(Must read the header first, either via wmf_scan() or by calling wmf_header_read() directly.)

Returns:
Returns the library error state (wmf_E_None on success). Possible library error states of wmf_E_Glitch, wmf_E_BadFormat (bad header), wmf_E_BadFile (no open input stream) and wmf_E_EOF (premature end-of-file).

U16 wmf_read_16 wmfAPI  
 

Reads a two-byte sequence from the current metafile, returns U16

U32 wmf_read_32 wmfAPI  ,
U16 *   ,
U16 *   
 

Reads a four-byte sequence from the current metafile, returns U32

void wmf_write wmfAPI  ,
unsigned    long,
unsigned    int,
const char *   ,
char **   ,
const unsigned char *   ,
unsigned    long
 

Writes to --wmf-write file (which may be WMF or home-made wmfxml)

void wmf_write_begin wmfAPI  ,
const char *   
 

Open --wmf-write file (which may be WMF or home-made wmfxml)

void wmf_write_end wmfAPI  
 

Close --wmf-write file (which may be WMF or home-made wmfxml)


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/meta_8h.html000066400000000000000000000020371441723000300167750ustar00rootroot00000000000000 meta.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

meta.h File Reference


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/metadefs_8h.html000066400000000000000000001533571441723000300176530ustar00rootroot00000000000000 metadefs.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

metadefs.h File Reference


Defines

#define MM_TEXT   1
#define MM_LOMETRIC   2
#define MM_HIMETRIC   3
#define MM_LOENGLISH   4
#define MM_HIENGLISH   5
#define MM_TWIPS   6
#define MM_ISOTROPIC   7
#define MM_ANISOTROPIC   8
#define MM_DPI   9
#define META_SAVEDC   0x001E
#define META_REALIZEPALETTE   0x0035
#define META_SETPALENTRIES   0x0037
#define META_CREATEPALETTE   0x00f7
#define META_SETBKMODE   0x0102
#define META_SETMAPMODE   0x0103
#define META_SETROP2   0x0104
#define META_SETPOLYFILLMODE   0x0106
#define META_SETSTRETCHBLTMODE   0x0107
#define META_SETTEXTCHAREXTRA   0x0108
#define META_RESTOREDC   0x0127
#define META_INVERTREGION   0x012A
#define META_PAINTREGION   0x012B
#define META_SELECTCLIPREGION   0x012C
#define META_SELECTOBJECT   0x012D
#define META_SETTEXTALIGN   0x012E
#define META_DIBCREATEPATTERNBRUSH   0x0142
#define META_DELETEOBJECT   0x01f0
#define META_SETBKCOLOR   0x0201
#define META_SETTEXTCOLOR   0x0209
#define META_SETTEXTJUSTIFICATION   0x020A
#define META_SETWINDOWORG   0x020B
#define META_SETWINDOWEXT   0x020C
#define META_SETVIEWPORTORG   0x020D
#define META_SETVIEWPORTEXT   0x020E
#define META_OFFSETWINDOWORG   0x020F
#define META_OFFSETVIEWPORTORG   0x0211
#define META_LINETO   0x0213
#define META_MOVETO   0x0214
#define META_OFFSETCLIPRGN   0x0220
#define META_FILLREGION   0x0228
#define META_SETMAPPERFLAGS   0x0231
#define META_SELECTPALETTE   0x0234
#define META_CREATEFONTINDIRECT   0x02FB
#define META_CREATEPENINDIRECT   0x02FA
#define META_CREATEBRUSHINDIRECT   0x02FC
#define META_POLYGON   0x0324
#define META_POLYLINE   0x0325
#define META_SCALEWINDOWEXT   0x0410
#define META_SCALEVIEWPORTEXT   0x0412
#define META_EXCLUDECLIPRECT   0x0415
#define META_INTERSECTCLIPRECT   0x0416
#define META_ELLIPSE   0x0418
#define META_FLOODFILL   0x0419
#define META_RECTANGLE   0x041B
#define META_SETPIXEL   0x041F
#define META_FRAMEREGION   0x0429
#define META_TEXTOUT   0x0521
#define META_POLYPOLYGON   0x0538
#define META_EXTFLOODFILL   0x0548
#define META_ROUNDRECT   0x061C
#define META_PATBLT   0x061D
#define META_ESCAPE   0x0626
#define META_CREATEREGION   0x06FF
#define META_ARC   0x0817
#define META_PIE   0x081A
#define META_CHORD   0x0830
#define META_DIBBITBLT   0x0940
#define META_EXTTEXTOUT   0x0a32
#define META_DIBSTRETCHBLT   0x0b41
#define META_SETDIBTODEV   0x0d33
#define META_STRETCHDIB   0x0f43
#define ERROR   0
#define NULLREGION   1
#define SIMPLEREGION   2
#define COMPLEXREGION   3
#define RGN_AND   1
#define RGN_OR   2
#define RGN_XOR   3
#define RGN_DIFF   4
#define RGN_COPY   5
#define CLIP_INTERSECT   0x0001
#define CLIP_EXCLUDE   0x0002
#define CLIP_KEEPRGN   0x0004

Define Documentation

#define CLIP_EXCLUDE   0x0002
 

#define CLIP_INTERSECT   0x0001
 

#define CLIP_KEEPRGN   0x0004
 

#define COMPLEXREGION   3
 

#define ERROR   0
 

#define META_ARC   0x0817
 

#define META_CHORD   0x0830
 

#define META_CREATEBRUSHINDIRECT   0x02FC
 

#define META_CREATEFONTINDIRECT   0x02FB
 

#define META_CREATEPALETTE   0x00f7
 

#define META_CREATEPENINDIRECT   0x02FA
 

#define META_CREATEREGION   0x06FF
 

#define META_DELETEOBJECT   0x01f0
 

#define META_DIBBITBLT   0x0940
 

#define META_DIBCREATEPATTERNBRUSH   0x0142
 

#define META_DIBSTRETCHBLT   0x0b41
 

#define META_ELLIPSE   0x0418
 

#define META_ESCAPE   0x0626
 

#define META_EXCLUDECLIPRECT   0x0415
 

#define META_EXTFLOODFILL   0x0548
 

#define META_EXTTEXTOUT   0x0a32
 

#define META_FILLREGION   0x0228
 

#define META_FLOODFILL   0x0419
 

#define META_FRAMEREGION   0x0429
 

#define META_INTERSECTCLIPRECT   0x0416
 

#define META_INVERTREGION   0x012A
 

#define META_LINETO   0x0213
 

#define META_MOVETO   0x0214
 

#define META_OFFSETCLIPRGN   0x0220
 

#define META_OFFSETVIEWPORTORG   0x0211
 

#define META_OFFSETWINDOWORG   0x020F
 

#define META_PAINTREGION   0x012B
 

#define META_PATBLT   0x061D
 

#define META_PIE   0x081A
 

#define META_POLYGON   0x0324
 

#define META_POLYLINE   0x0325
 

#define META_POLYPOLYGON   0x0538
 

#define META_REALIZEPALETTE   0x0035
 

#define META_RECTANGLE   0x041B
 

#define META_RESTOREDC   0x0127
 

#define META_ROUNDRECT   0x061C
 

#define META_SAVEDC   0x001E
 

#define META_SCALEVIEWPORTEXT   0x0412
 

#define META_SCALEWINDOWEXT   0x0410
 

#define META_SELECTCLIPREGION   0x012C
 

#define META_SELECTOBJECT   0x012D
 

#define META_SELECTPALETTE   0x0234
 

#define META_SETBKCOLOR   0x0201
 

#define META_SETBKMODE   0x0102
 

#define META_SETDIBTODEV   0x0d33
 

#define META_SETMAPMODE   0x0103
 

#define META_SETMAPPERFLAGS   0x0231
 

#define META_SETPALENTRIES   0x0037
 

#define META_SETPIXEL   0x041F
 

#define META_SETPOLYFILLMODE   0x0106
 

#define META_SETROP2   0x0104
 

#define META_SETSTRETCHBLTMODE   0x0107
 

#define META_SETTEXTALIGN   0x012E
 

#define META_SETTEXTCHAREXTRA   0x0108
 

#define META_SETTEXTCOLOR   0x0209
 

#define META_SETTEXTJUSTIFICATION   0x020A
 

#define META_SETVIEWPORTEXT   0x020E
 

#define META_SETVIEWPORTORG   0x020D
 

#define META_SETWINDOWEXT   0x020C
 

#define META_SETWINDOWORG   0x020B
 

#define META_STRETCHDIB   0x0f43
 

#define META_TEXTOUT   0x0521
 

#define MM_ANISOTROPIC   8
 

#define MM_DPI   9
 

#define MM_HIENGLISH   5
 

#define MM_HIMETRIC   3
 

#define MM_ISOTROPIC   7
 

#define MM_LOENGLISH   4
 

#define MM_LOMETRIC   2
 

#define MM_TEXT   1
 

#define MM_TWIPS   6
 

#define NULLREGION   1
 

#define RGN_AND   1
 

#define RGN_COPY   5
 

#define RGN_DIFF   4
 

#define RGN_OR   2
 

#define RGN_XOR   3
 

#define SIMPLEREGION   2
 


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/player_2region_8h.html000066400000000000000000000045111441723000300207670ustar00rootroot00000000000000 player/region.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

region.h File Reference


Defines

#define EXTENTCHECK(r1, r2)

Define Documentation

#define EXTENTCHECK r1,
r2   
 

Value:

(  ((r1)->BR.x > (r2)->TL.x) \
        && ((r1)->TL.x < (r2)->BR.x) \
        && ((r1)->BR.y > (r2)->TL.y) \
        && ((r1)->TL.y < (r2)->BR.y) )


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/player_8c.html000066400000000000000000000316241441723000300173420ustar00rootroot00000000000000 player.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

player.c File Reference


Functions

wmf_error_t wmf_player_init (wmfAPI *API)
wmf_error_t wmf_scan (wmfAPI *API, unsigned long flags, wmfD_Rect *d_r)
wmf_error_t wmf_size (wmfAPI *API, float *width, float *height)
wmf_error_t wmf_display_size (wmfAPI *API, unsigned int *width, unsigned int *height, double res_x, double res_y)
wmf_error_t wmf_play (wmfAPI *API, unsigned long flags, wmfD_Rect *d_r)

Function Documentation

wmf_error_t wmf_display_size wmfAPI   API,
unsigned int *    width,
unsigned int *    height,
double    res_x,
double    res_y
 

Get estimate of image display size.

Parameters:
API  the API handle
width  width return
height  height return
res_x  x-resolution of display
res_y  y-resolution of display
wmf_display_size() returns image width in *width and image height in *height. wmf_size() is used to get the calculated/estimate width and height of the image, and these values are converted to integer width and height estimates for display.

Returns:
Returns the library error state (wmf_E_None on success). Possible library error state of wmf_E_Glitch (the metafile has not been scanned).

wmf_error_t wmf_play wmfAPI   API,
unsigned long    flags,
wmfD_Rect   d_r
 

Play the metafile.

Parameters:
API  the API handle
flags  (unused)
d_r  for bounding-box return
Before the metafile can be played, it must be scanned - see wmf_scan().

The first time (and only the first time) the metafile is played, it first calls device_open() for the device layer specified (and initialized) in wmf_api_create(). Then, and also each subsequent time the metafile is played, it calls device_begin(), plays the metafile (with calls to various other device layer functions), and finally it calls device_end(). device_close() is only ever called via wmf_api_destroy().

d_r is recomputed, but should not change.

Returns:
Returns the library error state (wmf_E_None on success).

wmf_error_t wmf_player_init wmfAPI  
 

Initializes the metafile player (called by wmf_api_create())

wmf_error_t wmf_scan wmfAPI   API,
unsigned long    flags,
wmfD_Rect   d_r
 

Scan the metafile.

Parameters:
API  the API handle
flags  (unused)
d_r  for bounding-box return
Before the metafile can be played, it must be scanned. This is because metafile headers do not always provide image size information. Although the device layer (the graphics exporter) is initialized in wmf_api_create(), the output device is not opened until after the metafile is scanned. By scanning, therefore, the device layer can be provided on opening not only with size information but also a list of colors to expect (not including those in raster images) and of other required resources, if necessary. Finally, if scanning fails, then there's certainly no point in playing the metafile.

The bounding box, in device coordinates, is returned in *d_r.

Returns:
Returns the library error state (wmf_E_None on success).

wmf_error_t wmf_size wmfAPI   API,
float *    width,
float *    height
 

Get image size.

Parameters:
API  the API handle
width  width return
height  height return
wmf_size() returns image width in *width and image height in *height. If supplied, the metafile header values are used, otherwise the width and height found by wmf_scan() are used.

Returns:
Returns the library error state (wmf_E_None on success). Possible library error state of wmf_E_Glitch (the metafile has not been scanned).


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/plot_2bmp_8h.html000066400000000000000000000020421441723000300177410ustar00rootroot00000000000000 plot/bmp.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

bmp.h File Reference


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/plot_2device_8h.html000066400000000000000000000020501441723000300204210ustar00rootroot00000000000000 plot/device.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

device.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/plot_2draw_8h.html000066400000000000000000000020441441723000300201220ustar00rootroot00000000000000 plot/draw.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

draw.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/plot_8c.html000066400000000000000000000041431441723000300170200ustar00rootroot00000000000000 plot.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

plot.c File Reference


Functions

void wmf_plot_function (wmfAPI *API)

Function Documentation

void wmf_plot_function wmfAPI   API
 


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/plot_8h.html000066400000000000000000000217601441723000300170310ustar00rootroot00000000000000 plot.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

plot.h File Reference


Data Structures

struct  _wmf_plot_t

Defines

#define WMF_PLOT_GetData(Z)   ((wmf_plot_t*)((Z)->device_data))

Typedefs

typedef enum _wmf_plot_subtype wmf_plot_subtype
typedef _wmf_plot_t wmf_plot_t

Enumerations

enum  _wmf_plot_subtype {
  wmf_plot_generic = 0,
  wmf_plot_bitmap,
  wmf_plot_meta,
  wmf_plot_tek,
  wmf_plot_regis,
  wmf_plot_hpgl,
  wmf_plot_pcl,
  wmf_plot_fig,
  wmf_plot_cgm,
  wmf_plot_ps,
  wmf_plot_ai,
  wmf_plot_svg,
  wmf_plot_gif,
  wmf_plot_pnm,
  wmf_plot_png,
  wmf_plot_Xdrawable,
  wmf_plot_X
}

Functions

void wmf_plot_function (wmfAPI *)

Define Documentation

#define WMF_PLOT_GetData      ((wmf_plot_t*)((Z)->device_data))
 


Typedef Documentation

typedef enum _wmf_plot_subtype wmf_plot_subtype
 

typedef struct _wmf_plot_t wmf_plot_t
 


Enumeration Type Documentation

enum _wmf_plot_subtype
 

Enumeration values:
wmf_plot_generic 
wmf_plot_bitmap 
wmf_plot_meta 
wmf_plot_tek 
wmf_plot_regis 
wmf_plot_hpgl 
wmf_plot_pcl 
wmf_plot_fig 
wmf_plot_cgm 
wmf_plot_ps 
wmf_plot_ai 
wmf_plot_svg 
wmf_plot_gif 
wmf_plot_pnm 
wmf_plot_png 
wmf_plot_Xdrawable 
wmf_plot_X 


Function Documentation

void wmf_plot_function wmfAPI  
 


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/record_8h.html000066400000000000000000000020431441723000300173220ustar00rootroot00000000000000 record.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

record.h File Reference


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/recorder_8c.html000066400000000000000000001560641441723000300176610ustar00rootroot00000000000000 recorder.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

recorder.c File Reference


Functions

wmfCanvaswmf_canvas (wmfAPI *API, unsigned short width, unsigned short height, unsigned short dpi)
unsigned char * wmf_canvas_done (wmfAPI *API, wmfCanvas *canvas, unsigned char **buffer, unsigned long *length)
int wmf_canvas_set_pen (wmfAPI *API, wmfCanvas *canvas, unsigned short line, unsigned short endcap, unsigned short join, unsigned short width, wmfRGB color)
int wmf_canvas_set_brush (wmfAPI *API, wmfCanvas *canvas, unsigned short style, unsigned short hatch, wmfRGB color)
int wmf_canvas_set_font (wmfAPI *API, wmfCanvas *canvas, const char *name, unsigned short size, unsigned short orient, unsigned short weight, unsigned short italic, unsigned short strike, unsigned short uscore, unsigned short encode, unsigned short pitch)
int wmf_canvas_set_polyfill (wmfAPI *API, wmfCanvas *canvas, unsigned short mode)
int wmf_canvas_set_background (wmfAPI *API, wmfCanvas *canvas, unsigned short mode)
int wmf_canvas_set_bgcolor (wmfAPI *API, wmfCanvas *canvas, wmfRGB color)
int wmf_canvas_set_textcolor (wmfAPI *API, wmfCanvas *canvas, wmfRGB color)
int wmf_canvas_line (wmfAPI *API, wmfCanvas *canvas, unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2)
int wmf_canvas_roundrect (wmfAPI *API, wmfCanvas *canvas, unsigned short left, unsigned short top, unsigned short right, unsigned short bottom, unsigned short rx, unsigned short ry)
int wmf_canvas_rect (wmfAPI *API, wmfCanvas *canvas, unsigned short left, unsigned short top, unsigned short right, unsigned short bottom)
int wmf_canvas_ellipse (wmfAPI *API, wmfCanvas *canvas, unsigned short left, unsigned short top, unsigned short right, unsigned short bottom)
int wmf_canvas_arc (wmfAPI *API, wmfCanvas *canvas, unsigned short left, unsigned short top, unsigned short right, unsigned short bottom, unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, wmf_canvas_arc_t type)
int wmf_canvas_polyline (wmfAPI *API, wmfCanvas *canvas, unsigned short *x, unsigned short *y, unsigned short N)
int wmf_canvas_polygon (wmfAPI *API, wmfCanvas *canvas, unsigned short *x, unsigned short *y, unsigned short N)
int wmf_canvas_polygons (wmfAPI *API, wmfCanvas *canvas, unsigned short count, unsigned short **x, unsigned short **y, unsigned short *N)
int wmf_canvas_text (wmfAPI *API, wmfCanvas *canvas, unsigned short x, unsigned short y, const char *str)
int wmf_canvas_bitmap (wmfAPI *API, wmfCanvas *canvas, unsigned short x, unsigned short y, unsigned short width, unsigned short height, const unsigned char *buffer, unsigned long length)

Function Documentation

wmfCanvas* wmf_canvas wmfAPI   API,
unsigned short    width,
unsigned short    height,
unsigned short    dpi
 

Get a handle for creating a new metafile.

Parameters:
API  the API handle
width  width in 'dots' (a.k.a. 'twips'?)
height  height in 'dots' (a.k.a. 'twips'?)
dpi  dots per inch: one of 1440, 2880, 720, or 360
In case you want to use simple drawing routines to create your own metafile; all drawing commands expect a wmfCanvas handle as well as the API handle.

Returns:
Returns 0 on failure.

int wmf_canvas_arc wmfAPI   API,
wmfCanvas   canvas,
unsigned short    left,
unsigned short    top,
unsigned short    right,
unsigned short    bottom,
unsigned short    x1,
unsigned short    y1,
unsigned short    x2,
unsigned short    y2,
wmf_canvas_arc_t    type
 

Draw an arc, open or fill as chord or pie.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
left  lower x-coordinate
top  lower y-coordinate
right  upper x-coordinate
bottom  upper y-coordinate
x1  x-coordinate of start of arc
y1  y-coordinate of start of arc
x2  x-coordinate of end of arc
y2  y-coordinate of end of arc
type  arc type (open, chord or pie)
Draw an arc in the given bounding box, from (x1,y1) to (x2,y2). Coordinate origin is at the top-left, y increasing down.

Returns:
Returns 0 on success.

int wmf_canvas_bitmap wmfAPI   API,
wmfCanvas   canvas,
unsigned short    x,
unsigned short    y,
unsigned short    width,
unsigned short    height,
const unsigned char *    buffer,
unsigned long    length
 

Place a bitmap.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
x  x-coordinate of bitmap
y  y-coordinate of bitmap
width  (scaled) width of bitmap
height  (scaled) height of bitmap
buffer  buffer containing bitmap
length  length of buffer
Place a bitmap.

Returns:
Returns 0 on success.

unsigned char* wmf_canvas_done wmfAPI   API,
wmfCanvas   canvas,
unsigned char **    buffer,
unsigned long *    length
 

Last command when creating a new metafile; returns the metafile you have drawn.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
buffer  metafile buffer return
length  metafile length return
Cleans up memory etc. associated with the canvas process, except of course for the new metafile itself which gets returned.

Returns:
Returns 0 on failure, *buffer on success

int wmf_canvas_ellipse wmfAPI   API,
wmfCanvas   canvas,
unsigned short    left,
unsigned short    top,
unsigned short    right,
unsigned short    bottom
 

Draw an ellipse.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
left  lower x-coordinate
top  lower y-coordinate
right  upper x-coordinate
bottom  upper y-coordinate
Draw an ellipse in the given bounding box. Coordinate origin is at the top-left, y increasing down.

Returns:
Returns 0 on success.

int wmf_canvas_line wmfAPI   API,
wmfCanvas   canvas,
unsigned short    x1,
unsigned short    y1,
unsigned short    x2,
unsigned short    y2
 

Draw a line.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
x1  x-coordinate of start point
y1  y-coordinate of start point
x2  x-coordinate of end point
y2  y-coordinate of end point
Draw line from (x1,y1) to (x2,y2).

Returns:
Returns 0 on success.

int wmf_canvas_polygon wmfAPI   API,
wmfCanvas   canvas,
unsigned short *    x,
unsigned short *    y,
unsigned short    N
 

Draw a polygon.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
x  array of N x-coordinates
y  array of N y-coordinates
N  number of points of polygon
Draw a polygon.

Returns:
Returns 0 on success.

int wmf_canvas_polygons wmfAPI   API,
wmfCanvas   canvas,
unsigned short    count,
unsigned short **    x,
unsigned short **    y,
unsigned short *    N
 

Draw a set of polygons.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
count  number of polygons [i = 0..count-1]
x  x[i] is array of N x-coordinates in ith polygon
y  y[i] is array of N y-coordinates in ith polygon
N  N[i] is number of points of ith polygon
Draw a set of polygons.

Returns:
Returns 0 on success.

int wmf_canvas_polyline wmfAPI   API,
wmfCanvas   canvas,
unsigned short *    x,
unsigned short *    y,
unsigned short    N
 

Draw a line connecting a sequence of points.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
x  array of N x-coordinates
y  array of N y-coordinates
N  number of points on line
Draw a line connecting a sequence of points.

Returns:
Returns 0 on success.

int wmf_canvas_rect wmfAPI   API,
wmfCanvas   canvas,
unsigned short    left,
unsigned short    top,
unsigned short    right,
unsigned short    bottom
 

Draw a rectangle.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
left  lower x-coordinate
top  lower y-coordinate
right  upper x-coordinate
bottom  upper y-coordinate
Draw a rectangle. Coordinate origin is at the top-left, y increasing down.

Returns:
Returns 0 on success.

int wmf_canvas_roundrect wmfAPI   API,
wmfCanvas   canvas,
unsigned short    left,
unsigned short    top,
unsigned short    right,
unsigned short    bottom,
unsigned short    rx,
unsigned short    ry
 

Draw a rounded rectangle.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
left  lower x-coordinate
top  lower y-coordinate
right  upper x-coordinate
bottom  upper y-coordinate
rx  x-axis of corner ellipse
ry  y-axis of corner ellipse
Draw a rounded rectangle. Coordinate origin is at the top-left, y increasing down.

Returns:
Returns 0 on success.

int wmf_canvas_set_background wmfAPI   API,
wmfCanvas   canvas,
unsigned short    mode
 

Set background mode.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
mode  one of TRANSPARENT or OPAQUE
Set background mode.

Returns:
Returns 0 on success.

int wmf_canvas_set_bgcolor wmfAPI   API,
wmfCanvas   canvas,
wmfRGB    color
 

Set background color.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
color  background color
Set background color.

Returns:
Returns 0 on success.

int wmf_canvas_set_brush wmfAPI   API,
wmfCanvas   canvas,
unsigned short    style,
unsigned short    hatch,
wmfRGB    color
 

Change current brush style.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
style  one of BS_SOLID, BS_NULL, or BS_HATCHED
hatch  one of HS_HORIZONTAL, HS_VERTICAL, HS_FDIAGONAL, HS_BDIAGONAL, HS_CROSS or HS_DIAGCROSS
color  stroke color
Brush settings to be used with next drawing command.

Returns:
Returns 0 on success.

int wmf_canvas_set_font wmfAPI   API,
wmfCanvas   canvas,
const char *    name,
unsigned short    size,
unsigned short    orient,
unsigned short    weight,
unsigned short    italic,
unsigned short    strike,
unsigned short    uscore,
unsigned short    encode,
unsigned short    pitch
 

Change current font.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
name  font name
size  font height (in twips)
orient  text rotation in tenths of degrees
weight  400 for normal text, 700 for bold
italic  0 for normal text, 1 for oblique/italic
strike  0 for normal text, 1 for strike-through
uscore  0 for normal text, 1 for underscore (I think; and 2 for double uscore ??)
encode  encoding; 0 for most fonts, 2 for symbol fonts; presumably others...
pitch  italic angle; usually 0 (webdings), 16 (times), 32 (arial) or 48 (courier)
Font settings to be used with next drawing command.

Returns:
Returns 0 on success.

int wmf_canvas_set_pen wmfAPI   API,
wmfCanvas   canvas,
unsigned short    line,
unsigned short    endcap,
unsigned short    join,
unsigned short    width,
wmfRGB    color
 

Change current pen style.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
line  one of PS_SOLID, PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT, PS_NULL, PS_INSIDEFRAME, PS_USERSTYLE, or PS_ALTERNATE
endcap  one of PS_ENDCAP_ROUND, PS_ENDCAP_SQUARE, or PS_ENDCAP_FLAT
join  one of PS_JOIN_ROUND, PS_JOIN_BEVEL, or PS_JOIN_MITER
width  stroke width
color  stroke color
Pen settings to be used with next drawing command.

Returns:
Returns 0 on success.

int wmf_canvas_set_polyfill wmfAPI   API,
wmfCanvas   canvas,
unsigned short    mode
 

Set polygon fill mode.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
mode  one of ALTERNATE or WINDING
Set polygon fill mode.

Returns:
Returns 0 on success.

int wmf_canvas_set_textcolor wmfAPI   API,
wmfCanvas   canvas,
wmfRGB    color
 

Set text color.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
color  text color
Set text color.

Returns:
Returns 0 on success.

int wmf_canvas_text wmfAPI   API,
wmfCanvas   canvas,
unsigned short    x,
unsigned short    y,
const char *    str
 

Draw text.

Parameters:
API  the API handle
canvas  the Canvas handle for the metafile you are drawing to
x  x-coordinate of string
y  y-coordinate of string
str  the text string to be drawn
Draw text.

Returns:
Returns 0 on success.


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/recorder_8h.html000066400000000000000000000143371441723000300176620ustar00rootroot00000000000000 recorder.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

recorder.h File Reference


Data Structures

struct  _wmfCanvasBrush
struct  _wmfCanvasFont
struct  _wmfCanvasPen
struct  _wmfConstruct
struct  _wmfRecordBox

Defines

#define CanvasFontBufferSize   64

Typedefs

typedef _wmfCanvasPen wmfCanvasPen
typedef _wmfCanvasBrush wmfCanvasBrush
typedef _wmfCanvasFont wmfCanvasFont
typedef _wmfConstruct wmfConstruct
typedef _wmfRecordBox wmfRecordBox

Define Documentation

#define CanvasFontBufferSize   64
 


Typedef Documentation

typedef struct _wmfCanvasBrush wmfCanvasBrush
 

typedef struct _wmfCanvasFont wmfCanvasFont
 

typedef struct _wmfCanvasPen wmfCanvasPen
 

typedef struct _wmfConstruct wmfConstruct
 

typedef struct _wmfRecordBox wmfRecordBox
 


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/src_2font_8h.html000066400000000000000000000020431441723000300177430ustar00rootroot00000000000000 src/font.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

font.h File Reference


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/src_2ipa_2fig_2color_8h.html000066400000000000000000000020551441723000300217400ustar00rootroot00000000000000 src/ipa/fig/color.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

color.h File Reference


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/src_2ipa_2fig_2font_8h.html000066400000000000000000000020531441723000300215660ustar00rootroot00000000000000 src/ipa/fig/font.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

font.h File Reference


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/src_2ipa_2ipa_2color_8h.html000066400000000000000000000020551441723000300217440ustar00rootroot00000000000000 src/ipa/ipa/color.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

color.h File Reference


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/src_2ipa_2ipa_2font_8h.html000066400000000000000000000020531441723000300215720ustar00rootroot00000000000000 src/ipa/ipa/font.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

font.h File Reference


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/src_2ipa_2x_2color_8h.html000066400000000000000000000020531441723000300214400ustar00rootroot00000000000000 src/ipa/x/color.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

color.h File Reference


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/src_2ipa_2x_2font_8h.html000066400000000000000000000020511441723000300212660ustar00rootroot00000000000000 src/ipa/x/font.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

font.h File Reference


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/src_2ipa_2xgd_2font_8h.html000066400000000000000000000020531441723000300216030ustar00rootroot00000000000000 src/ipa/xgd/font.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

font.h File Reference


Generated on Tue Dec 10 19:53:50 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/src_2player_2color_8h.html000066400000000000000000003561761441723000300215740ustar00rootroot00000000000000 src/player/color.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

color.h File Reference


Functions

void wmf_ipa_color_init (wmfAPI *API)
void wmf_ipa_color_add (wmfAPI *API, wmfRGB *rgb)
unsigned long wmf_ipa_color_index (wmfAPI *API, wmfRGB *rgb)
unsigned long wmf_ipa_color_count (wmfAPI *API)
wmfRGBwmf_ipa_color (wmfAPI *API, unsigned long index)
wmfRGB wmf_rgb_white (wmfAPI *API)
wmfRGB wmf_rgb_black (wmfAPI *API)
wmfRGB wmf_rgb_color (wmfAPI *API, float red, float green, float blue)

Variables

wmfRGB wmf_aliceblue = { 240, 248, 255 }
wmfRGB wmf_antiquewhite = { 250, 235, 215 }
wmfRGB wmf_aqua = { 0, 255, 255 }
wmfRGB wmf_aquamarine = { 127, 255, 212 }
wmfRGB wmf_azure = { 240, 255, 255 }
wmfRGB wmf_beige = { 245, 245, 220 }
wmfRGB wmf_bisque = { 255, 228, 196 }
wmfRGB wmf_black = { 0, 0, 0 }
wmfRGB wmf_blanchedalmond = { 255, 235, 205 }
wmfRGB wmf_blue = { 0, 0, 255 }
wmfRGB wmf_blueviolet = { 138, 43, 226 }
wmfRGB wmf_brown = { 165, 42, 42 }
wmfRGB wmf_burlywood = { 222, 184, 135 }
wmfRGB wmf_cadetblue = { 95, 158, 160 }
wmfRGB wmf_chartreuse = { 127, 255, 0 }
wmfRGB wmf_chocolate = { 210, 105, 30 }
wmfRGB wmf_coral = { 255, 127, 80 }
wmfRGB wmf_cornflowerblue = { 100, 149, 237 }
wmfRGB wmf_cornsilk = { 255, 248, 220 }
wmfRGB wmf_crimson = { 220, 20, 60 }
wmfRGB wmf_cyan = { 0, 255, 255 }
wmfRGB wmf_darkblue = { 0, 0, 139 }
wmfRGB wmf_darkcyan = { 0, 139, 139 }
wmfRGB wmf_darkgoldenrod = { 184, 134, 11 }
wmfRGB wmf_darkgray = { 169, 169, 169 }
wmfRGB wmf_darkgreen = { 0, 100, 0 }
wmfRGB wmf_darkgrey = { 169, 169, 169 }
wmfRGB wmf_darkkhaki = { 189, 183, 107 }
wmfRGB wmf_darkmagenta = { 139, 0, 139 }
wmfRGB wmf_darkolivegreen = { 85, 107, 47 }
wmfRGB wmf_darkorange = { 255, 140, 0 }
wmfRGB wmf_darkorchid = { 153, 50, 204 }
wmfRGB wmf_darkred = { 139, 0, 0 }
wmfRGB wmf_darksalmon = { 233, 150, 122 }
wmfRGB wmf_darkseagreen = { 143, 188, 143 }
wmfRGB wmf_darkslateblue = { 72, 61, 139 }
wmfRGB wmf_darkslategray = { 47, 79, 79 }
wmfRGB wmf_darkslategrey = { 47, 79, 79 }
wmfRGB wmf_darkturquoise = { 0, 206, 209 }
wmfRGB wmf_darkviolet = { 148, 0, 211 }
wmfRGB wmf_deeppink = { 255, 20, 147 }
wmfRGB wmf_deepskyblue = { 0, 191, 255 }
wmfRGB wmf_dimgray = { 105, 105, 105 }
wmfRGB wmf_dimgrey = { 105, 105, 105 }
wmfRGB wmf_dodgerblue = { 30, 144, 255 }
wmfRGB wmf_firebrick = { 178, 34, 34 }
wmfRGB wmf_floralwhite = { 255, 250, 240 }
wmfRGB wmf_forestgreen = { 34, 139, 34 }
wmfRGB wmf_fuchsia = { 255, 0, 255 }
wmfRGB wmf_gainsboro = { 220, 220, 220 }
wmfRGB wmf_ghostwhite = { 248, 248, 255 }
wmfRGB wmf_gold = { 255, 215, 0 }
wmfRGB wmf_goldenrod = { 218, 165, 32 }
wmfRGB wmf_gray = { 128, 128, 128 }
wmfRGB wmf_grey = { 128, 128, 128 }
wmfRGB wmf_green = { 0, 128, 0 }
wmfRGB wmf_greenyellow = { 173, 255, 47 }
wmfRGB wmf_honeydew = { 240, 255, 240 }
wmfRGB wmf_hotpink = { 255, 105, 180 }
wmfRGB wmf_indianred = { 205, 92, 92 }
wmfRGB wmf_indigo = { 75, 0, 130 }
wmfRGB wmf_ivory = { 255, 255, 240 }
wmfRGB wmf_khaki = { 240, 230, 140 }
wmfRGB wmf_lavender = { 230, 230, 250 }
wmfRGB wmf_lavenderblush = { 255, 240, 245 }
wmfRGB wmf_lawngreen = { 124, 252, 0 }
wmfRGB wmf_lemonchiffon = { 255, 250, 205 }
wmfRGB wmf_lightblue = { 173, 216, 230 }
wmfRGB wmf_lightcoral = { 240, 128, 128 }
wmfRGB wmf_lightcyan = { 224, 255, 255 }
wmfRGB wmf_lightgoldenrodyellow = { 250, 250, 210 }
wmfRGB wmf_lightgray = { 211, 211, 211 }
wmfRGB wmf_lightgreen = { 144, 238, 144 }
wmfRGB wmf_lightgrey = { 211, 211, 211 }
wmfRGB wmf_lightpink = { 255, 182, 193 }
wmfRGB wmf_lightsalmon = { 255, 160, 122 }
wmfRGB wmf_lightseagreen = { 32, 178, 170 }
wmfRGB wmf_lightskyblue = { 135, 206, 250 }
wmfRGB wmf_lightslategray = { 119, 136, 153 }
wmfRGB wmf_lightslategrey = { 119, 136, 153 }
wmfRGB wmf_lightsteelblue = { 176, 196, 222 }
wmfRGB wmf_lightyellow = { 255, 255, 224 }
wmfRGB wmf_lime = { 0, 255, 0 }
wmfRGB wmf_limegreen = { 50, 205, 50 }
wmfRGB wmf_linen = { 250, 240, 230 }
wmfRGB wmf_magenta = { 255, 0, 255 }
wmfRGB wmf_maroon = { 128, 0, 0 }
wmfRGB wmf_mediumaquamarine = { 102, 205, 170 }
wmfRGB wmf_mediumblue = { 0, 0, 205 }
wmfRGB wmf_mediumorchid = { 186, 85, 211 }
wmfRGB wmf_mediumpurple = { 147, 112, 219 }
wmfRGB wmf_mediumseagreen = { 60, 179, 113 }
wmfRGB wmf_mediumslateblue = { 123, 104, 238 }
wmfRGB wmf_mediumspringgreen = { 0, 250, 154 }
wmfRGB wmf_mediumturquoise = { 72, 209, 204 }
wmfRGB wmf_mediumvioletred = { 199, 21, 133 }
wmfRGB wmf_midnightblue = { 25, 25, 112 }
wmfRGB wmf_mintcream = { 245, 255, 250 }
wmfRGB wmf_mistyrose = { 255, 228, 225 }
wmfRGB wmf_moccasin = { 255, 228, 181 }
wmfRGB wmf_navajowhite = { 255, 222, 173 }
wmfRGB wmf_navy = { 0, 0, 128 }
wmfRGB wmf_oldlace = { 253, 245, 230 }
wmfRGB wmf_olive = { 128, 128, 0 }
wmfRGB wmf_olivedrab = { 107, 142, 35 }
wmfRGB wmf_orange = { 255, 165, 0 }
wmfRGB wmf_orangered = { 255, 69, 0 }
wmfRGB wmf_orchid = { 218, 112, 214 }
wmfRGB wmf_palegoldenrod = { 238, 232, 170 }
wmfRGB wmf_palegreen = { 152, 251, 152 }
wmfRGB wmf_paleturquoise = { 175, 238, 238 }
wmfRGB wmf_palevioletred = { 219, 112, 147 }
wmfRGB wmf_papayawhip = { 255, 239, 213 }
wmfRGB wmf_peachpuff = { 255, 218, 185 }
wmfRGB wmf_peru = { 205, 133, 63 }
wmfRGB wmf_pink = { 255, 192, 203 }
wmfRGB wmf_plum = { 221, 160, 221 }
wmfRGB wmf_powderblue = { 176, 224, 230 }
wmfRGB wmf_purple = { 128, 0, 128 }
wmfRGB wmf_red = { 255, 0, 0 }
wmfRGB wmf_rosybrown = { 188, 143, 143 }
wmfRGB wmf_royalblue = { 65, 105, 225 }
wmfRGB wmf_saddlebrown = { 139, 69, 19 }
wmfRGB wmf_salmon = { 250, 128, 114 }
wmfRGB wmf_sandybrown = { 244, 164, 96 }
wmfRGB wmf_seagreen = { 46, 139, 87 }
wmfRGB wmf_seashell = { 255, 245, 238 }
wmfRGB wmf_sienna = { 160, 82, 45 }
wmfRGB wmf_silver = { 192, 192, 192 }
wmfRGB wmf_skyblue = { 135, 206, 235 }
wmfRGB wmf_slateblue = { 106, 90, 205 }
wmfRGB wmf_slategray = { 112, 128, 144 }
wmfRGB wmf_slategrey = { 112, 128, 144 }
wmfRGB wmf_snow = { 255, 250, 250 }
wmfRGB wmf_springgreen = { 0, 255, 127 }
wmfRGB wmf_steelblue = { 70, 130, 180 }
wmfRGB wmf_tan = { 210, 180, 140 }
wmfRGB wmf_teal = { 0, 128, 128 }
wmfRGB wmf_thistle = { 216, 191, 216 }
wmfRGB wmf_tomato = { 255, 99, 71 }
wmfRGB wmf_turquoise = { 64, 224, 208 }
wmfRGB wmf_violet = { 238, 130, 238 }
wmfRGB wmf_wheat = { 245, 222, 179 }
wmfRGB wmf_white = { 255, 255, 255 }
wmfRGB wmf_whitesmoke = { 245, 245, 245 }
wmfRGB wmf_yellow = { 255, 255, 0 }
wmfRGB wmf_yellowgreen = { 154, 205, 50 }

Function Documentation

wmfRGB* wmf_ipa_color wmfAPI   API,
unsigned long    index
 

Get indexed color.

Parameters:
API  the API handle
index  the index of the color
Returns:
Returns pointer to the indexed color.

void wmf_ipa_color_add wmfAPI   API,
wmfRGB   rgb
 

Add a color to the internal table.

Parameters:
API  the API handle
rgb  pointer to the color to be added

unsigned long wmf_ipa_color_count wmfAPI   API
 

Get the number of indexed colors.

Parameters:
API  the API handle
Returns:
Returns the number of indexed colors.

unsigned long wmf_ipa_color_index wmfAPI   API,
wmfRGB   rgb
 

Find closest matching color in internal table and return its index.

Parameters:
API  the API handle
rgb  pointer to the color to be matched
Returns:
Returns the index of the closest matching color.

void wmf_ipa_color_init wmfAPI   API
 

Initialize internal color table

Parameters:
API  the API handle

wmfRGB wmf_rgb_black wmfAPI   API
 

The color black.

Parameters:
API  the API handle
Returns:
Returns wmf_black.

wmfRGB wmf_rgb_color wmfAPI   API,
float    red,
float    green,
float    blue
 

Create a color with specified fractions of red, green and blue.

Parameters:
API  the API handle
red  fraction (0 to 1 inclusive) of color red
green  fraction (0 to 1 inclusive) of color green
blue  fraction (0 to 1 inclusive) of color blue
wmf_rgb_color (API,1,1,1) returns wmf_white.

wmf_rgb_color (API,0,0,0) returns wmf_black.

Returns:
Returns the color.

wmfRGB wmf_rgb_white wmfAPI   API
 

The color white.

Parameters:
API  the API handle
Returns:
Returns wmf_white.


Variable Documentation

wmfRGB wmf_aliceblue = { 240, 248, 255 }
 

wmfRGB wmf_antiquewhite = { 250, 235, 215 }
 

wmfRGB wmf_aqua = { 0, 255, 255 }
 

wmfRGB wmf_aquamarine = { 127, 255, 212 }
 

wmfRGB wmf_azure = { 240, 255, 255 }
 

wmfRGB wmf_beige = { 245, 245, 220 }
 

wmfRGB wmf_bisque = { 255, 228, 196 }
 

wmfRGB wmf_black = { 0, 0, 0 }
 

wmfRGB wmf_blanchedalmond = { 255, 235, 205 }
 

wmfRGB wmf_blue = { 0, 0, 255 }
 

wmfRGB wmf_blueviolet = { 138, 43, 226 }
 

wmfRGB wmf_brown = { 165, 42, 42 }
 

wmfRGB wmf_burlywood = { 222, 184, 135 }
 

wmfRGB wmf_cadetblue = { 95, 158, 160 }
 

wmfRGB wmf_chartreuse = { 127, 255, 0 }
 

wmfRGB wmf_chocolate = { 210, 105, 30 }
 

wmfRGB wmf_coral = { 255, 127, 80 }
 

wmfRGB wmf_cornflowerblue = { 100, 149, 237 }
 

wmfRGB wmf_cornsilk = { 255, 248, 220 }
 

wmfRGB wmf_crimson = { 220, 20, 60 }
 

wmfRGB wmf_cyan = { 0, 255, 255 }
 

wmfRGB wmf_darkblue = { 0, 0, 139 }
 

wmfRGB wmf_darkcyan = { 0, 139, 139 }
 

wmfRGB wmf_darkgoldenrod = { 184, 134, 11 }
 

wmfRGB wmf_darkgray = { 169, 169, 169 }
 

wmfRGB wmf_darkgreen = { 0, 100, 0 }
 

wmfRGB wmf_darkgrey = { 169, 169, 169 }
 

wmfRGB wmf_darkkhaki = { 189, 183, 107 }
 

wmfRGB wmf_darkmagenta = { 139, 0, 139 }
 

wmfRGB wmf_darkolivegreen = { 85, 107, 47 }
 

wmfRGB wmf_darkorange = { 255, 140, 0 }
 

wmfRGB wmf_darkorchid = { 153, 50, 204 }
 

wmfRGB wmf_darkred = { 139, 0, 0 }
 

wmfRGB wmf_darksalmon = { 233, 150, 122 }
 

wmfRGB wmf_darkseagreen = { 143, 188, 143 }
 

wmfRGB wmf_darkslateblue = { 72, 61, 139 }
 

wmfRGB wmf_darkslategray = { 47, 79, 79 }
 

wmfRGB wmf_darkslategrey = { 47, 79, 79 }
 

wmfRGB wmf_darkturquoise = { 0, 206, 209 }
 

wmfRGB wmf_darkviolet = { 148, 0, 211 }
 

wmfRGB wmf_deeppink = { 255, 20, 147 }
 

wmfRGB wmf_deepskyblue = { 0, 191, 255 }
 

wmfRGB wmf_dimgray = { 105, 105, 105 }
 

wmfRGB wmf_dimgrey = { 105, 105, 105 }
 

wmfRGB wmf_dodgerblue = { 30, 144, 255 }
 

wmfRGB wmf_firebrick = { 178, 34, 34 }
 

wmfRGB wmf_floralwhite = { 255, 250, 240 }
 

wmfRGB wmf_forestgreen = { 34, 139, 34 }
 

wmfRGB wmf_fuchsia = { 255, 0, 255 }
 

wmfRGB wmf_gainsboro = { 220, 220, 220 }
 

wmfRGB wmf_ghostwhite = { 248, 248, 255 }
 

wmfRGB wmf_gold = { 255, 215, 0 }
 

wmfRGB wmf_goldenrod = { 218, 165, 32 }
 

wmfRGB wmf_gray = { 128, 128, 128 }
 

wmfRGB wmf_green = { 0, 128, 0 }
 

wmfRGB wmf_greenyellow = { 173, 255, 47 }
 

wmfRGB wmf_grey = { 128, 128, 128 }
 

wmfRGB wmf_honeydew = { 240, 255, 240 }
 

wmfRGB wmf_hotpink = { 255, 105, 180 }
 

wmfRGB wmf_indianred = { 205, 92, 92 }
 

wmfRGB wmf_indigo = { 75, 0, 130 }
 

wmfRGB wmf_ivory = { 255, 255, 240 }
 

wmfRGB wmf_khaki = { 240, 230, 140 }
 

wmfRGB wmf_lavender = { 230, 230, 250 }
 

wmfRGB wmf_lavenderblush = { 255, 240, 245 }
 

wmfRGB wmf_lawngreen = { 124, 252, 0 }
 

wmfRGB wmf_lemonchiffon = { 255, 250, 205 }
 

wmfRGB wmf_lightblue = { 173, 216, 230 }
 

wmfRGB wmf_lightcoral = { 240, 128, 128 }
 

wmfRGB wmf_lightcyan = { 224, 255, 255 }
 

wmfRGB wmf_lightgoldenrodyellow = { 250, 250, 210 }
 

wmfRGB wmf_lightgray = { 211, 211, 211 }
 

wmfRGB wmf_lightgreen = { 144, 238, 144 }
 

wmfRGB wmf_lightgrey = { 211, 211, 211 }
 

wmfRGB wmf_lightpink = { 255, 182, 193 }
 

wmfRGB wmf_lightsalmon = { 255, 160, 122 }
 

wmfRGB wmf_lightseagreen = { 32, 178, 170 }
 

wmfRGB wmf_lightskyblue = { 135, 206, 250 }
 

wmfRGB wmf_lightslategray = { 119, 136, 153 }
 

wmfRGB wmf_lightslategrey = { 119, 136, 153 }
 

wmfRGB wmf_lightsteelblue = { 176, 196, 222 }
 

wmfRGB wmf_lightyellow = { 255, 255, 224 }
 

wmfRGB wmf_lime = { 0, 255, 0 }
 

wmfRGB wmf_limegreen = { 50, 205, 50 }
 

wmfRGB wmf_linen = { 250, 240, 230 }
 

wmfRGB wmf_magenta = { 255, 0, 255 }
 

wmfRGB wmf_maroon = { 128, 0, 0 }
 

wmfRGB wmf_mediumaquamarine = { 102, 205, 170 }
 

wmfRGB wmf_mediumblue = { 0, 0, 205 }
 

wmfRGB wmf_mediumorchid = { 186, 85, 211 }
 

wmfRGB wmf_mediumpurple = { 147, 112, 219 }
 

wmfRGB wmf_mediumseagreen = { 60, 179, 113 }
 

wmfRGB wmf_mediumslateblue = { 123, 104, 238 }
 

wmfRGB wmf_mediumspringgreen = { 0, 250, 154 }
 

wmfRGB wmf_mediumturquoise = { 72, 209, 204 }
 

wmfRGB wmf_mediumvioletred = { 199, 21, 133 }
 

wmfRGB wmf_midnightblue = { 25, 25, 112 }
 

wmfRGB wmf_mintcream = { 245, 255, 250 }
 

wmfRGB wmf_mistyrose = { 255, 228, 225 }
 

wmfRGB wmf_moccasin = { 255, 228, 181 }
 

wmfRGB wmf_navajowhite = { 255, 222, 173 }
 

wmfRGB wmf_navy = { 0, 0, 128 }
 

wmfRGB wmf_oldlace = { 253, 245, 230 }
 

wmfRGB wmf_olive = { 128, 128, 0 }
 

wmfRGB wmf_olivedrab = { 107, 142, 35 }
 

wmfRGB wmf_orange = { 255, 165, 0 }
 

wmfRGB wmf_orangered = { 255, 69, 0 }
 

wmfRGB wmf_orchid = { 218, 112, 214 }
 

wmfRGB wmf_palegoldenrod = { 238, 232, 170 }
 

wmfRGB wmf_palegreen = { 152, 251, 152 }
 

wmfRGB wmf_paleturquoise = { 175, 238, 238 }
 

wmfRGB wmf_palevioletred = { 219, 112, 147 }
 

wmfRGB wmf_papayawhip = { 255, 239, 213 }
 

wmfRGB wmf_peachpuff = { 255, 218, 185 }
 

wmfRGB wmf_peru = { 205, 133, 63 }
 

wmfRGB wmf_pink = { 255, 192, 203 }
 

wmfRGB wmf_plum = { 221, 160, 221 }
 

wmfRGB wmf_powderblue = { 176, 224, 230 }
 

wmfRGB wmf_purple = { 128, 0, 128 }
 

wmfRGB wmf_red = { 255, 0, 0 }
 

wmfRGB wmf_rosybrown = { 188, 143, 143 }
 

wmfRGB wmf_royalblue = { 65, 105, 225 }
 

wmfRGB wmf_saddlebrown = { 139, 69, 19 }
 

wmfRGB wmf_salmon = { 250, 128, 114 }
 

wmfRGB wmf_sandybrown = { 244, 164, 96 }
 

wmfRGB wmf_seagreen = { 46, 139, 87 }
 

wmfRGB wmf_seashell = { 255, 245, 238 }
 

wmfRGB wmf_sienna = { 160, 82, 45 }
 

wmfRGB wmf_silver = { 192, 192, 192 }
 

wmfRGB wmf_skyblue = { 135, 206, 235 }
 

wmfRGB wmf_slateblue = { 106, 90, 205 }
 

wmfRGB wmf_slategray = { 112, 128, 144 }
 

wmfRGB wmf_slategrey = { 112, 128, 144 }
 

wmfRGB wmf_snow = { 255, 250, 250 }
 

wmfRGB wmf_springgreen = { 0, 255, 127 }
 

wmfRGB wmf_steelblue = { 70, 130, 180 }
 

wmfRGB wmf_tan = { 210, 180, 140 }
 

wmfRGB wmf_teal = { 0, 128, 128 }
 

wmfRGB wmf_thistle = { 216, 191, 216 }
 

wmfRGB wmf_tomato = { 255, 99, 71 }
 

wmfRGB wmf_turquoise = { 64, 224, 208 }
 

wmfRGB wmf_violet = { 238, 130, 238 }
 

wmfRGB wmf_wheat = { 245, 222, 179 }
 

wmfRGB wmf_white = { 255, 255, 255 }
 

wmfRGB wmf_whitesmoke = { 245, 245, 245 }
 

wmfRGB wmf_yellow = { 255, 255, 0 }
 

wmfRGB wmf_yellowgreen = { 154, 205, 50 }
 


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/stream_8c.html000066400000000000000000000401331441723000300173340ustar00rootroot00000000000000 stream.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

stream.c File Reference


Functions

wmfStreamwmf_ztream_create (wmfAPI *API, gzFile out)
wmfStreamwmf_stream_create (wmfAPI *API, FILE *out)
void wmf_ztream_destroy (wmfAPI *API, wmfStream *stream, char **buffer, unsigned long *length)
void wmf_stream_destroy (wmfAPI *API, wmfStream *stream, char **buffer, unsigned long *length)
int wmf_stream_printf (wmfAPI *API, wmfStream *stream, char *format,...)
int wmf_stream_zputs (char *str, void *context)
int wmf_stream_sputs (char *str, void *context)
int wmf_stream_rezet (void *context)
int wmf_stream_reset (void *context)

Function Documentation

wmfStream* wmf_stream_create wmfAPI   API,
FILE *    out
 

Open an uncompressed character output stream.

Parameters:
API  the API handle
out  descriptor for a file stream; or zero to write to memory
wmf_stream_create() creates a wmfStream (a character-based output stream) for output to a file or, if out is zero, to memory.

Returns:
Returns a wmfStream pointer, or zero on failure. Possible library error states of wmf_E_InsMem or wmf_E_BadFile.

void wmf_stream_destroy wmfAPI   API,
wmfStream   stream,
char **    buffer,
unsigned long *    length
 

Close an uncompressed character output stream.

Parameters:
API  the API handle
stream  stream handle
buffer  for memory return
length  for length return
In the case of write-to-memory, on return *buffer is an array of length length.

int wmf_stream_printf wmfAPI   API,
wmfStream   stream,
char *    format,
...   
 

Formatted print to character output stream.

Parameters:
API  the API handle
stream  stream handle
format  print format
With syntax similar to printf(), wmf_stream_printf() prints a formatted message to a wmfStream character stream.

Returns:
Returns the number of characters written, or zero on failure. Possible library error state of wmf_E_InsMem.

int wmf_stream_reset void *   
 

uncompressed char output (wmf_stream_create): rewind()

int wmf_stream_rezet void *   
 

compressed char output (wmf_ztream_create): rewind()

int wmf_stream_sputs char *   ,
void *   
 

uncompressed char output (wmf_stream_create): fputs()

int wmf_stream_zputs char *   ,
void *   
 

compressed char output (wmf_ztream_create): fputs()

wmfStream* wmf_ztream_create wmfAPI   API,
gzFile    out
 

Open a compressed character output stream.

Parameters:
API  the API handle
out  descriptor for a zlib compressed file stream
wmf_ztream_create() creates a wmfStream (a character-based output stream) for output to a file opened via zlib. (Writing compressed data to memory is not currently supported.)

Returns:
Returns a wmfStream pointer, or zero on failure. Possible library error state of wmf_E_InsMem.

void wmf_ztream_destroy wmfAPI   API,
wmfStream   stream,
char **    buffer,
unsigned long *    length
 

Close a compressed character output stream.

Parameters:
API  the API handle
stream  stream handle
buffer  (unused)
length  (unused)


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/structWmfContext.html000066400000000000000000000127311441723000300210150ustar00rootroot00000000000000 WmfContext struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

WmfContext Struct Reference


Data Fields

GdkPixbufModuleUpdatedFunc updated_func
GdkPixbufModulePreparedFunc prepared_func
GdkPixbufModuleSizeFunc size_func
gpointer user_data
GByteArray * data
gint width
gint height

Field Documentation

GByteArray* WmfContext::data
 

gint WmfContext::height
 

GdkPixbufModulePreparedFunc WmfContext::prepared_func
 

GdkPixbufModuleSizeFunc WmfContext::size_func
 

GdkPixbufModuleUpdatedFunc WmfContext::updated_func
 

gpointer WmfContext::user_data
 

gint WmfContext::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfAPI.html000066400000000000000000000454361441723000300203500ustar00rootroot00000000000000 _wmfAPI struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfAPI Struct Reference


Data Fields

wmf_error_t err
wmfHead Head
wmfPlaceableMetaHeader PlaceableMetaHeader
wmfMetaHeader MetaHeader
wmfFile File
FILE * debug_out
FILE * error_out
wmfAttributeStore store
void * write_data
void * user_data
void * device_data
void * player_data
void * buffer_data
void * memory_data
void * function_reference
void * font_data
char ** fonts
void * color_data
struct {
   wmfRead   read
   wmfSeek   seek
   wmfTell   tell
bbuf
struct {
   void *   context
   wmfStatus   function
status
struct {
   unsigned long   length
   char *   buffer
string_buffer
unsigned long flags

Field Documentation

struct { ... } _wmfAPI::bbuf
 

char* _wmfAPI::buffer
 

void* _wmfAPI::buffer_data
 

void* _wmfAPI::color_data
 

void* _wmfAPI::context
 

FILE* _wmfAPI::debug_out
 

void* _wmfAPI::device_data
 

wmf_error_t _wmfAPI::err
 

FILE* _wmfAPI::error_out
 

wmfFile _wmfAPI::File
 

unsigned long _wmfAPI::flags
 

void* _wmfAPI::font_data
 

char** _wmfAPI::fonts
 

wmfStatus _wmfAPI::function
 

void* _wmfAPI::function_reference
 

wmfHead _wmfAPI::Head
 

unsigned long _wmfAPI::length
 

void* _wmfAPI::memory_data
 

wmfMetaHeader _wmfAPI::MetaHeader
 

wmfPlaceableMetaHeader _wmfAPI::PlaceableMetaHeader
 

void* _wmfAPI::player_data
 

wmfRead _wmfAPI::read
 

wmfSeek _wmfAPI::seek
 

struct { ... } _wmfAPI::status
 

wmfAttributeStore _wmfAPI::store
 

struct { ... } _wmfAPI::string_buffer
 

wmfTell _wmfAPI::tell
 

void* _wmfAPI::user_data
 

void* _wmfAPI::write_data
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfAPI__Options.html000066400000000000000000000341541441723000300222150ustar00rootroot00000000000000 _wmfAPI_Options struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfAPI_Options Struct Reference


Data Fields

void * context
void *(* malloc )(void *context, size_t size)
void *(* realloc )(void *context, void *mem, size_t size)
void(* free )(void *context, void *mem)
int argc
char ** argv
char ** fontdirs
struct {
   wmfFontMap *   wmf
   wmfMapping *   sub
   wmfMapping *   ps
font
char * sys_fontmap_file
char * xtra_fontmap_file
char * gs_fontmap_file
char * write_file
void(* function )(wmfAPI *)
char * module
char ** dirs
FILE * debug_out
FILE * error_out

Field Documentation

int _wmfAPI_Options::argc
 

char** _wmfAPI_Options::argv
 

void* _wmfAPI_Options::context
 

FILE* _wmfAPI_Options::debug_out
 

char** _wmfAPI_Options::dirs
 

FILE* _wmfAPI_Options::error_out
 

struct { ... } _wmfAPI_Options::font
 

char** _wmfAPI_Options::fontdirs
 

void(* _wmfAPI_Options::free)(void* context,void* mem)
 

void(* _wmfAPI_Options::function)(wmfAPI*)
 

char* _wmfAPI_Options::gs_fontmap_file
 

void*(* _wmfAPI_Options::malloc)(void* context,size_t size)
 

char* _wmfAPI_Options::module
 

wmfMapping* _wmfAPI_Options::ps
 

void*(* _wmfAPI_Options::realloc)(void* context,void* mem,size_t size)
 

wmfMapping* _wmfAPI_Options::sub
 

char* _wmfAPI_Options::sys_fontmap_file
 

wmfFontMap* _wmfAPI_Options::wmf
 

char* _wmfAPI_Options::write_file
 

char* _wmfAPI_Options::xtra_fontmap_file
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfAttributeStore.html000066400000000000000000000064771441723000300227210ustar00rootroot00000000000000 _wmfAttributeStore struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfAttributeStore Struct Reference


Data Fields

wmfAttributesattrlist
unsigned long count
unsigned long max

Detailed Description

Structure containing list of lists of XML attributes


Field Documentation

wmfAttributes* _wmfAttributeStore::attrlist
 

unsigned long _wmfAttributeStore::count
 

unsigned long _wmfAttributeStore::max
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfAttributes.html000066400000000000000000000130521441723000300220520ustar00rootroot00000000000000 _wmfAttributes struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfAttributes Struct Reference


Data Fields

char * name
char ** atts
unsigned long count
unsigned long max
unsigned char * buffer
unsigned long length
unsigned long offset

Detailed Description

Structure containing list of XML attributes


Field Documentation

char** _wmfAttributes::atts
 

unsigned char* _wmfAttributes::buffer
 

unsigned long _wmfAttributes::count
 

unsigned long _wmfAttributes::length
 

unsigned long _wmfAttributes::max
 

char* _wmfAttributes::name
 

unsigned long _wmfAttributes::offset
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfBMP.html000066400000000000000000000056741441723000300203550ustar00rootroot00000000000000 _wmfBMP struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfBMP Struct Reference


Data Fields

U16 width
U16 height
void * data

Field Documentation

void* _wmfBMP::data
 

U16 _wmfBMP::height
 

U16 _wmfBMP::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfBMP__Draw__t.html000066400000000000000000000176031441723000300221460ustar00rootroot00000000000000 _wmfBMP_Draw_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfBMP_Draw_t Struct Reference


Data Fields

wmfDCdc
wmfD_Coord pt
wmfBMP bmp
U32 type
struct {
   U16   x
   U16   y
   U16   w
   U16   h
crop
double pixel_width
double pixel_height

Field Documentation

wmfBMP _wmfBMP_Draw_t::bmp
 

struct { ... } _wmfBMP_Draw_t::crop
 

wmfDC* _wmfBMP_Draw_t::dc
 

U16 _wmfBMP_Draw_t::h
 

double _wmfBMP_Draw_t::pixel_height
 

double _wmfBMP_Draw_t::pixel_width
 

wmfD_Coord _wmfBMP_Draw_t::pt
 

U32 _wmfBMP_Draw_t::type
 

U16 _wmfBMP_Draw_t::w
 

U16 _wmfBMP_Draw_t::x
 

U16 _wmfBMP_Draw_t::y
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfBMP__Read__t.html000066400000000000000000000115751441723000300221260ustar00rootroot00000000000000 _wmfBMP_Read_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfBMP_Read_t Struct Reference


Data Fields

long offset
long length
unsigned char * buffer
U16 width
U16 height
wmfBMP bmp

Field Documentation

wmfBMP _wmfBMP_Read_t::bmp
 

unsigned char* _wmfBMP_Read_t::buffer
 

U16 _wmfBMP_Read_t::height
 

long _wmfBMP_Read_t::length
 

long _wmfBMP_Read_t::offset
 

U16 _wmfBMP_Read_t::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfBrush.html000066400000000000000000000073101441723000300210070ustar00rootroot00000000000000 _wmfBrush struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfBrush Struct Reference


Data Fields

U16 lbStyle
U16 lbHatch
wmfRGB lbColor
wmfBMP bmp

Field Documentation

wmfBMP _wmfBrush::bmp
 

wmfRGB _wmfBrush::lbColor
 

U16 _wmfBrush::lbHatch
 

U16 _wmfBrush::lbStyle
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfCanvasBrush.html000066400000000000000000000062331441723000300221460ustar00rootroot00000000000000 _wmfCanvasBrush struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfCanvasBrush Struct Reference


Data Fields

unsigned short style
unsigned short hatch
wmfRGB color

Field Documentation

wmfRGB _wmfCanvasBrush::color
 

unsigned short _wmfCanvasBrush::hatch
 

unsigned short _wmfCanvasBrush::style
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfCanvasFont.html000066400000000000000000000234531441723000300217740ustar00rootroot00000000000000 _wmfCanvasFont struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfCanvasFont Struct Reference


Data Fields

char name [CanvasFontBufferSize]
unsigned short height
unsigned short width
unsigned short escapement
unsigned short orientation
unsigned short weight
unsigned short italic
unsigned short underline
unsigned short strikeout
unsigned short charset
unsigned short out
unsigned short clip
unsigned short quality
unsigned short pitch

Field Documentation

unsigned short _wmfCanvasFont::charset
 

unsigned short _wmfCanvasFont::clip
 

unsigned short _wmfCanvasFont::escapement
 

unsigned short _wmfCanvasFont::height
 

unsigned short _wmfCanvasFont::italic
 

char _wmfCanvasFont::name[CanvasFontBufferSize]
 

unsigned short _wmfCanvasFont::orientation
 

unsigned short _wmfCanvasFont::out
 

unsigned short _wmfCanvasFont::pitch
 

unsigned short _wmfCanvasFont::quality
 

unsigned short _wmfCanvasFont::strikeout
 

unsigned short _wmfCanvasFont::underline
 

unsigned short _wmfCanvasFont::weight
 

unsigned short _wmfCanvasFont::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfCanvasPen.html000066400000000000000000000062051441723000300216040ustar00rootroot00000000000000 _wmfCanvasPen struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfCanvasPen Struct Reference


Data Fields

unsigned short style
unsigned short width
wmfRGB color

Field Documentation

wmfRGB _wmfCanvasPen::color
 

unsigned short _wmfCanvasPen::style
 

unsigned short _wmfCanvasPen::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfColorData.html000066400000000000000000000061561441723000300216030ustar00rootroot00000000000000 _wmfColorData struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfColorData Struct Reference


Data Fields

unsigned long max
unsigned long count
wmfRGBrgb

Field Documentation

unsigned long _wmfColorData::count
 

unsigned long _wmfColorData::max
 

wmfRGB* _wmfColorData::rgb
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfConstruct.html000066400000000000000000000351571441723000300217220ustar00rootroot00000000000000 _wmfConstruct struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfConstruct Struct Reference


Data Fields

unsigned char * buffer
unsigned long length
unsigned long max
unsigned long * rec_offset
unsigned long rec_count
unsigned long rec_max
unsigned short NoObjects
unsigned long MaxRecord
unsigned short width
unsigned short height
unsigned short dpi
wmfCanvasPen pen
wmfCanvasBrush brush
wmfCanvasFont font
wmfCanvasPen new_pen
wmfCanvasBrush new_brush
wmfCanvasFont new_font
unsigned short polyfill
unsigned short background
wmfRGB bgcolor
wmfRGB textcolor

Field Documentation

unsigned short _wmfConstruct::background
 

wmfRGB _wmfConstruct::bgcolor
 

wmfCanvasBrush _wmfConstruct::brush
 

unsigned char* _wmfConstruct::buffer
 

unsigned short _wmfConstruct::dpi
 

wmfCanvasFont _wmfConstruct::font
 

unsigned short _wmfConstruct::height
 

unsigned long _wmfConstruct::length
 

unsigned long _wmfConstruct::max
 

unsigned long _wmfConstruct::MaxRecord
 

wmfCanvasBrush _wmfConstruct::new_brush
 

wmfCanvasFont _wmfConstruct::new_font
 

wmfCanvasPen _wmfConstruct::new_pen
 

unsigned short _wmfConstruct::NoObjects
 

wmfCanvasPen _wmfConstruct::pen
 

unsigned short _wmfConstruct::polyfill
 

unsigned long _wmfConstruct::rec_count
 

unsigned long _wmfConstruct::rec_max
 

unsigned long* _wmfConstruct::rec_offset
 

wmfRGB _wmfConstruct::textcolor
 

unsigned short _wmfConstruct::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfDC.html000066400000000000000000000330021441723000300202070ustar00rootroot00000000000000 _wmfDC struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfDC Struct Reference


Data Fields

void * userdata
wmfBrushbrush
wmfPenpen
wmfFontfont
wmfRGB textcolor
wmfRGB bgcolor
U16 textalign
U16 bgmode
U16 polyfillmode
U16 charextra
U16 breakextra
U16 ROPmode
struct {
   S32   Ox
   S32   Oy
   S32   width
   S32   height
Window
double pixel_width
double pixel_height
U16 map_mode
void * clip

Field Documentation

wmfRGB _wmfDC::bgcolor
 

U16 _wmfDC::bgmode
 

U16 _wmfDC::breakextra
 

wmfBrush* _wmfDC::brush
 

U16 _wmfDC::charextra
 

void* _wmfDC::clip
 

wmfFont* _wmfDC::font
 

S32 _wmfDC::height
 

U16 _wmfDC::map_mode
 

S32 _wmfDC::Ox
 

S32 _wmfDC::Oy
 

wmfPen* _wmfDC::pen
 

double _wmfDC::pixel_height
 

double _wmfDC::pixel_width
 

U16 _wmfDC::polyfillmode
 

U16 _wmfDC::ROPmode
 

U16 _wmfDC::textalign
 

wmfRGB _wmfDC::textcolor
 

void* _wmfDC::userdata
 

S32 _wmfDC::width
 

struct { ... } _wmfDC::Window
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfD__Coord.html000066400000000000000000000047411441723000300214010ustar00rootroot00000000000000 _wmfD_Coord struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfD_Coord Struct Reference


Data Fields

float x
float y

Detailed Description

Device coordinate.


Field Documentation

float _wmfD_Coord::x
 

float _wmfD_Coord::y
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfD__Rect.html000066400000000000000000000054171441723000300212310ustar00rootroot00000000000000 _wmfD_Rect struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfD_Rect Struct Reference


Data Fields

wmfD_Coord TL
wmfD_Coord BR

Detailed Description

Device rectangle.


Field Documentation

wmfD_Coord _wmfD_Rect::BR
 

Device coordinate of bottom right corner.

wmfD_Coord _wmfD_Rect::TL
 

Device coordinate of top left corner (TL.x < BR.x, TL.y < BR.y).


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfDrawArc__t.html000066400000000000000000000111421441723000300217270ustar00rootroot00000000000000 _wmfDrawArc_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfDrawArc_t Struct Reference


Data Fields

wmfDCdc
wmfD_Coord TL
wmfD_Coord BR
wmfD_Coord start
wmfD_Coord end

Field Documentation

wmfD_Coord _wmfDrawArc_t::BR
 

wmfDC* _wmfDrawArc_t::dc
 

wmfD_Coord _wmfDrawArc_t::end
 

wmfD_Coord _wmfDrawArc_t::start
 

wmfD_Coord _wmfDrawArc_t::TL
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfDrawLine__t.html000066400000000000000000000064211441723000300221150ustar00rootroot00000000000000 _wmfDrawLine_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfDrawLine_t Struct Reference


Data Fields

wmfDCdc
wmfD_Coord from
wmfD_Coord to

Field Documentation

wmfDC* _wmfDrawLine_t::dc
 

wmfD_Coord _wmfDrawLine_t::from
 

wmfD_Coord _wmfDrawLine_t::to
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfDrawPixel__t.html000066400000000000000000000107601441723000300223100ustar00rootroot00000000000000 _wmfDrawPixel_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfDrawPixel_t Struct Reference


Data Fields

wmfDCdc
wmfD_Coord pt
wmfRGB color
double pixel_width
double pixel_height

Field Documentation

wmfRGB _wmfDrawPixel_t::color
 

wmfDC* _wmfDrawPixel_t::dc
 

double _wmfDrawPixel_t::pixel_height
 

double _wmfDrawPixel_t::pixel_width
 

wmfD_Coord _wmfDrawPixel_t::pt
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfDrawRectangle__t.html000066400000000000000000000110211441723000300231220ustar00rootroot00000000000000 _wmfDrawRectangle_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfDrawRectangle_t Struct Reference


Data Fields

wmfDCdc
wmfD_Coord TL
wmfD_Coord BR
float width
float height

Field Documentation

wmfD_Coord _wmfDrawRectangle_t::BR
 

wmfDC* _wmfDrawRectangle_t::dc
 

float _wmfDrawRectangle_t::height
 

wmfD_Coord _wmfDrawRectangle_t::TL
 

float _wmfDrawRectangle_t::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfDrawText__t.html000066400000000000000000000210721441723000300221510ustar00rootroot00000000000000 _wmfDrawText_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfDrawText_t Struct Reference


Data Fields

wmfDCdc
wmfD_Coord pt
wmfD_Coord TL
wmfD_Coord BR
struct {
   wmfD_Coord   TL
   wmfD_Coord   TR
   wmfD_Coord   BL
   wmfD_Coord   BR
bbox
char * str
U16 flags
double font_height
double font_ratio

Field Documentation

struct { ... } _wmfDrawText_t::bbox
 

wmfD_Coord _wmfDrawText_t::BL
 

wmfD_Coord _wmfDrawText_t::BR
 

wmfDC* _wmfDrawText_t::dc
 

U16 _wmfDrawText_t::flags
 

double _wmfDrawText_t::font_height
 

double _wmfDrawText_t::font_ratio
 

wmfD_Coord _wmfDrawText_t::pt
 

char* _wmfDrawText_t::str
 

wmfD_Coord _wmfDrawText_t::TL
 

wmfD_Coord _wmfDrawText_t::TR
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfFT__CacheEntry.html000066400000000000000000000061231441723000300225020ustar00rootroot00000000000000 _wmfFT_CacheEntry struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfFT_CacheEntry Struct Reference


Data Fields

char * name
char * path
FT_Face face

Field Documentation

FT_Face _wmfFT_CacheEntry::face
 

char* _wmfFT_CacheEntry::name
 

char* _wmfFT_CacheEntry::path
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfFT__Mapping.html000066400000000000000000000072471441723000300220600ustar00rootroot00000000000000 _wmfFT_Mapping struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfFT_Mapping Struct Reference


Data Fields

char * name
char * mapping
FT_Encoding encoding
FT_Face face

Field Documentation

FT_Encoding _wmfFT_Mapping::encoding
 

FT_Face _wmfFT_Mapping::face
 

char* _wmfFT_Mapping::mapping
 

char* _wmfFT_Mapping::name
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfFlood__t.html000066400000000000000000000117631441723000300214600ustar00rootroot00000000000000 _wmfFlood_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfFlood_t Struct Reference


Data Fields

wmfDCdc
wmfD_Coord pt
wmfRGB color
U16 type
double pixel_width
double pixel_height

Field Documentation

wmfRGB _wmfFlood_t::color
 

wmfDC* _wmfFlood_t::dc
 

double _wmfFlood_t::pixel_height
 

double _wmfFlood_t::pixel_width
 

wmfD_Coord _wmfFlood_t::pt
 

U16 _wmfFlood_t::type
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfFont.html000066400000000000000000000237051441723000300206400ustar00rootroot00000000000000 _wmfFont struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfFont Struct Reference


Data Fields

U16 lfHeight
U16 lfWidth
S16 lfEscapement
S16 lfOrientation
U16 lfWeight
U8 lfItalic
U8 lfUnderline
U8 lfStrikeOut
U8 lfCharSet
U8 lfOutPrecision
U8 lfClipPrecision
U8 lfQuality
U8 lfPitchAndFamily
char * lfFaceName
void * user_data

Field Documentation

U8 _wmfFont::lfCharSet
 

U8 _wmfFont::lfClipPrecision
 

S16 _wmfFont::lfEscapement
 

char* _wmfFont::lfFaceName
 

U16 _wmfFont::lfHeight
 

U8 _wmfFont::lfItalic
 

S16 _wmfFont::lfOrientation
 

U8 _wmfFont::lfOutPrecision
 

U8 _wmfFont::lfPitchAndFamily
 

U8 _wmfFont::lfQuality
 

U8 _wmfFont::lfStrikeOut
 

U8 _wmfFont::lfUnderline
 

U16 _wmfFont::lfWeight
 

U16 _wmfFont::lfWidth
 

void* _wmfFont::user_data
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfFontData.html000066400000000000000000000077021441723000300214310ustar00rootroot00000000000000 _wmfFontData struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfFontData Struct Reference


Data Fields

wmfMap map
wmfStringWidth stringwidth
void * user_data

Detailed Description

API->font_data is a pointer to a wmfFontData. wmf_api_create () sets this up automatically, but wmf_lite_create () does not. If you use wmf_lite_create () then you must create your own wmfFontData. libwmflite requires you to define map and stringwidth functions but the rest of these fields are ignored (they are only used by libwmf).


Field Documentation

wmfMap _wmfFontData::map
 

Necessary field: exactly what the function does is irrelevant.

wmfStringWidth _wmfFontData::stringwidth
 

Necessary field: returns width of specified string in points, assuming (unstretched) font size of 1pt.

void* _wmfFontData::user_data
 

A handle for data, unused by libwmflite


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfFontMap.html000066400000000000000000000102411441723000300212650ustar00rootroot00000000000000 _wmfFontMap struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfFontMap Struct Reference


Data Fields

char * name
char * normal
char * italic
char * bold
char * bolditalic

Field Documentation

char* _wmfFontMap::bold
 

char* _wmfFontMap::bolditalic
 

char* _wmfFontMap::italic
 

char* _wmfFontMap::name
 

char* _wmfFontMap::normal
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfFontmapData.html000066400000000000000000000153271441723000300221310ustar00rootroot00000000000000 _wmfFontmapData struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfFontmapData Struct Reference


Data Fields

char ** fontdirs
wmfFontMapwmf
wmfMappingsub
wmfFT_Mappingps
wmfFT_CacheEntrycache
wmfGS_FontData GS
wmfXML_FontData FD
FT_Library Library

Field Documentation

wmfFT_CacheEntry* _wmfFontmapData::cache
 

wmfXML_FontData _wmfFontmapData::FD
 

char** _wmfFontmapData::fontdirs
 

wmfGS_FontData _wmfFontmapData::GS
 

FT_Library _wmfFontmapData::Library
 

wmfFT_Mapping* _wmfFontmapData::ps
 

wmfMapping* _wmfFontmapData::sub
 

wmfFontMap* _wmfFontmapData::wmf
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfFunctionReference.html000066400000000000000000000606001441723000300233310ustar00rootroot00000000000000 _wmfFunctionReference struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfFunctionReference Struct Reference


Data Fields

void(* device_open )(wmfAPI *)
void(* device_close )(wmfAPI *)
void(* device_begin )(wmfAPI *)
void(* device_end )(wmfAPI *)
void(* flood_interior )(wmfAPI *, wmfFlood_t *)
void(* flood_exterior )(wmfAPI *, wmfFlood_t *)
void(* draw_pixel )(wmfAPI *, wmfDrawPixel_t *)
void(* draw_pie )(wmfAPI *, wmfDrawArc_t *)
void(* draw_chord )(wmfAPI *, wmfDrawArc_t *)
void(* draw_arc )(wmfAPI *, wmfDrawArc_t *)
void(* draw_ellipse )(wmfAPI *, wmfDrawArc_t *)
void(* draw_line )(wmfAPI *, wmfDrawLine_t *)
void(* poly_line )(wmfAPI *, wmfPolyLine_t *)
void(* draw_polygon )(wmfAPI *, wmfPolyLine_t *)
void(* draw_polypolygon )(wmfAPI *, wmfPolyPoly_t *)
void(* draw_rectangle )(wmfAPI *, wmfDrawRectangle_t *)
void(* rop_draw )(wmfAPI *, wmfROP_Draw_t *)
void(* bmp_draw )(wmfAPI *, wmfBMP_Draw_t *)
void(* bmp_read )(wmfAPI *, wmfBMP_Read_t *)
void(* bmp_free )(wmfAPI *, wmfBMP *)
void(* draw_text )(wmfAPI *, wmfDrawText_t *)
void(* udata_init )(wmfAPI *, wmfUserData_t *)
void(* udata_copy )(wmfAPI *, wmfUserData_t *)
void(* udata_set )(wmfAPI *, wmfUserData_t *)
void(* udata_free )(wmfAPI *, wmfUserData_t *)
void(* region_frame )(wmfAPI *, wmfPolyRectangle_t *)
void(* region_paint )(wmfAPI *, wmfPolyRectangle_t *)
void(* region_clip )(wmfAPI *, wmfPolyRectangle_t *)

Field Documentation

void(* _wmfFunctionReference::bmp_draw)(wmfAPI*,wmfBMP_Draw_t*)
 

void(* _wmfFunctionReference::bmp_free)(wmfAPI*,wmfBMP*)
 

void(* _wmfFunctionReference::bmp_read)(wmfAPI*,wmfBMP_Read_t*)
 

void(* _wmfFunctionReference::device_begin)(wmfAPI*)
 

void(* _wmfFunctionReference::device_close)(wmfAPI*)
 

void(* _wmfFunctionReference::device_end)(wmfAPI*)
 

void(* _wmfFunctionReference::device_open)(wmfAPI*)
 

void(* _wmfFunctionReference::draw_arc)(wmfAPI*,wmfDrawArc_t*)
 

void(* _wmfFunctionReference::draw_chord)(wmfAPI*,wmfDrawArc_t*)
 

void(* _wmfFunctionReference::draw_ellipse)(wmfAPI*,wmfDrawArc_t*)
 

void(* _wmfFunctionReference::draw_line)(wmfAPI*,wmfDrawLine_t*)
 

void(* _wmfFunctionReference::draw_pie)(wmfAPI*,wmfDrawArc_t*)
 

void(* _wmfFunctionReference::draw_pixel)(wmfAPI*,wmfDrawPixel_t*)
 

void(* _wmfFunctionReference::draw_polygon)(wmfAPI*,wmfPolyLine_t*)
 

void(* _wmfFunctionReference::draw_polypolygon)(wmfAPI*,wmfPolyPoly_t*)
 

void(* _wmfFunctionReference::draw_rectangle)(wmfAPI*,wmfDrawRectangle_t*)
 

void(* _wmfFunctionReference::draw_text)(wmfAPI*,wmfDrawText_t*)
 

void(* _wmfFunctionReference::flood_exterior)(wmfAPI*,wmfFlood_t*)
 

void(* _wmfFunctionReference::flood_interior)(wmfAPI*,wmfFlood_t*)
 

void(* _wmfFunctionReference::poly_line)(wmfAPI*,wmfPolyLine_t*)
 

void(* _wmfFunctionReference::region_clip)(wmfAPI*,wmfPolyRectangle_t*)
 

void(* _wmfFunctionReference::region_frame)(wmfAPI*,wmfPolyRectangle_t*)
 

void(* _wmfFunctionReference::region_paint)(wmfAPI*,wmfPolyRectangle_t*)
 

void(* _wmfFunctionReference::rop_draw)(wmfAPI*,wmfROP_Draw_t*)
 

void(* _wmfFunctionReference::udata_copy)(wmfAPI*,wmfUserData_t*)
 

void(* _wmfFunctionReference::udata_free)(wmfAPI*,wmfUserData_t*)
 

void(* _wmfFunctionReference::udata_init)(wmfAPI*,wmfUserData_t*)
 

void(* _wmfFunctionReference::udata_set)(wmfAPI*,wmfUserData_t*)
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfGS__FontData.html000066400000000000000000000063201441723000300221540ustar00rootroot00000000000000 _wmfGS_FontData struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfGS_FontData Struct Reference


Data Fields

unsigned int max
unsigned int len
wmfGS_FontInfoFI

Field Documentation

wmfGS_FontInfo* _wmfGS_FontData::FI
 

unsigned int _wmfGS_FontData::len
 

unsigned int _wmfGS_FontData::max
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfGS__FontInfo.html000066400000000000000000000047451441723000300222070ustar00rootroot00000000000000 _wmfGS_FontInfo struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfGS_FontInfo Struct Reference


Data Fields

char * name
char * alias

Field Documentation

char* _wmfGS_FontInfo::alias
 

char* _wmfGS_FontInfo::name
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfHead.html000066400000000000000000000124541441723000300205720ustar00rootroot00000000000000 _wmfHead struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfHead Struct Reference


Data Fields

U16 FileType
U16 HeaderSize
U16 Version
U32 FileSize
U16 NumOfObjects
U32 MaxRecordSize
U16 NumOfParams

Field Documentation

U32 _wmfHead::FileSize
 

U16 _wmfHead::FileType
 

U16 _wmfHead::HeaderSize
 

U32 _wmfHead::MaxRecordSize
 

U16 _wmfHead::NumOfObjects
 

U16 _wmfHead::NumOfParams
 

U16 _wmfHead::Version
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfIPAFont.html000066400000000000000000000047251441723000300211730ustar00rootroot00000000000000 _wmfIPAFont struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfIPAFont Struct Reference


Data Fields

char * ps_name
FT_Face ft_face

Field Documentation

FT_Face _wmfIPAFont::ft_face
 

char* _wmfIPAFont::ps_name
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfImage.html000066400000000000000000000073271441723000300207560ustar00rootroot00000000000000 _wmfImage struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfImage Struct Reference


Data Fields

wmf_image_t type
U16 width
U16 height
void * data

Detailed Description

Structure referencing an image


Field Documentation

void* _wmfImage::data
 

U16 _wmfImage::height
 

wmf_image_t _wmfImage::type
 

U16 _wmfImage::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfMapping.html000066400000000000000000000060151441723000300213200ustar00rootroot00000000000000 _wmfMapping struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfMapping Struct Reference


Data Fields

char * name
char * mapping
FT_Encoding encoding

Field Documentation

FT_Encoding _wmfMapping::encoding
 

char* _wmfMapping::mapping
 

char* _wmfMapping::name
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfMetaHeader.html000066400000000000000000000106421441723000300217250ustar00rootroot00000000000000 _wmfMetaHeader struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfMetaHeader Struct Reference


Data Fields

wmfHeadwmfheader
wmfPlaceableMetaHeaderpmh
FILE * filein
long pos
int placeable

Field Documentation

FILE* _wmfMetaHeader::filein
 

int _wmfMetaHeader::placeable
 

wmfPlaceableMetaHeader* _wmfMetaHeader::pmh
 

long _wmfMetaHeader::pos
 

wmfHead* _wmfMetaHeader::wmfheader
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfPen.html000066400000000000000000000071611441723000300204520ustar00rootroot00000000000000 _wmfPen struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfPen Struct Reference


Data Fields

U16 lopnStyle
double width
double height
wmfRGB lopnColor

Field Documentation

double _wmfPen::height
 

wmfRGB _wmfPen::lopnColor
 

U16 _wmfPen::lopnStyle
 

double _wmfPen::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfPlaceableMetaHeader.html000066400000000000000000000153771441723000300235300ustar00rootroot00000000000000 _wmfPlaceableMetaHeader struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfPlaceableMetaHeader Struct Reference


Data Fields

U32 Key
U16 Handle
S16 Left
S16 Top
S16 Right
S16 Bottom
U16 Inch
U32 Reserved
U16 Checksum

Field Documentation

S16 _wmfPlaceableMetaHeader::Bottom
 

U16 _wmfPlaceableMetaHeader::Checksum
 

U16 _wmfPlaceableMetaHeader::Handle
 

U16 _wmfPlaceableMetaHeader::Inch
 

U32 _wmfPlaceableMetaHeader::Key
 

S16 _wmfPlaceableMetaHeader::Left
 

U32 _wmfPlaceableMetaHeader::Reserved
 

S16 _wmfPlaceableMetaHeader::Right
 

S16 _wmfPlaceableMetaHeader::Top
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfPolyLine__t.html000066400000000000000000000062631441723000300221470ustar00rootroot00000000000000 _wmfPolyLine_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfPolyLine_t Struct Reference


Data Fields

wmfDCdc
wmfD_Coordpt
U16 count

Field Documentation

U16 _wmfPolyLine_t::count
 

wmfDC* _wmfPolyLine_t::dc
 

wmfD_Coord* _wmfPolyLine_t::pt
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfPolyPoly__t.html000066400000000000000000000074131441723000300222010ustar00rootroot00000000000000 _wmfPolyPoly_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfPolyPoly_t Struct Reference


Data Fields

wmfDCdc
wmfD_Coord ** pt
U16 * count
U16 npoly

Field Documentation

U16* _wmfPolyPoly_t::count
 

wmfDC* _wmfPolyPoly_t::dc
 

U16 _wmfPolyPoly_t::npoly
 

wmfD_Coord** _wmfPolyPoly_t::pt
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfPolyRectangle__t.html000066400000000000000000000122131441723000300231540ustar00rootroot00000000000000 _wmfPolyRectangle_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfPolyRectangle_t Struct Reference


Data Fields

wmfDCdc
wmfD_CoordTL
wmfD_CoordBR
unsigned int count
float width
float height

Field Documentation

wmfD_Coord* _wmfPolyRectangle_t::BR
 

unsigned int _wmfPolyRectangle_t::count
 

wmfDC* _wmfPolyRectangle_t::dc
 

float _wmfPolyRectangle_t::height
 

wmfD_Coord* _wmfPolyRectangle_t::TL
 

float _wmfPolyRectangle_t::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfRGB.html000066400000000000000000000057171441723000300203470ustar00rootroot00000000000000 _wmfRGB struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfRGB Struct Reference


Data Fields

unsigned char r
unsigned char g
unsigned char b

Field Documentation

unsigned char _wmfRGB::b
 

unsigned char _wmfRGB::g
 

unsigned char _wmfRGB::r
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfROP__Draw__t.html000066400000000000000000000120671441723000300221670ustar00rootroot00000000000000 _wmfROP_Draw_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfROP_Draw_t Struct Reference


Data Fields

wmfDCdc
wmfD_Coord TL
wmfD_Coord BR
U32 ROP
double pixel_width
double pixel_height

Field Documentation

wmfD_Coord _wmfROP_Draw_t::BR
 

wmfDC* _wmfROP_Draw_t::dc
 

double _wmfROP_Draw_t::pixel_height
 

double _wmfROP_Draw_t::pixel_width
 

U32 _wmfROP_Draw_t::ROP
 

wmfD_Coord _wmfROP_Draw_t::TL
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfRecordBox.html000066400000000000000000000060741441723000300216210ustar00rootroot00000000000000 _wmfRecordBox struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfRecordBox Struct Reference


Data Fields

unsigned char * start
unsigned char * end
unsigned char * ptr

Field Documentation

unsigned char* _wmfRecordBox::end
 

unsigned char* _wmfRecordBox::ptr
 

unsigned char* _wmfRecordBox::start
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfStream.html000066400000000000000000000100721441723000300211560ustar00rootroot00000000000000 _wmfStream struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfStream Struct Reference


Data Fields

void * context
wmfSPutS sputs
wmfReset reset

Detailed Description

Structure describing user-definable character-based output stream.

wmf_stream_create() and wmf_ztream_create() both return pointers to wmfStream objects, but an application can create its own implementation if preferred.

typedef int (*wmfSPutS) (char* str,void* context);
typedef int (*wmfReset) (void* context);

wmfSPutS: writes string str; returns EOF on error, else 0.

wmfReset: resets stream to start; returns non-zero on failure.

context is a handle for user data


Field Documentation

void* _wmfStream::context
 

wmfReset _wmfStream::reset
 

wmfSPutS _wmfStream::sputs
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfUserData__t.html000066400000000000000000000050041441723000300221140ustar00rootroot00000000000000 _wmfUserData_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfUserData_t Struct Reference


Data Fields

wmfDCdc
void * data

Field Documentation

void* _wmfUserData_t::data
 

wmfDC* _wmfUserData_t::dc
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfWriteFileInfo.html000066400000000000000000000050551441723000300224360ustar00rootroot00000000000000 _wmfWriteFileInfo struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfWriteFileInfo Struct Reference


Data Fields

FILE * file
wmf_write_t type

Field Documentation

FILE* _wmfWriteFileInfo::file
 

wmf_write_t _wmfWriteFileInfo::type
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfXML__FontData.html000066400000000000000000000063351441723000300223110ustar00rootroot00000000000000 _wmfXML_FontData struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfXML_FontData Struct Reference


Data Fields

unsigned int max
unsigned int len
wmfXML_FontInfoFI

Field Documentation

wmfXML_FontInfo* _wmfXML_FontData::FI
 

unsigned int _wmfXML_FontData::len
 

unsigned int _wmfXML_FontData::max
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfXML__FontInfo.html000066400000000000000000000152541441723000300223330ustar00rootroot00000000000000 _wmfXML_FontInfo struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfXML_FontInfo Struct Reference


Data Fields

char * format
char * metrics
char * glyphs
char * name
char * fullname
char * familyname
char * weight
char * version
char * alias

Field Documentation

char* _wmfXML_FontInfo::alias
 

char* _wmfXML_FontInfo::familyname
 

char* _wmfXML_FontInfo::format
 

char* _wmfXML_FontInfo::fullname
 

char* _wmfXML_FontInfo::glyphs
 

char* _wmfXML_FontInfo::metrics
 

char* _wmfXML_FontInfo::name
 

char* _wmfXML_FontInfo::version
 

char* _wmfXML_FontInfo::weight
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmfXML__InputData.html000066400000000000000000000167521441723000300225060ustar00rootroot00000000000000 _wmfXML_InputData struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmfXML_InputData Struct Reference


Data Fields

wmfAPIAPI
char * cd_buffer
char * cd_bufptr
unsigned long cd_length
unsigned long cd_max
unsigned char * mem_buffer
unsigned char * mem_bufptr
unsigned long mem_length
unsigned long mem_max
int wmfxml

Field Documentation

wmfAPI* _wmfXML_InputData::API
 

char* _wmfXML_InputData::cd_buffer
 

char* _wmfXML_InputData::cd_bufptr
 

unsigned long _wmfXML_InputData::cd_length
 

unsigned long _wmfXML_InputData::cd_max
 

unsigned char* _wmfXML_InputData::mem_buffer
 

unsigned char* _wmfXML_InputData::mem_bufptr
 

unsigned long _wmfXML_InputData::mem_length
 

unsigned long _wmfXML_InputData::mem_max
 

int _wmfXML_InputData::wmfxml
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:54 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__eps__t.html000066400000000000000000000220331441723000300214720ustar00rootroot00000000000000 _wmf_eps_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_eps_t Struct Reference


Data Fields

wmfD_Rect bbox
wmfStreamout
char * Title
char * Creator
char * Date
char * For
int eps_x
int eps_y
unsigned int eps_width
unsigned int eps_height
unsigned int page_width
unsigned int page_height
unsigned long flags

Field Documentation

wmfD_Rect _wmf_eps_t::bbox
 

char* _wmf_eps_t::Creator
 

char* _wmf_eps_t::Date
 

unsigned int _wmf_eps_t::eps_height
 

unsigned int _wmf_eps_t::eps_width
 

int _wmf_eps_t::eps_x
 

int _wmf_eps_t::eps_y
 

unsigned long _wmf_eps_t::flags
 

char* _wmf_eps_t::For
 

wmfStream* _wmf_eps_t::out
 

unsigned int _wmf_eps_t::page_height
 

unsigned int _wmf_eps_t::page_width
 

char* _wmf_eps_t::Title
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__fig__t.html000066400000000000000000000271421441723000300214560ustar00rootroot00000000000000 _wmf_fig_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_fig_t Struct Reference


Data Fields

void * fig_data
wmfD_Rect bbox
wmfStreamout
char * Title
char * Creator
char * Date
char * For
unsigned int fig_x
unsigned int fig_y
unsigned int fig_width
unsigned int fig_height
wmf_page_t format
unsigned int dpi
int depth
int ddec
_wmf_fig_t::_wmf_fig_image image
unsigned long flags

Field Documentation

wmfD_Rect _wmf_fig_t::bbox
 

char* _wmf_fig_t::Creator
 

char* _wmf_fig_t::Date
 

int _wmf_fig_t::ddec
 

int _wmf_fig_t::depth
 

unsigned int _wmf_fig_t::dpi
 

void* _wmf_fig_t::fig_data
 

unsigned int _wmf_fig_t::fig_height
 

unsigned int _wmf_fig_t::fig_width
 

unsigned int _wmf_fig_t::fig_x
 

unsigned int _wmf_fig_t::fig_y
 

unsigned long _wmf_fig_t::flags
 

char* _wmf_fig_t::For
 

wmf_page_t _wmf_fig_t::format
 

struct _wmf_fig_t::_wmf_fig_image _wmf_fig_t::image
 

wmfStream* _wmf_fig_t::out
 

char* _wmf_fig_t::Title
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__fig__t_1_1__wmf__fig__image.html000066400000000000000000000051031441723000300254040ustar00rootroot00000000000000 _wmf_fig_t::_wmf_fig_image struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_fig_t::_wmf_fig_image Struct Reference


Data Fields

void * context
char *(* name )(void *)

Field Documentation

void* _wmf_fig_t::_wmf_fig_image::context
 

char*(* _wmf_fig_t::_wmf_fig_image::name)(void*)
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__foreign__t.html000066400000000000000000000035761441723000300223470ustar00rootroot00000000000000 _wmf_foreign_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_foreign_t Struct Reference


Data Fields

unsigned long flags

Field Documentation

unsigned long _wmf_foreign_t::flags
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__gd__t.html000066400000000000000000000166071441723000300213070ustar00rootroot00000000000000 _wmf_gd_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_gd_t Struct Reference


Data Fields

wmf_gd_subtype type
void * gd_data
FILE * file
char * memory
_wmf_gd_t::_wmf_gd_sink sink
void * gd_image
unsigned int width
unsigned int height
wmfD_Rect bbox
unsigned long flags

Field Documentation

wmfD_Rect _wmf_gd_t::bbox
 

FILE* _wmf_gd_t::file
 

unsigned long _wmf_gd_t::flags
 

void* _wmf_gd_t::gd_data
 

void* _wmf_gd_t::gd_image
 

unsigned int _wmf_gd_t::height
 

char* _wmf_gd_t::memory
 

struct _wmf_gd_t::_wmf_gd_sink _wmf_gd_t::sink
 

wmf_gd_subtype _wmf_gd_t::type
 

unsigned int _wmf_gd_t::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__gd__t_1_1__wmf__gd__sink.html000066400000000000000000000053771441723000300247550ustar00rootroot00000000000000 _wmf_gd_t::_wmf_gd_sink struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_gd_t::_wmf_gd_sink Struct Reference


Data Fields

void * context
int(* function )(void *context, char *buffer, int length)

Field Documentation

void* _wmf_gd_t::_wmf_gd_sink::context
 

int(* _wmf_gd_t::_wmf_gd_sink::function)(void* context,char* buffer,int length)
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__magick__t.html000066400000000000000000000123151441723000300221400ustar00rootroot00000000000000 _wmf_magick_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_magick_t Struct Reference


Data Fields

wmfD_Rect bbox
wmfStreamout
unsigned int width
unsigned int height
_wmf_magick_t::_wmf_magick_image image
unsigned long flags

Field Documentation

wmfD_Rect _wmf_magick_t::bbox
 

unsigned long _wmf_magick_t::flags
 

unsigned int _wmf_magick_t::height
 

struct _wmf_magick_t::_wmf_magick_image _wmf_magick_t::image
 

wmfStream* _wmf_magick_t::out
 

unsigned int _wmf_magick_t::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__magick__t_1_1__wmf__magick__image.html000066400000000000000000000051711441723000300265650ustar00rootroot00000000000000 _wmf_magick_t::_wmf_magick_image struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_magick_t::_wmf_magick_image Struct Reference


Data Fields

void * context
char *(* name )(void *)

Field Documentation

void* _wmf_magick_t::_wmf_magick_image::context
 

char*(* _wmf_magick_t::_wmf_magick_image::name)(void*)
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__plot__t.html000066400000000000000000000130551441723000300216650ustar00rootroot00000000000000 _wmf_plot_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_plot_t Struct Reference


Data Fields

wmf_plot_subtype type
void * plot_data
FILE * file
unsigned int width
unsigned int height
wmfD_Rect bbox
unsigned long flags

Field Documentation

wmfD_Rect _wmf_plot_t::bbox
 

FILE* _wmf_plot_t::file
 

unsigned long _wmf_plot_t::flags
 

unsigned int _wmf_plot_t::height
 

void* _wmf_plot_t::plot_data
 

wmf_plot_subtype _wmf_plot_t::type
 

unsigned int _wmf_plot_t::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__svg__t.html000066400000000000000000000133221441723000300215030ustar00rootroot00000000000000 _wmf_svg_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_svg_t Struct Reference


Data Fields

wmfD_Rect bbox
wmfStreamout
char * Description
unsigned int width
unsigned int height
_wmf_svg_t::_wmf_svg_image image
unsigned long flags

Field Documentation

wmfD_Rect _wmf_svg_t::bbox
 

char* _wmf_svg_t::Description
 

unsigned long _wmf_svg_t::flags
 

unsigned int _wmf_svg_t::height
 

struct _wmf_svg_t::_wmf_svg_image _wmf_svg_t::image
 

wmfStream* _wmf_svg_t::out
 

unsigned int _wmf_svg_t::width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__svg__t_1_1__wmf__svg__image.html000066400000000000000000000051031441723000300254700ustar00rootroot00000000000000 _wmf_svg_t::_wmf_svg_image struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_svg_t::_wmf_svg_image Struct Reference


Data Fields

void * context
char *(* name )(void *)

Field Documentation

void* _wmf_svg_t::_wmf_svg_image::context
 

char*(* _wmf_svg_t::_wmf_svg_image::name)(void*)
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__template__t.html000066400000000000000000000050731441723000300225230ustar00rootroot00000000000000 _wmf_template_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_template_t Struct Reference


Data Fields

wmfD_Rect bbox
unsigned long flags

Field Documentation

wmfD_Rect _wmf_template_t::bbox
 

unsigned long _wmf_template_t::flags
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/struct__wmf__x__t.html000066400000000000000000000374341441723000300211650ustar00rootroot00000000000000 _wmf_x_t struct Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

_wmf_x_t Struct Reference


Data Fields

char * display_name
char * window_name
char * icon_name
Display * display
Window root
Window window
Pixmap pixmap
Pixmap hatch
Pixmap brush
Visual * visual
int depth
int class
Colormap colormap
unsigned long black
unsigned long white
unsigned long * color
struct {
   unsigned long   red
   unsigned long   green
   unsigned long   blue
mask
GC gc
unsigned int x_width
unsigned int x_height
wmfD_Rect bbox
unsigned long flags

Field Documentation

wmfD_Rect _wmf_x_t::bbox
 

unsigned long _wmf_x_t::black
 

unsigned long _wmf_x_t::blue
 

Pixmap _wmf_x_t::brush
 

int _wmf_x_t::class
 

unsigned long* _wmf_x_t::color
 

Colormap _wmf_x_t::colormap
 

int _wmf_x_t::depth
 

Display* _wmf_x_t::display
 

char* _wmf_x_t::display_name
 

unsigned long _wmf_x_t::flags
 

GC _wmf_x_t::gc
 

unsigned long _wmf_x_t::green
 

Pixmap _wmf_x_t::hatch
 

char* _wmf_x_t::icon_name
 

struct { ... } _wmf_x_t::mask
 

Pixmap _wmf_x_t::pixmap
 

unsigned long _wmf_x_t::red
 

Window _wmf_x_t::root
 

Visual* _wmf_x_t::visual
 

unsigned long _wmf_x_t::white
 

Window _wmf_x_t::window
 

char* _wmf_x_t::window_name
 

unsigned int _wmf_x_t::x_height
 

unsigned int _wmf_x_t::x_width
 


The documentation for this struct was generated from the following file:
Generated on Tue Dec 10 19:53:53 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/svg_2bmp_8h.html000066400000000000000000000020411441723000300175610ustar00rootroot00000000000000 svg/bmp.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

bmp.h File Reference


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/svg_2device_8h.html000066400000000000000000000020471441723000300202500ustar00rootroot00000000000000 svg/device.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

device.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/svg_2draw_8h.html000066400000000000000000000020431441723000300177420ustar00rootroot00000000000000 svg/draw.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

draw.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/svg_8c.html000066400000000000000000000041361441723000300166430ustar00rootroot00000000000000 svg.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

svg.c File Reference


Functions

void wmf_svg_function (wmfAPI *API)

Function Documentation

void wmf_svg_function wmfAPI   API
 


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/svg_8h.html000066400000000000000000000117441441723000300166530ustar00rootroot00000000000000 svg.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

svg.h File Reference


Data Structures

struct  _wmf_svg_image
struct  _wmf_svg_t

Defines

#define WMF_SVG_GetData(Z)   ((wmf_svg_t*)((Z)->device_data))
#define WMF_SVG_INLINE_IMAGES   (1 << 0)

Typedefs

typedef _wmf_svg_t wmf_svg_t

Functions

void wmf_svg_function (wmfAPI *)

Define Documentation

#define WMF_SVG_GetData      ((wmf_svg_t*)((Z)->device_data))
 

#define WMF_SVG_INLINE_IMAGES   (1 << 0)
 


Typedef Documentation

typedef struct _wmf_svg_t wmf_svg_t
 


Function Documentation

void wmf_svg_function wmfAPI  
 


Generated on Tue Dec 10 19:53:51 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/template_8c.html000066400000000000000000001107501441723000300176570ustar00rootroot00000000000000 template.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

template.c File Reference


Functions

void wmf_template_function (wmfAPI *API)
void wmf_template_device_open (wmfAPI *API)
void wmf_template_device_close (wmfAPI *API)
void wmf_template_device_begin (wmfAPI *API)
void wmf_template_device_end (wmfAPI *API)
void wmf_template_flood_interior (wmfAPI *API, wmfFlood_t *flood)
void wmf_template_flood_exterior (wmfAPI *API, wmfFlood_t *flood)
void wmf_template_draw_pixel (wmfAPI *API, wmfDrawPixel_t *drawpixel)
void wmf_template_draw_pie (wmfAPI *API, wmfDrawArc_t *drawarc)
void wmf_template_draw_chord (wmfAPI *API, wmfDrawArc_t *drawarc)
void wmf_template_draw_arc (wmfAPI *API, wmfDrawArc_t *drawarc)
void wmf_template_draw_ellipse (wmfAPI *API, wmfDrawArc_t *drawarc)
void wmf_template_draw_line (wmfAPI *API, wmfDrawLine_t *drawline)
void wmf_template_poly_line (wmfAPI *API, wmfPolyLine_t *polyline)
void wmf_template_draw_polygon (wmfAPI *API, wmfPolyLine_t *polyline)
void wmf_template_draw_rectangle (wmfAPI *API, wmfDrawRectangle_t *drawrectangle)
void wmf_template_rop_draw (wmfAPI *API, wmfROP_Draw_t *ropdraw)
void wmf_template_bmp_draw (wmfAPI *API, wmfBMP_Draw_t *bmpdraw)
void wmf_template_bmp_read (wmfAPI *API, wmfBMP_Read_t *bmpread)
void wmf_template_bmp_free (wmfAPI *API, wmfBMP *bmp)
void wmf_template_draw_text (wmfAPI *API, wmfDrawText_t *drawtext)
void wmf_template_udata_init (wmfAPI *API, wmfUserData_t *userdata)
void wmf_template_udata_copy (wmfAPI *API, wmfUserData_t *userdata)
void wmf_template_udata_set (wmfAPI *API, wmfUserData_t *userdata)
void wmf_template_udata_free (wmfAPI *API, wmfUserData_t *userdata)
void wmf_template_region_frame (wmfAPI *API, wmfPolyRectangle_t *polyrectangle)
void wmf_template_region_paint (wmfAPI *API, wmfPolyRectangle_t *polyrectangle)
void wmf_template_region_clip (wmfAPI *API, wmfPolyRectangle_t *polyrectangle)

Function Documentation

void wmf_template_bmp_draw wmfAPI   API,
wmfBMP_Draw_t   bmpdraw
 

void wmf_template_bmp_free wmfAPI   API,
wmfBMP   bmp
 

void wmf_template_bmp_read wmfAPI   API,
wmfBMP_Read_t   bmpread
 

void wmf_template_device_begin wmfAPI   API
 

void wmf_template_device_close wmfAPI   API
 

void wmf_template_device_end wmfAPI   API
 

void wmf_template_device_open wmfAPI   API
 

void wmf_template_draw_arc wmfAPI   API,
wmfDrawArc_t   drawarc
 

void wmf_template_draw_chord wmfAPI   API,
wmfDrawArc_t   drawarc
 

void wmf_template_draw_ellipse wmfAPI   API,
wmfDrawArc_t   drawarc
 

void wmf_template_draw_line wmfAPI   API,
wmfDrawLine_t   drawline
 

void wmf_template_draw_pie wmfAPI   API,
wmfDrawArc_t   drawarc
 

void wmf_template_draw_pixel wmfAPI   API,
wmfDrawPixel_t   drawpixel
 

void wmf_template_draw_polygon wmfAPI   API,
wmfPolyLine_t   polyline
 

void wmf_template_draw_rectangle wmfAPI   API,
wmfDrawRectangle_t   drawrectangle
 

void wmf_template_draw_text wmfAPI   API,
wmfDrawText_t   drawtext
 

void wmf_template_flood_exterior wmfAPI   API,
wmfFlood_t   flood
 

void wmf_template_flood_interior wmfAPI   API,
wmfFlood_t   flood
 

void wmf_template_function wmfAPI   API
 

void wmf_template_poly_line wmfAPI   API,
wmfPolyLine_t   polyline
 

void wmf_template_region_clip wmfAPI   API,
wmfPolyRectangle_t   polyrectangle
 

void wmf_template_region_frame wmfAPI   API,
wmfPolyRectangle_t   polyrectangle
 

void wmf_template_region_paint wmfAPI   API,
wmfPolyRectangle_t   polyrectangle
 

void wmf_template_rop_draw wmfAPI   API,
wmfROP_Draw_t   ropdraw
 

void wmf_template_udata_copy wmfAPI   API,
wmfUserData_t   userdata
 

void wmf_template_udata_free wmfAPI   API,
wmfUserData_t   userdata
 

void wmf_template_udata_init wmfAPI   API,
wmfUserData_t   userdata
 

void wmf_template_udata_set wmfAPI   API,
wmfUserData_t   userdata
 


Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/template_8h.html000066400000000000000000000104371441723000300176650ustar00rootroot00000000000000 template.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

template.h File Reference


Data Structures

struct  _wmf_template_t

Defines

#define WMF_TEMPLATE_GetData(Z)   ((wmf_template_t*)((Z)->device_data))

Typedefs

typedef _wmf_template_t wmf_template_t

Functions

void wmf_template_function (wmfAPI *)

Define Documentation

#define WMF_TEMPLATE_GetData      ((wmf_template_t*)((Z)->device_data))
 


Typedef Documentation

typedef struct _wmf_template_t wmf_template_t
 


Function Documentation

void wmf_template_function wmfAPI  
 


Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/types_8h.html000066400000000000000000001013531441723000300172140ustar00rootroot00000000000000 types.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

types.h File Reference


Data Structures

struct  _wmfAPI
struct  _wmfAPI_Options
struct  _wmfAttributes
struct  _wmfAttributeStore
struct  _wmfD_Coord
struct  _wmfD_Rect
struct  _wmfFontMap
struct  _wmfHead
struct  _wmfImage
struct  _wmfMapping
struct  _wmfMetaHeader
struct  _wmfPlaceableMetaHeader
struct  _wmfStream

Defines

#define WMF_ERROR_STATE(Z)   (((wmfAPI*)(Z))->err)
#define WMF_READ(Z)   ((Z)->bbuf.read ((Z)->buffer_data))
#define WMF_SEEK(Z, P)   ((Z)->bbuf.seek ((Z)->buffer_data,P))
#define WMF_TELL(Z)   ((Z)->bbuf.tell ((Z)->buffer_data))

Typedefs

typedef enum _wmf_bool_t wmf_bool_t
typedef enum _wmf_error_t wmf_error_t
typedef enum _wmf_page_t wmf_page_t
typedef enum _wmf_image_t wmf_image_t
typedef int(* wmfRead )(void *)
typedef int(* wmfSeek )(void *, long)
typedef long(* wmfTell )(void *)
typedef int(* wmfSPutS )(char *, void *)
typedef int(* wmfReset )(void *)
typedef int(* wmfStatus )(void *context, float fraction)
typedef _wmfD_Coord wmfD_Coord
typedef _wmfD_Rect wmfD_Rect
typedef _wmfMapping wmfMapping
typedef _wmfFontMap wmfFontMap
typedef _wmfHead wmfHead
typedef _wmfMetaHeader wmfMetaHeader * wmfFile
typedef _wmfPlaceableMetaHeader wmfPlaceableMetaHeader
typedef _wmfAPI_Options wmfAPI_Options
typedef _wmfAPI wmfAPI
typedef _wmfStream wmfStream
typedef _wmfImage wmfImage
typedef _wmfAttributes wmfAttributes
typedef _wmfAttributeStore wmfAttributeStore

Enumerations

enum  _wmf_bool_t {
  wmf_false = 0,
  wmf_true
}
enum  _wmf_error_t {
  wmf_E_None = 0,
  wmf_E_InsMem,
  wmf_E_BadFile,
  wmf_E_BadFormat,
  wmf_E_EOF,
  wmf_E_DeviceError,
  wmf_E_Glitch,
  wmf_E_Assert,
  wmf_E_UserExit
}
enum  _wmf_page_t {
  wmf_P_A5,
  wmf_P_A4,
  wmf_P_A3,
  wmf_P_A2,
  wmf_P_A1,
  wmf_P_A0,
  wmf_P_B5,
  wmf_P_Letter,
  wmf_P_Legal,
  wmf_P_Ledger,
  wmf_P_Tabloid
}
enum  _wmf_image_t { wmf_I_gd }

Define Documentation

#define WMF_ERROR_STATE      (((wmfAPI*)(Z))->err)
 

WMF_ERROR_STATE(wmfAPI* API) -> (wmf_error_t) library error state

#define WMF_READ      ((Z)->bbuf.read ((Z)->buffer_data))
 

#define WMF_SEEK Z,
     ((Z)->bbuf.seek ((Z)->buffer_data,P))
 

#define WMF_TELL      ((Z)->bbuf.tell ((Z)->buffer_data))
 


Typedef Documentation

typedef enum _wmf_bool_t wmf_bool_t
 

wmf_bool_t is the (enumeration) type used for boolean

typedef enum _wmf_error_t wmf_error_t
 

wmf_error_t is the (enumeration) type used for the library error state.

typedef enum _wmf_image_t wmf_image_t
 

wmf_image_t is the (enumeration) type used to indicate image type.

typedef enum _wmf_page_t wmf_page_t
 

wmf_page_t is the (enumeration) type used to indicate page size.

typedef struct _wmfAPI wmfAPI
 

typedef struct _wmfAPI_Options wmfAPI_Options
 

typedef struct _wmfAttributes wmfAttributes
 

typedef struct _wmfAttributeStore wmfAttributeStore
 

typedef struct _wmfD_Coord wmfD_Coord
 

typedef struct _wmfD_Rect wmfD_Rect
 

typedef struct _wmfMetaHeader wmfMetaHeader* wmfFile
 

typedef struct _wmfFontMap wmfFontMap
 

typedef struct _wmfHead wmfHead
 

typedef struct _wmfImage wmfImage
 

typedef struct _wmfMapping wmfMapping
 

typedef struct _wmfPlaceableMetaHeader wmfPlaceableMetaHeader
 

typedef int(* wmfRead)(void*)
 

User redefinable function for input-stream access:

wmfRead: returns unsigned char cast to int, or EOF

See wmf_bbuf_input().

typedef int(* wmfReset)(void*)
 

User redefinable function for character-based output-stream:

wmfReset: resets stream to start; returns non-zero on failure

See wmfStream.

typedef int(* wmfSeek)(void*,long)
 

User redefinable function for input-stream access:

wmfSeek: returns (-1) on error, else 0

See wmf_bbuf_input().

typedef int(* wmfSPutS)(char*,void*)
 

User redefinable function for character-based output-stream:

wmfSPutS: returns EOF on error, else 0

See wmfStream.

typedef int(* wmfStatus)(void* context,float fraction)
 

User definable function indicating progress.

Parameters:
context  handle for user data
fraction  fraction of metafile parsed so far
Returns:
Should return non-zero only if premature exit is required for whatever reason.
See wmf_status_function().

typedef struct _wmfStream wmfStream
 

typedef long(* wmfTell)(void*)
 

User redefinable function for input-stream access:

wmfTell: returns (-1) on error, else pos

See wmf_bbuf_input().


Enumeration Type Documentation

enum _wmf_bool_t
 

wmf_bool_t is the (enumeration) type used for boolean

Enumeration values:
wmf_false  False
wmf_true  True

enum _wmf_error_t
 

wmf_error_t is the (enumeration) type used for the library error state.

Enumeration values:
wmf_E_None  No error.
wmf_E_InsMem  An attempt to allocate memory has failed.
wmf_E_BadFile  Attempt to open an unreadable file, or to read from an unopened file.
wmf_E_BadFormat  The metafile, if indeed it is a metafile, has been corrupted.
wmf_E_EOF  An unexpected end-of-file has been reached.
wmf_E_DeviceError  Device-layer error.
wmf_E_Glitch  Programmer's error. Sorry.
wmf_E_Assert  Internally forced error.
wmf_E_UserExit  The status function has returned non-zero; exit is premature.

enum _wmf_image_t
 

wmf_image_t is the (enumeration) type used to indicate image type.

Enumeration values:
wmf_I_gd 

enum _wmf_page_t
 

wmf_page_t is the (enumeration) type used to indicate page size.

Enumeration values:
wmf_P_A5  A5 (420 x 595)
wmf_P_A4  A4 (595 x 842)
wmf_P_A3  A3 (842 x 1191)
wmf_P_A2  A2 (1191 x 1684)
wmf_P_A1  A1 (1684 x 2384)
wmf_P_A0  A0 (2384 x 3370)
wmf_P_B5  B5 (516 x 729)
wmf_P_Letter  Letter (612 x 792)
wmf_P_Legal  Legal (612 x 1008)
wmf_P_Ledger  Ledger (1224 x 792)
wmf_P_Tabloid  Tabloid (792 x 1224)


Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/wmf_8c.html000066400000000000000000000162621441723000300166400ustar00rootroot00000000000000 wmf.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

wmf.c File Reference


Functions

wmf_error_t wmf_api_create (wmfAPI **API_return, unsigned long flags, wmfAPI_Options *options)
wmf_error_t wmf_api_destroy (wmfAPI *API)
char * wmf_help ()

Function Documentation

wmf_error_t wmf_api_create wmfAPI **    API_return,
unsigned long    flags,
wmfAPI_Options   options
 

Creates and initializes an instance of the libwmf library for a specified device layer.

Parameters:
API_return  pointer to a wmfAPI* (the API handle use henceforth)
flags  bitwise OR of WMF_OPT_ options
options  pointer to wmfAPI_Options structure
This is the first and necessary step when using libwmf. Options are passed via the wmfAPI_Options structure and flags. wmf_api_create allocates the wmfAPI structure and initializes the color and font tables, the metafile player, and the device layer. If successful then the pointer to the wmfAPI structure is returned via API_return, otherwise all allocated memory is released and the library exits with an appropriate error.

Returns:
The error state of the library: wmf_E_None indicates successful creation and initialization of the library, and *API_return will be non-zero. For any other error value *API_return will be zero.

wmf_error_t wmf_api_destroy wmfAPI   API
 

Close the device layer, if open, and release all allocated memory attached to the memory manager.

Parameters:
API  the API handle
Returns:
The final error state of the library.

char* wmf_help void   
 

 
Additional wmf-related options:

  --wmf-error[=yes|no]            switch for error reports.
  --wmf-debug[=yes|no]            switch for debug reports, if any.
  --wmf-ignore-nonfatal[=yes|no]  switch to ignore (some) non-fatal errors.
  --wmf-diagnostics               emit diagnostic information.
  --wmf-fontdir=<path>            add <path> to list of font directories.
  --wmf-sys-fonts                 use system fonts, if any found.
  --wmf-sys-fontmap=<file>        use system xml-fontmap file <file>.
  --wmf-xtra-fonts                use non-system fonts, if any found.
  --wmf-xtra-fontmap=<file>       use non-system xml-fontmap file <file>.
  --wmf-gs-fontmap=<file>         use ghostscript file <file>.
  --wmf-write=<file>              write metafile to <file>.

Report bugs to <http://www.wvware.com/>.

Returns:
Returns the above as a string.


Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/x_2bmp_8h.html000066400000000000000000000020371441723000300172360ustar00rootroot00000000000000 x/bmp.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

bmp.h File Reference


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/x_2device_8h.html000066400000000000000000000020451441723000300177160ustar00rootroot00000000000000 x/device.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

device.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/x_2draw_8h.html000066400000000000000000000020411441723000300174100ustar00rootroot00000000000000 x/draw.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

draw.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/x_8c.html000066400000000000000000000041201441723000300163040ustar00rootroot00000000000000 x.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

x.c File Reference


Functions

void wmf_x_function (wmfAPI *API)

Function Documentation

void wmf_x_function wmfAPI   API
 


Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/x_8h.html000066400000000000000000000213321441723000300163150ustar00rootroot00000000000000 x.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

x.h File Reference


Data Structures

struct  _wmf_x_t

Defines

#define WMF_X_GetData(Z)   ((wmf_x_t*)(((wmfAPI*)Z)->device_data))
#define WMF_X_DISPLAY_OPEN   (1 << 0)
#define WMF_X_DISPLAY_CLOSE   (1 << 1)
#define WMF_X_WINDOW_OPEN   (1 << 2)
#define WMF_X_WINDOW_CLOSE   (1 << 3)
#define WMF_X_PIXMAP_OPEN   (1 << 4)
#define WMF_X_PIXMAP_CLOSE   (1 << 5)
#define WMF_X_CMAP_DESTROY   (1 << 7)

Typedefs

typedef _wmf_x_t wmf_x_t

Functions

void wmf_x_function (wmfAPI *)

Define Documentation

#define WMF_X_CMAP_DESTROY   (1 << 7)
 

#define WMF_X_DISPLAY_CLOSE   (1 << 1)
 

#define WMF_X_DISPLAY_OPEN   (1 << 0)
 

#define WMF_X_GetData      ((wmf_x_t*)(((wmfAPI*)Z)->device_data))
 

#define WMF_X_PIXMAP_CLOSE   (1 << 5)
 

#define WMF_X_PIXMAP_OPEN   (1 << 4)
 

#define WMF_X_WINDOW_CLOSE   (1 << 3)
 

#define WMF_X_WINDOW_OPEN   (1 << 2)
 


Typedef Documentation

typedef struct _wmf_x_t wmf_x_t
 


Function Documentation

void wmf_x_function wmfAPI  
 


Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/xgd_2bmp_8h.html000066400000000000000000000020411441723000300175440ustar00rootroot00000000000000 xgd/bmp.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

bmp.h File Reference


Generated on Tue Dec 10 19:53:48 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/xgd_2device_8h.html000066400000000000000000000020471441723000300202330ustar00rootroot00000000000000 xgd/device.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

device.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/xgd_2draw_8h.html000066400000000000000000000020431441723000300177250ustar00rootroot00000000000000 xgd/draw.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

draw.h File Reference


Generated on Tue Dec 10 19:53:49 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/xgd_8c.html000066400000000000000000000064601441723000300166300ustar00rootroot00000000000000 xgd.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

xgd.c File Reference


Functions

void wmf_gd_function (wmfAPI *API)
int * wmf_gd_image_pixels (void *gd_image)

Function Documentation

void wmf_gd_function wmfAPI   API
 

int* wmf_gd_image_pixels void *    gd_image
 

If using the wmf_gd_image option to write to a GD image, collected from the void* gd_image member of the device data struct above, the true-color pixels (stored in a contiguous array of height * width integers) of the image can be retrieved using wmf_gd_image_pixels()


Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/xml_8c.html000066400000000000000000000020351441723000300166400ustar00rootroot00000000000000 xml.c File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

xml.c File Reference


Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/html/xml_8h.html000066400000000000000000000040671441723000300166540ustar00rootroot00000000000000 xml.h File Reference
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

xml.h File Reference


Data Structures

struct  _wmfXML_InputData

Typedefs

typedef _wmfXML_InputData wmfXML_InputData

Typedef Documentation

typedef struct _wmfXML_InputData wmfXML_InputData
 


Generated on Tue Dec 10 19:53:52 2002 for libwmf by doxygen1.2.18
libwmf-0.2.13/doc/index.html000066400000000000000000000073021441723000300156130ustar00rootroot00000000000000 libwmf: Index to Documentation

libwmf

Index to Documentation

Frequently Asked Questions

  1. Fonts
    1. How come there are only 13 fonts?
    2. So, how do I add more fonts?
    3. I don't understand XML. Isn't there an easy way to do this?
    4. What types of font are supported?

  1. Fonts
    1. How come there are only 13 fonts?

      Postscript has 13 standard fonts (or only four, depending on your perspective): Helvetica (optionally bold and/or italic), Times (optionally bold and/or italic), Courier (optionally bold and/or italic), and Symbol. The decision was taken to support these 13 fonts for all outputs from libwmf2, but also to provide mechanisms for adding other fonts.

    2. So, how do I add more fonts?

      RedHat Linux systems, and probably other RPM-based distributions as well, have a `fontmap' file in /usr/share/fonts which lists a large number fonts. libwmf has a mechanism for reading files that have this XML format. In fact, libwmf looks for two such files, a system fontmap and a non-system (or `xtra') fontmap, but only if asked to!

      If you use wmf2x, for example, with the command line option --wmf-sys-fonts then libwmf will search for fonts in the system fontmap file. Similarly, if you specify the command line option --wmf-xtra-fonts then libwmf will search for fonts in the non-system fontmap file. The default locations of these files is specified at compilation time, but can also be specified at run time through the use of the command line options --wmf-sys-fontmap=fontmap and --wmf-xtra-fontmap=fontmap.

      Warning:If you use non-system fonts with wmf2eps, ghostscript (or whatever postscript interpreter you use) may not be able to find all the fonts; the problem is even worse if you want other people to be able to view the image, because only the 13 standard fonts are guaranteed to be supported.

    3. I don't understand XML. Isn't there an easy way to do this?

      There is a utility called libwmf-fontmap that hunts through directories for fonts and creates a custom fontmap file. Just type:

      libwmf-fontmap --map=fontmap directory1 directory2 ...

    4. What types of font are supported?

      libwmf uses freetype (2) for loading fonts and therefore supports all fonts that freetype knows, this includes postscript fonts (font.afm & font.pfa pairs or font.afm & font.pfb pairs) and true-type fonts (font.ttf) and many others.

libwmf-0.2.13/doc/smlogo2.gif000066400000000000000000000054211441723000300156670ustar00rootroot00000000000000GIF89a¬@÷           !" #!$"%"&#'$(%)&*' +( ,)!-)".*#/+#/,$0-%1.%2/&3/'40(51(62)73*84*95+:6,;6-<7-=8.>9/?:/?;0@<1A=1B=2C>3D?4E@4FA5GB6HC6IC7JD8KE9LF9MG:NH;OI;OJRL>SM?TN@UO@VPAWQBXQCYRCZSD[TE\UE]VF^WG^WG_XH`YIaZJb[Jc\Kd]Le^Lf^Mg_Nh`OiaOjbPkcQldQmeRneSnfTogTphUqiVrjVskWtlXulYvmYwnZxo[yp[zq\{r]|r^}s^~t_~u`v`€waxb‚ybƒyc„zd…{e†|e‡}fˆ~g‰gŠ€h‹€iŒj‚jƒkŽ„l…l†m‘†n’‡o“ˆo”‰p•Šq–‹q—Œr˜s™tšŽt›uœv‘v’wž“xŸ”x ”y¡•z¢–{£—{¤˜|¥™}¦š}§š~¨›©œ€ª€«ž¬Ÿ‚­ ‚­¡ƒ®¡„¯¢…°£…±¤†²¥‡³¦‡´§ˆµ¨‰¶¨Š·©Š¸ª‹¹«Œº¬Œ»­¼®Ž¼®Ž½¯¾°¿±‘À²‘Á³’´“õ“ĵ”Ŷ•Æ·–Ǹ–ȹ—ɺ˜Ê»˜Ë¼™Ì¼šÌ½›Í¾›Î¿œÏÀÐÁÑžÒßÓàÔÄ Õš֯¢×Ç¢ØÈ£ÙɤÚÉ¥ÛÊ¥Ü˦Ü̧ÝͧÞΨßÏ©àЩáЪâÑ«ãÒ¬äÓ¬åÔ­æÕ®çÖ®èׯé×°êØ±ëÙ±ëÚ²ìÛ³íܳîÝ´ïݵðÞ¶!ùÿ,¬@@þÿ H° Áƒ*\Ȱ¡Ã‡#JœH±¢Å‹3jÜȱ£ÇýÕAñÁ@¨€¥ÜÁtqDÐe•>§´¤GÏy9-šDÉ&Uü–"B$Ë DR¤˜±¢Å B|ˆQ@pè¤ÑâåÈ9Ì $bÁ…qúÛжà Jýa+¤£C@hñG°œž 4JGpS¤æ!ü¦§ »zÛ¼åcè/aƒíP5:”mà¼W»¸R‡;ù£„ B(FŽTÂJ-° âH!sxçHa ÁG"Ž(Éwl1ßDŒ‘FtøÈq¼!?¯¨ñÉ>úƒŽ6Ü$…Ð>éLÎM )äDiä‘H&©ä’L6éä“PF)å”T´.TÇe¤N—ùQÐ:\ÆŠ?#\6ÀA~¼ÖÍ?Þ$0ÁÜ×Ìk¿ tß?\Æ‚Ca\†‡B6\6 Ddp‰ŸwÿH“ÀeµDIxçüS µðRèe.paW.°§@¬\vˆl5\Ã?“\vGAþ‡\ÖÃ@ÔÀܨä@P›Z­B®PƒC_\† Aé̱Ì@4(:6hð:JPŠ@ÎØš€3Eó‹?^ AþlŠ×?» KŒÒr™UÆ+ï¼ôÖkï½øæ«ï¾üöëï¿,ðÀlðÁ1rÙ6í£ÃepHü@à€ âü£µ—ÝVЯB˜?W¼ÆB,â¼V%\Ö@.|^–Ä?ýÀSM&@PlGAx\f„BM\DÝhPñ8^Z @ý×}qÎ’0À©õö€èH  ´S›AÎ\6E/ÔPÀwÔób —}0ª@‰`Ãþ?Nk­#A¼¦MB·¸|P—9ñÏ7k FB`šP¹†>ÄÅeO(dΗa> \†—+Ð,Ð,eZrŸ*—q`0—RP;º°K'—A0¹Í0ÎÔðÄÝ×¼ö8B—\¶€>wÿSÈe4„à aq™" ™-áÀŒ%¤ÅeYô ŶÿÓ Ò%ì qY"ÙƒI—1p‹@ôLñý¸À PbUx &@‚À ²Ð:.,ˆI k¸Œš÷>\&8ÓF%¢ €Rƒ I¸L ,ÁôàñÀe@±øFÁße& '@`&þœX9Pq‚ PïÙJ‰b"ÀA{¸â $J¸Œ€„°.zñ‹` £ÇHÆ2šñŒhL£×ÈÆ6ºñpŒ£çHÇ:ÚñŽxÌ£Æw؃ûÀGCÄa(d™¦xH0 £‘$eÒlä?ŠwšÅ¾øG>a+ŒàbÿÐÅe<`±@ëȘr ‡g¼H&ÂAèp™ì#ô è@>AO^d èdAæp™”—8þBÌp=(d—!ÅCp €2(d¯áÚ$Å €â௠Ȗv#_àVºÌ â"\¦ þPÃepËà]}nÉEŒ×€"!­€ZZ6}ï^Ð@ùïb/!ÇÁÔC¢=…ôc98AöaKú±. ÙÄeF`V˜J ‰Üeqß!Ëð¢ Ú€ºô¯5 |‘ÇZ{È¿>!ø¬˜C†€H(VH7BÖ؃n°-„ï¶>4`w‰*<@#ÅÎB!µ¸ b‰ÅTÂ?üX‡žù€z™A>¼ »ñ0@À€Gåx ݈õ@š € <8Á¨Ú‰T” T+Ò 3”2®™Áe®1efPá‡ÑˆÆê6C\æ•6$€°c(Â:RŒË¼ ÿ8n¤‰Ët  ¹XÀe@#€@ÀРZ{"6ÀÖj~d @‚@ ¥£øÓAà \£„UG¶ê#t@þ™Àµþ ðÒ7Pˆ/~øíËìA „x͹ B/` ‹Àª1ªsÜáèË&êˆ=Ü÷ ˸BÒÀ…7Å‘¾zBøÎð†;üá¸Ä'NñŠ[üâÏx;libwmf-0.2.13/doc/tutapi.html000066400000000000000000000556171441723000300160260ustar00rootroot00000000000000 libwmf-0.2.0 Tutorial 1: The API

libwmf-0.2.0 Tutorial 1: The API

Contents

Introduction

The figure below illustrates the tripartite division of application, interpreter, and device layer. The internal workings of each of the three is irrelevant; all that matters is the three interfaces which are separate. The core of libwmf is the interpreter, and as such only the interfaces between (a) the interpreter and the application - the API - and (b) the interpreter and the device layer - the IPA - are defined. Applications that wish to implement their own new device layer are free therefore to define whatever interface is suitable.

libwmf includes two device layers: eps for conversion to EPS (Encapsulated Postscript) or PS (Postscript); and gd for conversion to PNG or JPEG image formats. Included with libwmf are converters for these: wmf2eps and wmf2gd respectively. The source-code for these is an excellent place to see how to use the various features of the API and device-layer interfaces.

Header Files

All libwmf header files are now in a libwmf subdirectory. In general you will need to include two. Unless you are writing a new device layer, which will be discussed later, you should include only libwmf/api.h and the header for whichever device layer you are interested in, for example:

#include <libwmf/api.h>
#include <libwmf/gd.h>

The gd device layer uses the GD library, included with libwmf, to output images in PNG (or possibly in JPEG) format. Alternatively, if you wish the output to be in PS or EPS format, you would include:

#include <libwmf/api.h>
#include <libwmf/eps.h>

Creating The API

For each metafile you wish to process and convert to a given image type, you must create an instance of the API. This can be sophisticated or simple. In its simplest form, the only thing that needs to be specified is which device layer you wish to use. For example, to use GD:

	wmfAPI_Options options;
	wmfAPI* API;

	wmf_error_t error;

	unsigned long flags;

	/* */

	flags = WMF_OPT_FUNCTION;

	options.function = wmf_gd_function;

	/* Other Options */

	error = wmf_api_create (&API,flags,&options);
	if (error != wmf_E_None)
	{	wmf_api_destroy (API);

		/* */
	}

	/* */

The library performs all memory allocation with respect to the API, and destroying the instance will free up all associated memory:

	error = wmf_api_destroy (API);

There are a number of different options which can be used when creating the API. The structure of wmfAPI_Options is:

typedef struct _wmfAPI_Options wmfAPI_Options;

struct _wmfAPI_Options
{	void* context;

	void* (*malloc)  (void* context,size_t size);
	void* (*realloc) (void* context,void* mem,size_t size);
	void  (*free)    (void* context,void* mem);

	int    argc;
	char** argv;

	char** fontdirs; /* NULL-terminated list of directories to search for font files */

	struct
	{	wmfFontMap* wmf; /* {0,*}-terminated list: wmf-font-name -> ps-font-name */
		wmfMapping* sub; /* {0,*}-terminated list: wmf-font-name substring equiv */
		wmfMapping* ps;  /* {0,*}-terminated list: ps-font-name -> pfb-file-name */
	} font;

	char* sys_fontmap_file;
	char* xtra_fontmap_file;

	void (*function) (wmfAPI*);

	char*  module;
	char** dirs;

	FILE* debug_out;
	FILE* error_out;
};
  • WMF_OPT_ALLOC
    If you wish to provide your own memory allocation routines for libwmf to use instead of malloc, realloc and free, these can be specified:
    	flags |= WMF_OPT_ALLOC;
    
    	options.context = my_memory_manager_data;
    	options.malloc  = my_malloc;
    	options.realloc = my_realloc;
    	options.free    = my_free;
    
  • WMF_OPT_ARGS
    libwmf can be allowed to check for certain command line arguments:
      --wmf-ignore-nonfatal     ignore any non-critical errors or unsupported features
      --wmf-error=no            suppress error reports
      --wmf-debug=no            suppress debug reports
      --wmf-diagnostics         emit diagnostic information (for analysis of metafiles)
      --wmf-fontdir=<path>      add <path> to list of directories searched for fonts
      --wmf-sys-fonts           use system fonts, if any found
      --wmf-sys-fontmap=<file>  use system xml-fontmap file <file> (implies --wmf-sys-fonts)
      --wmf-xtra-fonts          use non-system fonts, if any found
      --wmf-xtra-fontmap=<file> use non-system xml-fontmap file <file> (implies --wmf-xtra-fonts)
    
    where the command line is specified by:
    int main (int argc,char** argv)
    {	/* */
    
    	flags |= WMF_OPT_ARGS;
    
    	options.argc = argc;
    	options.argv = argv;
    
  • WMF_OPT_FONTDIRS
    A NULL-terminated list of directories to be searched for fonts can be specified by:
    	char* dirs[3] = { "/usr/share/fonts", "/usr/local/share/fonts", NULL };
    
    	/* */
    
    	flags |= WMF_OPT_FONTDIRS;
    
    	options.fontdirs = dirs;
    
  • WMF_OPT_FONTMAP [UNTESTED]
    This is a system for specifying font mappings; see section on fonts.
  • WMF_OPT_SYS_FONTS
    Use any system fonts found, not just standard 13.
  • WMF_OPT_SYS_FONTMAP [UNTESTED]
    Use specified system XML fontmap file:
    	flags |= WMF_OPT_SYS_FONTS;
    	flags |= WMF_OPT_SYS_FONTMAP;
    
    	options.sys_fontmap_file = "/usr/local/share/fonts/fontmap";
    
  • WMF_OPT_XTRA_FONTS
    Use any system fonts found, not just standard 13.
  • WMF_OPT_XTRA_FONTMAP [UNTESTED]
    Use specified non-system XML fontmap file:
    	flags |= WMF_OPT_XTRA_FONTS;
    	flags |= WMF_OPT_XTRA_FONTMAP;
    
    	options.xtra_fontmap_file = "/usr/local/share/libwmf/fonts/fontmap";
    
  • WMF_OPT_FUNCTION
    This is how to initialize a device-layer with a supplied function. (Currently this is the only way to initialize a device layer since modules are not yet implemented.) The function is device-specific. See above.
  • WMF_OPT_MODULE [UNIMPLEMENTED]
    initialize device-layer with specified module
  • WMF_OPT_MODULE_DIRS [UNIMPLEMENTED]
    check for module also in specified directories
  • WMF_OPT_IGNORE_NONFATAL [HIGHLY RECOMMENDED]
    Ignore (some) non-fatal errors, equivalent to --wmf-ignore-nonfatal
    	flags |= WMF_OPT_IGNORE_NONFATAL;
    
  • WMF_OPT_NO_ERROR
    Suppress all error reports, equivalent to --wmf-error=no
    	flags |= WMF_OPT_NO_ERROR;
    
  • WMF_OPT_NO_DEBUG
    Suppress all debug reports, equivalent to --wmf-debug=no
    	flags |= WMF_OPT_NO_DEBUG;
    
  • WMF_OPT_LOG_ERROR [UNTESTED]
    Divert error reports to specified stream:
    	FILE* e_out;
    
    	/* */
    
    	e_out = fopen ("error.log","w");
    	if (e_out)
    	{	flags |= WMF_OPT_LOG_ERROR;
    
    		options.error_out = e_out;
    	}
    
  • WMF_OPT_LOG_DEBUG [UNTESTED]
    Divert debug reports to specified stream:
    	FILE* d_out;
    
    	/* */
    
    	d_out = fopen ("debug.log","w");
    	if (d_out)
    	{	flags |= WMF_OPT_LOG_DEBUG;
    
    		options.debug_out = d_out;
    	}
    

Acknowledging The Device Layer

In addition to creating the API, wmf_api_create sets up the link with the device layer. Device layer data can be accessed through API->device_data, but the implementation will probably provide a convenient interface. For example, with GD:

	wmfAPI_Options options;
	wmfAPI* API;

	wmf_error_t error;

	wmf_gd_t* ddata;

	unsigned long flags;

	/* */

	flags = WMF_OPT_FUNCTION | WMF_OPT_IGNORE_NONFATAL;

	options.function = wmf_gd_function;

	/* Other Options */

	error = wmf_api_create (&API,flags,&options);
	if (error != wmf_E_None)
	{	wmf_api_destroy (API);

		/* */
	}

	ddata = WMF_GD_GetData (API);

	if ((ddata->flags & WMF_GD_SUPPORTS_JPEG) == 0)
	{	fprintf (stderr,"libwmf does not support JPEG conversion!\n");

		wmf_api_destroy (API);

		/* */
	}

	/* */

At this point there is little need to acknowledge the device layer, except if (as in the above example) the device layer indicates possible restrictions.

Scanning The Metafile

Before playing the metafile (i.e., rendering the image) it is necessary first to open the metafile and second to scan it. To open a metafile that is a file on disc is simple:

	error = wmf_file_open (API,"file.wmf");
	if (error != wmf_E_None)
	{	wmf_api_destroy (API);

		/* */
	}

The file needs to be closed later by calling:

	error = wmf_file_close (API);

Alternatively, if the metafile is preloaded in memory, it can be opened with:

	error = wmf_mem_open (API,(unsigned char*) buffer,(long) buffer_length);
	if (error != wmf_E_None)
	{	wmf_api_destroy (API);

		/* */
	}

and closed later by calling:

	error = wmf_mem_close (API);

A third, more generic method is available as well, but requires more work. For example, to `open' an already-open file stream:

int  my_wmfRead (void*);
int  my_wmfSeek (void*,long);
long my_wmfTell (void*);

/* User redefinable functions for input-stream access:
 * wmfRead: returns unsigned char cast to int, or EOF
 */
int my_wmfRead (void* context)
{	return (fgetc ((FILE*) context));
}

/* User redefinable functions for input-stream access:
 * wmfSeek: returns (-1) on error, else 0
 */
int my_wmfSeek (void* context,long position)
{	return (fseek ((FILE*) context,position,SEEK_SET));
}

/* User redefinable functions for input-stream access:
 * wmfTell: returns (-1) on error, else pos
 */
long my_wmfTell (void* context)
{	return (ftell ((FILE*) context));
}

	/* */

	error = wmf_bbuf_input (API,my_wmfRead,my_wmfSeek,my_wmfTell,(void*) in);
	if (error != wmf_E_None)
	{	wmf_api_destroy (API);

		/* */
	}

Once the metafile has been opened, it must be scanned. Scanning parses the metafile without any interaction with the device layer, and its purpose is (a) determine whether it is a valid metafile, and (b) estimate the dimensions of the metafile.

	wmfD_Rect bbox;

	/* */

	error = wmf_scan (API,0,&bbox);
	if (error != wmf_E_None)
	{	wmf_api_destroy (API);

		/* */
	}

A metafile needs to be scanned, but only once. wmf_scan will reject any further attempts to scan; wmf_play (see below) will fail unless the metafile has been scanned.

Setting Up The Device Layer

Metafiles are basically a vector-graphic format and as such they can be scaled to any size and aspect ratio. The interpreter describes the metafile in a scaleable manner to the device layer, and the device layer is free to scale the metafile in any manner it chooses. As such, the device layer will almost certainly require (a) the dimensions of the metafile found by wmf_scan (see above), and (b) the image width and height desired by the application.

wmfD_Rect describes a bounding box in the interpreter's device coordinates, and is defined as:

typedef struct _wmfD_Coord wmfD_Coord;
typedef struct _wmfD_Rect  wmfD_Rect;

struct _wmfD_Coord
{	float x;
	float y;
};

struct _wmfD_Rect
{	wmfD_Coord TL;
	wmfD_Coord BR;
};

and so an application can determine the image's aspect ratio by:

	float aspect_ratio;

	/* */

	aspect_ratio = (bbox.BR.y - bbox.TL.y) / (bbox.BR.x - bbox.TL.x);

Note: By definition bbox.BR.y > bbox.TL.y and bbox.BR.x > bbox.TL.x

Putting this all together, and again using GD as an example:

	wmfAPI_Options options;
	wmfAPI* API;

	wmfD_Rect bbox;

	wmf_error_t error;

	wmf_gd_t* ddata;

	unsigned long flags;

	FILE* out;

	/* */

	flags = WMF_OPT_FUNCTION | WMF_OPT_IGNORE_NONFATAL;

	options.function = wmf_gd_function;

	/* Other Options */

	error = wmf_api_create (&API,flags,&options);
	if (error != wmf_E_None)
	{	wmf_api_destroy (API);

		/* */
	}

	ddata = WMF_GD_GetData (API);

	if ((ddata->flags & WMF_GD_SUPPORTS_JPEG) == 0)
	{	fprintf (stderr,"libwmf does not support JPEG conversion!\n");

		wmf_api_destroy (API);

		/* */
	}

	error = wmf_file_open (API,"file.wmf");
	if (error != wmf_E_None)
	{	wmf_api_destroy (API);

		/* */
	}

	error = wmf_scan (API,0,&bbox);
	if (error != wmf_E_None)
	{	wmf_api_destroy (API);

		/* */
	}

	out = fopen ("file.jpeg","w");
	if (out == 0)
	{	wmf_api_destroy (API);

		/* */
	}

	ddata->type = wmf_gd_jpeg;

	ddata->flags |= WMF_GD_OUTPUT_FILE;
	ddata->file = out;

	ddata->bbox = bbox;

	ddata->width  = (unsigned int) ceil (ddata->bbox.BR.x - ddata->bbox.TL.x);
	ddata->height = (unsigned int) ceil (ddata->bbox.BR.y - ddata->bbox.TL.y);

The above example doesn't do anything intelligent with the size of the image. The converter wmf2gd sets a maximum size and scales the image accordingly.

Playing The Metafile

The final step is simply to play the metafile:

	error = wmf_play (API,0,0);
	if (error != wmf_E_None)
	{	wmf_api_destroy (API);

		/* */
	}

This can be done any number of times, with varying device layer settings if desired.

Fonts & libwmf

There are a number of issues with fonts and libwmf to complicate matters: the first is the need to translate font names specified into font names recognized by libwmf; the second is to find the corresponding font files; a third is to work out what encoding (char. set) to use. Described below is libwmf's native mechanism for dealing with these issues. While versatile, unfortunately it requires significant effort on the part of an application that seeks to extend the limited font mapping provided by default. A second (experimental and optional) mechanism is provided also, and this reads an XML file containing font information (file locations and font names); on RedHat Linux systems this file is /usr/share/fonts/fontmap. No doubt this is an area that will see considerable future development.

Chances are, the metafile will require fonts that are not available to libwmf, and there must be a mechanism, therefore, for translating metafile fontnames into usable fonts. As noted above, the wmfAPI_Options structure passed to wmf_api_create has the following entries:

typedef struct _wmfAPI_Options wmfAPI_Options;

struct _wmfAPI_Options
{	/* */

	struct
	{	wmfFontMap* wmf; /* {0,*}-terminated list: wmf-font-name -> ps-font-name */
		wmfMapping* sub; /* {0,*}-terminated list: wmf-font-name substring equiv */
		wmfMapping* ps;  /* {0,*}-terminated list: ps-font-name -> pfb-file-name */
	} font;

	/* */
}

The two mapping types are defined:

typedef struct _wmfMapping             wmfMapping;
typedef struct _wmfFontMap             wmfFontMap;

struct _wmfMapping
{	char* name;
	char* mapping;

	FT_Encoding encoding;
};

struct _wmfFontMap
{	char* name;       /* wmf font name */

	char* normal;     /* postscript font names */
	char* italic;
	char* bold;
	char* bolditalic;
};

Internally libwmf has the following default definitions:

/* postscript (standard 13) font name mapping to type 1 font file
 */
static wmfMapping PSFontMap[13] = {
	{	"Courier",		"n022003l.pfb",	ft_encoding_adobe_standard	},
	{	"Courier-Oblique",	"n022023l.pfb",	ft_encoding_adobe_standard	},
	{	"Courier-Bold",		"n022004l.pfb",	ft_encoding_adobe_standard	},
	{	"Courier-BoldOblique",	"n022024l.pfb",	ft_encoding_adobe_standard	},
	{	"Helvetica",		"n019003l.pfb",	ft_encoding_adobe_standard	},
	{	"Helvetica-Oblique",	"n019023l.pfb",	ft_encoding_adobe_standard	},
	{	"Helvetica-Bold",	"n019004l.pfb",	ft_encoding_adobe_standard	},
	{	"Helvetica-BoldOblique","n019024l.pfb",	ft_encoding_adobe_standard	},
	{	"Times-Roman",		"n021003l.pfb",	ft_encoding_adobe_standard	},
	{	"Times-Italic",		"n021023l.pfb",	ft_encoding_adobe_standard	},
	{	"Times-Bold",		"n021004l.pfb",	ft_encoding_adobe_standard	},
	{	"Times-BoldItalic",	"n021024l.pfb",	ft_encoding_adobe_standard	},
	{	"Symbol",		"s050000l.pfb",	ft_encoding_adobe_custom	}};

/* exact WMF font name to postscript (standard 13) equivalent...
 * well, yeah, I know. :-(
 */
static wmfFontMap WMFFontMap[] = {
{ "Courier",		"Courier",     "Courier-Oblique",   "Courier-Bold",   "Courier-BoldOblique"   },
{ "Helvetica",		"Helvetica",   "Helvetica-Oblique", "Helvetica-Bold", "Helvetica-BoldOblique" },
{ "Modern",		"Courier",     "Courier-Oblique",   "Courier-Bold",   "Courier-BoldOblique"   },
{ "Monotype Corsiva",	"Courier",     "Courier-Oblique",   "Courier-Bold",   "Courier-BoldOblique"   },
{ "News Gothic",	"Helvetica",   "Helvetica-Oblique", "Helvetica-Bold", "Helvetica-BoldOblique" },
{ "Symbol",		"Symbol",      "Symbol",            "Symbol",         "Symbol"                },
{ "System",		"Courier",     "Courier-Oblique",   "Courier-Bold",   "Courier-BoldOblique"   },
{ "Times",		"Times-Roman", "Times-Italic",      "Times-Bold",     "Times-BoldItalic"      }};

/* Sub-string match if not in the above list;
 */
static wmfMapping SubFontMap[] = {
	{	"Arial",		"Helvetica"	},
	{	"Courier",		"Courier"	},
	{	"Fixed",		"Courier"	},
	{	"Helvetica",		"Helvetica"	},
	{	"Sans",			"Helvetica"	},
	{	"Sym",			"Symbol"	},
	{	"Terminal",		"Courier"	},
	{	"Times",		"Times"		},
	{	"Wingdings",		"Symbol"	}};

/* If all else fails, assume Times
 */
static char* DefaultFontMapping = "Times";

Bundled with libwmf are the thirteen standard ghostscript fonts. Unless the application specifies other fonts, libwmf will attempt to map the metafile's font name to one of these default fonts.

First an exact match is sought with the first argument of each font in WMFFontMap. For example, "News Gothic" would be an exact match; "Arial" would not. If there is no exact match, then a substring search is performed against the first argument of each font in SubFontMap. For example, this time "Arial" would match; "Zapf Chancery" would not. If there is still no exact match then "Times" is assumed.

Once a font name is found, this is converted to an equivalent name, assumed to be the postscript font name, using WMFFontMap. And finally the equivalent name is searched for in PSFontMap. For example, "Zapf Chancery" in italics would be mapped to "Times" in italics, then to "Times-Italic", and finally to "n021023l.pfb".

libwmf searches through the list of font directories for this file and loads it using freetype (2) with the encoding specified by the third argument of the PSFontMap entry.

These three lists can be prepended by using the WMF_OPT_FONTMAP option. The font files can be any format supported by freetype (2).

After the metafile has been scanned, API->fonts is a NULL-terminated list of (postscript) font names corresponding to the fonts selected by the interpreter.

Other API Functions

libwmf performs all memory allocation with respect to the API. When the API is destroyed, all associated memory is freed. The routines for allocating and freeing such memory are:

extern void* wmf_malloc (wmfAPI*,size_t);
extern void* wmf_calloc (wmfAPI*,size_t,size_t);
extern void* wmf_realloc (wmfAPI*,void*,size_t);
extern void  wmf_free (wmfAPI*,void*);

These behave similarly to the standard malloc, etc. Similarly:

extern char* wmf_strdup (wmfAPI*,char*);

is an internal implementation of strdup which allocates the copied string w.r.t. the API. On a related note,

extern char* wmf_strstr (const char*,const char*);

is an internal implementation of strstr and may be just a wrapper for it. This is a special case of a function which does not refer to the API.

Messages can be added to the error and debug streams using:

extern void wmf_error (wmfAPI* API,char* srcfilename,int linenumber,char* message);
extern void wmf_debug (wmfAPI* API,char* srcfilename,int linenumber,char* message);
extern void wmf_assert (wmfAPI* API,char* srcfilename,int linenumber);

but these functions should be used via the macros WMF_ERROR(API,"mesg"), WMF_DEBUG(API,"mesg"), and WMF_ASSERT(API,<expr>).

Finally, a call-back function can be set. This is called after each metafile record with an estimate of the proportion of the metafile read; if the return value is non-zero then the player will exit prematurely.

typedef int (*wmfStatus) (void* context,float proportion);

extern void wmf_status_function (wmfAPI* API,void* context,wmfStatus function);

For example, the following status function is used by wmf2gd:

int wmf2gd_status (void* context,float p)
{	int percent;

	percent = (int) (p * 100);

	if (percent <  0) percent =  0;
	if (percent > 99) percent = 99;

	fprintf (stderr,"%2d%%\b\b\b",percent);
}

Although there are other functions in the API, their use is not recommended.


Copyright 2001 wvWare/libwmf http://www.wvware.com/
libwmf-0.2.13/doc/tutipa.html000066400000000000000000000777311441723000300160270ustar00rootroot00000000000000 libwmf-0.2.0 Tutorial 2: The IPA

libwmf-0.2.0 Tutorial 2: The IPA

Contents

Introduction

This is a combination of tutorial and reference guide for writing new device layers for libwmf.

Since no two graphics interfaces are identical, the task of the IPA (the interface between the interpreter and the device layer) is to simplify the task of translating the metafile drawing commands. (It cannot be denied that there is still considerable room for improvement.)

When writing a new device layer you will need to include the following headers:

#include <libwmf/ipa.h>
#include <libwmf/defs.h>

The former includes the API declarations as well as the IPA declarations, while the latter defines metafile constants.

Types

wmfRGB | wmfBMP | wmfBrush | wmfPen | wmfFont | wmfDC | wmfFlood_t | wmfDrawPixel_t | wmfDrawArc_t | wmfDrawLine_t | wmfPolyLine_t | wmfDrawRectangle_t | wmfPolyRectangle_t | wmfBMP_Read_t | wmfBMP_Draw_t | wmfROP_Draw_t | wmfDrawText_t | wmfUserData_t | wmfCharDrawer
  • wmfRGB
    typedef struct _wmfRGB wmfRGB;
    
    struct _wmfRGB
    {	unsigned char r;
    	unsigned char g;
    	unsigned char b;
    };
    

    wmfRGB describes a color, with r = g = b = 255 corresponding to white and r = g = b = 0 corresponding to black.

  • wmfBMP
    typedef struct _wmfBMP wmfBMP;
    
    struct _wmfBMP
    {	U16 width;
    	U16 height;
    
    	void* data;
    };
    

    Container for a bitmap, of dimensions width and height. If non-zero, data is a pointer to an internal representation of the bitmap. The interpreter does not reference data and will not attempt to draw a bitmap if data is zero; however, a bitmap brush pattern may be set even though data is zero. (data=0 indicates either that the device layer has no support for bitmaps or that the bitmap is corrupt or unreadable.)

  • wmfBrush
    typedef struct _wmfBrush wmfBrush;
    
    struct _wmfBrush
    {	U16 lbStyle;
    	U16 lbHatch;
    
    	wmfRGB lbColor;
    	wmfBMP bmp;
    };
    

    wmfBrush is one element of the current drawing context. lbStyle is one of the following:

    /* Brush Styles */
    #define BS_SOLID            0
    #define BS_NULL             1
    #define BS_HOLLOW     BS_NULL
    #define BS_HATCHED          2
    #define BS_PATTERN          3
    #define BS_INDEXED          4
    #define BS_DIBPATTERN       5
    #define BS_DIBPATTERNPT     6
    #define BS_PATTERN8X8       7
    #define BS_DIBPATTERN8X8    8
    

    where BS_NULL indicates that no brush is set. If lbStyle=BS_HATCHED then the brush has the pattern, specified by lbHatch which is one of:

    /* Hatch Styles */
    #define HS_HORIZONTAL       0       /* ----- */
    #define HS_VERTICAL         1       /* ||||| */
    #define HS_FDIAGONAL        2       /* \\\\\ */
    #define HS_BDIAGONAL        3       /* ///// */
    #define HS_CROSS            4       /* +++++ */
    #define HS_DIAGCROSS        5       /* xxxxx */
    

    If lbStyle=BS_HATCHED or lbStyle=BS_SOLID then the foreground color of the brush is lbColor. Otherwise, if the brush is a bitmap, ensure that bmp.data is non-zero.

    The following macros should be used to retrieve the above info.:

    #include 
    
    /* WMF_BRUSH_STYLE(wmfBrush* B) -> (U16) brush style
     * WMF_BRUSH_HATCH(wmfBrush* B) -> (U16) brush hatch style
     * 
     * WMF_BRUSH_COLOR(wmfBrush* B) -> (wmfRGB*) brush color
     * 
     * WMF_BRUSH_BITMAP(wmfBrush* B) -> (wmfBMP*) brush bitmap
     */
    #define WMF_BRUSH_STYLE(B)  ((B)->lbStyle)
    #define WMF_BRUSH_HATCH(B)  ((B)->lbHatch)
    
    #define WMF_BRUSH_COLOR(B)  (&((B)->lbColor))
    
    #define WMF_BRUSH_BITMAP(B) (&((B)->bmp))
    
  • wmfPen
    typedef struct _wmfPen wmfPen;
    
    struct _wmfPen
    {	U16 lopnStyle;
    
    	double width;
    	double height;
    
    	wmfRGB lopnColor;
    };
    

    wmfPen is one element of the current drawing context. The nib has dimensions width and height and color lopnColor. lopnStyle contains style information on the line itself, on the ends, on the joins, and on the type:

    #define PS_STYLE_MASK       0x0000000F
    #define PS_ENDCAP_MASK      0x00000F00
    #define PS_JOIN_MASK        0x0000F000
    #define PS_TYPE_MASK        0x000F0000
    

    lopnStyle & PS_STYLE_MASK is one of:

    #define PS_SOLID            0
    #define PS_DASH             1       /* -------  */
    #define PS_DOT              2       /* .......  */
    #define PS_DASHDOT          3       /* _._._._  */
    #define PS_DASHDOTDOT       4       /* _.._.._  */
    #define PS_NULL             5
    #define PS_INSIDEFRAME      6
    #define PS_USERSTYLE        7
    #define PS_ALTERNATE        8
    

    where PS_NULL indicates that no pen has been set. lopnStyle & PS_ENDCAP_MASK is one of:

    #define PS_ENDCAP_ROUND     0x00000000
    #define PS_ENDCAP_SQUARE    0x00000100
    #define PS_ENDCAP_FLAT      0x00000200
    

    and lopnStyle & PS_JOIN_MASK is one of:

    #define PS_JOIN_ROUND       0x00000000
    #define PS_JOIN_BEVEL       0x00001000
    #define PS_JOIN_MITER       0x00002000
    

    Finally, lopnStyle & PS_TYPE_MASK is one of:

    #define PS_COSMETIC         0x00000000
    #define PS_GEOMETRIC        0x00010000
    

    The following macros should be used to retrieve the above info.:

    #include 
    
    /* WMF_PEN_STYLE(wmfPen* P)  -> (U16) pen style
     * WMF_PEN_ENDCAP(wmfPen* P) -> (U16) endcap style
     * WMF_PEN_JOIN(wmfPen* P)   -> (U16) join style
     * WMF_PEN_TYPE(wmfPen* P)   -> (U16) `type' of pen (??)
     * 
     * WMF_PEN_WIDTH(wmfPen* P)  -> (double) pen `width'  (thickness w.r.t. x-axis)
     * WMF_PEN_HEIGHT(wmfPen* P) -> (double) pen `height' (thickness w.r.t. y-axis)
     * 
     * WMF_PEN_COLOR(wmfPen* P) -> (wmfRGB*) pen color
     */
    #define WMF_PEN_STYLE(P)  ((P)->lopnStyle & PS_STYLE_MASK)
    #define WMF_PEN_ENDCAP(P) ((P)->lopnStyle & PS_ENDCAP_MASK)
    #define WMF_PEN_JOIN(P)   ((P)->lopnStyle & PS_JOIN_MASK)
    #define WMF_PEN_TYPE(P)   ((P)->lopnStyle & PS_TYPE_MASK)
    
    #define WMF_PEN_WIDTH(P)  ((P)->width)
    #define WMF_PEN_HEIGHT(P) ((P)->height)
    
    #define WMF_PEN_COLOR(P)  (&((P)->lopnColor))
    
  • wmfFont
    typedef struct _wmfFont wmfFont;
    
    struct _wmfFont
    {	U16 lfHeight;
    	U16 lfWidth;
    
    	S16 lfEscapement;
    	S16 lfOrientation;
    
    	U16 lfWeight;
    
    	U8 lfItalic;
    	U8 lfUnderline;
    	U8 lfStrikeOut;
    	U8 lfCharSet;
    	U8 lfOutPrecision;
    	U8 lfClipPrecision;
    	U8 lfQuality;
    	U8 lfPitchAndFamily;
    
    	char* lfFaceName;
    
    	char* ps_name;
    
    	FT_Face ft_face;
    };
    

    wmfFont is one element of the current drawing context. Of all of this, the most important elements are ps_name (the postscript font name) and ft_face, the freetype (2) font face for which bold and italics have already been determined.

    The following macros should be used to retrieve the above info.:

    #include 
    
    /* WMF_TEXT_ANGLE(wmfFont* F) -> (double) text angle in radians
     * 
     * WMF_TEXT_UNDERLINE(wmfFont* F) -> (U8) ?? whether to underline (?? how thick)
     * WMF_TEXT_STRIKEOUT(wmfFont* F) -> (U8) ?? whether to strikeout (?? how thick)
     * 
     * WMF_FONT_NAME(wmfFont* F)   -> (char*) font name supplied by metafile
     * WMF_FONT_PSNAME(wmfFont* F) -> (char*) font name to use in postscript output
     * WMF_FONT_FTFACE(wmfFont* F) -> (FT_Face) freetype(2) font face
     */
    #define WMF_TEXT_ANGLE(F)     ((((double) (F)->lfEscapement) / 10) * M_PI / 180)
    
    #define WMF_TEXT_UNDERLINE(F) ((F)->lfUnderline)
    #define WMF_TEXT_STRIKEOUT(F) ((F)->lfStrikeOut)
    
    #define WMF_FONT_NAME(F)   ((F)->lfFaceName)
    #define WMF_FONT_PSNAME(F) ((F)->ps_name)
    #define WMF_FONT_FTFACE(F) ((F)->ft_face)
    
  • wmfDC
    typedef struct _wmfDC wmfDC;
    
    struct _wmfDC
    {	void* userdata;
    
    	wmfBrush* brush;
    	wmfPen* pen;
    	wmfFont* font;
    
    	int key;     /* Is this used ?? */
    
    	wmfDC* next; /* Is this used ?? */
    
    	wmfRGB textcolor;
    	wmfRGB bgcolor;
    
    	U16 textalign;
    	U16 bgmode;
    	U16 polyfillmode;
    	U16 charextra;
    	U16 breakextra;
    
    	U16 ROPmode;
    
    	struct
    	{	S32 Ox;
    		S32 Oy;
    		S32 width;
    		S32 height;
    	} Window;
    
    	double pixel_width; /* Display pixel dimensions (inches) */
    	double pixel_height;
    
    	U16 map_mode;
    
    	void* clip;
    };
    

    Still very much a work in progress, especially with regard to the drawing context wmfDC; there is much in this structure that is (or should be) irrelevant to the IPA.

    See wmfBrush, wmfPen and wmfFont. textcolor is the color to draw text, bgcolor is the background color (generally, as well as with text) unless bgmode=TRANSPARENT, in which case there is no background. bgmode is one of:

    #define TRANSPARENT         1
    #define OPAQUE              2
    #define BKMODE_LAST         2
    

    The following macros should be used to retrieve the above info.:

    #include 
    
    /* WMF_DC_BRUSH(wmfDC* C) -> (wmfBrush*) current brush
     * WMF_DC_PEN(wmfDC* C)   -> (wmfPen*)   current pen
     * WMF_DC_FONT(wmfDC* C)  -> (wmfFont*)  current font
     * 
     * WMF_DC_TEXTCOLOR(wmfDC* C)  -> (wmfRGB*) text color
     * WMF_DC_BACKGROUND(wmfDC* C) -> (wmfRGB*) background color
     * 
     * WMF_DC_OPAQUE(wmfDC* C) -> (U16) whether to fill opaque (non-zero if true)
     * 
     * WMF_DC_POLYFILL(wmfDC* C) -> (U16) how to fill polygons
     * 
     * WMF_DC_ROP(wmfDC* C) -> (U16) ROP mode
     */
    #define WMF_DC_BRUSH(C)      ((C)->brush)
    #define WMF_DC_PEN(C)        ((C)->pen)
    #define WMF_DC_FONT(C)       ((C)->font)
    
    #define WMF_DC_TEXTCOLOR(C)  (&((C)->textcolor))
    #define WMF_DC_BACKGROUND(C) (&((C)->bgcolor))
    
    #define WMF_DC_OPAQUE(C)     ((C)->bgmode - 1)
    
    #define WMF_DC_POLYFILL(C)   ((C)->polyfillmode)
    
    #define WMF_DC_ROP(C)        ((C)->ROPmode)
    
  • wmfFlood_t
    typedef struct _wmfFlood_t wmfFlood_t;
    
    struct _wmfFlood_t
    {	wmfDC* dc;
    
    	wmfD_Coord pt;
    	wmfRGB color;
    
    	U16 type;
    
    	double pixel_width;
    	double pixel_height;
    };
    

    Flood-fill region with color color, starting at point pt. Since this is almost certainly not a vector operation, the pixel width and height are given (and are probably best ignored...). type is one of:

    #define  FLOODFILLBORDER    0
    #define  FLOODFILLSURFACE   1
    
  • wmfDrawPixel_t
    typedef struct _wmfDrawPixel_t wmfDrawPixel_t;
    
    struct _wmfDrawPixel_t
    {	wmfDC* dc;
    
    	wmfD_Coord pt;
    	wmfRGB color;
    
    	double pixel_width;
    	double pixel_height;
    };
    

    Set pixel at point pt to color color. The pixel width and height are given.

  • wmfDrawArc_t
    typedef struct _wmfDrawArc_t wmfDrawArc_t;
    
    struct _wmfDrawArc_t
    {	wmfDC* dc;
    
    	wmfD_Coord TL;
    	wmfD_Coord BR;
    
    	wmfD_Coord start; /* draw_ellipse: (ignored) */
    	wmfD_Coord end;
    };
    

    Draw a complete or partial ellipse. TL and BR are the coordinates of the top left and bottom right of the ellipse's bounding box respectively. If incomplete, then start and end give the start and end coordinates of the arc.

  • wmfDrawLine_t
    typedef struct _wmfDrawLine_t wmfDrawLine_t;
    
    struct _wmfDrawLine_t
    {	wmfDC* dc;
    
    	wmfD_Coord from;
    	wmfD_Coord to;
    };
    

    Draw line from point from to point to.

  • wmfPolyLine_t
    typedef struct _wmfPolyLine_t wmfPolyLine_t;
    
    struct _wmfPolyLine_t
    {	wmfDC* dc;
    
    	wmfD_Coord* pt;
    
    	U16 count;
    };
    

    An array (of length count) of points pt[]. This may be used to describe polygons as well as line sequences.

  • wmfDrawRectangle_t
    typedef struct _wmfDrawRectangle_t wmfDrawRectangle_t;
    
    struct _wmfDrawRectangle_t
    {	wmfDC* dc;
    
    	wmfD_Coord TL;
    	wmfD_Coord BR;
    
    	float width; /* draw_rectangle: axes of corner ellipses; zero if un-rounded */
    	float height;
    };
    

    A rectangle, possibly with rounded corners - in which case width and height give the elliptic axes of the rectangle's corners.

  • wmfPolyRectangle_t
    typedef struct _wmfPolyRectangle_t wmfPolyRectangle_t;
    
    struct _wmfPolyRectangle_t
    {	wmfDC* dc;
    
    	wmfD_Coord* TL; /* region_frame & region_paint: TL[count],BR[count] give the */
    	wmfD_Coord* BR; /* final `extents'... */
    
    	unsigned int count;
    
    	float width;  /* region_frame: border thickness; zero otherwise */
    	float height;
    };
    

    Used by region and clip calls, wmfPolyRectangle_t is used to describe multiple rectangles, whose top left and bottom right corners are given by the TL and BR arrays respectively. These arrays are of length count in the case of clip calls, and of length count + 1 in the case of the region calls, the extra element containing the overall bounding box (the region extents). In the case of region_frame, width and height give the thickness of the frame.

  • wmfBMP_Read_t
    typedef struct _wmfBMP_Read_t wmfBMP_Read_t;
    
    struct _wmfBMP_Read_t          /* Two means available for accessing BMP image:        */
    {	long offset;           /* (1) position in source file of start of BMP;        *
                                    * use API->bbuf.seek to set pos(ition), etc.          */
    	long length;           /* (2) buffer of length length containing image of BMP */
    	unsigned char* buffer;
    
    	U16 width;  /* WMF player may preset these values; zero otherwise. */
    	U16 height; /* Use caution - may be buggy... ?? [TODO]             */
    
    	wmfBMP bmp;
    };
    

    There are two ways to read a bitmap presented by libwmf: the first is to read it directly from the input stream using the internal stream functions:

    /* Macro-wrappers for stream functions:
     * (int)  WMF_READ ((wmfAPI*) API)                 - returns unsigned char cast to int, or EOF
     * (int)  WMF_SEEK ((wmfAPI*) API,(long) position) - returns (-1) on error, else 0
     * (long) WMF_TELL ((wmfAPI*) API)                 - returns (-1) on error, else current position
     */
    
    where the bitmap starts at offset offset; the second (which is preferred) is to use the buffer buffer of length length.

    To complicate matters, the bitmap's data may be truncated so that the bitmap's header is incorrect - width and height give the real dimensions of the bitmap.

    The bitmap's width and height should be entered into bmp (see wmfBMP above) as well as a pointer to the bitmap data (which can be in any format you choose; the library does not need to know).

  • wmfBMP_Draw_t
    typedef struct _wmfBMP_Draw_t wmfBMP_Draw_t;
    
    struct _wmfBMP_Draw_t
    {	wmfDC* dc;
    
    	wmfD_Coord pt;
    	wmfBMP bmp;
    
    	U32 type;
    
    	struct
    	{	U16 x;
    		U16 y;
    		U16 w;
    		U16 h;
    	} crop;
    
    	double pixel_width;
    	double pixel_height;
    };
    

    In contrast to earlier versions, libwmf no longer makes any attempt to crop or scale the bitmap. Instead the crop data are presented to the device layer to use as it sees fit, and the pixel width and height as well. The bitmap referenced by bmp (see wmfBMP above) is to be drawn at point pt.

    TODO: info on type

  • wmfROP_Draw_t
    typedef struct _wmfROP_Draw_t wmfROP_Draw_t;
    
    struct _wmfROP_Draw_t
    {	wmfDC* dc;
    
    	wmfD_Coord TL;
    	wmfD_Coord BR;
    
    	U32 ROP;
    
    	double pixel_width;
    	double pixel_height;
    };
    

    TODO:

  • wmfDrawText_t
    typedef struct _wmfDrawText_t wmfDrawText_t;
    
    struct _wmfDrawText_t
    {	wmfDC* dc;
    
    	wmfD_Coord pt;
    
    	wmfD_Coord TL; /* Clip zone */
    	wmfD_Coord BR;
    
    	struct /* An estimated surround zone */
    	{	wmfD_Coord TL;
    		wmfD_Coord TR;
    		wmfD_Coord BL;
    		wmfD_Coord BR;
    	} bbox;
    
    	char* str;
    
    	U16 flags;
    
    	double font_height;
    	double font_ratio;  /* width to height ratio */
    };
    

    Fonts and text are triiicky! Fortunately libwmf tries to do most of the work. As such text justification is taken care of by the interpreter, and fonts (bold, italic, etc.) are selected elsewhere. The emphasis with wmfDrawText_t is therefore the rendering of text.

    The text can be assumed to be left-justified, starting at point pt. TL and BR are the corners of a clip rectangle. bbox gives four corners of rectangle - an estimate of the background zone. str is the text to draw; font_height is the height of the font and font_ratio is how much to stretch the font width-wise. The values for flags are:

    #define ETO_OPAQUE          0x0002
    #define ETO_CLIPPED         0x0004
    #define ETO_GLYPH_INDEX     0x0010
    #define ETO_RTLREADING      0x0080
    
  • wmfUserData_t
    typedef struct _wmfUserData_t wmfUserData_t;
    
    struct _wmfUserData_t	/* TODO: Need to be careful with usage here; not all these are set by the player! */
    {	wmfDC* dc;          /* dc is guaranteed */
    
    	void* data;         /* data also, except for init */
    };
    

    Redundant; may be removed at some point...

  • wmfCharDrawer
    typedef void (*wmfCharDrawer) (wmfAPI*,wmfDrawText_t*);
    

IPA Function Reference

Let us assume that you are writing a device layer called mydev, then the first requirement is an initialization function:

#include <libwmf/ipa.h>
#include <libwmf/defs.h>
#include <libwmf/mydev.h>

void wmf_mydev_function (wmfAPI* API)
{	wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference;

	/* */
The function reference has the following definition:
typedef struct _wmfFunctionReference wmfFunctionReference;

struct _wmfFunctionReference
{	void (*device_open) (wmfAPI*);
	void (*device_close) (wmfAPI*);
	void (*device_begin) (wmfAPI*);
	void (*device_end) (wmfAPI*);

	void (*flood_interior) (wmfAPI*,wmfFlood_t*);
	void (*flood_exterior) (wmfAPI*,wmfFlood_t*);

	void (*draw_pixel) (wmfAPI*,wmfDrawPixel_t*);
	void (*draw_pie) (wmfAPI*,wmfDrawArc_t*);
	void (*draw_chord) (wmfAPI*,wmfDrawArc_t*);
	void (*draw_arc) (wmfAPI*,wmfDrawArc_t*);
	void (*draw_ellipse) (wmfAPI*,wmfDrawArc_t*);
	void (*draw_line) (wmfAPI*,wmfDrawLine_t*);
	void (*poly_line) (wmfAPI*,wmfPolyLine_t*);
	void (*draw_polygon) (wmfAPI*,wmfPolyLine_t*);
	void (*draw_rectangle) (wmfAPI*,wmfDrawRectangle_t*);

	void (*rop_draw) (wmfAPI*,wmfROP_Draw_t*);
	void (*bmp_draw) (wmfAPI*,wmfBMP_Draw_t*);
	void (*bmp_read) (wmfAPI*,wmfBMP_Read_t*);
	void (*bmp_free) (wmfAPI*,wmfBMP*);

	void (*draw_text) (wmfAPI*,wmfDrawText_t*);

	void (*udata_init) (wmfAPI*,wmfUserData_t*);
	void (*udata_copy) (wmfAPI*,wmfUserData_t*);
	void (*udata_set) (wmfAPI*,wmfUserData_t*);
	void (*udata_free) (wmfAPI*,wmfUserData_t*);

	void (*region_frame) (wmfAPI*,wmfPolyRectangle_t*);
	void (*region_paint) (wmfAPI*,wmfPolyRectangle_t*);
	void (*region_clip) (wmfAPI*,wmfPolyRectangle_t*);
};

The initialization function has two purposes, the first being to establish the links that create the IPA by pointing the function reference variables to your own drawing functions:

#include <libwmf/ipa.h>
#include <libwmf/defs.h>
#include <libwmf/mydev.h>

void wmf_mydev_function (wmfAPI* API)
{	wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference;

	FR->device_open  = wmf_mydev_device_open;
	FR->device_close = wmf_mydev_device_close;
	FR->device_begin = wmf_mydev_device_begin;
	FR->device_end   = wmf_mydev_device_end;
	/* etc. */

	/* */
}

void wmf_mydev_device_open (wmfAPI* API)
{	/* */
}

/* etc. */

The second purpose of the initialization function is to allocate the device's data structure, set the device parameters to default values if necessary, and then to attach the data to the API->device_data hook.

/* */

typedef struct _wmf_mydev_t wmf_mydev_t;

struct _wmf_mydev_t
{	/* */

	unsigned long flags;
}

void wmf_mydev_function (wmfAPI* API)
{	wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference;

	wmf_mydev_t* ddata = 0;

	FR->device_open  = wmf_mydev_device_open;
	/* etc. */

	API->device_data = wmf_malloc (API,sizeof (wmf_mydev_t));

	if (API->err != wmf_E_None) return; /* insufficient memory? */

	ddata = (wmf_mydev_t*) API->device_data;

	/* */

	ddata->flags = 0;
}

/* */

IPA Functions

The IPA functions are called by wmf_play (), the only exception being device_close which is called by wmf_api_destroy () - and then only if device_open has been called by wmf_play ().

device_open is called the first time (and only the first time) wmf_play () is called, and is the very first IPA function to be called, just as device_close will be the very last.

At the beginning of each play cycle (i.e., each call to wmf_play ()) device_begin is called (after device_open if it is the first cycle), and at the end of each cycle device_end is called. The metafile graphics use other IPA functions.

device_open, device_begin, device_end and device_close should be written so that wmf_play () can be called repeatedly.

The names of the functions are not important. The generic names are used below:

device_open | device_close | device_begin | device_end | flood_interior | flood_exterior | draw_pixel | draw_pie | draw_chord | draw_arc | draw_ellipse | draw_line | poly_line | draw_polygon | draw_rectangle | rop_draw | bmp_draw | bmp_read | bmp_free | draw_text | udata_init | udata_copy | udata_set | udata_free | region_frame | region_paint | region_clip
  • device_open
    void device_open (wmfAPI*);
    

    device_open is the very first IPA function to be called. It is called only once, the first time wmf_play () is called.

  • device_close
    void device_close (wmfAPI*);
    

    device_close is the very last IPA function to be called. It is called by wmf_api_destroy (), and only if device_open has been called earlier.

  • device_begin
    void device_begin (wmfAPI*);
    

    device_begin is the first IPA function called from wmf_play () (with the exception of device_open the first time wmf_play () is called).

  • device_end
    void device_end (wmfAPI*);
    

    device_end is the last IPA function called from wmf_play ().

  • flood_interior
    void flood_interior (wmfAPI*,wmfFlood_t*);
    
  • flood_exterior
    void flood_exterior (wmfAPI*,wmfFlood_t*);
    
  • draw_pixel
    void draw_pixel (wmfAPI*,wmfDrawPixel_t*);
    
  • draw_pie
    void draw_pie (wmfAPI*,wmfDrawArc_t*);
    
  • draw_chord
    void draw_chord (wmfAPI*,wmfDrawArc_t*);
    
  • draw_arc
    void draw_arc (wmfAPI*,wmfDrawArc_t*);
    
  • draw_ellipse
    void draw_ellipse (wmfAPI*,wmfDrawArc_t*);
    
  • draw_line
    void draw_line (wmfAPI*,wmfDrawLine_t*);
    
  • poly_line
    void poly_line (wmfAPI*,wmfPolyLine_t*);
    
  • draw_polygon
    void draw_polygon (wmfAPI*,wmfPolyLine_t*);
    
  • draw_rectangle
    void draw_rectangle (wmfAPI*,wmfDrawRectangle_t*);
    
  • rop_draw
    void rop_draw (wmfAPI*,wmfROP_Draw_t*);
    

    TODO:

  • bmp_draw
    void bmp_draw (wmfAPI*,wmfBMP_Draw_t*);
    

    Note: Unless you're feeling masochistic and want to write, or re-write, your own suite of functions for the reading, writing and general manipulation of bitmaps, you should defer this to libwmf's built-in support which is adapted from ImageMagick's excellent BMP coder.

    See section on bitmaps below.

  • bmp_read
    void bmp_read (wmfAPI*,wmfBMP_Read_t*);
    

    Note: Unless you're feeling masochistic and want to write, or re-write, your own suite of functions for the reading, writing and general manipulation of bitmaps, you should defer this to libwmf's built-in support which is adapted from ImageMagick's excellent BMP coder.

    void bmp_read (wmfAPI* API,wmfBMP_Read_t* bmp_read)
    {	wmf_ipa_bmp_read (API,bmp_read);
    }
    
  • bmp_free
    void bmp_free (wmfAPI*,wmfBMP*);
    

    Note: Unless you're feeling masochistic and want to write, or re-write, your own suite of functions for the reading, writing and general manipulation of bitmaps, you should defer this to libwmf's built-in support which is adapted from ImageMagick's excellent BMP coder.

    void bmp_free (wmfAPI* API,wmfBMP* bmp)
    {	wmf_ipa_bmp_free (API,bmp);
    }
    
  • draw_text
    void draw_text (wmfAPI*,wmfDrawText_t*);
    

    If desired, strings can be decomposed into individual chars using wmf_ipa_draw_text (). Best to see source for the various device layers in libwmf.

  • udata_init
    void udata_init (wmfAPI*,wmfUserData_t*);
    

    Redundant; may be removed at some point...

  • udata_copy
    void udata_copy (wmfAPI*,wmfUserData_t*);
    

    Redundant; may be removed at some point...

  • udata_set
    void udata_set (wmfAPI*,wmfUserData_t*);
    

    Redundant; may be removed at some point...

  • udata_free
    void udata_free (wmfAPI*,wmfUserData_t*);
    

    Redundant; may be removed at some point...

  • region_frame
    void region_frame (wmfAPI*,wmfPolyRectangle_t*);
    
  • region_paint
    void region_paint (wmfAPI*,wmfPolyRectangle_t*);
    
  • region_clip
    void region_clip (wmfAPI*,wmfPolyRectangle_t*);
    

    If the number of clip rectangles is zero, the current clip region should be unset.

Bitmap Functions

Other Functions

Guidelines

Compiling - The Distribution

The section applies only if you are working on the libwmf sources.

The build system uses automake and autoconf. If any changes are made to any of the various Makefile.am files, or to configure.in or libwmf.m4, then the build system will need to be updated. Change to the top source directory (containing configure.in and libwmf.m4) and:

# aclocal
# automake
# autoheader
# autoconf
# date > stamp-h.in

When adding a new device layer, include/libwmf/Makefile.am and src/ipa/Makefile.am will need to be modifiled. Source files (src/ipa/new.c) and installing header files (include/libwmf/new.h) do not need to be added to the distribution, but other headers (src/ipa/new.h & src/ipa/new/*.h) will.


Copyright 2001 wvWare/libwmf http://www.wvware.com/
libwmf-0.2.13/doc/wmfpic.png000066400000000000000000000326351441723000300156200ustar00rootroot00000000000000‰PNG  IHDR,í·åÂgAMA± üabKGDÿÿÿ ½§“ pHYs  ’ù¥tIMEÑøÓ‰ð IDATxœíÝ”[uðñ÷ é¤Ü2(-•N,–E„º.!V ®ü,V×Gvzx„gˆEXAÜ]ðxZ–Çg©T*b}ê.5!¬-PiAl¥j¦X(d“ioÚf:3yþ¸÷¦™L2“dî½ßäÞÏëtró½Ÿ$ßûýäûë„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„¢¼&Õá´\VkŽ>L¦GB@ íÀ$`"Ð4›E ýÀ`?°Ð üxؼ üx3Ô~mB¨$ DxJ.« ÌNfÇaEᤀ7€­À«Àæ@PEQ,BØNˆhX¹¬6ø$0˜œÎ¡^C½^6ëçA}‡Ú„¨$Ñ0rY­ø4pp.Ð¥6"ÛtÏÏ¿ õŒâx„¨ˆ$Q×rYm6p°8Kq8nyX <ê[U#D9’@DÝÉeµW—§(GµMÀÏÇAýOªƒ¢$QrY­X\ œ£8œzµxXêýªƒBˆPÊ\5õ5à«@«âpEð#àaYÕ%T’"”Èeµ‹€Å@Lu, ., õ'U"üGˆpU.«] Üœª:y¸/ÔUˆðI ¹¬¶ø&p¢êXI ÂQ¹¬¶¸˜«:ŸÙÜê«U"¼KˆpD.«܉±‡C¨ó$°$Ô_UˆðI Âv¹¬vÆp•¨w‚úͪƒÞ" DØÆ®ú޹ň×t_—a-aI bÜrY­ ¸øÕ±ˆŠ<\êCªMˆ—\V;xu·LµIׂú³ª«Þo}-êX.«} H"É£…¤ù Q鈪å²Z°¸Du,«€… Þ«:ÑX$ˆªä²Ú)ÀO©ŽEØêuà  ¾Iu ¢qH3ï_µ ˜ :áˆà¹¯–¨”̈Šä²Ú5À¯äáe€_™Ÿµc’"Æ”ËjßT‡p̓æg.Ĩ$ˆQå²Ú­À=ªã®»Çüì…(Kæ@DYfòÕq¥n õÛU!ê“$Q’9„!=pS ¨_u¢þH#ä²Ú×0v— a¹&ÔV„¨/’@Ä0æ ŸR‡¨KÊE!I "/—ÕNÄø!¢€êXD]ÊsA}‹ê@D}"€üu_NQ‹¨k›€SåN¾d¯8ä$yˆ±‚QW„" —Õþø’ê8DÃø’Yg„ÏÉ–Ïå²Úlà5Õqˆ†tB ¨oU„PGz ⇪ KêŽÏIñ±\V[ DUÇ!VÔ¬C§d˧rYíàÏÀ$Å¡ˆÆ¶øH ¨ :á>éø×Hòã7 £. ’ˆå²Ú'€—UÇ!<å´@Pÿ½ê „»¤âOßT€ð©S>$=ŸÉeµyÀ‹ªãžtF ¨oP„pô@üçzÕÏ’ºå3Òñ‘\V;Ø®:ái3AýMÕAwHÄ_¾ª:áyRÇ|Dz >’ËjoÓTÇ!‹$á¼if]> Ä?.Q€ð ©k>!CX>‘Ëji SuÂ2 R„pžô@| —ÕþIÂ=f' ÄÎS€ð©s> ÄÎQ€ð©s> Äæ»y²žÔd7OWµ\¦…]:è~úHÕ¡x™«uN¨1AuÂYæw[Ü:ß® ¼¼¬‹è}›tö»uÚŠ=µèôü=73âñ\¦…-Mg꼦Îëq3´QmyÌX}âU;GR±–\Vû„Ü¡×Û¤â}'»y²]:Ø^§ßî/\þ§]×]öñ-Mçݼ¼¬ËŨÉeFæú]:ؾæ(¶¯9*ÿþ6WëžpŸ$ï;Þ­å2-¼»ÑXìµkcc.ú²z¥z'NêIMæ¹Û?Æ–ÇFnâî省³¶Î>:Â{]kœ\«{B Âò¾™nhûÓGrôÜ ïnì¤7ÓJ÷ÓGÒuÁûnÞÆÐÕK®Ÿ·ûé#éénç´ FöŽýÄîÛìzL6p­î 5¤â}®Ý—hׯNº.x?ÿíýÝÆnö“{byœô@¼Ï•Ɉî§$ÐÑGGx]¼Ï»;één§'5™Žð¾1Ÿ¿kCG~ø¨ûé#ó+¹¬òÊÉeZèÍ´ÒÞGOjr~eU ³™¼_óDþXq÷¤&³kC¹LkÙs«½:+~-ãi׆ŽüI ³©ózÆ| Öã=©Éä2­v.¨Ï‰0aI ÞçJ7àÝ Ì4ÇŽð>:ºöÒÓÝή e±—–#Ö¼ÉÔy/ñÒÒ™ù[m_s$'^ùöˆÓÓÝNo¦•Ó®ë&·¡uÄÄ÷ö5G1óü÷*^¹ôÒÒ™ôfZéénçè¹N_<ò§SzR“óóm}ôfZÍâÂ准¾¶<6žT;m}ù×a½–âá(ëµ€1 h%ÂÆÝzO ÏaÙµ¡ƒ-+§3un&ÿmúH¶¯9ŠŽ®½œ¶¸;ŸÜŠ_ã‰W½_8`yyœv]·‰Dº ' ÄûߔѓšL®§uXƒsô¼zºÛF¼LOàôÅÛÙµ¡#ßxmylá}ù†Ûj¬{ºÛyyYacip×ï“Ë´ðܳ£ töå—ç2-ùtûš£h3Ÿ3–ÓoÏÏE”b5Ô§_×=,)ZK— ÿÝ“jç¬[_Ïÿ-—y›çî˜Mo¦uXo«°×T¬3¼—Žð¾a‹Šå2-¼¼¬‹®|{Økœ:¯'ŸŒŸ»cv>i¾ÆÞL+[›N×ïsúâíù%ÌÖ*4æ‚ê{C7™ñ¾V§O°å1ãÛo¡ÂÆl׆ò+² “ÎÔy=Þ×ÞÇY·¾NG×Þüy,Îþüß}œxÕÎ|’ tösâU;9áÊ·xmeåCñ³ÇP¬'5™——u1óü÷Gô¨Š¿©ñ¼]ô·þü{T¸×J˜Ök™i6æ§/Þž?ÏhÃp//5W©i•k-h(~¹žÖç9}ñö|¯É†%ÃŽ×=¡–$1.¹L =Ýíùá«B3Ï€ík* /7Ôe5Æå¾…—{^×ïÛÖZ ðÔy¥—÷žõí­Ãâ)S›+­¡¨rŽ6“[© VÒªôïB“!,ïë&:Uøö§¤­³¯äþ…^sR¶7ÓZñdz)µ>ŒÆðÝÌø÷¤XÉ«\o TŒÖ¤vo¦5?_b§J’âÔy^[9½ì°œÃJwç„gHñ¾}8”@r™¶¯9Š®|»ìÐÏö§oÉ[›>lN ãùfìæ¼žÔd^2çD çKŒ¹wrÅ·“©=ó‹† Äûzpè·@vm褣kï¨ÔÎ>ž»c6=Ýíä2-55hÖ2Ø£kXÔÓÝNG×^ÛÒJzR/-ë¢7ÓêÚýÀ*é](–ªŸ›‰ GȈ÷9¶|ûš#ÇlÔ;ÂûòóµÞk׆Ú:ûªÞCÑ“šLo¦uÄ„v-Ž.1^Š5duôÜŒãÉÚ¼ïÍ´–¼‡P°EIi¬ÛˆªIñ¾ñ·ž%X e%úÌóc¶¯9jÌ2Kýmûš£8ñÊò/£Ôór™^ZÖÅÑs3ãšC±X¯³Ò÷ ¬¥ÅcÉU9ORj…Z!+ù–ZäàGꞨ2„å}#wÃS.ÓÂsilµÃR/-YrƒÀË˺èI½7lΠ’¡ w7vòÜí­ùF²'5™žTû°Í‡…±ç &÷ _Ãhu„÷åïóU§uίÚÉÔy=lYiL˜?wûǘyÁûù^ÀÌ Þçåeí#ʆCKk_[9}XÏ©­hnÉêiXÏ;mq7ÏÝ1›w7vòÒR†½·ÝOÉ®œõí­ù×g”Qú5Ëñxl¯{¢¾4©@8+—ÕØU^ámF •Ûµ]n“\áñÖotÌ<ÿ½|/¥­³¯d(dm”;zn&¿1Î*§Üîsk÷{!ë#£=f±6®¨*޵pdác¹L =©ö|¦ë‚C{Jr™^^Ú•ï¹X;Á+y¿ 7Æ4unfØ&ÎrŸGñk,>gaœUúr ¨/¯å‰¢1Hñ8ó¥^VÇh¬Rê6£±ˆM·Ýö;M~PÊÛdÄãÌ ¸þ~Px]¿$ï“âëU |GêœHñ‡µª¨' Þe68©s> ÄžQ€ð©s> Ëx} Ôÿ;—Õ28´#½VÆmÏ­öé~úÈü!¦'5™Lª=¿béÐïgØ·ã\ŒK&Ôÿ[uÂy² Ë'rYíÿ_QG=urY­îËl`ÿê§:á<ÂòUª¾!uÍ'$øD ¨ÿ¨ì·]…¨ÝN³® â/¾ßl­–²sÕ”e60ß×1?‘â/?R€JÅ ¼ ¾e68_×1¿‘â# þ&ðÕq¨P®aOƒïD™ î'f>!«°|&—Õæ/ªŽÃ …+¡ÆÓˆ—[MeG™_­uF ¨oP„p$ÊeµŸ—©ŽÃNc5Ì£5þµ6èµ–éÑ$òD ¨_®:á.Âò§»U`§Jär§!¯µÌ\Vóâ0—§ê”¨Œ$2ï’ú ê8ìPé·ùRÇÙÑ (Uf%ÉÁcIäA¹ó®?É–Oå²ÚÀŸIŠC©Y­ÉÃèãIl f?ð‘@Pÿ@u Â}Òñ)ó‚¿Iuµª÷ÚG=‘›$yø—$ õ¥@BuÕª÷äañAI˜uHø”$q½êªÑ(ÉÃâñ$ÒPuGØOˆÏ‚úVàZÕqT¢Ñ’‡Å£IäZ³î“"õ~¬:ŽÑ4jò°x,‰üج3Âçd– —Õš€W€STÇR¬Ñ“G!¼–MÀ© >¤:¡žô@fƒðE §:–Bhp‡iðžHø¢$a‘"òA} P7·£ðZò°4p¹Ü¬#B’@D‘@P_ \Sqx2yX0‰\cÖ !ò$ˆAýan2ôzò°4P¹É¬B # D”êßnSp^_$K$‘Û̺ IJ KŒ*—Õn¾ãƹü–< Õék¿-Ôowëd¢ñHcÊeµo÷8yŽ:m@]UgïÁMÒóc‘"*’Ëj×àÐ-àë¬áTªNÞ‹¿õ‡œ*\x‡$Q±\V»XL°«Ì:i0ëŠÂ÷d¸$ÔŸ´³Pá]2‰.*f6,§¯ÛTž$M¬¿œ.ÉCTCˆ¨J ¨oNÅ艌§I£p9‰¬Â¸=ɦñ$üE†°DÍrYí[ÀÕ>O’Gå\x¯–‚ú÷jy¢’@ĸä²Ú¹ÀC@¸’ã%yTÏ¡÷,…±»üÙñÄ&üM†°Ä¸˜ Ð,à Ž•äQ†³fIòã%=a›\V[üè*~L’ÇøÙðv_—{Z »H¶Ëeµ»€oZÿ–äaŸq¼—w‚úÍŽ&|I†°„í̆êdàIIöªa8ëIàdI ÒNÊeµ [¹å’äQ½ Þ³Àí þr ‡HÅN¢ ~å²ÚBŒa­ ’äQ»2ïÝŒáªöYa©T e¬\V»¸cãš$q*x_î õGË*IDØN*”°[¥ ÕP.«Å˜Ãñx]<ÔcTøžWxœ‘Ita§Š“ÐêŸ>ü;Ðçd`Ó‡ñž}Â|›0ÞÓ±Tzœ‘o#Â.U%â?æ²Z °¸8ÇÞЮÏ@ˆjI%v°µáÊeµW—§Œ/´†· ø9ðx ¨ÿ©‚ã%‰×Hãåhƒ•Ëj³‹€ÀYÕ>¿A=¬ÆØG³µ†çK®Ê#ÆÃÕ†*—Õ:OççRâ–) ªxxøM ¨gl(S’ˆpœTQ+å T.«Í> ÌæaüØU½/ ^6ëçA}‡CçRþ o“J#jQ· S.« ÌNfÇSá­æÞ¶¯›Aý—c¨ÛÏJ4>©0¢Z × å²Z3pð`:08 ø0: h&õf~à°Ø è@þ¼ìÞþ ¼êƒN¿¶ 5Üg&„ðžJ÷È^ƒú#ŸBi€Ÿ|†B×IÃãòY !\# Ž÷Èg*„pœ44Þ%Ÿ­Â1ÒÀxŸ|ÆBÛIÃâòY !l# ŠÿÈg.„7iHüK>{!DͤRDUä¶Æ}«‹¡3¡éwE›\†q£ÃõÀN`šù¿û̃¬ÇßžY†P@n{"„¨Ø8¿u]C£”14d“ÿ÷´áÇ?.ê€ôDDEêýÖ×ÂYãíyLÎ4ÿû†ÊNÙ´Ó<^’Fý’ßX‘â_v UÌ~4ª»>tF^»0®?oÆÂ¡Áš^­(Kº˜ã”Г'§'³aÜïÝ )àu`kT‹Ü”Гs¢Zäcæsèúhˆ…CÄSiU1ŽfC×ÇzàùX8´CmHCQ$ôä$àÓ@88AmDc+Jå¼Õ"'$ôäçßDµÈ~BO¥;OÇ¡•ñTºèíø:N"źgg€ßÄ¡Œâxê–$" =9ø°ˆ)§*&RÇÅÕÀ¯¢ZD¾}‰²â©ôlà"Œëã,ëï•&‡J"…žÃ¸>žŒ…C[USO$šºcR·ÄòÔú7ŽäQ쌉íÇ †º„ÅSéb\—bÌ÷•äñ$bÙüx<ýIu0ªù:$ôäÀÕÀgUÇ26&b¿j‘ÇkM4¦x*Ý,¸>Ωôy>I"–µÀ£ÀòX8Ô¯:|—@zò8àà«ÀŠÃ7“G¡€EµÈ›µ"ê_<•>øÆõÑZK>K"}×ÇÃ~[Õå›’Гg‹ñÐü\JÅ~,j‘uv(Ô‹§Òa\¶Ìûù0‰XâÀÒX8ô¤ê@Üàù’ГŸÁ¸Kìyªc±“¢äQèàÞ¨ùO' ÒW7§Ú]¶“À+À}±pèQÕ8ɳ $¡'Ïn>¥:»ÕAò(ô[நYãô‰„}â©ôBà›À‰NžÇçI` pw,Z¡:'x.$ôä\à6|b¼œ:K…~ |'ªE6ºyRQx*½¸˜ëÖ9%‰°¸=­Vˆ<“@zòCÀäžTÇÉ£ÐCÀ’¨ùUˆ‘â©ôI×ÇE*Î/I$ïI`I,zUu vðDIèÉë{€6Õ±8¥A’‡¥¸)ªE~¨:ñTú.Œá*¥$‰ sw,ºYuãÕÐ $¡'O~@ëÔQƒ%Bk¯Gµˆ¯–6Ö s¸êŒq‹7I¦øz#k5lIèÉ%ÀwUÇá´N…n‰j‘;UáñTº ¸øÕ±”"Id„€kcáPÃý~JÃ%„žìƸ¹¡§y$yXž¾Õ"ݪñ²x*}.Æ<”ª[¦WD’È)àšX8ô¬ê@ªÑP¿H˜Ð“_ĸ—¿$*«ç[ÍÏP8 žJ HRçÉ žJ ‡l;ÎÂ@Òü FÃô@zò_ÿ£:7x0yû·¨ù'ÕAxE<•nV—¨Ž¥ZÒ)i°0õªd,uŸ@zR~ üêXÜàƒäaù/à Q-¢«¤‘ÅSéS0®©Ž¥V’DJzøB,Ú¤:ÑÔuIèÉ“0n|¼êXÜà£äay¸4ªE<±&Þmæý«VTÇ2^’DJ.©çûjÕíHBOž‡ñ“’áÖùÜ`­À*üIŽû„Y—¼æ`’ê ‘$‘a&aÔ%W¸2)™Ð““w€)nœÏ ¥–ïJòpÍà˜¨Ù§:;ÄSéO/«Ž£ÑU»Ù°0™xpóái±pè÷NŸÄ­ÈÍx¬:ˆZÅSéã€íªãðõ@fÆÂ¡7*ÜÑ9„žü;<˜<`d²ä¡ÄfkT_U€•KLàpszýË—¯”•4$y(õeÕŒÃ"ÕøUq²ðhò‡ë˜c $¡'OÎvª|!Lg›u­¡ÄSéÏÓTÇágVÒðpò˜fÖ5G8Ù¹ÌÁ²…(ÔˆuíÕßp¬®9™@þÖÁ²…(Ôˆuísª¾áX]s$$ôdù1ážSÌ:×â©ô_ªã¾ÑiÖ9Û9ÕñìSEÝj¤:wžê„ï8RçœJ Ÿr¨Üº#+°êF#Õ¹sT |Ç‘:çÔNôOÚUP߆ר{ÿ/J>Ö:w6í×É\¤l¬s.˜?Ö}›×³oŽÖ4%Ä„³h;{f¨ý­¶ýO-`Ò…êV(ï]q/ý›×—|lòÂisèí÷ø ¬BcÖ¹Zؾ=¡'§oÙ]î`Fg÷Æni·|™ a{W@ftš;5[ËlzíÇFµÈÛªƒMµwÞ-L$Áëî– w§xk;¶Ñ·y=C{Òvì,ÚÞHóáîß°0Öâ†Z…Þµ«É­^NÓ”‡/ñůhÅö;ô:1„åÈäyaggòHíD¿ã?Ø¿2n[™b0£³e<Ÿ˜= nœ\ÍÁ…pqï¢ùð­sæ3éÂE¾äZæÌçà[ÛЗ-ap·û߬';‹¦)!£Gt¬ú_­¶’¨ê^Y©ªîU‰r‚e:¦wÍ‹ t¿Cë\×^¹ÔNz×¼è¥×Þuïx§ n_x#‡;‹¡=iôeKœ:MY͇ßô_ò€’“íuωÒ0Ë)…ç4BÝ›édáÖÜÃО4½kW;y*Ñxl¯{NL¢ë@™HíÌo ftR;cÈk¼cü}^£oãÖ|ymçŸQò¸ÁŒÎ`FgBxZþ~s§Æ¤+‡¯2íÛð­óN`¬ÌµoIDAT0£Ó»æE3:mçŸ1êõ<0{O©´Îÿ›e µ“¾[óómçŸQó{PMY¥^פ+cnͱ(«{U˜îdá…Ã5}›×Óv΂Çôm^OŸ9É<áØYÃŽé+1ùÜlNÒ ìØÆàžáÃcÅs;¶:l4¸;Mßæõ ¼µ  ìä¥Ç9¥ð}jž¢íìÃzVÖT± Ç΢ùðPÉÇ­Çʧøó(4¸;Íàž4fÌb`Ç6z×­¦yJ¨š ¶×='ÈTÊ,ËjD­Æ½ó‘[è]óâˆ9R+¶R;è~'_N©Ñ·á5öÿ4a4Òsg3Ø“¥wÍ‹ô®yí–/ÓÜ©åÅ@÷; ftÚ¯½xÄê±Ö¹³ó ª5d6!< ý»ä“@߯­Lè:†öë.É7º#^ã¼Ø»lUþß@> ftö.[Ɉ®cè]ó"»×¼Hûµ;Îzþ@÷;ùçù÷©Ò²ö.[5êë*•àâjݫёNŸ eÎ|ú7¯ç`QãÕ·y=ûŸZNëœù´Î™Ïàî4½ëVÓ»n5Úuwæ¶¾Íëó«˜ ÑŸúÍsOºïj¹‘Ï^@ëœù ìØFvÙZæÌ§}á6½S¥õm^OïÚÕù÷c`Ç6†ö¤9°nõˆ… ;¶q`ÑÓk1ß×bûŸZÎО4‹†}Å©äó°…Ãä…7ŽX¡WE±½î9‘@\ül;ÿ çÎÎ7†ûWÆiîÔè|ä€|2éÛ¸uØ·w«Ñ/eB×1À¡%Ä…%@sG½÷ÿ‚½ËV¡}û+LO£=< ýŽÿÈ7ÌùDR”ÚÃÓŒÙL4ûWÆi¿öâ|ÃJLVƒ®}û+%_ãÞe«hîÔh¿öâ|r£Á׿ûH>å_Ù ï½ÿnöÆö¯ŒK\…ÇV[Vûu— K {—­Ê'àý+ãn%p¹îÕ¨CÅI­F§¸¡n><ľ÷²wŽh‹ï¤uÎ|š§„ò‰ uÎüaߘ'̘Eó”¹Õˇ­öj;gƒ»Óì)³|vp·1/Óvö‚a+¢¬¿Ú»â^vl–ÔZçÌgpOš~³q/÷-ÝûVÜË”o ŸÇ±–÷®[Mû #5n|ûرƒom£yJhÄ{Ûzø|ú6¯7z0E=½J> 3fÑ>ãFô¥K8¸Çè‘ î>”Hªd{ÝsbÄõõ …Ã#­sg^j;ÿŒC½‰‚oìÂÓh¿î’|²h;ÿ Ú¯»Äø[xšÑÞÿ &t3¢Ì'¡îwòÃd…q ft´o…Öy'Ð~Ý%Ã&©ó}O6®ÂXµ[¾œ/»oÃk%_ã„ð4&]£uÞ ù^ê —5wjù×i%Íöë.É¿/V’(ü[5e‘T­¸­rÚÎ?ƒök/ÆE°y²Û'Üfߊ{9ìØY#¾![ÿ>h.#If®¢*ÕHõm^ÏÄ¢á`Ô‰s}Ù’¨õœÂoô½kWÓoö<ŠË³bí]çìÜN`Á¢çn;Ûˆ»Ôþë5•z¯w§ó¯§ðoÕ|pè½ÜÎ'úöê—JÛ^÷œH ʬX©ù«Á«†Õ8–»·Ê,õ-¾x~¤Ô7ðr1Ys 0<á•+¿¹SËÏ·XÃq¥b.ìYŒeû ÅÂIôæÃCU-ÓÍOD—yNáß­äлvu-C4¶±6gîI3¸;=æëm;{¹Õˇ qùùŒBµ|õʉr]ȺŽ)¹O‰áZ7L¶FÙùjWCÙY– ª }ÀD§ /ü\üítÂŒ‘C&Öq¥þn5ŠûŸZ޶Øh«í}Ôªxî¥0&'Wb îN³õrú7¯'°`Ѱ êžo”ÿÙ™Ö9óəϳ ì0æEÊ%Ÿj?ôÙ]  $´;P®2.Ãä‡jÝàgçN}»oã°œê*°ˆ5q²½îÙ>Wñ¥›}o)1˜Ñi L¶ü°©â°cŽ` µ3߈Y«¦&žóq†rh %8øÎômÜJS`"?uj¾L0—âv¿Cÿ«Û9øÎô®y‘ÃŽ9ÂøßÔÑ·q+wýýì¦)0‘ƒï|ÀÁw>àÀÚ?лæÅaåõ®y‘Áž,Í-'w1Ú9¢aÅ2”;=ƒþW·³eœÃŽ9‚à?]5,þÁŒÎPî@þ5¶œ43¿±°ü–“»ò{P Ë>øÎô¿º½÷ÿ‚‰ç|<_öPîÖþÁž,ýì¦ÿÕí t¿CËÉ]U•em"ìu;M‰´œÜÅPîÀˆÏÁøñ]ËW¸yÂj}éú›> œTéñ{WÜËàûF/ð°#§sðýÃþ—‹?Áþ§–3°mÏ^@ðÝBSÛ¤ae4µMâ°#§Ó¿y=ƒïï¤ÿM4µMÊ—q`C’Þu«™8oäo5¢ÿM þeç¨óƒ»Ó õæòßà'Î=¡Þ\>–æÃCeÏßÿƦü1fÌâàû;ã6¯g¨7ÇÐ\þØ}O{H*Id¹ø ¾¿“¦‰“†¯ð6$éÛ¼žÖSæsØ‘ÓêÍqð­môo3b²6òb——}m…†zs l3^_ûÕ¥7/díD/õú‹{*Ö-DŠã±â-.ÿÊxþØâÝú•–U®‡6ÖmYðpT‹\ãæ «O¥¿Ü\ɱ…·¸(ǺÍH%cé;¶±ÿ©åÃv¨7™·èmÈÆº-zñ.ìâcJÝÖ£p×øànãwñù‰g/14Ö»ÖØ‘]¸d÷°cg1éÂE%rñ”c%Gk7ø‚¹$+¶¾Íëó·rí–#=߸¬äk*VÉça%°RjØ‘W,úVµO äÀ=v—ëV‘ÃrÄMQ-ò}ÕAŒ&žJ/Q‡pÎî;ÿaØ.ú:òåX84öX\œ˜ymìC„pD#Ô½?ª@8ÇZÍU‡É¨{N$M”)D%ê¾î™¿ׯ:áŒÞu«]Ù'Sƒ~»H æOŠ6ÔÚOá ;ëýçl ¨Ûb-3°ÃØ/S§¿€èHsb#!ÀóÀ•-D)Ï«  ksT!ƯðG»z×­vüVóã°Ö‰BÂø­Cå6¬ÁŒN߆×ò+š¬»í6ØF½ŠEµˆÛ§l¤:÷Œê„=z×+Ôr«—»þƒWUr¤ÎÙ¾ ¡'ÃÀŸœ([4†¨!¡'Ý<åG£Z$åæ Ç#žJ§NÕq_ÈÄÂ!Gfõé˜rÝOh ÏØÔHÉÃô+Õßp¬®95„ðKË¢P#ÖµÒ»/…°ŸcuÍÉ2òG‘…pFÃÕµX8ôkdµ¢pÞN³®9±Õ"[€uN•/ê—5îÒDú:³®5"[w Q‚£uÌÉÈ-|§8i¸Dqúú‘ê„ç9ZÇY…U(¡'ÿáôy„z£% ‡Vd}Õ"v¢`·ÄSéÀUÇ!<é'±ph¡“'p#ü3p›ÓçîS°×CŒC<Õ?—"ltF,Úàä ÜH À{@«Óçj¹Ü鎊jÇ~áÏ-ñTúg@ùÜ¢zOÄ¡Ë>‰Ós ˜ø¿8}¡^¹$áÐðÕ¿x!y˜îvú±p]ÞV8Çñ:.$Ó]À—Î%*N%=uÊÌ»¤>¨:á:qçÝR\I Q-²øŽçêYIÃÁ[™|ǬS^òm`¿ê DÃÛQ—\áV„¨¹p%+ Oû½Y—<%}ܤ:Ñðn2ë’+\K ¦oº|>á=ž­C±ph)P‡hX ³¹ÆÕÕ"qÀÕ(ø)ð1•qÛ½|!mRÈhê:$ô¤†qüêX„­þ øBT‹èêBº ø4\C?3þ¿©`ßÐ À}ÐôDÑóKë¾x*ݬ@†~½b°0õªd,u7R,ªEô¨ù ðoªc¶ù·¨ùŒÚäQ•=‘CgÓŒ¿MSS^,ê…C—KTÆ!l±$]ÚÉ X¢ZäŸ0nkѯ:Q³~`¡ùY6º¡é¯Ìÿž¯4S,úRªcUKó3l “@¢Zä'ÀlÀ7·õögÙægØ@†¦g÷ýÍú÷åÀ ª{!–X8ô,0 x@u,¢b³ÌÏ®¡ÔýH9 =¹ø®ê8DEn‰j‘;U1RÙ9iÀ}æÿì>ÿ1tÙ¡MØt¿|ä‰ZñTzð Ku,¢¤nàëõpO«Z5lHèÉS1.sTÇ"JZ |=ªE^QHi•N¢—zÞ°„R“éåÄSé»ððoÉ7¨»cáÐͪƒ¯†N –„ž¼¸hS‹ ¸)ªE~¨:ÑÕ’@†.ÃÒ*\¾{&ÆœHÝ^OñTú$àNà"Õ±øÜ“å –®Û¯n+|µzòCHÍ·¾¶xXÕ"ÿ£:±Õš@J U ý x¢Þ†±Š™ÃZ·sUÇâ3Ûy¸ªÏ$KBOΟáÜgUÇâ3¿¾Õ"UR¹¡0&çCÓNóo/ÿŸ_aUxü4`~™R¢¬úO¥b k¨:Û‚1\µBu Nð\±$ôäùÀÍÀ§TÇâq¿îŠj‘5ª©Î¨;ÑaDobhZÑcIbèLó¹ó²šîs6vûÄSé«€SUÇâ1¯÷Å¡GUâ$Ï&KBO~¸8Ou,ó poT‹ü§ê@Äø™÷ÕZ ÄTÇÒàâÀÒz¾•<Ÿ@, =y6ÆR—+eÈÏ€¥Q-²Nu Â~ñTúTàkÀWVÅá4Š>àGÀñp¨NW:Ã7 ĒГÇaL´8Bq8⌠䡨ySu0ÂyñTºX\,“/g-ð(°<ùò¾K …zò Œ D&ÜKû5ðhT‹<®:¡N<•þ(pp)pŠâpTÛ„q‡ðÇcáПT£š¯ˆ%¡'Ƹ@.J¬¾ñ•0&”j‘wU#êK<•ž±—dp–âpÜò°x2mUL=‘R$¡'gŸÃ¸@ü2¡Ǹ@~Õ";T#C<•î>±@å\¼sË”nŒ{·=ü&eÇS·$Œ"¡''a\ QŒ äµÙæ5Œ $ü&ªEö+ŽGx@<•ž|c9ó<àtêÿ†­ƒÀKÀŒåÜÏÇÂ!ùU!I U0‡º>‰1Ìe] •5¶º@^ž—¡)ásU×à$Œ;i„…“ÂøÌ­À«Àf¿­š²›$qJèÉ“1&­ äcˆÛß¼1.×9tlŠj‘?º‡£Š§ÒÍÀqÀG06rNŽ> „€@ÚI_ÒZ8tM bü¶Ì`?°Ð üxØ…q§ä?oÆÂ¡A§_›ßHqHBOÎf`\ Ç0ò™BuÈF^ ï`\ ;¢Zd»¯K!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„B!„BøÎÿ«…(w¡0rIEND®B`‚libwmf-0.2.13/examples/000077500000000000000000000000001441723000300146655ustar00rootroot00000000000000libwmf-0.2.13/examples/2doorvan.wmf000066400000000000000000000171661441723000300171450ustar00rootroot00000000000000×ÍÆšøÿøÿi¬?ëP 2&ÿÿÿÿMrEdMicrosoft DrawZ&©MrEdŸBB|˜ÿÿÿÿÿÿ Helv¢Šÿ)_ ¯ ÿÿÿÀÀÀ€€€ÿ€ÿÿ€€ÿ€ÿÿ€€ÿ€ÿÿ€€&MrEdøÿøÿi¬ øÿøÿ ´qÿÿÿ  &ÿÿÿÿøÿøÿi¬&ÿÿÿÿ„Rìüÿÿ-úÿÿÿ- & MrEd$½kº]ø2½k&ÿÿÿÿ„R¦~&ÿÿÿÿR¦^&MrEdRgZZgR&MrEdÊR¦^^¦RÊ&MrEdöM4\\4Mö & ÿÿÿÿ&ÿÿÿÿ„z¨~&MrEd„zf{{fz„&MrEdÅ}¨~~¨}Å&MrEdîm0||0mî & ÿÿÿÿ & ÿÿÿÿ&ÿÿÿÿ˜Šµ¬&ÿÿÿÿ˜¡È¬&ÿÿÿÿ˜¡È¬&MrEd˜¡…««…¡˜&MrEdۢȬ¬È¢Û&MrEd P««P  & ÿÿÿÿ&ÿÿÿÿɤƒ&ÿÿÿÿɤƒ&ÿÿÿÿɤƒ&ÿÿÿÿɤƒ&MrEd Ñœ{úÿÿÿ- Í&MrEdÙ“püÿÿÿÿÿ-ðú-ðt—Õ & ÿÿÿÿ&MrEd'ë…`d‰ç# & ÿÿÿÿ&MrEd@sFJw< & ÿÿÿÿ&ÿÿÿÿ×—t&ÿÿÿÿו-ð & MrEd$ ü ÿ  & MrEd$7å4Ý@×Dß7å & MrEd$bßg×sÝmæbß & MrEd$‡‘þ• Œ‡ & ÿÿÿÿ&ÿÿÿÿ9—t & MrEd$;AN I; & MrEd$8b4n@tDh8b & MrEd$bhitvnmbbh & MrEd$‡H’L—=Œ9‡H & ÿÿÿÿ & ÿÿÿÿ & ÿÿÿÿ & ÿÿÿÿ&ÿÿÿÿ¬Šµ&ÿÿÿÿ¬Šµ&MrEd¬Š{Žüÿÿ-ðŽ{Ь&MrEd抵µŠæ&MrEdKK & ÿÿÿÿ&ÿÿÿÿ½˜f&ÿÿÿÿ½˜f&ÿÿÿÿ½˜f&MrEd Å^úÿÿÿ-b”Á &MrEdˇSüÿÿÿÿÿ-ðú-ðW‹Ç & ÿÿÿÿ&MrEd'ÛzDH~×# & ÿÿÿÿ&MrEd@ôp-1tð<&ÿÿÿÿÊŒX&ÿÿÿÿÊŠü-ð & MrEd$úöë!îú & MrEd$6×3Ï>ÊBÓ6× & MrEd$]ÓaËlÐgØ]Ó & MrEd$~ï†íŠú‚ü~ï & ÿÿÿÿ&ÿÿÿÿ#ŒX & MrEd$%)5!1% & MrEd$6H2S>XBM6H & MrEd$]McXmRgH]M & MrEd$~0ˆ4Œ&‚#~0 & ÿÿÿÿ & ÿÿÿÿ & ÿÿÿÿ & ÿÿÿÿ & ÿÿÿÿ & ÿÿÿÿüß?ÿÿ-ðú- & MrEd2$—Q‰Óð!àVÔiÒ€ɘ½µ½¾gűÉåÊûÏêÊéé<é;¼7…0R+;&6 21þ125€9sBjL]Z=‚«÷ÎåÊÈÉÕ¼‰\7_1]-Z(W&S$I#7#&#ý!Ì!!l"U'bq€¬‹ˆü‚  ¶Îà$î4EæLôOPP™a­aÐWÔ>ö6-¶µã±Å¬®¤’˜ˆrpiYg=j$q}‹ð¢â¼ÙÑÑìÇ ˜Ï'ÑïÌ×ÅÇ¿»¹±±¦Ÿ’“Їƒz~h{YzKz@{1}'ƒ ˆý’ðœã¬ÚºÐÏÇç¾ÿ´§-š;?H<ö9Â4/u+V'E"E-þ%üùô íçÝÝÃŽ#ª2=50:(DQ-ð & MrEd$ÔÂÅÏàÏñÔûÇçÂÔÂ&MrEd7EZüÿÿ-ðZE7ú- & MrEd %qµµ & MrEd%yÜÌÜ & MrEd% 3BbD¥GýK(LPNYNgNxMxÓ & MrEd%sKŒFù?…:6b,N & MrEd %­´è³,°&ÿÿÿÿ?BS&MrEd?BJüÀÀÀÿÿ-ð-ðJB?&MrEd4J=Süÿÿ-ðS=J4 & ÿÿÿÿú- & MrEd%,­[¨ & MrEd%jVjÓ&ÿÿÿÿHiü€ÿÿ-ð & MrEd&$–¾¾ŸÞ…h4BV'a#q!T5;G#Z lâÆ¦µ¸°½–¾ & MrEd`%.w²Ã²É§ÑØ’âˆêòzúuqje)c4`B_U^k`c‘kr©z³ºˆÁș͠ϦҪ֬éªgœÛ—æ…îyúlcY'S;NPNeQ€Z–h§z·Ž8Ž & MrEd$%Í)¨Æ*ã2ý9<9<r9”8š0¢,®'É!áï!ý & MrEd% PJR?V6Z.`(i"s~±Ú·ؾÔÊÊ & MrEd% xSP¹NéKI¡Df>%4U.N* & MrEd %ÆÓÎÅ༠& MrEd% ãʇIZZHh9v/‡'™"§Íß$ & MrEd.%9"UàVþ[(]U]t\ [ÃWèPñéÛæ¬ÝIÞÜñÛßÛ×ÜÒßÎäÉ & MrEd$,»a¶aÍ%Ó,»&ÿÿÿÿçµ[û & MrEd$ ½óðöîñêïäïÝòÖöÐýǽ&ÿÿÿÿþ¾[ûüß?ÿÿ-ð-ð & MrEd"$þÌÒÐËÄ"À+¾8ÀYÆ[ôWùKûóëþÌü€ÿÿ-ð & MrEd"$ÿÌÒ ÐÎÓ&Ö/Ù;×DÛZôVùJûóêÿÌüß?_ÿÿ-ð & MrEd$ YÆOÏF×BÞAäAëFñTú[óYÆ & ÿÿÿÿ & ÿÿÿÿ & ÿÿÿÿ&ÿÿÿÿøÿBƒ&ü€ÿÿ-ðú- & MrEd:$ÅÇ%ÉBËkϔӹÕßר"ÙMÙkÙyÙ{öWö(òþòØð³î–ìyêZç?ã)áÞÛÅ&ÿÿÿÿBqÍ & MrEd%CVö_ & MrEd%Baöj & MrEd%Amöv & MrEd%@xõ & MrEd%>„ôŽ & MrEd%>‘ô› & MrEd%<ó§ & MrEd%;©ô´ & MrEd% ´/µU¸y»¥½ÇÀëÂÃÅ:Å & MrEd%1JUKŠNÁQÿTHViV & ÿÿÿÿ & MrEd% ã&çFêjî‰ñªôÍöíø'ø & MrEd%F…¶ áý)üß?ÿÿ-ð & MrEd($7Æ'ËÐÔÙø &3oyyyÐUËFÇ7Æ&ÿÿÿÿHiÇüßßßÿÿ-ð & MrEd$^$_J_G˜—þ–^ & MrEd$M_K˜a˜a_M_ & MrEd$ý¤¦@¦;¿-¿¾ý¼ý¤ & MrEd$C¦>¿`¿`¦C¦ & MrEd$1P(ˆ9ˆ?P1P & MrEd$8”5ª#ª'”8” & ÿÿÿÿ & ÿÿÿÿ & ÿÿÿÿ-ðü-ð'ÿÿ'ÿÿägþ>0œ€?0œ € ? 0œ €?libwmf-0.2.13/examples/Eg.wmf000066400000000000000000000607341441723000300157450ustar00rootroot00000000000000×ÍÆš(# ` ã0¾  . ÿÿÿ  (# úÿÿÿ"-ü´-$!ŒHŠ!üÿÿÿ-ðüµ-$!Q(÷¹ÀŒHŠ!-ðü¶-$ Qša›**ø§¹À(÷Q-ðü ·-$ šÿÈŒ]›/25§*ø›*aš-ðü ¸-$$ÿŒ *‹ó¿ f¢AÄ52›/]ŒÈÿ-ðü¹-($ŒQ7‡–PuîôÃ}|SÄ¢A f¿‹ó *Œ-ðüº-.$Q€  ^ß°ªwwIégöîÔ·ãS|}ôÃuî–P7‡Q-ðü»-6$€ ¹ #  Uh ‘2 Øþ*͆žít^MÚ*_ ïòtã·îÔgöéwIw°ª^ß € -ðü¼-D$ ¹ ‹I‹NT_zç  ² Ñ~ L R £ïþÅcŸÓ|M]ÐC^-õtïò_ Ú*^Mít†ž*ÍØþ‘2 Uh #  ¹ -ðü¼-J$#I‹Æ‹ËYÛ&öô à L” †f Ë; uìÙÊG«¿AyÌha[–õ^-ÐCM]Ó|cŸþÅ£ïR L Ñ~  ² zç _NTI‹-ðü ½-J$#Æ‹D‹I]Y/t˜Õ È© € FY ”5íOõ¼Ú2ò±;£Îš)–a[ÌhAy¿G«ÙÊuìË; †f L” à öô Û&ËYÆ‹-ðü##¾-J$#D‹Â‹Ça×8ñæ D¿ }š Àx We:Æ 1 ¥ö#è«Þ;Ù½)Κ;£²±2üÚOõí”5FY € È© ˜Õ tY/I]D‹-ðü&&¿-L$$‹@‹EfU@n’ø ÀÕ ø´ :– †zÜa<K¥8*•©@Q½;Ù«Þ#è¥ö1 Æ e: WÀx }š D¿ æ ñ×8Ça‹-ðü))À-N$%@‹½‹ÂjÑIë) ;ë rÎ ³´ þœS‡±vg‹\VˆTWª^åQ@©•*¥8<KÜa†z:– ø´ ÀÕ ’ø nU@Ef@‹-ðü--Á-N$%½‹;‹@oORh6‹ · îé .Ó x¿Ë®(¡Ž–þvø‚–¡|åª^WˆTV‹\g±vS‡þœ³´ rÎ ;ë  ë)ÑIÂj½‹-ðü00Â-N$%;‹¹‹¾sÍ[åC, 3 i ¨ñ ñâCÕžÌÅqÃçÄgÊïÕ€ä |¡‚–øvþŽ–(¡Ë®x¿.Ó îé · ‹ h6OR@o;‹-ðü33Ã-P$&¹‹7‹<wJccP„> ¯- ä " j »ü÷xõäöYüÖ\ë& ?«  €äïÕgÊçÄqÃÅžÌCÕñâ¨ñ i 3 , åCÍ[¾s¹‹-ðü66Ä-R$'7‹´‹¹|Çlß]O *B ^7 ›. â' 2#Š"ì$V)É2D@ÈRU ié …D « ?ë&\ÖYüäöxõ÷»üj " ä ¯- „> cPJc<w7‹-ðü99Å-R$'´‹2‹7€Eu\j}a §X ÚQ L [J ©JMaSÉ\:j´{6 ‘¿ «Q Ëß D é …U iÈRD@É2V)ì$Š"2#â' ›. ^7 *B O ß]Çl¹|´‹-ðü==Æ-T$(2‹°‹µ…Â~Ùwùr #n Uk k Ôm !qwxÕ‚<«¡# ¶£ Ð* îº Q :{ ß Q Ë¿ «6 ‘´{:jÉ\aSM©J[J L ÚQ §X }a \jEu7€2‹-ðü@@Ç-V$)°‹-‹2‰?†V…u„ ž„ Ï… ‰ L ˜—ì£I±®Â Ø‘ ñ ” 0! W¶ ƒ { Q :º * î£ Ð# ¶«¡<Õ‚wx!qÔm k Uk #n ùr ÙwÂ~µ…°‹-ðüCCÈ-X$*-‹«‹¯½Ó’ò• š J  „¨ Ų ¾cξà" ö  ,| Nÿ sŠ ž ͵ ¶  ¶ ƒ! W” 0 ‘ ñ Ø®ÂI±ì£˜—L ‰ Ï… ž„ u„ V…?†2‰-‹-ðüFFÉ-Z$+«‹)‹-’:˜PŸo§ –¯ ƺ þÆ ?Ô ˆåÙù3 • )þ Fp gé j ¶ò ä‚  PW ¶ µ  ÍŠ žÿ s| N , " ö¾àcξŲ „¨ J  š ò• Ó’½¯«‹-ðüIIÊ-Z$+)‹§‹«–¸¡Î¬ì¸ Å AÔ xå ¸÷ P $¨ > \p }ß ¢V ÌÕ ù[ +è a| ú W  P‚ ò äj ¶é p gþ F• )3 Ùùˆå?Ô þÆ Æº –¯ o§ PŸ:˜-’)‹-ðüMMË-\$,§‹$‹(›5ªJ¹gÊ Û »î ñ 0  w 3 Å O mz à ´M Ýà ? ; qM «Þ êv/ú | è a[ +Õ ùV Ìß ¢p } \¨ >P $ ¸÷ xå AÔ Å ì¸ Î¬¸¡«–§‹-ðüPPË-^$-$‹¢‹¦Ÿ³²ÇÆäÛ ñ 6  l ! © < î Z ; z œí ÂQ ë½ 0 Iª ~+ ·³ õA8×€Dv/Þ êM « q? ;à M Ýà ´z  mÅ Ow 3 0  ñ »î Û gÊ J¹5ª(›$‹-ðüSSÌ-`$.¢‹ ‹$ £0 »E Óa í …  ² " æ @ " _ f ² ¥ Ì` õ #, S ˆ Á“ þ?¥…7ÑÐ!íD×€A8³ õ+ ·ª ~0 I½ Q ëí  œ; zî Z © < l ! 6  ñ äÛ ÇÆ³²¦Ÿ¢‹-ðüVVÍ-b$/ ‹ž ‹¢ ¨® Ä áÞ þ   - = ` ^ › ‚ Þ ¨ ( Ðz ûÓ )4 Z›  Ç ü D‰Ó˜!-u™íÐ!7Ñ¥…?“ þ Á ˆ, S #` õ ̲ ¥f " _ æ @ ² " …  a í E Ó0 »$ £ ‹-ðüYYÎ-d$0ž ‹ ‹ ¬+ Í> îY | 2 § W Ù }  ¤ U Î ž ûî *E \¤ ‘ Év é FcŠäÓj ÷rŠÉ#%G™-u˜!Ó‰ü D  Ç› 4 ZÓ )z û( ÐÞ ¨ › ‚ ` ^ - =   Þ þ  á® Ä¢ ¨ž ‹-ðü\\Ï-f$1 ‹™ ‹ ±¨ Õ¼ ûÖ !ù H " q T › Œ Ç Í õ  & c Y¹  Èy ã ETˆÌÐJÎmXÃè}}ùG#%ŠÉ÷rj äÓcŠé Fv  ɤ ‘E \î *ž ûU Î  ¤ Ù } § W | 2 Y > î+ Í ¬ ‹-ðü``Ð-h$2™ ‹ ‹ µ& Þ9 S 3u ^ ž ‹ Î º  ê E  ‹ Q Ø ˆ, † ÿè @P„¿Ë4°g1»¸ErØÔp<¯ù}}èXÃÎmJÌÐTˆã Ey  ȹ c Y & Í õ Œ Ç T › " q ù H Ö !¼ û¨ Õ ±™ ‹-ðüccÑ-l$4 ‹• ‹™ ¹¤ ç¶ Ð Dñ t  ¥ H Ø  ¼ C  | L ·Ÿ õø 6W{¾Ã*]±” e£Æ3,È—bi¯p<ØÔEr¸1»°g4¿ËP„è @† ÿ, ÂØ ˆ‹ Q E   ê Î º ž ‹ u ^ S 39 & Þ µ ‹-ðüffÒ-n$5• ‹ ‹ ¾ ð2 "L Vl Š “ ¿ Á ö ÷ / 3 j v § À æ(hmƵ*”P£{ú÷Vyµƒñ¶d'ibÈ—3,£Æe” ±]*¾ÃW{ø 6Ÿ õL · | ¼ C  H Ø  ¥ ñ t Ð D¶ ¤ ç™ ¹• ‹-ðüiiÓ-p$6 ‹ ‹” ž ø° /È gè    Ù <  p R « ‘ í Ò 5 „[Ù¤5ñ—@ÿ“mêáDZ£Ù^nçÚvK ¢=ì'¶dñƒyµ÷V{ú£”P*Ƶhm(À æv § 3 j ÷ / Á ö “ ¿ l Š L V2 " ð ¾ ‹-ðüllÔ-t$8 ‹ ‹ Æ - =E yd µ Š ô ¶ 3 é t #¸ cý ªD ÷Kܤ,jÖÕ0G޽ñ:W»ÂB2Φ^óž!·ì¢= ÂvKçÚ^nÙZ£áDmêÿ“—@5ñÙ¤„[5 í Ò « ‘ p R <   Ù è   È g° /ž ø”  ‹-ðüppÕ-x$: ‹Œ ‹ Ëš ª J Šà Ë  0R b— ›Þ Ú( t j¼gq¾Õ>w­Ø!>š¨‰%²}DþÚ…t‹·!óž^ΦB2»Â:W½ñGŽÕ0jÖ¤,KÜ÷ªD cý #¸ é t ¶ 3 Š ô d µ E y- =  Æ ‹-ðüssÖ-|$<Œ ‹ ‹ Ï'W>œ[á ( ªp Úº  OS “¢ Üõ,J‚¢Ýý?[¥¼"ƒ‹úøvjöà|ZÚ”^'ç¾vX f‹tÚ…Dþ²}%‰š¨!>­Ø>wÕq¾g¼jÂt Ú( ›Þ b— 0R  à Ë Â Šª Jš  ËŒ ‹-ðüvv×-€$> ‹‡‹ŠÔ”¤dº­×÷ úB $Ž TÜ Š, Å~ Ò P( ñÝK<©xlæÙ[IÓ¾Q7ÓµZ7å¿uJÜŸr9 OfX ¾v'ç”^Ú|Zöàvjúøƒ‹"¥¼?[Ýý‚¢,JÜõ“¢ OS  Úº ªp ( [á >œ'W Ï ‹-ðüyyØ-„$@‡‹‹Ø$!q7¿S v\ ž­ Íÿ S <© | Ã[ ¸`¸{àvIÞ¶J&»š1¬+¯•6®RBåÚ|xFO9 ŸrÜuJå¿Z7ÓµQ7Ó¾[IæÙxl©K<ñÝP( Ò Å~ Š, TÜ $Ž úB ×÷ º­¤d”ŠÔ‡‹-ðü||Ù-ˆ$B‹ƒ‹†Ü-Ÿ~´ÐÏ#ñv Ë F" yz ²Ô ñ0 6Ž €ïÐS%º#ßC­tëgçƒj󇀜§,C¿ãV‰ï4RF|xåÚRB®6¯•+¬1»šJ&Þ¶vIà¸{`¸Ã[ | <© S Íÿ ž­ v\ S 7¿!q$Ø‹-ðü€€Ú-Ž$Eƒ‹‹á 6‹0âK8k ’ê ¾D ð¡ (ÿ e_ ¨Á ð& >Ž‘øéeFÖ©IÁ{<ì»`=ÙÄWPØß]tå rªM”õ*¢ÂT] xRï4V‰¿ã,Cœ§‡€óƒjçgë­tCß#%ºÐS€ï6Ž ñ0 ²Ô yz F" Ë ñv Ï#´ÐŸ~-†Üƒ‹-ðüƒƒÚ-–$I‹~‹åŠ?˜™­óÇNæ«  7g hÇ ž* ÚŽ õ b] ­Éþ7T¨¯”sÜI»•1«­)@ª×0s¸D¸ÓbeùÆ‘*>ÆËx] ÂT*¢”õMrªå ]tØßWPÙÄ`=ì»{<Á©IFÖée‘ø>Žð& ¨Á e_ (ÿ ð¡ ¾D ’ê k K80â‹ 6á‹-ðü††Û-ž$M~‹ü‹ÿêG¦)CdbÅ †' °Š àî U O½ Ž( Ó•  kv¿ëctÞÖ\<Þ§cìˆzÿ z ø:zØÿ{‡#Ï €17ÄòY³ñyŠD&nËÆ*>‘ùÆeÓbD¸¸0sª×)@«­1»•IÜs”¯T¨þ7­Éb] õ ÚŽ ž* hÇ 7g  æ« ÇN­ó˜™Š?å~‹-ðü‰‰Ü-ª$Sü‹y‹|î„P’³¥¾zÜß ÿE (¬ W Š€ Ãì [ CÌ ‹? ص)-©Ú'9©œ.·oCßÓShÊEÃ>EãÉQ<Ûïh§÷dˆ'î±»HŒác{@ "² ö n&ŠDñyY³Äò17 €Ï‡#ÿ{zØø:z ÿ ˆzì§c<ÞÖ\tÞc¿ëkv Ó• Ž( O½ U àî °Š †' bÅ Cd)¦Gÿêü‹-ðüŒŒÝ-º$[y‹÷‹úòYÀ"(:Wù zc ¡Ï Î< « 7 tŽ ´ úz Eô”pçï@qœ÷ýa Ê›7.§Åa“ ¤‹K ø©^Ÿ*Ø·›GdØ2kÿÞ•», žÄ †\!sõ!fŽ"^'#['#ö ²  "{@ácHŒ±»îˆ'÷dh§ÛïQ<ÉEãÃ>EÊShßÓoC·œ.9©Ú'©)-ص‹? CÌ [ Ãì Š€ W (¬ ÿE Üß ¾z¥’³„P|îy‹-ðüÞ-¾$]÷‹u‹x÷bŒÍŸ9¶¦Òô‚ ò Fc wÖ ¬K çÁ &: iµ ²3 ÿ³P5¥»ÿD]п`%òމü#lÁàcW Ñ´OcÏQÍÖŠ]KçrÛÿªŽX¯6B Õ i!ðþ!ã“"Ü'#Ù'#[Ž"^õ!f\!sÄ †, ž•»ÿÞkØ2Gd·›*ØŸ^© ø‹K ¤“a§Å7.Ê›a ýœ÷@qçï”pEôúz ´ tŽ 7 « Î< ¡Ï zc Wù :"(ÀYúò÷‹-ðü““ß-¾$]u‹ó‹öûýk ÚK2¼N-n  ” ¾Š í !z Zô —q Ùð r iõ¸| c’¾!´JæãP½".Ç¡o‘̓Œ= û¾…Q&"°ø<ÒɲX –ç v!n"a—"Z'#W'#Ù“"Üþ!ãi!ðÕ B ¯6XŽÿªrÛç]KÖŠQÍÏOcÑ´W àclÁü#މ%ò¿`]ÐÿD¥»P5ÿ³²3 iµ &: çÁ ¬K wÖ Fc ò ô‚ Ò¶¦Ÿ9ŒÍbx÷u‹-ðü––à-¾$]ó‹p‹rzs†ç—\­ÑÈGç¿ 7 5° c, •© Ì' ¨ G+ ‹° Ó8 ÂqOÅßqzÙ¡==£Þ {)ëÕ^„Ô7LïÇ«DkÃ0EùÈÇL™Óp[Kã,m ø ûƒ!ê"Þœ"Ö'#Ô'#W—"Z"av!nç X –ɲ<Ò°ø&"Q…¾ ûŒ=ƒ‘Í¡o.ǽ"PæãJ´¾!c’ ¸|iõr Ùð —q Zô !z í ¾Š ” n  N-2¼K Úýköûó‹-ðü™™á-¾$]p‹î‹ðø|õn)çCbbÝ …Z ­× ÙW Ø ?Z xß ¶f øï >z ˆ Ö™(,~Â×\4ø”˜ø;^âÈŒ5:¤ì¢‹\{Üö£tnó=söéyÆþ§ƒ  !x‘!g"\ "T'#R'#Ôœ"Ö"Þƒ!êø ûm ã,[KÓpL™ÈÇEùÃ0DkÇ«LïÔ7^„ëÕ{) £Þ==Ù¡zqÅßqO ÂÓ8 ‹° G+ ¨ Ì' •© c, 5° 7 ç¿ ÈG­Ñ—\†çzsrp‹-ðüœœâ-¾$]î‹l‹nu…‘¥ý¾|Üû þ| %þ O‚  ²Ž ê %¡ e. ©½ ñO <ãŒzÞ5°PìóL™¯Bð ëUY ÊÉ=‰²N*£ã³š‰b—@ "™ !õž!å!"Ù¤"Ò'#Ð'#R "T"\‘!g !xƒ þ§yÆöésó=tnö£{Ü‹\¢¤ì5:ÈŒ^âø;”˜4ø×\~Â(,Ö™ˆ >z øï ¶f xß ?Z Ø ÙW ­× …Z bÝ Cb)çnõø|ðî‹-ðüŸŸã-¾$]l‹ê‹ì óŽþ ‘!:–VwŸ œ% Æ­ ó6 %Á [N •Ü Òm  Y• ¢- ïÇ?d’é§CM ö£cSÉ1½œx 6xùê¿]‰ÒWI*Á;Û¶º2 ž¯ …-!q«!b*"W©"P'#N'#Ф"Ò!"Ùž!å!õ™  "—@bš‰³£ã*²N=‰ÊÉY ëU ð¯BL™ìóP5°ÞŒz<ãñO ©½ e. %¡ ê ²Ž  O‚ %þ þ| Üû ¾|¥ý‘u…nl‹-ðü££ä-¾$]ê‹g‹ip–z‰¢)´°Ð8ïÁ L ;Ø ge —ô Ë…  ?¬ ~B ÁÛ v Q ŸµïXCþš§ôSQ°µkw%ÞâH£³g!/ûËtŸèw]SÔ4L Å >!í¸!Þ2"Ô­"Í'#Ë'#N©"P*"W«!b-!q¯ …2 ž¶º;ÛÁI*ÒW]‰ê¿xù 6œx1½ÉcS£ öCMé§’?dïÇ¢- Y•  Òm •Ü [N %Á ó6 Æ­ œ% wŸ V:–! ‘þóŽì ê‹-ðü¦¦å-¾$]g‹å‹çíŸø)´>/ÊJWhä ‹s ² Ü” ' =¼ rR ¬ë é… )" mÀ µb ÿ M¬žVòH±¢cþ\Ѿ!M‡îÖX¡Ão0@Ÿï€Ìó®f “Ú }P!jÅ!\;"Q±"K'#I'#Ë­"Í2"Ô¸!Þ>!íÅ L Ô4]SèwtŸËû!/³gH£Þâw%k°µQôSš§CþïXŸµQ v ÁÛ ~B ?¬  Ë… —ô ge ;Ø L ïÁ Ð8´°)‰¢zp–ig‹-ðü©©æ-¾$]å‹c‹ek¨u6ƒÅ•TªäÄuâš (. Qà ~Z ®ó â * TÈ ’h Ó ¯ `W « ø­I\óÄK|§7öd¸Æ})Föâ_µÊŒ6g£F (€ ð ùa!çÒ!ÙD"϶"É'#Ç'#I±"K;"QÅ!\P!jÚ }f “ó®€ÌïŸ0@ÃoX¡îÖ‡!M¾\Ñþ¢cH±òžVM¬ÿ µb mÀ )" é… ¬ë rR =¼ ' Ü” ² ‹s hä JW/Ê>´ø)íŸçå‹-ðü¬¬ç-¾$]c‹á‹ãé±òC×j&þ>”[*{Á ŸY Æó ñŽ * QÈ †i ¿ ú® 9U {ý À¨ U S ¡·ñlD$™ßñJ^¦#êdµÆƒ*U*õ]߯¿0 ¢š Š!us!dß!VM"Mº"G'#E'#Ƕ"ÉD"ÏÒ!Ùa!çð ù€  (£F6gÊŒ_µöâ)FÆ}d¸ö§7K|óÄI\ø­« `W ¯ Ó ’h TÈ * â ®ó ~Z Qà (. š âÄuªä•TƒÅu6k¨ec‹-ðü¯¯è-¾$]á‹^‹`#e¹oQ{茀 ¸²ÓLòç „ :! cÀ a ¿ ò§ )M bô žž ÞJ ø e© ­\ ø EÉ”„æB:ÆéCVŸ#ýó\ǽž xƒVè7N ´ !ð„!ßí!ÓU"É¿"Ä'#Â'#Eº"GM"Mß!Vs!d!uš Š0 ¢Æ¿]ßõ**Uƃdµê¦#J^ñ™ßD$ñl¡·S U À¨ {ý 9U ú® ¿ †i QÈ * ñŽ Æó ŸY {Á [*>”&þj×òCé±ãá‹-ðü³³é-¾$]^‹Ü‹Þ'ãÂì^øú–32ÐLojН ¯Q Öô ˜ .> _æ “ Ê; è A˜ I Ãý ³ Ol ™' åå4¥„h×.+÷‚ÃÚ’4e:íKîªÎ °l –Ï 2!l–!\ú!P^"GÃ"B'#@'#¿"ÄU"Éí!Ó„!ß!ð´ N è7ƒV x½ž\ÇýóŸ#CVéÆ:æB”„EÉø ­\ e© ø ÞJ žž bô )M ò§ ¿ a cÀ :! „ òç ÓL¸² Œ€{èoQe¹`#^‹-ðü¶¶é-¾$]Ü‹Z‹\+aËiku „¬–M¬ïÅ’á5Ú #€ I' rÏ žy Í% þÒ 3 j2 ¤å áš Q b §Æ í„ 6E  ÎΗnbÁ1kÖí‡veÑE. )‹ é úH!è§!Ù"Íg"ÅÇ"À'#¾'#@Ã"B^"Gú!P–!\2!lÏ l – °ªÎKîí:4eÚ’‚Ã+÷×.„h4¥åå™' Ol ³ Ãý I A˜ è Ê; “ _æ .> ˜ Öô ¯Q Н jLo2Ð3–øúì^ãÂÞ'Ü‹-ðü¹¹ê-¾$]Z‹Ø‹Ú0ÞÔçxòÂg& >´Y\w˜¯ ¼Z ã µ :d i ›È Ð| 3 Bë ~¦ ½b þ! Bâ ‡¦ Ïl 4 dÿ±ÍžQq£Gö Kü¡Ûø½P ¢© Š!v^!d¹!V"Kp"BÌ">'#<'#¾Ç"Àg"Å"ͧ!ÙH!èé ú‹ . )ÑEve‡Ã­kÖÁ1nb—ÎÎ 6E í„ §Æ b Q áš ¤å j2 3 þÒ Í% žy rÏ I' #€ Ú á5Å’¬ï–M„¬u ikaË\+Z‹-ðü¼¼ë-¾$]Ø‹U‹W4[Ýc…m.{׌ ,¶×Ѓí0 Þ . T> {ï ¦£ ÓW  5Æ j€ ¡; Ûù ¹ U{ •? × Î b™ ªg ó7 ? ‹ßÚ¸)’zpÌQ 4s È !ðs!ßÊ!Ñ!"Çy"¿Ð"»'#¹'#<Ì">p"B"K¹!V^!d!v© ŠP ¢ø½¡ÛKüö £GQqž±Ídÿ4 Ïl ‡¦ Bâ þ! ½b ~¦ Bë 3 Ð| ›È i :d µ ã ¼Z ˜¯ wY\>´& gÂòçxÞÔÚ0Ø‹-ðü¿¿ì-¾$]U‹Ó‹Ô9Ùåà’ê@÷í›J0ùHªc[ ¢À Åu ë* â >š kT › ÍÍ Œ 9M q ¬Õ é (f i1 ¬ÿ ðÏ 6¢ ~w ÆO ) \ ©å÷ÇF ¬• ”æ ~7!k‰![Ü!N."D"=Õ"8'#7'#¹Ð"»y"¿!"ÇÊ!Ñs!ß!ðÈ s  4ÌQzp)’Ú¸‹ß? ó7 ªg b™ Î × •? U{ ¹ Ûù ¡; j€ 5Æ  ÓW ¦£ {ï T> . Þ í0Ѓ¶× ,Œ{×m.c…[ÝW4U‹-ðüÂÂí-¾$]Ó‹Q‹R=Wî]ŸgQs‚µ”i©ÀÑÙ†ö<ô 6¬ Zf €! ©Ý Ô› Z 1 bÝ –¢ Ìh 0 >ú yÆ ·• öe 78 y ½ä ¾ Hš y ØZ " = m $ ¸ !øQ!æŸ!×í!Ë;"ÁŠ"»Ù"¶'#µ'#7Õ"8"=."DÜ!N‰![7!kæ ~• ”F ¬÷Ç©å\ ) ÆO ~w 6¢ ðÏ ¬ÿ i1 (f é ¬Õ q 9M Œ ÍÍ › kT >š â ë* Åu ¢À  c[Hª0ùJ›÷íê@à’ÙåÔ9Ó‹-ðüÆÆî-¾$]Q‹Î‹ÏAÓ÷Ú­ãbîýÏ ‡!?7÷O±jk‡&¦ã È  ì_  <à f£ “h Â. óõ &¿ [Š ‘W Ê& ÷ ?Ê |  »w ûP <,  Âë  Î M ³ “ › Û … #!q k!a µ!R þ!G I"> “"7 Ý"3 '#2 '#µÙ"¶Š"»;"Áí!ËŸ!×Q!æ!ø¸ m $ " = ØZ y Hš ¾ ½ä y 78 öe ·• yÆ >ú 0 Ìh –¢ bÝ 1 Z Ô› ©Ý €! Zf 6¬ ô ö<Ù†ÀÑ©”i‚µsgQ]ŸWîR=Q‹-ðüÉÉï-¾$]΋L‹MFQWº`tk/xꈥša®ÅÜßšúZ7Û Zž ~b ¤' Ìí ÷µ # QJ  ²å æµ ‡ Q[ ‰0 à þâ :¾ w› ¶| ö^ 6 C x ) º  ý þ A!ì †!Ü Ë!Ï "Ä V"» œ"µ â"± '#° '#2 Ý"3 “"7 I"> þ!G µ!R k!a #!q Û … “ › M ³  Î Âë  <, ûP »w |  ?Ê ÷ Ê& ‘W [Š &¿ óõ Â. “h f£ <à  ì_ È  ¦ã ‡&jkO±7÷!? ‡ýÏîãbÚ­Ó÷ÏA΋-ðüÌÌð-¾$]L‹Ê‹ËJÏÔÇ܆çDóÄ„&E<SÉm‰Q§ÇÝ é¥ m 27 Z ƒÐ ®ž Ûn ? : lç Ÿ¾ Ó– p AM y+ ³ íí ) Ñ e · £   á Š !w `!f  !W à!K ""@ c"8 ¤"3 æ"/ '#. '#° â"± œ"µ V"» "Ä Ë!Ï †!Ü A!ì ý þ º  x ) 6 C ö^ ¶| w› :¾ þâ à ‰0 Q[ ‡ æµ ²å  QJ # ÷µ Ìí ¤' ~b Zž 7Û úZßšÅÜ®šaˆ¥xêk/`tWºQMFL‹-ðüÏÏñ-¾$]Ê‹H‹IOLRÔY—cZn|⌧žl²2ÈùàÀúˆR4Sç u´ ˜ ½P ä! ò 6Å aš Žp ½H ì! ü PÙ ƒ· ¸˜ îz $ ^ \ D • , Î  ! C!ð ~!à º!Ò ö!Ç 3"½ p"¶ ­"° ë"­ '#¬ '#. æ"/ ¤"3 c"8 ""@ à!K  !W `!f !w á Š £   e · ) Ñ íí ³ y+ AM p Ó– Ÿ¾ lç : ? Ûn ®ž ƒÐ Z 27 m é¥ ÇÝ §‰QmSÉ<&E„ÄóçD܆ÔÇÏËJÊ‹-ðüÒÒò-¾$]H‹Å‹ÆSÉÎáÕ¨Þpé8öÉ“(]<(Rój¿„Œ [½*Ýú ýË  Dq iF  ¸ô âÍ ¨ 9„ ga –A Æ! ÷ ( è [ Î ¶ Ä   ù Œ /!y e!h œ!Z Ô!M "B D"9 }"2 ¶"- ï"* '#) '#¬ ë"­ ­"° p"¶ 3"½ ö!Ç º!Ò ~!à C!ð ! Î  • , \ D $ ^ îz ¸˜ ƒ· PÙ ü ì! ½H Žp aš 6Å ò ä! ½P ˜ u´ Sç 4RúˆàÀÈù²2žlŒ§|âncZY—RÔLIOH‹-ðüÖÖó-¾$]Å‹C‹DWG#KîRºZ†dRp}캞ˆ±WÅ&Ü÷ôÈ š(lE@cƒë ¤ Çš êt N 6+ ^ ‡ç ±Ç Ü©  Œ 6 q d X “ @  ) ó  $! V!ñ ˆ!á »!Ô î!È ""¾ V"¶ Š"¯ ¿"« ó"¨ '#§ '#) ï"* ¶"- }"2 D"9 "B Ô!M œ!Z e!h /!y ù Œ Ä   ¶ [ Î ( è ÷ Æ! –A ga 9„ ¨ âÍ ¸ô  iF Dq  ýË Ýú ½* [„Œj¿Ró<((]“Éöé8ÞpÕ¨ÎáÉÆSÅ‹-ðüÙÙô-¾$]C‹Á‹Â\Ä,ÉûÎÌÖœßlê=÷á³&†9YM.czÙ“¯­‡É_æ9$ï EË g© ‹ˆ ¯i ÕJ û- #  K ÷ u Þ Ÿ Ç Ê ± õ "!Š O!x }!i «![ Ù!N "C 8": h"2 —"- È"( ø"& '#% '#§ ó"¨ ¿"« Š"¯ V"¶ ""¾ î!È »!Ô ˆ!á V!ñ $! ó   ) “ @ d X 6 q  Œ Ü© ±Ç ‡ç ^ 6+ N êt Çš ¤ ƒë cE@(l šôÈÜ÷Å&±Wžˆº}ìpdRZ†RºKîG#DWC‹-ðüÜÜõ-¾$]Á‹?‹@`B4F KÝR²Z‡d\p2}‹Þ›µ¬¾eÒ>çþòÍ/©I†ed‚C #¿ßæ É " ­ E “ i z Ž b ´ K Ú 6 !" )! Q!ÿ z!ï ¤!á Î!Ô ø!È #"¾ N"¶ y"¯ ¥"ª Ð"¦ ü"¤ '#£ '#% ø"& È"( —"- h"2 8": "C Ù!N «![ }!i O!x "!Š õ Ê ± Ÿ Ç u Þ K ÷ #  û- ÕJ ¯i ‹ˆ g© EË $ï æ9É_­‡“¯zÙcM.9Y&†³á÷ê=ßlÖœÎÌÉûÄ,Â\Á‹-ðüßßö-¾$]?‹¼‹½d¿=ÂÇîÍÇÕ¡ÞzèTó. äÀ/œ@yTVh4~”ó¬ÓÅ´ß—úz ^3 CP )o  ø ¯ â Ð Ì ò ¸ !¤ 8!“ \!‚ €!r ¥!d Ê!W ð!L "B ="9 c"1 Š"+ ²"& Ù"# #! '# '#£ ü"¤ Ð"¦ ¥"ª y"¯ N"¶ #"¾ ø!È Î!Ô ¤!á z!ï Q!ÿ )! !" Ú 6 ´ K Ž b i z E “ " ­ É ßæ ¿ #‚CedI†/©ÍþòçÒ>¾e¬›µ‹Þ}p2d\Z‡R²KÝF B4@`?‹-ðüââ÷-¾$]¼‹:‹;i<F@#DIÝP»X™awkUw4ƒ‘ó Ó°´Á•ÓwæYú= !% < ëT Ñm ¸‡  ¡ ‰½ sÙ ^õ J!71!%P!o!!õ ¯!ç Ð!Û ñ!Ï "Å 5"¼ W"´ y"­ œ"¨ ¿"¤ â"  #Ÿ '#ž '# #! Ù"# ²"& Š"+ c"1 ="9 "B ð!L Ê!W ¥!d €!r \!‚ 8!“ !¤ ò ¸ Ð Ì ¯ â ø o P )3 C ^úzß—Å´¬Ó”ó~h4TV@y/œÀä ó.èTÞzÕ¡ÍÇÇî¿=½d¼‹-ðüææø-¾$]:‹¸‹¹mºO½0ÁÅóËÕÒ·Ú™ã|í_øB &  ï. Ô> ºN  ` ‡s n† Vš ?¯ )Å Û þò ê !×#!ÄS"6q"/")®"%Ì"!ë" #'#'#ž #Ÿ â"  ¿"¤ œ"¨ y"­ W"´ 5"¼ "Å ñ!Ï Ð!Û ¯!ç !õ o!P!1!%!7õ JÙ ^½ s¡ ‰‡  m ¸T Ñ< ë%  !ú=æYÓwÁ•°´ Ó‘óƒw4kUawX™P»IÝD@#<F;i:‹-ðüééø-¾$]¸‹6 ‹6 r8 W: == #A F ïL ÖS ¼[ £c Šm rw Y‚ AŽ *› © ü· æÆ ÑÖ ¼æ §ø “ !€!n/!\C!JX!:m!*‚!˜! ¯!ÿÆ!òÝ!æõ!Û"Ñ&"Ç?"¿X"·r"°‹"ª¥"¥¿"¡Ù"žó"œ#š'#š'# #ë"Ì"!®"%")q"/S"65">"Gû!QÞ!\Â!h¦!u‹!ƒp!’V!¢ º. Ô ï  &øBí_ã|Ú™Ò·ËÕÅóÁ½0ºO¹m¸‹-ðüììù-¾$]6 ‹³ ‹³ vµ `¶ J¹ 4½ Á Æ ôË ßÒ ÊÙ µá  é Œó xý e!R!?!,+!8! F!øU!çd!×s!ȃ!¹”!ª¥!œ¶!È!ƒÛ!wî!k"a"W("M<"EQ"=f"6{"/"*¥"%»"!Ð"æ"ü"#'#'#š#šó"œÙ"ž¿"¡¥"¥‹"ªr"°X"·?"¿&"Ç"Ñõ!ÛÝ!æÆ!ò¯!ÿ˜! ‚!m!*X!:C!J/!\!n !€ø “æ §Ö ¼Æ Ñ· æ© ü› Ž *‚ Aw Ym rc Š[ £S ¼L ÖF ïA = #: =8 W6 r6 ‹-ðüïïú-¾$]³ ‹1!‹1!z2!i4!W6!F9!5º!1¾!$Á!Æ! Ê!ÿÐ!óÕ!çÛ!Ûâ!Ðè!Äï!¹÷!®ÿ!¤"š""†""},"t6"k@"cJ"[U"S`"Ll"Fw"?ƒ"9"4›".§"*³"%À""Í"Ú"ç"ô"###'#'#•#•#–ó"˜â"šÑ"¿" ®"¤"¨"®|"³l"º["ÀL"È<"Ð-"Ø"á"ë"õò!å! ×!Ë!"¾!/²!;§!Iœ!V‘!d‡!s}!t!‘l! d!°\!¿V!ÐO!àJ!ñD!@!<"6?".C"&F"J"O"S"X"]"øb"ñh"ëm"äs"Þz"×€"ч"Ì"Æ”"Áœ"¼£"·«"³²"®º"ªÂ"§Ê"£Ò" Ú"ã"›ë"˜ô"–ü"•#“#’#’#‘'#‘'####ô"ç"Ú"Í"À""³"%§"*›"."4ƒ"9w"?l"F`"LU"SJ"[@"c6"k,"t""}"†""šÿ!¤÷!®ï!¹è!Äâ!ÐÛ!ÛÕ!çÐ!óÊ!ÿÆ! Á!¾!$º!1·!>µ!K³!X±!e°!r¯!¯!‹-ðüùùý-¾$]-"‹ª"‹ª"ˆª"ƒ«"«"z¬"v­"r®"n¯"i°"e²"a³"]µ"Y·"U¹"Q»"M½"IÀ"FÂ"BÅ">Ç";Ê"8Í"4Ð"1Ô".×"+Ú")Þ"&â"$å"!é"í"ñ"õ"ù"ý"## ######$#'#'#‘#‘#’#’#“ü"•ô"–ë"˜ã"›Ú"Ò" Ê"£Â"§º"ª²"®«"³£"·œ"¼”"Á"Ƈ"Ì€"Ñz"×s"Þm"äh"ëb"ñ]"øX"S"O"J"F"C"&?".<"69">7"G4"O2"X1"`/"i."r."z-"ƒ-"‹-ðüüüþ-d$0ª"‹'#‹'#$###### ###ý"ù"õ"ñ"í"é"å"!â"$Þ"&Ú")×"+Ô".Ð"1Í"4Ê"8Ç";Å">Â"BÀ"F½"I»"M¹"Q·"Uµ"Y³"]²"a°"e¯"i®"n­"r¬"v«"z«"ª"ƒª"ˆª"‹-ðü--%'#'#‹‹--û– A¼Times New Roman- ÿ.2 j ÄPixie€h)ho .û¼"Systemn-ðûàμ Arial¯- .-2 ”~Tiny Pictures for the Webwïwwï¨ïïw¨wïw–ï .-ðlibwmf-0.2.13/examples/anim0002.wmf000066400000000000000000000264161441723000300166370ustar00rootroot00000000000000×ÍÆš» û^T |l û»   ÿÿÿÿ.ú-ü²²²-z$;L–Ñ+,¥^‚”2î¢_ý÷¬ó+É6GQׇ1™½l)¬?çzç°VáR¬æý«W·aFðS—wè»#ÛB¥äÉG?¯¸òïcï§ æó;Ÿº§•ƒDæl ’!váµ_ýCÇ€òBÿöo} S6L–L–üÿÌ-ð.$Ú)»@¨`‰ Ø¢5œÇ™f¨½ÊäãòÂ*¬+áI6f`9í)Ú)Ú)ü-ð0$Æ ¾¼Ãú²Â5¿‚Ò¤êbñ2ÿýÞ Ïð÷êóÜÑÕä½úçù۬ƠƠ:$¸Š°º¿å¬ÿµ+ªP¸bª…¶¢°¼Åäàáæ¤Ñ¸ä„áfÃlêLá*ñüÞóúÏý¡ùeݤ¸Š¸Š$ Á†ÉoêirüˆëvÚxØ”Á†Á†$ Á:×&ó)ñ?ÿWÆgÆGÁ:Á:"$ê3ê Î9ŽfX“+£ ª˜AxW6¦øûñ/ê3ê3&$+#@>|…¸ÌÌ÷Ø3Ï3Âú£Éw>Q$9 ,$ £Zš~—Ý“+™r©Ã£P£ £Å£Z£Z&$"]"¬ MÝ÷ù÷FˆËîÑâñÏ'ù,­"]"]üÿå²-ð$ +ßi¹y-÷[¢‹h­?Bf+ß+ßüÿÌ-ð8$jÏÔó\2,!E_$ˆý4*­Úp<ì<®Ö@hrCYІkf®ŽˆƒÐï3‡v2ƒíjÏjÏüœ‚k-ð$$rRR) ©âô¤_†ËbK(€  Ðôd9é‡-rrüååå-ðN$%ÿé¸å•ý«"¡"“L›{•̸®”ê±3ݸwÖY·¸Ý›ÄîêÐÞ ðóê 0:3=S'i8ˆ2’Rp¨#É4 µìÿéÿéüå3-ð$UYh?=Ñ\Ѓ‰UYUY$Áüêì!cJëÁÁ$ ¼5ð+2WŽë¹Æš¼5¼5üÿÌ-ðX$*l[¯iÇaÜKö8`Nz[ LÃLk0}Pt{}²ŠÝ¥ß®ù¥&eŒ8&pàŸ²ÅŸìŸ°×NÊ]¨q¤Œ¬µÂµ—s{A]U&ãp×’ê@¸³llüѽ½-ð\$,-íSìt"Tmˆ°|Ók'—JvwÀˆÕ‡x#¯¢@ÍÁWî?îim>U[]q|p¡X|8yœÏ‡•œ|GOLbèBÅW*MZ­M‰Z6X -í-íü£””-ðD$ öé'ù?H:L`0¬æ&M'v"à<þ:96|c~t¬{Ò«ÆØß÷17üÜ YÙ²å4ì™'E  Äöéöéüœ‚k-ð,$yJé›ov-ÓXGCYE&‹S´=ËuåœÏDsîÏ&Z·ÐcyJyJüÿÌ-ð4$:7)T/Œnj†í©qÊÈï3fX¾È$êÖLšnô­6.ɪ^?0æ![!:7:7üœ‚k-ðX$*È*)8FZ*Z7™8ÓQýK<KqS£IÕ`ve™§œàÄ"íWÞ“âÒ¡»j‡oONù½ {Ü?ïÚ´Çý¡ébªXÕ,Ýû±ÓßÁӓŇâkÈÈü-ðˆ$BoC%0A0R@[>~3Ž7¬M½SÛHåVfk/dGqo‚~‹¦}¾‚ܕ襗E¡d´fÆ‹¿·ÔÖîÝþõ!?*;IgZgIQI;W14 éÓžò{ëOë'Ö Ò×Ò®¿Ÿ¶s¶\¶4¥¥î±å±Ò ¿“—¥‡‡gv1‹(ª0§oo6$™Þ9#ŸHw~ÉÒ áfdѶMªŸ“uýö_9“bË‘ŠT1.ä'ž(™™.$—´5ÊRÆd±u‡iŒ‡±…ѓתÍ˪Û××6à+ŸÖ‚&€!MÒ#——$ ™ÐÄÖæå?õF/8BÊ8××½ç£ò™Ð™Ð&$³MINÅ^k‘–i=bP”K¶ÊÂÄ´â¤çàuÍb±c³M³M4$ÄÌÃÅôÜTü¯_â GöQw i/ðª„HýïxÓRÚYä0óóìéßÁÜÄÌÄÌ $ÖCP>ôEcJƒ„ƒ¢·õ›‹qûZÙXÖCÖC$$ùÊ4³w³±ƒ¾¢í©Z1 - Dþ=è$ÓÚùÊùÊ"$D,s& (K   4Ã4ãTÕ‰j…qloMZ.D,D, $z“¨Ó¨ÖÍ'Þ|ã×åbîçÅÛzz&$0–r¦³ÆëëzLÆv&°'úRö·ì§Õd¯0–0–.$…aõ—MÛÄI+©¢ƒ@ÙYuvšœh†E½Â`SäºUGçã›…a…a$3Od\²‹¼§ˆ€\l3O3O$ °«°ÇÑÊöí ѯޚ°«°«$ àðÇ à à($‚†©&-®6–;¥D›I·R¶EÈD¾4Ô4É%貂‚H$"pj&u<Q?¦jMP]dDbNo/oBƒ],”@ !«9½%É0Õ#à_ùsÏ’Íw¸£½’¥­©£•¹“·ŠÏòŽÆYppD$ ¤Ì»ÒçÕîèÏãÏù½îDZ´¢°9–:Üó_e NVB-E"4?54#J-Ed'_Zå ¤ ¤$ çBJhb¤S+<ù9çBçB6$´A²r¬žŒÜ¬«¬Ú¾¶½ÆÍ­Ù·ç›ó­ Sf\ýrôhé}ßsÏxÆ<¾´´@$¨BBWy]~qd|lˆ\—g£R®^¶V¿`ËJÑUî´#Æ%¾Ò ÐøâòáãîÝêÏ÷Ìﺸø’¨B¨BH$"XA[!E!P238DG%P<^d6z%†6"˜¡ ¯ý½ÍôÒæiá^¿‹°|žŒ•‹‚•rbž[‘K¯D™(XX²$W ÞÂ<pgœ{³{ÜeýI9K`fp–eÂMØKvBty—{»‰Ì«Ç»â»©<á:Úaòuj+SYç‹°Àó‰žÕ0êJÏJ§h“••¯ÅÖºû‘ Z@øÜ!¼ ¸q¡€je'Gü9ËB÷çì«Å‹¬{À`ÕGÅ¢æ„ÙyË”´²²Éd¬H••ü§ôÄýã–Ò_Ì8ã('6j@L5( ×  Þ Þ$F^ŽŸÜ»ïË&ÛJÄi¬­ÇÁ×ë× Ç'ÀeÞ^÷uüœâÅì, C.7UguuQ–QÁeÁþ¡¡õŠ}ûg^îAòAÐ'Ù'ÂÉ5…#‰8Y[%;6þïëÂú¿ –ã¦ü†çaêV1î&óúüÝîÚ±3œ.ˆ<q<J^^($à¼.£C˜SXºh¶†v¡zlÈ1K 66ô'Üàà4$fZ‰G})†²ïôä±Ð–§®{Ò†“}c‡R–v©ˆÐyè™#AmTph…ff\$,‘0}MB\Q)XçCØ%Ý?¡GhAK%>G÷H»7¥›LsWNO*I9$îü0òWùho>l[UŒe£oÁiíWt*€Ik¢bÃzÛvõhVF‘0‘0*$ŠÑ© ,b—1ÿIžfu-£óÎQˆÑ¹Lôó$’\VzqÕŠÑŠÑ$$¢³ËÛ…! \F„÷nã¶Ø ÇæÂÒµ³ý¢¢$ =Mý„à²Øï/ ð ù­=M=M0${ø¸ó”³ m€Šœ‘uÑŽÉrù_JvFC_úSít¸e¦qg™MuH{ø{ø$uÛ°ÎÑLÓÓ÷ÞuÛuÛ$ —›œ·ŠØ¦°Ì°¬§——›—›$©SÆj¬l©S©Süÿå²-ð$ ¤ègÃW6Ùe. Eq#Ho¤è¤èüÿÌ-ð8$fØüýt ž6¯ ‹i«’Ó=¦¶öy”õ”!"ßr^Mw“Jtj¸B’LÙàZ<M÷fØfØüœ‚k-ð$$^~\§ˆÃ³îþ,hJÕn …1P0ÚÜn—óI6^^üååå-ðN$%Ñóî;% @,/,=V5…;Õ¸<ô=ó!€úcÂó¥ øæÙòàüæ*¾¾:–G}1gAH;>[_²­>Ä¿ä™ÑóÑóüå3-ð${bhHCGÿe@“{b{b$±ÊÔóä+Ím†õ±Ê±Ê$ ?ß#±4ž`»˜å £??üÿÌ-ðX$*c™t¹gÑoæ…˜i„t©ƒÍƒ!e:SZ\…S¼Eç+é"+0k•˜0`ê1» ¨ä¨Ë¹·á‚Ós²_®DµÌ¡]…g{0ÍìÍzøœæI¼c™c™üѽ½-ð\$,£÷|õ\ Q,Q^c‘QºTÝd$C19TCYÉHÞIW-!.J%`âHâr¼w’_ug_…`«x…˜‚Ϧ‘;¦TPUnòŽÎy4ƒ$v¶ƒ“v?x£÷£÷ü£””-ðD$ Ùó©‘#ˆD„j µ±ïª »W©€®é”–Bš†mˆ[µUÛ%ÐøéÙ:˜ÔæÇb÷¼ë>ä˵£©OÄ* !ÙóÙóüœ‚k-ð,$WTç¤a Z¢ÝxQc‹ˆª•}¾’Õ[î4Ù@M]÷/vÁmWTWTüÿÌ-ð4$– A§ ]¡ •b tJ ÷& { Òáox‹Ò¬ô@àƒ Ì¤bý#?¢Ó&h‘:é*t *– A– Aüœ‚k-ðX$* &¦2·AŠd¦d™£—Ý~…F…{}¬‡Þp&Zo7±4é ,ãaòîÜ/Åf‘aY‚Çǰ„ôIÎàã ÑÓ«çl& bû5ò ÝñËüœ ‘îu & &ü-ðˆ$Ba  /  K  \ e’ ˆ —™ µ‚ Ç} åˆ ïz j e 8l Q_ yN ‡E ¯S ÈN æ; ò+ 9 N/ n p ” ÀüàâçÒ Û+ÂI¦E‡quq‡Z‡Ey;œ¶ó»Ü˨ޅåYå1úþàþ¸ ¨ } f >+ + ø ï Ü0 É=  + ‘I qZ ;E 2& 9) a a 6$7 ñ—-1RÎRÓþ)0ë·plÌ?W&©=‹[Úi—œnÕÌ›F^Ÿ7ì02 27 7 .$9 ( > \ n I sC ‘ ÿø´ Õ& åøášê¤©ú‹ªНWþ-9 (9 ($ 7 Ú ßêï‘ÿŠ8˜L Aø$ø  ñ- û7 Ú7 Ú&$ V‡X heš:r“k€ž…¿ Ë ½î®é—ð~ k m V V4$ Ö¿ÍQÏÜæ|!iÿÇs¡ú&ˆÓùXÝ~äw&ì9ÝÝõçé æ Ö Ö $úM€HÜNmTMM«ÎÀÛ¤¿”ÂzÕc÷búMúM$$×Óœ½Y½Ï»MÇ.ö'"u Ÿ)£Œ“ñ¬ÜËã×Ó×Ó"$Œ5]0°2…Ä)²> >í^û’f_v`Wu7Œ5Œ5 $V§¹§=§¹²ý²ùÖ©èSíùïnøÈð äV§V§&$  ^¯Ðåõ¸VV €Ç0 ©~ÿ ä)ßl¸    .$KkÛ¡ƒä S¤².&ÐŒãw&[€5¥hŠ ºÆi}î_ˆñí¥KkKk$Ylf”±HŠtuYY$ ´ ÑÿÓÚöÅÛϸò¤ ´ ´$0éOú  0é0é($M J!'0C7"@:E+N5S\ON=ü=/è&M M H$"`f0[FI*sƒYsnŒk‚x¡xsš£ž©¯µ—ǫӠެêq]Ù>×YÂ-Ç>®#²-Ÿ“™Þ— b``D$ Å­·ÕÐÄÐÜéÞâòìø %.  C:Dô‹ÝhÂoÇW±_¼L£N®>‘?œ-†7‹&l1q!vïÅ­Å­$ éL·Thl,ˆQ]¥E×CéLéL6$À½¼^µ2•ôµ%µöÈÆ ×#ãñ5ü#C}"it^þhòRé]ØWÏ”ÈÀ½À½@$(LCL3`WgRzl†d‘t¡i­~¸rÀzÉpÔ†Û{÷, /þîûïíâçæØÙÖáÄÐÁØœ(L(LH$"w u+‹+€<BŒP«Y”g±nš„«š˜®¡ÐªÆ¹ÓǾÖÜÛÐðgërÈEºS¨DŸEŒ;|Ck2e?T!N71w w ²$WÄç @F`‰i¥U¼Uåj‡—Upp`Ÿj̃á…Z#@L@}W¡UÄGÖ%Ñë'FïDökÞ~¼s¥\wðE¹™Ý’µ§¾Þ ô†Ù†°h;ž!ÎúÄÕ›ÆdÏIØ ô+{/‰fo©PÔBKÙÍñä´ ”$„jûQ .ïLãWÕ<¾¼n$Q:):)þ í þiBí2Ë0´@´tU›2ÉùÄçÄç$F´g—Щô§ù0õS s$· Êùõù 1oòhÙÔ¦îÏä$¾¤8™_i[[9[o//ÿFRirøûÙ©â©ËÂÒ›­“—c²d«DÉ?»Ò#»øÉõ´ÌÕÈÇŸí¯ÔéŠËjå`Ë:â0Ë ÝÔçâã¾»¥¢’”{”T´g´g($Êé¹Å¢¬¢}§xÃhÀJ€/@„dÒŸ'¿UÄ@šþ©æÊéÊé4$j§v“‰‡§É»áþ뺠)¸UÛIœSlI[9€'’ƒèšÎ¢­‰w|zhŽj§j§\$,?:SVŽe3xñá«æ‘«‰qU«H‰‡Ä˜®±¤„}yW€4‡—¬ ÐâÁŸüyhaGde{•k¬aËg÷y)\3PRe¬nÍVåZþh'zP?:?:*$FÚ' 06n¡Ÿ‡¨j~£¬Áü[GÚUÛü¬œt_V_ÞFÚFÚ$$. Õõ¯»eÂOÐØwíÀøª ïÜ(. . $ “VÒð»÷'á9Ç!à×·“V“V0$Uü<0wP“4›[ÚAÓ^q'†€ŠLq}ö\Ák¯_q7V[RUU$[å ×ÊÚ„Í=ÝØç[å[å$ 9¥4ÁFá* Ö µ( 9¥9¥$'\ t$u'\'\libwmf-0.2.13/examples/ant.wmf000066400000000000000000000166261441723000300161750ustar00rootroot00000000000000×ÍÆšÍ RÑ_V ¬î  RÍ ÿÿÿú-üÿ-H$"öð ïû1 P*T/d%m#x"€#‰$—, 0ª:ÒFêCþ:-(4?DûIøP”F‡;}&mheçcÉe®gžeöðî$uÇÔ°á“÷sW7@Z-‡*Ä-ñ0:AMq]]±jǃףͭª½ªÊŠàz÷q m']0D?,GW j svñxßzÒw¿r§u¤„ ‡Ÿ•Ÿ¡¥ªª»²Ã»ØÆìÉîÙñåõðûý7&X1ƒ:¡CÄHæL÷KN9PUNlJ—@ª4»+ÏÜøî¢a¨5ª ¤éŸÐ•ž‚ysiZX7NFí>Ê83C))ß.Â0¨;“FSsajncƒWƒD{:t*qllôqß|­¡˜»€ÜoìdùZüMö=è4Ø(ÐËÈÿÆçÈÏÐÇÔ¶$Yá ÝØ"×1Õ<ÕGÚTß\ãiítÿ‡ ”Ÿ5©@¬C¼DÊG×Rìbz¢JÏjí~™!£#§#²ï!¥Òà‹÷}~  „ ®æ¶ä¾çÂìÄòÖD dC~_”€¬Ÿ¼ÈÖòèóû á+ð3ë/áïÀ²™ƒ|GI#ãëÛÈâ¬úpG¹K£E•X׫ó­ã Î½€­m¦] e™k‰muhU]=M%:* ðúîá î$uW0_)n$}"&Ÿ0°<ÁHäcv‚5Pžk«·ŸÄÒßïïü %B4M@o[ˆy‰‘«‘¾ŽÕ~ÿk(]OYgK´CÖCâIî\v¤EÓd …E ®Œ ܦ éÙ þî ( + * ñ æ ã é ,ö = I M N Yû Vé FÒ =À 7 "Y - ý ÞÔ¼ jc83  ÷ìÜ+Ð8Ë?¿H¿6Ã!ÉÙùäçíÕùÅC%9úGäVÉYÀY¶U¨F+•ÿ†Ów¯g‘Vc;9&  íøÓç¼×©Ä•°‹ŸryljiT\:W0¨$RIøS _(q@R”b§n¾{ÙŽû!­FºaÅÑŸÝÂìÖôöü > F W f !s ,… 6’ ;© ?¾ ?Ô <à 4ç +õ ÿ   ê Óý Çÿ ¬ ™ Š € j Q 0  ò ã Êú ¹ê ›á |Ö hÄ I¦ )‹ { f ýN î1 à Ö ÓñËÜÇÀ¡Áe¿3ÁÃöÌçÖÙãÏíÀý´ ©/Eˆi|socˆO•Iø”$HoÀ„¨÷F > 5 /' +7 +K .Y 7q J… a• ¨ ¤ ÎØ ñì  ; `, ‡C µZ Øl ø}  #£ - 6î =: E„ xà ¡ ×Q ƒ 8› S« g­ r® {£ w— i‡ [† k† w‰ ‚’ Š’ ކ ‹} wy [h > ìh / bý \Ñ V® Q| :Y # Àú lã E» þ~ •` cT VE Q8 R- W h슲ÁoÀ8$üÉžm.V@AV.l!–¦!¿6ÏKÛ^¬ˆŸq™c‹^€]qedxT‹H©IÀ!ÁÅüÉX$* f;9Yyð¡¶Ä‹ÖmîS>+.I`|‘žŽ„ym#a(V/K7=E0T%c!iy‹òžÚººâ›…1qF_TEm1y)p mk f>$ªg¶WÃDÍ.×àþèòóèýßÙÓ$Ñ3Ó:Ø;;0E#O" ûúû 5ùPïdÖdÂgªg„$@¥:ªD²L´l¨|d™%¶âÇ—Ù:ñÿ  ú.éfÙ§Ìî·5¬i¥žÈ®„›|œjÔ\ ER,˜ÍýúáªD‰WzVoOm>—Òéü§j*:=ïT‹a6tüŒ¿¡‰¹IÉáùñÙüÎÆg¹®äŸ ‹LwoctYuK‡FCš?¥:Š$CìNòWô_ïiÝkr{? „̺”­£Rcú¼ö@a–<Ú,/TétÌ·§•ƕΗޢá·Ûß¼ýŸ"q4QQqÖ—¢i¹KÑ$ä Ù,´RtgQ|$ ¤äºË͹ڮõ®/®x¨µ›ÿŽ-ƒG{]nmdr^uKbLDP-PNLìN $Nû‚éŒÛœÀ¥©²‘¿ƒÔSÜ;Ú#×ÐøÅò±ðPó7ùù Å›-nFaOKZ6h$x‰ý ï®ÙÍÉݺî¯û“x;eYVqA>—>žMžY™w† Qµ2Ëîë¾*ž?‡Uvz^I·=×1þ&*Lx˜ ° µ»»+¸=«T–v€™g¼]ÒXêWVX*Z/[0ptn$5Ž?4‰-|)e(V-H6?@Шú¸Ñ¥î– ‡$|4kLYiOyH‰<ž2Ò,ð*08AJYü\í]Ób®m˜~z“TœB®%¾ËïßÒñ¸¤,€Hg]WjNrNxQx¦œƒ•‰‹úÿÿÿ-ðú-ü-ðü-4%Zý^be hkm!p(r/s6u>vEwMxUx]ydylytx{xƒwŠv‘u˜r¨-ðú--ðüÿ-‚$? v% {> ƒN Šb –{ ¢† ­š ¶® Æ· ÒÆ ãÕ òï  ! )8 ;K Qb fz wœ šº ¶Ö Óë ó  & <) P2 _= n6 m, h b ] o | ‡  ˆ w dô LÖ 'œ ÞŠ Ëj ¨Q “& l Mê 7à « v ßW Í= Ä) à Çþ Èþ ° ¤ – ‹ € v-ðú--ðü-%éÏ Ï%" ÜB Ü%V ø‚ ü%‰ œ %¯ 5Ì B%Ù lì u%F ïb ï%w ¤ %¡ ¾ -%Î Rá \%ñ ¬ ³% Î Ú% ô' % ' &% ?. O% 1) 2%æ Ž÷ —%z 2o ^%” >” V%² A² f%Ç AÒ _%Ý 7é T%í $ 6%ÿ  %å /í :% ÷ ÷%ÐÑó%ëÉè¨%È ¬%Ì#¶%Í‹º{%åyÝ^%pV%p%^%‹L€6%¦< %Ë1É%é0ð%«9«%Ð;Ø%øC(%$K4;-ðü-À$^нˆ¹‡µ†°…¬„¨„¤„ „›„—„“…†‹‡‡ˆƒŠ‹{wt‘p“l–i˜e›b^ [£X¦U©R¬O¯M³J¶H¹E½CÀAÄ?Ç=Ò9Ö;Ù=Ü?ßBâEåGçJéMëPìRîUïXð\ñ_ñbòeòhòkòoòrñuñxð|ïî‚í…ëˆêŒèæ’ä•â˜àšÞ۠٣֥ӨѪάˮȰIJÁ´¾¶º··¹³º°»¬¼¨½¤½¡¾¾Š½-ðü-P%&J®N¶R¾UÆXÎZÖ\Þ]æ^î^ö_þ^^][Z%X,V4T;QCNJKQHXE_Ae>l:s6y2.…*‹&‘"–œ¡¦«¶*%¼˜¼™½›½¾ž¾ ¿¢À¤Á¥Â§Ä¨Å©Æ«È¬É¬Ë­Í®Î®Ó® %ùÛúÞûàüãýæþéìïñôö ù ûþ&%sqvqyq|qpƒp†pŠpo‘o”o˜o›ožn¢n¥n¬n4%hj k mnopp q$q(q-q1q5q:p>pBoGnKmOlSkWjZhceV%)9ù:ø;÷<÷<ö=ö>ö>õ?õ@õAõBõCõDõEõFöGöHöI÷J÷JøKøKùLùLúMúMûNüNýOþOÿOOOOOONNNL (%ãâåâçâéáëáíâïâñãóãôäöåøçùèûéüëýíþîò$%r!v z ~ ‚!†!‹"$“%˜'œ) +¤-¨0¯5¯4"%?«A¬C¬F­H­J­M¬O¬Q«SªV©X¨Z¦[¥_¡$%%«'¨)¦+¥-£0£3¢5¢8¢;¢=£@¤C¤E¥G¦L¨% ¼ç¾æÁåÄäÇãÊãÎãÑãÕãØãÜãâä"%ÒßÒÝÓÛÓØÔÖÕÔ×ÒØÐÚÎÜÌÞÊàÈâÆäÅèÂ2%² 2± /± ,± )² &² #³ !´ µ · ¹ º ¼ ¾ Á à Å Ç Ê Ì Î Ð Õ  % !þ$ü'ú*ø-ö1õ4ó8ò;ñBï&%X©Z§\¥^£`¡cŸežhœk›ošr™u˜x—|—–‚–ˆ–0%ù!ù#ú%ù'ù(ù*ø+÷-õ.ô/ò0ñ1ï2í2ë3é4ç4å4ä5â5à5Ü4%opqsuvxz|}‚„…†‡ ˆ"ˆ#‰$‰&ˆ'ˆ)…,.%)!(#(%'&'((*(,).)/*1,2-4.5062849597:9;;<?,%‹&(+‘.’1’4“7“:’=’@‘CFIŽLNŒQŠT‰VˆX…\%6 18 5: 8< <= A? E? I@ Q4%É­ÒÆ×ÇÝÈãÉéÊîËôÍúÎ Ñ Í Ç Â ½þ·ý±û¬ú¦ø¡÷›õ–ó‘ð†É­<%5 H6 I6 J6 K7 L7 M7 N7 O7 P7 Q7 R6 S6 T5 U5 V4 W4 X3 Y2 Z1 [1 \0 \/ ]. ^- _, _+ `) a&%i &j &k &m %n %p $r #s "u "v !w y z { }   -ð-ðû  ú  ø ö  õ ÿò úð õî ðë ëé ælibwmf-0.2.13/examples/arrow01.wmf000066400000000000000000000012541441723000300166750ustar00rootroot00000000000000×ÍÆšÆûʪ9 èf¦ K 9 Æû ‘ùäü -úÿÿÿ-$ÆûʼþÊI¥IôhÕüe†þeÆûÊú-üÿÿÿ-ðü½40--$Õü6ÚüÑ‹þцþ6Õü6--ðü½40--$Æû›Ëû6Áþ6¼þ›Æû›--ðüûNU--$¼þ›Áþ6µ¼þ›--ðü½40--$µªµ¥--ðüú”“--$Æû›¼þ›¥ô9 Õü6†þ6Æû›--ðlibwmf-0.2.13/examples/cell.wmf000066400000000000000000000724021441723000300163240ustar00rootroot00000000000000×ÍÆšßÿî&ù‰C v: ù æáÛ&÷ˆ€€€€€€€€ÀÀÀ€€€ÿÿÿÿÿÿÿÿÿÿÿÿ·‹À¢P¢_w žnŒÊ†u¹˜]žÁgŽðÅ™ÔÖ¤­ØÃ¡ÒãÇÇûæ×òëËä222hr)4:cªn\‚l4FFF•%ZZPP<‡ GŠZZZ–³XpbƒÜ@—”¬ Lnnnကc°@@ЀÀسÚ0Û}˜˜¦SÿhÂØØâ ‘‘‘ÿmP±±§šŒÐdtç¹ÿÿHÈ   ÿcyÿ­,ÎÁÎ$šÿª8ÿÿNÿÿN¥´´´ÿªzÕÕßɾ÷ÿå`ÿÿpØÿÀÀÿí$ïïiÉÿÍŒÿÿÿÿ¼ÒÒÒÿÁ}è쀎ÿçdßûÀÀÿø©ÿÿªêÜÜÜÿàÒÿÿm¼ÿ¼tÿÿ®àÿæÓÿÿÇÿÿËÙæææÿÞ±õõÌÕÿõ©öÿÛÛÿñÏÿÿÜððððÿÿÐðÿרÿÿàñÿôðÿÿðÿÿèî45ßÿî&ù úÿÿÿ"-üÿÿÿ-ßÿî&ù ÿÿÿ  ¿K  üZú'ÿÿ'ÿÿ ¦ûûÿÿÿ 'ÿÿÿÿÿ uFÿ§'ÿÿÿÿÿ uFÿ§üÿÿÿ- ú"- ÿÿÿ $ô<ÿ6<ÿ6%ô%ô<ÿ ú"-ð<ÿôÿÿÿ<ÿ6%6%ô<ÿô ú"-ð<ÿô%ôûåÿ¼Times-%ë%ô»ë»ôPëPôæëæô{ë{ôëô¦ÿë¦ÿô<ÿë<ÿô%ô%6.ô%ô..%..h%h.¡%¡.Û%Û.%.O%O.‰%‰.Â%Â.ü%ü.6%6 ú"--û¼"System-'ÿÿ---ÿÿÿ ÿÿÿpAÿ¬---'ÿÿ---ÿÿÿ ÿÿÿ?A%ÿÝ---'ÿÿ---ÿÿÿ ÿÿÿ<A%ÿÝü8×- ú"- ðü€€€-ð ú"-ð  €€€  ---'ÿÿ--- €€€<A%ÿÝl s e---'ÿÿ--- €€€<A%ÿÝ"Kü8×-  ÿÿÿ )RD---'ÿÿ-- - ÿÿÿ<A%ÿÝz¦ ­sŸ---'ÿÿ-- - ÿÿÿ<A%ÿÝ K RD---'ÿÿ-- - ÿÿÿ<A%ÿÝ¿¦ Æ­¸Ÿ---'ÿÿ-- - ÿÿÿ<A%ÿÝ?…-ð  €€€ FŒ8~---'ÿÿ--- €€€<A%ÿÝß &æØ---'ÿÿ--- €€€<A%ÿÝ…ü-   Œ ~---'ÿÿ-- - <A%ÿÝß æ Ø---'ÿÿ-- - <A%ÿÝ…- €€€  Œ~---'ÿÿ--- €€€<A%ÿÝçÿß îÿæàÿØ---'ÿÿ--- €€€<A%ÿÝ … Œ~---'ÿÿ--- €€€<A%ÿÝ0ß 7æ)Ø---'ÿÿ--- €€€<A%ÿÝßÿ… æÿŒØÿ~---'ÿÿ--- €€€<A%ÿÝß æØ---'ÿÿ--- €€€<A%ÿݾü8×-  ÿÿÿ %Å·---'ÿÿ-- - ÿÿÿ<A%ÿÝ* 1 #---'ÿÿ-- - ÿÿÿ<A%ÿÝ ¾ Å·---'ÿÿ-- - ÿÿÿ<A%ÿÝB I ;---'ÿÿ-- - ÿÿÿ<A%ÿݾ Å ·---'ÿÿ-- - ÿÿÿ<A%ÿÝ   ---'ÿÿ-- - ÿÿÿ<A%ÿÝ ¾ Å·---'ÿÿ-- - ÿÿÿ<A%ÿݾ Å·---'ÿÿ-- - ÿÿÿ<A%ÿÝ † x---'ÿÿ-- - ÿÿÿ<A%ÿÝM T F---'ÿÿ-- - ÿÿÿ<A%ÿÝÀ Ç ¹---'ÿÿ-- - ÿÿÿ<A%ÿÝ   ---'ÿÿ-- - ÿÿÿ<A%ÿÝ ¤ –---'ÿÿ-- - ÿÿÿ<A%ÿÝp w i---'ÿÿ-- - ÿÿÿ<A%ÿÝðÿß- ð   ÷ÿæéÿØ---'ÿÿ-- - <A%ÿÝýÿß- €€€ æöÿØ---'ÿÿ--- €€€<A%ÿÝîÿß õÿæçÿØ---'ÿÿ--- €€€<A%ÿÝß ¤æ–Ø---'ÿÿ--- €€€<A%ÿÝÜÿß ãÿæÕÿØ---'ÿÿ--- €€€<A%ÿÝ÷¦ü8×-  ÿÿÿ þ­ðŸ---'ÿÿ-- - ÿÿÿ<A%ÿÝP¦ W­IŸ---'ÿÿ-- - ÿÿÿ<A%ÿÝ®l-ð  €€€ µs§e---'ÿÿ--- €€€<A%ÿÝsÿl zÿslÿe---'ÿÿ--- €€€<A%ÿÝK-   `7---'ÿÿ-- - <A%ÿÝ…  n---'ÿÿ-- - <A%ÿݾ Ó ª---'ÿÿ-- - <A%ÿÝl  X---'ÿÿ-- - <A%ÿÝ`¦ d»\’---'ÿÿ-- - <A%ÿÝß ô Ë---'ÿÿ-- - <A%ÿÝu y.q---'ÿÿ-- - <A%ÿÝ---'ÿÿ-- - ?A%ÿÝ---'ÿÿ-- - uFÿ§---'ÿÿ-- - uFÿ§---'ÿÿ-- - uFÿ§ÿÿÿ  2 Ð0 2 ¬»0.2 2 A»0.4 2 ×»0.6 2 l»0.8 2 Ð1 2 —ÿ»1.2 2 -ÿ»1.4---'ÿÿ-- -ÿÿÿ uFÿ§---'ÿÿ-- -ÿÿÿ uFÿ§  2 ?ýDO 2 ?\4w---'ÿÿ-- -ÿÿÿ uFÿ§---'ÿÿ-- -ÿÿÿ uFÿ§- -ð'ÿÿ ¿K  ¦ûûÿÿÿ 'ÿÿ üZúÿÿÿ 'ÿÿð'ÿÿ ÿÿÿ  ¿K  ‘üµ÷'ÿÿ'ÿÿ ‘ü\øÿÿÿ 'ÿÿÿÿÿ _F§'ÿÿÿÿÿ _F§- ú"- ÿÿÿ $ô"6"6 ô ô" ú"-ð"ôÿÿÿ"6 6 ô"ô ú"-ð"ô ôûåÿ¼Times- ë ô¡ë¡ô6ë6ôÌëÌôaëaô÷ë÷ôŒëŒô"ë"ô ô 6ô ô. .h h¡ ¡Û Û O O‰ ‰Â Âü ü6 6 ú"- -û¼"System- 'ÿÿ---ÿÿÿ ÿÿÿZA¬- -- 'ÿÿ---ÿÿÿ ÿÿÿ%A Ý- -- 'ÿÿ---ÿÿÿ ÿÿÿ"A Ýü8×- ú"- ð÷-ð ú"-ð  €€€ þð - -- 'ÿÿ--- €€€"A Ý÷l þsðe- -- 'ÿÿ--- €€€"A ÝúKü8×-  ÿÿÿ RóD- -- 'ÿÿ-- - ÿÿÿ"A Ý®¦ µ­§Ÿ- -- 'ÿÿ-- - ÿÿÿ"A ÝÈK ÏRÁD- -- 'ÿÿ-- - ÿÿÿ"A ÝW¦ ^­PŸ- -- 'ÿÿ-- - ÿÿÿ"A Ý…-ð  €€€ Œ~- -- 'ÿÿ--- €€€"A Ýùß æòØ- -- 'ÿÿ--- €€€"A Ýö…-   ýŒï~- -- 'ÿÿ-- - "A Ýãß êæÜØ- -- 'ÿÿ-- - "A Ýí…- €€€ ôŒæ~- -- 'ÿÿ--- €€€"A Ý*ß 1æ#Ø- -- 'ÿÿ--- €€€"A Ýå… ìŒÞ~- -- 'ÿÿ--- €€€"A Ý¥ß ¬æžØ- -- 'ÿÿ--- €€€"A Ý…  Œû~- -- 'ÿÿ--- €€€"A Ý(ß /æ!Ø- -- 'ÿÿ--- €€€"A Ýá¾ü8×-  ÿÿÿ èÅÚ·- -- 'ÿÿ-- - ÿÿÿ"A ÝF M ?- -- 'ÿÿ-- - ÿÿÿ"A Ýò¾ ùÅë·- -- 'ÿÿ-- - ÿÿÿ"A Ý8 ? 1- -- 'ÿÿ-- - ÿÿÿ"A Ýñ¾ øÅê·- -- 'ÿÿ-- - ÿÿÿ"A Ý2 9 +- -- 'ÿÿ-- - ÿÿÿ"A Ýï¾ öÅè·- -- 'ÿÿ-- - ÿÿÿ"A Ýо ×ÅÉ·- -- 'ÿÿ-- - ÿÿÿ"A Ýz  s- -- 'ÿÿ-- - ÿÿÿ"A Ý: A 3- -- 'ÿÿ-- - ÿÿÿ"A Ýg n `- -- 'ÿÿ-- - ÿÿÿ"A Ýõ ü î- -- 'ÿÿ-- - ÿÿÿ"A Ýw ~ p- -- 'ÿÿ-- - ÿÿÿ"A Ý] d V- -- 'ÿÿ-- - ÿÿÿ"A Ýß- ð   æØ- -- 'ÿÿ-- - "A Ý-ß- €€€ 4æ&Ø- -- 'ÿÿ--- €€€"A ÝŠß ‘æƒØ- -- 'ÿÿ--- €€€"A Ý#ß *æØ- -- 'ÿÿ--- €€€"A Ýãß êæÜØ- -- 'ÿÿ--- €€€"A Ýq¦ü8×-  ÿÿÿ x­jŸ- -- 'ÿÿ-- - ÿÿÿ"A Ýa¦ h­ZŸ- -- 'ÿÿ-- - ÿÿÿ"A ÝEl-ð  €€€ Ls>e- -- 'ÿÿ--- €€€"A Ý©l °s¢e- -- 'ÿÿ--- €€€"A ÝáK-   å`Ý7- -- 'ÿÿ-- - "A Ý÷… ûón- -- 'ÿÿ-- - "A Ýç¾ ëÓãª- -- 'ÿÿ-- - "A Ý÷l ûóX- -- 'ÿÿ-- - "A Ýv¦ z»r’- -- 'ÿÿ-- - "A Ý÷ß ûôóË- -- 'ÿÿ-- - "A Ýf j.b- -- 'ÿÿ-- - "A Ý- -- 'ÿÿ-- - %A Ý- -- 'ÿÿ-- - _F§- -- 'ÿÿ-- - _F§- -- 'ÿÿ-- - _F§ÿÿÿ  2 üÐ0 2 ’»0.2 2 '»0.4 2 ½»0.6 2 R»0.8 2 èÐ1 2 }»1.2 2 »1.4- -- 'ÿÿ-- -ÿÿÿ _F§- -- 'ÿÿ-- -ÿÿÿ _F§  2 %ýDO 2 %\4w- -- 'ÿÿ-- -ÿÿÿ _F§- -- 'ÿÿ-- -ÿÿÿ _F§- - ð'ÿÿ ¿K  ‘ü\øÿÿÿ 'ÿÿ ‘üµ÷ÿÿÿ 'ÿÿð 'ÿÿ ú"-ü€€€- ðˆM ú"-ðü-ð ú†} ú"- ðü€€€-+†­ ú"- ð -ð[†ÜûSÿ¼Times New Roman×- ---ð --- 2 ³B6sU 2 ¬³B6 -IL-7sU,9Cr:U 2 ʳIL-4 KOBs9V,†† 2 è³IL-4 KO - IL-7 Bs9V,††,9,Bs9V+  ú "- -@¥š ÿÿÿ  †× —ÿàÿ'ÿÿ'ÿÿ ûþnÿÿÿ 'ÿÿÿÿÿ Ã-dÿŽ'ÿÿÿÿÿ Ã-dÿŽ- ú"-  ÿÿÿ $Í…ÿ…ÿ€Í€Í…ÿ ú"- ð …ÿÍÿÿÿ…ÿ€€Í…ÿÍ ú"- ð …ÿÍ€Íûëÿ¼Times- €Æ€Í+Æ+ÍÖÆÖ͂ƂÍ-Æ-ÍØÆØÍƒÆƒÍ/Æ/ÍÚÿÆÚÿÍ…ÿÆ…ÿ̀̀‡Í€Í‡þ€þ‡0€0‡a€a‡’€’‡Ä€Ä‡õ€õ‡&€&‡X€X‡‰€‰‡º€º‡ì€ì‡€ ú"--û¼"System-'ÿÿ- -- ÿÿÿ ÿÿÿ¾(iÿ“---'ÿÿ- -- ÿÿÿ ÿÿÿ”(tÿ¼---'ÿÿ- -- ÿÿÿ ÿÿÿ‘(tÿ¼ü8×- ú"-ð Øæ-ð ú"- ð €€€ ßíÑß---'ÿÿ- --  €€€‘(tÿ¼Ø? ßFÑ8---'ÿÿ- --  €€€‘(tÿ¼"ü8×- ÿÿÿ )---'ÿÿ- --  ÿÿÿ‘(tÿ¼"p )wi---'ÿÿ- --  ÿÿÿ‘(tÿ¼ $---'ÿÿ- --  ÿÿÿ‘(tÿ¼wp ~wpi---'ÿÿ- --  ÿÿÿ‘(tÿ¼Åz-ð €€€ ̾s---'ÿÿ- --  €€€‘(tÿ¼“Ó šÚŒÌ---'ÿÿ- --  €€€‘(tÿ¼ëz òäs---'ÿÿ- --  €€€‘(tÿ¼XÓ _ÚQÌ---'ÿÿ- --  €€€‘(tÿ¼ñz øês---'ÿÿ- --  €€€‘(tÿ¼bÓ iÚ[Ì---'ÿÿ- --  €€€‘(tÿ¼¿z Ƹs---'ÿÿ- --  €€€‘(tÿ¼ÓÓ ÚÚÌÌ---'ÿÿ- --  €€€‘(tÿ¼Ó ÚÌ---'ÿÿ- --  €€€‘(tÿ¼«ü8×- ÿÿÿ  ²ý¤---'ÿÿ- --  ÿÿÿ‘(tÿ¼   ý---'ÿÿ- --  ÿÿÿ‘(tÿ¼ñ« ø²ê¤---'ÿÿ- --  ÿÿÿ‘(tÿ¼] d Vý---'ÿÿ- --  ÿÿÿ‘(tÿ¼Òÿ« Ùÿ²Ëÿ¤---'ÿÿ- --  ÿÿÿ‘(tÿ¼' .  ý---'ÿÿ- --  ÿÿÿ‘(tÿ¼¬« ³²¥¤---'ÿÿ- --  ÿÿÿ‘(tÿ¼¬« ³²¥¤---'ÿÿ- --  ÿÿÿ‘(tÿ¼Y ` Rý---'ÿÿ- --  ÿÿÿ‘(tÿ¼Û â Ôý---'ÿÿ- --  ÿÿÿ‘(tÿ¼y € rý---'ÿÿ- --  ÿÿÿ‘(tÿ¼€ ‡ yý---'ÿÿ- --  ÿÿÿ‘(tÿ¼€ ‡ yý---'ÿÿ- --  ÿÿÿ‘(tÿ¼€ ‡ yý---'ÿÿ- --  ÿÿÿ‘(tÿ¼Ó-ð €€€  ÚûÌ---'ÿÿ- --  €€€‘(tÿ¼Ó ÚÌ---'ÿÿ- --  €€€‘(tÿ¼^Ó eÚWÌ---'ÿÿ- --  €€€‘(tÿ¼ÛÓ âÚÔÌ---'ÿÿ- --  €€€‘(tÿ¼õÓ üÚîÌ---'ÿÿ- --  €€€‘(tÿ¼ûpü8×- ÿÿÿ wôi---'ÿÿ- --  ÿÿÿ‘(tÿ¼*p 1w#i---'ÿÿ- --  ÿÿÿ‘(tÿ¼Õ?-ð €€€ ÜFÎ8---'ÿÿ- --  €€€‘(tÿ¼Üÿ? ãÿFÕÿ8---'ÿÿ- --  €€€‘(tÿ¼ -   £)---'ÿÿ- - -  ‘(tÿ¼Øz ÛŒÕi---'ÿÿ- - -  ‘(tÿ¼Ó« Ö½К---'ÿÿ- - -  ‘(tÿ¼Ø? ÛQÕ.---'ÿÿ- - -  ‘(tÿ¼/p 2‚,_---'ÿÿ- - -  ‘(tÿ¼ØÓ ÛåÕÂ---'ÿÿ- - -  ‘(tÿ¼O RLó---'ÿÿ- - -  ‘(tÿ¼---'ÿÿ- - -  ”(tÿ¼---'ÿÿ- - -  Ã-dÿŽ---'ÿÿ- - -  Ã-dÿŽ---'ÿÿ- - -  Ã-dÿŽÿÿÿ  2 u±0 2 ¡0.2  2 Ë¡0.4  2 w¡0.6  2 "¡0.8  2 ͱ1 2 x¡1.2  2 $¡1.4  2 Ïÿ¡1.6  2 zÿ¡1.8  ---'ÿÿ- - - ÿÿÿ Ã-dÿŽ---'ÿÿ- - - ÿÿÿ Ã-dÿŽ  2 •ÙD0 2 •24w ---'ÿÿ- - - ÿÿÿ Ã-dÿŽ---'ÿÿ- - - ÿÿÿ Ã-dÿŽ- -ð  -÷€€€€€€€€€ÀÀÀÀÜÀ¦Êðÿûð  ¤€€€ÿÿÿÿÿÿÿÿÿÿÿÿ4 'ÿÿ —ÿàÿÿÿÿ - ü- úÿÿÿ"-]Z=O- --- ÿÿÿ- [U>S-  2 AT 'ÿÿÿÿÿ Ã-dÿŽ-- 'ÿÿ ûþnÿÿÿ  ÿÿÿ- 'ÿÿ †× ûþnÿÿÿ 'ÿÿ —ÿàÿÿÿÿ 'ÿÿððð-÷€€€€€€€€€ÀÀÀÀÜÀ¦Êðÿûð  ¤€€€ÿÿÿÿÿÿÿÿÿÿÿÿ4ð 'ÿÿûÞþTimes New Roman×- ð ---ð ---.2 Õ|Normalised number of cellsБaà€PPoI‘á€aH‘`I€€PPoû ÿTimes New Roman×-ð   2 ô‹CD4+¤²{‹  2 ôÍCD8+¥²{‹ -üÿÿÿ- Ü; ùûMÿ¼Times New Roman×- ð ------ð 2 ?D0€Y 2 ! 4 weeksY-NNdEû Courier-ð libwmf-0.2.13/examples/fjftest.wmf000066400000000000000000000037661441723000300170610ustar00rootroot00000000000000×ÍÆšr*Â#¾JoQè˜F ؆ ­-L  ÿÿÿ .­-L ú8ÿ"-üÿÿ-ÐÐèè ú}ÿ"-ðü€ÿ- úúpˆ¸ èü€-ð ú€"-ðN$%„o­QÙ=28/h6•FÀ_åmà Œì   «H ­x ¦¨ –Õ }ÿ [$ çs¿‘’¥c±3³¬Öœ¬ƒ†`ýßöËÉÀš½jÅ;Õ î㽄o ú*€"-ðüÿÿ-ðx¨ ú*ÿ€"-ðd$0š ] Tí U aL w —³ Àè ò ,Œ ¸÷ _^¼ò ÌGœn_€~¨uêf$ SV : ž ø² м ¥º w® F˜ x à O «  t ã> ¡ W› °5 ñÖ ‡ DL s% °  h &, ì@ ºY ‘w rš ] ú§@Â"-ð °ø*ˆø*°0` ú}@Â"-ðü€- ü! ( (X $Ä XWd6 ò%Rò%1dÄ X$ Ä X} ÕWd "6 ò%Ä "$Rò%û"1d ÕÄ Xüÿÿ- úS@Â"-ð"$L x¸ °X<ôhŒ ø„X„È@„ô˜èl Ä L` L L $ Ä" ”*Œ \+0*4)° ( Ä" úR@Â"-ð†$Áƒ«œâ¼2ä™E¨}K»ÿýÂD“pÙV(EÌ5s3â)€/¹G Pi  ô² ÖÌÆÕÊQÕÅå2ý–ñC@r„ª¼ëç6‹áE-wq±«ôÞ< Š0ÚO%¤9Ò”é±öÀÁ³-“GaeÀµÅ“[¤»à Fh Ò´ ú Q8!DU!=o!Bž!N´!_Ç!ç!Ñÿ!"y"Ù"? "¥ú! ß!k»!Ä!V!37!Q!kð €É ‘  ›t  F Ÿ ˜âŠ«tsV71ù¸Ët‹-BäI(÷5K“å âÎ IÏ Æå X þS ¶©€YŠA5°5[?RÛm¯²{Ûpo1v[†„œ©¸ÉÙâÿõ'þRüï­ÖÛ­u3+Vßižoii>X<ùëó¹õ€ÿ&|cõ²x t⩾ޣ’H|”­©ÝÌ ÿ2CWšx“ÏÂiîÕ<+N5_7p2€&Ÿß¼˜ÙBô+Àejƒ#£ãС__·r+ úT ãl Î} »ˆ ªŒ ›‰ Ž} ƒi {K rðugƒ«'ÿÿ¡__·r+ úT ãl Î} »ˆ ªŒ ›‰ Ž} libwmf-0.2.13/examples/formula1.wmf000066400000000000000000000025601441723000300171310ustar00rootroot00000000000000×ÍÆšüÿüÿÚ%`ŽW ­ ÿÿÿ.1  à@&ÿÿÿÿÀÿÿÿ¶ÿÿÿ– & MathTypep ú"- [ ‚û…ýÝSymbol-2 ý(û…ýÝSymbol-ð2 ý£)ûþÝSymbol-ð2 þþ (ûþÝSymbol-ð2 þ ) ¯ òûqýÝSymbol-ð2 üH(ûqýÝSymbol-ð2 ü)û ÿTimes New Roman¸Q-ð2 õ|22 8Ÿ 22 Tð22 þ22 To2û ÿSymbol-ð2 orû`ÿTimes New Roman¸Q-ð2 zwxû ÿTimes New Roman-ð2 BÌm2 `Ýs2 oÄs2 Ky2 `áyû€þTimes New Roman¸Q-ð2 ` x2 »m2 ƒs2 :mû€þSymbol-ð2 v D2 ß +2 å=û ÿSymbol-ð2 KxD2 `YD & ÿÿÿÿû¼"Systemn-ðlibwmf-0.2.13/examples/formula2.wmf000066400000000000000000000017641441723000300171370ustar00rootroot00000000000000×ÍÆšüÿüÿ«9`ãW ï ÿÿÿ.1  @€&ÿÿÿÿÀÿÿÿ¹ÿÿÿ@ù & MathType ú"-À7ÀÆ ú"-Ø»¹ñ ú""-Âñ‹>-‹FO¬O¬OA®"ä-+äÓ1-Ó9ìŸìŸì-À†À>û`þTimes New Roman-2 X(22 X– 22 »22 »‚ 2û`þTimes New Roman-ð2 ¼g v2 ¼´ u2 S y2 Á x 2 WSuv 2 A`Sxy2 FKû`þSymbol-ð2 ¼j D2 ¼| +2 ¼·D2 V D2 h +2 ÄD2 8=2 é= & ÿÿÿÿû¼"System-ðlibwmf-0.2.13/examples/formula3.wmf000066400000000000000000000043221441723000300171310ustar00rootroot00000000000000×ÍÆšüÿüÿŒ6`ËU ^ ÿÿÿ.1  $&ÿÿÿÿÀÿÿÿºÿÿÿÀ#º & MathType€ ú"- i  Œ ûâýÝSymbol-2 þò (ûâýÝSymbol-ð2 þª )ûþÝSymbol-ð2 þŸ(ûþÝSymbol-ð2 þÇ) 6 iûhýÝSymbol-ð2 ýÏ(ûhýÝSymbol-ð2 ý‡) L sû|ýÝSymbol-ð2 þã(û|ýÝSymbol-ð2 þ‘)ûþÝSymbol-ð2 þz(ûþÝSymbol-ð2 þœ ) " _#ûøüÝSymbol-ð2 ü¦!(ûøüÝSymbol-ð2 ü}#)û ÿSymbol-ð2 sq"r2 srû`ÿTimes New Roman!-ð2 Ú×"2û ÿTimes New Roman--ð2 8 !22 T|22 úî22 ñâ22 8622 T¡22 ( 22 TÙ22 T¯22 T_2û`ÿTimes New Roman!-ð2 vÆ"t2 vútû ÿTimes New Roman--ð2 >"m2 `is2 sµs2 Gñy2 >Sm2 `Žs2 sÐ s2 u x2 `×y2 `£x2 `dpû€þTimes New Roman!-ð2 Üx2 Wm2 y2 | m2 ´m2 Šm2 :mû€þSymbol-ð2 òD2 [+2 »×2 Á+2 D2 €+2 à ×2 È=2 Ž+2 Z=û ÿSymbol-ð2 GiD2 u† D & ÿÿÿÿû¼"Systemn-ðlibwmf-0.2.13/examples/formula4.wmf000066400000000000000000000017661441723000300171430ustar00rootroot00000000000000×ÍÆšüÿüÿñB`ÂW ð ÿÿÿ.1  À@&ÿÿÿÿÀÿÿÿ¥ÿÿÿe & MathTypeû€þSymbol-2 G:î2 :í2 ½:ì2 â5 +2 â;+2 âQ=2 ¢ -2 ¢]×2 ¢ê+2 ¢=û€þTimes New Roman-ð2 â—tu2 âZ m2 âÓ t2 â`m2 â¦y2 â=y2 ¢Út2 ¢ m2 ¢ t2 ¢m2 ¢\x2 ¢ xû ÿTimes New RomanŠ-ð2 BF u2 Mu2  uû€þTimes New Roman-ð 2 â› sin 2 â§cos 2 ¢Þ sin 2 ¢ñcosû ÿTimes New RomanŠ-ð2 BW02 0 & ÿÿÿÿû¼"Systemn-ðlibwmf-0.2.13/examples/fulltest.wmf000066400000000000000000000101501441723000300172370ustar00rootroot00000000000000×ÍÆš$mVTì g )-  VT$m.ú(-ü->LØ3 <â>L|g <Å8"»gÅ8A"Ø3nâ.ûcù¼"Arialõwøòwÿÿÿÿ¸òÙçîw -2 ³)6Metafile Companion Test Chartþ.û?ý¼"Arialõwøòwÿÿÿÿ¸òÙçîw -ð 2 ,AObjectsº 2 ,E;Colors 2 )=E;Advanced 2 %=…Fillsþú-ðÔ?Ü« fJÁJ! ¶.û?ýÈ"Arialõwøòwÿÿÿÿ¸òÙçîw -ð 2 nD¿aRotatedº.û?ý"Arialõwøòwÿÿÿÿ¸òÙçîw -ð 2 8Å,Textú-ðüÀÀÀ-ð8ëQBFÓU¢@“YBFWSžE¿U BXžE“TÊD«U*C¿VÊDú-ð|1Í|1ýú-ð˜-͘-ýú-ð´)©´)Ùú-ð”+©”+Ùú-ðx/Íx/ýú-ðü-ðòHeYDÌ ü-ðòH`YDÇ-B( ÿÿÿï÷ûýþýû÷-ðUC9)¼> $üÿ-ðÃÑ^ Zü€-ðÃÖX |*ü-ðòH\YD£üÿÿ-ðÃÍd `úx-ðx-x-Í!ú-ð”)y”)©!ú<-ðt+yt+©!ú´-ðX/X/Í!úð-ð\1\1Í!ú-ðü-ðUCe¼>Ì ü-ðUC‰ ¼>Ðü-ðUC`¼>Çü-ðUC\¼>£üÿÿÿ-ð¤¥F  Bü-ð¤É@ <ü€€€-ð¤¡L Hüÿ-ð¤œR ãMü-ðòH‰ YDÐú-ð %à Úoæ/>w%÷ Dû Dü-ð$y$Hy$”¹&Œ9*ŒÕ)”™'¬ú(-ðÃ6Ø3ï&âû?ý¼"Arialõwøòwÿÿÿÿ¸òÙçîw -ð 2 ô'©Linesþ 7|gï&Å8 2 (i;Fontsþ 2 ä,ÁTBoldû?ý"Courier Newÿÿÿÿ¸òÙçîw -ð 2 œ3U Underlineþû?ý"Times New Roman¸òÙçîw -ð 2 0áTItalicû?ý"Arialõwøòwÿÿÿÿ¸òÙçîw -ð 2 Ä,e;Arialþû?ý"Times New Roman¸òÙçîw -ð2 0A;Times New Romanºû?ý"Courier Newÿÿÿÿ¸òÙçîw -ð 2 œ3e; Courier Newºÿÿú-ðüÿ-ð¦Eª@î@ñ;üÿÿ-ð¬DLô?ÕEÿÿÿü-ðCFØHŠAáCCFuNŠAÜI.ûYþTimes New Roman¸òÙçîw -ð 2 žJóaText 2 âH³aRotatedº. 2 öH: Background 2 ²J{<Colorþ 2 IÛRComplexº 2 ¾JkSPolygonº 2 öH·D Transparency. 2 è3© Patterns. 2 4© Thicknessþ.2 K*Bitmap Fill Patterns2 ùJ1Basic Fill Patternsº.ú-ð-B( ÿÿÿÿÿÿþþþþà-ðòH9)YD $-B( ÿÿÿþüøðàÀ€-ðòH’/YD|*ú-ðüÿÿÿ-ðû¼SystemwH(ó(€÷¤êîw-ðlibwmf-0.2.13/examples/p0000001.wmf000066400000000000000000000041361441723000300163640ustar00rootroot00000000000000 /Ôÿÿÿ.1  À&ÿÿÿÿÀÿÿÿ¦ÿÿÿ€¦ & MathTypeú-€€à ú-é‘·¶2LzL ü-ú-$ ŒæÁ ÚrC C VƒV2 2«Î–í- Byû ÿTimes New RomanSˆíwÐgïw? µ - 2 2yÀ Ä û€þTimes New RomanSˆíwÐgïwB : -ð 2 123µ.%îjû€þTimes New RomanSˆíwÐgïw? ¶ -ð 2 2yà6 û€þTimes New RomanSˆíwÐgïwB ; -ð 2 *456”%% ~û€þTimes New RomanSˆíwÐgïw? · -ð 2 2y Ä û€þTimes New RomanSˆíwÐgïwB < -ð 2 789·(%î¼û€þTimes New RomanSˆíwÐgïw? ¸ -ð 2 xxaa†¨à:û€þTimes New RomanSˆíwÐgïwB = -ð 2 ay 8û€þTimes New RomanSˆíwÐgïw? ¹ -ð 2 by¼& û€þSymbolB >JˆíwSˆíwÐgïwB > -ð 2 éù¼îP 2 +-¢,& 2 êú¼àZ 2 =úœ& 2 êú¼ & 2 êú¼ˆ& 2 ëû¼Ô&žMathTypeUU’DSMT4WinAllBasicCodePagesTimes New RomanSymbolCourier NewMT Extra!/'ò_!!/G_APòAPôAôEô%ôB_AôC_Aò ¥ò %ô!ôAôHôôAò_D_Eô_Eô_A  ƒa†==  ƒx ˆ2 †++ˆ2ƒxƒa†"-ƒaˆ2ƒb  ‚*ˆ1ˆ2ˆ3ˆ4ˆ5ˆ6ˆ7ˆ8ˆ9–[–] & ÿÿÿÿLú-ü-û¼"SystemŠ Š -ðlibwmf-0.2.13/examples/p0000016.wmf000066400000000000000000000024121441723000300163650ustar00rootroot00000000000000 … ÿÿÿ.1  ` &ÿÿÿÿÀÿÿÿ¶ÿÿÿÀ & MathType`û€þTimes New RomanÁ-2  6)2  4(2  {)2  y(2  f)2  d(2  )2  (2  Á )2  ¿(2  y)2  w(û ÿTimes New RomanÁ-ð2 ,22 q 32 ÷1û€þTimes New RomanÁ-ð2  ²t2  £T2  gk2  ÷t2  èT2  ât2  \T2  št2  ÿ M2  ³ k2  = t2  ·T2  õt2  QV2  Kk2  "Tû ÿTimes New RomanÁ-ð2 {L2 ÀL2 GT2 I2 úLû€þSymbol-ð2  G-2  2-2  Ø×2   +2  3×2  =û€þSymbol-ð2  Xmû€þMT Extra-ð2 :Ž& & ÿÿÿÿû¼"System-ðlibwmf-0.2.13/examples/sample.wmf000066400000000000000000000463201441723000300166660ustar00rootroot00000000000000×ÍÆšZülù©xè] ]&( xZü ôôO üëÿ-úÿÿÿ-„$@ËñüïÁü‘ü:büa5üˆü±ÛûÛ°û„û1[û]2ûŠ ûÇÔúß¾ú÷©ú•ú)‚úDqú_`ú|Qú˜Búµ5úÒ)úðúú. úMúlýù‹ùù«õùËòùëñù ñù+òùKõùkùùŠýù©ú™úrúL ú&.ú=úÝNú¹_ú•qúr…úPšú.¯ú ÆúíÞúÍöú®û_Vû'†ûñ¸û¼êû‡üTRü!‡üï¼ü¾óüqHýËñüú-üÿÿÿ-ðú-„%@ËñüïÁü‘ü:büa5üˆü±ÛûÛ°û„û1[û]2ûŠ ûÇÔúß¾ú÷©ú•ú)‚úDqú_`ú|Qú˜Búµ5úÒ)úðúú. úMúlýù‹ùù«õùËòùëñù ñù+òùKõùkùùŠýù©ú™úrúL ú&.ú=úÝNú¹_ú•qúr…úPšú.¯ú ÆúíÞúÍöú®û_Vû'†ûñ¸û¼êû‡üTRü!‡üï¼ü¾óüqHýËñü-ðüëÿ--F$!'þ§þxÿÆú/ÿŒúßþLúÔþDúµþ/ú–þúvþúUþôù3þâùþÒùîýÃùËýµù¨ý¨ù„ýù`ý’ù;ý‰ùýùñü{ùËüuù¦üqù€ünùZülù´üšù ýÉùeýùù¼ý+ú þZú«þÔúIÿOûæÿËû'þ--ðú-F%!'þ§þxÿÆú/ÿŒúßþLúÔþDúµþ/ú–þúvþúUþôù3þâùþÒùîýÃùËýµù¨ý¨ù„ýù`ý’ù;ý‰ùýùñü{ùËüuù¦üqù€ünùZülù´üšù ýÉùeýùù¼ý+ú þZú«þÔúIÿOûæÿËû'þ-ðü--$ éÆýùíýþ þapþ“Xþ^æýIÉý%ÂýÉýéÆý--ðú-% éÆýùíýþ þapþ“Xþ^æýIÉý%ÂýÉýéÆý-ðüzzz--¶$Yé+ðóùýÿ ÿýúúðúìùæúâþâá ßÝÚÐÆ³­¦ ¢¥#¥'œ'•(“.Ž8?‘C˜IœVb™gL€IzFr;n5n,q+t+x+|'‚"ƒ€}| yvüxùzú~ýƒÿ•ÿ§ú°÷³õ³í³è³à´Þ´Õ¸Ñ»ËÃËÕÒÝÙåßéàïàôÝÔÎÉÆ ÇË'Ò.Û1é+--ðú-¶%Yé+ðóùýÿ ÿýúúðúìùæúâþâá ßÝÚÐÆ³­¦ ¢¥#¥'œ'•(“.Ž8?‘C˜IœVb™gL€IzFr;n5n,q+t+x+|'‚"ƒ€}| yvüxùzú~ýƒÿ•ÿ§ú°÷³õ³í³è³à´Þ´Õ¸Ñ»ËÃËÕÒÝÙåßéàïàôÝÔÎÉÆ ÇË'Ò.Û1é+-ðüµµµ--F$!lˆo†Tœ&´ùÌÍæ¢wM<#YûÿyÓÿ™¬ÿº…ÿÜ`ÿÿ:ÿ DÿéjÿÇÿ¦µÿ†ÜÿfH-+Wó¬ÙØÁ©0’]|Œy’lˆ--ðú-F%!lˆo†Tœ&´ùÌÍæ¢wM<#YûÿyÓÿ™¬ÿº…ÿÜ`ÿÿ:ÿ DÿéjÿÇÿ¦µÿ†ÜÿfH-+Wó¬ÙØÁ©0’]|Œy’lˆ-ðüµµµ--Æ$a£˜ÿ “ÿžŒÿœ„ÿ›{ÿ›tÿ›lÿeÿ ^ÿ£Zÿ§Uÿ¬Rÿ±Pÿ¸Nÿ¾NÿÄOÿËRÿÐUÿÖ[ÿÝ`ÿáfÿæmÿêuÿì}ÿï…ÿðÿð•ÿðÿï¤ÿìªÿé±ÿä´ÿá¸ÿÛ»ÿÖ¼ÿϽÿÊ»ÿùÿ½¶ÿ¶²ÿ±­ÿ¬¦ÿ§ ÿ£˜ÿ• ÿ™©ÿŸ±ÿ¦¹ÿ¬¿ÿ²ÅÿºÊÿÁÎÿÉÑÿÐÒÿØÒÿÞÑÿåÏÿëÌÿðÉÿõÃÿù¼ÿýµÿ®ÿ¤ÿœÿ“ÿ‰ÿýÿûvÿ÷mÿòdÿí[ÿçSÿáMÿÚGÿÓBÿË>ÿÃ;ÿ¼9ÿµ8ÿ®:ÿ§;ÿ¡>ÿœBÿ—Gÿ“MÿTÿ\ÿ‹dÿŠmÿŠvÿ‹€ÿŠÿ“ÿ”ÿ• ÿ£˜ÿ--ðú-Æ%a£˜ÿ “ÿžŒÿœ„ÿ›{ÿ›tÿ›lÿeÿ ^ÿ£Zÿ§Uÿ¬Rÿ±Pÿ¸Nÿ¾NÿÄOÿËRÿÐUÿÖ[ÿÝ`ÿáfÿæmÿêuÿì}ÿï…ÿðÿð•ÿðÿï¤ÿìªÿé±ÿä´ÿá¸ÿÛ»ÿÖ¼ÿϽÿÊ»ÿùÿ½¶ÿ¶²ÿ±­ÿ¬¦ÿ§ ÿ£˜ÿ• ÿ™©ÿŸ±ÿ¦¹ÿ¬¿ÿ²ÅÿºÊÿÁÎÿÉÑÿÐÒÿØÒÿÞÑÿåÏÿëÌÿðÉÿõÃÿù¼ÿýµÿ®ÿ¤ÿœÿ“ÿ‰ÿýÿûvÿ÷mÿòdÿí[ÿçSÿáMÿÚGÿÓBÿË>ÿÃ;ÿ¼9ÿµ8ÿ®:ÿ§;ÿ¡>ÿœBÿ—Gÿ“MÿTÿ\ÿ‹dÿŠmÿŠvÿ‹€ÿŠÿ“ÿ”ÿ• ÿ£˜ÿ-ðüµµµ--$á³ÿž[ÿ§Jÿô²ÿá³ÿ--ðú-%á³ÿž[ÿ§Jÿô²ÿá³ÿ-ðú- %ÿ<ÿ Eÿö\ÿ-ðú-% Æÿ¥¶ÿ…ÝÿeG.*X‚ó­ØÙ¿§1‘^-ðú-% wn…Tš&³úÌÎå¢wN;$YûÿxÓÿ˜¬ÿ¹…ÿ-ðú->%±Pÿ¸Nÿ¾NÿÄOÿËRÿÐUÿÖ[ÿÝ`ÿáfÿæmÿêuÿì}ÿï…ÿðÿð•ÿðÿï¤ÿìªÿé±ÿä´ÿá¸ÿÛ»ÿÖ¼ÿϽÿÊ»ÿùÿ½¶ÿ¶²ÿ±­ÿ-ðú-`%.¬¿ÿ²ÅÿºÊÿÁÎÿÉÑÿÐÒÿØÒÿÞÑÿåÏÿëÌÿðÉÿõÃÿù¼ÿýµÿ®ÿ¤ÿœÿ“ÿ‰ÿýÿûvÿ÷mÿòdÿí[ÿçSÿáMÿÚGÿÓBÿË>ÿÃ;ÿ¼9ÿµ8ÿ®:ÿ§;ÿ¡>ÿœBÿ—Gÿ“MÿTÿ\ÿ‹dÿŠmÿŠvÿ‹€ÿŠÿ“ÿ-ðú- %Çtÿ«Pÿ£Sÿ¢[ÿ-ðú-%Ó„ÿì¦ÿ-ðüµµµ--F$!þøþþðþ÷ý¿þêýŽþÛý^þËý.þºýþý§ýÏý“ý ýýqýiýDýRýý:ýêü!ý¾üý“üëühüÝüoüøüšüýÅü+ýòüCýý[ýKýpýyý…ý§ý™ýÖý«ýþ¼ý6þÌýfþÛý–þéýÇþõýøþ÷ýÿþþøþ--ðú-F%!þøþþðþ÷ý¿þêýŽþÛý^þËý.þºýþý§ýÏý“ý ýýqýiýDýRýý:ýêü!ý¾üý“üëühüÝüoüøüšüýÅü+ýòüCýý[ýKýpýyý…ý§ý™ýÖý«ýþ¼ý6þÌýfþÛý–þéýÇþõýøþ÷ýÿþþøþ-ðüzzz-- $þ5ðý5áý5Éý/·ý$­ý¨ý §ýûÿ²ýìÿÅý×ÿÓýÐÿðý×ÿ þÞÿþ5--ðú- %þ5ðý5áý5Éý/·ý$­ý¨ý §ýûÿ²ýìÿÅý×ÿÓýÐÿðý×ÿ þÞÿþ5-ðüµµµ--@$ þ4øý1èý)Ùý"ÑýÂý ºýóÿÂýÏÿÅýÉÿÂýÃÿºý³ÿ­ý¤ÿ ýÿý}ÿ£ýfÿ­ýZÿ½ýNÿÓýGÿðýNÿþ\ÿGþÿ\þžÿ\þÐÿ@þûÿ;þ=þ/;þ73þ;$þ; þ4--ðú-@% þ4øý1èý)Ùý"ÑýÂý ºýóÿÂýÏÿÅýÉÿÂýÃÿºý³ÿ­ý¤ÿ ýÿý}ÿ£ýfÿ­ýZÿ½ýNÿÓýGÿðýNÿþ\ÿGþÿ\þžÿ\þÐÿ@þûÿ;þ=þ/;þ73þ;$þ; þ4-ðüÿ™u--:$èýkÿÙýiÿÉýfÿºýWÿ²ýJÿ¯ý8ÿµý+ÿÂý#ÿÑý#ÿøý(ÿ þ1ÿ$þ:ÿ8þGÿGþUÿZþfÿlþzÿvþÿ{þœÿƒþ¬ÿþÐÿ–þÞÿžþûÿdþíÿ*þÂÿ÷ý–ÿáýrÿèýkÿ--ðú-:%èýkÿÙýiÿÉýfÿºýWÿ²ýJÿ¯ý8ÿµý+ÿÂý#ÿÑý#ÿøý(ÿ þ1ÿ$þ:ÿ8þGÿGþUÿZþfÿlþzÿvþÿ{þœÿƒþ¬ÿþÐÿ–þÞÿžþûÿdþíÿ*þÂÿ÷ý–ÿáýrÿèýkÿ-ðüÉf#-- $þ€ÿþBÿþÿ þóþþâþúýèþëýæþæýãþíýøþõý#ÿ÷ýNÿ÷ýkÿ÷ýÿþ€ÿ--ðú- %þ€ÿþBÿþÿ þóþþâþúýèþëýæþæýãþíýøþõý#ÿ÷ýNÿ÷ýkÿ÷ýÿþ€ÿ-ðüÉf#--($ðý ðý5àý7Ùý>ÙýHÞýSæýZõý_þbþbþb$þ]&þK&þC#þ#þ #þûÿðý --ðú-(%ðý ðý5àý7Ùý>ÙýHÞýSæýZõý_þbþbþb$þ]&þK&þC#þ#þ #þûÿðý -ðüÿ™u--t$8Âþ<¥þ"˜þˆþyþtþ$\þ)Hþ"@þ8þ*þþÿýõýæýÙý ÓýûÿÖýîÿÞýßÿéý×ÿáý×ÿÓýÐÿÑýÈÿÑýÃÿÔý¸ÿÚý³ÿéý¬ÿÙý¦ÿÔý¤ÿÌýžÿÇý—ÿÇý‡ÿÉý}ÿÑýsÿÔýkÿãýdÿíý^ÿÿý^ÿþaÿþaÿþkÿ#þÿ*þyÿ8þyÿNþyÿ\þÿkþˆÿrþžÿyþ³ÿˆþÂÿžþ×ÿ¬þæÿÁþùÿØþ íþÂþ<--ðú-t%8Âþ<¥þ"˜þˆþyþtþ$\þ)Hþ"@þ8þ*þþÿýõýæýÙý ÓýûÿÖýîÿÞýßÿéý×ÿáý×ÿÓýÐÿÑýÈÿÑýÃÿÔý¸ÿÚý³ÿéý¬ÿÙý¦ÿÔý¤ÿÌýžÿÇý—ÿÇý‡ÿÉý}ÿÑýsÿÔýkÿãýdÿíý^ÿÿý^ÿþaÿþaÿþkÿ#þÿ*þyÿ8þyÿNþyÿ\þÿkþˆÿrþžÿyþ³ÿˆþÂÿžþ×ÿ¬þæÿÁþùÿØþ íþÂþ<-ðüµµµ--Æ$a4ýÖü7ýÑü;ýÊü>ýÃüAý»üBý³üCý«üCý¥üAýü?ý˜ü<ý“ü8ýŽü3ýŒü.ý‰ü'ýˆü!ýˆüýŠüýŒü ýüý“üý™üúüžüõü¥üñü¬üíü³üêü»üèüÃüçüËüçüÒüèüÙüêüàüîüåüñüéüõüíüûüïüýñüýñüýðüýíüýëü"ýçü(ýâü/ýÜü4ýÖü@ýßü:ýçü2ýîü+ýôü#ýúüýÿüýý ýýýýüüýõüýîüýèüÿüãüûüÞüöüÛüðüØüèüÖüáüÔüØüÕüÐüÖüÇüØü½üÛüµüßü¬üäü£üéü›üðü“üöüŒüþü…üýü ý{üýwüýuü%ýsü-ýsü4ýtü;ývüAýyüGý}üKý‚üOýˆüRýüTý–üUýžüUý§üTý°üRý¹üPýÃüLýÌüGýÔüBýÜü@ýßü4ýÖü--ðú-Æ%a4ýÖü7ýÑü;ýÊü>ýÃüAý»üBý³üCý«üCý¥üAýü?ý˜ü<ý“ü8ýŽü3ýŒü.ý‰ü'ýˆü!ýˆüýŠüýŒü ýüý“üý™üúüžüõü¥üñü¬üíü³üêü»üèüÃüçüËüçüÒüèüÙüêüàüîüåüñüéüõüíüûüïüýñüýñüýðüýíüýëü"ýçü(ýâü/ýÜü4ýÖü@ýßü:ýçü2ýîü+ýôü#ýúüýÿüýý ýýýýüüýõüýîüýèüÿüãüûüÞüöüÛüðüØüèüÖüáüÔüØüÕüÐüÖüÇüØü½üÛüµüßü¬üäü£üéü›üðü“üöüŒüþü…üýü ý{üýwüýuü%ýsü-ýsü4ýtü;ývüAýyüGý}üKý‚üOýˆüRýüTý–üUýžüUý§üTý°üRý¹üPýÃüLýÌüGýÔüBýÜü@ýßü4ýÖü-ðüµµµ--$ñüåüCýšü>ýˆüßüßüñüåü--ðú-%ñüåüCýšü>ýˆüßüßüñüåü-ðú-% ¶ýVýËýwýÝý™ýðý¼ýþßýþþþ'þ-þLþ9þqþEþ—þNþ½þWþãþ\þÿþ-ðú-% 8þíýIþþYþþgþ-þuþCþþZþþrþ—þ‹þ þ£þ¨þ¼þ¬þÍþ-ðú-% þAþC þDþDþýCùý@õý=ñý8ðý7-ðú-% þ/þ2 þ3þ3þý1ùý/õý+ñý'ðý%-ðú-&%æýÚÿðýÒÿúýÏÿþÏÿ þÒÿþÔÿþÚÿ!þßÿ&þéÿ)þÚÿ.þÏÿ8þÈÿ=þÃÿJþÀÿRþÀÿZþÀÿbþÅÿ-ðú-% ãý®ÿõý¡ÿÿýœÿ þšÿþšÿ$þŸÿ+þ¤ÿ.þ©ÿ0þ®ÿ0þ¸ÿ+þ¾ÿ&þÃÿþÈÿ-ðú-T%(¥þ"˜þˆþyþtþ$\þ)Hþ"@þ8þ*þþÿýõýæýÙý ÓýûÿÖýîÿÞýßÿéý×ÿáý×ÿÓýÐÿÑýÈÿÑýÃÿÔý¸ÿÚý³ÿéý¬ÿÙý¦ÿÔý¤ÿÌýžÿÇý—ÿÇý‡ÿÉý}ÿÑýsÿÔýkÿãýdÿíý^ÿÿý^ÿþaÿþaÿþkÿ-ðú-"%íþØþ Áþùÿ¬þæÿžþ×ÿ‹þÃÿƒþ®ÿƒþ¬ÿ{þœÿvþÿlþzÿZþfÿGþUÿ8þGÿ#þ:ÿ-ðú-% ðý&ÿÑý#ÿÁý#ÿ´ý+ÿ®ý8ÿ²ýJÿºýWÿÉýfÿÙýiÿ-ðú- %ëüiüÜüpüîüŠü-ðú-% ýÆü,ýóüDýý[ýLýqýzý†ý¨ý™ý×ý¬ýþ½ý6þÍýfþÜý—þêýÈþ-ðú-% ÿýÜþøýÀþëýþÜý_þÌý.þºýþý¨ýÏý”ý¡ýýrýjýEýRýý;ýëü"ý¿ü-ðú->%3ýŒü.ý‰ü'ýˆü!ýˆüýŠüýŒü ýüý“üý™üúüžüõü¥üñü¬üíü³üêü»üèüÃüçüËüçüÒüèüÙüêüàüîüåüñüéüõüíüûüïüýñüýñüýðüýíüýëü"ýçü-ðú-`%.#ýúüýÿüýý ýýýýüüýõüýîüýèüÿüãüûüÞüöüÛüðüØüèüÖüáüÔüØüÕüÐüÖüÇüØü½üÛüµüßü¬üäü£üéü›üðü“üöüŒüþü…üýü ý{üýwüýuü%ýsü-ýsü4ýtü;ývüAýyüGý}üKý‚üOýˆüRýüTý–üUýžüUý§üTý°üRý¹üPýÃüLýÌüGýÔü-ðú- %ý«ü9ýüAý’üAýšü-ðú-%ý¹üéüÕü-ðüÿ™u--r$7MCdQx_n}™Œ–”ª–¶—À ÑªÚ¸âÉãÑéÞõíú 5 BHùHíCá5ÕË.šK`jdvbaŒ[’T‘J‹B€9u5j4a4.&""ê#Ï,Á4º<µ;«5–&‡xM?MC--ðú-r%7MCdQx_n}™Œ–”ª–¶—À ÑªÚ¸âÉãÑéÞõíú 5 BHùHíCá5ÕË.šK`jdvbaŒ[’T‘J‹B€9u5j4a4.&""ê#Ï,Á4º<µ;«5–&‡xM?MC-ðüÉf#--`$.ÄüÀô½í¶ê­ì¢ñûšš u< $ì.Ø7ËCºM­R¥J›HŽJˆP†N€Xrbr}xŒ€”†š•—•ž©•­ˆµzËqÞhúa[.YJR`K‹K¨<¶.¶Ä--ðú-`%.ÄüÀô½í¶ê­ì¢ñûšš u< $ì.Ø7ËCºM­R¥J›HŽJˆP†N€Xrbr}xŒ€”†š•—•ž©•­ˆµzËqÞhúa[.YJR`K‹K¨<¶.¶Ä-ðüÿ™u--h$2'ÑÎËÄ ½ ¶ ¯ª§&§5¥<¢*™’‹ƒ}w*t5wAz1n*g'`'V+N4J<JRR`Xh`jjiub}hj‰ješm q¥q­j³e¶Z¹R½CË9Ñ1Ñ'Ñ--ðú-h%2'ÑÎËÄ ½ ¶ ¯ª§&§5¥<¢*™’‹ƒ}w*t5wAz1n*g'`'V+N4J<JRR`Xh`jjiub}hj‰ješm q¥q­j³e¶Z¹R½CË9Ñ1Ñ'Ñ-ðú-%/Ô#ÑÏþÏðÏæÌ-ðú-%<¢F¤M¤S¤Z¢^ dœ-ðú-%AzH~PW^b}-ðú- %R„W†h‹{”-ðüÿ--($’†‘‡`‚1xjÖV¬>„"ƒ"8 ïÿó§ÿÕaÿ²ÿ‹Þþ_¥þ4­þ,¼þ(ÉþÓþØþØþóÿÿ Wÿ4±ÿZ }jšª¬®•¶~ÃkËbËXÆK¿1½$¾ ÃîÿÍÕÿÚÁÿ®ÿg¤ÿQ—ÿ>†ÿ/qÿ$ZÿAÿ'ÿ$ÿ%þþ<ÄþWŒþxVþœ#þÄóýðÇý÷Áý=ÝýAþA/þ<Xþ1€þ"§þËþ÷íþÛ ÿËÿÞÿÿ&%ÿH1ÿU7ÿ`/ÿ–ÿÇÖþÞ½þì¢þõ–þ€þvþ-fþ:`þHZþVUþoQþ“>þúýA×ýƒ4þhSþJoþ)‡þ›þÞªþήþ»´þ¦¿þ”Íþ†àþ|õþw ÿw"ÿz/ÿ|Iÿycÿq|ÿe“ÿT¨ÿ@¹ÿ*ÅÿËÿ ÏÿÖÿùåÿõöÿõú& -4*@5O;`=s=tn¡Èí%5…xç¸Mó€vn-jAkTqfGYó;¡PòÇ·—nd57†--ðú-(%’†‘‡`‚1xjÖV¬>„"ƒ"8 ïÿó§ÿÕaÿ²ÿ‹Þþ_¥þ4­þ,¼þ(ÉþÓþØþØþóÿÿ Wÿ4±ÿZ }jšª¬®•¶~ÃkËbËXÆK¿1½$¾ ÃîÿÍÕÿÚÁÿ®ÿg¤ÿQ—ÿ>†ÿ/qÿ$ZÿAÿ'ÿ$ÿ%þþ<ÄþWŒþxVþœ#þÄóýðÇý÷Áý=ÝýAþA/þ<Xþ1€þ"§þËþ÷íþÛ ÿËÿÞÿÿ&%ÿH1ÿU7ÿ`/ÿ–ÿÇÖþÞ½þì¢þõ–þ€þvþ-fþ:`þHZþVUþoQþ“>þúýA×ýƒ4þhSþJoþ)‡þ›þÞªþήþ»´þ¦¿þ”Íþ†àþ|õþw ÿw"ÿz/ÿ|Iÿycÿq|ÿe“ÿT¨ÿ@¹ÿ*ÅÿËÿ ÏÿÖÿùåÿõöÿõú& -4*@5O;`=s=tn¡Èí%5…xç¸Mó€vn-jAkTqfGYó;¡PòÇ·—nd57†-ðú-(%½ð·æ²Û®Ð¬Åª¹ª­«¡®–±Š¶€¼uÃlËcÓ[ÝTèNðJ-ðú-æ%qËXÆK¿1½$¾ ÃîÿÍÕÿÚÁÿ®ÿg¤ÿQ—ÿ>†ÿ/qÿ$ZÿAÿ'ÿ$ÿ%þþ<ÄþWŒþxVþœ#þÄóýðÇý÷Áý=ÝýAþA/þ<Xþ1€þ"§þËþ÷íþÛ ÿËÿÞÿÿ&%ÿH1ÿU7ÿ`/ÿ–ÿÇÖþÞ½þì¢þõ–þ€þvþ-fþ:`þHZþVUþoQþ“>þúýA×ýƒ4þhSþJoþ)‡þ›þÞªþήþ»´þ¦¿þ”Íþ†àþ|õþw ÿw"ÿz/ÿ|Iÿycÿq|ÿe“ÿT¨ÿ@¹ÿ*ÅÿËÿ ÏÿÖÿùåÿõöÿõú& -4*@5O;`=s=tn¡Èí%5…xç¸Mó€vn-jAkTqfGYó;¡PòÇ·—nd57-ðú-:%†‘‡`‚1xjÖV¬>„"ƒ"8 ïÿó§ÿÕaÿ²ÿ‹Þþ_¥þ4­þ,¼þ(ÉþÓþØþØþóÿÿ Wÿ4±ÿZ }jš-ðú-%>t>…-ðüÿÔ--Î$e@Yo„—%ª5ºRÆwϕݫìÍß5éKñfûxýYø5íÛõëL.ƒXx7l%ƒ.§I¼Y·I† xó^ÁsÓŒã§ðËÙ&çéþãáÒÈÅ­¼·y¶cÕtº™‰wõ`áPÄ@¶Çá%8÷Å÷ŸÓ§Ó¾ÚÒéÃÈ©­‘šmumny®–ٶßpƒ^©g“Sf3: ùûÆôäíøíÍ֢ȌÁ©À¸Á©³Œ¥e›=– û³íå-   Ú@--ðú-Î%e@Yo„—%ª5ºRÆwϕݫìÍß5éKñfûxýYø5íÛõëL.ƒXx7l%ƒ.§I¼Y·I† xó^ÁsÓŒã§ðËÙ&çéþãáÒÈÅ­¼·y¶cÕtº™‰wõ`áPÄ@¶Çá%8÷Å÷ŸÓ§Ó¾ÚÒéÃÈ©­‘šmumny®–ٶßpƒ^©g“Sf3: ùûÆôäíøíÍ֢ȌÁ©À¸Á©³Œ¥e›=– û³íå-   Ú@-ðüÿ™u--ˆ$Bºk¹m°€©“¢¦œ¹˜Î•á“ö’ “•4˜Gœ\¢o©ƒ±–º¨º¨Éá)o8ÜÓË%Ó:Ë=Æ@¿B¸B°B©?¡<š8”3Ž,‰&†ƒ‚‚ƒƒƒÿrõaëPÞ@Ò1Ä#µ¦ –þ…ô…ôxìkâ`ØTÍKÁB´:¦3˜-Š){'rºk--ðú-ˆ%Bºk¹m°€©“¢¦œ¹˜Î•á“ö’ “•4˜Gœ\¢o©ƒ±–º¨º¨Éá)o8ÜÓË%Ó:Ë=Æ@¿B¸B°B©?¡<š8”3Ž,‰&†ƒ‚‚ƒƒƒÿrõaëPÞ@Ò1Ä#µ¦ –þ…ô…ôxìkâ`ØTÍKÁB´:¦3˜-Š){'rºk-ðú- %ô<ô6ô1õ,÷'ú#þ  !$)--ðüÿÿÿ--H$"œ1‘GUc”r€£‡ª‹¸€ÂyÑuìwü{)—5C—C€>l7\.G'1 * !Þ Êý¬ß–Ŕٖôš š#œ1--ðú-H%"œ1‘GUc”r€£‡ª‹¸€ÂyÑuìwü{)—5C—C€>l7\.G'1 * !Þ Êý¬ß–Ŕٖôš š#œ1-ðú- %Ÿ/£#¦¦-ðüÿ--($WÚUØJÏ=Ç1À#ºµ±ù¯ùÓ ×Ü,â<êLó[ü^þWÚ--ðú-(%WÚUØJÏ=Ç1À#ºµ±ù¯ùÓ ×Ü,â<êLó[ü^þWÚ-ðú-&%XÚUÙJÐ>Ç1À$ºµ²ù¯ùÔ ØÜ-ã=êLó[ü_ÿ-ðüÏÿÿ--b$/º¯¹²³É±â´ú¼É&Ù8íFïGS/ZQ\rY“Q²EÏ3Ü)éö þößÈü±òã‹âŠÐ½|¨|•‚Šs˜i©b¼`ÐaÚZéOõAý1!ÿøíýàûÚº¯--ðú-b%/º¯¹²³É±â´ú¼É&Ù8íFïGS/ZQ\rY“Q²EÏ3Ü)éö þößÈü±òã‹âŠÐ½|¨|•‚Šs˜i©b¼`ÐaÚZéOõAý1!ÿøíýàûÚº¯-ðüÿ™u--($5¯'©¡÷šà”Ç–‡„x‹x–¨­µËÄèÔå ÷5¯--ðú-(%5¯'©¡÷šà”Ç–‡„x‹x–¨­µËÄèÔå ÷5¯-ðú-&%5¯&©¡÷šß”Ç–‡„x‹x–ލ­µÊÄçÔå÷-ðú-% '<ZgZgVdN^FY=V3S)R RS UX-ðú-$%WyX^[C_(d jórÙ{¿…¦œu©]¸FÇ0ØÙ-ðú-"%µ8¶¸»í¿ÕŻ̤ԌÝtè^ôG2"-ðüÿÔ--†$AmhþldþiTþdDþ]5þV&þNþE þ;üý/ðý#åýÛýÑýùÉýëÂýëÂýõ½ý¯ý/ ýLýh~ýƒkýƒkýtý§Ôü\Ûü2ý2ý”<ý˜Eý›PýZýžeýpý›{ý—…ý“ýŽ˜ý‡¡ý€©ýw°ýn¶ýdºýZ¾ýPÁýDÂý?Âý?Âý7Óý.äý#ôýþ þþ þð-þá9þÒDþÁNþ°WþŸ_þeþzjþhoþfoþmhþ--ðú-†%AmhþldþiTþdDþ]5þV&þNþE þ;üý/ðý#åýÛýÑýùÉýëÂýëÂýõ½ý¯ý/ ýLýh~ýƒkýƒkýtý§Ôü\Ûü2ý2ý”<ý˜Eý›PýZýžeýpý›{ý—…ý“ýŽ˜ý‡¡ý€©ýw°ýn¶ýdºýZ¾ýPÁýDÂý?Âý?Âý7Óý.äý#ôýþ þþ þð-þá9þÒDþÁNþ°WþŸ_þeþzjþhoþfoþmhþ-ðú-%ƒkýö¬ý-ðüÿÔ--\$,®¥ý°“ý²‚ýµpýº_ýÀMýÇ=ýÏ-ýÙýãýïý÷øü÷øüèøüIŒüBZü| üè üÞÔüûøüõ#ýº+ýº+ý±Rý§zýš¡ýÇýíýyûýyûýhüýWüýEûý4ùý$õýðýéýóâýäÙýÖÐýÉÅý¼ºý¶´ý®¥ý--ðú-\%,®¥ý°“ý²‚ýµpýº_ýÀMýÇ=ýÏ-ýÙýãýïý÷øü÷øüèøüIŒüBZü| üè üÞÔüûøüõ#ýº+ýº+ý±Rý§zýš¡ýÇýíýyûýyûýhüýWüýEûý4ùý$õýðýéýóâýäÙýÖÐýÉÅý¼ºý¶´ý®¥ý-ðú-%÷øü8ÿü-ðú-%…üÛü-ðüÿÿÿ--"$ÒñüMêü‡@ý¤2ý€ãüaüûZüqÔüUÍüº=ü.üFÆüèÍüÒÔüÒñü--ðú-"%ÒñüMêü‡@ý¤2ý€ãüaüûZüqÔüUÍüº=ü.üFÆüèÍüÒÔüÒñü-ðüÿÿÿ--$ t'üŠüèKü'ü|ßûsûòÿˆûIÑû_íût'ü--ðú-% t'üŠüèKü'ü|ßûsûòÿˆûIÑû_íût'ü-ðú-%PæûÕÿžû-ðú-$%ÕCü³Eü‘EüoDüLAü*>ü9üç3üÅ+ü¤#üƒüc üCü$ôûæû÷ßû-ðú-% ò·üÇ®üœ¤ür™üGüüôpüË`ü£Oü{=ü\.ü-ðú-% @ýù2ýÔ#ý°ýŒýiñüGÝü%Èü³üõ©ü-ðú- %ôÓĽ”¦f7s YÜ=° „Yãÿ/Ãÿ¢ÿÝÿÕyÿ-ðú-% ¤.xM"óÿøÞÿÎÇÿ¥°ÿ|–ÿT|ÿ-bÿEÿã*ÿ-ðú-%›¬ÿµ¹ÿÏÈÿçØÿÿèÿúÿ. 3-ðú-*%æ–ýìýñ£ýö«ýú³ýü»ýýÄýüÍýûÕýùÝýõåýïíýêóýãøýÜüýÓþËþÂþºþ-ðlibwmf-0.2.13/examples/sample2.wmf000066400000000000000000000032501441723000300167430ustar00rootroot00000000000000×ÍÆšaýäú’ %èËZ I¦ %aý ¿ú1 ü-úÿÿÿ-¦$Ñ5ÿWýÿNýÿEýåþ=ýÉþ5ý®þ-ý“þ%ýxþý]þýAþ ý'þý þúüòýðüØýåü¾ýÚü¥ýÍüý¿ü€ýµüuý§ülý–üeý…üaýrüaýaüfýRüoýGü}ý=üŒý4ü›ý+ü«ý$ü¼ýüÍýüÞýüðýüþ üþ ü&þü8þüJþü\þünþÿûþýûŸþúû¿þöûàþóûÿðû ÿíû@ÿêûaÿèûÿåû¡ÿâûÂÿàûâÿÞûÛû"ÙûB×ûcÕûƒÓû¤ÑûÄÏûäÎûÌû%ÊûFÈûfÇû†Åû§ÄûÇÂûçÁû¿û(½ûH¼ûiºû‰¹û¥¸ûÀ·ûܶû÷µû´û.³ûJ²ûe±û°ûœ¯û·¯ûÓ®ûî­û ­û%¬û@¬û[«ûw«û’«û­ªûɪûäªûÿ©û©û6©ûR©ûm©û‰©û¤©ûÀ©ûÛ©û÷©û©û%©û<©ûS©ûj©ûªû˜ªû¯ªûǪûÞ«ûõ«û ¬û$¬û;­ûS­ûj®û‚®û™¯û±°ûȱûß±û÷²û³û&´û=µûT¶ûk·ûƒ¸ûš¹û±ºûȼûß½ûß¿ûßÂûßÅûßÇûÉû üùýûÕÊü(–üù¥üþäü\ýa#ýÊýµÏýaºýWäýþÕýþùý›.þ‘ ’  … !| %ßÏ¿°¡ ’…üÿxòÿlçÿš.þ’%þŠþ‚þ| þuÿýpôýjêýfßýcÔýdÈýe¼ýf°ý°ý°ýöÿ°ýèÿ°ýÜÿ¯ýÏÿ®ýÃÿ®ý¸ÿ¬ý­ÿ«ý¢ÿ©ý˜ÿ¦ýŽÿ£ý…ÿ ý|ÿ›ýsÿ—ýkÿ‘ýdÿ‹ý^ÿ…ýXÿýRÿxýLÿqýFÿký@ÿdý;ÿ]ý5ÿWýú-üÿÿÿ-ðü--F$!¨þnûþoû“þrûŠþwûƒþ~û|þ…ûwþŽûtþ˜ûsþ£ûtþ®ûwþ¸û|þÁûƒþÈûŠþÏû“þÔûþ×û¨þØû³þ×û½þÔûÆþÏûÍþÈûÔþÁûÙþ¸ûÜþ®ûÝþ£ûÜþ˜ûÙþŽûÔþ…ûÍþ~ûÆþwû½þrû³þoû¨þnû--ðü--F$!;äú-åú éúïú øúûü ûøû÷(ûø6ûüCûNû Xûaû gû-kû;lûIkûVgûaaûkXûtNûzCû~6û(û~ûz ûtûkøúaïúVéúIåú;äú--ðüÿÿÿ--$_ÿ†ý4ÿVýLÿNýpÿpý_ÿ†ý--ðüÿÿÿ--${ÿpýœÿnýsÿ)ýcÿKý{ÿpý--ðüÿÿÿ--$”ÿ=ý§ÿnýËÿnýÊÿGýšÿ4ý”ÿ=ý--ðlibwmf-0.2.13/examples/text.wmf000066400000000000000000000031101441723000300163570ustar00rootroot00000000000000 $ûGaramondd- ! I am a stringûArial¶- ! I am a stringûBookman Old Styleo- ! I am a string(ûBookman Old Style- ! I am a string(ûComic Sans MS.- ! I am a string<ûCourier¥- ! I am a stringPûCourier Newu- ! I am a stringdûImpact - ! I am a stringxûModern - ! I am a stringŒûMS Sans Serif˜- ! I am a string ûMS Serife- ! I am a string´ûSmall Fontsa- ! I am a stringÈûSymbolo- ! I am a stringÜûTahomao- ! I am a stringðûTimes New Romanm- ! I am a stringûVerdanaA- ! I am a stringûWingdings- ! I am a string,ûVerdanaå- ! I am a string@ûXVerdana¹-!I am the stringx–û¤Times New Roman…- ! I am a stringx–û¤Times New RomanQ- ! I am a string––ÿ ÿÿÿ ûX¤Verdana%-!I am the stringxªlibwmf-0.2.13/fonts/000077500000000000000000000000001441723000300142005ustar00rootroot00000000000000libwmf-0.2.13/fonts/LICENSE000066400000000000000000000031241441723000300152050ustar00rootroot00000000000000% Fonts contributed by: % URW++ Design and Development Incorporated % Poppenbuetteler Bogen 29A % D-22399 Hamburg % Germany % tel. +49 (40) 60 60 50 % fax +49 (40) 60 60 51 11 % http://www.urwpp.de % for distribution under the GNU License and Aladdin Free Public License. % % Each of these fonts is individually covered by the license: % for licensing purposes, they are not "part of" any larger entity. % The following notice applies to these fonts: % % Copyright URW Software, Copyright 1994 by URW. % % Copyright (C) 1996 Aladdin Enterprises. All rights reserved. % % GNU Ghostscript is distributed in the hope that it will be useful, but % WITHOUT ANY WARRANTY. No author or distributor accepts responsibility % to anyone for the consequences of using it or for whether it serves any % particular purpose or works at all, unless he says so in writing. Refer % to the GNU General Public License for full details. % % Everyone is granted permission to copy, modify and redistribute GNU % Ghostscript, but only under the conditions described in the GNU General % Public License. A copy of this license is supposed to have been given % to you along with GNU Ghostscript so you can know your rights and % responsibilities. It should be in a file named COPYING. Among other % things, the copyright notice and this notice must be preserved on all % copies. % % Aladdin Enterprises supports the work of the GNU Project, but is not % affiliated with the Free Software Foundation or the GNU Project. GNU % Ghostscript, as distributed by Aladdin Enterprises, does not require any % GNU software to build or run it. libwmf-0.2.13/fonts/Makefile.am000066400000000000000000000015001441723000300162300ustar00rootroot00000000000000fontdir = $(datadir)/libwmf/fonts/ bin_SCRIPTS = libwmf-fontmap FONTS = \ NimbusMonoPS-Bold.afm \ NimbusMonoPS-Bold.t1 \ NimbusMonoPS-BoldItalic.afm \ NimbusMonoPS-BoldItalic.t1 \ NimbusMonoPS-Italic.afm \ NimbusMonoPS-Italic.t1 \ NimbusMonoPS-Regular.afm \ NimbusMonoPS-Regular.t1 \ NimbusRoman-Bold.afm \ NimbusRoman-BoldItalic.t1 \ NimbusRoman-BoldItalic.afm \ NimbusRoman-Bold.t1 \ NimbusRoman-Italic.afm \ NimbusRoman-Italic.t1 \ NimbusRoman-Regular.afm \ NimbusRoman-Regular.t1 \ NimbusSans-Bold.afm \ NimbusSans-Bold.t1 \ NimbusSans-BoldItalic.afm \ NimbusSans-BoldItalic.t1 \ NimbusSans-Italic.afm \ NimbusSans-Italic.t1 \ NimbusSans-Regular.afm \ NimbusSans-Regular.t1 \ StandardSymbolsPS.afm \ StandardSymbolsPS.t1 font_DATA = $(FONTS) fontmap EXTRA_DIST = libwmf-fontmap.in LICENSE $(FONTS) libwmf-0.2.13/fonts/Makefile.in000066400000000000000000000427131441723000300162540ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2018 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@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = fonts ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/wmfconfig.h CONFIG_CLEAN_FILES = libwmf-fontmap fontmap CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(fontdir)" SCRIPTS = $(bin_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(font_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/fontmap.in \ $(srcdir)/libwmf-fontmap.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FREETYPE_CONFIG = @FREETYPE_CONFIG@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_DIR = @GDK_PIXBUF_DIR@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GD_DEFS = @GD_DEFS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBWMF_BUILDSTYLE = @LIBWMF_BUILDSTYLE@ LIBWMF_PACKAGE = @LIBWMF_PACKAGE@ LIBWMF_RELEASE = @LIBWMF_RELEASE@ LIBWMF_VERSION = @LIBWMF_VERSION@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_LITE_AGE = @LT_LITE_AGE@ LT_LITE_CURRENT = @LT_LITE_CURRENT@ LT_LITE_REVISION = @LT_LITE_REVISION@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_LIBM = @SYS_LIBM@ VERSION = @VERSION@ WMF_CFLAGS = @WMF_CFLAGS@ WMF_CONFIG_CFLAGS = @WMF_CONFIG_CFLAGS@ WMF_DEFS = @WMF_DEFS@ WMF_DOCDIR = @WMF_DOCDIR@ WMF_FONTDIR = @WMF_FONTDIR@ WMF_GS_FONTDIR = @WMF_GS_FONTDIR@ WMF_GS_FONTMAP = @WMF_GS_FONTMAP@ WMF_LIBFLAGS = @WMF_LIBFLAGS@ WMF_SYS_FONTMAP = @WMF_SYS_FONTMAP@ WMF_XTRA_FONTMAP = @WMF_XTRA_FONTMAP@ XMKMF = @XMKMF@ XML2_CONFIG = @XML2_CONFIG@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fontdir = $(datadir)/libwmf/fonts/ bin_SCRIPTS = libwmf-fontmap FONTS = \ NimbusMonoPS-Bold.afm \ NimbusMonoPS-Bold.t1 \ NimbusMonoPS-BoldItalic.afm \ NimbusMonoPS-BoldItalic.t1 \ NimbusMonoPS-Italic.afm \ NimbusMonoPS-Italic.t1 \ NimbusMonoPS-Regular.afm \ NimbusMonoPS-Regular.t1 \ NimbusRoman-Bold.afm \ NimbusRoman-BoldItalic.t1 \ NimbusRoman-BoldItalic.afm \ NimbusRoman-Bold.t1 \ NimbusRoman-Italic.afm \ NimbusRoman-Italic.t1 \ NimbusRoman-Regular.afm \ NimbusRoman-Regular.t1 \ NimbusSans-Bold.afm \ NimbusSans-Bold.t1 \ NimbusSans-BoldItalic.afm \ NimbusSans-BoldItalic.t1 \ NimbusSans-Italic.afm \ NimbusSans-Italic.t1 \ NimbusSans-Regular.afm \ NimbusSans-Regular.t1 \ StandardSymbolsPS.afm \ StandardSymbolsPS.t1 font_DATA = $(FONTS) fontmap EXTRA_DIST = libwmf-fontmap.in LICENSE $(FONTS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fonts/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fonts/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): libwmf-fontmap: $(top_builddir)/config.status $(srcdir)/libwmf-fontmap.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ fontmap: $(top_builddir)/config.status $(srcdir)/fontmap.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fontDATA: $(font_DATA) @$(NORMAL_INSTALL) @list='$(font_DATA)'; test -n "$(fontdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(fontdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(fontdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(fontdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(fontdir)" || exit $$?; \ done uninstall-fontDATA: @$(NORMAL_UNINSTALL) @list='$(font_DATA)'; test -n "$(fontdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(fontdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(fontdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fontDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-fontDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-binSCRIPTS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-fontDATA install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-binSCRIPTS uninstall-fontDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libwmf-0.2.13/fonts/NimbusMonoPS-Bold.afm000066400000000000000000001173621441723000300201060ustar00rootroot00000000000000StartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development Comment Creation Date: 5/17/2017 FontName NimbusMonoPS-Bold FullName Nimbus Mono PS Bold FamilyName Nimbus Mono PS Weight Bold ItalicAngle 0.0 IsFixedPitch true UnderlinePosition -88 UnderlineThickness 110 Version 1.00 Notice (URW)++,Copyright 2014 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -161 -393 761 1007 CapHeight 583 XHeight 437 Descender 0 Ascender 0 StartCharMetrics 855 C 32 ; WX 600 ; N space ; B 375 0 375 0 ; C 33 ; WX 600 ; N exclam ; B 216 -14 385 617 ; C 34 ; WX 600 ; N quotedbl ; B 131 298 468 583 ; C 35 ; WX 600 ; N numbersign ; B 58 -88 542 653 ; C 36 ; WX 600 ; N dollar ; B 79 -117 521 661 ; C 37 ; WX 600 ; N percent ; B 80 -14 521 596 ; C 38 ; WX 600 ; N ampersand ; B 71 -13 512 533 ; C 39 ; WX 600 ; N quoteright ; B 143 316 358 602 ; C 40 ; WX 600 ; N parenleft ; B 260 -146 492 611 ; C 41 ; WX 600 ; N parenright ; B 113 -146 345 611 ; C 42 ; WX 600 ; N asterisk ; B 79 199 521 601 ; C 43 ; WX 600 ; N plus ; B 38 0 562 541 ; C 44 ; WX 600 ; N comma ; B 143 -151 358 136 ; C 45 ; WX 600 ; N hyphen ; B 38 218 562 322 ; C 46 ; WX 600 ; N period ; B 221 -14 379 120 ; C 47 ; WX 600 ; N slash ; B 79 -108 521 671 ; C 48 ; WX 600 ; N zero ; B 79 -14 521 617 ; C 49 ; WX 600 ; N one ; B 79 0 521 617 ; C 50 ; WX 600 ; N two ; B 50 0 512 617 ; C 51 ; WX 600 ; N three ; B 62 -14 533 617 ; C 52 ; WX 600 ; N four ; B 71 0 512 601 ; C 53 ; WX 600 ; N five ; B 62 -14 533 601 ; C 54 ; WX 600 ; N six ; B 101 -14 544 617 ; C 55 ; WX 600 ; N seven ; B 71 -1 512 601 ; C 56 ; WX 600 ; N eight ; B 79 -14 521 617 ; C 57 ; WX 600 ; N nine ; B 102 -14 545 617 ; C 58 ; WX 600 ; N colon ; B 221 -14 379 424 ; C 59 ; WX 600 ; N semicolon ; B 143 -151 358 424 ; C 60 ; WX 600 ; N less ; B 15 51 565 488 ; C 61 ; WX 600 ; N equal ; B 38 132 562 411 ; C 62 ; WX 600 ; N greater ; B 26 51 576 488 ; C 63 ; WX 600 ; N question ; B 100 -14 521 579 ; C 64 ; WX 600 ; N at ; B 72 -145 513 600 ; C 65 ; WX 600 ; N A ; B -25 0 625 564 ; C 66 ; WX 600 ; N B ; B 9 0 575 564 ; C 67 ; WX 600 ; N C ; B 29 -13 568 578 ; C 68 ; WX 600 ; N D ; B 9 -4 554 566 ; C 69 ; WX 600 ; N E ; B 9 0 554 564 ; C 70 ; WX 600 ; N F ; B 9 0 554 564 ; C 71 ; WX 600 ; N G ; B 29 -13 596 578 ; C 72 ; WX 600 ; N H ; B 19 0 585 564 ; C 73 ; WX 600 ; N I ; B 79 0 521 564 ; C 74 ; WX 600 ; N J ; B 50 -13 617 564 ; C 75 ; WX 600 ; N K ; B 9 0 606 564 ; C 76 ; WX 600 ; N L ; B 29 0 575 564 ; C 77 ; WX 600 ; N M ; B -23 0 627 564 ; C 78 ; WX 600 ; N N ; B -12 0 596 564 ; C 79 ; WX 600 ; N O ; B 17 -13 583 578 ; C 80 ; WX 600 ; N P ; B 9 0 533 564 ; C 81 ; WX 600 ; N Q ; B 17 -138 583 578 ; C 82 ; WX 600 ; N R ; B 9 0 623 564 ; C 83 ; WX 600 ; N S ; B 58 -13 542 578 ; C 84 ; WX 600 ; N T ; B 38 0 562 564 ; C 85 ; WX 600 ; N U ; B 6 -13 594 564 ; C 86 ; WX 600 ; N V ; B -25 0 625 564 ; C 87 ; WX 600 ; N W ; B -14 0 614 564 ; C 88 ; WX 600 ; N X ; B 6 0 594 564 ; C 89 ; WX 600 ; N Y ; B 17 0 583 564 ; C 90 ; WX 600 ; N Z ; B 69 0 531 564 ; C 91 ; WX 600 ; N bracketleft ; B 246 -141 479 606 ; C 92 ; WX 600 ; N backslash ; B 79 -108 521 671 ; C 93 ; WX 600 ; N bracketright ; B 121 -141 354 606 ; C 94 ; WX 600 ; N asciicircum ; B 75 306 525 635 ; C 95 ; WX 600 ; N underscore ; B -46 -143 646 -33 ; C 96 ; WX 600 ; N quoteleft ; B 241 337 460 592 ; C 97 ; WX 600 ; N a ; B 38 -15 575 437 ; C 98 ; WX 600 ; N b ; B -12 -13 575 603 ; C 99 ; WX 600 ; N c ; B 50 -15 569 437 ; C 100 ; WX 600 ; N d ; B 29 -13 617 603 ; C 101 ; WX 600 ; N e ; B 29 -15 554 437 ; C 102 ; WX 600 ; N f ; B 71 0 575 603 ; C 103 ; WX 600 ; N g ; B 29 -196 596 438 ; C 104 ; WX 600 ; N h ; B 9 0 585 603 ; C 105 ; WX 600 ; N i ; B 58 0 542 602 ; C 106 ; WX 600 ; N j ; B 113 -196 493 602 ; C 107 ; WX 600 ; N k ; B 29 0 575 603 ; C 108 ; WX 600 ; N l ; B 58 0 542 603 ; C 109 ; WX 600 ; N m ; B -23 0 627 437 ; C 110 ; WX 600 ; N n ; B 19 0 575 437 ; C 111 ; WX 600 ; N o ; B 38 -15 562 437 ; C 112 ; WX 600 ; N p ; B -12 -196 575 437 ; C 113 ; WX 600 ; N q ; B 29 -196 617 437 ; C 114 ; WX 600 ; N r ; B 50 0 575 437 ; C 115 ; WX 600 ; N s ; B 69 -15 531 437 ; C 116 ; WX 600 ; N t ; B 9 -15 533 572 ; C 117 ; WX 600 ; N u ; B 9 -12 575 425 ; C 118 ; WX 600 ; N v ; B -4 0 604 425 ; C 119 ; WX 600 ; N w ; B -4 0 604 425 ; C 120 ; WX 600 ; N x ; B 17 0 583 425 ; C 121 ; WX 600 ; N y ; B 17 -196 583 425 ; C 122 ; WX 600 ; N z ; B 81 0 523 425 ; C 123 ; WX 600 ; N braceleft ; B 163 -146 437 602 ; C 124 ; WX 600 ; N bar ; B 242 -250 358 825 ; C 125 ; WX 600 ; N braceright ; B 163 -146 437 602 ; C 126 ; WX 600 ; N asciitilde ; B 54 184 546 395 ; C 161 ; WX 600 ; N exclamdown ; B 216 -217 385 415 ; C 162 ; WX 600 ; N cent ; B 79 -42 503 639 ; C 163 ; WX 600 ; N sterling ; B 29 0 554 579 ; C 164 ; WX 600 ; N fraction ; B 21 99 580 483 ; C 165 ; WX 600 ; N yen ; B 17 0 583 561 ; C 166 ; WX 600 ; N florin ; B 53 -117 552 616 ; C 167 ; WX 600 ; N section ; B 32 -162 568 564 ; C 168 ; WX 600 ; N currency ; B 69 61 531 503 ; C 169 ; WX 600 ; N quotesingle ; B 231 298 368 583 ; C 170 ; WX 600 ; N quotedblleft ; B 88 337 510 592 ; C 171 ; WX 600 ; N guillemotleft ; B 26 19 575 404 ; C 172 ; WX 600 ; N guilsinglleft ; B 26 19 346 404 ; C 173 ; WX 600 ; N guilsinglright ; B 259 19 578 404 ; C 174 ; WX 600 ; N fi ; B -18 0 623 603 ; C 175 ; WX 600 ; N fl ; B -21 0 621 602 ; C 177 ; WX 600 ; N endash ; B 38 218 562 322 ; C 178 ; WX 600 ; N dagger ; B 90 -87 510 601 ; C 179 ; WX 600 ; N daggerdbl ; B 90 -88 510 601 ; C 180 ; WX 600 ; N periodcentered ; B 221 204 379 338 ; C 182 ; WX 600 ; N paragraph ; B 45 -166 565 565 ; C 183 ; WX 600 ; N bullet ; B 147 153 442 453 ; C 184 ; WX 600 ; N quotesinglbase ; B 143 -151 358 136 ; C 185 ; WX 600 ; N quotedblbase ; B 83 -114 498 136 ; C 186 ; WX 600 ; N quotedblright ; B 83 333 498 583 ; C 187 ; WX 600 ; N guillemotright ; B 29 19 578 404 ; C 188 ; WX 600 ; N ellipsis ; B 21 -14 579 120 ; C 189 ; WX 600 ; N perthousand ; B 0 0 600 597 ; C 191 ; WX 600 ; N questiondown ; B 79 -217 500 376 ; C 193 ; WX 600 ; N grave ; B 121 474 354 672 ; C 194 ; WX 600 ; N acute ; B 246 474 479 672 ; C 195 ; WX 600 ; N circumflex ; B 121 474 480 673 ; C 196 ; WX 600 ; N tilde ; B 111 499 489 634 ; C 197 ; WX 600 ; N macron ; B 121 521 479 605 ; C 198 ; WX 600 ; N breve ; B 121 480 479 664 ; C 199 ; WX 600 ; N dotaccent ; B 236 510 364 632 ; C 200 ; WX 600 ; N dieresis ; B 132 510 468 632 ; C 202 ; WX 600 ; N ring ; B 173 464 427 702 ; C 203 ; WX 600 ; N cedilla ; B 176 -219 411 8 ; C 205 ; WX 600 ; N hungarumlaut ; B 121 473 479 670 ; C 206 ; WX 600 ; N ogonek ; B 246 -199 467 8 ; C 207 ; WX 600 ; N caron ; B 121 473 480 672 ; C 208 ; WX 600 ; N emdash ; B -33 218 633 322 ; C 225 ; WX 600 ; N AE ; B -24 0 618 564 ; C 227 ; WX 600 ; N ordfeminine ; B 114 260 493 576 ; C 232 ; WX 600 ; N Lslash ; B 8 0 575 564 ; C 233 ; WX 600 ; N Oslash ; B 5 -67 594 617 ; C 234 ; WX 600 ; N OE ; B -24 0 616 564 ; C 235 ; WX 600 ; N ordmasculine ; B 127 261 475 576 ; C 241 ; WX 600 ; N ae ; B -17 -16 616 437 ; C 245 ; WX 600 ; N dotlessi ; B 58 0 542 425 ; C 248 ; WX 600 ; N lslash ; B 58 0 542 603 ; C 249 ; WX 600 ; N oslash ; B 19 -67 577 479 ; C 250 ; WX 600 ; N oe ; B -15 -15 617 437 ; C 251 ; WX 600 ; N germandbls ; B 9 -15 533 602 ; C -1 ; WX 600 ; N .notdef ; B 375 0 375 0 ; C -1 ; WX 600 ; N AEacute ; B -24 0 618 809 ; C -1 ; WX 600 ; N Aacute ; B -25 0 625 809 ; C -1 ; WX 600 ; N Abreve ; B -25 0 625 801 ; C -1 ; WX 600 ; N Acircumflex ; B -25 0 625 810 ; C -1 ; WX 600 ; N Adieresis ; B -25 0 625 770 ; C -1 ; WX 600 ; N Agrave ; B -25 0 625 809 ; C -1 ; WX 600 ; N Alpha ; B -25 0 625 564 ; C -1 ; WX 600 ; N Alphatonos ; B -22 0 621 564 ; C -1 ; WX 600 ; N Amacron ; B -25 0 625 742 ; C -1 ; WX 600 ; N Aogonek ; B -25 -199 625 564 ; C -1 ; WX 600 ; N Aring ; B -25 0 625 839 ; C -1 ; WX 600 ; N Aringacute ; B -25 0 625 1007 ; C -1 ; WX 600 ; N Atilde ; B -25 0 625 770 ; C -1 ; WX 600 ; N Beta ; B 9 0 575 564 ; C -1 ; WX 600 ; N Cacute ; B 29 -13 568 809 ; C -1 ; WX 600 ; N Ccaron ; B 29 -13 568 808 ; C -1 ; WX 600 ; N Ccedilla ; B 29 -219 568 578 ; C -1 ; WX 600 ; N Ccircumflex ; B 29 -13 568 810 ; C -1 ; WX 600 ; N Cdotaccent ; B 29 -13 568 770 ; C -1 ; WX 600 ; N Chi ; B 6 0 594 564 ; C -1 ; WX 600 ; N Dcaron ; B 9 -4 554 808 ; C -1 ; WX 600 ; N Dcroat ; B -4 -4 554 566 ; C -1 ; WX 600 ; N Delta ; B 4 0 596 563 ; C -1 ; WX 600 ; N Eacute ; B 9 0 554 809 ; C -1 ; WX 600 ; N Ebreve ; B 9 0 554 801 ; C -1 ; WX 600 ; N Ecaron ; B 9 0 554 808 ; C -1 ; WX 600 ; N Ecircumflex ; B 9 0 554 810 ; C -1 ; WX 600 ; N Edieresis ; B 9 0 554 770 ; C -1 ; WX 600 ; N Edotaccent ; B 9 0 554 770 ; C -1 ; WX 600 ; N Egrave ; B 9 0 554 809 ; C -1 ; WX 600 ; N Emacron ; B 9 0 554 742 ; C -1 ; WX 600 ; N Eng ; B -12 -196 596 564 ; C -1 ; WX 600 ; N Eogonek ; B 9 -199 591 564 ; C -1 ; WX 600 ; N Epsilon ; B 9 0 554 564 ; C -1 ; WX 600 ; N Epsilontonos ; B -82 0 554 564 ; C -1 ; WX 600 ; N Eta ; B 19 0 585 564 ; C -1 ; WX 600 ; N Etatonos ; B -61 0 585 564 ; C -1 ; WX 600 ; N Eth ; B -4 -4 554 566 ; C -1 ; WX 600 ; N Euro ; B 0 -13 541 578 ; C -1 ; WX 600 ; N Gamma ; B 29 0 575 564 ; C -1 ; WX 600 ; N Gbreve ; B 29 -13 596 801 ; C -1 ; WX 600 ; N Gcircumflex ; B 29 -13 596 810 ; C -1 ; WX 600 ; N Gcommaaccent ; B 29 -265 596 578 ; C -1 ; WX 600 ; N Gdotaccent ; B 29 -13 596 770 ; C -1 ; WX 600 ; N H18533 ; B 11 0 589 566 ; C -1 ; WX 600 ; N H18543 ; B 155 141 445 426 ; C -1 ; WX 600 ; N H18551 ; B 155 141 445 426 ; C -1 ; WX 600 ; N Hbar ; B 19 0 585 564 ; C -1 ; WX 600 ; N Hcircumflex ; B 19 0 585 810 ; C -1 ; WX 600 ; N IJ ; B 6 -152 585 564 ; C -1 ; WX 600 ; N Iacute ; B 79 0 521 809 ; C -1 ; WX 600 ; N Ibreve ; B 79 0 521 801 ; C -1 ; WX 600 ; N Icircumflex ; B 79 0 521 810 ; C -1 ; WX 600 ; N Idieresis ; B 79 0 521 770 ; C -1 ; WX 600 ; N Idotaccent ; B 79 0 521 770 ; C -1 ; WX 600 ; N Ifraktur ; B 4 -70 596 695 ; C -1 ; WX 600 ; N Igrave ; B 79 0 521 809 ; C -1 ; WX 600 ; N Imacron ; B 79 0 521 742 ; C -1 ; WX 600 ; N Iogonek ; B 79 -199 521 564 ; C -1 ; WX 600 ; N Iota ; B 79 0 521 564 ; C -1 ; WX 600 ; N Iotadieresis ; B 81 0 519 730 ; C -1 ; WX 600 ; N Iotatonos ; B -1 0 544 564 ; C -1 ; WX 600 ; N Itilde ; B 79 0 521 770 ; C -1 ; WX 600 ; N Jcircumflex ; B 50 -13 617 810 ; C -1 ; WX 600 ; N Kappa ; B 9 0 606 564 ; C -1 ; WX 600 ; N Kcommaaccent ; B 9 -265 606 564 ; C -1 ; WX 600 ; N Lacute ; B 29 0 575 809 ; C -1 ; WX 600 ; N Lambda ; B -20 0 623 564 ; C -1 ; WX 600 ; N Lcaron ; B 29 0 575 578 ; C -1 ; WX 600 ; N Lcommaaccent ; B 29 -265 575 564 ; C -1 ; WX 600 ; N Ldot ; B 29 0 575 564 ; C -1 ; WX 600 ; N Mu ; B -23 0 627 564 ; C -1 ; WX 600 ; N Nacute ; B -12 0 596 809 ; C -1 ; WX 600 ; N Ncaron ; B -12 0 596 808 ; C -1 ; WX 600 ; N Ncommaaccent ; B -12 -265 596 564 ; C -1 ; WX 600 ; N Ntilde ; B -12 0 596 770 ; C -1 ; WX 600 ; N Nu ; B -12 0 596 564 ; C -1 ; WX 600 ; N Oacute ; B 17 -13 583 809 ; C -1 ; WX 600 ; N Obreve ; B 17 -13 583 801 ; C -1 ; WX 600 ; N Ocircumflex ; B 17 -13 583 810 ; C -1 ; WX 600 ; N Odieresis ; B 17 -13 583 770 ; C -1 ; WX 600 ; N Ograve ; B 17 -13 583 809 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 17 -13 583 807 ; C -1 ; WX 600 ; N Omacron ; B 17 -13 583 742 ; C -1 ; WX 600 ; N Omegatonos ; B -1 0 577 578 ; C -1 ; WX 600 ; N Omicron ; B 17 -13 583 578 ; C -1 ; WX 600 ; N Omicrontonos ; B -1 -14 583 578 ; C -1 ; WX 600 ; N Oslashacute ; B 5 -67 594 809 ; C -1 ; WX 600 ; N Otilde ; B 17 -13 583 770 ; C -1 ; WX 600 ; N Phi ; B -6 -52 606 608 ; C -1 ; WX 600 ; N Pi ; B 20 0 580 564 ; C -1 ; WX 600 ; N Psi ; B -2 0 604 564 ; C -1 ; WX 600 ; N Racute ; B 9 0 623 809 ; C -1 ; WX 600 ; N Rcaron ; B 9 0 623 808 ; C -1 ; WX 600 ; N Rcommaaccent ; B 9 -265 623 564 ; C -1 ; WX 600 ; N Rfraktur ; B -51 -6 639 658 ; C -1 ; WX 600 ; N Rho ; B 9 0 533 564 ; C -1 ; WX 600 ; N SF010000 ; B 267 -250 600 283 ; C -1 ; WX 600 ; N SF020000 ; B 267 217 600 750 ; C -1 ; WX 600 ; N SF030000 ; B 0 -250 333 283 ; C -1 ; WX 600 ; N SF040000 ; B 0 217 333 750 ; C -1 ; WX 600 ; N SF050000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF060000 ; B 0 -250 600 283 ; C -1 ; WX 600 ; N SF070000 ; B 0 217 600 750 ; C -1 ; WX 600 ; N SF080000 ; B 267 -250 600 750 ; C -1 ; WX 600 ; N SF090000 ; B 0 -250 333 750 ; C -1 ; WX 600 ; N SF100000 ; B 0 217 600 283 ; C -1 ; WX 600 ; N SF110000 ; B 267 -250 333 750 ; C -1 ; WX 600 ; N SF190000 ; B 0 -250 333 750 ; C -1 ; WX 600 ; N SF200000 ; B 0 -250 399 750 ; C -1 ; WX 600 ; N SF210000 ; B 0 -250 399 283 ; C -1 ; WX 600 ; N SF220000 ; B 0 -250 333 349 ; C -1 ; WX 600 ; N SF230000 ; B 0 -250 399 750 ; C -1 ; WX 600 ; N SF240000 ; B 201 -250 399 750 ; C -1 ; WX 600 ; N SF250000 ; B 0 -250 399 349 ; C -1 ; WX 600 ; N SF260000 ; B 0 151 399 750 ; C -1 ; WX 600 ; N SF270000 ; B 0 217 399 750 ; C -1 ; WX 600 ; N SF280000 ; B 0 151 333 750 ; C -1 ; WX 600 ; N SF360000 ; B 267 -250 600 750 ; C -1 ; WX 600 ; N SF370000 ; B 201 -250 600 750 ; C -1 ; WX 600 ; N SF380000 ; B 201 151 600 750 ; C -1 ; WX 600 ; N SF390000 ; B 201 -250 600 349 ; C -1 ; WX 600 ; N SF400000 ; B 0 151 600 750 ; C -1 ; WX 600 ; N SF410000 ; B 0 -250 600 349 ; C -1 ; WX 600 ; N SF420000 ; B 201 -250 600 750 ; C -1 ; WX 600 ; N SF430000 ; B 0 151 600 349 ; C -1 ; WX 600 ; N SF440000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF450000 ; B 0 151 600 750 ; C -1 ; WX 600 ; N SF460000 ; B 0 217 600 750 ; C -1 ; WX 600 ; N SF470000 ; B 0 -250 600 349 ; C -1 ; WX 600 ; N SF480000 ; B 0 -250 600 283 ; C -1 ; WX 600 ; N SF490000 ; B 201 217 600 750 ; C -1 ; WX 600 ; N SF500000 ; B 267 151 600 750 ; C -1 ; WX 600 ; N SF510000 ; B 267 -250 600 349 ; C -1 ; WX 600 ; N SF520000 ; B 201 -250 600 283 ; C -1 ; WX 600 ; N SF530000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF540000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N Sacute ; B 58 -13 542 809 ; C -1 ; WX 600 ; N Scaron ; B 58 -13 542 808 ; C -1 ; WX 600 ; N Scedilla ; B 58 -219 542 578 ; C -1 ; WX 600 ; N Scircumflex ; B 58 -13 542 810 ; C -1 ; WX 600 ; N Scommaaccent ; B 58 -265 542 578 ; C -1 ; WX 600 ; N Sigma ; B 103 0 548 564 ; C -1 ; WX 600 ; N Tau ; B 38 0 562 564 ; C -1 ; WX 600 ; N Tbar ; B 38 0 562 564 ; C -1 ; WX 600 ; N Tcaron ; B 38 0 562 808 ; C -1 ; WX 600 ; N Tcommaaccent ; B 38 -219 562 564 ; C -1 ; WX 600 ; N Theta ; B 17 -13 583 578 ; C -1 ; WX 600 ; N Thorn ; B 10 0 527 564 ; C -1 ; WX 600 ; N Uacute ; B 6 -13 594 809 ; C -1 ; WX 600 ; N Ubreve ; B 6 -13 594 801 ; C -1 ; WX 600 ; N Ucircumflex ; B 6 -13 594 810 ; C -1 ; WX 600 ; N Udieresis ; B 6 -13 594 770 ; C -1 ; WX 600 ; N Ugrave ; B 6 -13 594 809 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 6 -13 594 807 ; C -1 ; WX 600 ; N Umacron ; B 6 -13 594 742 ; C -1 ; WX 600 ; N Uogonek ; B 6 -199 594 564 ; C -1 ; WX 600 ; N Upsilon ; B 17 0 583 564 ; C -1 ; WX 600 ; N Upsilondieresis ; B 21 0 580 730 ; C -1 ; WX 600 ; N Upsilontonos ; B -82 0 583 564 ; C -1 ; WX 600 ; N Uring ; B 6 -13 594 839 ; C -1 ; WX 600 ; N Utilde ; B 6 -13 594 770 ; C -1 ; WX 600 ; N Wacute ; B -14 0 614 809 ; C -1 ; WX 600 ; N Wcircumflex ; B -14 0 614 810 ; C -1 ; WX 600 ; N Wdieresis ; B -14 0 614 770 ; C -1 ; WX 600 ; N Wgrave ; B -14 0 614 809 ; C -1 ; WX 600 ; N Xi ; B 51 0 550 564 ; C -1 ; WX 600 ; N Yacute ; B 17 0 583 809 ; C -1 ; WX 600 ; N Ycircumflex ; B 17 0 583 810 ; C -1 ; WX 600 ; N Ydieresis ; B 17 0 583 770 ; C -1 ; WX 600 ; N Ygrave ; B 17 0 583 809 ; C -1 ; WX 600 ; N Zacute ; B 69 0 531 809 ; C -1 ; WX 600 ; N Zcaron ; B 69 0 531 808 ; C -1 ; WX 600 ; N Zdotaccent ; B 69 0 531 770 ; C -1 ; WX 600 ; N Zeta ; B 69 0 531 564 ; C -1 ; WX 600 ; N aacute ; B 38 -15 575 672 ; C -1 ; WX 600 ; N abreve ; B 38 -15 575 664 ; C -1 ; WX 600 ; N acircumflex ; B 38 -15 575 673 ; C -1 ; WX 600 ; N adieresis ; B 38 -15 575 632 ; C -1 ; WX 600 ; N aeacute ; B -17 -16 616 672 ; C -1 ; WX 600 ; N afii00208 ; B -33 218 633 322 ; C -1 ; WX 600 ; N afii10017 ; B -25 0 625 564 ; C -1 ; WX 600 ; N afii10018 ; B 14 0 574 564 ; C -1 ; WX 600 ; N afii10019 ; B 9 0 575 564 ; C -1 ; WX 600 ; N afii10020 ; B 29 0 575 564 ; C -1 ; WX 600 ; N afii10021 ; B 20 -122 583 564 ; C -1 ; WX 600 ; N afii10022 ; B 9 0 554 564 ; C -1 ; WX 600 ; N afii10023 ; B 15 0 553 743 ; C -1 ; WX 600 ; N afii10024 ; B 5 0 595 564 ; C -1 ; WX 600 ; N afii10025 ; B -4 -15 547 612 ; C -1 ; WX 600 ; N afii10026 ; B -2 0 602 564 ; C -1 ; WX 600 ; N afii10027 ; B -2 0 602 768 ; C -1 ; WX 600 ; N afii10028 ; B 40 0 599 564 ; C -1 ; WX 600 ; N afii10029 ; B 3 -15 580 564 ; C -1 ; WX 600 ; N afii10030 ; B -23 0 627 564 ; C -1 ; WX 600 ; N afii10031 ; B 19 0 585 564 ; C -1 ; WX 600 ; N afii10032 ; B 17 -13 583 578 ; C -1 ; WX 600 ; N afii10033 ; B 22 0 582 564 ; C -1 ; WX 600 ; N afii10034 ; B 9 0 533 564 ; C -1 ; WX 600 ; N afii10035 ; B 29 -13 568 578 ; C -1 ; WX 600 ; N afii10036 ; B 38 0 562 564 ; C -1 ; WX 600 ; N afii10037 ; B 6 -15 607 564 ; C -1 ; WX 600 ; N afii10038 ; B 22 0 578 564 ; C -1 ; WX 600 ; N afii10039 ; B 6 0 594 564 ; C -1 ; WX 600 ; N afii10040 ; B 7 -122 594 564 ; C -1 ; WX 600 ; N afii10041 ; B 17 0 578 564 ; C -1 ; WX 600 ; N afii10042 ; B -10 0 610 564 ; C -1 ; WX 600 ; N afii10043 ; B -21 -122 625 564 ; C -1 ; WX 600 ; N afii10044 ; B -15 0 599 564 ; C -1 ; WX 600 ; N afii10045 ; B -18 0 631 564 ; C -1 ; WX 600 ; N afii10046 ; B 14 0 574 564 ; C -1 ; WX 600 ; N afii10047 ; B 34 -14 569 578 ; C -1 ; WX 600 ; N afii10048 ; B -17 -14 616 578 ; C -1 ; WX 600 ; N afii10049 ; B -20 0 585 564 ; C -1 ; WX 600 ; N afii10050 ; B 29 0 575 716 ; C -1 ; WX 600 ; N afii10051 ; B 0 -14 586 564 ; C -1 ; WX 600 ; N afii10052 ; B 33 0 574 779 ; C -1 ; WX 600 ; N afii10053 ; B 32 -14 567 578 ; C -1 ; WX 600 ; N afii10054 ; B 58 -13 542 578 ; C -1 ; WX 600 ; N afii10055 ; B 79 0 521 564 ; C -1 ; WX 600 ; N afii10056 ; B 81 0 519 743 ; C -1 ; WX 600 ; N afii10057 ; B 50 -13 617 564 ; C -1 ; WX 600 ; N afii10058 ; B 2 -15 599 564 ; C -1 ; WX 600 ; N afii10059 ; B -16 0 620 564 ; C -1 ; WX 600 ; N afii10060 ; B 5 0 601 567 ; C -1 ; WX 600 ; N afii10061 ; B 40 0 599 779 ; C -1 ; WX 600 ; N afii10062 ; B 6 -15 607 768 ; C -1 ; WX 600 ; N afii10065 ; B 38 -15 575 437 ; C -1 ; WX 600 ; N afii10066 ; B 52 -12 546 614 ; C -1 ; WX 600 ; N afii10067 ; B 14 0 548 425 ; C -1 ; WX 600 ; N afii10068 ; B 33 0 574 425 ; C -1 ; WX 600 ; N afii10069 ; B 34 -111 569 425 ; C -1 ; WX 600 ; N afii10070 ; B 29 -15 554 437 ; C -1 ; WX 600 ; N afii10071 ; B 32 -15 551 597 ; C -1 ; WX 600 ; N afii10072 ; B 7 0 593 425 ; C -1 ; WX 600 ; N afii10073 ; B 35 -12 544 470 ; C -1 ; WX 600 ; N afii10074 ; B 9 0 591 425 ; C -1 ; WX 600 ; N afii10075 ; B 9 0 591 622 ; C -1 ; WX 600 ; N afii10076 ; B 47 0 575 425 ; C -1 ; WX 600 ; N afii10077 ; B 5 -12 562 425 ; C -1 ; WX 600 ; N afii10078 ; B 2 0 598 425 ; C -1 ; WX 600 ; N afii10079 ; B 22 0 582 425 ; C -1 ; WX 600 ; N afii10080 ; B 38 -15 562 437 ; C -1 ; WX 600 ; N afii10081 ; B 19 0 579 425 ; C -1 ; WX 600 ; N afii10082 ; B -12 -196 575 437 ; C -1 ; WX 600 ; N afii10083 ; B 50 -15 569 437 ; C -1 ; WX 600 ; N afii10084 ; B 40 0 559 425 ; C -1 ; WX 600 ; N afii10085 ; B 17 -196 583 425 ; C -1 ; WX 600 ; N afii10086 ; B 46 -131 554 588 ; C -1 ; WX 600 ; N afii10087 ; B 17 0 583 425 ; C -1 ; WX 600 ; N afii10088 ; B 7 -111 594 425 ; C -1 ; WX 600 ; N afii10089 ; B 31 0 564 425 ; C -1 ; WX 600 ; N afii10090 ; B -10 0 610 425 ; C -1 ; WX 600 ; N afii10091 ; B -21 -111 625 425 ; C -1 ; WX 600 ; N afii10092 ; B 6 0 592 425 ; C -1 ; WX 600 ; N afii10093 ; B -2 0 603 425 ; C -1 ; WX 600 ; N afii10094 ; B 14 0 548 425 ; C -1 ; WX 600 ; N afii10095 ; B 32 -15 544 437 ; C -1 ; WX 600 ; N afii10096 ; B -13 -15 611 437 ; C -1 ; WX 600 ; N afii10097 ; B 26 0 579 425 ; C -1 ; WX 600 ; N afii10098 ; B 33 0 574 576 ; C -1 ; WX 600 ; N afii10099 ; B 5 -196 518 612 ; C -1 ; WX 600 ; N afii10100 ; B 33 0 574 634 ; C -1 ; WX 600 ; N afii10101 ; B 55 -15 567 437 ; C -1 ; WX 600 ; N afii10102 ; B 69 -15 531 437 ; C -1 ; WX 600 ; N afii10103 ; B 58 0 542 602 ; C -1 ; WX 600 ; N afii10104 ; B 62 0 536 597 ; C -1 ; WX 600 ; N afii10105 ; B 113 -196 493 602 ; C -1 ; WX 600 ; N afii10106 ; B -4 -12 583 425 ; C -1 ; WX 600 ; N afii10107 ; B -17 0 616 425 ; C -1 ; WX 600 ; N afii10108 ; B 5 0 590 612 ; C -1 ; WX 600 ; N afii10109 ; B 47 0 575 634 ; C -1 ; WX 600 ; N afii10110 ; B 21 -125 591 622 ; C -1 ; WX 600 ; N afii10145 ; B 19 -107 579 564 ; C -1 ; WX 600 ; N afii10193 ; B 19 -107 579 425 ; C -1 ; WX 600 ; N afii10846 ; B 29 -15 554 437 ; C -1 ; WX 600 ; N afii61248 ; B 7 -8 594 591 ; C -1 ; WX 600 ; N afii61289 ; B 110 -9 463 688 ; C -1 ; WX 600 ; N afii61352 ; B 15 0 595 564 ; C -1 ; WX 600 ; N agrave ; B 38 -15 575 672 ; C -1 ; WX 600 ; N aleph ; B 52 -4 549 694 ; C -1 ; WX 600 ; N alpha ; B 38 -15 586 437 ; C -1 ; WX 600 ; N alphatonos ; B 39 -15 576 634 ; C -1 ; WX 600 ; N amacron ; B 38 -15 575 605 ; C -1 ; WX 600 ; N angle ; B -22 3 618 456 ; C -1 ; WX 600 ; N angleleft ; B 187 -125 414 646 ; C -1 ; WX 600 ; N angleright ; B 187 -125 414 646 ; C -1 ; WX 600 ; N aogonek ; B 38 -199 584 437 ; C -1 ; WX 600 ; N approxequal ; B 48 67 542 459 ; C -1 ; WX 600 ; N aring ; B 38 -15 575 702 ; C -1 ; WX 600 ; N aringacute ; B 38 -15 575 875 ; C -1 ; WX 600 ; N arrowboth ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowdblboth ; B -161 72 761 571 ; C -1 ; WX 600 ; N arrowdbldown ; B 53 10 548 704 ; C -1 ; WX 600 ; N arrowdblleft ; B -94 72 690 571 ; C -1 ; WX 600 ; N arrowdblright ; B -91 72 693 571 ; C -1 ; WX 600 ; N arrowdblup ; B 53 13 548 707 ; C -1 ; WX 600 ; N arrowdown ; B 157 -12 422 538 ; C -1 ; WX 600 ; N arrowleft ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowright ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowup ; B 157 -12 422 538 ; C -1 ; WX 600 ; N arrowupdn ; B 167 -25 432 525 ; C -1 ; WX 600 ; N arrowupdnbse ; B 170 -84 435 564 ; C -1 ; WX 600 ; N asteriskmath ; B 144 110 456 417 ; C -1 ; WX 600 ; N atilde ; B 38 -15 575 634 ; C -1 ; WX 600 ; N beta ; B 111 -192 519 603 ; C -1 ; WX 600 ; N block ; B 0 -250 600 750 ; C -1 ; WX 600 ; N brokenbar ; B 242 -144 358 602 ; C -1 ; WX 600 ; N cacute ; B 50 -15 569 672 ; C -1 ; WX 600 ; N carriagereturn ; B 78 60 511 560 ; C -1 ; WX 600 ; N ccaron ; B 50 -15 569 672 ; C -1 ; WX 600 ; N ccedilla ; B 50 -219 569 437 ; C -1 ; WX 600 ; N ccircumflex ; B 50 -15 569 673 ; C -1 ; WX 600 ; N cdotaccent ; B 50 -15 569 632 ; C -1 ; WX 600 ; N chi ; B 31 -208 584 437 ; C -1 ; WX 600 ; N circle ; B 85 67 514 496 ; C -1 ; WX 600 ; N circlemultiply ; B 28 0 538 500 ; C -1 ; WX 600 ; N club ; B 18 0 582 563 ; C -1 ; WX 600 ; N congruent ; B 34 74 566 583 ; C -1 ; WX 600 ; N copyright ; B -11 -14 610 579 ; C -1 ; WX 600 ; N dcaron ; B 29 -13 685 616 ; C -1 ; WX 600 ; N dcroat ; B 29 -15 617 603 ; C -1 ; WX 600 ; N degree ; B 121 232 479 577 ; C -1 ; WX 600 ; N delta ; B 38 -15 562 655 ; C -1 ; WX 600 ; N diamond ; B 97 -22 525 585 ; C -1 ; WX 600 ; N dieresistonos ; B 102 451 494 651 ; C -1 ; WX 600 ; N divide ; B 38 26 562 516 ; C -1 ; WX 600 ; N dkshade ; B 0 -142 600 758 ; C -1 ; WX 600 ; N dnblock ; B 0 -250 600 250 ; C -1 ; WX 600 ; N eacute ; B 29 -15 554 672 ; C -1 ; WX 600 ; N ebreve ; B 29 -15 554 664 ; C -1 ; WX 600 ; N ecaron ; B 29 -15 554 672 ; C -1 ; WX 600 ; N ecircumflex ; B 29 -15 554 673 ; C -1 ; WX 600 ; N edieresis ; B 29 -15 554 632 ; C -1 ; WX 600 ; N edotaccent ; B 29 -15 554 632 ; C -1 ; WX 600 ; N egrave ; B 29 -15 554 672 ; C -1 ; WX 600 ; N eightsuperior ; B 166 230 433 615 ; C -1 ; WX 600 ; N element ; B 20 0 581 514 ; C -1 ; WX 600 ; N emacron ; B 29 -15 554 605 ; C -1 ; WX 600 ; N emptyset ; B 68 -84 532 497 ; C -1 ; WX 600 ; N eng ; B 19 -196 516 437 ; C -1 ; WX 600 ; N eogonek ; B 29 -199 554 437 ; C -1 ; WX 600 ; N epsilon ; B 110 -15 470 437 ; C -1 ; WX 600 ; N epsilontonos ; B 101 -15 510 634 ; C -1 ; WX 600 ; N equivalence ; B 34 43 566 500 ; C -1 ; WX 600 ; N estimated ; B 67 -7 477 424 ; C -1 ; WX 600 ; N eta ; B 55 -208 508 437 ; C -1 ; WX 600 ; N etatonos ; B 55 -208 508 634 ; C -1 ; WX 600 ; N eth ; B 38 -15 562 624 ; C -1 ; WX 600 ; N exclamdbl ; B 111 -14 488 617 ; C -1 ; WX 600 ; N existential ; B 119 0 464 562 ; C -1 ; WX 600 ; N female ; B 87 0 514 705 ; C -1 ; WX 600 ; N ff ; B -2 0 608 602 ; C -1 ; WX 600 ; N ffi ; B -4 0 606 602 ; C -1 ; WX 600 ; N ffl ; B -4 0 606 602 ; C -1 ; WX 600 ; N filledbox ; B 60 0 539 481 ; C -1 ; WX 600 ; N filledrect ; B 19 0 582 282 ; C -1 ; WX 600 ; N fiveeighths ; B 10 -34 591 627 ; C -1 ; WX 600 ; N fivesuperior ; B 156 230 441 605 ; C -1 ; WX 600 ; N foursuperior ; B 162 239 429 605 ; C -1 ; WX 600 ; N franc ; B -58 0 695 564 ; C -1 ; WX 600 ; N gamma ; B 21 -208 581 425 ; C -1 ; WX 600 ; N gbreve ; B 29 -196 596 664 ; C -1 ; WX 600 ; N gcircumflex ; B 29 -196 596 673 ; C -1 ; WX 600 ; N gcommaaccent ; B 29 -196 596 696 ; C -1 ; WX 600 ; N gdotaccent ; B 29 -196 596 632 ; C -1 ; WX 600 ; N gradient ; B 4 0 596 563 ; C -1 ; WX 600 ; N greaterequal ; B 27 1 602 573 ; C -1 ; WX 600 ; N hbar ; B 0 0 585 612 ; C -1 ; WX 600 ; N hcircumflex ; B 9 0 585 810 ; C -1 ; WX 600 ; N heart ; B 51 -22 550 563 ; C -1 ; WX 600 ; N house ; B 70 0 531 565 ; C -1 ; WX 600 ; N iacute ; B 58 0 542 672 ; C -1 ; WX 600 ; N ibreve ; B 58 0 542 664 ; C -1 ; WX 600 ; N icircumflex ; B 58 0 542 673 ; C -1 ; WX 600 ; N idieresis ; B 58 0 542 632 ; C -1 ; WX 600 ; N igrave ; B 58 0 542 672 ; C -1 ; WX 600 ; N ij ; B 6 -196 593 602 ; C -1 ; WX 600 ; N imacron ; B 58 0 542 605 ; C -1 ; WX 600 ; N infinity ; B 12 155 588 409 ; C -1 ; WX 600 ; N integral ; B 147 -199 455 634 ; C -1 ; WX 600 ; N integralbt ; B 146 -182 326 634 ; C -1 ; WX 600 ; N integraltp ; B 274 -182 454 634 ; C -1 ; WX 600 ; N intersection ; B 63 0 537 562 ; C -1 ; WX 600 ; N invbullet ; B 61 0 540 479 ; C -1 ; WX 600 ; N invcircle ; B 19 0 582 563 ; C -1 ; WX 600 ; N invsmileface ; B 19 0 582 563 ; C -1 ; WX 600 ; N iogonek ; B 58 -199 544 602 ; C -1 ; WX 600 ; N iota ; B 219 -15 434 425 ; C -1 ; WX 600 ; N iotadieresis ; B 125 -15 444 597 ; C -1 ; WX 600 ; N iotadieresistonos ; B 93 -15 485 674 ; C -1 ; WX 600 ; N iotatonos ; B 211 -15 434 634 ; C -1 ; WX 600 ; N itilde ; B 58 0 542 634 ; C -1 ; WX 600 ; N jcircumflex ; B 113 -196 493 673 ; C -1 ; WX 600 ; N kappa ; B 61 0 563 425 ; C -1 ; WX 600 ; N kcommaaccent ; B 29 -265 575 603 ; C -1 ; WX 600 ; N kgreenlandic ; B 29 0 575 425 ; C -1 ; WX 600 ; N lacute ; B 58 0 542 809 ; C -1 ; WX 600 ; N lambda ; B 24 0 586 603 ; C -1 ; WX 600 ; N lcaron ; B 58 0 542 616 ; C -1 ; WX 600 ; N lcommaaccent ; B 58 -265 542 603 ; C -1 ; WX 600 ; N ldot ; B 58 0 601 603 ; C -1 ; WX 600 ; N lessequal ; B -17 1 557 573 ; C -1 ; WX 600 ; N lfblock ; B 0 -250 300 750 ; C -1 ; WX 600 ; N lira ; B 51 0 554 579 ; C -1 ; WX 600 ; N logicalnot ; B 67 165 534 440 ; C -1 ; WX 600 ; N longs ; B 71 0 575 603 ; C -1 ; WX 600 ; N lozenge ; B 24 -39 574 647 ; C -1 ; WX 600 ; N ltshade ; B 0 -150 540 750 ; C -1 ; WX 600 ; N male ; B 59 -4 541 690 ; C -1 ; WX 600 ; N minus ; B 38 219 562 322 ; C -1 ; WX 600 ; N minute ; B 247 304 393 587 ; C -1 ; WX 600 ; N mu ; B 5 -144 579 428 ; C -1 ; WX 600 ; N multiply ; B 96 76 504 466 ; C -1 ; WX 600 ; N musicalnote ; B 132 14 439 563 ; C -1 ; WX 600 ; N musicalnotedbl ; B 73 -98 529 772 ; C -1 ; WX 600 ; N nacute ; B 19 0 575 672 ; C -1 ; WX 600 ; N napostrophe ; B 7 0 599 630 ; C -1 ; WX 600 ; N ncaron ; B 19 0 575 672 ; C -1 ; WX 600 ; N ncommaaccent ; B 19 -265 575 437 ; C -1 ; WX 600 ; N ninesuperior ; B 180 230 447 615 ; C -1 ; WX 600 ; N notelement ; B 20 -79 581 615 ; C -1 ; WX 600 ; N notequal ; B 34 21 566 511 ; C -1 ; WX 600 ; N notsubset ; B 21 -86 595 585 ; C -1 ; WX 600 ; N nsuperior ; B 97 254 453 524 ; C -1 ; WX 600 ; N ntilde ; B 19 0 575 634 ; C -1 ; WX 600 ; N nu ; B 12 -6 537 437 ; C -1 ; WX 600 ; N oacute ; B 38 -15 562 672 ; C -1 ; WX 600 ; N obreve ; B 38 -15 562 664 ; C -1 ; WX 600 ; N ocircumflex ; B 38 -15 562 673 ; C -1 ; WX 600 ; N odieresis ; B 38 -15 562 632 ; C -1 ; WX 600 ; N ograve ; B 38 -15 562 672 ; C -1 ; WX 600 ; N ohungarumlaut ; B 38 -15 562 670 ; C -1 ; WX 600 ; N omacron ; B 38 -15 562 605 ; C -1 ; WX 600 ; N omega ; B 47 -15 553 437 ; C -1 ; WX 600 ; N omega1 ; B -4 -15 564 458 ; C -1 ; WX 600 ; N omegatonos ; B 47 -15 553 634 ; C -1 ; WX 600 ; N omicron ; B 38 -15 562 437 ; C -1 ; WX 600 ; N omicrontonos ; B 42 -15 560 634 ; C -1 ; WX 600 ; N oneeighth ; B 9 -34 590 636 ; C -1 ; WX 600 ; N onehalf ; B 6 -26 596 636 ; C -1 ; WX 600 ; N onequarter ; B 6 -26 582 636 ; C -1 ; WX 600 ; N onesuperior ; B 166 238 434 616 ; C -1 ; WX 600 ; N openbullet ; B 178 165 422 417 ; C -1 ; WX 600 ; N orthogonal ; B 68 3 534 453 ; C -1 ; WX 600 ; N oslashacute ; B 19 -67 577 673 ; C -1 ; WX 600 ; N otilde ; B 38 -15 562 634 ; C -1 ; WX 600 ; N partialdiff ; B 67 -16 534 580 ; C -1 ; WX 600 ; N perpendicular ; B 43 0 558 505 ; C -1 ; WX 600 ; N peseta ; B 13 -15 588 564 ; C -1 ; WX 600 ; N phi ; B 44 -208 556 425 ; C -1 ; WX 600 ; N phi1 ; B -6 -52 606 608 ; C -1 ; WX 600 ; N pi ; B 29 0 571 425 ; C -1 ; WX 600 ; N plusminus ; B 38 0 562 603 ; C -1 ; WX 600 ; N product ; B 23 -93 577 650 ; C -1 ; WX 600 ; N propersubset ; B -4 0 570 464 ; C -1 ; WX 600 ; N propersuperset ; B -4 0 570 464 ; C -1 ; WX 600 ; N proportional ; B 14 127 465 381 ; C -1 ; WX 600 ; N psi ; B 15 -208 586 603 ; C -1 ; WX 600 ; N quotereversed ; B 9 0 623 564 ; C -1 ; WX 600 ; N racute ; B 50 0 575 672 ; C -1 ; WX 600 ; N radical ; B 19 -18 636 700 ; C -1 ; WX 600 ; N rcaron ; B 50 0 575 672 ; C -1 ; WX 600 ; N rcommaaccent ; B 50 -265 575 437 ; C -1 ; WX 600 ; N reflexsubset ; B -4 0 570 605 ; C -1 ; WX 600 ; N reflexsuperset ; B -4 0 570 605 ; C -1 ; WX 600 ; N registered ; B -11 -14 610 579 ; C -1 ; WX 600 ; N revlogicalnot ; B 67 165 534 440 ; C -1 ; WX 600 ; N rho ; B 83 -208 548 437 ; C -1 ; WX 600 ; N rtblock ; B 300 -250 600 750 ; C -1 ; WX 600 ; N sacute ; B 69 -15 531 672 ; C -1 ; WX 600 ; N scaron ; B 69 -15 531 672 ; C -1 ; WX 600 ; N scedilla ; B 69 -219 531 437 ; C -1 ; WX 600 ; N scircumflex ; B 69 -15 531 673 ; C -1 ; WX 600 ; N scommaaccent ; B 69 -265 531 437 ; C -1 ; WX 600 ; N second ; B 161 304 469 587 ; C -1 ; WX 600 ; N seveneighths ; B 35 -34 590 625 ; C -1 ; WX 600 ; N sevensuperior ; B 162 237 429 605 ; C -1 ; WX 600 ; N shade ; B 0 -174 599 725 ; C -1 ; WX 600 ; N sigma ; B 38 -15 617 437 ; C -1 ; WX 600 ; N sixsuperior ; B 180 230 447 615 ; C -1 ; WX 600 ; N smileface ; B 19 0 582 563 ; C -1 ; WX 600 ; N spade ; B 98 0 559 585 ; C -1 ; WX 600 ; N suchthat ; B 20 0 581 514 ; C -1 ; WX 600 ; N summation ; B 75 -79 546 647 ; C -1 ; WX 600 ; N sun ; B 5 -13 595 576 ; C -1 ; WX 600 ; N tau ; B 84 -10 491 426 ; C -1 ; WX 600 ; N tbar ; B 9 -15 533 572 ; C -1 ; WX 600 ; N tcaron ; B 9 -15 534 616 ; C -1 ; WX 600 ; N tcommaaccent ; B 9 -219 533 572 ; C -1 ; WX 600 ; N therefore ; B 34 0 565 555 ; C -1 ; WX 600 ; N theta ; B 68 -15 532 603 ; C -1 ; WX 600 ; N theta1 ; B 9 -13 621 761 ; C -1 ; WX 600 ; N thorn ; B -12 -196 575 603 ; C -1 ; WX 600 ; N threeeighths ; B 6 -34 591 633 ; C -1 ; WX 600 ; N threequarters ; B 6 -26 583 633 ; C -1 ; WX 600 ; N threesuperior ; B 157 230 442 615 ; C -1 ; WX 600 ; N tonos ; B 200 468 397 634 ; C -1 ; WX 600 ; N trademark ; B -1 216 601 558 ; C -1 ; WX 600 ; N triagdn ; B 59 24 540 465 ; C -1 ; WX 600 ; N triaglf ; B 58 106 510 414 ; C -1 ; WX 600 ; N triagrt ; B 89 106 541 414 ; C -1 ; WX 600 ; N triagup ; B 68 51 531 485 ; C -1 ; WX 600 ; N twosuperior ; B 149 238 429 615 ; C -1 ; WX 600 ; N uacute ; B 9 -12 575 672 ; C -1 ; WX 600 ; N ubreve ; B 9 -12 575 664 ; C -1 ; WX 600 ; N ucircumflex ; B 9 -12 575 673 ; C -1 ; WX 600 ; N udieresis ; B 9 -12 575 632 ; C -1 ; WX 600 ; N ugrave ; B 9 -12 575 672 ; C -1 ; WX 600 ; N uhungarumlaut ; B 9 -12 575 670 ; C -1 ; WX 600 ; N umacron ; B 9 -12 575 605 ; C -1 ; WX 600 ; N underscoredbl ; B -46 -393 646 -128 ; C -1 ; WX 600 ; N uni00A0 ; B 375 0 375 0 ; C -1 ; WX 600 ; N uni00AD ; B 38 218 562 322 ; C -1 ; WX 600 ; N uni021A ; B 38 -265 562 564 ; C -1 ; WX 600 ; N uni021B ; B 9 -265 533 572 ; C -1 ; WX 600 ; N uni02C9 ; B 121 521 479 605 ; C -1 ; WX 600 ; N uni0387 ; B 221 204 379 338 ; C -1 ; WX 600 ; N uni0394 ; B 4 0 596 564 ; C -1 ; WX 600 ; N uni03A9 ; B -6 0 606 578 ; C -1 ; WX 600 ; N uni03BC ; B 15 -196 575 425 ; C -1 ; WX 600 ; N uni03C2 ; B 82 -196 533 437 ; C -1 ; WX 600 ; N uni0400 ; B 9 0 554 809 ; C -1 ; WX 600 ; N uni040D ; B -2 0 602 809 ; C -1 ; WX 600 ; N uni0450 ; B -25 0 698 564 ; C -1 ; WX 600 ; N uni045D ; B 9 0 591 672 ; C -1 ; WX 600 ; N uni0462 ; B 5 0 574 590 ; C -1 ; WX 600 ; N uni0463 ; B 6 0 547 560 ; C -1 ; WX 600 ; N uni0472 ; B 17 -14 583 605 ; C -1 ; WX 600 ; N uni0473 ; B 38 -16 562 458 ; C -1 ; WX 600 ; N uni0474 ; B -25 0 698 591 ; C -1 ; WX 600 ; N uni0475 ; B -4 0 657 445 ; C -1 ; WX 600 ; N uni0492 ; B 9 0 554 564 ; C -1 ; WX 600 ; N uni0493 ; B 33 0 574 425 ; C -1 ; WX 600 ; N uni0496 ; B 5 -121 638 564 ; C -1 ; WX 600 ; N uni0497 ; B 7 -109 625 425 ; C -1 ; WX 600 ; N uni0498 ; B -4 -219 546 612 ; C -1 ; WX 600 ; N uni0499 ; B 35 -219 543 470 ; C -1 ; WX 600 ; N uni049A ; B 40 -121 602 564 ; C -1 ; WX 600 ; N uni049B ; B 47 -106 584 425 ; C -1 ; WX 600 ; N uni049C ; B 40 0 600 564 ; C -1 ; WX 600 ; N uni049D ; B 47 0 601 425 ; C -1 ; WX 600 ; N uni04A0 ; B -15 0 599 564 ; C -1 ; WX 600 ; N uni04A1 ; B -3 0 590 425 ; C -1 ; WX 600 ; N uni04A2 ; B 17 -122 611 564 ; C -1 ; WX 600 ; N uni04A3 ; B 22 -108 607 425 ; C -1 ; WX 600 ; N uni04AA ; B 29 -219 568 578 ; C -1 ; WX 600 ; N uni04AB ; B 50 -219 569 437 ; C -1 ; WX 600 ; N uni04AE ; B 17 0 583 564 ; C -1 ; WX 600 ; N uni04AF ; B 17 -200 582 425 ; C -1 ; WX 600 ; N uni04B0 ; B 17 0 583 564 ; C -1 ; WX 600 ; N uni04B1 ; B 17 -200 583 425 ; C -1 ; WX 600 ; N uni04B2 ; B 6 -121 632 564 ; C -1 ; WX 600 ; N uni04B3 ; B 17 -108 624 425 ; C -1 ; WX 600 ; N uni04B6 ; B 17 -121 587 564 ; C -1 ; WX 600 ; N uni04B7 ; B 31 -108 577 425 ; C -1 ; WX 600 ; N uni04B8 ; B 17 0 578 564 ; C -1 ; WX 600 ; N uni04B9 ; B 31 -1 564 425 ; C -1 ; WX 600 ; N uni04BA ; B 17 0 578 564 ; C -1 ; WX 600 ; N uni04BB ; B 25 0 591 612 ; C -1 ; WX 600 ; N uni04C0 ; B 79 0 521 564 ; C -1 ; WX 600 ; N uni04CB ; B 17 -121 588 564 ; C -1 ; WX 600 ; N uni04CC ; B 31 -108 577 425 ; C -1 ; WX 600 ; N uni04CF ; B 79 0 521 564 ; C -1 ; WX 600 ; N uni04D8 ; B 18 -13 583 578 ; C -1 ; WX 600 ; N uni04E2 ; B -25 0 625 801 ; C -1 ; WX 600 ; N uni04E3 ; B 38 -15 575 664 ; C -1 ; WX 600 ; N uni04E8 ; B 17 -13 583 578 ; C -1 ; WX 600 ; N uni04E9 ; B 19 -107 579 425 ; C -1 ; WX 600 ; N uni04EE ; B 9 0 554 801 ; C -1 ; WX 600 ; N uni04EF ; B 29 -15 554 664 ; C -1 ; WX 600 ; N uni2002 ; B 50 0 50 0 ; C -1 ; WX 600 ; N uni203E ; B -46 618 646 728 ; C -1 ; WX 600 ; N uni20AF ; B 9 -175 587 614 ; C -1 ; WX 600 ; N uni20DD ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni210F ; B 87 -14 515 641 ; C -1 ; WX 600 ; N uni2112 ; B 0 -12 547 581 ; C -1 ; WX 600 ; N uni211E ; B 13 -94 588 563 ; C -1 ; WX 600 ; N uni2120 ; B 2 214 597 568 ; C -1 ; WX 600 ; N uni2126 ; B -10 0 610 579 ; C -1 ; WX 600 ; N uni2128 ; B 36 -111 506 547 ; C -1 ; WX 600 ; N uni212D ; B 63 -14 545 581 ; C -1 ; WX 600 ; N uni212F ; B 68 -12 515 445 ; C -1 ; WX 600 ; N uni2136 ; B 112 0 482 529 ; C -1 ; WX 600 ; N uni2137 ; B 167 0 435 530 ; C -1 ; WX 600 ; N uni2196 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2197 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2198 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2199 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni21C4 ; B 27 -35 571 463 ; C -1 ; WX 600 ; N uni21C6 ; B 29 -35 573 463 ; C -1 ; WX 600 ; N uni21D5 ; B 74 -35 529 661 ; C -1 ; WX 600 ; N uni220D ; B 145 -12 459 448 ; C -1 ; WX 600 ; N uni2213 ; B 38 0 562 603 ; C -1 ; WX 600 ; N uni2215 ; B 21 99 580 483 ; C -1 ; WX 600 ; N uni2219 ; B 221 204 379 338 ; C -1 ; WX 600 ; N uni2223 ; B 261 -145 302 837 ; C -1 ; WX 600 ; N uni2225 ; B 189 -246 373 881 ; C -1 ; WX 600 ; N uni2227 ; B 91 0 514 435 ; C -1 ; WX 600 ; N uni2228 ; B 91 0 514 435 ; C -1 ; WX 600 ; N uni222E ; B 121 -203 489 636 ; C -1 ; WX 600 ; N uni2235 ; B 38 0 561 573 ; C -1 ; WX 600 ; N uni2237 ; B 36 0 559 573 ; C -1 ; WX 600 ; N uni2262 ; B 38 -42 562 587 ; C -1 ; WX 600 ; N uni226A ; B 7 -52 600 462 ; C -1 ; WX 600 ; N uni226B ; B 7 -52 600 462 ; C -1 ; WX 600 ; N uni2285 ; B 26 -88 589 586 ; C -1 ; WX 600 ; N uni2295 ; B 49 0 546 501 ; C -1 ; WX 600 ; N uni2296 ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni2298 ; B 45 0 542 501 ; C -1 ; WX 600 ; N uni2299 ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni22A2 ; B 46 0 550 504 ; C -1 ; WX 600 ; N uni22A3 ; B 49 0 554 504 ; C -1 ; WX 600 ; N uni22A4 ; B 49 0 554 504 ; C -1 ; WX 600 ; N uni22BB ; B 91 -160 512 438 ; C -1 ; WX 600 ; N uni256D ; B 268 -246 605 282 ; C -1 ; WX 600 ; N uni256E ; B 0 -246 334 281 ; C -1 ; WX 600 ; N uni256F ; B 0 219 334 749 ; C -1 ; WX 600 ; N uni2570 ; B 268 212 604 749 ; C -1 ; WX 600 ; N uni25A1 ; B 17 0 584 567 ; C -1 ; WX 600 ; N uni25B5 ; B 94 34 507 476 ; C -1 ; WX 600 ; N uni25B9 ; B 94 39 536 452 ; C -1 ; WX 600 ; N uni25BF ; B 95 34 508 476 ; C -1 ; WX 600 ; N uni25C3 ; B 70 39 512 452 ; C -1 ; WX 600 ; N uni25C6 ; B 44 41 566 620 ; C -1 ; WX 600 ; N uni25C7 ; B -7 -12 609 669 ; C -1 ; WX 600 ; N uni301A ; B 116 -150 362 760 ; C -1 ; WX 600 ; N uni301B ; B 116 -150 362 760 ; C -1 ; WX 600 ; N uniEFBF ; B -73 3 672 842 ; C -1 ; WX 600 ; N uniEFC0 ; B 0 -173 395 814 ; C -1 ; WX 600 ; N uniEFC1 ; B 0 -147 395 841 ; C -1 ; WX 600 ; N uniEFC2 ; B 0 -238 596 723 ; C -1 ; WX 600 ; N uniEFC3 ; B 0 -238 596 723 ; C -1 ; WX 600 ; N uniEFC4 ; B 178 -173 600 814 ; C -1 ; WX 600 ; N uniEFC5 ; B 178 -147 600 841 ; C -1 ; WX 600 ; N uniEFC6 ; B 52 -238 544 723 ; C -1 ; WX 600 ; N uniEFC7 ; B 52 -238 544 723 ; C -1 ; WX 600 ; N uniEFC8 ; B 52 -238 544 723 ; C -1 ; WX 600 ; N uniEFC9 ; B 178 -147 396 814 ; C -1 ; WX 600 ; N uniEFCA ; B 94 -76 507 461 ; C -1 ; WX 600 ; N uniEFCB ; B 0 117 600 294 ; C -1 ; WX 600 ; N uniEFCC ; B 267 -175 614 842 ; C -1 ; WX 600 ; N uniEFCD ; B -15 -173 615 841 ; C -1 ; WX 600 ; N uniEFCE ; B 0 -174 558 161 ; C -1 ; WX 600 ; N uniEFCF ; B -14 -173 336 841 ; C -1 ; WX 600 ; N uniEFD0 ; B 0 507 559 843 ; C -1 ; WX 600 ; N uniEFD1 ; B -15 -173 615 841 ; C -1 ; WX 600 ; N uniEFD2 ; B -14 -173 615 841 ; C -1 ; WX 600 ; N uniEFD3 ; B -15 -172 614 841 ; C -1 ; WX 600 ; N uniEFD4 ; B 58 -238 503 723 ; C -1 ; WX 600 ; N uniEFD5 ; B 54 -267 554 428 ; C -1 ; WX 600 ; N uniEFD6 ; B 29 175 577 546 ; C -1 ; WX 600 ; N uniEFD7 ; B 0 0 603 583 ; C -1 ; WX 600 ; N uniEFD8 ; B 0 0 603 583 ; C -1 ; WX 600 ; N uniEFD9 ; B 14 189 588 546 ; C -1 ; WX 600 ; N uniEFDA ; B 0 0 603 583 ; C -1 ; WX 600 ; N uniEFDB ; B 0 0 603 583 ; C -1 ; WX 600 ; N uniEFDC ; B 29 -182 308 814 ; C -1 ; WX 600 ; N uniEFDD ; B 254 -238 308 723 ; C -1 ; WX 600 ; N uniEFDE ; B 58 -238 314 723 ; C -1 ; WX 600 ; N uniEFDF ; B 254 -238 484 723 ; C -1 ; WX 600 ; N uniEFE0 ; B 58 -238 315 723 ; C -1 ; WX 600 ; N uniEFE1 ; B 254 -238 504 723 ; C -1 ; WX 600 ; N uniEFE2 ; B 80 -238 308 723 ; C -1 ; WX 600 ; N uniEFE3 ; B 254 -238 512 723 ; C -1 ; WX 600 ; N uniEFE4 ; B 0 -173 308 814 ; C -1 ; WX 600 ; N uniEFE5 ; B 0 -147 308 841 ; C -1 ; WX 600 ; N uniEFE6 ; B 254 -173 600 814 ; C -1 ; WX 600 ; N uniEFE7 ; B 254 -147 600 841 ; C -1 ; WX 600 ; N uniEFE8 ; B 0 181 600 234 ; C -1 ; WX 600 ; N uniEFE9 ; B 0 789 472 902 ; C -1 ; WX 600 ; N uniEFEA ; B 0 789 600 841 ; C -1 ; WX 600 ; N uniEFEB ; B 0 -173 600 -120 ; C -1 ; WX 600 ; N uniEFEC ; B 79 -11 541 529 ; C -1 ; WX 600 ; N uniEFFA ; B 0 0 602 582 ; C -1 ; WX 600 ; N uniEFFB ; B 0 0 600 579 ; C -1 ; WX 600 ; N uniEFFC ; B 0 0 600 581 ; C -1 ; WX 600 ; N uniEFFD ; B 0 0 602 582 ; C -1 ; WX 600 ; N uniEFFE ; B 34 -11 581 549 ; C -1 ; WX 600 ; N uniEFFF ; B 67 266 537 714 ; C -1 ; WX 600 ; N union ; B 63 0 537 562 ; C -1 ; WX 600 ; N universal ; B 55 0 544 599 ; C -1 ; WX 600 ; N uogonek ; B 9 -199 575 425 ; C -1 ; WX 600 ; N upblock ; B 0 250 600 750 ; C -1 ; WX 600 ; N upsilon ; B 38 -15 563 425 ; C -1 ; WX 600 ; N upsilondieresis ; B 38 -15 563 597 ; C -1 ; WX 600 ; N upsilondieresistonos ; B 38 -15 563 674 ; C -1 ; WX 600 ; N upsilontonos ; B 38 -15 563 634 ; C -1 ; WX 600 ; N uring ; B 9 -12 575 702 ; C -1 ; WX 600 ; N utilde ; B 9 -12 575 634 ; C -1 ; WX 600 ; N wacute ; B -4 0 604 672 ; C -1 ; WX 600 ; N wcircumflex ; B -4 0 604 673 ; C -1 ; WX 600 ; N wdieresis ; B -4 0 604 632 ; C -1 ; WX 600 ; N weierstrass ; B 37 -165 566 407 ; C -1 ; WX 600 ; N wgrave ; B -4 0 604 672 ; C -1 ; WX 600 ; N xi ; B 139 -208 501 603 ; C -1 ; WX 600 ; N yacute ; B 17 -196 583 672 ; C -1 ; WX 600 ; N ycircumflex ; B 17 -196 583 673 ; C -1 ; WX 600 ; N ydieresis ; B 17 -196 583 632 ; C -1 ; WX 600 ; N ygrave ; B 17 -196 583 672 ; C -1 ; WX 600 ; N zacute ; B 81 0 523 672 ; C -1 ; WX 600 ; N zcaron ; B 81 0 523 672 ; C -1 ; WX 600 ; N zdotaccent ; B 81 0 523 632 ; C -1 ; WX 600 ; N zerosuperior ; B 166 230 433 615 ; C -1 ; WX 600 ; N zeta ; B 149 -208 511 603 ; EndCharMetrics EndFontMetrics libwmf-0.2.13/fonts/NimbusMonoPS-Bold.t1000066400000000000000000004605301441723000300176650ustar00rootroot00000000000000%!PS-AdobeFont-1.0: NimbusMonoPS-Bold 1.00 %%CreationDate: Wed May 17 2017 % Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development % (URW)++,Copyright 2014 by (URW)++ Design & Development 10 dict begin /FontInfo 12 dict dup begin /version (1.00) readonly def /Notice ((URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /Copyright (Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono PS Bold) readonly def /FamilyName (Nimbus Mono PS) readonly def /Weight (Bold) readonly def /ItalicAngle 0.0 def /isFixedPitch true def /UnderlinePosition -88 def /UnderlineThickness 110 def end readonly def /FontName /NimbusMonoPS-Bold def /PaintType 0 def /FontBBox {-161 -393 761 1007} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec é ×`£Â,ñùÜiš"Ã[[4Þ?¿Ø˜¯.aÔØ·Pþ‡‡ÝÙgëð9YÆÊ2SÝã/ÊØ$u™lµüÔFëâi:Ìô Ÿ-=ËÅ‹IåéÉ¢“ÉÅ«ôSÀ­:¶QÖÃëí<¡yùéö1’YãL ¡ Œ4brî4*{‹0 @!þWbêƒ47W€éŽãfÔâØóJQr¨ª '7øjѹÒùW“à]Λž*DÙ½³®Ö'#ƒÍSrd9-¶W‰Kú1çâøvƒœ0툑س"+ýSÁ5"’ÃçÍa2Àn Æ2Bó4ç4 ñ Ý®G@—/«Û².«ˆÊ¡î˜"oò©ÈbR$z™Ÿ§”—3‡©W³g^{1‘w"‘Ʋ<Èç±Á¢ËV| ©Ü>@Ž­q>åñGt-!¢ø­-µWÞß‘;#s®=y‚ ˆ¬‰ÍÝË $Tè6LXlóxÁÄ9D±ÁÛÍ£ÌbØ`\6¾Ã<ù@ò’ÃŽ„Ê“fÜ[›\¯NßS¸F ÏEO»Ü(g5$–XåO%­žé5çøœýjÏšµ¨á¿3\*ÿ6§z~À8vË zg9jêb/ç–´ãß]™¥þ]-,$™Èg«SÖ"²*D±j¡LüZ`‘TµÄ”eZ Fàº$2a {Ïíº Ž糞…>‘‰§ÈÄ› ‚€ÙuŽÅt”|s}Är vŽô¶†—Id`0©`“AL=|6µTp.£1®2zòT< ?Ö· ›8Û~!Á{Ê…úF\c÷mÞ.ÚL×"üæÅC`ð™ØV­É²«i9g îFäqSBn˜,;Ž?L5£¡lSÍNAé4ÔÝ@o¨½6BË­꫱ŠÁ¢ +ã^ÉÜ!?ž;÷°qì`ÊÛ³lÈŽâOYOרwE9.ÿhNf³ãî2Nˬ3#¾t7Û 0­¯¤¾æêFq½V¥Z8›ˆÛT>®áëTÈ´[ˆÁÔ$÷§@U¢ºËÇå*FKõp”I¦F²‚Á^›ÉÂN qy¸^ ÷[­Ûîó}0Õù‚ð}ßÕà/_ §’o¥Ÿ‰òV}³YìÁ0Å5ÓÞJ•pòj3ëˆu³J¸Eíì2Ñ')f$!ëÖ÷j„q7G¢ò!ûùZC­XìºÉ†}2{ ð¾B~(´ýùä*_n•q'ßúš¿øÈØþ¨ù6hf¾ï°{;:[éŸRÞ£¾hðêæÔEwË)ôp<µ™= èP˜‘™¯1Àæ/öu¼Z,ç(qÌQJŒ·tíe^]»‚M¬Ì‹Úi <²¶—Gg(N0އ { X~`¬­gð¥M0Öéeçδ¿ëñª†˜>œ?#D%QõŒƒ‹R¤o×P¹žž©Ÿ‰ÎâúñãÂã÷eû»Ì¢JŽƒ,Ê^ð´:¸m‘r’ ;¬!É· ¤¤·"3ÿ›—´i?k&VT®qz¡-/¡2[FÔó°~ÛDÉi ¦Ä\²5Æž;åÊ‹ñSê<Ú+HnMÕ)’œk™:š éúEKÚdDWŠZ‡È&+Òã…Ñ~FÚ±Ø( Ñ+sÓ\ye‚O•P^¿k¸ˆÈJˆÔ$x+‰ !yZâ`E§t» ¤i”Žî*S@ªI² &" ~¤ø`Š Ž®5Þ¼8ŒZSºÔ p ¯¤ÖH @Gòh5t##˜ŠqTSˆŸŒ\¯eV€¦TÚÙŸ(4g@†õ5Õ—öÏ •…û‚^ÝQ×èxoGâ¥-7EƒítGJüPß J˜·¤·ÃçŠR^"÷f`\‚™ŒLr%ór–QU¯u‘½Å¿á@[Ù’"3·ÎA Àé Ñy@¼ë Q†C{/g±5(…aÒ?+eŽ"²ÜÈ Þ\CžÞÏ¥è\†z–‘Ú1Ù– åã}aðªkßQK¹ø§k™0F»¥]âå\'G2CLã^*€%:0óògÆìŠöÞü¡ž|¾Ý½¨»1ö´daƒŽ¹)æu¹IjkBÉþ¡\S¢«_¿Üɸ`eäòviäƒ'pý£, zƒƒá>§¥t/heócã‚,ýõù}øÜíSOk”t§Àîªçoqò (CåH)A¿[0àUdÌ cgjŽÆRh¸„2ã÷PSWüËOÅ=ôçV\Èÿ¶y‘ŽT˜½AÂ+`ç6´1?“w2þ×+ü¶°å!ûZ¡(fO~Ô*œéjgDZ „¾@±Òbà°|WÈnƒÙfSÜdÄæ¿pNqÝŠýoØÎˆ8Z^ ‘Ìm֯؄1ˆ]¸Ð·*xzb#Ñnî K _ge•‚4Äœî)†Z?íHŠ ³z'Y(¹ueô§%“6©s™™ÿFþ‚6˜=/—ÞàU…uˆÖ1{%†eNë™A'éÝAš›ŒéAÃp§¡eÎüúcšÑQ¸OvÙ Sƒ„-W>4a÷ÖË1‘u‹ÅìKt®EŒ¥ Gèýi—üf”ÙÁMøO °E¨®Þ¯},û AH¼K&ѬþFº§n2ù7&ô´µF>¬î¨L‰Š'ðÙlÉa_câ·‡FM4÷LO&Âïy”~¦=©}mâzÔà^+ (ìw@N‰æ˜IÁ'D?)FÅ T?Cü+²Y’Æ:kµN+Ç8+|œÇ±nsš *¡nÁ *Â~-ö$„2keÐ?1iOÃs´: t„‡¼ßŒaÛ¶›™/¬c„Ó¶n)Tù+;Á Ë"Û÷ýL™®œ¯Oݤ&#Ž‹U°5 ¾ SaO˜é¡¼ßìãiŸ(¦ÑnÅ ª°”8i1Z~Þî…Ú”ÎE=Ô×ä³NÑ…EõŽÁR÷‚ü€­Êœ ]5¡¾£K~#DéÁh¹ø2ùIA!¡í©tàÎ¥8é ’­=oF„ÌT$ ëL6‹åáîE›¦ÿ}ô®[Ýɂڙð‹ÕÉ’Ñ$ ªš,ÕnÍ›@$–cb*à@µR˜°èòþe½÷!ϨˆÁ]«>ˆéOИn6-°<«bæ,¼lV ˆj £‚ö)Xln=ãtïMÞÄÎJèZD 6«O޼Òa !öj†³¹ùÍ,Œr2Pó” ·×ú$(=Ê®™±mf€FÄíìÅH¸B±Úd×?N›þ»² QLAì,Fþa§2n4Põ“Ÿ2¬𥞌®÷M'ã‚j˺y]lñBÝÏÐ$2Pï*Íoˆ/KÂO ES{À•÷‹#8Bn¢ãËø`p¹þOøg.ð¬OãEê‹Pg™Ç2kR~z.}{7k(ü–òƒ_Õ’™H6Û¤ÏL<‘SßÔ+ȵwWRâ¡_¥ªÕ)õç–ŽÞSÖÙj" 8œñäÒ/!4Õ×ïM¶q§Qƒwýi¤ù „èŒá zd¶«t!­µ¥`mêôáý5 ÍÈîÌ4d ô“˜Ãú°N¯ý–¢ÃîPbùçùP*Æ–ˆNÙ3Ëɻѱã”Ó MÔÁeØcÏŽ²ëcµ ¨÷/ñ2ÅMh:šS×à4rSʇü9_¤õoà9¥(IàtÒÉ/¿Äçá”ìÇ6þ’×DLw“±˜©BSMÅQ1½„†Æ9ÍoëÜƒÂæCBÏæJÚA Wt¤I¢"ôÃåç…1ãIA¡É#µ)’?c‰ñ)Ðk§ˆ‘¨ÞÑŸdœ(ÂÎÀïȧ¨FqX4“ÿÆ*q$ïÏ0`z¼•ØY cDË,¦©$øÑDñ×áðPI—ä0€{ãX…Õã%iѦ䚔d ›ll×&O| c‹Â¨ÔVÕgÔú \ýð¦Æ˜~Èí!ux¾-&Xu J ㎭Q±,Œ»±:ú`€mí’½ªâ€àÏâV#‚ÔÿÞêf·Xf €PfjEt>.¯™øq*K¢”/ņ.ëF/5á2›7`©mHîJMF¤ƒT–¹D†åJ#“¦‡ÔH"»Í90:Øí(ÙCêG—CçÎÅŒ”KÖtKË«ŽGÕ¼yTVÓExêdµ×%_¾NDD‡ÏîÊn L€$©°]„¡‚éµÏ2£¢aÊÕÕV³±Mq@îÈ×âh,¦Šć!|‰%;´+ÍÞ…Äö?p¹Ì¾ HݵïL1ÿ³} <µÅ¼ÖÒ_¼ºÙ)îŠcÕ;üy:L³ýeTÜŒ¤¤ËU9È¡rd–Ùè , ôMŸö®û/ðŒÕôr÷‰Sezt°7àÉAU œ¢òkûMÅHFöâ3}v#æÊ9«Æ<#Àn"åD }þnvöµð§,ží/‡BÚMÁÇì÷‚rqÞ3„››äÏbˆ3œ§ãHÞ€ïçMãgïù›:˜y³‚î"©-%ò¦=»ãºŒ hçpëA©×Iª5›D·]i•±SAýÒŠ½ ýVB˜Ö\ÆG}~šècwç\*+‡˜ŸUºë:Úéi¹Aá],ïùSzÚ|±$Çb ŸQpM‹BT#»%ìÆQE©C¯ÕèJ~xÌ·ÈÇÞÈÅEôv‹ñ©úÙµ}’º÷ôOFe3¢7Ç|n˜ýþ, S¼v&‚æ(Z•¡ó§1LŸz@öOy ’:ÇqZ¹oB ïm°T„•´¤ù úŘϴªÆZ¦._àŒVð¿Eà¹qèq'F)°çŒZ5SМóÇ¢7è/ŸÑX~ŽÿÜQ¾1LÊäU 4¿:λ[oyF9()ˆý"Y«;¶~“ið´]&Ð]¼ÃïºÞ’n¸?æ:âÛ׌éţ≯1/EŒŒŽòù¸*Ñ/ˆ¹Á/RŽ43[)…ÿìS䄵5æò¼D e3$÷—øÑ:Sª£WÖ‘< EjUeSbZ„‡I)؃ɨ3’óççÆFl@[:iæîveÊ 7µÑª¦í!YñjsÏö+Ð?”ìÚ\ˆÔà@+"ziyWF _KÞ¬^¹§º–ó qí¯ÛÓÍt£Ç©6á*£F×´Ÿ·„è^¼£¥‹©£rŒž>“Äï.¨Õq.òwì`‰^ùʘ÷8†"þòú‰¦ÄÆvù¤ñºRP zBÍÐXï¿oLm~ºñëÉr{­†ª ªè·c•r¶Ž¿Vò…a¦G–ºAG`¾8³ŒzVñ…5æòz˜…-jd Wz½ eñMu_® ¼âc®"­,2\#GBŽÌös-S¯;b™“´91´#73›GꥧëÅFBî‰_¾ÜþÚß[óäZºÄæ¿5,©K‰]N4é³¶½ibÕ•8PÐÙ} tß@L}ÃLV^ÂFt+§,1”§„ß¡ÒÖ™¾³Ù›ƒŽcø}rzöôašA¸éÆÆ)Z¼l Ó›jÛ²k9YÍÛœzǫ̀® ÷‡IÕôx@TŒÏuÔÁ6NÙÔïsm'Ôýî”±—ÏE®ª’bTÛ9—rÛç‰Éšdr ZÏs^®I1:)£ñ¢È΃Ò0«°ßX¦áÌsè•X[YÌŽ°]Rï*Nׇçs{ƒïPßö"dzrß¾ÑÂe ßÚû.(Š¡~«9;2Ò&EH vÔz#•¶ýËgåKÈ© †4&¤s¤ƒÙâJ²q®œÀúûÔª¸G TÔ\2J+óðŽãã{•·+|Û¾+D8„'åçÉwZÖRëòs¸Ôõm±X»šô/zŽ~—Æ8ò!©"J¼š&Tß^{bxo§#©çPM¥KÉnÜ©W¿(BàáZÙϽ“±m€ÞgÆ/iãq¬LL—‚/qý’¨àE]©†ÈöÝIR?؉¿ŒÍkÓ*À:wÎáÚ݆uЩ­ ¿ì?7¥= ± GÐúõŽ–È ·44…½•ý£öžKI€`|íýìõêÂÇŠrjºª ¬ÐÐdËúZ¤K dw|BpX®!D“ÀÛ•|ñ=‘iº€ƒ<ºf>k”’?oÎ>OñïÒ:ñQÙã8Óocª‘qí\\½{1¹T¿+¯ÓÙ dñD޾Óä#¥ùŸÓ‚Ùïƒñ§ÞnǪfoÞya@WMª_ ³0æ‹dq·#›ô‡u\Ý/±Uy~ ê@#x¥V [ <†2ˆ(C+ƒÆPýÛ Ô”é¸Ì¶«›±»b qñ֞꺨ÖÝ™}êI©a9`ø«F<åÐãúJPôq¯þ7áë/™.R dba?Áù xTõGY€ #Ä‹ä ‡ãU/aP¼a˜s°€(îˆi,>¶»LªëpÚÜÀä›bQÖñ0âG¢3¡ 0Õæ! .v»@(R¸6u NäU¼µÅ N2 QŠŸþ^íRëñ®îWÉJ¡º‹ßß„ªëåÒ'ѧè»Q–cglžšÃѨ¥qN¨¹ØÖW ûö8eÜ¡Rݘ½Ay `¢¼,³šµ4o‚šgôÿ`gâÊ~Ëâ`OgznƉ›z>*‡ø¾Oé.¯f$ Nè_ê¶ÌÄS˜öƒ+ªâaA‰!wÌúYóA*8½–³CN¦@"LË»Ë5fˆ@Ô‘ÁʸÎÖz”Π7¯yJ1ƒU$`31,ó x÷µ'8Öz¶æ//<¡KÍ™@ôOÛÝwÔrŸ¤ôð, ©ÇI’ÆRè¾Ø2Ù@º5ëÔèKFß\*†~]Ÿÿ s§dñ‘Ï•õk¬C&Ñõú?š¨uuüÖø?@¬¢ŠB`CHçç$’©sÇXžÉ.Z&O؆aÅ¡Ó %å¿™û3~wAh]„VZë"š&Õ„ Ê!í`×tDè'”³•`ì{ƒW¿Å¡/1º‡;«™vÓ {ö­ “Ú-±wŠÌßj‡HE×zBs lªC3‰CgÁsaqUuÔfxépE8Ë»JQ 8„e:n€˜.FÒP?Ï¢,bíð‡J å…ª£3ºP ÄÅLª¬µoo–®;a «âHÞ·U&Z'¤Îù-ëù¹u§2!_+r–SŽM[«Äz«Yp§„M ¬xû@L¡mwÛ ˆf®±…(¯X·æ~ñßP‡/¥µ—u²yÓÅ| ù€Æ4©äsf^ÊkH¨åÄ*©YQ2Õ5‰cë# ó«OØ'@i®z´æ…"_0xsuß¼Dh ÷àAi/g¥­ï<¦0ãbt˜ªÌ>â¶3yùã=Ì͛Όo³¹œ\ž}Çû®–µ¼W×°àF’,ó3ÙprÒøÎ¾c¦›}w?o¼b¡ÄZN3ðàq˜lkö‰,`¿¿¤Y¬"‡ò˜ï¶BÆÄð­sþ!3IúÜÞwuüÑÕÛº¢E›eÒOMísÕÑŒ=ë4?J ¤]#‘+MÅÅí ¾¤&2YßÈÂsVðô²ñÓF/7П(«ÐõÂY½@L§\ÿ7’ì`Ÿ»r ¢˜#]Ù¤ßõ–Äh+ó#hjð#ùy@Šrź_ý'}˸ž@aО5“ÙS4 ß´µÕÒ[Òï=Ø‘G·O¾54šeF±8¸Id…Få/YÒb¢IEÕŒþ;ùYµ&‰ÒhÊÜŽc@±¸‡ù–ºæâQuÏÒ‡–þò–ÇÁjöø[FŸq›à‹ïñÆH°£ÓJi¯ùtò ì~±jÚmcòÞùÞâðNÊ…[œÝ7/ÄW5 ˜ûE×¼Ï-2HIª`Aìß+-§)Cº“·†å÷ÐgÙ§(Ý=®þrPþ(+i4ÛÚJ/%‰å]:{c”Æ*ÞŠñ®kHÑŸýû°%*»>$‘×éb›xFÔâÂ#{np¯#N¹ P yCîŠZrÁZ“Ûè»Dèiš~ÌFMø@mð­¨rügìüÌ'ËØ%g–×ArN ¸rK³²ˆÜ3‚k’\€J£¤µjëÐñQzó”!J>5ùñØÑF¯e–Ö›Ìn—ØJ¶rì M,ã1³¿¹ªtTÒcb•÷²’¤Éò[ózôPÖju—I– œy¦”p’!׋¦…÷ ¿Ë¯ˆ× _2ôyŽ‘ý–ÉØ›ó{tþÚ[Pb¤]Óúã1½ç’Š>ö|ÌfÊÒýOÉðŽ+À¯{– ¬8µ UÀ°¦$Â+•¨1Ÿ1ù¬8TK¬I½¬%²#>!Ê#²- å¦†Ïòlƒ“@Ã%+OÚny}Êñ¢ óûà ”í}W­¾ (8µˆî@мXéüS%UúQ+óËïò‰ª«ê†  ÜÙúSÇÝS]©©ïÚÜœž€UBç7^]Õ¶Î`P¡GÃÂóà B4G¨ÖRUú§Îƽ$Ií6¹¡V\w³;§j„/ú„ƒCœÆÙ…ÁÏiáv Ùí=(MrO%!¹oªùPÊ¥]vÀZ[K¿zpZï[Ï\€!,ºWÏñŠÝõ€ÃÇ»œFQùœÄ® 6‰RÝm×;§¿-Õ¥ ‘T‚}QyüVP‘íÕ<î:⬦ۈËêú #Y-z(CÕüC]ÐÅË‚lsÄ= Gôkâ­Ö­À{!ÖgÎkã®Ð’P»cÄb–dÍåì¡ØDu®o˘у掮°¿«‚*V]A%ƒ×q•˜ÃkkFPµ/ý¯Ï–`¤¨„yx¤Úúùî"Vœ þKÒ¿ÛŒ¯§ƒ]b{‚~y° }ÿ§çVK"&Jį’-סl¸í5A´·óÈq„ñ´-ÛÊGN¤éš‹@5¯ŽAÊv¨|cb•¶-drþž±Ä¼I7î4'ò‹’ãigá%[cDA:àB(í³:|‡02@‡ùΕÐ皸4&ÁÝ(§ƒTС¢¢½×ž×ˆiIv°Ú¨Ì}x§.´ãˆÌh‹ƒU}Géb„Ñ˱:ôµ®ù]ã)|€³¯ëÙÀy™2€^ið^½Çb¥ª±s$Ѷ=÷¹æÐk±« ê‰Ï]­¾|â(„‰‰ìZ?Z{*!TÄ ×§gŒy¹,q¾i|E(ä~¢`#‹)0U¥qšÜæÑ±‰Û¡c7ÖÊö[ÇÌIE±Ñòn؆~E+·ÃÅÖfؼw©îž¢¹ Ž~u–JÔ]¥´¾4Åð|EÏ}¥ëtƒ9*y…Æî/ëÙ. ¤mgj¹øÃ¿°Åà2,]rA#ûÍ€è·ò›êS„/èŒüŠàf|N^£²Cð§|Öž¨R§]$6‰”èi< Ó¦á¸lUÒ¦E×%!QTÄAR¤â±ôˆ¶»pÚ?ð!õ1©mPðj+Ð) ¿ðúfnÔ±pTH˜ãúNš¡¼È}Bw¾äw×uA7yFš›<.i2ûpÖêÍk£6ØÕ%óKî?>on·#'î!jJOöðNë›+ÉÓ²˜m'åäÐ+èáÇ=“‡_&ÏîðÚQñF/çwM.6·Ügç£@ YO íÙ)ñgÆkN»0gLFRÅìL ²©ëk<)„w©Ønn˜“¸)~ñƒ³r÷ÊQáÿ NÆ‹®ã¼«Sù~h>¤Ùw¿ I?¡%xÇmcÙÙ,½kuÖŸ‚µ¡ÓA^…›€t€íÏÖyÞ.ª²öôîD,#'¸!«Ïrfª,« TKÄÆ™fÛé=!û.<{“À1=ͪ°B¦3ÀòæjJSJWìƒu‹E®ÔBŒþƒâ%ÂUv.$O öõ˜ub•à Ài =XG•Cÿ7F¤ÙaÝ0oGiPLPD…—K–…#;~XXG¦I ÿÂpÃ"G1—ò„’&Ë$¦”q¢*©’G!m…»ìh–®søsÅKä7ànVÅ üX8AŒ•ÂÚŠc^M´¾×|•*ø¶P¹ÒÖÂ?°6ÀSU)e6̯µZ´`xw7ìç1¯Dµó+¯ˆØÔá|]“Rê3´PÓÅü?S™©ÀÖ¼_¥É†’°Råø|2Š|”‹#TµGC„Áw§Ÿ°Z¤ØË {ô×>ªõs’+5+ŒÿN2gås«¸g’ºÀKvãÛBvjÚÓx:æh›bÅ7×JÒ“îqö8ÑqÔ°d•ä“Q$¢ /!5)q-Zÿñ˜¿©Ðˆ¯mTÛéò¼þÅùAÕåÜß ×sÈÛvììTè åšË­6abøHÛB7PŒÀ§öê}<Ó=[Ú½W×â™­•åV-.û@y„%2úA9rÑ3ÏïZÊ ·Öß82Y{§ä8‚UiyeÈ݈ã‡ë1LvŠgû”-ÇÆ%1½ ^¦_HX²¥Z¼âvV³)mîOZA1‚ýS ßI€`!–¨aBOS§fzŒÈkÏݦ¼oƒ{²Rö³ì=}Z(΢äjÄðhh©¾›rÎÑ|^«±Zï±Ú‡¿X›ƒk㌆¸­ßajU¼‘FËlr:Õ ð…ž s•†v³òÛ4JÜê VÁ f#¯¿µÂ›rì´…9ú&!xcí›   ´HS.<•†…8þu3G­:‡=+™ mÈu)>ƒå³ïfïŽzpþ‡æÆ{0*x‰¼ÆOÑö'O”æxÕ[éÔ  [5ã$:+bxk‘Ê½Šžöl9Ï—Z)Æ‘_Á´· ð ÒNzz Ÿ'’x°M±vD©Jó8ëk⇓–Ød•Cy¾bgúSµl |ëë¬æÉP;‡J“"¿ [‰©3ËÀ[›°Zí£ñ³É;6,ëË:œ*ïàø]ÒoD׌ªqÚAP$Î$¶øÕ°TaOQ¾GT/…ô°Ü·µiÛ?¥Í>µ\Vq/©À¼j”˜Ÿ'aûT²ð¸F"Ð<ú.qú`MÝ¿, Þ|ß}m·AQl( öÄb¾×b­Î(@yàÁ»ä-NKla±É£í<âõ¸(™ÆÚ˜15:e–q²¬¦À2g•*‹ÈÈ»Œ’'¢$ü¹¹K£¦ƒ¹ /W©¸×8áhíBê#ÇÅ:fÆ <ïJUä3î* i¸ØÅ·ƒN¸ä Y¬®ÚÃï¾kÈÎaéÇé¿7p:Ål,C™»™¼Ù¥65§ék‹ùMâ¹þ9ï—­m‹zïûKg‡EŠÎdfNpo.|þQ=|C¶’(4¥dH9gÓŒE&zijNšRâwÉôÃá÷ÊçæÒS•’yÍåc0€òG+bl”}yQ2J«Ÿ(´|e“8\ÖØš:áOØÂî3ÿ9`ÅÝ>S~Ö²ŸùÒ[}ﮀvºXXKKÎ䉨ã»–—ÒgRµIÄýÚE‘\,òqyÊWªåšÆÙÌ`É:z+¡”K2´™}Òä*58$ó‘:vR >Û"¼€ˆj5k”ò¸ˆƒ§@BËö¡3lË·¨ÌPHš› ΈÁ‘ØXV©«€#Ò1!=;ƒ4lGó›þAªº=Gßy(™¿"Óv¡V44=ËûN‰¦´ j1JÖ»¤æ=¼à,=( óìÉ᥻"f”ÏÝK“7Û&•´À0føª¬UP—¡E' Ü“E‹Íò'Ç•«Û4+r:òôÉPí?:2 ö·¤ ëµ ž’Hm"Ž©ë6ƒÌ•)cõ8¸n£®1±ýv<ËS=€—NĞÅ ˆÛãKKIýª˜Üû«]rŸ4gþ|Žm§n½hzzIèÈV€;PNÆ&éIp-­Å™iÅÔq 4•N7j啨g^8ˆöo»¬»Lƒ½?å–t©zÊ’–m MMߤОºÑôZàD’·Â¥Æ‡"ÄÂo ua뜖†cå8gþ£Þ |¢" l&0±+ž}ÆÔéÝYcüî ý?&žŽú€T¬×¶jïÂA7Œ‚"âá’1uïJnõ&}6HÍüškhsmHƺ¸ªŽòÔéËðC9±9V–¯²{zOq^ñM‚ÍÛ÷°E_DƬ“Rßß·ù ŒœšÚ²çDkŹ…]‡r @Xo§¯…¥>Ã_ùL>°gW ;¼Œ÷5÷‡¹URÅ!Qƒåwö¿"FÊÕqʘŽTª ÇxâMJîà–§\:ßôz¹~þF˜kΠ‹*‹ÐËÏÙ7.ncÝŽ_wfý¿ªl±„–­ÓqüÖ¶újç”9߀q…“ö£!¼õÌ´l9ÅʺcGÜ)ë.‚az yÞ©±Ý­…oT*Ö½KvZ:UX·Á?Ž ªô§¯N.€A&Ô›zs„‘÷¨$ˆ™liÜ'~E¸‘ëZÜŠçtœ»ÚK1$p<ÏÓ–—æ¹·zá]ÐkðÜ|üž”óû•ŒO#©"DÛnnâËr­T?5XW~Ã%¬ÓTiEÚ=oñ—­½¸-ÝltC×i(I¢\‘×Íò.bÅ“wƒrÕbØ£×'ãÒ†Ó’!ÏŽî^õu"êŒ'H¥Þu¨}")O§Ç—%ÖbÅóál¢kǯ6µ’­ga¨Êä=,ŸE¿µWQï=²oßWVÀÿxüH£·¹Ë}Û³çù|ø×óãkXBðéÙ”`±ÌÇSºŠD”n:1bWã2æ^eþ qtRHMWˆ&¢GÌï\%)0W^Œ°êlä˯œøÂôPD~ÝÑ]¡Fæ öÏÄ—µ”ÙsgÊf9²Ç—–úèÓ ìÌÃóÆ=‡ÁTFÚnóñ=›°ÜZ<Îò£JGå ‰EV¦:”YFø¼c™‚>%Âû qS%Ãü<ÛŸ¤#M´à9Œ8 Û[à›j äYxmÙYª}Õ-ıê ]w¿Ô`ùIÞ]y¡8µ• „'ídJ ~&¡pö¢qSÍ“Fv¸A¼^TÑž þ€O›½¶Š§œòQrö{ávâ*t"QGy¢ÞÞüñR¹KÖg6ÇFŠÓó×´3DûÄŽ¨6¢½#Î踔“o#ÓÈã7?èêxÃ_?„džV.’—)ˆ'äú°Ü–‚Ö—Ãtn)ªq`רOÝó’¾Â8ð̳˜öÞe ñ&‹³½`VØžž7‡ÖƒsÞ¢øuÊÉØÊèØuïÛø6Ú[³6šÝ9zòÂi÷Æó›ÊåFÈ$[eqƒõŒöÞÌê¯PEmw.PY„€¼h@шn:¤ÃœÀÉíõ;èwB0W,d«ò@½?wÉoI“ÀâêúCõ øøÃn†­j2;Ƀp^õ•:³ÐÛ²&é{…!w‰à;öYh¹qõ ,©ØåchIŒ¹‚z½(}µ&õÒo~„j†Ñ”´óHÁÍ‹.5tøî¶ý†Hõæ`Ž`>¨v÷“Ò9SšcGÙ²^D°ê©ãã½øN–Ž¥!ƒ-)†hɘ…sûhWÔ#ÝÖÇæÓ¯™É;„¡³ÒJyg!ñ ûB÷ ìÂÈ߆ÍOôÙž”b‰ti¥æéEή´Çšh›}Ñ+ˆ­^ù~è—Â7)D<ã ÷z[†‡EI6°PFõól-Œ0Lo¢©1Œ Èj<¶’‰`€~ïSéM³²×U&mk ÷Zx㉠‰¤õåNï0Ï­Y!4›Æâ¸ÅÚ•}ÃÍ·Yjëw¥çó 6‹í)ÇþÔ´t6ðäPóÞˆ3p¥ÿüÛø+½?;›Ùx ßyñüŠè³PéD¨×îZ¿¿DžÕ™æ ñßCžV3eª[ÿ™fn†¨»ý°€ 7~Þ4¦¨_!¯ø|…P úI;cäꊀ|y„ñ?V÷»å×­ÍM…o8ÙöÐð :ÔM³Ûéß°e¹J9•ó&ú/KRÓ,cä³2ª°ŠôÄdöìÎܨqnnÖ—%x#¼â©IJSùkSB“6˜o×·n;4eæ›y‹n÷¾á(4m•±¥Ió»´ŽÕ^™ßyV”'üÏÏ%Ÿ/ 2¢~‘ú4jv´3B­¶Î_Ó^ú|É«âÏ^7Ç/#W§} 1†Æöt …¤*õú4dòXí»I“b÷…àé0«#,Ô€G¸1›¯b¢–káè",!Ì¿ÀçR˜ð;Ù±'²8ç—ô#º]óZ~C§µÿ¡FÇÈг-sÇxÕ–W̉²\Ÿ?jo[<Åê÷D£º~‚·ãÉŸ-"Ôξ³—¦#¿³±bä×Lª9Å`Ù ©ÈÒÜm2QY){TZÖßV‰Ãˆæ²¢¿ŸÎä{Â3¦.*^!j¢úFsC²¤h4äõ2ˆR|ŠW`¨ ì:à¹è0êXmÿ¹­Oø•S Z`ïý_(ä_:~ÏÉyµOу^ã|!u cW=»I0díÝœ~¨ª7;(‰ePù²¥zµÂGyÒ>®+bV³+Él°õ&oj‡þ‹¾7Rañ0{¬ìF}“¸±¾ë˜DÆnkªÁxGùÉ®–a=æ#Þ#À}I & Ô„ Ïnhìö!«B!WIÍ(ŒNŠý³xú!ÆŒ\„ïƒpTkL®¢øòÀ-׿÷ ÔùýüøVŽeç¬ñq’r æóëÁxªÇiÖ>û6-†ÝÂ+[¶zFSìLãÉzÕÅÔ ëX`¯M“2¨±1ðsÝÛ ÉÉ á€P!wr½pýÍ<Ĥ3IEžhÏjøˆÇ°ÒRØ‘†í˶r`p€¹%©""пNÐ$Ïö2ö*DZ›´°¦žÕÐ_“1ƒo„€íF¯Ì§5΄¥VßB¾¡D[wqË„(E5X¤›Ÿdø"Ðé7M”"m/_ èÖ¹ìzÙ˜¦=_ðA(øcHû9ð*i £ª$üæUŠ“ZE!mðæÆ  ¼ýS$±>ÝÎ/9VYöÚ§†~­†€(íÞöµi",§Ö¸~ký3˜Z¡º"0&\~¼ [^u‰”y ŠçÿÆó{ó•îÔ1¢À7ç§Ó®ôîŒJLÓºbê{ ø<ª9ªDÌE{ráwÓmI¦ÈÒ‚tbQWg#po_}½‡bI€)¹Öóœ§Ï”²5vLËÊDkQÒÕì÷{žÅ Z§"¢Wfa\ÖÉnï€5J«Õ4Фa@Üø%µ£¤[VX•„Y®D'V‚üíÞ ³ÂI0"‹.”!´öÉi ݽo¼¤úÂa8´„£;ÃgH›Òà(ùÒép ì.Ù mKÄ©ÍÏk­–aË9Vm{ÈcSE +SÇ03›<DûóµKÍ‚äýðŒ7¨ŒÌà“˜M M”S›ÖË÷ÍetL Äbü [`€ª´LÏ•ØBœÉÕK ê8¿+ñFA]„)2åSÃûC¡6ÏN´’É´Üîĺ{EnF+JÀÇÁóÐÁKuœ¶Î NÉ@õ‘¼ÐÊØßèiq²UY%é¢.­)¹ô„K%6QvNÏ'ë^ä8Ò}·ýƒ«é9-3Øk…¿ô'Ç A« ½DŠýNeü\QC9ôGG_sø–-oûO-ºÓ¹*<üW ¸¯kÐ¥@*3<±÷5Clèá»ó.@Ã&óļû"KÀJ>þøí6œ$ynš+r4¨®Yå ƒS"ø…V‡l-öá­.”…¢jkk4ȉ¹Î}ÁµÀ^žä¶/\B''ܸ½ü îêÏãÂt¶Æá˜¾iÊ}Å­y˜ÊkzÉl>ž(5ÍaÌÍÿXÃ'ÛNsšF}ÆÑ!‚î>5ÕÓ&ª*y¨V4Šg€ "ƒXCë*Ћ†Ú†u‚´:(VMºƒÏä`Œ´È9-3óŒšê§‰Ù¿í“ÆÅ‚WßÕ[¦´}­BF÷¸Žüƒæ²Ž)Aa¯žâ¿ÁOMí4{]Q**ÑC"¬ÝF+àþK0ixXW¶éå)Ev‡ 7 ¨šl/ÍРÑ*Š¿2}áËœÉUc^ § 8ªeÅÎ&ÕéF¶ëW åîš,fÿ- 7¸¯lD~¯TœEœë5,7 ›˜€œm¤þã kæÈó[öñd®KJóX]Î4–+^“¡m¯˜ÛF«X:ìÎíý$ôÚñHÅW‚nÖ¨§3S1¤ÓS‡\®gƒ2W´½Àè–ïBhß9X Ré£Ôê·*vJÊ´Œ¥¯ ã/J´Ä¡£¼>ÂÇ`_+á5:pÜ8Û‚—À ö emà!ä]B](Å›ïÔUIßÙá¼i «2F@u Ûž^õ¸ì`+kVcUóñ Ìô麷½ái¯=bdéúBâ‘êÇN§ÇØðÏ‚Î5L›£G:2ó.ÿ‚‘Xì?ð%µˆÀÝzìj4ƒMü¹A™ø¢nr5žFX g 2m8ò‹?sñ£ã–C†—IF%6À¿Jû¦ô2^_OÀL6cÕÁ;ÁFî}ÁbÌè-êV ÚïtfµÞ†Lð@Vʹý(cG·;¿¬ø±p©‰<ëÏ1+šBuûØ9T ôàì¤ÝˆmÉ…×S¶f ÑÎmãÕ5ª–is—”¡$ìÝ,oìPÚ¯Òüõ‘•Ñòw!‘üVÇØd­Qj­¯À„—Ý0¬¨÷NZ¦°ô: Ö|Ï;ô#J¹jÓÇRåVT•¥—ƒuzaì Ó$F»½ ºŒQ ¯!áWA¬l?ÏàD¨rkÑZŒÖS¥â ¥&5b.`YII>#Ǽ• ´öYðÔY×ê—àñƒS_šïtMAá ; h§§ÉMR&[~#íÍBIË("w2¬äéÚ=èÎïˆÉ Ï„Q ï¿9hK`&N#‰ù,ì4”ÿÖÉÀŽ ש6cnó\)ߨþÎS‡6Á¥LNÊ:mR-Ä]ÿ×_eÛŒ*úÞ¼¤MòͳÔKMw¿3W!ÿXÏÖ‰ž‡·£ýEšÛ¥¡¾Àã•$š¬ls–C"šœQÁòDÚh—¿|2äÚ¤¹ãFÜä|]‹-ò]1iâYÓn’ŸÞ¹V4Ÿeý`‚O ÐHpÉÐ{!m±»Ç&pxÏdFiŸ|'@ýåÅò3 YÄûûMûóž¾e"rpì.€Se"êœÜMÿæ*ÞlNÁàÞ\~Áð±ãc2:+ªå@yÍkîšX†ÿ j±œ e§ÉÎŽ!Vi/y|n¨l, Û¹ÍqÞÒZÇ:st¤Å_i'½3Ü@޾pn”^À±#›9ñ&&ÌQÛ‹EÆ²šžˆ™—OZšk¼§…D^ÿ$£™€Œ3®Û@ßn!°ºÍg(G¸ý™SÉ…¤…Å­ÂÊ;Þt³<’³Fв®7—Ñ;k—#•JYØ¿µW´÷U˜St\e%‡~ 1è›è˜Ko©ÈŽP† ÇùÏ*’›Æùkž4×1~–µEØ£jM´«xæéΔ¥ñ­gà@ý4'*ZU3oÐ÷H~{ïs@IOóXŸ«ñ®„i¬±<Ë!x!xyþ¤Óž1þ'ã5ʨ¦Â&-j¶ü®p¨ïµ‰ÅaâvêaÉõâ‚£ð•ÿßñ@·psb°§ÑiUºN‰~hVhxwÀwIè %k{†·Ôõ”g­Ð•Œ¦öÝÁ†-´˜ø†Í»*,á&âH÷J%î]ò[Páºv>jOÚ(¤neÚœ/÷•0`a³Ö 43@ýê6ü±ºÌ¸îIË p窳¬Š dPšâFУ‹"‹ÐLdÝ{TŠ &Ì|GÉ>7©.¨J³Öàêll­1/ŽÉ*Õ£‚–ô«ÊFìö‰ÎÀChPßKžn)Cùa\Ò ¼ÜðqÏFˆtîÿµåD,gÏQpë*Já^‰ V™„ΛÐí %ÕÌ3Ghg§gÄŒ"·íòbQ~w„ˆ±Ö=‡ä5e—Óã}䙊[èÁò° ×xgUO»ê­_ºVÔs,ãŸÁAï§ÑÖœÇñðµ@鯮[oö«Û¤a° ’¿ë÷U¼o‰*ŠZcÁöýs2»½Mœç3Íêä?Zo”ÞIRÈ`'-+]"ñÁë /â<œB.ªá∠ÉK÷¼m37œû )jcmYÝèîfüD±ø­›ê•š¤…÷˜OL§E¦t»Föœ¾µyÿ° x!>·Ü‹¡Ê¢ÂL®µÇ`G)f݇çe½ñJÜ…RÇìQÓz¡ ¶WÒ^L@E€›×žƒÃcóøë³Ô`»:)ùÌ -ö€ÜàsßÁmý"…ç@ý@ÏDœÅç…CTýý7²tkø”Ùñ-mÊŒ¦Ø dˆ™Â$BÔ99é6å0™ tz{gêï¶!ýÓ•pnAéìªþð©¾NåìÂïÄZ·’¾®H^L¶3ñê“+ãÀÚñ {Zv®F ƒ`Õ%±xT•z«X/ë·ÅšGâd¤ÌÝ* »×g)X˜Â ¶Â¿ôŸWÄ\ËlSW«A².=’Àa³¤âêbp•^×¢œ˜ï“–óâe¯f‚ÛÇ„œiÏG^]:Í h×ã5&PTÁ“Îdª‚Í›YÌÆ¯‡›•µØŒ·®$çÖIzþ>A#Œ¢ŽÞnÝca¯³5j‡;(®tÈLÊæ"0 ;þ©Fß`¦î˜Ðáµ`À1ù7m ONš‡¾ \ßD¿¿È:¼‹_[^–«ˆºÃSOmP{•º5‘R˜";À@ ÍÎÁK  ¬ë’JÔ®±9}\=”9¿ä#¾=~ïQ|Ÿ€Ã&ºl,ªŽ.ÈSºÚ÷ü‚iÏ1ßsxÒp)ò³¬¶“5ÍÒŒ‹ƒ•ä¸;oñ-qï܄놋†›Äï/F%V½ ‹×ñQØ TžödæâDþZ8ôÔó“H¹nÍ>q²r˜$É.º«KÒÛÅö…ÕµTÛ› þuZ˜·+o ?üT@±d|§æ¢@O{¾6ÐþóŒh†G\–j‡”ê{c«1¸M-/Zѽ§~½pƒŽÙfW*é‡ãarPæKÑ¢vƒ„%4ož ‰-V·rì_ó.ú“}`‡[ÉÀ u9K³©XÉ4"ÇÏ.·>Mræ8so™f h³«†^nd6JœF&ž†X;†Ü;àB2¶á›îBZÚ¬¸™Ì¡wîÊ}ĤÞcí{E1½”|‚†n˜oœi»ÏH7u B0bÖûNå–C>sd°=I5‘bà`¹MpÂ;¢eyBwWÒ uw‡ðݧöM~¶¸£Iæ|« ‚hÒ8åRÐâû€¨r!ïu¸_a©y–èÍa$Ý•8$³¢ ÈŒÙJNµ«¾4T‹¡-ò0ÕãýŸM€mÿtùøwæA)¹>d³<øË:Åøî)-l°=Hö‡ÙÞW8cs\ ¬ Ø·9”ßq”m!&Nå7ÉÌã±BAïpÉh¹•5Tq7þìLº^Lñ#ëè•¡e_\‡‡]ü%˜Çàœ§ué ž¦þƒ™z­K±]'ÿ c"Iš¥5ØØêÊ Ò¥9œðÁ.¦¹¾"&9w¥@Vro H*fdqo*eßÛ¸ëJ1úcuÙO„×ÃpïVï™ut/±ãµCydâCˆ¯›‘›˜­„¤ä¡Õ¬B˜ù³ŠbLgé•ájde5lmHî«Û°¥½q´qÖ4É©å% Ž× ÉJ!ßûTMèø¼ÛÞE ÉXàij™·~;K@ ^Ý®a¤'~Ý.Ñá” ö~ æDú ¼Ñt¶½…QÕ)ó­¿0Ò¼@Qhxö¸r`++(Âjqqi9¡~æ¾ûªã‰¥­¨3gìÕÖ0©‘±diÃì7[5üh†ŸwNýînfBȴîq è~nœý¯Ý}ÿzîÎË}-Á§+ýÉžÇõˆ°Ø¸TÿÑ;ô6T-«ŒnÉO’½Ïòåã[ô,Šf‡emBĤÌswè~‰—L>*yy;ÁÌ3Š¡Ï4HÝÑþzsÜÚBÕN³{³ƒs&™R6Uܘ«6öÂÂ%ïÔ ýÍœ(¸©÷'pèqZë5žbäÍôLèÉ$ñýÉF„íÖ7ˆ©g„×w_k/x’8 ˆ¥¡TŠF|è õÜ] ÁF¶F®´{`•þ} œwå"“ß™,‰¶i8WH©tkVOˆîÉtºÕ!\ÃTnI’ïÒx¾m"º3RZäØàÜ¿µ`ÏÐË£æ[›·8G…‚qÕÅæ“#ؾÜTf­lœe±ÁóðO Z´ý20ˆÌGȽ‹£k¬áär2 r´wˆOŠ—!•¸Nb5µÏ…¾œ6D•‹h‰íºWë9Í`6HÌûöç'犸—.c_‘#ò™…Øš°Môó†åø¹(žªQ#üKdöÒ—²€¾ˆ{fÍ«½úä{¸6”?:Y åõ˜Ú:H×UÚçÕ•³«GGˆño{Œ–>õTúhŽ‹¾Çñ‹¿æn#3´çc‹9i.Jm15ƒt9íg.ȉý]¿ø¨lûÞI ¹@º‚‹JŒÜò2ý͉s…$ñ×d?{™%ÛIb€pB'+yÖ™oþb€ã”B[Z9‰Hã³ ¥Â1õ #Å{üè…x¨u“í»ïó±ßë+2c™Ò­ÆMŒ ¬ù¹÷Dôµ—UçèÿLñ¿—Â?µ´ëZ½5ºb‹¡ž·=!¼n¡nÂ!X™›Aw­'ñó~›Í‹-¾TÛ£Ù|ÒË=ÚqÉžiið 3©1v’^ÖX[8`Hµéò%i½ÉÈ~°yòÏê_¹À©ZŽz]"Ê¡òDUm¨#»3„ÌH™ô6C'(—†2ݬìHR^2æòß(Y¢6­°çÓ[EÙ|NÞ¢{ΚvÓºÞ† ”mwÅ@]Üœ}ÖpqÁJËÇMœT–ÿžZ°ƒ]z­ä±ÖD°]0_: TÇ ¥ÐxðÅèæÜ?fäÐT›“è˜J¹ s¸(ãL†ñRDè” /›*¢á÷u棱ÞìØoàg:˜EðWï‰H´ °=0@&Dm 9s¡ŠxePM»!tÏ›ý°.ž*ÒD„(¢Þ|XÉzßéva›)6(7ò¿6®qÓ¯®5„òCå^gW¿ùâ§HÈS`<ÆæÉ2ý:Aí÷{#´çÖº»Çv»_}$¦·ñ ¨S•ÅN ÔV‰ 1¸F¯$'¸–›#„xÒùrö¯ýýÞÒpýW]w5Þü\DÓ`fj4îX³èIÎ%ÜíuÌ•çË­tßÊEê×ϱ+ýÄgK$\.­"i‡˜8¸M|ûzþ.µq õPáx­{Z¬ƒ¶w2Õ㟖ϞÓåÕÑÁzy8¥™šÑs¤p#r˜ú·™t6ÏP¯yÛé϶a0}€‰>«¨ Vm!a-#kß´iöÒÍêUd’—äÿÓC“pÁ©†!ìŠ:Nóaû²)`üŸ9¯¹Ä éÐò]7WÚ¢U˜µ]r¡7ÆrÝYoyüpr%ˆpoU[YR‚&;1÷dƒÿ=“E™‚ÄWC2¨¿ 0ô¿þ¨«€öJ¥t(Je7ЋüùôúP·ÂZ"l<”nèa«p(ˆ·³¸Zg8}™2¿¸×Òîô@a„éCç±,™û^õ‘ﺉü±øRÏïÍ;£ñèLCc'Kˆ7p,LÀ(!>VàÖ7½­¦Ýåì[ò:§î%¹ ŒÜíÎÁ ±÷(õ~µÉ1ïžWó§°sNÍÆmr ­…qp|öÚh}êÊõû [§' ,ûäXþù,Ç)&iºÃC*éNtµì|—}À4t‡˜£D ÂÕãf;ƒËÈŒe>טç{Ñ÷¿ÝŽJ“+ÀÙõ}Ž0#ºª~ô°ì\ù"•Æ›W«Þ„Õvþ vQá”Z¦=¥ìC^-’à—úbòAè6R`FªƒV\êyi%/”-q©jrŠÖµ}«t¶#U,Øò}Ž ( /;Ö÷åf¤Þ¾%³¡4ô˜L Ö"½¹žÂja>c¶r*SE?î âë‡4tµ ëȃKÏ/ºå™ oq¹EtkKÎ6¤“X®IÂÆbן:Fr éç"ý:ßÞØ­€Ð])Ú Ò5^ü4BÈé ¾²[BsRbQ¡¯ ØcÔ4¡A=tU>lEa9;Ý÷Û=lÈpíö£Îþ÷èhv)ÎF¯:ùN {ÄV 'lÈùšò—4ìI“N€§â¤(T'˹m>KeNj >f»Œ‘)½íÞ/(n·Ò{òPÞß1û¯fUM|-¦(­ÑÕô\ˆgʦoßh¸Ü ¶%€‰0÷ðÔ  mc[ìÅö¾(k)_éQª[7“¸üqlD¬ÿúÏ >0?Ø_¯ƒ³É ¤(bÇ -”Re™mËø“g?©"džÉízýausÁ a$Í'ÐE¹Œ?g±vpÈPÀ x¹\E›0§‰Ò]¢ 1"J?Ÿø¬¥67lä6§ì}"cw¤´µ°±þO^Fá‹“š±vŽ 1¢ràM7ƒ:vhé·èO©nëjað{¹Ëè¡§¨ 0C˜Š3Û”Z %â³&I’Kxf{Ø@Ý…SÜ: 3¥Všä KùKyÉÔiªSF¹ÿƒE"zs4ȬӴ B¶V*rQÒ0y³l>[Ï•?mgJ¯;X í­ì8&⎉’ñÊ¿›!xçN0Ë +£+C^„'IS¶á0üÖ·LES¸%QI]­»ëH[ð6c°ÅmñH§§½WäN/\w“r4ÑLÂGe`QAZ:EQˆÌf9¬!7ë'f{5nÿÊXn4À< V<7%‰]˜\[±ÌÀŠBBº{ £MôÓügXxÂ݃¡[@ íϤ#ê=+°ïl<Òàߺ‹¥Ø{ñÿK…ްT\E)³zX¦ë0j‹(‚ºòX<¯i‰=ö:p1i+ÁësT²äæ/¥™Ø9£¢–Äa«ÖÓ¹µU‘¿Ž¨”G4kÏô™"$zz>¥ªšç(ä°R …š'Ï@¹E`»oÏ´½O±Æ\çT6¾ª¦ØtXÌòÅóÍVÐ Ì/bÁ¢ú§cW¤7hkâ£whO&˜¸e¹[p\@áËÁóºûyêñ*2Ç_üSÀ’”%Ýò ëYVÌÆ=¾Èôävœ]þP œ«N,%fUËï†S®æL‚Oçä,ú^Ï3¼béǬ·õ((#½pÂÂéó&¢#7Ö†F”ÁUEÖ  œš¥|ë¹ßr»=»údÌ„äý8{h íHWY#›K‚Ë^Ì<¦%—dF ÍëCYŽÂ$£€)V+Š|ùl» ªÊóZ¿#VÎÑXŒ$¾§æ]sË?¹,ªÐx%Q^),úôÂÉÌ nè_EN ŒÃË DŸ­ÀǪªÙ–_T…²} •nLlu¿Xzï] ñå&]„…¾h$2 x5õç»–ÚDK¡þ@ì+ 4‡‰zÙØÏ^ oê#$˜C_çGœ÷Aªo|3ËG£Šíç=‹{å·Öu– *lõQ–»Àì]p†©¡¶ é'rw¡«%‹½f2ôå6[‹ÞÔ9h[Œ€/ÈÖ÷ -ði3¨7Ý)¡–Ÿ’ïñ”Ú%Òvvl² bžÝå @ß ˜®å¤]ÿo¦0‡Ý€ý§ú­þÎÒ,¼Ð£3\ÍwžíÇ£ô mûôäåŽçÌŠH Â+4È`=Ôég‰5>“øgNi[¾fl¬íäÊ%-ÿÇ_~€O‰[ÓµQŽ4™žxÙ£P!% ·ÉÄЄy !5°¢å ýzÀU“4žÐ÷6®6a†º’¤ûŽ˜á/úœ>mGv¢8;z߯_KIÓø´°´.Q€\šº=²F=¤º\<£*Bfo¶Â·»µ’©‰úø¿×±Ó±‹_F†aöó²k+ß+îpu‡s]üÛúÃåÈ;|ãÒW´ñß(ÜÆJ I«ƒ¹ýø÷üÈ™}¡ºö‹®ïë8hTXp“ÃclÂŽ!u Ý½ÁA]É"UÚi2èJ}5‡p™æôÒ—«‹Á´<6öÓOAÛ¼¿²ÛÒ>!Ó£’À@iñ»es¤ûòíK2¨ßêP¤ì¦c–8¬¶•ßl+Ï E+ã'ÆeÑüTI^¿Gþ2ÞZÕMáèy9*#†xy” ÷ùËË`#hÃ;XÉ&+ÑñÂAGÃf ¸š/ºÉE‹ùJ¨‘å²³cbös$vÆ5òÐØ¹Ù•|Ý ] ·Ðù÷‰Ñ]†d°h¶Ùs}ÎÂêê g4KŸ$±tÏu½°º²*â ?³ªoê.ƒº>ÆV—‹ÎÊQ>ûôUt˜Ô?~ÈcL×;ÿ>YTŸUZVÖDDḺoˆÂà…IUšs)‹Õ:Q!Ï%~¢œ!œôëÅñÿ0êü—0oË!fC«Üf›òCóÁ†žˉGwØÖD&%ý™˜¡³ ‹óýlúøv~R›T<˜,\­âÍÎ5ü@Ù“ “„® Ï52k¦o@áÛï§ÏøøsO¡7¥ ‘¥„9CÃE¢ÅÆÑìiVdd"RoÌûö­@öä Ìå<Cøq—–yº}jžó£=PtÛ-´Þ+ ˆÆ¬µ³Éée—"# ðäZg|giÆœ Ý墑Hò¼ž™»kö8 ¤l¸žË^kÞ†.†VIA~ †–„Ø…Zn¿Û’«YY…xO2ºöŠr~eDÉ`ºkܤŸz\#.³«]Ü€%åL@Wõ«ó9Ù 8¾wà ¦Æ¿‡ÐKQˆ›¸ìßTFƒ@‹¾V˜‡ÈeD«Ò Ñg-{zˆ!,¯ÊÄ„¹A/ÑXYz‚ç’taqd!@c^PµTxˆ’|ÏŠ-ÄÝ__:ÚÍ[ok¡5¦ÙŽéá5xnÆXÖ½Íu]ªðm" _”¼2ñ ² â}Gð¹blJ XUª>‡æµñÇîRoˆ!ˆ‰ÖË×47Í#C6\Ù3>•¾, .΂÷ÆÃ"‚Ê ¾ÉLrÜsÑ×O›ˆ8«Ù;ËÍnó!µcŽË­ºÐL]1ÿÏT«è4f­ÿÈâëØfÄÛè•ðô¦Á€–N 0ȆQÿeˆRô–¤“CE¯iø‰å>ŽyýÍ»¬IææP¡'Žh+‘”ÝX].)“ t–[˜ŒI#ÎÔ3# 빕ŽPÐ2÷uÄc1wÓ¡à ÅTý`¿‡_âï‘ØT²á§Šƒë«ä´@É'·ÏS®á#Ò¥2´Ôú ©\M%wGƒ 4w@ƒVògkØ QÜV#ÐC dÈO`¤ ææ¬}œ'[0îðó)•;ÉÞa¸?V•‡ÙE*m¸ÏÃŽ]„NðÈuÝŒJx–Õ<‹n«ˆJɹ™»÷FöŒ´˜4“¿´$1n¤-ÎÛz³XÓüÞ…‹Øk^ÈæAR Ðð1~¦U2à´žB&~³~½ó3v-ª Hν)fê†f½8†Ú¿^HEëû[AU-äl@g7³T¶ªh*ìÀBz+ÅùÅ9·’vß²C$!8R¢C¿lëõ¾À–b¿ìÜ)ÑwXÖßHy×cÍ•s•ÎÝñ? 7ìÓda™1׌9‹g€›¯cùo"ðÕ¶È ¹T¤Ð`¥Üc±ØEGuÑ |¡C”eVL;ˆµ‡^?Þï&à)WäÄù¦r+ÙùkFæ`Ÿµ@¦Žùó]ÝQ“±ß?¨EÀcM=¢®õÂý~§QÂqøË…ðëUi¦‰‚—DVËÊv./\…Ç60·l̆Äj‹h°BÈ^Ó0Ü÷%†²+kvX/ãS âÛKíª?¿ßHçÂâfü£.åîxõž¦~<]ä&›xÊž³?~ßõ”RWyôS 1׬0¿¢Ø2ðãÈzâp®R¿Oéð ¥…Ššå†nŒÅÇeéÙ—™Ñ½f'³rZúrþ²‡ô)Ðf¾+Žéò»±µOèÎ_Sýȼ¥„ià§y…¯»³"cù·9´¹á¿q@ï]ß›=!C/ܺS;}Yü› ày±ºé=È·¤C/ì1m‘Fœ¨ œˆ£‚Ûu$#S!ò—y…2e,‘¨ë;ÀoVà?J†MëACŸÍü¿l,¯t·Ï]ט€žøÚxÁd@¿L©„Ù%¹hIìÊc#ã8 å•U"^Hd‹=NíBïO¬”hÅ€˜ð[Ϲ}檛7Ƶ¦â2Û ©)˜ôO«%!Öy^ð^=·ºŠÙuB…¬êé{kÛåÍaÐ^¤iïÑð™R}kÚHU‡;Bß7XX²@$wø†˜"ž-ò›KNße^L$À;Žõà ¿7’¥&5 }jyökÍÒe»•.˰ç§À®¢ÇœEb5ÑÏwzÁ|WÉd’$³×­ITã8[DN]F‚&ß/­BJ@µ¢ÍuP|ËÏîƒøŸ:ͬ]Q1~{,(Øù®óå±,²z3'Í¹Ú CšØKÖJw”®´ýz/Ü †Ä÷ÿ˜ÞáUË–|VL§æGoOÔâŽϘٮ…îëVE–[š¤ CmĨeÀ!ëo’^wêrýà‘߬éùäKÔ í¾þÕU÷úí¦q˜º¬JÙ䆢 £|¸e[± Ÿæ†§;¨„û6" Ñ4®36ÛââÈÉm§Ë)!r˜6¼š.ç“`S{PФó–öÔç)Fv¡¯ºÅ¥¿<΀ä½ÿj¢,Ù¡¹ýì# C©HuÛ[ dŠ­(­5Ô!h’PD¤ZÁÞ.º,LAïͤ^ô&1f.Uu#fÐ fªA§ñ»œ˜å(Ëí“j º¢÷’“y‚9x?†…‚òù‚ôI^;ÃåüÖáÕ-&· ¾v‰G¿X©Š¥ÁäiüøÊÈbë_š…•cö†Þ ”‡ êG6 #Ñ"Û-½L¥ÇÂ3@c—4Á>:ÈÈÊ Â\ ›=ÿ©sÖ¢È ñvó«M±­?88OÿÇùK1TÉNÓRO}f@Aé;Q›´ª+Ìc;òÒC<Õ-2$OéMcjö±“v>ùÁYkÄ7ù&Ð$ªÇ66u•Ê4øŠR±Jwüt¥ÚìÕâõŸ_ª'úÀçuw_Ö$‰­P|·ÐfÚ…Šó-—à‰M|E€WRȯ¨Uôn²ÿ÷ hLûäÄ…Iƒ îáhŒjiõâX{=»‘¿3CÞF—päYŒÖ]äJ$)=ƒ^M#¢H%?fb»½E‡ô h|ñ‰“ñº¶Hï]û®fgÚ©Ùý‘>,UGWnXG¹ ¦“_ì…[vZÃz sÎÞ2j*žZú“| ©ÊÙ9£TÿQ1°¤ÿªð6(ÔÑø^SCÐTY²*’ç1— ÅmPéÒFà nå£[ÍJÕ™©™ÞC{q­kï>–±uuIú…ÀŽN'r”_-RÆ€»o¼$ýDÓçB[zF¥‹Æµ»$^¯ I91¨/„s@»þýEw´;¸'B„à›ž9¿¼ }P(`rIPa|ŒÙ÷"µ"`RRùÔèt>Uá3°wôÞ—†Á‚XèqŤ`##ÏJçêµüæ¹È—¦ßvÝÉDűCŒ~|Í“Áø®AeFá†jpÁ«„*¦às÷¢Q*ÝYçQë´7½‹°þ ]³TcÛæ^q|¹ïÉðH¬²_t¦3 S¼ ëFªûÕþp]ãy 2’lÔx2Ö7PSÏæC´ bÕ¹zÊoĨ`êk{ÁæÒ^ó7˜Ð< 9àãð¦;F1ÔÌ>Nü£á¡¨»^¢x¼6+ûH †êЉö#ü¤ÎMü|gÛHjwrY樂Œí‘¦juÓ=CCÓP,Pa±hÄ 80l¯¸ÓV¥pma÷ò#.‰ªBf>[±'©”G÷˜g\)¸q¼n%¥–`þͯ… ¼„ž¬"2ÏnŠnÍ=/Í9DaØäºZy#í󢓸[¾ lÚ‡,ÕQJ®É¢{È8,¨ÕWXyÂÞzŸ€F!O8{Œ‰æ/­°3À±X@pþžå`ß®UUÚ—ËÆÐl¿?•ùÖÁqT¸K¨7°~Y Ž‰L‰O G¶?v( –”Ë«°‰oFÛ,¿Ð#{¤õgç!ɶ’œ“•?¸^Äô–³H£å¾âá­êé¡6+òÕ/¤êí)e½mìmË€¹)ùp†üÈ¥ÒcY˳ıð›÷:}©˜õ§8å\~§hô€ˆ0 RÏ[X !ØðÇ’]¼ð{‡÷ju'Ë—M_ZµVý¦5 ´F{q åaR\ãªé¬^ÊÂÑlÏ|×htLV4%/H‡ ÝSl7gö×l—Â0䨌@ßx"uéëÿ{!·€ðz¸Ò)¶l~ ¦sÚª¤«è„ ¹ô’¥Hé˜ÔF{q?A• ŽH*+”H¡åƒ¬—ŸO6@+añÝ^V]æ¥G«DÞšµ(ŽÂ`Î&.^3s{ ®}üÜWÂê?Añø€µüƒ{¨Á\Ë`s¤T,¾> û_ÆKÌîÐù›=ìMÏúgñ*²ŒýÅ ÍÈ=ú©‹8|@PãnqfðŒÃ xf3…ô¶f1êPî¬À˜¿Q9¼<ªèÌŠlÎ\©†çš=@Es,Ó12¸Y÷«h'©T;h‰npm¢Âä ã\ý…¤Ä‡öòÀšŽ[Õ¯?lyã`.½MûKé&-™Î`ƒ(U&5á@sƒÔEæB  ZŽ„§Î<î’{²ŽHL+Yçü\ðØ™µ¶Ä3wã®m¼£”?Ï$QhiþôW÷$†àÀ`dG#Èf÷Ñ7Há€;ßÚÐø”ñ+¶,X$WIóú|†q XÙòlæá[#ãê”:|‡„²àÃÿo”ûÿˆxÜúVâSíäPQž% \ni¹…VøÙŠ.{€×V(’ õíê&t~Ñ$á#£¯Õ‹rцï]s“„e̦ÄÖ¸8¹y½ð:õ‘à+Þæªdl\^ý‰AsÀ3øEóŽ}CݨeÒ‡…o^»q’ï='Ýqûáp]0ÆÂ,(B³¨•_æekø¬NFŠÐ91pMMþè7Uäï»rjÝVvD!Ú\0d9jNöN^ØlJÜÏø$CÃÁäõ±·¬¶gbõ½‰ovÈ‹€ðãxqð8Ŷ|Måµ*¨•\¸¦,Cç¦^ºïcyÆÃ;­ú\»Î^¦‘¡$t³x‡xÅ©Šç.E·á¿2RµãÙ°b‹[PÍ>…íé«v÷έ¦s÷ Þß¥àŒ€ Œ;r̘¾B/rè‚(™õ|ÜžªÙÈMªÊõÍhæ.Çdûüov/“©•„ðÊ&î'ÅÑYb?lëÿµmxoWϾî¢j¸¢‚ËžÐIY$'¯xŸg AIJv¨ŸþiÃo˸|´opËøšCùgÍOÆ«ÁûB qÛ&3ž-(H Kqÿ¼TKsðEr­~+±rbE»8¶­øÁõtnü¥SäÓH# 1¢R5š>J?"‘õ†ÇÞ„§Ã‹~.Úg.#>’¡²jåLsFy|‹»J^HÍéFéqÿû Nì®8_q·8SaìRw¯?ë*4Äšè‰,ÍPÄð Ð7½m×*_Íùø,nMÎ{s÷…ñc’s¸0ÿ,½ìp†Ri DCwÚ°-ˆ9Ý”|£+!û–ÕdÏ"ÇÕ= #n9™—4T[Çoݨ+€ßøƒ1E—R`¹O•rxt¬‰íåéí÷P /·Dßbް¾tUyk=˜²–Ÿ¸°QW?Qec…$s ˆ_*5þ'Æy½“Ò´¿¨ Ý“­I°]_úq£àñ8~§‰LL0c² ƒY|¥è”{=ýQÖzN ßw­"¦†Éñ<½3 „b¢ &™¯¯ÎÝã“sR?[ÓèÀÖ·Bi"ŒÎÍËËê—›ºÿs*lÆ ð¹è‰n¿¿"¸.]ðØ‚E:–4 دPnW;f+aGu ïB÷Ù·K£©$ž¼w¿ìY2åI¤éöåþ?>ü‰ ":ÓR:ßÁú¢ÔN;c‰†5(ö™÷užDx“ªcÞJ/†m3#‹ë”·EFeõá‰ë]ǹ9è¶·&òR¿:™}çw¼üQ)´c¨¯ ØMV‹Z‘;§E ™/ ŸX׸³VWd.†·à/—ÿ.;Ø=‰ Hðÿ¯KœåÆEã¼8-¯xŽù°ôC{¹Î·år~J‘`8¹TûËbù €¼«îƒ)èÏcˆJ¢¦JŒïêžëIÊZ»÷ç§½GÎzú¨¥’|‘i¥ëj#@KW¡ô[ºÔhƒÛ¥^PÕ÷º‰ŒõêøšZöí£'²6&k^$§u vDî°¨‹_“ÿ…9oŽq TÍ æj5TÀ±qµSLù_ûÈÜ1š ö8¿Ï]ÍéØGŠ&`ÿ]0É;°.~4ð¬†)_!w{èÃŽMk÷^†\ãˆW*OÁ®fЃ«cÃO3¶UCþXñɬDm•ê@}/c1~Án²VìÚõ=F“4›i&Éžu‘?˜ñsØ¿ÿI?Ɇ>S¥Êìp—ýdm±(:L(`Âèa4­ÿ/{®sR¸ZRrßwq½Ÿ4Dh.ü• ? ‡ÔÜnQy "VÝvtÛÇ£ã…R¤'‰ÔºFg¯üöTL‰æÚ˜QýMle¢ÅS˜ ð Œo£¢íÿÏZ@O«o)]kåí¢@X ÏÀ^o7@ÃOÁ2ag!ìV©\1:(óè ‘fˆ–5¸»vžÌQ1ƒ–¿2ÒÓx2lòy©i ÔIR ¸Œ/¢ ÛšSà/7Ë2Zþ¬î‹hã[@aÞ¾öªßÿDSbVÚÌæ£]EôµQ,ûa“÷¸ùóç5¦ªàAø˜ÃœD /\Ó<4U;›~cÄ*¡âÁ×êLo·;϶­]ÀKÏ¡”_i¹ü‘®{Š—:)ÊÆ©T._1¤…—•§#Lðœ¼|7j4(¥cƒGÛ#UB“ü¹ªªUË8xã6ÌТ×J;,ëü ѯYl„Ò «‹taŠPº³‘Ú} ¿Y4ÕÎ"«fËŠqÕöØa;½L UA Ï?V©U„bœðe\bž|ÁïFs(hüýõ®ç×XNŽõàÒÞˆ§‡ùÓþ]t*$PµU¶™<¶¡‹°äjhк•ê_«>Œãcü™)Ý2+ú€ÚH6¶2w¢G/ò7;E&»BQWj¨ÝL`»ÞK óœúÉ+LCÚEeýåC‡à2êUss•µ7ÂŽîý÷o”l‚Zc¦+š4¦®ZÛ'@U‘ÉŸÚ‹3¾„”d iO´*ùM)²Xœ˜A™hwïR6 •JË6…WêB Œ ‡gå…úwX…gÆ¡°Ö†nQ|k.Þøež™ Ý“7ÑÃ:„™h˜Ú·7ŠaöÒk¤6`+ÚJ¯ªFëÿ±¯{ï¼Îê”pŒm6[ا]šÚÈŒó8âÖ»»}º›ä†£¢A}=/Òñµ åI¸¤¯•òžQMѤî\©šÔÕkˆ Æ9Ð/˜ú+2XYã +”Ã|™ßøLOáηžÝFÏü>£‚Vý;ßÄ ?[C~Yà¯4~ŒFg‡ ˆêÍÏЭf½i¹Áv¦hñ=LZ·§'Éšáê‹Z$Ç¢sT9òëx ^ñŧô¦ÍªïÕ)co½xhx‡®e£©ë„-qÅäŒà `O– „jé(|h\eØDâ?1ÙKÚûŒ™¢ûý“†mvJ®°Åq{>0«Ù+(û£[Œû½Ÿúœ Â "¡;¨2®š•qFc“ŸÅÆ!Ÿ7,Ï*DHY4$oºuAø!ÙÃmm¨y„‡ýÔÊÜÆe„€ÔZ@£æ%kÌ/f eåªX²;›3Z$N¹yW˜ÓÓ¹²³¸Rš‡%F*ö¯RÒz¹^²0Ʊf.˜¿1úÛAÍt?˜ÂÇÐhßL.mבRYü»s Ãi“r‡%ˆà†´l­@ñÚß6•Õ€‡u¯î¸zèG‚ŽBÖ…§±…ÙqÂ8È~&x›Ëaœ™4Ý•V¤C¿—?œ\uÏË$<µ…‘í¹Á°ÅB-l½9¥jî‡&´ô8¦Kå>pœãRLçú‚ya AW/º;"ç9¨Ø˜‡¨O=E(a%3Ùã§h48€^uŽÆ@"èYŒÏRjÌe×îœ?W߬2ŒÒQŽªO¾2C÷ºèÃÑÝúGÙç-× 7£š7»ú×È.ý~I t¿±¨—*…GÖ÷þßî•#Òë•÷ ÙkìQCÐ<ôÒpÂÆß~‰ß})h¤æ·¢çv)«’*æÃÓ¸1ˆßûÞ±4T—•íDoш™väPã(:®ÉbPxŒù‰¿švÙ;ºç%“4Ÿ}è—Jõ®dþéSeˆ)‹hÉV·p¹G°Ü‘ÃÕÁúãQ“ÐFœŸqEoÓeºâOs~FU‚\Xþë÷«ŒR K áßú›\ëóAÙüEÄo Âópƒâ”œY´LQ£ŒUD„#n‚õ¼ªv¸nx{¬… –dBõËbVß´[5è´¨IN”w<æ÷ íõuº#6À6ü¦0ywLqH$Ó2ÿg®Íb½,$qgÖ˜7#*ËÔú°F4'Ü`kçôdW³²Eæz.MHSppÙ­Ë+ðJZ…Ò£¯Q âËçÂ…ØO0‹x°¶®êy®¼‡Ý0$y;Õ³‚Â;Žëʳ_ Szq‹œ†’ðÿnša9…²ùýí¶£ê\ðŠ†¨Ñç1ª¬Â¹b°dÈΰì=j3öÏSûÓ2T»*|esu¨È$‹ñÕT0œ x×òÑs¸BZÐÆ&ÔªAš®Uæ&Jˆ‰x.îøgæüŒ!>•Zâ œ ªù:8ôyôSq Ú#ö`áàƒ?Ù烀Í"×’EzŠ÷¥6üKín_-ŽRòS²)0J‰9ŠÏ;gÌaó³qבIòÂò”ùÈñcjT§LL„V 6—x¿Œ/çqZPÚ!Ò5q¦ŸËû…þU“\NL´è(|O_Ô¶‚ô@»u{mH5Ikyº¤–£îjV¨9‡”|jCÕwO¡­ÖÖ’rÌ‹8«‹°K©ëpe}'*.àË]É/}yq `nðâo©X``ƒ$Û DæfÔ™QÃìÝŒš‹ö·âéºÁšš?p\1—¢Rlñ±f AÚ¯TpÉ2ŒÅƒú³:K7 ðLˆžd†þþŽ,zÜ—. Ñ]ö1³ÆD.«½J‘zšÃ‡B\ú\tDÉn>mÛf\žr¼(ö;7‚6ŠŽ}e4<2 Šs%v´Q0¬X¼‡2râ›þý%)ް‘¹X2FÉ¡&r€Rs$;Z2ù?—±fãÿt³ØîPd+hŸmDì]'-ž¶|·‚6šjæ¨yŠJ‘kå5I€8’»èEºËY¢âHƘ³õTˆÙg¤{§3lf~fö§ÿ¿#¨h_ »÷^üëÍù¬„±ÖºPQ¨¶|Œ”ˆ#D€1uÚÕ„Àq8h¦A¶â)|Çî89 ]Ü5J=-‹ç-a·´v¦Ÿ¹ Š=º^M/pÐÓ8V…=SS0’pë‚æú`¦´m¾0¨øsOÞÐN}ïPè¬*:‹VßöЍvTìÔ7ÌÚÞÊ4s}åæþ–C-xgÒ ø4Åæ*åé¶á„´˜§2òÛówµZmá.“ÙkÀkHö;³¤Ü5&•[¸®IwÎÄœAÀûKrÍ]‚ ½­a…[ÛYuož¿45,ú^Z¾·õAOó™°UGÞéNÔ®pä÷³8àÊÊz€$wž‘¥µ…aÞ’ã×"ì–À›c’ì~#M¡9"g°u#™ðü€~·²ÃˆžRÿfåÙÆWÊ5ÀFøúãæ8HÛÖ÷)Z2þŒ‰òE»JfcÏvm_®GIþÞÜôLVÒ[‡O²ƒŸpîúཇRµþ™‡9 «Á%54ÀÌТ}>R½Æ[ŠÇ_⽑…š3“W“ÛÊÈ>Ç­›óÇÖÿ¶õùµÿ8¾¤aWe&¥¾‹‹íÉ:à+k¸4<œ\€œ½‡ºžL{ÏC°@÷ÖÉQ¹Ëf’*Õ>ó&¾}ûâÌvô½_]Æýk÷2« ×1½¯õç·×_+@Û˺]ßœ¨àt ³D«wü_ »ÜU5v泘ÿAí®XSÒ¶á·ÔxKqÈœ´ô:,cohI€† WÛõ¯7·?"Ò`ŽüŽ3§ð°Ï¥r{nV.¸£çN¸öá.oÕMÍ#Ï.~Ú’]ðB –ËdµŸÂåÉzcsps;Gn®99܇K2P”I©7]¿¯j $$¡ûðí$}v†52W-³JØzÝGÃQOÊ×/)?Lº?²[Ó;2â˜"Ü7߸ˆÓÃÍÒ ÀÖ~•}îð­›©Ð+hc?x*~™ÕuS]<Έ!Æù픓2<»_zUø{ÜÀ!t±&xd} cßÞÀ š÷tžôÚì»ü¸1iKֱІßi#»Z•öžkÑi|  j`| †Y×c)}-‰<&ÜcÔ¿)¡rÝ×}•SW„ç ‰+å›)Ì=›P3@öèvö;“yîäñ‘ô!:÷¬ƒÔŠ]>— Â*Z ·/Òj|‘Y…—8¥Æ’oýå+Eij¥‹Ž ÅŠ£(F‚Ç#HtNI6áM"9ײ RÑ©bJŠÄ1½'>GÔÎE&YÐWvÿa±ž„¨ ¥1¬µ0䣎BÁ LAï ¨ç²ï…˜ŽLb9ΖdCÍnmK’Wë˜X€ÐqxžÑP­rÚ#˜ë@õfÀ‚Ø[`Rºèn||ÔÓOßÃyóðÃ>ˆÚ Z'f–5¼‘ ’Ū  Â_Ïlðíj®™Ñ^æŠè̬ƒ÷ÊCèˆÊ(Æ5Ê¡ÍF |Q”&߯(Ž¡ƒ30褗W±lò5-S]Ù»]uŒiŒ‘^‹žZ ;Çç‘mY®Éæ[ hÌ@4Ò}p±Ÿ s(Öã?°s‡zT–„Å»OÞ(…›ÅÖd€‚/Æ(bB‹6¬©ÌŠè[¼ôã8óè{¾_‹<:¬È8#¼µ]—O÷àaK’ÔÝ)1®ݨFõlèœËÒÍI·ï½èZ&¦0á•Äôø8‚À—]ÜêPë iÅøº÷°¯Ü.WzR»€sn«¢JœÑ’\±òMnJöÚ’Zï…›N¿Ì|z)Ì>æ?Ò"zì‹uhBÁS{Žåë\oHé]&¾É ÷žg"e›×ƒùÿ&óW¿Ÿ^Ó¸´h_è×8ýäêƒq™êeÖÖ|Vð“Ë7媢G›r+[fͨüÏFóF!\ï©ûóÖµ£¸Ð7ÏärD¹ìÈÁ:2· ûº‚—Eˆ°½"†KäSôÖÀæ*9—m®ª¿v>*0¤ØaFE¸j Ú¥q±$@úÏ©q³ïCAÝìIm f‚¡ðà-:<&RC ”“&/%ºÄ·¼?e̵ÿg›ßçgU@eNà+¿7=#\¶ZÞ™G¤§Ò“÷Óæ—Éóc&gÝû.…ÔR˜óª €X³Ñ'Õû4v’”¥¬ïȰ_.ìEî¤FP7åÃíÚ²·ÞCo¤ÝÇF¬y–¸Xaí†û4þk6jÑ 1®Ú'8øy>G?ÁXh øý?Š$uë± ÏÂòÍCò¸}•*ZB26›ÎÈó?IÌD“6Æãöîì[Þ…=¸ùõÒ.¸€u`¾'¶ŒiϯM‹š+ÔMÀ‡H:^ç•Ð)%ÑòGm,Wš¥:òVE×à’;ûe¼íìš2¸ì£™›ßGXŠívF6€Ž›Fõa\ëÔ­6².rˆ HDÜü¼©Ø8.Ù ñ´JlËÔŸØ¥ëd7êš>¨ ›}×@£y® ÿŽ­‰—A¾ØQKôÉã9®Ïç8Ñ@êZñ8Ì$‡R}1`Mø¼s……îïÞÀ?xy[Ôÿq’<˜®z¯ËܺݶFý%[ãð1]þ±¨[ù˜„½RˆÙ¿I³ô¹Á‚ œêì©‚…ÍÚYA‹BCt±ëà}ÊâhÝÖCÓ  hzšÜèžôˆ6¿j³Ÿ‘4úa‹Ú]\rT™°ŽÓ FMYŸ…zfn#¿òáŒ)—¹/mƒŠ"ìNRù )º™¥c+BÛÍ%ìà` ­J|ý\9™ˆžÞz$ ýx¬€€®”¡“V@.9aá «p6ž†@ºÂÑ$®w‡$+¶)¿8Ï]î,k2,¡ŠŽ;L¸@|Âs,üiZźzjÝ£ð›þËhO-–QãÉ=mªH+®ÆbË,®<~¾ñ›5ÊÍAÎ`1Õ_ÃøÆm}vü7’¿éÑÕƒ€bÉI¤§#Ë•£íÚwQ©©9î‹L¿ˆp¼VÇÓк:¶çáŠÖ–çˆ/™g°OžÂù…‰¬9œlس/>»Åµ 5xÎSÃÎÏÀOÝëŠZ±g …ïž÷C¼¶_öÍ£…vœ>Í«—Áýä—4¸x׳¥¤^ÆKhOOÞF–Q6ô¸?úrAÖ”sZÃU¿1;Æ‘òâéžÑâsÎÕÔUO‡ÞÙ?^mrÇ÷[ÝÑ»[AwJ׫Ÿ¥üx¨p¾‰Éý$%Έo–tg‚ïÁóiýG1½ üYZ=R9'Aðëîj Ꞇ§M¤k‹]ùQ8ûÞwä%)Öv–Ky ±9Ž ó e&Nºà‡²x6õT›{YZ(òî],M§Rò%¶¯nÊ €£q7ÜL/º|2­¥È‚ù…šFè¹ÅV5øeÉP6š¨a^b¥Ûk_æuÄI4ûS ªÃRÛ"¿Tü]¡6wÁzÆ+.‘îáMÖ¨µðŽ3iåï™ÒÜò¢/p?ˆj±óm1î=}TH¥:píöz¦sn…åäå2-~ü°ôqìòÕYûüTÛ4üé¯Ôæõø ¨Tcö ŸD…»žNÍ¡k¿Ô‰¥šÂE«}B#Lº¯>Ks8®²`ü2NO‘ƒ¼RRΔ9 hüåÌNâÁÏ(²záºsæ²K^cE”ÁÂ2`cq„KÜt×f,k=²cvÐ_¢${Rh„À&"c¦`m‚ù'“Æ.LœE÷¶0/Æ_J$„´Qd©1ź)M´—5 ¨=<=C1(œ kèBìbo—v{õ¥ä€óޏXô§c@¨Î‹KMÔÈájºÍÃ&»è޼£lrW±Iø ºÉòSé¾Î{Å6_%l^¼/c^b—ö.Ö¢5M³®•ͱ”u¼ r&8 ™wè‰qÀpû4'š³ªÐ1T¥A'H'm<£øÒ;m~÷1†@øí8\¸ÈÙéG‘R Vm¡êÄó[t®tÌ—[̪P!01>‚6ŠFÚy€ï aH(²õÐçþŠNä—&`‚“¨Ø2j œÀÊ2˜¬>1Wz<ˆ×òóNl—pü`ÐEFU2&Ê­ZLâõíD”xƆ=‚Ñ+â=ëÊý{¯)v‹ÉÀ…ì¹W½óÚìÍû4/J•‡Ï8. ¼;ÌjXëÍÉù:¹ÐZ9ÁÕ¬ÈòÿñÞýÊúW?žŸ6zÿÊkú¬kÍ"°UÉ3·1éK,ãÕð«oiZƒCtó69þ9÷Æ–-)í¨öÌ'_‹ßro<²ÐØM ™·‰ñê§7¯fçØœ_2nпl §KõÓrãçi™.·5ϼTÔØ2Ù@BüŽ}7Ï=u: p&FgU<•F…®¼`–=JÝÛMYè»">`™ÕòžÐU‚ÈC„ÄA¡½¾Nõï<5Y\4üq¢êdÇ ! {)?eþ®åunê”ÿ[Ÿ‘ЬÑõ^@JN$s&Ü®³–U^҉ܚ™­V³ßQÇjhé>:XÑà$³4=ÞcMOñºm!^‘œE8rÈ%ÂÀÆþ!eËhÅ{1¡m› ?c¦ê‹ªPW›þ#é¹õdlããáÝ©î>=n éÌ;7§ÑtˆÄ²Aó3’&u ,œ•®‹×Tºûç_ìacOX³^l/QRºZ¾æm:IÒ+EˆæÆ&œJ*hdn•ƒÄ¯ oWÏ “¯­·þŽÜóÑ 5méïèü]c80âþì’^))`é¥Y9ÿ«\`0wK>WÊpF÷QDÆŠ‰}âoFÕú&Yq}y±/$¹à@gìœzmqêZdM €jR¨[=ÚGÞAbuÄÙ – 9Öiþ„b+ÖCà»§\GgžÏ¡c5Ä|ëïÿ„õÔˆÐÎV”ºÏZ‡"1Ý:ÈkÉ"Ä–oÊ*ï/Ó±¿Oë×D1 *Ÿ+z¾öä m^•;½ ¥y-¤qwe¯ÄiQ,×ÊH,ï8˜Ä!%å$üYÕµJwÉÿÊ#é¬IÐ)wê°PÜJEù‹¬tÿÏrékûäø(~Ë“`oáu 0:Bc8díâ@¢–Ö¹Õ¢í“À­,tsøÛâTwE¨“d·ÇW•… «¹(ôÓNX|K–½ƒãþzf]¡útp}(Ë\3 @}C$ÑŒ{l­1|õï@ì­Ÿ·pŒý‚ôî´çMÄù³Šõæ«\ÙGQ=% iBÙ÷„“JŽ”Ê-#l8öO´âW¿Ð[Z‰Xgn€HÍÙ¹‹HXëâ0ó\º¿k!ç9úBE­zb‡-†¯Lh!©T©¯e¬&Ͳæø\ G­6¥iÉ|œ Ú];˸‰~ù2nÐgX¤ýâlÓÝn„ì¦vZ¯ì÷]¼o×;·`k6 ‰~QVu ®ü~GÇ×ê¥þ}ñ—Z+÷ž«ÄB1G” {e楈½Rh°~œÂê &½]}£²§ +•…øõ¡j eÛ(Þ~çÿŽ‚¶”ûEè[rµFz§e³ScÎ¥Æ:ˆVþ²jïl¢7d0XÒR"éÆ*d_ÝïtàÂyûÕg/ÞËGÂá ‡:º€Œ'ݪê>}'J\FKó¦"E²Œss8&BØø÷”•²: ÁßýÇ n@¦é_ѺeÔ‰¹þ@×'W-%ö5›÷Y„(d¨ØÈ ûùgÍMŒMÔ›çÃ5 ¦Xâ9S¼àe¯†N'.¾ø©z¡/V3lþ&ùœåSöÌ€äñN§ŸŒ€|v’c †l6†ã#z g á{ΰuÕøV´ˆÑv„7ÉtbmõDùDVsÛ¸ÞÍç&í©ú,l43VÞÐ GÌÂsFH@8ƒš¨³ö´{'úLþÑïÑã`®2aÞí•!M§Zÿ¦ÞR6þ¥ùu×Ú+Ceÿë ‡¹×‘ód¯§°J»^¢çØë±TêÁo&_yÛÍ *‰—»@Þ¥<µ™7ÕK²J…4-rqfÉVòª“}crn-奅NqùmèóˆýCBï6*M‹J"( tS“ð[Êô ¯Ä€k`-K£¼=‰LQÜRBrúf©Z#ûLnÇT7»0TH‹B{f8¼N¦êãR ž!ƒ+v ]æœ> ¡ZzÝ6œ Aä)°—ás±¤‹–aè:|Ð×;ŒL~â vCóÌ~™`"œa8ӊ߬ɺ´y‰MH!?ÄÞ %Ÿ;ÄGÙv>ˆ)©€;Ìs¸öážzG©—}eªq¿ÈúúÊçeÖ/‚×ÙpÄZ6[#‘®)ü-þ#~Ýʽ2Ž—“’ÛeÖÓv†ÇÛ1j ŸË®I.é­üàËën̈HÑz—;Ôɹð²$§áÓµòîÀ1šÃbk·îTVÙÙÝ íq@óÆëäèkéùqæ=jߺœHê5&ð …k‘b4’þ7…þv’# Û£®V{êÍ·å¯T:ç Ð´í ’AP!@T¡R[q¶“N¥²ÞUJF >q…_¥ã÷† Ì,Iã/PÊžŽå0õÛêЄ]¶ò]ºÄ‹$ (¼øim|`#ÂpÅ Á°|CײºWžÎ‡¶Q5HÉûE€[aÞØUFTQ^ t…ížÞÓªòa¡Øgj8é,~»¯<‹Å˜}L…RoSFóÒ4¦–_?Ü€>9i…úC²…-®2bŠ=Aaƒ±Si °cºc´ÉDwK–ª³/ Ûàš|Ÿñ¡„Ñ_P­†‚ænÙŠ¥ø±V@EåñÚÆCÌjú/æÑ»î!¢»ãO44vïó5w`» €8j°‹~Z±ÇDùŸÔ¡?)OÇŠÞá`Œóñ˜t¶‡(еFQWõ˜mT“%ZÕ{žÝ÷¼ÂÝ`Wß“D­øwÜtàSA¤ªðó5ȪeÝŠÊûcW3ÀnJéÊ?×åÎ3©æ7€ä%`>×ÿÅœ}Ñâ3kN‚_JÍ(³ab8¤¢µ/þÄ”ÒV5¹Ž›QþíFþÞ`ryë9!ÁMµK¯#)«iG£x/¾ É)lX÷àÈx5øÛu*øÖÎGÝÜ…`[#ç úª+§z;yLÛò•\‰m”§hÒöQ!Mm­ä©,p$=°ñãÿ[e×gŠDÚ°CëfK‚îé±ëT‘ÛG hu>ØvION\ʺ+a–¶—;u ‚Ýdªóœ >ùÑdù~v×:ÃAdQãìe@wFs9÷uêö1ôPŒQn±(`Ÿ-¢{&[¢¥DÁ¢½Y% Xð‰=Y¥LrÖÛÏ¢jCÏ–HÄÓ–Š*s¤ Ôß0[t «Ä3o\¶z¹êPùb‚Ôs&ÑNB'\‘»üÉ…Vå•ß«Zýýá•Õè†õ¸aì–·žú¯ fÇ .ç „B ù>0âÖ‚Äõ´áI±|O<[§ä”Þºš«€)dj§¢¥°¨5?Jø a B·ù߬vé ÷° áÉ¥TTÔ³ÿß­SáAôŠ£¬ä¼l]aù¯V©€ŽW¬íÅ0õâ*è Þ–/Ý….:9h]Ç_ZÁNøw!|U%DÅŒ‹Na|ÝþãÐlØòxQ+1ÐQ X-Š”HKc© íY×ã8":»€Ú7‘:¿RÌ!Z¦ç&EÑĕקü'$Ü1Eïl ø|o'Däéù5È:v…ô>Þ R$ÒD/C½Ý‚®&ÁcUhâ þ(hñNjÖØâ;±['*My2ˆÕ_é· ·¢†Uûœ—w7aÏ¢àæƒ—Ä+&´P|?xÇ ¸Õ†,øñl-LNPÌa`e}µ¹ë6½ªç¿Û`+óv§îPŸˆrð'·9«[à7†ûÇ]؆ VÏ*×Q!>R `ÏÃÉ®4µ«Åkœ;ô!ÒユÆvo‡Am‰'È›(_Šº r^}*³èŦW™Ç¡ç?´ëó F§9+—q¯±Ë/®Ú­yÁ½ééVtÑ ³ ìý6fóÌ7P'ëÁÝ|Aµ jPšy‚~¾…詘tÀdû€Â’œCÈ&JÛRÞ|Ã-Ì:üÞ*yn˜`T”>̧‚”âjRAƒÕÒ4Œ•8ÿ„ž{jëã€%&'loh%•à!þÛ¥ ¢JFW¾‰>«z»VÞ¹„íó:Z¢Ã¯1j'èx¢ „~ð ÓQæ]»é›”æW¨C~ù±äÆ]X±ÒÔkÒÙw3SñdžÏ9yeXÿ#ê Ýso¢Ž:EšÆòh7(Å,ŽÓ•F?è6®'÷ò…ç±Yöë¤R2[É‘ãu+C¯Jóf^g3F#fBVmÞ[KG8|ÑÁV4T½§“Svëh« Ûá¹Ntè5ñz-ò{ŽÝœí?«?ÝurJí{®ô¦ð ë4 3X‚‚Mp¥6Zã}°FÉØ<Ô:¥åÚ½ÔÌ…/S {ö`àÞYõ7ì9qDãHœO[’U¬ß< YkÏ 7Õø#ˆêæóÜ=[€G1ÆÑ€ ×Á$~lS1UœäÂt•0ÊRªIzË”]úÒÅôµI!äÑ#ÄÔKÆOP+w¥é·%©qü¯â¤4¨é³¥ýoýò€ „œçsKÌy¢7±CB¼Bû¿.wx§³äTóÿZ1ì1ð^$mb¿š†€‰`ê°°Åô~¥Öß§«{«zÛ•>Bµ.8k·² àmü!_öÎ1÷ù1cÖÌj÷瀢lÈžÑ[0ìÑ/¢ól¼²ÝWƒ;3Ö¸ÔÄ×Ä{+˱ÈqÐ-m¬R ‚Ì:AwÓBÓÝ´üv2ƒzÊ›ÕÂdÌòP4©?¶8 5ÊsÆ Œ%^¾;„Ä^)-×=Ç!`UP3’9†™‰ÈhãƃÁꬎÌÔºe’Ò{ÍN7¶ç.×=»'ÒŠl™:N°X2e‘_2y°ªÛøÎÿ[Ø¢gñ$l§œËƒY´ÞÎë-„X"-‘¦ü›·wiô¯Y‡™ÅUº6M)ˆb×t¢Eà"2¦$çšð<˜{…Á™s(á­ÌyD‘\ ø“áá£Üÿÿ+Ѿ¶øFȦ›E*Es¹ùQñÄó·”KÂ-^}tÅí¹'Ž‘+mr·öX8Ä7_üÚ(ê<µÛ ÚmHæà¢"F‡{õ±jÔ`M‹8ë>#GUaÆüºÿ¶ÌL”çõ¿óï-,À–†­wQ^¹Mk?÷³8×ZdØ!ÈÖ”ØB­PÛ£8Mü-=¿°—ñ‰ׯn'ÃgŒ×¸ñÖ­© [ÌRl¯¸1_ 4„ë—aómHK%/®nÛvýœ'š>g-!&y‡2̃Šn™î\¹Ã¶jÑ{BF öÝgWpZ–pµÉiV9“A/:)ñ³(Qñ…|Æ ÷;úü‚OS>¾R ˆ/4çÖa<;©'Wu‘¤¸P îªS 身¶Çlû«n 3iKvá;\.GÏðªë^“Ê"„Íp<²ƒÓ¼qg*g5©qz}Ø2GDe±ýØ•þ´aYnRÒüFÛ.ƒz÷pÿÚxZh[ŒÑ¯ï69«ö~Wm ‰j¤BùÊ…úûã 4ˆhûño­‰/ù’ÑL…uJAz®Bó÷";+²Ψ‹JO›,=7ûïĺf੺åjnÏôyq`Ê Ú•^ƒÌkÕâçèÖD/z†·ìõ“1ªbÓÏ`Ý ‹åµÇâu¼”ìë{çûÆó¼kú”‚2îñ¡ÚÊÇ—„'"ŠÛCD€¿ì§{-/t%’02or™ð>Gå²ó$Ûa´v» Ýwõ%ú]ñlçý[Ø“Ï{€ÒÞf1RËeAX}·¸ø}ío?èbÁä¯@Ãõo£ÕPÿ¬Ühp›ZçS«´c<÷qK3ªe-ëévÐÒv†Oîïï•Ð Ù‰Ã] ˆ“v©všq&Ñ!6Í.óYHs:pÌÔ:„Š;UP ZÐtlfœ¢Å“峞ÉRß– çÝwƒÔxgÀMvqŽ¢#Ìí œÊ7ë ÏMíþnöŽÕà/›V~[kJažÏg Rœ¶É¢‘üÅ(" ˆ ~'Áêwªaªt…mGŸ¬ÖW ¥&[K5š*x~Ggg(·zàŽXC¤Àü‰]14ñ$ zÁÕ‚O‚Jr«¤;³!%ÞäiÁ¹bsdòTe…P_&¦…øbÍ”5´wª§–eóPrÈ/öt1¿MÜ^¥›_ÁŽ¡+g÷.w"-²Bñ.5úÓƒÎïëy *©£3$¶}´çlnÍŒ¿•õÑý:Âëáu•Rå*yY!ß7×*€Aúæðbôûú‰ÎÆ2žð`Ã\"('ÕºßãÅç »Ùz uFªÆuÊ ä?º+©FsJ Øp0f—2‰Þ[ 4×C¿tåÒºDT.‹…«”sÐÌIÚwܶ:–è¶H‘,•1´¬Äkȸ鮮òPaS#`)§Ý¸žÑ§¢7We‡Õ6ØÐO~{z–· ×NdRv‰@K/ïý½¹+w*KÃo5hö/˃Ï9ò,‹yðAóì®3¥È 4%XˆÞ(âhÆ!/8¿ˆ/•¬ÿ›¾ÌnlêÄ}J³ÌžL]4î ;Ü®»º·–{g6¶téU¬·V ôêæ¸ŸCVWšIk†GÑöËÀÜ2df$‰¥üë ŽIÃJ*7NÈÞà­Ù@¶!fû|ï^aHJK*H%ü;]Äv²»šQÑŽEw W6ýÅ–`Íëcd551GÏǺâMž>„¤áÚ ®Rè±€ÊÊpî‹™iIeqï½Ñ…1CÝÙŽ §Û÷9³E¤£É­ý!è¦c€®=]ßë0ë˜LÅõƒR•s1|`¥¸U·"mB¢(dD¡‚l\jF4©«a¾d=©ƒ ÚÙ]r›þ+Ÿ8¾‡>ÁV)7“<¤¨˜kÐèò¹4£p~Éxið2î@|Õÿ¥€ÿ¯ˆç—)— ¸oöø¥›ÿ‘.LKüô ûj]ådÙH[°Ø;…áI@F·óM² E¿[Sùá•CÖ#îb&híˈà¹û„~R [C~'åä5«Lyy[§EqäD@M§*œS±bx°#ÝŽå"™{0óÜŸyíX¼Ná]nYM-Ëî³è€C›8owŽq.µÌQ4ŠÑÝr_F~ÊhþÆÄ×ÓÏ¡V¬ÿ»Çýèõ_(• Ç:‡¯ËzÕü³4^Û2 k‹¢”Õ•€wQÉ0æ 6D§&52y,)*BbÊ1y½ö¢ŸÛáhθy·´•;' ÍÉlÉb%F¹Š“Å$åç°47é1j’mÊ0“XI pC)#J&ÉÈ8=‹3¸ýW´“½î}£ gÁÀÅ”›Cž^t"X[¢×‘R4š€ðÞR”Á¹h8Hæ¦ÙÈ…×+ éÅÝžýSxÊç±û=H:Êx,ü[“Zj‹ß­Ÿ/Ç„âj×Ë—¨ß£Â–¿&EýŠºjÌþÙ‰±/бP»†ÅM?ù§Si#)ßþÆ%S‘ ’–õe.uøÌSwLýj¤*W«ÔÜ0°¼X+UÔƒ:×ÀT„Ÿ+© h™£rQ¶Ø<Ò܇¹s)EOñƒúýgÛ…J‡¡ÚÄ{?Ьa¡ï·M¢ÖkB=í§êÑšºƒPFdùöêN1nd¼RUö‚`íXÔgU` ËŽ#”…AWwü.Gæá–ï½§B%_J„?Ù¯½åš"÷&_h ’¦Ö$‚W o· 5kwLx &ôî±K6":çð¸LØ]°>¬(µÑX>&Mé‡Þ§eƒ<öˆñîÌC€#g÷%qM-éÐŽb\O ñ=¦°ÜÛð‹c¿%iFŸõ¤":yjÁ2ãY,”)¼‡e±1Ál R#O~÷øíF¢E 1XöŽd€õÀ*;\À^°ã8à±m›JF7 v¶YùäY•z05JM »2~ÐF"1hR¬#ÖR&aVÈÝä*s™³Ÿ&Iʳ?_V†×FÀË8 ›„Ò8âÆš¢1·U€5Õ¹G`~ÙÅurWŠæce> ðLF B¶ÀÕ4^CN“6v“Ê›†Ýá§3’Ú‰Á…Q¬ØXçj4ýPGe…™ ± î‘7îpQ¯ä‡HaЙöhÌkG˜çüV± ŠõY\õ?"7‰;ê°sKŒ¼*õb‡N(Mq !PXrÖöVÛF’)>@skOΖõ´|“ Ç¡‹MRúƒ¶*;ÿ'î¡SX>{ †°‹ ,r›"®ÉLø[™lê ˜ë%û'7sgõ˜5«…Ó0léÞ""F=‘gÚþcÔ0!=6;f%އ´õFc}Ëð[¯Ö™·À´÷¤î¥~Úµ¹Þrë]©½tTA¨äÖÄUQD©í„ú³Žeê5öiA—Ñ¢T AªK]s¤µS±ÿÔภjÔÈàÚ ävŠH}©Ø>aŽôLÐM6›QšŸfŽÕD}mžÑq]v<áço~s²-_-¡Ί“”WAt>:öôÖÅ£ÓOPå?§‰~ù©ß¸ÉGḆÅïiI.ÄÕð¼NÐßáÄÌ+|À§øÐù›=^h¨½Ê1ÿ5&yZ«ÿò4-„Ÿ¹©¦‹©Àïw;—ç2ÕfµR¥\›hãxèÕ˜è‚ãá›ÙVD*ümQƧ/ çs\ýK Æ4÷`¸œPC ÇitÓmCçþj\£Ep®‹eݶ{ñžELŠÜ›Öj&U:Sñð’ÿéÓ@Rk³ëèdþ‹k}<ã-±vòO^Áù¬w|EȲžÑGVòõc†.o@ü#?iå¤pMcz—:« s¹bp÷ÁVÀ¾æt ÚÕðW*jË%\?ˉS´)©¿é ÂR½6.sðNÒIKŠéË;¡ª?Ušú{¥¾DÉÔd"xíÉQ7Ó‰q¼Ýy nÆ[?á&‘µˆ`A†óaZàÔÃ2Nr=X³Õ%,sIû:…?ÂæßxœögÍ,v#q±kÚÝ—Ÿ ú@(+Æ[A-ºƒàWãóvÔÝ¥lš´ÏûÙ¤t¾FÅS…sñsÿ›ZŽœ!³îìÂS¾ŒB©¶ 8Žèe; w£âéw¶ò¡ í5ÇD–à6† –^ ËÛnTÎÜ‚ÀTñ—"Wxfјˆ™´Ææ80kRø§¿£×?Ô°z\©Á“U4üú:ë2¯wʈöÀª6p7àŠ*Õb‘kTaûƒÆ!£(ùÉ]î¶ÏMÅõ4éâ€ùæ‚§ïÊq¤œD¢äW0£El†šíLw ÑäêùÇm54€b"ÑTs:‚ž|”:T Ûì.‚Q°F6{4èw“·§\‰¹°.©gp6?° œîWÚ#C—1X‡¥ý]ø áéQl×­Œœdiß-ÓæëìÜ®32X›¯{O¬ÀnwޤV¥|•Ȱ$=ž¥™zÂÏϬÅgF©)&®¼ÈÚ–ÇÖ:3#|˜aV–IÁYgéxœ pX{xF³9.ëö̱1p’IÂ}\ °ìàá*€+øçÉÀØä#¶¿(=Jų ½Xqó¦@ísçæ³úT>n¹ˆ Õ–x—kv÷‹¹Ó˜ç›õ £—Œž&˜ˆÂ~)ˆ¡*ÑûÒ“Š%;™.?5+Ï6[ðÔex*Ë{“öŒÕª ª©À f@Ã9ý*ä›Ì›¤³Çøm>»¡eóe”»ÎššhP±‡SWLék`ŒÁïu;í‹(Ü€í¨²ðÏÍû°al®ñG$8ÄÔ>%TuÍpÀÊ…Ê< #×ñC²ßwçY”núËfQiîWZàHáœ8àì·6dX4ÜB›¿lïG˜òÿ׋®”ñ”F†×KÑ.E´¹úzå¦õ²ÔÝŒî‘r `¸:"Žýª2*8OÇ0*þo#¤1Q§ V…÷/€¢ºñˆèÍ\ª¼×ÎA 1# ôÚŽÔIÿÏŽó̰ÙàD†‡Ù² °–œÛa’·•Ö±¼æƒJ JCÎÇ4—ÞÄ=ãŘVÔ½±ÖÞ §H³9ã­_Q3&Þ'>¸t´cX}ïªlפOya¢”Ê(É£1 Y–AµÀÎüTm\®¡ ³•€ãÌ%t¡QvGÝWqIñIÿ”ŸÄ*i—Ökí#ÛöÊb(ŽNx5øV»¬¶§>–Ýtz"CC¨›LL¢dd”hÔ™v6íZ0*1sƒïx\™ ×Ùýáù~ÑÍ} Çþ’ÑÖ'ùTuJˆ²åC§¤NBóÄst%"½Zûõ‚úƒZj4³o!oEó"Õn¿÷¿ˆì°[@e#‚&™‡«³JꉬÍÙé¤Ê¦Qˆçp\OÉöñ&‰ÿ]s Æ“Xs%‚-$€´þFÇÜ\ù å]ˆäŠ­¢Oò+˜‰ŒÃOÞI9L¬Ë‘CîÛ•YómõåëX©/«(’‰…Õ 60=9Zc{ÙT‚ƒÿ'Ï@} ì ë8Â& êÐÍQÜ`gÚÙg•5ÏqVoÐó@{èŒ C7eÏ/,ß¾yõEq:ǦÁk;rü7–ô†˜…r†É0ê¿­h-:FO»Òˆg…wHo#»9:¹Ç¹øÚ•‹·óŒÊ õœ'ís¦ pݨ*~Ä5ú¿o˜Õwé玀L3µmÚX->l>z[·&†ÎŒÀt·;–ÁÂEs¨ÿì|2Bs®þÿ©‡tÒ¨Þz!ÃÞƒšdÊò©Ekèc£(w-ëlÊÈgçj«Ü‘¡£†õHÄôbµ«”`èéð²°Êñ æŸZmbXßËãFµ¿u„žð NßdÛCmÁ„ó"³ÃìÇÖ¯µºÉœ™¢¾-'!ì`РÞåî>aðÛ‚ÝåËm$™p~'aòP{ìsiG¬ø;CÍ¢(%»O©A@&>pÒK*g²x5£Æ H'‚ŸzØ'ê‚Äã"”šéáhîû8us0¨ˆQúH’عé-s/©]܇ƒæ&d*%³qq–ÀCi ´;€&6ôú?ö®#Û p]þpœÏæªb¹ž»¬j¼:pR^Û6êßMµ__äò*ƒkÒ2:›´lضQ_¯X)XˆÜX(Õ_ø¤‡â™fÄN®ÆðE¢ˆ÷SßeœP­2¥X¾ƒÁ×ù0ù~×8If,Þ+#I RUö+Ò¶©<ÒMgþëþEf ‹ø„X»Ëœ”¹Ö€néwéo+ˆxr­-Öþ_”±hUYŠBbŒÏƒ$½¿ãÙý-ÓåÜç÷êišŸ§6†çîÕÿJú!úï" áw4¼ËÛOVán²_ºìEá..š¤….v•‹ÞÉö«–¢¼«[ȽyÛ5Ûᲄ½)ôYól ±˜žˆ…#oײ=}‰.Ø’?½áAEœU›‚`O^#ÐsÈ­~W,ø ç~¿SsHO0¾äÚͪF±#ôÔžïõÙØt¦±r*écð:°ILòqKnïâžòX‚“ª2 B· NÔ eÎ]!¸ð¶Nu»4mi×Ýæl+dž:$¨1%C?³iï±€-Õ’©=8*ãPAd<Šœ|wމwÍ©pN1àÀ©1o;VcŸg_/B´b}qý1°O9_,U™ÎâÕ¢ã ëS|âõÝKØwg¯xøùËE™Æ "ú¾ú>qP'´Ö1/aÕimt(¼Ü·û^w}rW~h*þÝÒb_æc`¢miûÁ&žIz,A•Éh ýÐæË¯ºç&6MR·å|~ÖšÇñµ´‚§sÄú‰Ä ÕÖ.ØØtƒ˜ Ìç#ÏŒüykôCþ ./’f¤÷cVÕ’~©‚Çò#²¯ð)«p¼w;á!Ù\6èB~•ŒNµTñwpòz^!]@Î ‚• Tì#­S‡/ÎäÅÀ÷=¾Â²2uàÑ;í %ì½p÷›ůQ'Ô§MO+ÄŠ8ÚFZÚ„°Ç\¨þP7l‹<ƒ8ea¨"æï¢ „ð‘;`"èQér <óHU´-®%i+Á<Ê=Ç/û狳±¸™ Zß¾.—+Ô¤FPl&~›L½ÍË5t IwOÕ«*€›[Æ€ò”–=äÔíK¿n3ã‚ô§{o Ny.#z`à,ãƒOó—y€ãH¬,>(¶ôÚDæâCÂô÷;-¢<„é÷48éíÕ‚=˜ äÑ5±³^ãQ|çTúà5[ìß¿f °ª2´dyÒÂõ« ÛI[¹ãË Æð‡t7ú 2HÛeõI¶ 0ʼ9©M¶ßˆ bÙÉ™` íaé]spðµa×IŸ÷‹å’)ÔòÍÇ¢0žHÝÛU|¦¾«€2Xàþñ³–Ð4¢¢¼•<—…bÉþ)˜Cu‹Ö¿.ígå ÿyjØ©d”ÿ×(¤Q Q8îB*80L Ï6¦Ù÷%K¤Ð0Zƹ¸ð'¤º7÷´VˆwõnéÓœËp" ¯{½îÄ&X爂´ U–4|›’­†ïyœLY…nÉ– R†X¼ÜUΡñ?Ov9Y«yôô<'l³Éž‡¥¿«ü §˜¶„ÀâHVÚâ±~ë–›ªOnßå?(×é(ëÍìÜ4Ù+fuôJ4«fË1yeÓ¥!¨J;M“OÉ5Ieàö%l§—ÏÅÔ¯ákJÔk2›ƒÔùK 7U”bˆŸ4õ¿’+T/xÁi¶©ôô<QnG ®÷2ëöë‚"Ÿï6€ìªCÚ5ÑѱV(h0Ã«Ž øvlƒ¿øN¥ÛV}-®{?“_ZGìÏ=§³¹O•³xnGH^:Öó øÄ «.0ëóxZ(’k’›jà“±žêŒ©P¶ík”š]­ DUH>÷–·ôö#ÖéBœ´ÇU4׆jëm·-œ~?ªŒ»‹wÑ%ØYÙ!Û‡šÎX‰j÷§ÏÈ`ên*÷Õ.„D”¯ÙMMžš2sª½9=dMÍÑV.&¥-fýx´ß‹Mbx39Çê?¨=õ­U9ɯŠé¤Ž– ç i¥ åëË5`e÷úü¶m÷*B9ÒRÚ`©:Ç{ü7· ")¹k¶X–ª´SéÇܔͲ@¢Rö˜MãL)ÇZa+¨Öìݪ%RKÙ˜ä¸Åµü;užV~ÍCéQ;"ü€í×B÷Ši° „–W£4˜–ÁL‡mS·ë³ÃÞ„a²³L6²²Q@·1qUY‹D[ÊC“ Óš]éŧå|¼’ˆŠ Ìou»3#O4k—V`&ñÕtp†ûO)Þ(LýòL›÷ÀT«c@ßYhCG]¾–& T\ˆ6¶EIdívzö¶ýÃfß¼câÖÈÅCΊkèzÎz7>Ä}®ÀvßÔ>R% ´È›F>ú·}3RŠL>X”Rå>½‚™ ^XjÞ䨙Ŏœ¸êé¢Ý9ÊÀmïö]*þ?;"ô;Ú~9æ)žä)v*PÂëöëoIÞnÅÁ,G¼(}q¤UÚ\K[ \’àN1-<šèÁ•qŠÑ8pŒêNΣð%†¥€Ø{Ÿ¯¬Ò£aׇZ¸"ÜFÕ`˜èCàC‰ƒnujYE#û«Ñì¨Ì¹9u]˜(L%Aã±xÙ g¸VWÖ??@RC|é Ȇæú³ÃwÎj±‘C;Ì|ºI¼…e½ö’qw¤ÚEÁ . ‹Âaz"2MÛ™ÔA×ZLj¢T°Öã‚K¡ÂzF°ùŠ¢V›#B ‚Ãöµ•ÂѼØ26»øÈ`0¾àMˆýfÇ øfÄE¼ƒY¬(U:<ždÏ\ t´vC¶û¤0pãÓˆócLÅ÷ÝëAz*´Û|4ÑÅ¡£˜ÖÒïZ7’ôÛ§V(Î?dšø1¤®ÝL«·=†ˆAå|ç# OW¶ùqÀYÛÄxë˹\G§0­‚ “¨Õ÷0ÔͧòS)CiäB a<€pW·±«ÞmgrópÃÁȶøè;UçEFÛX˜†éÚZ³åÆ•áŽXõ–§6) °Óƨ î%qØžÝ ZÁh,­PÍ^²lÚösÆé]~áÄ¡<¹Êd–¶#](ì(ÂAL¢ïžÁ@fk®EÅÁ®ê"#Ié9gÂÜ@¯3þÛY$£pÈè»A^‘¹acÜØÖùD¸;Ù`@¯J§ü]âJÿÎlL&äPˆ^_]j¹¥…0õ¾ k¾¥Ü 7@cYé齡¶0Ú¾¨ÌæðTñj«|ÜöŽß{êËön…±ÿ”R7o ª™Ðo?çTÇ'lc¦îòg€ôûBAexS¬--xëéD­ÑmôFì¤NþüezÃÊ©h¨½ëÒ”4,`Xµ,;øñL^p¤{¾h*Çãr௿šCZ¶¿œu³¥~Æø%–‡Õ“ybSÅM9#ã@S‘ÞLýüt¹£BjÔf¼¿äé-2k÷ž-É»p(5•A1Üž+/`™*)@ ¢Š””Ê`£±°¹{·»áCÎU•f(úØ a2O+zîÏÆ…Œ ¬Qé;ÈÿùƒIPA¯€%6øZû½¢ì(¤2%±zé©ÂÔ—5w=’Ò‡b²³b3"ÿÚÓI¡Ø—["=O˜Úãõ»^îñùû©x7©XyïúOàØWåG'j9o©Î¯A® -¼ë˜ñ~«žMЇηõZ_|Jø—]HZi‘ Jävˆ¨` º´1û’“O•MµU×&?®س¦:Ši¥R°n±Êò`]Óƒ'B'¥ë£üõ²R>ÞÈBoÁ4ª¬›¿5Òþ.èä¡ë'Ak+¶3Ø=:dÖúk¤Â¼3Ö;†ðúáI-Ö:)JÓÜâ~›N9[öfpò{ï6Ÿ~ñ¯Œ“@ÃpІËÓ)Ä?} é÷t$·……‹åÊÏ¡- ^+[š99ó!~ÚSÏ^²É2–L„_‹&ïÎí®oÉÊ »v=wrŸÒô\íI•àŽb!aÁɺ!k®),tyUªääë ±¼™$ËÖC²ò)òiH~:Æ2»FŸ•®_ ¦ÀÐ+Y)eéŒznaaÔAÆD*î8¿`À±æ=ØŸÕ¼w  7Y–ZÈØï° I~æ4¿C.fB@ºã@FÖ‹µ&‚TÙç.òF\礅øp e™&_mã‚#µB*Ý춆¿§e£D‰ÿ”щ³ÚmTaº}MjL5ôÛsÇ/?µóCÿ0ÑKôêM¦OÙø(Ѻv¾öØiò Ðý‚¿÷ú˜n«N”úòÿö}!”¶zzÈSÄ´ŽWŸB[ûŽ>T4ÿ³ŽSj.äݦ8ödÝ{—üµ€á§|ÝËüEö™¹ÍŽÔ®¥8¡ Ž]ýúµÔ êê,‹µ©„ÁÃJa†gŒYý Þð¬~ÆÊ¯¦›­ØâAmúØ™~ñš!艞ýN*@ÖŠ‹‹aŸŽu¯ês76Vò© k·ïR+;ðOW_Bë`úRªò9C²0›ƒ|ÅþU¢ñÏŒ·0w2I¬„|Ÿ ͱ´{eçs±pd˜(çߌ½}@ î>r`ß—Kõ(Kß]á^-î6À+HPžÏÖ;†ãöýßÁ&á’™²õH°+¾( k EøêÛÃ4è• (Û~ÝÎmŒ&ÙÉì³™Àº‰Ãû/KpS©NàTi@„w2ΧHQ OšÏV»Û>w”7PbSgµ-‹@5Cbûètƒ…7˜ùW½4o¢¶V- Æ,fãï­¾6 ¡ér¥ cÔ¦v둞ö-c#Ú¼‚é“,îH0ôÂ(ç/ñmn[ÆE­}~6CnPøö·Kˆyq[ÇáÒóÛÈé­ÎÞ<`J›ü¤Ý˜ÇG ÝÏœû¤½$‘Жˆ›+hi yËJz¥kÕUÈ;zFÜÚÈ&ÑŸ›/2úÁI†>p©{n5ç¤d€¹Gýÿsj¼2Ú¦ÞÏÓTm,øL J&÷éÅŸŸ#õ@u3WÞ M4„ðÀ›¢wü€(ÙÓ‘ùò‹Ðï,ës¨ÜLÝps­éÍ©œõqÊ®3뺧hÐÅj±È–Í?¨ u†}Ωq°šAet¶ e4*2mË’Ô4cl|®TMÒʇP­a<Å`8¸é€}î%SGh¸é ºâ;:†Ë­¨1æt•Š_$N’_t®Pn»'^Ý[R[¬KÓÕû#–;Ìßš/¤?ÂÎ{§wµ’ˆZ¶œ|9GÆeT¤ýâ¶$…>9Ÿ’ÅÖF³ Èhç‰YrBs˜® _¼³QÏÁW>B@¥³¼.K½£¿£BþîšÉÉv ^ã©ošéDµ‚G¦æ€ W$À±Ÿ3†—Óì³ç<‚¨qv#ñ€s.dE…l¾3À_Rð ›;™œ¬Gøx!w¬žoŽžú™I µáð?‡´ÃÁæOÉ“~©ÿ¯Œ­5¹¢d?#šÄ¢ÙQð«ÃÏ‚Øb Ó:TL‚ÆPÖíºÉÞß LÜç¼¼ÙK“1ÿ E72{>Ýôê NYÄG.å±±|ÔòTˆªò¾ÕÕ£ËH­Ê£ã~9½" Uü—d,b%O¬­çäšIÆèûupÂÙ‘XpÓEoÜY„ò0›xÚHÒÝÔ'«´.žìáHO xyQÂ#L½0  ÒŸÖ m¯_Ï÷¹XžñŽMÎäÌ$n¶Ô0Þ @Ý—üÉü1©Øyg€Äø|¶ —³=+Ð:Õy´áòL—õâ е±wÚ`s¿'áx/€Ê9¶UÛpO g­Ùf:q`ÃÀÇУ.·“xÞP¹šH,ûÓ—#–ÆRØž0%Ÿ„mÙXÆ¾Ž¡ÕfÂåû‚T£V£P"£eþìÆ³ˆ¹ù7¢#í‚ù ò6i|œ{¬e€œ(Ï¥Òrª€Úb½2ç•-]˜XÚO/~¡w 4õ6ØHêGf²ÁWsæÇQ-¼×ªr´´(Mð)^Ì¥näwí™jà¡Ã¬@Lò8¸¤Zû8!šd¶Û=zÃ5csÏÑ‘R_T’ߨŠïQÙE;Á)²¼ÔiµõJ·äÒPü4lQ'íOƒrëí:`¬Í r/€Šzà åùßi‹ß¹æ¦ÿÚ<¯€m™”¤­šNævÉÇ«5™á9öùÐ |ÎWü_çA2¿ô RFÿ–—‹uÓò¯H´oý@øÎ[e²:¬™i’©¡¡FwWõÐíM)Wˆìò÷¿]ž{t”ÙÓS]’ÖpÂ7êMV•æÛ²N>%* ¢ç¶ÌÛÒ”áDºV;Á«ôƒÂ.ãâaãƒõœ ÅæWÈùîÄ!5>û˜C,œÎ´Ð]c™/Å“æáà7Îoœ-'C;벚„%\6øqåÅèëÅó³èÌ3„¼ÍXZÑ…¨¥" ÓŒ$×V--Þ«¹’·„ß"XÌà9ljÊ>iš3sÊu¶ë’è{`¡»‹¥·û{ºÓ*ÒÆàØr–ŠÕ¡,¦;»ÈŒmF`m <žªÜç‚3Ù¶)µ ªÖ¶'bWxzÚó]®xÎÝýÓ-ØF•0ì>¢JîµLg*?é—n¹AãSö_o¥Ë¾ Ÿ®°yIpˆª¾É­†ˆ“œsP!qʬø‘a¨LÔÙ¹µ^%™ tÉ‹¬ÞÅO!Y|¶æ×x^g‡×pû'CDø›d]œîÀMÈ|ó‘yÀž6ëÿ.5ºÕÓÕ 0ä}ĉñþòà˜1ð~ \{¶/kWÅŸŽSÁ÷±])RHÝ5 «°"Š.žS:rùŒívUJ½•¨’ 9N~Ò˺‘¶Äe6U_É(]óƒÌ0ÏzýÜ[¹9oü:\$œ „èu†x„0B S°½ºyØòP¢íÁWv¡û+W‡ä¹!8ɯ=,+›-Àýhüù®|ŒUvpÓá–èdC%Sµ´ïBòn—}N¤$ÅíŸ Î*¡¡1¢ê½#Oþ|…D±È¸£š”œ”ô+ŠŽ]B>}fmMª¢ÿ½§Z¬‹Dy8Íêôî›>ÐZ5þq=ªÁôª•Wés^êZ¤Ô9ψ½Ë•¦Ë)5í«ÂÌÿþªënx9õ(E‚µ“ ܾP°=¢r­Ôêeáv°.K¿ âð|ê¾Æ(U!òɉÕÎøöIL–ëPˆšÐÑL-ÄâP;§P.Ecø¦Yú‘Öˆ(´Ö>€5‚–|¥Ú—Rºê’ç%B b:ße1x4_\ÓVÜË7#O.k_êÞyL Å Þ@.êÔŽZnô?`G2lW0¯H,êë舾ù38±¶á`™{Û*ŠÉq¹ñ¤Uõù™5ÿ?•¹[•4¤-É•#ˆ·Ñ‘”(s*Ÿ.MÔ‚Ôã$ó•±ù•k(Ú‹>¬á'«\Ür¯ã¥U2}¨CæF…uíì!¶ ì5à7ž)/†Fãù6övöªßþ™.þKfŸ ´bÞty0ÂÞwì‘W­HÕü*ßEy)ΘÆm%êdW±…òŸÙÏÿËR_±B¦‚2¶Š”Õ{a¤]Ã~âÄ›¼Wr€»G-çŽÔ¦®Ÿîi ZàÉä#É*$ä€,"b ;‘ú w®D §gîHd‘0?ÅsÝAR J»c`áÔÀ§?ôEW`㇓«š€ø-Ä:'Ï©V×ïÎ<"êí!ÊŽ³hD¢d>!ßìî2*M¤‰£¢™Rù §=”DÚiñšµF^ ä.÷ÙÝžaL#Œèe-uÅ3q «¬÷¸›cgöÎÐO/4œ+˜Â5¼ú0-»Þ  5{qLéx÷øõzæ,êÞ튼þaÿr-¨7Ø{f݆ãŠì ¯KØ„¬§mÓÍ„“Ž}ðe§‘¨’­æ°Ш©à{mQ6ž§±²åúoÏûIÿÜ~³eôjü —¸ønW^#vÌ-“‘)&ŒÙªü—­qy ¿#k޳u°w Pí3u1^/ÅNvt²¼·ÞMúAnÿe÷»qõÔ½¿nn°…š§¯r¼¢¶¶–¾ž$ ~þô”¾à…!‘E;EÏyØþ±.jÙÕ¡ô±M@OâI®‰Ð­è=ãL!†ùKí¤–/rùÑ 2?o? 1ÖKœ”\Y<Ùèd¨Be€Yç!pÛ 4Q?8KÜ×òøþX·ébíÿo³°44šöI›;p•ö™§òRü­[|5õ5C‡qɃ° Ds‡›ÎÂ1XF͸ʿ^”übâŠ+é­Ù%NüàsÚ Qì³4©ÏýV½+iÞê¥?bŒèÒèóI@R޵ŠÐ,Øp–óNTvì'£ömßÄšãW+±‡.§5ƒ>Þ1Óa«Qq³¶»Ÿ/ûj]-ýN9˘ Îd˜ŽÁ¡+€j˜ïFwíqKª–>Ò?šy•j÷Ùû|l†½‚??¨ÞÒÔ.·VŠÍkG÷;64³¡R†;öDî=&-ohe:ÿ*k@H›JÂ39§AGßûá¼#_Ÿj6Ç ÂŸ×ˆy›„qðtŠ!H·à8·áÍûPðÍ<_°8.7µÖÍ­Îï/ÙÕÎ%.µ&³w+—4ÔÍsc§ú¿ÌËÞ~Hú»¤p88¯Þ$éùf'îô´S =àlœÍ¬p™Bï'ﯺe"¯"4t¾´¯:·Ä¿ñ§5„9ÆÿÁÛ*¾DhÈú|±±ðƒ«Q¦KNͧ~¢ŠLà®b«ˆOè‚€ZÅÃÀ}¯O\][•wÓva­ÚtÁ.P‹«û\û‡Ð2×s zLDoŸZJ_¨†®n…aÅÖ—öqAZ² °»àpƒ™»¯,ùA+ë¼}|››SðUE"bi¬S‘ùeŒ—›+ª {„rͲÈãYt$Pÿ$td«Xí¹½—±IÞãrëQk¬ØÓ—4i¨À¶Š­eǸê,i¯AÑ¿´i!o[¸åÁ.­qÞ(=|;¥€ï¡"KúºÕÍyUþù žUh!¢bYuÍe^•ÕqÓ'ž+"Œ]ý-© AÛSʨ0>8j ¨ÿÒxåQ²Ñ”o S½v§à·û%¶ ‰˜±?Ì’‹YéÔ±6›Ú¹˜ëÿO>ÿ‚#Lc:ìKµŠèEœ=¹RxPšê$¤¶àðj§>«'èØ3.KD? +Bf°%ßÂb³Vïƒd9P²7ŒÇµ1=TÞçåüSùÌò…“C¤a{¿'³Öq'œ“Š×ô,´e’µHh,°¿+ÐtæÉ:\eÈÔ$4GËM]-~¤m­y{5í2¶Ø<\ñüzúÓ$ˤ]ˆM)cÄ0·¦÷˜;KPS˜½OÏÑOÓŸ¸:C©•nk”•´çQhÚv5³Ô;¢†ÐÀÝ=Û.3Ìÿ“í Ò / ´å±‡SËnÖfÙN%Tî]¯Mvü ¿lz‚"ßÓ[±®$4xývõ‹h9›}—Ѻ‘Ш{ hKL?„ûKyÍI÷áHµ¢É=3x ~!)Â[äHúãè\˜•?‚ã_çâÒf‰'¤zã& T©ZëÁAŒ"]­Á #ªe”nEÀ^t罦NñÕTæèеÑÍ!Š'ŒÐ(O3%ß3×ÙFõãŠ_Pzª!ЭdEÒ89 œÙòÍùM4@ëdY{|v‡L¯â£¶T§Rw}X¨¿f7‡'Çhÿ'¦ïÈ¢&±óòüÐjCˆ/Sµ¼ÊC]6šC{S$ö‡7Ñ 8ËòÏVf&ìÀyEö%ë@ò5/ uJ!þվɸ #&Œ~E‰Ý.xƒmo ±äÆAgý¯ÐåYþíßeåþPnŽÕ+Vm´¥ƒ³Ë²Ùÿ?TVª+Þ %žªôòUc%îœ)-¡Ý.#].´ŽûаƧÏR,þêUî9$Y>DNû3Æ÷án6ñÛ*²@Ðx+ YœµËÍÞ—þpì°£ó)ô ÎX[¡Û$€8MÝ©½`M˜ ¼DifFtE®Š5b–í#EY{™¤4ºÍDÓŠÛÉ=Žà<ßY|Ý.T8‘!/ZÐò·Ö3çï»Î+ú¸îj|Éfhuec!VÖ•Nàê:Ò?öÔâµ»­¡¨þÙéÊχ”m“uœ2樌Îù|A¬Œ^&BìÆú¾Yèåí}¬½ÀÖ¨,3éÆ˜4¶ö]VGņH^ެ^»z‘CCÄâlü¤›C3+Ã<Ýßׂ ª,ò=¼ÉØÈÏÜI¢óH·d7”dŸL‰O‡®žrÿ,L†ŸŸ„Ê>,éUûÙ”°I§|˜ ußá¥X/ëÏeE÷ƒ…îÒ,ÕªÂü¸×"$F†×γú·þX¹pÅ@jvzû®b”ôæ£Aeê¥Rœ–º)ÕçmyaÝÊKKýªµ!dc•z;Ó ôÍ£DM¬BØLØ)£_*Àé@†ß¡ª¹BÐs!RYÒÌÝ£K”5áÃÁ7íŸø®jJ]t÷ÃåqpîëÙwgýüs…f]?«O fÇÉM2$ç[Wd,é"îp†qÓ¾êÌÜ)Í%IN%<Ÿ1,t_ËþhL¤Žûm„y ÝfÞ.w'Ï*  y–³„Œ{îuSÈ_¿–¬ªX;pQñ*½Õ®£(ФóåP‰©㊜âíÕ‡æ„úkÈèÿ)¥Ëà#]œé›£PÊÙ±+”Žp^0ÐM_C„1Ibü[­„Ô¶£‰˜îA^7¹Ã‹¤èÑð„Eu-SdêÁ\þ÷ö™ï æÊØ+Sdca3 ÁØ“T××a¿ç5ËÃ_› &Xí*½T{­80§j}€»ì`h¸ž“3i„ I[ZGDónöuúYs2ö Èc€¶Ê4⢦ÐpJ#ý=,ˆÎ§a´)Rl*.›z%FC¥¹ì{ºZ̦›„J{Pr(ç„eM^×ÞÓnDas/9@X5L¾loVZ5@HL_?pK¸n)}4_Kj¡H^ˆ†O+ ß8§^ÇyÒ,îQ5ð’Ô4BLP«?ÌßÍ*ÅÖ*_~Nch—ä.ÇŽ!~Jzû#yõ1Ê3Ýý¥‰åñ~ï.êE-FVx•"ц:Η.A £ÕÃ]X‘bÁž(Ÿ'3PDIÙA"n^i=Å¥hHRh»ÙDZÃH9ÕdH§ü›R¶ *»u /¿ÿ®l§xÖäÍs‚C‘4õ;õS ©HßuÕuÐ…CyîbT.gñdÚ‚L]IC‚i*¸9Ç¥‘F• 8õÌ`Æ­ø1‹ŸLtèyã–vWˆI§Õ _#V¸“Î\Œk‚S*|¢K…ïtOBö%ßã3Pã Yu‚å…ÿŠïúèÒÔsÈî+v&gv ¢Ã²þLZýª…µ†¤ÖãWŸ*0•ô¶%ÃàÃÃ9™(ÍZæ&/ýÐû¿äx?ÇÐ ¾Vëo[·8{OµÖíj®e"®mOP‹GŸµLëœ&ê1ùù >&.3¹š´è›40fí·^t݃ÅÙ;iÅÆø%dv,Ùù Pª‰××x¬žØÇe‹ÜÈè€DŠ¡X劖S³.éá{[}K±‰"¶Æ.ñ™¼š£DË.u|þˆý†«ñ)4¶!‹¹¯êSlc ¨Ãir^O´[78[[¥sÈ-ªl=?xSï½ý~1G“Ö{l—ù…¡¯Ò"‘Ÿ®ÀG¸+ }q¹ÞôÉiùÛÞMôÖˆŽ±á˜ÚÈ—b¨Þñ©…û0ë¯ÂVñ†œZîÌOWؘÄ)ØùÂõk¼ÍC›„‡†š¯„túÒuu/[ aÿèzA^z:ÜH¿Í9?o¹ªBK>²Æ“mûVÚn7[á\Åý­½i®ºI¶»ë=„ ¯‘‡†-­Wª'4µþQjéG_ÇIK9x««éŸ÷–#¡s%ªp ä¶7¯ræÕej§mc[+›“Z Ïs€h¿Åy“vŠï©oåz8зP2¡ãšøÐ.©"úûé¾¹²Sô7I¤Uì×ÁÎ(¢ ×ð= / ¦§tÀÃ÷\_îîDS¬‚REóF¥YZæ1m—¯ª–’ÿG¡Ùú½«·fQ ¥Z¸¬ŒÕ¾àë›A‰*Mõ ÔrN3DTSc0êž#ó¾ImʱݥÛ€Tqƒ±›üÐÏ}uý‡1+÷ ‹e^Q›è‘õ·j9ûY d$ðÜ„¢àúsÀTWÔ™¸95oJ0ñƒ¦k͵õÑDx€WiR~]L÷³èè8ŽœÌ÷Š~ŽcΕ`ÿýäà4]›»ÓÖµñ´§C;X„3¶P‰åå(}¢sÞ=„ÆAoî"žûÃC«…$@× …¹íÕ¬Êü‹âÄëç‹àõñž,þvYèEì„ÿ÷ƒi=:ä»`,’¿Ëž\K½+ÝžKí°y˜-Š¢PÆx¼EÑ4 øŠ¼“ÏÐbóR‘‰°)Á`8%,ðÛ 'ÅLR^Ø'J%²!Ç †ÒßíVaìî6n«#yTïXoS[%ÿ¬hQÓº¨[ÚŒ4 Œ¥Yé>Û‚~3æ`«4sÂÕ¡¬ûß½2ò  ÅX÷Ák‰™¥‚Eа¨ãûÏh ³ËI/ðy/Þ¼÷„Ôö´±OÌIw‰!³æ©7HŸˆd©r mb›„ðñ¨‡–“È%dÔ$¨Zà/žÚОjU!ã²"1 ú>•¦1äqŸìšÍ–óèK6 Æc¯Ì8Y{ ¦KC“Æ«·1%ÑŠ8f¹“H$U¨Ò‚fÚ¿M'ñF5 ³Å<oƒrŒ0&rCÏïËÿb:OO¹D¾Óï¢w”û©øÃìÇMõÜ<+×}í)b<‚Â×øÌ±Ù=ÛÎûÐú8l]rZPUÚ“ÇÖ6uL”,T…×K*X6h\c«ïçÑêšÌ ‘»ràÀ½>"KæõöKø£“ê±ä&ÿrõz¬—ÿH#´„Ž3 ^üºXu*È’9œs à—˜Ãbª”q~ÂTS®2çh]w‡¸Sê)òÇóÈSÇ`€n$Ø7äɃéÁ€O*F¦èv’\~ÃÖ§Túõ½R±þµ(IáNiõ<Úh‘“÷é¾L~µã Í%ÕwEóIÞæ‡¹}.?u(¯¼K_æV ú^&ËdWÜæÿ”ÁoD+VàˆBӵÅûöùÖ½ç}Õ‡ æ9vYíF<ªVáÊ®”4¬ <ð {7(}Šñ®“çfÔåïÀžJu5DÎÐîþŸÈ;[x¶íê |ÂÆÚŠ|^L3õÐØÑ l0lbÒÈAn¸Ñ+ô"gî’'ú¦]Öø÷{p«Ð3{&èŠjoXYß 6hf¶ËßéÔ7õéÔý€õ1´ ÜŠ©žŸÑŠd{Ɔ¬žVסmæz¿Ç?Ì_S8Ž :=ªÀ•&;ZâUrθ}¢ÁZ#}Jâò±ï¹‹›½¬g’0/ ¢µé¯“­ÁA;g/#Ïdx?¡§'ßíPÅ*w»¢Ü~ð ájP0´•¶lâ×ÿ×¥>ÒÌo½ Þk?.³ú‹ò dÔ[)´tXàp’¾Ò|†ý$Lp¯Œ)õ'Fцsõ¾8sÍ0niO÷€M¸ŽûKËt-…¤È=Áãéa¶ù 7ãùm>:'àÕF±C+c,Ù*ÿÄbo($J:2¶?øÂÜT•û­Ö©K -[díŠ&¹¤LÍYyëÊ-#ƒ™°½LÅ UêzVaˆ*Ð ¼0[v9믔 [èáºöâ‡K’Ä,žñº'ޱkȨ«AO'Î7j]€½êcÇý¯Ì°K·ªvvFÒFK¾!H`d+¾žó{„ÅBÔÏÅù:µ­ÏëÆ¥æÕ»iëi.=ëH¹kÍ.È e=ù<ããTwËzÇÕ@B½zLÕ dÊè÷9ÒqM¥x?Ù¸7%–³^˜³ Ô0©¶šÙB÷Ìß·Ÿ$ǯcý™‘ÇhÛy+Ü4͵ñì Tý<ùíàwŒ-»Íd'*p,>en>4héš’ŠÇaKЀ#®rõ ñ ëô3ïRNž]ì–’’þ"¤½Ü¶ô@z’(ÿœŸ/Å¿„ø ¢ÓÃŒ íÜû®9üýCQ¸È5^ÑngÇ P5~¤nŽ®†ÃU5R3I–Ãö“zd‚[cO¹ÙzÖ’Ÿ(çx`Ö±2 =Yè+Æwðã×=òŠÓ7píM¼Úð¤`i÷"ˆjΦz­Üªê¡3Ô²`?r°˜F—Æo}Á¨œ’¤¯ÏXsØb Æ‘G€8¹ZµsëŒ ‰ùº]¤ ƒ ½Óª}9¿“pµ6ûzXªNî{ƒÀ\K…ñºóió‹Ãp!/y’+VŽ Ãí¬yâ_Fé”͵IÿÎu8ÑžèÚ[#Bò‘jad`íbíÑWçðÈÀ.ô/JnòPx™'H|ÝZàKw¼‰¦wb¾c¢y@X"mù^Àaƒ5§ª7×êkSJÜA?¯§¦4T%!-€Â( ç)ìQ%›þô:GNŸQd2ó"y}`Ô’Ò\‹4ñ|‚‡/·CÎ\.’ô©Ç]]&Ù‚œn㕹Îúkµá²Kˆ½âÔ.̇¾zö Ê¢ z&?§®ßløÖŽªtqæãäõ¿éØ©·›QeáR]$4áõ‡ ‡M{àxW—=¸Ðƒ<î 9EIìà¯üˆÁ oïx¬é"ää¸5ÀClÆi¼å -ÌïÏ;Oe5üS¢¼IAšKú¼¾…ðxöLÔYòñ Èò"7º™^¶›0ñ6%ðå.»bc( ñ‡•£é‚¨Í«ÀÞqÙç‡ÀgMqìŸqRÁ'$T«¾4zY,Pa Í&u½Ìq*FÌy‰U\pŠš«šQ?MVŸ’ùJªWxå ¬:þQJ´»ù ¨Xûív±DE ûåÚ< 2p¼¨X²…~”¶[ËxË®?û2p÷Ö…ø’Yq%3n/TÅÂÒë! ²ó„’fMUÇvØ·ò©Åv©6˜&,,oŠ”ž—o:Ö‹LúÇaUãxRËü'$žzW¬GÌ´¾Ð°ç§¡û{'xÕïNª¬ïAî[·<<üÚ‚RÙζüÅ­ËÙyKââC ññÈ qèÖC éŠÙJ—® ö—]ñÌ^ì*Gècø¶Æ±:‘+p€‹­*$R ¥ÐÁ¯ãr%ˆŠÏN¦¨ÿ‡ð€ÿð%}î|÷nŸ¦ÕÔNMƩ󶮯´K… 㙋 ¹TÕMUô ûöï\ü‹¾–†t›a -BðF¸UÀ¶]öD˜2¼]Éωéë™R”|Ü«déáQV ‚m Ð™:Êæ#Zƒk´¢xP~¾†•;†¡ í$a`÷ç !¸éµ²JÇ`t#ã:§kSü&Ø[jF׊tÏ[÷>p@^¢~ç‰é5ó†»ÄDÒix)Ÿ¼>Cs¢Z#°K}ÛbL1 8æÈ£ìÅË=‡*éU^}’Úè55EÁç¢ fèkèfƒ"jKêòÊ }5òŽ6°\›CìáÖÃSʆ!3'dlxëñsÔ•×§šÙ31¯VïÃUFkZKÀ»rk¦‡{oóÒ+5{:Ûš«Ý!/Åp×]Žˆ^à(Êý0Ùe?ŽG`ª[¥TÄ8>½ãɰåi˜q:`ñðnî^Á(®xà Á¾G>Å'Á[ ÉòWŸ^% l7zö.B# Ýþºzj¡­¿ ž¯Xæ1ó|Æp†zDãñìË•CµÀ·ÜI€©N tgRXg1®N 猃ÐÍfäĺ†[u~Š'c=â[Z–‘ŒØßcFÊ€ Ëüê§0…¨HEDðZô@]N˜þÂ…Œv†—wG“èÃê¯$IæT¯`‹B6xæ0‹»Ã¶BKêˆÚ0ITÝxxËG•ÌtG<^®R†TWøüü ŒgYb3[E»ŽV}"•d\Oé¨Âéww¬MŸEzhÿò[W¸tÌ:R6xRpÖ+øãBȬ˘IV¾t¿”gy–ùC“+(·¸º¤s†®ÍDéñêý¾Ÿ£ÂXø%MQJ”veÉ4#á,Q!1…†Ê~VŠoGmÊ'kÄŽ0u\™–r‘Ï Å¤Î5Ç7štkšë)bÉ‚fW•Rl8˜ÿÓÛf¢öÆ—g²[/©(Ål‰à÷¾QdZå¿{zߊcÜÒ”É ý¬¼KÕ$DŒÅãdTð:.hnsà{ ßãp¤u¶³­©^1ºCh±–Ûpå>RñQF¤hfýÀþ·‡+-sò‡qÏìîÖ\yÖ"çò¨ŒÌ³Xr*ïÉ4Žñ=ŽøwÍeèWõ˜ÇÈÕæ‘'3å4¢{YÜ‘ ÄÌÕŸuM9Ó9ÅÏ…ã‘ýe©9”¾‡QïR€r*ªÂUðÝ+ÓøÁkgð±ößeƒ…†Ž;f»Ãƪ” ýéyÔ± èMëL+˜®kgr  /¡-¤ÕuÄ3Çl< Khf¥À.)¢bâWo/ÌArâ%¨Õ«ž‚ÀY½1Ž™ƒUwñ›apàü;(ýªÏ ™ƒa KõœýÏEĘ×o¦õ Åfw¬‰×¬ -[éË$_¹ …ú`®•`¨[ŠZ¬ýâ|‘¬Jì°º~;Ìg<—Ëûóޝ€õ‘¯SXðo¥qglã‡8áÕoàz:ý—s5ì™XAwÍRQMŒ¼ˆèƒll)hCˆ› ‘‹M€óÜÀ3¹×x86NP›£{l6ÚÏßDMiYv¹Î5bfåw¢ °à¤lLœ˜·^xL²Üö×ë…´w–ÕÌoSVp ¢´7ÌnPvØX(õ•ê!1 f:37_kÃðbmt’×”Î'\</7_<ýµ*]xký—V¶Ñ*ÅŽ‰OÇ©žÜXº$@SFœÛþF@5º¡†.9è`ÎÕ‡!ÏÝ <#kîÒȵ¯0zòç›N –¥ü¡Øí¤@! ?‡]W5."#df׋™5çšýÜÖUÏN0„{…P8e´æ22ì«ñòÑ…l½¼÷1l³ÖQ@w̆5B]T¦ò7Ûçéà7¦ Öˆ=¢-ž8†µOKÆhn /¯ò“Öe3Ôkzª&ѹ´Ó·a&’Z1b">O*¦:ÖÒÃÉx¦¼ÃPø·¼ ßlxn(m<ý*%³™Öó¶E·I­;#¥HȬÏ+$ƒLôû<X ¯¡vE”—•uybf,VAë•4aú`Õ¼î×þ‰O!FþŸ(ºéöÍmo^>pnaù%«•¡7Ã¥£Îín&Ë…–ôí˜Ñô›/ÄI¾Âã|ú⠂Ÿ«ŽþûD;\ŽÕXÈ« ÿ ²—"¿º¨¢Ñ f€Yn9^ï[°ÿI©„0†‚wŸÜ>¤1½ƒÌo'h™õ£ÛÅ›¼ÉÜBS¼ƒñÿWGüï🠲hRëÐf±%Jž,×P0xƒþ¤ rÂb^\[Cä¢t³£>Ì j|çMïÑ?2ÇZ£ÐŽôÞDi†| jc¨-n©‘-}ð#=ƒ³”Çû¬§PÌkòøéš¿3Da¥A%ËtWSÖˆÿc޹ßU@.3Ö%,5»!_ò–­æj¼Òhq:Ã¥æ@05Æ™ n5ðÈ$õ®~eÂßPnà”{þÈõKDbôÛúâN5Ê-åU‹y“üUsoÆÅ'¯Ý‘ £9“ÛóaâpñçþŤέ§ŸNŒ\˜jwá Ø~ú°Ë¸eÝ»ðÑ Wl­²÷ʆÀ‘J‡5œ#áþˆtdìv|2¿yÒ×›Ô»BÕ&ýÌW3ëa|À‡šô§ò&…ôöwqI{ûÑ—T˱üqnžE5•ÏçÄŒRü= žÇÇFrcçî—bû2WBhkâù‘‡‡Ú)•2šî@Ç0üÛ}*à”¹ôÄÛ¼ZcÈÜ]€²›Ùœ‹8ë$ëbÀ®¦ÿ¨ú–§®@l –+бǕBD[•ùùÛ;wŸÀºeI„1LQ4GüN¹Ã4'ŽÙ1}Û©$” Áõè>Œå©à‡ÐK¯–˜`#hæ5N Eò¸c”eAÔÖ2€!81„À'°äÔúôJ/é»Ü–•Ö)èL+±‘«–ZCšËå¬" £×INy«Í\-(„µã‰nRÛ<©J¾ðULü³Î1uðîç%é³ñþ/HAN[ã¤ñ×âEP)¯ÇË5Ñ$÷l$¸/A¼ ç®@¥FiÛfcHµšf‹_OÁsäJ¥£§G¼¢Ó!S;d•,º›Møä~æ¾lþ†_ µï9ý6_£Bü‰ro}AÀ3a(þ` Éã¯"¾~6Õ•ß;a Íãa jætîûÛ°ºÀac‘8Eáø4º )ˆl›)ϳŸÊ/Š÷³šðæ‹_™è•š¾”¿ 31MÞ›÷°ÅýÐÏ—R $tíS”“âšÃÕÝP$ 1·Í\Pb-ä‡êf…êW¤š„èU”7v¶ÜfBWÛ’™^ƒÜáÊy!7'Àý¦T#Í‘† _ú=Éò!¯€rUaœ{?²¬NÌêy/$Ü€Oº1¶ÚZ:”J·jW”»ýîÄæ±_!p?½99B•B]W?$¸lŸ±fE¦$Éö]$‡¨{ÎÚbÖœLB\”“mÁz¥ª7µž.ÈóØè.L7G‰@%“Of?˳ §o¼×Þ8ã1>>*@yÔiýýпnÍÒ|¹€6ë$2wº`áJ[i·Ü†2ІÇlU‚ãöÞ߸7‰ ©N‚Nñ¶€lòú aU2êå`¯Ù‘D*=/ÏßôBtÃÁÏ «nø æíƒ ÀVµ˜M#_e¬UÂ@Ã]úU"Šy³6êEÉNŒbJÄîõ~ó‰ÿTO!Àyßî ÎrÄ-Ý̲ԓÎ4臷a€ÕWÄ`saÁgÓ#"þ~týíRچĉ´0°sÿq-U9ÙÕ;ÊÌÐ÷Ÿ‹®¿N¶¯…"Ây8rà÷Ž$>ÄœÐ4×ß§^P7©œŒ&‹*”$àůhz  ­Aâ|BŠ”KÔáym-S`’.Ý$¯¶s…¬ÈêHÛh¬nú'½GÖwí0xŒ@YMF ùÕ%UzCÜ›©,Ûéxʸ%èÊ–€Š = Mug¤ÄaÝæb°GdŠ• g˜;,Z™|òH–­°QfŽúÞ<5Ûsû;dÀŦ˜.Oj3ÚäÄÛ>¯Å)¤qT´¬¸Žþ&§$y•]g ñŸXgøLè|¤“Q§-ÒÇ2©ÄàÜùö^’² ‚j½ÕÒ}ï—•• ÃBQ»åfí¥MP‚¥r8û¾E Ä^u7ÑSùKù , kï ÂºýDLƒi„‡€Úσ‘ý“=ɯ³ÐÔ•€Àqhë¡ÃSôdêû˜²MŠ¢•tj>'bÆÃ¬¯ö²êmœMæÖæ„bº¸ XwòUS†ÇÓ°%DÆÕ¼?m¾G/ƒ8t?þH„Ò:2þŽ‚lÎÂ;vYÁûÌï…Áƒ¼+öÖ òJœŠ$m¼ÑøqgUÖØó¥ÂÀH‰\lÛ¿ÿ¯e„õVPYWŸ± ë NxÍ}J¹"&ÄÚ?pèÀÜ·†]"à@UÝ#òd†òü¸ºÊ+YŽÛ©D(Â"}z#ÀcÎ_w©Œ&=|Œë­…Ý`Nþg ¿ãòÒRy8|Ÿ•~“¡’ùží+÷ „0ú­n}ɪ0*+÷*‰Ê,¶¿‹¾Ý^È‘u p*Q-?&ǰSÂ1h Ct­}‰‡sG~‡3¸Û͸["ºã’Ä÷ùì|œ¡tûC¹»® ½È '-hu/ üôi€¨Ñî7Ϋf¼õÌæ{Q6¹óÓ²h†,“&×Éô®Õ’<ÈÖg b8”¹ðk›ØÖQm4À6\q4HPˆÏðæ¨b¹'½íã%Ò“—Å3…(]¼—$»{·áuÄI4ûS É`/“Ba€¿<‘üë÷ÄNÝãuß¼Ôêa?ˆ£¯ôYé–B«÷<Ì\Kܱ–W.ø.Á§,€àLõãhR71ë¾õ•Y¨ž>±f:y„3Âëõ]Ý—@°·t® 9å²(’$ÔµG£Õ¡@ðÊaüŸ6ž”êè‡ »½«_å7¿îÝí3°½62nÖ£ ýJ¦^ñI±ó€Kœâ3Šó>’q?ôG‚¦XÝÍÜPãÁ/©Y/®˜']!ÊgÚ‰‘ݰºYÂäuà^Ç9é]Q4l “ül+C.T]£,ÂVÄ¢Œ’û:þ2«…2Ý8ný EѨö¢ö2 7ïâÆöð/‡nîœbG‹%؃âÀÚ¶k ƒC°€ý°E…eî_eÚû‡[1M_”èšÌ¼evâa_]ÛŠ%® 2ê>f¾…ˆE{énkÄ6…ª„ Ïñüaˆwf=G}I-Ÿ*À°´Ãï4Û¤ýqþtÑŸñ¸ À ,íQÍöž)Œ€,òþœ¡#°gÐ1}`7<¨a+¿€ô½ vmF@‹ÉôõÒàÝ@1z#qÒ–šÜwË-®ÔÀÈx°Ó´WTzmTµØØíðo€U.OÑ—é#3f!òŠ(=š,¿™ÆÈxòw”þ_>Á­£=—Л³1ž$2põgYÕ¯éLWŸW¡ÝAÀ¿G² »:Ü÷¬;— (užHLC;¾"fVÜQ…9Z.ŽÃS-¥p\ýl©¶É˜ø-ö%iÁ0K ’‰Ò ÂÁà 9ºªÛ<¡¡:“£Ñ!p©ßص“A0šú;>3¿A"÷œÌ=¡£WS;†hõP…/ª:ðD¯.ˆ%ÔèÕ‰Ó¹ã„iX3–7áîˆ @MZõ!s›ØîŸ|54ˆÂÈÀ¼îTwÛuäùê0-í\SÓ¶qL­¿§žI-ÊJDJú£®Ò˜[s¢T°~ñšÍáˆY_íEžbÙ÷¡LPE¿·àbyoÙá×j4ËOíepRŸ‰n"ô¤“«MŽÜ™‚ºDîòËR€-SNä5¤-ÿ˜™[r8­óȯþ òÃò‹6¢•ó>šÇFsU¥£õIÀp‘Ã#Ý]_Xš<êêKËH MUÌ̼²¼Ê¤IO„ù¬?â ;­ #ïýSä›hYqãM¼,.ðgcª ©çü‰n#N­ª÷Íï hšjTW·¹n3‡Íâh*¿#M2< àQ´· Bf0¦ ÀzøÛÓ›“Ç`mþÊPôd4¨‰gdk†NQQ’Pk°9·ª§¤?!͈y“Yߎ˜È*£w÷P.{íá™:ëVgXù#ž6Ôøà%KY'ià¼Æ60nMãÃ/*òðÛ šA Žh+ºªœòPtêç5{Yr6©N)d­MJ¡3ŸÃµÇÎqÄ•N.lCq}Ù(pÛÙXœ Ðü*Öª þጫ¾66þ®Ò`ðoˆÚúŒÿ`c„;ì\ߢome¾W=ølé%ù>¸Cç˜=ƒŠ¡3Ð×÷Éñb§‹Ør8•X;°: aÔŒæ{âêX:#È“8†&Ü @©#~úÂFËìuâý?¸ÈúS1_¸{7e˜û=“Ù'‘Âß´åqÕìådÎã‰Y6i¢¶†E*.AÎ ¢ÙáÇò’ ¹f‡æ3€çŧÇH­Sy”%hïŽp‰I• EJÒ™åùÅ*ï0ŸX”j9Éè\aßXÓ£ö©qH¤ô(¯Ð°®„Å+f*ü4®Af0èÏøÍÜ+9™r`œó¤f'cdrõ„Zõ4D`7Ê ìªø¬ˆ|¹ íÚ§v&¼o,ò«.e¾îXNˆŽS2¥Ýÿ·O¦Ù„—}\:ò4iëo`¦Ô|,5õºB›zû­µå/yŽ8“޼®ðÈ•O—FÒ{•žº‘{0 [ÿfÚÊ<À(‡ëI)­†Zz1'À:~ s¶,vËiAØjÙíѦöÝëóEêëöx·´/6¤œÃY×™qDE¬å›É.›(Ê”–¨sΚ[—‰zÕΫu´ƒT艾uuV!£ü?ǧ ·ézOŽfÏÞ», 1³ QH­ÉHJª˜f=¤bçi|Êž»-AæÓé[1ÒUv–—‚"v_þžl]96p_Ë2Ìêý«áÎTŽ&?üĨGZ<§týè²×ì¨À ÁCÏiÛÍbçàf8µU‚²›ðT-Œ““bׇ]ÿÀüiFv2‡ÿ4fÛ6™_>Ö¦VÇ~ÒƒÓ Â™DVBB>1ÒçYSù^l@:ƒOŸI%£o·aúÖO·Âæ àC€Râ{uhH4'à´ŒÜözÉ=|v¾=÷Œ “ý¯”’6–µüšnjÌÆ›{G¨„5 í²9Ÿ,¿´¡"Rác¹¥¿U€P"-Äp …2Â.oV®¨4)/³q;¡W¿×&*'Äè¹¾œ.Yûp³m4-ÛkÓŠcc]Á—š+¦°[Ev{·–µÌBÅèÎ\Écqhaó½Öæ[^„‘ÀÃ’s¨PqUŠv÷µ#s>EA£ûȸ ¶.Õ ô­»î<1Ä_È6.·%µùÌ‹ð:@âãWž§¯kŸ:ó³‹V fZTÑHhz´Žö윬»[ž€ ãÞÞ´àe€°ŸÓ¤eŠƒ¨sötR ¼Šþ<‰„xe/³Ke>(ÍcGÙÁiž<É ?*?‹b¥Ì=4nwÆ©D®v]¸¢­6ÿä9My3ZôñÓÃà6GLCûZÌûÊ!¹Ý\È’N¦[åLÜSÙNËóWâRn(ß ª*2`Ôìh3`NÎéI_ BsŽ\/ïU=SÍøL´ad^ýùyø«²ÎE3%\Ž~C åµËÇ`ï½à*jP*´§Dw:Y·Ê~2z,…¾ã ¿½€ˆ,ãýR,˜®  þû=ÿ’ ô9œWýÒÕÄŸ8jóX5¹Úí™+Dݽܮ³ ·N"Zºpž#xº /SCm´\b3u!»i‚Ì$DÉWªžš›oz¶=¬J5®ivÒM¨{0™™]Af.=¹è¡N€×&׆—ª_P ¤C¸ä¾º†Çܳ:Æg}èGZ/iòt+¦nˆ&r%-l÷ÝuL>žyi«ÛÓßíÑ#ä™ õlk/¬\=" äY;ù—©æ;S7¢‡”3RI¼ºõ2X¸‡Qö=÷>„ AT«_ñåÛ““½ø˜‰º¸÷‚þa'æðzV7©È™Í@ÇY­°EæI$‡Cé•]»{n#òx#%iŸ'z;NÌZ²Žƒê³ŒÑíšïfƒ’N“ð›æ!.Ýà›!†©ø— ¹]z½µ<üU)DjšØØ\½êž\Î,ŠÅkÒ–ÊFbÚ0³â*©3L£îùNÕ•3¢>îçFêfÍÓ²Œ¤Aî†i5<¯û7Çö+¼=µÞ}ªÉñk¦ÍkogDYžG´²ÆNý±ˆšíë}— üÎÕ¨9•Âux‚õM ÂJáíð8ñFÖ99´g\G¤zM ˆCð†ÃİëËÓGG–éæu©°=Þã1{}Øžäª=¥D²Ê\‚uÞL¥%µL‘ÝFã ƒV˜ëÿ±^¥à*Œ ÎIÊú+±^Õ‘ë8Þ6Cöû'.¸T½†±ñdÌq¹kRÖÿ/(07É{I/’5ì¤yè½CVç–#˜$W¤\~ 4g2äU ¬‚hÇû²ëìÞRzIº—»r¯«Á9mîÛ Û1‹ƒž?ì_¥)x÷b¤ÏË­E{­aRö{ŸÏ&!ø¦tbTiÈÆÿ³ÂŒ›RlŒ -^2¥Éí®¼°“[&;øÃnëzé.†ÆÝ°7Š9I*„œR˜,—ôšR¾õoª^˜HÍ©²„è­4ì²òAþ(W–ù5ãaóiF÷ß´’÷‹«¬º‚H ÝÄNên{‘gxäë…Ví¦~k/ ¡0c¾Å´~”ûEKx#$ZÛrè¨f@#Y(ÓõãÔr…Á‚Ψ¼F·½G‰ßTO£­T¿G&s:÷ôúd–e°ïÀ4é÷Æ|\ˆ¢¦EïÚ¼]k“%i¡Ó|Q°‹C3¥‹‘HgYBøÁ̓¡AÑ)™í^®Wí·W:JGÎãæ-N.3‚-×E°4y~H–XØUFçz ßö½IT¦~©¡µÎ0ix!â’G̓ hj¹!ï{«‡‹Qg}³ˆíiFB˜üEû’ÄU¼ K\ë|¹I%ÅAó(=ºZX¥ÿvÎŒ„“‚‚˜"‡²ôg8 ¹#B¬Ï#° %çr%p¾„ c0f`Bà¬æP„‰D|FTrE/PŸžä’´ERXŠ®þ—*X1š&äÇ»™¥_0“Zw¾|H¶m÷Wãs:|« ÝV|hk7ËT„)«À›Wÿ¹°HVû† Ng4e41²k¦4á6ŸÒ q„«òA)AŒ¯Ÿ·…®À÷ô#”-ëgP²wâAm=.äÒï 4‰æPln" Hyù¡úé\1¦º489½6Â'ï7?¯ â:¸©RœáÆŽËàÐæ!ˆê#6#xM½TÉz–jFÀ|Š»hirXÀ2¹.óׄ™í *7U œXdÓ*˜®øËÇ!™jVPgÊ]°f½?f˜AtbP É};¼~ß!‘+`3pÎÀeh”,H]Õð@(æ&v¦&Ì œ¡^Reî;|TÄF,ú•.E„1yÏ<x8›ÛöpÇlŒj‚¼A꺡Í¿?ÆV¶(6NÌóÃÒ} NÄ,ºÀG<ÍDf,^Dðè<ãñ™’"ÿTÄÆã'“Ø·¯¨ÀÒï¾òÛvM¦€x]â1-hG%Ž_qÚ€ÂÈæ•%^j¨’ÉÖ¼:ÔeÈWÛ‚’u ðìj ½®X7(k´Qâ±Ç»z”«áoŒhÏŽ™•ònAs±=°$ŸÚö¥©Løv ‚.‹OoÛjsîU`ʃµ».ƒàeH)`Rÿâî›e˜|Ì?#÷Ò¶¶¦{­¿h0Vì™VEdßFððZ Å`x&X«Ó÷J×IÏöl¸Å èA½Kf5êVJ’-Œ_šyz°ªÆºÛ<ù¢ (IWñy6—N«•š¶r’FTX8é…ŒøñˆGKYžìÜ^OU¾2Íð)süEc.ÙÙS±ì«6P ÁçÞ²X‘¥:9hÕšƒ±Ã³3ˆwÄ»ˆ’õH:÷gx]fÆ ¥8Æ·âVÏ@ÛÎæÒÕ®‚}ÊZê%=€Ã`ù©Ä|Ú¸KÝû:«èu%8Tèê6D6/Šù£Å•èÇoX½×ÏKêê6¤±`'ׯz„/+¼(Ú–D“ô‹¬Ø~ªyH·P˜h®’!WjHq§°¢ñ}ÕÔþÆÊ¿h¬d<‰^5lënÁ´Â4ÚÄõ¶4T°%·'29ݶqÔY¾_bKq_™YÅuî7²°iîÎKµÛ%šwKÞ.±s-[P:¶Êoæ€Â›O3ô‡Àó*0~L´²á áz„;Zå]™‡¸Cºð~‚Í’»â ”–[EÛÃ{-‰kÄccr§fññ'øJh¬â=ežý*°*·›ÙÐè¥ÏÐ×ôŠu7µ|XÏh"Ò¿0í3¶%ˆIÿ—· Ÿ`pÀøŸ8ºã™Å æü‘ž‹Vuž,³ ) Bï‡{ƒÏ~ \±í$:ÁGhÀYuP%cëxpsKTæû ÿ+>žÙ'lVýz©c„#xÑÒ…ÑdOáð ,ÿQ¨"ÄÇòФɾ6)›šÕ+bP|Hô ÎËv0¼Ô­º•ï±ÒçhZš¤Èú 8Ç ƒY{$%¨à}ŽÀ䥄w©et»æŸ¤cµÙU¨dA hmܾeP<+ªjØiÛ¬¹˜õK}_­øx6>Zò½%W¢ì‘°ì-ùO?_Tc8_Ol*9V\×›–HÊi+½c}¢óq«3 –¡ôÁÑäæKäÒf^@!v°×°w|êþ4:8×zЭuÑz°ú ,ãæ€ù4+êG;¾ÓÃ,†çVQ“¦:9{Fû²Œ^ÅYÑÅ:µxfÇ(äüGâ² ÓÎkÎndÛ¿Çô¤zúªXT~B¯>˜ªú˜¼-ÞîÒ†ý†”Á1»t·PIÒLßÛëD7ïøÖ‰ÆWG Óà %Jülå5i×þôóÊX°`íØü~âý%S¨}^¾¤sø'ñ6¥ 1hkÚmßÎ Cq·£T`ü Hæ|𢆠‡½©iÏf¥ù–;I„*–[܉£DÖKùæHo®%Ñ€×>çu:,àb“¬sŽÂk~(8;‘€•y±‘¬vòÎÑŽ²éøQÄ¡$õ§7È“ïáðRvz9èþ>êÎ9Ë$"îTjØ™ì ÉáVp¼Ü(É·OtÔeHÁõƒÕHË^ ——wË ‡貈è´z·‘šen÷ ½Ó ;[Qî’Ž õxýShð†ÈðN`wÝ£ Å=L0aœ=Énëu#°/}¬ÄIÙ’ƒ4¯§r…Á5[(têQf&æ1T ®Î³üÞØ[À)r»oï¤t"Ýõ(ì©ä™sAÆ&T„/ŒÎØi(•³SÍ)}à]ÃŽc¡Ad?éà ëëÎÓÉs¼ë4 =4J O}ô¼h‘Ì Y¨€W¨”¹NL!ë›}Vâ=½%šeÖS¬Fêgÿ ƃ0RD¬J¾D#cGØ c¤ Bø¯¢ýœÁvÖ%fjÈ/"Ú‡˜ £¼uiÔï£ÑH‰®;€"‡¥>Ňk†¢Fò‰OV‡l£±œßkö}úò1éÛDXp2€þÆDÜ[kî0ÀÂÚ›ø¹ôHn€¸ðÖsUÄ4¸Ò'ëk¡’–>^7Mb$=K·ëîìÅmξ¸ØôG`hö«¸X.þ¦-`º×Bè{g^ÞöŽh"ìûµÇÕ0P‰mn¸ÞS7ÖR ¯þ,FM¾J9}^\ó?×¶YràËF-ÊÒ<FYŸñMk.:ldUà ´Ã_¬£^5õkÈXŠüæ™ð›¥%Eë×xÑÎ˦Ñò'¾?U¡5ê«Ë;/;ä‡èÓ9Ð ’?îéë¥6NàŒ¾±{’ «oì]}uÌeq¤©0½A•,–:£û\’•ûê ô·XÎgÓȦ v.ÕþÝDÈ·=vŸã “æÕ˜­+vÚ±€x°l=' ›è6˜¶\B¹2Õ³}¨–ï;Šek® @îJ©]†}A¬£ÕƒÀ+½ó²]T,F*5Ú,¬µ³Ä.wÏ>ÃêíÅDVû°ÈXç./GŒ? O¶ÅCi·?lC#ô™VP pâ ­"¾pœóãl-íØR$ð°äªß±Ž%),X'àVO½l®ƒÊT£„u|Ì)üCα?€®=fVŠÕ=/)ƒ 2w"½ËƒJ‡Æ7.G_/³²çs°é²²7Í] íFÂB}ÂÒЧŽWð1¶Â1j¹ÝÁă%!H¡Ïcr2y´ãŽ2¦Ûë’C9•>ý×q—mÇnVsîä3È ·ù¬tŠ"ügé,í’»¬z ˜’Üô  9B++›ŠØIÞx–$tñ º”8rkb¨ïó·Íuý=†mæ3oæ”s§p¾fàâ`ž Bñ™†S“ìbu$ j¸ƒ†‰ÀÑÈ €V&Š\è³g¯~ÿioHúDLÁáïÉ*°¨8žä]*¬‹¤ê«í2²| ºñ‚µðÃdÖí‹Ë^FÒ÷í¦XþÔ0ÔYûkz¨{èña–ºTå6ogP2'ìjün'WÈHF‚âõïîi¡ŸñÕªeÕQÙñÛ“kî>àì)á“hër°4ñœã¿€ò£™ õ¬GÈý%{LWµÃ¼óÙ¬êD2*ùØ~“9A]´?ó1<Ç¿e8aò{M“,TT{ KHñ}¿gKWø³2Ž¿XGÿaõ» ‘&ʇQ/åd?F?CR÷_êŠ.ªz•[ÊiMÑ`K1GYå¹ËKšB#?ЉŽZ½Iw)@Κß?+ á&œðõ>ÁPÉdb:¨´#ô¥7ëÏ^e@>鷘ϡÈlrÀ!©‚jƵý¯ ' R’3†os1»•…coØ~9Ûn¨× 85å€iêV¾êÛ1ˆ–Š›vºk"_õžK²q”¨cbªÜJ³á«O!UX²¦wUJ勘9 9‡:AÇ­3ËšÜ<¶}iǰ1µk†Ú9—ŒRØÍ5ã„Wê6ý‚þ0b§=_NhT‚QèÓK£×”d}O¡‘?µs@x?|ä[L9oùHÃÁÅR½Žª°ß­°·‡óîUPQ]–¸W!,p!'}ÎnkÞmáãúÔ…c^y×ÇÀ÷åþåEÿéÇ’R;.ÙLä©Ñ&eºÝ¾`0ö_*?šz ¢z‡Cbx¯~ç9‘¿q€v÷ wÅVe4Ó竘˦¥7çñÀÀvŸE:*R†ÌJ=ÃYü¨œ¸T-ÝP·•¥Çrͳ_Â0¸:ÎÀ€Gç7-"êÇìA ðá~©a³-ºásC/Äjáç.n_Vß{À¿š)ÊI Góm™>¸½ØM)à§ßïÃMðS¬Ùo¶2î57ƒŸÿúׯpÑóp=Ø ´˜ôÎ_ºqèZBˆŠ!·~˜û²8ÂíÇÔdsR Ð_‚Á6é•k =°vï©X÷XèV{YlÌB‚11/qÄɆ²€A2JÍ`ñÏÑËÕcÁ÷èR¡kŒÇ•ÿõklðñ 0cÑþ¶‰ÕÛ.šÉïsµüUÚ(ƒÉ8­ËO™­Û ïƒ{ –œ{·F2éð-,…ØRÌÜ/,Éc-]*‚2ì´p}µL6-{‹½¹¿:Ö¯@Ɔ™Ô*Ñ º~yΤ†µqÿÏŠ:Áª«„8Dé=1 Ÿ—\}†  }P¿w‹.{š­+ˆÿ{ŠL­Ñ×k:¯Û¹qm™hÄ Ü`#gÑ_.ý9ÇÎ7èxD½ÛG±î ÂPhºÛ€øk§ÓyÒ $_L?‘M¼ÐK 6LêŽH$ªrQQs7õ¾!}_‰H_³ÁÞ±8E>ÄZyký°¶±À²¶5ä5M ¬ 3x±Ãj¬Ï>a%jßB³ó3è?R A.ûd"ö"cqoÿ+ÐÎåàBDèojuîÿ^t@ ‘dë¤wº¹„ÅY=(rDXr&Oâeˆ5бFŒ£î·±¡Ì?ó·ƒÊÊŠtn£À¤J(LT<%º6€¦\Û¾L•,rFœM’ˆý»!à ·|rK¯ŽÁŸi2}aEGûÕio¢ÜYä&â¿§LôÒ¹Â]T°å¤†<W¤Ràê èH¤xbþÝàžòÅâ Þ+ïo†å Üâè þð5%…ÔìæÅ¶üW|÷•—)‰@ £¡maj`ägrhqí¤¬Có3©´g„€8Û4€ý”ðE½ðM V,v9Ôþ‘*³òJlT®¡Ú¾™WöÀ+B›INîÞ£1ÄëÏH‰ŒZÊ> ° ÷4¥À:Ú˯Ãk¸ ýjŒÕ%3Uòº–‡&‡n `âü¬y0ÀT—Úl¹Á•'StEJ&±šŒ+Ÿû“.æÐøƒà¤-Q>C_ ôìG}Có¡'&­Æn)–ËV¯ä’ ì";%=€Å„¨Ŷ~¸¡¤𳼦•Ì—­’Ý Å8NLíh©)PËzOWýBTùØþHC«7?²ýq.V>H̱}óØ—þᘆÄㆠüåVZÛ)#¬Má ¼¹ÄÑ ʪM?óu¸¢*ñ¾”Tí¹•c¹Ø¢åðØ¶ j¦Ï^ê ÈPZù¹ß£¯ÒÕA1LÈ߸ îßjyÃà13ŽÀ+n%ö²eše°(¿µˆ±2¸†£w;2°þüžo<*‰æ³~O3arІFÇmAŒb°¢ø‰Õ*€´†•¥Ë9šº[XÇ$¸TôwO2ð`»¡hÀéQn«o¡šöËë‹}Þù—ŒúãJÔÉà_}TˆþÉU µ}€mo,‡^X¾˜}75ÿùvkô;x¼LiôÂù‡Ò°Oã¸õ?ìŒ-l~37…=4‰Jp†—¹Ð”Ùj|¨ùYV~:4cdy:ÕÓV&‰b߃ŽÃßI ‰¡Toד¬œ¾-ƒÃý?‹ðûJÓ^ÂÑO¨t“Ǭ*¸bd{%7gøûXlÒ2ñ6ºõ¦gÜI_pÚ§Ç^ÄF¿ÄÝ’ Ö’¼>#ÿ’TÆg?@›Ížš>·^1CV¿ 2+:c‰#Íó©@(ØÁh©À§Æ”ÁÓËڶjFùë%¡î¤Örî“U¿|Ã1~¬‡ƒŒZeU#ôáRÁX)7›c‚´°M{ôSÅ2œå ;u—¸ (#—?T}[ýŒ‡)§>|8V¹WlPC„ØôbFIïw™ÍØñRè ‘‡;^x¢<= ­Å%yôûÆ8®àŒI—ŒûEš—7AHe£yÔ)BÖ¢E-b3í‘ ]Ôííhaóc÷IygŽd¶503fך*æÏùÔ 7ëõs¾ÒG‚ ºµ¥½MÅ;fȈb°"b6Ÿ‰Y™g;#éÕÛ$ebäÌUb»Ï;•y¤V²Qeß8OK˜õíSžÕúõ;…—©Òà°í£¸5û(‘ß]S´Ž³>WmeÉYp˜Niåmé(õYŽ ïub¢=°HG:O›@•(¥ ±¨ñÏ^wfäN!_+2£ržlé\|©%8Ç*’ñº(¦êhŸe²Â#¤[qN¥êTgˆ=G¥­$1ÿ×)-–ìe:îÂæw¡×\¦…»Vh×±y¼SóÇťξ„ƒùÏÂ[øŸÅŸ,¡¸i–ψßÄËmôß]†HèõHjof/Ë)§Y• mu$ 3Œa±Í+, !ä!hg’òäþ|ùn†33(ÊHçµÙEgþlƒS­ôÇ—%ä—†¼Qõl¾¶¨6ÁÏÂ#3°Í¼ivû™ ¾‹¤»é3iË*ð% ù="k:•«ãXÁ\ħª®ª¥%èœumÂq„ñÇ…WÄ…Mµò}lÂñ‚âô=º‘Ó/`þ¤ûày£ÑêÔ™"ÒmùbŸwBêµBÁSˆKÓ£‹&ÈטlÚ`Eê}CèYÁ…TX`:ÁyByÂûO9*ØÄ™éÁº•#û²¥n¹½¾õ†L‰”²ly“Pq®ÈqMãÙŒyþšVb_>?S°÷<·ÓDêÄ…šùyç!ÂEÍg¼áfÊ}J‚”µ²>†%‚EÝ `ÏZ±lÒÀQ7AǺ÷Úg’j]L.û”á-²÷$g<jd3f®ÜmrÞ€ò`lW%²!ê’I§%è(uÓ˜¾"è™\êvÈrcjlO!æ„ÀõA{øwæ-ó4èCbº¯Á^KÍÞgÛæLaÇ;ïCÓ”[ÉåÙð¾§%«“®e”CXÊ’|:cˆ"«œºÚk&å^ ]N˜rtžÉ¯¨è“%}­UòOŠ$d`æ»êº(A…Rž¥—Ž4‹Š†Åõ‰ŒBP×# 0×΢7ƒ~?79j á&¼œålñ"HW`•F£PƒœÇ o0M3uÁ¤]t—–UÂ?½Qä"ÙFÖ&רusÓµ*MúžØ]͈~ò2†3q”éµ½¶ÉÎÍi#ϯŸ…ªyá»÷&’Ovº‘øeÚf:ÿ•SÀ¶èoJç©Oh×2óÆ/ήë®ñŒŽyjzl»²ÙýµâæØ <3ðT~"\‘‹‰J§-ܰmºZ’"/÷Vß$?,ÜsQ$®¾V·þøWì_ï³cB Œ9&ÜÿÒRø4oIçéðA7F2€¶ Àë3o_¬ÃO.tDª½Ã»ÿÄ8o=žÙ©OÔ§íg´‡þrð­!{íd_`î’ÅœéÇ\a¥çÙF  `y«˜@ÿ¨F„d‡ª‰KÒ4sþ¶ ¤æ´_ß ç¤¹Í€à´ç$Á¡î<¿·¼Ë”_Ãi ¹¶ vúV ¢Ç„/Êí.7ÜÌ3eSüÄ×4œYbC–ŠcDϧ=ˆ€Ý”¶ºN¬—ŸRÚÿ¹ÉŠwðÌŸGq+S{@€”9üžíNvøuÓ o–èÐ[—ó­¸øØ¤w¨c¯×b6FÇ8u¶@ne2\´ýª²[´’|"¤•…b´¶ø®ÅÚÅ+'íQ6±ûƒG\’ã–œßSj½ÿ¤)¸ð‰ÏxóZO÷Ó¯vÍ,9àú:«¤£Ó„Tš³€Ä”_WQhØÇ8Œë+`ï&ª=¤ÿM– ­¹¤_:dˆ‡fv_7ÖTÛ°'„ x8…D˜…ú“ª%ÄiDSªˆ•I>l‡ì)ß–ôr¬¶}{Sû#_ï2^5}ƒma«K Û†?,|ï5~2aצx©_‘œûTVo`ÉÍ  #ð×ó)Ü•ã4‘…ñ퇃ã\~ŽÅ~iÙÄßÀ~6™ú.'vÑòR6€¸1ygtm[ºzºøÍñ&ì6YîBb"ÇC®EG—°”%?´ x#pHÑM ÕíxY m¨æ²©æ<-–fA÷Oï-Dki½kâØ‹½¶æÔK/dÛRy@b¯N1Åʹ­aš6†šÏ c«Eÿ±r…( |^#éúËö/3o£I¿† Ò•ÞkkÌiÑý»Á­„ö‘¬uбuµ9ëÃÀܺë•céw@ßÚn9Å•c^1yVÿñ§p M“H8Úlk0’µHìÜÖÛ&Ì’í5ÒšM3G„A"iøqB)œüEzMŽóþ +´Y6h„Ü 4­ÕdµÏ“zOІÂCºpÈ‹-Câ ©vR»HB ±¥'Îc.l´¸«Â°ƒeeþ³BªVô‹f³Ú|j~ƒ³èâ$òË~,dᕆñ¸¹%©Á¬°CÆu¿»@]ýŠ„š I£-v¾??Œ6åk…qyh—ð“‹( ž»ûÿè¤ÊZíb0¿ª q ¶µŸ@/ÔWh/gî-Õ²îP›ž°ð͇úÁ€xÉïån` `n/üE¨Eɯ̓šgpQƒt:v©ÝuâäH1Ù×~¤ïdAù$£ %ú_Ûî˜&ÚÝs&žˆRL2:‚;+¬])“~Œ‡ `Bß`*¤B~ñMþ*;;$­ž´ö‚dM|A>šF©S&"ý…€Bg2,5µu曦­šÝ“ÈMÎ5ô•¬Ÿ¨R›Yý³`:uB›½eR+åÍ©Z)ÄßéFWOÜðS³qÔtWþ1ÂÚ¯·Öð=\ .²|ªß¤¨–^³®Ê ˬzû "/àx<Í#âãjK&‘Rµw$îúɧîFÐ>¢z’‚>þÊ“áð²ClŒ¡1^¿xÍVÔÿ¾’©½o}Aí8Љ{ÓB¸¤ 3¹Œ{mJâYšàUÏœ‡®nn3]ÆgY?\K¥ÏBÆ {+ÎÎˆÍ ’ÃA..¾Ô_û.Ég<ÑùÌ&ÁSgà²×ž,Çâ³g}j^@µÜ`X×ï¨C?¡®Ð‡<¶¼AG1{4£Á²Ð–ÿ›ÓÔÏÊ{˜D–×YP¹‚^ °4[›‘OãðÆÈméÛå…W¸ºI×øýÅNXm©o(~›`wOVä«ÇU·9±ùàN~纻JW»«‚OÕþxÿ`Xà($ßß´-“6Ö?éAWqd”½ÊÃL½qî ¢1u¬ D«ÂácàAóu#™9‡œ¯®<¯ä­ ÂÝg¢°joáôÏh’0ºWMN:ÅâŽumÆ=£cxjVØÎÛQnª¬Ýuã• Eâq쉺óÔº+PKµF={…䃃‹a¶Ù|ø~ª«ª´¬-¤BæQíó»y»ž»eEAÿ±ûÀýÄ~ŸåÕ̓•måá ½Fà ñ“ú¤h iÇœÉ̸]” ·„¶L²|¸o)þÊÌû(ÝQ?iý P- Ïjã9)ÈgÔ$BÀß¹;ô»ù˜o¹¼Y/Å[¾(. …‘™¥8]÷-¯d÷'iK{u7þé“?½Ù$Ë$Ñ"”<{ɇ »l S˜Š4 z ¨sGU1àHðz+6‚É—­p&Èý¦!uR“Ûäs 6©¸d¢©Eë9ÙSµÿãZ”$…Dä¶·(Ù±'°¬æ¬z º}­ýš±òhS;4/÷êw®Ç°oaSìÚÖ ‰§He$ü›k…Šÿ©[ª[ÐM/ðPÑ^tPÂ¥JK®%3¼¿S*ŸäȤŽPð½;† "C\>¶Ðâ/"›¡¡]€Œ#Â̺œ[ØÝ”½*ªÛ|q¡þ‹U(åù} ’ßí!ù˜„kI \Ôa'’Ÿÿãˆí¹{%G"ÙOk "q.ïI–/(hùUŠ4¦ ª³ÊîÐ+paq•_ K,ȹ· í™ìÍžv*v8Vˆ0E¼º§OÓj°zà¹<"_€që{° pvTÑp¢YÒµ‡•OSçØu@+¯¸ì‰#|»8$rïWÃVkÒ-¸97Àœ Ö`sX€‘¤›cÚš~#…>:|'A”ðڤʛֻO$EÉo¦Pí5èöÞŸß1þP޾öÚ­êMÙê‘"O¥ol1ÝÐPµïwˆ%a9ª“†hŒÐúÌx¢ðŒqÂÔ`Ž‚Ø]ãγe2' $¸—]êbô,Ü‘ä¢NìÉI½ ƒõ¤×°2³¤ ,x ]ÆÛÌ´6¦™%ŸA¾t^eC@FˆË‚øô™£lТ¼(yâül¤ÆîÔœF¾ÁÚ:T[(mÉôJ励ÑÏã{ O\$;Þ˜â5T¡ xgÆéþwt¯šsªÅǼ%3w±¤jÊ‚&xXÖu!§8j&Ǫ–¹=˜ÅôSå+TW½é±‰2å,ñUˆ«øÔ1›æ‰ÈåX[A7äsQuŒ°z§x™a|rßÉ@ñkx€öÈAÓî×°Ï ìu¸-æ±c\_Ã9‡òãž°ØbœáýœÝˆ¼sRªœØp‡‰±ÝË_jªÚ2îœ_ÔÎ ô1$±ŽÄ2æÓ ?b>«öCŒ#î’«Edt8FÔŒV–FZ. ¼äáÿãù<¨­ñôý¥6ı–¬SÈ”“}‚À‚rƒS}²S™×²¯퇽«›†`òø'#1Ù¹}ÚoT¼ûN6ȲC°µWꘞÛñY^÷Fðýª(„†&]|ضҷ¥ÕÔ‰ÕCRHø=T&=¹²›Wâ¿„þË4Jt‘N¨ŠPf˜ÌEÙy޲cQ߸ßËw_˜«ìͪ{½Ú¬d!BEp©2ak¶2ëfLìrõÈ-kîå ¸J÷ƒc7î‘”vfI?xCÓ)Ä^'?ƒŽtèýëCw}%†ÅFÌ;›–Ì>¨uºñ+®ws|‚Ùÿ&&/?ØxW˜ìć/Aq6wTþ®ŸWQd` ë¥à hSu׆§…ü°Ïä¨àvbQ!€©lÕݱ\a¶ôÐиë&¾¿t:&;8iãë³ÌÑØ›"ÝÂB‘[¢«,­ê–j´?!¿.ÜQ 6Ú€à'Ÿ®.ÞÑ­,§9¼íª¦šŠn¨µçÉ’ý^6ƒB–<õò„œç†ƒz‡©4 ´RÝûÏ7W¿xÓ@„ ¬‘×­ “1lC¢k•7´=žˆS…C”ïG;vx¦Óö2Ý×'£ûL™‹Ñ‹õRëm1P$3bîýš#åmÍ>ÄK6m'hºÂ5ñ’sT¢Ë˜µa÷<‘œ÷ðö‹ úH0ç0)}2µ\…ž˜ZFü¬­X½¢µñ¶,ÓnÝðù ÙáNËhµ´ÅÒk,ºóawA2>cîʪ£3‰ÚYˆû¬¬Xúv°) †ÊuZýzÒP6Oz†fO+Ÿ»¯Û°Ýê´›T"‚w—"ÇÙîŒ ’õ'ÅÈ•Z‚qA¾´vY7×rÌ×1(9Ø. 'x×Ã<øk?qS=aíÌaQ–6žÆ~¡ÿt¸cß;9Øÿ±w±„. ¶óðÿM6qÄÈßñ‘FÆÆ¡Uôt~_:§Ê‹ßjî]brDA0G6Ef΀RNÞïúv &þæö½Ä‘‰ÅKÚœãZ™Ê&ôѪ)~ªG츖©Q͸«žÑÉÅ,`˜?ù !ÞŠ«Ê×_˜šÊ37¸pw©DSšaû9”RÚ¹«ü·^ÀB´’­3ÕCCv{"µp«PK$ª‘ñã%®Ý’w…¤±•Êí0ì$Ä_›ôïQ½}À¬¥Ø‹dŸ{kÐã˜<îÊb¸D"‘vÆôÒ4éÔÒåtñÒå-¾èÞ”1Ù[Ì&õ¸KẾ7B|ÕI•F÷&ÃÞˆ*GòmTç€ðÌÏ¢•rƒç¯e¢²¹Âzœ_Ð=]†€¦§Gò;+¹´ÿrûÄ11}ƒÙd_-ÿiÈßEÓœþE¹.ê€ô5g¹îYr'h —d›S'8Mrƒu %ûMÏé¦×™ÄÖ+æ×¦vFú£¦ÔGÓ\HƒnnÑ1ÛD×üRþO\‡{¶ñSf¤ÝX¥¨î«ò‹±›&ì"Ùj@ä;PNÚyKÊÍ%õc`¦¢=ªæ¯dàϪ’KÛaoÿñôl¯¦ÿ©_~¯ž{µ8ÈÝq­B|×LȾÍ×/l–f&âžðT”уâ&mP6µ#Õ¿F" 3kijž º[~=‹…æ±’é9ÙY –2xËÆ;I/“& Ÿ'÷švO°T¢üé“}Ĉ²4žXo„³Ö½²0=dFãò±7¨¶Y"å\Ë´ÒÜ*|°Ö‡0»GÏS=Ø ËXÛ[¨Š8üµ4çõ÷\îv&SvºéßÀ{!ÖA“ •¢Ñ¿R¶S‰³ç_³mÔ"j§‚»³¦Ð‹ÈóžóŽªlž-,Z™××X^FŒù×¾ªéŽ–<¿‰¢ÑŒBíjA5?“Š]Îå<í"é˾ 'ïc\¢\fôeËãðU¾ÑçòIYÔúT³D×ÑÈÉi‰ž2`V,÷2¸ŽR†˜ë1³€0&Ä_ûÛKe_Ž‹òU –‹ñOÄÓKh ”ô/s£¡ÿ³ê£¡0/JpÆs#.GNüNî™G`gÇêGmÄ?óÓ2€(h!H陼JTê©ÑƆY##9Ýý>søíßæÀAËÙ…›ßhx”M˜3©Êÿ¬Ï¡=sÜnf®ÞûÞà†ü4‘ÔY–“Gõó3 ò‰[‡wóìÅ H—Ú JM«äR‚užÌKÒn¥!Õb>î m\¥-Èët{*_25v¯IÙphg@2î$ÀŸƒêK™g/ëóp p´Íк´ð ¹Û=M\r-0V¬á»x8㟳%ÙFE1œ1¸ÈC‰´þ&¥—“‚[Ó teÚ0»Œ<ý®1~4VRÄ`ÐÆá £GX¬Vè?ÝD&©þ"ˆ·ÖÚ¯Üɧò¬þè¼´ "bdŽÄÌr!Þ@ç­:,¨Ü/½å‰¨ÐbÑ PW·‰w "´`ò†¨“¹#9ÅDè¿4¡6± ‘=vç ˆWRŸîû@¯Ï¹D-ùÏt8¿mXºûÆ^opq'¢>)É)WÝ¢¨å¿ÁY[^O•I(GöÌèÆ»“*½z#³d kUUµŠ¢aÁŽ¥tŸQ‘©Ä† pƒ;’Qy«Àngr ’¤ª®o‹?m£Cš »±Œ¯¶KGÝØi¡,¡2•`PñúÛðßVIè®ÿ~ò‹·ò–ʽuåðR¹G¿añ­ ™—%W²›AÂ5Ì'ÚxU¿i´ý«oêÁˆe3ŽCÞg+Ê“~x©+;%C<´ÆW…±íI˜ýX(œšàÎjDò‘狟ƒGèõi•éF?'ãX´³ÖK?«¯ÝH2GÑÌýú gn³SÌ*Vè ŒØ¯DgC©ø˜Ç’b2.ã ‰]Gå3Ÿyf…à×2± ßDþ„(6Ź^Á ÎÆ¼—jÕÀ*AÕôx¥Uþ¸«ú2`XMg€Œ¥¾ÈÕ,ʇ³m60ŽÄíÓ”[x4­YícÉ.öou`U™\Y(^lÃW㜆À=÷/ºÂé£Y&” bY>#·¿ãò=)ïG¤D½Êµ_ TƒIQn£¤87p:¶×hÔéX‚ßåÓ¼—[±–¡„Ôßôþ—4O;‹¶~8'êÙ/aGuDêÂe9«94S÷ ÓÁiWšû;òYÅyñÌÏKH“‹)ަÑZ´¬½ Ñ`½<ˆ–n:®R 8‘PPè´vNüÚÀ.ê ÷Ϙ∜WGÃ…NäÝAy;¢4£Š®n$b¦@cïG§‰Lâ¤p¥;l+¢Ÿœá tì唲pKípOîµF­Y/ŽLuÁOÌçqô`5·R2‰>Kñb}±x®ìŒÂ,{§o¼ÀVgXU¼œ¿Óõ«ªdÑCGõ“ 8¯.våHd­½4; J;f)AœåØES7¶–³>Ê{&V ú× ¨Q—‹àé©5ô2-û«»šLk°£Ö&^pÑLÝú¼ŒÐÞ;`ÔäñY2g¥F+%Úz8Á­+€ÁT@I¡ ¢FäœMsÔs$ToK+‡ÒÉbyC½^Ž×kÏò }¤½Aa_¸t.ÉëÞ‘F‡ixëu†Ó]Ï…r0åV«_Ä⊠ãè5ÃÊ_Qó"z—¸ýoä7Wj[VjhÝf²ý;Üb](Ç€;0)äÐÅÚ÷XGM¾sý–úàõ×óOgŸƒüí=5㟋ç¬Èá“ 0R_쬨Ež^žÑ/k- e;sƒÂH$Oë]Ϭ,ø©ð²v8©íÔ@KhÇSòñkÁÖÂT®¡Þ‡(îÌ„H€!Ã@¨7 %îeÍY¼)0´…ù—” ˜µÏHŒÌÀrtœâŠ›[$èæ˜Úöû«<ŠK:çÛs ÀWâÆZ—…#bÃìþ|¹ø&jµ"=•¾kÛCAà Š#:~eM®ôpzŽ“ u‹¤ï¾[¨—.2FŸNŽp«õøÉðk*þ¡[·R‡?Í Š$@g\nž|¦³ %ªmJÍä—8ÆiPR$¨Wà÷_Zµ¨–Ï»Xk ÍÔú¦#níª`ë¶>…ZZ˜W9NÕM„6—ÛåXJƒñª+!@j¹™‚Mks„Y­mÍçæ½ˆLš åóKq¸t Œ¸”bS‹!“%IQ·I©Ýrè—,%{ß»14À­ˆV8­ýãâøÝh€Dð›@èÍ@‘o9¼¿b´uªùÌ2ú“RÚÔQëªæ®YUlÐ@†3@0!xfáÙx CñÔuUy” è;%♜׋êŠ%Þåxñ3 ¬Só`ë7¦k΢³•C)i¾l–¡ ד˜ÈQ =«‡kB2ü ]c­Tf"®tÙÍ÷ri|M¦|âû䒥чý¸ œ ÂÄéŒØÝ—4rˆeš+­iCÇ)è}à¿£±Vpýg \@Äˉrô"!mÄ/Äݳ«xzª ÉzjX00œ¿ôᲜ±™öjÔ'S+æoëô}PJ•ŒX”'ÿ:‘ÖïùqóM ð(ûF¼8VÁ^lT) ¦’ Œ´‰<[üGÏ]§·D¢\†‚B•e™zU—DzJÅCãZ7øƒÅ*Ôêk ƒÈÒpü3¦è*èÕgÁ@íà>·ýWE:S*.!±y‡JÊ{•‰P¤ª»"½TX÷2{·CØèÃ`ÑÁýÅäh#¸(n ½gY!^I†ZUªž¦}cE©¨Å,";ž¢þÚ¤»•„ÁµËÙàs"vqÎ÷¤»ù[JgþÁw0CâÙaZË _\ß¶fTÿ$‹çðuΖ¥6‹¤eq Ô¢ÝæÛ_Ìæ`ÿÂÀòßå…*Ãwhãd…ûs\èS0bg¬Ü2vÕÕ'þ8—«)2cJ]n¨{µS躣‚Þ…M8×\/I2u&µK»ïÓ¹1ûz¸šS´#ЀL¼ÁÈâª=ÊJ YDCð'þÔ1¤¨÷{”]Û£_1ö“ÝN“Ÿ5Ç»÷¼²*|#ô¯‚wè›í7ø ëàÕ¢ú:_²r‡°…‚E„úÝöL/çùÊ7»W®Ò˜9Kçñv³/¡öÏkPø¯/Þ˜ƒí Rlª5¬ÆÐ4]êö‚ÓC± ¸P°Ì§ìÎú¨ô‚ãÈч½;$rQðF ñlZ°ƒ::|{&ÚðPÂzÔùìpÜBýæ‹E+Ž ›óíÈV‘åjýü>Ù­sš­\h^ ßó±ajrØ+v—$[ý,ýBZ’øþÕ” )n¿V¦Ó}e}HKÈÄà;ž¡(_lâ°)àCÔt¶|d†*ñ›-ýïüͺø˜V¹µ¹"Öó¢¬z•ã*Œybø-\×:±ŒY+O#AŽ}_JW?Qõ F©^CìQSÓð™˜_‡U€9^×öÿ¡yÁ#JÔÒÀ²»8¨Õ•6Ï‹stž…šºÑÔÂnôÑ žæ{ØÏ2øb™Ö³,›\O}â®ãÛôˆ\‹ü(ØîÛÉ—m‚sÔ.Çx³âFUª µjØ#âV?ÕóÓÍÈO=4šgëW"UÊÝæcTÚ¢ýèÉ6ØL7GŒ¥„‹ÒTé÷ÐÁônžÄb&K”¾O‘x‰òfn†ã¶°«†½‰Χ©.«Ë’ðÄCBû3ëçW§`OlŒy®?_÷éºÖGå÷8± ±‹á*|“g´äø<¤Ì\Çh€’@êŒÅCË8øÕ±*À¼ÆKÁ䜬ÜLFe"ÛPQWâÕ¦!ùRð9eJ•5Ñ!Å"!ÎJ›Ö$1WÌ F½¹†½ØÖ–Ã<„ ¤×à÷ªÌ)Ó~¿à µÇP!‡¼¾$ÔŸÌ®RuônÇè¤Ñè{ù{Âx"1*V@{åÅ3¦ØÌDk•ëƒ fWá>GÀàO÷™àUûíÎ[˜õq8ï|W¨”ì ac‚:?—%·3‡uî#áw›<Øc›á{H4¥‘`<»ÊƒÏÅ ÄCè0ÒÓ7!ä&¥ÍU=çÅ+¼æ‰c•¯™‘¡6º›Vƒ¶m&a甃´GDuØL—À¡+ÇJQ/î¢\;>®dŒªØ”nªnøª|èö'ÀS«yÇPXØÚUä;z9YdIôzFsüeÖûyöÎêîHWãîoúP"HˆzrªÏHæ¹óõ2»ëMYÐåFŒ†2Ï+Ÿvãjÿ .Pžžóc=È´†áL€ÚƒÏOuº^‚ÓŒ­Áù=íZ6K¾þè ¹ ÒF>æ_.Æç;ƒMŸ´îóäŒÏË£© ô¥ù$a¥ó:Z;˜ªîc“’ØÞÎvsår˜ä`|¬Òb>w<ë¶ì›ÙO¶m¹goRßDM”ÕÓ¸ÅXz_Ï1AÛT‘M9·Mïïæ2F§´ÿíLØ`Cd«~àYôbš F´F!kÙ“—8ÑO-Y€ôáð–í¨r­êB ŸJ‰ëœ y[‚B=2#u­áG‹q§D7GÔ±ÀÝØåYpõ\Š€r½‰©²’ä€;ù§ƒ‹+`*—Ð#,ð…>3. ¹…èOsœŒ•í¢,Wp)È+ƒãÆp61cP±%‘WéþÜxœÒBvåÊV‡•&k« ‡Gç!^é¢!Úÿd§‘´N¯xÛi;“F =¹š•›Á½zÆRPn—á/=*>ì8¨£ê`u•ûæT•DÉAÚJná©y‚°Øs[àX‹|•ÓZüó¼ÀDåwdšÄ1®þôÌZ~-<å•ùFM‘âZ&õSú:ÇŒ‚¨¤|ÚJʾ1¶e·±y Î#Y(í–%‚cu¬e~‘¥8R´ 7i]åÓ†ÞÂb|äëLFJÊðž]f6>ýI|ƒ•é0ýõ'[\òù'ðÚïq±¢è.>¸|"£V…‘¨‹=É`ôß 1òM*ÐH3/0ë¶|šµ"€èëâf㈅©4’t¥úŸt‹ÈüfzZ®ÜYH·úH^ä´…Œ‰¹nç¡‚Šg{Ÿo*Ë+‹ëÑ2ùÇt˜jUŽÛlvŽQÓ€3³„9XcnÌK*±‚l/…Pûl⼓2'0:Ïž‘u¸¡,ƒ¤gD¶ 'ŒVâI]|õXýÚÿ뱬[IRðVçó´”¹F¦°sË·uFü8-¯/y„?­Q ÓÿLµWÑÛ¶QP% Q¯pÞô5‹n ¹˜| M«8;œ*e¢q{'—Bþ¥ò%¿âédC.|‚m>%潈…zºJ1æ¨Ïµ¡ß·ì*U¾4@ÌÓ‰&þ_É“ÎgÌ·rE°È°rW®Ìb"…ýk¦$ ’q¡>"°*–-ùø_½H™¥G¬Êk\PcAO£Z“‡!YUãu†?oú<—f@@òµ(ÍHÍ/ýŠ©I[nñü~¦*ɶ½,$hY-xÉc¿&ñî‡ÖdRÆe%g^ŸüHç7B9´ñ7mNSaüù^25}YÇhÄ:92c !PðpòÆÿL¯[¢[c¹¯kÍ×{®'ž1ƒ3:½8¯¯Ò¿ÁáL0·pÌÉþ¿j9‡ú„:ØýG¿Ìu´FèZ*ÇÏq¹#ऄê-uÙbE%oŽŸõBF,’û#×íî%¸æÞûzýaWÏ®%ŠEž*k"xˆü?™oB_í_Þ%ˆÓÿÄÚ?«~èè1}˜‰'æHP¯/–3õ²QcÙ*é“ó× ­Šåèr¬ÜéƒK’l­=qaXÒaWƒ‹ðfÄÇ$ÒóÂ(-Ä? ŸˆÖQÏ—¡$ZÞ=‚Ñ|+¬Q"¢7Èx\SvêD_'¸í¯qi(?èýˆ.ýNÔ@6¦éãàˆÇVŒŸ‚€ Œ°ºyêÔœ¡aÕªRmÍ6ù]¶nøœ ØSèB®  NMÂ"¨ ˜ÚdECDóø“£ØRšÚ*"kk5õÿKb—©É‘ˆs­\Ò¹tñÆðþ\=>7»i ®ëK§}ò¶QçyÚ?á>­awˆ›‹;ŸñƒàÄ)žp¿¿á*Ð%‘iK -‹f)«é{‚Ÿéì·ÙœÏçÇh£ù/ºÑ¾TI>s}§¯-zÃã|Øð<áñ[û£‰2²ñ©TÓ£qˆü”Ç­Ï.ò!qgwÿN¦Äÿ•Y[žôØaÖN ü5“kÖ&¸˜{]zÆÂÌ•aa·>×íGM+¡Ps“{æù5ñæ³³¡ˆvÊV &N/˜j ÃRÞ„÷ùµ—øS};ÇtyA¿‡‚jè}¨'‡D8é’l£IhABpc2Õ†<æž:.þ0‚äTÎIùeN…½”"‰P=“—„>å¼{ôš+¸\)¹VÔ¡]ðe þçÄ-÷ü,×ÈîÝWâÃ5j¤#J*|{ìPr¢ B{SWì"÷)¼%¤(ø§é«`{%>Y5ò‘w¹™ »†6< îâõz«‰KoÆC5Üš«ƒk•DÂdÖ-0wF„¯9¾ŸÉM6Ôæò|ž{ {4ööþ½ÐT®x9ÈiUëKSæï ~–èœ4 Ä´ƒоT¹£3…¢™Í’’ϰEºWl •¸Æ–B»ø˜Ø«eí‹íÐ&ö·‰t,Xy’âà”:áAt›Gø)‡‰æ$]¦½¾,æK–:uUºw±ÑÓeÊ?1ܸp‡Cê™-Èê)Wáü’œ¹ÈÒvh§%ÔÍÎB–²ä9ÅáÇÃjʪÐÊŸC×gûp<ÂìH>*n{gÝ¢Ýgº®_4|÷äÓ,GhóèxD4¿3£¡²C•¾ùÃ<‹K}Z—hÿ7ÝÁ‹02n>UâûsxZ½¤³¤ùôV2Ïûsæ‚0#À÷ñ·Çá䯾ÄÕì§…a€_Ÿd¹×­I=Iœ y™tku'§·u¨<«òˆ‚'þó‹ O¿¤¸…Ñ…æR.¶½‚¹éƒ»Üs쥰P8Jþ‰Aˆ£M¿ÏR\ÓJŸŸ­^kÆ.¼LXäž,´R7ÂϹW9$ØôïFýL›¬‰1<­­â»Ù¡¤lS5ždI‰Ì¡oýG~LÞ¹è£òWÙf§"±3SÜPÀhõÿÂZ¯hvdfVmDªe™øÐªVJ³\Æ'm©ñ å…îzÿ¦Ù)Õªb7`æ÷}W$H¢~úQ_LÚ´3­µWáú¦s’»ÊÓ. 6 Á±“)¶÷kÜÔak¾ Õa÷ìºYwpH䯹ŸŒÿJ>A©éåõ V]¿tZsylTï”ÃÐ1í=Wƒ­¿xRþÜÅÀ%sëÌ­/…‘E4€!)°A»|«p˜mà‘=°?©pÅ7¿G*Vxó®MHùß¼ÿm§œ“L¦®Y›t8mõ¡êyã¯@÷?|{®Ò5 ¼óÝÀ?:g¥Í:Sí‘wóô ²©*@SŒ h­LŽ<æèüéI<Ʀ¾‡[Þ¿æbL`"u¬ìpuÉŽ½T{Šlv𤡧6ÍõöB—IЪ|ç´ŽÚIÖ™Úź«_âççŽà“¾µØHÝkgp”=„³È¿ê‰ïdƒÖá}<1ˆ¦¯jrĹ¾ÒŽo¡éàÛa?9ŽVH–#†¸³Vãaû›Ø3j}@èX¦~³l U/t9˜(R±ª*†õ<+Ãô}~ž Êí´>ÿ¿bDo{ÂX7°ÂÖ^vpvSÆj"“=~ð,þ÷ñÅ7'ÚË(%»6GClŠ(äF¾XÜ nÉÌ·ÄÃ~7ùcðà¾Mú*—•3¡àaùÒÈü/~HXÿìeVžÌ.ï·¶°ëþ^׺˜öz|ðÁéDu#XÙÍmFLÁSIÜñÖ,ÌŠÉ}®%éÎsîM¯õpš”ó™ÙJU$‡w¼Öõ™öZYPι€L<ÚñnPf7uõæ±s¹Î.ãf,ø…‹ÿ¯û€wAÌÿà ŽŠCK›Œûµ0!û>wÖ^8ÎÆ¤ô9‘±¶ÚrÚóº -Ký^aNzã^Îæœèq=›Å1 ö矱ˊѿX!‚ûâ·È”vžÔT(ÏVŽ¢ rÄáÝòœDŒ·K€ÏÙK/Ëž¶”YŽH£Û ±ÐE b¢SÜé&ô`fnÈ}ˆî’tDŽ×ëM:S$Öù¤¥.z5B“ˆ°ì±€vþfþ~Ùæ¶;¡4NJf kq@«kIyiz$ÈRåÄ5ɱq²›ègƒX‘þ8¯FsÌYsvK¹}‰rr§qãô>P—±åy¼|ÄŸ©&Òv\«·þvNŒGÎ| E¼Ï§Ê›ö®X ÔF?8j†`üÐf•]lª°v wÄÇÇx›ÓG{Ÿ“,^ÁÅ:ŽZ9ÄòoªØÀLÖ¼ÄRKd¤˜%™ |9p×q¨ÉáJ”+âüð¿"úcà‡Ù®%¬1K•Ç”ø¯tlðØIx{åX/}5@×9%>ló¬Œ)…â>o*ŠÓþÓKôÉÛ<“"¦•,<²亘Æ·&xö%Á}†_ö·ÛšFÒ¾f]ôUÁ©]ð牭0f7ó–l¡êîˆã…«Üìoô8†„ƒ‡Nó|zKžd4PE£¿ànídmZ"/:ä ±)yjßÇéXä¡ ÷¦Ûpjc$Óm ”Y™©|Û]ÌI¢yÝv¬%\0³ƒ>ö8‘W¯u«G"ÛAï6ÉX‹Æ¾7à·¦¹×ë×wÃ$'nE¯–‚*“žžtzÒ†ÐÒÃàL÷ô‹yY±Dþph1üb=óŸ¨pYŠ…y¢7„$tÖ2êiËp#@ ã•J³0øãÁt €ÿ¿Dâ±1ðœòßôž:^’ë Û|€û»;1;}>¤Ó3½ÎâÖæá:‚ß«ŽÑi¦Ê§-…–fN‚0 ±aŸÄPh`ÄÖ }+DêÝIé´‡"ó3… h~zg”u&ÝÁÔ —ÏI ÖÙ…lZfDBÑUâü¶Ê9)†D_JŒšëpݴȆ¾‰!=ìÔ¯7äð  O´ä¨‘0Âr3ö&ñ´×²ýòºw©•ðØËç †]ÉŽS³lØâÀ?9çÇÇ=me“)“Q„ÿ6“UµHðBIâmЉ¦¦¡ TØ¡Û2™4°4¯þ¢}×’œ Ïö&‚ù«•ÔÿOXŸmÒÆÛ ŠŠ\žøAŒ{Áÿ»±ç» úû+O›ìà&Æ.”1ÈúÓîT`d]d ñ wƒL`4dæÆP‚}çðèíÖ ÁäÙªç€u€ÚÙ¸PÔzÝ8mßC b•AüâiŽ–ƒaF¬M)]¬tqñj´LGôBTŒÅ 7÷°CäN˜wŽ™R1LìD•T“¨±¹ª-<ù®“@­jrñôßÐOèɸm·ZÝ šà¾„ͬqð•mós绿qYB—GI‡/(º¸àëvÇÏ÷•¥œ ‹¿çêj}t†é›!yÛ°=®ÞÃ^2æ·xHB“觤 „è~GÖKµ#Ê$–°U‹_R¥'mp’ ØåÇ&èŠ2zW#Œ2Pßtï\VÛ‘µùCSR3L=僔»Y+î°ÙØž†Ús£?½ÓÓ ÜaϢï|ñL+g2W ()nÙ¢):gâeCÊtÙ··x$•v¶d% ÜnR 5(Õd[øÍZìÿôTIf‡C›ˆø>?®ë,Áß$zG´¬›úׯüg|9Ð4›yœÖ ðͶ%|¿Yžƒ»&4:Þ úEyà#)#âŸàö»RcXÏG¬± ÞÌ{H¶«80U5:Ól¸'ØÉ†2q¼:îÁÖ.\¾F…*„B.ç²´Š.¡ÞýÃ6(›Y)œD„ü`ўݒêýɼö¶%Q×½àÑèÇÞÃñGöãaÒ¿;X£ÄôÉ-‹÷É¿B~æ Î0°%\N*6tv7D¸Îèã‡Ê0Á–±¿:MØ€¨½r X©Ð2})Þ§À<Æ/©=°´lò…´´AŒÆGr ânrq‰½Šé§¬ØßK82¤A$Võ/îà@©ž\¿šŠiÊ*öº˜‚EÌ€fk$r¡U¢Ü×,ãÓJøŽìl?ØÆœ–°©Ó•_I¶Ow6³ñ²˜º ™‚ž=ý”I;bNU?JÕÅŒÓTÂl‡ô²¨ÎôÇ¿œŽ2yRNÕXy@„Ät›6?Kw»oQ—-MJÂÃ’+"ë;0çÙ«,?˲hÅgošM•3·Ö³áµlÞî!@peqo 7Ý^>”A%ºš;’‰GDv£¢¨óæÕ»¡/΃¥`š1-ü Ôš~[Ü^È­¦œäéY~æ}àãÖdaÑ›nö¬ƒÅž¹Û-õÑÿSë3B¿uaæÕ¼×P·<8Ãe]?±œŽ»†õ› Ÿ¶=”šñNOÆ+{›OÝKÂEj΃èBj¬%-±—÷ÔCªEuæÅšö³–K+Qºí”¬/ºð³Žz.Š¡ˆqåÅY¿-%…sôÅ~œ“¬·°`„ÂxŠÝ²KS!‘”IŒê Êß;®õ4WåE}ÃlStI.1`´äF»}\v*íà×#Wˆ?ª|êÿ‰šy”Z6’”ã09@<`I¸¶”N×±Oá=Çmg#èºGS¶"‘KŸgþ"YÇøæ ö²åš0 hA«È§¿†´×7zæÑÚ£Æ.¹V€ ™ów>²uG•œ!âß)ËÌíqŸÓêÀû ð'=~±c¾7÷ð—U¼Ss VXN‹¡ÕA†29{aiÝ}D™+ð(Ãã°mt5Ž5òŠ®è“Ê”Ý6¦År0øLRõšK´/+³ÄÆv³»Ëmnƒ½µÝ]p sà ÍØ#ã¦Ñtä>?3 Ͻ¬vÄ@CÌ\rY­óî5S6Lšf6„µ‹ƒ…¨|²ÒÚ˜ °Ëï ‹©”“‡Á8?°þ7§ ]ÚèÚmÔ‡Œ#¡ß¦,Ì,¢¦pôï§¶%mª7¶})ìШAuãø§iž¢Zº2M*÷ŸmY`Tn=¤)š‰|lsÎí,fÜIXjû~CHóò–Aì'YžªÎªÐLWñÀ]ZŒÈýàÞÈOP²ÿt ðVÐ=±Š-qÒ3noø9ßaWðå­ïn¡ðbDDHâÞƒ7ã5]³Òy±çq*é¼™¡$Áõ« jh äƒþè*X‡0]ÈOŠCéd‚¤r-YÒ+ÂÎ!:ðQ¢h§j3@h¨*vÿóØÂÌ(4«ÐFØPÇEMî€s²WæŸJæ´À0 ˜»ÇoÞ+]+ÏA ˆ`]à3rvÃ’³ªqÿù.WkyKêf7CŽR¸Ö™ ÃoŸÕq/1êrìfJ¬BB¸»Éf8Ù¤«ª'ÓŬÀûÖÉñ+¦·ûh6ñ öûŒU÷;î:p|‡J+ÜxqW³Ÿ4ç·Ú– —Wº…/ˆ’À Fœû,¿  ÌÖâƒ~f›nùþ7öØYøo ž`WÙ¯2?¾¤Y˃ÙKûA\;>×>&žc&ã*øB"0%Ò"H@©,¥‘*’ø©…ð›‰w€¸’ØÙÃ~?@]˜]ã…ò€'éækükùÝÄ2—l•…ŠE'|Ô—ÔÛÉ!­Ûj-,´kLE€Åóyÿì’Òߺšé¬ä¬«Ø’X¡Õµáêø#{„?ΙÍKE‡~ë³wQ«__~hØóÈ^)„¸›î±Í×öA2Ýç¯.Ý;ô/׿JÚ>=}&‹±1þ_MŠÇƒKÆÃ—r8xdÎB?ß‹ù7¹UðMoÍ{´Ôs‚É"Ò¥yþ­á÷5l(œÅÈû¡hqCñ<”ˆó²ÕD5ùp¶‡a¸<ó|Ç{6õËk»~¾Ê(Ôç¼¶¸ ø0á७Bñ“µºª+j­i|#ímÍ9dÔ®xü¤’°.ì™É‚ˆÝ¯3Œ¿øô¯‡„v ñq£³”3çCc#jÁ±*¤µÜù…¦iCøÉæÛg¯+O¡ˆa¶ ^Ç^à=J1þ—åþúqç=è¿ÄÂAg°›U°ú‡ôqsªn€Â÷Q§{¦¾8±y±n˜Àö—)ÝЗ!ŒÝ¥úÖk°Aík€­ègn?¹“÷Âì´;¼õª‡»! üArµûªæõ•I*ÄýÃþUÂÀ ø]…"ÁL4áÈéуòÈkìÖá«ù ü¿)M½Ù_÷atœIqp]Óié“…-1­€±€…ÝÀ„ö»6z¿àȶ#èçðý)8¨Ç½‡¦¬&œÄ„ƒ]·ã¸3FyþÚ"ñyßcðDøÅæ³C;;gr)¸£wÉòµŒæ@dÉu_ØÀÄŠZ5Á6h»~C ŒFÊåÎÿ×U‰‘â†>ÉÑ,¼-ma)Ta(³‹óU•ì±Ö‚ Ýâe ü-ýämC¼Œ£­yI’‘굃Á±“[4%üãI3MÿjAbợ"˜ªÁÛÇ]M+_fè¥vês¨ií%~dì¾tZḨôÿÛþ2¡KÇ0aÆîYfº @ÙËe°/¬³MúJ5}ÎСÓó!+ÓQ}^ ¾Fñÿ÷>ÿïLBBäUÓ½‡k*Þléìv¥M¦¼¦4U¥AZk·a˜Ÿ0kÖÄðåÉFÌöÖ±Å'%¢J«ª­¬Ì‚Ëží¼€À¤ÄN:´*N-›Ùo;Î,ØKµ'ªÉÔûù§ˆÇi”Á§yHÔ~N#U5\ÀAïÅ…<.r ¹shz«tpæO¹ J†_¢ùt'çÏÀ›Ô–¬îPÄE@λ"Ϩvô~Êzcu_>9 ^©ö?~Û“ {0E¥û×µ8$zÞ ~E6È‚Eá๚4(ë&muªb!(/Q_¡pkçÀÆQcy¸wÿ:‚DÁßh…L¤ú«+ÆÙÌ{î‰Le•IUa4Ø@NÎ{~º»FªÙ‘,˜¼Ñ½ÀñT#;ô Qõ¯‰F³$ô+¢&­Èk%.O×?Ú̲ÐB¨ÜÙéH…ÊŠµ•ç^úí×}|×g®P„:cÒg7ŠàCЏ›tãÿ5›Æ7K€ÅàˆEæÄzÅØã䨃6°¡ ‰¬ºÞ¤ìÇÀú§0õ$´«D’ì:A¨pRdTʱ»a‹­ RH‡y>o¬`èžWš½üÈýM:`Á€s¸ðV»ÐzDzÆb²ÐU‹F=9Áê®H†‡ª (!H,ÎbkÏSZ¿b¿ê93ò±ÄÖ9mg†Í}ö‚X¥„ºV1Im(¾žµ&±çkzßÖ ¹ y¨Å“§˜ãWóÿÿ˜[Ï=”“­ÌrÙ;òšôë IôÈæÀËþfÃXyIÜWm-Ú+iOòÈåðúëè ?–KÄrô“·¶(bDÝʺåæC‹ªƒÂó-h_N”jò¢<˵T(Á¬ ÕnÅÛ󌯚—C—.¨¼È[Ñ=ꈂ¦Tƒ¢ÆU„·~Ìò×µ[C5LÙÝÒ¤óÍd t±8ÿ|/›yïf0Ÿ q ¬ÂËõÕ˜€¿ÝèOáDè‹Ï¹¨åë,«{NõÅk2§gâp1j¹½G0CÁI-ߎ17_€5o)ŽP´*llc0V[Œ`ج«úê<% [ï’cÄ€¨ q2°FAö…t›;M¢·FÇ!þä·Ú H¦ÄAV³ %¼VxοfÊú¦;©nÁâ-~­$c¨c‹fȆ¥tv€P<´ÖæÛ'5ž›t -œòµîËô)ž±d5-¾ÛùP3Ž­æLÆ® tDuiÁ"é¬ô¾•€?§ÐÕöØdÔˆ½äÕIÓ/Õm4ÍÎ n†¼CZ¼$ÑPµÜ/Õ}9ç²GJÔWì4(UU± ‰¡Š¦aУŠÝb¢§ò¨q憷 ™É¥«xàéU0V+"Êbȃ巇4/QR@ùpŒ}î]xÚµ+ê¾RYF¸èR£ÖuX[Üõ¢•Qnº%žÝwc‰í÷ÞÿìÍ2rºq[¨ûMÄ?ªFSŽ&Ìk,zú¤ÀØg~e é_ÄbÜÅÞÒY'ÑÕ[Àº}Z5ûйO€ÅÖî@¥ßÉ9ìÌ“—M=Ç<Ú@—‡©_K¤ÂY§å#'ŠX͈I }vÁ„*ûwþaýK‰}¢‘~!»jŽÉ5þO²†ØX¼êÝþ±ð†@^QÒ@êhù[d Fü@…q˜È'’;Ñ󔜕 P¨|ŠòA‡|Y(VY/'ü'ñÔ;¸Ý½žÞ/cæw ¨ã—£OŠy¡kæG´Ày †ùi¶ã% ª"Ú¼Ž@ן\ÜGa!vzböÜŒt”žŸ#ŪÏë ¡¢4§µ8¯ä]Ç[þ ¸;ÓÞnd, rÔ–£À¢RαϘ‘Ýt$#ÿ÷EÈLJxê=ã-ç¿Ö‡Æ- ”—Dæe‹]ãb:t;ëàSé´êÁ¨âC÷Ü“¶É k ¼n'æ½°.I 7ñ5Ž)ö±ÿzFÊ¥·«ÁI˜Ç#ß·¹·Nöäw!ߊ[-³è[(1»o…(F:ÿ& q×NG¤1w5ϸCMm¹Ì$ÁÕè—黥DOþGoÓïÈQs0+ôBžÓ´÷×0ž½9•9.Ññ^mwdò$Ätõ1ÜûÑ (²m¼˜ß}_‘@¶Õ²ø›™mþsÞR_ 8rˆið¾«æwB5lß!FÑÖLi—p.䱜y5Œÿ˜³²ÊcàJ¯èµëîT¥,PÉ:°óY³a¶ù›‹hCg†þÏô@z¶c“Ä÷‰†HÁ.ÛP*ÑëQ[beƒ^rc­«&r¬Žléö'³EwÙ÷teoûì-2ß.ÈOØw2¥Už/‹_"3KkÜMµÃ»K²(´Y›®­&žUì÷Ra~YïÏi8ðP1T,&Ouγc Qo:вsÅ•Wf ¿þ_ø1áhyÕN¹‰€€ 3]JÚ²|d¿A-¯´4QJåaýM¤ú»ù±i>{±2ѱŸmÓUÎ#÷{ù ÜU*a¾Vn±ƒk•ÆjÑêEX;<&²ihàÚËk(qÄ0*°·¦ÈOôcá³G×Z*ŒÅÞm“”ýöˆZ{D3ª-þHî{+ÊÎéÕñgªZt ¶vB÷OÓ¯y„aB¾JUn˜“-ÞÆû(ñ `óTê¸ùbw¨â§[ Wma,/^V¤û1Ùo­r¯€{€ÄïÖßÈ#l}š¡nñÔdz;oOdÍF4Ç“ðîå>kà#k`¶\ö/J–ƒ÷`4€´Ô±šÊÿâû¥Hxð£•ßû”.@‚ºërEpU®æaƒg-‡þ«®è«N e½*‚@ã?ä1*å1Óì‘ÇÄ‚ÜÎû´'µMuré<‹8¶ºâU?Ý9}MÀ%êe6ÞºbGçÙVä¢\Öûòë¹á*ð¬~Ò FYrI¼°vøs76XY²ÝNrƒæZ8’‡•PF\ìГ“ß·±É˜ì LÔ"ô>…ï1»·[0Bô02„¼V+öP]–Dü¥ÕXÆ{k•òÑûiÚ¤ ÅU+þ|2ÄC)W_A;Ag¹ë‰ã¹Ÿ‚ðNCn*X;߯;ËÔZ"7‚DÅÏÆúJÈøùTõÇ!½gèY@yõl£«W°¬xü‡J7Ô-D›\Iv1c·:µÀ;3ý´«5Ã+„åîÏËêù®êÒ+Ò“søß7®œØççZ¿zÛ¥pLès*¹¨x ¥cò–L;·Iq_^2ܪ ã‹ÎÚ—«‚" +3ìÙ}™LÙîè†[OU}¢›cf&šur ÖÞöWã>5º>M¥oÝ£ñNô¾ª‚4À‹hqŒp;¥!ÆôGÇ™ºŸZçþôCÖZŽù’å’xà[ýb®oÞQËk߬2·KzÉ þ àò_§ª§8KC Wè`Q6©Ð,´«E6EìZ¦ôN}¨~Xã'4„øµ!^é(öéÖ³# Ùœ²÷BlWðnSsåç£ ER²9Ên•U(.ìMv’ Sç`Á˜?Ð~Ó Óì `ìå®<Ó`úcLñoâ(ÿÕ¤­òewjqäŒJL2žB!¥ø?ô·„Yw¥ZÀãz³šš׫œÞÇArG3¹Ø&sé^“=ôÊSk’¸ ÇŠOйå!… ËÀãu½ÆÊòü™}>ï¡7ºÅnë”~" vöÊ<#]ªE£8VdµTëŒIq¾ÍBWUTQçÄê…ƒ=+ü§óg¦ ,ö¦e \_O ô» áG xmòòZ‘y™ZqÉRM|¢«{œÈh» %ÓtËvÇÚêf²k?ÝPþEÔÑàßHÈÆPs@%_ S'”ëŸ7‹ó T”a?8J¬ÈÜÈ¢æ7Ûí8qÅWxŽ÷_BÞÓ[HÔG]žHÝ¿ã6HL ª3 ×[ç?5ÌQ‚Ö€,'[=7e‡0gžF–½L"»eCÑšû •Ëwi !¾U¸%j4‘æ–v¹ ºý[|<±9ÎèþG” 蘵úm÷l%hÙßv/ãÐ#RìËšªÅY°:=8, IÛw¦Ù_tòîˆMÁÂÏÈÝÁUdª¤²<H ·DŒ¿s÷QJä4¶|ªƒ×|§Ú`ÎÉù¦Ái'äý ^¬ví|BôMÔhîu•¢ç± 2éž­ ë?$s‰v¾µ#J,}‚èË Õl´X¸\Ùûöq`6²Ÿ8TY€‰ylj§?r“†'¢&/ªÓQ»Éq„¶UèÖKþ:E#«¹ú›X”ãLÄfãðZ£8øæ÷êHA»iÜ$¡†¥Gd Š%Üç“d@2â¿ålöP²|EðÔ4˯ƒ¹EôVæià2Ò¹ã²×|£¤ÚÎç Õ-ršÆ {ªIòvسJ{vŠN޽öºFÅåÕŠ—·¢t;È•?ãU@S!˜_¿÷@býàì׋yà(1ü}­Tùíù)OÚ™Èq‹$~Ú! Å"Æ${Gø”¡Û¸®-Õ†H®†ƒÝ·*ÏMüU+¾J‰³×h®Órâ“ýMˆšlNi5Ä›/ ¨Õz›m‹úÄëJG ô1 šÉ5šÌDÿˆ¯af] IšäÛ,pÉè3c”) zÌ‹G÷>¿„cQ HŸÔa;¡îÄVáT¢d{fùR»[3t.½™ÝM+§Cs|^ç3•-F„¸u»"3{Uýí§ÌÌòÃAYR äÆÈâYé jxY"´&¥Â'Î ‰ÆŒ}«ó[Ua.#ªÈÿ·W™ó{S»¨Ì_¼æZ¦{ =è;ãg}c¯QyÛQ3eágü:vCœ{4³7±F™±-—’7Ô’­`ƒÎ[›båUß5ÎÅ=ÊŽbàöLC#~9¢È‚®¢žÆ Áïˆh­šKŒ¤qùGÌ¥š3 TqBÑ:©G†yv”A©Ë=6×H\(F4¡Êú–лh¸eóä/Suµ&¾²ŸÓo`Y¯3àû£m)PWp8º¥1ÑN:ƒ‡CoœDÜû•Éu nÄUÁg*t :µ¯kµ ¹Ú„V°RÂ4*¾(&´†#êõ|[\Ôýò’Otô髦HžFÐ^¦rA•V^6ï9`> ›š®Íò¾ñeD4çdÑQ¼R‘ÛÍr\)îàf_bÜBÔyÈM´¼gF6~±¾7D¦¯Ë¢*WJ‹]7Ðéx M8l¥âe¶­±Ç—URëõðÕ‘¥Ðy,‘FørÒy¾Êm>ìêÏkcÙÙ/·qÙ~©°ÏÁúà|Ïu%Dzu–»ìíƒmû­‰WFä+" #;œ³'¶ÔÚü-øŸ©æîh³¯þhn,ÂnJfQ7h…V=_Ù­X¾Nj­¢mǸy®æŒ,ÒïÒò•oCPîƒU#=H7‘MIÊø·—é’€"Ö{+nÖ¹8\ãN;?³œÿ1"ÆVâß'ì^Þ¤'E´»ÈY ¨‰×Ä KÇBÞ¢?³â”¼XÉnæÔ&Uê+-ÎUyÜaUŒ Ÿ‡.cÀ"푈SîŸ2²ÌÔ‚èªDÀ¿ë ×¾ç¶:ÝF˜\–'rí&ì(ªûÝDq9®aFÞw½¸l7øÆs猧ÈHÆÅnˆäÝþ¼ygÒc@½0Ï—¹À}*íËM{`AàM¼²ŒúÎÆ×–ý: e'Т  éU„èž ¿cŠA\AHæŒÆ¤F,æôô~æzg…Š‘4ùŒäD_:$Jp¾×á}"óRUèÖCèÎ|d2>‹x÷nÁßá8’´Ç²ÂG³Þ/0òj•“C“ÝÔÊšq&Å8ºà¸dšT«5+Þ§ÉÇ»x+9.“ˆD\J<‹ÏšRcáU‰†GúÚrŠZL1|±#Pi¦º5õ¯8ö V@%tYv—×Þ(å‚bŠ/2a`‚Í>¨ÏãÐŒ…ÛØX¶¯¯I•cçUn…þÊü>ëù‰cüVjèøïy¼ó$*6´bagNrͺ)?ä­Åòß±¨ ‘¿ù6ã¿èÊJ*‘¶K7ÏŒ ]^\1¤žRª ³¸7ȉÍÕò%òPÌ8 þ6›'|=ÏÚC²H`Sƒ¾¬ƒ¥; B*|jiÄ•‘uvÃÍþ²›c&Kó{§ÅÑ‹-†#G‹†«vÿåŠxCõq.–I@g ïYBˆE§¢P¢‘—7²‹‹oåãojY ¸BZz ;ËFZ¿ã³Ô~-;4¤n”ZS4rdûÙOFápÊØ£;ÿ0qÒèQòÝo>[ò¿ ÀPç' ¤˜`¤ê "j²¡ÔçR^Š2aQÈP ã»£‘§ˆhÚñžÚ—tZH«?ITbv+²“¦ÿ1¨j(ÒæQJÊÌËßxÊX —{ÙÊÐÔ¹¼Ê-G;(ïé N,SËFñ厮¤P<ü(2–îªæJCçª]ÛKVK*kçãd§ Evdo{BÒ²Ê/…<ÛmÛq.+DálÕA³½¹¼zéØð k wÀEŸ—F<®Ð+Vý=^_zÕáÕ.hìZ â #»jß9œ¢Ò N9¤ûèÄnÅzlUú,ˆk¤“WÅ}¾›Œ™!©6®Ï’m°þ.ÈÚ¶3·ÏF»P‡Ál•¯/RTågC¼©9MÎ=Tƒ5%$áôF„[F§b¦•Çä|Ò ×¬œ²º ºÄö¤;}vuîLd}íé¯^˺ óC)p"âäN|e7tþV~áÛå]’Ïj·¥LwþZ`ÇnÐꄼ¨žÔ· ÀõZ¡¾´ôyãœÁè®ÇãÚËÐÆ0ÄD¶h|A…µ{¹­ÖbjIkàáËÍ1½«N¦0Çý¢"rã×Ä!CygPžw»ð´²Èå»Âˆ¤áé?zû$ûsåƒ-«RËbfFDÑJ˜WÒÑky²?S? ÆpË¢ 1ÓXÆä©oH"+ËGjÍÝÀ Ìáe–øZÉÒ|Ì#s"Оôט ;)5/Ì^Ѧîàiýwíï··YœðKëøŽ.€õ7£B¶×ùƒˆZÏÌ@ ¨.È0Ä TéÕÑ1¸»Õ˜MZh@AÏÑÛíyâ1»ŽÎÓŠ)º–{‚³ô2/ö%œLV[ÝÊf‘û]3ú5‡§gÔI2œd1Ä ÚAG‹ÔƒäRÌuÄø„psy¢p õDß‘Óc'âK8¦îù ä «–ÀÌ­HEåòÀ ½Zæ«ܯ &{í÷¯¤Js/–a3a^.óE†×Ž'Bú°=´Ë}à(‚!FaòçÚÍ£r~€C¹vA8ÿ¥pÿ`áŒJXJƒ—>þ—-â´Üú™¤»«n{ )ßÓM'[Ø”Eeeaä®® àèVdÖÓÐ{X HÑ!XcôJºn”Õ#káÊ^áÖ‰„ÀÝE§Å’k+&¿Qv¾®38“_§Xºþa’Åì­”œŠxËJ`Ÿ)T…“D8½( ü™öéWöä9@ºsb2QVM~ZÙ²x.›}ñYc=ïGs¥k®‹¹Ùt`D uÉw•×:†6N¿ò‚fŸ `ßÉûþ ¨¡,xÒìýbì1^Â;qmðÖ&2eäg<`Ÿ˜èbãwN¾°‚Éát)Û—"ª.ë°Ÿ»Ôãî)Wð¬f"ºf—Ê4>#hiW(ŸŽou'|²“oÀ-*0±rsC&ÿé2¶oh¼\FÊ™ ³ÿÀ—ž¶ÿ´îçïØ80 Äx]Ð̲jßÂú:¡_‹ŸÖî‘$õOÙe§œŒCõ¾µΟXŸû‹,³£5”íαÀ82òÑA êÝ–Ù]b ä`ü+¾„x”Uˆ¿b`Tu[bã¾0ZëÀÊ@s$ Ы˜Xoì.í'¢¤Þ½T1ðí¡éãg¹=/VUs©×í´7Ù¾ˆ)È´Ý.–ŒÑI]ù]u^`ê¤2õ1¥©ûÝhÆ:ɾ”~CÆ1Ï+üˆåëJ™€s©Üb“e?ã¯d­Û‰í5—Î@n&^†üÅ6¾Òv7-̇ C.3Oƒ&©¯f@×+¦>sŽÊgºo’-Ö ¬¬ )KçkäPÌÓtš«+=#'ÂQ€6;ã>f³‹!HÀ€`Þä—ùNr€þÀÓ[C8 }-þ6ÕË>95K«¼f1Ç‘ €J&M…~Є%cuUp¥™X ‡ ]3wš"MÀ¢IÁU‡évRš‹o@JŽO¥h³–ˆÇ3ºxÀÞ¸Q„jprjXÍ*,I¢ÈˆcãÞQW@$´OeK‡'¡™èÛaJŠsÌ›°nÂ>×yÇ­Ë ©®¤jtM§îRûßgNñ÷rœÛt{¡+*Ó÷¬@º­ðŽý}"Ë»ôâýç‚ÓŒàQ3*DŸ éÌÌ£&»r„?Ðy=áËpuÎA0VÜ èRpI!Áù.,D®oê Ä1ãGY±D*ÿ_¦Á‘ Ƴ;!Ú#§t·ò/é:ªÕ´5 |£ _¬L.„GÃÞ7@€0¢˜Lsöú$ŠÑ—„‡!s‹Ü+œQ-Ô„[jIÑEîB€üÖ͉.ø°¼£®s)§ÇÒEÊÀšH8çÙìMê·¡uBÝ%ëgé0W(~´Þ)À#á¿Å ÒyÆjÜÅÈ…_Ü>9RO‚ ¤[Û8ÖÉ`“õ!@~š‚’ôÂMBÈ äå~?y,P’ÅVv˱!é(ásË yg Ìe²Ÿ¡FOX·rþ7RÀõNñ²ÕR‰lSá,ÒÀøfhÜàík¿en.7ö#åqøùg.•bi%ñöX”!‡Jõñ¸ƒµÿ±t†/¦Ó·ÛŸíßáC0è{ù¼¼Ðq ¢±Ú]R€v¬yS. ÓÌâ  jUó03>¸ÿÖÙ.íÈùCêr"¯e›í¨â(÷snsî«~\“#§<\ºAj‡¹§:wþ"ÔLqƒ9j­›3]h­šþç yÄik[<Õéú¿¥âW!iÐãFƒñ@ª”E)ë]¹=ͤT©0=¹þ{öªc‚üg ‘1%©+<€ Û°|䬥³$ççXðÿ”Ýï}<^»då¥i?ûO±‰Óã_Ð7±N”þ “qr³/fNLýy‰#ù£Ô»€¤ªS³ð•[nì‘q÷\®X\â¡ú”*N>fî'»fSö6vœ×ÄÇR}H®Ï£¡ÌùÅGtνø—žvÈV;¼ðHk6÷ÐjâbP±»¦eD|È–ó Ýø&äzC‚ÐòKMòÏV^‚?½[¸Î–O‡3TØbc.Ç;«¾>2þÀ%¾Þrö,‚5Óöi×+¢ù ÇCàÙb¿cï×ð£"½JýVjG¸N,çfxôÐÊ\Í jàøeëÞÌßemÞÇÙÍ‹JÄi0*,A ç3Ö³¤ßÊç»ÔªN^SÝÿìF&ÚZàš*-ˆÜÅú5å’6ÄnÒ0«,`Ò%PVþ¸_wj®´/µý jËùÂÞf™,t •’Zøu€,7Ó¡)Ê>Æ* H5„Oƒc/¨\Á9<ÃÊŸðá4Pnß-󬯙èŸmh‹°íç±Z¦#3¾Zz|‡‚Ev¢!Ão ×—ºý—öRºÒ½ó“«Õý´.FIéÒ¢0™s¤7~ê#›¢„à=+Wd? 㲟·—^²^Ï&ŸµÊwÀ@ý9®F„½rÎÌ–šjAÇdÁPàÓcði|¼Šýé¨KXär¦$à7­_’þë{>¯á®­ ÔpËW먩W2QÄ'ÖÔ< hæ|$w²›/¡¢lü¬ú±ÀãQY*Û¿mÑ(i¡@\ha=¬´Ý‘K¥œ‰·}X/Æ\MfÆÝ #Ä,6‚“¶&𵩓Ùƒ¦17cŠ¥=¹LIן[Æ<¯ŒÝmýªÖ–ªcúªcHº”§¶›… ÿS‹:<› Eð©Ï‚p” £ìú*Ðdɰ_lMuؑňëô‚ïÌSÐm\—H”c„H®<,üˆ9º|¦ôÄFøßˆ0Ádj KÕÞuU~‘œª²j4/LF_”ð¤ŸúÀÏ×LY¤è‰´.D"£Î¤ÆZQ©ê¹¡%A»¸…ão—å~*Ü\„NŸ‚UH„$dêï9eÁÖúü¥ð)­æ°×5—͸gQ㾬n€Þ´{%µ¡LÔëÎí"Ïñ5:»á÷¬µU=ø,Àô'U ÌÃÛ¸}oÅ…:ò›+Mb‡Cƾ’’P€A€^|bxeˆ©d†CØÿs„±ÓÄð[%â䓃 ‰•AÍû6Lô»ÐNí[t$dtÅÌB •Ù`õüꉴóßøôujZ(Üñ»Mç.ŒŠ¶#¾æÚC̘^´Q‘£“âÃ¥´ò1e?Ó”o·@%tí îÛ/üRß!~™Ó×j͵§·'#Ø=±ìÉÔUL"hm9]9•-¬âZ-äƒdô½Ba „&Â|€™ãu±Ò/hpf•cÐþ$4ÏúÊgDCÜÏÕ_Š•*!JM-,*H3*fvOÐo}Ü´4`=1ðN1§ã¨!Û¿)LXª¯ejµØÒºp+Þª{[åx3[1«•ð9¯†ã¼þ&x*Nú¡h%egÆìøo¤4ùqÕ¿³‚âºæôá‡ÊìYDW*¬èe 4ò×¥ëUZIöVmzUäBb UÏŸ Žé(Ç=o+ 9\B 곑èÈrú 9dÀ±‚ü×Ö‡%.Ö‰&rÉãßtc¨éÅ'ÜÞ•{yÞó4*ï…¢‡'™­@}D:…D²˜ìj_ê•"<¥ý–e)£ž7v&ÑK/‘}ß#ØT8\›8WÃâqª‰ËŠ#_WlvB3ŠßlÎ M¯òëÜ‹lþñzÌfZµà ™>vm÷ÒÙ°èȈ4ýÈuñµFBâd:7pAFsXm:ß»®â…ˆY A·JŸ¿½ËÏÏÇXg^z¿H‚!”ÉØjÚÃÍE¼ ¼×èÛ±‹þËy {Èõ:qßC¾.gPo¦³ÔÖVÕOÿ ˆ¶±~h(<&²2:$:ä&ÜV4콊ŸZ dÉ/2@ý\Lò~þùáCo˜ý-Hy°¦÷nÐl…Ÿ­nSëÄè™Ûyõ2—Zÿ´g*µXúR†Óë#.waªUϘ„»Ù!ËP^µ/µÿHfTü ¯~Ê‹Í<¾‚²«±$~Á,I’¼;ÝN4[–tKˆóZŽß“LÂdÔç3[Rw•PÒö¾²ûõÌæöÉ@K»%´[WXê>õ#0x"R…˜²¯)ØA‡Ü5$G- œyùH|–à7¾m¢eh¾¿hø.Ú Ð8S\¡œ‘çéºyF~];êŠJÓH<߉xõ¶2_àØcé«_ýÕ× ã6ûG.ƒœVoÿÏ%€r÷3Ú6 蘫ìP>MÀ¥^¦³O^ª@éf”I%V•{µ§ŒßÄù¨è<ûý¥Êì_ì-¿Z}).I‡Â . 2=M Îi]:²€V³ÞAðªÓ'53ð,L¨ /u«ºÎ¡ÏÐæ7Ie*‰H^ýwmjßUï¯;<)š¾ÚºêZQ¸º•:úp‹!c+sÝQÚís¹gji2Íà /ùëÑ#£(¨<Ã탵MnéÊõ‘Íü¥£Wæ‰b¦JÐæ…”éÿØ\™ƒ„“ŒÍqÑ=s—×AŒ¢³Þæ÷Ý”vMsœ»k½û”b[ßÝJ@™M§PÙC©#[Œa¹¸ëØ@w'{û¿Ÿ{Ó“Žg ö;¾¬öBë e†D[!é³À_¦>,?sg~¥† „»òÀ wt»çþ ª ¬¶ÄßĆñ‰„ÐteA{y“¶?…™¿1ÊH¡5¦O§>ß½âèçU§3LAC˜ê8ÙÕ™äçùÞ›×V]Œe1OÍ/¯o:݃KUYK699„ZgۑלˆgŒ*®I~¢¿è­îBþ™8%—ä9tOm"'ÌÚáëçæÚS‚3BóNï!óký­:F}ÉGÎííù]éÄê_,®¬‡eFôÞæ?: !åúKIšx6þÔNÕtEo«),Kƒ˜ÖñŽ«ÇÂw]Cû¥»Õ‡Ûލš½4n'¢€þáïÁº™ÏÚ¢>“þÚįEï+–4çJ¿Ì@qseÖp4 ±}ã¹(eÍ,ëR…^Þù3ùž1*¾6k¡ÝXOÞ¾ÍäÇ(»J÷‰ô‰qP Ÿ­  ÊX¸¡j€‚G3ØèòÜ€Èàn˜)[…uª3¬ƒßmNSù‘¯âh3v±§—ýžûbö1oë§ŸMDˆDÄRÒm½Îlº÷Ž)M…?¯÷Š>_Ò·:ÃE„è°Õ3ß-UÝä$©Ìàn“w7ˆÀD*›½ðçÿž A㪡ãOð‡9aÁ˜¯+=ÀÎk ZÛ ÎÛ¸šó¤¢Q( ¼Û*Þ;0oIra‘j# ©»ûs/ü3Ëps’ˆ€ôt¼›lIÍž^×â=Ùããg?êŠ8¹7ßz28£vÿ}H«4´Sû{©—›C:U‘¿öÒ†åƒó7D}Âd4tö?içÄ!4‡‹_¸:Ú{…ë7R1­ý]ÙàûÃ-Ñ6òlu¿ Zìåýƒã»*†…¥×Þ¦ M#­ˢU\ôŽùy¡)Ñ·¤cù ËK Ÿ{oMJ´•':1ñuàFIÆß‡lÀ©¾Ï´ m&÷1š¸â¡êCœý*éͤ‘b|1é1A‚úiúFnâ\\á-ZÉgcëÙÞ ¨eÝ“ÞT¿FWAj“Hq˜‹­à‘4‚0Ì#[æiú(kà ÷´Vpx ÉŒMˆÖ?‘ ÓQå1Îp`Ýæœ4Ê!çÌqãú¼‚Ó`Î}|l‘œ¯ûû%÷5Ï!êUôø+CçXx³ÅSmÝÒR¥ÛRÚ.k—Ò W[Í ´x$‰—€£´k¼aqÁéöcñÈw¼r) XÛo†|´Ê“L¢7`–ÄÌ‚»±Á@¢ç±1—kôñ*æ¬l¿€ «È ˜YÍ·c™ð°%¡ßL›ÔU“#]ÄR„ *αÚ)Gu·¹ºõjÒÐyë¾³+‘²xý Òî¯.O6ˆªØ ѱ4òKjL7™EøÉ}L¾SsÊÐ…øY-LiA§ã–Tg BýûXž†™ÝY Ëå#X'ºs‡‹åb\RÙàxô—>!™üîÛ]¯!šM)ŒÄ‡fJ aGS²«Ûó±Mט'#ƒ ½M!šÙBn6ÐUlõ$|ßvfà(X¨xà,K¢ôØ<÷6–Öè¨ðõ„h) \_g÷•â•ím"ŒyOw½"r@•!:S0ý)•b^í¯ va5ü¶t·8ûìÞ‘ˆ’ÎÆŸdIupì«Á–FÈÃ=ª _ƒŸ&Àp™‰†´y%fÂʹ£6ðë.³pUJ¢š^¦˜õ¥¦®£{ƒÝü·+ “©ã–Pà ço?¯W¾ÙŸ:4@[\k]B2#v ° ÆE+$º/¦É…8/2yðþÄû_2‡¿)1•ŸîÆ~¬£#\«ym—­œÑ2‰‘)õ{ep¸ëŽH¡Ÿ–~m—x/;åÿ*¼ûãø»ùÆx¡Ë?p´»á?Tí@Ü–:­Ýh=d^Õç\:‚j—­âº»õ9t,¡uʈí§@ ˆÂ˜Çvõú!´]RºÿÁÄtR™ø_òéM¥gp*|¨O.†Ó"Ù+kS모§|4;dW€ò¡ÃÃÚ.é.Û±)‰×Ö,ác|3 挷 W±†7Vfä32£V6ˆÒzï× N×5”;±ŒÖV5zÔ¤;Ü¡GE9µ8”ªÐ&ÄÓkC‚§N´ßd'@ H˜¬?ËâñCÔQÞ SY3[wÝ {:oC»U±ŽÙpR¨‹‘ù5N`tõi&s—\Aú:Å_Qz` aFâô] %ÑòÞ-õÈnbÎïîÙÁŸ_ ¡Ý–-ç»Ñ0]Aê.µC˜ë«œ¶j½‰¿sŒé«¾Já>Jš H[!àÏ{íOG„líE*üËÂHß!,†P¥ßÁ-ë èŽc°Ìç¡ó»ó=óóŽ zo™Šæàr´€|ï"lYÌÇÀÑêìýÉuÊIÄÐ¥BÄØãlÝ[Ûvu‘ÀÓÇ{QGKi:Ï)¬ä•ÑX;AÚPV/åÁ(pïø)]îO5ˆ'®öý!8Þî,8zãÜvžÝ úÌW$öŒ9“}rZ "÷/Ÿü êä:c̤ˆP'AâHiÙÚ% ÷L]1„ÞñÈΜM²ÇPsâÚÈXÈ| fšMÙ×ÏlJË0Š®âBS‹ ßZÇ%yºQ2tt?æ„—MK7AÀ×Kr1¼!b ½àÖu7r8i§ÀÚŒv™TÇû|Z„¡3 ˆ¸ÎÙ„úò«š d÷ÁúhYÛ 1ÀwÄÞ·“jfš+5Ë(þâ¦M·r'(µ](ËBåø¦XÉò÷¡nø{•öR±p v†™=cÅϳf÷§óaùG‘hk$­ŠÈô EðV€='RUwC¨}³‡–¨h@ç;_ƒ&–N×}*ÿº2˜CÇYeâòêß•Ôþê"múmfPò/ó;éÄHeÚ¬ù"¡—YW!Õ¡=‚MÞb.T‰n\Ž¥U¼úóÂH"or².SÝa'kYc?3> 0WÚÃî”,‹} aUX%ñ_ý76›]‚3¹> +iQŽ÷ƒ„ä›Á,Í$|šM~wF„nd XfÕÉÎäýÓ”ÅöxNŸ@:ï.î±Òøþ»]¾‡ù+ŸÜ6ÕìxT¢¤Î6{dß_sUr2 :l(ø÷¼Úts) d4—>êKj:­ÉõEhˆ­¿‰¤LAÅËø~#kMLoe7€”<&VrZEŽèí’0¡Ø‹:vaŠý ZJf$7é70ä°¸æQé´q¶\ÇÙ(6eðr¿pÖAZhؽˆŠW¼1\º·´=ãút¤­€ÌöóšçUè²Ø!Åš…‘ÿóö%ïü}øÕlŠ•œ:†LìížS<½Pãkìõݦ"åæ|¨<çýå1Œ{åÊg&,ó3Ár+Ù´3줩PðpoÛã'Ö“#ý@“£4u÷?¾ªø ÛSK9%lFÀ.=AýFU¹Û‰yÝïÔ{ïKµÆîêmÀé·c +ß¾[ÏG'!CG}'”;¤òçñÉ’#‰U/J·óDiåTÍnÛô #ÎB…·¾íÈP4MÞ>Ráh8"‰mµ´}‰†:±†«ÈÝÉ4RaüñwV: «n5ÛPcDò]`áâÀ %žœ×6˜ÛÉêéÑ ê¦Dûáï­ÈÐîz Æ}ŒµM6‚£@µmÚqàøE®QC®R!”k¢>áöšì+iÑŸQ\!û ¶¯húùlæ¼T–×kÑÂ"·ƒT}Ʀ®oíÞÑD8ƒ£ë÷XhsO¸‚„Û,i ¹ú+HT Ö4¹)³šôä ·~÷ðËæµÂ˜fH›2ó‘]*\ž)±x ¢lfÂ-» B|âåö.Ê^ãØn†ŒáW¤ÆXŽi³Ä)¶óÏã¯4uN#…X ß"i¬”#kM;odbˆ¨B7ù]/ÈQ¼‘bÕËä7¶Môëè 9aùn?* ›@Ñ)ðÙ…Šs2ûéœ1÷ÓúƱmìybæ•#!ƒË®3¸÷]̺w‰GMw­X’×òæxìû“ñ9ÂǦô“+ô›\÷tF:öd‘£‚°?3бÁØ©Cdãdo!þÃ~™Ç#ò7s)apð Ó‚Ö¹½ëÍØ5Ù)6›tfÀzÿ«žÈ¨YÉ֪ݰäI—‚p‚g_‘u”÷ÔÅçî(½Jûôó&q¦^%4^;gKÖú»ìÙï©¶QÒ¬.ä”rÖ¦ÌΫüæÜàJQÀP¯  gŒ|UÌ™NÝ©hÊæÀŽ—*×[B劷Á@¾_ö߬ÿ…ZŽ›dxÖG4'•wT×^(ˆ(L:°•/䦫êÚ¿…¸©y ”ÀOVö2 ýígdÂ8È’xŽ\ÊÐ+ŸUÊ…˜}£œ¬ì2=;TSñ¨í2ÄÊïú2i­$â Ø+åêqaIÔSÌ3Žnâ¤ì{¿VvÈñ슯nµƒ,Kd!ý„}{Kðcþs÷Oüí—¼Ò×ð-\l5[3ÚQ v£Ã¤AJ4ñsO2÷Âl•†¾ÅÃ6XÌd˜ÔéEJ­»’랢¸–hRxžG|6#[nÇܾö³oO!÷ÉÎ]‚ÿ!ŒúX0¿’Í.‚9¶²=<ÐuùèÜÜŸ¨6VgµR=´‰Ã›”aŽM&CM«Ó‡<¶,§ì™ËtDiióuuêì(g8ˆ?µ  )¹·R³Hæãºò’²ñŠ—õÜ#ôŸä].Kßñ¥‰ÑÄpŸfÞ.÷+t9 ‡Ì8.¿tøâÚ*,´¥nèQmVF!M„U>oÈÂ>f-P35Á×M ‹yãùSÐë%æøt YœØXLã Þ©ëøÓŽ“zü|DlñFBŸøn8WÅ&U ´|Ö‘[å§‚‰×âQ֨LJ¡I*dˆ5ÿ¼•sâ]]±ö£]ûÜiÊãñ¯†nÀ}TÈš€ÉŠÎ?"uËVoª…1³ÛT5‹­„Û?“ºkA @BïØ¿n[Ö|/Α¼=ÜÜ”û/ Ù$ÔÍSÌtD-ÉdX‰C“ ª¡¾GbRX­UâLÑšø¾T¤9¢¿@ZfŒ†}†_M2†Ó/_ÚYjÓî‚$M½„pÞ%Ç^™Õ_9ѵþÏQÈFP ÏËxB懎Ýò²^!°šhV…ÎÓÐ µ¨]ÍGü'å ^›c†%¬b‰Ô¯´·{O(nª./…º0ÓÕŸ)¿çŠ=Üœê‡ÀEþØÝå— N¾É!یӦœ›òÏoQ½ã¥AáÍríÎ Ãn ³{ É&KQ¹yIµæè Ïðü=gˆfÃýc$Ê gÓ@–r—´ã'©_÷UÊ‹Ž.Pµ4-ù´„ÄÅàFý8ÝÒ³Õ8\5t8‚‘S•ÈÇ›=ÿL¨ŸŠ‘4’†kž]ÚTèš5 Öß#"ûõ˜uuÆœzÉp±:»j5ok|j@©1áØxñ«³ñÖÅ,S¨ÃÛ‚¦i’"¡4kŽâÓ¥8›™ÅÏNÏ »«–†•Áo±#.¹F{l!aoý‹FgÄö‚ ¤Zzo9‚ !йÜDÿ°sÎfB7dÆ*ú–XGñ]àažcs¹ÖgrÔwÀ°´réríü°rj÷àŒL8Ðñú_œµ±jæŒxÁù‰ †k3­‚ɵì™í(Ò´§¶yOàçqò g€ê‚„¹Ñ5Á䞺Qun™µ…è w5¹}@*ã:ÙK#m'%Ïé*(©Ÿy6in%-älxò«¸b{g.B2“½~+9Xû“õ%ƒ!†SdR³âˆ§v pÊ…[¨x¯g ŽÖgö1£çuå–Bñ熡øãô¤ïE‰&yF1ÝKð&×k²1Êf\,œÞB®oˆb»X„ÁEÄÛZ z{r41JÁ±â¸losÚžoÑ÷;ÍÔÖûƒ5=Ĥf¿mˆ ˜(:Uȱý[f¨MijáÝk‘!?À’±™¤ß{Tˆä"tŒÌFôväÐ/$Jpô²±)p X~@÷[&£èn¥âN PVΆ»z ­¤ç71à Õ³ÇE;´áƒ †ú/R gi1¤DŠeÈkÒ@8„f—ÆŒë¿xºÁ_7Øü“‚º2ÛG[×o‚5[«úwÍ }žH«ÒdÉß!gáÍ?°@ 6Me' ËÀUâÕóX‚¿é2ýÚì%;ø®¶\M—³/¢‹>/I¡ïýØšÏaƒbÉ*eêqíïäg.#]—{ýR ¢‡‡„_¢®‚Fíó/yqvìgÚû ôRñç²p OÜR&6Õ·ûn RäÕ£} &,E~ŽÔ†T;¸.5Þì)ç"| zY¥RÙi×X`ëImJ¿ÓoX ¨?Ëwý0‘™3xÏ&ž¿  ¶ƒ¢'épè5Œ×SkáÍáXnÊkòšÐÓ?¥GâKZäx³¹‡§A©ó¼ž•× ßÐQ¼¸Ñ<Å”¤]îÓ»6—««"‚ ªÅŠWúúO–<}@IlåGÜ¢xšgÎÓÀD–©ò9æJCçµkìc±™ÀýB»)CƒòÁÒ:BŠ=~€èH!8ÕþB\{U +¡Ž'Æ­Ÿig#åŠ(rHŸ¤)+ukºˆúTêË*ˆk ¿õü‚ˆm°­Où[ž W#Àþ·”ÀZÕêÁ‘éŽÜA:&œ¶©Ò§þ¨aŽ8È£u®áÙd|ç47äã'}ü¦ê²8‚e?ÂÙík_ˆy4l4 w÷”ÿÁÀ̈Ï7ùØŽyf Uš-ýzr[‹c ¹`•¿ïQ½4NÏ&“ Ô5èñcŸƒú®Y¼F0ò+¶@ŸQh9t6¸Ì 8·”Å6yï7G‹7jfµàHlÄL§C¡&«ÝÊÄAk1pMïmîBÞ‘¥oÓº†“Š6ŒöÜB‘$´g†:O6ÃBÀæÔ6Æ@ï}… _®¥Â>v|ß(µ¤Ÿ  Íí¦‘-nSw8ò”RÜñÛœtxsB.àŒ§U Øò§"|¹g.w‘GXÒq8¢±a߯_rx³÷Ñ€ƒ/=Õ[‡¨xcîû5ÍÈ)ÿêP·ÜƒÊ}l“¸u}?$ªíM"dgV:jÃkŠG@Pª9z{´È*OâYüÛ:mcî*^˜TÔñЖ¥l¡˜K‚Fõ-BB›ÑkË7xdDÄ~FÆŒí¤1‡žc±©SôU¦Óñ·=*~;~ª´½žÛˆÀ’e¯kQítdá¼?{²45ÿUºŸ­g*Õ’¼3nšÝç.øW¦’ä\§½ï‡Í'È­‚'YàÈš›¿Ùó>ñÓÍsx}ÆM‘Ë8D þÚN˜ÏO #ýS4å’ë÷c*¬VýÄ<%u`èöfP!‘Çÿ¯µ”œc?ã çÄý¹`’Y6åUL]òa*aJ¢|ëÕf¦ Ûÿè]íåpQ»ýûYº‘Õ¡4:åh´ÒÄVÄy<[—@ž`y»6Ø™=RIḪ3¾3Ä”b.¤5¦Âï_gz0wÑ®%ÎTh+Úù¹‹•Ð[8ȹ*ÛeÔ¹"” GzÅx  E›^*”8b ÞÉ’Bƒ.¾­CEq§®t†¥YÊ=YºØÇì Ö‰oª_!lA~_ X}í½| èù÷J§q£¾þ¡¼¢or‰}Tô‚$ †S<ˆ,…fï,ÔtŽ=~¸ ýÚ&À` Ѿ9æGS ½¦wäц҄Ǻ^OCkÈ®ò¶_ hPrå eIÓ¬TÕ—”ÀE–]¤ó¢ò²—§‡£ÖwVÄN½´¼Îd@Ó}$û¡g\×xWQ*6㩉Á¦‡Ïæm>aøÉ–¦:?¤'ëfh†Rn¸ÃH,!•å ëËCçJˆZágRƒ!‡#cZœÉµÐÍÐ0Qxе áåèQ½èÛ`0Š~H?‰[ï8‡Ú]G{ÿaUcw+A…bücäb™ftu0„‘ð¢]6/ænü=f$ÁS^GíñZˆU‘¼sJßlûA`ͽ–ˆø{¨"Ö˜wMdnÁ¡ð}"¬I(:ÓÛ~¬ Uœ…šÈeüð‹BJ³hqrºcOû’%¤›šmEüvªÊÜÑ5ÇYJ{í,‘òúd? äjÇ}aE”½;Þ3!¾å!{Ï`ùžQÒ‹¤'Â8P‚t°‘"$‚P2ùz¿úqŸîÓÛÕïz%|Ö{qAè€|Å7RÍF|¡÷ü†øCª$§¤`¢Áar«9nªÍ}êEµb{ÌJ„'ôžç™p¹]ohŠÖ=74ÛÂuí®Œ„ -¥h€Ø’~ZqùÛ3e|›¤s *Œ Ÿ7‚É2ZÔß U2R7:!#Ià…Çõ½]BÅŸ\“1ƒ6-pkj¯€•J;­Œò|ùçƒaq_®Žþn8g;D·ØB Ñ «-¹ÁaZâ½qv‚ íYypª¨Cþºú’›Ö^ "Þyˆÿ\;—Ì&%Á3ç´;FqÌ–=ü[KßUTa9…61ÍçúpkbªMzÕ³íj¥OáïÙT¶Œ_2(² sWê¼X7c YÿÑ—÷ù,ww5úé“>79ê€ÝÙµm‹Ê"3¤D¯PŸÎÉŠÑÃFª,¦vx†r‹ôn¶j£„K~„Ëʳm®>~27a+ÑÇ.#ØdÀåŠs㟞î~—¡sy8·-N‰'¬Õ2ËzN5œ}Ï2JOmÀÒŒ˜i&5§ÛðˆKîg¸•WåB£û¤Ä 1‘¶l PéN¿ÕIübNKõ˜lEϪFûÝïo3Î7ôíZX»ýî1¸f3d,fjfg‘P™]¥çµÏïׯOèÞ¥§{¨KÒ<ägy2%°.7ökè¨1 Õðr®âè …¶®ôʘ†.[Nƒm¾ùÉÒµ72¿âþ¶Žäˆ-%m£Ô{T_œKBåÆ vÜ׃k¢ÀÊ98Ø®DüE¸r'Õ7ˆ˜Ó9Ë”/ã„$’gQH¥úü¡ì½SïJäG`㺧ëÅ\ W$e±¨Åøgæ!cOÕSÁÅ¡Â- 4ööæ×û×ëUèPÝÇ×ìʼn2ëŠ/þŒ"—êgÔÉÞx]l•ö„„#Z©mÔNý#Ãg¦É§èÈäÎQu¸–«½T'Eø‚]ŠØ’ÝX¬IË”¹E߯(5ï?¯µ>õÅ£†³æ’PB+¶8›uWUéíFq:9ïá =¬“8ßÌb£ýýn'ES7ó‡}”°Îxü‚!ùUM¯ÿœ¯ Ûv‹Âå0>§k5sJ:#G'ŠˆÆ7“No}-KJäëz¯1`û¹|EƒnHd+ˆ)ñi€6ÿ\BOìÜeÜeî¼þäsV§ít Šª&ËÿН5oî´7«ê€·àmÍ£Dѱx~oH÷¸)ŸomàµF=ŸË~ÓK‘«®n“ú n"‰Ö•»¶ÄxµÀÎ^_5NGB€¸ EGËâ§‘¦œUÍ¢ô—ÍÞ*Ý3 3\·­ç^W¦ì©xE¦ƒr—é%Ø{ßÂÐ5:mòŸO—‡*A c%V삼ŠòQ÷?åQñ"4øYƒ dîÞŸðiSØèSÚÎŒò)ñM{@çøè­Í̸"„†ÂTƒëËî] içÎÅ}䟪äÔª—4 ÌÄ ³Ñ𡪈@Ì/‚Ø<|ÿa O ²ŸP8Ã*äŒbyö<?1GáðŸÇI{~A_}ö Oød¾Xýùýîïrq‘÷DŽ®Ã䆨ïáÑT“ÌÓ8‚E‚<Úˆ"tÉx¢|U™ÅæjŒSpØ}üË0%,­žþ„Æ1o½ñ3b™@ÆÆì_Õà òeDß Î”‚m·PÀü¯|H*¾ú jìŒãP„F­lA„9åU¯|Øx'ðšé5<Tú!žÛš/>°!ùt¼¯&ëáõXƲêðZæ…ÿX>ûÖà&æ3 œ˜í$¹8ªýºçä£T臀œÎ¢–¹»;áã­¾Ý'gT”PÆ€µôû˜FøÑ4óc+Aê¶ïHB}Ô¨\jžuà¤ôáÈ@Û°ó›‡15¯jÚ1d]8•9ÈL_¨`© ¼~zŠOQv÷ï¸W–Pñ56¢¸|TäŒ8­|7#s³·Š÷Ͷ˜Áƒ³QšÏö®q32¥(IgŽEá°ZÒˆi–ÇxVAܶÉg“«1?™/ú«0)Ü5eP„ž ݈#µ·Hˆ¼ÓZ1]°G]ààŠôà5]ø.)È©EþÉÚkX ²M>GtýÙ‚’'ýˆC éü<Ù"§k˜} ÑY^£¹GUýöÞÐJ41+ܬ`•ì‹DS±goõ™¨±áÃÌ¥Ó¤“o"§Å©ìEEKk-VçD¥‚C¾¯^Ûs–¹°N0­eRÌ9‚>B^{÷×òŸGhòJΙú&+vÁ×À<½’̧vlN„ÇÖžŸ^w¯SòE¸Æž4e»†ZÌkY»‡­žŽÃ}µ0×f“Èå€-Óm7Z´"w,¼3¶-+E¾Tm«ªIf"ÿ¼ùz;š Û³Žýãr?:’õjµI{ÿˆÕd4¾œ¢q߉"+ÀJä@iÜ(Ò’öV>¤Ñ ô Å%;•åŇ·Pr× 8 ¦+«`¤ÿQ.Î^)_CÄŠ;ßNZ6މx)§…ý›òÕ’a YE¹†˜rzàºSçúžh"0pòî*\]Ê~æQRly·¡¬Â“³lcï!¥ÐÿJüaGq:e'RøãD@› |ä\å;ÐùŒQ¹p6LÛ2Åkʤ‹ðrÚÓ?Ü—ýÖKk“Á¼ÞOdfW&’Âòv1ê= OæØAÏÝ DUR}}¥qCäüikf’¡N/žö_Ÿ›ËíX—œµðÉ,ÛB’\`oô‹ðEWÀ¿çú ”öϺöFV1Ç”®Wýh¾{p~ò–­©¿TH0)quÙðcO‰<'yæ þÏ“•i„Ü…–æ1ÊY¶Q$T›x‘éJëgz^¡‹€ø/°œà«ìǺ²ô¯*Ûõ'Õ¯Ì! 7_isV8ů×öµnmñVIškLÁUµœ€1ç‘z †{}  [àgÝCOX™üS€t”˜$Jâ`;ë)c¥ÑÜÿžT‰²g®ôö¥Eÿvpi‚¯ÄÈú@΀xf‹ ³ß^‰øžØ=&ÄjŽGÝ…Pì3ÀŸŸŠ¼v³Ñ±`Lª0º»ÜŽiïœv‡àS\ì“pu (´›C1ó.ó]WÊa„Å z]6êmÞ€LØê°‹Cúð¨hƒíúÀ\'€¿ Ðo!vL”gYã¶Nh Nʵ»u, ?ÀLй]¤ÃÉåÍ ¸…¿ (µÔ6'¶Ý¥ÿÇ*”‚s –‚w®†iÚ¾ Š üH‘ráöt2ÓõNuí°¿îˆ%u•ý?šCˆÛ7Ç…ÎA̧+Í@&xpLŽõú™öÊ›^sàò᪢tä³!§7IØïÒÉèå'ŠÿöÀçxÆ;J…­ç>D|£{Ž_#@?æ![lð×-öÉ4Îâ<&Aœôšy¨$åÆþt ZîçiÊ—¿­¢CMñ#yü\žâ¥h£%˜Ù„ÏVšR1s°Ó"Îkâîžop×–2õJñó.%®g øo‚»DɈÕg0eí챬ì¾÷¿ s¹¾á“ª‚'-”>³Ùjs²ÿm§Æ¾Ÿ0H¶ªJï½õÛ¾‘ÌÒòD"·D0Ɇ­»Mkƒ°åíçìhYÑ_°$„ûòò}Lýä§„ˆ}JDÏU£ðŽ®y}iæEV¹*&ÏgRµžbd­pÐ’ìSBms‡ñŸ×Ü[k×âÃÙÅb©Í1¬'ÙË)=CZÓõTÝë–]g9Dζtµµñ:o.¢€ñ3Õ…Ý®|%» y4KþË0팯?—b…yŽàôâ¹lˆýOòt“P%`4c•@ dCÇ}ëQ)Ÿ%Ô°¡¿ÀD4ï  5ÁayójLK q%8+mе,HKŠ»:Îà¼NÒ4‹f‰O3°M¿æ+°\ª?sÙÙôÅ£…{äïÌ-žäøI_*˜ŽŽž}IVpêé.–_gþ#}‡@>7r¸éqQà¦QDçÙ Å~3TŒÑ~Ö_:À“ÊO"†»Ï×^»¡m–0œÎKOUª±µ„Œ.4àæ%N&ı/[².à‰;c(†O[E€/"Þ­¨³“¼6/•Þ ÉwˆIìkÁÇØ-¥õÌ®÷g§éˆŠlCjšrî³’' B¾!ËIyTŒÀÿ’ÍØœ¡÷|=XËðO]®<ˆO×a®øý»8ND tøÓ{ž‘^ÏÛbbr±hÐO–UõãêioXšPÿaYÇ. –,Ä4°éæä9úâ±™×)áV˜„}Ž‹‰g»©`WÄf‘¬Õ%…ÐE,Tþ"¨[(2iH4[ÚM†32‰Xä¿T$mˆº"Rê­³Y¯8Q  ŽQƒE”Epòk»a H7¼¦3``¸¡ ¢åTÆñ0_žP/êÞJ³i“NÊ E'Ìp$@©œ$íÌ™—Bwíã$÷蕨DŒ‰”kŒé” ë¿øÅâç¨çV’_ªP§àv¢ÃÇ©‚¿ëqØ´ÌÔZ}£©?zUýn<÷}â˜=Gòi„T¿¨ð<ú"±áAv%#~¼Þsm%•y">•»Ú4’–½–ï¶YŽKįÒÛñÈí©Êò—?4‘èt2©–î ¸µà^ÝOÝLž0‡««H~¶·æ½êp‹©Ià4A ¾Wª9g€`f~6j HÒ™Jží -d{‡3T÷ödŸ[°Š‡™Œ˜Ç¿h°gïrªÝó)ˆïSN–[’Ù;Öä, ÖõÔÝìÍo¢XmsõÔ‚Î µåSá>¸E é /å£>dÕ2Í7oÁôp l§Døë<¥¶¹ñGhs¬N&òûô×ù²'ÑÌû޼嬴¥A(íÓ·×fl$µÖÜ5·ÈêfÁG¹z¿9ßvç°Qf«ôÆ·jRÛͬÆ&rZƒvŸUõ~œ>âµêÈH._¾8mhršü÷]F¹PLÿ¨­ÜX«'À¥Ó‰æï8LjÂ-l1^~ØÙ%¥ü%a×HÒªŸ!{?bÑöö+û»„ä܈°ìt§o‹ìÊȦË4ã¾VÂ<… Z±ÿR:*wa*}¸ÊK–§âˆžz¢ÙîCÊê›Q{;dØB\lKwy!Æ…âÇ%‚>NuŽÕO*þŰñø,ˆ:‹sòëSB &xU"V¡gH?[YÍ%±mÕkN|2DÂñ¤Þ5+Άٌ—ûwŒ¶ð ídèáÒî#±i½Î+¼yç!ºÛ¸Î»ræh¾ œ݆}ÄhÕ òëéçbEê1?§——g ï`Á‚#–ù ý±Í"h!»cŒ—îÎè6Ì€RÑ)O_)¹¼Ò§”öî;\Ž_è7Ç›#ˆ{3ŠHÃ.Žù9oníF5'[­ÓÚ…$ÚMHêºçí?tVœÊýW1ÿ~L\_™úwÇN1nÕäeZ„{…öý×a§á•!øßoV™Æ†|[ä=¹d­„ù¿&ÜŠ~Æ`ê‰-Öà)ŠÑ0)JuXwýŸ³Ñ!ugMCÊ®ñ¨Ûy‹ž÷‡¯ m«U1| ÿê×$›Î×|·D^A€B3‚©«/2x¾Cæ­»«(=ÿ¶p1¯ür>ÝN‹àÃÙhøíwŸïB=ÄìV Fn7Z{ë¿qFŠ>®oa6s©zšÈˆ*þáë6épÉ äæcûj° PÜZZ=±'£öZeŽsø¯õ}¨î1?GnµÇg¤\€½G‹Þ6Òç‡û_îbðà¡6“@ÜÑ.IÕÎLJS%öÈh¿IŒnZ;<|ÅþH¥”;ÍÔt„¨$*¡r}ÓSH+{k`½s8µËÀçýKš ¨O*sVHŸ½ÏûwƒQ~Nù‚\´€×)-ŸÊª…”E}~…çy¾ ›ï*u¬ —%[ý6e°bE,² ýÌ”lH(zT`R¹À8ÒzL URs¼Pû oœ§Ì—¹ûòd)ƒlþ¾²ná*NºbÕˆƒPU°fÁ€Üê_^²€*3%ëkxLvת+.&Z!¼4‰dCŸ§³‡x¤#é„d"¿ÝjÒ_u½‰^ÓØHô ÆË»‘vr‚yì—èß²¾ÙY DÂvÒ=‚ÉÕ­rÑã¥M´q‚0G œ€¢‚»ÂKÅ0DÒ>[§ð9â]ìéùnä“YþwWê]«[”<ž}öÁù[7o+E6Uÿ|Õ6²RkɲD#녳țE¶³œ&kªôØåè£9º½É£ñ›nWŠ›Ü+[¸ÉB y£Ä„E¤t°ZoíyÚ5¦ívð`€îi¡÷²»ˆáÚð‰ WäšóørVïÈvˆ„Gï‘ôrbäQ=¨‹¦åD;|šÞØÓp‘±?3½c y ¹÷¬ôà)åÇŠÆÙ‚Âl–C“qµzÓ³“çþÕÍ;j ­fU n÷†±!AlEæ¿ñ²0‚9räKÛ¹4gCX2€8ÇÖ[ #¢}‰NT’É‹$4Ú©ÈÀ@=yßó⼕ü&+‡G*ýô•áJ޾?Œ¬¡WýHxǯÆôÍךK)à¢V—= 납͸ÄikÁøilÇ…Ç‹,Í;dHM.{<wؼü!ü§•¥µ"õPlh K”ležš2×*Tôö$‡3âp×/McBÓ¾œªn*¥ªyl9©ós6·ûEHÚ , ×j ¯UÅh˜›ar2€Ø’7¬kÂap÷–ÿé%©¼Š˜oÙܾÉ@3­3€hù©Såu“ à¶’,~Ý](Ƨû°‰&½ÌÖš2Ô´‹7z²p‰ˆ¤KØ»w’>•ŽÊ"ûqÞç‹þÁƒýú!Ñ’z=mÕ!cúNUáqx¶'šì7òå~iì{<$}‰¿‡ ~×ñí„dþm-´’•$ú÷X&_¯Áüú„õ1–s0ècaQþ§–«\ p™rfp&•1WBU0.Ì,/¡}Š¿C¡êSCNßÿûy}´_ƒÙ¶5‰µ.ЯÂÊ…<0ޘ󎤻X)œ°sb$]…%£»é¶ãnî×g"Ø+ÉÕ“Ãdjq>‡]Eäü\¿4Gý-7Y ´ÆŸæÇHM¯ÚE—gðcœŸ¯¢é÷¿'ðf¢Ï`ÂKA ýè6zYC¥VTs·S_büª4h/^ÃqÚ)æXRA.Vû‡%×)M0Ün¯¯fû Àa!šQõ÷ÉÀFÌG¶0qê;®ôbnW´æÈêJ’‡¡jACPpÏ5 £íÄ!” šf.5÷ÃÀ‰øÔ”ÎX*øbD]ÑŒ¶£€Ÿc7¬gÝÝEH”P ©þ/Zß ®QKKŠ3¼Ój™'Ï ¯‰ˆ£Ô•>½dÔÎïÈ”·\œ5ó„åqˆÁ„5¢çÿ%r'ª&Œ"'ÄO|ÌÂ7­ÿ<‚i‘t$L-ËâůjQ;èx®Ö–oî"&D— ]U›á‚XȘ!q}ü¹Ý¨Ýùk2a¤Ú¥'†dj?@ ÷~SNÊìÅoí5âjEABìýîËVþ?"Ô”ù B€ƒ"ö7Æ Ûü1Tä¢*zÊß9å[¯,þ¸Ÿ1¬~ù_Ò·(çr¥¦Ó¾j¥t«pòfƘ€§qâYÃä~Çpzr|ƒîyÛâpà¢a:é6Ý]SÍGfU«œƒ¥¤—ÛðÄEÅ僼bý…ä }*ôü9àëÃU2ù9ðtªœžzëÚÈ}^%"ªˆÄ³mJäÞ‚òK]`e^Ó‚@NíÚfCò¼T‚Ê#tü$ñrý×¶„>5Ì ]ÁB|dŽ-M¿¹çÎñ7ц¤¸ŠãW`„ýBê䎤µk¦œNý6í™uŸ¿-ôÀ0ßå%žx_ÆÅœ¹+æ¸æ¡mBuõ‰ œSž(úh`H;ÇGrûÖE ø@t˜ÑÊÚt»¯ËÎÑ(ÁGlÕ¦Hû<‰Aqû©`>Äÿ'/£@άH7†¡œméûú`cƒP‰’ãÐ[uÞIçšswpG³& eî?à^.âo^ÔÄLdÄ ‚’&¾5…ž†­c)+Èÿ»¸cesT;úÛ5ï"é¸ (5‘9ûI~D˜Q È"«zß^{.åάS¹¹¸pþ),øÓªh”*ÙDSóphÉõ3%”.6,A v¬lôŘ7«ÉOà:-ob¢Ï<…ÎcÚayn^’•63„â»;ñ¬/f$£n!Â9 $oª6í GÕD¬&.ªí]B7òi?²ÎK€øghXô‡¡a%B')ñ¤×é:õD‚TÈPžRù=ët®Ïý»äeb…å[img™€Éƒ¨Âë ïhË™éºóU¯ž¡¦n‡”}ƒôuœº}Z³½¸ að˜0Ç{²"š¶Yò¦§ÛR‚V– ýF3ŒC‡é>™ÞÖ2[ ºòýÈã«LÊ‚§Ì±WÙBôú²Øãÿv?.‘æv>ìÿ>Cæ£ `ËP¾¤?W²[B¡wŸç)W;jD¼¸ù@rڌ߮"mÝY,Y”aðPggòߨ!ÆY-LÏ·µ†«W•CèÔ7ê6÷Á§îÞB<û ß#¦²Ø\Òió¥jLaa@ð½á®.³QMÀWŒ3K‚ð’Ì I€]{¤ð¨DnÂŽc.GW7(2vøî¾´¤é(ìÊq•oqh„a s6ý®-¹S§ß¼Á-Ä0‹³^“¸•fwó‘÷ªþÚ ºúq¯×þ¦à”*üªB̬¼o‚x¥•TS=ÌÐÿÚÄL0—8™ßj§7—ú¿Ä^ì|!§/Âcúzy<&p$ÃVlã‘7½Æ{%šÕ¬3Å#E€oÖ»° y °EŒG%†Ë{o…ªsÅ‹¢x Œ<#c .RÄž‘zÂ"U˜äè‹*fóµþébý6Ƹ«)‚ãÊ[š”ßÞÄOÅm=Ìuúœ;<¹vœjæËJ ¬#Ðó{nHˆñ#¹Ð;â D-¢àç#ëÌé„AÌVëæÖV¡/E­¾¥u" &Ÿö¦­[½r6TJ ®î)@ÿ½ÑÂÞ¯gßüOÂ,sInב×YɹéÌ€}Ö¬ö`p5°ÞU—Ç'qÕÆªH>Þø4)ñÜ€ ,ü†éŽÀg‚ÛCú¯¥Áʨh :K+Æ™¶ò{@é 9JÕ€Àf‰:[öe¦ wÌŸyü™´»Òþ³œU$È©÷¶ YÝòÙ)Šÿ­Ñð2ý±¶Q‰Müg§6oÑëÈãBM ȉv(Æ,13ássÜ,ëëžÄ÷H©SÅ ‡ É…›!ÁâÓ…i;W½¶=fv•&áð¥÷Î%Ô {¥Þ¼xø,§âßáö V MÑ×¼»æš qDXµû‚‰­$É™b*–çXÑxo™‘£’€.Uòn²âgÈÒÆåê×>-ñÎÔ³Kœø0Teßû7sÍ(uC'iß©̰ó´qÁÊòí8fJzVH8éžeÆòµ­Ãà£ÝòL’°‰ZJ~ ÁR|ß…¬=€8|•1ùÁ»@öÑu Tk¼fD¸ Kx¨Ð"j6‚žšâÊv÷ÛÄXRÚ·¸W½W¹Î5h Â~ÐûÇ»'…@.æôÁÈ ¼Vègpä¸UV·ØCô¯Æ'’(}\­™¦#CÖ᜾á#ý°Žô"UV´ëOŠŽØø[2R0€ î`³>,¼* HÀ<îöDíдa; çJ%e/ARSÏ߸†œ‚õKvª×DuAî qBÍÚ·„8Cž(dȨUFå:i;cã¹ïåÈV},Ðf‰?›6PÉñ ?î® ¦úËÆ½–_*Ôú8KÔƒS`>7ð(²ó.Kû"·wTØÙÕ·GŠš³9ÞÛ.­»üÓÆÃïˆâ‘ˆzÛ Î‡F”Æ¿öSð;³nðûIq`í}DX Û?ºö“1Vò܇³ÈEÖ—¡Ü0ò„”£Û½€½AÇCó–“3â¢öºnX)Ù_TÉ1|ÁÍ-àæ³XïŽÅ² ÷Âè‹ÏêÂÛï¶X£c¯€@]àZ…·ï¯3­-3•.þ­ëVçK²zK¡ˆ0‡©fÄ”,Fõ‰–ˆÞ) a[ã–u—nu¯v¤,ÈŠàw¿:S]#Gj"* ÿT%6ãÊ­= 2[Í—,›í†ª•N KÁ!ø^JrM˜ 3ôex&šŸ¢1øg‡PjKKÍ>ËoÞ)?›(µAï_jÇö—)ØZQZÒÐ9ÂÕH}ÛÜ'Ü I}IÉ‹Ka‡ýºå(´¡÷?)æVf{uFm•½—t¯Ñ­ì>A¨²íœnÔb6¡D£#ÇEêbõÖEÃË.é Þ,Ô ¿ˆ®8´ÓIäkH-{c¬@­wLÄPÚnFŠ@±Ù;!tyÐ\+º„Õ,1é"ÆôÊQ(½:$è´ êoa­¥ÚÞÞVŒ Ò#oYO9éKâ3OZôÜÛålS^ ³rÖXTÕÒú¦³V>9£¹ýïÚ¯Wž B¼…nS“=™ö®ø:©·pEbLþSYÐ…~v‚W s³7ª™ñù+öë ƯEãYoÙ ÇŒ¦¡ÿk8ÌŘP$SM”mNù‰C¯ŽK“Èø÷Âëõ[Ùî— /¡ÙyÉBQkIÕÚµy:GõJ…RxPtÐrîÎõ²“q[›Ë 9»jü]‰¦ë3Ö“[7~Ú–ø€7Óù ilÒNP†>~ XOÉvò«OÖ¨¸XÎzéÏ1tl›GDWÇŸ–Yø³ñÊä½'¿Ï9ÌýSòßß`d¤¹î s$žünÝqwÏ ºë.‹YZ ñæ¯s¥Qá3¼þ»hº¤¨»:3i[¼ º¦'½®œJ! ׉ú[9:b÷ ¼l[£[N„«£tÆ#hkeTø/õüNïô6Eté])üZ'Á˜ˆo b)|&#;ój<ã¢ZÞÂu1¾ÆžÊIm9nVÚ`GÉ·/)É‚¥šºXyÇüá«ôd=Á'ß·8à‰Têéy[uä´k©È“¢KJÈ߃î§çíèþ`MÏîçctþ dÈ,í_.eM[ƒ×ªËZü`^—#Œn5/eJºÏYžŽñp<=Ý0B¶d ¾åæxˆ‡·é΀³©ˆ×º1ú)ÊÇóÿç$µKJo% î+ ä ù,Í;.$x£.ÎÊêûä…EØhç1É©BC×ö]:·go¬žþÕ´ ÚŒb!&ÒGÿé8L1Ì7‘‰òÍ Ö•¦Ãnxʦ´{ŠÀ.R«_Cu*d§cׇÂAƆe'»{bCçH²æeAŽ YIâ ߊº“¡ŒåB«êÃÞDÇÞ0}¢Õ0ä‚U]«””õ¨tºèx4 sუ7ö}Ž¢ä@í`Òýð¬Ëuzæl¸”óâšâßl÷Âh‡ÜK·Û=µ×'Í Æ@5ýŒýŸnË©LõÝ—¨¥Z¯Ò2ÊÑz*#UõèÀ(ùRÝnÛµ* »Ý¶‹ÐX® ¸´7@øJàÑ™“=ëW&8ÃÒÌ™A‹éâÌ?þVfç•Wb: ‚¬ Ú’Ýó]sM¦gãaÜ¡óôF:}}äZ†Öë¼üÍdyÒ¬tTéFq‚ öèF€î½ãÄ öîp©ÿFù`Óûáï ûâÛže U¬Mù–Í!¹³ ød3câ¡·z¼Lo†ÞÙ`´/#Fr Œ˜ð¡K2ÉŒE———†ݨiõ´&ÀB>FÒy%{#ƒ±Nzgú”'¹ŒéCï㣒±–ð% AV&Ëç S( fàòwÏ´’?ìÑV&^fµâ{ŽW7àÀÍãµç• J“ © JRÚE¾bMW©owØNZágªfv–i.£® E\ÎÒèØ¨”ý‚{miom¼ê¼<¦g:Ó¼®¡[JÊ´ÛK‘,»}}x2”SÅ«à!"LÙÏšÖJ1Yò8\ cWç?&½©$^ðWÆ€¼¼5²ðgl,÷c?ïÚ_äY»ŽA“{…q{ëc·`UyýQÆ•ÅE³~ÄgNžÖ7°£Õ4Ö¢T½;¿æÊÁ”BÝÝÙ5L§ç=çÁ½è6x+— ¬é´N1Jí`JHð~à¬`Ã,ÒdÎ]käCv¼M[Gq$›À’Ô‘J¨Â{® þb8É,VÄÁÙ‹HÞ‰v‰säÈ?ÇøK2V‰Vf´ ‡zx½Â5¹âНžDÍQåîoöä3ohqzU¸>‘ñŽ8Ñ+ÅX2Øb†8é(ÖË“r¡MøØ%ö©u§Ô2Ó¢ysç>ˆé­QnZRã‚{·"¼”r:`†&³9޹áEá™Úªr²WÔomKmæ] ÝóÝT}š‘²È oŠ¿K/4Δ»¾]LÓýäTi½P)>¦Ô³æ¾¼â„a_«þÌ/CòÈTÁd`xkªæ1fxÞ-“¹è—sÀZ§¢Z(jÉŸ¶0åW‹z¤þ4/bW ¿šOÑŽÎÀ I–™»ºÂày¦pf¥d©8`”ÎCÎøøúÌlüÃ&¯Ÿ¢|æáúðE¼êS3!øA3Ä Æh÷¢†ˆ.‘ò#oëWúŸ*ÚCÌ1rt‹_ ¿8è°C*Œ§õ5¥æ€Ò‘>|ó•Þ¤á‡Õ–]µƒtz.ø‘;6ϳE€ªÊÆ›CØåhð°¤0¥Ÿ^Ýö%¹!/k©ÏDôl·¨iDTº˜¡Ì‹§{{Òaã7™ ª˜àau·¶h• Þ-.§48  óöœì‡ÚÔд’èèªPû,nG¾d1f­¼Äšß¥‹Ë0°á9DV à ]ñÊïä«F—Ë3ø©Á8c§_N+1GÆZz=sÅàÂÞa~jÞ(ò^ß㋎Ìô§z§¹9¬2$€í*ÞµN²”¼èüjÏIxÑDè~gcp%Ë „l£Ê~5ä^z¦Âðø›æZÁ ‘Áæ†- ÄQÌîîh}çž:¤€8c §W®Þ–ÚBÿѨ[Ê9âÌy Í£‡Ó©Š‚Í ŽG­[ACO}[h ÚáÀ.ì]I|4¿ð[ÿ[1J:[ °G“çm¶wÆ#DE #Ýk7{¡šQî2¾ÖEÿ…sÇ×_PŸÎ?ñ¹™‚:„ÎdýÃËÝð vÇ%rO«H¤Œ–-`rrÌá–uh?¯¾` X¥-ˆ' ß+†ý &¨ÍŸš»ö$šÜõ«<$Þß Né0¿’ަì#»´eÍREû°xM+T™ªÁRnŸÝ?sÇÝz”§œùzpò•`ÉsÈÞI¿€dïo¿ qþ³MöAgÆ4YMÉ'¡î=n:ñ[܆G¦¼ „^Äâ"ƒHð»/_·J®+ÖàýO+¹‚Ž`4@jgœ<žmsøÔÝíÓ]j[^X73¿·58ßšå3²7Ú T71laüÓ…ð¤¿NÈyeT*‡µtÂ5¦bîzúP;õ˜±þ ÒýÕ“–"­Ì?HRj)2¡Ã¾¨ÙПé^ªG°‚Ï›¶¸îPÿÞ]S­±ÝÑ+Ë–m±t¡ÛàPUᵇäÀ øþ—ß>´Ö¯3€¥¼}b#;¡Å+Fføµªrô’`gd\„å’¢àGŠsÀö8–DPy‹JŒ14.î•«€¬ë±}ÅOe ×uQ¿Ó†VEÉhºJ=v*‘`WD¦žä5}1 S’T߫ӲØû¹úÊÆáãñ´¶Pªö+¡ô’’Œ°nt2Y eÍhp…¢²{î€Lõjý í–u*·ÒlÃ6”ó3’†‰›)‚Rò·í0‚E àÃ5+©vº¯L”sÖŒ,†=±‚ÀLÇÈ©©Ô[_ùw,ÝR'™=ÕB„‹žš¥ Ðb5M~·&¼kAýO0š@G|×bQD8¢€•Qš7§$_wËÉßñŒÌ Só‚ 4œ¾(!Í•bÈ™ÇNôÎÙ)ò*_îë>©î’Ÿ³§a $}}T]¥‡/ó+÷ˆ +R®¾<]î*’[9GlÕ¢fæ-¶fÇÎçx³¦jñ× ¶”¹‘(uFÿžÑ¦ÕkxÕµ×M‹Òòï·‘œÆ•sº÷×[2öƒTÂöià^97„âɲ5´V‰¤¯§rr<µ…“½ô'—*IeUAðš/ÂÅ äv’‰€tâmIãt1AÃwªk‡“º™î 2&lÈ 7ŽÀ ½Kì8\·ÑÐ-É ^…ÞKÞå;ša°}ÆaÇŒ•Šì½c1$§ÇÚƒûéþ¢6Ç·£þ‰KÙUiÑ6d†oIJ´Às“ ª€Y²´c™a0Ú2Å8ñˆ‚O•Z¯®ÎX«Ÿ1fÕ—°÷þ)ñ ×^<¿î‘è˧[@ÿ”„¯Ìï±.½7ȧ(lóÊ S×BU×â'i—&SKbCâJæRFW|ï¹Ç¿íégH_}¢z74Æè¥¡&8MT« H´èäxÓ=…<.üj^¹¿$ª§I\Ox¢fè©!`óñ4Wª_.‘ù J rÙ÷C¡‘}é¿òó6}÷˜þí›ÔSl1âS'ôsõͦˆÖ©gŒù ÌA÷³¬õ½{w_%¨Ôšÿ;F¿»–.ráÑ1·ƒWÄœ!sö¸¤ßŸ „£eûcD(rëP%µÃÒ›´§±ZJJ(òûéçÜjåÞkÒGvònÏñÜ—oWLºä0K·)!°ÉîUý'ù ®ð¤Ì®üAï_WÿX•8Rø¸ˆ!@M$5³hB®IöøÃNÑk¼F8«ô=í_Í(¥ê?[B­ù%C 6èü¯m‚÷+ͪò,yõìÖÄ6A"¢r977`2D÷7΃õJæ>˜ºJ  ÷K+QƒÄèP%‘ËÂÈÛVŒàn$àGÃZ–@£*Åôoó÷hô‡6±R¢7ž Lß,™%ÑÅ‘ÁÿvÙžó…Ç‘%Yiröúg0»¼Í жëO9$h€W²þ)ð°Íí'8rõʇÇdÂjòV–U7ÕÚ« |\‚7øih .Ö¾ùA¥I•ÄÁ%¬äÆ_w!œël¤˜1©‡†á²©O—â˜bǹ£¤(uZú¼üQ\"éN’}gÉÅʺúrå90lóxp9Ð[ÿ²);Óã†Ç7D2# îRÎú«5ñ„ÿRß”™-zήI æÀ·‹o„§U¼6ÅÅs‹OíB?øE§ƒÑ‡aÌçßœÉÓ3mkÁ`⯠gá1ƒ1;µÌ¸Ê\Ö®hVQ"PäæóÊçJ…‰GéæmÆ<ÈÔ=¦M¶{øR 7ýNõÒ‚r05•b*£ã‰äâq·,utÉeqɹÖî$]ÊÒ•8âUÉóM-õ`U’O(«>•‹,麟~>fh,3Sð4RŸÓÚH£Û†;D„„ Œ›Ø¬ËŽÇó×¾ûeÈԜЌ•#ƒÇø‰4/·>6ú¯‹%/´IÓ:6Ó÷‡ThmSççƒïí®º€»ÍI˜Jîx¸ÿ5*&[ÖJuê|(lsCÃáļϘ¦ˆªÍ+¯³§×úŽ(‹—É{’R%7c74Ù»lk]m'òÕ~„žÊt*Í bšNùû[œù‹~:E³¤„‚šÐ€°>ÍØê±©*:ž YõЖÚŠ¥ÛñAVwÅ{Ãë‘,Rc E4:ø5t¢vã04-ã’ÉqD]sù¸¯þ^Æ›¥Å‡Žà&N,Å¿åšC­:íyÄÆÕ8÷|uÙzJ[5rQ.£¯Æt›Ò† „’ЍƒËö<^ pMáÀ7êÇ,[ƒÏÞÅÓƒÐz3 JŽòXœ³Ú.r9Åf›»c¿+ËܦIÖ™ÊqO§,eäpØÁçÖº9R Á‰p€7u3¼aO“÷ƒÍö9„ù¾(à5.áLi.º«-æâÿÖ&†÷[/V1á ý2¥ð_Wމ‹˜&®æÙdfã5ž®n'KÔîd«Ž%tãýi=#"§`Y¬#(¦îoÀ~_e,s/¸‡¨(÷yÁ•f.›V“CçÞÓü— ›Bù¯ÓIŽÒ ¨õ²¾Œ!ׯǫŸÞxÂú“5¬pqÉeHz\´„éð¼H£ M§Y3uQ+±_Ò ]u|mƒÁŠþ `kÚÑdZ¢QN+kS*Qƒ}vƒðƒ´VbV“#frY ·QüÄrA㟆09N&n9:À\ĉ÷öaù"ã.ÞluÌEGÙÄÅöy§MbW:½]¼†ÂXxσü–ý  "¹ŽªÈXÓ Å€GøÈ?ÏÒ/•ÿ_̉[½ö´gôÒe¹ÀË(lw¶–3ú”øÙRÙ¬&–R^ºâ•уÞ"Èþ¥è®~ml)ÄaôÊò‰JY÷ššigÙýäœpJÏøö•÷‹ ›"7:VæÊ£’ˆ8WB£ÞQ^g'8ÃeàÙ®ÞŽéG‡†õã±ñâõwrì6óµ5ÏÜ)]“ÍÀ[Àié¾o‹fé@Ç’F‡b:Aý½cábÏ$Id}M$°Æ¦Û n¼ŠŸ³bÞv¡Øà˜œ­<˜ÆŸ™óE‚ôÕ;޲ùóÉ߸ eÐ$Œ€”b7¿É¯ÍïA¾ê5yZб3³½ÁØŠÕ"OVÍÍNBL]²ÊÐ3mD¹Û<¬K ¦©] ò:ÄÌhcà’¾¬sÖrFIerNáp% ào­Xèk~$eßlì^ŸÉ,p±Ó§Ï”ö¶á«5‡žö1Q»b»>ËÚÑÃúu}÷òû¡÷F[(wA—žb’à?É´5°ìíå¨Sß/{ºg7aåÚJ¬/€îq}'ÍÉ7]5ÞâÔ¨\¤žÞÉÕíÃI‡Sï]âGK¼v›7$‚íB„ÙìcƒåèOíþH£´SoÔ#ó¸aÄÕS²!fÛÜ'ñ8Mz@üͺ_R³ÔY„åSܹoŽìI2ùL4(À„æ5àMP=¹lýË-Pfjù?àö›êÂÓì\Ø¥l¦p™Â4G0.nfY“bÉ9²bmh¦µs’õ^<Æ©7Š"»|±{KJ‚ ÞMËf…·íÞ,¹ˆÞIý#-3}ø•_Ó$z::±eî®M"è[ôµÑÌÉ Tú^|YùxN0’4°Üø–E jiaÌFF?hÞßîµñÑ Ü>¥K%†ÊmËðÔÁr‹o\…? üÎ $Ã!úþ;nà»…“倆bìY†+cÊIdÒ¿Qãr…G¶É¡k¦~1¢J?[DMÈ«ÍßX¼°Œmö«®¤B£2‘JÌŒuéPâNäȲ:ç«÷.Ëó&­•‡Sß8ßžfpsk÷–»^—;ÇŠýlö–!wõDÛˆ6'„xL½¶ÍâÂ`:BÝZé¡¿ªOcØ\·Œ–Š ‰»€YO@R`Šáÿ×D­á¡, ‹Á²|çì[]ÖBÌP’¯,õDs¯ èjÀ2À¿»±»»~ݱ"ô\´3s `àV+ÃÀ°vJ#鼡½¥ ³ÌLj¹w…S‰B7êÿ`ÊïÈ`´þ0Ð6îÙ‰±3Ǻÿüª.ÅT¹pjg %rÙ»ÓVJ–¹šq{ŠÕC‰Œ¼±dÍ"l L½;²‡ùÙdß{|—É«dÕ\©JüáÁ×ã«Ážñf`2º±=Õ-N6N=ß–¹žâA||Ÿ‰è?±iø:e›ÑñÒ‹?M9.襜í2í!R?~¢Þ¾€!x23 #¤Ét¾Î XÏAÂi(pzèöÐâgÍjÚÜ´2rn¯†Ä8Æ`T‰'²,=+ËŒi8Ðo°ÙÚ:C%™t©ñ1ݽÑÖççügþWcž!â—öû7Ýû]Xà÷o1ShC*Ú®.¼A|ôˆKÞEäÖÉèýt¥P0ox>¾–£Ù$·9Í·)ÊbÎ/ìphuÙ SrPøª°¸«éADzDãísžY^ÎéÅÚõëâý±*vÿ?Cd–mêßÿOk¹L§4¬Kœ>õ êËŽCt¡ˆm:¿±Öde= "ho+»¸—øˆ˜‡¾b=¿>»ðø{‰'L‡—ú>.€‹#sš!è#}¤ëž uµ½Ý9~Š«BzîQçàPÄz‹!_#ÜPfëíÁFÆ/ÓÑAÌwéL&êâ4E…Çà)u‰÷ûq&ÿáßE™5Vᵯ÷d ¬©HS=r½m=Sˆ¥FD -ü9f†ÍÀ˜ìÉhÝÆå¼ä£ROÍÊŽxŽw;!@¦-a ÛÍס±6F;{W:þ]•Ô¹î"pÔÉq• ¹÷Ϋ:ÌhR 5úÏ+{MèûHTlJEš:¢ñ„­ìCEô$þšõ¡ás4ŸªéÙ2…Û?Ž»†ƒ$meÏ0lа1NxÆ mœôèÜ¿¨x¶`šC‚‹û××½iäâ;5‘GÖmë|DÌ“ý+DiÀ)íþoA“ŒÍãV–÷´FÔÛ:»BßIÞGò¬©¸tí3gïŸ2‚¤¯„=Ó DA{U1l ÂqHk4,7Rú](ñZ3 ª)a©€d–'IIj8“¶û$oi=p§I#µlo´õ‰S¢0?:‚ ã\ÞÒF8Cñí²É2¶†Á8 Ë| `·¸6âÙ µ:iJ&Íâ¢\íoQG#ÿrpøÝ À/H T‡òÜø¡‡ÅyŸó#(•Žf|~†“Ô[^uMDÃEQT¹?:ƒF”ÑdõeìØ*"À³¼’==Lý¬ªÇz|ƒ÷óõ†êHQúº`Pø,VŠ|7+óo¯lnøO%¢AO ËÔñfTŒ‘›?ÂÖUS+2ÿÆ4û5üNe hýÊV´¦Ue§9°ƒeۗͳö´¯–úÚUGëzR u¤2Eψ!«X¦("·Eb4c¡‘дï Â×Û­.¥ç@ù#œÁë¤@:b*$+]±s½à?'þw¬{QI ×ÊÒ»!®†­I­çâsø´º~‡Â ï%õû#NÆùíx´5­¼1œlháSëÖ¢$Ù©„μÒxNuô^F¢.‚}£!!˜¶Žªá}_jâ8®ÐEº é`¡0Áh<'é$ÇXŸZhº£úatFÚ/×[*2¢¬é 83Y¢&ÓBík¹¾´Ë—_?¨ÅõíU~¸‹[è­s£yâmF¤R)"¬ñ.çdö® Èëî/¡±‹æ¨† ÚI–V’‰í"M4¹°c+ê¨a9tÚ¾…ìúꀳ¬.ƒC‰…ÀãDË>G9RcßÍÂ#]ŠŽ‡r;èájŸO½cC÷Ô6]^7 å—nýD£Atd-ÙÜb“GàääcŠÂt»D–…˜²©ÆŸ¤p¨ÖŸË;«Ž]ã5¸ÈPÄ!çW%?zÁÙ2}Æh¹B]×ñ“&ÞüÌ(1‘D \ñ ¨Éô´bý•… íþS& ¼‚!oV…I, Òƒ¾ Ÿ­AÈ \o˜3èèÅj(]àÌ€1ãÅðñBD„¿`Öm¨ƒÈactŒîe©»/ýöûïà=±ÚWªÊr“Úýælr"OüÐ/®ïáø™íw2Sn¿é扨¦ºàu7´é¶ßý›¥Ä®„zæ<ÖxñaSAÔ”±^UÏÀ¤wofpn'rIÜLßáÊ ááAõXÙŠÚ÷<»¶uʃò®1"n (;ýt×WÜuT•Ôø/Ë<Õ,ñ³Ê`„-ö\ðÀ=Ï{ {»}ò£^45GWQ¢¢ÿôùÔlSµ’Õ[—ç×¥TÅ›0«áÅ„ƒã#¾Äc&ãš RÕ;ß}N&é<.ÇĨO±—ˆV¶»•¤¸K)3âIÂmÙ Öû·wçdCÿ ºOQá°-9ƒ»<*-×@=Ì×ÛI]óv-1ûvÈæ¥ËÛ¦Ý8G¢rT0= ûàq*+„XíyŽCsƒÄtʳ[<±ðÛŠ¹÷}©+a|˜ó¼‹/ZœÿZ–^™§U:ŒßypþqܪÛ&ocè ˆ3h}¾íºuÇšõ6»î¢/„Xlô-­¿@—NÉþ !|Ô´u ˜ßFì÷IZ—{ÏïŸâlJÖâ"È@¨­\ê»ÓaU„¡ž~X”ÏlÊaD»fXç¯zŠ1N·¢QjI(¦º«Ób‘QK)¥0”ÖR¾-B{ãùÙºa³ùׄóÅ= ‰ÉàûoÆî4K=N¬ª™/fK8d"ͪRëo[ôON*üQÚN^ê mý”(C*&†èPøã›(³n?ñÄq…²­÷š‡R.}<̈ñì†!Ré5æŽUY“¬ä%¥ÞëÜjÚ~ÑCC©ª".ç©»ÆÔ摪‰œ ƒÿ¯0¿äçdíKå2èI†Éãx,M™3¬‹›ˆ#V%]J“Ø1VÕ“5ÉG&7ú ýËÁ 0\ÿFMÊ|\ROâóTÔT. f!€±5ïKË>–~a¯…xÍ«~cë’= ?íÁÏ®| æ5úî)Àk^DýÕécaòšEr~ú”t #qŒ›îi^\™"òÿ%§{dŽÀãQ 5vØãC¨Öî±7aŸÝ‹¦Ê¼G0á'[¬Ïgí‘øö¼ Æ*…Ö2꣘Œ’tÖ¾‚ŠgS§lOKeeÎ)M²ˆCý‘ÇØk $ú¤Þ>Ÿ§ÏI†Mæc&ã_¯÷Y^OpëÓ½ãXmpä:Kd?Éã&ÍägŠØýVƒYÊ,^8IY üïBçä©aÜÔõ]—8^f•½w» BàÿÖÓûÊWê·š%Ï4*ƒÌ'?¦œ¾ adr‡€âR>ô²ËxºÔÓÒzv¨Ïxq²yB á96î‹Íšne ÓY‚“¥åíòEW·‡A¼Yž3ð5_ÆÉÊ—hšï->F†£SñÇ€8vèbd±/¥¾‡á¶üvûmª®5¶ñuž¿Ö3¼ÚDøë@Í0Y?¨Ž?0Yûê+‚µ6CK\u6sŽ¢P¯s®%ÎzKÀO˵à‚Eø„+Å^^$ô•±;{+Š -—ݱ ú9ºòÜïPT‹íÃÏÉí•lö:6—=é?ÃNö)&V@Y¢ÜQ‘þS ‘Éì!r§¾ß¯m0ÉIžŠ pfK :Ì›yÐ?øUÙ§Wæ¯5>ì ÀŸA·?' ‘ § ¯3èQƒY96Ðú®nDDé;h¦èË -À&ÁìзQ†½¼x‰9¸GOÈ uAÊѱ®¡äX2«Ê$ýš… ÐФ6–a}:‡ÊH#Žßu€£¶€ 2_h1ÿŒ4ULLC4Ø4¹–Ü9ÛÚ¬žµ­ŸÙŒ“ŸzØ€s½37sÍÙæ~¡Þ,¯¦+ PÚ²™=¢{†)¢ð;ØÍÊöÀÂú ˆ—Mq|E9䂎Yº*_39kz÷ÇûâBKk¼%ë!B ¯ {èÈ•³ž©Ü€é®ÞU¹éz¯³wNnb-ö•^Ïýßß½å®3ªtè‡Gœþý}Œ6‡ä“}xš žè½tÑéÚYÁ˜w>‡h€$§«¾ÖPbQið5€’ÉÝ>_\ ´íBÙ ]ËÊfyà8Ý,¯–N‚LPÕ©TH@=hÌç¼Sþ ¸ô@­{±exŠ9Þøƒyv}Å&p’YZÒˆmÏÄžVÛ™g_ióÁ‘«FÈnvJn©*›¾µ‹ çlL¤Ï‹óæ¹=9Œæ±ÕY sTe¸K …þ1AA5¥ž^ŒÐZÍ×ù¿Rº*Ê‚Zè=}°ŸU.BYpdõyZÈiÆåJóók›GËH†U’iÏ0ÞþM)Ø«é¡2ΚÃÓ†ÚÆÖ¥%»„OZR §uµ+P•’-‰#dѨ#€=£e¯qï3Ds©›¬ñgo²ñ½ˆõBèr¶9ó(¿øÙ•âÆëÝÒK5SƒæÇsN’¦bDA68E0*‹Kpoã;ä°ÐEëQÉï +·•‹¨xžÎ±&ö~¸²¸·!h bA½(ßc³þ_ƒ²QØUV°ô™ 5!ïðëË*z&ÄeðÅóÅ À"lo&C èfñ®ýíž4\E‰äIj¡0@ÒʽBçƒÌzËF‚ô´øY‰ûLYXÕ2® ›7[_Å9.-Št¯·p àñU©üÆ‘A¸´¿'–Ý!!~˜¦;^9-ø®sÕ¦µj ÞÑïžòPïJQ‰kEæÛvÄ…# ˆuL>Ó„û8eˆÅ8¡»¡ùXý s´EíðÐ`Ô=¢Ûc€ŸÇÒøf †D\èØ)'éTQÎ*¥‹X4 îûRºsüt~ŠFíkªcѨ&V>úâL‘hU¹Ö™sø@¾X §'²³!%8ç2ä½ g͈o™ **{Ù¤~'Ñça™ƒýDÝvÿ´‹Ãù,imರDªçg,´ì¤¡‰"³ó`c{™Û­AQ[HI^ën5Ò]“iIcâ®’UŒC|NšäàŸÚƒíŸIŽ’‘ú$jhÚq(‘Îððþál“ 9j˜yøŽÏ+Wêõ5)ö%9W™µeÞø™jï]ЧàöŽz‰ý‘P“uÂb`…¢½X§"•mº3¹žg%Šññ¶M(ËÉQE0«$} YœaÅÑ‘õËÁ—|ŸôýOb ®¾ˆ®{¿93=lt;b(ðßr@Æ6WñǵLEV „Ýu^QË[>l½ ±k˜#îZcH°lP[pQϽ÷ÛÁvöÉ~Ý×%»Øà„žŠ<¯Ÿo‰I|€ÊÞVëÌk¦äD‘9Âèúp~ñÚ¸{Î8 µ1øíØûÏ,Q]¯ùâ@*¬/Ê ­ü,r¬¨œ†x¥’R0jíÖÆ0¤Ö—ŽÈuhçûHzõ¿4"NÌGifý§üІ¥£`³.;›lû?‡e¹ÕùÆÿ•ûat··¸yÈ8·B"†X$¯ÅR(øi®‹ÇýíÕHU^ù^ˆkmïx}÷ýïšV¡Dï]ÄúÊóãy /Æ£¤ÚÛH.«ÞÈÅPøúù‡:¾ ¿ülc»1Ö¡ï-}öõÑo&èaHŠ10Óɯš(4ž]³ ,êó¹XƒhÀiØâËûÇQ!c·mõ²Ü†„¦·åZ”•îÇœ–ÌÆ2¹² Çm­Žf§ÖÙËi›õ×ç¥Ñv[â¹û±ež¦ÉmÍôØëè²èD_ƒ‚nãÜfe’^Íñow­ïx3tÛ]v†:™'õ%†ÛC­QÛ‘§>¹á °±­ïWÞþÖð•%‘Ãõ©ð( åÝczn™hèõƒÜ•¥½ÃàÅK'?Hˆípâz%9iæç±¤ÙÍÖŽËyæT~‹þ9•¤’¥ØŽP–ítY°ƒ× È¿t­ÞÐO=íbpZê\ù”Õ²'µv°q óm3šøYbsw7—&š±’ÇÞØ ži¡î(­<éì“7}ÌQúÍi[…%Ñï~u®KÇ+ Täù”ÌÝß½•‰·LYzŒC OgC%Gk©9"ă‹f6Åφƒ ã<.gÂoØ  WtR3cŠûØvL•äU'±£ªŸ4³¨õ¬ÝNÍ\Íûv ŽA»ù.Ì0˜Üba›5sUT·z©—»´Û¿á;7þ`€" môô<ŽYh<*Êjƒ=cu?5 Ì•í¼í‚ŠVB¿{oîN7p„ºÙJç=a·¿_ QáÛ{3ÈØ¸ èÛ¸®qÜ'¸*T½{âT‚îUJ‚5W Mh'†Ôè*º¼¡'lÙH;‚Ç> Ù04- %5²Sÿ’ÅEF)Â,Ónž¸!ä>ãÊÛ/ÉíM.žñTœ _ÊDYˬto¤íÁ=@PxNŽhwïú¥°zTϹº?¯Þë.`›¤ÈYƒ}ÆùÚ€¾‰a>pŸŸ’ž˜aî~TÑG2‹½ýG9ª¥€…›Sß9¬eº¹jDlK®nÄã!0J‚·‰E‹Š‘ƒvëÂâ'TzHk+r]ì;­¥yu¾+ÎbŸk8lNwnÖT®Ú»&Î!ç¹>Þb+7«…b¢Œ²SÕgââ_ ËÔG-hI“`´¤ÞÌo'^&–ÚsC Ì%2åI¢\§IPq°‡MyÙ2ê\‡'ªYÔ“AµvϘë9¹ÃW>»¢V¡l󴌰/`(1¶L >\ŠˆÜ¿PoÝê ¾Õà÷²>Ýçð´nmÖWG©ù-S‚­Sô{’3±òÒ}y+q>îj&Ä-©1àsåˆÏéô r@Ö‹’µBô© àj/bœ*ñ§W:§¢„(ñ õIõ]®ÄêêǦ¥âWÑ'Á¬¶ýÿkÉææÿôM°³ A• èF¼á%‚m •¶àyq(]Ñ¥êÛ2(„­W)[3¤7uïÀoðJy|Ò%Nk5Æ—–®¡tU~_õAçÿ£êÝÜ[hòvY”ëøË=~BޤpAËÂ/øÞï}õ<²Plç÷²Î{ü)¥¦–`:H†!>Ç‚´¹ EÝ÷Rù4§s¹³aqÙ™w8¤ÇòÌ9aL¸þŒJÆ=ýƒ,¾˜Ã «‚,+Lp²mô[™°÷ð^¹«¾u´./ì ¶\ÀÎx:^ôh62.Âùµ¡œý qÞ}DäßSÔÿ¿ ö ðªK§õ “Ìä/×߆Ú» 3!椞ðÜiçá.½-VûvNΣ¢œLèAj ¸ÑWà±÷ô·œ›ÚÑïez»^)þ[Aýx`üéðdzw¡)N<®ÿ„ì `·2uÓ{8BB*7Š•—\Öiœ}öÔå3ÐÒÇŒÃBÍˎɾ¹#Ã÷mã7‚ž/2á •¿-BïbϯåMBe;Ó”r-òê…¿t†³‘sf‹qŒ’$ÿ<‚ Æ0?WšM¥7¶–„J?É€ïº O?o•n¤Ö‹ÀÕéWñ:rOǾœËi&2SßCŸøQ¬½'(›»ä(Y]È+œ_g}Tb.t½¤" V]9¶ëWƒFÉ+M+ÖGs”ã¯{YžC¨u<±¸ð!ìMíÑ“OšÙ»¼Í–£(·)âÜFM8©\sxz[úŠ¿8l®ûˆI,q4îáø‹Œ°K¥W>*݈å!ߦûòdR¿ïF½„&˜o+íIT½5%) îyþ)E˜ý ~ž{L K/Lk5'••MïÚ}šÒ©› ãþ"ú¥-…ÞæˆÈ†8 ìçñi½Dɯ]¾ý§3¨AÑŽÌ2öaØ4Z K¡~rÖÊOÅåbÍuòv>;ÖºM’Õé0C*-DÌ.òlÿ ÕïTúw 7ùäSÚ¬à¸(˜‚Ì{ðÍ~OÕ‚–Á‰5;Ýþñ.|mCâ`ö£;!’u¿;$вV‚nÞ³ÎHÍÃ̪jãrž!Û?…$µ*oìßÓa:ùÑ…Ñâý4 ëÕÆ¦ïkšE½xH‚p¼RRÔhÌ÷sópU)£„½8ÐhÅ»ÁÛõ8>¡Å¹ K('2yu?ÁÍq}ÀW³¨pÉßgÄÎô„ä7Bœ\\,ÖiÝÂCs_'ůÝÛ%w½PbìÚ±®1ÔÚ\3o[Ѱ\Þ’f´­#Ë ÿ“ÝéŠìûØcmtÁòº½â³(ZbOÕÜÒ£,Nˆž™M[9âoTdòóÊJó©ž%?½€ÊÖVrÄJþÇzþ9²<*ŸøïÓôEäÌ‹ ÄÇ\°A Ü¡+Ö/9[yé½:ÔÚ%:9×’êòL¨ÖÍÈhg°Ü0ve´SÖ=%_ß¿™/6Žü7ï}è»XBkÃ2¼0¾'€‰¸: OŒ€Ú-î4 J’sF]ᯔönÎt¸ó} éž~׊pØ;;ÀäÂE0&R1¾ÖIæ=B&Ež·ø1Ù2|FuàBY¤íËoÓs7VH?LŒðbÆCÎÂtíÇ› ë£Û$C¶eXµ žL·(6óK8Xμ¯,Û(ü[@ëÖ ¡/¤Í®€sÝ£GÅ'+6§“UË­H•PŠë•ãpðíuñ·;…@쩺mz|‰*íÎP§1Öò*_[¬Dg´ù ågµƒ(_¦L1Š~žÈT‰·ß/웓K&Šqø°æ€f¼ ÏNM)Ê’ —ˆŸ‚ªsãÑΓ%’‡Ö ‘ óxP±Ö“úbpùÉO6ôó/ƒêØç¯sC¨hgì]À»¹;Ø Œy@/ÿˆ5ýÿ£§\Þ%‰'GeÈ-ž†Ô¸ å‚Û+8 ¨Þ¿V/}]+cf[U q.‘P×+a”[½ïA÷#Ë™Y9Ós^’µ˜lâ˜lwÎ71m †áÝÂ$áL‹©!õæ¯&íœãcÏ)II»Aðœ~IÜ4}òøFþ’‡nöí=aªÉ…A™¼œŸ¡Êâ½P¶`…¾MË(·w£—iÿUÒCÑÕeU*zÆž‡Xç ; = ñM9A­ Áí?&¥]~N]"pæ#3d ¹Mœ,¤Uª*Îç–Ýfê$t‘Ð%ªÎåÂ×竆,M>ä•B‰[%,u¸Ðí—dP³„ÞÒÚúÎØüd÷øSÕS/³—ªÎ;}c<-mýfä×v¹øŽ)4Ñ UGŸ™bžŒüæéH´çï£bÓSW¤úä^¯YÆD6ažÔ³‹ÃŸÄéܸ1-áÿÿ £%¾H½bq$F´ÎÜéÈdÁ®,Û Trû¡Â§r_µå¸¬½ TŽ+ÎmjBº«3’nñh˜LŽà2ùñQ´#ýßî6OÞ}`†&`ö¸Ï*T–?Ko¬¥L 1{ˆ¶ìýz%âhwÞ¡œ^‡áFq%·ë<ž›ùOÜ_]·£BŇ“C‹Àqt6Ô‰•'â:æ™Aõz¨tj­“ÂD’Þ­ÖÆóÒ b}ïåŽ}«:ƒ½‰†èBoèçš ¾šN_²\Rö ¡£Ô,ïchlçÛ·¿»mÂú›BTmÿT¨÷šˆÞãš!óñoäñŸÑr*|Öõ½1cÑÚBªZ.%†ïÒ̲{µ¨ÏMž'ƒµ?>'F}¯x ° ’`Üp-€U¢{çÂUwÕäÅΞ3 ;>P†Å@ *—¯URóÞ§n¤>ÀCLܞʼn¸ÓiQbØÖŽënÁ®öRÀ¾Ccz¢~¦:ùY~0Ò†4…Ÿ|eötµZæº!QêÔX~ƒâ"ÜÀ™‡÷¼E×êU# ñ Ò5."ÐqÙƼ:\‘H ¿.uÁi±»ó‚§ê¹ÕÜ(}^½æ$3‹€Nžq¥Á[tçɉ}‹uF¢t/Ë92bä/rak‡yå¢ðNÖ<©×ÕùÅ0DJɇz“ Y…hÓIS74¹ֳt÷&ýþ(z¤õ» !6 ÉñÓ iG;ù$`ü$3 ùï`ç)‡‡û˜+kÜyrɉæßŽò#e:0Ì͂ϜûÔÇ(Ù«“܆GY9ª‹±³ôaêõàÂ~¬á){mÏŒO^Õª¨$çÅٌí´Zò )M*»púÅ9ɰ{ä—ÅÓú%çÞMŠíýÇ툔Épî/[³Ôdœ³–Çê†ÍÍ}Ù>¨f ˜EÖ¥ÅÔRJ¬œ¯†«rx"˜|¿)nc0•_ Ñ7Ô+eŒðL–€öTyò^ç)• êfžn–ƒ8ƒÚ—ÂJ‡’§îcÐ]þ7ûÞdayv¶Ñ\ÞFò |ìù|šxÔrQmÂljÜ÷¯ñ½»ªX΋ =5¸ZÂÏ÷ºàé8–Æ¢zºÑÎÛÏÐ)² 2OE¤áÓö P÷øGmUh¡Y¹ÄÚ Gªh3°öYùœT]ÿj`w¨Q1è’ÄÚâÎd? ‘Ýî+‚?4”Ó¯Û¼œ¨GQboQŸgC{W;kJ‚!ÒÄpŸcâ,óf sÓï×r}`ÚŒ+Jéq9¥oíë h7.µ!Ø0꼇é–ìŽuáü«Gª —áÛtÔ uŽG*±z2KT 2£'ÏJØé´Òú5TõÓøé¿Çm¢@ P›¾óö@oõ£Ò†" ‹ÏsT°ô†Ÿ×ÇÒž¢•y—¡¤€xv‡~¦vVÖêïƒE}Iì°Íìu=¤wfàC&Æ‘ÙÛ} .lOSÈ+¦”Û• ¨gþÜ€›ÉûÕZ· t¥K8Oû½Éß÷OBuÁ;ؽ  ãTaX§8Žc?áë×&…õ}¢÷¡4‚ßysávÃX¿Íjbo¢(csÆõ%ȃµ©>ò¤ô Æ¢n–]Sd4­TÎÝÓ¬Jš0ŸöÌný°¾õ?õLâ„£õ}$g9Ö@­ÂÇC4· ^|›81*àI¬ŸÜ×2¿Pµ„¶2?™£úë™Gž\T‰ªê3OØ3¯mm_XYIŽ©Å7 "id¸—J»²3fjŽ(ºÊÁéÆ8Ä‹éüûÿÉ?f¢»Üïj¢:Þ¿Qhsi¥ÓÒí¢£¬Oc4mHÊñ(øE}¸Û½|TÂôµÔ2Ú}Øqn¸Y•—e–²…é˜D:T‘|œGóÏø\•D—= J h,(½'ŽÞ§ºPû¡i|Í„ÐÀnëDîN¶}˜|í«ÊcÌDã·¦Rïcm<6šh(ùdÌê|Ž5.òm-AÐHùys™AÃT®†­±òtP­Æ­#È'º Ž’õ«É¤ <-FS›XS6ýٻƗÆÿÜzóR‘EÈêpÙÁs¬ÈÑâŸë÷_5ÿÂ:Á£»ûþ“Ež1ã^Z¡íêïÎÅÕ¾gX¬DBf礔$s›|£·¶}lãà”†?™4Rkx 8…t>àÁ–Îj˜íÞ•ûøQ.{§5’ÇkÀ(S±‹(d›ºPšœ,¥ {þWzk[l.Âíðjªx"ªß—±¯sôÊÖÅ’aô°{€åï3íjG=¾И¿K©ò¨S îq¥,¬¾´ªùJcr­õÝ¿m‹kfÌUù‚AJ÷9gñãÀô‘°¸Ùë;£|¹æröz먑pü¨ØyÃ¥GxÁy8´ ´2Mwüºp›Ã¿«mŠÆóc$ š¢{T$¡äïZ1Ú+¯‚ðÖÍ&Š>"s Âý´T0±ª)„ÐD•WgóÃbpŒ}a3î]ßÿ‘ƈeaô|Ð=Š{¶c¾?‘X‡ÊûÒ7 …šÉ__¯pbÕÞ—ÂJ¸ózġ¬ATK>c~%’uµŸ³Èç.f<²u±¹<ÑÈÅqcˆ¸U9î ¾Zø¼‡FÈÄïÇ“¹`c™Áµ&߇Øò¼Œ‰AÑŒ¦I¥”P6¯Êµk7(+ÑþßÔû¤ý™Ç¾†SLZ„nø²ïÜÉ&•)S2’KY`£ÖÁ0Öfñýχ3iÅ6_þ4a‡RÿF ÓÓÃUôËøhÂm Âf€îÀe'Žöµ ¿iBw¬”#ÅÝß³{½ô\›FK¡‰gCmgØyÐÖ¦¸›0R<ž|‰3ˆ®F<Í7—.þj·/·  9xXCLîqÏŽÁud€0R¢›$µðX‡»›ÔÔ]Tü’{j¢4h0…ÞPîÏ.¯tn#_ ìˆXE„óꋇº*t½üÀN¶õ|ñ[Á<¢VHh« Zì¥J€«Xa›N”2%)E¬§=¯]ˆâµ.aZ(=éþC· HéÛï׉¢$Þws|k‘ \}ÃÚÕjõ¥º>Â*šÑéTÌz˜¶2šŸ˜ÞH½½Á09Qâ¸+UŽú¸$ká_-¢hZº¾]‹ [sDZ á\2ê–#‰L›Z¬¾SRP…S‚êO‚U;œ´[¯$ë?+„ÿæŠ7Wñš,y6qö »(¡áîL}Ûq †Š6_3S–¿pà¡ÿŽûyKZ×·>æ  \°ª†lïSAޤî6³î éǹÏ7DEvyŒyý`ês@P|ÔPö‹Ú²#‰§Jˆx.òÍl,ÌQhíïXÝã°b2\M/™l1 ÓCˆ U+EäbwZa–.77†¯Că™'%V¹€èÅߌ0M¼ŠKÎVG8Ò7ñ±Åy†“"aqœãê—n¯Ð:3iKˆ!UÁ2êåbï®'O‰¶ÜaÝks+Ï¡­0ôp‰Ü!_£ˆ:b-p¤´f² = F_­H?èµ03t3IêeG×cSèÜ$*>ÖØ €+n¹ªwC3êù… ,¤¤ÌÌ“uˆÃè¥v6yÊ‚0öÀòå¤Òq/×p>Wä+,y|îQ/]_ƒ¥W·Ó]ËÎáçµãNÄã ¼­.[Ã5^ðSí#Ë1-<[~a$§¬è59Áôà‰À4 ̦ï«”ì_åᾇtJ'´((C‹T¨œÍJNï?zžy½‹„BêÄ¡ ?sê½Úåb Ö*9„·›=ڡƧ–œtð¹o´ÄôÔOgÞàID¢·áG&åã@´q-Š–H²”ú9ãÎHy¨ê9ê&æÛäL[½àüլ˙¸÷[O^–É7¶ ­¨%•áÁî'òw¹vFø¿Üþ?ÿþÔA>*1Q¼mfx!|1ìŒ}`KìoaĆeT}¤P§d6j쉊õ=_¶Ö4Zq1ƒ]Öî%o#|€‚h©BºÃÙKèÞ†r wÊÌÁhà)È$«w^!ƒk²²¦›’åÀKϬ4ÂDK²[DCÁV®¡qúµÇmvqÌE”6ÕäÚ:.ôMì=ž€>ßIa\Ÿµ5[-Ë$­Û6‰Ev²é«ú~$D#œ3s÷Ë!ÖeŠ· ™8‘ÙQ“¢éÔó‡'º/ÀËØ'º04frPjÆ@ƒ‹2öÞ­¡jDõ‡›Î÷pKŒ·g4]˜v—}’Ôf@ñ[å5ÍÑ-‡‹PƒÐe‰,#aî <ÑÒ«ÖÄFrørcT÷3jÐ2€cQ¨è9eú‚¸‹¹R<ê o‘ÜçÊ#-oƒ˜C·'Å[+{ER—à<ÀÚ3y×È 7äûX°ïçßhƒ}£ýÝè)"b¹”FѹŠYÏSY!nµD¾–»çñ¾i­ [È6's[´…º^œ©†±éäé§±IȘ¤X¦¯}±6¢ (aWQæÊ}$vÂË•>ÅæJ/õ*#tæÿ+¥Ðƒø¦7#÷å9<|ªÃÙV™kn±iöT4 –½5Rvm9 ¸Yغ‚àŠÅŸÿ—YŸÉá¾{ È¢PË.|òA¤ªIŒëlK,asTo•ép;ˆ^tÃeߟhvÿ­YˆàÔ㱓·/`¦3TÚtÇ6Ãñj;R’U,prut :¦¢ãZm«‡ægÐè}'ó³g,µÓðç‡É±Ø&M-º›]|"ýxAì#RªXêeLDå…0ð¼ÈØš*èÓró§Í?Oñ7Pä0t¸+›åupWí Í~¾Œ‰žŠ’°¡ûÃYÎãôýª°Í(’¿ß—ù}`ÅkjþQoµC(’ÛXè¿ošœ»Õ Bp=Oý—`|WÄb´w‹ ÁæXg²±…K@øë Ö’$æ)«W-1Ñ4Ê_çÞŽ`–êšKØZ!ë-xY×Àâ­wâÀ´u@z©¬²sñ,d"kµ˜dªÌ‹¡+æOúÿqV’¼<Þ~œ'¿ÂqÞ3»PUKuŒiWʪ6‚ÔevQS(A™¥FÍuk¥5! ¿A©sÓúk!(o|¹øT{mwð‡6{ÞYEé«©>a×ô8~ñS°s`µ^¶’Ê{=Ñ,!ò×{·+fÙµr¬„>–EbdŒ´–ûOßÖ¿Vˆcйlf,oºw²ú,ó¹â08•$¥=G±wD4ÞÅá¸lÉ“ünAÛÅ?3`¥üy ÈWu=O¥AÝLöâàÉ5È€¶T#׎Q…¸Ñv¬£àÊ€/–óR/ÍΉ1]gÐ^ê+ñ¦ŠÜñŸÏ@Â)¼›à:+¿ñ¡|~10Õ6ó—‘Fe=ü•Œ7u|‰6‡?n³ÚçšÞ[L(žúÝécßvSbüÒEg„ cRíp¶`ÈvŒ;Ö 3Ò=PWvnô Ø&ÍZ]žˆêŒæ 09J"¿Û³DðçI©zÃÞWA ¡.ëÒÈÓÀøR'þú¯çN}Y(ab™,OpÞ¨Ïû{çÑŽÎh[Nå8”Ésüò÷¿¾¤ÓJu½KÊMt]mœ ”)hjÌÔ€7¡~ü` ¸#9žð’"_Î;q(ä0³"p‰cvUÈPÏ™¬8ô´ZËá1 öD¶6¯0FØGÝê!¢n´S‚`³cé{‰¦~O Å­½¶°zËCÒ}ªúý§‘èÞ •å˜ãà¨ÊET%eärQô~­…ËM˾aÐFS6’yÓGtêŽÇgo¼5ìõ®ßT‹kšï§lŸw¡£Ù¶}éçú¼ãöYÕk%¾»„™.Ü3Mœ ºº—MçwBiê—¦× <=òª­áÝ8…+àÊúæ!¤ûȃþU6ÖA ¶ggs®ƒŠ@œúY•ûÇ5?é7°½ïHmZ©†¢õkQU™D ¾L‘äuü¶}ŸOå<®7Ø£s ÙæÎK±˜¹Ð`,øáæ1°‡.Å£ÞF©Ñء㴟vŸîñ•á)7óä.©޸6c Ð>mîênkþÍÊ ¶Š?•å2•Ñ5f3°gZ›ÁZ‡G©œ'€‡C´Ô¿þC|Ú‹Š5ÐŽ|/Þßñâ8à“ÿjù®½.޶8ã_˜Á©Pð¼ü™âÚmx·…×c÷|E,-@4‘ÉϽqk$^˶eû²­`•,ÆÉ&ñaã ä?Uk¶Í¤™ºxEÅÄß)_€NjcKÌô¿ya¼€ƒ 6)ôixëØóËÑÎéä}¼ïÞ ¥| ~3À¶‹Äî¦èúég-SLij”M•§W/#•–ܪòY擪và”¼6sÚã…Æzfµ3¶›ùâÉîþ_zí_EÁŽK4·Ëx¨Ò†x }4pFuÔ*DLfè¸gëÇ·!˜¶…ò9jÛ²"v˜Ëë*÷&GC<ðM#ô².ö?&¨§+w* ðœÊð×N¨Úë&Ú¢ãdZ[IÂÝæHCÁ>]ÛŸÅU4ÊÀ:By£*í€nãMD[½NTaê"¡ÉšXõóœ$ið5 ½“§>:þböžÓ›ó©uµ}Û˜“/ñEÜ£»ˆk²cqÖÍ™’õM_sGÔîø°{¬ŽY„é40mg¶M‚Y Ó’_ßw¸eê+™XÖƒž¤yIËS¤ØRïäÿÝVÅÖ½Çóº”S/\%¤OÓuv£‰Ö§'àÄ ù+œ×ް‚ÖÛþA{flCÐÆz°^:UIü Ú46²ÑaË^ABA|Žª¨´èjhG=Ñ?£I)q$”ÎGHA¸q3@ï÷7ÇìÜ#›sŒµo¯')KN+þüÀ-yo×m‘Ž ‰½£þÇ`²ÚŽåIš š~! c‘×p2\’–5Œ„TíôQ¤Ÿ÷ ¶´ì»˜Æˆ‘1¨e¥EŽlDÁàýŸF¶t˜Ï¹»ÐW+$Ô׉±¼åE´úç;‰ XÇNdŒjxŸQ(`ÑL»ˆ«#)¸7´{|`¿ËˆøOÕ¾‹“‹ Bß§ªº}CÚX.Ù1Á7»†§W±W–­c N£÷vØäû²‚¨…ÍRï–I}ß@NsÕ,<ÕD;eâ•õÎÿ?$‰W‰³ªÚù®-êÈÁëx¿©<Ë8ã'*CZÕ›B‡Úày¼£z^xŠJªs3† SØV9Àð´Ðd®&vP?:å”R'ÍZ€·Éå†΀Ñɉ÷®r&§ä+°gžÎÛe7á‡!ÚF×Mh±Áp5¦d3ËB \6õ ^…Å»8Es¶ƒ„HÕ ô‡d³,î´RÝ $€h²ôÚhû1ûGŒ‚¨‹W+§›Éªô¯v7šè„¡Gž9 )jD>üÙéÉ퀀Uk€$¡ð ´\tJäù¤*Î;] 87Æ¥‹ùËŸ÷-îß'ù»ÿ9‡‰@:Kð.vè#­È2™„-h†piIb‡ÜQx–¡…`Åž.Ò GQ¹ ñ!¼û…1Ž ñ(&þw1i,lL7±ä°žÄñ4 Æ›Q›Ä‹½9]±Q÷É£I mûœ/¸ÃvµrÀ iƒÔÛ|A/¥t}â΄Ðÿl>¾ #7Ï0h–éÂû‡†ÈÃSå†àŒmCç sÚ9­u§§‰Ö 9O˜6à¯à;7 p¤òµÜ'š]^/k| »9š'É%h\Èñ4Sñqú| Çñ×!êNÎ}û@/ûhÝÇ"ˆðSŠ«UZ0_Q¿Ïëæ8„R+¹_X½ð€'{©Ž­Jµši­!‡Xñ=ùXq_ßã²ñ0½¡s>rÆ7·‚Ï–Šˆõþ:®¼Çc4Tn®ö¡Ø½=Žî_¬ FwÜ®¨–2(³êU’'™ãAP/qÅR„ô™4øwØ;^Þ}ÓâÃŽúGáøá|ŒÂ_[e|žtݳ@+‹ÍœŸp©û°º4³á‚1u‹W\0 øßT·¦Ï›HÊ }Æò,ò8ÒþÄç`“êýkuaŽG³'û¯»Eé£a¹ïo7Õ%šs‡º3¤jV&ÍD³B jŠÅÒ @>šñ¼]°öK †Ÿ•·xSåI±”Û×ÑÍb—!Xèh½"ê…ÝÙ ×£^fÔÿ[Aõ¹=¶v®„’Ê.*L âCEÞ2BÖ…ØÜõ_Áü0‡c¤hèÓ‚r°Ç[!‚ý¬ð¥ÁYÞ›šãŠíú‰±[ÿDÔdrXxXUÙ%“¿ój‡GàÙ]í\¬i4QÒöjù0Ž4èwde™¨'IjîÇ4›%®ÈÇu`ïÂC᥉ôê»%ý3`úh c›ÿaâÑùlÿ´ò.€ Òù„¢ a1ðNSC¸ÀŽÏ˜ûËñŠ“1–6„ÜYå„JxàäŠPnÛ36•Iõ²  kIZtõè̉3gþÌ-Ž\–8Á²Õaå±D˜HrÇ4^Y&Äå±Õ÷‹¶}‡P 5¶ÖšïÛˆÎeJdˆ§öÚéã :!K|°.FE#Üw¹«+Ia;$£ÿs;ˆWIâæŽ¢mßóÈk¶8KQà©Ñ=JQ"ÔæÉUáø¦šYoæ%$æ¥~j¹•V4à¢}%}—¬ÄZ­ÓYHn#Rñ¬â„6y€t;¿ˆh¼i<%Eé]ÇúlÓ,©w¸˜H[†¢lö>Do›Ìo}ìß’l³8`hµªáùWg3\WòQ>"Õ8 é ¥¤÷Œço§\“ö"YüŒDû9j Pù†?õ¨ê·(U¦û»ëWB"°R1U„ZÏø\òÍ7Àôõ„«R–0L¯ˆñ”@4b'Òà5³0øöc®¼à0¤ŸK’ÐX©ŽO †_Íx1Å{ºaÿWÑCÓ×2FÿS{g„ýÛZT5¸˜ÍéíF0ˆ™†`d€¾ÇÂö\y XÌS“ìjú†&lº¸+¸Õ¦xÉìc"{*½M•7vŒ©!ŒÓtTÂN‹”j„½c\.N³Yî?'üb3%œ7²nǫ̂”É*-ÐË!.Ý¡I¨ÿ6Œ¤ÁŸÚZJ9ž‡CŸÕ†L ˆ± M­[ŽCY 6¢BxPëg 9­'¬í’¿Š½b é˜skD€UˆU¹M*£Ú9šQlîríê€GðíåréŸ*ª'”eºEÀ!øv³­‚r”œ÷?IÉÒop.]˜¶³ %à}压ÒçªåæW‘‘<J¤ïèÙ":Óô©¿‰Rpަœ#奪zTãTeÀìd‹gŸµz”ëʵ}g¸ÃU[mL<ƒô“¿ûœs— x4è'@=„”)I0ª6-^äÕ–ž"Ó8E~Ùa0ëMðÎzÿ¶V^ÒÍ}‡þÎüà—{h»ï2÷×úÝ9%ý„KC›pw?ìïE «Dºx‹t½61«¼ÄŠ{{ˆØ4ù«îaÛ –:°¶lUÔýùçíõ&åÛ‰²6Y„œ ¥]øIÀ+%ã÷Ô+¡ÈqL°ÃÜ›yœ÷É;];(Ýõú&HlbwäzŸ%uH]óŠÒŸm_ޝ‡§”_˜«zƒ÷!wë¤ÓCÝ77&F½}E=NI¸úØ^•¬ˆrp¨‚͉k!Ú©µý'ŠÒàŸÿîéÙ`~U ]º Æq¼`iUÍ×<é¿™ärWã¤W1Y‚,­zqµà'ã'6(îßN7×Ô´nd|¤µ|kI)Ãj=²£éÉOÏ*YÁ0¶¹>­=Žd™G4á¥6ÝoÿòIŒ <ÖãL˜Swbn±\Ø»@À@„ÙáËW +Gà‚׋7ú  gf|׬y&õW4¡ý  7Ê߀ÕQ)ÙãçYÍ·^kÏGç_ eH‰8Ýr}rË!4Á²—û¼º®½žÉ·•ÌC$zá8‰PÎÒåĈÄ-i(å,†¾öA˜ÞÎ{ÒÔ×÷mJ*™¬æ•‚9½óÊälrÕ:}\¡“Q„@ÍŠÒ„™—ñ!À|1/_}êI„ÑÒMgÞÓÅ­õ®1‡“VÃÊ=4m©NÁTŠé¼) âk«žé>Ù&i/Â0^Ûr¥’ºzÇ%,ï¥Ú?;s}*ŽþÔ÷N¢uä;ž½ˆÍJDÇü‘vŒà1*à‡Y†›¢0‰Ñ–þõyLFq~VmÚ¿ýö½¹ås0;‡@ÿ8ü·“¦ËõÜ| éÖÞé÷Ù®æÛKžèy¨ØdŒÌ¯à¾ùkçÊ€öpûÿªÚYõ‘çCR~ L–4±³—Ê[(bJ쎫䈳ÇΕ»Háûã‚Çg¾k…>Ô€ÕðN\*ß vÔÄð$fwA$O(Cö ™´pÆØ=+*/‹¨ÛÙ7Ü Œ  ( õ[TŸ^çOßã¥zS˜üfC-ôS#<ÙƒÃH¹ô õ6Xä  s ×÷ÈÀ7Îrßp›èëñÂ'?éP©.Ø%¾·+ðýó·ìJÆÌë;I‚„ÞHÀ!- E- &Ô\Eã¦ëÈÙ?èe¹ˆåŠ'9×u6Ob·.‡«1¢Öc+åO4û„æ(JSñy’nä0Q%umš.Þ –w>˜X!å¼ôËúâ…É%²†£ðüóv½9„pd¤éô·õШ9Z?‘!>¢Üµ_CQi¢pÀ~mÜö×"Φ0 ì­µ@úûËîkÛI/_©ÎØЈ*îðaéf}ºNèJiÝ;Qó¸4Ž^ñíÉ$£!êöÌѨå²Ã>%á(¢ÇÊÐNæYNqÞö߸û}5çk¶]ó¸ZZÏ•©òzP£.,»&À?½RËOç~óŸK“x¾GEXñ‹¡›r»ò’EXW'Á/èg]' `Qç$‘;r_"|ë˜ÍbëѸìRsrÀE÷ã‚~ \F£“y!Šë$*—{Ý$›TÀ»E²dËK’eˆãIƒTZŽ+õz°Ü.µ‡ £ný¹CmÏ0o2wëÏ^;Û/šÒí¸©¨<ÖIÔó¬\1ùŽ)cúŠtð½6‘Óÿ¥zþH½·ÅÁMÝ€¦ÏP½ª*èÊæZT€õ?++„b±Ï{¼Õ?¢=·v0(3«EŸ€> íÃM‘Šq¯~cE¿­Ù`lô¦ñ­&u­õr•Crs=PÄ y{3ÍW®wøP&êTTóJä£14/”ú¿/¯Oôâæ ›<^^Õ–ÄZÅ[p̈=Þ!ˇö¯¯—Œç‚ûüvƒLœú`2{Õ÷¹ÍñéÅŸÙUš ü»7•ñµÚ™'Cã_Ä…‚ï!úüçùköTAQÿO’@§Ô—Å¿èrÙB³îA2²ЉÖ~yñOu¼G´CI逧ïQ d»X‚Í5¯ÓEc‹â‹e0vÊS©v‰¤¿‰¶LbR)aC{¦$· HÖshÇlCs€ÙSÐñú/þ0³è'-aBÛÌg*0!ìÒB°3É>ª–r: Uã&Pb#{æè‹®¡Æ=HÛÕ‘8pô¡™—ê$ª-dBûÎu©=-Xn,>ÝH§1à€@OävÚÛ«€x¶Œ³m:H=º7ó [ýhlÖ৉ðÇ‹ï:l€D{AÌG6bÞBRR½ë75Q{0@wsdÐ+LjžH¶Ãä9¹{]·te""ü0£;<‘{Ô7 Ç!”A{×=é>4˜pºêœõI‡zéDׯ5ÍÀvZÇ[YÎYµó¦8Ÿùè$I €äÅÀ¥zÃH»!Ï`bÓ‰öÕËf€øµ10²ÐÍh]Jaf…]Ø‚l¯g 'vÂŒÇ ²eîÆË7”tŸž%2fxÿÀzõ?4ì³sêк›zŠ1/–ŠñF­vP9khš­ôÇïTÂ-KÕë ‹A-#Í~5ûž Ž?Y¶O\!0Vô Qdåí…2E“L$‹o œV—UÎDÔœ­AÀ yÑ|QȇÈûäÀv]ð3²ucãJw.âÊTò¬“% ¬‡2x*á8¶œVÖx·Ì„ìNžbEŠå¦FÞ6JgÉh à Ž[&W°PìÛÁ#½´Ó_QD)‰Œk¾;4ö”]¬Ê’îþUOÛͧƒŠkiäá6ú]qƒrX*yÓ€­m[r UÀ EPe6ï eV­LD ]‚Î<þeR,„ÚƒA«%ï& ÁúÕÛ7£NÆ¿¬µ407y'Œ[a]žK"ÿ¦ë”@â<%<àôñ'Xúî©C£™܈™‡EÃ8ÍO>ô;¼¬¥)c6ˆsü©Z‚ë2Pè49gyDÀ¼«ºQßÈÒý¦ƒbkš))ºçGê¥Û0ù«')ï$j·tWO[ü1……ƒ3 [šÊÓKwð鈋îw”»TøD‡õ ;97‰HÐßYU¬*IÏ•´w]¿“ºï”oåÄ«Cfö¨ˆûŸDýÙ-†±ÖÆàŒ£ó²µÎ òLEA_ÀkÁi(ÉŸâG}ÜSÈ ’_½ËàA/JDæ¿9ß^kæ/™4“«­”·÷bγ"ÉìlK™5®‘W5UUôpÎß¹Ñ@­W¦W †_–ÃX²&¤q\SËÕ‹HK4üz1ÄôW_.×Hè±*ÉSr2˜¿` â¹nXU=àyHDŸßöÌ9í]¬£|ð† ⮳åLjÁ\C=1NóÌÈs”G/“âGâœU;‹ô‘¸J¢NH+¢ °ŸÒ@¥Æj„z^4š½-d)HpÝÆ=keµÖJ•}=ãÔœ9¦»m’³¼Ú •b“¤¨èm>Sà Íl‡^/öj«mÊÔ”X–ñb^ý‚뢳Ñ74xAà=SõCí×ÅS¶p|cY^œ¡³’Ëk>(|¿Çz’ÎùÀÅÀmõ*Øñ”>õ¨SŒ£(Ì´ÆJ·;Á›òÅР1 Ò YLˆ3!Bâ7s¹cÈd¤íJ˜˜Õ®¯œRlέѽ…ÄÓºñ«¨ª”«ãüîš0Ý6ÅM(~³¾÷BÕ.BU;e.H9÷F©˜Ya¾„<"i¿33$àBÿGºüËö4‹5-9‰‹{LY/ýˆýWŠÍ­ÂRÅé‰t .:M½-åYØ6‹dZs”êq% YÌ™ÿrêÀоB¬ßÔÔ'œ1ñê¢ö_ѤÈ)µøÝý¥tÔ¸îÔlÆ÷Ópýs1Õ !;Ë ¾¬ƒ¿¡Lä4¤ÐíY½n0þ@)rÈK¡œ¾ê§ÅZÛ¼åæÛÑ{ƒ85âE‚m9PñAØs°`óï -? CtŤÇzýzÆ™ilçL9<&µ—H·ê! ÌÛ¬¯ŸP†Hpy8hÔLRÀIø Úr¢[00á¢&WMí4‰ÈRÞëÚ-IÿZim¾qM”UZ6¤äAÈ¿çê“&æ´ _b¿n,gzX¥°€%‹¿Ë)7À{ž‹ÞåO$'«âIÁ`ñ•K”ß$Ÿƒúr ú€ –r%»óÉÞè‹Ö·¨kö¨¡ˆÇ€²‡Ä8¹l$&hi3#ˆeÅÓõ ˆe|+¡:ÔQÆ+ "s$uÐD$ßKÿ9#©vç ²æë)Ĭ¢ 6=‰Éž¤øÝüÄò]UkÂÝâ­Œ›É¹'œ÷ŽÐvÁSµHðtÄfgŒXÙû£7Íëû÷bV3b§`ØÛ*Ø—ÜP Ï–Íá.:xÔv©i€ß6€¥ðpÔêËÙ•–†]§Ï ëxÉI[½^éÀ­Ý?æ{[þé+ ¦‡Ï™_¤ýENxèi˜j„ÒL6±G{ORë–¦ey)%ÙÕv[òèDÒ)(.uüˆ¦÷™)„x VVÑ….ÚCÓ3åÁÝMª<àksy¤å]þØîEÊ`E M¶ŽF?ƒ—J‘I¸÷yHDÀçÖ½–˜E¾N<}€H4‹lB™3àïÜT] CH›ï¶#2› ÜÜ>¾—¾œ”X¹å\ià§"ƒ²kCkcb/v(¹•i軚$ dïé?‘ Ÿà|óÀúíœF« 5ËÁ±‚f÷— hòCEÑÀ‡¸¾Ö4,]g\±¶XÙ¯Y‰´f$ fTŸ•Ëè—‹tS§›:ׇtþ-Sà »ÀðPU'»íñ ò7§†ÞôÜòkáØwïj¸‚_æ³6§ß6“&³±?ìÄjÿ£+%p $–úâ™-ÎÑëwBå½X’|(3rÂÈ(Ýô^•‘êÖgÓcMÂhK1Z[°mÏX@¥ÊÒ·ÃÉdÞYæáK*Vúƒöu ö@—/Á~",vÅJ'ɱ(_<ü’·œ¹ ¿ÄÐOw°š 7$ò܆·v°Œm`Ê-•¨}½P·;ž¶0JƒOèÒãþb]dq)Ü îc™ïN³¼*ŽŽõºQßoÏU¡ì_îð¶NMµ¤¹Ü¥µJqIëOÜ]©ª6&سx±a_]£âìgvô¸ ªNp]¿/ 3šò.Ŭ ò¼2ÎÓïÉ ¿ïÄ™ØO¬ ˜ôÀÿ‚}}æê`¦Xœ¥Ò”+8ñà·Ýsã\ã;6ÒŸúê½z½t<Ü·²ãh?T½{m¸íÑàåô5–{¡|×CŠç""¸ˆ×]¸º%äȺÑ6@(u9±q„ºÕ+¯B·é®-Z@4ƒ–¡í2¡´)´ÈX=[<œÙù%ùp0ÃÑ ™n%·&M¯F`ç°, † $ý±6Õ¦×:PÃA–—‡)*w ·l* A4$„îJsÎÆjÍ X9. Ï \“¹­ÉΗ¡Vá(àCЯU¬ºïÄê:ééŒfY ž,§f ûçÂu—ßz‡i!˜¹’Ÿ˜ó¡.”º‡*²Qƒåü=£±ˆµ3䀶ú’´­Ðõª{žÍ‹§kåwF¯-Ø™€ãp%æ0©èÜ#+ïuñb"H¹lR¿ä ˜óØç‹ÚÑ íí(plš›†ÊÚ¦Hî…(쉄1Šß¶—‡>kÏÏ‹2=¶«p.7„@°ÜÌÓÈ Ï|Âãïòù>­•Ÿáµõ XÖßÌèlÌuþ¬åX"¦ÃNÖd~ʰáªZ£G@[€rZÉÕÙÝ®LhÇž…ýmtì9¢°3€”š!¾3:Ï…OL,›o€Ãd…¿g¬²œäo†²e^ìÇÕ©Õo¥aµÛ?Çí· ¢]ÝÒ( jã<¿š!f¾Ó’vrKƦv  6ŠÀ|-‹yÃúkÏ$™ÊM2¥èvg3£ðæKÖÌó4|qed yí€X¹¾Wð[ãàÕþÉuÿæt%çRd‘JeöùÂå­¢ ±’c/3iƒ ä…élêiÓQØã2ˆ×j¡¦æûý¸¶ø’)m–k‚k&€‘DMSÞ…{~M™°Œ*YÚ§u&…e¦üêøÖr(vàŸÉÚ\Ç„%àYÅ du]ÏÐ’ö­½ ŸMçÍ{­Ø¹‘?ò{ Sp.b“|ƒ.Pòßùh¯Ò¯±„!³‚ê² ¬ÑtcÛjÆ)0"WB †™›êE0*<•¦ò“ŸuÙXòç iîyve!&üy³æ#‰/æ'µ©jC M¦ôYü6„7¢'´£ ±¶£[øu8Q÷3ìä‰0w–U…EƒSñGY·PÚ#²P­´‹Y1ôñµ/¹ŸŸŽ³ÜªŸ+˜.Bè©àVs õ¼ô?•õßR¾ÃS@#!6µ¼2LG„«ÐÑx:Z »à~Aä€çe,)¥Ž‘ç{9)Ò.ûÇÉsÒ—ƒ\š“n¥xGƒqãµ_s„SAŸýG>ýõ©ôNÌ[#‡K¯, §±PÁɶëÍ+¨.ûPi¯ÀÙç Ä»¾ˆ»z—R3î‰f”µöå:Ož”×®Üe)ôü5anêù8–~´¸QZµ~–J çÑ<4Z(̵εÎñaµÄÌÌ4ʧÝ`ûQ©ÚíóúwÞe±ëN×rí4úD4# ¬…†ÂC^6—ª‡¼E’kˆ‡tŽJÆ[[¼z¸æšé½ÓL~]IÞi›”ÿxŒ¡qÛõI?u¼B Î…±iB?u³%Z”`nr® ˆñäfF¼BhC~Ââ&‹Ì+æÑÉ‚}‚¬\ñÕñXäCÖÉSe Û¸G8޳bB«¶ÕÃ5LöÞç3m.Û›mH¯Áõ^©’ZÍa1H¾Þí©$zþ|…l;°Ù4ÀÒ3¥tbkqFU.Ãâ?òhó­ú¿r:è¶>ÊIuÏþy྄Ðh‘{#¯ÇgEÇeÛÎ%˶ú§Ý#¡§M–Ïê¦V~Í$‰T‘9›{:“7ÙäÅ->ra›ÆI+©Ÿ,,^F¨ƒ>ìs­~X˜¬P)Ç$ú•µÌ7‘ Bz÷‚Xx˜‘ŒhÞ— Ïédà~v ä¿=4æec–i¬@}(Eéâ”APbŸ%öšj®ÂÞû¬ÄiÈ€óÓÀ)§è£Ä—·ìí¨Œ÷Kg¤4*8#¤ÝM/òƒ*ÆLxó‹Ë˜6O{ÑZV$ £vž¯°® ,7‘ÓáˆúŒ–QV‚6iÚåZ…«ëbi𒼨ª–nÅø•?J„èHá¿sÊ ×S÷C&3·ýw@Þ¼óËãôQ숋†eý`clNPÞ«}³Žþâ­Xê8ÚNþLO-¯ Î,ÔRàPqÏÙߡЎËU¾Bph”'üÏ„÷‡hï LP°R†Ìv6ú¿ÍÎõˆÝzU°ú”@<ŒlÃBBZ)ùŒÌûl§à)hrçá|žvõó=\}΢ͱv¨‰wV¶cõ.Ó¾DÖ=ÖÄîi˜¤ =á-¹¼ð+Ò† § sA­á BJƒ8›rÓ…$ÅÌ«ß"J'êâ8ìCÓ²Ë<ãÕa^›ÓÖÚÂ’>]jG.ŸwµEZçAµ(zvEìÅ1&C؆fK\6ªYÚ:vÁ;j4ÜÞðž6vÂðlž‚ÓŒ¦Š[8‹NA/ÄTRH51¯h ›cxvý/àíÕKŸ¨Åsн°”%²LÓ”Õ¾³!—¿RDqÕo6ÎË¿‹~íºj1P(µIN:`ƒñÅ&{nûjPWs â¿§£]1¼šÿ¶Œ¬0¡è`³d‘…òÆ ÙŒ¿—S£´nÒ²9Wyb3t:zøHÃ]¾b}¤¹§úÕUÌYªÍ±ÏFJ0÷'PFò–Ú¡é›óŸ&TîÏ«KÞZ°/ZµÁ¡"âìÊeÃ,[Qè)^-ë¦ÌJç–¨ïfyHùïþ4BñÐ…ç”Úñ§¢Œ¿žÏÏ„ù3S?¢~£µÓz‡7aƒ³ùC#îwú6ÐE˜»~ŸnÁ^°ïeÙ[[t™uÏOd 2) C¨à÷j±ë¨Wùc¶·êN«´éñÆ(<ê&YÇT—ã¡f‡c‹ä #º^£Å[59^“úe/(i>pFôym”|½äœ-äθ)¡“½ÃhæÆc3‡æ\ˆD©c ¬NZñ±H`Ò‚§áÜj}æ«™]/ mC‚#¡Dò¬¹}ç—/uú~`ýƒ”®”œªJ iÍ·é²b¹Žp‹p¡ò«AÇÐÅc:²Ù$n·Q*ŽÀSÐí ý¿C4Õ|^çIZ[Rÿ*1L”¦ú„a¦1Š<ž ¹÷íüˆß­sâW[t)î'ƒ>ú†€J¢€ 罃jˆÿš7׸ò³´$ièf™’ãWFFuÚ(|èrj³—"ÊàA¶ªÌp2­5W‚ÏOw—­æ]îFºßWˆ´æº&ï¿*Þw³ §;»ïÄEçì6ý‡g(®Oøÿ›nM†ŽÜR’±mòöä>c3ca6•½Á:”\Ñ!²µ¼¯s§›ÂúÓaL*¨ì5tdU —IçRÕ<º  >äñèèÁåö­­+œ¬@Q­ß}ɾNj}â,ºóErׯù5³¢ðñ H²¶y€ågm!¶4åËØ&4ð[r«eÏX5+ØÙÜ„¡»ž´WQG¥µÕ„ÅaÞK<–R‡*­Bµº•ìvõˆÚÒ ü¶Þšw4Ý–¦ZVÍáÏä~2Ž)z:LäN¶&ª­ã/Ô@Ð$äL’»Â+KG°úªì•߈Β©è3 ¾Ç¢×Uåv丽§öÿ*ŠŠŠùÆ+šáÐ:hN¼~5Ñ^ÝŽ€Q¿2]ˆÉˆw`V¼A€mUÖX†§:¤¡nžcÈáÁµº|{[Jùƒr™jc`-V-Å ’ã çeþ|(D¿ƒ.M¨’?"Úƒe@›t7¿ Ö\ÌC %Uî?ˆü„½édè=z;Cs¡Ý—Õïõ ÿnôòD/«yeÏa®R 3ü¬møfÝÓãOD§ÎcT k×½ù\Ÿg²ù„A%<*hoxj 1k™/¹‰µo'n )¼ˆ,²¢ù\D“^ÉÃÕÒ»$džºÆm {êo<[s¨Sá@Ùž¶=dÀݽ=Ò"D­¨(0X14ÖË1ÚSƒã«4YŽ©9¿˜ÜÆö¼B ¶•YçÃÞïµöêÒG2Å•GØöJ Œ+A^žH¬#$‘£JÆBBÕ†Énœ¼C4¨QMòåßmØ|l’r?ù5¤¨+MùVžè,$K•èQˆ–(¹³Ì’lƒ\y}=6,”=ÈÝeŠ“íß äÕS–„°SýÊì躪&ùQù>JU¾ó2ӇߣL î›ŽŠ“‡Ë§ß(Ø’æû`ì¢s1EË—×à¶^2¨î¦*ùVJyÜE‡!þó,¦'ñà©IŒ ±#Àñœ&ùë§ü½ûÖrƒ²¾Ãø¤¸`ÓÐ5Láļ#©P3?àè°Ì™1­iwQÁº‘+óèôtÙP:è •ˆ3•ÜøORÇtc+u)Ü+˜ˆä4¼~¼ Bä³ßf²€= )Ò@8-'!ÍÒø+¦BNÚË¿fÝjFê2K[ßÃÿýêTB…t~)©Å-‘Ê7BBwh‰Áˆù89aï†mCš/¬ß£š;ÅÐØÆ+öh÷Gš£Dåóý†jwóñl^îâ¨ßÂR³6­1x·PAÅ/÷Mm·%ÝŸÄL}è!Æ»Ü %×dÿÇ¡$fSàzœ}ñ1Ýt“gê‚´˜’W³Š³pˆr}ü¤*zË=ÍiáNåîºV¸S8 ÙÉĉ٠uRn¦-t¢ýì §Øl`÷õEÞnË­-î±x˜ð+øæ¸J0ä/:鼂fò7)juïÙo+œê˜ëY¾|^Äwë@ sÆ€´?{ýò)bIÚ–­û¥Å}„H-4CñØÖ¡+k¦ÃŒâ:ifᢓ~C2—V`ÏtžCØ'¹2’ó…þ”IŠ?‰ô)õ­ãy&»FÄsƒßaNÅp0#W2·sƒ0¿R¿äÿR á{=EÒúTÕ^CÁŸÂ›ü¾‰›¡ïÚÉ0ÍvUP®³ˆ•úH )¨–e gÇG祙Žê;@J$? ëô%åŠJ\ë'ÃFÊÈ¢y°»S¶ |0Cè@“ÂÚÌÈŸ@âj¡‹ÊªÄÀÎî& ¤Í×*~Fpt»$µ«³1!‡–‘Q´ŒŠ4¬Ól zGºLÓ?Nn`dˆHÒ847µˆŽŠ/?Ú †¬#Ã5”àF¸ð ”‘M7zöl»°w‹‘äQ£™œ£™ãÝ)«w(N³Ë£±RÍcÈàƒaCƒAXHáý¥ÅfmÍssæÃîpð—{Ôz鱡0>‡ ?Î+¿â¨~\GŸ¥üh§·>ÛÝ_n˜E@é¢AN 4™2ØŠ ¡íØ£<+ä§® ¾Ö’É3ÙyÚ&¹Äå—¯S°ðÔÞÿ~Óf"¾«Êïw\­Úk=œ®ÐaÅJÀù{õÂ5‹Õ³×=¹?Aðj^ëÑ`i¦)KÑYC8+&›”½P [f7ã‹ dà¬NæŠ| ªRüv`ü2 %Ièê(®R‚`E-¸ÒJöÂJcÝÞšD’yh¾!|Ø»³Ñ°a„BRðµígäôÂ'$3­»ubO#öZ-7Ãbzäfý›Ô5|¸¿€E äæ'úz®sܘW”ìA{·'²©”¬s}ÿ¨ŠÚõ¯{0y¸ÿa…®Ó޾3ÁQGØû4Ø ² ;YºÕ›‹¾ë{ã.¶ˆÂbìX¾®–¯4HŸ•¥Á¬DVᚘð¿d.Î0Pü»-vKÀ°V‰`‡ÖŸ•\ˆƒýìâ'ùsõù ͪdЇ2Ÿ}½C¾·5K¬Ч…³<›dÀb‹\´ HFï¹?Ó÷óŸÇïçî§Åãñ²¼÷aM¯?£nkÑÔ*GybçJÙªM]À×ÙÔ“V‚Q¢ÆÏÜpÛªv´)+x J€’s¡½Ï·QÚwñz]ßú1o6Dï»´!·«m¡ÙwÒ}ø´iŠš'taX%߸^£èšíñÃô®ÎÙ%-Ÿ0§¿t7Í^žLVŸO¶÷µ"“´ßÖDÐ".²²uAElº¨!À"4»Ë‹X|=ÔV—ϯ`4Úå]æáÄkœ9á‡!À2†ã©àôWžàf¦Ö¤râTeO£s˜ sRîàrœÏÀH¥ƒ°k“™GÎÉTä+ôÒÔ ò$I@]àñÏ:˜J™ásd¨Rjº4ìW]FüNŸõ@Ê·À2й‹·ÊùõxwS*h¾3`x@–`NG.LÄ;‡òï±Q,ù¸”a5†ûÿ_)K] y؃=Ó’jÍl…:ËsÂ ÆØ˜¬‡ o4[•½<Éi-öNHû‚¯}“Õo÷߀kà¥,ES ×0÷H]‘ÊžVÊßîsló®Y.¡ÑÏJ”G ^­5æv‘á·,Ý@©ªW@'ƹíÞB3èŽég˜ KŠyìz½Ó¸zÌ1É‘òM÷^«7ŒiÆT[-ºü½*ÅIÛžQ-1Ñ>aƒX…=vÃêCË3•W ¹5+rn•JM`Ù-Ë0é¸;mÜÕ¼¢¹M&Š%þ5@N¸¶ÿ]¢3 ÷ãM*HëMŠ“®é¢#dD`ƒ(ä`ÜwÃèˆõüÛ5×ðnØ2Ã1õz·K6:þ½†Sr/àýÓ¹ÊÙ·ZB¦h wmðtšZ¹N]yÁ9Uö¨.)Há¶ËaòfP5(½‘TãBJfUvÃÖ¶G²XKLóóþqÿdaQ6¿ {â"ÔÊaï>Œ0z¸µ‘ u¤o¸4²£ÊÛ0À[D¾DXû`Yo.­Ïžbx&è»È‚¬2¥¾¶iç•fš.AxŸ®…ÙIÀ‚*¦Ì~‚ä h_ÆÒ#§zŒª9‰503È%•š>´ÜM¡®\÷t²Ãâ̩Äd¿€•€ú˜Ó 6aÓÜŽrïWˆñÒèþKÄ:üP>ÌϺ“­ú^Œ×?à—Œk<[ã».ö2ñ! š’± …þîÇ ôrÈÓ?ÅË×mv2”|J³¯µÑdžW2Pi*ï?9ÜâÓE/Èà©0Êä°wí þ§zÔBä¸aïV•LOÄkW”¥}ôN=MµåžÖžéxIú9CW»Îj¥*~ñ) À¤"N2kÂBæ=ywÿ™Zw˲Mô¯s³Wª:éØ/MS3˼á×eã0¬R”ªTýäLu>dîŠ=™òTñékºÑMj[äèÿ‰!¸êNCúÕ{¹[jœ>ƒ=ú#(Ÿ;6Ô2-yÊ iÐHŽ‘C¾F_kÀ ¸ˆ¶õ¨ïiþÑø>iPÊêºW%ûÑœµ,%b‡Œ„|áM©÷»ZƒÔˆ`¹­ÿI*¶¡Öm¡üÑ„|ÞR~÷Ú§cáZq~ÅÓ,$ÿh•yBÛ[ÙìcÇtj+öÝÄD°r€Ö–KÅØßër6r1ö-¥`g©¾[èД‡ºl‰@Š2“þoe-բĽæ]M®äÑ>ã`[úréæ`°Õ9Ô ÖÊlÁ†™r%]±Ø„(Ž/;çäýœfT[\Š¿‡%?¬ã^’N{Rk´É"·,xû ÷ò¦ûûé»kBítçXªž¹¼ÔhÿÒ¥ôö–†êÖ¾L°¦Kxš¹AS„Â7Ó*ÂXûƒ96AvÅR tŒèxÓwtsöo»1ƒaÍ{-}{2;ÓŒsUò7`)³Áv}Ö³ÕdàùÍ0ÆèJò s²Â4G”œB#œ½¯£K‹ñ  Óæ9°úEx*$kk¤Ùvñ‘àT¡FÚ®³¢½³wAN~\nþŽì™^LBº%×ø*XÉëØEÑPFãÛ# ­›ËÀéÖkuÊ쌼¤»EÄ£´ }BšÑy!9 ‹k“GЇ úN^ô“ña¨Ê\¸~Qf)ß¾â:…åúL§‚+üe´ ÐåbX¥•ï9£l]%þo¬¸déÛ–X*r0݈åR6üÄLrÿH,¨3-ÍvIÑne*3}Sö€êHeIm­¦~\]JmRS²‚ÚdX­õû+·®¤ AÕ繞³R›Üõ@8÷‹c·¿:­6 3ÎfE«J:¦$7—*¢¼läx}0¤w Ž#~ø¦€‹°mÁMy [³ë§mÕ¾<)vp/¿›{"¤±‚”;nHÛp‚hY·ÝIM!Ñüç[oÊ-{šF0ý`®ÕÑúd;œÅá’—É¡Uè—É…aI°ÇŽqË4!QkÐHÀ®;F„5Ê;òÑÛà«—”³–¢eu±Ä~oÛû–j0×Q»¸¶²sD¾m–Æ9øïŸŠ Äá"ìmQîL¶îòßPYìïÞ‹dó9'?¶À/cƒ“öÿjiïÚq¿3fª¨;éè{9‹qOÜãÉ‘v­Ó˱ÎYj ù—½{ðçC7­NbºkN´rb™ÒÍ\kPÐYÁç÷ïÈÙ]ïžý^K,©µYYò4ë9"LýqRVÜœˆ&K©N>Xè>DJ+>°wV{ƒ±M$a²&L‚SD*„ ´J ù¹åøt’{˜dÞRÔy¢çš‹æ¹ì4‡BäBb¾³”ž²síÝR&ƒÖûë`ËX¨x4Ý×KÉhpÏŠþµD· YQÙáöøÏ Æè6ºœT§Gò[~5§¯ú¥F8ÏÌý.9R&¯L|mÙ n‰‡¿y¥·:æÏ/З¿ç«|F\^Ãšð‡øŸVlŸPDOÍ:|àV%¨ÚLL[²Ö‡ÇLÿ†ö¿ BÜÚTâpÀ¬e‹kˆ¼¼%ÐåM¨¢Ên–â]S`´afCä™éè¤A!JÐÀ|ç¯My…ˆn;'{Ć®y°R£Ôkçôh ).9zÍø²Ø0ïy?Â8Ka+Õ¹Ôp`Éš:Ô€¶‘E- ˜ùœÝÚð× J{6vôÁ˜Ìž,ŸWïˆV^çR!HÀÞG4öíúçÐ¥šâb+{ü<¸\@†Ã“Wʲ‚¶<Ïê ˜¢aÜDh:WÓ»œÄDÑ2ü!78,=njásZ°^÷ýyE,' _;·2ˆÎ®%½ G=àµ%®V2ATâ{ÐÂ*ž7r5¿Vÿ©¦á¨JÈÁhrø>™Õ¿þ, ZÛyÕ<êF¤Ó„?·5ع³8yF<¯íÚKì,mµè뀧‚•¢w­jÝ x„]:¹·WŒ¥60ŽÖÁLîEïvÕn‚hÚáïÍ`{†æ•ÜñÅðF¢*5¸`ùEJý¿?ܲmäÜ"e2 ÏþÕ‡þø؇òŒu r¦ ©Ö—»¥ 42e™}¨Phj¼Q¾ÜªJ5r(-˜ò%Ûd„[ ˆùÈ®t.ã1ž-ÀSgª]ø(  ÎTb<‘=R9*äbè!HåÊ?1ø½kЕ.úy¦¥Æ½žô76†:RìY‡/:ÎUê솇"µ#ôaoP[…‚½$9z }LÅg÷îí¨\ßp÷ô;uÀð¥¥/…øÉÙ[ú,Àïœg±¼‹,àI¢wÌÖZs”HÕÊ$>aI?ãÖΗàD†< BümÕ›i¾GnÔ܇iN á »;$¶Ž»ì(Õ]´2…^?îvß2®Á–¼M•ñ(=ªîºÉÇaè(ƹt‡k  çÏëpµ­÷»Ù+L`ˆ‘ðØÿæ[´ˆÁ˽ÙÙ¦>Si0Õëï¡ÖÿÏ·Á1áÝçÞÒ‹:-^‚ ÕáçV¦yáÀÒû_‰ð›%÷†3xtl‹Ê¶¥¾}Å0nØ”tBšØX¸é¼™¼¿¥ËbŽÜEh1ZA%Ò@‘ë¿úE¥ý,Ài ±ð$ÞÚ;tÐÙ“êÜ›a+„Øü˜££!æk=&Mµ&¨6ò¾ìÁ!­µA"È8†¼Àsn(Þ2z½.Py1”ý1=Ň}#A1Ž°Ì£>ÑÔ4—€XÐtFjÌ1K0žß­9&ªÑ´O‚ÈM]$Dt!÷±{!z‘h.þ ³ø\$ä¨Åukz 2c^­¢Ä 3’QBU1Rs¾Ög˜D(¹L\ŸÿÍ}ãmi/‘ïØJŸNâø„ƒ0Îñ‹$8kS)bÄ=ׄÔzÅßöú˜:ÿäõpór=ô€yËYåƒ-„ îü-‹`¼þGo® ŽùKiÕ¢£Ü{Ù¶.£¨ðdsŠŽ|'BXfUê,Ö­°y̨*`‹]#ê„{b•îuÏ7j3ÎP[;£‘·z@›M^òö¿îbË{™ã¢¹!ݘ_žã´8Vi¼­ûÍ+E¤‰¨4‚îá…´ÏFvÌ•løTjSÐ×@]üûU2((–«&·G“s™*|IVÈ'Ëä Õ W¨5,òäšwÔŽ Eæ×ÚBç·8ÕAú-:˜ùé"ï©zÎË)3¨WËg§æ³·,¸tAì–ÃÙ³×Ò¿¯&Î>ƒ/MùT‹©y̸*Ý…ñ$r÷vÉÒ@wó±a_"­Ã¯PÔ7}×ξ˜Oò#Ö8ÝkŠ ¯dáõw 7+§¹ŸDmô©Öð+`è3ÊŽ1Æ91£'+NOn^ ëÈM¿ìæ›– ½—úVt©k)£ ÈÆ† 4Z<ÃS´JÖgW`Ú¿‰v¶çm—·ãÑ*{Ýx©ôƱ ¸ˆ5›KçÈ~™0·ƒ:°áÍüÕ¬·÷ëkœä.±QùB‡ãÚ¦Bþ3L*3ã!Š Í¹Ýø4êH ¸Ž®Óq>\­«Á¼côn¥Ôaµ•M ¸Û÷Ž¶Ô¥ùŒ ^ê~;Z]JÓµ¾ªk$kFËÕI[àèA¶dŸº;Þb7k,K`x½Ú–«„ÆDÔ¶ü¸Î ¢ïBû&¿Îs`$$-Ò¥eDe ˜¤Ã4ŠB†Òå\¶V\÷Ìg `t/V‡Ý$N/ÎRòfÄØ|ˆ/„±…$SðÔàw,´²Ôû8– ]è€ãŒc{P|©|é.=®š²7ëÆQ™@r³)&úþDZWã,в¨Ùéqo} kUiÙæú¬#KjÃsYS0ˆ=y i†÷!g§IóL2Áȩÿÿ&{ès瀨ê^§`öÓWªmvÒ`L?ò†šš—9Ž ;Õ'ø½¢¿>´:[LŠ/å?®½á­3òÒ9'š <ê2ó w¢öÄ Bóã]?-­™ßKeˆ€àì$ãCñ«|cïnj´\ìf³íÏîs>—'·;©ûkÞªÊGÐEF?¤þR÷êÔýÎø•–ãÂjû´8tñÅ£*3IfÎk¾X¥òtPökÀ"]z³tµ~#*קî)Õ\û^Hc0Rº ¹ UMMÂ)ÿm_„­kRv<7«"*Q|Ÿá™ª·½öJ¤ò—Gøšª)¹ÈêÅãqç¶gÛ²2àZd—ÃŽÞ!…„=¦ öÃ,_çn³X.Ê*Ñî#Lž‹‡Otí@™ÿ˜£ñWÜ’æ"ª2%E:m€L²¿·Ë}ÅÖ9Ýñ†Íבÿi1B ™Öž0òBf­ü+×»EzAß­ÓvÁa½Ìþ¬o´Ì+²—:ç:iÏí⛫²è2‹)H’¶òYÔÓÖÑð°›0‰2_Ê”âãó†P{-àÈnXœ6«v3là!쀛ÅÐ;êì”æÂ$â„Vmœ‘*Í´zkJ>%éò¬K΢ÖQêð³ŒÎÈ“9ÇSjÓÛ?FFðsfJš>šÄH³…š3‹C”£ EÍ¿òÿÜn†Òš˜KmyP)*Go°Æ½ÄžE]Åtèã ÿ‹ ²]•=.¯j *ñ´Š¿ž´Y|²ÂPß`3»6¬À$U6¡[ñ<·xq§^¡›ˆµŠK†Yài³ ë wbá‡Õéä7˜Q8_¾îŸ O’Y±´]Yù`«&›3õEÈ=CËß>CPMÜ j‰ÂÚK›Ò08BÃÇ0'`l§‹[h„Ž7YŽè }•»üGXr °‘6âÝY­Å+7ƒfJïàÅžÚÕ ô—˜ÙU·O {³„ˆbô/€¤›h©8JE# Wg??£#¨­Îô‡Rå+ðj*¶±rhT3ÕNVw<Àa›)‚ŠÚºô<ª_ moüÛ–‹hÁF_S„tôQ¡¯'}ÆÿøR¶iWÞÃjò“êF!Ê‹Fô|bùâârD—w ¨ÚÞz'þ"h}¹Ï͈98ÔŒWŠ[hÏVnOS ƒæ÷0ÆÒ€6 ;5?‹A990—GíÏë:2S³àe¦)HŸrìY»=¶•_n8#iò¸`C¸áCóÇͳEnÊ‘áúãçм¬]×N àvW‡¶|;Ux8W|Íy©^»3±_+ðcÏÒÄ/ÅtsèÑþ7Þ»Þ14Í/²ÐO#H¨Sb\ûÆ+¨DŸÄ˜¹ì¯n ùÎH¹#.EÙðnöرûQUçÉü$Rè‹FäŠ!ËôÖ€å03µ$œµ`Nâ’M—Š^ ?_åùVÅïš.‰5éÇÃe©·¼ ct¸Ö¥=Ün¡î¡Æ]Á<©M§ðvÓg,3ƒÅɬó²ƒmMVéyDKß wêàŸ~ÿ8š¦IÞÝ1jE%¯ ú£‰¶ÜHýuë³'<¶&3e•ý©|hŸw>™€#–RˆÄ—Õ5L¡_ƒ›°[uaß2 ` ŠÅûðy«8Ý£Ñt¿¹[ ±¬t‰×PÿÒÙÚeùë‹ç,ïc˜l¯U¶‘x¢¢!Pjˆ×·»}öŽ#Ä„ª ÖÄ[%§ÑÁûͨ>9£Qæ.ÜÉÕé£3]æwchÔÚJ¤ŠsÞ©¶A|!Y5‹ýƸ§~ä¹êYl°Öà µÚ¦6WÓi=qtÙ0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark libwmf-0.2.13/fonts/NimbusMonoPS-BoldItalic.afm000066400000000000000000001176441441723000300212370ustar00rootroot00000000000000StartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development Comment Creation Date: 5/17/2017 FontName NimbusMonoPS-BoldItalic FullName Nimbus Mono PS Bold Italic FamilyName Nimbus Mono PS Weight Bold ItalicAngle -12.0 IsFixedPitch true UnderlinePosition -88 UnderlineThickness 110 Version 1.00 Notice (URW)++,Copyright 2014 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -161 -393 844 997 CapHeight 583 XHeight 437 Descender 0 Ascender 0 StartCharMetrics 855 C 32 ; WX 600 ; N space ; B 386 0 386 0 ; C 33 ; WX 600 ; N exclam ; B 230 -14 505 617 ; C 34 ; WX 600 ; N quotedbl ; B 239 298 598 583 ; C 35 ; WX 600 ; N numbersign ; B 97 -88 627 653 ; C 36 ; WX 600 ; N dollar ; B 96 -117 614 661 ; C 37 ; WX 600 ; N percent ; B 131 -14 599 596 ; C 38 ; WX 600 ; N ampersand ; B 98 -13 561 533 ; C 39 ; WX 600 ; N quoteright ; B 218 316 491 602 ; C 40 ; WX 600 ; N parenleft ; B 300 -146 617 611 ; C 41 ; WX 600 ; N parenright ; B 90 -146 407 611 ; C 42 ; WX 600 ; N asterisk ; B 174 199 618 601 ; C 43 ; WX 600 ; N plus ; B 97 0 623 541 ; C 44 ; WX 600 ; N comma ; B 114 -151 387 136 ; C 45 ; WX 600 ; N hyphen ; B 97 218 623 322 ; C 46 ; WX 600 ; N period ; B 230 -14 391 120 ; C 47 ; WX 600 ; N slash ; B 65 -108 660 671 ; C 48 ; WX 600 ; N zero ; B 126 -14 606 617 ; C 49 ; WX 600 ; N one ; B 89 0 533 618 ; C 50 ; WX 600 ; N two ; B 49 0 606 617 ; C 51 ; WX 600 ; N three ; B 76 -14 613 617 ; C 52 ; WX 600 ; N four ; B 99 0 584 601 ; C 53 ; WX 600 ; N five ; B 79 -14 614 601 ; C 54 ; WX 600 ; N six ; B 150 -14 667 617 ; C 55 ; WX 600 ; N seven ; B 180 -1 645 601 ; C 56 ; WX 600 ; N eight ; B 110 -14 612 617 ; C 57 ; WX 600 ; N nine ; B 111 -14 628 617 ; C 58 ; WX 600 ; N colon ; B 230 -14 459 424 ; C 59 ; WX 600 ; N semicolon ; B 114 -151 435 425 ; C 60 ; WX 600 ; N less ; B 15 51 565 488 ; C 61 ; WX 600 ; N equal ; B 77 132 642 411 ; C 62 ; WX 600 ; N greater ; B 26 51 576 488 ; C 63 ; WX 600 ; N question ; B 193 -14 612 579 ; C 64 ; WX 600 ; N at ; B 94 -145 586 600 ; C 65 ; WX 600 ; N A ; B -15 0 637 564 ; C 66 ; WX 600 ; N B ; B 18 0 624 564 ; C 67 ; WX 600 ; N C ; B 76 -13 667 578 ; C 68 ; WX 600 ; N D ; B 19 -5 626 564 ; C 69 ; WX 600 ; N E ; B 19 0 657 564 ; C 70 ; WX 600 ; N F ; B 19 0 679 564 ; C 71 ; WX 600 ; N G ; B 75 -13 671 578 ; C 72 ; WX 600 ; N H ; B 28 0 679 564 ; C 73 ; WX 600 ; N I ; B 89 0 636 564 ; C 74 ; WX 600 ; N J ; B 59 -13 731 564 ; C 75 ; WX 600 ; N K ; B 18 0 691 564 ; C 76 ; WX 600 ; N L ; B 38 0 620 564 ; C 77 ; WX 600 ; N M ; B -14 0 732 564 ; C 78 ; WX 600 ; N N ; B 17 0 710 564 ; C 79 ; WX 600 ; N O ; B 71 -13 653 578 ; C 80 ; WX 600 ; N P ; B 19 0 621 564 ; C 81 ; WX 600 ; N Q ; B 71 -138 653 578 ; C 82 ; WX 600 ; N R ; B 19 0 635 564 ; C 83 ; WX 600 ; N S ; B 68 -13 638 578 ; C 84 ; WX 600 ; N T ; B 117 0 687 564 ; C 85 ; WX 600 ; N U ; B 106 -13 709 564 ; C 86 ; WX 600 ; N V ; B 87 0 739 564 ; C 87 ; WX 600 ; N W ; B 94 0 729 564 ; C 88 ; WX 600 ; N X ; B 15 0 696 564 ; C 89 ; WX 600 ; N Y ; B 124 0 698 564 ; C 90 ; WX 600 ; N Z ; B 68 0 633 564 ; C 91 ; WX 600 ; N bracketleft ; B 214 -141 602 606 ; C 92 ; WX 600 ; N backslash ; B 215 -108 508 671 ; C 93 ; WX 600 ; N bracketright ; B 100 -141 488 606 ; C 94 ; WX 600 ; N asciicircum ; B 75 306 525 635 ; C 95 ; WX 600 ; N underscore ; B -46 -143 646 -33 ; C 96 ; WX 600 ; N quoteleft ; B 372 338 544 592 ; C 97 ; WX 600 ; N a ; B 61 -15 587 437 ; C 98 ; WX 600 ; N b ; B -2 -13 627 603 ; C 99 ; WX 600 ; N c ; B 89 -15 630 437 ; C 100 ; WX 600 ; N d ; B 70 -13 669 603 ; C 101 ; WX 600 ; N e ; B 70 -15 604 437 ; C 102 ; WX 600 ; N f ; B 80 0 695 603 ; C 103 ; WX 600 ; N g ; B 69 -196 679 438 ; C 104 ; WX 600 ; N h ; B 29 0 597 603 ; C 105 ; WX 600 ; N i ; B 68 0 554 602 ; C 106 ; WX 600 ; N j ; B 79 -196 586 602 ; C 107 ; WX 600 ; N k ; B 38 0 610 603 ; C 108 ; WX 600 ; N l ; B 68 0 554 603 ; C 109 ; WX 600 ; N m ; B -13 0 639 437 ; C 110 ; WX 600 ; N n ; B 29 0 587 437 ; C 111 ; WX 600 ; N o ; B 80 -15 613 437 ; C 112 ; WX 600 ; N p ; B -46 -196 627 437 ; C 113 ; WX 600 ; N q ; B 71 -196 700 437 ; C 114 ; WX 600 ; N r ; B 60 0 654 437 ; C 115 ; WX 600 ; N s ; B 79 -15 596 437 ; C 116 ; WX 600 ; N t ; B 90 -15 551 572 ; C 117 ; WX 600 ; N u ; B 90 -12 608 425 ; C 118 ; WX 600 ; N v ; B 77 0 687 425 ; C 119 ; WX 600 ; N w ; B 78 0 688 425 ; C 120 ; WX 600 ; N x ; B 26 0 645 425 ; C 121 ; WX 600 ; N y ; B -17 -196 666 425 ; C 122 ; WX 600 ; N z ; B 80 0 604 425 ; C 123 ; WX 600 ; N braceleft ; B 213 -146 560 602 ; C 124 ; WX 600 ; N bar ; B 242 -250 358 825 ; C 125 ; WX 600 ; N braceright ; B 140 -146 487 602 ; C 126 ; WX 600 ; N asciitilde ; B 54 184 546 395 ; C 161 ; WX 600 ; N exclamdown ; B 182 -217 457 415 ; C 162 ; WX 600 ; N cent ; B 140 -42 597 639 ; C 163 ; WX 600 ; N sterling ; B 60 0 575 579 ; C 164 ; WX 600 ; N fraction ; B 52 99 582 426 ; C 165 ; WX 600 ; N yen ; B 129 0 697 561 ; C 166 ; WX 600 ; N florin ; B 39 -117 676 616 ; C 167 ; WX 600 ; N section ; B 40 -168 648 564 ; C 168 ; WX 600 ; N currency ; B 92 61 630 503 ; C 169 ; WX 600 ; N quotesingle ; B 339 298 498 583 ; C 170 ; WX 600 ; N quotedblleft ; B 219 338 594 592 ; C 171 ; WX 600 ; N guillemotleft ; B 73 19 658 404 ; C 172 ; WX 600 ; N guilsinglleft ; B 73 19 429 404 ; C 173 ; WX 600 ; N guilsinglright ; B 269 19 624 404 ; C 174 ; WX 600 ; N fi ; B -8 0 638 603 ; C 175 ; WX 600 ; N fl ; B -12 0 650 602 ; C 177 ; WX 600 ; N endash ; B 97 218 623 322 ; C 178 ; WX 600 ; N dagger ; B 171 -87 593 601 ; C 179 ; WX 600 ; N daggerdbl ; B 138 -87 593 601 ; C 180 ; WX 600 ; N periodcentered ; B 279 204 440 338 ; C 182 ; WX 600 ; N paragraph ; B 104 -166 676 565 ; C 183 ; WX 600 ; N bullet ; B 147 153 442 453 ; C 184 ; WX 600 ; N quotesinglbase ; B 114 -151 387 136 ; C 185 ; WX 600 ; N quotedblbase ; B 62 -114 528 136 ; C 186 ; WX 600 ; N quotedblright ; B 162 333 628 583 ; C 187 ; WX 600 ; N guillemotright ; B 39 19 624 404 ; C 188 ; WX 600 ; N ellipsis ; B 30 -14 591 120 ; C 189 ; WX 600 ; N perthousand ; B 104 0 627 597 ; C 191 ; WX 600 ; N questiondown ; B 66 -217 485 376 ; C 193 ; WX 600 ; N grave ; B 260 474 468 672 ; C 194 ; WX 600 ; N acute ; B 358 474 620 672 ; C 195 ; WX 600 ; N circumflex ; B 233 474 594 673 ; C 196 ; WX 600 ; N tilde ; B 229 499 623 634 ; C 197 ; WX 600 ; N macron ; B 245 521 604 605 ; C 198 ; WX 600 ; N breve ; B 257 480 618 664 ; C 199 ; WX 600 ; N dotaccent ; B 361 510 492 632 ; C 200 ; WX 600 ; N dieresis ; B 257 510 596 632 ; C 202 ; WX 600 ; N ring ; B 299 464 558 702 ; C 203 ; WX 600 ; N cedilla ; B 139 -219 385 8 ; C 205 ; WX 600 ; N hungarumlaut ; B 233 473 620 670 ; C 206 ; WX 600 ; N ogonek ; B 218 -199 442 8 ; C 207 ; WX 600 ; N caron ; B 260 473 621 672 ; C 208 ; WX 600 ; N emdash ; B 26 218 694 322 ; C 225 ; WX 600 ; N AE ; B -14 0 722 564 ; C 227 ; WX 600 ; N ordfeminine ; B 191 260 563 576 ; C 232 ; WX 600 ; N Lslash ; B 39 0 620 564 ; C 233 ; WX 600 ; N Oslash ; B 0 -67 721 617 ; C 234 ; WX 600 ; N OE ; B 30 0 722 564 ; C 235 ; WX 600 ; N ordmasculine ; B 215 261 570 576 ; C 241 ; WX 600 ; N ae ; B 10 -16 669 437 ; C 245 ; WX 600 ; N dotlessi ; B 68 0 554 425 ; C 248 ; WX 600 ; N lslash ; B 68 0 561 603 ; C 249 ; WX 600 ; N oslash ; B 13 -67 673 479 ; C 250 ; WX 600 ; N oe ; B 24 -15 670 437 ; C 251 ; WX 600 ; N germandbls ; B 18 -15 573 602 ; C -1 ; WX 600 ; N .notdef ; B 386 0 386 0 ; C -1 ; WX 600 ; N AEacute ; B -14 0 722 808 ; C -1 ; WX 600 ; N Aacute ; B -15 0 637 809 ; C -1 ; WX 600 ; N Abreve ; B -15 0 637 801 ; C -1 ; WX 600 ; N Acircumflex ; B -15 0 637 810 ; C -1 ; WX 600 ; N Adieresis ; B -15 0 637 769 ; C -1 ; WX 600 ; N Agrave ; B -15 0 637 809 ; C -1 ; WX 600 ; N Alpha ; B -62 0 590 564 ; C -1 ; WX 600 ; N Alphatonos ; B -58 0 588 564 ; C -1 ; WX 600 ; N Amacron ; B -15 0 637 748 ; C -1 ; WX 600 ; N Aogonek ; B -15 -199 637 564 ; C -1 ; WX 600 ; N Aring ; B -15 0 637 839 ; C -1 ; WX 600 ; N Aringacute ; B -15 0 637 997 ; C -1 ; WX 600 ; N Atilde ; B -15 0 637 770 ; C -1 ; WX 600 ; N Beta ; B -28 0 578 564 ; C -1 ; WX 600 ; N Cacute ; B 76 -13 667 808 ; C -1 ; WX 600 ; N Ccaron ; B 76 -13 667 808 ; C -1 ; WX 600 ; N Ccedilla ; B 76 -219 667 578 ; C -1 ; WX 600 ; N Ccircumflex ; B 30 -13 621 810 ; C -1 ; WX 600 ; N Cdotaccent ; B 30 -13 621 765 ; C -1 ; WX 600 ; N Chi ; B -31 0 650 564 ; C -1 ; WX 600 ; N Dcaron ; B 19 -5 626 808 ; C -1 ; WX 600 ; N Dcroat ; B 19 -5 626 564 ; C -1 ; WX 600 ; N Delta ; B 4 0 596 563 ; C -1 ; WX 600 ; N Eacute ; B 19 0 657 809 ; C -1 ; WX 600 ; N Ebreve ; B 19 0 657 801 ; C -1 ; WX 600 ; N Ecaron ; B 19 0 657 808 ; C -1 ; WX 600 ; N Ecircumflex ; B 19 0 657 810 ; C -1 ; WX 600 ; N Edieresis ; B 19 0 657 769 ; C -1 ; WX 600 ; N Edotaccent ; B 19 0 657 765 ; C -1 ; WX 600 ; N Egrave ; B 19 0 657 809 ; C -1 ; WX 600 ; N Emacron ; B 19 0 657 748 ; C -1 ; WX 600 ; N Eng ; B 17 -196 710 564 ; C -1 ; WX 600 ; N Eogonek ; B 19 -199 657 564 ; C -1 ; WX 600 ; N Epsilon ; B -27 0 611 564 ; C -1 ; WX 600 ; N Epsilontonos ; B -28 0 625 564 ; C -1 ; WX 600 ; N Eta ; B -18 0 633 564 ; C -1 ; WX 600 ; N Etatonos ; B -18 0 633 564 ; C -1 ; WX 600 ; N Eth ; B 19 -5 626 564 ; C -1 ; WX 600 ; N Euro ; B 49 -13 642 578 ; C -1 ; WX 600 ; N Gamma ; B 38 0 699 564 ; C -1 ; WX 600 ; N Gbreve ; B 75 -13 671 801 ; C -1 ; WX 600 ; N Gcircumflex ; B 29 -13 625 810 ; C -1 ; WX 600 ; N Gcommaaccent ; B 75 -265 671 578 ; C -1 ; WX 600 ; N Gdotaccent ; B 29 -13 625 765 ; C -1 ; WX 600 ; N H18533 ; B 11 0 589 566 ; C -1 ; WX 600 ; N H18543 ; B 155 141 445 426 ; C -1 ; WX 600 ; N H18551 ; B 155 141 445 426 ; C -1 ; WX 600 ; N Hbar ; B -18 0 633 564 ; C -1 ; WX 600 ; N Hcircumflex ; B -18 0 633 810 ; C -1 ; WX 600 ; N IJ ; B 16 -152 710 564 ; C -1 ; WX 600 ; N Iacute ; B 89 0 636 808 ; C -1 ; WX 600 ; N Ibreve ; B 43 0 590 801 ; C -1 ; WX 600 ; N Icircumflex ; B 89 0 636 810 ; C -1 ; WX 600 ; N Idieresis ; B 89 0 636 769 ; C -1 ; WX 600 ; N Idotaccent ; B 89 0 636 765 ; C -1 ; WX 600 ; N Ifraktur ; B 4 -70 596 695 ; C -1 ; WX 600 ; N Igrave ; B 89 0 636 809 ; C -1 ; WX 600 ; N Imacron ; B 89 0 636 748 ; C -1 ; WX 600 ; N Iogonek ; B 89 -199 636 564 ; C -1 ; WX 600 ; N Iota ; B 43 0 590 564 ; C -1 ; WX 600 ; N Iotadieresis ; B 44 0 586 737 ; C -1 ; WX 600 ; N Iotatonos ; B 51 0 621 564 ; C -1 ; WX 600 ; N Itilde ; B 89 0 636 776 ; C -1 ; WX 600 ; N Jcircumflex ; B 13 -13 685 810 ; C -1 ; WX 600 ; N Kappa ; B -28 0 645 564 ; C -1 ; WX 600 ; N Kcommaaccent ; B 18 -265 691 564 ; C -1 ; WX 600 ; N Lacute ; B 38 0 620 808 ; C -1 ; WX 600 ; N Lambda ; B -54 0 592 564 ; C -1 ; WX 600 ; N Lcaron ; B 38 0 684 578 ; C -1 ; WX 600 ; N Lcommaaccent ; B 38 -265 620 564 ; C -1 ; WX 600 ; N Ldot ; B 38 0 620 564 ; C -1 ; WX 600 ; N Mu ; B -61 0 685 564 ; C -1 ; WX 600 ; N Nacute ; B 17 0 710 808 ; C -1 ; WX 600 ; N Ncaron ; B 17 0 710 808 ; C -1 ; WX 600 ; N Ncommaaccent ; B 17 -265 710 564 ; C -1 ; WX 600 ; N Ntilde ; B 17 0 710 770 ; C -1 ; WX 600 ; N Nu ; B -29 0 664 564 ; C -1 ; WX 600 ; N Oacute ; B 71 -13 653 809 ; C -1 ; WX 600 ; N Obreve ; B 25 -13 607 801 ; C -1 ; WX 600 ; N Ocircumflex ; B 71 -13 653 810 ; C -1 ; WX 600 ; N Odieresis ; B 71 -13 653 769 ; C -1 ; WX 600 ; N Ograve ; B 71 -13 653 809 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 71 -13 684 806 ; C -1 ; WX 600 ; N Omacron ; B 71 -13 653 748 ; C -1 ; WX 600 ; N Omegatonos ; B 38 0 586 578 ; C -1 ; WX 600 ; N Omicron ; B 25 -13 607 578 ; C -1 ; WX 600 ; N Omicrontonos ; B 41 -14 604 578 ; C -1 ; WX 600 ; N Oslashacute ; B 0 -67 721 808 ; C -1 ; WX 600 ; N Otilde ; B 71 -13 660 770 ; C -1 ; WX 600 ; N Phi ; B 49 -52 672 608 ; C -1 ; WX 600 ; N Pi ; B -15 0 630 564 ; C -1 ; WX 600 ; N Psi ; B 65 0 674 564 ; C -1 ; WX 600 ; N Racute ; B 19 0 635 808 ; C -1 ; WX 600 ; N Rcaron ; B 19 0 635 808 ; C -1 ; WX 600 ; N Rcommaaccent ; B 19 -265 635 564 ; C -1 ; WX 600 ; N Rfraktur ; B -51 -6 639 658 ; C -1 ; WX 600 ; N Rho ; B -27 0 575 564 ; C -1 ; WX 600 ; N SF010000 ; B 267 -250 600 283 ; C -1 ; WX 600 ; N SF020000 ; B 267 217 600 750 ; C -1 ; WX 600 ; N SF030000 ; B 0 -250 333 283 ; C -1 ; WX 600 ; N SF040000 ; B 0 217 333 750 ; C -1 ; WX 600 ; N SF050000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF060000 ; B 0 -250 600 283 ; C -1 ; WX 600 ; N SF070000 ; B 0 217 600 750 ; C -1 ; WX 600 ; N SF080000 ; B 267 -250 600 750 ; C -1 ; WX 600 ; N SF090000 ; B 0 -250 333 750 ; C -1 ; WX 600 ; N SF100000 ; B 0 217 600 283 ; C -1 ; WX 600 ; N SF110000 ; B 267 -250 333 750 ; C -1 ; WX 600 ; N SF190000 ; B 0 -250 333 750 ; C -1 ; WX 600 ; N SF200000 ; B 0 -250 399 750 ; C -1 ; WX 600 ; N SF210000 ; B 0 -250 399 283 ; C -1 ; WX 600 ; N SF220000 ; B 0 -250 333 349 ; C -1 ; WX 600 ; N SF230000 ; B 0 -250 399 750 ; C -1 ; WX 600 ; N SF240000 ; B 201 -250 399 750 ; C -1 ; WX 600 ; N SF250000 ; B 0 -250 399 349 ; C -1 ; WX 600 ; N SF260000 ; B 0 151 399 750 ; C -1 ; WX 600 ; N SF270000 ; B 0 217 399 750 ; C -1 ; WX 600 ; N SF280000 ; B 0 151 333 750 ; C -1 ; WX 600 ; N SF360000 ; B 267 -250 600 750 ; C -1 ; WX 600 ; N SF370000 ; B 201 -250 600 750 ; C -1 ; WX 600 ; N SF380000 ; B 201 151 600 750 ; C -1 ; WX 600 ; N SF390000 ; B 201 -250 600 349 ; C -1 ; WX 600 ; N SF400000 ; B 0 151 600 750 ; C -1 ; WX 600 ; N SF410000 ; B 0 -250 600 349 ; C -1 ; WX 600 ; N SF420000 ; B 201 -250 600 750 ; C -1 ; WX 600 ; N SF430000 ; B 0 151 600 349 ; C -1 ; WX 600 ; N SF440000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF450000 ; B 0 151 600 750 ; C -1 ; WX 600 ; N SF460000 ; B 0 217 600 750 ; C -1 ; WX 600 ; N SF470000 ; B 0 -250 600 349 ; C -1 ; WX 600 ; N SF480000 ; B 0 -250 600 283 ; C -1 ; WX 600 ; N SF490000 ; B 201 217 600 750 ; C -1 ; WX 600 ; N SF500000 ; B 267 151 600 750 ; C -1 ; WX 600 ; N SF510000 ; B 267 -250 600 349 ; C -1 ; WX 600 ; N SF520000 ; B 201 -250 600 283 ; C -1 ; WX 600 ; N SF530000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF540000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N Sacute ; B 68 -13 638 808 ; C -1 ; WX 600 ; N Scaron ; B 68 -13 664 808 ; C -1 ; WX 600 ; N Scedilla ; B 68 -219 638 578 ; C -1 ; WX 600 ; N Scircumflex ; B 22 -13 592 810 ; C -1 ; WX 600 ; N Scommaaccent ; B 68 -265 638 578 ; C -1 ; WX 600 ; N Sigma ; B 102 0 667 564 ; C -1 ; WX 600 ; N Tau ; B 71 0 641 564 ; C -1 ; WX 600 ; N Tbar ; B 124 0 687 564 ; C -1 ; WX 600 ; N Tcaron ; B 117 0 687 808 ; C -1 ; WX 600 ; N Tcommaaccent ; B 117 -215 687 564 ; C -1 ; WX 600 ; N Theta ; B 71 -13 653 578 ; C -1 ; WX 600 ; N Thorn ; B 19 0 592 564 ; C -1 ; WX 600 ; N Uacute ; B 106 -13 709 809 ; C -1 ; WX 600 ; N Ubreve ; B 59 -13 662 801 ; C -1 ; WX 600 ; N Ucircumflex ; B 106 -13 709 810 ; C -1 ; WX 600 ; N Udieresis ; B 106 -13 709 769 ; C -1 ; WX 600 ; N Ugrave ; B 106 -13 709 809 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 106 -13 709 806 ; C -1 ; WX 600 ; N Umacron ; B 106 -13 709 748 ; C -1 ; WX 600 ; N Uogonek ; B 106 -199 709 564 ; C -1 ; WX 600 ; N Upsilon ; B 78 0 652 564 ; C -1 ; WX 600 ; N Upsilondieresis ; B 78 0 648 737 ; C -1 ; WX 600 ; N Upsilontonos ; B -40 0 652 564 ; C -1 ; WX 600 ; N Uring ; B 106 -13 709 839 ; C -1 ; WX 600 ; N Utilde ; B 105 -13 708 776 ; C -1 ; WX 600 ; N Wacute ; B 94 0 729 808 ; C -1 ; WX 600 ; N Wcircumflex ; B 47 0 682 810 ; C -1 ; WX 600 ; N Wdieresis ; B 94 0 729 765 ; C -1 ; WX 600 ; N Wgrave ; B 94 0 729 808 ; C -1 ; WX 600 ; N Xi ; B 7 0 630 564 ; C -1 ; WX 600 ; N Yacute ; B 124 0 698 809 ; C -1 ; WX 600 ; N Ycircumflex ; B 78 0 652 810 ; C -1 ; WX 600 ; N Ydieresis ; B 124 0 698 769 ; C -1 ; WX 600 ; N Ygrave ; B 124 0 698 808 ; C -1 ; WX 600 ; N Zacute ; B 68 0 633 808 ; C -1 ; WX 600 ; N Zcaron ; B 68 0 651 808 ; C -1 ; WX 600 ; N Zdotaccent ; B 68 0 633 765 ; C -1 ; WX 600 ; N Zeta ; B 22 0 587 564 ; C -1 ; WX 600 ; N aacute ; B 62 -15 588 672 ; C -1 ; WX 600 ; N abreve ; B 61 -15 618 664 ; C -1 ; WX 600 ; N acircumflex ; B 61 -15 587 673 ; C -1 ; WX 600 ; N adieresis ; B 61 -15 587 632 ; C -1 ; WX 600 ; N aeacute ; B 10 -16 669 672 ; C -1 ; WX 600 ; N afii00208 ; B 26 218 694 322 ; C -1 ; WX 600 ; N afii10017 ; B -62 0 590 564 ; C -1 ; WX 600 ; N afii10018 ; B -23 0 607 564 ; C -1 ; WX 600 ; N afii10019 ; B -28 0 578 564 ; C -1 ; WX 600 ; N afii10020 ; B -8 0 653 564 ; C -1 ; WX 600 ; N afii10021 ; B -46 -122 630 564 ; C -1 ; WX 600 ; N afii10022 ; B -27 0 611 564 ; C -1 ; WX 600 ; N afii10023 ; B -22 0 610 728 ; C -1 ; WX 600 ; N afii10024 ; B -41 0 655 564 ; C -1 ; WX 600 ; N afii10025 ; B -34 -15 570 607 ; C -1 ; WX 600 ; N afii10026 ; B -25 0 637 564 ; C -1 ; WX 600 ; N afii10027 ; B -25 0 637 763 ; C -1 ; WX 600 ; N afii10028 ; B 1 0 623 564 ; C -1 ; WX 600 ; N afii10029 ; B -48 -15 632 564 ; C -1 ; WX 600 ; N afii10030 ; B -61 0 685 564 ; C -1 ; WX 600 ; N afii10031 ; B -18 0 633 564 ; C -1 ; WX 600 ; N afii10032 ; B 25 -13 607 578 ; C -1 ; WX 600 ; N afii10033 ; B -15 0 630 564 ; C -1 ; WX 600 ; N afii10034 ; B -27 0 575 564 ; C -1 ; WX 600 ; N afii10035 ; B 30 -13 621 578 ; C -1 ; WX 600 ; N afii10036 ; B 71 0 641 564 ; C -1 ; WX 600 ; N afii10037 ; B 16 -15 668 564 ; C -1 ; WX 600 ; N afii10038 ; B 34 0 596 564 ; C -1 ; WX 600 ; N afii10039 ; B -31 0 650 564 ; C -1 ; WX 600 ; N afii10040 ; B -15 -122 630 564 ; C -1 ; WX 600 ; N afii10041 ; B 68 0 627 564 ; C -1 ; WX 600 ; N afii10042 ; B -42 0 668 564 ; C -1 ; WX 600 ; N afii10043 ; B -42 -122 668 564 ; C -1 ; WX 600 ; N afii10044 ; B -2 0 604 564 ; C -1 ; WX 600 ; N afii10045 ; B -49 0 646 564 ; C -1 ; WX 600 ; N afii10046 ; B -13 0 572 564 ; C -1 ; WX 600 ; N afii10047 ; B -8 -14 567 605 ; C -1 ; WX 600 ; N afii10048 ; B -52 -14 646 578 ; C -1 ; WX 600 ; N afii10049 ; B -15 0 607 564 ; C -1 ; WX 600 ; N afii10050 ; B -8 0 676 716 ; C -1 ; WX 600 ; N afii10051 ; B 40 -15 573 564 ; C -1 ; WX 600 ; N afii10052 ; B -15 0 653 774 ; C -1 ; WX 600 ; N afii10053 ; B 32 -14 618 578 ; C -1 ; WX 600 ; N afii10054 ; B 22 -13 592 578 ; C -1 ; WX 600 ; N afii10055 ; B 43 0 590 564 ; C -1 ; WX 600 ; N afii10056 ; B 44 0 586 728 ; C -1 ; WX 600 ; N afii10057 ; B 13 -13 685 564 ; C -1 ; WX 600 ; N afii10058 ; B -61 -15 580 564 ; C -1 ; WX 600 ; N afii10059 ; B -29 0 611 564 ; C -1 ; WX 600 ; N afii10060 ; B 35 0 562 564 ; C -1 ; WX 600 ; N afii10061 ; B 1 0 623 774 ; C -1 ; WX 600 ; N afii10062 ; B 16 -15 668 763 ; C -1 ; WX 600 ; N afii10065 ; B 15 -15 541 437 ; C -1 ; WX 600 ; N afii10066 ; B 44 -14 572 632 ; C -1 ; WX 600 ; N afii10067 ; B -19 0 566 425 ; C -1 ; WX 600 ; N afii10068 ; B -8 0 609 425 ; C -1 ; WX 600 ; N afii10069 ; B -32 -112 588 425 ; C -1 ; WX 600 ; N afii10070 ; B 24 -15 558 437 ; C -1 ; WX 600 ; N afii10071 ; B 27 -15 555 592 ; C -1 ; WX 600 ; N afii10072 ; B -29 0 607 425 ; C -1 ; WX 600 ; N afii10073 ; B 2 -12 542 461 ; C -1 ; WX 600 ; N afii10074 ; B -7 0 606 425 ; C -1 ; WX 600 ; N afii10075 ; B -7 0 606 617 ; C -1 ; WX 600 ; N afii10076 ; B 14 0 572 425 ; C -1 ; WX 600 ; N afii10077 ; B -15 -12 587 425 ; C -1 ; WX 600 ; N afii10078 ; B -42 0 636 425 ; C -1 ; WX 600 ; N afii10079 ; B -32 0 602 425 ; C -1 ; WX 600 ; N afii10080 ; B 34 -15 567 437 ; C -1 ; WX 600 ; N afii10081 ; B -28 0 585 425 ; C -1 ; WX 600 ; N afii10082 ; B -93 -196 580 437 ; C -1 ; WX 600 ; N afii10083 ; B 43 -15 584 437 ; C -1 ; WX 600 ; N afii10084 ; B 28 0 592 425 ; C -1 ; WX 600 ; N afii10085 ; B -64 -196 619 425 ; C -1 ; WX 600 ; N afii10086 ; B 40 -131 563 587 ; C -1 ; WX 600 ; N afii10087 ; B -20 0 599 425 ; C -1 ; WX 600 ; N afii10088 ; B -5 -111 616 425 ; C -1 ; WX 600 ; N afii10089 ; B 54 0 585 425 ; C -1 ; WX 600 ; N afii10090 ; B -42 0 639 425 ; C -1 ; WX 600 ; N afii10091 ; B -42 -111 639 425 ; C -1 ; WX 600 ; N afii10092 ; B 7 0 538 425 ; C -1 ; WX 600 ; N afii10093 ; B -47 0 631 425 ; C -1 ; WX 600 ; N afii10094 ; B -18 0 543 425 ; C -1 ; WX 600 ; N afii10095 ; B -13 -15 549 462 ; C -1 ; WX 600 ; N afii10096 ; B -23 -16 621 437 ; C -1 ; WX 600 ; N afii10097 ; B -18 0 594 425 ; C -1 ; WX 600 ; N afii10098 ; B -8 0 631 577 ; C -1 ; WX 600 ; N afii10099 ; B -12 -196 537 612 ; C -1 ; WX 600 ; N afii10100 ; B -8 0 609 628 ; C -1 ; WX 600 ; N afii10101 ; B 47 -15 579 437 ; C -1 ; WX 600 ; N afii10102 ; B 33 -15 550 437 ; C -1 ; WX 600 ; N afii10103 ; B 22 0 508 602 ; C -1 ; WX 600 ; N afii10104 ; B 25 0 502 592 ; C -1 ; WX 600 ; N afii10105 ; B 33 -196 540 602 ; C -1 ; WX 600 ; N afii10106 ; B -46 -12 576 425 ; C -1 ; WX 600 ; N afii10107 ; B -18 0 588 425 ; C -1 ; WX 600 ; N afii10108 ; B -12 0 556 612 ; C -1 ; WX 600 ; N afii10109 ; B 14 0 572 628 ; C -1 ; WX 600 ; N afii10110 ; B -1 -125 617 617 ; C -1 ; WX 600 ; N afii10145 ; B -2 -122 643 564 ; C -1 ; WX 600 ; N afii10193 ; B -9 -111 625 425 ; C -1 ; WX 600 ; N afii10846 ; B 24 -15 558 437 ; C -1 ; WX 600 ; N afii61248 ; B 99 -8 628 596 ; C -1 ; WX 600 ; N afii61289 ; B 110 -9 463 688 ; C -1 ; WX 600 ; N afii61352 ; B -21 0 633 564 ; C -1 ; WX 600 ; N agrave ; B 61 -15 587 672 ; C -1 ; WX 600 ; N aleph ; B 52 -4 549 694 ; C -1 ; WX 600 ; N alpha ; B 79 -15 673 437 ; C -1 ; WX 600 ; N alphatonos ; B 39 -15 591 628 ; C -1 ; WX 600 ; N amacron ; B 61 -15 604 605 ; C -1 ; WX 600 ; N angle ; B -22 3 618 456 ; C -1 ; WX 600 ; N angleleft ; B 187 -125 414 646 ; C -1 ; WX 600 ; N angleright ; B 187 -125 414 646 ; C -1 ; WX 600 ; N aogonek ; B 61 -199 587 437 ; C -1 ; WX 600 ; N approxequal ; B 48 67 542 459 ; C -1 ; WX 600 ; N aring ; B 61 -15 587 702 ; C -1 ; WX 600 ; N aringacute ; B 61 -15 587 865 ; C -1 ; WX 600 ; N arrowboth ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowdblboth ; B -161 72 761 571 ; C -1 ; WX 600 ; N arrowdbldown ; B 53 10 548 704 ; C -1 ; WX 600 ; N arrowdblleft ; B -94 72 690 571 ; C -1 ; WX 600 ; N arrowdblright ; B -91 72 693 571 ; C -1 ; WX 600 ; N arrowdblup ; B 53 13 548 707 ; C -1 ; WX 600 ; N arrowdown ; B 157 -12 422 538 ; C -1 ; WX 600 ; N arrowleft ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowright ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowup ; B 157 -12 422 538 ; C -1 ; WX 600 ; N arrowupdn ; B 167 -25 432 525 ; C -1 ; WX 600 ; N arrowupdnbse ; B 170 -84 435 564 ; C -1 ; WX 600 ; N asteriskmath ; B 144 110 456 417 ; C -1 ; WX 600 ; N atilde ; B 61 -15 616 634 ; C -1 ; WX 600 ; N beta ; B 21 -192 523 603 ; C -1 ; WX 600 ; N block ; B 0 -250 600 750 ; C -1 ; WX 600 ; N brokenbar ; B 242 -144 358 602 ; C -1 ; WX 600 ; N cacute ; B 89 -15 630 672 ; C -1 ; WX 600 ; N carriagereturn ; B 78 60 511 560 ; C -1 ; WX 600 ; N ccaron ; B 89 -15 631 672 ; C -1 ; WX 600 ; N ccedilla ; B 88 -219 630 437 ; C -1 ; WX 600 ; N ccircumflex ; B 43 -15 584 673 ; C -1 ; WX 600 ; N cdotaccent ; B 89 -15 630 632 ; C -1 ; WX 600 ; N chi ; B -13 -211 556 437 ; C -1 ; WX 600 ; N circle ; B 85 67 514 496 ; C -1 ; WX 600 ; N circlemultiply ; B 28 0 538 500 ; C -1 ; WX 600 ; N club ; B 18 0 582 563 ; C -1 ; WX 600 ; N congruent ; B 34 74 566 583 ; C -1 ; WX 600 ; N copyright ; B 44 -14 679 579 ; C -1 ; WX 600 ; N dcaron ; B 70 -13 844 618 ; C -1 ; WX 600 ; N dcroat ; B 70 -13 716 603 ; C -1 ; WX 600 ; N degree ; B 206 232 572 577 ; C -1 ; WX 600 ; N delta ; B 80 -15 613 655 ; C -1 ; WX 600 ; N diamond ; B 97 -22 525 585 ; C -1 ; WX 600 ; N dieresistonos ; B 146 468 579 628 ; C -1 ; WX 600 ; N divide ; B 97 26 623 516 ; C -1 ; WX 600 ; N dkshade ; B 0 -142 600 758 ; C -1 ; WX 600 ; N dnblock ; B 0 -250 600 250 ; C -1 ; WX 600 ; N eacute ; B 70 -15 604 672 ; C -1 ; WX 600 ; N ebreve ; B 70 -15 618 664 ; C -1 ; WX 600 ; N ecaron ; B 70 -15 621 672 ; C -1 ; WX 600 ; N ecircumflex ; B 70 -15 604 673 ; C -1 ; WX 600 ; N edieresis ; B 70 -15 604 632 ; C -1 ; WX 600 ; N edotaccent ; B 70 -15 604 632 ; C -1 ; WX 600 ; N egrave ; B 70 -15 604 672 ; C -1 ; WX 600 ; N eightsuperior ; B 238 230 540 615 ; C -1 ; WX 600 ; N element ; B 20 0 581 514 ; C -1 ; WX 600 ; N emacron ; B 70 -15 604 605 ; C -1 ; WX 600 ; N emptyset ; B 67 -86 534 513 ; C -1 ; WX 600 ; N eng ; B 30 -196 578 437 ; C -1 ; WX 600 ; N eogonek ; B 70 -199 604 437 ; C -1 ; WX 600 ; N epsilon ; B 133 -15 532 437 ; C -1 ; WX 600 ; N epsilontonos ; B 70 -15 542 628 ; C -1 ; WX 600 ; N equivalence ; B 34 43 566 500 ; C -1 ; WX 600 ; N estimated ; B 67 -7 477 424 ; C -1 ; WX 600 ; N eta ; B 24 -211 530 437 ; C -1 ; WX 600 ; N etatonos ; B 24 -211 538 628 ; C -1 ; WX 600 ; N eth ; B 79 -15 621 624 ; C -1 ; WX 600 ; N exclamdbl ; B 111 -14 488 617 ; C -1 ; WX 600 ; N existential ; B 119 0 464 562 ; C -1 ; WX 600 ; N female ; B 87 0 514 705 ; C -1 ; WX 600 ; N ff ; B 7 0 727 602 ; C -1 ; WX 600 ; N ffi ; B 6 0 628 602 ; C -1 ; WX 600 ; N ffl ; B 5 0 656 603 ; C -1 ; WX 600 ; N filledbox ; B 60 0 539 481 ; C -1 ; WX 600 ; N filledrect ; B 19 0 582 282 ; C -1 ; WX 600 ; N fiveeighths ; B 72 -34 637 627 ; C -1 ; WX 600 ; N fivesuperior ; B 219 230 541 605 ; C -1 ; WX 600 ; N foursuperior ; B 239 239 525 605 ; C -1 ; WX 600 ; N franc ; B -26 0 715 564 ; C -1 ; WX 600 ; N gamma ; B 59 -211 597 425 ; C -1 ; WX 600 ; N gbreve ; B 69 -196 679 664 ; C -1 ; WX 600 ; N gcircumflex ; B 23 -196 633 673 ; C -1 ; WX 600 ; N gcommaaccent ; B 69 -196 679 697 ; C -1 ; WX 600 ; N gdotaccent ; B 23 -196 633 632 ; C -1 ; WX 600 ; N gradient ; B 4 0 596 563 ; C -1 ; WX 600 ; N greaterequal ; B 27 1 602 573 ; C -1 ; WX 600 ; N hbar ; B -18 0 550 612 ; C -1 ; WX 600 ; N hcircumflex ; B -17 0 578 810 ; C -1 ; WX 600 ; N heart ; B 51 -22 550 563 ; C -1 ; WX 600 ; N house ; B 70 0 531 565 ; C -1 ; WX 600 ; N iacute ; B 67 0 578 672 ; C -1 ; WX 600 ; N ibreve ; B 22 0 572 664 ; C -1 ; WX 600 ; N icircumflex ; B 68 0 577 673 ; C -1 ; WX 600 ; N idieresis ; B 68 0 579 632 ; C -1 ; WX 600 ; N igrave ; B 68 0 554 672 ; C -1 ; WX 600 ; N ij ; B 16 -196 686 602 ; C -1 ; WX 600 ; N imacron ; B 68 0 604 605 ; C -1 ; WX 600 ; N infinity ; B 12 155 588 409 ; C -1 ; WX 600 ; N integral ; B 147 -199 455 634 ; C -1 ; WX 600 ; N integralbt ; B 146 -182 326 634 ; C -1 ; WX 600 ; N integraltp ; B 274 -182 454 634 ; C -1 ; WX 600 ; N intersection ; B 63 0 537 562 ; C -1 ; WX 600 ; N invbullet ; B 61 0 540 479 ; C -1 ; WX 600 ; N invcircle ; B 19 0 582 563 ; C -1 ; WX 600 ; N invsmileface ; B 19 0 582 563 ; C -1 ; WX 600 ; N iogonek ; B 68 -199 554 602 ; C -1 ; WX 600 ; N iota ; B 211 -15 419 437 ; C -1 ; WX 600 ; N iotadieresis ; B 207 -15 522 592 ; C -1 ; WX 600 ; N iotadieresistonos ; B 114 -15 547 628 ; C -1 ; WX 600 ; N iotatonos ; B 211 -15 469 628 ; C -1 ; WX 600 ; N itilde ; B 68 0 580 634 ; C -1 ; WX 600 ; N jcircumflex ; B 33 -196 555 673 ; C -1 ; WX 600 ; N kappa ; B 26 0 597 425 ; C -1 ; WX 600 ; N kcommaaccent ; B 38 -265 610 603 ; C -1 ; WX 600 ; N kgreenlandic ; B 39 0 611 425 ; C -1 ; WX 600 ; N lacute ; B 68 0 604 808 ; C -1 ; WX 600 ; N lambda ; B -8 0 554 603 ; C -1 ; WX 600 ; N lcaron ; B 68 0 704 618 ; C -1 ; WX 600 ; N lcommaaccent ; B 68 -265 554 603 ; C -1 ; WX 600 ; N ldot ; B 68 0 676 603 ; C -1 ; WX 600 ; N lessequal ; B -17 1 557 573 ; C -1 ; WX 600 ; N lfblock ; B 0 -250 300 750 ; C -1 ; WX 600 ; N lira ; B 14 0 529 579 ; C -1 ; WX 600 ; N logicalnot ; B 67 165 534 440 ; C -1 ; WX 600 ; N longs ; B 80 0 695 603 ; C -1 ; WX 600 ; N lozenge ; B 24 -39 574 647 ; C -1 ; WX 600 ; N ltshade ; B 0 -150 540 750 ; C -1 ; WX 600 ; N male ; B 59 -4 541 690 ; C -1 ; WX 600 ; N minus ; B 97 219 623 322 ; C -1 ; WX 600 ; N minute ; B 247 304 393 587 ; C -1 ; WX 600 ; N mu ; B 5 -144 579 428 ; C -1 ; WX 600 ; N multiply ; B 122 76 596 466 ; C -1 ; WX 600 ; N musicalnote ; B 132 14 439 563 ; C -1 ; WX 600 ; N musicalnotedbl ; B 73 -98 529 772 ; C -1 ; WX 600 ; N nacute ; B 29 0 620 672 ; C -1 ; WX 600 ; N napostrophe ; B 53 0 611 630 ; C -1 ; WX 600 ; N ncaron ; B 29 0 621 672 ; C -1 ; WX 600 ; N ncommaaccent ; B 29 -265 587 437 ; C -1 ; WX 600 ; N ninesuperior ; B 238 230 549 615 ; C -1 ; WX 600 ; N notelement ; B 20 -79 581 615 ; C -1 ; WX 600 ; N notequal ; B 34 21 566 511 ; C -1 ; WX 600 ; N notsubset ; B 21 -86 595 585 ; C -1 ; WX 600 ; N nsuperior ; B 183 254 540 524 ; C -1 ; WX 600 ; N ntilde ; B 29 0 617 634 ; C -1 ; WX 600 ; N nu ; B 65 -6 576 437 ; C -1 ; WX 600 ; N oacute ; B 80 -15 613 672 ; C -1 ; WX 600 ; N obreve ; B 34 -15 572 664 ; C -1 ; WX 600 ; N ocircumflex ; B 80 -15 613 673 ; C -1 ; WX 600 ; N odieresis ; B 80 -15 613 632 ; C -1 ; WX 600 ; N ograve ; B 80 -15 613 672 ; C -1 ; WX 600 ; N ohungarumlaut ; B 80 -15 620 670 ; C -1 ; WX 600 ; N omacron ; B 80 -15 613 605 ; C -1 ; WX 600 ; N omega ; B 38 -15 556 437 ; C -1 ; WX 600 ; N omega1 ; B 71 -15 656 458 ; C -1 ; WX 600 ; N omegatonos ; B 38 -15 556 628 ; C -1 ; WX 600 ; N omicron ; B 34 -15 567 437 ; C -1 ; WX 600 ; N omicrontonos ; B 36 -15 563 628 ; C -1 ; WX 600 ; N oneeighth ; B 67 -34 636 636 ; C -1 ; WX 600 ; N onehalf ; B 64 -26 645 636 ; C -1 ; WX 600 ; N onequarter ; B 64 -26 614 636 ; C -1 ; WX 600 ; N onesuperior ; B 224 238 494 616 ; C -1 ; WX 600 ; N openbullet ; B 178 165 422 417 ; C -1 ; WX 600 ; N orthogonal ; B 68 3 534 453 ; C -1 ; WX 600 ; N oslashacute ; B 13 -67 673 672 ; C -1 ; WX 600 ; N otilde ; B 80 -15 630 634 ; C -1 ; WX 600 ; N partialdiff ; B 67 -16 534 580 ; C -1 ; WX 600 ; N perpendicular ; B 43 0 558 505 ; C -1 ; WX 600 ; N peseta ; B 50 -15 608 564 ; C -1 ; WX 600 ; N phi ; B 38 -211 566 437 ; C -1 ; WX 600 ; N phi1 ; B 49 -52 672 608 ; C -1 ; WX 600 ; N pi ; B 43 0 654 425 ; C -1 ; WX 600 ; N plusminus ; B 48 0 644 603 ; C -1 ; WX 600 ; N product ; B 23 -93 577 650 ; C -1 ; WX 600 ; N propersubset ; B -4 0 570 464 ; C -1 ; WX 600 ; N propersuperset ; B -4 0 570 464 ; C -1 ; WX 600 ; N proportional ; B 14 127 465 381 ; C -1 ; WX 600 ; N psi ; B 52 -211 625 603 ; C -1 ; WX 600 ; N quotereversed ; B 19 0 635 564 ; C -1 ; WX 600 ; N racute ; B 60 0 654 672 ; C -1 ; WX 600 ; N radical ; B 19 -18 636 700 ; C -1 ; WX 600 ; N rcaron ; B 60 0 654 672 ; C -1 ; WX 600 ; N rcommaaccent ; B 60 -265 654 437 ; C -1 ; WX 600 ; N reflexsubset ; B -4 0 570 605 ; C -1 ; WX 600 ; N reflexsuperset ; B -4 0 570 605 ; C -1 ; WX 600 ; N registered ; B 44 -14 679 579 ; C -1 ; WX 600 ; N revlogicalnot ; B 67 165 534 440 ; C -1 ; WX 600 ; N rho ; B 1 -211 545 437 ; C -1 ; WX 600 ; N rtblock ; B 300 -250 600 750 ; C -1 ; WX 600 ; N sacute ; B 79 -15 620 672 ; C -1 ; WX 600 ; N scaron ; B 79 -15 631 672 ; C -1 ; WX 600 ; N scedilla ; B 79 -219 596 437 ; C -1 ; WX 600 ; N scircumflex ; B 79 -15 596 673 ; C -1 ; WX 600 ; N scommaaccent ; B 79 -265 596 437 ; C -1 ; WX 600 ; N second ; B 161 304 469 587 ; C -1 ; WX 600 ; N seveneighths ; B 148 -34 637 625 ; C -1 ; WX 600 ; N sevensuperior ; B 281 237 562 605 ; C -1 ; WX 600 ; N shade ; B 0 -174 599 725 ; C -1 ; WX 600 ; N sigma ; B 80 -15 704 437 ; C -1 ; WX 600 ; N sixsuperior ; B 262 230 573 615 ; C -1 ; WX 600 ; N smileface ; B 19 0 582 563 ; C -1 ; WX 600 ; N spade ; B 98 0 559 585 ; C -1 ; WX 600 ; N suchthat ; B 20 0 581 514 ; C -1 ; WX 600 ; N summation ; B 75 -79 546 647 ; C -1 ; WX 600 ; N sun ; B 5 -13 595 576 ; C -1 ; WX 600 ; N tau ; B 166 -10 575 426 ; C -1 ; WX 600 ; N tbar ; B 88 -15 553 572 ; C -1 ; WX 600 ; N tcaron ; B 90 -15 704 618 ; C -1 ; WX 600 ; N tcommaaccent ; B 90 -224 551 572 ; C -1 ; WX 600 ; N therefore ; B 34 0 565 555 ; C -1 ; WX 600 ; N theta ; B 82 -15 560 603 ; C -1 ; WX 600 ; N theta1 ; B -31 -13 599 767 ; C -1 ; WX 600 ; N thorn ; B -46 -196 627 603 ; C -1 ; WX 600 ; N threeeighths ; B 65 -34 636 632 ; C -1 ; WX 600 ; N threequarters ; B 65 -26 614 632 ; C -1 ; WX 600 ; N threesuperior ; B 218 230 543 615 ; C -1 ; WX 600 ; N tonos ; B 277 468 490 628 ; C -1 ; WX 600 ; N trademark ; B 89 216 714 558 ; C -1 ; WX 600 ; N triagdn ; B 59 24 540 465 ; C -1 ; WX 600 ; N triaglf ; B 58 106 510 414 ; C -1 ; WX 600 ; N triagrt ; B 89 106 541 414 ; C -1 ; WX 600 ; N triagup ; B 68 51 531 485 ; C -1 ; WX 600 ; N twosuperior ; B 202 238 538 615 ; C -1 ; WX 600 ; N uacute ; B 90 -12 608 672 ; C -1 ; WX 600 ; N ubreve ; B 44 -12 572 664 ; C -1 ; WX 600 ; N ucircumflex ; B 90 -12 608 673 ; C -1 ; WX 600 ; N udieresis ; B 90 -12 608 632 ; C -1 ; WX 600 ; N ugrave ; B 90 -12 608 672 ; C -1 ; WX 600 ; N uhungarumlaut ; B 90 -12 620 670 ; C -1 ; WX 600 ; N umacron ; B 90 -12 608 605 ; C -1 ; WX 600 ; N underscoredbl ; B -46 -393 646 -128 ; C -1 ; WX 600 ; N uni00A0 ; B 386 0 386 0 ; C -1 ; WX 600 ; N uni00AD ; B 97 218 623 322 ; C -1 ; WX 600 ; N uni021A ; B 117 -265 687 564 ; C -1 ; WX 600 ; N uni021B ; B 90 -265 551 572 ; C -1 ; WX 600 ; N uni02C9 ; B 245 521 604 605 ; C -1 ; WX 600 ; N uni0387 ; B 279 204 440 338 ; C -1 ; WX 600 ; N uni0394 ; B -44 0 549 564 ; C -1 ; WX 600 ; N uni03A9 ; B 4 0 661 578 ; C -1 ; WX 600 ; N uni03BC ; B 17 -196 561 425 ; C -1 ; WX 600 ; N uni03C2 ; B 69 -211 563 437 ; C -1 ; WX 600 ; N uni0400 ; B 19 0 657 808 ; C -1 ; WX 600 ; N uni040D ; B -25 0 637 808 ; C -1 ; WX 600 ; N uni0450 ; B -19 0 685 564 ; C -1 ; WX 600 ; N uni045D ; B -7 0 606 672 ; C -1 ; WX 600 ; N uni0462 ; B -13 0 572 590 ; C -1 ; WX 600 ; N uni0463 ; B -18 0 543 560 ; C -1 ; WX 600 ; N uni0472 ; B 71 -14 653 605 ; C -1 ; WX 600 ; N uni0473 ; B 80 -16 613 458 ; C -1 ; WX 600 ; N uni0474 ; B -19 0 685 591 ; C -1 ; WX 600 ; N uni0475 ; B 45 0 692 445 ; C -1 ; WX 600 ; N uni0492 ; B 19 0 679 564 ; C -1 ; WX 600 ; N uni0493 ; B -8 0 609 425 ; C -1 ; WX 600 ; N uni0496 ; B -41 -117 655 564 ; C -1 ; WX 600 ; N uni0497 ; B -29 -110 607 425 ; C -1 ; WX 600 ; N uni0498 ; B -34 -219 570 607 ; C -1 ; WX 600 ; N uni0499 ; B 2 -219 542 461 ; C -1 ; WX 600 ; N uni049A ; B 1 -119 623 564 ; C -1 ; WX 600 ; N uni049B ; B 14 -110 572 425 ; C -1 ; WX 600 ; N uni049C ; B 1 0 623 564 ; C -1 ; WX 600 ; N uni049D ; B 14 0 572 425 ; C -1 ; WX 600 ; N uni04A0 ; B -2 0 642 564 ; C -1 ; WX 600 ; N uni04A1 ; B 7 0 604 425 ; C -1 ; WX 600 ; N uni04A2 ; B -17 -119 634 564 ; C -1 ; WX 600 ; N uni04A3 ; B -32 -110 602 425 ; C -1 ; WX 600 ; N uni04AA ; B 76 -219 667 578 ; C -1 ; WX 600 ; N uni04AB ; B 89 -219 630 437 ; C -1 ; WX 600 ; N uni04AE ; B 124 0 698 564 ; C -1 ; WX 600 ; N uni04AF ; B 52 -196 620 425 ; C -1 ; WX 600 ; N uni04B0 ; B 124 0 698 564 ; C -1 ; WX 600 ; N uni04B1 ; B 52 -196 620 425 ; C -1 ; WX 600 ; N uni04B2 ; B -31 -123 650 564 ; C -1 ; WX 600 ; N uni04B3 ; B -20 -112 603 425 ; C -1 ; WX 600 ; N uni04B6 ; B 68 -124 627 564 ; C -1 ; WX 600 ; N uni04B7 ; B 54 -124 585 425 ; C -1 ; WX 600 ; N uni04B8 ; B 68 0 627 564 ; C -1 ; WX 600 ; N uni04B9 ; B 54 0 585 425 ; C -1 ; WX 600 ; N uni04BA ; B 68 0 627 564 ; C -1 ; WX 600 ; N uni04BB ; B -13 0 555 612 ; C -1 ; WX 600 ; N uni04C0 ; B 43 0 590 564 ; C -1 ; WX 600 ; N uni04CB ; B 68 -124 627 564 ; C -1 ; WX 600 ; N uni04CC ; B 54 -123 585 425 ; C -1 ; WX 600 ; N uni04CF ; B 43 0 590 564 ; C -1 ; WX 600 ; N uni04D8 ; B 76 -13 653 578 ; C -1 ; WX 600 ; N uni04E2 ; B -15 0 637 801 ; C -1 ; WX 600 ; N uni04E3 ; B 61 -15 618 664 ; C -1 ; WX 600 ; N uni04E8 ; B 71 -13 653 578 ; C -1 ; WX 600 ; N uni04E9 ; B -9 -111 625 425 ; C -1 ; WX 600 ; N uni04EE ; B 19 0 657 801 ; C -1 ; WX 600 ; N uni04EF ; B 70 -15 604 664 ; C -1 ; WX 600 ; N uni2002 ; B 300 0 300 0 ; C -1 ; WX 600 ; N uni203E ; B 114 618 806 728 ; C -1 ; WX 600 ; N uni20AF ; B 9 -175 587 614 ; C -1 ; WX 600 ; N uni20DD ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni210F ; B 87 -14 515 641 ; C -1 ; WX 600 ; N uni2112 ; B 0 -12 547 581 ; C -1 ; WX 600 ; N uni211E ; B 13 -94 588 563 ; C -1 ; WX 600 ; N uni2120 ; B 2 214 597 568 ; C -1 ; WX 600 ; N uni2126 ; B -10 0 610 579 ; C -1 ; WX 600 ; N uni2128 ; B 36 -111 506 547 ; C -1 ; WX 600 ; N uni212D ; B 63 -14 545 581 ; C -1 ; WX 600 ; N uni212F ; B 68 -12 515 445 ; C -1 ; WX 600 ; N uni2136 ; B 112 0 482 529 ; C -1 ; WX 600 ; N uni2137 ; B 167 0 435 530 ; C -1 ; WX 600 ; N uni2196 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2197 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2198 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2199 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni21C4 ; B 27 -35 571 463 ; C -1 ; WX 600 ; N uni21C6 ; B 29 -35 573 463 ; C -1 ; WX 600 ; N uni21D5 ; B 74 -35 529 661 ; C -1 ; WX 600 ; N uni220D ; B 145 -12 459 448 ; C -1 ; WX 600 ; N uni2213 ; B 38 0 562 603 ; C -1 ; WX 600 ; N uni2215 ; B 52 99 582 426 ; C -1 ; WX 600 ; N uni2219 ; B 279 204 440 338 ; C -1 ; WX 600 ; N uni2223 ; B 261 -145 302 837 ; C -1 ; WX 600 ; N uni2225 ; B 189 -246 373 881 ; C -1 ; WX 600 ; N uni2227 ; B 91 0 514 435 ; C -1 ; WX 600 ; N uni2228 ; B 91 0 514 435 ; C -1 ; WX 600 ; N uni222E ; B 121 -203 489 636 ; C -1 ; WX 600 ; N uni2235 ; B 38 0 561 574 ; C -1 ; WX 600 ; N uni2237 ; B 36 0 559 574 ; C -1 ; WX 600 ; N uni2262 ; B 38 -42 562 587 ; C -1 ; WX 600 ; N uni226A ; B 7 -52 600 462 ; C -1 ; WX 600 ; N uni226B ; B 7 -52 600 462 ; C -1 ; WX 600 ; N uni2285 ; B 26 -88 589 586 ; C -1 ; WX 600 ; N uni2295 ; B 49 0 546 501 ; C -1 ; WX 600 ; N uni2296 ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni2298 ; B 45 0 542 501 ; C -1 ; WX 600 ; N uni2299 ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni22A2 ; B 46 0 550 504 ; C -1 ; WX 600 ; N uni22A3 ; B 49 0 554 504 ; C -1 ; WX 600 ; N uni22A4 ; B 49 0 554 504 ; C -1 ; WX 600 ; N uni22BB ; B 91 -160 512 438 ; C -1 ; WX 600 ; N uni256D ; B 268 -246 605 282 ; C -1 ; WX 600 ; N uni256E ; B 0 -246 334 281 ; C -1 ; WX 600 ; N uni256F ; B 0 219 334 749 ; C -1 ; WX 600 ; N uni2570 ; B 268 212 604 749 ; C -1 ; WX 600 ; N uni25A1 ; B 17 0 584 567 ; C -1 ; WX 600 ; N uni25B5 ; B 94 34 507 476 ; C -1 ; WX 600 ; N uni25B9 ; B 94 39 536 453 ; C -1 ; WX 600 ; N uni25BF ; B 95 34 508 476 ; C -1 ; WX 600 ; N uni25C3 ; B 70 39 512 453 ; C -1 ; WX 600 ; N uni25C6 ; B 44 41 566 620 ; C -1 ; WX 600 ; N uni25C7 ; B -7 -12 609 669 ; C -1 ; WX 600 ; N uni301A ; B 116 -150 362 760 ; C -1 ; WX 600 ; N uni301B ; B 116 -150 362 760 ; C -1 ; WX 600 ; N uniEFBF ; B -73 3 672 842 ; C -1 ; WX 600 ; N uniEFC0 ; B 0 -173 395 814 ; C -1 ; WX 600 ; N uniEFC1 ; B 0 -147 395 841 ; C -1 ; WX 600 ; N uniEFC2 ; B 0 -238 596 723 ; C -1 ; WX 600 ; N uniEFC3 ; B 0 -238 596 723 ; C -1 ; WX 600 ; N uniEFC4 ; B 178 -173 600 814 ; C -1 ; WX 600 ; N uniEFC5 ; B 178 -147 600 841 ; C -1 ; WX 600 ; N uniEFC6 ; B 52 -238 544 723 ; C -1 ; WX 600 ; N uniEFC7 ; B 52 -238 544 723 ; C -1 ; WX 600 ; N uniEFC8 ; B 52 -238 544 723 ; C -1 ; WX 600 ; N uniEFC9 ; B 178 -147 396 814 ; C -1 ; WX 600 ; N uniEFCA ; B 94 -76 507 461 ; C -1 ; WX 600 ; N uniEFCB ; B 0 117 600 294 ; C -1 ; WX 600 ; N uniEFCC ; B 267 -175 614 842 ; C -1 ; WX 600 ; N uniEFCD ; B -15 -173 615 841 ; C -1 ; WX 600 ; N uniEFCE ; B 0 -174 558 161 ; C -1 ; WX 600 ; N uniEFCF ; B -14 -173 336 841 ; C -1 ; WX 600 ; N uniEFD0 ; B 0 507 559 843 ; C -1 ; WX 600 ; N uniEFD1 ; B -15 -173 615 841 ; C -1 ; WX 600 ; N uniEFD2 ; B -14 -173 615 841 ; C -1 ; WX 600 ; N uniEFD3 ; B -15 -172 614 841 ; C -1 ; WX 600 ; N uniEFD4 ; B 58 -238 503 723 ; C -1 ; WX 600 ; N uniEFD5 ; B 54 -267 554 428 ; C -1 ; WX 600 ; N uniEFD6 ; B 29 175 577 546 ; C -1 ; WX 600 ; N uniEFD7 ; B 0 0 603 583 ; C -1 ; WX 600 ; N uniEFD8 ; B 0 0 603 583 ; C -1 ; WX 600 ; N uniEFD9 ; B 14 189 588 546 ; C -1 ; WX 600 ; N uniEFDA ; B 0 0 603 583 ; C -1 ; WX 600 ; N uniEFDB ; B 0 0 603 583 ; C -1 ; WX 600 ; N uniEFDC ; B 29 -182 308 814 ; C -1 ; WX 600 ; N uniEFDD ; B 254 -238 308 723 ; C -1 ; WX 600 ; N uniEFDE ; B 58 -238 314 723 ; C -1 ; WX 600 ; N uniEFDF ; B 254 -238 484 723 ; C -1 ; WX 600 ; N uniEFE0 ; B 58 -238 315 723 ; C -1 ; WX 600 ; N uniEFE1 ; B 254 -238 504 723 ; C -1 ; WX 600 ; N uniEFE2 ; B 80 -238 308 723 ; C -1 ; WX 600 ; N uniEFE3 ; B 254 -238 512 723 ; C -1 ; WX 600 ; N uniEFE4 ; B 0 -173 308 814 ; C -1 ; WX 600 ; N uniEFE5 ; B 0 -147 308 841 ; C -1 ; WX 600 ; N uniEFE6 ; B 254 -173 600 814 ; C -1 ; WX 600 ; N uniEFE7 ; B 254 -147 600 841 ; C -1 ; WX 600 ; N uniEFE8 ; B 0 181 600 234 ; C -1 ; WX 600 ; N uniEFE9 ; B 0 789 472 902 ; C -1 ; WX 600 ; N uniEFEA ; B 0 789 600 841 ; C -1 ; WX 600 ; N uniEFEB ; B 0 -173 600 -120 ; C -1 ; WX 600 ; N uniEFEC ; B 79 -11 541 529 ; C -1 ; WX 600 ; N uniEFFA ; B 0 0 602 582 ; C -1 ; WX 600 ; N uniEFFB ; B 0 0 600 579 ; C -1 ; WX 600 ; N uniEFFC ; B 0 0 600 581 ; C -1 ; WX 600 ; N uniEFFD ; B 0 0 602 582 ; C -1 ; WX 600 ; N uniEFFE ; B 34 -11 581 549 ; C -1 ; WX 600 ; N uniEFFF ; B 67 266 537 714 ; C -1 ; WX 600 ; N union ; B 63 0 537 562 ; C -1 ; WX 600 ; N universal ; B 55 0 544 599 ; C -1 ; WX 600 ; N uogonek ; B 90 -199 608 425 ; C -1 ; WX 600 ; N upblock ; B 0 250 600 750 ; C -1 ; WX 600 ; N upsilon ; B 68 -15 593 425 ; C -1 ; WX 600 ; N upsilondieresis ; B 68 -15 593 592 ; C -1 ; WX 600 ; N upsilondieresistonos ; B 68 -15 593 628 ; C -1 ; WX 600 ; N upsilontonos ; B 68 -15 593 628 ; C -1 ; WX 600 ; N uring ; B 90 -12 608 702 ; C -1 ; WX 600 ; N utilde ; B 90 -12 614 634 ; C -1 ; WX 600 ; N wacute ; B 78 0 688 666 ; C -1 ; WX 600 ; N wcircumflex ; B 32 0 642 673 ; C -1 ; WX 600 ; N wdieresis ; B 78 0 688 632 ; C -1 ; WX 600 ; N weierstrass ; B 37 -165 566 407 ; C -1 ; WX 600 ; N wgrave ; B 78 0 688 672 ; C -1 ; WX 600 ; N xi ; B 119 -211 535 603 ; C -1 ; WX 600 ; N yacute ; B -17 -196 666 672 ; C -1 ; WX 600 ; N ycircumflex ; B -63 -196 620 673 ; C -1 ; WX 600 ; N ydieresis ; B -17 -196 666 632 ; C -1 ; WX 600 ; N ygrave ; B -17 -196 666 672 ; C -1 ; WX 600 ; N zacute ; B 80 0 620 672 ; C -1 ; WX 600 ; N zcaron ; B 80 0 623 672 ; C -1 ; WX 600 ; N zdotaccent ; B 80 0 604 632 ; C -1 ; WX 600 ; N zerosuperior ; B 248 230 536 615 ; C -1 ; WX 600 ; N zeta ; B 125 -211 556 603 ; EndCharMetrics EndFontMetrics libwmf-0.2.13/fonts/NimbusMonoPS-BoldItalic.t1000066400000000000000000004551011441723000300210110ustar00rootroot00000000000000%!PS-AdobeFont-1.0: NimbusMonoPS-BoldItalic 1.00 %%CreationDate: Wed May 17 2017 % Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development % (URW)++,Copyright 2014 by (URW)++ Design & Development 10 dict begin /FontInfo 12 dict dup begin /version (1.00) readonly def /Notice ((URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /Copyright (Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono PS Bold Italic) readonly def /FamilyName (Nimbus Mono PS) readonly def /Weight (Bold) readonly def /ItalicAngle -12.0 def /isFixedPitch true def /UnderlinePosition -88 def /UnderlineThickness 110 def end readonly def /FontName /NimbusMonoPS-BoldItalic def /PaintType 0 def /FontBBox {-161 -393 844 997} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec é ×`£Â,ñùÜiš"Ã[[4Þ?¿Ø˜¯.aÔØ·Pþ‡‡ÝÙgëð9YÆÊ2SÝã/ÊØ$u™lµüÔFëâi:Ìô Ÿ-=ËÅ‹IåéÉ¢“ÉÅ«ôSÀ­:¶QÖÃëí<¡yùéö1’YãL ¡ Œ4brî4*{‹0 @!þWbêƒ47W€éŽãfÔâØóJQr¨ª '7øjѹÒùW“à]Λž*DÙ½³®Ö'#ƒÍSrd9-¶W‰Kú1çâøvƒœ0툑س"+ýSÁ5"’ÃçÍa2Àn Æ2Bó4ç4 ñ$vM²ÿ Rµ£Ínå´ÕZúŠº“’„ê—Î…©„39wðµŸÿm‡ô°÷½†bz*ùsâ€>.0ï" PœÖMg„F˜øz±‚+$ƒêË9ÎÜ….Vx›Öc°T‹.Q+È“óù”“‘§ní€j†½õÏ~‚<Ç$ªéjÚ~b€’ç À}Oãçc ®@£ú-–Yè\Žÿì€âÔ,† 7ýÄ·Ò¿iaË^‡cúîÛרÙ@„§ÝVŸÿW±Ä^¯)¹éŠù·t9ÙŠ0’Ë2XÆÀðíª.SXÄqiÔ"+ôAªçYëH¤)¡´@;‘ÇY_5Ñ*ŸI£!&O7Cª 5…øKbVêHa%œSóFòÑ4J÷ZbKŸm=™Ã¯qèúÿ:`±)HÝIgÖ_šz ¬s—¥5Gá—ÓÕpÎöÿŠE-™•pgŒtá&†Ú„––ímÐûc –ß™R|Ô ßH¿pŠ¥X޳9„’fÅÔ-Ù ôîm,…‰š?Ðz°¾Ó.õk±!íZÞÚÔ«8fAU± VvØ:þ®¡)—;€ÂUÇY«…*^'ëw*Ж)2Ë 0gC3ëðîÝ ‰[NŒÓºˆžK„œhþTþwo¯‚ys®)œÁ/åd¸J«N@´·‚•ZÝ+MºA‡5ÔÙ6ë«À.£ŸU8d¶ê$É´ÔXÒäÚví20 …öHìz®^r3É(/.6ÈŽVõˆ>µè•³ 4!(vU?-·Î}M[OéeÁÍ^ 2ËýûŸ½H¿Ó˜¶ôª hä˜+\õ»ÓΉ£]²*Þ$Äð90·éç=5S8o‹¦­HÚîW.ªê_1ؘÆ7= ¯êöÖ«`a-¸9¬”%&h® !y´¼5²nË­fSÓª•®cŸ¸Ò‰Óë.-ÛÍø¶p´ÓJÁW(&‘)^#XŒ8+0%¥ÔJªl—“ai€v8ÑEÐ5dA¼¦ì#ª–K).™¤¶­“ª9‡ññÂ'œñ\§X¦Àp—!áüÑf,Åx¸EëV_´HÆ„ßlÖºžI(|Mæ/UkÙÐ)%Á[°Eó~çÆoneš§×2¡áñèlùÖŒ]ëæ”ÙbßßnÄ6@C›ùPa/óåëÂokª_ïâ ŠyÇ–¯q2#–ƒ«sbrv{e&vàînR´Ï®(kZý^&"ZÞ¯i(<íeöfŒªò—<Ùž¬÷Â)‘{—…@HóMË3Q&¾=¸½&8L…FC'àè,™u›¯Cè#KGÚY˨f0Ž"NË’#Þׯ³WüaÑ8ùžFsÑ}ì0s_Ô£7þC«`^k¨À¸YwƒB¹uòºÜføƒ9Y(H„ ÷SëŽÂWßñÕKquò0^•}¥®åÖ`õóØj†Ä½×‡ÉP&W¶¥žíŒàý¢á¦<ë$0?PwÄ<¬&¨8Ó?ªwX ºƒã}ðpµ•ÉÑUEá¦ø>€—‘‡.ÿ9ʦnÚ«&Öùä©y°íQ#¤£B^sl×ô_ïý¸Þa_Š$ùüBå«6È%Éæñš~n%¬€†AŸ»ë§“p@¹Ç´äœ}†ʵ‹²Ë³8¢Æ¶*Úf«D|òz俳]@× =•ã?(‘•«ƒå¡Té„OÙ˜œÁ‡l%Ú—‰*‰–ñ»³ßò.\ñ€$ùÅmý›SJ–šlnÕlç›Îš´Ê²GÏè¬//ôøëû;O˜ÒúñdE¦ðæ)‚2õµ˜ §¬D¡Ï"’y¹d0#ýÝ9ÝYn<”ÅÛÖQr1Úñª¯º²{ËU°˜ë§ÚgÂÆ=º éFRåN›t[r'ႈXœPrk—S7­;ó£DL¬¶Õ á(פ]jº\›}XÀ±ƒ55§“„$G‘­±8•˜ŠÒÑôIÊsµ1ðŠÝP䢷x¾rÔýÚ©½sÖÀ¨Èk¦òl¡²×QµÙy·ï"qõÑfRñ‹ò­}þ{ìDlp3Ùô­#U0öÄÃ<¦€=Ÿ7îíDÖ3]ª&”e•àî㦬˱LD+®™“Ë1ÈöÉ‘@…ýÅIèd2ÃZ4¡hRLé–E¼G>ò·cÖÔ¢»¢òüyR©¤¤m|I'W¿ôCÈå±Jè"z&»0c¡Ê™Þ¯—v¢ðºÎ' I!fW!‡bþþ"B Ç3koztÙ…¾Å6|-÷ Ueë,ñv¢ÞãÚNà{0ÿÓ^->I˜8PÈ”ÊáPTKpC–Ï-¬}ü¸ (8õ¥ Ò— Æ–65ÃUöv­<¬©®h®UÓE]Üù7¢šÎÏaï› ´-¦n@•EŠ^n͈ŒÁ›Ôöt9 Mq`ÃÑ, iG…p‰‡EpéµÚ:— KÈáè'â%0o6";Q„­êáæñdèCGN±BØýÒ¶Roy±•£ÝüÔ*"}3fææüôŽ“/,‘˜jf½T\ÎÌORbé/-@§Ë£ÇùªðÁç]x™ùÈf_Q¥YllÓPJâQæÍ5¸rŽá»Ê3«L‘ɀ߀~‹¸Y84È899ÍŸ“pVâ `ŸñçáhŠ,Üiã¾ð'µ&¸òÝÛzy\=B¹FðÜzþËÉ›¸qwK–‚+äOýî»Ç4”·9~“5+¸58W€ïSs¶3¾êÙâRÈbßgŽJCñO#^¶› wÈ£KúNÒ>¸Ó5“hf¹ n°=ìþ‘tíôç´ŸFÈ ––¯ M©\-ꨖl"Û£ýåD|˜Úи œzêe‰²‚Åž•02 fÇT !{zÊÙE7n˦첂Ði³¯ó"£E XEò@€ør(O6‡ úÐU³eªÊÝ÷¤Ópp1{ܘA>CB¤`^©çËw›~¯oÅEa¼ú‹|¡§ÀWeeûÅÊ ™òÊIµ Ë™gÓ÷8FX³Ê¨ A` ÍÍæê™7}c2ß|Áƒ‡ÞÄ&*ã2®§ŽRB%’3`ã¨{HßaôÖcd/H^Û#¹ÒEµfÍOÒº, ×KD˦זT‡Q‹ 3C5ë3“'eŽ}¡#í°ÁhÍÊ¢ ÔE)J÷?‹:°88~6iód~%FåèpÈpA½DÚ“µYèç’ék$ÔŒ²~ÆRÇ"Hï]ƒÅ¾%6DÃÀÏÉÞ” +BDs²ØÀœª¢œ.ÜÐ~>rªqÌäñ™£¬*n„Ó:äÓ«.LdÅ–ëÑ£Y;Ìó{í0y>ﯘ„€‹‰{`J^dd ÀEylŽF†ù&F©ÙTÄÐä_\4O’v¼Ñ;|pûÿ(ÈnÈß½^9.b›½X ñêecÇcYY ÀÉ¢ìú`uñ™uƒEåëa€¬©’DÐÙÉZô²Õ ‰¸B˜¿Ì¬(Á…u´fdqža ¯–40t#ÒÀÑUg£;«o> Zu›OÑðñO«gº™YÛor6Tsxíaڒλ® 8#NT¥›̲~)ö?šéF8;–øûsJ¾kˆ™|qæð*Pø±}s8Œ‚z»õkÙ´aÕ—Pg ²Ö=¡ÁžÓu4Bª¬E‚vs‹c.`»DºX“(J¾ÖóU””¶UÙÄtÆþ†  1YSy¦•vz»nùhø§ñ7†‰Ãâ¦GSFÙ‹¡õßhd |m ٵ˯ýl ¿ƒ“4aÞC¼Úøácm:¬ U⊄`åÔú(Zíç÷Œ”’D:zÖ>{J"t1z!2vü!ÐJ " xƒ³YŽº¨NUc#›;¼õMŽpíŒw"&ĘBé8‚C£íÞ‘:ŽkdWgê!–DšuÒ#s€ #ÝüœxÝ.‡” >WrE%2’J¾†´5ôV:îDŠ'd|mñªÊþä÷ÍÌ}w­¡øÝèf*±ŠüˆukEÑÀ¹¿’C?lµÉ/fj´ûvWmô«ªða-úÊ Œ™sÞM¦ò ×sÛÐL…7"CY`nÝÁëÁ´,tÿ JöƵJB)T®˜Òk3•YvÃËWµ3ÖjËß¹.ü0bjQ=ÐÍÍ‹ôœu3éUSÃ5Çõ‹4Ò{t{œ8Çijè‹:Tª':¿ƒò•ü\…C°|4ŸÔ–Ú^UcY€R,G-ŒQL§QÛDQ-ж.RUþ*Ë, È’ª4x¹+øe#Ê*‘Âò÷øN` L”¸F@Iíշ𠨾ãȾ«<ì{Œy Ì$-“NiŪcàÝ-’G„sqn«Ü¿ÁqS.Ãø2…ß»ÕÙª0`fph“Ç?T xA¿°º«_øVP0¨f TjHâ‡Áó X }™êÂBN‘åyôa«ot\Ÿè~ÏŠKùñ¿rà ¦LUñz‰³||m@‹XüÇÄ¿è/°ra­k=HÁ^CAk>#€Ð<Ë.'ýpöÒrºÜ-`^b_«´pžbΠÛ4´îâ¦<‚ZL⇄ ~NYÃŽ+a³¡ÚÑÏÛºÿõ¹´çîÞÝ[È£}Hòós`1» /¦ç˜é¡~ïÈ¡){yr¢_½F|¯ç8PpöP~»í^Õ˼–؈Q—í’î¾cóåáÝž^='[É5dOÿÑ{àæá Ò ËÀk'ø7ß¶‰õ—XDìwÎ ߢêG`WLæ~)Áâé+iߟB‹’µ6¼Ú–Ƚæ°^fC‹2‹j¢`rFðE×Ëq—ºòZHH²Ä9}8º(¨CXUi“ý8Ëw.›³ û+ÁóP¶Öu­ÆZQLdð]¡màäY|8è"*Æû¾e ha;d¸ÌN¸~lV¹FHÒl0 É“¢ÊÝ„ÜBÀØ‘O0ff©ti /W®FP‹ètS]þº©0V¾üëQºâzŸ€½7÷Õ£ˆÕ'Œ M¥®A¶üQýëúA’õq?V­9Mÿ5æÞÄÈ$u€¨¶Â|ÇË¢ÛL ¡žsèªp? ¢kLo cø¨¹÷qãHŽ£œïf¼ Ì8¦9 w¸©{™vË’œ¼pŽ KŠë`1C‘5 P&\háþž¶¶(ÛG7–%¦³XºìÑŠ<œ0*•˜è-NŽ#‡ß ^þiî•ãXPåx{ò"oi÷sû(çVçÎWJï_îjœëÓ­ø€ŒKþj¸ÄðõRóFöËåáÓ]O¥ÍŠÎ¡û–ê¤y¥ÿ`)g㽩¡¾¶ \üÄLР÷U_EÝúJCËX$UÄvY_IÖ¡œ¢›Tm%úÞwï`KÞ TëÛ07âÑÊKëF6¤oç=æ ‰HïÁ`7ðV2œÃ›Òò¶ì3•îH;ÈÞ>cgT˜_°¦Üæ¤Ë˜fq©iùÁ¯§fqÔĵúü¾¹0ÖQ÷9 ß …x)‡¾/­ž›Ãñ’‡õ`‰w•é>’iŸ™*¯òù7ß7CŒ³5ŸªâþÿU”vJ*F Åu£¡8ÓѬ¯è5_³›£wâqŒœçÙ™n ˜7P›Ãýq¬5¤ð¸À­¼«Kª:y%æ17s¦ÚOž~aô郪÷ŸÛ7,ºÏËuµ•_Ã~óäŸ Ž–ÃŽW”H`\Ô6{M.ôàJ~Qòbž=ˆ¼ðbï…V]J½cåv”7¬ºX¬¾á€x¬ðÿ‹“̓S,Á]ˆ¼•NN¸! f•|«½Ç¨ÛÂÝèÅ.èÑ=øÌâÆ¡nž`Ày Ðmûg;:½ÈNäqûŠi×ÙÖÐfer¸²ˆt³&sS¬¶DBL]ai/d Ò&«„»ÄëÎl TdÞ˜dFù²«ª)çû{  þ—¤ö&ÁùãG¾,îäPu^9Œ5á¼yì™X-%U×°Œ—|ýCu®­–j° [ò'Ü0/!æñ<Ù<ÖöFíb¼h8T·‡OŽçÅïm~Èˇäà2-åµÝ$A‡U³©=èÓÉàCWdµ/"y&a¢I9¯›÷WJ%dïÝ´æý#"Ð6Ê]Ù[iÐl >»PjŠÁ‰@¥÷‘˜+ñó”|Ûs‘ëI×§6vç‰0™Üû›í§B +3Þ²œ,1žA ùD¡ä¯?‡‹uúx™7*&.TÃP3+7³aÁïÍœ.ºrWïß-Mþ>òDÖ†ªÛçÍ—çÞ¶>GÄÞ@A¶Öd0­S®+sð1 !Ÿ¥xh_W‡4¦|2™ ^#j‘YኂÜá‹N³ƒ•q Ê1M@]ž‰¼pþè"ï7cÌ.‹yX‰$;}HÔ£º K„rØÈƒ¿ýë|Ì´3¸ü­Gÿ_±õ>E©ÝÈ¡š“€¨ý_„ð7%t²)xç“K™Ã 6:¥Êpe;a™¤ïëRæzÜHíi¶¢Ôî#Î]Á’BøP*P]‘•ÔáœÞúËñ0#¨ê×i+RM]Õ¥5¯öÿÓ}BÁ}×FÖIˆà§çú^9Ÿæ@íaDsª>¼¡îƒÙRJš¿/`×ò ÊCžÙI*pÃó˜Æt¿.Ä3Ý‘°TŽåOD嘊é1~ñ« û«èA%³‰TŒ9 Ù€™lcÌÖÙæ7ã=Tõ«¿qû`^^‰§Æ¿Ê •“CÆ4'xîèç8T¿¡}dBzjµÀ@ÃUØ÷?€»o·LëÏý&»ú"ÿyÞ³gÿÑÊ92G†ÿ5Ž,ü·ÞØðp5‚5}†vð>â”{Š.¡% 7fùø—²òg÷èMʦm—ÒÙ*&eÚÉ€Ó *'@Üì-TÈóMðð”ÜYÙ5^2Æ@Ýëüê}k¾"뀞!‚FY” ,“\ß³9k§­[×;0õ§#¾Ø,3obyÀZÇ¥𙵛}[Æ@Ÿ2Àø…¤Öd…¨¶osþ¤qã€XĨ¥Uó¹n{ÅÞ,̬ÒFeµÀª_TL]¦K‹Ž¿=…~JÅèÄÃT.é?|ЈßLaj6žҳ.î‡v;ÊS™Ùµ·“úKÑ.­:Þ —–ûÃ#³¼}?:!—>Þ Th£•íîßЇV&c‚‰…ëB!‚@_8Øê´>AÑÙPÏ@šê+ÖdD baÑfø:7ÐX.’¾@ï¦ÇºÉhWpPŽJF÷œxÕЂuäÈÚþ»J4?&Ô)ìr÷2¿þn;‘Æ ¥ÒüÇÃÿ `îê™è7ì‚e£Gàd¡C”ˆw¼iM¹È³EýG²6èPÆ¢ƒÅU‚,‡ÔZP(-~ B`ß÷{s–¢óÁ+R oHŠD!‰_LšÎí•–.ˆY ¡¬uò0»`î@rX¼ÆÊ,ÇâªaVÌ´}Jt%€›~ íÜ$mD|Üv³ç\æö49f¨º—ïWà%µ7(Ç#¾·t©LÛÆçbº¼4ó—fyN¥›»Þá~usµ4æ’XGµ6éÄ|%v{y•;ÎQÓ†vÈ<߉«1¬ðÏ#éÀ‹¾,up=d]I,ñ—!|ÁÉæÊjy!ô*†@2AkýîÍûÃ0ÿáɵßJ!X u=•%Kä›U[JÀœeØ£ÒÚêa} ØA‡.YhbÖY@ ›/µëAéÇjw¼ ÂV,¯ROª­*š¿r³âTÏ»ì?kÒ„`RDªKé{[ÓFÛ '襭7°cemæŒ+dÒn¤öm_ÀOÉëJtÕý¼ü7·Å®Ü.hêíb>° S< oÀ_µHz$‹çPê‹XH³¦|ÛSÐfµĺã¦R²…9j#½|+ˆ6½ÕÂT° ÿ™LŸŽØº>˜¾Or® –µMì"F5«Ý„{Ö•ƒSç¦û× dwÏ­l‰·[eXñSDÉ'M@ùX²•9f¿Œ²¹ 8£å±Ö0¹´z¤qTCHF³3>©½øm!c­Î(KÈ´ QÓ_O)h‚)ž$¨UâYèq=›â×ÙÀ׳ûdý&£àó³û¿_RŠë ,úÃò:=“úPAj¥“K£gЃ ìzºkw5Žj€gÖëÅ€—·{ëoÌå*+Ó"Œ(ûg|ʉ÷(|,: ¸›L¥ðt¶LœÕQ R)·:vú#ðz+Þ]¢ýX=ŒSòÖ«¬ŸÿZeTK‘H <]ÉHþ&R* '|–ÑÝøx¸:7Ð ÊÙ*EÅP™¹àG3Ns)ÿ>:ŒmÇ‘®yÉ}Cà0þÄzÄßDx°9skÔ{P' ɲ6æ§æYÆíi£±`Àæñ—õ YÚþMà(¨†¼åLàz=sZ¼I#®)qo‰ ‹Pœg•üu'o½Ðp]ä~HL­ýŽA{;,8gIC½úmNãòTˆQ"ABX §‹Ã‘|UzkAòSã6ŸÓîˆu5;Äl¢z&šC ^úîXæ°ˆÃÁz/É ƒeªìÉ¿®=Ã~Xã²1Z“#Šòá4£½ÆÒL:¿õi‰ðæQ·ÑÕWK$vlŠ»Ñ#í¡S9çÈ,ÅNJ‡Á™ˆ¾> ›¢—e‡9*cL8ËVHƶͅR2ÐŒÏë[cz> ”=/<ɱGiä –S¾Íú#(Ü|í>4šïaÄçN!Å ONÀ AókEÍH wÇŠ« œ:¼Jv_:wƒ£è–AÞ– 6z¦‚+cwýU#ŒÅ¥÷ïÖõGfffÒßÕø„ª54êñÞ9lÔ¸>ˆ–ÃÂYg¼ …Ünøìİš øÙQÖJ® ñù;b K½¸ ®¡ó½Dlà©?µ¤ Ôxßá jeÍeüÀ¬ûë$ÆP*cܔ鴔Ra¿Ø^'ß¿¸'yÝß–kŸäjøó‹9ǃ>ˆ‡Ÿ§Vý©[ã˜æ©÷Íi ”}Å*!žÍ6vÈ©h49±ilpôj¾'¸± =Z´5›Ð-NôÑúݰD]òvŠJ+Ú\~øû)–FA[Sþä nßˈØJKá´ õ&H˜Z½æB“6=iÜIl×Û;`4dP%±ÁÎTJõV.?¸ñ¼žLÑ/fÔþ j¢ ‰³©z¾»;÷ÆÙ0¹:ÿÓ ˜kªøE¤ÌÈP3¼FíuÖÚòŠè91¬pÒiü±G[€ð;Y†Ö”ýg‡BÐ À&p’!‘‡aKòߥ\ïr¨4?¾_>‚§±<®ÕÏè…22§0YÞ§v%¿Å}Ap% +=wtAÿ2|wJOîýÿ”¹–Å…ÿ%ò?l™ÍøÔ¤w$Ü|¥e5-Œ¢JÔÐÌNÒ}ðR1 ž…M~Ò~Åw§}ã9¸^ü_§ v%©vŸ÷“°x~„¼L¨1èa5ŸŠ.ù”%Ôå9ïm¶GyQ߬ XƒÅÈ_rù®#ÿ*ªáØ"S¶ãmxY€‡AFæKz'[›ÙŸdÇ™Õø(fdßZEm‘eS_—%ŽÝPŽÂ†ì[7ážÌ2CCã9"c½ßùb68y|¹ Û¼;U«§åô¥ÓC·ùèÓ¬â¯o;Dq¶fk~‘­‹ñÿ4…­÷Ôc|ãð­éñ' OoÍî̶é6MA† ²]ÇÅ#æ 뜉êêä0â”ðP ×þ?§Å~d½ûü+÷­TD³Ñ[ò£;$]{äbòÏŠÖ†þ½“}Çqβá±C©×¨ÖvƒT-Á|•_+2ÝççÇ&õò/ÙžEœÃ~“Ç!d=TÅ™U‘k†™hûö} ™Š‘ÍÔRhZQx§Ìª3þJâ,:C¼ÑRvRÔ|ŠËµ#ušH2¯s Ç€f^~±iºöŒ½¥ý ÎtY&ÃP¡ªAg Ä6c»×WjÑ—!GQo§ô­ Wœ»³r˜ÑvÃ;‹ ×õ…ëQ—à O®ã8‚°Ìª§¡{"§—â~üç\wÏ:ìM¹dÊ?;¡î«•æ–ó}fyp É80¸Tœ× A'd'k±±µËï ºGGĤþ¨\¼Ê“ð’UHæj¥Æ|ÞB ¼—ì2–¯ßrèd´xnoÑpf›,Ñ Œ?ÁpTV-µCÅIa"W9)ìJD´ŠÓŸ ý åúÉÕ€…îr.yó 7 z5YV]RMºß×ÔóóÒ„%èL?‹ÍðHó…á¿SÑ\ù²ÝøxШ±Òàºo_ÝE›8 9Â?<5þ.u…"”9Onå{;åéäÝ'×]%—Q–IÆœLÛ‰gAÓØØ•b^­5W¢luÓéxFkAîT¸qüEã’š¬\¤“<è¸Ùà?÷%´çê¨÷¤RÙWÙ]Ò›I~Uô•â)}ºŠ‘ ÝÛü¯7º%ÜëgÛ}¦ðÌiswÇý~Og‘î]Ù‹ÈžðzÈ,‰¨ïg‚±2óƒyœ eHaî`HúÉR¾÷¿)TE/}`Q¨ábdÕâæÌ_WÚk®•V™båc噈YߺÁ¥××ñô¤™:¢mçÕËP~ù Œ¾°Ðzèyä°ó­èxÒý VËò ÂrœÄQ/«Ò«_±¹lOñC `›ÏG¥Ü}rrœZБk±žÆ¥E«mtPŠ äÁm–ôÌj8e½:G%tàæÒ‹¢xN°»L·ÀÒ[¶K)8ÎÅËo®õîË"àS‹j r­ÁŸÇ¸5k?S_rÔ= —×®&p˜ËQs±1Ñvá\•Áººî¼:Ÿù•HÁ^­ø)ì¡L@¿—‘‘WCµá] pü˜—ß .ö{yõ™s~sp‚|‚%½Í '­$Ý“¬oD?«öir†V.»I„þÄÞ8M'ˆÐ̇ qˆ ”[L\ª¸ÁòÕw…š‹Å× âìßfÍbvYÍv÷zffí©28œžÿI•6ÂåA4tØë¬œÏfÏØ'›_ª‹9™U† ƒb ®*¸‹V·‹fÂú@/ö´Ò;¡ !È?BÃæ›È×¥™_QFÄÿ7MOˆÃš®aÔÁ@ ã^Om},L˜ÛÁ 'øBÔ©.$ýí£Y@´K¬ §j‚/k8HŽ|éS‹„ZeÒBv90 Íä{… D‚bid ‰åËÑ0|´ééºy1C©“ œÝÕ¼É ¼`ü¶VZ­1ü3ESÄ®ÇÀ`¿O&œÔ»½X&´ûSÒ‹ ”)2>ÛïŽØ‹ÓÞG9غ^xˆsÌŠãÐ}¯•jƒzUµj6õOø©´ÌD9ƒÂ¡a,a•Ò—sò%G¨º&Õ†H®†ƒÄÜzgÉ«}´­;„LÕàãLb\^˜[àz!²NÈS:vzóxÞ÷ôV\XjÔö\³ ¹Ÿµä [+X¾Súœü\Ì¿ô}Ä›5~À^Ìõ‹¶ƒ?åy¯O­ñI« ü¾wQVp¸Ìÿ:ð5ñš”Øt+2Ý¥3¥¿­‰Ö–âiê8+çÊ<ˆ`èS'¢S_´ÿG—iR»¬›û·PŒßÙÞÆRóäV²tâñb|E`Zh«Rvö‹B.E9o¤¼Óylt÷fº–Ç âõ£´Q) ÊÈ÷h´8žÝ¤1¢%¼‡…ÚÆo‘Mµá`x7 µYE ú3„ÐF†1«Ê.\Ÿ˜˜Ý‘z\¿Ýpƒù€Rhµúÿ% ‚-zÐì]õJ.ÆL ð°‚Ú¥ø5uôN·8àTaåÕŒ.Ái}GRá,~¡Îè‘E'yt¯OÇúÜ_äg7=\¤~çuΠ/ÞUOJ°aŽFãT›‡?‰àaï鼉0,q„tÞ2a?2DÏ£/ð=^f¥£ÅT13ZƲ‡ŠíK› ¸kçž|¡ûv¤&`"cß´¹ø` vÃE¥XŒ–Áº,¼ÊGeGôV^€ðèõ'²'³øÖP ¢iN-è³HšÌPx‰˜šÞPH"ÃcÈ«2íg–ñЊª°yvbZ_Ý/8@ `¾—’Éñ4ŸS®‘—梬†îôÇK 7‘6¦©7 Ù,¥t¨ÃoVÞ¸”Hg cÜÊP>€© 1‹Ùí¶×’mYŠ6v°,†rLö—FUh´î²ƒš™0PýˆèÉ(_{üq žÝ<7ú‹{Ç‘7|K_ߥ¾ƒç]¶R 8É,®~ûxmqwà{ÏПg0™ƒ [g‹Æ«¦7ÝhÎxÔ º²ö,úá«©%ÉHß_ÿÞ˜ãÓ ÎµË¯®RýbKàÅvÄõÅáheTÍ>»CbáP‰X‰Ê6Îm ×Þ ôÒá÷$ë «\ôÁ×Hbbz]î1è@HdîûûìšH³Â¦²Äæþr»  ƒÄIÇu·LûœÑ÷à¤,Ðo³’MŽ:kK„qèÉTЇÜPvVº *ÊŠ(&Þ¦Ñ|BÚ†‡ óbƒ¬1ÞÁ5wé»úÙ±ŸáCöò‰9N·íÏ*þáá®â´‹#“–Ñy#Ý,ôeÀ n€¾8YµjL3MÐ@<8-)u@cØ“‚ŠÖ˜D!ä¦suúvжA KwµqdÑJm±Ååò·ü±ǤYïÏŽ5aè‹c|o£è|eÜöÞÇКèQÿh¦–"þo^Ëb*+ÓmË=š¢qQ,úÓáCàNbIPÊÆ9èk,þR©žÉQ„Ú¡(ö?»öWÚ§î •‹úÔºSoѤ¢-dÇõÖ>u„h“†“Äêô(Þþ^½Af›–¾yˆD¢‚±IQúÛi& Ÿ{iHŒöÍXÑí˜Eȳ¨lÒ‰ç+LÉ`¼àè_ÒQ6ugDýÇKoÐÈ¿oåº:6OÿTP® ššô¯Œ<”ž±ÍlªPdB/·zûY†àwí.\-ý wÃì‰ ïáoåRc>Îóv´Q¦¦Îô| •øšëgÿ•lÁ›'íÞ[.ƒ¶ZJ.ª¥‹[¼=X°ËD³HzÄðÿóœ· ;>evý‹oFö+DO’-x± 9yû>{Z/€ñ ä}ØîJ>TÖ­“ꨡ+—²¸{J”GšòÛtª&”8Èòt­‹‰;KWKôy“¦S$¢”^t Üêó½?h7>»¡¨Úk¨¦é8“­û\²ÇW­!¸»^§Äu–ì`mŽþT‘R"RoÙμ’ªx\ÑN?™{ΓíØ{Ïa’SwÙâŸIÒï„Ó$BÂÚÐÇb) `k»ÿ¢˜ùOÉtQÂ=NgNº´-ŒÛ¼ƒÐ“@*Kßù~ÏöX ¹¢–ù¯Îí3K9Í € Bð­˜ÖçÓÖŽáÍ‚S*?Ó¤ª#gkÃã%t4kÎÉ’D+¡xê]Ïz+lPØá#s§ ‘,¨.Ù=¶{ß`Äèí¼{˜n—Ðñ˜ß@8í%®8-øGÕ·3õ·„æ®_%]–šÝîšv¬¨ñ¸Ÿ&«ÒR•J–„ÌÎþ6I»Rã¼çº Ý# ff‹˜è³£'.ͤH?Þ“ð‚Õ² ½WÆ4`ÛßÒ“;Wm®Æµ…دù—¡]â›EÐÒz5zÛl8Ïr‹šU•¼Šª{OtŸÏ‡\RŠE8q âJ\à˜~'Çõ×õº°±Ý‚³G`ò«ÖT6¤»R^ì—óvväÃ4”­A¨ó¯z0~¹U³7I£ëí@H¯Z*‡7àK¹$®X®ë›Üh<ñ`ÙvËW¼IõÙšM3‹`f~Љ^E4½Ì«\4l4ÿ[¦k“^…ÄÒœæ>@û6ñ±îÚ?HÏ8ólUìê[ä;âܵðu>ÈÊ Gk‚¨xvwFÐ[,Ùu˜lfCØ-ÅhšûV5Åc½§•S„„Œæ\œ ÚºÙK® y¥2p0Üß–ÉBï_3j‡( 6Þû÷_µÃV‡‰üdKÆ]JqüÞë¯* ü8uªMRÕy<~9ºßÕ1d6i‡,}@#Žêmõ@Åü<ô;ÊÌeÊ}³äÛ£j¢(ˆEĨŒêÇø.œ³Y,2&n×ËM%î˜ÆŠ4äæ;’i>e™h3Ù¿Ñ€Èæ­‹AOÜ2z„T “8.¾[(?ÊB$"µ:(@x—§2m¯xãí&¢ɽ€ûv]KØÚ_˜/™;ñý*euÝí4zó®9LÍ_Ø"ãCmÉú“EZä¯u™éL ¥ Tü© 6[ï>þù%Q?m Þ÷6A¤ÚRÔ«ø‘îZGÿòÑ¡JƒN\';¶Pq›HÈýÂWä¾ £‡‚\’X|VÜ|+7¯ª2CÄõ€ÕmðqštŸÅ à²^ÄîèÒÔ7Óhï¡9_mGìÈ€æ|BŸ.›Ê`Ø<‡t ¥+¼Î0åî–º¤O3ê˜T >Ñ'31‹€ŽJçC=‹Îm±iThKMPxJê·K^^%TxÛj"ã¯*î¨Õ T±0d峬*åÔÍ ²®#¤Zm\¦©º&®°C!CZ&pšÍNh½ nØx°†yT²Ì© ßú"Q¸žx |óŒØ_]³ýðøªôcÞ¼„ êTùl7Ÿ®'Ïšv¯8©ãuˆ ŠÄógs?M<‘²=n;ÛɳxòmÑ‚1FØQo´£Ož‰‹É(óç0¬ßçXCÑç6vjhqóÕ”Èp˜ÛÈ¡¯êÅho°’ã~Ã#[¹­éι•Ó$e}ì©­7,äç_ŽÝ¦M‡fQGý;:œYpª [ÝƒÕæ‰þãHŸ8`Àsû#]ÎÛã”ò„œ†  hÑó0;MÔÖ—à5Ï^BzΘïQŸÖLÿÃ=ùìè§û¡+wwò†gq ZÝ· 5ñÄ+3_=ηŠcÜ1wVÞÍdʾ…MÉC±§Î$O¼WtÃ$X¯æ"¼Ñ… gõdLyi…œ ë«whÑ:!жqÐ |=c}8#1¥—¸!Ì®²·Æß7ú,°d¦e½Ý¼(M åõÿm$9´û—BDùÉßÉEº4‚’²d°9‰’+—çðÆÌ\÷Ö’kÒ/b#ðé/1ó—ÿ•ó÷ö\­SEÒ™¶e5ÃÔž;<Ë1îÓŒ"´Ék$‘ › Ó¼$׸¦7u€\ˆ G *ë.ZÙÄ]ÇþŒ¹ó}lõüi¨:”âý»çÚçq]íÒQ+I=Léq+7ºÈͪtŽÜ4ÒUq£Êv—(ö×*e*wœa½¨Ø®zÝ|¡•¨·‚QÆ#Ê鿬t’µ±àœ#eXN<Ðx1eAá¹ò.`’vŸ¿AL öGÄ‹ËL½R#8о¿ ra›ß52›D1‡Jbhr0G1íKEU®µû€Ãôeø˜v–ŒzL`ʰ¶Ïe\®¡Ã)öÉÑv½9«]ÿ+½´8á5ÓŸðÀ[‚°Ãw,ϧ˜¤4|X"ÆèVb·Š“µ¦=–±ô~–A?Ôf)&ŽÆÖCÊßD`’P+ ÀŒÓÍœ?‚Ñ0œ¢Æíj±Ä?—Œ3“¨)‰¿Û„m Ïï¡¢Ñ|Hh3R¸ž_j€D¿»ë¤™<À+ÍÓ!£,MñBÇð(7‰Y•„‹Ïß(æ.rfÀl@╱[š’oJçc]<œÙGÒ¤RÇ0ú«9®±àÍÿ̼…“jLE.XKùæ!aLz—Å)âç'â_]hÑöF8Ü®V”ÛïoJÙ-øœåL<Á¨ÑÀ8P†5åjXmFø¡,‘õ²á%†‘ž§]ˆ— D„q=âoT×hwnü_v©ï¼bf­]Ø»Žg–óMC¶# j†Þ {ÐÄð¸Û«i©…ßà§1Å¢V)ÔKÛz˜|#ìUš¹A uòË%ô,ÇXõZàÕ}vôew"›¿‰Ô»[WLÑa"_âr° Ñiµp‘GB?X³‡F¹¿ÕÊ@$b€V¦r€ÌNJ&Hvûui/–ϕzH(݆ËÖa”{q©I¹”ª‰…Cl»^¶$œ“â'Ñ71£²…2Øë$j¯™œú1ÌõÂЕåïQJí ÁÐTjsJ<™¼ÊÉ ‡KÞD¸‚>—î©ScmÕC×ö5ˆ¼;zgJ>·9F“Œ>í¡ „ãœsr ß`[$éP'ÂëL}Vò¾€¿é†)q>±~ŠJþ+ •äˉ áóRì™úhøq¼tÿ)1ƒI¶ÖE–Íq>H;Ž3[}š¥m<Æöj¡¦.½l.óŠ’~mÈH<ÁaÈIÂz!5åî¨þ¸ÇuþèEÁ'Û«‹q N`œ¨f•¥ûÀæ¤U/ZÅ„âËÉ4|}ðŠáÛ ¤5æ3o>¥]–½Øž¨”"„õp6ãsϺ5ÿM«7]&ÉÈÚ -J6ú2²Ë²”ìÝŒm’«’p•ñô\;pžªµL(RÇs)šIÆ6¤ÙäJãå´ñ¸fÒ©¬âa ðTïÁœI“ꀯHåÑØG c¨ÎN;[šgSbuR‰š((1Uˆûyvm¯~«æXH£Í<í`=‡Èú4ç˜Þ² ;Äq¸LÓÖdÏ˧ I‡*ÂpPò¾NfNû÷2u¤@å Òмì‘å¢Z4ë3îf|Æ;d¾8WwÍ9Z0—˜ò_D޾×õ2 &£e÷è;a†šE6J°bm|Ý2ÚÜ?7Ê­zª/W€7à™bäludáþf‰4w¹?Û‚y gÍ倛¦ÑP˜N÷¦) •¡EBItµV¬oü}¯@C.ø÷ÞÁ4<†ÖéÁçOñ¸2¨dñjp*ëÀþrI@ñI“aKèøâlÌä gv)8Þ…jƒïºŠž_c1-–¤®…êjhCñUPäC†L¦k+2o~÷†wÀÔéêÔÍýªø(‹`ý–ŠŒy€bO^ƒve2‚e]ãðÉD^ä¹ÉØ2ÉaNs¢Ð»F‰xcE¥ApNàO¹£$;þ”h{[8u¯÷/#וÿÙ¤Õ²[xˆn•à{ ?U®**Û‹k5›²Âo3ÙÓÀ™ágT4îw•Æîäö —žŒÕ;3ÏB\„~‹ mý¬2Ø$ãb— mÝ;Q¯­m(0; U$ìâ 4û÷dÇu\¯jÊÉj6MhµdاnSH–pEÃ;B ˜îÿLi¨y6ÎÄs›;£µ¹›Åƒ›Íï逡XD˜í}NfX{hôö/‰Mι%‡ó * e¹„7œŸhî”I’—>¶W·è¢¼W6‚Œ óÛk ’Yqê“Dj©LP`òOÛpLµ‚ök‡ýš¡hÂW…dŸäÅLŠð!ËÈåU2b–ÐJ^*a(‚3çšRF"¶a®¡÷—"wfóµªÒêàÒhjõ›£Ya¬‹B>ÓöƒðÀûáe¨Æ–ç$QAŒæBß¡ Ÿƒ\ 2[©Ów½œß £Tëh~uÑú»&ÄHáR$wÿÔ¤´Ê Xfhq“\¸&¨ðýŠàžþdóÎ:×ûl²ÜIY ¥¦± Ö1»±¹ã­½é| Ÿ˜$å{£ˆºÚåòXAè,d•ê;ÓœÁÉ3#?y®¨ñh¶NĤ#ÿ¼ kò šu]³#_P åú>mµ§ ÞmÊæÆß°=^æª\÷?…›jÐ=¡cňªSV~ d/_Õœæ«!­Ï£xWSü?š8kü™¾êºKºÑùd?Þ¶·î¡c¦ût}__-*¶šT5ÏÙµØjÙÿÛÛ, M[€¬7c¥JQ‚7+¤ÚãŸMH'n¿4¡±Ã†ÚËÖOµ¬SoÁþKý×Ñ^upúÕÉ!¡BÈíûAÓjVw~wº6@#$\Œ]·«°:+Cc¥ó@-=¿8Ã/¿¤Ò¹åBÒå %­>å¹Ç¿mä˵K/Bäm†ØQOìd¢Ý_æ¡0 æ ê!ðF£é“ïÞÏÎ~žU/àvà=ã“™›­;ÑãGH!õuÓ(³,6¾þ7®œ:Р¥kᵑö5clæ=öT¸± y}T/-;u=¨8Œ‡Ã– ½€iZ‚-½®œxô¾P]íÁ|ÃM¸ù;q¦z¦Kß?v½Õª\²ö9ù¢Ï¼áè鸛XŽI PY¸ú ñ¸A—»¡œFx ’„]ÉèòÞªš´E‡÷0‹_?sšq~f˜Rq‘ààﶪkqðšËÈT†§„ùF§±Å»£Ïèü\™Žj1Ð|ûØìéÑ  c ÚcÄÜkH’3šÜïê c5̼3²”Àlàf–rÝxl%p†oÅùû>c‡WÚïÊëÂÖ‰|cÁòb|(³ê¶Q»!Öñ%d}jºzMt0‡žÞ³ÍÚê‘d¨Æ¤×j‰Ÿ+<ƒuFÆ:[“o|Ä"tÝ÷$Ò4㳂L ¡]OFý¾>ò¥8H{›8D kfP™€¦ ð"Ü»ð~²óV Ï2DŽ-»û}­_¹LTí퓸W£˜L)PIÔn GPf²÷÷.­öE $»—ШGûý¼BŒ°ÌzM`n%D÷öC*žh×îææ€`Èß­Ã;gÙe¶‚ÛY¶QA§ÚÐþSƒWnú[¢ú«õ­ø+Áâ뼸¤îÏ_÷Â1”ÐcV¹R’lº;ƒïä}ýIÆóºñ犱³èéÛ'¤Ë‡ß”ðìÐY®6®T”¯Ùbpð¢^+þÓH«;¶Ú ¿é„±é0?›úá\ë<â+*ІÙÃï:¬+æDÎä5!bµîF6gRYuSîW¨nTøa)Tú”šÊØ?»FàîýÌ·0‰^—¨ÓhGCàH:Þ7ž€¨½ì|´Ž[´ë±>”Ϊ €Èl¼½/¹í»¿*q–y`´j5`[1g5³1þˆ>u@¡Óáu2ãÚ]Pø’ì‡yð»îÚ`Éärpg]¿?‘æÝhžJCç°s@ðñ»x*²,‡©q8Eœ¡#܉Ét÷aÁ슽‰ùWúÔïP¹ëy Š_{5snc ŒÄ¼ Z[ÌÒĶӔÀ7XÙ1Eê BÔ…Žõ£kÓ †Ü¿ˆrø[Žøh=ƒâPäÐAÞ¹¢F˜Vݵ§’ˆ*$$4×:…à›k¢HÇ܇uÛ_0`Ný­0Þš†ò#-̾«$Š&ш5:ï‚"g¥²ˆ¨$k6®ßÕ`ªêRmø¹çî—{¯èýý°°FËôl‡VΔ-õùg0ZE¡ÉÓêU>û“Þ¤à<;7%<÷KB øÿ3î m”×â‰F=L“™gÜŸØ£šH2°£4ÕÚ5¼ðgñjÆUðâŒx†°Z·†Š4~–]C;áÆz¦3™3u(=ƒ>$\qB³<ÅíAKyëñ_ ‡tv,ŠáùKn¶KBí¸¡].þ±/„~ƒš±"Öè)ù†ëðÜ|\pœµ}oËÄV;ž„ìÓÂÔ s6}EÉ•¨á8ÒÉ•§·:P0؆Mê\Ì$ ¤`Êúdl CÜ•©<§!ÿ©æYzœØ­ºúîË•Õwª-oùœZe¯] T±bçñƒÀ…‡Š8‹}0€"³œÖ~±=| äÉ)@¦ö%ê(o‚º@\è›@GM éìOeK4x#tÏÔ¼‚nÀÆvê÷K¹9ÛU wšv®‡]Š*)1+ûÈ:–'ßò~W“„Ööê«k,‡Œ  ÊO§¦ÑwÑÍ=Šó™Æ—ÛN@9ŠL QHç3Õ˜¬Íã|å±{šC´1R¤8® ¦'~>ÍQàÛH ê¸B‡V*+Dº¸×#'â†ß.S&T•Db<¶‹ýÍÁ ÚŒûnðŸëûõ0‚h!»³ì E©ÅbÅNQïºVF·<#üˆBmÚ¨,ü¼“hÃHlWå-Ôû¢é >9Ca-vÒÝô{:¶.:¤&t½/üþ*µ€Àj3N½$W7è*ß=¦ Âk`úô_p³K+ö2‚Ž^6X]Ó=qZB|ŠÊ€„Ü›:¬„蟘—vɺ¤·ï!Ko°rúñîÃAX«÷\f… Y—æÿ¬çò>ïÂ!›Ù¬¬P˜<Óú? ®Ü-Ž(âŒG¶ð`âÊuxØ–œMA(œ„‹¶Fa«=ÛÖ«ÔMYe¥·;ðÔÛ<ÏÑ0Cm=®ö™I³6uþÐ3ÑÀnhõ¨Þ¯ÏSú Їâ¨Aóà9?˜¸&þyçϦvÇÊ%¾ˆµ©˜Gñ„o¬€‡+ÄÌÍ ›ÙÛÔþÏyŸ–SQ;Â:*ë.¹Ü.‘@˜­fþXÈ´ú{ôÉ=çÓ/C”0+å(Ug½öSÅ›È@¡¼ûæ+&rƒ£MRȬŒ¿&i«bã¸P\oØÍ™d;Âx _á—n Ûdc":(ñÿë Ì´Ðg*S—€’¨¸ý:Vƒ@Þ'„lWš´"cᡟ£wΉRŒ·Ÿs¼‘DKqf˜ŽÊŒ˜/ÊÚ3{´­"·MÛ·€E)ðëãdd$$íK [pƒL±rwÁÜfÑt«§Þ•xM÷ç·»òTý\Z“Ƈ‹â‹X)T™Ç'ŒÞÒ3¸£êì82¥½ÙL{º âË)ÄÄÀ†96}ØV›ÿ8k°í–)<*à¬MÃÙ©m‹CÛ:l"ì¡{¶-uyË7°FÃÙo¨+÷¿ôSþ`úÉËâj’Áði=%¨Î;Üü˜ñ64Vesñ¿'¸,yø^é0˜êò8Ĉ·|öG=Á«•P÷t.(ý­OµœÈÀ[ø 2œ8¦‰ˆZ}t]J¢×Å´f \³§÷àSš0d‹…¢ÜySˆ™ùVk¡øÐè:|Ü.ïháú=†³Ö¦CŸqf†PÀÏ/Ÿb™#;aṑ™à9M!àŽ6†ø+¾Š3-æþmƒgÝ&ðš¸ö"_,>Öi½£þœÌtQÔêÿ57J¹=?ŸÍ%SâJ)ùe âyš²¾å6àCÑØqXÐd$ßVÊ„ºãèD]¦%JOœŠ ÀɯýáÇÄѨ2Âýâ1ø¤ ËËÉß\nŠMù/‰*^u#{ sq³ß)³’ÇôÏÚÕóƒÍË¿-`ÍM2Ç&ÕéᇻÙÒÇÒ8ð ÀD§YÆ3kB,ÁíÄKž4‚áÌ=‘À»DêN‡¤µÀ` ufºx?3ëP 0+ª]R›jÁ¬îý¤)½;¡/¸áárGÞ 'ž ´W†%I›ª×¾p¤Øz#š¤‹"­Ùqx0åÚ'>ìp¸¾†PÒ4ß«Ív’仇/ ‚ ·(‡Á`?@'®ácG”ä~IãMÑ%‹t›E-%ÏI%éãÅIܲOTbBvã—µN¼á2> ü C6Y“‘â"yQíÖ@c3IQbcÍ0ÂH½ÿ༉sxN]´‰™ïΨ¡$†çÍ+³´¸ê{Ö!``0$n¯¿È`šëÎÜœya P˜›Ü¦¦SY¤ŠŒëŸs7Ä;±Üà«»è`U2ÎØÅtº­¯Í̱¾CÎDÖÀrKë=D§VØ£„qt3qYÜ1^2³G«õ¶sòÁÚÜ1=ï.i| …øU¯Š)Ïj€ÉŒáfU³œH:Iû6µœªG îÐ> x¶Žoi¯G½ñÂa¹¤ {çu• Oå|³Ûÿ€ÈÔ%ñlˆÖ& ìŽïð74“vÔÕmÛ'gð»ÃO£šùTÕz‘3ËÅkc¼ ãÓª άE÷µ´YŸc %þªÍB¤Wð=ÈÞÿÚ{¨-e ½f¶#¿ iòD2óüYTFSÚ“ãà¦5ø7JnÒOÂ]ºQË92űáó¦§(9·ðkâ©Ö–ÒÛ1Ý(Hì“‚bêeüÅ«ï¨"OíšÛüÕkÀ[‰›I…÷IÊ\N ïÅÃ>‚¿', —Jç#·Ùl23û ú>qõž(éWM–}"õto~Š÷ ’K½u]áÚ¤œ`¶§žbðò„ŽR>ØŽjÞ¾g4xSÊ‚ëÖ|©ö‚÷Ôx½1ç'θ=nKg^lWœH[¥þ øç܆ÓlõÜ+í£–Ý“þÐ\ñÔþ7Ë ý|œo;±\Ìœ.§aäxΉ$!‚oþò0ôÎòö“èLëE²Xä_«F£Pøè sm~„…–kQ“[–úû§´s“»Í³Ù2† ÷ *SœàpR!~íjÑóYH tìn5û„Ê^oÝâpM?ño:¥Ï°d¸ ˜çMÓÉWÞÏ@•Ï<Ó\EÛ]Ï‹ãÅ›‘E ðDÌéo§³ÿO'ܽëä²;W¯Ÿð …ÍáØ Ø8 $ò;…†ÕMc×Ò™õs°Ôý8­7d Ìcìß85<)Ùþ|3¥²…ÄÜ+ÜŒ,Ö ç\Õv¹²?ýÍNÕܧ‹jùÒw½ëüî¶ô°nªÑ¬DŽX3 ¹ÏêýO7pÚyÑ ó Cá¹`{»—+|¹°žºÐ·’r–7"EhiÀH‰†T\ÌÃD[9&å™þö2‡-”–rµÑ…þ©<Ë–Û{™º!µÎ¥ÈY¾“W~§ º+dþì£&öØlSäR ø¨RA™N«óà(7u—mÕR(¦Ò¦à!‚=í!³Ê + éª&Òˆ¬C$ö]l{žiq¤sìs¥MzÊ›nÛ¼‡å\Ò£aS¤MGÊ—ÿ‰×C6häcŠ×;_hEÎ~×iåv³°ðš&hÛr£M¸UަxP[=`m9]H¡à[§€ÎNU7cìSföÈÐê]àù h®Ï?ùÄþÆg²ï§GpYjátÈ'ß0S±5ga€È}—ª¢/3óbÊñ†³ñúBŠWÉZ“óG¢ü€ä­íÃV¨?ôkߨÊ#ä«AàóG$wmoăÏ–110´­Á2EvoSQ3¹"KÓòVyc ý‘ž¤Y¹0äBƒ¸î:¾dHlßMÿ?7;‰¨/s˨(%õúDŠÅüè!_©oÁD³ÐÊ?ø¼µ6P¨*Üë¦ñ•ÿÒñ±ÌÊê‚ĸµ#j OpÆH´Ý4ÔZ°¤ôR´Ý$nFþdFS*í$(ø #šyë 4@…“ã‡z²U~Iïì‰Á!#ºµéhÔÝ#î¸wj¸k$c°oj¿ölOz<Ïþ¾jŒRŽrÔÐý¤C*w`è»ê.Ò0P(MmK/ËéŠ/KÌœùr Ê{*ïǨ Ú¹€‰Ð?ŒgØu°ç›—.Kzéè“z.õÖ˜%çÑ6Öâ§ìW{‘R°ÊÍYcJƒœÌ¸»Ä¶V›mÇâS·”ÿÕ-Îú)EîþŠÏ¼næiÐÑ cÒÎ÷íƒ=űwÁØéÄç’Õö_jë_ÖdçÚ¸%Ešëú_ÒË®¯€ ‘_C¼„•ýÓ›.ÜÖÒë6¨jïð¿Èðf6f°±”¼¡ÚÂÌý°ôЛ+˜ÄŸ/«\äÆôía.õ~ÃäuzPI¤Eã«x÷¡ÞÙp .#ò<ÛcÑ5Ñ4©úm—)lk7ŸiêÉÔqÁ„è…‘BZëìžG)6œm!cåæƒDgTM]ÞùQæïðÜ݆.ÚíKkVè@kÿ:`6p&\&ÅÇÕâ0°“ÆîäD_åS5õLQÍ1MÝ&¨—/—9í:ë·h!R•"õò—,,(‘Ã\çº`¹—J ,°ýŽX ¹8‚#{'9ùºÂÿÛ6G¶SŒþŶ‹PA&KS2òhÍ+¿Ád¡ì¯™¤5}°¯ýfQvK‹Kiâ š¸á«˜›˜îOu ×Γ¨LŒ¦¨bħd×j¡r&NCŒbUyíi/J™¤äYÄÎ!;ÑÊ{%¨¾ë„츀x½ÛÔGã:½T›£;GÂdz©§Õ°ìã닇ü5ðé7¸@‘…]¬ñƒ+/ô)´>(M(yÎsñ–¼=‰Ì G±;’' "ö—™Yê\f7â‹QÙnßàñ&q¸±™¤s…pÍ]Ù<õ€Óbî¤ÐîæILxsaÖÅUÍŽåj;š·ïY6IÒ³§WI`á#\Çj%Ðk$wÅ)ä\`5÷á1§é^*BоÂYùþ Ü–oõªFn)cºöÿ“&Š×átS‹äÉ# ýµ½ßdqVAŽ“y=þ™¥‚“KÖc¢gçÍ£Ôá ¥¹4,‚œ¾ÔãhÜä6÷*­"[½aæÙQš¢€ë¥ÅÑHÉTÒ1ƒô¶¦ç^5‘+纫ðayJ¯0o†í:¥#ó÷ÐaÿÝl5 àN-iLzk×G4ò`ÇÏÇ va³2ÊÃûK3úÊqÖQAnÔÉj³zûÁ‡Œ|œdJ(¦/_U†è>ÂoQ5Iâþ _ )ƒØªH(4ÉnZ[×Në6ÿÛæÓY—! ¢Š‘•­ýêZ¾¶MO™°\¢*C³~¦¥ûÛ(u]7ñŽ–Ä‹À…¤Er>âEà8zoFzؼ]1I •;2Ú[šC¾´‹ª¦ƒ¼uú}ÇmÿFÜÓß#b9ÉËší µlÉÇ_CîE2×#ÿ±ÿ™[[Æï¯7‚ÌOKåkŒt©Ç¥ÎF{¹×ÚKd44°«8èNy:'¯íSÙ=ΫXç¾£Îh†î,ø\—K§=Y üñÈ¡ŽÕˆSoƒÇe`¶)²»@¸ú^ð’vªÛWµ»¬¾"–ðµ?ar¦,²Ýöt('¼»®å2~÷Pܼå¬îš–>'cÔR<¡TrM.h‰†‚p§;hD O¬¸ D’Ä+`u½ÚZÃÝø{ý¢µcé,Ôï£=§ÙÛÎå5O5cyEE±ÏJŒ|ЫèÏ6Ôñ:;QÈÁ=žù¨ãÎfN¿TWɔܲ>çhõLá_TnÌݶŸy—b½øý÷tô-áSÓˆyø Ï€wý9_Ä1"vÅ*Üë·4ä”396ÿ:ÀÝ8hÔGôB -âDVU9î o™8ñp–J€üù3u»ô·ólð+¯£Ð[tüÍÆX‘¥’Ÿëj>ýs‹FDÓµMŠ­²'C`ŠølBj˘~±9ãSÖµ“”ÈE用\ùó×-†Y¿ÉP*‘³æ@‘¢9ªÚdb¾ uly%Ø v ‡€¬k²¯.ëö¡þÒ|ûk‡öJëã€òùTvYo¦ã2>T&ò;W8Wb#góMq]Õ‘#žZO¼ë? >©Hs ÙÑzšY¯O;ºaûØ1I‘Î Æášø¦l³ãç$Ýõ­¦(ì'”ØLo¬È•â‘Ak–:ijs9 lC°Ê6f«{¨ø%ÜM·Ïø[µW`~‘wWtüð ZÉÖ"¿ŒƒìC‡%K¨•>Ù,×ÏS‹-$ÄX„¤Ì¦únøRrÊ¿ÓP@B ?„?Üô7õ#žó}Ë g¤œÛ!d˜æ}öc׌å,»jþ„¼˜M)«½–É`y0aO(ÝtÌé¤l#!=ƛǸÁ›L* ONÇ­©*T0°“ƒ†#¤‘ìøx.x} <“/$ãñN%IL<}@ˆða8à„9þd§vxù„ášïM]>ªÕ<ô +>˜ £/ |†ml½ºFd§%Z£Ò[d–LµûNM|:õZ7Í¿û_pÓ1á '™å?awžUëI…öŒ™ÞP7ƒjn­˜§šXéNõŽ…:›òþYë#s Ô‰gu*Ê'K#=ÎeW yV_ƒ2&_0 Iªäs‹ÕÛC?ìŽ$Ç øN…ì»+¸«õ.+½‘™¼ŠThœçÖPABèêûA}œ¿mv^óÀÁ n„÷C5˜yÊ V_Ñ'ÙN6Zsƒð¡¦QHݹ¡¤ò„€Heá-Ò&ÚÀãéÃ\á—W© š;Øþ ¯±î¨—ìÝFáü›MϸyN/È[¹tH[PYuR€¦Wë?}–'q.Ñ/4¾+]ÓªõÄõmÃ}ÖÃåÕni%ú°\‘v0 —²U0¦¯|«ˆZudSÕDX1„—ô SÇK¥Â›õ_·.”I¡Õ´·eÂí­.<‘ fDz9] s¼ ç8ôHÛ_ö¬4¿m»æošš½9—ó›ÄŒº¤¨ðÖqK}ŒòrœMwEÉ{¡åñ~ؤⳊهúÍsOÝ]mL9„°Z­L=ÈÇÔŸ†yœß¶™ëç7UbZÑ+ÏB¦áWF;bQÜlåzŒGváªúñƼ;}™v׬TíŸb×éqï=²r°À¶š§+>С«P`Îq†SÏdSåï«©„ ‚”‚bÒãxÓ\ÔF\í—Ûæ;Ã2˜^!Jw?¤d›”'Þ=eéÚ¢Ô =ÐÊ ï¡5!µ²&mVÈ:¾mxÜã¡¥ªŠw¢Ç 4`¨<â¹úÀ ÖB63­yFDùÚb·é~±.dyT«½Xë~2m(n¬ù‡h t… „gê´yEu£c`bSýYöÊ;‰Çð£´ö/% Md;§®Çòôô­§f`·‚ jâ¨eÖ¬+Hê1{¦ Òk]XÐ0àïrŠ@†ÅF̰ìXÛ¾áU t]ú㺽WÆùúx. : 襽$<hI&ô\ëî"®á¡:)ŽoU½-­7ªí“Œ,ñfïŒ{[[Ê 1½úïõ¬$ÏÔ\ƒhÅÇ‚g©Î'†ò"=&››_@ÄÑÒHiÄ®gÊEƒ†]˜b—¿ •‚&…¹[ž¾æ«¥·- éÊð–8ëê–2ó#zD~§ç§¬¥ÝrÁijb÷64å¬xdêURö¿”‚aaÙÒîrX³OÃù¢Ëé¹Û‡î‘’XÙÂ4å\;¤Òp£ýÐ÷Üá0ÉÏ”r[6¶á}<o••¢”Nö'¿„ŒKò†dŸ áQ X0b ð* †V‚±0+u¶A ²hTuCmüÉ_>I&vL£jmÒíû-!«Ï*·/… e¶ž|Ãÿ+¨ƒ/Ô[…#™ÉNý#yGeuž8€äæžUžiïIkšP­©ï.ì(ûGÍàSp4,ˆlE«â»âæ Ö—ZK7ÚÜ(‡itðüº˜WLrìEÞÞÆNÌßZÞŸ.ê¦ùÇ/ë«Wî_Xœ(?z¦3/¾“Ÿ–ß4·šF»þlÞhx¯–ŒÅ‘'IK¬¿ÿÃĦ‹Ú•ßoÐÔÃl^$Ä8w |ð–7=úÍ–YvÛ™óÜôd„Îy³*Èô¸~v%û å•üa`›ÄˆuܽéÌû„ZîùSÍÜMÀ7AÜT{èø2Õ°Ó5VL˜°nËeijڽ„p^Ú¨ÊF©ßcÔ<êÚÉa*-¨t7®puÁ­¢Ã…¢i36Gö)6SàÓŸº¢àTÔì#um/A1Õê®ÎŠ6 Qx~æcE’¶ Οÿdýf>X‰žÕ‹’–àŸäTàŒUc!ž0nû÷1Síù¼ú`c•¡÷ÿ9è:CœåžS}z ¢®¬ì›:|bcŽÇÞ¸0å>Ù'jOÞæcñ³:ÇuÿãhùÆÁƒë€,h÷õ¿»:Fˆ:z¥iKÑˀߢwJ;>ˆÉq\åõ›öÇÍO{zccÃ132•SïÌÞC4ãBHÒ(Ÿ.·t¯_]a6rˆ(U ZÆ¡ôçòpO&¤™Bîƒ^~x¼1fÝêö:8áVGŠDþuŠÄ¶ÕÑdòð'—bRxêÊ¢H°Ç๱ÊëÇöC]z­’a Lˆ¨0Ì!šÀTîaÓnè¶QÊŒ§V…ã’ÏX &¢pà\#,…ñ ¸««$ ïâýg$D>CÚUŽÍÓÙ•D¢¥ø÷`Ø-³¥”¹:f&àwõ¯Ë·pÌñÝ#ChrÊ!/@€»‡€´K*Üå´ä> Q+-¯ýÄ;GrÍx-â\ì²¥Iß1¨Ïñ–éÏÔóðcfìâ5kt÷Ck¥·­å5OÖÒÝ×°A§êÉÇŠ^˜ Ø>sÝóɲˆýSÏó*¦Ï“p¯TÑæ£×Y¼Õ+ŸÃlš/+Œ@f1â¶mäá®P)âD¹C\”v'™¶Ø%•¦•É¿°˜ßMÒ™g”éµÂÇb0|û ¥ Ä[´h@ój…\’½­‰´Ó3i[Œ~(ñ^}…Œ\~˜’oÈ‘:\S¯Ñ eYDTÀÉ”W&@ú%›'ã Ù×;ìÛì¤dþÆTÃKÊçUjy™;`ʳøãœÒÙ1ïVŠé¨“ù» Ív­f¶ûqúzëî?ÃÅá9ÐÊÆíUÎsà×,ÚžgÒŠ.0Ós„i$Îé8šõñL÷Q{ûyØc¾hë7¹ž-Ü*Nä”ĬbæY€ÖõΔ¬i…Á9îõ°I´Ž|K€ÇKTݨ"ƾ¢¯ J¦zµ­¶mmϵB’ÔÖ?¥7˜³;9äã7%p34H|Y¹w#ÕsÖZ¿Þ¢à.5Ô·Œ@›ãé¡Ð£d(Eç|åBL·æ0yä ÅÀø+)É+¸©€(>mì Q¶Ê}íð-!NSÙÞè›F?"z®Õþ€hôŒo¼9lzȨJ•1Üë“RÌãw ô ÃFDzÙ:&ºda?ß°Ê3yDp~yêê¡Ñ*òÄHÎq‡ëÅ¿ZãÝ-£¹\Ï·‰Y­û-¿õ~*8ëþjÈâPÅ×^ÎvÃÕ&ë{eßÞg]?ARâoD˜8ÚÐnîôc¿ñjw ecee+ªÃ°5$u#Ñþ`s‹ Š>±m“ôƒÏg HA‹[Ö·µÅ[$dgÙåB‹gp;@Áù²  ·xжA]ЇÃ9jùÁb9°²]Fôa;)>öÐÍråÕA¦ñëè’ËxbaÝ1›\)~3þ…úhR¥þp¦¡›Ã ¹š†,ìÎîˌǧX;™í‹ ç¯*ÅŸ°§Èo‡¬æOQý&¬vTxÖúUOíOÉÛ·ÏI¡ÇŠ0';` së½fžV%*á³þïø›âRŠ6\³Ñ|i9‰–SØ':Éܯ ÊÊ•bb~æÆf2GUnušÓ'<³l€åï:é[ÞÈ auËß.Á9jú³«”îB´˜J«õ$WD¢‡ ¸7‘mØ_a´q–ÄÔë F/°!N}gËMtýͲîŸÔAIf}JºÔ#±ž}NêM´GÈûÏY~C9 Qƒ$'ÚÓÖI‰•Bí’µ#Sºæ·£¬8•ê‹ÓMÄo"šßÿÚkþ‹k)Ÿ&ÝVi¾”yÉŽ!_~îõÃ7¬ÔOŽrc¹z‹­î¾IñN¡’‘7y³±ª»ðŠ\¢TÙz|² ´“.dí-%^ñ'õN·„nëâE]ôõm¯. ó·-ÀRãŸö#]˜œ‹˜ùƈb‘áÃf‘›¶KÝÇ0%«PÂ5IºC)ý­4‡ªþ÷¤mZ5]NÿØppJñ.Á‚˜¡',|¨inœéŽf x ¦¿`t|LÀ«%ôõí×¾žÈ¨½·É.ÔLÞg¾ÇüLÐ÷F¯'6pW¨¦€ëJø*¹«ØøR#¦Nh¸lî®vkP`1?ôÒcjjÛUª%råžE>„š îò±} ¸ÙºõsR¿rÞ¹>•kž+æt® }P_8‘„ªäÁ4¦rßxhä;žIå"sG8¶òvá¼\߈˜DgvÕ\ßÿûçI“ÞµádŒ)ë«yÿI#‰Øoî¡pH±ë'V®SX±%EÎE¯©ÿ4½.q'ò¥ºÀ³«…™êþ‡K‘±’ŒV}Åò÷På32:×nïj´ÈVwiÿ8ÀŸˆeºŸ²âŠQƒ¿·ü™åIãëts1ósû,¬…$˜n]{ÛögùKe²Ð4à 5X—©Ç¿4ï’úϵè¤xÔ~°^#â`#A¨TrÑ­îï29~ÜÀSv˜p ¾$º)ˆZ”£§1NÏ}cuò3׺X 9ßžŽ6hk`ßý­tž¦¥q‚sŠÞž«“”p@É…f€2;ÅN¼j1êOöRUç Ü©q!ošn2®­ÖŠÜçkøÿ'&îÄÍ ,Õò2ÀUMºÛ©³#_¤(öa3ÑÕù²ò;—K~ 9cò³Ä‡£i¯áeé¡ÊµCœÀtm_ÍâpšäÅ+hqM»yc±<ÕáÌ´ “9â¿y?ùÕÝe·Ó–,uP*Y4ÿîv0š¦¢zÉö܇ º…ûè—ÖâïlYmͤ?ÊE”âÿi×@äna°H/ù;Õäï«xlgÎAŠm:Äú¦Ê¦™÷€K-¾p‚¸¤^Åǘ&‘ (7ÿ?!k7ëi9g-°JGN°íž´½XÜí!ž³P±¿wäùô¥Šµ-4yŵ‰+«Ñ†öÕí­cQgTïi÷2[÷‘鈫¸k4íü7å«~Ü €UF¯¶€`O=87ªôMÐFÝÏa[·f)ÍËã.^<ÕiªßÞàÛ\ Ê6ÇÉvc™Î”í®_—“*)[îê&4"?•ñ~= ù4û²ÂÝ+r¨ÏÚc3<;nÊG飊I|å‘À“{h>ŽÇAPoÑœú}qMÿÁBÕ«TÈ[f Bƒ>×Eg:Î/©+ç<ûâñÓð.ÆÇšìinCêEóm5Ì·£œ»ãç] Þ–l),§JhŸ-E9(L„ܾ$Š™BñÍsÛ¶…´–¬AÙžOC.ë¶?ÀCiB…”˜¾¤±÷?€jóšB«EÀ™&:’é(Ub"B™ËÐÌ4óK»kÁ4ÑPßiÆñDî‰Åï(Üã§nQÞÙ|V‚’öØBti‰{£q.©M8_UZ5=_Z* aËl£ik€?û.öÈåx_3ŒÃ÷L ä™­ûYÔ™|zi”²ö/{ɰ‰àµÁŒ¹+áàóÕ?š ùJZ^°v=ÒÛž(%u.ÅL\²ª÷çÕžð#ºã?¹Ó[—Ó[V·"³?O³h?­vºµz†J <Z—¸Š^Ïóm ®‡ Dj¢ßmßÕîÿ”ÞƒÀ-{¾–V{wa3ôh‚”K}º*æà‡€ÖÁXP)‡\»’¶øa9ƒ^[40†lFIJvf@-€ÊFTêd,:£A)lÔ¿š:ãÝ+@rVŃ£HIDüQjÛ„NÒ&JeãñhhT±^å52ÜÓ >_ÿ²×<ææ‘I~ùŒp•iȾùkX“9à|Ä» S©>RD|ï›+£YÆ¢”ÆÕ–:N3/['Pôý[ÈšMßK@S«ËW¶ JœVn%¥'8¯S·èUî ¡¥ã"°ZùùA™– äBœÝ'6›ö¥ê«F{L³/vñ3j7;`õ턃´âb&‡Ôô5ÊáËKLj±ºÉBO4í°-À}¯B|‰AÑgÖ?Dq÷iå9—ÀS‘ÏõƒM‘fI0^>>¦––-ſދÀ_gµì°C—Ó¡ÉÖú#¤f$šôÇÅPà ãóDöG‰$Šx]„Æ"(Îܬô ¡ÖdcH ô]€«¬Sa¡û“yþaDJô•·0g"ô4D箕•#ÊK Ô4ϹkÝG¸F=U9¢¸;4ë¨lr«Ž‹#ÒVÉâ²hÁvòǯmÖ@jhn¶uW91î]’ð:Sq¥Í+ÐÉ“ð7!œ6°;®ž5›þó¢ê¤¨#UÛU‚ øúß¾ñC‚G–á®l09\i¶ç ¾¤Á¹f'©´¹»Þë«À~j‹o1Èl(‚¬T–“W©žz e˲(AÚŠk…0ëxÚ„ì[Y‚|·®”b(%l¸´]ÆÐýR­Ä¦p)¹V$2àˆpZÙI4I±ºGêz¿Li›"£ d1¶Àùô4k¦'JÅ×k&5¬Ö`%‡Ž"¾éeNNǬtŸþùè¨ËZ:[›¹VdëE>òñ{-%VšT‚h,hæaÞJ&)SŠóÈ·6¬…å¨k!Éè»·DÛl#×èz÷E-rìI Æu °l;xY6}Mqø>’ – ˆAqfQµ: B¡¢êv¥ž•Á ›uP²9è]ñ•âŸoÔ€|²…¸…gmó¦pÔgçgE=÷À,Ð<åë>6- žz¹ÞPMZuã‚nÕ–!Q½•5~s1°J¢´Âin™pÄ8Yêt ‹^ƒÅoØœ£îV»hGVÓëT‚W»L'x÷i»ü^¢õc¶Ë Bö P«-V{÷;¢™»àAÔÖfCœ¨Ùs¿åŸªOázýÓrCéQ´ñJK0/mªK@5f*ÑU.i¦ "ß-)•ŽGZªjšg/0¨Í£6üžŽ‡êï"ÑæD#Ï£-§Cå™:;¬ $Â2ái ¯íýØ8Ô;ªðºÎH2i S ThAÑËi'fjvYìÂ0òüFÌ¿k.z0Mø‚EÙPS`p–«¾r mÖó…ÒP“2ŸҊ}î›Á=éáÛµ+Yp‡–>WŒEàQ ߺEŠqÔi_AæTâI!d"BjTˆö~š,ðø"ª¦ƒw<&%‹Üå5—ÁÊîÕBƒ|ÔºùGPš›ð½¸ƒíª­ºõH†Òa8Rã¸ñ%.9?ººHt™hƒAtŠ˜1bƒµhFYì6?šEáöŸ¿µ&¯¶l&'”ÚžÌJƒ—ú¦âa0# á—ºèÿ ØVŽL4Àg€RÇ;N›Qh9ÂM3½ Y Kg¼‘­íâ"“ÇÝ\‚=-ºNšÞÑ­D2ZÇÖMÌ ¡…·ee–„›ÅfhÔ,4Ad^OÌ’ÿj•) ³øþ–ž)W™/œû²w êô´~Çü-Ë ä kТ’‹˜@-Ì‚# 4™Äã}63åµní…êýø‚ ½¢2€>qùd]¥•Œˆ¡9ޔ˪n¹Y¾%ñµ9¿ÜÁk%=E-ꞟ}­ŸÐô"jç©Y¶_Ð}eÙßj+\häGPµó7'õAuµØsþ9>æ›Ìžø>L쾬%US‹.ÜBŠ«=>²±³Î8{>t{:§äùúâ†}ç¢ðœpY`ÇÅ×%ä …£þ~H×7Kó%$àÙW×öSÙâöÇý5´¢›¯5õfÇ•õ7c€Lºìu(×!Ôàæ—£È6DzìzONÈV¨h¿Õe[¯­ lšvUõæ«\ú ì %µVwCg š-I@9¶Ìè×ìPþù€˜122ܘȼ´‘>Þ1Á’^CZ´´‹È˜{âß·“hHÀ’r ãlä*>ÝÈaw>´#V ‡r=Õ76Ö»‹þ[ÀÞ‰ÍWæ[JÝ™Ò2ç,š×¿üëYjQ){ôúÓëpHåѱʕ$Eª!¹Ê‡O!¡’x2– Ÿò)èšFÓ.g\¢ÏÍ·/ÐKœÜüC)5…r73±Hd£HEý›…yÚ¤÷qj~Ûk»Î ëñxƒªL¶ê}·ûVöºÂE¬Êý¯5fï^ÂcÊJ‡|(Æ©yJˆ HF¥ÕR ¾ç‰ïÔˆTK{/5q[|%öú}ÜÀÂ's8‡¦Ž³’-üT7uŠbðì¥!ýÏ(‹ø™;ÍØxÌï9óÙhç>ó­ìeë¡„ÚM"Ì'Zo¸Î&kËBAÌxXþŸ~ÉZ6¦%.¦úò ÿ•[Ï|]Aƒõ[–çUØÑÑ…†º^ É ~ßI”PëÿÛ%Ï #´@[< ß;Þpe—[pÍ­0S»*Ú¬xåwi™Æä¤Ø-’íõ+þ/•ÓªÂîfCãoæ\ü8º#L4yàPÉþ¨áï”Gx’Eƒ±£1Û›&4QTlª^vÄ~¬õ 1³´WÌ\_ÛÇn¤Z¦k¨6æçg$—ŽàÏ®>®¯j㘦3»Û¢$_+<«™‰ºQsyi—ZañØWdk*üŒ6 îЭ/‚sLê€:^&LÏ?÷—l4]üBvÿ@Ä'<ØµÆ W6­²+‚‚dK$ÎUbÊi#€/ô­{dç#1!­½~<üü©Úäâ|9Û³Ê7OSF(~:– 3éœ[ú5ɼ×à¢ØfÚúG1¥€LL©Ö<&ÓE<ôУ­`ÝÊáM»–I¢1˜Xø¨’g­ qÁŽj†;`êyQ#³_ \ó/ÿ¨C[:bnu^B7ÓöÑ?¹3Ø?Åo‹óa›è½¹?H¦áÞ o\S\¡ ÕÑšذp­t…ÎoVÈÐ>#ºèˆ[˶% ã›d`Hh+6¿ _§N¾œ%ㄉÚji3»ÕoH¶‘ ›ZÛà‰$ß™[ŸªFVûFus”é&¹e dßaˆõÍäî0ø•ª)udž¬å¢¹ óßC¼œ¸TnÖÐ/"H*Eíÿôøb•Çêá#R0ÀKI S¢½xðÕ‡LIn,Oáó ˜§\óÒ܉>МZ{’¶ðîÑÈêIjRÇIþꔕåL“9ÅÃV ¬#~âÁ|xƵé'5¸§×Ãø\¹2Å,]{\×c–½´aQÅbó›h”gÿ£Có»J;cxÈoƒ«š¯ñ·²„äoMoù °ÌI¦ïDln æ\±úbW[J( A\ü±þ;-e–äÉônl­©ÿªuþ!‡5Lža¸BÀwVK³Ô_§i-= ~t!‡†HÁ=G#xƹ9UbIìé‘ [„¦3È¥ó„´‘Š°8jfŒÚ݆ù½œ‚*btt)U¨ŸäçDWñ*Ñ»šahÁ‰;v™­°R9¯V ž!÷Éa A ×S—÷üÊ4{†)ÝΞ†J³ѵDù‹âyy%“ýžÎ†r õ(K>M>™"«§'ÊÔ¢ÃÀ·(E]kWêN8hÍŸ šD@yÂg¹zÚt4s–ØIòÉNã‚ [ð ×áê¢Rµ Ot¾3æ@7ZœªRE¢‰y}7ÁZ`°qøP»‘m3'´‘$Íí)¸bgÆc]vªþèE-UKO‹aüvç’ý⪠•JßÚ­îß'W‹-"ˆô_ÕÍ(žÿÒ•,:)ïÁܯÄÒ‘›âMíŽó–s:äu.^é äÐÛ±X‹ðccX^âFpÉ´E6÷Q[)Qýp ˆ{ê³"åjé5n¥µ¼³jëîϯ»±x²T@„b’›±BßÜ„H:a£Úøc*µªO_±± ¹9 VÉ91aÃZ|Ä£òË)ÁfY#\øèº¸y]ø´Õ-æÉ›2îêÆÂØŽ·–¶Â2Zq<“ÝÈÊ'<ˆÂ?(õY©ÿ>©ô…ÔéìíÛGäŸ'å’p!³›£>ß¡§“°ÈOõ¢/QÁ+°²K‰ß¤´M†g%9ºTØ¿ûj(´n»ˆ– ­Li‹ 멦‘ë\úW”í­¬ù`*h[¢£‘ÕÃvŠ®]LöäšYÿÒ&&~c0çÔ ¢S)é©$PÓ^¬›ìäæˆ#Ú8݃Fß2þçn#¥Ø‹aOB£û* é×,Ã8®Òô>Ì«†— zªÄÆÿîô¨V¯ýÇ|~¼¿)“’0oØâñIšãœrôÖ6 2™ã.¹ ô[Fâáø²I.+ù¢ÌösÜñpqCÎs,*‰-ÆdxQ´RX°K· Л'Ëæ¯,$«Q—X h±¢²c‚Û½µŽo1w¸Ä6õí#܉+ÔEÔ¨îØQÃ[(,¶úwæoÝkB»@WJ[0`u®Â*[G„t;Š¿5& øX“Ì©ÆÑø”p-§ÿv^„y6zEÐA'±zRtÈ©]Ž+«ôiÏœÎ?¯@9‹Ö–@¾ÃvlF#ƒ)D„²•ùð@]zndÝö¤’y‡Îßz©vX¥®' ÿP©£Žs{Æ_Ü\ÀØ¥U¼‡{j¬EU9,Úè+­ÜÌ£Jš!—|HOšHˆèi<£B´yN‚A¸˜¦iÇe:Œ=ç¤3—Ù;ak†vÝDµ§ÝL@®ùzê PÊtSù¸€Lµ÷'9€ÓâA,¯¡tå³9éˆhX-.fŽ‚„vóhѽÿmªåÆÓá²D/ž¯;¬ .Ô!ë58^’šªªE﨎“‰|QOËGÅ=‡ï¥œSóÆÓq‡ë?|«Mì> éS5Kq~{ŽáQ‚òöVÔºÉAN¤Q ÇIͦBw;â¢L¯îé6ßázíd-Yx©‚B ¦E «i*Ð ›d‰ ™Êïî^²Ša°'{Î*wô6°9p°W5Tôæ±ÍÖ¨4D>Å…Rï„ôèy7m.‰g <ÄÓ÷öA‰Ž¡•'{Ÿ7Dksß„ *ü@7õ'¿¤Mˆ,© iœÂÿ¨‰;}¥69BΣ€×œê}Ø9dfOºU B¬_ƒÊ“Z¬â?pÜ2 Z%ª‚w§’~ªrÁzÞ«RõH5GU ¬µ7{¥±´¼S&pÙøò‹_Ň'k)ÿ¢ œ œÓo&b¹Ú°mØâGYǤ}íÍß´’þ‡v˜c¦\CØ.ùA?ŸC˹wzZüZË×8…²c5á)¨C Dgß&¾^±Šq³P)Û–²¥.eA*?Š]hE©]ûm7JàgX².ÿ¢n;—Q›k>[ÈöA”Gþÿ4€ÁübdQâ†p’.s”û·gÈÞÀ– ‚!µÕ|0_$‹Gke€2:íW‘û®dÛÖ`Èq¼ø&`Ãm¾Ï¡ ò©|˜ZZR¼Ð£šî’²xÊ'¶»?*ܽL³r§]aXò€Oófß÷3ÔùM-p=íw“?“ºHS_ºé9zs³g(‘°Q{êm,¯i’K_\ÖKöŸó÷…ôVLƒ'hwÍ,F¥\gŽÙbå‰?ÿéE—%¸ñ€ú…XÀÃì®qÀUý›%›½õ”5uëð.ÇF²Ð¸éÍ%/P)O(Ÿê’õЙêÔ wŒ›ž ©W[αþëyç³L,å½CUªПL 8$˜ ûÍd$ÚÅ=Ñþ.°]6}íBUvµ1=œº)'î¶s?Eިú_à^RcPÕt¬­†K‡TL€¶ ùŸõ¹ÉO¶¸‘Ï0jË'Û}Ÿ?…Oª;=gÈæ  a[õâµß㙞,TŽØ^{wñ¸ iǼ(yôƒB³ø y ëIH_ï™dü…Gýt©ô {NКšâä0tˆrC–sM¡Â&óaN–e)œç©òB¼°¾}û[U¼ºé”0,ÒÜô³4‚B4ŠéIŽÏI7ɸ-xí í3e}@z®kNÏê¯PžôK)]Dø?<•Ö-´ª²•myòB34f&—j7öÛ‚ˆcm«\P'HÐ:× ¬?¼ ­~ùÅs÷êR>éœxãë ç¸ZbжûPÍu¤Ö&‰ëø#¿1%ìº`ƒ—'þoŠïYi<‡"± G]YñÝÈ!¹+ñ¢5‘z’ #‹|h÷XÒ-ì;°ù· “lOË”!,£Å ùR†[jíƒïŒ/ˆ' Ûå–úìÄ/’¨É%%ŪzŒq{ª³DFp¸wqü›léi¡ºî!ð …Ñ7A¨TQ¥-„™×qh*4m~G]ò \šVzÏï:¡A õ=svIÁþæöj9Õfc¯ÔÔ§¹fK†ýâÎèJ4"ú`'ÉyÚ§ªf[($ÀK LcËœ±]ëx‡œ,ùaœùiúzà’#%ôÓgø"«O~_²ê2Áú¸ÿå—zÉ,ÚCxcFþ{êæVgp7¢èŽâþz›Ã57°wòªùÙ»g§nrøwè ¢efsTਯ(ûï´çZ%© ¦¤TKIˆݰ-ªK éå Ë›_k¡ŒaL±—[62wµ ¡¼¿f©°Ë(ôlû¶‚á,â®ûà(æ¿°Ãjž’^ø>I¨EGÎÞ¥9° fDì.<$<vu!ªêr·µx4ã Ù…ÜgzKvöŒLRß 1š”>ô½Ë„âb%çë±êºÙà1nÿŒtj÷ìnW’Ä3iþ2×6˜1*¤!}…9g¯^žBäU]†¹VÇe\÷ˆåþ#™H\æH U#ÔTŸÁN‰¿Ì8¶“µî7.[€ÇA¾dcw@àxÅ-ó ^…Á†ÖY—dØ×ª°Oç§HXy?"¢(%ä±ÁQ;K‘I•sØœðÅ¢qÛÃp0?G½³©äáw‘ÿ‰| ñŒKœ6FË,¬ÎÛôV˜íZeý½'šœôÚ Oâ&§û{¦æ1ã®»´I÷0õƒFWæ¿mM³µH¯&¸²,ã†+ @ÇŠ<è]嬣à ë~³ŸdÂÐeº]Ƀ·¼Tž¸Ïö_ÒuÜXÖ9áä@r”íæB¾VlÁÿé‹éþ—e¸_¶iª{ÕqÒ|º“Šs1‚n#NrñŸ=÷LÏóð€XªÙî=¼¹]»^É MŒì7x~Æ ä6Ð BAÅE—‚§”aÞ·*x.•š®lpFÃZvÿá¼üûŒ*k0°Gf¶¿ê¦ÎÑ– TnVBþÜÔƒ×ÛÍ[¸³£†4•KR–ÄMN°wÅ6YK%?¸€8j¾7ïr +Ž¿ßã¦uÙ²Ç /¤"J%2ÓP‚C4Þ‰C,¦µ>!’d¶h©1K“óÕùÃì¶²½p©z»`úŸ!·N—Ž:S«¡»XÁÐû¼ãýâžY‡=D´Y²‡Ê®­NŽ 27¹`ý3 A;n—ÞÄ“âÞ?*4Jd"•â“{ƒí:MÕ]]8PÄ_Ÿ·rÏøI=ª_!¦Lmûú­(OytwÂd‚Y&—AZÕajúÓ:‡F ]»"!ºÌQsÌÑJ«”¸Ê¥¿T9xá¸\¼z†6Ÿ}G#D6=ûŽŽ(׿])lCQœ«¢ÞE6KT˜dü±ƒÄÂÓ§—äIïdpwb]¢çld}:‘鯭|ÔŠAT.õ" h[Û:ØIµÚÕý†ÁF Ýué|`–<Á8ãOm¨¾? bòÍaƒ©¼øh±wñÇ'”Ù™ _È›êØ\Pþ6Pk<#öƒ¶Í“Iò ò•‚­CY_—•Âö%ÐòBoöF+ˆ¤\ž¤ÙC³M°°Wõ¤lE›ù?ŽÁÝu_:˜«óÀB›Rû×iunDj9F Ô&¼Ä×Å–ë|ÇúUÝg]©à¾ZM  œ ÐUtxëç_ڧѹY*FçÆ2Ã;5üæÔU5> ÚÿQÙ¦´»ÊL ½ä:oä6‹rr\<‹ƒ°A_5cd]Ý݇ݽc.ÊçÛz~¹/¢S“Âö\Ëp-8’½Ì|'‹Ì¹3šTïxOoÊϪº¢m6@è*úÞ4‡’É?aA£1n(zê+ze™‹{‰ò5ç7”íHÄUMÛ‡ÈÆÈã1’hfîéõn‹/Æ\ÜC~vIlÑ?‘¾Ëê0N•͘’ù”ë@­ y‹5 ºÕ‡3)²J(:% ©÷RlN‡’ôZ*#Kª> {®`›§\çCäp‹ñæÛ°•}sV—Û-íÊf/ü/æ³´@|!ǘú§gWs¬—P{l*½eEºdñê÷û,EÞýí/Iw]lÔ#ÜþoJ+iåûü¬{·|å=õ<%;ÐÂììîg! ÖpÓêpzð7ËÑ‘¦ð)GðOú(N©n•Wlz*%A7Õ©Ò*8Ílíä‹ÓFP\ @wÁÍpçH: +~CÕœ°¢Ê¨§¦•wNs^ý³W ¶âIîÜÝÁ‰|gž1*DõÚ¡ÈÚ­|žf± ‘ŸÆùlVœïñwŸ+d›zÿzù!»óH×.– u¸D —·g|Bÿ›gŸ ÒvWJ E ´´+øÙ°À'5“t#~Á4oKV‘öN7bBv}ó4—8ÙR0o_›KD Á.–NÂûÇŽ\Y\¡0¨‡DZæÄ\ß³þZ²X )ö|VõfԵؘä³Õ‰¾3™W¨Æìô£È pGBæaöOÊèv\DÉÏaÇ.hiû= SDsèÆcSq"¢³÷Å?ºþþ }˜ž9ç(ÎY óˬŒZ.ø³ãºö· t`9žòØÌÿæ¨aÜ/ æJJWwêÖÚ“sG0Ãâaïº6W.C°Îž†)a鱦zÜñùÒI¢Gß¹ÔòÜC4ÇkHäÀ˜Dk”] Ò]ºüÉýfZ˜^|:ÌhÞ[h™§VÓÆY±„ÆlŠ2 íIý 'þƼp.Ø€¾&ð˜sYÍ'íî‘tù°\±áÇFçHÙýO>$¿]–ãíƒr¿:p‡£‰V¨¡å–ØçO88žð³ál3ΧÈÅñEõf;a©ÞP-6”yà-Ðß?ÊÊ{c0ËœOAóâñÚÏÓuuù ÅÜŠ6»cÎr•‡‹ä²ì•þ˜+!|_z9(ý+Ñ×P"ñ»­ÌäDßâ_…¡rÇÇŠOü>ÀsfZ‘l žZgŸ4ã_¬}lw­B—,P …ÃåW¨6^‹AßÞþ á͸eÍÿÙ',·Ù¯Žé\î¡×†Ã®àUÙOc¥7q¼Ó³÷/ âÆÒÞ¦îsbØ\Çœˆ¹Ü­Ê%§ Î#´©¬cïõg™d©v9—ÂL~V qodÀý›Fa(]S¼çPÍbåk¿5ÒWê*!Is#ÒÃ-k·fž ÏÐ…20PO“´èº:om@‹*}QŠá_B µ¸ù§›KpÃý_î–ãtgølÓíEX¦,ú0‰Z”{$þ,CÅ„PÇ…Yñ‡[†6I3½ZyãÞâ›^þÚ8’ÒDH¬Õ¨=¼¬tÏãùЍé™_Óú¯¤yÉIUž @»„$ªðœî´!; (¨68ëÐo!bFFV›îÞ((ã{äDbñÂâ~{ò}vu“ˆùÛStç7íCb2À‚ôvÝh¹´¬E.¥EütDŒÀZò ÆtV ËhaØ3€@ót˜ý~@®©ÜH¬{–:ÞF°lŸX{?›u¤w]@ÚGñÁÝ ÐÏ(Ü£Ê2T»¡[xæ @ÔDĤÂþ†éËèH?ñh† 6«ÿß6èD_´7 †‹ y·\ä¹qúSç;6†Éru0êöiDÌK~\HU@Wýÿ°*yçq:oÁHTΜ=E'÷½œb¹'Á¤ØÊóã£=&/˼ýåí¹ m%®§@* ²æÐrÿ! ܹˆ>(e¯+,=…¤gN‹Phð€,uVM«ÆØ¦^!¦©ÿnŽV¢ÄBïì)8»¦õ_iTn'”u®Y,«&¦„^;`³]\®A°ÿ¼:‘Û®x77G(\ÄÎ ÙÛ:øí˜ F@ÆtïÆ1MÉ®£šÉ±> ŽÞ2uÀY·œW?’Dï¬æøã„ D9iŒq§»ä5c'.âº÷ëÇaLúþ@ôÛ¾ ëñ)j¿Ê^ƒï÷„#h£ò:»*{œBÕãÙ?¡àAÿD)¥dh#’㉩–ä/¸ بQ¯‡ʹ ûºRG8·(èÆúƒ8k!Þž–ÝJËR-ÚS#:ŒÝ‡|L[=”e|Û• 2) kœ7@/¥zHáŠåÖ5D*Ç4ü½è,°ˆ!ßÿ2œ¥CIíä1¢´GÔøÑYDUyîn‘çhkDJí³º”d ¶‡¥AVàVe&™œßšíº—º–—@«À7+ÓbqÕtå=Ú‹¾™>Œ`üJÙŒP‚v—*‡•D'íòó0Ê]¢0›œ¯Ö+ƒ­‹Û ÆÐ àÇ—è‰Rh,íúxECŽj‘õäíT&vpà¥h7_æÕúp3ubB~ДšÊ:áøeTDÖñ±i6Êé K>—ºSÈR¤v»;ÌßÂé†!#R¬4w^ã%ƒ:?nUÍÏ(•™I1–~¿hæˆM̆\Ì[%•Ûæ©VM‰Í !P­ÛzÆÊzp…ª¼mÞþ;¤ÈÉ®:/ˆrƪ2´Ä=­Xðõß/uFüå|ߺ·ú5 …“ûüÙ/R®Qr±•ôL}å–ü“‡ººQòÒ²ÒŠ»#/ùoVwh•:äk¢° üe)äØÇEÍöqJþRß E+y‹âr%ï-c{ã(×›‘Aà¤6³¨„ËÄß}¬â9£ê×ΉØ7kÃâjaý5ó_ǘ0^(òF;ÄnÞ[ö—6™3.Ç×­ÓßÚOœ–—ør±§<&‘“Ã$Él•ÆtJ¿e%Ȳs3´W¹>¦y¦m¶ ¦¾ÑYŒ}{½#ÒH´?ß' X\þ_“1T—ëŽ0áKÄœJ3AÄ&KÅÉØR ôâÔöD¬mâw–gð„:,Ð ÂiW»ß¾ÚLQ/üxu¼gqÌ•)Q»÷u0c“Á¾¶i¥xs±`b"=aÍͦtø°Á£$a%Å-eVgHP¾*Š5Õ ¦Ý×%é¢Èq´2^Ûr#LIfê´6,„AÔ¯IýFÃ!F=ã㤿¿K 4Ž¿¥±én©ÝUl¿:ˆ$ e9^Ëj·ö ÜØ¡²`W( LúNpÙNƳSÆ]\U½Ép¯TƒñIÁ=.:¿åÍLØþkÁIØƒŠ¥eG}’Q Æ¥ÎIAÔá…iæ õ¤,- ¼Þå]YŽgÃ"‡gܯ‹»Ü‚>[¨ï»5ä’ ×ÙK®`°¿:±ˆ"0µŠWæ"F ž[!‘ÖàÜP6ÂøTSfñ뢋O=î|¬¾ñ˶O#5UÐßGÒ¸w3*\ï/ÉBmµÇ“„ôÕÄÉú-ÉîãÈc9rñ·…Mûãoÿ$ÀMéô úµÞznw„c‹N^í6Èù*­„"b‡¯¥|eìØB/¤+ó öT…ÝCè¼yœ…®…ílò—Dù¸m‹í%xéeòá1sÊ ½AûlÊp›Á½Éó"e;ÊA‹A©èÕÀZÔ^íÙñçro[£0b¹=×ÝÄRs˃|£XþÿtÏ‘ ¾M‡ÁïêËH›lnËxå]ç¥ssC…œ„~pîIH¢x«¤{ÅK]!›'ÁôäL zÝbK§ýáá'<÷DøîØ*~qnƒ4·á> ‹kéꉬ²~e¢kF1è¢Hû>ýBKY˜RÈC•Zй?’©GécEöÈÅ%¤*£ À©éÒhkG:Ę)a_z$uÄgœJ:ä̱/‘§"Mç×ûy·¾ðvSó0Xf2b‰c)YK‡ò©„cÈ-3Œ)ié¦åg®†P®„I5†s×t@˜ã@…û·ÃÞÍõ:žX3J9àCâdߨ›woâ” Â#h"Û|­˜œ}óð6€ °Å…%ËøV„³fÓZ¼–üT;žXR†ñ„5 _?È—•[bðÿ¾¬3Ü:Ybjükñ¸è\Ï Þë¶qIÊ–ðêpÍìÍV hû7ß<;æcJŸö{öÿÑŠ¶x4´ ÄúEˆ– ˆ£-ä§í+¸ã’ÊŸÙÜp:o1¯}‰|­XvSØ ;¡*觹ꮅ›ÜSæÄIjs¹+JRø;#¥-Ï£ôŒ oû å=`e¬U‰b݃k V¤×"IV–¥³’8CpP„Çè”Ã@˜Sr|½>QŽ‚^7p„]ÀMê{ÖÈI …›Ôu›hÕˆÁ9Ôq©p*bfÆÞ˜¡zÄP®Ó[Ìù5„yîkÀcU@Yèõ‚Ÿèš!ÒaªÂTyÜÑps¾4½þàUä÷„ë ÔËò„¢è®õѤ÷žâwœ­œC ¿+šVêvau—6uénGË=fiLñ¡~y˜ø\m‰¥ +ê¬Q}Nsn‰ÃÍá×Þ: h±ˆ$F|X‡ºÔ¤Œäh>Òqº÷û]GùõX‘ T¼t‡)€©´û(¿¾²Ýô9¸zj°ã.™Ö®´{ÞN9šG€Tb¸2'Lºd€DÀy° ø€ý§Õ)PN_]c*`Q“1«Z0ÇOÓ¢Ðv_2Ø ·VÅ÷Må‘iÈÊ5úò?§ÕpÕañe&Ì9Ø¡ – d©¬ôû_­Â>äÐã@û‘¼Þåc¥½`ljÎt­93çXÓI¹£?•Ü÷çæJBÝŽ˜¿LÙú=ÂTçú ÒF*·æI}íË%¾'ŸÍBY3—“¤½ƒÇ­ÇoÔÀ¢·j×(¦ÏˆÞRß$Ÿb;yGAS ™ƒèUçºwãwÖoÝüØûÚJA)ÂZœ‹ ƒÔÔöF˜ lšNÃ7°ðž Š"Z`åö)´$¨¸{|HÎõÀê)€²  je/¦UzbIy¹"‘rjÔEDÕ™xÄÍ´ƒ‹M$y`‡œÝ½fÔBæ?ƒ›qX_†SÄ®@:ú9г<¶ôxYÂæö^Å´[ÿ`mIáYø`®åTÕx¤¼5݈? ‹“ùŒ±(PÑvkÙÑ»[f)^—Ù¬¿”W¾ý‚ª¦]¿Ñ:]Ë|I?‘z9›ð³#÷1ÝšŒ?™fp-B%¿™¸^ÄŸ+)ü0Ëo[4³ë9°Îi¹¢¥ß~ä’uâL6v·m†ìÀ&)C]ˆ,k’Æ¢IâxfÚKE5æ#Fœã™“À§>\2ljb¸a{+yê®Ì/¹N]å•Sþum¹´mOi‹DÿQÒ¨=Z‚'ƒÇ‘+/™u+SïúKóä Vd‡¥ v´ MK aÌzQ‡¦K\Šd|«1ZPŸp+2d '¸zÆÌœÛ@'Ìè­a2Q}€QMÚÍj¨…ÌG¼C íwÕ o¡ÖDò={ƒå‚TMªÉ%Qµa} 'K t´1¯¤ß¥îS›4\Z:[qT±x åü x”s¦Ö0¸ˆ•Ë8\±²’@EŽòóz¨+“äŸ~Ùd Áeíh°d68º#¼xˆð†)àåDtçØ°)Q ö}…”#‹ûRÔÈ/ÁÚ°(‹+’Ú³[²LxbãÄ@Ô.s$Ö׌C©¿kÔ£™¨E€bª(L'fֶɲ²ù|ïǽ@zT~Ë.g`jKB"•P"mÕ@‡Yi‰VTÀ _ë¾xL„ÂðoÄÜã|xu ~W",‡1ÇÆ€²á¸`Q­#½“»ƒ—ì{q0œÛ¨++¿Å[ÀhõIYbÉœVK¤Gäö8³Ý ÿN{ï¤IñAÛžQ€MαFš‚ý+§Ö¼CÅÂüCª'R&þûÈ&ì Jº~ÊŠõeªV9.=. däPcjˆ¼Ãc¤rÙ´Ö}3cQ¥(¸Áe·Ä7–±Wð V DieÈê\<É¡r1£D5ÂxžòˆksªPéŠx½ I#™y±t¸)TÜ|7ŠÂ12Ëê,*›<*Ÿ0þÖkÙ)‘#%‰¢ÎºœïŽšáhf”‘įŒ„ý¤7nív0 =îb­ûbËèÞsYAìд ãã“a©ZDön´â£ŠTÀV} (-D¿:žs·) ßJ"¨Žøçç›Á4–ôå®Þ^:Ê<>ìõ¾m߫̆TÈT~q%´ä IÚ—á.ì¼ ~{ ’¹›xÁ©²*“8g ;66ð‘¾û%ªâGŠ—½äÖ^w~uO`[=xL~‹À¹IÍÛD}UÖ¤xÀP–œ'ËZUôí‘?Çþ¢œ•#V›ïq¼[Éâצ¢Ü›µqmøÞbÞ™wÚ6á+µI·¨Ðßð2[üA“Qª”˜dfÆ9º·dûFi(÷å¤ñ-ro¯î2p´è²Å´•6Ÿ8tóÃþÙö{«d¥_ðÄ2sý8QpÝòNn±@*öµjY7<‹ûN¥ƒDS+N®Æ^Tšt¨Ê(…†Q£Œ8’O)™!‘]ß.2Ë-wæ“{ ‚Z0øMë0cØß¾y0צ¨æ§ËÝ‘ÑQTû­øƒ“KÎÇ•^ó5óÍCmZºÞß̇Ë\¹zv WEe¨ÄJÄs] ?Jй¡›ì 2Ó.GŒj4/_\WM?À‚¸Vîö~Z~ç–Ú»Ò\R¹œ§±Çÿ„¶¨ð ­¸Çýèp6Užor±ýé¹|Õ{rcª[ùÌí¥FÄØìtÔ”>Þ#²Aå.ðâÁ—8'!-í–/ˆ=!SÒ>Y¡Yž÷:@ê36ÖF‚,:ìŠPÉï7˜çü]å,Cø.,Pîö1/Œ'z§t5Õg,%5‡m*F¨ÑàDiÆöK/Ý¥¨f¾ó¼QIz6Óà{Lpe»ÌßQ«&NßëšöWt“%•«b”ƒøsµ$¸ìVwnö)¨õÚj=Å3$ò1ëÀuv™¤8ÿ”iz"¸’ (UEqì¼Ml æn6¬ÀSLÊŠVehs£Ý s*¤OôOT+\R‰³áWÌ*\Ì£ÅV›qÉ0&[!Iy[¸"ÐôE±ëýšµ£ðžD<‡»ö6—VÁ£ö¦rxË¥vƒØ>Gç¥w=˜µÝѹYkõ¤„žÉ­ñl¤Zók ¦PFõcÜÙ“¼ äãd6m<=ª\ ã©nGAÑcu?¨£OÄùÇrf Jô!Æ¢˜d= ïr•#zW©ŒùhUß 1ì£\÷8Áå3É’'QäoùFDgËŸ?þ6°%BŒZ?‚ã€UÉ…U¨‘1úÔ±Ó¬¹ !ür+õ¼·ÍiJ²É¹T”}xŒÊë!}Bê›2ÔËRžŠù°>°†M°ªŒãðIÉ„ w5#lVH6lpŸ1õwÛÙoƒŸÜøR¡Ú G¢˜ø–jçhIþ´¥ÿ·^•rRúCïÀÀš²f£‹NÉ(ÏXp:‰`WF ¡øÖûÝoö%à½ð¡ÞãBâ¼{&\&ò .tÁ«!’QöªG”J±3NAm“ìq–â:â–çÄuß àá¤(peúºõŸç• °%YZáï(GCG§Òw–#º½®ÜP¶1êBš,—C]éBV]¨Ÿ?Å]í!½7@©e‚(¡Ü½oȃë#…ƒ‹)áÏŽ_1^…éâ5 ËѯâÀ]œžeO?ÎCž«ëä’Þ[´çѵ¢‚IbWLì×m´Û+ukrø=~‰XBÚÜr+¾þé“uö™s»ŸzC‘O„*E}}%Õ$k|ΙprÚÿÒÜK®>iˆ©WE$‡&¿åkÚ’Þ‹|ª5Ø6Sú²±åwîÁÆé*„(K)è -Š­ÿO_x£Oá5Í• "Q­° ÓǧŒ‰}òxTäš{`|âû"4_$Ñ]ò£MÊïËg¢ö°ØÔÝÝÃãˆKì©‹©!jïŽó£XŠÏ Bh×$·èýäƒA™ÒZt/žB\ÖζÀëÄ×mMËâfø¡õUOtùšUs´œß5#†çïú¢Òæg‡+´'V6©€Yª9Yàè¿Ýj_⼩"ÐÔC*AMà W ØΘÝûá¡sÛxZ­L ÿ,úí%ë-Ý¥¹«§õë.…•Z2Ïk‡¦Æõ;€ö¿‹3˦)×°‹Qf•–å”Bjþüƒä¨fådd+ñ‰cÌ5õà°íTCäƒ;–kýÓ‚ÈRÇÎ;žì~3è=9|ý"(¯Æu1("Dü‡áíã<¿¾/qÅc÷²÷ÏW´¿ž¬sJaL—ç1·(Øì`lbÉ¥È3倴ŠË}õ-»)C±“¾ÿŽÞ›b„¶xh<‰4"ß%4Ãâ"2 (çârÁŒ¤åÐÖΪï=Ž@mô„IJ;÷bÖ…8\ <¿ Mù_L»cæHŒ ðs‹Ñü=‡ì²GÿdÕ“®*ÚÈšhG,–›ðñß"ÅŠqwÈ1çJ÷@^ºÔÖÛtù$áJ²ãeJ™P‰ÝµSóÚmXI°¡ý#!µÛˆé_3{Û“4ÖE*áw´Æa¯^f5vöoRL—%B +cŸOsaõÑa.eYóÕÙ!†uÿ@ #)Ù‹`Ìw‘mwenÀÝd^¤†eN l’s‘ÙDz±ÇúUô¿ç°ÚÉ,2 +Pî ‡ÀrêÚDÀ—ÔøþÕÝÙû¥ „ì÷B|½˜¾ÃCÛ1¦†0\&§Î d ÿ-ø¶£t÷Î÷¢ÑîØÏ v”Bôòý§HUr^æn£—§¼¼˜¦%Ÿ¬ôÉ–0nn2âÛú •e¶Ú°L‡„ÀÖAîìUïåÛÍ¢˜Ç} Ž#©~\ø-è^²Ó†ç”$•³•Ì´¸ 3ýNµ‡KtoIc£Š¯‰×b ¥±¾gƒë=Ÿþ/½ Yðã ˜.ð™­—äÿ;ø3‡ÁÛtDW*SD×î6µ ÀkiøV°¼ÖÈ1kT 0­¢­© ‘áf: +œ:Ð%a/+£&®­Sš>ƒ¢ïŒÊáVO-ïâóÓëBý˜8ɼï)D0$FµÐËVh ZP7ÐÉþ0Œ$†Ý§ÅzÕ«nj;² *{à”ÕfP~2¢ðr<³òÔäEŽå(cž½Ä®ñan›š­<;(>/vÐ:ž÷8t/°UkI÷÷½Nç>Íg—9YäðÒO2ËR*aÖj»@·,ç)Ć¥£diçú—´PHèn)˜²ZÚ»’È* Sæ¹{ pR’`l>”„w^ú±^سê(´R Qo«"b^ «j>0I1H¼¹VC Vb­¦Â%ˬnžZGtòƒù¢9ßI”´Ö˜|mqVù®~¥‘ìî /ŸôÖ6î–‘9–M#ðwSÐÕÙ·D;(©v,墩:°Nu kÞ1¨–êQþCp¨LbÓIÑ ë~E©Ì *ŠVuª‰'QfK:üáF‘L„¥-»=Ó>ÿ§Èn¡3šT o…ËPÝpÏH ž7jÔŒö­ÝÂÊŦx¥ËÀµ’[õ.„¨†eÏ#ýdô,K1W¶BYÇZ¶À 6™ÓHo6ØQ¸ýÓíC%uR‚uq`ÄÀÆþn’òKÏ‹7¼ÕÅÃíÃ2‰è4o6ª<Î\S*Dà©®3ö'}O«3OwãÌSá›cÉîÓ ’-ËüŸ”ÆæÉ‚•ã§0pehLª‡<+FF•l‡ñE{²à±DààJ4¯ ušh2 $¡${†!&ÿþV‰„:Úê;ÅÆcA¾f‡xý’Ûô¼Íš5‘y2š‚|ÞËC!;Z»¦K¶Èa£XkBÍ¢ÃÑF²=¸¦°àj=&\•‰W§‘‰ÃƒÐ¬þ܉ ÍÅ3€«þæ÷¾;gîÆ~R½»òÍ:ªz¢žÿÔ09ù ËÎe½ãTH9Î9¿kÅ«Tí-uý­ìz•5îlBìÀhSH2èpæð/¯æ]à À¾ŠH›Îhò¾-0 µ$ð9+X€­>ö¿ù÷Gå\Ö•«žFϪߜ³b|Lá’¹N½Š/y•çÝ„oD¬˜N1®WÝmê [AÊδº‡€uß´÷YmCz±±,b÷S’÷Ù¾môw*Hì#_A…òBÄÜàeÊìF×ÒW²¨Bb¶a¿Æ°ÙBÊjˆŽÂÌœ‚mÑ´Õ¡§‡-eA¦÷¶ª±Ê´Ü+È¡_ÿµ¬^d@&d/q‘Û¿_”Y”M-ù®¤-GWV5Ç”EÓ©Ó:aZ;­“Ò¡A0§™] „PµôNÙô8Ä~ÂW¡sÌ„ ^éÐ t×Q]¦+Þå†H€¥†_e}^k ó§2dš9››œÈZË‹o6¢Y½¶®ˆ‡ ²H‘P®©ðe¨ŽÜ¾æç”Bgx+Ø*p?ã¨Îm¦q˜8"Pbu!ô&FBÉ{Þª)çW;š.ùÅ4|†åÑÕ’ r…pR€/*E½%9bé–F8ÈÄEôØ$ \/“°zø“mEýs‘£“ÂÔ˜Áã} ˜†Ô`%ÏÊ&Ê`p"R=#È7$;€×fcÏ€È@ßJ9ÉÍ‚Àæsôy}”çœnm#³Oìø”Œbm× ŸêÇoO†¢’gþPW1¬­/E7Q—–âÛJð½‘:‘<ÂMÙJª ŒîônËj=´•uÆ!6dP\æyXQ˱?÷F™ÇJ„€Lq=îÓ2̵‡‰šæÚj_Eˆ ¯[Шþ°Äeµ wêvã¢ë w”s5¯ª§ ÒWf±¶~™Yœ—¯IaìÕ|mãã7hcPæ¿Ûô¾˜"øM98K-©^Øáv¬é@ÞD—'°¤:É£ÑLsŒ¹w†—Ò T¹Ã³97Ytª¾®k‹ãš¬‹ÝÝ$£abHyÛ²ó ´ °¼àÖ@¸ƒÐ«Qv‹‘¼Ö‘°s½1#ƒXöÀ8 P¥ð“ˆüm2jgímÁ7—ñ2ÓÚj°Ló=É\j”´Ó][ 9üÅëå}‹DCÓÀ,P á,Ùìo6ÀŒÏ…~ø¿ÿÞ( {Ç3ñ)±—žž;€Äm•]·zžŸo—|¿Ž"—¬žÔà¬êISÅK[Í„Êö1þ©åj¬µZý¼—°s{³¦açc2FhÌ+ûÄôñoÌÄáˆä1às‹x¾6l?õp#‡.‹{ê<÷w]I5ñoŸ‚öe-Õ÷5c/ʤhžf,šÈÑBÈ8bˆQ~"5žcg£w:ÍK2][ö 2áE¾@-l¬@hí‡(F©uå"Ý ¶7)Ç\Nv‚û ˆrÖ˜€ß€”쎉Í"þ/1Ë£€A…ctÎM«zEÞf¢o @¥Ú³Ÿ€@÷r G碟Ѐº6ÓéÓz¸ÔÑZðÌI>ӤÕ™ÜùùHYìN_÷؃yKŽ kï+©$t¸¶,}â¿Æ©¥99.bt#Å)V"c7²¸7\%Eߟ> Ûq¹¢ ýÏã߯¹¸Q$öÚ t^ऎ3“ø|2îë ¸——í°÷Ìú­XaÅÜP æYßBG3ÎýEåÕ/€3ŒCµÎðÔ·ô$ßó¤pðºë$ŽžFîJ‡§Ýžhº^Øî géúó»¦üÛRÆíàk"Õ𷥨"k•úÓìg;±§ ÕJß.Ë(ÀªéÄ´ê?EE!qVò$™û’:±]´ìeÓLÒÓ»õÃð;²\>7¤8Àc‘›Ç«M“û™ÊÒvû»Í›Tµ9ϯÇ¿ÞÇïËœ«²ã' 05 `—’ûdÖAW᜺NÙû?£« ¹d ¤IÖª¢éØkúoí@É{—¤×ßL£f!q^íñ~‘‰ ªO¡…ê÷ŽèßÜGèðƒ¡`¦25d=ÕÅ:¢ DÚJü‰[Q%¥²}FS~lWèif š{ý%üAw^µc§n€-òý;`éš¶þMŒúQ`Ëö¢õ± õ Þ %1xÛA°w"]cä@§#EÉ!c½"rM1Ÿ&"3OUÄ ~Rº‚œrõ÷ͤóÍ*š”ÔY¢Û ¶yêØ'¥wä‘+XcÄ—Íî÷IÄ †@`˜Ñ «& ŽŽÌ¨ž1Ú¦@âN.ãSàÍÇâRN.·™œ¿­k -‡JOÆæ×m,FC,'¡© †Èý¾êÆÄÎB„òsîÏgbËr…„R§qn›â:?w(Z÷ýåã%?Èì(> ÀùžˆüæÂ_OO®y<(¤ç]š/ë£CÕìG-ˆqIÓÎÙ=_/QÍŸ/@É«ž©»:ž(3*Œ-¤´‘SlïðÆjHý±Çñ·slñ„‰l\É„ÿZz%ê” ùÎÜîڢߚ7_Ž­T¡!" ‹m,†Ÿç$Ý´¼£¶+mÞŠ[ˆyõú1–±ÎùÀ³kÑ9#HÿaΪ•D1ÎÇ9PŽ·.vÙ»®ü×â„@ä´¢’Ei£N¸DïZnh‡8΢&ÊmÝcá6“}‡¿óßBଆŸ¼æûÏM@Ëa\ðH¦à¥ðp£q€zmŒÉ8^–7âÏsÁiH´ ×*Ü]¶cè÷2i’Þ¨£ûþÞ”%Ь…°TÀ4>úãÞ•«^–ðÁOhÖOÝcð’€Ú¹¥_I¨È1t©®Ñ޽ 6ÚÞË «]’ŒU뭚ꟊ5ÔÞÿ¨á+ÎÀ.ëËù“³ZÝaÈ+=ŠÉ\wÍÁV¿Wº¸NoRË3¬ùâúÆÔk[òÔgá &úè­žÕ NƵ²\‡#3üµG|Ù<¨¢äö<Ö­ Ý:3t>ªøw4rôþ_X±ÀÛ“àôòlP|M§ŽÍFo õTýü¬ØQ–O0úXÅÁ¿rð.ahÇnÍØ¾iù”àüL¨-/{^Ï ô‡rêaTá H€eŸOµyéeõôÒUçxÑPbîıHé%2ChëìÀs­Æ¶qÁ–ÔšÒs¸sª;~ô¬Ú„;¿Øüb®ƒ8ÒBˆ¿.‰ÕË·Ò Ò…‘³cjÂ=°¹xâMÍ$1¬—T^s„9j@Ô‰ã6ã8Â:âÁ´ãÂ&îjæFqkTóoÜ%¦f÷ý˜#ÈÖÃK_ýô8)}éè¯À®Ë} ö±®äO•4À¾@ÅP˜¡²ÇÏPÕµa»ZÉŠ¾ÐÕÇþW‹ 8Ù¥éú€PÙrû¥K'YøZ°QÕ(Õ³­Î5Ü,©é ù¹g`JZ¦yÚ¶€}‘WOý-¦—¼£œV³k×G²§ ÀêÀ+¹eä*ûéfõ ( ì!à¶i»zŸ¯ÛÅ ‹g*:„¿Í¼õ(è¢pVüÃB"ˆA‰v€¯ü¿»‚ÜU‹Aчä%9êk ˜ÜVH8²‚\ø=u%DßP±ÅŽÇ„kr¿Ã¾ ”i ŠßÁ²CÍ Á»¬q›'˜7醾ÒI¢¸.ÂYæñÚ)F§²ì‘¶®BWaTjô%é!Ä•u³Fo¥Tˆ)oú«<ÃLé,0ˆŸÇ–*gdÚMJìÀÒ¢ÑY°d~ʲ³SìÃÄ7•0 {˜ê^2q±yK°W{ ç6KšbÐIÕÀßàiæ1-ø9^üÙ' å»Ü&UTôKyÓÙ3Ðù¨ÎÁ†?Å-Mm-w® ¸uÃÞèèÉ~6›{Ý“˜ÁiˆÕ)®Ä W y(ô¥ô ¶ÿˆKC*mó1³da|¥ö7­ÿPÆ®[Ž[®4…îqðÀÝüÍ´’eãVX PÁ¬c­½ôV«:&ÖÅ£¢“ÛAQwžél÷7ìˆL:[˜«‚u]9få¥Qî<Ié+A.ò~wsOF*ÆL±ÄRT¼I­wì—Z¨`Pþn«ñk–”6æ&Ÿ…/°9Ó~÷?zOð@õ “SÂVOµ°çHl„ûŽ`üUÊ[â}2×ÑÄô ZèÍö‚¹2x# ðXäíú+†Xe`õ¾]ìQ²ÉNÆW»]v0„ ß'Ø- ÿ‰‚þúÜ~N¶Ñ½¸K\!ÇQÜ‘ƒÒþf_jX?4ãœlqGÊŸsn¥ÓçJá­"ê´Œ°¡uUûKýDEbBžÊªÓ‚ÚZ°TØ„}c¢÷hƒ¾”°OÀ›WRYBÑIõ°Ò•3™Þ¥|€ÓÔ~5¡Oõ>)Ø£ÙEOΩž•>:Ý V-iÃî-(d!oKL ÉíŸãìfûgÕËî2nÐnŠò2g̦Yòd›ë5‰ç‹×d¿´­€ŠŽ6É1²C™ëùhél4Ë^¡ßW‹P…Ȥô‘Êõv1g3sB’3€Î¦º1q}¤6ªEL3÷K¤¤„qS÷â¢@‡_’_¬TCÝÙ¢¿>ÏÉWKcÕ;Øž°Ù—ò=yÒæ«ÜéÙ,9ã5½`˜Dka3ÙÜë³ajq?Í ºQ|Hß$r“>÷8´¨•›dǾ ß9¬×¿ä÷ÑoE¾Fû¢è.UNÙ{èñ‡Jø­eœÇÓ0™¾h´BÙÓ´77®«ôc˜²!°ýÜIŽØ_jÁq€¢Ê@åá´¬¡sܘ>"†ÚOb/†¶Fd’`ç—V˜áWXK'¶ŽÓ‰WªrFÙ°½ïfÆÒ”£Í$²¯°8©FL®k¼tÁš z›a ÍDÂóº`æŽ})-’§¢è>ÀBçáæP¸ÉØ ñhQrîÐÐ矟.^‚åŸæ½iw¸/ëXŠ£æk‰Ï¸{ÕH*«œ\35àK–{ýWí›ÀRù§OÇÆ0ðŠã€ØÇâømƒq¬¯Ö÷)ü¾mÞÚ;Á­á_ö¡@`õ×—k~Ünš“ e!Îÿ ló?‡âJè”’‡åDÏ‚}JCƒÌ©Ï nòT¿ôj‡[ä¸Û©V}Ç .úõDe3X«ßn0Ö6, hÅ*ÿ§ÒéöÊŽÂeŒGPRî>¥·;.,hxáy|¿ý™¼BçÛãúkZ)Ä4 tS©!#Ös*±XºØI´£ÁÄEP×l—z¸8@¨›°0Ïwœ’oWu·´†\p‘ãZ3ò,vâÞŸH¬ñ jØ ‘Du©—Ü,¿]€m2‚%鬮çÒä3ÁE¾²/KÂ0& £PN6™¨rÄJß÷œB¦$ÒîŽßCæ@ö ^YI¦g÷Asw¨ß¡™œ—:d´C˜ܯÍŸ?k`Ùožbåî©Ï:² Ðe7ÎDïÛéèÈä¼þ}F¤ò8½èWÕ¤¸è`ÊÓpPGÆb‰™Ùoή*LARBÓ¿)ÆŒ([T>³¥»S­±[56Mg7›xN(JLªO‚¨¦ü Çå%5#Í%è/‰*ÃqûNc½Ä£Ô·oƒ¢·b¡²R-§PGØ?êÏýZ¼˜ðò,èêf>DKçŸn Yk‡©3XoÞ÷ÿd …ëW;èÑkÚ4vÌèH2½ˆí‹Ü"FÅv:4œ|ÃUÞV¼23cäH¬l¬V²£:Ã#D¤—}žÀ>˜Å!r°}YÃwÙ-»Ê%þïê&<`v\QÈ>Þ´EOøð–0á]TuI7Uá|þCQïP 1Ý­\÷y‘Åv»ÄÈîµÑJ8¯£ ÔË£Mнê7ˆxL†Š˜*À‰KucI BÛbÚŽ•=˜Y‘ óºÂu¬É¼Ìpr`ÎÒþ“Úé½¥v‚™|ë¿ÊFcÈ#ªSì?6•õ<Ÿ¼øMÂOnENv>Cã¡Ñãe¸_!ï™6´W0ûR s/ߦ …¶Ï¥ƒ™Mï<½éjc(€cÓNa—PŒ[2Çù âLs®¤j+˜p”MòñÒd^5RÒ"èÅçžW¡R¸ûR©Î8â>ÞáÉ‘æj,Åä*Àç)ÌÍ‹ƒ0™\$ RØû-:žM)’9Í@h;ð¦JÅ®înFL6–Ðc *f'ƒá sPçï ·»z÷v‹ß­ïÚž÷L¤î.õ´YÝŠxb$3ùÎiH3¿7H åÒŒöÒE?5¬w9÷b«œhS¼”VùºKG Èëxÿ£ÄЃ—¶/[á1ãñ>"õÝ–k'éFˆDmìúô@’vëø±àÂ.+®ÑÉ09Bš \â>ŠûIŽ É­NÕgè³s¯Ú9šzÖ&@ëæ…$F„:‰X^(ôã éz³'lÓhùœ!sWµ-ó ¡Â®«¬j’ÝCÒáf”Ù Pdx]²W.w öH8}á“|Þ"º¹"m|(“†|œY] žÞ-ú,*BR^ø#6ÞMÚÏÜØÅU¹u—,bUÎíô.ò'¿’†8†¸ÎûÞS¶O§ NÔjÇ´mfëuë_‰ âQ ±`â*ïTg ‘»aÌbÊÓ,¼Y½¥¸Ú}|Ä&{5Tv— ƒgyIFÿ=PÎS¼ð¦“Ñ~ƒ‘˜€‹#¹¦Òˆ/(^þ0¼FR¹ë *14ÉÿßUQöbWÑûzÞõW*ÿñ$ÊÂP{ð–ŠÐ>ÁȼD™÷ñÌ;¼«#›«É¿aou§ Ž5Ši¬d?Ý,Ëù>âNÄV.«ãˆÚÙíü½53Ýïb ´i0ô@U‘“‚º|æ·a»èô¯cÚqò«i¡ö3epØá‹¤vÜÌÚÏ W'yûcüw¨ @Üs’ßÙ©ÕàXÍüko &Ëdã›ëü@'õï´Àú‚ÐŒlaöž S¤"ôêÁNôÆ-“1äÉé.Í6âõ«®=§Åý¯WPÇÛˆã¡)ñkÜÏà«»­Äýçbì>«M‘mX¨u#éÑ(Ô=pÖ©”%ö­Ü5ÅQn}1Y9­$¡ï“v2èãƒd7r²í~h°]äÝÕR2ÂCÚ˜6{&ž¢3q7Ü4Û±v½Å#/*/°íìºnÒjH×ýOX_»Úív`QÙZÄY;Å›ÚwO‚œµh÷ÔTªûgÁ%owínB¨h“Ÿ"S0¼]S-ÿ-µáSE)«H® hðõp`âk i«ÿÌ_ Lí «n ¿‰á}‘à•'1 ƒŠ†9C¡É°ð ÿœõù?^ÃÀöcbu¯”¹íÑ'õ9ÔúÍ܃Eʸ'!–G“u¡£ÎlÉÖý®kîŒLñ·«à®¶xïù6¸oÀà€ Ó‰&MYô ŸâÀeñ°Ìûw6ðJvË÷” qÏKÙ$v;HÎç+”ȇc™ÊÉðiˆª¹Äo÷“-±81?ß³¨ÿ®>ЪµŽé¶ªÏ$Ú½],·¾€¨´jsóÁKmص-îÐöÎgöî•ù¥LÊ[œJõÚ‹DB*ÊY¸P •×ú̈fÓ(h©žMUG à\ÐyY† -0)yô1¬°EþÛÚ þ¨Mu-`ì¥0;¸jŒ‡Èëc}Ì MÖÉà©îîùònæ%Ó®}$žv¸¡,»=,$æwó[ÇpÆ`Qº!ãyk¬ ë X|ï—(T*úÈyv6ÔÊ é“A»×E¶{7«GÚmŽeí2ªíÆÑ‚õž»Aà1>6”¦~ð°X˜-ÙWè.ϱ&MãF¾ ‡\jn!EØÒÙ¥WûLëíJVY¢I±»$4¾£Äm1¤xÞ§¨åùÊ­8m>,¶q®Ä{ØÇØÉ•<"ü²ñàÞ­µ™cMw\VÌD£5*0~&ètT3ìÄÉÑÎt8D8SÅðõîÎûÏ&Q3þbmi¢§#&¯"³9æ´¤Ÿ;p2êOvÔ|’ÆlB[w!\¯úþA}I›í@ÌL³Xt×´*?o0(€ç‡*iá)qDcÔÇ^²û‘jX\‹ÓÉɤ{Ä(¿©Ã#s[ÆZMŸ£B•¥Y`Åå,¼vIe"Ï4°ÃþàÞ¢„ú”Xr$µÏH2ºdàž•ƒÝ0¶9‚Çøof%ئ{J²·€¼ÙTq6Ä­¨€q•;0|-õ[,,i;‹šÍ‹b°u¤~A@†d©þê—Ø]‹ÌÐdШwwª­ºÁ.YPŒªNÅýêëèØÊÑwØ Úz¥·¯ Àl p"˜[ :î7?ݦ7â‚ZÜÇÓåÛ¿Q©ÜgËekrÅrúÆó×l®tÁ+8¯ZÀ“’æÞpn<4ÛßÓaCý¹LyÙ° M'ãšûoÜŒ5ðÃF#,€u½Ž·#E¬…®m™æ|ÄÓÜ·»Ó±¿€RÑE½Ña¯Q|ùå:ãJÐGàŠÜôßù êΡø%ò¹Q¾¡œøSvZ~’Ì‚Éî̽¢«ô{~åáuoë†%Št߃QúÜõ'B÷Ç ;>Žnmg·Nš.•eùr˜=ÑTdI… V3¾`è|ò£÷5U©:­Fï„Îw‹OÈ©«sìÏý^1ÃS¦“뎉ÂÎ"‘®@Á[ QËZ ]öÛp"`»62Õ´„б"‹£?7‡a#œ™Û72‹ˆ]·F8ÏÙ‡¹z¥M:ÍåE°:r„GM¢ün¼yãˆÁ8‹XTD,_¹·,aøbBCÕmÀÓÅ%^§YãA«øiøÕ¡œ|8[t^:3b ›ñ¤º§ãØ¢Ø0´-Ÿ#j-?ƒóáSeu© eúdº.6e¶·—?¦¢1“)Žƒyôƒiû‚›™°í%³Þ1 ‰ïƒ¦—[&”±‡õ·šŸšã¯œ ]ïñéñ’BdûDÌ f¦#gá»ëTÂýaØ8]½/5]'?¸~•»×ÜsvÿuȰ‡á’J}ŽLÝíÜÊ3ê‡ËÚ_¯x‹y4S«zQY®dyÝ£!ªµc·lEŽ2|² ØÂ[Ò+îÌÓö¢Z õÖø³t§¦þÍýغØÒáÃ( ¯s-x¤êñ0Ѷd}­Wð¹l¢»Ñ|—ä†êC0Ë÷ÜË]¶˜™Vø®íîÚ‡}BãŒÁ0Ì'ê_^NÒ.òY›ä“2VPŸÿG;i}KRoV~*ªjëÿŽh@ä²50}ŠñfT- L{ÉÕM«òÆo$¯åb[Ws%èª?’ üÏ\n…3öê„û *›Ï¾‚â\E)ZP%¾*õWÔ|;ÐÃÝ©•ú—Íýîf)k‘ØP5›7´‰§Ãü\r §ùÁÒcšøœï:Èr'mgWº­éyH•ЏN“í@žµMFº¤·Ëò„žÒ*ÐÖy©Ò³”e9=r£g·Šcl— 4AŒ"ÃÿS³OùDV0ºœ'w€Þp2þø«ÐjpÁ³P£°¨Ð€¬%5KßU(u‡£mÿþZ*aż6Fæß]·A^Öo¦Ò¹ÕÏ:í /ÓÇwÈÖ¦ðHbø½-Þö~JÏXX-úbªÃ­ü ?ÁXÞ=açk™*C ÏW]t=;Á(ýopºw ƒ“¯í”¶¯Ô>ñ½ ƶ”½¢ïÿ\iOÓ2™LLgDäœkMŸ¢@o2yëî‡Ï97ýå†üEŒÍ’³O²}'¬ëÒË]÷„ªÀ’Zòïý–J¸îšÐÝ5p0 g‹œo½Z2¿{6 üÙ}(éÛ׌éÅ£!üÎ?ˆFX-OrØs7>{Ù ¿¢ë×§Ë*º†çênýþ²zfÿ䥘‡uJcdh°qV›±#ô;öË«HùÖºãL®Þs¸“ÙmOÂmìæE8Û/½44?ªP†AXU‹£e{\7Ÿ‹âý*LJp,¢w Ùˆ@Kˆ½ ¨êg‡ÚJå+ÕûHeNüœ~ Оä]q¿-bm!Õx‘ <É€=Á»:UMð äè©.§ò×{QL¡ï½à•RÁÏ›:fòr%í<2®Ì0>Óãa.¶ÕËjËÄŒi:Õ1Š‘&Æ#/#°0ag1àòæû»åÞVø’|.Áo–Ja(H{c±J½MɘdU¸XèÀ³«à=‡ÖB%whœº¾iÚ•&™íÀŒ0œÓ¯¹ÑãðY2èû·2âùA¶¤Ý$Îxë—áÈ'sUø{ÜÀ!J¨ £¼‡+µ['¶n6$»´ Bãĺ: £Ëƒ!S4øì‘t×,6fçµ a6¾r`µÿª£'¬…âÞ]`lþJ`{MŽ˜–*ÕRІ¸·ð÷Ñ›xd¸ÓÚÿ\•<¦ã­àDý[풿и¢Š¦½küTzkÑ 62}æÄzàçß(,Â!t¶}韺GÞBÉòZ_ý6ìQëdv·¿Ñ(b÷Zz±œñÏÇ ºî›‡jŠþaR!)%Û#µ9âLAþgzAÙ>¨Öø>½h &6"”Á¬½%+®ÛF`æ*µsbc̉mNC ½Ò7?V´Û{¼¾Y'¸?];n'é®U DC…¨î¬vwRN³“\ >ZBˆ†#Ù±ûÄü󈡅ðýÂÃ¥Ï:}÷1®wÙA¸ï»¯Ï.[dFYH âÊ1Þµ6“¢ªì)Óý,QúÆÚ§5'Ë~Œ®×ûà°ÏâF›æ4¦Œdœc,BŠ!·Çò€€6¬FX?vnù³ÿp.Ž &À?8øö²ÜoL3Ë·tžó$|ÎÀsá)Œušë—æþ‚L{©é±<É~($T:»Ð‰cеÝPn?Ï…½B#\ VF> µä ¢˜‹ èb'ÂÐ.U’ïp½¡ï²¼h®®»ú¶..BzØ»›õgR5À¥­;‡ƒRK±MÅ«º )©éB·ïm¦ge%H€uhý_9®jHŇÁVV¥û(<Þi¼TE¸°ÐíëÈÚò•WN¾Öy;Ûp49Coãbb˜uØ}3NüÐãü×|ZÍÛøúÞÏñi™t7¥ë{à &›ÓöcðE¿ ‘¢FþkH @5¤Ù¯[È¥‚‰jÖù–éIoM}püÃ(úö/î.2"së‚‹>y¬ª²¶!­8Ç_âyzñáV±G§¦!Ùiý­¡ Ú[/cd£•Ç(îF4‰¡ŒÅ„'äñà­ðôo°EǼ̉x`TØêÊòè­¹`[†ø6Ñu¥Nò]œØa²×‹Ú; ªI\?f8ÁO޵""t]âJa·¸ql³pSÈî2…uQ¸÷Ó(øDq*ð÷ &â¡s·dŸT£Œú'±Äuõ{µ{²ô9µ‡¾Ðtßf6ãYþ/ÜMG%þ‘é–—_Æ¿æn£š{ v*ô ¾É4¬Œ…ÛúÍrªúÁLœ>›‘æ´éz_°ƒÂ{#ÒÈrk/Ñ]ÙíÖ[¢uëÈ?0ôøÐŒÿ±ðÒ!´ì¥üŧóÊBaBùªÍ 3æ’¢EÜašÔŠcІèV7+ 1k¸Ã‰å¬_!ê@®8—ÏeÈ8–ë}0±x6gçÈ-i× Ÿ‚²Ç9;ý}F¹œv µÕ/p‹ ©[Ù×` æ·!vb¤°DÕ>ÛÂÚ¦¥×ö>¦QÐ]AÛ´“×Ê –~HAÏ+,›#ðë¢Ýܶ6±!°Y!æô3qµºlÑžóüjU?©Ö“{<ý4–e©„ GÛ$§t~¼@}Ä8Íð=™! Ô×iOs>ŠÛTb"/—~D>ùïØÄŒòw剦of\&Û²Òòš³/G_óFÀ÷' YÈé?ù«p ÷i‚嵚­>Üò“ðl@oøûB—eºÖ'agp yWYÚ•¨~ÊÁ@¾|%Ã88¹Ýo øÏ禌‚©¤ân¶ªqÖV«0ì°ž(zEXŠ~— î GsPŒ<Æ?gD…¶B)yõQz·Qœì$þ6¥ò…6_%= šJ ›àk8l!€0NVD‚ûØÙ~{ÛðuÅÈ;á¶)®àÂ<ŽsܹÈ(ÿ¼‘’´ÑQ°ÏÉCÜ|‚ÅŸ×v,²ÕµzÆË£‘‘_:Ž uŸðñ} ‡{"r(Ü46ÜøiûÔî–Äš&ƒ-T£~ ï0Ù£8c >>œxšÄô‰4«P—ÙÝ`­m¹æ¸¢âˆ5é'­FÜtë·—éy·W^gNÚUøŽÛï­øh Nçk3QϨÿ^€·þ"Ž‚_´V0áa¶Üy–èwŸ Yž@÷r®Ôñë*‡¬²„+àü`Ýä9È‘µ¨5ƒ'`ìÈO>Ï"Ä.k5@aíW¿© êÜPTjh,SƒÝ£›ëØ\Í q¶ç¢‡ül!”s¿Œ«fãV/ÊÇ»Î&R]œÙæ°í6‘A¶ 76ÌÈR”»¶¢ÕÈlí+@ÜÖöQ±ÛqsxÓd¡Üv=º£Yn‚ÍMi@¼w³»²NoÁ.ܱjE(Ä™"«!GºLÄ@“—ʄ請ð½[Ó¼bSùúý’ìÑ’~*æ?Þ²¯òXù:f΢B)Ç!ëC® ¦GŒŸAvàI™y7Ÿ¡rÜw3{/]ŠÜDN÷cƒèQðôž6 «ö(q1É» ^Œõ¥À2ïÈ ß@VìI³Iø© ž' »¹° MªŸI¾l~ Ð #SV1ö‰‘3°7#:S{ÿXMÇ‘ä-±Aä©Zž%éñ„Û6ú‚—ÿ>×^§H £x‰çõ/€<=ŒZ‚ÕaWdDþö’G<ãèûVr*–p/”».ŽmƒQi!b´!—r3´w‚0«Í{«É™lebê%„­ùE—1©’±üŠl™ÏÔŠ€Ä‹dBÛ”™¿/Km9×/þOcbS¬w*é±)¯*EüÕ®1ؤBFZG‡Ð\´¤5´/~"4‹³¡5ê ‰©B¤]Λà|”Ÿš¦¶(7À\P¼†Pš’’ûiñæújŠÔoÑl~ó* ÍXüˆ”=¡®3g(»"ÿÛvkʯãm? rF+•‚>(Ð6Î~ãŽHI›»À~AáØÈäR0 øÜŸ‹ 4ô_Z/>Ž ĘdUDŒ)]=ï‚Ø\ը͓ù%]³ºëP™à¢ÊDŽä Tbœ'þÿÕ®T™;½þˆòqÂu„‘PŠd½{ä~ñøi8íZHŒð}èÌ)m ^˜^ȲÒééÍV ÑË™^Ñw&j9³OK?|?Ë8ŒÏŠÑÍž¬õ6d6äSÞ’E)6/ôûWž°‡î*¦§NLôÌ¢ÆLþ‰_¸÷ÜÇ­¨ÁPÂO(6©&g´˜ 5 TOT?cñÝ8ó´ò ^оÞ÷WB™GT–ž?×ö‡Ñ¢{…¡úîs~%|}Ÿ´²p «Ä@T5g}nd©û ^Y›ª=.ô DíÑ[g…¼”0h±-$ÿž»Ž’ýë…=ÇeûÜ›wœîû;óªÊÃz¨1úMëÕGœº³ð;ϳ¸TI®¾½–hqA¶«ÜjZYfÍ:ø‚™§ßÁ x"™Ç®ä((ÏÂ(4D,ÈyåÀl&ªßÍ+…ÀᩲØ0ÈÁÉ?P",µ§}â0ýl¨éÁ«äÍ’·‘ËãÒaÝ}/®R¾O¯ô¿˜‘`&í°µïw«Û~h=%Õk˜•¡·£ nLÒPN€Gd›ÕDð¼h=ÓPr\#j{Æê@`w5*¼ê9Ô¡ª°!Ìë_ˆy·NBé=*”O2"‘ òÏ÷ܶ=ÑjÚBëPrdS ½e¡ÀóS‹é+A’jU¡|µíŠÛ#ñ@YUJ=¿ÉGpY˜¼«Ú£i”SÁv R÷Jo¥J!Ð…^ÞŒ(“›‹7NIué=c¬¢||q1¡ÕUv¸©.Ø@‚óV× xLÀwáceùmá~[þŒç­û©u¦¡X„!ÀF7Î$šÔ@%sW(¿‚™-êùPä ¯VÀ(S,'¥Œ ÉC#ZKh¦xv\Äõ(ç¯&Jq¬L33knÁIÎe“jÂ+p §Œü`p}Y8ˆ¦ak³ôŒÜd­Ý‰áè¬íu1êâws‡ÖÞ1+ѵûÃÁ5;U˜YÆMÂyîä—šXÝd‡P |ð—¢2$d1 Ž›ã6„ã(핲žš+³â|mƒpeÀ’]Ä£1 Cö©Ìùó¨@{Þ»*…íÇC .6,P+yWøžLTUÚQhìÒ~›PßçrÜõ/°$4šçHíeént~¾eMÅÚœºh¼üh6ñ×%v—O¸ãåþÊs{?p$Ñ€9€8ÿ^(Æ’·"NHrP˜ƒËˆ µmF¦.¹‚CV&= å¹’ï«©‚³MÙ@EHZ*°bi)[æ×ðI]5h†Å_É„KÝ*íÉìa¿Z#ü’ß²¡À_U²Lhou“…—FzSÏà['nÀ5ãZLæ¡%s1S ’I/PÑ^Ñâ&29áZÚƒ/>•OuÙwKÀmf¾Š°;õ ˆ—Mq|E9„U7e¸‡š…Þ'h¬1ûñÝë"ä øP~L:3i!=–aYú\=JJ¯1C&b¿¾SjK€ûû6» lAÀøþØéÊá _ … ¹•¢ó³ƒ²;×8î§¾¶f˜¸9fJ|È‹»k•^–h=g]sóCˆÕÁ®1…Ë `4Qßèþ²?äÛšrÅÅqÄÌFÎ6o²:·¼©³Í:j3æXŸÙ P¢¦)/ÖøŠ œ0œ'&s=†šS„’>6Õ g¢ˆUÆ9.Õk¾âë?×áµ5éÖBõŒýM«6-yž2ºGb²`H‚%—â,XÖ˜$˜B)ç/ûáz¨KM7DP-R+Š)y‰¤gjåQ¬‡Þâ_L©e¹l:ŸräGÂ1Õxo—û ‰y$(4¹3]ÙT>ÈÉuin×ñøiR® Êîä½Q¬~—tv†bu€2óP®AÞ‘Ç–z(-‹:Rò¥Þ†… °`®jÐ `%â³™¹Äåt/À³ßÊÔ¦I¸e¼zèø+7'ü~.‡À~¡OcþÀÛ~½|Ã5§ÜƵvš€#Ì y5ÅØLÚ)íœÈˆšd0´ÓÌ”¼ëªªÌ¥tîé*A3ñ&)Alùå;ûÿ’6[Õ*U®³÷èÅŒñ âŽú zÛq*# O{"/¿5þõ–u‘H©&AüMœg?&Á:Ó•äí|ŠïˆÂ§ho";èˆWÛ„<Ç_ÍV¨òe.òj¶8$ÎÔõ‹|(öºúãBónw”à3òVGtí¬jÖIÙšdtäérÒ–ZÈäüž…ÊT.Ë]ö’J‘e Få¿¸ŽŽçâo‡nrZÆ;7¸ÄŠ–ú$`eIñ‹!ÛÆŽ…¯O¤œ*{tk˜él€[ÈûËä"“–_­÷ßéÿ8 ê±™°”y¥?½ ¼úû׌\îrK¸Ó•ÛÈGÏì°=hé!rì-d§Žšƒp°üc1g°Ê3c"WFuÈGȽçÝœ#‘ b¶¸ |–KmáîÅ]åÛ­Úç8_¼ÀKL*C}ƒåzðîKCÝùD Üth> èÂs`áájý ô­st]È”žÇEì‡2Çr·ÉMªJ…è_f^oüþš‘Å|ÓZý%@ZD!ÛÑ{žÿßIûä \úB“ØXêúª¥œ°¢›\Ó"‹µg ÔtêÃ5æ:9‚U;±ÔÔ³¶Û-\Ä‚¤æ‚•b‚ÚŸù7’ˆË¥˜S>`.Ë!_"õ~pÄ!t(LféU §puŽœiëiyË\’¬²‡q"mÍBEƒ¾¹—ížÀé¡:¿w<ªnc H(OÙ.~.|õP lîµd;¼Ê1 b{\î2(–¯¿§žI-ÊJ\Å4/}ÖꌴÍß"Ü2ÉÌÝGËN@MAöMßüx‡X<µh¶ÀÕzyü…Te\ Õ¿FR–@.¤klº©¯ÄU,±¼8ß§5±?ÓÕ×@œt­û'6ÆñqS:1ø†$Í9e°¿núª{~gÔiNXàeó7¯¢w—^¸ôšïÌÚi֥ݦÅ:È ÎmÜè^àX¥‰bG:jß®Ùòk1áòàíû¶v»r¨• ƒãjõá逜é¾öC>ÛÄÖn>)y¬[ j’(úKŇ –Y“~CÕ¹Š8PÍf=Ö!’¶¢þ‘¹UO[áèèŒÙa[¡Ç¾•uì›köToÍÙÈ!F6ß’, B®d«ÀYY´å©H¸žóbfq} ëÀy](ÞN­:ò>rXæ”õpÅž²ÄeîÏt%Ô«bÀVo“¤ðkeÔ£Éa‘“NÝÅt AöùNÈVƒ×¦‰¹$ ×]R|°ìIµéHþÚF-ØðDv²¼ Û<øc–.ÈgýÞ¬V¨#Õy­;¶u*`ÊÜÐ!«§Ô/ÿ(t-nCΖH3zÕÒÓá;‚© óç$âër€N$ÇS›ôuÈ'Ä™À£¼šgùÂ…pÒC`¼•½XQ#E¦Ê×]¼ËÔ?P>ýkði°S—A\Ь8ä·â_”ƒµhŒ$DWª‚¬ispáù(/ƒ™8öB]ý“®›¿ò˜UÞ0­/þ ·éŠèŽ÷ýLô²„]­ƒA€‘D÷›ñ&¤JÿÔ‰ÅëÖñxx'¹Ch¯ ëÞ¶SHV’/ó/µ»®À0AÊ©èáÞM,@rsŽ~ë…h^ »3@|V­Ú—ÂîÚW¬‰†”a—}`AÄ3Þ8D&pë‘oZ›Þ£"£Æ¨bQXñ‹2dûS¤¹xÌ`ä¥Ñ° ·#匒}ÁX&¿­Êf‰¥ˆ§@öz„¶sA©<7½ºti~åSá‡ÈK€à)#Ð4‰(`¢¶ÙêÒ‡»Åê—Õ ¸ûåÄû·sÂ{¦~ É¬ç Ÿä â@2|V:ÛG_”ð©Žy<ý«¿L)3Ñ«ùú/~"I†©=ãÁiÐâ‰úkßS𭮦Ú×{¶ÖSS…HzZØŽnR$¸bdaÇqa#bN¨!Uå GÜ?]e­¿:ãøDØf]Äʰc0 tšÝÿ—ú5ÅY_÷»*l5Œí$os_0"3`Εû‡ tëÇÆó|ÇDšÀŸÒ0«Œyã ±A™MOS ‡=”¾dƒÏšÿhe—'—üOÅ„–ß|yøÜ”cw½Oßj»Ši.ðò@J0LÅ'Ãwš`·v•¶%­¯&0ƒ«àmSy)ì\’¼j®hqv0KDñÚ}#À4;†ò‡Æ£/‚^ßPµ“ 6ûÀî{®Öm°†n¾?Ó· «‡•M:ü ] z%ë׿í¶Å†”^ý'­Nµ]xÝÓ µ°½†oÃbÎ}ÞõüÊ­þT¥ÂXöð×Ì„k>¶¯@FÚPTeA€mf΃¯$¼ã\£Q:ÁÞ;ýæ$àoYOã-çã9í0±_5õé½ØÃ¤¨Ës–QîÅ¡ÞÞÌË{™]bCòSYøY}ánÀÒ¼Hù_ŸÉX2X0 Ìì¸@Q3š¨¿(¨eâN1Šsn>ÀûF®ÀûtØÄG…G"€fUÙ>éœ6šµÞåLaaÖ¶ÍÒ¯{@z‰¼ø“eæBðò–¦b¢UUŸ-.Æãffâñ¬ä(¬¨Ÿä`Ú÷çmt÷Ärx°lqHdñâäxÔ-äB)Àì‘÷úmn˜ÿèæš×roá¾Ç7ͯQIØì‚|xõ¼¡áÿ†cKÏÃnžþè¾+m÷ÔãÁ8ü¦ŠÓoX€”ó…i™K¤©gÔ×L{«Fp]F~ÜÀú~¨ÆêNḫ”ÿ[>ü³#4ð$»£!«þt¼Ø²zCªH‘¦.'~ÞŽ»¦å"ºåe?O7ÐTH›Ï É‘ b0Lbn„ºÊ©qõðŒ1‚/ÆÕ猿ç¦^Å™ßÞ¬R®I_®ÿ͸)¬R¾®68™¼Èr(ümæTA¨›£‚Ì{Žh¬&î4ABæCÇbqùÌㆺûÙ–ì¨f§¾ƒK"²\°Ê|W[At(5Y‚¨ÖÊq¾ÔrWòò"ž{xAÐ`ýo² ÿ=ï¹°ê±-¼X¢Ãìô;*ÊŽóa£söj* !Ë\–@U³³•‘¢¡½ýžåqeÅk‡ºLÃWpá~PlG¸Ê¾´+m®’MbŽ$÷\g !IÈ0iÃZÇ.ª<…Î %—ä]O€µlkh}:Ùè—¡û›#”]6Y$zzn;÷|¹¾s÷ {;qÑyE†n‚LùJ‹¼h æ½DæS-»èUËX,íCq`QšÀNMoÒUNkõ›GY¾ðÑÝlMÜV&ø oò ~É,O¼þ=¹§º-DòÑqî57ݳ‡F–X‡å`iõ’Š5£8…4w„“«¼:!\nƒMC»ƒBŽm¦ÞÆýIçI;³Ü‚»Ùiž©\yIè¢È=^ ™¹ß8äpª‹ãn‰È1¨»kˆÒ>u0»[Ë®1Vú®êXçZmçL“w•Y3áä4¸±3¾1†lë¦ ,ê+@¯Q¼¿7ô½ûÆZŒØôh"X'ÃWz†ÊÜ*ŒHÏ•XtOvú ªW ï¡è[¿ŠË]äñ§û‘è(“´} Kªd‹r&ˆÿ”9 áJ+Œ¾½ fÞ»EÁ¥ ~}*Ž+îŸBŠ“½ˆG¥ÁÙhŠÜ%ôaØVFõß3® C²t›Šê•ŸŸ•åòQÉ$‘;'íØÏa K§%Aóc,ãJèebyîÉݯ²¾µ^YàlÙ·—ʰqv5Âè†D ZZÌ[n^éi¥˜'ƒ2|†qxÕÝtNjf®ïcrVvö«:‰¡À]@kÎ*æÍ“‘.1Ùv(¾YÌA;V>i²aó¬«Í‘¨ Y˜SPyF£Hùæ´KŸ²+u±8ó@*ù¨Â¸Ñ¹Ëëì™ÚòÒ9l:æ÷˜û\d°Fªˆ5ɦPm3M5ÖÉ2lØgA›z}ó]†8™”ž‡wkÇtÉožöZbœü¯Ì%h“hvˆ¸¬4„p1\HóäÏ?íaS°Î°•UÌ4ü[Ô¬.9«;^Ôm™¢+eÓÆ¢¼ôöå:á“ÍéÞàHÞ$/7 ý[ a43p%,™yê0•Ö]œÎ=¨j¬ÎÚ2'®% z)FlÏöžÆI*b }4˜æywMUø×c¿@ν!:ÁÑÙçtÀ'ÚH^Pû yûÞñÒ«ò0^žq®ã–pμa)Æ3öÁW¤ÁcЬVÄ¢{åG·z°!ðËrJqê8LHò»uh44H}ºlŸ£N”ybLUÛ|,t-äÙ†ŽÁ¹oBEÛoÈ|’Íw(0Ð|1î*"‹ä¦«ãÔXÁ!Œi&bc€í•§gZ‚Ü׳äèš»Üyb¾"êûÔ4›XØŽÒÆùÁfeês&±°cAøPÅ¿jôÏ ƒj/^_EX!Ji08éÝÖ½¸b7ËVô89†ÄËòƒV Ë3~¨ˆx—çŸ!ÍCï†äK(nŽŽX_ó&I¿D¹¢"¶’ 9Õâ9l¦KñÚá(#K΢|)¸àyzæ½± ŠÉTØŸ!¨‰o®'8üµ ½M Žpõ¬Û`N¶–¿—¶©°teî> :‹E¾üLl»d°¿à/¶aèÍNOZµ³ 7¡LÏß5Ç€¹zBŒýÓw ѳ;nW9é%À&‹¾“„_hÈÿU _êüÈïÉóZM¹å}\PÁ¬Æ:²Þïsµ,™¿â¼dœ…© e›«Ø5A`ò €\› Œ—£9!éž›ËøiS)™æÔÀ_dq°ú*9W@Ô·óã†Û<%FQo÷Ɇ¶e^äx¤:”>²Œ U<ù#÷ eœ`,¨÷B²sW¸ðÜà8–¨Q4N.UžÎÚªRdbkÌ¡œs_§Å’êH37%.&Ý §øky¿¤÷ŠÑ–· Æ )5hX·w)¬îW«ìËËå¢!’ƒƒvÓ‡à„à-¿T< ðïÕe˜ôvDBd‰½ó ‚v‘Ó!kŽ`FµM¡ïA¹hÇü]éu} ÐUK‰.[›Òx÷û“à $Ìn¶*Â`SiŠëN_b‹Þæ4'’ºpŠ¡[cešL‰&ûQ½Ž³f›|+¶)÷µß#L'ð¨ýÊF¤”hÔ¢ËlÔ M¨pwŒØ’µ{ÿAbÞTÚtÃ&øLF®@êQRŠcŠ Ì{Ž+¶¤3[ØÎ]WæGÈ5ëÑÅôý‚;Á#©R«Sêˆä«ëŸØT¡ÆŠlJ­¾Ýø¿­3X{8Ìê·ëæ;Uw,?¾z‚oå¶å²]9%Ï»½2üÚ ¤?Géð’ x´¸ 1{]*fÒábê©@)Ú}Tí°Áo‚]ïY@yM–Gçç–A€=u6¹"*h8¼ömnÜÐSQ\ü>à ÿ¯€3§«`à,ò(‡9$c44S+Zä£Í-ô‰>Äú›­Nù‰Yp…UT‚ÃEqÃä¥ D‹ILí­®Å‰u`*âÍò©AÏÜZŸÙˆ¢“`CˆÀw!êžÄ`®kæIù¨Sñ‹C~ÞWÊ%®†ixxJÏ$ù€k)pOÑOö}Œ‹Wq\`Ý’MþN+*±@‹£´µ =}÷·÷¹ådŠ#Ï;ŽMØ#xGEì¶+[8ðœåiXú­^ °Õ1m°aÒd:¯–x;'kz{¿zÂï ²”êd³U¾ˆoªçœ-¼fÅ“F­Å™Gì 'ã2«ù¡ôø€–føóÌ-üŠë£¼Æ… eñPZ}¬§;§‰|Êô¬6Ú´¡áÙ²)Æ7*w»ž[YzÏR>Z—åžk9½p†ÛnŽ'Ÿ’*I•àƒbÌÞÙY‚ûÃç<…~ór„•Ô½ÙFÚc’w桃“ôŠÈ? ©ÖøcÛ—˜ä‡6_[€CôUXVù’m:zíѲ¦¨®/á)ý°hi:ÿNf¯lÂæcÝäÕâjVF~#GýžçÉ17u°ð°P¯úË|f0åÃyÖFZ`œ4˽¼ íèg™Þ˜D(šß’£ŸªSmL¤ºLÇÃJ4¹¨,7Ö×r~R9…Ñzò¯^q8—ÖKiEåK3k ·zíMשQÿû@’º…=ˆî³Së(~~Û7¬‹½9En  ®´dRœú·Âüêmt|åŸìZP\ =ÈŒËBØW`8Øð@¦Àz`°Qj£µ6/K|é•I—_d]E M8×¢zº!‡^XÉãu‚NÉÉÓj©>y¨èe’Wd‰eœ¦AͬÖLûê]döœŒžùµÇ4ûˆƒ²¿Zš&·Ðúu KD ùR=;ò?Œ“çµà½·Ò³íJþ†VIVx.t€¥*~Y”û žÁ°¯Ô€ò•åhTÍZÆSs/“Î%äк=ÿ IÃÍ_î7 nØKãùRçT-Zý1K’¡1TmäÁžÌ‚̰]yßÓ_¶Cå™8ów‰úâá:àbyÓ7‘`–ò9â¤ö?nfâ<~?)–NýFà>Õ'ÑâîïÝ„°ÿ™¤Êl0´w©êSuïÜa…e_Þ#F¨é•bô£[U«¢K¸Ñ¼‡`i~Å!D—‘­Ð’ARÇCáɆW/â¢$P¼ëS¥•:mÀ6Ý'wn4QC)Õ?s¥©¹_£ž¢bÝ6ž¶íTIyû âCS«žZ¯±_¦@–ô²|†æ‰âA³ D¥pÅá ý‰_c{´’­EÛÑ"‚(fþ>3Œ¢Ï*¤Ê>ô÷«Œ]R¯ùh §<ª¢ K`çf¸ÕVüåp4ËC…„±£ÆTÇ£iõé‡8•kБÅô7ÒSeÊ>ÓšA5’¥9ðí 6Ï•kÁõ¹Ý©(†„Ÿ5Ä8ýñ£¶–¾,ïþŸ‚v„ƒØ„§ àiÔê›&Åv1{š–kƒÊJ-µ‰¡¨}ΩÄÿªÎJ]Oê»èí¥H7ŠTÖˆdF/´i¯6D¹ØºfÇ ŸçùðB˜” lô£#½yÏé8ñõ=>MjHŽ>ʆ§AåÊÕ ùŠBˆ…/<±‰‡µë¼í#`n â£}Þr,Wñ©åöÛ)ONð­}kœß™`JØ"©Ç×fYY2Ñ:£ƒ@ºÖ«©üüŒ¯K¿ÓpÒSÎ|e"âù÷Lu³p›ÇE J’êÆ|šÈŒ¨¿¾¿–ù‹«Œ~ÇTáª÷ù—¨Ìó Níú8o¸K-®ÉóŒÅgÒrÄŸ&Ç÷¡Ó’„Ÿ® 0­KÎä[‡ýûµêJCô Eòºþu`4ìH ¨®;˜YX´ü»"&öì–Ø¹äÈžgÐÔ=µ„pNé⽜M(V3Æác5ÆÕÝ$J¨Oéð՚Ɏ(GÒÄ ð—‚‰ÌøéU°²&ân'÷ËT³„·iR!_ˆÑ¹?Ûž‡—;t Êõ^2ÉÞRLo°Q‚Ic¯bÊšGnðl‘…MI{„ŒÃm¿¹‹F#êO Ô¨òY±˜ þ»v2IÕ‹R²”pj‘=îËÒ#T`ê‹Á,ÇÜZe43ªjÆ==2£d9‹Ûj⻬þpJÊÈÅtã=) »Ê¬PÅùɈŽJ]¥Ó\î2-þ.ÝZs¥›Œ(Òg ±òE±FbB9š‹ü”ÉÑEO»¹ºßRõÅÚÁ°óÖ¯[Cw,:4†¼þ}„Pļb”VÜ<«à^<æ áYÑ©¢ù5„êx¸¬”Öº/°½\Ôžؤu‹'qp°•ìå ëJ· ɹþÿKMÅøE(V'5~IÇ®lÒ Œö¨X7+A[ žFNß;éWöâ%±98Ìðžù’j>`?,P!¶ŠUî˜AG¨J{ ÍŽY[ѹ,¹¼Ë©RÎ%AKa܄úülIºše­2߇µÀW¨­÷Äy$µžS¯2q>ðqµ_ªžo€T]…ºÇr5–½³l?è#GqXI.¤ýJ˜ ZÛ@M<ü›F¥š£Æ¤ÃLšŠÆ·§®#_£X;Kü{ÄHTZèn+T‹Û„êF›=æ/ Mˆëˆú€t"üßT·): ‹lj›wObþÖÜp±nÙxLáñ=€U5X« # BF¬5ù ïú…|±HÏç¹®%5MÝÊìVvé²xUÚ…ð ®Æ¢.Þžõå4Ç:_°8ÙÎÞüö¶zl Hƒ”ôq¾Ögº-u;Rm VáÆl×cçyªúë±)sMº ¥4 CàJ‰Érû ‡oÊ>ù̆e²£ÀôТZv ™ðR/‘ç_R™ý9ïW¾oE¾©g~"Õ'®†;n€ú"±=Q›¨«?tIŘìFÒuø‚ô‘çvø¼ ZNGFK" í7çŒx£JªZÿư’IA£{Sÿ‹.æš‚qº÷¨ÌŸ¿EBÏé‘o£ªö1Õã†S^´ nC¨ñáoYýª÷A©å,š<Å¥½ø‚dÃc?!?9 Fò²rkNš1T;»ùn½ö¤PpXžÎºÕ|9—?^ÌSÇ€ºw óµ±=«gb´b‘SšÁÄ|ÍÕdì€ù+×]9ŸGm 5®þ³aËá—˜a‹\(p`_ Ë™º~~~+­ ï¬tbŠ^Ç5ÙÊ­|$p,]+iÆêyÃDu#<6å0y^.Åò«¦ø²Ò†‰Ò¼è²T4¼ä17”U×à’j†°SDÂ~(6r‡r‚˜Ø|ð÷R% —6žØjøVVi|¼Ïõ$‚>-¤eÿ¶&ùÍWùî5n'z$RúNP]–ªK˼{”ü:¢ÿ¡÷6ØÎzÛ†tJ'¦9½ùÔà“´åÉÎç>ÛÓ–·A<Ï ÔG7‡¬$Ö.rý1o}‘¨ÈºÎŽÏ6¸`1cÑÁ’,pwJå32±x{¹všâ ÂÝõH,çž¾¯„°¤°É\Û¦WR• :m¯ú®²3_Ö9¶ÔnϺ¶ç‡<eì*)$ZßÍ’úœX1h·¦}špãS[¬)ŒÌÎè²ð$4g?ÄwC¥Ð Œ¦€-«ou´ÁuèCËŽŠ}Zëkúu w*_2Qð5«Š¶ª&š×yµÄœh¨Ä¨°Î“7­3ÚüCä4 Ê(2 ‹•Zð½{ìX9÷,ˆ‚fŒèË5â”kÕ ktdYN z»Í3u“J.¾)õjE>tº1¬äš:ËÊéâ„Á4UÕL^Ü M5íœw1Ÿ\Ñv„pØ¡6œSÄ+4À• e-Ç;¼ À_›æ;¬ã<*ò©€Îy†HNÜÙ„›_\Œ@‰Z ^^‡G4Ûò‘-ï4 WP´¹µº†,ÏQAŒw,"é2èré(J}¤/Ðm{ÀâH 1œ²&æÇ\¯O&£«VÁä96Ã1G‰¿ŒõÇbà‘õ7Ð äÕ‹À WëÆÈŠsŹyÛÿ' Þ¨¿.‡üY|’fb‘ü¸L­ÊB˜Q‰´®½Ø±Â0"Úô«|žºh¬µžúƬ"££Ã¼aèpÅ4Å?û¢ÌµÅ~ø¥ÌâìoCæUp³d_‹XP•ªpLa SÚ=ñ¹”ÍBž÷HŽ~\¸ÊŽ$œ¿]iyØÈ)ý—rÃ'yò`ð©¹èFYú«¡ÜÚæ`h䔸ø¼Þ´rY® ƒµ”-:åw–~ËiýF<“ÛÁ·>%žüJ+jD¯lã9D‚Å»9'`¯>(ó2—+€›wäh9ñ1bü¥€Ÿ–Š¡:5õ—iä n+×¶¾(ŠëkxׂM{’{uðÄ5MÄ9o—+" FLm8‹úãËÈœ³5üÿáD„®Ë!˜c§o”n[ïÖQ/Ulƒƒÿ÷­­ZªÔM  g_Øjí ¿Î\m“ºg|…%ûâ@‡ˆG™wj!t´VvÈ. Ö¤¯É-e¨ô5ô ÀxúÕÿÔk Ï73ÎBé¿î’‘šb¯ó;k"ýù¡Vù ‹óʆXL,2Që[L¶#~¹õdæÏ>޳ÿ$ôæ\Y¾Ëê19–{ù~³²¶½¿›‚l’ê®Uñ6’ÔÞÕ wší—N¤1űOmur€Èa%œŸÍQ5¶óÙj”u, þËe9Œ øÇæ¯&!öÑpä]Üóåâó óŒ‡3å¦dãeÂY?•î9¹q7ý*cH؇9ÿ×LÐ õð²Óc\²æ®A:#ÂKNý¿ÐX"xó±Ým*ì•”‰ÜíWí‚j6(a€ú´Ô“¤DGbh.¢á¿½"žÈçDÄLùL»_Ï)ÿ‹ö±9×Àž ´º~´5ã6÷ûòH3jãV8>6ú¶C›Ýww¼™Çkí®öhiþï\Tgïwï ½†÷Ë> A`å%-4 zògNÑònû¹v•Y?½+¤ã"¥%Õ—‰ ªšz£þ&¹ClDº|•Ý@«5f*‡Ü¶ÂUüŽóQÆžñÑ<úŠÒÓGMµ©I\ÔxÏ‘‚ò”¸tä/Y €ÄœD#*tÛ-Ò]ˆô_®ÞL®8–ÓWèzáåëåYqäi(ˆ˜Ô+Ú õ'zv ø6'‹ˆÿ‡ÏEGjÊc‰¸–f8a;+à4z ï~Ózc Hµ°¢‹,a|“Ÿ‚Qi¤@‹{û»ûm$Gëé>ƒj-OÜ•HõûGx!?Ó·Þ0€D¾¨j5µØ'ùª½¤Qd2ï$È€n¼’æSs˜}M—œóyvg-ú‡ ˆ­êP¼ÒUí®ÝL™5ÜÆS>9T•ï9¦éúǯ©@QÇkÆRÂì¸ån̵ȗðÜÔ•”ÛYൖ¿Yˇõã;š”Î2À>Íš‘Œ1-‘…%s>åènÍ c‚´±°“š^‘TÂÍ”qƒÙi²õY­ä ÀªsW[Ôä±R„j2ÌO‘`›CûD5Ôê³ ¼'HÒ3ž%ùá­SSaßrèÁ‹Íê|ípÕAòz³Žõ lºÍ¬ 8™Ã* @5°;ïvxéê’ô†ä¯€{¬•Méaú»|;l\œ§cFL‡îlQ-Ýñá›9×®FHÙ¹Ø3Å’Üo¶±Í×X)ÿÙŽ1óÛ è¨„ 15Ôºbö~Û©esÿ*à·¿æ %ãë»FÂlý=ï:™„9¿Šó¹P{ÔA=¤ÑQrA(±½ IHs¶žé”LnÖn6UÐÀé]ü©’„½J^AœuwáSJ;çšs2ôH°BA8rF¸ г­÷:û˜Á/QÆ—`§÷võ?æ`ûlr®JSÒ’àT½:Rmg?‘7íÛ‚6¡ôÁ³RKÏ|ס‚Y4æõíå½ÌßEâ5ªñŠiPþ° ñ¹™©N!ïvYa˜`Ÿøe›Öþ¾ô+’ã¶è`!—SCàʉÊÁæ4…’Z\\"fN’¾·æ¿àÖ-¢šÍ\_bq§Zb@#hb[Ÿÿáo“MHä´ç „-XκghÈho{# V&ª]Ó‹œt¨tª[;³Œj$O-àÍu.&ô×w(¥dÆ>¨„DžA“2Ó`B´†6NˆG‡ô¨ý…–Ke©?·úÖsO{¬ÂbÕžu“¾^à˜aNòK0`AÊùIç·—h¾QŸö/îœA&%)`¬ËŸX6h¥›]?m qùÀºù–°d~fs⑘ˆ„iÅ—Ü%ÿç±gZƒ‰HÚ¢°=Éh)eŒc,;+Ø:Œ^iðÈÑ©ûQ$K«@pAH‘™&>”L”3ÂvzùXv¼o‡ +;®pß;Qƒu¡ü;ËíØ.J_' U™¤UµåíXÕT§†ƒÍhçå&CQy©‰ràõ>ÿÜ%^wÌJoùY!×’"}™»•8¶‹.s;œ•Õ2í¶Î¬Y»%A†dËEG\ßÉÅ*ÒðJ»–к­þÒûóB•I ºMCîît)^Ô(¿' + t¬ÛŽ?BE62˜>EAس®ýÞÖÁØÝAÅU }Í<¯!·X 2N+v®dD·€q#hµa@*]ð+>€arÃFµ2 À:Qóê®4®;"xtûNbHÆ;œ_ñ9]®æç‰p•©fôû·QzÈ~Ó š¢ÄîòIÿ Ü ‚g‹´AŽ¢weSŸ‘+gDÀ—¯ãhœŒÒЦ&·l~à 9ÙA§“TgŽÂò¯‘áâÿ¢úùž¿‰hÓ6¾²¤¾6sÒÉ*² 7žœ‡ óŠð´Y ¿ì,1u›Ÿ/ÿeQf– šjw®GË w­\šÐLk…l/£R÷^œHìMª# '4F±*F‚­Žá9Kuns¶)ót—¤žÊ%…æ ËxUDk8“èb¬Ù…› ”×F¿ ›CO·ð0Ù>I›‡—öîEA\ØNœ¼æ}`Ú9*Oå´cž“„ŠúዌÜkñÅÄ%sT¸~ ägmªíÿÎO¼?ãBdÉ‘0ø ¶ÅXuYä¿uƒcÖ CʨF´Dœl¡~¹u+ÐÂø~ň23*Á ºGÌDd‹§],ª·Ö5iv«NåÂÌq¬Ž‰õyA]å ”zô"lFÀ#;'´{Ó–cÂΰfFd«Âk2.b x˜É÷¡™_˜·bvȲ {ÍíËZ¥‚PÍä«C·èLDs„ÞÆkÊÄ›{Ýý;ZöœBfWÈ›­>È‘Ö8„£bdjšŒ!WZÆF¡£ž«|‘þÔ4I(Ã;‹Ã±ï!#ª­á65_¸qíŽöÝeì{Ó¿zð}ÖÞ9]” 䈊­r2ZìõB Zh ‹Fî?Í:«iSÓ¯™fÚü—O„°Úl£·lcã×\v]SƒHãRLƒ9Koƒ 0diÖÉOÖ¶wÙ [)L0'S1œg.WŠ+¹ðvsF-D`¯íbѼýëÔm+úrT– `vjØ:zû´Ì@—àdç´ýWƒ¸c>©¼1ŒJ.!ˆY)TîÀ–áhã–uý°WZ¶usmæ&"Íå z ƒÏêÐÒBYœÏçÄ:º^Ö^¯,ŽF†ÕE°5ÅÞßûÕI[Ê÷ö”CÈ{ Z­âÙq‡|ß„ 7¢ƒ^Š+w•¬,“ò4›0gQͤÅD—@¼#§æv”^V’3¬*æCJ1ÅN9®‡ßzA13p¬.4ñZ1ÈžÜïæÆRr§³;Ì¢´láãB-È×<åÅkäù!kš¯¢àHú{ì ÉÓ×h̪/G••Ûõh« .޲ÑDt}«t}ѲYËß+—ÒC‘Þ§¥—èÕ ú¤2ÍGXT‚Tc_é/E›mOøŒ+M°Üß?3þÁÄê­ußÿÂ+Ï-6Å#ç\ÃÀ¿v;&Ã,Ö‰A»è»Ì¦wm@Éì}Å*Êç*A¤ 2»£hVqõRO3º´¢›Ý¥b©ýŽÐžÜª¥Ì§XfÙÙ±HŸÂmõ@Í¢í¹¥õ“~/šÞešÖü×ë/ÏaÐ(¹EÇç¢T-¶ýÒæ5xö°Ô9û«…Ëþø™êÜ|ÔèA1Åâ³Zý1'ÎözªGé§²q”d}óëd²·c•'£ ^¹àËŒÔS7 ž£ ˆé-\„‡&´# ³o%j¤qJI¬HÓëº[4:v¡só.÷‡ïYFŸ?’‹û)b>}Bg*°lhúȉÞ.ú~ɘ~Šùf’ìúâWšº7 ¨Í¢Ší"l’\û‚Ä'×hßÔÊ‘SÑ„”ý²­ Mè(d4ž¢žC¥ß ‚Þ]—.ò>và©7¼ #R[ú®PCX;òQ†:ï¼<&: æôIàŒ Q”U”ï©? U·G0Ïsã´§<’ j†§Aß eÚí;‘IMPŸ‚†øJ ¶ÇЧ|è*]OÊÈM;cP2Mý\ã[€ÌLH`ËÁÜ4Ûx„å~Ó#*MÞıLYˆ—½ýÓç¸ïqb‡ ŸÚÔÔR^h Îv5ECª´2Ò¾Õ®B}ž=bPø¨m[ÑrQ(_(¥«›dÝf¼Y/€!~üÍY‘@ƒàÄ ”‚`”r<]÷9é)o–nås¹˜ }7%›ùÑûÌV1µB±Ç¶B‘Õ²ßðýÕn§M[â%žs1k€Q²ÏÁÎO-­-ýL¥0´ß4¡ô‡ì!Mf˜M¦ÇÀZÏ™œþ!Üñ²,æ—*Jµ˜IÅ‘ÃóLEK+Oò$¯«M^åÉEN.Vþbø<ÜÀ¼1  .‘~ÃäŠ¹Æ ÆL‡ÄjS¿Z J‚+òúxè‘¥¨»U¨úŸ«’]Ép2Hp*yküoàOŸ¤ÀEÖ}:)%˜Ê¾û(“,UˆPZÕ G.χiY„6-øÕÃ…þÀ“qo„\–fj®Õ؃ÆÇ¿+œ 0ÍÖ@ñ¹Su•…£Áá wb,¥Kù‡Õ‡0b¯T ;ž9Ž ä`³³ OI6ý\ØÉVxc4›ß˜øé–Zâv{•LÉu8?ýÀ[i•®€H‰;iOSµvÏ3°<§~ÛÄpÛ‡''fêµηÌ`íÒò~•ë`P“8ú¸'çÍ`;®ó-‹:¼)ª*:ø.ý@ÎùĹ?šhì´!T†ŸÝo­œò[sD@ ­]’†Û¨ƒ±êeŸ:á2àÀ?ðõ+0Ÿ:Õ¿^¯dþ͹ÛÀŸbbü¹Ôã c$>Ÿ}¾ßú¡Ûûž)>‹²í¿K£(9 ,HÐRxÒ`øƒŽÕçs×’t+ëVº3w®Wå…ÙÆ•íìDyÝz´: ˜Ýò·fÈ™¦ÄñÞ' ¢ú;Àú•™k¼HÖö ÆAÖä aúrÂ¥¸¤*Å>õŸ,€dYÈWª5>‘¿Ö²^ßçÆ·wJj*.’U >Éä$jVícÝ›µ¢„z5 Epo103¸P¨w‡7O¢¸ÈГ$–Õ¸¶ÔÏR#Ç{PÑ€|Ö;Û*HÆßáæw…X ßâàYŠuy5³)ÍqnmþaÌY("O¤ËU5Šð´òs”û±ŽˆÏcÊ?­md€­¨.a}áZ²?}mp î&*/“~úc§kmn¡” JtjØÜP}¤gÕµ€#Ù3úó4)¤vÝ—2QÊXkÕt„h¶Qˆp[h yÖ #×öøìèócO@Á&ZÂz.n¼æ„LØÅf´ÛÆ#ݧý$мª¼éÛ˜òBÆôýØõªö÷ÅÌšI¯:èÍ,H…ê´ÎÚ˜ ŒìQ”ËŒM ¥­jÓâ¾ù¼@ÐÄŸöš3èÈ»`ð~`èðn·ÝÉæôŒÌ„4±ã„pé~Å, ê3g°ob~@6 ªY»ñ]lˆžz«7 vB‘Yà "=Š´ÝX-Ö3àä|X9~^~•Ü #H¿ÎH¶ô% ˆB|dVCà }'åjÕ×Ï8>:%1‘HǬ=?Ç]9Åö3eÆ)ÿøÍ´ÊC`ZkôcR)ÞÛãº÷c z¤°q¬fÊÔQ5­F‚Í‚Ó5Vjñl®ý‡3#îöHZaÍ‘ÊJÈ<HÌÓsèM@ ѵ"ÚÚÂXs©”J¼ö`ÒÉ—#Ãeù«”Ô’ÚGÙÿyÏ×"¨—– -®§ƒM?Çs­ I`M‹o6Ân?t‡¿]³»7§{<%Ô7µ¹Yp±xã '³öØ’ç6è(ÖGWºvɱÄOî&ù'Ð$‡_é‘lªÙgìpzŸ³uzH5~PcEén…˜óâ»õ»$– G_lR¯|¬ªÑ×Ñã¿{Ÿ¶çÙ PËÉÌè(™žÀW™+f²5(Ŝĥì!wŠÂíÅ*c¥4´õ}—žûÕw›¤æä;z_nb0Ý/h³¼:¾R®7ÛpFá Ç”„0¥Ã,å‘q©¶”%máü„ì·þWZÈèI oßC;BYxÜ UÄêÊÅ~é¹Bô¬ÔÔ2ñ;¶P›Ë–§ËZ]ƒ”J­'J¹õlãòzhIØ®5 ĉ#‰BÜ8CÖÌL%rÏ¡qLzt€ê¹Uîã“ÜØÒwdm+iš©Áù˜Ê„–mQ¨þÆ4EÚÝ +dh#yD¦-H€i—%n ÅïèŸß`Ÿ ×Í}ÕRÉDÆ/zBð,;q+×Ú˜2gœ½tVµÝ«/¬Ò¼êãˆ÷oÖß— ê$€ÉÒSCå_Ãq‘J³ÝYŒkÆìŸÚ‰æ¥æÓ þ¢ ¸FòŸ|¬.ðt¬?C ì‰Õ×E¡rd…Ðï6–—Íëú‘wµ¾’¾žò”yÆÍp “»"2`ÓÕl£"GüÄýZbH ;¯KX^‰À…j‰FM˜º™ÏœkdÁ‰‚ºO·>ó«Á8>‚†‡ˆ¸K/Ín#lkãSLéÝ{êÒ¿Õ4ÛŒ¦×eŽªÇ[Yö§WØ&ó¯23#HõúÓêÜq zRÂÓeøwò‚|!/™ŠÛˆL‡<óŽGL‰[UϵÒþ,vÁó[<ˆí˜ò ¸?×€HDðÔ÷D ÉHtJƃ5ÝK²Èe‡äSΧ¿œÕ|›¼ŸS™¼qsï¬ýdl{ßâ4Å]uÏÞKP½G0¸šbůâÁƒ3×ÙWÎWìCþ~l1™¢b qòÓ®áÏ` —35ïoJ®ÙfÚRŽÖ™u6ý`öMžËÌÎÖs-û$ÖÖ&—»½haª9µ®hÙ:½ÒBþ½J‘-㎲Ž!²‚º¿±pƒxk.оAâu ㋚ⶠnWW:óK<yàH‡‚…à.!ðsš%yÿß8,}afÌ;‚Õq«÷½ÑßVâKPàI°·Ç°…@Û¶«C@»æÒ™É¡Àn™¶š˜Ów~…?[è÷¸ ªJ T@wïUÉ£“uh¡‰„R2•rp«‰œ^Z„c8d6Ï؇ZFÔÞ&ŒÉ†«L²Òb–ÌQ:6żà äÇ"V“*<»ô<ˆ€×NW°ø*­JŒuËB2»[›ë#RŽÒ-¡9Þ ×E±Ÿ>>4òŸÆž1K8’6êÚ\töeêÈ/˜‡ØCûw‚ Þ¶BUÎKº ÔPõ‘øÔÒfDûaÚD÷¨ÌŸ´,ðƒ ÈbÜÍ­£=—Л³ %E—À’OËl½öÇÉâÂþ‰ÊŸƒ}UëAá_Ð7UI¹5–"˜Ðk±É=ý¾™Ô+K’DŸ¨ÞFžê=U˜ÓÈÌÅsÖÿ0R ?Òxçq»° +EùVý­‡Ï";tˆšd¸<¾¡UniæÜÓx! îsèð®J[æ6¾ÿ©û«z¶ù¾ð‹ÛÁ‘aÂc,Ä –%GIx½P_È m€‹0L¡¨sÇxÍÏØ~–Ê ~¯)2]e‡“3cÂÞ¸[ã°l13¶“^á–oZÖ’õa uù 6¼±̯Šó¡YýÜþµ3ì„Ï­[|ðâü5aæ€Ó¯/:ŰÑSÌ÷p8ééÛŽM@@ÔóçIA;Õz÷³[›ºX‡žíjhŒÅ0ð.*¡ò'&º{~´LèqãЯgBžÌkïÀ)Ë"XÂ{W¿·}ç ìTÍV¹><Ê¢ å“.Øpð§A¥`£€+c^‹iå9¸×X““AÁnTsÊš[TåÓo~³@åm›råaݳ2ïD>p”#Âìü ´¸ÃªÈFÉñ‚Ë™_-æ÷ˆÝHvׯ1„©Ì_¦Õ®8zôönÁß½Š<‚=Ä9Q÷êŸ\¶ezê®;uñ-ã§I˜gp.#©ƒ§´bœœßDnap¸(1"]xøêËn!Á\¦$ÌŠétj&^ÑtM•âV|U ›×rH#qŽhbp;6ˆíÚÙyGÌF C¦Ùaó9b+K鈇Œål;’GWúâïóÿiùæ´ÌÓ¼õɲîP¨¨wÁ`6_÷ö|‹»ÚЉ0Èj [Þ‰bø÷§û’3p•»’k²²è‰’ÚFÉ3l#¤})fzé¬ê=ÂaAæuÎØ¹ •wuœ euï¹Í\d÷`$ÃÍÜ'>M¥ìEu û•þ¶Yn,Š2™Q)?­lïw6w¾„kÅom$Gm´ð“l¥Ó›ëI„öcÑä‡*lÚ3†ˆœÔ!ºÁË:›¼6.ÒûÁSxB²v:ÿDpGA÷°ãA&¸FßeGXþhv{]ÍwèêGÃÀ¬a”†&Ìg›GãèÇ?‹ƒ=éšÊæ$Ð¥ÂGê5É´ç‹F¨’;'F¥–¶’¿Ã<ðöËj_„l™æCB(xg5ÅÕº­7z «Ç-‘•æÙ…î[LHFyýÐl¥t §áŠ»n¢«ÑgìQ«ÌÓØ -Å×$Ïzæ3=‡)?ÎeàUWé¾»ƒJÉÖJ,´i5,×9R•¯»@Tس˜¹ê³IˆKŸ)Õ…Ëçg¨ûóÿásñå£*ACÚñŒçGÂ'-€tÍÖƒ¼\ÚvÑÝãq+øn*`Ý93;@±éAlñ?¶»Ó~Ú÷šèˆHÃ<È{’/«äH–]3½mþh¤â}í`߮ƈÈ\+ý¶Ïv¾`@¥-Q¨p”ü¡Sx¨iSíÝY$7dÜ íSøªl×9X·ð…ásc“0ðò0U\³Y9g±ƒDj×Ç Ÿ,žrR¾óAM·ÿÓ8SÊ3RX»kÃVr›uÆ– •Dø° n»Ⱥ¯ïÓÙ·¹2o·=Fõ°'è}6ˆXÏÞ#yf6JuäU’‚ú«¿Ÿ~fQñrƻ֑<Ÿé‚Èf·¡OÚ7B‰vãƒÔÇ*J§IÉì˜ù2ð$­zL6¤xÔ'³ÍÑ:ùÇEˆ„No0üZM{°$Ò1¦v½æùÌg==oÄþFžYWcª®S¾?æt’¾¥Gÿ‹É,,Ãö¥f_И ùt{ܦ4ÐÛA~Œ7\˜€¾:¬GøÎqúôÓÆŠÇ:üJ†‹¯ÝŽÖ3nH8›™ÙÖ‰àzÕ¤wVÖkm2š¼­¯œ&Z©¡ñ12³dK‹¥z —²T.rœB¾÷–£?hMÓ§|Y|_Á¢­±yís¬Wfè¨ÙhJu§#É«wè!ÂâA’†ê§…#GŒt5ñ‘‰îI'¿I‚dÖjÃÌ}’ˆ¹[‘±TÎ:ÆùtB°4˜Ì©_?ˆý_ÃÁÈoø-A|ùµ<®>/Ô!5/¯´r//¸WKø É «U‰ïtö³ñ3e÷‹x‰ ð©LÛ·CÚ0\ŽØàé‹« Åw6û¼m gôL©.¬€hbÏ&f8Î<0Ž/®ÚüíâÜgãˆF3^=ÎË?È/ÁþQórËœú÷Ú<ØÈÇ2@ZÐh à)ÛG¼6½¯O¬\—)V1âûKÇTˆ~‰×x@ó°ªúY%3ËVÞ…Þ f¿a…ŽšÆq'ýéîƒZ©žG€¿VÇwup™~¬ÏiкÅkŠ+Q¸‰øÚúáÁ¨^bÀj$“1Óc´õ 'Q€Èpp'¸Ìq|ŒkF|F 7°Ñ´&LCñÂØ¶Õ( Ä0Úc› ÿK2ìLJÝݾ}q¦’4¼O%!,A©Sp˜hCÍšL£D[)‰M8îüÿF‚葲HAÚ_œaæ™ß>v)8ìA_ãÆù÷ÅTAœV Ï1/º^âaQ¾ n÷­0rR<[Õà¦böд eðËr¢Ï!ç«$ŽÞ>‘“mé•-Ï$ÄÅã‹RKhÒžÁv*KêõõLÆÃÓ¼–¦l FÖ ¡W0ߤ3ȪĸKÒè³cþ§ú$¤¨AöÇ6mä:ÙtY[h4è1/Ø¥RÙÞdÍûûë0E—¨ ?™-<ÇÂ[À[¨Ozõ5Ý„*WýÖ÷ÙÞ¥‡Ò¸‹Ï´†ñÉZHÕUg¨3_ü‰›æµV»MѰïÚ LË`d'ÝDÕ-dCáB¸ “½ü¯%©³ß´”ç/##‚p:q á1¦Zi,õxIÆ”ëgeöĪæe´Ù€æI7 ×<ÕÝ”0³ÂÀßë7)G§†ø1•zOÙ›ËùÝÖ³Ó­ïK´lÂêÆÓüÒ)Å4ªÐÒbƒè«ê„ IYBê°Î–K×3æ-`Âa`§¼Ó_dBEy=õüÞLf“*4›Š«åÿ}ÉSc\øzç¿,–p3›ÐDgÁ¬1ž4¿ébÃ#{ʘm„I¬ãØ¡{[ÞùU6Aàø£ç1I¶ƒfhsæs Cˆx’Wè¼2y‹þÒË" ðZJxÙm'ípæi"#SÌdúíÔhÃÞxžX WÛO ŠT8H°h#14à6Z] –®'êF‹zÔÀ»çâÔA¿®‰w#*÷YãCärl°n‘ׯPê…꡵ےñWÏ*Xò[“½ó œ3¯„g};ÿ¾ÄM.ï´èAªsSvÍ*nŸ…/D„œ;[4¢uP¸걑Óý¤=·9Øv‡Yšis·¥6iô¡·’T½P™øÞ'Dn\Ë2[ùC+Ê'«®\o½I®àîéx%»ÏVµµM;\Þäxš2ŸVŒf"^V§ÀÀÊlÀ&Ýuš¯úíh¢»½:ZÉ´â‰ø ³„plîÌsÖ.et»…–1ºtÙ¢È;j5?6I£àï/ˆñ™üË›F]éù·ègG(\Ž%pu§_°ýž^(‡•eœüz_ȤáËÂ)L\„ÈFÅÌxù“Ò€™#hø³ï¼÷}SÿPKƒšîª}.T&Mƒ/Tÿœ×ÓjÓ'ñÿ|EèéÎñªžÉշߙ֢z©8öMFx¦']kà ]˽Môéü$ûú'Å¿7”J"˜rúé¼½Éx%ͽ´ÝrŒpiæxõW½eÄWV|úõ%ˆ060u‘Ôè•üð·[F­–|Ó€N ŽVÏ×Ý¿†%䥞èüwª¼ïj³ƒ¦òû0¾"§µÙ’1‚A9fRú´=%ÛAŠlãy|—KÅ»!K^š6Ïü õ7õ˜'ÁF&Uvsß×£}UÒÿ^€ó  M>.XåÜ+FI­óB!%X$ÎnèØÀº /´š½Î4Ò¢Švràý(18’my½n]=ŽÖ„ÊQj&Z‘2¢jñJ†€à‘ aþÊ®ïÎ>üÑ<ü]hìmµ.q.<û¶tÿB‹l™¶ý¾òéDwŽã_eu“›‹švVŸR•Ä=£%cFU°Æár“¹ßKRhp {;}œTtƒi£Ëw‰ÇBHÅ;ˆÅû¡Dù½´pìÊ–ˆ~’¸•Àn8l¶Ü¸} #SŽ¥žžÙ…¦Î}kïçáÚEhIQÝúûÉìã!KZGt QžxBüwp^m¡?(ô¾ Êœ›%=³NË#„ØxüÓÕ•qé!œ"1øÿ ôê'f?héêéoÜ{‘8x‚Ë‹dãlîÑþ“,Æ<8þÏš©Œú=cdà0â mG븃Sü~I £9‰]€9Zåj­ a«îð¨;B() ;:™‹Ú%Óe!Ú’¯ª-Ôçà„ÔÐaÚ­Ï9_òTSÑë1°‡øŽV;íÿXã]*}ÝÅM³ |ö³xì¨r²\/4ÑFGÚ€¦ipÁ7³äz^ZÍ*=R¢¯²¢(>IA6cÓL²»1<¼'°â?hP PÄ/á¤>$½vÞ‰‰J¢))KôµÌ~Ñ./ ´rßqÃâ×¼ûÈ ,Ö*«<½M:êâté±m¨; û=eé1,Î' C*KÕ Ñ.—„RŠö¡ƒÇ4p‘ÌÏOÏ+á©ÀH…ƒqë’ôiÌÑ“bzu"?ɦԱG¬ý*&¦ÅKQRì–X~n÷ö0ELPÕg,`1vƒ®í+lÇqàë ™ÎÿÚÓxXùDÅïÏšãrgÙ(K ¦/#uË[Å¡3 ¸ìF&µ?-¯¡ºÒƒ0÷ÿ–/2X:B²Î›°gH-Õ¾^ÆÜ¡Ûzköî^S„ªóÜa8;éíìš¹˜rJÆàT¼b Ì°ã;§0¾4àl« qc© ZY9qLÌ™ƒøè ˆafB #7#I‚ äÆñF‘8,מVªÄ‡™¥/Á˜—Õæ¾æÞÔµ yŽïmk,ÿ:ùâ? ëžq;W¦ú…øÿû:ÌQo…ƨÒÄ÷D© €P~;ü:+MàN½<ú-hŒÑrÈø|T}ù‘=`òrARÅÓÙG'+’Þ©AZw#âê1ÍÐùåÞáë-oIønÔšÿ[ÿì‘o´4f÷¡0¥$ à,wΧ+A:œÚBá=M´÷²YúŠ ;W ea¶ù×äCÒr€ë¥1¹³ íæé˜h^Ã=Έ:ï½¢™‚˜9l[ìpGÖª *T†¤fQdŒÙÿU’Õ? 2—»G*¯Úr•Ã\'…µH9®©ó6ˆÅ+D¾£øðÍiÅ¡2lئ“J»ã¾A‡ÏÓÇ0`­ˆÊaat1YÝT¥ŸÎ-äqÅŒ)WfO. ¹nƒ§•tù’ý¹/§Ž;6B ƒÆ;ðʹDqøˆ²_Ú-1§à…;†–)œ}|¢q"©›Ì1ªÀo‡–¼êŠ$æëk«ÝWHAÝ&Gn.G—äÉÇh'n5½5rüØ6†Ä|‚ÈŽòN¾pt»ozÍšøHšBj¥ôPJ÷bp‘'J‹;/À7áÕ ~sÿŒ=þZúH”V™Éôq\tEFl'Þû´ï¼Ù»j!¢ÈFMŸ'þÚd–¤<«+Õh£Á™(b¶-­û¤ÙN¡ ­}S†B¿&K¿Óª Á‡Þ]6â©ÞŠ )k%xî…Ö ªG1þg(©»Uç’Œ~,R¤Öɹ ^ Ñ¿‘ÛQº7.…‰†@.N˜ÛëÝÐâ—•Á&h›'À¡?¶l«>€Á9í„ì[¦íVG ë•ËÊKЙwå ~cç°5º«¶Z&“fVâ#ƒŸ3Wa;;3 [Žmu–’¼ÐX­N›aÇ·+¬²ÇÆ ^©ÁëV“Ðý5ô%ðøð{Bg—¸â “¦vö q—ðB«FÝ·ŽàêwZ&ô¾'DVëš¾¿wÂøâv'Šôø‚yw¨¦‚éô£Ýƒ ÇÑÆø) #βDXÌçÖ1”-µñáÑcʾÌÈy€é AîE±ÌMQ3#ŒƒÁ¥˜½{/„eSÐ(vàŒÞM“üÖÜU´S&vD¦N×÷Ÿé–,@ ƒ[¾rT‡¿B¬Ù—¿\Æ_º¨t0ÅÔVß(ò/Ã×gyd1QÅyØbÇØÁæ~‹ã§àKuçÍmFÀìÞIA‘,ÃÛ·±sL@óÁì@‚B£E•rJ ¶h0FÿQç›ÿ³'ô=-ÿä¦#aÍZ”×®®œÛT°‹ß¡¹ÌÍhüúv‚â6—&iºç#DÆ'Ý$B|Ýp?ꌙ«D³šYg³¼róÿ ê"á†Æöÿëå?mɉÐj¥i˜˜ì{ÔÑ+Õ³‘tk–‹¶Q¿*TïV·‡{Ö9•\ɰ»Þº_ 5I¯lâë˜Ùtï°ç‡{ð· “ýW?ò£Iû/ÈôiµÎI:J =yc b€\ˆÑY2áq?  Vc['¡Â¨†ÍË•4…¬LFެÌOë;­5I}OJHª ¡çù4¯\³Ï\4è+[ª…öy|bünQ¸ÿîÿR&Ö¶5YøÂJ9oÏõ¯\z|ì,îî˜ëš ûq´}Ö7üÂW§Iq80?v´¬¡N_jÛÞ^¼Oàóþ?$cƒÑ›E0 @eÈjhÝ81¢ÅÃt.Ú›BgL6tó캡HÆzq#Cí" ”?ãN[øŒ2ó95ÚÚ”KÔ^Fíä1K®Êû5„¹¿TÙ°B}|PU÷„ñDó³/’ƒ³®#5ÈZþ%¦À?Ìy¢éI=7<´u8V0E³ï>WoRØc±&xÅ‚ç$GÄ%ª{kè+ëøjÕaåàQ2 WfÐÉG:ñ|˜1O¨¸ŸA¨¿•Š,!¦ÈL——w`t#cÖ”)Œƒ9ò¬ªniÿº«ëBîo þÌí¦Çä=«7.r"àxgÕýåŠ)NTÆÏ Zè±âQÞœX î**,‹’Eú–Çèû‚ýÝ I…;¡ÀËÙÞ!UÈÚe)ÍC·E´Ó².ùGŽ!‹›ÜÍÃ[;Àß$‹ò»ÇsÌ7Ö4H•Å’ªZÃ@Ü·~h­oUvÝG®õAIù &ê<ò1Áˆ˜£Ezâk¥|q¬l ÆgïQ¶mŒ:ªÿ´ê}1/jìvÂu(@ÖŒi—ñ§¼¶Ç÷ Ø`›ª¹ž’;^ªÄ~go™Ëv\z¹Çá°~”ò£¹ÇÂÌvÓ9šËÒ´ŒS.nôÓd 7{cºÞ’½±ýäzºNÒ‹ë_s?Ù8—¢Ija]BŠÕ 1µ¨ÿâ(—çBžwí)·•uêÕiç¾øqÐrøŸwÛ^•láì:1yçË”L±©d‚źÛÞÆ(fYJ»ƒ ˜ÿÀj×?µ·x¬u½ãÈ×ò¬¨ÿ ¼÷’!¶¿…³ÜÓÛDz_– ê®óÕ„ÈÉ—(%–ŒàÉ S¥²Ë†VŠ/@¡ Ù{\ïkÝ^¨ešS&¶dR¨¨jßyæçáø+ð’í‘>‚ Ÿ/ŽƒðZø˜ôl¸NÍ 7Ïi”aÄ«g®N€ÇÆKp“.VC@n@J6ã†_µ¯–n„u*¶™ûj§CB¬æ—£ó‚À®ÈO~‘zY;¿_¶0ÊkŠz}¡´1'À®xçOQJÀbÏí×:“$Î,zìó±ò:cÞ…è,[ì³eÒcG„N‚ÇX¸õ.&ò7–íì²3ŸýƒÂÛì¢ÙwäÑÛ²ácÏ}óà¤í'´Ú,ë¿qÉ[5$—^'s("<³Üø}! äðc¯±R/wèißýKÅ$§'à’……o}ReÑSR0*ùÀéPÖM£ÿæeJ§Ü×úÐ:0¿â¤sjQ2N–ÑlrÙ‡.[O8“@ aƤý6ÞÛmzÜ ÒÏÞÕQT‘“÷·ÞÛª³ÒCØ;‡¢¦9PXÿèw¡pÝá16›Ï÷”-j6![WVŠfG8jEåëÉTL„ÈÚwÛ8²Uþ/üY,Yî¤Dïº*ÞÉ¢Hºn„¹?5«ÊVÎmèIdèØ{aάE=h,ðÔ|ƒêô"O[˜AlpËê k*gNó”h g­/›båí1ä}…ñ?gÈMÇ·«½“Š3ªø8qü|&j³[„FµU_;8) ªfF¡úδ†Fá#ÞÀ¨‘{UÅñË» ‡ÓÅËSª% ³PD|ÿlvró.==Cxã~LЗ[ð®*?yJAP/_¼×dvU³]A’§à=ʘܡò]Õ<·³‰)Zdÿê‡{_*O=V:æMØ 9_—´`5ô˸°/9—›“b3îmeTŸ¹åuI Š†UP0ýAeŠjQy×yÝí̯µÙ9ÀLÇ2Øûu,×:D’TcÕ4^êó¢]5 -Øw÷~‰.ËíÐÅ4åŽ'¯–Äd!ûšFÞëÂ/Eqî"ÉŽ—2НÛg~ Ð‡ ©¸SöÓD*t¢€²úRõ-sp4’.ÌdÞú¾þ¡BMß IqûŸóùWcEÌÜ—Ý4|ÒÁкRX¤ŒÃ#àþtˆÔ DpgYI—:ÁüI}÷±6ó®z»}Œ³K©€|‹’ÁÏÎÕÕ˯$E…¨±Ë¼pà àƒËSë¦Û*ݦï-|îmNÒ$|ñv²¼6F×ä\߆Ôä&c‰ 7;¡ŽxØñ5fVà Lóx|¥~ˆí« \l!ßyѱä|ñâ ÏùÖ 9¦ Ãüš¯{⠽훢z+s)퇨¢ãWjä =®öæã3V˜êr6Çá¬ýÁßÌ#bi”†FOãiª§oëUæÛ"±Î;Pmz‹+ƒa:XU•äÑ—c(ÉëÐ`Ó¸Î_Nd)Áø %Wª¶„á ›˜8'‰mÏÀÿ·ßefÈdc¨o,BЦ$=‰Ä•¸NžÊð‡ê0 Æ‹ãÄåüÑg§žˆãêíÞçè%-h~fs,{¢C&0¥\¸~C2$° îAL+C9R]ÙáêWí N¶ý‹Ó¢/ÊFà@:o7Ð~÷Dî¸_ô7”nÚ=j–ËFR*ʬ¹Pçè¥YYH”€¥­@ÑÏâ{¥'(Ñ<2 ´@˹qdüõôòß×›ç Ž2j}ª{AìåÙ™£š~?aNÒ&a¤å¼ŽãvaD’ð—€Ù"˪ñ¬0þW ·:Ó¡ Œß?8„1ŠØ9›"(é.ìÙ[yÁ风ÌÛ<] å°³)StÊ}ÞœnàY<_å´-G9.x¯7aYìôF€5GÜÓ;¿"žÚýèÃö²¬¨µIuýÚi´Óº|Ù(ÿ7ÛæC—fi4—-"wÏŠ†ïzòò¼ wT ¶;3©òLZ:‰eœ}—ÙugI‹âtµtV¥ie“€¼fQ{×÷ T¾µ0Š×ˆ÷I‰"çd3–ú^!wúIJó޾>§_aUñzÑ'‹ý;xo×üáIí?=ó"%YÚ¿½zG1€[-Šd ÊC†G†l'韘«Ü þ»¥¢;V~bz5û†ejKÔjÐVÍ©aæ¾4ÚÆk5†H$“÷Á¼8é_OΨþøFAž’ÞŠéŽ(‚CŸ=¾ð¡/õ&Fé¹®B(tr;Ï~yÇC–­ÜÁ<ˈÃ@äðÞ“;l/ì£ÒþµKxh5«+±ÕC\u{ ËØÕÉü4ðo È ¾+Ø^¢ÙØš&PXCHäεÕúÉ…r É:{[\žù3w'aL‚2Æ£©Îýyñcn t2viÒ¨–sŸõÙ²Þ¸ŸÅ¼Ü®¹¨F`O‘ z—~ëƒ2/PýßîX¾R!õ:{†]+%U¼ázö›µ­4àÀö¼’ÑÜG¤¶#ƒµ*þèE=.qY.g|†è[^Oѝ\/1oÚÞâ´A›Îý4^¼USC¯ÐÇ:¬ä& ¯œ  ª¦±ÉN’®ÌÿҸϨN¯^Þ¿ {ËPÑ&S€½i‡h!©Ô¤^¼ô*^oÆHá9Aoîü!â[º0=@j¸/@AÇš!h¿–ãìh"»°Ï5Ø¿qϤòÓ_‚¶“Þ ÙùÝ ¥ûT¾—/ÃØ¨å‰Ä¤m.ˆp—î¯^^ÇL0ÏŒÿeÚÑ·½o¯òoœçø”Iè½ÖcF\­lóÀC4-ˆø2F¹ß_î©Fº6ÆÚ K®ím¹Éƒ0þ4>Š$®œODñü_áôïÚ«š‘^È%´*îçi¡µ5O†D =dÓ4Ç)yŸÇüGÐ áz6»ªË‚yP†á{¨ó–±8™²‰Ìù¿åP9¾÷õ$3=½rè7ºT I“ “¾ÐÇG4Ö(H¯Fç´Ì\ãsp}oáþèþÏ”ŒÜê]¹½ÙEÖ fäМڞ0~’¬®6b®éñ&4ÐÙ¨g)ðlõuËœ»²ù"vtCúØ–‰å ç€«]B~šÅVñÁ#¬2€ò·òü@R­W+ßé6»Bï ê—µœOŠC­5½>®RC âS çx˜|J l%ÉiÈìÎ;ļätEó=6œ¬¡õ…ñy—ÝrŸ?ƒ‰ÝÁÕsÏnü,Þ&ÍmO]©pVw”¥*e<Çœk«!.✙ÔͬF Cü'Ì5ƒ’gSP&@§4¹ã·e›®¤z&ª¨ñMº#yo¢5>¯L¨~tK'™ðÍíw'L`†Ìö©´!|²4S|”O»À-½àü ñºqÃJ:pô7‹ï%õÓ’!”ß ÃêW™z²[²á½Ñ‡”˜7¢.ÍÖÝéjZ p è]g`Ql;ºD3mÝQ\¯ÓïÞvD=£æËZ97Ár¿Å‘*.”Im\Ì8¨£ç+Øä®Œ5èåÀ _+ã ×ˆü$Ú5îࣆ¾€I݆"}9œ¾½äç›—¬x)²ˆ˜‘[… T^©;zÍÅÅ‘òµÝÜqõ&‡„fé¥üð†þÑhçÌOÙºëg¨¢ÐÃåÝÙÆ i"úu¡ü›–͈”î=oT:‰>SuŒçØ[ñõª!·ø“…6lJ‡Ú,u£2ÿc}:«Áä̆T¼ˆ0D¥lŽ)Ni/Qcîë'ø6@"°ÒõËcH~ómðY½oñl¯˜Ïªmbý2ÌøŸ3towg²VÄÃÏJnJZ̆³ÅЛOa‹£˜Çt3NÏCÄr·˜¦®'€nü´q&uÉëg!vm>01嵘€ŸÄ2âyrèÄ—£Oß!&(^:“'Ø@sU?¥2†C!c$ü­¾7Ÿ;i7BwGåOìïÖVäÌâF㸠«ž»§ÖÄ\0]N^šÄc²ßçal@´¶äÅÙŠ°%QL5ÇAà€îPMH¿›”pûFeH÷7{¯WLI+wTÐ~β¢îe?qº‰åª•ŽŽ––PgæYU¬´~hq๿jâ/¬È-¿R𯊓¦t7üv~Qé7ltåŽtÝR"2h{œ«²ÊÎTõYJ/C4šä¶FöëË0QVZøÎT}ß7äsyÙI/M`s¤-Ó«ƒ]ÖìÇwè– èr®ö ÷jŠŽ-û!ăI@úÂrˆ¸,"x®Œ5}M çÀ h ŒM8ò‹`f;Qs%Séê1³ü¡€e1-XS!m3¯F˜¥˜ìªÃãÈ1UÃG6!·ã2ãœnCÔ ì#•=±f 2Ð?ÝRõ–Î.ÂÜ;‹aÆŒy ™Œ.Úàv  )ÜÉgòeyªmPaì)Å:([á~ÌA ±C-@• ÒÃ-æ`|ÓÙ{EÀËxU®bYÇ‚ËÌî]º®%Á¸Ëžu¢õp¬À² ©Ù4"£3Äèe»kíÍñýìö«­NCQ_äDpð™¼tg‘ÛHpqaw—q¾7åÛaÂÚô7Êþ–1;3c¥ UÀÈI´}íàOÙ¸;9Rpþls­ü\öw„-\šÚx ;h3ü­Oq):^¢Æä¹pÌL¦YÕ£Í2–¡bxš°‹i0pj4ýsßÃèò eÑÝ/³6&Ny€b.#ëLïXd¼0.ǰwb–1‹ú¶ú®df‰JµÓ3¨ý%"(MY«Ÿˆ“mÅÕ|‘É<ÿ4kŽÏEŸæ‘Ðé%Ö]òD}e''ÿ6ÕJýÆþS<º¢œ ë=H“+O(½Ïb. p`µa†i[ò¯¶–ÁÒÞºöG#06„Yk6¨ÄÀOãe›Sô+xžNƒÃöA 2a$:aTòß? ¬h L½E6Êu)ʈã"[îÒ…ÖC,Ö0ˆ«ðÆå’Ògƒ²àIË*Xw&ÉÌǧa.+ïxÅ¡âJù¢Tâ–ä ¥ JpX»‚uá*íz]^8»ô ˆ‚÷/ì_ =«ÿ²ž|3ID½žï æòáÇŽ°—oÑ>¼î ƒÈNóljy ÉéS¢,†õ šŸÈÏúuµ9r$³ šÀ¦,}±%å»Ì“¸6áÑVWEÅœÒwã· íöbÂ<‡ ý±:¶U‘+Bc #ü uÍ%­ßÌ /%å„‘”y¾œîÌz­_#®`Œ¨?1à÷Ötë7Mò…ãÔ¹Š§ abM¤×Ò5ûaiã§M,Z*s)F!–Ú4‚†éKuê«¡ˆ¸…°=BÿûÔ¦4²ÊCÉ5u¤È¡xÙÙHÆí—[(œSRø­B³Á‘<…j¤\LØëDØåP=¨Ï)’ö÷¸‡r^fzoÃf0¿G‚¯ó€õ[qN¥Î|ýå`¤žIRብ:W€°å†µÕ¯ÀnOõÀ¿¾ÍK”¢Û`»+ž¾“nÊ7‹­¬â°•ÊÚ^¼W“)3E¯˜yJ]Þ!$Áµ=a:p@4ʵ¾ B>Ø8ó“"KDõô ÜÓþò¯ –”ƒ‚cdºîþ æF™´‚„43γ¨ë è ëßpûR7P'cþòâIòæ„KûÇ>2‰vÎ98¸Ë>oiP®ÕYcíúí4º>ï3¬R}N ^&õ&QQÒŒ%~ „IŸ¦Ú-FÞ¿Ô/þ|¥C:ìôúæÜ‡ÀÒÒ´óìñ„8cÌXdrŒýMµðlg­8J²«È ³†H¯ñº”_â@‡l´Ÿ¬Ðváíl€&j<,2Çã’W„5ÊÙpCеÕkBô°r=l9–¦­÷ý9£Yš(×7_[{? wz\ßx!…›±‘Õ·ºŸS-›¯®7â" VB?•û‡i—І=Tm{s)´`¬ {¿C(†çOLû<2j3r¹D¸_ ädJí¨n?¿FÊ»K t4žÈ_Õa«Ó¡Ž]£–¯æ Š„›+¶ßv_þåž¼›«¥¬ø'„û/鈤4짃>>•³?õ䢥>=¹‰21Òóð^›ômg ŸfÆòÔÑ@ 䉳 Áƒ§)ÝT@ËÓ- X)$B¿ÈÜ,1¶DûvNC™Oáš?ÔC8{Ö­tIóĪ)¢ë‚DÉAì” Ê³h_d—Ruk¿a9¡üÈu:bˆðÿ æa¸/ìkÏrC!32yhŸyž—\ÀÉΙ„ä2Òg0u­ÚbRiÝ0o€ãâYÜ~?dÑ爛ÍrWšëÆðHÙସvbG;ade-wMï ê³²ŸÿíBÑp 99&­Z/¹ˆ ÉDÝ𬗢Hq‹Ò¡›Ày_nsWXWÃ\ùeˆgéQñÀSÈ@ý#§8:Y;Ý IoÒÃ'aý-׊܎\º¢e„ ²gr/r!®‘ªžê?9цµ Tlr9A4 ”+yÊè* pªD6\€ðÖOVö­áeHEø€+F“Z>Ë"ôñæ,@z¥Ý=3GJE” ×YÕ8j§©%~z$€ÐÇtUÈ,§K]¯§ 8=}f‡]K‘¬¬# åo5wðXKuxV\b.Ϫ™_1ÓìÖP ‡Rö*ÑF‰¬éƒƒÏÇE—%f»Qµø¶Í¡`’eøµƒÐ‚€¯Rß%0(±ÎJï)CE”È–ÀòMý ðª~ðgp}É⤤Z–¼DºsM$%e Ÿ÷T„ðRuU IÑ…‡97:[ÐY·út«à„$ (ñOød}47ÛÐ"6N´¾A ¤ºb¤j÷J3ÐS/¼³óÞÁô/U¨N#º‰Õs­ j©HApÁÝUu,išqki ›ªSåLræÊì¸MO´AìO;[¸ Ýînh.Bq8&2Š[´½Š»ƒÓxL‚Ö…7)ZF"’ ²aùš÷ß*¶ÃYœ‰[ˆA1}ÉžiÓ_ç®UÁPñiqaÔ˜rj=v:~< ·7\Pçg=€Ó¾‹öSþíà£Ä> =ax‰ê o<ß§p/£«“ýÀ%Éi*¬pðņÌtÚ‹ôí¿3î[x[@ Yˆ"XØÏÎs?þWÐCèš UÍ¡¤®/Ÿ¡L(-uá×ËV?hi‹ÅuÛfyÏnÚ žB ñõÄí*“¼# ¿L.üÊÛŒv䯇‘Ã3&Œsµ®q¶4y)îùætÙi/ƒâã,fW˜X€†ï8õ¿÷=d°¦½õ§³:ˆûQïKi82èxl²ûl=KaHN¡8Õîà ev;_þR·ª9w‡ûg0g#jНV­/nú4¶Ù»®rC8yû‰»Úû·çÍ÷îX!FðS ÐôI2YXwüGw¸ë0AÐSË‚19bך oŸDæúR¯&•¯ìÎÖÆhG×úŒ9øSoØ5 žœlõ£«®äw1÷^¡—€ƒ;i>©¨t5Ît¡¬fâ¼…do§üõÕN =¿®QüÕÛ¥Ú<ƒ’œÖOå\¢»‡èéªQ6v|{_dî=÷c®ÈÛç=å˜OÝêbÚ#—ƄŔÓWWHö>ôœžÑЪ­–…u78å³#ØYL‹RáüûŸØÏê~#«¾A @‰ÿ¸Û9”žD£î-ÓJcר«|ìJÓEµz4ØXÅ&ÄïLYMh4e9·Þz¡ç†Ðâ£\=:‹~±cè¬9L纆³3Yïà#G~Yè$p¡õȲ¹)éºÚb)XióäæÍË„3žTlN‡ÄžCZ»… 9s ƒÓ鋚‰‹F¤¥Â µð¢}hhÃÌö¢—.¸›ú:ìEÆÄ¿Ó¬Ö(ˆB¶êIû@ö„Τ ‘%ºë—ês–¬ömÛ’’û•]’»MºÇ!W72±o˜LФÿGØ éLÀ¯üpôá—G\zNùD)°ª2ÖÓ~q)Öã>=G"Á˜€Ö&€ûrÐyëÁæ ±ë\Þ›I´!Ðyót)¯ãïœ g•9vQæ}4A“ØêîF¯ …‡Ï¡šðŒ¤ÔÇ —µ…Ù:|\—4àó“÷©9¥ªB%Ëú¯} aÆfÓ;*-®@¾ÐÜ9÷‹šÖë\GB—}ÁÁ¤*ÁYü>ÿ»ËdË/ìL‹3ÇxÂïã £ÃÞ|ègW²®„í$X€Ò’ ·›¥ÒŒ™çª?)xy6àÉ#ŽØ{¿ß-?÷fMµÁŒ±e­CÍÚ’Ëm²·õ¢.ºÓÀéž2r-ãI˜èêäi, bÃvió Ü‹`a­Àœ}ç;Z¿òÌÜÙAþ–ŒRh³LV*–chE[¶­êGtÊ1Ý•lè^½á¢¯t`†j/Ûy s%vÿއžm]à ¨øLa@é1t£2E"rÍtK)ò¿®ml}Ù4U”‰ÒƲuضøâ÷’VuCIpíPE -3'83˜:×O^X‹Žì½šæ°®MƒhtÞˆ~ÝHk(†Åe`’øö¿ÒïRá›iºëU2œ`ׇåx\euçovU!l§&Þd^ü:ËÄh[·{]”zÈ-ÃÅœ[«€3åŽ~ß½®ËíOC¸Ñ:û’Qï³@&¶@8©iôÙ. ‹‡§Züvb-†&”p°‰Ü›´±Û¥d–gŒð?ZsqÑ?Ih«S£^í¢äl5±×âŒá}s‹‘MpÒåÀv ÁÜ#€º¢÷¨{qMchv‡º,+BÈÃöˆ°Ö0¤('†Š [‚[T5ÿÛצ»‰­¹fŒuè.Ò!ZIdÀCbˆ€vzzó?i–-Ú7Cjý†OMs×Q‡ œaøC5׺”KëopT‡ö¦Af¡Hp÷-5²Œ?¥ðQ4°ïÎ!ò¬À«fÍŸ£OY»j`/c.áÃôƒÀSÕ8Á¸Êûì_üá^ÿ₎…RZÚ=~ýªabvEYƒÖÞµ1­ÑðƾpðË2ÏÕï ?pcÚF·)ç+çyÐu{7›6R¼Ñ9è²ÍÙ\Éž[Ú>5ZqŸWÞCà EëTÅã»h’^»æÞÙÈp)/œýKFwZfK… çÕèøÆ ß!WÊjÌo2ÔÕ°¤jeæ&Åx²¹ñiüÉÏ€tçäfÁæ¼æ/Ô{‹ä‹©*¹Eɤ½ÒiÂUy5‡¨R{Eg›UF Qae¼LE§‡=v,ÍšLi”­ñ™nÏx¨‹7ºÜø€RËþñOvwRT2–Ó3j¬ðo%è4ÍZZ´)úex˜9:…ßÒËãô D4…kº, Ÿ’Üÿ†„œ·¹1†õŽÆ÷ÒY×j‰ÞVW=˜ìÚðËï;wÆïçµÚ1ÑžÚø KeØZ%Ú!i¡¡lÃÈ^4»…ð¿Àmf¿=ßóÂ?ºÆ¶§úF둤ð;öÕ“zé8IR‹ê£T´Ê"ÑX,„°f&2†ÄA54g¶Ç_õ)n*)ƒŸÍ—h·å›»”n£€ÀõÐ%ÛÍÀ£’Á`4~šâg–àãš÷­Â¡Ng^¨¬„lܵ"ïÑûójÔD ab3¼&L˜°~ 5y§x¬×#•êÛ©·ŠDÌö̦~áöÝ¢ýfs<®/Üï‰%85êß™(p`«{©¥Õµ­´A˜ÒÜÞ2ë[—?h‡4_Ö1ª]0 À"M!ˆÇÖ~›BT?Š;69H/3ÊNd~²Æþè=§;]Ñ<ù8õ‰^ƒø¦ÑºŒs…Hù5ªßvÔºôŸÐÉ¿ þ/•¿d10õ)õhT£ðhú oÔk¡%M,²<{_Ñ·MæLpKZ“‰ê £Ãkž+‚3¦Ñ´ûÈ£¬gßx©ãædw €f¿þw“ë#iýïHJ0úVü·«#e°ƒ&fm6i]Îÿ¡ýe‡«Îç«£qaèÓý“´ägM¦ ‚–÷l2['η¯×²MéΫù%оžW>@8I­_>‡¯ñg•?@<çCh6¯m×ù1Ö+JÑ}|ÍøŠÌ:» ñ¼o`?âvõ…¡¥£Î0;0WƒÑ.ôÌúaîtûóû‰'ÙZã›M7>µ)]\·Ã*bÚüö›LV ·ðëåG°>D Æ6ÐæT4$·-‘¥¹O~¾KŽÚ¶é»f8ù¨#‰]Lsg7Èw˜¨#þïל MGÑ·jœ Ò‹¢qŜ׭¼p7ÐB§r†ÁhnéÒT‘ß3Ë´y2ð@–¸hÍ€yGªS ìqÕ‘ÔO·%¶ªç©èÙ¯þI¯yÉ«M Ç£ÝLJY®1Á-÷þ UG–¶ÆÛçTÝüß„óŒûýyÐ'‰h¼¦ÂPgÝý³Ï µÙ]íßg/[jrLjlß×Z6]´DÊ_½ñ=XÖ:W½t–\' âýœu =Âý$ü”;‡-™|ã qŠnDzþ ƒ(úÇ£ñKî÷ ÅRxKº>Nìtr6±<½ð ¦K;Å`ž¯-ƒÆŠ_M=¦ÆQ„n*•z¹Ùêß Õw÷ëkk\@Þ^ÿëP°©1@1cVÚ#s”¹ƒüDös‘5–Ú$¨]…øe†F¢Þ~3)(Š:O!Ö~º¹ØHùÔ‹IìXUÿ=è `YÜiôXjm´|³¹âÖ¸A7ó5Ü»¾ðÆpKÿÿù;&úŽg«@*D…oO&–æþ|Q\³æŒ€n$áxÌ®`pZ‹©ˆùëdV¬gO©œ¸›Ôö¸rEm~¼7t;ßF¹âS k˜‘ò,„”Ç´J Âw Ç îîÒ“$}v,3·Ýh4Ñ=s" î¡‚×i‰{ÕØ,í"Õt’£)—7èÄA·¹V£(.a‘Óò.3_YGT÷ }­3}KóÚóÜsBJH9îñyš[ 5êùVÌ `û±Ÿý|~Œ‚Ñ‘K²‰Èœ¹íðuª:ËU:ÑM£ifŠ þÀ­°ð{6f}—7-[ûÃÞQúíw¹¡DÞaKmr€\¥ÁIe¥0Ô¬ìŒ÷ÐôþÉjq†&I×Q¢¦ ‰_;«ÜAªê„+&Þ¡.O‚°ö‹Ñ*b’xäå^u. êâÛÜ•C˜ìF¶`Ó1áb~Ëå“EÌ‡Õ VÐðž ¿™,½¼ôÖ+õÅ5&À¶Å1¾3Úå·Ò¾]‡6yä4AÕÈ„/ÃÑŽÂy$ a;“úrÍCŠ‘~dn•«º/ù“„F~Ï‹pÝeqãÁÔ&ž÷Û?ñÿ´;Ise<–¹-˜4çœk¨=Çóšõ>ýâI½Ôeð÷ÍZ˜âÖÅH¸8×\‹AâI1 ä)ÏŽþüT:JgÞ”€»}Ÿ;/®zõSCè9ûZ¼ÄoÜ™iMnŠfì¥ ¬,±üwGõdÿ;¢ãûT2HélšÝÑQYd´Ñ:ÍDÍìeiŒ,Ê_wˆÎv㸌¥bÿ+€Kö§æT¸!ÖÝÚ´&myØ`êÕÔÇpzÅ=¢ÃîkÃæ=•w/#ù<Å<u–äc³u6%²“Þ+"u:áÝ(i à‘äJŽ#,~ ÙÈæß‹à n¤jm¤É×*îuÁd.eCý3ø…ÑÆ~Ì3Š|"ÃþŽçÚtz7nz´ø$ÿ pÏíñuV¦ÄYòåÈ}L|…ðæ³º£Ó5“üž- аv£½\vuîÃÌøÕ[éDÚA¦_¶TZº+ÖYžqöElØmöàÈ*_ K¨;÷‚w–|·º[rN™ 6E[YãU>=Η µLà‘%ñ¢w0¯ùƒß cÊD7º¾ˆeèÓ·dƒ rÇ·¹¡[F:ù(ä¥Â¬—ÏßÂ)Ê—3·±D6—È0](Þ¡Uâß9€‡g3Çi’ä&ña*Ô?ªÏ÷¼7ÞDÄ<)$¼øyöDx, ‹›Ï)ù&.”ßwÞØèÈlôç<‘]#–P°ÍzÃA •!u‚ÍæÂb¬IÄ-—.þ] ˜‡_0¸_OòùH§´Šf«G°vÎß ¥Ñœ§Ä)¥•Ýãa[ œ;uy·L|¢dfª÷…ˆkýZEœWdU¬áØŽ˜éZ^(™ ¥j¾û-²Ê×®jVºñšU”héMrü…ƒ«G»× Ê¢¯YýfíjXNœàS®hZ\éߘØ)(Pßõ§ ëþZ·}q.´]îE=¤‘’¯€×––øEÜÙÅam]€B…£Jý^§m-v^uc3ؽµ<­Lkiþp‹.—6ë†Áp.q’XV××QÛ1óÖÁÐsGæÆmÒRf¿ 7òÁ~nź½+]ÉЩµ¯è©×X uFõŽ_f½tVæs¶¬°7®ÕýÙÙ7Ú#êH`U£Ð-°gCeã2‘¢ÏÌ˹R"ÈW5‰×½އ’ŒFJEÁ“xKSI¡%xÄ\ dz  ¿pU¨´ЯÝ÷Ä‹JâÇi˜@PÄ„fÄ5,/°%›+…i–ãäѤw¤e®J¢Ó,ØÔ#žÁX­¡pRÃßîlK¤ã%JÛGŽ]òø*‡ætQ›Nù—‹Æö¢]z”üâ2ñäq*Û ºŸ«ŒžõR¼rX|EwA¨>?³Ö3)831ÝŽ¿4OBº,NÝ Ôû†m¤Ðä¥ ¡©Eº!$Tá1äXß é]_}ß'•kE•&ÎÜd„ÈEÜKQUÌMK˜üÑJ¬Ù6e«Ndº›mû2¹Á^ ú­éurÍÁ`«YªPþø$×P¼Åoc·;÷:ã^%9ãì&Í%ÛS–PÇvã9ì%Xb -ùTòž°þw²S– ñÏ;Mȶ†mò½ Ç‚ÞÐñƒ(ÃÚ ð4´\d!«<›@§b;7Ú$ ûŠªµßÖ˜%`õ«GVx³áÚ&€ŸuLãlŠÒþµ]àØ/ŸhNl_xIŽ] à™*˜c8v5ÿ‚™‘œ(2HO³¸˜S(’ÌåB)£¤8üØFcé‡?iUpŸ ‰€DWéh»G`látaNpÿÓðH%“·c5EWȇAðX59uM áÍA .j¹0ôðþ1¥–+ˆcIE¥îìñ˜¡Gêͣ؋›j¹&é‘v°ƒƒFï½.`ÄûÝdif대C>ª¤aÍ`÷‘nùÜ”){¢,-åDu麌O&šŸ¹Õ@غ_ÒeFÅ9ÿÇ|«%Á ½Ö²¢ÇTôn‘` ¾ì¬‹Ð{ÞâX{€ÁÌêsÌMkº\<³Àz÷ÃŽ–¸:»Iºðù <í_üçM&Si­ª°€T–kϰbiù‘ðÂÛá$Ç#=;•dQe¾é1(d´);JZ $Sêjîĺ ôíÛÔ£È%Y=µ¾ æœÅ>Ÿÿ#ôé{„tꆹgÃÿÿE«`)™IÿÄaã±¯Ž¥#™Ï/Š¡è¨ÒÎH›-An5ØâlÜ_µÒµ_i.Ïà¼õ¥îš†ß$e€£}·ÔÄÀ¶²cc»ò`á{`g7¨sÿ^yH(nôûç$)å¨uKççN‡\l‡|Ÿ1+ïÝù]gñœe,ÇÛ³6w éÞÈYËí„xºJ±¯wa1H¤åù:GÞž’å÷¦º„‚$›ëFQÙ#³Í$½€([ÕÙ}+˜›„,YÀôÙ‰ßHv‰z*R2¨Rû£46½)¤(•›ãËÝËÙ$#3‚àê6ûSš³Kê2 Êöß?KRõ¼CRQÜɸ¨jCìÁ&jÏñHÒ<ÖŸª>©Ï5»hsxô–蚯„p˜óÍÅnÐÍàrS‚uâX@kñ›Œ¯¤‰c; Î¥ž%õÖë9îTk_åH3µðø…øêÄœ6ÿû߇g6mÊ[/òˆö쟪peF—£žvò<{L]Ô¢m»"mk²‘¹­UDrÜVËt×=Þœ=Çc0Ä­„ƒø“z‡¼ÿŒUïÛ>ëVñ¨‹ÑÐ}åewÉËŠµè-Zñ VʆÁÆLwœ‘ŠLûÿ›‚:´Õº&©¸“‚õÌ’2­Vq¹•a8À½´ïÒ6³½•“ÿ]ÎͧåC‚8bhÌÏ¢îƒZ¦8 ¨„çË&¢Ãæz^!-ß«­;D±EŠèî/’År_Æ[ºßÕ¹ˆgßíY¨Ô∅˜Á¥OÑõ^¼¬ƒ«Ö‰;¸™Ñ¾•r hØåÔhÎ/Z'ŽñôûQ7òë®(ÅwEã»C¿ p'êZ‹©ùó%wAŒ^ªÕÌVë+c5t¹ çžá,Ú¾—˹p‹†fÅ´Èüý-lãZúñ`ë)ñBQˆ µæl|“ð±h|"A”?fm®%=ÓéÅÖ›÷PècApO;š¯äåéC›Ü.Õˆ ·ƒE9?_¿¦CH:ø¯íCY+ž0‰twº[þÍ ^ýbÆf&ÝWfƼÈCt¢–x€qþN—Xþû\‚lfâ2Ü›þxûßÖZ—èþ‰I«ŒyøÚ&o‰ó fÈd–²¡î0+åjäZjD3Ç·ÿ÷²·-)Eä ))R×f@XÐièÀÄ„Ûlâyð"šx_³LH1Xœs=P†ÏWFN6™T‰’ÆR&Éõ¹£ÿ¡ ;ÛÙZFÙòoM(¼-øˆŒƒ7¢#%'†TÞÖ6ÝñX+kÑT÷ 8»Ð’pmOƒÕªÝ·Þ‘hÄÙ.q¨…$àØÿG2Ì×å»ú¥ôGÈZÊe‹ßÌë>»’Ü:°eØ\\/7¦Ãîp—°rçËBØvû¯7“~A` Úd¼ ¬¹àŠžÍb«\I3jƒúk¦Ó/Å7 _Ýóóõy®¥–ǽƒï |ÿˆž‡}Q²k‰t„qSÁÎÕšç¶gb¯¸ƒ1üßÖ ƒ‘‰ù6égÑè³Ñ3]DùÕËf¬À› á\s ß4C XÎ¥DAKÇâ©êˆ”¬« P—ór:RB´Ží‹Ã+ÇJçÿHkxV°Ø½¨Hó«\þÁIaL˜´š‘á²Zj§9®B?f‘[²˜8D…hÜÔt£:æ”ï0¯v¥IÓ˜}e˜R¦†$¥|ˆãýG‡÷‰ý`BY3m\¶s3^½Ù †Ìµ®’y ÷~äû¬¦ûÞ¢£E—tJ5„ ì;H{˜|_nzS}ÉôÚv'OçìÕÌ$–¡ð^ž)qµ6K®›ä+õX)1r«ìëo*“xp'Ç"¶&Æø^J’dÖ¾k}ŠQ,Ò@ âEš\D)Ô˜|©ŸP¥‘÷ÿCÍNSË3¿š³MSÀªþ•ãîL¿­èÍ$b©2 Nxó6½Îíˈ'™4¯0ƒ‘ßÐN/FvÀ³˜ë2†t›§Ts_xj0I0 ø vbÔò1ýjyóGDLïGŒíwAâÒ¡õ ®À–v¦ü$¼ö­fkòVv=«Í+ žNç7w«MŠ‹>QyŽÚÍ2tØÂ=Ï{ {»9×]E„P-ðmgdU‹ü3ßt ý|¸®3Ö2æŒØ,å»Ëaq~ËóAbÕ­/* W“Á@Æ¢°’lÉ;&Xëùé Jà%Š¶ç«¾ýôÆ´þúŽP½î9íÜ­| Ï,Æ%£2 Ó>ý¿<Wû»·;SµN¨˜ak'˜Á0¹OÿS€V‘YŒ‚ˆš?‡tEøjœ–¥0uÃáT•BúcÐjZ1Ôk»ËYk°þ<6DtA¾ö{ÿ†ýÐMÌ9Ÿ»K/doŠ¡é2' ¶éA¼á4vQææ%¾Ê sURE>jL{f|”q7›÷`aHòý¹-ÿS \÷týà°²hÄ»kii¢kÈ„GÒNWE^|dpn‰T™³ëǬìúÁ7íÖá†þ…h΢cç Ì0ÉLìyV¹3þ|v™ÜCÛ"ÆSp(ù§n».?å¸Ü"²'w`ß  ?.;Y)´ÖË ‚laLÞ¡< ÒK-p+³ù*âm7˜õ¶‚šüòm•& ïNæÄ‰4$ñ¾4'áÂÔ¤¸´[-¯cO²Cy2wÍdlÔÃØ“®Ì×6Žh¼…_[kƒ,q…ï,ñqÁ³:ü„²]¸ÐbnÄcunÿ® -ú¾${©‹ÝªîƒÆxRC¶!ŸU¿£"üÌ>AÓ÷¾E‚X8>”–lZL‡Ë`Òµç7>uÜ4¶è ³Ï!å/ÀmsXý’ëßÁ­ŽåŸ~­¼‹YRùmÌ宜Th%U t±â?+ 4A\ ©Xù"Æú„ßRÓæVvÜH]$X-÷þ;—Â2¸VNV÷QK»áÃ%m=Sº|½º SçBâ›c]~Z0`UþZùf[º>=(¶f÷ÐÊç!,(}¯½Ð‹£!æåþKã×H+˜%Nà‡ÎCÀ&áçµ)MÍUÞ;z :2ÑSºã^Twú¾šfDž>©¦[:¨ióG×î*aHàšŽeQà7÷´µæõ“;bfV Ôj ú·gûÔÔ‡Mou|²[?ÊÚ5bG²óÍá\æÍ/H°sµé‹1‡ÚÂÇæ’<Áµ¹ê3¿s ˆî¾¿ [°k¿×RéQè2 êÔ¹ ©¾I^ïƒ.0Â-[{–ŽSrÇWþ<ù©ø°öà6•(!UoN"4à÷ 0ŸIYÊs×GÞÜH/êÙJÏ+ÔäÊ£«—å[Wµ×0*MÖ8Xé)à›Tì@IÐ%|“Õ~皣žvò<Â.©›ÖôýµM·ù¬Õ…òÔ‹A Á©|°§Z¸Ë³ßYa6—}ú·²”¢ìO j6¨âYS£,G»äMïî€N1ì7 q¦§sÍFm¸“bUº¸Ji :ðt€šFBo"šz#å'=§U¶z˜[*„é«Ùþä? ©šhÛV˪ ¡‘FåÔ ©¢×H6,ŽõaYúÂ(R¦ÖCȦlš"»ÃëïÜbôdXrƼÄ{.2¶§Þ†”ÍAc…-­§å”Šª$§¼Ík+¡òø`¿eqLúûÍjГH›¹{mò V"ã¥Ä…i¹áOïx`¸ý?ö’À]½‚›"×kiùÝýÄ?b0®ÏZâ`BZûá þG\¶¯hÞÝYjT!:ßÝOÊŽù`Íœ„07úÁZýGkVÁÓ#¦É~ÄÂÛAéLÍ\ÊÃÕæ°Nôž2Ì‚pćiMê Û'LQ§M§:8_šøn NWž[ÅýÖ’MÒJ#|Oøøx 1øk—,w“)îÊ«ìèàC¡š¨ÁLdb m·K‚`N •ÍO´[Šu¼íÁÿ¯jzwðлƒ¡aŸÉ>Ì»ï¸eÞ{ ´Úͮ㈠:-Ë‘€}œ•ß‘Bßž­ƒ÷¼-g_4ô²Ñt |zÔ•ÚíüeJN ô,ŠñwJz·Kƒ’‰]L“è'mÁC©Ø˜Ñ·ÔddG'¸ù˜ÁÉqèàºA7©$3^—ÔPô7"”•<Íi¿kRÏâBOXæÍµœs¡ÍÄlSæ*¶ÏíòQº„Ù[=J6‰V¢wµ:´YeÕÝÔêàu9]‡]¨(!ž˜ïEñyJ½»B X‚4âËÄÞxv•?EªÑ]nÉg“¦û¦ýÛöxç+fm…èa hB„¦(4— sPôn é_/,†ÇóãÖ€ZCÐY8‡Ê§%’X]˜þì_Ía(‘¶ðN M±!OŽ1!ƒƒH+ºðÇ]ãÞÝ™3?M;eKùq¼G€‚G3Ñ™ìà2)!ÌÚñ®ØÖ#œ­Í¼ÁyQ(0îo1¢ü±‘£äöT~EÌÌ79Ãì’„Y>ó‘Zó¬bæ þ³KZÛN: [-1˜m^«,õæû¸íÁsÏ;Þ“û ™ )PEšøÄüð‡¦c4÷¥Iø3œ‰ß]w  3UjI­ª§¶€U¿kS?íê §¡ž¹Î°Â‚±W¬ ;³¤FÔ@·4g}¤àšÕ—~Ç:S)†R$àEœåú"NÕ'H.KM„ÄM:À–UŸÙ½‡s€ p’ödÊШSQÙŸWÉUQÈÒ(Qfk‘ ì„À­+õç¾ ßÔû†)ü°¢cä'Múȯ;›xznÕ‡‹*¬µÕ1ͰKjÈ‘´¬ ÆYÞ‚¬'’¤ }Aˆ\•Å*ÊD‚>Ó‘ô’ãâæ-Â%©Þr2| ¥óÎqü[9qÓ:¸ÀEV`c%‡âÆP Â*~Dæþc[ô >{)Ã3M-Á«!tTNØg­s@·õ öüdÒÿY«Ž}!ðÜœéíßÍÓµãdH¶ÒûÐÿÓ™w @°Ò½G$—ѸȆ'cåÕá$®5xMÎáï«€¥ld@8pI*;l9 ­U¹aÕJ=g‡ÿ25LDš O ¿+N 1‚¬šBÝES ã-…>;ìi;ν­oý<\Î ¥•×}) !ÿmÈB^tî(y¨ $V‡¿ÛÞ|w›q*o«FÍÛ0‘#á²¢‡e¤Y袑†HQiHÈsc°ë´µ ¥ºhâ3 XF¼/f´)„WÕ°…È•×âNÎÃ!*1›€MsÃìÒ XYKÂh…^UõBÂ쪨q_²h'·O vô‹¿ EÛ1‰† ,§ *FHÆÐUêm€LÙœû2„þU™™DîåþjrÒ_”[^ù¢]4†þ=ˆäatirÛª~åY”zïä b„òÒí3¸è´ÓÉf³ T‡Üe“ ¶j³#Ô²÷\Ô¶²NqÎI”ëiþpýJ1ƒàsÚéá¶h>¸0Hö­ £Þ`×gÅëµÊšPçQJ7—uí„ô0]\ыŸ âÔ?Á’ÎñâJcƒkr^:q!/^ÜSŒìÏþ‡/üÿ- Ø\n8#iò¸`Cý4[-´eÖ9ã¯QaÆ<;ò”|È£÷2[$ï•NUaÉLeà d™฽Ù¸ÞÔ“@p>z6çD âì;ø€ËŒôÁyãÇLVƒ"ÄÁ•dc´‘…úÈL+Dr…Ÿ¶0¢ Äl¦‡T3üùà,íÍ& ÅÒ5ŽX–Ï0ê½iG©,×ç(qåìÞ`þRƒp­äáü q‘§S]½BhS¤ aßÈrÞÚ·ŸñáxŒ)mƒzìM•µk~„)¡/¿Y™)²Wízüç–ê›⪮º÷Oñ è.eBp*à"Ìfáú_ûÒdjÀoR|mÛr5ãj¸8^6aUö;¶%‹d$m9â‘WS ðw4ÀŒLe”¯UÉŽá\>uí8@ ªiã Ń["׺3ÏEèÙŠëîo‹ÒàöÙ¬Ä0k‡ÂÞi4:È*ù’™º ÿªô¨u4XÎMáÝé¹·ã›8­²¯!˜Y…øGÚ‹½‹®sË)Âl¨ëÓ¶„šI=ÎxOc>1aú(ˆ+cœÍq29éJ¬0{Ûfì ô?‚bXV˜ëgéææ>¤%°8m>Ò Bq,A mS™zY®pPT<¯¨7€ª^FQ—Üò+áDÕlM¢Û²“ƹvi„öu®)—ÓÕuâ7|mˆ8;Ú.¾êÒ%eô´ZnùíŸÂä®ýþVo 6°êᔡ;•Ã6T#Ìâî>´2 ïGñÿ4nWD´Á„ÀQV5fªÊœ#¡óß+ºg½{’€tÌQ Þ£G¢Pâ‚‹wVÄ.Ÿ‰²›¢ =x0tÁH ô%?}†|—û"qæ#ÛË3TnÆïã´¿¼‘ÔÖ‡ƒÑKý`dƒKzev³G:Ó'¡­”(SÈ`I±rEÊ»{ ňà®Ië=¢9y˜'|Mñã¤PŠêïÂ<1št¶¡2NÑ.CÉ{ K rý­Êë}[klÖ<‚qS(™¦Ó®pÚtP¥À>Î;éS‡pÄÚô‹Vá àf-|õG¦Š¿ƒ,ž}ø¤\sçy§ºáºÀþ: ü-''‹K<Ò%Qî5MG=[Õ:ƒ)òݵ<ÃðC©c”åèUéŸÅv‚¥_ŒÍó1ј‘\ýEu[È9ìÒkìG2ÙR¤¤·='zŠ£·a ‚jló"ɵa4p7W¤öÏ Îža/IèRâ"8ß@S9¡ùÇ=úæT¯#@{¹‰?œ Îl•ÌÚkZøãpà'³Â½ô(³w,„À jÈÛ¨¶°?±þ€5(ÍòÅ|' ‘XS«cÒí -¢¶}¥ƒAO¿~c =*yS]ZF'Äf›KåüÕÉèï!$ñ$t,V®·y»×Ð0 ½ Ê|æuWIpŽX¡5Ÿ P ¾LÂÄš@2l†hlÖWßQul[ÔÝe`)PƒŠ=Œ1k‡ª…Ễí’7µî”hƒãÒØBÐâÔà–uƒhÄÑ;h˜aVºå³‘Âïñþaøf£ñpÀƒe´™õÒI”S<'ëŒ-ÄÞ4°-%È¢{gè»Ó$ŒÑ$…œØWpéÚÀˆBÂêÂÚ·[9h)£«P«óv´ôšƒ­ÝJ¡¹k_´²gåðJhü¾¸MÊŠ-àÍcÿ F–‹fÑà ê §FC=ÂRB#Û—¦iŠìx›º”ž0û&bI æqSŒ¶XN¢âƒåâaÍþ¥ñ÷o{P‡îl&\ö²/9÷¼²ÄD"¯Éæb¦|]LkÚs1) {ê?ùqPÉK˜ô³ÊŒþˆž0ƒ†n`ð|nI«äY<Ø€"™‚dž}ˆÀˆ¬y¤ÇÍÏDX _—h’bêÔÅÏŽLà+Cî…ütðnRU'¡¿InîÕªç¤÷<“ÉaÃè…›¹Œb¯ýP÷)¿QìÚR^Z{^ŒÚ{°sS AÈ;–›UæŸ>ð\Wä‚ÇåÌQ¢ã5UÀ›¯yI« Âv`‡«y<Ô@WVBzìÐZ_çJã©Pú<íg|›«ï–”ú«ùi&Ik½™hÚÔñ:qK··‡d[h-ʈ)bIäOÊUU‰´Íðef.=²Qšã‹ñÃQ¨¬{2ÆŽ0Ñ$mÕ(¢$çEÝ@j}!‡p‡>iÜ”Q¿¾/Í5WNu~‰STñ®ßT€\2æóÕ¾ëŠ-¢Üîff‚?ã|‹à-ÏɃœ³—dóq:«×”°]yF€ÖÇ¡¸st~,Àb{íËaɶóå €ÎXšôæt¿ò3ïûh÷Qƒ0?í5xmÜ£sª(¿„æ^3¶´! _÷Ùx.iˆfC E´'èPcŠúŠeÛŒjª–ÕEß'ËJ”c 2vX`¾’[üWTYjn„Ç!]cÈ-œn*µ]¦Š×µÝ\£ ùo*+-È6×Ô]œk<Æ½Š«gm‰ëÆúF=ÎÚëGŠ×ˆ™=½øfØ÷ë \¶mZ΢s^›áßA¾³9ö5®‡ü‰¾üJÂ2-Ió±[»Ø qÈ°Ž†¨ZAŒ_šlGWPœi_s!éЄAê鮬ÉWîÿ ¯—¹™‰™¿lâØ¸D%h…$ñ>‰@Ι ““%LGvú1Ž V‹ä«ƒý5Ñ„Z-HDH-oÅ6]¶à·gÒÍSÞå# ¡ÍãOFf8JJ𺂲½ã4&Û„›ÿ #u0oW¦»Ä@ZÕ«¿ CÂ¥â"!¡æ (Á/×ó]ÕeÅúzèHœªÊЧEë\µü€S!*êAq1å5`9BåÛ§`Y(pt¹èü¢Ln·×Ú¡7Tà~ˆŸõ.wQ97*8[ÙÆu?‡aà8^¹{éº4‚F†‚H6«ßyØ¡!­‘~F"¥Ï`ik`ošÂ³E­Df1÷1­Í»™Åž^bj-¢ª…Ò&p§€eè^ùÜ0ðÍ×/1š²áI':5ZD‰7ù&Y˜×ŽvÐåÿ^6k¨#êÊW˜GUÚóØD [øgžÉ./Ñê‡5SÛQå¿w™ÌÞ-3·­$N°Æ7¹4šÇM™žvÀ_íFu8rò¿þĆNÑÀ˜W}P‰5„Imí¾á˜|1AE9ÛZ;Àk¬‡à{‹ü+àx]NÓ#Æ’‘õ+l¤Þæ"k°­(©\uª7¢\Ó³`å­ÃÈV&E) QPÊÅ#‰•A¼¶vÔ‰;¾ÃXŽ.ºíYïCg%úµ¹¹ÊyÛ¡EweR6Që~æd·[ô ¨ù½M>]S=&ƒÕ»ÿõ„OèM‹0OYn¸¥gÔÈCáëCÚáË­˜Igp¡k[hÚ€T¥uæ®- ôS¨¦¦’2ËlÉÇSR‡fä±÷K€ÛoéŒ)Éx°ï6P£<þ¤¼ã*tâF{M¢¡æ½æB«ì¶Z5¸2-G×*IcâÁé?ˆÜeåC\=/p|¥£´”Ý—’‘haÅ&ÑËV„ß•Xò(Sâ¿>.·í#&Õ¥Y9÷XÛ0d±ó”}³©S\åÆùb\¨HÕLÅcOî±ßt‹žÞ«¿z}UУ!@ñ»)u€ŽÝñÓ/Ï÷£¾,g_åy.Î; ùë`qáÞ…]£ $š˜RϦ£ÀkR3¨ ÐæÃ™ÔûÀÕ7Œ,|$S&2+ÝòÂ{S\î aŸšÊÏ÷ÝÖ…½¹´VføÃWµ7ÕNídÏB¶´\̪ëÈÐìåû=RÙ7™ðª|Ãuãjû}E– r90IåJœ°i—äÇŽZHVXí´—Ä ¥9)‚5³âFÛäÀæŒ\Ï)¡TN$ÌÓ g;c8{’†‘?á@Ž\ì×H0ÿá.ÄŽHÛ(GBκ!ñÿ™ÍR Ÿä ¬s_6ˆA†ÉЧßTÏo,FŸµ”o<¦ß¾diáB麾þ‘)ä€XGy&ü@2iǶ…n#‡•¦oéÅ{æ5àBƒk v­gÓòGgo1tlz1>yÖ߸ôjŒÓ±‰TضoÄåÜÆP2ÓÎ…Û›™Ør $Tr›…²5öqabt`ƒ@q*ÌÙSd좂 êéC0™ï B¸>òÛÁ—¿KP§'ãb :ˆ„Kw©„‚ï¨(x–düZ&û¹nE6Øõ‡ëÂ×m |”;Â¥ŠÃúfØõYа¿•ïèMÎ-€ÿ8ÝiEž†O›=;è Ï÷]!†¿s”D¨å &£ðxÒÎ7^ýRƒ@V“¦û%ÊG} pìC㚎Y©I Y¨ìž…A²ÿ[’i*š¸ I‚ì=ŠDÚÊOÏlA?šÁ¦(C° Y;Î`çhüŸ˜œÆRñï´{CH_nlÎäã и6¼ñÖ•èaP¦æŸoÝú”;£7'ò(ŸlÿE[àWów·I r74æ›%8F<òK5EòÑàÉr©{^ŽOÛ!½’VÊ"!hä{æáðÙ/4Ïn(<[+X¡wx¿…Í5U¯¥|„‹®¬JÆasf#~àyæ6$/¥=Š:A«x†¿BéTIÁP” ûâ´™C$”¿¡X,nùBno$:â?Uõã¢Îæ›×ùà–[kó·”OÆEˆ‘i‰g ¬–EiˆñÛ}@… @½;=䕪ö|„&vEˆ‡ðý—Ï'ÐÒ ƒŸ™y†$÷¢ðruÈ û4;æõUõë´ò-bÀ)j(‚;<VkÖ´n¬vgä9C$néIF<„PWÃD'tƒ—nçó®,Ýqº‚´ahðïÉùøÔý¤ç bˆ8³EûfAùvXlcÌf O±ðö]·vbœ«Ëµï|l²”Êî lÞ£1ų¿=z*®Fæ]ey;!vºi:$"+_¦]x0Ú¾‚¼áiRzäØ[€4M/’Î¥ç{Ñ­®°IñáÖMé¡•þCnßp0z'0íÌc[‘+æ‡>3÷å§’:vRÏ xR‹Î("÷ ^fKøèã¾ì<¡'‹7¬ÞOGÉÔÂOö&tÏ ‚[éûàßí·³?›‚¥"ªiÝ{ ÿWxp &%l*@[·®ÚŽULâ_ªY’¬OÏ'ùžàc ýe ŒÏk8š@ Ûp”Bµ}‰¤w2üGÐJÂvZF è·! ~!ÅõÖ¬2‘%Pz9òÉSåT–ù޲j¦[#áC-(2›S…-Ü#ähÍÒ?V8Éi-y3Œ·¹Ý”â–æHƒôx™æàâÏúTQÉl&úõÓd ØeŒ®{ÈðÆI¬˜*åDÂPSC5Ü ­ì,‡9­ 96Äæë§˜£&ªò‘ZÑF‡×†€i‚œ<ÛÞÇ|°È[HÓZs Úf`ßX¹9:‰Ô¶ òCçD^ðÅØRÂæÏâ|Îc©¼¢šE³SûÙ¾Ô÷ZÛQ¨=F”€IÖy:uÚ]ƒ‹ÁdŽZÞ€Ô×P@[œ &¸3´úÇ!.ºÈ|ÆßɺñÓħ$Ö’‚½ oʘy$y³ 仿Þ>Á–‡Çÿ…óÑ"B‰" /’×8©E`ý68 X ÚR´Mz¸rˆÍ`û‡"KGXx/úxxûY<êõCh`‘G}zŸå}ÌciïœI×^, %œ•£H|f ü…ÓU“kßÏ(L~•ËÕ5ê:c}ìàZ4¼û<›€}|‘_ TåLo ´vMáh€oÃZž¶<*!BžUïó"áÃv.|í…ŠÃHá‰qÙÖõ¬à³2ÈjžY¢(Ê.º‰zŽñ(\Œ\eÛ @µ/ùòÖªÚ­*Ý€½’V=Ex(}ŒÝHN3£¦[LLÔÂçþµÏÃb×XÉSë9ÅÇgm˜¾ì”ò. v¹Ü E©\?yœÒø>Å@›+wîMˆy|6-—™¼ŸÄ3vL L3~é¿‚6€·ç¥5K±Ô{ôþN@¹q[Vj¨Omìj$B5Õ&ùÞáÌ\Ž‹õå³`Ëý¨î1E'¨'ÐŒ˜sIžEWHS¦øpm ÊsJh°>ã²1݈¥Ö„íe&)û'ÜžkU‡ø ûY ÉAÇJY¤ùLÌÞpΑZ½dlæ/gñšÜ!í)÷÷-ýøIÇ[I²˜’,ª‘Ä^.|Uwk·.Lö™….”Ÿ­'s(¡Êe3n£Všœµê+doýdíºýÆšÔŠ¯Zà~𗩬hIšgùýg)=¯s¢J9ÝЮߊE¼üIÓJ’Ëh©¤Io-Tuºñä´*âK%ûVòò¨¹ó¿H[ "ÍÝ—þ‰ºŠLÛF'èh™«¥~*;ìòG¶*>]9ò1—ÒÆ–.kuɲ=Öè;\¡Ž(ùîÇ´cšG2yB²»ÚÇ}`3kzÞ xa°ïñêmŸ´9ì(9ôÅ0&©¤ñàN=É߳ȉè2aQ3+ÿªØú³v›f}.å£n£Ý‡M™È–m{B ázý3m{1-A8™~-Òõj‚HÒüSÜ×þ˜ø1›Ö öuÔ&«¶K’f0áÍöhAÛ½šÔÛvxWÝ$s–3ˆ³Å ,O„߈®­9û/üŸ¯‰åmHB²/™±Ë÷”Xq«]>ÜN9H.¤–^E­M\M]*#‘dædµîÈ¢0H ßR>VÛ'¨Úb=cñÓs\.”§@D|uÂ1'k§™À§Þ ù™­Vlj·n€–³!½8îóÒëߣÆ/!%ÏÔSÏJTöÝ–Íe3üTŽÿܵƒ³Ë6!¾)@@’‰¿¹wÖíòÉ|uV(ˆÎ„´¥8`½Â›ßïÌsS„Ö·Û)f„Áíôóã:¤%r5ðÛåÛ*£qßYl§|ÜtwÎËêÆ¹‹$0gHAè"aõÌbÞßBŽ9FÈ®ñW»EÝÏq¦SBþCQbÄô´ÂµP˜±ü7$ì}CЪÑÔi‡”‡î¯N¿ÄoÀŒÊ›öÖ„wfC«RiúhU¸ñkëUüx/•‘œÆt©4hóœqëÎJ÷_†TH2eç¬e_^êÿÅRn n©,)0Á·EàV"PZÂÚ¯¶I¬­/‹9"¦ }TBET)¿lÑ”ÙÉ)Þ}Æ_%KÞ$k™¥4é—'©q~}M 7£ÑÆãqÅ«©•t¤nZ³…wÕítFR•{­;cYæs;€þ2ÍVfü"çÿèÊŠ\xi`ÐgÚzð„ B9ìž0í=‚5Þ4f×åZËü² Øb ~ªQ×½UždÿáùZÈÿY'°f\‚8tFó A ø¢ã5¬!‘ÈÀY¹ÆWõ®LÖ.‚]?ókí&* !3Žaß@¼zú¸{kNIJ¡>ðGÐ*·1Át‰éÃ"e»ý¨BÑø´g÷œÙ# qðÑÿ !¾ºóYë·®Òwgijù+ô¿kîG«µ“æA]‰:Á~%2@`ä¶•¬íî£I¬ë]‰jÑÚG1o3˜ö+vÉí½™@:FÎçS¬Öøs”\¬Ç‘ø½¾Z<:¼H™ñw× V9•Ò‡U\C§ÒS×- ÖÛPÇ~–JãÉKÐJÈT(q]^okpH´¦uzñ+»F4X=onÄ¿ÚQÔRL Ôeº·‡­±èÛͺ FÒYnèxvw fÔé›§/{+3ÊK†Ò˜ßZ¹ê%\¶xtó127)3H¿Ý‰¤óÍÔŸŒ°\ÿÔû» ¬€+PÀòsžTü0«§.>C|sBâtsÂ7î}4{“qóë8˨[XÄ{‘žþz×BûIg({ߺk§€ÎÈ• ðó=™‡75°ŸÏÊëÑYïXU#.’K…I:û+Y¯” r* —.­v@d™ˆÎ‰ý]V\ñ}'R¾@ôH":\”ß êò( @<Æ6ëȪwšL/O)8H·—톞¬ÎÏ ¢yÚk0n ‡J’ƒh4“måi¦ýg–EWÿd´’–ö¦PÆ~^{„ûƉÎ̉¨Mñ1xª‰JZb­çÀ…ÀÖ¬R$½MŒ`k=f)ïuh« nVÉ©­æ(ÉÑ4Çf³%¬?yÁ–žêFý^ÆÁ½ž½±&–@qèöà7Ÿžþö)Ix)î;I‹­Bþñ!ͱ{†2Œ¸8€ŽJòц.¿4Ì2‰-yÙöè¡Iy£Ãnajµåh:Þ`‹i¸™¾rOe³%(¿2 | 0䣋i$¨´Øn>p†XÞ0v Q ˆÀ”üº¼j׊•Õi†‡ÇF3$M`Ý;økW*Ñ2fº|̣”iy¡ž‡4¡È"{Ý9¦;¢‡Òéwˆöڻâ*Ì^åc]/^Æ ã³ŠðtO{S­áÍÄàý66 µ=+½îÊR…ÞÇ 9îÎuÕOîe¹2‚oîI:5Sö*fçÿ—Þ¦©<·Fˆ£¿è‘ ¥èŽ´ Fä’¾à¡Ëoe­Ã7Ä%äáø…t¿S #<ߘàõOk¡' …³.˜NõuØo¨k±¾°%ï¡l†{ÂÅìŦæÊâàè³ï ¼; °`ÚÑzg¢·Ì;\›®x6öL¨óÒBµ #KßQ°Ú5@×)×#U¢¼©c++Tƒ#‚‘êßy"™hM¡R/±‘øÈ‰º¾/ /â–I4E–ø³ø?´1éHëÆMB“6<Ý“Ÿñ™cä&wÛ¹óöÛjÏ™¹uX½†ídñlá)ˆ5_ùQ8w‘Î+ B m’sp,9ãé·ùãä¹/𢋿ì¡ñÖ†%½ ㈄"˜Ô["÷D 4²Ühˈ‡¸pàZƒ« Gw¢\ޓЇG$Ñ,X«=è#!‘[…Ó˜,S©¢Aêq_5Ùúì ë=^Zýó…”ÀöVæöÊ&IPêº.†³èàNJðØÅ>U´«ŒœÐãwöÂ~ý 5Lé†(C îuDéDó{z†gM¬½–6}îÁ½UK¸1»«]g–¿‚Jf¸Ú >¤w‚tØo2öÉ»<ÃT7}ì2…Ï·ò sÓx׃Bƒ6{Þ2öõŒ}îÄgêO ˆrûjL¡/Ô#Æhå¦uû6Β㤓…sИ¥õÐ@Jñ>“A/…^ÓôM×A°4þëq9Ùjeº¼GÀ§óݨè+P7½8–÷FÂÍù¨ ‚’Œëƒ€XúúeSĕڱ™­éæB·£z8r!ò#]’ ñÝ®ÇX`G%TÍ%9lcyÔ©rZ}[„Ñ^Ñâ—]®|·"ï3¹ßR3¢MgGq2|“ÊL"ZÑdµ*6nn lž:1Ác‚»|ANWË”Žüœ›ÜÆùh²ÖØù€3E ÕÏc~CÓ&i¿H6ëÄè¶à@kQ ºÌ-ûuÒ‹-³>³|-™8j•Aë$tîœÙ}‘ Ìk‹| Ö·Jfµ¿®+Èce©j¢’Í W3Hµø-ëÅ™«I\gâøTÔj­8IOÞVG°j½!‘øà8Ëù`Š\Í“£Él$þ‚ØWkœ0Èå22 2¶HÔ ó ê˜)H"?mt*ðôúÇ¡LÑ-¹GAÜùƒ[ëÄ+aH“¬¨Ê…ì1•A’€¾V.\:¦L±|ö»¨t A¤5£ ñs©8ËÈÆ¸¬[PÖ’˜Jsº±˜^&Pø÷N§{KtÍMx~Á9¯y¦×e5‘:eÎN­úqqs÷Ë**nv$ a~ÿ¤†}…LÚë±gð$ó¦>@Êíå·åä"t,it’¸L³(cÀC-â`’³ëà£;QÌ‹j+Õçµ!ˆ¶BÓ'|þúæOÆ Þ‹`= +®}°÷%~ÒïƒÂ\Ä*àÿd½¯ö~KýêYº‡—÷Hª nÙ»µ÷f‘-|‰¡¯×`Øý5}¸‡Û±svv95¥×ÙØWHý‹;qõþhÃ?ñùcG!ºBªž¬Æ,Õ‹ŒRæ[69ªy\±Ø;ÛƒO±çÙ+¿ÙQ¶Hj<_Aý?…,Lñ'œ'ER…v€­¹– wŠSW-¯|n&›€T¨²6U Ý©ÙÅI:£Ø¤ßiz‡ÊÎGÎkøÔØxÅsñ…S:¨嘚—…ñ„- Ãbè«O§Vüv=¢Qãò©^ÿ›Ì¡õNÀá5¹¬j·u¹Â€±ñˆI.Ò› µs­ä3í­ŽOyWD÷a/(êá¼ è$ˆ$j>Ÿj® Úò™$3½‡ÞŒ4o“Gß©®âEÈñÞÿO8òÛÎÊöÍn” 7ÎÕ¦GÀnä¡yÃw‰Ó^Î0F€SG9·_ªÌä¸d… “é î¦úß š6)yITÙPŸ#y ½üŸ ÙvBu§óƒß|Dûc@¸s‰‚oæÒ›WÀ²Bøæ+ß|×GÛš»V¤†|úÏžud©K«oïûÞ¹;èÒý¦‚Ƣů¥áø@‰æà¥zj²26nm}<-_Ša“×z3+…2RZr¢Æ›kB/„Œ©Ù_­žp=3æu%ï¥Ö÷åÚ ^žÑ@½Y_Q“öaÑEšÿŸ‡¿qÅêãp°Û5Åè@…‡ÅûÕ‰>y¼™šji\‘ìÊgÐGbžËÝ{ :äª,/èÚò —ƒ5/ýÍd#V™t{j‡2×a6c:M•FÁ·'5€Üïsô/Wˆ–ÏCOÞám¨¿ÞKk FËÁÕy†ÀÉÈ~´?Žº,ù6?ý7Ëö$*è‰d ¥JܧÙ7á€_¾àÖ:bÈk™û½ß*>#c ®“”üŒ‘L¬H«\¹™ÅY© +G¸/—T p"ŠáÔñ~8È·N§ITžm–¹‹È…¥q}^*ÎqÿÊ"þî'9©œU1æÑÚÏg˜„Ü­/¦Æ=ÉCdB g‡’È]co5vÔà8^"…ÆaßPûR)  àôETçî+ë÷¨mX êz¤™%'„â¨ú±A<èq– ŸuO¤CùÐ1²%ì™—/™Ìý’µMÛ¬‘¦FÀ,‘@0ƒÚ#Uw¶€ºÞèÊfÍ3ŠLÙ[.†Ö0^ÎÐ@%ë6`H1=í? ·¸åä ¢Ò{/‡ØÖF4"-;²²Š€®÷ióAµ%án  ŠTÊÀ6Ï *O‚!Šûä8qùëEõ̵^ì¾­{ÀçK'…zøÒ^îíf6ÅÛL«@hTKоÛWØm»•¯Íúî'ºc²nRÀÉÌÁþ‰§¬¦˜.ª’²±’I÷jÿÌ< Ÿ=r16ÍIæ6±ŠÑøZÛÏR5B83W‰Ët¿fUéQÛÀG?:8- ¥‰_.Mòðé'>8‹‘¨p.`É%S}\ÜõŸñzóÚîÕ+÷Qä™~¬BÝ$6lö·…⹟»\øv¹•PxçöAñ,¯ãÅåÚ¶9é̃OÝÇŠ”ý9-È NJý@Ö =—L¿µPÞÁ0x_ÞSW üÖög Õ}jò¾a°;<”èÁXT¢ëuG-#oD ýׯ«ç^¼h¼šÃ"£òìwT8¶¨yã¸ú2kÒíç¡èkÚyjgù5F$7ð>îaÐ\'];¯G_K³áFù¬Øè0ýþN§Üë›3>–©zQ¦ýëËD]z#- ´¨¯nr¸‘ÖáPJÍÁÞ³ ÒB$íNÏ—ì3ÎÊƝÛgŽ•­8t4‹`Úù±zO±skA*t»:Ñ«s5øH¸‡"Ãç[‰bL.Ì'B*¯4_ —s ;¤YŽW(2‹/baa‚¦JppͪÔ{ó mìòõÈhŒ4ÜÖt€p†»ú·ì­æ{°>ù“BœtÐÔP‚d“,ŸMéϦs‹0XZï;:ð¬C¡-¸»ÎP>#’c„íðïF<×2§Ý'’Z¾b $Ì7Œ *΃õ“Mž,¹'g¨<Òû™#ø] @_ô6aV ]%'ᣅ§ëföŸ¶¢v~9Ý•Sï¦]o8ÅcGìÕHvëe‘ž™M! ²§é»"Âx8gåA–yÈ€J™‹¶+‹;Ñ»Ìݬ;Î-K e8ó’fíê’RºjÁ§ 6Ÿy¦(q¼©²+ÝšV¹¡Kägý]ìü2³L}i‹Ì–ˆ8™† ^_ÉH+ƒƒÐñ`hµ¯4µb÷Pœï*ô]]V#o;[ÝÍ zŒ­=@½X|Ä0 šüÏ)Å¥­At–mùÊõÒQŠEBL¬—êÈZïxys ‹ò·!GCµÙž¶sxižˆ mbsÖã ûÅì¾`˜ìA‹¨d )¬‡»&ë|‘®<%°E)Ê© EíÁXG-›¹ oÄ0 Œû”Þo9³ +ªÿoâáïwcQ yˆ„X¾®Äë*Š’ÁáŽüá"53; ±Ó)†´ðõMOŒÛQ\ÁvÊ1c=p^¨˜ÆkIÝv‡ÃØnÅ.iÝp«`¡wÐS¤Œ B7íû¨ÿKMu ÒÇÿ„hçöá–Ï^l½G¥;ëUŽAqRBï¹>è¶ü—Øœ£ÊOb·ý¹‹wðÈÝ»:‡,.Ö?ú©,1kÉ4)€n&b†u3BZp$ûiC“".HŠyˆï¿(!ŠÿÙØÏ†gk¯§°±¿fÙ¨ë\8Bakh˜-=š‹·Ê¤€îw5BÆ ¿‹Õ·ÎMP@Q*a_—ÌeDC8Ã0dè+(:¤ŽÐ[c¨“wönZà’•Âÿâ§²ºÛ&øžwOÀé‚¡ËííN3a½­7Þăé:Ñ— ¾Jj=ÏßHûdI4ÇÇ‹kX]NçaÝüG¹Wö™~¹Ôu½îzR„ â¦öG>/\½¤MN^Ä.@Ñ'7ðsÔ­)P!P|- o‹ŽS-ý+݈ê H™dêq‚ÙšæêLoQÇKö`“"ûó5¯’ŒVâÒðÜLL"˜ËïV™ŠdŸV»¾ÊƒQÝyoR  5[ÿ`„¸§°©.ªõ†7NÌ}³á¢?ýÈ´“jÈy¶…øøšsƒÅ„;$Ó·…Í«¾Hõœ¥€ÄbgÛæø(溮Ðþ_=¹ÎH 8°ÐÄ<ø×zQ¶í;ßXñE#»ÁFú¥ø„b6“Õ;‘ œÀbÞI“5xÈk`Šêµ¿¿çó¤®ÁT”É*«ü¯š*Ú¢‹d@öi¤:ï>ç,bæ5ÊÊä“|V‰þÙP,úp"[rè1KáóŽ–¦{)ÏhfÉ_¢À:£#­ÏNñ¬ÒAt$R¹¹shÔéFuxn­2³€g\•”@ìß]=<µü¼€¸ Ç1ÌC.¨¹d¤¯‡Ôá÷«M‘Ñß]«¿å‹c?Ä"ˆ8k‚³ÖÔܸGn•2F¢Á6CM˜Ô „74?b®L׿¼Ùâ¸v¹.ݳ®XôHë¦a†—Å AY‡$2ŠÆ¡TÝ2f×PÖY¤“Mw½äë¸à €vC XælôAÊ*Bt<ÇRq®á’øO «,œRÀí€çXÐÍ0âùPBÜ]~Z0|ÊcÎcsJãq£ þ·"þÅp¦‡ÈpôusDÎàÍ£}Mà¼4¾ºnƒP ÒÕã°SÞÓ$¿lÝ™6¼ÓþýÿytÕp87óÝZ$˜ŒLŒ»?EüÁÕ:+îr&^¿µÜ„‚Ø ^Ìz¶aŸõçÝE—˾šŠ:ýQºá?\£üOï¸<¸¦¶Í9Ù”©IÙ,{æë¤“ƒlî)(&¢Õåºuvò=^«Ï¥Ö.´Ý#]¯(¿?Œ9jƒR±¯øØtûV:¤+~ðÀ¾Í"¦Mdztó’Zp{†öØQÙëóB°¼F<Œõ×m_Û:? VV¡r©8—5™SôŠa|ü:}Ç5aâê^$<ÛþûµËñ±ÝZcš7"o+i |K5Á ..ŠŠ$‰ùT«ð¤á·2py㧨­¶l‚ÁM= m]Š40 (°¨)‘t.o®„´“¬©BŸý¿ewßÅKvõÿ$ÝSŸe„ØÍn˜9ê´‰ªÝõ…˜ŠN˜°»¸ÕÔ2ï¦ÆÑ>[Ù¥©‚XÉrqO¶Á™Q&¬é;|2’þHÀm(_à‹ ®¹¸ŒgÀjëÌÿÊ­õªˆ|Ó\Ny>åë7X߈d2ˆÏáú[€4}•¡OÄà6€ÀÚŸ÷æ¿B$†˜Çì–Á(reˆ1«'+@uÇ}¡Zý0e¾ä¯U»ž±#ëöhïQi,±©á\ Ž"Øzw 9Œxä3fv7+”Q™"bpÖ#2Ð#åç “|•‘†Hȹ³ºPc©;1´Ì~÷º¶\ Š¢`Mý4[H¤¹‡ìV þ°.eoxíGÔ€ jŸµEo6Z¦r ÇÓÐöÈåÐ_2DfKp­¹‚^bï0Ýhx,äÌÂp =V g†½¡]šxG'„Ó@#’ÃSÐ)…Í›ˆà(Pýmqs«Ú 5÷£ÕРOè­^©­J A†NÿvŠzï ;qˆ¾‚(øEÏÓãÏd€Ô¥ðóÊ÷t19Wû“ŒaHeeH½‘·°mЄõáÍ5S£S†{uèò±š†Ã‹þŠŸT.Zâjv4QBmpYTWMÐA .&‚vᛩŸ\ë£(º*ýQF¶R“>þ¬a´b_ŒØ7Áe’Rl%ìñg-¤þÓT³¥OÁÍN,iŒT˜"Ù.Áè&K•¶¸Ô/ìt[^Á–EIÉ#͈¼²`_€9}2VþôíG)›"|ówA—Pi±ÞIª#oP£!§E’‰Ðs¼¸ÖG0_Z™É¾b²óû™wß·ñªŸ—‘Wf}±ÂÝo¿ÂöuMbo‰uù¯Ûe@,rj¤oœÄ¶ëÍ¿½%¿¨{•[î¢éÒ#%K°Gþ·|³¥Ž}¨HÉ¡šûhFâhq”›ôÏÓrk§0¡´ö‰ú`Ñá1Ê.‘:¸01ô€ÅNœ?÷Øùk ˆºb°Lëy6 §¯Wl¸SbU\0CÍ"ØÒÜ´ŠÏ\<³ôs馿ìKÛ7Á@ÈáãÆŽÜ@©iæ`QúX˜cîVô Â1Ò‰Ö‘'露\*o¢ä©õXMôP£ÿàex¯<ž"fÛWÂü²³Q¨•)£«š*=:‹}ÚWì~„8~&Ñ aèt‚½rXqÆúJëljÐ%÷ZFt~ú꾚OPyKwOôÉp+3ÖÀ[¨»”R¬8fˆ‚¤n=iO°À@{¿Þ&%VAµjG[`§Ñ*ùAæ’áŽË QóˆP@1+Õöâ19Uùbä(‹ž|Áü$xÝ%zˆ}wù“F™â= Ë™&CRYÝÏ;?Ö%Y–šA¸’n%‰Áùž’b“yC€\òçLŽlMºª„˜c„*q0ƒÂ5%º9p<ýôv¥íIA¼üÀ΄¿ ­ñÉØ¸\çÈ”øLh_Ü{¦:{¢yC>ÙÎ õ°Tn†]#ðµá¬ÞXèø°ÿÓlHX^âÿ²{À1Þµ´6ï¾²!ƒi‡ÀU×ë-€¬ÓËòxX=-:cpcjÿ„3ÔJua?>£a¨có}ç¿d"Ó!û­ Kçõ~3˜±Å´ yšåÀÈÅA@ÆÜ ´j³Ó‡îñ扗æz'{¢ ­:mKy>o2éQ µ-Æû¹ö¥þ¡Œ`ü”>~ ~JúR„½¶‘&ækévÖ³_ÐKàG|2¦·Ø¡IíÖp5ùWs<ò)Ãý©qŽíh’xØIõágÂÒXdW5p*¿IPhñëFö3®À¢:ˆ ©Ó+{K ¾šÄÐÖ¼”‘#x¼¿SÆß™8æì•«ÂsCŠIäa¼À9“wJ=jÎÏæ#¤ÏT_Wèwxû0Vùž¾¶q\Zót{5&·€K¼Ú¡”¸qÖɪ¢cÌoæ—8Ãïš0’”Œé{&œ÷Æö⯴å4¥®“O&3cØVš˜Ñ“°…BîsZÃ0‰éiïÌ<ž%BKô¯ ˜ Ò{A&'̵Ï?í&Ö“iº"fOìÉo Qxtõ&¡©þ@ê˜O(F-Ý<¼r”—kö¢M&#ýÕæCNÌf«Kþóöù9°Ï«ÚÄW`rù]ý=úzv0ªœû{mÖ…ƒc·Ì™¿êöß®ÁÑ’ÿãɳ6gÝý*¯uÀIpo½μñ„óÐ1¶ÀW)Ì‹êNEftãDxÇÇsä¨Ú­EÀëp¼74Bön´kÚog®\WM7:¨Ðv%IEãÇD!&Ô¼p"#ƒØ~.ŽJ”M ž¥¥³¬b'ÝÕN·2Qåî™’ wÆ:ÝRúò`åÑ[½Ęã‡,֣݀÷„æ¶YÝx5Ù ÿñ0Àp²ÔeSÎ×¢ëæ´•Ôù—ùx(‹š)œºÄ÷þK›(ç.篽„Á+âìæ;´˜7…GÇ<_rÖþ¢¿ D«x꥘—˜À΄;µÌ0Ô.Ë¿peoNžÀÿn Ys5(*,¦äÀ¸ã-z ÑeáqfTÐ}P•õ¢¾Èø÷âç…ÖåñšÙx6Ǘ݃Á¦‘±ÈY„*ÚɤMîþá*6Bé b—«äYuµÅO=àÔeË%ÇBh~0M&ž¶¯MÕÕ%{W«Ò+ù”ÃÐzýÈG¼¥ÈÒ'ÓǤ^r…7iÐY'x1Ѹ±á‘RxÉiM%93 Ô AH¤B‚dü½¿€I- bí*!}’˜ãMDú*Å¥ãÜ­üžñQ Ò9V2MBhÚc¤¡*Œ™~Ÿd• ««p·Zn£ÞkÓéG¢Ÿ§ºAþî· ë’÷e¤¸Psú|p+_w˜´¾¨½³P3æû óKó™3†©‹ Ø tÿ&Ò lÊ:Í&kkÊöjDÄ·T-'œƒ3yÛè¨ᢠh]N„QüRs§Óe,¨I=Ü«Åç#d}CŠI·¨-è˜Û~`ÿö–Ôå¬-ž/ý—Û[è@ë^çå'9ê§ãc”*‹_X¡ÂÑ„ñ4ù¡¡rSPcÁØX8ßX!GíÝ…=µ×ÿ¤ÐÔÎ5ѳüäè ÔtØRÄÄÙà¹ê-ã¦aýä6§µ™Ó¤)š´~ŒÐÆK× .Ÿ5rM`0p—;e´ÔÐ%ÿ œSóT‚X®§ƒ“Žå¡}>¾Îq“´{Ìq*ß+ù*!Þm;¶"È ã%Ù¨lK²aÒ5OçÄÆI«ŸŽŸ*þB]ÔpÑÎÝôÅ8;fàøòß¼ø1?ç0ÐÛ{æÚ4­dš§ ìKšEj÷r?™½Æº\žoÒεf4’}Ž,„þ1Ob&§ûËÿV§‡y¥s:ÿ˦ÚÞ `j\ŒWª*:]¬ñÿðàp(ñwÿTOÝb{BºF•½S^ƒÄ×>s„cɶÖ£gFfl&SA”ŒÂÛ†é¹Nc0)âmGz‰$&Dú6u1s¶<ÍÆUõêr㤧¼68Þòºô¦büþh½ì87û³¯mî*+–a³§1`ÈDÕÚ0¹Æ–äÓhkS'Ðe õ ‡ÜÑN{*WºF”Ö*+“¯&2@ÙÈ'‡Î.V‚»c’iǘ*y‡^aÉ ™6ßç嗶׆:ÅÞYÈ<±?‘±à㣳º}*rÝ5cÇs”O¥¾ÂkaSññt|@°Ý’];9.È] jÍ–ìkZ7—ËË–Fq•ý¾²u_ÂEëc€J<©¦˜XêaÈU¶áÙ¹§Šéƒ-0Ÿƒe¿z½Ÿ-å'ou]ó‹ ô÷k•‚L®qœ4ºys! _›8 rçÆ:w™ÝóbË›œzÒ ®Êì&ù$‹F)K¡ XQɉ´û® =KÇ¢iá%»î{¸Êg&ŠŸþt°˜ÆiÍMÇp«'÷øˆÕÃD ÿ_Æ<»O©«<&¥I À&û¶UÊwÒ6å6w ìF4ÓQ@bf+¬+Cœ>>ƒ\ö pô!±wÃÛ{uÑ珞í8Çz)ŽŸô´ŒŒÛ#Ê ö7ëmÁ¦ ðªw¹-+µå5—ÍÉØÄÎíˆhÕ«ž†Mêh¶ˆ¦:rI¶%zà€– ûbàzjLÇнi2çù1;cö#ûGËJGߢÓViÊk7¤‡Ê-¿RÅu_»ÂDTYOi3+­Yà˜ï°oóÈáyã§YEˆ¡áù£Î1ôãîefÂÁ!µ¸"t?J:‰çgç¡°®§ïêx–7ù‡v×mmãUs^k³e—m>\ iaù|òÖ$%³¸$§  BÆ&U:!’§gÑ—¥ùÊÏM.^&G7…n -o«ý¤`¥á 'âiš‡³£Ü—~yè±sÏšcÔ3¸OFÚO "\¬çÕT(-e¦T)d£²Ô¡D›On¿½ªÑªȶeÉe°’rèÕZŸÙâæq?%izÿ¡C31¦ˆ¼`Ž ¤-•­ï3›d¸ç©ÈÇv5_qk‘¨cYmOR´ºå‡T'ÇúdDQ…¤YVÕ…RölV…o`¦˜ŽâDÁ'c¤#¯ÿ7ÓË¥*[v’Nô\Ûù;RW¡¡È+b?ÎX¶¿iVñ1ÁZµcþV=Y¡ãÏò"†¡»ŸPøjª t—×i¸'KíÝñ†³e¼éZ_Èãô ;)ug#¤qühN`aÛ›LËM~Jmc A´›ñC?v2ÇI9¦×…û{°kc±_3S3ø2 *óÊÆ,–÷ Xì‰ëôû^íy»Á|Nv-æµ@<æ#—R¾ŽgG:†~Ï,/‘«Hu‹àÿF¶—XTXŒ·jðï¦û|Ó—h€#‰/~9!çþ,Ùý{LtbŠŠ›)j¥~´@ &CÀ¨‹Ô¸RN P®ÅÒS¨#…?`ÎÈXÖƒUjÿø†3¦Cšòo y®0šïè•©3Í_ ¯p†Å4[N#ˆ/”DÊ!'1ÜÅÐ0 ÏüBn–Á{ÆQ »/Ä¡ÃçZÚ@˜e%”ñdU¢8Ú.íÊW@ïúÐV6¹q€°e¡ è25qé`/põÎ5h­ß*³£fü@¦þ[(ÞÜJÉÉC«¢ôÜ´¦x'²ÿ [Å×k‘—²—³½2Ýf½qu··Dáé\Óf*ðýöÆ$†©½@dÔyÙÑPz‹)<üðÝzý"Ñò¨}°zE=@já2}¿›å,ó÷ySÍæ.Öœ¥ ¾FÓâ=7·”ÅרoP _¢¯Æ0WåôÐz }%.²Ò"p/lLçQ¤÷•Q !paX®Åµ­K:ðÐÚ@#½›,EslU™8ÑÞ+ñ2Æ¢¾4«ø;7U‘¹ÿ¹RŠ»\ù×Äç=´Ðü`¼Ë·á(þbß?Î~Ù‡­íßÿ`™E+ ÚN§Á\ì„ñÝùbÛÓ¥ù—ø¾F¬¡&‚ÙÝ*p6”ѱ™À„Ð õKU-ëÛk¦Ï…¸^O.‡«1‡Ì`!ÉËÂgÓeÄuK¸1ù Æú£"°*úµf\ÆP÷8Bîº`¯uIôHƒà%‘46²I:°ÄñˆÕ9l‡uÆU‡ ´‹ÙîĬâç7!Ñö7N‹s¾•BY™0êÅ:æiuyj,™—­rèŸÓÉ'‚¤ÀøtcΛAH™|–­¤©wšd H©¬o £ =šç­a ªŒô…¥«µX 3q€Ãy¸Ùª­CÆ(êoJ ë‹]*oãT¶bZ+ÞÑ_êŽuâÛ˜Y’cåˆbTwúqÁwÆïLhÍRÌÕ4‡Ã8‡y~¡o:' –,ZöM<4<õxí ŠSüo‹\ÌC|a±Î3èísš5Þœüó‡Ã)óz¤ÔFZ(‰`ÁV©¨pu퟈ÛF/Uq• y}´”ÿ–3H¶CÒÊrhIU_ƒ“'<Ûf&ºß ùË£‘s¢Ûœ•Ñ+½‡ù‚ IÐ}r®>X>±Xà   g>'s¾Ü]táY€(Z§l‘:~|¶ôR·~†ó‡ŽÁê%RÕõ•áZT6E$ìÝ´Ä+}¼ýiP‡Úè%Ëç,¾óÄQ„®Œýs¥OÎ):ú7Å 6þqf þgkꧤ´Ð7c$9S[©yÏ=EðÂ9µÞ—í¡ðµ×$õŸf"ç.¬ ›Lw3 oåÙîòju@â,¿©Œ`V©U'ô4Sås’ߦZ ¤;A“†•„Ž˜È„B¶o€ü˃f˜-p–UOõÔv fÂ9Ï_Ž£Mf·FEr;Ý\Ó;egI sYïQúMÍ/¶eØÙpS)¿„:.Ç7£ó]u …¨øÖƒtÿ{NqbH¸|gt. êóèâ–·ˆø¨áùI)¶Öó ýÌD”?gãUȘ¡ûqTþìncŽf/›øp·Ÿ8µ9ˆêß÷ä¡JˆKä­aIцëÞÄ,m5*tšD"O±ÀŠ\kÍàÞÖì–.Ù.ïKì¬iv°EßR’ªÃ ƒûÒ]‰Íá(@«N3"ŒÉ-šá:­J‡¹­z—Sª¤1žm#{hªÝ£l7¸êó޹ëgúA=8¤É•¦ØÝƒÈ× ö[ÿ¥aÐ&o2Ö íaA7l!ÊYžeŠþK^ÆL¹2j¡V©îÍ!cÏÚîÒõfp3 «Þ€ÒyÔMÄ%!å›ã š/ÃQp9pAqÕo–æd ¨¸rq:…jm‰/â·‚êqÓŸØ ‰šš·>ŠÁÅÍÄ"í=iÆChŽ!Š;*8¸ÍCóA™ä?§Ú©íp@þ×}Ö¼Ø4u…|F©Ht?~ŽIS^ ÞݸM£u(ðù­æ8 ‚F'ÌÎ W¸àPŽš øC™þ§ìrÒ‚WžñC`ˆ­”ôn` DÙ™[‚ÏÆÓHŒÀ%¬Æp´´T„ Òy¸h©„âf¸¿5Ëða ²þvIvΜìþsë>½¤ÃLÇÀ)gr~_[ü¬ª¾’²×„Șê¥é v2Ÿs§Oçì/`Æ0ªŒÛR©¤.ÀA®ùXšÄÞBIĸê®MåZß³Ûԩʪh¤e±Ù†È3¢ƒ»C@ªK~C 暎Æ?(u¹(±¬÷OÒïþêZ¤…ì¥ZŒ<Šˆ°}c ÌË•ì2r^ôÜEW(xèËmÕãåORœád+ ™ŽNÂÁí¾²Þ¿¹ ,}YÙŽ™y‚2ëYߌ>eaÏVwÅ}.—ê`®Ä4‹ÁÑR­Ä}y9a??@?Œ¨fx±%ON}\¥D™šX<˜ãuÒpdUÛuÃàJê' Cj‡ŒÄ>»y,‘éƒÅ¡¯8~ ì¿My‰[‘¤ô€ÙúeXê®]J¿©v ¯`½KÍÝéíløwñýVYɲþëû¶‰´ÈÈÓ&°È þ§®s3vu<¶Ó!¢?`=VÅ@Ž’¾ )f+Ò»ÃÆÚp ÜPA…qOy™ÙÆæÊB|Ål$¤J.T3˜üÍ[õj´AwxEùå1¼Kø¡Q÷'0‘%”œ¼Ð]’Ï'Þ¹€Ä‹–ÐÂÅ^`EW5ͨš,™u@j‘õ8Þ¨A«å™Ìj±¬–Xq>q^ gRùg†§£úŒ4wŸÃ¤¨Ï´kS™e«×Z”±Œh^n&{Iƒ¨–òÀ+nBwûÜi°¥’y^êþÃu<Ìbh)e;¾ÉvBÐÍ=àÈ´raîÙ†¶kndQvç± W…5€dË"Xˆ¹ÆÝÇ;á㙬·û§#`Ã^¬m‰æ\´ä²mÛPRÂ5$M:_Ä–\â¿Däµ€äßÜJrZ,` ÍtŽ–D»)@õHƒÍ#;:!³´ë…9“2ð¬³sÌÅaZЕðj{À½OæxùHE]‰¯Ñþ„ÑÏÏä¤@ ?Ò Žhxþ£“Í×}ÈëfŠB²¿SÙ0ˆyRȤèWÅa·Ñ£•â`'£.ˆ1ž~8%{2#]$àì@5¶jA²²ÙêÀjÎkwèÂÁ¤¹†7ïHéY×Kƃ%ŒÐò}S°+•~—ºÖ|»˜å¼·—Xš@y9aZšë§þGÁ¦Ö[j9¹›aKŸ|.—(«û¤yOñ™w‘TÕN-Ú€6Zthã¥ÿL> ÿ{ çZu}Zþº ]ä^nÎΫ㎇ØßüÖ×m¥V¹ ; Æ–)’kC›-IX­»Y£g LTã›$¦EDÄ~¢Žøš˜ûùw¢#Øt¨ƒØž=øyÕ°µîˆÓ&¸½4·½ &‹sÜxÃToÝ´ÞÉ®ËÀS”WõÉ©q¸–ûÑZøâ%šl]Aep_UeÕ®¶Ó&Là¶é€{&ŠÊ¦y-ÙG˜éÕ{ŽH½+„Îæy³8͵ÄÁ3ßkJ¶o»&|õ^ÿ#kþµÚ.Œ>–'WÌÃñÖ{“ëdX+ GÉ1Xþí4S"û§¥µ-îÍY÷= ²Ãª¤µ¢3Þë‹Єƒó -ÓÁéãspž¼o›Î÷ÓÜ'¿— ¯iå(ýÖz‚ë)RÔ^br4—PùÖ«,Ö¦Áí>h¨Zþ`éü|ýÞn`>¶Æ¿ºZÿuÂ;I¿æ^’…i3Œ—Ý<áUvÃ/1êùËÙêÿU5Ÿ#?HÒØ-(4ÿõƒŸÐ¼Æ~m ¬RŒ«ˆ]g$}ß©æî×±òEà6bæž&Ràí/Ïb¬¥‘È8 cEâ#~ÇÂNI,H€ •³ŽÒ“\ø!s ºÍB*ÖO¬Çrnð¢H§Ä²'T·ˆ£Þ^Zç…¼‹6µ.ýÆý!ØTÌÖ?&*ìŒhÈâP‚¼çF)Ó1M.·Áà H‹àqxFÿôÔ.«w XöLD«+çÈ ò5o¦£^PØ#\,§‡·Oˆ«|Y‚œ¨¡æ±¸èò÷’y·BôkTaJSJãUÍ#ä™]Þ¢È|ëF Üœ!T¤5‘ÂÆOÿ3Dž.G]¶dý‹ ok(¦ú4õØ[²Ó1c£çØJ®+öHâü"þ§»q,ÕpmS ¨_h'ôŽÚZ±;é2)®']¢Ï2ÕèÎÜ[ÚGûHƹe岃s«'³JÌùÜN¿+I8¬3Má‹ /¾ZE]'½«õ ÄÉÃG§IUh¼›I1ùšŸ ¨±ˆ*Í_G"WæFÏ,‡ªš^K×-&_܇Lp*öûõ]ŠoÙC°; ª~oR?,LÎÈõÌfÇ…cÇEf%°¾{`o öS_ý§a•@: ÃÐÞ0ù¨! kN§pš"ºÆù¥Rh5‰f+®œgPw.½%x<‹·GœJªoÃé²?y€ß0í¸/Û\¦• £}{ŽêÆhžñ¦?8*q@M“ѯj,Ú*/Z÷~ 3Ò!erBè—g¤¢|‘ב<ò¢C ²áÏvXøå3‹‰&Aô­ ›>=&ìÅvú•A.€ÌdHü6rmKNÉæÎ²ði1Íɱ?AhÞµñ|1é_‡æZS•ä`UT¦sPU‹ñäÃ*(´&%§IvuÎ©é© ¼mã y÷­úÞ½Á¾‚¶‘öâñD ”4á/7¨º­+³J.EmÞÑAƒÏi„k=dT.‹F%‚ú7¤ådÃ’Â=œ…Ö Ì–'–Á‡½í’ʉ2g4¸’RõbºÆgÙõ3t#¬8@L-~¦¢Ôs¸pÄŸûgÜ/ï~÷D½þB¸°Tö€5„’ÉðNXŒ²]GÌÏÉ WEé~ÅÃ:™|™›ˆXŽ;cÑÊ*· ù ‘º:.ï˰3á-sç[ iÖË( T FÒ‡W¢îyÏ1.ï,#\T334Rš´goÒ2>¸Tº@k²ÆŽS¬Õ!“Ñ’‘HŸžóƒô8ÆF’˜2qh!vÂíHÛøý°Îpô â+mØKÏJâ›M©Âuâ(†!H‰°Ü|þº_Y¾”±KrA—ñp¥«_‘,?Ò´#4­µ„<2 dsÜ%?E¦<ŽÕ÷1Ó†Aâç!vi¤Þ¶kQ}÷—'KÈt6ëïYîRbk‡½æ™}6?Y4§¦áÈ1ŽäsÌ‚J‘ªÛ6¥HS1zéx¯w§:‚iÍ=Aøohñ”~(ñ+—›qÓå5z’ ›šãßÝ5ª8ñÃÍÈ%º›ö)$Å"ÎBK4Ã-ÔD×ÜjÈ“/´67;{ª-+µ ±'ÚAF.tAÂÜÊš«ÏÇ+§¡eÖH댶=Üò4/&_­ó¾¶sz~!Ãxæû¶æ%´”-éátoFê’c›‚€Þ\U‰Þ™µSêEpwäßI–W³þ‰’Ý%w­»•N{ÎÛÌÿO÷kVF¯Á42ÎtîqÇÕÇí#£0‹S®í«™V€*Kœ¹ñ± n<ü#‡ÙÅð5í½Î 6” \·× YÕñ¥¶ÿ{Å«% {Bö–:YdN@q,äð$e]¡=|ÊëÉXt¹ÿª‡/9¢¡Ü÷ïŸS{rKXÕ¹Xt-.Ž¡[gO+ôaï-Tqá7±×^‘ÁÇnŒÄ_›y@ëÀ¿ˆÅFç‚ΰuÕ¶ØéaÚ§<ÄAíØù;o8«¥Æw®P²‹x'-ŤÃ_qÍï«S´&KBψ=ñºè{¿˜cÝ…X+ïxÂ22B¼"ò»«u[L»@°x*ióT8ñëíeùÀvòé:¬ø¡ ¥1ò…ƒn4iGª9™ãèa4ê¸Öc?>Ü3WN†Xˆ³sfâ1I4¿ šš¬t9¬—¥™Ö?»Êéáš9$ë^ pŸvuC÷ Ècî¿j‡Ô.ÅÙÇ E|ëMUÐ[÷ý—à8QR¿bi¡yÿeƒG9ÏîNmGËí <Ç„Èa.aØÕºsvT7í¯z@Ä76׃“!k¿Âz󱚯‡âŠºÈÄÎÁ<}‚òmà¾âEoèx£QN˳®©>rÇLS º Yå!¥JYö»ÏVbU)ǰkeûÇBųËÞ¦ÌÚfo£­H[QEœacÔíE­ó¢½[àŸö?7í¦ŸB‹|û—™î#¨ÓƒÓ oRF¸5ÄyU -÷7¡vQ+¾éG[6ˆÖ¶°y`øÁ$0ÉÉ+{¯’7ÂôƒrÁÌñMF°F9…™ä7Ÿ%ÔIYBsD•%z™jaüñ&zšâf¿À¢ÁHhHX¦j…NŸº' u[œ%Ðÿƒ‘/`m⯞ a®„Í’ßÀ5Æèñ²D“¸éDPà #µÛÒ•Æ«~Ï`“\C9I¾*y³ãÃÃõùFAƒ¶§ÑOþ϶y±œÀ¼ˆ±1Dñ{QÝ šyÅòÓzJà1JàFjþ%*Q5pŸ‡F‰¹1üÝàK‡¾2ãÁ]ÉÌFÅû0<4rÅw¬H,}V¹T¯æ¼a½¼ ãxM”¢ª³¯L¼Mü Øèš‘dúªCü¦Ö(¸ bï´yÙ±fÔB¶dަ¹I¿‚D#v–cì݉U/;¯eÂ"¢øÀ6T‰u ° Øöõ³Ú¸ºÔ¦›Ž_û3RGÀ~½ûÿÝ«ÄêY®¢R4è_D4 È6™®—“¸6ƒÀÀŽYˆ99´pC>ö^?°q™lÈdFߨœxC%Ï¢ Vc@ÕóàZà!ÄxT>Ã"l—‡×âýf{1MüúIH™þˆØqŒò“Ã4ëA¬xÀxtçGí½wýÉK'@‰VƒpU^sýÓ·/]#­‡EûèÓí(%ΟíZÊŸL¦ÝtY‡ÿÓêüª©ÝTá ¢cÊ×çûûÇŠãIŽ[•Ãý߉‰Ç¸5s„÷'ˀɚ0¢ã!+¦K~)h×®_9ãl]È×ôænè’Ð$" wn› ¿ÒˆåÊ^gSJ˜²’tÃòÏçsÜ~u©¢‹a¹e±Œ¿¬ŠÓ‰%jæ<•5@¿ñU±½Ÿ¾nS PÖÍ•m2Ôj©çÆ0Eüöôm³÷îá4­ã%Š®ã:{ûQÆZ 3‘zHPé©0!=‡@.Mø/_Àïo¦âB ‘µ?·­ÛÔyºéïMiGÇGy²ýB×|FÖ:OÎzCŽ‘)0ÆnÔMcmÍcú¿-n>¾Ö"‘Pg·cö ÈËï;o¿šÞ»ðœò5@¬AŸ¬ŸánL¨Ž z±ÆKVªîoå«›ÒcC§–û'§qcn€’6*î’+Þ»ˆû{¿ˆ]o‰£Ìõu FlÇ;y£ªø¯a Q-ÚØÊ×òNGó(¿ÊÓó·¤S,~˜†%c¡ó…设ݾ]†Rñ¬â„6y‡ØÖ°øpÚðÉÆ\|íVÎ$¯Ðu«+tCÚ¨V¿>eºæhsrZK¢­ÿÈÓÁSe¡¥ìrñtŠ®ÑN„›±±g]’Ú³¾â;7‹+ wòw+„¾·#6eÿà6WkBþÂÞ!¤rŸ=žf¿Š4:2`’„ˆÒé1›mˆ]íoSÕA®rAóæôÂAñ?‹LÝ9ïgÖôjVóŒk,{¨Âù­£œ/†<<ú~š3#éÌ3¨“r•B˜Ž¨ç˜hµ6> ¥¶y‡Ç‚_ËHñ$#÷"1aEI:3Ë1~öpDN‘ì o~ˆLÚî1¢B3gYóÄû4áoßO„ha°»´£‡.Î8eØšUy²ú,ɼ›¥Ðt) ÜìÁÜ׺ ÅŸ€#™ïÛàe™®:¹Ú—‘æ-¡Ë’ÍvÐÒ¤þ(¼Ö4ÿ9H@bUÓD[ö“)“ŸÁ‰VñÕLNT¾zÂ^¼ã›‡0Ø»gèæ²~ƒ©%‘g*Á9X^[ì5ár6‡ |r g]ïnUðãÁsŽm§ì/ C¤BðZOf*o"˜eJªý1¦Òz*¬ÂÓ´ø¶Dø‰èš‹ÃÛÎòˆ?Ó‚žë Fâ.ÿ'‡Ðç³ÃÚò>1::¤îõ¶7Ö«æÀk.[­j"©Â7RWÓä:Ô{RüJ+.ï™ïmL=^y´©Én Îü˜D±¨û!Ø¿lì÷ôÈ\S$Ý‹¥Û¢<²ä·ÍúÌbÓÌÿ*’/þÆš@1ð´hQÒè¤QÀëÚQ@i*áÔefŽh‰:¹ÊÆðD)Püý½ôÊÐ!kfŸm×h¤¥ü ð<É2¼ÿ°wJõ F¥ú­ì\yüɯ1_E$¯ÜšÌ={4¬+¼"f0Ù z¯®!Æi„¬ÒV¹âCÌÞe‡æu¦D3U¸ìƒ®ÞŠw²“” _C̸þß²v{[õl 6o4˜y„ A­6HZÍ:[v°ûD8bŒ³K[”YÔ…¹ìAÛˆi^ýŽ!(Êb’-J²<¸1Áêê«ßš¥€QO¢½µS%ÝÖ}Ô-WÊ~ˆƒ²ˆ*M"S%Þ&è“5‰Å€³¾?™ˆÞ›•%à«sÜ èÊ{¢=?\hƒ|4¶%¬káÁÆ ù¥Í†Ú™$DæKZˆrùŒÛÈx®ÅÝŠ,zŽïýOÐ!2*u0è³LÐOÇ£oLo\o§"{¡¨hbiœ²€õ£¯âí6{ 37?ó¯ƒèh B˜Âêúb„•¨Ô¦»ŠH÷’Gâ­QPìJÃæüž£Øçó:¨§‚zYѦvØâ„qÉG‚/ðjôñ„̨Y$nÞ¨Y ·h^0úƒWGœqKÛDmˆB%¼ ¥ÝtÖ:,>cá€3Û_UçYžö“Svÿ¥¼óØÚ€0 Qð@~õ“ÝÔÊÊÖžSkWî`ZbÌ5•“ºô ‡@ò!‰’ÿrÔAr)÷Òh(i¹IÑ’Í,Ã5ÑÏ¥}爴2Zó zÚuóÏí“]w‰I.wZ•ì;@*AbWîŸä 3C7˜Ü+û7ÆØ¥~†üußdšnMì'<ß #±KâïZEá•4<>ØtLÇù &ÑŽ‹:«F=#,Àî¨Ø1phH†ßz©_‘«åcˆOëz&'ÍW±BmÓÃ3ŒÐY4ê‹Ör•^¹ÅSñÃrì±Ñ[Dws»7’Ĥ±½ù!fÉ'foËÅ”GfÍ‚óªè”á.—ˆõN°;h(=#‘g"9YCô´îêÏIæuLÄhP‡uCcÙn°ÿæP:x»ÿ4ˆKd_·zæÝYR9ÍVø9Q릜KпVY‚!UûwúrÞ<ä÷¨ê8U¥…²ÎÆaÅ5R&ìÉ…<„­žHý´dø¸àÓEæÚ˜Ø»Yæv9¶iŽÖ8±âF6âì†OõÇ×<ë  ƒ‚Š™óâžê%˜ªÔ£ç&¼‰¹®[Õ Vº•²0Op5UÕáš4õ¿’+øû©Hær}¢Ç‰ŸŒ"b¼¦ŒŠlP¸îx¯WGplݤ’å»Û~ž³ÀaÖ3‚8V†¤zÙØÒ^IPà¤:.“—…ç6ã*“W¥V›¬áGí S £$;©S„†x``_£29ô!ì?³#ªz<Á8¡™Á7rã¢#Å;‚g­ l ö›mj*Ý›B½em«m/X˜ƒ®Éž…mdNº‹öîÌÞ0©’£ONƒ¾Ô{½e¦©Eƒ”¿Ö©££Å¡ˆúá„Ë6"¹Ñ­zJW”!V-Ã¥5Øsšæþ·UÙP`ïóâÀFùÖÜqí ®0òh{Œœš´„Ø$ôöÇÅ™6sîÛDE™|šJóÅ$cO¸åô Í¥¦¯‰.#½Ä´²_ú=»D2»÷½Ä*=Ç»! ­µoÕB¨6öK)BPÜ,T” B~ˆª˜ªÝ|µ +íØº°"ÇÓ}ý{º…ÿS{ær†ºާØóמͷý› ¶ÖúÂ$ö鯧§È~®ÖìÚ”~Ø9Pz‹’;$bç‰0\®#iIÁÌ'©Ck) ¹›Ê-7Hç&㑦6á€Ù‹=²%ÙE¬“g«Œ!Pª®;4é&£T<4µQñ´~§—ŸX#=@e<º33Ö„šêŠ:÷éçÿ»mHÇTï\מþúÍ¡8±›ÂÓ':1çó@ȉ ý"J>ÀS@ñÁSò,Ã;—0 +5s ƒ·±]åͺJHKÌdV—_$Å÷È‘¢™¢²(?›¾çx ÃzÞ ÙAHÑö£OôTÜ*,ZߣЅŒœh@âÁƧᢦ]~Ú¸¢ºƒ>G~•†øB)Ö©j‚ólcÑ*¼!÷ˆQì);võ\Ÿ‘Û—ó¸(¤¥Ø—^ƒªUÔkmIN.™aÛÏ"¶xð¸ë;§öQU¦± £ÙQÙó’)àºé¹CgªÈxPÈO Q-`Å ¹@Û¡À'\ž`£,Ý ¤N"™Mv¨€jÑ‚¡¸“Ž! ‘'š*å)qæ—’‡÷c[zù¥JuçRÁÔNºú®APKÚÊu)öb7¼K’cì-ãñ[ju#z.|˜Ÿ jã­ ´ù¿ûÚŒz­ªW { ¼Å—ž™V¹Ž×qŒäõ”\´ª/#òþŠËç€*ðézǼ1Rî;Sß·mš—UP­fëZÅà1 •–u´ÔFä¾¥*°Â(BS‘ßõ“>ó‡!¼ðˆú¨U†°´Mšù)|ÖÖ3°:ÄÃõNÜŸ ˆMé@Req°P‹¡ zBE½;±§­Îs íðä¿Êªæøã5µÆR.+Bü‹ôºt%VM¸Ö¨:õ‹Ô‰2¾ EŠrä|A ¤Ô¶ÊËk!Ö$[vi£‡Ïä _•yb ó‡5¡qQáØÿÛ öaçq¨¹ƒ’Ë>’ñc+>þ¹ ¯MA­0.$®ÊÜ¥^¿;I7ô”“×ý©oÖ¸šb±ë;›áÄuÝ2®â‹Ã*¸ý¬Çbkò°ÇŒ3™jÆs_9\’øÅE,LÕ4ŸD8D˜z3‹‰HÑd¾Gð½ç*Ëý¤}ÛÇ„¾]Hª¾TÂc=£Cl˜Bžû„ôq€®JÈ98³JéU šÏlŸ:Z«+7NÿŠŸdáxÄs+šð h,ð^·&¡É@Gn !á í vË)ÔpΈ8E&zãÆòú¢^—…ø{±ÁCÃçYv¬m:€EòõÄþ¥Ÿ¸PeªŠ}®üL\¾Éfk}ñi*ÀkG¨àû¿ÉîÍyw0Þ}´—³–«(ûDïêi=-\*רÞ;F¡•9<aÂOå3+} yø”ì¹Ó˜/æIW>jùã®Ýi;ÌýEæmâ$4]Òm]sβÅ0**Ü^Ø…ÖzSScd?ƒA„8ë'¯LlÑÝ~]ªج1ßÒ_AÛä’Wª±Q(·á³ô¤xÆßV r )C$CËj„=¥)í ™ªOŲp˜ †­®§%šæš!ý€Øº8õòÕþ*º,›;°®CeŽ#…®S° jJÃ(0O…’óˆiÚ%»å›x’½YÝã;‹Ÿ},R}°7«6-eÇJ<&n›òìR gÁ(E]\sl0@‰FǼÑ*²"^Ѓ?ÎÓ>ŸÖœ#»Yj;¶»ƒÂnéj#y(VÖúBŽï5ê¯É™$$¯>ë 7I{º6”UkO\kNˆ·ÈŽŸï ¿ñ'oÊ÷ -žP'‘ï)B† ÐË׈ɥò««Ãäò––{Û«v‰œXm/ü´Jªy»®¼Õ#<€[Èù"$Ë& ¨A>½]œ¸‘ ­mH¢¯D7¨¹¤0DCN¾²'ýêKÉ¿½Ù^Qå—æõ›Jˆzxð$*R5`ž÷c;°Ð,<•Dý|pßóçþšÏ”ÔGJo¯‡ÞŽ™ã‡hÌÒ«?Œô0Ÿn+Ô¿;·bN£ç"W²ŒÔefe…v9c²GÞ倯c€IïumA’`ÓC uOváš½gðö<µKáý÷®W›QdÈðû)5Š­&z!Ͼ¶¶qH¤ÃÕ]—oU wyÑ g2¥”ÌÑr8gˆJ&•×õµ6ž1=E3ƒáŸP–þ8USŽ)–{cÿ?ßú*ûîJ\ÌsÆñaøÉ>¢2¿XgÞs§,û˜žÃ¨ïEDÅý1Œü‚ž ýpø{Ú˸=ÿl°üºvÒírÉëZ\ßòÒU%%EªU¬Ñ¹|Îë5!“1¼W,Y“ݰoh\rJÓ5=8pâä(*zE'VR¯UbEÇÆNy¥mÛlã´@НÇðrЧÅ.ÛÏ|ƒ¬Ö"¿êm´d1aÜ¡Î*³»‰¤:Ãl vËÁ.Sè0åÜ™:*ß©E:: >Ç¨š†‹¡ö-ÖÁöÃpù[Å’&º¹×x¶c¨Û3DÿIÝ4-iÚ{ƒ¿°—M'–[h@‘³.+Ô Bàgç®Ç σ\íöUÐf.±×/D @—+ú¬Çµ""›ï Ô]xÄ Ù¦ ëº?­¾1ê§ãŽ©é‚ÿ+õˆˆO…É„´Ê;=bux»n˜ lPЮjÚW€lãò’ÞîrÉÎkbÙk’c¹m›1å¢: U,s*£>gUþE…<^–¡ŽsÇ52ÅlòN2¿¬Ûãx¸Aû\êëj©CÑáP³6]Çe  #òÇÌ3ÊOÇÀE©׫U¸µ46nøq¥Ù`[O¤”5$€{M¸‚*<²tú‘sŽÏpÖª;㣤í¨OT¥Ùo«ñ»ßöl9pimu³{ÍÇ*ö}xð´M53À@`ßÅÒûXDÚuÚ¼þw‡lÿy6¾ä†cï•k»t ÓÍÛ.©tä¤-#‰³³JÊ# «ùížWž™ÏÙÞ¤¦%vêÙÛ$¦tBÑû6êÒÚàAÅà-2IÇ:õ]~kl4_¾œ¹h.Ü™‘0¦ÑÜ›³½Ö`¼ü¯¯(%§ÞÁ£ÞìF “½¶ßSßk⟤;¯ëÇ¿-LDkãG ]ß¿ ™×UŒ8”^ˆŨ71—_Œ6ÿ\é^ó'HæÉ,ˆ§Ý»þdÿ“5„ˆ¡v‰ÿ ¿Ý}Ï†Š’¹î@DÐ\˜UyÁ*†š3­¬x‡âq6]'²yóxÌ£ æÈT×SÝqÒB|ר‘ñúÁZ[b¬E΃\pÓ$^ߥ‹™\Þ‚q+9­‹Š–¥§`Þ4”ËÑ $`„SÇIïÑ^F˜µÝTÏÑ´¾p3ÈIKȇñÿ£rGáôôÇÕt«9˜F;‹+™+c ¼fZMÙ2é=… 7ï@Íè¢- I¹ƒk¸çˆÂï Ör0–TûÒLÅ4ŒxxÕAúo+븃c´‡¾“`¹VWBí9èž‚òkIÉê×Ë›¹¢q­&×:¾÷?ˤ߫¿\$‹Þã/ í¨¸Ï6(œä¥QSÛ¥Âý ý§ªÜK;¬ ø2Ò`¬ì§µÞ2 ¼7ÃrC›CHé ûrH ©Ý¼  îzVd@`·WJô?ˆ ˜ ’­mß`š†Òe4_ÕSŠÅº¢_„, ×Ðâ(7¯­Æ7äÆV§ÑŸá?#ÉÍx°o tŽ?ž»1XÈP¡ù˜ñ»2Û={ÄD÷¤Íi“•wG İÎVÇÑk´ãû¢KGÝ*ÍÛ|ãí_YÔ‘|lÚ‡‰÷¬ÞóÞ[ĬÉ.¡|O‘eq›|»º²‚èÖíu*~-Ar.{¶ëf¹ ò_m}.îî*Õâ×_´ýñˆ·‡‘„ÙaÔì¾o\ÞFþãÚ?:—+š 2ó)ÖÖjcºœúõyÀ ã‹Ñ&ù%kµ•ê°™Þr4µc2^_ÿÛy “U0a©$À­jëøñ:ÔR4ËÈ7,EkJ­U41´æb‹ß°ÆóŸ½ a´xK·èŒ•™jkDi%-ð”wÒZKÖº*ê3Òä ¹€F•²%:êuOΜÚÀAï4E##Âà]ZµªÃÇgsÐ8S<½”0Î{ñ ÜIŸEçÌýòñìOW‚lé”`\ÙhQ`w!´ÁÃ!YìÝœ®mr8-ÜÄ º1¼$ùèóg|0¯ç9p3¾YE6ò ã!1Þ 7«à/=#.ÿÞ”¼`r3NñZòð/q‘Õõˆ"¬8IÒ¸eMÁC9×;ƒ<0Pé€~‡l&w{.6É{Û†ì ®]Þß¿.0Ó2*¢¸|Y*¸ÄƵ1d ‚DVÌϽ]ˆ? ÿ?Q¿Þ©–B0¸¥»›ýO«Æ!Р٠6 E!V 3Ž›òêþÊ…çx <å"ò¶òÀ³–ÌØž£=—¾^¤yJ•+z øu=™5?‘/*ÉÞ´‘—ÏÝu6m4"¡GaXžnŠ^&®´ ¸Õ tIŽ6zHŒSïqsáÂDG³,–BDË×-ÆÐ1ŠøV‹Áa¢àr2m¼Þ;€°[êÿ-YGð‹f|¸S×Å;MNmgIbyŸËde˜TM "=ÛûÊùX<º„Ò^/þ†rtnÅ5´Û™W­ä Hª%1‚—ÛIèòðº az¨KÀòÏYZ-`@PLôCv +žÅ³wÆüeÎK*þɜׇë}i¨‡¢Ž{Z½ƒ÷µØ+Sat³Ú=¸§“ZgÙ§G?bq™ËªdÜ7㦺©íˈ1»äû¡ýºøKÄiØä¸½ýÖÞ¸&¹µÌÅý,Ѝ§´´gBÙ:û"gšŽ1K{íu у^ç-=¸TF7U>·^Ôd¥¾Bâ_ÈÉ£1¢OQzG”MÐñU& ´¸Ì’…ð ±°‡Rˆà;G1e êSçkk°âû*‹–rùçg¢’Eá² ¤ß#›ú ±˜a.õ!ïosSØ/©²}qd(ÙtlZ³¼r?ÞfS”0Ü×í—¤*06!Wówú‘>$vÂÝòþ"Æ Æ½y<¾óß/ÿıJÚÛ û*úWìŒGóuÁᵤ|ÃÚèÒá_æÿ(×ÅùùÇþ°ÝWá¾â>¼=·³€9Êyî–Š¡{ÏÇvõR¥­-!g9ixZ[g 5ªjˆˆ™õ´ÐLk¹úGÀ"›Vö?Píw™`šaL§üí\ìê*8›—í¸ÐNáÎâ7™ Rû ±îc‚YQäGºé‘@ýGHüî­u*€ÑÂé²ÒbÌ€ÐD)?|®éV}ÞÎøÜ/éèàœÇIu7ð+ág*|OïFÜbÎežøÉ0vS+ÙG‡É+Fl‘d8ñ“¹û2ÒÙÌpó«<uümnóÈô•aÅPµÎOðåß,†^³¯’c[˜ã¼#M“èÛ Èo@•¤®ÑJŽÙµ•æ nK- |sUrîóÛƒ:U´M(Dâ€+€zZAe§òkL5Ê•.•þŒDc,Ä•dù¹›pqݕπC¨ºŠ5}ÚNšC–Áàîbɲ‹Ã¬þ`²Â ±]ƒJºr'~*ê‡Þ©Xf2¼XÁñŽÐþ ºŒ G–ÓãbËXˆl‚žØîý r!ª¼Ê×òúÅc*'z›‰æ2áyš‰EQ'ÎÝIq3àòð’/£ÙR‹Jí·‹æw_#p¥à ’õ†Ï,ðà ?‘¢_²Ø—mêi6®&æœìÂ~dcG—ضEŸÊW®­äs[ω¾§I;-`Ìo¡ðÜýäQ*'°/6bNúI§%Ä)–Ø,NáePÞüæ>îgTùiŠœ¡¨±|2G$xYèeà6œ)¸~U\¤qåi_ÞÏO9yÐî>äãr­Ýž©«'žoèÖ^³ôD3ýú¼õ½¼ A‘¦ßBǰqÜ4å³ežó›‡kªçj…#eÌŠO¿ïÞOÎqYÒdÌô#ƒÙ“lÚýû ŽÚÔëcµÔv²° ë‚t›ÜvxŶé¬ÉPaWˆ*E²m±EõSÄ"f¡€$¤VI¼ñÃxc $}·… W£v„cBlòŸNØT&ß°Å„#®ë˜—éQfåµÍ¥nÁÊíÕk7‚Å O·`Š &÷\Q ï’ö‚4^HϲÇ)¯UaQ;xHiÆ›µUÀx¼·¹o—‰ 7tý§'ªŠzÏX¦Ö“…üC&ɨ©Ç…A²Ú¹ñÄ£ÉO®*s¯—(ú6Ö|t½«å¿á§üë„fùìÞ~$-*ëo.™½^Øá:…Tδ{ˆÿÔÙôÁ·W‰ ·Ì|8°†L¸´…Pïý*W4=èRl"éi’eöë2Éá-kZ9ÞÓ îÌËÐãf A—LJbk¬Ã,¡›*ãt4SJsë“»ø]ŽRðm4ì”u¡ƒy1˜ƒŠ$«Í°c»rm¬ÚSç§X#SÚð"ÑPQ7<Öëô4vŒ Ïa…‡y$i¤FÄÄm¨åÔ g.Îͯø$ ò²/Œj,Žà’ÚH†Aò$g<ý¹ñ-ÑK¦)V¹ŽšxNJ3™Â‡Ù©-]ï%YöC,h§µV·%¡Þ)z”WÄykTŠ {És^Û˜²Ê“P5àCÙÇbçªåÄ{Û¾À,¶NU;/Á^Ëɯ›»õ^fBÉþ²¥ðÍŽc¯“p}™â£Ì‹A vLí±ìª—n³<` ?2$þ£%ÖMÍ>½@ƒ{Ìã…ûX°Bn› »6ä³`ü_‘6’å–e:±¢ŽÕwÜVð‚³Ô%ùSi:rÕIoOUظkl=D@ëmëxièÄó>ÞÂ?6|¦VÅE%¾Ê,- ,¨ú»{DQüjU Òè¹sAlw¥mÀv£L8UÙ‚í€ü,ä°þ+2mV Ù¼T¥K™å…ØùjðÐ7Þõºv¡zs±*5èÔŽ¼b7SúÅ6b¤Rà2—àÜLÔN7h‘3Óf‰a ˆp ð1­Tâ×ÑÜG8ðq•|0ªé?; ƒÚ)T%-û&O¢‰è®êVÔdÄq#8!eþ4½>æ"®G)îµN—*Çg*M¦+5ód>!Ùu•|ÈŽÙ¡!6¬\,Ò-îÌØ¢²"dY#óÆÔ\ó4[ÓÊB!ô›di߸¼š6°ÔóÀOåý\9¥þJÛÉðñ%›øQl÷)ºq©œêBB Û©@qd’ýÍDœÅð¾ç¡Løÿ‡A!WœÒÔ¿& ïyÅ`]b-üD ÃÊ©VÛ‰Òù7ISÿ>ˆW3 78í9² ®ÿÅ}ê@½È¼4Ï7Ç ZWùñò/@QÍõ*'ŽEÓ›–PNÄU»»aSôõ‡=È9 œ„÷ëЯ¸*ABѨx,(–õåÜ»±âI¼J°ãhÎ(§b«ã•‘çfîX©‰!³á.,‡jººz§ ŽE©_=Àžá=¿û mîx€‚à{s pðcÈ7S#“Øï)zø6w…PƒšJêí¤:„üÒ˜\e‡? È©´Ç‹o¹?Že9~‰w(ëã†^¯|ùÿ#êÐG]mߤyZ¢•å¿©¢©‘a×~[4 G~±µÕòèqë!Æó³€Ú¶î^)⋱<Ðiæ©“Û ¢ªÍÌAž;ísO`¡¯Uþÿô÷eªóN¡b›ôN¿¯¿Ò¾HJ­&f2B*µ1œ:}x¥wåˆÞå1TÓYöNÙåéÞl+†ÍÚ…fÉì!|~2™¹IALa=·ÿyb„¿½/ñ®e3=ÍŠÈRã¬k˜Þ¸~£‚®iUh‰˜§¾¾ÿÆ/†ˆgPVoóbF™ý¿qIvIñhm†}åTùQêÁ“Ø#…œÜ›UG-,;ðŠy¥¸ÏkmBè?ñAb›¸:µbÏï2NQOaµzwÿz:àüTnU*×–jãdÓ“Oz‰A4mìŒ}ìÚÛEK ê³—DAÎÕEªãÊ'´¶sÂ' f¿ªŠØñ±tgB™ ¦§ß£z²S³A7º¿>Åd€Æ–LL%Ë  Ö8hqÃåY±N›R^jÖš.ŠVú•þaÁuˆÖLªÆVôüê+¦•_í+¼Õä× nÆ6ÄóvH+±.Ï¡Ñó'c.hæÇ\süÙ:×ÅÉDˆr'kóΛ¿w"YRr$ýeýyÎ"B=¼æ£˜7¿óš·?—ûM6¶ÍǾ#t(ªK`R»A÷M°“ŽÃe¥j8Dš·Â ¦Ÿ6_ñ ’7‡9Þh@ïÖ¥ð®Ë†M$ý €ŠÇIA¨úÎRgAï³ÊC{ÊÔ¨0)ÞÐÿ0a6?ÀJÝPŠ÷Íeœ£ó«ÿ—¨£‡ ¹¯}î ›»AüÈ"Î~Eª÷ÉÎÓù ¾]$ÿ]aEGÙ‹ Þ9;21#ö@:Æ;ÕÔ“Þ »Áßœc*´¢›%Ô ÁÊïbh8ÆDgÉ$„X/)fÞ¦¾u…Ó‚wK¬5Ì4²¨lÇ®µšÐc‰&WQtÄM`ace¾?ÒUËÖ¦³ëÉ ÂóµÚ:+=0†—¦ÂÊ´d‘Bæ ¸?Â9zùžÁjq¼÷œÈE ‚TæŠêS&Š÷f”¹¾ `/}øÌêÓJEUÉ•*ŠF´{m$ðŽ'Ìy÷ø2ðþýZ.:s…¢f¬ìºjXÔmñ’iÞ‘ ŠeV-Êé@“"ÑÏ›ý+.ûd‰².Åæ]GB÷„¢uáº8#ì:Î5e¨kG¬¹ƒ„ôU_Ÿzœ2Qïd)lÖ˜ñÙ &!söØ÷âÍu}/O¹¢8-3}ù1[tf­hçKЯU¢Ãü+¿®8)Ͱª¸@;ZR¸ÈÉ ¦×|F»— e&ËfÄU8!Ë2ì7Ëø¸ä/âÕŒ":–«·r_fŒ»5Æ ‡ìQu_ø¥ê,9¿]¯I=Y)p-éZÓÜäýŒ1¦ [Ÿ‘iÕx$‹yO†—ÂSz+²Ë†±¢åé}¥~Ïíœí‚ÞTDJšuâ{õŠÑa0Ý¡3ŠêˆŒZi©Öã­Úö¥pšnG3µJ»u˜B%–{tµ‰#¥.®¯O#Ã6Þ‹¯gÜ,{Â+ W}ò$sÈžÛàš”ÕËÈ Â‡íã—N>\)”±çXaÄöš±%(çäY1ÏS••¨ž b+ºŒAŠ1`“ÎJ½>¶Å.[Ço¥ŠÜ°©àeb;-8f³µ8•ÑôMúX˜ööwÐîº S Gt‹&Î5U‘ Ó‚±Rª÷ƒ“A^Ä»…Ÿ°Óq»]L7…ˆ1¦)›Çt™§¬¬¯S ©¶Áƒ¾-BÐë$ñÅê'ôOiJí/Yhþ ¾sÍegýk„l,!CÂê/ŠZd_ŸJµzÅÚ8ªŒ½fS_9§¥Èì8¢’ùÊ…“ÎÕHtÇÛ "Ù´Ð-Ÿ[ý?š„Ð Æ4†qšh3–—eô ÒÎ5¥hæ°ƒ²H²Ï§VÑ kûÑ€sí0K–1®ÊÿKpç)Ý9cжûÝSòÃ0¿ÚZƒ}Ã:XCÄ,ÂR|P=ðžý[#œ˜&Rváªi›m͇k)V·üb/Ú5Zd-äÇŽ`šüT,°·Êmª¡Á*T‡5·ÅïÀ>vœFm}·Ff1‚*ñ2`y87;‰ ‹'KÏú—iÑôA5g{<À>í C¦Æ’á.ö ëøS>Û78¢ ³YÀµ-+·àë£P0ÇÃ;ÿ5B+yüýÞ.´ ¡Ïh­•ŽÈSK£ý§ än Ù³d¾„ã>Ö¡¤¾„¤+2${±œÄî†EV²øùáûY€<ŸiE “ÇÖ8þ7òâµñãVè—°Õ~刧G5´ë*dÊ¢EóÝ1dåXòj¨¤8<û°…Û3( ¨C¿µ1¶žlÛÓN}FZ|Â0Ëž¾ò%œ9©Ÿ†è”ò"Q%k1èÇÒo«]’*Ás =(Ùè~ìõ§ÂQZ/ì.¯ü6—ð8z±æ ÛÌÁ #,!œò'.Ñ]L÷·ÕGÃG”x™¸®”¼]õŸp¿‚¾zoFüÿ´ræ•z…Ô+ÚÜ]JsÈ=9°š‚£‘'WCrâU5VÁšV¹²^#åõ‹Ya\Ô&bWãR·¡ÏuV3§«ô»þœå’=`8”À%}_däâmú¯Š …Vš¶Rš¹l€iÏmY$õ3ëmÖ6†BeCìî¦N&d‘D M¿EŽMϲhû|Ñó_®*¸N\éË£ŒþÏÛʬjÇ·›PASï <¡¤Ї5ÝÏêÁЮï“aÔJ"Škj%â•ßΠ’7Ø\”W2ë¹gÌ‹ãë:Û£Jýf¤b svŒž.°meÆu !ÿX¤ /‚G_úÁhŸO$3*û9Ã-S”"~ù„®ò­T¹QužóÂ5 ÃŽR½28p-Å]¬sIý ÞÕ|Ò(ˆ©¢.žd¦¢Ú\Ú†*Ãÿ¹1lÚÝgÍØ£@EÞé`Ó,ÜvV¶O¢€©y¦XÉ¥µñŒqÓžAïTœ›Fòøâðy½éRœŸŒN± –¾ZÌÿ»ÓEÑàP£tR3këtíÉ àœ±êÙ%Äù4ù¢{òÝ™îlF fÅi²‘]Ý-k°ÿ.zEâþRE¢£Ru<7ㆽƒ³OÖ+ßúVàö%@D;/×V‰ªW'v/ÛVPƸP‰ßÆ)&g°2Âø¯4ÖÛ·q½†z˜$!¦:ú9E)X´ñ+„ºq—·*/èÅÄæ¾Ñ êŸãµ~+¿ÿ»dH‡¯è>ÏK^óFöìj «F.kNÃU´“k?n¯QEŸЬ[“pòI#IÆh6ãݽ=ë_ÑLø"4ÚQð©¿Åm£›}‰à)dŒ<½˜YЂ°¤”×wdA¤ªkNÐX“ifJ(ÿ_.ÅÂÊ+…cÂxÆÔ†üâ°6!FÏfS8}ûÛÝì´&.‹¿æ%¿‡Î“ÌO¿¥¹m‡­ŠBËð€pxo/lÿ+à4ZS­+OØ#=cí“v} ¯ÆåÊN>ìbƒåˈÿ5¥,K;spõqúñ¬3A3¤K(®V0ɳ5ph¨¹,ÊS6.NYƒÎ%nEßãÕ©TIâÏ ƒ£³Ìâ;UzŽæP@¬¬n”–u+ ùÕ›Ö9‹%£ÙKw~(˜.áÆ€0M(`à=øÏ Q©5•ZÔ§å¢Ò÷Ž㲞ȵRÜ¥º‡áŽOBh? q1‹áÛlPä‰ÜpX“¢kò»…Å_ûŸ\j`k;ÕŒ"«)á?å`âb´öʱØÎVMUº¶'l 7 ØðF|ˆnRóþÿ¨Í¦òí¶!/|¼‹ 6²}…,|­Ž=ÃMhNíy郮à9Úì.S®"~$p ^¸¡,»2á^¼?Î'¼…ÜÂRÈ‘ÝÎ £å<ÉPR)—À•‹`7˜X¦DàÏ.Z̨|}pTC9+:bÛkøÊ ÅbÙÜ iÝ´+Ø‚Ý(±;¦\ÏVÓ®ü¡ãœ¿€7á݆mÌbƒèBkº»ì±›õ M$ª÷ÀLÓ|èK/‰äƒ+¥š"ö¬\³– ÞŽ9M ×µ2¦d5¡Ò(¢UêªlA‰²ï€¿T‰¶­Æ)_rö÷¸ô-CJHã}ÒüÄQÐ_ýGx&:áïÔa¤+ñ ÒU;e¸9ÿ-(GŠ´jý 'ƒôXþ>Óà’•jáR˜ßÉšŸi ªÕÒ £÷`:öЏ”[mùÜÿ×!NÈ£*9(?¬uŠ”JT)ÇPѳœŽÅ{iíä {7)é "³Œ’:ÚõbVOǬí9þG‘ér˜Kc‰ØÁWVqÍsUYK€ªëçÉóR-Žª>‚r±WëRé‹É½D$/ÎP:ZŠÇü—£ra‚ÙÕ†ýÞMS2¤õÎt±€ Çd°è3E¾0O[¡‘à7-ÕÅáß ˜†â¡iÁ(ÚYŘ5°j˜U—ƒ;‚¯Ïì™Í-÷|Hæ! ÞµÄ}XÆNÚXì­Ÿ |}Ýð„Ä©èO2ª›dÄ¥ÙÔ–ÏÉW¥¤ a<< ôºÕ¤48ÜãCú¡ìH‹ÅºhÐgz¿yåfC¤vsoÐhrp,O—Þ£Ù,zqLäsèr¶*%8Gt®Á bƒÅƒ´ãB²ÃyQ?0—| Ž•õ0Œ¿K1G=¾E´­Þ·L*7…ؼ²ÕSMȱaÇz÷ðoñ çáÓŽ)ÈMÝ@³ôˉGÌÃ`ÛºüÏc@‘3kg‚jÉ7ïîò~€ÈøÙ$ò, ìZw¯S…Ç3pøcO]¨¾ñ¡«VõWA9 Œ{¦Ýâ]å}TC‰3:t}H¤†±cyÝ1Åixán~’} Ÿx?¬êËh利©êžOdÂ+ªL¹³E«6D%Á #ÊšÀ=ž§f“UÙ×Ä$³“šµì3„tñÿE}yd^ù÷úÝyÚªw6š¤NöÌæ{z;ŠÃ¦—GgÄÖð/I„hS ú:"Ò²ÄՂʬqò (CåHüÿR+ð £HùFKiN Òf£¢­¬PR“ÜP:¸I)ƒ§»”¸BÓÙ žr±¸ô»CÎùç2jc‘¿v쎘ay *T“È¢€Háޖ˹BáKˆ¢´d˜Ô7.€œÆ¹yŽs½@$7˜±$õâ¤yNôÐ,fM›1ßg†‹Â°Ö µc?"4aLÝ<}™ã÷Ki)2ѵõ’$Ó™NÂ( ˜·›Ðöå¿Ôodz%FcŽnò1ÿ®§nŽ—wÛ£RäâFbè/V"â²WÉG‹·, :ÝÌndýÙFî*E96ó~Sð‹ÁøwˆÔfáTÄß⻽IýEŽÍÆ0„Dé¸Tó<› Zl$ã2dO¾¬E‚ )—sŸi}}P8t%–IóÕD&m¡G[ò²|’bGA>†bN>ç‰4S"ÈW•†s¶Eò=mPÞ½Yçñ·ÕúîfSy‰Ayïš»A‡]:6¹ú«6§HvÕY|FŒžÁï˜it4µ-ªta º2C>ìÆx,ÉÒ );ÒÚí¯ºtŠ ½¿>²Nê÷ýËc=™?6å\Ñܨ¨ºq+ÛâbŸY)2™ÎP·U‰?û·ãHSÛçÿ¬P‰\z¾mMªÂ8Xà´²#}Ñõ¶Í „Ju( ‹¦ñŠ“JQ“M® èÐfO}öIŠ›éÁ?õ¶ÁN£Ïžk®NÏÛkÓ5rr‰d¥‹ÊT…®&Í#}WâKæ= MÅ×SZˆBç{ë{Ï+Ó Y3ðQ“IÔ™7vØ:dÅçï‚C&!·–ŸÌ` ÌC³2ºp¼žÖV9ßf ÝräôKžC˜T¼Îf °i(4¼NÏuÉæ÷í@'}|W4ik·Ç27„å;—¿Lè¦D×ÿÊäv븟ÿHnRéµâ”KÓ6ý'_ŸyP–&‰Æèåòâq¾—)Èfô¥ °ûQ IŒ̸åè=ÖUS´a±mÚe\.(2¨ßøÑÕú¹‘C•˺´# ‘hÔ2÷X`n^u.M³¥ÂGg™„Té–´ûÀ¯÷VÛëWÎ òÝœ!…Íf¶'Ò‘À zØC|⤌˜}SØxóŸ]ÄTª¾¦rÎjPÜ/½ç„LsÐV0Ô£µˆ:aŸXãu×I·ˆ^æež|ã9`³×me n%tDBþ8ÔôL¼ÐŠª¢g°Oª'ÞÀ÷Õýå$CγÌ~عì¦Òèa×É.×ãÆˆÏ:¸‘/ô9è’uƒ«Õ6#噓@±Àíû$+(ÅLý ÇDn÷ÄC³¤V &&±5åùÑ=MÑÔÖ(c{Á™×Ýiˆ*GC{ ÈݳÇÙŠôa˜¾ %ÉÍWÒ2iÑ=?Õ$“È…†çËWs×9„Órä,çb'T׋ñb ûÞ–DÞ—ÖÎæZx) ÆY\Sg'ô}ü¼ ŽnRÌTW¬Ä¼ÏÓ‘^oÉß(>+¢Sfú¦™ |#‰+»°s'±IL«µðŠ¡îö$†¸”F`?º¡7ûÚvUëÄ©‘ìéh¨²Â6·Ô°BNåù{¡\neÏ€›ØåI²ÝZý¾ApœEC㳋óvwlˆÁïÂ|ˆ¼ÁÚÂk”çNàEhsA“ù8¥…ÂZå a“öÆZ¾Ú:Gi–o²-›Füù[´ú¥þf¿®þQÀ`Ýld2V§$T¢Ìð}À™àœ$)g÷z¼äý+¯FÅ ÉÙîm»^ÜrBð:/vcWv쳸;K(·ƒ?_Iâk/Wgm.ÁŠÆA3/-—uÇPâÓºªgJ8K¤þKþMƒÛEb°â.lœÉ³YÛågJ¥Ï¾Çâ¡íª2HrTÀ¸ðO7­Í‚ðÕeò5™ïIÄ+ÐPÆÅhX _ÛOLvM mÄwæ]då)!Ò(L³)‹¿&P\"¯‡JD3SN„U‚èÍ^úáüå×äõÕ_Œ&TàßZrßKsèÙgIiÝÝüÚ~K"ØI p/ˆÍ˜¼œâÊÊ 0ˆÙ±¯Ô[@øÂß1Ô‹—£I—¢|‚Íp ôÔDت3ì5X3á&ïT+4žF€V¶À1u×kcî‘P¿_î{ŠzÈHWGŸïšÃf±dX±×ŽqøÃÃÔ¡­ ˆœ†¡ÝßH² 7rŠ”úÀ {«*LQ‚Éâ ÿæú÷˜¯øQ\Ëü9€F*]5ˆÍM¼ú©X¢OŒ³BÊ|S’¾àd-™»+¨¦ø¿Xíé'"m"­RAÔ‚ç…÷¾kü ê$¯˜`ðÒárd°TBFö¦²^P†~ï%YZÅaz(ê>>ÒòÚ@PÒž¢3-/$–FïÁ(FêwM~ÅÿËH4Z.UfÏ xêEÖç2ïî=§â‚.r˜–ô<“ÎYÛÃ$2(À¯Å‚]z÷'ŽˆcãcE2{ÐLùÜÿ¡ÑȈVé#v¶¨è!oV²òÝ?#qôÍ«úqë²Ö Ä–®##2á'¹hÉÐÈeõ:Üv“?Ø’Ù{ÐÒÅ|äݘÐÏçSJ¥à6¬&·¸1…œ©_x' óý zhšƒÓUÛÀm¯ÀTòFUç™Ú:5TfP²ü“†Å"$´ëÇÞfè%C˜M¡ÔÑT ˆþïÁëÏ¥]7ÞT[*­ó=ÏbÕSi“ÉÁ%«¨X°{1‚×Èh§|š åV¹³â12ùÖ«ë'}mpç·i0/·ÐP¸j¾ÊÓŠå¦ê Í´HÒ,x ~(ŠvQeòx€qÆ7¯Í3v)üÆGïÕýH=æS  @ø]ÙíG°FIz_ÕýçxÅ]lŽÐ‰ò«#°‚]¡ ··‰Ú®çAy˜l Ÿe(J%^:´m ÂÞ¦1†¨ñÉ>÷…ÿqT¥èº›i,Lµòy/T7«ùã«ó„ªýΖ>‡Ýdé¤ eþŠ @èÈÑœb¡!ÎWÕ‹ FÊ!“ÜLn¹ý—xNST8O·E˜sã}*|ê#%i¬RÓuO,(ÞPÄ÷ £°Æä”É•GfkäØÚïpñ°FšÌ°†èSyfPnnÍè¦Îd­É³Œ†åˆ±øí7R\$ »C›âýbµôuåjÌ?§ÎP[¿L¥ÕþLZ®Af·D:œ&ôº»[»Ó.qÇ⯑.ã+ Ä}µªï Ng [.‚B£[uF˜í´ÛÌQç÷Ú.ä–jJǪÅ?eúèÊ59pW7ˆãg¤g0ëœÜ @ÑSã+C©"=)Å•}taTÁo;¥Â¾€Yöã€5=‘ÅaF~@ô¯ZаgãÐÂCiOøô1w®Ë\Þ—&oþQЧâý/ñ'Ò¯–ü 0ÆF}ñê2°1$y;Õ³‚Â;mè{÷Ç)õšq¾¹pŸ+f ÄâÌŠ6ô鉮­‰Ø%CÉnvÇ*ÞèF©x}#ë~ Ñ£|ò83iðý‰_ÕËçö¨D-Ä‘Ø %#r6+6ç–U¨É¢Ñ—Rä=h õš¥•p®Çìãi7 –LïæÇÕˆ‹þ×Ã6èÉÚÒévìi]7²”¥=G_/‰Ÿ5á·§€ù4{ÌYÅÛR}|LÌVu {!æ&qaЇêèÕìÛÂBë—AP韌¹M“:Öc.Tµ¾­¯’paFû"ÿ‡»é©N3‡O¨‚Qj ç÷K¸.zůµTÅKK³UàóT1ùÀÜÒrÉÿhÜP*C´ß õÕqÇ–±N4dÑQ êɨëÿ°·NVn†¢¸«°}PbÑ2U"Âß-²Àh\†]g„XvRXt`j"ó´ÿ«ÎÅÅ`î"&_eûOŠZíê%5=8H;û;å™`ö¾,Ïc¹Ò#'f,üÄþôžDk¹7mXºÝ.–b nþ¦øNX½q Öœ¹)ÐÏÞóõFN-çå²… `Ûæ¡Šlž¤üþJ[ À[" qÍ¥=“J©ºyãLqHƒ=(“æç Á=㪻ÉjûÆÍ8K²¸Ýk’æ$wŸI@¾‰å™êjKm=À«0(Öý±'H ÃÙØÎþ›‰’Š…'âG#À1±~Ó9ÒŒö 5ÂDaši ô—P~It QÝ ÆewضŸ>@vµ; ¥&Ã{J´=ï§…zÉ&Î OÊdÓ‰8ǦÓ.T¸äÄ@Ð$¢±ÏW^ÊýÔ=ä×ðÿò`æ…˜¡:*é{¨ò™9¡µè-VV£“Þ(U]›©éο@õöf½>«Ï`XÞbó«öFØð»ØQ·9¨˜±UÚ(àL·E|6¿šFÓ‰ê°9þd–±Ø\ν|ú3­ý¥§÷È$'pÈ[ñÏc oI + 6ËðºÌF8–ñ¼|Åb„"§·ô—Q ³$UTòeÿŠ°Ì¡2·ÖP&B¨#Ð6þ÷šM”Qjm"šÄ¾±êøõýÃLÌð¥†PÄ‚„Ä‘‘°UK¯|€‘;ô;NAìûGÞÃ)a©†>>=†7Ò˜ÍÅÇc½f°ˆ¿p[ Iñ6L d, :àУgmYC‹é4'·šÎ{…æ¯ Ÿkü`NOoYpVL½g-Éûî²ô7p³/aÛG¾Ö³ú<Çk³&§ÜÏm‚!P#^*ƒ…zøt£¨1…µƒ¡±ÛäÖÖÍ£:Ö§èUÎÒª%š±)mÅ_^ùj¢"k/w#:¶;DÝ $÷4h;îm‹1Ù”hS]kBòý(ŠX¼Ž§ôOðÝ}ß_X¶d!€‡tù–ûÞW ukÀŽl” P«9I‡H’!ÙÏÑÇRØ„K¡B~ì †'IA¸¿d©CU|˜å4¶ã]Í‹ò80Æ–zžq·~ü⃅JÐÒˆÛöft ˆ ©6‚=·`“9˃¶Æ˜­Wߺõp3ì"–ö„¿‡àH„­þÝÊ"ǃ©Oèoج$Û29SD­üÄ®\Úé$O Ôòù ‰+„E ”ïž|·¯uf¡9 ‹ëy£d ¿Iå¡ ÄŒùrJíË8Ö‹ƒyñénºùÕ˜¦ÉœÐ®›ÿú­½&­‹I7ÔÝüJÝÏž¿HW•yäÅ ÚQwv)\ÓõòEk½Ìhü¯(¼ïZ‹ ã(|Ó˪ä téwü¼R!¥õNx¹ÿÊeØRÄ6‹›%TP`ñA&JÖ'Dß—aBó‹,68}ÖÃ+,AÁ×>¸Ì›¿} JW…«zµ,äŸÆ ¦$·+\Í’#&–woª#Ëûa>Ó„ë«¡†ƒ‹\ªk<ÂC\€¸”ª›Ý²çèhú)ýr¢N¹gœ±ôh™ã5ËÊÕøÏ“ÃÌ4/ö]†–‹ê.f'Â’Ç'ü–]WAÔÓçÖ­e¾üçB¿Ú¾ ,Cßv0­%:¡7ŒŸËþK¦%Y¯)ÆvÏ hzâ}a“8¦,Mµ"6@` …YŠ|,Çk9l-¾l'‹É‚JÊçùˆMŸoÔ®.$hgmz!çÈPtô%Å;fNÜøÅÞû­(’….ãèw6^7£:l^«é^&ÝKçu(F2z"®”PÓäC‘®ÆÁžò]9ó&”C1$RˆèMjDoº³ÁŸ\áV“~ú -õv¬;÷1GǪÂ%ºúGœæßãCx6ÒY¶PÉ…³ÒŠÙM ïâ^¼F¸œ ûÙ:pñaêi\¦{Ë4lÝ™`âÇ&ìïwŠ*˜ZUdëd®¼êi/Ç —ª–Š÷v ³¬ ÄuAí\šwÿx£›a~Wq&W¦Lvmð/ƒ òã¦v« +;cò‹aŠ!#ž"8Lò†f¤‚ù¨ðO.ƒ>c¦Ð„¥ý €OTr*ÆüiС~Á¿Ï{,•Q”cÑ rNPÙ±’Òð0¶8ÓëÚ`Î/Ŭ}i¡ªa½pèHª—Àˆ«¡ð?¤UÀ|üÞíÉíø¢,Uô\N/ý­š!(!.‘™Êºk£ºWèÁëW­ê¼ç²ô]¢dൣөrõ‘U¸Ð3G5ûZ pt“2Ó-,ÂÝâýÅìåî½¾Ì÷sÂè+öÞ•cúNF÷•¦±œLÔAPш´Áåø-ôÛHÂâ´ÐF´,‡+Ѝ¥mÎéšX{Ù£@×ëü|ˆa§ò¹zyqgó=?"Uä‹0LP–Ùî?UàýAßMæQ#®bû Ú";‹i|^»IÙ¨c´¬¯RnW’÷< Â-‚ÏDØâe®°’|’P¾†Ç3{KpNeiX¬b£ã߯@Z×5 ²cD½>æÖÝ·LÕÞ=B" `Ûh_˜(J» $HwÖyR’4îSO†«H î\Pó‡óâqŠÈY 7®\ST :¼ G,Òhˆ.ìÆ™?~˜WÍó€“Å¡lf!n]‡áßVµÂrmçÄ h]iJ×õ(87|—GÀy¿l†8¹ãa*Ŷ>@І<9sì+ìQ+uñ™x]!µ¤Ÿ>½±¨µíF£ã„q[ÒÒü;nw.Ãæ’&ô¸Ý,rYcų$@°Yâ}³ëoBXB57=‹ìöÊ3¾h%â¹´$]©ÐÊ纆yzDY¿0 ¯Öåñ1zˆ ëè„Y”K4Ô_ù#Ì^ûŠ~À[hèÖ\ý^’„ZgÃsL}Uî4»UZEÇ`@'éFÚ*¥)E×s{Ò'¡c=ýÿʶDÍ[wN¬ÁÎÿ$еaªeÑ‚ô„ŸŠUÏ:_9o褞V)TÜRö{!ÉDŽÏSNk‡îÏa¦…Ͷ ,o"Vš›ÙB¡‰IÚ¥|Ìù©¡–åò|E˜²ð·ì·Å²Á~9pÔT Ù4È ä!ܯGlëmPñ}H¼WðÎFL s=Y^a¡ætdúº!ÉÚèË÷éÑ-À¿Ù[åé ¤ƒø*ÙSL‰:zqÅs<~d«¯Úµô+ç'ðTQñá„§Ç.ù“¿Í¯ „1;•ñ7„NÎŽT¶©w±úf0‚"Õa:[C«}©ÃýÖùozK‰MÕp'ß7xÃâ«ä¦–˜ºE&äçv›ú©ògf6)Ã9Ø®ï†$¸#¡í>lU,® 9.à o•‘sQÌíÈ¡b±‚hJVzQw1¿>oÇ59e¼a…äï‰ìý‹$J¦œ¼ý1ª#í:²¬Ðøük0ý “Ú‰Æ4ñ¶$ iq3â&C Ž´X‡K£ª³ú'lïLõ$YÂ\$o=…¯4¨àQ0KåüQU@ȹa`ÍGLk!w¶h^óà¡§¨]—?ix}÷'2ý<ó5€ÛÉ(­ö˜»8˜LuJøâŠ€ênÙ!9¸d‘¥\t€±€ÆQ ]®yq‚ÄzGÖƒBÿ³Ñ¯r\a5tÏAx~X¯AMÑg‡éQЂ+Èj>¡iBÖ‘Žºõ£rSn»GtY0{x¬p–Îg‹½D(=þ´«IbpÛ6 ô˜ |Nàê†o¯¼~yèe-S¹3tÈUÊ—4{a^ Zc€Pž å@,¡zŠ2R º„¡WÛ4d”{µÝ$*ÎAåI­ÿM\Ç»–?znÏ×ÒÆ É<Ä)ž*W@—'¨cÔ4cÁÀ‰ú]• w¡.ÁØbû¦°zÞ›B‘‹2®’ãÝÌi9ùÄ :À¦Ã¢™„’_àæìé:E¸FCÒ]°“Fã@`¶Uõª­, ‰¸2ä%ñ0ÉùƶoIÃû©²Éž2é#ntØ ò–­ØŠî@óŒ8X»y-,1‡—j…µG}’3²Më½G ªq‚>›¨0Ñóª@Áͱ'|š:È=_ÅÒ¨1ìxíƒJÌŸíAÜŸ‹”ápëQz.߆Ùa}JrfÛm¦_ÓA:[¦¤I­ŠÑÚ^)à~-ÕeJþµ:…Âãþ˜àVnë.0]Wpo@v ¨ Æ:ËJå¯ûí-Ò žÝŸŽ´\Î ,ÍŒj^è¥Ëk¿8Ë>£å—~+˜ÿ`6\iÅUÖA@FÓ{#2Âèz¦…ý‘Qƒo%#_G­ó¡`ÿ]jQÖm·´¨uyè(–F.ýPPC¾ø î'»kóîÂLEÆiûÃÃeܨ–š³ô°êóÕsï,®Ôæ—èÉJ”¼VWW>ê¡[BûÅüäÒÞµJ`3w4«Ê»z—Pù ðj >:pJŸŸ!%±e[|Óa4Zƒ‹ê²¢þÏœh9L+{ðëÎÊ]¿ºç‘§— 8$瞥û”ν@Ý5Z#HÓôòçö‰Í|ËÌçüMQ£þÈ»8_ ðée²?S­µ>i>èȺõ\èö6Ÿ¹xh– ±Pì yôû·›ò«øIŒ PnnK®4ö?x»šYšÓÅê‚VEÆ}[T‡ 5m®Ln8…ÛN£ÒÁOŽÀ8Њ—ù"ÎCï3Yê€~ú¥Úñçul;€ŸÊóxìúº’ûÓ©ƒ|”4ɘ4@›;pË¢‰À\1³°£LÅGçiô~ ó†|Õµ®LbŒÜ*´¿É¶Ãdã3AsõýæáÁ–°ÓLæ°èŽæìrTˆ¸\/àçJšIÒ=ß!’ÙÛÉ´ìy?|ÓAÊ[ 1íN˜¿/&m>|~i*72˜P&0<7 ޹ú ^Bv:« *éír ·f]ü˜Ã–¢“*Í,ý¥þ»Ñ–<¬Yd§žúË9ÃÃM+?8ÑÅÆó0ý©úû¯BˆÌîÅ'ÜÌa @'LX‡ì&c7ù5—Îûžqób™‹m§×ão›Kz‘@è"¼…ð‰gcðëÑ‚k>åà ¤ÖÖå§ÙVÌ+³O…A†?éåY}§·•ÏLï¹=ˆoÊ2|=µª‰¸³o&'‰ÞÙ‘M*c JûaÏ…×qÿ‚ ÒØ4’دË`¨*wSÃGu/÷ýÕ¦e¾!Y¾|ï“÷Ž«ß2§l¶È~&²°Íû› ¾Û–ˆ¿“z;8Aɯ¶}¢¤"m+R¢ì±á@õ í [•¾ˆæ5RžÙ</5ZÂZIÀ¾¹uÆ,¢§DÌž”Y†åÀžiI,uW[ÈmE­æ{FM~’ì.dðu Ϥï†ôæõSá‡çq½t—0èÅ h|rìõƒAB[ëfdˆƒZ2‹`Ѫø¤¾—Xu” ieðÑ 0¦/R];´ã¸$6½øZù[ ‹ %¼­–™ò.PÐ|J»ñWê>ÃbŒPW?Q\UíŠÒ€n°©ÈÜz.ÑÌnð^‡ì{ð"¦M T€Èež¦Í}}Ã)EL‚A«Ñt1 žIÚ&}¯ó˜Twè+]óŸ;KèÈ^µ8ÀíoìJï„u¥Ù0ñyÉ_@†ð=ŠõÞùùµ/&óB.Ð#LyJ†E †áŽÑ˜ÂÖ27a ZG…žJ謜Ödf¨% #3j¾"&^±?È–©sÁûz”µ¼2놈:òS-iߤ¸sPÓ“[WŠXLÞ±ù›ƒÄbl)º¥ˆÂ”ÔþŒ™4°HÉa=¶ÃDæ‘Ù<Ûž u@-”Û\u-KXtß°  )(›B}߬+YÓߞȦ,…d’ŸiÏý5A œã£^áéÑ"nX áǧí5|Y™þp,®/ë|–ÚÖVå.9YW¶SïYO/§K¦ÙÕȳLÌ?É¡‚°?eW¥ÓzÏ=Y(Æ>@K4‹ fû„d¯çA+N7*óßKoÎ)äSW¦t7–{xwî¯ñw¤ÍžÆŸ(`¹Ì÷æ¿î¶¹{\N$•Ë:ýv¥kÒùaé:RU ÝÁj‘lEŽøÌD‡4çpìÞø ñ,/ít»ˆ@*\l:!âË‹*´óiž¦½R´ûõh×NßÐi\ñl-Ŷ+:^wÐá7¤:ð‹Ž<rŽã7Öp=ùìåâúœ™ôdÞ™»[càáIô°½ N^_ ¶O3;9;p2Íe›ä£¯&t+Ÿ bXJõñôÝûLcùkéIC<é„a½ücíÛ!G¿`ãm ˜[ÒèÚDŠš×œ1RŽúµ¼YJ±{ÚÂ]Kf \÷‡‚iÑZi¼ü¢Uûqèýây]†ÿâîºq’=ÉÃ³Ñ Âl/·wRÁu6Ák9O½ïÏ«0ša®°J &¡ÃÅMœNܱ\U;Ö÷,À§ª È>íŸÌ`­«(ÿ¦'õæÝÝS…’DçŸsOz5‘Á½«"ô€èzaì|÷Q„»‚ÿ¾nÒN¢±çÃ*S£+^“ôrÓô Í­bcA2ËœÄ:uXÿæ÷iþpú•°S`½¹S|CE2W¬vgêÓyQÓ}Sφ¶`þÝ)Õì~ö*­n5¨ƒ¿ßŠ"Ý”Åé,0æ£=ä¿é$|Àûd õúÛ7ßÓ¯J£Á DQn)¸’he9Fë @^ü¸“•þg‡m?pÝ@ìU/„}rª½Â(X݃¸2ê°ÅZ/zËÀµðŒÓ:´†ªwÈÔ…“ðÉMõϱžýjÓ-ûÔ6‰‹»1\N*E¡¿°mªQ9ÕlÆS¨_‡™°WŸM¬jÙÓ6@ÓËån™ Î<¶úV+?¯#IƒÑjf¹½¸ÝA üZ7.4«×»q …µ%m¿ÿ±¾À¬yŒ?ô4Ø®5znl]¯äذ@jÑ•OÖ)¤ ø[Ø9(¨™üÉ|¼nýpà! Ç_U…»¹jt Æ&qXé|)óÁ=Þ´sùGVþþ¦ëÊ’6¡ûwa¿ÿÜÄæ±Ñ9†YŸ•ÂhÖde¶IVŽü뜴x¥CxLh=š©æ&»VJ‘ŒýaxÃFQøÞ‚]Z`„À~  Úã·£Áof;3’œ°˜À‚Dw˜Vx{@mÅ\GëXWá^:©™tDŸ¶ËQeÈoM™S´,úo/ÈãeèÆÑµÎã/ µË¨ýÑHh‘.ª‚fª…f'1-·@ê,BÁ|qN‡²9sòö¢ýÌ%¯¾³Ø3'\î/å~ˆÁxØ·éƒøî4ʙۅØ74>¾{+ŽÉåùÉ‘æþåT9c& 39!Xßoú¥f[ÓãÑCûþæGJ+¤Ÿ4ÛF¹h³šóûŽ}õ¨>#•¼dÙvØèâ:2ŠâO)júž,åÎ-$­‘ Ÿ³Jõo §ƒ„®/¦„žákP×ÊÙ¸k¹¾ÅZ8‘ÿÖ^϶ Uȹq5\ÊÐEvÀnlM> ¦·œÌ,ØD üPiá-‘ðÉ¿Z"JŽ;³­cx<úpÆ:Ül^‡†]Û±¿ ì$]^}ìWïY$t*¡$.àí„XŸöîÒíu—œ‡Xñø†ÿ—ñï¢Ô?nîsËÐÍ…NshˆRîs¸†º½}‰£qófVžRåR®Þ:éÃõ02uKçþä.mc…ËœÙàE1ÎI÷3æ¾E?4ivÆ$„·ô¶$옙Æ1ì \Z9ëWLêØ~â!³@숰RË?]’Ys»s&úœ©ª ã_9¹)Žò`õîk2µ¸¤ÜR²DÝ$|Љ¿IBýµƒH…£>É]í) ÿ<%\|ЂãG¹‚Nûdù:Ç/|Ö R?ÇÀT.E ‚1Y•fÆ‚ÌóÈpl•./¬~$±{îï´ÛM6€^šŸÆñ’Ø2¼Û`nÔ€5´l#š>CÙaG„©C0Ý¡ï´c_ùn.KØgo¨ÌÔùÓá‚ Qiâá0rœOJ"pËñ¶à B#Fí!“4ÄPÏ­û3€Iø»©´s¼q¾r³xU´ªùQ¼òÈ#Ñ~“0+ù‹6ž zF ÏFjàˆ"ÿ'Ž:‹Ñ;¯' œêLíу Lš:ÉÛ•ÏkOÐî+É¿!q?‡Ž4ðÂÆ6F¾­åzÍ z2íy9ùÏIùÍÏ»0?Ä[A-ýðõfuÍjĶÇhI(AúîɸЇyñ²§@t©éG÷H`+³ò=‡UuÌ%m’¯tšxÛWLÑÞFçÃÙ®n—¶²KØãEL¥8k¨Xz=@òh¯´·Ö)¥dm¤jJ>Ó³öHìâ¾sãZÁ¹?Pð÷$ÕX¨…¦iQ²A8ªi·V7\à=Ûø# ÁÕ‚#ƒ«~'a«Óñª¥² Éh\Ö Â»è«y~i»I›A.NÅ©Íç5¸pÆùb;4ÜX8\8À—¨tjÍÿÙuKŽWfQ§NªLŠ`QΊÈ[[%6?«‘bò—ñÐ;¼¾`»­ç€DV2:à GèÓxÍwž!Ü 1Ñk'sÉN6íÞ«S„”{+ËËi.œë~õ¡…± "‰ÃÊÉ®ÀÉD¾’ érJCbAü\ŒÏ– "]Ù¶”öR‡ã£ïË~Çè‚cóL”ëW4µ‚òK˜Fü—Öµwgâó¯º2;ùkž4;EmŸ2ëcHIÛYŠéæ…ßEÛ'ÒjÐ`YK.&TP.—®á<‚á»uÖWSvïäöuÙù«EzcW§e Ê!«˜÷ä¨k¼=¸\³ÍÀäç92uÄ8k&ÆÔ½¶ƒÃõæE fàèmrΆ}Ða3[²p©“ ü¨ì+ ×{@rì ¦–‰‘â÷ ¡5¦y C([·ê¸Œ¦R"¶íʯräB Smá…8<ÖCòm‹Js1g*ÊBý îÆ®ESr u©ö߯ÁÖþ›h? ê=,ÇÛµ–S[{¸}_»…cÿ{=†ov$/BÙÔøE¹ ¤Þ¹”È¥…½ŽˆH›ð-@šöUZ³/1ïúÑóF"Ê•&ýpÑTè)6¸¤ØQ®è>¯mׂZl½V·³šÏ '‰à³t‰‡`C„Ä@žŽÜ šâv –?ĵ㌬H|eñÈü+»¦šn('»Çû)ŒÉÎÆ14ñ50sýßqLô“/–&×MíÓNü·¹Ï-°ÝÒ'4 D‘yµKʉÓltõAÒF¸o‹çËHÝêæÅQ½Üzâ9c¬×熌ªñ7xÊ£ÿOæÞ¤v¹¦Žì.x€Úø©¾ :Ns`îÓôkl€ôP™Ñæý“мÝÏèjµÊýéb²ÖfȾwz ñȵÁgê,Ÿ;ºÂ™ìÆyi|Ô`?^ŠE™¡$¯Ôª`ºŽ;‘H0@À?ã4Í.‰º1“Ø4³v6 h«Úå6ÙïÀÌ®R–jå\]1t#Y屯û§¦ïy3*Ux„ «š?Îwó#F´Ï @ÒÛ#’¦Z!߃!Ãe¥O­.K¹ÜgÜÓ¥½_žÐ¸5aņL—–:Œ}Ä}4(4q¸T§8㙢 vœ~a1i‹|åÿVÅ<°Ú¤ê”]oéöole<í†b@¨Fn"V˜\—›µ§Õ}ìNÿöJ)¡ûËφ°ndCI)6ñ~€õó ëdl2"Ó´­öN!L!ûzÁL9•š¾¢@º¡ê71ÑЬ¼ï?Ñ뎞Ù-ËÙ,T¯FÍþcöpCÆ<öVš?F€…šµµhóë­±àdÒ5TA Uöà𧘳!µ1ÓÀN%;%‚¯7’V(¾YªesúZÒ ‰9‚wÝrÏѸܞ#Q×`s<ºŒ~LRù 蛘&“oÉÇ#AŽtKǪèÙGiÃÛ¢£Q1ßÎKk:ôâçØÍ³çÊZbïƒÀA£ °Ëïfo¾1J‡Ÿ®DgX´œKuép¦v½Â3¤Tó×ÎÕ•§çÎÊ‹'úÆ‘úp"¾ÒA²Çðµ ÅðÐsíó—‹Œ­Åtþ±¦=;ºÕx>te-‚ ÒIn<:¹O^ò!ÛÐ{“þÃÉ Yú®t€^òc|Ãö€,Ï^T}¹¢Æ0­¶¤°M0*.é#ñî¬ðŒ­/G§DœQîøü9e;°E*øð̱Fú ?°Þ;½Ûè æXï&JÚäò}{ã $Š÷W™ÛÜ+W¤( ƒ^1eˆDøáÁ2<.Èœìt&^E4ëެӾM.4¥M³ãoS7„ÙèÙ[´QfˆùHÚúÄÆ/·¨•Û.30{å’h·žcü¡Ð¬É7£2WiFSA‰/Ò„ál[l/oÚ÷|“P:’ô¦(yÄŽ1 +?–ì-ÃHa‹‰›˜ÀõNy5w5á•JjÁãv“ [­£aøã–å] Mžüœ s+†?ÂA?‘™¤Vúü6ülÊxÛ KtéE¾÷˜Ó$"ð¨SwI0PE—¢Æ¦ó~x˜Ã!OÕ/¾²‹‚Y¹¡ms¾¨ÍQ'jLÞêCU½ôÊ2CÓèIæòçfyªÄ¯ù˜î€v@Õ» RLîJu€:=TºõÀŽ\¢a4Eð8#Va2røF™#\w’ĘËZ…ye¶å­·Û\R{îþjœjvñÊe§H/W~@7ðN©‡]l„¬df bòַرQ/ÙÓùEµ¿Ïõ ûY¤š`‡Òâùj†¸x®k±"t4máT5€Åë~DsG%(nµ¨æ;®„Jð][²þÜfÞäõ[G.à…K3ÒšßpÐß]Å€ÿ&º'Z}cFz*f!­I)Xøšmò¨÷5u…ÑÑðÏbÐÙ—`ŠÞæ …€,k¨Ù(Xƒ_-öÃzÚtË4²“ÕØ¿ /¿Åî~$Gá*ªD¬$õ[NSX™Ò>1[´¿#Á 6„¬Üàÿo~Íÿ[2BÐÜèüð¸ç÷Ñ `Ö›R;¬VÝ‹Î;ú1* §Î%ž~¦Ù€˜%¼÷ü!ßj§@ëI+V> rÍØZR¹%ÙÔ°U ’!Ïv*ZAM/¨}w;Âf íRÓʶRE^%ljdÝ´I™ 7·`ó·˜_*ˆÔó îž_ÎÓÒC‹¼‘Úìó ²js•Àµúf ‘F5)úR­Ú!ãŽ_Ê/ª“=­åaù]ÌNk–?áÔyú?â—箣ÓĊͱ³Ú\çªXé$I‡p{zïq Á–n¥–ˆLLçJVLO¨ªE¤/ŒËÇ}y9‰tÍ·ö¬ˆÎ6kFˆÔ«ÃÚ+%™¤1·6 ô]¦ÃS>Áë©]È @æ9H"î÷"z¢hbH&æ>^¸ù>|‘³Gðu2=Ý€ä<-_ µÑ›U3»Ó^¯zK½qAhŠ^5þΘJú›˜‡/šCÌî\VŠ«IÃ{ÊZDÀÅá´µtº¾bóp/çiNËé£S åôÍ~ô8q!÷ÒèÔe0$áY›¡Ú–Òú°N€T0ÏX?âßÇÖQi³]£Î•mEhtJ\ Úàid:î%¹ðvêr¦‰V–Á“DfºY* ™2ÒxpLºÇðVCaòpJºE®Æôˆ¦Ýra°©‰óãóË‚xù©A¼îŠ!ÃL©”Ã:ÁªN]nhþÌ'ý[-Q>¢{µ¶8\făñÑ‹}ð§Û†úmï›Å ÓTqZ·}?¨e愆ñ "‘ O5¯±7ä“J4îQeD/3’ÿqYyç±.©Ô&”q€H¥ÑJà†¡¯‹î#¦Þ_{í´"¼üîÀ2Ÿ€¬á!»=m±8Îù¿IÌ”djŽ’WË6ì‡SÊzäÐ%üšÛ¹”ôÞVMGZ²h…Uø¶«óU#JÆæª³Ÿncòê„W²í_‡õåÄÝm½\¶ÂB7Ö_›’ ^˜ÏìIna#bn"k¼èCÙ](Ø*0ÀŽê—Üø6”³ò¹”ãË}”Z6’”ã0'¸7ÿºMGM⺄ΰ>£h¼– aÈ `zqÔ‘ëøvΈµÎ+U²¹Bá›)¯Š›H,i5‚Ÿ:#ú/ÏðÖ%6›_~$…-û ô©>Ùh‰ÚUüpÞ)£7ÓàДÄÓšª`’؃{%±UëÀ ‰_HaÁškÒL9áC-¾y¡…¦µg Ù„ æÁÎeNÙÈO‰ŸéÔÏè¤/dÀ†»õ<KÅÕcÐdã|Á!΄²éX´hƒ ˆ7¨Ü½JžÍ¼X$=>âþV]ÛÔZägÐVÁÄô“Í ò›œ+K¼-U¯oì–ÀQ?8 j ±÷NV"ÑW$ÜŠ£Ü(!%šÐ,ÛQ‹$e_À:êz¤ Ãðé?Ÿ þ¤Šj/$üV¯ˆÒ†Ù£ƒlÛú5— ¥c€ÄÎ~õ@ÕÆÿÍ6Ÿ _½Ž†þ³µ¯]Hz…Ð\Â9^3©:­ø˜Îv¸‹¥ ÉÒ€xž*†1#·qíïâ]9ëÄ;êK!I|±XçØD9Á‰vnróY(ɇåƒ_½Îf¨¥/ ›‰axflç'N7ÐÅgó Ü7e‡W–ÊñâXø d8F¿À0“¯rD‚|U±.ÐŽí…rïp$Š&6wõÚ¶'ý¨aÖ˸‘Ú¼—ô‰ä­Ô·*à \Α 2€Ï¾Ç— .@Z£Š¡#Z_¶Á dÜË«œ#ùœUÚ*¤t‰2ÿxÅ}'èLÖÔU‹c–Á‚‘WEn\ýr-m9²~-2*,ä©ûIü­ˆ~ðN…>¤„±)ÀÜsõ!e\ô‘PžÃ4Em£žƒöŒß>Ú#kO0WHqI¯‡XOà59%ÉÌ–+#):ÙÑO—-~!Z§aï5 œHR”Y€Bˆ …-T€dÆŠÔÑ'ºåþ!±¤ß®Âä”õb¥ÊÞ9ÐèÊ+V}ÕÆ2×$ò")— —Å79Qù Ñ&yèÚVö„®¨à®:õƒJU?DøÑÞåq+µæùfT Q¦¨HLqÐlÙ:Ô&"Ÿa‰ú\+|K0Õþ ˆ­ï&‡[ôß‚|»%{«³¶ ©ËsYh½GE— V^`\ÖØb”ÀM{>¤¤|:<Ä‚n᯻çú”C2¯²Cšþ²€uÌÇß¡¡'ºC »äÅ oôDnm[eï›C<à÷xJúìXvJ§Ñœ7Æç.ë«öƒð|üâ´p`~o3 BÔWxãr´ÈâÆö²Wè·Xç¦îª„Ò£†"ò±˜Û0­˜0âÕ‰ÔMËÏ¡ë!s©ð†êcã‡ñ;ûõøê`ª W¿x…Nr‘å½™Ó÷bÂÙVÄ”hÛôvlbqqüû§5zŸ_|­âÄH>A›xèÅT®Š5ðb‡á{j²ì¹è÷ЊKÄlú?îŽÈc#fGwtr±ÇÙ± ĉ4$×o÷å¥Emþ‰‘8ý%΃ŹÏ=kl¢ã¸\â7mšï"ø7‹!´E}F†…¥í¥äs—É5ÅYLÞ‚@ ȉ'­ªá¨Ò}{ë>?¹©žÙR-V5‚râ+T»Gf³Ì‡¨Ø¿½v˜gÃN/%ØÊà:HöHc<`ß L¦ÓíZS`ů©µü:6~H"àJË•LÑ…®Ý)JØËÓdÉÓê ^oªþÐeØÍO7EK$v±¹Å·À°Ó=·¡ I‚fý†­eº×V"Kÿ:âÇUSGåtÌöp%øMjûü’ûBß^C¿U¿<ˆ:SÀæWéÁ I2…]¼4aIÓ`e$2¾:ÿ•Ÿú|ä»êO³b&_ãpèâ6ÑNŸ;€z>ŒBÓ«0µP$çææ·Ý±F-Ž^îS„{|ŸP}Áï3÷F¨ü½p¨Ã·ä,館­?”ñʋܿïÂåXž-ü«Í×2Qûyâ¡þf‚ {\ߥ¨?ܦõ)DE#¡ûaÁlû[cDb>Ñ-©‘Q¼ÑÙ4®±ÝK¼YßËç”E&pw—›úióÜ/«é>=ÙͽxBæÑj ûs¬XUzH)º,ù YËÈÞÊØn´yØÃÊð#;}׸JÖƒ© Ð ³E/0…D¶Á¸¦D‡¾DF’%âeëP|¿§Ÿ´ÞZot’5Lî@§ó7øhnAübz!Üâ'†úÇ% £×Êq9JΞ’ÞŽ~Q‘`xvú|ôÓíÏg¤ŽBò˜°MyYć.Sð×á~vé”ÃǾ={ÅRÃT‚‡%Üð¶]Æ´¦lªºëEÿš"¥¿î‚`€À]»ÿ™|[Ы9tR[|Á· »õ:pZ3„ëÏn£Æ¤%¶ÌMEøÜÊëÒï#>Áß‹(1ï ¬lù¤Ùk¸Þ~+ Æ\C(ó™l„(ç+*dòù‰¦×QvU¿›×Ñl´f€ÿ´ºÉõd™¿•ðçyÛœl Ô5êI8Šu׃Á*3VøSbų¸ŒÄªáÇž»_ã-žuÔëLìžùäù\w²LàÏÞK_20v™æú-Œ3 W’£â¥¥™L¾B¡ ± œ—¨/F‡ÕO?žû1žð@¿ÔÍ;ŸùÀéF©xó¯ôE\ÅÆ˜»í¸‹ñÙV"<e+ôO®êöú ‚ÎðŒþ÷´¼ì=––ÂìÖ=îà3B–s,b?ºÒ`À¥ Á§—·5Üvƒ¤ÝãŸ.ÜŽ/–ëfMiCÁ­ÉèRôèp¼Ð´–û&ÃÖÌJ¾°Äc*ä¿i•?x(év(˜Wh%²MDí=?vå² ûæw‚ÉQ×ìN°‰pøLªï´ôB+ž R ôø+°¶XØõÿ³à ³­ì`|xYãËç§ã|EúÕ ,7Z•I^Ô"‰–Õë*lÄînTs-l8ñxm³ÉÞ«äHÙל âGH9ÏQj‡”‹Áåë°E¬e¾òÓÐ͹á@b ¢¯Ì©ì¶)r‘YEîÕÙ@J_ìÐn6:Ñ#ѨÇoOor˜nÿÅ=r޲ 3I¡í¢`ö(ÞieÕ .½F‰µÔÔ€¼çcÂû€ï­T+_\0[D„3[“õܨ±KHa µ~í€ãÑ4Œ‡Ž ߢ]uïéøÚdº$܉/DèÙ`¨kÓÔ,+¦DLÝ!Õ©8W܆Ç ™öÖìº?Årù£jÂËœrÐJøî´ç^Z!Ò…+˱ãa°þ P÷`gO§W8ã¡ì ^‘W˜,a7£àJ:¤N˧` 5Ä}7`z\XÁÆJ’¸Ž(¨¶îÄyîöx>MŽÈ·ØVøU,ìö<„øÐ*yðeE¢ÌPÒECèì—ßñ¼†ÎGn-é"‘ù9ªÎ¥ý®&ýϳbË`›1O3HfuÙbз[çßúæ×ª=Žp ¶!Ú³Ù!æ!®sQ=ä£kôC™’±5XiãÃÁöàï´ÂÙig¼Õµ uAÓMˆV‹‡øB.M+•8{C›àYË_Êmtr÷*$èæŒ{oNÔþ¡&Ä ìÃxø|½è¥Á¡AMgæ<À>Ó¥ÁüOÆyïw/|+P@†Uý°D"ö¨ñhP?£îuƒ\‰BsH>åËsÚ×u§¤Ž@}ãѹ$^tMÉ…ûap‹·Ò$yJ®?¬æDO@NâðuÏšÆÍû™Â¸™xõ*™¯èŠjo™þ€uúß°BÓiz>(Q{!;-Õlý†Ð‘ïGšpÍ×§&IajQNp²(<Ö–2 [/KJð‚÷s3ŒÅ°€} Eu©lu,˜2Ñ |·žAó×z§èW.xÜÚå‡\Rv.È‚äµ×Rh ^}³…ð÷2x‚ôªâw^s¨®®…óº«âBMû£À‹OU¼Ì½5r,]טhÿ€Ù…‹@XáÑyuØ`T“l{ðÆïn­†:@o#äÒ3ÛCŸ(:Ð?j“ÀŒµoF @þ QRQššx„ä™ìÍ·¢³ö*^ˆq(}멌œª"îÚîªÐpZ²Š<Ü€¨W‘e\–C\üÙ8ŠPž,h?«N'k w:8Nî;¥…í\ÐÁªÞÑñ,WsØh1Gª‰ÂîøH,Ý»Ð"»jË'|T€S¢í’: }åüææWf¤Æ1ú,ˆÏÕ2¨ A ´="·è½*6ÂüúÔÏÏà#¿Þ \ƒæ‹#ÍŸ/&.–M¦r3˜Ê*À—:ú ¥g΀çè¿\ Ë?kjV©©­>0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark libwmf-0.2.13/fonts/NimbusMonoPS-Italic.afm000066400000000000000000001176451441723000300204370ustar00rootroot00000000000000StartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development Comment Creation Date: 5/17/2017 FontName NimbusMonoPS-Italic FullName Nimbus Mono PS Italic FamilyName Nimbus Mono PS Weight Regular ItalicAngle -12.0 IsFixedPitch true UnderlinePosition -91 UnderlineThickness 51 Version 1.00 Notice (URW)++,Copyright 2014 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -161 -317 792 933 CapHeight 563 XHeight 417 Descender 0 Ascender 0 StartCharMetrics 855 C 32 ; WX 600 ; N space ; B 319 0 319 0 ; C 33 ; WX 600 ; N exclam ; B 241 -15 469 616 ; C 34 ; WX 600 ; N quotedbl ; B 249 309 590 603 ; C 35 ; WX 600 ; N numbersign ; B 132 -61 595 645 ; C 36 ; WX 600 ; N dollar ; B 126 -90 588 653 ; C 37 ; WX 600 ; N percent ; B 134 -12 593 610 ; C 38 ; WX 600 ; N ampersand ; B 127 -16 533 520 ; C 39 ; WX 600 ; N quoteright ; B 202 308 479 603 ; C 40 ; WX 600 ; N parenleft ; B 330 -122 589 603 ; C 41 ; WX 600 ; N parenright ; B 119 -122 378 603 ; C 42 ; WX 600 ; N asterisk ; B 206 245 592 603 ; C 43 ; WX 600 ; N plus ; B 126 32 594 530 ; C 44 ; WX 600 ; N comma ; B 105 -142 382 153 ; C 45 ; WX 600 ; N hyphen ; B 126 253 594 304 ; C 46 ; WX 600 ; N period ; B 230 -15 392 124 ; C 47 ; WX 600 ; N slash ; B 94 -79 631 665 ; C 48 ; WX 600 ; N zero ; B 151 -15 577 616 ; C 49 ; WX 600 ; N one ; B 112 0 498 613 ; C 50 ; WX 600 ; N two ; B 77 0 577 616 ; C 51 ; WX 600 ; N three ; B 105 -15 585 616 ; C 52 ; WX 600 ; N four ; B 134 0 551 603 ; C 53 ; WX 600 ; N five ; B 108 -15 590 603 ; C 54 ; WX 600 ; N six ; B 179 -15 637 616 ; C 55 ; WX 600 ; N seven ; B 210 -1 613 603 ; C 56 ; WX 600 ; N eight ; B 138 -15 582 616 ; C 57 ; WX 600 ; N nine ; B 137 -15 595 616 ; C 58 ; WX 600 ; N colon ; B 230 -15 456 418 ; C 59 ; WX 600 ; N semicolon ; B 109 -142 432 418 ; C 60 ; WX 600 ; N less ; B 60 44 528 519 ; C 61 ; WX 600 ; N equal ; B 90 186 631 378 ; C 62 ; WX 600 ; N greater ; B 66 44 534 519 ; C 63 ; WX 600 ; N question ; B 226 -15 587 576 ; C 64 ; WX 600 ; N at ; B 134 -61 567 622 ; C 65 ; WX 600 ; N A ; B 8 0 602 563 ; C 66 ; WX 600 ; N B ; B 42 0 597 563 ; C 67 ; WX 600 ; N C ; B 105 -16 641 575 ; C 68 ; WX 600 ; N D ; B 42 0 598 563 ; C 69 ; WX 600 ; N E ; B 42 0 626 563 ; C 70 ; WX 600 ; N F ; B 42 0 647 563 ; C 71 ; WX 600 ; N G ; B 103 -16 642 575 ; C 72 ; WX 600 ; N H ; B 52 0 652 563 ; C 73 ; WX 600 ; N I ; B 112 0 609 563 ; C 74 ; WX 600 ; N J ; B 94 -16 704 563 ; C 75 ; WX 600 ; N K ; B 42 0 668 563 ; C 76 ; WX 600 ; N L ; B 62 0 591 563 ; C 77 ; WX 600 ; N M ; B 10 0 706 563 ; C 78 ; WX 600 ; N N ; B 41 0 684 563 ; C 79 ; WX 600 ; N O ; B 97 -16 622 575 ; C 80 ; WX 600 ; N P ; B 42 0 593 563 ; C 81 ; WX 600 ; N Q ; B 97 -113 622 575 ; C 82 ; WX 600 ; N R ; B 42 0 600 563 ; C 83 ; WX 600 ; N S ; B 91 -16 608 575 ; C 84 ; WX 600 ; N T ; B 147 0 655 563 ; C 85 ; WX 600 ; N U ; B 131 -16 682 563 ; C 86 ; WX 600 ; N V ; B 119 0 713 563 ; C 87 ; WX 600 ; N W ; B 116 0 701 563 ; C 88 ; WX 600 ; N X ; B 39 0 668 563 ; C 89 ; WX 600 ; N Y ; B 148 0 671 563 ; C 90 ; WX 600 ; N Z ; B 96 0 596 563 ; C 91 ; WX 600 ; N bracketleft ; B 247 -122 575 603 ; C 92 ; WX 600 ; N backslash ; B 245 -79 480 665 ; C 93 ; WX 600 ; N bracketright ; B 127 -122 455 603 ; C 94 ; WX 600 ; N asciicircum ; B 108 347 493 616 ; C 95 ; WX 600 ; N underscore ; B -17 -116 618 -65 ; C 96 ; WX 600 ; N quoteleft ; B 375 338 544 600 ; C 97 ; WX 600 ; N a ; B 88 -16 552 433 ; C 98 ; WX 600 ; N b ; B 21 -16 597 603 ; C 99 ; WX 600 ; N c ; B 117 -16 602 433 ; C 100 ; WX 600 ; N d ; B 97 -16 637 603 ; C 101 ; WX 600 ; N e ; B 99 -16 576 433 ; C 102 ; WX 600 ; N f ; B 104 0 669 603 ; C 103 ; WX 600 ; N g ; B 100 -187 653 433 ; C 104 ; WX 600 ; N h ; B 50 0 562 603 ; C 105 ; WX 600 ; N i ; B 91 0 519 622 ; C 106 ; WX 600 ; N j ; B 107 -184 554 622 ; C 107 ; WX 600 ; N k ; B 62 0 584 603 ; C 108 ; WX 600 ; N l ; B 91 0 519 603 ; C 109 ; WX 600 ; N m ; B 10 0 609 433 ; C 110 ; WX 600 ; N n ; B 52 0 552 433 ; C 111 ; WX 600 ; N o ; B 106 -16 583 433 ; C 112 ; WX 600 ; N p ; B -18 -182 599 433 ; C 113 ; WX 600 ; N q ; B 100 -182 674 433 ; C 114 ; WX 600 ; N r ; B 83 0 625 429 ; C 115 ; WX 600 ; N s ; B 103 -16 564 433 ; C 116 ; WX 600 ; N t ; B 122 -16 524 562 ; C 117 ; WX 600 ; N u ; B 122 -16 576 419 ; C 118 ; WX 600 ; N v ; B 109 0 661 419 ; C 119 ; WX 600 ; N w ; B 109 0 661 419 ; C 120 ; WX 600 ; N x ; B 50 0 617 419 ; C 121 ; WX 600 ; N y ; B 17 -182 640 419 ; C 122 ; WX 600 ; N z ; B 108 0 569 419 ; C 123 ; WX 600 ; N braceleft ; B 243 -122 534 603 ; C 124 ; WX 600 ; N bar ; B 275 -250 326 825 ; C 125 ; WX 600 ; N braceright ; B 170 -122 461 603 ; C 126 ; WX 600 ; N asciitilde ; B 87 208 514 352 ; C 161 ; WX 600 ; N exclamdown ; B 217 -212 445 419 ; C 162 ; WX 600 ; N cent ; B 170 -13 570 628 ; C 163 ; WX 600 ; N sterling ; B 85 0 547 577 ; C 164 ; WX 600 ; N fraction ; B 81 137 648 471 ; C 165 ; WX 600 ; N yen ; B 156 0 671 563 ; C 166 ; WX 600 ; N florin ; B 69 -91 649 616 ; C 167 ; WX 600 ; N section ; B 84 -61 630 603 ; C 168 ; WX 600 ; N currency ; B 122 93 603 490 ; C 169 ; WX 600 ; N quotesingle ; B 339 309 500 603 ; C 170 ; WX 600 ; N quotedblleft ; B 216 338 589 600 ; C 171 ; WX 600 ; N guillemotleft ; B 100 0 631 419 ; C 172 ; WX 600 ; N guilsinglleft ; B 100 0 402 419 ; C 173 ; WX 600 ; N guilsinglright ; B 292 0 593 419 ; C 174 ; WX 600 ; N fi ; B 9 0 622 622 ; C 175 ; WX 600 ; N fl ; B 9 0 618 603 ; C 177 ; WX 600 ; N endash ; B 126 256 594 307 ; C 178 ; WX 600 ; N dagger ; B 203 -61 567 602 ; C 179 ; WX 600 ; N daggerdbl ; B 179 -61 567 602 ; C 180 ; WX 600 ; N periodcentered ; B 280 213 442 352 ; C 182 ; WX 600 ; N paragraph ; B 147 -61 654 603 ; C 183 ; WX 600 ; N bullet ; B 147 153 442 453 ; C 184 ; WX 600 ; N quotesinglbase ; B 105 -142 382 153 ; C 185 ; WX 600 ; N quotedblbase ; B 68 -113 549 153 ; C 186 ; WX 600 ; N quotedblright ; B 165 337 646 603 ; C 187 ; WX 600 ; N guillemotright ; B 62 0 593 419 ; C 188 ; WX 600 ; N ellipsis ; B 52 -15 563 93 ; C 189 ; WX 600 ; N perthousand ; B 88 -9 600 613 ; C 191 ; WX 600 ; N questiondown ; B 100 -172 461 419 ; C 193 ; WX 600 ; N grave ; B 281 480 435 637 ; C 194 ; WX 600 ; N acute ; B 383 480 583 637 ; C 195 ; WX 600 ; N circumflex ; B 258 480 560 638 ; C 196 ; WX 600 ; N tilde ; B 253 506 585 603 ; C 197 ; WX 600 ; N macron ; B 268 525 570 575 ; C 198 ; WX 600 ; N breve ; B 276 480 579 618 ; C 199 ; WX 600 ; N dotaccent ; B 363 501 476 609 ; C 200 ; WX 600 ; N dieresis ; B 253 501 587 609 ; C 202 ; WX 600 ; N ring ; B 321 470 522 658 ; C 203 ; WX 600 ; N cedilla ; B 176 -169 362 11 ; C 205 ; WX 600 ; N hungarumlaut ; B 258 480 582 631 ; C 206 ; WX 600 ; N ogonek ; B 253 -152 428 11 ; C 207 ; WX 600 ; N caron ; B 281 479 583 637 ; C 208 ; WX 600 ; N emdash ; B 55 256 665 307 ; C 225 ; WX 600 ; N AE ; B 9 0 697 563 ; C 227 ; WX 600 ; N ordfeminine ; B 223 273 516 573 ; C 232 ; WX 600 ; N Lslash ; B 61 0 592 563 ; C 233 ; WX 600 ; N Oslash ; B 29 -42 691 604 ; C 234 ; WX 600 ; N OE ; B 57 0 697 563 ; C 235 ; WX 600 ; N ordmasculine ; B 237 278 548 576 ; C 241 ; WX 600 ; N ae ; B 31 -16 636 433 ; C 245 ; WX 600 ; N dotlessi ; B 91 0 519 419 ; C 248 ; WX 600 ; N lslash ; B 91 0 530 603 ; C 249 ; WX 600 ; N oslash ; B 42 -42 643 460 ; C 250 ; WX 600 ; N oe ; B 45 -16 636 433 ; C 251 ; WX 600 ; N germandbls ; B 42 -16 545 603 ; C -1 ; WX 600 ; N .notdef ; B 319 0 319 0 ; C -1 ; WX 600 ; N AEacute ; B 9 0 697 784 ; C -1 ; WX 600 ; N Aacute ; B 8 0 602 784 ; C -1 ; WX 600 ; N Abreve ; B 8 0 602 772 ; C -1 ; WX 600 ; N Acircumflex ; B 8 0 602 785 ; C -1 ; WX 600 ; N Adieresis ; B 8 0 602 756 ; C -1 ; WX 600 ; N Agrave ; B 8 0 602 784 ; C -1 ; WX 600 ; N Alpha ; B -36 0 558 563 ; C -1 ; WX 600 ; N Alphatonos ; B -12 0 576 563 ; C -1 ; WX 600 ; N Amacron ; B 8 0 602 719 ; C -1 ; WX 600 ; N Aogonek ; B 8 -152 602 563 ; C -1 ; WX 600 ; N Aring ; B 8 0 602 805 ; C -1 ; WX 600 ; N Aringacute ; B 8 0 602 920 ; C -1 ; WX 600 ; N Atilde ; B 8 0 602 750 ; C -1 ; WX 600 ; N Beta ; B -2 0 553 563 ; C -1 ; WX 600 ; N Cacute ; B 105 -16 641 784 ; C -1 ; WX 600 ; N Ccaron ; B 105 -16 641 784 ; C -1 ; WX 600 ; N Ccedilla ; B 105 -169 641 575 ; C -1 ; WX 600 ; N Ccircumflex ; B 105 -16 641 785 ; C -1 ; WX 600 ; N Cdotaccent ; B 105 -16 641 757 ; C -1 ; WX 600 ; N Chi ; B -5 0 624 563 ; C -1 ; WX 600 ; N Dcaron ; B 42 0 598 784 ; C -1 ; WX 600 ; N Dcroat ; B 42 -3 598 563 ; C -1 ; WX 600 ; N Delta ; B 35 0 565 562 ; C -1 ; WX 600 ; N Eacute ; B 42 0 626 784 ; C -1 ; WX 600 ; N Ebreve ; B 42 0 626 772 ; C -1 ; WX 600 ; N Ecaron ; B 42 0 626 784 ; C -1 ; WX 600 ; N Ecircumflex ; B 42 0 626 785 ; C -1 ; WX 600 ; N Edieresis ; B 42 0 626 756 ; C -1 ; WX 600 ; N Edotaccent ; B 42 0 626 757 ; C -1 ; WX 600 ; N Egrave ; B 42 0 626 784 ; C -1 ; WX 600 ; N Emacron ; B 42 0 626 719 ; C -1 ; WX 600 ; N Eng ; B 41 -184 684 563 ; C -1 ; WX 600 ; N Eogonek ; B 42 -152 626 563 ; C -1 ; WX 600 ; N Epsilon ; B -2 0 582 563 ; C -1 ; WX 600 ; N Epsilontonos ; B 8 0 640 563 ; C -1 ; WX 600 ; N Eta ; B 8 0 608 563 ; C -1 ; WX 600 ; N Etatonos ; B -1 0 628 563 ; C -1 ; WX 600 ; N Eth ; B 42 -3 598 563 ; C -1 ; WX 600 ; N Euro ; B 55 -16 640 575 ; C -1 ; WX 600 ; N Gamma ; B 61 0 667 563 ; C -1 ; WX 600 ; N Gbreve ; B 103 -16 662 772 ; C -1 ; WX 600 ; N Gcircumflex ; B 103 -16 642 785 ; C -1 ; WX 600 ; N Gcommaaccent ; B 103 -232 642 575 ; C -1 ; WX 600 ; N Gdotaccent ; B 103 -16 642 757 ; C -1 ; WX 600 ; N H18533 ; B 11 0 589 566 ; C -1 ; WX 600 ; N H18543 ; B 155 141 445 426 ; C -1 ; WX 600 ; N H18551 ; B 155 141 445 426 ; C -1 ; WX 600 ; N Hbar ; B 52 0 652 563 ; C -1 ; WX 600 ; N Hcircumflex ; B 52 0 652 785 ; C -1 ; WX 600 ; N IJ ; B 7 -138 713 563 ; C -1 ; WX 600 ; N Iacute ; B 112 0 609 784 ; C -1 ; WX 600 ; N Ibreve ; B 68 0 565 772 ; C -1 ; WX 600 ; N Icircumflex ; B 112 0 609 785 ; C -1 ; WX 600 ; N Idieresis ; B 112 0 619 756 ; C -1 ; WX 600 ; N Idotaccent ; B 112 0 609 757 ; C -1 ; WX 600 ; N Ifraktur ; B 4 -70 596 695 ; C -1 ; WX 600 ; N Igrave ; B 112 0 609 784 ; C -1 ; WX 600 ; N Imacron ; B 112 0 609 719 ; C -1 ; WX 600 ; N Iogonek ; B 112 -152 609 563 ; C -1 ; WX 600 ; N Iota ; B 68 0 565 563 ; C -1 ; WX 600 ; N Iotadieresis ; B 69 0 563 715 ; C -1 ; WX 600 ; N Iotatonos ; B 33 0 592 563 ; C -1 ; WX 600 ; N Itilde ; B 112 0 609 749 ; C -1 ; WX 600 ; N Jcircumflex ; B 94 -16 711 785 ; C -1 ; WX 600 ; N Kappa ; B -2 0 624 563 ; C -1 ; WX 600 ; N Kcommaaccent ; B 42 -232 668 563 ; C -1 ; WX 600 ; N Lacute ; B 62 0 591 784 ; C -1 ; WX 600 ; N Lambda ; B -18 0 570 563 ; C -1 ; WX 600 ; N Lcaron ; B 62 0 644 576 ; C -1 ; WX 600 ; N Lcommaaccent ; B 62 -232 591 563 ; C -1 ; WX 600 ; N Ldot ; B 62 0 591 563 ; C -1 ; WX 600 ; N Mu ; B -34 0 662 563 ; C -1 ; WX 600 ; N Nacute ; B 41 0 684 784 ; C -1 ; WX 600 ; N Ncaron ; B 41 0 684 784 ; C -1 ; WX 600 ; N Ncommaaccent ; B 41 -232 684 563 ; C -1 ; WX 600 ; N Ntilde ; B 41 0 684 750 ; C -1 ; WX 600 ; N Nu ; B -3 0 640 563 ; C -1 ; WX 600 ; N Oacute ; B 97 -16 622 784 ; C -1 ; WX 600 ; N Obreve ; B 53 -16 578 772 ; C -1 ; WX 600 ; N Ocircumflex ; B 97 -16 622 785 ; C -1 ; WX 600 ; N Odieresis ; B 97 -16 622 756 ; C -1 ; WX 600 ; N Ograve ; B 97 -16 622 784 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 97 -16 678 782 ; C -1 ; WX 600 ; N Omacron ; B 97 -16 622 719 ; C -1 ; WX 600 ; N Omegatonos ; B -1 0 620 575 ; C -1 ; WX 600 ; N Omicron ; B 53 -16 578 575 ; C -1 ; WX 600 ; N Omicrontonos ; B 25 -16 603 575 ; C -1 ; WX 600 ; N Oslashacute ; B 29 -42 691 784 ; C -1 ; WX 600 ; N Otilde ; B 98 -16 624 750 ; C -1 ; WX 600 ; N Phi ; B 99 -59 620 608 ; C -1 ; WX 600 ; N Pi ; B 10 0 615 563 ; C -1 ; WX 600 ; N Psi ; B 86 0 662 563 ; C -1 ; WX 600 ; N Racute ; B 42 0 600 784 ; C -1 ; WX 600 ; N Rcaron ; B 42 0 600 784 ; C -1 ; WX 600 ; N Rcommaaccent ; B 42 -232 600 563 ; C -1 ; WX 600 ; N Rfraktur ; B -51 -6 639 658 ; C -1 ; WX 600 ; N Rho ; B -2 0 549 563 ; C -1 ; WX 600 ; N SF010000 ; B 267 -250 600 283 ; C -1 ; WX 600 ; N SF020000 ; B 267 217 600 750 ; C -1 ; WX 600 ; N SF030000 ; B 0 -250 333 283 ; C -1 ; WX 600 ; N SF040000 ; B 0 217 333 750 ; C -1 ; WX 600 ; N SF050000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF060000 ; B 0 -250 600 283 ; C -1 ; WX 600 ; N SF070000 ; B 0 217 600 750 ; C -1 ; WX 600 ; N SF080000 ; B 267 -250 600 750 ; C -1 ; WX 600 ; N SF090000 ; B 0 -250 333 750 ; C -1 ; WX 600 ; N SF100000 ; B 0 217 600 283 ; C -1 ; WX 600 ; N SF110000 ; B 267 -250 333 750 ; C -1 ; WX 600 ; N SF190000 ; B 0 -250 333 750 ; C -1 ; WX 600 ; N SF200000 ; B 0 -250 399 750 ; C -1 ; WX 600 ; N SF210000 ; B 0 -250 399 283 ; C -1 ; WX 600 ; N SF220000 ; B 0 -250 333 349 ; C -1 ; WX 600 ; N SF230000 ; B 0 -250 399 750 ; C -1 ; WX 600 ; N SF240000 ; B 201 -250 399 750 ; C -1 ; WX 600 ; N SF250000 ; B 0 -250 399 349 ; C -1 ; WX 600 ; N SF260000 ; B 0 151 399 750 ; C -1 ; WX 600 ; N SF270000 ; B 0 217 399 750 ; C -1 ; WX 600 ; N SF280000 ; B 0 151 333 750 ; C -1 ; WX 600 ; N SF360000 ; B 267 -250 600 750 ; C -1 ; WX 600 ; N SF370000 ; B 201 -250 600 750 ; C -1 ; WX 600 ; N SF380000 ; B 201 151 600 750 ; C -1 ; WX 600 ; N SF390000 ; B 201 -250 600 349 ; C -1 ; WX 600 ; N SF400000 ; B 0 151 600 750 ; C -1 ; WX 600 ; N SF410000 ; B 0 -250 600 349 ; C -1 ; WX 600 ; N SF420000 ; B 201 -250 600 750 ; C -1 ; WX 600 ; N SF430000 ; B 0 151 600 349 ; C -1 ; WX 600 ; N SF440000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF450000 ; B 0 151 600 750 ; C -1 ; WX 600 ; N SF460000 ; B 0 217 600 750 ; C -1 ; WX 600 ; N SF470000 ; B 0 -250 600 349 ; C -1 ; WX 600 ; N SF480000 ; B 0 -250 600 283 ; C -1 ; WX 600 ; N SF490000 ; B 201 217 600 750 ; C -1 ; WX 600 ; N SF500000 ; B 267 151 600 750 ; C -1 ; WX 600 ; N SF510000 ; B 267 -250 600 349 ; C -1 ; WX 600 ; N SF520000 ; B 201 -250 600 283 ; C -1 ; WX 600 ; N SF530000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF540000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N Sacute ; B 91 -16 608 784 ; C -1 ; WX 600 ; N Scaron ; B 91 -16 625 784 ; C -1 ; WX 600 ; N Scedilla ; B 91 -176 608 575 ; C -1 ; WX 600 ; N Scircumflex ; B 91 -16 608 785 ; C -1 ; WX 600 ; N Scommaaccent ; B 91 -232 608 575 ; C -1 ; WX 600 ; N Sigma ; B 133 0 657 563 ; C -1 ; WX 600 ; N Tau ; B 103 0 611 563 ; C -1 ; WX 600 ; N Tbar ; B 147 0 653 563 ; C -1 ; WX 600 ; N Tcaron ; B 147 0 655 784 ; C -1 ; WX 600 ; N Tcommaaccent ; B 147 -176 655 563 ; C -1 ; WX 600 ; N Theta ; B 97 -16 622 575 ; C -1 ; WX 600 ; N Thorn ; B 42 0 572 563 ; C -1 ; WX 600 ; N Uacute ; B 131 -16 682 784 ; C -1 ; WX 600 ; N Ubreve ; B 131 -16 682 772 ; C -1 ; WX 600 ; N Ucircumflex ; B 131 -16 682 785 ; C -1 ; WX 600 ; N Udieresis ; B 131 -16 682 756 ; C -1 ; WX 600 ; N Ugrave ; B 131 -16 682 784 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 131 -16 682 782 ; C -1 ; WX 600 ; N Umacron ; B 131 -16 682 719 ; C -1 ; WX 600 ; N Uogonek ; B 131 -152 682 563 ; C -1 ; WX 600 ; N Upsilon ; B 104 0 627 563 ; C -1 ; WX 600 ; N Upsilondieresis ; B 103 0 624 715 ; C -1 ; WX 600 ; N Upsilontonos ; B 8 0 691 563 ; C -1 ; WX 600 ; N Uring ; B 131 -16 682 802 ; C -1 ; WX 600 ; N Utilde ; B 131 -16 682 749 ; C -1 ; WX 600 ; N Wacute ; B 116 0 701 784 ; C -1 ; WX 600 ; N Wcircumflex ; B 72 0 657 785 ; C -1 ; WX 600 ; N Wdieresis ; B 116 0 701 757 ; C -1 ; WX 600 ; N Wgrave ; B 116 0 701 784 ; C -1 ; WX 600 ; N Xi ; B 29 0 609 563 ; C -1 ; WX 600 ; N Yacute ; B 148 0 671 784 ; C -1 ; WX 600 ; N Ycircumflex ; B 104 0 627 785 ; C -1 ; WX 600 ; N Ydieresis ; B 148 0 671 756 ; C -1 ; WX 600 ; N Ygrave ; B 148 0 671 784 ; C -1 ; WX 600 ; N Zacute ; B 96 0 596 784 ; C -1 ; WX 600 ; N Zcaron ; B 96 0 611 784 ; C -1 ; WX 600 ; N Zdotaccent ; B 96 0 596 757 ; C -1 ; WX 600 ; N Zeta ; B 53 0 553 563 ; C -1 ; WX 600 ; N aacute ; B 88 -16 552 637 ; C -1 ; WX 600 ; N abreve ; B 88 -16 579 618 ; C -1 ; WX 600 ; N acircumflex ; B 88 -16 552 638 ; C -1 ; WX 600 ; N adieresis ; B 88 -16 577 609 ; C -1 ; WX 600 ; N aeacute ; B 31 -16 636 637 ; C -1 ; WX 600 ; N afii00208 ; B 55 256 665 307 ; C -1 ; WX 600 ; N afii10017 ; B -36 0 558 563 ; C -1 ; WX 600 ; N afii10018 ; B 1 0 562 563 ; C -1 ; WX 600 ; N afii10019 ; B -2 0 553 563 ; C -1 ; WX 600 ; N afii10020 ; B 17 0 623 563 ; C -1 ; WX 600 ; N afii10021 ; B -45 -135 625 563 ; C -1 ; WX 600 ; N afii10022 ; B -2 0 582 563 ; C -1 ; WX 600 ; N afii10023 ; B 1 0 581 716 ; C -1 ; WX 600 ; N afii10024 ; B -44 0 650 564 ; C -1 ; WX 600 ; N afii10025 ; B 21 -16 562 575 ; C -1 ; WX 600 ; N afii10026 ; B -14 0 648 563 ; C -1 ; WX 600 ; N afii10027 ; B -14 0 649 764 ; C -1 ; WX 600 ; N afii10028 ; B 23 0 621 564 ; C -1 ; WX 600 ; N afii10029 ; B -29 -16 625 563 ; C -1 ; WX 600 ; N afii10030 ; B -34 0 662 563 ; C -1 ; WX 600 ; N afii10031 ; B 8 0 608 563 ; C -1 ; WX 600 ; N afii10032 ; B 53 -16 578 575 ; C -1 ; WX 600 ; N afii10033 ; B 10 0 615 563 ; C -1 ; WX 600 ; N afii10034 ; B -2 0 549 563 ; C -1 ; WX 600 ; N afii10035 ; B 61 -16 597 575 ; C -1 ; WX 600 ; N afii10036 ; B 103 0 611 563 ; C -1 ; WX 600 ; N afii10037 ; B 38 -16 663 563 ; C -1 ; WX 600 ; N afii10038 ; B 58 0 573 567 ; C -1 ; WX 600 ; N afii10039 ; B -5 0 624 563 ; C -1 ; WX 600 ; N afii10040 ; B -7 -121 616 563 ; C -1 ; WX 600 ; N afii10041 ; B 82 0 612 563 ; C -1 ; WX 600 ; N afii10042 ; B -40 0 665 563 ; C -1 ; WX 600 ; N afii10043 ; B -40 -121 665 563 ; C -1 ; WX 600 ; N afii10044 ; B 47 0 540 563 ; C -1 ; WX 600 ; N afii10045 ; B -46 0 665 563 ; C -1 ; WX 600 ; N afii10046 ; B 1 0 537 563 ; C -1 ; WX 600 ; N afii10047 ; B 32 -16 561 575 ; C -1 ; WX 600 ; N afii10048 ; B -35 -16 606 576 ; C -1 ; WX 600 ; N afii10049 ; B -8 0 610 563 ; C -1 ; WX 600 ; N afii10050 ; B 17 0 658 746 ; C -1 ; WX 600 ; N afii10051 ; B 48 -16 567 563 ; C -1 ; WX 600 ; N afii10052 ; B 1 0 628 779 ; C -1 ; WX 600 ; N afii10053 ; B 63 -16 595 575 ; C -1 ; WX 600 ; N afii10054 ; B 47 -16 564 575 ; C -1 ; WX 600 ; N afii10055 ; B 68 0 565 563 ; C -1 ; WX 600 ; N afii10056 ; B 69 0 563 716 ; C -1 ; WX 600 ; N afii10057 ; B 50 -16 660 563 ; C -1 ; WX 600 ; N afii10058 ; B -26 -16 574 563 ; C -1 ; WX 600 ; N afii10059 ; B -39 0 572 563 ; C -1 ; WX 600 ; N afii10060 ; B 48 0 555 563 ; C -1 ; WX 600 ; N afii10061 ; B 23 0 621 779 ; C -1 ; WX 600 ; N afii10062 ; B 38 -16 663 764 ; C -1 ; WX 600 ; N afii10065 ; B 44 -16 508 433 ; C -1 ; WX 600 ; N afii10066 ; B 57 -13 558 596 ; C -1 ; WX 600 ; N afii10067 ; B 1 0 508 419 ; C -1 ; WX 600 ; N afii10068 ; B 1 0 596 419 ; C -1 ; WX 600 ; N afii10069 ; B -28 -99 579 419 ; C -1 ; WX 600 ; N afii10070 ; B 55 -16 532 433 ; C -1 ; WX 600 ; N afii10071 ; B 58 -16 531 590 ; C -1 ; WX 600 ; N afii10072 ; B -32 0 610 419 ; C -1 ; WX 600 ; N afii10073 ; B 37 -13 530 433 ; C -1 ; WX 600 ; N afii10074 ; B -6 0 612 419 ; C -1 ; WX 600 ; N afii10075 ; B -6 0 612 623 ; C -1 ; WX 600 ; N afii10076 ; B 21 0 576 420 ; C -1 ; WX 600 ; N afii10077 ; B -30 -13 580 419 ; C -1 ; WX 600 ; N afii10078 ; B -30 0 625 419 ; C -1 ; WX 600 ; N afii10079 ; B 10 0 588 419 ; C -1 ; WX 600 ; N afii10080 ; B 62 -16 539 433 ; C -1 ; WX 600 ; N afii10081 ; B 10 0 583 419 ; C -1 ; WX 600 ; N afii10082 ; B -62 -182 555 433 ; C -1 ; WX 600 ; N afii10083 ; B 73 -16 558 433 ; C -1 ; WX 600 ; N afii10084 ; B 71 0 576 419 ; C -1 ; WX 600 ; N afii10085 ; B -27 -182 596 419 ; C -1 ; WX 600 ; N afii10086 ; B 47 -152 550 591 ; C -1 ; WX 600 ; N afii10087 ; B 6 0 573 419 ; C -1 ; WX 600 ; N afii10088 ; B 10 -121 583 419 ; C -1 ; WX 600 ; N afii10089 ; B 68 0 586 419 ; C -1 ; WX 600 ; N afii10090 ; B -40 0 633 419 ; C -1 ; WX 600 ; N afii10091 ; B -40 -121 633 419 ; C -1 ; WX 600 ; N afii10092 ; B 24 0 521 419 ; C -1 ; WX 600 ; N afii10093 ; B -30 0 633 419 ; C -1 ; WX 600 ; N afii10094 ; B 1 0 508 419 ; C -1 ; WX 600 ; N afii10095 ; B 31 -16 538 433 ; C -1 ; WX 600 ; N afii10096 ; B -28 -16 578 433 ; C -1 ; WX 600 ; N afii10097 ; B -9 0 590 419 ; C -1 ; WX 600 ; N afii10098 ; B 1 0 626 583 ; C -1 ; WX 600 ; N afii10099 ; B 9 -182 504 602 ; C -1 ; WX 600 ; N afii10100 ; B 1 0 596 637 ; C -1 ; WX 600 ; N afii10101 ; B 75 -16 555 433 ; C -1 ; WX 600 ; N afii10102 ; B 59 -16 520 433 ; C -1 ; WX 600 ; N afii10103 ; B 47 0 475 622 ; C -1 ; WX 600 ; N afii10104 ; B 48 0 481 590 ; C -1 ; WX 600 ; N afii10105 ; B 63 -184 510 622 ; C -1 ; WX 600 ; N afii10106 ; B -17 -13 557 419 ; C -1 ; WX 600 ; N afii10107 ; B -31 0 544 419 ; C -1 ; WX 600 ; N afii10108 ; B 9 0 516 602 ; C -1 ; WX 600 ; N afii10109 ; B 21 0 576 637 ; C -1 ; WX 600 ; N afii10110 ; B 16 -144 623 623 ; C -1 ; WX 600 ; N afii10145 ; B 12 -121 635 563 ; C -1 ; WX 600 ; N afii10193 ; B 10 -121 583 419 ; C -1 ; WX 600 ; N afii10846 ; B 55 -16 532 433 ; C -1 ; WX 600 ; N afii61248 ; B 58 -41 657 624 ; C -1 ; WX 600 ; N afii61289 ; B 110 -9 463 688 ; C -1 ; WX 600 ; N afii61352 ; B -14 0 620 563 ; C -1 ; WX 600 ; N agrave ; B 88 -16 552 637 ; C -1 ; WX 600 ; N aleph ; B 52 -4 549 694 ; C -1 ; WX 600 ; N alpha ; B 106 -16 706 433 ; C -1 ; WX 600 ; N alphatonos ; B 47 -16 590 637 ; C -1 ; WX 600 ; N amacron ; B 88 -16 570 575 ; C -1 ; WX 600 ; N angle ; B -22 3 618 456 ; C -1 ; WX 600 ; N angleleft ; B 187 -125 414 646 ; C -1 ; WX 600 ; N angleright ; B 187 -125 414 646 ; C -1 ; WX 600 ; N aogonek ; B 88 -152 552 433 ; C -1 ; WX 600 ; N approxequal ; B 92 139 519 424 ; C -1 ; WX 600 ; N aring ; B 88 -16 552 658 ; C -1 ; WX 600 ; N aringacute ; B 88 -16 552 776 ; C -1 ; WX 600 ; N arrowboth ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowdblboth ; B -161 72 761 571 ; C -1 ; WX 600 ; N arrowdbldown ; B 53 10 548 704 ; C -1 ; WX 600 ; N arrowdblleft ; B -94 72 690 571 ; C -1 ; WX 600 ; N arrowdblright ; B -91 72 693 571 ; C -1 ; WX 600 ; N arrowdblup ; B 53 13 548 707 ; C -1 ; WX 600 ; N arrowdown ; B 157 -12 422 538 ; C -1 ; WX 600 ; N arrowleft ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowright ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowup ; B 157 -12 422 538 ; C -1 ; WX 600 ; N arrowupdn ; B 167 -25 432 525 ; C -1 ; WX 600 ; N arrowupdnbse ; B 170 -84 435 564 ; C -1 ; WX 600 ; N asteriskmath ; B 144 110 456 417 ; C -1 ; WX 600 ; N atilde ; B 88 -16 575 603 ; C -1 ; WX 600 ; N beta ; B 52 -178 514 602 ; C -1 ; WX 600 ; N block ; B 0 -250 600 750 ; C -1 ; WX 600 ; N brokenbar ; B 275 -122 326 603 ; C -1 ; WX 600 ; N cacute ; B 117 -16 602 637 ; C -1 ; WX 600 ; N carriagereturn ; B 78 60 511 560 ; C -1 ; WX 600 ; N ccaron ; B 117 -16 602 637 ; C -1 ; WX 600 ; N ccedilla ; B 117 -169 602 433 ; C -1 ; WX 600 ; N ccircumflex ; B 117 -16 602 638 ; C -1 ; WX 600 ; N cdotaccent ; B 117 -16 602 609 ; C -1 ; WX 600 ; N chi ; B 48 -182 518 433 ; C -1 ; WX 600 ; N circle ; B 85 67 514 496 ; C -1 ; WX 600 ; N circlemultiply ; B 28 0 538 500 ; C -1 ; WX 600 ; N club ; B 18 0 582 563 ; C -1 ; WX 600 ; N congruent ; B 46 103 555 489 ; C -1 ; WX 600 ; N copyright ; B 52 -15 669 577 ; C -1 ; WX 600 ; N dcaron ; B 97 -16 780 616 ; C -1 ; WX 600 ; N dcroat ; B 97 -16 695 603 ; C -1 ; WX 600 ; N degree ; B 252 339 559 634 ; C -1 ; WX 600 ; N delta ; B 106 -16 583 651 ; C -1 ; WX 600 ; N diamond ; B 97 -22 525 585 ; C -1 ; WX 600 ; N dieresistonos ; B 185 481 536 637 ; C -1 ; WX 600 ; N divide ; B 126 25 594 540 ; C -1 ; WX 600 ; N dkshade ; B 0 -142 600 758 ; C -1 ; WX 600 ; N dnblock ; B 0 -250 600 250 ; C -1 ; WX 600 ; N eacute ; B 99 -16 576 637 ; C -1 ; WX 600 ; N ebreve ; B 99 -16 579 618 ; C -1 ; WX 600 ; N ecaron ; B 99 -16 583 637 ; C -1 ; WX 600 ; N ecircumflex ; B 99 -16 576 638 ; C -1 ; WX 600 ; N edieresis ; B 99 -16 592 609 ; C -1 ; WX 600 ; N edotaccent ; B 99 -16 576 609 ; C -1 ; WX 600 ; N egrave ; B 99 -16 576 637 ; C -1 ; WX 600 ; N eightsuperior ; B 261 248 517 611 ; C -1 ; WX 600 ; N element ; B 20 0 581 514 ; C -1 ; WX 600 ; N emacron ; B 99 -16 576 575 ; C -1 ; WX 600 ; N emptyset ; B 67 -86 534 513 ; C -1 ; WX 600 ; N eng ; B 52 -184 552 433 ; C -1 ; WX 600 ; N eogonek ; B 99 -152 576 433 ; C -1 ; WX 600 ; N epsilon ; B 152 -11 507 446 ; C -1 ; WX 600 ; N epsilontonos ; B 104 -16 520 637 ; C -1 ; WX 600 ; N equivalence ; B 46 116 555 449 ; C -1 ; WX 600 ; N estimated ; B 67 -7 477 424 ; C -1 ; WX 600 ; N eta ; B 21 -182 515 433 ; C -1 ; WX 600 ; N etatonos ; B 21 -182 515 637 ; C -1 ; WX 600 ; N eth ; B 106 -17 588 618 ; C -1 ; WX 600 ; N exclamdbl ; B 115 -15 486 616 ; C -1 ; WX 600 ; N existential ; B 119 0 464 563 ; C -1 ; WX 600 ; N female ; B 87 0 514 705 ; C -1 ; WX 600 ; N ff ; B 9 0 727 603 ; C -1 ; WX 600 ; N ffi ; B 8 0 608 603 ; C -1 ; WX 600 ; N ffl ; B 8 0 619 603 ; C -1 ; WX 600 ; N filledbox ; B 60 0 539 481 ; C -1 ; WX 600 ; N filledrect ; B 19 0 582 282 ; C -1 ; WX 600 ; N fiveeighths ; B 80 -8 631 603 ; C -1 ; WX 600 ; N fivesuperior ; B 246 248 516 603 ; C -1 ; WX 600 ; N foursuperior ; B 258 256 505 603 ; C -1 ; WX 600 ; N franc ; B 62 0 690 563 ; C -1 ; WX 600 ; N gamma ; B 73 -182 613 419 ; C -1 ; WX 600 ; N gbreve ; B 100 -187 653 618 ; C -1 ; WX 600 ; N gcircumflex ; B 100 -187 653 638 ; C -1 ; WX 600 ; N gcommaaccent ; B 100 -187 653 665 ; C -1 ; WX 600 ; N gdotaccent ; B 100 -187 653 609 ; C -1 ; WX 600 ; N gradient ; B 35 0 565 563 ; C -1 ; WX 600 ; N greaterequal ; B 46 -1 526 562 ; C -1 ; WX 600 ; N hbar ; B 50 0 562 603 ; C -1 ; WX 600 ; N hcircumflex ; B 50 0 562 785 ; C -1 ; WX 600 ; N heart ; B 51 -22 550 563 ; C -1 ; WX 600 ; N house ; B 70 0 531 565 ; C -1 ; WX 600 ; N iacute ; B 91 0 541 637 ; C -1 ; WX 600 ; N ibreve ; B 47 0 535 618 ; C -1 ; WX 600 ; N icircumflex ; B 90 0 543 638 ; C -1 ; WX 600 ; N idieresis ; B 91 0 574 609 ; C -1 ; WX 600 ; N igrave ; B 91 0 519 637 ; C -1 ; WX 600 ; N ij ; B 24 -184 670 622 ; C -1 ; WX 600 ; N imacron ; B 91 0 570 575 ; C -1 ; WX 600 ; N infinity ; B 12 155 588 409 ; C -1 ; WX 600 ; N integral ; B 147 -199 455 634 ; C -1 ; WX 600 ; N integralbt ; B 146 -182 326 634 ; C -1 ; WX 600 ; N integraltp ; B 274 -182 454 634 ; C -1 ; WX 600 ; N intersection ; B 63 0 537 562 ; C -1 ; WX 600 ; N invbullet ; B 61 0 540 479 ; C -1 ; WX 600 ; N invcircle ; B 19 0 582 563 ; C -1 ; WX 600 ; N invsmileface ; B 19 0 582 563 ; C -1 ; WX 600 ; N iogonek ; B 91 -152 519 622 ; C -1 ; WX 600 ; N iota ; B 216 -16 389 433 ; C -1 ; WX 600 ; N iotadieresis ; B 200 -16 497 569 ; C -1 ; WX 600 ; N iotadieresistonos ; B 178 -16 529 637 ; C -1 ; WX 600 ; N iotatonos ; B 216 -16 473 637 ; C -1 ; WX 600 ; N itilde ; B 91 0 519 603 ; C -1 ; WX 600 ; N jcircumflex ; B 107 -184 592 638 ; C -1 ; WX 600 ; N kappa ; B 48 0 546 419 ; C -1 ; WX 600 ; N kcommaaccent ; B 62 -232 584 603 ; C -1 ; WX 600 ; N kgreenlandic ; B 62 0 583 419 ; C -1 ; WX 600 ; N lacute ; B 91 0 578 784 ; C -1 ; WX 600 ; N lambda ; B -3 0 551 602 ; C -1 ; WX 600 ; N lcaron ; B 91 0 598 616 ; C -1 ; WX 600 ; N lcommaaccent ; B 91 -232 519 603 ; C -1 ; WX 600 ; N ldot ; B 91 0 652 603 ; C -1 ; WX 600 ; N lessequal ; B 46 -1 526 562 ; C -1 ; WX 600 ; N lfblock ; B 0 -250 300 750 ; C -1 ; WX 600 ; N lira ; B 41 0 502 577 ; C -1 ; WX 600 ; N logicalnot ; B 67 165 534 440 ; C -1 ; WX 600 ; N longs ; B 104 0 669 603 ; C -1 ; WX 600 ; N lozenge ; B 24 -39 574 647 ; C -1 ; WX 600 ; N ltshade ; B 0 -150 540 750 ; C -1 ; WX 600 ; N male ; B 59 -4 541 690 ; C -1 ; WX 600 ; N minus ; B 126 256 594 307 ; C -1 ; WX 600 ; N minute ; B 247 315 380 608 ; C -1 ; WX 600 ; N mu ; B 38 -196 547 419 ; C -1 ; WX 600 ; N multiply ; B 138 98 583 465 ; C -1 ; WX 600 ; N musicalnote ; B 132 14 439 563 ; C -1 ; WX 600 ; N musicalnotedbl ; B 73 -102 529 799 ; C -1 ; WX 600 ; N nacute ; B 52 0 583 637 ; C -1 ; WX 600 ; N napostrophe ; B 76 0 576 616 ; C -1 ; WX 600 ; N ncaron ; B 52 0 583 637 ; C -1 ; WX 600 ; N ncommaaccent ; B 52 -232 552 433 ; C -1 ; WX 600 ; N ninesuperior ; B 261 248 523 611 ; C -1 ; WX 600 ; N notelement ; B 20 -79 581 615 ; C -1 ; WX 600 ; N notequal ; B 46 62 555 511 ; C -1 ; WX 600 ; N notsubset ; B 21 -86 595 584 ; C -1 ; WX 600 ; N nsuperior ; B 198 261 523 543 ; C -1 ; WX 600 ; N ntilde ; B 52 0 576 603 ; C -1 ; WX 600 ; N nu ; B 73 0 517 425 ; C -1 ; WX 600 ; N oacute ; B 106 -16 583 637 ; C -1 ; WX 600 ; N obreve ; B 62 -16 539 618 ; C -1 ; WX 600 ; N ocircumflex ; B 106 -16 583 638 ; C -1 ; WX 600 ; N odieresis ; B 106 -16 587 609 ; C -1 ; WX 600 ; N ograve ; B 106 -16 583 637 ; C -1 ; WX 600 ; N ohungarumlaut ; B 106 -16 622 631 ; C -1 ; WX 600 ; N omacron ; B 106 -16 583 575 ; C -1 ; WX 600 ; N omega ; B 46 -16 550 433 ; C -1 ; WX 600 ; N omega1 ; B 86 -15 678 440 ; C -1 ; WX 600 ; N omegatonos ; B 46 -16 550 637 ; C -1 ; WX 600 ; N omicron ; B 62 -16 539 433 ; C -1 ; WX 600 ; N omicrontonos ; B 64 -16 536 637 ; C -1 ; WX 600 ; N oneeighth ; B 66 -8 642 612 ; C -1 ; WX 600 ; N onehalf ; B 79 0 629 612 ; C -1 ; WX 600 ; N onequarter ; B 72 0 646 612 ; C -1 ; WX 600 ; N onesuperior ; B 246 256 471 612 ; C -1 ; WX 600 ; N openbullet ; B 178 165 422 417 ; C -1 ; WX 600 ; N orthogonal ; B 58 0 544 486 ; C -1 ; WX 600 ; N oslashacute ; B 42 -42 643 637 ; C -1 ; WX 600 ; N otilde ; B 106 -16 592 603 ; C -1 ; WX 600 ; N partialdiff ; B 67 -16 534 580 ; C -1 ; WX 600 ; N perpendicular ; B 43 0 558 505 ; C -1 ; WX 600 ; N peseta ; B -31 -16 588 563 ; C -1 ; WX 600 ; N phi ; B 56 -182 554 433 ; C -1 ; WX 600 ; N phi1 ; B 99 -38 620 588 ; C -1 ; WX 600 ; N pi ; B 74 0 615 419 ; C -1 ; WX 600 ; N plusminus ; B 71 0 603 529 ; C -1 ; WX 600 ; N product ; B 33 -83 566 643 ; C -1 ; WX 600 ; N propersubset ; B -4 0 570 464 ; C -1 ; WX 600 ; N propersuperset ; B -4 0 570 464 ; C -1 ; WX 600 ; N proportional ; B 14 127 465 381 ; C -1 ; WX 600 ; N psi ; B 77 -182 609 602 ; C -1 ; WX 600 ; N quotereversed ; B 42 0 635 563 ; C -1 ; WX 600 ; N racute ; B 83 0 625 637 ; C -1 ; WX 600 ; N radical ; B 19 -18 636 700 ; C -1 ; WX 600 ; N rcaron ; B 83 0 625 637 ; C -1 ; WX 600 ; N rcommaaccent ; B 83 -232 625 429 ; C -1 ; WX 600 ; N reflexsubset ; B -4 0 570 605 ; C -1 ; WX 600 ; N reflexsuperset ; B -4 0 570 605 ; C -1 ; WX 600 ; N registered ; B 52 -15 669 577 ; C -1 ; WX 600 ; N revlogicalnot ; B 67 165 534 440 ; C -1 ; WX 600 ; N rho ; B 13 -182 544 433 ; C -1 ; WX 600 ; N rtblock ; B 300 -250 600 750 ; C -1 ; WX 600 ; N sacute ; B 103 -16 583 637 ; C -1 ; WX 600 ; N scaron ; B 102 -16 590 637 ; C -1 ; WX 600 ; N scedilla ; B 103 -169 564 433 ; C -1 ; WX 600 ; N scircumflex ; B 103 -16 564 638 ; C -1 ; WX 600 ; N scommaaccent ; B 103 -232 564 433 ; C -1 ; WX 600 ; N second ; B 161 315 456 608 ; C -1 ; WX 600 ; N seveneighths ; B 102 -8 630 603 ; C -1 ; WX 600 ; N sevensuperior ; B 301 255 536 603 ; C -1 ; WX 600 ; N shade ; B 0 -174 599 725 ; C -1 ; WX 600 ; N sigma ; B 106 -16 669 433 ; C -1 ; WX 600 ; N sixsuperior ; B 283 248 547 611 ; C -1 ; WX 600 ; N smileface ; B 19 0 582 563 ; C -1 ; WX 600 ; N spade ; B 98 0 559 585 ; C -1 ; WX 600 ; N suchthat ; B 20 0 581 514 ; C -1 ; WX 600 ; N summation ; B 107 -124 513 564 ; C -1 ; WX 600 ; N sun ; B 5 -13 595 576 ; C -1 ; WX 600 ; N tau ; B 187 -15 557 419 ; C -1 ; WX 600 ; N tbar ; B 118 -16 526 562 ; C -1 ; WX 600 ; N tcaron ; B 122 -16 598 616 ; C -1 ; WX 600 ; N tcommaaccent ; B 122 -176 524 562 ; C -1 ; WX 600 ; N therefore ; B 33 0 567 573 ; C -1 ; WX 600 ; N theta ; B 93 -16 547 602 ; C -1 ; WX 600 ; N theta1 ; B 28 -16 586 736 ; C -1 ; WX 600 ; N thorn ; B -18 -182 599 589 ; C -1 ; WX 600 ; N threeeighths ; B 81 -8 630 611 ; C -1 ; WX 600 ; N threequarters ; B 67 0 622 611 ; C -1 ; WX 600 ; N threesuperior ; B 242 248 518 611 ; C -1 ; WX 600 ; N tonos ; B 294 481 493 637 ; C -1 ; WX 600 ; N trademark ; B 85 238 716 563 ; C -1 ; WX 600 ; N triagdn ; B 59 24 540 465 ; C -1 ; WX 600 ; N triaglf ; B 67 106 504 414 ; C -1 ; WX 600 ; N triagrt ; B 97 106 534 414 ; C -1 ; WX 600 ; N triagup ; B 68 51 531 485 ; C -1 ; WX 600 ; N twosuperior ; B 227 256 517 611 ; C -1 ; WX 600 ; N uacute ; B 122 -16 576 637 ; C -1 ; WX 600 ; N ubreve ; B 122 -16 576 618 ; C -1 ; WX 600 ; N ucircumflex ; B 122 -16 576 638 ; C -1 ; WX 600 ; N udieresis ; B 122 -16 579 609 ; C -1 ; WX 600 ; N ugrave ; B 122 -16 576 637 ; C -1 ; WX 600 ; N uhungarumlaut ; B 122 -16 582 631 ; C -1 ; WX 600 ; N umacron ; B 122 -16 576 575 ; C -1 ; WX 600 ; N underscoredbl ; B -17 -317 618 -194 ; C -1 ; WX 600 ; N uni00A0 ; B 319 0 319 0 ; C -1 ; WX 600 ; N uni00AD ; B 126 253 594 304 ; C -1 ; WX 600 ; N uni021A ; B 147 -232 655 563 ; C -1 ; WX 600 ; N uni021B ; B 122 -232 524 562 ; C -1 ; WX 600 ; N uni02C9 ; B 268 525 570 575 ; C -1 ; WX 600 ; N uni0387 ; B 280 213 442 352 ; C -1 ; WX 600 ; N uni0394 ; B 4 0 511 563 ; C -1 ; WX 600 ; N uni03A9 ; B 25 0 643 575 ; C -1 ; WX 600 ; N uni03BC ; B 40 -182 523 419 ; C -1 ; WX 600 ; N uni03C2 ; B 88 -182 582 433 ; C -1 ; WX 600 ; N uni0400 ; B 42 0 626 784 ; C -1 ; WX 600 ; N uni040D ; B -14 0 648 784 ; C -1 ; WX 600 ; N uni0450 ; B 119 0 792 564 ; C -1 ; WX 600 ; N uni045D ; B -6 0 612 637 ; C -1 ; WX 600 ; N uni0462 ; B 1 0 537 563 ; C -1 ; WX 600 ; N uni0463 ; B 1 0 508 552 ; C -1 ; WX 600 ; N uni0472 ; B 97 -16 622 575 ; C -1 ; WX 600 ; N uni0473 ; B 106 -16 583 433 ; C -1 ; WX 600 ; N uni0474 ; B 119 0 792 564 ; C -1 ; WX 600 ; N uni0475 ; B 63 0 666 419 ; C -1 ; WX 600 ; N uni0492 ; B 42 0 647 563 ; C -1 ; WX 600 ; N uni0493 ; B 1 0 596 419 ; C -1 ; WX 600 ; N uni0496 ; B -44 -121 650 564 ; C -1 ; WX 600 ; N uni0497 ; B -32 -122 610 419 ; C -1 ; WX 600 ; N uni0498 ; B 21 -169 562 575 ; C -1 ; WX 600 ; N uni0499 ; B 37 -169 530 433 ; C -1 ; WX 600 ; N uni049A ; B 23 -121 621 564 ; C -1 ; WX 600 ; N uni049B ; B 21 -121 576 420 ; C -1 ; WX 600 ; N uni049C ; B 23 0 621 564 ; C -1 ; WX 600 ; N uni049D ; B 21 0 576 420 ; C -1 ; WX 600 ; N uni04A0 ; B 38 0 636 564 ; C -1 ; WX 600 ; N uni04A1 ; B 21 0 576 420 ; C -1 ; WX 600 ; N uni04A2 ; B 8 -122 608 563 ; C -1 ; WX 600 ; N uni04A3 ; B 10 -121 588 419 ; C -1 ; WX 600 ; N uni04AA ; B 105 -169 641 575 ; C -1 ; WX 600 ; N uni04AB ; B 117 -169 602 433 ; C -1 ; WX 600 ; N uni04AE ; B 148 0 671 563 ; C -1 ; WX 600 ; N uni04AF ; B 86 -211 595 419 ; C -1 ; WX 600 ; N uni04B0 ; B 148 0 671 563 ; C -1 ; WX 600 ; N uni04B1 ; B 86 -211 595 419 ; C -1 ; WX 600 ; N uni04B2 ; B -5 -121 624 563 ; C -1 ; WX 600 ; N uni04B3 ; B 6 -121 573 419 ; C -1 ; WX 600 ; N uni04B6 ; B 83 -121 613 563 ; C -1 ; WX 600 ; N uni04B7 ; B 68 -121 586 419 ; C -1 ; WX 600 ; N uni04B8 ; B 82 0 612 563 ; C -1 ; WX 600 ; N uni04B9 ; B 68 0 586 419 ; C -1 ; WX 600 ; N uni04BA ; B 82 0 612 563 ; C -1 ; WX 600 ; N uni04BB ; B 9 0 516 602 ; C -1 ; WX 600 ; N uni04C0 ; B 68 0 565 563 ; C -1 ; WX 600 ; N uni04CB ; B 83 -121 613 563 ; C -1 ; WX 600 ; N uni04CC ; B 68 -121 586 419 ; C -1 ; WX 600 ; N uni04CF ; B 68 0 565 563 ; C -1 ; WX 600 ; N uni04D8 ; B 96 -16 621 575 ; C -1 ; WX 600 ; N uni04E2 ; B 8 0 602 772 ; C -1 ; WX 600 ; N uni04E3 ; B 88 -16 579 618 ; C -1 ; WX 600 ; N uni04E8 ; B 97 -16 622 575 ; C -1 ; WX 600 ; N uni04E9 ; B 10 -121 583 419 ; C -1 ; WX 600 ; N uni04EE ; B 42 0 626 772 ; C -1 ; WX 600 ; N uni04EF ; B 99 -16 579 618 ; C -1 ; WX 600 ; N uni2002 ; B 300 0 300 0 ; C -1 ; WX 600 ; N uni203E ; B 143 690 778 741 ; C -1 ; WX 600 ; N uni20AF ; B 22 -190 576 634 ; C -1 ; WX 600 ; N uni20DD ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni210F ; B 87 -14 515 641 ; C -1 ; WX 600 ; N uni2112 ; B 0 -12 547 581 ; C -1 ; WX 600 ; N uni211E ; B 45 -75 547 560 ; C -1 ; WX 600 ; N uni2120 ; B 37 241 598 564 ; C -1 ; WX 600 ; N uni2126 ; B 21 0 579 575 ; C -1 ; WX 600 ; N uni2128 ; B 36 -111 506 547 ; C -1 ; WX 600 ; N uni212D ; B 63 -14 545 581 ; C -1 ; WX 600 ; N uni212F ; B 68 -12 515 445 ; C -1 ; WX 600 ; N uni2136 ; B 112 0 482 529 ; C -1 ; WX 600 ; N uni2137 ; B 167 0 435 530 ; C -1 ; WX 600 ; N uni2196 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2197 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2198 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2199 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni21C4 ; B 27 -35 571 463 ; C -1 ; WX 600 ; N uni21C6 ; B 29 -35 573 463 ; C -1 ; WX 600 ; N uni21D5 ; B 74 -35 529 661 ; C -1 ; WX 600 ; N uni220D ; B 145 -12 459 449 ; C -1 ; WX 600 ; N uni2213 ; B 72 0 528 529 ; C -1 ; WX 600 ; N uni2215 ; B 81 137 648 471 ; C -1 ; WX 600 ; N uni2219 ; B 280 213 442 352 ; C -1 ; WX 600 ; N uni2223 ; B 261 -145 302 837 ; C -1 ; WX 600 ; N uni2225 ; B 189 -246 373 881 ; C -1 ; WX 600 ; N uni2227 ; B 91 0 514 435 ; C -1 ; WX 600 ; N uni2228 ; B 91 0 514 435 ; C -1 ; WX 600 ; N uni222E ; B 121 -203 489 636 ; C -1 ; WX 600 ; N uni2235 ; B 38 0 561 574 ; C -1 ; WX 600 ; N uni2237 ; B 36 0 559 574 ; C -1 ; WX 600 ; N uni2262 ; B 51 10 549 555 ; C -1 ; WX 600 ; N uni226A ; B 60 89 511 563 ; C -1 ; WX 600 ; N uni226B ; B 60 89 511 563 ; C -1 ; WX 600 ; N uni2285 ; B 26 -88 589 586 ; C -1 ; WX 600 ; N uni2295 ; B 49 0 546 501 ; C -1 ; WX 600 ; N uni2296 ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni2298 ; B 45 0 542 501 ; C -1 ; WX 600 ; N uni2299 ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni22A2 ; B 46 0 550 504 ; C -1 ; WX 600 ; N uni22A3 ; B 49 0 554 504 ; C -1 ; WX 600 ; N uni22A4 ; B 49 0 554 504 ; C -1 ; WX 600 ; N uni22BB ; B 91 -160 512 438 ; C -1 ; WX 600 ; N uni256D ; B 268 -246 605 282 ; C -1 ; WX 600 ; N uni256E ; B 0 -246 334 281 ; C -1 ; WX 600 ; N uni256F ; B 0 219 334 749 ; C -1 ; WX 600 ; N uni2570 ; B 268 212 604 749 ; C -1 ; WX 600 ; N uni25A1 ; B 17 0 584 567 ; C -1 ; WX 600 ; N uni25B5 ; B 94 34 507 476 ; C -1 ; WX 600 ; N uni25B9 ; B 94 39 536 453 ; C -1 ; WX 600 ; N uni25BF ; B 95 34 508 476 ; C -1 ; WX 600 ; N uni25C3 ; B 70 39 512 453 ; C -1 ; WX 600 ; N uni25C6 ; B 44 41 566 620 ; C -1 ; WX 600 ; N uni25C7 ; B -7 -12 609 669 ; C -1 ; WX 600 ; N uni301A ; B 116 -155 362 787 ; C -1 ; WX 600 ; N uni301B ; B 116 -155 362 787 ; C -1 ; WX 600 ; N uniEFBF ; B -73 3 672 872 ; C -1 ; WX 600 ; N uniEFC0 ; B 0 -179 395 843 ; C -1 ; WX 600 ; N uniEFC1 ; B 0 -152 395 870 ; C -1 ; WX 600 ; N uniEFC2 ; B 0 -246 596 749 ; C -1 ; WX 600 ; N uniEFC3 ; B 0 -246 596 749 ; C -1 ; WX 600 ; N uniEFC4 ; B 178 -179 600 843 ; C -1 ; WX 600 ; N uniEFC5 ; B 178 -152 600 870 ; C -1 ; WX 600 ; N uniEFC6 ; B 52 -246 544 750 ; C -1 ; WX 600 ; N uniEFC7 ; B 52 -247 544 749 ; C -1 ; WX 600 ; N uniEFC8 ; B 52 -246 544 749 ; C -1 ; WX 600 ; N uniEFC9 ; B 178 -152 396 843 ; C -1 ; WX 600 ; N uniEFCA ; B 94 -78 507 476 ; C -1 ; WX 600 ; N uniEFCB ; B 0 121 600 305 ; C -1 ; WX 600 ; N uniEFCC ; B 267 -181 614 872 ; C -1 ; WX 600 ; N uniEFCD ; B -15 -179 615 870 ; C -1 ; WX 600 ; N uniEFCE ; B 0 -180 558 167 ; C -1 ; WX 600 ; N uniEFCF ; B -14 -179 336 870 ; C -1 ; WX 600 ; N uniEFD0 ; B 0 524 559 873 ; C -1 ; WX 600 ; N uniEFD1 ; B -15 -179 615 870 ; C -1 ; WX 600 ; N uniEFD2 ; B -14 -179 615 870 ; C -1 ; WX 600 ; N uniEFD3 ; B -15 -179 614 870 ; C -1 ; WX 600 ; N uniEFD4 ; B 58 -246 503 749 ; C -1 ; WX 600 ; N uniEFD5 ; B 54 -276 554 443 ; C -1 ; WX 600 ; N uniEFD6 ; B 29 182 577 566 ; C -1 ; WX 600 ; N uniEFD7 ; B 0 0 603 603 ; C -1 ; WX 600 ; N uniEFD8 ; B 0 0 603 603 ; C -1 ; WX 600 ; N uniEFD9 ; B 14 196 588 566 ; C -1 ; WX 600 ; N uniEFDA ; B 0 0 603 603 ; C -1 ; WX 600 ; N uniEFDB ; B 0 0 603 603 ; C -1 ; WX 600 ; N uniEFDC ; B 29 -188 308 843 ; C -1 ; WX 600 ; N uniEFDD ; B 254 -246 308 749 ; C -1 ; WX 600 ; N uniEFDE ; B 58 -246 314 749 ; C -1 ; WX 600 ; N uniEFDF ; B 254 -246 484 749 ; C -1 ; WX 600 ; N uniEFE0 ; B 58 -246 315 749 ; C -1 ; WX 600 ; N uniEFE1 ; B 254 -246 504 749 ; C -1 ; WX 600 ; N uniEFE2 ; B 80 -246 308 749 ; C -1 ; WX 600 ; N uniEFE3 ; B 254 -246 512 749 ; C -1 ; WX 600 ; N uniEFE4 ; B 0 -179 308 843 ; C -1 ; WX 600 ; N uniEFE5 ; B 0 -152 308 870 ; C -1 ; WX 600 ; N uniEFE6 ; B 254 -179 600 843 ; C -1 ; WX 600 ; N uniEFE7 ; B 254 -152 600 870 ; C -1 ; WX 600 ; N uniEFE8 ; B 0 188 600 242 ; C -1 ; WX 600 ; N uniEFE9 ; B 0 816 472 933 ; C -1 ; WX 600 ; N uniEFEA ; B 0 816 600 870 ; C -1 ; WX 600 ; N uniEFEB ; B 0 -179 600 -125 ; C -1 ; WX 600 ; N uniEFEC ; B 79 -11 541 548 ; C -1 ; WX 600 ; N uniEFFA ; B 0 0 602 602 ; C -1 ; WX 600 ; N uniEFFB ; B 0 0 600 600 ; C -1 ; WX 600 ; N uniEFFC ; B 0 0 600 602 ; C -1 ; WX 600 ; N uniEFFD ; B 0 0 602 602 ; C -1 ; WX 600 ; N uniEFFE ; B 34 -12 581 569 ; C -1 ; WX 600 ; N uniEFFF ; B 67 276 537 740 ; C -1 ; WX 600 ; N union ; B 63 0 537 562 ; C -1 ; WX 600 ; N universal ; B 55 0 544 599 ; C -1 ; WX 600 ; N uogonek ; B 122 -152 576 419 ; C -1 ; WX 600 ; N upblock ; B 0 250 600 750 ; C -1 ; WX 600 ; N upsilon ; B 78 -16 595 419 ; C -1 ; WX 600 ; N upsilondieresis ; B 78 -16 595 590 ; C -1 ; WX 600 ; N upsilondieresistonos ; B 78 -16 595 616 ; C -1 ; WX 600 ; N upsilontonos ; B 78 -16 595 637 ; C -1 ; WX 600 ; N uring ; B 122 -16 576 658 ; C -1 ; WX 600 ; N utilde ; B 122 -16 577 603 ; C -1 ; WX 600 ; N wacute ; B 109 0 661 637 ; C -1 ; WX 600 ; N wcircumflex ; B 65 0 617 638 ; C -1 ; WX 600 ; N wdieresis ; B 109 0 661 609 ; C -1 ; WX 600 ; N weierstrass ; B 37 -165 566 407 ; C -1 ; WX 600 ; N wgrave ; B 109 0 661 637 ; C -1 ; WX 600 ; N xi ; B 131 -182 529 602 ; C -1 ; WX 600 ; N yacute ; B 17 -182 640 637 ; C -1 ; WX 600 ; N ycircumflex ; B -27 -182 596 638 ; C -1 ; WX 600 ; N ydieresis ; B 17 -182 640 609 ; C -1 ; WX 600 ; N ygrave ; B 17 -182 640 637 ; C -1 ; WX 600 ; N zacute ; B 108 0 582 637 ; C -1 ; WX 600 ; N zcaron ; B 108 0 581 637 ; C -1 ; WX 600 ; N zdotaccent ; B 108 0 569 609 ; C -1 ; WX 600 ; N zerosuperior ; B 268 248 516 611 ; C -1 ; WX 600 ; N zeta ; B 143 -182 547 602 ; EndCharMetrics EndFontMetrics libwmf-0.2.13/fonts/NimbusMonoPS-Italic.t1000066400000000000000000004272071441723000300202160ustar00rootroot00000000000000%!PS-AdobeFont-1.0: NimbusMonoPS-Italic 1.00 %%CreationDate: Wed May 17 2017 % Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development % (URW)++,Copyright 2014 by (URW)++ Design & Development 10 dict begin /FontInfo 12 dict dup begin /version (1.00) readonly def /Notice ((URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /Copyright (Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono PS Italic) readonly def /FamilyName (Nimbus Mono PS) readonly def /Weight (Regular) readonly def /ItalicAngle -12.0 def /isFixedPitch true def /UnderlinePosition -91 def /UnderlineThickness 51 def end readonly def /FontName /NimbusMonoPS-Italic def /PaintType 0 def /FontBBox {-161 -317 792 933} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec é ×`£Â,ñùÜiš"Ã[[4Þ?¿Ø˜¯.aÔØ·Pþ‡‡ÝÙgëð9YÆÊ2SÝã/ÊØ$u™lµüÔFëâi:Ìô Ÿ-=ËÅ‹IåéÉ¢“ÉÅ«ôSÀ­:¶QÖÃëí<¡yùéö1’YãL ¡ Œ4brî4*{‹0 @!þWbêƒ47W€éŽãfÔâØóJQr¨ª '7øjѹÒùW“à]Λž/LQÖ3/†XBSÁ¶("˜`¨yœ¶Â(ìÌvž¹=¾Ž KÇmŽÁƒ4ttñŸ!³²Gº"„=¸z',äÓµ¼¤ ?ìÖ™f×vY=¥Ï¸õ;^4täØdœ®5ýÚ&¼·²e­Ze‘~õ “¡Á06òü@Ì?³ ËAFGËãM8?œ$„ÈË-Gù’|¸!,•/€4‚XÆ#Ÿhó«ç¸R¹üTý÷üÐý(íXœÏQ!ƒ} èˆ#,¾q®_¨Y&}Ö»¬ïÀ}L•ŽÈQVÃ!éSûØÉ>“?ß©®–kÉÍÉrý’5ýHø3å…²¢ÓÚå¢Zz8@tðÝøˆÎhŒña‡Ó0JÞ<¶åRóþ µ8ÔbõC–St’à”¨Ï}e­lÞŒ=ÚI‘5´*ܚƚԆ«eô™±‘öÿœòSfN”Q²Y¦}LkÆ$¤Éó4ÑÚÊœËÝ™6”m[¿ÆfÙÇ×¿ÒØ’ˆF µkd§( 7qòªïu¾¶f KÑIzö.…1£0§¸ à÷µt‡ÕK¼˜I…ûßMU²hË÷˜n nB&ŒÚ"O =, ?¥^‡iȃ­4E¢î‰‘´’ÄÐÙžvèµt–r¦pÎt }(þ•šø³×òxK}èÓ R¥VSâYgžôZºg.’ì¡ÅîCÏÐŒ‹\Z¨;ŸÕpý°PPij3ÿ’Ré—=-«]Ï1qgj]¡<³‰Þ4jÖªZµŒg_ŽÎÿÝOUY+¬&aš H‘Ŭ¢"^¾!§õ˜±½ö0‰Ó£ ÑÅaäT˜|†E×['át"™ñN¦]ê &xp‚šÛqö!—Õ—ôç'÷¡f×<_ÝI@¬!A»Þzà ¿a9¬f‰?V²í@¹ëR<ý³Gêb&YÑzPØ±Æ ÷Vˆóí87Ÿ<˜øŸó‹0Ø@)L¿•ÖK”ü¨'Vø ©â*BáÇWÉŠ ˜&¼<æÔ¦RŠÄah>2îµ°xÙâ…´,¯;À/7÷ŒÙ™N–2iÃÝt¬ƒ«ãšƒ±æ8_|Õ"”¢µ)ëŽmö¥õ»äå ùipyª~_œœ;ƺl=8N­¦(›Ù©"Ä ò㎙;œ#¡ª©9¤‰lv¸{ñ\ŒD“uxV†&ehv!@ôÖ{“bÂeîÐ|‚p22$‚!†¿h*múÑVî5Ñêãë³ù†~¿Úº²qÁôâû­¢˜µ°Iœ]¤âs#Ë’ê  º‡2tjWß¡‰†_ÿywG{,-™)ÝÓíÜ’R ³Whçˆ&aCƒ“ÁÍšOXúþä68,cï7Ó~w±ëjµ¯ÓÎüýîÉVÔBÊŽè¸5A¾÷\§õ~ˆ ³áb͘‰jëeh>9"PÉÛ‡‹—z-iÇ—2Êʯ å —ï;™;††y‰`Ô§­Å±L²Óðáß‘<’1rïgç@(šïšº´ÖH˜Î¸)09p OÓ&zè¿Î RŠNƒ¥Aý)Y$^_ XYz˺AÙdÆ®o¼ûÙéx)M¯É­#À «™PkëîKÄn¶Ô_­% 9S…–ˆš͹&/âÏÙÍäȇ¢N€Ç±~Ê¥®y©ÃZçˆ9WVÞaéhË-B«û›¥mª‡z2Eø¨Èœ=.̤|“ŧ­™|RWmÁçÖ&ùÅÿ_0 Ä>»uÚ« ÎÜPüû¸WaI~Ivq; 6j‚¦ÀŽâsñ zû¢ñ¬0¢sPmêè8‘³ÍB®¥ú¶iJd çÓšˆEœKÓ.üv¼‹D¶¾"÷7ùF@iE(xýiå´ ‚Æôf½Þ#¸¥0r÷.üN;ˆ:öJÙ£x]Ÿ¿M9Ö° Uæü›B#ðHþþ8mÑLÑ„qäÊñFÜ€£g†nÒ²;h= ªÛXÞ³C`ʯý +dÑóªù>YAV`°gpÌÑX¯XƒËÓ‰’2H<{¿úèÆÀ̬ÆdS“¶½ìX›ÍäLך;ûÞ?ºo4AŒd÷9îß”D½·~8ñhÓŠƒ!}úŽŒ.\E ÿÉÿŒã¥dc Òá1Rɧ×ßÝšeÚè¯qoe@CQy)që:Õx½A+Žyà´l0rˆžÓ2…K¡`S‘悲"kQZ„˜eÔ;»âÐ+=â ÃÐ*ÉO–vÅ+ŠöÃÊd8N®?éÿ¬&u<û}2ì/2i_`JS¼œY³pkï»1÷{PØ„‡"lL8}cVnljnŒ´zxÉeݘ©Ï|Ñ)yNHäDrOo<“º>üíÖi…!íw£t€Rk¹dåÊІFD‰Î:ªšð;1ž<‚SÝÒ-œ´÷¥|á‡ðÜ(èÐúBOÎ@Æâ 3)¡–”k‡ØS]ÿ²æ §mrÉB €xz‘çšòø‰X³éDFÝG%´ªâ*—gzù‰ÑnyÅë©iØ\™m^Î5CÀd¦×fWKÄì’aoÛ('É?e×8ždom¨fBÿíL¾]¡/¾H¡[s`³=FY@ÓÖV¢¬B Bw‘Bm$cú)è}Õ8¿Ð¶Uf$Çl›1]²¹ý¯‡^ÑÃRIéfõ\¦t”…Yý Sï_}ÃZÀTbÖhƒ?Y-Ez.ªf@‡dÙÙ òÊùôSŒ“mEC†4•…4iÍxm&|è×Ñpø˜A¹#äÊCž¦CZ@Wh+³Q’Õ{ö'üåÍÐ×x$ÊTXDœœÞÓ(¾Ä:rç w¸˜Ç¨pgT ööÛí¨B˜:&BbeìÎËDù¸‚”Á>ÛJ;™À ‰ri½rߟ»ÊŽ„)×LÒ¾y…Ï—h±„´…= gfø ,– .üÒÄ6"ß`P¹îVf†AMéøÎqô5Ò –}ÀÓ‚û‘`u™´ qÞÇ:Ò] WiúYÞOÀ†»!«r­CVæ¬@¨qÆÖZ>á/Ê~5QR®%2™Ö.ò(ßÊ}R¨º’4 O\ód*“;½O®uá|Àd­I>ÕØ2üs «i¾hÚy¦$2`±x*ÏšzxO÷ïÕFtUZÊ=Öž\}6—<5·ã™*e¢ÎQa”lL—ŒS¡I?œj'eJèãËÿ)ùÓâ{èeêµ¶ˆýó`³£ƒvÁöÆZç ì5‰Pä–ÝRd®G¶G>C×jõ+‘‰ŸêhÛ‘ó6bCgïÀ¤¤³QÌʲK—¢‡íN„£~¡ÎñÁÐçùP/ÇËo²ur)G¡ž9”íÄ8(Cy¬æÇ¸‹¶Øxìdæ¬+œzÝmŒL¡_ AjçÇB9ô8©ížî²Ñ}Jçnýw㼃½–U·£ØÚ¦ë¡Úa(sä2´V÷ɾE—÷|®E›Ýxl}÷±Óê¦ä|ZêéP˜í0h¤7"÷ÅTdõÓ©þÈ”Áï0ÛÿDdN¢Ä¢‘t餞Ûd‹=)49͊˲ùi;(ý€{pÂì‡-"øcgsºË'ƒˆÛÐ×!sŸ·ïG¹Ò­9’7)1¶üA«Û'¦Ov4aÚ Ë¿›ÜsItÂéà8X6RÊ÷ü 5ÕösBèÊë: áqf;å¾bH7´ˆƒä¤¡Åv]ÑÆ¢¤ßÁL67{œ|ÛNÑêÖñ[^ MǬe„ idÃl_}ï 2Ñ][ÃË ç¡sǨu‰w-÷Ùyn‘.¢û¹©—ü49ø/,¯öúD¶‚Z&ÿc³lÑ#)Ê‹„¨ÉÜSż¬ƒ«ËÐöéyB -Κ³dœ¾ñª¡ïYVÄôxÉɊϼèxÍD^àìð+6”ê Kj $ü|kªßÀN|(òžÖÿP!ïîôA×_7ë£ çlÊh‰%.µµ^71™8¼tÝäÿýø(“ó Ö:”¡Áɽ¤,ލO±¡‚~ÂÍáWìˆ^ çX¸úNÈËâ®Ú,ãíH½‹–j¸ ¨ú³îy²•G<}ÎD“„ßoAøêå&MÈÒ-™Ï­Ïðò2%ú{gK±÷Nü% b싈ü:°ù—¯4K¨/µ´– <'»€Zá§²rÐ.=Æ€c8ÿ!ÓXn´1»„”ºi¼'öÌûáß8ÛàëRX,±¤,p ‡¿.…R›ª­Rj#ú^×l:R  wÖÉ®ƒŒ`ÉÉç¦êG’úËZ~‹zq“©ûM9<ò©ÿŒjìÍÖ;*5ï©ÿPj{¢ö;BT£¤~ïQ‘¹¬/+rG”‡âÖ³‹V#¹0 Ù‰‘YY,ƒ3Žx¨¼ÐK%[¦ªˆø«çš/IãJg„ôP\[lÓƒm}IXý Ïù_ ÌüÈÖä/‘™b?9Ù=ÖÍ^¿mü™äúº_Jð@¨½Ão÷èuæ2œoüÀÚ”­«CTéH¶+h»5þÿcYºÜÍ>°Læp-Ž/eÿ}N<Ào¯Ej_*žXéÅéC:9üÙ :Ø øÞi/°=ßx¯«ž'BÛ÷% czêeÌQêle‡÷÷š¤1³ÕG¡ï”5îsi¹ð«èd|„ ö$†*}Rûr±ú'@ì—|<-Ùš¬ì£c!²Šâ¿ŽŸ&}ܹÌëï5Õ†GOuɆÕûþî¦+ëy‚¥r¨—ýÁrS;†äÍšßk‹=Nóç|4eùÄ yr⌚'Êu d8¬<ëÝÖ/F6b} ÿ÷W“ Ôh5™~àÌ­¢΋;Óÿ‚‹‚”–[ìÃô‚þŽyBä+q -ø#Æü‘÷BÍA ]² SûQ<“Çë%(Ìf ¨gÉ(hÒ¹™<ªg/À¦ò. ‡oê­{áÚ¯ø •´Ó!!žýD$ r„¡e&@¢ßŸ |¾ {reÞR£ »ïm•/…J;†ÁÃÒœ9œœ±Œ´^¹X7¡w3¯îøhß àð5ÏÊìç…‚mÛLûåùØãÃBKþxi2)¶ê†%~êšöÅ(ÝVÀ¿—óðPø Æòñ+Ø5g33Рk#¨ÃÝï#»E²ïä‚“Rµs!a¥&üõ0ž ›[ªÃ›Y}”‚àã›Æõj:ÞW=¶IgèÕcV{²Ô an ¿‹Þ}ØGýÊjièàC—ÅZ(TÕÊåÛÆ޳ϮÁ|²þ@ÁȘ;,,-²S ¸ôéÅÍ8ïû7Ôã‹Ðlx hÊ¡ôMeswÍìXÿNþb Ë?cõõÙ\,Fº)×¼âï­iõŒÙ ©ë |¹mÔÚ Å>§b¥n6ë92 âkË«tѼdi(ÄòËx “µ›Ô¥™½~Yè¹2П©6ù"qMÄcsBÏ '´Ø!1‹"Z‘cÚÂe_® Ž^Úî äÌW{;¿çjÌñµimgöØá!öQEÅßÄ'X,ÔÅ^Õù{‹Ž˜’KË¢¼þјAϦĒB¡çt´È6«w μö0¤À¥ÖöÉl¢¶ViÅ|ô½[mÌ_~î&bô¸íÊê²°fLÿ¥~Ç–¶›£:s¯’ÓÐ[p¯yµ.±*Z’]c/yyÇÆpÛÎŒSWˆQ Épš=ØÁùX "]¼oŒ©™ãÖv68°Ù‚ô¬nEèÐlÞ‘Üü¦&ÕÚv?X“ÔØ*DZVÈw·/ŒùâV)jÚ¶/\?¸vè>Àõê9÷ü3V.Lw4öùã߈|o'@Î~.5AÑ¥ç—åŽ}œî[x J£C1‹Ç@”“ãùÛ*¨÷ë‘ ¹êføÜáž)Dˆ…›êÁ!¯¬jT™kyÂæy^#üZXǧˆ/m|øÚ&”âÁ”ûŸŒáYžÃNBÌ¥^5bÁ¾‘ÑÊÍc…ûó[dL•À¡SLÆ–6­ôSñÖIW˨ærã‘óeu`Å 4Hûe©ðK–g¾—Pn6´e†dq~û¬Shàm«#þižœ‚·'üUðúŠÂVóK线gé=ìõ‰'Ò‡ ³7/=./p«åJ  0ÝZmã夬P¦Pui -­Üç‘÷=Y¡‡£±)(-ó£û£^ls.%«Ï*£Û†œÛðÎùçòÕŠª“ýÖîPòv ç›û,2§¯ø/ד-fé²l±AX , ¿ã¾çTžÿ$/©v–Tß(W08Ä£8aÄõ ÓîOkHO÷®•vÚLYN«ç×ëã$[»MË`ðróQ‚Ó¹ˆÅóYðöå†fÌŒŸ·~Z.›y6~ó›'Å­¿±Ie3îgÙ&´¡…b‰%ÔÌà–AfRW·”`pk7üpŠt¦[„ä¥pMžJîDO®˜û¢HQnÜ@)YóªëÃm²¢$â{ÝE©]·“O¤9òAë‘ba±FÔ/æ=«rœ€h§Àôûˆn¿¤8VáßBg°=LÐâ1Q©úyÍÁ26ærÒ ¢0“Íéfäåýï âVIIÛ¶©V€‹'ÎØÙÍöÈÿó&¯ ºþslOinô¡J=¾{-ZÀ7aðgL¯O1l4I/·¶oK¿YŸà¼7;”‚ Ú¸Wà+‘t À|)¡˜˜ñ¸«&F±c7h:'áUt}OFQ˜j­cÉIiVqv\G"°þo ÆÛ‘òM/îa|±ýSG•¶{ähˆjOV“¾ÆtáÞ@ßüŒ‹†" ;Qó™k£Zªk,»ÄKYè¯óq•ýXl‘É׃ ¥g6æm3*ç7=®7ÒÚC%íZ"²Ð•÷ªpÐâ!ó íM‘.Êh‹®ÝGq08`ÓsCnvÇl缇Éx«P ˆi~Š-ÚñláäÊtÏùqµƒÄ#@Š=]‘•¢ÈÆ/X";…¶|Y%¼Méd›8ÙL®±;§¡V_‘kZ,ù  ÃÝ=EáGÅuÄ%ŒÝ7½¬Zü^~Êt;2YN0«Ýšø!*8äQQ%Q³|Rƒ!Ø_“¯uwØþÓÑjüÆÕdTá^-ãáÓÏD ‚(éSÚ²ùKÉÀýR9FSÐÏ'‡(±YƒÇ¢çá|«¨†Ñ|¼,=·(?0ÇY÷'+­´ºÇ^à£qc†:{r£"­™¤ù óݹ™9Ë4”OwÊîçƒèvñþEÔD1¨¶]jƒsQ¦×´³O–FHõŠ’ C?p+¬îFP²çNp¦ØàÁ.gÊñó&T.¢ûÓý‚´¦ò4ˆ;1âcï†áfs³N´]ïV±öo÷##Ó©õì"O´ –_öúË{À‹ø¶jöv›\ORkÉêdÚ“û,×ýã0…¾p5%Àë›à @”¬Z+0K]ž@lýjd_ŒÞGwnî ©p/(öVQ Tz~8›^ ÃêHñé°ôbÐHÊ…/*fº¶3{pŠO{d©÷Ñì¶\Áýókúᓨ3Å/Çu|ç¨*7‰!¤(9EßIà±BèT,VÃ2ô´‚»šó±,Ñ`ö'ñNoÛú‚P±Gëq‚=ûäÛÍ)³‰¯çŽ-E€†Ãüsß×å]K– kFw8L1Œ„ØLw¢{œgrÖÀÅ :íéÃ6ˆ˜ûØ%C íÂQÚDÇr’– ö»"µÔÚÚN|«ñtݪÜS Õu¬èÌçÈl„i¹ Ó, ü¹B€ !gMB+8q_DWà×8}¾ô7»èZÀŸ7doNГ߼{Šijdûß²Jusl—ÍèîÀ Nß'TOÎúYàc‡†« £øÿäà›ƒIÊ=’6Ñ®J´pžàVC‘øÂx?R°¯ÑjK!aa"jj}ãÁÓ¸¡6hšj§­±Øy„:¤Ò§ÜÜ5jåCàEL¯Ý‰ºÓP ¦}w@ki1ËœW/ª”T'Ÿz/Ǥuanò1³Nÿ87Ù>YÀ4ÈzåêdbÙÿÝH78´K‘+1sÛšŸZRW"üßÓò£ 9*ÉU¢€A­VÓÉäñÎÄìyÓ'÷úÀÅÕ¹"Ô;­ã±;Åx¹ä$@ƹjR½Ÿ÷ÕØý¾æLGŒ«{…ß4îœÀ.FS ðä7GôÜÀZè³V4!5[´dQJ È9ïâžcàòÚÏä€t2 `Rˆ}:)÷!¿Ï´Ï=§ÒªÕȱB)Õïs@Šà]:Ba0réw ÖðµÖ2$Ö@Ú±ÂQêâË"ÈâÜ º{&:c׬¦ÏÂ"ÐÒØ¦y¢š#á¥Mgvu~Ž|(0tô<˃4ìVîÔ¤§ø þGð®k}ÔEP·+/$Gýi¼È+óè Z/ ÿkßí»B äÇ+fsY)¿„ŠzE’ø?:§‡cËÅŒ¯Ä‘Š;+ûŽC@±õP™JùAø‚¦KϹ´°ï‰¿Èʈ#coû0¹ì¦k4dªè5óÉÏJ[G1´xë¡«b ¾cˆÎ&…ÀHâ/¿©Ê÷ ,îR†XDŠ6î0LŠ•·ä øzsQònslñÿŠJ)ké®íçv„û‘Z}U*Š‰Ò±[ãadcvbê76•vÝcÀpˆò_¨i.1x%“]JYe`ßøÞÄÌôx;]þÝùÝx›±È%†¸q´©Ö䈶”ÿ?½çGߨg‹ïnl°Ý™D–R›ò ;£.ÐGól«a`nt‹YË/›yL@"<Â`€°»£¸ÂCÓ†µ×’YVµXÈHyùÁ‘ˆì¦èF˜®%9S°j²~âo%í¹ã|âV6âî‹Ó,âøh‘â?Ý?ž'‚%÷eíº[å˜[S.Ük§ÜÖЭ Ù&É‘N8f‰}¥lå¶@?Îò<8zó{OÕיЪJA]æ­Òô Š¿]GŒî>5`?þóŒMG¦µZ«³L·„ùY1(Óî<&X7 §Ü v@ßѸ„U~P|0æcq!µçB{âáï8¥{Z'Õ­F¢šKþ€ j5i¬+ÉÛ’ÝÁ7ø4z­Þù±™ÝáÏq>˜´Ø ¼ø s*§oÊÓnl‡®(>o;c·Ùú2K ezCø ¸Àǹ¼v¬ÎU {™™qÁ·6Gk쬤^˜#¥ŠÃWÀ~%Ìân™uü~ÝÄ ‰çô¨ÿJì/(B$b 7Ê.cl±Ãt òêeðÖåCî+¢˜¡ösCTõV ª¸8z‹bf GpöúÀ¡}¨XÄgæ†Ø2ÖÊ=À”ÍýHÀôŒØ((à‚òÃ-'ɹc¬ˆþ­Çfòér×Ò%†€Ó½ÅW|m±ç‰k¯‰ª Ö\³ú‹gñЉ‡³‡)#á·Í~¢T!añ¦9Í9dƒdÿ^bzo–ù} ’Žy­ üßB̼XeøbÄ-Þ$$¯/‰Â9+×Z+s6ÙvƱµ«+a+*}OM©ÎÌ#î'Úµ§Ã£u‚‡çš{–|z>_ðÛµ±T¿¸k[ñbŒu’Œ8§Á²i[ëçæË;–óŽb;„^·HˆÀq6öÕfÎîÏ?†).ûIsW¥Uª\Íçz…DsmÌ r´€AJ¶ü9Œ¢„ ÙëôN<=é‘lñ¯˜Ë…P)[e¦.žVd÷´bp¡£ÖQÇ÷šËr™uˆ‡¤'ñ׬ìè-bϸK XÌ8µð‚ŸPX¿mlvL7eçÑżb Ëgÿ-H}ÈïÕ¯jÿ=Ư1pÆ·G‚lÄÜ{yœ-|ùxsÑ sbî-ÜWßÒkY ç†4å°œçBñ^ä¿U F‰ÇŒí¹lÁ6µÝ9ÔnéæNh«V$èØjФq[ƒÈ…Ûn2¶f'Íá~4‘úSŒø1ÁvŠP¹«4bT¸½½NMÙCÙ3Õ®L²æ3>B='É­‹eqCˆˆdùA%rßÅ™‰|ÌêC•"vvd¦ˆ÷9È1„V¶¬ÛSÉû­Y½$ÈO ÷âØbkr¶‘R+†uÙAæ:òK‡¦.¨|Hº»ìµoˆºd6º_ý>¶«>²O,½8i(IÔûsNY…/“³Ö`¶y õ}îׇ0ªMýpžBïÈĸzKr4 b¾Á>Y—æ‘’DÇQ{¸ö_YÙÃÓ€?Q‡å)~—’®T%=J «¿s/(ç–¤Ë,Õ«¦-» ÓíŽTˆžƒØR'&°G¹Ú#­¹ ƒmFÖçùÌhçÚå°ÈmÀþ7€5&Ç%Ò¤‰"ó"¼§"±4LÊŠ>-Ì/xÈŽsˆ‡)XïñS¯"_`úºïZÉ„è\Ì}µé\ƒU/K¦$t¶}韺G|“mgŽrŽÝórAä°êx”™£(£üÍwõ[–ïJwEJ¤ðq¹kßJ§<šJS½æ}2ï/wEWŒøê”–d)ùç7ùÅËðç>$ý&{àê™Ì A‚L™¾Þ˜h¦9T?i›€ó¢½VãÇÅÃvŸÇ® t$l#/æRç+hß°å,Ð | ÛEOA¸®ÏÅôGvrjͪžN¿aÈ:¡Bɽ´zˆ…ÆyC”ø~áêHçñP•É“\·ïÅ‘Åé¢qo£¯#‰S¦7L‚žƒfú4‘ü0&º')^-¼Zűbè9¼J¥&àˆ¯ÉZ†I‚]³ï= Žb–6áGÙ[t Rò¯¢&U}}ºñúbMàsÝæ.öq‹èØ=wD…Lƒž‚¾e?þ'ø[1Mä\K¢aìÞ»êÌí›p«ð[!þ•p P ½„ÖreãH «ÆrÎ,·*[ôiž^—ÏàÓü)6R¢õÊïtû-ó±4=£a9´ “ñÌszDç?uª(§Qnk_¸ú"} _ê°¼V4ÕN ¨Íòc»UûiôÇûç+PT±S¿P¿êîÀF ´Á8I^i—<™½µˆµÁê¢DG}™˜MÆEcâÉÁ½oÒC˜ñË÷N‚eY08…h«ê;ñäpÒO+°Ój"ñ ¢ùl¬à4úólo£' Ã3ætw¬íÐ. )þöýjï|õN"ï胂v‚h§ž'öÎ&ª8ü’4t‡4MÐþ kÓÊjÞ›K!Ü㈳øW_…ç†óÕ\³ªÎ¶úΓe“È^qvC¨öÍ [啲‹ª/ÔÔ¦ì¬=)4p‘NÀ'ÁÉ`‹“½½Öd•ØÆ»ˆ)Ñ„!¨éSžOG@õ²»Øà:Àßt}.‡F±Ú:¾:Xò'²¥ˆHU&¿ üb â+Ä8ˆ|œ“iéRfžošõ¥AܺtÉbRPNê´µ/§ô½oÝm¶w£ÄL6¯B Ob– _Vo²â fBe¥Eø OÀûiàB^kR|N›>ØJÆÊ1щ×#âÎGw¶pጭ0,ç—¸oü ¥Ûj‚L×GêË0-øñúíSdîQfçÓ0Õ¾b±Še—P¾Eò‘]Â*PS>}#^iwVøÈØjG?ü7Ô=™z¤–m®\&\ÏÊZ8£¬Hu&•­3T´ŒY1Ê .žÃ}®–·ßÝüšç^zËY œè4:•ml+³YöôI%.½áÝPI¤º¢~‘ãñUɳ“º|ŸÊIËð "=ú¡aö¶c™€Ûn´¾#Ø3TYvÚ©úë»~¨%Y~Ê:¥^ØjÊ|˜êäåð¡/ÄEÁþ§‹}½1M–(5âÖZÀ€îNZÛã€Æ5>CñHZ!çÈó<ËQÙËTW|wm¡M2 šiÚ`3žPD|MP’ñø?­6=çŒÍ`wf-†Tx6)…ƒ,£Ê ý´ðïßï@üN€B7)D•GU=@¬Ú܈/yZ G±(µ˜ç¨ Ñ%³¨`!õߌié-UXî°ïû{’-ŒW㮃·ÏnVJð-ºz7BE­MùBÈo·ûHú†ÏN|Ƹn +Gሮ¾Ååw'e µÕ¹Ôº‘ÖtN9pA.SÕ_>³ÙöcžÉD²êîI**žg–[OopYX™ü„‰þ=;böÜT²HV'“»¶k‚LJÜ͹Þô&i±.‹·ÙYû+0˜jšóJ<Ó Ž„¼m‡…WÜ@û„ )û(åö˜zyX Ÿ Ä‹Ï§¾©ÚáyÓù)¬?|6ÂjZø÷ )¦f(· v%/$rÓ„qŸÏû;]ª»âƒ¡³’qô9 B|’QÊ¢£» ”1g_ †ÌvÑ~â-Êá×j®HÈ*ë0„ùò#»×5ÿáÄØEš¾ÔCÉ_¡ÛA¬> ·)k™--2 µþ4¿p\ÕP _Ôw5%©_'>”‘ë?¹–)¾§]áÙq”2*$þ¡Ü˜QØ 1œº¨˜ôÄP i£Ç!{³Î“)‘h01ÍÛ)¶Ëý‰f`\g ­ˆÁ2–…ÞÕõßô³j~ù\4üfï}=êH#z´]=ÄIþËQê-£‡©%FÊ>›¡—…þV(-¥2: tǬœSýw tkî­›K߇9·ý¨æë4!ZÍÍ‘!ÆàjeGáüéÎb¶˜=rDóì6ÔQÀ¦"@±ü§ èq¾dWjÎë˜7䃛¤Ñå\ƒ#;<¤¦‚;¬}…÷:ºEs ^Üø‚äˆÆ‹Ãü¦J«­ï’y9š‡iåãPmþ¦¼.ÈÖ¿3¤dܰñQ Æ–P‘èMs”¼„‰±²ƒÿTö¥Æ~Å‚ëî4ÖQ›—ñ »gÒïê~ª$‘‘U¿Û9”¨RƧ>Ã&"µZS³¾=!²œþT}˜ˆ€ûK¸^Pçi耧¥ËêÉB{ü€Ý ]rž1UÀÇ!^“£ò>ÛÜž$´ù VÇpÒUv>áÃvW‡„7$N–$ýŒém«“zÓHyÏš˜@"Ï å2^÷tº\‘­§#æq¯7}eDå3µü¤(äB^ìŸÕÛ*eâ‘Áí€ÒU CÅd% -™@g…1nuCb«]AIup O>ÏTyD)JLB‰UÀŒ¬®`Ëðv‘t°⩣žv>¯ÿ0Î0,UEµZ? ûËö½®•I®¾Š…³!¹•A°ÓÁ޹¸)rÄ¥a±)%“2Ez)i¯CQa¶mE wºÉÂýò¥w³Á±aÍ$1¿µjZÅZ——©9ûµ¬3<ž…¥HµÔƒ¯[íû~XäG.dž‘À¦ŒÆòÝeåi­.n6H¯\±´öjÍ9”þ?üð¿Àe¬%$‚RÓÕgUñJ§ Lúþ×iÜÔ©ÙjzÓtù$]À¸Ýý…³0ëqïEZ…‹¹‡ÿaÜ ø¸É½ò²T}“JeÇÚ…œR.ÓÒ÷Ö´ ÎFuËBMBq®®‹¸EÚÏlÔ ÂoðämQ¹ø7ݤ}gô§ æÓ †'©œ…ãY¸à¶(¾¯×» O^Ë?#›ÔSÕl‹š#hÛz«Pé<»Uݬ"$4œøºVlÄ&~§=ï)lüìþ¹)eÌzn‘¶QØ s¼ŸÞ-Ö¤ÆE’NrË­oP6çßWpK¤TvC]ïÜ£BrþãúuVæ »ŸKR»ZÊjí³q7›g–H®„/ƒ½ [ˆW €^×p}lÙÝ{r-÷1Í Œ±öÓ(îµ®Žã£HqÙ_ Ôû o{é|¡Ñoé˜e4é œ† à Âåô‘#l0\®ÀÞuÜÿôJI*Ñ×ÔV¹`‚T`žË¶?Álº“ U©Ô•¸ô5Þ×È£Õɤš†Z¦òfU@þ²0È–!l·©@N#È‚}(Ñl¸_ nÛÜd¸Ù¹5l1®N È…üÄ•ùèé(žÛƒ•v†5BA` ï ôÍqɹʡ|Nû’>'²—¹¤]ß´xFÄöÌ-N Ó¸æW-æç—š ¹¼òÙ’[ín’òsûÿÑN†‹èƒyÿÛx5ؘ¦Þ™ïÑÊG^8ƒÖ¤Ô*˜;9p8Ü$YS·,æa©•çt˜3 µÁ™ñÄœMÂA{-p¤¬å®‹í²_©µ'ÙŒmGô3$ÛW×…ca–BÒ)Qfúf6•ûþ[¡eÝ‹ø)ê„…áh¨[táL¹ÞJB¨`ˉ§bðjÙ^˜~z³ËÊZ »\ЍÚKR~â3ë¬9¶S_úH_ǰ<¹ ÿåŽ+i£ñqq`Bs=Ç­"Ì|켋WDy¸ù:ÖO;©Ë4|‘Sª­YÔЄB2Å…€Ýߪ.8²çÓ‰©ôV­RˆùBGhÿ{Q€÷“±Âµl×£øk%¼8Kjia,œª•?ýCˆG-Õ³Ê LïÏ l=×x™ŽeQ:#vÝ"súÿŠëœ#Ã9›´IÁ)†©ÝÔ Yû¤lÏ4‡ðq("Ùý˃õ…ùzNZÇ F•7]æÙ´ .on¤b¹Ûµî€œJ°ÌB×GÊ *u¹²ðœ|—Êï½tÌ¢¹¿±#,Â+Ê ƒ¾´ä”Túžf-OöV‚ „ÉöKžUŒ¢äÊ„—½ôáÑ¥‚ËùYš’IÆQŠºöÛÓTŒ„åís¥Ø‚dšÊ[{^¤'$VÀV÷ÆF#+“<#Eþ©3AÔiªõ¢ti…“¢8S7·CNä«QËߥG¸Ž­$å3gUt è•bï™R#³_¹í‚‚å¥ùâ–tjD?ý²ü<ô€ÏÖµjµg7ŒO "¶œN®Ü/ÐÖêQ¾.åïï¼;(9¡ Ÿ©ìÃO ´b`!}{òªë® ##2_Ä5Æ!-.W‘{ÛHªì3ùP€mM%a%ÂÙõ½Ðô„‘•ëâIXϧƒøÅÓ¡_<Õ×Mœ[‘½’¨ã¸Vۥɸ$Î}‹ ¹Þµïî=<¢n)ujCë1ãÏy:–³\¨_+F⸛RH]vËë-ÇËw‚…^äqò³žuQš(%û»5³ öž ¤IEJà:ß|<@% )b'QŠÖ^¯¾\CÓÚ 4Í®+sSý•Cø×XšçfÛ6,nZE¤d!éüH¢±Ð1}·ÒжWÀ•úÊØ\Ÿ(À&¸9DZ\‹ë 8ËOêà‡#Ê…¦€m2¬F+ϯ°ÙŸKéàY`´LÊÑ£x+iœ½…Þ¬ü ‘‹‘•ÞíÚ²¥L8.°#à7ƒ˜g¼]ÅnµÈ⧪M6!è÷à ‚=|@sWExjQ"ԠѹJêÀ› h:j5‹‚l³€" ?` ϤÚ@éPñJ YëCI˜ˆGÿF_†']lï…b³nìöqŒÞ|R×JÍNªÃì¾e_ÝÄ>PÔ öZ9$" ½§á]ð¨ÊÉ–ƒÔÐåâm+¯ˆÏÏmæÉÏhA¾IÄùËY—¢âœi+Õ‰òÈá™s÷[ ¡p·©¬ÏÜ™w–Ž ¥_w.“&¬›[ ‰•”ŒätªQÏû¥_ps·ÌÊ[OºïNÎß($¹òHä9V‡0ª±÷aù’GÀ,3cZÝŽã¥~x "QÀ…|ŠŒò}¦o¾ß¤²«aÔïÇ̳¡õ–„袶S0ê%þÄwH*ZÙ¦“Ì»€ÝW…GñúŽÄ‰ÁãYÊ̤í‚Úhëf4Âx‡–òPqUˆ ƒÇºÁÈåW(cIŽÂjÿ삹ðO IbÅýQ#7{ùõ‚eù`7¶WbEM­Û¨ba>hiÜÎðD4Ëô'¿Ã¤ªÑPPyºZ¬˜**¤ÞÆYˆ¥bÅë7QÐú„„Ë$²|‡â¯ÌK>ÎŽ›ÛnÁä´×ªrÕ11ÊU«€Û€Ñ¹ÇÉ87a’q†ö>kñMrÀnÐØÁ01úTâa•œb®Ù_™[§°;“nXnáQJ^"k@Á0EULßÒ²N²ƒ6Kž[º™ Ï7_¦¼ÑP§6+}s: >ˆ ³xAöW‡´~Jb»©Š“óAŽý›µÎôn¬‰«ðø%ËCý† Jë¼É–_ˆ½Ai;aÖØ·³;híÅ —Ø2Âléq:e7k÷\Pûs$ _%¥«*YÕ“»×ÞÀVþóÚ•TÏ´ò<ïîÁu¯¦»:–Ü:&C-¡èÇÿ—ì• ;гW¦›ƒ÷‘²!'H¶.bç­¼od¯ƒ66ø³; f ¯û%Ëͼõ$ž$0Íÿòà­^F¶%G5*ffs#¨”Èušû£0VÔÀ]³þж'óvxNÎ|Sî}@ ìù„¬¿üÞP;ÅjZi½Õ ¨âþv¤ˆ Ë"EÀ ßœI[”Ð>ä,çÎómÓûj×ÚÓl¯­Oêþ“67ݲØå°l«Ÿ÷9“ž‘’;™JA"Ë xibšõ¼÷È"äÐnçg½In…¾^» £‘„CxÇ6¹OúšjÁÚmൗջöÌç[!.2Ôw…³‹XD¸ê`zvD‡A‚øw±;_Ç“ý°£-ÆRµERˆ[Ê}cFl¾å3ûÊ)•0*téBW¿[bo¹£UD !,åÖ¿ öÛÿO«…µ†¢€’ÿÖ¾„o¼>AÅ„Šm¦—F/ôVæs#ßAÖŠ©Ô§¦e^‹`ôë÷²øŸ¾¿-m¶é˜”EŒY]¿Kƒ¤x&ôvpÿb»Ms #LOC X^’©Z—r[üÀ·Ò%Yv®D¤WoÒ®•Ù,®Ê“QL®G>[½›’—&êM“ ïY¡Ò]öÌÓÀ}&/qdÆ´.»" ^qØŠ4þïA?óTr«’Lò¦TÔ7”Ë< Óî2Ë]C×è7a©*Æ€î^”Åy `Ç<¸J\X:ÞÂÿ”)­Õ“Áµo|ù³û<6 -«YÐñy¬ÌQ¾Åœ˜ ãØ-AÒ E-§Ú>uCŒH‡^)6T•vTÖ}—i-¡é³||#±ô^šósËóxB€àÏ …¢ÃóDƒÛÍ€t„À`/­çDêj†VÀjϳ¢g=æiò*/³M?'”›nõVÃÑMÏ8á¹aÀqêMì¾?CÓ‘S‰ôL¤ò·D´PÛÐÊÎüÍvÞ8ÜîUͰÌc<×o ´—ÕzTÅ)çï_,¡É*œÁ“Çâm2í{zËAÈ4åꇴAwxvAÝõC+L/Y  ûÐ̺:»sO/&ºÄÙð­îæ2 ¨Y??pqØ ’Ž|4ot3Ø]èvžï‹àÈ 62þþaÊ8°z§áÊ]¥½et÷Úš'¤³7›¾Êᢠ¸Å¹—¡÷ã²:8HüwdÖ^Ï¡mm7ý4Ãܼ×Ó¸Kâ>‘? Ä£ÍÉ¢Ü@Á Á£¸Eb „e)®¨#ÑqFDJ_½Z7ì`#ØBδ­ãßËÐàmi½ùqq(% = ƒÿS6·ipÅômwL9¦¼ûþ½]33ëek¬õ G8$WU϶Ê@ ‰€é¨á £¼ßdÉeuz‡·ï²ŠÅ#ÿꛂ@yö „xûüs©®bw¨Ý°d:²2ÃlÕx‰ ¸w/QÂ…p‘=q£×2ëĘ*‡uÂÁ½ÏWGŠôRkÎÿoìÛg›•5r¼š*!±–°çÚ𲞕ƒ,oüÒj-gÞË™!ý_î‹&Yö"E~¢²ÿˆt¶ùKW‘²n±‹“êéhJ%œFÝn€ËÓÿdóõ­_^ß_õ×8šÂûkùÇiy´Œû«ÐL?¶ÀîH•ü'Ô¨’^(2ŽÆ0À*+V¶†Òø8Éň¦jô›‰hoô9„ÒWJfÜœ#Ô¬S®$„6…GýÓü—,|R8ïdú,šhZLM8¯¿,"Ô Â†*Ÿ’È¢;y½uisÆ&Ч×Í鎣]Úd†U¼±ŽoeÎBP»ÉÍüâ>$cºIö,ÈÈ ²Ë«ÀÌÐrî{´ÁX˜êSª]YiÛŽ’Â8?á×ÏRþ¼¶RU‚üûs 8+ÇDèe}ž4ä%ZÂ}'v빸íÐÝÜ$ïÉ– É,œ‰÷Jµ$Ö—ˆ²p·t vVàƒÞÂ.4ÒOf›È×RùãwÉy˜8êΧb“æŠñ‰XÖA>ò݇Îb.XÓKéÞqÅJ’ÍÉ#þN%x€~lhN‹ÿÀd1IçÐNUíDÝ÷‹í¹!*æ«@¿Vþ`[iv!øö±¾[ŸÐÒwÕB÷\Û¼m…ädª¼ è±dãš# ¨œ­Â’ØYm,79àû² £Õ"ǘÈÖíX&,¥lz8Ï) BLß´ÃÚäµ;„ïôX¶Š'w·8þþÔ^Ú4;-y0OÈšÒúØÅêà¤CUO€4øÆqˆ¯¶:è_G{ëõ/leøG%oŽˆ©IH½æïz¥XS¡¬Ôìöã‚bä’^—õ×({U'·+=‚82ŠC Ó„e65Þ( ŒT×6{×ù„Kf­7iûéò&8ÆÌÕhX¼´’ÕÁÃj~†{ÐåÂgòÉ{F¨_‹YáðãK_652[µŸK%Ä|0¢ÇÏõÓËD^º6îFŠyÊFÜaŒ~ó9ú×¥‡Sÿs®TRndžz·AóÆâ´¶¡¶X b«ÂMV è<¸ê!Õb‰öcª–­íŸ6Ð_ô#ñ'0ßv˜bÿripmV÷«ëÚßÂDÌm´ú7i¨gq/ƦÜ{¨)(ÄTQ=dq˜ü®—jC~2* Ñþ A§bܶ€ÊK–Õ¼×›Œ«c/k]kÙ¯² üüx\/ IGî!=‡Xyäží7ðGôJÒÇ/ÝÇj¥Í…B•L6Y«Âµ0物„­ 7#ºèÇ1=ïq\ ˜õ-<§˜ ˆ_›øIÅÇ^Š™S‚wÞc° ”ø+ŒêÊÑŽ'zÿÝ?˜gâ¼jçè"·}ó/B—Ý|ýP¡™ný—Ñ3X¾Y"nIÀKº¿üϾJ~’웲\Cy²õ²bXx»2z'†V{Ï)rRÅ™ùgSo?06 „ö7ŠR¨žH±ä'£ól¯øÃ²AýuF¶V×”sÆ–&7Õ è¶údê‚®£þÛªÄ2,§ë±ü)­ÅD$©é軩dÁÝÂÖ ¢Æ3ìÞ?a0BIÝó¦$oý’¦}ñ7×ã(—Z¥ù`)xÎ+Kz)Ô‘°èÎ?m/´¨fŽ…¡Ck>6×J$ÕË®Çå¦é¦2Â3V¶{Øñÿ–w‹üy‰¼ßVÿRoñYy"‘!‹­fòA¾ÍQ”Aâös‡àÊ<Ëlù_ðƒ#Æ$c[Y–lˆ‘R†Ã3»Þ¯@=ñÌM§ßñM–½5§àÔ¸™ëÌÆ?Ô¾¡d&çQùï^Æ?¯gjnåÀ¤§Ç$DÀT“ËmÑ̆)5 k)Žßn7¸OdzBzT*;ká6®:×Ýd£æ;žöbŠÔò*Þ¹Éò¹k4‹Ñ;‡§`‹«XïÎÊ¡P8ÓÚ9Ú'“ojÀë´÷ÈÔ@‰r2HÊZCi‰â]HSˆ“yŒL×<ë¢a!²@‹§Ø„ÇšþŠŸáR¦Ø½;®‘t‘ˆq’kû¸]öÏf³ 5©d”o(oz¬Mvå̹Û6¾´Z»Â„öiZ`Aì %º0ÎGzäFCdöPÜìÈJp‡ÛVÑÕ†%Sg×猵4³–‡qÒñŒ ¿RÊëh@` 1-4˜Àœð`‰Í‹FÒ´»NA#ó0è~á#=®¿Ã¦è3±íëý‘ä“E£åØ©–°²Ø2ÌóÄxnÃ‚×øáT¨ÌÇõ$ß³’4ƒ!ƒéd­…é´—É™ÌíïÞËÍY@:q ŸÞ»Ã0ârÀÁ¦QôÇü‹o—ÛDZV‚‘ˆïo6þ‚˜4Í¡’ôX¶çÍõ<¹’Ž‚wü}ÅÚ­Z÷—ÀB²;âLŸfÒNáÜÆ}ˆD£¤Þá"¦õµf^õWøH6F^JX°š²±"­°@¡ÂDÎv¦Å¢¼v¿šU~ìKºÌ$Õeÿ¡o“{ãIñò_ÞÕ YBjHOaQrEwW j[ÒË…_´,ß°D‰; ?,Èæ‹&žÕšo»ÛÓ)x(€Õ HÕ…+þÒZbxç ƒÀŽÅ$ÿ4®Û7¿®Õ ˜·ÈŸh%÷ê3ô‰¸(B‡˜¤—V§ôH!ød/ÅSáÌÉBEã·laz\Þ-‘ frT£PPm®Ê›ôVº´b€pt2â™z å€×Jù»>&ŸÕä—1k¨2A°‘P?â°ò×Âò\{®Ž]ÐõzZz7´~0Ž3g Ð Ò õà‡ŸVÿZ’Á-Þ”opL—=Íz¥×0VK˜ý²b#Èáêîûµ¹x|2ˆÄàQLˆ%ÃZ±Òˆ|½¿ ±€Ù`2ÅNÌïÅ> ÚD½kßI~‰¤®)Š£”y¢ë'ßÇ«¶‹qNa¬%3£]ûÆ·h–DkŒXå”çwÍk“[æ:mã§ýÙ.ü%\RüZ…0 ùÍíqð<Ü]Xº“4ât⌷ôöã± =Ôv±¹m 9¤BˆŽÔeÍ>‘‡ßÊp9ÆzŽAóø&H¦Næsž -¥”ª[Xèê&‰9ûƒue¦e6×? A½ûBCœ¢}'1Ý—~©p˜:öAÞ®Ðݳвôm¹À°‡ûzì‘yçH—SxÇ9‚Wмå-ÞP>·¬¸¶[?lLÏ!}xG-Eج<~DS-?‚nãQ†Bgãü¡‘mw±`u Å‚iý»æ]ZåR*ùaÃ5ÔP/a¬íÀ/†ÛÃÔV;Ülj—£ÜUñ˜œõzЦßKsÒx¸cOÞ°ƒÔî̈¢·ìú-°¼À«{+BIæê¬Cð:1s‰ e¾ —O$÷+Ó±‡ìº‹q‹éþ—e¸_¾ʶ+ÿ‰ß,åê~Ït“î’¿3õBÒͽ£­|F7¤£GÆßìö"S3M€˜þh²íçc#ÿÈÔ8{8àµÔ†³D&‘P4]ýÓ(êB†ðœ] ¢Éò%¦ÈM.Šîôõ;mx»nƒì2Ÿ´ãÞ=¤,ÇX˜°³ÙepÏ-Ý„Z¡z,ÆŒ$cÞd‹æŠ­–™¶ šžÆ‡g W/ê&óDº¦µÊZ˾)tó³&Äù鍊í ý<…ÖnáÝ5!) êÀÎsíàP¢Ï­š¨A?Q"‘õ2]C+áIwˆ%W78¹ ®î³‘Èÿ£ëT»ª½à›hŠöfåHÝyÏÈ|(Q¨‘fó™#øB.%'ë矦Ã. »ÔƤ• ?·W°1ÙJIgš] ©ZIH…º”B%ªþh® 8Dú7èùøÒ÷l&Åãpöl @J–8DÌá!nÑÁ•°’ûPîÄê?‰Ëáfû#o\⼇ºJƒÓsöÞû.ˆœ**ܱlû¡Iž º‡öRÏ1fê‰Û_>úkÃæïðKlˆ>àìÚ²§YP´‚‰’PéÏ¥~Cö“DœìØÆ‘(ÕÄ6/%îhxlÀFGÖä]5ãÇ”8Ï•­k˜þ~nœKR¬C±+ÑïímëF Ý”«è%sYƒ.b¢ýåÊ~EQeQ ÇÏX›-Aè(Ÿætb…–&¡ñ犠§l¼fg²Ôcrø=èWsš^»ƒ2™(a¤âƒæi‚ÅÝ]ñQDr¹ÙÉhÉ’wÇÓaZî¿—ÛPŸlƒ«¾}®ùqpܲÑÚ=øfrŒÚ@'l@êZ÷ X:¸ïvÈ'¬K¨¬ƒváEOgòÍû"9ÊÝÓZŠÔ:ˆ±’JܬHMƒ+ݲþ[Ó¦ïQ®¶fËo±fH˜Ñ6ä¼ÎÑNŽòsPĉÁÕq6qz^× Ëq'.š;NäðØ0Á\·#C¸ = 7n¾´:ß-6Ì‘¼H-ŒäØ–;Rÿn䜯5;yõóüïê7§yàVŒ–(4 *Ç鹈„ôbΚ‘Œ7­ùRšÙuAûËiô§¥À/ï ¼±à®·вÓxû)•Dƒ'ŽSûmWáò øÛó`aç„i{N¥n?©~öŠÊýkïÌЙDœb¬®³.3|UÞIdŒ(›Ô›fùÖätb¼¹ýï©¿.ýN³È1ü–ùdP±Ùþõ4*êñ¢ód 6Ñ(MJ«½ tÒ4"]YM€´n¤õ¸<¢ `SîAŸÙóÀêŽPÛ¢ÜCºÈÔãVATÜauS9„¬+q9è6/¥XìÇ%³ˆ šä¥ÝZŽ'<³›‚B4àÒf*‡hŸè"¬ªÉ›ÉRddðrŠ„t/¹®ÿÒ 9ªX)­^ga:Aœób®¬‹PÍdPî7 :š©ç7âñ±÷l´«b1Òå\‚¿°¸%¦c™¬„Œº‡Pú{’cÆ;&V›xÛ=®·›€åSS(ÁŽ,BùE»Þ¶-&Êô‚ÅÅ1àxKeÉåx`#I}Ã΋7]0 GZ©õ÷º-cA{U±ü‹¥Œ_*_2>C‘0“^ËüÎ9íƒA1Ùš4T!Ù&”¹üýøS«¸œ©Gu¸Æ›²5'£}9yÚmÒbXŽWzš§¿óLÄAÿÝo"Ц‘vÒõá8ñ- J`Û“²™Ó¾'7–/vzØ5¥ÖR½ó¬*œµ¸óT©K¯µìd ðö7BtÝè9Ö4û¸Œ-a‰M=±’?k‰Ú‘$#ž5;½ø^c)æ1;a›„ÝØyHÈJN¯.a˜å}—›ð]N>ö/ÙÇñôöd»Ü¬8tjñîNò…†Ûƒa™ñÇÏ1®®$FAäx¦F& Lgno™Í-H$ï}BM™«©ôû•‡âß@ H• "w'BI¸YsBï¤òr{£0VYÔÖB¯‹¢4=ÀVjoà*þ¨4ElŠËW—ýs‘Ž >§ÊÊ ·µ'½¯A`–%Mœ ÖèëDiØÅt¥™Ó" &ÀfR¼5[*ù_%–3$Ã- |·PEUW3kx…ËÑ`P¦ ’ù´¡Í®Xæf¹¬s`¶õµÆ&¨«Uü˜SÚîÛ†jñ¢ï—[ ÷}:"SHd$ÙÂqóP}òÖ;]Ž Ú´ó4Bæ:ï&áüÆyÎÔÄ‚µlÚGXÛÛÁ[ M¤âëÚ4ÍôÞ–pÔ_ÍXu²+ûð\韙ðëÑPbýFà#ã+Õ§YS†Ž0<ºšÐÌ“ƒÚz†¿ÿ¨~?à¯á"¿í_â\‘W:NÀ¯ÎFÁJüºë}jÙö_)`«`áôYl°H½´¾;LÈ÷7¾_üg$=a†,¡ÓàÒ4ÉN‡Ú”ÖÇ\åÚ÷¤ ãÉüÇQƒ¦³8Ý8«ñA1¼ŠöO¶t¢Oà.õÅ ÒY¦zfå•ó{Õ9¡PìÜÂÝeyæñ'»Û:›]áÙ V¿ˆÆ3¨fÿv«ÈìªÈd 5èÇ_7ãåp°Œ–•ˆº¸ƒ[ÊÜ×jÌ ½Ð?ꔬް0£²@B-–‘w%ÃsÇ]¹ØzŒIå–¯w¾Zyµüòr ƒÖëH©×IvO"ñº’ŒwF=p,=GbJq wéW Óó•´(‚¨Óýó´&P¼>Ç8X>:•"ÿ–"_È÷åÐPè♇›ˆCúRÌæ¡ÝÞpÈÚ¢:͸oe]!e^­Ø+tvò ÞjåŠkkðm{ú¤ëèØÌºm{5Rg—¨}kz D¦ÒÖ"ñm=€ëWïc¸8]<=r7Œhmÿ¤”·ãÏ!ѶN!•Žç_H7PåË–«{kÏ_­jÆŸ¤Bð©ÂŒùŽá†¤†€,Þsî  n Îù«ƒ½  êškIÞh9wÒ¨’Ó³E”%NáY™w§q8„Kûf཭ Y éÙ9$ô– íÐ@ç©(«ºƒX†üì?’íYÓiâTôÁ3jSô<ÕqŸкe— ÌÈyf´WèÕW¹ØìÎ`! ‡«óŸÉ—­Zè·ÉˆÒü%( ­@Ò«‰N}̇ ôŠI)‘× ¾A  ì’¥Cë+¡-dQY˜È=ˆ “¼ŽDƪ½âé(­¯vn;a=ÍÍ—ƒ×¾v¿‹ ÓÞ¤˜Î}ËrZ­"¸‡Ø­]ש8®VµJoú溕uÔ·œ³kÏIøDá®×· ,0v™C¢&Æ­:.?‘5ºInŒåÈ S7ü{ŽQ¤ûY÷=üs:òuDèÈeZóEŽàw0Ȩá.¨;…¨`ËLȃx½,865v ÊÙ¡mÁµrtæ½s³ˆÅ ›³ôƒÚ4h\ᾩfâ %¡âÊP¼šÀAñÓ"Cœ:òZk¯¢®áG4^Sxꔦ¡ÞhJsÖ`,€ž‚îâ´¾òÏ#¼fsÒ9æŠ4°LKI¡±ŽÄb÷Ò|ySâ?b¸œBùK©ŸÞ6Ý[é0¬V+e*û…"tä~œö»rÿ£²C6ó¶æÞMUÔ.7Àæ¦÷|2 ¬usmüÎ ]`  nd—µ–{ß,N§qè`¤ü¡£Í«u4V"íD«dz¡°zp¢ +§ÛÝZ_ƒËÛÈEϯeì6aïøÜ . ÖàÓ|‡•^C¦µø|cGt¦G…Yrȶ”Ä OõΊ<Á¡rÊj)&”û»BÆ?»8oRd{vÓ•ÇÏNƒðûÆÄ½ƒá “reƒ¡éºðNPRv$±(á÷®fUdqß~ÝJ6ûúpo¨h<÷VYOÝ48"¶±zI…6±k¨‹Å£ŸÝ\â 5³ ?½»Îº&î|VfŰô¥‡Uô°žÞ¨Äk6͵w¶eŠUØœ?MøPNØÎ·Ó k oØØE“¯ÏÈöö²x›\ض¶~ÛFèGZm žEAXç׸ *¬<Š:Ñé™ œ|ÿ¯f¬ÂQ‹Ð¡2”É<ó%ˆä¥Ï_#Ÿ±‰aƶ !Nxe„‰#æ|gú¨LMûRGĶÖ0à "ø1¡z¨–DS%Í*°+‰m(ñ|²=IÙö³è·3Óa9Žþýi-‘~o _d¿MB)w4$3{³i©ÚŽÙñ%«ê ÈdßS)빉è* Œx8ÔX3@oû±ÎöGÀä2×}ÇéûÜ õ©úºr§| Ð+‡Bg²«ãÜÇ\/ñ¬K³3µþ|FöÕ‘Ü%4”}JÏ"ìWkkt(C?ÿ’0ôsk¸!"¥áoÏ&BÄÛzMm·VÙ˜æ¶=¥ò›Ÿlµko¼" X5( Â?æ äs‰6`_´dÔ3·wÒõå çjt2— oA¨ˆ` jÙØp·õÚª¦_‚3S鬹ç b蓼axŠÄuŒŠ¸d\€P<5~ãÐ6ðs¥”ÑÎß¿”fÕ¡{àÓî8ïº9×C­6º=¼j¹†«õÿ€6$Ã<.ác660|9 ±þcˆ¾r€"AQ)R.åmhƒù̇(¨åw…À! ³@èìIöÇe—K äWæfݺƊǣÖ1Ú~—ŽD¦/ó?ö´ÿíHªráCÎa , ¤A‘×îÿaa›–ZÄ«(õö„êŸT¸©J<ºð£¿¹„#}qìÐ8:ˆ¤yY¡„ÛñÂdçÈ"gÏÈ!¶ ¯ÈGo–Ùs¢Y#UÙUÏ”!ZŸ°¿º*u<ÚðÁ+¥6ûN —r)gx/ÝZÅ5Ó½rØEgÄE´q[šè.Ƽ­x&È^ ýL¸ÆéJ‹Ž•ONXë•y¢Êq Ì›€NNÍSoJ=7A6ÍøÅù«d¦„°º²eÇœ m|˜O® oÇoÞw Õ ÇŠè p#bE°Y>´ÍåúÌÇá„<“,¬GfÐ í³±æ„ázP$ßÙq¼$>Ÿ´åMhaó·H›lÙØÏVÿ°O ~J£eÀ‡K vdÙõøîÅÊ7§Š‰z Å›ïÆŠáÅ_'Qwf x¶ ¹Ãï•æfæ(÷ð‹îSFÅ&P×Ý‘„WcR Ë_b×úOü{KÖջɗ`ÿ][ÙŠÙH`†¼¢žèȬŸÎiÉA;ï‡l¯I!J6 H9¨àjFìÕ ÿ¼àåËtÌ¡dñÝÒÜÏà•R)ÒÔÖQÖKååõn(µ¾fWµÂãiE{V›á H‚¤¥|•KQµŽ;ˆ­*;€ÞµËþ¢ãúZä¿Tà“1câz$‚6Zæ;lÀ5TœOBÞb×奨G:ÅÅÚpLæúŽ" Òm›ÚÁ}Ì!B&˜Ÿiàmïö¨´’ÎCY#iØML7fÞ‹ueU¨‡óbÉI»h¬ ï&m±ëá¼Ù*¿_5”-çƒ üÆ7а§-_c˜(x‚m1·™\4Ž DÝU;Ã]mù Ÿ³§‡*<ߢw<‰ ºmÕ©ï@u±ÌGV™ºþqðhÚòÓle\ÞÝ ¾Žéu Š˜„ ¢B)@X‹ãek8Ô ê´q»ˆš© °Ê§€”ÅX±¶7bÕ3ÞŠn+ Íè[ƒeY5qWÂ/gÙÞÖÍ '//GB·H¨:èºXØ;ž®½rª'Ým#×Ë´FÎ={Ȫ³õ’éÄí°ã¤óÐ9Êåø9˧6‚ž|ûÙ+¨Ÿµ\0âÊj›ž)J²áu4[LZá6LNöú¹Å2q^uÐ*5éA5QÀ¿úüæ°¢øâ–áo›³å{>~ *j¸U‚3¼OÙ©íŒ<¹ £ÃS©`ˆäHÑéý}+*ú´Aó½¬D£ ðlÖ*-î±óxV‹RÙd4P·àíEƒ©¬5ç‹‘‰ŒXBW‹CÐúT{B±c«{§JssËÕÑIÉî5e>l² a‘hi|3NÛfq¶_ü‚C‘:Ô¾ö‹ ý´ãýžê ÊÈŽâΙÆ„0Ñ’Q&4ànäw¹©mW;WÇÛö9¦‰ìÈ}Cê<ˈ;‘;éŠýõ¬t¯žvݳ4‚5½0! m¥sýµäéû=¢Ô"Á\9ÕÞ¯Ò7´¨}¶ØV‘á+n±; cÂÖè_‡Ê§0é{®˜A€¤7ÔiQtl@´f*¦u8µ&”H¼‚»®“ùáž#^Nž*fçòšÍ1×xÜÐå†WE Zh£…”žßR-1e€žeÒ©MžEeƒ”Wš…ðÛÆÚÊq¤ßƒ‹.û†§ë="ü'‰¿Y„ï»ó|ñ@‚ÍŽ¼Ï†°Š7®§Á­ø’¨àtËû‹)ŽÄsMý¸Éw¾I¬´È¤C^G"…T%„´\>W¿vâOÄR°60Hî<Ä®ü/!Ê5@éà®8_ÙîÒdἫxj¥@Vš5®+èw6&~9.g!Éz(“ÔÀ+óKwO•9iû"ŠbåN³ïWÇJ,4ÉÐZ4‚dîYeæôYôÕÀMÆq¾æ1ñ×P¢y+[ΦÌ-O5â#Žë„,£Ou­&üS1­~…e;ÕþÎeÈ3,bΣ#Š7È­Râ\ØøÞíÁìÉ•3_ãI8±b9“€ºEþDˆÛIWÝ(mŸ*È'ýpÅ¡'ûøAV¨fÐûlð ccVDÁ^1fî“3ÚðK¥¼µ±cŒà¸yA·ü5(œžl·¾ÙÍúòr´Eå,×OS}:²9B‚ýèX‹‰§U„‹¡Ïmøpz7U]_*|DOdô;ç=R„|]}J4ê`ž’ ÿ.:{môÙþtû‡6©¥SóÄs3ªãÆå,q]ÄžlÌHGÏ ±É~ñgE)€O[Ú<ý2¥¾±,£ùTôwp_P\Ø…Ú B>KЭ½µÞëNžÍ BT£y±3 ®¦`›”4v¯`¶G €&¥æ:C•:øÌ€`Q‹Ò).ñA–¶Z¦À„oFÓ‰óÐAVë¶Z’ÍkN{hÃk"OCªÐgM«ÿõÃ8é/áÓ–zío!YdD†›ùOäÒOIçÒZïßLfÆœ-~8•4ü¥àÉ<ÌgÒE@-‚S®7» ¶lÑ>G K‡ËÉ.Dã\·ý‘“þ8¨f¬¹*—)£SÁ¤LZ'ζۑ bí$âj(«¡t $Ìòd¢0 öú;¥:$×R× ë‡tŠù>m«"™ãAïÍšnǺ¬Kã{I¦HìR+jébèdPynVpXÎR/ˆZ17' ÐX—[Žvm9ƒ¤}c/ÊŒÜm *ômiMˆÈÙI$º2>ŒtJlVŠŒ÷äHjÓÉ7À»âM¤>6h~„*¬Oéþõ¦ù­´“‹×W(ÛmsÓf?Gô²ô¸§q$zµt}V$îE@±°l?"DH+9¯v¹´¯ÕÐJå´43 _c&?Å’Í0MÀ¦Ø‹{nRÑM¢xì+·Òœ.[ƒÏV˜œ8sҙ暭ü¤”¿ùIY±¸Nl„è¿ÍèÕ¬w~&öJ“ž{¬S-¿~šg¨ã_SŽÛõ®"3âÝ4ZtÍ¡ô•ŽóñzÖ™^§nOÌL-Õv97Ý‘‰ u¡Éè±çŽÉŸW­ZCÄP’bÊ%½ýäïaýÝצ}kPöÁ"N-ÜSNK•òµvéŠZ½NM9vræDmàÊÀwµØŽÀ•C©õ?^sïÅ &Ê-ký†H°¯pChÓgr5‚Bß•læ»:KÈ\²óO,3]+l:øcg?àêzu«¸–]íx–*Њõÿ£Ç«ƒîQþŒ1 S+ÞE‚‚‘ÓèBp¬qá£gЂ)dÛG›½¡ÆL.eO©>€¶Ð÷K¶°2µC´>n°Æ¦x°¬úXdí9›ãRVyŽÛMÖº³B›Zòi‹’ÊŸ{J¨]U’‡Ñû«Ï2i…¹ÞšGF¦xP˜ÖÈCdKç h3᜔Ê>î‰C ñOy¬Éb&w[{vm— ­E3-Häa-®Á‹Ñ¶R›8Çc62I;“gºâzR/•Ãß¿«ã‘/õÚÕÇb¤Qª½gDV.þæ;DNkÃË›¾Ar$‹žï Y·s€ºùœ3¨y"Ʊ•™Dñî•&wÙ´ œ`á2Ô‹h4Öþœ¬…¡U£CÕÇ¡;–ÑHrôãGZåÚQôŒ¿HþáÑoU͸­¹ y‰\J¡T-{#ÓlÝÝ}5*­ýÂÆã„ù‡æ9m/7¦:>Æ=‚°ÖÔpí*vQ°vTRB_Þn0ðÌD>" `’ÍWÆøÌmÐ íÖx=Ÿ…ìóÄÐú8yUéÀͳÌÏnðW§»uKj8†dýð¶ÔüV+ô*Ôÿ &$‰‹¹—/¢W4OÃ…Âý9¤»š@bš·b ë¦Ô‡¢³öìãVÈQK7ºã€‰$P1nÃy § ÙD¶ N ÇÂÄZX ¿ÂîÜÖ ŒÃÍ–Þ;5úÌ'–A«óA;6ø9²¹m-1çóbÐû™X”'ü|ëø­ÁˆåŽÜ ۆѕŒ‘tUphÙf˜k\UkO¡±³`’u®Áoj÷¼LY$—H”Ÿ†oµB‡\ùûÛvü²a ·ùY3›i¤qÎkuÊ æxÚÅ0Aüqq¸øˆC^Õ¯7EžçŠá8êÊ™gQ 2d¼Pv‘ü419Ó·°6d -ÆÇVµ:_9¡ÀŽÝ‹H†ŒW/¹WùšZàœXk˜ •.],ÇÚΡz ô”ö'Aîón‡6ÔÉiZš‚‚£$ëÕng …߀%?íðTûZ’Ì®ÐfÄv2š_;®LYq9z“:qs0td9Ç¢ü–ÔÒ´Š`ÎH ‹Êikž´îY®ˆÅ¦ —âüS A“"ƒC'£ÿÎ"ѼqÇj/‘k‡vú UÞ@òÞ»¾×Ÿiͱãõ’ʰÆâð/ŠT¬Û-àtV­¹ŒUbÜ…@£A` A24£ÆÙ«`3ÿõš´qÏ*}:%ÛúQ-LGè~õ¼,I>½s˯'•ýW³):Lш#/ž£2òSrÉ,‚83øÔE¼ü«µí͆H€³2Â+9ãG¡H¾~¾ý†×~,±G:uj¼J¿îrcçŠÛ &×M½§ ÀV»—XN^+'&B²—©#ãIq„¬Ä®~ç'\by™y…yÐ⟂ýnw NhÝ΄ÆîÀËyZTò0DÚ[¾i_ä`æöùÙ!#ìïl7.&¤ÕSnç¼Èš}ILÆ´1ºð€ùb´9•wú¿»xC2áŸQнDVÕ}X¶ô_o- /€Õaí]ÆñN¶ó¿ÝP!´‰Ó߸ôäMpù0Dã€>4vkgÚo?^F¶Ãö<V/¼ ˆÍ&´8©¼õ 0¹È2hì©x¸þ çHË"´[Ö f–3½QÔv¬Æ Ìù§5Ðk%A“×%4Óíž^Æä)òj6^ΠÞo&¤lºÖVw‚+¼²¦1´n§9ŸU‚uü†Q'ÿy:Aû`:\Åiø4h£à¤¢ö´z.Sx—¯®mØþƒ·IffYXøËé~¤'Ф1Ý&Ô-=ðÐüc•r§=ßt°0ÃWÀCÌ™| Zôó)³¿ "·a-y¼?à%¹I8U&¡o/¡¬X¸þä“^rB°·<«`e‡ð Š6>Ì¢ÓŒûFðÄøËvhVÖ ŽÚ.ÉÊR¨(4ÄBÙ‹*q$,£õ©Å×ȾuT‡Yåþiû'žºsUpqUÁ«@Ž=æõLZi|êHbغTÿúÜ *u‰ÄZ£^JÙwUúFEÂJj­B;ŽrA^œý,ÝíküÎûÅ2Ü'çücQŸaðþ<ºœ€s²qÿ<½ªq[j!ˆtŠahO6X;=»t¾w,H–Ä“òèxîír¾£"Û„Ì[Rw¡Íý=Ø ï-*ʃw¡Q8IšÆ—ÃtÛ<éCÔß,Í\ ßmcÔsŽŠ"ù¢¬HKÓ'NëYWvþRz5½C5ÅRù ”$÷°],'p+ø3 è¤q…8ð~D T§±A/ÕÝá¶C¼œv¶4bMN»6"XÖ'®}Ϊ: 5¨y.+cÄÇh/ÑÝH.swܵ#‡°NrQ•wäóüE–3p^tÒ§Z [òÞãù½³’Š´ß8‘œÏ´È§ŽBò Í‘ÅE[lŽ`ÀÏ.ó;ªü1| ¶¹ûá„e[TÔ'çÕ(4gög¯iãX.Кª¼íY¹î¨'žÀ؉íîàêºÅHÒóaV„*Èã¢ÈãXÚÛЈÛö ç€4àÖ@M[nr±¿ípõI™…»-Nð1<)?Ãk§ ¤¹è y„å;_= §ô®ñ‹ÓkšeGÚYIOàtæ{=kB8u ¸œqéD¾ÁKS˜äÁ÷`*îÊg Ü$ž§´Q…z’+ÌžìÆPEÊ Np·è×ßæU—÷ýà¹h|ÏÁ‰ô+3\·-»»˜\å$A¢ïq])8݈\îöŒCø5¨eiZ[çØÜW÷=Ýþ;ïë•`ÅÇC]æP‘{ަÓWκÏ祅æÞYWPTéÅ&°öZS(™¦Ã|-4·„âô3÷Î -J¡ÚÐ˲7ÇMÛ^'¸kZ¯Ä…1Ô¼G K;¡« 1cªJ +.cUj–¬…¯‚>í'_áàîÏMiÜÃððqTòÔFçá™ß;t®MþŽ4ü¸QqL¬(–#x14—…Ë)Z½4Ùøœé»«-RG[m¥ó9i{–{çŸC´A¤'𤑩ÃZkˆŽP49÷}/…‰L©û’ÞVzcé)OÕ¡ÐLÞ|Éäd½,Áºn3ÁÀqÈ)Mi5u›å ’Ú\ÄÁÅ %'ðWp0”£ú< |jX`¿ÔÞ†×Túî¿yƒ7£uMÖølø5!Û›t˜\8çüŠUÔ¡«]’ÊÂÏÚ´î`q­©jÂ( gè¡y7r<"à‘‡ñ ¸$E¢M"âVÅYWq­*êÄǰ²["qoà¨ÓLzŽ0å‘ýËåípÓeå63öÀÇ yi c.1ìªiÏko;°ÔÌ.¢&²¸kÜ^é3’¿M{m?+N]ØG©ªê’_DJº!Õ» â.¾à9²ý‡£ô‡…L¹`¼¢»wË $φÈÙ•£5ÁV Ïçôc°ÁÚÚzá{ ‚ÈL Æ"!2M.¹À[øy`Ç( w ‚upª®s÷Õ>‰Ñâ †²"êƒ>Ð4í¨Ù×Çí·ÔÇŒF_Žÿ‚o¦J®N_ôRôˆ‘|.z´’ý¶™Ab³Æ2;aþ ùI¬?=΄H?s¥¼º%$B¼¸R~µî|2â¢2cݹ”†w¯ ¿×›è!ÌSx~?`U> 3Š~¬×hS‡ Ìò\„ÓÔ|`•µLò0ȈÉ[Å[Q·¼ÝjPÍÞV¯Õ½¾•‰E:â‘Ò`%àÉŸ9‰×kñ×¼žö!è™J®L„ÔxEÂŽ.Ä‚ w“¯sƒcÀaáLAúÁ/‡ŸŠ¸ªe=yªø¯ÅöÍI0K/žÄ)“À)<Ë¥âí‡x7zùøïñGX—_&qP§aùX‹G ˜Ê8¸:“K}j˜}qÜ ^Z%KC¾—‚×~\п6ë‚@£<’ÍyZê]Î>ÛÍZ(MX"ºº‰iÒZ[Y`ø$½ Cñ‡+eò4 Ý×»ƒ¼&Áyi§ÇÈe¼M' Y£J,‚œò›W2bêçî ¨'ôì5¾Íê蕳$¬eŸ9Þ»KÚ`+sˆ\mÛ¤€¸ aˆ-$ö¦ wwç\µRwº8ØóKíøg‰ÏçmÑIÌ»}—›ü/R'8‚q‰†õfxd.€e?IÚr^ü\»m8Ë>g?YØ-RÊöpf«Ä«ÂŽëtF2XÌ a=¼~íá<<8a™’»[w‚ÈâI9í4S8~CfN(/²C¼.†+8C2r)¤‡Mݶ†yO°"B„©ykˆ›€6mmÐ{1Å ä;¿9ŒžŽÓÓ PÞ¼MÄG{«'@(Æ„¥Ÿ!¿c‹ÜÒxàéd,õ±ýêXXŠЮ|£Á:ž\‹ºqE!E¦¸p}¡p{{zo’9.LÙ*/Äó’õ'›KmD«®Ñ¹©ÒßïˆaÑ$ªžGî̬Àò–Üh÷þ·NøO޵¡ÞÜ^9]?;ˆ«ÞŸÚŽdà¿a[IÍÖjŒ[Jm®ŠBnºÛ¸!Æ­¹X¡462iÈ#í"CM—À-‹ÓF‹ÝGʰØ0³fMGœXFìx?Šì[ÐF8t<òKˆá¾jSkÄ•…±œaº,ªhùÝ!Ôö'Ð)q«5ilò´ËÏ 0¯ÜÊëò!Û›dÐ’3";ä41JÙ'g,¡yãëÄz¥qŒ«‹Èy’{›_¬—ú¸½ÀÐ+@”GB½²t+–úÀsÎE_»q…ÿ5þ¶!ÎÆ¨>7œb‚7æ.$ßL7êÓ×kÿÌ!öKÎ5nnaÇ?—c‹+ Ÿ9 ÔÚzꯪ"áFhV9ôk<Ì<ô¿.š&ŸŽÅ_ZjA_a:=à2b¬ï묌JžžVx‚"X‚ýæÃìÖˆ³ȳ³3§#…æÃ¥7) ”Î6ù  ;QPÉO…‚*™¯mPªTÆû-žÂ¦}UÆ?’K«G…¯UóNÓúŒõË0¹x·±Ž†xcX#Q–Ç/gÝà‚±åÇáãçÐUšÿ=C0”yo-¾¼#'P1W雪jªIX¼Kï7bÊš?`KÃAàOç½s&<ÔYßR8ÂPP±°©Iå³É§1‹ù·×À÷Ü¡h ¾¯®D“"㜀n®ÓÍ ÁÏq#þ‹çŒtDógÁ,Ë\ŒÉû{ɾhÃÚ圖”(óäMƒaDß@Í•Gp.ÀK_ ÛB1v´ûØ"™)2H)Rxu ä>î—æ´‚´øãâæŒË´~žI—z£TôPD"ÕOCëä–Ð3ÎL;ïØtÉd˜û.^¢jdYXí  ±HËn_Ì5Áy¬yxK>åÍ=ô™dêã'™ÖrØ7Œ¡~ŸûX!N"þEzájm©¸y½fè¯XY½°â…´Ñ+eÉ¿ªu©ô­£äüÕtàÍèÃuƒ¯Ÿb¸¿«üW¢°öPŒ²ŽŠXgàUys9§o%•L M¦öÐÛYoBdÚp° ¹à °%xLPñ; ¦U<7°.·áÜ(%œ•8†º ÎM& x¦ù_@Ÿ6ÄÖ`~Ã_å;Äÿßóê†Å¼3lÎÛ±¬)®¿sŒQ7ÄØ8aŽß—Z,¨¶´X¶ÎÊ"²|E0‚$›rìôúû £ ˆ ó:šó'†ÅQ:{; "]øÙ \rA¢dË[hÆÒö$õý¢¾ŸkðÐZ,¹‚âóD(rª«Š#Tô oÏc$]'«n5‚¢²’ǜ׺8Y`K¥î)9|¹n€Ž?ˆãâžÈšaiÀ_®ƒÃã#Oª>Ç$íSÑ'”ãlj¤¶à¦ßþØ×ÇÈ¥?d›nïì`Sh’"uO¥{&‹A$Ò'Ós§/Äá9*ÉßàNFÍ-XÉ^À¥¹´Å—´Ë&Ê›AÈìˆè!ï&PáŠ/dg<)¢²ÿà'c¶‡°f™¬¢¾y&éík½T=†$¦àdÕui¤ú©(×[¼¢7S9’æ-3çPœÏø–MZaXèÈ|kìIÔ³ðÄf¾;Úàðê?{þ3ŽtÁ JK,ñ#þxÛsÖEöR™ßa+ Dj|Ž#ægIÑŸîSË0qâž14ä“ãjà‚Æ&æFãø"à-o)¾½Æ¼»a¨…œ±ÂmÞ¹DssÛP­4ÖM“†#Œ<ªd©ßKõËÆŠóš­cÁB3Xí¦^÷ãXg.Žl“~¶LÀ‘ØŠeOFxm¶ºv“A¡ç¼;sM+5H,}Ó gŠ2+‡;4•‚öS P•þ~鹿’p#ûÐgi±SLÞ<•˜;5nUÙ¿æ5Óq4·ô áisÚ{ËÛ 6u]θñã¤nLÙG¬-éìô^)ÿLóò(žÞ¡ûÄøâ­‚is„”ç<Þa–n3I±Ž/GrŽøÊo"3rIVv˜Yõq¦ÈÓBkÏ= YtrÓpóàðGZÎìƒa„?ü¾TλzŠ6¡û`.X˜,Y}>P øK©”ÉÜû1r¾Jß°í«†a=y¬š¥Ø@ûÕ$qCEè¸ívxÜëÔ:0„…20½SÏçÿü)éÓpdÌÝýÄ;gþÓûQŒˆ®jÅm蜚²ÑªR<}5í£¼íþn¡Ýîãsš¾©us‘.ÛCóû':ÌEJÇúH9íoÛu•ò¯êì»™•ÚMɤ•"ùê¬K‡ ¹á9ãZ²èäÿóæÑ#@û×¢•ÁGÀ6í‰KóI»*¯Œ„ˆ“kWéÚ§•E10±XÏË|þ¡aʾ`Ô6©ªöÔ`÷Ñ-m‹’ŽöÔÌßn*n•ÖU ¦”SMY_|ºÍ8ºL.A‰ ݉áè¹bªoÊׯ´2؆¡.ö«ê}-0è”—);i0<¸Èñ[ˆÊ{Ý›ñ‹|FHÿB‡œàÐHg$ÍHt&@ýLæÁœn»@íãÿ1*=Â(øxájèÙ7F¸]ŸDáGÀ¼¡#©VdfåÙ˜¨º/\Q ]²²&®ö%s¤rvÚa#‰óž«¢«ÊÄ–äuÇ;ñÂl+ŒlÉXÖ?ÍOîÓn´âá;Ö6¨=c±VmÿP2Þ}ÓßJf“‚Ãæ“]á_€íÝ0ÏL rÃYìž­±¶Á:2$Źñå}ªðîýˆC8ºè¤s2 ™ðó8æ­4a»ˆàtÓ‹¾5†M%f©BÏ2€b÷Df`³Zcù¦¸‡Ñ’ð!`D‘ËÚR¯O¼wgIêrª4¤kªRŸ'•ýN™ø~ÜÖè×NñT¢39 Ï.f—_ ëœðÉ}ÊÅe¡5))ù€ZÔI€W-x_«§Æv6nüK̘l0OµIHý‡ùé“s(× ôé—pÞr^Ãi<2õ½(ß<r¤`"®Bcb¯ùœUŸù,yÒ_ÇW± n³œ±¼ ÅvË6˜_ý¸ÂÃljÝë\+º¡Fñcq.Êã’×`C¹/!Ýiª³Qp7hTªïyÌ=’ñµÉƒ»QàEº8¯Wàm×Oµ©èµ5Û‰ßF°ôëS$ÂáD3Âhq m¹kzŽ[¤ÏìÈ_ùOR] wŽÔÞ&åo[5Pìé„Mæ¿i§’"¯F&W%‚ŸqËS¹hIýñ׿¿·e(øJëÐðÈ Á%ïƒdyDæo© …éÜøwäEúSk– 'rc€ûÓ):…B@;Ã’ÍÝNâ5¹,5j¶Zm?—Û¼¶Á¨ ‡Ç‡®Æh¬~D+£ø¡Œ&S 'Áò˺kvÓI˜Ý”w?wÿHä!%œ.=V©†õ­ÌSkFijØÓh¬x-sã˧rÕa-AD»m9¼Mijczú<¼½Θ×s‘¡¸X“MäÅ2 Ó¼ÐE‡†pº#NÑòÔ鲯ÂÇ:œ+­Kmrù¨6 ºücrs1§ì9Æ &Äç}<•}8ò¹×,_pRdÇQiÊ©¶£óöJ…†Pt@¤p,¿È`‘­²OJÒ~ ˜:ŸY½Ÿ/]$aüs;Ú™B¡g†ö$Z~›=Ó|R ñOlzWÏ÷e b‹  ÙáV!¶¼oIú¾öŸ .å€:ÛÂÜñ™`í#9d™ªTT•@éL8d>TÌéTQªq^šìèsåʬÔj¼køsk©ÁK®»ŒaX¸UgÀ´©6g!ôìÀ1Eoc~±Äég}ކ‡I\„Èz5EÉX¹‚Þ‰;ù5»º²m$!Óé»=Á>tßÓ¿ÌÝ®’ç©þÄ'¨0E×á6ÔmOTsÝ"3Fa­ ›á‚yÎLÛq6íµ»*z\vòaW¹TRbf a}ßn5Û“ö@üL|‰ u«Û‚Ô–B¢Ú{çùz d‚Çàùœ(‹0 ô3JôK=.ps¤Ü#I& ÉÎ×@¹o@Oö»{1Wq 2Èîðf¹nÞ¹9\kn:bBm¡h”Mx‡˜ã’¸Bìz„ˆäà2ÜÅqX2ÌíDIï¨ í<˜MqV"^#h"g~:Ûz©àç9¨- ˆ¸ä‡ºÇ¸-ˆVFóÈ€d_ÞÅÖ¹zwŽ R>dÛ)Aj¤J¿¥™s?+ž Ÿ€:ÁˆôŽEžéÞËN<Ÿ,="ÃX~’RÓ¶Ù§èäÀꤪÈ_"Õ=,5\.ú¦•–ÔžßlÂ=xÿ†›T’¥•ó:Ôïe:ÛØÔáäȰ¶à–´DE7ØgHD}`V“ ¸¡ª©¶ªÛæß–€Od—`îOø[OèÜØö"g @{Q ½¹ œÄÑsçõRrÛK¯ _EÀz\år"Êí­³;fùÝI†—Ò"•¢zx6(À†#Ðúðéƒ*E£fN:s†Âo›0ú9-‚Ô<ܤ™˜ÝRˆ+&9„-„®-~mm„ï©›åæ,ŒkѸðt3¨b×lCZ‰ 1b–¯—Z‰›â?ô”"™Vül©¶Â+úKeN.HÔçZ5I’m\ZISˆÀ©¥Ù‰dº‘d˜ì8> ܹ d Ol|´‹d^àÕI±AÙÊ ˆ 1.ÐêM@1&±»‘gZ÷8$8ãnÜúe›¯åZ‡_#öJmåÆWÃȻ}lN6ב–ÌcU÷î"t}šÝ/—BÛE,TɧWýûÖYâ²Ï¸žÒ˜ÊOQ¿œïíkš%«g_eÚëy*ë5ܬO»‘svlM"õIb!:~´;’žE­ ¹h4©cc)˜‰ñèÄácϬ»A–ièÆT~¹cˆóúƾ¯ åàkÉqãsì¾Aä”(˜Ñf36Óƒß Óz¡­Ô—]ªÌÕ袗8ºŒ5땸z>”,û~™ÍYT%;õˆ9îïÏo|)2h ŸKwþì¹Ä7Õ±5ü`QHz½®¥é%ε×ÎU™ ©€hö°“T„H|ƒHö5xHænû/`(çmÜ*0Pˆüûýz÷3¶qÛ¯RâÄ.’йm¾ÑÞ²… ï´¯t+FÕ¿gž÷Ôìmç·®2“ÛÀq¿0Œ‡Ÿ±¡)‚;'àDßo±XÈ÷ü§VOƒu]ev”|Bá@s$>ˆÒíYt´BÁ q¥2sü¯wž™I˜˜ŸrZœ­ûiÿÜY=‹SîžHˬm8˜$å9v’€ ƒ 0œÙ"—ÆR“ ¿}°dŽÎØMLìÛP“-#·½¤áSṞ¹–{îRÅíÑ Lû¸£Ñ/_âcä‚T‘r˜ð½õöMGwÊ–H‘©APÚP¨:·„m¼$‡À.‚ç[í•› Ç4‹ö«žª‹C nïvNnˆŽø"Q‚2]Y?ý –ýÒ#IÜØÐ-`æTÚìÙVÍ;ß½¹žZÛ4¶ ŽÏwJ'C Õ“ØKÂäy^6Zlæ©¿€|)ÅòbÁ^£…Z+z ø‡[µ„€sÉ'üx –Éî.¬×å@‚LçÉ)ð<¥ÿ­97€V)‚sXÄÖ˜QÌ0ä]ÏØÖ©)V·ËwÝÒ€Ï&Ækªè¾}9ØÅÕj£ëPêü­Tõõë=æÕóöÑ6“\¨¾d¡Ðú ÇQzsqûcö K×Ó ¤ùºÜX¶ ")½É‹.”™„ŽÔ6¥5a…AS?«QÖ’A_Q´uÚˆ*OK³»<ÌáD$=ðë¦ škˆz¬—zR÷¾eެÄüŠˆ!ŸáNÜeæb戌¯ãaä`t@òHgèë% …A¥ *ÓúïØ¨Ì‡4­öƒð|üâ´pOzzA$ èüB~Ý XüÝc"À›æö¸Hº´À¡:a†yHY«”ScnI‡™ ÄÔ9{Ë$ ëKôø‰­æ¹È–vl§{'i·ª`ËÛÝ*óT°, õ éæ.è>:'y‡3hZr&I%öö c÷f“#‘¦Ý}sOjß8á*¡XY, ƒÊÇ—åJ©ÝÕè&’§É€U,ŠwQ½]õÓD" Ó«’›U¡Z;ÊŒ’õgÏn~-ý*N]D²uðÛ´Ý Ÿ°1døÈ_ÝZ÷ÿ¢ñÐÓô“iyŒQ£Ä45išàwòp^n Š­àR1£{Ü¢‚x(dÈ:`ö¢Ñh ÕøWQìÀ,žt¬>ñÛCù/n7‚lÎnþfÒDâ”QFäGC†èÅÕs;4~ü³ÓdÀ[Ìé=baNÈðœW˜Jhd6ü‚báÏTÿÿ5æŸå…D´®×,í–‰I¶‡‰s6ã[ÂäÈúÿNq×0Óšgóû Ž rã³àVÔ›@Ÿ™žÊr’±4FyB¤ËF¡bJš¢$=~¯oL¡¹dñZ¾ÿXŠœÑG‡}²¯/i pDˆyz×÷4ºl8QéÂ5ófS1à|5ÓʃúÀíÜqú~GÕqadàÅoŽr©ØÙ^]Ó­Æôæ¦%×=œÓª!èÚ?Þ°ýv¯ŽçõáFj5’3ƒ¹å›´êˆ]XmW^wœK6ã°(÷D¬ø@'åŸ)¯¿PÝ£™œ‰A ÷¾Ìä_àÃC‚’¬%xÌÃ Ç ”X†Ñ'ø“bΓ¶ fåÀ¸ˆ©ïöï. ½öÒ0#,¬áÏqºýO¸¬·­%d Ä a!Ðê&•õ‡uT6Ž„øÏ†VïHü½äo-ŽØ0-½ T. o•¿¥H›.KŒ ¿ïÝ*ÿAœIÞƒNÑÂÇgAÒ5’›‘,Þ©õ‡ˆË×å„>Å=¡>¥/ˆRsÙ³Ÿ vÆAµ`h^_³â pe™+íÞäyÙϱ£ÌÞÞ/¬Ò}ØK8ߠãc!Õà"œð]]“bR„×^Ÿ†•nËÅŽ¦ÞÎ|,±=«ZgFo[\è´Ô|Ò/wd¨¥€ƒèïù@£ãdôF@ÝOËv9C!Æu=ëhƒXÿIõ’ÈBÇM[ˆÐøÇý»¹'¹ÌºcFÚ³¿6:zo &,Mà¹SWri(’d^^Ì-‘*:N:À\D ¬úUä7ç@ÇöÌ€êÕè{àš—ùu±?`ÎfÂÃú<þá}¨4º¸½Z-nîH‰Ç‚pÈÙgšWS0Û.ˆÜhJ©d³îgê·úW‹npn:” 4À>;G0…Ygõ}™ÎAVÀ¿9ð„‰„˜ãYDBd)N"¯ÑkC‰CËU¸sCìDW¢ç‚9ˆ.‚5µ.™ô&»ùŽî`µÏ|£Q r”¢?B¶b­’[ÄDõÓ¬1{óLAxŠòñŠc°®á¦VVàMw…Á]zÖQ£Y Pÿ `|7Áƒ>Pœ½~:¢ç»Û„ð5ѺõJ¿¥á rM&ß ¹U–—³Õïý”Ü9¸Ã”U.LÀâqóûNŸØF¢Ç‚ÔónÓâñƒ‹þ-Y)ÚˆÇðMKÅI‘™j’2_hž»+Åꄈ1eÌ ƒRœ^ºR|@¼+÷±Z,é‹(Mªwë|ľcà@rÖVù&ô[âN‘I7j}[ö}`ñì¯Y¾Äƒ••’aÇBV,Ðúˆ¾ˆ`ÕÊ»âÞ4¿1‡ÕU«þ/mД@ÀןøQ“fcæ\‚<ÚÞÕú³Øÿ6|WàŸ®÷×ĆI4¤çÙéù¶ÇþIÏäëÔ]6Â/®ùÐØš[cè4‰ö…œ9Œ—¡æ˜]}¿FðÍ~==áCMÖÝ×ÈA¿GåʳÓ‰ ¡¡]ÀJÆ[BUq>¢ƒâUiÑ“9L*ö„|éhƒ±~U× „®GûÔ‘blCVÕ%äöàzàÚøHæ=áÍlÌ#ò¬`“;¶ƒNûz]³!YÆ2»iÃÌù5Ùô –AÒéá‘ù‰kû%¹Ë{–âe _îfõŸ¥¾sª– ÿ”ìäxO/ŠBÇ6ÐN]IL«Œw›…]Ü2wD*$;@“.Wfð´±õØøÜüì¡9ÍÐkVžL¤ÐW Arc½å황M«Àßl±£ p¤sÀ‰%˜–wR÷ó*É/8D³m}aêúäÞ˜µzÜ_~’?t~Ñ”·"Èt1ƒ<à—õÞqÖV“·¸{ÒwêÏKO­M *$ó² ÒLÁ='Œ캛âü1lN}aö7âJâb^«_MP´}æaÉExm +Žg?K™©~Í»òž‡e–ƒ-اA’°¿¥€ ¥YÍ´&$ÿ2ýMÿ‡…ztIj°Ì¨®%ð7ü$$l!(Ò~¨ÂâÓ½<4¬—Æl!ô#ÂÃ¥\»à¶DÌZÝ ˜›óîìmcµh6a~i}Ì«f`D¸‹E¼ðøI´úëþ‚JÙ?˜ª{G曺~^ÇO<wï§Ù¢HÄØÒaµ±ëñå £W í#ºnå8qªÎ^x} è i¼¢¾E•zÓvýú5ýchÚ̾¥cò–L;·p%\Þã7ÔJβ7À5òÓØ.´ òXbó}HA¬å–U`¦çÖš&ÊJyiµó¸ÑŒKð X65Jd0åíh1ñ¶2'è6ÂìFvÉÕ[Ë6ÔØ•IiSüjÿšùãH~•tì¾,Ù”ñÀYBÄzT—Dá‡cnþ/“AÁ@um€k§r<Žg/„©á„Aæ [:?Yqœò@Å{:ô¢¯XŸg9”[Gž³²Ãr >ILß5ÏÛ¾Ç,¹ÍS÷ˆÓÜ¡ûaÓTöig© Þ¹ˆÑÖGNÁ* {¶Ž…qñÚ”¸º¨~k ºÏ[¹éÓŃ©UíÉcÎ@λ-cUÚ{s¥q{¹¹<¿)cû—Ë=9º¹aØø/¹|Ò€®SÖhÏDSf„’º½±kžyB’¾®)(3%u ùµž±’:÷+‚ŽÛ‚|eF3šuþ%Ì@„V«0üañ}X¿åʲ[ŠÎÍ/•6Š– è[í(€^A-hËÍ$,ù5ˆs„tRn˜W÷ø5’\€+þõfƒMô»¢º¼é@” ”…2Ð’•Ü«Àþý˱穱[`÷ ›ò'%e¡]ÐŽ]ÎÐ>"à÷6‡Üóqú<´ V,±·<^M¹[í™ùÔeÉG¡ÍÓhaoá'!b†ßšg(Á!ÀuØZŸ€ÜoTûvèé5ZÉ ôû)ˆD/”¤¶†óM¿}ŸÍNX®¥â$C=—ïÑÐ\À È~íëÛeÉH7ÛªÇdzf."SEèΚ&ªžáŽQš.i+0™\•ÀÉÞ…UD;:õíCȶüòÎES/Ë>ÛLÊö8;|,WHSt'¿‡ŒUC`c}4 ÐjWºT¡]O¶OÐþ™a›áµIº%ð»ÄŸe®:gt¶.˜²_ä7F_ÿÔ¼—láÏáY#mŽ–š’Gú±ñYßìÈt]‡ïøNÚ {Èâ4ígºfêÐyP(ûUdÏðì_×èâc™ðl\Â$ûVë$„ ‹‹ Vÿ2ÿOZqYÍ›1Š*¨dž°9V ËA…·F#d ÒƒVÚ¡L÷X—‰ Z×éatèk÷V~ے„Ò5çËó«€aB3¦H²õ—!Êiö§Ã'<Ä©šiÞN6Y æšnþ±gˆŽçbH=GÍKB…Ít¾†`Ò[/Ñò@Û:„?ÅáfD‘ûšÕ“‹…8Ö,ÿC¸þ)S†hlSŸLdHH$‚} l¤بFG1é½Ð×hWñ_Þ€—ú*íÆÉߑኆ-¬ñB²÷лƒ7Qõ[,*^幟OàþpdVÅ´ìòÜ\Ê…Q‘;MŸ[(¢Þ*Yá·wO‚fhofR"~¾Cå••ìCs|_|áFÂrÞ=ñÄTÚ‡D¢òû䯾Ôir;ÔpÌUG’¿w·j‚â³>R Ž€.ϳ›kt`Ž\G»ož«”KÑ5äw·ÐîêüЉ¿ˆi™ç²íÏZ¿âuùìžç†A†Ö\³‡¿— o !G±=pL´&»þ—ѹ®7( É.¢ºYAÚÆuoÛ_L¯ý Ç4ÃÕ9“n% Òu¥j³’†íOГƒf7¸?f6è‚á}nÆ[o{H %) ^MUÇûèJÌJQè°»+ù' É9xŽF×]çËÎKZðsÙ¯s aí-èËc»¯2>Õã/ ¯~Háð/üâ$åãè¼ ß%¾æ¯+¹½!êG»›æËÁ4{Žš€× PŠx÷Ä꾇 …¤ñvžÉûgµ?"ØŽ9$@ú›jº'I›‰ÞIÖ=ŸŽš9þÇ$ çVWLï%'­€{äPóY”˙ߡïþë…ƒÁÛþwû{ê÷p4³=¦Ýï—‡o{îù^!e úÕß…\µG^›{–MÌò]!®ýê™ÇFzƒÄ { c¿ö\öwÿZ\PÌ^ÐÏ=ñeVÌ+•j•Oû:ž­ì´l2‘;4Ø·‰ bÅSÊ&ÞÑç £×¥T¢ÅΫª)ô{ñ¤ü\‹ý]¡>•SÓ—IÿÐÂKùà9!JŸ­ œaóK*Ð!^k*ûžN.ßî®؈†:·'~˜[Žˆ©(«?¸½Î/â¾eiYÖ{'K^ÏÖÊô†2¢õ,<€,¦-'HsTÄÓ™½=Ä``|ÛѤË ùÏ)8G@x”1lEFê†uÅ ËJ ˜§Æ^hª ]Ù@¤ÂiPÈAã¤j¸.%¸õM–<òéãZäw¨WS_¹BççZC@ŠS(ÏÈ8UŸT½SåÇ TïÉÞ£Ý[,’õz(É `Ue§“¥ýÒ¨x°=ÖjýC£»#ùæ\Ʀï3'Öª)1Gy2X}óP óÓÄˤ'#µFmËmO;̸—´ûãr’ˆßÉ…%Hþuªç;¼*[R~ ¿ïŸøŸµ”7#‹³îîÛ•£îò¢aE£Aj:rIÜØ>=þ~ÔŒ—CFBˆ‡OçøøƒšiØkâë‚b¹ø…1xÇ3Cä|Zõ÷Ó£Þ®¸tq=¬+´p0>†m+Ní~_œØ%]zY¬ý?:ìf_r§J Õ>Hðv¯[ŠÙ’8bî6‘G”ŒÑdz|±^q1®á®0EjÇk$F°‡ü—oüI‚¶„”Þ¶úiE }ÉòˆW½OÀI½(Ä÷ÏONÃ5sóÇÞßü¿.Ô² ¦‹•û¥Ìà{èËK ƒ_̤0si+†à?GòòÛ»:Ýã¬?8 qðǾˆô~Ö'' mí×\uÜ8ù…KCµË¬ƒa*Åtp² ¤žr)[–„ÀâcA扞¢s ·Gé‘|(ØøÏÔ®LgO/dtÿéÄ?\=ÛS¦ލÊîf} <€ –ÎZÎ Õ™àŸ-B3®—ò×3´¦Ï›É1§,“RUãr’hvÊ«î ‹\×E¢ m5³›ïÅ¿ÝÈxω—tÓ/©ë4_úHóö1èˆ3DÙàl¦K~þÔÖ Åÿá›Ñ1 oÃo½¤¶ŸÉ.\‹Q™VÐÇ}ºïÍ‹@çè7ú­/&žc¥)¹¥B圓EõùùG˜ÂA.(ím>ô×ø)P~Œ®A?TX1B¸5M×hcKYpßI±d(…z—Tõ[±7ë¸-¾˜œ›!~BÄØHc^¾çˆÔŠÁy.c ?žmó|¹ Æb!>>4hj2P]¼eHÎ%l"9ðÏÕaL£d}·ií×$ZqÄÿUÞ\ñí éÃÙM†¢á—ÒÊ–ˆŸ oŠVNUˆÁ³Â¿%•œîŽóá¦-”pŸäUþ¶qºV¨Â¢xä¤f£&ÐΉ  ›"ûYߌßWDµ˜F¢üíü›„©HOawáâHkxújиh<¾O¹¼4xM 0D³Èsx4ß;ÁƒÅåÿÍDýtàF*RKÒÔùÔ @þ®¡I®…MåŽÆÌmçÆ 8$àêwR’½'ÑÉËÏÝò`þ­‡³v¿p^ÚcšÎ«Œóq†oz÷È+`ÐåçzDæ•æ”ÁUMÜΛÏpÄQ@uPî›÷£ªªë-ÇlêOe,Ö×<—€‰Húýg8Â/”ªe$j°ÿ$‚% ÝõBì28’4/¾™3ëÐ|v˲ʾjãµÀP^/ öß$–§»î—9¢Û•ÿ… $7ˆR¸Ÿ$Uœ#~˜Ê=² f=HšOT`Êòž?I;…½Ý1ɪ®”{3ávdàY&Þá ±nŠ/ó¾ºÙV“Ú¼ký}²îñÀâ’K=ÕGuœö‰ø~2žÏæ~Èü/všƒ„Ú=û“É}Ï ¦Åç—‡·à­ ¯ åÓr (>5b>ݳÃé$ÄçÚF<<œ&Ü‹S³ÛOö;WiÖpk.Hë¾!!5)‚c§Ìfë«´µp&iÓ='¼ ÃúBÔgÕ}ˆbï°Hÿ¨&ÑÀ 3êeVbÀ£ím”~Ž™àÀÒmŒ^é‘{WU¿QsíßQ'ôRY•.E–¡hóøwDzÆõÿ†Ši*mªÒšä Ý®A,ºÞÅ#xß«Îo±Û”dФAy~ÌãlšlB¯rkQ¬ëÐwt Øú‘gsD`(®öN'Âm [9àN,n=C9È*Ú\ªmÛ¬qž>4¶Šª0_//o0îH† ˜,Qð8¸Éñ„Äe‡ûGCÙ†}÷Ü]zÀ” ãLyÚg: ·1‹@;‘á •WY[¿ò¶ù’T…[—œF?ªk9L¦q@£îÀXt½—€u^—^¯c­hkÁi…2)’»Žs…¼ 1ÜJ •T½iÊÅxèW_ç$³®•cÅ-vY ]®â^Œ3ÔEd%ûÎaï3s‰¦œ ›>ø´Oü°gÖIðÍAöÜ·xQ÷ãv/MÇyÕ YíÑZΟú>IW½`ç$äç™zÎQÆ—‹k.à'¨O·óOÿûËŠsª0 ò…Nì“fï‚ËýU®VâÆÀ׫~V‰¿$7Ò•ePx  ° »JÇoˆ9C·{Žr [ômÐÓÇ4Ð~¨ŒéÝ‚a»Éþ v/Ì #¼Mu^?Z"ÿŸR4çy”T’±ô¢ð7^Hbœ&ùÿ]bE´!˜ÕRÛƒY^VN÷/JâÏù êU#Å>hœ(sarv†K“Ò)l®ßSßéÏ×Il½_Š]A·BêËÆ_i ÆÆz$€)0f ]TÅi+áËQû~/?vébSCyæ=f|:«Þx£kãŒs-[}ø3¿«¢‰Ãnjëƒ^g¸7KòB˜AÞ‹rÐ>üæVÁA¡yZÚeÒJWoÔÜ‹ä2}[c…@Ëà©8tÓpÓY:u6> ON*I@øAkfÒ“]/Êåf\óÞGmŒsq‚6ä&½=s‘ wÙÕ;`£é3§‰£œ´ozLý‰ÕQ=öàMFjng~›ªo¿Ä5"/Š5 •ûÄB'þ™9d‰ÀØÞ³lÎpc1¨½Õ•±ËÖ.t–æŠmÔßF+ŠäJ8n£W?RW5Ÿ^ò¾ç;&ÐX,^lö éÒxí Í _ëéEÆÎn/3ˆ$Oû#™dWor7®OõfÊð]b‰f-kW‘#*ñRK°]óÉ’‚{ ÌŽ£æê²òp=®é1<‰´@½ ™=ZBlÊ]ÎW½Õh\Z+¢X‚U©mÜ?#@¥²ÈÝÅgêt¹”ä¿TøŠ9J½SiöL:49©Ø›’ó{þa^§’šµª/5IÑáãàA2èÉѧÙY/Ô<Ê0xáölËA‚=6 ‹¥»îjAwZmÂZG²·Ç<# ÙÑÂü-®0ÝÊ>ù˜GDå|‡ÞCLÍx]X(SÑI=-{3;vºˆ ?l •‘…oƒ ’ü™ê´ð>ç‹øÿ–ã¾³‹ÀF•Ø9þ‘QZ9û)³kH^Q|ûÿ.NˆwÝ'“ÑvôVn§r<Žg/„©ðu˜¶z# BÄ€m[€$™‚¼ì‘¶ÐþY+Κ–¢”“ŸkdÞJ?£ú'êžy¦50V¶bùA‘ç;¥[çt?2|‹<'d­#¿cC‹w£ë:ä_q…É«¤* bÐzFWd:Fˆçr•¿É¬9™’ê7»×!=¢ð0TùKDä!Û­U¢tgNS!¼ûUÿ ýÝ‚œî`µê<«þ •UäÂé Fc×,„ÄÚošžý\¯\r¤HD–…JZÑO½•`l£*G¹JÖ45ŽÖWZžÒâréØ|YðfÅªÒØz|à¢&ªÔÃK} 0ð¹l§Ã̵ ­bÁ–ŸDñ˜ßÜTä‹)B/È’ð[vîX­Ô–îÍŸTx;”Ix$•_ˆг/„ÝÁbw)ĤbñÙ/ù\~ãäãzº+„x/þ»ùºœdëu3 ø5íJIìV½?ZHÎ&±„FêéB™3÷h˺œá8™ÂšH²Å¯æ l Èw‡‘\ü›ñ÷Ñ9PàÊÑaÄ8bW\ElGæ³*”W¦EöÑ8äF>'k’“¨-Ûs¾3S²2ù$Ñ]ØÙX‰Oøä~WSHèW ®–9¨Á+I±Ôa¨‹ãÑsÞ$³ÿ•¯4‚uÔ1æ*»¢*WyMÊ(jôÔï°…æZ¢)­©L«ä×>˜WuÅ>ò»âDZá+&1*/=ˆÐ:c÷Ñ´j,#\gÖVÀ£´LÎY+@_þ«™G¢ÐÉØ*e yéyvÄÔ*ᱸt™_´ß‹iGã­^ ‰Ì[2ç—'¬ôd)¢ƒ‡ qÅB·vèLE®‡ŽÑb¸`I0 °N‹!栽§vTR1q{ü©ˆLïwrVH{]üßew0¯« L§Ñ˜ö‹Ç$T,˜$¦²7¢nbÄ¥ùÆVD«<œ_Ûì•8áéV6«z-rw“(9ØeTZõ¥fWÖõtPß :[å@†c/‘)b!Jjüšê˜4S4 ¬F2h£)5W÷ÈDuÙÀ•tW¯`ò–ñ³þíê¡O¨ ¡•¥ç>O¬7ìf<1‘ yѨì8™9‚-øa`Ÿ¡•ñ}¿`Qù>Ì8‘%‹aq £f!rš©&ä( 6)†¢£‚ËNi°©oîÝÔÞÊðNKÁGøÉ}¾ÝƒÔKxô„¼³øi†”µ¨(Q£‡—+ü“%-Hùì_ŒÉ,psÿ>z qÇ*¢y„ôéŠÁ(ݬ-L¹``µ7uüv¡ RÃJN‘…·ã¼×t@íPzõ:.›–†°=ÂqD`ÆqŸFÂélUD”Bhor4üDüÐÇ­ö>5oÊžŽq9â­å[a«ŠÔ¨ªÛ~üòwùyOÐ…W5ljLQOêóèlÆÔÈèóZ¥px¦É(c”@\,lÍô]ú‹<ê¹^–ÑÈA`BÑÄ2#­JÄeé`»H: "$žEÙö™Õ,ƒ„Ù…VóÇ€‘äí`FŸøöŠ(ñaZ'º¼†¸ñ¸ÈXEÀö—å Á'[\c1Á¼ºÆŽqÿq1!¨woiSØ=K£#­K—͵ì7áÑŠ¯ËŒ=¯2|S$X¢¿˜^ÙÒ¼Ìië9ׯ*ÐJïR¨øÎë©F eà@[kΔï CÆ[`Žå~:ž 'ïáè`êÌxfin .a.úMɽÁÙ¸Å\B#´¢WÞÜgdzïõöÉ•R0òÈ &‡ èÄËï_M¾åÇ#Åæ×vÂe½(érÛstˆv@¿+ª1¢Ð‹ŸYfsyÄÃ¥7_!Wìľqn/zŠøIoÁ¶ôU›]üHϾ©@WB>‹÷í>6¹ {g¯K~å–µ÷pÀ,“>C¶zÍŠ}…d6âÙÃhñs¢EÏœŽ{q’çœD¶ÕlÛþä&™´Òd¦Ú[¦Õßu?²Ó8ÑŠáÎPûEü© ªÄ† pƒ;’7\}Ê» "®m‹°®•} *%¯sýŽ:ž¿z\3¥ño×1Çe\{<Å‚£êëU]!ƒØpÈÊR&VŸ¬7DçÛ‚øÌaTÓÐia¤ÄZé–.ôsù$Ih¸Zº”;Óô›œD %Ûý2fyýEç¦æ¬¯UÚ}èm.ô?ÚËZ—ñ><c[õ¡Õ}gðÞ'Ë:‚ìr•”Œ·Ìâª;ª|°‰»ÇÒ9µÅU—Ã„Ò b˜A*•ÖqšïFRÞ®æä»ðü¢a¼¹ËûiT ˆbºyZµt9ÂÌò‰ùXS„?þ„Ð/|ŸC¢y‹ÑÊ RÑ._X%Q)`Ô›¾E=õî¡BFÄ?ûA`øäÈ…Ëñöx\¾z6¾åEÔ³O¹4>wLËÔ±ádé‚ëÌ{"˜D/ÂÙ~stkHEÁ­%‚¶ îAc/¥ºÄŸ”è$Ý€Üþ÷] cÈ ²O)A¯bB¿’fTâϰÇ@áOÙyõÝp)G=˜À+uQmÂ3|í¸ßR÷ÙV~}©$o‚Æ3ú›æ9]çô˜YÑo ×6Ú'O·|º½OݰEŸ·ê…ÌSr£ÞQÑÑ•‘ÆõÞîH;º½“¢…qd*Z«èX±6N'fZû’Í u+Uõч5ŠŒ|åúüæ_8±Ék¤BÚü?)¦)ám‘1³H‹ìq#NgPq%¾TßÙ<ÏÍlùxè+®£ˆ"švê&ŸuÒÈ”¾¸$A }Ó˜„®f$Ä¡èc¯àòÂdvµe|šæø„°wq¤æ –uÔú%8 ×âu $õaH”ú„kŒÂÛƒ "‹«B4$Ç#…Ÿ—G Kz%Gˆ…%j’† ®”s°{›J ÖžòÙ< øQ½FÄl­ØÏ¯K·Ü1/$x`ê2ÒÚÖ‚ÚÝ0qß ‘»`@Ð,®\‚šdñ‰Û¨”¯èÈ µµª¡AU㘱†/ œÉ ¹bB߯UÑîVkÄÆiö¤E‡—%£Ž¹âHSŽs©kÀ ã6 o†‰­‘–¯äû®ªŽ7“¶hcrÂXÂ;2îŒ <2PÎÖl´ýÍ¡•¾Ksö"”¾¼ ß„0q—º‚æßªHÚ<ê.Bx\ðmm<+0O®Žƒ,”L$ßTJìû Œ)¨W¢e«šü=xœÒÁk›’$[·µÿ2²Î³ë8ü\ÈÜH<; ²?x“$àb½ò€ã«'iÓ ŠŽùƒ ©ÞpÒþ&šPœÓ<½žnpÜ ]ÊG*/˺ÿœüü ZÚ$!Ô6†m¼|@™ kŸ>Ö=ÈáÒÞáF)4Éîn_¢€ž®âivÁÀmE·K.v+(üªLrRª I—j‚øÊ[Lé+©€¨ûñËçg“¼¯V¨×¿ïENé‡ÞÝŠ W äÛÜ`°å)Âà¢až¤”(6j¦7:润Z%á#X˜2r\ÚTP¿@(CÞx™y]Ö¿¢ @í¬Ý^tï‘W²¬moŠ?AçWg}Éh2'R³å§/–Ú÷ ä±SšÕ©X5LÌØè‚‰]«ÿ™ÂŸ‡èù––ó“ŽÈn¥ZÉÖñéîZºVOF²«[{G9eUú»ÖJ÷b ÄrïdF4¤^|៾ûò½NLxÃ˙ձ_CÄ1˜c„H?pƒ…s¿  4°Äæ—×XöíQ {ªÌim”R~[šµ£—O!?É0‰ù+o¼ÅAQY¾W%q¦T6¤hÅ5„„ñ]¥úÝz‚pî¿£0¬¡<þø9…´z%gÿ9ûÆýDmËÆ%Wj>m*‰È†­!4Ÿá §4_“œ#L¤%f1£ÃwUR¶;‰ßiJTÅr …6Åã>s†>°?v‡,íäcr™“DS¾ÅñÈí÷«ë»DPö“–_Ý´Þ~j5ï‡Ú;Ãðïºv¨âˆb‡q†Ñµ5aãb×ÏãôcRÁàøÈõ–È€G¦¬×±‰â]¶§M§u%ç)¿vªüLÚŽãÌ‚Q=)ÚD¯®»´ Ð»(:öZa†ƒ]öçÓý7—³(ã("­Ù7>©Ýt=kìO3ô(7Çâvr¶ìí<f<ýg"—*ó {ç®VÖÊå0æ)÷ð¼Z”o‹Eï%ýšÍŠäG[(Þªª¸s5—ݸ,f7Nö¸vßÂðjqSûªuí\ˆ•š¿=^ÏÏŽZbDÏzKmÿ<±ƒycϳ kÚ|Õ%qY¼N_´gŠëËþ•A¹ †CŒÛ~±úÐ@¢[ÃnGyäé·È ’œ¿†Œ²'¤- ùû¢¡õb‘ŽØXºåÉSn¡Ü}U›âºìDe]uèÖÜtOÄrhÑ®>ÙÖîÎ4Ò ÉÀNÈìu1“+ ^KÁÜ^ /߇xD9ø“äÏýS\­W…AÕy‘ëm¶ðzx"Ž“§+ò:În0gÕ¾ µ¤˜lË*õQlU2¯èmHÞu¥…4$'¡j¤ÏÜrôS=€h.°8;œ b¨n»NR)"íµ±*ï­F=ZCXÿ>…Þ«Ä…‹'Ë\;‚ªE÷ áwÒ©¹ØFaìöÊhŒAÕØ«È뎹>X—0FÒô™›‰üü§ÂNí-BÒX™Þ4ŒÒ/n^õŽÎNuzxÎSå1ºôÔÉ’.céö›—ÚvËV fEÉXèÌ?W62SfXüìµdK{‚p\g v±ÂÌ¢˜¿ÙW€o?íAqìÕ‹øð/ZqP¸ÛÜÇ,Ûg]× l~´bõûØÀeP©CÈi]¸‰»ÿ?ÈZ€›®£UómßôRíºKР0…ErĬn|Š/7Ž(KšŽÜ˜Ë¢ÒÔ9R<å%*6·) ȼ†ÁßžŒñfWlÍýÔÑæ}bžz¶µ¡‚"®òÞ­„…ò>ÇÅã (XˆÀÜÔˆ·þ9mÕ\iÞìô…¾÷¾Ã‰-“Zô«‚kõ eÊd±j¾&úS(ZpÀò¤&Ž¥H4ªØùšP IÞÖèìjX6]—âÐeµÐJH-Þ‡Gôå!‰•×*äëŠ_– Æ¥¦~pÿV•7ãí+]¢ü&Ù<𫈖2Òä•MZ}a ·eâ{ðÔYµ±ÿçéaÔK³,-ÖkA«O‡«Þù:ê‰nòѾH-*ð‘Ø)brû´tLÞ  ;ð²›½÷ø²$¨¤'B-ú0’&Ê)·ùr<‰DÖÄ©«…šœÊØÔèjGú}¯–@…Ùs£öÉÕm?EYEÏ|¡ŒÙ¥âgÀ®µ:‘ˆ bVtBS¾ 9‰@·å ‘¥”„P»½!ðÍÿÒA¸‚€%ü=ÐÚml<|²NÜ¢pç{Õjw•:¦±ÿK¬6biYÛü™­xQÆ—¼ê;=ñ¡&Ã`V`"æy{ù3ï °h%\‡ã)bÑÅ1úÉíjôO#ØÈÜBï'ß¾ ?áãfã ƒÁ§z+~ؙϦ„ˆà§<œ>‡¦]Y«iX7ßÃñßKTÓÔÊ"ï÷Á8è':J¥bóyl‹+€ ©ð"R)ÀMN§ÄÖ×}fS[&˜æ,Bb#aÊ&ÞUˆ«€æçÚ7vù}ìXÅt‹¤6x$q¹¹ÕTyÛººÊIlÓ}ÒäFõh`ŒjŽ53Øzk ï|ìÎVÛ*f uÃJ^1¸ƒV[ gþüÕ@2¨ÑR*©ï•qӠ¾NÎhoépÓTíõX`t/M»uÉ H\è)Qñ„ÒÕtËηa6`Õý¨n—Ūµ¤%¾³I5A}+¡ã 7¶Í|™ai3½Mmàl`×&æF¿ã)þ\š0¾Ïr·×¥ SC㜠;¸¬½¡Û~—¢m·Œˆ”8¤§+ìÉK‘ЄƒýúõPŠÊºKÑ«\‡ŽÁ^kuë"˜9¶Àum´Ðá­Šnfø«'ž>D²Ä“3sÌ´ßúx¾IeoW¡ÆlZ´Ó–ó\ùIÎŜٮô{”D‹ ×A—ˆƒ¼($h^×úŽ ”Ø&¦˜dö|¶—Ô4 ×Þÿbè“F¯”Y§åO¶Å[ß0Œþ‰Ö¡@Þ§±$0»ÈÈ+÷ûPÖ<Ÿ²nS!UPÒÆP¯ €¶p¦%éZ§Øÿy*¿ÄóSmµ¦æq>F$ h¤Æð t èæ^k mÐéçK5¼óœU›¨ÏÚmé•N¼8Ä m hJc©ÿ¸xüÄÜ^жá;hÜ­*†{Bчϒ·Q®S×5iè‚˽MAÌb?="锨Ó)†%?F.’z’¨²&¼°X:gi§šž³Ö? ,‰K€Q(€9‰9òìç$°j8êOùS‡t¶sµ]/Âî£6ŸJ›ü¨Ão‚…$-qd¬µk°û°l‚1þ>uºñX0ĦšÇXÔÝÖ Eßø­z“.`»{ÜÈ c¨ÁXš†¿|²:W"Ãm§!¼P×Gƒ«çÂBù‚­úcŠÎM7×.ž˜A–aÓù5ë Á‘ª~P£RÂ#IúqR¿!Ö‰fµ0–JQš RºÎÈ{'‘Qîøü9e;&ü¨÷‹Ê<¢áܦ¨4–üJز”CMôÞGÉIÈ®:• h,LËkÂLÜç*œ‡ÚÉ@ÝÒÉÑPÀÞàJ;޾7s¯†ÑDk_ëYžF,Èr9É/(v¶‚Ýû[ÒE;ÖBËKK8ÍI!efÖƒ¼~<E*C5xswØžV—Óš½ÏD«2/:m“k^£QжNfë–](âÆÃ5¿¢ UIQ[Ú“ë*Ýb’ø?„%_…‘JCÒæ(Ü·UÿÙ6 &gGë¥Éóº²P;“ ¬xp±Ó}• Öx]l¥>#ƒKÔj^ªrOÙíŽ9¥ó3&™q:á<'²§QÕ7:ÄŽBüvÞZÍçjº0쀦D³ñ•4J(„ 3¾=+íIþ…Κˆ«ñ¦²ÏÙ(_ÛTîsFÔ #Ë- )‚'Ãmýjÿà2@pQ×›ѱþ1SÓXCÛvrÉ ulȆI‹ùþäD©TŸÈ“X‘¬ Фt«áÓdƒˆ Õ ™i¯5H3ò SIɇ Æ”õÆ»G$ØšÎ5†ßª~æ¨æðÆlnzq¬0Œ‘Ñíæ… 'wðÜ<%ÝâýBJ¼f!ê¨Ã¸EEÒ¶½Áy£Ï÷žúxRîaä«¢4³ß(híú˜‘«í»Ô¢ô¨¬¤„€Ïþ[§ÎÌ/zæ‰æ. ÔÒhSô ˜ÌÔë¢Ê¤%„˰g’€«Sþ4’q·š¯‚õÎQhdÃ5E±¾êEÀÏé#XHXÄo½ÀøL‡–* êÊ:©ÆS‡"î°ÚÜÛ2åÖ´;¶2%—”#ìâvtkY$ÆR{$Ä?[F8Á1™\›q¤)a@ùwFÚâ(7¿U sëÚ®ÂöÏ`Ã/nX _2‘j†<:žBø¢<½)11A µ†-Ž?¶'<ïš|‚_BÒÎ&Ó…H¤’¨W CKd¸ŒÈ±ÒúÆèvfZmÇGÚYjÞV,rY{7Úmn?Ëwp¸/Ày9 ÍÀRš­*uµu²“ïkèúpº©:Ã’GÙ˜›ˆ˜g|Ï—½×k–]3›èA©-Æ.ê—QÆ»ªl«¤‹»>Y!XîLïúÿù¦’ú:n8ÿÿÛ@Mþóêªý ­©¨d£Öv$¿?„Þý]¹+·´ÉÊ|Óë}œæHⵄœŠÛ[èX*‘YÙ—­áœc%ƒìˆxû±aŽži­!‡XñUƒ’s…¡÷W ú¸Ý)ÖJ$·XŠvV—bþYúæGC Õ¥˜ïáã~(™—}÷zWD8'Ì×xVâ½€—¥Ÿ]'\ç"]™Û—J7•€T8AÞœS…6éè\Õ”!±…1/oÍCèøüÅßË}¥xhõãb9:­Nðÿ-Œã)Vïüö–êo¸‡ÿâÆ‘³²€NLûF3ë‡õ‡L’h¼$bèÑ›¾X\øa>1¯eLÿ{ IåbÆœnZË͉\ïSt­6$)Á]j^|¿­Ùo_/o}2†–e‘ï e¬Ù3h¿”õa/e¹ 8§_ö5ÊöEµ¯ðx؉4ýd4j”KÉt8ÄÛSã½7Œ¼<ò¹Ä´ÄY('f¿FËó£Ì4<{p¡³êßòîj›ƒ¶bIñÙ£l¨cÇ _;ÛŠr¥²Ö²· ¥…µ±4=ÀÐÍ•þ­öéµ5N¢Z'V~‹YrtX‚-2Ú%MÃGd3¥Õ|ô Dî  lÜüLÚ'ekq3„Dü¸Ží»µÁç}Üß [0U‰ðí_Pµˆïfã’îLùSwÊú0ÎÜ^2Zð<¬°Ê 88ÓÝVú.€j~Í-–ã fÏ z&ƒ˜Ww:=Ž»¨÷^\[ÚmN{¯‰`ùùŦeѻƑG0ZÞÕëÁÂq¼,Ah)6¾mtгêÆ0¯¦ã]¹û7åNýø7ò ¯_¯¯‹Ý“jH »AèÊ8uÙ?šÿ©Ý È ß3ŸwJÇ÷ \1–J:êë¨f v›@ýÛeT‰˜z3=ƒÁÉW*¿ jc¬ÍRŽLÅ_/Ý@RÉmÜäó!‡åü×iiå±Êu¡êE:g½|Fo_CÂìCó3¾Ï­PœB #Úªî³3‡DmÖJå ‡§•âí»êOŠ"YH–œ H»%Ðßëë NNñžë€YsHN¢¸øôü´§õ6Èâ³ÏyÐWÒˆ»–(ތԖRgµ$l³Yi+üEðxÜÆaÙôÆ:¼õvW»ÕÔ=;Ùꮌ“gÞ”–ÖFSÐ`qœFTÙ'Ç~°móÏg‡Ì~Fì«NPCÚm±jÖ´ú‘a/V…„’IYäfá*m¤09Z'ÿÙTS2‘Ìh×q*Cò\QQÖæ¬h#ÒM䜤K©lQÔ×qÎ#L_ƒœî‚º(ý½—:âÖ‘ìïëZh™±³ŽWêÊ— ž3#ݾá“ÛæÅÂæp’ºá"Eø¤UV‡fƒ« œlë :+Û¢ÙÇHöæwTøÖQ7ÒHɛĢ6ÅÙøÜQ¬S‹;2z´&a26Ù9–[ðÁêÀ6j„(š±Ê@Ôpe ÿ£{lÀ­5üDA•þ¦~ÀðÞ®÷yµ7¸s}ÿ¹ÞüžOó © (²®Že£ÉÒð°²ÃSsE+ê9(êŸ]Lf8ÄUOÍðÖS¬î³ùχõMCÒÈG}í:¿CÄ`¢4‚!ÎÅãƒÃ%{ã”s—¯6¶tTŠÍ„ÃÅ0Å‚U4–æ¨^\£ôçªÿ½š:i¾6Ö•ž¯p²èõ°çÍ„3'±ó‹:0—j—¬aêÙÍÌÄ $ˆ5d˜´*wï¯aÍŽ@àñøª×)2]ÙËÂs42`¸#Áû¡è%pš×Lí5UzÈûÿb}ÁÄ«ErøîL»‰ð’XÅØîß.%æíi°tÉ0²ûj9@JßZ,±ê“H<É5ÄhhHåã°»j𸸮ª‰Ç4· ¥{j9“½[|sköUí=“_°D¶#ŸëDÿ&d‡¤<¼òÀý~Àvý “àZ‡À`÷–Pþí1 Ô­›Ï+ídûxÿ7¬P!%½KjƒÚ¦ëûÉTï3Nzbq¾ j#„F| 0V̱÷l³ÊÉ'XÏ]H17«:Áq·ÓÆ|3ÒŽ®¢ * sÅ uiöðÎÛz è]'âwÙà¡ÈГ…ßÑ©à…@éy ÛUtl¡Îýᇞæåñ Æçònʶ·•¼”zLGa~|9Z‚(¥ Â~Y’³S:p¤\ÇwÍK¦²ÿ¿˜h—6·…NÓ\Íãd¼mnÀ4%«… 0±åñ=´Ø83µÜUƒ(ûÛØ†7ƒF¢[µW»…äK«<Ìß¾à²+bÆÓðìÚ.ù­Ò `H| ¹ûGÙ.^m‰{/è}zïý¶µÔxTœô æž$‡›inlòß[~‘@:d?ªéÂy¦†¬ˆºþë~<2îèÖÕû£¡9‚t[Ì{ý^7r×ì¼³F.H ½•ö\sˆ>[¢,¢~vØTQÙšøþ}9¨‡“uM™ÆOÆ y8í<]%"0—M'˜YBãdW$à1B2§@É·S]ùÊľ´aFÔ»H%3ù[Oéíiò&îØ ÙFòu²bA—ñÐò/ËQÜ#räQñ‚¥ÅžYó`Yƒ qXx…׬‚ݽP¯=4»q’# ‘,·°®#Äåc€ýþœƒJ$)ËÝgw8šo྿Äïšž•|C÷h?¢^9S›N©=fj"ÀÈÁ4“Ÿm ò¯ ÊXf “ta£ýwôI„ÊPíâ»ÿMJÑ#øÞg|¯ãÄ+ü ¸E¥é§f€Á¨>êÐ’$7áÁï¦R¥4:u®´+…3j«×"â}$hòÀì#/þÍÒÅ÷×kŸ5×ø±GÛÃ¤á½ø+'7°m{ „çµ’(øn³ØîGמ ¸n§:úÔ®GÃ5Ç; v7ûõÐb šy–ÉÞûx—ŒµÅÀA›` "6Ù_ƒŒƒ=”¹ !1‚ ‡óÿØAþògÁ¡Eªñ2 "/þ¶¹«O пãbON5 ] xfðl%²"Û€·ñ\?Õ²kLqzP¹u:n¾õ˜÷x!ª›FÏ0¤þ[ŠCTºÝ«òT”&¹îgH<ô\_UÜ×[XËaÏt;¬à²7–ã=e<|QaÄM‡ûÅâá=ÂY¿Þ¦£“¸8†¨yßøÖß ¬^¢`‡Ý”“É8ÐôÞÖå:\#/,!…åim˜™¾»è²álÌ^ý뼀?¬cl-rÙîÄ8€‘ÏeøÒå%"›*v]ØÏVÖ«  M–¥K‚¿Â'†·Ð$‹#:=P£g8 ûÁêG®þß4(§+O†/iøœ’V8 anvÌl\KòJS´ÍýãÑÅzºd– MÍJug±BÍŸ6²û&‡Øq`q)1o„$¦sî¨!SÜó“í_óyRÖ–€SY²ýc—rÈ(žuR¢jgöq‡Þòo,·ˆw 6âÂQûenÙe~¨YDR'ïå$•ú—ñ㜼߼ ‹´‹@`½ª§P°1؈V}a¯Ø¹|éÔþˆd¹xÆkÐé–x‹ºås‹Ño{àg¨»éö«çräK"邏‰uçÓ!ÄVè3à %^+YÅë(ˆ+0ø­ÑH3­Ò&µ©¯C EõZ TE)R)Hº6¸ËrÊ– !Õ¡§†(e! ǰÉ$wÖÊ J i“•NïûkeO}[·©8›%u}7FzŠk}D S.ånŸz|i[P»!æÿ×û  Ž€ÓÃs=ÉF£Óxª×Û.;°ª-"7jï%àonÅ~ñyÇç¤(-aóL.”ñ.yq_h_ž|{zrs9!Z?»LÅ^ÑéÝ)PïŠtƒ¼v)$„9ήŸÊQ}#)ÏÇó¾ŒkWžã–N¡X’Šê2/a-cŠ{€d»Ù Ë-éÀWÈðŸ]Ç>Ú¥¾Ã;vîcT­tËZ¨_¿Í©ó£—ñ‰s‰Gs‘¹Ç­^OõUBµòÝoø´eÔAXûZÝjÅ ÜÒVæS8­îú¾kÁÄ'ß©LVdX'€M ƒ¸Xí¼Äúªá1opƒXë2¦k K0–&¯E {“­,£×a)ä³ß.—Œ¼/°€„°K+MºÒV÷Y/D}ƒ£"ú]åS!¯æ5þ:Q«Öç‘LLi÷þ{™“%^YïDc¥M÷Éi‚& gá«PGÅ$;¹Kĸc’iÇ37!;8×T3«&Ðf E¾Šù®t-°2reÉ¿ð'Cl¢Ššñ„A¤j´qr©Ös9Ípû–Ö,pèÚÌš·$žy!ÖŽ”ÿV£¾2P Ó¸ÙA}ûYâà™TJ±¨ 犮O-w7%(K|±B‚¸Ro¥~V}ÃíªÙL60…êR3ŽRÆšJ ™K󷢯a_aïÚUï£\ýqÝý(ÍŒ\ÛU ™ŽÆò^=M".JðÈlÿ¨9j“IIáŽ-hN](F.ji@"¸²,NÄú…Jðÿ¸(ÛCžÀÚ4mŽ„‘½™˜£~-…÷}Й–ŸœïÝÛB’ʘK‡Íà ‡2øJ;ý_ ¤‹.ôÆ×H?U±ÊÍSÔûPª`Ü ¼âÓО ç¨K+v“Ò&FͶêœÛ¡8ÿNLSw”V€=sv¨êðB^Wâþ3®[¿ áSÒ;óåœV˜’¶Ÿªî8¤!¿‡_U^²Ýƈ=Øák~ Àkˆ|Á÷ké~¥ kú2´ÏЍò(IªSAù´ç.ܽùùV›î/<æÉE4Ö3?e|c@Æ Ãƒ}·õ¦C/©«ˆÒÈT1GX65žyÒ?~²©½9î}É*~ ßÉëÇ×vÅè…$Ïoúæà%)Uˆ¾Â<œ4›Va9ýNÔ.ÿ-N:[ô¢9ß¡èó6ÈÝ—RŽ#pé ,=i¶!ÿ ¸ …dáOºãæAñ ËÇõª¢çÓ*Ÿ•Zé‰á-;o¬ÉËaPãÒP¼ =éÐ÷<‡pH¿&Ô­OtQ)mÍÞýYeàn›‹£Œ„¾(c!%‚YØu?‹«%*[€7±è•o…x§Ó W®­·OW6¯70ó£¾Óâ;¤U] µY˜“#‘çÉö³à#ªaæ´ÚQáùà~cÞgŽdC5âsIáàÂ=Û* B<}¯{m¹h:æt8—ÂCŽR‚ܺ³Fh¶oþj“œàŃ;8¡ê[óRˆR¤bå¿X™øðßë1Æ›vð¦Üò Àt¨º§¤_`~—ñ’µ óñµ!Ñ:ÓÝœ—R.€2paÉÅ_ÀœAl±¹5F$¸Ä¬¬@Kd\þlü'ÚÃCi`ó኿²õÄ,GˆÒ Vá­º™ÏtØØësÅg‘ä>©Û;çµÖœú:&½!ƒ q&v™±k>晩s6Ö`âˆ~¦ ý12쮵©\S®X‘å­kßîGbÆf‚‰ìÚï»`ü¦ãÙdŸË58€©~%¡mmçÿíë½3?C½ U7i9­ð@8ÑûQ‰£ ‘;hWö¦FÒÏ^“¡¢c_«gðŒŠk¾˜Õ¿acÎJ$Î\I­óÄ7ÿ j‰`ÖÖ o…÷¬ÅZ2’y…7KñP‰6à“ŠÐ7¸JþBÑV Ú'°J³öþòÀ¶Rï.bjˆpèFRF‡åR©•R_zõ'Þ EòÑ„s5v¾};ÂÕ¶ÙFÿûˉF©Í©§ô—$’êáuã*| ·,L£si·?|úgøÕPg—q9 ¾$ 3´“\Ném©•õúåŸV­=†Â”Ÿmô…Í’æýÃ…°3ßåÕá$¾+À9émªßVöá#p×ùÖsé¼KŸ³c˜‰|¡B¹E¶å6Ìh_ÜI})Óÿœ(y»ÚO…ÿ–Ï11Þ¥™9>/º‘F+•´B ¥ ¾”‹pGCBÝI¬êÖɆ‚ñoNS¨ë®öî»8Œ• ŽxÑúZl-‰“bk Ì»?õ]ššu¿ŸÝß™•Éý-Ùô¾òô~Ý·¢v&?]ìAvŠ#´r~ÂF«øPíë‰#sߊٛô£°ÍDÒöH–%%|äa–fr•#°n¡õÝz_`ñ§Ë¥v:'”)-t7#gmÛñöî/Œ‘[Ù\¶}bÛ4ñHlVV`ÿ bîè:ÿ¨ê¨ ʨÅw(¯ÏS^]NKaü÷a X>¹&½-/†#¡–rئ14˜²Ð¼lNòmä‰ ­Ž“x€ŠóèYªù ?†Òý†ÄÇpãñ®âª·Þ‹Jh¢ï 3ÿäénŠù5ci4e.E1³u_ý°IŒrʼ}"”ì­ˆªž¸ì]&)ÈW$ÌQø–Î;§Ï£»„˜ívRwbx~œv!BY s©mðvç½· á`åË­I†á\‰ÉŠÜí±¾œûäžš¿Ô-ÓÑ¢—BýC[€¹Xþ9læÙ·” aôðJÊL™G“[¢È@We ²à²qTr.„À€óСýTlF`KîÃÌ;1}5Í,Æ+ì ÜŠ|;†ƒ‰ÀÏ‚VÄ!„<sÁÊÙÊ”3c ¾>þ8%´ž™Añ`´è¬ÃЫ;úºþw? [Xq³l4ÍщÁŠæc©:~Dª9Î-!?‘IhùêãáìÞ²ƒèSöR´¨U‰õ%ÐÍ VúÉýtìH… ÿ·+‚v:ìp± ‚Ÿbò@›ŸÀGq¾1 ªý+`Ý|PÙMÞ¾¶ß ð¡ïš.b/35üm/0n[”+”ÖÚ—jÿÞ'~GšÏÕ6Ò’€ÌžF£|í_í˜oUÞ—Ø™B\qV} Û¦Œ4 t§äåU]áan$B ¿"«u¹âdÛ©ðEã\\hì¾-1'^o®MŸZ\â;Ôô—I¤ƒ k˜€ ­Ý¸­LfÇ0>Ñ_JתpKeþðJ6÷ÆÍ06Èlًٸr]Uå߇7¾€’ô#)ˆ 8¥MèJ3H½·®âé–„ØQ ó‹4ü+3pƒjû°´ï0K—üâ;$ß –óÊØïªÚâä€óE¤5ã")é€)Mv‹S1ˆc Š~¶5ÀØí"zø´—éJ°(‰öÎ=BŠSÞ ·?¾¯œž.üÊÇ‚5BÖ[q“‘ »_ÊgÑâêR#ØÌ¯mQÌ`pÃB¼ÓœA'NÖ“K–GL2e5C¹ÞsÈÉ)MàÉ‚|ž°Àf ¬}œD+BCvª•æÜê/„ ¸¬¡>ÈýŽã.oÔ’­Ê^ÕÌnð¬Q*çÖÑëÊËçê1¨ëúÿ‚™¦vÙI3kñåÅÐ¥‡5OÒ¦nš¿¥ Àú‘è&¶ÄÜþ¦äP3œšû±§; ³!T iQmá aˆ³æ?“m­jNÌa w$"Þð&›½nj)¶Ô-ö†ÐòøïfrºÞŒ c8ÚtÄ„0¥ÀðÒ¢â£[KÐÌ¥ä!Þ¢ëB²©äj¤}@>ÞÙ)½9¨|ד"£ÞæN»nì ž§štÅ{]¶>Ûù®·{e£Í—Á:¾ñeE‡å–7^îKjkÌxŒBdá¯U~Ŭ㩉Á¹1cÌ#fTxÿ”^ëjx;Õà“[š$|:s0Ê&‚°’ hªtàËœ1¥é`·Ÿþ=3ÇþOaHc°š[)à†¶Ò¿4vâ¸WFîW ³`WÔ‚ßÕX”^°“›ö]äU¶5ˆ!ty…ÏôYè­.éq?IŸ“—ñ¤¸åÎ $zæî C¡¨èNÆ*%û¹l{^³IÅéî—óŠ‹ÓV®~f>u,éÁÇøq­ý.j™9ïVOÒÐþ yƒÔüͳè­Ÿ2¹ƒ÷Ý¡öÄj:‘”É¥WÈ/,þÃfwÌ‘bNÚlË:E'ûÕèIù»“÷Ÿ"\ÇY}ŠG]lA¾õE`·ö”:™.cÀÔs'KÓÀÖì¶Ô°Hz¦®õä^ŒL¨¢ËsØ+õ˜Yè8üÍ$lµeÆFïk½»AŒ®­P(•i,l *2ŠÜxé8¸jæ\Ÿ·GÔÚ€áè3©¿îhRâz*•d¾¶: v¾þ¤‡Ú\+ЃLÕ~sÁJË]pƒM&4bìS§/´fÛÈVNôÞ·ßõæÙ2gƒ¨N¶v­ÖØûœhµgì»ú‹ì¶êD¿_ú2VmÏK'îbÇžQQDê( B†+wXų>‡P„Ú|—Ì!®¸™Sv`{ɧue^~wY¯µ0¸–AC.q.›IiQ¯Å•éÖÓ@’â[úQR¸| ذ\úÃwY`ãôº.fá)Á5£Ýz£î¬€å –>ŠfW¹…¼àGZ(Oœbä¿\FÕr–³¾Vi˺t:¥Òrx2:–Š®ht´°ÛyÀK(×,¯Ïõ‡52G[­`©‚~:yoÕÞzM³2ß¶®Òê“  #NÉ,yªåZuf3[NÖ›Ï`ÔT.t ×äU¡`Å €UÏbæí`!è#z©èâξÊE1ÃŽ]&èâÄÅÃh~\|~øñb¤ÄXõ„4ÍÏ|ŠûGð§“,ü9.™J hUú@ñNßUˆ…àepCºm(+øìXÇ€ab:¨.t`¨ß˜WZ) ¹¼«ßz«f z™/®CB‘ÊðLo¯Ñ¤Ò%ŸÅÈJ!Š|LRRðC?\Ç뜤’=¨»g÷ÆÜ+ó¯„ÖÕ|G±¼î›ø_4À¡»àÆ n+­Ä°2ð‚C¯_ ÎÇóíKv ¯Õo-t\\ƒ¹9¨‘N¯ ò{8–)¼ ¼·iº «’~Bö‘n*Õö VÿŽëG¾Ðûõµ»œ\™é~¨VÌzðiº¸vØ«{eo ã 7» “‰ Q!¾{‡ý<¡ËZ¨µi¹#5cU¿/†¢Vqõ[Ñr¬n3ìñ-²*)Û ’´S~ŠzK‘kNÅ$⑊pŽCè<>èMC¥ý:wúM­~ñtO‘b͇O^:0.t³zo‡:M„¿jÙ(®Y6g° Ó¦× ! Ïð®ïBÐЗf¤*=úQî9 Ïgv†““–FÂrC ·GÐb?*PïuÜ*ÌìÔˆ M”æ1ä1FA±Hq†çñÏ!"ü:aíµ„ûp,LJf„!´ú¡RiZc9£Ê˜ùY´ù¨!)XóÓgÏ0vNÞÔl¯ÞDÑŠ,÷wÈfê ‘‹Ív‡{Ü*%HºCæ=­Çûî\Mª|À»jÔnBrì^s®Îcx„±ÕÑ1š¹-MºèTò'0è`ŒYûhðÀ‡ÎJNRÆ÷úˆø>ƒÔ¡—ÃA½¯#zþÎOÆâ€Ôý@!|cVçÀ@z³ä,mM6@Ê:JOšæ*襸S*YÅêɑh´Ö°C ÍSÝœtív'¹yg’+æ'(Μ­9œä»ó2BÊ8.-²FàÈÞmù; ÃÍl2ÊÏÝÑËG­û VïíÏÚÔtPÓ:%oµA”"F! Ö'’I“N +ÅÝ_ Œ4\â½Ó͉Ê&›à/Qµ‘e°C8„î”ÎÃÇ·lÜ•2Õí¿eñç„ ‡*B_†%à²Áß“A@ÖΔAÍý öÿû‚jLù8Fb®.u¥|E@·V¢êÆ#—ý.1´€Š(¿r¶ðw(ç}Â͹ ïåÀ8ºcÌsžâ Š1Ô³ª™NŠé>¶Nåè>@@ާʤaQ¿L @z’§h@ž_ÅTè*,í«1â3äT2¦ÎœV”Þî:¾9Â!YüÁï¤ÌÓri”AwŸ[äN µŽÜÞä¤Y§ÇÜ{ÒÛø•~ ðnÇ+¹{çý¨ˆªÜ¨º?þ QÍX!vÊÂMR”éõ]!–‚öïi[¨ 5ì–FY…ÃSéZäñ³ú¹»Þ0—}œ™ÜÇCøÁ«º^aO)œņ©~¾-©‚KV ¯ÕÍzüÓ Š8$m@àXT‰tZF$ÀŠž¥‡Øÿ*WF<©"ª| W«Ú¨•”wJw'OÖ̹¬A¨ÞfÅÑeߥ™®þ_ˆé Ì*~ ×¥¦¾tGa~›r¡š|C…Þ÷œƒaðYÊ >q²ý\uf7-ê7Y±#›öXRkåÞEîÕM|œ·âv2Ö/muUz"Ÿ[ƒ‰¦ù¥êTJ°¹1†}½"‡Yp,9Ní§¥~ì9CÍU£ùÞ@´tºá„ÌäLǡ˴:ÅO»­©ªd õªU¾«.>_ô6®=±‡‡æÀU5þ^ûÙÊæ2çLÚjÏ”åŒJü26a¿¹u|ºƒÑˆí° »¯Ù(»y#â KrÀ¾PœUg#ú5ÐÙ×Í D(QôÖZì”¶¤O±Ñq´2˜ëØç{Ô·úí‡+ŸGqk±˜-Õ}l²@~âºl‡×7äË*E x+ þÐJi+h­û¹.-ˆÍ5ª\.¥€‚äº¶š…™ ~ˆ[×¹ÔŽª±î¿y,Üc§_‚ˆ…4'eOó9²…ÄšŽ‰Eèû)q‰¤®=hÔÐ@X+ã«B˜sŸn¯Å‹<Ï^xb9³0Ým‰SkaV® |ÉjL˜/»7âUù­x &Ó5´“#‰„jªŸy™KXAåô…Ÿäï±k¢äJVoV®¨$b1XNj|w8Š©‡²f*p`«K5ì´Ù—ÃÆå]¨! ÖºÇvEâm VbH”Ä(ŠÒ“³[MP²6„›ý¶AÔ¸I|±9“îx)æ6ñ] /x$ ÖöRáQÜÆ¬[‰£ÖÀ4["ôY!Ü'hÓ-BœEàÆù㸌mAªÑä€þíî%–kÎn¹ïÅcÐWÔ¶Ý:(&OÞ§¡P“ÄeÜûê.–Mò8²_0Ç‹M=c¾í±•jŒÝF \v8/bÕ äpÏù„ Tv>³]úZË„û•­õ•¤}?¥oW.!Ü¢\†µ¼fD£xôT^E`H–ÿBÞžz€€LÓUò4Ž"}WxN…Ðø¯ð&Œp廬EY °6jU($}&{ä|¤GR«¬íør^LZ¹…Rãúãx}™ ¾2€ÖצS±WÎÌ94ü5Ÿ'(áCž–;áßá3êàS¿…9Äí'êä7½.ǧ@åê(›º½™öô!Pm"U÷vÇòÚo;#«=ãåÕ'§C¿ÄxÒ3ĸªŒxS|Ù™?ª°þm…á¶L‹å¬sçÖZåíM9„‡o|«²Y‘<ÛÞÈ0,[OE”áN É[éÖq8Æ„ÙsS) ‰)ƒ^Êo¦Ì`hôÆøGIWí?^jØ M™ÍÏWÉÜM·(º EÀâýWgÖhYe‡yáõl]Šé¬÷r [й!¥6Kí«3ˆªÕ¥<Û¶8„Hä`X/žè¼lÓ|8ãø…+íSx¯¬õ†5øº²6ãè¶Ýi€ƒòoŽYªÿRd‹±m͘óÛÎæGp ­-§Š^ÎQp}xéÅ9 .†Ñ##!©p‡$2‡î°ê{âF¶H®Ÿ6Ø «aÓfÇZ™ [+CZ;…i6­‘ªÑtU.ÅÍv³!·Q‰Yz™Ô T°n* ¯ê!R<oö¡?1ç6wõ·Î‘¿z£¥¾4¼ ^ÆÕ “¹†î;éG6îÌ ã®PIÛgÕQ^T(ΘXÆ>'÷$[âšh`£„ÛÁ ,Õ«úU~´ØÒ MŠ»ºS9ØHÆ–í%¡V­ú§tåòÅa±m¶{áà{Ó{zÖDY¾ºä×Û˜œ‚Gú¿=6dð–šÉ¶­›—¾Êmõœ+Ýhø'š9´eß,ìí3©ëWTüÆ %«˜µµÂBŒQ0g‹‘¾´vCßÉê¯ÞR¡öPï?¥KÝ[&!Çè•ýÚ'†VÙ»Ò,˜V@Žû‰´ˆ•-x¯H½‹…VB0òK_£T7Š•²Eßë^aköµöiáë¹½Ò'aŒû¥Ó8>&û‰¶ÅAôâUÏ-“sZäΧ¡H!ï*Ùß ›|ñƒ|s ^b{þc\¼oŽéîXËÿjǯ]€B ‘ùó iˆ}HÙÃt7qå½Åõ•Õy?Ï^¸ÜÅOtSd€ÓuÍÄuvLÑ¿ó`´­‘³w&§«Ã¥{(Yð½+*Ñ·þ¨c»@ 1óÛÚu'׌JŠŠ#<^Ø‘€]$)«óõü|§cry±p¼Ñ‹„k^qeâ“ÂwÒû[½Ù4@H­eOÔGõÃ{Ãä-ÔZ„‹ IyGMù ¯‘}õØu•Ñ™–tJ¢Ýç¥Ãl—m$î`Ì %žñ{Š[^‘+2ÍîI³ùð–‰æ-šN7´8-4‡M>/p2GK=^ðóízÏÁv'Õmo¸&c“v¢Ôæ"X(Ê¥š‚/w‰¹gr¢ïÈ#ÑØ æëšˆ1õ:Ã_Ìm˜!<‹½¦mÜÆ´Ò©ÂqÖ()éG§ˆC0Ƹâ){Û®¶µFá ð0ÒÔ¼áž4dÈŒÊf]×5&öRG'(º5V€ìÎ…Ø`¥rûEAëizCðgìú¥é/w«ƒnhà8QÔks>h+Û”,˜^7SÊsñ™’EXÆMì¹o—8Ü5yEÄIä\Ã>vËrúú†xc‘’pf«æ$y=¹1i!wýt7¨lY—̮뫬@Ÿ@(GAïLÕc‚«d J$½u‹ Ý2nV\ãêÜ$iOo:+Î N•Î,Šçs–0ªÞÈž‰áú¿@dógîJlµ]NŠž—峤ÈZKí1UhVøçñæwI‹® Æð…øî¿JÇŸ¤+Dù¥9bmb” £×С+ÕºbÑ‚ÏÚŠ‚‹Ö— –»FÈ-æ=|/¤á§37ÝÑ^ôðV°E€µ^¦ƒŒ>s V¿ð°3ÜR‰áÉŠª£ëÚ4º…UXɧ{ŽiY–û­6%s–[I }ÝD<'Ï'5ν«ËЀb½ðp8êRÐÂ6,I s¤ü!Ä T_^Ó…éhò÷%0° ™/âäû²¬2æ§&·_¦ÆD®è%Ô°´¬”  3{õE-tqcí¤¬‡|‚‡®rûÚt/¤dtLPL’"½úmƒ&œ°šÕ8¼œÕ Ç:ü%ᚈšÖ§ð‘¢bŠã~•´ÂèU~};JùþÎ^å8l^"MpêÅMèÏ\yZò§ úPº9t™°d#ˢѰD0\#&tá½Þ‹"‹ sÝ‚{œRE³H–h™ÂÃÓ£Qúÿ/+ïM6ðP:yïθUJY²‹2ž4WŒjtžÅùð£®msåÓš$|ýŸ²$Íj"Ùõ×°~e±7ÖV‡xŸ°Õò´7& ëÉqN¹ûYhÚðÿûk½1‹¹yû,V 0Ñ{Ÿ|#©«ÅàL¤,žCæ`Uš§µ6!åÔ‡Ë2‘P¢ò]²“ÞëÓ8ï¸ÖnKÜ]ð-sxFlÛ#ã]7þÙü&Bbn¢œ&Eß[éÛÖVéêíºTH§ÁË YÉLoe7©Þ«Õnñv@HJ8iü»×Ø€ÓVi›öó¦Û›‹Pã͇cîP›VKîƒ>::\bˆ.Ç}kÝÝšÿijå«FKíï3AÔ§ñÑê~ÛÖêqcÝbT1Õý ÈòŠK/‚P]D‘¼€÷03Hõ^§ÚeÍŠ´×˳…–k‰ß¡83Y -¥œ‡—Ä>Åî—^ð‚ Ç 8ç0æN“ö¥C•,¥ŽöóÝö}wBÊ‚Í4Y.x—û†IÀSÞáv¯R)oÕ ¢çXå¯f- ÙªÐöʼë-ÓqØê¸_”l§›³9,¶ö4,[ÿQH~ì®°µ—¦g›¹ÆÍ36ñ"­3¯4*>ÿž“SJnüìÎûû’Ǩ;öÜX¶Æg;¼Är…u8=YÄ@ÇVøO_rû–¡‹ßl,øäևȪ¹•¦— ôùj7áùˆ¶ž™Î“`­žy¤°¡¤=Ô¾%vJ®­ªmZK˜ñ±/Í”U+>gÐñ¬Fà#ÄÐe¦ËæÄRήn伋ÄÝð]kK˜sãr››l:‡ç.TÎìÇG–«‘A+7§%ìøo›åÔ˜Œœ?tgðÀVs~]îà£CH‘'ÄE9’·ê©pÿÅÊe%§$/‹âœsÌ72ûB÷IV»!DVåÿ…€û§Äz–L=c{Œ/ðB?¸°ê»v¤k$K×ìØ†dFïÚ/~|9 ô¬å„SYÝA±c”Dܺâ? ¡…¯‹Ñû’ø€WWŒ1†2SÑ‹–JïC”§Íì+d…È‘9ÿÔŒrÛùiú¦Ñd~”RÅÑ/XÁç)ò$ìˆÑˆ¢°9èÓþÕþ”?‰nÝýÒîÏf?9| Öx}‹“Š>Ëtô¡¥\Ã0çÄ@Ñ.Ê_Öæ\Û‘¯ˆ’¯ê“'A~ ÏÑB_µ¹&MlG©q‹ÙÜžœË ·‰Kž#ôþGz²¦éwìºm%ðõBîHü× ž¿H¤Áo°9NÁ¥T­SLJ¼†5ú©ÅØx:ùˆî®íé¯Åú¤ª{—8 ^œÅÓ•É Ñõ@½[ýÒ„)üP´˜Äõduäuää­Ýwà¬Ð”é±H’3Œ³4P«öüç]jÒ÷]C« 0ƒÌ˜GþôõÜ#u¶Øtþ¦eØI¤EO@àùÒâÝÊrI¨uÞ+¶EQð¶"m,ÈMåJ"NK–h›Ýq|ζ¨Ž=›Â+ KõšQ¾/Ø’ùar"ƒÛ©èãÄI“(¢Ð:`µÜ¦\¸ØåI—uÞHÖC©.d§"àâõ³Eë'D~ ÎçQ³àƒ¦5BÝȫĕDHx¹¯z(ŽŒò¤ΖW©Éìvja{ÌAfLfÃìë7 Й*ŸžÓÍ);cM¨,‘ ·,Œï~N[é×”Yšµcž+âÖé8j2Ú¿9™Ñ˪7å1®þÌÉψRò-wäaC;—ùd§~"ñü¯þl• ƃ‘aÜVÔý{Åñ 8Ê­jŸ¼‰Ì@AtW‰pp[J†<ÿU$ ¬f}ƒÁ ý~#ít:t¬ yr|· L7³eÃx&‘Ún{„_ÚUlÎ.²YÝ?±S•< ªç¦7õˆ×¢Ãš8Þ7†ô¾‰úÃñJ’ÚyòK ‰qUû)´›áV×–ä¦T9?÷Ä$3Õ/û1Š–v@6Rð^œ°YÉU{øÿì¹îǯ/àÕ,gB|rȸ†ÿ->¬” ¾\¹w@éÛjc+T=%Œ¨Ö¯¾öÇ‹i<žzÑ“8*Y¯ÿ¥~Ðfœn}±WÇE…ˆfDp¯•¢Ú®dH­Ò²ýpf`1¦Ãñ©-,»ço[l¡EßJX2a<“5%|têÒÕYòn¡ J@‚©i6f˜©5å Â6CjóÜ ¼Ý¬ïCššscE@YQbƒ0>J’…H‘‚ÀTœ¸ûÊ s\&zú9ø ?¦tõú Ë_ #Ú䨺iÉ2pr0°rJŽG¨GYTDë4è¦Ôfò,ËLq—VíE؃8kó›†..K}%8ÝcKd÷_¯'8O6Y+•—•ÉãYEªË[û6N'ž‰g æÒå-©›T!.¢ÑcÉbvT‚G—“¤–e“ªyé‡ÄN@eÛóeX˜H·^LP›n†BpAeõ_g{=3[G 7Ðoú=Tâ´o¿cÒ硟ÇAe@´½M†¡¡›:†DÌ#õ8x'¬ul/¢wâ}¹ëµ~w+àÒ¯·{¼¸-•×X¯-Ôà/¾&ÁÇæE­"Ÿ—[·ÿ€ž ÉGÞDCµÑ.+8*Æ¢iWý$‡óç{¨x}iZH5³Éw-Wö¡‡m-HáioÕ¡½´šÆ«$ýâ¬×KQ«²Út/j(úßâ–¨“Õ†£ôy9|06Úig%ž{‡Q›æWW& ò4‚®gØ–OŸ· ÜS¸s𵹋{kÐâ² R\_ò6^Å(ì¯zpG“/×6i†~¹Ù|•‘" 7æ`}á„?*èþ™ñÄ!ÆAŒïÃ8¬òåWOõ(Õë/û-s‡@`b`k‰ì1™FŽ»/m±òJúδSºƒžì¨¨eÛª¯iÑ™Õu.¬nD¦EHQÞ#9`§¶Â) Vþ²kÒ»­ýŽâ 7þáKY©¿SÙˆÿø5'ê)Q‘‰âqu#p+ûVep9e‚¼W"m#5ñÏÅy½ª>ÕŒKõš©hŒ= YƒÔÈçjß:ÿ·”wÒÅzÄT‹rðAìµQÔ«ºD÷u:&z«aPgJ„yçþ@º §p´B•çBjv”L(†SÝãÀðÚŸ‘hNüå»Ü„KÁ ×*n6¶‘ €±}Íù+G!§`ÝVµ}{â ½À«óiÇ– Uº5qÞ)ûp:¯º²d•ˆñàï¬xcK#$UoUbؾÖ{o`cKmö­÷x4x_¿Õîå³S¼m–Cæ±Ë&8O5ú]Õ”WŽM&4[ß,5â…¨[¯2“BÝH;›H'o‚Qûz¦‰N§ý-® ™2)U±fü˜@7;5l¿‘¨ºfZE$•¬ŒíP$6²‡Ë>©+¯NT|]ÈÒ`Æ']Ùžf®¸N…§<ÞR$3>úDRž(3ë€æcUˆ4.øš5ïEK6Ð €ÀoØH“§b¢äHªõùŠ ÁOÑQ69} ž“&Ù"—¥½u€ò6:~Њúž.óä&†=ÐÉß b‹¿œWKQÍËÊ úQ Y¹°$ñˆnöODsǶ `”5Žâ7øƒ´Ç¡¨ ~ìCmø¾¡{aqÖ}öO®Û”j­8Ñm~¼] t³`ƒi¨ý–÷YsNs„€nýEÙxŽYÊîæ_™!}$lk»ÇyøœÐƒè'Þ3Š«djÌ2Sn¸7»%ž«ùºløØÿ”•sióÇô3Œœñ²þ¡žç¶¶¤´f™A¹U‹Û~bJ\B˜ú|‰-Vj.T]‹bCe0‘ìû¡U­B£gê¼§Ûµ4¸¼ÑïÚµ »VR[sÐIñFi,ι«Z”EuxSù%X=|›Ê¥½¢Æ•83ówûìY#Ö`t jÊG7›z/6m»?ú‚~A×@yQ#Õ—Œ+ˆ|rUï­.wʇgÉÅÎBáေ>‘ÒV§rÈ ¿3&rèñòéDÑÆßP¢o? ¥zxš¯,È{™‚w>HÜáZ0y‡"5tÎñ9·!a ¬(´¯¥ ü±*_ß\| +{+ÔÌÝ”B^Ü–ìíHñ˜¥nxYùôœìlÐ0a±&ãSf1ùYU”C¥Omô˜*Q4²ÉúÆ`ãö¿f”K'”É”£ù‚ö6wÈùçÂó¶‘<áÊšè›üý]6±ů#öë[YgŠ7 W%ðÇÿeŽ|j=-, ­Ó¿² Þ+k73É­JõÔjÑ`î//vo2­2HÌzÖV ®FÍä~ð“*QV"O|Ù$+¿º¢k»ÚÉŠÈ;Ef»7±A˜ôåšÖ`Kd4@»œvýT[£5sHYJÆOrc?&ámð{C¦hà4¯¹¬¸ÆƒBÆS!oF++Ø^Р¤ësÛxÜ"?™ô¦/¢„Iü?“å«SÊzY9Wý¸e>w¿LÂùdÙ4s-âµî¡ÐÂP¾¤¢¬Q}ÅJÓÙ­`âdoß‘w8èm Äñºâ ïò#K;¹o÷ÔŸ&mI<Ód_ûí¥ Î ˜‘O}³˜Þ³’P/uÄÀݧ¨ßº&{à¢cWû1Ð~Aĸè§΀&“„Ξë6ìee3)Ñ´‰–üÜØ[Ú¹í#üGÊ‚¡'ï‡J‹qH—Š?t¢ Âež¶¡rŠxñ‚½…y—† ,´[&A(Ð,£Œ€ºh±CÉ}œ9£1e@¬Ñ7Wݽ'b›.¤‰[œÚªËPtqBÏ¥ ){Ò0Éåàšµô^U]¯Eâ4¨õÉž_UZAúJ о\MªŸ@2'¿A„Û(AønxÂ@‚ ¬¼ÿ­¦¦¨Bh'Ñ!æLë‡_ÂÃÔ6X¨(µ ªuhT™lDÇžIxÈb.x!gZÇf‰õOÌDÑm1?&›Vó+äújk×Y;Ìqùí ¡|ñ’ÉRþéª#GþLN!ѪYL^[Æ`øʽlŒ4q §IÙÐ̤¿õrrk0øfX/¡˜4v]|!KZJ÷\ÒqvºŽÎÿ`LG˪·xó+6NwÃw•ôÈû­Ý{’§ë¨xäø`Q8cUÇΗVC= YèQý–J¿Z%FÔH8ús¶>¹%v†ô_¹ËÇõ8ç2¹²ÒبëEgŸ8²6š“ŽKÖ`¤ÕæÀ¡RvG÷'þ^õî1Ô+O[õVy¿* W†'³¡£m¦8Öͤ”Œ0e;d€IC%=¬ç¿XbÓûª–ÑÔ˲›ø_Úasm´~˜UõO ZF6j¬GÂïØX¼)pøi‡uIyˆvGy~.Ê U[m6DvŽáÜ‹ù©–ÒI1Œ}‘Œ ÕžÀêRD’£É<ÇÚíaJáFfÃ0o°O†øÕÏÐÞ_™¹ ¹dÞÝo¨"êóI¶8›·¦(Ò¢ºSå@Í8&ETQÀȹGR GÞ>æÔå­ðœCÏŽó-M¥Am°jS ácÒAÐþö.ÜÂQõîwW*wóä s6/ˆp)Ÿwr›©¯èB±'ÜwiŸaÞseY‚®¨/rÃ\}~W½ÕíL¢¨ƒ@±a7<î¥rÔþd<^ùjÕ‚!;yH@kï+(ËݺaØg½»Y;±®$fÊ:ªí²gÏW—CƒY2OxoçhÚb'7’ÙÒsBƒB6ðÔq¦‹<ãçÅ,}:ÜÅ64!Cå‹i"XY³˜µÄj¼È ZÛ>¬Zãí&^󆲯s=ŽR,ºU8¥K©Åýɳ ”ãpËs­·æ>ºÕm1¨›é`9Ðô﯑­G4‹9=-¾À5ÂômJORÉýÖì~÷cÏB>†R ë(°V-°ó(´ßËF–³|êÕæû ßÝ-V®¾9£Kùo]·Ã(’á$•G‹·Ò[иÛûN_Ö#ó.Ï&o¥ãq3x3š PAX–Ïæ@x½£ø«LÞ3tØ ÆÕò‡ L}¼*-Ì« ”˜:Òu¨ÍÓêÃ@îAo¿ŸçÍaÍìýãxŽÉ¢uÙõt?¶œ oJ<[8uÌ~Jž~³ÍƒvxË.|޵›ÏÂjbå-ð‰ üÈEs¬ðþŠH`õɲ1DÊ¡ÄñœÂê´/á»i“S˜|Á@[–qÎJ éÕ‡çT„v>ø•èÆÏKÉ; É«~G»Ÿ¬6ü‚°ãH~Þ -ÍA ƒmT”²É—Äa÷ìºxì9¥UuË…®S"XàæY• Þ„‚Û¯<椤>×[ª¦1Ôø Ê?y9TÛ *ú1 ÇtîTË»Q9à󖧨۲•j‡:ê<÷¸“€ô$Íý·èTïྠ{šÅ”;þ9CFK wbÙ7(Ü!ÝÉù|ÂÕÇó:ðŸÁ;$/\ó§Wlj¯QâtÇwˆ.Ôá²˜Ê Æ‹bÿsaν÷ çNÕl·bykð¦w¨dOZ†R3U«7‹ u®¨Í=s—wb,²`ƒ$©Ò¬ ã èw½3´åTùk”kÆ•½ÇÜÚ±e—jéðêgh1XÑc ’-× Zµ«Ã½’{Üz+ÇhC°²ÁcÆw8áÏÝ"g¿B3DzhcP¢Ë"¥‹‡óÅæÙ9#†ÂÄ0O@ßÌð÷X ß}‡ïpcvfø4’Ùd]f(pÆþã‹ ?ËDÄ>:­¥Æ—¹I7×VÒÚ§×TíxTlD‡¶ú³Äª?h‡ä§â °¨úÏ5èÉ6):ññnÿâFþô37¦¾ “ñêf‡ì>`Ô¥|¼ød‹UqóÍ"qÄLÁ)û1.dŽÙ0 W:<R¦ 3£Óáp’ 3·”2Óú56»¡ýfb¸˜ŒPÜ4EM4œ‰¬±‡Öù•z>sl›—‡©d@ÇÁI5®Q}ü¦ý*3HmF&8NoÙ /Žß_x' Rk´A0ükƉ·Z*¼o­zCDDüÍ||ùèž8£€;—¿ ƒt:˜Fí'À‘‚ÿ€‹ $RI…íšÎ Ø -›jôË\¶ Â?Ëì饊^¯Ö7¡mP#LŽÐu»h—S~À·|×JVj„¢ÑØÒ©iÄ~*•ßj@¦{Ž7¡-î?˜:Ueü3‰Qƒ2#ª¨SÒXZµ•VW KŒ‡µC€Ôå7Ÿ­t¦k¡«Œò~ Ñ_1&ô ,Y0`… pÝé³jŒqÝŸ§2ð3Ùmtà®– ªò Š’È¾üV&˜Êõ[®”pA fï«æŒÿ…ùzŽ7p]Æ>Ýå{|¬Ãz>1› ·¬¿HüÝ`{®ÄS̹éÚFꮽL¸ß&A"ÛœÔ 8¦IÈTv¶èì¡ÄKä1˜*=®ßaÀίî¯Ù´ˆ¿VëC–™N—þp ÂèÂ&>p ½¡W'›"ÁI‚ ±â«¥mµ¦:6Ä׈]t…\×p&£[I"âLµ¤£=é5^r¶–-Ñ/xÜЗr±2Vñ~kIâ ™ù°pÖ_\PÐ×ð¶þ£}_içq»sã†TÈ™D–. T»Ÿâ‚á?@íÂ/)Ù›.@¹·~aùÈ}4ËŒÈ~e×Z>‰Lzòvà "†7<ÊVLjzè’®DòïEŒDbSÇd:U`Q%z˜ÄŶWW”ß¿ËÁìÖùèïIHT{Ò)™j³í€`Û˜šóõ8"êµ·ýRZ¼¸ öˆ†y”î i(±-“SRM5Œ;—þ<7»9)v‹2”íë•P=˜¨¡½ÿRá¢zöð×þ†bÞÿ™xYBNýV½wÆÉ ¯6/ÝÎ/Æ>Àá©pù]z!wN_–݆9 ¤œä[‚p,C‘EiVÝÒm ÿâ¿¥ôÁºoê$€Rkžë¹XðÁ’Ï/½ÁM®¦`ª,Ÿz„×Ó›t¼—Ϙ/¦So-Më÷E–Åã8†]Kgn@ãüÐOä;»,Ë~!j¬:7±‚"¹T 0„µ›cYy¶ª&`><Žzݦû·oYv“ äåM¥¨w§ËèÍZ¶ Y,"ŠœQéêá™ !oÀ'Y.!í¤e/ЊO²$æ‘™)è“óç=ïÒ˜ÒHƒb͸T&ý@«ÿvˆ¢~ ø1cç=w/b©¨®çíÁœ€0AÚ¯JÎK”?$i(ÞxA‘‡¬Õ{Ã+@¤ ]³°!ha«ÉN&­Y^5‚ù‚Ã5EL¿“BóÐÔ ¨i®l~åÑ´Ói¤{Šx²GBÆØ™ôœ$ò·òXöQV¯„=#£sþÿOÙ*Å›HÈvˆtpcàl«ñWßhâ½Uë†Íæ›[™g›8C½ J5cý…šZà“á¢ý½É’<éQy~Ê´›¢IéüˆIÈâs‘XžA_ŧ×Þó…Uü¬×”¹†™ÒòD=ðª®À€îè9R`Z¶Öèm³åÑ$Ðâ¬'J¾€QÐ&ähÿ¡À8[ì¾>>U±Ì‘[ŠF V:iI¬|}³sîTÏ‘r%±õŸþÑ8÷oÏ ÿó¾˜ÙL4½¹T×.ý@òLq´59‡…Ö3 ¯ ñ „‰+ÕVÀd p>8¤éá/j« ø[i²IF<3¹{(È|`oà†Z¢N„÷XzwñáÈÏß‹†6 îSÚ€ÁÞ¸ŒEVù´ šæ®íä׈¸qÎù3‰ø/JàñcÍYúìj^=ËŠÞYÝ»p¤»O ?d »uŽ=ü¢Õ Û´%ø ÙãP}„óíÅgÇQq œ±½êmuKºÿû©q¦•¼ŒŒ“Í¥,K-ý£Ž÷øà{z#èlpUV≠‰•‘‹ŠX_Û*eDÜu d#wÎyŽôq­×Èþbåä{ÅÿÈ/q•W‚¹×줇µÔ­Çä/[rT`œvg÷…i)”öq9ï¿YºÉ>ëàÕ¹­-á|§¥Ï0êÎw˱ïä`¾Å‹ÉLm$šú$F4¶õÛU†kTÏ Z4€‡]G!LÑŸ`¦.é:Ò‘TûšÔ5vÉͲÎö”;ËÉ -x¨˜’{jsœv»Ën{÷{PâË%Î/±ºÙX°*öë„B°i ¿RÜQ/ÝK 'b6€÷·íðéõ´voÈ&öƒÊgY A:¬úßO;™èMZc¢‘ÈuåW±³§À8¯STï„«+õQʨ)›øä1•òoÉwŠêhø¬å,Ñ’þZ­gi £™åjpWÐGåÌRVýIñ_HΡk< x `ç+9JhQ}†¸øHé.íJ·‚…”*F ‰¤H±Ã…!¦o|èbv¥Go`äó™[ä˜Â”¾íi˜Å€‘Ù ;f,T%õ‹ÌÉúNûì—ËÑVòü%mp¤» JúÓ‚bóî— måìV쯂pzcÅE¼SϺ~8òG™ Û½¹ÁN[aÆNîaé(‚¦~)Ñ,K:ýŠ\•hVØÚôö Îþ·±-‹8ÂgXXà€"ÜVïNð÷^ŽÒÎæˆ—ccô{öï+N• Y:&Ûô`-œj¥Ð°ÞÊоô£îÁPèwÒ8n;¿·BÝ·þÀÄ»>èC0¯yi—øÚú8~„Š1ÍùD°R6rPv”é6ZY! °=¼áÁ1(Tÿ'¼ükÔî*ã![ a=º}¬µ'¹Û{#‚lÊsÈuaP±*8~É.“ò’ck?aè`j*^ Xصh 9y‘×§"ª|Ñaº?Aì{]5NV¨x§sþ÷wÃwu"A8„•‚Ô»CÐEmýåìú­ªrgØ• sû4ò-6N²PêÇä’X-ksYci³¸8ö§ ­êP0¿Q wŒ®3dLê «U€SKœôZçθ¶ÁjõþÑ,‘£q£ô™M|HB]=·Jºá]¸¿ÚêÎúeùOæ–E—gè»Ü@ÉEº†¥˜ÐÂTÈ}mXñÐ@ Æ Œ`´Ij3 ä¸Þ©^tc¾Âíõ•9yÓæ_¢[« :}ù¹÷ö£Kƒ}}¬e¦g›{ OB€€ðT%h6ŒÁâ&vñÆutDA2Êc›6ky³W¹[tEb8®ÔÓ ãƒè»{™Â "¡;¨2äBÐÿŽ_ž›¨«..c—Ö¶Û—ì8 póBë ŒPYŧÓHrÿ ÉÜ“4,0ÌÏ~žä¡ß9vÝ\h™sÊhÔ$žæ*aXÅiÛ˰ø%µ-*á”ß¶1bý÷><86×˵™X_ÂÉ.k±ä$Kæp¡—þî¢Ñ uµrD~Æç\ É‰§\*3àof…½“T¬íK}}¤n‹møm‹m|.ªÞ| ’ÛP4{îù^:Jx´Êðaȸž¶KbÄÊ0S’kô5 6.Ù¦ä~¹¤ Ú1#/e~¢–^Ú³( fæŸÝìÍY« LjýtµË2ij–ŒÂå.^t‚ÑlžÚËIË™¼ÏNE۽¼.d•qg…JTBÁX~¢lêÙìtÐ׸âðÇš_!–8ê‰eÆOÏ@ûrX¦­ý1hH%\3q,¨!Tªc$¹§ZT±êèæw¹U$«diþªDª¡¥¡dñ-;”KÚ@a,H^¦0ˆ¶©}ö!¤Ðf_ó÷°”X=‚5JfAY“ê­éÙŽ6á Ù誘h×±¼ÅtŽþ*AQR`ÔÝ/¬Z­PÉ€EÝÔ«s>@ü’ªˆ¶ûÀÿO+þñqé8ny.ÜÿíL¯tUTfYÍ…³(á/ßòZòäçR£¼–-cV1vºµhÖ›õõg1yÅå£iù;ý¿|Å¡ #€ÂÉj8ÀÙ …ÂFVs d™u!ßqDŸ :×{»‹w.àl”šAåqà w;%ÏÞ´>6ÁËù¸Ô°.vv·Ïì? v±huœºSYÇ}Þ#KÒµôñ™j?ëï|®pÜ霜3º¢Î|_"ú~®‘^IÑd›)¡|€÷…£ßÐæBHê½ÇqE+Uxc烚†žVè¹¹†¦FÊhˆ˜½Ù'i&Ù¥¿r;;±½öîy¡Õ²¿×û¨Œç)_Ù.÷ƒË~¨£ÃŒ’pý’¯A0×NkŸ¤öXZ;¯[$â¿l÷X'Ç+pó}4Rä×éRoæ©•«Û¦iT¼÷+êÈ¿¨‹fMdБßáÒñ›«¬ q&?¯r¹uà rÅ'x>™ƺÉW‘ÓåœT<#Žß®øF¼.¨¥SŽOŽ×Á2)¨M@)€¶€õñàÇ8œå*˜ï ƒƒÇÔvÁrô†.àŠHp¹K0Ù¦`_dÔ O e§S‹Ü8!ÃŽ{DD»¯ÄMiò#= ®oMÐ_á6ï-a#» D™· .·›Çà»ÅˆÞ+¡š‹Sá]…Ü5Q3½~:@$êP0×¥Â#mÎg¿­Zűò×4¸¬zP>¥‰ž^EˆûN´6 `|÷ToïJJ#”Fkës'5˜*¢Tà$g\Š{Uö׺µÝÄ8´5cÏÛÇš49t…È©«|.Ó)¶8˜Ødê’Ó0Õ•Ú_ÖLšj”äòØô±ƒ±]Ô-FP„MÑ—60¦ÉH:ð–[;‹å§s>f’ôËb¤õ 0“À8Áûª£çS–8 ZŒLo¸wí§¯œaJò_=+h•¹\‘R{ÐÈ:<ÏÓG¨c G-?á~ÿ‘lO)Ì8¤­â’¼?Eœ ~¬rì <´JÛ;oâü9žBÀÊJlm\hÉä—CFBÙšÅyk—møYk”îAò·¯ r0.žØ½Ë 0âù¿nzh? åm,kвÆê~TPþj« >“"“ˆ“•_æË@)wrÆ¡2Õµ"ËÍ8W}²¯2gÖXR/¥–ÈÇB°½³ï2"sÑ uå ks¼äˆœ¾+¶„ ÄøS81•0ìãºêEDÈeÑ _5ù(¼£5`K£0Ö}@ FG­ôŒÞ‚Z=G¸¯‚"Éî‹FC ¢ÛÞ“L®w¬kâÅAþUÖtW½³|èVqg,¶ l^Œ¯û•êñ0‚_:þv`D·.7X`åÛòÙžÀýLìÂèô¬ z­ž¢Ö<Ñ©*v¾ Î…~íòz`\ÏRyá ÛK\GPµ9NÝFªli{ì–nêÝHûC8¬=¿1ÀÂÍesq1Ü”‰ø ¸'¸CLeëÕÔ§®â6 nåuÃÒXb•bVwšáØ”¶ñD1 ]Š¢báäµ×y}ÎÛd`Üêa†·_è.ˆê ã«šú³¿ºÏkê>ù)©NáÁ’v\r@î+5Nw°$¹÷Ç •I]WOÿ•›®í½nlßiÊí YK'Ÿ…¹!” nͼòFÅV×±Œî?Ó^ÙÞŸGì5Sç‘V]Í‹4üºÈiÄúçÆ-ÛëAëz}í왌¿üê~Ü¿{Ì‘g¶µEsÙF´[•wŽÓÙ„iA¸z —<†œ‘}vØæLÙQtüç(Áè‰]áž’o\$r¬å+¹f+"gôõ™iÿÅ9dÄfº:’5×FÙ“*\µ`1)Å'rׯÞÅëŒO%ÏuÆ÷Òœm/h[åz+T"òÌ2Ó0‡9§Š_]bášõ^6½UÂ.%!æú¬¬‰êŸLbÌ×óØÔ¬;üHÕ‹úšåÙù(£K7_`zÜ> Êâ?·ÙbŒö?[KÞ §z°<£Trã,Öæ6©K/¯Ð-zJ*¾Úæ?Møa q¹KÔ0aŠ@ÈòAÙžfN¦ûž¢¦E×ït‡DA+ïÒÖ­D‘ý¡Èzáµ½r‹È•JpDé{mMp³‰„×Ù¸·ËãÎRè!6î-C.R}á Æ™°ðù1nÚ(4°ütiyÞ…‰©X‡O•€ Âÿr¾…4ùãÜ*¨a;™Acu,s˜¹PíwüwII‚µÈd™Èޏ§^®êeQvE–ÀŠ1ê¶5r¼°,¿ÃêÚ:ñÊÚÒŸ2H­“Á&'ª¸“Q0Í5µ¿Å"D.IåM£‡ Û@Fëÿ9Ú]&ɇ2Cs°· »ù[ûØ1ÞŒ{î]ž‹‘šQ¿XE—µàôtVGͪ›²ÔîZ¶Ìv{Zê¥ûöÀ=íΊ_’L ì&o†›AùY•Õ¤ã°@ý}xø3Jç>LvXÏÎB>±çu£ßV5Š¥˜“B-ÑéÓ¯ZíÎqƒÀSP#®Rï­B¬Ê)e<Û÷d†nëÔ°ÜöîJ)£¦ ŒX“‘[ëÃíè)-´–9.ëů2:äk”ÈÌûå€÷¢gñC¼X¹Åí|åWˆ{Q¦ —<`­9¯/5â/©8›„wÖf–tê¤+ö_â mFa$]¹Ôd üöªø½"7ü5œ:½QëγózÔ\³¼ é:í® u5ËPA ÛíòNPxË.Ô›¬EwÚnVécZ’ð‘Êcˆ8K'ƒVÁ+sÒA«›ibš¿‹Ï}hµªqUhkVpÑ÷rH{VÓNŽå]UжòZñz¹cŽ P·oa¢…FtꟌ#¶|ÿYçwáÉþ¢¼’aG ±“^•»?ŽÊ䃟$¶BMx x±öêÂ/"(êHáá,È NØ QÚÝ3º›…:–LA]Xv¼Â´ú*ÿ‡æÜ[ËÈ6b¸Lƒ~Kᓺӊ ¸é±¥t»y%ש½¸Ý§q“+¤ð*á0÷Xšüðˆ ^Ç×8‡£Xϲ×z œ ´ÇyJø­Ù6ý‡!.Ëâ,ZÛteÀwcÿ¡$ò„öáQ³³o½ŒyìJ…4ØóªüÉ‘ÝähU+‚ºÑ ˆ6¨«Ïªï‰np¨·u,ãÛëN߬ÉùCàŵ°¸6ì…óœÄŸ±#•ýLþV‹ˆ3ùh°hÜIJ .õ†b&/Xà‰(Ë‹ô‘lÇÖ™ºf9tÙHN ;þǶN‚Âs…èÙcùà‘÷õ àÌ ”š¼·5ÊÆsñ½äjŽRA¢nÛ=ÜÑGP¨"Ìô8¶¿îªŽ`¨1\ó€g®K§±ô Œú˜0wû̉<­DùDC×y¡29þǺê ?·eÀ¾=¬ØË€„>6¹½Þ@4`u$ôÎÔ˯¶ÃCI¨¿Bq›ò&VŽúXˆˆ¿â„fÚñávë‹ìÀ]z‘ÞdÓ¬2¸µu9„ö ¶šÐsšÿ-•lKP«‰/ÝÆlºÈÚ‹Ç-È¥Z5ü_Ìë*x„œÝ2ÊðÃ6#èvù(:}WªµÑÜE\ø"¹ ä¢ÐИÃ[µK;ÕAøN®èpP åR>+3 ïˆ@›Vjr¸è Á*8:Ù‘êD4ecum^Oðfp,„/£Î²Zm‚ìÓ&a&¿÷£ßœ‰™Wj´NNÈDn^ÛÒ‘ÃIî²ß†².Âu ~ÄÈ œ¡š$æÚAüFIÇoÇ'Ûn)(Îÿw³si«l9I§Œç :ð6ÿ;<‹[JÜ¡\‹‹kÿÙ×È}Þégüûhfþ¸ßS1ìð ‘r¤¨ö%R :[Œÿ7ÊíMc;ë‡UžW†´<šVg3`1Þí­8¹Ü<bÈB=,_+ÂÚ‚"Ä¥¡‹žäs_”eAâQ^#ßÈ©%X„>"`A3.x‰Â„½àO(9Xe‚«§2Ý(/^qb`œm¶{]®Q.±Úw‚Á™ÿëE/€)©¦qqbt¼ÛÇÍF¿oðæÔ(?NvؚؔP²§Ž!Æaö=Žút¼p0ÙüY¾>êúÀEa„$o½¶|`ˆz·MµjÚð›µá‚Ó€{?z'r‚:Ml?X¼eP ¸4=ët%˜W‹ÍPPëGO$ÊÛ¦÷¡Õáj¾ið•©‹/Çš$RCšµ6È’ Ë î‡bLLKçÑP©nèõÓæ2( 9_+o†bÅLœäŽ»v¬Á²fTF¢åœŠ’ÒF Ëc½¾kƒA%¶ü¥«[¶½jûG듽Z¡cµò@ŒË³ë+²ã‹ëÞu/ýßS ÙW¥M 41ÅÖþéÅNõæA ¤•DZË/¬Àõ½=Ïo'»ýª•‡î\H´3!»>7/›–)7x¬ÿpoÜÿ€#¯§ÃùŸQηó>ž×¦¸)@‘M™H}5λâ¢ORÓÕ¡zx&‡¾;g"‰ö/0°°–Þ]p€,é€QËúÏH ßž‹¾JtvUñ°H˜X·²8мZÃÎåapæå®þg @Ø ¬/Lá?-5ÒÈ׿óà!aÅTÐÄÚLj˜Ùs=BÛ¾CŸ½ùW€‚s±1wQÿ ºÜ42뾺Ähz¼ç÷±ëT/N,pÒˆ 9Ö•$ù²ªS`òS¾{A B+˜1ôC8uE6ivqj’h÷ñ÷öîšlï™ïIÓnì6.‡ïQ4'{/º'ë¬Ý‡™ÚSÛJHÁGVe*þN¼TcÔå£q£ô€&àZ”ëštå‰nØ£ˆëk÷üÍw(ŽTÄê>±••Ûâd×u‡ã×sÓØ1 ¾=Zq d×f?$ñ}Þ{…¢hìg½%O¶8þôÁT$uÕ›"Ê£åÙÿkT° $£È_Bi²iç›t“Ϙ¦y3¿ÓÀPÛŽ­Õ¾ŒU§°Ÿ,hÂøs97Ë·BÓÕ=0ÊùóÚ®\9†×M×ô‹»šMl”pTÌÚ¢ZÚ"h*U÷øžwg7ÿX˜ß±ùYÄ„líï£Íè•N?<Â'OOç{f F!ÍáþTðEóŒzú¨å‘§Ô[LC,xÁÏy¹E=,ã<,¾`Ðó8J¥ühux’—”ñ…NþlA4;íN—!#›uÄ«B¤-18“ïøIþŸ /ÿQà^†@zåô)+Ri‹KÀ6‚Ç×6o}”émˆÃ‰°m*±Uiº€1ÞšŸç{ñVŸ]2È@^ Ÿ¶ˆ­ïÙ–ò``fýâÕ+Z.eçP„*˜ñÙu ½ónBÉ…]þ˜m×Ç; vŠ^ÝDtëºmÐÝÞÌRö u˜¯¦]îžh¨ö _cÍ!èѲ„¯ïO*u_ýK.`ÛkÍ2ýh±™ÖÆGC×*!yów˜AΛ#¡uïÌOð$œËz,N ñK¸<òDm&’FÁ_ŽÃ–¾´»Õ¸7b¤øå,TaY½óæI&3øéaÅ+^Oõ;¨v=³Óàj±¹íî§ŠË ‘äµÊê‹®û”Ÿ?ï™ÑTEÀØâÝÍò®È/þžÿ¬Qäô^¥L~îN¸6m¹mýÐàÓŸ“ÿýCW6v›eY¤2U}Ëg^8;(!òDáÒx¼ö›ZG½Ïçþ̸ ­ž°-dlþÚ œÂÆéÛ‹òÚÈH= aáœÂI!V®÷?=-<`L¦Òlmïá°ìæX»˜<ÑyWV²ìÂêf'«+?ï6ÎÛe1*%£÷†8|6”37J3D–ix|0i$·d$žÓ³ä„Õ,»íàYÐ&¥ ~Èk»fÙ³´îËYÖ(”sÂB?UãPµ,Ã5U8tæó$ÃþÕz"º$&á½Aö͸XÚPÙOØdoÿx·5¢”)ç’†ä±C½ ´UWo™cmšp~ªùg² ÕAÍÂ} ãn¥MîcžÔÊ™ªˆi.n…·øßØ4}8ô„¦+sÂ̹XX6:CÝ:ÁÌ50|«¤î%!ì"gïäY7é¹W5Z`$&£Ø‰¯aÕé—á%éüoºl)F³óžF0H¶%~…F#:O]òñ?ªmt=_»›ƒ¿5ÈÃÀð•ù}Iì#D&­àuÿG,W\tŒmä#ý²á£îû zÿ(Ãd¿¯„¯µùc/¥}Nt±Ñ-¶*S$± áK 4ÕL!‘¸*„‹ íC›°9¦bü¿#f¿Åé–Ùßöd€U»áöëX%•ÙµO“®Œ¸'¦ã{8ßC.=·@sn·i®nJOxÈó"(~´íSc“–BÏw7L»r€ „Uˆ©êÖÓ<é¥×rôƒBZ qoǪz¸Æ”Ò^„áÈEDò#¦$±ÛØ¥D$^ÑŸEý!Ÿ“=cC|@ð Äãõp±6@Û{_3Í#ÈXìo‹%‰f6Ú ŠäCØØÈ×Àb¯€E1xÑÀ)ü¤+ü•v’=,5çMÜ¿*©lÕQAÄÐf=órWøO¬É‡È¾¢ë§&›¢UMÑî sà{òË–‚"+ñoŸá9ì­0k®›èN‚4¤À½ÀÙ«x؆üØ&Žà+Úº6…<_0LRŽu½+ï«”pŠØËï˜ì$¾’X¸ `0Þ{FpVTÁqNeë¹:qvwb¬ójÜâ_¹ÉNTžXêYfp”-Ôez{;ÂøþAÿÅÇ·9"Žì?/`Œ©Ž^MǶ¶Ðði"Š>® [[‘²½¶ˆKØ’!ÉÆ„"Ü ÿKn·›R à‹\ñ¾Ã½•yÔ‚.ØÇ­bºÛß–Ù£V;P÷‚:ï@ù Fƒ(•.~gC4Ÿü,öIb•ˆ»ƒDæ:xà„Gm7¨Vý†\¶ ¡v>ÜÃðç ˜Á2‹¾Ç™!ÕYk&&Ô6DäìŶìZ§«iø9·Õ_?[¨““ Il?I»Nkþ¬¤þÔÝžL=3ýrhG”°³ÐNôªÚ¨ ÊbJ£_}©•-( wã’…Grqô‚JïK£­utõz´ï¶Ô×-ñ™¬}µàÚÓ;+—­ÈñNçz°ÄãH`kAÆÉG/.6 £$…¿ïM/ P<˜Á®§Kꀺ%£w>‚ê`Œ& 2Ç*J@Bcàv’ÔÃnÎ%Ç›¤¡ÊeaˆŸ=´ÉK(4ÛÀ¤V-'5Ôyõˆ^V¡¦àT— Ûë¥q…â< wYI€°OÚ”AʶèÑï7× 0ñ±%Ì}j$®Tå¬ý¯aÍút4je€­ÇQ%Y_#ì±Ï´r.rõ DÉþ–-Ò|3\d_vÐJOq{ôåíB’-­÷бé9ØÉ»ÐÞðI{ÓY¢Ç=çu¹ôëø@þ›À4ŸMJ1{8ï·%:©óOY@‘îÍæƒ*Â7‚q®Kû÷pióPWºBò ²‡èmpÈž;Þi¸¿®1˜³õOùÆÖIJ?ÉÕµ® pÂP¦?›~žµ–اæJ>µã^ë½ÎóÌÀ­ª ÉN`ÙëÅMÛ¯zgD*øIl¢$ —\Qì–$Ô:h«Æé0LÏÄÎ4öÚp&0Q@a à=è™jïÃtóÁð:§»ÑQ}_uw$l=É Užä÷Èå)Œzž{‚†Ö<€–¸ø†¨€W^7+2¬k:>™Â*ë0Qw„nµ–¯µ›7‰ó̋ɜró.+ê?xŒE¨‡ßì0@Å;ú2•@gÎÁŸ9?à ß‘‰XHŸZÚv’e«Ûo¨'ã5~ŒkÄ9ÁSª6_0y—*ÓIš"ûÀX|«êK:DxLG[Ì<†ÉÈÿ,R°Wv~Ûç[h%}u¤Up*‡Ç¼ôwëò]Æìù<ñ¸ú.Â'ÓâªÞk’ïUeŽe'!Ó²Y’úi.‰Kþl–ù€GÇ.Åù1Y¾ü´%×¼¶ú?,Ìñ–óÞßMÅY\_ý¢Žx.…YâD«“†áÚžÀçŠCÄå õ;*5`û(H…œHa"vx|Ù<|Ç6@ä»—Ë¢^[R.¯ЍñKxÝ\.Žá…nbÍÌ÷xõəًQޤj"ç–’úêÍZ9×X¡?>cH€ ' .æhƒ“ЉAäžðØî4(Rét¯Áî|¥T­…æh ò_£xžÍGàö8÷h õòÛþoLRÑ®š‘> Jþo Žö«„$"¸ÌNb wÙ<Æ:5¶EèV7…çek<d£Á1¼K{Õ{ ìÂ,†E4u ±Êx\e`k\í#`mFäå%_ö? ‚ÎmòËÃtb¡»¸gÐ$­ íÑ‹ÁfLÁ£ÚHƒDRì„óÚ4Ý!zd"éQìÄ#¹³ ]±ƒ¥9„’—éí'˜GˆGìë*Ö$«+mèÇ-9LŽJjÅTÄRŽÕì›èȵ<¼[õ0·›H,×9ºs làøßô¢l–R'½C-ªÀX)ÛcE]‘ol}ÌNÓ}a hr¨N¨TUn±’¶¿­»Jª}¶™z÷i^ÈWêKÞŸfŠ·‘š2i\fmГÁ‹¨©÷ó³Ð3éeŠ8»úUVþ÷W„fÍä}õ¯‚}EÅFà zäw¢ð‹Ô´²T40ì4l ²dS½q™»S£GOþdû9ÏÑÿ‰-‰ã¥ÓÕc|dÄ©/Ðêì¢s(ÚZä«í‚Øb+ˆãŽ#°J-\˜ ê÷y*è`î4æå<Í]£‘ÞE"ïÛIn8ôÅ¢ɈCô…}4›|d/]Wêã›À Ð îmÂŽS{ Ï Ùq>Œí´þhÕÊñ˜Î´‘ºÕR®35ã䯔‰¤YXÒœ† 5ˆ°ÌNQ‹gqº¸(ÁïÝéÑx<…$ÓšF?Vû ßM¸æí[3¾pâÅö$ƒ¹Ö¦S£åákJÝ"KpUŠFb ,¿ïUo}d‘_3œˆêï¡ žµe Ù<€•ƒÕ®„ 1Ž …JmæMþ`Τäobhi¿0[’ž:)Èó=€Ý Hî7â)ü»žÙIÁÂ<Ó¨‹€¯`9ÄY-2Ö\ÙxÏ]º5šáõ°eºlóÉÌÛÑÊ ôLÎÚzÍÞ Ó*Ù%·F°"{npü¾è>ž¹•¦>ƒC]»úü7÷À:éýS¥Eª#ÓÖ ô(õž ñàì§râ“t ék~~Í!ùöoúþ{E_M Ö;Ø#͈'¿)GÄÛY¦ÊÏ.ÇÐÊ¡Õz΂ÚQÝH#²+®YŒ¨<Ü,†áîY°ÞåçtÏôM‡›Ì›x3¸h¥m™ »`jª^Ò¦rcÔ`ƒòƒáÜ0¬]£Šîººó^f¸’\šœ£2—&!¯ú;¾n?mÀ¶&»©tƒW®þÁÐ(ûþ %qd®2Fëç•#~¶Ü&ó¹µÎ$²A¸C¯Û¬¶!cöèšsó*™S@-x,ä« â*½xøÃóy¯M…+^Ô•Pb1]^àGÎõºÏy‡,@¹ÆHN Õàø7/eó5í?Ð%ÅÊ[ŽFÞí—þi ”_±ÕÄ}w7DÙ·&q`#0Üå÷Ÿ\Ò–#ÁñÃNêÃSbÒžF4/º)j¬© :.-ñ·{Ô¹«Oî“+#±äQ4—â4|.Ž~£æX]=ôšÁ¼Þ^ÈI¥q@\z>5\%í \G¹¹œµBÐK zj¼Ór7Y ‹ ƒyêJlãÅ'ŠŠÖUÖLJVPÐÁI4–d°zF“U1Ï^{1‘Dl{2AQ©‘TÒn³[œ),ƒ«[ ž UšMF,`ªX †õ€1@ñø¼`gW'b·B(r¸c½²; ÊqÏõ#7Öy4½Ë9o<;:ºê,)jEv~®?zãË·C+õð·Š36³·–§š¸Xé ƒõr%®óÞDçíÅZÍã/É—f'T$·ÁÙB¬Ùœ¦wV4÷ÄÞ#§Ý!$ú7!4ZÊ9þƒ G*ÀßJ“RN ä]ØDFˆÃ”•¬?[m¡¸Ä¦<·xl"x…âÓõï8Ey±~¦ô®ì®ì硹ؗ EsšVç»ÓcÐ ÞãÍ ÚœÇ Òö'ˆ£Ç(^›Œ´ ]Ù1ozHüÔSZªm–]'/=çS+ÑœýÖ’yó,òÙ¢§ú>PÁ´’94Ä8ükÚˆŸèlÛƒƒ~rz îÖÛŠÒ ]ØöPðÀxU ™!aƒXm.™¸ X»%‚R]`|ð~s“ÄE±-Ýè{¯ Ê|6hnü¿²Bè•ÙÉ냾Ï^SpîpfÄEÕþˆ"™B?ZÕ†´r|$¡Éqo!µá‹ÈöŸ›<ˆáfØú?íPà/²ƒYýU¡² ÜúÝq²ý{3¢×çã)1Ö9JY±`aòwÍ_åÞ¯ù8TÁZé’OQ”+“‚\–__¶¸}Çžt†Ñm(+Emè]è¥÷X^¼~4¾ïLžÁUfXfôj 'Æ1*Þ§‡åh àg—X€£ÿj„=i/ŒDác•\üî#ß *…Î÷"«n0™¹«Ì®Œ½@­jî ­Ã[d©¶)f9½;b”ï„“:Ñä/ò9ÌÇ0[ºBÙ2¶ Ÿak²eCbçã‘`Çÿuªž¥æ}ý”Ì俘)ù›r¸†.½Ô'‘˧I´kN¡ZfÚm¹­ûNJþf§ @Oód›i2¬¶3ÅË«ÆÛ¯ãÌi’¿ÖnßPÇ´­ÐÖ¼¸Ãj¢ÝeÃK‚”zÎtàaÐÀý¨5ð$æ ?ÈÙvæåþÕ-ÑóS®%¸´.Ъ¼WèaM«¼¯v·BRÉ@*År]¶“Ô†*Ý(‚þvÖÙNæ]ÑŽšFT(”-5œÑu F22© l`‹o‹§ uBdãp„²½ƒ5sHÙÎÁ`Ï·aI@棾62©®ñ>ÔRœEzàüÜ¿‘Ÿ¸6 ë·ÚÀk³‘d<£ëß"þúõy·´ KvòZ'd®„ëºþe±Æ^)„@k=+'”âsŽ\”pa=•{úïŽÔ^Ì8EˆDÚy/ó…,#ur¤2òÍ™šhù®)×P6)pùd±ªJR¾üà;±f’â³õñá-Ò*!ÿy÷V(ë—ÍõÜ[g„w£Â¤wYppï?#J9˜ÅôÐg`ô°Ä*˜ 6®Ü<ÁÞ¢$CU"h1â¼ 8rß(ÃÃiÙðâÿ;Ÿ+æ$V«Lþ„¤Yéœ3*‚T$•—ç\ÝÒ‡LW¿÷Kn­9Ò8GYÜM áröZÑ-ñý}¦¬öŒþÞð»]âƒi—JÄ¿´No7I_k •gA®«Ð› 2LÉü]”ÙÏ/´¦&ê>T¦:Ù¥¡Ý²¶Rñúáıߴ̳€y ›oð¢ÊÓÒô4Šù6KAëE¸$éôà–ŸêCÛõ´Ø<=Ri<ÚbTµ°‚å´IåÕæâ –êáb/¡b9=4 飼£ÜLÚSÔ¶¿PõÈï‘ eÇe„M3LØö‡å¶úVZ»ÄeM©dôlJ‹ÙcSLó –ãལz¦†ðqf.ÓèüßËq.%$$ø±á€ãIª‹n,B±1ÂÀ—æLöYk÷«ÄÆí¡Òäëq.×_5ÞPtÀè:u’S Z»¤°?rxm>a«¤ õ©êC¢%¸áE¡†‚ì÷åŒÍç÷uÖ¥s(VÙ—Ôy«]’¡U’A&óPV^ „5†„jöá B¯˜NHÅpËX¤«»Q~ŽêÅbå‚Ùƒïõp•ê¥pBg¸Ò4/2:>õù†„'å@ÉÛ&8Ûöãì…PåÊOÎú·Â·}Š`6u>”fqÒÊpŸçÂôG ö<.1™µmÿS€V²Þ”J*¾(²ÂGw‘X•Fê¦ÚÔpà°®,Ô˜PˆT÷Xeäê†gpOŸ±ý-IM? Ü©j½Eâ,I…Ì[†»ÝÍ•TFÛ.r ²ÌßÅLjAitOèû†¾BìÁõ\½Ñ8K¬3)ÄÄ ØÓÒ;%ò€f˜Ç´¼xΛASäÕé;ýùÏ)yXÓµÜã 2|h¶‡àTОö²#Ó·A WCdߦ %=`˜&_’pÚN#2›,Ô i·ýtÓ¸¡a2Hߟ/¯4)ï D½û^ú®Ü_;A…ß¼µ’Ÿoc‡n³J”š*eúýëòtB®í!ªcØ2D1C§€ÿà_ÊMNvüBˆ-H)(éÖ]Fa"û!…§ãÝ$Úa´—‰m9ZÖY7€$0í’¯ˆ·ˆ{ï-`Â2*êKxÇY È  äâ$É@ QY‰ö½ÉÑð¶Ýùð® †J²Æ»e>8º8¥Ð|qâT:ñ¶Fä°@EœÂ7eHÏZL1ºrdXë¿£Y„¾A›6«†ZÇÑœb72ÌæçùIÚtÍ<[æXÒK쾤kd†5è’µÜn$b V^–Õ!î€Bl!wجg&æ—›ÿò\¾¹s§4drzÆÇcµTÖÈÄ`‰6î»úŽ÷+œ<IJ0[Of`é¢>’Þ§v&ûÿ_ðÚmýº³ar#á¾£ÝD‘H4™ÿƒp„ê^W‘'ã” .DÑvþ8/øŒ¸éý9²w­±Ä›? z{â¡Ó·H†»ìNÂßiÑo,Â*$za"—’*û®wu¤}#]Åëõi¸ôr Ó«e2¡ü·½*ÆhkLÖì¾%dÀFuOèó Dó»‘Éß‘¡„­·Ü+sã_ãd]‡äJ–oN{èg’EÚ|§r 'aRrñŠ:7xDjÔ™ ÁF±ÚŽ%믈‹ñ3ࢠº…ƒ»¸2 Úzð1õoR¼KÖq3»[ÈÙÍâ 6ßI¯¼öQ¾ÑÏúšƒ§, ØGš©…ãûBƒü¬ÂE®ñ#PÙ7 zÂtЯlÜ(.aŠ¥ÈmxÛG_ÿù‚7­}l6‹“°7÷„*öÆ´†ÞøÂ‹\Õ$­EÝ~9±y¥1~áÁF^pߥãÿF …4M „†ZAÒ3°f3×í[±û!®0)'OÆý‡BQ›j¯-ÀØtœ0Ÿ7û«g 'ÝR ¨±Ë1Ë~йVývÍÒ„ûåËé[ ÍË¡=›(’ºJ[4§ziz¢™½õî©—‹eRñó·©…•È& ×}°Ø5Lo(}ZËìËÆâeûju ˜¼ítÎB‰&)šÿ¯ØÐDìL¯É½ÒD5@®€)¸QÃRß¾ŒEôò‹ÿÛÈ=¾¼$ÙOɆ&Eè ’½›b@ÿoÍ~3¸N#aÅ9íqs*Y%ݵé±g¬ÌFÞèeöìH][¢E ¦ìÍÞ­SÚÈ5>Bm9D‰Å‚þl:Ïÿ}æ/cê=ÚoÇÐ@Ô™ë'šQ“Ô‰•Š£ü£pA#'Ö ÿúÐ9WÎŽ?×þ៱d‹è•R%…ÚŽÐ\„§QÌ|¯TîUÛwú´G.mËE?è0Òâïâ(å_EPÁŸâä¶> ›ÛZÑ£þ€³´oY½^ÐϹ)v¤¬œ†yÜ %‚pö˜,ØÚJWô#Ãvå<Ó´µ) –€u¨Úù„[Gvœg¯öÝr×±–†´O;ç*d%.ÀÍʰ?kY£Ö¢±Zä‹§‚¥¨ÍlÜR÷»úWÕAp˜2†®ßKõüØ`¥a°u>“0Û³º¿™ŠüKT!ý¹Üꪕ§¾—›v‰cƒX9…o‰Ž;•Þ¦dz^°¡È}Z)‘G)y;~U£± ,Ú `ß͆R‚ß==_à(=7š6"`0£hjÍmü¹M˜ ?eªÞoÈ5 þÆò_>:[—8ǃÊüv›/ëÑX éRŠ¥}·ý­½–SÔülDn2°Žé¡SD!ØÈ+³hýVü¨à4Då©x áãÉ1íÄñ ‰Ë$0ò6Ž.Vi „üsÔ'¢¡Ã>  :C £ÑQNò†Ò"QñêÞ5ë‹Xìæyvh}ØÇi±Ç”°9[ªñ]5ùDŠN ê ¥¶÷·=ƒv¨rzôfCq”¼á艰–¿< >RÕÃèA !0gU*߬Di3/ðVFq‰Ð>ÉV©CðD“¸ÒïL†Â=¸ßÉ“ô¡6{“&Ïå}ì ÅÄPfvWPfS€XÎèªïU†ØÈd¬EpÍ¥OHø‹ÛìÁ›¢Áu âþÐÝ ¼Øvë¼D©hytZAU/•÷ïuDê6íM´Y†fÀÇ. à ‘r“²~‘özˆ’"³ˆßϹ¯ˆæJˆ õÞº ‚¤·½\¤­€ô>-Âÿ̦Î@.ñBÏ ™q©ƒ`ÙαA´Ä„ñ’³`kÚ5*œ" ¦˜ci9sîåø‹ôÓ¾ÿwD® TÃ.³Wtç*T=T*ïÅg)mÖuÜñl ^ëv [Vq™!WäÛ»Šì² 4—4žú£J™Ž¯4Ú!ƒê¬ú4]¥¹Ö]p§<ò7 ÷GÆ}—`€Vm““ƒpòwê%Šâ!ÐÃùÂ^:Øâ 'Z• étPfVòœÙð«q•bÕ–çýøH|u’ —ÜãHŸ£"ùhi;‰©ÖÕÏüBÞvåtøÀ*ÁÃ_À«¥½Õ2n|Ot{ÛH¼K) –ôÙªFoþæ2µ6hBüÃUµ3èv „ï:Z›P(ûŒG yáb1"í1 fû„†3±ã š` ™`ï`7J—Н{ýä1óéÛh ,ÑáÄÀ­£F“Ní—/ G&Ì{5圯OU­A/—ý Ç Ž1ïl÷Ú÷Q¹L¸XHßqªk/DÊm¼˜j3ÌmÞ|dmé]ß½Sïá%àD¢ÓFO@f: W(øoTÜÝ6rpiQs}Þþö~÷@Ÿñ9$5€´+ÍJž(‡‘[lŸòŠO#†à;é K¦Ÿ’×0ù‡B Ï~®Ö#g©é04^HÃÃ:¡'7LYŠ [„/3hÅ\ð,œî«7«åCߟª‚=S¸'ûF9véæ:_÷MùÜP½Í·3Ôçl'SÎq΢¢·èV?f’ƒ+öð9:¡þ†ïrznº™LS‡»¼ËU5€ÛmUî3å•¶ z±U¥Gòâ~¡.ºÕ×ê,Ñÿò Ï <´Fúö,@}âä/®r½Š"Ë!ÝwÖQtrH¥7–rYâÂ_ïTÕŽœ9"ÈýŸî\ ÝnNâcˆ“¿“îû'ïCƒ[ZGN‰¿Þ»ÞßYT¤ùj¤V÷‡ÿ6ŸáÇÔ`Ôm&’„x–èp¦¡òŸó>Í€øßqÍ'>¬i<ŽÁ ‰Eã2™I÷-ðlŒ; êrÇA¯…®ebrâ_žÖЇî[YY_§èHŸæËÜÅ~<ô)j”¤Z¯"ÐÁ}”zŠØT¨šcü?û5P¦ƒz2e˜ßfÇͳÈ3³ó¢*Ò}¤ ø¸1TKZkd»ßT×µ§Õæq[Â)’Ki¶nrEú]¤+³ì˜Óa,Ÿ* ²wÊšòŒ#¾S¼:Õtä>õKÀÀÚ”Ìò%¬ÛÄcmð i¨«æOˆP5•²U)zÒ)ý›bƒF¶§ÙAŽéÔ¬›T$1'©Ö(ˆhg»ÎJL¿d(]iX_ãjsXÀB©¹RFûÖuÂýåe·ئƒÇnb+™ÂÔŠÞY”É8+¶&¯NßÓs¹T̓B|3fM­˜á3¦½ŸL8!÷q(Mõ5"3Pߥ_æ\£[ü­V¥|ÏÈÑ’vƺ‹©©3ÖóÄ´Bຕ0:än,¥¾´àE:W©›[D[)Žac}"ÛT¡¼Ôõ}‘•â=£ò€zÚÓ}áÙ`Õ(ú„,?FÊ÷?0þöÙ¥WnVƒkì`‚ðU/‚¦ÃÏ*៬‰ãþt¬{à ¯;á#7^švÜ¡¼KŸ“©Ðt%K!î»*­2‘@`ÉνMÙÃÌ‚+’˜ß.Çp»“tÝH–é.ØñÒË®Ôáîrl¡µA¿Ú„ ίM‹¤¯"1vnQ²Žmk”œžpYÕ¨tæÄë­u:¬ÆøTÀQ.@ç÷ÏÆO˜–õœš¬úE0°%IkÞ€§žG÷xM ‰/•Ej³jGþÖÌL¶åôÁ? ‡áåóµ¯ë¿Ji<ÖXɬ»ES8æ\ªIÓ_È_ÆŠ›—*rAîź½>(£,/~,XÙI†ßsÿ•Æ©âÕw»³!òLÁ%G޵ TG— g`µ;âDü®·øßœ‰áÝ5Dë8H8[†þ%qƒ7¹è䉻ŸÜños(Wþ¼%îZ{‚Ÿ¿ÉX9øMÆMî±ZÓ4p®¼Ÿ <8~c:`8dÿñ4)¢Ø?x`O—±e;“êj]Oðê‘»5ä ‹é!_ÿ’a0?…ӻ׊‚ÙÖÕI2)Nc©n Eà­H}îöwò‘ãFigˆÄ2î¿v ¦T©«©D2ûaÖçV i,¿í^-¿tŠê¹™JÍ7¯ä?dt;L¹ºL¸L/톳ÊÒo7?à› M¨'¡lÈÉs?å@ ஥™A;2ÿ® Á¨YÙ(V§/{«¸s2@W›— aÑÅñ‹=‘:1ÓLä-…¯rl€¥Y‡Ä·Ý5¡ëÌ1ĽÀ¾6K™*RñÙC”ÅÒå‰àþñ˾Èìö‹éž)/ØÖª¼”ÓX¢º$Éàÿ‘ÍùFÇûp^ÅZÇskS´²$Ô!6ÿv•„MîÿjÀ² }t BŽ[ñcm)©vx¸Äó{¾á6Ã"Ts&¶ÑiŽÀÊÁÌ®v¯VǤ/å˜Áúÿšà@à’±Í†’çöäÌï»–‰ûm ém¯£xž(á¶@òÇ•úv‰(üAíûí±#°ûq›|cûÒV¸@ ‚ ™6û8,t¦ì:: …ã¢ñŸ¬cÊÖžâ'ÃIãðuõçšêE1P6§8RöÁ(ELm[V'¸ï›ÅÂ#zXy"$–C¶˜Á_CŒž,&žz> Ík*ôùD%|Ó‹Zûzé:º'ªåHSØ5T“X“ÙýüÊ–Z<Û«œ;ºÆç5Ç,m ûV_N÷çgŸ–=àž‚Ð=óøhšûÛáH§Žøü/ݥХNt̾ÐÇò¤}&‰®çaÖü»šªþ)·¼Ø\ð'Ô¡•T2Lc…y›iŽÞ{Ç S—õN¾Èt²FÁ#4f*ñ¥{>ú[XÐauJl_󾜴töeÎÍÓÌW[·[”. Oc‚Ç%Y&3…(–´¡™Rº;Ä™™¿ÏŒ€¦`Í„•È$q§EP¼Õ·p^úº[ö‰Ò[§È´B”°o¦;’‹ C.÷EÁfq'(˜ãï4×ÙFQîÿâ©{7Uƶlzy¨&N1’gþônŽè™½Â›uØÐuf#’n(ûÉᡃ© .¦×IºZAO+³ãpÒZ·oë¸ä ¼¢2NÐפ\%ÁÉB6È(hqJò´}ÁL·´å½UŽöG÷M|@¥ØŽõúYYþ j—ÍúCÊàO^P?CˆÙ«'¢ùòétd&`©Øg#m¥Š¼s èÍÅÃÃá¨1Rx°´Ñ#Ò¯n&D¯MV&¿¬]`Ä=úžÿØ¿'¸¢²‰J ;¡ø°¯'7W·ƒkq=uŠWìïYTËé®Ú—*®(á {’rùÿ.çû}ùDGO>0]oÝÐBÞT_Óë~âKY‹²ùž¬,–ø.ˆ¦ê/äwغùJ::¿Ü¶š£jëÃdðqn=X?"o ¸ß1Ñë_’ö¦G éÝHz²2QVÑrO“×·xQ4?¥Ææ‚ÛlÕu·KkpÔé\j¿eX}SJ|D1NŸEØ~x}Àìµ±ÅR`3u÷Klw,&ÈÞämRv´‚îR¢_1Œh”½ê$I*Øé¨ùÎ+PA9«eÔ d»‡Ë)A¸c‘*±û¢µ™ýWJãMbqúr ö’aíÊ•¶öU)˜WcÖ²äBÈæ p±Ñ! ¢[¾2©jƉ@YNwX®ÂkâZ› "ÀŸÞîüËÉ®R^ÅîQ)±X¥XVææ+?í\é)ŒJ©uÔ…Ä¡œ;¥e¾ ÊÄu7™m¡è'™©ô˜F,Ц5Çâo GaøYÎkô6”mÈt²‘âš|KÅ:ÈÑw@>`ßïñB0²üRZz~Ã>7™ò‚Ä© ÉÙ„cH¨ðL‘æèQÀõØz-Þ[޼óµæÒÜÕí¢è27®ä¾ëúÕÕP=»æHÇÂû"ܪÁЫà`øÊûy¶´˜7ø¦çËOjhÑý¦ÃZóWÆ?´ 8•6¹Wè lKf'çOx­ùnÍ»ók}uŸ'nœò[È!.k‰Øˆ5TçÿX ±é:öÕLg9‡fc!k}ÌSš‹t•Ô‰züÜm—ØIÀHÔ&2ß‚~Ù¼ÅÖ4ò† |77ÓÑ(îÃXe…¦+c £x£1îú#&ÑáÓz|Ã7#ž2œ­Û¨b}AšÄ3Ú¦b«’ÞËáéÏ© çûr?)¿%Ï•²—Š•G& ½±udîûÉ*Wf™Ã©õõ?ŽRÉ·h/!KLÓ—'Nà±ü”öFF_ÿóHÒYQK\.‘ù‚ìá}s:ÐXÆs­ü£JEÕäÚ.ë§ì=T/æý€hðÖa wY{–€Úf µ§RìŽtc&Ù4±]•<ø';„®X7 !Þ»DÕ‹mØm/;ùÕ0ÎY÷ð¢?ÏÀ.ØAnH§“089«èðMK%•²7Fbæ¼ýC—èµO?j j ,~P­õ`«T·”!fYH¢ÿ•lèaG’°kkD]ëìßáw Vý'˜:ø·™ sC‚ÀÙŸ{q90ÉWÆ2|±”F\®Ø"}ª3YbÝ ¤VÕ ½H0ZQ¾ãƒýJ‚´£ÝZ:EšœrÖã’Ǽ?04DêR}m”R3o…½ØM(r·à /ÓX·@U•ÞB¦Ô:æ—šá*ÜÕ‰N·É ³Y䂞Î-Û{8;¡Dš*îðR9kŸñhÙü¡ùsLþ „ìÙ%@c öaCF˜nêÀc­0–åB”]¼¯­]2Éi•sa>Òk}7sžä¼ãÇÍ^§‘0–WÇh„ÿ?ZT·‹=§®AEÉC5JMO\¨ÊÀfþדÂïeï´Kpí:òùyYºTjÖ5Oñ 35̯ÜÒ½ÞÛgôçà°äDtgY#{"Ï,‚®>·¿Ð.]^°KÇ öÒ‡À›šv=±H¡²Ä2¡â ÛQqÅ6îc¿\}BFþÕµrùÚB:´ë<,¸¼5Q2øŠèIGHKÈÿ@Bœ,öÝÝËÖËò;í[§NÇœc‚éK±±¯…]‡þÁHK¾[l ì‹äWö惓ˆòR#i\5ðÛšù¦‚NÂ*—šÊ6®¨Y®±¢Y–|þ¨¯;T9æí¿Îƒ‰ÂAÛN½©ÀKÿˆKwÉJþC™›€CªJàŠlîW÷Ç Ó¹ÌÑŽ@ô­2‰–è‰QFO[—MÓà£ñøÐ©*pJ,’EÊÙ2Cà 5—¢jáDg¼Û†Ù}jÍýdì,çv©ÝöGDøŽ ÓÀrcx“ûäM˜ºÓž3ïËþËШHðÍßȱ`çž}8p¢ QIÊ:DË*N<4v5Ø à\`(m#ÕòÁýœø®¡n¥OevSU×H6›0RÞp~ûÉVÜìÖÜsS¡_-‘…#HrvBý; ¬Ê\ÓGÈpèžLA~ïÚ¬ìÃÓ™dƒä¿½üyRtq'f’ðRS[M÷oöÌýŽÕ´¼¹í4G.¤ŒâMBºíž²fäÌijª80;Îlwá–s°D¸j³k ]º¤“ýSƳ€A±.z°þ8H»W`ˡӓúyÕ쬒ftæE#6“Ñ+ñŽ‚ÕËÕ˜µ¾ã˜é`ŠßÎ_P,oÞ›i9b“‰gË-¶¨:f:AÐ/JÔàñÞ•åÚØT¿(´ÎïÔô3‘7AÕM~¹¨ k}™A>¨ÒI“wžÏß¶& åÃùhAO•Á{ŒO^\8áí%äßâ}ñ°—Æê'B›"…Â=ù_lêFBrá%¢Ž+{a pðÑN|õ=G3ò#0{Ìè}‹9?Oõw…¸èö Ÿßø@f…;ÚtsÒßµ£&Àòÿ;ŽŸ^ëô<£z²áMiw ¢!€9Ö6>õ!] ¹0=œ³âó9ßuz&5I[7ÝkKf°MÆj|?*ŠÀôø£4ê7™7˜?Àk°ÖXl]×â­zJàºÄ²üf–!½ZÕ &^Tú+* ÝpFLdº á+Öpÿ«ºÌ-²J¨¿*ÊË[¶É &±DçÝ/eÄ`ÞBi\ìFñí(¨ŽÁîÈBümÄ\,:\£ó8Z§¹ÉŽXÁþy3n\—5»h¶"ó3½µÐŸfA¯:gáæ Ç’"Ü´7)]¬„âm}³«*•p,÷Å––øZwÃæJö¯Ë¢®aBøÑ9N_Å“Ff{þ½õ1d†y[ÎnÚÛŠ52bHÔËÊ0Êàõçiíú‚ºž®½¦µÂCŸš§:~ ð›f“ãˆ&‰ÛÞ\bŠi怘ãG¿OHo^Ê)Ǽls¿ë—\fÐ0ânùÝíw¸*™Ô’ñWP倱K†E‹hUÐ ã­Âû,÷†zJñgd–ÒZ„Y¤~¼ëˆ|b0G¶ÒlÞ¯õÞÓ²ÓzE¨ n¨*Pu/‡ó§R¶ej›jlææ9â: â5”‘¡·£¹¸<;1”ª¿êa´»Ê×·Ô®ßñ2OcfËY™ê?MYÁÎ̾vÄmû'ðS3X»Ö̲×2›8i¦jeÌÒO›Ôý)t}þyÇAú¹yp€¢o©ÏæSj¯hX¡wÄ€ °}¦šg,›ôÑ2jc0„JˆŸ*¹ ]t-2ô€Ã&0J–wÊqêRéxÛ]K¼Êßj.9÷Äó:ã tÆ—ÒhQGÊ*÷–Ân‰Ë¥K–ÆP¡½âhÚ´FT3Odl–ÇcÖy§‰¯âöâùhéWšÁ€Ä³¾å AwÝqÛã;+9ëz=K™ï½üp—N½þ•dãîøNæBØÄ|ètw¦Ýl›Áj¤(95$Ô$;ð¿’#ŽÀ2<¾¹~Ïÿ¯–½; ‹ëZæ¥RKß$:]û%Ù8Ä{Û­§¸á;Pp20úoîæ¯Äå_Âìå•;ó”Š±Ý $%ÕÒúÙBJu910§;ôÕFp¬­ŒµzuœÙ…vK¾õm )ÌTÔ‘Wkl4ì;[”áã Yzgo·üÙtCEËA,UU|þ%Û?¹_QåûÃVP®x¶àÑžÓì=e]釠÷r:ö{Þ&Š£àâ¥Qnw4N¬¬Ë™ˆWŸÓC…Gx©˜šðv‘í“WãÐ[ò]&ÊÄ™GÍ3³T|U*IÚ4§ëüï~'ÌðZöX0þØÇÃ%ÇÄÃF¥=K`7®gõ)³ÂMÛ‚ºËÑØ¥^íÁhÖì"÷©XËeÇòYí‡Àr/þ"õl_n’qb‰×$IÍŒe,QåEÎØ%b¦­n@ïDú: N´êö¼*&€Ç‰ãô³ÙÚWƒÉA̺Ô¥L‰`62Î?”m}€LBõOJËHîHôÖQ]ê:!…`k{Ò›§É/ß«2ןM†ø¾Ìít‰Ýûr¥ÎÚmxOláêÑï ×ý/ûõ”£ÊÐ+_L§cÁ·ªƒ0ø‰5ÌПác^‹2C$ DÄPìI.±Y—¹NÿóJ%΄ý@GßW³ Ç?¡R0å¾È”ÀTôòÖþÙX¼5ˆ²[Fo87….'U@„wÙÔ²»‚MK€×ïHd2+ ¦„Õ¢ŽÔp+‚¬Vn„yÔFhÀ5×úôsMÀu Âó1ç*ÒÙ4í´çz O>зµªÉ ißFnA]¾\’"H7wü± ŽÀ:¢Ühêq¡t”Ľ/ó Ò(!Md«@ÞÑ{H@×ùüïX ìó %)í8“céÑ)ó”ç_± ÃCÓªmpeÔ]µm¹Þ¿G<²´}“³~Y3„/ ü”%¶fjÙ"-Gwӆܱs2ÔàÃE7 aëK tiµÿ Ù:oäË…~†3(à•¿o…¾ÀèÅWÏ=Rë,$gÐ^óÒi…]}ŽŸmb"‰Ðµ£¡¹¸~»(K! sBbÝ·%<`™IiáLJ+5Q˜â‹h‘“%b„GR”[½>‡°ËøîÿƸ•ÃAÆpZ´6uY×í³îÐ…¿Ç(ÜäÅ·x¨ìÏóÒAS.çhãÒ òoU!"p›mbÂ;1W)‘I&é£ÃYÁÝØ»@÷ÉH¶äV›ásð8‰Ž+‡Z1ñ #‰kË (¤ð.†‚d¥¨Ÿ¹dØ#GnJ•¢ùs¢¾[`ðë3êörÕåÄ.?ß±eK!ã‰ÙqJë&×ç-ÿ&ê.ÿ˰&À,»2­ý„솭!c“”GÏSrl)I åÎ%"K?V ×–$¥Y¢Ýt`ÍKf>n¶·¡÷˜S<ŸrUe\B¶4k•Q‹; þ>¹3¾ôV•§9î*®·º!¨.ú)d=&õ0u¯ó&r^Í÷üŒ8 ë»M[oú‚ßí⥼³/]4÷ 8kêRQŸ(—2?ŸŒ!6ü ÄH¡æÅçž²¾LIÆÉGdØ5wÿµ º$³¾_ÂYà\€it6\ú¶ >WJ€÷Í»§Ç•à sß$1†qY76« „üÒ×þUØ]a>ÆeWÉ`E:üÆ'_q¹bÓë¯H@&_Æ3‘¬CR%`{fÚXk¨žÌ+NŒB&‘ÌÉsF"T¼…ÜõF"ôsUvÔŠóÆŽ;C©`øw „qðO7’nÖªžC_Ú-’»ÒK­«2Äd^8Ü ‘ç:*ý_Ff ´¸qÍ›Rí§PâE²*Ô¯—· „¬X€z² Që0£hTýUä†*´Mõø¼Ð—µD8ûŽ!€v®]Í @ ¤SÖô¤ˆ}´gNwVzûÎßæ½S›PgMx¥Ï[q‹f{|0þ%à3áuýðÄHW¸áú íngä>ž’·Û3Èèæ\uQyÚæ^; iúÚDoJ®bï' B -`1î½®2C¶•‡â—h”ø23¬îxª”Øý\·PÑ9tªŒu@ÂÜ÷Ï“S=›Ç9OS±Ç…ž‡šõ0@¡ÔU¥ååæ‡Óºo‘,'×ïŽÏ»²o“¾Õtïê:é©u¿×Ší0HÏÊ(„>KHç¹þµúû*!x?:à*|½ô\›FK¡±áÛ(”t^*)~N†æœÖiØ Fè̇~«'òEåòT.j³X§‹‘ȶï²DïQæ˜Æ¨ü`¸ÜÛT¦õTg‚Ê{SaĨê;õÂêŒ ›Ý«Ãê|bRrY¬Î)‘&?ñZWˆ<ÇÉeª¸¾X pØ„%þ<’¿¤fMˆ[ˬâäÌÒ:Ðô­¤¬:B¬ª±…­ü¸'›)žÓë8Æ2ií šÍè â­.®ÈJ3 PHe>àÇþÕ r±7QÍ¥&ƒE%ŠæŠÛ0¥NˆBD…íeðÛÌÅñ s ¢[ÆÌ¾=š¾Q­YL¶!¯rbiÐØXx$§·pwe–¨Ê÷S5©L±oXp—ô2AÇ ºRçÒÃW§ý¤±ŒÃÁ÷}eW;ÇV²ª²§jªø éND_‰yôðL¦šaþXŠLÖIê[¸4£0BíÌù °ÏEâ_Zèñ ·ºƒ9ÇÚ€¯½8a»_.Ò«UCéû‰*@¢N1>ïå4ƒ©5­UZCyóì¥>sÀÃGd´KÖ}ªPÀ'Pœ®‘g0oÆü‘ãA„{oM×PaÈt3ë´÷£Ÿ˜MPÌÇfI“" ÌDvLaÃfø/Y3Ø¢”™¤Ç@ ^:8¹]´ µà6?T‰zÃo¶cÑ: à[˜‚½ÁJegC Çψ¸Œhß‘0÷hf1×rÆ’+^¿PNåâhg̱I½«Or¿ôSí?1+¼u£ŽûP„*[¥ù$Îðé#Éæ2cÅ®d _6Ê#˜Xs0K6i®ÿy:n„Va)©ç½!ùY¹i£4°?ƒ ÜnÎÄaº¹ñPáÁ"£ûÚùƒ>4apzÄ :sW˜¬a¥³äRfkäÓ:¤†=ýúþ” ‡3 "PêÈ‚œ‚üêeé„Ê1EÅŽMZ²B°«i†Iò¬N»|ÃÖ¤(7ž³)BºÀK@W ÅiÑ4üŠª·„ÿMâÖd¯Å*©+€óèéuŠQ©ãwÞ^Ñøxþ2I¬´ca„ú:y_k›#I8÷ê™_ ¾U{§ä¿Å¿èêé«A»3,Á­û-ŸÝtjC/À06yf(ÅV5I»ãÕIOZ#©£V ÏÜûx<ùØ×7ñÊ»ëÂý†-®ÏÃs_§‰>ޝ¤¬xK7£/j`ˆ]ߪ\”¸ÊLH6oÒêæ~¿a½}ºÜfu˜¡¼"ÕMáîWŒs£C…v¨W{Rþ~÷>©˜L?™‹@Y):‹V¿ÍÕã(äÏò¦®wƒ½+%³e§e|÷¯“ªg ÒÃÕ‰Ël½²’ÅZ —G\ÐͱU–)É_õûm:h«/ÐÚ¤Qœ }VÈÇ,KÜÌL²Õ”Ò‡öÑÍÓô95p¢õ›eÚFF†•¤Ê}¸³_æ—¹lñíqöqÇg0ÉHßSñ“[ íwñVf°î=¹e&ÛšŽãº|°âG¶EíU ¥¢BbÉÃ1q.¬R£UÑ?×Z#u£õo“‚kاºÕÙQN¤¾@ƒ‰µ¢‰/J۸多ºѵ¡¬„ò¹ =9åNÚ­ l(ºáý€¤;²'|ÚbqUOåéËM`’ÊOȪå}0ß9WÌ‚¦t³Óy ¶ÿ÷˜7o0uDtFMNÄxÀ|ý}¾„Ñ»s$HΆ9!–1¿§¶ðfBq{Z7tîcËK¹NÙV ~I²ÊÛt6OÂîFk(©f¡%³RûôVÁCÕÙr¼B9ÄÙióþw£?¾Z˜kt%º»ó± ì ­µ”¤´òRÂ*‘ÒÿùÅ2 1õò‰X8áÅÀ‚Ö×èN̩֜ŒKÁ?ÓjoUNq§¾Rî\%dWÃéûT©‘,à?ƒX8ñd|”³¯N#þîy½4 yfl®ï¹lÀÞõÓ•ŸÚ1% ‘°•䯨WgÇM7>AKYµ1ûÝBf._\"^`ºï8'DX]?&+!B¶d$È‹lD3'û’#ó ÍZÿ­ Ã:Ç P§}ÅJ²ùýìת¸Ë†êO0îã¥x’—Ašˆ½ÝÔúÅ­tð]˜?|°šãžèˆ…Ìœè$AgÍÓéM†~*È“p¯æ{HÜg©-§ÛÅœÍåñá肸hÙ¶kU Rh×!N 2xu(™bSYBt:î A-*÷\‰"ÒLÔŸ¨Åwå–‹µs’WIÝàæ°ÅùÕ9]0 GZ©õ÷º Ë«øØ•ލªôÿ)x‹N:am<•ecww'}¯Ÿ`o v`ÞŒ‚(*S,”âR0“€å­&T{w5 s‰,eεnY!îü£€»6k/ô5ËŒŒÀCæÐëÂÄ fïCýuMÅEøöœ¤¹ 4˜uÖ%\Äìjó­: ¥:ÅV2jÊŸÿ~X1.ŠiKK“šzY¤\[àæ– „ïªôÍÏ?ì»_Ö3÷ÚÈ[ l5¹Æúú‰9ó¬û2J56 ž³’Oõ}äŒçùv×i µú‘tÕbª•­9tàvÑ þ™Aðm† vaËÀO>ïNÇâRg"?F«ŽùæØØ#Äå5Á<&p=´«}µà–FÀÈ|ÏÚŠßä·VkÉsÃÿWi–© „¾2|^t†~z±Ø4î…/:7nê—CŽÏݪQQ´†k VhÆÑíûßSã–ü|‹Xí,‰O&bß3 ­¨ÛK1II7Á’sÛfŠ}Ê~¹óaéÕZóVú}‚öO¿|UÀdwró?@µa0˜Ê°io½(/½êò|Føz"yÆ]3Ì}Z… ——ûŠ3ÊóŒÅ|À÷¥Î±yX é°Ã¬Æ¼~8Ö^ヨ@•Æz)ç Ø'F<–•iIEcVUüï½§¾Ïya $q ½¦4aö•»Ùï;î˜s€Þþñdë• !=ëC÷=ðsUû ¨Î§Hž1…JŽŠ¤Y¯ËP¡ô,¤(X-ÉJÊV¦åÉ„f¹†r·í¸¹÷m…ãâTÞ\8ƉìåÿIp1*kËÆ©Ð¬Ë¨lÞ䲺ˆ=“-±[‹zj»ÚSi±Þ}J–'+Ãw¿eÇóH’8CÔ,' Á{êˆuH˜°¬T­›2ìýMÃIë¶õa‚µeÅôåvˆÅl:UÚå*h뉤&•2;R­¡*@]ê¦2“l¦åùE'\;RG–íLwS´óü^ ·4B4Í›öjå%¢ò¦óŠZE1ÃqC2xwÂô»˜òMT¢Ê¹nƒÿÚýøNygÞ‡ ê’~ f+qA9‡|+O^ÂÓ[ÝÍ—'SCƒ>¬Y•¿5bìšîXJVø—i%`B “§[r8ôÛ s²ïjòé°Ô_Ó«WÔ4t–»ÍmÓ}DµÆÅ `fï`O mc½ó=T‹Qþ•Cc1ÙO^ïZ”L Zcï@duÖ¼.(Òc˜‹VYîYuÅn]bIuå¹ÀÆÂƒy› ‡O"'è_üý¦{dMG?Ûã½mxâÓgÏ8­„ä”wÆH÷Þ£±Üð­c :;Nª¶z鎠Bx^8|©[üŠ W¹/hIß ü\)³ š©/\¿N–rÞûdQ­â<ɽ ¹W_¬ùʽi^À‘–)¾Dá£Gû.kä§»oZ;ÊõH*ÜS4ckî\<;q¤Ödù‰u™•â„!$žÙÜsüLï$Wµ"tµòИn)¨ЦÃ{¨=ù ë¦"^üªdÇò{ÀŠÒqÞІdšÐ(}.êÕxýlÌ…)B¸ß?3Ú^~2~JYthÌ–1=‡Z¤ÍA2Ü{±8œ9V4eà !Ö4mo±6OiÓe(°×€øs/ªsóâÜߢjJé¿…sG")SËG—©ÓdÆŸÛÛússùPL)D йãÇpÛ¾¬ëºly "ˆ®,è¥Ã(½dÆR*cïÍÍ×êØöGuÅÅ¥5²¤ 1™0?eÌ‘¢|tðšœ9¸ym(‚ÌWC»/¾Kê ÅjÈœ45höÙ20ŠÕdžg#A–n_Ã^™9¦¶à³Y#„øcy»Q;›:óÿ ¯.YʽŠ_‚ò,°0ŠJòv¯©¿Ã›VÅ=Ù|Nð6Tqãµai´»°µZ³¡ôæXêk¿häÄÔRœv–9e|c4H!ïŽQ³Vy´î”Œo½ Ê:£ûí­Â¹üzb¯¹ðÞm´}Ž˜ý÷Hªe%^¡ü*c¶oê:bM¼ÖlY »Ã2ê®I4ß/¸l€1ÍQÒ)³¾ZýÑu³[dÅ“¤™ûÊ#¹1íj}–Cëz–óéÃ¥ó†»H‘Kv¢%wïZw~FâD‡Ì$a´Ûþ™þÒEmÊ¯Ç é9cTåà k¤¥µ Îø€×@Â7Fùªüiõs»ÛÆ5ß?,¢ö”IU©qŒÆ´`úJ\áZ%$æ­iŠ^ûðòïV¹SQ½ÇÓÁ}G†\iPK=þ¥‚ 5:þ «ÜLC=ÆðŽ!в{úÐ*ò5Vöú¡ú^Ly^™è¨b¹7Ö4)¦Y«ì®•ßs;ð\õȦà*ÒœèPÙÒ"T4Ë=|/C•lKÝu€’k¥ÿnðIv×î,ÒA± æ€çåkþ²>'TЮµWÝc¡Oç <º=‡Žàú¹ÜNšm&‰5Ž‚ã}Cs¤äÐ&×ß=@5iÉ ¤Œ×³î[¸‘Z*lË/ óˆ¶RíÓ ¡K7Ýõ! ”«¬Ùþ(Ìü`¢ç-ŒÊ8[Èì^{»à¨—å#¨EK‚lÂ"Š)PÛIV˜ÙôtðŒØÔ¥Gœwt0DTfÄÇ×Ãe”í«Ì‹øç#‹>e–ž¾¥sn­ ¨b/À§á^ŠSŸÇžÅðWµM’`ZçÚL Ìƒ|ÖöŸ~Š^pã°òOBpQ±\LB(]ßü5Ù´º˜XxÇË^¡£¥j3dc2fÕ”s;û7®‡Ý>)7aãɳŸ¢îV>†­o˜q¼ða'm h—‘þ-ËÅ₟Lj¸^Âjö0‡r÷fvH¼¸Áù#Ùc™æ>·ä—¼e5$;?9#kÔmV«µXLÁ~—U›ª‡õfÈ: ²:-xq5©v)þ”î 1 ŽÄá{7Rpp»¾ö¾ôŠÄ.…žìY|pÎM›ôZüÇE’ ÅJ“PTÙ}çf…(Û!a•è  D¹¸Z¿nø ÌÉדûÇäh#þ°‹’q‰byï¡Scñ¨°5ãZ榘¿ŒN¹5ûs|3ø51´ôçöV‚ÐÄ}“°’@ªÉ‡Ào†Ÿæ2³¨kD3™nW×CÇï!¨õ¨a].Åji´Ð¡]ßLÓ*í ¶ê "(tÝhú}SkeJ7‚pß Ðë1ä/D4«‹íÚX#ß¡õFLw7⽦-œ˜ÏeɈ*y/ŽCtùÕ‚E;{Œ˜ÀnÐDŠÐ üš0C¬|}¡ŽÈ.‘~cöxj«ü¹HW«œ[Jí½ÄOZ—îºS÷ÕÞÝ© f8ãöõj®zÀU>¢®f%ŠÁcj"æ¥}Åšæ!ã¯ß¯ºh(‡ZŠøM;ïÜ&ÿLÿ´Çf$•ÇË”Ž—Õˆ\f™ÜUä´ËG$$ßô¾¨x$ÈÐa.uIsÆ´!Z¹`µ¿Fmãé8ÜQi`Q¨^‹ü€|$>¼»; “thGã@ '9Yy¼ëF§wÍu¹ÝÃæ©¿Ý_7¶u|ÖÐøÐYyèê…M`•Æugw—Õp—ƒœºeðþw¦Ú²”1Xï÷‰•)ßLýɫکQ…@McAÛ•2¢ Á–ÛéRÑd1Ò[7·° ¶&WÂd:(:ì,Ó”n%·kÖ_†6Œ•Ì:–ªižÝšàJùPШh¢yK@¿%×mâ£<œËRè"¼~š0¬ÊhÓõ!Áþ;i”Ú‰™Õ´›ÓõTxüˆ<>·êÌŒzÌRwCÀ7†Oa®ƒc í${iºû¤ü‘dkë—×[ÆA /=·®IÀC#=r.ÿb^“öѺäm"!"â§ï¸ÝÄe&oÐ×£L[3ã׿ßýg¾ÌþhW·úWŸƒØße_üœQ{ !pªr%  5ñÈ?Áª×<}`3ïU(@tÙÂRéBH»ûÏ%gDX?ÛÉ-‹v^~7õ±Pªjci§c™ìwj `J(bC0†hÖeR‹WíNo€æïçùñÿ?ðÁ&@·” Ë.ý³ÔGÎÀ1&ys³°ÄW4}’ÂÃ:öå*9g ½FXPÛÊ8ÜÑ&Ë ÂÜ4W÷iv<Ë,Ä)ÒcfMlîo‘f/ëæ »}òÜ۽ݥۃ›v׳Þ5¬È€é+›g˜/†ã*ðÜ_æ©k‘àvØ…Õ2ÌÑ6±#ûîv™r©ežE¨Ó\Á4rε%÷u·³Ô€¼b \°"Š9êéï½F˜* ³éK6|zcd®w_yk¸1DÈ0à.T¤Ü×D¥bvgþóO4¯Ló ¨Fsd!W~¸R»„XšŒÉ¯Ä¸Véb4ˆV¢ð‘àÅMY\Ʊ¨ª Å `V® gØ)Ò¤ ¨ãXßpJ¶˜Nìkhüâ³M}’n5yéôô¬R¶?—.¿‚<„ÃÜì?-ù%í˜s nfc:¶ÐãýøÇbó6ÆÅ#'¡G]uî¸8Ü,?°Ü“™¨ŽáF:œ’±ƒƒœL ë耬‡Œ Zà˜[¦iŠ&*;²¾ïjDœÅóA„ÄÀ èõdÚ§¯ˆ“-õŽˆÊ²Ê.‹ÔïàGT «~<¢)0$©Q7ŠL3üÒ¿ec1JŒl&¬9›¤·˜1kËòÜeð¼þ jyÓNuø,ËýŒ‚D&X>½»šìH2 g˜ØGÐÓö ¼ÝÌÉöôeÊÆ‘^Ow;²€‚‡µµ3u5+ýhº£)¾¡ÆÓœ~ ØMÅü]§ÝŠ«O´£IçWçþïáþ°K±¢4ßgÖkÒÙ³l-»¶=‘SŒ>¨µW9»G«WeH+Ó+êšš’jf_RÐ5éЉ;™šr{ [o>ç¤AãU(õ)ŒíáüßU¦Üëô ™Ï ƒ­„b&©¾´í’_Î@Ao)‘@W`ÝkŸJ:uìÓ%ž¤ u^v"W6 ÜêþذȎZ:²ìPÊöáEj‡€da*-QŸÊÎئßW¢„¶8LœÊ"GÜ0V²5Y¯¯°þ<šÙбŒï¬rt.FÁ\ã<2â}JŒ_ÀüÊž:2{Ö¼™ëÌ!–Í‹—& J ·®ÎY*ž|c"£.ûG–JæP©^Êe€=,º\$Œ± az(jþ¶”\ïçy|—kéªixuŸéçlô©(åTîò-A?ÖÎÀŒ è.϶¬:²hÌÆÉs7#§PW³Ñ¢®cý²’÷ܾ®èm=*&wN_½¬ ”bº%¼}Îï9-ðß?| Ú~F°ùK.xRË@IæF¦Àú—DRè‹™÷¢c¬*rwÌ‚—5D£-A¬~H7ßÛˆ5æþÁß$}±‘äöŠ<§4¢ÀΑɛ ~\wùtÇÖ , o4byõ)ŒPÂKiŒº‡ óûÈ!•IÉ0Õ= Óé͸ÃÔé%U#Ã_, dZ…{†põìÅ(Š r& £­«ÉÃ"?¥ÉõÊiæø6§å‹T¶Mt5`•;ÌÄÈǼ۾Þzu:0%c“úsÐz*•-wñH¶yÈ ÃO ·–­éÚïGžhwžZ$»PH[ÆN™r¦õ“³Ã@'κ7¤ä9›qŠÁ±hÜEˆÇ$¨! êxº>RÅ/¯ñB7"/ƒí|N‡òB訽·MgÑÃ=ÒÕ)”Òj§°æª9²ã*hl{éOÑ+k®cxèSR“Hb9BœP‹%ù ŒŠ’ ráe/Og£•èSãA i2i|¿)áE¯O:19ˆö>TîB“ž=® ¶s=‡¿?]ὪԨõ®«å’Àë\nÙ7Ü^ïŒ%ùkjØÒ¯‚>ñÊŽÏ=Ç"qŸq­¯:ªâKÔvNþõ°…í/Ñ÷ŽXAöËð`NYýâ`°º€^¨$Ê„ 3F­C"{ƒÐ o95BG ù¯yGð³8šÖ¢ßƒUQñÈP}Ô “~Õ³ÚzÀ©sÎA Ú€zÊÛF¿½Hð©Ž(¹¨úâ7£¤ÿ»ï³O³†8]©²Tïg€/5-viSdÑf=C5¿®_å/Uì]Ò-楂|‰2™Gä‘:.ÙÞ¦¤È&ÂÉq.ܼ; ÚzfçTRÀ£ÎaOÀÛ´yÐB(!æß[„*‚Ù"¥,~gup•é’h‚ì¼Bñ eÚ£%>fu¢ò¶,KàÍSI%î¢5p 6Í&+º7fÖÙl¦Ì‰#¤ÖÛ*¨‚‡øÀO¦0ºî?™†/š&§#fÜs6Ó®uÅöÔ€¬2=íõû­Íj«‡C‘Y¨]S«»ˆšôº#*¶.–ü]¯>÷Í¥z«Ò7Êbî9ä—'Ñ ¸ ¢,IµÞN³×H`ñ+Kž@ò@v9Ï ÑRg¥—r0|v`ǵn¸g½Ê¨÷% hyJ€½—If”\uT›E)ÁQÔÿxF®/Ü3T¿-ÉøH6„í5ÔE”f?…~nã”ä ™‚ˆ0@eçÓ­¸N7(˜Y#ÔÉ.SÒ/CùFÙ•¿S­Ñˆ˜¾Ùo\Üf9œð”?ç[‘MĸØß ê¬%„.sxDfƒ“e±tó®»Ä·-gúg,¤S†ÍCȾe˜kœ£èvi±3„`Ù씘²Hv¿í* t¢‚rSKÙq[·9”­cÖå$OsÛ-¯ÊDÜdÞÍ>š55Qî1 IÕ½•D[.f[­³G¶éÚ¨O‚)?ØEÂeKˆ„„GÒØÎ0Láêà y‚çI>]m'‡PPp¯qŽõˆ,1ÜØâé‘ií`êkr`g,š{÷³šk¡ìÁâ¹À¹‹tÄÂŽ2M›t½Ègõj1à…æGOLP‰Íd*ÁQÉ$¢øÌëÃt7BX¿–‚gu» c,Iäg6u/- ÇÜÉ郘‘£gÊ«iyuXÎâô>ÅZò%4âùP*cù(Sq_‹šG0ã í¬/³JsSÒX9íõ¸”c£æ·Df­Â ¡å(#í$@h)ŽÞ¢‰ñËžò÷õHD(Uܽ5EWI–šY<¨í[uÅ,ZU¶‚H&v·½þò<ЈÙW¸ ¾#ñwó¯Jr Î2‡*FE{ÜÈÒ'jŠ_ׯfçÀ» kb'o‘[cÛk&’£Hêlm7ÅòB/ëösdñ&ˆWg,a_¤o )zs‡hÅ óÄܶ›×«QÁ_eKȳ¡%úÆöŸÅ/Tî¥o;œØ¹m<ýh Ôìe"ù8 )j…í®ƒl=WŸ»Ê‚ûõ]Ä Ù,‰æcR;Pk?2Fð7pHEØPZ‘±ƒ×I¶íêÿ¨À.È‹|6S's!ï`qÜ멆˼™8©Tsƒâú¬o‰|Æ›g(·©ÃñY¼¸q]ûýëñM‚tq7E”È ›ŒüÛŠ|å¨+Û{t»¿z`Àä®h$GkQ”˜´8k‡¿eÛ(ç}xD„}3ÆTD!ÈÃg¬Aýn47F•¶9ñ\óe*•Hz4–‘䵨¥)©éyë¦òÖðË„õ‘C…^m57­žÓ&€•óàÇR´›R’ð³ÚÎS÷§¶°këes¢ê”ÿ§fÆ@Ã<}r1P:BSÑ{Å^[Á>ÓEtœí9im°¸U¢<éás³ŽŽÃÉ»[±ZÜÌ«©c(šE©¸ìP³4”[Õ ÖäÄØ%àØ˜Ž?uò›N.ü¡ØS¬ÛcÉeR‡4bqá+hŠœ¬°–>ÊùÛ‘YgP.”o±2‹¿åÁÆ ÅçSÊHUi/¸î‰– ù—ÎÎ÷kAÀ6ƒ8{esˆoiØoZNñ*Œ[7H¢ùï\Þ4¨½×ÂÿçÛhžaÔæh½ BCs”ý¡¨šê:RYª-kÅÚTûþäàô»AÒÜ|À4È‹Ó0‰um jdìÆG除p ÁöÃ-Æb@õw‰Ë¶]p°ÂôTéhŸ#F d‰HKóº,‹Öj+ù›“ÙrÀIšZ—|QjîS‹2ž ÛÂ’‡ÀÇHvµqP¡Ð¬Çžk§! §8>[[vþ‹¡ùK¾Äßq)Xye"yÉyQ (èÊ;Ò 9;m4½â†¯xF7ïù5­7Ë«(Vùœx(<¬ä)Ý •ÀÅÌV3”ßßJ¯ƒaq8«íö\çµ¹Ö¤x>ìñ@G2ÀŨj꾂QÈVÒ²ƒ"%#Ÿr¬¼¤TÎÒ½m-‘&Œv>*®ÏbM[Ô¡ú ]j~élÔû{pœ×ÀòÜô<š²9x9;¿ñþm&hYÖŒWƒ=‚>±©De~oÁXr5&­Î1`íÐ_b™=EœJk˜?N²Z–pR}3án¤iY•¥)Aø¿¾Kº;xÉÕÔ‚Òo¬²RøK»@å¬CX©ùY`‰:ÍX‡Rõ»æ›Lý±‰‹]=ÄožšP"ÔEnw¾’BûeÓžpWŒÆƒË¹'ÈÀãÚs·Ióh—G¾¤E±DŸ«št±KÎ\£ü¼Olބ̵Yiž‹¾5q¨’àípõ`šÑEooÔóø#}:"k :ÆŒ†¬JȦëŠêEën5ýþ q9#«1±ˆ¥Ã©Q·´XÇg(ÍñZr¸F ˆ¶T|…³&݉8eCaQoýùh“þ‹Ð Ù›—Ö±™¥Å€ûØË°´Çx†ìP¥]T^6=O³5 9?aÛý¶ oÎßíBµ©Ý¨‰• Ô‚— Ц}Šüè{ wYf$~ŸtñW7}ØYPbù!tH×¥£–ã¸dy¤€19”eþ j?~B?õŽ4) u§âõ'ͼ6Ân÷2½-– Ëb‘Æ þ7äl )hÁâî‰S~ì†C³ é Í=y8zîäêÑíÓ^—5ÝCûõ8h»×ºN9Â’)æh á!káûåaíÄd@]ÂEùªúrÜöQöUA`áÕ°ÏŒgZs;8JÃèã^à.9¶Q•Aßh@¹l;=nž|Š“•õ¡ãt³®\Y * Ë”½N9êߥh8å¿Ånp‹Ê¶šNy£ü‚Éðô2£òPì)dÂæÎÐóIû‘ÜŽ¨5Âu²H[SŸäÀ£?¬¤øâräºÁ0 6¤ù¦QFþÔë4îTi㈕ÁÒx•B?3¦D5çVY ’ƒïž¾ðô °%êOkïH>äà¸gÇŒ=àÛ€‡ûKLAšÍ{̓Zuù \U@z`m“±ó’[MYÚÂåT©òŸpu»ÚŠ×;) ™È#: IYèŒI™$øÞ;W²"U|6z<ßÊ/áÃ^9=€WØ¿|P#9ôV »§E’Dgx7Ý  í9äAá2؉Oû³ï¦$‚ÀAÙ&bPþÃ\­“½Ëo‚ 3"´óìCòÕ©jLü éÝB\–ófçLÙ1ÏYã@‰‘‰Þ3¯8ÝæÐU§éï Lnä'ŒMøéˆÛõ‚ïv‹-&9}AæÙÄz1¤oT;KÅÇptÿ.Þ@™#æÉ%ׯQ‡%ä°ä…‹á"Ù?7ËkÀ&qI솛 ÂÁà ‰º“\+P”×!#8ØöÞ’°•0˜e‡k{É#ŸËT({çµ.•@ßÔ¡Ëñv´ñËáËÁ*Çoÿn²sû˜OqwcË#ÂuZfÚU¤6 yrÊÂCÄ¡>Qð@cÒ@åzDI>÷ !“&­G¢J¢%ÌØá.;ÈAŸORúÿúå:¯¹VDZ|¹uÆ–,ÓÑê‚Ó»'HE/¾n±_!/mD–zÊ}‘‘íi¶4TpýN%ÚÒ™½0£nկ峟™„ù}ËŽ©¯üÖjîÆPŽW`›BŽÈ|»k#¶˜|,ø4Z Å@—)4ËMF$¹â!ú:kTKÛ³ )Üêè&W©ûDè—¹s•©’êàVpweúÁ œ,¼ÁˆöMùiaøå¿f|;m| 2çw&D÷êtä¤1 «IÝÕCÞHÔ¿'^®c}vA]Èì$'=&P;êògØÀäjë(\âŠþáä G ø—E½î„ /CUèë¦hî¶[‰$Ã}äUþ3KWj`…qR{©{­¿ÍdÅâdŠE'ÕV‘’ÊÙ–É!„ƒw‹ W :âfã¿’“dE%Õ…}ø»Wæð‘øs„¶?lw—»ÑVXÓ9Åöɉöga=§c€6LÍ6J9üPB¦çP5¼Ý+NXÉÅRžÊ— È4:Ä‹0Ñ!,KÂæ\üN8ÇPœ:8r]‹d³?][9ù™ì쪡ú UÉVжGnùKØ…>§œ¹\Ð^qÌ)jóZMP| 3Ò´/œÑÝpŽAð‰°«:öZé*‰Ã;UZ¾¦D˜`üÞ~k-óØÖÉzç €lpú¼°j’©FEAxÁ>DàK‹îöWº NúÝ=˜ÜÆñèÄioÍ´Ð'ŒÀnCFÖÅ©Zù&õ—Ù`ÔòP/÷ÙÑ—NÖ¯-ùônnàþgó´wzŽ·]y3„-SIJÙïœ]ƒÛñ¾½LªÍÉUÇ•ZÙêÏ ¼ú èëé­‹á«Î!9Àè,Æýõl4d›UÚ¿»ívÚú÷\ƒM3œöEx䌊—#ƒŽÊÕÒ»²‚²5£¤`t(^ò5åi­y17cØÛ\qú-ã\;’:D ÙÑèW÷²t”¹”;„=ØT–S&5¹ŒP×^Ìuëö“Èë‘ozã8p6šøB–k¦”MÛÑ¿S^Ø{@.<‘Ãé;™Ì±`pa¤"­s/ú‚”Ot‰åRtÄ&X ½&w6¼™¬Ðʳç=i©ÍlYßfqˆ»3Ûuqr9ሹ/´¬àQ“»îŒ ¢YþSæXj¤80¸#ã§z7IOdù(Îc±£ý†Œ©4.`Ç [|ÒzrÏv3ÇrkªÇ!èi=4T ÖKÚºS©<’/W‡ãõéû ‰0¼§ë=¬o©Yá;OH`´‡¤ÛóNã¸dWµ¶¯¬NOŸO4ü%óØZa²“„T0_% pz蔲ۻCŽ“†±Qü Åù¤n‚Ië˜ZÏXæð¡œ™Baçwz÷ËV`9¬ó¢áYÇ„7ë~ìzBˆ·ÂÖC¥š­bŒÁk/¼W%Ú[¸Ô<"Æ Ï!£ ^ƒmÔx‡uÅÌD†a"f) à!¡-¾¾I–ÍïàÂlÕ©áÏ¡emô““]û€,×Í­cŸ/%‘ˆ¹Ù÷õnÝO?våð' Ù[O÷ØõüNéR:)Ã#r QýcéО1¨z´ j©Ôr“ÂÿMà«2[øÉÌÐôoGaðw‚–äR)àêèNÐ6@?°3m ;c¨ÀµêH“*"•OwÍ_]¹þ±õÖ6ŒôqÕ É×§o±`˜ÄËQ¬†öþæµúrÌ~ì?B‡I7óõ¨ lÃã$E bcþ¡HÛ§Åa'ŸúGFeÁvƒÎX­bøU˜‘æHy9GÈòø ˜g¾·cLK´ìnpÓý¤ÊøÅŸÖ°UÌÒ9Þ…_áŒ?aª4óÝ«`à n˜°I=Ä´l0÷¸Þa+jÓ‹hçyãr'„lDQ!øÌ°/S…çß6î,O8 ɈâO&B‡ìdò~CÂ"¸SéÊÌñ4 u“ßT1J*ÝtDŸt%ïôøý.+i¾ s{`z˜ˆä4¨–vëXÆý¥ŒEÑâT‘ìN+•…ŽaW¢åb¸S&“܆c< TŽ´?5}ƒ4Œ/tŒ.‚ŽÒE6?ºØfY‡í6c%l^hŸ7ÐŽÓ]¾±:|;w_Ôx%šht!Kþ÷y1×RcoTÙezSY;«K3¨”PåÙ¸ªºY/‚òtÈÖäq{¥úËFÚ©&4öæ$°–L$Ú1?s@©ÝÊþ­æù`ò°‡ÈYÂýµ•X³f÷§óaùGÀ4ý Wø“YþÏ–eé)ô·ÐÜUe!ÆžU4s Ì©_FáÓǼb@Ä¢HþT{cïËÅìá8XØC‘›æ×êî%暑ô–€È2¡câs晴y%Ï¢ŸÌÂæ3jv«?®«ãÙ26„Uì¿8 ,%¸’{7 ½1õ<ÚYŠÔv9èH;ì0»ÔLýu",ò0IýÂ¥Ü/Ký3ùªåºr–øÀïÿ–‹ªoRð÷G°Ð†"f) óãpÓ—ƒü ÷¿ÑstDfmPŒf¢kY@%iÑŒÎZÉå,XÂöþˆ ˜¬~‹¼Ÿ¢* Ã.x2#äWÔræÇ£Õ^„3ÉlÂO@èm)©Q/W7?Ìs%}#pýŽr*»åz+t*ÛK:Ù~Jµdé ­Ö|5Þ~”)ûZôPva¾ÌW•iæÚ%‘ ?Q øºr¥ ÂráŸúvÕ$†eˆOU3šâ’â¯j)÷¸H7ݽ>¼×â]-õü2vËç·®+«JæZ ]½aí]ë6U_$ä µ‚”w"cÔ_g5zYfX¦™NÓ—zïßÚhsdå”B¹Ðf^n‡ƒ˜ƒ«2õF—,ÔÈžÌ`óH@xç>ðáï°ÖIe´³6Üz:ÊY£²÷q8ꢒ!œ²ÐÆÉý¾ìd-Š~­ùi•Ä]!-¾ Äª¥xôßÝògiûÖc¨þSg×—y›› qßt§¼)l.ºÉd;Âb,`€ÛÁ›1¤k½»ÃH)ï´`@A›ŒÎ³#ü„%êº10@[×@`Ñ*ª÷ ¤¥˜Ëgž^\I>ËÌÎ=°DÂn‰uíÃ}`²¾ )Ý&bðG t›Qh¨Ü{AôÃæ‚uÛò—œúµY‰3dHÉ1rxP?ÁIw‘¦á ާ:ýø)K?t J(P&0éÀÞzŸ¥‰¨}gxÄSwÜ"L€2‹²§ã#ý¯«2n|È"ØSÆÑwæ&÷'zýEåˆ÷ðΧlñJe‘jƒLZôÜK9®³’?•¡W¹VÈ€è^?¨úH<Äê?[†tçlY+™Æ1Š€Š!°]ð‘®ïhÁ€­vR˜¥ôÿg}‘וԎ¶t¼—’ëÁ‰ù:¾Ž¸ã¬ë:’Y€œÉý¶H{ÏÁÇs<ë8Þ¥M¯`û ©É¨øÕ—W|Ñâ鯇n¦€¸00 ^F¢.‚}£!#u²ÑÜû“Fœp}€Ô˜!=mÛõzãéP7¤Æ¹“U“Í]`ƒ¬xœŸæP?ÈdÛYQÓ•C䃅<@‘å>º3w[dYÔŽ—…)»G±¢ Ü}YGNlÿ¢Z£½í½Ã·ÌT«ç½†£nGU€öý³LTCº-X9ë]U‰òÚêÊ,j®šÓ™ñ­‹Q$§õ?c]N1ƒ9^~Þm éòøAž(ÏÈ©ÒŰk’+úàþÙ;``j¾S¯®~ÔQ ("qX]{ÙsŒY0¾²KlÜJgB]Atíü=¹ÔDJÚ!C²z¹Æ¦äi#ŠT §ÍÄ¡¸! æ'wb4š8i° »õE¡Bj?V4ýVp>NtxÏB[Á‹<f$„u/Uk­d{1Å7;ñXòퟤüœ€ø½Š²µÉ5:%ëÖ vY@þ:G`yU9Û×;ó9IˆgbóòFˆí®¢-æ„»$[‡‘n¦†7<;#r)@qƒRîI‚÷n<õžF¬=ñ§có|H}Yï§°ùj‡E,WZ×g`%ìWa[©ÁF{ ”écˆÅÒËYZ6_jŽçHV0áYݳkyše‰æU¸|Ê7À‰O-¿Ôã¡L©5l³ÊÚ:qÇÍ0ßbI£þÿÞ¬•:J·UKÃUvŠ›unMjì=¯LÏt… ³vþeËcE(‚¨™{T^kÎÜgBײa!vAU²v¨äè?&Q5=ÎIc&'ÇT·ŸFoï’éÿ¥E’ø¥ÚþôçBÓÙ0:X<'g§«ž4þª_KE ‚Ä}Ø'Åz“&S {nξ&ÑØ¤{qfuÃÄÒÛ`°ìJs1ŠJ&ÄÅëèà)¦•”• T·œÒR¬ÁM4iþ0Hóa]Ž&ËnI;Ù‡BÃý1t¤jŸôI³^¯áèáñ\¸K÷_‰E^n2ÖÝ TÐýOÍW›gI¢½Qéb‹­ûN*oäaJifB0’¥óF·ëÀðHnK Øî´×h¢ùfõè ©–Ê‘,¬ïC¶[RûÖÙ DF÷õBÆX[¸A:4ŠGTãük jÝÝh9(½¶(oöïZ“Sÿþ{Wþ1úë¾"ÑnÒÐÌZHúüªx“ w”ÞŒ¿–Œ?Ïj`ýŸ™úùçê…[h‡NŠp¹ø2†©’–ZfÊrDÈÃ=Ø=ÎÕ°ÑÍV”ë $yï½öƒža‡L$¸¡t,Tsòù1Ø) 1N&twØÔt)йݨ+UHâfUP£Åíêo–nvK)§vŠJ’ñÙºèÍAVã9ޱ²ä[RË*¸„ùÊm`I›Ìж9íÅIÙt‡zcÓ~ÏX †ßï^ÉiBåÙoÇýA]£^g¯.øÝV†—R*°©ŠÇ™WkƒÉÎð:rKñÂ=Iùo¼ ,_å3eþÃòΑyÍdª˜Eh‹Ò µo)ndM»û¶Týí܉/f§¼—ù¬u`¤%}Ý#þƒ”MÊëOé¦Ûy<—›UhË8xDb)¸–øŠg%G­°ñÖ&õ™äö\éx¹†B'iâìžS§W CòFvwƦYJ‹‡SØûb¥ú Þ×…ÂKÓw«€chA‡¢Kg\÷c tÚ*Å~–†q/kÑôÐ0œ¤m}MÎ&t 5Uxü©ªÛI#æDXzT˜JûÔ>wÛ&xíK¥Ø¶NkpÏ¥ ²Œ\œ_Ubcp6ÀO¯âÒKA^Æ^Ô¶Ôl‰¼wüþÔ<;,01ˆZP+a §*jÑnSaâ,ï‹@‡è9öw›thšžÌçíZŸæ³„èØœ?ïßn,Ð<-]jë‰FH ÈALè]•DÉ.ìÑl–‘ãõqüÛá<½äŒ\ËuyóÄR¢ˆd×5séb›0Á58¥RdKšq̉èÔ~?‡I\=<£ØâÍ@§±!Ë¥¡zïÚlzâVNÏŸOlµ=±[’‡‰GÙû Ëþñ†íå= ƒçàJÆ å2L-Èãj²EýUVëöTé(Ä3’ÛB.^øù1iéÿåˆE€ÙJ“|×,Œ°cRÝîà ™–Äùä·ÇŠ•,d ƒL?³bIêË~ q£©dYk~l“ˆw ðx<¾±y¹g‹Iz¥.&zW#ÁIw$¹@5O^Ç““†3”‚ª7…¾‹M´Ú·,ç5 U•pC§ö€øÃ¡EIÜDg$}ò!9 Ëüšev­¡|3ØŸ‚]õ\')¶Å­Eºl¯–j‘ò¿«¤÷_øí3‡féÏwt³‹‘wºÖ69Ó+ñçb„YêYǬ’*y}`®g£ÀÍË4ãî¡e›…BaMêp”×þ)èFçåaçÉ‹yʰŬ|Ñ–óKlÇ4r±Ì!ÂÆû¶%ÒB“ãìð;J?PwÒßC}ÕŸtó„¬ß1 Uùm®§z_»2áLtšñ{.†‚"“fžƒs•Gœ®Ï4ÿ|¸ Ú7&8äU’Ô¦‹æ‡Ÿ=:óÙíýL?Dç)™óPóJðÓÕ#n©y‚Àg±®Ád”Md«]J@ ù”Ò±8 ®äa@6jßlÃ2ëY;î‘ãB~ótzz%Å÷bc¼j×|>›ß¶9Òb¤µøLÀ‡p˜ ó1Zò“™'þ¦\ât/ų‰•Z“7„“ —Ç K1ÙVÃþšíŠ‹TŸA÷›B£ë±²Ž«ƒ$<õCGÓä J‚BDgîŸêY @V“óT’ß žIú¯ˆµä ë*úãKÚªÍó¿gæþ3ûѰSõH%AגͽÉ߯ t`šWo•bŽâ=hÓ2ý&hÄ\ŽAsMYŠ R‰/ŠNøþLßââ6Å"sæ ¬Ø“²äù‡ôZPuºî*s‘Ø…šÀ1ø"9¥ÙµY?T¥žÄñ‚r3H{9ÙÇ )Õ]eâô•Ìm7 ¡ÈÏ Ä=ÍwÜw«EXýéW¤¿Ì‚ˆQbdZEks:¡P‰êHtW¤ò+€/ẻïÁY’r=œGIàˆÑ$gœÛc’àŸWPŽ·Ï~Ú GÄ$ºÿáÝHËË훇·Ê|”]¬ ªICUõCs§Ds5g(‡éJÀÌXcœáya#„×`|1$,1=á¨ô’´x„F²EFÔe¶ÏçwÈ+”6³ ìYÜÚwöœ)¸©Ã øAIéƒ¯îæƒ8mJ9š’³t™p¹Ä £ƒot`sc÷ãYŸb°G#Š‘ùWÛ„„±MÆŠÛË¡//Á¦§ ð‹Z å™AžÄ·i }«›ÿ(çñІ“.…¼’gÊf þç>®Q‹ï>w„KtËû è}ˆ´ðÚm˜¦°ÈÏáऋš:3בSg(ÊõæºÙü4,$*k ÎBÅ} ÒV×i‹xPþC®©s •>çBâJïßß 2&Î£ÓÆ;àK‚ì"7HÊ—Üjï[P¦%—³ÉndÖî_‘Í!Loe…ÊëSïÎi‹¹ å\î6'øÆŸ¤Ä墢Çu¼à»²“I2äqÐ!>µ²Ã]ÚE|醲8•,îGNàCr$~œe¡·PDth;§pAæ,ujš?¸Kf"ô½öf%KÕá¯=>âÑÝŒìÎ4AƒâԴ̇{ü4×t–G=‚#$@€;ºÅùB_‹8¼ ƒ!ã.Xö\ûÔ æ¡ßTp 5k ¬ŸüPà +(…ÓíàÔ¨LŸ¸³ÚÞÑîÐõ¸ÿ*-¦æûPˆý¯¢#·„M¨Øƒ¶N#¨A8é*°¸C]˜°µ`ßñE”“œ~Ü„¯¼È±óWýô|—¤Î·6Jµ1>J'ÓˆR›\Ãõ3nôµ¤£6W Ä{BVy>íÑþpY,-gÙëYkkHï>îj`ÐúhcóG²t7î…Q|ÍÄÞJdÀ<­ýVÒ:‡Ý§œfps˜•THý“%±ÍàbåØv"Áþ¸BÉ@«ÌàV«¯u- ˆ1Šå÷¥æ­/ó‹pJ¤f¶C~Êÿ3ü b§áÉ„û±ò¤gêâ1Aê(Ô#$•ÿSYã¶=¢½l}'9 Àj†ÎÌØdÔêH¬J)lÄÙ‰£›œoÖN¶T”è²ëP¤’‚h&ú¨KŸ2kŒëis˜v@;‘IË@²éÚŸ÷âGGN*²o¹¾>:,%ª¬¾$z×i¹¾Aý¼¦]á ”Qˆ¡lÞí$ þÄX×Ì|h=îiœ#Ìç.‘Ó/šû ¢üŒîþØB’¡˜öiÜÚ¼î;JŽfbX3ø8žf@ÙO)UR(%À ¢&‚ÓïHYþú,À°€$>˜*{(¦éî¶‘C©g Ñ(ˆ?Ê>Ùùèª-4Ñ™©”¤Ok˜Ù¿ˆ¦®–™’XÍýG™õÆ*}ž£ÊÏ™qmžæ¢!ꈫ—­züÄé†þ¾µ½Þô‡L# o7e“€f,%-.«ték 1f¹ó^Xy¾ÈÙÊx$öÌuZÉÜš¥Ä±@8FßÁ-`I ©Q¯êçœSè§×ê·šè7ÛÒC« ÷ð‡:‰BH߯õÄK´ñgRž ÊÉý|=ñû#o%u§‚æÂ4îÝþ1‹”'PI²¸ C_Èu0öQ1å^£YuP¹3Y<ãÌÃgHæ¥LE8–¶Ã Ë×’8“,'y𯺗ÀøÕmž›R}µ iïÀÍ®&i¢F‰J¼€ò ÷žÒNDzš ÂlVÿªeÇ*t6@ ÈMñUòL¬Ë`™V|ÆÝåHó éäÐ l´Œ9-¿§aRˆûpRoíßûæXXÇv’é;Q¯•d­s"Pk•GiÐ (\ŸÞFrO„¤™å p ^´WD>”—ßhýòâÞ‰Žèf=öŸþ8íè*ªş¤­ŽC}˜‚÷ðt˜DúBÝó{© 6Ê7LRuýùIx¯Œö16¾ZŸ,QÅ’´ªŸK}çù°ª ýGx/t›©T›³`ª,1FÈHæ÷_ËØ:óâëWh­Og½'ÕJà úæùµ±°çŠI@,=d‚Éreˆµ yÂTÂÕ:luY·w˜VYØ=pBö«— $©ÝûäÛ%×{ÍF)"`ACš²VbakÇàÍ=jò ï‚$¤<±{(ç: ‚×½T8üZnÁgB\LJ3ú¨ÏGDÎeꈩµˆ V‰vgDA¢ç¦úôkgÁ`Yc¨ïoLAÔënb!z 鬴(Å܈½%OÃ¥ãQy’“¨~SËñ~‹”ë&…­JGé6ˆ™¢,O±ÍêŽkøÇH™Ñf}FÝ2B¢MI8­>Í‹¬EË6vç™´å“ hÏ÷]‰Éñê8üߨ+õ’÷J{‹xiŸðõ8î±Îkõí|© Q¤¨Ö@¥”³˜ž¿`ƒŒyìØÉ½}±qHŒYù„Y\.Í”õFêÚ™é ‚„›ä}lÝïœgVU#ƒòð°Y[mNOÙ„ÎB–šz͆kqoýlÕm:=ýÆ83ù:Ðî"ã`俪âŽÁZܹ¬,:£rŠâ–Óžå1F6~ƒ˜|¯ðbxÚ³ˆ¾†aë0ÍBòΡ8ôv|ZS„<‹*ŠŸØO¤8gÀ§·øg|ìé²gCüß×9m{ìhÇã fH㟡°yÈŽðæHã`Jóš/hÎ0ΩÏ õŒJ±]2sÜ4ÊcC›Nl8ËĹûÔ).?›ÆåZ$ÎÁó}˜O¾A‹× Ü6TÓ¾_~ êô&í"@rAj=Q"7Yk;)œ¨H!)áªÁ[ë2Ê#œ¦gFüw £0ÑÙ¦}ræ\ó@„%¾þ¿í3DŸt·EKS´,”ã»’0V’ÆOY ¾‘úÚ^°yBAþ}4Ê–*—ÃÙÂéIÐk´ýFêòÜ"îŸ;¢.Aj¯l˜´ïó ˜–e…ÞÍp’ - ]èȤ#0T·àIb‚qåf¾eH&Œ/ ©|T‡çC™Í}¶Dù€÷]G˜>:UޮƃJ-¥ ñï?š †}í‘â¡?@”iqš”ZÃ,áÚk_VíFjs)«ŒÛ)^.Œ‘O™æó;ÎyèÛ¨Ù>ª³o¤ËSZ]B|~c›ãw•„òiÄ0ÝT¹p T¯j…݇&l³œIóš‹wìšÇÌèͰ W~ƒú_â"YTœ¹ý$ì´’‘ KYxÜÈÍ}—LáaraÑyK™'ˆ9¿tˆã˜´¯& -0î쮘jwëÞtwÜSêKþ‹@‹7Á5î&|"_Œ¤yGzsúõ+Æ5-¸Ê5^©NŒúª±ÔB=aË’êaÛ™=aS«‹WÓ‚9Õ; X߯ÇHÜ¢òñxQ|U²b·_áÓÙ²äôX~­P^_q  ËFû_«c‚Û‡z²ç7p‚òv0¤—ߺªVÜn^i3ÔB”Ÿµm :³¼ÒzA~[ëSù#Ó’ üÚý¨Äø•‰P <}r_‘ !¶Æ<·V.›%Ú;‚ÐÑob °×à\ŸÁ¿ºøà°Bì`ñŠŒ!•”¤voûCÅÁåN ïªI(ñ¥ôVk‹Fà?ïÄ«[<ühþN Ãé·¨åøá¤võ¥¡õh»bЋ@#ºÄïZ¶iÏ“úÛ,æºé»È$­ÔɤX YÒœSPc£™?϶È~K'hÆâ°‡¸—Ÿ„Ôœ¥E‹_³^Z#Å`ÜC´Ó÷ãw4¡xÑ’!TR¨ÇE¯Ñõ®òטHµ1‚Ź1u÷AÄT¨#›.6½Ò`ìg%#t\ðžî‡8ÍÓ: §Î—§¾Ú §õú“àñ§[gµÇýúP‹Fqœä+Aóœ#À¤Ëë%.Š–y¢†ïÜ!„|Óàܲ[8Ä4pÞÆ÷a Cîé λ¶h.ùKo,H›wÄ‚pèàžÝñþìðŽ@ÚQþ@½šÖ"Í»ñÑAJ$ô9%_à¶‘§`&eoO$y·Ò–f"BÃÑa6ðÐ ÝoýäœLÓ\ÔzÈäÉql 6‘€$cû×åEѤ~«³Ã´’yÉBǼ‡³¢ŸyßãÕV$K$Mæù¨ r?Í 7‹Iµƒn’»%:ŽÞNæ*q­¥¹À­zb÷½öÏE°¾#å”Ãmt’?±XN€½ç/Í»àteñÌ›x™WËu¨z¾\樇öeéŽé„#t/#ÎîE“rG (AO–w+ÙtxNÕç¡Ò#þoy¡ý˜€|dÆ "£%ŠP‡*–[܉£t¤Â‹¦íà†zcdhÝ( 8‚ª: sð—†·ãûÅúã—+ëpð/mq[]¿ãÀHû§:ËH¿uÏÜŸñ¯Ë J‡äɨ?ítØ#`ï2³eŠÔÈC1hÞ è¦:~Ͱl{Ÿèüð›¾6ÐUðæD#»ÇÚõe3ÆžGYÙ×a@³·ª‘'™'¹ó9’{0ß #"¢N4¾bŸÃÈzî![hôú\ìaö2z°^½DõB›õmyäÜl/!t©£ðð‡ Dõ½±]ŸbC6†°ùñ R ) An–°Z7 ¸'uÍk5Þ¸ÁÒü)i?ík^Ň©¥üN<‰-.0$: +Á_{¶ÅRG›QÇæ˜²«É5Pì bª$˜÷` æÉñµº†©¼ûïÔÍîVê¼æÙ•YòM8¦Óô4˜O¾FlM»jESu["x6Í—§Ï‰k¨ k¦{(½>–²^‚GTi­ƒÀ¥ñ¹eð$³ÜÂeñ´¼^4 ¬I³Ñ%¢à·Ål38«CWö…Oe»§Ü!~6|ÞĤœ(È,ÂðüÞÈ©/deÐr2-T™h$Ù–¯†)ƒgºïÇceŒô•¸ÛD‰±ÎDªgó `eV =rÌquâÏ×üÝ„+^ÛR¡ð7HôDzú*•¤±{cß²ã˜À`â1H+á#BØ"_ܵº~°'Ýš ËšïÓÚÑÁYìðÿ‹7X}0‘D'1A@‰Bô©W|z©bÚü¥ •5'±š= V±§2m>`œ¿óÚ8þ!ŒjÄÏðÙ«û#í.˜'¹UxÚ?͸ÇrÓ~¨ù›&Æ3Bssöã4OÕåX {"ö.ô±øOW}ºà)j°3,PZvµ=ü‰ˆ„%éÿYâfŒe" a*4« ­Í¼\ÀnºøöPñú+ö<ŠË–`Yö¾&fIÐÛÜ2ùpŽè- 䃽DÈ\'%¹ømö_ðÈ´IÉ-ÜœÜfcËý[è{Õ¼²^;íN‹ú`•oñ¾W·¤è]=wwVöPglá>•`¼“”2·Ðõÿ±‘s:s[»š¤†}¶£ÙD{:ôù3Üòu^ÒÚäjÇ`]ªF9St­Ç[k ¯PYø¤·Áþ:°ÞˆZØFärïéhU&(#a•@h$¼/üÓl™ºóàÁÔ=fÉü×ÙýÌÆéI¦ùèLÆæ×¬¿³N Ó²@aPVjJ°tcšêz%”R(—*õ{Üoì2>ÿ½k^“4~†Œª”1GP´Íò1΂ü¢ N¬Rö<¿ÍŠ4´¸í‡´ö §èEÌ«ð˜Êà¸âBã–9Š"5ö_ןçmÏWz\¸R—"Å =†™¤T§Å[\ò’8¢?ŽÌ)3„22«¤O©Vuz§ƒ§}>eâŽS|YûíÆN§ðeæy²’WWr«üÞÏK™†Ü—ñeµ›t‹£!ø|ŽhY®É›+_ïhl›¬:MƒÉtÕ‹˜p}«}WƒÁõ³Ø>ÁÖF|µ–ôƒp ´¨oK¼š‘ _8•y"˜¸§‘0qØáÁ:°°Ë²ô£10T߇ÊÒ¹49DáÝ´=~‹%…WÑ—o²Àhˆ%„%O×C Û÷b9ì7*hCL4vv »7´ø'ùq·k¡’áüjxô-ò<€¨ †\…ú`ï¶àés‘õ-f¹’M€¡ÔÚ2w{¤®/Ê#îg2‹æë;¯øìÖ†5†¬Y9Å+.ŸàI/ÌÏK ó×ù fÿ+°-Ñùæ"c¼Tý à¯gSá%94wRr¨Y nb9ÿêø8ãö1ÅÔ®»àf9SU¼˜¦ÄÞ9DèÁ»šO@VX¥[ÁÏ=;M—–ZSÇrœ›ëÊ(…ëJ–¶½0%œ“zMàNGWaLllšâª©Í‚¼Ut[÷ Òò­ë.È^šX‰Ç[ƒžÃ4¶+¶zÉÎÁµâLYô§áw®Ãž¨£L#Í2c °T£6œ¬¬nŽø7;½^ ?\RÓPîÒär‡ç£CÝæVúsâ¾wtçÐošæq´ÐHTÆ D¤í´z?mÚgº."ð8WØ*ØÖ1‹ÀD†…"jRXá¶î3ðÂþ¾vÆ´ï”YeÒÓt:S$%àsSKO%gsK‹ãa%yýÞùQ¤þ-ÔÎæ˜,7²ÈrÑË…o0GàN½~5=„püÍçѳò¼LG¼_ä™–µ%£Ç`¹°–GN}™ÑIM»æ 6%|Æ$ô·¨`¾¿Ò”ç-ˆù,¨0E)=4Ö×ù³WÈ<ô @…ë>å9ØeÍ«=ž{êM„”<ˆ<˜=$«K ›ÉÞW`и­tBØßùÒE˜Æ–7à]Ú7Õ )é$£L˜æm!Î4uĹ ›¶±¿ëG¶Ð¨\¼é)Ë?X¢ )¹k’¼.[A¬£O•oe #¼ð*ö$d÷ᤞ¡k¶+ît Ç#ðrõÆ¿rì˜ñ$ìþ«¢ª0dÔ»¼³H¾üߟÙ0˜º*6z‹®{*d$Ò‰óÙ*vR„­¹ìMM-l ¼± ™ÿþ<÷*-¼o;!Ûs-/Äñ¸y(Ÿ­S=bEÍTþ—žÎ¬äî•8PîQRD1W¾ÙÞÈ2d:ä)‰­M`_¯±Ð‹KIì¨äBIÏ3ÂÌÖ$äúÜ´çLJm½~–D糃u7¯ÀTéùn‰kTÆ«‰›Ëyõ (c¹¾ù*]XÎS{Z²YÚHkOöˆË°%³äÆTèÏëúþj¤•¼”SE(S¢ŽÕ[¦Øb 6Τ,éÍæ·Òs’7n‘Š«xEðJðGtì$;Z½t§ zT”·Õg$\þÀ¥áðœÜgO°¢Þ™·£ s×iÅ/'zvè²ZÊcORg·k„†`AžŸþmð+ AÂD‚Y–‰7Ÿh}¦&çmwñ)*>6ßê­&”æí—ôêýÕ‚mô|™+š¨ƒ/~E×¾„™+óÖ0²’WCrÈ)ÃZé(C©0¥L®t(k˜¦nù8g´ò:ÔÙ¬òÑvsér”íÕ†Bc›ìm1ÍRÞœ²Ç]é §2œ±A;6ØþÇÃò€#Ò!n4:¿íÚ-Iט9:3UlÇ“„oö>ü‹ü×Õª)ôÈUËRö¿o ,mÙòó?øÈÕ^å¼!}…Äm½l á¨u¡ïXŧ2oK15ì—˰{­D»±FÉúSÿ?“=×(° ¤:Õ¡fL¦¬«lÕÁ9[Q€?FÃzáwŠŠb<ó®t´Êž Z%,BîõÒ4v’SÉ@;«_*ãݼ@˜°g_þбéìý¤ô„——ÙFS𣇿”oŸ®ÉÔ„m³½>NâÏ_‡¸!W¯°ê$’ÁÂ'ÊýíMÁ ‰\¬l!yÖ¦á!æG§fªÛ/²1h¾Ûû17ñðîé+§iÜ~L±¤ ˆ¿R¥»¸æ\.R.ÜiÈÓ ü#d0y'lb&¢žêÜáÙEäÓ!RÍo’pùq9%Á‡º ÒrT¡Årt`úúØí°§OÔÕaÌéj]J¶§¶é¹^iÒÓIÚÿ¤wèÙ,fßiùE_\#ÄP¢%Ø…±Î]ŒR5p±›*ÓvZlEî F•Èu<]²ƒŒ/.Ù'¦C$ÒDK…~òLûl²z…vÄq.Þ=7À0ãùŠ0°2wØõ¥!¡¢á¼J¡FzæPkÌ |õ¬óö+j±Åƒ(Y–WkÑ·këk¥!éˆÊwö¥*ž³æ¿‡»±çb²0X‰¿à/ém§—êåÈÍÍ~À‰×4ÒC©\¸œO.–Üc™èEŒ1R@ T[ëIxe¥e8aÒb‚®\=Î,Ã9EŽ6 ›Wqå¢Ó¾7²€â öD¹žA‹\c¼Çî:AFúbÒSó†¹M4Äý&]C´×À%òÂÉ!F;Kniß8[µ±­éŒÃ“‡Hº¿JmѸ¢S#–p陯ܲ‰¾çnýoG–ÏѶÙ6ª} ë`Ü\\±Áf Nïµ ù ™n}Né@ÀÄžÓÜç¥=ð'çɘî»LI×Z&P§íætŽ2=,”]ß f¶™àýŸ9•ǧ’ýcŽ[o&V ”~©L=è\°5 Wü˜:]½÷ø;~¡ÂóÜO`jÙ虽›uØÐrƒ/ ±qÉÉnNÍLÎõ¥óÛ¦eäßü€³ÁðR=à¶7ÚåÀéO˜~\åIœ‚ÿWL%ÒRÞŠù’²Cc‹|K3ðXеװMSõéNõþîÑ—2>û>júV2„ÇŒG`º¡Ñ\ ­ódèÄ™ÊøøÀÏM†^šû³}xlËÃkÐiSYÇ#›mÓ»¶Ô÷vô3•ÙêìÔÏ7t<üêz!½ã† fLÏ妻I°¹Áš>i¶ö)ÙBL5Ì(‹0Ó8qƒ,#l8§h‡›.w›ž‚Uj' àé*ÿQz@ P49stå(ªòø$x33%3V’NUû¼)T2­Ù‡Ez¸0žÚ‰p²õ¤ ºBïþ<Ê7—ÈøgaTcè7b(€yÛXX;©¼”ñU^$óxduÍöaÖ?$YÆ75–06åî zõ2ýoK`Äi‰q ˆ}xŽëÄsð¢ !š[¥"׬cñ0¢Ïƒˆ2 Ý{ÏÑ$¨Dªí%Ûûó³wJ4L.…e×ô7i>^Þæèޝ‹Âú @?õ5>ªÙ\>|ÈHºÜVšœ™ª™Ëz±¡ÑoÓýTVe[äAÇ™Ê2$‹ A(sp¬^èÎ…J½ÞèÒÁ?ë{ÐpHúpëD€Pw›|ùº[ˆüé³ÝOZ\²í%ë…e;¼†97!îÕ±ÛoîSP<óSÑ CGšl„"ûÕløÄåуÌey§­HaZ²?/q óG[êAö¯ï•L».xéœHç˜eŸ 3@^ˆ…«5^/R0þÞ`Hþ D;°m]ÉGŘw‡nÓ„Ò5B AÏ•‹Þ{4· 0cX[4&*eèU`*R¹{WÍljêVr *žÙßÿØl= ­ØÖùƒ BNéj5_¶¼‘i :±qšCä@!)½µ)/4¥¤} ¥i~_åÞl`ªÐëcÈÄ…»‘h€Ò&/h8k„É!O‚9`è ¶b>ä˜Ø ò@³žim¤ߨ€b‹ñéŠÐá.(È!‰W&ñ¦ê‰ªöxÕàú¹¯\{»jÿo¶1r.ø§ÚÀ\‚Gè×ÕÕìúû—s‹CÇ­G[]í&AÂ{]E‡ÜÜ/¸aTb3R¤bÿÍmXä?ü–Ž×&jrmˆÀBáùÅy‰IõhÞrÂù‹aÓGM/”½öwÌ©oðÍ1yã/\Ï0ì½d zBX‡‚šWQï¾VþJ3ë‡mœˆ¥+Åùgöað  Çà•Ì\¨€¸¥jG&HðC NE呎¶<*#¨Æ´ ùï=ñ1„$is9âÕåIèA’š€ššÕnKT ÛeÕ8ß'MZ2iú¬T×{=q Á8´¸ÑtgyI‚ÝR,Å Ó#Î è$HŸ¢—ÁWú·ÑžNƵKÚI­ wa;g¼Way(ÓûòŒObÿ‹¯žò‹â÷¢9Mn­3jÝtc¼&âñèðø2ËÝÑl}Zܳa’DCž8-`Ì÷±Ó?ˆ«ÐmËhHÔ‡§ƒÄŒïi".W“«*&m|~Bp'ÐQލ—@S·'ÍOm`^"ww²›*¬æ)rWʺ…¦~#„€{[›—Ë¡ë“eÄU´G£Ò,0ßmtr\RÏ8eR÷¦IÙ•TlŠ5BË"/Nzßþžõ¥Â•ê8[Û–3Ë:t?@Ö7D2B_ †}{¤²ÅÏË„û±ò¤+>g”èýPs!ivD7Ýü©³Ó|™6¬«ÖH:ôú'}m¿a%M«MÔr=A#ôÏE¸ºeÉw)uz-\+ƒ/„&lzcq®Qìÿ@°ò$i—øUÁ ˆ´ ßèAð·Ð¯Qæœà ê3uoã,ÑGAÒ½†1Ö ¡\ ŠÊ! ¿å1¿¼=¯ÂÕè´YƒýYñ9F?†rF_ˆàÒ…w(§€?6£•Ö“¾ƒ~k~V5xd«d«ÞtUÊO”Œ—û³‹Ä?Æ_˜pÅÕòá…í·2©ÝÎz§rèšò« ß韥ø/¢ØeÕz3¢RX$Äù)^«AÐ>–ú7eJs1ÓÞr‘˜}Y˜¼rVcYTO+¹{—<'þõ<¬ž|ï&+ɰLä1“Ï«z‹°†0…•“Dzõg#íu5ó¢3€ÿ10‹fÏ!Ü2þÌ Õ'Á¹‰¦ÞŠšÁA™¨÷h…Ý ‡ãÅ]¥\Öw‡ Ù Ný¤ˆÆ ‘X2ÏW×›Vqk™vêW›h¾ÅïK™íÐ<)¹¡N{LP¦­°:ÕHÖôS’UŒõdÝà×=¾IÀ[ˆ5á|mhæ§<€w;l­IZ GyAòáF™H’rcë”-hI\êø·Þ-’,é9cq*n­!ËÖÇ_HW…)ñÏL'¤ðäì(åð8£Ç¼ŽjÜP­+¸š¸†Šcoô{’KFÝv‰¼iJ#Ŷ¬½Þ,#y߀ÞÁ)Ñz¡;‹ÔÙ£¨ã/¦ÏwÒÌIú:c–W½ë÷›7 ºJjÐï„þ,®Êp¾[±;À©cFV³‡¼yh/Rˆü @rÉ·M`qhV’nTµQï4ƒé§'Lo(`ÁÝäóSÈöë8˨[XÄ{‰TdÀ¦i§›“/”MMÚ }VO¹ ˆ+ÔëoW÷é£q^à wÝyù2xß`:X¥Að ifÖ5âßtkìC\‰†`@áQöÚg®Æè;Q#ƒ¢nŠ•ÖíUdÈL;!f‰”Œ€LcA‚Ì5 ß]1á-›&›tó”O÷I¦Ù¿w­|”ÇÜuøM‘ØПR*9Áb¡—ÀÌ/ØP:óÐbÛý>îëFnU®‘/Çç"×úçz´˜dé…ûþ³/u.ß2ùæ±¢<©Û´VøMAR7;ÁöИW¾ìüoï&x”–# â?ãà¹õï÷NfJX9sG[O¼òeqꮿ/ÃÒÓ)9fêJ¹×->™‡úî±U›}[°©A?€iË8ãÒ=ICÞðtÏœö-y»5Z£é²oD¨¾]Ó³ï~¿¾/>„ Í4_Éz3ȯíå§Þ…¹¼R$DK›1…+Œ³¸6̶*#xsºÚù/‰ij]Á‹ý'ê_§ï³äÊÇ»Ï $± ó» QBY «¨:Rz²˜Á·²ˆŠ0=öL’y¨ª:Ñ~ñ…œ|Ûû^‡(" Úæì¡ŒX=MX:¾=JÀ$×±X˜ÜÜ(Ï»ý,B!åv.¸wÞ ø(öE<²ÙIÜŠ6… Ty·ê£ïi[q2°ÖÑ×£ $Ós~í_ÞþÆá†4âלZ;0¡JyktjíÈ3ë4˜`˜VSY ª‰3¤‰‹W8â“#Úbö ~ Îã¯% Ì¼K,€I£ýêy Ÿ4¼<üo²@¶MÀucÆ´Ï*€å°ÝW"ÃjŒÂÓ«ìkÆ%æ1†Ì¼pˆ¤QQ%¿Áøìö|²“¢ˆ¥8€Ž ˆ¡ÉG å]=!o¬)g|óz-ž¼/ÅÕ¢ìx‡~¡«]MU`Yò<&HpÍ»Jkç¹üª#–ý¸)S4»@ª0;æmyŒ"‰¬”‡HÉÿÀG bÑ'%FDCæo²É¾AªüÏ@º²sK¼†ýªU~»Ýu¿ŸÐ˜žÇ¡ÿ”‘QNO&trG¸ó ‡ÒSª(Áè§÷M†´…­ údeôP˜}ÄcÆl^9^kÞ¶õïâ_UÀU.¼ ˜ÜÁRYñiV »Ü…E¾Zøx%FQð4q= ™x9ÑHªq"hwsÞYü²[(Ušå`ÒqEÒÖØÁùâìÆF;‰"¸¯¼ò"{œ÷9YcYRÃ&Ddü¸hj?x­-,!UçÓˆ&ü³ìÇ‚¨ÃéÒìg¢%Žw…¸E·¢¦Ú*·@ôN³žHŸ½„]Š–¾˜É>ßS<˜VóÛqž_rÁ0ùXwa˜“× E8ªdÓÈ­Œ¨3­§û¾þ©cµ][¬¨2_‚½êäã#¡“¬^Ù¢øì¶~Bâ1HPÒà@Áæ“#N˜Vã§þÎ3=1<7Ù ¡Év—fÀŸÙrŽ8UÇ ßdzäILJ}MÑõàAE„/d(zÙ[škúâ ·ËÍ3a%åñ¹÷¯t¯Äõ˜ô¦‚”ÌÞcRГ1MêÅ91înÆNíÝð°G…-‘ŸÍÝ¥ED‡Ûà6h7iìçUÒu<Žà¨¾“Ý'&Añ¯¯’}:u•íÉùloÐK9MC~PÃn}-!ÊÄJÿŸMñÈVGšÌå;˜¯;mªîÿnÄ9¬jÕÚ ¼6WTº«¶Â™uî·Ç9xÁñSy¢# *ø‘×mèʦ˥GŽÅ&ZÊ htrNC$¢KS‘ öðÆ¿¥îB›ÒRæßìõRwÓ†£`«c˜Ÿ·/Îl@ºó]1ã"¡³%ç$àj¸ˆ Œ‘%æwøø¢a#¹Ÿ&„üÇpÙz±q+’£3°:‚îA:Ý­ ß €®p¯/p‰°k¶‚pÌÃW:‰+"¼³@àªM7(äâ~…ˉmÛ é‹).Y7̦¬¤˜„ׇ~:÷uš~<Ì-¤Ö‘ŸáÊB‚ÁìsR:ĽC÷Tx/½+iÆÚš’ÄœBÔ!%2„jaÂ`Þ7W¸¤JÏþ2WAÛ «Úö϶cÄÑnŸm2ËÔ$׿æhëEúlÉüO=º+·àðb¹åU¦öi&¡E“¨f{Zr·_óÿdÉhçš#H+\ßΔìá7\8A`aÊm..»D;ùŒX4ÅÒxŸ¿¨ëŸ`$ŽéK;ªñ*4ÑœòŸŒ2‘.TÞÖ½‰ý?Š$lïiýG5ˆM•î–@"JQ‹óx2‹ù5í™À[rÌb:Ui®$"ùe²~Êø¸iÈí´Wr:t·Åw&.Wf/ä!G k|G¦:kØ×ЙKÁ™´)a+Âa¯¦³©‘¯FHjh²:ìÐ)Àû±x·´/v†oµŽí’¥»5.…>9}ÁãþŽl{ Îê} ¶ƒfýz!kæÕ½‰‡äjÕr+©dœª'n–¼»›Ð~í/ƒÙŒ}0Ù \SÔTSÞC»–€ á?ª–Ó'»YÆbOð›bÅI€zš.ëÜ}޹î`hê]YžqkSûމ°¢ü¶zä_iŠ3A·å>V±Ë‹»’w8o÷ÞÙ¾êþ¢=ݰæ›kìwP›¡¯+è5%ÍæÂç(&Š ¬åE”åߓÖa(Ä^Wm5^V€;ÏÞ-:.<À%6Ïj@v›eFOãÇa–ÿ4¿!Mê¨çD“ý¹™L“Ÿ|=*M‘ ·Fã§ûÿ86Ä}Y¾½¿è™âg-’ô ›P¿û¿`¿¾55°—¼Ë¨c‹6—FÁf…ž–èüBlAbŒL˜ò–h¢–o—¼e¼c’µ‚“´¦ˆ¹qÚ¹¬Š®Y€T†é’ŠPtt¤h)Ë2'@q,ó©Ç©¯3_ŸÒðAé¶(¬Ö¸î:;ß/L æÉ€°íiƨèúæ \Am°Ì·axØ“mÓCÊUñ D—€Mü:ü_ˆêP"òÜ„3ôÁ«ŽŽ¦8Kh–Â]Œš"=eãñ¡vF±j•š’ä2“„ |3î§ø¥aY±ªIôÍŠ»hÙ™6µ–0È¿eæOùõnkúˆ¥\"ÂǶEnæ—DSMަïŸ@ îö8=A°ºf«P§ÔøÔJïI/äé81šz% qá€W$“ ˜¶$®Ï©[ c ]ÕfòñÜÚ¤Üøñ¿^§Û@9–Æ:ÂéÒ”E¼fé$å÷ú[²á‰JîÒ\ SôRÀu¦c¸ÓÝû·!ÐsŸz#)SA-CÉv¨ú®’w¢çÎL>ã¹Fƒ—¢ A&ߩЪ{úÒÉφ¤Ç âSSYpœë„žÌíTÚ¤i`ßÞg]?ARÀp›ÄL]­U£Q Cu1ÝÞš7¹æe}Å–Ù[¬’ÿièÆ­½ÀŸtý¿s‰ø¤áÁ1e·°ŒJO âG¢·Îã¾Gô÷H/¯ˆ$sâ]Œ·É~†̨züadAO‚bêòv»(¢¿£:5Kª’‘Ùû‘['áJ8jˉÛGÛ>ÆÓ™.@ê!4-¨MË!klo¿Ì€ç ®ôZ¥XóaE@"7tކù謜j2xRe\g kýÑ%€ðŽð#üp6’›(CɤͬH¦¬_b„yZç9ðÌí¤ÐBFú÷VS „r߯ƒÝë’ÈMMíÜ oBUã™Ë¶î½¦ø4¦Ÿ+ð¨Jø:J ¥[¡ Η DSȰKdYúædDÇo!-’Å[ˆ9HˆG¤Ã¶I4ahìØ{¬)Iû‹{•>m;|‡qµDk&™Q£(Žb^ÉÔë€Cû®ÑëL@‚¼ò1.4¤Ž3[L$'J©„àCÎ!FtcÃJ?(§”Ö]lXeKZ¡6¡±…EÜÕPœ¶‘Geü}ÿ$O¦¦ÌùbÙ'Å ‰|§jV[íÄ’ "î²cº´D¢\âïMXPÂ[cç*9PrO,î¶íA¶]•²;5㢬‰ÁÈЕ?XEJëÎU3jøpyCÒÀ>ÓÄ7)|älžSd…†¦ŽÂ´ë£l.“§ ¨‘'%éÛBè/v»èœÅZ‘‡¢{¸"rIáCCš^þhD[í¶Yö}cHU1a“ Ðõ›ÉÑj»ã:ιҦ 1M$ö˜E\oU)“~ó#ñ«Øß”ÕEzêäô5é5uöEQ?¶T #0© ïTôÛlœ: Êш|âl63€|ªfâêXm²LK}Aa!Ò’e¾dŠ~÷ÑáL×µQ~ë| É®ìF’ÉF.Y“ÍÂâPÃXtÔk*µøîÜ ;(ž®wÝçU­~€¾n±gUÎ@@ À#60z§WÍš/~Ä4_Aü·"ZR¨Û3|ž$$ÜÆ^Ë¥cX§âqù®X\ÑRub A+ìS Í5yç£ÞÙ,yö0Œä>Ä•½óE v¯|z%š’x± ”¶c uôCe¨¶8‰ÍÚ®ZÉ,X(Æ9¡"ÁeŽ—ÑC7OŒ,Œ/ÆÓ=ywÝm•c¤‡\fF¡d½¿Qr#>©W?[ªõµ™“æ¹õËòÖkfpÚ>w…Þ4?WÙ³wô|—ª<¼Q©p2:5)>Ÿt˜$¯Ú­ž»†ÂüAèW@Uw›y Ž¢&rkOÆÒ™ØÌÀZ_¼X÷,©I-[H~–1rJôq‰×>ì%ÝBO²œ ¶E_º¤ž"渒ҷÞåÓ&uH»G»é ϯ8AÅO/ê[°7H8ü!}¨—â‹Y/%MÖÒ¥#XÌ^FmhH¿Ã9É&…:a„#È5¹¹]¯~©ˆê&¤(¯§ ¬TÅ)µíšrIÁ#Gÿ0sóPw×–H~ s$Š.\š9XZ¹£FB„Ðhœ‡¶pñ¨4"©¾ÂõÏ>ÿ\2,DTÓ„z4!kÀ–\Ü ‘¿jQ*¨û’ÎÃi7–âí ªÛ[ʧ “f¦*\ÍJ“¬nìÑŒÕ.pQŸìj2¯4vŸˆn™~æEÌ+ûBOO8†ß½>¡wpB(øŽ™2ñýÚ 86¦¬×+øî¨A`ˇϩuâù‚黑éwæÖ¬Û8_ .œ@æ'ý˺pz²âf'¨Rè É9.pŸ/%tî·®»&– KBø¹‡0Tú±Î%oI‡ÉÚ¥¤”‘ƒ“²AƒNÊŸº®¹×j鉰È)Þ\9"ã…½PÖ’¦/ïÈWÁ¬þ$òÙYpNHþýeœf¨¬d«0<×®ê–Ѱâ)ê „¿c®÷:"$¼òãF_ÎKfÇ[# ¢žþòHuE"0‹ŒŽä;H(¶„_:žN';!´RŸwò‰™©Óqa¶„ãU õ šP¹Ô Ò©à„¡½Q<îܘD»·â‚07GvVêPy4mÕ0=­åx`ø¹QšG!Î^ƒn´LÊ”N´c@œD\äè„ýN,Ù -/$Ÿ`{øç~…⇌yP7/²PY6z-.ì?¬¡flùnCiàúQÞxƒfJÒö<¡ÝTô˜‚5?æIQ ²ÎZì1€éÔÒŽLý¾_O*þw¯„Á{å "Ëõ²œ„ˆ6æî„æõxOÉG»í¹Ï»ë‡ùeæÐGf•R0wG ¸U·3oE,AAØ ®¤I¶KÍÉÁå^Å%³3™+«;æ6É )¼³²²;NøVªM%çîȘ±Ù¹z½—óOÖ¾ÝS™=#“˜y58Ÿ{‰w?”È èaíûZ«ï¨ã$hBË×*¤ÇËáü§JŠ cMã°Í¸ìlM»°¹¨ëï9G;Í3½Q»9 ¤Î‹s]|çR`“AÀ €ÌÎO¨¥áj´âo/``‹T¤Åéö¤8(šŒœkîoßàSɵ>‘&[õˆ/Æ:Í6µvÚ-°Iä›"‡_v".‡ûÛÄ^E ‡>ŒÁ‘уˆ±“B’14%á¹§o¥ÁMòÿm øOéž¶~ˆçÎÝtvªÔŽ—mC%ÃÁþy景úÇù¸dBU‰U«b¹\‡sQ­ ­ý8Žñ‰­±áì©™ÂïI8÷\Ô€©¾ˆgòÍsP’³úÞµˆÈÏm º6“š2¹¦ËhòM'ùh[bàüóú+¼á…“:ìŽÎRAY´-­‘e«8ïa¡9á{ÒlÕnôkîm2“„N–Û(e l¢‘)%ú÷E­}¢'d8ìÉ “î…·k›qGÌ9 ôŒÁ«¶1 `Ôº ¥^ê_gFÕÐ01W>-qÜŠ'í7h1I·ãàB[Oú‚ž°Ã‘µÛ„*e†HœƒQPеdV ^ÏŠf°ÿ»É“]ñl£SW(!&!ÎøoŽ&Tïr¬_ãøýÞ2P:ð;F#ØæÛ ¢‘†¼ÀxhÆÜq¥Kœeiƒâ¤'öjŒßk¥>¬¨t,7˜§ÝÍíë<² ÏrZÿV ,Ú`}켘3¢óÄÈ£’àJ8•&~7TjÔ«X _äéƒ(®†ÙìösuëûöëµÙä \Qe6¢/'LÓ 4¥#ßq§¸‘gÜIIq.[K žÓ¯­pw£21ým.tÜŒ<Ê¿{®ˆ “¢÷á*]}>dJ?pPQ¨Än0yj¢‘6‹šé%gw”£cÈò¢<3Úm “}ýŒ‹ûA­¢ «jPÒ ©ÌN«‰öý^uØ@™ÞM±˜gŸ&¦þÎg·úZé%7÷'ضMì¯ÄDòŸ]w.êø 2©¸N·Bgf^a¤M¦“Ùƒ³âø¦yHÂè茋-–VvµiX%"0¦¾/\»q„Aì0Sßý^!ÿÂ¥ÃhE —7èD'yÇ …ÙËÆŸ8ì^PC‹™ten}®½ì¹b/Ùèþ ¹-2T¦ ž*Τf \à¨Á6éfæGJìóÌ_ÞSŒ.Ù C¯ôèbPo|·è1D®ž:­Rí—~»DuÀ,¶G͸%šd‚ªÅéÁº—Ì!ísŽÁ_(­g:œî2‡<ükûÁÂZtlyaÎê¸ —`9ì0 …`'_%gâq;qöVzÔ Lj€œŠb#Qn´oížV›wã û#,”wQŒvŠMVÒüvùâÎ=טãßf´®Æ«ÍqɃ]š’õM3 –zZƒ˜1ù ˈ8/Xáõ sª®#ñÆï+Û~”ˆ”E½ÓÕA#ö ÓkBì±Ã@+C?'õ»7\ýæ”ͽá?Ç»@f›×QÍ"O0D ïäawy{ì!'1£«S³+ö"Íî.˯ö gü ÆKu÷“x{žÇ)9©}´׫„^ß.VÞJ[k‹d输nºÊë“{ JµNX)©kéÄd4².OÞäC ¬õ åÈÒ*Þ½Ò¢³\úR…ÉÝÕŒpç3Q%ÅV©{ÿ·¢«ÍEŠûvF ÅPõRœh¶ÕŒÑ¾ ZÔ»Ò ¾ÖË4…zR}.Yn:U\‰-ÊZ?Ú­ùÑl$ <ÜÀ Ý…ìß,õÊ NφL ƒ ÀCÛûŠé´ z”LA)x¯g#i¾ÆZ_'»¹P¨¦~_ƒ)|Í´#å“F£`Èõ”š¾ÂG¨àü§Šã¤»½Í)«ŠdÐEìI¾±öµ×uàXª{pã‡k¾×Un‰€­bŸòƒ¶½ H±9Pb¶Ð†ÖC8û'¡Œ>ÉŒËÌUZ"ZkA©èÒîµ²v W'îöïÎ%Ç‚jEɪl€¢ajY¾_¾ð4Ó£[]ÂY+ :—ò cÎ5˜‹0eT¡êví¶"°3Â->If‹ëî,ùÖ°‰‰Í¶}„x[gŒLFÒ¥3#×üÄ·MÁÕÓ4`-È:„€ô£FçÞì)èB¿`Híê5ÂÖ)«6hÕ£Ò—44ovª[¤^¼>Én}×Þ½þaí&æÐV/M÷GÉam2­›ûù C¬·^ªD£ÌîÚ ë}j†B–¬N&™ô:Ë?†CðönÙ–›4Ÿ5¤}’ßïs[ÊÔ´›!`X•r¼ç%‚ }{·k‹ úY™˜«KqÀj¦«ä1å¿%þ¬0¶Æ¤ã„Õµz÷HØv9­ùÐø¼5ˆ‘–}IjvDÝ9W²>B5ùxÃß5»ÁsW½‰ÖϽ8Ç÷yÙ’ „L×ZR»…a´°›]~¡ÄûݻkhüþÝë`ñVJÒ}a4—Žæ’„œ¿xêê%YëÂì³d‡³1^+:¹’`&–ÌçnU"®Æ‹¦ÞÁ·)Q„ÉK~1÷N•>Œ ÝZ¨[ ?ñìÃ'©BhÐ \3•þ^ÕN6‚„açJÝ™Ðvxsª+Œ^øsµP!Áo€i_Y\­æñí¯W»¥¿©+D¹fE¤lÂ.–×¶‚CÐ ŽÙØ*vtU! ’²*ø ,(rధ𠯓kÌI¬<¢}ÝíkþQÏ*‹”Ûð¤ \#÷<}ï~hJ¸«› ì#X´0Ä:x‹Èµ˜¤1T¯ö°œë²ÖüꊩáGš›±<ªƒb¦W€xïÿŠd4ŸëL(݈Ž4š Jßm´ {½¿~Ébð@²%f=C¶^.¥n‘öͺµv™ÜrüûU#õ¨|Æu›Ùä|œ í¤+YÜû‰ÝÁi7]J9¤¹¢e‘Å:Y1pÂ3ç9Û-ÌÛˆ¶IªÄù” ÊG dÄ ™mü…«w?P7»Æ…ksÍ㣤` ÌÂcÒ SµúiIƒ•Ôv—•ˆŒ²,Žlm~>@>«uKñÆrWöÞ•KöT1€3eö'`½|€øÌË 4áså{5Ó:¦R£ ñüþ^(‹épÐJŽØ¦mˆî7¥6Æõ~kÊÒn¤AE3-Œqk ½oÆJúÇ—§¾#MLÏdaŸ1µ"­Œ6«TÐE5VbÕXw.\Ò ¿°ó“|—¶æ°,ªe•½b¯o쌓=úÔØÙ㴮ѷÅ4Ýù§É_Óú4w©š®u‘Mþ¿`C=[©Ã8kr|@±¦ãî?'±¡“ÃÜaE­ð]¥¢§½¶Ži«4ô*_n–f°é¾YÃ{Í®q<×R¨_/dÆ¡[بN>Àmb9‘Ÿ-hèÖ;V(—GA¯ËÙ|uÍ$ШvT|{ÙÍsÓpÑH,/•i¿ÕæbR†¹ú5¥v²ü¡&¸øŸTÏ+žèÖoxarLØâ=ia÷À¢KW¢« ÛEüL3áãdd„E²òJØwû’à}oâ´•/ƒÖºÓlž]k±#™(*ð³(Π7ô3B7Þs†ÁI™LÂÕ—Öŕ۬?Vé¹|@™‚*Ü·B™iÅù%# lÎúùº“sŒÀeà2›z‹³eW¶e#Ì9ž6£Ï«“x/½+}®^ êz¹ Šj3D÷cˆ­j}¯-Àa|Ü)zy’œel ·YÆÒj­ÙY [äuÝS(ÔBËä?˜ß¾."y»^¾×®„?+‡Z`Sâ×Û:fÓ*¬V4rþ¿½<Š µí T•@}­“¥ ³‡*`=Î"ü:¼ÖÛzCõ3¯,4÷x—‘âìEdÛJÞw^+e6…Ïp=EÎßé"èçÖn9ŽMÿ— ¦^hvT’׌gEÉîý÷÷Çp-á¦ÆüF¢ŽM½*-qƒæ«7§Ã¼&Èø»ºg‘¦%>º&:Þ‹U¢\,’Èäp§Bó?ÑI©ÂðåE ¼bVì·ðudžÔô@?}"xS®.¥/2s}’î"{YG ƒ×Å· Êì¡$…¦²…§ƒ+6‰H¦ÑÝäº*ڣ昈afù;1 c»}Ï£Ò´^\Çâ¹À¥t=bò¸€çë?0Ü×Á?Æé)7„Ù[„}0P÷rÈ œÝµóÕ”¼•{0Aå¨Aî3kÿ„;ÀC£§a‚½”}FHd(K&b™sè>¨k":û§Ç]¶™ŒˆŸÃ@IΦ‘}+ZÛûV*‰ÐÊñ<°ˆ œë ®`ŒºŠž“ÞÝùðŽÚÏ^ü¾W»ÃÑ÷“ãÊ.ÁÚUMYo«ißkQò€k¿ð¥ =yû^XÙ8}P¡¤åu/vÇAj ­Õã̹|8Ò÷ÿ‹ÉlqJi!Ÿiè«ð 5—€ýê¿ Ò^Ì>Y c5lĸzúk‹£bùí×Ý–g%µ7îç `ÌOUw€ÒÑÏ Œ_÷©Œm6¾qwc6®ýáÊpà »馚¦jंq°Ç|ŽoµLÔá¼¥/R8Ä<¸°]ò«§2§p­Ó˜Ò67·$ z®¥‡å^É“]«M‚·ªúv[,÷Íi‰î2 çO]«ìâROñ§_9=—Ò¿dïÜV®ˆ°Óöó•á}y&„J¦Õªl®±[²&{P¥(q'?™ˆz¼\r9·›.š©s"©¬V¦‹ë7fº€°/oŦ)Rdr2d©ÃÞ·ÛxRpŒ²Êþ ›)´)L±9€‹Å.E¹£ü ‡FÚé_ÓÆ]?™'-‰hÅ{È;‚2+ÔçÖäþ‡uøß¶Înoàe@kƒ¢¾D™0•še( Qs¯¼\ýSÎyÎühn™0Ë ?Ê AÇU±Mò€±´<4‡X•o£ògb‹¾‡PknþÄÁVJ*ˆ—Ôe8ßäQ8Êgm¢{°‚Á³À~³‚ÓècÏ Ä0=%2‚àÈb ¹L2‚98áb´D"ÖYZ¡å£S9½1$¯ripçsÌ¡bÁ TÊ2¡ÿ62vìüêO¡1ÙÇÂEuç°u¦ŒŠ[^¿º}© ³ëjð¯ªL›‡/Jç‘ÅÍÉÊ<4r~z—eÓK 'áçùâ‘5¹¿!rG®ëœrϽø‚Ì>ð¡oš‚5Ð'öýçÈöÓþ– ›5›\wH“ß3ÅoÞšþÀV[¹ÀÏ*·–СÏj”ˆ{¨³¢k=/¨jÌôDØcCfÞ;«}G¼gFSÚÅå•îÀ)¹ý’.8íΨ0•»bx„¬»0`fÇìaxs?Ž«iÛ©Úi„_[å§žSw¯¾mù] ƒ7\°ÇY_Ž!ãUÕÂÐü£…âÊ‹–e`ùx-HéìLòoî³]§‹Ÿ…ödOÛú«Ûï‹å¿Ñ¤'bõ+ðþ“…uö±õ ñ‡MÃQ*ÓËËKP™epîÐW `¯ùÅ ŒLsmµsq6µÖë‚Ö7ä kAr1ÂK1ø¤íµ€Ù6çàŒgÔgPW)¾ß¥#k«2ë/“!˜„.s×n¥Ÿ-[تþ=öþgïDÅF(´xiã?ÑÎéÆwø^Á×áÐ `ƒ^åÏÀJí³IºÒ$Ú$êiÀá#eí—èm/xB°êDÚTe5ómkâiß¾´ý c=tÆÙëIÉcÌZ%n£é¾~j®c’“ûâ¦ÐH¡¹T"„ÝZf‚aTó«R¡«ýžTåYBt³œ; ½Í ?v°7€Û´§ÓøÜõ„ìí {n à©sâÙIØU-KD½Zà\6’cý®ê…’®~‰Ä¯¥²ñl~í] kɶc}'Ìã.2%;iÞƒ¨•n›¼­'Pùë 0?ÓiFIj!ù·5¸ýš‚ÚÇÿ½âÎL®&<ó3Ÿ˜ãÎàn ‰íªÀЇ’$Xv¹Ü«æ¬1#•˜°éáBÓØF:tLqU¶¢Ê´3¸9âj®&"Ÿç~@¸øæYîTÒaµ¬–¿öŠÈ|üGîµèààE쬙BŒÑ¥C‡qËi%¿Ä7Õ„ˆKB”\5-­·\IžZÔµšo{!ÌQL›UZ&+0Tª›IÌóâdn³DEÝ[ˆ#Õ®š–îI"éëm/äQãKÜR‡®¦(¼8:ÀWv•T$ÇåÔÎ^òcAÀªS•´Â~ÏZÓ‘6“—Ìâö6›bý8Qÿ<wcË&ØÏ¯}Ëk{ ¹â9œ÷dlM’!‚QµòųVšs˜CáZ"z$÷—Ëò6ªSã2rÔjÈ‘Œ©ÿøþÐð¦^c—ƒ–)õŠ+¿)®’†xìÒ|ð¬ÙÐ)òO=ûn4t£ ›¯Ù5]H v0¬Û‰A‚¡óÔ€í´Ö\ 1qø\ç¢`“Ç(†ubb'b¼ÏD”E8Sêƒ@qiè )›\êYQëC0m…I¸r’·à‹ºþZF12=Ó}é¯ SÙ¬C! ‹IÎgû‡Ú(ލ?‹SaH›Lã­q6]âÚŒZpwçý§s‹<ÎWÔ }ΟbÏ™-y/zlËááo:S·,ñ‘‡¿‘ÖTf¡¯´Ð|Ÿ°LábÆzüÿö,hj‘.äóÕq(^1-*¸„ò|}¢¶LsM/_ÒMðšòDÔˆRÞØ°ŠgLöDv'ùÉ%¸«ü€]v¢Ç·’C/®€Qb\ÿM æÌá!B–~œ9¦• ËF†‰º(¡h$¬FA–lÌÐA[ô»“ú±E×xvÅñqS!€²'òÖâI¤ìQ䇯 Ǒˌbé p€:üó]~W§Ò¯‹.íb¦A9¶<ÞVÕשÙps…YÊ*Î0IÒŠlÖªðbNоÄü›©÷k¾0>ì:ƒ‡¬Ÿ½ —Ü :öÒ—²*ôXV_ÍÒâÞ#Þ=·Ù¬c²lÛ”§¶§£ÉeBß.Õ×Ì+C)x:$")ìMR’(ÖŠtÝMŠª„HÛ]‘I§zšWé{xðä“¡‹Ý®ÙzÏÑ‘_6½ 2XÉ–röê’fº²Ý˜„ZI†c7ßÇOg¦¾ðïóþéÜV¤Ýè'róà!šPHó–L8¡õžˆÀ.ŠT{Š:Nx‰íÅ}£}×½’º‰O.¥GÊHyw–lçùAñdZ]%tüò•üSj1Êú‚‰÷T´+{œ5ÞÊ[æ$bKóLèj¨§'pNr€¨·ôªg‡ÿçû”^—1 ,­_ÓUýÁHJí3îÒlˆ#daEøeÊ…KK´šF‚W Å„ŽÛ߬úlÅž€€Ùþe¨I X¨¸~p_¸ê³›BVÆ÷v›$§Ô¬ Á- ÷“ŠÀ¸p÷)Ù¼Œj¸_Ý ¬`¤ävJÿÉA#©ÃÕ„ÛÞ/*TÑg„š:My¼ërn^±?"/³ˆ!RÒ#JþF«ÚZÍ(ü!ƒ $Ž^Ù`ôc°izn›MzUeÌ v^’ÈttV¨ÆG„ùîášžó±·|›—úm'ÑqöÎèì·Û +Ö6§MXù§¶°tH Yü¾åõ㩱ý…í¯Ðº’M¶AÂû/‚³æÌÒ¸ÄÉ,$[û›¼š”–bïÍV?»Èg"D?ñ剰NiáPŒvIüg8æ‡>Eÿó~î¬%D¥¼…‡g®êf¨à$ûBlx@jƒ]ðç̄ܛØÂ-è;‰¥ö(XÝ¿GR¡OñY\o>jð̺i ç=tvƒ4ÖVYlʆ°zžv—ÿ7þçЃ²‚sy›tÑ‚ËY·oÌhaPBœÕi-S6–Dü{j ô»K„¿¥—¯¸X˜}“}ë.hy–Þ©˜/SG¤;G5§ò. Ælµý‡ÿØlˆ@ÃP É—“p˜üË/g!çqeslôÞOµRDÔ¶ËÑ¡N´Ì!FWsæg3ßT@»¶€(“ÓöÒüÏ=lTð2˜0*bÿÐvs©á…°æZë›%±!4‡“3ïH­¹„ Û%.¢²ÿ˘qOTœ®NRøQ Š¢kÿ{þ+&£š`ŽfîÚµ5Ç~z ÔI"E ½Êun¹UÙk„¡búIE8=êH%Žëæé¢ãä†y«¿–ñA_ââ4‚A}ªã)Ý—TõÍzž;ÈvÊ[Hâ_cáDsô4B½eW“'üQ@”bNÊñ8¬Y#s©¿k;Ÿ&¶È'®w?0Aqíèoâ­Â¦rsQ+‰Óî+EWQ¶ð¿#t+•GGÜ0–×{oG/|6‚¢zç^lyÑÔÊWt[¬@6ÙˆÀ¢¨"¿g*ˆü,H<£®:¦7ÉÆXŸ8ùA {gnh ð‡a%% sÕŠÀݱÊÀî9µ«ÇRhÄË%¶‹TbKMvÞ[ú–|S°¼nz¨”ŠÇJñ«i.Õ¤ (_Ê {ù,&âIÔÉÞÿ Ä"tÜLù>î“OfsB9Þ?0ËP^5 „‡n×ñ6x>ÈÛõîúI†±g-0ùýÀOš°0]ÝT÷F¾§ˆ CÂIÔI´£0áTÇfˆUÎ&@zw¾•#j—‘O'ÐN]Ï’1t¶£YÏ6=²À1ÍS@Ï?©cWÜÕ|ð¿9ì>)]+³’ïþ†d“±Õ”UN¯ìЮ²öâèk  XT±+‘€ZϱÁRDzÒ?ÕyúºþµŠ4åîÐãVïWp[xƒj”¤¾êz*_¥FyÇÎu×;kÕ³ùÛ⺭5hJbI"0¥¡½ämðÄÒ"ÒÒôèr{µqH•ûZMýZâDC>l^ùj] ?ÈÌø:¸Ð>l/I稜äâÂõZ]³Ô4‡Ú†å6 ”vû—`§EÝÛï.Ð5Ê f뉱uÏm +ü5eüü@ ]Ýì ýƧÞ%@®DÈD «¶j¨ÃQªú’˜÷âíËM²Ý îˆ™Ø¬ÔçÜs;j+u'^‰ªyck7V—w1?”mèò;©{vêÄ’å+H®(kÄÀþãöT&žæCãoUùåÅCìà~¤½ŒâÒ¿šW\{-—¶™%ý<kÿ+7Úµ `Õ•7‡ôJéµúHÁËeîËõ˜-—eoâi|²Ø2XáÓ]õRáBSh4d‹-|à€©¤rìA·ÈTÚ}  >5¦¼7 Í¾„«MvXŸ‰´¶èÞˆe )6D[m;ªqý·2©j::hóÉ‹¼Êܵ? ¯WÇÝC1MÄŸŽ-¯´™ÉH©âáwQIr¯ :e+Ä¿˜Ï|O»}h¯Ï_ƒ„·^??oÅ|…Dó`NÃÝ%@ÀYŠoÙ¦eø…<Òâç àn•l¼ÆÅ•ºrŽ4I†¿4ee«.*=@µòäB´AžY Kø‹I}xO=†Å^耤µ²U5çTþT=]ÕËvayîcóZ…´Ñ o“$[{ƹÉ8*œMƒ¸Êâúù鬑¢aÇG?O\›NÆõ73\Ô</EzÜr/‚©ýO96?1®ýŸÊ5“ÙçWO˽îl¹.ñçü[£¯&û¢&%|†L Cfî“KVôu¡æ»ŽÆ±ñ×="óœ\½UFFšÖÈ,;•`ÎÀŸìô#APïsAoª"¿#P;Bû%%)÷Îø•Ø@Rë)ƒ½{%'õŽÂ (5zG·ÓA‡©]?ö°7ÍËõûÒüxܦk‚åŸZM¥Lú÷0‹Ø’ÖšçƒB™¿‚ã¿¢å™÷µ+º2"üO'?]0⸲ÎWz£QŠÔïœ&M¡J9+7É+Q%7ž;ˆþœ½PCÎèjosc¨¡ècÎÍéSן“cˆ¶¾o€°'î,_»ê²Ü:pµŸ·Çÿnb›m¾\òJqÈ' PÙßÌL|=5zŸ¯ /|=KÊ ¢€ ûëdnXæ‘Aí/žá.åóE)¥¼Ö2»ØàýnÞU0æÐÍVì]6qÉ#äÜÓy-Ë9‹¼Šè"Zý›tÓ½XfÖww¾êÒT€ó¨E±³åÿ®aö;%= H7ä ¡i X ’ÛŠû•«¡餵†z=,©Y7-­$>åHéŒm•*mV“{Ü•×1Õ…Èfô=c Dzòœ·‰´QC‘&…5—OHÅbru¶™~GE©m´Ž¼èuÈÌø:¸Ð>o²Ô¶J—8††ô_ô‰ãÛf[÷Ì“%ßëCæã˸ê8 »èÙiÍíã½§>ò|é¸<Ñ-xTÝ!²§¹P^ È¢Œ{!FK_¸MIñ®æ£™8$óMÝì®Åpˆ„h„Ä$F« *Ժ彙¨ 30óý…¿9;™ðë ûgrö¿vL¨XC èü¿í6!q}Þ;6âÙ©Á£ý7¾-¬uY0×uø ÷]:¹£½7b˜:@¼Ëc™ÐÂzRÒÞgýí>çÆr‘ û‹ÀÒq.ebT ³–já·$©”-_;à‡þaöRíáßõ2öÚ³îì<¤|‚ŠGYDœäÇw•¸µ9×ÕãâdÈ×¼Á·m›slÙW‡êË‘÷ óI+ªnÁÅ<¥lŠ;¹|ZJ‹pïÿ…%d‚£’Ž]©÷Ü_qE¨¯õ¿!–Q:ók¾œ×7-¯—r²L¬ü[(r‡QlÐ7Ýët¼˜6;L<ááéü‡ÝÝxO^¬ndaÃÃ&ä¨KRXu{¬¯ç’`UЉ`†ÂL:ÄÚ»E¬güæäS¤ÃG}Žçñ•Íg8(öBP”­ÜÏ\ø'ä¸az7ŽÆ„nÔPêc–SØ‹BpáŠÞ œºÈí)È/HÆ•®z7É/_N‹–ŒlßF—¬Ô¨DbÄ´˜VMó÷ñá[ÕPÆ$8÷r|<>"9qìdد¦S‘ç ni¯ßÔíÑ 3îÝ´ð8©”.ɥƻüˆ6©+¬ tû윮ד‰3K¸Ý¿†÷y¬;ËõŠM‹óº ù€bÖÝ"C„ µ*6|~â_A®¾ I»îòê³ãJ«C¦òg5,õÈ„þE¨“ÔÌ%PÒ 3[£ã„ÄWyÕÿ‡(öÂl5îLزèp©Äô*†3@sÇø,jW(tlS®‡z¹Î°>æÍÞìãA,ÿOmºâ4ÝçgkÄÚÇò¿[ˆr%®+iöj0ÛÐf\·È|ðù£Á»aASþÙoõ»j—~ؾÐ0KÝÌ¡ºµ,w˽sß@ :ŠDQ“sûúÏéÐ;˜Qü!"+' @ØbóIŒ ¨ÃR\Osœ+O Šó÷^ (˜VŽDèÄJ¬?²PÆvç6œqVó”•QïðšÓ]/Ð÷rN1^…w1óÏ"m1ûÎZVì¹íb·Ž6Iõ¯?ñãýcó§ëF2Ó‘Á$¤]e•Æ$©ÅYæ&Õ«Äý¬rSÙ`íÍ"u¯QÜRn~~ÆúˆÌD®¿bì_–2¤#âA ëL: ñþ—3dª=áŠ~C&Rñ‘lÍ·êÞ fí©„ „Lk4û¨…Ï3õ}ºô"—r ›.0òÖàö7S‡´þÖd ¶­ƒ…;±@CiŽâ\ŒsâøÀ‡°…{=»ØõVQ†Y®v]vÿ¹a˜àж£¬že<ŽOçõÁÌ£’ ôÕ µm©[[Xh™ÉÅ*.(ÂÀã ºlÊ:I×VL,ãMÈ÷‡¥·òE©êýzߌ¼ˆ{T½°EãC…þ·ø#åƒd.ÜÉûÞ{=dzºä’cÖIò6Ûü;’ƒÖöôÊsÜ!+F5!ö‘QÑB,%íŽ0Ê/u\hI9ö–v³Ç̸K²Å=¿i@Q.ø|û\æ±ò°™ÿ䣀êÕ2YýE®f°uß­¿ ³9v¡ô«W0ÁïÉѼû.×ÜÑý1yhÒ®>ã›Î4;M¿/G¶oåŒ AÅYKm¤-PÂÉX¤Žrú@*…ûþùè¨hټݛR~,•¶ ´UXè·M—ŒVEÇoÊÞEo(·Ë)w9Z;o;ãÖLæöAƒ ܧp±±½•Ta`A"/$:žIwÈÐm(¾R( ’Ó&{³Šùt" ‹v&ÓÒÛñP¨í÷7á[Ç^¨ñ­ÏQ¥¾]Í€ö!fª J䥷ؽÒÈi:r¼r¥ù„P<®"Þ;SE¹aç{š6t/º')øt¨Zç30„Û—óËÐovÔ|žg¥)ê¿MGùkaºˆéxF–ýUqŸ‰¤²Ì§G3´È¹  /1Ê!0®US¾ò„ˆwÎ =öW}g»Fö æ""uušühÖl¬ÿ{»ñAùíÍìÖµöŠŸægÎòb9.ˆÉf æ’Ñô@Ëñ¼õ«YqÃhpc©×Õ/LJ‹;¡ëªý[FÞ/Cý?•÷'€Si“ÕeS~¥¹>»1n“ánÜ¿ v¨¬ LX5X¡ ]ÇsàË9º¶e•ð.3”Vè;ñ÷Qy„v)ec°ÐÇ:‚c9`Ø. ùþtP=Ä”EÅþ¦w;'¸“Å îêàŽÔ°Ëöƒ‚Úî_²X{Ý÷’%R'ŒqÂw6£h(÷[)›öLþÙÁ«¿xË MIËpëÛ׌éÅ£jZCš0ë¾¹ó®/Z®­0J‰ÊœEÜš ¶d ƒ¼ßäy1€ (ð;~ú|CTœ"H•„@{Fnݨƒ h.nƺJ‰÷Öÿ€#šú• ؃WyZ±éŒÈT*ÈC8«ŽrH´á#h”6»h,ÑóéÂ"m;B&ùÐ+GN½¥•Ç8‡æ';þKâž‘íÿ_ÓFã ÑýH×ðÄt|Ó#¦%x_óØ…‡~áþ{UÌ¿~žþÊ<ÕºUKÆš¯Ë¤™ŠD®’5“$“]œ¾ ñ@ÿwÐiÏûœ¨ ("Ò?juZQû6©õøØ_µö…ÍYÌ×&U|(°ÙðÚD’ÍŠ9¹2ö3Ûd.P~"-€¨­ñë«ÓûOZ ß §Íè AŒîe”(€ý6lñî)ð±ñÆÄ&(8³ÛS”b`Áõ' Z HøN|ø.^%†JW$£Í‰ÏnÐlràÖ¶jK`[“Nx›]M=ÈÕS§y}b\¯Ä#-;];“­Ü³ær¯ÁPè²r£2|Íf/ìrnªxóÒÁ¬voψ kkm®=L½Œ;Ö8´…Y^÷³€æUMN‚] D5Œ©ºû ‘À^éÿÆ‘z,¿e‰0ClÅe;s¶ùuL*™øѧ‚!î/„ï) s‘:…aö®ð¦¼•%»C{áÝÜäµó3”Ž¢ CÔã'÷°vôZúŒÐâ* ÆÖ2!—ÔDë“8óo<íù߯†ÉÓ±u_ª.\XGàŒ‰áÑcvÂI‘ 4hý!D•Ž¿Ž¥öá1Z÷Z´:}ƃ*¡O0vwˆ6­DN)èôõ—×j9í¨ÂK‚¡(3‘ǰj6³ˆª&H®MOz§´ »”óÚâ–\u¸üM "ÚXú¦Œ¹|îˆ OK¿\í!mFÇ£ãÖáÞv02è[ʼ²hOSÒоÔ.¾{!@ñ ÙØíà+³ŽÃ'$™›¬b ®¿†È¸DÒôŸ7QÖó¥²]D¹…gqjY o 9…Ù7ì Uè®p*±z:0%¹uÓ,Á¸0ØDcwJóÊM8Tâ™P´Aß$MèÐlÞ‘Üü¦nÄ]#“ép/Ô–Ô7La—õ]“BÆi0óêÁOe÷¤Xß…o>{Wð9zØ` ŒOq+}I‹x‘¤m˜qá§{ܤIè÷[,©V£ÉpNyH™ÐŒë©°YÜ¡ˆüU{ÔÉBùÕ+à-¦§}]1CJ #ªbY¬í6 Ø€Bâ­VÆ 9îüê|¨n™Džë¬Lõ¾) um$š¼².Ê©€‘ZÒ>Ç\uíî†Ý¥úƤšôIù"Å¥_»ÕË *ä õ #Yc-2nøäCXÌÁ9ô}î–-™Þa dFxoÂûãÂÒüܳ­bžÕwÚ†¥ŠT[¼p@ƒ ðhMwÅ¥v6c•±xê#ñ‡±€ çAmáEKé³Xßd-·D¶'ßm%FŒÄÙ“A;7öÒõÀÏtà â#ßW„Ý6 âNÓ¶]áü^·Ò¶Çï pûïÚè-n*çR ²üÆÊQ k)OL`p”àT%=*ÄÏ$@Ÿè0àwxkí3‹xüŠŠC²ïY4¼OP lkªW‚°*Fò š,€#œ²wÞ¼Š Ï­¶ ÙóZ¹¹ö“lÎÑÎ*xÜ5ìfÓÜñîÜГ®Q@?N×Õ(á V÷MZøÃQ{\ÇßÈn/-K6ŸÃ‘žâË+°ÅÍ_ÃO}6´ø³ßÞ#¦ySlW„"iE0ýÖËVãäÛ ×»(£!„W šF»{¼iØ$m®ÊÂý)b<±^ÁB.Njüú–oì¤-‹z¸ ›a‰Œé8k›u½:™ð·Ë×JÔ³²Wërn›S;8ò]W¥t”¥­üQÖ'q}Ñg-áEÐ>÷fI¦¬’,húåZsÙyðéƒAE©S¿I…älÝ\‰‰8©!~ÕR÷Šwn‡¸eïiŠáqÐcŸ&U˜(91$T• …Æî½JöQQsq}2†—c&ÞSbaPój»i†Ü¡¬Ê“ QޤÏ?æ¥Ý,~ ÙŒƒk 4VJÅÜO3"Î¥bmY{ù «ðÚ4æ»(ykãIAO6T6Þº4‘&ºÏ2g²¾[xæÀ_hÆAßxmðœäógpIšHéÇɎ„1PÞ„¬øˆÿéÓÚYtÄ|_Ÿxf›I vmb¦ÙA>­¨ÚpàuëŠÆ]öÖâ/ø{m¯;ÍÅË‚®Ÿ²EüÎä˜ÁjÒÕý/æA9KÌ5¢¯Ó¹¼-×jhÙ#wØÉϪ#ñf>&ŸYÚà¬Ô69òYèrN©¤Ü9}o ‰ò-¡ wÓ9×ìÊÆ?±üoÁF‚‚å¥-²Å§™ñe}½¶œµQ|@d¸wÔ„U“ü˜›¬²*år›ç¨Fßc F= C‘Zg1b0Õòwj¾XŸ·V‘dèôŸ{‰çØ©@ `Wzòya(¬ ²dŒ+Ì_`´½a-X&‚ ù¤°Ÿº´¨ƒ‰'Ý©YN@×HñÖZÂÀé1^oŽžÕ•F^â3ß¶@Íõëðô¡M« áU_#Áùâ<ÔÊpûõèm¶¶ÓåÙ›Ak–íÌÉvÈ«Å3’O[‡br¦e¦WßMP³ËEY¸õ%ç±$j–ãüT!\{ mú‡]þ‡Jýà5•ÏçÞ·ûªu´Z´øÒRv&éÒïýú,OâÜè"Íæ§‹=‘‹à^o<_¼Çã'ˆ0î;ËNºƒâ¥eÝÇõÿG]öB0|d¼øÕ×à^¹•6 Ï4lîì \ÙEQúóôªé?þæ=iª/r*÷xæé*‚ ]a†fvà$••„%9­ eHñ›4Æ ¢ÂÖýÛ ~b«ÂCìw¡ì:9ßûù¥ªxÕdZÆ9²lµ¶/~cû¡·JÚtƒTB†'+\NI6&hâ¶¥T'a 5ÙÔ§“7Ó"ݵżoس|~RD¥aaMÓæ®õ7ššL+£sè fóc"ÃÁ\þ‡è¿ôzbÑ~æç±rt†Ñ"¸8’'™%4ß “¿º5†­å0$ÓÈõÁ{ÍPhóXË®´pûÐr гZªö8€ù‚Óì tøŒ‚‰.]Tö7¨ 5Hù–¨Z¿ÔÃôs/Þ̱uèÔfe¢É"u¤•Ü>{ª’l å¸@aL…œã{¡s¢‚¡FÁ„LE^ê¦îØV §ü=ú!À 'kÑ¿o:‡4*­ÈdˆîmòZo74ÿ{Ë~o²ì~ÌB¾³û˜dÐÍÏóô¤^];äšÊÂ:_ÿ-º¥¬nU¬7Œh*¨OAª€K6“Úµ& ­MÛëY±½£è$ )RmÓ¥1ßËýSñ]°GIn߉Sì X1˜p Ùâßzm—†èé#+!‰]…“Ê ¬®ØóÞ—< §Mç?ðî‚ñ¿ÉõÕ~uUEýÍp\™¿ ttJþq²$$¨NÎ^Éãgà0«½]J ûryú –`˜õnûÄ𡼌‡¶=^ŽÕ׆¼_”ÊU"µRØ)ÃJß÷@ÂÒe n夈eE~äڽʡä «Šë›÷®^€Ã$ z٠ѧ$ûe§ç °;Ö{ÄìåèA#ŸV%`¦jJ]ÆÅGZ†??á£sì (UØU­Š0`‘µR#è¼0Ð “RPŸ{{¹¨vl4$Þ\†_WÁ~ÕâE˰lÃDȇ¾o É\¹„;Æ6ä/—áÕå› Ñé•A,œË¹ZÖ¯¨]ãµ`Îdo/šÜ=¿#²{-ðFó”ú¨¸6‡WµE¹gÂ}À¡úWô_ñG;FpļB V­ÕbY`c¸¡M6gË¿}I÷ZÉYæÅ… ‰¡Š?áwÕñµ8DàpâµpHÆXâž‚žïç‚Ü`:ï݇LÄŒI*ç$9ª ”£º"ò¯P|ÿO¿ý~i!žlýP2 Â}÷Õ’’꥘ców(÷‡í}z~B=œ`wþd:y[OÊJà**˜"Þ‰"Î^ÓÎ⥬4¬, õÄ™ ¿ÿø]3óã³ÞK›Ûd‡zà€ªƒLŸZ¿ç¤øü[„`_áXqWà@Z£{6¨Â’ŽŒ7ŸÂ×5ùŒfê¾Vs[÷̰¼ uÇçÓ°Ö¿(x–ˆášL kq䇡u~ç³£!#s^G©ñß×YhfldÖd–å·„Ý‘Gc†WXUæø¢TU þeKÔþvšgo.¼Þ¾ °Ë"Ž\²šCIcD5¨(’p¿rÜÚe™ÆµPXí½jñ Â÷1¼‰i§å+2ÕÊü^ X¥ bæŠûûíEÍ€5û,¾)”½ qÊÝñ ¼øGþ»¢-ÚüÀörRïÖè{€ SlæÊ]¦TDršþLPEuËZò¼P¾rì*É2^mÝYSöRâ·ýeŸ÷üßrY\û`^9 Ì «éî|“ÉRSá_~”øÂ´»b&¥Pv¶d¿݉ Ä<&|“ªŠÏã¢ç›©bžxLãDDµ{ÙÞ !©›8ÄD÷àU',gÐJ‹¼£-PýD<$g!¶1¸äíF]³î l¯ðR,ÂÒÈå+ M>¨ØÔÌ<¸|:¾b¸š~Uø¸-&çF›7-ÆïA’¢°ð£Q½ÚŠÄ†·ÖÊS'Ûú.wˆ÷Ã…>”¦ Q0Gîù矪̃á4Ndž­ØÇàDÖýz3Ø“Ÿ pI)Ü?qxÅÓŽÌZê$Ó7s‚Qÿß x®Xyp}ZéÏ󾩆5IX^”$]ž‚H–2%†¼ûpŸÔÁf³¿˜t{u ÎhöRfzŒéI·ù«–vTž }›¿adQÌBó W ѪLgóîMn ËÖÀ´ÿÔB)f®$Ø1ø&X~5Կ׳ ' íRÿü15U†,½íùØjÞÁ— š‰¼“¡ïŠôUYchq8_OIÿZÜÌWp€ß rÉ…ðiJãÅoBtXLØÙ…˜Ð‚½$Ñ8*‚ﵡµ¼ê‘°ÒÅ3WåÈдÒkjT}%~˜ì¾ ý¢Çç0džÄ¤³â“ÓâaVžÌ.ï·¶°Ú Ðã*Üý[¦Ð¯jμ” 4 Gûkœâk&zÿYÀ¹«2˜ÌH³0 ]vHÁ1²e%Ñóεir*<Ž9¼bP»°¿¹Aˆ³Ò¨OžþÅâ±8*‰'$Š5‹Ü4¢ÖPüHg,¼hºõ[•KܪÄ >QVòC‡È –IóÝþ:õé¼Mn|ÊJw]öSº¤J“˜€&“ÆÕœÕ •D?2”Ú~½0áÐržÁHHÁïSïìF´Ñ°6˜²Ž)¼É(b÷òWÖœîÖ¶yyG׸Nõšß]wêÚk=)‚Àþzt/ty*¦Ê’?ã@C6@²OJ¾ÅÕ¥¹,g^ù¬˜Þÿ9ÛÑÇþk‡~o£4Ñs¬¦º ™k¤ÞqÍôç‚öo1òÚ¯ jê,°¤Š[B¥HW]{¦њ;óP`§ž3Rù^¹ðúûâÔ‘“#ù§‹Å/´"φînËi‘ °"9ùuE³ë%sm®Ú+ž­QWZšÅ?ˆ1_Eã -]ÕöŒÃžCeœ¿öS,ÝýÀcδúÓ`+‘­ÛÁÜüß%ŠäÂÇÌÐÿZ-¶.–§B¾v/œ–©êåÌ8_VÁ£oPÚ¡†Ý žÃÝÃTZSZËï3-Ôví§ïœèò’àÆ:—¤úã‡K3*?’:ìy/4Eš¶ÓQÇ}ˆw5â þgMÎ'zMjÀ~¢&Râjªçׄ¿åBeÏgÝ.Š›T¬ž<íD«jÏøl[ÿU ¬m\†.6¯šJ95ê{TMµ´!–_(¬7×ÐÅKªT1Óœ µÞãD ò{V”·æ”6(ÿìæe»…ñŽÿdø/'’®-I6l½ôE8µ@‘©œ²ö4<¥ì¹¶sxý¯SÌß³ieÊZ ôí]ìj(œ«ˆ‡mÄ“msÁ™ZÛö>€RÍP ›ÔPÌ1Ší–XR–ü6ôêÉÌ+ø8àÆ€ƒ¡Rhx!§Ôþ<;„(t¤Q«ëFžïs©OåJ“û’^†%Dt»ˆž?cRDL îˆÿãŨd½ª)&l×®n”n±õ³ê>t3ØæïùPR3GÄÑÿa­X+Š¥l€ïŸ×Ï® ‹¢§ÝD”§ămêa Y¥00000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark libwmf-0.2.13/fonts/NimbusMonoPS-Regular.afm000066400000000000000000001174241441723000300206260ustar00rootroot00000000000000StartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development Comment Creation Date: 5/17/2017 FontName NimbusMonoPS-Regular FullName Nimbus Mono PS Regular FamilyName Nimbus Mono PS Weight Regular ItalicAngle 0.0 IsFixedPitch true UnderlinePosition -91 UnderlineThickness 51 Version 1.00 Notice (URW)++,Copyright 2014 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -161 -317 761 933 CapHeight 563 XHeight 417 Descender 0 Ascender 0 StartCharMetrics 855 C 32 ; WX 600 ; N space ; B 295 0 295 0 ; C 33 ; WX 600 ; N exclam ; B 235 -15 366 616 ; C 34 ; WX 600 ; N quotedbl ; B 140 309 460 603 ; C 35 ; WX 600 ; N numbersign ; B 87 -61 514 645 ; C 36 ; WX 600 ; N dollar ; B 108 -90 493 652 ; C 37 ; WX 600 ; N percent ; B 84 -12 515 610 ; C 38 ; WX 600 ; N ampersand ; B 100 -16 484 520 ; C 39 ; WX 600 ; N quoteright ; B 130 308 349 603 ; C 40 ; WX 600 ; N parenleft ; B 289 -122 464 603 ; C 41 ; WX 600 ; N parenright ; B 142 -122 317 603 ; C 42 ; WX 600 ; N asterisk ; B 108 245 493 603 ; C 43 ; WX 600 ; N plus ; B 67 31 534 530 ; C 44 ; WX 600 ; N comma ; B 130 -142 349 153 ; C 45 ; WX 600 ; N hyphen ; B 67 252 534 303 ; C 46 ; WX 600 ; N period ; B 221 -15 380 124 ; C 47 ; WX 600 ; N slash ; B 108 -79 493 665 ; C 48 ; WX 600 ; N zero ; B 108 -15 493 616 ; C 49 ; WX 600 ; N one ; B 108 0 493 613 ; C 50 ; WX 600 ; N two ; B 79 0 484 616 ; C 51 ; WX 600 ; N three ; B 91 -15 504 616 ; C 52 ; WX 600 ; N four ; B 100 0 484 603 ; C 53 ; WX 600 ; N five ; B 91 -15 505 603 ; C 54 ; WX 600 ; N six ; B 131 -15 516 616 ; C 55 ; WX 600 ; N seven ; B 100 -1 484 603 ; C 56 ; WX 600 ; N eight ; B 108 -15 493 616 ; C 57 ; WX 600 ; N nine ; B 131 -15 516 616 ; C 58 ; WX 600 ; N colon ; B 221 -15 380 418 ; C 59 ; WX 600 ; N semicolon ; B 134 -142 356 418 ; C 60 ; WX 600 ; N less ; B 60 44 528 519 ; C 61 ; WX 600 ; N equal ; B 46 186 555 378 ; C 62 ; WX 600 ; N greater ; B 66 44 534 519 ; C 63 ; WX 600 ; N question ; B 129 -15 493 576 ; C 64 ; WX 600 ; N at ; B 100 -61 484 622 ; C 65 ; WX 600 ; N A ; B 4 0 597 563 ; C 66 ; WX 600 ; N B ; B 38 0 547 563 ; C 67 ; WX 600 ; N C ; B 58 -16 540 575 ; C 68 ; WX 600 ; N D ; B 38 -1 526 564 ; C 69 ; WX 600 ; N E ; B 38 0 526 563 ; C 70 ; WX 600 ; N F ; B 38 0 526 563 ; C 71 ; WX 600 ; N G ; B 58 -16 568 575 ; C 72 ; WX 600 ; N H ; B 48 0 556 563 ; C 73 ; WX 600 ; N I ; B 108 0 493 563 ; C 74 ; WX 600 ; N J ; B 79 -16 589 563 ; C 75 ; WX 600 ; N K ; B 38 0 578 563 ; C 76 ; WX 600 ; N L ; B 58 0 547 563 ; C 77 ; WX 600 ; N M ; B 6 0 599 563 ; C 78 ; WX 600 ; N N ; B 17 0 568 563 ; C 79 ; WX 600 ; N O ; B 46 -16 555 575 ; C 80 ; WX 600 ; N P ; B 38 0 505 563 ; C 81 ; WX 600 ; N Q ; B 46 -113 555 575 ; C 82 ; WX 600 ; N R ; B 38 0 595 563 ; C 83 ; WX 600 ; N S ; B 87 -16 514 575 ; C 84 ; WX 600 ; N T ; B 67 0 534 563 ; C 85 ; WX 600 ; N U ; B 35 -16 566 563 ; C 86 ; WX 600 ; N V ; B 4 0 597 563 ; C 87 ; WX 600 ; N W ; B 15 0 586 563 ; C 88 ; WX 600 ; N X ; B 35 0 566 563 ; C 89 ; WX 600 ; N Y ; B 46 0 555 563 ; C 90 ; WX 600 ; N Z ; B 98 0 503 563 ; C 91 ; WX 600 ; N bracketleft ; B 275 -122 451 603 ; C 92 ; WX 600 ; N backslash ; B 108 -79 493 665 ; C 93 ; WX 600 ; N bracketright ; B 150 -122 326 603 ; C 94 ; WX 600 ; N asciicircum ; B 108 347 493 616 ; C 95 ; WX 600 ; N underscore ; B -17 -116 618 -65 ; C 96 ; WX 600 ; N quoteleft ; B 245 338 464 600 ; C 97 ; WX 600 ; N a ; B 67 -16 547 433 ; C 98 ; WX 600 ; N b ; B 17 -16 547 603 ; C 99 ; WX 600 ; N c ; B 79 -16 541 433 ; C 100 ; WX 600 ; N d ; B 58 -16 589 603 ; C 101 ; WX 600 ; N e ; B 58 -16 526 433 ; C 102 ; WX 600 ; N f ; B 100 0 547 603 ; C 103 ; WX 600 ; N g ; B 58 -187 568 433 ; C 104 ; WX 600 ; N h ; B 38 0 557 603 ; C 105 ; WX 600 ; N i ; B 87 0 514 622 ; C 106 ; WX 600 ; N j ; B 142 -184 466 622 ; C 107 ; WX 600 ; N k ; B 58 0 547 603 ; C 108 ; WX 600 ; N l ; B 87 0 514 603 ; C 109 ; WX 600 ; N m ; B 6 0 599 433 ; C 110 ; WX 600 ; N n ; B 48 0 546 433 ; C 111 ; WX 600 ; N o ; B 67 -16 534 433 ; C 112 ; WX 600 ; N p ; B 17 -182 547 433 ; C 113 ; WX 600 ; N q ; B 58 -182 589 433 ; C 114 ; WX 600 ; N r ; B 79 0 547 429 ; C 115 ; WX 600 ; N s ; B 98 -16 503 433 ; C 116 ; WX 600 ; N t ; B 38 -16 505 562 ; C 117 ; WX 600 ; N u ; B 38 -16 547 419 ; C 118 ; WX 600 ; N v ; B 25 0 576 419 ; C 119 ; WX 600 ; N w ; B 25 0 576 419 ; C 120 ; WX 600 ; N x ; B 46 0 555 419 ; C 121 ; WX 600 ; N y ; B 46 -182 555 419 ; C 122 ; WX 600 ; N z ; B 110 0 495 419 ; C 123 ; WX 600 ; N braceleft ; B 192 -122 409 603 ; C 124 ; WX 600 ; N bar ; B 275 -250 326 825 ; C 125 ; WX 600 ; N braceright ; B 192 -122 409 603 ; C 126 ; WX 600 ; N asciitilde ; B 87 208 514 352 ; C 161 ; WX 600 ; N exclamdown ; B 235 -211 366 419 ; C 162 ; WX 600 ; N cent ; B 108 -13 475 628 ; C 163 ; WX 600 ; N sterling ; B 58 0 526 577 ; C 164 ; WX 600 ; N fraction ; B 47 137 551 471 ; C 165 ; WX 600 ; N yen ; B 46 0 555 563 ; C 166 ; WX 600 ; N florin ; B 82 -91 524 616 ; C 167 ; WX 600 ; N section ; B 61 -61 540 603 ; C 168 ; WX 600 ; N currency ; B 98 93 503 490 ; C 169 ; WX 600 ; N quotesingle ; B 230 309 370 603 ; C 170 ; WX 600 ; N quotedblleft ; B 87 338 510 600 ; C 171 ; WX 600 ; N guillemotleft ; B 55 0 546 419 ; C 172 ; WX 600 ; N guilsinglleft ; B 55 0 317 419 ; C 173 ; WX 600 ; N guilsinglright ; B 288 0 549 419 ; C 174 ; WX 600 ; N fi ; B 5 0 591 622 ; C 175 ; WX 600 ; N fl ; B 5 0 593 603 ; C 177 ; WX 600 ; N endash ; B 67 255 534 306 ; C 178 ; WX 600 ; N dagger ; B 119 -61 482 602 ; C 179 ; WX 600 ; N daggerdbl ; B 119 -61 482 602 ; C 180 ; WX 600 ; N periodcentered ; B 221 213 380 352 ; C 182 ; WX 600 ; N paragraph ; B 74 -61 531 603 ; C 183 ; WX 600 ; N bullet ; B 147 153 442 453 ; C 184 ; WX 600 ; N quotesinglbase ; B 130 -142 349 153 ; C 185 ; WX 600 ; N quotedblbase ; B 88 -114 517 153 ; C 186 ; WX 600 ; N quotedblright ; B 88 336 517 603 ; C 187 ; WX 600 ; N guillemotright ; B 58 0 549 419 ; C 188 ; WX 600 ; N ellipsis ; B 46 -15 555 93 ; C 189 ; WX 600 ; N perthousand ; B 31 -9 566 613 ; C 191 ; WX 600 ; N questiondown ; B 108 -171 472 419 ; C 193 ; WX 600 ; N grave ; B 150 480 326 637 ; C 194 ; WX 600 ; N acute ; B 275 480 451 637 ; C 195 ; WX 600 ; N circumflex ; B 150 480 451 638 ; C 196 ; WX 600 ; N tilde ; B 140 506 461 603 ; C 197 ; WX 600 ; N macron ; B 150 525 451 575 ; C 198 ; WX 600 ; N breve ; B 150 480 451 618 ; C 199 ; WX 600 ; N dotaccent ; B 245 501 356 610 ; C 200 ; WX 600 ; N dieresis ; B 135 501 467 610 ; C 202 ; WX 600 ; N ring ; B 202 470 399 658 ; C 203 ; WX 600 ; N cedilla ; B 205 -169 383 11 ; C 205 ; WX 600 ; N hungarumlaut ; B 150 480 451 631 ; C 206 ; WX 600 ; N ogonek ; B 275 -152 438 11 ; C 207 ; WX 600 ; N caron ; B 150 479 451 637 ; C 208 ; WX 600 ; N emdash ; B -4 256 605 307 ; C 225 ; WX 600 ; N AE ; B 5 0 596 563 ; C 227 ; WX 600 ; N ordfeminine ; B 150 274 453 573 ; C 232 ; WX 600 ; N Lslash ; B 38 0 547 563 ; C 233 ; WX 600 ; N Oslash ; B 35 -42 566 604 ; C 234 ; WX 600 ; N OE ; B 5 0 596 563 ; C 235 ; WX 600 ; N ordmasculine ; B 149 279 454 576 ; C 241 ; WX 600 ; N ae ; B 7 -16 584 433 ; C 245 ; WX 600 ; N dotlessi ; B 87 0 514 419 ; C 248 ; WX 600 ; N lslash ; B 87 0 514 603 ; C 249 ; WX 600 ; N oslash ; B 48 -42 549 460 ; C 250 ; WX 600 ; N oe ; B 7 -16 584 433 ; C 251 ; WX 600 ; N germandbls ; B 38 -16 505 603 ; C -1 ; WX 600 ; N .notdef ; B 295 0 295 0 ; C -1 ; WX 600 ; N AEacute ; B 5 0 596 784 ; C -1 ; WX 600 ; N Aacute ; B 4 0 597 784 ; C -1 ; WX 600 ; N Abreve ; B 4 0 597 765 ; C -1 ; WX 600 ; N Acircumflex ; B 4 0 597 785 ; C -1 ; WX 600 ; N Adieresis ; B 4 0 597 757 ; C -1 ; WX 600 ; N Agrave ; B 4 0 597 784 ; C -1 ; WX 600 ; N Alpha ; B 4 0 597 563 ; C -1 ; WX 600 ; N Alphatonos ; B 30 0 618 563 ; C -1 ; WX 600 ; N Amacron ; B 4 0 597 722 ; C -1 ; WX 600 ; N Aogonek ; B 4 -152 605 563 ; C -1 ; WX 600 ; N Aring ; B 4 0 597 805 ; C -1 ; WX 600 ; N Aringacute ; B 4 0 597 932 ; C -1 ; WX 600 ; N Atilde ; B 4 0 597 750 ; C -1 ; WX 600 ; N Beta ; B 38 0 547 563 ; C -1 ; WX 600 ; N Cacute ; B 58 -16 540 784 ; C -1 ; WX 600 ; N Ccaron ; B 58 -16 540 784 ; C -1 ; WX 600 ; N Ccedilla ; B 58 -169 540 575 ; C -1 ; WX 600 ; N Ccircumflex ; B 58 -16 540 785 ; C -1 ; WX 600 ; N Cdotaccent ; B 58 -16 540 757 ; C -1 ; WX 600 ; N Chi ; B 35 0 566 563 ; C -1 ; WX 600 ; N Dcaron ; B 38 -1 526 784 ; C -1 ; WX 600 ; N Dcroat ; B -5 -3 526 566 ; C -1 ; WX 600 ; N Delta ; B 35 0 565 562 ; C -1 ; WX 600 ; N Eacute ; B 38 0 526 784 ; C -1 ; WX 600 ; N Ebreve ; B 38 0 526 765 ; C -1 ; WX 600 ; N Ecaron ; B 38 0 526 784 ; C -1 ; WX 600 ; N Ecircumflex ; B 38 0 526 785 ; C -1 ; WX 600 ; N Edieresis ; B 38 0 526 757 ; C -1 ; WX 600 ; N Edotaccent ; B 38 0 526 757 ; C -1 ; WX 600 ; N Egrave ; B 38 0 526 784 ; C -1 ; WX 600 ; N Emacron ; B 38 0 526 722 ; C -1 ; WX 600 ; N Eng ; B 17 -182 568 563 ; C -1 ; WX 600 ; N Eogonek ; B 38 -152 554 563 ; C -1 ; WX 600 ; N Epsilon ; B 38 0 526 563 ; C -1 ; WX 600 ; N Epsilontonos ; B -3 0 566 563 ; C -1 ; WX 600 ; N Eta ; B 48 0 556 563 ; C -1 ; WX 600 ; N Etatonos ; B 8 0 587 563 ; C -1 ; WX 600 ; N Eth ; B -5 -3 526 566 ; C -1 ; WX 600 ; N Euro ; B -31 -16 539 575 ; C -1 ; WX 600 ; N Gamma ; B 58 0 547 563 ; C -1 ; WX 600 ; N Gbreve ; B 58 -16 568 765 ; C -1 ; WX 600 ; N Gcircumflex ; B 58 -16 568 785 ; C -1 ; WX 600 ; N Gcommaaccent ; B 58 -233 568 575 ; C -1 ; WX 600 ; N Gdotaccent ; B 58 -16 568 757 ; C -1 ; WX 600 ; N H18533 ; B 11 0 589 566 ; C -1 ; WX 600 ; N H18543 ; B 155 141 445 426 ; C -1 ; WX 600 ; N H18551 ; B 155 141 445 426 ; C -1 ; WX 600 ; N Hbar ; B 48 0 556 563 ; C -1 ; WX 600 ; N Hcircumflex ; B 48 0 556 785 ; C -1 ; WX 600 ; N IJ ; B 3 -137 596 563 ; C -1 ; WX 600 ; N Iacute ; B 108 0 493 784 ; C -1 ; WX 600 ; N Ibreve ; B 108 0 493 765 ; C -1 ; WX 600 ; N Icircumflex ; B 108 0 493 785 ; C -1 ; WX 600 ; N Idieresis ; B 108 0 493 757 ; C -1 ; WX 600 ; N Idotaccent ; B 108 0 493 757 ; C -1 ; WX 600 ; N Ifraktur ; B 4 -70 596 695 ; C -1 ; WX 600 ; N Igrave ; B 108 0 493 784 ; C -1 ; WX 600 ; N Imacron ; B 108 0 493 722 ; C -1 ; WX 600 ; N Iogonek ; B 108 -152 506 563 ; C -1 ; WX 600 ; N Iota ; B 108 0 493 563 ; C -1 ; WX 600 ; N Iotadieresis ; B 109 0 492 714 ; C -1 ; WX 600 ; N Iotatonos ; B 30 0 515 563 ; C -1 ; WX 600 ; N Itilde ; B 108 0 493 750 ; C -1 ; WX 600 ; N Jcircumflex ; B 79 -16 589 785 ; C -1 ; WX 600 ; N Kappa ; B 38 0 578 563 ; C -1 ; WX 600 ; N Kcommaaccent ; B 38 -233 578 563 ; C -1 ; WX 600 ; N Lacute ; B 58 0 547 784 ; C -1 ; WX 600 ; N Lambda ; B 6 0 593 563 ; C -1 ; WX 600 ; N Lcaron ; B 58 0 547 566 ; C -1 ; WX 600 ; N Lcommaaccent ; B 58 -233 547 563 ; C -1 ; WX 600 ; N Ldot ; B 58 0 547 563 ; C -1 ; WX 600 ; N Mu ; B 6 0 599 563 ; C -1 ; WX 600 ; N Nacute ; B 17 0 568 784 ; C -1 ; WX 600 ; N Ncaron ; B 17 0 568 784 ; C -1 ; WX 600 ; N Ncommaaccent ; B 17 -233 568 563 ; C -1 ; WX 600 ; N Ntilde ; B 17 0 568 750 ; C -1 ; WX 600 ; N Nu ; B 17 0 568 563 ; C -1 ; WX 600 ; N Oacute ; B 46 -16 555 784 ; C -1 ; WX 600 ; N Obreve ; B 46 -16 555 765 ; C -1 ; WX 600 ; N Ocircumflex ; B 46 -16 555 785 ; C -1 ; WX 600 ; N Odieresis ; B 46 -16 555 757 ; C -1 ; WX 600 ; N Ograve ; B 46 -16 555 784 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 46 -16 555 778 ; C -1 ; WX 600 ; N Omacron ; B 46 -16 555 722 ; C -1 ; WX 600 ; N Omegatonos ; B -22 0 588 575 ; C -1 ; WX 600 ; N Omicron ; B 46 -16 555 575 ; C -1 ; WX 600 ; N Omicrontonos ; B -6 -15 568 575 ; C -1 ; WX 600 ; N Oslashacute ; B 35 -42 566 784 ; C -1 ; WX 600 ; N Otilde ; B 46 -16 555 750 ; C -1 ; WX 600 ; N Phi ; B 45 -59 555 608 ; C -1 ; WX 600 ; N Pi ; B 47 0 553 563 ; C -1 ; WX 600 ; N Psi ; B 13 0 587 563 ; C -1 ; WX 600 ; N Racute ; B 38 0 595 784 ; C -1 ; WX 600 ; N Rcaron ; B 38 0 595 784 ; C -1 ; WX 600 ; N Rcommaaccent ; B 38 -233 595 563 ; C -1 ; WX 600 ; N Rfraktur ; B -51 -6 639 658 ; C -1 ; WX 600 ; N Rho ; B 38 0 505 563 ; C -1 ; WX 600 ; N SF010000 ; B 267 -250 600 283 ; C -1 ; WX 600 ; N SF020000 ; B 267 217 600 750 ; C -1 ; WX 600 ; N SF030000 ; B 0 -250 333 283 ; C -1 ; WX 600 ; N SF040000 ; B 0 217 333 750 ; C -1 ; WX 600 ; N SF050000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF060000 ; B 0 -250 600 283 ; C -1 ; WX 600 ; N SF070000 ; B 0 217 600 750 ; C -1 ; WX 600 ; N SF080000 ; B 267 -250 600 750 ; C -1 ; WX 600 ; N SF090000 ; B 0 -250 333 750 ; C -1 ; WX 600 ; N SF100000 ; B 0 217 600 283 ; C -1 ; WX 600 ; N SF110000 ; B 267 -250 333 750 ; C -1 ; WX 600 ; N SF190000 ; B 0 -250 333 750 ; C -1 ; WX 600 ; N SF200000 ; B 0 -250 399 750 ; C -1 ; WX 600 ; N SF210000 ; B 0 -250 399 283 ; C -1 ; WX 600 ; N SF220000 ; B 0 -250 333 349 ; C -1 ; WX 600 ; N SF230000 ; B 0 -250 399 750 ; C -1 ; WX 600 ; N SF240000 ; B 201 -250 399 750 ; C -1 ; WX 600 ; N SF250000 ; B 0 -250 399 349 ; C -1 ; WX 600 ; N SF260000 ; B 0 151 399 750 ; C -1 ; WX 600 ; N SF270000 ; B 0 217 399 750 ; C -1 ; WX 600 ; N SF280000 ; B 0 151 333 750 ; C -1 ; WX 600 ; N SF360000 ; B 267 -250 600 750 ; C -1 ; WX 600 ; N SF370000 ; B 201 -250 600 750 ; C -1 ; WX 600 ; N SF380000 ; B 201 151 600 750 ; C -1 ; WX 600 ; N SF390000 ; B 201 -250 600 349 ; C -1 ; WX 600 ; N SF400000 ; B 0 151 600 750 ; C -1 ; WX 600 ; N SF410000 ; B 0 -250 600 349 ; C -1 ; WX 600 ; N SF420000 ; B 201 -250 600 750 ; C -1 ; WX 600 ; N SF430000 ; B 0 151 600 349 ; C -1 ; WX 600 ; N SF440000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF450000 ; B 0 151 600 750 ; C -1 ; WX 600 ; N SF460000 ; B 0 217 600 750 ; C -1 ; WX 600 ; N SF470000 ; B 0 -250 600 349 ; C -1 ; WX 600 ; N SF480000 ; B 0 -250 600 283 ; C -1 ; WX 600 ; N SF490000 ; B 201 217 600 750 ; C -1 ; WX 600 ; N SF500000 ; B 267 151 600 750 ; C -1 ; WX 600 ; N SF510000 ; B 267 -250 600 349 ; C -1 ; WX 600 ; N SF520000 ; B 201 -250 600 283 ; C -1 ; WX 600 ; N SF530000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N SF540000 ; B 0 -250 600 750 ; C -1 ; WX 600 ; N Sacute ; B 87 -16 514 784 ; C -1 ; WX 600 ; N Scaron ; B 87 -16 514 784 ; C -1 ; WX 600 ; N Scedilla ; B 87 -169 514 575 ; C -1 ; WX 600 ; N Scircumflex ; B 87 -16 514 785 ; C -1 ; WX 600 ; N Scommaaccent ; B 87 -233 514 575 ; C -1 ; WX 600 ; N Sigma ; B 134 0 543 563 ; C -1 ; WX 600 ; N Tau ; B 67 0 534 563 ; C -1 ; WX 600 ; N Tbar ; B 67 0 534 563 ; C -1 ; WX 600 ; N Tcaron ; B 67 0 534 784 ; C -1 ; WX 600 ; N Tcommaaccent ; B 67 -169 534 563 ; C -1 ; WX 600 ; N Theta ; B 46 -16 555 575 ; C -1 ; WX 600 ; N Thorn ; B 38 0 505 563 ; C -1 ; WX 600 ; N Uacute ; B 35 -16 566 784 ; C -1 ; WX 600 ; N Ubreve ; B 35 -16 566 765 ; C -1 ; WX 600 ; N Ucircumflex ; B 35 -16 566 785 ; C -1 ; WX 600 ; N Udieresis ; B 35 -16 566 757 ; C -1 ; WX 600 ; N Ugrave ; B 35 -16 566 784 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 35 -16 566 778 ; C -1 ; WX 600 ; N Umacron ; B 35 -16 566 722 ; C -1 ; WX 600 ; N Uogonek ; B 35 -152 566 563 ; C -1 ; WX 600 ; N Upsilon ; B 46 0 555 563 ; C -1 ; WX 600 ; N Upsilondieresis ; B 47 0 552 714 ; C -1 ; WX 600 ; N Upsilontonos ; B 19 0 576 563 ; C -1 ; WX 600 ; N Uring ; B 35 -16 566 805 ; C -1 ; WX 600 ; N Utilde ; B 35 -16 566 750 ; C -1 ; WX 600 ; N Wacute ; B 15 0 586 784 ; C -1 ; WX 600 ; N Wcircumflex ; B 15 0 586 785 ; C -1 ; WX 600 ; N Wdieresis ; B 15 0 586 757 ; C -1 ; WX 600 ; N Wgrave ; B 15 0 586 784 ; C -1 ; WX 600 ; N Xi ; B 70 0 531 563 ; C -1 ; WX 600 ; N Yacute ; B 46 0 555 784 ; C -1 ; WX 600 ; N Ycircumflex ; B 46 0 555 785 ; C -1 ; WX 600 ; N Ydieresis ; B 46 0 555 757 ; C -1 ; WX 600 ; N Ygrave ; B 46 0 555 784 ; C -1 ; WX 600 ; N Zacute ; B 98 0 503 784 ; C -1 ; WX 600 ; N Zcaron ; B 98 0 503 784 ; C -1 ; WX 600 ; N Zdotaccent ; B 98 0 503 757 ; C -1 ; WX 600 ; N Zeta ; B 98 0 503 563 ; C -1 ; WX 600 ; N aacute ; B 67 -16 547 637 ; C -1 ; WX 600 ; N abreve ; B 67 -16 547 618 ; C -1 ; WX 600 ; N acircumflex ; B 67 -16 547 638 ; C -1 ; WX 600 ; N adieresis ; B 67 -16 547 610 ; C -1 ; WX 600 ; N aeacute ; B 7 -16 584 637 ; C -1 ; WX 600 ; N afii00208 ; B -4 256 605 307 ; C -1 ; WX 600 ; N afii10017 ; B 4 0 597 563 ; C -1 ; WX 600 ; N afii10018 ; B 41 0 546 563 ; C -1 ; WX 600 ; N afii10019 ; B 38 0 547 563 ; C -1 ; WX 600 ; N afii10020 ; B 58 0 547 563 ; C -1 ; WX 600 ; N afii10021 ; B 35 -135 565 563 ; C -1 ; WX 600 ; N afii10022 ; B 38 0 526 563 ; C -1 ; WX 600 ; N afii10023 ; B 41 0 525 716 ; C -1 ; WX 600 ; N afii10024 ; B -3 0 604 563 ; C -1 ; WX 600 ; N afii10025 ; B 54 -16 536 575 ; C -1 ; WX 600 ; N afii10026 ; B 18 0 581 563 ; C -1 ; WX 600 ; N afii10027 ; B 18 0 581 748 ; C -1 ; WX 600 ; N afii10028 ; B 56 0 588 563 ; C -1 ; WX 600 ; N afii10029 ; B 16 -16 566 563 ; C -1 ; WX 600 ; N afii10030 ; B 6 0 599 563 ; C -1 ; WX 600 ; N afii10031 ; B 48 0 556 563 ; C -1 ; WX 600 ; N afii10032 ; B 46 -16 555 575 ; C -1 ; WX 600 ; N afii10033 ; B 47 0 553 563 ; C -1 ; WX 600 ; N afii10034 ; B 38 0 505 563 ; C -1 ; WX 600 ; N afii10035 ; B 58 -16 540 575 ; C -1 ; WX 600 ; N afii10036 ; B 67 0 534 563 ; C -1 ; WX 600 ; N afii10037 ; B 20 -16 593 563 ; C -1 ; WX 600 ; N afii10038 ; B 47 0 554 563 ; C -1 ; WX 600 ; N afii10039 ; B 35 0 566 563 ; C -1 ; WX 600 ; N afii10040 ; B 42 -135 560 563 ; C -1 ; WX 600 ; N afii10041 ; B 19 0 550 563 ; C -1 ; WX 600 ; N afii10042 ; B 1 0 594 563 ; C -1 ; WX 600 ; N afii10043 ; B 1 -135 606 563 ; C -1 ; WX 600 ; N afii10044 ; B 0 0 586 563 ; C -1 ; WX 600 ; N afii10045 ; B 0 0 598 563 ; C -1 ; WX 600 ; N afii10046 ; B 41 0 546 563 ; C -1 ; WX 600 ; N afii10047 ; B 61 -15 540 575 ; C -1 ; WX 600 ; N afii10048 ; B 10 -15 595 576 ; C -1 ; WX 600 ; N afii10049 ; B 6 0 558 563 ; C -1 ; WX 600 ; N afii10050 ; B 58 0 547 746 ; C -1 ; WX 600 ; N afii10051 ; B 7 -15 570 563 ; C -1 ; WX 600 ; N afii10052 ; B 60 0 544 761 ; C -1 ; WX 600 ; N afii10053 ; B 60 -15 539 575 ; C -1 ; WX 600 ; N afii10054 ; B 87 -16 514 575 ; C -1 ; WX 600 ; N afii10055 ; B 108 0 493 563 ; C -1 ; WX 600 ; N afii10056 ; B 108 0 493 716 ; C -1 ; WX 600 ; N afii10057 ; B 79 -16 589 563 ; C -1 ; WX 600 ; N afii10058 ; B 16 -16 581 563 ; C -1 ; WX 600 ; N afii10059 ; B -1 0 601 563 ; C -1 ; WX 600 ; N afii10060 ; B 7 0 589 563 ; C -1 ; WX 600 ; N afii10061 ; B 56 0 588 761 ; C -1 ; WX 600 ; N afii10062 ; B 20 -16 593 748 ; C -1 ; WX 600 ; N afii10065 ; B 66 -16 546 433 ; C -1 ; WX 600 ; N afii10066 ; B 60 -15 544 590 ; C -1 ; WX 600 ; N afii10067 ; B 58 0 522 419 ; C -1 ; WX 600 ; N afii10068 ; B 72 0 533 419 ; C -1 ; WX 600 ; N afii10069 ; B 42 -100 558 419 ; C -1 ; WX 600 ; N afii10070 ; B 58 -16 526 433 ; C -1 ; WX 600 ; N afii10071 ; B 61 -15 526 589 ; C -1 ; WX 600 ; N afii10072 ; B 9 0 591 419 ; C -1 ; WX 600 ; N afii10073 ; B 68 -15 536 433 ; C -1 ; WX 600 ; N afii10074 ; B 27 0 573 419 ; C -1 ; WX 600 ; N afii10075 ; B 27 0 573 604 ; C -1 ; WX 600 ; N afii10076 ; B 57 0 574 419 ; C -1 ; WX 600 ; N afii10077 ; B 23 -15 557 419 ; C -1 ; WX 600 ; N afii10078 ; B 14 0 587 419 ; C -1 ; WX 600 ; N afii10079 ; B 50 0 550 419 ; C -1 ; WX 600 ; N afii10080 ; B 67 -16 534 433 ; C -1 ; WX 600 ; N afii10081 ; B 50 0 550 419 ; C -1 ; WX 600 ; N afii10082 ; B 17 -182 547 433 ; C -1 ; WX 600 ; N afii10083 ; B 79 -16 541 433 ; C -1 ; WX 600 ; N afii10084 ; B 79 0 521 419 ; C -1 ; WX 600 ; N afii10085 ; B 46 -182 555 419 ; C -1 ; WX 600 ; N afii10086 ; B 56 -151 544 591 ; C -1 ; WX 600 ; N afii10087 ; B 46 0 555 419 ; C -1 ; WX 600 ; N afii10088 ; B 36 -100 558 419 ; C -1 ; WX 600 ; N afii10089 ; B 33 0 549 419 ; C -1 ; WX 600 ; N afii10090 ; B 15 0 585 419 ; C -1 ; WX 600 ; N afii10091 ; B 15 -100 601 419 ; C -1 ; WX 600 ; N afii10092 ; B 35 0 570 419 ; C -1 ; WX 600 ; N afii10093 ; B 11 0 598 419 ; C -1 ; WX 600 ; N afii10094 ; B 79 0 488 419 ; C -1 ; WX 600 ; N afii10095 ; B 62 -15 518 433 ; C -1 ; WX 600 ; N afii10096 ; B 16 -15 583 433 ; C -1 ; WX 600 ; N afii10097 ; B 62 0 533 419 ; C -1 ; WX 600 ; N afii10098 ; B 72 0 533 603 ; C -1 ; WX 600 ; N afii10099 ; B 67 -182 524 603 ; C -1 ; WX 600 ; N afii10100 ; B 72 0 533 637 ; C -1 ; WX 600 ; N afii10101 ; B 81 -15 538 433 ; C -1 ; WX 600 ; N afii10102 ; B 98 -16 502 433 ; C -1 ; WX 600 ; N afii10103 ; B 87 0 514 622 ; C -1 ; WX 600 ; N afii10104 ; B 88 0 514 589 ; C -1 ; WX 600 ; N afii10105 ; B 142 -184 466 622 ; C -1 ; WX 600 ; N afii10106 ; B 24 -16 574 419 ; C -1 ; WX 600 ; N afii10107 ; B -10 0 610 419 ; C -1 ; WX 600 ; N afii10108 ; B 29 0 556 603 ; C -1 ; WX 600 ; N afii10109 ; B 57 0 574 637 ; C -1 ; WX 600 ; N afii10110 ; B 28 -144 585 604 ; C -1 ; WX 600 ; N afii10145 ; B 47 -135 553 563 ; C -1 ; WX 600 ; N afii10193 ; B 50 -135 550 419 ; C -1 ; WX 600 ; N afii10846 ; B 58 -16 526 433 ; C -1 ; WX 600 ; N afii61248 ; B 40 -41 553 624 ; C -1 ; WX 600 ; N afii61289 ; B 110 -9 463 688 ; C -1 ; WX 600 ; N afii61352 ; B 23 0 574 563 ; C -1 ; WX 600 ; N agrave ; B 67 -16 547 637 ; C -1 ; WX 600 ; N aleph ; B 52 -4 549 694 ; C -1 ; WX 600 ; N alpha ; B 67 -16 620 433 ; C -1 ; WX 600 ; N alphatonos ; B 67 -16 620 637 ; C -1 ; WX 600 ; N amacron ; B 67 -16 547 575 ; C -1 ; WX 600 ; N angle ; B -22 3 618 456 ; C -1 ; WX 600 ; N angleleft ; B 187 -125 414 646 ; C -1 ; WX 600 ; N angleright ; B 187 -125 414 646 ; C -1 ; WX 600 ; N aogonek ; B 67 -152 562 433 ; C -1 ; WX 600 ; N approxequal ; B 92 139 519 424 ; C -1 ; WX 600 ; N aring ; B 67 -16 547 658 ; C -1 ; WX 600 ; N aringacute ; B 67 -16 547 799 ; C -1 ; WX 600 ; N arrowboth ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowdblboth ; B -161 72 761 571 ; C -1 ; WX 600 ; N arrowdbldown ; B 53 10 548 704 ; C -1 ; WX 600 ; N arrowdblleft ; B -94 72 690 571 ; C -1 ; WX 600 ; N arrowdblright ; B -91 72 693 571 ; C -1 ; WX 600 ; N arrowdblup ; B 53 13 548 707 ; C -1 ; WX 600 ; N arrowdown ; B 157 -12 422 538 ; C -1 ; WX 600 ; N arrowleft ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowright ; B 24 111 585 371 ; C -1 ; WX 600 ; N arrowup ; B 157 -12 422 538 ; C -1 ; WX 600 ; N arrowupdn ; B 167 -25 432 525 ; C -1 ; WX 600 ; N arrowupdnbse ; B 170 -84 435 564 ; C -1 ; WX 600 ; N asteriskmath ; B 144 110 456 417 ; C -1 ; WX 600 ; N atilde ; B 67 -16 547 603 ; C -1 ; WX 600 ; N beta ; B 124 -182 509 603 ; C -1 ; WX 600 ; N block ; B 0 -250 600 750 ; C -1 ; WX 600 ; N brokenbar ; B 275 -122 326 603 ; C -1 ; WX 600 ; N cacute ; B 79 -16 541 637 ; C -1 ; WX 600 ; N carriagereturn ; B 78 60 511 560 ; C -1 ; WX 600 ; N ccaron ; B 79 -16 541 637 ; C -1 ; WX 600 ; N ccedilla ; B 79 -169 541 433 ; C -1 ; WX 600 ; N ccircumflex ; B 79 -16 541 638 ; C -1 ; WX 600 ; N cdotaccent ; B 79 -16 541 610 ; C -1 ; WX 600 ; N chi ; B 73 -182 552 433 ; C -1 ; WX 600 ; N circle ; B 85 67 514 496 ; C -1 ; WX 600 ; N circlemultiply ; B 28 0 538 500 ; C -1 ; WX 600 ; N club ; B 18 0 582 563 ; C -1 ; WX 600 ; N congruent ; B 46 103 555 489 ; C -1 ; WX 600 ; N copyright ; B -2 -15 601 577 ; C -1 ; WX 600 ; N dcaron ; B 58 -16 656 615 ; C -1 ; WX 600 ; N dcroat ; B 58 -16 589 603 ; C -1 ; WX 600 ; N degree ; B 150 339 451 634 ; C -1 ; WX 600 ; N delta ; B 67 -16 534 651 ; C -1 ; WX 600 ; N diamond ; B 97 -22 525 585 ; C -1 ; WX 600 ; N dieresistonos ; B 126 481 474 637 ; C -1 ; WX 600 ; N divide ; B 67 24 534 540 ; C -1 ; WX 600 ; N dkshade ; B 0 -142 600 758 ; C -1 ; WX 600 ; N dnblock ; B 0 -250 600 250 ; C -1 ; WX 600 ; N eacute ; B 58 -16 526 637 ; C -1 ; WX 600 ; N ebreve ; B 58 -16 526 618 ; C -1 ; WX 600 ; N ecaron ; B 58 -16 526 637 ; C -1 ; WX 600 ; N ecircumflex ; B 58 -16 526 638 ; C -1 ; WX 600 ; N edieresis ; B 58 -16 526 610 ; C -1 ; WX 600 ; N edotaccent ; B 58 -16 526 610 ; C -1 ; WX 600 ; N egrave ; B 58 -16 526 637 ; C -1 ; WX 600 ; N eightsuperior ; B 188 248 413 611 ; C -1 ; WX 600 ; N element ; B 20 0 581 514 ; C -1 ; WX 600 ; N emacron ; B 58 -16 526 575 ; C -1 ; WX 600 ; N emptyset ; B 67 -86 534 513 ; C -1 ; WX 600 ; N eng ; B 51 -184 490 433 ; C -1 ; WX 600 ; N eogonek ; B 58 -152 526 433 ; C -1 ; WX 600 ; N epsilon ; B 131 -11 450 446 ; C -1 ; WX 600 ; N epsilontonos ; B 131 -11 450 637 ; C -1 ; WX 600 ; N equivalence ; B 46 116 555 449 ; C -1 ; WX 600 ; N estimated ; B 67 -7 477 424 ; C -1 ; WX 600 ; N eta ; B 66 -182 499 433 ; C -1 ; WX 600 ; N etatonos ; B 66 -182 499 637 ; C -1 ; WX 600 ; N eth ; B 67 -17 534 618 ; C -1 ; WX 600 ; N exclamdbl ; B 115 -15 486 616 ; C -1 ; WX 600 ; N existential ; B 119 0 464 563 ; C -1 ; WX 600 ; N female ; B 87 0 514 705 ; C -1 ; WX 600 ; N ff ; B 5 0 606 603 ; C -1 ; WX 600 ; N ffi ; B 4 0 597 603 ; C -1 ; WX 600 ; N ffl ; B 4 0 597 603 ; C -1 ; WX 600 ; N filledbox ; B 60 0 539 481 ; C -1 ; WX 600 ; N filledrect ; B 19 0 582 282 ; C -1 ; WX 600 ; N fiveeighths ; B 20 -8 581 603 ; C -1 ; WX 600 ; N fivesuperior ; B 178 248 418 603 ; C -1 ; WX 600 ; N foursuperior ; B 183 256 408 603 ; C -1 ; WX 600 ; N franc ; B 38 0 568 563 ; C -1 ; WX 600 ; N gamma ; B 33 -182 595 419 ; C -1 ; WX 600 ; N gbreve ; B 58 -187 568 618 ; C -1 ; WX 600 ; N gcircumflex ; B 58 -187 568 638 ; C -1 ; WX 600 ; N gcommaaccent ; B 58 -187 568 664 ; C -1 ; WX 600 ; N gdotaccent ; B 58 -187 568 610 ; C -1 ; WX 600 ; N gradient ; B 35 0 565 563 ; C -1 ; WX 600 ; N greaterequal ; B 46 -1 526 562 ; C -1 ; WX 600 ; N hbar ; B 23 0 556 603 ; C -1 ; WX 600 ; N hcircumflex ; B 38 0 557 785 ; C -1 ; WX 600 ; N heart ; B 51 -22 550 563 ; C -1 ; WX 600 ; N house ; B 70 0 531 565 ; C -1 ; WX 600 ; N iacute ; B 87 0 514 637 ; C -1 ; WX 600 ; N ibreve ; B 87 0 514 618 ; C -1 ; WX 600 ; N icircumflex ; B 87 0 514 638 ; C -1 ; WX 600 ; N idieresis ; B 87 0 514 610 ; C -1 ; WX 600 ; N igrave ; B 87 0 514 637 ; C -1 ; WX 600 ; N ij ; B 20 -184 581 622 ; C -1 ; WX 600 ; N imacron ; B 87 0 514 575 ; C -1 ; WX 600 ; N infinity ; B 12 155 588 409 ; C -1 ; WX 600 ; N integral ; B 147 -199 455 634 ; C -1 ; WX 600 ; N integralbt ; B 146 -182 326 634 ; C -1 ; WX 600 ; N integraltp ; B 274 -182 454 634 ; C -1 ; WX 600 ; N intersection ; B 63 0 537 562 ; C -1 ; WX 600 ; N invbullet ; B 61 0 540 479 ; C -1 ; WX 600 ; N invcircle ; B 19 0 582 563 ; C -1 ; WX 600 ; N invsmileface ; B 19 0 582 563 ; C -1 ; WX 600 ; N iogonek ; B 87 -152 526 622 ; C -1 ; WX 600 ; N iota ; B 252 -16 433 433 ; C -1 ; WX 600 ; N iotadieresis ; B 141 -16 437 569 ; C -1 ; WX 600 ; N iotadieresistonos ; B 115 -16 463 637 ; C -1 ; WX 600 ; N iotatonos ; B 212 -16 434 637 ; C -1 ; WX 600 ; N itilde ; B 87 0 514 603 ; C -1 ; WX 600 ; N jcircumflex ; B 142 -184 476 638 ; C -1 ; WX 600 ; N kappa ; B 75 0 553 419 ; C -1 ; WX 600 ; N kcommaaccent ; B 58 -233 547 603 ; C -1 ; WX 600 ; N kgreenlandic ; B 58 0 547 419 ; C -1 ; WX 600 ; N lacute ; B 87 0 514 784 ; C -1 ; WX 600 ; N lambda ; B 30 0 586 603 ; C -1 ; WX 600 ; N lcaron ; B 87 0 514 615 ; C -1 ; WX 600 ; N lcommaaccent ; B 87 -233 514 603 ; C -1 ; WX 600 ; N ldot ; B 87 0 586 603 ; C -1 ; WX 600 ; N lessequal ; B 46 -1 526 562 ; C -1 ; WX 600 ; N lfblock ; B 0 -250 300 750 ; C -1 ; WX 600 ; N lira ; B 80 0 525 577 ; C -1 ; WX 600 ; N logicalnot ; B 67 165 534 440 ; C -1 ; WX 600 ; N longs ; B 100 0 547 603 ; C -1 ; WX 600 ; N lozenge ; B 24 -39 574 647 ; C -1 ; WX 600 ; N ltshade ; B 0 -150 540 750 ; C -1 ; WX 600 ; N male ; B 59 -4 541 690 ; C -1 ; WX 600 ; N minus ; B 67 256 534 307 ; C -1 ; WX 600 ; N minute ; B 247 315 380 608 ; C -1 ; WX 600 ; N mu ; B 38 -196 547 419 ; C -1 ; WX 600 ; N multiply ; B 113 98 487 465 ; C -1 ; WX 600 ; N musicalnote ; B 132 14 439 563 ; C -1 ; WX 600 ; N musicalnotedbl ; B 73 -102 529 799 ; C -1 ; WX 600 ; N nacute ; B 48 0 546 637 ; C -1 ; WX 600 ; N napostrophe ; B 15 0 580 615 ; C -1 ; WX 600 ; N ncaron ; B 48 0 546 637 ; C -1 ; WX 600 ; N ncommaaccent ; B 48 -233 546 433 ; C -1 ; WX 600 ; N ninesuperior ; B 200 248 425 611 ; C -1 ; WX 600 ; N notelement ; B 20 -79 581 615 ; C -1 ; WX 600 ; N notequal ; B 46 62 555 511 ; C -1 ; WX 600 ; N notsubset ; B 21 -86 595 584 ; C -1 ; WX 600 ; N nsuperior ; B 138 261 462 543 ; C -1 ; WX 600 ; N ntilde ; B 48 0 546 603 ; C -1 ; WX 600 ; N nu ; B 60 0 521 425 ; C -1 ; WX 600 ; N oacute ; B 67 -16 534 637 ; C -1 ; WX 600 ; N obreve ; B 67 -16 534 618 ; C -1 ; WX 600 ; N ocircumflex ; B 67 -16 534 638 ; C -1 ; WX 600 ; N odieresis ; B 67 -16 534 610 ; C -1 ; WX 600 ; N ograve ; B 67 -16 534 637 ; C -1 ; WX 600 ; N ohungarumlaut ; B 67 -16 534 631 ; C -1 ; WX 600 ; N omacron ; B 67 -16 534 575 ; C -1 ; WX 600 ; N omega ; B 55 -15 545 433 ; C -1 ; WX 600 ; N omega1 ; B 7 -15 584 440 ; C -1 ; WX 600 ; N omegatonos ; B 55 -15 545 637 ; C -1 ; WX 600 ; N omicron ; B 67 -16 534 433 ; C -1 ; WX 600 ; N omicrontonos ; B 67 -16 534 637 ; C -1 ; WX 600 ; N oneeighth ; B 7 -8 591 611 ; C -1 ; WX 600 ; N onehalf ; B 20 0 575 611 ; C -1 ; WX 600 ; N onequarter ; B 13 0 582 611 ; C -1 ; WX 600 ; N onesuperior ; B 188 256 412 611 ; C -1 ; WX 600 ; N openbullet ; B 178 165 422 417 ; C -1 ; WX 600 ; N orthogonal ; B 68 3 534 469 ; C -1 ; WX 600 ; N oslashacute ; B 48 -42 549 637 ; C -1 ; WX 600 ; N otilde ; B 67 -16 534 603 ; C -1 ; WX 600 ; N partialdiff ; B 67 -16 534 580 ; C -1 ; WX 600 ; N perpendicular ; B 43 0 558 505 ; C -1 ; WX 600 ; N peseta ; B 38 -9 560 563 ; C -1 ; WX 600 ; N phi ; B 58 -182 545 433 ; C -1 ; WX 600 ; N phi1 ; B 45 -38 555 588 ; C -1 ; WX 600 ; N pi ; B 70 0 531 419 ; C -1 ; WX 600 ; N plusminus ; B 67 0 534 530 ; C -1 ; WX 600 ; N product ; B 33 -83 566 643 ; C -1 ; WX 600 ; N propersubset ; B -4 0 570 464 ; C -1 ; WX 600 ; N propersuperset ; B -4 0 570 464 ; C -1 ; WX 600 ; N proportional ; B 14 127 465 381 ; C -1 ; WX 600 ; N psi ; B 32 -182 568 602 ; C -1 ; WX 600 ; N quotereversed ; B 38 0 596 563 ; C -1 ; WX 600 ; N racute ; B 79 0 547 637 ; C -1 ; WX 600 ; N radical ; B 19 -18 636 700 ; C -1 ; WX 600 ; N rcaron ; B 79 0 547 637 ; C -1 ; WX 600 ; N rcommaaccent ; B 79 -233 547 429 ; C -1 ; WX 600 ; N reflexsubset ; B -4 0 570 605 ; C -1 ; WX 600 ; N reflexsuperset ; B -4 0 570 605 ; C -1 ; WX 600 ; N registered ; B -2 -15 601 577 ; C -1 ; WX 600 ; N revlogicalnot ; B 67 165 534 440 ; C -1 ; WX 600 ; N rho ; B 96 -182 545 433 ; C -1 ; WX 600 ; N rtblock ; B 300 -250 600 750 ; C -1 ; WX 600 ; N sacute ; B 98 -16 503 637 ; C -1 ; WX 600 ; N scaron ; B 98 -16 503 637 ; C -1 ; WX 600 ; N scedilla ; B 98 -169 503 433 ; C -1 ; WX 600 ; N scircumflex ; B 98 -16 503 638 ; C -1 ; WX 600 ; N scommaaccent ; B 98 -233 503 433 ; C -1 ; WX 600 ; N second ; B 161 315 456 608 ; C -1 ; WX 600 ; N seveneighths ; B 43 -8 580 603 ; C -1 ; WX 600 ; N sevensuperior ; B 183 255 406 603 ; C -1 ; WX 600 ; N shade ; B 0 -174 599 725 ; C -1 ; WX 600 ; N sigma ; B 67 -16 581 433 ; C -1 ; WX 600 ; N sixsuperior ; B 200 248 425 611 ; C -1 ; WX 600 ; N smileface ; B 19 0 582 563 ; C -1 ; WX 600 ; N spade ; B 98 0 559 585 ; C -1 ; WX 600 ; N suchthat ; B 20 0 581 514 ; C -1 ; WX 600 ; N summation ; B 107 -124 513 564 ; C -1 ; WX 600 ; N sun ; B 5 -13 595 576 ; C -1 ; WX 600 ; N tau ; B 103 -15 472 419 ; C -1 ; WX 600 ; N tbar ; B 38 -16 505 562 ; C -1 ; WX 600 ; N tcaron ; B 38 -16 514 615 ; C -1 ; WX 600 ; N tcommaaccent ; B 38 -184 505 562 ; C -1 ; WX 600 ; N therefore ; B 33 0 567 573 ; C -1 ; WX 600 ; N theta ; B 85 -15 516 603 ; C -1 ; WX 600 ; N theta1 ; B 24 -16 580 736 ; C -1 ; WX 600 ; N thorn ; B 17 -182 547 589 ; C -1 ; WX 600 ; N threeeighths ; B 17 -8 580 611 ; C -1 ; WX 600 ; N threequarters ; B 3 0 583 611 ; C -1 ; WX 600 ; N threesuperior ; B 178 248 418 611 ; C -1 ; WX 600 ; N tonos ; B 212 481 388 637 ; C -1 ; WX 600 ; N trademark ; B -1 238 604 563 ; C -1 ; WX 600 ; N triagdn ; B 59 24 540 465 ; C -1 ; WX 600 ; N triaglf ; B 67 106 504 414 ; C -1 ; WX 600 ; N triagrt ; B 97 106 534 414 ; C -1 ; WX 600 ; N triagup ; B 68 51 531 485 ; C -1 ; WX 600 ; N twosuperior ; B 172 256 407 611 ; C -1 ; WX 600 ; N uacute ; B 38 -16 547 637 ; C -1 ; WX 600 ; N ubreve ; B 38 -16 547 618 ; C -1 ; WX 600 ; N ucircumflex ; B 38 -16 547 638 ; C -1 ; WX 600 ; N udieresis ; B 38 -16 547 610 ; C -1 ; WX 600 ; N ugrave ; B 38 -16 547 637 ; C -1 ; WX 600 ; N uhungarumlaut ; B 38 -16 547 631 ; C -1 ; WX 600 ; N umacron ; B 38 -16 547 575 ; C -1 ; WX 600 ; N underscoredbl ; B -17 -317 618 -194 ; C -1 ; WX 600 ; N uni00A0 ; B 295 0 295 0 ; C -1 ; WX 600 ; N uni00AD ; B 67 252 534 303 ; C -1 ; WX 600 ; N uni021A ; B 67 -233 534 563 ; C -1 ; WX 600 ; N uni021B ; B 38 -233 505 562 ; C -1 ; WX 600 ; N uni02C9 ; B 150 525 451 575 ; C -1 ; WX 600 ; N uni0387 ; B 221 213 380 352 ; C -1 ; WX 600 ; N uni0394 ; B 45 0 555 563 ; C -1 ; WX 600 ; N uni03A9 ; B 21 0 579 575 ; C -1 ; WX 600 ; N uni03BC ; B 39 -182 558 419 ; C -1 ; WX 600 ; N uni03C2 ; B 98 -182 537 433 ; C -1 ; WX 600 ; N uni0400 ; B 38 0 526 784 ; C -1 ; WX 600 ; N uni040D ; B 18 0 581 784 ; C -1 ; WX 600 ; N uni0450 ; B 4 0 683 564 ; C -1 ; WX 600 ; N uni045D ; B 27 0 573 637 ; C -1 ; WX 600 ; N uni0462 ; B 37 0 546 563 ; C -1 ; WX 600 ; N uni0463 ; B 33 0 488 552 ; C -1 ; WX 600 ; N uni0472 ; B 46 -16 555 575 ; C -1 ; WX 600 ; N uni0473 ; B 67 -16 534 433 ; C -1 ; WX 600 ; N uni0474 ; B 4 0 683 564 ; C -1 ; WX 600 ; N uni0475 ; B 25 0 647 436 ; C -1 ; WX 600 ; N uni0492 ; B 38 0 526 563 ; C -1 ; WX 600 ; N uni0493 ; B 72 0 533 419 ; C -1 ; WX 600 ; N uni0496 ; B -2 -135 608 563 ; C -1 ; WX 600 ; N uni0497 ; B 9 -102 597 419 ; C -1 ; WX 600 ; N uni0498 ; B 54 -169 536 575 ; C -1 ; WX 600 ; N uni0499 ; B 68 -169 536 433 ; C -1 ; WX 600 ; N uni049A ; B 56 -134 592 564 ; C -1 ; WX 600 ; N uni049B ; B 57 -100 576 419 ; C -1 ; WX 600 ; N uni049C ; B 56 0 588 563 ; C -1 ; WX 600 ; N uni049D ; B 57 0 574 419 ; C -1 ; WX 600 ; N uni04A0 ; B 5 0 586 563 ; C -1 ; WX 600 ; N uni04A1 ; B 17 0 582 419 ; C -1 ; WX 600 ; N uni04A2 ; B 48 -135 560 563 ; C -1 ; WX 600 ; N uni04A3 ; B 50 -101 553 419 ; C -1 ; WX 600 ; N uni04AA ; B 58 -171 540 575 ; C -1 ; WX 600 ; N uni04AB ; B 79 -169 541 433 ; C -1 ; WX 600 ; N uni04AE ; B 46 0 555 563 ; C -1 ; WX 600 ; N uni04AF ; B 46 -182 554 419 ; C -1 ; WX 600 ; N uni04B0 ; B 46 0 555 563 ; C -1 ; WX 600 ; N uni04B1 ; B 46 -182 554 419 ; C -1 ; WX 600 ; N uni04B2 ; B 35 -135 570 563 ; C -1 ; WX 600 ; N uni04B3 ; B 47 -99 559 419 ; C -1 ; WX 600 ; N uni04B6 ; B 19 -135 551 563 ; C -1 ; WX 600 ; N uni04B7 ; B 33 -135 550 419 ; C -1 ; WX 600 ; N uni04B8 ; B 19 0 550 563 ; C -1 ; WX 600 ; N uni04B9 ; B 33 0 549 419 ; C -1 ; WX 600 ; N uni04BA ; B 19 0 550 563 ; C -1 ; WX 600 ; N uni04BB ; B 40 0 556 603 ; C -1 ; WX 600 ; N uni04C0 ; B 108 0 493 563 ; C -1 ; WX 600 ; N uni04CB ; B 19 -135 550 563 ; C -1 ; WX 600 ; N uni04CC ; B 33 -135 550 419 ; C -1 ; WX 600 ; N uni04CF ; B 108 0 493 563 ; C -1 ; WX 600 ; N uni04D8 ; B 44 -16 554 575 ; C -1 ; WX 600 ; N uni04E2 ; B 4 0 597 765 ; C -1 ; WX 600 ; N uni04E3 ; B 67 -16 547 618 ; C -1 ; WX 600 ; N uni04E8 ; B 46 -16 555 575 ; C -1 ; WX 600 ; N uni04E9 ; B 50 -135 550 419 ; C -1 ; WX 600 ; N uni04EE ; B 38 0 526 765 ; C -1 ; WX 600 ; N uni04EF ; B 58 -16 526 618 ; C -1 ; WX 600 ; N uni2002 ; B 300 0 300 0 ; C -1 ; WX 600 ; N uni203E ; B -17 690 618 741 ; C -1 ; WX 600 ; N uni20AF ; B 22 -190 576 634 ; C -1 ; WX 600 ; N uni20DD ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni210F ; B 87 -14 515 641 ; C -1 ; WX 600 ; N uni2112 ; B 0 -12 547 581 ; C -1 ; WX 600 ; N uni211E ; B 45 -75 547 560 ; C -1 ; WX 600 ; N uni2120 ; B 37 241 598 564 ; C -1 ; WX 600 ; N uni2126 ; B 21 0 579 575 ; C -1 ; WX 600 ; N uni2128 ; B 36 -111 506 547 ; C -1 ; WX 600 ; N uni212D ; B 63 -14 545 581 ; C -1 ; WX 600 ; N uni212F ; B 68 -12 515 445 ; C -1 ; WX 600 ; N uni2136 ; B 112 0 482 529 ; C -1 ; WX 600 ; N uni2137 ; B 167 0 435 530 ; C -1 ; WX 600 ; N uni2196 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2197 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2198 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni2199 ; B 107 44 513 449 ; C -1 ; WX 600 ; N uni21C4 ; B 27 -35 571 463 ; C -1 ; WX 600 ; N uni21C6 ; B 29 -35 573 463 ; C -1 ; WX 600 ; N uni21D5 ; B 74 -35 529 661 ; C -1 ; WX 600 ; N uni220D ; B 145 -12 459 449 ; C -1 ; WX 600 ; N uni2213 ; B 72 0 528 529 ; C -1 ; WX 600 ; N uni2215 ; B 47 137 551 471 ; C -1 ; WX 600 ; N uni2219 ; B 221 213 380 352 ; C -1 ; WX 600 ; N uni2223 ; B 261 -145 302 837 ; C -1 ; WX 600 ; N uni2225 ; B 189 -246 373 881 ; C -1 ; WX 600 ; N uni2227 ; B 91 0 514 435 ; C -1 ; WX 600 ; N uni2228 ; B 91 0 514 435 ; C -1 ; WX 600 ; N uni222E ; B 121 -203 489 636 ; C -1 ; WX 600 ; N uni2235 ; B 38 0 561 574 ; C -1 ; WX 600 ; N uni2237 ; B 36 0 559 574 ; C -1 ; WX 600 ; N uni2262 ; B 51 10 549 555 ; C -1 ; WX 600 ; N uni226A ; B 60 89 511 563 ; C -1 ; WX 600 ; N uni226B ; B 60 89 511 563 ; C -1 ; WX 600 ; N uni2285 ; B 26 -88 589 586 ; C -1 ; WX 600 ; N uni2295 ; B 49 0 546 501 ; C -1 ; WX 600 ; N uni2296 ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni2298 ; B 45 0 542 501 ; C -1 ; WX 600 ; N uni2299 ; B 51 0 547 501 ; C -1 ; WX 600 ; N uni22A2 ; B 46 0 550 504 ; C -1 ; WX 600 ; N uni22A3 ; B 49 0 554 504 ; C -1 ; WX 600 ; N uni22A4 ; B 49 0 554 504 ; C -1 ; WX 600 ; N uni22BB ; B 91 -160 512 438 ; C -1 ; WX 600 ; N uni256D ; B 268 -246 605 282 ; C -1 ; WX 600 ; N uni256E ; B 0 -246 334 281 ; C -1 ; WX 600 ; N uni256F ; B 0 219 334 749 ; C -1 ; WX 600 ; N uni2570 ; B 268 212 604 749 ; C -1 ; WX 600 ; N uni25A1 ; B 17 0 584 567 ; C -1 ; WX 600 ; N uni25B5 ; B 94 34 507 476 ; C -1 ; WX 600 ; N uni25B9 ; B 94 39 536 453 ; C -1 ; WX 600 ; N uni25BF ; B 95 34 508 476 ; C -1 ; WX 600 ; N uni25C3 ; B 70 39 512 453 ; C -1 ; WX 600 ; N uni25C6 ; B 44 41 566 620 ; C -1 ; WX 600 ; N uni25C7 ; B -7 -12 609 669 ; C -1 ; WX 600 ; N uni301A ; B 116 -155 362 787 ; C -1 ; WX 600 ; N uni301B ; B 116 -155 362 787 ; C -1 ; WX 600 ; N uniEFBF ; B -73 3 672 872 ; C -1 ; WX 600 ; N uniEFC0 ; B 0 -179 395 843 ; C -1 ; WX 600 ; N uniEFC1 ; B 0 -152 395 870 ; C -1 ; WX 600 ; N uniEFC2 ; B 0 -246 596 749 ; C -1 ; WX 600 ; N uniEFC3 ; B 0 -246 596 749 ; C -1 ; WX 600 ; N uniEFC4 ; B 178 -179 600 843 ; C -1 ; WX 600 ; N uniEFC5 ; B 178 -152 600 870 ; C -1 ; WX 600 ; N uniEFC6 ; B 52 -246 544 750 ; C -1 ; WX 600 ; N uniEFC7 ; B 52 -247 544 749 ; C -1 ; WX 600 ; N uniEFC8 ; B 52 -246 544 749 ; C -1 ; WX 600 ; N uniEFC9 ; B 178 -152 396 843 ; C -1 ; WX 600 ; N uniEFCA ; B 94 -78 507 476 ; C -1 ; WX 600 ; N uniEFCB ; B 0 121 600 305 ; C -1 ; WX 600 ; N uniEFCC ; B 267 -181 614 872 ; C -1 ; WX 600 ; N uniEFCD ; B -15 -179 615 870 ; C -1 ; WX 600 ; N uniEFCE ; B 0 -180 558 167 ; C -1 ; WX 600 ; N uniEFCF ; B -14 -179 336 870 ; C -1 ; WX 600 ; N uniEFD0 ; B 0 524 559 873 ; C -1 ; WX 600 ; N uniEFD1 ; B -15 -179 615 870 ; C -1 ; WX 600 ; N uniEFD2 ; B -14 -179 615 870 ; C -1 ; WX 600 ; N uniEFD3 ; B -15 -179 614 870 ; C -1 ; WX 600 ; N uniEFD4 ; B 58 -246 503 749 ; C -1 ; WX 600 ; N uniEFD5 ; B 54 -276 554 443 ; C -1 ; WX 600 ; N uniEFD6 ; B 29 182 577 566 ; C -1 ; WX 600 ; N uniEFD7 ; B 0 0 603 603 ; C -1 ; WX 600 ; N uniEFD8 ; B 0 0 603 603 ; C -1 ; WX 600 ; N uniEFD9 ; B 14 196 588 566 ; C -1 ; WX 600 ; N uniEFDA ; B 0 0 603 603 ; C -1 ; WX 600 ; N uniEFDB ; B 0 0 603 603 ; C -1 ; WX 600 ; N uniEFDC ; B 29 -188 308 843 ; C -1 ; WX 600 ; N uniEFDD ; B 254 -246 308 749 ; C -1 ; WX 600 ; N uniEFDE ; B 58 -246 314 749 ; C -1 ; WX 600 ; N uniEFDF ; B 254 -246 484 749 ; C -1 ; WX 600 ; N uniEFE0 ; B 58 -246 315 749 ; C -1 ; WX 600 ; N uniEFE1 ; B 254 -246 504 749 ; C -1 ; WX 600 ; N uniEFE2 ; B 80 -246 308 749 ; C -1 ; WX 600 ; N uniEFE3 ; B 254 -246 512 749 ; C -1 ; WX 600 ; N uniEFE4 ; B 0 -179 308 843 ; C -1 ; WX 600 ; N uniEFE5 ; B 0 -152 308 870 ; C -1 ; WX 600 ; N uniEFE6 ; B 254 -179 600 843 ; C -1 ; WX 600 ; N uniEFE7 ; B 254 -152 600 870 ; C -1 ; WX 600 ; N uniEFE8 ; B 0 188 600 242 ; C -1 ; WX 600 ; N uniEFE9 ; B 0 816 472 933 ; C -1 ; WX 600 ; N uniEFEA ; B 0 816 600 870 ; C -1 ; WX 600 ; N uniEFEB ; B 0 -179 600 -125 ; C -1 ; WX 600 ; N uniEFEC ; B 79 -11 541 548 ; C -1 ; WX 600 ; N uniEFFA ; B 0 0 602 602 ; C -1 ; WX 600 ; N uniEFFB ; B 0 0 600 600 ; C -1 ; WX 600 ; N uniEFFC ; B 0 0 600 602 ; C -1 ; WX 600 ; N uniEFFD ; B 0 0 602 602 ; C -1 ; WX 600 ; N uniEFFE ; B 34 -12 581 569 ; C -1 ; WX 600 ; N uniEFFF ; B 67 276 537 740 ; C -1 ; WX 600 ; N union ; B 63 0 537 562 ; C -1 ; WX 600 ; N universal ; B 55 0 544 599 ; C -1 ; WX 600 ; N uogonek ; B 38 -152 562 419 ; C -1 ; WX 600 ; N upblock ; B 0 250 600 750 ; C -1 ; WX 600 ; N upsilon ; B 41 -15 559 419 ; C -1 ; WX 600 ; N upsilondieresis ; B 41 -15 559 569 ; C -1 ; WX 600 ; N upsilondieresistonos ; B 41 -15 559 637 ; C -1 ; WX 600 ; N upsilontonos ; B 41 -15 559 637 ; C -1 ; WX 600 ; N uring ; B 38 -16 547 658 ; C -1 ; WX 600 ; N utilde ; B 38 -16 547 603 ; C -1 ; WX 600 ; N wacute ; B 25 0 576 637 ; C -1 ; WX 600 ; N wcircumflex ; B 25 0 576 638 ; C -1 ; WX 600 ; N wdieresis ; B 25 0 576 610 ; C -1 ; WX 600 ; N weierstrass ; B 37 -165 566 407 ; C -1 ; WX 600 ; N wgrave ; B 25 0 576 637 ; C -1 ; WX 600 ; N xi ; B 155 -182 494 603 ; C -1 ; WX 600 ; N yacute ; B 46 -182 555 637 ; C -1 ; WX 600 ; N ycircumflex ; B 46 -182 555 638 ; C -1 ; WX 600 ; N ydieresis ; B 46 -182 555 610 ; C -1 ; WX 600 ; N ygrave ; B 46 -182 555 637 ; C -1 ; WX 600 ; N zacute ; B 110 0 495 637 ; C -1 ; WX 600 ; N zcaron ; B 110 0 495 637 ; C -1 ; WX 600 ; N zdotaccent ; B 110 0 495 610 ; C -1 ; WX 600 ; N zerosuperior ; B 188 248 413 611 ; C -1 ; WX 600 ; N zeta ; B 163 -182 494 603 ; EndCharMetrics EndFontMetrics libwmf-0.2.13/fonts/NimbusMonoPS-Regular.t1000066400000000000000000004221011441723000300203760ustar00rootroot00000000000000%!PS-AdobeFont-1.0: NimbusMonoPS-Regular 1.00 %%CreationDate: Wed May 17 2017 % Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development % (URW)++,Copyright 2014 by (URW)++ Design & Development 10 dict begin /FontInfo 12 dict dup begin /version (1.00) readonly def /Notice ((URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /Copyright (Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /FullName (Nimbus Mono PS Regular) readonly def /FamilyName (Nimbus Mono PS) readonly def /Weight (Regular) readonly def /ItalicAngle 0.0 def /isFixedPitch true def /UnderlinePosition -91 def /UnderlineThickness 51 def end readonly def /FontName /NimbusMonoPS-Regular def /PaintType 0 def /FontBBox {-161 -317 761 933} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec é ×`£Â,ñùÜiš"Ã[[4Þ?¿Ø˜¯.aÔØ·Pþ‡‡ÝÙgëð9YÆÊ2SÝã/ÊØ$u™lµüÔFëâi:Ìô Ÿ-=ËÅ‹IåéÉ¢“ÉÅ«ôSÀ­:¶QÖÃëí<¡yùéö1’YãL ¡ Œ4brî4*{‹0 @!þWbêƒ47W€éŽãfÔâØóJQr¨ª '7øjѹÒùW“à]Λž/LQÖ3/†XBSÁ¶("˜`¨yœ¶Â(ìÌvž¹=¾Ž KÇmŽÁƒ4ttñŸ!³²Gº"„=¸z',äÓµ¼¤ ?ìÕ«PfíA袷5Š!6Ó­GÊÉ/bf‚¥zÇèK°¸Q (·Ä莥=ö«£‚yíÆ‹0lñ7ÞŽÝ¿N\Å› A›÷|´BXîMœõJ ¼²æX(µˆ;ZEè¶D¬z„DíœƹIU-ÐWTÿVO+̾šð;‰š /9 €”ì"ù(,ïpøÉ3 ø)÷ cÏæÄ‘$…k2$é:­“ï'wÉSÍ{ÖkÕ4àåÞWq×ÌñǘõK§eTœž™†¶®‰WLlP?"É(MqdÁ`¡~sEq8[ãý¢Sí˳"S¬ïY³ð÷ôêàÊü ªS½6º·hNe?1­ÞÅ$<€Êµ.¿Î£³²>wR‘X–S€®ÃÀ“Å´{ÕÂÜœi¡—÷![ÐJ)JŒ²h1P"*·”$™ÑÃÓÅHå\æÒ¯-{qèñé¥ÑÄ^}€ˆÆ ŒêŬŽá'e±,ÖÞäìMM`/ŸíbU¦æ‡g2„%9“s£"=L]E7Or„ùXoå⇺…Næ@c2‡GN.™ Ž»ЫÉÔ¹?ùríÜ‘HÕ´Ðy–Ke à@Ä7e‘†öÔ’àßFú–.•I®-«¸œ}}áô?q4ðlÕ6§¨wfò›jARò¯åÁa†:îû÷m›Ü{ŸO)Ó+c)g2Éjˆ»!Ç¢Õ.g¾4{uò y zIˆŠ Ì’af;°A¨þþ ©{©f"7<ÐaŠwéh~w¹ƒaq*­¾¹ 9°Ð\À[%• @÷¶Ûç>”ÍÆS[Ìɘæ–ÂjhÑ1@Dùä@ ~aåš3˜û½ GeÊÑýÕÁ7žxQL~‚•%ÛìþZ™Ixû™D' F…‹¨oÕF“S ޶ܶ+„)÷±ê³þzΜåvBô*+@Nó+kÅü\ õS7X²{O…¤®—Æ?K†¡Ch`sÃI-ú"c*e®õžG—;DïYøG:Mh‹=–©ÃfÉ7›­S0«pïçsÀC¬¿8ÿò…ÍŠöB4ÆóÐLš‹l¸1Rä-Ý®6QޱAˆ,’Às£‘¦BÚƒŒ’îqý)!Ó""PðÕ3 ¶ÚFÊþúwoSã¿&åþR®šjgï¬<}•Ù8†*qyLhS’ÐeýñXññ?ÐjNå•ÓéÏvE>¿+ÛÓ§ÁžÌ?º¥?—6,jÿÀ÷—ÓÖï®yu¾£C>6óôߣ’L+†AšÑaŽ”°,þEÁˆEƒ<ÇÊ¿a —îB¿wÈÐY¶=ù+†ûkG¥¶Hè˜bÖÀ½­Ù¥˜<`‡Š;Õí¯«ÓMQ‹ª¿ÏÀÍJÉ ±œÄ†Z°v¸ïÝ/fX ÝÊ=A£ ù74ò›¥=º¿Usžœ}ˆSz‡#Àb9))í Êyd—÷˜G“³È@`åˉ«e‹ÿ2M^¿ra'z>è¡egãœV¶ÌÅC'ù\…­†@ܳ¤$‹‘á&”«ÙáŒ@ή f™)ŽÍí.·ˆ )G{ ï> Tm¤bÝvøNMÁ·q°MN~ª ”ZÅ´MKö’™5½;îMöøbÔuàÐÒÅSO¯³à pûl¯ˆ5 Úa,òZȸӷ -4úE ¢Ó‰Pxktè¾x  }Iï/b)ë´ý ÚÂÏ!§ÏI˜”*0q| @”²´Íê£äÒu¿bçñ‹½›ËX+ƒDî^È9îV1hT½  ¢ |T;/Ë#©õº¶Ô@ägÜùH2eÑu–\Ås3%êÊ×ã ¨O SãÖœ‹¡äkH࣋•vIè3Á Ð…MœéŒÃ’:dsÕˆkezÚÓ%¬{ìïÜ÷ O•‡ÇŨ¡oôA¯&QíÛÛ¾"ì/‘ˆ¿mØ\˜2½4!m”#ú7kqYJUñxTÏuŽ3À x’ƒ‘ßÇëŽÐEES÷Ÿ(}J‹oo8Ѳ!3òbºåh[À° ÷Ï%-BJÈ4tˆxÀ$‘¼QÇšàÉ~­Ú%<×Áˆ•8 —mÆ@•f}æ'ªA² ]r]!õ1!:-&©ORš`×7L•\S¨F+{3 „íö÷bþ}´­òb{øÈõ„ôNÕE™îù”¬oüá ŠÞN¡ á0 =6›Ã´~]x¬©¹GB6<œ’œÎ\\È›S(ÿÕ‰·nIþ£myb"±oeð@§OʹҿV2±fÒ+>6@2nu•P0)‘‰Õ…-7ÀP‰×—Èèšàø1ïò„¬>ÐQžu¦òŸ0Ë>huïžÎö÷yíìj¯ðÙ¨W`‰l¾1zi@r‚ÿ]†ðÍñg>8‡:“Ãø%KSm<¯‚:Ø?%­nÄr^?õ׊¥A$Tܱ=DԆĞ ÆL<ä¼ãÛ)>–ŸŽ¦X­"F/­M´K}µ[J“²hÝ•K+¬”c̼“fPÙˆnŒ_ :@–’½_Ç­±È0Ôú˜ŒÄEâÈ:éà âÚA<½¹‘P:¢øÒ4x£j`†}óOý‡ËñÊS@|Nvó ´vÏwÆlzµj\{sœî(¯çè˜+”(€J`!> Y<•4êoV$=«”ž€Ô**Q°áù½Õ˜´ê­ŸÖ“„î|—NÞÈ€'Ãyª¶zñ!EeDOä©aå%EP9zæ€5ïÃðêb׿Î.N9Ó_IÊAÊT4>ÿpà业}“ÿ°+ÂI0{´2ºMª^õz¢.Ó®‹¬‘Ì!˜ì¯é*ˆ¥·›ãR}`ïçVÚWƒ/;Y;ÍþbnIxq|~Ÿ6€¬Û\3ðG'>s+Ì^jmE„–~×jLȼá-·8AÖ-¢—Úþ hß«¶ç¨(õš!ðïÀZ1Ž;à<5=v0=ÌÀºŸ*æk¬ØZ=n_ÇëÝ>?^ÈD÷7,› _†~HV¥¢"ôš»#¼Ûs/>ø|mÒ‘UÔtå·!½‰®á‚v•Ïãºê‘Ý·ÂPq=6DªoúoR› “/U²³ÂòEâ sì (Äû`67|Ð]؉9ÞUb*t[ @ÈÒûÏB³k UYiâ­ú³Ò²“Š|¥tL ø7zOôý…¦—ñÉ—¦ÉTX¿-N;Çù^ 4]ªñ>θ;}‡Aá'X©c•ÞÌ[~1©ãÊQÄÙ â±uiô ‘«0‡7ܘhu­¦fÄÎqºDéò>Zý’X·õ5g&Z|íñB©`Ñ!FZXEGv£ªÿ}møÙÃ}=9ëYDžE.¯öòë'y’›¦·Í“@ ÷+h²ÈM´AúƯ:ŠÂ„øºT.þ  ½€-EKÍ,WM3Ì&“<†~,Ÿ¹AŸˆÙ[Ó^Ù LÈJª¹}¡{¬iŠ FX®¡ÓàƒÀŠ¬Ñ¯qIÒhpñÌ_Ïóè®=à “­ðŠ»T£Ž½!c̬ PrS&/_ðïÅòYîDt–дúQ»úö_Ë#O Eíš×Í<ÅÎÇ~>.å{gKMÆÏGËl!Õ[‡éðú'»² 5®Yª ]rî¶;ñ¶Q FøšzìZgi&Á!ÓZtœ[ XôΠuµ_Sȃ‘R²¿‘ÆÖ¹©‹Ò,i÷ÜZDoÓ{ÈëW2ª"~àŠ™PkØF\®²îG(¥Ù”¾A<4ÊÒäkÈÇ>ãÒÁåo·gv@ÔÔUÓ6ÀÍ&À¿c®°áôƒl3"xJ¹"&ÄÚ?p® u5F{KÞ~Ø Í”€ª,èÙ‰xˆmDjÍükd°x¶IÆN¥™=9)Š7A§~ÿ¦:*º1&áG¥Ûs£…n¦,'úÈŒý’ C>SàZc-·Z8ðVH0P&pz,iF·ó*´¡•@—À6ˆ|7¸Cur,Ÿ7äÉ´ROzKžIcùÙð;­s‚TÚ5j+ø’XP)Gšx{sÀ‹ˆÉô6-½Ò}'îô]ÌèGEÅ¥&Eþ=¨LÓ‰<@S£í³2Ú6&Y~Ÿä„aœÏ“›Ú].ÌVºäù1jãõµô+-líXH¦'ë\0 l!±oïó -‹¡X›²?®#ÄÅ ÓÊ[Í'ïmÇ—_Ùž†£rk5ç}…ÐKð-‰•ؘYèn‘¦yÑôЕ¡Êâ¾£-Û‘ÔyŽ–Ÿº]Ó ‰×Dâªj”öÅ{ym ëd%ÃÑñzñ%ïÛÀ?ÎÏâäÅ”*lpaº®æ½>º~Èÿ´k’*Jz )Èãx‰æù-i7áªÉg†)uµuƒôôš‘íÒä[Ÿ™+fËñºdlŽÆ}Hxæ²Ñn\•^A{EêHRà]°~ï Ew ó÷ñT÷ʳãÂÛlñ°nC#„©ðï)Bÿ}ýo^d«“LåÁ–“<›žT ë±ÊéJÑ6/bL±Ë¶ÐL{S¨Zè{6°xFV™uFôH=ÐöÄq€ þÓ¢õä·ÃÛùË[ÉØI ¹P’p^RÅ"¨¤Óó•ƒT½y³‡„<1šD¾à™Š~õ ¬Üöþ´§ôIIÆhàG8öÀ¦Î-xáÅRúw… ëê% C“\#{V ¨„ôáÄ‚;0ü{@ãQžÚèÄN5¶V<LJK#i ªl˜có—©‹2yÜVo9¡8¨æ;-kÇ€Ðõk§~ÚÛâÚx¬|Yñ’eöŒ–­×!«¯(új¹.Çgúì‚"Þ0<*ÄÊûý«îâ5Å}Ö°±á¨Éï`“ëAK¬}«0¸ÆüÈ)^šPð±²óâG°I𻨘; uüƒ!ˉ­!êÿ¬—ϯ@­É¶.¿No0>­ñG{Làe¹„Øäù•œî>xî¥I¼à.7P®ãqÿÔHÏ|~(0éw Øáé³~Çó-@ *EûU1í†n*ÒUhšæ.ª»±eV¿_=òä—|s«W½1/ünÍvw«£”ÚWúÜpª5Ltû¹ØðLx‰p_òíÑššèéÖ£áícäÊ37ˆ¹c¬°G ¦yžUË¡J§ÚK·ÉCN*ݘgŒIÅqb›rГLûbQ6«pmsî˜vô>¦ÃÈâµF‹ÊÙßw·İ~…”vú”"_.LçߌD³3>z.àˆˆ1Ÿ°?{}>‹»K"è"$µª’0Œg›¯²Õt>/8UˆV4[Ä1÷9xÝr#þ,¥\[Ðñ1ùŸÀHÙdûv$”/@é\JÈ>‰AD£xúuyjZÄy'"–Ýt ¾ÑŠ—Ú«ªD©Dû³MÛÃxë²Ç7˜?ÅÔæcN€-ý(ºÊ0ï¾ï®åü`ã è:÷¬åÿÛD=õ¤V!ÕÉö:ÍôŒL!(ÒÆT&?1ìÂ{Èzí®èÔ; ú’Ògmy2?R¨/`ïµÇfo{^Â˧YÚG¦æ¶g†²ªAé+4Ú@b q á;ˆm”0ÁÏqñ{žmGi6þã¹¥Ùe^áC_^Á§Wâ䇒‚îÂX”?q¥bÅVï`­ÐÝjõ®rX,ûú† í½pƒ&Á/5ã6üÒoc„‰Ëvõk$FôV]',Á¿½:D]ˆNi; öʤÙ$x€HLɾœƒ‘š­h=Ý¿˜·tJÅœýŸ›%_¨Ò·“‹´TÍ÷:éÓÊÙ½u'ƒxºb1ÖÐŒÚ0Õ×i²¿þ‡v°BÎnÎM5h›L òHöçyûŒ‚ˆ]t ¾ J3: Çi ]Ù.ŠYt‹Wð3"h*¢ýÆÁf4º$]ˆ3SgôOŸÈøâQ&®ÉÅh`NÃZå'¢­ó¬C’ˆ ¢ªµ•h™ ¶J5“Õ8‰¨ÄÃlê oíP^Ɣϖ¾Æ&°Å^û̱è‚qÄqéçÍ0åBêºa']ÎViþ™˜Nê.¬µÅ(IÜùn"Óôi%*$ ~‹¡K¿MŸñ‡ e Í¾§†vÇZ[-sW:I‚Ô! {ë±Y6ëôŒ;6Â~;ùJÁbO?iùÁÜ-nÓcûc£¯ÄË[já‡ÈŸ°÷þkËÈáf .¯!Ĉ’ãÍûÍò8…|=Ä⺼d¢Ñ»Å8ä ®×”´BäÍù¡xú_“¨Ûeù6)ª9ûÜlŒî}, Fz^iñfG^<:I5ÞG ‡pµ·Á"Öÿq÷v‚DäèÑp‹äH¨-ÚNlÿïä‘ V¨÷ÿ½ß&ä²ã”.¹Ýä†{>ç„8/ê„!ú£çÂÉ‚¥s>S‹“Ní1#q[£J’>®êåƒQjŸ‚ÀÇøðÌÜ#.-F|?ž¬Y2H;fxmùµ®‚d©Lª'œØ­-·5Dqéa¬ìªf-)½Z;‰!Ú–4ìØŽÆÍ`}žeG"X*ì錗! 0Ú|ØøUVe¾í»8Z'È®S]\â"õ`•ô"Ùzø´!íËež¬è0€4î[UWÈ1S¢ÚÒå'TDáâQ×M—üä¹0XžO´_ÏÿÒj\ü@öO÷I¦Áù•›‘} “&Éš¬éÒž aCz×(ÄÈɃ‘t%ue¾T)m¦Cõ‰õßû¼Ôfï«2y»^)Wh^¥åQ¬æù@ÅI¶ÁpËm„Ï•¨£è«šÈŽMÃs¤£Û=µ+Ü8m¦·ú‘™,tCÒ„V$ª—«‹Åö벌qkfXs®uÐîÀ‹—Pj1‘‹iwfy¥\ñ,ýÐùkÆyq—âI꺜pêü*æÜ fjk éÆÓãHÒ˜»§ÙhYÝ3ú]8-14DJËéú1/&…Ž?‡×ôɱBÓØ÷<ÁUŽ;^EÃNd'ˆ(*á(ˆ×â5×È^…ˆµÍ[ánU¤˜‡¬íL Ž1â¼úúëП ¬wrŒð0ÛE1.Üo^?jôyæîºé‹(î ƒUÞè~¾kŠÜíÅ×¥³2n‘’ª§Ô#”›yÏ}æ1’¯«Q'›~¼|(åæµS¼eGç• (}Çâ£C•Ú"ÞüöG³ó¾Ú£CA(:Û’‰1-Wzw¶E•€FòÓ=JÿÔe ´‹Ã5Sç+«mÑd9d¾Í-IVö:§ª;TÅéX•À%ŽÈa¼¢ vG®¹¢ä¡íÛ˜s©¶/ Y·UŽ?3¨øßQ?ïì\DÿcooH1 &8KC ”ÌB¦.oÃx ³»t€2W3™(\©Îf—i-:HÍedæ>DH½†ªrzš¯wª0áÁÞëÕ(âŽÚòë°jõWFÌ©PŸº"xâkiÖH«¡„N’Þ±S‚‡ˆ^ùÏPm ,àœñôLê2Cµ ¶äªs‹[ïŸ|ÞȽCÁž–£%ÚºvwEä7[ë,gcúï m­bÞ³½I~nOrHߪ×+€œBéUØý2Ä7Üñˆ_Ëíã¾M²âq +‡1ûS—„cÍ"¥­Êõ*uñ§°:×U\Ÿ8ొôK”I÷ùƒQÞYãÛ¦!P·oma [iNê[ÇÓýsA­`t ^ª³âVÐ2䜊®ÕÁÁ}”ºO«}ä ö• :Lk´úОè/]ãQrïêJßZ†{}ȃ^‹eÜþží°­Ô±·ÿ¡=nÅÊSÅÆÇpGÔ6¹X?µÖc”_Àå^ÍG™áKO‘5²µˆ‚•ˆ¡Â¡+»ßVP”7Þ7± šû$’Ô C£†nå]ß>“ò$°ÊÏãèzžÚÿ/ָĻnúd-ðsÛà2æ/Éà%B¦¥`| íy¶ôÖ ŠÁáJ;Þ|„Q0Äÿ|AšÈìÔûaïôýiZ<©+áØy%þ<®Áž‹KwßÔNB¯¡ÂC+Tk3áÂBNeÅÎØ!"¯YR•x6ÁÄÝ{¥hcØmwÇßÊÚzVç=KˆCô„Î%9®=V›‰B}Õmðèœ)8¡tFJ”Ê™~’Z hÁä“Ï{D2Í᪠©¾ìËOb–ÿæ§cpÄÖÜGwízö…’ý{ªmZDµ„†¬´ÎGkÔjÂôºUZ9€f}Lä,Ûlu~õ+ƒþý VrÞ¨-P$Çýbìîw½r©d½ULψˆI7 ­O‘1ÊTȨµ«¶^Å¥¢¨-ô&¾IƒÍ¸(Ë!Ú÷ôÊóV¼]âïÏœNÝp)ã4L9•Ö3ê>˜)@˜š9ßë‡ ŽÕdÀ%!mFr¹õoVõÅVð9©$Aª#5ÓµÈå„9%M.8ðF¯ëN…<œVÿŸ7‚z<ç ‰¶•ØwRa„· ”ðùíÁ8ÞKOÌ’W«)d°î.mÃÄþÅßÒ*w(Z‹«Ò¾àE¦k)©ñÈo¼è®·ãµ3eÌmöÛbɪkާ{÷QþŠ^ÓXIš¸Õ´-ŠFÅm×»©!îzçþë†BiF¨QÒ·¨ÖIúmP…ŸÆ°~^õ¤˜}|ö¨h¡~¼¬,å,aÁ˼xât™â5,nå´·¿á,ã…_5év­@½ˆÜC>Ƶv _ .n¥(Šòè€×€ßÅOunàcZ½A à 7úøÝ&;y?„Ïrʦ£Ê°ž¸«ÌS#)¹¢¡;2FU› 3dpnÉÐeȺà•Ävo¬þ°Î¢&[4…4‰T-"Ã’\üw 4šÚsÈÀøû]üÚèΈÝBäš6†—ZþÌõå_6=céëöú {/¿DÔSçè—YL¨¦žežc( n‘G~P]¥1Èu•1².9í?´Œ„Jnö¹ÔÊBv·~^ñJ&~ŸD½l‚º4W‰'lœÓ˜Ó2Ù@Ãü’M¨cÞ/êi×â‘?ÈÒ(ÉöKþ·nþ8Í!aèò׿ðÕÉÔ}¶]‘¡ÔHm»°;dMöü4àÝQç°énÊQ} P&=Ë•?z•1/âGðn_ƼE¸[ Psã–yøÑÿW ެ^JÏÒÏTz‘œû¾PO·rf’*µÙl.‰­(]è(kÎ%CßOô‘C#ªòd‹¥ðy5P¿ÇãúB–w¡Ò±jÒÇ#XŒ¦ÿX''W8Ë9ïY.1zC¹Ò蘾êBíL`J¹9KêN –ÐQ6{ôñ¥ñÝôGbˆÐã²nÊÔ”)ÓYî9› À”äèªØr¸²þ€`Íã &H´)dçÁj’¯!#Ä‚r0ºG'¨n›«´ðæ'ɵuh]žqge'Á ¾µíuéàBÄîé?N(/¢«ã=OL!,c#XHlÅI‡Ù:Ç[;̆ç¢öt_ŸµÆìü\MíÕFôyçÖ›jÃ{}úÔB˜1U“›N¼ƒ 3\—ŒÍ½‹ [B·ñ·«å´Éºàë×ÓW‹d¬¾K}$å%[ðùk‹ÙÂ?âg÷êö íðŽn&Vƒ”¢5Χ§¹vP?®ËCNUg¢®‡|@L“BQf˜Üq% ÁÉé}˜ÀèbuÙ)Ç?¸ cÁúŸv†G…-wcÒX·xQÍ+q @nP§>i ]S8œCrÈ÷N¹…0° õ†^Jt\×%Ù-^Â{ûZ¬ÓPÂ1ޝQ=GÁ'ÂñÈÔRü×¹¦K¢mW½1ôjvïKXØØ>í8öJÖŠª”•py§j¦ ¹ î]`¤0—fF]mWª»æÃ×£áC¦.ÙíB†tƆ`ÃÉëôïΟKˆÅ °«aaµÜAGÌü#ªõ¶z5ö„×~üë%\ËÌ]l#K’ŽÀ1ý.Ç9Äe…½®SއåI]„‡'\ žêÿ¦-`¡•/ï狲Çíkš„ÝÚ}úEÍ.1,NÀIE ä÷]ûœÓ…¯×̯!Y¿æ–©±«èFtÑnŠöjT3¬‹¹UR®ƒ'ŽI«˜¹ñ÷©äáð¥?î^ûüÔÓ¡Þ €&ýîe*r³¿!Ê;>ó %i>»C— Wž„õÆëqóá+Qå—žáL9MÊp¿­ Ÿè-à1 Ãnââ4–/cRhucdà™ÄR†œàXîVßÖ™¿f~¯CÃ^‡vbæÑÀÏ‘?´›.…ÁûX‘Êô0/žü½£Rè!í5|Y¨ÊV*:´ðEžÜBrP2Ò„¡5²†h6;-Y!ɉ÷(Ã@U.Ø Ìà:tµí#zë¹¼×yQB„rèœë*1ꀖÿnT îjÓçüÃГR|» I,4¾)«€–2¹ LtÒ­ú½<ú’ ¤øËRTib¢0ÜŽó|}÷Ží‰¯*æ¼Î©pñ½Ï÷¶ÑÞKŒXÄÄõ­ïUªì;czÏâ ±ÙЮ¼ ìq ÉíûðЇä1Á ´ÙJ8iDH»²¬¨/ç²›  †Ó²µN§ËB\”£ðsÄ|\Ð,øóø=ÔáYvÛw¿Ÿ!¢j’}×ûu§‚ñb¯÷Þäe± ”"=Û‘ã=òb¯íS{‚W &f Þ4p‚s;¥ewY0¿* fC½B!µÚ¯Š,昃ã\¸ä>+wM<²¨;' ‚»ã“ßþ—”ñ.ÀÍІ > †7)Õ‚±a()‚ÄaU,-+ë \ aav1nȤåXŸÐ`_ó/Žÿ2ùh¤F覑o7é>K’ÒÏ”Q'0£˜‡DÑÕHÝÍšh-ªÿÅ„MOPÄØDO¶k²Ìág‰r3Þ<‚Vl³æzéC€C".Nû\9Ѷ %H´K` ‘0Û,¶ìÞªg>ü±ÿjÔ¤Å:sý#r)º/9tJhâ=lRµ¡í¤Ôο9J÷îpv9^ÝW¶¡q·‹:9ôÑ c…âvç ¾_ŠYëÏ« œ¹DÅ·Y6¹§tS(K¦¾-52ÙÜAË·m}yLœHŠ­=ÓðTÚ%kWÍGu´–ÓKðÏ~>¤‘;1q“h¶€BÔ¦ Éñ‡¯ü`´Z©tÂ}}ÄQv+TUàRá\# rt¯»‘Wš"ù»:ø®Œí†¨ˆÍºcAàhˆƒ²›êÚü/TD#iÄ|"ÉW¹ Ö¯²•’µÆt£p.¯XÊ'¸yðlá‚Ë#G§Â8ÜüÓ­–dïûGÛ¹0S«`T1ì"N#çG#Æ`Þ`N¹Ï¤ÇÛ½yÙò2ú~ÎsWk!»)Ùè_;WAd¬‡9àìþf#T¡ž_óVáút­G•2$º“â¥o0¤[8Íj";!'Îçe´·iýäSÅP²†ˆFм^rÖ&ýw|%!ÂÒŸ^txì³¾‘ý®LÚgûö/ª¡asS{¡½øG«Šlä&A! $×µãJ.ýZ¹ AÐ`ŸÍôc7{ůþ¹„ïsƒM´ ö¬`9sØïQ­ì¶”*Óš‚Î%~)þëþ”:W%Ò¨É)M¶ÙèåÕz±ÒÍ:#ò6χ#Ã:­t“ÕšÕXXúV/ÕÍÐ`jk21+mNþƒÜ¨«rŒÑG³›Çú¶àÑ0€·JÙe¬N[]ÉI4ÑDNîOeM@ ?]®_´ˆÑwS/ŒÏJ„bù¶šœ2ûQvÛAm—=‹•ø’—¤0`ÙO²7I`¦uÆUÉ¿€è„Â'c”¾§¤Y²ú\ kOëߘ‡ ó´ñ’›ât ŠÕ.H¡w< êÕv72êú~A‘lYY—5ÑÉqí!$^íVñ7è:Kã"ÀP¯À€dŠéÐðí1-P'Åu«µ )o*Ê_š8ⓨ%yBÍD _rôÕμؒA“[i¡2:«Y©Ï•ÜX Ó%fÓ•H[(VS+=™Çó<ÓFAsn^A!Ž ÇF·h­ÕUÓ"±çéÙ®š¤eZGôæÔ† •¯LÿÐË©•¹0°F2©m{_þ¼ZG<­íÔ(_úfn½a,9o³b¤€jdpÆ“MÙTÍ"2+Ÿ³ØDõµ—7Ê ~K[¶ó©ú«„ÌZ3Ü é[Ø0ª-@÷]0—ÞŸÌBf¿wmåÆä%(ÆÞç("Çx`lÀ}„N™ @ŬÛdÛ3Ì(`6où%È8[ÑÒRè¨ïgx45½ÙôY³íH°ÝVËlÍŒ!­I®\¶ë…L(cï¹É À­ç8¾“Ž! ‘'šQí­ª5|Ež3Í#èrçÒºŠ–7•$£„~o¾’L·÷ät§œZ‡™ÂÙ¤WDAWQ™‰ .êâeøC†²°ÖÌ2O 1»ÐôPÀ&@‡J#¥W “€Çþðcñƒ¼ã2ª­8*\nIy½úçDÒ•ÓÌ !©aß9?¡—ÑK=9ùøé*é£<¥Ø™±àéAyßgÿ]‘*yK_¬Õ m‰‰³è”`„äj7¤7ö%¾Rþ¼ÊÄÈlâ5rA¦yžD¼u’ùAÈR €ytaÖw´A㼄WtëãÞß%᪦åc×dßÀ¯Q¡aç(´Û‹ž>@Ílïß* ZJ Õ˜÷(ÒY„HÆÇÎí×!‹s<¿~ PGŠj[`˜2e0Ø’9Ud­'s [±ªÇ `ãÝÉeƒÏî÷±ÒuâÀôv´œQ»:ˆÂvAÊ`J‚rÉ^€ÿÒñBÚôüPY0SL÷¼?ž<,g[[ï€hôû§ñ õÍ5뾂•Æý£×Jº7øÈ\žì9Yz…rEÞ;XŒEiÛo‚³÷âë1Á¼#Þ+h¶0[mN¾Æ‡ªÃPØ~µB£Í×÷B¾I¸rÿ¶èVnIXªÈ«Äй€¯)®Gâqp7ù“*¼U¢úfص«;“Y“t¨>e•Ô!_v†ËsÚ~›ÑƒªÈ cùKþ÷€Ôm²-ÿqa|·f¸0¿žé˜"ú2X«¬[b9${e¯ÓÔŠŽ€Hz²6뀞âPolXŠŸ39jB>ú¬‡îü&é„Áe¨³ÑìÚBi²BÙ6ÄØ7—`õ…jÃf‡ä[ˆ‡„‰²ê³_B R#¨µÁÊÃáÃ1ç„­e1±×LŠø–¬`íjÚíQÂÆ’åXLÝ]èŒåsãLa€Îs¦×)[¥MUâªðõAŽ'T§·^-uèNyð .o§žJûE¾ ö„ƒa`+V®Í ÷ S |¤—I·¦<3UÍßšùâʃط+ L{8}.ῦ°"n"¶?¶Nð®+×{Æ[VSf‚·œ[®<‹„YÆ-‹ÅLÜQ¬'TGõ٥LjÓÍ^¾aÛSæÍl¸îFü¼(û<–оyñc]Qø~àÄ¢œ%bµ{hïvœ e/‡p·­ÿãpEÝX.î8+Ü÷B¥ª¯]N—÷HlD…ËÑi&Ž5å>Ûæ‘»ržëˆDôl}E©™Óøi+86Ü‘’î@~ ·A‚Ø™nQh5¸€…6±$¼Ÿ‘†9_RxØÆ|¥·ŽN)p¸õDšg°ÌQAr¨]ßÝ$Þº稢 LžnIž¥? &bUI_Æ]ºçv8rt¨9R¼°îÞ›‡ª=þ0h)<9lÊéÊÏ&`ÂéE•\±ßÿâôÓ°ŽÞ@ßO²=A4Ö4·ï&ÑàìÄËÊeÔÏØ78Ã\‡% Ÿ‡‘oÚ÷¸mq\Ô|ø„¥àÃ%V áMZûd«é©= 5{“…ÒU“vfÁ˸vNÑŽØb=+޹×P?4ÏÐÉõ£KÆzcr §hL1)8Nf9êÍ2ú»F¯0‰DžÃKÖ↴€½Æpï !òV­w”b”K\ߌùL¯jd ‹Û½áä4¾ ÍN°Ça3Èrdå/ÈÙ@5Þǵi& ”pòwºaJîêsTdò°ùz vµ?*‹>j]½9^»yÜÎÊk¼ª|˜®9¾d«šK>D|¾-²ð¥¿WÂBõlº.p"bÑíD¼Òv‹¨[šúxufµãw8LpBŽQ]\ŸU:U‰“™Â|o`%qœóvõª‹|I3Þœ#M2CK«„µ:& Ñ{Œ(Û'IQƒ4" Æãñàäfj¿<ô“.±¢¯=aõK°·F.‘²#Fᨢʩ`:É¥¬µ˜¿w ÏX8:®ÝK,¼c%H¹¤2gY,èQ Éßæët¢xMT'³ÖíÊúÏ/S’[*c†¿[·nG•Ë»ö†Äô2jÚ¯Ä]ú¤Ã¬­òð2˜ÆÃ… æ'.$õýëä3XÝ"–×Á!g}že½Ý¶«_C\úv?&VŸŸ=oF¢ˆ©_?sç:X»3hBìÊBë)Ù$ZË¿Vôsü2ŠŽ ~àhM¦à*-^xªhŒ©ãMAíØ™(_”Bi¦ÒRt}PƪžóMÌp ™Ëy÷ 9†ÎÌ`6»Õnbb Í*¨“UÄù±.§õé…ñƒÎ!ÜÈôºÐF€w‘éERüQ5¢®!Wì÷R䜖ƒLcõX«PîLÀÆü9ózѯùj7†ñ}w%¸¨I “lærÎé½™OºÒÒàoõRòÖqX/uû0ò¾× ®øír×â‘e/yÏ^ ævˆIW”PJ`×Þ$ϧíÑ Pãxãõø^´!M.ˆ ƒÎM.´~'w¡[™rvò&‹íƒHµ!`£¾´/9Á¢ÕϹZí]J)Ï©@H€´×Åk½çh­:Y@fšIéD¿<¬¬ºäWþ†þêS[‰%ÓþÊþ½9ƒ]ÀL2¬ }x,Fwýø·ô;È"ŸÿÅ>—Aðè9áì<1p˜T{4=øÚ1 b¼§MøM¹³˜cgÓ¬lû:'®›‚a¿^ñ5¾dþe°¿)ÊE9ºÎÃ…!|,FzéN@‰Í£ÇÚ-šINÏ@RWAÜ”;!Ràò.N3öàJ÷á„D»1tûàš_˜ª1ZŠ”p'j ”ä χë!c?*©IõJw HH”èQ ÜÒx/[ÅÝxîàïmÅ8àðàŒîëq†"g´)Ûvçyb ÍÅÛ:õ-ím<®`váAïIdÙëñCÎç@Ô58fP£¼1ÒÀغãß}-QD»Zý0[)‡y¼:Çðhl&¦| wþdš`ƒá]]#jß—gÛ5ùWý'JúŠùSÿß­÷/z¤DŠ~0 …'°ûÉôGK圙œîÇa²ÞµѸOÎ;5AùÛS‹k[Æ©%¿ÉÃüÁï¯ýÔï4‘>sùí¤¦½"|U!ܲÞhÔFUçv7Q¬â›)ÒÉ&Ôý ÈAéK©jÜ7"m¶QT'OWF{77`¼W§/b®oýøËi?“²'²øÎÂ/¼ÄÎÍ ±ÙýßÐ ‹Z¡òµ%ÛÇph—;Üî?æy[@ÛÐМ~S}Wá­º|‹kgŃêCsn¼íœ“»†¶´†æ”Ü[é6Z:¿YÁD­Y¥8ûº¢¸Õt+·îYïA1¡Ëù=–°ØïÛÖ˜ïŸâýjkÜ¿fôĶvVÂ6™",–,1‡MžŠ^J£Ã3zŵAØ@²3Í’“ÈžÑíI„‰/ª&‚3¿zC 7}8Þ¦J^™Ç*Q±‚gýûL°¥Ã¤fM m2ÿdq(èÏŒ_ZÛ©,¡OuñQ¡¹Prûyó˜µ?AÛ;†QYþ¢Bî‰a=¥h8ü×^e9Œ{;IüÓ}vY)ý¾(@Ók|ïÌ¢å€8Ô<¿³*ðŒŽÌøÜs _è6VuGª?ùû­²/“™¿£Ñˆ›éÿèŽ~L8eà‡TÙ&Û^­Îc@Ù$´m~ˆ‹H„ ɹ¨‹‹‚ÉŽïÅ– ¶‘$ê]9tâéÏý’8`}`Ö÷'±ƒóà™û%jÁ)aõòêZÅlÇߎüŽ!w^–2%âWt vÅ^ï¬!4(>\”|…Q3&²O¹þ6yßãÂÕûb^¡&w§l\v„ðÃÚ¨9‘äwâ®À µGP’¦Awý|È‹ ˆ5¥èÁ´aßÀÒ#¬UŠïk{§[•±ÛÃøîÆ˜ž³_pcp-º)œ9¾œfÛTR]%†|^ê¿8XƒìMŽîƒÀ1^E5ìªhêN“ ×_¸©Ò SLì‰zbæ+Už )<õöé¦}¢f´*ÛÚðZÞånòn§±96œûœÃj€‹,‚zU®º"ù)v&Òd\À=>(ë¨Ðúò tX%”‚_rs7„¡©Ðnø“U, .ìYÊ ^øó eá_øØ†¸çò~~{BFEÖR¼©íH- tìN<óÝ›¨hdö$žà{ϯg÷* „a5Y/."xþ|ìlƒñuâ˺‘%3A=HG뒵󪶞¸ÑE=˜n$?÷¼-p¬g.pI•ÄR’—†)½’\TOÉ5ÓØÒΕŸwÒ"*@ý¸ç³ç'…Ÿb—áE´/¹b!ï½þ¹Ÿ+nÝüB"?¦¶j½$°GD3“MÈ’fÅÌjýŒ¤a:ì'͘f™±]ÈÜø(Ü1¥rMh.4rž y‡BÂp!<üÞéXsGLé/z~‚“zŒ@pxe#T»¸ý*¹yÇ{-|ƒ*¿eþzzÈÓÕiu`‹Z¬~2Qê¼Ð ¬n="ñ(0Ù•S£ pêÒ¤hnµ±Ié»Z4#ÑJ KñÈŒþƒ+ßãiPYÜl§Ì§]Ñèv‡]Á ¶_›7š5/uñ™^Á6ÅŒˆ\§sXƒ—HU‹nñB*bR¶‚ªõv¶ZoZ°àe`É 4õW­1e™oºä ÞŒÃ0³Ïî[ƒ²;Wâ?æÃÙYÿïÛ¨>Ù‹ûXEv|‹Ó*¹Ù“°ú-ÀÊX]G\îÆÉ{Îܯðà8ÕŽ·.ôR|2 é™DËþdŸzCƒ¨ŸýýàÁв'C’ðƒøn$U_/ý+,¿´¸a8!Õ€cjÜxq9Ÿ(dêùh|µ ñb–¨es4Eµˆ‹úW „Ó~Rƒ.«>RË.äEÙƒŒ­ãˆ¼ µ½&¥ÜI‡iÍTüA ¬#´ïtQÕõK¸ž)ƒé4)S¡®W¾‡ÕqiTWñó5wD¼ã³5´š¨(l¶.¬pk¬#‚žƒÓ—남’cè+É‚“ä%ˆß—h¸K–b˜*ÖMa‹FI‘y[œäðXc‘ŽKpí°:‡ï:±~*öçwmâ{üã[‹Oe¶Nq;à_–|Á×Ô¿˜¡Y°¸ÌÚj ©¨§´¹™H÷÷ÐóP‰9#%ȯÿ厵¨Š³G_;X ;W/gÆ£¨Bgs¾R̺ËúrX´›5íQ‚­a4^XCá$D—£$&1Å—Êþðܼ3Ôg¡ ÇTªò­PsR‡¹¥TM n•=«'Ý%¢}ùè\f¹ýbÔ{m¹œ ¹"äÊR4þ‚Õ;‹ä>Ãó²æx0xgÑaí‰Ë³FØ. Õxé§§+ï€poRI&‡,ãÝË+ºŠò+$åo^ýi²ï\괆ƾ}AW©ÎðmvŽš¤-ñ)—ŽáÚõ$”‚Ây0éeÙˆ½U<üÄòz=óõ¢ÙLŸ…^æÃ¸}Üág Ùm$JÂö~õ›Ë-)Y<á\›ç™Éôç‹kNý"pä>AåCZ“^á2ÿ8é›È¡Zorúú…!YYv3ßÁ 5hŸ:«Î®û]ù(½®|™RÙR.˜ªÿù4½Ü«ƒz¾LȰG©,È€PfÇêyÆÐœXd§ Õ˜Q€l2(Í:jÑ:JHØP[5iQÁ=¡¯Z´äFޝ¿=Ñ„Œ¨F¤Ùô¥¸_G$ó¬-ÏkFÙŒp–™òñþÖëÙ˜2*©©ˆ>„|@¨…áeœŽñRD­{ÜL‘âË(èŠe Êã¬.“)FckÎiÖ£€Õ&±jeêÎ A°x1:‘ÈxíÛÓ{o3”yF Ó^€Ÿ¢fë¯X=þJ=Pä3êhì mBŸ‚24g{¹íZŸ¥$+¨¿7Ýôß@íå²Âdýâ Ó•ŸeJû>“í·SøøÁ¥s{7} 3¦nStÀJØÍÏqûkÙå…Ô-»táY¨çº?×Ó3uŒjl–Õ O‚åçcÊÒZÔá=¡&pÆxØÞ<'EÁ–¼&–½×\]~×ݮç~ÙQʵF€æG68ìg›—' ô&ËžŠUǽŽÙóûž§tC<ÀA1@ëî´ S@Yådz|½ú Š›ÓZÏ™3ßÜb†ˆa¶Oãenožù˜$ #5Þz™ÅÔèý]&Ü­Ã~¬['–W‡’ᨇNï’ÁÙWúaCÓ×À *6š4É\>¦IÕÊÙoË2çÈæ&¬\˜,Å‘Ê1åÎÈ>½Y>Æ¡Ä[òUè™mÈÖ¾OjÀrvždS¬w4«*£aó‰í"ªÉ’‘ÙÙ’ã›}MfI1ÿü5X »Ô{“T‰Ù†µ¾•þW\¶"·•œ¡’Š©½àšÝcvÐ+8¡*¢¥ÕÙ×zî’­º[ÿÙ­HÒ¶ªž YH.ñjK…HþòÄ9ëjEŸóá´!æ=D‰0£:<¬Ö í^lÏ0ï…Ÿ{ óŠò%lªêYN •*›âE>\®!^߈jìX€ý7d/ãpTGÆêúßïi+ MŽU.™@xdá¥o>ÞÁè%çh·)²Q£€¹F¡¼Ór ø:¾CÏ;MÁòÅŒ<€k,‚â-³’ÜgsÌïéKóŽ;l@»ø®ŽyÈaùÎGeÓ÷]†—r¿)­hG«ÆÜ®×úàÝ8ºC+þåÓÜ„ŽêW=»ÍA.ʘÈlƒŸ<¤kzÿ¸±j –jH¸òÏ ·áÞ½{¿eÄää|\ñ´wÎÒ@mÝh¸OüÓX®¦Aæ1 ÁߣLCÞ¯_Eq4Æ2²ccE†É)àÈÜ{ýw'‚ΤF.Éþ£y Q„T´ó0è¡Øšß•©ùϧÅô æ11 @šYäÔ&9ѬüKC\IgÒ™¬bzšÙV¼qq(„«6¢œ$ü7´²|‘¾Ü µ:;/»GÑRÌ'¤ò>´h½–%ÍñŒL€™ÌXz xB.Ú²}Ûf8ü’¼8#¥¥.‹ÜÇò¶S²ã'êWÌF»ô9ŒF(Öó!90–ñ[À‚?£?y§N9Áš'ÍÝÈ!¢*ÈF§eØ¥NP^›dHXü÷ͼ Ï9;‰ëµÁ'S©–Ó™5NYÂoÑ‚§K¬›ee>˜Ïé'%õ2;E;ÁŽ]äo¤*ÞåK '¶ØÑ^¿üVsˆN¹úR0@à«4àÛzã)Ø$ôÁÅTClÊ–úß0 EÕ¢z ~\I¥@ï¢õA zs‡4Lš @vwÊ_J††XA0H™â@~sƒ>{L8üé¸4< ŒÑ­’{¸š˜}0"G·Õóßh è%¢Ï-˜UJÑOgÏÙóÖ˜X$Þ†Î}„ô5B7‰4Î:6Þò[ŸýËCùë+b?Ì;¨Álž|­ —a` /lSõÿOcç0òü$` Ûݵß~û1‘zI½½Ìö·K]¢F›{8…8&¢Æ å¸@e6kŽŽ«{.±;Ô%óšÆƒK¯6!5@¾J"-S.¨ NÌŽnÑZ°úÒ,ÃÒ€N–â½úLnD@;hÆ5ÚÝ¿rS«ß•ù¿9Ù97Dm°_ÌÌä™2KhµËìÌ2úàÁ`%€;z¾_ xC•,„3w Jvå:¨¿9ûù8Õ!´=ÚYýCKF¿Ñ–¿û`ŽsšHÜXÀ\&~hG°¤0¼`ü™ãƒl¤\ÿ­Ì` ¢]S/²©oüUZã4Jrû@˜" ¿Å°ìZ9lJŸ«ÂÞ;g¥<þ z ¬Qª.Þcýb_JdŒhqë`rôkOIA»ùæ•ꂟ;Ù¬oEÄ&lGꄞî¾}*ÓnúlØqò Zä¤JRÊq`"Ô0PÔ Z­9ñÖˆ_qŸ‰‚hdxTF! p¼¦9çäTÍLŽÇÏ6Þe¹ùy” ~ŒÉ÷\×çAŸÐ.$` ÑÂÉ\8f«_˃ÁyL©I„DfyÓƒ(¨¸Ê³ì[va´¡ òð¨6Ö½íeY²ìDyÎÒ9¯·dÿª¬)o‘© uÝžþï@:õ Ó«„?._AÂ¹Š›7Gÿklšƒ«£§DMõN”ýßFlŠv¨â$þK=®?&®âÝ.1µéضû¹,¤Sg¯4Ç*CÈzÉcqmg5BêhÙ5‡4pqFšI©K¯ñÆ'LýÍpF8‰^_À‘ŒVß#¸ï€m»Y~sˆ)]s$ÃÁßô y8v# îò56'Z&¿øe1€ëñX¿ZÓÅ¢Õ \ýF„œ;*°ô3*î tW¼Ä­PEžu»¹•ˆ1ÿW6”(âÙßâ¤KotÁ8Pa(f–/¼“ª*>EH–ëYÈVq²bï~í"w Ýé4!¨K²´H¿¶KÃiˆ¢c3Õö…!d ¾¼×ª`õ³´²nê œ/!É«¨ú1Oœ5/íÏ<…ZeZ—'ª;6òÅ×F°°ËWĉb£ûà cÄAˆºY°ÿ¤£_åÉRXD+Å"­23 Y×XQÌN?‚è×5aúˆ¸[—¤6ÉgV  X²×ÇÕÇI?|A óQ”áÁ/mP ó‚Y"[ùTª£{iöáQ¯ îðj·l{Š¢ uÓ|CA@ë[b.«…AhzóL´Ìy€ö0Úv\á €\)yEYÃ)T‡!*Cû]Lùå@ùrl9"‡HøþO~*J’N°É•’›Q±%h Bp}™Ú:D§9õHÐÀ°0fY¤„>:Íb€;èiý§«á‹c$ªðªÆLý +dtc€Ê“6èç×úSðýÖÓž·B”Wä‹àÿ‚Ý_¼ŠÈ’ÖW3±ÑyónÍ’è±a½/ÜA}+ô‚•Éæ ÉÉðbæÿó®°_– uïS²ä9‰ƒå`®1ã!0ÌYà'ðkØõ×Ì1CW_hßË`+„êHþë7ã¸uü º5.¶4íx|);éü* xãœ#¯Ö˱= \þ*ì{ Nkg.¼ò³Á·_kÁÈŠé Œ°ð§i+úÁçIï í ‘Œá+r1ÓÏ0e£]•Ìk+ίìâk§jfªwÎþåºÕɽ«r1ºmÐà|ã#±ÙNš€ý/ùç‡ÐÚ ÞØ;áÜê©™3'TÅûhU \sØ©®íŠ"YÕV=•i°»Š]±“ÀJ—¨ÛƒY ø4dÿòÖ×ï hy ¦oe@ؤ݈Ñ®¬)xßS[ÛgTE±è2é‹»^½F~fkò¹à怽~=÷u×jî.%k…®œ]×@ꓸðâ ÚT¬­­)X°ü«z“k®qžwNâÊ&š&¸¬f£z°–ñ>ÐÔ¢ÇîKÔ]¾Ç/¡/›)qIáÙý²ŒÅi¸‹c ÂS³Ô3åCªÑjá:T(©U‚4ÅiÒ±ø3*÷sÙŠ©)ÃqC‹W¿õQ#èÓ™â`OA4ì1™{4µÇúüžñ9Ã2ï^b`DÝ9û ‡õ–Å™vfû ë”ãUªðÓ×Þ§qf‡Ž³^­ñ’ ¡åÝp£†Ëî&½žÒe´´…^úý }&Î &+q$$¯R²³}):Ëδ,Ši0MFÑ_6%U¢€+–„ÔK_Nf<e7qJ;¾¼rÛF8b¬ï'"õD ¯§×h§,1Í ÞrŒ’ò@y„Gš¯û§P¡jI)! g;-ñ¯íÈ>¹Æ™Foáõþ‰õýã¦B§Ìý5—Ô ®_8ØwI;SBä ¶4Õ{seà«ÁY׿w^µ¬lôg”Óõ¸J_[¨N­âü^-,ž >¾ß½œ!!;GÓ¾ˆŒ$=vóDZ±ÿͧMø=€­D€G\b=šÕ×䛯¼%dÌmŽ •µÉ0Å<ÀâÄf®‚›.gß?ƒ+8a¬Æj-ÑÿÇ¡îCп ldðʪnÛ´¹‚NÏxÅ\?Ø,Õy%I˜­iÙMAQ©¬É²2”ÿbÅÆŽP›‹( Óè¾Ô©é¯7g̶¼×·úNèëìÆÁ¸6 hf² !Ò³ÐΘC‘¬á~G‰]æÝ ᪆¬­\*pj˜ƒäµCéÜë×-æp”wöb`µ³ŽT­RÕ8/9Diª@"/v·Ø9ºAXíùôBw– Ð(ᯥbB–ÌÆz×cŸÒ>÷—Ô¢KSjgLî_p­ü‰…ó’yÊ|}ÊøÎ[š)Íø»&üÄgP ØN>vF1,Cìj 4A‚å$ZÂTPbºfzÚWÆ‘û^ »nÇtÕˆHfÝ(êŸË iצžv²Ìï'~›’ÒvÍEÀiŽÀvª·ŒUwŽñÖt±Ã.=l¦¹ã`”,&¾=ý<À„:AT!#…£ÔJ±¡K¶(CRg\ŸgZN]û¹_6¢…Pbè…xJuBú°ãŽa6-¸ròÉ£âÇ—˜óðia¤çï¶ä%Ã¥^®z¹'¶'öÀä]Ïž7\>‰EŠ:Ú–Ø©piY¸žBˆ»íùNLê*Ì«Ž¤}4;¹x>£P`Ô®ˆeàä(ë×W‘‡ÜIÿ¨GeOVNªlwž¦øžå|ÞQ³bêqõö~XjÀ+VBí)Û?pÆWVHf‹€ ¼@ëUç*EÄách!ñÆ[úR´6qBV­â'å/ú5[¡0­ïá”/3±; †Eb8 všƒ¶œVɧ@ªìëõïÒa©A§í_b[¤6öùFÄÀÒ‡Sº-$ ¶ºÆýÒyeéi DÈÁbnö:¼Éký´*›Ö–é˧º%{ÿ‚•ßqwçì”H´ÝóÓøƒ–f¹ ó9ÈKmñ¢Âø$F)ËSúË¿œ·ø/˜‹»ÃÆE)c ëÃÙE/ÏÅ…—b\MÝ-@uú<,{âl ¸<ÿ,ÿ¸ GèÕä?½ùKoq96×–,ãÌÀìrXß÷S¿‘Û&Ð"Ç1í<›+w,]â¾R³»¾Wø6P÷‚êX `Òªø:"RÚ•{††°ëÄ!Õ'I9ð(1¸Ú(¨Ä3ÁløÈfž²Þ„·J†Ÿ)yrq;-âÓÞ6!ŽÛ…I‘V°‚¹ w}BKcåC>R¶$gÌAË:fAÊðÕè“Cˆ¥Y'K¿k¶´=v²;­½îJÑ‘ïJ:8¨0>B}hmIÊ´Ðô Á$ãÊ:zZÓlJÜT¿êØ$¿¼dBµ;?Î-s¬uÑ,0މÓÈГÚ:ð«LÖÁ­tð£Áw¢&ÿ€tî§ÉõÝE;88ˆ9)?>ɤ·®öãýlæâKpŸc½Dì¶¥u²Îr¿Õˆ·núÕ_ÝÈѦBtþKøh.X•7,ÌQ®œÈ~ï–¸eww¢‰G¶“ì&˜$³3¥Ô®ÃµáIÍ”ÄÇ…¦4‹¼„1I&*—‚RV»#ÇÉ!–ô«rLšW/€$àÖã‘›œon«ë°z9GÑ—ßi¿¶þañËêÜÞªêÏ1;ËkËøæ…M*HVúZz1t©²°eùGüþoÆSÌ0ªpºbV"Æ’£o7Iìžš•LuL7ƒË8ŒˆþZo^+ô:_(ÊVýl½W”,w#P£r("»–«š&¬šÛ\¢Š/ˆðÑs•¼%±LâìŒþU±ïn Ü™ h†a‘'uC0¯ŽKÚÆÕ0¥I¸I—¥.(áYKÂõ ¨Æx›&÷±œ¸ñw¢úS_‰Ý»Oil€®ÊŠK@ˆ–r(" TQ¢ÂÔ\77ô’â´ñfÛœk˜@W¦¾¼òÐ%E£xo·½¯¶EŠE3lÚó[v×Í‘ Ôë0Aýk­¿|Ëäþì—f «6BÚéÆ Ìý€' âø\“xEO…rãºó¡ºŸÈÒ³ÂÛñ¢‹Ìž7ü}™ð‰¾vÂZ!Ø++æ¥vbV–Ú™ÉÙ³-·©cf-'úìS^Ý›Ãÿ@ZI•A˜.PÕ²m€l #öºl ”éÍúX­‘fuïgs»«E¡NÀxŒ¦¶ÃºÊ˜MV-„µÉGä€Y(ùIù èDL¸G‚½u!qB~âÐ'¼S[)ñ±ßÑ•ò‰©ÀõæstxC¹-)üñß›V\êÞŒâ*Ådab ÁÜ—7‚ñI”§ä˜p‡^¥ƒ;âìÅt1o„ Ùþî\XþBÛ­ÝföŽÏóy'jÎ¥®OTs€ W„_*>*@ àǦ¼T±ùVªÛ²}­HÈpþc!‰GfYCÒhîjtø¼0D€¨J4ò¤_itóI%ÚÊÆoÿÜu‰gJiqÄfÏÞqÛÂ&Ñi“‚¿2 X ƒ1ˆH}'\^wH!±a>ŠùZ˳&lÙðiRú)u[²t&¼)–ƒ–!“{™å&±SwÀG¶%#èJ€GÄõÌoÙÃIbgÎnTI^m¸WÊ©¤®ê‘ÉàÏ‚]='h¶&ÙKOc“€?À4h6)0¢5ÑÚ‘†;zfÙ õ@f®•œ9ÊÁ&ð¶²Å9XJü¡'sr2éV—3BÂø6­Þ®F~N\]QínŒžâê¸V4°Þ×0Õt…G⳨¥¦m™Ôc¥9ÎWsµ­[—¿ c¸^Æ:$Ý KþŸìn³cÛÍ•{ã…e(S¥<ÖKùã¾Ï\ÀÅ¥¢¥;:spóê0ݪ3Àäç_¯Šæ'éÝ)B2ïÀ–[]ÔihS‰¿ý #ý—0ÛVž¥N†ÐÂôƒóãç¶Ø1“)³ì¯ƃ¨7“¹Ô¿LäQí2OÅïúú‹÷W"Ü€I±Þ·s˜1Çeo’iÜUDÎ×jÑ+踑ǫaÆÄX\ŽÄœnÚî/Ajœ¥#ZMr Vcti¶åºâcdVññg8Cÿš&*¿(2¶ÿž~±ë%#ãPÛ@fÅkNyVËÉJˆ>6‘8d×y^}qË+‚6›íÏUK­Œ)œ¸»Ò†‰R¨+ÖÎ ˆ×ÎU ¾ÞØ #tÉ‹)°”æ1rQ‰ÂÿRY ú™TÑ/Ú9"3öFÌNòË௿…hó«OP ¡è•˜ÇS$ì¢!a` axÏð2†q~|_Feõ\«¨ã}ÙùBÀ¹{ðt‰“ µtŸÜaÙZ@¯J–h²¹Ç 4¯R½jà>ÕÖ’Xojé ÇÜb­MÝk#Îû*NœjO´`†iÀæ!‹âüf>k:š%Ä}¶¿JµSr @Ò]a°˜Q¾ê’T»Á‚?IWçpîªð&ø@j«Wúõ€Hb9+ë QàâæènýáÛxÂWܪYéŸZ_‰?s’Á,øÉò¹k8{Ij1ï¹Æl65•J»&>|hö´/]àï“â´õ&ïÔó=’p¡Õ¢<Í/}4rèMìÃI5¸Ì5}]²lØÔS @î ŸÖæ*¤²»E¹²êg XpÝ27s0îÁŽÀœ•ÐW¡y‰ûÝÑà3v\óTÓ&Ù7€™ÒïŒÈÂuç[aJ¨‚rìñ"xü96³`Û­qˆrc_ÃûþC­Fõ‹ W…\Ôz;pMH‹¢ „ù0AS(u!No{_ï™Æ”˜·ÙtVÆE n ?`ÜS~ÇYååܵíÕê{¯B¶qçb«N/n®KWwÊB¸ŽE:`OzʲûoúÈGg1¶‰±J;Žá6óúÆzfB5›ÌrQ¦q6BàÃA­¤Á•¤t†ß›Á8¬<˜eJiÍá(þPÈ|7Xž,hy¨PÌU9ËoME\»À3†¹ZÍvá6¶R®™û¼EsÏ”:5ºX3@bÛh벋7$~9€Ê“Ì;ÉÕHYÐÔúRj‚—§ ðfºÑŽ­SrJhÈïKÛërú®OFo5ýÙÐÚÞ?·˜Œ-°¿¥*‘o/†ŽþMHÝ*Di:lÿ›ÎàjuRK·6ÍêP¤ ¼ÈW!òïCÀ ûÞpÕQüNC¾/r»î¸Âe檨2 â³ÆS¦Ý¡¨Kz™´à7üìãÉ*ØréœS:©¤5 ´s÷§k E¶–Ó£lNv}–ÁUЬM£º6½.íÎäJy™f;CŽ©çEeõwν‰!P 8Dv2 ûöÓ°ˆ•1íøúfHëÔx(³¤µÐþ&…à¹)j …>Q0‰i'ÈËn,ÚÆÛ¤!} É·˜fðpÒ#5C¶C›ßiÐCJŠcy¬®‚¬•× LšÚM;xøóZ’:¸„¡q÷±ë.…g±§9ʶLQ:«ÚìÍÓ‡„N¿°H:§Á!ï0µ¯Wk„ èÖ;µíÆ"Z÷GÁ°ìpÔé±™)ç>Ï~¾Î)”þM당3^L¡x›ò.Þ5Ik.U‰ØXr&ãÄóȇ1/òcÔê@Ù ŒÿU‡Eeäïþ©˜‰¿íJÙ¯¬¬»Wc¬þ…-©x2ýE=ϦmÚIÍžXê¹ÎÖ‡ÅÌp¦'Š«šÚˆO‘ª“Lõ{ö=ZnhÙê¢Øк*ƒåHcî’0$õÙ/ 1Š»a-¬EüË«áX“O³8«´u"‹<)Àƒ)d"]@ r%e¿JŸ#B&j;]«Œþ0²+§¾ç x!h‡5tbа`¨]¬ih¾ÿÄÍe ÇŸÊeEáïÙ„œ¡rÌ@àT„W“äõq°è´Ûë×£àíÜÎp½pPP d ´=´:Ÿ‰/RU&ÌÀ+Hy4uVԽ添9,ürXBéçr”iN\Þjñ®£U»ó”Ph˜`I@Y‡ˆiqœèª”àú*û·ŒO~±ÌWp©éÖF¤qºZºg2YI6«¼?ý#—_§oDÃ>B 㳈ÿáx¡²-…SF²QK}ßG '>õ±TÆ^!T º3Ÿ–\VtöwŽúòÀ¾»èÃ'Í#wmÍ>º”ßîljK(z>c`>´ÎäëžCAIu•p¶ö‘ÎKda“ñ2Ï–™ÁÚ•¨~ÎÇ:à´¢i›¿Ld»%¾è› ƒÔT K%Ã*~¯ß€èqˆ)—‘½q¶9¼?i£ˆÝ=é÷(ÑB(=m y–E¤æéµ½õ]°ÌŒ>‚•œ©ßuSÓD^ïÑÀlgÿ,¦VTðp&¼xSY*¨V‹¹¥¿ß(>HŠüIÊO§"º`Ï"ŸÏ´mGïJÖ& ¨JëüÓWºgtš‡ßR„5›°³žf`0qX[5æI¨à™ï[…°÷³¸h†EÂtÞÂMy|gk©¼~’]gNô¨ßþº¦3]QÖ”îdý42£©¥J¿‘߯@f)Ð¥SÔš“æÂ[öOì²|ôp r ÝòR㫊1›é=ºûàWXØ 9„ïìnvÉãPàdRïɼp*Šž¢—õé=R4ô>¿9‰¤x§Þ°?l4pyL|o­é ê·‘U^¼gªcbB-ˆ}÷œ±¨¢vëÃYu,«§ÜN}0Çc4^7¦ÛWv…+ÞàsVBápïÚY â½Éðd7¤:ÿ[¡€‚œjs‡ü•¸k«¯cw¿S@qÓh0µañÊ •Ô‰= S÷¡B­Ö¨BL»`Íy6%:a2üŠZuWâýmÉšL@øDJ ”eCµ±§F«%,³²¦:ŽÄð°:ݪ²{#é† ªùóð9mò^»’·uíá4Ïå¯Êf¤UN¦ŒÒ'o# ÿ_6<µcxƒý–¶ðnõ› )^µ É„G˜éÏÆÞÎ%¾¨>kóе$rC¯?µÇ•æ<ÌáÆL!ƒ:)½¼"=è\•Qƒ%yÛ0`&~n§* ‡a-1v.9Äã]ï‚å_À¿‰{/§.Õv×¹qö¶lÛ~kHSkßè —V§¯Ý Øy^;õGnaë ‰Â3æç÷Çî5þdµ|j"Xµ…ôkŸxÚ5³1ø4Ð'3_mmèÉ”\ §ì5‚žC<•ËcŽ~ýß |{s.^ÜÐ’ «/ î|u¥ºÂN.^)È,ÎÁ>E;ßPþÃûŠ‚Z þa9÷`’Û!áë¬}ÇÚ™7Oi·H±-Ôõ­áf-Ûí@8—'ÚI™»Ë8Ò'`ª"|Àx©¸’.’  —Ä–W¯OÓ»¿øÚöÎëÿa26ÞûêÏó^ò*³qy>OÛ' £õ®%ß S`¨ý¹â«F@ÀdX¢s˯wRA`ý*ˆE@`ÞqNYCŠÙ€%0Ê4Ýå 8=anú)'ÀPò1|V³Ó÷™Ï°3ømÆ=$,ÀÁthåLŠ; {zq«FØÝ\¸­j@aõU ŽÝùò¸&ä¡aIi¼0K4x$Ø­<Ø… GTÓÈu‹ôî£m»2aí°VøS[³ '(בÍ"Ébt¿Lò WØÜ MO[d]!ñ{q¿ÕÔøÊ6 XíF³! )©&EòZg‡±°³úXZ.žÔ«É2‚ ÈM0#¦XˆåRÐËÊá °~%¶6W¹Gæ%oïê~ÂS£ ’¼­ÿ—‘mÝÓ³út² #èŸ×Ûñgf,´É ›õs2xÓkI¦ž‚R¾¢‰7J?36…¾Ù"=øƒ÷IÛéä=x^9Gq/¾¯,^ÙáóÞó®Ù=´ƒ=ƒS¥Ñä¢N͇f~µM¾ÅfáÂÑë%\e*YÐ…Ÿ—e0Éa?8pì [=ð§Î4èeuWç¾EÍí[Ð÷ÆàÖ*Q*>ªÖÝ¿X¡#\÷ƒÍxWF©> íÝ³ÜæÂ'AÔCÏ‘”íåé¸5`l+ÈÌ)ÜßÚ¶º¡>Dö½?¦%õé@LJßÑm< Ô¤GMj–ÐÌ~ÏhRJ X9)¾8ÔçþPY¢Z¾ì§p}˜ëHÿ G@Y4b 30ð Jè³Xz(ˆWü¯ ûß]¨òA~pͮҸâ‘į$;yH^=¿ƒƒmü Ó5 ÀÖè_œaçD¥}}’Àè¤ ¶‘äÞ*|P9I;fke>aàêcoyÏÑqí±èʼa…ïF«t€=ÉÖs `¬ þ3¸Hw¢ó@LÂh Ö÷¶„¸§–î® ßÛ=œx%ÓÃ_±ú.ïÍÜæ@rÕw±æ)\L”ÀÒH(›õ P&Hfúj…ý:/=:÷Â{1ï[ÜT)- 6—ÐT· pöò ¿ˆ†ÎñÈÓØL˜’Džmi9r†’–è®±8'¾¿h¯d÷RœªÍÁ:1›áUæË´ñNƒÔ 9Pûí2Xq9ΕÊcfhž`Ü. ŠPôczûöAcN4…¿œ”RÚ™Ñ_á<ýG³‹ÒD»õ; Ä{¶èÙÇãçÿžE‹HqÏ,i„.ƒh-VÝyVôR¤H“Ï_®·\‘NkäjaÞUßÔ}c1±s P˜X ÜO>Θ³[,, €YÂlªP8S´n¡FWô+4TÜKùßiÀ8ÏaY÷Í '×m¨(oê°‰l-‚4þâžÌµk׫©O䌫ÍÇU¹‹Eè™ßú‰þŸì£n¨ U Ç–T‹<Ÿ¼ŒZM{NÛOû³€ú“_ϲqÿ»e=÷Š‹>x‘¥^›I앇pjSIzY¢*š¿éþX¤t‹6sx ž#¨ò1à4]²Ü©¦.{>­)e]¤½ØãŸ{Ûæé$©^¯Üéô>ë“Å-•÷ Ýà¾üjëuÄI4ûS ¬}ñÚj·žÓ‰ªdþ-Â6ß²€  Ú—$‚i±•¸¤ôq£þŽ‘#éÀuqXP"½²(äž~ŸSIR8Áé·ªç3àÌc%÷… 9ÄÒA¾Ä ÇjuÃéÅEë]Sæ~WqDÅë«_œý ÁùºÆ¹n¶¿-gÕ8*ÈÔéñ¥ibÃk¡ü1£5j¿§¶®¤R»\ÔÄs¡@Ñ´çÖ¼3Lc¿è'ÙŸê,¾. ‹βë;ÅC4>Xè:Ðÿåýµa©ÕVè¨ìç+¦Ž¥åÞ_ GŠ’Ë¼@‚8KFpDÑ.‰(N%0õªI³ò‹ã„ ޹ eë|4‹x›H'Ri{‚—j(Êc¤.ÐEiênµW §•Ý{ >̻͂CïE3äâÒŸç2ÊðbKËùL¡§¶ÁÂB0XÛv‘ZÇÔ˜íüé©ò’ ë Úë+¬|iédqÖbWò]RTÕõkÓdårBŒ°Ѓ?áË5°ûS¡˜ÂÙôT‰ò-<†£Ž_Á؈—ðsÂ/~i\œ ù¬ SµmxòïCUÍÚkKz8ѽ ‹ðñwXû²؉öU4L}bR’D5xú72BÄjÆÉ}  Ï2çëÒ2ë¿ÒÞõŠWÐQ좧@æ¶§µ; «$ëYßè‘©^w 샵%žÆ–nD¤~°ÿŽrCÌ­‡<‚Ì0𙹭î=?s¸z‰ü)ˆÏÐ|Xzåa1xÀ8|‡³Ï{™£×2ÙËÛÑLÀÙãNH¶UáÙÎyÔ•cJŠz¡\B¡¹à¸©<æhè?[)W™©‹›àƒOÚ²ùl"ÅìjÐÖþ”"œ™ Ûß*²ßˆ'Ò 7ôí¼ì"ïydBÀ3TžTžŸžÛ‰q´/~œ¸m8ù»ºeìeýÃÝEË[áÕ€§!¿%ÃnÑä:ñøo½†c¨d쫦›~^"G`Ðv¤yyÝcû?åTƒy`ÀÌJ–Ãzä×êü®gÓÏÛX*pXÀ²–ùQ»5È”d;ˆÈ÷ ÙøÑjL‘÷Vl‚ë¸]`­Ec75µò‡[šíòNâœ:ú€/'ɵëè_ÿ‚Áià¹+¸ádß ä3WòÆÄk”þ¸¶j8ÓµàL©“Ò%’W‹PÿÆt¡'5:‚Ànõ±SðŒ.{zòÎ|¹\¡ßÿŠt y—-áom‹•ÅݧöpÛÝqNh°‘ Z›Nº-OòJ¨½†m2À¥³N})oi(r°áøÃò5”àÖ Ìc¸e_—S‚™š‡þ@0½­Z½…ÜðyÓzÂoX!層Å].p,Ù?Óf‹RHÏÉÉüËÒ.Ü´1ÏþÄÔ*EÇ+[Òú¯#<&I¯¼«TÚºCgß¿¥¤h¢Ï*þú÷+"ÉÏ÷lÓlr"P ¹«ÛXߨÿ~ä·Zz§í’>à3^{äÉ :“°øAmY‰òŽFì?äR«!œ…/Cö¥×¸€Ù³úíyW²ºÏ`Í÷ÿ‡Ùá=¶+ˉ«s·_?ö‰^·ûgŽMö½›°½¯ûÈËQÓ9;½ÑÞiµÝšÀ—ëH­èAI=¶Mm wßshþ‹ë—ÒµÊ0@~ÒÈ3°7Ç×åíèǙƀtž.ƒª¸çyÌ5ÆŠ¥ì÷^ÿV$ &+ÜfïW‚'Ïy†ÒJ6ÄOR÷ò^%• ÍrãÛ Ÿ¶Zrü}Tx¿zö—­ŠÁñÕĉ”§üK£§òa¡^¯À{”¨¹4pò<ˆùÀҼ殊ձ‘"À÷8Û¯ÖØ]j^žQÛm;ðÉQÓDÀš½7v"v¤èÊ®ZÜÞûÅ=’£¸¿†´EU7?J[Îeì>”¥/2b^ÜݨÐ-YBûQ„ÎÓNb0×NºñŠuÚ=•¹JnjáõQh›ûg}3•*Rßäuæ5v?°aZé6]Ê:XþB1$;XãŽúzý–ÓÑ$SHF3bß Îð€reKK“lP©+Úëî[eŸ¸Ðm-Íþ¼*(."ˆäðý&”…˜ I!8Í'gö%ÂÊ ¬rUÌÄ_RÓêy(­ÞÍF¨Pú—× X1AIµ; ´òz)чÂ_6ø|ƒƒàgRÞûJ.gÇGºýY4ÙÄRR¡uÖÎZª³ËUe\7#Ë¢ô?ß·P=¶’Ǩú2=G8lõ3 ÌN1?O”‹`Ed)×±ãìgà¦J”ûÐZe¥wœóV¯>– 4M‚kY kLÇ.œQ'ÔX'É€ðJºP,ŒækßõpìZ¿ïîæAg·åNä‡ñ hÓ?-?‘!K:N7ñ6LÒTœ"νã}:NV.žóÅ\x7³/ss5œA{×clJ íü´æÇ«|€ÖrSïçÙÏØ•¾£^ã¡)Š‹µ¡bÏ) ÿ e¾ÛM¹;gFÃ^zâÜ\·-lŽfÍËLkãôÒ÷ûajÇQ¼?_fÖ.ù’<º¯ª.ðÆÚ¦(œöÝˤ6 gäûk9q›þ½„ŸŸŽÅ{¿fÉŠ©Uß6+κ ¸Q+‰£m6ÿp…lYaÞí¿ÕI‘l‰Ç½‘´ùñutôòfmqð"ÿE±»£©#‡Üá›=ñÖãfH†š)Íͦ“@Å™U3ÿSiÈÀ8ĸÖ5žïH%š¼çX ­Ï|íÝ'4?ýªÈpÈ—ªà¢›rQ™°H=W¼Ñ-—¨ÇgŒÐOúFrÒvÁ‘{¨£_êðÑûê>e÷üÅ©N …~¾ûíl³!èóg±>_Óê·ç§N#<éf+MÑ“-£–I4ñq< ™ºêtï[©c/ˆÑ³°~<Ù$ÀnÀj SM<É0åÍ_Ö8¡«âAÌ"{ i…ºò@¡ç•L–}~&ï8†‰Ï£Rp¡úÃYxûÏ£ðSP¥iYþD<¦Â¾gfÜ2ãGAõ§ˆç(;;˜Yq'îíjâ€øé-(e•ÓZ4Žt*GÄCñ{6¿ ¢QE•MýÞ\8³„ð&nQ"Ò\šìLÂ.ÄØGŠ!»5¸˜–惆½ãe™œÂ¸GÏ`aW~’$gz,›¤›ì3Äèû¹:¿SÆæ~-4Ùe=³wa<#ä•‘¦nÃÇ8*,Àˆc~DÏ%MÙ~®{Ëa€n ¾;N5ͽ͵×`ÄãE¹É¶ŽË”Á$ãÀ4S”.÷\rgµË`8´H¤tñŸŽWÏΕfD‚ayšŸôl€h|t NLåÛzvrÃT‚E&r4â“ [€U¤¯F롉Ô•ëþ„çÿR€2KÏò×2}¤»”Mó2Då„ú.¥R¯pIBº•Êmä¾X„—Á…Á EÝ΂…~9ëkx òÙõiv--wôZˆy-t½Dº²vgw*xrR"Kì>±ó˜Ò¿7U þì¢K¼4‹1Êž²òr ¼$çSÐÿ[.ªk€@e$¾š"*-¡ö|am¶ }²p![15ÇqþP#9ͧr@ÙO"%ϧ:ÃÇ8âAw凉vv1jËÝÿª‹Óè© •÷.A¼ÙTÌþøåùj{iGxœ^Äê£m%–„G\î@~‹îù¦\†(@À»‰˜ =q¶TM¢+ÀÉÒµy9¿DŽc2Û¤*·}Ù£(G^6û·@óøÌ22ª™úNWšñ²Fƒßžqªêò¢«îH QaóÅu¬èe΋×fðoŽC͉™ÁíJ2æy¾Cc„ûQÆö—*É6]·¯¯Èü,ÈrðÓ-U]v…®j‚‰%¹åûf5+˜ß/Š•éHG’Œ ÅŒê1)¾Ò”l˜3G³.üA_ã0š€¹Çý`«e䟔fSÃÐ/»]¯ÐDn²¶$÷.¼ÿCÙ@!×F=7<¨=‚¢(¹î]Ùöþ»å¼Ì kE‰ªL$ʘ‡*£Õ!ž.)êêèµój_RôñU KËïóÔ9wŸêÏûGaŠ”TÎ FR2²1TÜùöƒf™(>[ frEŠc¾‰ùu2pn¬©ÅæU/Àdj/ÞFr3Cî‰{e»|k*' ÅöáC®yƒºùØ p7‡:]7›îÎçù90Õa±Á+ã‘më„âæ5D0ɦEQÔúa= Þ@¨jJ3:±Û&âTÝŸVâx°Œ<8R÷E„„¹\ѪSüÛ¸(°#¸õä•°†<Ê»óNûÉJw v·UMïJ·¥ï{5@ñ²¨éjOó¼{IÈô_[ˆõĶ(¢žì‘¨VQMtÒy‹À.ëYÞª÷·—Ÿ¨H\ÌÿÈ6¾åÐVñd–&J1ƒì/¼PUa•7‹W1Ìì*-›ƒcâ Ô˜»~¶ÎɇEpÿ'Ú~↋z£¡;"u£±Ù‡yÅgH×¯Ì ‹balzvÁ˃m¡ù›q[±ê5éûc,÷3ç£ùÐ]¦“|äq•ú ä¼Û¬´Ò îß=ýæ&̤¾ªVº0K›=Lz­”ý¸D¤·…Øebʆ"“cxÅ6i\P€J'Œå®Ö(+*„ç·2ô¹?|®ÿPkÌÉßÝþ•Å5Y¦ ¿¥LÁ¤»’ öŸ¸ª±±øîíÀÎ\´ÀèH?ø×=NÒÁCÆ<|ááz†cRöëü±$Æùòîö‹ 7kc^Õ ÌÚÓ]+˜?¾±Y2}ÂåºWÏäVÌͨ›.¬CÁh?!ÖYÏ·jñ!š÷^¥0É£ŽÔÔ.cÓš@Ag¹7~7mëšLõE³U%×MÐÍ Ä’T³™OW$›úçIônK›_”XÉÝíë0>H¬WFnEJï'¨bÎÔÍ×6’Žß'Ÿ#\,Å}w›X[ЦdãZÚßwY•ýÉÑD 4‰Þ&´f¬.Dt™’4±nEöp¢QÅòNŽËåÚÇ(0×ý´+Êló<^Ž"G„PX©e_ )ñÇHìl²¬½+>ÙÛȲ«1ÛOÔ$, fn–Aü9ð¢O­EÛSb­Ü7–"†MÃWÍ"ÀùÐ’$aà~°ìÀ4b}ÎJ¼¨Iòé†_-êÿâzÌëT‹úúYÇþ8d…Œý#V…4ȇɂ،ä²Á.eåãqÿv‰ÅNƒúM­ck=p¨8ßµbS²ôýKrõ Lk3•,˜0lI2+é—Dôl”ÌEÓ4/ÄP¶çømÚyb¡œCDé´µÒÿëZ#L»8! ‡BkøWiÙßuoŠä'Êû£:› Ò¶÷¥`7Í~¤ÛË#Iœ§­ðüò¨xjÆ7'aæª'—ãšÉã¨ýΚù} OÜ~4 †¡¬„÷íÇù5nô‡>»jYôµ1’×sŸ˜#Ì0þl[gDöf  >·®>ЉÜìŒ=ý©T:u®MÝ1‡ï¸öÙcÁ÷ïJú©ø¹=®zÙ…ùí»þ­"SPÇQÑeXWÂ2øâî^‘| &påð(Ñï¾&Ù5M~v[D_6ç·?Þ¨/ˆü¨² #R9oÇE^ ¬2DÓ¼¡ s.Á Õ­,r¨–MÈc~•] gceí Q´¯jó·¾f-î[•ÎÅž‹C`XUÇ2k€ \è{:w¦Ïa²€bÚɺì.6ÂÔK¾]ðr  ³ yMZ”6уh‰KäaÕ=^€0ÿ}Ï×ñŽñ˨tå éMvìÛھÑa«*3ëÈYÌ®‘êÛ0„ñ¶½¬%áÄäjQ ±¿çÙ ž±‘÷÷8dI—]­+rD ÎôlUR…_òÚJ‚—´ÅpgÑy@„‹_ÔJ–ézÌèôžrLŒ±¡:ó”ÒÓJaíëS–ØS[·¯HÂ+(ÙEùd"™<Àô‰AX½Rõþ6¨³C]sÝF¢Äd“jÓ1›DÚhówc(ÐØ0xÈ 0I\ P¤%„bG aÆoþ°o;z&A4RYm€|ÿA·òËkÀžlQ_é}ì,ŸÃ °4v¶Q0Œ­SÍŸ™Ü"VÐ͹}ÀÃD&•Sß“%![B /vè?Rmï¼fxÊa ÍV¥¬H±F|÷q€p†ƒyä®ä§K‡qÔw…´m\¹Ò"‚1K—俜×ô˜FëÒÔתuŬ=÷è‘mqÈ¡œ–˜tmÜ{*N¬WËFDBáPšoÎ0úÓ&ôªk]Ʋ˜ºÏëdu¾ÍI;›âŒ}ÉFS‰ÑË»[»Çé3Ön„¾+ä\Øñ…Gµ³¥›ÑyôþøÉœ)½1AÞó˜™ d' ì”1pÓÌ÷+pùê;•ÈðÏlãñ ê³÷€8Ü–Ðs:ýC¬Ê›‘è¦Yn!n¢-Ò0+[ýȺ´¶œÔ©òÞÚQÍz¹­x–m õ¨f‹*„…OgìK–O^Ê ª+sáRhþlHZ銞€È'bòj½0þ%cZµ –Úå4Þ7ý‰´»è­÷‰A3 {[vZdÃö5æÄ@å[`tLð³°YA©žDÅyÇ!kCÈ"ƒör_B 2¹Ü €wCH•q5 Ï:ëŸ"D[ äú?¿ŠEìÐÀÆ ·ŠYæ¡b=àªO²[V¼¥Ø™ñW ø®TÒ î-“õ [šãhèë&>¿©H›D(¿ÔeGut†¤ÌAÄ.îš!L¨DÆF%÷`Uñºrd÷¡’ÔšãQ&Òp`›ºˆî¬*Afd¸c¨ ÿXÿG¡ÇaÂÊsŒgˆ/37¨”ù!+*CÅx‰«òV:B818ç¨?$¿~]£áÇhZK•lBÂO'²ï`@øvÍÁýóËœ 54Mš‚ùÕÉz8H³é·"¼”¥kŸ ÿxSÏöŸ”¤ÿßv‡9˜5àó¢>ýïΨŒ+ŽœÐL<4A1ã ú&ó{â#Á?¶Š¯Ú^›SküöÈ¥€©óøbx -Õ°’•H)™žŽ+h¸Ò«QG{>\T o«ðñM1=¨aptÛ¼‡AC ã šÆ_ù‰Ù¡€±ˆ~±àÄ»X(nhQ 骃-Q èé|û¢Iÿœ§ П6¶ã¾é:ë¯ ß@ì>hV‘‡Ix| .Á¹Çúï,¤O¡ä¨ùcÌK‘FPΜ4•“(/¹d1ÊÎnnÿY`ªÅ30Ôÿg Bwî~À߮ԍ4sZ–Ë/_»ŨƒÝ e£ð?ε—¤Ÿé³­WKá18'ã Í–Tô퓈Wéçà*Qq¾[£ëÌ>g„¸+y…8ó£Ù×u ¦Ž—Ôë_ÍS¹Zƒª[¹ 6Dl0#Á(Ò ý+·Ž+=£C8·Ëuž!•‰úxƒ¤B^Nþx]RʪÇr(Y”ýké,Q\-×ùUB2(™Øó¶ýÌöÊ uÿiÔwéâ¶,žŸ\W­ÌùSØt¸õ;š~´ã¨çΗ-V‘À?‡ñ%ÜMS>±‚6vNÍ3®­…‹¶¤Š!P;&ϹMT¶c—5WV€ŽZ݉Œæm"©¯€c>Ëm{ ýb@ß Àë_|ÃéÊe}´3•ç<ƶúV»dµ,F£P§)h:R¦ì­óò[ÏCí';\›KkõèÌëÕFü…¦!æ­+ ²Ty©  åÍ'ÞÃAH™|ÏM‚}Y7l²­ä,ªE¸ÃkøßÐç}"²geíDõÑa¼î¬*[tQê»(Àè$ULtg›ë"+ûÛÔU+vE¢GÓà–ƒ³WºÔ„¬¡4õgq5ËüŽÅÝ‚ eýéßìºcéÔüФ|lBá¬ìfŒ±aOÎ/;çÉ€Þ¸ù¦Ëy—wJÂÞ†¨”;Všh1ýz±Yô3[)J,]ÉAa<l\;›‡àêe ì ò%ý½³®ÊçíO¼.¿ -MÀ¥álúòò¿ ±<ê:Ö¼ä™åtÝ–>aÑëtj¤ûïsÎ$¾x³?aºBî¶…óSƒ8­«þ>åÀ±´Ž-ð­´ÊÂ.tU—SÔfÆ"l8Ê)8¨½òDÊY“äJõ[°‡(’⺎ãÏSž"M‘Ô,ã=Ú,øx;Éü&À‚´üæÛqø7¤¦Ýb†z¤¬æK®¡»R«dÑkÝú3ÏZtÙö —-£‘Â:ëÛµ ‹UGåà(èÑ<4¤ö9 ÿÞ[¼:ø¼P>GbuC$Í‚s%H¿ âòÈ\[éèS’–)B¤ñ]ùxSR½Ùp¥ö:½®¹rˆ4(fU‰|¶4Áæ¼á(uò=ur0ÓÞ%V ÛæÒÙ²œ;;t¦Ä†«´ã¼œq`,ÐÍ]y1h @ëÓJ[îm¹~åâL·¢ÇjRuˆ§œF%Áù_¯ù@ºã&4 ÷áù%Øàª¸Džý%Œd¨à¤þo•×áÙÇ~qÿ#À®å§úwf~ü<…³`s»¹q¼ƒ±é¨C-9ï”®À¿‘Ÿ‰3Ž<5E‘—ŒAô#œFWµPc‹ã_¥uR6×P|­¦Ö,'‰:L‚ƹçø  CÄ2o=BÍŠB‰ $tù%G½YæxÞ§˜Ša2§vÏ— rhZ³Þ&QXÓ4ÐÊîYÿxÑxb9³&ú.*óõcºE¬ÿév³Þ;óa¾mêÉ/Ìó’·;’RÞ78š“-opÕ7¯¸ˆ¥Ù9»q‘óË¥<™q³ßó¾Ü,œã?þ|¢‚›saCp¹ÎÑ< 3$ïšRö3ÒÞõõZ™Öþ–˜s†´FâX¼*2‘_tyfÍÉüŠì q_±¥ùö eß&B0~¸ u—E”!f’ÔíÒ·ÒÂ#Lˆ6|nìÔ³°Û1 /YÐÖ¦£˜ÁÚЀþ2œ³€l#Î[ƒ6Œ‡¨‹ÐŒL›Sê½|.'s|úÔ¡£ràŒ¬»× *ôÌÕ÷iÌ$.Ÿ£Ü¹É4J6#=0Ð÷I’{×p0`ûwì=ÇŽKEÎéÑWDS ¢ß®<‡úi‡ñdã=’§c&¿dŠèå¶Ò¦Ð›·4Fïç‰I뮳×Áä¯ÄÄå¾1C»¤ÿúã·šÊÍ(¼éŽ•ÚXëxJw@åhdÓÁéÇ£–úâ*”µ}€Ó%²ÓÊÁïÕHÕõ˜Ãtó+"·ÈYÑÁ)¨( –kèÔ,Ôê/®Rçrßn…˜ò÷QÛ‰‡ë}KT¦Ø?CÿjÌ·Ê·F*T4Õ<Ú101úò\”ÿM®o°‰Cá-ª®C™”Ä‹%,†W…ž eêñDB¾¿cxb¡úÛdí)1ñòpË¿nà«?Ü·£MB†ÜµÛ‚2 7³¦ïé½*ÊêØT(ʉjG€9áÝäõw i÷á‚Ù‹"*Ñ»ó~!ûIEðÝk³ƒö KPjۯĬádÙödJFšróŒU.éÈ1·2¦)o²]~$ÇÖdg÷C{ :IEhn‘M³XÊt\[QðüFE*ða(Æ©FZ£©³ÀâëD bª¦/ªoI|QÚ…˜Ó¢ÿ tµäîéÿÓµ‡ ¡È£Ñ––*RˆÙz\P—rdåÓdÕotŽúü겈ZVç€~,6#‡IñŒëwiwñ²GÓlTAl-ž›†æ|~«3Œõ|v͆&C}líp8߀Qˆ 3QNߪ› iU‰%ʈýg·c5± Z¶{ÎV^åñ(Pºªâ(ˆ„aw£/m]øÔ½Õ/¬¯bø!ýWS@ •­Ó²½ßC´ˆ8p˜üˆ}ÓðtáERGe›5&Ï!>À„6È—°|þŒ¸}ù:…òÚ…—y¬Md_o_s¥,\yä)û¼>Óã qÊTTªfNG¸-Z…M:G6ÓOjŸ0¤‹¸ïŸ¡Õꣻã¯:?Š)­ ÖÂa?Oñ/OwZ>Xo‹òzÌYè»9Ì*äQ뤖û\JÍÕßLú¨$öóéXj´¨P¢ÖŽÁr 3W僮:2œ‡—^ [ä8¢Q¦RLXÀƒ%»jh×7†Ô‚cÎ 4±£BÞŠ•жS1>G]a×6ö/cd|Çñ²óWnþ‰‰T͹½·–Vx*üû+†dмøÒõÎkðÄG5#=ĨÀ-³‚ûqZA Kº’µ+ëc§\í\ºE\”Œñuž%;b©¤­öȶi¬¤ëÙö¥­|C° œf}¢͇¢íQIÂÿJçÒØþŒê$Rà_šG!t‹åeÞ““ldqÕÌ"\ã}ðžxYÁ²Iõw-Ï]¸6'¼ÏóGªla!öÚ—F{;ïªK®ÏÎ’®Â›ö1žÒÓ£¾ÍÝw½ÞR%ÿR£ªï@Z#Ä÷Åù£Ø„ \࣓ó™;f©áÚ“AÑUW‹+eòýžÿ«Ž²ÓÌÍ-è þ ‚»–™Ño+£Ý¯`2«0zgøE“û!¦»¶{—·(†Å*dœ(vàÉå.ñ÷e"ã3”˜.Þ˘së°á„Y w„£á,yn4¨eÐÛç6^÷¬3ÕéµgøØâv äšLÙ9 )DV¬¡»Ý«Pëà«yÝk ë®o‘ bpõæQ\@¯ –™9ö+=åMÃø5zðï(N£(¦çlè¶”0àùp’X6¦iTl,\ló".^B‡û³¤ãérF×/dˆío¾MÓX}‡‰ÅOèª,aÞ '$†f^ï(‰š&Çöbô´YØí¾vÄÊíZ÷Þ3ÿÙGA<õÁ€µu ÙÙêjsØS^QY æ”é:v¨QU¶é®{lŒ¿žêYiîÎ*3}ñ ¥#Æ,¥$°:Ï Õ^kÕâ2ˆ[8å!ûMw+ dìjªØ¸Mµ$ffj‹&·¬¾”ZÐØ¬#'×m´† %m}¼hÙ†‰Æ-ô:—‘Iß4§eÄ©,÷žŽ‡êï"ÑæBãfr¡i7Ì™ ½¡ð’xgLõ­—€œeˆp#jDÏæàY],>¬áÁ}îR)³X¹™ÎÐ[úXW"WðÇà${«ÉœSþ)t3-tZš¾9W¾!óÇy|Ch³!¥ûÓÍ~êŸ 6ËËæFDž¸>Î|Yn”Vk À,þ^Ì{˜Î Á…òñï2 •r, ±©”eÛÝo)ÂÀ\HyÈYS“Þ1È`Ý•¡¡ ö߬‰£>4pÛµ ‹_\ôØ´ έ/AÓ)îM¢›œ«QÅ#ÎÑC•bbY™ mH€r—àma§æ€N!½Æ^i¾*”flB!QÚO…A®‚ÕˆÅÀˆ+Zzú™!ìn7€œò$K›rL}U„¥'ý¼ß °¨1H†gú0¡Ûäù^LóØD}›Ú ÓÿDñqeM°Ë^iõ²kgzŸ1N Ùí•ü÷;ön¿HQ-M‰nÚû{K° Ù”ý<>Ÿ­SDÍ ²åûõ™‚Ž.ٿȇ¾ü¦$ðÉc¶›ùœ†¤_šÑCÆ'¤>ýR•Ï1Q$ò—Zn<fÏT•A §r¼ósne0dÛ¼·}%»5¹nOaŠ¢h¢ SG G‚Æ©›­ùyÓ¥4*æó$nÍþ3ÕL2ÕùH|¨U‰Ë_~Ž<ËÂ[["–Oð,·¸ì#øî’e+å{ãÿ`áÛø.žÂ'ljÌ*ØÅËMrGÊù1P[õ¿ÃFN³…–¼ ¬MÛ ³n6µ>Æã9Ÿÿ‹’Ngq^SC™Í`ƒ•©Âºšruá¾GdžYxò*İîZøÀ^” ¬¤hñÖDwØž:c}°-ðmœ SÚ `™¡o^ ¬42å)y!õýíoáêïZ€¾â ÉH:ÖË!S3¥SÇjªO¬¬f+bL\¹ž,+mh\½¼ц[½m½Ê ñÊ›õ•u¨JO¼+Kµ¾N%W à°D Äi¸‹{.ˆÎ°Ù±çщïªm¤|$mlkï¹EÒƒ¡¡‘·Û¢3ø%ÉÐ a5­kp­÷¨ò¶Mœgc{‰Lž~ˆ¸Ë't$ðÕ>0U Ä'ÕÞ€ÊÃÖÝ:IåÑ›¯ZTB“ž' /&ŽCè«èµÝ•Y`†Fb±×ŽŸn«Óñxµ1ºEWwìö¼w¡™x+i4,€©çÐ3‡@J)týºìH}1¿8%• Kú­’ù OOãÉWÉÇW$L·õr±ù9Ùê•ÂúoTûžª€(®äßéä6”×8¢ZЄØþv{:Óüdåz6t,[Y”&1Ëû©÷äPùƒµ%ÀH@HH« ƒ»É´³~¹8J¶ž`Ù^Ò^É’W^ˆy§ß¹åsËë?ó‚‚;Wvaë3\4A÷½T¼‰ž?…*º{Îj——v)„ݧS×HÔˆm^»º—¤Giê fÏöà"yWý„¤`ÏžÀ4ßðZäÛ2ÛÀ_rÎUŽŸVøjU„†H&£küs-ꟗÎ'â•ÊëÚ]©?»’p2h[rU fL#‰®»µ¾…w}…‹h*Ë1žY£Üõ›|Ùo>¹b8¡i rØhÉ2ÛH™Fgx‹fD:}œÉ£+5VâVQ“5®¥B»Hà6°û‰PÏÀ¹ÉÂÍ“AþŽƒã’\SbM&+×Þ.RõX‰á˜bÁUKfè!¾Ì©ªßcnžMXéž¾ÏO8#¨»JÍ –ˆ 2^ „>ûXÛîÔ2þf‡&º¥Ê꼓Ó\*ˈýý]Rjb>µRóóVÐÛn]YÛB-IÜCÙA,Ê~*.ÇïÕÚÏÀôü L)Qô¥<6]n|®¬Øz<.–zîj7o9e—o¦±p\±] ÀPFåûGµ1ÓXí%,h.mµ!ú(-ËŠ‹ÿ²(`ê’y§†-QµŸä;äå[œ±r‰`5N«ƒÍA‰ ³1G6`¯dx=·­ú²l9ÛóÊk {¹kùâc¾è?Ž<í6l€ú!–5â§­}]8†"šÀ£°Ýé~¦(|¤™Æ·z#اmè³wg¸0‘rdb8(tP×<=‰ ìÞ'KϪS–(.±Q›ä„l€ÀˆI€(E$!ÌjŠ@ŽT@† [nRÓ"Æ °躇ë!97ödKU+gÿ­«&\K¹•’†ù9(°×?}N9ó"î`Kô±@›7I¥#j€7€Ùæx½üÞvtí}ŒÿɯÛô¥øLþãŸqú1.´ Lá ËçòDTeÕ’¬Aé±êW¼Fš»¯×šé€ïz¶c|gļÿ—ÈášüÙÔ+ÉŒ±^ D÷9½Ìša:Öh…À¿«‹Yuù$C k"¾n¶Aï„X¶q”™e±N3íuÔñ~`ÓÎà¶£wÿ*ŒfÔl«A¨Ã÷Ù}ÅéH.Ü;7'V"‹íBì.É~#¥8CsFµæIÞ¯üê¶H=o‰F<®é\©sƒ©’puqõ!F”i¾æÄ@¤šƒ·~};ª³¶G±Fõ–Žrª¾©Lû/™hÛû:‡G1ÃtÙ¸®B‹ŽyHµ¡*Ôwƒ r†•€‰Q¯Q6µ…ŠÏckmN­\èZ³Œ?Ñi]vý„î ȪÁWx¢‰,¸«Ü¶|ÿ“`Ð?"AéWŽbX†è¨:GNºœ—·,Éæ@øŸ¾¾DÛ¬a.ûÚ/¾_Uhv}(¯0Ån;šWnxuiµÂÂK~}Èò âÂâˆ7WZn¹(I |æU¢¾(Yz½\3"lÕÜúgqÒVrëÙ±ë'Æ oÀ‹ØXç:Qï§S+™^¹h°«¶ºØÕ[6;V׳büºRdRfPP#KÐÙǵ!°<¶ub@rîÄèáZÄûs7‘gã¤|Eþ¥“À^(áìýøñß+2œ:d¥{à*Cý¼xäbÄ4¿òðjwf>ÀÞ­…m~÷(žÒê5±(úª§Xˆ 售ѭù›RæGMiiG”¦7•F=¸Ú1‡m6.ŸÏÎéñ4xªŸ¡¢‡Ò€ñûC$ÐŽÐs¤­øQ´0 PÃÍ”´ìW&*Ög¨ÿ˜Å/ ¥ÖéfÂ?I‚&¾77oÙ_̾ãZi©ƒö0öxÀLyŽo\¹Ô¢¨ÒIªÝ‹?u’y‹Ê ¸îœàJ\Àó2ƒ>^<ÉutO_Ô»ÞìÅB¡tý•vJ *¾€ïYç«ûiãveÎ:ððK?}¬¥©`§#ãu±È@¹óJ1ŠŽ_ïßç§pYÏ^.j#H3¬šöÎ:hÜï(Kcø~ÑÔ;Ð×¶èˆ[z 9huOyÚ½­‘(€_¨#‚tîGº!zyÑ Gg=Ë;´œo):†8¼é‡¯Ûbˆ–?‡óý ž—„ê0'²Rí–(ÕCOºñRƒPÑìh®»$hå<¬×˜Jö[xÁÀÁÔ`™ n¾[g»ú+ÊCƒ¬ K HøWif %{˜‚LÂæáïϰ pcV.¿M§Ëuû¬%Ï0%ð9>³ˆ/ƒ1ïç\·oqXp?îmÒ°»¡Éö\àvëZ=|ëѱóö{'›4 oòègjZˆ˜”äéÂhœ¶;±Ñݸ5˜ 5>‹@ÖöÓG…øÜ0uË4Ü1‡r€9ŒØh—~ÎÓÏxy¿°zh¢U`Ê‘³ËWµÂ Ó‚ëŽì)~|bŸ‡Ë*‘‘Ò\*ó/d±r‰g%ù”gv¼ûÈa,y'œÖ[@¿kûU¼¦]»ÁO±*ºÿ¼!w!åsÄ–áËèœzÖ¦fõÝ*¦Í1|Œë1ÒKý˜íÌUE…¦¸X[¨ÝÑ÷ºÈ—ÞyQEFµDH¡J…_VãñŸfmàƒ¸ìÿ2§¿H/ÀWqnd;i?ç"Q…‡³aÏšZFÀ`ì(¬›Pñb'|{ÉŒHæ ¶‚ÚýÀóÝö†Ò iåi¥À#°XK[",Zéh·os}|k£‚Y9ÑRfÑLl!9î¡0…êMÙS;½gŠ ¥¦Æµ’dCÊsì¤@‘ò—‡´O0³ï@ ‰GÀh‚ˆ0HlØÝÊ?© o)ýÜ-}„ó<7ø Ó6ü*{HÍ+{’®ñ5Ê-é9Èô½t¢t.¿Íß…²+³GLŸiÐs c/[Yšá–<ßÙæö4-¡ˆDæ=ê'‘ÏŘoÕ× ?V÷/1ǬnE®Œ‰S• y” ˰äftÞ3÷°ÞË©‘V²Ž8=/£¿«ÐáKßX®78ÐQNk±uªï `?œ—/§ˆ°–‰æ.‚¢koº}<͉„Ñ Œ¦Hïͤ„‚Q©í°•ÇcÀÞRr¢0CÎüKNhnûZ€µ$œÆTf…Ï<æ3tÖ`x¼X]Ë®ºåÈ •?’›ivªm á>GtÛ%ô½ž2x«L…É…FÃõúú×ä¶QbtEAÄUØ‹µ™V Êºx²¯Ñ%‡vË-Ûp–¡ûà¾r§½–½ŠÖNÚÇf´éf!Ø2§òéª2:_h28§yz]ºVHËÆ,E“è³>úF¬@ÈT z‘HdXÿÒN'æÍ&òì 'épß1öBX9²ò8O«\é +“ Ù`•'EwüÚªj$3Ÿ·µ¥"0·Ì—P ­}“@Ñx*>mõš v5mLŸdA‹F÷☰ìÔ?_CÆö\cð9Õ¹~²¶¼Pì2¹¬\MÎX8jXÁÙ_zuu@²E½ˆ/W›ä?úXJ97IO’÷âUÍ•FÎHŒ¨t_d·•´Žåðs.ðB 1S(öÕ„zAèV~å®&É¿¯¼¢Ý¦/lú­rŒÜP.ÕJ5æ q0ùœ^Î%€…S/ØM]I’ ›k‘3ÓP›};–ãuK|Ý? ,@¤7Ð=ÚaeWõdPŽ„»û؇±É*êxÌ¿XüÀšA~hgÞü \5õž˜‘Ì-äÁ_ r¢SGUüF SÝPýä™gÝØ_“gQ"ÿîz_MÁ‰± ×Þ6 ìOHLŠÖ¼²¿x‹Þ»*®n Ÿ¥µ€\I—Bj.L÷ºKàÐtÅÅH)u`¥L‹I+J¹)87D“™Y¦ôÈ'`ý;a;[#²ó*Fµx÷ÀðȪ˜ÓæˆéÊåküúnn;¼—oZ,ËO!u ×<`ÅGË.?ùŽÔh}Y·ÌIjPÐÒúfÈ)°k*AÝ8É™©Ê-%×ÝîíhÚéJ›Û·¸&Ý+xRŽl\.‡ƒHXîöYF«Æ#òPž-¸,(k’Tã‡î¸熶³e#ö 2Bb|œ–Tظ R×Áf/×?6ÅrÖBêºfõ+ýT®þ;ðTáθ­+'”ëˈ®Âe ˜eGHŒ§‚Ø|SÄñÄj¿´3ƒ(Ôv|ÿ¿.H¼ºã$eÔ"P2‰Ó @ ¦ULomæÌ1¾ž5™Ýøx)¡LùÇ“‘sHAÖ?Ójž,3xŠªPþ7àg?†ò”r#ìE!ìo4íbôŒ: Üõ‹çþÊßN*U÷ŒÛ³ˆô³Ï¾|GOí±Ûš³!±Ë±©¡Àøªg¾ÆÓ™Ä#I2ƒ`Ù4;'<ä>¶®/Dq~žéìǘ³uË)Nâ%­²Jä¨d±w‚³èøÔÑ©Ý\©žCR¿+IÛ'F%qãjÛ¼GDÑ[ÌÖçù4v›)Íï8Wͪø·mI±”¼ô¯ϪT̉‰É½uQz€dp|FçzØnWÌ1ˆ!Ê?×1æ±x+ô/fº¤Å?ˆŽ±åiÀ@-¶p[ÁÎkšéùpÓ&'gªo,þùÜìG²³R©Í4öÐk`™ïK!»Å»KxŸwx‰Zj]/Z¦±äDráÖðl‚m|Ÿ<CìtÈêð ¾ÿœ€µÙZŸd•Fµû Ä ÿ_¯×0Id¬*\ÿ?Ÿ@žRÆåßóT¿°W‡ ´â=V²Sx¯T¯«L8K¿—)Œ›ûéz¹Duµ¡3²C¾P Ž‚?a^Ütô€ð"«ÈåI—Ö Ü0Þ.“F¤k• ™P»f^€ú 䚋ݿ=£sÏËsÚÞ«)ƒ~3OcîœTn†+IPDu}8 õv¡pÿ_ -ª³t0l}š¡l™û;É7ƒë p\“p#`FKŒåóó½Ù ¯ÿAÜ×ÄjÆäã{3ˆºxXƒñsY—Ó*fýðf¹é¦!“ﱫ–JËݹ'dž{s!PLPk¤’Ô Ö¸È|WXˆ,=HÇ`…Þæò¯*Ía»›…ÆzK¡Šo'$ÃjõËÓu¶ah²Ûù—Ç–‰A¶E˜’ßQª¯CZëÊO“+·,FÒscÓhs.B†–j>/°Àv†éŠ}NÊf0¦Y–e««:¿e;„ÊÖïþ¹ïU¡÷ÈX:Ú‰`0š†ÿºí~YÈówpÏ×µuÛ £i°Œ]í»;LЧPdä8%¶²¿r›ëù]Rþì„€ßå‹5¦pNªŒ¾GƒÕÏ,9p?Xj-û‰Á³G¶½æØ†Œðí¦5ÕAÜR>kt¢Jng $ÿÒ‘,ûÄŸl«5O]Z›Ü_£˜(e¯ólwã$âÛÿÂ<Ñ'/è%áã9Ÿ€”ç%Å-qDa’P^7”îϜ䲤èBšÔcÏøúJ.w7R¢à rùêµôãÎ`PXîzÙ‡F\öXU‡|9„f„A»E…ÑDØ Xß)ùsóEí”öå¥ÿéòÇ+2³ò2S¿¶4$OÕýH‡'¡Èæ•=jd™…ýPq‘\ÞÂf¬ò" ì¥ŸSM¦ÙD÷®ä‡µûn¦4'ÃÞƒiŠW±àNÆâ¹2¿LΔ+—ùº/ûŒ«ÝP·ø ‰…ýýò³ï&÷u,e’ŠÇƒK2ñiV’ä™o)ÔzxÀR0ޝQ=GÁ'ÂñÈÔ¢üòôï4‡Ô¨¶²]w¼î*ÃäU/™åCü§êDÓŒóuhI”3[ðsœó°¢ sVén‘-ß!ÀE­ôžQÕMÎÞ«Ÿ7¬ˆåÚ½Ù”?è‰m,U™sò§¼Å¸í˜-ÛeüÌAûÉ~o y¦ü8îXº%¢ã¹Äc;]¾[@a±dÞØ.Ú‘·)/Ž\@ô1- Tã†;®d\HR‘®ûŒ«?(w¥±ò;mÂ}Ò)†sa4|k½™oQux(ä¸ ¥“Î×ÚU_*Ô‰Ç 5—bHÑ*äß8ÉP굎ÅïVgÈø~\F[V Y„íg¼KLõñ>{YK%n×A|,ylÂöS;ì4¦µ™a÷+R“ J^0©Éçíh–.AtÏ~f‹½’(_ì#}avd'0”mDWwsÚKNž1,7__ïOv†æ‰™Îù+<ÕE2¥(3´ïsZ/9<ƒ|Ž\Ë»×}Ä•^47.žÐÑ­½hàÚÆÕyKôþ‰ |Ñ n ÅÜç`Ó@§#gaH/?rnë'|÷ ž(#ýr€ŸìµTᤠî‡e8¢²ï)>êÜ«ø*Iå` › Uå›Ýݵ!Yí§gªkSòø'cC k…coÙ!CR€•Jèjù™g3x‹r\|­VwÓ>挀?-@<?^» A‹\눵ÝåýBfNc)Ì " J ¡B—F™EèÀØÚfÐUdâÙG–QKNÉ>/ëv°5ÑQéÊVçñ‰ÐØc'~–8Øææ¹´McàUäX }%G·¼{ð>΋µ·ȲnÔû'ÃÛžL‹hRƒ„D‹M$;ŠËÑñ1½sÆSd«\à;Úö-3+5&n¢·s]f,<}¦Œ¦xÌK™ióìï&Éñ¦<ÛE¬ä `a/ôWx€Øµ*–Ÿ²#dêòõ&3m.Ö]TÞæòßÕÜ'–¼)Dþ²T_Îe[Ìþ7TV}oGèÃÿó¸ÒúT,è ‚ “©É›¹>ºmŸž¼!*Ñ‚GgFZÄ\fxnà]2så`îPúù ³ƒ€ll«D%êarÿ&Ãf-•Jýæ»Þ*ñŠVßâ‘UÎ…4*%°‹su>DÒØ‰ DÇ82"œQ^÷W|5½ öq¡U­¤—k”rëÓns˜˜m¤&’¼q—F›LùsÅÅS‹ž¢ˆÈ¢’¸ ï£GTÄQAÙ”ÒxÙ7ô×N×›3‡+ËÕpÞŠï¦ Z…»‘0 ^â=¬6mY¹Ú.Öª[e½ aêâYØ„ËÜnŠ¦ßª;7 ç:Ìo|•J×r®èÓ%摪z.ÂÜÒËfïmÀFßôU¤ë AJ N`>Ëòýï|Ó5!Ì¢o›(9£s¢IÖîóàUtëbhÇÀ;sdyº“çYö7ó¸ÉtÚ9süiÁì‡ØPô÷åó£³h–R òÊŸ©µ³ Ù& –ÑkΦ¼$ ÛE}™¼7潤Ò_F¹S ü¦¯AâÆå¢œ•æLV>áÊÅòä.mN^]Å¥¡º¸VŠ?xx/¢¼ªã6Ü)T„ØÐ)ýÄGk8ûCÂ<¹ò ©SéÖ™ë“EõÊDQKÊüh!¨ö7òÖCÞu.=ù -=s#žç1ÀSg}®‘ä ‹•¤wy±ûÀciY½Ð!†ÿ´[ÞRÍÍEK­nþSÞ>óŸB襕ˆeÈG·Ÿûn¥^PÔE§q´W-¹¶8_Õ¦®¨È/ÈÔfD„Ú%û)mQ\(9_<*’~c9ÿ0 P½ »ÜÏQ…­v ß"51Á,áPg)p9íZWk•Š0P¤bõ°©S7{QiŸFKâ»Þð2ŠI’ðt‡æ°ÅJÒD³“ûõ==0ñðs–§ðÕ%6ϾÕo·Ê— 1@E€jÿ=˜ï½ð2¤·?›ù”žþõIþíc ¿}&§¸ír›‰IQN¨™â4 €ãÔ‰Tª-#掼huÐG±€¡5­øCã>Øù\¶> Uíf^7Ë’­,Úa³\¦˜¸g”}à­*hÚ7TnÏ®öŒ 쥃ƒ= o‚Ò[.œšq]Lð)ŽÅ=–C»p”MáuǼoïX'"›À>„{‘HoÀ—¦ä¤Š¦VÂXñŸÉ]¨¥ä0v.éf«O Õ$Éx:!ÂÓ­é{ ÐÓ-/¬ZU*Ü–lµ”%}?Þh)žIsD³PeÜ=,ÝwbÀqiø$[Û$g®¡­ã5ª+uâ*f$’¬ãX2›‘HŸcöpÝE[ØêEK ôîT¥Hô M ¹VZJóNyÐʰ_öÑÚu¢¶bïÙ,’ñ4ÕqóŸ¯|»Gð}<­ua!õZ1pÍFEϽ@À„‘fü~nÄÄpµï¼«œ# ƒ²Ä=°²Úîw±39ðÛÃýÑä<‘pº#~Ýn^=Òßì"Enè:úô!n “ã¿Ïë/HŠv­4´r•ÚN')¯°Xs[}U´ºØ4ÄŽ^æ„’üo0E4mÉÕÍž.²€ý$)Ø‚œ¾/Ø*h'—rR3)3¥Æ“Q9n ùSÅEš‚äû„Mk‹DO'ÐÐ@5g?dkZéâ}wT¿vZsŠý ðg(Ívšµ$MÙÚ\"åÅcb ü}Žê.C`)òxÁw†¸,ÏòRI±£:UÖ• ¤þõ ðÆ0EŽ/çùV ~Ö®Wz7„ü”ÿÈ0BâƒQŒ¶)ÛÍ-Fž/\ÿǧ.8{m¡ŸÕSVaÆÅ¥AÓ›(Û³•ö+µG3Õ\Ç=í}—sž¢¬„òÿ¦!ê}£iÀ¥ë9íTU°ªZùÍTFfL9–±” ¾k81&Îßí‰~TF`oª‚ãöÙ¹nÕÌTõŠøP êóGÀù•^ž_œ„°ëâßµöœàZ^G–¢ïRµ)—åBÓz&\räï 4‚úªyÇDP„ÙÉ„=Ù=‘öÛHºEÑe˜æ½;Hé¯Ís¿Ú(Á~ÁpŒìý[ñÒD®ŒàåKtc¹ð6›fºlq5qïÑŠf°ðÊ»äÃj–iÿ7DËJãIÛnJ/‡ŽŽ3ÄϹȕ;ïù?U,Ÿ¼%=té¸ywSÀóÝ‘w€yõ–‚=X¥iÃøâ‹@$kÆ„7¼åJø<7Q¦ì°‰ä”¨*öߺ¡ÍaUáB ”–ÀÀ§8f—[+VCààœh§ô^ ’â;P0è9Vù’d6 !“âW©Ôš+¸-pçqÚbÿ wì§‚2estšð£S¥%D2úµ} ¶oÒ€…:ZwÖ3>O¡]×0ñ§Ç†\‚ñªtl AnÁ1@(Œ«$²4ůËj@ÁØÃ½xO¼­/\3…@càccömÚj­ 7›Ê8’ƒíV†3ÁqÍ@S`…G#‘WÅŽL ºöYD áJ¨%É ®OÖù.±[“ö= òÄ¥þ™=͆*ç.mS ’ŸWUôWànœ êØØR¥ÿ€Ç˜©s=1ÿ÷®Õ›ÉÑ`*1ÆÓ1ÅÔjoÚ¶yó )„+Šuy„”¬­)¾Åës&©ªIŸc0úÉ—)>ÕhýÕ³ôý`›9À@Šøi¡Ëu5çh‘J˜ß3{S…#Ù¸Rß‚£jžÈf_Ò€¯ÈIã ™E¨W Æ—úkvíLsÕ{åt¢,Rá«iKZ=Q×£lÁu Kx=®LM‹ß÷_ïV­`UN4èxNõÀëRÉ* —í3a?Ò……¶Õ‘cí`€87½¬v¦Zç¬ZVdÈ?¶¥•Ò”mziû¹ ’&ðOK“ªñf]µ->tŽ1«ï'÷’qÁ«ÈØG÷êªHà»æ‘Î@ËjV·°wlöì8»¿ W*eF†k“ÐnVêkJ>d úƒm¿ÊûþJ¤?å²Ý¯ÉÒÌ“q²*ÂEuŽÈyÝbŽ b¤–3tª®Ý.2+ÉÎ?’>¶=ßgÖÈ\A–^ZW4à[D«×ÉûÖô™G¯bì¡yýÃ$:Q7Ù;R—e² ³×*‘Ð'ŠÒÚ²K²/¡I0EÁìíÉﱄø©'êÞã’âñê·»0SžãØêsV6YÔ˜¶ªrî7­™_ðDŠT÷–”Ô‡Þ!4 ò‰ÞWÿb›¿Øi…D ê/ UNu=~¿¨/4„€—¶hêÙû÷ˆŠÎç B‰õNPq|ÑÞ¯›µàG-ÏçgˆLnFý-a‘\vÕ,ñ,¢ cüD›/€¹óŸômb¾ú¤èO¦(±h0°/Ñò¹ÇcÝ£JãÕª©¦:ÞãvƒOúa_ø.s… 3-PzšC@X÷½G Uz tå™$L+ß¿e–ÖÈ¡œLBMkÈ ‚Òä6Lï×ÈÓð³(Iðêu2ª:µ•Ÿ˜~ì¡\,è¦Ù ¬x0Ëb£sþ,ý5Ö€%ãAyy8E“þN+•©ÆJ?ó!¬” 1>p›9PCeñ•G‡Þ¿&d‚V‘ uýi€V ©5Ì4¿‹k¶ãòWzoog˜­õ /^gïF.®K FGѵâØ=Ñì,¤|¿žÜRÀ;ÅCnhÃÀ@pÍYai:›ù¨m~Ðüšsç¬OË‹g oüW‡©ÁJl6ãõ”#ŒØG³VY©AWâ—Î*•Ë&\õøo9ŒE›«þÑäÛŽZOÿš˜ü˜¸‹£petiAÀ§pçƒ Ÿƒ ìgèHóHR-ÒØ(™ïK—¯e­Qpm÷…§~ƒùÈ í‹…+N˜ °æþÙ<Ï —u±¥WÐêVÃ'ïÛì”y05ÀA â›¬WÏ|*kÓ°‘éc{ï4Üæ†)p†›1œ­rû¼í#J&àÆ Í€i„ ÛU¼–Ô¥,š–2¼á(.~Ëçã?»±[àÕox¢?#< ã ²2g ÂcWM9Lºž[ÇÆO¿!X–õdC‰‡Í¡µxmaÏ,y¿BAXèãˆû`#˜Øx( $ûŒt}ˆÚ§›¥‘‰Ñó£õáˆbñÌ5ô¸U0h:ŒÐ î hqÌ–ö¡ï¨†XcÉ¡ò¯‚ø½€©?™ßAM%¥‡çÄQM«ϵ=å ç›üžÇð1Ù¢Mþ Gorš†¦©i[À:Ôt⦰žQ1L>rmçÛÌ!ĸ:&~°«Xã¾b‰¿däª>ò©Â’¡ZÍÕBTŽy'j Fàh4É•ñˆ`Ñ–È’pø‘ÔE,{цùüe>¢ò¨+m‚ÖŒQ¦_ãþïâ½¶é{°#J€;‚bç·3{•Jõ YÓ:U¨ ­ÉU%^µ  \0kx/²oÉ ÝŽVòwZÞñÓ ßξlÞ z”[G·'ùzƒŠ®˜Ü01Ù}€’TeªèDö@/íÓãŸqc[0:XgÛNQªårFÒ¥¥û>5ïöV<êîlÔVt§x+.8ÛñÄ+öÖl?ÿyŠÏx®º›uA@Âc²&ß E;Ù_È"ä÷ïÊ¿0ã™Ç fÿ@  °Iiñ|ŽÏOËÊÚ#´IXôB¢^öúi¨¡  ÃdÁy& <Í™šÚ§ðrúWfTú³]äajHù­ï~ç²ÚãïÎÇé”Àñ‡t®š­Ü~¢¸ïíyÓJdžÕ)Y¨0EšÍ42—BWFA£’¶I²¢ózGº¿x²Ï±-ÑÖ»J{¦¢ ™‡JCk5ªÏÔ™úÏq(À[«uŒ~¹}ªè¬õ“î¼|~{qi‡cîhýgÉñ?`¸ÖÀ¼Â”:}pçµ|ih ž#nÓW·îÞƒ‹ŠÇTPFš§²ðm0å-³ÃN`È0†‚GªxˆÎ…Ð ²^üê=šPiUn=€[çoS-õ‰€¬¼G— #’5|‘Pyœ”Lø–Är:Ã%ÑÈÉPQ\‚Æ0¥Ô?\xn—bœÑ¶Èñ•öÑèþ%½ª†™žds‘.hAó'¦ôª…{pèåçñ$þH° ûÏú[%(ãÏYÔµ.åÆyPáØ}øË«Av¶Ë F®Vii]lÓF\'®:U6Té×ÛuƒÉ æà3$Øù-Ï.Ľ%·8µõº~ýÈf‹]\­8ÎB>ª¡ü9·bz¦À(d¨Ó®”èVÚ˜ZË,o›Y¾ìî×8dP“¿GêäÞÇ;ˆ¯¸öºÅŽ+0çÚ+å²z;§Üß$7 PtŽ8¢Ö Ö*€¡€aÑôM‘Š¢AÎß'ZYqú“šàÈÈË 68ͼuìæ#˜%¶º*¼ºT“C³oüè îsæÐ¤‰˜®iö]\Š„Ä'œ™odš/ÇeRûrŽpa©ë[GÈæÈ!DÇùò7€7¼ÜöæªØg…Eºøµï·LTûJÖ«–,¾’¼"$>¦"¯ÄK1lk™”ýÆB²Ôõ¹×&ëßxtŸÉÀ馨vÀQ¾ÑHØF¢Léd¬ñ²MDv¦­½‰üñwV: «xGÙŒ}¡êuq£3t7ádÉ1º$©V³º™±ð©‘+vºpï¯Æ.²Ó|ªwÊ &7SÖÚϯ8³¦¼úêºPIˆ[Róà(U­? ¨YYTVGxæ`_­â¼óRÞU]0Æ›Íx¤H=H‘9G$¿k-/ÌÅÎí+ êŽeBÞ *¿Ì!ôUó e…Ó~ó ZKÕZtG@ÝåÊÑšKšdÇ;ÛÜ‹¾nn‹1äT#b9B½0×Á"` ”«58Ù|$HuÚ²d?¤Z_1–6h„Òe¬Ìw>ü‡àà¯ÑæhÕ™.‚¨Œv#0Ô¤áEˆË|‚eݳPDÅ.Ï.ã³Z ë«D×ßD™ÝPqëû…óñ›E)¤7bPG©Ø°€QZnÔ‡2²Ž'eîL‡)˜y×›vgþ);Ðk¦õ»Ý×¶âÔjS…€k0¤¢S{¯½?€[°Žýâ ^«…[xmï€{M´ò²¬«‚??øå΀©uØœ^6èD^)G=Ÿÿé¶Ûð­¡æb÷€eõI?n s »ë­ÈJ~_/3­ãc4áÀ—äG/8³~ôªÒÃ@²þõ} ’¸ Ö*¼J %F£t¦è=®]wÚh60Ùy7-#ÐNùî€5º÷±?T.²(…£Í¸ wYWò/døÐE\­“Å5ˆ?ÕRìÐóÖ[„_u/¿¿DF1t¡Õ½¾:J”'úÖ‘ôƒkâÁV tÃB@§6vòxmÍ#:óO ×Lä[–|Cdã97 …ÇT(qœ„¬#Ë.çt¸Fá9ɤê;Òãƒ=2ú¨´,£¯6ï‚Íž…‚0ì›(ó¥ê¡“•SÍdéÛQ”_ÜQ²X/ÃõÀú-Ñ´¦5—Ѽ Äº^å“h醿/òE;¨])R.¨Ù²¼ø›ÿ•bþ¬Òi”y4¨$-µà{yßþ”y× 'i¹$ŒŠ^ –„ÊŠ¡wsë‚¿¹·œ“‡rX4WçlàýùOÊôs‚Bï½hW; ÛgCD»¤·\8F`ÕëcépNÕ| ¡àä—kRmŒT¿oÙÛ(ŠË«¸|j üð¸³$^ÁctQ¡ÕiN¿Û`åÊ=ý¯ëãšbO£»Ý—ÉrÕìcJÀ±¯ðB¤ 1qøŽß¤=^é.Óås”yÉØº«cžål–7W%C‘½p{íSW ãЕ‰ÊŽÝÚE¥Œ Ž"F—ýöIµpyè ǹüJg¦µêÏ:g×®G²LÂȹÂû|E£¹¢L‚ZÉ‘ƒÉ…º¨Ý p.´`b²™} wTÄÂvÜ  r±Ö«XÆjŸ˜TQfÑømš¸a4E¡º^¶ñE48Jª‘„$ŽúÙÂÙ«JÙx ÉM>"@ŸÝ8ÉŒ9µ@kb,Žcz"äÇË…Ï' ËrÍo#ð’©ðföåÙûDpJÙ6@ª«¬–¥5 ½7Y”]Qiczàöwasy}Øw‘‹2ø÷ãqw¿^9ʰXOË…äV¾xŠÀª3a‘hÆF;õm'3ß5Í磦¬°„ó Öuxìb82$x´œ% £º2sÚW]ºLSÙ>\Ò}ÊăiÒ(°g/–›”:ŽûÌ#Ö~ud“c»ŒF‘G_£_;I:²Ÿú® a詹¯”£Lö±¾þîáª>Ç¥É&Ú –·6]‡?q,h®©‚W{‘ˆ„wìö±GS%|:-ÐE)èÂáŠZµÇ‰–„t함P«@„”CxªæXkyk¢79&åª(Ë.ú¿3-aÝÔìÖ§üé›yf^0;X'DjõˆÆžC㺆 æl_4à÷¯(nÐ 4üª;æ"K2שòñäLÉuã NUš}s§S;¢£ ›Y¥kW´õ˨Rô ¸Õ‰>5¼,hhÎ"IÕYÚ@ÁAÀ‡þ+å+ž‰îÉÌè)r¿-u?Ï"¢ç"á5UÖ8rûèŒð"%‰>Q›2~æë°Ypå}»g?ñŒ,ÿ­N1UlÕµ¥Îˆ]D¾¹º‹pÑ®BªqŽ2ò¦mAå/œi”o؇ώæŠc Ný•Y'Žg#÷ ÛÄÙáCS»Ò(Ø49Ú¸ƒ>Âr㩆QäöŠq {0[à|q­z •º  (µ˜ÖŽ™4Á àÇD“5‹ƒ\P¬ mR| ¥·JË·@5M˜˜µ”°Gk9WbÂ2¸-â³|"6ŠÜÞ¯NØ.ðVÂÏQóB ?öF³¡Ó„Bº—–å•<º|Ë=®!Sç¿ Û=ËeÉWøØÿÄbÄ·¥'¦ôke÷|ÒØ'ÀåC…3à£GüÏQ¨"x^´P°ign<ð†óˆ6Ìî?ˆ Õ¾•úoéʨ@&Ô%U,~x<}ð·õ'ý³i,¡hêãC›·‘3æÈ2£Ù¸„ ™œ\œà5ö~bÒÀfˆ«“øÏËÏŠ‡&ô¤YàÍ}eÛ¤VHXGg^´›)·RÒèØ#Y0¦F$€vç ”~Ë>0¶Ø@*l>~¶cL’B¼õHA{âeµšdýRØá\‚€Õ’ç¨*$Càl¸CÖ8în%p‹ÏÖl»çt QeˆÏ¶â<(æñÀ Yø?'Ï˹YpQÞW‹’óÍÃÿêUÁÔ ½=Q˜H§wDL ô%ãU¸­ Bñþ¦5Ûˆ‰•lQÛ˜4öâOß3Ù]L…‹>ð|Z’¤3§Ñ>"^©4Ë[ó"­ X%Jb£èîâlòõs'«_pY»gð²·p²dÌ Sà÷½ië,ÌÐyø×þy7‚ZˆVó’xÜm~•  žp@qtÝÒ–ìÒ¤µpç Ž¤`õzYk¿Tö§?.ý`{½§÷FµFæUÍÒG…;aç„;mSáKüENU¬· MuH½ Oël€µ¹ôMIPx Ø\ ô*焌¤>‰‡iÛŽº¾Gqxpî{Ò‰o¸ïjÖZè0â—j)¤míÆÿ"¾Jç;ªY´ö»\ÚÂŒËÛ5 ŒX×á4ºTH½èŠ"ë©N¹2L£v4½ª^š­NåS“žbPÕíeE<ƒó¨JBq6Ô0=&ŠÅ$´«ÑaqÜUн•¢0ƒ”`!‹67…ÔâÑÃ;[ëÌŸ˜f"ÆN9âR±€"[<˜žîÀ±?À3§û¢5]ÆÕ ëˆ(p¹ÜÆVN3›WÆï "7yçJe ä_AÉ^H;È^}­yB&ò\]ä²àdñ‘3Ï_Š[ ‚ßêÑwŠüî©"˜Œhãš`y2—A°âVº/pñ9D&tˆYÎàp”»Ú’5š…ºýâplHØ'—"››³QOÆð܂Ä4J‹Š-§P‹¹a²)*Ò¤FòŸB¯Hóç0]‹-w¬“cÀg%Æ98Ûu7M™x5¡Pâýó<‰;úAÜ-óéwÕ›uŠ=y¸TYÊŠ$Dé´ 3Å ƒg‰8ÎõLœ)O^¦D+Z "N±„ý…"ôliù±h)°ï%í¢¸;²«’•+ƒ8š3c¾ ¤ÅÅlþjÈ•åSÑ0ÿH%ƒÜÝ,` Â1j!Îû¡Ë½-Éòez«f„V¶dçÝ7Ã]™Î툅Rẽ?’«-?Z_èðÛ¦¤ÖŒ>(^$ð¸úÓ)+;e-ÁH묲8*ÙïýriL“Aøª#ËHMÖv¡óuÛQñEz†¼1ªØœÇðiaL²xCŸ|ULÛçw7w¤cxYÿD@”¸nìƸ€€Y¢’愇çžSöÛ‘ÑS˜€«§(ÒÅ8†ôÂÉPñèà ˆ™*Ó2­“åXç„m[ôuœ¾5õšW¤ ÝûT™Ô)šÃÏØ¥j:1Ú¼Ôï£¶Š¼_62}½êpR¯ˆœ1ÃCŠDCOÖ % ðîÐ ?3¬dX¬ÿýWuÒ#ÞCÿbe;]ÏëØ`çø2#$ç <“eæÆI (uÅW™ú@‚—0!$Ádç|&ØfîvÒÀ±E4¦³˜z!Œæ®Ay‡âmÙÇàÇ®ß)»&¶x°vxê€# ÏBþë§92ÌR •uÛ–ÁPò¼ £­÷p|‘+{YU'K[1Ê ±î£Ì‹%¢[ŸVFhcrš4Šê‹Ïƒ¯µMqtXêžGê¼-þŠlK_bø¡³Ž¦‚ âº­Ý ý=û ·«ØÎPº*˜·´îEzùxœˆþ¹ÐY4«ÿ&M sá#¶¶ÇÀ7… |n¸Ð m~Ã…ÓàÞ‰yùŠà‰¾ŸV¤þ$Ø)–БY·?¢¦2{\eùœªâ°Ósæ^Õ‹ø¡®xùî›§Þ÷K„#œ¡!‰ºœ¥ˆÀèÃK6Z;6çÎê’¤³ØÀÉÌA•bC:²êfÖÆ¡»ž‡øÆ† QÑ1ùòIÛ¦ÓùMCç¬ÙF±˜1!jܲÐðDéÖžxO1‘ºÆ?cz`T‡Æäï8 rK¢æ+$×É÷C ldù:°5†“½; ŒÎSßfOÜôòˆwXw3: I”Ã8+“Î'‰P+ú¿¤é*0±uìðÀ±²I§Q½^T¿÷ÀÊ ß•7ïr«ÿ‚æÓqîÇÖ$,Þ#RÓ›Êm;cç³Åègm«Ä$ù^ž¿Àñ.ëç>iš^ÿýá˜5ôã¥7JiíXW…‹x!`ßä€@ä¥{Û9ð/h‘kËs£a£¬kºz+h"÷¢×¸i>oýsØÀÈ>O SøÐ„uÓ¬ÿë[zUÉ(Sl¥Ì&BÓÜ~¯¸"¬ŸÈ).°ÅŒÀ`HßÐÇ©$^ç¶P;Ô¤ƒ‰÷}ñ 2뾩V(aW‘õîŽìjÎŽ^¯&ÖHØÀLrT›/.ÿÔt’j€*aŒjXHÕ$†çÍ+³¶}wz,£÷nxÙö õXš³í„ÆÀœ:ØzõºeçO}:ñE°”·ø ‡©™S£6{£Â¶äž]IÈÁÙ-„9 c'ëµsä2{Q-ÊŽd¶ì‘eéh’ÈU±æö“m`R¤Ø<­Å@iLv¯‡vh.ìæ³:“ª7p,ÅzÂóûš R¶ *kZD]fR¤LÀP¾è˜#ÛóHÖ•÷É ñ.O?FA°Ÿ}®J°¦ ¼ Ãws±©mü1ÿÏ÷åC‰øœ¬iFòÊ„o Éâ¨uþU›=Ë× [ÃkITdªSäÉlƒ™O+CSÍi±fÀçyš«£0”v×6_°öä](’º~]5h µlŠ gûÔÒ•¶ñn—o†a h àeó'ÎϤn‹•{ŠÙ*)²>¿Ú >#ƒ‡…SÊJ@âdʨ¼·Sj£ÿ܆÷~`•€ .Á,˜Ê Ô-Žú{Ãu„³Ÿ;»‹ìOáýT)A#æ+ê\O/ö}gÀq*о”ŽéÅ“mäT†gß|Ìc¥È´.…-¿&‚—ÂG3GÍ8R7¼”î‡Å‚XÃGNWå[i ÌA9ÍoÆBTã`Gð~vEâæÒFPJG±B¢T÷\„ø1ëÈúíØ £`lRäì+ž¿ag÷¥¾÷9¿}÷êÇMP¸þ{Þ]²¿õóGx•å §x'ȼ³– ‰Ô-‰ Þì¸/¾ÖHÂ’ÛH‘*-ÿôùì1ð¡{ ¾ê¨ºð •K±ÄÉ%}Cì‡Nð(áÙh¾d]jà&Rk5!­xoÜC\C—8‘1sºhŸ¼Õ[¼¯£–€†3Ú§éF¥§Rgei€¯¶Ò¯:æ8›×.íbtÒBÜN'd†Ô2«-VWëäxˆwtÚª‚™ªZ‡‰\ó•lZiAïÌa—ìÀaOwÖj5¨ôÏÓOD;#/(ÈíU8û>ÕSÍù@ÿ³¡ˆ¬»oß> ³ÇA6.x‚÷%“AßDĬ©ã¼Zi$έ¿ÎLÆñT7\±¥0¡×C¯Õô¥€r²í/z=þr[´AP| ¦üòGÕîÏJ+î|£îϱØS>P4Y¼Bíw‡‹ý{#+­+ÛÞÁ“{n‰®ÝEü20¤[Ê=&­YÉÜ}Ò,:ÇÕn×ÅËäçhõ†ÓŸЭÁ2Cªð°+(¦Y}®’ü,´ y¿…Zâ>Àð£ôQg!ô‘7¿83Råª1l W|XEÇUu×%ø—+¤‹óëeD½‹ý.º·6ºL¿Îä>N}Åi–{—½­]KÇ•!¾gkËü‘¢0G¯ÌbŠPݦ^Yÿé«^„&GÀ9(Gäç|•¬¤j‹¾$§- @Èp𶜠­}ßÎï3c`l€y- fÊ·\2f:é "Ëä< â±kòêpnQÇÙ—âNI–çB 5q®“³ Ú®áF@’Ì2IjÎOw,c€º~/õâŽ0gÜ 2"”½Áæxr:IÙSÉÂ2x5Ÿ¯ùê?ïÅŽútQ ÿ§IjKÄkÏ/nråa$´’#µ;gK-·àÒ€†O˜†ÈL]†¤Ìšb”Î…Yn²æ;”¿ÐÅÉ@Þ¶ØÍ5Mí’À@ÐA”,Hl¦ˆŠ,â¥-¿ñZËD8Úù–ã‘O,20E ÜQá¢4þãz‚¼ÎÙ'•s1D·çNÍuÀV?N¬’\[g«:ÓVCcZ»ëÅmCFÐM¶iwè@ZÊ#¢R²ŒWcBéâüMkz ‡"ǰ/Éߘõ%€òX$Ça7Ÿ¾Ì”lθ†5„Mà°œÔ<×Kzòß{•SïgÉHW|!ȶõ”$„··X™Ÿö„kýê$k¾ˆù€s/o†¨¡ë6©YŸ% ØS†ðj²Z\¢ì:uñ£à¡\ÌÂðp“Bp¿«a=\€ÙôD³©£ÐÙçËÉki4xûXs¿QJ-û¥gz›.bJvØBǧ ×4‘èw,Æl[or{ïaÍ ¼<Ù‡?spœ’YNØiÛV;ÙØ†ãÅóšät ¨¹6ÖPü¶´ˆ™Ûl‘‡4—U‚ˆ›³³jå4ÅÊ;æˆr¥•2 µlÏøþþÌ„ËÇÛ™Ñi #  Ù¬§Ú£FCU$z ·ÃoU,™×§Èea9K¿C÷¤=Ù•;žpL®ƒ1ZbĈ"Ã,Ù¨,#ÒÊN«4Eš‘pmU†­W,x^ÀŸHöfÚ=ºŠVpØV›¤Ãæºq“åýu>ï×ɳü¸¯‹w"²<»Ч3Û-ì¬wöÝ_Ã:蘮T­Â㟋a†Ó¦Ç%‹Ó'Tp_¬f~þAŠœ[5ÐôY ¦ù¼2©}lþÀ$O£¥þ6J|N‹t¡D`ø@Ê]a[„I‘”„HëÒ@ƒ@)+P•/x„)Jž‹‹Ìc >Óe+<µzÖþßù(Ã5TB¹7eç‹j™†¸»ÇxUÚ3Ór×@ ?€^PÄ3¯Ä@´†þü²•èlM„5W²Äóg¤Ÿ±vÜó×R±’‘ô&–Û±èäØRëÁa†£É<ÍxºÎ½ÓÌ+H\H6ÿ¾¡€nâ|¶#ðEoMø¤s—µð'”³k)¦>¼ÌZ6¹ŒYfÛö¯,\½ÔÜ÷<ªÞý~`æâpZÏ*ËñíwI&k‡Á‡Õ7 `&Z¿qçœ3ÛȶÂP抴ƒÓUuнNû̯âžMS[¡>èõ39ÖOå¾%)|8ª„qÇë9È4=ÄRa^ö '‹ôÿ®‰¼ m틘~•”²a£¢“D$O5¹¡… ½jÐâØd¸¤•÷­“ &!ÜökAøWЗÑ{SM¸ôª ™×ù7ïÆñUã1G¢GÐzt¼ŽHŠÞø.ˆ‡â¦«°ýæyT=ö¨<~’ÃÿÇFB3L#’FÎä~‘3ùüL¼? _ *\ç ôIÄüØïhݦÌPÝùƒýêp¬¤_‹ó}•o}9Ë~Î:ÍÖ{€òÇ¥7‹^Ʋд w Z% -g ÂZº“%€°£‰r÷ÜPë[üX-›­uËèº0_¾•ï-²w+6Àiºä¹§ 2´*²€&„ì€ÓK ÆÝ\½5îß–d¦sê-]Þ‘EÚ `Èl†Q(úôœÃ%ÞCÎr°2NP¸ Ø»ûGÐiÔsD޲è‡ÜEéÊóÑíßzTfrš\P v¯¢Š¶ß`5i:ƒå£ADœ>÷êűÄüc©5%ÛÌ–ßE}÷k8O®çR‡‡ž"TAeO˜¦ÒD.'¨È§³‹èø•Fm{N{qÝ]WÇ1QjD)X©qAú(æDΔ×U)p½¡:¥‹§Ä¥  û¡öžrJ«Ó*‰#fø‹ŽƒÒÕÁâl-•Èÿ |]QÞ9ÁÏ@¸ôÄëïSÉÆ>óÜèʳtÎ,FÒÀÒ'²°eëýžSƆ‘2õZ@ȸ^­þý‰«ä°â´Ùħð>üxJ‡¡Ÿ!ßO{|„aNxÀéÐFĮָfx¸:+ ¢·Ußö›•) éöm-S?Ù-ô…ž1õ„ˆ,›çÇon-1Þö­åjz~g†\iOsïuÔ>•1ß½ôTl3ã£?VZgv:'fœÔYA¬lR@ñç`C‰úùë†Éô‘)&4q&êÍ7rÂ}«ÂL$òœ áxñ®ÂóË õ†¨3³Mçñý¾A b:ïw ¸Ô§S‡*z“½‡·Zæx=;¬=Yøt.Š8ëÉr³CÊNŒŠ§ý<öÔÚ =bƒ´fÚ¸‰¥›g±ü¥|päÎÆ£²ýLèà9½ƒ\aéÙpÞã(=iýF×o’LrdNWs`³—øÑiízÈÁŸß-7î;† =Zaysì\,#}Ñá)>aèÛ«f¢^d r±=UÖ€^©= ó²¤ùõ©Maeýýã±Zlé²ér㪹‰[g2bXZ8J//}c÷Í|S’h/þ0%çHí×meÃ^„9A“”%Ä‚ÔD^{PŸ*C p5)åH>å…k9¹§RˈaI]<÷H& +‘RÛb\Ko)w±c¾xõJù•Ô oà='ÀÚ¾”Ró|ÜŽXŸ+—7 8‡#ïéÙ–ºYô5Ìë”bÄ@¤&to$¨Þ‚W€ÿÂ’Áfí%{3åìw¬¾?à³ëã*íñªõ@e{+nR°¡A`ÅØ[ƒ‰z¡>]ä*Pép)>R&Í)Ûœê¸ÏÆzJœÌÚë @ÿNØÙ"2:IC âì}‘* Ú„Þ^è€ei¶YªŸ5ÖYB¦·W]Í`úO޲^ —3râÉ’ÕªE`•¬^’³·¬»wyêÙ/1ÿ®šÝ¼­ü_¸¦Û¿3[‚6ñôõó:BW®¥@Kþ›íxrÁ(@ £‰&“1Ýr‚˜ìÛúîG«tkbTÕÔÈ =¸lE “QzF l}é,Ü Ð„Ê³‡òü£š–Ð(+Ö×Fç-­û®Rgßþ¯zƒ ¶ü.ÄðolÁd†‡ë4WWï+1Iy /W®/âáJ ? Åȼ孬ý¢É|Ü‘<{b ©4íK:ìËP-îyS³m9wꦉðœ–eÍU–“Hëåòscš’f ᎎúÔBçoŸ‡» tr©‹ÓaÀî¦jR³ÔÂñ~¯%dñùÊmð¨òGJß+˜ûÖËåC­*$(Cœ¶ñ54Á]‰SHäÛ~;ï6‘áýU=V¶>ÎØ—zÈÎ4ÌÐì6Þ·~ç8dà% 0‹®‡}yC6ɢɦT}ž=€±Ày# W¿»eË=–v¡»vÚ™¦r®¤S‡æ?ÉÎ{¦ft£æ³º‘7ççx{4ómŽ—Ÿ•ü©P‘¸ñÎA;yïÇNh Á(}Sò®Ç19mõügi¥•©Òe‘Œ7¾m<@MÍkèsäxûTY¡û^…ôÎ.PÑP™¯E¾µß-D2@™+ yëìZyÇ§Ž (!+—‚¼ýãDVÇY÷'+¬4†ÜX,abƒïšñÎ$Ø"ñµpgœýŽq¾¿Ãr3ÅRpëàÃϧÄ@ ›j%„ Xô—9YL¿ò¿Û$¨%ˆöžÏÝ9z‡Èóf°fâ’Ô3–ßæÁzŽ“$MIÀÙ¦óÝÚ\R¼¸ëDËNeÑ=·ûr%#jÙp,â²ÔßÚ‹^±³A{ LÔ|º“ƒöO6§å À\NÉ(¢åé±lLQ/Æ—$#©Ë™Åœ±û«„Šˆ‰ÔmÖY Í<>Å…ІQ,ÜýÂæƒSjåÍ ùrRéFçÑcýæUçj‡í½s¼T\Vé8ëéyÔvž†&ÌÌís3t´•d¾þR þvöq§î1µn‘Å׈|fGýâc–I5V—¹x1jF þÊ[É1"â&%Ôó±t™©™ù %æû$~Ͷ_ØLÚy ò²- òéU® à†¹lPا´S¤¡^‰’ñ⊈ª0”S´“0Ý—¡#ÞiØÙ]œÉÛÒ=CÀOÇÇÅì½Ç ã^ÄA ÒDÅ÷QÖ)s*FëÄNœÛß+Í8ÙµÒ¾‹³¯™L³F¶¼0%EÖPm«éfXøA‘`} r@Ÿð|N—?C Ó±ÒJ@‹3 ø¢Lx»x¡„Éÿ /ç.ÊöOv§"̬O5ä:äšþ8 âíï‘ [Ãv×ü:tèP9SçÈ¡ü‰«¿h–NoË'zFxâ«f„æ<܈ú*‰Šã„:Hñ©ØGÉ‘ÓAý ‚ö5vÝøùäÅ»dw¨®níÛ3ÖÛ,HdË-´èL—FólF!siB0oðÅA¬‰»‹S )ÅAPí ‘é…v‘?´z£ž]ñM{í ‘¶ìýnn…¾«­ŽÆrhÁ“sŸ*å{Cà=Å~ø{¸ëÁvò}YrdôÁÑ1¸K°À,•ÀTMÜLqŠÆMnbª…•iÏã…'°Žn'&@ý&öÿw‚€("zKèùŠÅ<‡Él¦AÒz ƒ>F‘Ý›ÓÆ/²±|¥†8‘ ON¾‘Ìü´æyFâ4æX—铊iHÄgÓ‘÷0ïÕ gmAÙA•äNàœÓ ­YùBû‚¬Úg«×}; °¦Ú›äņê‰ÁJè]äÙLh:FÈ,õuâ°¾ ¹/bû¨v}[còÜ~úzx .VMˆx4t„—ZaF^wÓ5‚d'è{ÿN¡2®P¥Ó0ô+w:Äï7ÊÅcû ”—ɯï¥OQŽÅ m›;nÝ9äé÷BÑ|¢­n#Ù(ôì¨.ÎŒÈuuÐ ó£Êã{hÏê~ëšrfõ|l¸‚èðÿjj­0 ¿ª.ØIìÐݦfªðêÝB øq`þ‡µŠÂnÌ(;|‹m€X(¡¬HE·—Õ"‡&Iÿ–p7”˜N|S*­;Î"h¡gW2•'êý1Yºjì»O‹}¢f| €„ aD°j?QÖëÊܦE4J( …'²y•Z2=2šf±r@¦òÀnNQ9ÓÌV}[åšZ¿E×%'Çê“9Ú56L̃½Ùì,8{ͦŒWŠ‹5?ÆŠwCeýHÚy•¿ñ Ý ã÷þ¯ð5°ýª’2×0àÃÛKoY»ëª»žNs\ÃVÊ6Ÿj<Ìíð;4zïöì']¡sB ›»²¹¸ô‰|~ίh±ó í©aÿÚ. %ê31šL"5˜ãÿüƒaϯ׌?“\•á3ßßs|$ËÌÚµ¡·§¦Â®ô`‚_¿)t¨ÎHº’(–?ìºãÞMè5 üŸk=ñÚˆàDKR£‡ÌAæ‡Å@[ Õ=u» Súƒæ¡»rèò ݳ—w¸2ƒ<¹X²¥0œj³9…DÑÀ‚b šIP;2³š/m,æ»ê²eìþgoKÕLàÁJ3­~É QyV$ìùá7yß] ó{dÆzÕI˜î—‹Í©IDu6·ONÁj‘Šˆ°‘à=¨ÓÝ„TFð&NÍžð•z²àµ»fZŒI~׳XKÍOóó=¯íÏz)ââ‚;îm’ëúGø‘õJ¥E™Dä7U*éW®ð¶pé'ÇJrºaóŠ‹ ýŒ[ißóþ‡oÛŒðqs^~¦K€q_´~ø÷Óíœ9¸»³n,ä@p‘n9‰£"Õè£,ë}N§•¿»2—R@U:ñŒˆÂuÈÿ„㤓œ*΃=‘±‚ymh54Œáû"¼ÅÏÝP#ν”e¨~a+nÓ¢ŸŸÿ»>CI€ J±°¤HM‡øq.ÓêÊ}¾|ÌÈ´âf€·½¸Š^a(ž&«>$Ò`>bøë§7¯î¬ËRƸ-ãbi4ÏIq}¥¬M0Ð@Â.ÛmÄþ÷ÅꂃÕO11¨'ƒºšâºÑ:ÓŽn%qç `DLqd;ªk@ÏîgÈ[Y”ý€k<Ñ¢VÝ'`w„›SP±ÙJÚ´6‘¿¬},} Fq0 ¾qbÜN@ÛøDíD~ä 71U÷À_×\G®þxù®òcŸTÄÝʇ(¢¶‘[aþ©ÑG–@ÄDÉmθåÓৈ˜ÒŒ>!µ3GZÄvgä@i!¢ÿé%bÈx*K°·eo™lš(F`.Òlº º‰Wá©Sc;P55'e¢©G˜ÁгKÖÆR]@kÎegä´]ŸÇëø€z?qóö_¤ˆ}&bÏùé·…¶ºöã£Õ›Êc8Õ¾d¡Bטf£©Jy½YŠž–hÂOØ úÐ^ê¯(°•iÝËuÆPˆ_½‘‹„¢ #?6ÝÀ>ö¸¸¶ÍïX þ,¸.‘ŧ¹ÖÁÊ\]!nuj³ÀØÔmm€ìgãGœ¶9¹Š@GvйòÒú©8Z`3X;„XÒ~/9ÿ³Z×» ÍG?ý’HGBÇþ Ýêv’#]…"sC;”÷¥fßÍmǼ2ccʯÏ)áæÄ2ú1™éª0–ENMPz )©&åe÷ÂÎû)?_7½ßƒŠ“8Ã0•UèΊmèôZß$\‡)p•Ëa5ª²™™Í·³Ê¬S|Z]õl…)±™äoaóRJºÿåJ…àÉÜ=§hgÎ<6¡Çà ¶‘¹ˆ¸üãÉÞ ÕÍ|.™xo1liŒDh%{¼}–ŸpÜw¶ªQ4}#Ðgð¸uš1‡ô=©Ìæ ñ£cAáåûŒTIµØÊÓ‘}♤Ãàu=^áÜò?ßvá»X¡£‰‘Ü:Ho™Ü¦6oIoGS6lbkqb™³%NljÐ/þ=û$Ffºx庱ã=}ùf®P)ü»æ+rO@„Á­ƒîÔæOJûÍ*&Î8Þ2ÆO¿Gð ƒÄœMÚȦ*çˆìè!`“—B‘]ps{Ãÿ¾¢Ñߤdzˆ%P{[m\²/ÔB¬r§‚ 9›öýký6„–ç*ñš/˜YB”»J®Î^0:K¨˜ÍÓéé+-ñ ì¬tgyii·bÁpú¯ô¿Jˆù× þºo<7s­e÷N±9Ë j¬gugoqûä3Ä9ë6d(Ò½ÙÝ`d6š ^<`%ì`dêŒ*B§‘ù fÚáMVÓŽ&áÄwõ"¢e‹¯ð‹¶!ù-¿ì‚­§VÉ˜Ž°*Í–¨Oèö3öå#U<ùÕsͥئéÕòöZá™>‰]±?P‰þëk%QDEv‘e¶8.¨5ˆ‰—aCeC-ºý5!Á5£l/ì0®†+d/ñª¡4\4§Ö7B`¢ßXSûP>®u˜ÿò0ð¡L~c1<&Z‹?êjñ]qd¢ó7Zz­¤8eðU¬NˆSÑt¤JåS)IÒ¶7à“P0Lβ¬ÅqHi+4è ={Qê8Ç»þ•C‰ªk»03´‹é0³E³“xeÀ­ÙK:¹1þåAeY`Ԁן  UÌA°p´åXW4|ጠ²Ýh¥³øŒR‘ô YËĹ@K¶ÛS•[š°‡L·»áû PÂ5yT{Ò°Ðë!Á¤£¸öRhéÁ<™Ój‰ü(ˆ«ÉŠ×6në~Š©xÇ`î[“xöÕ×Êij‚: {¹¦ìpKõVˆŒL£Æòîj•K6pAxÇ©ËošûÅÕ®„“«K”xA¤Ø•«Õ£°T`§š5ÛÁzõ뾦4óÿx$W‹"»FЧŒÂ¿zÂäé­"­ÁTbõü bT§óŽAš½B6tÝLW·1a LpG ¯äÂü#ݦ$ <¨å(™—†ÚÁçò\ô9Þ“×H‚1®:Ñ2GÌ Žÿ™Ó$ö²xÊn ZÇ¿óa.;cÒç™ 1›7”¢Ww€¶­t6¬hÚù¿"ÓbÙVÒÕ¢(¸åaªŽýå°tè°Aߨô4*›‘Däj,G˜y©¸í OðÙn¾˜GrŽ(CMƒøÂ(^ì¾ñôLœ0+ w®Ïîç3ËëQ>CX½¿<{ZGžg¹Ê.OØ£ºcó;© Óçr5©ˆwößÓ™b€è0èÍX„qf`áËåeäÇRúˆÆæH,hüÌë$7Šü ¶™É§Âˆ!Sy“=›ÐšîÛa³k2,7©ÓÖ»ýø¶¨€Wã>ã¢=³þ9Ì¢œ4ßç*¡ïÃÈ妰÷L—ÐÏï¢g)ãñðu3t(wÙÝEwŸÆ(N*¹$ÁVB‰TPüÿˆ÷rW$OM#Y9ŸÒ&;SO! ýÖ‚w’(ª Ûà»~9²šcRòTJ>ø„úV*öüq-ĦüŠ\[îœÛטIQóªËÊî½,{‚,ãéÄqö`4`,9к?±7ÅOï5¨Ñ nÇ^F½Sûå$„Ô[v¼ðJN” :óDµJO Ç[û¸öiñAè‰8£NIûYs· `Ð .nÅvÓ”náƒ'¾J&Rìg0BC®"}ô†~ÏËí6çjA©6ƒ ¶‹‡I,°»ùd¥²¶wf¯.̰jÅp¦I=yª5»!·9‘¥šqEk:Õ…5*V“¢&àEÇDšó Ã<ÆÕ7Wݽ'b›; ä'_£…;{S² ÄQ:ÃÏ“ˆiW…_J?EZÚáü£vœ±‹R!(3׎ɶÏ"•ÕTÙÍønoàµs‹“!¨Z*ü73ÅZ1(Rw «}ÐþÑ£uåWÕƒbB§Vé92r¬û[˜UJÞã\qSw:Kaª×9Ñ'.̈ئ×DßÚL9ÎÙPŸKSdDJeÿ z”‚ŒâÁ$ÊŽFÖ»†°Š4PAþ,“­’È¸Í (ÎEK§M7g+¯Ã°†GÝãÐÁ¯Á“wÛÔ˜HÛH­N>ÆþÒò^y©…lâ¢zÌÞ˜²-H“td4¡CÇùT¬1×V4¯<ÞEž?0O]Ä bЄÒKj&*Þð;ó`)Åd®e@êº-X ÷_Ì?øã¢ÌÐ^ò[¤ŸÈ{XÑðôüÌ9¶ý‹\a§E5ˆ{Lul‘ßýæëz ƒÃ™:~·‘Q‡ ×©?:¡c…D¹[ëm«DÙ¡%W¶šµ"ª\9Æ(j/Á‘ãÈŠ0vÒ¸öÊh£ûlb¹SMê”=Ôw´êì¹)oøáb´ô&q{Ñé`1p*3”ñvvQ!c;1»í'{åvõü⎅ªöG+rê 'ÈaåpÔG'rT.ÈñM‰~êžÎ„Sµö´"JvvÓBPÅ@¤AyòaÿÄ{—7²v;°0;‹ÂŒ=ÔBëö©Lw1—wTޱ þkúóÇÄýv/敬LWRzjï„Ü6™Eñƒ®H4ôZc€¤4]­*r]í¤“hþjþm(*ƒ— œ­ïT²ÀžË¦*w£éœê‰¥P¾+0ż÷-Œa„ï+äÛãÚ·»ì刂™g[uy4¨}Å‹`ýc0 ¯¦×guÖ©|ïw˜+Ȭä7Ñ÷&Ž `l°}&üÈvUWƒßæ:2;*ÅÆH v zØÐSßÊ¿‡ÏùM:óRMì9°Q–Ýj«´¿tlÖÁg6KŒ^-nœ±Œúyf b¼Yc ÒD ‡tY%)L˜Ar(œÿHö 0BNÎ6ªƒ|ò™ƒ õ4ú \QæL÷+JÙêJ0äôŸyîóæõÝše)¡#w¦öµ}ëÞQW½aKÖ$nKõ,göø­˜âáàb}q~ÃÄxz¢"¬Š% }—CƸa(7Ïi$„%N]N†ìêÛsËg½M¤ÝÝ—¶Õ Ó¨SS$FÎÀ!ù[çÙê&Xi)*;m;%ô¼Ñhüw*Düné¶\Ú’Œ`‰bjïܵ4!9¤/æŸøù÷ÕÉùbŽhj0# €† •OÛ—L·>2¤˜nµ±ô‘TêÜ µK:ð¨û¿Cïâ0ñÅTvšG†«@ßüœ :}r êr¡‘’C{퉚]ÙN(‘øxlÝ)yÉÞÄ€’8]ü˜2‰èzr.r]+Bü§`?«`ÓèG  Ñ™»¨bdϧrèµg$ïõ?ÝëÞ°¥?4Ö  ‡OêzÄ9RÃôýÅâ~$Ïíà ¶%9…]:±ðÓ©Û¥1Ý›ˆC¦îþQÖ¥uÙÂFÚýܾç)g53íU÷DR¼ÒÒº’3E^ÙÖœOpÁ}Åm0êUv&ÉxiS}góĀ˜·ÁL)"5ûhJîˆÎçùœð\R@æ°×6;'ƒƒÁœêž¿Ixì°Ž™F{Ír¡ãzxž‰ªë°¼yê\N +ûØ!cHr‚]ų,,3~íÈg΀pÄ[ëý„‹„2ëw¶\®Á¸÷=4æÝmüƒ”qKkü–øC„8:úX ƒÚ&u òÕmuYœl˜‰²êI¸8ý,¬Tѹ„¼Ü±ûòKÎÕx@âãÂeþ”š0ðšà}?Câ"FÃxg€C´Ôåî6Åáñ=^y3E†‚ ïxÛDù†w33*C½ 1dMÃ'Ñôƒxòîf•{˜š KÖãQô¡œvXeeeßÜ˜æ ºªÎ“Åè+cê¹¢wÖ)Kµ¤H™LLƒÁbª#4¸rzp"+– ¶Ì¼ZINX©¯ä¶¬hOY¶D¢§j§d`«óuÞVñ ”éè| º¯d1ÅÅôç.úŠ´"¡H²Ýÿ·®¯‡Ö ³öÌ…$o¢wÌŽ»Œ…@D !ì%èÑ–u¾ë‘4fëpÜ?Y›¼~7"Z*Nñ‰Ñóþ’Ïïòì³rDÊŒË@¬ĤZ)û£Þ«k3m¨±%Âg[ƒéÎö/ŸÑx‘=ù˜¶wÚC»:½ý¬TŸÖMO¾}ù˜ã—8×èŽ[•óúê•÷*~Ú‘Žbíbí!X*ÿ‡O؇¢uÌÅÀ4P#÷ (ê­©][,‘‰„ßAغ#®°„Š:‘?Œý(\úN¿'qWgx\ûÃUÐÿ½`E†ü³DÏ!&2!T¸5ËøþD •ÀäŸ[~SLS$ì“ œŠ®wèà §ùk+EÈGxD všÑcDöâêËvC÷Ôå†_ Ê ú]^©Šë6;Ášã}!´ZÒ®¦ä¬¿…gH7yŒ)Æñ1\ÅäíüR#'õy 0­|¸SL©t0%2Y7o±®·-SHc0§¡ný l™þ ìd6YTë¿Î/¨Ö¸}'&Ü_e½ñ/;ÏÉ´˜m®Jn í× Óþ†ê‡èQŧÌÔáñ§¸´ÓM@Ž·®s½ ‹ +ö£Û]>ïYGT7þvjÁ9¥ÏuÕŽè5mw*ôÄÂôC™VüþáZŠkãäPI5?±8¶~6c”çª5ÙýÒDžòeºkñŽG¾g¥´À1V~Í©2#¶µ³b¦[”\8ùqQx<¡ý}o=EOÜS:W[2æ©•¨/_Ÿz³r²ø^9­’ø%¯ž߸!›í8| ºín¯–;f:k¾‹ö‹Ÿ<Ø‡íÆ”ÛŒÛã'H­,Ô=Eî—$à‡[ûT8 eÔ0¯Ú<3"Šr5}v™`õYÔµ‰Ž¬˜>¿øÏ‹OžpœÆ3]Åvs9Ì0Š0JÄ/m%0žA–îi¡ì <¢ŽÎÜú¾ØÅáúÖÇ£ýߎF›ÝÏœùL8)ŽT±àZ@:¸3ÿëvˆ‰xìÃõKmYOƒúM§X…ªgD^ö¢‡Þ0XOë‹ÿ¸®NÚÃ3Çjùü„qº¸èÁG¯+Úþör9ÚñkNSZÕÜZ{^kQì)ZÄê ÊI®ÈÔ_L8ªÛêÿ–ULþ‡:o~©Î¸´·hm(‰­ÊrADÈEå,ôŒyw0Z¿ .O Æîkõ­Î^äÅK©3PßqÖx-h’AÀògóMhHâÞC}Bðå|ªJçÙAÙPÕ§&Yž@m*™öÈ|çí^BÄ„`ÇÝ©jñIKµ¤*ø´ú—CR½ãÒ«´6ÿ¡¡9£xŸ¬½À¡Ã$Ø þìS’Ø êÂÏXì¤;/®ÁÃùùÜ?˜k´ƒ0BÑ[§duU\~2÷FitÐ%è[‡4¦‰’?ð¨_Ë]WÏîq½CæÈ{ŠøÃÉëùš@lá£VѼ m­ˆT–/ l°8Š+éžùÖÁ®`F½ÜË€‰iß”ÞÝN¸o˜ŽM}‘IÐÁœ(ÎIJêîWº&îý˜ïá”ånvÇWПN÷ËÒÛãÀ©C¶ûQÁË\xÓÇs9ÈSÕž…›µ§Yî¦Õ.Ñ>Ë?0Ø'ùÏÕvÃo'¾«'»¶†¢Õ¦Ø2­“4T1†þkL bW²Åm›§•ÂŽ¹j¢jÛ±4‚cA*څ嘺Q2/H§ÑâôɉîŽ÷Ð,aQí–(óYÙ‚÷4œ·ÑR8ý—h©FÜ2ã+ȲŸ¸ùÿèÐßsFÃ=ÕB¿u[:ÎÆ¨Ikâ E':tyÕÛñ7îJs|઼iÞ¿D°“ŽiÆ>øTɶ¼â siψó-v±sè®r?f 5*’qÿjÕ¦küü³™å&^ßyAPÖ¸}Ë1Ø-=¼»k˜žX.Ú¸±X—Bí3£ßˆ`÷‡ËÊPW} V. ¦R!š‹”‡Î°ís©tÃÿÀ‘ÅâöѰ¸öŠƒÔ-Ñú_ù—®µÅiDk°¢° >ÿ¸•mºð&¡Î]©Ùè´Ì‰HvëÔ³,âÌ’ÌJ D &,/í?_lGÒtá KQ5„݉÷$ÉŸ È>Cžõ¼~ùÙ’ˆnMŠû su¦ž®c®mˆ[1ïh»ÛŸìf{äVšµ0C¯  ¬×_×Ñ_h:–Œ» 6Ï”ËÓfq(~4æ½"‡àâ‚üo0h* À*ÿ¢òÝ*~³B(Üßü,-•¤û|bÅ95h•R'ä{‰d¨P1Û÷'ë©Y’ÿÂߎÄY$ z¼Pç½²8y1*CÜãÿha,4¨\K¶ á£U¹y„Ãá ð›å³-k*¨‹,³Õº | e+'ÙJùƤsi¢‘b4>eÓ $¶K[ˆâ§Ãô×çúY”Óof¶LàÆÛ¨ðJ‹5‰ØÃÖ¿1übɾªÐw:Ü&ñ.¿ñKë…Yª¤­Æ7Ô¡Qº–jÌYKE‚^,!6W2k"•õ,'ýhGêqW¾¼nY9¿_În(ÛAeDLq…­>erA?ų¹*Qê–¥F`Ç|"ÉÆÕüö™ý*r÷çQ·/ÖãuùÔPtl£²n·¨žo>V>šÆ 罊ª±ÊËõLøòe®牟Þ=A°R“k!Ï!Ä ×Àrœ˜û/FŠ&c´‡û5O+búKj¸øöáŸm8?½_ÜËÒ»3ý?~×å‘Aª[Ik{A8U†Ž”œõñYê¡ùÄQÊ·>K>Ÿç¢YL7n_CZÞ~#ÉÄ–<¹¶:ñ ·ÍOIãew°šö¿hˆ|p„ˆQ”5WR“L˜¦ï!š#&•‚±²ì¤ºùg“èØƒÖøÌ,wÍ"Ltë½%¶’´ïnra—½a>‚–5 ¤8"·N ³ºŸ²³,"((F«tÅ﬇ag6‘ÛòÓ¦¯·R­Pó›l£ÌîDÔ-Т x®/µ7ÚÇ)%¦myŨVx½¦^ÉÛ+ËÂa Ò#ó«¾ç¾¥D/+*g®ÔpÛûvØ ®¤ö¶~:åyi¢w·Â.‹º[1‹NmA~ÚBKëGˆáaÖO€lê+Öì5Ô·¾Ö0¢Ù•g)6\°ù}O¼ÿ 4–œÍË –üÃÂæéÎÁ¼»à –ʸÈÖëË~0 8ÅÅùÖ›œ´G"W¤ƒË¯hl÷ú{«ŠãÌ·‡Ë§ÈÝëÃÈ~-ªë{b¢ïçîæ†<¶é$רüU²x%é@ÊG'íMî-Ãn‡œ¶w'¥D¬Øé©ñ.wo Vhº2¸YâÄni¬Û ¬h¶ñÏàŒe #µ»õIƒËp©ÚqÙ‘^‡ð-t»êszü…§jeý1ø&¡3o®KbKE Zz¦ È\¢õâ}––øõ=²£»ãíÀêŠÌ6"C”Ç#kT Rl]i/êÇ`(–ÿ&~ÌÒB™N8EðW) Lj©D *à®”Cî¬ìˆϬ·Çùñ®A¨}1ZÞ ùÿ‡>=9Zs}êüi¥Šu¾=×möõd\ECœˆ®¤î18ÿå†ü°JÓvDÍvÜîL€gK~}€¶MXjTk¥Ó}¹OŬñPjvB¸¼¸ÆOñ(ßQ# qG©Ïúl_)wü‡¸ýÓš`¾{pW¡2¿‚zDÓç,™•¯˜Ž4&“AŸÞ爆‰ŸŠ_V€WT,]ÞŽOdðY’wÍv; 1´îÒ$ß{^/šSôçf5¬{v:f›ŸÚ0ô-w£âR÷œ¥óPÑså~­JIÌ‘vçÎǪqÌYÙ&ëÓHM²¦8ö•öÙ¹pÍg!cI `½u¹C´öŸ&I5O÷õ¶‰ ÿÃõ‰"Ú2 !¸ÍfÄ u½rá˜C¢²ìãÁnSÙ ´è(âÎHÎTÙm¦ƒ8,˦\ólxÝœ×ò[£-iÛ<éý‘Æuy´‘èþî&3ĸJBäë÷÷EÚ“ÏV„‚½¦Eší¶Ç©hÖf4ݲ-ª(c2Ÿ¡ ”s|Ù_Gé˜]f ²BÆ—1ž-à ÿPdZ¯HT kK}§c¡L/ŒÍõÜq´Bó¯e†8D3Axa©½]Ái‹¯a¢"W£À¬íSâd=ªý?Î%u Ì=žƒ”m~5rÌ)ïn5QjTŸy×u: >¬âLŽÂÙš+Ÿž¬# ™Då#/p ÑnŽ…Q7ÐzvÝT$·éú€öAˆII}bZ:o'´³Øp‚Œ‹LI®$jh3”}*§ï+ôTÍsDãÑ[ý£qfãÌ߉M+or¢Ê׺î*˜M¡¿†š¾âO4Ö @úÚ´nLÂj>€±6€˜9ó׆v¿µ~U)oÕ>Κ4"k sÝÐÁoûµxm ÎиÒ^þ JfþÀoˆ73ýÀÞÌÆ­—fÇ5Rݽ¶T¸ìRñzÓ5]`]­ÄÆÌ™9±yñ-%Z¤õÝe+BË–-& ĹˆD-Èô_'æ~ÂUÝ}Сd™Ý‚/¬¡`±Jí³ vES\NF®&~(g©~<’²ÿÎþ *é—:×Lv zxÈÊÓ52ŸuÄÍšñÉÊj½êÞ‰#:Ïi¾ rG¿ª\Ñ-ßÜ#<'Þˆ ‡d‘jâ«ðkŒúPç ð›â­ÏQ¥Š\H+¨Ê_mÅÿ®p‰7¹î–%3©ìÒ×guXVu ÿ °ûŒûBÚwYÇäX†…|8Úþ…â=±O‡*€-m½$÷(‰`kÛJ¼)[ÛuŸo¥šì³Ræ+!W°Ó¡ŽÞ¦òÉ{–Á¾%mRN›yÔnì×å\™sGªúE¢•O)á7T*D`»¼–ŒÀ=ôÍ¢‡sÕ£zÓ«Ö{ª¼uV7cfþSæ¸ø×…¯¼§d¥´¼¤) 38åhxRpè X°h&Qà—£BN©“ƒî:CC‡›ÆæÝƒãŸÃe1ªÖ[Ãl­¦í[¶µ‰àéͼr”½r>á‰xŽói¤î´ëáÅÈF5Þáþ«n½õ«€XÞøºy¬sǶj H×Ñ”÷ÀR´`˲ܸíÄE8!\ŠÐ0ˆžØ²#(/1IŽM‹·²²Î3hÄo¤î•>Ó)ÓÄõ̹at:D¢¤«Ê»€JÌmB. 4ôP[Û‡h½°5Ó«e®}i“°I§|˜ ³Ú?;«”ðîs* :ß·ª®ÊaèÌЦ]»7g¼[‹_<ÖŽíicwOm>²À¦B3+°cçhÝß9Y¸£’¡ÛÓÀ(t&bó\Ú„€vˆñ Oº‹Ù:Õ©#ݬÕc£HìÓÿú_Á‡éÊ1S¯çŠôÑï_.P&ùgEã”›T§Ï1~¡Xä´š3õš VѧC.¢ºz ÉâJjü%Úü{î×( $¤ð¤ ¦Ôî)Ã鹿RØÑutæ8W7ÁÿP®Dê\p~àSÝŒ×AÖ½xL çyy(çœL6 E.æ/g¤g$ú×hU™ÍÐJþ2Je-€s^yŽõ2¬±À=†›ð„aÿ…á–À§“Þ8¹Œ6;Õ¹«Å“ °,Ñû1›j[‚ø¦d3_g,-ç‡Ïa¾ÙMªxÒ¥A®»I÷Olb›ì%‚’ºq¼76ì$ÆýÁ0ybäSˆQíMÃïDy‚¾’IvªáÉ«;Räï“Õ¬ú»/­¡Ù¸¿¢@f¨>‹Ë-õ%ÎêáO-á ¾ h !õÿ_©XQ·õ1t;ƒÉÍݨXê<ŽØ94i;¸Z¼â:×PËæî?%O…¶”«C®ƒ9r3÷Ò¥sVS)ÚÑT/™JcÓ¾™ö?ßÓÕãÀ¼ôv=W$Ü9ê²^6pŒ8:¶»±[ϬO<Ë8 y‹lBžuŸ:etìù0> Ù÷±ëºp;vÆàƒŸºá’GÙíMZÿR~(ÓÉ ,Yá“ÜÒ:÷$üãQ$Fž%sÔèªTåyDÛ[˜3L>>þ2dNU ó—Ò-½ÛW¨13X’ 4ö —•È\‘y8‰â§dUG9C m(õžu8½sf`8-™ S¬É ©£^èÁmdÑ,vÆy‰»o·LëÏý<¯$Gˆ/¡pHxsÕ¯ÞÍYââû–¦uâ¤aÌ7cPa ÷4鮟ÀŠÀ=_´u6Z›/Ä—›0„0¿ZŽƒ@гÏhgæá!°ÃxeË“¸<Á"™&viÅSrUjßÂÔÿ¦ç¦L.¹€p|ÊÃØ=ݤi.[ó=µgóEoÆÛsq(ÀÎVv(œæ‚< L˜%V×­dÚÆÉ¡BAÑô»ãÚ í­²#n/+$®2c„v(µ‡ÖÞ±¾¤«‰ïÞò™Y5åaÃy`ò¯ †n¥7“µ½ªTš—åé ÑFˆ´Éýâ©pˆ´ŒD´2î `;“ Ð3r•æ²[:¨¼VŠ‘p&MïQÁìÀ½ô‹lLÿõ™WüèzÓº™ù {)vÁ«‹ôç…6 kßì*(eçôîïB|œå¯ÙkÌ©çÏüÝüèãŽ)ÍR¨Fæ4Ã"å0C¤”(ä-+­_Ù‰•ùR^¿n fe¥×¤¶¿Îw8,©Ñ‡ìÉU ñåa…¦{:ä…A÷hZT¦j2°éåÊ’ÐG)q±|P¨ûj|q0#9ô_8»a¥à!½“xG¸%»ì BÓ¼€<‰¹ºæ4ðíF[CeäÔö<‘½7@ Sr>«çlÝÜ}b è€Ál¦E©a›‘™~ª™qµ\çÃæá˜Çk€Å++›x_¶³ "½‹ãëDpñ¿±4ÞðŒOÎh ¦ÂÔPCG ×Üç‘%äŠYCȲ'âÝè[â6¥o3 M¾r)ù4ªhúÇãÈ X ¦š/úIp˃÷ôzñsìäï9|ËŠ™OrŒºçz×Ôw›Æ¯Üf°*h#ŠÅÄÂO’è±ôˆyUƒ‚™êîËšñ$…‘v¨´7Ý~1‰ ˜$ÆQ¨è§R£Ã!iÄBŒˆ½rsá¤ÓÔ¹4ÿõs¸˜‚)l.剳{°Šñ Z¸ {,þæÐùž{tá))ú1!Ó¿+¶Ð„_H1¾%«XéIOP;Ú¢œÌpN!Qަ9b¹eýƬՇȯÁdÉB‹ð~ úïU ¢Þ_w XöO«W¹:&-pAŸ¶Ptùòt¯üQ5¹kàEµ_¾Îæé\^PŸQ+{ü†§¼êй•Ï1ƒ£ ëm9í¬¤ŒÂW”÷%¢…UQ˜êóÒ쿎±=D@ï=Ÿ+µö§¯ÖI€d+?òQq_áp“Ühže|ÖÄSÁÑQÒ!}PtÆøûŒ ™»_ÏË~xìM+MœQl|9Xc5'6).ÎÈá‰JJI9™V™rÈôæé¯gv,\Š2–É(ôøîÙYŽ9dûßy‚R>wf4:þóù𸠥B¨¬üÏŸÏâoCP&;нHP ÇНÂÁ7PøÛ0Þ›dõÍTAóëP¾ ¦õ¡;XîBtý6çêõ2RÓו÷›ãÎ1Ä=ÈÈä&¥â[lñSã“'6íß|µ¨³ÿp"ŽPÙ»•H™çÚ à‹LÔ<7¬˜y˜æ‚©,ªY¦ª‡Á OùéÅͰ…fïí·–îú!Þ …a=e¤Úü0ƒ½lû»…˜-ònÓÍ$PC1:¹ ò¯yÊß.gÿÐäúå0ÁΨñæ1Ûe^Òý°Ê4“§Y'³äˆ€1ÓÎHG) ‚¤´Ê„h¼D{V½bƒå +¢•»'Q]If®×Ñòo&š¼R­G¬ö¤óšßÍ‘§äõä17ë)|UxT3ù{__ø'D€oÂBöBýeU±qìZlùIVØD´Çoö¼§Ò³£Ä-íݳÍu£ˆ\‚ê_( 2ç|ܹ—\Zr^¨âx`l\Ëi˜^f£ûdÌ8!ÿÊ,C7$zÿã¿TI?ÌŽjkAÁ°²Ý)á+T…XýºÍñïñ=æk©\wµÿÉhfdá½;¤ÝP¥¥Þ‡¤…Ñôü¤Äèýk3^k’VëÑ#ŸÄ¶zqùéÂþêf/†~ÐŽÅÇÏÞò<8¯Ü&¨'îd†ríoHSì‘ä;_ªx§9\<Õ¶‡Šˆý`ÈLïPÁ|¨DINîã{è+ìëálc>øÇ"°Ô?ßC´Šêt‹ÊDè?ˆNwo\¹iëª][ò2LSà‘ÛÓº¨Ö7R_2]h“*•äUN}Â7l”ÙS¬((V¬—!¿’þý©ÊÐŽÉ>ÃþOª®yQ®ÞŒu¿w’¶`Í9™½(ÜÀQ'ùlŽ‘ú=¤£ÄèÂÔ“u)žµê¨wîø¡š»è®%ÚÑ rsuØÈûo5øàÄ__¸}”B \ݣ̅U—ê"mñDq±à‘|•`ÏÍ·¢$n7Î1kñÀs[Žì)L~KÞ±*ñÔM©16ñÐ-&ä˹`[Ò|ÑS&eDS†tf» ¾øà–Êß¶ÈÛÉ`ÔPŸßФËþwbY† yàÎm7¶ ûô8õ±nË1Hã‚=½c}D‘ñ#ð8î±ìîâÆ©§XÔÕÚߟâÓ*á#ñ”ÑŸ¶Ú[Y’ ±·='qs‚Âh:ܾ²j^÷;ñ«7NB÷8÷o*õJífvb²ŠÖz<›n{Ækj ¶³µÙoKðK!¼W=³=ùk gñYN¦^0Eýv£ý=fRNë78P"sÜ*õ„BáÉ Æä ^AÃR7ÿ—Fj&Ö)ƒŸiMìµÏ ¯%$@Ï~x±tp ´™ÓÀ ðqs«¥¢;ˆìÖçÚ¼¦ÌÍÞGw·e$lÚ‡ªŸÌ ­‰£f羕ҹèIžnT›µC‘ܹJ¢ØFr+KýâH‘Ç~8›´ëž-ØÈ·ø•~èuÕ19~ ÆKª4ÆÝ_ÏùŠ#8—|"ÄÛ2‡Y{S|X"Kz]v:<î¨ÏXÀŒypº•™¼R° /¨ÑĆïv%Mš­oòÝe ²¶(lææTtœ¥®6 bªãNVÙWA-*4P’WÉDÉBs '€n2¼ºea¨M·õ×b3NŽÁ›·íÜG'¶/(àØ¡ˆO…ÒöYÌq™¶½ 5VƽÁ~péZ+âhïÝ þ>N7µ=tl½¦‹1÷÷÷Ò~´b¼¡Àe/ûJÄI•qJÖT¬mOm3Ý“/®<¶B³Û˜WqÞCZíñ·¼Ôç求†@Є[[÷A#,þ¶’O³ñûJMH<ε?†Ýôb$«Ø†Ae_á™×ëp•Ân~¡J%hä¿@·¢oMûÄ&{ÑY–-ž?޶žHâ, ™ˆ}˜½•ÀºCIóÇ2dœ˜Y}ÜÞqƒe³èz%ŠÿhNÜó-Âqƒ¢ÄêHcI°Å4À5½CW;g”(GrŠ\Ó†üÓ_!÷=zû’ŠŸ·ß›I˜£Õ ùÇcdmÿ>þzÙ‡®@È «*׬hP¸XÒr ¯V Íf÷©T“#:º~Ëž"„ä×¢mÎèaŠ åõ˯,Áî½—™Y)wŒco¯ò{ù>Öº ˆ H öÊɺ*!; WØi½?¬Oì7)ëø³y&Ð"Ët¥©ëþÕ¶—ú_žøRFë‚K„.$Ĉ3þ*“1§vlpãÑ1#)8Åó¹qlE’]}ÅŠø¦(‰|\óõ¶q ÇÞ8…U7Ƹi¹ª—w•qÊB‚þ‰J2^e,]•˜™A5öeAx¢ÀXb‚‘g¦:(¶Ë 7âÉ ºA†a„0ösÃ[… \gé.‘E´‚ °ç ÍFË£.&š3gßï*cA­•üÝò@"æOŒ4 Y0*$žîÇÜîPVßñÏ Õ‘øÈ:(9çxÙõ¢Û}GÝM´ÈØòŠü]Òô.ŠÞ[Þ•å}n¬÷¿…þ"oN¾6qÞ.3 Í"¾ „{ mÇ0D¢!%âXÎ[–pþ4†z££‰úVð‚YŽzœá}/S Ü¡À)Ü5ht?PŸ–Ûµ€oóöl™Šß™.>ÜÞ™¸çžì“˜ð8¦çËlÑh™UÎE¶f ºxpôaDMea2WG¼j拺¥½(X³‹^ö¯|Þì j'íîÕ³X™“.‡rŸy“lsºçÓSÃ7EË+ØŽß|@ËL«Œ1ݧ›0„¢MîØ_¾Âd?’6dˆ ¹ÃÆrq˜»Ð"ÛÄ‘]ˆ+Žþöò¹‡F@E÷€˜Ƭîk¾k¹g“v\îØÌÇ àýÛ/ÞŽå‰}d&Ïiž®ëåŒÃVòÚÊ|éG@’J`V8²1—fð¸ƒNe¬"ÁfŒn€¹h0•$.C\°›A9ƒK9{E÷ö¥¿ôqÐt± !†c\«vš€@-Ÿ¡¥ó]çÂ-b¨‚ý£,ò6gã,¡2–&ÊÃñ¥83ÞêC팈IðQÄ¿ÀÖ*ÏWÇ'lSD×'=}OM÷_ ¢#×8ˆÈñqôÄœŠÎ)âd}™)%Sr0 9ÓÚí]þ°¨Ž±/’Iµú©Cê/¯@¢Øà‘§|“±aWÂ[>½e Y3{àãÌ£%SjGqoªm±¾wÔVLæ,§£a3è‘¶»ûþX\øßü²  jyV!“Ecchâ—`2‡Ät²U²<d$­fu凰‚1ÃÃ4ŸøHz×b Ý µw´;V6vÙteÓ/nn4ú-i8ܬ²ú-^¡Ë>^÷yªZ;{r »@K-´xMÞ×óÞ´ª\_ç/n#€=Â;JÚÞ}Ulëb"š £!@îSÆ“aì¼l8ßÔÃûwW[„…Fo6ùüò ;÷K!¢.·»™Ç¹¢ynPUY|ô×LJÒ¾Üóé~hàÚ–ËxnÇ›|ì¶>sà?¹‡Z1.i!aÆ;®×fËí»Ï@É@©c/°{í%®;¹®},\ Öo½=zJ…ÁwOf±® $Tî»0úb—îMÜUû¡4¥xIŠxFO–¬ÆœÙö\›³Áޱ‰q_ ÌviYv@òeQÃêex8'1Ò¾jŠ9N2m6êв a4ÝX¢´Ò#ŠyˆßÝ3éyô÷µtãÆ4T¯²cׯHÏ@5˜àÍŒ@…:Ä–{j_n‘€å{ê;ßBák«Ûëb`Y pª!tŒÌOÁ/W°à³x±7+UÍž ¨v¢O>ƒ|ãNï'H/Ï9GÏc<‘çÜÞ¦†%±nˆ—ÚWH“«¸ï @{Óêe5x< êSr¶§áôÚ¥x°øm|ܸêÄýoÀèBôû”ñ"[f"ëçg¼Ò›à/Å¥$ÙÈ’6Ó™ú•ŠÓN?ž‡Í=ï¢knÞ*à{³Ô¼j1—Aò¤„ôTHe¡¤M©d ÿ‘ ¤°¬F¡=ºÈj/سíØ6¬ ¨^›3¾ÿ×^e~Îu./ã¬ð]¿eþ’¯ýÇWCË++tôõ^Ï—#ŠKIÛÒ©A§mÄÑäð&où¬ ”ޏLŽ’ú Öâöq÷“\¼S›S­Gâ²¼›´Ít¬¾Š5²ö¦ˆ‹¼‚re-{b.¯|ïGØÛSî£ÆùG´í»´œon̈¼EÊ1o@Ä‚‰P‘UõL‰J¼ƒ&Z…ÃÖ<(ôß\ .ð½š% ±>IÕúfeVX 椥yQé8Ncˆ6ĸs{¡þó OϘÃ>ŸBâ70:Ò< ÆjUC†«W¬Šc5þB¸«RRk½ÀÁªQÒ•l(ÍKãÚý2‹kwHDêó2‡å2SIéEšäû4óðOÄž$ͯa¬+I=‘Zfê‹9Ñ>½½Ø}ÂFÃ1`3Í'aêäGÁB×ÈmÒCªëÊ¢ÕhÄ×háJN"Š‚m±HµŽåaþì  æ—X!²rdÿ¶‡Ü QjinÛZħ”"d'Èpe|TÆë4ÔW2z”òFé×ôF»BZÖuÃÝjL5žjGñNWÏÉ#õuACâMbu[¨<ùù:Í|Ò€o’CVö=Ì(Êÿ6ô1Á¥­$ª»a±fIo´È×']}U¦ùY‚y´É¸½¿„!·½žª6âŠÚ—£ÄÃ[<+,ÕV[Zâ¦\u¨¿Á€eƒEÒû9Ëüõ«åÅ´™2–üõ!a;p¦—SÅžn„wEÁAB,È.so×*ñŠŸÝ28£8~ìÞ›&GPL-D\13³˜`pÏàžpcÓ¬±\IKh„aë¿GŠê›o-:DïÞ“ñ§ ¹§¿çâ¸ô4â)sJ?l=‰âNlÝ t§E™’V»‰½ª lɧÐeÁ„2cùíøçç='yòªzâÏfªù7BíŽùϳÏÊdGc=¸åߌÏ&‹îH2Ÿ|.|yt:ÑàßB„yõžÓ4áŒÚ1ÁÊ”\&ʲ‡[rmùÜeûiQÖêþßßì•k•ýkýÑr‹½EŒQšxá ÎCÛ3Õåù‘`Féfp8m¡4áñYÚÀ4øSWqó†x‹ÍìV…ìÖœT–.OáGg²?ù£Œ>UÂ#垯ÑÉTo8õ]s.%²> ^ŒÔ¾pLµ ;xÑØƒÏ¦6kôVþ>XÉÀ–KŒ¨©‚ó@©fU©õA(9ì•âtpPüvO™/¸Ö½ÚRéÅbÛ@’¿Åþú‰dU‚V·Óî]y$NŒ¦¼Íá=–šžö™È¹MóÔ×tíóáh”ó0JQŠR_;:&]Õtí>yc»pýö¿¸JOõ®âW ²Â±’V3¤ªô½„³?KÈ6É3‘·sg¢ˆÁÎ&fý¥ØSnIééV²_h Ÿ…ÎpÕqY¾ž­Ë›ÛSÍq9Y%± T!+ËÐë8 r˜ôYã( ¯·ÂW‘y)î®]q=0?à>H qAvú¡°wÚô|N•_wSt™öRû™Ä B—b–怦s ÇígÚò¯lc§Ÿ•æ“D°0´t,6;˜FàBâá.~ åíê:î¾´[Q秘 ©ö&ßfçRÊÇ.õ‚”ÌÒhü6Y¹«› ‡ {yPPàÄòƒ3”n!Y`¶†yÁkùcv­ë7'Çjm¿Òÿ Z$oš› k=<*D±J‘åœTföEWÚë(ö‹pþ•c&Œ#ÓINû1`ÿu€×O £OÍ` ¬/G¦býMqíp¦FÿÇÝlÍC=ú‡˜Â:ób tõ8(Õ¹7Wi·ËF «óB$ÎB(Ú+Ú¾^‹‘ˆ%ÿ¢\p@qöUª£ÖCÔ1-ï ­§Co±óÃ¥ž+V‡!b…7 gŠw3ÃöcñËb€ÝmJÀ½O Ùèîê²ßðÞÏ ~Aœ¾r­–N ÁâÒ?ÜRÿ^Ò$¹]M,º³Ê“!Ô²‹òd×–ÐËçÙhú SF_1^\p=|6É}ûŠÄÅÂǼò•ÚMXd„…wРÄ;¿ŽûG†"Ø”Ãæà“"†xêçep‹EFêvë´²‰é{þÜ'Îm«¦õÆTA—ø%=-¢®F£ÌÁ›åè×ÍËòri³î—̽ÖUK£^­of® „™Ø‚ý…Pï]4BÞÏgé•›"Bº@’Fizg‚Å]ˆÑ’‚ÓÂÔPÇ]xò½~8¹9+þ7¾`ç\~7“+Rå§á¾f°•ëóæÑ}†2Á˜{kZlª±mvé³føÞ üºž|ÂAŒ¶¤Ê¶=·j|5Àžâ¥Eœ$ÝuǤð8fâÉ\äįeoä I=ð{<Î+Ñ¿Ðeü}Ë×Aöu—uãù"Ÿ^­’ñ°šïÿv4‹° 1SnU{öB†÷464Nôð²0ÀAÄ¿E|ûÊtÛóðxéx’ñùŒž!çD[ûn¿³^GÊvñBÅ`(f"ìÑg2‡Š„z 0¤Ç© ¢B\âýË]ißuj‹ÐýOG"©4©ž¤yg¹çà˜ok÷<§š©QÝZ`m”Üm9GíP“L>vûíµ6nàb;l§¬¯6z¸¶ì\:N›¹Ä>­1ádûq±k¼ÍÇ)שrÈLýþ*Õ‚ö[Û^‡ï¿AçÚ§Èî¸åŸ‘•[ákçU†ó&VÔ㛆ö“h$Ð\{§ F2`_ ŒÂ|’?tØûR„AåÆ5eß“P­œR²z½c–†ç^­Tl<Ž%¦wûŒ8³¼-Q¯:ËEAe(2ÓQb¡`üY|ÒtTV|t<ÉíÚãmâE¶*^¡Iç'RB­¦› L€]†™·ê¯!#˜_f›TlúÅëÀGm— Ã¥ÙæEQ°Ö )_1ç݃Á€†|è~„´]­U?ÝVÝS‚n‡Ñ|k‰sõÂÆÝèî¶`XE• cÀx·vbãF"‘?ËxòÌèðÎl¡ôÙíýF}~aÔ}¼o!*±ŸÒJ+4ÊK>K@ˆ†O°*˜´~Ç©ôpBЉÒmÁáå׈8eù(AêúÀ*WíÜtt‚Ôêcv“µdÿ¹:.£râ !(RÈ;¢L!} Ò~ö––“#³^O'Jdƒ€ëVslÿ‹QR¾”'¸Ù» X\õ‘–±8̪@FŸF"Bq/‡N™ÇY´Ã S¢õ|­¥·hi->D”PÍ‚´7 ‡)¼ñÞÉnä¶ &oº0„B¢ËèS)²\ç5C Çĉkµ­X%FÐ`a[t¦ð¬\U“«F^RÇ‚¯!7JÖæ=Ï’LßAï¡W8r¸$8Þúˆ{ߣ¤Jtƒ$…}=þ„'ÓÍ÷vêôòàÐrŠ$L—‚iÝ3”ä¹'üöM¢›ÐÚô÷î­À„×ë¨]úÔÒæþÓ$–þª2œ|)­w¹Ñ&Dþè7òŸ5ã¢Òôu¸DÃêþýpÝ`K¬c>]d §›uy-žÓ˜ˆCÓuÍæÑ;sk¡$Ç]ÈÔŠQz°[˜èšg3âQêõÓ]±Ý¿æÂ1bÀÚÖ†øëpÔ >$—|¨E˜¨}ŽU(Íž ZMÁÈÅϾç5×-6 µü<Ýl\ÒâN@_-uÝúŒ,äwK\–¤«‹îÝŽ¶T½\Åò&ãl»¸œlËãêÏE½ŒT\”ÿ^ ¿ymȆ¢åHBÕ…Ë|hZ˜“GGz3ž[„1¯Þ#]·¬3™Œm¢¢²ÜÌ úQM™^Ò°ÙHE´Køêü i÷ü“ÿϹoPDâögË À÷‰ˆ[±û’Îm.C§òa9a ÝË.LiFÑÊØÔ?ñ'8÷:˘ƒZÁ;ª·RBß–¶­GÇ?Œ„ú/zŸfu—zcê'Ë–Ea«êª©œX¦A*ËQV³ˆÞr¯«ðDxQlé}âAö£Åc…úà ·]‰ê@pL¾3½V‘ä1Eƒ Ãrÿ¢ fX¿*½ò¹ù¶ýß`¿!÷¨ÿ~ò6•6NÊ{.5h¦d-Ѓsø R'ÓÅ“),â¥b©ˆms $ ¾!‰’Þ¦âºÚg.æ[âPе6þÄÒÝ!`R?âªä'Í6%Sc¨` d´ž¿Ú=û«0&5Sä7Z÷ú„Oœi®Ûù²õŒf\nÝš™ ¢Ô/8ûQ[ƒV˜u‹f-ÂÀvEûÚ÷ÙÕ-{`œ~ý98U:êÈ*LËwצðòJ24ªéáxæ-õ™ƒ¥M˜þ<‚?qÔY~I<¼Ÿ.Éii>v+âÛHWSX|T4o(-ΰտ­•á¶³˜>I¼$œ²R¶ÇÞuÁ¬v™9CUò™¼’¡˜„l¯Î¹~ÇCÝÑ êößv­^÷§˜ëxW# ÖÞ€4!^Q^æ–ë2yÖ5•ƒÿl›²¬"Ÿ t€?)0²ãþùù3]Ë7ü*„©“äeäër¤œöÃKÃFqm”‘ÛÈ·rn@”…tõÉ^OoDRê2RmG“p Ö·Ä |Êe‹a7»ÁX&Á7V[(ú¶Ï-µ‡WÆšh‰î7H<øàà›»©Ð%øP{V/÷N¾[Ð,ó¿û'¦ Y.EË3uûˆòã~ÞÈÖBñô·q§\®ÈJtüÐû°X@ï{4WóºujÎZW8Âæý>æõ•îZfnªÒ9˜²€oŽðÙõS¨·6S=s'.b0ìꔺ§‹Ò®1BºZ€ýÂxoWÄ]9*ÚŒêÓ–§ñc^ze¥q¤Êt… ßçÞ‹ªß¢ò Bù1§,×=,€Í¦n¼+-l÷Vê¡ÎÔ—85Çë_?õ Ÿç&¤5¯VÝb 5ÖQ]T’µ!^%®?G†M$tpØR­A¾€$ #¢.F£v¯Ìˆ'?ägX™A+Ãáá^º–Ø?‰R|ºa…´Ð䉼pêÞßÉ;©L¹Oj5Ççÿ¤ƒJÅëaÖV …?SµÆ†ìÉsÞ=]µÁCK¡ˆÈº*YH„WN %ﺈke8ØâÏÞ€!Z,:šãu * ÿoõ’éÁ ]–÷Z¥Ë|xo?9ÝÂÓç`b5Q·~Æý/ÔÜŽù»n8?œÓÐâ¢ãj2@k¹±…jónUL-hµ´¹ó tâJhÂú¥ð_Õ%a;"Ó’#ƒTóÂ.oºŽ›"rÑ0ÍÌçF*AÓExO1×w)ãcš?Ï1Ð~n‚¶Ôžè‘ØìJŒÔÇyuuÉÓIúö,yŠá,Hƒÿ›÷‰KècÂPSSNpR›,í;ÂÕ`´2âfP½uC›•× Ù¢S°¹†Ó2rq…ûh¶]¡£12¥„En9¬Ã/ñPÉ·ÊÒB"²,Lêþ ÿ”©6O®S Óàu†­7¿xNû·îŠL$¢Vâó‹Ô,•“–¾ÅþùÒyjŠ»¯ ŸÈ*xÂ1ÀZ»ìØÝ¾s¯ˆwð}¾T?ÇHûŒè-ËZ ©çʶ°¡‘ÈgW5Lã 4)"k*±Ï×eHý¦g‚˜ÕŠocR`öP,Ò‹.1üþ`œáš l-­IŒ¾À·U¥C~®Á8+šZLªQû%Fÿ%›œ’-H±©òd`Åã+Aƺ;n Ä‹/÷DwM²$»‡#0Ëë7YŸ© ¶7²Zýï!ÞCZ Øp“¿9ûçrP~˜}$ã0 éI/›ô}/“-Gx!—v8­Ÿw_5«\CDI žjQ¬PgS (PÎ8AŠYó‚>‹Ê_v… \+Û'Ç á/±h*î¶L~íתBú®Ý¨ƒ~øiퟓy~ët CÊo‹ý½Xª›T +d{v±Ã*ECXupï7¢o¤¸ \ÛÆó)ûøCЇ .{œ‹‹å ßB±7úKˆŠ3í_l<È 3ˆ1õT$<ÖÿšÀÃÁ(6ëÿUŠO‰ž·o^ö,Èv?kLzcšjÆÃ@(Þãg @£ò{œ®ýÅWos/QÖeÒYË|!§õµ_¿k‡öR$¢v5ü ±ì¦8ø0Ã*•kŠ•ñ<½l ~«¹Dm¦8Ö u=ý;ÓÃqåçƒe®Y<§âq3h=¶6èZ—ºX˜%.pó³ÏH¡cƒ˜–þ?™a•.W, £ çÍì«àøg6b?”$-Ê&UH­³ÙÇ;ŽA³«¯VŒvk3 ¼PC·á+< * Uc8ð‚!ÈFèÑñl›6ê–Dj]úß àm[-„ÞóùÓŸ2k„à›|˜Ø4œjÃ`;û¤^‘lÌé=…2¥Éo¹Áá¨ýàeMD£r EM—”‡tª$Šºi£„ܵ“½ÄZ?»Z—`´t|Éåƒ1 _Þ(wάœ€£Ó‚¥‰OqbcdŽDTr—Ò©¾L¸ñ’X‹| ~Õ@ë®ü–ŽØ,¼ŸéŸòšê%LÃaQqhïñ(%N'~=‚Mƒ7ǼªsÕF‰"y5j³kà|û¯ÝIeÌ«PŽ-—-¼ÅÃÎÞ%b÷ù[+q¼Z/\gc©ªÄ:ܺµ79ÆÚëÛlë×´·è@fß—GÈtΙüdûW³Uß ×§Ïa>f°1OÁÄRË1æ¨9‘2;ßÏ>Á@´F.o¢DþÂú§O˜/XC/>&ˆµNR¡ñ¹Cú xdö€˜žïĽ£KGƒXš7ôEhâáveO_ñÎ=â_…ÄÏ£Sþp:—–)à4Bè ØôgŠ‘&: JdýcQò°»Ûç˜Sb\ÊÊ—¦»m `I©]Š(èhv }ùlè¥Èù|[Ñi!¸-.Ùòxh ­vU^# "ïWʼŒc^‘–y,Kúæ3˜2n?r0vYc~˜~h-3P^Pü} _»,Î;B¦°QgÀbedUá2?»zŠû§ÏÅ$ÁBÙoRþòr6Sç×Mªx£"hw9tÒºLÆ+?ÅÑ Êו8¿‰Àø€±)6LJÃåxx¢&`"HÙ†ž*XÄâ?ùØQqãÒzÉâ ü`üd€è¯ÁéÒùÉݵZ¸ÔÙZoC)‚ŽåµÊ¿|±ßÛÇìÚy?SúOõn@‡ydªl«Ég;q¥ÅDæÆ9õ³D¾–_Œ€Ñ㬛ûabœ~Š$$qÜåV ä¡P ÑF A—w£G6W'ÇŸ× J¢"VÚ¬qªX²²‘ªibÒ¥¾ÄN«y±šSIj `ÄçÐXÍBV„@:[¯¿‰+ø7&KŸTد >¤tðî1熲Nÿ·›é~| #ââô”PqˆÎ‘¡Ï±õºKÁñA¬r;?(Œ$|êsÁ‚5€ 1^[d»!Ÿ»L×^‹ï@Ãø¦d3_g9±ºeß[i­> Ž„ÁÌ;ÌKüú"Ù·'`sO.{ÝÍ¥J2ñŒ•¿u¼YÖ%tóâu»¾Yì‡MÃ÷ÄA»ê#†Òm4…ŸNª³ûŸPu15`è)ÌeàÀ®­‰ ¿ÁÈW|L£{<ŸÛõCbРK*5NzªA¾ß–þÒ}ýwYW,aFÔâvÖyNÜ­l?Š€ tuY)¤Î%´aOÙ}°q~œQOÃÀ:u§â¥@C‘}á;ZF¬äˆ± Ññ;%p¦–ô*3 l6åy…äŽCKÛÁ)a4ð¾{ˆÒ°C ¹J½ ¥§X—zq±6=vƒƒö©K<|­Ü,3 I*½§À’NÙ±·)”°ÚOhµ/Ï‚ïÞ^qÁÓ%©t1 gê‚æ¯N”ÿ ]=ÿ³-w|úZìL"J;´šý~Ä¡eÀº',FÎ%ÅÎhŽåp*zGQ¹q«*ˆÅ”Ó±±wÑA¢k£QµÛÆ”‘OAÐä q¸)ÃÒM0'_q‚lÝœ‰Dé­Ü¾ù™ ó+²¹«n‹ æ{µ)L÷vÑš&5 ›˜ßˆd(‘Æz~¨×ÑG&J.»¹1 Êž bõO@ÂMî¥/0Q`Z&©DS½sß!:bhª2 ßK á~›´~‘á‰XE,“¯ò2iÔó€óÁ³ý'X½•õV²e|y¤ØË4\l¨¼®[ªø´bé]yæ†qÐÔ”¯„ŠÎ$¡è½ÐÞçÞY—Ÿí²ïôl$ G­ÎÎ5KX'cÈ"«Nõ•Âð9Eú\Lq®ˆËãÁiÅÓ½Q"EÚœÃëã­}ÛÓ~ÈÁccÔèÜAêBѯ̇$‚'– ‚êbêR&XyÔÀñÌ»,Þ(ˆ%®G:îYõ¥oï˜ÎWìëÑî@¸ý{5²Ý~ &c³PoþQ·ËìŸ þ”Ùs&^ÜÈ!ÙýeåP®æÁŽ7œÓ `T®Y5ËRoùWñ4$RV-Fd¶g;3 €hªëži­!‡Xñ*ªïœx•΂´¢4´ê§¢„„\Þõ÷k•r‚ÖþŒÝ‰²0]A|·jž¡q Ô w  ˆz2=±hÒ&#Ó×¥²b[tdÊMý.@¬¤nбˆ; »SâK·6û†28|Ž?[‡- íûÜÒª‰s4Ø;–‹ÔM3ÎCh¨ÕØÍÞ»‹ñMT#`þ“¦·L;€C„œq¢ºH:¥‚i3ßÌ8tÊxôJ\‡XF'‚p8ÕâÜù}ªTð ®)¹§ƒ$aE›qÒAFÀTçùJ×C›üb¨âòã~ÿ_C.þ¨àÖùû^ÖW³ª\”®ï‰w›dE(b`Evª,÷' £¼¤‰†ÛØÇ§¾úEz¨dÑ<–Ä)¶6„…8„n ºjº!ª>')v§ñ®a׊CR˜ êÆÈç)ÇHO™ûQ]²FúWJè7û‹ºøÁ)!БÖÑïÔ¾Âõ‡5:táê,K›÷r%&Ž¥ {Ý÷fÜîßE@/ cÈ…m °ÀÔvY#ؼ0ƒÇ.­P'1° ß &?ø—0+ûœQííláçÒ1NuÌ“XCUmù»Oû‘ŠûHeá);áÕžî\ª, ‚¸ž-Ј\)ˆsª4 )àZôXÄ:o‘)åѪù{Ö„BE¿ÿ\ö0oÄ8u›ðÔj'¨ê¯Ðµ9'»¢ÃrýSuï7èëiøÔè®±üAÎUóù Nzv­Q6;O`YøBñÖ¹ý&·\3—Ý©^1o>ò˜€Ú+ŒS€}0 ò%ã<h‰\¦mÍ®@©X8ÞU+«ÿÿ*¹½¶3>Ùh!~DZ“Ü2œèÈkÖÑ=û9áƒøU’€a«Núºy%|d–õ‘Õ%_-×"5é|Åç”%ÍšhÑê€4¶úï±ÐE nC:‡§1ŠƒJ/JÑŠ}6÷hhå0/tsIÓ’ÒŒmɯAø}è±,;åpº40ð%ñ Ëñ©óaM‡XoliéÆŠír(Pb¼Bú8 óÊ+ÚÌY—*2ù0^•Ÿ‚] ™«–Y¥GÞ…;;èçóɳ1Çûζ6cÙ ±ónÛVS-¼ÂÄm®Iæ®—7‰:àE`]tåé«:±»US„×ÕÐGm»nÌ9 b>\Þ»í@hǃ‹±ÖåÿYJçfu`P>kãÒe¢ _ÿúI«ETÅ›±ªñ½h=¾?m©8»~z B㎄îJ-"~Ô1·7¡Løós-ßè ð|@ø½Ò¼‰Ù:¡žÛÇ:ß ©ÂëÔÁaK>½Š»¹-rn}Ú|í5*qµÏd¦ÙAuHûµ+;a¸W±QÊÉ •KÄ&˜Nì*…rjj"Âò ªXƒú¥ò‹—ãºÚd&TÚ ›spk]‹Yž;q‹ÆšE‘…®Ìâ;Q7 õÄ"Ï€Ii=W$óÈŽïðHRp˜9Š J dï# ž5{wy®wyiunËô±Î¬Ú`Aغí@‡¾Ê¸ÑÔf#¤$ÿ‰…¹ØÇšP†V8g-à+ûE,V Ìfí\†xÓ¼Ûy9± ¬ù\7ô.d~ Vm&‚¡¤ø?L·†‘¤Â¡Pp$#°þxAc*ëÅÀv\oelá ²i÷Í|j±ñÑ ÍrŸÁë©þ2çÎ;ŽD÷L&Êõ¿zUc‰IWÔšd£;›3hpØi.JŸ‚ÿm¢‹à½:}ÞÆuBFå[ñ¯oIºæí6—îX·Ï…¤¼9BÏÏž"¤6pÇZ‚Ç,Sù5:;ô/¹C„è²]›LUIÅ“™‡äÍ[ûoé#â€.Å×J%òøzo·õ &¼gò)4§ùe3¾^¾‹^ö”ÖlfßÄî·l÷ugÜN¹e_<èš'ä wÿÌ ‚ÁR Ö-–£ õÆÕXa»ÞÎÛAÑ Ëá«àpŸq8JàµÒ{ð—ÔÒU¾J¦ûT?µØ0O\õø7 |.&ó11Ú*ú¨Âõ¾Hº1-,I%ó¬üÀÿò‰ÃMÌÖËé>» ZB.èãÞD(鈃k Ì0:u­ÁðXëäˆ~é­e.m^uKšÑ=5G}nÙ£ @D÷1:G7L)XÌ~Öåò™J"Ò…ý„†1¾Lx/YÆ Îu=bݯǰÀ´ÜU/ªO’§ó`m6BñÏÎi…*¦ WA&øÀéïnNu±£yIw‘8ÐêÅj.Š›Ø¯Mª–W7›2 Ó4ç•ïø‡ êt›oU YÌ^MÎwšû¼Å¢f:#G Žp~7=Ù«2$"yÓ5p}'¾BöW¾OfNw¿ë"7Pgôâ€j®&–%ù*òÉá7sD7 7Êk„LS°ežÅˆ5T>+ˆd9îê=\IZAèåÒßÊ9l'–wálçå¶Ã\ÃÒõPàe)rºWT?™õe¬ö•ùs†™šKÏMù…3Ï*LÚæï¯º5ÖÙàÌn˜°)и—g´¥ˆZHŸÀµŒìßð„6½P'F%ÌÀ’±Ò™æ÷ÜcöãÔž¥Ýe Yô úÆž0ݪ4Â7u8¶ƒ1{/ý‚sS’0i§3%ðÅÈ7ŸZ1¹zߟ–ˆ‚0 ¿Àl8;¹œäLš—bf‘\£cž;˜ªŸôRàÃsW“ä?á›c€»†nšŸÑoÛŽ@å›èCÛÙ_LäUä)«¯8•”'MHØÑ–ÚùÈX8Ð¥ð1†ƒ iÍ0n(1§%ݶÒ'žýÍÊAغÚ¹~¤ùã_"s›ÄÅlE'd‰¦®ÿ= À6ÜŒ¸ÂnÚ¢jvyö¥~sóÖ£ÛBhº©”êÌî †P}AsîÔÊtj£'u˜b¿–,çu‘ÐñÜú‚Uge1)Ñ‘›ZÈ\7qÉî^…ô”Fb<¢qn…¯9‡='×LEöPÇ~ñR(PêJÃL4½(]øõ ¢žßãÑáæ S¹ÎhÁ[÷žÀ‘’ô×±‚s‡øséë|\$| ·†¼Ã.ÞÉÎU»½+×Uý컷 0vG%/G$¡ "«°CŠ[,"¯ƒW·Qp/gwÂÛ<ã"Cy„xÓ˜­½†­záÍG³É¬IPy1èYrÙÖmH¸ßº©!¯–ÔŽuI7ÙÙ(8‹ÔGC2OyÜ”-˽ˆ¥±ÑÇ{ùìæ©ñ§+‰šE¹6-9 Ö” íg}[ 4âˆEŽ˜ï”U¯=u‘ù²ÞYÍ®j{D6c¬DC—ÚZx•œ<¬IUŽ€ØàÖwYðàÄgù¬ J[ÉËÄÈÊrûJ5vœr]‰KV4òÙ³´ÞÂLŠÿ#ƒÒúª“úìHQ^_u‹’½{¥>5Cæ>M·¢˜Ý@YåèÑfi™vTZƒé«ÕöoOkw‘¦êœxò´¯¹óG&}}p(Œ< j¿Yj‚;*õÒ¥]®à€«$Ú"æ±S<Ì£·øê(bŠÓƒä9 „€IÌn;x%’h¦!5Xˆ¸{ð«÷ïæIÂ+Jk¨@ÛÌ:«ç¹"ZÍ–‘¶¯Ú6í0éºÀ½–8í³•¶AºE²ù-ß#P@¦®EA[Œ•‹4e7ÿi‹‡Ä±^ø@]> /t©"´­m•ã@ƒ[´Þýõh>p®—¢¨áI Eç‰-E1®ä¡Ñƒ%Z 郮”9¤c‚æUÆ)´mz‹Œ7’Ç™àüZ´U˜(Q)Á`ïhºðÒ\ a®+Êv)PÔ÷V’õ|T­jwÌyç’z\ð‰Öácj± Ñr›AuÔœ~nFxs³ý‡t¯r¿a%ê-@;7jh[®Q|xç9…ÜdâG³ÝMpº\ƒs Ë"“EA£¹äw%˜Ÿ8FYÒìŠ/báÍ—×(¾ú«ÆÚD 2ÔM§×섲™n2kbáXŽÓìhí¨Ìjùš¼è),-)C“ÙqCp~GÈ™œWNžv®¢¿œ…ÓcÂhȹùzì —V’~çÈÃU47TÑ‹FÁ3‚þG&K0É9z…î• b"µÊ6ZÚS¬`®Jj†÷îÌ"‰²Á™Œ×[ð[!B¢Ú­ò<}pìïj¼âI픰±FÁu7'¹´0 ؉K”(¿4N<½ÆŒF{'9Y©Ã"™ Í!ª3Š´Rv‹ˆŽþõâŒÂþ1$3Ж^:—pz:Jÿ©ŠP‘û æà¶v]ïC=øºŸ\‡™Ì?¾\(‚ö99óžSôzX­šŠ/îöêDq†m@™ç‰_æ?g«ÌäC+æV. \>‘÷Ÿ†^5"¿ÖéFÎ k<¥alx2ñ¨Èæ…áÿ$ÿ¡õ£ÙVóÜDêÿ¬^XÌÄøIFŠív'/jUaIyo=NÜ%KŽZÏ áva úƒ‚ ­)Y€5ƒ‡ÐK[Y‡ûe¯Äɤ;)¦/LÑ$4(VâÀ§n8‹É´$mW*îò4™¯¶l‚uí@+èß=’Âñ,$őۊÕ'Xg5‰'ä ™åŠGn0@ã>„eœ›ÔÉ)È 8éª9¦ÈÝrÔ™1åÅp¬ÃÊEN2'ó¹1§+îAŠÈfýóÎ2ÿœ(R‘f2ÆÞ³"ã;tܾAæ°™öü Üuס«Íò匦ôÃ"ìûùBµ·Ö˜²j7¨ év‚ BÅ« ¥í)´é E…`íY£ï+"€1QÎ|ËöþS…jnç<Øð¼ˆô»ššwŠlc ½qHdKãC©R¿¹7ÑõKÁÃSWYÊ64pâ‰'-K„kš¬h¦v uà'H®‰àâ éAU_öií¨6y¤a?Ôôï¿Z•}¬Å—-TåÉMäó–ÔçüaYÅŒ/t‡·ÞVy¡JeÇZ"–@ ¾º­tV±€„ŽQ„{Ö÷~Ð.ÿãu\ÿ{¤Ö¦Ú‘ÐCÿw\¸lñú‡ØÕ£6!ïõC#ÓP’¸ò„ÁNèÝûÒâîO&Îå(• ªµ?ëx©©‘b>™îõÂ"š"ï[Uï…‡=M(dË^Æ?ðÍû²áhtB&)<ƒ£:î¦âª&ww³6é»Åä05(´èÞÈp‰ÃÏ3걜)¼“?}ĵQÝÔÍcÐLÃJP’ÐÒÛ{Zn㳌;»>cºVD|Q.¤çÌJäßH:$cõ!±S0È´­D̦©ús ¨Rþâ²PÅïϰ±‰ö¶¦>ë¡~ÙHÑœRÒƒR'Šs5¿Þ…• µ8lAâòå™G%z?§üF˜§âôQºñe ëºY¶—2FZGÜkôƒà4tÓk‹¶o‘yÚ¯c }ùÄï/ºaÖ;¿…p'Ñbâqs†³Q;£‹Pú&Ì?¯í­…ÛsSãç)º]&ƒ’ׯ&¸ªæ0‡Ø£d%âØUÌnp ÌøQBaÊ&ê‰pܤó™›; @#Ñ èO/ª¦Cç{Ô©0À<1ÀðõO«šã‘|÷°!&ÜÆqžnŒZ(02ÓYÞR ±Ý^XKÕ~¦Î1^&e ×Ç d &tŠ·«H9Ùuî9n¶úEØeWXþˆœJãÍÌ3YóAˆ,%Õ·›j>²‘hÇÎ{ z¨W «=ÂyžKzmѬMök…xŒ–=ß³\Šìðn,‰›ãu„î¹·]D4%’¼Ë¨àåLÄÃèW&{§iÍ,&ì» °®WÚ2qy0£9U@c6ÿ†&šÙíi†bG°‡±¸ŽÇú¬f²ãÅ T|=¿ æR`ü¬ýÂ+…>Sálïd– ‘äi»jLÕVwJnÇàNŸªâåL‡ñ&'zžÖÞf³F#¿”¨PPq]V%Ð ê˜àËà_±>Qÿ5ŸÛŒ)j”!ÛOïÕ€¼ÛOÑ ¢Å×ÞGÂ"WÍãk #sÌœà™²ßÚ¬þŸM÷1ïÈÈQ° ëa˜&ä¡Ó pÜ~e—ßd±;ÉÐÄ-€s[Z8ÇþÇŪy‚Û(Luš~è|â'W¾lNèårw™Üc¸à1#äù /ï£T·èžRdRøEæfnÇ•{a‡'Éox:™\Œ¨ò"‰iÑŸÆ£Ô·Äqr€…ºÎ½¼ ™ŠP#â!b¿b%¾™A4Q3ÀÿBøìø Å·Qƒš€bka @ø­u\%êcüä [ÒIòk`8NåtÞ¨HÒÊ€±Ò·m+­ŽZú—$‹×»™ý!Lha :6[Ÿ¶ÔͺÊ!Cw6°xtñ²jâƒnU´™¿üˆYªkFÃð\_•é«o%ãPméh¥ÅÓóª6ež5¾£ä¡ä»àÀ—)ôë8ÛÏcD.NÊ÷xžsÂ¥a™˜Å~Ñ,):ÆÒµèé¬\‡u5\Áe˜û6d¥4¥õ‹JPí£)¨ íî~Ù Äú eÒIЀòŽ\ž–g`»èˆ‚K‰æÒ(÷Ð?W“º™JV%A¿©Q{Ì%«í„>Ódmüa¨#|»h92/вŽ!¢lÌRL}„eDÉÌT_kõ>>ìHþÃWlXöüiD§fR,r„°s»ÙiIݸ`fO)¸×1‚ªhÃô¥òGï¦ÞÜee­j7% 7l0Q¦´µ¯k‚+*§`’»vH¿¥w“Þƒ[®–V¢Ôv‘~ù¢GʶÖVÚª@iÏY ilG-‘¢÷Y"Û¦™ˆïj¶wb‹üï0G«ß´žo1²=“ 9Ùû]pRÛù*h· gxäQóëÜ|4,ýŽ& ¼XOï÷ê­!c²‡ÛºÛw¬A`€7OÓѲLƒ1NŒËÉQg³¬rQId[Ýò.¿òòšÅ8u˜ˆ¿ç^#ÉmÓ`ñµŠÕ|8¹ò! ƒÀë½÷˜.²G‡N¼ÂkK¬ÿP‡6`ǽNá¦5˜,?É!Q0_ (_mžÙš^7ˆƒ3ò~l\Ïx‹ï@ɉ£þ­=Í,Ée} ?ØÞD´§÷e\7hdêÐ:W~i½’6ç=ȸ —xÈ¢|Ù2†[W.ì¤ÆõNÞýûÙ°=Iñë ±©Æg6;&µŒÒíh6ñ+¨Ôûü‘>ûœçDìá%!A2w-–¼ æÄ —–’¥â ,¤äÔbV¢0¢NSá;{$ù„è9Ñäp};.ìØ!>õY@ Û©^rÃÀ =te€BoYú–øÈááæ%Å:äI å{„¤ùBäÝIºZ^µâ~¿_ÞÍ¢ªàpç:a4öÕú§ÇˆÙtw]>òÖ2ð0eÁá˜)9+íËBO9is÷qÎúº +‡æ>éB¶ "âç¡nPT¬Ö0NUÃ: ‡et"L:ÇÙüHÓîè:7 Qɾ|ºbM4'‹’_Hd{R+à-'ëmÿÑ ”².¢Pd\¢5ʇU²N'WÚ2ÓH²_pá”ò}Ic'×(u‰ɱ¶XŠdò“1*uJ“ðe„$õ¿°kEµú uSpêêGª•‹퇑x4áÐV=¦©³)p.l—™Øö²¢•ÖºÉæ­u›‘ЮÏwþñì Ž˜È>B0«?‘„„ìª×HL·æ¹­ õµ¶pê ·–7ãU7éO¨ꮇNÑ×̈€ÙË#UÓ½ÊL¤ÛC ÔõZÏàÍqTæŠÆ µ®–»ë7 L"ã•,ÜsÒ¼ú2õ5¿õŠTœ×ä‹»}ë^‰© åaÈo/ÎJÑ‘~iÒ0[Jj¿‘ŽQ€6w-PÓz¼\èkM¦ö:aÖcñP E—Ë’Ò£ žqb âX…Æ7¬‰ûW¥¡LdmAÒ)‘ê}bm)—Õò*x~ݪjd¯wîþ0K0»9טŒ†+K,è‰jåÂÇxÞWªµß¼ô ø£àD6õÄâ3æ ÍkN監æ†àí·OȬ$Á»~Ú -<Šþ-ÓÕ¯ÂSx’Þ†üôþóäwµÉãEé wŠ0k^¨̼ñÏD‡à©2ôËŒcôÚdZÊÛrûéŸDÑ|CšwùßgmDÉo£¬ef×À• ñ g^_Ÿ ¶s`Ñ„r ZÃó61ŽÄþ•6îáßf:o~õ¦Sp@™íj|³-ÍŠWTOÅ9GY•Bšð˜ZB¿!‹²ˆEr¥tbs€ÙFi€ÁϧT:u¯á_-rñ¿ 2FP¥1ÊÉ«…2Ð@§·P{¤µµM2OôªÆ *ùƒëÿ†óùm˜!aôÖ•¢äl_˜sÑ‚YèðÉ FùP“÷œ Â¥ Ɇń–%!Îútîö%΂O°ƒ!· 4âP¨xs8{Gd5´¾¬D¿œ&š×ç ìcæ×L~'õãC:2,’câöËIÄ,·Êtt‘ 0F„{ÏØ[^F%%àaµJ9«6Ò8íÈí2]MÙ9ݰÙgµÓø–,¤ònб 9€ž>BÄðhÎt”þ]çŠltk‡-ÆX„-´óŸ‘¦’èÄ>ÖÄÁЉE´ xæ(š–nYe–î6¨ Á•?ÝÚé!\0Íž¾.ƨÝMTŽñÿ‚³ö%áÍùGÁÈç2é–òc/¶SëFDMä­Ô!tí\“>Œ……Ûë“¿€œk(ݪ%ãáëÖÝ¥·›!õiAG9“Éÿ!\†ùÕf+YZdÔm¤@EBËæ‰Ø^_­…#¶Ðø¥ެžºÙ•UþjéWy†&þ:Íšô´Á&³4—²H[í^Ù_ðXçQe–šµ9·º› è—”ìu™û·ÖO«²Ðʾ7ò²š¤Ç„ =v¶«U.'h, îRï?Óà‹i-y4«rûÞHQå sZ³TéÚ¹eEŠ0µª)XÜŒDlR-XÞÒ -ôª¨±‘{aOš!«Â¥¡@~B—gwøýòƒÉ ¾˜W…ÓÿêÉ3kŠ.s[ks{Õ©~Æ2&ÓY,Cw½Å÷hÓŸ¥‚m~MœäHß…žÞŸóð{¿j{o2$Qt?Ê‘ª'Ö©­!íÓOùŒt.ödÁZF»k¢æñç HèøÉpå£@¨iˆ, ÌaÉMÈZÖý§‘e+$*O“ž„>ð&!ØA+óX<·–Bß̇rßerü}u'׉]?©Âm£2XÖûóøQp˜Û°Ýî*÷¦€“·™Ø®()ùN0œ{dÏ…'Ñàé çÙ¤&áÀíÉúO¸ £«ûìVõLs½‚ë±°÷ùB ûùÛ”œwSäQ AÆðEv€ÎY á·fö´Y_ŒåçýÊÁŸeƒŒ#9"é'Z«YxH§²ÚFÙècþàá©&À¸äx"Çîg·„o[tÛOG8x=”£~Ã+Ý8˜±ÂëÅúÓ$³¹ÿËšŸßEØØî~RúRŒKHáŠÛ“ìÿfkÞIè®~‰k1á¥-Šˆ`Ù~@î‡Ä!+×Ãh/«jC/¥†Fç~Ðç®lß°ªNÂ1Å*Q*zÚ#`«i47u’nQSØ’š/‹_Îóh¯â×í¡VŒ2€ƒæÛ/ UR”#fé¾-z«zŒcâä 4 Ìçâz_3õܨ±zuº!¤„I¡qîØ½~Ïx)hvæÃ¼ï‚£èWÇ\æÒg€šmšZ¿:¡7wîÒh6Óv=fP^‰ÊõTôí¿ÌKö–»DÙjvÏz2“ªAÛ«£šöGv‹Þʈ~€L9 ¢ì<:ëÈLÊ/’ª®è³¥i!ë1«GÔš5;èô-–€Ã:7·»n«„}íhÞ1G<ŠZÆ÷WµÑöÐÇ-—òcmú‡ ÓÓ8†n^ »3@|V­ŸD2Óyk‹*Ѱ ôX*zV˜™¶*'\I 'K¨è“»pº|qߦ’úÈÀÊq*l½0ŽÕ®„ð+S Î1—“nQ £! —àö›Žª„3ÿO àí@½ÉpL…ÄKa0¢#ÓRˆl½æ²Ù2{$×ý°þÐÕ¤j7‡7jãTÒNû,‹¢ 7H¹ÎžÁ"€ð-Uuüçæ8\ïdágP¢nú>Ô&X9êf (šÃ/}*¹òuÿ6¬‰`6àó¶8‡¢R—O²6ND¤Y=ÎŽèH…÷ÅRør¹×%qÐÐøÑ¨Vµš<¥~7˜«[×2ì3hâ‘FÆÒI§Fd66»B£#™mýÊÝšäTY[j³[û? mÌB2éU ßníj¯ÐÏ:y‰438hQù®[BÆ`#´Ëô¼z®WÙÎ÷á§›RiÙ  #âKI›¼ámÏUæiÂÿçf;¼d É¼ýÈšóì6lðqÄs2 ¡½Ûº°‡‹Qe­äƒ‚âÙ¯v`@ñ3f]I¤;9 6¸Í·p.áa#ž ¥ñέL6ŽÙÍô°˜‰ÎŽHšª™ì»êaK';å°Œ «Cû°Ùvÿ=jÅbi1‘Š\Æ)]èf°»t5ñy‡Z-(÷³¹‚hÐÕäj·Œ@_£- ÏM5NV@¿ÿʀƪÓFoÐX{Ú¤©©!+ð F{Oï6.áÙ{¡TÒ°"ón©H.ççÆ0 -¨\ªÚybI—”¶èXåì^Sžëô£N·}éÞE‡pUþTÞá_œª)½pž| ù™Cœüá¤X ²ñù<Ž'Î}Ÿ“7þ†h:*7,léZÄ¡À8ä'A3$K%¤záPª[M3ãÎÖk“ßM€u(^C’Ó"á5 u;#h‘‹¶÷ó Tê7é•£ÑÒ"jØA³ýûÏÍ xà 1)'í•W;ˆÏZ~3¬ †: ×±›—È.™´ cÕ®0„/Ï£%«l·àÂ…lS¼_&~‚–¿UÆ £ ”Qfz–k¶ØIñø8ë ºf[Á„ž,O®ÓlSÿ;þ«)¨öO¸FóMþ±‰ñPÁ;Xæ=A¶[<Æ”HÆoø³6§èrÙŸ„#Ö(ÕÙg¿¬Vf‘è‡4ä×4£ÍyŒ"m¡Jö¾âžü<Ï #QÃJ1©iúfÈMvà™þ·+ñ©›­Ìæm±WVÙõ¥º€Dð.ycgƒ q¨ëkHá*ÝTúc®­÷š÷v7Þ°ÓšbÞYŽ1g‘(K-âš®Dãéðç'¡¡Í_‚òÇT…­ëÝŒóêæ•_~Ú¡ oêô„ÚÖpH¶ldÓŸŸXûyäwXe©ˆ,yý!·\=S(ºÒÈ—7 P…@-·É)_:Õ%BÎNB!_‘”ˆ·y{Ëñ os»›É¸ÃvÈOwû!cÚµ|ƒ7ÚšÿÞ“¶ KÇø7W;ž›\DW-†z-de»ÕQ${v<ÈI8—fwϱö…¿.¤½wªÞ‡r)á+¤«¶Ã˜N½»›ŸCÁ0+ê ÇšÜfŽ{˜=6m¦‘‹…‰3ÅØA0`Øxi:3“ÈQœÑJ`å½åønÏÁ6ÏM'ïq·DrO„(¼'“ÖyØ2,!)ï¥#{£ 6êiTz,é£}u¤v\h¢õbßíX„–dÔƒX*¶)öñsY#â¨dîÚ,æsïûm‘ hOíD8¼®èoÍtrN$:Taé$ ±WÐ’Ò•šG%Ÿ~šãE›ÌlAÞ¯˜–½Ä¬=muÊ“o‚ן!<ÆhÜ.%/2ÍÕräå~gí1 +]@Ocà:kEÃ_ÔÅ´tÓ´²téKçàà¢ð‘#ðèéâî•òÞfýþT>©€M;³Ñôva³îŠÜFÙCî $—*¶ MÒÁ2À˜@È,;ÙžmÛöv}­-LhTŠ–èVqUÝñ–º??—ŒI6“2’hÙêînVJ_ž-È_]¸ø¾) 1ðÔR&…8˜ºKã3.u#g©‰MÏ€ܬ•ÀÍY'[³† WËä‚C´8ÏFè³ïÉ ýÓ"“ÂýlPxNæÖïëû+»bß"ÓçšàSùÆžAi*îÝdÏ¡ÔÐËÿŠìNRC#h†*䘦.Ùëb×hÓD¼‡‹oe;ÖˆÙ7é#Nl’Aü’Èð¨÷¦Ù÷OuçuÝBæØì¬^˜Ý=^9dœÆ„£³KI[D†ïƒY‰=ᑳ¹E ðô4 éERxg¡i”ž’ñ·Òt‡õ·Õm°»ÐÀBN~WÖßÞ´%A£>MdU*\KkDÈ1:æ1ÇGH Œuø“ØIÕäËàŠo*nÛì’…c$Úaž®]÷3ßüBüFǯ¹ I'ËÓæ Ý9Šä<…8t!”=|GyÀ[Ê&‚ )À»ˆ6¿zÄ_œ–‹ñ8E$Ÿˆ#êƒr­ƒŠÜó•8 ¯Ä(“‚3`Ñ|›Û:jGášÃ£ê-ă~ÙQ’$Ýxn‘Ï,£ý2{1”ñ9–‚ð³’óòGž`³ðØÖ‰òȆ›£§ÅÚ"‘]Ó 8Kehm¶ÆV?åûO¨«Üž %4”(â–p@MY쬾½&arzùáûË·×q^;’I;¶Ç;DE ÓVªRNŽS ‹vÙé§Ð*æ·å.=…±Ûq¯ò½vM&F…•!ñÞ¬Cê+Eqá-ƒŠÙZ=©‡d1H!:TÊ1š!y2›Á„+´Lv—×K¸Û›`cÄlFdÇõ†¦ ï²±l zÀfàî\ÆH78À‰Q‘@%Ë–Kyoy¨‰ó„8ÏÊ¢íÕóiÜ ZL‘EP!J¾Ï^`/Yõ™v-ĹÞ!û¨wMñ ‚ØwÉT;9šlÜ×Ë_ú¢s“x•¿È }žÏS§¸ êÕTe¹w$÷ìlÑß.qÊì:9"—á¯[ìÇÓ‚¯êr̪go?ŸK¢ØBìYö¢Ë¢X°©ÉNøÎí¤©ŸD¦Ã ee1£¢üB68WäsÓe|éܶ¦@6”°ÁpTµ¬hx.òáEfþ+…¥fÉxê¸ØÒ‚V¨=b×ì.ú$Ï;]½%¹I èSÿ‡²m¥%ÅLg7H¿¿»Üv‚zF ¬o;"¢K2™EŸ0 Px Ä9“p‚Ô Çg·YîCñ¥ïPÁ“{Ò^ú*Ef‚Y¥;öÕ^& ɯÆ“d+ì³ð÷]ܳz£k”ô)UdL t„./r?®-¢ÞÂE:m€Êñmº÷Ö"v‘¥Ji¶{.&L).ç§qÑP}nIx>ŸÏ„üÇ@ŒÇÏ¡ëͯ€=¯µJ¸ëûÝ€'¢å¹A©õ B²ªMÕ¦Ö×ìH%) ü0¦7âSûK(s.ÚÓ‰ÒŒŠ}xd§Û¼1 S­è-ˆqPh¶£Á›[Ro†E_¯˜û<ÀÁáºCqõK-î?’ÔB0H"¢ýAQ«Q4Pý{³û÷Hô`9_Þ#]£ãtÄ5¾2U‰’}‹“[œb¾X=ªqüqa”C;‹ÙLkº)ö™ˆGÜ4,å¿Â4²ozñß—!~žQ:Š@tPj95”Ë4Ü8ÒÝ‚bó öŠ<‰æ…[vZÃz sæ9]lát+Yvê³¥uù¡þ¾íÀ»Ënæèâvï÷ü8LõÏÎÊ5ŠÔ×e…nE"ç¡@©˜‚@Æ­Y…ð]ÍDîbZkÁ«'ãqLCMó‹mªsÌ hN{-,“ö77«Ê:8óf¸O£z}‰Í¡Ó¨Þ’¡Qd:!údcßÏýäYT;ºéˆuÄ­½Á²Îéƒ:qT~ƒZ|â5o …+Qíôø ´ °( mdz¼ÇO?áE 5Þëpz£Œ ååΞõž%ìn·âÜsÃGÇ?·$Yæêi Ph!ß= *Ã=½} @;Ó¨³¾o¥zçwë¬ô|É Áõ…+!½[õ¸Ed¼«#‰5ÊÜïÌ ¨¶>, ¡I”ÑF’Ú|œ¦È{¬ ®nÇ­9ƦÇ×ÌLeÃLÙ\%¥4ú׳Íñ‘#¾ ñ¦·î°ùM S²~%Ž{Çÿ¿&*D/šÛPž¿Qu¦jìmà°TN;2ài#8yÃe¦¥†¦íx$ˆÒ þ7ØŠg¤}‰¼æiÓ…_± Ûìdûuit¬” `ázºËã è¹²@ÎrŽ›r:ÊPa…Dè),.dI†Á½ èå\†Ð»•·7æÁ§!I)¹©ó%¾ÆØË9J7ž® ǵ‘Àkl€¶™ ›4ϾW±Iê|ÈKñ#­{nRÜo7"81ðÉ*Ú†ösììÓIÍq†´»šv ûhS˜ Ž!ذáÌ"#aÃlâ6XðµPj"vþ'¸¡·UH©¬ …–•Kœ0m Wèˆú%w'B×zõH±þ*NˆBŠ#œðºA&÷3ªÛ"çs¾«àôˆcŽòh}±gÖŽ±ŸWéË)ŒÑ¡+EU¥c%¼Hà}«ñ®vÂÞt2Ãk”À!¿»ï8Ⱥô ñû‡©v} rì™rfô,³o\ƒ[jäPUãÆ`"%<±M§MðØŒ³ë(®?Tmì‹§€Ô‹Šq±ÕЏKMï*³KÃIý jæ¸Ä+›:|:ѹ|Ä)80ý1 ¾¢(Keú?&`“©Þiôâb±k‹¨&h0ñT&Ûö%fÀô>Þ`„äå3³Ô½Rý}39¼»ƒÿoV¼š ú¿Ã½|ùyvâkÎ-ÖþŠ6‹9Œ~»Û{éye¶­B› .¿à„°×¾™— køåT“gË5 `²çF«½?=™x¸Ufíꫤˆu>jôiÒÚØŠÔ9¼é H0›ó<ë†!Yõ¡mŠ$K@ØKq/±Æ É©ô†+V6%a’[ÈY»}cˆð‰ž¨º©G5Õ{®Œ!“–•ìÊA^­®¨øG1ªÏk:CCË)–X´¬P䔿dùj66]ŠëÃŽuG*¡L¦´Y°ˆ`ñòcL7ÈSŽ„æ~@Ú:p^z3§›^Užyÿ~%Å=§ÔFý]±É‘ŽKx#ž”£œ&na²€¦b[Ï$cg_Èî›ÈçÀJ™»D‚jŽc#þb®áéüëŘÍà’;„r f‚¹Xòq1$z0Ï2ÍF’¶¤þÊŽ-s×Ò{âòÐS|¹4ÀÇ-F]ñ%ëµ*Åë¤5¥ëÜ7žT÷lo¾M+1Àa3«Òp“—Š2D´(©ŠN2o eù™DÃ.,P Q§EÀó°çe'C“Sáu•ï`ðD—H-NUûK×[¾„ó¹•ɳ3`|KM[sUN™ˆ·^¼ñq5j‚ÆÓQŽF0ŽKãß =>Pî“Ecÿ.ª¥‘\aèNvêHÊ–oÂAF5¬pQ’³áSvÞx;»×P]ÚñSi&ïdÔìxÊŒ8MùÔßpWø$©ÖâL·¨ËIT¢9MCŽõñnD"{X¶ÔV’ÈøõæÎ£.Z S€‡¡Ïô™Á®›ŒOÔÒbëc`vUd/S Jh&îÊË´‡¹j…:ì`—`@tÓÐ.c¿`€¹ÑÅ"hÀµ°ªlydõvñyÇtNTf.ær‡0\C áØCÕØ Lﻲk=[NaA=Í*‹B¬èuÝÓ;Ÿ&Ê¿VÀx6Þô”U­Pk}85l¸|îòNžÆþýe$ÙY·Î-gHv⎽×>¸F³B{ª.EË.ºd‚!P†ƒ²UŽƒ¹ôEŸ²Ãt~:ÜpÍ)÷Ä­â`<_7UoÂ^ê{…y:›VM#òæaÁ¾µGš¢pb]MÏ)Ðé~+qÞŽ¨_ìPv`i´X[†Ó¶*¤}`#d{äTðvŠ .Nßi=И…rÛ™®¯ôº#Æ›Ô ÔŸÿ‹È‘ZÐM“"Æ.±×Nžq%‡SZE Š—&Gjܵ‹+êµ+;1êoô™ >ñÞê¿&p´œ*¡C:ˆÓu,M‚b³¦vþ*’ºÄm0ýXh2óɽ‹¢ aÄ:b~gJŽïíûœJ,ÊêHÌ;L­>)Nr±7ah)‚˜@ݽ °/ÇʬvIïý8‰óÛ ”« Ǹ_j!ÌŸQ×î•èw7qp>F7Ž»Ø— x^Á¢wŸê§ß‡ê·KdTÿЊ/SyêùÎ÷fOµùòÁØô/V\;ô>rF˹#¥íñö`ÕßÎ¥¯¸G'ßmï|rObìÄ<]ùÙB•‰¹YšÇkÁpÜÛ µ{ÍFŽüÐÏꢑ`¾²Eú§.-ŒPJrÑ;÷,»™«%¦\b÷I<¯œQPQ,Ñ—I »7ÃeÒÍ!2¡m?˜wJfÉùÁ£ºÅ4ã¥èÚ´eæmæ–7U+çÿÁ0šïô£ ÙÒ©¯ÔG Þû æï–oîPÔΠʬNý¯ÄyyM-VX :B€x{`#~eÈ´&]FŽÅlêåyb+va«M繌9'9K Fö›9‚Òå¹o¦âÆÏ?¬ 7â»TÛ<ã,$‚Y0•ïŽi¢Vå˜-úiØI ÍÚU½fD7§œfP{(ú<í=(¬4# ÄÈ[Ø8•aN¢5ÌÁºi»žªwÃáÍ@Êdú6¨¯ñ €y¥TX(zç¡å7Ã[á  Ù< ¹ðm!Œ†ãj(aóǶ¦6©#³UUaýŽÙ°ýÄÅ>Î;EÌ·ŸÊ!Áü³í¢r`^RâÝmWLE‹už¶´'ñu0ØÕÓnÅ|.î (œå6ôÔEÃþ:O”¿©ÍY«–7]ý!S)‘Ó6ÙAm®îÂú1'‰QA\ÖiO íµÚ‹*¸½ Ë”\¥ëÝôyÐÀb?nlY˜h#½º{ì¬ôEŠYÕž”{nk\]Ñ`¸†ù:WµjFL}…–UuÕoÕl ûÝ ýݤÚRÄ¡_&©šiψ¨©â°V/.Ÿ~O,'ãݾóYŸí@vè[Ù@`]ï<š:V•,’c‘?Þ*¨¹‡Vü‹‹p9bhöU²cØœïÖЙdWcÁÆ“ü#“äÂ)ؘ÷ÿ%/ˆd⫲¹(µ>’îòŽËNiWsf «4ÍȈªô¨ü­ø%åÔž0¥{᛹ë› žšï1L¡ ’0œ¦–J\̦”óÎÐísÛXzrS™ ÍHÒ¸FßÒgø*dÍõ…Xu!ä jd½c.RØÙÕ·GŠš¨ËÝëµ{ÐQ×›÷‹YžÓl¡ê¿??EÙç^œßÖÖ‡‰ëL™<›ÉÈ-¢®Èxåúÿ\m¿):[2‚øK·û=ï½!žÙ"~ºw°kyâDÁ ¸ÐmB2ºyºNÔT<–gW?NM‘çÒ¹ôÄ,’y„±ÉÂdøÃ™]…Ÿ­³5nR1@à ªk‘]ÒPTo"ùNo¤ÜhÔ~H‹éÛ¶HG>í¸ wä§´0dÖÝÅÉ¥ð\÷1ø%MN¦‡G§^s°dÈ uš.Ã…»ÞP¬êß¹ïzÙæã™µµô渾T:34‰_1ÍY ¤"n"À¼Ž<[æ¾¶D ÚÄwdá×[[Ãê‡ ômäÊ*ãho}4ÁtÚ›EfùIµÝsöAÓ#d~K`q¹7ŽöH"éh ÐU¶«èÌÑûM´þoñ•’Žæaí¬/»·ñ…m¡¹nñ~È;î–ζáPYÌÄJ>qèÒº½¼«»™Æ©tIÓ–Ë¢ò¡ÚT$*uwrœxÆÁÇöÑ §…ý[£#®] ›£t¾i\IŸd=HT¹VtNóMj» Ç%Ë $bô„—}+n<7§Ÿ¯è;& +nÊô‘ÁmN”a@ç4ŠÈ›&t„)¨>\{¢kc‹[C¿|Fƒá¼i{ª1z@k!?4†hÝ÷dE‰"þÏB³{Z¹d¬žjð|~N"—¹©ínbBû§§êK¿Öë/Òew­pɞˡÆ ¡¨!û¦{[doÃ*™öBèÛ;ôßNº`Þ<Ø40HÜ¿É"-ªU´ô”©:ÍíKò‰bOû‹>þ8Âú¨ëÇ}sæ ­ŽÒæâƧ.\ [ ;"##RZrȯKf¿æÓò©–-•:ð,/DLÒF1fö¸ï5R!è²Z!'ù»Í_G<ÔȽ¯&îTŒ¯¥ÁðWÅD]9h7‡ž‰¤‡¬«A Ð4CëÛyÎ5ã4çŸ CïC<®º$¥·ïÒ…°\”×…®ky€|ˆ°TÝÿÙºãhC³óK`Õ$‘÷‰­æn‰í;6°¼w¾ wå%d ò`h!VðˆUL’âôdkä7QO®!±.ܘõÄ^FÞkë'´Š†Ka¢.swPú‹ùT¥!uFˆ¸»jÑÆòÒ?X˜*)1?$¤95ÉöèCŸÁ+—Nù·‚ܨÓûÊ=•¦–-‰ý!Up R‹µd :‰:b|«È1ƒ—A«Ñªæ1Z™ ¾æ»`Ñ ¸ßüÛÂά´]uÌ¢dê$‚y%XþþjÜà¶_Øy õV·=ë¸È_’¤&w«`Cø`ÕÕH±ÙuÇ/~íBÏWH à;,Nôâýëxܺqp¹ €=®?(i/Z³9¬Po¢ŒûÇA¦šò­ÅuܨpŽ0 þ?g€‡çþÁò/L8ÃËrhõA<‡®æøO àRêªåÔ€¢ïÒ´¾¿_i¶°tU ä“ Úfãë4Y–€I¹Òhw£©Ý¥úÙp’†KEƒa‹ñßLÕgÒ\ýí_¤Æ8¡z<ð{¢2õ?»¾‰ úósǤãíס·Te+dtKb:Ð[ø.áL—•òHj0P±©}Ëô4PNK¦—Úxn~ :  Þš·™šP òG¬† 4Ü5‹aç\\¶)‰gØ? hé[ÑݽԄêA„ú«E§œ²„[þh@ÊB¶UÂÚp§ËÜþåÚúÒ…)LÝŒ]W[³í·Êˆ ž€>@ea‰©X"Ü£c8BΔN¨hcë#¼ôIÓ8@2Ûá¼¹*ÓÈ £ÍÀ+UÚ™ _QûºŸãÔËå¼à 8e³1m@ÀUhî4¬:c]0¼ eûá^H7Ûš™†Yʬáf{W•)Ω£ÕÉÐðWƒíÐÇ×Ck;L|}u(ÇŸÜfæÊ®;Í2vɶŽT>¥[Å,ß&u;Rú•-ßo,r ó w•’„ÇÑÊF«Wíû-6‡L+MŽBü&5iEí„OýMÉvH‹¹1öÃÏ(27Öq¢îqû5ÍöMÇÐ7ˆˆ£ö>ÎXFD³@8œíʬ­d+¸^.ðy懭¾Æ[ n_ý8ÒŽ¼`%¹«÷‡¼6î:įt,£Ë³ rî1IþYç‚°SHSNÞwhq¨ÎüÚ;½^e°¿m­ËÄ÷”†ºŠÊbjö,ÏÁ‘ÎÅGwúÿYšabw¥ q$^MÉ«êÜœ!š¾|ù˜Þ˶Ê[ó|!Ís/(‘ì)—S…86[Ÿ@-°ƒËÍV-«Æ›xžÕö9lç¹N!!¼Ø8„-øPîops†Ñ?°[ Öè‹þ„†ï_ó°Ï$”•Á²½ÃÁÅ}{3$¥T­î3è¦Î2ê3a¥ÈýH–“Q\ä¤Ìw|Ó°‘í¬ÌQV¬÷&ã¾®Õ¡­‘iñB9âΧß*-°êëéb]½ƒ¦3`†òIqF

’íµ¾|a×ã/ilk…ÒàVÀ´Õ·Çùí›{¾‡‰1+³èF¢Öá;²DJ?0»r!5Äg¾¸ÍÛº{™/r*]CÿÅ£(û×VèËŒµ?È z_1ÉÜ2–T å¾@6«yrùäd)á8‹t· ¿¬¸?V!W‚UÂ3çZûGÁN_7·øŒ­‰W0XœD96=3»t74•&Ûô_Ò‘×ïÈx'\›IƒØ€9p­„˪/ÁX/ÕêU!^¶8 sÜñ. éRÊHª÷É1qñ©1Ó‰øxØ›ŽèàO¹OApî”fî?»PÐv h^Q ‚8É|9¥Ñòü/rz6NÞ@@ 'Žñ’Ü̪Iâ~v¼â!™º‡ÞÑ)B¢ÔB"+6´²É #¥a UN®j·Eiˆ†—ç ý #úa^mSÐÝ“ê⺖Œ]Xz(f§vòÖb‚¿Àõé95êS%Ùݯ EÓ; XuuÑç¼³V€Dg³óŸ=è{³põjg…<å³åÊø›ø jíæ*öQ̰„>cu=#ì«cü_(/²8gX™'{Õ€õ!%E„äÆe‰×Ô,›ü¯Ì7àíÓÚiŠP1†]æ™W$BÄéÔ*F ÀÅ·.r|é Õ0Ý}ˆ`Îãƒÿù´G$½‚@×êw~†÷Á]#wJc*_Ç>Âë…ܰ{w½¿º¯­É*š5U‰U\ m¶fÚx[MÉ¢IÏGs]-JzÎep½¡A¦tWµõ‰®Œ&­°Ÿå™ç1ù áBQ:²Ð¼ŸHŽd»˜Ï¥ÁÜÄ{gþß«NK Y•&§‰KùZÉ"Ö¹­ÖÊö>¶Ç2л[ö00’¤ ~’‚ÞÓ•“ØéÁ‰“ºqHèEµššbˆ}~ÓïQq[t³Úèmè­üŠÿýí8]äîOäEi9 k·÷å¨aYEfFUÛÝ×{À¬§$Hlf£vFÍÅ?Xg·3sÄãïqE¸`„¯.†(Rƒ-ÊLO^–ø™|]žˆvYž¶ ITFñüS8üB©·âûý&[ÔášKŸ}X*„¿…Ç…H9i3Ø’ý§•$éʪK¶ɰüˆb>EnO­ñ( gçQ-q…/W)³Åì i¶ïw‚ýñ–IÍÚ:w³ NpÈß4“+ðv”5_såšYãéÀ“=æ_<þ[f¶¸’7{½'²‘ã=ù*¿_°:„|~dÙì¯Ò¬ÆãëœEuŒ¬òsø…^éq¦Ð$3a/‹ÊCŠX¹ø)’#Þ‰‰v¯ñ†Ñ÷ˆc©¼ŒúªŠ1ï÷Ltò×™FÃÊŸì·‹³kÓ@„ ¢ZÌŒÚtsÒí[‚TÍK›*É—™%ò? ½Ëö ñ^dÿÛè븶¹6ÄnIÛÒŠY¡Õ§Ç6˜Z8Ï4èm•dZŠÓì²Cêõb#õ‘ó£À®§NVcCa,NÐY)!EÞìòÖîŒë9hšp…A.n¹sð®ƒõj·ÕÈiKm!².ÈžØÆ‰9šÒ¦”/b« +MÀÕA¦ºïx´NëÕiïàá—‹Ûs#ž!8I® Jüþ§Ðªãí$Ï€5´ár9¾ ®`ªÏW¯ç³®ê|TÎWøfÉ#ŽM\×è.4‰â&ÜèjF´Íå³Ýá®×ºEJ–æ‚äµÌ@o7ê:Ü\!ñi2½çí+X ¯éùæÔsQd¿iIé}g¨@\Rôt9©jÂIùš/«Ì‹mÊ‘FPõùôCp¸¦µ@³ˆ¿lh … zZ9ß´l­•š71‡É›©ÔiΑ[™”b»"ó;G~uÕ¥ÝÍ)²<÷‚În–Á=`¿gB#Ã+½ýÛ¡;ÇWã4.‘ôöû¢*SéÝF±:ÒS™CÀsãÆ´ç ‹ÂÖÀ0öQ·r™­´y”×·å×cuq¿°.!…(9 ÉTª3w‚44©Bk%nƒ]tŽö¶|Ñ»i~(†3|ôž(5ʼn»§åiK˜¶þ©xÇkÜÃ(/ L©c"ˆ¹œ5ŽñÄYËLÖ©@½0b*㟶»›bXµ|y°šÄòmsg.}cø±õNK›gr#gšÑ#:"ÖM¡¥Mâ!æŽÕ‰)½,dúúÂíÔ Ëëâ»: ½g/Tæ5Êüjt èãò¡ ÕeÂ-¦í}Œº„xIä0ÓôtjSÑŒ•Æóð3³Ç¦÷Ì ÚÁé¢ $yìkLX¾6r]ÿ~}¼…ž1V!ùXM‰­½†œ=ù+'Ž›2¤dÍ\‹ŒÖv˯Ž{ܦ1GÈ~ŸNÛ5¿L0â†Ìþ˜†wG—ÄÝ9ÙÿD±¦Ÿ:øNÁ `¹”OÐeùNöõÙº‡}ÀH„‘:% ü{˜XqÚY¶Wb2°%X±¢× çÀfëØ°Dg²bR¸(jJë‘Q¸&Ùöd=¼16‡K.&4™/Þœ{¤.fçÉùG"}ÙïÄРLlÔüìóI1_“é”üG6†±ãÚ \h ©‰ž²ÓR…‘ ,YüÒ© ˆ\S#p~×XW+•÷€+¢åΓg…3¬Ôõǵ’Žg·|®Ëûÿíí6è®Hð-¾De?Æm_ýILÆ}ÝŽIäÖ¤î?ô Cþ¾ãÖPÃÄ‚âLS¨˜ÿÎú“ߠ ‹7eYŸ§ )Jû×~ :€VªE™UŽˆxž¨0ËA ý–!tr8ïêƒ{ hø+2á"™Si_ዲ½tu„ÊýþEk§Rq*ï µÅÏ´>]ct&p|ƒw‘€VJù‡ˆ^¢ä¾ó’CP^ëøç[°J¶ uݼ†ˆ¼…blÛ[Ѧ˜6†Î«Fi ëͶÉîȦÈ%œÑ“OÇšçòpêåø ŸÏ@çè¯%cÛ:aÙ;té6d,ñ±2H„»DB2&ÚŽW–æk& ´îCÈ»¯F¥ºN‘s]x„ŒÊ¹=鄜t÷T¶ÿŽñn}±‘‹Øá‘ÐŽž.ÇùTÞT(éÞOÄäLT,•wÏN_í½Á3Á.ˆb“[?£÷Ò¹¿˜“Ð'BHóß –ç-²ZA• »·/”Imì¯t­*Cw’ 9DÓ½w©vH]õMó‘ù™˜!RW9u»”)a¾à[ð´–“ —')¿š«L¬ ¥› ßU_oßyˆÄ —2Å GÔ[æNj÷ŸNL”B¶Ò.LEÜË™ŽGM­ž‚*‘6þNíªî0ÏQ1¦ï 87VY±b³Áæ|‰ä“ar«/a½ÒžÓã7‘¾"yñÁ鉫þEôc ²´'Çg(úÑ2(:Úy"rÉ–aÂâ [)a"ÕÑ€![,u‚F`-orùu_pgÜþ I]1"ôD&LB¯íUzc€2Ž»*~2µõ:¾gÛRO"¡Art›Ëqu¡OóZvQb0&Wó¸áÙ#®*“pŸs"ÒÜÙ¼s#ô¼ãÍ£uôßÑ÷F>çæÜ¯Â@éh”þfØÄEø×–ˆ«K’+¯º\M$HGÛ“%lV…¸[)Ó蔀ÜiÞ\‹×ºÂ±#|íq`"$þ°‡³\¼Æ¤) )M”Ì¢Äx%ôIy@ŒCˆ?iTl›ÃÑte@ܬÀªð6e“ëE2‰U†ò$ˆWŠäêkŒ7[œ»&H/úKP‚}øp®aþ®ÉÀNŽzG@t^ˆ”ä>Ê;žQ,]Jú4uü ˆ ? ã C¥oåÜêÑî=¼½7N'ÞÜNg¬CÇìZ|­¦7çösS3[xHâÍMZÈz‚÷Ù\e˜}®Wò‚¯SÌPz’ÓÅÉÜ…ŠL·öæ +Í—;Žh1˜¾ÀoîÖ"ßÌŸÈG©g¶#)ˆý#¾Ùa™Ö‘Ùó~»û«]² ’676Ù’LÅ«-F ¼&ÏAÚ>˨¬’‚ŠÈ †,ÚI(úKRðÙæ…J"€­ø3Šáž@]íËþoö“úñªUx0n2¨¿Ï%a^™ëîcQ•’ÓöÚÂ=³æN—³N¹ÄÒ¹=„ Ê}Á:‘$+Wæ[Ä‚È&¹ÛÊ,Õ2Gp3±WþgNõµ°ì{³/ *„Ѭ™†¨Åk(œÈò$Û1¿ç2n+œJTQÈÊX‡"ÆpˆÙf76`ïL5})â èF…í‘Uî(Üoö_ÔØ¸Â•ù )/`ß Æ€»5âØÂ8{«Š‚øH:;Lc½»ª+ù5ˆs.¼zW½_˘•aŠTÐëSS+’TÖ­R&¦]¾óáY}ys†ò±d3(†”Æ…’ãS¬, •@ÞÞýq)M·2Æöö9¶¸H¿2'÷LDˆ üÚ~3n…ÈK®•öÃÆ8=Ù ¤=S<¯lf½H¶]¥ÍrB–ð”q°‰8§*ZO2••=tgA,ꇛEìú-ªß†1šH =\Õ2çÞ÷{ÿWÊåãYGÚɳåLùL·fS_Åáx],:™~¯e-üÕÅ \çæ‚¶¨YØè»syc’qz§”Kú/ù 4:6ˆ˜Q¿9¥ì—,ù/5â…ôÊI"Ì»—ÄYb'Øö¾ànɧ&Pmã*+I½!l§˜n’YªÐÒäÓq=µ†ºnäLp'˜ƒê ° ßÌ ÖîBNÄêÝ’ +¼ Þ›#ŠÝ™ž|ë;Dbœ6:õŸó2ìÝ:äÖMa?†2÷ãëRÅ^ʬ„*¿oD­TKµŒ] ÊÓ!a=7ÏȦÇQÙt\ÂT)é< !¶ŽœúE‘•Bà.PÖ˜-ÙœGŠÐVWá´šº·LõÅÀñ±îÓÅ85ÿj¦™{ š‡ŒSªr¥Vä»0u©€M˜µjää+½ˆÚ6:\ÔÏW&;ÝúöxY-st—ÍkЫHÞÇÏSë¸âc%¯š›o퉕¦iÀuß}QÆôÿ>©à.¶eR/ ·Móm;´%{k3rG¦Nç´ýø©¤tA¡ßFmL{ôš©Ûy¶ý®•­Fï±(õ›–” îaTg Pì€ïÐ!ÈN¤\ÿé#'u|fxÞÚ† ¦ S#Ð{ …’zÀ—ÏFŽ55†F¡iÇAÌWAz¸}3#¦+5š¿mo×cýŠQã­ùvà†\ ‡"’›÷m³-Œ‫ÈöùޤLaI·* è÷´17?ññzsÝÝV‹< äîótnQýwÛ3úÊ*Vƒ§ÐÍ{µnü7ÆaãìË0wf@R—a"CË¸Õœæ¥ØæÉ—/ÛNÁ‹¹ñb‡¨ÌiÌ¿k¾÷`ô˜“í&% $aš#¹‚LF¼<23ØfAÖ°4ô-Ïž­Évò¥Âi#½V"åïrä°SÖm%‘ ì²`qË–Þ¤Ó Z¯í ׄ51/|©P¹Çÿª §*ן5Õ¡+Ã"É#”•Fñªê­Zºì’@™¨JIc޽ËùÀÁÎr{›QD~÷Áð)½gÂ=LÅN„w‚ÐÀÅUxOqÑ\ÇŽÖž÷êŽ^oïû Ô©‡Ìv=ŽÏÔýÖ3*K€ÿûê°»0¾—^N$ákà7ˆtŽ è¾F ²_†Cäyøüš}šI2¯å@J†ñèÄ!‰)åæe3sg ¨´GÕiëße¦©ˆ%á•à©õˆØÛÝç“k³ï|J[²>Ï©P“+Ð3£V¶ä}ĘÃ?7à“ ÖÆ®ãÿF#I„M:‚jH½{Lm%Ÿ IÄ>ÃÀ ^ Zúm<ãöfðDMŠÿÂe–ÒÆœ-á9 š púžƒû€èu«Îi›kÕ#}[¶’W`ÑPnœÚ´¢Y›µ^Ãj+? T(#â›ì7wÑZ¥}´ªõéV"›êI°>þ˜¦aÊHW‚žVLOàì§sdæ6¦<¶«C†MfayÍš>CžA Út4¶­¼NÞk‚*®ôÿÚÌÅ Rš¬¹s.ÜËv}ÅžïQ1­Ö|©éš7åh‡N"±#ªI?ÕÍ4À’xµ®ÚqÉ é- g£¤d,qô$‰§Ìê Û°e{^áÔ!ölÊt¸ÐZ#‚âÛQÃÏ­+fµP„:@bÙéÿ°ˆ¯Ïäš<Þ b?,êÝâ{¢t°i$ ¤fÐq½ž7i°ˆª&H®MOzv!>CYA2ØøîWW6$?Ñ{êwšP†Ú+‹åâßUC>¯¸7WêÔþª£ž°éuùêËÒfÇ‚Ýïà3"Šf? ~#~¶*æÛ¶ôA½r«‡¸•ïÔ L¾âT$üåñÜÐ[·1±Åß[¿˜u¹©Ö…ôp§–ͦ1È`rhÚ†å NWêvsP›¨}Òp&Mî˦§•ÿtò¬w$MQÅßè~9ë§€""„T†¦¼ÂVŸ\Ï|Æ`Ïíâ tù±y’:Ü6Õ‹€€ÁáÜ£'Û<éq’üŒI(Cp@ì¾Ôy·jÊA7Odœs,QǪó²M¢Öov»ÌÈ•ùi•äkAxŠâºÈ`õ‚¥Î{tAßøè‹99ÖÙ%Ã¥¶ $/¸mªEn‚çÅ¢¸øYL&X2ßLíK¿åã¹gË>‰¬r Ë1檃ù$$‘û{úrÀ»ÞB3%¤÷B[WbE Ñõë~%)Ô @V§åC‚ k´¢tn;jÿÅë[¦ýæ†rUJoWìÑÕwUU®2Äo/SJm\½1<[ÅÀ²¤¥_rëÊ¡ Ò•$§Æ«pg¦U‹,eùX¢Ñ„3®:uÉ`üÔ¸˜œ—kIÛÙÈgYt4 åï6HÜÈÕ•`zœ‹";…šdÐÂê²Ý]†X´9¼øX¨ ÜÎçÔ[ÃÀt@&#‹Ø¼}ÛÜkèXà¾ÈRÇ ÉDY–M‡åÜNµë5ítµZ/9ñøÅ/ö?|kíB.CoÙí™ÀÃ÷ùáWf[¢FÁ9Kô3èy£Úne°ùÃÿ¤¬ƒqr<$2}äß°&t³òwëE@‰ÝŸ¼ È:ôUO„¼Û°@]ª”ŸÃ›+ %ïÛ$~ç—×ÊTi,JuŒ´ qìÇai¸WLà©k{Y®|o m,Ê1Ï[ è­ÍúZ*‚ÐyG>¬ïœä¶d[ð z&Õ3ÏAÌÞ’’M%-C{1ñŠg-1Úä‘ÿâª"ueéG®¾W;©ƒü͉ýñ NÙRéʲýOñí‘®`i•bÍ‹,Þ9Úðʵ&f1lÌJ³§—ýœgÙg‰ÿÕw×^ËrÝq;÷·ŸÒ$‹\ØÜcOO‡úÀÆ.%Á¤ò­lbIl2'Û P}>öÍì9'U½\¶Ä<ú¥s&4×È(Ë—-ú6§NƒÖ[Ñd”Sû&jó/RöL3Ç[´å6}¨ÕÁÑÿSiâ`l—\i{}#@#`'ì‘0ñªoâÇÌ×ì¯^¯²9ë¥L×Õ?P­^J6ûÉÃÑd gzýÁÎc/~ÿÛßGÉÍ[Îh’Ëg3QæX$òÅaÁwç²ú«©nlÉ·'{ÂÄI2¼¤áͯ¤0pLjFõžìíÀ*EÁµNxäzmèôó#hG¢Üpÿ‡AšªEÛ(d$CsáŠ{}SlPèYg]ôRÚlºá½°oMkq¬Ò}WûÚ¢D- ›‰ax"ù =Çrþ›JF?ë€+ÆòùÖèD©ðÑÝý”Húð]œ£lTõ ,Éü:ü¤ÆTucr¶†`¬M Àe‘÷É ¤Ä–'w’Þ©E°#s§Š”³ÂïË3DCÙ¿• ÿ¸,ÌÆ,ïÞäòì±m*!ÌjÕsµúûZÚ½óRç¤Ïöš—ŒÍd­l¸MXri`:õ±õûüNÖºôõë)Ê^Ãë«qÅ^¤6c\ÙH¥ì7¤ªÖR/±~ZàÓðO æäà mÚ²¿kæß~4ı/í‰|fL ‰Sze-—œQ/ v€vü3CÖÓ½s'ÙÿääÙ £€mò%±Û¨‰› t”d«Q#ù˜æ¥í=‹¸.°“—»Ük×öy4gÿR8ÝÒÂΧ!ûÃT•,‹™û¿IF¸ê ~ Þs2ìÓ•o I'ƒC¯r ³\,KË—±ü·‘¼¨lOLzô |üë`ÀÓùD‚™9”ê (XPUÕ¢‘ä„ä«èÃù«Ý4 ‡â»3,‹¨éıþ!´ÀÂKåGU|6P\²xKvùÂvåT’€"ò þ§ê DªŽ”‚0W£F“eäêíOfcm_S#xwرA5òÐ y Ðì‹”6.É.() €æ²£×}øPsì.kåRA쾉‹ÓkÙÕëØ½é«ÍVÅè&æÝ“—|¤RÜ¡Wü"O=)á—I¾)ÿØê ê8Mtx¢"›…›Æ«.Yƒœ4芉ÕIõeK²ÁsC–ÒIÿ{CÝþl„3ÓÕR_ME÷¶Ÿš!ðôtQâ¥L9V.|8Òé›\™¯>-äD¿¶Y“ô& 5KPÅàDD¥j›gÁ. Ãó5L7Ž¡rûš E£‰¿Ì Ü0yºÑE®Ó}¯©d;.wžWoË<ô-”β01çho´ü¹Gad!÷Y˜ßTTr®ÖzøZ1„»{G†&ëô»‘Z©_ðODïMjªþWŒtœzHV¨þ0Wí Œ«>²è'ý>!‰~35gn4ºÔÕÓÇßãHI]ž-´Ž¼3&Ä=ùaê!æñÙ—‡0ÑJëÇPôºuoSÓ(ºKœ·qÖ’®“³kšûèÒÂ%XÛž|¾¡a.,‘Ö¸ eÑ·*ß—¦Eƒÿ³**ñ¶6_6áİ "5£¤ï5ybïEpÓÚ”}* V‹ 'øXžÂCŠ}ÓϸָílsDXRé3‚à4cBÚþªöVXx³Ûí˜`&Lž‡«,Y^†ÇçÌË¾Þ Õã’¢úÝz¨¢:Œyû—óU•¬D9)AÔ€ÆÆ]Œ€èBñöØQ·ÌÄÁ1ÉX|h)<¢L©iŽÂ-:…¬ ±nXuÀò„̤N#4F?z?\‰üU6½™HËubs˜å6„¢W­éËY×)! ‡Mú^7e9è/‘°¼Ãj³šþ£ ƒÒ@VîÀbFñið¶ìä ®‡qWuBGãóì`ÝòÁÔÄÜ4?ü:ËŽ£JõV¡}Éã"ÄÕpzë11Áw`Á¡€¯œÖ.D­YçhÇ€z µ>C)âHÙ…¡ûÙB\¡6¾êöÚ œ¦ Þ=g‚–»…ÚÌ×-}N^ õfgüt‚ Äi½ëÅ¿Àà uðQU÷79-E_¥•k1”&Ù/ñ¹üàWN8§3 Æ¡”¹sûJÄxxÜi¬´û$¿ €J$ßü¡9)²ö }e;’”ä PY… ùÌ>—éîfOʆå†[ÔoŸ#dýUq«Õ¤ƒª‚èÀY©(g†Ú4,v¨·x«¸Æß&´¼%{—¬c-·'IÉãÈE PMì©åT'z:"Ây¬iñ&›Æ$Ï^oL¥kkõ¼c\™Õ®h`5¬Þ"•Òf8‘Ïßû~_Ú¾l‹(,ŒÿØB¯¼x+w9ŠGãÞA©`^‚/KR»ÒŽ~]Ã%ã5&†òÂpžêv?§–þä(ðëöÌæè$€vû¿ŽP¥… `rãX¡{Q:¨ñPnWšüfÍõ÷âá‹…ßèúÆ×‰÷§ l=m9«ÚðS6[• +dúª™¬Æ,ƒÈ^’Ë÷š‹8h…ÎÁt•3$": ]ƒV•ö¢)+~Åë§j~ösñ0±Ó½ƒã³{ʤáQ'”–“þCnózNlh ¨¦OÎ ( > Öáô¿÷ï8–Z+4§UèñO Výõ uI?8ÐÔUrP†Í­¼)3ÁÐÚÁÒ|T²ö0eXKiž8Žü[$”ÍœÏöÆÊH$&ºMvh˜% Á4È”Pªï­S³–rKÔ+ Y~ûYBÄiå,Æ…fÖ¤t)ØJâI+èÕ-è¹ ÓS&Àd´ *ß" fe,~z:º¢×ÙDç–𠯉KU…aƒÍ±}k¾ã¦­gns›;4/ )ÜJ9­á°ê/U“KzÌÚ ì¼ƒâ•O›54÷Œ 4±Ùoú{qÒöv„½ÄRç@L:éU¥C·«P5U]Í­›7ó#'è÷ùPPlZšü{ ß±î ­ªŸËáËÆ?@ì,?Þý޵ÀØ7Ãn¦,wb¬'ÓpAj%m×?Íîþ™>(a³z!­‡onXÕ¢hCÞÇøÌKÅO´½ðùÔ=`u´É¹Öo‹ôŽmŒ?Qö+·OU{¯¦²„<Â<èé¤2î8kðKb¹+3€æJæI‹»¡ÆeSN÷ÕXnHçýz²°\£™Æ «`±’}RÄ.²ßõZS)÷ %i ¢¢±ždÎ-ÝHßIF˜—ðÔØvB¸’ÃRhŒ>Wä|øÍb³úåàƒ~§™k ᥬ?¿è¡ÅàŸS<Áõ↯¸A»Æ`½»6z…OÙn¢©RRyßÝxªÿ#ø¹f4¿+è¨,uY§Š7ŸJ¯'Ñ(éù-СÄ÷îos`ƒd+TƒciVûGK+fH‹ëwÊ(î¾JŤ|ñ}Ì<៵ݵd[ ¡Ÿ¬u½ˆL¸•ð1RË$à ×¨ùÉé¼îïùeêŒTul‰—ÄA”ý\·¼âM=G²¡p΂bîh| ”ɇ”çÅ‚qîDdí2m¾ív“8 ¦y‡÷:œ)´z¦&¹ëw–jj¶>¨‹Þ2–(cà¡D%Vj!mGþÀcð»ÙWs T 7ýÈ´+ßVLN§ˆæÄût’#ÞÞ|%Èob£­—b¬Qð7¿ÿ‰û¹ 5Ö³ ×Š‘TÝ&}M&[´c7á‹•÷ÃÆ¸œÜšöáX2̸ç@¡Æ”ÜWÜX¡ÏeïÀ¤¤³QÌå("ÒHšÒ¼ú:Ç__Ÿý0€ý’«VϺ £i.EüŠESN@ÖÍwµˆ­Ò9æxfðrn`¬•%eIUgÃa}±è{D 8ðདP=ñ 6ð:ÉJ„öË»f;©öa{§{‘ÿ„G‚ èî? lá’KªùÞDCq²m,í¥õ£¡³>´ L¬¤§&Ý›Æ6œ_]ò=¡DÛ#3%(âà³µªú ÇR&†p²ݼ?Ne¤þ+Â*õݽµxn¤‹õ#\=3·Ò”Ý­¥²Rüó™êÙÁ¡¾ÓÁ øºú{ô3©ó¬üºÒ€h° Ú~´uIºì‘ÚñòÖ-›°ªo§"“‘Dl ›×W‹ dé ˆª¾ÈÇÑîć®kœì* DÌG>ÿšªRo—Ìú!„¥´ŠöÎ # WŠ‘²yKk"QºW9ù²´fÌó¢nÓR†Ë($ÒK:Ò˜ò>U^AÉ6p;g 3-W}ßô<ͨ—±ó¬‹&¥_¯úòäTúY£ÀTÀ9jC4¶^3+3Aû<"s„ÀÙ×l Ϩ´Xá7ãö62ºˆ?ì€î¯¤giÆ$ç»C‹‹±¡d—¯$~™ÃŠŽ4™"<è]˜[° Jæ-G•Hüý¬ÿâ»%ØiÃW8ZЬ‚^†qîàÀ®uÊÌ ó:z>à Zãiõ¯°–f†j#D .ÇD¡ý皤 ®‰5ÿÙô­’)Úl؃wõcD.÷»ïîƒÐ wCP1ø³ÃEÔ¥¸ÅCÎ=Œ[ŸËáÛôà­¸«åâp½êØP{R~¸™®«ªëëB£°ÓZÙ¨îÙ#-œ¤ÜñéŸ ‰—4U´„ ®o³®Å½÷NºÿlÖ1>]NáLxÆ'H—ŒóI3,ö£ÃŠ>%\þë ìA֘͞—¥*kIõáºóçî‹‹mŠ] áDÖvå C6þü3¦ jÊ]qb½Ø¯2Ö­àg“!?@íY!x~‚{¦ÇG|YX€•9+2ç=ëÑûäüò.Л<H¾­§ˆ¹)crÂÔ£¹Ã’VÜn2I»Ìjö[M*ÿ.Õ¾º»âKú”«%w¨/ô™0ÀzútX?Nªö˜"ðj|ÃAÓgu\ðê´IŽ…ä*v%­l4Î>Ñ볚•!›šÄ†ÀÍÂ'ÂS2Í¢^ÓÊšqÇöÉ{äqÿÊ% \áze•¤¹¸-N”›‡±'2RLƒmËÿ0r®¸O–½Q»j¶º…R¿d®¼KzÖ2C´t†5%œîÅYt‘à…—°Žt9ÀkNûºm|+ІñšrjLqµ´™ ÒœýtE \‡–àÉòüý"¢xâD†¦ÿlW{<üq­ÿá$—²‘Èób Áܤ¶D$3"ÏÒEåPÝé$K3Q¹[‰Ö(t¼Y¯ì2Gð&z*¡²„w—QiwÁ¶Ü >ŽgKiŸô㢓ó—LøáæèÁï:Ö9õXмËéõQT ˆŒnná¸F¥¨‘},Ã`ÌÙJC»w<AûlYNëŽ ¡à.0 ):pûÂn“¬ëÍ¢§7=fï”GÃ…îéM"b3 ã‚ŒrÛýѹ Gw¦>ÌÔ«ûN™ÁÛ‚¬$[‰øGŃ!Ôc[á¾84œP˜Ä× 7Ó»OÊ /Zj?Šzª(é–°½¶2{@pý8¢cÄ/¯†J·p¦]P§²D@qØyVð!Vü|õèw\“é½] (! 5ô´Ï'þ–ƒ³ÅxutÇ€ù¬wE¨“c#§:‰—Œ4rjÆ\¿ÿåJ…àÉåþ@C&˯Ÿ‰çNhùqÕR¥³ô¹É8çp¤GؽYÂtpü#=_4• ?ËPTžE*õæÅ6¶ê|Ú÷>´"^gRù—´G2<õ'¿¾Ä]<ã ðA§Ü$ª`"_ò„2˜ÿ,› f%HŠ» yôôBÝoýQ·Û‹¶"QÝç $ZJù¤‘ˆ±9OoÖõà´;†Ä_¤ôïØ´p°Cv7]P$V©T;]¸'õJPÖ+›ÏýÖäìZ ƒË…wæ~×ÿü«øL¥æËǤs ëcß$cyÕ¶¸ŒßET73„™);Úɤ¹wÿÓ;³ºÍòµšC%ÛfGXÁfb™=*ñÎpF|÷ô`mµó5 éÁL)Š_;Íb¸)Ï´ÈŽá.¹6\˜ÈÊÛÃñ°“»ŽX\d¿Ââ èŵŸ 2Ø· v–’öùOZØmÁÛ_Û]¹R…!¸…F~¬ßŠéeš HÇ™ñ[…2Ã;ë§”»ÀwÏ ¼e"fp`j•Zz´Tæ»Ç¼uøÍ˜!ŠB­÷ÇšÕÂ_v~‡™z\Þͱ$#•YîÖ-VŸù‰QŠ€|#âÔéÌ£f>2f®fg?Ø £T°è& ¾»b—OêÊí«ÿô;½Âð16ky®¿ÅKàäÏ ÎOZ‰Õ0ò"1‘õ~޳ïëì;H÷â;×NêÏæ*$>‰¸%ê|~È-ŽÉRŒYmv±žMj݉§Š¡E’’ˆGðFºrkE$¹Æ©Î$[]\éÈÖÐù—ûël5.½}zhžÚ‡vÀCBÁªÛØqÑYJÉ´g†¨”¯> _—^c>C²àf?õFšI=,[ ±µ îþ„éusðcf_®€Lì`òé|¬m‘úsyX˜a~A–ó]ÅFR5ûM>Gû0¡“ï€L+êu(òsÄÕjmÑEŸç/F|\ñA ƽ‡ú¦º‚mC>¿^-o1M‡€Í‹ïC)2%íù l;þ4º_ ©˜ó_6×ÁÙ$ìôB’ºD$p‘= ÕCýû£,fNÀ/¦ã%z¥”·‰DÝY󼩣âàÎíGÈïš½”Bü„=9I¤€†ÚÄDDN{ù}ØÔ÷ЏΔ¬6zj3ºr. `3ö´å¨çD“ý¹™9l“=Ýlt飭½þ,:~ ðY“o•ÆýƒÊ¦yVelÙž‰«ª1V'ÂÝÅÉ$ÿöÞ¥v-“:Ëã|4Î-zNIf›pQvŒãÕ¤öÜþS’LÕNíþÖQð-|Ô.×/¢ô=ŸAÊÔטŒ8!ð|—«y¿íŒ¦êð*Œû"ùç>rU‚¸t—XÃs—o_|¬4€ 3h±Ö«ˆÚ<3×6ÿ;Û»òàR”ö±ZX.Ée5éÀ{"Çn>DHñHÛЦ4®ŽêO0îã¥x’ŸF{ù¡A*:X5ìÍÈ3‹µ‰—Q‹UßkÚ€ƒÔ“’SÄ̇¹ôD0¶ÍBH1Ëↇíì@2ëjfÚ—Üúß±—‰û£Sò^V­ú;EÖNËÅ©ºîäÛýòÜ™­s—¯œ¾K£ltÚ¶/“yÖf¶' çiËCò\Êj^ô&A;û „`ž®a©3üxùT,+@}¸fÇ@Á×Ïã®ù‘°1Sdž'¦+¬¢>ýÙž¨ïʲ$<ÊŽ‹‰IÃr ⻨nîß%&µ o€V$st¤Ånzûnö¿õAI¹ ûb¡7”Ü4N >á@RN¶Û ŠÜ1<«{Ž#>šùnžU¹¸FzÉ5¯ßº´aˆ,=.´ª%Œ·yxÐÎÞÇTr`ó'ÁŸæd5²~߉­]Nw2¶B¦uþÖØ %#¸OÍÛR$›Ñ8“—BŒAw•ÜwüüfmÜSmEPÔ6E %)'Ö„j5™<¹óOè!À»ùÆá×^B½ÓDæKß‹)Ùi' 781 >à ˠÄЕPÎ爲€?o%¬4SÉÞž+ïxxz4ØuüÇüO¯j ?¨¶WôÈ,ÇA[¾œ4„Ð-€ˆÀ~ó£¿Áq…é{yœt¶ò¡”!…f~‹5¬Cϵ“AJù͘~ÄefA‰†î€n Öy< ³æÙvqº´èÒº7¬ðâ›1ê Zâ÷ƒÉ­5nÌPÈç«È¢#hD-û—¨ˆûuà#ãݦ„¯öÃ`³üb[ÙÆ[#{­§Ÿ… ˜¡ 6B~Ì+ñ<¸]º|ú®¨ÚV?—êÐjŠ N>—ÄVD)ÄÙó¨Laß1)U†CȈ¯1¡o镺ǚS'¥ùq+WÉhk½ÑKT2)Á8¦ÜÿÖHˆOvìgÚÿÓ_ÃwQ ñqüÍmŒ}W(gZõDÓk—×"¹}ÐõÉ=dh_×ñzÓ¥àömÌLÖd”yö|4¹ýsò2Ð3ÚÐí¬W 擃©i‘5ä¡Ô° W°= +n(AÂÑ:ï…¸ [žækf0é]à(5é÷eñ‰úÌöýF%Za£¢pÍ VjÃÏ$~Z.s'ÛœYÍÏå ó,´Y«~©€å¿hZvYfF…1§ç>ï'*;äA$ºùPwÍY±6€’GÏ´ôUåø”fu`N/ëuqеRz€ÒDêÓiç>æëqÁ(r³QM*©¥n²&ìZSUm_Džújõy eØñšÍX00Pçl“*@ÁÇ‚Ñû£#vÞ) “UÿîßS1·xüs# ¬nt-U)cpé€××֢΂}F¹óP`‰2£•Q¯«ÏÓÑ—å,ÝÁ+ÉlaFZÝt xS¯§‹¶F~uØÉ)œÓ5‹Všµ<ÀæéP²1ÐÌÐLh±"&S6ÆP™ =ÂûÍðz˜%ߢ?äVöìäÒ^Ë#ud䘽¢Ñ¨1\}šÉϼkéu3ŒÛ87åséXM '8R«¤CÎÓ=96wxÑeÁ`¸ž°=ÅÒMI&/bv¸§Ü.Ì ±rmlñ;Ë` §Ê®„ýE§ß2Põîz{×pFµ¨ªYÉÁv‰O:ÿ¤k #6ÉÂÒÊ ®¦hH”qøwÂã—±„Ú¹ùâõ£´Q) ÊïÎc/Ët·ØŠ}ž÷¹”æ,mZsÜ=BLÔ)X½@(pFG«|A×2£: ­ce칸ǘº1}žÜ‚í&Ì›"¯ÑÙ é#•‹µ#DëV{OW«RàÜþ Έ:ú+þÖá¬{NÅ“‡„:lB±žïá— è…­E¶,kçÛáycç/VÙ$é+–€·«“o¢ è—Yí¾· …[2VuAé°'2Õo’â#‘À®×ù á< »Â*<Þ•ñŒð †Ýb¿°(ïw…,ÖÞòwmä6Èɉã²ÏAïÈò鳨‰¤ÇÝ½ÎøÝýAO´²½#Úqï šµ„~¯NÁ„,ÃA:W9˜hf ÑJ}’O‘g]£%ºyZùÉ•çÔ3–þ·gðX¨çC£Í”Æ¢„K:Ë­C²)rµ"ÚœÌH ‹ ªX’Ÿ­s'¾©>hÞ{Þºfd¨4ç̾ÅJX¸÷m¿µx=³À[XwúKxåèkà`xjvqF›ßÚÕÓ¬´mÖjeÍYJ+ß‘Ï^îm­Ü®œã¡lWÔÜ[ˆD.fdJ¡†ë¼Î¬uâ­¬¾7dª>b]DÊòlâžÕó±¡5Ú˵N)=»b)Õ=×A¢¾øÝ^˜Y—vwmåUÝfê@ÃZ1F*¾ XñÍ£š‰RQuåÂ"õSE‰egîS'×-·y_jÚ!mz“’IÁ²UÁùñár¸Wêú@JÍi2X¥?˜Â©5(5n ž[ís²é. oîB"°{ÔýŠZï™Çµ‰_Ùã#ÙÖ× ²µ…%©~£^`†ÒDŒ/QÃŽæ\áCØb¯W¥Èñïù¨Î÷91¬N72Ö¾ú¤‰èxêŽR¯Eƒdó–PC°ÑPN­a‘\}c¨Å{ܼ'¾¥‹y¥üÚˆXö×~ÐêNwºqÛK¶º·; >?.ÒÞ¶n¹–F•D)A•Cβ9Ggdçxß™%~ÜOl€ªZEÛõ¼Óq„¦«ûýÃæG,¦4x²b.ĵî2-5c ­abuÖ o&JCf”ÝëQ^NºŠÇz€ú»ÄkšžGÜÔZNÀ¦5ÁºxƒÔ’¼¾¼2×n)˜»ÚKE¢dá¯f‰ÛÜ¿PçØw¢;Õ,ßá¥L!⬭ƒÕ›‹ð×y³‡']Äa](ÔQvx{@ï½Æò €¿º&ÀËj'ÜQ‡ó*þªž-¥ÀSô-mЃT5 t=”‘Ãò;mU½±·&É4Ûðwî½w%LhûÔ%¢ëÙo”dÊ­J‘À¶{Ýð¡ê<ï<ÓæÈêÞúáí xjÖ ðoæÝÈ7 „Ÿ1zâË“w žÛö_ùÁùpè°z¤*_y߯|0rÚÌ:熊ػhãÛ–òsÌ® ýϲmàRÂi*Ñ£X5…V»U:›[qÁ´rh[;ž8êù;7ät6Áä+–bg`a”ÒY­èrY§l×§4I2–LÖ ñ%xQ^ÇŽ°éÃh¶f‘ÔœåNcx=i<Æk‰•àäËhK~‘¥¹DΗa°D%µ:Éjªw¯?#¥ag ^w÷âýŒ1¨.~qzz”婈içêÚ_ÛÈÙ+ 7#š6áÖåm¡Ì²ZêGºufCb^»D< ÎZ¦¬ùd;ÆZN] ½p›{Çª× ½Ìe Gø”…Æ´Dú~d´yûÕžF8¤ó˳Åü:†½Ôn†ÙN–\ûOL6ÖñÝ"5¡ÜŸÔpE‘ †Û}A´H(ù}ƒ8²*Ò`Lß°ûòRïJžȰ¦#½5AOsvJš¼ÓÍÚí›_Ø Pr#Ú,jK™±^]ëiUÆj´ßöRºiÐTŽK¿‰ŒÇU3ƒ™Ø­]¿¤vË‚M¿µ[zƶ:ü*©¬ZÒ×ig¾ZëÍVµU›V¿k²w(üÌ ½»a¸öpúš'ð¯NYóÙ*}êþy¬6”šÛ¾‚D/Ú¸ƒÅÖþ÷:’z³üýdù™>(¢ó`¬_±AÝ›DUdÍÏkhô™á}Tñ´œ\˜Xõœð|¡±•|NlƒxY1éci5ú+rQ¨óÃ;T(*’ºÜ²q–6è)¥¸‹NðØlÂ)þgBïhuä¯=³ä éâ-½®VÏ$¶Ö,@ÓhT†¤¿yÐ¥@ln?ئ{O„òñ™Yì9¹¢sÀ Î@³’d·ÛÌ#Fø%ŽqéËÓüΜƒgLõ 0¨ÐäXÆV)¹Wä¹^÷§°ÄÝ‹qºx!AÀ»kË4”»U}ˆ} øýt:¥eŸÍÕòz´xx‡­Ù[æpOÓY]ê•‘÷‘{P«cGãVKÞ²1Ÿ>¹½«– :¬;1Á*\äË£-ïñ°ú5àâ2bmëÓͥ$ Œ7øh5×ïFý;œ«]B‘ú¶@ å :âÅóÔåO7ž’NÆ:[½<€ Õ¯-ã>oÜY®ÇÐç/ó ujõè&º³‘à˜YÐ3PkvÐ7xøœ?öǘŠú çP¤‹Tb ðæUöQŠ…rÚkµ Jp3ÞÀÆ›BbZ~ÚÓµC½8´Š-˜çŠå²¸Q)E0,Lðw%„É™Š#³PEPì\!ÒE÷?8°ôG,ò&^öÒidêgÐyœ˜AÔÞe‘š,ÀD±bñÎï^Ûzp×üUxb«Zþ{µ¯?6ßÝé<*à)WäÄù¦rã%…Xl— R1%¼ ‚{” ò<Ön¹‚ßB7¡EÍ”‹è–<Ë ˆôö}AY]ž¿Ê"¶Sͧ¦NlïÂ…ª"`=('Pœ¶Ù;“©7ÂÀwD`€T*˜¹Ø‘å7èq FïJ»2ˆ0»¼&Ç-SdM>@˜Nˆçc+KÍm‚”Wi毿ǰ˽RÈ¥O‹³\ðcýè‘Øqü@9ŸC)ã[Œ¸ãgR"ƒ~4˜c!k¦ƒéQõ®ÈjS$Äó8p¾\° ͽäìs¹¶r Wx«±Æ?Ø“*]# û3çÕóÚ(¯ØñE,kpœËŽYÒPÑAºM©ffôý(×.òGº,<ÛÝ’2LJ;X@gº êÏ^Ú¥>/ãgúÉ ù0Ô2ç:#Ò'å „ Ú’–d÷r|o1¹¥Z_,n¥Úæ5vêÖöÅœ¯¯át}ÞT> .^¬¸µ†¼ŽïrdÌ à÷ŒðÉûÿ|RV ÒGòÊIEóâA‡ ˜ÃéÐû":†Ô %“ ÿ"´ËbR,¨0NK±Ë–(,"lê..¨b[¹Þý±ý‡(ÏG¡ƒÖB¯ð&R˜¹çT`~‡Ò¸áOˆ­f¡98®SÁþRÏ9p}s::rqMž ÁÃÀÄžSZ–3{írE4˜˜û99¾o?­$î¿G» ŒífÕ®éšÕªèºËÈÌm‡¶á–ÞP{vÖÄ2ÓXíºí‚…qzˆØÓP„Ò ¦ùëšÝ†ýwI½ªøÕ![ðJ…¹‘wsÌc+rîÓXJþäà÷u®ã›&«· 2•y/çÔNmÚ» ¡‡¼RÊ’¡`zg•x…ú,¡uf÷¼ÅyšhajZ_¸~ÂÆŽMâó¥Ç•¢~ñ4‘”•M.àŸ{ÂW¶^~>hŒ'Fw4~ÂŒA©°îB”måpݪVöNŠŒ× •s–‰¹¤ m‚aÅ·/9‘èd[“ÞècO_,Ÿ†æ§Òåw¬ÑHÞRÍEhy¡†™f«#É“­zÕsÖ,­Ø.;˜Svàp ЫoSÐjÉhÿV@õ~nÊJ(HàÆ¢«|¨ax;ùÏó„áT!*ô"¦4 æÌ¥Óh=™ýQϨ»¶ÒʈTã럽ý@þ÷Žïr4w…@·að˜)”õæÈ¯ Í.`ªò}Ùûǘ¢ÞBqY2…µä˜:@‘JŒ“Éý¸q$Å›ëÔCIºüNú‹Æ1=‹œµ à:+€ª@ÍÎ$Qï[ Ë%oiüµ\¿_râsŒ)Šf^†[­wÆ RÑ«w¨®•ȃ¿<’9Ñ!äÈÍ7›Ç¯î›þÑ$rô½ü´ûÇfü%N{¹¢­=^ «áxW9,›ÈŸ My…n@àh»×¡^-h`85Q5X>ígq|JL ij§ÈØïÝÞ$¹€¡uäi""a-µ‚ìµSC_3èvèpJ¾GªÏ@Ÿ0é®óõŸ9¦áj÷R®Îvõ»·†nÆ”p® ѬÈ}>ßÏži?Ÿ¯Ö¥:Õ;[,cEí‘^6ðG­ 3+0*ѰäèSn/A¶ÉïÏôÍüãá D…á"µhy÷u(‚ž4ÕáÙU9;Lþâíð´K¹¦ÌNéß|{!È$L¨®8ǵ/%]{ õ ×°yq÷ì¡eø« °\WhSþÐ9~2‘½˜mÉÝ3Ú剜±Mq·•½”ß(9<ü ©ÈJ¶‘t!„²•ʸz)‚DVX,¢¹lúíqâ{o6úÖ‚8ÇÙ:ò‡°u}ï€3ƒ.7Ýô¯TMª0ÈËÓ‡À’Â1È/ム*Ù^ÌNW¡ê]Á†ê å_Sÿ6–ú?jˆSŠg0 3¬ÀïòÜŸ‚_£ö×]¼<èQxis²xðújÊ„çN¸2ÊC¾að"uµæmT`c¥÷b°—<Õ½§ UŒ‹2îÃã}r—Èd…K©d:ºµŽºmLò÷,î‚4½­GðþYêÉ„S²²¢¯xþëc"£FŒ­q“4! IÓSg¸U->Œ¦96„ÅÚ‚Htl˜E3š@›ªÈ1¦ ÞQjGÓÌ*fg0½4“_8¡¶BÏu·â;›sÒ\ѽe¨òšR¦.îPVwEýß5m:ÔÐÜ4Råªfrÿ%ƒ\Á âbæõÂÞž=Mq×[ˆL(õò9ÖòQÂyÖÄÒÕÞæYrUÜ]9ÌûœB4LƧüãò¿`NúR0úʱ?ÌfvKA˜×N°“'‡¥3‚}¶çÙK©¯fÓ«Ú÷RÌaÑÖKþcìB§%žsMÆ ;-ë[cÞ‰¶J˜hã-¸:š¡s{w¯¸U3c ÀQXÖ*ßGd§®'œ|cÊÄyçàndè“âÝÙ5’åmÊ"ሪʱ­ ošÒí$\°Ù,¹¬Ús8Öbç£mÏ¢ûƒÌÔý}Ӻ딙Æ\Õ:«ç³Ö¼<õã¢Èšf™Üä_,4Âæc,©Í;?ôœÊ8x0¾Ž]"ö¦ŽnD Þ‰x?§#ËŒzÝÕ¹B£]áÎ~‡í"î Ž·¿ã` VcZ^ÍY¶æ¶¼Ðò‰…N`ë‘‘¿ްÍ/ul¾p–w> 0 ³!âP `PŒŸüP bÿ¯P*³d/Âs5àÁˆ¡D âÈ‘å|&¥|‰Yv4e­§‹%”˜¨Ò!êkleô(ÙE·ŒœmUˆ î4Wªë¸ j_G-^«9zþ÷  O*ªÕ£6õÎs>wíq}™›…ü ã:MiÙ0E@BÏ-îE`Éø±ÆiWžPL„S¦5®nk@i ãdÖg°ï5yу€ü£ÐPÂnœ×ñR÷“V°Ñ€{Rªè¹kÐú\h¶Ø8™ªÉ¨…Û±x,CÇj±Î“ÅýçïüæT5sîGÁç"8ˆÓO¥Ø£L9¶¾òB„"Ç«Ï Dek8„bÔ(ôõÛÒØí”àÕß–fï –SF¦yÐúã°#WÝœ|^ØLeàÜ/¬Öï¡ÌoG8jEåëÉTL„Ȧ kÇùþÀ³…ág}±:R5Ë:㊑[.mókHRiè ìÑø<:ÀÖa14Á¨~[I2‚ƒRâB’R«g•Ïò¢Tô{ È<$.ï-&>zdˆ¹—aõN²·]v’+ÒDë¡>Dh=/W¹k&®ÉRJuHW¡3 M„UB{ÜzÚûÄÊ5ÇVPâ`Ê`+#î-;SXÂw¿t}ÌFv—øwj›üß"cÇõŸ\-h.7Œ0‘Hd„’MA,€'¹›KæšWÏWâ1©¹Y¢¿N…wpA%Y$oÍ%^òaéÓõÊáéqØj§:à6~ €7šB(¸¯£žTäíŒEzˆ¡:W³½>ôîÒ 9¬%Ïáo2 p+4r5,ÌõÇTzWt7´‚9—Š(®¤½§¨F5XÙ½U-鸰‚˜W§úÀmt0«ã¼Œ •©§1c ·P†»p²Œ ”äø¼–Ò†*k»´‡ÈR–ûxGMáð»ÊȤ˜×‚¥Zܬ+H’X±ŠÒÈD¨ÂZW’²yègÉ›«Az¨3xDõÅçÔ­E Ô™+¯ÍQ9OÙZ{,AUd*Íëº Œ½‘†t¯sÁo¬§!ŽôxÞo¿”GüZ¤êíëz‚~Í™Ðõ{óÄÛÇyvyìž –zîƒ °Oéé;ËꊀƼ›±c·ù ì0‚èµ@V @bî„ É¿¸šžI;—8ÑžY™ûhÕiÊHË…)Ûk¬ódÏà{`o?ðe ñéC¸¼·üÞ»›ÇøžX@ŸÔüPê†n?뤕·s(©æªAÏúOùizXƾœé*q‡y.zÈQŽ´Iú¬oEu¼ùYÏáõÝâ'hšQP±Ò)ƒ¹¸E€W¯ƒçù† |à;örÄ ŽLßûƒRÒ§?e xÝÓÀò;§›a|艆¼<%eqåÞ#ù‰TìyÎÌCÉ@õÒó÷¯Óå˜wüL°¦f Ó<Ü_rD*øªõÙ¦¥·/!ˆ¥½·Z:LsÖ£E=uÍh€or:P‹?IDwš¤UW›éE‰ `ÛxË·f+}pð¹n¿#H¶IS­É0.²Ÿö ïþ]¥n„¡”¶¸ÎDô¶y[W–BïÑ'–C~o3^{5ä¸DNøå%ŠŸ“Kto_QQ%„™µñ;„ÿ^ÂGƒëWÈ6®ÄHžÓ[-=¿¦w‚ß|šX®î®“Kœƒl >ãà‘íIµ¨(­SÝø¿ï•9Á¼¿É>¡œD3±ÞÏú%À€óº‹¹Äsl¸Â¬†‰ìâ¯5力,ÓºÑ"‹ðÃã_ª»'ÒWȱGŽõ™Jp…œ¯g53 2?")FžeIЍ…ߎ…}ñ¸é ÑQŽA·ÍÕ§‚"U3×¥Vî ÑËix̦ÐmÎq+UN°sÄXÏ5e}ÏÓX€!úã1D·–_ Ý•½S¾ºÌˆ5~µ}*ÈéÝÆòP¡N»Ÿ$YžBÓ‰R׌q+*Î ²Ø‰­ÒH#ééª,b:Ö§€ˆÙÝÜÌwÕ,ÓÞˆÎrØH÷ݘø~ý®½Ä‰ë«­ÓHÀˆII'£½l÷MBðY¶©BgdUmìü7v"ØßD[·Â²çIÀÜi!+ÅýSr3\$}"ªÁÖªÔ¨IÒ]á²Vó‘äHí¯¬Ÿ@⢻£é”_k4“P@ä{ÏÎàLS §¾¡{z˜‡ 9”JÜdU5è¤òÝ蔉ó_ÔøèICD~~IV›«ävMÄŽp ;*—þ}@Èbª]‡^üŸˆÁÁÔ|Âz¢Ý¦úÍ'«H,ˆ®FÑ]Ÿ€õzÞÒéfj”ر“øoÙöDÀØ5sñnbƹ»*«=™ò•L§¾A ÈÖÿwâa¤Œ/6¶ÇöÚ ÇHðÉŠ:,t“$Íp¤´÷‚‰Î®2“ŒØu1;²1&ö¤³¦õ ÒÓO³5D÷ËÿB@ïõá­nÊpòrW¸»á¹Ê¯çYÜÿôù×ìÛ<5)Ä–<Œûqòzx0Ø f!è T (x)lø’Þ3Õ#ñy·¼;O(ïv ÛÁr=ßKŽà=ž-eÑjƒˆn=od”C~Pã/Øñ*š6ñq„Ï>ìñlܨë¦U" ‘•ܺ+ƒšU‚íÅÉÔÙ¸;Ù`@¯(çL•õ¡fbçê ®‚}\íbžV«LÐ ÓuQûlB}ö?¥% :'ë"%’øV(ßFOŠœA†¡¥Vø´å¤i'팖(£ºŠ&ªñÖ&²ì4 ò¢ãrà…÷Öµ\*Cç_gÚÞ†V”ùÛ‡ ¾?•¶5¾Æ†…òHE·{j´Ó¶Â|—¤£'½ò$œÝ(ßÊ­gˆWÝç´'ƒ;J6†:OpPà¶ݣѢ—«¯´|ÿÀë Z!Põ{;’: (7¦WÇ8§Ó´¦É;Af1À?ŸëeÖoSìÿÐ{V0±õlÝÓ‚×,â—¤û¡ì9‰ãÂs…™×‰Î•Ò$½ êG2×§ÎäÈŽTm‡OæáÁY/ ëV·/\sRÃä¬h–ÇbŽ¢ew•U—åþ,LQ±(øð_5*Ýí¥FæÌîÀtË"â-Þ_îm]¯ÎïÆ «ÐÝ®+¹– `Sîm7ñ*CY*ÿêýHá–‚ ·¶¡ªLQŸÚìÿ60ó¼¢¢C/c§¨ýÎ.u$¡^1y|¨QUù²E0…ƒ»ÚGjé»wn@Dø±’¦÷ÃslÞK¯¡˜u’¶ÞT½sø?ÈÔ–G Àaœ—h¶Šþ¶Ê!EN-0bºé4ñÃ˜ÂÆxžão›üW_»è{Ó(Óý±PuᦧÓÌE|<²™Ë*«_Ô£èÌdt ¿`Û&^Ë‚™¯Š®Öz–ü5¥“ª¯ÔÖ¹K™¼I*}46 :øU…Ì™þÝ¢ð"÷£b¢…î~ÁÿôpÀÛRcå°ŒMVv'y¡aš1/1t©ìj£_ÞËß ñ{gÅDGôžsð‡Ï`wf2©€ ÊåS£Ïë¹{½drrP|õô‡6#Zºdô/?™¼pꀜÒÔl¹þõÂëþAÁÞºi£^ÖZ*£˜£ÚC[Ñ G_å£a;*áðº[!ÎhŽF„e«tZtFàLÎ(ša >SYCUJX›]I¯?(@ôyÅm=ñ'¨òFœ•A]R*oe)³º@sdF»[r®æ•{rK¼OÈØ)<–Ò-[b²aIdŠ÷\%½e!}—{5n)þº ÚL÷€Â0y£¹;‰-µ#‹È€ÜÞ͌智›Fá¦-{ùËèXJ£¸XóøÈ€ýÃMW{¡GÿŒé(œcZ™ÖÐóœSn&eÛU½õÕŠaMªì­1_š"¬‰5&¤ô¸\Ø»±s‡® ´ÉìÑ*&õCËËý°Yzf±Ú¥ásÕ_>”´žï–è¶CÅKb(¾¬ÂÉžèPP°i–8W¶² ”Ál‚,ÿT3þ÷a>pà>Pñ© Gݷξ<¡Ü­0ñàTaHsº{V¬w–5P·(7q¡W&¢½ãuÀÒÚÃy¿ãg››Àð‹$’7'@×›êè&q˜„K=bA1WXÊZÔ㸭Õvî R_{'&† Ç4 µ¼‰-7ôœ,]œË Ëà”ÖƒÂÙ«Zù·²îœ÷"“¸Cs«³*}‡"†9xn*ðõôôOš8;¹ws™RbÝL“;¤†ƒíi2ˆg+ÌÍĬ*Ê;,7tÝé€Ó†ÚøœÒõABÆ(¦{Q_Û«h ÍÄŠà£7‡‚5;;†_Üœ(÷Ç1´–]Üó#1Y$»?”"¶Ãhp4pÌð"hÆOól bï?TP@ûGxÐÑCV |5¦§G\\ÚNu”ÿàs :Ȳɯ| ${µ ×¼e<ã…¤­’Dñs–—*¸&Ö]•,Â{œP½KvwàåÈ ï¨˜ç%rÖÍýnÕ ­ªž­â2tâî˜ë-²}ü¨¸$¢ÖGxƒÁЯ¥ê±Át]Z)øÙÕÄßI Çé"þa‡j è„p“9c0P̆üÄÿ1†].jU¸Ø^Eç‘ç¤;vž»ÈxöRÏW!ØÌ£*BÁÍêæôtp¦8ú´|è Û×Ù¤B2à1+.µë×A§Âù3ÊÛ3¡ BB5Ç…qêŒ ñ“8 X€dÀݵSIÀ=ÏæGÙ¬#–J×Z+™å% åð­® c»º1ø u\ãr"ßÄ„m¡ƒUL /è?`@“yÐÜ—5@Îj¿‡%ÄÕ_õ8릛ϙãîBnˆz”¿%hÛ‰!ZB€uî“$öp0°GÓ4×\‘£J¹ »bKûþ ®8X𲋣¤î¦Bϲžo£ ¨>{Ü$ï°UÞl²—gmÙ¯×Dᬠzá…œ»øz.kÜ·@ƒ•Kåç}«ˆ!B·K)1“…ÌlÄ5@%Ç—‚¼=׉a™ ¦¾ÜG;O‡8ÚAŽŒÝ°OHB¹ª¿ÇÛ,Å’S‹‘“ GEÁm¹œC4m@7ÛÏ 9Ì¹ŠƒŠløz”bDstÞ}È?+Á±;©L#3æ<4D¨9š?™Œ:±Äo¨K¢;dÈÔwŠÿýæxDHÝk1`ÃóN;NzuÔš—ƒñÓ¥L7Ù}"¯B>.G·iG†ï‰q¶ÃÎÚÙ¶‰Ï¨¯Åt4't§Á ×*[à\ëÓSMLìÎ9C^údÃIHB"KŒ1ºý´`R°¯ÍáB¯gÒXÒg(m‹Vi„…²,šm ³t;N5ͦ]øžKö*öD4Õ`V«&3=oœ"‘ìÔp…r2ÞjÓ2æÊé[¬¨Ã>ì#º>mépqY &C²ždÔwMø}wÒmðû¾óF¢þ–s–œM<0DwŸÀ­¥ Ø€–‘ÓÌ:‡m'ÚÜhÒõLÿDÂÒóš òkKà§,1ÜŽ‚%ÖET,O+@†4ËÆÈI‰=¾}Ù€F/ZHdޤàõÑÇ¢…h—2[Œ)òÌ•uŽÍÄø¹¤n“îßåЭ²z —9¿šÅJpè=§¬÷ÀÉ Ô nûOæB,¾Â.І‹!=åçW_ŸÔêddý„E²šà¢óuß (Ç&}°7O5³;ëÀ õI=~ƒ™ëþ˜P”œÒ+ئüˆöÓµRf¸×mzÌf¨¤ mcö5®aSÙa»ÒWëÚŸá ¶Dn‚›`T¸>ŒçZÈ,βn£µ$7ÖýžXm9¥¶aº)ìuÍJêº?ò0 0è&1@°-ÀDWíà ¨ëê嬤Ù)µ H~Ì¢`Ï¡x9væÿ ¾•®e#ÞÍ‘~W©KNIUJRŠÑ÷Ñlx;÷ èö¸¨:èOŽÌìPÑ<¡µâÚÆ$BdèJvàG•u}mÔ8Þâ¾pf-X²¢ö½)‘Íï±ÀLÓ…bÝI)Š]+Î \¢xÎ1ޝQ=GÁ'¿¾8‰‡w¨2â—?Á:—A N…Éò†ÙGgšgh¼ÆØ{sÓ¬9d4A<\i“š=$xyÖ…¡×Ú¾¨yóRˆ\c» L^Ätˆ€þ,ó}þää±g—¾[…r¸K¦‡Ù[]ŸšnVÈ÷D¹F-޶ð#3é-ß ÷U"’«f5_­^î§ ± PΠõ^I²Õ¹Ç{D,_™ˆºÖL"ÕNò(.÷'ÀÓ«@óÖ m°‚T‘+U|(ÅÔý*.è¶=ÒbVõ>ó»‘œuâ¡ÑÐx%÷à7pb¾ž'ªO"Ç£B;N;GœãFy€>µZ$ó´©³hàÝù­Qž'«`D^ïL¾”ÉÁ7¯…ÒtÅuRÞ¯{Pk᪞ªŠ½Ûá~0 µN.Uhüjßfžy!Þ¢<ÒEwˆ Eôÿù=^Õk€ªÃĿƿ6/ËySÛ\A\„z·²ÐkPÒ"Äøàü’®Û*’—°îº'KÐ*žIVgî÷q¯-o°šÏ*AÆ6^ŸÙ0Ì9™!|t ØŠVhƒÉȆ°ÚæŠö)Å ÛÖnsÅ{cBÁÏž†½Ci=Mä­“á9Y÷´ym¼òHïØhÂUaÛÁMøA µ{»ý+j?Ѭ>3°-àÆåä¼Xþ} M«ó`šÜmE£«žK˜99K›”3‹Èa1DâöFB5t?£fé´”I0+IjwoóÝÞ¡³°”`Úÿ'U™'"Àûœo/žãìT¨³4B%¼L߉ݚͱrº´¼ÉRð³ÑOʬÂqþžGQÃöT¨Éò`ßT@áúõBX” ±wâ¯Øí¿(}ÒöåúK˜†Ù.GËLÛ¥¶É¦æR rCk´/NéÌÊE×g¡Å¼Þî#Š$Äof«L›©E~;NÒh[sŠ^Bi e Ô/¿-w@ø_1²Ð(Rað·Æj:ž—Zuûç„ yá³$zx‰F9Šô4kÙ4¯Åwm8Ù‰óoBS¢¶L7ïD}~ ¡,}|ßLm§ðâª÷±ÿaº¦M¯¼Å(8ت-ùK¥ž6P 5ô° ÃÕAP°wgoÆæl•ü¼0A»D¹3ÚL3«Ã5]E¬O¢)Å’„l5ÍÐ:ª±e0ð¨«jÉ8Óé„^46tm¬©@Ul°³£|!×ÐX–Z£¾…”pyzßX¶ª‹¹¸¡5(ûo«Cm&ü2NMÇñÌÎH^ovdˆ’&’Š ïÙ`ºâŒ¨ân SäIÙ¬±7Âú:¿æ`O:´.«Š%RÕjÔ€V§Áu3õ{hÑ¿m#‹°«ÄÚ'½PU[Œ-¼§PRGޤ]JUââg>ñïˆÚ׎BùÔšâ;¸¾–nœ¡ËMySlaôO §K7™þ ‹ÊW@ä@RùP½4Y10õfÓߢ) ÓéæÙx75kKhܶŽXñÚ¥ŒI³½ h?2¢0P Æ€aÓšê~Y=h:š#(n¹AÛå*äØ[ÑôªïŸ“UÎ{m½âQt¶_k¤&´Ÿ¦)ëp¬ åÈ(ô½53 fí5&³Îw6mµå=ûê™Ir9© —\ÁKÆðÆëmƒâèS¤&à8Lò–CÁCÎ6T•˜Û†‰´µÛ0Ð_ãg¦ÿ:ïýðÒ{Ý dE+éöu îÛ4ui˜WdGg™A!|mÄè÷§‡ÿä"™IVr–˜Î_À†Eð¾%@%¼5èå°‘ùx.ÄÒ*Áíæ ìØ1õïWã#£a}4–ãÐ:,*1À ®X~º‰9+`¸#RvЀe€GƒÔJÒ‰ÁƧå¾wŒßûå"ŒÖæÙTLõQ±/e®Ý(¶Ä{K˜’‘ÇG+¹õ¨Ê›Ø‡eŠê¯~öøeGm"§-ÞdXq«O/ga'…»"(j9fe_/óÍ|ò)ûÿäžskŽ>·rkþEv1}7uzCöHUW†X9™ñg=”£k/ÇKS)[ùÚ£ ô¾¸Ñ ùö<¸“Ÿ ê;²ÍØÿ)õ½¯x(6÷]-P2à®4…&ž<9{(1Ì…Fm ¾-´ʘsõ:{‡¢¥LrôŒØCКœáÞû—Z&ÈþÕ m –ïéÂcd—OÕ ‰à¸€¿’š)Ô; ˆIÙʃýžµåm‚– î­Äô"Þ¦ñ0/_fȺ&nÌlHéêæõÒɈ€tsÐÿ:èù æcZuyñC)óÊÿ¯Zù‚LHROIÕJE®m7„_¾þ_€ñ“ÿnq˜evUÐ šñÈÇ|geù¿uìNã“iµdãm(ÇúG„á£F€ÿL:.‹_‘½?/ìÝý7'éÆ<š~|UY‘ ÿ±ƒóþ°UÔ ÅqДÔä7¾þ0jÈ/ê­>ÍáPVeŒlmNÔâzk^\ñÄàë7ˆüÎ"xx‰TŽ«¶´þÜÅkÞP™™ºýýó ­×ùã5 oƒÝ¡v.©Vô¯ˆ1YÊÄ¢˜*d¶CÔć½\G°Ë‘·þR êá f:Ž×„¢l"büÂwUâԘ߷È<•‹dB0L|e…%rõLÜÿ”¸‘Þ)¢Œ™§­šPÕƒ>Mê1ñЧÃI¬oÒÛœP[xf¾Wiï½ÕKf_X±VOÙ7añÅË4Mˆ¼²¬©oQ aXGáƒø[¦:‚ï/œa?¸ÿ5`… @„‚PbRl(V¹ˆŠv¶K Ùm/è] Óˆß¿Öê¡QœsÏo,yA£á:³û†Òú¬ø\¬®´ÖW©-÷Ö¼—ùÒ}:2gÆó¿­Pfà—鯔“Jj“R¬M³¾[:në#¥rZ¹›4”Çe£‘Y5‚o©A®óñ–i˳¦Ozëàÿ+q‘ hëfJÍkŽÉ>‚ƒf:Ô8l?¯§Ëgˆü@6dÃr)sÁp00Kk¨™I±{%¹³ZúqsRÏ^ D ÈvÂ<Äz¸—ò>†¼9o!ì`†´¹ª±Zú†Ù;žT°†‚v¬_²L4Ôœñ;•þbþÌk„³‹B7DÍÏZ†çd;¿ðíHÔS LÜT;ကÃѦºT 6y`',Á©%1w‹›uÌ~¶73«²8mñ3Z­ÏR/ØTNìšF„ò2™L©U®ic#C…‡nÙ¾ìdW´¯^c|ÿÇ£ë®q´  î­8|š7ËkwŠöÅ"^ÃŒ¯N00ÉEý€8~1!Ä/½"¸mø§çð»—új’+f%uòÇcŽF å=²¨@ðëÍ !µ ®–œ™ªÅ{Xƒ—¸†(Ï´È|ÿnáøaŽr+q™! Ù&‡[þ¢¯kÄWlUßÓ¢$•oa®d£Íó/7(Òv ÕÂûIò¹ Z¯Æûư’ý‰‚oao]IŸTFÖ»LÁ+-Ò‹‚-!í‘¢:b•¾¾~~OQ5\Ãdr'5à?(Lõ‹—UA®Þ÷{{i*‰8ºÅ™¥rf±‰°Ñ†ûÿ=úÆ8'/M¸"£A"åɆŸÀÞˆ´lŸ,V¬+¬KYËÑöº×ü¿ü5—!ÚlE¦ûRüá\6űe;þ—A/ëu à=SŒ æ«1Š+yQw\U?­f6Ò^ꥄ߽쎣÷ÎV§ üˆŒ÷XuÉ=/á»À`-‡:5 ËÌÉåeøÏì`¼Ã×¥ ŜǂŠ(¶Øj á †w©sG¸³jØp‹Šø•e%fçЗšÛ>8¬ºS°îvó{Ò§Á¬ùÚ80 ïCJ}tÁ3P$ª±ÉN¿•Ó;ƒj!FW,¦zJsÞvdœY&Ž)´VñêЮ^í©S5X]eî› â(èzÜH•â^«º‰uæÀ6¶™Wvc¿6‹8Ô(,¡ºˆ[ÍÁúMF¯æ/+›*@'~ùÜ´š·œñÖl™H2|~Ú$>m׫ãOtÞv¶ýä ª²Ðâ!¿¾õ}'h[ÜlžíjÝ u9œx•Ðm•¯HàĉrRJ (ã>رU2.Ø0Z{^<Óã•ò*øæÞêÊèº –¢†§f"Óº«•l=S O«Áëé›}i³$¨‰eúxŸý àµÚÈ Ï—Awx;ÉL·;|7{?<lJþ‰˜¾ÎáNwí(&a}]§;ÞÍɘ†þr/ ye×à÷Æ¡¬^BEÉ–¦½¦çô"ÛÆCöbSçtN)Vïi鋺 ¦ƒê³%™?ò¹˜÷Þdß3Ïá€mãlT b(!³l ÏVŒ$wÍþ…bÆF2 ¢Xÿ uÞ§ð"³J¤k¬P‘<'ÚÉE1Á”ó¾Q-¿Î×ħ´X8DyPÔÒOr•Ø`"HV“aŸOнÿÁoüöÛÄå!N–Þ]c±óI7l$íôÔl–Vä~˜¢ÅÓ. i2qaúƒ:Ò®V¯Y|>¦Ã†ø=Ý<ÌûWéøÖ_ÁgVnU>ZØAÉ9œ…á¼[ùïLÛä²;Å\0’rqØeʵtpPrûT²d Ôºj‚ãÏwå>6ìÔH#âÚ²qÀ㚥NÐ×Í»¹Þ—NÖ_aè"õòÒqFýì¡_-‘£øÇ&ˆf2æÄTÒ–b Åz{`c…ás’çÍí˜×v;·Ó j²öá(QàE¼Šª›ì÷š€,õæUMhÔMD_cóÍKÖ¦]Ô}Öþ‰ ÇXQ±àÃFufê>“.£×Kƒî¾(%ª&ˆ cчî”eÝtHCÇA³^_‡C]Ú®U!oç®Ë’Xúé÷º2Y³íƒÑu·St,aÐ÷«¨ÎíQj™âa¾sHKH“~+z[ B8bçëü !—+FÐ1SrÙ’u7´*§g¬.:é%Œø»4Ì/$i°ý ^l½”°EÙz;¦?N9»!0AU»ÌÉêÒ^Àœµ—-`"äà"H'k~O‰‚àƒTks4x÷‘ªòFâÙ3¼`Ê£A³bW=÷sGQOT3`xâ‘âÑ´ÑúÓÉGñ5NA‹¨;Ûi5…_Áࣻ§©!¹¼Jcׇº×DÀÂÆ¼?®”Ì!ŠLœFåT°â#}8€¬݇ $Î,Î*XÝÈØçx6 öåH ©]3´Ì_r–ɉž\:Yä'¨iб•¦Ñ‚~¶~¹Ô;·`2ø ¼™•¹‡‚Á¬rÉe ª@¢¼1,fa¾`¯¸~JF¨”QËÀqb(UΙGêê—Àk|uÔA¤•™GŽ<èßNáŠ|ªRŽÝÅI´P3NºÇjÇ·!sìï¬D‹HSàLã±P7l¦ŒÖ%èg=PqÃhìÒ¦£hóͶk¬7¬ˆ6 ½uP³ã{ í ¾QE™$ÿ܃Â=ù_lêFB›ª(Ez ¿yõRrJÜxZÙµ!™œ>äŸÙ‘Ô,õ¶l/;štuÖv²2+=ˆ/}õ¬bÿûmd‚ɦfÇÜ,Éô\bäÈ–{-&ñP¢âYÆÁQäî~a'®QOU¥¸ íÓ0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark libwmf-0.2.13/fonts/NimbusRoman-Bold.afm000066400000000000000000003442701441723000300200070ustar00rootroot00000000000000StartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development Comment Creation Date: 5/17/2017 FontName NimbusRoman-Bold FullName Nimbus Roman Bold FamilyName Nimbus Roman Weight Bold ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -109 UnderlineThickness 69 Version 1.00 Notice (URW)++,Copyright 2014 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -168 -341 1079 1044 CapHeight 676 XHeight 461 Descender 0 Ascender 0 StartCharMetrics 855 C 32 ; WX 250 ; N space ; B 125 0 125 0 ; C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ; C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ; C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ; C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ; C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ; C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ; C 39 ; WX 333 ; N quoteright ; B 79 356 263 691 ; C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ; C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ; C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ; C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ; C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ; C 46 ; WX 250 ; N period ; B 41 -13 210 156 ; C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ; C 48 ; WX 500 ; N zero ; B 24 -13 476 688 ; C 49 ; WX 500 ; N one ; B 65 0 442 688 ; C 50 ; WX 500 ; N two ; B 17 0 478 688 ; C 51 ; WX 500 ; N three ; B 16 -14 468 688 ; C 52 ; WX 500 ; N four ; B 19 0 475 688 ; C 53 ; WX 500 ; N five ; B 22 -8 470 676 ; C 54 ; WX 500 ; N six ; B 28 -13 475 688 ; C 55 ; WX 500 ; N seven ; B 17 0 477 676 ; C 56 ; WX 500 ; N eight ; B 28 -13 472 688 ; C 57 ; WX 500 ; N nine ; B 26 -13 473 688 ; C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ; C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ; C 60 ; WX 570 ; N less ; B 67 26 491 601 ; C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; C 62 ; WX 570 ; N greater ; B 74 26 498 601 ; C 63 ; WX 500 ; N question ; B 57 -13 445 689 ; C 64 ; WX 930 ; N at ; B 108 -19 822 691 ; C 65 ; WX 722 ; N A ; B 9 0 689 690 ; C 66 ; WX 667 ; N B ; B 16 0 619 676 ; C 67 ; WX 722 ; N C ; B 49 -19 687 691 ; C 68 ; WX 722 ; N D ; B 14 0 690 676 ; C 69 ; WX 667 ; N E ; B 16 0 641 676 ; C 70 ; WX 611 ; N F ; B 16 0 583 676 ; C 71 ; WX 778 ; N G ; B 37 -19 755 691 ; C 72 ; WX 778 ; N H ; B 21 0 759 676 ; C 73 ; WX 389 ; N I ; B 20 0 370 676 ; C 74 ; WX 500 ; N J ; B 3 -96 479 676 ; C 75 ; WX 778 ; N K ; B 30 0 769 676 ; C 76 ; WX 667 ; N L ; B 19 0 638 676 ; C 77 ; WX 944 ; N M ; B 14 0 921 676 ; C 78 ; WX 722 ; N N ; B 16 -18 701 676 ; C 79 ; WX 778 ; N O ; B 35 -19 743 691 ; C 80 ; WX 611 ; N P ; B 16 0 600 676 ; C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ; C 82 ; WX 722 ; N R ; B 26 0 715 676 ; C 83 ; WX 556 ; N S ; B 35 -19 513 692 ; C 84 ; WX 667 ; N T ; B 31 0 636 676 ; C 85 ; WX 722 ; N U ; B 16 -19 701 676 ; C 86 ; WX 722 ; N V ; B 16 -18 701 676 ; C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ; C 88 ; WX 722 ; N X ; B 16 0 699 676 ; C 89 ; WX 722 ; N Y ; B 15 0 699 676 ; C 90 ; WX 667 ; N Z ; B 28 0 634 676 ; C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ; C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ; C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ; C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ; C 95 ; WX 500 ; N underscore ; B 2 -143 499 -74 ; C 96 ; WX 333 ; N quoteleft ; B 70 356 254 691 ; C 97 ; WX 500 ; N a ; B 25 -14 488 473 ; C 98 ; WX 556 ; N b ; B 17 -14 521 676 ; C 99 ; WX 444 ; N c ; B 25 -14 430 473 ; C 100 ; WX 556 ; N d ; B 25 -14 534 676 ; C 101 ; WX 444 ; N e ; B 25 -14 426 473 ; C 102 ; WX 333 ; N f ; B 14 0 389 691 ; C 103 ; WX 500 ; N g ; B 28 -206 483 473 ; C 104 ; WX 556 ; N h ; B 16 0 534 676 ; C 105 ; WX 278 ; N i ; B 16 0 255 691 ; C 106 ; WX 333 ; N j ; B -57 -203 263 691 ; C 107 ; WX 556 ; N k ; B 22 0 543 676 ; C 108 ; WX 278 ; N l ; B 16 0 255 676 ; C 109 ; WX 833 ; N m ; B 16 0 814 473 ; C 110 ; WX 556 ; N n ; B 21 0 539 473 ; C 111 ; WX 500 ; N o ; B 25 -14 476 473 ; C 112 ; WX 556 ; N p ; B 19 -205 524 473 ; C 113 ; WX 556 ; N q ; B 34 -205 536 473 ; C 114 ; WX 444 ; N r ; B 29 0 434 473 ; C 115 ; WX 389 ; N s ; B 25 -14 361 473 ; C 116 ; WX 333 ; N t ; B 20 -12 332 630 ; C 117 ; WX 556 ; N u ; B 16 -14 537 461 ; C 118 ; WX 500 ; N v ; B 21 -14 485 461 ; C 119 ; WX 722 ; N w ; B 23 -14 707 461 ; C 120 ; WX 500 ; N x ; B 12 0 484 461 ; C 121 ; WX 500 ; N y ; B 16 -205 480 461 ; C 122 ; WX 444 ; N z ; B 21 0 420 461 ; C 123 ; WX 394 ; N braceleft ; B 22 -176 340 698 ; C 124 ; WX 220 ; N bar ; B 66 -250 154 748 ; C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ; C 126 ; WX 520 ; N asciitilde ; B 29 187 491 343 ; C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ; C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ; C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ; C 164 ; WX 167 ; N fraction ; B -168 -12 329 688 ; C 165 ; WX 500 ; N yen ; B -64 0 547 676 ; C 166 ; WX 500 ; N florin ; B 0 -155 498 706 ; C 167 ; WX 500 ; N section ; B 57 -132 443 691 ; C 168 ; WX 500 ; N currency ; B -26 61 526 613 ; C 169 ; WX 278 ; N quotesingle ; B 75 404 204 691 ; C 170 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ; C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ; C 172 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ; C 173 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ; C 174 ; WX 556 ; N fi ; B 14 0 536 691 ; C 175 ; WX 556 ; N fl ; B 14 0 536 691 ; C 177 ; WX 500 ; N endash ; B 0 181 500 271 ; C 178 ; WX 500 ; N dagger ; B 47 -134 453 691 ; C 179 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ; C 180 ; WX 250 ; N periodcentered ; B 41 248 210 417 ; C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ; C 183 ; WX 350 ; N bullet ; B 35 198 315 478 ; C 184 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ; C 185 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ; C 186 ; WX 500 ; N quotedblright ; B 14 356 468 691 ; C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ; C 188 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ; C 189 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ; C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ; C 193 ; WX 333 ; N grave ; B 8 528 246 713 ; C 194 ; WX 333 ; N acute ; B 86 528 324 713 ; C 195 ; WX 333 ; N circumflex ; B -2 528 335 704 ; C 196 ; WX 333 ; N tilde ; B -16 547 349 674 ; C 197 ; WX 333 ; N macron ; B 1 565 331 637 ; C 198 ; WX 333 ; N breve ; B 15 528 318 691 ; C 199 ; WX 333 ; N dotaccent ; B 103 537 230 667 ; C 200 ; WX 333 ; N dieresis ; B -2 537 335 667 ; C 202 ; WX 333 ; N ring ; B 60 537 273 750 ; C 203 ; WX 333 ; N cedilla ; B 68 -218 294 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -13 528 425 713 ; C 206 ; WX 333 ; N ogonek ; B 90 -173 319 44 ; C 207 ; WX 333 ; N caron ; B -2 528 335 704 ; C 208 ; WX 1000 ; N emdash ; B 0 181 1000 271 ; C 225 ; WX 1000 ; N AE ; B 4 0 951 676 ; C 227 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ; C 232 ; WX 667 ; N Lslash ; B 19 0 638 676 ; C 233 ; WX 778 ; N Oslash ; B 35 -74 743 737 ; C 234 ; WX 1000 ; N OE ; B 22 -5 981 684 ; C 235 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ; C 241 ; WX 722 ; N ae ; B 33 -14 693 473 ; C 245 ; WX 278 ; N dotlessi ; B 16 0 255 461 ; C 248 ; WX 278 ; N lslash ; B -22 0 303 676 ; C 249 ; WX 500 ; N oslash ; B 25 -92 476 549 ; C 250 ; WX 722 ; N oe ; B 22 -14 696 473 ; C 251 ; WX 556 ; N germandbls ; B 19 -12 517 691 ; C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ; C -1 ; WX 1000 ; N AEacute ; B 4 0 951 929 ; C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ; C -1 ; WX 722 ; N Abreve ; B 9 0 689 901 ; C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ; C -1 ; WX 722 ; N Adieresis ; B 9 0 689 877 ; C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ; C -1 ; WX 722 ; N Alpha ; B 52 0 688 668 ; C -1 ; WX 722 ; N Alphatonos ; B 52 0 688 672 ; C -1 ; WX 722 ; N Amacron ; B 9 0 689 847 ; C -1 ; WX 722 ; N Aogonek ; B 9 -173 822 690 ; C -1 ; WX 722 ; N Aring ; B 9 0 689 948 ; C -1 ; WX 722 ; N Aringacute ; B 9 0 689 1044 ; C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ; C -1 ; WX 667 ; N Beta ; B 46 0 608 662 ; C -1 ; WX 722 ; N Cacute ; B 49 -19 687 923 ; C -1 ; WX 722 ; N Ccaron ; B 49 -19 687 914 ; C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ; C -1 ; WX 737 ; N Ccircumflex ; B 49 -19 687 914 ; C -1 ; WX 737 ; N Cdotaccent ; B 49 -19 687 876 ; C -1 ; WX 722 ; N Chi ; B 58 0 677 662 ; C -1 ; WX 722 ; N Dcaron ; B 14 0 690 914 ; C -1 ; WX 722 ; N Dcroat ; B 6 0 690 676 ; C -1 ; WX 667 ; N Delta ; B 33 0 635 688 ; C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ; C -1 ; WX 667 ; N Ebreve ; B 16 0 641 901 ; C -1 ; WX 667 ; N Ecaron ; B 16 0 641 914 ; C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ; C -1 ; WX 667 ; N Edieresis ; B 16 0 641 877 ; C -1 ; WX 667 ; N Edotaccent ; B 16 0 641 877 ; C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ; C -1 ; WX 667 ; N Emacron ; B 16 0 641 847 ; C -1 ; WX 722 ; N Eng ; B 16 -203 701 676 ; C -1 ; WX 667 ; N Eogonek ; B 16 -173 737 676 ; C -1 ; WX 667 ; N Epsilon ; B 53 0 616 662 ; C -1 ; WX 799 ; N Epsilontonos ; B 36 0 732 672 ; C -1 ; WX 778 ; N Eta ; B 31 0 749 662 ; C -1 ; WX 909 ; N Etatonos ; B 29 0 876 672 ; C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ; C -1 ; WX 500 ; N Euro ; B -36 -24 478 671 ; C -1 ; WX 636 ; N Gamma ; B 12 0 611 662 ; C -1 ; WX 778 ; N Gbreve ; B 37 -19 755 901 ; C -1 ; WX 794 ; N Gcircumflex ; B 37 -19 755 914 ; C -1 ; WX 778 ; N Gcommaaccent ; B 37 -341 755 691 ; C -1 ; WX 794 ; N Gdotaccent ; B 36 -19 754 880 ; C -1 ; WX 722 ; N H18533 ; B 147 67 577 497 ; C -1 ; WX 500 ; N H18543 ; B 68 178 433 543 ; C -1 ; WX 500 ; N H18551 ; B 68 178 433 543 ; C -1 ; WX 778 ; N Hbar ; B 17 0 758 676 ; C -1 ; WX 794 ; N Hcircumflex ; B 22 0 760 914 ; C -1 ; WX 889 ; N IJ ; B 54 -17 833 677 ; C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ; C -1 ; WX 389 ; N Ibreve ; B 20 0 370 901 ; C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ; C -1 ; WX 389 ; N Idieresis ; B 20 0 370 877 ; C -1 ; WX 389 ; N Idotaccent ; B 20 0 370 877 ; C -1 ; WX 722 ; N Ifraktur ; B 73 -71 650 694 ; C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ; C -1 ; WX 389 ; N Imacron ; B 20 0 370 847 ; C -1 ; WX 389 ; N Iogonek ; B 20 -173 505 676 ; C -1 ; WX 389 ; N Iota ; B 34 0 350 662 ; C -1 ; WX 389 ; N Iotadieresis ; B 26 0 370 859 ; C -1 ; WX 522 ; N Iotatonos ; B 25 0 472 672 ; C -1 ; WX 389 ; N Itilde ; B 14 0 379 873 ; C -1 ; WX 510 ; N Jcircumflex ; B 4 -96 480 931 ; C -1 ; WX 778 ; N Kappa ; B 83 0 714 662 ; C -1 ; WX 778 ; N Kcommaaccent ; B 30 -341 769 676 ; C -1 ; WX 667 ; N Lacute ; B 19 0 638 923 ; C -1 ; WX 717 ; N Lambda ; B 42 0 678 668 ; C -1 ; WX 667 ; N Lcaron ; B 19 0 638 691 ; C -1 ; WX 667 ; N Lcommaaccent ; B 19 -341 638 676 ; C -1 ; WX 667 ; N Ldot ; B 19 0 638 676 ; C -1 ; WX 944 ; N Mu ; B 35 0 911 662 ; C -1 ; WX 722 ; N Nacute ; B 16 -18 701 923 ; C -1 ; WX 722 ; N Ncaron ; B 16 -18 701 914 ; C -1 ; WX 722 ; N Ncommaaccent ; B 16 -341 701 676 ; C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ; C -1 ; WX 722 ; N Nu ; B 20 0 692 662 ; C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ; C -1 ; WX 778 ; N Obreve ; B 35 -19 743 901 ; C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ; C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 877 ; C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 35 -19 743 923 ; C -1 ; WX 778 ; N Omacron ; B 35 -19 743 847 ; C -1 ; WX 801 ; N Omegatonos ; B -5 0 784 672 ; C -1 ; WX 778 ; N Omicron ; B 57 -10 724 672 ; C -1 ; WX 778 ; N Omicrontonos ; B -1 -10 763 672 ; C -1 ; WX 778 ; N Oslashacute ; B 35 -74 743 929 ; C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ; C -1 ; WX 829 ; N Phi ; B 30 -30 799 693 ; C -1 ; WX 778 ; N Pi ; B 29 0 747 662 ; C -1 ; WX 780 ; N Psi ; B 10 0 770 669 ; C -1 ; WX 722 ; N Racute ; B 26 0 715 923 ; C -1 ; WX 722 ; N Rcaron ; B 26 0 715 914 ; C -1 ; WX 722 ; N Rcommaaccent ; B 26 -341 715 676 ; C -1 ; WX 778 ; N Rfraktur ; B 72 -6 693 604 ; C -1 ; WX 611 ; N Rho ; B 28 0 589 662 ; C -1 ; WX 1000 ; N SF010000 ; B 467 -250 1000 283 ; C -1 ; WX 1000 ; N SF020000 ; B 467 217 1000 750 ; C -1 ; WX 1000 ; N SF030000 ; B 0 -250 533 283 ; C -1 ; WX 1000 ; N SF040000 ; B 0 217 533 750 ; C -1 ; WX 1000 ; N SF050000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF060000 ; B 0 -250 1000 283 ; C -1 ; WX 1000 ; N SF070000 ; B 0 217 1000 750 ; C -1 ; WX 1000 ; N SF080000 ; B 467 -250 1000 750 ; C -1 ; WX 1000 ; N SF090000 ; B 0 -250 533 750 ; C -1 ; WX 1000 ; N SF100000 ; B 0 217 1000 283 ; C -1 ; WX 1000 ; N SF110000 ; B 467 -250 533 750 ; C -1 ; WX 1000 ; N SF190000 ; B 0 -250 533 750 ; C -1 ; WX 1000 ; N SF200000 ; B 0 -250 599 750 ; C -1 ; WX 1000 ; N SF210000 ; B 0 -250 599 283 ; C -1 ; WX 1000 ; N SF220000 ; B 0 -250 533 349 ; C -1 ; WX 1000 ; N SF230000 ; B 0 -250 599 750 ; C -1 ; WX 1000 ; N SF240000 ; B 401 -250 599 750 ; C -1 ; WX 1000 ; N SF250000 ; B 0 -250 599 349 ; C -1 ; WX 1000 ; N SF260000 ; B 0 151 599 750 ; C -1 ; WX 1000 ; N SF270000 ; B 0 217 599 750 ; C -1 ; WX 1000 ; N SF280000 ; B 0 151 533 750 ; C -1 ; WX 1000 ; N SF360000 ; B 467 -250 1000 750 ; C -1 ; WX 1000 ; N SF370000 ; B 401 -250 1000 750 ; C -1 ; WX 1000 ; N SF380000 ; B 401 151 1000 750 ; C -1 ; WX 1000 ; N SF390000 ; B 401 -250 1000 349 ; C -1 ; WX 1000 ; N SF400000 ; B 0 151 1000 750 ; C -1 ; WX 1000 ; N SF410000 ; B 0 -250 1000 349 ; C -1 ; WX 1000 ; N SF420000 ; B 401 -250 1000 750 ; C -1 ; WX 1000 ; N SF430000 ; B 0 151 1000 349 ; C -1 ; WX 1000 ; N SF440000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF450000 ; B 0 151 1000 750 ; C -1 ; WX 1000 ; N SF460000 ; B 0 217 1000 750 ; C -1 ; WX 1000 ; N SF470000 ; B 0 -250 1000 349 ; C -1 ; WX 1000 ; N SF480000 ; B 0 -250 1000 283 ; C -1 ; WX 1000 ; N SF490000 ; B 401 217 1000 750 ; C -1 ; WX 1000 ; N SF500000 ; B 467 151 1000 750 ; C -1 ; WX 1000 ; N SF510000 ; B 467 -250 1000 349 ; C -1 ; WX 1000 ; N SF520000 ; B 401 -250 1000 283 ; C -1 ; WX 1000 ; N SF530000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF540000 ; B 0 -250 1000 750 ; C -1 ; WX 556 ; N Sacute ; B 35 -19 513 923 ; C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ; C -1 ; WX 556 ; N Scedilla ; B 35 -218 513 692 ; C -1 ; WX 568 ; N Scircumflex ; B 35 -19 513 914 ; C -1 ; WX 556 ; N Scommaaccent ; B 35 -341 513 692 ; C -1 ; WX 654 ; N Sigma ; B 34 0 608 662 ; C -1 ; WX 667 ; N Tau ; B 47 0 618 662 ; C -1 ; WX 667 ; N Tbar ; B 31 0 636 676 ; C -1 ; WX 667 ; N Tcaron ; B 31 0 636 914 ; C -1 ; WX 667 ; N Tcommaaccent ; B 31 -218 636 676 ; C -1 ; WX 778 ; N Theta ; B 50 -14 726 678 ; C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ; C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ; C -1 ; WX 722 ; N Ubreve ; B 16 -19 701 901 ; C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ; C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 877 ; C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 16 -19 701 923 ; C -1 ; WX 722 ; N Umacron ; B 16 -19 701 847 ; C -1 ; WX 722 ; N Uogonek ; B 16 -173 701 676 ; C -1 ; WX 722 ; N Upsilon ; B 36 0 663 662 ; C -1 ; WX 722 ; N Upsilondieresis ; B 55 0 682 859 ; C -1 ; WX 865 ; N Upsilontonos ; B 58 0 813 672 ; C -1 ; WX 722 ; N Uring ; B 16 -19 701 960 ; C -1 ; WX 722 ; N Utilde ; B 17 -19 702 877 ; C -1 ; WX 1000 ; N Wacute ; B 19 -15 981 923 ; C -1 ; WX 1000 ; N Wcircumflex ; B 19 -15 981 914 ; C -1 ; WX 1000 ; N Wdieresis ; B 19 -15 981 877 ; C -1 ; WX 1000 ; N Wgrave ; B 19 -15 981 923 ; C -1 ; WX 677 ; N Xi ; B 57 0 621 662 ; C -1 ; WX 722 ; N Yacute ; B 15 0 699 923 ; C -1 ; WX 722 ; N Ycircumflex ; B 15 0 699 914 ; C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 877 ; C -1 ; WX 722 ; N Ygrave ; B 15 0 699 923 ; C -1 ; WX 667 ; N Zacute ; B 28 0 634 923 ; C -1 ; WX 667 ; N Zcaron ; B 28 0 634 914 ; C -1 ; WX 667 ; N Zdotaccent ; B 28 0 634 877 ; C -1 ; WX 667 ; N Zeta ; B 37 0 637 662 ; C -1 ; WX 500 ; N aacute ; B 25 -14 488 713 ; C -1 ; WX 500 ; N abreve ; B 25 -14 488 691 ; C -1 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ; C -1 ; WX 500 ; N adieresis ; B 25 -14 488 667 ; C -1 ; WX 722 ; N aeacute ; B 33 -14 693 713 ; C -1 ; WX 1000 ; N afii00208 ; B 0 181 1000 271 ; C -1 ; WX 722 ; N afii10017 ; B 52 0 688 668 ; C -1 ; WX 661 ; N afii10018 ; B 43 0 605 662 ; C -1 ; WX 667 ; N afii10019 ; B 46 0 608 662 ; C -1 ; WX 636 ; N afii10020 ; B 58 0 573 662 ; C -1 ; WX 688 ; N afii10021 ; B 5 -137 656 662 ; C -1 ; WX 667 ; N afii10022 ; B 50 0 613 662 ; C -1 ; WX 667 ; N afii10023 ; B 53 0 616 859 ; C -1 ; WX 989 ; N afii10024 ; B 24 0 970 662 ; C -1 ; WX 528 ; N afii10025 ; B 24 -15 496 676 ; C -1 ; WX 778 ; N afii10026 ; B 41 0 751 662 ; C -1 ; WX 778 ; N afii10027 ; B 35 0 745 855 ; C -1 ; WX 725 ; N afii10028 ; B 57 0 688 662 ; C -1 ; WX 745 ; N afii10029 ; B 33 -13 691 662 ; C -1 ; WX 944 ; N afii10030 ; B 35 0 911 662 ; C -1 ; WX 778 ; N afii10031 ; B 31 0 749 662 ; C -1 ; WX 778 ; N afii10032 ; B 58 -10 725 672 ; C -1 ; WX 778 ; N afii10033 ; B 29 0 749 662 ; C -1 ; WX 611 ; N afii10034 ; B 28 0 589 662 ; C -1 ; WX 722 ; N afii10035 ; B 69 -10 659 672 ; C -1 ; WX 667 ; N afii10036 ; B 55 0 613 662 ; C -1 ; WX 734 ; N afii10037 ; B 51 -13 686 662 ; C -1 ; WX 859 ; N afii10038 ; B 45 -30 814 693 ; C -1 ; WX 722 ; N afii10039 ; B 58 0 677 662 ; C -1 ; WX 778 ; N afii10040 ; B 25 -137 752 662 ; C -1 ; WX 734 ; N afii10041 ; B 31 0 692 662 ; C -1 ; WX 1098 ; N afii10042 ; B 26 0 1072 662 ; C -1 ; WX 1098 ; N afii10043 ; B 26 -137 1079 662 ; C -1 ; WX 765 ; N afii10044 ; B 44 0 722 662 ; C -1 ; WX 982 ; N afii10045 ; B 56 0 936 662 ; C -1 ; WX 661 ; N afii10046 ; B 45 0 607 662 ; C -1 ; WX 678 ; N afii10047 ; B 8 -13 638 676 ; C -1 ; WX 1126 ; N afii10048 ; B 71 -10 1057 672 ; C -1 ; WX 722 ; N afii10049 ; B 25 0 664 662 ; C -1 ; WX 520 ; N afii10050 ; B 11 0 537 804 ; C -1 ; WX 800 ; N afii10051 ; B 51 -13 754 662 ; C -1 ; WX 636 ; N afii10052 ; B 67 0 582 904 ; C -1 ; WX 678 ; N afii10053 ; B 30 -13 673 676 ; C -1 ; WX 556 ; N afii10054 ; B 44 -10 531 672 ; C -1 ; WX 389 ; N afii10055 ; B 36 0 352 662 ; C -1 ; WX 389 ; N afii10056 ; B 37 0 355 859 ; C -1 ; WX 500 ; N afii10057 ; B 15 -17 477 662 ; C -1 ; WX 1003 ; N afii10058 ; B 61 -13 940 662 ; C -1 ; WX 1002 ; N afii10059 ; B 34 0 974 662 ; C -1 ; WX 800 ; N afii10060 ; B 20 0 786 662 ; C -1 ; WX 725 ; N afii10061 ; B 57 0 688 904 ; C -1 ; WX 734 ; N afii10062 ; B 63 -13 698 855 ; C -1 ; WX 500 ; N afii10065 ; B 66 -10 474 461 ; C -1 ; WX 500 ; N afii10066 ; B 50 -10 450 679 ; C -1 ; WX 540 ; N afii10067 ; B 57 0 460 452 ; C -1 ; WX 454 ; N afii10068 ; B 57 0 394 452 ; C -1 ; WX 506 ; N afii10069 ; B 10 -112 470 452 ; C -1 ; WX 444 ; N afii10070 ; B 45 -10 400 461 ; C -1 ; WX 444 ; N afii10071 ; B 45 -10 400 647 ; C -1 ; WX 725 ; N afii10072 ; B 6 0 718 452 ; C -1 ; WX 402 ; N afii10073 ; B 27 -10 370 461 ; C -1 ; WX 576 ; N afii10074 ; B 58 0 518 452 ; C -1 ; WX 576 ; N afii10075 ; B 58 0 518 632 ; C -1 ; WX 576 ; N afii10076 ; B 57 0 519 452 ; C -1 ; WX 561 ; N afii10077 ; B 50 -10 505 452 ; C -1 ; WX 681 ; N afii10078 ; B 75 0 606 452 ; C -1 ; WX 576 ; N afii10079 ; B 64 0 512 452 ; C -1 ; WX 500 ; N afii10080 ; B 49 -10 452 461 ; C -1 ; WX 576 ; N afii10081 ; B 64 0 512 452 ; C -1 ; WX 556 ; N afii10082 ; B 66 -160 475 461 ; C -1 ; WX 444 ; N afii10083 ; B 44 -10 401 461 ; C -1 ; WX 491 ; N afii10084 ; B 36 0 455 452 ; C -1 ; WX 500 ; N afii10085 ; B 36 -162 460 452 ; C -1 ; WX 692 ; N afii10086 ; B 35 -160 656 654 ; C -1 ; WX 500 ; N afii10087 ; B 17 0 473 452 ; C -1 ; WX 576 ; N afii10088 ; B 64 -112 526 452 ; C -1 ; WX 564 ; N afii10089 ; B 66 0 498 452 ; C -1 ; WX 844 ; N afii10090 ; B 87 0 756 452 ; C -1 ; WX 844 ; N afii10091 ; B 87 -112 771 452 ; C -1 ; WX 583 ; N afii10092 ; B 40 0 524 452 ; C -1 ; WX 781 ; N afii10093 ; B 90 0 693 452 ; C -1 ; WX 529 ; N afii10094 ; B 55 0 452 452 ; C -1 ; WX 432 ; N afii10095 ; B 23 -10 408 461 ; C -1 ; WX 764 ; N afii10096 ; B 59 -10 686 461 ; C -1 ; WX 541 ; N afii10097 ; B 37 0 488 452 ; C -1 ; WX 389 ; N afii10098 ; B 24 0 368 565 ; C -1 ; WX 537 ; N afii10099 ; B 21 -173 473 654 ; C -1 ; WX 454 ; N afii10100 ; B 58 0 393 689 ; C -1 ; WX 432 ; N afii10101 ; B 24 -10 409 461 ; C -1 ; WX 389 ; N afii10102 ; B 40 -7 351 464 ; C -1 ; WX 278 ; N afii10103 ; B 31 0 257 660 ; C -1 ; WX 278 ; N afii10104 ; B -11 0 291 659 ; C -1 ; WX 333 ; N afii10105 ; B -1 -170 251 660 ; C -1 ; WX 780 ; N afii10106 ; B 54 -10 696 452 ; C -1 ; WX 797 ; N afii10107 ; B 70 0 706 452 ; C -1 ; WX 556 ; N afii10108 ; B 34 0 497 654 ; C -1 ; WX 576 ; N afii10109 ; B 57 0 519 684 ; C -1 ; WX 500 ; N afii10110 ; B 36 -162 460 632 ; C -1 ; WX 778 ; N afii10145 ; B 31 -143 750 662 ; C -1 ; WX 576 ; N afii10193 ; B 64 -112 512 452 ; C -1 ; WX 434 ; N afii10846 ; B 34 -10 388 461 ; C -1 ; WX 833 ; N afii61248 ; B 18 -28 816 691 ; C -1 ; WX 375 ; N afii61289 ; B 2 -23 369 664 ; C -1 ; WX 1005 ; N afii61352 ; B 18 -13 975 671 ; C -1 ; WX 500 ; N agrave ; B 25 -14 488 713 ; C -1 ; WX 500 ; N aleph ; B 28 0 473 631 ; C -1 ; WX 558 ; N alpha ; B 20 -14 568 464 ; C -1 ; WX 558 ; N alphatonos ; B 20 -14 568 698 ; C -1 ; WX 500 ; N amacron ; B 25 -14 488 637 ; C -1 ; WX 1000 ; N angle ; B 211 0 789 417 ; C -1 ; WX 333 ; N angleleft ; B 58 -125 275 602 ; C -1 ; WX 333 ; N angleright ; B 58 -125 275 602 ; C -1 ; WX 500 ; N aogonek ; B 25 -173 500 473 ; C -1 ; WX 1000 ; N approxequal ; B 269 82 731 424 ; C -1 ; WX 500 ; N aring ; B 25 -14 488 750 ; C -1 ; WX 500 ; N aringacute ; B 25 -14 488 953 ; C -1 ; WX 722 ; N arrowboth ; B 0 221 722 553 ; C -1 ; WX 722 ; N arrowdblboth ; B 1 73 719 517 ; C -1 ; WX 722 ; N arrowdbldown ; B 139 0 583 648 ; C -1 ; WX 722 ; N arrowdblleft ; B 9 73 714 517 ; C -1 ; WX 722 ; N arrowdblright ; B 9 73 714 517 ; C -1 ; WX 722 ; N arrowdblup ; B 139 0 583 648 ; C -1 ; WX 722 ; N arrowdown ; B 193 0 525 722 ; C -1 ; WX 722 ; N arrowleft ; B 0 223 722 555 ; C -1 ; WX 722 ; N arrowright ; B 0 223 722 555 ; C -1 ; WX 722 ; N arrowup ; B 193 0 525 722 ; C -1 ; WX 722 ; N arrowupdn ; B 196 0 528 722 ; C -1 ; WX 722 ; N arrowupdnbse ; B 196 -153 528 691 ; C -1 ; WX 1000 ; N asteriskmath ; B 357 101 643 382 ; C -1 ; WX 500 ; N atilde ; B 25 -14 488 674 ; C -1 ; WX 527 ; N beta ; B 76 -179 486 672 ; C -1 ; WX 1000 ; N block ; B 0 -250 1000 750 ; C -1 ; WX 220 ; N brokenbar ; B 66 -19 154 691 ; C -1 ; WX 444 ; N cacute ; B 25 -14 430 713 ; C -1 ; WX 1000 ; N carriagereturn ; B 162 223 884 601 ; C -1 ; WX 444 ; N ccaron ; B 25 -14 430 704 ; C -1 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ; C -1 ; WX 453 ; N ccircumflex ; B 24 -14 429 704 ; C -1 ; WX 444 ; N cdotaccent ; B 25 -14 430 667 ; C -1 ; WX 462 ; N chi ; B -1 -183 462 460 ; C -1 ; WX 722 ; N circle ; B 102 0 621 519 ; C -1 ; WX 1000 ; N circlemultiply ; B 141 -24 858 695 ; C -1 ; WX 1000 ; N club ; B 135 0 865 729 ; C -1 ; WX 1000 ; N congruent ; B 183 71 815 477 ; C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ; C -1 ; WX 711 ; N dcaron ; B 26 -14 688 691 ; C -1 ; WX 556 ; N dcroat ; B 25 -14 534 676 ; C -1 ; WX 400 ; N degree ; B 57 402 343 688 ; C -1 ; WX 519 ; N delta ; B 39 -13 478 638 ; C -1 ; WX 1000 ; N diamond ; B 237 -28 791 757 ; C -1 ; WX 333 ; N dieresistonos ; B 26 499 307 723 ; C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ; C -1 ; WX 1000 ; N dkshade ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N dnblock ; B 0 -250 1000 250 ; C -1 ; WX 444 ; N eacute ; B 25 -14 426 713 ; C -1 ; WX 444 ; N ebreve ; B 25 -14 426 691 ; C -1 ; WX 444 ; N ecaron ; B 25 -14 426 704 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ; C -1 ; WX 444 ; N edieresis ; B 25 -14 426 667 ; C -1 ; WX 444 ; N edotaccent ; B 25 -14 426 667 ; C -1 ; WX 444 ; N egrave ; B 25 -14 426 713 ; C -1 ; WX 300 ; N eightsuperior ; B 16 267 285 688 ; C -1 ; WX 1000 ; N element ; B 233 0 767 494 ; C -1 ; WX 444 ; N emacron ; B 25 -14 426 637 ; C -1 ; WX 1000 ; N emptyset ; B 101 -13 902 679 ; C -1 ; WX 556 ; N eng ; B 21 -203 490 473 ; C -1 ; WX 444 ; N eogonek ; B 25 -173 444 473 ; C -1 ; WX 427 ; N epsilon ; B 49 -10 405 457 ; C -1 ; WX 427 ; N epsilontonos ; B 49 -10 405 698 ; C -1 ; WX 1000 ; N equivalence ; B 265 -13 735 486 ; C -1 ; WX 600 ; N estimated ; B 90 -5 522 524 ; C -1 ; WX 568 ; N eta ; B 56 -175 466 457 ; C -1 ; WX 568 ; N etatonos ; B 56 -175 466 698 ; C -1 ; WX 500 ; N eth ; B 25 -14 476 691 ; C -1 ; WX 574 ; N exclamdbl ; B 71 -13 502 690 ; C -1 ; WX 424 ; N existential ; B 50 0 375 577 ; C -1 ; WX 722 ; N female ; B 142 -6 581 713 ; C -1 ; WX 632 ; N ff ; B 41 0 658 691 ; C -1 ; WX 856 ; N ffi ; B 27 0 826 691 ; C -1 ; WX 856 ; N ffl ; B 26 0 825 691 ; C -1 ; WX 722 ; N filledbox ; B 125 124 592 591 ; C -1 ; WX 1000 ; N filledrect ; B 142 0 858 358 ; C -1 ; WX 750 ; N fiveeighths ; B 12 -6 736 682 ; C -1 ; WX 300 ; N fivesuperior ; B 12 270 284 681 ; C -1 ; WX 300 ; N foursuperior ; B 10 275 286 688 ; C -1 ; WX 500 ; N franc ; B 31 -9 515 681 ; C -1 ; WX 468 ; N gamma ; B 19 -182 450 458 ; C -1 ; WX 500 ; N gbreve ; B 28 -206 483 691 ; C -1 ; WX 500 ; N gcircumflex ; B 28 -206 483 704 ; C -1 ; WX 500 ; N gcommaaccent ; B 28 -206 483 811 ; C -1 ; WX 510 ; N gdotaccent ; B 29 -206 484 663 ; C -1 ; WX 667 ; N gradient ; B 31 0 635 630 ; C -1 ; WX 1000 ; N greaterequal ; B 291 1 715 578 ; C -1 ; WX 556 ; N hbar ; B 16 0 534 676 ; C -1 ; WX 568 ; N hcircumflex ; B 16 0 534 931 ; C -1 ; WX 1000 ; N heart ; B 177 -28 823 729 ; C -1 ; WX 1000 ; N house ; B 153 0 853 729 ; C -1 ; WX 278 ; N iacute ; B 16 0 290 713 ; C -1 ; WX 278 ; N ibreve ; B -21 0 282 691 ; C -1 ; WX 278 ; N icircumflex ; B -36 0 301 704 ; C -1 ; WX 278 ; N idieresis ; B -36 0 301 667 ; C -1 ; WX 278 ; N igrave ; B -26 0 255 713 ; C -1 ; WX 569 ; N ij ; B 61 -173 490 674 ; C -1 ; WX 278 ; N imacron ; B -27 0 303 637 ; C -1 ; WX 1000 ; N infinity ; B 197 114 804 370 ; C -1 ; WX 1000 ; N integral ; B 354 -107 664 916 ; C -1 ; WX 722 ; N integralbt ; B 229 -210 410 913 ; C -1 ; WX 722 ; N integraltp ; B 335 -210 516 913 ; C -1 ; WX 1000 ; N intersection ; B 280 0 720 559 ; C -1 ; WX 1000 ; N invbullet ; B 57 -122 942 763 ; C -1 ; WX 1000 ; N invcircle ; B 57 -114 942 771 ; C -1 ; WX 1000 ; N invsmileface ; B 136 0 866 730 ; C -1 ; WX 278 ; N iogonek ; B 16 -173 388 691 ; C -1 ; WX 310 ; N iota ; B 28 -10 276 457 ; C -1 ; WX 310 ; N iotadieresis ; B 19 -10 291 647 ; C -1 ; WX 310 ; N iotadieresistonos ; B -13 -10 299 723 ; C -1 ; WX 310 ; N iotatonos ; B 28 -10 276 698 ; C -1 ; WX 278 ; N itilde ; B -47 0 318 674 ; C -1 ; WX 340 ; N jcircumflex ; B -57 -203 340 704 ; C -1 ; WX 555 ; N kappa ; B 44 -11 521 457 ; C -1 ; WX 556 ; N kcommaaccent ; B 22 -341 543 676 ; C -1 ; WX 556 ; N kgreenlandic ; B 43 0 517 457 ; C -1 ; WX 278 ; N lacute ; B 16 0 297 923 ; C -1 ; WX 491 ; N lambda ; B 32 -10 460 652 ; C -1 ; WX 425 ; N lcaron ; B 16 0 411 691 ; C -1 ; WX 278 ; N lcommaaccent ; B 16 -341 255 676 ; C -1 ; WX 396 ; N ldot ; B 15 0 403 676 ; C -1 ; WX 1000 ; N lessequal ; B 286 1 710 577 ; C -1 ; WX 1000 ; N lfblock ; B 0 -250 500 750 ; C -1 ; WX 722 ; N lira ; B 21 0 747 676 ; C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ; C -1 ; WX 278 ; N longs ; B -1 0 366 677 ; C -1 ; WX 574 ; N lozenge ; B 58 -1 506 740 ; C -1 ; WX 1000 ; N ltshade ; B 0 -83 834 750 ; C -1 ; WX 722 ; N male ; B 73 -28 658 731 ; C -1 ; WX 570 ; N minus ; B 33 209 537 297 ; C -1 ; WX 281 ; N minute ; B 94 360 256 691 ; C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ; C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; C -1 ; WX 500 ; N musicalnote ; B 68 17 433 667 ; C -1 ; WX 722 ; N musicalnotedbl ; B 153 -94 570 731 ; C -1 ; WX 556 ; N nacute ; B 21 0 539 713 ; C -1 ; WX 729 ; N napostrophe ; B 14 0 712 672 ; C -1 ; WX 556 ; N ncaron ; B 21 0 539 704 ; C -1 ; WX 556 ; N ncommaaccent ; B 21 -341 539 473 ; C -1 ; WX 300 ; N ninesuperior ; B 14 267 284 688 ; C -1 ; WX 1000 ; N notelement ; B 233 -63 767 577 ; C -1 ; WX 1000 ; N notequal ; B 248 -13 752 519 ; C -1 ; WX 1000 ; N notsubset ; B 233 -63 767 567 ; C -1 ; WX 416 ; N nsuperior ; B 45 275 357 561 ; C -1 ; WX 556 ; N ntilde ; B 21 0 539 674 ; C -1 ; WX 447 ; N nu ; B 28 -6 419 457 ; C -1 ; WX 500 ; N oacute ; B 25 -14 476 713 ; C -1 ; WX 500 ; N obreve ; B 25 -14 476 691 ; C -1 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ; C -1 ; WX 500 ; N odieresis ; B 25 -14 476 667 ; C -1 ; WX 500 ; N ograve ; B 25 -14 476 713 ; C -1 ; WX 500 ; N ohungarumlaut ; B 25 -14 509 713 ; C -1 ; WX 500 ; N omacron ; B 25 -14 476 637 ; C -1 ; WX 731 ; N omega ; B 78 -10 653 457 ; C -1 ; WX 731 ; N omega1 ; B 35 -10 617 502 ; C -1 ; WX 731 ; N omegatonos ; B 78 -10 653 698 ; C -1 ; WX 500 ; N omicron ; B 49 -10 452 457 ; C -1 ; WX 500 ; N omicrontonos ; B 49 -10 452 698 ; C -1 ; WX 750 ; N oneeighth ; B 34 -6 735 691 ; C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ; C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ; C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ; C -1 ; WX 498 ; N openbullet ; B 57 83 437 463 ; C -1 ; WX 979 ; N orthogonal ; B 8 0 970 951 ; C -1 ; WX 500 ; N oslashacute ; B 25 -92 476 713 ; C -1 ; WX 500 ; N otilde ; B 25 -14 476 674 ; C -1 ; WX 500 ; N partialdiff ; B 19 -20 475 743 ; C -1 ; WX 1000 ; N perpendicular ; B 201 0 799 598 ; C -1 ; WX 969 ; N peseta ; B 125 -7 845 676 ; C -1 ; WX 624 ; N phi ; B 35 -190 590 459 ; C -1 ; WX 624 ; N phi1 ; B 26 -191 598 691 ; C -1 ; WX 548 ; N pi ; B -24 -14 540 451 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 568 ; C -1 ; WX 1000 ; N product ; B 111 -123 890 748 ; C -1 ; WX 1000 ; N propersubset ; B 233 0 767 494 ; C -1 ; WX 1000 ; N propersuperset ; B 233 0 767 494 ; C -1 ; WX 1000 ; N proportional ; B 197 102 682 379 ; C -1 ; WX 688 ; N psi ; B 36 -174 616 459 ; C -1 ; WX 333 ; N quotereversed ; B 72 349 252 677 ; C -1 ; WX 444 ; N racute ; B 29 0 434 713 ; C -1 ; WX 722 ; N radical ; B 70 -35 622 916 ; C -1 ; WX 444 ; N rcaron ; B 29 0 434 704 ; C -1 ; WX 444 ; N rcommaaccent ; B 29 -341 434 473 ; C -1 ; WX 1000 ; N reflexsubset ; B 233 0 767 599 ; C -1 ; WX 1000 ; N reflexsuperset ; B 233 0 767 599 ; C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ; C -1 ; WX 889 ; N revlogicalnot ; B 192 108 696 399 ; C -1 ; WX 535 ; N rho ; B 81 -175 480 457 ; C -1 ; WX 1000 ; N rtblock ; B 500 -250 1000 750 ; C -1 ; WX 389 ; N sacute ; B 25 -14 361 713 ; C -1 ; WX 389 ; N scaron ; B 25 -14 363 704 ; C -1 ; WX 389 ; N scedilla ; B 25 -218 361 473 ; C -1 ; WX 389 ; N scircumflex ; B 25 -14 363 704 ; C -1 ; WX 389 ; N scommaaccent ; B 25 -341 361 473 ; C -1 ; WX 552 ; N second ; B 91 360 493 691 ; C -1 ; WX 750 ; N seveneighths ; B 10 -6 736 682 ; C -1 ; WX 300 ; N sevensuperior ; B 8 275 288 681 ; C -1 ; WX 1000 ; N shade ; B 0 -250 1000 750 ; C -1 ; WX 544 ; N sigma ; B 41 -13 548 464 ; C -1 ; WX 300 ; N sixsuperior ; B 16 267 286 688 ; C -1 ; WX 1000 ; N smileface ; B 135 0 865 730 ; C -1 ; WX 1000 ; N spade ; B 239 0 835 757 ; C -1 ; WX 1000 ; N suchthat ; B 233 0 767 494 ; C -1 ; WX 1000 ; N summation ; B 200 -123 813 752 ; C -1 ; WX 1000 ; N sun ; B 150 -16 850 683 ; C -1 ; WX 461 ; N tau ; B -7 -14 467 451 ; C -1 ; WX 333 ; N tbar ; B 12 -12 332 630 ; C -1 ; WX 464 ; N tcaron ; B 21 -12 435 691 ; C -1 ; WX 333 ; N tcommaaccent ; B 20 -218 332 630 ; C -1 ; WX 996 ; N therefore ; B 185 0 811 630 ; C -1 ; WX 522 ; N theta ; B 63 -10 459 658 ; C -1 ; WX 599 ; N theta1 ; B 49 -10 552 691 ; C -1 ; WX 556 ; N thorn ; B 19 -205 524 676 ; C -1 ; WX 750 ; N threeeighths ; B 14 -6 736 688 ; C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ; C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ; C -1 ; WX 333 ; N tonos ; B 124 489 209 658 ; C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ; C -1 ; WX 722 ; N triagdn ; B 150 139 572 539 ; C -1 ; WX 722 ; N triaglf ; B 121 194 577 556 ; C -1 ; WX 722 ; N triagrt ; B 146 194 602 556 ; C -1 ; WX 722 ; N triagup ; B 150 211 572 611 ; C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ; C -1 ; WX 556 ; N uacute ; B 16 -14 537 713 ; C -1 ; WX 556 ; N ubreve ; B 16 -14 537 691 ; C -1 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ; C -1 ; WX 556 ; N udieresis ; B 16 -14 537 667 ; C -1 ; WX 556 ; N ugrave ; B 16 -14 537 713 ; C -1 ; WX 556 ; N uhungarumlaut ; B 16 -14 537 713 ; C -1 ; WX 556 ; N umacron ; B 16 -14 537 637 ; C -1 ; WX 500 ; N underscoredbl ; B 3 -272 491 -45 ; C -1 ; WX 250 ; N uni00A0 ; B 125 0 125 0 ; C -1 ; WX 333 ; N uni00AD ; B 44 171 287 287 ; C -1 ; WX 667 ; N uni021A ; B 31 -341 636 676 ; C -1 ; WX 333 ; N uni021B ; B 20 -341 332 630 ; C -1 ; WX 333 ; N uni02C9 ; B 1 565 331 637 ; C -1 ; WX 250 ; N uni0387 ; B 41 248 210 417 ; C -1 ; WX 627 ; N uni0394 ; B 20 0 620 668 ; C -1 ; WX 801 ; N uni03A9 ; B 14 0 787 680 ; C -1 ; WX 567 ; N uni03BC ; B 70 -185 513 450 ; C -1 ; WX 422 ; N uni03C2 ; B 39 -182 391 457 ; C -1 ; WX 667 ; N uni0400 ; B 23 0 635 904 ; C -1 ; WX 778 ; N uni040D ; B 41 0 751 904 ; C -1 ; WX 444 ; N uni0450 ; B 29 -14 422 698 ; C -1 ; WX 576 ; N uni045D ; B 58 0 518 698 ; C -1 ; WX 764 ; N uni0462 ; B 61 0 717 662 ; C -1 ; WX 600 ; N uni0463 ; B 35 0 541 683 ; C -1 ; WX 778 ; N uni0472 ; B 42 -19 735 677 ; C -1 ; WX 500 ; N uni0473 ; B 30 -14 472 463 ; C -1 ; WX 815 ; N uni0474 ; B 40 -18 777 672 ; C -1 ; WX 605 ; N uni0475 ; B 49 -14 574 455 ; C -1 ; WX 611 ; N uni0492 ; B 20 0 577 662 ; C -1 ; WX 389 ; N uni0493 ; B 19 0 368 451 ; C -1 ; WX 998 ; N uni0496 ; B -4 -137 968 662 ; C -1 ; WX 764 ; N uni0497 ; B -10 -119 738 451 ; C -1 ; WX 528 ; N uni0498 ; B 24 -218 496 676 ; C -1 ; WX 402 ; N uni0499 ; B 27 -218 370 461 ; C -1 ; WX 710 ; N uni049A ; B 25 -137 682 662 ; C -1 ; WX 534 ; N uni049B ; B 12 -119 511 451 ; C -1 ; WX 615 ; N uni049C ; B 25 0 655 662 ; C -1 ; WX 455 ; N uni049D ; B 11 0 473 451 ; C -1 ; WX 827 ; N uni04A0 ; B 43 0 790 662 ; C -1 ; WX 641 ; N uni04A1 ; B 37 0 585 452 ; C -1 ; WX 778 ; N uni04A2 ; B 25 -137 751 662 ; C -1 ; WX 526 ; N uni04A3 ; B 13 -119 506 451 ; C -1 ; WX 722 ; N uni04AA ; B 49 -218 687 691 ; C -1 ; WX 444 ; N uni04AB ; B 25 -218 430 473 ; C -1 ; WX 722 ; N uni04AE ; B 22 0 692 662 ; C -1 ; WX 453 ; N uni04AF ; B 15 -189 439 451 ; C -1 ; WX 722 ; N uni04B0 ; B 22 0 691 662 ; C -1 ; WX 453 ; N uni04B1 ; B 15 -189 439 451 ; C -1 ; WX 681 ; N uni04B2 ; B 8 -137 646 662 ; C -1 ; WX 472 ; N uni04B3 ; B 9 -119 494 451 ; C -1 ; WX 734 ; N uni04B6 ; B 31 -135 692 662 ; C -1 ; WX 564 ; N uni04B7 ; B 66 -115 501 452 ; C -1 ; WX 685 ; N uni04B8 ; B -1 0 660 662 ; C -1 ; WX 463 ; N uni04B9 ; B 7 0 438 451 ; C -1 ; WX 685 ; N uni04BA ; B 25 0 685 662 ; C -1 ; WX 556 ; N uni04BB ; B 21 0 528 662 ; C -1 ; WX 389 ; N uni04C0 ; B 36 0 352 662 ; C -1 ; WX 734 ; N uni04CB ; B 31 -135 705 662 ; C -1 ; WX 564 ; N uni04CC ; B 66 -115 503 452 ; C -1 ; WX 389 ; N uni04CF ; B 36 0 352 662 ; C -1 ; WX 778 ; N uni04D8 ; B 41 -18 737 676 ; C -1 ; WX 722 ; N uni04E2 ; B 16 0 682 885 ; C -1 ; WX 500 ; N uni04E3 ; B 30 -14 484 676 ; C -1 ; WX 778 ; N uni04E8 ; B 42 -19 735 676 ; C -1 ; WX 500 ; N uni04E9 ; B 30 -14 471 463 ; C -1 ; WX 635 ; N uni04EE ; B 22 0 634 885 ; C -1 ; WX 444 ; N uni04EF ; B 29 -14 422 676 ; C -1 ; WX 500 ; N uni2002 ; B 0 0 0 0 ; C -1 ; WX 500 ; N uni203E ; B 0 753 500 822 ; C -1 ; WX 1000 ; N uni20AF ; B 34 -190 937 697 ; C -1 ; WX 996 ; N uni20DD ; B 139 2 858 721 ; C -1 ; WX 572 ; N uni210F ; B 42 -13 530 718 ; C -1 ; WX 867 ; N uni2112 ; B 42 -9 826 769 ; C -1 ; WX 759 ; N uni211E ; B 62 0 669 626 ; C -1 ; WX 609 ; N uni2120 ; B 26 379 565 689 ; C -1 ; WX 611 ; N uni2126 ; B 23 0 590 686 ; C -1 ; WX 608 ; N uni2128 ; B -6 -201 589 706 ; C -1 ; WX 664 ; N uni212D ; B 53 -74 671 706 ; C -1 ; WX 442 ; N uni212F ; B -23 -14 459 468 ; C -1 ; WX 442 ; N uni2136 ; B 27 0 455 537 ; C -1 ; WX 332 ; N uni2137 ; B 52 -3 305 542 ; C -1 ; WX 719 ; N uni2196 ; B -4 -52 722 665 ; C -1 ; WX 719 ; N uni2197 ; B -4 -52 722 665 ; C -1 ; WX 719 ; N uni2198 ; B -4 -56 722 663 ; C -1 ; WX 719 ; N uni2199 ; B -4 -56 722 663 ; C -1 ; WX 996 ; N uni21C4 ; B 116 69 838 656 ; C -1 ; WX 996 ; N uni21C6 ; B 116 69 838 656 ; C -1 ; WX 719 ; N uni21D5 ; B 116 -69 604 672 ; C -1 ; WX 479 ; N uni220D ; B 71 0 497 456 ; C -1 ; WX 996 ; N uni2213 ; B 215 0 777 583 ; C -1 ; WX 167 ; N uni2215 ; B -168 -12 329 688 ; C -1 ; WX 250 ; N uni2219 ; B 41 248 210 417 ; C -1 ; WX 719 ; N uni2223 ; B 314 -251 387 756 ; C -1 ; WX 719 ; N uni2225 ; B 249 -255 471 895 ; C -1 ; WX 1000 ; N uni2227 ; B 243 0 757 513 ; C -1 ; WX 1000 ; N uni2228 ; B 243 0 757 513 ; C -1 ; WX 996 ; N uni222E ; B 236 -138 760 839 ; C -1 ; WX 996 ; N uni2235 ; B 185 0 811 630 ; C -1 ; WX 996 ; N uni2237 ; B 185 0 811 630 ; C -1 ; WX 996 ; N uni2262 ; B 210 3 824 577 ; C -1 ; WX 996 ; N uni226A ; B 167 17 827 650 ; C -1 ; WX 996 ; N uni226B ; B 167 17 827 650 ; C -1 ; WX 996 ; N uni2285 ; B 176 -71 813 697 ; C -1 ; WX 1000 ; N uni2295 ; B 140 -3 860 716 ; C -1 ; WX 996 ; N uni2296 ; B 138 -25 858 696 ; C -1 ; WX 996 ; N uni2298 ; B 139 -24 856 695 ; C -1 ; WX 996 ; N uni2299 ; B 138 -25 858 696 ; C -1 ; WX 996 ; N uni22A2 ; B 178 0 813 560 ; C -1 ; WX 996 ; N uni22A3 ; B 178 0 813 560 ; C -1 ; WX 996 ; N uni22A4 ; B 216 0 774 638 ; C -1 ; WX 996 ; N uni22BB ; B 213 -137 782 585 ; C -1 ; WX 996 ; N uni256D ; B 466 -252 1002 283 ; C -1 ; WX 996 ; N uni256E ; B -6 -252 530 283 ; C -1 ; WX 996 ; N uni256F ; B -6 220 530 755 ; C -1 ; WX 996 ; N uni2570 ; B 466 220 1002 755 ; C -1 ; WX 722 ; N uni25A1 ; B 125 124 592 591 ; C -1 ; WX 719 ; N uni25B5 ; B 122 37 598 508 ; C -1 ; WX 719 ; N uni25B9 ; B 126 31 592 512 ; C -1 ; WX 719 ; N uni25BF ; B 122 36 598 507 ; C -1 ; WX 719 ; N uni25C3 ; B 127 31 593 512 ; C -1 ; WX 996 ; N uni25C6 ; B 241 39 767 623 ; C -1 ; WX 996 ; N uni25C7 ; B 190 -11 811 676 ; C -1 ; WX 717 ; N uni301A ; B -12 -155 729 788 ; C -1 ; WX 717 ; N uni301B ; B -12 -155 729 788 ; C -1 ; WX 718 ; N uniEFBF ; B -145 3 747 880 ; C -1 ; WX 717 ; N uniEFC0 ; B 0 -192 471 883 ; C -1 ; WX 717 ; N uniEFC1 ; B 0 -194 471 884 ; C -1 ; WX 717 ; N uniEFC2 ; B -8 -247 727 749 ; C -1 ; WX 717 ; N uniEFC3 ; B -8 -247 727 749 ; C -1 ; WX 717 ; N uniEFC4 ; B 247 -192 719 883 ; C -1 ; WX 717 ; N uniEFC5 ; B 247 -194 719 884 ; C -1 ; WX 717 ; N uniEFC6 ; B 44 -247 675 750 ; C -1 ; WX 717 ; N uniEFC7 ; B 44 -247 675 749 ; C -1 ; WX 717 ; N uniEFC8 ; B 44 -247 675 749 ; C -1 ; WX 717 ; N uniEFC9 ; B 247 -194 471 883 ; C -1 ; WX 717 ; N uniEFCA ; B 124 -80 596 522 ; C -1 ; WX 717 ; N uniEFCB ; B 0 190 719 412 ; C -1 ; WX 717 ; N uniEFCC ; B 312 -189 748 880 ; C -1 ; WX 732 ; N uniEFCD ; B -13 -192 762 884 ; C -1 ; WX 717 ; N uniEFCE ; B 0 -192 668 182 ; C -1 ; WX 717 ; N uniEFCF ; B -27 -192 407 884 ; C -1 ; WX 717 ; N uniEFD0 ; B 0 510 639 884 ; C -1 ; WX 717 ; N uniEFD1 ; B -27 -192 748 884 ; C -1 ; WX 717 ; N uniEFD2 ; B -23 -192 747 883 ; C -1 ; WX 716 ; N uniEFD3 ; B -23 -192 746 884 ; C -1 ; WX 717 ; N uniEFD4 ; B 131 -247 596 749 ; C -1 ; WX 608 ; N uniEFD5 ; B 41 -245 571 495 ; C -1 ; WX 993 ; N uniEFD6 ; B 102 305 830 689 ; C -1 ; WX 993 ; N uniEFD7 ; B 116 -25 879 739 ; C -1 ; WX 993 ; N uniEFD8 ; B 116 -25 879 739 ; C -1 ; WX 993 ; N uniEFD9 ; B 22 269 971 668 ; C -1 ; WX 993 ; N uniEFDA ; B 116 -25 879 739 ; C -1 ; WX 993 ; N uniEFDB ; B 116 -25 879 739 ; C -1 ; WX 717 ; N uniEFDC ; B 87 -199 398 883 ; C -1 ; WX 717 ; N uniEFDD ; B 312 -247 414 882 ; C -1 ; WX 717 ; N uniEFDE ; B 144 -247 415 749 ; C -1 ; WX 717 ; N uniEFDF ; B 312 -247 595 749 ; C -1 ; WX 717 ; N uniEFE0 ; B 144 -247 413 751 ; C -1 ; WX 717 ; N uniEFE1 ; B 312 -247 582 749 ; C -1 ; WX 717 ; N uniEFE2 ; B 138 -247 416 749 ; C -1 ; WX 717 ; N uniEFE3 ; B 312 -247 581 750 ; C -1 ; WX 717 ; N uniEFE4 ; B 0 -192 399 883 ; C -1 ; WX 717 ; N uniEFE5 ; B 0 -194 399 884 ; C -1 ; WX 717 ; N uniEFE6 ; B 319 -192 719 883 ; C -1 ; WX 717 ; N uniEFE7 ; B 319 -194 719 884 ; C -1 ; WX 717 ; N uniEFE8 ; B 0 267 719 325 ; C -1 ; WX 717 ; N uniEFE9 ; B 0 804 719 947 ; C -1 ; WX 717 ; N uniEFEA ; B 0 804 719 884 ; C -1 ; WX 717 ; N uniEFEB ; B 0 -192 719 -113 ; C -1 ; WX 533 ; N uniEFEC ; B 44 -21 512 494 ; C -1 ; WX 993 ; N uniEFFA ; B 141 0 853 711 ; C -1 ; WX 993 ; N uniEFFB ; B 141 0 852 711 ; C -1 ; WX 993 ; N uniEFFC ; B 141 0 852 711 ; C -1 ; WX 993 ; N uniEFFD ; B 145 0 856 712 ; C -1 ; WX 772 ; N uniEFFE ; B 52 -11 721 686 ; C -1 ; WX 496 ; N uniEFFF ; B 16 276 479 741 ; C -1 ; WX 1000 ; N union ; B 280 0 720 559 ; C -1 ; WX 593 ; N universal ; B 22 0 571 577 ; C -1 ; WX 556 ; N uogonek ; B 16 -173 556 461 ; C -1 ; WX 1000 ; N upblock ; B 0 250 1000 750 ; C -1 ; WX 519 ; N upsilon ; B 57 -10 451 457 ; C -1 ; WX 519 ; N upsilondieresis ; B 57 -10 451 647 ; C -1 ; WX 519 ; N upsilondieresistonos ; B 57 -10 451 723 ; C -1 ; WX 519 ; N upsilontonos ; B 57 -10 451 698 ; C -1 ; WX 556 ; N uring ; B 16 -14 537 750 ; C -1 ; WX 556 ; N utilde ; B 16 -14 537 674 ; C -1 ; WX 722 ; N wacute ; B 23 -14 707 713 ; C -1 ; WX 722 ; N wcircumflex ; B 23 -14 707 704 ; C -1 ; WX 722 ; N wdieresis ; B 23 -14 707 667 ; C -1 ; WX 685 ; N weierstrass ; B 85 -169 604 402 ; C -1 ; WX 722 ; N wgrave ; B 23 -14 707 713 ; C -1 ; WX 446 ; N xi ; B 49 -178 422 727 ; C -1 ; WX 500 ; N yacute ; B 16 -205 480 713 ; C -1 ; WX 500 ; N ycircumflex ; B 16 -205 480 704 ; C -1 ; WX 500 ; N ydieresis ; B 16 -205 480 667 ; C -1 ; WX 500 ; N ygrave ; B 16 -205 480 713 ; C -1 ; WX 444 ; N zacute ; B 21 0 420 713 ; C -1 ; WX 444 ; N zcaron ; B 21 0 420 704 ; C -1 ; WX 444 ; N zdotaccent ; B 21 0 420 667 ; C -1 ; WX 300 ; N zerosuperior ; B 13 267 286 688 ; C -1 ; WX 413 ; N zeta ; B 37 -182 402 694 ; EndCharMetrics StartKernData StartKernPairs 3869 KPX A A 13 KPX A B 10 KPX A C -76 KPX A Ccedilla -77 KPX A G -69 KPX A J 16 KPX A O -69 KPX A Odieresis -69 KPX A Omicron -77 KPX A Phi -72 KPX A Psi -101 KPX A Q -69 KPX A T -60 KPX A Tau -61 KPX A Tcaron -60 KPX A Tcommaaccent -60 KPX A Theta -75 KPX A U -67 KPX A Uacute -67 KPX A Ucircumflex -67 KPX A Udieresis -67 KPX A Ugrave -67 KPX A Upsilon -78 KPX A V -130 KPX A W -120 KPX A X 10 KPX A Y -74 KPX A Yacute -74 KPX A Z 4 KPX A a -8 KPX A b -23 KPX A braceright -59 KPX A bracketright -54 KPX A c -39 KPX A ccedilla -44 KPX A comma -1 KPX A d -33 KPX A e -38 KPX A g -8 KPX A k 1 KPX A gamma -87 KPX A guillemotleft -55 KPX A guilsinglleft -69 KPX A hyphen -32 KPX A nu -77 KPX A o -43 KPX A parenright -51 KPX A period -2 KPX A phi -47 KPX A q -37 KPX A quotedblright -79 KPX A quoteright -111 KPX A quotesingle -115 KPX A sigma -49 KPX A t -30 KPX A u -32 KPX A udieresis -32 KPX A upsilon -61 KPX A upsilontonos -61 KPX A v -88 KPX A w -79 KPX A y -85 KPX A yacute -85 KPX A z 2 KPX AE T -26 KPX AE V -19 KPX AE W -20 KPX AE X -15 KPX AE Z -22 KPX Aacute C -76 KPX Aacute G -69 KPX Aacute O -69 KPX Aacute Q -69 KPX Aacute T -60 KPX Aacute Tcaron -60 KPX Aacute U -67 KPX Aacute V -130 KPX Aacute W -120 KPX Aacute Y -74 KPX Aacute a -8 KPX Aacute b -23 KPX Aacute c -39 KPX Aacute comma -1 KPX Aacute d -33 KPX Aacute e -38 KPX Aacute g -8 KPX Aacute guillemotleft -55 KPX Aacute guilsinglleft -69 KPX Aacute hyphen -32 KPX Aacute o -43 KPX Aacute period -2 KPX Aacute q -37 KPX Aacute quotedblright -79 KPX Aacute quoteright -111 KPX Aacute t -30 KPX Aacute u -32 KPX Aacute v -88 KPX Aacute w -79 KPX Aacute y -85 KPX Abreve T -60 KPX Abreve Tcaron -60 KPX Abreve Tcommaaccent -60 KPX Abreve Y -74 KPX Abreve Yacute -74 KPX Abreve y -85 KPX Abreve yacute -85 KPX Acircumflex C -76 KPX Acircumflex G -69 KPX Acircumflex O -69 KPX Acircumflex Q -69 KPX Acircumflex T -60 KPX Acircumflex Tcaron -60 KPX Acircumflex Tcommaaccent -60 KPX Acircumflex U -67 KPX Acircumflex V -130 KPX Acircumflex W -120 KPX Acircumflex Y -74 KPX Acircumflex Yacute -74 KPX Acircumflex comma -1 KPX Acircumflex period -2 KPX Acircumflex v -88 KPX Acircumflex w -79 KPX Acircumflex yacute -85 KPX Adieresis C -76 KPX Adieresis G -69 KPX Adieresis O -69 KPX Adieresis Q -69 KPX Adieresis T -60 KPX Adieresis U -67 KPX Adieresis V -130 KPX Adieresis W -120 KPX Adieresis Y -74 KPX Adieresis a -8 KPX Adieresis b -23 KPX Adieresis c -39 KPX Adieresis comma -1 KPX Adieresis d -33 KPX Adieresis g -8 KPX Adieresis guillemotleft -55 KPX Adieresis guilsinglleft -69 KPX Adieresis hyphen -32 KPX Adieresis o -43 KPX Adieresis period -2 KPX Adieresis q -37 KPX Adieresis quotedblright -79 KPX Adieresis quoteright -111 KPX Adieresis t -30 KPX Adieresis u -32 KPX Adieresis v -88 KPX Adieresis w -79 KPX Adieresis y -85 KPX Agrave C -76 KPX Agrave G -69 KPX Agrave O -69 KPX Agrave Q -69 KPX Agrave T -60 KPX Agrave U -67 KPX Agrave V -130 KPX Agrave W -120 KPX Agrave Y -74 KPX Agrave comma -1 KPX Agrave period -2 KPX Alpha O -66 KPX Alpha Omicron -75 KPX Alpha Phi -69 KPX Alpha Psi -102 KPX Alpha T -60 KPX Alpha Tau -61 KPX Alpha Theta -73 KPX Alpha Upsilon -78 KPX Alpha Y -75 KPX Alpha comma -1 KPX Alpha gamma -82 KPX Alpha guillemotright -20 KPX Alpha nu -77 KPX Alpha period -2 KPX Alpha phi -46 KPX Alpha sigma -49 KPX Alpha upsilon -65 KPX Alpha upsilontonos -65 KPX Alphatonos gamma -82 KPX Alphatonos nu -77 KPX Alphatonos phi -46 KPX Alphatonos sigma -49 KPX Aogonek C -76 KPX Aogonek T -60 KPX Aogonek Tcaron -60 KPX Aogonek Tcommaaccent -38 KPX Aogonek Y -74 KPX Aogonek Yacute -74 KPX Aogonek colon -12 KPX Aogonek comma 51 KPX Aogonek period -5 KPX Aogonek semicolon 14 KPX Aogonek y 70 KPX Aogonek yacute 70 KPX Aring C -76 KPX Aring G -69 KPX Aring O -69 KPX Aring Q -69 KPX Aring T -60 KPX Aring U -67 KPX Aring V -130 KPX Aring W -120 KPX Aring Y -74 KPX Aring a -8 KPX Aring b -23 KPX Aring c -39 KPX Aring comma -1 KPX Aring d -33 KPX Aring e -38 KPX Aring g -8 KPX Aring guillemotleft -55 KPX Aring guilsinglleft -69 KPX Aring hyphen -32 KPX Aring o -43 KPX Aring period -2 KPX Aring q -37 KPX Aring quotedblright -79 KPX Aring quoteright -111 KPX Aring t -30 KPX Aring u -32 KPX Aring v -88 KPX Aring w -79 KPX Aring y -85 KPX Atilde C -76 KPX Atilde G -69 KPX Atilde O -69 KPX Atilde Q -69 KPX Atilde T -60 KPX Atilde U -67 KPX Atilde V -130 KPX Atilde W -120 KPX Atilde Y -74 KPX Atilde comma -1 KPX Atilde period -2 KPX B A -35 KPX B AE -37 KPX B Aacute -35 KPX B Acircumflex -35 KPX B Adieresis -35 KPX B Aring -35 KPX B Atilde -35 KPX B C -19 KPX B Delta -39 KPX B J -15 KPX B O -12 KPX B OE -5 KPX B Oacute -12 KPX B Ocircumflex -12 KPX B Odieresis -12 KPX B Ograve -12 KPX B Oslash -12 KPX B S 1 KPX B T -22 KPX B V -46 KPX B W -52 KPX B Y -45 KPX B Z -25 KPX B lambda -42 KPX B y -24 KPX Beta A -33 KPX Beta Alpha -59 KPX Beta Delta -40 KPX Beta lambda -44 KPX C A -29 KPX C AE -31 KPX C Aacute -29 KPX C Adieresis -29 KPX C Aring -29 KPX C C -21 KPX C D 1 KPX C G -15 KPX C H -2 KPX C J -9 KPX C K -7 KPX C O -14 KPX C OE -4 KPX C Oacute -14 KPX C Odieresis -14 KPX C S 3 KPX C T -7 KPX C W -1 KPX C Z -17 KPX C a -3 KPX C adieresis -3 KPX C ae -7 KPX C colon 15 KPX C comma 8 KPX C e -9 KPX C hyphen -3 KPX C o -10 KPX C odieresis -10 KPX C oe -8 KPX C period 7 KPX C quotedblright 23 KPX C quoteright -9 KPX C quotesingle -4 KPX C s -2 KPX C semicolon 15 KPX C y -5 KPX Ccaron O -14 KPX Ccedilla A -33 KPX Chi O -62 KPX Chi Omicron -73 KPX Chi Theta -70 KPX Chi alpha -41 KPX Chi alphatonos -41 KPX Chi epsilontonos -38 KPX Chi o -56 KPX Chi omega -64 KPX Chi omicron -65 KPX Chi omicrontonos -65 KPX Chi tau -84 KPX D A -56 KPX D AE -62 KPX D Aacute -56 KPX D Acircumflex -56 KPX D Adieresis -56 KPX D Agrave -56 KPX D Aring -56 KPX D Atilde -56 KPX D E -14 KPX D J -41 KPX D T -7 KPX D V -61 KPX D W -52 KPX D X -51 KPX D Y -60 KPX D Z -19 KPX D a -1 KPX D adieresis -1 KPX D ae -5 KPX D e 3 KPX D hyphen 24 KPX D o 1 KPX D odieresis 1 KPX D oe 2 KPX Delta O -48 KPX Delta Omicron -57 KPX Delta Upsilon -78 KPX Delta Y -74 KPX Delta alphatonos -20 KPX Delta epsilon -27 KPX Delta epsilontonos -27 KPX Delta o -26 KPX Delta omegatonos -49 KPX Delta omicron -38 KPX Delta upsilon -53 KPX E C -12 KPX E Ccaron -12 KPX E F -3 KPX E O -5 KPX E Oacute -5 KPX E Odieresis -5 KPX E Omicron -14 KPX E Phi -6 KPX E S 9 KPX E T -18 KPX E Theta -12 KPX E V -10 KPX E W -12 KPX E X -3 KPX E Y -10 KPX E Z -11 KPX E a -3 KPX E b -12 KPX E c 3 KPX E d 3 KPX E delta -3 KPX E e 3 KPX E g -8 KPX E gamma -47 KPX E h -5 KPX E hyphen 23 KPX E i -5 KPX E j -31 KPX E k -8 KPX E l -5 KPX E nu -39 KPX E o 3 KPX E quotedblright 12 KPX E quoteright -20 KPX E quotesingle -18 KPX E s 4 KPX E t -10 KPX E tau -16 KPX E v -31 KPX E w -32 KPX E y -24 KPX E z -10 KPX Epsilon O -16 KPX Epsilon Omicron -27 KPX Epsilon Phi -21 KPX Epsilon Theta -24 KPX Epsilon delta -16 KPX Epsilon gamma -59 KPX Epsilon nu -51 KPX Epsilon tau -33 KPX Epsilontonos nu -59 KPX F A -79 KPX F AE -85 KPX F Aacute -79 KPX F Abreve -79 KPX F Acircumflex -79 KPX F Adieresis -79 KPX F Agrave -79 KPX F Aogonek -79 KPX F Aring -79 KPX F Atilde -79 KPX F C -15 KPX F G -10 KPX F J -43 KPX F O -8 KPX F Odieresis -8 KPX F S -1 KPX F T 5 KPX F W 11 KPX F Y 13 KPX F Z -9 KPX F a -46 KPX F aacute -46 KPX F adieresis -22 KPX F ae -49 KPX F aring -46 KPX F comma -60 KPX F e -51 KPX F eacute -51 KPX F h 7 KPX F hyphen -34 KPX F i -1 KPX F j -22 KPX F l 7 KPX F o -51 KPX F oacute -51 KPX F odieresis -25 KPX F oe -49 KPX F ohungarumlaut -24 KPX F oslash -51 KPX F period -61 KPX F quotedblright 35 KPX F quoteright 2 KPX F quotesingle 8 KPX F r -8 KPX F u -6 KPX F udieresis -1 KPX F uacute -1 KPX F uring -1 KPX F y -1 KPX G A -27 KPX G AE -29 KPX G Aacute -27 KPX G Acircumflex -27 KPX G Adieresis -27 KPX G Agrave -27 KPX G Aring -27 KPX G Atilde -27 KPX G H -23 KPX G S -6 KPX G T -41 KPX G V -34 KPX G W -35 KPX G X -31 KPX G Y -33 KPX G Z -27 KPX G a -11 KPX G adieresis -11 KPX G ae -15 KPX G colon 20 KPX G comma -1 KPX G e 4 KPX G hyphen 22 KPX G o 4 KPX G odieresis 4 KPX G oe 6 KPX G period -2 KPX G quotedblright 4 KPX G quoteright -28 KPX G quotesingle -32 KPX G semicolon 23 KPX G w -35 KPX G y -39 KPX Gamma A -91 KPX Gamma Alpha -109 KPX Gamma Delta -95 KPX Gamma Lambda -103 KPX Gamma O -1 KPX Gamma Omicron -13 KPX Gamma Y -4 KPX Gamma alpha -45 KPX Gamma alphatonos -45 KPX Gamma comma -104 KPX Gamma epsilon -40 KPX Gamma epsilontonos -40 KPX Gamma kappa -23 KPX Gamma nu -11 KPX Gamma o -43 KPX Gamma omicron -56 KPX Gamma period -105 KPX Gamma rho -60 KPX Gamma upsilon -28 KPX Gamma upsilontonos -26 KPX H A 20 KPX H AE 23 KPX H I 15 KPX H T 8 KPX H Y 17 KPX H a -1 KPX H adieresis -1 KPX H ae -3 KPX H y -32 KPX I A 20 KPX I AE 23 KPX I J 23 KPX I T 8 KPX I V 17 KPX I W 15 KPX I X 17 KPX I Y 17 KPX I Z 11 KPX I y -35 KPX J A -31 KPX J AE -30 KPX J Adieresis -31 KPX J Aring -31 KPX J K 9 KPX J Y 16 KPX J y -33 KPX K A 25 KPX K AE 28 KPX K B 22 KPX K C -64 KPX K D 23 KPX K E 22 KPX K F 22 KPX K G -57 KPX K H 19 KPX K I 20 KPX K J 28 KPX K L 20 KPX K M 23 KPX K N 22 KPX K O -57 KPX K OE -51 KPX K Oacute -57 KPX K Odieresis -57 KPX K Omicron -65 KPX K P 22 KPX K Phi -71 KPX K Q -57 KPX K R 17 KPX K S 12 KPX K T -3 KPX K U 5 KPX K V 5 KPX K W 4 KPX K X 22 KPX K Y 6 KPX K Z 16 KPX K a 3 KPX K adieresis 3 KPX K ae 1 KPX K alphatonos -16 KPX K aogonek 3 KPX K aring 3 KPX K braceright -33 KPX K bracketright -2 KPX K e -26 KPX K epsilontonos -16 KPX K h 16 KPX K hyphen -49 KPX K i 16 KPX K j -35 KPX K l 16 KPX K o -31 KPX K oacute -31 KPX K odieresis -31 KPX K oe -29 KPX K omega -41 KPX K omicron -39 KPX K omicrontonos -39 KPX K quotedblright 4 KPX K quoteright -28 KPX K quotesingle -25 KPX K u -20 KPX K udieresis -20 KPX K upsilon -49 KPX K upsilontonos -49 KPX K w -80 KPX K y -85 KPX Kappa O -81 KPX Kappa Omicron -92 KPX Kappa Phi -88 KPX Kappa alphatonos -50 KPX Kappa colon -37 KPX Kappa comma -20 KPX Kappa epsilontonos -48 KPX Kappa o -65 KPX Kappa omega -74 KPX Kappa omicron -74 KPX Kappa omicrontonos -74 KPX Kappa period -22 KPX Kappa semicolon -37 KPX Kappa upsilon -80 KPX Kappa upsilontonos -80 KPX L A -2 KPX L Aacute -2 KPX L Adieresis -2 KPX L Aring -2 KPX L C -11 KPX L Ccaron -11 KPX L Ccedilla -12 KPX L G -4 KPX L M -4 KPX L O -4 KPX L OE 2 KPX L Oacute -4 KPX L Ocircumflex -4 KPX L Odieresis -4 KPX L Ograve -4 KPX L Otilde -4 KPX L S 2 KPX L T -75 KPX L Tcaron -75 KPX L Tcommaaccent -74 KPX L U -29 KPX L Udieresis -29 KPX L V -104 KPX L W -87 KPX L Y -90 KPX L Yacute -90 KPX L Z -13 KPX L a -7 KPX L adieresis -7 KPX L braceright -32 KPX L bracketright -26 KPX L e 2 KPX L hyphen 24 KPX L i -10 KPX L j -37 KPX L o 2 KPX L odieresis 2 KPX L parenright -28 KPX L quotedblright -38 KPX L quoteright -70 KPX L quotesingle -99 KPX L u -13 KPX L udieresis -13 KPX L y -51 KPX L yacute -51 KPX Lambda O -68 KPX Lambda Omicron -77 KPX Lambda T -63 KPX Lambda Tau -64 KPX Lambda Theta -75 KPX Lambda Upsilon -81 KPX Lambda Y -77 KPX Lambda alphatonos -38 KPX Lambda comma -4 KPX Lambda epsilon -35 KPX Lambda epsilontonos -35 KPX Lambda guillemotright -23 KPX Lambda o -48 KPX Lambda omicron -56 KPX Lambda omicrontonos -60 KPX Lambda period -5 KPX Lambda quoteright -109 KPX Lambda upsilon -68 KPX Lcaron O -4 KPX Lcaron T -17 KPX Lcaron Tcaron -17 KPX Lcaron Tcommaaccent -17 KPX Lcaron V -13 KPX Lcaron Y -13 KPX Lcaron Yacute -13 KPX Lcaron v -45 KPX Lcaron yacute -38 KPX Lslash O -4 KPX Lslash T -75 KPX Lslash Tcaron -75 KPX Lslash Tcommaaccent -74 KPX Lslash V -104 KPX Lslash W -87 KPX Lslash Y -90 KPX Lslash Yacute -90 KPX Lslash colon 23 KPX Lslash comma 24 KPX Lslash period 23 KPX Lslash semicolon 23 KPX Lslash v -49 KPX Lslash w -46 KPX Lslash yacute -51 KPX M A 18 KPX M AE 21 KPX M N 15 KPX M T 6 KPX M W 13 KPX M Y 15 KPX M Z 9 KPX M epsilon -23 KPX M j -38 KPX M y -34 KPX Mu epsilon -31 KPX N A -19 KPX N AE -17 KPX N Aacute -19 KPX N Adieresis -19 KPX N Alpha -41 KPX N Aring -19 KPX N C -22 KPX N Ccedilla -22 KPX N G -16 KPX N O -15 KPX N Oacute -15 KPX N Odieresis -15 KPX N T 7 KPX N W 14 KPX N Y 16 KPX N Z -14 KPX N a -17 KPX N aacute -17 KPX N adieresis -17 KPX N ae -17 KPX N aring -17 KPX N e -13 KPX N eacute -13 KPX N epsilon -22 KPX N epsilontonos -25 KPX N j -37 KPX N o -17 KPX N oacute -17 KPX N odieresis -17 KPX N omega -37 KPX N oslash -13 KPX N period -1 KPX N u -16 KPX N udieresis -16 KPX N y -28 KPX Nu A -25 KPX Nu Alpha -46 KPX Nu epsilon -30 KPX Nu epsilontonos -30 KPX Nu o -21 KPX Nu omega -44 KPX Nu omicron -33 KPX Nu omicrontonos -33 KPX O A -57 KPX O AE -59 KPX O Aacute -53 KPX O Adieresis -57 KPX O Alpha -75 KPX O Aring -53 KPX O C -7 KPX O Chi -69 KPX O Delta -54 KPX O G -1 KPX O J -37 KPX O Lambda -70 KPX O OE 6 KPX O P -12 KPX O Psi -27 KPX O S 5 KPX O T -10 KPX O Tau -20 KPX O Upsilon -66 KPX O V -61 KPX O W -54 KPX O X -52 KPX O Y -60 KPX O Z -22 KPX O Zeta -30 KPX O colon 34 KPX O comma -4 KPX O hyphen 24 KPX O lambda -42 KPX O period -5 KPX O semicolon 34 KPX O v -3 KPX O w -4 KPX O x 1 KPX O y -1 KPX O z -7 KPX OE T -11 KPX OE V -3 KPX OE W -5 KPX OE X -1 KPX OE Z -7 KPX Oacute A -57 KPX Oacute T -10 KPX Oacute V -61 KPX Oacute W -54 KPX Oacute Y -60 KPX Oacute Z -22 KPX Oacute colon 34 KPX Oacute comma -4 KPX Oacute period -5 KPX Oacute semicolon 34 KPX Ocircumflex T -10 KPX Ocircumflex V -61 KPX Ocircumflex Y -60 KPX Odieresis A -57 KPX Odieresis T -10 KPX Odieresis V -61 KPX Odieresis W -54 KPX Odieresis X -52 KPX Odieresis Y -60 KPX Odieresis colon 34 KPX Odieresis comma -4 KPX Odieresis period -5 KPX Odieresis semicolon 34 KPX Ograve T -10 KPX Ograve V -61 KPX Ograve Y -60 KPX Omicron A -63 KPX Omicron Alpha -84 KPX Omicron Chi -78 KPX Omicron Delta -62 KPX Omicron Lambda -79 KPX Omicron Psi -37 KPX Omicron Tau -30 KPX Omicron Upsilon -81 KPX Omicron Y -75 KPX Omicron Zeta -39 KPX Omicron lambda -47 KPX Omicrontonos lambda -28 KPX Oslash A -53 KPX Otilde T -10 KPX Otilde V -61 KPX Otilde Y -60 KPX P A -81 KPX P AE -95 KPX P Aacute -81 KPX P Abreve -81 KPX P Acircumflex -81 KPX P Adieresis -81 KPX P Alpha -103 KPX P Aogonek -81 KPX P Aring -81 KPX P B -14 KPX P C -4 KPX P D -17 KPX P E -18 KPX P F -18 KPX P G 1 KPX P H -16 KPX P I -16 KPX P J -69 KPX P K -21 KPX P L -15 KPX P M -14 KPX P N -15 KPX P O 2 KPX P OE 10 KPX P Omicron -9 KPX P P -18 KPX P Q 2 KPX P R -23 KPX P S 7 KPX P T 13 KPX P U -14 KPX P V -14 KPX P W -20 KPX P X -14 KPX P Y -13 KPX P Z -1 KPX P a -17 KPX P aacute -17 KPX P adieresis -17 KPX P ae -20 KPX P alpha -31 KPX P aring -17 KPX P comma -86 KPX P e -26 KPX P eacute -26 KPX P epsilon -28 KPX P epsilontonos -28 KPX P f 15 KPX P h -10 KPX P hyphen -40 KPX P i 14 KPX P j -6 KPX P l -9 KPX P o -29 KPX P oacute -29 KPX P odieresis -26 KPX P oe -27 KPX P omegatonos -56 KPX P omicron -42 KPX P omicrontonos -42 KPX P oslash -30 KPX P period -87 KPX P quotedblright 39 KPX P quoteright 7 KPX P quotesingle 9 KPX P t 11 KPX P w 9 KPX P y 14 KPX Phi A -59 KPX Phi Alpha -80 KPX Phi Lambda -74 KPX Phi T -17 KPX Phi Tau -29 KPX Phi Upsilon -83 KPX Phi Y -78 KPX Phi lambda -47 KPX Phi omega -26 KPX Phi omegatonos -26 KPX Phi omicron -12 KPX Phi omicrontonos -14 KPX Pi epsilontonos -30 KPX Pi lambda -3 KPX Pi o -22 KPX Pi omicron -34 KPX Psi A -89 KPX Psi Alpha -109 KPX Psi O -27 KPX Psi Omicron -39 KPX Q R -21 KPX Q U -19 KPX Q bracketright 6 KPX Q hyphen 24 KPX Q parenright 9 KPX R A 26 KPX R AE 29 KPX R B 23 KPX R C -37 KPX R Ccedilla -37 KPX R D 24 KPX R E 23 KPX R F 23 KPX R G -31 KPX R H 20 KPX R I 21 KPX R J 29 KPX R K 16 KPX R L 21 KPX R M 24 KPX R N 23 KPX R O -30 KPX R OE -24 KPX R Oacute -30 KPX R Odieresis -30 KPX R P 23 KPX R Q -30 KPX R R 18 KPX R S 13 KPX R T -27 KPX R Tcaron -27 KPX R Tcommaaccent -27 KPX R U -38 KPX R Udieresis -38 KPX R V -54 KPX R W -60 KPX R X 23 KPX R Y -53 KPX R Yacute -53 KPX R Z 17 KPX R a 4 KPX R aacute 4 KPX R adieresis 4 KPX R ae 2 KPX R aring 4 KPX R braceright -16 KPX R bracketright -10 KPX R e -25 KPX R eacute -25 KPX R hyphen -31 KPX R o -30 KPX R oacute -30 KPX R odieresis -30 KPX R oe -26 KPX R parenright -8 KPX R quotedblright -1 KPX R quoteright -33 KPX R quotesingle -31 KPX R u -19 KPX R uacute -19 KPX R udieresis -19 KPX R y -26 KPX R yacute -25 KPX Rho A -81 KPX Rho Alpha -103 KPX Rho Delta -88 KPX Rho Lambda -98 KPX Rho Omicron -12 KPX Rho Phi -2 KPX Rho Theta -9 KPX Rho Upsilon -33 KPX Rho Y -32 KPX Rho alpha -30 KPX Rho colon -7 KPX Rho comma -86 KPX Rho epsilon -28 KPX Rho epsilontonos -28 KPX Rho o -29 KPX Rho omegatonos -56 KPX Rho omicron -42 KPX Rho omicrontonos -42 KPX Rho period -87 KPX S A -25 KPX S AE -27 KPX S Aacute -25 KPX S Adieresis -25 KPX S Aring -25 KPX S C -11 KPX S G -5 KPX S J -8 KPX S O -4 KPX S OE 2 KPX S S 11 KPX S T -17 KPX S V -9 KPX S W -11 KPX S Y -9 KPX S Z -15 KPX S a -6 KPX S adieresis -6 KPX S ae -8 KPX S h -7 KPX S hyphen 24 KPX S i -5 KPX S j -30 KPX S l -7 KPX S o -1 KPX S odieresis -1 KPX S q -3 KPX S quotedblright 16 KPX S quoteright -15 KPX S t -9 KPX S v -26 KPX S w -27 KPX S y -19 KPX Sigma O -14 KPX Sigma Omicron -23 KPX Sigma Theta -20 KPX Sigma chi -31 KPX Sigma o -6 KPX Sigma omicron -18 KPX Sigma tau -21 KPX T A -47 KPX T AE -44 KPX T Aacute -47 KPX T Abreve -47 KPX T Acircumflex -47 KPX T Adieresis -47 KPX T Agrave -47 KPX T Alpha -68 KPX T Aogonek -47 KPX T Aring -47 KPX T Atilde -47 KPX T B 10 KPX T C -17 KPX T D 11 KPX T E 10 KPX T F 10 KPX T G -11 KPX T H 8 KPX T I 8 KPX T J -44 KPX T K 3 KPX T L 9 KPX T Lambda -63 KPX T M 10 KPX T N 9 KPX T O -9 KPX T OE -1 KPX T Oacute -9 KPX T Ocircumflex -9 KPX T Odieresis -9 KPX T Ograve -9 KPX T Ohungarumlaut -9 KPX T Omicron -22 KPX T Oslash -10 KPX T Otilde -9 KPX T P 10 KPX T Phi -17 KPX T Q -10 KPX T R 5 KPX T S -3 KPX T T 3 KPX T Tau -4 KPX T U 10 KPX T V 10 KPX T W 8 KPX T X 10 KPX T Y 11 KPX T Z -10 KPX T a -69 KPX T aacute -48 KPX T adieresis -24 KPX T ae -70 KPX T alpha -81 KPX T alphatonos -65 KPX T aogonek -69 KPX T braceright -28 KPX T bracketright 2 KPX T c -89 KPX T cacute -65 KPX T ccedilla -89 KPX T colon -52 KPX T comma -64 KPX T e -84 KPX T eacute -59 KPX T eogonek -84 KPX T epsilon -88 KPX T epsilontonos -61 KPX T g -69 KPX T guillemotleft -98 KPX T guilsinglleft -112 KPX T h 5 KPX T hyphen -73 KPX T i -3 KPX T iacute -3 KPX T j -24 KPX T l 5 KPX T o -89 KPX T odieresis -27 KPX T oacute -63 KPX T ocircumflex -27 KPX T oe -87 KPX T ohungarumlaut -26 KPX T omegatonos -87 KPX T omicron -101 KPX T omicrontonos -76 KPX T oslash -63 KPX T parenright 4 KPX T period -66 KPX T quotedblright 15 KPX T quoteright -17 KPX T quotesingle -10 KPX T r -62 KPX T racute -9 KPX T rho -88 KPX T s -60 KPX T sacute -41 KPX T scedilla -60 KPX T semicolon -52 KPX T sigma -92 KPX T u -89 KPX T udieresis -3 KPX T uacute -3 KPX T uhungarumlaut -3 KPX T upsilon -115 KPX T upsilontonos -46 KPX T uring -3 KPX T v -107 KPX T w -108 KPX T y -104 KPX T yacute 1 KPX T zeta -16 KPX Tau A -50 KPX Tau Alpha -71 KPX Tau Lambda -66 KPX Tau O -20 KPX Tau Omicron -33 KPX Tau Phi -30 KPX Tau T -5 KPX Tau Tau -13 KPX Tau Upsilon -8 KPX Tau Y 2 KPX Tau alpha -67 KPX Tau alphatonos -67 KPX Tau colon -33 KPX Tau comma -68 KPX Tau epsilon -74 KPX Tau epsilontonos -74 KPX Tau guillemotright -44 KPX Tau o -70 KPX Tau omegatonos -92 KPX Tau omicron -82 KPX Tau omicrontonos -82 KPX Tau period -70 KPX Tau quoteright -9 KPX Tau rho -85 KPX Tau semicolon -33 KPX Tau sigma -78 KPX Tau upsilon -62 KPX Tau upsilontonos -60 KPX Tau zeta -25 KPX Tcaron A -47 KPX Tcaron Aacute -47 KPX Tcaron Abreve -47 KPX Tcaron Acircumflex -47 KPX Tcaron Adieresis -47 KPX Tcaron Aogonek -47 KPX Tcaron J -44 KPX Tcaron Odieresis -9 KPX Tcaron aacute -48 KPX Tcaron aogonek -48 KPX Tcaron colon -24 KPX Tcaron comma -64 KPX Tcaron eacute -59 KPX Tcaron eogonek -59 KPX Tcaron hyphen -64 KPX Tcaron nacute -5 KPX Tcaron ncaron -5 KPX Tcaron oacute -61 KPX Tcaron ohungarumlaut -26 KPX Tcaron period -66 KPX Tcaron racute -9 KPX Tcaron rcaron -9 KPX Tcaron sacute -41 KPX Tcaron semicolon -24 KPX Tcaron tcaron -10 KPX Tcaron tcommaaccent -5 KPX Tcaron uacute -3 KPX Tcaron uhungarumlaut -3 KPX Tcaron yacute 1 KPX Tcaron zacute -17 KPX Tcaron zcaron -17 KPX Tcaron zdotaccent -17 KPX Tcommaaccent Aacute -47 KPX Tcommaaccent Abreve -47 KPX Tcommaaccent Acircumflex -47 KPX Tcommaaccent Adieresis -47 KPX Tcommaaccent Aogonek -47 KPX Tcommaaccent aacute -52 KPX Tcommaaccent aogonek -52 KPX Tcommaaccent eacute -61 KPX Tcommaaccent eogonek -61 KPX Tcommaaccent nacute -10 KPX Tcommaaccent ncaron -10 KPX Tcommaaccent oacute -65 KPX Tcommaaccent ohungarumlaut -26 KPX Tcommaaccent racute -14 KPX Tcommaaccent rcaron -14 KPX Tcommaaccent sacute -46 KPX Tcommaaccent tcaron -14 KPX Tcommaaccent tcommaaccent -9 KPX Tcommaaccent uacute -7 KPX Tcommaaccent uhungarumlaut -7 KPX Tcommaaccent uring -7 KPX Tcommaaccent yacute -3 KPX Tcommaaccent zacute -22 KPX Tcommaaccent zcaron -22 KPX Tcommaaccent zdotaccent -22 KPX Theta A -64 KPX Theta Alpha -83 KPX Theta Lambda -78 KPX Theta Upsilon -77 KPX Theta Y -71 KPX U A -55 KPX U AE -57 KPX U Aacute -55 KPX U Acircumflex -55 KPX U Adieresis -55 KPX U Aring -55 KPX U Atilde -55 KPX U S -8 KPX U T 7 KPX U V 16 KPX U W 14 KPX U X 15 KPX U Y 16 KPX U Z -14 KPX U comma -13 KPX U j -37 KPX U m -23 KPX U n -25 KPX U p -28 KPX U period -14 KPX U r -29 KPX U v -30 KPX U w -31 KPX U x -26 KPX U y -28 KPX U z -29 KPX Uacute A -55 KPX Uacute comma -13 KPX Uacute m -23 KPX Uacute n -25 KPX Uacute p -28 KPX Uacute period -14 KPX Uacute r -29 KPX Ucircumflex A -55 KPX Udieresis A -55 KPX Udieresis b 10 KPX Udieresis comma -13 KPX Udieresis m -23 KPX Udieresis n -25 KPX Udieresis p -28 KPX Udieresis period -14 KPX Udieresis r -29 KPX Ugrave A -55 KPX Upsilon A -66 KPX Upsilon Alpha -88 KPX Upsilon Delta -79 KPX Upsilon O -78 KPX Upsilon Omicron -89 KPX Upsilon Phi -85 KPX Upsilon T -11 KPX Upsilon Tau -18 KPX Upsilon Theta -86 KPX Upsilon comma -84 KPX Upsilon guillemotright -91 KPX Upsilon omicrontonos -104 KPX Upsilon period -86 KPX Upsilon pi -84 KPX Upsilontonos sigma -102 KPX V A -114 KPX V AE -113 KPX V Aacute -114 KPX V Abreve -114 KPX V Acircumflex -114 KPX V Adieresis -114 KPX V Agrave -114 KPX V Aogonek -114 KPX V Aring -114 KPX V Atilde -114 KPX V C -70 KPX V E 16 KPX V G -65 KPX V H 13 KPX V I 14 KPX V J -39 KPX V L 14 KPX V O -64 KPX V OE -53 KPX V Oacute -64 KPX V Ocircumflex -64 KPX V Odieresis -64 KPX V Ograve -64 KPX V Ohungarumlaut -64 KPX V Oslash -63 KPX V Otilde -64 KPX V R 11 KPX V S -26 KPX V T 7 KPX V U 16 KPX V Y 16 KPX V a -84 KPX V aacute -84 KPX V adieresis -25 KPX V ae -88 KPX V aogonek -84 KPX V braceright -22 KPX V bracketright 8 KPX V c -84 KPX V colon -52 KPX V comma -91 KPX V dcaron -84 KPX V e -84 KPX V eacute -84 KPX V ecaron -17 KPX V eogonek -84 KPX V g -85 KPX V guillemotleft -97 KPX V guilsinglleft -111 KPX V h 10 KPX V hyphen -68 KPX V i -13 KPX V iacute -54 KPX V j -37 KPX V l 10 KPX V o -84 KPX V oacute -84 KPX V ocircumflex -63 KPX V odieresis -28 KPX V oe -82 KPX V ohungarumlaut -68 KPX V oslash -84 KPX V parenright 10 KPX V period -92 KPX V r -61 KPX V racute -61 KPX V rcaron -17 KPX V sacute -74 KPX V semicolon -52 KPX V u -56 KPX V uacute -54 KPX V udieresis -35 KPX V uhungarumlaut -54 KPX V uring -54 KPX V y -54 KPX V yacute -52 KPX W A -102 KPX W AE -105 KPX W Aacute -102 KPX W Abreve -102 KPX W Acircumflex -102 KPX W Adieresis -102 KPX W Agrave -102 KPX W Aogonek -102 KPX W Aring -102 KPX W Atilde -102 KPX W B 17 KPX W C -56 KPX W D 18 KPX W E 17 KPX W F 17 KPX W G -50 KPX W H 14 KPX W I 15 KPX W J -38 KPX W K 10 KPX W L 15 KPX W M 17 KPX W N 15 KPX W O -49 KPX W OE -43 KPX W Oacute -49 KPX W Ocircumflex -49 KPX W Odieresis -49 KPX W Ograve -49 KPX W Ohungarumlaut -49 KPX W Oslash -49 KPX W Otilde -49 KPX W P 17 KPX W R 12 KPX W S -29 KPX W T 8 KPX W U 17 KPX W V 17 KPX W W 15 KPX W Y 17 KPX W Z -14 KPX W a -68 KPX W aacute -68 KPX W adieresis -29 KPX W ae -72 KPX W aogonek -68 KPX W braceright -2 KPX W bracketright 9 KPX W c -68 KPX W colon -32 KPX W comma -74 KPX W dcaron -64 KPX W e -68 KPX W eacute -68 KPX W ecaron -13 KPX W eogonek -68 KPX W g -70 KPX W guillemotleft -80 KPX W guilsinglleft -94 KPX W h 11 KPX W hyphen -49 KPX W i -14 KPX W iacute -44 KPX W j -38 KPX W l 11 KPX W o -68 KPX W oacute -68 KPX W ocircumflex -64 KPX W odieresis -32 KPX W oe -67 KPX W ohungarumlaut -63 KPX W oslash -68 KPX W parenright 11 KPX W period -75 KPX W quotedblright 15 KPX W quoteright -17 KPX W quotesingle -15 KPX W r -51 KPX W racute -51 KPX W rcaron -13 KPX W sacute -59 KPX W semicolon -32 KPX W u -46 KPX W uacute -44 KPX W udieresis -39 KPX W uhungarumlaut -44 KPX W uring -44 KPX W y -44 KPX W yacute -43 KPX X A 18 KPX X AE 21 KPX X C -63 KPX X O -56 KPX X OE -49 KPX X Odieresis -56 KPX X Q -56 KPX X T 1 KPX X W 8 KPX X Y 10 KPX X a -3 KPX X ae -5 KPX X alpha -23 KPX X alphatonos -23 KPX X braceright -29 KPX X bracketright 1 KPX X e -33 KPX X eacute -33 KPX X epsilontonos -23 KPX X hyphen -43 KPX X o -38 KPX X odieresis -35 KPX X omega -48 KPX X omicron -46 KPX X omicrontonos -46 KPX X parenright 4 KPX X quotedblright 8 KPX X quoteright -24 KPX X quotesingle -21 KPX X tau -70 KPX X u -27 KPX X udieresis -27 KPX X y -92 KPX Xi alpha -8 KPX Xi alphatonos -8 KPX Xi upsilontonos -47 KPX Y A -65 KPX Y AE -62 KPX Y Aacute -65 KPX Y Abreve -65 KPX Y Acircumflex -65 KPX Y Adieresis -65 KPX Y Agrave -65 KPX Y Alpha -86 KPX Y Aogonek -65 KPX Y Aring -65 KPX Y Atilde -65 KPX Y C -71 KPX Y Delta -78 KPX Y G -66 KPX Y J -40 KPX Y O -65 KPX Y OE -54 KPX Y Oacute -65 KPX Y Ocircumflex -65 KPX Y Odieresis -65 KPX Y Ograve -65 KPX Y Omicron -81 KPX Y Oslash -64 KPX Y Otilde -65 KPX Y Phi -82 KPX Y Q -65 KPX Y S -27 KPX Y T 6 KPX Y Theta -75 KPX Y V 15 KPX Y W 13 KPX Y X 14 KPX Y Z -15 KPX Y a -87 KPX Y aacute -87 KPX Y adieresis -26 KPX Y ae -88 KPX Y aogonek -87 KPX Y braceright -23 KPX Y bracketright 7 KPX Y colon -58 KPX Y comma -81 KPX Y c -95 KPX Y d -90 KPX Y e -90 KPX Y eacute -90 KPX Y eogonek -90 KPX Y g -87 KPX Y guillemotleft -111 KPX Y guilsinglleft -125 KPX Y hyphen -89 KPX Y i -14 KPX Y iacute -59 KPX Y m -70 KPX Y n -72 KPX Y o -95 KPX Y odieresis -29 KPX Y oacute -95 KPX Y ohungarumlaut -69 KPX Y omicrontonos -86 KPX Y oslash -95 KPX Y p -69 KPX Y parenright 9 KPX Y period -82 KPX Y pi -82 KPX Y q -94 KPX Y quotedblright 14 KPX Y quoteright -18 KPX Y quotesingle -16 KPX Y r -76 KPX Y racute -76 KPX Y s -78 KPX Y semicolon -58 KPX Y u -73 KPX Y udieresis -36 KPX Y uacute -70 KPX Y uhungarumlaut -70 KPX Y v -75 KPX Y w -76 KPX Y z -76 KPX Yacute Aacute -65 KPX Yacute Abreve -65 KPX Yacute Acircumflex -65 KPX Yacute Adieresis -65 KPX Yacute Aogonek -65 KPX Yacute J -40 KPX Yacute aacute -87 KPX Yacute colon -58 KPX Yacute comma -81 KPX Yacute eacute -90 KPX Yacute eogonek -90 KPX Yacute hyphen -89 KPX Yacute oacute -95 KPX Yacute ohungarumlaut -69 KPX Yacute period -82 KPX Yacute scedilla -78 KPX Yacute semicolon -58 KPX Yacute uacute -70 KPX Z A 2 KPX Z AE 4 KPX Z E -1 KPX Z I -3 KPX Z O -5 KPX Z OE 1 KPX Z Oacute -5 KPX Z U -5 KPX Z W -6 KPX Z Y -4 KPX Z Z -8 KPX Z a -5 KPX Z adieresis -5 KPX Z ae -9 KPX Z braceright -3 KPX Z bracketright 3 KPX Z colon 27 KPX Z comma 26 KPX Z epsilon -11 KPX Z hyphen 25 KPX Z i -6 KPX Z oe 1 KPX Z omicron -11 KPX Z parenright 5 KPX Z period 25 KPX Z quotedblright -4 KPX Z quoteright -36 KPX Z quotesingle -37 KPX Z semicolon 27 KPX Z v -47 KPX Z w -44 KPX Z y -45 KPX Zeta O -4 KPX Zeta Omicron -14 KPX Zeta epsilon -12 KPX Zeta o 1 KPX Zeta omicron -10 KPX a comma 10 KPX a endash 23 KPX a g -3 KPX a germandbls -1 KPX a j -35 KPX a period 7 KPX a quoteright -32 KPX a s 4 KPX a t -14 KPX a v -39 KPX a w -40 KPX a x 6 KPX a y -41 KPX a z 3 KPX adieresis comma 10 KPX adieresis endash 23 KPX adieresis g -3 KPX adieresis germandbls -1 KPX adieresis j -35 KPX adieresis period 7 KPX adieresis quoteright -32 KPX adieresis s 4 KPX adieresis t -14 KPX adieresis v -39 KPX adieresis w -40 KPX adieresis x 6 KPX adieresis y -41 KPX adieresis z 3 KPX aacute v -39 KPX aacute w -40 KPX aacute y -41 KPX ae r -19 KPX ae v -33 KPX ae w -34 KPX ae y -35 KPX afii10017 afii10025 -33 KPX afii10017 afii10029 -8 KPX afii10017 afii10032 -76 KPX afii10017 afii10035 -80 KPX afii10017 afii10036 -65 KPX afii10017 afii10037 -55 KPX afii10017 afii10038 -76 KPX afii10017 afii10041 -120 KPX afii10017 afii10044 -62 KPX afii10017 afii10053 -63 KPX afii10017 afii10058 -22 KPX afii10017 afii10060 -44 KPX afii10017 afii10062 -66 KPX afii10017 afii10073 -24 KPX afii10017 afii10077 -17 KPX afii10017 afii10080 -53 KPX afii10017 afii10083 -47 KPX afii10017 afii10084 -56 KPX afii10017 afii10085 -86 KPX afii10017 afii10086 -38 KPX afii10017 afii10089 -106 KPX afii10017 afii10092 -51 KPX afii10017 afii10106 -19 KPX afii10017 afii10110 -90 KPX afii10017 colon -9 KPX afii10017 comma -1 KPX afii10017 guillemotright -20 KPX afii10017 hyphen -29 KPX afii10017 period -2 KPX afii10017 semicolon -6 KPX afii10018 afii10017 -58 KPX afii10018 afii10024 -44 KPX afii10018 afii10036 -49 KPX afii10018 afii10037 -47 KPX afii10018 afii10041 -37 KPX afii10018 afii10042 -28 KPX afii10018 afii10060 -32 KPX afii10018 afii10062 -58 KPX afii10018 afii10072 -40 KPX afii10018 afii10084 -32 KPX afii10018 afii10085 -58 KPX afii10018 afii10092 -34 KPX afii10018 afii10106 -36 KPX afii10018 afii10110 -44 KPX afii10019 afii10017 -59 KPX afii10019 afii10024 -45 KPX afii10019 afii10036 -33 KPX afii10019 afii10037 -60 KPX afii10019 afii10041 -61 KPX afii10019 afii10042 -26 KPX afii10019 afii10060 -15 KPX afii10019 afii10062 -76 KPX afii10019 afii10072 -30 KPX afii10019 afii10084 -37 KPX afii10019 afii10085 -33 KPX afii10019 afii10089 -48 KPX afii10019 afii10092 -39 KPX afii10019 afii10106 -37 KPX afii10019 afii10110 -25 KPX afii10020 afii10021 -57 KPX afii10020 afii10029 -86 KPX afii10020 afii10032 -40 KPX afii10020 afii10035 -49 KPX afii10020 afii10036 -24 KPX afii10020 afii10037 -22 KPX afii10020 afii10038 -44 KPX afii10020 afii10041 -12 KPX afii10020 afii10053 -29 KPX afii10020 afii10058 -100 KPX afii10020 afii10060 -7 KPX afii10020 afii10062 -33 KPX afii10020 afii10065 -89 KPX afii10020 afii10067 -53 KPX afii10020 afii10069 -68 KPX afii10020 afii10070 -95 KPX afii10020 afii10072 -40 KPX afii10020 afii10073 -51 KPX afii10020 afii10074 -53 KPX afii10020 afii10076 -53 KPX afii10020 afii10077 -100 KPX afii10020 afii10078 -62 KPX afii10020 afii10079 -61 KPX afii10020 afii10080 -97 KPX afii10020 afii10081 -56 KPX afii10020 afii10082 -69 KPX afii10020 afii10083 -93 KPX afii10020 afii10084 -47 KPX afii10020 afii10085 -42 KPX afii10020 afii10086 -81 KPX afii10020 afii10087 -33 KPX afii10020 afii10088 -61 KPX afii10020 afii10089 -57 KPX afii10020 afii10092 -49 KPX afii10020 afii10096 -49 KPX afii10020 afii10097 -92 KPX afii10020 afii10101 -84 KPX afii10020 afii10106 -102 KPX afii10020 afii10110 -28 KPX afii10020 colon -54 KPX afii10020 comma -112 KPX afii10020 hyphen -94 KPX afii10020 period -113 KPX afii10020 semicolon -58 KPX afii10022 afii10038 -30 KPX afii10024 afii10025 -25 KPX afii10024 afii10032 -70 KPX afii10024 afii10035 -75 KPX afii10024 afii10038 -73 KPX afii10024 afii10053 -56 KPX afii10024 afii10065 -23 KPX afii10024 afii10066 -54 KPX afii10024 afii10070 -39 KPX afii10024 afii10073 -17 KPX afii10024 afii10080 -52 KPX afii10024 afii10083 -40 KPX afii10024 afii10084 -48 KPX afii10024 afii10085 -93 KPX afii10024 afii10086 -30 KPX afii10024 afii10089 -114 KPX afii10024 afii10101 -39 KPX afii10024 afii10110 -83 KPX afii10025 afii10017 -47 KPX afii10025 afii10021 -17 KPX afii10025 afii10024 -33 KPX afii10025 afii10025 6 KPX afii10025 afii10029 -5 KPX afii10025 afii10036 -22 KPX afii10025 afii10037 -41 KPX afii10025 afii10039 -45 KPX afii10025 afii10041 -31 KPX afii10025 afii10049 -22 KPX afii10025 afii10058 -19 KPX afii10025 afii10060 -5 KPX afii10025 afii10062 -52 KPX afii10025 afii10077 -22 KPX afii10025 afii10084 -22 KPX afii10025 afii10085 -24 KPX afii10025 afii10087 -15 KPX afii10025 afii10089 -39 KPX afii10025 afii10097 -22 KPX afii10025 afii10106 -24 KPX afii10025 afii10110 -16 KPX afii10028 afii10025 -34 KPX afii10028 afii10032 -79 KPX afii10028 afii10035 -84 KPX afii10028 afii10038 -82 KPX afii10028 afii10053 -65 KPX afii10028 afii10065 -32 KPX afii10028 afii10066 -63 KPX afii10028 afii10070 -48 KPX afii10028 afii10073 -26 KPX afii10028 afii10080 -61 KPX afii10028 afii10083 -49 KPX afii10028 afii10084 -57 KPX afii10028 afii10085 -102 KPX afii10028 afii10086 -39 KPX afii10028 afii10089 -123 KPX afii10028 afii10101 -48 KPX afii10028 afii10110 -92 KPX afii10032 afii10017 -84 KPX afii10032 afii10021 -60 KPX afii10032 afii10024 -70 KPX afii10032 afii10025 -17 KPX afii10032 afii10029 -39 KPX afii10032 afii10036 -33 KPX afii10032 afii10037 -66 KPX afii10032 afii10039 -78 KPX afii10032 afii10041 -49 KPX afii10032 afii10044 -28 KPX afii10032 afii10049 -40 KPX afii10032 afii10058 -53 KPX afii10032 afii10060 -16 KPX afii10032 afii10062 -86 KPX afii10032 afii10077 -52 KPX afii10032 afii10106 -54 KPX afii10034 afii10017 -103 KPX afii10034 afii10021 -76 KPX afii10034 afii10029 -83 KPX afii10034 afii10035 -20 KPX afii10034 afii10041 -31 KPX afii10034 afii10049 -23 KPX afii10034 afii10058 -97 KPX afii10034 afii10065 -35 KPX afii10034 afii10067 -11 KPX afii10034 afii10068 -11 KPX afii10034 afii10069 -26 KPX afii10034 afii10070 -40 KPX afii10034 afii10073 -13 KPX afii10034 afii10077 -59 KPX afii10034 afii10080 -42 KPX afii10034 afii10083 -39 KPX afii10034 afii10086 -28 KPX afii10034 afii10101 -30 KPX afii10034 afii10106 -61 KPX afii10034 colon -7 KPX afii10034 comma -86 KPX afii10034 hyphen -37 KPX afii10034 period -87 KPX afii10034 semicolon -11 KPX afii10035 afii10017 -71 KPX afii10035 afii10024 -35 KPX afii10035 afii10025 -11 KPX afii10035 afii10029 -22 KPX afii10035 afii10032 -37 KPX afii10035 afii10035 -43 KPX afii10035 afii10036 -32 KPX afii10035 afii10037 -30 KPX afii10035 afii10038 -41 KPX afii10035 afii10039 -34 KPX afii10035 afii10049 -45 KPX afii10035 afii10058 -36 KPX afii10035 afii10060 -15 KPX afii10035 afii10062 -41 KPX afii10035 afii10084 -41 KPX afii10035 afii10085 -37 KPX afii10035 afii10089 -52 KPX afii10035 afii10106 -46 KPX afii10035 afii10110 -23 KPX afii10036 afii10017 -74 KPX afii10036 afii10021 -53 KPX afii10036 afii10025 -26 KPX afii10036 afii10029 -73 KPX afii10036 afii10032 -36 KPX afii10036 afii10035 -45 KPX afii10036 afii10036 -20 KPX afii10036 afii10037 -18 KPX afii10036 afii10038 -40 KPX afii10036 afii10049 -39 KPX afii10036 afii10053 -24 KPX afii10036 afii10058 -87 KPX afii10036 afii10060 -2 KPX afii10036 afii10062 -29 KPX afii10036 afii10065 -85 KPX afii10036 afii10067 -48 KPX afii10036 afii10068 -48 KPX afii10036 afii10069 -59 KPX afii10036 afii10070 -82 KPX afii10036 afii10072 -35 KPX afii10036 afii10073 -46 KPX afii10036 afii10074 -49 KPX afii10036 afii10076 -48 KPX afii10036 afii10077 -82 KPX afii10036 afii10078 -57 KPX afii10036 afii10079 -56 KPX afii10036 afii10080 -84 KPX afii10036 afii10081 -52 KPX afii10036 afii10082 -64 KPX afii10036 afii10083 -82 KPX afii10036 afii10084 -42 KPX afii10036 afii10085 -38 KPX afii10036 afii10086 -73 KPX afii10036 afii10087 -28 KPX afii10036 afii10088 -56 KPX afii10036 afii10089 -53 KPX afii10036 afii10092 -44 KPX afii10036 afii10097 -71 KPX afii10036 afii10101 -72 KPX afii10036 afii10106 -84 KPX afii10036 afii10110 -24 KPX afii10036 colon -36 KPX afii10036 comma -70 KPX afii10036 guillemotright -46 KPX afii10036 hyphen -71 KPX afii10036 period -72 KPX afii10036 semicolon -36 KPX afii10037 afii10017 -155 KPX afii10037 afii10021 -50 KPX afii10037 afii10025 -23 KPX afii10037 afii10029 -79 KPX afii10037 afii10032 -89 KPX afii10037 afii10035 -99 KPX afii10037 afii10036 -17 KPX afii10037 afii10037 -15 KPX afii10037 afii10038 -94 KPX afii10037 afii10041 -5 KPX afii10037 afii10049 -75 KPX afii10037 afii10053 -78 KPX afii10037 afii10058 -93 KPX afii10037 afii10060 -1 KPX afii10037 afii10065 -120 KPX afii10037 afii10066 -79 KPX afii10037 afii10069 -109 KPX afii10037 afii10070 -118 KPX afii10037 afii10072 -81 KPX afii10037 afii10073 -94 KPX afii10037 afii10074 -95 KPX afii10037 afii10076 -94 KPX afii10037 afii10077 -142 KPX afii10037 afii10078 -103 KPX afii10037 afii10079 -100 KPX afii10037 afii10080 -120 KPX afii10037 afii10081 -98 KPX afii10037 afii10082 -106 KPX afii10037 afii10083 -117 KPX afii10037 afii10084 -88 KPX afii10037 afii10085 -84 KPX afii10037 afii10086 -113 KPX afii10037 afii10087 -74 KPX afii10037 afii10088 -100 KPX afii10037 afii10089 -99 KPX afii10037 afii10096 -93 KPX afii10037 afii10097 -123 KPX afii10037 afii10101 -112 KPX afii10037 afii10106 -144 KPX afii10037 afii10110 -74 KPX afii10037 colon -76 KPX afii10037 comma -126 KPX afii10037 guillemotright -84 KPX afii10037 hyphen -91 KPX afii10037 period -127 KPX afii10037 semicolon -76 KPX afii10038 afii10017 -88 KPX afii10038 afii10021 -70 KPX afii10038 afii10024 -75 KPX afii10038 afii10029 -51 KPX afii10038 afii10037 -70 KPX afii10038 afii10039 -87 KPX afii10038 afii10041 -46 KPX afii10038 afii10044 -35 KPX afii10038 afii10049 -44 KPX afii10038 afii10058 -65 KPX afii10038 afii10062 -91 KPX afii10038 afii10069 -43 KPX afii10038 afii10077 -56 KPX afii10038 afii10106 -58 KPX afii10039 afii10025 -28 KPX afii10039 afii10032 -74 KPX afii10039 afii10035 -79 KPX afii10039 afii10038 -81 KPX afii10039 afii10053 -64 KPX afii10039 afii10065 -36 KPX afii10039 afii10070 -52 KPX afii10039 afii10073 -30 KPX afii10039 afii10080 -65 KPX afii10039 afii10083 -53 KPX afii10039 afii10084 -61 KPX afii10039 afii10085 -108 KPX afii10039 afii10086 -43 KPX afii10039 afii10089 -127 KPX afii10039 afii10101 -52 KPX afii10044 afii10036 -85 KPX afii10044 afii10037 -57 KPX afii10044 afii10041 -78 KPX afii10044 afii10044 -79 KPX afii10044 afii10060 -67 KPX afii10044 afii10062 -68 KPX afii10044 afii10092 -28 KPX afii10046 afii10036 -90 KPX afii10046 afii10037 -63 KPX afii10046 afii10041 -84 KPX afii10046 afii10044 -85 KPX afii10046 afii10060 -73 KPX afii10046 afii10062 -74 KPX afii10046 afii10092 -33 KPX afii10047 afii10017 -77 KPX afii10047 afii10021 -56 KPX afii10047 afii10029 -35 KPX afii10047 afii10036 -30 KPX afii10047 afii10037 -59 KPX afii10047 afii10041 -43 KPX afii10047 afii10044 -24 KPX afii10047 afii10049 -34 KPX afii10047 afii10058 -49 KPX afii10047 afii10060 -12 KPX afii10047 afii10062 -80 KPX afii10047 afii10106 -48 KPX afii10048 afii10017 -92 KPX afii10048 afii10021 -68 KPX afii10048 afii10024 -78 KPX afii10048 afii10025 -25 KPX afii10048 afii10029 -47 KPX afii10048 afii10036 -41 KPX afii10048 afii10037 -74 KPX afii10048 afii10039 -86 KPX afii10048 afii10041 -57 KPX afii10048 afii10044 -36 KPX afii10048 afii10049 -48 KPX afii10048 afii10058 -61 KPX afii10048 afii10060 -24 KPX afii10048 afii10062 -94 KPX afii10048 afii10077 -60 KPX afii10048 afii10106 -62 KPX afii10050 afii10021 -17 KPX afii10050 afii10029 -46 KPX afii10050 afii10032 -52 KPX afii10050 afii10035 -62 KPX afii10050 afii10036 15 KPX afii10050 afii10037 17 KPX afii10050 afii10038 -66 KPX afii10050 afii10041 27 KPX afii10050 afii10049 -38 KPX afii10050 afii10053 -41 KPX afii10050 afii10058 -60 KPX afii10050 afii10060 31 KPX afii10050 afii10062 6 KPX afii10050 afii10065 -100 KPX afii10050 afii10067 -85 KPX afii10050 afii10069 -63 KPX afii10050 afii10070 -107 KPX afii10050 afii10072 -60 KPX afii10050 afii10073 -94 KPX afii10050 afii10074 -86 KPX afii10050 afii10076 -85 KPX afii10050 afii10077 -86 KPX afii10050 afii10078 -94 KPX afii10050 afii10079 -89 KPX afii10050 afii10080 -109 KPX afii10050 afii10081 -89 KPX afii10050 afii10082 -115 KPX afii10050 afii10083 -106 KPX afii10050 afii10084 -125 KPX afii10050 afii10085 -125 KPX afii10050 afii10086 -82 KPX afii10050 afii10087 -65 KPX afii10050 afii10088 -89 KPX afii10050 afii10089 -140 KPX afii10050 afii10092 -120 KPX afii10050 afii10096 -86 KPX afii10050 afii10097 -75 KPX afii10050 afii10101 -96 KPX afii10050 afii10106 -88 KPX afii10050 afii10110 -31 KPX afii10052 afii10021 -53 KPX afii10052 afii10029 -82 KPX afii10052 afii10032 -36 KPX afii10052 afii10035 -45 KPX afii10052 afii10036 -20 KPX afii10052 afii10037 -18 KPX afii10052 afii10038 -40 KPX afii10052 afii10041 -8 KPX afii10052 afii10053 -24 KPX afii10052 afii10058 -96 KPX afii10052 afii10060 -2 KPX afii10052 afii10062 -29 KPX afii10052 afii10065 -85 KPX afii10052 afii10067 -48 KPX afii10052 afii10069 -63 KPX afii10052 afii10070 -90 KPX afii10052 afii10072 -35 KPX afii10052 afii10073 -46 KPX afii10052 afii10074 -49 KPX afii10052 afii10076 -48 KPX afii10052 afii10077 -96 KPX afii10052 afii10078 -57 KPX afii10052 afii10079 -56 KPX afii10052 afii10080 -92 KPX afii10052 afii10081 -52 KPX afii10052 afii10082 -64 KPX afii10052 afii10083 -89 KPX afii10052 afii10084 -42 KPX afii10052 afii10085 -38 KPX afii10052 afii10086 -77 KPX afii10052 afii10087 -28 KPX afii10052 afii10088 -56 KPX afii10052 afii10089 -53 KPX afii10052 afii10092 -44 KPX afii10052 afii10096 -45 KPX afii10052 afii10097 -88 KPX afii10052 afii10101 -80 KPX afii10052 afii10106 -98 KPX afii10052 afii10110 -24 KPX afii10058 afii10036 -95 KPX afii10058 afii10037 -67 KPX afii10058 afii10041 -87 KPX afii10058 afii10044 -89 KPX afii10058 afii10060 -73 KPX afii10058 afii10062 -78 KPX afii10058 afii10092 -37 KPX afii10059 afii10036 -77 KPX afii10059 afii10037 -49 KPX afii10059 afii10041 -70 KPX afii10059 afii10044 -72 KPX afii10059 afii10060 -55 KPX afii10059 afii10062 -60 KPX afii10059 afii10092 -19 KPX afii10061 afii10025 -39 KPX afii10061 afii10032 -80 KPX afii10061 afii10035 -86 KPX afii10061 afii10038 -83 KPX afii10061 afii10053 -66 KPX afii10061 afii10065 -37 KPX afii10061 afii10066 -69 KPX afii10061 afii10070 -54 KPX afii10061 afii10073 -31 KPX afii10061 afii10080 -66 KPX afii10061 afii10083 -54 KPX afii10061 afii10084 -63 KPX afii10061 afii10085 -109 KPX afii10061 afii10086 -45 KPX afii10061 afii10089 -131 KPX afii10061 afii10101 -54 KPX afii10061 afii10110 -102 KPX afii10062 afii10017 -157 KPX afii10062 afii10021 -49 KPX afii10062 afii10025 -22 KPX afii10062 afii10029 -78 KPX afii10062 afii10032 -88 KPX afii10062 afii10035 -98 KPX afii10062 afii10036 -16 KPX afii10062 afii10038 -93 KPX afii10062 afii10041 -4 KPX afii10062 afii10049 -74 KPX afii10062 afii10053 -77 KPX afii10062 afii10058 -92 KPX afii10062 afii10062 -25 KPX afii10062 afii10065 -120 KPX afii10062 afii10066 -79 KPX afii10062 afii10069 -109 KPX afii10062 afii10070 -122 KPX afii10062 afii10072 -81 KPX afii10062 afii10073 -94 KPX afii10062 afii10074 -94 KPX afii10062 afii10076 -94 KPX afii10062 afii10077 -141 KPX afii10062 afii10078 -103 KPX afii10062 afii10079 -100 KPX afii10062 afii10080 -125 KPX afii10062 afii10081 -97 KPX afii10062 afii10082 -106 KPX afii10062 afii10083 -122 KPX afii10062 afii10084 -88 KPX afii10062 afii10086 -113 KPX afii10062 afii10087 -74 KPX afii10062 afii10088 -100 KPX afii10062 afii10089 -98 KPX afii10062 afii10096 -92 KPX afii10062 afii10097 -123 KPX afii10062 afii10101 -113 KPX afii10062 afii10106 -143 KPX afii10065 afii10084 -38 KPX afii10065 afii10085 -54 KPX afii10065 afii10089 -69 KPX afii10065 afii10106 -16 KPX afii10065 afii10110 -48 KPX afii10066 afii10072 -43 KPX afii10066 afii10073 -23 KPX afii10066 afii10084 -23 KPX afii10066 afii10085 -58 KPX afii10066 afii10087 -45 KPX afii10066 afii10089 -54 KPX afii10066 afii10097 -38 KPX afii10066 afii10110 -47 KPX afii10067 afii10072 -45 KPX afii10067 afii10073 -29 KPX afii10067 afii10084 -46 KPX afii10067 afii10085 -71 KPX afii10067 afii10087 -50 KPX afii10067 afii10089 -79 KPX afii10067 afii10097 -53 KPX afii10067 afii10110 -65 KPX afii10068 afii10069 -53 KPX afii10068 afii10077 -86 KPX afii10068 afii10080 -36 KPX afii10068 afii10083 -34 KPX afii10068 afii10086 -27 KPX afii10068 afii10097 -44 KPX afii10068 afii10101 -24 KPX afii10068 afii10106 -88 KPX afii10068 afii10110 -22 KPX afii10068 colon -20 KPX afii10068 comma -75 KPX afii10068 hyphen -24 KPX afii10068 period -76 KPX afii10068 semicolon -20 KPX afii10070 afii10072 -36 KPX afii10070 afii10073 -12 KPX afii10070 afii10077 -28 KPX afii10070 afii10085 -54 KPX afii10070 afii10087 -41 KPX afii10070 afii10089 -51 KPX afii10070 afii10097 -35 KPX afii10070 afii10110 -48 KPX afii10072 afii10066 -25 KPX afii10072 afii10070 -39 KPX afii10072 afii10073 -16 KPX afii10072 afii10080 -43 KPX afii10072 afii10083 -39 KPX afii10072 afii10086 -30 KPX afii10072 afii10101 -34 KPX afii10072 afii10110 -4 KPX afii10073 afii10072 -21 KPX afii10073 afii10077 -20 KPX afii10073 afii10084 -21 KPX afii10073 afii10085 -38 KPX afii10073 afii10087 -27 KPX afii10073 afii10089 -53 KPX afii10073 afii10097 -29 KPX afii10073 afii10106 -22 KPX afii10073 afii10110 -32 KPX afii10075 afii10106 -36 KPX afii10076 afii10065 -47 KPX afii10076 afii10066 -50 KPX afii10076 afii10070 -64 KPX afii10076 afii10073 -41 KPX afii10076 afii10080 -72 KPX afii10076 afii10083 -64 KPX afii10076 afii10086 -55 KPX afii10076 afii10101 -59 KPX afii10076 afii10110 -29 KPX afii10080 afii10072 -42 KPX afii10080 afii10073 -22 KPX afii10080 afii10077 -41 KPX afii10080 afii10084 -22 KPX afii10080 afii10085 -57 KPX afii10080 afii10087 -44 KPX afii10080 afii10092 -24 KPX afii10080 afii10106 -43 KPX afii10080 afii10110 -46 KPX afii10082 afii10072 -51 KPX afii10082 afii10073 -34 KPX afii10082 afii10077 -52 KPX afii10082 afii10084 -37 KPX afii10082 afii10085 -66 KPX afii10082 afii10087 -53 KPX afii10082 afii10089 -70 KPX afii10082 afii10097 -47 KPX afii10082 afii10101 -21 KPX afii10082 afii10110 -59 KPX afii10082 comma -17 KPX afii10082 hyphen -7 KPX afii10082 period -18 KPX afii10083 afii10062 -68 KPX afii10083 afii10065 -32 KPX afii10083 afii10072 -34 KPX afii10083 afii10073 -12 KPX afii10083 afii10077 -27 KPX afii10083 afii10080 -30 KPX afii10083 afii10084 -18 KPX afii10083 afii10085 -36 KPX afii10083 afii10086 -18 KPX afii10083 afii10087 -27 KPX afii10083 afii10089 -50 KPX afii10083 afii10097 -37 KPX afii10083 afii10106 -29 KPX afii10084 afii10065 -30 KPX afii10084 afii10069 -41 KPX afii10084 afii10070 -22 KPX afii10084 afii10073 -22 KPX afii10084 afii10077 -74 KPX afii10084 afii10080 -23 KPX afii10084 afii10083 -20 KPX afii10084 afii10084 -12 KPX afii10084 afii10085 -16 KPX afii10084 afii10086 -14 KPX afii10084 afii10089 -31 KPX afii10084 afii10097 -32 KPX afii10084 afii10101 -10 KPX afii10084 afii10106 -76 KPX afii10084 afii10110 -10 KPX afii10084 colon -1 KPX afii10084 comma -51 KPX afii10084 guillemotright -4 KPX afii10084 hyphen -11 KPX afii10084 period -52 KPX afii10084 semicolon -1 KPX afii10085 afii10065 -56 KPX afii10085 afii10069 -39 KPX afii10085 afii10070 -57 KPX afii10085 afii10073 -26 KPX afii10085 afii10077 -72 KPX afii10085 afii10080 -63 KPX afii10085 afii10083 -57 KPX afii10085 afii10084 -18 KPX afii10085 afii10086 -48 KPX afii10085 afii10089 -29 KPX afii10085 afii10097 -59 KPX afii10085 afii10101 -51 KPX afii10085 afii10106 -74 KPX afii10085 colon -21 KPX afii10085 comma -65 KPX afii10085 guillemotright -26 KPX afii10085 hyphen -41 KPX afii10085 period -66 KPX afii10085 semicolon -21 KPX afii10086 afii10068 -24 KPX afii10086 afii10069 -30 KPX afii10086 afii10072 -30 KPX afii10086 afii10073 -13 KPX afii10086 afii10077 -31 KPX afii10086 afii10084 -15 KPX afii10086 afii10085 -47 KPX afii10086 afii10087 -34 KPX afii10086 afii10089 -47 KPX afii10086 afii10092 -17 KPX afii10086 afii10097 -28 KPX afii10086 afii10106 -33 KPX afii10086 afii10110 -37 KPX afii10087 afii10065 -32 KPX afii10087 afii10070 -47 KPX afii10087 afii10073 -26 KPX afii10087 afii10080 -53 KPX afii10087 afii10083 -47 KPX afii10087 afii10086 -39 KPX afii10087 afii10101 -40 KPX afii10087 afii10110 -11 KPX afii10092 afii10070 -30 KPX afii10092 afii10083 -31 KPX afii10092 afii10084 -76 KPX afii10092 afii10085 -86 KPX afii10092 afii10089 -83 KPX afii10092 afii10092 -76 KPX afii10092 afii10110 -76 KPX afii10094 afii10070 -39 KPX afii10094 afii10083 -40 KPX afii10094 afii10084 -85 KPX afii10094 afii10085 -95 KPX afii10094 afii10089 -92 KPX afii10094 afii10092 -85 KPX afii10094 afii10110 -85 KPX afii10095 afii10077 -29 KPX afii10095 afii10084 -10 KPX afii10095 afii10085 -49 KPX afii10095 afii10089 -42 KPX afii10095 afii10092 -12 KPX afii10095 afii10097 -25 KPX afii10095 afii10106 -31 KPX afii10095 afii10110 -34 KPX afii10096 afii10072 -57 KPX afii10096 afii10073 -37 KPX afii10096 afii10077 -56 KPX afii10096 afii10084 -36 KPX afii10096 afii10085 -72 KPX afii10096 afii10087 -59 KPX afii10096 afii10089 -68 KPX afii10096 afii10092 -38 KPX afii10096 afii10106 -58 KPX afii10096 afii10110 -61 KPX afii10098 afii10069 -34 KPX afii10098 afii10077 -66 KPX afii10098 afii10080 -50 KPX afii10098 afii10083 -47 KPX afii10098 afii10086 -35 KPX afii10098 afii10097 -46 KPX afii10098 afii10101 -38 KPX afii10098 afii10106 -68 KPX afii10100 afii10069 -53 KPX afii10100 afii10077 -85 KPX afii10100 afii10080 -35 KPX afii10100 afii10083 -33 KPX afii10100 afii10086 -27 KPX afii10100 afii10097 -44 KPX afii10100 afii10101 -23 KPX afii10100 afii10106 -87 KPX afii10106 afii10084 -89 KPX afii10106 afii10085 -99 KPX afii10106 afii10089 -96 KPX afii10106 afii10092 -88 KPX afii10106 afii10110 -88 KPX afii10107 afii10070 -46 KPX afii10107 afii10083 -47 KPX afii10107 afii10084 -93 KPX afii10107 afii10085 -107 KPX afii10107 afii10089 -100 KPX afii10107 afii10092 -92 KPX afii10107 afii10101 -38 KPX afii10107 afii10110 -92 KPX afii10109 afii10065 -42 KPX afii10109 afii10066 -44 KPX afii10109 afii10070 -48 KPX afii10109 afii10073 -36 KPX afii10109 afii10080 -50 KPX afii10109 afii10083 -48 KPX afii10109 afii10086 -40 KPX afii10109 afii10101 -41 KPX afii10109 afii10110 -24 KPX afii10110 afii10065 -51 KPX afii10110 afii10069 -34 KPX afii10110 afii10070 -47 KPX afii10110 afii10073 -21 KPX afii10110 afii10077 -66 KPX afii10110 afii10080 -49 KPX afii10110 afii10083 -46 KPX afii10110 afii10084 -12 KPX afii10110 afii10086 -38 KPX afii10110 afii10089 -23 KPX afii10110 afii10097 -54 KPX afii10110 afii10101 -36 KPX agrave v -39 KPX agrave w -40 KPX agrave y -41 KPX alpha colon 23 KPX alpha comma 13 KPX alpha delta -16 KPX alpha epsilon -4 KPX alpha exclam -9 KPX alpha gamma -2 KPX alpha guillemotright 17 KPX alpha o -9 KPX alpha omicron -21 KPX alpha omicrontonos -21 KPX alpha period 11 KPX alpha phi -14 KPX alpha pi 12 KPX alpha semicolon 27 KPX alpha sigma -17 KPX alpha tau -6 KPX alpha theta -18 KPX alpha upsilondieresis -18 KPX alpha upsilontonos -18 KPX alpha xi -15 KPX alpha zeta -8 KPX alphatonos colon 23 KPX alphatonos comma 13 KPX alphatonos delta -16 KPX alphatonos epsilon -4 KPX alphatonos gamma -2 KPX alphatonos guillemotright 17 KPX alphatonos o -9 KPX alphatonos omega -30 KPX alphatonos omicron -21 KPX alphatonos period 11 KPX alphatonos semicolon 27 KPX alphatonos sigma -17 KPX alphatonos theta -15 KPX alphatonos xi -15 KPX alphatonos zeta -8 KPX aring v -39 KPX aring w -40 KPX aring y -41 KPX asterisk period -14 KPX b asterisk -7 KPX b colon 18 KPX b comma -2 KPX b endash 37 KPX b g -9 KPX b j -37 KPX b period -3 KPX b s 1 KPX b semicolon 18 KPX b v -38 KPX b w -39 KPX b y -40 KPX b z -16 KPX backslash A 39 KPX backslash B 35 KPX backslash C 31 KPX backslash D 41 KPX backslash G 37 KPX backslash H 37 KPX backslash I 33 KPX backslash J 41 KPX backslash K 33 KPX backslash L 38 KPX backslash M 36 KPX backslash N 40 KPX backslash O 38 KPX backslash P 40 KPX backslash Q 38 KPX backslash R 30 KPX backslash S 57 KPX backslash T -9 KPX backslash U 31 KPX backslash V -17 KPX backslash W -8 KPX backslash X 35 KPX backslash Y -17 KPX backslash Z 34 KPX backslash d 62 KPX backslash eacute 58 KPX backslash f 60 KPX backslash fi 53 KPX backslash fl 53 KPX backslash g 57 KPX backslash i 59 KPX backslash j 29 KPX backslash l 59 KPX beta gamma -37 KPX beta lambda -45 KPX braceleft A -42 KPX braceleft AE -47 KPX braceleft J -39 KPX braceleft T -9 KPX braceleft W -2 KPX braceleft X -1 KPX braceleft Z -5 KPX braceleft b -5 KPX braceleft fi 10 KPX braceleft fl 10 KPX braceleft g -3 KPX braceleft h -1 KPX braceleft i 2 KPX braceleft j 16 KPX braceleft k -4 KPX braceleft l -1 KPX braceleft p -2 KPX braceleft quoteleft 7 KPX braceleft y -12 KPX bracketleft A -42 KPX bracketleft AE -48 KPX bracketleft J -33 KPX bracketleft T 2 KPX bracketleft V 10 KPX bracketleft W 9 KPX bracketleft X 10 KPX bracketleft Y 11 KPX bracketleft Z -2 KPX bracketleft b 4 KPX bracketleft f 2 KPX bracketleft fi 13 KPX bracketleft fl 17 KPX bracketleft g 3 KPX bracketleft h 5 KPX bracketleft i 5 KPX bracketleft j 41 KPX bracketleft k 2 KPX bracketleft l 5 KPX bracketleft quoteleft 8 KPX bracketleft y 5 KPX c J 14 KPX c a 3 KPX c adieresis 3 KPX c asterisk -13 KPX c c -10 KPX c colon 11 KPX c comma 1 KPX c e -11 KPX c endash 3 KPX c exclam -19 KPX c h -15 KPX c hyphen -12 KPX c j -32 KPX c k -18 KPX c l -15 KPX c o -12 KPX c odieresis -12 KPX c oacute -12 KPX c oe -10 KPX c period 1 KPX c question -55 KPX c quotedblright 21 KPX c quoteright -10 KPX c s 3 KPX c semicolon 11 KPX c t -8 KPX c u -11 KPX c udieresis -11 KPX c y -15 KPX ccaron e -11 KPX ccaron o -12 KPX chi alpha -29 KPX chi alphatonos -29 KPX chi epsilon -36 KPX chi epsilontonos -36 KPX chi o -32 KPX chi omega -58 KPX chi omegatonos -58 KPX chi omicron -44 KPX chi omicrontonos -44 KPX chi theta -22 KPX chi upsilontonos -24 KPX comma endash 35 KPX comma hyphen 15 KPX comma quotedblright 6 KPX comma quoteright -25 KPX d a -5 KPX d adieresis -5 KPX d braceright -8 KPX d bracketright -5 KPX d comma 1 KPX d endash 16 KPX d g -8 KPX d j -39 KPX d parenright -7 KPX d period -1 KPX d v -27 KPX d w -28 KPX d y -24 KPX d z 2 KPX dcaron a -66 KPX dcaron aacute -65 KPX dcaron colon -49 KPX dcaron comma -78 KPX dcaron e -77 KPX dcaron eacute -74 KPX dcaron m -21 KPX dcaron n -23 KPX dcaron o -81 KPX dcaron oacute -80 KPX dcaron period -79 KPX dcaron r -27 KPX dcaron s -59 KPX dcaron semicolon -49 KPX dcaron u -26 KPX dcaron uacute -20 KPX dcaron udieresis -20 KPX dcaron uring -20 KPX dcaron y -21 KPX dcaron yacute -16 KPX dcaron z -40 KPX delta nu -36 KPX e a 2 KPX e adieresis 2 KPX e asterisk -5 KPX e b -12 KPX e colon 24 KPX e comma 5 KPX e endash 29 KPX e exclam -23 KPX e f -7 KPX e g -6 KPX e germandbls -10 KPX e h -8 KPX e hyphen 9 KPX e j -33 KPX e k -8 KPX e l -8 KPX e period 4 KPX e question -57 KPX e quoteright -18 KPX e s 5 KPX e semicolon 24 KPX e t -10 KPX e v -29 KPX e w -30 KPX e x -25 KPX e y -31 KPX e z -11 KPX e zcaron -11 KPX eacute b -8 KPX eacute colon 24 KPX eacute comma 5 KPX eacute exclam -23 KPX eacute g -6 KPX eacute hyphen 9 KPX eacute l -7 KPX eacute period 4 KPX eacute q -5 KPX eacute question -39 KPX eacute quotedblright 13 KPX eacute quoteright -18 KPX eacute semicolon 24 KPX eacute t -10 KPX eacute v -29 KPX eacute w -30 KPX eacute y -31 KPX eacute z -11 KPX ecircumflex v -29 KPX ecircumflex w -30 KPX ecircumflex y -31 KPX endash a 19 KPX endash adieresis 19 KPX endash b 21 KPX endash c 42 KPX endash d 42 KPX endash e 42 KPX endash f 22 KPX endash g 22 KPX endash h 24 KPX endash i 24 KPX endash j -1 KPX endash k 23 KPX endash l 24 KPX endash m 21 KPX endash n 21 KPX endash o 42 KPX endash odieresis 42 KPX endash p 20 KPX endash q 38 KPX endash r 15 KPX endash s 34 KPX endash t 22 KPX endash u 24 KPX endash udieresis 24 KPX endash v -13 KPX endash w -7 KPX endash x -19 KPX endash y -14 KPX endash z -6 KPX eogonek zdotaccent -11 KPX epsilon chi -1 KPX epsilon delta -11 KPX epsilon epsilon -12 KPX epsilon epsilontonos -12 KPX epsilon lambda -30 KPX epsilon o -4 KPX epsilon omega -27 KPX epsilon omegatonos -27 KPX epsilon omicron -16 KPX epsilon omicrontonos -16 KPX epsilon phi -9 KPX epsilon sigma -12 KPX epsilon tau -16 KPX epsilon theta -20 KPX epsilon upsilon -32 KPX epsilon upsilontonos -31 KPX epsilon xi -12 KPX epsilon zeta -7 KPX epsilontonos delta -11 KPX epsilontonos lambda -30 KPX epsilontonos o -4 KPX epsilontonos omega -27 KPX epsilontonos omicron -16 KPX epsilontonos phi -9 KPX epsilontonos semicolon 20 KPX epsilontonos tau -16 KPX epsilontonos theta -20 KPX epsilontonos zeta -7 KPX exclam quotedblright 8 KPX exclam quoteright -24 KPX f a -18 KPX f aacute -18 KPX f adieresis 13 KPX f ae -19 KPX f aogonek -18 KPX f aring -16 KPX f asterisk 28 KPX f braceright 11 KPX f bracketright 34 KPX f c -28 KPX f colon -1 KPX f comma -12 KPX f d -28 KPX f e -28 KPX f eacute -28 KPX f endash -1 KPX f exclam 16 KPX f f 11 KPX f g -18 KPX f hyphen -23 KPX f i 21 KPX f iacute 12 KPX f j -2 KPX f l 37 KPX f o -32 KPX f oacute -32 KPX f odieresis 10 KPX f oe -26 KPX f oslash -28 KPX f parenright 33 KPX f period -14 KPX f question 26 KPX f quotedblright 50 KPX f quoteright 17 KPX f quotesingle 19 KPX f racute -8 KPX f s -9 KPX f semicolon -1 KPX f t -4 KPX f trademark 45 KPX f u -2 KPX f udieresis 3 KPX f uring -2 KPX f w -5 KPX f y -2 KPX f yacute 1 KPX f z -7 KPX g a -16 KPX g adieresis -16 KPX g ae -18 KPX g aring -16 KPX g asterisk -2 KPX g braceright -18 KPX g bracketright -3 KPX g colon 7 KPX g comma -6 KPX g d -21 KPX g e -20 KPX g eacute -20 KPX g endash 2 KPX g exclam -34 KPX g f 7 KPX g g -1 KPX g h 2 KPX g hyphen -20 KPX g j 41 KPX g l 2 KPX g o -20 KPX g oacute -20 KPX g odieresis -20 KPX g oe -19 KPX g p 4 KPX g parenright -7 KPX g period -8 KPX g question -29 KPX g quotedblright 18 KPX g quoteright -13 KPX g semicolon 7 KPX g t 4 KPX g v 4 KPX g w 3 KPX g y 6 KPX gamma alpha -7 KPX gamma alphatonos -7 KPX gamma delta -14 KPX gamma epsilon -17 KPX gamma epsilontonos -17 KPX gamma lambda -51 KPX gamma o -8 KPX gamma omega -36 KPX gamma omegatonos -36 KPX gamma omicron -21 KPX gamma omicrontonos -21 KPX gamma rho -27 KPX gamma upsilontonos -14 KPX gamma xi -28 KPX germandbls e -8 KPX germandbls k -19 KPX germandbls t -21 KPX germandbls w -44 KPX guillemotleft Alpha -30 KPX guillemotleft Alphatonos -30 KPX guillemotleft Etatonos -34 KPX guillemotleft Iotatonos -32 KPX guillemotleft Lambda -25 KPX guillemotleft Tau -44 KPX guillemotleft Upsilon -85 KPX guillemotleft afii10017 -30 KPX guillemotleft afii10029 4 KPX guillemotleft afii10036 -48 KPX guillemotleft afii10037 -43 KPX guillemotleft afii10041 -35 KPX guillemotleft afii10049 -15 KPX guillemotleft afii10077 -9 KPX guillemotleft afii10084 -6 KPX guillemotleft afii10085 -22 KPX guillemotleft afii10089 -34 KPX guillemotleft tau -4 KPX guillemotright A -43 KPX guillemotright AE -49 KPX guillemotright Aacute -43 KPX guillemotright Adieresis -43 KPX guillemotright Aring -43 KPX guillemotright T -103 KPX guillemotright V -101 KPX guillemotright W -82 KPX guillemotright Y -107 KPX guilsinglright A -57 KPX guilsinglright AE -63 KPX guilsinglright Aacute -57 KPX guilsinglright Adieresis -57 KPX guilsinglright Aring -57 KPX guilsinglright T -117 KPX guilsinglright V -115 KPX guilsinglright W -96 KPX guilsinglright Y -121 KPX h asterisk -16 KPX h endash 21 KPX h quoteright -31 KPX h v -35 KPX h y -37 KPX h yacute -37 KPX hyphen A -18 KPX hyphen AE -26 KPX hyphen Aacute -18 KPX hyphen Adieresis -18 KPX hyphen Aring -18 KPX hyphen C 16 KPX hyphen G 24 KPX hyphen J -42 KPX hyphen O 23 KPX hyphen Q 23 KPX hyphen S 23 KPX hyphen T -74 KPX hyphen V -72 KPX hyphen W -55 KPX hyphen X -62 KPX hyphen Y -81 KPX hyphen Z -27 KPX hyphen a -1 KPX hyphen adieresis -1 KPX hyphen afii10017 -39 KPX hyphen afii10036 -73 KPX hyphen afii10037 -58 KPX hyphen afii10084 -12 KPX hyphen afii10085 -40 KPX hyphen g 1 KPX hyphen s 13 KPX hyphen t -1 KPX hyphen v -36 KPX hyphen w -30 KPX hyphen x -38 KPX hyphen y -33 KPX hyphen z -15 KPX i T -18 KPX i asterisk -12 KPX i bracketright 2 KPX i endash 22 KPX i g -9 KPX i j -35 KPX i quotedblright 8 KPX i quoteright -23 KPX i v -21 KPX i w -22 KPX i z 1 KPX iacute v -21 KPX iotatonos delta -31 KPX j asterisk -13 KPX j braceright -6 KPX j bracketright -2 KPX j endash 20 KPX j eogonek -8 KPX j oacute -10 KPX j odieresis -10 KPX j parenright -3 KPX j y -20 KPX k a -4 KPX k aacute -4 KPX k adieresis -4 KPX k ae -5 KPX k aogonek -4 KPX k aring -4 KPX k asterisk -24 KPX k b -18 KPX k c -34 KPX k colon -3 KPX k comma 1 KPX k d -28 KPX k e -33 KPX k eacute -33 KPX k endash -24 KPX k eogonek -33 KPX k exclam -22 KPX k f 10 KPX k g -4 KPX k h 9 KPX k hyphen -46 KPX k i 9 KPX k j -26 KPX k k 6 KPX k l 9 KPX k m 9 KPX k n 6 KPX k o -38 KPX k oacute -38 KPX k odieresis -38 KPX k p -8 KPX k q -33 KPX k question -41 KPX k quotedblright -9 KPX k quoteright -41 KPX k r 2 KPX k s 4 KPX k semicolon -3 KPX k t -7 KPX k u -5 KPX k udieresis -5 KPX k v -8 KPX k w -9 KPX k x 10 KPX k y -5 KPX k z 6 KPX kappa alpha -23 KPX kappa alphatonos -23 KPX kappa comma -8 KPX kappa delta -36 KPX kappa epsilon -24 KPX kappa epsilontonos -24 KPX kappa guillemotright -4 KPX kappa o -31 KPX kappa omega -50 KPX kappa omegatonos -50 KPX kappa omicron -43 KPX kappa omicrontonos -43 KPX kappa period -10 KPX kappa phi -38 KPX kappa sigma -37 KPX kappa theta -31 KPX kappa upsilontonos -27 KPX l comma 5 KPX l endash 20 KPX l g -9 KPX l j -35 KPX l period 2 KPX l v -22 KPX l w -23 KPX l y -20 KPX l z 1 KPX lambda alphatonos -23 KPX lambda comma -6 KPX lambda epsilon -24 KPX lambda epsilontonos -24 KPX lambda gamma -92 KPX lambda guillemotright -1 KPX lambda nu -84 KPX lambda o -34 KPX lambda omega -49 KPX lambda omegatonos -50 KPX lambda omicron -45 KPX lambda omicrontonos -45 KPX lambda period -8 KPX lambda phi -39 KPX lambda quoteright -93 KPX lambda sigma -41 KPX lambda tau -63 KPX lambda upsilon -59 KPX lambda upsilontonos -59 KPX lambda xi -35 KPX lcaron a -65 KPX lcaron aacute -64 KPX lcaron ccaron -44 KPX lcaron colon -45 KPX lcaron comma -69 KPX lcaron d -72 KPX lcaron dcaron -72 KPX lcaron e -72 KPX lcaron eacute -70 KPX lcaron f -18 KPX lcaron g -65 KPX lcaron o -76 KPX lcaron oacute -76 KPX lcaron ocircumflex -27 KPX lcaron p -17 KPX lcaron period -70 KPX lcaron s -59 KPX lcaron scaron -15 KPX lcaron semicolon -45 KPX lcaron t -26 KPX lcaron u -25 KPX lcaron uacute -19 KPX lcaron uring -19 KPX lcaron v -28 KPX lcaron z -39 KPX lcaron zcaron -34 KPX m endash 22 KPX m g -7 KPX m j -38 KPX m p -17 KPX m v -34 KPX m w -35 KPX m y -36 KPX m z 3 KPX n T -57 KPX n endash 23 KPX n g -6 KPX n j -37 KPX n p -16 KPX n quoteright -28 KPX n v -33 KPX n w -34 KPX n y -35 KPX n z 4 KPX nu alpha -12 KPX nu alphatonos -12 KPX nu colon 14 KPX nu comma -36 KPX nu delta -20 KPX nu epsilontonos -22 KPX nu guillemotright 1 KPX nu lambda -56 KPX nu o -14 KPX nu omega -41 KPX nu omegatonos -41 KPX nu omicron -27 KPX nu omicrontonos -27 KPX nu period -33 KPX nu phi -21 KPX nu quoteright -6 KPX nu semicolon 14 KPX nu sigma -21 KPX nu upsilontonos -19 KPX o T -88 KPX o alpha 4 KPX o asterisk -5 KPX o chi -8 KPX o colon 21 KPX o comma 2 KPX o endash 43 KPX o g -6 KPX o gamma -23 KPX o j -31 KPX o lambda -40 KPX o nu -28 KPX o period 1 KPX o pi 17 KPX o quoteright -26 KPX o semicolon 21 KPX o t -10 KPX o tau 12 KPX o upsilon -32 KPX o v -40 KPX o w -38 KPX o x -29 KPX o y -42 KPX o z -13 KPX odieresis T -27 KPX odieresis asterisk -5 KPX odieresis colon 21 KPX odieresis comma 2 KPX odieresis endash 43 KPX odieresis g -6 KPX odieresis j -31 KPX odieresis period 1 KPX odieresis quoteright -26 KPX odieresis semicolon 21 KPX odieresis t -10 KPX odieresis v -40 KPX odieresis w -38 KPX odieresis x -29 KPX odieresis y -42 KPX odieresis z -13 KPX oacute v -40 KPX oacute w -38 KPX oacute y -42 KPX oacute zacute -13 KPX ocircumflex t -10 KPX oe u -11 KPX ograve v -40 KPX ograve w -38 KPX ograve y -42 KPX omega chi -28 KPX omega gamma -40 KPX omega lambda -59 KPX omega nu -45 KPX omega pi -7 KPX omega tau -13 KPX omegatonos chi -28 KPX omegatonos gamma -40 KPX omegatonos lambda -62 KPX omegatonos nu -45 KPX omegatonos pi -7 KPX omegatonos tau -13 KPX omicron alpha -7 KPX omicron chi -20 KPX omicron gamma -35 KPX omicron lambda -50 KPX omicron nu -40 KPX omicron pi 5 KPX omicron upsilon -44 KPX omicrontonos chi -20 KPX omicrontonos gamma -35 KPX omicrontonos nu -40 KPX omicrontonos pi 5 KPX p asterisk -3 KPX p endash 39 KPX p g -8 KPX p j -35 KPX p t -12 KPX p v -32 KPX p w -33 KPX p y -34 KPX p yacute -34 KPX p z -14 KPX parenleft A -39 KPX parenleft AE -40 KPX parenleft J -31 KPX parenleft T 4 KPX parenleft V 13 KPX parenleft W 11 KPX parenleft X 12 KPX parenleft Y 13 KPX parenleft Z 4 KPX parenleft b 7 KPX parenleft fi 19 KPX parenleft fl 19 KPX parenleft g -1 KPX parenleft h 7 KPX parenleft i 4 KPX parenleft j 41 KPX parenleft k 4 KPX parenleft l 7 KPX parenleft p -1 KPX parenleft quoteleft 17 KPX parenleft y 6 KPX period asterisk -15 KPX period endash 32 KPX period hyphen 12 KPX period onesuperior 7 KPX period quotedblright 3 KPX period quoteright -29 KPX period quotesingle -44 KPX period threesuperior 20 KPX period twosuperior 23 KPX phi tau 7 KPX pi alphatonos -5 KPX pi lambda -23 KPX pi o -5 KPX pi omegatonos -34 KPX pi omicron -18 KPX pi omicrontonos -18 KPX pi quoteright -5 KPX pi upsilontonos -9 KPX q braceright -7 KPX q bracketright -4 KPX q c -14 KPX q endash 19 KPX q parenright -6 KPX q u -16 KPX q udieresis -16 KPX question quotedblright 17 KPX question quoteright -14 KPX question quotesingle -12 KPX quotedblbase A 14 KPX quotedblbase AE 16 KPX quotedblbase C -11 KPX quotedblbase G -2 KPX quotedblbase J 22 KPX quotedblbase O -4 KPX quotedblbase Q -4 KPX quotedblbase S 34 KPX quotedblbase T -59 KPX quotedblbase Tcaron -59 KPX quotedblbase V -95 KPX quotedblbase W -76 KPX quotedblbase X 10 KPX quotedblbase Y -74 KPX quotedblbase Yacute -74 KPX quotedblbase Z 12 KPX quotedblbase g 4 KPX quotedblbase s 23 KPX quotedblbase v -60 KPX quotedblbase w -53 KPX quotedblbase y -5 KPX quotedblbase z 9 KPX quotedblleft A -62 KPX quotedblleft AE -80 KPX quotedblleft Aacute -62 KPX quotedblleft Adieresis -62 KPX quotedblleft Aring -62 KPX quotedblleft C 18 KPX quotedblleft G 22 KPX quotedblleft O 25 KPX quotedblleft OE 32 KPX quotedblleft Q 23 KPX quotedblleft S 27 KPX quotedblleft T 10 KPX quotedblleft V 14 KPX quotedblleft W 13 KPX quotedblleft X 14 KPX quotedblleft Y 15 KPX quotedblleft Z 14 KPX quotedblleft a 14 KPX quotedblleft adieresis 14 KPX quotedblleft ae 12 KPX quotedblleft c 5 KPX quotedblleft d 10 KPX quotedblleft e 10 KPX quotedblleft f 24 KPX quotedblleft fi 21 KPX quotedblleft fl 21 KPX quotedblleft g 17 KPX quotedblleft o 7 KPX quotedblleft odieresis 7 KPX quotedblleft oe 9 KPX quotedblleft q 3 KPX quotedblleft s 22 KPX quotedblleft t 21 KPX quotedblleft v 16 KPX quotedblleft w 17 KPX quotedblleft x 16 KPX quotedblleft y 17 KPX quotedblleft z 22 KPX quotedblright A -71 KPX quotedblright AE -95 KPX quotedblright Aacute -71 KPX quotedblright Adieresis -71 KPX quotedblright Aring -71 KPX quotedblright T 3 KPX quotedblright V 6 KPX quotedblright W 3 KPX quotedblright Y 6 KPX quoteleft A -94 KPX quoteleft AE -113 KPX quoteleft Aacute -94 KPX quoteleft Adieresis -94 KPX quoteleft Aring -94 KPX quoteleft C -14 KPX quoteleft G -10 KPX quoteleft O -7 KPX quoteleft Q -9 KPX quoteleft S -4 KPX quoteleft T -22 KPX quoteleft V -18 KPX quoteleft W -19 KPX quoteleft X -18 KPX quoteleft Y -17 KPX quoteleft Z -18 KPX quoteleft a -17 KPX quoteleft adieresis -17 KPX quoteleft ae -19 KPX quoteleft c -27 KPX quoteleft d -22 KPX quoteleft e -22 KPX quoteleft f -8 KPX quoteleft fi -11 KPX quoteleft fl -11 KPX quoteleft g -15 KPX quoteleft o -24 KPX quoteleft odieresis -24 KPX quoteleft oe -23 KPX quoteleft q -29 KPX quoteleft s -9 KPX quoteleft t -11 KPX quoteleft v -15 KPX quoteleft w -14 KPX quoteleft x -15 KPX quoteleft y -15 KPX quoteleft z -9 KPX quoteright A -90 KPX quoteright AE -114 KPX quoteright Aacute -90 KPX quoteright Adieresis -90 KPX quoteright Aring -90 KPX quoteright braceright 4 KPX quoteright bracketright 8 KPX quoteright comma -38 KPX quoteright d -31 KPX quoteright o -34 KPX quoteright odieresis -34 KPX quoteright parenright 17 KPX quoteright period -39 KPX quoteright r -27 KPX quoteright s -17 KPX quoteright sacute -17 KPX quoteright scaron -17 KPX quoteright scedilla -15 KPX quoteright t -20 KPX quoteright v -26 KPX quoteright w -24 KPX quoteright y -23 KPX quotesinglbase A -4 KPX quotesinglbase C -30 KPX quotesinglbase G -21 KPX quotesinglbase J 3 KPX quotesinglbase O -23 KPX quotesinglbase Q -23 KPX quotesinglbase S 15 KPX quotesinglbase T -78 KPX quotesinglbase V -114 KPX quotesinglbase W -95 KPX quotesinglbase Y -93 KPX quotesinglbase Z -6 KPX quotesinglbase g -14 KPX quotesinglbase s 4 KPX quotesinglbase v -79 KPX quotesinglbase w -72 KPX quotesinglbase y -24 KPX quotesinglbase z -9 KPX quotesingle A -97 KPX quotesingle T -12 KPX quotesingle V -12 KPX quotesingle W -14 KPX quotesingle X -12 KPX quotesingle Y -11 KPX quotesingle Z -13 KPX r a -5 KPX r aacute -5 KPX r acircumflex -5 KPX r adieresis -5 KPX r ae -8 KPX r agrave -5 KPX r aogonek -5 KPX r aring -5 KPX r asterisk -4 KPX r b -17 KPX r c -12 KPX r ccaron -12 KPX r ccedilla -10 KPX r colon -9 KPX r comma -66 KPX r d -9 KPX r dcaron -10 KPX r e -8 KPX r eacute -8 KPX r ecircumflex -8 KPX r egrave -8 KPX r endash -43 KPX r eogonek -8 KPX r exclam -38 KPX r f 10 KPX r g -4 KPX r h -15 KPX r hyphen -15 KPX r i 7 KPX r j -13 KPX r k -16 KPX r l -14 KPX r m 7 KPX r n 5 KPX r nacute 5 KPX r ncaron 5 KPX r o -11 KPX r oacute -11 KPX r ocircumflex -11 KPX r odieresis -11 KPX r oe -9 KPX r ograve -11 KPX r ohungarumlaut -11 KPX r oslash -10 KPX r p 2 KPX r period -68 KPX r q -15 KPX r question -38 KPX r quotedblright 26 KPX r quoteright -6 KPX r quotesingle -17 KPX r r 1 KPX r racute 1 KPX r rcaron 1 KPX r s 1 KPX r semicolon -9 KPX r t 7 KPX r tcaron 6 KPX r tcommaaccent 5 KPX r u 7 KPX r udieresis 7 KPX r uacute 7 KPX r uhungarumlaut 7 KPX r uring 7 KPX r v 5 KPX r w 4 KPX r x 9 KPX r y 5 KPX r yacute 5 KPX r z -1 KPX r zacute -1 KPX r zcaron -1 KPX r zdotaccent -1 KPX racute a -5 KPX racute comma -66 KPX racute d -9 KPX racute m 7 KPX racute n 5 KPX racute p 2 KPX racute period -68 KPX racute s 1 KPX racute t 7 KPX racute v 5 KPX racute z -1 KPX rcaron a -5 KPX rcaron aacute -5 KPX rcaron colon -9 KPX rcaron comma -66 KPX rcaron d -9 KPX rcaron dcaron -10 KPX rcaron e -8 KPX rcaron eacute -8 KPX rcaron i 7 KPX rcaron iacute 7 KPX rcaron o -11 KPX rcaron oacute -11 KPX rcaron period -68 KPX rcaron semicolon -9 KPX rcaron u 7 KPX rcaron uacute 7 KPX rcaron uring 7 KPX rcaron v 5 KPX rho chi -24 KPX rho exclam -43 KPX rho gamma -39 KPX rho guillemotright -16 KPX rho lambda -54 KPX rho nu -44 KPX rho pi 2 KPX rho tau -3 KPX s a -2 KPX s adieresis -2 KPX s colon 27 KPX s comma 13 KPX s eacute -2 KPX s endash 28 KPX s exclam -24 KPX s f -4 KPX s g -6 KPX s hyphen 6 KPX s k -8 KPX s p -9 KPX s period 12 KPX s question -44 KPX s quotedblright 13 KPX s quoteright -19 KPX s s 6 KPX s semicolon 27 KPX s t -7 KPX s v -11 KPX s w -12 KPX s y -8 KPX s z -10 KPX sacute c -2 KPX sacute w -12 KPX scaron k -7 KPX scaron p -9 KPX scaron t -6 KPX sigma lambda -49 KPX slash B 35 KPX slash D 40 KPX slash E 35 KPX slash F 35 KPX slash H 37 KPX slash I 33 KPX slash J -6 KPX slash K 28 KPX slash L 38 KPX slash M 36 KPX slash N 39 KPX slash R 30 KPX slash T 26 KPX slash U 35 KPX slash V 35 KPX slash W 35 KPX slash X 34 KPX slash Y 35 KPX slash Z 33 KPX slash b 29 KPX slash f 21 KPX slash fi 48 KPX slash fl 48 KPX slash g 18 KPX slash h 29 KPX slash i 24 KPX slash j -3 KPX slash k 26 KPX slash l 29 KPX slash slash 32 KPX slash t 18 KPX slash y -4 KPX t S 10 KPX t a 10 KPX t aacute 10 KPX t adieresis 10 KPX t ae 6 KPX t aogonek 10 KPX t aring 10 KPX t asterisk -14 KPX t c -1 KPX t colon 15 KPX t comma 9 KPX t e -2 KPX t eacute -2 KPX t eogonek -2 KPX t exclam -13 KPX t g -1 KPX t h -4 KPX t hyphen -18 KPX t i 2 KPX t j -18 KPX t m 2 KPX t o -4 KPX t oacute -4 KPX t odieresis -4 KPX t period 8 KPX t q -4 KPX t question -33 KPX t quoteright -31 KPX t r -4 KPX t s 10 KPX t semicolon 15 KPX t u 2 KPX t udieresis 2 KPX t w -1 KPX t y 2 KPX t z -4 KPX tau alpha 1 KPX tau alphatonos 1 KPX tau colon 9 KPX tau comma -30 KPX tau epsilontonos -4 KPX tau guillemotright 18 KPX tau iotatonos 11 KPX tau lambda -40 KPX tau o 1 KPX tau omega -28 KPX tau omegatonos -27 KPX tau omicron -11 KPX tau omicrontonos -11 KPX tau period -31 KPX tau phi -6 KPX tau rho -19 KPX tau semicolon 9 KPX tau sigma -4 KPX tau tau 17 KPX tau upsilontonos -2 KPX tcaron a -55 KPX tcaron aacute -55 KPX tcaron comma -58 KPX tcaron e -68 KPX tcaron eacute -68 KPX tcaron m -23 KPX tcaron n -26 KPX tcaron o -70 KPX tcaron oacute -70 KPX tcaron period -58 KPX tcaron r -30 KPX tcaron rcaron -30 KPX tcaron s -55 KPX tcaron scaron -22 KPX tcaron t -30 KPX tcaron u -29 KPX tcaron uacute -23 KPX tcaron uring -23 KPX tcaron y -23 KPX tcaron yacute -19 KPX tcaron z -43 KPX tcaron zcaron -38 KPX u comma 3 KPX u endash 20 KPX u g -6 KPX u j -38 KPX u period 2 KPX u quoteright -26 KPX u v -24 KPX u w -25 KPX u x 7 KPX u y -21 KPX u z 3 KPX udieresis comma 3 KPX udieresis endash 20 KPX udieresis g -6 KPX udieresis j -38 KPX udieresis period 2 KPX udieresis quoteright -26 KPX udieresis v -24 KPX udieresis w -25 KPX udieresis x 7 KPX udieresis y -21 KPX udieresis z 3 KPX upsilon chi -18 KPX upsilon gamma -30 KPX upsilon lambda -58 KPX upsilon tau -7 KPX upsilondieresis nu -34 KPX upsilontonos chi -17 KPX upsilontonos gamma -29 KPX upsilontonos lambda -58 KPX upsilontonos nu -34 KPX upsilontonos pi -1 KPX upsilontonos tau -7 KPX v a -23 KPX v aacute -23 KPX v acircumflex -23 KPX v adieresis -23 KPX v ae -26 KPX v agrave -23 KPX v aring -23 KPX v asterisk -9 KPX v atilde -23 KPX v c -39 KPX v colon -8 KPX v comma -56 KPX v e -34 KPX v eacute -34 KPX v ecircumflex -34 KPX v egrave -34 KPX v endash -10 KPX v g -24 KPX v hyphen -32 KPX v i 8 KPX v j -12 KPX v l -17 KPX v o -38 KPX v oacute -38 KPX v odieresis -38 KPX v oe -36 KPX v ograve -38 KPX v oslash -38 KPX v period -57 KPX v r 1 KPX v s -16 KPX v semicolon -8 KPX v u 8 KPX v udieresis 8 KPX v y 8 KPX w a -23 KPX w aacute -23 KPX w acircumflex -23 KPX w adieresis -23 KPX w ae -26 KPX w agrave -23 KPX w aring -23 KPX w asterisk -9 KPX w atilde -23 KPX w c -35 KPX w colon -4 KPX w comma -52 KPX w e -34 KPX w eacute -34 KPX w ecircumflex -34 KPX w egrave -34 KPX w endash -6 KPX w exclam -35 KPX w f 9 KPX w g -24 KPX w hyphen -25 KPX w i 8 KPX w j -12 KPX w l -17 KPX w o -35 KPX w oacute -35 KPX w odieresis -35 KPX w ograve -35 KPX w oslash -35 KPX w p 5 KPX w period -53 KPX w question -32 KPX w quotedblright 15 KPX w quoteright -17 KPX w quotesingle -28 KPX w r 1 KPX w s -16 KPX w semicolon -4 KPX w t 6 KPX w u 8 KPX w udieresis 8 KPX w y 8 KPX w z -5 KPX x a -5 KPX x asterisk -13 KPX x c -28 KPX x colon 5 KPX x e -28 KPX x eacute -28 KPX x endash -17 KPX x exclam -24 KPX x hyphen -39 KPX x o -32 KPX x odieresis -32 KPX x period -2 KPX x q -33 KPX x question -36 KPX x quotedblright 1 KPX x quoteright -30 KPX x semicolon 5 KPX x y 4 KPX xi alpha -22 KPX xi alphatonos -22 KPX xi epsilon -24 KPX xi epsilontonos -24 KPX xi o -22 KPX xi omegatonos -50 KPX xi omicron -34 KPX xi omicrontonos -34 KPX xi upsilontonos -19 KPX y a -30 KPX y aacute -30 KPX y acircumflex -30 KPX y adieresis -30 KPX y ae -33 KPX y agrave -30 KPX y aring -30 KPX y asterisk -12 KPX y atilde -30 KPX y c -41 KPX y ccaron -41 KPX y colon -11 KPX y comma -59 KPX y e -41 KPX y eacute -41 KPX y ecircumflex -41 KPX y egrave -41 KPX y endash -12 KPX y exclam -36 KPX y g -31 KPX y hyphen -31 KPX y j -15 KPX y l -19 KPX y o -41 KPX y n 3 KPX y oacute -41 KPX y odieresis -41 KPX y ograve -41 KPX y oslash -41 KPX y period -56 KPX y question -30 KPX y quotedblright 7 KPX y quoteright -24 KPX y quotesingle -31 KPX y s -23 KPX y sacute -23 KPX y semicolon -11 KPX yacute ccaron -41 KPX yacute comma -59 KPX yacute period -56 KPX z asterisk -10 KPX z colon 29 KPX z comma 18 KPX z e -2 KPX z endash 22 KPX z exclam -22 KPX z i 1 KPX z o -4 KPX z odieresis -4 KPX z period 16 KPX z semicolon 29 KPX z u 1 KPX z udieresis 1 KPX z y 1 KPX zacute colon 29 KPX zacute comma 18 KPX zacute semicolon 29 KPX zcaron colon 29 KPX zcaron comma 18 KPX zcaron e -2 KPX zcaron semicolon 29 KPX zdotaccent c -3 KPX zdotaccent colon 28 KPX zdotaccent comma 18 KPX zdotaccent e -3 KPX zdotaccent oacute -4 KPX zdotaccent semicolon 28 KPX zeta alpha -17 KPX zeta alphatonos -17 KPX zeta epsilon -18 KPX zeta epsilontonos -18 KPX zeta o -28 KPX zeta omega -44 KPX zeta omegatonos -44 KPX zeta omicron -38 KPX zeta omicrontonos -38 KPX zeta upsilon -53 KPX zeta upsilontonos -53 EndKernPairs EndKernData EndFontMetrics libwmf-0.2.13/fonts/NimbusRoman-Bold.t1000066400000000000000000004036141441723000300175660ustar00rootroot00000000000000%!PS-AdobeFont-1.0: NimbusRoman-Bold 1.00 %%CreationDate: Wed May 17 2017 % Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development % (URW)++,Copyright 2014 by (URW)++ Design & Development 10 dict begin /FontInfo 12 dict dup begin /version (1.00) readonly def /Notice ((URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /Copyright (Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /FullName (Nimbus Roman Bold) readonly def /FamilyName (Nimbus Roman) readonly def /Weight (Bold) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -109 def /UnderlineThickness 69 def end readonly def /FontName /NimbusRoman-Bold def /PaintType 0 def /FontBBox {-168 -341 1079 1044} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec é ×`£Â,ñùÜiš"Ã[[4Þ?¿Ø˜¯.aÔØ·Pþ‡‡ÝÙgëð9YÆÊ2SÝã/ÊØ$u™lµüÔFëâi:Ìô Ÿ-=ËÅ‹IåéÉ¢“ÉÅ«ôSÀ­:¶QÖÃëí<¡yùéö1’YãL ¡ Œ4brî4*{‹0 @!þWbêƒ47W€éŽãfÔâØóJQr¨ª '7øjѹÒùW“à]Λž s÷èL)Ãç‹)-.B”7¬Â𗘌ũ®áö½º \.½€ýñ^© [X$.&Î…Çå2§J¢á­ç/E¢˜¹–оÊ#ô(üqÍßú»è€x‡³\)£m(-Æf呚Q: pÄÇUk«è×va{™Ý©îÝ7¤9A_Ãé)ÄËÛ"LÐ?Ã*Š›v«¢ìS?GÆkÒsoÚÿ"ìOOoúyv¡rþ¬ñd¦p4õ({Ó¨6”‘3L/3 Q“¥E\§Œå`ÔiNLqnÝ/A{¨Èn´m@ ºa™ðS›Ú?O„6Ô`‚³®XM€í(+ÆKý´å »ª—‘à«å]zZXaßõhnÏÿÁ·©cÉM~ à‹Ä$$øò+CRÂêÏq‚´Í¥ÿ{m'?¨yû!´[2Ü}˜òÃqlà&©¤ LìS6ÃB”™µÉOkºþ¬AMÕuÁý³—Xé.÷¬L,æ„Ðb¥³j9Ú¦À†æðXMÝSÁ&ú<þË0ø@„ÎËE#ƒãÀ¶Q3€ÏÁ×/Iš"õXÀÚáÃ^c•ÁÏäTqÊ î]ö5¦‚šàØ:½* ‡X{Áh`æSá6ç|spêÑËÚ÷ªëÛ#¦tàݧKM®\ÙµmÙæL ì6¤h¥ß̪8>GÐÈ#æ[ØKgQ/íJáC—êÃÅð¾ÞÔ)ºÆ-•ƒ½XU•õBºÇÍÓ 8â )r¢Ÿ÷wË6’ùgN¿TÐÀz…î+)9"ö‰\gê„öV™\6L±Ä* ÍU ”È þ8V…©v!,™Û!kþcþƒèsæÉެN¢åÍ8"m$§Ç2á½´vïWv†‰ÇÔüÔ*¹Jèï®1nKXùÀðCÙhºÎÅ´Ëj?­…* H’=ô¤TÒÛãÜ(‡µ¥»‡öæÓìù­Pʪxíß*JºO]n¶y÷ ©3¦Iç0×%Wìpȃp§‰ãqi¶¢(Ëp`”ÝÇ›MªÈè’ Ú!©™˜NðÀ Láåç/ üv×s3S¯ÏÙKN²ÎÖsrÉïDqЬ0)mÖÙúÙ( ZJ„Qða±Á]ýb³~ñKÞ{éóƒfDœnCÈ öÿÏa%;[ñÛ*Ý™)Ų éÓ¼D; ßOÞ‹TF-¨†á–Î&¤áó=(÷¿jQ1Ú ðÑ 'jëãq =)RkA!úû¢¥:~B'2ëÈm®Cšr¨Æ~ÀšÙð9UZ9§” ?GtœpÇÛ‚ßêCm…š!¯­îÛ®²”7{µEüñÔÌ)Mòê'Jœ(3ÿ,wÊžD pu~Q'˜÷´‹nâŰ%C+Æ€­‹ê4Æë!áÄŽñ¬È öøhÒ³Œ$\»é¯A‹jÝ1ž|ù/ÕþÿÖ˜¿ÖaI@1ÃÀ«-tFèï°› E‚»ÎƒâÏl©`öÂHÆh±\òë°vb—"ÙüûBÎLî3 ‚IÏŠ¤ óŒyðR¬|jÔ>srǸ¦J i©Àµ×HðLÃC "µ>)ÇtágpD‰hsªñ3ÃÂy*B3 ºÑÑüjÞtX»¶pÏ>lM†eTÏ\ÏÍ´vMØÌnò~¬4©ÛÎø%p–è0í6"¨>êËHáÂUÖ1vb——_ U•7òV×2›Æ°à´{”"Uꊶ£“aÓ¯3ó3sfkÇ·œ®¨5 gVz\æI|Ž%Ž9ëHúPNb©uU¹ö«Åú¨’`!çÖWCsÒ#—ˆNÑ£”ö]½"ΉEíÞ”H5àðl c¡âûžãœ³ã×Nºø°r4ìÓ&X­…i1Y72ìƒ:ÌËaQt*°ÎHÁa]Ú÷Ü!ËÒŸÖ”ƒdT¤Å²nJõ ¦£½.¾'ð•­äÐ}zÇ×c(uŽÚ f[ƒ*¨UËŸÚÝ·7kŒ ØAä_9¦öþþ8¢†iqæ{lŠïœ<^Ùî[bWãiöˆv’·Ñúí'W…H¥àò™O/Ñ=u@Ë®92ÿï#"fÖPÿbÙ¨3W™ÁNUˆLPHôm¾^åk¶ˆÇ¢ ±ä‰· ‚Rsl™œÙö’-ã^”³,Ðq.)o†—󌩚âЃû¼ ·ë¼ŒÇ[S£åÇ6_5!Ökž19Yáf¿ˆiM«o€EøªƒRJD”yþžÂPóÐä¼oY‹é‡ Züm°¾dí)o¶u;ÛÜŠ(‡†{焆}Qíš½ïÌEd&mLJèŒJàúä·:­§:x}Ç­·M0€R“òIÚ–ÝÀ°w¿\ŠÉ9‚9QõµÆæl7߽̓E¢†Tái_‰X®Ý×»»'Ÿ©Ÿ+rg^t/6šoö¥fÕä’£,I¢|2þíáè*g‡žS/ä±Iðaý… Û5ùOÇqpޏ;wãeQôùE)13C5N Ñ„Æ3êðïÄ:÷îÝFÝC•`°ŒJ ];DÀ/ÑôŒâ6@ˆgˆVЗvŒ°HnXí˜r"w ü¶o;uçŽ ­L'`¹½yØ„N6»HßHœïUj]±‚6¹Z~èým6hW—£-äDGÖÝï=X¨ªë¥Ý®Ew¾Þãóȶøh«ú}ùê™Eê/T£Ö¸ÊËGswܽlKÿ„®Q Ñv¥À<ŽéÌà L[Þøª¢½’J|}M•É æT5WÀ7|^4=„K°2$gŸ‘ p;Ö #缑õ¿Ôÿž/Š”@¦ÕIÛ˜š~xÕ°óÕ"ä6îËCìÝ3©ê¬MO‚½xº4“·3¦#QªÇ Ì;$y|Ïí/6¤ÉÒçø6ñ¹êEDŠ€B“³lóÇ{]%×ýÊÆ»øfF vÜ, .¡‰À>ˆ‘ÝZ 1Çb€òB¯à7¿<] ò ¨rC©^¸Îd2ÝP Cu^HÉ`Ê4£wP§ßèªA«5‰v•y Ée™ÄÛ)ÚÚ˘Š1s†[<B‘¡e„dŽ ÓÃ\p;‡¦-|GTlÓê+©îwVª¡ñöN÷·>k{jwÊǹã8¨BµZ¥ÿÖ•QÖ0Å@Êtu~HmÓ|¢Ú”!˅ݼ¥>Zi·/$|cªyÞ]´q4Ü$cƒºwIDâ×,Ëca%©DÄw¸:ÞH’1 ݪKT ®o•Ðc Å7‰G[¢žp©êï+HãWY´}Ìã€ãzŽ£yWŸ éüÛ€øËBòýõ}ÑA¿S;ÈÉA8·lLH[8¥Æ–¯•nMô’Ö=>XÒðó ™æ“ä}a¦†`ñŸ¿MU+­Æ-ì9C£|¾à˜—mx[ »>‰Ÿª+.û2—[õþ!ó]7dS©Ú5Gu4‰®——;ÝzÿÑý¥7¦W˜¨Ü*yÌ7ÉW‚y?Ò¼¯$v»QÔŽ\t¦¢è2Ÿ‰Àèåòs[Àû“Uîµ÷øµAªøö©8‘ݶnrìO¶r”)K@è¨ôùG»FϼTa+Büõ3‡h¸ªä/53'1ž0ö m„˜3©ÄovvàèO_@áŽ7ç-áÎbšŠdþJÃkJPâÖ·£Y*oûpæ`WA¿¥zPô—‚Q¦Óà_t›àÐÞØÞþaTžp.¼‘áa°ãFFÝX„g¤É Üãbë£Ù Cq»ð¬ñ¡ùdEÀ}Ý¡m~9ü·ÿU)!0ÔÑóBr€ì›F‚‚…îÿ×CR\Ÿ§üñŸêYö€,R!uм¥šXâýuû#:ý ùF9Çëæ§˜‹ª°Í !V²¤!{.{‡°\¢-×u2¥*›è3¶ÜæñƦŸÉÝÇ# Æ hë ùUcÀX¸2-©ƒy}Z¹Òt™e톷½Hµ6”Ñ·T6±èN]æ-Ô%„¸ÁZä?çäfÃæÓ~§š„¶4š ñÅ7ÀÕå Î#V»<(¹Ò‘{M—-=–£Î6ð·¥àsMÓ5Óãʦ‚Èe¡<ìi ÈM.š1î>Ó*åÑÄœ‰ÞB0Åøºa-93§,¡î´ÆF. %k¤É.ÐA«*8»ÿïË:1J;KîÒäg. û¡»kÚÊa¦Í¹A¦zf)ƒ+EÖj(FöYÎçÒÓº~Îì:Ž=è€Zv–öÀi¡ºÂëÈãÒEX˜ßÊ×.»O>Äe®'8w¢l^7ÂÜ_òÖnëâ‘%= q´+ô—¯Ãbµ*5/_ž+õTËŽ¶FP`‹Ösí|»Ôn›GÄìïÉÈú[4qèW¼’瘝y!¼ûL íÐ6€ÇÕY÷ù8x˜|z½«†•Ûª= h¦:8›¼zÕKï»%Õ¸0Gýíwj¡Ñ=§“ޏìЬ’/WÕ¼™ Þ 7\P×]‘ˇǑÍç&±êÀ3vÁ1Æ3©™y™I ïßñò0Ï繃ÿƒ£\·Þà]ÐÇõdèS›¦½«Ê4¦$ æ¯I·c™Ú¹I©/-‚FÚÒ(ËÕ¤µ~ûò04×xýñe.f%sQ=€U)Åï4:8M‹‡èíj€3J cˆ0ºcÔ©?Ï`ÞùgÕwDÀl†Tĵ’Ÿ#õ;bÞîCyÏÇî|¶|ní¾±Cβè+7üãšZ]2h—"®ÔId©j€ ÕF¡O²Ú]AƒÆR?í yžL¾±ÁHÂ5úK3o™ ® nkx=ü÷¸ .Ï”¾;”¤³Úä(OE€ï8šn…ßå[ç.™u®’=СÓ$è… µ„Œ§„Ã'¨½N"Uë ¡c3ê lMlTö9ÆZö ²Ã™U±G”³9a…›‹…€à:#áRu¹ËSC5‹¤R;F¾hp—ÍtÏô"•²ñ‰¿F2­¨† RØ aëºÓÍJ’o§WD:ñ³ÂÎ{§wµ’ˆŽfÑu®°ù5náìø UüÎØk:c¨Çm\¿À¢‚¦HÂçf¾Ëvof 9òûº^AÅ\ùÁ®ñSÞ&_„@Ó á…±ã!+(ÕPKþuY\JjŠÖ$qf¯5%Ì$¸¬³ý4˜;2ÌhwnSØ„ÁËu ûzÛŽœ£ûi¬w!Iá0S–óè…ðwâ‹Çvê2$ _ë>QJJË—ðöÊøi–9X[ó'—Ñ~ópgEz*¸‡xÅ -£Z o Æó{Ö!¶ÕŶ_”V!{þ]ômNŸxá F ø³'ãUn¶Œ ÑUÓ?åIC Ÿé‚XÙN?~>=0Cžot¡á5¼ tSµtî"ê-_õPœ½›éÛzê®ìZfãþôÁi@´g[y o†ËÐ ²RìÚ“öí6¦6ö7ƒê.»•ŽÌ¼†­XÍ? x‘Ý‹óBe¿ï¯«ÕJ”“Dþ±-L8A\v&©YNê.Øf#÷à~z&˜Üð¸Ë^M u){ÝdX0KM'âK[²N©Ò ËÇ(£7(£ ç‡Q&Dð£ÊšÁûü.€2í?ˆZÑý˜Œœ@þý%¸bæ°àõeßV ›×Ì2ÏÉ 1–ÓñÐb|ôpùû:ÿ«x<\iœ/œwñ@šù°}ûjb'§:Îç;F-a³¦û "’™·º(´ë¦®‚á‹”+…B.~hË¢ÊQñÊU“ßÁÞ kH&Õ®ÐÖå—oÁàŠ.n\½@ã1¼˜èXxì8ÈÖ¿<¾4ºC@ª•G… œÚQ[Nt8d"Ãçß;ˆÛySÀ3D°AÃqÀÉ¿z)‡ Œ"ÆíŸUÌ]«ÿß‚\{‡‚Þß»Ø}ô”VøÚN&ñ§§Ä´Whž•Ì|Ķίao™¾Qµ){¸h•ûÊ…€bµ5`uíd èZí9BÒ·n„z&|HQBÎ-ê'vD?ÎÉ}J½ûŠÜrê)rÐg…ý¾Ö–”"·‹B Cn…]GÖ½ÂÌâ}ï©÷„ì¸â8ñTv”•a>0ÎSw¨çÀ+=CÜŠY'3sqDñƒmwáÝbŠMCZykk:Ãôç±›­Su’›Ú(›¦•aË_„Ó8™æÌ¥o‰wäèÿ·'ê«8’ˆ³W]«wj¹%7¡rË N+¿p}Ö9>.ø©j.«?™1¯LN°3™A€g“Ü *Ú—ßYÌz§êø…r)¨|,foè¼âÙÃämÅfÃá|ÚZËáoØJ8e:+ðpo©-ì‰}möDaM¿cщ°¾ä}âà†ÉÜÇKqgén4‹PQ©ëÑÀfEáè¥Ýt´ÇÉvœçáLp ¢²1g?“DH丧“°ë•í¥­çYù<„ï Æ w É É2÷_Ç\¥rYltH¢ŽfÎE0p|~6a ‚¾Ûk K-ý.jR‘¾–ud–”¶â«ôonOJVÃáÿæOBP j1óámçG B­TQÕ€œÌÖL%]C)þ’Èã :êÊ9ÂrØÇO¬Ï¢D‰©ù Ú™mÝž”ÆÜÈ] 9îSæ‚9ìh‰ºÎìp³A@˜ ²iа»¸‰Â²ø~ij H5ÓéFäDH¿Ó'J·ôÈQ)Û¦ÉÐ7°-V^ƒ(™_Ì1¶F“çÓ HU¯þbR0ê©zÝ,^Þ±ñ·`ž¥E‰ë%ÑtûC£–º:A?ùAYCn¸„MÆEéÔÚ Ó+ѲÀUê­rýhÎÝ£Óƒ\Db(WQFnŒz,0«P›};–ãun}߬ØsßzhÞv1~b_ø­éqá‹ÚLnJÁÊqp×&ÀÍÛšÕÈ0cz†¦¼©·¦ó¥ ëÈÿž¤®9¾»“Ì4˸gNŽÞ/w?aª_Yz9ÝC°S]Ñ£­¸-ç#ïÚºåõ «îN7²õöÝ–«-±ìº9Ç­î fË-;ÉÁü>ÝÏŽŒ×ï´Þ1jû¸W9_ K;8ˆïf ”y£ ×I2>FÌ!“ÿ\Zö¿j>èz.¼•8Ñ4ˆçœR쎘׎'uÍ`Û§¹^Ž÷e);Lœf¥Ç}%;rРɲy}pdFAƒ˜Û—ûA7˜¯Ý5WWêç;ueذ^S52à…=Eåˆ µßýlT¶(,°ºGDXI?šf)WZrÎÌaUZkÛŒê–éO‹Ô†Õºà5?©B} º:[-¦Væ-¬éA®Ic¾•ö$±°+ž…!¨6`Ò9è)ø¥Cùuç1Rc û"âÞbèÉÂ’Ë5õÑdY©n©AI9%»½-?õ%vo&Bü˜|‚¸=ypήÙ+Ý 9ÀtĽ¬M305~w˜)é(¡Su`ôW;yâSv8\”5ëÖ›~Qf Ÿ·ªûªÛç~‘X  Ò½¡>n^6–ú£YîkÄ2m ãæ[$ª@®Þ{D@ŠÕìÕÖJ~š¨ãJþÏOºŠ=èÁ åÚÖÀ|T“põ54ÉÐ&ÿ+Ñ—¥âø&:°ÀÛ7Hôá192x„`1Z»{È' dªÏ#9ÝUÒBÿ¯a,¸¢ÊΔ™±Ÿ'0\ˆ5ˆxJ?Z,ÌËtI9oh!ÜD ] .1€ Q8~týí( é qÊTe¨E4ǦÉ_ÒU'¯VvôkNuŽù¶^½7ÞçWQkßÛ<0âÃjY®ûä̲tB²5¼Ó™ê=!éôàCgdsõÉ—ÐN5Þç<Ô «kVèDa º™8ú°Þ}Óq;ÕavIœL3¾ôøg¢s31P-  ±,ªuHƒª¤ÿy~èË&õgU=Ú½_Ð§Îæi…X‘|¸{Ò·=¦8 ”ñôÎsjz… GÍðìêO;Y¿~B¦5à&î¼ý0aRnº&¬¥€¥YØ–ða4n“+¥—„l‚¡¸=ùÆÒËèôañ –YØ|¼AU.ò${8XÎOô!D„¨WÊÊsÏÀ…æ‡ Ò¤ðR ñ§¦Ó¶å¼È®äÐM‘Á¼éy ûU±teªh„ë†fîUq6”À k3Ý „«ÐŒÌ"zÎÑêrŸ»óÙuñ¾£üø·­âñÉ^Ø^r+O‰~ÜdÒŒ Y÷ˆÿ܉ÁN[½òÓ²ÔfçsNÅþJƒÎ¨•à†õJæ·=ù#%Ð<~söIÚìó`¶LCÈÂyP†¨<^V…©Éɯ´•’/{*¾»zJЊ-Â#~.1\Ù=ßÚÃ5«Ìž¤ÚiíŒù=ͬÏõß³ºhQlÊòš˜tP o¤ç;ÿŒ¡Zzó›²È¥ò‹à‹,¤(Üú‰íæpâ¦Eú0»EÙ×P$«QÜ›¸…Ñ2-ìi_Œ’ë3rdn¢-qî%>é¡w^¾ásOÑ€ ‘ªø î ¶ÜW¬ÄäòfÍ9À]^msÝ?;¼×ëþ¹Ý¼ÿG±ï*¨o@^¯Èù5qXÃ@Æs¨:Rè˜ îÏ ì· ƒî‡§”wÇ©™;;fr4ø)3¡&X{¼ü彫 6Í §£eÌSÖ$Êl6ˆ?éÉÿ÷z!¤Öl³V‹/ý¼·4)ïÆ2Ì X&MNp¶ŸÑ…Õm!«8,gDÏϬ7}3Dé(ö¢ø»ñ¥½Ÿ2Þšs *|Ç„ón¶´. ž¯§% |ާqÛ»çÃE1A_Œ'­Rá !ÿû*ÏóRE˳÷ß–çü1oŸ*Ë(XS»w)`m¾ýÒ,_4Ög ¤*LˆaÅû;#ón#¥ðIEbÈäÙñƒ¨£âÜÎY‘ߤV…îÇ-ñHZ0L l»,­è7·ðA˽ÅÝØ™ phÅ?W‘]Ocr¸¬ž´g}iÀ<\¡ÃÄJŠÅˆl±žñƒ»‘¾ï ¹d¥œ>3rÅM+`–¯$¢æaDâ+¥µqÒa/מ'# ¢ùÂzT²‹ÿƒ>S+3<ƒ\DoºŒ—È€ÀbÜÚùˆ{AH³—û¤&8¨üBUJ/=¬gäÜ:JIËî·œ›³·Ñ"ñúZÅv Ú÷ófÄ”KÓF›'.)4k—XWÏFj Ù˜D×R˜üaw‹Áù…6#6ñ®VÎYxÛ¾v£wõLÙÄ3J¬}Ù‚¿û¡ÑjªÚÏYèžTÚŸäÏx›Î-xGJÌ{°»mˆs¯ÃÒñ@ØÎD‡}· Çðh¹Ú}Z—mzõ uØHÝÀïù¯ØaÐ2«çú–~°€OY m&Û„R@l¦j|Ž ušL‹6±=l\ñ:l±‘ŠA¢”ŒFÛ|bln{ì°“˜Wº¿‘ü“wtNqO·Ãó@7¯bŸZ_\é#]9 ñA@k^C×ýi÷ùÈsXä$ŸâÔ‡½%’‚ºñfµºëy,·xÃ×QiPòÆ Æq=þ`¹Æù¡|9òO”H7Ò5Høe½ÀŸÕýŠÆØp»–¯/±'*pbZ¹Í«§·² B'S‡G³¼ CLÜŸ Q+Ð¥ÎU{q9} [­Fj¶‰„ˆ1AfWüEËaã±TöÑ/‰VdN­æ“&$ð“$k¹:#7†Ï€ð]MÆq~ xŸÉñ%ˆ³h‘6îêáö hµwÖ[¾n´¿±¿Ã~OFëY"ímðŒÑPçf:b_“Çå3 6 åª•ìÈŽ†Ø!ˆGÒ?wRÅL‹-3Vz çØ®•ñþËn3£.9Ñû˜–ìÔÜáÓ(‘+‡˜H,Ï)"¬{ÍØíkJì÷{}qùðTµ–é‘¥žSnZ±åöUè„Tž£ÂC7Ýñ÷sÛãƒØímòj ì¯¤ˆ†I×P§ÛÍí÷õÁ#ïP³±†rÍétÞýý¡jÓ„Ž›ûwž¹&Çr=ÊæJœ<áÄ›êeÔ¬õ¶ûÐ@ÄoãXV£òFË1^±Õ Or.%‘€e¼Í~½:zȽßó¢ ÄâmÈ>¡ÿxŽMŸ×)mŸ¢ìn ‚²

=¹Æqª\+@ *v‘ÞFD|«A>K›˜ˆG¼µ°‹ÃÅöÛ‹†ª‹j›õ¥®yÒAY[Øë^î'óÅÊq¿ò2ÍmFÃIÞ¤W6Ej[¿š™‹Îê+ |ÿ$iì?8Ϫ8¸MNÇõÍ”×wÙNðԪªà§÷éVv:S—ürYÖôËWÔe~œIBã0íæNÎÕ A %J}éTíry +†ymóð(R¨)Ç)†å”‹7O“¯U…Ú‘¬§7¿9ä}¿Ãþðª›?šÚünwZ£Ú¶Aap~=lË·‡Þ|I(‹aTb%¶WhpŽÇ# À&æóbY dRë†Hõ†œ*vlÐÌì#å&ð@Še…Hê™æÓ}Bviœ‚œ(6á‰)Ç^Mªþµ¥u‚Œ®‘0*U¿qcg7÷û°¢êvQÜ‚ l8@è„Øâö³nP­:µÁÀ޳&ÆFƒ6ÉvheÑÊÿŸ½íOÑo Ž)u)-%óG8×h^„(F‰÷¾3}uþ¶Oˆ.QvF=zýVŸÚ†w ‚Ø"4¶:~wžíf" Ïà7Áâ#®eÕeáeœ~­zä=0z’ÐÚû¥•Çæ“ÖnïzÇD œÕüax°nâ˜v|V/;h•Q.‚«ÊRG|Exc”9øÛ5ªR•“tåR·Ÿð-¥î ¹&9³eé¯b¾Á‘IhÔð¾2QÍU«•ŠÕÔ©H.E.;’—íBäKZ ¢‰¦l ×cÐßÑŽÝ]ÜÕnÑÔç+¿•tp²—¼ã©“ïq9Ñ&zß–Óƒ‹½àÐÓ¿Ò^vÍŸ'ÞPç¥wQÎ#váˆxÎnÉ(F™gïbY0\ÍÂ¥Æ;ÞÔtøþS9܇ØA‹—*vŽf0,ƒ0ßò+.ž¯:ŸÎÏ2¡Ógݾͽ2”ßa5‘+,[5ù¨¢›»ïߟÀ–Išya©V{µïŽ÷—Œ¶Éú€œÖºjYrL¨a`qfˆ! Ã×Õ+âPYÛZU¶Ëþ¥¢Þ.ÈÈ6£6¥Þaˆpfÿ‰'-æoýÁ<4¢_{Òä~^R½ŠÍïÎ#&9Š—&'¦?ó0Ñà™‚ |arÍ´Æ€Ý%eCÇÏg¬–*U‹c?$¼“ý¤ñÇž¸ú/€zMf»0ÇPR8fØþQ/‘YYæ t èôºˆ×3°f~}Üp·ùÐÊ‘2£zô‡9åv"©„¸2þ„7àýé'"À`LLåú‚iÕÌ=€²5V)3]†p£êt‹á¹ö‘-OI<ÃШ¤48µ‘©}äx\åðÓƒî~®_d‰üeO½‰ë~Šç-áR«ËJŽÜW>½àf“ >Ìþ0 X)}Á¯6_W}fž‡Ké*|<º¬ï÷ ý×+—¢(Ê6@wÕ-”MyCÉè)Ø»Uz*p˜¬œ+”vlô=¦ieë–MS¸ïóGF}au]‡7È­SÍ Ñjýª&úªœ±)ÆÖ"¥«æô‹a'QÉ“8¦}åñadiÔq'ÖèuG.ÉËü³%¯‚*fÄiÄý9Aàùã¼®ndfrsÂÉŽ6+J…Ââä¾§1ÐgoÛš™0§’ä%*JNîÆ•Tc½¡ŽÿKiÊöúÊèÆÀæÝ÷@ǶƠhqr ÆÌ ON¶VŒëÑ1d6lÒ±' Ü©,£œvÄa“þ¹r_Îý8}ùvÑÁÊÈ)—-t|'ת÷èr]„?úó)ôAŽãP1#E&ýÎÝO‡–¡7¼†QOiRþ+Óü»p€ËQÚrÑÑÚh£ûôú_í«‰üDb¡ºNòC…äÜ1_ÙOÇ!Ç"0lä5xd.’ÀNÆÉgÆÈ@aHÂ=‚©fÊ;Q5̢⸓‡ïðc#<5—©¡åóóâ’°”T|Kž«6y¶€`´É?9Ž{8»àª½èÞA/c‚;wò CÇ{’–Ê÷C; › »&˜ˆß=:s†¼BÅç¤*iTSþ6fHÎ'±Z;E¹”’Öw#-Dn@oz*$x”ÑÒpz½HÌ!@bî3•€ÉÑ;X´©û9‚9|Å‚/ý#f îƒÑã’¥By•)žÞnÀL—Z4ý¦ÿEMd Ãà|½lçx¿ªá‚þ(-bª ý<‚=uÐé=‘~®ÙÕÖÛ>É“…JªÇÏ/û½ZÍ´i;–SovKâ[åxÒº9ìú­¸ªƒ˜ÚP]®t´L]`°"–êi˜ljs! 6T¬µèLœÌahjþu4OKͽ‚ܨ'Œ95èeSµÚ㪂&9èfpk¨pˆ†$ª€É"Üyé‡ùk›‰ )Ï`-«ª,ì¥tý° ÅP'2ì]4α76Ä– š:b%@*»W‡TáÕoÃHc¿*⟇¦€çgTÛ '©y2ÉÛb•·±5rÖÊý­¹ÚDåÓç6ÓöG•çÞÛÉe>R~wÿ¤*Ø&~Iýz«6á¹Ä¦Ä¬=±!P\ªþùÕA€ÊFÀ|*²«Ç[#¶Ä^p‹%?‹{Q!Éÿ¡\dhµ_V‹¥{Ù˜¤:p !èGZ ¼0k”Q4òg¹×Å(@éiŽÿ{ K¤¶â hF…©ñRf¹:–'»›NîÊ «·Sís•ت{ó^äC˜|eÓç‘ÞIÉN7+DZ—®.Sr8å§Š&óÛ ˆB’=§˜¶“‘÷`VFvÔL#…JÉ’lV÷ÌK ó÷Ò=ý8ê®Á<™“”;ÝûFTE@ŸàJ&ÔÊ£GÉù–€…—6‡&)¢ÀØï…Òy4ÚÑŸaO™³X¶À*ÍÆ_6",•³×0‰Ãó‰ Å\f‘ «|§ÃÕ7„§ —qnmrþF½qìÝœ‡Â5* ê÷ªš.l§‡öG,Û‡7ÃðpO¨ÇD ¬ƒ«ð0VæÐÆt=‡c©‘‹L0Ç© äï1eôòɹÒûÿúN‚>àh¨5à Ò¹BüA¥Ns_˜š¬6Ö+óqAu´b¡)A§ÁMÒ²!ͤ l'²›+_¦Z,DÆ(Ÿ‚°tÙÄÝ´¾)qe µÕ¹Ô±ÄhD£Æ$XÇP  Š,lfû±_=Õr 扇ýT7kÆ,øÕ'ûª—ul(Sš9?hCæÇòïæ|;8åç¡Çpc´_dîIlžQPžáõ³<Å)µºVOÒ* ‡B^âèÅü)å½Úäœ%\‹¶&Û)³®×ˆË¡=–føž€œLÓÐ*—‡%¨)Ýquܱ¥øî#hZ¨aöMëR,>÷{Är„›7`v‹êýW±Ïçá˜+ø|/Û±vºØt¿Ž[þ(}j PÏÄ*x%§ÍàÈê%\g¸˜"½Ó¦ë‘ÖBˆ„ŽøšTËj,•³ˆ«:C)Yô§3E<œ_pZÀÚöÁò޶éxÀÐݤ|¢u• ¹RåþJIK÷².æ^BÔ.z&d¦g¡n¬JÀâé„\“î@t=HöЮ¶–ª˜öPT`?põI²¢’¶@·Û¦wƒ¶ÆÜ§ø§P÷¤ºÌnyóÃß.™Æç †…LÂ4Șò‹Pô„FI÷/€£$4·¶ÚŽ“Úóqí ¡*¦Ó¿B ç¹Ö;ûþ8Úõ‡s =ù*´ÜB ]²©™;ûK7A)ð£ÜdLÊ6¾‚Ï>4D»(@‹¼¼u„#¤{í«‹õè£DŠœ&LÊô|cÊ”3A¨Áâåþ^sÎ)[ÿKh¨Ûʵ^~ :B¤ÇðxNã:¡Î3®K‘ù¾toõ³^í£=rqá§ ÁU¥¦k\Í·0Q4Q‰!Ì´…nºàrnÖ™€•³Ï¹âã¬<b¡hÄ;MM !^j Ú1T¢@ÓççN¯(¡‡BÄâzZîFôÁÑ:®¹„¾Ði:n|D×p.¶šLžÞbfÑ8’8•Ñó½©ðè ý¨8B?Øí`G‚B)jã¡‘€†tü"þ·¬‘².£ôEïWµÜ¦û+ºþEŸ¸fE×É› èŽýñ;.3©¢¦·Ä™Ý8ÁšÞ¤*à«7äj¢fGS¶ÎЊ Au5ܵÐ!Ê”ª^ȸ–~05Á“÷Ï^1¤÷|Ç¿¹{(óuÌd«Q.aTŠßÉ@@ß‘-(9«ßxk1ð„ž™†RTú¨sì>‚çsöóX›Á»ŸO?¸xRé¡ðÂMAüK ¢<Jûç5[üŽðcˆþø‘xH_(æ®ñ'ûåâÒÞGšWÞHú.FÄän´Dn–&%ftó˜¯Þ¿+‚ÔÉæn÷,ÁôÑó@»7ºzÊøA.W"t Iâc½áô yVOÈ’ÌAÍbIÂU cì¹ñ_þÑ‚õpõãÍ0³e`"×F˜‚Ÿš-…iž'Ô"«î{£>„OJ±cÎK!¸c‡qi—8™•ä,¬{[«#äeÜ"’T³XñxÖ€ˆNüqð%Ñúì+ëíèÇ}œ¯s¿`Óòî“x%jjdê'«°Lû¤u{gW‹\Õÿb©q†˜/=9˜‹èÇäp[–‹š‹ñ Гh$åå ‘†þV¬ß~ƒ„W;Ú›©]²<ò~À–“¦Pìû´’Ü ßtÛ….5O/rNÀcA…ž4í~lüíÑ÷唈1Æ2ß5ë›Í¾XÎÖu#6K¤ Ìnªa}"&y‡‚ËÇêÍ24›çÀ‰|¥1 ¯Õ˜Ÿ¸FküP<Ÿ*Þ?Áôà­\êN1D4wøý,vX<6™ÕhF'ˆêŠöiDùÎxú±ßîoe×–¨:„RU6¾zTuü ôÙR^@†P¿›ÏkmÂl=bi@-»×CL,ùû)¸f¢c<Á­¯¢F,ërQoTÚˆùkÙ½ÉùûK3½7»r‰$J<5Ìîä|Qép®ÐIˆ'D 14ÿr„1"{¤ð„)•7»šLwÒ• Üuu"Y±jCb¦Æ/ëÕ›fœ¬-PV†ükMÊ#ŠУ›¾Øí ©qiW)© 4P}K¨=ÓmÛÉÒnKÂÙ²õZœóʈI©Œ;}5Tœ‚aa6vâýŠã)N€#eY’Þlª2.è(!*GYJÅšá†qánömf·ïg×ðx€ÔbTËj±ÑlõÊVØ£k·c5 Âö"Æq§™áÞÿÚùþF¡2¬>$V‰¡à‹~¬Á3جnw4/<ÿ¾S’*T0 3à_²»öÇP[™h¾™p#m+ˆÂ;ôY©Ç7Ònr®èZ Û<¸×‡é{ÎýN8|øÉ1P¼às¼¥'¾‚ec·ïÏÓ ë´à¿J@A‰rÀH,8˜Æéj6ýó×± VûíJ•h æ}ÿxxÿI,¾ùßlæ±ê7”8–ÍpD/_(ã}~za(î¢#d@j蕄öžÑ¬ÚUý\ )ÝÓ€pž›>_‚»8»œSº(i¸ðéM¼» $ÛùpâëFTgY¬€süîJÚ`Ðve¿jŸÍw¾*¾EJÃ*k¿ÚÆ@lœxš-^µ8U› œçH3]dÕO$à1.SËŠ]´ ÀÀMTî‹RŸˆ|Ö–ÔfìIµÌ}èH>8(òœÓèe ÂløyW$ºœÌû7¤ŸíçIŠÙøÒÑFhŠl»,Ë‹ã Ï9·; ôAÃMpËkPl:ü5…W ûþŽ¿Šº}ýŸ¢`lÃÀÑ|2¼hï2dŒ(|ÜÏpî°ÿA†‹0`ô‡w‹öPÖfÒ÷#D…ÈÄCí9”r#ü»l—ç×€b\ :Ö-™óÄ®æ3kÁ˜ï±%÷‹  OÕÿ©>Ç÷swº o68ðþ½R]†jjË¢õõÃüáÇÖhŸ´·ç;Å•ˆ¾¢ÒÔh-…ý<>WÒÌé|*(- >qæ5U &D¢Ðµ9OŒUˆ¹©ª=]–zÔ]™@eÑ”>.XJ1jì#²§îú/­Ò¹Y3ýB2dë•F½o&b§Ì¯á£>þ¢Óí·¿sÁÑu³Sâd÷·]Ű½šG¿”Wv×ua¹²Tà-TâI„Žü%3¹™ª²$J|¾¦#×ÈÁž®4,­Î]ŒKôpšg©Ø‘3[—‰ûRy.—àëLYÞy’-ðÉûû+¢·kYU´D® à÷k÷& ‰TXÌÿ˜ wf¦4i÷™=el¨HÊ|ˆjnb†×Hý9òh©ÐÝhÌû][ÙÏjìvÆ}°žûÄN>uWšûõÕ·žGF>8gçpF|©ó.¹ÇâÙ†Õöní£Z]§+|‰ÓÎyt7Y÷—¼üØ¡›¦èÞÉWÑ“y†Zf½x—ðÔ€Êê¹CU$Ö&sõÒ$0¹ý¹õ—Mt’2':<-“¿³cÂZì’BÎî£p[Êœ^å~U;œjJ:î“—‰ 9_ãô,œÕ<ÿÓVÌâ´—ú0.n2ô™xݨ3p„ìóÔ;E¢ R·‹ð+$Àa §z r¹æRǨAÁ¸Kî­,;„£†âóéÉJg}шù³Q|«5*é8êq!ñXÈY˜†G¯bü|QƒÐºV–ÉH0°-ÁR³–éÈòW ³/Õ¬^’üÉbl S7Írb‰çEóåÝ*§}Ç•(sÃÁÙu˜ŒO•ˆî5s3˜èàbäð©Ø™žUDs ûa$Ðh0¯–T¯ä–˜P*–†ÍpGЭ\Õœ’LÜŽˆÐšx]^T*Åm/»'\~A.~Øô e½ë׬l²¯®…æÖsá@¾¿þa½q‡ZýÓÎö-)£åïÔšÎºÌ X¥¡ydî–ëŠ^ÐüTÚ©ó¤°Í²G`ˆ\¹_c€ý›ož|§‡"²Jîå°R¤‰×c£ˆN0ÝøÐ›û´F5™{ ºªÛ¶û*8H€Ë*U.uGøðéïèĶ3áeâê<ïaK)2Ã&x§s=ØýÔv7>Uúq%,ð¦Ö´«…”І?R±˜.ü¾»ó;ôÑ'Ÿˆb‚°5¬’r¯p¶’Pn ÁêÅMáÙ©ÀHòn˜Öé?‘ŒÀµ-Ê0Óõ=ÅL_Údܽ±‘Vµ±%ycÅMönû8ƒ+¤ï"øƒ^œKU3ÔÇŽx/9«£N®:Ô˯|›Ï΂ìÿªÖ O®÷£7 t¶ÅZC„æ#TKdPþtö†Ý½Â6¸JɪÀrÿmÊœ")áöPjؤpô ì@‚þEÄô4igûßéŽ/’ǩînÕ²ø Éjù¶to—Î y¹“Àæ³™2½­+n¹;°êæXº.ê^]z{˜]ƒμÓÒ¸g²}Íò!ÉA¼ó]URœ…t€‹6Kú!Ž&d6$y;‰ðP–/g`–O«”¸.@0þ4ÌM ýH¤ë€`vµßNê;ç±/ä¿.ê­8ú·Ü Y.ÁÔ~å¦i1G  9Ñç\ÜôyIrÕ*÷Hò %§˜Ö:DµøV¤9ÀÙG×½q9';袃‹g2ÈÆ69ç¾jøŸù@Â\¢µ3™’~É>ƒà E¹>yEOðk4g~@kÁ8µ: ã…ü5cl@yWçÕ*äd'–Iݧå$ïH8y°a"iÕã>o­Á·/F_58 C겟mªÕ)ÕÊvÇ výó>ÑàæÅÜœ uÈb\3lÖ{/Olö~[Ú ©›QDWn»Ï †­zí»H“½ò*0fàܫ¯GøC•k/ª™Œ¹¶‘Su¹´ÎŽ02)›Ç”G¾ý$rT­bÎ hiLnhnçÄp’÷~™P^¥¨Å 3¡ÉéÈö%—›„(ioˆÞŒTU{EO™ÎVUëd4._¶MˆÍ¥ãe1ÉëS[>œ½_ÒÒHÕg+ûŽqøÍ*")';çPpsBBT‡;'xìëôѵģUaþkºÍ–ˆê§Ëžû;¦‡.º "‘h ’°iˆ­ÔÔUŽIâk˜Ì,$Ó¬mâEoÌq©ÐÕл´&¶ˆšó©^J1µQàg¹IÙMb³.™Ìb6ÀáSiYÙÛ,æíäZF|û†œÅÂTí"­Öè¦ô]„Â/¶FäkpuéZÜ8ô‡WGœÉ%fÎ0òIºº}BZ6MkòèYÍxzã[ÙëÄm~V¿ã s›Z´@Ô¥ÑÏÓ>OñöúÌßî;k ~8ñÇKR¥ÜFÝÄãŸ;6¨3ÝãýSBeÉ© ¸ûãßy6Jµˆï?&IN¨\µ½ò2ø­Åv^Áuú៌[oN°Šâ«â)¤)”˜veû¬ž»ŽQn¥a²Ctƒ>kBOeŠœ2¹ÉßèÄѹ¶±+Ïɘ'´ßD75³)a’C«awÙv 0ª™¥Ð©H§ËTß'’¤—Ã@G[“åG\éäËÕÙÐ_Bi¨RÛ°"ùÿ4x¾²§ºóë–g·e|ÿ¬2 `üíÑ$î¦å!Cˆî׈qB©Žýo¡¸6S}P'¹EÍŠ>‹ÄiÃÔNÕBµš´†$‡/Ð2‰£TÜBâ_—@§EÇö ;áMïK½ðwtK`çÜ œeTµMs|mó–Š"ü¯”@O嫽̗ïFø¿É¼K°gäDd¢|Cb¯«Fq ê¨kILÿƸ31¯bìúfÅ–ê€1uÂïUëhr”†¯¶,”–Dä÷¿ Ö>×fêQàÃhYàWÃÀÞ¶«ì÷%š.”-¹Æ=tлr?¦7˜Ðd²Q%4nþÎÀ´XY^ëÑw$B›[@ìÔvïêЭvÃG€[úúsQmêïÛŒ«É.L…‘!`lrt˜Ìƒà ³çà€G^ CÈ…ë–•îj;BMÈŠÞHMÂ5¡â}hVñ¥\VàŒ.PpÐq‡ä¤³«™„A'²F®ä¡V0?pª]‘f›Ä㓘FÖ‰ » ‰o-ª<¿ß×EÈž)_…“ÅvüOè¯XZHãŒ3±÷g°œG>OðH —è,6A¸%LJéàÿúÝEÓ×pñÜ&÷U_bØáÛ»0kÍ]蹓ÓÏ£Ùêò‰¹é„*¼L‡ô!Gßþâòß×ÍåÛc’AäÙ²ÃÑ%V¦/©L€U…U‹kOøSIÁž*ì_þë»g]2æd·ÌÔÎYˆum)œJ,K:Ãz©/cÅjP¸–Á'n™DÈ`gÓ“ž¯U¦¼õ”&Ó—äÀ¥!Ñõàg)6]0b°~¤šUI¯1oÛ.@YýU+ãršˆ«™>Üéç¼<¬Œ!ôysR‰èùDºJjr;!ìÀ¼¸­€µ 0M(†Áðæ¿’Æ)$[$5cf›ëÇ”OI#ž0û‚¹sä„h¬Þ ÐÓ Ç£!å‹ôºXÈíU¼Ð?”Z¥™È~ûîÓRSE9ý—±Á©uOs…ZšÒ?³a©ò­IAyÞºµ„›OTš÷8_[¥ b+úóLnúeŽÄ5R’(OZÖ» ò:¯uЍI_Ƶ©ae>ÌËÖKB0þØßø>åOÚbC$Oî*·Îpëëå<Øß³õ;ik3“„4‡„é ÒÑg•ÜÑ*ó]J¼÷ÆŸÇv†TÝ#¤]qJÌ»nç~,ÁÎ2q r¯JÃèb‹˜cN.œ³Í:¦חø+Ž?½ù™ŒŽ S_ŽÈPÙ ´Yª‚òŸY¾1®Mî pÙЄ ’prÑÝúm‰XER ;Ivƒ«V¶Æ^W÷µ¤.–¸xÖã˜e%œ…ôÁÒöGϹˆwÔÌIç'¯ËÞ"M\ï i֨ǜ[GhâÃü;}95ûHœ¥'¾ZysѺlßW_£ú}ÄaTákè™…oï'÷t;I,lšf`M~]¦ï—åµäÇSûd^AaÛ —QŽÇNø=_‰;Xå-¼dæ]4Ý åMù>;¸ŸF´èçä&¯àáÌ‚ÃÍý¸B1|èø–œÔäÀßW`s¾»µflË꽪ýÖo¯újK×zb$.Ÿå2ǼPùžÇѱzP-fb»*KA¯X\*€ŒÑ»Ð»% »¯‘x|ô'|$wó½%y~M'[’Û†tÞ‹-ÿê®»R‰V7/…A¦l•ÙׂXL Ÿ(WA(pŽ=Úœ*¦y'#!Ò¯W¶?ó™_ÉHL0‚‡Êalqf†k!__ѱã'OaHr6«Hp©ˆH–¼«oo¸2ªr9ºÒá{ŽîmõŒb¤mó=\jxH÷ÇTMÅýÛ¹3!¾×ß‹°°›k@'çx›s--v+ô þúK•Ÿ´³X.#þk~f¿p…qÀ3ÊQöƒã³Nv㣚è#^Di1«Ï U«ZµcõI÷šÉÆ/&¸bRy ‰\Ï”ÆñÜQCÿ»×p+žU2{ô°7 Ë‹!Ä©]‘4Œpá‚&ŸÕ½,P(•â–ñ‘!“ ‡ŽÈ¼üëyn‘ï0äÀÍŠäC. î=" J[s ^5ùéÑ)z´ïÓz¬)…/,ó¡´4 ÚÊçÝÐàGFë •Ÿ¹Mûk¨0ÍBw_úƒUKIÉ‚ñ“$²WwœÄ 4Ì} }îé~K ö?|®T a¸³’Xíæ³Edƒ\­¤<ŒT•G:Ï!Ì?ÄÌe›êŽßÑ– ¨A›3Õ<ÿ¼§ÃýóV-ŠaÛ›”8y…óçØ„§ÿœÒ!{åÂM€¤[w‚7ÐoÜ+A›r¦]JÓŒ…ójlýq1Q.G/Ðû™XW^¢FèjÑ ®®Z¿ðïÔ8ð¹ÍO6\£º/Ò:RˆrÍÞÆF}4ÒI a›þ1€÷ØÓäúV/‡'¼³°ErùE^sǪ˜ö’¸6”‚‹ç/&÷Á+c1@¨Õ…3Ø8ò•–îÓ„’E¹K;Š‘˜E€…í“Çòè|`\a+Ø…¤˜’Þ¬e†„­Ëê-Ü€­è1Ëê_­ÿ‹ŠR ,¸#çYP-Cøy³?¸±0TÕÐâˆ?)Mä˜ÀÕµl«åÓгš–×ýç:äðuìx:Öô¿Wmfþñ¡±.¯åÏ3ÚϦ£že%žü €§^ZÍhɵX“÷ÝßO,ç‹t‰íHì*ÜèÒ©õioHs„kó¤òåqAZ;ú,,Àâæúïi[ü„…=ôáË…g Ïý…ŒhŠ58˜ùV¨p~+ꆖà.ôV †8©×ÅYR\Aé}β&ˆm³œâ•íCt-õ´Š¸G…á¡kè7^}óðå@:S Á Ë1Ý8\¡Ÿa4=ò 6Z÷€Qâkº?âQ[ü$ðýXI†ræ<˜Ùð£U0d ÛoʺgO´w,ç®ÿ¹(ä.S$±ãê8‹ëù+m¯ÑË‘rybK€ûNEÞ)T›0˜e70Q9ʃv\þgs^úDäÐ à;òÕªl±®(LöŠ™”T2Æo¼UÐ &­¤²ÎSÑ`Ÿ½Š*iqw:?­oz+à Rû7ÄSç·båÙþêýp†õi²4¾ï~ó]ËŒæctƺ)ƒnÅFûxÇof'hB 7†˜6gû” íVQ*îV>Áå"í^“ÝÉ![XõãÙ/\ßÕÁ(yvÕÔ‡|Bï5¡íeÝúFÅòDE«…>yù¦º’m ÅQ•1M¹å˜Ä l¹3Ul4è0õ4X/êÿ•¤¬|uäâ@ Lˆ&C›ù9&Q¶=aJëì‡C_G“RMp‘¥ò x¹%[k}6“,ôÈÛ¤gÖ_ml– åL9N"‚"«*æÝ©¾p}Ÿ_ÈÝ3ÌàçŸZŒ´AHäúºåvÌ ±ü¹xrÒ™´³ Bs@¼ÙÐ)FÕY=Õ¤ÚQ”×À©Á½JGé/ÐcÑ|K2ƒ^2È‚ uöÁ"µŸ9W€‹:ÁgY:Û)÷CqŸ+ ³Å3Æ$9Z]xƘǓ}¼Z–<,ƒZ¡ííöÅ"[fÌÄ.Ž$£^ dZ[Ši>A0ógô£æØ"‘±^p ÇG-rÑÚl·“R Hª*Ý~S?û‚‚;Þ¶r ¼Â"圀 h‚㯒¼‡Sê dˆ&拽ßášy å‰ ~X1îÌ…Û°ºnQ~æ²vÚš[@LÄ«[35ñ nÛP€›8gXjŽWre`Sa )‹eüZB2_yUwË ¤Æ˜âƒ‘²tÅX…sõ6¹ÏÖ“=àª× 蓾rι­1ãñ§v$!ÀÁ…0VáEm•AÛ/ÆžeßÞÖðËl¤pUg:ûäY.ÌçΟðèIŠƒ8¤ )éN ú× )! ¾bü<ÃK´GÁ×ݼ)`Îê(›9 Ãß Å×>+uxŠ Çsê75¾ ɺï"í`ºà/«¿Â»&"ˆ€ûÂÍ6B’Awïï'°A©¸½µ6§0ž´BöX:~ÉC!½Û¦é6XUÆì‡¢.æÔ9õ·»"×DOÎø¿ H%S;÷HFÔ½¦ñ%¸H}jùE%`šÈ®!@/Räo?ur¤êýwØt[Ó$èù5qVw¨ÆRVèC.Ž¡uŠ3É gJRJl÷' 7íâ×j…sí ¼öAjV9 Aíº?«dÚE¯®&5–²:çK]pÜXd‰<Ÿ=–mgÉh³g.šâU_Åê•Vhþo 1Eåd]Ü™ž=kÝQDW'‹‰V{h±p„þó A_‡!«Úla¯“5‰:º¿ÂëÐøÌ ñmˆB0¢}v€³5.Åê†Wudo:Âg¿Ù†‚P–¶ð?ßÊ”/q±õ‹ÈزY¥²Ê·,}dB«¸J¼?;¹ºët›­8UnþÎEeŽ×GOxÒ«Ý nzÁ>BÌA‰D_b’m†¹&{׆¹O¬¾ÿ¤û­=Ý+·æ¾<6ÇMRÈ iÞM$)lo\>pV6>¡5’þ¼Ïÿ}Á¿(Óȼzzo;sø/*-YøxöC­¿„J0˜°Â0ƒŽŠ²xÑÒGÜóÖ›]áä®êè&ÏUžÿm°Â§S˜˜DרçwJ7lõóçÕ7$½íǾ’¢l t”AŸñBW^DW"VC3a­›1ò7¥?ªQÍÂ.i8¹xQç¹<™Iîá"œ÷Å;`üU,'ô‡°¯2ËBÓfëJÓHO¹¤¢,ÇR_&è’”×déæ¹šR"o‹‘ Ö&[e!}¸cŽyÌͶ¯=å¶f`Ë飿êÉV+2Þi§XGäÝêɬ:?çWÐïÆE¥ Þ|¥e5-Œ¢Jãv©"ÒØaáT@q·3P«{$Xjô"WߊŸZWA7PLêP.…_QË{i|¤ »v[Öi õ_¹~iAI8wuÑó|ã·ÝÚÊUJHVl±—7¤×á—‘¨ñ¹‡íŽÙšÜ»B%„JŒºÏiŸÿB­õæ»`I¬åçúë£Ùá?Ó®tw˺O·¥dLƒ:jÃHÃfÒPý)N N+î§æ4Ö;@†#ì?ó<án][‰ƒï6låw ×íÉMIy P±¸´Ïĵ:ìî,ŠºYü[;+ŸUÁHÇŒVÞ[ž”ØóÅê;3Ž9bµÖŽQâ”ÙÌ¢¹‚‹EmÙáèmk+n·I'À¯’£¤Å®ªŽñ!WIeµ)ê;޹ø[Wư‰¢0Ãß 3w«‘ 7òLÕžad«4í|—á˜ÙÆi÷Ùc(©=$‡%uÍ×ró*Dz77×c<‰Ñ…³}$¨ sÿÅRa!èü±Èèö—<›HÈMS}ý®µ°Oï&âÞR¨â^'+¶—9 +ÓJÕ4•!(ƘºÜì#œ÷$Ó9hJï4´ çuöˆìЋ[niÿB G¾$ü6úénµíwî>÷¥äÔ§0¡[ƒŒ`57KÎèP¿ ixSò&}I[ü-$þ˜CAÒe¿×Lm½A–XßÍC·¶±éÿí¦ôiƒÞùq›hkfN±(äO`økbÖ;À^ý‡G' H%iŒ "ý`óftÑñ’Dè­M"ÅãrF¾Äß§¤2ÇÃh;˜r”¤‚¼¾¡ÀˆÜ‡Ý¢bñwx-«ûôºâTƒ“D-£e`óÁd7v„l§ ŠVàÂWçZ]„Éœþ±Uí5\òeUBN :lSükÌÁš^æÉ@=•bž#oø¶ 8%¤_·Š 8;­Ú¾O]ĺšf×tdÒ¢vµö»Ó)&‰/UPi›E…èe.)s¢;ßÝ¡"XYKéÚX.åÙaeÉbéÕtw&ûwkûf€Ö矖gÖ¹EÂwØP,0³Ñ )¿d•Ûѹòq|ß4Ç«EŒøZvº_wI´ut£DeDæÔi±7~ŒšoÔORÅÊô ÞzÏ’Üx· ,YʼmQý>ø&¥" Ô2ÅzÑ!±cØ'ÒÛµKéF1(ª{ÕgSœ?Q lN±Ü7åœÀ£i¼Ë{{ Z»?C¤ò+‹%äLO>8 -(Ë I•E‚A­CÅÌéÃw¹9|óFm¼l,þ˜h·3…*¢¼ ýÙÖÇ Ê3–»%!ªÀOO6>(þ jQN74ž#,Q¹wtü†=m g9ý­VwNí`1Ã*¸zØÛhS,õ C­ßSÁ X™$™#¹–Õ(¡( ëÓb¥˜üËÖê%ñQØ'-š^ïÁ.¯€Õê˽ÿÅþH¿¨[¬€sDnøMs3ìþ´ÜŒ3i…ñì«JY^¶×˜¿à€+N©ÝÏ£­ 0ú(¦‚ `Ò JÐMc‡ò›#8¨3®ˆ…VKK«ýS™2µ.¾%zri¹øh‘ŽcÖ¤cÞ\õL¬ xÖ¯¶„ûPüyÊ Û+ÈU[ \»|•nì^6”j£__IÊíä=otÚ)º^õý^B䨬µ‡_xâ$[ܱ§ëóWéððEˉ]n'`t}“—*ðÛÀDsm¸wâêÔgò!®µsØð‹ø¯õ£ÝŽn½KøÍ½’.9š.?DÈ'qvÿæŒÿŽËÄœcŒÇœÛý ÛXàf³]ø›N*Ç.¢Ë/‡ME[¸[Ó=3Ä[‰LÅ{Fª|§²†²ü‡ª§`¿j‹ùæTbÚK ãR¹FV> EŒ]ÃÆÄ$ùYÑeã·/ÃÔò/QEjq®€J¸}2bp±¢ÒÓI1FÖg„¨m¹éìß¶¯ùO J`Üë~µdaµžÆ}ÏÖÏþÏq?(A·íîOˆ+ù2^;²ÔipÑ6ª…7ÍÑ8Ï y¤©ª|ȹdû#מ:CpKý¶lζ´¼/ MÌ|lÇέ(ÿ£'ŸÚ©qÕÒOñ­ìÞYÍ]Kv„l=J·œÞŒ‚iÆ’þxè¤ÓaâèEk¥ì¾ 3FHËá@¨Ai2"Ô.Žƒ*Q¶·N=ÊB\EÄ=åš:@l·°fç™døê E`·RDzñ…ò*K'º×%£"N߯A‹:C?lª5ѵ×[y;£ž@Šÿ…d(v‡te êÂôeSìóAª«>×–¸š?ÕjðŠÛÁõ)ÚžúoT:=0)éé’qïs·8«óï)LBýÉrý£‚‹3LlÏÝ?iI ÈZw”A] ‰ÚË÷ñ5IÒÐèT^O§Ú\~}¡­ T3z%H…NúÁÔÌÏ´Ó’+ã9e*V/#Ôy[æyÒÚŠj A9Eý±uùNfµKpº€ú4âø¢ buP‚(ªÑˆÇ«ÉK–§ÿ¾sö+xWˆöÚ“#ò™ë~ѱPHª«–ϰ²’·ºia–Ö8ø·AÌx¡gËPºm†¤xATÁf¨KHª6”×^ž«CƒÒ„Í¢[ûr–Fo¥áß6Óp^w“V›”h«y(±Ë$KXžC®­1‹ÇC¯È)WIÊ+}Wxù]=ÔKÅŒg¤&%ÚR%†Cn”««"’y»Ñð#;–yƒ]÷™p}?rFt1š¹ÒÍQ+Njdš\£‡;:'ÓÞcrÆ·gBß´fê†ç”Œ‡|N–ª—o1•õW#tdAé2!k¾ª-ÊDt›…ÞrDò¤5›ù Çýý¾”M‹ÖÜX\>iUiÌó*s£È†?6TM€Ù¡37#‹†hT¨3ÌÃ' 9Ý¡/E"-_4\ÍÝZÜìö°ï‘úW¯ßËD¨­Åôž üUî³ öãmá"œ‡• ºªu#béoÔèïñp¤ ÑWxÒa|åØÛrEaO<sr¤<’Ç!g·P.º™ þ¡š¹ÕÌL—,'ÿ„ÏÖ¡x^ ܬì/VüžE\Þ8ò}™CÍ1¸{Emj(ÚµÙÂHs¨™fiÙ%¾Hƒ%G‹ŒbÏÞ> ) KTyŒÛع Ý¢‰U8¢¿Œ„§bí¡Ñ.`Σ¤Š^Ó{“}xUáQ8‹ÎÇ‹‰Ç@A}ÜÌëaðHÍ6?˜2¨…Í3{¥ht{‘)¶ºèpabÁ·?ŒH#¸± í1…ÕD) ¬=Jß~Ýä8Rßõ¸xðc·Æ7"Ö/Ý+£Ð_=;ùŸm¡äÆ´‚ËM V˜>RYiXœ×ÆèÄ;ê…­Þ½¨Adø'óY8ÚçxÙ{Âk´YÁ&QÕìb¤;óä}¦60\¹yŠûXæhyBÔÕ¼èv³4Ÿ”É ‡ÚÑw³ŽƒÂóàóñ>vÇø-í–ÞdÚ1§Þp-åë[Ç»%鸷‚¼(ÌîbÆñD×t„[+NG0cþaŒ:oðÐJ;¬±‡ldΗf¾.ÐI¼Ä©SãO&ùñd¨y›T-¹)YºyIjÜð¤°t3òè ÑŒ¤NºJ/`‹Þƒ•–YÑŸÍÇiÙX»Õñf¼ý–Ù2¥­ãNdæF˜ €Q;§Eº»ÿ£Ö¶ù^èŒ†ÛÆø¿±ë8®3ê«Vœ!8’3–ý?ÙQM0š"Mà'Ä'K¸9L®Bp» í§”Ž™ÇK3Ï£Ðo©¤r©ökìTû@«þúPÛ”'^þ;¦õ¹6¼g¢röÅk;ˆè‰/‘ˆÑsͧP¨ø…ÚZ8r£+pÄHÓ;KÀÖ«8>òᥠèþO}"*¼~ìSpéI÷…«`91ŸÅÅ›<º¿|¨¢¶fg‘U@ÿVÓÄ­Ì×e H“®¾0á)0’-äü¤´Ët‘øäΠÒ¹Ú lmÞ~Màr9¨¿«Á)¤¿E±î›Gþ0èÒo7~4{ØíJBc˸²ò]Uãt¢ À¤h³ .nb‘Ìš…6⥮µ@î­eñðΚ»š/«OÙGßCahöÖ´0mÍÇ‚ ùø\+«)r’ Ås¶Ž˜j D#·’NíSõ̪ÊCûýi…hŠ›±¥]{@vN×Uð‡`3v ö´&RmJqy1 *òÉ/eXØÌ}0ÚÎM‘×Âm½aÚ¶ Y¬£„Ëð†¦^m`R?¶Á€7ÂíŒÍöjÃÓ„é–­€&]O3‡ ËGHbçb R#GÃHâþ´Ç$¼þÙÄÔd¢þ¦w¡NÕ.ž§Z„í@bYë‰Àã¡ó娪¡þGSMÙ_KjÏÄ>ÜnÐKüTj×b>a¶7ÙzR¬ém# xŒŠ¹CÁ=]õç—âuª^¸Ó5£±¾—«J"^$òÙ /ÑØõê@èJܬ†\Œ6š_²@âß[*ðrR ŒÕ®ú–[0ì_Ž>Wî¹ü<ÇÎè2n“ãÿ¼(áÞx×ZOËMaEiH%axÜ\…Ÿ2~t l(jß8Aù«lO7Édön¥ô #y‹F¦%U‚õiý\±½ÃÚÛD³– CŸ1\ïÀGÁEãTám»Lø ©ä‡6Üé9Ö¶#=U{î¡iôÍ”w¢†waH[n (Áêø-Ô£þðÝ´ÉÉœä¢Àþ™ò±37q¼ ߈¬ˆ8BEZ eÒPPo°¦›^ftŠªÔƒ¢¤Â_Ú›M5нÏ^ýf(ŸdpÅ.FÓf¦ã†aAàô\;(sÀ ø;_td†#²ó5ÞŸžÞyJ”âR·Ô‘f€[qx “XŒïÄßÓñû°lè°&Ûú'P6Ö­™ µc\y%œÄ­…dÿáB’u‚õñ%ðgáÆ”Ožp)Â0YîAú¯Ûa6yDhdpJOLOÏ\âÚ\µØtnÊ] §ô tÀBݺJT¦Y©hCËsÅÓ?g夨nluu+Æþ.BŸ«ð~\:è£N;Ö§l fIFÚÞWUY‹¨ \­®±@ðIMç ´Oð¢7&ó`&0# ·Ï'¨cæGoÉb?µèâÄl™^W™Òš®’`êF'2õuZCO )×Ó¸‹Ñ4ü¥IAÚ„r ÕX']Tp{Íè}D.ü' Ç1*wpŸM…øê[W1O>‡0ÒžKêa˜WEB$=ï.²|[=ô¦Z#áëŸäÆJZ¾m®šK¶²*¡€]+åxãHBñLÙbÏ[a£#²rö"'îçìˆØ¸Ù¦B‘”†K×Vëµ5 )á*¢òlKïAWÚŠ9¾ƒæ‡Á$§cÆ_ïÜÒ»÷ØU ¯ kÄMÅp7“6Üžó“EÈÞæ$å¼ \gÜ‹ªm3Ëš­¥–ZaͳüZ%ýYÂüÜ[e?>„³ç쥜âö³•GE›wQÍÆÜîÂÈÉîÕDÓK ”PÄ;7iðø{ao\ub}J%àm£ôöùÛÿSjÒF°.”ëA<ÁÖúcð²ßJ'#zXOëĉH¼öám·ÿÓ.z4{ã$‰Ë  F›¾ Km‘Ð-NôÑ ÒÝM¾Ù ç~&ágŽ·9”»ÛQŽè×Â"ú¿r&tçU6Ëá‚9Hÿ¿þúÅPœ? geŒP“æ]4ëóª§1ùÝ?Nn›°®ñoÒoa³¸`ÆÀ%=ï:]÷M¢°t„/G7L‚Šå.ú—Æÿ~£ØûÙú›ós : ”Ñ-•Ó±à?×`“Zõ3‡Ý¨gÄ«°òùƒx·^Å2õšA!¤5s@O‡ÎÀ¡±8C® UPð¹ÔèíÆ#ÃÖÏ1 K€õä”— ïy .*š¸3b.ÇdûñáæÉ‰* S­õÏH74Û]ùNcýâ4hvìóÌÿ*^ía<¹gÖRŸPþÊÒÄ›ÃH î1Š\+T1d”›Rñ7F%‰Ž²-" G}cͼ K…€Ïét=xj:ÃPœ5câ›ß¤¯øë¾ Úî“Èaé‡â+Œ¤¬l\¬u•Bž3‹y EĈÊ0©G3 ä±¶«6?ó²ÜÒVà`%0_é7ÒßE";~§ÝyOa˜kÕõ=àDáþÚ}`ýà™2àÉTÞBï[²gcŒëL”ØREB¿[âßtŠÁ=ì3«Ç›jù¤Þ,òý ×òßd‹È—¦SßO¡­¼>ô‚ iÒ ¤G#;ÆÐÑÑ Ç|ƒôÑþÝOa9 ¨ÍùºŒýàÎè´ÒWO+Á«4PéÜÒäÁ0µ–ÏZ<_ ß!=ƒòœS+MéÅç g‡•v¾G ‹‘»ß¿ÿ¼`Y øGm:Ï_G·Dì&þ=ô.=ñÊóˆ5<ö·Rb†QLàOø™kÈ÷ëÐãéÏý’8`}" ƒ›û‚Òk›¹z+3ýNs{Ob¾Na b„Ee©É€àŒË´•àØ$Jé6 A Çð4ÄmùÒkFÞÔ!áSYaŸwlµ¤a¶“@¯^2/QE©;NXŸÆg/ÑÒŽ¯÷'°Úî< {ùlûçó(ÎÈb †öÚyßÖÖP^€¤Af~V¾âÝÀï^ŠÞ/Œ>ÞˬI îv½³ k~cí»åÊÓ‰¹ð¦BüeK-ˆ™ÑŸ‡žÖ0ú"%…?'¬yrÊVW¡CmÄÏsØ+[A\@æ«Wñ@C£–ë–е¹úYý/½O ¾CNBÎe¬úüOª[P `4*•ŽMchas%õ¬?€»ö\¶-TÈ‹©ÄŸÇ)X9 øÈâ×ÔÝ­;‰â|–Âï¢N–3«á¯Ãµk‚ê· Ý™^—¼l ÚUG³ôHyØûŽˆÿUÿA/+ï—ØLž§yµ÷pjQ4à³vï8´%àžè– Þ:TOÂh°žg14RÛÁ wû£™°7ËB[¹coÍd¹]ÖRÔíDxåÉχʸê,ym“Ö‚VP!Ë#Z›öŒþ÷¹ÅC.$9Âã5ˆMCs²1è%Œ ÌC៟þ1(öIÏ·åÖDYPVgýñ&ÍcwY›2 ”3é_??BgýdgÙ‚º¦ÿ6K–îX^Fœòßéw_º¡IZøÕKœCÚ¹ç¯T‰Ý-tæ`ã ¾7Œ|• =RÛÕmBߌµN’E 0'è³çJ>'"ìà§ØÛÕØ¯£f˜Äµö ž“¼‘µª§I“i 3ºválpMPˆQVnveL,… ¸ Æþ©–´=ØÿÑþ2ºµPƒŽ’0_ã#.8 ®æ¶‰Ã$k’ÏøÕL'DÖL7éóçæRJ³JÅYÉëú»…ì¸ ™‘Šé…ŒÐ‰ò¸ œL!›žÝ}³°$]ÎÎ-‹=”þB{ W—‘um™OÁdÚ¼ô£Ú=‘9bˆ8I€¤Ž?µ#«À-¶’®Î ¸Éî n•x'á,ËQžÓ·µéV”7©FÚ'}×;äJ¤$M«ÀJIwÜYj‘,­dÍöþ¯ÌÁ™^t‡ç]º©…ý©™äl.ÉÌûpEQÂz”ìeB=Ô²èÐH½(Xì¹dÂy8ûÔ ±Ö+|öÐVPÜ%v¬Ö`³-˜QJ¶RŽ)âšê— Qr=îªt:9µŒ³üI ƒ-¹Vú?”%dÀ­ýX5?8j7([±1(Š«ë§%ï„DaoE^òÖEC½ufgC±•º‡-´y¨þ4u .4ñô„pÓ”Ò“Ér~¸–#6É\…ÚâªÉ¬–ö½•Õsªf‚/çK¦ÞÞÅèwK¸/EÕ&—ãîHü‘cúP ßd ƒßL@ $#äDðÜ3»°{ÙôoÞ’Äxå[ SlýÎþcêý׊7ŽÉ '§Vmö>ÀÌ¢£m¯vÑÎ|hÂõ‚ŸDìH©åÈŸ„å鸴‚t8í6Ó€†¹¬©§<3læ“L?""ÄAÜë×)c핆ܮbˆ‰ç}ѶQÁ™ˆ²ˆ"P'L/ÌjÑcõ¿¸Ð£iëAÒc`"—a‚îËxœQ&M±ŽéHã¡S@¡¡£MÏ©þêeS[•OuX8PáɶÊ) Íè 9§´¦å­± œÿ.&Û¨™tÝþñäsÆ÷úË laα5öܰF²WÝm’­ ¾]_ðÈ-rGˆõ ²MÕÐyD×sÿåh÷nZû º>[ ÈG]—†kÁÜóæ‰^‘§Ò ¥¤kõ§7§ÒÒ“ÐñÀËôþQ_Ù1ÇþÝ5…R W19ðá{e,˜gÒ )Ä•:`¨¼SÒS @£+®ÕâôìÀèŒT™?Ì`YëHÐÄ?õ+úÞX”œPbyØ,íaMÙå¿Xï$2;N}ÊØWM8Í—¸6äAþdXÑ^§¸¯b•ÂUcVÞº5‰W¹Ú˜½Ÿ`¨¶>2»Îå?$· =_^òÁZù4Þ¡C£hNìÇ;J¿b#h ¥FO…ú ¹œ{ݺ,+#)ë¸ÅaD{m&ó½cw? ƒ•½Ž/ÍCž`ßÏGœ³Âú é æ¼#Ý„‰ Oñ ‡®œpjeV÷뮋Ó#p ‘3pY~ ²³%õÅØÔ¶±â+ìõ³õƒ<’LH3ÝZ;¸z—ÿâí_Z\ÆZ§ñÇøËƒ²%p|ÃKc¥JugÔµ¿KXï +…t꺳CûUòëö²–žØM¼®ô¯@ÒbU#U>X"çtW¶!¥wB³nëà]H·˜ñÉÙ!ÏHLI‹Às*¨öð®P¹ÄÈ[6†§Äü½¨MŠ%ò4Œê¡b&À>vrË÷\gœâüXIx–ÐtHcŸ!}Ã߯lðîÈÜ,>äçbÇíÚ:Õ¨Jad+΄!OaLg±Úó®ê¢U̱âX&ÜÃÖÅ™×(%rô1_‰!úòìê>u- `º«•ˈ(;Çp² þÚóü>¡»!ej¹÷C)T^Úb1$äÐÁr:ä‡òL®¦új»P*׸Øâ5ûÚÍÚ…[³æÌܧ^!„;üÉ¥B9m¿žÛCZQì¼ËÈ{hÑ$g¢Þ2^×"ñ”Õ•Ÿ*’læåYú,úç3ήƒÈǵœ¢Í ‚M5q<ž3‚ÈiÏÝ•rí|DïïÃÞ$ÀÔbzTúpKŒ@ŸtÈ4“»1M’ÉžnôüpòéÕy?#DÖ×zÖme§ÈH!Çù¸í¥À›&Vq)ùT K«Ë\Çá1¸‰1Áé£]ø}ÇqÇèªOÖà÷ÑÍÛÇr“«<¯X˜í;ÕË5M®¦-̪¸¨x ˜Š²µ`n ¯‡A­Ëo#Ö†fYWdþÜùXÏŽ¢I#žß¨¢RÊÇP•%âŽO'•™ùIŠ÷u÷^º¬¬=íþ“Dr™—;âxÀ¡ªþÈ®øí¢ F”ò[‚®£Ô³2h2µ EjÃ>ëߟG²¡é'G/ØÆ‡O*ÃÝ­l˜i(uöœÜP5ÒŠ„ȵ%ÖQ^Jäa>—·åP„àÚ‹Ÿr¤V&×?»Wn{ËžÁèU;L¨9×9»ë[Ý~jÂ-³¦£k°*’Úž¯ÊRRvdÜ&ijŠò€Ô¡Ú„¤cÒe }à¯f½Ü FÖÙ¼RnfûÊûþZBâbü7f­¤”™)º<ö­Z‘#Ñ~9$“7zœœ¸nÄÄ("%Â-.Ð_júþJFC¥?PG,މ$3Ño(>`Ëäõ?c][à¡ ø{oJ¿clI•íŒÔ´÷Ó"ˆ.ÆTq›š´·B?“‘È17õtu åM÷8îïý5wȧZw43~F °òfiõ¬TÛr,"–_z›óÛúeçŸúJçä;à³&yâï‘a社%bã&â¢Æô£w’í¥ªØ³ÜÍDT&ËdÛÔ)ªn¥J”Î85-™°Y!oB¸Y¹ë:Æ€mýN9o'Ö@U”‡— êÍý¾sôܹ´vÈÁô?ÕóYQ3\ ë\â YVN- ÜEë¢iC"Á¨“cY„ר¸ëMÞ5à„8µSø'ì2"‰­D{KWáÄÁ¶µl#— FsÈ/•úÀ|N↔ºFÝP÷"¢MgXõA{.ôA¶KÆ žÈõXZnÍ—á .í%–Ö’°b`Zã©ñp%÷±DÕ’ƒ9¨x]“[†¸'.“” ‚wt³¿hfoå[^½ñ!VÒñ'µU®Põ~¥>c9ÒˆšÂ²‰ÝÞcÌf# F&ª`;a¨²zW+àèžÒ ™Áù‘3ßcÃy¤±F­ž»!ç3üWÑ ·ÆËldÃPP+˜èx/ö0TÕÐÌA¬r•g‡±a )¤Cb¡•à×ÈúÚ›ra¬2+´,æ8 õ|r,ÕåV]é]ÝpŽ—xÃæ¨ìûLØŽëÉÆiƒ<Á”7£]K„¥çÐÈt<ÆH•„L‹3–V–ÔB¤1Éóب×)i§AÙÛAÊ;júÓ™›¨jåÙµ´ ÏB¢«=é|Õ$-Šƒ°Ùè1q]ŸB¸RUh¢Uoù’*.×»ÖÀ‘ÔflgÕlñÃsOIO¢cv<>ŸŠ¾ÂæÓ¶:Ö}†‡ä ?žB" ^ÒñÒ+a'ù ßDѱºU”Æ,q-%²"¢k¤SºB£’¡pŠÐ‹f‡öØ(®«¦ë®vBþâ1Éb$摞ÉÞ<4èÅe72sº•v"M¸\’' mè„íÏÕ ó‰1’$Új.A¹=ǹ‹‚Y¬1Ó65«‰êf‡]æD7½R¦ÂÍNñóHBYVÅrôT†Ñ;mïGe;®ÇÏß5\âè€é{by“Á~©­Fûì%fø‡¿ Õ@•§“?&&´^N䙢á9™¸B'i$ àS÷tFõã/Ù $«Ÿ3ªZÚ¡¸z·{ãÚŸò„Çšù¢€t+mÂ|‰ ÒéÉF÷0ÈßNA:e®x©P—Ân=@þû³ï?]M>Õ°Ž ðw>bg™=‡ŠEç;ªgíe ;ÂÛ#XÞµ>ZDöïFæÂÛZ«žýa¼!Vj§B/ ›Þd˜Ë_”˜¹ÀžÏ©ÿØ…ÅçtQÈ@Ñ÷“—­ d.ºˆ‘z˜¿bC‚+u¢h-'+uu.»ÞsÞ”Ù¦Ô×yê93áä»\mn\¼P¦»êË÷}jÙ{TƒÛÁh͇ úš3—NËÛ1þçp¬¼.êéOŽÓÞ*Kk9Úñp‘Ѷ ¡wíüí4y`ëe›„lÝýÈO­AâEû´è³Ä@Eù¦|‡’ã= ¬/¾Ñm‡ËNÃö-¶©ûÕñaœJC±_µ¥àt/!(Jëhîò”ã\~%·ÖçÌQES⪦…CI_[d»~©Æ|òü%t~Äkdo*1„£€ÒÝÞ -O ˆx¿>ßC:lZvÒ½Vbñ²Ê r›²¬yR ÇÅáp¯ ?ôѹB•Z(SâÓ"W´­žºÄo g(;¼î³¾¸…†…—·Ÿ~¯tK*pQµanèf F£:¶œ¦f,ìµIºØúí£ !}·ó%!oUûªhÊbö®Q¬çšî¤º†M°SÍæ­ß†¸Y´ZÃ3üUcöu b(ƒüë› +uh0U|_ÎQÜÒhA9ÇÐÅŽ%“‡Ãù÷yºhh}ýûLꙫuÌq«—#¾ŠÊ÷‘›`“6×gZ˜¿e¼^­õ~ˆáÖå“söó©á ž€œ¬öˆRc”¹"n:‚31*x¡\ýH¡º/ÃÅ‚/¶×ßTbæ3%C¾î)]¨7 DÑçèÀ¹x'EýnÐÝã]í¶â@™Ýdœ’CªÆò6ïü?P û¥žï7 ºE7ÆäO½-Èbì€(ŒÒn[žóE¿3Í’.ò!Ö ñ{ŽDÏø]7Áz`aûGpnåkK³ùë/[A`˜QËDvÍ´¼ïèÀYz¨Õ= IyÓ‚m¯gÀ·ˆ`ÒyÔó#¸z@½%žJ~Qî3Õq#ÿÑÅûšLÁ]ËaLyiIM— Ô°Úc¶Ì÷ò0aªš §àáªüœAþÿžß‰Œºgò«HúSc•kzÛÝçŒÀ@@ô+8Æ }¡˜|û_ãG()Ä+oëf=°õa¯ÌÐG´‘.Î `¨$€å'|]_ÒìY~‰lYä€ÊMÜ0maÌ÷±¸wÎ_m'*¦ªÿÆ´¯ÙQÓåFd@,´4ÕÄ© ©_j…’ÐÚ·;LuN¬‡ÏØXB ûÑl­î8sÈ\·R°-«Ã1F¢Y ñÛW¥¥ôÁðnôWËé‚tŠŸ%\éÜX³o ›³ò¶’Ì+C‡ûôj Úc>˜:Õß’f†§{×˵¬4‡f”BoÝ3rƒu Æ!©b<ä^î4 õmÌŽámÚ©Dê>ãqäyËBM>NaJ¿ˆÅN~ŽÓE tnÿäŸ%º€˜~ë–ý{Ô®)ó[M¡R/l³¿µ¿&¶f]Çéºpº%½Ý§ª¢“hX >fO½¥÷`ÿ°.‚ÈŽšÅÏȘ†Çu'Þ³Ëe¢±<”eKS¹…Ðékøöíó?{~žÒ?ç¼æj>b¥i˜Îý®¢ÖŽðN]5~j%a êkÒ}Ó–T€O?[œ Šå;ñÜlíÒÆÄ'ÎZ!êůÿJ´ ”"»BT8l]ìÕ4à_`EñÌ÷§Qf“ly¡ —CÈ{w;Wä„ÅK‡XÏ:YöQv(]NÀ1دùÐjG¡!Rï: úõ]Àÿ‚Ð`]ÕÅUù)ÝnݤŸ¶Òí¹_·îбvë'Éç½†ã±ø‚ê;42Ú¹b‡ó óÀ8 ’ϺÑ3~Xq Ç™¹ÊPŽgÁÁCüóÀ±ƒ-´ >¨×Hõa7rüPW -Ιïܶœ%Ê.[¾ “ž?í_J² ¿µ¬ðËÉãè1î5s§uì¶ròžK×½íîà²'u>^£‚¦(ͶÛá#OL›µ²¹n+y%/RBL›^ºæ.~ÚªÉÚŠN-ircüúûe\°hBnöÙ27埨 u?¿P1]z²Z¹Ç-Àû3¿7¹þSe4ƒé;Çrý±WIŸOËJÃü0É`ö—š¨P –+~=¶³è »dožÃ3¿såcï$ʼn¦tƒêòÅ14ó¥³â0„ð@æ¬sæÃݬšyÎw»ñjæA*9˜¾¥[FVtèp×r¥£¸ôƒ™Üåîð¡· µ­È.¢qIWh)ʦܱPIb“*0M¦yJ!À݇ZSɇëÍjãÈGÒ&*Ù‡ [MóRþ…×›:dï.©ˆžò=ˆAÎô7…Éxï͹„™€Õ2EIfÚmMµ:‰•áT3èÚ²êÇžŒqÂÇ„(šbøðÄ”ª]5ÜÑ HH`+^j“»QŒÈ˜«ßÁ­iæÐcƒZJÞÆ­¶nØ^ÐÑÇÌ<f˜8³ä%¼ÛÓ‚ÿ•«»ÊÄ<¶ÿथ@”[Û‡k e²ÒÏç˜þLÎi B§ò=£  tgZ ¸bÔ&IqF/$FÓ†1säÔsô°\ÿ» å†UøWÛ*3M‚©Žq­î+k1úñhm+<¬/1 ØÌFâRC‡iÜ¡äR¨ Í ‡¹7w;Ø6àDûºX´Ä!éÏBv'º€—i)×"•¹B&ì ÒȹÜF-¨”-@‡Œ:„Ø®@ñÓ‰¡wi-°„#W ØÊöGUmÑÙR˜}¯i“hg…PbÏ›ûë“'†R8_[¶ÐÙÚšÊÁ7Òº[ŠH6àdØ^û³ “1Ú#CÀqRã“|À1£Ëþ.¢½Ÿ±b†.å ÂŒ±Ò+ØÝ7µ–Ðÿ°c˜ªe’^Q·M€ ) ŽJuºÝÈÉãöà680Z ­‹ã¹Bß«l. œÁºO¯É‰PEyÑÀƒDø/=Y²&~Ýå ˆ˜Z§œ¹ÏróÁ»¨úüý´©½¤¬"O=©tEû@æ¾çPWïQ#XMZ5Q(p9<ïw$=ò›ßÄñþ f1¢Dò‚'AéÙVÙ·Ì•û-ô¨ ]ÃI¼%0yáà zä×°ñÀÁvmÚšŽ=rþüÍ×wzÙ-)’Ž iÐË]&Ñi’có3ñÔ#¶L×pÔ¡\Œÿ ¦DGIbþ¡‹wîóñžG•ñŠWü‘œ¥hAܯCþ‚f;,~XäM€´brÂézHˆa¶nÍ}™ÌýÓ]æD:“éÌ­s` Yݯ<œˆKƒwö¡_7[nAŽtª*¨Ü »|ÑÂãdm©´6+¡€õðt”" ÙŒ¬@pP6Ÿ¬ÔÐ@òvRš÷¨2nŸ Ä(s9ÙôÒ-‡PA .Ç€‘á5÷e¼¢­¢¯åTtjÌþ/95ÂÒv®M˜ígžéÑïš²¤÷ƒ¦ÂÏ«Õö” åÔÅ@0Ò%]H»I6lÖ] s¹áWêÜÿ±/½Ia|m*Ôo´0*=ç —.D)íÖŸDÊ'Ÿœ@ÿ¶î }p 9Õ…§©€Ê#˜œZžsa|Z cöˆ¢ý¿âŠVÅV«1ùL•QýI²Â…ØJñ#.Ü”±Í“Û6Fj|Í£8%BBùÙ7‡.ÙG1^àLõ)b~üù$Bb–VÆJ6íY7¾ÝÞ¨êR&C¼ã†·”ÜÉÑ[°‡ÎÍ*ºÈô)äÖ:õ"ªÑ}zw·ä§µbJh@Âc»Uëþ‘(TÝÁƒ\t‹”å6 &ÈöäÝíöcâÍ6ÞàZÝ^2Ël™[+¾~òåÂa4’|rašÿ7"÷ˆzN`vG7³Nš·®„Dk†¨ ò0ù¡ó­Aÿ^Ê `×ÈÊÁàõ8>¸°@÷ò q‚`’xµQšíRM·èȆ -h6·ØáUm)TrßJBÏ‚f䪕߭ñ› >$“BDBßÅ9³è®lÑG®•#Ϩa®6u¾è»—A›\¾¦ç½Ó ³DKz½`ßïW{Ñ7…“rŸç¬g¶q‚¹3zu…ÜÛøÚ¤Cân }øÇŸ#—ãT»MÀ2INØ *éÝ£v;agR¶ÎÄ qN †’ó|ak ?živØ?\N6?Hiz*ÙàØÝkOÖæÇ.å4`g{–ˆôœqRþF‰µ}cƒƒ²·h«p=ªËWä–_ßJápµJÁNnéTçF"ù¶QË7H¯ÌÄ–‹ùoƒF›’ú‹Š“œ|çÝjçC_u3/Û¹P›_ANr€âI±¦õÛ­ àAo÷zAË¢¿T Mj Å´nÐ3–MÚ[K#cZÅšìW`B¢WO¿Õë2Yïçî“"S9.Èst€‡¶K£O¼øL˜çây“½žçž:ØþÀŒßþ¦atv7æ~QC23˜¦Üq²ÂMOŒ óþÂT|,xE¦¥z…Íò ÍD)‹û-a3óñÙF Ëo¹Ê ÉÎårp͸1Ñì—}¤ÍïXWs2¹-<òObC¼ÒTçÄbÖ×%:+¬³ !ã˜sŽÑ‰çaÓD#A­¤•©* K1›0;¶·7üî™l éêJiÃ-uýÂ7æ`¦:V2£ôJí€A¾„Û¡§Ì‹OeÑf£7‡ÙÓþA\ujKƒtœ_B«NIü"áœxØ?˜òµ×Ðó‚ñg6óÔ>¯a4‰¬ËI•D¾ÁÆ›l{$›,iØGN>­šŒ4üj”e¶9Â9ŠÞUùŽoµNü. õÝVtq+H›d‰õhþp‹ ­½†+±¤}'_Zýbc‹ýúãÈö»Ê‘£š‚¯– ÑwR_œ~M5ÏÁÆß©:³HS^fH40t`•ÀÛ圊|ʇÏAšwb‘jÂÜ}|ðºOeÏ Ø_ŽŠ%#ÝÑòhbÕ`E’Nð®åXÐàU–WÓäe¼NÏG.õûz#â$§Ô¬ §çzÔ­>–];glP,ð„6‰ #¸QÜ×÷E›âWzÞ…:nÃGão{´ÇIb†¦›‹ÞQéxé£~¿Ëþ}{b(Ýß ÛÜh{FÖ{\nO'—œ# ‹eW?â‘íP Œ/ JQïªÇo~¤Ðjúb~µ+Ä]Td\{ N ¸¦G:ös é}L×Þ í¶M…ÇÃðÕ­Á UãÑÐ<˜¤`dhÿñ‘‰›_q*ó–„c…[…¯ÞQ-×hB8Œ”ÐÒ&ýOë(ŒyOw½"ê¬Ù2|“D¢Mô<)ßEI„åâ’™DCkOmhî˜ýÜBŽèHaÿ#' €A&ž×ŠeWZ¶ì-Óø/êSZ9Ë¬ìU@¶tn°ªK >ÂqËæùÃÎÚãRç1ù¿Ã‚¤hUé†÷š “ÏXÉeÁöfÃâT“­±·ùf”Mü)…þ8¤ƒ¶†èÃ…‡ü,œŠõtÿCOJ4™˜cZ»“ }C¸fôÇYk=8Ì!µ ×^>Y¯ H8ãSYD=}ÈiœÈzkÝvËÑý>‰ry œ‹q EŸÞsÃx2iòRXîâVC ºnL¾(\=£…e¯WO}) ‰‡„K³ubF¡Êý‰({åâÙ€ ôaëwc…•KH3PžÑ7woØo;£{ÖëäšÉ_8wD0Õ$YúÓR÷é‘JQ-yãíl>ñ€~ê‚p:êìlõn.9棧µîÂïØ‹7˜ßªøÏXùpŠO]FÈck Zݺ2¥HŠ“Æô/Á¿ð 3ãa­îð²|ˆ.\³|#h˜¾Úö œÛtucòîz"LÈ€õ×`®—÷´žârB2ÅÛ§X箣ô*r–J®[@Åe8þ„ö;–¯RÓ1ôY±§šQ—,b¹[·ŸÀ罸ÛH÷ðTŸ]ü•SÙ™àÓpšêÇ¢»ìb^]¨$Áàëx&7NqxDâÅŽ@”Baèµ@¸ÏPÁo€p-ùi~¶QÔfòãò±ô8Šn”Ïhg/N |aç‰lÔlà9]p¯B‘±Uü°ÛÁÏtè§ø”Ou•þŠ+¼öKC6{øêÎÛ\”ä¿¥ Ã# ­È«œ¤>»YØ2¼®•¸Àyƒÿ¨þÄ‹ytÑ"O5™c¯øD…? ­—˜‚Ÿ¬¹þ”ƒ [ô ïa™ìÔM>E{§T8a!æ‘ÀñPóž¹×êUÊ Ø©þ&!­Æ‚¶Ø“> – ¯¨×ƒ÷ðiå<ÚÝC*Ó€þïh   —ÌÄ/‡2`ÛÁâÔÞ“Ô‹ÛÐDñófûÕÎgÅåhÏ@Ñ3VöK`Í_5¸Î$Ò%‚®=¬5ÏXϽ•¢ÍT!Êóó“52*ôœº±Æ¡m©gñ–‡6cÐg<˨ë jÔzÙäþ/X!ò”å°¿â¿:äÀÙÇ`+p¶àuQÊ /åê¯çÑT›­bMšb&‚%XP).‰Kïì…hlêåí Þú“ø6g×ËàÑîÖY…°IaC¬uñ<^>u]ÞÞ d{+ž6¹µA«2r3ÙÙR–•ð“h€•6ËÏA”»“ÿ6Ñ:X˜¾´hßæåÈÜ„ôUœÚ´®œš;Ò‡„W ÀÀ’ü×ñ µ§;hŸG6}“ÌÛpÏ ?‘iÞît¢~8}t¸ëÿÍ—"¶5PA\¨…õ¹Ù†]0Ç&ƒ²ÿ6Žm°vÆqÿèòbÍÜ~§¥_-À9ÎNÃÐà’ß¾ç ²¦Ê:®½e©ÒÍr©„d¾oßUúJÐe×лêËëñƒò?2»ì꾃îòHXó³€Àr¨. 7BÍÒä1+4½,B$º‰áßâÊ8÷_€žðÙw—¯,X8ÐÕÌÄ!™:‰+ l(^š‡pò+Ä%2¬pºÞÈ>ËÙ…ÑT¤¦ÞfÀÉáB™«½³šé¤õ=¾3V¾C,z{AªÓÔÏ@# Tc©7 Hwç€sŠ+}#\Ä35¡\©WYð2^Û¹ r½ö±:7Ìs »ê“œxeÛ© .êàåó|wõÄ­hçÉÖÂͼíK!Â1¾(‰îÚÝ5ón:'.@*è°]Ó`#ò’d}'}ó  ½k†FæÿLOwñÌÀeã4ËÙ†WÕ"úq–}ꎣ9ÿ”óºïZWåà_c¤"¦yŽÐ8Ò|_«SG •ÄÙÈÊ%攈vAw é JqÇ{jopPÝãåJT?3`6þÿö¾²1œƒDð_ÞÑøQ¨—‘È ç`æå|óï!ݽ¯úëÍ8ˆÈ”‡9”On·ý\šHm{TõçÈì?ÐXG¾‚LSñzÒ Å£eàíGTüKÎáƒ&‘­;9V<1¯× â"3Uå?Kõ¯›Í UR«ãbR0d7¤ËS¨_ðÁw\gîÌ53çÄP}ò&æu°=æV˯ßÖ÷3[oÆK-ÖS<’$ŽÃí^S‘Ql;QÉ%6Ÿâ”ñ£É_Þ¸ïR“éh…9’ä™14<™¦"—Ñ’[ÓHï®ÛZLlˆÎuÞåd<ÿµ‘»Vwí);eî**‹o'OÛgì@®i ™÷@oÆÂ fß-¿‡•?¡û¡C¨rý® d ¯ß­EÏ„Ë]˜ 8Š•šÀÑ?}í3ͧ ’+ΩJ“dˆÃÙÜݰâ¿e“>ºTçXyä¶‹íöîÆ›šØä/ ŠŸPý^€ñ3› Uu™]u•›·ö‘Š0ŽF‚1‰#üÜ&(û®``÷ åYÜfPfOoŠOùÞÖ1AR^ '÷§ë²1gì= ©¿É¢ºÄ³–+"õÎÆk™}©/XÓÜŽÏ£2 êk^Ççã ¸møKü:*¤ÅjbD¯ÖëÂò?0MM‰3!¶AËšÿ•œà&- TM¬¥H[QîIdmæQÖóâ´û“"|~CÈ5Œ©mY@åªò2pŠ»jaŠ(d)&Áh¨Uí¡¼üx„èÙ?çX™òg&‰3>å;c3˜(·,Ÿ¶ymÏùñ´ç’Àv$ÚærcÀhöøc Û@™ Yî Ÿ­¸HVÙç;¤9öËê^ÁGG(!¸Îte 9áú9'u{ú1Ç Óaå“s ’+çšxƒ™_pú}fÛ 'hw¿92äERÀ&oÖ9ÙÆuÌÒ)q+1è/¶dëjrš¼¶Ž‰•¦¬Íy›¹.L3+øüg}¡…&¹=c½Âq¨î¸H.)t3,:]?­@^[m醟¾XÌ ä;`u! ìZËM°Êñ•J µçSDä'„Ìvg²3x6˜ç§2CàTÍ•ÕöOŠüãh4"4=»p¥b,7ÃlMÕ>žxìTIÉýE‡×_@qC[b7÷Ð:üwýœ"7rÄÇ 9ÿßúàÑ‹îœËÐÊ[€Ÿí½±¼qíÒòØãÂÀY¿¤«ËþbÊÝÂÀœEh -Tžóu㣸éë\;—î5€)4Û ë:Ð6½~s0|…nÈк@깡’â@™4Û…'ì(ãåÔyEW8; R&ª°PFCdæ˜ã§cZU»JÌlä5ÖTÊPG<Jy‚tê†pâ/1\Ä³Æ H4=¬[—\†t”ŠkPFYô/X,î’e¨Äó BkÆ÷d _Qb?žK9  {vK*Ñ;÷õñm.\‘èu¿tj  {ÝŽ%·iøšMÊ27ÛsÔ ôµµ¤¹r÷F¥£n_2³ñ×¢šÿ^ªß’Ú–…N&æèL;GX?C›Ù×&t• ¡Í'Îe`ðiïÛ!¡2þ€å2ÏÈ×Ó 0qX֌˪p[=n(šc§Þd- Û$eÜC¡I:DN`Ö{Ç£×~j­bѽEy›—ªÿ úáQ§€@Þ°Æ„cA–ª‚<¨ZÉ.ùÝ.FåcgÅo© ’s.RÔ­@‰Óˆ-‚CŽÚþH[¢o2Ý×Ù›äôc$ä+ËÇ­x”è’Ú ¼(§Ôâöÿñ÷üS%ÈÆA[%Z ©4ãªòÅ€Vê9VÀð BºSHË÷H;½ñsФ^Ëÿ*Ä…bt 2»Ä‹d• ÉÕ°*íÖpUdmHó—Qí€M#Ï‘“ñ7q¢u4P` #qò¹ß£‹‚Þ²1ê=S /gÅSÖ«š«©<ÁÕ!ZÓ­¦Ø÷4ÒSmÎÝ‚0û>aáy÷LÑØ.¼óð5 ITfïC0´¬ô˜?G\ ¹|N¢w2Ûê‰á˜ZÃèÒõyù`’dWíZŸêaÏjûœ4tk‚§‡ Ç7#–!ÅY#˜H@94µÎ3¥ ³yAth0 Œ”êˆÓεta¡cÅ£Tû8€6˜€ ¦Yr÷Ê·×Í#×6~Cìå(ã—ýÖ2IϽOnin *†³Ê‘ÑsÓ¸™N ŽÎoàU“·AE9 ÚR*·[©g<Ö.5â·„5ú.$Ô#Rqˆõ‰DSúó@ÊSwié™ç÷çßÛÓkÔ°ù˜#r™ûn±G0è N©iÄlãØúôé\ñÒC\ˆFZÉ¡*ýtÒõFäN®”½³€HàÃh²èl³H€5[ÞñÁ mà†…ào‘ÊÅBÈ2–€€&ýŠS,•­^™ße+=f¨‡}húòPÍ®ž^\MdjÇMku^w"É‘÷À2ùºNÆs¡áªÎ_¤ü¾¿KB îòZ‡˜y–°[~gM]Š‚ùû¡ÚúaàÌT\Ï¢ÙVŒr nÅx=“ ­‡Þ«®Ó‡¦ÒDâ®6vDü.¥ÅÚ0 Qêû-jÝA@ìë]©„¹²ÕŠiù³ëÌÉÎóºU!Ü&xòÏ{å¼íŒGW²#º§ÞKÀ½OVrƒSߌƒd×6XýlÏÙ7 È«AŸ‹{þ)ᇛ½Ãä1£_åk')q4ºo²]¤ ­,NÎ d×ö5mŽ£µ‘T²aãÌÈ‘0s[j1è-Œßu0IFšL!uN'õDoä«çê,žlëÉEÉ&ÊÆoãU§òèF\hÛØlì ÍFãÎsÕqˆöÂqåe/ŸÐíΜ¾TWHá‹<Þù üDÐÚ§”«É‹ Å,S"‡ ¾Ìþ·R2«›·©Ø­Z½YÅß:‰o„ŽAfþ²¶9í$éZ3gÞÈIÎr?Ï~õ!W˜RVNðÄ=Øy6žÍØ?WÃÜâ|îc }?±õ[½èHKŸ”Ï[ ¡¹e€ ó$ »³¡DéƒdËë2b3ò`ޤºÿÞ¿?¥ ]ñ3÷°i³ÅHÆçÅF+ÕY¥2yhzVFPÌÌ%Å·Aõ&kýŸ{†÷'/P™è€¶ÌŒßq[ïû‡w.Às6yú"áùaG—’º¿¨…uÙÉïëþèÈ´½¬rŸŸŒÎ_§Q_“™TåÌPX¦×8*5ç&[no"iŽám¥F:j7 Ft+ZGd *|ÔPA~ŸÏFåW@£¹ZKv7ò‡§1P¾Ìwb±r¾SF•ÑçU—5 ßz£ßœÍ93šˆßí%Ïi£x¹V­Hà°Ú áËêÞgÍF5Íx¯lÁø§‚³–óxÑß{7ìqç*½‡Íƒ«19ê0Gõˆòí³[öP~K3VH_eîµ/û•pƒÕ¦çAÕ°»¢fž·A¤—»5½\—žåV ¶H/³ºgK62S€¡_Žèõ¾ –ynÓ° )§Ö>Š;7L2©Œ²[‘§|É42ˈ¶Xoô€käkqXö­Ã¾>ïsö:qüf)F™¸DB[Ï8Oo\«†vØQ„`ÐcËVT`¯€ùúKYäZ…@U&tMþp»?[î²ä¥'‹ÚK ýFJBpz†B|×y÷úª'qÖkQ½r‰F¡<îyÙÕ5üæ~_’ènÇBÑeî =<Ê‚TVNÞT-WY~"0ûR!™ArCd¯°T7gfn½tšSmÕŽù»ÿ÷AGƒò¨5‰:ã.S™Gn|caY€gÁm–e7™¥ËÅò÷>Æh":q–“µ*¶ë7œM7+Ì-#¥ló%a8û={®>ÚUOŒƒÉ‘² Ti¡9'[—ñ„RSβÉÊêœ µ€q¶"{s?9;„é”—Êuöñ릴G+‡›eÃ6³ƒì:ãÍ›Úì•CKŒÙB=¼t®ÊÝ8ªûveþñ^w³ÿÊ™dt}'˜ôŠ!05Jq-ܪ–p£Õb¯›Äaõ‹ýVø°$é´Ú/Vfp“™vþî’î1IbŒÄ·}(®)Ó1àÅ\[ÎÚ 7Äy•›™¹ûŽàB˜Ö<ÞM áñRDd(~0/ñÄ{á*ÙmiŠ8„nžz5X¥þ«ÅYÆâëÄ`,™¼,ÔÓ¨•§zY‘kö=ÒCyà`q­ïT¹bmq+@I’€~ÑÛñ¬ÑV…*$„MV¿†ì­2_æ­AVÿ(\þˆ»ê8=…°'t…Í:¼IþmÃP-V¶¼±æÿ}ˆÂj¯7¥æëájra&i€§2<-àè;ÒåMš0ñ 匯óÂ(ÚTÔbV¯@ÞƒáQ™>ƒ‘îY›Èz/­ß}^¯ãÝ`Q‘hßf2BŠ=ಞßڜ젉~S¥wãCP&2Ïb6¾üBŸào‘åaò8¦"Ÿ¢mnÿ¼W/}á@åv)Ç¥©kD‡bÝ©:èbA}áà*°dɳJm@-C®}7£Í@☑ °Íû/ú@v ëï?-Ίž…$BžËzO²ÂÊN‰ö—}JêiµÇk’õ´»Etzþ8­³Q]eU Y‹H*Åh ¨œd‡Ô_?O¿7Êg¥lÏ’Cf\¥Ä\ä^å áRz†axçûÚ…²›£g*wçžw¡Øq¼4±^&HŒšÁÓ¿Í|Xê]eÉÉÕ=Ôj‘5ã©6ÏA»é°7¶ê²l7Ñ[K†p§àµṴ߻?ºWÌâ©[y=1ÓSȿ銇à9ñVÂ"Up—,rÆR»ªÑn iÎUV ÞXj ´ÉÜÒï-!¹0®lɶ£MŽù°PCò(¿^I ¿ðîWÎÁ«ðZ·ã'áé,BÒ—‘5H"B„Y„œcso9œ­ñÔê§«èL¿ÐY'»JÍ2ÜC9§1Z×äãj ˜t¢ª¹"¶ß)þ &ûÝU(ºoG _Óëy7Æâ^$ÓÑ-Ï\âï>ÁÊh †–ñW8YO¨š˜eÞv|n9¤}S‡ŠâYXÏyÑñ[¡Xí •t›+è!<¡#Æ  yÇ fW)o[¦X)Ù4ë$礯õ þ»Š”˜ª²Î*é‡Þm{Eq”°²ÅÔÔ,ùkµÇîÃþ1Fôn­³ðJ¢Üøîø=†ž‰æŽâxõWò¡¾“JWŽº80vÂG§¾àŠÊ·ëV§ýžm3@OžHôþã¿@V޼“ú¤Ù¶º=,í«ÒQBÑ×o«zhm²ñ@ÂŒ+›5‹‰ÆŽ€€ü1‘%’ÐÆ<†"YþÐ3Ç!DƒIÅð?ãlà«ùoÀ+uŸ<Ûa Ùô†U×ÈåÚí½í¼¼¬tÔF²9ë)¹A@V£7P„•5\Î9ÕUÏI¢XÒa:X½jYik`ÆjH»íÌCå{ÒW°}Sùž™h"Ö)Þ 3ðiñµp&¹¦ÓvÖ ™[mty¬Uœ¿WsJÑõFÀÔ–+=ì éуPÁQlKjó0cºû5%Î:×/ÑS~}­,”ƒÆ_UM§g 3Æç¨«»ÃoE*¾<Ô3ß>¥cäv×Ý£¸}%æ”5gèm k%¤²Ç¤E:‚Ÿ+vV–n5UùGæQ»ä4zzi*Æ›^†ì¬±±À¡x“ÚPé–9p›ýrôöKòyAÙÚ±E‚X8>”–ltEƒ-KCµqÒY4‘’”_kãâkAó˜mrò—îËë¤ßöªÂ}üÇÁ.1z‚Ë#©ËX+X?AãV낉rc'’ƒø çõ/‰w¥Gz×|iÞK*<Ôn`Ó÷Ž»‚1t  O——§¾€ ÏLÜf=3GŽ>ü„„òMƒnÆýÐF;fM'1¾·«í(ZÂyg—#ÈÀî^Þ ;%ÝÀF>AXÌzñu ƒ˜Ü†—Ôø·QS™[«ª¥¯Ö È[â{Ë!q¸óBhQ°;Sÿë[[ºÜÔ˜Ü4RZÓÉÓé$@'ÂËúg¯yð“J@Ÿc^!È3tÁRa™†=vpûDPë‹øa£¶J>IUà0g Ä@Å9]¢E1¼$æð8í4­cÀ"›žsPOÂ:œ«F4Éڋðûí]–PHŠ›O³|N\%0×F³ªáJÇ‘¯oг ©Œ ýྂ™5ž[©½ÖÅn³Ì¢â¢á¯Ù†Êé½õ3ÛÚáŽPȳ§àÙõ¸0fŸ†0ûUp>Ãv‰[³|:•mÞb‹ÀQ›DÏ…7×€ç²ËR~X)Å]'g˜SkÈnoE.Mˬè $€¶¨€ñÊÎU˜…_Ñ.'¥£êõv‡v~…} £66g™úóbÐεž3rq&¥î§UêVÒzf¬Í#”ÙÞZo?i^®P)F^Î[JŸÎ“dÄa¦åÖA–'JÔ’“%òöÿõ©ThnÃ{¨xb9³";aˆ' ÆÌߢQe"?°‡«Ö¸8Háa‚[¨úË¢š‚¾ôå6w1›vÎm ŠîG¡˜k©Q°÷÷öÌÊŽèïjȆ&B‚œ&bà¤X û›¿š­Âñ*¤}6êÜýÇ©sÐõë¸<9½ ì?–Žâ¡¸uŒŽ…oÙU˜hGÿ³ò¬õÉ£Y^€tXêy|,A[ †%Í„n•+Ÿâ,¡ºðq8娼e´¶*Ãz!¦Ñm Œ>̿넼Qüs;,Çbhð›•Lãéí8"Àrd‹P•PT2::ÛèòwÑZ‚yÏ!æ5_j]Á%äOÀ(~ðjJê€?M<¼Íå#nõ£Ö~7ME—×2zæñgCÖi‹ºó´ϰÓD%Éß•{éÓi>Þ³;PuÅ©qVYÜÔ ô¥æ ¥ð×àɾ– ò€ã–ʈçqd™»(lø¯a“‘NKO~¬ûöÌŠÇ&ò; y¸Q"ÚtÓ«"å—þäå¸8˜l¯zöóç¬ä‡1AG=@Þ•ë—Æ‹†íÖNã‘zlÚäL`)ú([Qÿì’¶0o aÇj"R—µïá"½mEFñÁ«î)ÆÑ»¹k8æZЇ»…±Â ùðà(Ö Ò[&O°çÓcÙzÅhÈs®šüU3»¦Ú}Ô_5“ëfùö2ѮUîø©K¡];Œ5¤¾´; ´~¢ç£É׎·-` ÇäÚ-èe§ëÜl`1â9èËItÈöáŸZ"N¶·×² xâ˳™¸;\»B*çÙa]ؤu7ØÊ1’‹BqÎØxÌïÒ©f©h6&°Ö¡©C§C.?ÚÂþUh ÅeµªÇÁž&ŸDÚiF-ɺo#š¿´>Ȩ#Íýðî—|ù'Öà_K,©Ö^Ù>Oœ0Â¥íb¨<£ècâ‰ÈÙŸFó/ªˆ“Ù>dt¼´æ ‰(úº6ËHq&™ô·KÆÄ–{5ÓÖ£•7—˜ô>LB´†Lѯlc"aêù¡ñæÖ°°%$æ¶u‡rT°pˆ“…Ô¿1¾ÍÑ0ú¶ŽüÒËÐÐ.'èíHš”Œ1ܲ¬>½‘ETà™Ì°Z¬/:«¡ióÊð²¥1¥:öZé*‰è“éØÙ̲&Ú•X|«²AªêׄŸE· ìóxæ.®ý¼¯R´ZoKŸP]-.ÑL)lg+iTV7g¬ ‰lv¯BÝ9îÿ…ª©åG=ßû>Y…"Zéq8ðtp¦™åJýŠ ¿¼¡ýw<‹Ð,^ÔØ×!¿¾ÝÑuI™Ócpxj2¸úñÙêêi 'å&`ß5écöƒvVÕ]óò+‘gÙ=3þ™ ʤq$dÜw´=t¢,XÏÿU¨BhSý&±ï…Ú_P^ý±Å»^G›³ÅuAœ¾ÂñÓ\sf=½EämgG0Šñd[ú“ìuÂ/ø·COƒõû ‚ᆊžŒîÍs7xC¦QÝ|žÖK°–ÞYb*.ik— ÀÁެ••Ä5C–%±Ú¢Ô4¡–¨Ã ©¤†\ôÄN&‘jßF¦>xŸ3Ø„¾IæÒ¨ºè\ПƗ»mt%°£•dËV ¾Å?d™87Þ¢×¾ÄÐn;Œ¸5å>Š1‹òB„?ý¢.i×1ª^øéòL´¯ÈÊž ± ’x5“ÕÇ7ö–¥3É{1µxÇB"mqrÍÐ<ò–ÊYµ0`Ú¯ß)3ch7¼—ɼr/Äê×½£<ÊÓj‹Î÷¤Í¨ÎÃ%¿o‰5í5žÿàì­“ñs ”Á]#j s0O±¤gëÓ,×Wx%ENA¼I–ƒÐÅCFă³I\â‹e¾p ²°DUº%óÛc‡Dü’…#(¨ääíß0úµgª8Ï' §F(ú©"bw"ß»˜¨ï¿àÙ4â6ó!4´¤Æòutfª•ž™ÛD‡ÊÅÙñãa¼7q¨  êÙ÷çËhÿ‚/1ˈÓE²°¹Œ%´ž®± aé¢}gÙØO•Fvi`å£ •jÍ‚•Žf²¯O~fȯN$åsf / ø©_úW! ú[ÇE™ÄDÑ2ü!78Ë®è‘Þ ŠVä*œj¸òyÜ‚t“¨Ýý Ø`  ºƒ™'c ‹jy§«ˆZOLËá6ÿû®…šXoTº_z~I ¾§Ã^¢½ô¥pE–ÞÕ÷ĹÙ<à«­•õÜô“6~“¶²*¬2ó˜$ý­£fDH/ÙøépüÇ£tS” ¬“.֦̄ÐÁVÂ|-øÚáÖÕ6mð±‰Gÿ*ž³ºŸæV^jÝ^JT¡)¬ù:¾‚ÒC·+>p—s£ ÄÓ.(ÎI‹9qå„øÎŽÇ&n¼¶Ø‡.)"Ü,zX€‡Ô¿Ïìd®¤GVÚ<1`1~½§Èïàþ±VM2Žªqëç;üóõ–ñkÜŸ'Zrb¼e»¸ë82ZÕ™©£(ko¬F Z áÄ3dˆº?ñçˆ±Ì C#a™ŒÑq0Id@9ÑÓË#Ûñºc’£–ÜBçuæ×ÆôÙs;Dèr¦±Ó'Ϙxqð9›†€g?X¥*ÊÁ~ˆ‚ÕÕˆæÊ ß­ž:Y[w9·7Ìyüúè&Ÿ8eUßZ5÷ëcï21ÓæX+ü§Þ-cNÝc2¹IGá,êέž5DGEÕy¤¶õ–1)·l¹%‚+'ë9O˜¦2¿ÒÌÒÛYáÕc€'á7k#L؈ÚC«ò)XA9÷Ë¥<¨ÂÑrÓi÷þ=ÉKù¾Z˜Æü³îÜÞãìßê€á5„ºÒ©‹7CTó‡¢i¶BׇHãØíoP®`¯Áoh *IÄH%\p;ž!Øfp,wwÆ’×½K),á],79ÿ¾Þ|å=i覻 -+ó6d‘Ñ» }K¦ô¶ÃÊDDˆ²Ã dÈŽoê8“ò]lç=zíÎì”àÎ3ÆU?UÅr1¸9vaÀ[C& ÏZkGƒõBg{-©ÊŽ˜ÇG雿ålöð¨”Ù=Êc³oâdw?s¥8a`RAÖ8(&û¹nE¯g¿Ò½Rù$B 2>ÂÖ"ã{‹›²ù;‚¶¸(o€ -aãÑÈþip¢yˆ’ð±¦ñ˜CîNº½¢ã‡ÜjJV€ý[XMô¸›µO4 ¾tѸ‰#Î`ÝCR´Ú¿ƒê*«¼:KÑ÷Þò,®‹MÁTg XM¾rŠ«HØÓ}šR¼ôV®ý>ÿïO€×3þqâmÜ-É1ÜB¶ÒA`[Ÿž +%„qƒ•Q˜Ç»èžzäZ:â¿ÞÛøþ‹?%±ëXÆ ŒVgé­M–êk,»3ÌÓ©M«[BdðE½ïœä/¡, ucÓæŸ¼Ìü‚‡özéy” F–Ì=ñÙ¾Þy¾ñçÖW¾ 7,àSe–m®A¸kW1a0–WöËyq«[—ŽK.Ùž>c5¢›£ °— ïÕeC{xÙÛ-% 3^‚üê½Ö­v’5—šfñÿ¦Éž½ßm·ƒÕ!ªÑ£Û™‰Lctý.ɪe¤v”ÅïôÀìÁüf]yª2g †B‡÷9µuÚs‚2ê';j4Îob¿‰=ù×â1©’­jÉ p¥ìS‹ãq7éyÁRgü rõy&@æÃhµ¤1ºëö*šß}J®õ"s ]…ÿŠÜ!ƒSaEÉMàU`# H²•ë‰ÚeËï‚t»#±êC^S0yåoÙÛ²<Êò‘3)é’ñ(sP=ûWjš:•ÿ4œ7ž!&M•0ôÉJ‰„‹üZŠ:ä=|?Yö>qÃ~JÕ»‹IÕ1ád§Dž”»B¢1µã²¹Ùµí‚fíOGÝpK6ÒI˜ìA‰)TìðbìÚ¡Ÿ›xæðLæVÜ÷8mqLÔZq»¶¾-ÌF4ðÚ%³-“.q›Ü£ùëmMåÏ7¹Xi~eÑ䫋SWà !ìáR5˜üZ”¾höç%›¢ô·ìý~\ßÎAfT@ï0Љ+Û 7B·"äIæ9|2Y|ýHÐ ì;'Ñ¡†Èt³–g'·Ó^v‚!ÀUh*ÙwÐŽþ7,oViªú}†F§*¿ï…Ø£yÒ]E÷ yñÕñï±äXÎ Sˆ,ÿ+-û22).—öÞU'± ª>¦(³ÛÎôr÷ŒÏ¤›ô²&…ûq°Ù¶©“®üíH!½j¬‹'Vßµ}ïêHû“Øî‰ëp2&äØ58盇2¡Á ÿIÜÊ¢oƒ£ŠV!:˜K©dhaä|å”a—|ñü]Þ¯?[Õoí½ »‚k›ÝØÉ0´W`$Àú½3U?§Ë .Yoc/î >Y߀›¿Úñ¦˜)ÀÊ ¢Šñ‹ÈðÅ™ßr’–EÞo\Þ㪄‚Ü‘b—׿ ¥ÔnH\tÃ_º”øö ?â!ôPà*ƒ©0*ÉÞgcR½„zÏÓÑ,5„üAœ[È"pܰûhèc:ëV% ÃÜ­N£™—&Z”ñ+–4virÎ>J’gÎ_6Õ÷ÕûÚ—/A "¯ýh’ƒGL,·Ñ`‘žHé{ã'}»q×ãâ7XÜeÃ,7Z÷ÀÒ1x\ Ö]ÑSí[bDÐñaêÂúÓæ½KŽÆ(ج¹NVÔ½Aôj{cb®†c¶YlÅ"ñ‘Ýæ„ÎrK$Wu„¾ås??øV¨;…P]LËÚ¸£ ~à×Ä‚ç"ðIð† ¸ÃE¿Ï‹ïOàÒºdØ1¨ŒtÔ¡t~G¦Má“µŠ´¬ ¢:åþKµ€ó=dÒØøpƒ¹i”Úòsú¼¿)S{K!þâÎ\À;f‚æHA,¤ð³†~Þ ;C, ¸7ƒú+Oâ¥O¿ún¤ F¯å01¿&äuœ!Í‚NPoöjú]#àgê”$ƒH‰Í•xœL’37þôd½±ª<ƒá£¨É;ëAKo¡mœ¢ø¬vAÄF âWdµYœmi΄\€%õže¥n]ñìùÕÎç[‘³m³µHŸ¡ÓN6ó‰¦kUÒi‰o<µ'(FA2,ü½ë¾s¼¹ÝÁ!1ø›°b‰Óó¹…7GE΃*ùzh»£ÆaÚ*LÑØsÀˆO W¹bM°}½•¨.!ó;—I”©3+2†/ 9F•Ñž6þÁYEÂÞRA.í,Ð 56âžÞñnv1„l/SÌŽ+m º÷ž‚c˜xò¹Oüò[Ú=ñœ¾úð¼©üIãÕã0njxÙ}òtøTú·¨ \È_YGâ8 (ïœJs; S'ÛIÃB‰ŽËnˆˆÒŸ¬ö¡Ù äØzòÐ1¬@œp:_'ˆ þé Œvh³6SóhQõt}¼ýNÄù¹ßâõ `À½¿:8‘¸-ßPf¥ Í8*¸ ¢Û€}Nò\‚ÃðVaëØûê­ù`IpdÎ(Çóɰ=xÇ{Š9—àò3ù¤~(¾k´·lVè ]q¯?H'ÂIN@ œ’<¿Yý-nædK©5“—çrñR.¢†÷# kT4º«U¦!Rn _‚Óó3* *xJ«‚nŸ¼ä4UœµÝ›Ä¹;!f‰ÕÉSÖûÞ#qݺ±Übt>[wO”ê­»#âc:¸ÐHØé e<ÝÜ1x7‚z_ÿüÌÜ‚K/×@ûSœ¼Å ±^d˜ËÁ-,½b ú¦ê³Êç¸WÙ‰t[”»9ÿZƒM°,~øãwWéÝõŽî³*ÐHÁ"ùÒœÿ‚Mr¾nirÇ £—‡|ÙÜA§¦sî/›¯ô(ïÉÔTA¾»q°ÃxlÞ´³,šbñ¶î“ {ì‚ÉÞFÏèõJ©‰|xßÿ« 7ü,±9v+¤ÒÐäªÉ;ô²&]S?lÏÃu󮂦›íl mIÜgµt–ŠÏ‰ÙDó(Ï÷Ÿe‹ÄϾþ˜õÚˆCwö äBw…„ÌçVŒÅØnNx[ᆉˆ2mQñÝ‘îVùÞàfl$­-ñF¡Å%Rh×eg<¿PsE+; Lm_ó˜E®êtT=J ÐKñ"N¾ÀŽ’YaPÐ=¿ýØ2òÛí"æÐg ¦í„@úJW©®º!dÊŽ¾.м®oþzÊ{¼ Çí%r¨¤½ÃÊBYø#S³ çŒþßÄþ _‡ûœScm±´xcpc×)‹ øÙJ#5¹ø"ä2,dÈ`oŸSœVü:›o,é˜2_/ÑŸn1z…}~wà‰¯Ÿæì@j‡n0 ñ€ylÓñ ½™NL‘Zó©®· w|®Ý j¼FÓS­fcù¨-”Ð3f··fó~Ö.Cõæ<R8-’¼ã»Ý ˜`Å@:/˜ •!*YÓÓÓp4“MwXéÈÙê=߈«òÇÉ[ü²øçÕš DË®­“¨4_¢ÓÔ$Í)j¼+:SÝm õ­÷½þsÐâògjeá!õ7ÆAÀjÕwºm¢E÷Ó¬@x¸ÉêÀ{í¡&vt8iþÕ%ù«…¢ ›°ÊbJæY[ô#jcC=É©g”*zpB¹¶¨À1×úê‘ýÕz §<ù4Ù_ñXVaÒë!öÓÑJ¤._åµSD8!RSÊW·3¿Ž–ΩÀÉJ¸oÁŽteV¸¿¥6 ·;Æ£½ù|‰~ÝdY ñ]ÍÎÉ5KHŠ7ƒ"Z¦|×c -#šôͦ€ ù @(³¸fúœ}"-É¡ðZ· îMð/r¨? l<6¿n­aØò®*ø³eË#zäýªd(²£)'Þ{CgÈSA¡ö3á€.âVû>ÑÁ€yuŒ$Ÿr{j÷ÿ¬É&°´J 3ÁÈ%O×ü …†@B¹•/¦t. w(æõLG]kÞŠ Kžµ¦,4¢Èþ—ÅüªÑŸ+ðgάëÁÔSÈÞ˜Þ™7Rþ *s”M6ë\-ÄÇJøÎ¢­çªˆ n]汯 £÷ûèå¨ââ&ó«ŸÚ]ø8¤}´•ðóºÛ€!m'®¦w@‰Ö;¸4LŸÙd oÖÉR·wY…¨FÐ0]B_–”»é=BÀå× ›}‘q9dŽçü[‹øE¼­Øgîbþ¯ÁÈs~>÷ï­ôï­ J{È¥®%䂸)-²™ŽQºeãÆÝZ)¬”Âq9qø¾êÛT,âŠÃkCsŸ„OP’›\ͼˆ]eçÉú»žêa¿… £IuZYø|ýe•²…¨Ûï9‚‹¿>$ùìUM;îÉt³²Å¼¹å >¤Ùœå§l‚H¬Ô:”˨ÝÑT…Õ#ž´eu¤jÑT("d”âc7ã¹ìÎdôY›zÛîîƒ1aÏ-ª{“=`æ+…Ÿ«çªS“ªÈŸ®išB!!mýÎËЦêº|EKɹK=È+kdò\3‚òLÒJdId bQé¹´ÅöË>G<hÒc9ó"Ïó_$*0½/iÏkz2û—…¨X¦Tm‘gH€^tR:›†•ÀdCB/Y…éî.«[ó?(ÙϾÆüèWŽû¢ãIÄG2òóe'‰5`|ÃÜ{q¬Ù –߮躧ýÔ^2™‚Ý€…aiJÃ;7 ¿¨Iá'¯¢9SII\–†,kå f$ܾØIsm曆ã‰ò¸Ì{¹+Ö_ùG¬gÛ̆( 4µê— „(*XÊãZÑÒ¾s"[ó3Þþ޹/øûñ¤ÐÇÉEí9õIXt7rEF-™ôAULbvo:ñíAÁ"è… [WðYA®àÆæÈ $Ëk’IuÑ´G‡™%ðÚ`ý)ƒz!yã³<Ì*fr>ò{‹517(9^ñÝL‰³óœô AïÂãôæYò‹HXg´%»çK¾WkX\ÿÿ4_w(z+‹Ð2:`2þW·Á¯ß§  dÁ›[ÀƒÊázŠßv:¦NsÒÁü2jÐñvb6içU%|…ÑÑðÏbÐøi~¦I¢cÑRiôbAû,LÚ©æk·9´«™Âå+þ¿÷È–E4·Ÿ07£[Ê›bÎ^Ÿ'íb&Îà1Ý]—O- “ÒæRuÌ*"Q˜|S¿c>¶ èRãßP¼’Ä·~»„ö¿~,7B›!QäËåˆDŒ–§¨¾´iêi´ÎÆd)—eøÉ;Ánã37÷ЗþÊÏ9_§2²øZŠ:£½mþÙ¼1Kz›jÙ”-½Þæ¾1_b2®[ 9OË*RT¾’,ËÍ„§¯!¬£…ðs‹^QŸpjKÐ}Ý.:äš2q»dÿÁ_ÀÌáÛ!d?ø{©= Ât៤ǮÊA>¾ñ(ÑtcZ²*ø*R¼!Ìf 2]°E*w™bÖ»¬;ÅËÇû’â&.‹;=!æ">o¤º -µx„u[¨·S*AÐ-=èE‡aŸÖ²oªÓIp»HzÛhaDà4P¡yÏÐ2d®]ÅZž÷u5tXкÛ)^S¯Ñýz¶vù¾êµ !T5GÛxUjEƆíd¬"~X,êè5"6«Ln› 5ÇVpç\Ò¤,ÒüXðNúÇ¡.:„LwË7u®´?VV—±ý]w—[‚ãwá飩;Æ5TûVˆîãn +èµ?Fùm=j®»\ÐרáB¥¬Q qŒî1%+Àc¤ oÌÊ€BSGÿèï»èÆ/.%CíÅ·ï/žå´ÒÑg¬i 䥞ÚïÑߥE—ÐÛº'7IºåPõ—ÆÐwà߀®»6l÷mc6L òÔÂ%cuÙýo[jT™÷ø ðUØ­À¹Srê^]–«ûäá0޲c8–Á¨<À%ø¯ýÉÄ V?_â•ÚÒO©\üC¸#µ·¸lâ6×~Ièë¢ß’žó£qYPWÅŸæ­ ]*Ø$B·Ú¬í¾Ã§ý÷Œ·ç7ÜÌ„ âOR¡ *ùšhïÕžÛPrwÅíÙÑùrÕ0}¥ÍW˜‚öÓI~a89!c^Í„!úoðCE >ƒÃôÓJ‡á¦„âßS”L¡'ÀNÓ|»ûÙþq€T ‰ˆ®-mxµN„‘–Qêmr*§U]ç2ÞÈ*a3lûŒeT!È&”¹c1«ÈR9 g¶ƒ_â$a+Ž ýN˜¯|H‹ÒbglŠ-ì à…šáÑ ý ÂSwÎQòµX’r¤ù¼™uh_FMÃá>ZÜ÷Ší´8n"íÅÄìe£j-h˜(›1õ«J H›hF‰ýÃKÍhÖV0fïÁôê<÷ÅXõš@¹$Ë«î9WC¶Ñ”O£›q- ’õ8¸‹mJ~%P\‚Ä '~oóô¤i²j+_¸à`=-J[:rà’}q%×Å âÑJ:BoE ]l•›ôÿX hø~RÒÂu¤*+‰{bSÉó)"§*ËѦïâ.¬ÎßSÝ"°T—Ï}$ãŠü^dž£ÿ'¨ßÿ÷_´écÅšK¯#Þa–8%xêU¬Š~'¸×oMÓ‰Ó4IûcAìT%Tt”¯½™Ÿ-ó^† 6DæÝ®£MF¢‘A¢™³xÛ1æÂï,9×å&˜†» ;Q–ø¡·’D—¼} 8ÏÈ7”²°6\oiª0 ¶˜4ˆé¡ë|k.ªë\‚ôR ]S´® BᣴdzT€ø\n·ÇJKX4"å -=r|Î7…R3ôcT:† ˜ÄºÔ$MlúДÊ}Ò£BÌÖŠ¥ßƒapÖ.þƒ*›âÓÈÉ“½„T ÁÙÜ€6–Máäf¶íô`÷Âle1ºÈŒ:¢ëZ‚uÁC"ðð ç:8àMÕŠ·x‹Ÿ¦¶U¶»œ« eÇkÆ$ìÈ™ó¿Z¯$Ñ($ÕÛPdx}'S*Ôú¦>VPÎsTuÿo£ó!= ÁŒ‚ÞŒ<¡úìƒ?uNÆv¸¡«7ß¹ú7¿ Rù§«Gd„:ï娛ܮk±w~:“Îò@·->åÜôfåŸäR Ù¦´®¦GüžÜ†nLßÔðÑ´11,.E«ÏFѦàú8. ð ’¬óݱõÙØ±[5èY-žÌÂ0o@qÖÀ±¯Œ ‚¦ó ‰jržr;Ô_G3ð9Æ[Ìo[[kµàµ ñ`,ŸK¨œ(µ9·EÄ”ÎwAøg½äWùïÔe*µ¯Ï·Bˆ=`0J£Gt6ú‡ÙEûÜî0â¹S4D›¾€É8hV>òÏ{üƒ‹²6í±N“îÂÈ@7uCçïðúdd| oÞl‡Ý"H‘ÕB–Rý%÷Y?¼gjïq¡–7yH—ö?Ë41Æq«8û_-‘Ï7©Vt"J1•¡óûí!F¤¡ví…T{™âD*†®ßR±ÞvH€zBG®ál÷µ¦O_ªR«—qgÖƒ«‰yÑÁ=ÑÎ!k¿¥ÈvtTçOžÍ¡usª'3“'wTÞ1kS=›Š†p™ñD3/áãü‘†L[óÓ3™7jôVi~FL‰o‚RN ‘–åÎý8ʼɹīƒç±*ܧG¾l¤“¤†Aà—ßü¸ñAÄ™sájð´à3š}Í̺"†ždé(.I]Ý!W€ºqä9é8‚½`ý]·ÙUÁzį—ãô; GuHtÕ‡­‰A”âš§ ëáHг¼²JuÓåŽFüyÌVñÑ­v¼mvÃòÔýJ"í:“7¹W¦8ù‘%Ûé%2íB,M•VX±(CFÉ=/Uª,ØwÁ‹’Ÿü ¦¡t«  ÿÿ.aô°yõÙ=ñE Tî` R·£¹q+óO<ňæUùXÊßÛ¡*;TË #ÚÔ®ò;¯;&\Z$cƒµÚá³î[­dê6EÆÌmX§–¶Q- ÓQŠó.\24"|bÈ[³Pvx•x®Tžçºµ¦˜Ë\÷NXX'å&7ç._fÊñQ¶~Yž!«ž.Çg‡é“p=…j|¥(Z¢(8ÉC°KCk#Ê™;0ÿ‰·cF$Å/ߟ&¬’(Ô‘ÜÀÂH¼øÙÙ U{è×2¥óÊçwXºù)æÆw˜®>ÒÇ·â¾NvP“ziY“sáhó7<¤î2ÏY¿ð³öÞ2¦ð Oz+7 ýÍè3ÖØœª&KÙYÕÜC–šB`ÈϹÜø˜yßÒr¸XG²/\H¹ø,swzÑ“D›eu*ÃiãeZ—úráÝ1ãTlL¡üÀ›5^”GùÝ8*ÜiAuXáNZY1æŸl"ÐtFž49Êžã–šÜ Cù@ ur‡ž)Mepg<»û=}Y×Ö8( çQÝ,øÐH BÉîµ™ÃüuG¸UßÀËkën颵—p±8¹øžãÚ÷0e6÷Ôøk˜Ûâ¬4ØW©)L¤)¥ýJ*åvŠAb¼=<6Â8tEÜë)…NÀ) ïD±`gñœ9¯G¨†oxx$‡žÎÃDçà(§ñlÞ¯=7U@Ÿz*YÒe)fªb d*=8™äËÝ¥>ZïH…­ &ØDŽ^+Ÿ]Ê®L2åZ7]{ÌN²ÁsWÔáfP±Ð©j0TȰTŸãôúÄk„;~é]Ò‡£OZì%qS]^¼Ã±–û¾Åºò¾7} SjT%ü³A„ý9èô­cf $ͦóÂOÚ´¡yLº¯ AÄ5¤½z/1Dý¨=±IbƒnרŒ•ÆÁ‘·‘ž”Óµúcö|[ïœLl¯}¦qOIí‹’0©óãž>ÄŸËm@×3˜n²ŸÖ°‡áåq ½p°z›v±–SüÊúMñíRÝÂŒO½Ò:ªÞ1Vbà$rõ0dFº¬6‚…š®SAvV•é‚¢‘—‰(V1¡È—!¤ÇÕ[Çã#¿!oj³TÓbŽä["Ês¹ á¨ÏÞ/½!/`mÿŧÑ»SHNq¸›^¾èªærgÇq†èºáŸæƒ(>h„füs蜻%.®aùéT†‰¦l¿I¦~¼Þx‘Nè!ºÙÉú£‘L†Rh zŠˆõõÓ–XTŸÙï-ý û”;·âx­kR­P¡3OŽØ„ßÄÎäã‰5°qºýÆÐ{¥Ñ[Þ·1_ݲ®ï¨vwxËù&Š÷É$ÐG‚ʃˆí¢bºÔŠuQ/¹tþ¿ëÇú«+n®ŽÞ¯fH¸;¸Óc»DúUówôÄ>¿®»¤/f=ÒÖ©KòÃNN°r+.¹*ñ¥y Z? „²l#l+-T¤eŒ³\ýÀ冞Ý]ì"³Ÿ3è®ûµL¼‚õk}à%Zrù„í•©*—xLeQŠÜ¹ï~Fõ‡=¨ð0¶ oóۘض+—‹ÖwBV³H/0bYýÛ·J –ã–#›®4Ç¿«tÉaO;Q¡–…‚Ù½ÞDpÒ/çzÝh<¸Ü‡–?Ê^J„ ~ù\œ¡™Í^mMŒ)÷©<>‚ß+ûF§4ZkíA„¬ÅôÂûF+gSD2!áKýC%j¿\äZÓVË¢SÐ=rˆ–S8ýØ®àZ9È‹^1ÎRao0=em=•£2ì†s™Ìêá‰=naýâÜûƒÓËò˜Ûj újë]“]Žž­)X~÷é•Âïn”'a³ì¥ÛÓ†óÇܺÍÀÏÒÂ&ÅYZÛÅÔáEqz˨±hÿÖìt•êFupœæ$ e¡ L§Äʲ˜l°¢¢†Ìx‡á7‹è@ §œ;#*áñãw|ìu³ °4Œ_XØÚúS4½xÏÎT–wKßqˆ&!XÁoèJü SšØ"à¾ç’$’„ã‹T$!²‚ 0>¤¯u„¹ÙÉèõy9r›Š<ÃÛÊ'·l™û&³Û^¢ì ù àPÏ¢Õ9…)ú»zLý(!•ðq`GȪ ÛÄÛÕoÀò*ee?åÎùkëwÿM+µ+‚S0'É Ü¤Ò yat½›ÐdƒíË'äsJ¶PÆl2ÄEÖ…$ú°ÜËrvîÚÚt´~&¤“©‚‘e­X§™O$ùÌT„}‹(º)œ»ni©w%º¤@æî%ï÷¯<Å÷Äc[„0yu•ã´_dÏSs™?¦›GØã>­Ï¿60ɱýÚu?æv8œ˜ÒÚ¬E¾x'íN€%Æ.–¦RŽÚÓºaÔf\±9ðQAT}ÂriÁL°=Ø|ŠUuzÒ*ŽÐBb=91œ÷Ã9…c©#ÊÑ7ùÙµ6BNÑùJød]xŽÝ %Cè-ØSéÚ•Îì(/ã$RUnMâØ÷l-˜HnÙ„L÷Ad΂ä_7‹yzÜf3ýŒ5îÀÂMõ¦ÛŸYkdç8Ù»|¦,êcbZ§Rt·ôíÎÖ옉œ"çõ¶E4I†v…ßò&ˆ¢ ©ÁÛ‡FE&%]ÉBdcÛaK°ÃŸj`9Iyv‡j™Dy¦ž/ké“Ö>ï…Âj>̥;z^ iߣ•än{õÏsÎK‡Ä[[­Æ7³€À"t/]ÚúÓÔu^`‹0õÜÖì”rÜ%:ÞȽOnɆ-mbM¯çð·üøœìà(®Ó;ö°¢ÿ6Óº»SýIò~(²¶½m²-{ÓÇÍ5UUNPÄm³/‘bñ±×_ñLô¹d'MùiR¿ö¨Í!? {Pmö‹Íä*”xœ×_ìØ+ŠÔÓ^ÞkÕîDfó†¤ýÂ߬0êâÕõáMx¿ØŽš §ƒ¸ZüiÆèÑeQãûºÁyÊwŽc"q/‹XMþ›<ÝžB¥ÐÏnÃ>Á·g .×ÝjyqëÀl»å”V¢¿¿Ö WÓ Ám–:ÑåNÞ*â–W»w>õÕl•v¦ö»µ[áv•z”iÿùIw¡GõÚ<sˆpv@ÖE³lP­¥ Ó*«Ô½pÓã¯÷ÎGœ—Ì…-´ýDi=½ÒÇ: ш˜ð•Ʀý›tƒå×)Mã_Ê/ á@bQÞ¦ ÏŽç—Fó¾]¤»R¹¥e{NÕa¿jú\!ßÒ(1ºTÑG¦ÃT œ¦O#s’l®Dß½CÊÈ,`7b6­V±A­›ý'|&Çén—Ò=NêÁävfUMuœNS–ºo‡ÀvõõlË6`Ê–ÆFU~si!ã´ÆÐÏT‹œŸm”ÍÒ ë°8 ÈËîu `AhQ¦ù U=ø+yþÃZÇx«JøŽ ÕðR—S.™õx72MèNÍW"=OWµ|ëÉõ9›šî(ÇÏz×J/ªÔ ¤ ËHØ=DÆþ¼þ_DÔg·ÁÓcaÛfë¾µ '|\ÛHyžþ÷š:¿ÞYû^Ófƒäÿ½Ö9IShEˆâ±x 4j˜Œõª(P¾ih-ø·HÁ ™"G„oû÷§í>„A¸#Í‘9‚@ßem^Ž#7Y9Ä*I\ˆòMjd6`~#ø¡­…sxÿ40&É?ÿG“š]Hj¨Ú/Ø•€¶]—\™¼¢k©ÐYÊGüšiÀ}Éœ—.Ó'\ä† wº6;91u®JЋԾtž ;ÑÙ³Ž@Þ<à‚Fi%‡;;~'­/¹û*ÿ?ñQíÁïåuGa–"¹Ìxüç—€¦ÆŠÄÀ8þb“ï²$]~–fyŠÃð^p~õƒmÇKL0 bæMþÄþdjp{@Ë 2nÜÖ?aéü‰¨¡;Ä]˜¹¦òÙ¨'HÅq–¯¶ZŒ«Åúó*&kÓžÝ&,—xÇÆG§§øšƒƒúD¢ÅH€´ùv­èøf¶©i2ËšŸ è4³Îˆ¢ß_ªÂ¯‰¬næçÆc6|z–¥I‰aáÈVîË×6Å–Öü5Ÿ•h#} dîÉ :l¦“k¬ÍdN›#zr5‚¯8èßW·jWG86 l„Ïž“V5™÷ðï¿á4+#gUd"_±¼KÛ’Ãûމ©Ó]Üïu–°ÙK ]þ„›z5“Ò!8_2†‘m¥¨Å›@{˜_FŒÐ‰4L½QÃŒ°Éz¯€N‡Äì©6X{^½Õì ép¸„©>P&/EðÛ÷p rc ,Þ1 2®cb©£B„ 1ò—iÆÅïŒwiöú‘Ô 6oxþÜññà¤U.’76S†p[L“¥ã·‘ƒÆ ð2xw‹£±¹Ã¼=k%ž»o=pе+±Iü*¹jí±‹žÞxuU©ßcæÛÊêaÕøËnâîÝÖ´Váp¯JÒ‰;ùã•@S2Ž^F\º½LÜ&4JuÁuH¨\]V+ë×çÖfáÃ×r¥Ê Ê­ùþÌmkÖ¿ Í€’æóç Œl’h5QŒCzäÀOú¡®l*5[uPÆBªgóÌ3KÓíþÈ#í@‰|$:ųìð9ÌÀ`Æ“y-4&àË$Ø@ÖøO7ÔfO÷ùÓ3ô—PpU†-XìçT]NäŸù5¦ ¬œru]°N£v³TQ ¢Úô‰XÂbä=³Úø6sò,§`L<¦C$ û©Mg]ô ÄÖ,¹Åž¥²ˆyYlc8”<Ѹïv¶g_^ëÆ*P¢‚(tºb[EFi­Ãpïß¡´´D”žeÂDrK·n@ÍÖ†Ê!¼‚¥•OÜPP0{™J÷ÓÎCêƒdO¾ÿË»ÑCË…!WcõˆIÍó,N«¿; H»H­78©·ŠXÇÓL{ÝCYÄf?˜1°½” ï JÌÃ7Õ ~øú¿ÒrÛý´&1¿Ó]4pûeWÔ ~‡ø¦à¶Ï'[iĵ3^ÚnŠ@r¬ðÜ~:,còÎôË­º=©¾AžˆÃ¼ð'Í\‘g¿ª3Ël´…V“0vܯ¢™Ý~dˆž¢0ãE {Ì¿Á”éZ§‘ŒWøÚ)%´{×±b¡uphzj‡¹}Dgûº"°&¯r´éQêàuq#‰KüP[êØìS˜$Ýñe¸êè#_Õ^É:•‘áQ^M-\.gÖ\N' ³-°$ù¢ƒá#·.Ê“Jf&¯ÕYm«.ÛZ Úì&’ͺÕ¬PååéX^²ý‹Oy£ Vú^^…à§k"©ú¦,ñ›ø‚ ¢É‘=²þ3SmîßEˆh:_R­@U­"6Nà<†ÁX|.¥&/FàsÅu 1ù\åÃWTm]Ô—ïs”ñ¸-ý“pBG.w¾„õ_¦z²M>Ú4{ý¨ûL"ü¦l¦‘r·”…S\5be|Éì²WIP§²°¶ P¦½ÊQ· Ha9ÞÐ"áyóEÜ¡l”£ŠÜh‰ôúGˆsÇ×E)µq´Úíl7â3P§¼P´’vCïNö1Õm±šqáÙ‘X@ä®±õ»XÏ\|#beÕÒ±¦ƒŒÈvÁϦz/#xrH-<Ýv©í\ÀöÏà¶Jf>N0\úÖ †D‡EçZÇf˜äë…‚uøãÖz¹è:âR{J¦¹vzz@±OïV£+µó7À\fñh¢§Ê„ëá³gÏ?0Ñ~ê;ḇU®È3qëñQAâðÏñ¡~'@û3Xƒ!¡:e€ a;ꆈéÌ5Œ,íÒl—;GùºYuÅì4s' ‘ÌÊ_©ur¥íèzM%p÷Zs|†Gèü/ç­lj5ÙÉîäýpg©'¹+ǚ厑ßl‡½Öª“†Þ³ÎIU ºÐ‰iœ_7Ìü3_¸É»:*YSAGH¢›rŒVCÆ•>nªàÏœËÉ m5Ú 'r°]¦=PßÎþ#Á;¨Ãø#4øÛœŒàeZ@…ƒkòLÞÐ0À±‚ŒÅ.Ò|0´'ýÕïŠDí«S´…•æjÐÃüœküÐ%2 iè¸ÀàªÑž ÍÔξxð¨;Ò†8ˆNE`à3èÒ 9­j¾ CäøSuR$‡ODœ¯[ÚÉé¹èÚÏ4iéq—ôc‚ÞD•ì˜ãáäß_X6Ã['$—½S(¯–·¶ö¼ÝE 8ÿ ˆKA‚u2Iòá”±Ô½cW^”jÏ/»kÏv“¹Á ¶çÔE*PÄʆÍÓúÉâ 7‰C-6HYöÀ¯z½¥üÌ#+ÙGÁ È +ˆ0tŸ‘7=ŠžoUz»dò’fýr ßÀÈüä `ÞÆ‹f4tF'CÎ aÎÒÝámÃ^)xIB@óW«qŒußB¤³õߠ´ìû;^Õ´-L¦ðøÓþ¡tóÅM8ØÒEÄÏôï4SÌE~ØðÕ*!û™ñþÏ%G1B0An/±{ût6\Bܸ=)¤¨,ÇF+˜ÃŒ+9Ãô¿£Ú½#O"„È™£”©*€¨Ó±ÆEåjF·´Ø5@tu}’0$-]رƒù¶XeÅÍl7a,N’YªÖ6W^øÎ,ä»›·âÜU F–š³=ýù´y!¿\:s敟ôr{mD“«*ë/”Ù{¸¸Ý=‡pzñ(|kH)ÕCB·d¢+§t¸-Цq}°`æë@÷A„Ü,ΗæÙíç8æ´äP| \Û9ë™ l$“Jy—#¿',øMî85Ð(犯آC½õÛ´›•ÉEÔÞÓ…â&™>Wˆü¨«x óÕ_þ~ÑVüññ ¨ƒË F茣ùB%=îä¼Pm%| ‹ËÈFÄ(š|Ë6Øí¯w s[¸¸H´VdèM¦2Œ©ƒ15x: 0/¥£wíjƒá*pxö[ªëXÄÖfü@˜ •¸ÖÙL€1ÉTWæGf;¬¾[•ŒòNÁL¹š(¹`ú›ñõo [4ÓaN0a¤W?ÉSs_Ræ)¦”Ã"þÈ`e¢Öõì¢H”mD{Íiy øO–lùóŒ5«ò’™b»Fy´:b)FÂL(¯p€BWå”n o‰Q|ËH›µ!¼¬|Ø@UÜ±Ž é o¦Ç¦Eñ¡2¿}ñ‹ &B€Ñf´lß:þk64¦E#oÿŒÓØ›YFˆf¾ª BE2'tì<¤}²3ó{ÆrîóŸB¥ŸdÀûŒY[¶dÄ­ÿáßÃe2ó®§‹]ø*è‹¶–?w •û®ŠÒP†‚k½\"tšØ +QEî4[tÓ O[FX¶š#(¡ï…‡œc}ûH33®‹«`¿¤‚Jq•=C(ê2ïÿÒǰh¯fØÀ†‚©rœ<ÉðöÙêPÔ» ËmÏ)_„¾F¬F!ª«Kk§LÐèwˆEU,ÁMøäøËœºw½²aÑŸü}¼X˜mW³AÕNâM¬– akåíEâØ`Q@6UbwAš¸•²lO‹u5:Ÿ`ÀÑ.ÜOãØ½f|¢š%yoÐQX &D|Ò;ŽU‚ÙñËòÜÝ9ß©§4¢H%Ý2‹tØ YÄ'$Š# zw &–‰‹_š}B¥žju@—…²¤â½vä¶ß‰óHÁ›û I\¤hb¨<ÆA).ã@E ÃÝÝg}옎ºˆíœ‹\ª‘ybDV)tž»¾Fâ‚wÛs±&Nµ]Ÿü/Û”šCÙòs“Zg&nn³ ˜‘í¸‡mP:円,Y+¨®(ç/~¬ù§´“¥\ a]÷í l[ÜŒ. ÷x£hÒ]ÃSI* õ!Öz‹0ý¸f¿ê%ò¹¸uÉ–TY *á{édße¶UZÿJõuSæt¾ —·y¥X¾ ¬ÞñêÅ®#u8ï¥!ø)û{=ßl1^Ûtùþè |¨Ëó‰òK«mûSh/TVŒ·n›%ÔïE¼1`)…¥U®ÂgUƒÌK:ò÷‚+ …ÁGæ«\HZHB‚£a\#ö: ÷úË) ºOâ>É\„ðïžÆqéÂÿpu«,Ó…ÙÇ]N`«È†ÌèÜ'Àµ±ÕVÚÜU²wÈw!H—&é0G;tq ù‹ø–X¹{;Äy¶y¯{ë¨UÌ/°…u“-Úac ûmÒÖ{•ÞVÞëš!‰§‹ÆìÒaC.»ÕT8 7vÉs×|@‡¶è½aíW.J7Íò‘Ùó†àWã;ÅT„ õ♣æhm³F ¨^§Å‹ìh"×Ç”Ð,žè9]ÞO¯À—Q%6©âÇËg#fd3 õ±Hœz˜W.ø¶@=ɳt™PÀEy?ÈÕ¹ÎuJ1 P‚ƒGÒè丰«( ¿CP¿ew‡b{_Ò'U†„]Ϧ¬K‹‰ËÍ›B0¸ÔÊÀG£mÝÖìå·»î/0¹·bõµÝ4u,‰ÿã“‘@×’SÚƒCÝ¥‘¨¼ê:éGm`ÍDw&MÃ:Säz•š¦uiJÖÖÑ/²ÓhShöU“+ÉÚÀªÍ–†«ù Xõökïí¦¹?Ð1% šˆb7›—"Þ²¥û©Æ·¸L¢äf¸&ý–7t 5gÖëPI¢¤·pK¾DÆqkí¾ËÙϪÙcÂî44ä‹‚OŠ”5)H{1–º¢WHÆ™RõR€Ž“æf«r ¥2€ð[[+&pª_ÆF8èuÖª/ò(ÿ?ÐõÀ»f{Fþ#d3£¹M?@¹£Æ3{Û¡IEYÍB‰÷ ™µVƒ*ãSg:ÈEv=›C_ËÖ/¶ ³,ùÝÄZ%77eQI¬0ÍVͺÞg}œUDCÆQ}Ӛ݃¡×/û2HÎiýÙPÙ±ÁÄJš'þÑìý)”Ê,…À;ªH‹ÊÛŽx­‚°ÉÞ¡AÐ2ZÒ©|eƧ1cn{iPÈdQ$zÏ…Rì¸H0/óÒÏ(Zê‰ær€Õ~%´WÎüÊ«D"NÜS×õŒº|˜Þ$ÇÚøxÙM´äÃ=v9Z«~—”¨^¿¯æhû;C/@^KpÌ ô¯åCø¾P” °Ai·(aÞ|8Ü}4RfðÔÀ+zµ¸[û̪ͅE÷¹X'òNm„&³ ](ã<޳UfÁöÂÞR¾ù˜øKºsKj”ÝâcÐ’= á˜h´§æQÄPŒƒ‰}Y0a`LûðqPýŠüÅLÞŠMÔ]ŠØU.ÿn@ì§j„LI]m’†Úgž3¹B£]j@Ô˜pƒ1A¸Æ4T³ ¢ÆuOd‡î¬Hí’ÑÑ—Ãni®5Åuo$ÞÿUÖt?õ×T—]\03g×ÿTøÛÈ™ù  ð½Ü[5äÞhËO¼ê¸™%8%a>p1~ÌвœOŒWZ@žûªåÙÐ’†äT´ŒFŒûBPF¿0*5ÿ|ŽdYB4¼?뉄›­™ç }?|ùTVB2ü’)b3 bPå'¼æ>·ˆ·²f_è&RýûãdkÿÅ•uøâÑm÷t(Nó½Y/u¢öiÎ ‹·lHG¦:2Þº íFˆYy_†í9¼ši[‰Ïÿ©•€rz1-Û×QÂè>Ò8”(`jí©~§IõñÍWir€ì¸Ù"#AîIYvô•#X‚æ\ÜÃì@~câ†KÍÖh5jà'ðÇNí"šk§XQÕm&»Ç"ɦÞä* åò«Yìg´àW›-JñÑRÔ;“5‚¶_D†ß637I*yé‘V7xò¤‰¶£@¥iyÙáXGt+GÔª*‡½~‹4uõÂág¢ÅÚÕcíæ+/(¬šõh F9o¨˜A­”öÉy`> âÛôÔzM^—rnƒ$Íòk°ø©B„Ìʰϸߙ8pÙžŸ.z¤0–„$Ÿ¹È²ZŒ¬ KnÑŠamg÷¦×µ÷u''¶QQ1m¨’zí Õ¹‘›@¨-ö}ù?Åç‡iºWr¡ÄRÒÙ ÞŽE–¡ÑðBÿ³€[?;"Ëuhá=‰)íßÈz M JÇ•*ÜÙ ’ÏÜ:ÿ[)ôbáðŽ t¥iÊ” ÈA´ÚÆ€_Mý.~r†Kƒ‚Ãé–¦*t‚ƒ6Ó'ÃÁÂ:ç<]ûÊKБ5~I+:ñA{ÕL:³‚þ‘بÀöƒ™)7Å·&s¢Ìmqñ±Ž}Ã,…˜-•ëqYˆŸäßÔ•*¸]9E†$[À‹…£$_ ³Ýöc¨wsgö¸¬<ãî™;õ‚ʇãUl*³Žÿñ´MŠFÉ„‚Õ_[¢/Ïi6dIˆ¦w@œçcX<ý(\8fœ™\‡‹É Þ™žÎk`íä.|)ßÂŒ:PìÀ Éí˜ou¥°¼úûL-KT?qšªÁ#‰ï«bý66Â# 0>çý©2—‚ú —¨a|§„"0#ö>‹ºþÖ¤Œ?“ÄýëkD»eÓ¼§€é gÛljŸŒ]&!TèyQˆI‰ˆ wÀøç܇ʞ8) õÜeév—À÷'ö°ƒË…³¼Þ"1J¤8Ô6‘ ¡ê§áŽZ/”TW¼ì™K*Í£üëÂ;é~Õ9…Ø€m³XE„w‡háC?w™¨ÚE81Àìœ'9ØpÂΠJ¡óÜžÞ¤,ã .ÝÞE£QŸq6¨‚ãáÐ’t+ÝËóøå•õµé_à6Ìz30°¸"x€UžéAØf€˜h7¡M¦j«ÙÍÜeH|Sú \…%¸N,~oÍoµÃOЄ ò«„û+þ‚5Á™è%B'fÄnÐ&@ÔIù :³Z9 ¡¶ØÚÍ!M(]ד-ð~›£hˆßc;Iè>+55à)¦ñXTµüN5_” u‡O»Žô[Kº•ü]š¢NçL‚«Hâ«›!Ò™5Þ‘µ°I‰¹>L|ö«vMR‹*#á²€­ Q*= ¦ÚÔGíñsL>ãÅÁ!aŒ5rw5+ˆ+õ z-l¾kÅ(4«l–Þn——!oÙáÆ±‚¦Ì.ÛÆ°­ò. ®´42ºš‚IëædÞóíW-Ȉ8àê¨ÁƒG®¡î{H0 Q·mº3†´âñó™Š2›YïÚFmœ t@¯5ùäk¶D÷mÑVâç¾(:»êEê[ªmõø”b-k©³þºI§”¡SùƒC•BqO¿mVu°Ð}ÛÌo(Â`¸ø`‘éƒ}¼¿Àz%ƨ´d1jŒ?!Îp_Ã××0]î¤XGÍ[…©ny«ž é¶uFÞÜm°k |TÝhFKEU”èÈq÷Q¼Ô^@‹!1àþf=9¿µ+Ö3Ð4¸)ÄâÁ ³?0µÛC|}^VæÆQ”>{Wݦ¦÷!¶“d|µ©à¥dyeQZ|zfU™…»to`ëÞO,Â@d“HOت^þe]W®ÕãHƘ\7\o0dÄ`­;Gïö½6-D¯Í¤ÞµÑŒ™&‘ËÁ °"Ml»ZN¤52–޲¯”ËÅ{žÚ¿ÕF+_²î €x=/ðGïX۪ެ¦¶lÚØÀ¼ìd߸ALªÿAŠyK÷Z”Auž¶sñ§YÄ¡VR=dîÛ‰š‚ ãîáü =»„†hjàDYø¿âV¢ed£ÖˆYíG:ñU¤—å§]S¿Ê{5µåf¹Š‹%ÇZ£²¦#ßJ„ :IÙîæùYÎ;‘_ñ”;ìUì/Yôñ@p¶÷ ZF•Í›øu;û%žfOoOš}Çê Ø]n½ OAæÍ 6Dö´f¸<•Z ı©à«V~d9¼ÈÞ}œ”ìG47œ°©ÊL³ÎáRº޶¶J°öz~€ÜÉdcæE¿ó%‡ß¥ÆN^Š>Lc[ðÖS^C™xàÍ®Eo5xr>¶µcL^ÈñÓý(úH(…0`P±¦¦âH8—#š”ÿãøñJN*˜ø] ˆÆ‡ßŒJÆ/¥ýjÇ— I‘ã±µ2ÙFý¨9(³¾˜’ \Ö\¼[ó½æ˜Žß³ƒÆé'ê[;ö(ùC£Ÿ2˜s¸Þ9x©ó•65ùæ+ßœ©§i`½ëGH!'$0ˆzÖ#$Ÿø‚Ž*±±ðØ ÔY¥d&¼E7åŠVÈÝ¢q)EñŒ¿DBhI—ÿr¢ûÍ|{ÐÍLÇ3ñÃZû²lÔļTq¦$ÆÛMXƒß:ëT ÕFRãèmɇ8*ÎLš>ÿÍÍX%ŸÄZ>;ÜŽœb½4e:˜e¯ž× ¢VÊÃ…æf‡–M¦iÕ9 pm&!ÎŒ;£•ähÓƒ¶œs’×±èœì6&êôNóð!\nÀȺªm¬7Ö‘ƒ ÊËç›È+d’¢@ëëk^ ܾ¸É Œñ9çXéçµ—‘p`#iÅZÐfÓ3buÎŒÄ-+˜'”Xlºˆ¾»Èà§M µj§V¦®êòaTÿ÷„­çÐ?÷t¹B§¡´òÈн6:øµÛ?y+/S7ºÊã>b#öä€ ³¤ÞËø|ÅE¯°¶Õ.°òîx/cãò‹>èl ƒ3‰®——;Ý0äñù“DveŒcŸC,Ž4Úµ_ÖV—ÿ …S1IŸ_+FßG\+Ãá÷Mp°=>•ð_·aľÒÚ\ÚKF_cÕšLËV„æt/¬[Ä2®ZŸsâQ«þÛÓÒ"»@O¸œI„ž~VTû]dFÃc´‡ùðÆÂ Ý#ó< ¥è#]…-v{6ÀMC9àýƒlv?“ZmÞí-HzÞQP±Ô #pÛÛ?„x Ÿƒ‡ À¥ü'nE™á)‹ËT=\&µ~¥ÐÖkzn'ŸöÑyçëgšñÉiIÕÉèÍZ‹W\-4ûjý-wé  Ý©Ë¯{ &÷]Ôê%ƒTLç”}úíOjN©›2É&ºÙ}Ž7BÒjÖ¥³¼TŽžQ\‹UÏPÙÆéX»©Í.ЙXç÷:¨Û/Α:¦ÇƬ.þþö‰‘´;ðOÑ·Š¶”š?ék6‰Übüv-H­D1 ‡Å€† m‚ßÛa{§ÖrÒtó˜©B¹|LÀ‚ö~1"|vʘUtaO¼E„†OK‘I̸N}b«®ôGd¡A¿Té»Ù{O¥'ßaz1y9§À7ØcJs-èb†V¢ý²`Q7~ò’3‰ww¬k F^‹¼)âë¿Õí08ü²ãhï’µ‡™Nh&_¢øÂ€huÍ?Í—vΰZŠ“!èêDøÂð¤Í£eµ.¶J¾¼Ç3Î6´qÙëE6ï]Ç.o•Ý Õ¡¥ÒK¸RD Þýq€>Öbb’îPŠÀaËòKä×Bžµ’2§tËÑç› V;ÿ²F¶o/Ò|äµEÀ_’†=`<¥^;“ý”‹öÌœ€ZNe„è¼ôÑvZêEéŸS?ᎀc†åÈUX‹õƒÇX{t«¯i xu<ØR%'õö#Z2Ñs<çu±¦þýÅ=¿®QýÞOíf8yË9v\ò•¢Æš!5©÷èa_Õ‘LíÄÌû5é¾gÅøï¢‘uƒÅOvÁT7Âü…ûÜ(¯pƒ•Æ–‚ÉÞ—E~<ÍŒ—¹t+²üéånèã“×1r‡Z«î$b'yÀß-+H¤‘³ãé˜Í_ÏT&ðñAUŠ•f³±/Tù Ä{»Nwzh‹äO|1xÙ¤—Föo6À J\ÔÍ!s÷ضXQæ¥ß;@ð6h¦¤=Àç·H¿ø/;¬Rç¤ È¾oÑ›£#|‘ËôÛ ØÞBDðGµ^X+]ïã!Ÿj^ ±ü18Þ Îƒ–ºTmßýMi3-bwjöðæŽŸKE"ª¼ñßLë¯!R3ˆÇ œ¹`ìwLŒÝÝåd"gê%›k3oáNŸ*:æA¿œŽ#¥‚1p Ô.~c¸…È—±ü·‘¼¨lDˆœs°9ÑÏM€n“,ÂÚ 8[{œ‘L"?qÀœäbšÄš3Ô÷3-æ}UµfúJ/†lQwÞFÃ6\ÿzrq2•;F©åa `gbŸ=iqâ¬;ýè <±/„'oKß.#gg,Š«¬Ë'BïgïO8Ñdlý ÌÈ¥!9žïµÆ(Ê<[¡bpýµý“`~roCɶ¶õÛŒ7;VÂ^´ fYCº¼rÞ¤°·Ìq3z+»Ô’bƒ$…iñ;Ï*Ð6ž¥ö•üLŽÞx -Œû³ED'IÂÃ]‚<š‹‹Œy T<4œ Âv-¾;­"¹Ë‘úÜM›:רÞéìaïÐÖ‡sîù¶6«h ¾GÑ_Äu© ãÄBŠz”lW_2ÃY¹qîØ½~Ïx)|R",µ Õâ-Õ5R>Ä¡éÅbΰœ9.„ФÓ!ëÅZï ŸfS©5w›áõ°”nÌgÙZdwñå;Ã/ ‹A0!n  º‚èeR™ –¤N¯´ª´”Opܽ´¢í_«»lô4+ØŸF$®ý©8ÊŠèp+Sð;”ã4›‚"»Åû@åQÉ"+í¾š…¨½oŽÁùäÍe•"¿"Qƒ8ØÇ"îÉŸbl)"Á_ç:F ÓÏËÝØ”€ÀÔ=wñd¥\ «,/h–”˜¢2wÿÏu9ä #Uñ‰£#Ò{ ï°7p±¬öÑ\.ÌW?˜$ÙÕ¨fw4dï¯âg˜›,‚h€Ø)ÂÈ&÷æWsÏ¥D®XÁ†/·mxÙRdš+š`kµè]|ÔÔ@ÍR ½#?EFB!1U u}G»&JÙ¾ÑÏ ªþ¨ÛO™=ÒKßÙÉ8^í结ÿ\çi§ë›õMä¬ûL»Š“”õ¢Á,Šìª¸V±ƒÅÿh«‹Ç¹Àóƒ+ó ïWRc©¬’m{Юñ@‚Ê4Ø(Ω(¥ÝM}Nö‹ÿt©PìM°[" rqqóÝù(ZÆ¥Äõù%€–—×A†ÆFÔ`´„ï¯þ/ri1Cµ/܈Õb×òG{NMbÝã*¨ÙH±#[=oõº‡Ã«ò¾7AK¶{<¤¸0Ii˜Z'rÖ¨\NK5ù¢ã[&ÓŠ¢­¢<ÄåW?ÕuUA?Òp!Ä“¹–4ü7Ÿ6‰1á$$IŸb½4e:˜eÃ#Jœ€ýk§ùs_@'¶§!’Ÿ© ÆË˜ÓaºÆ²` NÚÇL“¿ßƒ¾Û«¸,»üûéiøµîD†ÜGÝî’ÂÇî“ä‰M«¿ŠèdÔÇ„í>'Ñi}‹ÕB;ѳxÞr„$ ¼Öb¬‹îÕza,ÚåD1žw áÜe<=ÇÖ|`äâýe:w‹ƒ3&ÎŽU¨¶z/v:*xœø0f§(7-|›L¥ÞFe9»éÒåL6îžö!Y×ûºÇÐôÊôûzܮږËWZ»øÀÅÿåÜA§¦aŒO(Yvßþ’8ë)LV wm¿gX8°ÖõqŸôó·fE‰f·õõH%ªÉCü¬ƒ• A·àû¥ ü¼:H¬a<™ˆ°¬@m>—}uî“‹„ô±±Qµ‘ù™\ `Ø$#Ô«l3Ϭþ´äÝi·fnÚ@%\Zé;¨5ç•¢Ó!“Üà¹Á™Ë¢chÛ)dƒÞnŸ¢t¹|Ý—ù÷.ÃÉäÞ˯,æ´_C(%w%§ƒô3‘{ž—D2‡P×h—q³QGÜáxf±ð@´(IG Œ•:<ž½  x´v\púÑíÎD j¨ shQDÑÕ,ý áUwºIwë¹\U-Ý*îz×’¢­]´¹ßÔ¹ ëÞáUšwt/n¼Ä œÃýÔø½>fAþÏ àÛ¯ƒ›ÐOH!;Mɵ”ü"d8nÓ0|i ÙŽmÌÇ [Ëm;M%’_o‡Ú=7"sZã›i^*hî'šBb P }{Í/bxÿR Ý5”½40¸²¶¼Ëpnþ¡Ù&u¨ð4ŒÑ#JÐú}VŠs…üÍ»Œu„yjñ’½< 5™b÷QöX>ñÇ N)8CõOî×fáO}Gë*§öi³búEÅÚÞß `8ã;€Qä_[¯VÞuF€á‰çÆTl#ÀõÍSäAÖÑ0Í6‹Ñ1ùŽá±pLHmcâÅŠ¦”.oëcv©â6ßåÁ M…@`Î|•s/SZëÒ¸Á8”sú>UÈE2÷ ƒÕwÍ]ì:«à̆ۻF5ãÙP_ü2³"üµ$øg2ölk)H†Phiö~w±ÿpŽI”ò 6æî–œ¿ªØ°I¡¶ ö©%Ÿ’ëÀ… Lälý7é«ÖjçrcY»9k'¾ŽT* ŠZ|Üß )Õ‘â‰å$µÚ+ÌczÛ>´ÜK‡ šóåÊÙ@Dä>€x703Z=ö`1¶œ˜ÛGñ4sÖœûaÌÂÉáx2á'ÍŠþ¬))箸Qp˜¬~Ÿ«PQú ‚îï¶CÿÆÂ.sª\˜ÂA“Û/ $Û9kxi&;ÐJ‚ÆQ\y°—eº@G-¸æ¥†v Èà/špü×_šiq¯¡˜Yø7Ðgç§µy6“žô6£þZ¾ÁѓިqÀŽ"Í/¦pY\ie€i6žÙNÙÍú0=W‹PÏ$Á]‹9X®Vnk®bc“‘Xe\Œ*WðÝ hyR¹ Uð†9/È3¯:o–(í•ϳ¤å=θÜ6Do²’\™ëÈÆ1Ï,5-}1m«‚&¯Á®Å³ìi†TÇLLíË0×°ŸÅål¸ê3‡éOi{êÍZ3ƒ¾’ô)øv⃣Òà%Ì€z^ÆÔ@Ò6À¨Œ`^,_!ëä4Ñ/bÚöE¯\Wx¤Ë¼08æ=J_mWS~Saħ¶a˜'ÿÁÑý1RF%~NíHGîßçÂëo “КŸ ÐÇ8ÃôÜðÚŒ])X0?PÅqš¨E%6]ÅÛ”:A91[ô‚aMa“Ó¨´C׺å§xë‡sO–UµcüŠŽçÃçÜ¿ Šj “ýy5%êBsÎljòñÆ^.ôæ}­Ç­* óéI@Ì^M—ü/?In±²B"u“ì_‰‘1£ˆ~hc3Y31+ÍðlÚìóæ»jayrU±1ËÑP3Õ®Øójr|<L­0Õ‘À»œ¬€TÂÀîvÔ¼•±Î2BÌ ôtöèýhi#1PJ·CD©Zös”ÝäÞ™­.0Ö\{&4±#ý–,¥'ZÛ¶D8ÔÆ(¬–Ý3´SÃÙ¨³ÈrMeç•Vƒ+÷·Yƒª9Qê_:«¯ ÝŽî]]I™·¡®¿av+ÍDR:ç݉M]ظ9òç1¢LHm s|Üôõ±ŒúšhÐ%J>î-ì¨{Ùáúáæd{¬Ó®±Ápf<†ëWv²M †t}Oˆ¸=¤ _w6¿¾Ü¥¬ñTÌDqa«ÂÀÖªpŽÃ„o®;ß*“‚!êGkp£ÿ¥íeÐÄTVË6>MTTOÐx¬´™ÅT«Qh¯2Η?²wX¤HüP*¿W¤:âÄ®dìÝåjç„:€î¥Âþ­Æ3Phþ7ys‘qÓ(4IÅ=kî6 M3K0btÍf›Jƒ3}J{åÝ­!Ò8WÖ I}oÃnAU✠ÉåKÝ÷N2MC†¥ôÃá¼Wcxª*µš*¯$’$Ô0ë?­7ì¡ ,+ðIKî<ž’û{ëoã <³p¼wpä¢ë,±0’;|ëOçõmwMå8/ ¯Y¬Ó/O¸ #‘¿ñÄ-0#“ì|ß4z1ÜìE|Õ;taÝh:9‘9˜$ë”éªûêTvûØ­7…"\V ˤxþr¤f5cÄ–ùg4ñ°!“kä–àSÿô¤+ŠÂ!°OF5$Ñbs¦ÝVH•Œ QÅÊÞÝÃïŒF/2_&kÒ•ë ©ä§‹Dê§<9$w45š fÃ[·lº(*Žzý‹î<“è@61†™¿&ÓH5FéG¹•‡ÝùÒtñ<æð *¢Gæ!bÿ©ëÉSý©&öɯ5}w"¾ùБ¸wn3!ΈñGÒ+½Q«ÏWMÿˆQ¦(XpÓïB‘ îì¿Áf3Z×·ÙBK%´MNü:FlÖu%<ý¹¼gÑNŒbö m®ÊŸˆN˜Q©ƒ‰?C’>Û]à¿á:=·DsÒ¯ðTIRäl»Äàö§ͪ¯Q¿êSÄÊë*$ìÐs\Ý¥¹T,ñ51$®ñ¨´ Lìeý=ÀþWS–Bš“‰uñ¶îM—Öú‚s®ôZÁ˜GqŸžöVµxð¬’0ŸÏ8ð Ð"9×$]LzY¦zº¯ÂϽÈçëY%ó "îQÐòw×ï7’Ut¢ÁÛÑðîÅ k%²D!z  Ž©Äs~7ÑèåT͈•ÇSVÿAEÖâ³hÁwEßÛv‘(”ª~i‘RÊŠkÅØÏ÷!Í œJ‰DÍëo*°Â£ã%úá·|hã(ª·ÕŠhð±ì°üWÙÜð€$D¢cl"PM–öß÷ßÿrzçÅ¿ N— ™Ó’÷.ÆÐŽ#±ÝÈb¦“o%på®&mœËhá}{ÒpBb}š. ë3B&ï. sâ—Õ€£b€™®X,Ñiì›­™Ty,å^HÎ=˜„3Iða¥<¥Gsæ¨ –Å\wÃÙ=-åKF°ã@UÏa‚l½î´ý^/I‹Gàó#“ t‚õ«*F¬å’´$¢Êí¼¹¬EŒ8b‹(ll'ìw}øuv÷ñ—âPë¼"þ}'‡¨ž_%4³-ƪ#=»…@;?N™á(EÙIV£_'b§hnIªç™q„8"´ wgAPMþ¸ÃÇûžtXD3Ðê¸Rù·`h ŸLœaj‡/³$íà¸î±£¶a0\}R1=çû²À·ÉJa<ºÕº€ñe;ýU…tZÒŠd±îKŽQW•5kÎ`Øóié”ûÿÔÐÈ”¼>6ÞbÑÕ8ŸÒö¿>7K2šÌ`¢Ðm&ÆÊ2㘥ыá›Úâ_´Nën¢ò`[2ä”±ÖÝûuu›% "a¶Y¾²[BsR$ÔuNàù€æÅ%Ï¡„é¹Ê²C;ŽÆìøPeúóv†t¤;üúæ MêŸÝ0-ÿ‚³{÷ùúœs â)I¼_°{/¶ÄðrP´¨PÁ7Z¼¸«4=,FD] /t•w“ ÷#ï¦s¦Aä™Cë©À!A}n}´3¶úäyX ÀšÄû"ššƒI%Y¨ßMرPÆÈ{*Õ Msî|<ØAÀøª!Ëñ8×ËÉë!cŠ×5÷ÿxºÄª)θšz%Á$Vvì—Z³“k- ÔA¼pbSƒâ|"Q_%îÞ¬Ñ"÷Ð ¡,BOáî¦@3q!k‹­”fÓ_؇ºKpp¥ja/«_é€â«_!@Pl›ìFÓÌà²Áßj8TÈÅÅ’ar_$™õ CGU!yRNÐòÀ‚Ù©¥DöÖJÕ+˜žè I®3H ˜AÅ¢ÅÖ' ¸ÄµdÓž.)`HË !ó=õ«nÞð„Y‹n2ƒÄÄ”sª&pÔ,þ'Œ¦†ì£˜+òûMÁ®h§¨¯¬Ì~é_uꤣ^8_–ojˆ¯Zt Ó«Š1û9^$BÝsÕ¯ˆ^îP°Ç'Òv÷Ö˜äæô]IÒÒ\²)ôŒGðtô+뽊ó”jX¨ãC¢ó0wæ1 ZOIBuR|í¹_ýG¼ð¨“ÃÁá‘*9Å2R(ûëÿѼÛÍgC¢’vJI;/œÂ ¤·qŸí7 ¯)7–%ì(úo¦‡\Å€ ìèá,ñâ޾ár|UÝ{›7Ò»BßY?p~oIl3¶&X¾CÓù-%þ!Æ n¢a+Wb…¢˜dz†.͹uð¡$ÇÕ\æZ‡þº0Éö[wKoúÌ‚ñľiƒ”.Í=Ã]y©‹Ôdu!ˆ÷<86ÌÄc.àÂZ7nU^‘| r5ýàdH.Kà,¾?>ÍU ÏA„|kŸˆ‘Ø;PÔ²aÜ,[3°„뛲u%è•L$õäᨙT·þÝûº)2¿ÒgvËï«×pz?]íá‚— Xwê@×§=k×AQ~[žë(iƒ#üb  7BïÂúAŽäÕ­2b²œæí°ûŠ|—. én¶Šä¿ÚøËv‰£ežþ%k3ÉHœŠTÞ§˜÷¢P®Ì&Hî»’á ñ?Vô-ˆØ+ô×§ LNœ¶˜ƒ¤2RáFí¹n– ›,K#ÆÏà yïb_rüT2‰‚k8¡>•¹3±4ŽÑqR:‹DS“«Ë%ŸÁËÅr4 ÒàŠ%¹¿Ó•ÛÈGÏì•`fÏ€Ãæc¯‡Žæï:«à›Œ•+#`²–…SuÉFÆyÝkø±ÊèC‘rˆ{#Í&(lÞ  ÄK &Ä~\ ÁÊ[<é¯úOŽEžNÂä±±¥–íˢΑ*¦t’ß*M^{¬u–ØúO¾ØI“MŒiÏ=6ãø^Ò@FP‘¶Ó³£²ÇBQY„«¹ MíТ›]~.ßO+"ébÍum ”`Œãó\Xf­içYžzØ„øÝ†ǷޔLjkó=á&ëîg°ò§³  œå|8HxÞ;+ÞØB­‰àŠwÈŠ€y¨ÒT癆r³‹G£3dˆº*×€X8°%AT¢ÑCzͼV×eâ_ÖÐ/;Y’ÌÀš€D5˜YØm§}ÆÏ`%ÂvcçàÓçn¡õÅü|Yž*!¶0âÐÕø÷C†é¿²›ÉGôT‹ÿ›G#îîLãx‰:;èÂÒý¦0þÿpÓëGwqßCD´gÚBD$ÅW¾ÔY¸#±<Õ/º–Vcµc€ žê‰îP2›ØâÿÊ`Ѓ–û&)™=7LS9¨|ñŽ]Xf|SjÆþ±¡q©’V™ÌÒ?¢šFJŽBÆ*™¬c0Ñ!n-Ý]Äpxµêõ¸nA:¯»|Ú¨ˆä˜éqdÁÿ$>‹©.sl’Çtg{/`DºãòBjÉ›]ÓÍNSî8ü~®Ng€8§j-uëxÚjî $´m‡x)‡á®Š\ÆõqV`4†bµÉamMà&<þŒÒ¡¸†$seý ·k‘@бÁå4EÜ?ÕkËZ0¸ü̓%=)ºsBª\>Ù†Qvóœåï²£qð*ë¡{ÕNr–VG[ ïñ:û¿r–Ð+xâ;Q™@| ",*®t2#ùº¯æœ®ãðüÜ'¿ªâ&PXÔòc_Ïï×…Ö¸LÚhÅ sw |½wYh݇JX¸¶&Çß² -s-?OϘ¿N{ŽúœÄÅûè-yÖ6ÇŽ*ÖÂ|$if3¦i…„ðehe7ë~„cï I@±*¸ÐÜAÅÒ¦z4Ž?  N6dªQH ¨€ÀjÃ63³ÓT74Ü]jî•â IãWõöIޕċ…ÿ{¾Šµ%ù°%ß‘ú÷L¡»'ƒ“-QÉüHñ%Ûs[ž\ê_·ZkäQ•÷ï½ö¼’yÿ,‚ö©K= )ym+ÑÞ¸ã[ªk?kp2 &A•ám¤§z<×ƆŒÏH•ûj)Æp#ißÈÍ'x¼I™ öŒJ.wYP°6ù6Ë@ådJ·K“„Ûm.æÕ„ÇÒ½|'q¹´çǾ~\ñÆÍþLiYî’?‹ö”ûyïÈîë[Kª»i…X­ß-íÎ ªKBÜË% øóq{ÜÄLÇ &Z€-kêes³¡©]¹Å˜‚1â¸(+ís’G­D1+Ø4¶Õ 5\Ô½E íô[?V†g¨§Ô‘ǩƟI3•L±Ë¢¾¾\á?k.Šâ1 Z‹¯.Ç~@ÆL„¡—ÐWëê20­(—Ëbh¹öÄ^øÖÐf‘²Y&ž$ˆná×SÎvÜXë¹ ð›}ÊÚ\láß—_’5Õ9ù{`Lj+c°T ‡©7¾a{®`Ó÷–Tñ*-d—‡ Ú^k¨UÑÂ`Î!¬ý³U¹IúccÇÓ(T°ÝÏLäf³œ(éñÆ¿nÆž;9Ž{8»à¾G×ðaônƒ„M£UÓ¯ÍËè-‹‚Bûï®8Ôë7ÁVÚW0¾vJ=Ÿ½«Atz–ô‰ÍWäÕ‚V Mg›¹[è@[Uy‚¢ÆØàºe¢’ñ .§Y#sNUÄ=]]îÆÅyºöÿÉŠÞ—(DXb~Ä™Íé#«‘d?Òí·4_»:æ|0>oWørâ<Ö!ì2úF­C-¡³$ÔnY!ô¯ƒJ¬|µ ø5c±'mÄ*†S|˜®{ÿžÀ¨^à›J®)(ÀMów¿Nú@LDù‚ç=£„´ÕlAÈ9ý"vö«.fe¡½¶xÞ’s‡0ñ7‰Œ‡ ÈMzŠcCos…ÛÆ p‘N2˜¼äSdÁ-†§öû"‘ 8ÿK(† ³•Rí=<¸j‹út PsÎ*S÷P°ds(wNŸZ™¿ÂeojääÉp ¢Dp¬™0 ýåm¨0✭œ­wê§¡Á»ä†ƒý˰]®¼¬!ô*5lKý¬>£}¡júyïöT4KFüVÎ#^4¼&`9D¸†Ç¹É…8íQi ¾ƒ»»RCãìP'>4¦µW8^{d7çh 3´7e’äÊ›+óË.›nð’×!‹çN8õcš…Þ¾ô½¦µT5tµ yÜ9[Ù|pâdX6"–+4®ÿ9žð媱¬r!0†ºÄ–œ|’ºwèwöN¶²Ê ‡š³îÁkö±ï:ÂÞÇŸhIÆ<øýþJ<>Ì0Káǘíý a·«”Âdôy] YЮªû®õ­1&sw«ªÍ¯Lb ¡h±vç<`ŸŽ¸åâ+í,÷be¸ù`sÒäg¡]æGðÒc#Ä¿” øö"^ñfg¡ÿQ\øFãÒ<6ýbèš{i¡.îûët`Õ˜|žü493Ñ z ]àM1™ç;FÌn¦ ³xºí%dr † â>·]QzuiŠ˜nLƱ”i\ÕúRt§¿Çþq™ØuD‘Vm–ÿ;ÇyÞšOkR žámk§7Z¾dU2¡í,[ZÊõžÜÏI@síJÏ1²öxýϤgZ ^eæ(ßî¶ñÉp·a²,s•Žp›ÏìÆ2q»W!&s^r>ä!s,f1á{5O}†€{ÌÃÁ+F‹E²ÑÜZ¹›iåˆíY°·,­<˜[‘¾cÝX´D™ˆ®©%GéÚëW %}ª·Àf´~H‘rìÜozd‘³M’ä_5‰ôKlÖf6Ý—l­^ÉI’oÍuñÚ„ðÉõ^H5T¹‰½÷Åîò¥5ê0²}s‚ÜÞyú¬ueCîÌ"‚ÝòŒ|[ÖV÷Œø¦¸Áõܨ±YÇ?°ƒ"i«?’Éç iϾ"ãeš\Þ(X÷1þfÆË˜]tñùžI|ä:œS¯¤Xë£úxëhå`˜ò°æçõ°³.Ýúuó/äº3jÁg@(PóojÄŒÝÄÒt³¼‰R‘ˆ““‚Zá§²rÐ.=ø2^WWÛ¦jVþLúX^Ã’!­wQá}0ŸWòC:(99«.Q`¢ÊoÀåFa{)o³díGì ŠV9<ÝüÕ5m‘ÅZÑ¨Ž«Õ¥„FëÜf‰d9¥PÕÌøžªÕÓ$¼Æ÷éJB•c(\¸=›I0”4ê¦ åé[ñTñ%9¢ ÿ’@ë¦ÛW#:Æ„x¾¦Q±Ò£8ql[ÑÔ(ÃÚ»&]lX"£m®ã~@1bOŠëJ’›|@Û¨ßÿr×ÿYZ먇¯n‡·…Ä~ÏÒA¢¸T0Y$»W÷%ïR)ÕLz -yïû #^«ÖÌEÙjÁCY&êJþüÖÚUÆ2!éÃnÏ5Ýg1¹Ó=-&S@ƒD^<®t3Û†ù…ûێ뜰^f$ ›ž_§Œ›) NÞ¼Ò=Uô«C剉0Aë$ECö(%°ÿTâ««9^i ˆ)Ò83AD\–IÇ«Æk&C†dµš"òwíAyÎ:ŽñýÖŸïÉ•‘ï]Úý=bÄä]ëèbL9z¶ïžÀ…2ÂÊEÁÝ,_Tè—9Þ•j9–óþ±B,¥ï‡·Ùù“ïº8ÍTk˜pé Ã¥àzS_z¤)íG‚æ~ ¨ò¤út$¤Àò¹VG° e(Uæ©;'d —œª‚‹¾¡IöÛälj`ÍŽÔÌÍT’XVLªŠÂNÇŒ,Û¥0éy\¾Î?l#Cíp4ÑöÖ‰¨÷Oõ=Ê-æ»äå°æ"­æw>2Ï»[ßj\)‹Ý®ëÄ9žB†÷ß힪„º×RœÙÏ6n룕VŠLÔ‚jÕs¶}'"ò,µ.’§xÒÐ#«`±×iëµGX1lõ®ßѦ“ÙßED†Y”DkD¹”tG.Ž1Ç€¥#e¨=쀢ܬ-/Ìçyš«£0”v@Ÿ"ìï†&ÔVMçÔˆ%b#:í†Vʨ<^6“$¥îËà*[EmEâŒ'øÏ!ep…ó6Ê£¦ÊãI ¨^ËèÈŸ¿‹îúöN`ÛAf#-žb®"‡Òy•—99@Å‚‘v6 hä©s#úö måùÊS Nó_“l­.À‘[M‘¿Lüøæ³DÍ­Ön WËëÓÇ3ã®»U!ÙšNû#.µs+·t½Æe`FT«éÑB°æ5:^WÕé¢jà$ÅØh4þÀS±ýí¼ë"wâä—ün/ò>wf>dÅœùfìé†`{ÌÖéKç¦fm:ÿƒñëâšd$dô1ÍLZX ÞWßí{.'‰eƒí(‚®Ýí–/ª­;«Ã±91ZªË «z‘£^ä1Ú¦FbÈœ›ü††ƒ–⯼ªaçé|Ä•48“#J.˜TùÕ"N,Þ2¬Æ,#â6Á‰ÿûeôjc)Õü䛹0ÆöpKî®Ô<°Å½”¨¸¦×qù`Û!“&èÛö>$Ôoµ]|ɸÐþ¬ñ¨Ý&½[.0^¤RDIŸõ¾×3u&;×"ž,ÈCÔ鎫XßJé@4gŠ¿Ò’“$¶ý-‘ìÉ­W~b­© Ñåò•)uºXÁ˜qCú­ÇéÅvF"— ï@ÿtkwÊ»)²cXÿw‚ÿítp«ãà ŽÁ}Uê>W¸ 9!aÙÀñ8y`û„>Í$„0¼É™pû†›Š6r.Y‘’¢¼’üGXr8Míô¥¨ûuWÓ˜"ƒÌ/EYTC0fŒÚÖu¿ 1÷ê››†L]‰×aM™ ñ{9S:¹|GÛíÄhâC§¸ÏÕå·RÆ_”‘uvêùg/ææI×]öo?cÇvçªÊÓ‡A{D ’»h–êò†!¦žÚÃß¾©¨EùstrÛ­ã—󪦅¬¶hhÜ ‡îUHƒ÷ªZåt~jœÝH7#ˆI‰‘¤òQ˜±3Œf i:ÊÜ@N2RpQóèƒÆ´dÖ¦ 6‹›F- »`ÍßMEûØIWSZÅÆw6rə䨽ÜÙVû1oÙŠX²„´Î4 XtZL ®óÛt²3XXn^yšshN±áÃVŠ ‡èÓæ+»Ïñ.î¦-¤Úf)WyÜØ¡ø€Õé8ìJþ]1'ÆÞVé r¡ü&œ£åæKOŒ@5.0þv£_‹U`›žÒ¼o°ß!U‡ÔþWu^†‹•Y|ˆÔÒGgé—pA<ûµ&ØwMIŠg_½ßñ°½5¡‰§ÌýYi™½Ô,¡ŽhRç¹X7xýïpÜ¥tÐtð¯ÁÆ–^{ŒQMqCw)jÓ•ß×)<[<>ä,Ö’7-D´Öäì¾ôŒúˆ.‡.”Š, 0Ï#!ÉÏ‚6††ÂÝòëäí„ÃRMêÖ§T{?_m„vRWD .—×ð à 9”…WAã¤xð“>±âþžw nEá¦G ‰äONàáú[¹ñî›~ÜËLêZ!SÀ+ÿJYØEé½À|Á”©¢¶k’~ÊÐ̃&¥:Z5ý ¦D#ÑÇìÒ=v'ÿ"”¼î³Á3IûÓ´†§µéĵ¼Bùvô÷O0ézœ â=ù õKwJžöfWÃÀ}?P5‘(¹YW,+¶d€Zj»Ð«ÚOÐ(å‚ëÓS<14y ÉÎûÒ$¨¹&uAþÆE$*  É·¥’çÌ,FÏítÙ–sSÁ¾Ÿˆªƒ™xL/²‹¼&•À‹}´@'¬µNÆŸ,«ÜW–0ûØ0”ÄO½ËdÙÕ¹tÊ;¥ÏÇÏ•!Á½'PÖ:ÿßÞ^mDQaÒfnÝ¡Ž`Rw{nB‡,£ŽƒD¹N9ø&d4OJÖyÍšêÜî Dÿ‘$s#„é6º©±“R¦8è39emždm:Y4ÑY&9‚$òCJú µ¹ï4ó3[P–ALži8‡û”¢àáœcêJJwÁJ†N+*ƒÆªÁQÙPa éš;œIÚC-ŽŒÀÀw„Ú¦?1;é¸cÕ/æðÈóÐùA ÅÅP‰2­RQÊhsŒ•±Û*ŒL{”Ào‰xDåèÆÅQJo<¤[ŠX `X_.Š£$ó—Äf„(ü™ÈåñW"a¾ (G¬YGªê]ÐÞ#›’lx$;ÕOküâ:+òsýú£€í¤¤*â¾Jý)p¿ÿkg‡¾ñfšG¦<Ä튽žgKoùìVó:wy”Ÿ«÷?¹A¨Dæ?z¸,è&4b#{\Tkk½„Ìe¤ÁÒfûc}Ñë Y7öñ5ú ºw)U½kº½qš˜n]ßÜâ„ S6â“/©Š¦\¶õSLT¯Is÷ P¸È…ÅÕËdWãÔQg¤ýNžžLãF`§´•a±j¥×H}R²µ'¢V‚-S}:䑾1ü”\“&é(`×gÞ£ÿÓÏÓ'Çáˆø·•¬]Ï1u!H :T¥d]¿¹’v¯LÚ/?äš×õLÔ“³Of×!Û\±NÍW™wÖ0϶BhIêúóíïm0ÍÅ¡³ÝߦZt? °{ƒvcÉÿ¨c¥ŸÀ8Öý€ö´¨×’/lOÍ+þ÷õ¨‡ŒØ:evýä¢1ð##¬Z0„x,²ƒƒscÍå Ž˜®1ÕÜY;Â1¦Í¾2œŠìù8¿ã(ó]©ŠèL›*‡uåíb¨¡­û|â ü‡ÅL—ƒ nÒŽ&GmC™;ü?kwŽ£Ê“BHñ“¨¥~˜é÷}8©mY¡¼/fÓŠ<µª¸FßvžVè Y0O2ËK‰V»^^öÛ…þœ’øÛ.õ‘eè'ÔœÈçì{J#Æ’m9Æ=ðd_QªÕ¨¸GÓÿ½ÑÂçbæo€Àãæå§™mJfù}c˜0 çu´\†`i®‡§õ„]³J)M"ë©%bF4BýtíF8Ì™3‘Ø’NƒZíÎÇè)Öâ5„ w¬nù«Ty Üßï¹ßºñ‘q¾ŒØÓF9/gËÿ\%æ†çžŸÖ»è¯Ç]¯—¡V,–¾V6ýŠÿ—à žß ²lOê Èïïj‘¡ŽFïjŠñ£äl{t‹9´Eì­É#ö S^Û˜‘«œó IZÔ#KÐ vÍ¢ãªÉÔTµ[šh ¶‹ãÆÜtô6W*ú5Æd¨g¸à`o¹(×ßÈryßcÙïÃt^ßBÔ&ï,R!pE1zÞ–V³áüßpäÝG æ g»^Ü‹v–r‹>Óø9­ß_Ùe2ÿ‰«¶§þ!ÎΕ@ E~CÚªQ›N©Ü^xYõd‰k¸uB¯ßíÄû@ÜYÞ@ÍݰšqvcæÑÈ‘1ן¹¸†œGõéçgwI´ý‡šD×H³G'^Ø4K‘$©ÍÅ-ñ…L^‹ŒRIº™À¨•‡H©ÃŸaòêlíb;êœb¦ðãX»–ȹ‡ž\,€ÒúŸüöGò€k’{0=sE cg§eÁ¤¾£!m4.ýpÔáÑ yð+¦²ë×,>®” 97ZyÆõ0;y„õ}¯u~ñ»vpo”£¬Í÷ÀGõeÆ»áA‘¼6¾ghÓ¿÷M÷´L±§péLØàm˜Ç‰BKHP‘,²ž³åÒ|pDI—ÄîˆÛ¡oôÿ$æ a ·¬j`sžŽ ßwˆ6oB𩤴bŒ75ó’]*_ÇO¦{N® ÀºÙûK¦‰ðŠ}ò¢:´6ÃaBö&M¯Õ?òPÓLab# ÛÞ…áMOàEª8Uy?âyŽåå]Ãâªçοk-ÝîÍRäi4ìpE’’5²ñw|¬ÑP)~Ò*M(¹å»þÛb͇ªœ˜ud=Ó! 5Ù×±‚×dÆr¨a¦bµ.ûòªµÐùÜBŽÇÿUEþ—ìt"çèwLÓá)C÷-Ùªƒ¡},-ùÇnÏ}hbÓ$[ÕrŠlo:šœ–“~dW¸?uxBÛ±Ö’q]%‰ÌKz<Óý¡3,žâ³V)!(º´¹]§R¿>NÞ±ÍUGñÜMâ^ÌÖÐÇhzÊš.…„—–´Q³aOšÿ×í<Å4Üß7U ±Þ/ñوˣìü'†)f]%áEy,u7j»‹0#Hþ ­·;vB qE xÄ:}É,Z-©ð6üJ‡òù©õ(–œZô*˜œJ¡ÀÍuzH}žÿQ÷ãjˆ)c¯øE Éå^^Dã´Ê éqÐŽÃ Éà ÎKäIåÒ³kFÊ)–ÌxøŸI£„!BQJ¾­WôšWÁPL|5ýs1{êúœ¨¼ò¤·†7joÏOœp4ñÚSŒF+‰®gáGæÄu<´04’µÎšÃ‡‘?Ê’ 7ÄOÐ_yÀ@IœDöÞÛCF;!îdÕ‘¼™™¾†­ÇÀÝ;Bd[Õ˜óP¦ëßš³³g°%E  ¼_8Æu2<öê‘Î9ÀÆw ‚á™ ÅúZ,}ŽCu Ô¼×Q¸sûðÚÊÍžÚ@}òboàûðnvo))A*<¥là9p„k5 v¤mQ!¢ÆO¡f5EQ|7žúüðÙÊ8oQÛJ¢çÖ´¢ TRʽ­A&iÖ 0€D‘^¶5ªx<ä ΈDä%ðÝ)på>^„õ:“ ªcßcmˆ†v<;”¶tãsĆßéŠÕoSî@/†éë¸fïþ€·þÖ’DÁšÈI/½uõ𽔆$ôð‚nvÖ±\M1lÚg“Ÿ¡ÿœAx’ &ŠÍ(ºŽÛèFy÷!YÌÓ¡ÚQ0ê&Ô¼™fî½QßúakãëènŽq| ëÇW^IhgÜ­"Zïg`%·HB?½@Gæß.ÀßI¶I¨è|­3³ÿÔvæ;ôÕÄçp‹Y«ÿa·ñoBÜãÑ–X4óa»”8ê+@œL}»z–ŒZ¨JËG_²PÉÎÞÚ\YÓj¾©pwÎÀý,KÈ^)õŸYJZDX@§+z‡T>|Ù›jÝS“­Ÿ©AÓ7òÂus'ºGPƵ¶Ž‡´Œ%ždéýI|³éV ™åé產–Íu[¬} ÜòºgÊáéÉzñvŽwƦϲ½eÖ™‡ÆÊáp|RÝâ)ÿTíû¬çÁA¶Ó ×'<(M,¾Üù˜Kª&y#\ƒ†åd£Åák9”¹ÃæxVöÇ@aï…‰ ¤] þŽ$nûyÙÖq<á;‹Çia™§müŠÆlyA *Ím£‹ÑÓmÿí ƒ@S•ã©­àS+èœ5eÑÈ„”~¥N<ÂÚs’¦Ô&Ûi@ú„·HI,kYL0,ì1žŽ/ –œÞöÏÂn^R”Gû²3è¿6K…U"yä1(ov_0ÿö±øÿÑgÇÚæïtXÎ× 3‹¾n;U0 ¹bж.RŠ_WpZ߹ƒ˜¯‰YL€Ñ÷õ%`#ŸœÛÉL°¬0n‘p¢m¯ŠùeóB@Ùè_¬Xÿ¡Ÿ™ªøJA 6J§†I&’gGŽ:1ö ØÕcÆé(¡<®£”¼B!b¢gާòˆ ×/-ùÌd—Ü_R'ºŠÓ˜)ëÍK„šb³@y:ºc†ÂÜÅãëàžõø%£ùŸ$W9f=:éZ¹¼‘>H²f4î5ù$‡µ³ýîÙÆÉÞ”—b͉ÿ(\HÙ-Âde2;äµ¶ÖXÌèò×q\zÎ/îVaçÍHÏÓÕš!~rÇ‚¤´hÒ†‚AP°GÝnö%~;fß¡ömȨpÁùšDŠÑQëÁÁ=3¾Üi²;ªcdgý’™è”EîïÆ÷‡‰(2)‡ž»{!\}Ý¯ÚØÝ3Ž{Z†/?Šo 3 š3ßU.Ò=ù~´Îu"ðy¬´ˆ´Š$nJVíc=ó¼h ð„j¸¯7÷¬gVkp—ïçôÎ"B:8‘Hrn½«©¸X•¡Ö –p™­ÇGæÂÉ,„1y±$‘?—C©8sˆ†ÑŽ‚ƒÿkEµô“‚¨ ŠàÜóHÂÖ¢çD€»7ÃÇ;äòô¿Ól(˜=) „ßy<÷j¶ü«V¿BZÕ£·¤2ƬgoY-ÎÎ;w"•ª™fEÜù•ô¦ü"K*ÎR@‡í-Q6y±R7¾˜ød„j r­ÁŸ¬¸ÊóqªÁ•é¢Íž†ŒõGmîo#ж—“íÉ´æ:PTêb3$mrGŠ yÖ1m]G«ðƒÐ–õü–ÞWöòÏf¾@×çØ7l±‹Ne#R’^“ÂÿÓ ÞϺÜ#Vß®øé¿Cûj¥æ  £Ì° jkN½Âvœõað€Ã€®ŸÛq~rhÌâš[Ÿ«Æ.Q&±£Œ¤3Dgæ<À>Ó¥ÁÇå ’·-Ãðý…/úyŽþä 2)û0ºü"NïöŽ|M{J¼Áãg±C? äÀ‰éBÈÕ3"´ì ”=ŽQ5yØe×ÉŒr¬CCFR×ùž‘IœÕO¸ ÿb[›p@@+´š©ÇíYä¿«t'¨q*î§5ÕC B,±ûý͸(ÄÄ.Õ‹[êKº§ïMePYp½uÍø†ò¯þ:’NÿˆÍÐïdÃPVÓ10éw¸_lá¦ô!9RCÆ [üRÞVžH$?&™RÊé¿‚BêàkuùÌê!³ò-H…Z/+&áÒÓælQ@1'ŽÅG±·# Öï Mi™ÿ;£‹u_9ì3#[zÜÍ5;Þéb4KêüøI(J´ ˜6c¦›Ê¼ÌÞå¶q{NVQwuõã±2|[Èd=°kWR×sªÈ¬& ŽÜƒï-ÂÅpÈ)§mò hç² HOmݦ?dÀ ¶F ²?knå½üøIe3 õ•' 5ˆµ¨Ä‰]žþX̬Š,°¾É]®@Èe^ìk>}˜Ò,Ðð!MË! ‰û>r¼ÎœÁ•;¦E¸hI'•¬”'"äŒò*³o²bè™yõÄæªw{A%žz³á¨{¼+ŽõÏ(vëÏnoôD Ò8 F!l[F‹NN9“™ØBË77%zß }¨BÙu ¾b†Ï±÷.?wÞ¸šì&¼Šr]Í)ÒªvÜpG— ~'é’*õ;bzñc³E˜ƒ]¬Fñ9Œ˜’ÅZ“¥õ6\7ÔlÅ2‡Je¶z;sqj Ê9™¿Xv¹/ô Ÿ¢À1!Ñ¥3Ñ¿ê®D ÙÜØÏêÍaA†ãˆ4jZñ‘#ŒÜꇷa’¹¹{C¶Ê«8¥iH î/Ík£ÇM|æt‹²ÕŠ˜ÈC*ë ¤¯Ñâ„Wx9Ë1|ˆdÇh»iÃZÄYH’Ç^×ƒŽ õ›·cy¦Ú%Ö8Ñk.á~eXÿFÞ¦N˜3U5šgY_šÀ‚ËÃ_ƼuÝéãÆ0©ôuè3Îdr6ë»@9i\ÄKÿkOÖsëÕ:$5ˆœÓOF{<ôÓ \oÙè’§ Ö§7°'ìõ¤ùrµAû·ªjÀÒ𤖼gC¥™2_Å™ÒÞI‰gÁ¯Yª¾¬8/ì*À8«»‘8n_6´Û‡¹a|ýŽž‰6>2 Ûõ¡u×› ,ÇzR£ˆ/Ö,=ìÁª՘,NÓì1XÝe“ýê°9ó÷.ƒÚŽK#BTø;{Ò5ÓçÖü=§ÇÙBè-Ö¸ùqê}Íœátv7o©6r#A¥”eÁÇáZ̛֯1½ »&d—F1'ô¡†ä | ÿå Ÿ”!0{LO¶üм%ô¦6Ë ½yÚ0ª&Û+ÒߥE§²Ç·L ^øQ|ý ^û*íêÖVy| û¤ŽpÑeÒ†ß5û——ÒºBÙ$¡´ÁÁÿôûc(ô”#à:n˜Û9ýªì~Ÿ¡±.ºKgÕ&¼'Ï/ ÞçþåÇïËÀtE½Rãü#¯ÝדSn …&g=¯Q ¯ÈEžÂk÷ñÇGpâlÀ?~Á¼Ž»ç !¶+{ÙXÅÀ}Y0G’ŽQ¢JC/ÄY·Á^ž«‹[]‚ bxß»ÿWœ ::UE"!¦“$8Bº\£ZùB1²_btžÖWsÇ×­Ë,9€ÅohŽØy7Ñ¿ùB #îŽë‘’/Á¯@IÚÈ*$ j*R˜X3ÎF`Rœzðì’Òä–lY¸uVgBíÿî˜ã&۵ `‚½îøa$ŽVl5®_à·MiÁÃ1EgÈ‹âr¦$?ôر ´ E;kÚýDPËËCû>4ÄÑb©Ymf⓪¿’8 ˜À¨Í×o&>ž2É¿`ÚGÀµÐˆ®¿&÷…vgÞCzŒ©˜,_Æo¨1)< ™wu‚)¨ÄžŒfs\Yê·A_ Ð2’±5¢Ó'°|þÆ5õ`+²“%Nº9h_wï&³óì¿>8šÌ²8>–¼äÜß•>MÃ|оôÎé—ûÙ W †gàŒǺøÂT˰HrkÕú# â¿E¤Ñõò,‘%©")¾)O(Fß’ç6¿&œSkÉ¢ÍöýÜ…«¼5{“kÐ.*†¨¿ßgËü£Ñ¼k~A†tã¡Åëuòw‘-®«r¹ÙuÛÖvâý_½ 0 þŠº«¸¾-´÷˜?³4@o2K ‹£Â ':ý´LVGëikÁƒZ%“]˜ð ç¸ñ4ÖX…æ(9À¢‹œ§Øá›^÷¶ÂNE—Ôž`#; MŸü}xp§¥älª¥Ö?djaÀÒ–:*ñã‡'•Oz‹Ò8R»ü·;⨪SdYIplIj¥+¤xœ>а_;'ˆŠÿñ?ÄdJàm8±äÀ=qågý û/á’$í$Xƒ>Àké¶f)î™(YäadÐÔd5°0UaÙêZHí™÷) O ;ý"œ™¦UÊŬã@'%`Zˆ¨æÙ{èä•3”xÜŽe3z~*!“Aj5ö§E ›@Ñÿè`¨T`ª•)ïë¹&³øWsÕ©D‹`}·ç»ÁG²½-ÿŠ­ò:‰Ü”óMåäu]‰Å-_5zU6Ö!éý{¹o t1[ßbt‰¯ôS¢6÷SÑ¡’‡1’pM`0Rp¸Z#dÈ.H«Æ † I*D}÷Q !sôWNM2¤LÝæU.ÈœK¥Õ ”ö ͆Ã{Áˆ¥–=åâfȵíՄѸ%ûãÇDØŠ“të" ˜Lã"ëU_5aüX²X '¨HǘÝRÈL+"¹f—¤(“[¥Ö47]:èz`ï?X‘'ù½ðíÚ˜àãóÀm¸m.ZRü»‘ùúÂ,ž/áÇ&Ü¿< Ú‡c døß½KF^<Ž;y]ã‹´'ÐJ#ò+( w™ ®X ˜@Î¯ØÆG„E3¶âàÇ-ƒ C¦JÝ$‹væ–"ÐätX³É&!ï1Rö™ ?-—Ï`s€Ïièj–éïŽHè½SƒU7í%3-ï3yÑŠv?æ ©Ônª®¿U –Ì‚üÜð÷ Á ÂîDŠ+`œäµ¦*ÛhI Áœ£po²Ã¾5ßœœ}d}Þà“ þts—®z FÒ3&g̱$ÊÑrÐa˾|¸ü²õV×îzý}/“ãöóð󷪹&tÅá1„Äïî¡õÓ8<‚ˆÁŸóïwïáçdèΔsº …X#¨Aö5ó|÷Ùê¼¹/ß9‹ªþ¿_¹hÒ1¢«K3ÃÖz’*ñÁä]üðxìq F–ù::áVHÈæú†ÜÑk,±³B‘¸ÅÛC-Ѓê«±µrìJ`óû# «'“¶ç°ÿïFi|%9åîBÞ™" †n¤úk»Òs»œ¿²NV´Dœ‹¦Š÷g‹úá‚ðˆ¤çÛ‚s²ŒÒÚÌ]V^ŠÕ|G‹YÉ“ OoÅ‹ô¨^îû #°óU~»`Ýèé¯0ûìŸËàÕNÚÂuáÊ ÊÛ©‹ƒÁrð,‚d™ô2NîÖï¿^£;1n<—ìtg•! GÒ¦§q¤Á³æAÜÙ2ŽºÿLm‚S‚ñ¯+F½*M`£¿$çþ\ÌØi+ÿÜ‚šºnxþÇÑ) þâFùCêƒè‹•^Ú9Þßšý6±¨Ÿ>òG©ôZ8‰¶ /,ÁOŸÉÙ‘ FÕõåš_5I‚ ãŠÝ×øã^–ìÀkÅ[G’÷PóMˆ~ ´Ô~iG¶Ô¡9çdªW°ªSí›E *_)”Ñ^ÊRå]›ÒtÕ¤Nw½6EÆ<)û¸ªè$<£q-wi€Û”÷ŠäˆÞåÃ8Œ‰÷³iwƒð±ŒúcØÉ›ÒŰ·Å¦`×J‚50îéÚ¦%*y2'ß:Mýð˜J?×ѺWi{t2MOƒFxI¦?R/µD‡¿AëÖ±ßîé®ý–Jzá‚eW*Œ‡¦¹m´} àž`¹·h”·–<ÇêM¯´^ßuy̘švlÆ+º-+˜à°gÌáó…Ïe€…3ù‰ªürÞÕìäRé ôYY• %§ÿ‡«ø’u^»¢­ªU•ó¦ÛwÕÝA&û°àa¬TÚ<k}þƒ}¥k,óö©ÍN­k‡ß¯=Ëú™n^ób›êq¹‚‡ÝèU÷Û$ÔGMcÉkùEGàNp¡ë¢ƒ8ç2ã™ë6zµ‹L[»Ÿ#订Y1ÝI?mX>ö6@ÆCmoC ‚<ðu+ržQœ©¨­x Í ùüƒ2=ÛIa;F”âYNÂý{¿Œ‚ }ɯn–üõñ)ÌÏNâ ÚºZW«ó)¾¢p»ª}§ç+9°J¤g7¦;—kà ÿŠ™ý!eãûEAô ›—~XC}çg÷Š`éaWÆÁ*A›ˆÕ™ÝYþ$L͌Ć]Pr¦2/,Nœ³ò½AC¶+ïzÏŠ:›Ïì¾”˜+Áî11 ˜"(ÈP1›î GéýÖ?%_cFTåtø¤D}/+ö)Þò ü!¼ÿKRÕú\Q/™ØbâŒ]xX©›´Õ¡¶Ã`T›¼9ãj_‡ÜHäÑ›ú•m XÏ quxaòn)ÏßT5 Ú ¸y Èëœz Möñ h1ׯò¿oßE–¶A©ù Ò2,‹Éå…>ýÒT!Ö(q–ÆÑ #ÒѪV½…Ãqèo†ÛÖ[¢ÅB`èIt¥h#›à»8D¼FéÖW1Ö“7p0·A¤…ŽŠ ?ÕHž8)¿çÑ>.…$‡oW×2/§š •:º’Û<ëÜms2‚ AJ~J^*4å¡u.ö[ì6&\ìƒ 8‹t޹OXäúý®ª&»fÃ#JæRmÊ£¥û1œteYkÙµ“CG,¡æJíféå¸6§Ú H·­ÿÿŒ–©3PdØ€ŠH|iÐé2jŽ?O¬­”Ý´ëòêo·‡—´:©Oh¾B§Ì=‡u †+µ]´šž*èKÄ1^1Œ wô+dX΄ˆJ´qf‡gÝuéx8-: èÌÒÑú6Gð ~|Î×î0•‚ù+†£ƒxù ¹…dlØ,†³ëŸæ˜ÇÜüTžÏê½q/Âaœfët¦-KUáå{íÀ+Nb.¸_4v #;žsî.P¥¨oY+­ E…¥ªV‘Š×¤P²°_d&P¬}¸F3èþêm5Ô8\LŠŠ^ö¾›ýœ:uø‡•8hïª$ÃSnì'%íGu(Êàj€gx‹@$löáëy­”³ü K±Zðs~¸³w»ù–Aû`]34.>`¢aQ$¦t¥ˆ1¬E¤_¶‡þd‰²WÓMJ¼ìt$_ÕÊ4Jž¨ùÂÄø\ï×ViSˆq¬ž¦oôÓ:aâ”83ð€PÎ*/ü÷i€ç,‘Áb¹ã×mK°)ûK®Ê&ߎwk[4ÐùwÖSÃÙ?\5¯ßKÍ¿b,¢R‹j$ /6–¬'¥“?ñ-à˜¦Í\ØXqù$’×Ôþø¡Të¿«Õâr€vzšuO5?üCŒ ¶âuW %JÓëKtÔÙº×}ä¿…OµN:6o¢E_þ ŸlGZA ½Xž|ÀìÕî¹Íì3?­†Ÿxj¤èj ÄîV%¸N·á‚Ã.zxÙúãPÁ<ÁªÀ·>†fä!°XÏæa&pIÖº‹VK 5y"ßÙy‹Ö-r©6úÌY”iÀiÄn?’â0!;}l “†RÀ3f© ¯4Aˆ "YÙ%ÂgS (Èúw)?G~ÀÆû&aÎ>âf@‘Ö.·ð´¦”7þ’­)UÝ‹5Ïù<ôH†>(gâIýœ\TÂ>Rê é‹J,+Y_çP@Ç8® Ù‡ºó¼-â¼Òªi´ö¶*¤¼ñC‚ã‹»œc±x÷x'H>S<ÿËŒ‡šPVg÷õŠÔ\GhÃe°m4B>CPœÚ.KÜ-oR^ úáŽJÝ(ð±¬4AÅ;¹¶êZg§¾†Á>œnZ>Ï•>x›õ4ëdߘ£Ú ¶âŒ×„é=꣸ô‚~Z¾ñJl¤G‚š–åa$û!؆A.'˜>ÌÍÛõ ^ì+sš›ºà¸H×/8“ŸÌ&ánR¡­Î[‡øåv0²ÇÝÉæ êßÏ! V¢»Ÿ3˜ž{%k¥¯†·€#@;‹©êöô[+î(VÝÈú,óý™¾'®TŒè´™Rè€Hˆ´Ç&Ñ5Õýõ%kΔq2@ŠÝ…$é6‡ %ÿ¢îî_!¥dW”»?¨þt2Xb0÷;æî_ëø1¿äþ•¯v]iÂÛíΦŽ¤6úiR°ý‹éZ©3ãÍI{~å¨|§ÀX-,º8㤡4á¦ËˆŸ´ü0W‡yJAÈ ™W²3uTªÝÕèq¨]´P¦6%$¡Û™'Ì7Cý¯7¼Í¨×ñÂæc³ë”ó&Š{#emÉœûA¯ÁÆ ‡$íUàÔkõ?¦äg†ÎÑs–kv­ïΘ ÇÏ€rõ¬wc§–,»Ö|†~S†Ï±þ¦dÓ_^¼yàgCÓG4øåwñYÐ$F"[ÃÅ©Œ ”~žÐ1Ü[µŸÃíñž°®ù ³w[OFɽøZˆYjhÈ!L§g§Ñ 0¾·"ŸUÖt¾ ûô§ì"å<>ŸñB¹ô[Ú5·61z1µÏA¹îÖ‚=9g—šŸ{)/ÎFŸu‘8IýèÊ©ÃÄ_Â3ÝÉŒÍmñNþü×Z‹B-1n EcÖ<¨©}œÆªíì;^GÎÂà tvÙ·ï‰Gíioxïðû¸µ% $ž…RéF`7 \Ëö°çfTð|Õ«üfI¥¬!$É Ì ¨Â™W–à I”hÝí7g)OÿUé$+­Ú©†=CÇï(G M}#t—èJØ™oÔ5á‚TªuÑ3WlˆÊó< ^lp²áòŠëÊYMFQAyRMlwµÊUs¾kït;ÜäÊ4v^/îoÒ:¹æÞúLï/…dpïã<ëX'¿a‹•†Î‚?—Ø8àZ8F–Jwù«Æ3úòloâÿµ£`ë{çá[ívÝhɈÔÖ˜aíoÃ?ÁJ¸OìÞ-Ç)D…q9¥3œmW ähú<ù‹éM¿Žô|–‚“¤éµ½|Šߊ£–ˆog2\D±¡Iøžû(.ìsôÛ9 Ýò]ÉLl‡Ìi=ìP„7­foHâèyÛc0èØ¹@dôVÊa3ø±T{O¥G¼âyÍ‘êH\ÒÛÃY‚icæÙÀy¾•ºÊFËä…´ܶ-ÏØ‰[©a3 ¯ ì+* 䉻¹‡>jôJÕ&¢$ëïxW$] ÞÇ^Ó ºl‡˜`7Va(B&RÑ«š[‘i‘¢€5\ã‚™ÜuÌI5tMñëær!Ø4ci1rúG¿?m1Ñ›[ÐÄZþ “û s@ÕYGÌ28~ÿ8!ýw¡Ö_Uí­YѬš„™$[ºŽGf/Nï„Èâ屦0°ø ì§»õÞ?9„l@H1ÙEõ†ŸCm¸„×ÇWç8‰YÎêç÷Ò Ã"ÆdÑŸÜAo,¡~QùÀʇ/®SÂgFÿøqÏì<Í·™ÃÞFî<ÚH°µ¤ž¢„Dpö*ÀXZzÂMæÛá}MJ@&B0ƒOÅsQž`À%E²êUÏ&i-¾l~T†§Š‚ŸV}2óUÝúáÍô8.Íž9ï/Hf‘@¤õ:Üà+¹îw™ÒKDZëØ}tQÚì¾ü?‘!E: ö\‘eŠƒìˆ6Kº Þãqær)µ] ÝLõ‚eí·(bìà£+ULÌžö=XȽÔh¾ZÓL~ ’_œ !ìݲMcE|"QøäÌÛ¶rß!sg¸ÁÃ-çÛ¥) á.UènŒ˜ÄÅŒŸ† &³XŸ«È’ÀóQc"oWXYk#­‹ÂQµ›Ù_['B¿^…p„ÕèèTµ!¥¼„èµ?‘^øÌ““{Åy~ ŽåçÄ?ÿ9$žt½—-󳋚ᣎÐVIÚdœEe”{ðy¡,Õ„i´jm•ÚùÜâk@oì?{^§UHHùŠáDð•ŒCÏÉçê >Ìl”’¹cV@m”%láõ¼#ÛÍ ²‹,<¤5hA#gⵜœ%&0ê}\ÀY‰€ˆW0#¾ß–™E9 z±éº˜˜öMR…q•ÉÙÔ¥³Áa3”ÇÔ=a´dñ ÅÊÅÐÙáa[”ÌÄïyÄùØø6 ò'Y)´‘- "#ÃØ™5Ó¶eÏ€=Úx3 9Ï}–æÈðG‰ñ ¦~¾ À:vVÏ8—ì®*¨í|@»ØR-|FvM‹±7Ñ÷{ŒãN뜤UãMÍ´Pl ¹€%`ýdþŸ´ ü×ÚíJ¶b–jëù òiݪ¹¤!³³.Ü>8ißd¯QûyÎxèý¢ûšŽ´'!ÉiâÚÿùŽðõ»sMÁ‹â;dÉ»`öéR²~óY-ú CK}.”ÑeùÈ[ߪ«ÂúÛ £ŽÆ€ñP7 RãiÁJr•©Ms×Â9s»MünI?R鯎]° ‘MJ\¢'>BOÝÌ-Ó¨TU;ãŸý¡·':„Í΋ù‡R/–ã¿…pà©Ñö|Ž(*†|3euþ¼ŸýøþSzùõ%Õx°e-å)·#*“MtŸeíèæ?ƒ5#­'Qfðë_¢ŽKûÙé3l{Ty:ÿ¤5̾€Úfܰ6®W¾×S&Eξ¥É<êKè¡”Ít”•³¹¯’>ÅÙWaú‰ãzuÛ½œÝz¾<ÅRDiÜÙcUŽ0>š¯i«NÙrmpš´E™ˆCÍ9ÕñÞ‰œ”à‡ÆÕ‚Øøü”8DÏ¢ÄË`&LÅæ©g L¿÷$U×ôä{oÎJÐí±LM•K³½Tp²ãeo3Õ¬† Y½³î dê•Fˆ{ÈwÏ{oV"GóéYaLX(8›:v;š…À×?ÃçÌ≧QÿlÀ?Va™0¨ñß]­e†ÓŠ<#Ñ.P-`S¥Õ¿Œ-ÏПxÊÕžB1Ùn,6=-ù„FÁV—î).ÜܳBº€Wvï÷US†wôiÆ5-Øð0QÌz>Ñꉔ³aŽïˆ}f©h£ŒÆ3;@©vå¸œå­ £ðÄ·eˆ‰vFK̨UTzêÁêÝ.´Â"”ñ‡‘sÁÈBýkš¨m´¹¯µŠUìsÙ1ôòqÁÄkÃ@©I Ìò‚ϲc+'L\™¬Â«ÏØÑ4”´R}è³³¯-åŒ]üþ›ÇŠNa0sj£:á1ÙÁù«LÅŒ·©ë²é³×Ø×Â}NßüOú{ެ`ÿ_$%¯Ë¨\Skø–Á/£°ágç01l‹‹Jý|ÿáÈ̘Þ@È 3æc:Ç™ ­ygë^f !àŸÏûˆF$NÓM#q<™mX¶p«dª2?E†/z ·ÀhA©ÿy&†&¥ìdÓŽ•9MÕîÏ|ZóÿÔÙ‹ûR+@2#O€»ñÍ'íÄW(Ot´ƒò'®€Ò~¹YǪsT¨†/Ý81îærª ‚Ì>Dom»@¸t޶õ‚}~ª´HÍ)ÅËâ»ÓœK8ߺvƒM´Á/¢{ÌFi ;¿—SaÅ©ÒPûÅâÑ/pÎ=)£®çŠuq¦Äp«RÇ,µ±&óúe·v¬ÿ@ÍÀra¸“=D6êF° pèD4¤åàqîÕQ=¶4³¼\c°Zí„JéÑ^u¾~¤ ž[T&oRbÉî*a*jFIrBþ¹o}±VòÔìl°ÿÕØ¤ûÜëðûM8„14“Ý™: ƒ¹Êî•u¼£ôl]à„s„]DO´îÙ¶}UŠp1^œc4<ÓªÏVU€4ï}?i½rYjÞî~±,ùÈÙZ£Ú—HâÛ+]`É—´ÚMAC…OÑX6m-$™)ºL-E†®ztÒØ;òJV­©JéêÊG/ÀI_å£Ï?ÄN$ßÛbG÷]¼7JÐÕs¢$%¾› ênŽï‘Så>t€Aã~y%¶³!øü4­p½x¬E_Rx'öcÃób &ERÁJsz±«0å_Ù¬g°4tCÐéÚn¿)©ï`Nà¨Íxïç—<È2EnŽ "È÷qÒVI'Êÿ¢7M„Éד¨Oëà¶PãS$ªõˆµº mžƒ?MxÜÖç7OÞåH'…i"–‡h‰UCéy¾óØ´­,È<æë Ý^nñ àéÆbD×ÈÃJÃäêØ•ÜdÃÓCåozq&ú®P¼L´´=|¸[áǽ»\áQ‹5=’‘›ìZH$@çRz\ŽöÞEoáìËÅêmLL §3s(~ËfùÖ"©CÃHʼ€€ÙQ+Vþ¸RdÄêP߉ÜM8P¿QLëNZ"'fõ9Ž„Þ™ÞÛ€&Œ†@§WscF Þ3ÊrÕþ˜¯<·ÓK±¾M„cÒ.¾Åe¥Ê./\‹p4êbIÊ+v…´vRwúJꉓÕÉð%Pà­ëöèpcËÊørQ¨Fyê¢ý߈ñ -¤vJHñsA^c9Äß…2½q‹j¹’ÀõJdÁ5F  éì=_Z5R»‘z[ç6 ÃYà”¸ø|C›Ù_HP8òˆŽÂ•ã-5·‚d÷þ8K”¨§óÍg“æ°GEÌοC^ m³3ÓGW<·ý\¡F²sm/E=¶X†p–DCš®6›Q)*XÖ‚GÂÉ*Rzéþ‹ÒÃqØ+óx`Ÿš€½ùG¦eµˆû€ç82N…§ÛZz<”ÝøQw“«Ñ‚D#£ÓÛ3-<÷ç›ýp®&ͽ‚ϱðkÊuΊè] ûó5SðŠä´BîEµ\ÿ­’PJ‚O¨Mö]@Œ™1Óš¨(_J<…Û«Um†È=¥ Y—‡q¾]V‚øÿ'Š¥¢Š®¿sÕ¤ªQ.:Çëô¡LIÐ"'2Â×L]‡À#Ö~„W©x X(ýÃÄ#*D9®¡ÚËPwâÞÿ%¤¨ÒP©ô—sUÅYe<ØÐ`…„)þºþ!û .ÊU:î(ÊÏR¥Sç—b9*^ùÏCˆGm5‚(ϼrž2”ÞãpnT¦‚•êþ á!6޼ŽOcÅÒNŽ8­ÚvM'Y§4Ñc"@/‚ÛJ¥_þAøüÚ!,rþ#×>§hö§ÌªÕ±yÈ¡{Û åS¥¹Í­Ío©.¦­$â]BŸtÖ,U$O{Íí´ / س[>S´Ðljù_ÊÍášÿ"’·% ¨`¾m²¦Ä!¹› Ãv5skg Ïž™-D•ÉéÝÅMá?âb|Ÿh±}72qj¯è„ßæ‰OE{‰»‡Kne//Ù¹cÆ 5WPsŒ˜ñkØèâc¿æ Ir“{3@ÑõïXŒ²3ÍÆð}²76;°WÆDJm(Aå Á«…ø ÁHσ¤˜Ñ-< Ê¢˜Í€H(}C¼eÕ$úähÿ¨}q†ðít.­Éé’½-kÙÔÛ2ò8÷™…–Ø ~$]è¥Áœ›  [µ¡ˆÄrƒïAŠàùFu2¹¯Hø:âñkÿ) pÕKjiJ+ Ó”.zÎ’´¹º²Û|0@Úp,MërØÖ.ÌSÝQ^g‹(÷—»ÕÍí­àUªì)Ãç•ÑÛ| ^È•!LÑ_®D„¶‰3\!ññYÕ/ØE_æW4(ÐX5+)¸[ÿ…š:Ù ¶å$„üäÛ0ue@KÌ8ä3Š¿’°ã³Þ\„è{6¥üÌiîCȫꮊ^ š3uïU-@ þV°)HÜ"±Ðq/Û=œ lÍÆåǃ›ؼçH‚¸þ­_£ç˜Ã4l„n³·ç)ÕIa¬j"£Î&H"Á»2wÂîRõT}ÝÁ?Æé=QW"9¥í à¸`…cþÅ`þž›sk8ÏÁ¼—l^Yÿžó·»Õ¶Î>ôyëÒ\ÕçsQ~ຜŸHc¼¢×úX€Äœ+ñ1'vÅ:m¦·”êi&÷R#[Õ¼rêtÜWæ|ÿŸ:ݱUß½V˜qT<Ñ(ºøÕ®¨Infy»Q`‘8RÓ#wq>x©›®á¡® nBçÛ®‹k¢pÅ4]óJªWÂö†ÎO¤¸e6rÝßÑY!©[ú]Z¹ \.ÍO7ÉJ³RGo-;\óñsZ—&'=RW?‡~ÍóôMx=úf&ÏprüsG€~ Hä–9D1اò¤¥`s³f–Ÿš —|zosÝÈ`h¶IWvKÏ+±€É«éì*Õ5sƒX.%' C;Ð\šyš7?Ð̵ ã@µoâØÎ~¥ä¯Tƒ$›æ[ÍÃVvÌ@8Y{|PK'Ũ˜êžø¶{£Á>×dÀ&e†#É;E—§04A™É³<ÛÑ#52KØS’Üï½OРÅûH xÙ¬oE—½tŒî䑖͉¹vœ ÖÌs"æóú^la èfÔ;½þ8#¯B'æ‰æôˆ&¨½Ð-Æ]‘œ™R± ûlÌ@<âÒ6'ž©r$=¥¸¤¹·åýÜŽç¨R²Á]nG´«9ŽƒÕÊð I×£'‹®¾7 ñ/NeŽ¢œòg³ŠhHUlÌßOÜñÑ2Wt%Ãý7)©d Ü¥6Æ,Pp¯¹ò´.^{DÄwÏvsà>1ÈÊÑÅþ-Z9]e´‰5ˆy­æK;ð–²t©OÍ™s&cÖb|/ýå’áç_DènçMyŠäägúc«—’'h- 3€åàÍH Dë2‹³5rîÝQì|%_ 4–Q ‡12Åïòû¨{[ç•8V9..ú@?{ïR„SþÚj­Ö³9™t`7ÖݾRÎöµñðöª¡2î«Ù§ËÒ¹Ÿ…xO!¥ïߎ¢Â°ֆìülGI–ãåÌ>¥Ovßïõ}[©õóçSúá+ëÌà_°#¦äJìÉ h~ß4øgéî¼­Åþð¶‘-LJvhÖäI:ÌÏc~‚̹h E¶z“'òæž Ëò»];¼ž² Ù¼óžÛ æ®[oy*ˆÎ¼àPµ>Všý.‚åµ(ìÿ÷>È÷‹šÏ–6n?õ«˜ ‚ÈßÒ1õbäbFN`Q·4 \¹‘M CJ:ÊÁ$÷d jÆ»½:;½ígC¯_¨üCÈÑ [@aŒï%ÿ.~m ©ÄFºs¹ º ¸“(˜T—WŸ°{Îg‚õ¶'•™j]O‡ûõî÷²S5–½ý}€é8¸KZ7wQ˜Ùà¸Á¡¼<-û5¬d·q˜|XÚôa»4 D0§Ö¸iÔdý-™ÒmA7ÿMûVLs~¹Y Ôý\;½3QXƒO°Æ£ÏT9Ö´Ý3‚Ê:U+ª†f©uüúQ^«“7Qk^Í«•Ô+|DO4jׯ1;£kDEL»9¥-³SgÒã.‘2ÓªëG cãi®RÉ_ÊøæÃAçâhWNÙÞ«j‹y=”¹ÏsBÝ:ÂOæàÛ| iÕŸü”š•¸öЋt;‚hrã?bØP1º¡558P#" Ìý5ËÏ‚J/Iñ]Ȥ;Ö¼¶×Fû3ÁS5ݽ®åÓve@­ÙhÉm¥ØJ©&¡6ñÏ'ÀŠ˜½9Ù*–÷.Þµ èÌŸuæêÍ6PݾE{uÛ­ ä.ûqUüÛ†£`'ú‚üïüˆ‡”r @žW³)MN€þÎÂ~\9HCOr;(g—‡ÔÚYœRæõ®ç‡énWL®Ê^¨?ƽBjOýÌÿŸcsbvà­"ƒ’)êÊÊSjÙ!àzáqF8Þh½àÖ`Ý'*|‚ºü­Gñ쯟bŠùJ§µ[&øýòiB‹@ž [ çFÞÐË ÑX镺Y$?E›Ól†fbÆl2EÛ³äL,} ~ÇÙŒ_Éö#ê)QïŠyÆ'ö“®ÍlÈ¢ÍѢˆ²:1˜ÊúésçËì¬ï–C 4ÿ1ÑzïÌê ‹½èáÕ ૊}ÒCZI´j„ ßÚd}&ß‹=õ~do!ˆh¾Ïow·ÈI3âA¹øü”»o4™aœ5ú˜ïQùdÖ$J˸£àϸûV&†Q\ÿ” t䆕 èÉÛh:/¾X†ÎïT½Â¦‘©9è•°öà÷mÿC¥ƒ_ÒNó¡üŒÒ°b2åC’Î º¼‘ºÄ"ľ[£ä–LŽÎÅröºïXçÚÀSÝ/úî]Òި̻˜^R³REv…Š&cç Ò¶¨¥}Ò õ¥"2_Ôæ ¿M•ÁXQ?ǹ(â;~£ª+u¯‡i3€ÈÛn R þ5‰¦÷’Ìêtî=âŒR{À„A†…ùÞ5’ef÷²e&ãõ íD¶k‚+ó:¿‘¸0 ÐôÍQñµ³ï6´ƒîdÚ|€Ä8î.ö©¼„¦cÛäãþK°© J,eüÞÍБÝÔCö~=æò(0h îµÃ¢.´‚fèM¡4ä59Ò8jã¥BÔw,ÿʵ^䜚Œp«çxà˜æÚ’Í퇩‘˜vÒSMXKqMŠ•à‹Û É0PŠûc¦…ŽNû°FÌ`rÕÎ}MiÔõì(ºÎ>+U÷šß ¡á?(ñGLn·¾^€T70wª@o?Êžt½yeçŸÀeìͦÐåï1Ö‡²%Mqêx`)ÍA€†ÿMq”6úgè£Æ"míÞé8×ZåvJJ¯“ðFýKöT^eÐëÉÊÑÆ8K§gÅqlb’G\ÖSQßÑ–ytg`ÎÊÅÖß ü¬µÏÌp4HNZ4˜SÚ¶cvîŸùÎ`'ÀÇn2zŸÞïö…áq&T¡ŽÈ@ùž^`– d‹;E­^+$&|ÿt cOh¢^?´YAǘÆa®gc„³(…ÕŽ*}^(B¶Õo2¦ù’¹–cE\¯ÎÏ^Öa¤ˆ¥Ø_u˜sº,úÔϰõÖl6&Š|¾„ÌUwã}@ãÕ™±²z¦E´k‘î“%pOŒÅv ›Lfm0ó•øDäy…ú9ÿ@›ÉOùùûè!àíVQ@‚Zˆû+µŠ‰š•"`·ÝƒR= ,ìò‰ÞfÓë‡`¯ý.E4bŒ=„þm£R¢¢¶™àÑ$kHEQDp˜ wZ"U `2ðá,­]Íà‰ŒS¿]Æ…9ÀL]‰§ì¨ÿ–v3&ÞäŠ;æîZ¹§Ç‰‚º5ZR…±Ð/\Ml\°¼aè”yo̬HÙRö%œ±ÏÚžrìçAÙ^‚>u1…úxÃÚû“¯’ûWnr¬°´%þSo<Ë©—˜ÓlÒpZRY|œâž¸0O†mGS_æö¢yþy„”O}?_¶ãßii„ô³è{„2½שÍ$4u1ô,×0”2ßïÃäTb?޼ÑÁ4CŸÓ‘°RÕuެYäÖXKÇÕ(mZn$wuM~gºb0„9;œÔ¢öÊP‹Èøm…ÛjxCÿFí¾ã` ÃìEpب«rwòZC‚Þ[cÔj¿’P †¦^h{Ú¥J“)\ëm-G„ª/ž¨ Ž£úïw ivIU`Gë´2mêCö«°–ÿ‰yƒúÍ>öÖÁÞàîr¥.’²< öÔŒ… ¸Ñ7JÃ`,šuµ™8;0‹Þ:1ÕišrßÇ4®æñÜ•>aY¨@×ñÛAGð9tÛûvæ–¶«d}fõ§ø“¢Zr¤7ºÆäÐÌáÖÌž?sí]3âuv!«‡'@‡ Q1° î"‡¼ˆµ%›‰|‰8‹Å8> „¡2î³{ÓB|žü$¬È?håO¼$,p‘•¾%ünàQׇ’Рô­A;¦ •`]¥\ÛÔX®¡Q60œ ¦ÉŒ·@Ó³¼¨Õ'>¢}ô6Øèj4cxÒÍ}°ˆP“àОe.×1\¥‰(!‹çÙOçô‘´ø­ ¿-Ì9‹¹ÃA•*ý'íGÐ^&óWÛGÔÿûso{®prE6φ¡éÚŽÉ+Á¥mv/ñ!GíJà±Y2Ù*{!|È$±ð”‹«XÝe-jâ-b»&øFð›~È÷ü¦ 0ö‘ö$Í ¬áF¶«ÉHÍê¤ ÆÛ«Œ OëA5®è,­êU[À|`þd˜©°—,ù¼°ïõÂÔ¥¥î¸­MÞ+r©À~+É®H³\‚aLÍš‘º²‹xÕz÷³·ÆÁ¤¸6Ëûº‹á-L³Š›§OùEKÀ—!©?\â9é·=±Cª•‹퇑xÅ„èÑ ¡8B§SÚä?²Ö£µi–2ìêAB“Ð÷{öTpžEð)V7V¼Â"0G)Ã5x==ôbl²ƒàÔàMÑs±óÛï^çÌ¡k{_ê'ïÚY°íà”^ €—JÔ–ƒòSôòÙúý¡BÅ.Ûß•&µÿ‹½ÿhßPtàí°±ê‡ÞvùlS}Ý0Þ?Rð1”V†²dÑá÷ÑYpàQ4ìÃͶo€]áVÉœŠï3 .û¨î°"Å1ØÈÏPÝs‡a6+ìrÒ¥þ-úœ@ÂÈ.5Ö›"à°ÌÏãUÒÛ¿ÒKãBßd/ÙÃn5Ê"9埀þ.¶Ô‰¿x^5.øÊr!JŽRõ—QÂ?Àuè×ÒO]ü¡R…`wmƒÚ,3v«ËÃì€m¡h”•¯â7ìq¾‡¸èslì ©Ìì–tîÆXG‡>|Ÿ£*¶¸‡ qjæãlØ$PLq2°FPÍçz‘ÉX<42ód}ã\2ç*·úüR­^\•q›ÒȬY QAi&¢®Gêá{P-u­Þ˜yÒ‘*Æ»½›óXhò*;¾È$Î[c³ ¨Âå$Æ/^Æi ÊžºõÔP©Öû½ç:694¬`[ é'<ÇvØî O$—‡ßBM+$C¸tÐ9§qn}¾9jûcš œÙóÛlöaRépE•.ö½_½ |&Ó,µè…áÀ}¾ÏO"­bŒ£µŒæ¿Ô‹øfÆw¨’Fh ÀÇxûáooRRÍ0ÍLÏ„^þ¤wZ²_Õ¹\‰ ”ìéá¡#‚¦ëˆÓß;œ!µ¢r×}º|ŠN,îýC¾w}bšÒâ­pÏÒ˜2âÔ7To ù…1¡H—…_Þ=äôg‰“»|ïÄíÒyŽ¢PD‚„.ɉ›ïèð,–›m6 ® ®×úlŒ…r:rÞøÕäøJ— ‹пM™ß1k)ï¯+ S=Òe5!ïÿ,G­<’¢ˆåÎåxq4?MMO,ì]ÂiXϼÜDª†¿®£4üŠ«ñq$Ø©¢„%Öñ½Y8@/V5e¾¢j?‰¥W‹§¾mœÿ7“d¹DWG;VT‡¹ §’gN>DHoEqxÜé;¿ï•„#—)½ÍøVˆðE}3ó7ÁSoÉ1[º ñÔ-/„>TëmCÜމmÊ÷0ùwÜé—ì„ a £‚—ÎûÉɈmZòú2b«Ò]Ÿq楢yæ:«r^_ĵ ðýžÞôjÒ<ܪ5ɽ†O#Ï•‹Oø ‡© ¦:ê¤ Ê€ÛÅÍöŠõ Ž$J'|Î IÆA“}¶%Ÿãêu„çM†I:uˆs¹bPÒT®Òÿ&çsśƃ™l±xqRÑÊh*ïÕ•êšÆ5ÉPœ+À“ÙŒ ÉQZq¡çüŶ9>ú0ãìÐì,ÖOªPœùŽìuÉî=ùù½ñ9· cúóçÁz­£ˆX!´õw]ò[Wã~;8éÄŠ-ÐØIšÏþa ¡»ÔoÍ\9G½Ã4e ôü;1‘þ ïò23nǃ'Uª¼æxÛÅ«¼Ã­:oNn´è¥*\‡sx=©Þ†¾¹ÆJiÆëã‚¶Ëv˜0ÿCix fv® !0ÃÎ޼›8TŠ9æzÐÄúšo„e—¤{!mtïœ2^ò[¼®!a>ªãÐ͵ž+;-xŠ-&8«XexܦzÄú¬];¨/fj ¦Pæ>aŽ8Ô5¿5®ÍË“l ªŒÃ5õ·ŸÙW:-BÖˆã$ý¯`ó3¯¬t…ÇC’¨3cb <™–¾º•I}Få³õÕ–gAùr¤Ó¥± ²©¢S13Ó«¶ºEØ$gŒ%ÜQ+'/*/ÿxFè+rÈPˆF™Ðòy÷°Øýÿik‘V£ªÝr³ ¿ÛiX_ œÚZŒ%5ì‡|vÒõÙz‰M0õ==}tNaŽkhú5$™çf°Úèdü"zCé²í” },ø+ÝKÐ2èüenJ¬ðîəنÂî̬Íîk¦ie[Gu‘ö×Èõã4 àø=š¹_uöb41}}KPŠ[3HJûqéø»€@ƒ8ÎîhœgEܧW7¶†Šé9N=xØ,쳌ÆY©ámBvÜU¿­Þþ—\¤†¾À"….âLÀÍÃ?ŒÓÅ ·^#žé²œ»XšØøìÔ£¹®%ýèHŒkåçH÷VAqä+÷Æië’Mm$D`³ñ[&x“®…LþÝ«ê‡Ç‚Ò_aýYïøÅfÙÆbÂôþl ~mk )‘-…¿%\ynF[·ì"Ë‘•iÃp°t¥âEñµ„{Ô$#ÜšŽ²s¬ ¦_<ʲèç‘è´N¹Þí_z/:íòcë˜Üô–æ lqü©4EýŽv8ge¿>‰úŸÔ„ŒËH‚„5nÌq7/{8ŠVr¤­r&$FŽV™Õ[gèh ª™ü¦²8®9 9]Æí´ÓEª¯>\øÅëËäâñ´®ŸËðàÃ`‡Y ÷ê.GÌ'v´=“«öLKþ€2èÚkx?á$9ˆü£a‡Ç)¾Ä°@`øˆ+«s¶nn¸Ô±qÈËÑøaESâ¯á°‘Ò‹¡4.x§÷ µ·&¬A•âôGõ&I™P…܆=0ì˾|m0°÷EHÙªò1¯ßTǶ‹gliÄ]ÿC\zòXž9˜º¼ðP®ïò“éÊÂnÛ8’ÿ„>uiæÈTn»%ÀA–dh˪¼—¥±»;U8»NŒÍ^âŠ1”¸'yÈÒ¹ ][MŠìÖG¦ÚÍ€ÐsÞ(>% Ú²àþ~õ‰EG@=x‹*'ςɣ¥$ E2èéÛ4 >Ëà¦}KVf¼h…]V[™YSÚŒø¿ð•&5X P/ÒQ-V?­Hv"~œšëÕù›Ü ?«iOG7M˜” i«úÖÊêölb)`p0RÆütöFÕßÔ1VQж£Ü=Ò%Ðï~Ù:ã÷:.З‡ þ"üf7d`h•:oª ÕËZ“±ùÄLAœÑ>×±‘Tí­Yl¯×'ÂÙCf_7ËZ~ç…ñ(‡ÚÆaigi‚ÖÚc9u¢< Ë2Su 1m‰Š/˜á1,ïväÑ謡ˆœzV{“ÓÔ Ð6X’qò©ŠêáR<ÎÚAƒ~kh$J8"5Í[QégJ}x&çåBn‹é‡¥ÀfÅ}Ö€ÿð|¿sÂ’v_–T¤:HS›ýˆU‹SøÊ˜ë#ݹaÓ fÕbbmu‘Sö] ÏàƒpBW¥zçÇP* &_Mç‹‹µr)ÞfþÚEÍÞzWj.mGÊÄj-¼î²¨=©¦´"ýÀœŸ\^$ùw-_¾cšÑhÒVÔ?õª¤^ Ç%W`LK‰v.Ù|`e§bºMÛ4F‘ªÌ­xwT§:D™î¨ñê‰Ñ¹…AÑó ‹ÜïŸïÊUõ²v¡FìPå¡PÜGßþ mæ„ꊓ‚yçWä`¦Ρ &—NûV ¨91ƒCTïnU ð¦I£bcIÚc[ÄÆ„,Y~í0ö)ÇÀï°o;1æ^\TA÷¬S'£§¡½qÃ9òÞÛe$¦–öx¸â›bÎ^›v¥‹Ùù6ÅkÙ]°~‚ÔoÏ\“Ò#]ß­~Ã=8ż,Zj3hsM=n§y´¤Y ¡ÜZÕËÏ`—¯fqÌžÜ5-ººÉ™ 7@b –'‚‡ëÇdÃÚ2hP”eÃræi¦… ¶°’zˆ€ÁöŽÊdì\½ŸâžÄ^íl°Óà'qFq’~Bá $š{ùŸÒr¦‚Œ€œ|‰Û¤ç”Vqu. Þ[¹¢ýƒJÜæè¨°¹öaÔ·~Ey%ZY—n¸ e/Æa¾™õÜsû8­‹ Z Ÿƒó(ÔV^óÏ“‚qó(QT™9ŽÈ–e0è¼$äãg-6.lì ‘~.ŽRü¤¿bc:øfQ‚Ö‘¨Ñ~æ›H–¸#=¦óÑhæO_ JSw‹[œ2Z `ýsFu™L`~º¹»é5d£“°|û¼x@PغÕP=w¾ÝÍ‘Id"Àzůù}ˆZj|{8Ð\E,³©å¯ÝsJU…”FmÁÈóè1ÅðÒŠÝ/ŸH’#ëÞ·-Ï,ìÞ¼ОIoÈîÚéZ‚‹(mþÖ-îÙ}»FpðæUâæŸO€+bĦQñ„ôÍ ]j¯ Ù Zq,xYÛ[pêc|“¸ªöâ>”ºìA–B^;÷^ô¶–Š%#áTçÑ(ð]ÁÈŠÚGÚÓyrD|1D†EÇ@ŒJT®¤þ—2œ¸D 90¥à¬‡,;Ï¿±ìZ6ú?sÊŸo«í¿˜¦$âÛÿÂ<¹dY¼Dpƒ{x­‹qQ0w𨗷¹[õ‹àt†^ijPÜijÏ„·×–éfxjÁ£=ªI6ÚÁÍþ6LÈ@^W$'#i©§Ùòˆ]nýoµVÉFa÷ŸÊ7°ŠEÖ¼°à ùm@«»ºqt"'ecuë%QÛC Ur3=F.SvZÕ ³õœ|4(GLLÅ39©#JÙ3÷êË; évW“ “FE¿»jQïá³Áaà–[ƒK8¿¯K̹[ÁæaYÃ@W¢[l¯Û ËÃ#¢wFó'·8ëËÃÕÛ •Я=¢™•Vh(.˜ò¾o¬ˆX»ÝúQLÒº \rXí]£ù®µ žr[7#½¤×¹˜¸^«µ6{YV.ްï‚Ê}qZµiî*øØ—½ní¿P­»?Ânu“Ø ‚·à[Ü.eRò7• …–§KþƒÜ“í°±ëûŽd¿€ÕC¨Mï5¥Ð2(k'Âû™¹#{ušµš!¼Þ8Jï¿2ÈYëFN*¿ ¤öH€Hìæ)BØúðJáZ ãÆeüPA0ö¥;ã4Ò›mzáÆ’ïKKnÚ»g¢°´sþÓt)*¸@vc Šïës…6\/oX6ìßI §Ž±#…“ýÚV9»ÃXÌMmT³3"A£¿ÀrkŸc"¼ð°¬âX•[äÞËeX¾dád†›*+ò‚4(yô}ÒP_>Ê\ú¢–ï¼fsIN¥ç ubN|X…‘î«1óÊLMMY芣™oÆlíˆÃ±…]H²yÙmh¸°'• š~¾xv+g’C°»,²Åì5T?Ïžv¹ ¿Fc\\%xc§1±„‰“é|n+à8Z’Æïw¥bÂND‚lÅ"nºŸˆT÷ÿÄJöî*±O!Я§1ˆÝVÓÂ_ÉÈ8.‰kñ¤aT€-ø¢ÅjBìSžçÄ©5‰ç'qe³ƒŸ”8윹òõ廨˜RµøJ3ß±UyªyZ´r8ÓTœ¡û½`ÞßÃ4C™S…WÀzµªí¶Ë¶•ïA¦ŸJ‹ÌôÈ6ª„Z› (õ3Åt´XѲôOâÒÂÒSÒgÁ.|¬eé6οCñ œäÕ .ÅÓ‘p·bƒ†ßÃoš±g=ß.#·ñ¼å!­'x§˜jOÿ<ˆHb9ßD%Î÷Àëø”N.¬'bŠ‘FŽt§TÚîÆ/2H­¡÷I¸ëb!çcu ¹û¾ÂÆêtÁüÏ^#ào˜Ac÷å8ƒ>UÕB ’Rª ¥¡ŒÝ䱿÷IÁ_DI ©š;6¾7”…ØÏ\¹¨; D=—ïB©>§tù·èa¾½ÂÈú24(d:oôÐ=À·anG›V³ŒÑ\D5æªøN¤o²À˜¬Ùú§ôb›ÿ $ÿ(UÉ© ‡Åð°´“3¸ãè2f˜ˆ×Úé3, ¹ô]3ÜÇFcݶˆÂ" è>‰*Í…ÆŽÿ¢4kÃóÆ'.îž%Gu:EhEAèÂ)9GÑzj õóDÈ8n„†˜À›³2öO'ZŸokkx£Þ/ST}ÒG3¨{óTôéŸÞ`.µ Ú³>É}áYŸ·‡“òe$ÁÏþ8®V"D3çÂ(:¾—ú¸ÉG°ï×|! ²_}ÍþŽò$‡v¶æ|\ßÿ/«F\xá©fU•=@–•óCz{ SÖGn]|EÅ-ÃùQ5èûæ3¥Õ{IŒ"ý•)…‘ßXŽ0ÔQ¾ç@¤>KgÜ©ÉáÞ~Äwö¶'ß ŽolO£›:*0MÖŽÕ„=Î^d ôï Ø¥Ia–Ì݃ì˜Íݵ ZŒ¡¥_¼ÛUXïLƒ#”õbr‘š …«‹½r¡å@愳̇RóÁ0Åcš-O+éî$d’µÆôB¤ZZîÁ¸ñÉ˸*ÕÅ÷PƒqMÝ«?iË9Xd\Š·Þ¬gªEÇ*ñ4å0v»¡{œw ¼Ü›ä„÷ûk-é²®EsãmÁ[ñJ3ýÒl¶™âNöôÿ¼(¶†:N ’6š J“ó(!F|j?ÇÒhha$¹ªà÷q€©*ÍJ¤a… „(J(ê,º•lÜñ„Þ=AôÝ‹â_Û¤*ïãkkf€ºa¼Û«Û÷­æ•›;Tùz¢q5‰Ä€ÄYMM÷ïç-£öð9EŠ^°±|õÒÞ*Îgé^¸×ѶS£åiüÑG»ÕÅg{òhˆ»odm§—õö–IH¨ƒ6¯ Áû2 è5Ÿù˜šÄ‘Ü #Rîê~nn“Zº<Õ6+Œ™%‰½T@Ì¢O.¹yÆVV–óõ¸H ½ÿ§ iÆ#¨’HÛdè rgÎ!è`œ¹¸F«®ÉØ®ªœ×@á†Ç|zÜuϯâ"árŒòžî ¶ý"S¯§µ(¬@#ˆºgˆ=Àk¼W¡(Ô>Ç•„u‰Õ.ÌN¸û›Ï®Àé¾ìÅûYŽ*ºƒ½Kœ‚Æ…LÁhwíßwæL ч‡€ò ©Ú|€šŒ RÊ| ŠNáp¢¢^–FèìµiŽÌ«Ž¾šu¹äº‘SN¶qhS>SJ¥òâ*¾­Ñ®Ò¯!‡(rö£òÉœk»›^ YÆ€Z Ïèî!;ígŽ9.î=Ø\ ²Ð¬|ßW’\6çÊfJÌ´q-%8MŽ{ž³ÛpOVáfŽØñžMO#b~ô,*"L¸÷ÿ÷|\i&Ž7‹Kœ{ךÔiÿ Xó¼-#f³[7àÆQ–•g]$ h¼_¨3§ Ô§àZ‡’ Lš—,¶*F«ÏÃEîPq4ð¯»å ù`ñª\+@Œõì©›•ŸCcø}/äàéi¯§,4£PN|èû-yô‘±çMJÙtŽå%¥iÃ\Ý,•·Ó¶yÓpŽfŒhsðZ5œðD ^ØÃ9ý±~/”qã‹­‘2&oÎä£Á)bí)¹µ¢ûôàÑ{"eÎ5ï¤v}ÜŒìðY­³þ©Æd~0Œy†”½¸udN’)UaÊL3MþšßBÞŒ3ެ'x9ì2\VöÉR¼ Š-é²3‰¼"âÏõêª[Âèn¤ù/¶jFâð•çÓÞò§¸F}!„ÇáZ*w&4[ÔJYlÔ'(ƒa‚ Hô…>#x#`»_lš[‘òƃ¡Éˆô^K Éé“9 €{oÉ„m²xÍg¹á7§÷òý!IþìÍâÇ5^;‡. pß9¨Ý05^¹T.RÃxÉkôñÞN}¢ˆT 1v8·¼\Ñž¾éRRþ'¨þL­”4jÓ™½‚D›¸¡Lj ¬ìAF쇩ã1­ @aÜ ›ò`λ°øÝdP/ä_ZE‹2¿5lóJød‰m™ùÌ)iYô†'‘2üè ÃÝ©yC3î#$ÂñÄ=²ŠYÔ=cmbžÀyÎMæ.ñ Ïû]SJœxL–"ç™ >.ÿ¿B¤•÷ùÒ¨žŠ­ü+"µ\1¨pq`Œ’q<ß^m ¸1R#¥¤ªkÉ"d_uùƒ§%˜ ÷fþšQ †o“Fål‰¡DOJïà†¤ÑÇϦκXsÉ¥rQàÀ Z·_Qœl|\¤Ò•‹Ð·m$Ó˜Ç]à ÷¯ûŠ'·â¸›Ä_2ƒ„¦W‰f…¤®è7W9ÖÞÖ Bµþ]ó-Ææs¾Ô¿dêL0dûø–LJ¼„ŒD)™¢ ‘q'®_&€²]§óù²ù ¾þ6'¾Œi'k'ɲ´éÜ´á,¨ àþp5±º˜†ô¸ò¾7“©€ü5§äeµž¸§Ÿ1ZN÷u«›Îüƒxî'ó&‘»ÏÆÎšn>º<¾g`.­«Ð!"MÚ,žËü‡)hUg´r¸2PQ½0£;˚ſÉãgc§ 1%Ä> ÑiÔ锕*G'{]Ãtc¥xGÒxÑž+ÐüÆ*·n¥5Ãßä—u‡x„/.¶'ÇÞI[Äñ‹«Zé8A÷¼¾Y€_–µYËIW{ÝàƒÂ* zûØ%ïhkžS·-#´|_œÛ7L%–Œ–AJ|­µO[cuRô[9=óFèˆóÊb¾8B'd™†_ãà÷¥n° %Fº8½çóù·*mõƒSáC»ð_ó§_¢Qýf§˜@1zœ1Qþ&÷ JÅä.f1ÐÓܡڗƢƒj±îÛº–/Ó§ìBiÇç#|ÿùPrèé¿>g¢íQ@ï”Ì ƒø˜îxÓÕ5ÔÔ¨•iL¹Á‚‰Õø/ŸâˆÕ•¯6h—‘1‚—ÉäïNBTÏÌ•J$?Z–?…Ð@K½2MZjJïO}K`§y+[êæUÞ  Ñ{6Ž`Y‹Ø‚ÒD#§+pÞEûÖeƒ:M£ÜÊ_85 „ K”5®¾ƒ±ß©©Ë4š¾ L3eèý@_ß§7k•²C§ØFí£d—Q °˜Ð)^´'UÜÞä óHÉæß䇥Sw¡ß[m¶–[Ø×^4#~u `´sîQ _³Í8Xü•pKóÑq.Ðé*ÐŒA™»TÑÍ%Zý¹ûMý ú¢©[øþ1k§Fú߸xºò‹£Òb%—åðs×9¬‡; •‹pâ$ëN)m_ñŽE­jËØ@€à\ÚD®Çe,'o:ˆîuÞºˆ° ÚQv?˜ê€7@Z04nátñ¢u1ÌñáªuË·÷#Y~…Ní;¸˜n’×$ê> üÆ6²LûðþÚÜî¢ú¹™!¬w«®bY 8¹ÄFÑo´ ;Tà Š|¸0\¼©äçøÝ–zÈÅfÞxR Ö`ñõ\aT™ÖÎäEhEŠž|5•ù©gB®)õCaW»ËN¶+]` Aùû`äIX ozp،©h>ÛK,Á0”…·Å•Ÿ[³†™·ñ„¥J?;³S|´Ö‚üûØüÍŽð¤Rè†ïŠý¹Mº¨)mO;À\[Âĵ˜•YZØ I¤(ÉÚ¬­Î‡VßÌÄÏTÍ~GÚnÀ ˆÍs«ŽµmÀ#'®Úp–Ã4<Ílc…½1Ó9ºøFÙIpé8˜ íài»–^BÛhëH.Ї`óë2wŸ0JÿÃâê“þã—IQûα‡K‹ŸêªÓ¿Î¶bo¨Kˆ.qðH÷~7ý†uù72é`èß¾Q9x^ªë ïôrï¶Q#º{qsÁΦÐJ–Šõ´¦lT.óÄÍ5{8%¦Îù˜ÙöŠtàñú\Fdí˜Ü¹î ëŽ= H´Ž ؘæ_#¬Y©]hrhG&c3^·"]”( ,@úŽuýšÔhL€RøoXÍRtøþ}·´K ¨¸×.Œz;Ë’Q«è$è9ä%€ä,=g“Ö@HY™ÀG(0fŽ}z›‡LFÒ’$e}`SXÒ½§¼ã’!ˆè48¬dÀ¤~€Í£|5 pñ›øõ^:/çÂÔú§ôÍ衟¯,¿j¼béë[Ží–†#kjbˆ˜úæÚói8û~¤zôÄ™\2òèñÃãÀ…»gÇm^ˆÆg¬ÎÌÐÕ”lXÀgw~B=‹òöfÚŒ!îGfòŒÍXØßoŒKÉùN}øœóÖ~žˆû£óª5;…(ÈÀiebEŠ62~Á°~gÓ-Z3üRžö·åLȸ9)´Ý–¡5Þ$´ÁU:ŒW»˜žÅ Ž@L)Ÿqbšè{N<¢f_ky uD[Bƒgê¡–“°7|+Qµq<½7 O•µmRx—ÌžÆÀ·BKú6.…»ú¶Ž=‹ò9š:ëÊ‚Q"ÞzC¼ós9¦ØoÛijà:˜«³IEc¾{šzõÐØ;/#€ü#%ûã"¾? ^à3Æ/·Dy+‡ùÁÓ†é£ï–ÁmE´'Fáá壓ßÅöû¥ç5ÌâDhÁÎ4è^ƒî="×’›?Ê9ýòCó0Ø ·õ*¬43(Eë´Û ȇjÍ)ÿV¤r­ñA…°ä$ÓèÆ¼r7æÇ6™8ÙPèªHLG)RÃŽ©z¿-bm!Õxé9@.9¼È™i0²Sâ“YQE$žc–ýÃ"ÉU×Ñ’ x,ÿÙ7A‹ju·¯˜äÆù\Š“Jü.Ô«D@ƒ/^ç¯è§û'”··ãzRc¾ Êõ ëø@"|ÎѸ‡â%‹Šèý& €TiîcäÌsZˆäè„‹5sÄŽü?ÝHsŸÉ£›?ý@‘>NT~Ša»ªæ¶l¨{ lÈ@M+o í [rfô”jf¸F´¦ˆ­yòmæepÔfó¤”Äçrr«e‚ra!:Ñtª$0­©ù­F¡mø|©^ Ãj->a¤Ów}í\zá¬DI %TÆ&w¶ËOáÄ÷¥;+9ñçÚC4ÀÝvoîH€ŒVK¶(Âg¬ÐJ´°¶ „€Y&}ÊBš•mZe°Q«;rq»ó]‘¬\ˆìy’<éSX":ÏÊ<åúŠ îAä`p[ÃT³}x•¯SGýÞpøµÙôÿËàu§¬ ZÉóÛ`0Mw‰ôSkÿâ|3èøÐdŠ(‹FÜ”ßÂᙂˆ—fºuÎÁ02Ü'˜@j¬ËÚHåñT´»Úƒ³7G<Ünçw7H`•IJé 46ìlyOŒ9ƒaÆ.Û÷¢·m‰:Ô<ðl¨Ó©Ç£Ý\ ×/0ÏjÓ>½ìji£ôVóö]ÆFC ¼ŠÓ‘ 9·îš¯ˆª·¦|à¶ œ“V•vé;«_Ó ÕÌÓCcËE õ@Y5se>ÓøÏ˜ƒÑ"csNÁ:dZ¬ÛØ<á}5ïEæïl8\Ü?Š3 }dçU²DúNh©N: …èy–ÕŒ@r¹ÒòR@^zûSˆ ›¾0”ò÷¢T€àé G¤“:´A !÷RÉç7Êh6úÍ*}¨ÿÍ©=Ç`ä7ö¡ý®F,À»Y/­^ÉžèÏsÚðjª|=„3 ÎôZÀ;i?NXÿ±°"+JOjxà6¥\yÕdÈßÜU¢¾÷–yú>0ˆ–¡MÓUɼyrsÿbôÛ›ðEÖ0ÿ~¸ˆ‹êŸr¶Éò-¥yV‰nPL­®nË%çdrð²ç.ç‚ µgÐ(ZC»5§:ÅÈ«´ÖŠ^G!,gM ð6=Ý {~jë„ÝJ•-îbª9ýgîÑ šG-«ê/è—‰„ V ÈÝ÷÷r‡Ì…¹ØaLù/ÊIº»ƒ®1­SgšèÁ€CG9ÀµÚÒtÅ×NA d!—%&­ãìKQêκƒÎÕG §sÊSEN½—E¦;¤b­¹0¯áì•Wmzχ fW8XTQªŸ¥ Bƒu7ËJνÁnï-°[˜iÏkÝâk­à¦O·œ¹„÷wŠ$óWÏ+nKdhO*°ýë"h G!-~?ny‹ûƒKtWuc°'=Uo½¦Pá7hX¸–{Âñÿ½Û—žKGT¾õ>7–kh®¬ Ñ"X»««PîVU°äöÜöÿnR×·aÉ8~m÷Î-²DªCŸ¡¨/ þ¸!W̶³kU“/Ž\[uyL…Ç×]fIË“µ¢–¡'’î´®ƒü)È2—xGÉ7 ›=ÛOæÝÄ­›qûi+¦Hò·Ô£Û”q3%€5 6:~"ƒê¼/³€’ŪÎ9½I=K­9÷Eà Ö=O?5Qƪà>ªÉý±eо=§£°ø¦\xÿÈ.gVñVvžºU)ÌahJ‡ö ;Ot‰8ò ¹”ÐpþÎAÍÍÌþ>ˆà%‘ÂÑ—&®Œ˜BÅcÐñ˱LPé‰\'6Ö`E‰9‹º©ß§«þç­U”yíwÛŠ‹}åžØ â~<ª°]!_¢¼DœÊ—Ï•Âå:£3‚Ökà„gç¹P€L ¥¦ÆF\€ïhw‘gpDÓ6ˆûsBÙ‹†3¨üÌ‚¦ßÅZ:!Í%.íŒóú'QJGE‘-Œÿ½hÔªfAI‹dõJ§ nrÛEÞy±ëš:VœV£K=–Ç E+:Á!š¶§r+Ÿçm§¡¾üßÕqÐ6ÊQÊò\S'¢Iî­U€|Æ•üôæäb'uáγæ&v/˜å’€ZMü~öÿi»âkÉË[Bޘ΋æÈQƪݒ÷ía˜e¦Ì×ì*­aS-Åì4rN©<ÕvL\–U¬E«øï2w‡¼]^W©³³hìv31´e‚¥YõjqÒÏ9´ÐS¿H°D¦Xˆå)sVX’é l}I ŒËqË R (‹k[V«½—4Ñ Ã5Ò0œKx٫Ӻ턋Ùv>§…¦ÖLqÔ $Û;ÊÜ˾/3•æÖˆŒad§‡cD|)?ýa¥3â}Î~6ñ™î„x²æÙñâ·öyóUM‹ù‹(‡Ü6û·‹`Kß;Ú™ têÐ0›èLÙÉ 7Jv¿¶…÷ x¬ûQëMÒEæOW%ßµ.·³.¨¯xŒ>'Ùø–oAIBjžr‚ ¾Èñ«’¤6õ’™aŽ~µi:à–¤Ã©¬;ù¿"FôÃz•'Ö‚%¡X±äÎ{ÁuÊÑÝ%Y1[L6'8˾C<Ü«,tÁ¦Ã¾œÏþœ2s¤ª%›¹Ò[çõÃZgU5û‡Û’1¡¼šfíÏê·—Pt0Èyo>1üWtÂ…š‡ZïSf­ëµLV}Õ°ëÌNÏš`â3ËÔ0a.¨ûw‰4­îCÖI¨2¥TYv1JC@@¦„IÞ|úAÀøˆ„S¢Í”¯Çdª›‘”j £˜|_|æÝ’zÄKyðï¤Râ§°?͘î#þ#ÌKýtâ=‰0x·Sºaܧ̣S#½¶Aà‡´;Úh½ïå›q 5DLf 36ßN" ºé±¦= ìWå¢$ݬ¹DcA§psaò޹•|d—þ:ªÓSÝWaŸ=2ϘëªÁ4O¢•úü½ŠH›¯Xm®Ë}"ûàz(é¿´Žá/+nx¹7pr£‰²‹ç}„µ5,Z-9‘Ëúèæìdwšž¢—Sиï‰v‘O&Vô"ɧ6™³v[jï«ðk9LXé6aÐ ºn TŠýË¿­g³Ä0ÍA H,Uü_D2”Jn« "ê˼kÂwÿ<¹Ò€baÚÈõÏ ä`žïLØÉp]* UqìIãÅü5J¯všÖc˜½¬‘޽f] l‰67aØ©ERC%áU<š,[exd›PC$càŸ_(Á½9w‰ƒ,ö$“QÃÏÒDöÎâ=Çå¬üpö…U[ªŠãEAâO„Ôa¯ÁÑÂÎh!ÈŠ·®]lU䂟Ꞅº‘×F°È"I¨Ý•¹þ­~<  (µ€Ÿ Ú9"küg7‹ã} A£ûÜå£ÅþdÁð‰—»õ,{²½l8kˆb‚,_{˜~  ñ#÷¡ýn +—£¤›¹N.‚Q8T…¨Çiª#erä¶XH»œø´Ž¤·ølŸ€‘ÏžXKA[Tl\¯þv`7¡@˜aŸem]•À\_Å/.U½]ªUù*dè”l›™`ˆü;ÝÌ_f‡ˆô>Ýò¾1¥lž´R/FÔ»yÓ"úÌÝ>½Þ"ÈWÀIÛóÍ6h Éýeûµ!cL¶‚¸Pò"Í<}\{ÕŽönŽæ>qô¬Ûk^t`Eð+¸kpþï¶ÙöÞépIõKS˜VW+kËÇ‘Æ aœ”œ 9Ï`Xûƒ’œÿ®[<›ÐÒU â©aô5üqfÄ×Ý¥Ïå"°Ú̯ ‘ÎFuò൫—ì¸cN©\; ðã^ ç”4Êê”äß=“™Ã¼n@㬦஫óþÀ¢ÀE¶Q<}_{ü»Î)S¾O[€’¡ É9Ë¢&9zÚ¥²DÈÓ¾ÒžQ‹ÖáÁë9`HñÎûÔr5NOŽKª˜^òúî1§%bV«¡Éºn’o5À1 …”n¥¼f´‡`qÅÚ/_(!ˆRNgÅ6%›­â¯8QðV*ì¸ó\W%—²å—öë+ˆAÑVߪ³œ—J\äÀ²Ž³c¡í^_F×_ å…2œ«µS\£ÿæ4M<Ìoi"[ß%ö€çU/Ìn¨½“‰ICcÖ¾Ô·4¢oª:ª)LE%í„qÌWag¿TQ©oØU]üßÏ ¦VÕA£åc£Hª^Þ¬ Nc·ônsƒ6ƒqïTóRôQ"nRs[=TïcNªg®xWپأ5‰,«§¿‰Œ\ã%©kÔ1AN­qA¯9€Z‹¡‡ ¾.·êá@@°Ãÿ¢¥Á#{Ðž×ÆE{7bfÅ…¶ó;•Cõw‚LÜáAqQÑC´ªÒþ^ è‚¢û, ÷.OêŒàÐ} ¸7êühì†óKA‡ÇUŽ|`~qU¢¶_Ñá#4ÏH—,›ê-åj…ôcåœí&s´†5%9ÃKíð‰¿)žÌ™¦%ò΋Ï7¾«G±á}ç©ìI»¶óRTÒ{ÃÀ†•¹_¾ŸœÑZð"†áa^÷K³Eøâ8Þ<þf&AE#dƧ×t9‹†µ#ã&ª¬£ò¿C*y;tÌ,ú”Ôx ¾õ\³ ü‹²ÑDÇÊöJRìÝí;™ïÚâࣞ<ì=~N.|Q€W"‘yÙ뙳Ê3Á-øB½Ç’¸=É¡H὚ç;jÔƒ‹0*ļâ£eEdJ)5Ú¿3ê‰ÞÃRWü&*uµêôµA`C•Fß8ˆøT©ámX[bnÑ"WçtUêí²ªSÂSz ìp3°”ôé¯i ¼ëÇZâ{à!•….ÄÃú¯.»ÂE.ìH,?EûwRK Þ¨°$bñ„&ù>.ŸQ”:X®è›É##Aw@¶î²ï²AP¶úHg¸Egl­v¹d¶Ø ò¦‘ú*™l7˜)B‰W˜+i†UMiJbÕ ìY£\^0§Ÿ.ôûF{O¼â'¤·ƒN—5† =Ë{BÔ *ÅùÁñJoö¯YÂÕSćûúøÏÝ)S½ÊØüßÌÌ0® ·Ë¨“hC­®È¥ ü·OV"ü‚·ñs|Ît*tì7M¾av+tÖ—ôG–I„ìÕ!Ú5;l™¹nÅc·‹wœ_@»ŸŠ ÕͲö= R—65I.t¢µpš73%yø§ðÒRòë ùs8üF©èrP©Œ%€7«—½:"ŒŒ[œ OæuãÕ”Ê[(y@œo".œKÕ~y]m¯ý³«…±½x>t¿xUⵊÉqJ}=oRÌŠ!ŸÆç-^¬=& 7ZfaYÇÅ~;0Õªëצѫß?ñ^+†ÃMŽ7©}¥gŒ$Ø'brRt¶‚J1$5]7‘"ÅEÞVˆÀAèÇœkÈ6äõ{u>Fq"%úó³ÆÚbi¯>ÂððÙyU°.šiXÇØ´žo‚Ç(ß~7ÂîúÛ—ß¿,ÍñèÆ1ü6Kš;Í g ò°P ¸ ^¯¯ ï5z?¤s—ÂGçÖ¡".ÛÎȳíÛ¡n&ØG˜ÿ0t¨-¿„¼Cxgí\û‡=œÖ.½Šˆèì‹OST-¸¾DcâEŸÿ½®’€i=²!Ü‘ L"ÂÀ<+‡/ÈÌTÜñÂ[{3"uŒØ9Ú Ñ*b÷}$Ö-~AHíÇ^ ±«/1D÷Z×?èÂÕ¦ ¾=†¯ˆJ%o¥¼ÄgL„ d”N‘”ÆT8M‘í¶WâeŸHç&}ÿ½5Y¿óAb{êö#[:kq“•†»d ùGÁ¤9ú;¸Ôï/ÎÔ6²£85Þ¸ŒÖGðoœÓÔ6°•ñ\š×Åt§Ã ΠrÙÅÙw8Ë †sÕªF8qMªò-0XpCš‰B"¡Ö`6M z?÷ D °|‡®p°yâKsðÅm©ø£%÷ù©¡xZöÏsCHa¸Ô8šs0 1·›ÃHHÈ'šžÚá„Ìr ­‡hDlÿgÖ9½Vo-Ï¢d@—À¹a‡æßg|—z´‚ž ÆsËóúÚL„3Aoy Õås`­¡+{U ]2m¤Àª9# ÈdýëxhwH+ó[Q€…óMEÛö¿ŒJ5KÓ^t–rüVôt â “[þ_rŒÝó„ØíiV«]xvÎDó[þ ÅVè-°Á¡¢.²0bÜŽŽÜ>{˜}K Mú¤”ÕtÖ¢ÁaYEòñêiÀáiÄÇ|]c·÷ ¾Š`<Q#ô‚èB¹’‰Ü"*’H ’ˆ·oÙÜ ÀŠéìÖó±•}c^`†KBℨ©¨vùÖn-ú¾þ¡Zè@H<—³°UÉï*Á°é˜s{ä’s“ù#K¾‹„NG½`;Æú„EGúVl)Õî Š, Lu”È aüàóO¢·¥ü|¸†Ná%Í_£e*`<Þ™&§@ƒŒ¼¼ÞÆÔ.DWò‘FçvãB¸MØ6ç¤EtÞðt°«°¶Ïé(d<u¥ý&‚Øh†²Ä(È¡éýå£ —ýÎà hy±ã…Ü”ÜK¼Fã«Ò©á@ Ô!΂ »hƒ¬¿0ߟg'týß×8%k4 {²[ˆ£13#Ñ剑2¸|_ßËê¯_XUÃÙ(H&ÃdÛ¨ù¿W¯'ÔëÐ{Žf°—Ô° ZKÍôžßÉàüžÚË¥[ÄÜ0îEŠŠÿ˜ìýE6–¹óìÀ¦µp´EÖÇŠw¹d—ÖÓã£Ó¼â¸xÌî®4Äq7"t ]ƒ§¦7-V%¾³,Š"X^Á ØèFLHÑúò`‹M}‚^ˆ5»Ò€!MIBqºjcVÃ%7jº®©CßES–Ê`ŒÔÚÎDþÉÕÉìª`•Џphͼ‘ï_ ‚B `E`IT^”of?ÔUȵûzØÂ!ÕJøyó:ÄŒt¦tÅ&ÈR'ŠÛG:71Øþ˜£³ûTÁUn[øeû¼R%&Ÿ8et« X$™AP-4&­«½þdfÃç½ëžÆM©æ?yÎUÜ•ýõèC¯­€ŒäºbHä” pküªÚË.*}fJ óºÃ+Ìan_%ˆyb0væ9mÁ³ýD›‚V‚¼’†¼«)C‡ (@Ï£÷ RÍÊånÍXDt›?QMS¥3îxê @Ú¿Ï$ÞùHóÓKØ$·NÀ8ä@²-°ÍV?xqSŽcñÒ¡Præ9f=è`/<Òû>nJ*í ul“˜`8@oe.ùB~Ìò‘éͧœR÷¡î±u{˜™m‘|¤·Ó üòk‚Dx·N"j7NcoœFˆ,Šïfæ÷¨w¸1‰âöL³¡ô/¨Bm9URªôì GDdŒ‹ÉòÊ×(Sw˾ÛO«ðéó5=ÿ·x³Ý“ËS3[¬,ë’…M8|îb5ò@ý ·_½ùô~¸_Nʃy÷÷¿J~D£×D`à‰ª¬EDßPö£Ýuú%8†þC%Áð×~­öX½NéW%sKC4¦ƒ‰„'ÎP²&œn¿€zÂmÒ½  ·k‘²ì+ïd )?Ûææ£zÓG=b|7Áö¥èˆ ^E«¤BÛi!¦›§™çêÏáêG 3Æ•õv1 £48ôh]îXZ í§ÿ· XïP­"ì*ͳä !b–«=§4.º¢váÏË£…ºàh«ø —±ä umEWv•ò/M'1-ÜgWf7±„‹4 MÐ|×ÃørQã»ÜÌÀñÄNN7ÓÎŒ¯šo¬Ë‡+žˆìvù@bË ƒÛ( ð™§ŒI²óÐMƒÄ*Q3Dò§{‘)Zõ]Ùúf¸¾ûA*¹2mú!QÃBø({qž%Ke±?s/­7‚JjœB>†4×;ˆy½ÎÔP9khš­ôǘÃ[:r×9HwÈŠAzÝæ×U”^Øêlj‹fœD80tŽPkjáV;l)®Ûa_Ùò|“9t³·ú$;á`ì!jϰ1h¹|EGÇ[ë9u< Ì@l`ºQZ²@¤Yà´Ra!D5àž$?—CÎä&o,!ÅȲŸ8Ϫ ëÂ3* öĈÇ^’?·ô³÷²Î%ð[…æ% ‚€+-#À¶’ ßò¥0Ò"ø0ðcð5RìÌ}xfšÌaoá¼×©cª%ÁÆ—Ôiìûq’î®[÷¬B+Û·î/S€R®—k…‰ðÝKèñ6·þ”cu\QçZu »ôÌ 3$‹#Þ³"j¸Ç‹”ïÓï±Òõ=c&#Ÿ‹ÈdÅ ˜‹%T+ùù~¾rê~OªéË›þZÕu² 4ᔿ—³.fÕÇlî|r"'{Ñ»a`MÝ[Æd.²}æK(Î^2+]Ñ:ÛûZ·K¼¦gRÈí¢8”Z.ÊCágë›aL¹fÈÜeU ]áÏ7S}B! IÝèØUã (‘³‡âêµ›bIÜsv¼ËÏÑñd÷ƒ˜¬Ö('Eo)T¡˜#þ¹—ò4åFu~ÎFŒöùhpo¾ïñYZæ\îúóYÓ¤ü„š+thø6oÍ+` üŽ=ÔvŠAí®[ä`ÒÃÿf†Ú §hIÄREæÉO>)à9ó#Bb°¥™JRÔßÇØÉ»M›œ%§A`Ä!/úT”×u˜ñkÀ=Š$¬}³ÆK)7$‘'c5ÇN§S«@ ÷­ö Îž˜MbMe7€æ|Ú˜jüÛA¹1¶³©(\˜ˆÊ³´s-ušùßšgÑð=2{¯n‹Ááâ‚»Ý×â< Ä4B*ŸÿÓY¶çGäöÜ@%7§ŽlŠðFášñ±¿KÕRÝÑbƒ^§·°ú 3NÝ””XœƒŒýÕÄE$:“S|R EiQ«Ý6½ÑRÍ`Û’Ìy“"íò×ò¦MœØe"š—™Û¹¡Ù Ïí{ùåêÅGº2ýª÷×c"ôú,hxå3æ19}\h°kÄL¢ã…ߎùâÃ!Yðj°¿b§$ÊI#ëýž‹˜ö¸¢pH;‚\æu ¶ìØD®~¢W÷({ÛF"“RÀ¬ÐöF^ü4ªýºÇU ¢{Õ@1wyÕ–BdùàÝý¸¥!öd­MäÓŽ(¡oáßyRÚ™ð¬-¢?Ü0êm‚0ÚlǾïm;P*F-Ø0ËžGy a‰]#‹ ·×_«é;áÉ3Ùæm[ ¹>ša -!Î/)¹É2ʯ±Ô“l{÷ÔÒ·‘›äÄ—×FÈ5o¿ì`4¢Ør»"kƒþþwbrET‘öô|Îq ­vãȶnã­)ŸXaÅ!/o*'4fÑÑaâù$®êô³¤SCšöÊyüÌ¥”·O‰µè?DåÌòà“#Ÿ‚FÇ¿ÎW Íߋۨ¹.‹GÛ·ã øÍUØ2VS6—tD:I¿hBñwã, 2È’ÐR=Ù)­Wmv°˜·V+ 9bÿµaûüóÁÄK-øMÍ„3zV^±-â;å¯|Ì縰Òù(JJÒvë¨c¥P˜(¿¬‚Ï59}Á‚š¶Yrìð?2‹LÂZ›¨á£ØúËrk²mõ*¾RÊ¡äy¢ÜüàŸ~•tø<ºD¤NÑHa–ëOŽ\ƒ1F-™3„ÁÇ—æ)m¹ Í1o!T‡ß·:7ʽÑÎ;–¸Ý1pH›”ÜúžðŽ’™qä¾—“/¶•$¹ŒµNÇ2;D¿Œ&=Wþ€TT‡jb öÎýÍôÚi˜³ ÈÓ7H|“ à;iLc]eÁqèkÊÛMÞ€F—Ì0£2‹äõc-K±bB«"Ajéc?Áî?7­]ÇËÞµj:P²_v:0¥IüA.Ë[¹S®ñØ…zÛWáCì±,ǃøS¬:æ’êg“>À*¦¤›cÍëÂÆ“zbÆ ü‚fíÙ”â )ç+·ÜHröS5N>[p”IŸá…û Vš—;J ;[QθnF¹ÈÄPEÝøvÍá½_šWo›Vñ[X$ŽB¬dÿ¥$CÆ.Y¤¤P ¢®VÉ2Ãtä ‹§ÈªöNŸwï×gsMN îúÌO¼¾ú ; ýŒH#¦y×Çu³‚sÖ6dx·´/Ó@µôõà8„š£*À:%Ew¢ã¹~åîd6î;gâ#ÕÑ¢ªÐiémÀ҅·Cž$^?‰VþßU³0“ïîMhøåîŽ#rú‡@*w‰À§­Ä-sf©½¡b¡û"#³R@9$û»«cÂ,š[k——.!ŸAC˜˜Ï¼r„N‘ AWØ'uklÓö¸®¤ú(aÖÞ¡OÊ»T­§–™y–ÞNÛxÈ.b [ÉGƒ­ç­XŸøA\µ1¡D½›PbдÒc°{O) 2õŪ-5Ð#µ= Œ¿ÛÜ9-‡å˜ tˆgÌñTŸóÃcR±ËéµÝ[¢/¤/®«hò÷’g%ï#ÎÖM(¥j¤ËG#ý¡”êïØU«Þù8ù­ V’òÈÔå^ÿ1_ve u“MƒÏî °ë„zóû2DÜÉ&ïÙ3jþRyù¾ˤ=ôÜ1«‘Öµá¾E°+|h‘àH±½ÙÝ©¹CB‰Ùp±qÈÊŽz4¡7œ7K”N›ªÀ0i¡ÆêK](iHrcwxÁ½¶‚ÌI,ðçUzÌûO,£Ý4·Ï X[Å£’ÿ.ñ:àû¬Y×õ;xˆ¤à;¬K©<õ’b™Þ"ýd› sù¬xþ»ÃLba]ÃÅ2zÕï–ùÌÆá?ðˆ#”1H§v2Nwí»ÐŠ9ø¸Q‹ƒh]XÚØÉ< Ò™ƙ݄Ø–©†ß\ŠUñfÂÌ[,05C].á„Wâ3;ýKçmI­¾â¥‹9vÕå[„fÏ‚wæþìPnÄU9HáZxú?…íEÂÕì|g…¹ÞÀCo\·Ÿ®Ôdõf“ÝŠvã <1¶ ††ë¤ÉÛ…²ÅðÏ&.qEHÏ“’ÒT±¨[¸/ǹÆÄ%É6šH=FÚx_„“PC’Y•æHç«YýÞŸpq“æùRËâ¤E×Ç~5–¡’z´ª‹‚ÎÚ½z”,¸’ç>p«›J§FÀ?[ž¢rJeÚÊa3hÌ^ùc¾2œ902[—ƒLÃ!V7þ§£øñ­Šú£¯Ùºø¹_9î43+Øá‰J¢ˆøö† úÒ{L!£Óǘ/ðШ8ʼn4öyoJE©ïpªµ3Òa2××bôÞr×H‡–óV"yÛI!ý‘Q¼Š?tÿ7FVopÍå*ÁY Õ] çªF‘Kº|CåºüëñR*MèÑœþN‹‚¾±^ý ÌÇ}¡£mž‰®ÅQÇiµÕ¿}b ¶»³c»þÿ= „˜ƒu‚xðC<'¦‘J),íÛ™P—Ö«±-JB¼ËŠþèžµ#TTtè>–"¨’ÓÑFšÚʆÓ&•µŠ•äüŸl|¨Yú[¡À;.ʶ” ÷TÈUÔÙÔ+zùÀ¨ÄÙ”²?´˜$K¦Kx¢ær£ "7Ÿª³-ÝgüšÊ-¬ºçî‡é¶èB}ˆñêýÂ\˜1TËuý)^~íM‚_à4 mÛõ†Ä„p WĵŒ¸RG¾€wÄ%#òúÙÕ}WË’Ï1£ ÖÄ)I±ë;È;I© [yušOxFJÞç­è?…@Ç‚sx!ýg½¿|ö¶ûµmX§¯t ú:[de,{˜év T‚/46VoŒ‡ì5Ñ¡"ÀÒ~¯Y ™$¹pk‘ž–ÍÓþºÖ†Y'ë·;ôõÍåÕ£b÷¨)䲃F±d‘×Õ§;ê4‘GBË!É£†£Çæß'u\H`uœÊ,ÀpÓËçÅY=› ²¬¿ k>ê=Òô²AñÁ4î?;uºõ³%ªUúp±~Ö»õì^Ü~àxÂfõöðÈ[ÓüÒYŸ0¦,k‡²×è3ô!&Õý•Á**=ÊÈAeh5âÊI>Lœ+½2Ñdk»¦Ð Üá”Äž|?ЬªB=W•ÝÈjb†šàÇÖp°b Gq€Kúu”rù+ßôµ-£ý±wÀ€ëÙûðØZVÝe›gR]ÜÀͺË×#”… –Ä6&Ûþ3»(ˆŽòX@19©ŒñŒ ¦6&D£[+1‹d0&ïÔíŽ~³¿§Ky”Ó– $_Ö"½Z’)wà †‘@_G'ÓÌÚlüoßm|€©¸ œajv;s#/x×ÛHÅhÐÕJïÚ`þYêƒöÜìhÍTâç3Xß)€2ÁkQ³òþ ̇+6]9ÉØóPx·èÊVD]t®5¸ß_Qå5}JfZŸÞ³– ¸› · bæó¼~´}5%McÙ8‘]„¸t¿¬ë,pÓˆ"¼±…µüìí]–ØSœ]ä¤S&õ1ÚÖà#&t©ŽX™„†5‡„Ëê$‡=8­¼®æÌ74aNýÅt²`cdÇ8ù°ƒ»o¸¶‘è¨O‘ƒàØ) 8„Uðð¨óÎÖY&¿hZþ±˜,‚Z {©„]Ô$\íç2ŽFsßöÍË®=YUv(õpþÐá{.É¥çÅð¢)$´(^UsTº]ÛÖG]XÀ@š~œq†´h~d{íŒ/Øiaû»ÙÄ۫ǹÓ{E-›Ý/0üÙ”øËÀulj œá m$öƒO?Ïày7Ïã’™u”“jksXàѤ÷í&: "´LLÉ”†¿Ÿ™hœøÇ7ûÏäètŽÏ¦W•F|O°RŒ‹¿òW×(µ»e5æªÖ—¥,*=«¦| ˆ3èƒ9åãŸyþ‰¦¥Y7V-K:Ï[ØZõLËcs†lÝ?>á NníùY«×ì‹ûñ±ë4,ѯ*A$ŸWsjH>Ïé¼kÐLŒ^ï­w¶¡L3¶.¨cTùÌš Â#–Ëݹ^¥. š†9Ûÿ‘Ž&¼\N›Ôu±ÅêG~µCn܋ҿGÌ â¿ÑBÜx‚œqKBÖQ"¾Ì0ã¸m¬pò:¨‚€{C-}Úm¶Õ·ÍÞ1Ï•“a놦ÅInqkÔ Ó™jö¤¥‰™-©ãÌ;S–¡\=û_gT‚ñ9åá7»â¯MÎ÷ûÃÂÿÿ⌦µÏ^쨗ë5"ßzÂ"BàÄxsL‘KL®§²Fp§’Ö&‚¶U£«dz £ƒºÛ£ãQ ·p»<ÏR„sõb] Žs\œÝgÞŽVÞí*+$Né¤Ç,^á=ˆ–¸€[Ww|hÕÓ9~ž®Öv «´4Q··Ò4;Ö™¤¼6zõ1 îj¨ Í/lÀ¼óçëwOQ¨ËÙÛa‹õÚÿ#`N)«Ú·0§ÒTðïˆ*ÔWÑp…*´¤„7t¶3{Ô‹ðMDq¢»í*ä»Î4'Á˜9ŸÚ&—a+T¦%Iðÿ£™þW8Ù¢t„P3 Ñ;žrñ¬Æ,|;c-µ¡p#M7°wMW |ÄeãõÙÝ–&· ‰õ_ðÊ`Ö,n(®ÆõìÙ (6)‡¨8ºÔûˆ`2úk~½¤ÝW­éP@Ç?Gá©6¢ÁðtȨS¹w 6Ñ[ë• ÔÞ‹…¸Ÿ1è‰W†"±«‹‰ Ù£ÖNWF}MB_m¥ŒC'ðŽ%ÊèOtqjä˜×¥›+å—g=³>íŸÍ[Ý`ñFþ”«Äsñ¬¤PÆ5›1n¨'Âb ¼u  ð%7ùÒ»d¯Ôoñeþ4+¼3N@ã´²lbƒ¡ì#ó}èbÎÿP#fÃL•F4¶Kî"×˪ôBæ é¥þ+Ñ›™w XtÇü­»eƒj ßy¼ gS™(D5Àñ,ût(³S!$=¡øQ8Ȫ´D‘`°uŒÉÆoQ±•\Ý`.ªnѼ\˜ªçƒí3Ä=+Pñïá-¯Z¹ÎŽz—ÍŠ õ¬eÏb8{òÿר´—à]X) œ8Ȇ!ÊŸ"ý¯¶-u_ßáò]£ðéNÙö¼LÂvõ_0¯6¼R.¥À›Ê<UoKßý9å¤"?)àiµ‚³‚9t»LYù†ÛÅn“õYWª´–wèž2’ö|ÀK65K5ÿÒ™ƒ«Ô9Eêi‰°~Ê4×°f¼ëÍ €³z”gõ¬àdÀLÞ¨‚ÿÎ[VR’2¢ppYÇàèW9OÁš'V´†Ÿ6 Ï—†ÆkѪkå D”~" ô…Qðysl<Ù®õŒ‡e¼ÈPÿã÷…®Ó1®ü_Ødë‚ÅÚIºZvß%ÚûE»%È © qØÜóbúÖÌËÑ{*öQßé±J×1U©¥õXfŒTg¼$ÿ‘SØ÷Ñ‘a‘qí=Áå&Ìj…Á‹ ­ÇòŽuüË\à¿B˜&ÙÌ×cõºO÷i˜/xéJ±kâÑQ’ `¿Ø×ì*+]W*'Ì‹óƵ:hær''UN½‰¶žuu C+†D[sv,.¡·‘÷yù“aާ þOÉÅ®«x+/óor¥Ô}éÏ0wë\"+£-z²5Öß-QË9gO©63=C¾Ý›š 'h#~)³ Ãûêà ºÿÖ¼bòP_·:>ûÀ”è”Ùò nvñÅpèί²E¬øà e`)Q¥æGßn(ñº¥-V¼|Wåô 'ØÈ,ªM #ºèdgf7-À&‰”ãù\Ñ^u-˜D2êZJ´è`(Á‚8V’šúŒ cC’àËNvzïðyE—ÿÓ‹GØGת£ýúÉxÈùþëŽ"ÑH…WñœøÝ@üíŒiÈÄJ ®\(TÀœªXzuˆˆ1J휶ûì…Ò9üj€W(p,ʳ,jEÕïêdûûÝôËíXc‘vjzq¡vÁPú޳ì²äk!üëûXN'Ü:³L>ÞˆV¢N ¹èÓÏ¿@­ƒ F°[cΘ2®ðÏD®:;Ìáyé ”È~IÁËiI$rÆwåuOÚ×Îæ¬¾`±´`}¦éõhJ`M¶"²dhöòäé {¼Ù鶪ö=³SJZzt„±ùWlF{0ÙNbk†ÇX$…6û¬¤0ß“b(C‚±bC([ƒ;7•‚ á)‚õÖJD‡ž;HÄV u'©£L ?:"@ØÐBç|®üÃî:K± ““¹K°iP†SöÆZ[ø(ú;¢ã£i€?մ쎽N -s;¥a°vSóû’ÆàÆÖ9°³Üñ¤0úv–?Fž' Q$2½­k7QÁô9¸uçlŒ,J‘þoÀÀGhç®vû¶ÏKèéÀ`ºŽq꿲öûᤠÌ4}/—§>kPùå(ßMkª}©;àJmaƒ51ií0W¤ú‰ƒ@²e®ËG £?Åpµ)q )_Ò«¸@9‹ø“]Øð{z=ƒ*AÔòuU¡Z2~éîGƒg‰Ñ_[3ý¿@E¹î#uïî:Éf[™ÌzÌÙÿú R/òNøêÇÂ[¼¬ twÖ“Õ!vº½{fx{OfÛËwÓñªç ÅÔ’‡gy7g-1sœ§‰ÚV( 6>ù³]dÏŸZµí&ü,ÅÐÿMâ«–‰/[ÿµzý¥}™ÿ÷áj¡@Ó@Ñáß©>ð-lyGݨŽjœòÿØýÄÅ3úN=—Ù@Iq“ôäëu°SƤ³¥‰Í¼8vs<Ö^ÊÕ•æ'Gd7ýhI®o?dc˜þv–‘ÐFÙÖÍ÷ a„`ô?cxÕß–wŽƒ.4¦Ùñ‘ª ¨«¹Š]CYæ>‡»Àž«ûé\£>R(œ(è€=Sþªô &¤î*&––kÿ{uÖ{(k0¹ì´Pç ¡C3¯ÿ& Œ¹¬'$¡…mˆš•¥ë0^뎨hDWóŠìà3•}“Š©+îµ¥P)„¤é4Â(‡]å½-+Çp¶#”Õ‡Õ4èâEš•ƒ˜Á¤O»üQñDÅÛoøº[OD~½³^²[g©¡ ¢H˜Ö€[Ô‡HÁ‡CdªÊk»1)¦ÿ6«È?´®Ö¤hkX¡æy‡Qïg˜¥ë\¦ £³H"F@«—»´Û¿á;7þ?bë@EÅÀÅ•Åv»fîF|.À;mBæäÌõ$O¢Æ¨RÚ¶!Fï<±ÉÍAP©%4˜yŵÍÅ›,7…úÀÀY*¥o„˜ÆULýãåÖ+HàW¹¹0¢ÔÓ‹µÈe›âØüc&ÁT3÷cæw×'ó+û/•Òæ÷Œ'E–¶Z O˜h6êEW&‡xð)cŠ×S»| SNq–áÃM²³uåÞeWbhûî˜hZ¹òi'© wP KòÖíÇ›`ØÞƹ˜Ì>ÙtN‰C%i”É.ošòvs±]Py­#4¥2g(¹Àø`ê ˆ@®ÓÏIB³…:£Þñ0#0füºƒîÔí†Pz½‹%]¨™¸¬²ãÁ¤"$·´Žrï| Æ!Í8O‘$©ªPq/¼‘=Ï“,±öÞR)XÿÀÔuÈ'\õVT?bs|Ÿ ™âŸpœš3ßœä4Uš?é7"T´*;)ø…,ƒû»€„k³å²”ì\)¡Ti6Œo4ÈŠÅqê>0_NÜ}õ³ë«¾yEõg“Âp3wÁ!šIîAéå'4¶YôfèÎÑûˆL*9¡óÜ¢M÷r{ØïäÉÑ»gœº¾Ij²X5Ú$è–ii9çÇüjÊ-4à«öÆéÀºÝtØ»éöué%ÙŒdÅØü6À<|ÞÞ‘`3ÌÖusn÷lŠ˜âÃXpíÅ*çu’Wx‹R©€  ^#)î[ðÇ Ó*JŠ3 »Œ¢*Q¢A‚v­;Ñ}lA©s¬qc»b›<÷™ _J}Ós+ac=¾ ýUç ×\§K'aЩä’â€'Á¦Æª½~ªúDó‚e¿,Öýû¾‹l¾"¨†ÚÅî2 蟓íÝß„*Ÿì]¡'M ´ó’D0jÿ/EóÃÀ Z2ÔL5%)Õ4¸·ë" 7\{»8':ŒˆåE–Ç ¿¾­c^?eAí\Ï™5“”6£±£ŒÁ[™Ç=gXßð?äfwqøxx^þÐt¤ MWœ.Êá+f)‰|Ôâ4‰HXI›•Z†q>¨siÒ„qÿæKqúë:Dî=:ʉµw0;#Ý©@Oõ«‹™öuõ" y~U<>‡‘ª¶Ö¼Î‚Iºe…ë)«‘†YòóëÎüŠÍœà›pd¤ ë‚%mÓÙ¹Z¹–µt‚µn?Ï_ÂZ0¯k;FÐ'Üø¢øÞ“ ¹° ßa¨™ºAGÙ Š9½¥;ï‡ÃŽ‹Ý Ží¿]…˜ËŸU¯=å`‚Ý"CËúUBB»"áOóÏË÷ ÝnÙ=”, ›·T²I*;&§Õoî,Œw'CPÙkº4Ï•’¼d/š…¸¤FÿŠa/:Õ[“Û¬ig­Ê½­A& ’‰yuŠïõya+ :•³&îïºsE={2ê¡xÝü;,“vÄ’$ÁÓ\ä+*>w×ÊÈüT@¾Fy3!lö¡Ø´€¹˜ËyÝ-ìõ®HrLŒnbÉs@þbT?O×»Cæ•ý9köåL_1VŽ>w‰AoªÈ}w)y‡¹…#÷¢¯EÁü'ÓãòÐ_'£Ðø‘£ðè±ÊØLb쀨!(¸s·øi«aÒå ¡­£ÿyÚýËÍ`ŽîgúFltÜ¿w8bX~äLËu³ W5:Tµ{NlgúMq³z•/@!˜úv¤.»Y3 ä1²drqäDž Œ¯ ‚"™Y8Eð^ƒRä HªÙ1eWÏ,¹Ö f¨pã éLSú‹$y‘fµ§{bËÇJÄg÷‘Üa¡ˆáÿdó oCë\#)Š[O»À£„”oýR2-æŸV µ$’‡À¯ˆø¤z®?ô г„qiÁÃsâ·Aìýª²ô éFŽì••ï)@ ¹6ä¤dȰU³!)V¹W¼·2Y˜©± nÝÔFƒöV YO¢câHàzÖщý³Qr„¤™áˆ’ÔÛ„1×û"š®¶í§µû !FÞ1ö6ªÔHo{p¥TÕ¯ƒ¢_}¦@MÎä.»¸a>Þ¢ZpMÂTŽ+ u”š9ÎA!Ñ*g%ÑSŠ++.ÆUú––¦ÐÖì ÚøI\â?¤2Ûž«*iÅál¸…8 ¶ƒ¬!ò«ÉU ‚_þ©X¸¹< ÆÌ;„Â|xžìÌèʦvÎáJ{Óòx—ächQj»§872Îè¶ÏÙZYâ¸üX~ ¿Ê£Uhþ´í_Qht}¢AæG´6²Ý‰Ì‰’L†ôÐ(8¿õWu†yË] âί-9:zeõuž•ô'Þþ¾çLˆ³ýÿÌ3ãíX¦ÑÛhB†æòŽþýœ!ŽÝz)Iß éý½­?OÄF÷Ÿ…dÑ:»>Fæ1ß4ñi›Du<e…ô9yø°Þ/²Q¿Û¶(0ê0Žj\Žëå_…Á!ÁÕ²3h”œ¼­ÆRžOG˜î¥y_ò Ô°,. €æ»_õa?* /ÛåLméÔä€ ·ïã˜Ïš©¼S%¿°pÙÆ7wF_1Fòu]¬Ú—<üà¿ë ÁYþÆ›wå™â¦,FUú_ñ{¨œqs<‚°¯#Öx æ÷²sðìÂОòá¥Â_ÃÆŒchÝjÅ: ‡ìéܢƸ‹V5¥BÈ8˜S³œ¹mÀÍn! Ö" ar.êmU¨ÆKÂ|³]©*Ý×6ãAˆ¢Ð²8aŽg>øÆK²Ãª2ÊÈÇyg¥6É~†›ž0Pîc‰X®ù 2rÇ ‡æo3œÔµ[’|˜ýºM„ðØUp¼4CÖÃ5EiDPÙI¦¡Œ‹%År]”ÎޝÅ[sž¥ôŒthá #}äüš—DM¢< v…[ê†ÇÃÜo¦C–¿ª,ŠŒ‰Ô²ZÏsÕ Tƒ‡[FBxÕ!~–Á¯/àVÈj¦#*ØlbòÄÖ¯œYcÔH„mSÐ,«a׎٢¢à,g;â±s^WMè&×Ýb>RÇëÞ;ïs³#¤ïEDgß‘¯3VðpFŠ\P‡Û£•áO¿ŽÔݦ'*^15ž¡Ú'ÊF¤`ÌùS÷en@ŒÝм·S<`–·OS©J{K[¯Ø±x°IRy¾%P .oÉ~e„Àb°zæGÌÊצJòþAù˜~׋ ¤ZÇ?2ЖŠd2ÌDq®8³oJçcñ™é —ÜØ5^:<±æM@¦³øˆAiî~žëŽúÂ÷U-"ÜöÁ ÙhQ=A•$–‰û±`†…Ê1p2šâ¥Ž¦—G+ø±HÜN˜ ¶1þvR úŸÝÓK‚{3­­š 3€3™z¯–žÉ¬†Úô§«Ps >kî€ õnx²ÈéEwë?Ӽ̈́ѰȚ¾Íá4& ñÚ°ºZ?³+næFV|RMœ¿Ø;Ö¯A¥–_l«´lÿoÀeq÷J¨¤ åÚ ò^¸ÀöÏ2~‘ÿjˆqS0/%pnÔïÓs.µ´n¸€¨Ú<º"›R ¬£¦•œbÐ1¥í†ì7¯ÏZïéªÈÂÈàX,6ÄÉwW’îëø^›a€ôŒu{¾œ èÑOdžxd¤¬©å[jAXÃ¥ãw}ãüÊ^­6¾nÞÉ[ÇT·Ÿæ::'ƒHSOµÞäøŸÄ¬$eË9çæ 7ªGÐ72©”‘‡q k„]÷„Ú 7Ç@ƒË›m¶þûü>võÓÙ²ö‡ŸŠàHHØf÷P7KìÅ][ŽÒEÉíÞ  ân…ÕwŠü|*q÷gÓ¨LC8‰i`‘)ûƒ0eÿ²Dõ[ Ò¥zt \R»†9z.ň°ZÁ«óø-nª³´­à ì’O7L²°æ°šö±×LêÞüÓzÐ m÷kiiù纣OJ!/ZZf/Ò‹jšÅzeš§8%ÑtÉŸ_ að–õPÄÇûNx «²¬\bìì Bæ‹7äÅllÓ¿‡4âÍK†ý’,0/Z—?9sœÜ$.SNw)à®öE2!‰>YêŒ18A§WÅü­Ê¸”Ͻ®{ÏÜ9Óp±LPÐåýÊ;bbRy cÞäü\0J–NóU±> sÀvœ¿‰«ê¾šÈ»·8«õ 5%Lù]où¥À²œÔy€³êœ}„T*§ +köĹ¹@N~™ÕxОipcÑU2\)TbsÞ˜Óg-M=08z9ó´ø#qBÌ¥[gµ­kmÈž8¿œùa±Gµ í^Þ»&áÄðú»fQvž´0uNÓ 6ì'x@,·îÈ…vI lµ9ú¹6Bü³FhSNZf™Dîž\ÍÌ9 Ãü³eã8ý3I“ÝŸ§Ð#ö{J×ÊÄšÿîçÖ—(ük\è/`äŒÓ<êóûfU@à”ü¸ãHŽöDê„n2ÁÎìqRxjTgŽI\¿oÒAø‰2zcÌ`öDiC»6Y;ÞÁ§Ø I’€Ç‰Ii•DŒ?(²›O-ÿGK †ªo ,;^AßÐÉðè˜Êœ¼ ÓA`ÌJjÏ-?K…¯»=×4g¨wÔXû !Öhá6Š êÊÏq輨(p¥rH@7ž§ºt £°ç‘&ðW‹êƒ´Ý‡‰áÓ÷î'°„”\;`È&ñ‡ÂáÕ Œ¬š¶±cÅý‡|§ènÌzC²¬kƒ 3\ǵ¤Íí,ÎþÛEš ma»†„{ ‹àÙKš%Œb ôF@%4?RŽROµ;W¥UÁqGÃÊêªA¶„S£ºdI+þ¬*B‚Tx¡ø7x–WóÒ¾| ŽØ–X’"ÐéTÒä bM´dmømæÇuî_´;I´÷7LG ¹ë®Æ-¡JÆò*×›OÌQfõŒîÂ䉥3ĺ€Ràn,!gHŠZÀ…ÁÄŸ¯Ô'›jûèóŠÊ}™MJý,ÀI \%Ж)쉔J€U¹r¥nV)ö) R+¦*d¥Šfw/næÑøƒ+€¢u‹J XöwX4}¬YµŠƒ•ïBÉMϲzæO–'ük˜{#¦AYÝ ™9g)G¶r£øÕ™ßHá ÃY‡p߀sÍ=„ZqUTadF¿ÄŒV`´0‰ˆ)ŽK0"OñAY>–p,¦CäË^ÇúD€v½PìS$E°ƒZ²Xí˜3™^ÚB¿é)Çëôpiõh\ÅDµ«ï˜¤„QhIó/Ü+r‚~ÂF³÷½ÐÛjëLŽ|þs…¹}Ì çîeÚÝ/±h·S‡^’9eNõËP€3s•S¬D9[/ƒ@ët¬ï\\<f@ˆ¦Dc‘2âžxZ²`&1[†æ„Û…¹>ú¢–9õŽ0èÇdBc‹=R#Hè~{÷*¬jÓû„áå”ÊC¿òØ›pÐÀrX®Îó/}ÄÃCÁÎQ$œxÒÑ,”À°¿½ÄM,dÅæk¢¥HŒ¨XŒ¢ÑkTÍ ÂÃÙËÏÄtãügúpA}FÃÆo/ : os¥Í4N¹O‘¬¶dn×:­²@\Í[K¤XÒlÔ¿‘Š4Éâ97IŽ Oíe“Ûêøú–*ï‰ûŠ\¦G~éû¬'€SøšS€á¶|_€WzX”õV¨d;J‚áö ]‹¶&e—ßQ=1Tàw8^…H¹¶EC¾ÛfLÃÇ5^”©ÆÞýűîÀ„ Ì¡tqù•ÿ›®L( Q=Â÷ŸK$¿sM&ÙÏ¨Ï .Ž÷'N6 Uàm <ã>z 9ÎÉ„€EÃ@[˜_f›Tlú "ÒeD&Â.Á6¼+ù<–ɶô•’°ñ~C)ÁØOîÒèÔLÃfñ#®q§TfZËaœ“ŠÄ¡6œ_^q\ÖÊoöC{=´%ôí_¼«—n ›ú8.ufbyšá9ù#1D?² ucï5mN„âƒÍ-ꈙȱ!Ÿ#Î`0à ø…£Òó¨“ÕÑÛ½5•ñ‚µÓhtÄ!°þmí.»ÊÆ~•∠‚߈ðä¨ü¤0ËÕšÍý='*'£²wq#©õß‘\ÞY¢+¿+ߦe³í}ij)Xv®`Kà*ŸÆ>²@4à¾4 rW_¸VÊœ=’§<ÏTW–×u¯¡.­žug¦iù»ž¨L§Õ‡Ðáê–g–<\·Þ"ëÆwÐú×x‡ïeµç,ÖVø÷„<`ãêðÔS°‹²ž©?¹&–vw¿Á´×áFFÜõ,²'tœçaÒãê¿w8Ív·¤ì[îsÊ zbG<Ô;®U5<±œÑ¹Àj+ß-»k3¥ŸÞ* OœãèîWÉ•pµ¸W‹èzÌñ±Æ­Ì6æmêäàk˜£*d¿Åä+ŽÑ3ÉR{üŠ5äÏ‘ˆˆáV‰ë³Zðs©Xð²öu­1ýPâ[§P7,€bö‰Ý$™ø ¶Ös´\VüWÑõZÙgñÔÉXCš  †»ÜÏg6qI+úÏ3Òz2Œ»½vRK@„Õ[Bg·EPYv]æ¹4Hg?÷ˆ­â4Y´Lé°zždÈ*Ï”ö×Çî_[.¥ËŒoZhÀhY”öÛoÞù×úÑx>…rç— äs!Ø0z{=rŽêA2ôs™Á˜yÖˆUЍÕ}|;ᑺ1¹„QÑkáµN‚\×?Ko48$,l¤­XÉŒ@s·ºaNÅ0¡.[ìƒHB%áÒdÓžû R]ý1„eV*%J‰Ñ«)ŽRì“Æ OÍLØ‚ÕIµÌóôkC BEnDª¯‘mÎ38Ù®ïS-Ò:¦ó)û¢ƒ íÊ ÜœÌ7ç-©iÿ~*Ü\„NŸþUk]róX!™F%“AžiQÖ¯¹2¶,î™Y;ese›{””îáÍ‘5ŸŸ~0—`øS½îêNß Òå‚%(XC ˆr„ï¿‹)œíÊo€æäÖšñ>0uˆu€w©î²¼zk3EE? ¿’18펌}Íò.bj½Èðÿ¶ø'©è¿–¯Öh¶;^Æ bËJ¾5žâ·«jgŒ”ɧÍü$/=Ыxy;t ±¤mZ2&aƒ#úN\ˆ+IåÔ_.j X†H’YÍ$c"@[¸‘I8¡µ5swño´†·ø· d"uÓþÏÆ´ |m\ÝýCl +0®HÏ¥wC›;²]}þš†!cñûA—¥XS_eßAŽqTQ9L8{óÒpótCð}CÙþêÒ$î`9².ÏÑ#8NÚ_[qÜ9|‚pL$:Úµ_¯ ï,'º z„^²*VÐûRkÍC÷¤Zú4x±‘Y楊œ,¬OÚŒ9÷]OŒ¨òE¬ÍôQÔ¾™›eo{ËD…›]Ûýñœÿ|_G鳇É«f#¬¬ó¬ºv¤D㺠ÎûßRXb›½ŒJ~ò$(Œ¹W\ò ¶o¯‰½tðþF Á³å‚(ÐÑ?×N½ý¹ø`³Ëúj¦ü¦‡Jqç°šyouÐÍ׉CûÄëöÒr:Å;63?–Cþ>“\EÓÔè›,}ÔÌYrÜò‹8®"+¥fãÿý†3R£¢±Õ¾¾ö¯ù÷"ÑšMíâ'¬—$ñ×è;P‘’»p@;æ³–*½3¥ñ8ùÞ{)v¤n‹ç=ðúë<9ª”ïLP Móh: .~{`}(æ–³ü]«È~÷Ó~H>ìw{þn\T¡óÜ&°#šjmï&âu£²ͬೊÒtX?NåM.”±`DìX<æRL¿V"4”ÕÚû.î9˜fùo!R™¥a ÏP“gÎt ^…Ol‹ÃÝM5Ç”{3VwsB„nè UÓÝ¥@ÇW<Ö¬­‹Š¶£"ÃãýáÜi=‹âyæ¤ð5¦{ß+RÎFîûóˆÖò…Å$0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark libwmf-0.2.13/fonts/NimbusRoman-BoldItalic.afm000066400000000000000000003432331441723000300211330ustar00rootroot00000000000000StartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development Comment Creation Date: 5/17/2017 FontName NimbusRoman-BoldItalic FullName Nimbus Roman Bold Italic FamilyName Nimbus Roman Weight Bold ItalicAngle -15.0 IsFixedPitch false UnderlinePosition -109 UnderlineThickness 69 Version 1.00 Notice (URW)++,Copyright 2014 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -200 -324 1154 972 CapHeight 669 XHeight 449 Descender 0 Ascender 0 StartCharMetrics 855 C 32 ; WX 250 ; N space ; B 125 0 125 0 ; C 33 ; WX 389 ; N exclam ; B 67 -13 370 684 ; C 34 ; WX 555 ; N quotedbl ; B 136 398 536 685 ; C 35 ; WX 500 ; N numbersign ; B -33 0 533 700 ; C 36 ; WX 500 ; N dollar ; B -20 -100 497 733 ; C 37 ; WX 833 ; N percent ; B 39 -10 793 692 ; C 38 ; WX 778 ; N ampersand ; B 5 -19 699 682 ; C 39 ; WX 333 ; N quoteright ; B 98 369 302 685 ; C 40 ; WX 333 ; N parenleft ; B 28 -179 344 685 ; C 41 ; WX 333 ; N parenright ; B -44 -179 271 685 ; C 42 ; WX 500 ; N asterisk ; B 65 252 456 685 ; C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; C 44 ; WX 250 ; N comma ; B -60 -182 144 134 ; C 45 ; WX 333 ; N hyphen ; B 2 166 271 282 ; C 46 ; WX 250 ; N period ; B -9 -13 139 135 ; C 47 ; WX 278 ; N slash ; B -64 -18 342 685 ; C 48 ; WX 500 ; N zero ; B 17 -14 477 683 ; C 49 ; WX 500 ; N one ; B 5 0 419 683 ; C 50 ; WX 500 ; N two ; B -27 0 446 683 ; C 51 ; WX 500 ; N three ; B -15 -13 450 683 ; C 52 ; WX 500 ; N four ; B -15 0 503 683 ; C 53 ; WX 500 ; N five ; B -11 -13 487 669 ; C 54 ; WX 500 ; N six ; B 23 -15 509 679 ; C 55 ; WX 500 ; N seven ; B 52 0 525 669 ; C 56 ; WX 500 ; N eight ; B 3 -13 476 683 ; C 57 ; WX 500 ; N nine ; B -12 -10 475 683 ; C 58 ; WX 333 ; N colon ; B 23 -13 264 459 ; C 59 ; WX 333 ; N semicolon ; B -25 -183 264 459 ; C 60 ; WX 570 ; N less ; B 51 26 553 601 ; C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; C 62 ; WX 570 ; N greater ; B 9 26 511 601 ; C 63 ; WX 500 ; N question ; B 79 -13 470 684 ; C 64 ; WX 832 ; N at ; B 63 -18 770 685 ; C 65 ; WX 667 ; N A ; B -67 0 593 683 ; C 66 ; WX 667 ; N B ; B -24 0 624 669 ; C 67 ; WX 667 ; N C ; B 32 -18 677 685 ; C 68 ; WX 722 ; N D ; B -46 0 685 669 ; C 69 ; WX 667 ; N E ; B -27 0 653 669 ; C 70 ; WX 667 ; N F ; B -13 0 660 669 ; C 71 ; WX 722 ; N G ; B 21 -18 706 685 ; C 72 ; WX 778 ; N H ; B -24 0 799 669 ; C 73 ; WX 389 ; N I ; B -32 0 406 669 ; C 74 ; WX 500 ; N J ; B -46 -99 524 669 ; C 75 ; WX 667 ; N K ; B -21 0 702 669 ; C 76 ; WX 611 ; N L ; B -22 0 590 669 ; C 77 ; WX 889 ; N M ; B -29 -12 917 669 ; C 78 ; WX 722 ; N N ; B -27 -15 748 669 ; C 79 ; WX 722 ; N O ; B 27 -18 691 685 ; C 80 ; WX 611 ; N P ; B -27 0 613 669 ; C 81 ; WX 722 ; N Q ; B 27 -208 691 685 ; C 82 ; WX 667 ; N R ; B -29 0 623 669 ; C 83 ; WX 556 ; N S ; B 2 -18 526 685 ; C 84 ; WX 611 ; N T ; B 50 0 650 669 ; C 85 ; WX 722 ; N U ; B 67 -18 744 669 ; C 86 ; WX 667 ; N V ; B 65 -18 715 669 ; C 87 ; WX 889 ; N W ; B 65 -18 940 669 ; C 88 ; WX 667 ; N X ; B -24 0 694 669 ; C 89 ; WX 611 ; N Y ; B 73 0 659 669 ; C 90 ; WX 611 ; N Z ; B -11 0 590 669 ; C 91 ; WX 333 ; N bracketleft ; B -37 -159 362 674 ; C 92 ; WX 278 ; N backslash ; B -1 -18 279 685 ; C 93 ; WX 333 ; N bracketright ; B -56 -157 343 674 ; C 94 ; WX 570 ; N asciicircum ; B 95 307 536 676 ; C 95 ; WX 500 ; N underscore ; B -25 -143 472 -74 ; C 96 ; WX 333 ; N quoteleft ; B 128 369 332 685 ; C 97 ; WX 500 ; N a ; B -21 -14 455 462 ; C 98 ; WX 500 ; N b ; B -14 -13 444 699 ; C 99 ; WX 444 ; N c ; B -5 -13 392 462 ; C 100 ; WX 500 ; N d ; B -21 -13 517 699 ; C 101 ; WX 444 ; N e ; B 5 -13 398 462 ; C 102 ; WX 333 ; N f ; B -169 -205 446 698 ; C 103 ; WX 500 ; N g ; B -52 -203 478 462 ; C 104 ; WX 556 ; N h ; B -13 -9 498 699 ; C 105 ; WX 278 ; N i ; B 2 -9 263 684 ; C 106 ; WX 278 ; N j ; B -189 -207 279 684 ; C 107 ; WX 500 ; N k ; B -23 -8 483 699 ; C 108 ; WX 278 ; N l ; B 2 -9 290 699 ; C 109 ; WX 778 ; N m ; B -14 -9 722 462 ; C 110 ; WX 556 ; N n ; B -6 -9 493 462 ; C 111 ; WX 500 ; N o ; B -3 -13 441 462 ; C 112 ; WX 500 ; N p ; B -120 -205 446 462 ; C 113 ; WX 500 ; N q ; B 1 -205 471 462 ; C 114 ; WX 389 ; N r ; B -21 0 389 462 ; C 115 ; WX 389 ; N s ; B -19 -13 333 462 ; C 116 ; WX 278 ; N t ; B -11 -9 281 594 ; C 117 ; WX 556 ; N u ; B 15 -9 492 462 ; C 118 ; WX 444 ; N v ; B 16 -13 401 462 ; C 119 ; WX 667 ; N w ; B 16 -13 614 462 ; C 120 ; WX 500 ; N x ; B -46 -13 469 462 ; C 121 ; WX 444 ; N y ; B -94 -205 392 462 ; C 122 ; WX 389 ; N z ; B -43 -78 368 449 ; C 123 ; WX 348 ; N braceleft ; B 5 -187 436 686 ; C 124 ; WX 220 ; N bar ; B 66 -250 154 748 ; C 125 ; WX 348 ; N braceright ; B -129 -187 302 686 ; C 126 ; WX 570 ; N asciitilde ; B 53 180 520 337 ; C 161 ; WX 389 ; N exclamdown ; B 19 -205 322 492 ; C 162 ; WX 500 ; N cent ; B 42 -143 439 576 ; C 163 ; WX 500 ; N sterling ; B -32 -12 510 683 ; C 164 ; WX 167 ; N fraction ; B -169 -14 324 683 ; C 165 ; WX 500 ; N yen ; B 33 0 628 669 ; C 166 ; WX 500 ; N florin ; B -87 -156 537 707 ; C 167 ; WX 500 ; N section ; B 36 -143 459 685 ; C 168 ; WX 500 ; N currency ; B 34 27 476 469 ; C 169 ; WX 278 ; N quotesingle ; B 128 398 268 685 ; C 170 ; WX 500 ; N quotedblleft ; B 53 369 513 685 ; C 171 ; WX 500 ; N guillemotleft ; B 12 32 468 415 ; C 172 ; WX 333 ; N guilsinglleft ; B 32 32 303 415 ; C 173 ; WX 333 ; N guilsinglright ; B 10 32 281 415 ; C 174 ; WX 556 ; N fi ; B -188 -205 514 703 ; C 175 ; WX 556 ; N fl ; B -186 -205 553 704 ; C 177 ; WX 500 ; N endash ; B -40 178 477 269 ; C 178 ; WX 500 ; N dagger ; B 91 -145 494 685 ; C 179 ; WX 500 ; N daggerdbl ; B 10 -139 493 685 ; C 180 ; WX 250 ; N periodcentered ; B 51 257 199 405 ; C 182 ; WX 500 ; N paragraph ; B -57 -193 562 669 ; C 183 ; WX 350 ; N bullet ; B 26 201 331 506 ; C 184 ; WX 333 ; N quotesinglbase ; B -5 -182 199 134 ; C 185 ; WX 500 ; N quotedblbase ; B -57 -182 403 134 ; C 186 ; WX 500 ; N quotedblright ; B 53 369 513 685 ; C 187 ; WX 500 ; N guillemotright ; B 12 32 468 415 ; C 188 ; WX 1000 ; N ellipsis ; B 40 -13 852 135 ; C 189 ; WX 1000 ; N perthousand ; B 7 -29 996 706 ; C 191 ; WX 500 ; N questiondown ; B 30 -205 421 492 ; C 193 ; WX 333 ; N grave ; B 85 516 297 697 ; C 194 ; WX 333 ; N acute ; B 139 516 379 697 ; C 195 ; WX 333 ; N circumflex ; B 40 516 367 690 ; C 196 ; WX 333 ; N tilde ; B 48 536 407 655 ; C 197 ; WX 333 ; N macron ; B 51 553 393 623 ; C 198 ; WX 333 ; N breve ; B 71 516 387 678 ; C 199 ; WX 333 ; N dotaccent ; B 163 525 293 655 ; C 200 ; WX 333 ; N dieresis ; B 55 525 397 655 ; C 202 ; WX 333 ; N ring ; B 127 541 340 754 ; C 203 ; WX 333 ; N cedilla ; B -80 -218 156 5 ; C 205 ; WX 333 ; N hungarumlaut ; B 69 516 498 697 ; C 206 ; WX 333 ; N ogonek ; B -40 -173 189 44 ; C 207 ; WX 333 ; N caron ; B 79 516 411 690 ; C 208 ; WX 1000 ; N emdash ; B -40 178 977 269 ; C 225 ; WX 944 ; N AE ; B -64 0 918 669 ; C 227 ; WX 266 ; N ordfeminine ; B 16 399 330 685 ; C 232 ; WX 611 ; N Lslash ; B -22 0 590 669 ; C 233 ; WX 722 ; N Oslash ; B 27 -125 691 764 ; C 234 ; WX 944 ; N OE ; B 23 -11 946 677 ; C 235 ; WX 300 ; N ordmasculine ; B 56 400 350 685 ; C 241 ; WX 722 ; N ae ; B -5 -13 673 462 ; C 245 ; WX 278 ; N dotlessi ; B 2 -9 238 462 ; C 248 ; WX 278 ; N lslash ; B -13 -9 301 699 ; C 249 ; WX 500 ; N oslash ; B -3 -119 441 560 ; C 250 ; WX 722 ; N oe ; B 6 -13 674 462 ; C 251 ; WX 500 ; N germandbls ; B -200 -200 473 705 ; C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ; C -1 ; WX 944 ; N AEacute ; B -64 0 918 916 ; C -1 ; WX 667 ; N Aacute ; B -67 0 593 904 ; C -1 ; WX 667 ; N Abreve ; B -67 0 593 888 ; C -1 ; WX 667 ; N Acircumflex ; B -67 0 593 897 ; C -1 ; WX 667 ; N Adieresis ; B -67 0 593 862 ; C -1 ; WX 667 ; N Agrave ; B -67 0 593 904 ; C -1 ; WX 667 ; N Alpha ; B -22 0 538 662 ; C -1 ; WX 667 ; N Alphatonos ; B -22 0 538 672 ; C -1 ; WX 667 ; N Amacron ; B -67 0 593 833 ; C -1 ; WX 667 ; N Aogonek ; B -67 -173 729 683 ; C -1 ; WX 667 ; N Aring ; B -67 0 593 949 ; C -1 ; WX 667 ; N Aringacute ; B -67 0 593 972 ; C -1 ; WX 667 ; N Atilde ; B -67 0 593 862 ; C -1 ; WX 667 ; N Beta ; B 28 0 621 662 ; C -1 ; WX 667 ; N Cacute ; B 32 -18 677 907 ; C -1 ; WX 667 ; N Ccaron ; B 32 -18 677 900 ; C -1 ; WX 667 ; N Ccedilla ; B 32 -218 677 685 ; C -1 ; WX 674 ; N Ccircumflex ; B 32 -18 677 900 ; C -1 ; WX 667 ; N Cdotaccent ; B 32 -18 677 865 ; C -1 ; WX 667 ; N Chi ; B 13 0 710 662 ; C -1 ; WX 722 ; N Dcaron ; B -46 0 685 900 ; C -1 ; WX 722 ; N Dcroat ; B -31 0 700 669 ; C -1 ; WX 667 ; N Delta ; B 33 0 635 688 ; C -1 ; WX 667 ; N Eacute ; B -27 0 653 904 ; C -1 ; WX 667 ; N Ebreve ; B -27 0 653 888 ; C -1 ; WX 667 ; N Ecaron ; B -27 0 653 900 ; C -1 ; WX 667 ; N Ecircumflex ; B -27 0 653 897 ; C -1 ; WX 667 ; N Edieresis ; B -27 0 653 862 ; C -1 ; WX 667 ; N Edotaccent ; B -27 0 653 865 ; C -1 ; WX 667 ; N Egrave ; B -27 0 653 904 ; C -1 ; WX 667 ; N Emacron ; B -27 0 653 833 ; C -1 ; WX 722 ; N Eng ; B -27 -207 748 669 ; C -1 ; WX 667 ; N Eogonek ; B -27 -173 667 669 ; C -1 ; WX 667 ; N Epsilon ; B 44 0 667 662 ; C -1 ; WX 777 ; N Epsilontonos ; B 99 0 788 672 ; C -1 ; WX 778 ; N Eta ; B 24 0 811 662 ; C -1 ; WX 895 ; N Etatonos ; B 84 0 936 672 ; C -1 ; WX 722 ; N Eth ; B -31 0 700 669 ; C -1 ; WX 500 ; N Euro ; B 53 -5 666 689 ; C -1 ; WX 604 ; N Gamma ; B -45 0 667 662 ; C -1 ; WX 722 ; N Gbreve ; B 21 -18 706 888 ; C -1 ; WX 730 ; N Gcircumflex ; B 21 -18 706 897 ; C -1 ; WX 722 ; N Gcommaaccent ; B 21 -324 706 685 ; C -1 ; WX 722 ; N Gdotaccent ; B 21 -18 706 865 ; C -1 ; WX 722 ; N H18533 ; B 147 67 577 497 ; C -1 ; WX 500 ; N H18543 ; B 68 178 433 543 ; C -1 ; WX 500 ; N H18551 ; B 68 178 433 543 ; C -1 ; WX 778 ; N Hbar ; B -24 0 799 669 ; C -1 ; WX 786 ; N Hcircumflex ; B -23 0 800 897 ; C -1 ; WX 860 ; N IJ ; B 44 -9 881 662 ; C -1 ; WX 389 ; N Iacute ; B -32 0 407 907 ; C -1 ; WX 389 ; N Ibreve ; B -32 0 453 888 ; C -1 ; WX 389 ; N Icircumflex ; B -32 0 420 897 ; C -1 ; WX 389 ; N Idieresis ; B -32 0 445 862 ; C -1 ; WX 389 ; N Idotaccent ; B -32 0 406 865 ; C -1 ; WX 722 ; N Ifraktur ; B 73 -71 650 695 ; C -1 ; WX 389 ; N Igrave ; B -32 0 406 904 ; C -1 ; WX 389 ; N Imacron ; B -32 0 461 833 ; C -1 ; WX 389 ; N Iogonek ; B -32 -173 406 669 ; C -1 ; WX 389 ; N Iota ; B 11 0 434 662 ; C -1 ; WX 389 ; N Iotadieresis ; B 11 0 489 830 ; C -1 ; WX 506 ; N Iotatonos ; B 71 0 559 672 ; C -1 ; WX 389 ; N Itilde ; B -31 0 487 856 ; C -1 ; WX 505 ; N Jcircumflex ; B -43 -99 564 920 ; C -1 ; WX 667 ; N Kappa ; B 27 0 723 662 ; C -1 ; WX 667 ; N Kcommaaccent ; B -21 -324 702 669 ; C -1 ; WX 611 ; N Lacute ; B -22 0 590 907 ; C -1 ; WX 667 ; N Lambda ; B -22 0 538 662 ; C -1 ; WX 611 ; N Lcaron ; B -22 0 651 685 ; C -1 ; WX 611 ; N Lcommaaccent ; B -22 -324 590 669 ; C -1 ; WX 611 ; N Ldot ; B -22 0 590 669 ; C -1 ; WX 889 ; N Mu ; B 2 0 937 662 ; C -1 ; WX 722 ; N Nacute ; B -27 -15 748 907 ; C -1 ; WX 722 ; N Ncaron ; B -27 -15 748 900 ; C -1 ; WX 722 ; N Ncommaaccent ; B -27 -324 748 669 ; C -1 ; WX 722 ; N Ntilde ; B -27 -15 748 862 ; C -1 ; WX 722 ; N Nu ; B 14 0 762 662 ; C -1 ; WX 722 ; N Oacute ; B 27 -18 691 904 ; C -1 ; WX 722 ; N Obreve ; B 27 -18 691 888 ; C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 691 897 ; C -1 ; WX 722 ; N Odieresis ; B 27 -18 691 862 ; C -1 ; WX 722 ; N Ograve ; B 27 -18 691 904 ; C -1 ; WX 722 ; N Ohungarumlaut ; B 27 -18 693 907 ; C -1 ; WX 722 ; N Omacron ; B 27 -18 691 833 ; C -1 ; WX 785 ; N Omegatonos ; B 68 0 778 672 ; C -1 ; WX 722 ; N Omicron ; B 72 -9 700 672 ; C -1 ; WX 731 ; N Omicrontonos ; B 48 -9 762 672 ; C -1 ; WX 722 ; N Oslashacute ; B 27 -125 691 914 ; C -1 ; WX 722 ; N Otilde ; B 27 -18 691 862 ; C -1 ; WX 789 ; N Phi ; B 47 -30 795 692 ; C -1 ; WX 778 ; N Pi ; B 24 0 811 662 ; C -1 ; WX 800 ; N Psi ; B 115 0 900 676 ; C -1 ; WX 667 ; N Racute ; B -29 0 623 907 ; C -1 ; WX 667 ; N Rcaron ; B -29 0 623 900 ; C -1 ; WX 667 ; N Rcommaaccent ; B -29 -324 623 669 ; C -1 ; WX 778 ; N Rfraktur ; B 72 -6 693 604 ; C -1 ; WX 611 ; N Rho ; B 29 0 622 662 ; C -1 ; WX 1000 ; N SF010000 ; B 467 -250 1000 283 ; C -1 ; WX 1000 ; N SF020000 ; B 467 217 1000 750 ; C -1 ; WX 1000 ; N SF030000 ; B 0 -250 533 283 ; C -1 ; WX 1000 ; N SF040000 ; B 0 217 533 750 ; C -1 ; WX 1000 ; N SF050000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF060000 ; B 0 -250 1000 283 ; C -1 ; WX 1000 ; N SF070000 ; B 0 217 1000 750 ; C -1 ; WX 1000 ; N SF080000 ; B 467 -250 1000 750 ; C -1 ; WX 1000 ; N SF090000 ; B 0 -250 533 750 ; C -1 ; WX 1000 ; N SF100000 ; B 0 217 1000 283 ; C -1 ; WX 1000 ; N SF110000 ; B 467 -250 533 750 ; C -1 ; WX 1000 ; N SF190000 ; B 0 -250 533 750 ; C -1 ; WX 1000 ; N SF200000 ; B 0 -250 599 750 ; C -1 ; WX 1000 ; N SF210000 ; B 0 -250 599 283 ; C -1 ; WX 1000 ; N SF220000 ; B 0 -250 533 349 ; C -1 ; WX 1000 ; N SF230000 ; B 0 -250 599 750 ; C -1 ; WX 1000 ; N SF240000 ; B 401 -250 599 750 ; C -1 ; WX 1000 ; N SF250000 ; B 0 -250 599 349 ; C -1 ; WX 1000 ; N SF260000 ; B 0 151 599 750 ; C -1 ; WX 1000 ; N SF270000 ; B 0 217 599 750 ; C -1 ; WX 1000 ; N SF280000 ; B 0 151 533 750 ; C -1 ; WX 1000 ; N SF360000 ; B 467 -250 1000 750 ; C -1 ; WX 1000 ; N SF370000 ; B 401 -250 1000 750 ; C -1 ; WX 1000 ; N SF380000 ; B 401 151 1000 750 ; C -1 ; WX 1000 ; N SF390000 ; B 401 -250 1000 349 ; C -1 ; WX 1000 ; N SF400000 ; B 0 151 1000 750 ; C -1 ; WX 1000 ; N SF410000 ; B 0 -250 1000 349 ; C -1 ; WX 1000 ; N SF420000 ; B 401 -250 1000 750 ; C -1 ; WX 1000 ; N SF430000 ; B 0 151 1000 349 ; C -1 ; WX 1000 ; N SF440000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF450000 ; B 0 151 1000 750 ; C -1 ; WX 1000 ; N SF460000 ; B 0 217 1000 750 ; C -1 ; WX 1000 ; N SF470000 ; B 0 -250 1000 349 ; C -1 ; WX 1000 ; N SF480000 ; B 0 -250 1000 283 ; C -1 ; WX 1000 ; N SF490000 ; B 401 217 1000 750 ; C -1 ; WX 1000 ; N SF500000 ; B 467 151 1000 750 ; C -1 ; WX 1000 ; N SF510000 ; B 467 -250 1000 349 ; C -1 ; WX 1000 ; N SF520000 ; B 401 -250 1000 283 ; C -1 ; WX 1000 ; N SF530000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF540000 ; B 0 -250 1000 750 ; C -1 ; WX 556 ; N Sacute ; B 2 -18 526 907 ; C -1 ; WX 556 ; N Scaron ; B 2 -18 526 897 ; C -1 ; WX 556 ; N Scedilla ; B 2 -218 526 685 ; C -1 ; WX 562 ; N Scircumflex ; B 3 -18 527 897 ; C -1 ; WX 556 ; N Scommaaccent ; B 2 -324 526 685 ; C -1 ; WX 619 ; N Sigma ; B -100 0 618 663 ; C -1 ; WX 611 ; N Tau ; B 89 0 650 662 ; C -1 ; WX 611 ; N Tbar ; B 50 0 650 669 ; C -1 ; WX 611 ; N Tcaron ; B 50 0 650 900 ; C -1 ; WX 611 ; N Tcommaaccent ; B 50 -218 650 669 ; C -1 ; WX 763 ; N Theta ; B 17 -17 725 679 ; C -1 ; WX 611 ; N Thorn ; B -27 0 573 669 ; C -1 ; WX 722 ; N Uacute ; B 67 -18 744 904 ; C -1 ; WX 730 ; N Ubreve ; B 67 -18 744 895 ; C -1 ; WX 722 ; N Ucircumflex ; B 67 -18 744 897 ; C -1 ; WX 722 ; N Udieresis ; B 67 -18 744 862 ; C -1 ; WX 722 ; N Ugrave ; B 67 -18 744 904 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 67 -18 744 907 ; C -1 ; WX 722 ; N Umacron ; B 67 -18 744 833 ; C -1 ; WX 722 ; N Uogonek ; B 67 -173 744 669 ; C -1 ; WX 611 ; N Upsilon ; B 115 0 706 662 ; C -1 ; WX 611 ; N Upsilondieresis ; B 115 0 706 830 ; C -1 ; WX 750 ; N Upsilontonos ; B 54 0 822 672 ; C -1 ; WX 722 ; N Uring ; B 67 -18 744 964 ; C -1 ; WX 722 ; N Utilde ; B 67 -18 744 859 ; C -1 ; WX 889 ; N Wacute ; B 65 -18 940 907 ; C -1 ; WX 889 ; N Wcircumflex ; B 65 -18 940 900 ; C -1 ; WX 889 ; N Wdieresis ; B 65 -18 940 865 ; C -1 ; WX 889 ; N Wgrave ; B 65 -18 940 907 ; C -1 ; WX 659 ; N Xi ; B 45 0 675 662 ; C -1 ; WX 611 ; N Yacute ; B 73 0 659 904 ; C -1 ; WX 611 ; N Ycircumflex ; B 73 0 659 900 ; C -1 ; WX 611 ; N Ydieresis ; B 73 0 659 862 ; C -1 ; WX 611 ; N Ygrave ; B 73 0 659 907 ; C -1 ; WX 611 ; N Zacute ; B -11 0 590 907 ; C -1 ; WX 611 ; N Zcaron ; B -11 0 590 897 ; C -1 ; WX 611 ; N Zdotaccent ; B -11 0 590 865 ; C -1 ; WX 611 ; N Zeta ; B -18 0 655 662 ; C -1 ; WX 500 ; N aacute ; B -21 -14 463 697 ; C -1 ; WX 500 ; N abreve ; B -21 -14 471 678 ; C -1 ; WX 500 ; N acircumflex ; B -21 -14 455 690 ; C -1 ; WX 500 ; N adieresis ; B -21 -14 471 655 ; C -1 ; WX 722 ; N aeacute ; B -5 -13 673 697 ; C -1 ; WX 1000 ; N afii00208 ; B -40 178 977 269 ; C -1 ; WX 667 ; N afii10017 ; B -22 0 538 662 ; C -1 ; WX 635 ; N afii10018 ; B 31 0 644 662 ; C -1 ; WX 667 ; N afii10019 ; B 28 0 621 662 ; C -1 ; WX 604 ; N afii10020 ; B 52 0 672 662 ; C -1 ; WX 683 ; N afii10021 ; B -85 -169 718 662 ; C -1 ; WX 667 ; N afii10022 ; B 44 0 667 662 ; C -1 ; WX 667 ; N afii10023 ; B 44 0 667 853 ; C -1 ; WX 918 ; N afii10024 ; B -47 0 1004 662 ; C -1 ; WX 509 ; N afii10025 ; B -15 -13 513 675 ; C -1 ; WX 778 ; N afii10026 ; B 25 0 815 662 ; C -1 ; WX 778 ; N afii10027 ; B 23 0 813 865 ; C -1 ; WX 678 ; N afii10028 ; B 28 0 729 662 ; C -1 ; WX 686 ; N afii10029 ; B -36 -11 714 662 ; C -1 ; WX 889 ; N afii10030 ; B 2 0 943 662 ; C -1 ; WX 778 ; N afii10031 ; B 24 0 811 662 ; C -1 ; WX 722 ; N afii10032 ; B 71 -9 699 669 ; C -1 ; WX 778 ; N afii10033 ; B 32 0 817 662 ; C -1 ; WX 611 ; N afii10034 ; B 29 0 622 662 ; C -1 ; WX 667 ; N afii10035 ; B 81 -10 699 675 ; C -1 ; WX 611 ; N afii10036 ; B 89 0 650 662 ; C -1 ; WX 696 ; N afii10037 ; B 85 -10 790 662 ; C -1 ; WX 850 ; N afii10038 ; B 76 -30 824 692 ; C -1 ; WX 667 ; N afii10039 ; B 13 0 710 662 ; C -1 ; WX 778 ; N afii10040 ; B 26 -169 811 662 ; C -1 ; WX 748 ; N afii10041 ; B 162 0 782 662 ; C -1 ; WX 1126 ; N afii10042 ; B 33 0 1147 662 ; C -1 ; WX 1126 ; N afii10043 ; B 40 -169 1154 662 ; C -1 ; WX 760 ; N afii10044 ; B 137 0 679 662 ; C -1 ; WX 969 ; N afii10045 ; B 13 0 1001 662 ; C -1 ; WX 634 ; N afii10046 ; B 17 0 559 662 ; C -1 ; WX 651 ; N afii10047 ; B 11 -13 625 675 ; C -1 ; WX 1056 ; N afii10048 ; B 18 -9 1032 669 ; C -1 ; WX 689 ; N afii10049 ; B -25 0 720 662 ; C -1 ; WX 470 ; N afii10050 ; B 51 0 697 760 ; C -1 ; WX 818 ; N afii10051 ; B 105 -7 739 662 ; C -1 ; WX 604 ; N afii10052 ; B 52 0 672 894 ; C -1 ; WX 657 ; N afii10053 ; B 68 -11 691 675 ; C -1 ; WX 556 ; N afii10054 ; B 5 -8 572 669 ; C -1 ; WX 389 ; N afii10055 ; B 11 0 434 662 ; C -1 ; WX 389 ; N afii10056 ; B 11 0 495 853 ; C -1 ; WX 500 ; N afii10057 ; B 3 -9 493 662 ; C -1 ; WX 908 ; N afii10058 ; B -45 -11 816 662 ; C -1 ; WX 976 ; N afii10059 ; B 28 0 925 662 ; C -1 ; WX 811 ; N afii10060 ; B 73 0 726 662 ; C -1 ; WX 678 ; N afii10061 ; B 33 0 729 894 ; C -1 ; WX 696 ; N afii10062 ; B 85 -10 790 865 ; C -1 ; WX 500 ; N afii10065 ; B 36 -10 451 455 ; C -1 ; WX 499 ; N afii10066 ; B 74 -10 537 679 ; C -1 ; WX 447 ; N afii10067 ; B 44 -10 430 455 ; C -1 ; WX 369 ; N afii10068 ; B 16 -10 354 455 ; C -1 ; WX 496 ; N afii10069 ; B 62 -10 466 681 ; C -1 ; WX 444 ; N afii10070 ; B 48 -10 419 455 ; C -1 ; WX 444 ; N afii10071 ; B 48 -10 471 660 ; C -1 ; WX 952 ; N afii10072 ; B 72 -10 896 455 ; C -1 ; WX 390 ; N afii10073 ; B 13 -10 369 455 ; C -1 ; WX 556 ; N afii10074 ; B 78 -10 500 458 ; C -1 ; WX 556 ; N afii10075 ; B 78 -10 500 660 ; C -1 ; WX 507 ; N afii10076 ; B 42 -10 512 458 ; C -1 ; WX 513 ; N afii10077 ; B 1 -10 452 445 ; C -1 ; WX 685 ; N afii10078 ; B -32 -10 643 458 ; C -1 ; WX 555 ; N afii10079 ; B 57 -10 515 458 ; C -1 ; WX 500 ; N afii10080 ; B 55 -10 452 455 ; C -1 ; WX 556 ; N afii10081 ; B 50 -10 482 458 ; C -1 ; WX 500 ; N afii10082 ; B -61 -171 456 455 ; C -1 ; WX 444 ; N afii10083 ; B 46 -10 416 455 ; C -1 ; WX 778 ; N afii10084 ; B 37 -10 712 458 ; C -1 ; WX 444 ; N afii10085 ; B -58 -171 431 455 ; C -1 ; WX 716 ; N afii10086 ; B 41 -179 679 679 ; C -1 ; WX 500 ; N afii10087 ; B -9 -10 465 461 ; C -1 ; WX 556 ; N afii10088 ; B 86 -178 508 458 ; C -1 ; WX 525 ; N afii10089 ; B 91 -10 499 458 ; C -1 ; WX 833 ; N afii10090 ; B 120 -10 755 458 ; C -1 ; WX 833 ; N afii10091 ; B 107 -178 747 458 ; C -1 ; WX 527 ; N afii10092 ; B 54 -10 449 464 ; C -1 ; WX 694 ; N afii10093 ; B 80 -10 666 458 ; C -1 ; WX 457 ; N afii10094 ; B 72 -10 411 458 ; C -1 ; WX 415 ; N afii10095 ; B -2 -10 392 455 ; C -1 ; WX 730 ; N afii10096 ; B 55 -10 691 458 ; C -1 ; WX 515 ; N afii10097 ; B -30 -10 474 444 ; C -1 ; WX 369 ; N afii10098 ; B -16 0 452 508 ; C -1 ; WX 523 ; N afii10099 ; B 53 -182 488 679 ; C -1 ; WX 393 ; N afii10100 ; B 28 -10 442 701 ; C -1 ; WX 415 ; N afii10101 ; B 42 -10 406 455 ; C -1 ; WX 389 ; N afii10102 ; B 15 -13 361 457 ; C -1 ; WX 278 ; N afii10103 ; B 40 -9 299 677 ; C -1 ; WX 278 ; N afii10104 ; B 33 -10 372 660 ; C -1 ; WX 278 ; N afii10105 ; B -110 -171 282 673 ; C -1 ; WX 659 ; N afii10106 ; B -14 -10 578 445 ; C -1 ; WX 713 ; N afii10107 ; B 53 -10 649 458 ; C -1 ; WX 556 ; N afii10108 ; B 51 -10 492 679 ; C -1 ; WX 507 ; N afii10109 ; B 42 -10 540 701 ; C -1 ; WX 444 ; N afii10110 ; B -58 -171 431 660 ; C -1 ; WX 778 ; N afii10145 ; B 26 -175 811 662 ; C -1 ; WX 556 ; N afii10193 ; B 88 -178 510 458 ; C -1 ; WX 448 ; N afii10846 ; B 45 -10 435 462 ; C -1 ; WX 833 ; N afii61248 ; B 69 -27 812 684 ; C -1 ; WX 427 ; N afii61289 ; B 63 -21 422 666 ; C -1 ; WX 915 ; N afii61352 ; B -69 -13 901 675 ; C -1 ; WX 500 ; N agrave ; B -21 -14 455 697 ; C -1 ; WX 500 ; N aleph ; B 28 0 473 631 ; C -1 ; WX 553 ; N alpha ; B 45 -8 503 453 ; C -1 ; WX 553 ; N alphatonos ; B 47 -8 505 735 ; C -1 ; WX 500 ; N amacron ; B -21 -14 477 623 ; C -1 ; WX 1000 ; N angle ; B 211 0 789 417 ; C -1 ; WX 333 ; N angleleft ; B 58 -125 275 602 ; C -1 ; WX 333 ; N angleright ; B 58 -125 275 602 ; C -1 ; WX 500 ; N aogonek ; B -21 -173 500 462 ; C -1 ; WX 1000 ; N approxequal ; B 269 82 731 424 ; C -1 ; WX 500 ; N aring ; B -21 -14 455 754 ; C -1 ; WX 500 ; N aringacute ; B -21 -14 501 943 ; C -1 ; WX 722 ; N arrowboth ; B 0 221 722 553 ; C -1 ; WX 722 ; N arrowdblboth ; B 3 73 719 517 ; C -1 ; WX 722 ; N arrowdbldown ; B 139 0 583 648 ; C -1 ; WX 722 ; N arrowdblleft ; B 9 73 714 517 ; C -1 ; WX 722 ; N arrowdblright ; B 9 73 714 517 ; C -1 ; WX 722 ; N arrowdblup ; B 139 0 583 648 ; C -1 ; WX 722 ; N arrowdown ; B 193 0 525 722 ; C -1 ; WX 722 ; N arrowleft ; B 0 223 722 555 ; C -1 ; WX 722 ; N arrowright ; B 0 223 722 555 ; C -1 ; WX 722 ; N arrowup ; B 193 0 525 722 ; C -1 ; WX 722 ; N arrowupdn ; B 196 0 528 722 ; C -1 ; WX 722 ; N arrowupdnbse ; B 196 -153 528 691 ; C -1 ; WX 1000 ; N asteriskmath ; B 357 101 643 382 ; C -1 ; WX 500 ; N atilde ; B -21 -14 491 655 ; C -1 ; WX 512 ; N beta ; B -27 -177 494 681 ; C -1 ; WX 1000 ; N block ; B 0 -250 1000 750 ; C -1 ; WX 220 ; N brokenbar ; B 97 -19 184 684 ; C -1 ; WX 444 ; N cacute ; B -5 -13 444 697 ; C -1 ; WX 1000 ; N carriagereturn ; B 162 223 884 601 ; C -1 ; WX 444 ; N ccaron ; B -5 -13 468 690 ; C -1 ; WX 444 ; N ccedilla ; B -24 -218 392 462 ; C -1 ; WX 448 ; N ccircumflex ; B -3 -13 464 690 ; C -1 ; WX 444 ; N cdotaccent ; B -5 -13 392 655 ; C -1 ; WX 465 ; N chi ; B -70 -192 461 453 ; C -1 ; WX 722 ; N circle ; B 102 0 621 519 ; C -1 ; WX 1000 ; N circlemultiply ; B 141 -24 858 695 ; C -1 ; WX 1000 ; N club ; B 135 0 865 729 ; C -1 ; WX 1000 ; N congruent ; B 183 71 815 477 ; C -1 ; WX 747 ; N copyright ; B 30 -18 718 685 ; C -1 ; WX 626 ; N dcaron ; B -21 -13 670 699 ; C -1 ; WX 500 ; N dcroat ; B -22 -13 539 699 ; C -1 ; WX 400 ; N degree ; B 83 397 369 683 ; C -1 ; WX 512 ; N delta ; B 20 -12 478 677 ; C -1 ; WX 1000 ; N diamond ; B 237 -28 791 757 ; C -1 ; WX 333 ; N dieresistonos ; B 106 469 379 715 ; C -1 ; WX 570 ; N divide ; B 33 -29 537 535 ; C -1 ; WX 1000 ; N dkshade ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N dnblock ; B 0 -250 1000 250 ; C -1 ; WX 444 ; N eacute ; B 5 -13 435 697 ; C -1 ; WX 444 ; N ebreve ; B 5 -13 455 678 ; C -1 ; WX 444 ; N ecaron ; B 5 -13 467 690 ; C -1 ; WX 444 ; N ecircumflex ; B 5 -13 423 690 ; C -1 ; WX 444 ; N edieresis ; B 5 -13 443 655 ; C -1 ; WX 444 ; N edotaccent ; B 5 -13 398 655 ; C -1 ; WX 444 ; N egrave ; B 5 -13 398 697 ; C -1 ; WX 300 ; N eightsuperior ; B 1 263 287 681 ; C -1 ; WX 1000 ; N element ; B 233 0 767 494 ; C -1 ; WX 444 ; N emacron ; B 5 -13 449 623 ; C -1 ; WX 1000 ; N emptyset ; B 101 -13 902 680 ; C -1 ; WX 528 ; N eng ; B 0 -207 480 462 ; C -1 ; WX 444 ; N eogonek ; B 5 -173 404 462 ; C -1 ; WX 410 ; N epsilon ; B 14 -8 391 453 ; C -1 ; WX 410 ; N epsilontonos ; B 14 -8 391 735 ; C -1 ; WX 1000 ; N equivalence ; B 248 41 752 463 ; C -1 ; WX 600 ; N estimated ; B 79 -6 514 522 ; C -1 ; WX 549 ; N eta ; B 50 -178 476 453 ; C -1 ; WX 549 ; N etatonos ; B 50 -178 476 735 ; C -1 ; WX 500 ; N eth ; B -3 -13 454 699 ; C -1 ; WX 574 ; N exclamdbl ; B 13 -12 703 667 ; C -1 ; WX 424 ; N existential ; B 50 0 375 577 ; C -1 ; WX 722 ; N female ; B 142 -6 581 713 ; C -1 ; WX 631 ; N ff ; B -135 -205 713 698 ; C -1 ; WX 866 ; N ffi ; B -148 -205 802 703 ; C -1 ; WX 864 ; N ffl ; B -150 -205 840 704 ; C -1 ; WX 722 ; N filledbox ; B 125 124 592 591 ; C -1 ; WX 1000 ; N filledrect ; B 142 0 858 358 ; C -1 ; WX 750 ; N fiveeighths ; B 54 -14 725 678 ; C -1 ; WX 300 ; N fivesuperior ; B -7 263 295 672 ; C -1 ; WX 300 ; N foursuperior ; B -11 271 303 681 ; C -1 ; WX 500 ; N franc ; B 43 -9 605 681 ; C -1 ; WX 416 ; N gamma ; B 14 -192 447 453 ; C -1 ; WX 500 ; N gbreve ; B -52 -203 478 678 ; C -1 ; WX 505 ; N gcircumflex ; B -53 -203 477 690 ; C -1 ; WX 500 ; N gcommaaccent ; B -52 -203 478 765 ; C -1 ; WX 505 ; N gdotaccent ; B -54 -203 476 666 ; C -1 ; WX 667 ; N gradient ; B 31 0 635 630 ; C -1 ; WX 1000 ; N greaterequal ; B 223 1 737 578 ; C -1 ; WX 556 ; N hbar ; B -13 -9 498 699 ; C -1 ; WX 562 ; N hcircumflex ; B -10 -9 502 920 ; C -1 ; WX 1000 ; N heart ; B 177 -28 823 729 ; C -1 ; WX 1000 ; N house ; B 153 0 853 729 ; C -1 ; WX 278 ; N iacute ; B 2 -9 352 697 ; C -1 ; WX 278 ; N ibreve ; B 2 -9 338 678 ; C -1 ; WX 278 ; N icircumflex ; B -2 -9 325 690 ; C -1 ; WX 278 ; N idieresis ; B 2 -9 360 655 ; C -1 ; WX 278 ; N igrave ; B 2 -9 260 697 ; C -1 ; WX 552 ; N ij ; B 47 -178 555 703 ; C -1 ; WX 278 ; N imacron ; B 2 -9 366 623 ; C -1 ; WX 1000 ; N infinity ; B 197 114 804 370 ; C -1 ; WX 1000 ; N integral ; B 354 -107 664 916 ; C -1 ; WX 722 ; N integralbt ; B 239 -205 412 800 ; C -1 ; WX 722 ; N integraltp ; B 339 -205 512 800 ; C -1 ; WX 1000 ; N intersection ; B 280 0 720 559 ; C -1 ; WX 1000 ; N invbullet ; B 57 -122 942 763 ; C -1 ; WX 1000 ; N invcircle ; B 57 -114 942 771 ; C -1 ; WX 1000 ; N invsmileface ; B 136 0 866 730 ; C -1 ; WX 278 ; N iogonek ; B 2 -173 278 684 ; C -1 ; WX 278 ; N iota ; B 40 -8 263 453 ; C -1 ; WX 278 ; N iotadieresis ; B 40 -8 357 651 ; C -1 ; WX 278 ; N iotadieresistonos ; B 40 -8 362 739 ; C -1 ; WX 278 ; N iotatonos ; B 40 -8 301 735 ; C -1 ; WX 278 ; N itilde ; B 2 -9 379 655 ; C -1 ; WX 281 ; N jcircumflex ; B -188 -207 312 690 ; C -1 ; WX 530 ; N kappa ; B 38 -5 537 453 ; C -1 ; WX 500 ; N kcommaaccent ; B -23 -324 483 699 ; C -1 ; WX 500 ; N kgreenlandic ; B 11 -5 517 467 ; C -1 ; WX 278 ; N lacute ; B 2 -9 392 907 ; C -1 ; WX 444 ; N lambda ; B -42 -8 401 670 ; C -1 ; WX 406 ; N lcaron ; B 2 -9 473 699 ; C -1 ; WX 278 ; N lcommaaccent ; B -82 -324 289 699 ; C -1 ; WX 379 ; N ldot ; B 4 -9 404 699 ; C -1 ; WX 1000 ; N lessequal ; B 207 1 785 577 ; C -1 ; WX 1000 ; N lfblock ; B 0 -250 500 750 ; C -1 ; WX 667 ; N lira ; B -43 -78 690 699 ; C -1 ; WX 606 ; N logicalnot ; B 51 108 555 399 ; C -1 ; WX 333 ; N longs ; B -133 -203 472 691 ; C -1 ; WX 574 ; N lozenge ; B 58 -1 506 740 ; C -1 ; WX 1000 ; N ltshade ; B 0 -83 834 750 ; C -1 ; WX 722 ; N male ; B 73 -28 658 731 ; C -1 ; WX 606 ; N minus ; B 51 209 555 297 ; C -1 ; WX 281 ; N minute ; B 156 356 316 684 ; C -1 ; WX 576 ; N mu ; B -27 -207 546 449 ; C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; C -1 ; WX 500 ; N musicalnote ; B 68 17 433 667 ; C -1 ; WX 722 ; N musicalnotedbl ; B 153 -94 570 731 ; C -1 ; WX 556 ; N nacute ; B -6 -9 493 697 ; C -1 ; WX 699 ; N napostrophe ; B 77 -9 645 713 ; C -1 ; WX 556 ; N ncaron ; B -6 -9 523 690 ; C -1 ; WX 556 ; N ncommaaccent ; B -6 -324 493 462 ; C -1 ; WX 300 ; N ninesuperior ; B -9 265 286 681 ; C -1 ; WX 1000 ; N notelement ; B 233 -63 767 577 ; C -1 ; WX 1000 ; N notequal ; B 248 -13 752 519 ; C -1 ; WX 1000 ; N notsubset ; B 233 -63 767 567 ; C -1 ; WX 371 ; N nsuperior ; B 14 266 317 551 ; C -1 ; WX 556 ; N ntilde ; B -6 -9 504 655 ; C -1 ; WX 444 ; N nu ; B 44 -7 435 453 ; C -1 ; WX 500 ; N oacute ; B -3 -13 463 697 ; C -1 ; WX 500 ; N obreve ; B -3 -13 465 678 ; C -1 ; WX 500 ; N ocircumflex ; B -3 -13 451 690 ; C -1 ; WX 500 ; N odieresis ; B -3 -13 466 655 ; C -1 ; WX 500 ; N ograve ; B -3 -13 441 697 ; C -1 ; WX 500 ; N ohungarumlaut ; B -3 -13 582 697 ; C -1 ; WX 500 ; N omacron ; B -3 -13 477 623 ; C -1 ; WX 723 ; N omega ; B 83 -8 633 453 ; C -1 ; WX 756 ; N omega1 ; B 13 -10 605 502 ; C -1 ; WX 723 ; N omegatonos ; B 83 -8 633 735 ; C -1 ; WX 500 ; N omicron ; B 50 -8 441 453 ; C -1 ; WX 500 ; N omicrontonos ; B 50 -8 441 735 ; C -1 ; WX 750 ; N oneeighth ; B 25 -14 736 676 ; C -1 ; WX 750 ; N onehalf ; B -9 -14 723 683 ; C -1 ; WX 750 ; N onequarter ; B 7 -14 721 683 ; C -1 ; WX 300 ; N onesuperior ; B 30 274 301 683 ; C -1 ; WX 498 ; N openbullet ; B 57 83 437 463 ; C -1 ; WX 979 ; N orthogonal ; B 8 0 970 951 ; C -1 ; WX 500 ; N oslashacute ; B -3 -119 462 697 ; C -1 ; WX 500 ; N otilde ; B -3 -13 491 655 ; C -1 ; WX 500 ; N partialdiff ; B 19 -20 475 743 ; C -1 ; WX 1000 ; N perpendicular ; B 201 0 799 598 ; C -1 ; WX 878 ; N peseta ; B 53 -6 786 669 ; C -1 ; WX 585 ; N phi ; B 10 -190 547 459 ; C -1 ; WX 579 ; N phi1 ; B 56 -188 617 689 ; C -1 ; WX 546 ; N pi ; B -15 -12 582 444 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 568 ; C -1 ; WX 1000 ; N product ; B 111 -123 890 748 ; C -1 ; WX 1000 ; N propersubset ; B 233 0 767 494 ; C -1 ; WX 1000 ; N propersuperset ; B 233 0 767 494 ; C -1 ; WX 1000 ; N proportional ; B 197 102 682 379 ; C -1 ; WX 668 ; N psi ; B 32 -178 634 453 ; C -1 ; WX 333 ; N quotereversed ; B 166 344 350 673 ; C -1 ; WX 389 ; N racute ; B -21 0 407 697 ; C -1 ; WX 722 ; N radical ; B 70 -35 622 916 ; C -1 ; WX 389 ; N rcaron ; B -21 0 439 690 ; C -1 ; WX 389 ; N rcommaaccent ; B -83 -324 389 462 ; C -1 ; WX 1000 ; N reflexsubset ; B 233 0 767 599 ; C -1 ; WX 1000 ; N reflexsuperset ; B 233 0 767 599 ; C -1 ; WX 747 ; N registered ; B 30 -18 718 685 ; C -1 ; WX 889 ; N revlogicalnot ; B 192 108 696 399 ; C -1 ; WX 515 ; N rho ; B -15 -178 451 453 ; C -1 ; WX 1000 ; N rtblock ; B 500 -250 1000 750 ; C -1 ; WX 389 ; N sacute ; B -19 -13 407 697 ; C -1 ; WX 389 ; N scaron ; B -19 -13 439 690 ; C -1 ; WX 389 ; N scedilla ; B -40 -218 333 462 ; C -1 ; WX 389 ; N scircumflex ; B -19 -13 395 690 ; C -1 ; WX 389 ; N scommaaccent ; B -26 -324 333 462 ; C -1 ; WX 552 ; N second ; B 163 356 562 684 ; C -1 ; WX 750 ; N seveneighths ; B 96 -14 718 676 ; C -1 ; WX 300 ; N sevensuperior ; B 27 271 318 672 ; C -1 ; WX 1000 ; N shade ; B 0 -250 1000 750 ; C -1 ; WX 539 ; N sigma ; B 27 -12 575 444 ; C -1 ; WX 300 ; N sixsuperior ; B 13 262 307 679 ; C -1 ; WX 1000 ; N smileface ; B 135 0 865 730 ; C -1 ; WX 1000 ; N spade ; B 239 0 835 757 ; C -1 ; WX 1000 ; N suchthat ; B 233 0 767 494 ; C -1 ; WX 1000 ; N summation ; B 200 -123 813 752 ; C -1 ; WX 1000 ; N sun ; B 150 -16 850 683 ; C -1 ; WX 444 ; N tau ; B -13 -12 476 444 ; C -1 ; WX 278 ; N tbar ; B -11 -9 281 594 ; C -1 ; WX 387 ; N tcaron ; B -11 -9 439 685 ; C -1 ; WX 278 ; N tcommaaccent ; B -75 -218 281 594 ; C -1 ; WX 996 ; N therefore ; B 185 0 811 630 ; C -1 ; WX 519 ; N theta ; B 71 -8 498 670 ; C -1 ; WX 527 ; N theta1 ; B 13 -9 542 682 ; C -1 ; WX 500 ; N thorn ; B -120 -205 446 699 ; C -1 ; WX 750 ; N threeeighths ; B 41 -14 736 676 ; C -1 ; WX 750 ; N threequarters ; B 7 -14 726 683 ; C -1 ; WX 300 ; N threesuperior ; B 17 265 321 683 ; C -1 ; WX 333 ; N tonos ; B 205 466 329 672 ; C -1 ; WX 1000 ; N trademark ; B 32 263 968 669 ; C -1 ; WX 722 ; N triagdn ; B 150 139 572 539 ; C -1 ; WX 722 ; N triaglf ; B 121 194 577 556 ; C -1 ; WX 722 ; N triagrt ; B 146 194 602 556 ; C -1 ; WX 722 ; N triagup ; B 150 211 572 611 ; C -1 ; WX 300 ; N twosuperior ; B 2 274 313 683 ; C -1 ; WX 556 ; N uacute ; B 15 -9 492 697 ; C -1 ; WX 562 ; N ubreve ; B 16 -9 507 678 ; C -1 ; WX 556 ; N ucircumflex ; B 15 -9 492 690 ; C -1 ; WX 556 ; N udieresis ; B 15 -9 494 655 ; C -1 ; WX 556 ; N ugrave ; B 15 -9 492 697 ; C -1 ; WX 556 ; N uhungarumlaut ; B 15 -9 610 697 ; C -1 ; WX 556 ; N umacron ; B 15 -9 505 623 ; C -1 ; WX 500 ; N underscoredbl ; B 0 -290 500 -45 ; C -1 ; WX 250 ; N uni00A0 ; B 125 0 125 0 ; C -1 ; WX 333 ; N uni00AD ; B 2 166 271 282 ; C -1 ; WX 611 ; N uni021A ; B 50 -324 650 669 ; C -1 ; WX 278 ; N uni021B ; B -81 -324 281 594 ; C -1 ; WX 333 ; N uni02C9 ; B 51 553 393 623 ; C -1 ; WX 250 ; N uni0387 ; B 51 257 199 405 ; C -1 ; WX 627 ; N uni0394 ; B -23 0 509 662 ; C -1 ; WX 746 ; N uni03A9 ; B -80 0 713 679 ; C -1 ; WX 556 ; N uni03BC ; B -3 -191 484 444 ; C -1 ; WX 446 ; N uni03C2 ; B 37 -192 474 513 ; C -1 ; WX 667 ; N uni0400 ; B 9 0 678 894 ; C -1 ; WX 778 ; N uni040D ; B 25 0 815 894 ; C -1 ; WX 444 ; N uni0450 ; B 38 -13 426 690 ; C -1 ; WX 556 ; N uni045D ; B 78 -10 500 690 ; C -1 ; WX 634 ; N uni0462 ; B 17 0 596 662 ; C -1 ; WX 667 ; N uni0463 ; B 118 -10 516 669 ; C -1 ; WX 722 ; N uni0472 ; B 61 -18 717 678 ; C -1 ; WX 500 ; N uni0473 ; B 31 -13 469 457 ; C -1 ; WX 776 ; N uni0474 ; B 157 -18 889 672 ; C -1 ; WX 535 ; N uni0475 ; B 12 -14 533 455 ; C -1 ; WX 667 ; N uni0492 ; B -13 0 660 662 ; C -1 ; WX 373 ; N uni0493 ; B 18 -10 374 452 ; C -1 ; WX 927 ; N uni0496 ; B -48 -137 1026 662 ; C -1 ; WX 908 ; N uni0497 ; B 40 -142 878 459 ; C -1 ; WX 509 ; N uni0498 ; B -15 -218 513 675 ; C -1 ; WX 390 ; N uni0499 ; B 13 -218 369 455 ; C -1 ; WX 685 ; N uni049A ; B 28 -137 748 662 ; C -1 ; WX 512 ; N uni049B ; B 41 -119 523 463 ; C -1 ; WX 685 ; N uni049C ; B 28 0 748 662 ; C -1 ; WX 512 ; N uni049D ; B 41 -10 523 463 ; C -1 ; WX 741 ; N uni04A0 ; B 134 0 835 662 ; C -1 ; WX 507 ; N uni04A1 ; B -7 -10 512 458 ; C -1 ; WX 786 ; N uni04A2 ; B 24 -137 831 662 ; C -1 ; WX 561 ; N uni04A3 ; B 57 -113 528 463 ; C -1 ; WX 667 ; N uni04AA ; B 32 -218 677 685 ; C -1 ; WX 444 ; N uni04AB ; B -13 -218 392 462 ; C -1 ; WX 611 ; N uni04AE ; B 73 0 659 662 ; C -1 ; WX 448 ; N uni04AF ; B -21 -186 483 444 ; C -1 ; WX 611 ; N uni04B0 ; B 73 0 659 662 ; C -1 ; WX 448 ; N uni04B1 ; B -21 -186 483 444 ; C -1 ; WX 674 ; N uni04B2 ; B 13 -138 729 662 ; C -1 ; WX 505 ; N uni04B3 ; B -9 -105 476 458 ; C -1 ; WX 748 ; N uni04B6 ; B 162 -138 782 662 ; C -1 ; WX 525 ; N uni04B7 ; B 91 -90 499 458 ; C -1 ; WX 756 ; N uni04B8 ; B 174 0 801 662 ; C -1 ; WX 530 ; N uni04B9 ; B 99 -10 512 463 ; C -1 ; WX 676 ; N uni04BA ; B -38 0 589 662 ; C -1 ; WX 556 ; N uni04BB ; B -13 -9 498 699 ; C -1 ; WX 389 ; N uni04C0 ; B 11 0 434 662 ; C -1 ; WX 748 ; N uni04CB ; B 162 -135 782 662 ; C -1 ; WX 499 ; N uni04CC ; B 98 -205 498 458 ; C -1 ; WX 389 ; N uni04CF ; B 11 0 434 662 ; C -1 ; WX 722 ; N uni04D8 ; B 53 -18 720 676 ; C -1 ; WX 667 ; N uni04E2 ; B -31 0 622 886 ; C -1 ; WX 499 ; N uni04E3 ; B 13 -14 484 663 ; C -1 ; WX 722 ; N uni04E8 ; B 34 -18 698 681 ; C -1 ; WX 500 ; N uni04E9 ; B -3 -13 441 462 ; C -1 ; WX 667 ; N uni04EE ; B 9 0 678 886 ; C -1 ; WX 444 ; N uni04EF ; B 38 -13 512 671 ; C -1 ; WX 500 ; N uni2002 ; B 32 0 32 0 ; C -1 ; WX 500 ; N uni203E ; B 233 750 730 819 ; C -1 ; WX 1000 ; N uni20AF ; B 34 -190 937 697 ; C -1 ; WX 996 ; N uni20DD ; B 139 2 858 721 ; C -1 ; WX 572 ; N uni210F ; B 42 -13 530 717 ; C -1 ; WX 867 ; N uni2112 ; B 42 -9 826 769 ; C -1 ; WX 759 ; N uni211E ; B 52 3 678 619 ; C -1 ; WX 609 ; N uni2120 ; B 26 379 565 689 ; C -1 ; WX 611 ; N uni2126 ; B 15 0 601 686 ; C -1 ; WX 608 ; N uni2128 ; B -6 -201 589 706 ; C -1 ; WX 664 ; N uni212D ; B 53 -74 671 706 ; C -1 ; WX 442 ; N uni212F ; B -23 -14 459 468 ; C -1 ; WX 442 ; N uni2136 ; B 27 0 455 537 ; C -1 ; WX 332 ; N uni2137 ; B 52 -3 305 542 ; C -1 ; WX 719 ; N uni2196 ; B -4 -52 722 665 ; C -1 ; WX 719 ; N uni2197 ; B -4 -52 722 665 ; C -1 ; WX 719 ; N uni2198 ; B -4 -55 722 663 ; C -1 ; WX 719 ; N uni2199 ; B -4 -55 722 663 ; C -1 ; WX 996 ; N uni21C4 ; B 116 69 838 656 ; C -1 ; WX 996 ; N uni21C6 ; B 116 69 838 656 ; C -1 ; WX 719 ; N uni21D5 ; B 116 -69 604 672 ; C -1 ; WX 479 ; N uni220D ; B 71 0 497 456 ; C -1 ; WX 996 ; N uni2213 ; B 215 0 777 583 ; C -1 ; WX 167 ; N uni2215 ; B -169 -14 324 683 ; C -1 ; WX 250 ; N uni2219 ; B 51 257 199 405 ; C -1 ; WX 719 ; N uni2223 ; B 314 -251 387 756 ; C -1 ; WX 719 ; N uni2225 ; B 249 -255 471 895 ; C -1 ; WX 1000 ; N uni2227 ; B 243 0 757 513 ; C -1 ; WX 1000 ; N uni2228 ; B 243 0 757 513 ; C -1 ; WX 996 ; N uni222E ; B 236 -138 760 839 ; C -1 ; WX 996 ; N uni2235 ; B 185 0 811 630 ; C -1 ; WX 996 ; N uni2237 ; B 185 0 811 630 ; C -1 ; WX 996 ; N uni2262 ; B 210 3 824 577 ; C -1 ; WX 996 ; N uni226A ; B 167 17 827 650 ; C -1 ; WX 996 ; N uni226B ; B 167 17 827 650 ; C -1 ; WX 996 ; N uni2285 ; B 176 -71 813 697 ; C -1 ; WX 1000 ; N uni2295 ; B 140 -3 860 716 ; C -1 ; WX 996 ; N uni2296 ; B 138 -25 858 696 ; C -1 ; WX 996 ; N uni2298 ; B 139 -24 856 695 ; C -1 ; WX 996 ; N uni2299 ; B 138 -25 858 696 ; C -1 ; WX 996 ; N uni22A2 ; B 178 0 813 560 ; C -1 ; WX 996 ; N uni22A3 ; B 178 0 813 560 ; C -1 ; WX 996 ; N uni22A4 ; B 216 0 774 638 ; C -1 ; WX 996 ; N uni22BB ; B 213 -137 782 585 ; C -1 ; WX 996 ; N uni256D ; B 466 -252 1002 283 ; C -1 ; WX 996 ; N uni256E ; B -6 -252 530 283 ; C -1 ; WX 996 ; N uni256F ; B -6 220 530 755 ; C -1 ; WX 996 ; N uni2570 ; B 466 220 1002 755 ; C -1 ; WX 722 ; N uni25A1 ; B 125 124 592 591 ; C -1 ; WX 719 ; N uni25B5 ; B 122 37 598 508 ; C -1 ; WX 719 ; N uni25B9 ; B 126 31 592 512 ; C -1 ; WX 719 ; N uni25BF ; B 122 37 598 508 ; C -1 ; WX 719 ; N uni25C3 ; B 127 31 593 512 ; C -1 ; WX 996 ; N uni25C6 ; B 241 39 767 623 ; C -1 ; WX 996 ; N uni25C7 ; B 190 -11 811 676 ; C -1 ; WX 717 ; N uni301A ; B -12 -155 729 788 ; C -1 ; WX 717 ; N uni301B ; B -12 -155 729 788 ; C -1 ; WX 718 ; N uniEFBF ; B -145 3 747 880 ; C -1 ; WX 717 ; N uniEFC0 ; B 0 -192 471 883 ; C -1 ; WX 717 ; N uniEFC1 ; B 0 -194 471 884 ; C -1 ; WX 717 ; N uniEFC2 ; B -8 -247 727 749 ; C -1 ; WX 717 ; N uniEFC3 ; B -8 -247 727 749 ; C -1 ; WX 717 ; N uniEFC4 ; B 247 -192 719 883 ; C -1 ; WX 717 ; N uniEFC5 ; B 247 -194 719 884 ; C -1 ; WX 717 ; N uniEFC6 ; B 44 -247 675 750 ; C -1 ; WX 717 ; N uniEFC7 ; B 44 -247 675 749 ; C -1 ; WX 717 ; N uniEFC8 ; B 44 -247 675 749 ; C -1 ; WX 717 ; N uniEFC9 ; B 247 -194 471 883 ; C -1 ; WX 717 ; N uniEFCA ; B 124 -80 596 522 ; C -1 ; WX 717 ; N uniEFCB ; B 0 190 719 412 ; C -1 ; WX 717 ; N uniEFCC ; B 312 -189 748 880 ; C -1 ; WX 732 ; N uniEFCD ; B -13 -192 762 884 ; C -1 ; WX 717 ; N uniEFCE ; B 0 -192 668 182 ; C -1 ; WX 717 ; N uniEFCF ; B -27 -192 407 884 ; C -1 ; WX 717 ; N uniEFD0 ; B 0 510 639 884 ; C -1 ; WX 717 ; N uniEFD1 ; B -27 -192 748 884 ; C -1 ; WX 717 ; N uniEFD2 ; B -23 -192 747 883 ; C -1 ; WX 716 ; N uniEFD3 ; B -23 -192 746 884 ; C -1 ; WX 717 ; N uniEFD4 ; B 131 -247 596 749 ; C -1 ; WX 608 ; N uniEFD5 ; B 41 -245 571 496 ; C -1 ; WX 993 ; N uniEFD6 ; B 102 305 830 689 ; C -1 ; WX 993 ; N uniEFD7 ; B 116 -25 879 739 ; C -1 ; WX 993 ; N uniEFD8 ; B 116 -25 879 739 ; C -1 ; WX 993 ; N uniEFD9 ; B 22 269 971 669 ; C -1 ; WX 993 ; N uniEFDA ; B 116 -25 879 739 ; C -1 ; WX 993 ; N uniEFDB ; B 116 -25 879 739 ; C -1 ; WX 717 ; N uniEFDC ; B 87 -199 398 883 ; C -1 ; WX 717 ; N uniEFDD ; B 312 -247 414 882 ; C -1 ; WX 717 ; N uniEFDE ; B 144 -247 415 749 ; C -1 ; WX 717 ; N uniEFDF ; B 312 -247 595 749 ; C -1 ; WX 717 ; N uniEFE0 ; B 144 -247 413 751 ; C -1 ; WX 717 ; N uniEFE1 ; B 312 -247 582 749 ; C -1 ; WX 717 ; N uniEFE2 ; B 138 -247 416 749 ; C -1 ; WX 717 ; N uniEFE3 ; B 312 -247 581 750 ; C -1 ; WX 717 ; N uniEFE4 ; B 0 -192 399 883 ; C -1 ; WX 717 ; N uniEFE5 ; B 0 -194 399 884 ; C -1 ; WX 717 ; N uniEFE6 ; B 319 -192 719 883 ; C -1 ; WX 717 ; N uniEFE7 ; B 319 -194 719 884 ; C -1 ; WX 717 ; N uniEFE8 ; B 0 267 719 325 ; C -1 ; WX 717 ; N uniEFE9 ; B 0 804 719 947 ; C -1 ; WX 717 ; N uniEFEA ; B 0 804 719 884 ; C -1 ; WX 717 ; N uniEFEB ; B 0 -192 719 -113 ; C -1 ; WX 533 ; N uniEFEC ; B 44 -21 512 494 ; C -1 ; WX 993 ; N uniEFFA ; B 141 0 853 711 ; C -1 ; WX 993 ; N uniEFFB ; B 141 0 852 711 ; C -1 ; WX 993 ; N uniEFFC ; B 141 0 852 711 ; C -1 ; WX 993 ; N uniEFFD ; B 145 0 856 712 ; C -1 ; WX 772 ; N uniEFFE ; B 52 -11 721 686 ; C -1 ; WX 496 ; N uniEFFF ; B 16 276 479 741 ; C -1 ; WX 1000 ; N union ; B 280 0 720 559 ; C -1 ; WX 593 ; N universal ; B 22 0 571 577 ; C -1 ; WX 556 ; N uogonek ; B 15 -173 556 462 ; C -1 ; WX 1000 ; N upblock ; B 0 250 1000 750 ; C -1 ; WX 490 ; N upsilon ; B 40 -8 445 453 ; C -1 ; WX 490 ; N upsilondieresis ; B 40 -8 477 651 ; C -1 ; WX 490 ; N upsilondieresistonos ; B 40 -8 455 739 ; C -1 ; WX 490 ; N upsilontonos ; B 40 -8 445 735 ; C -1 ; WX 556 ; N uring ; B 15 -9 492 754 ; C -1 ; WX 556 ; N utilde ; B 16 -9 527 655 ; C -1 ; WX 667 ; N wacute ; B 16 -13 614 697 ; C -1 ; WX 667 ; N wcircumflex ; B 16 -13 614 690 ; C -1 ; WX 667 ; N wdieresis ; B 16 -13 614 655 ; C -1 ; WX 685 ; N weierstrass ; B 85 -169 604 402 ; C -1 ; WX 667 ; N wgrave ; B 16 -13 614 697 ; C -1 ; WX 449 ; N xi ; B 31 -186 501 725 ; C -1 ; WX 444 ; N yacute ; B -94 -205 435 697 ; C -1 ; WX 444 ; N ycircumflex ; B -94 -205 405 690 ; C -1 ; WX 444 ; N ydieresis ; B -94 -205 438 655 ; C -1 ; WX 444 ; N ygrave ; B -94 -205 392 697 ; C -1 ; WX 389 ; N zacute ; B -43 -78 407 697 ; C -1 ; WX 389 ; N zcaron ; B -43 -78 424 690 ; C -1 ; WX 389 ; N zdotaccent ; B -43 -78 368 655 ; C -1 ; WX 300 ; N zerosuperior ; B 9 263 287 681 ; C -1 ; WX 441 ; N zeta ; B 44 -186 500 724 ; EndCharMetrics StartKernData StartKernPairs 3850 KPX A A 25 KPX A B 3 KPX A C -50 KPX A Ccedilla -50 KPX A G -44 KPX A J 14 KPX A O -51 KPX A Odieresis -51 KPX A Omicron -70 KPX A Phi -66 KPX A Psi -104 KPX A Q -47 KPX A S -11 KPX A T -33 KPX A Tau -53 KPX A Tcaron -33 KPX A Tcommaaccent -33 KPX A Theta -42 KPX A U -59 KPX A Uacute -59 KPX A Ucircumflex -59 KPX A Udieresis -59 KPX A Ugrave -59 KPX A Upsilon -66 KPX A V -93 KPX A W -93 KPX A X 3 KPX A Y -45 KPX A Yacute -45 KPX A Z -3 KPX A a -9 KPX A b -3 KPX A braceright -9 KPX A bracketright -34 KPX A c -24 KPX A ccedilla -26 KPX A comma 11 KPX A d -9 KPX A e -29 KPX A g -23 KPX A k 2 KPX A gamma -53 KPX A guillemotleft -44 KPX A guilsinglleft -54 KPX A hyphen -9 KPX A nu -64 KPX A o -25 KPX A parenright -29 KPX A period 17 KPX A phi -32 KPX A q -19 KPX A quotedblright -64 KPX A quoteright -87 KPX A quotesingle -94 KPX A sigma -36 KPX A t -5 KPX A u -18 KPX A udieresis -18 KPX A upsilon -50 KPX A upsilontonos -54 KPX A v -42 KPX A w -46 KPX A y -52 KPX A yacute -52 KPX A z 10 KPX AE T -32 KPX AE V -17 KPX AE W -17 KPX AE X -30 KPX AE Z -13 KPX Aacute C -50 KPX Aacute G -44 KPX Aacute O -51 KPX Aacute Q -47 KPX Aacute T -33 KPX Aacute Tcaron -33 KPX Aacute U -59 KPX Aacute V -93 KPX Aacute W -93 KPX Aacute Y -45 KPX Aacute a -9 KPX Aacute b -3 KPX Aacute c -24 KPX Aacute comma 11 KPX Aacute d -9 KPX Aacute e -29 KPX Aacute g -23 KPX Aacute guillemotleft -44 KPX Aacute guilsinglleft -54 KPX Aacute hyphen -9 KPX Aacute o -25 KPX Aacute period 17 KPX Aacute q -19 KPX Aacute quotedblright -64 KPX Aacute quoteright -87 KPX Aacute t -5 KPX Aacute u -18 KPX Aacute v -42 KPX Aacute w -46 KPX Aacute y -52 KPX Abreve T -33 KPX Abreve Tcaron -33 KPX Abreve Tcommaaccent -33 KPX Abreve Y -45 KPX Abreve Yacute -45 KPX Abreve y -52 KPX Abreve yacute -52 KPX Acircumflex C -50 KPX Acircumflex G -44 KPX Acircumflex O -51 KPX Acircumflex Q -47 KPX Acircumflex T -33 KPX Acircumflex Tcaron -33 KPX Acircumflex Tcommaaccent -33 KPX Acircumflex U -59 KPX Acircumflex V -93 KPX Acircumflex W -93 KPX Acircumflex Y -45 KPX Acircumflex Yacute -45 KPX Acircumflex comma 11 KPX Acircumflex period 17 KPX Acircumflex v -42 KPX Acircumflex w -46 KPX Acircumflex yacute -52 KPX Adieresis C -50 KPX Adieresis G -44 KPX Adieresis O -51 KPX Adieresis Q -47 KPX Adieresis T -33 KPX Adieresis U -59 KPX Adieresis V -93 KPX Adieresis W -93 KPX Adieresis Y -45 KPX Adieresis a -9 KPX Adieresis b -3 KPX Adieresis c -24 KPX Adieresis comma 11 KPX Adieresis d -9 KPX Adieresis g -23 KPX Adieresis guillemotleft -44 KPX Adieresis guilsinglleft -54 KPX Adieresis hyphen -9 KPX Adieresis o -25 KPX Adieresis period 17 KPX Adieresis q -19 KPX Adieresis quotedblright -64 KPX Adieresis quoteright -87 KPX Adieresis t -5 KPX Adieresis u -18 KPX Adieresis v -42 KPX Adieresis w -46 KPX Adieresis y -52 KPX Agrave C -50 KPX Agrave G -44 KPX Agrave O -51 KPX Agrave Q -47 KPX Agrave T -33 KPX Agrave U -59 KPX Agrave V -93 KPX Agrave W -93 KPX Agrave Y -45 KPX Agrave comma 11 KPX Agrave period 17 KPX Alpha O -36 KPX Alpha Omicron -58 KPX Alpha Phi -49 KPX Alpha Psi -86 KPX Alpha T -61 KPX Alpha Tau -82 KPX Alpha Theta -31 KPX Alpha Upsilon -95 KPX Alpha Y -72 KPX Alpha comma -2 KPX Alpha gamma -54 KPX Alpha guillemotright -41 KPX Alpha nu -62 KPX Alpha phi -33 KPX Alpha sigma -38 KPX Alpha upsilon -51 KPX Alpha upsilontonos -54 KPX Alphatonos gamma -54 KPX Alphatonos nu -62 KPX Alphatonos phi -33 KPX Alphatonos sigma -38 KPX Aogonek C -49 KPX Aogonek T -33 KPX Aogonek Tcaron -33 KPX Aogonek Tcommaaccent 3 KPX Aogonek Y -45 KPX Aogonek Yacute -45 KPX Aogonek colon 5 KPX Aogonek comma 72 KPX Aogonek period 11 KPX Aogonek semicolon 46 KPX Aogonek y 101 KPX Aogonek yacute 101 KPX Aring C -50 KPX Aring G -44 KPX Aring O -51 KPX Aring Q -47 KPX Aring T -33 KPX Aring U -59 KPX Aring V -93 KPX Aring W -93 KPX Aring Y -45 KPX Aring a -9 KPX Aring b -3 KPX Aring c -24 KPX Aring comma 11 KPX Aring d -9 KPX Aring e -29 KPX Aring g -23 KPX Aring guillemotleft -44 KPX Aring guilsinglleft -54 KPX Aring hyphen -9 KPX Aring o -25 KPX Aring period 17 KPX Aring q -19 KPX Aring quotedblright -64 KPX Aring quoteright -87 KPX Aring t -5 KPX Aring u -18 KPX Aring v -42 KPX Aring w -46 KPX Aring y -52 KPX Atilde C -50 KPX Atilde G -44 KPX Atilde O -51 KPX Atilde Q -47 KPX Atilde T -33 KPX Atilde U -59 KPX Atilde V -93 KPX Atilde W -93 KPX Atilde Y -45 KPX Atilde comma 11 KPX Atilde period 17 KPX B A -35 KPX B AE -41 KPX B Aacute -35 KPX B Acircumflex -35 KPX B Adieresis -35 KPX B Aring -35 KPX B Atilde -35 KPX B C -5 KPX B Delta -57 KPX B J -38 KPX B O -6 KPX B OE -4 KPX B Oacute -6 KPX B Ocircumflex -6 KPX B Odieresis -6 KPX B Ograve -6 KPX B Oslash -6 KPX B S -7 KPX B T -25 KPX B V -47 KPX B W -43 KPX B Y -47 KPX B Z -9 KPX B lambda -37 KPX B y -8 KPX Beta A -28 KPX Beta Alpha -57 KPX Beta Delta -53 KPX Beta lambda -38 KPX C A -25 KPX C AE -31 KPX C Aacute -25 KPX C Adieresis -25 KPX C Aring -25 KPX C C -8 KPX C D -5 KPX C G -3 KPX C H -16 KPX C J -29 KPX C K -18 KPX C O -10 KPX C OE -8 KPX C Oacute -10 KPX C Odieresis -10 KPX C S -6 KPX C T -17 KPX C V -1 KPX C W -1 KPX C Y -5 KPX C Z -9 KPX C a -7 KPX C adieresis -7 KPX C ae -15 KPX C colon 14 KPX C comma 15 KPX C e -16 KPX C hyphen 2 KPX C o -12 KPX C odieresis -12 KPX C oe -16 KPX C period 15 KPX C quotedblright 19 KPX C quoteright -2 KPX C quotesingle -1 KPX C s -8 KPX C semicolon 13 KPX C y -4 KPX Ccaron O -10 KPX Ccedilla A -31 KPX Chi O -30 KPX Chi Omicron -52 KPX Chi Theta -25 KPX Chi alpha -52 KPX Chi alphatonos -53 KPX Chi epsilontonos -38 KPX Chi o -33 KPX Chi omega -71 KPX Chi omicron -55 KPX Chi omicrontonos -55 KPX Chi tau -50 KPX D A -44 KPX D AE -56 KPX D Aacute -38 KPX D Acircumflex -38 KPX D Adieresis -38 KPX D Agrave -38 KPX D Aring -38 KPX D Atilde -38 KPX D E -15 KPX D J -65 KPX D T -28 KPX D V -44 KPX D W -44 KPX D X -49 KPX D Y -48 KPX D Z -10 KPX D a 12 KPX D adieresis 12 KPX D ae 4 KPX D e 3 KPX D hyphen 38 KPX D o 7 KPX D odieresis 7 KPX D oe 2 KPX D y 2 KPX Delta O -31 KPX Delta Omicron -53 KPX Delta Upsilon -45 KPX Delta Y -24 KPX Delta alphatonos -19 KPX Delta epsilon -9 KPX Delta epsilontonos -9 KPX Delta o 2 KPX Delta omegatonos -37 KPX Delta omicron -20 KPX Delta upsilon -26 KPX E A -2 KPX E C -4 KPX E Ccaron -4 KPX E F -19 KPX E O -5 KPX E Oacute -5 KPX E Odieresis -5 KPX E Omicron -28 KPX E Phi -19 KPX E S -5 KPX E T -26 KPX E V -11 KPX E W -11 KPX E X -24 KPX E Y -15 KPX E Z -7 KPX E a 1 KPX E b -1 KPX E c -2 KPX E d 1 KPX E delta -14 KPX E e -7 KPX E g -13 KPX E gamma -36 KPX E h -6 KPX E hyphen 21 KPX E i -1 KPX E j -8 KPX E k -1 KPX E l -5 KPX E nu -43 KPX E o -3 KPX E q -9 KPX E quotedblright 5 KPX E quoteright -17 KPX E quotesingle -15 KPX E s -3 KPX E t 4 KPX E tau -27 KPX E v -20 KPX E w -24 KPX E y -24 KPX E z -12 KPX Epsilon O -6 KPX Epsilon Omicron -29 KPX Epsilon Phi -20 KPX Epsilon Theta -1 KPX Epsilon delta -15 KPX Epsilon gamma -34 KPX Epsilon nu -44 KPX Epsilon tau -30 KPX Epsilontonos nu -39 KPX F A -81 KPX F AE -95 KPX F Aacute -81 KPX F Abreve -81 KPX F Acircumflex -81 KPX F Adieresis -81 KPX F Agrave -81 KPX F Aogonek -81 KPX F Aring -81 KPX F Atilde -81 KPX F C -42 KPX F G -35 KPX F J -88 KPX F O -45 KPX F OE -43 KPX F Odieresis -45 KPX F S -41 KPX F T -23 KPX F W -7 KPX F Y -11 KPX F Z -26 KPX F a -60 KPX F aacute -60 KPX F adieresis -46 KPX F ae -68 KPX F aring -60 KPX F comma -78 KPX F e -68 KPX F eacute -68 KPX F h -18 KPX F hyphen -37 KPX F i -30 KPX F j -29 KPX F l -16 KPX F o -64 KPX F oacute -64 KPX F odieresis -44 KPX F oe -68 KPX F ohungarumlaut -64 KPX F oslash -69 KPX F period -80 KPX F quotedblright 8 KPX F quoteright -13 KPX F quotesingle -12 KPX F r -39 KPX F u -43 KPX F udieresis -37 KPX F uacute -37 KPX F uring -37 KPX F y -21 KPX G A -14 KPX G AE -21 KPX G Aacute -14 KPX G Acircumflex -14 KPX G Adieresis -14 KPX G Agrave -14 KPX G Aring -14 KPX G Atilde -14 KPX G H -10 KPX G S -2 KPX G T -30 KPX G V -27 KPX G W -27 KPX G X -36 KPX G Y -31 KPX G Z -3 KPX G a 19 KPX G adieresis 19 KPX G ae 8 KPX G colon 41 KPX G comma 20 KPX G e 6 KPX G hyphen 41 KPX G o 10 KPX G odieresis 10 KPX G oe 6 KPX G period 18 KPX G quotedblright 18 KPX G quoteright -4 KPX G quotesingle -14 KPX G semicolon 40 KPX G w -2 KPX G y -12 KPX Gamma A -72 KPX Gamma Alpha -108 KPX Gamma Delta -84 KPX Gamma Lambda -108 KPX Gamma O -11 KPX Gamma Omicron -33 KPX Gamma Y 23 KPX Gamma alpha -72 KPX Gamma alphatonos -73 KPX Gamma comma -96 KPX Gamma epsilon -51 KPX Gamma epsilontonos -51 KPX Gamma kappa -25 KPX Gamma nu -33 KPX Gamma o -59 KPX Gamma omicron -84 KPX Gamma period -101 KPX Gamma rho -80 KPX Gamma upsilon -45 KPX Gamma upsilontonos -45 KPX H A 1 KPX H I -15 KPX H T -7 KPX H Y 2 KPX H a -11 KPX H adieresis -11 KPX H ae -19 KPX H y -25 KPX I AE -2 KPX I J -11 KPX I T -9 KPX I V 4 KPX I W 4 KPX I X -13 KPX I Z -18 KPX I y -27 KPX J A -39 KPX J AE -43 KPX J Adieresis -39 KPX J Aring -39 KPX J K -19 KPX J Y 4 KPX J y -23 KPX K A 34 KPX K AE 33 KPX K B 13 KPX K C -36 KPX K D 24 KPX K E 14 KPX K F 7 KPX K G -31 KPX K H 13 KPX K I 17 KPX K J 24 KPX K L 12 KPX K M 15 KPX K N 14 KPX K O -34 KPX K OE -32 KPX K Oacute -34 KPX K Odieresis -34 KPX K Omicron -56 KPX K P 14 KPX K Phi -49 KPX K Q -34 KPX K R 15 KPX K S -2 KPX K U -3 KPX K V 13 KPX K W 13 KPX K X 13 KPX K Y 9 KPX K Z 6 KPX K ae -8 KPX K alphatonos -39 KPX K braceright 7 KPX K bracketright -12 KPX K e -20 KPX K epsilontonos -21 KPX K h 7 KPX K hyphen -16 KPX K i -2 KPX K j 1 KPX K l 5 KPX K o -18 KPX K oacute -18 KPX K odieresis -18 KPX K oe -23 KPX K omega -57 KPX K omicron -41 KPX K omicrontonos -41 KPX K parenright -8 KPX K quotedblright -5 KPX K quoteright -28 KPX K quotesingle -28 KPX K u -8 KPX K udieresis -8 KPX K upsilon -53 KPX K upsilontonos -53 KPX K w -47 KPX K y -61 KPX Kappa O -33 KPX Kappa Omicron -56 KPX Kappa Phi -49 KPX Kappa alphatonos -51 KPX Kappa colon -3 KPX Kappa comma 14 KPX Kappa epsilontonos -35 KPX Kappa o -32 KPX Kappa omega -69 KPX Kappa omicron -52 KPX Kappa omicrontonos -52 KPX Kappa period 13 KPX Kappa semicolon -2 KPX Kappa upsilon -59 KPX Kappa upsilontonos -59 KPX L A 28 KPX L AE 25 KPX L Aacute 28 KPX L Adieresis 28 KPX L Aring 28 KPX L Ccedilla -1 KPX L G 4 KPX L M 9 KPX L O 3 KPX L OE 5 KPX L Oacute 3 KPX L Ocircumflex 3 KPX L Odieresis 3 KPX L Ograve 3 KPX L Otilde 3 KPX L S 1 KPX L T -32 KPX L Tcaron -32 KPX L Tcommaaccent -30 KPX L U -17 KPX L Udieresis -17 KPX L V -62 KPX L W -57 KPX L Y -42 KPX L Yacute -42 KPX L a 32 KPX L adieresis 32 KPX L braceright 22 KPX L bracketright 2 KPX L e 19 KPX L hyphen 54 KPX L i 24 KPX L j 16 KPX L o 23 KPX L odieresis 23 KPX L parenright 2 KPX L quotedblright -47 KPX L quoteright -70 KPX L quotesingle -80 KPX L u 17 KPX L udieresis 17 KPX L y -10 KPX L yacute -10 KPX Lambda O -36 KPX Lambda Omicron -58 KPX Lambda T -61 KPX Lambda Tau -82 KPX Lambda Theta -31 KPX Lambda Upsilon -95 KPX Lambda Y -72 KPX Lambda alphatonos -48 KPX Lambda comma -2 KPX Lambda epsilon -38 KPX Lambda epsilontonos -38 KPX Lambda guillemotright -41 KPX Lambda o -26 KPX Lambda omicron -50 KPX Lambda omicrontonos -53 KPX Lambda quoteright -55 KPX Lambda upsilon -51 KPX Lcaron O 21 KPX Lcaron T 9 KPX Lcaron Tcaron 9 KPX Lcaron Tcommaaccent 10 KPX Lcaron V 14 KPX Lcaron Y 10 KPX Lcaron Yacute 10 KPX Lcaron v 6 KPX Lslash O 3 KPX Lslash T -32 KPX Lslash Tcaron -32 KPX Lslash Tcommaaccent -30 KPX Lslash V -57 KPX Lslash W -57 KPX Lslash Y -42 KPX Lslash Yacute -42 KPX Lslash colon 49 KPX Lslash comma 57 KPX Lslash period 58 KPX Lslash semicolon 45 KPX Lslash v 1 KPX Lslash w -1 KPX Lslash yacute -10 KPX M A 5 KPX M AE 3 KPX M N -13 KPX M T -3 KPX M W 10 KPX M Y 6 KPX M Z -13 KPX M epsilon -25 KPX M j -11 KPX M y -21 KPX Mu epsilon -19 KPX N A -41 KPX N AE -44 KPX N Aacute -41 KPX N Adieresis -41 KPX N Alpha -67 KPX N Aring -41 KPX N C -17 KPX N Ccedilla -13 KPX N G -11 KPX N O -19 KPX N Oacute -19 KPX N Odieresis -19 KPX N T -5 KPX N W 9 KPX N Y 5 KPX N Z -14 KPX N a -13 KPX N aacute -13 KPX N adieresis -13 KPX N ae -21 KPX N aring -13 KPX N comma -10 KPX N e -21 KPX N eacute -21 KPX N epsilon -30 KPX N epsilontonos -30 KPX N j -18 KPX N o -17 KPX N oacute -17 KPX N odieresis -17 KPX N omega -55 KPX N oslash -22 KPX N period -10 KPX N u -17 KPX N udieresis -17 KPX N y -23 KPX Nu A -27 KPX Nu Alpha -53 KPX Nu epsilon -19 KPX Nu epsilontonos -19 KPX Nu o -5 KPX Nu omega -44 KPX Nu omicron -32 KPX Nu omicrontonos -32 KPX O A -41 KPX O AE -53 KPX O Aacute -41 KPX O Adieresis -41 KPX O Alpha -74 KPX O Aring -41 KPX O Chi -65 KPX O Delta -55 KPX O G 6 KPX O J -62 KPX O Lambda -74 KPX O OE 2 KPX O P -16 KPX O Psi -44 KPX O S -5 KPX O T -19 KPX O Tau -53 KPX O Upsilon -70 KPX O V -41 KPX O W -41 KPX O X -46 KPX O Y -45 KPX O Z -7 KPX O Zeta -20 KPX O colon 29 KPX O comma -4 KPX O hyphen 33 KPX O lambda -36 KPX O period -4 KPX O semicolon 28 KPX O v 4 KPX O w 4 KPX O x -8 KPX O y 5 KPX O z -3 KPX OE T -19 KPX OE V -3 KPX OE W -3 KPX OE X -17 KPX Oacute A -41 KPX Oacute T -19 KPX Oacute V -41 KPX Oacute W -41 KPX Oacute Y -45 KPX Oacute Z -7 KPX Oacute colon 29 KPX Oacute comma -4 KPX Oacute period -4 KPX Oacute semicolon 28 KPX Ocircumflex T -19 KPX Ocircumflex V -41 KPX Ocircumflex Y -45 KPX Odieresis A -41 KPX Odieresis T -19 KPX Odieresis V -41 KPX Odieresis W -41 KPX Odieresis X -46 KPX Odieresis Y -45 KPX Odieresis colon 29 KPX Odieresis comma -4 KPX Odieresis period -4 KPX Odieresis semicolon 28 KPX Ograve T -19 KPX Ograve V -41 KPX Ograve Y -45 KPX Omicron A -36 KPX Omicron Alpha -70 KPX Omicron Chi -60 KPX Omicron Delta -46 KPX Omicron Lambda -70 KPX Omicron Psi -39 KPX Omicron Tau -48 KPX Omicron Upsilon -61 KPX Omicron Y -40 KPX Omicron Zeta -16 KPX Omicron lambda -31 KPX Omicrontonos lambda -5 KPX Oslash A -46 KPX Otilde T -19 KPX Otilde V -41 KPX Otilde Y -45 KPX P A -70 KPX P AE -85 KPX P Aacute -70 KPX P Abreve -70 KPX P Acircumflex -70 KPX P Adieresis -70 KPX P Alpha -112 KPX P Aogonek -70 KPX P Aring -70 KPX P B -40 KPX P C -13 KPX P D -29 KPX P E -44 KPX P F -46 KPX P G -6 KPX P H -40 KPX P I -36 KPX P J -87 KPX P K -42 KPX P L -41 KPX P M -43 KPX P N -39 KPX P O -18 KPX P OE -14 KPX P Omicron -40 KPX P P -39 KPX P Q -15 KPX P R -38 KPX P S -21 KPX P T -2 KPX P U -38 KPX P V -25 KPX P W -25 KPX P X -42 KPX P Y -29 KPX P Z -3 KPX P a -45 KPX P aacute -45 KPX P adieresis -40 KPX P ae -53 KPX P alpha -61 KPX P aring -45 KPX P comma -87 KPX P e -52 KPX P eacute -52 KPX P epsilon -41 KPX P epsilontonos -41 KPX P f 2 KPX P h -29 KPX P hyphen -33 KPX P i 12 KPX P j 9 KPX P l -27 KPX P o -47 KPX P oacute -47 KPX P odieresis -38 KPX P oe -52 KPX P omegatonos -84 KPX P omicron -72 KPX P omicrontonos -72 KPX P oslash -53 KPX P period -87 KPX P quotedblright 32 KPX P quoteright 10 KPX P quotesingle 9 KPX P t 7 KPX P w 12 KPX P y 17 KPX Phi A -22 KPX Phi Alpha -56 KPX Phi Lambda -56 KPX Phi T -15 KPX Phi Tau -38 KPX Phi Upsilon -51 KPX Phi Y -30 KPX Phi lambda -12 KPX Phi o 28 KPX Phi omega -11 KPX Phi omegatonos -11 KPX Phi omicron 5 KPX Phi omicrontonos 2 KPX Pi epsilontonos -23 KPX Pi lambda -12 KPX Pi o -9 KPX Pi omicron -36 KPX Psi A -55 KPX Psi Alpha -91 KPX Psi O -13 KPX Psi Omicron -35 KPX Q R -15 KPX Q U -16 KPX Q braceright 29 KPX Q bracketright 8 KPX Q hyphen 28 KPX Q parenright 13 KPX Q u -2 KPX Q udieresis -2 KPX R A 29 KPX R AE 28 KPX R B 8 KPX R C -16 KPX R Ccedilla -16 KPX R D 19 KPX R E 9 KPX R F 2 KPX R G -14 KPX R H 8 KPX R I 12 KPX R J 19 KPX R K 6 KPX R L 7 KPX R M 10 KPX R N 9 KPX R O -17 KPX R OE -15 KPX R Oacute -17 KPX R Odieresis -17 KPX R P 9 KPX R Q -17 KPX R R 10 KPX R S -7 KPX R T -25 KPX R Tcaron -25 KPX R Tcommaaccent -25 KPX R U -29 KPX R Udieresis -29 KPX R V -46 KPX R W -46 KPX R X 8 KPX R Y -40 KPX R Yacute -40 KPX R Z 1 KPX R a -4 KPX R aacute -4 KPX R adieresis -4 KPX R ae -13 KPX R aring -4 KPX R braceright 22 KPX R bracketright -3 KPX R e -22 KPX R eacute -22 KPX R hyphen -16 KPX R o -18 KPX R oacute -18 KPX R odieresis -18 KPX R oe -22 KPX R parenright 1 KPX R quotedblright 4 KPX R quoteright -18 KPX R quotesingle -15 KPX R u -13 KPX R uacute -13 KPX R udieresis -13 KPX R y -9 KPX R yacute -9 KPX Rho A -60 KPX Rho Alpha -101 KPX Rho Delta -75 KPX Rho Lambda -101 KPX Rho Omicron -33 KPX Rho Phi -9 KPX Rho Tau -34 KPX Rho Theta -1 KPX Rho Upsilon -50 KPX Rho Y -29 KPX Rho alpha -51 KPX Rho colon -9 KPX Rho comma -76 KPX Rho epsilon -32 KPX Rho epsilontonos -32 KPX Rho o -36 KPX Rho omegatonos -74 KPX Rho omicron -61 KPX Rho omicrontonos -61 KPX Rho period -77 KPX S A -11 KPX S AE -18 KPX S Aacute -11 KPX S Adieresis -11 KPX S Aring -11 KPX S C -9 KPX S G -3 KPX S J -18 KPX S O -6 KPX S OE -4 KPX S S -9 KPX S T -35 KPX S V -21 KPX S W -21 KPX S Y -25 KPX S Z -6 KPX S a 5 KPX S adieresis 5 KPX S ae -2 KPX S c 1 KPX S e -3 KPX S eacute -3 KPX S h -6 KPX S hyphen 28 KPX S i 1 KPX S j -4 KPX S l -2 KPX S oe -8 KPX S q -5 KPX S quoteright -22 KPX S t 7 KPX S v -20 KPX S w -20 KPX S y -30 KPX Sigma O 3 KPX Sigma Omicron -18 KPX Sigma Theta 8 KPX Sigma chi -33 KPX Sigma o 6 KPX Sigma omicron -16 KPX Sigma tau -17 KPX T A -53 KPX T AE -54 KPX T Aacute -53 KPX T Abreve -53 KPX T Acircumflex -53 KPX T Adieresis -53 KPX T Agrave -53 KPX T Alpha -75 KPX T Aogonek -53 KPX T Aring -53 KPX T Atilde -53 KPX T B -10 KPX T C -15 KPX T E -9 KPX T F -16 KPX T G -9 KPX T H -10 KPX T I -6 KPX T J -63 KPX T K -12 KPX T L -11 KPX T Lambda -75 KPX T M -12 KPX T N -8 KPX T O -22 KPX T OE -18 KPX T Oacute -22 KPX T Ocircumflex -22 KPX T Odieresis -22 KPX T Ograve -22 KPX T Ohungarumlaut -22 KPX T Omicron -44 KPX T Oslash -19 KPX T Otilde -22 KPX T P -9 KPX T Phi -20 KPX T Q -18 KPX T R -8 KPX T S -16 KPX T T 2 KPX T Tau -34 KPX T U -1 KPX T Upsilon -11 KPX T V 15 KPX T W 15 KPX T X -2 KPX T Y 11 KPX T a -72 KPX T aacute -72 KPX T adieresis -22 KPX T ae -80 KPX T alpha -93 KPX T alphatonos -90 KPX T aogonek -72 KPX T braceright -4 KPX T bracketright -10 KPX T c -74 KPX T cacute -67 KPX T ccedilla -76 KPX T colon -47 KPX T comma -62 KPX T e -79 KPX T eacute -62 KPX T eogonek -79 KPX T epsilon -89 KPX T epsilontonos -69 KPX T g -81 KPX T guillemotleft -92 KPX T guilsinglleft -102 KPX T h 4 KPX T hyphen -57 KPX T i -4 KPX T iacute -10 KPX T j -3 KPX T l 6 KPX T o -75 KPX T odieresis -20 KPX T oacute -75 KPX T ocircumflex -27 KPX T oe -79 KPX T ohungarumlaut -41 KPX T omegatonos -112 KPX T omicron -101 KPX T omicrontonos -98 KPX T oslash -75 KPX T parenright -7 KPX T period -63 KPX T quotedblright 10 KPX T quoteright -11 KPX T quotesingle -6 KPX T r -72 KPX T racute -13 KPX T rho -99 KPX T s -73 KPX T sacute -38 KPX T scedilla -68 KPX T semicolon -49 KPX T sigma -90 KPX T u -78 KPX T udieresis -10 KPX T uacute -10 KPX T uhungarumlaut -10 KPX T upsilon -102 KPX T upsilontonos -62 KPX T uring -10 KPX T v -88 KPX T w -88 KPX T y -84 KPX T yacute 5 KPX T zeta -38 KPX Tau A -34 KPX Tau Alpha -59 KPX Tau Lambda -59 KPX Tau O -27 KPX Tau Omicron -49 KPX Tau Phi -31 KPX Tau T 1 KPX Tau Tau -39 KPX Tau Upsilon -9 KPX Tau Y 11 KPX Tau alpha -70 KPX Tau alphatonos -71 KPX Tau colon -17 KPX Tau comma -43 KPX Tau epsilon -60 KPX Tau epsilontonos -60 KPX Tau guillemotright -73 KPX Tau o -51 KPX Tau omegatonos -89 KPX Tau omicron -78 KPX Tau omicrontonos -78 KPX Tau period -46 KPX Tau quoteright 2 KPX Tau rho -74 KPX Tau semicolon -23 KPX Tau sigma -66 KPX Tau upsilon -73 KPX Tau upsilontonos -73 KPX Tau zeta -38 KPX Tcaron A -53 KPX Tcaron Aacute -53 KPX Tcaron Abreve -53 KPX Tcaron Acircumflex -53 KPX Tcaron Adieresis -53 KPX Tcaron Aogonek -53 KPX Tcaron J -63 KPX Tcaron Odieresis -22 KPX Tcaron aacute -48 KPX Tcaron aogonek -48 KPX Tcaron colon -23 KPX Tcaron comma -62 KPX Tcaron eacute -61 KPX Tcaron eogonek -61 KPX Tcaron hyphen -46 KPX Tcaron nacute -14 KPX Tcaron ncaron -14 KPX Tcaron oacute -57 KPX Tcaron ohungarumlaut -41 KPX Tcaron period -63 KPX Tcaron racute -13 KPX Tcaron rcaron -9 KPX Tcaron sacute -38 KPX Tcaron semicolon -23 KPX Tcaron tcaron -4 KPX Tcaron tcommaaccent 1 KPX Tcaron uacute -10 KPX Tcaron uhungarumlaut -10 KPX Tcaron yacute 5 KPX Tcaron zacute -15 KPX Tcaron zcaron -3 KPX Tcaron zdotaccent -15 KPX Tcommaaccent Aacute -53 KPX Tcommaaccent Abreve -53 KPX Tcommaaccent Acircumflex -53 KPX Tcommaaccent Adieresis -53 KPX Tcommaaccent Aogonek -53 KPX Tcommaaccent aacute -54 KPX Tcommaaccent aogonek -54 KPX Tcommaaccent eacute -61 KPX Tcommaaccent eogonek -61 KPX Tcommaaccent nacute -20 KPX Tcommaaccent ncaron -20 KPX Tcommaaccent oacute -57 KPX Tcommaaccent ohungarumlaut -42 KPX Tcommaaccent racute -18 KPX Tcommaaccent rcaron -9 KPX Tcommaaccent sacute -44 KPX Tcommaaccent tcaron -10 KPX Tcommaaccent tcommaaccent -4 KPX Tcommaaccent uacute -16 KPX Tcommaaccent uhungarumlaut -16 KPX Tcommaaccent uring -16 KPX Tcommaaccent zacute -20 KPX Tcommaaccent zcaron -2 KPX Tcommaaccent zdotaccent -20 KPX Theta A -39 KPX Theta Alpha -72 KPX Theta Lambda -72 KPX Theta Upsilon -69 KPX Theta Y -48 KPX U A -54 KPX U AE -68 KPX U Aacute -54 KPX U Acircumflex -54 KPX U Adieresis -54 KPX U Aring -54 KPX U Atilde -54 KPX U S -23 KPX U T -6 KPX U V 7 KPX U W 7 KPX U X -10 KPX U Y 3 KPX U Z -16 KPX U comma -23 KPX U j -27 KPX U m -23 KPX U n -27 KPX U p -18 KPX U period -22 KPX U r -20 KPX U v -28 KPX U w -28 KPX U x -39 KPX U y -24 KPX U z -29 KPX Uacute A -60 KPX Uacute comma -23 KPX Uacute m -23 KPX Uacute n -27 KPX Uacute p -18 KPX Uacute period -22 KPX Uacute r -20 KPX Ucircumflex A -60 KPX Udieresis A -60 KPX Udieresis b 1 KPX Udieresis comma -23 KPX Udieresis m -23 KPX Udieresis n -27 KPX Udieresis p -18 KPX Udieresis period -22 KPX Udieresis r -20 KPX Ugrave A -60 KPX Upsilon A -30 KPX Upsilon Alpha -54 KPX Upsilon Delta -74 KPX Upsilon O -25 KPX Upsilon Omicron -47 KPX Upsilon Phi -35 KPX Upsilon T 29 KPX Upsilon Tau -12 KPX Upsilon Theta -14 KPX Upsilon comma -34 KPX Upsilon guillemotright -63 KPX Upsilon omicrontonos -67 KPX Upsilon period -35 KPX Upsilon pi -46 KPX Upsilontonos sigma -67 KPX V A -80 KPX V AE -95 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V C -40 KPX V E -4 KPX V G -40 KPX V H -5 KPX V I -1 KPX V J -61 KPX V L -6 KPX V O -43 KPX V OE -41 KPX V Oacute -43 KPX V Ocircumflex -43 KPX V Odieresis -43 KPX V Ograve -43 KPX V Ohungarumlaut -43 KPX V Oslash -43 KPX V Otilde -43 KPX V R -3 KPX V S -26 KPX V T 6 KPX V U 3 KPX V Y 16 KPX V a -61 KPX V aacute -61 KPX V adieresis -19 KPX V ae -69 KPX V aogonek -61 KPX V braceright -5 KPX V bracketright -5 KPX V c -63 KPX V colon -36 KPX V comma -77 KPX V dcaron -61 KPX V e -68 KPX V eacute -68 KPX V ecaron -21 KPX V eogonek -68 KPX V g -70 KPX V guillemotleft -81 KPX V guilsinglleft -91 KPX V h 9 KPX V hyphen -41 KPX V i -12 KPX V iacute -41 KPX V j -20 KPX V l 11 KPX V o -64 KPX V oacute -64 KPX V ocircumflex -61 KPX V odieresis -16 KPX V oe -68 KPX V ohungarumlaut -64 KPX V oslash -70 KPX V parenright -2 KPX V period -76 KPX V r -44 KPX V racute -44 KPX V rcaron -7 KPX V sacute -62 KPX V semicolon -37 KPX V u -48 KPX V uacute -44 KPX V udieresis -30 KPX V uhungarumlaut -44 KPX V uring -44 KPX V y -31 KPX V yacute -31 KPX W A -65 KPX W AE -80 KPX W Aacute -65 KPX W Abreve -65 KPX W Acircumflex -65 KPX W Adieresis -65 KPX W Agrave -65 KPX W Aogonek -65 KPX W Aring -65 KPX W Atilde -65 KPX W B -4 KPX W C -28 KPX W D 7 KPX W E -2 KPX W F -9 KPX W G -23 KPX W H -4 KPX W J -59 KPX W K -5 KPX W L -5 KPX W M -6 KPX W N -1 KPX W O -31 KPX W OE -24 KPX W Oacute -31 KPX W Ocircumflex -31 KPX W Odieresis -31 KPX W Ograve -31 KPX W Ohungarumlaut -31 KPX W Oslash -26 KPX W Otilde -31 KPX W P -2 KPX W R -1 KPX W S -24 KPX W T 8 KPX W U 5 KPX W V 21 KPX W W 21 KPX W Y 17 KPX W Z -1 KPX W a -36 KPX W aacute -36 KPX W adieresis -17 KPX W ae -44 KPX W aogonek -36 KPX W braceright 9 KPX W bracketright -4 KPX W c -39 KPX W colon -11 KPX W comma -43 KPX W dcaron -36 KPX W e -44 KPX W eacute -44 KPX W ecaron -19 KPX W eogonek -44 KPX W g -44 KPX W guillemotleft -56 KPX W guilsinglleft -66 KPX W h 10 KPX W hyphen -18 KPX W i -11 KPX W iacute -32 KPX W j -18 KPX W l 13 KPX W o -40 KPX W oacute -40 KPX W ocircumflex -40 KPX W odieresis -15 KPX W oe -44 KPX W ohungarumlaut -40 KPX W oslash -45 KPX W period -45 KPX W quotedblright 17 KPX W quoteright -5 KPX W quotesingle -6 KPX W r -35 KPX W racute -35 KPX W rcaron -5 KPX W sacute -37 KPX W semicolon -11 KPX W u -38 KPX W uacute -36 KPX W udieresis -29 KPX W uhungarumlaut -36 KPX W uring -36 KPX W y -23 KPX W yacute -23 KPX X A 21 KPX X AE 20 KPX X C -40 KPX X O -43 KPX X OE -41 KPX X Odieresis -43 KPX X Q -43 KPX X T -4 KPX X W 9 KPX X Y 5 KPX X a -12 KPX X ae -21 KPX X alpha -51 KPX X alphatonos -52 KPX X braceright -3 KPX X bracketright -16 KPX X e -33 KPX X eacute -33 KPX X epsilontonos -34 KPX X hyphen -30 KPX X o -31 KPX X odieresis -27 KPX X omega -70 KPX X omicron -54 KPX X omicrontonos -54 KPX X parenright -12 KPX X quotedblright -9 KPX X quoteright -32 KPX X quotesingle -32 KPX X tau -63 KPX X u -21 KPX X udieresis -21 KPX X y -72 KPX Xi alpha -20 KPX Xi alphatonos -21 KPX Xi upsilontonos -26 KPX Y A -46 KPX Y AE -47 KPX Y Aacute -46 KPX Y Abreve -46 KPX Y Acircumflex -46 KPX Y Adieresis -46 KPX Y Agrave -46 KPX Y Alpha -68 KPX Y Aogonek -46 KPX Y Aring -46 KPX Y Atilde -46 KPX Y C -40 KPX Y Delta -91 KPX Y G -40 KPX Y J -56 KPX Y O -43 KPX Y OE -41 KPX Y Oacute -43 KPX Y Ocircumflex -43 KPX Y Odieresis -43 KPX Y Ograve -43 KPX Y Omicron -65 KPX Y Oslash -43 KPX Y Otilde -43 KPX Y Phi -58 KPX Y Q -43 KPX Y S -26 KPX Y T 6 KPX Y Tau -34 KPX Y Theta -38 KPX Y V 20 KPX Y W 20 KPX Y X 2 KPX Y Z -3 KPX Y a -55 KPX Y aacute -55 KPX Y adieresis -19 KPX Y ae -63 KPX Y aogonek -55 KPX Y braceright -5 KPX Y bracketright -5 KPX Y colon -30 KPX Y comma -51 KPX Y c -57 KPX Y d -55 KPX Y e -62 KPX Y eacute -62 KPX Y eogonek -62 KPX Y g -63 KPX Y guillemotleft -81 KPX Y guilsinglleft -91 KPX Y hyphen -47 KPX Y i -12 KPX Y iacute -53 KPX Y m -56 KPX Y n -60 KPX Y o -58 KPX Y odieresis -16 KPX Y oacute -58 KPX Y ohungarumlaut -58 KPX Y omicrontonos -85 KPX Y oslash -64 KPX Y p -48 KPX Y parenright -2 KPX Y period -52 KPX Y pi -64 KPX Y q -66 KPX Y quotedblright 4 KPX Y quoteright -18 KPX Y quotesingle -18 KPX Y r -55 KPX Y racute -55 KPX Y s -56 KPX Y semicolon -31 KPX Y u -60 KPX Y udieresis -30 KPX Y uacute -56 KPX Y uhungarumlaut -56 KPX Y v -51 KPX Y w -51 KPX Y z -60 KPX Yacute Aacute -46 KPX Yacute Abreve -46 KPX Yacute Acircumflex -46 KPX Yacute Adieresis -46 KPX Yacute Aogonek -46 KPX Yacute J -56 KPX Yacute aacute -55 KPX Yacute colon -30 KPX Yacute comma -51 KPX Yacute eacute -62 KPX Yacute eogonek -62 KPX Yacute hyphen -47 KPX Yacute oacute -58 KPX Yacute ohungarumlaut -58 KPX Yacute period -52 KPX Yacute scedilla -51 KPX Yacute semicolon -31 KPX Yacute uacute -56 KPX Z A 9 KPX Z AE 6 KPX Z E -12 KPX Z I -8 KPX Z O -5 KPX Z OE -3 KPX Z Oacute -5 KPX Z U -15 KPX Z W -14 KPX Z Y -18 KPX Z Z -6 KPX Z a 10 KPX Z adieresis 10 KPX Z ae 2 KPX Z braceright 28 KPX Z bracketright 8 KPX Z colon 30 KPX Z comma 41 KPX Z epsilon -7 KPX Z hyphen 33 KPX Z i 5 KPX Z o 4 KPX Z odieresis 4 KPX Z omicron -18 KPX Z parenright 13 KPX Z period 38 KPX Z quotedblright -8 KPX Z quoteright -30 KPX Z quotesingle -32 KPX Z semicolon 28 KPX Z v -16 KPX Z w -20 KPX Z y -25 KPX Zeta O 2 KPX Zeta Omicron -19 KPX Zeta epsilon -7 KPX Zeta o 5 KPX Zeta omicron -21 KPX a comma 30 KPX a endash 41 KPX a g 1 KPX a germandbls 12 KPX a j 6 KPX a period 30 KPX a quoteright -13 KPX a s 12 KPX a t 19 KPX a v -5 KPX a w -6 KPX a x 13 KPX a y -3 KPX a z 4 KPX adieresis comma 31 KPX adieresis endash 42 KPX adieresis g 1 KPX adieresis germandbls 9 KPX adieresis j 9 KPX adieresis period 29 KPX adieresis quoteright -13 KPX adieresis s 13 KPX adieresis t 19 KPX adieresis v -6 KPX adieresis w -6 KPX adieresis x 13 KPX adieresis y -3 KPX adieresis z 4 KPX aacute v -4 KPX aacute w -6 KPX aacute y -3 KPX ae r -1 KPX ae v -6 KPX ae w -6 KPX ae y -8 KPX afii10017 afii10025 -50 KPX afii10017 afii10029 -24 KPX afii10017 afii10032 -58 KPX afii10017 afii10035 -60 KPX afii10017 afii10036 -82 KPX afii10017 afii10037 -85 KPX afii10017 afii10038 -63 KPX afii10017 afii10041 -109 KPX afii10017 afii10044 -100 KPX afii10017 afii10053 -56 KPX afii10017 afii10058 -19 KPX afii10017 afii10060 -74 KPX afii10017 afii10062 -85 KPX afii10017 afii10073 -50 KPX afii10017 afii10077 -39 KPX afii10017 afii10080 -52 KPX afii10017 afii10083 -51 KPX afii10017 afii10084 -49 KPX afii10017 afii10085 -58 KPX afii10017 afii10086 -43 KPX afii10017 afii10089 -82 KPX afii10017 afii10092 -67 KPX afii10017 afii10106 -32 KPX afii10017 afii10110 -49 KPX afii10017 colon 3 KPX afii10017 comma -2 KPX afii10017 guillemotright -41 KPX afii10017 hyphen -7 KPX afii10018 afii10017 -42 KPX afii10018 afii10024 -31 KPX afii10018 afii10036 -45 KPX afii10018 afii10037 -39 KPX afii10018 afii10041 -48 KPX afii10018 afii10042 -35 KPX afii10018 afii10060 -37 KPX afii10018 afii10062 -39 KPX afii10018 afii10072 -45 KPX afii10018 afii10084 -15 KPX afii10018 afii10085 -23 KPX afii10018 afii10092 -36 KPX afii10018 afii10106 -16 KPX afii10018 afii10110 -9 KPX afii10019 afii10017 -57 KPX afii10019 afii10024 -46 KPX afii10019 afii10036 -56 KPX afii10019 afii10037 -62 KPX afii10019 afii10041 -78 KPX afii10019 afii10042 -49 KPX afii10019 afii10060 -52 KPX afii10019 afii10062 -76 KPX afii10019 afii10072 -60 KPX afii10019 afii10084 -27 KPX afii10019 afii10085 -32 KPX afii10019 afii10089 -54 KPX afii10019 afii10092 -43 KPX afii10019 afii10106 -33 KPX afii10019 afii10110 -22 KPX afii10020 afii10021 -41 KPX afii10020 afii10029 -47 KPX afii10020 afii10032 -39 KPX afii10020 afii10035 -31 KPX afii10020 afii10036 -25 KPX afii10020 afii10037 -9 KPX afii10020 afii10038 -31 KPX afii10020 afii10041 -18 KPX afii10020 afii10053 -29 KPX afii10020 afii10058 -43 KPX afii10020 afii10060 -17 KPX afii10020 afii10062 -10 KPX afii10020 afii10065 -79 KPX afii10020 afii10067 -83 KPX afii10020 afii10069 -24 KPX afii10020 afii10070 -85 KPX afii10020 afii10072 -92 KPX afii10020 afii10073 -53 KPX afii10020 afii10074 -49 KPX afii10020 afii10076 -42 KPX afii10020 afii10077 -111 KPX afii10020 afii10078 -59 KPX afii10020 afii10079 -54 KPX afii10020 afii10080 -89 KPX afii10020 afii10081 -46 KPX afii10020 afii10082 -51 KPX afii10020 afii10083 -90 KPX afii10020 afii10084 -39 KPX afii10020 afii10085 -23 KPX afii10020 afii10086 -82 KPX afii10020 afii10087 -32 KPX afii10020 afii10088 -53 KPX afii10020 afii10089 -42 KPX afii10020 afii10092 -45 KPX afii10020 afii10096 -48 KPX afii10020 afii10097 -88 KPX afii10020 afii10101 -82 KPX afii10020 afii10106 -104 KPX afii10020 afii10110 -11 KPX afii10020 colon -32 KPX afii10020 comma -73 KPX afii10020 hyphen -54 KPX afii10020 period -79 KPX afii10020 semicolon -34 KPX afii10022 afii10038 -35 KPX afii10024 afii10025 -14 KPX afii10024 afii10032 -46 KPX afii10024 afii10035 -51 KPX afii10024 afii10038 -54 KPX afii10024 afii10053 -44 KPX afii10024 afii10065 -34 KPX afii10024 afii10066 -56 KPX afii10024 afii10070 -48 KPX afii10024 afii10073 -38 KPX afii10024 afii10080 -51 KPX afii10024 afii10083 -49 KPX afii10024 afii10084 -24 KPX afii10024 afii10085 -60 KPX afii10024 afii10086 -43 KPX afii10024 afii10089 -86 KPX afii10024 afii10101 -46 KPX afii10024 afii10110 -3 KPX afii10025 afii10017 -40 KPX afii10025 afii10021 -29 KPX afii10025 afii10024 -29 KPX afii10025 afii10025 7 KPX afii10025 afii10029 4 KPX afii10025 afii10036 -31 KPX afii10025 afii10037 -37 KPX afii10025 afii10039 -42 KPX afii10025 afii10041 -53 KPX afii10025 afii10049 -23 KPX afii10025 afii10058 9 KPX afii10025 afii10060 -27 KPX afii10025 afii10062 -54 KPX afii10025 afii10077 -22 KPX afii10025 afii10084 -2 KPX afii10025 afii10085 -10 KPX afii10025 afii10087 -11 KPX afii10025 afii10089 -33 KPX afii10025 afii10097 -10 KPX afii10025 afii10106 -14 KPX afii10025 afii10110 7 KPX afii10028 afii10025 -32 KPX afii10028 afii10032 -58 KPX afii10028 afii10035 -63 KPX afii10028 afii10038 -66 KPX afii10028 afii10053 -56 KPX afii10028 afii10065 -39 KPX afii10028 afii10066 -63 KPX afii10028 afii10070 -55 KPX afii10028 afii10073 -43 KPX afii10028 afii10080 -58 KPX afii10028 afii10083 -54 KPX afii10028 afii10084 -30 KPX afii10028 afii10085 -65 KPX afii10028 afii10086 -48 KPX afii10028 afii10089 -98 KPX afii10028 afii10101 -52 KPX afii10028 afii10110 -21 KPX afii10032 afii10017 -70 KPX afii10032 afii10021 -50 KPX afii10032 afii10024 -58 KPX afii10032 afii10025 -14 KPX afii10032 afii10029 -31 KPX afii10032 afii10036 -49 KPX afii10032 afii10037 -55 KPX afii10032 afii10039 -61 KPX afii10032 afii10041 -63 KPX afii10032 afii10044 -61 KPX afii10032 afii10049 -37 KPX afii10032 afii10058 -27 KPX afii10032 afii10060 -41 KPX afii10032 afii10062 -68 KPX afii10032 afii10077 -44 KPX afii10032 afii10106 -36 KPX afii10034 afii10017 -101 KPX afii10034 afii10021 -76 KPX afii10034 afii10029 -63 KPX afii10034 afii10035 -27 KPX afii10034 afii10041 -64 KPX afii10034 afii10049 -55 KPX afii10034 afii10058 -59 KPX afii10034 afii10065 -51 KPX afii10034 afii10067 -52 KPX afii10034 afii10068 -33 KPX afii10034 afii10069 -56 KPX afii10034 afii10070 -57 KPX afii10034 afii10073 -21 KPX afii10034 afii10077 -96 KPX afii10034 afii10080 -61 KPX afii10034 afii10083 -61 KPX afii10034 afii10086 -48 KPX afii10034 afii10101 -54 KPX afii10034 afii10106 -89 KPX afii10034 colon -9 KPX afii10034 comma -76 KPX afii10034 hyphen -23 KPX afii10034 period -77 KPX afii10034 semicolon -13 KPX afii10035 afii10017 -53 KPX afii10035 afii10024 -28 KPX afii10035 afii10025 -10 KPX afii10035 afii10029 -4 KPX afii10035 afii10032 -29 KPX afii10035 afii10035 -30 KPX afii10035 afii10036 -46 KPX afii10035 afii10037 -31 KPX afii10035 afii10038 -32 KPX afii10035 afii10039 -28 KPX afii10035 afii10049 -41 KPX afii10035 afii10060 -38 KPX afii10035 afii10062 -31 KPX afii10035 afii10084 -34 KPX afii10035 afii10085 -39 KPX afii10035 afii10089 -59 KPX afii10035 afii10106 -24 KPX afii10035 afii10110 -19 KPX afii10036 afii10017 -59 KPX afii10036 afii10021 -51 KPX afii10036 afii10025 -37 KPX afii10036 afii10029 -56 KPX afii10036 afii10032 -49 KPX afii10036 afii10035 -45 KPX afii10036 afii10036 -39 KPX afii10036 afii10037 -24 KPX afii10036 afii10038 -46 KPX afii10036 afii10049 -57 KPX afii10036 afii10053 -44 KPX afii10036 afii10058 -51 KPX afii10036 afii10060 -31 KPX afii10036 afii10062 -24 KPX afii10036 afii10065 -65 KPX afii10036 afii10067 -69 KPX afii10036 afii10068 -72 KPX afii10036 afii10069 -38 KPX afii10036 afii10070 -71 KPX afii10036 afii10072 -100 KPX afii10036 afii10073 -68 KPX afii10036 afii10074 -64 KPX afii10036 afii10076 -56 KPX afii10036 afii10077 -71 KPX afii10036 afii10078 -55 KPX afii10036 afii10079 -69 KPX afii10036 afii10080 -75 KPX afii10036 afii10081 -60 KPX afii10036 afii10082 -65 KPX afii10036 afii10083 -76 KPX afii10036 afii10084 -54 KPX afii10036 afii10085 -37 KPX afii10036 afii10086 -68 KPX afii10036 afii10087 -47 KPX afii10036 afii10088 -68 KPX afii10036 afii10089 -56 KPX afii10036 afii10092 -60 KPX afii10036 afii10097 -63 KPX afii10036 afii10101 -68 KPX afii10036 afii10106 -64 KPX afii10036 afii10110 -26 KPX afii10036 colon -17 KPX afii10036 comma -43 KPX afii10036 guillemotright -73 KPX afii10036 hyphen -40 KPX afii10036 period -46 KPX afii10036 semicolon -23 KPX afii10037 afii10017 -121 KPX afii10037 afii10021 -28 KPX afii10037 afii10025 -10 KPX afii10037 afii10029 -34 KPX afii10037 afii10032 -64 KPX afii10037 afii10035 -63 KPX afii10037 afii10036 -12 KPX afii10037 afii10037 3 KPX afii10037 afii10038 -66 KPX afii10037 afii10041 -5 KPX afii10037 afii10049 -68 KPX afii10037 afii10053 -62 KPX afii10037 afii10058 -30 KPX afii10037 afii10060 -16 KPX afii10037 afii10065 -84 KPX afii10037 afii10066 -81 KPX afii10037 afii10069 -11 KPX afii10037 afii10070 -90 KPX afii10037 afii10072 -112 KPX afii10037 afii10073 -78 KPX afii10037 afii10074 -79 KPX afii10037 afii10076 -71 KPX afii10037 afii10077 -120 KPX afii10037 afii10078 -86 KPX afii10037 afii10079 -81 KPX afii10037 afii10080 -94 KPX afii10037 afii10081 -75 KPX afii10037 afii10082 -75 KPX afii10037 afii10083 -89 KPX afii10037 afii10084 -69 KPX afii10037 afii10085 -50 KPX afii10037 afii10086 -87 KPX afii10037 afii10087 -59 KPX afii10037 afii10088 -83 KPX afii10037 afii10089 -71 KPX afii10037 afii10096 -78 KPX afii10037 afii10097 -97 KPX afii10037 afii10101 -87 KPX afii10037 afii10106 -112 KPX afii10037 colon -38 KPX afii10037 comma -81 KPX afii10037 guillemotright -79 KPX afii10037 hyphen -41 KPX afii10037 period -86 KPX afii10037 semicolon -41 KPX afii10038 afii10017 -72 KPX afii10038 afii10021 -57 KPX afii10038 afii10024 -65 KPX afii10038 afii10029 -33 KPX afii10038 afii10037 -61 KPX afii10038 afii10039 -67 KPX afii10038 afii10041 -68 KPX afii10038 afii10044 -66 KPX afii10038 afii10049 -43 KPX afii10038 afii10058 -28 KPX afii10038 afii10062 -69 KPX afii10038 afii10069 -13 KPX afii10038 afii10077 -40 KPX afii10038 afii10106 -38 KPX afii10039 afii10025 -35 KPX afii10039 afii10032 -52 KPX afii10039 afii10035 -52 KPX afii10039 afii10038 -59 KPX afii10039 afii10053 -50 KPX afii10039 afii10065 -40 KPX afii10039 afii10070 -54 KPX afii10039 afii10073 -44 KPX afii10039 afii10080 -57 KPX afii10039 afii10083 -55 KPX afii10039 afii10084 -31 KPX afii10039 afii10085 -63 KPX afii10039 afii10086 -49 KPX afii10039 afii10089 -91 KPX afii10039 afii10101 -51 KPX afii10044 afii10036 -90 KPX afii10044 afii10037 -67 KPX afii10044 afii10041 -110 KPX afii10044 afii10044 -102 KPX afii10044 afii10060 -82 KPX afii10044 afii10062 -67 KPX afii10044 afii10092 -46 KPX afii10046 afii10036 -87 KPX afii10046 afii10037 -64 KPX afii10046 afii10041 -107 KPX afii10046 afii10044 -99 KPX afii10046 afii10060 -79 KPX afii10046 afii10062 -64 KPX afii10046 afii10092 -43 KPX afii10047 afii10017 -66 KPX afii10047 afii10021 -51 KPX afii10047 afii10029 -27 KPX afii10047 afii10036 -46 KPX afii10047 afii10037 -52 KPX afii10047 afii10041 -61 KPX afii10047 afii10044 -59 KPX afii10047 afii10049 -38 KPX afii10047 afii10058 -22 KPX afii10047 afii10060 -42 KPX afii10047 afii10062 -65 KPX afii10047 afii10106 -33 KPX afii10048 afii10017 -71 KPX afii10048 afii10021 -50 KPX afii10048 afii10024 -58 KPX afii10048 afii10025 -14 KPX afii10048 afii10029 -35 KPX afii10048 afii10036 -49 KPX afii10048 afii10037 -55 KPX afii10048 afii10039 -61 KPX afii10048 afii10041 -64 KPX afii10048 afii10044 -62 KPX afii10048 afii10049 -37 KPX afii10048 afii10058 -30 KPX afii10048 afii10060 -41 KPX afii10048 afii10062 -68 KPX afii10048 afii10077 -44 KPX afii10048 afii10106 -37 KPX afii10050 afii10021 25 KPX afii10050 afii10029 19 KPX afii10050 afii10032 -13 KPX afii10050 afii10035 -7 KPX afii10050 afii10036 41 KPX afii10050 afii10037 57 KPX afii10050 afii10038 -17 KPX afii10050 afii10041 48 KPX afii10050 afii10049 -3 KPX afii10050 afii10053 -5 KPX afii10050 afii10058 23 KPX afii10050 afii10060 40 KPX afii10050 afii10062 56 KPX afii10050 afii10065 -37 KPX afii10050 afii10067 -41 KPX afii10050 afii10069 43 KPX afii10050 afii10070 -49 KPX afii10050 afii10072 -75 KPX afii10050 afii10073 -45 KPX afii10050 afii10074 -58 KPX afii10050 afii10076 -46 KPX afii10050 afii10077 -43 KPX afii10050 afii10078 -27 KPX afii10050 afii10079 -54 KPX afii10050 afii10080 -53 KPX afii10050 afii10081 -50 KPX afii10050 afii10082 -44 KPX afii10050 afii10083 -48 KPX afii10050 afii10084 -44 KPX afii10050 afii10085 -52 KPX afii10050 afii10086 -39 KPX afii10050 afii10087 -37 KPX afii10050 afii10088 -62 KPX afii10050 afii10089 -76 KPX afii10050 afii10092 -62 KPX afii10050 afii10096 -53 KPX afii10050 afii10097 -35 KPX afii10050 afii10101 -46 KPX afii10050 afii10106 -36 KPX afii10050 afii10110 56 KPX afii10052 afii10021 -41 KPX afii10052 afii10029 -47 KPX afii10052 afii10032 -39 KPX afii10052 afii10035 -31 KPX afii10052 afii10036 -25 KPX afii10052 afii10037 -9 KPX afii10052 afii10038 -31 KPX afii10052 afii10041 -18 KPX afii10052 afii10053 -29 KPX afii10052 afii10058 -43 KPX afii10052 afii10060 -17 KPX afii10052 afii10062 -10 KPX afii10052 afii10065 -79 KPX afii10052 afii10067 -83 KPX afii10052 afii10069 -24 KPX afii10052 afii10070 -85 KPX afii10052 afii10072 -92 KPX afii10052 afii10073 -53 KPX afii10052 afii10074 -49 KPX afii10052 afii10076 -42 KPX afii10052 afii10077 -111 KPX afii10052 afii10078 -59 KPX afii10052 afii10079 -54 KPX afii10052 afii10080 -89 KPX afii10052 afii10081 -46 KPX afii10052 afii10082 -51 KPX afii10052 afii10083 -90 KPX afii10052 afii10084 -39 KPX afii10052 afii10085 -23 KPX afii10052 afii10086 -82 KPX afii10052 afii10087 -32 KPX afii10052 afii10088 -53 KPX afii10052 afii10089 -42 KPX afii10052 afii10092 -45 KPX afii10052 afii10096 -48 KPX afii10052 afii10097 -88 KPX afii10052 afii10101 -82 KPX afii10052 afii10106 -104 KPX afii10052 afii10110 -11 KPX afii10058 afii10036 -96 KPX afii10058 afii10037 -72 KPX afii10058 afii10041 -116 KPX afii10058 afii10044 -107 KPX afii10058 afii10060 -88 KPX afii10058 afii10062 -73 KPX afii10058 afii10092 -52 KPX afii10059 afii10036 -75 KPX afii10059 afii10037 -52 KPX afii10059 afii10041 -95 KPX afii10059 afii10044 -91 KPX afii10059 afii10060 -72 KPX afii10059 afii10062 -52 KPX afii10059 afii10092 -31 KPX afii10061 afii10025 -32 KPX afii10061 afii10032 -61 KPX afii10061 afii10035 -66 KPX afii10061 afii10038 -69 KPX afii10061 afii10053 -60 KPX afii10061 afii10065 -40 KPX afii10061 afii10066 -68 KPX afii10061 afii10070 -55 KPX afii10061 afii10073 -44 KPX afii10061 afii10080 -58 KPX afii10061 afii10083 -55 KPX afii10061 afii10084 -30 KPX afii10061 afii10085 -73 KPX afii10061 afii10086 -49 KPX afii10061 afii10089 -106 KPX afii10061 afii10101 -52 KPX afii10061 afii10110 -22 KPX afii10062 afii10017 -122 KPX afii10062 afii10021 -28 KPX afii10062 afii10025 -11 KPX afii10062 afii10029 -35 KPX afii10062 afii10032 -78 KPX afii10062 afii10035 -71 KPX afii10062 afii10036 -13 KPX afii10062 afii10038 -75 KPX afii10062 afii10041 -6 KPX afii10062 afii10049 -68 KPX afii10062 afii10053 -70 KPX afii10062 afii10058 -30 KPX afii10062 afii10060 -17 KPX afii10062 afii10062 2 KPX afii10062 afii10065 -93 KPX afii10062 afii10066 -81 KPX afii10062 afii10069 -11 KPX afii10062 afii10070 -99 KPX afii10062 afii10072 -113 KPX afii10062 afii10073 -78 KPX afii10062 afii10074 -80 KPX afii10062 afii10076 -72 KPX afii10062 afii10077 -128 KPX afii10062 afii10078 -87 KPX afii10062 afii10079 -82 KPX afii10062 afii10080 -102 KPX afii10062 afii10081 -76 KPX afii10062 afii10082 -76 KPX afii10062 afii10083 -98 KPX afii10062 afii10084 -70 KPX afii10062 afii10086 -95 KPX afii10062 afii10087 -60 KPX afii10062 afii10088 -84 KPX afii10062 afii10089 -72 KPX afii10062 afii10096 -79 KPX afii10062 afii10097 -106 KPX afii10062 afii10101 -96 KPX afii10062 afii10106 -120 KPX afii10065 afii10084 -12 KPX afii10065 afii10085 -21 KPX afii10065 afii10089 -44 KPX afii10065 afii10106 1 KPX afii10065 afii10110 -10 KPX afii10066 afii10072 -39 KPX afii10066 afii10073 -9 KPX afii10066 afii10084 -9 KPX afii10066 afii10085 -17 KPX afii10066 afii10087 -16 KPX afii10066 afii10089 -40 KPX afii10066 afii10097 -11 KPX afii10066 afii10110 -3 KPX afii10067 afii10072 -35 KPX afii10067 afii10073 -6 KPX afii10067 afii10084 -8 KPX afii10067 afii10085 -2 KPX afii10067 afii10087 -11 KPX afii10067 afii10089 -28 KPX afii10067 afii10097 -2 KPX afii10067 afii10110 -1 KPX afii10068 afii10069 -19 KPX afii10068 afii10077 -1 KPX afii10068 afii10080 -19 KPX afii10068 afii10083 -18 KPX afii10068 afii10086 -9 KPX afii10068 afii10097 10 KPX afii10068 afii10101 -12 KPX afii10068 afii10106 6 KPX afii10068 afii10110 -2 KPX afii10068 colon 29 KPX afii10068 comma 13 KPX afii10068 hyphen 10 KPX afii10068 period 9 KPX afii10068 semicolon 28 KPX afii10070 afii10072 -42 KPX afii10070 afii10073 -10 KPX afii10070 afii10077 -12 KPX afii10070 afii10085 -6 KPX afii10070 afii10087 -9 KPX afii10070 afii10089 -32 KPX afii10070 afii10097 -2 KPX afii10070 afii10110 -5 KPX afii10072 afii10066 -39 KPX afii10072 afii10070 -36 KPX afii10072 afii10073 -29 KPX afii10072 afii10080 -39 KPX afii10072 afii10083 -38 KPX afii10072 afii10086 -29 KPX afii10072 afii10101 -33 KPX afii10072 afii10110 -21 KPX afii10073 afii10072 -30 KPX afii10073 afii10077 -7 KPX afii10073 afii10084 -3 KPX afii10073 afii10085 -6 KPX afii10073 afii10087 -3 KPX afii10073 afii10089 -33 KPX afii10073 afii10097 6 KPX afii10075 afii10106 -14 KPX afii10076 afii10065 3 KPX afii10076 afii10066 -6 KPX afii10076 afii10070 -2 KPX afii10076 afii10073 9 KPX afii10076 afii10080 -6 KPX afii10076 afii10083 -4 KPX afii10076 afii10110 10 KPX afii10080 afii10072 -51 KPX afii10080 afii10073 -18 KPX afii10080 afii10077 -39 KPX afii10080 afii10084 -17 KPX afii10080 afii10085 -26 KPX afii10080 afii10087 -29 KPX afii10080 afii10092 -30 KPX afii10080 afii10106 -31 KPX afii10080 afii10110 -13 KPX afii10082 afii10072 -45 KPX afii10082 afii10073 -16 KPX afii10082 afii10077 -35 KPX afii10082 afii10084 -15 KPX afii10082 afii10085 -20 KPX afii10082 afii10087 -23 KPX afii10082 afii10089 -39 KPX afii10082 afii10097 -21 KPX afii10082 afii10101 -9 KPX afii10082 afii10110 -11 KPX afii10082 colon 29 KPX afii10082 comma 10 KPX afii10082 hyphen 33 KPX afii10082 period 8 KPX afii10082 semicolon 27 KPX afii10083 afii10062 -51 KPX afii10083 afii10065 -13 KPX afii10083 afii10072 -45 KPX afii10083 afii10073 -14 KPX afii10083 afii10077 -16 KPX afii10083 afii10080 -25 KPX afii10083 afii10084 -20 KPX afii10083 afii10085 -7 KPX afii10083 afii10086 -15 KPX afii10083 afii10087 -14 KPX afii10083 afii10089 -33 KPX afii10083 afii10097 -6 KPX afii10083 afii10106 -9 KPX afii10084 afii10065 -15 KPX afii10084 afii10069 -25 KPX afii10084 afii10070 -21 KPX afii10084 afii10073 -12 KPX afii10084 afii10077 -11 KPX afii10084 afii10080 -24 KPX afii10084 afii10083 -22 KPX afii10084 afii10084 -21 KPX afii10084 afii10085 -29 KPX afii10084 afii10086 -15 KPX afii10084 afii10089 -53 KPX afii10084 afii10101 -18 KPX afii10084 afii10106 -4 KPX afii10084 afii10110 -18 KPX afii10084 colon 24 KPX afii10084 comma 19 KPX afii10084 guillemotright -20 KPX afii10084 hyphen 9 KPX afii10084 period 17 KPX afii10084 semicolon 23 KPX afii10085 afii10065 -8 KPX afii10085 afii10069 -18 KPX afii10085 afii10070 -14 KPX afii10085 afii10073 -15 KPX afii10085 afii10077 -47 KPX afii10085 afii10080 -18 KPX afii10085 afii10083 -17 KPX afii10085 afii10084 -16 KPX afii10085 afii10086 -11 KPX afii10085 afii10089 -25 KPX afii10085 afii10097 -22 KPX afii10085 afii10101 -15 KPX afii10085 afii10106 -39 KPX afii10085 colon 26 KPX afii10085 comma -7 KPX afii10085 guillemotright -14 KPX afii10085 hyphen 26 KPX afii10085 period -7 KPX afii10085 semicolon 25 KPX afii10086 afii10068 -10 KPX afii10086 afii10069 -10 KPX afii10086 afii10072 -42 KPX afii10086 afii10073 -9 KPX afii10086 afii10077 -26 KPX afii10086 afii10084 -9 KPX afii10086 afii10085 -16 KPX afii10086 afii10087 -20 KPX afii10086 afii10089 -36 KPX afii10086 afii10092 -26 KPX afii10086 afii10097 -13 KPX afii10086 afii10106 -19 KPX afii10086 afii10110 -7 KPX afii10087 afii10065 -19 KPX afii10087 afii10070 -29 KPX afii10087 afii10073 -10 KPX afii10087 afii10080 -32 KPX afii10087 afii10083 -28 KPX afii10087 afii10086 -22 KPX afii10087 afii10101 -26 KPX afii10087 afii10110 -10 KPX afii10092 afii10070 -26 KPX afii10092 afii10083 -28 KPX afii10092 afii10084 -32 KPX afii10092 afii10085 -45 KPX afii10092 afii10089 -63 KPX afii10092 afii10092 -53 KPX afii10092 afii10110 -32 KPX afii10094 afii10070 -13 KPX afii10094 afii10083 -15 KPX afii10094 afii10084 -19 KPX afii10094 afii10085 -29 KPX afii10094 afii10089 -47 KPX afii10094 afii10092 -37 KPX afii10094 afii10110 -21 KPX afii10095 afii10077 -18 KPX afii10095 afii10084 -2 KPX afii10095 afii10085 -9 KPX afii10095 afii10089 -29 KPX afii10095 afii10092 -19 KPX afii10095 afii10097 -6 KPX afii10095 afii10106 -10 KPX afii10096 afii10072 -46 KPX afii10096 afii10073 -13 KPX afii10096 afii10077 -33 KPX afii10096 afii10084 -12 KPX afii10096 afii10085 -21 KPX afii10096 afii10087 -24 KPX afii10096 afii10089 -39 KPX afii10096 afii10092 -26 KPX afii10096 afii10106 -26 KPX afii10096 afii10110 -8 KPX afii10098 afii10069 -26 KPX afii10098 afii10077 -59 KPX afii10098 afii10080 -33 KPX afii10098 afii10083 -34 KPX afii10098 afii10086 -18 KPX afii10098 afii10097 -21 KPX afii10098 afii10101 -25 KPX afii10098 afii10106 -51 KPX afii10100 afii10069 -28 KPX afii10100 afii10077 -7 KPX afii10100 afii10080 -25 KPX afii10100 afii10083 -25 KPX afii10100 afii10086 -18 KPX afii10100 afii10097 4 KPX afii10100 afii10101 -18 KPX afii10106 afii10084 -33 KPX afii10106 afii10085 -47 KPX afii10106 afii10089 -64 KPX afii10106 afii10092 -55 KPX afii10106 afii10110 -34 KPX afii10107 afii10070 -22 KPX afii10107 afii10083 -24 KPX afii10107 afii10084 -28 KPX afii10107 afii10085 -38 KPX afii10107 afii10089 -56 KPX afii10107 afii10092 -50 KPX afii10107 afii10101 -22 KPX afii10107 afii10110 -30 KPX afii10109 afii10065 15 KPX afii10109 afii10066 3 KPX afii10109 afii10070 9 KPX afii10109 afii10073 12 KPX afii10109 afii10080 6 KPX afii10109 afii10083 7 KPX afii10109 afii10086 13 KPX afii10109 afii10101 12 KPX afii10109 afii10110 12 KPX afii10110 afii10069 -10 KPX afii10110 afii10070 -6 KPX afii10110 afii10073 -6 KPX afii10110 afii10077 -39 KPX afii10110 afii10080 -10 KPX afii10110 afii10083 -8 KPX afii10110 afii10084 -7 KPX afii10110 afii10086 -3 KPX afii10110 afii10089 -25 KPX afii10110 afii10097 -14 KPX afii10110 afii10101 -6 KPX agrave v -5 KPX agrave w -6 KPX agrave y -3 KPX alpha colon 26 KPX alpha comma 24 KPX alpha delta -4 KPX alpha epsilon -6 KPX alpha exclam -41 KPX alpha gamma -23 KPX alpha guillemotright -18 KPX alpha o 4 KPX alpha omicron -22 KPX alpha omicrontonos -22 KPX alpha period 23 KPX alpha phi -2 KPX alpha pi -1 KPX alpha semicolon 24 KPX alpha sigma -10 KPX alpha tau -16 KPX alpha theta -21 KPX alpha upsilondieresis -23 KPX alpha upsilontonos -23 KPX alpha xi -18 KPX alpha zeta -13 KPX alphatonos colon 27 KPX alphatonos comma 25 KPX alphatonos delta -3 KPX alphatonos epsilon -5 KPX alphatonos gamma -22 KPX alphatonos guillemotright -17 KPX alphatonos o 2 KPX alphatonos omega -34 KPX alphatonos omicron -21 KPX alphatonos period 24 KPX alphatonos semicolon 25 KPX alphatonos sigma -9 KPX alphatonos theta -20 KPX alphatonos xi -17 KPX alphatonos zeta -12 KPX aring v -5 KPX aring w -6 KPX aring y -3 KPX asterisk period -14 KPX b asterisk 10 KPX b colon 16 KPX b comma -11 KPX b endash 44 KPX b g -11 KPX b j -9 KPX b period -10 KPX b s -2 KPX b semicolon 12 KPX b v -14 KPX b w -14 KPX b y -19 KPX b z -8 KPX backslash A 59 KPX backslash B 43 KPX backslash C 48 KPX backslash D 54 KPX backslash G 54 KPX backslash H 43 KPX backslash I 47 KPX backslash J 51 KPX backslash K 41 KPX backslash L 42 KPX backslash M 45 KPX backslash N 44 KPX backslash O 51 KPX backslash P 44 KPX backslash Q 51 KPX backslash R 45 KPX backslash S 51 KPX backslash T 15 KPX backslash U 38 KPX backslash V 3 KPX backslash W 7 KPX backslash X 37 KPX backslash Y 7 KPX backslash Z 49 KPX backslash d 87 KPX backslash eacute 74 KPX backslash f 67 KPX backslash fi 62 KPX backslash fl 61 KPX backslash g 70 KPX backslash i 82 KPX backslash j 71 KPX backslash l 79 KPX beta gamma -10 KPX beta lambda -33 KPX braceleft A 2 KPX braceleft AE -12 KPX braceleft J -21 KPX braceleft T 4 KPX braceleft V 17 KPX braceleft W 17 KPX braceleft Y 13 KPX braceleft Z 34 KPX braceleft b 38 KPX braceleft f 38 KPX braceleft fi 49 KPX braceleft fl 48 KPX braceleft g 29 KPX braceleft h 32 KPX braceleft i 40 KPX braceleft j 48 KPX braceleft k 37 KPX braceleft l 35 KPX braceleft p 39 KPX braceleft quoteleft 36 KPX braceleft y 7 KPX bracketleft A -20 KPX bracketleft AE -34 KPX bracketleft J -36 KPX bracketleft T -6 KPX bracketleft V 9 KPX bracketleft W 9 KPX bracketleft X -8 KPX bracketleft Y 5 KPX bracketleft Z 16 KPX bracketleft b 19 KPX bracketleft f 40 KPX bracketleft fi 50 KPX bracketleft fl 49 KPX bracketleft g 12 KPX bracketleft h 14 KPX bracketleft i 21 KPX bracketleft j 50 KPX bracketleft k 19 KPX bracketleft l 16 KPX bracketleft p 22 KPX bracketleft quoteleft 11 KPX bracketleft y 3 KPX c J -29 KPX c a -3 KPX c adieresis -3 KPX c ae -11 KPX c asterisk 6 KPX c c -11 KPX c colon 10 KPX c comma 2 KPX c e -16 KPX c endash 13 KPX c exclam -53 KPX c h -14 KPX c hyphen -4 KPX c j -12 KPX c k -9 KPX c l -11 KPX c o -12 KPX c odieresis -12 KPX c oacute -12 KPX c oe -16 KPX c period 1 KPX c question -55 KPX c quotedblright 13 KPX c quoteright -9 KPX c s -7 KPX c semicolon 10 KPX c t -1 KPX c u -11 KPX c udieresis -11 KPX c y -11 KPX ccaron e -13 KPX ccaron o -9 KPX chi alpha -42 KPX chi alphatonos -43 KPX chi epsilon -34 KPX chi epsilontonos -34 KPX chi o -22 KPX chi omega -61 KPX chi omegatonos -61 KPX chi omicron -48 KPX chi omicrontonos -48 KPX chi theta -38 KPX chi upsilontonos -34 KPX comma endash 43 KPX comma hyphen 21 KPX comma quotedblright 4 KPX comma quoteright -18 KPX d a 13 KPX d adieresis 13 KPX d braceright 39 KPX d bracketright 19 KPX d comma 29 KPX d endash 37 KPX d g -1 KPX d j 4 KPX d parenright 13 KPX d period 25 KPX d v -8 KPX d w -8 KPX d y -4 KPX d z 3 KPX dcaron a -43 KPX dcaron aacute -43 KPX dcaron colon -25 KPX dcaron comma -34 KPX dcaron e -56 KPX dcaron eacute -55 KPX dcaron m -13 KPX dcaron n -17 KPX dcaron o -46 KPX dcaron oacute -46 KPX dcaron period -38 KPX dcaron r -15 KPX dcaron s -41 KPX dcaron semicolon -24 KPX dcaron u -19 KPX dcaron uacute -13 KPX dcaron udieresis -13 KPX dcaron uring -13 KPX dcaron y 2 KPX dcaron yacute 2 KPX dcaron z -23 KPX delta nu -18 KPX e a 3 KPX e adieresis 3 KPX e asterisk 12 KPX e colon 17 KPX e comma 5 KPX e endash 28 KPX e exclam -46 KPX e f -8 KPX e g -11 KPX e germandbls 1 KPX e h -4 KPX e hyphen 10 KPX e j -4 KPX e k -2 KPX e l -5 KPX e question -48 KPX e quoteright -5 KPX e s 2 KPX e semicolon 17 KPX e t 4 KPX e v -4 KPX e w -4 KPX e x -15 KPX e y -7 KPX e z -7 KPX e zcaron -7 KPX eacute c -4 KPX eacute colon 16 KPX eacute comma 3 KPX eacute d 3 KPX eacute exclam -47 KPX eacute g -9 KPX eacute hyphen 10 KPX eacute l -3 KPX eacute period 2 KPX eacute q -7 KPX eacute question -45 KPX eacute quotedblright 15 KPX eacute quoteright -7 KPX eacute semicolon 18 KPX eacute t 6 KPX eacute v -4 KPX eacute w -4 KPX eacute y -7 KPX eacute z -5 KPX ecircumflex v -4 KPX ecircumflex w -4 KPX ecircumflex y -7 KPX endash a 51 KPX endash adieresis 51 KPX endash b 36 KPX endash c 46 KPX endash d 51 KPX endash e 41 KPX endash f 23 KPX endash g 26 KPX endash h 31 KPX endash i 33 KPX endash j 28 KPX endash k 33 KPX endash l 33 KPX endash m 29 KPX endash n 25 KPX endash o 47 KPX endash odieresis 47 KPX endash p 34 KPX endash q 41 KPX endash r 32 KPX endash s 28 KPX endash t 39 KPX endash u 26 KPX endash udieresis 26 KPX endash v 11 KPX endash w 8 KPX endash x -19 KPX endash y 4 KPX endash z 10 KPX eogonek zdotaccent -4 KPX epsilon alpha -10 KPX epsilon alphatonos -11 KPX epsilon chi -13 KPX epsilon delta 2 KPX epsilon lambda -18 KPX epsilon o 10 KPX epsilon omega -29 KPX epsilon omegatonos -29 KPX epsilon omicron -15 KPX epsilon omicrontonos -15 KPX epsilon phi 4 KPX epsilon sigma -4 KPX epsilon tau 2 KPX epsilon theta -11 KPX epsilon upsilon -13 KPX epsilon upsilontonos -13 KPX epsilon xi -9 KPX epsilon zeta -6 KPX epsilontonos alpha -10 KPX epsilontonos delta 2 KPX epsilontonos lambda -18 KPX epsilontonos o 10 KPX epsilontonos omega -29 KPX epsilontonos omicron -15 KPX epsilontonos phi 4 KPX epsilontonos semicolon 31 KPX epsilontonos tau 2 KPX epsilontonos theta -14 KPX epsilontonos zeta -6 KPX exclam quotedblright 11 KPX exclam quoteright -10 KPX f a -14 KPX f aacute -14 KPX f adieresis 18 KPX f ae -22 KPX f aogonek -14 KPX f aring -14 KPX f asterisk 40 KPX f braceright 28 KPX f bracketright 25 KPX f c -22 KPX f colon 3 KPX f comma -17 KPX f d -14 KPX f e -27 KPX f eacute -27 KPX f endash 11 KPX f exclam -27 KPX f f 2 KPX f g -27 KPX f hyphen -9 KPX f i 20 KPX f iacute 11 KPX f j 12 KPX f l 43 KPX f o -23 KPX f oacute -23 KPX f odieresis 20 KPX f oe -27 KPX f oslash -23 KPX f parenright 28 KPX f period -19 KPX f question 20 KPX f quotedblright 34 KPX f quoteright 11 KPX f quotesingle 12 KPX f racute 8 KPX f s -14 KPX f semicolon 3 KPX f t 8 KPX f trademark 70 KPX f u 5 KPX f udieresis 6 KPX f uring 6 KPX f w 14 KPX f y 17 KPX f yacute 17 KPX f z -2 KPX g a -18 KPX g adieresis -18 KPX g ae -26 KPX g aring -18 KPX g asterisk 18 KPX g braceright 7 KPX g bracketright -11 KPX g colon -3 KPX g comma -23 KPX g d -18 KPX g e -27 KPX g eacute -27 KPX g endash 14 KPX g exclam -67 KPX g f 45 KPX g g -10 KPX g h -26 KPX g hyphen -9 KPX g j 54 KPX g k -21 KPX g l -21 KPX g o -23 KPX g oacute -23 KPX g odieresis -23 KPX g oe -28 KPX g p 5 KPX g parenright -17 KPX g period -33 KPX g question -68 KPX g quotedblright 21 KPX g r 3 KPX g s -8 KPX g semicolon -2 KPX g t 1 KPX g v 8 KPX g w 8 KPX g y 9 KPX gamma alpha 5 KPX gamma alphatonos 4 KPX gamma delta 17 KPX gamma epsilon 13 KPX gamma epsilontonos 13 KPX gamma lambda -13 KPX gamma o 25 KPX gamma omega -13 KPX gamma omegatonos -13 KPX gamma rho -3 KPX gamma upsilontonos 16 KPX gamma xi 1 KPX germandbls e -3 KPX germandbls t 7 KPX germandbls w -19 KPX guillemotleft Alpha -30 KPX guillemotleft Alphatonos -30 KPX guillemotleft Etatonos -29 KPX guillemotleft Iotatonos -23 KPX guillemotleft Lambda -30 KPX guillemotleft Tau -79 KPX guillemotleft Upsilon -87 KPX guillemotleft afii10017 -30 KPX guillemotleft afii10029 -6 KPX guillemotleft afii10036 -79 KPX guillemotleft afii10037 -64 KPX guillemotleft afii10041 -75 KPX guillemotleft afii10049 -42 KPX guillemotleft afii10077 -25 KPX guillemotleft afii10084 -28 KPX guillemotleft afii10085 -8 KPX guillemotleft afii10089 -49 KPX guillemotleft nu -23 KPX guillemotleft tau -13 KPX guillemotright A -15 KPX guillemotright AE -22 KPX guillemotright Aacute -15 KPX guillemotright Adieresis -15 KPX guillemotright Aring -15 KPX guillemotright T -60 KPX guillemotright V -62 KPX guillemotright W -58 KPX guillemotright Y -66 KPX guilsinglright A -25 KPX guilsinglright AE -32 KPX guilsinglright Aacute -25 KPX guilsinglright Adieresis -25 KPX guilsinglright Aring -25 KPX guilsinglright T -70 KPX guilsinglright V -72 KPX guilsinglright W -68 KPX guilsinglright Y -76 KPX h asterisk -2 KPX h endash 37 KPX h quoteright -23 KPX h v -15 KPX h y -22 KPX h yacute -22 KPX hyphen AE -9 KPX hyphen C 32 KPX hyphen G 37 KPX hyphen J -51 KPX hyphen O 33 KPX hyphen Q 33 KPX hyphen S 9 KPX hyphen T -45 KPX hyphen V -45 KPX hyphen W -42 KPX hyphen X -47 KPX hyphen Y -53 KPX hyphen Z -15 KPX hyphen a 29 KPX hyphen adieresis 29 KPX hyphen afii10017 -30 KPX hyphen afii10036 -69 KPX hyphen afii10037 -55 KPX hyphen afii10084 -15 KPX hyphen afii10085 -24 KPX hyphen f -1 KPX hyphen g 7 KPX hyphen s 9 KPX hyphen t 18 KPX hyphen v -11 KPX hyphen w -11 KPX hyphen x -39 KPX hyphen y -15 KPX hyphen z -7 KPX i T -22 KPX i asterisk 4 KPX i braceright 39 KPX i bracketright 18 KPX i endash 41 KPX i j 5 KPX i parenright 12 KPX i quotedblright 2 KPX i quoteright -19 KPX i v -6 KPX i w -10 KPX i z 4 KPX iacute v -6 KPX iotatonos delta 13 KPX j asterisk 9 KPX j braceright 31 KPX j bracketright 11 KPX j endash 33 KPX j eogonek -8 KPX j oacute -4 KPX j odieresis -4 KPX j parenright 5 KPX j y -2 KPX k a 9 KPX k aacute 9 KPX k adieresis 9 KPX k ae 1 KPX k aogonek 9 KPX k aring 9 KPX k asterisk -1 KPX k b 3 KPX k c 1 KPX k colon 20 KPX k comma 30 KPX k d 9 KPX k e -3 KPX k eacute -3 KPX k endash 24 KPX k eogonek -3 KPX k exclam -39 KPX k g -9 KPX k h -4 KPX k hyphen 3 KPX k i 8 KPX k j 3 KPX k m 2 KPX k p 7 KPX k period 27 KPX k q -1 KPX k question -43 KPX k quotedblright -3 KPX k quoteright -26 KPX k r 5 KPX k s 2 KPX k semicolon 18 KPX k t 9 KPX k u 2 KPX k udieresis 2 KPX k v 11 KPX k w 11 KPX k x 12 KPX k y 12 KPX k z -4 KPX kappa alpha -13 KPX kappa alphatonos -14 KPX kappa comma 31 KPX kappa delta -1 KPX kappa epsilon -1 KPX kappa epsilontonos -5 KPX kappa guillemotright -12 KPX kappa o 6 KPX kappa omega -32 KPX kappa omegatonos -32 KPX kappa omicron -19 KPX kappa omicrontonos -19 KPX kappa period 27 KPX kappa sigma -8 KPX kappa theta -16 KPX kappa upsilontonos -12 KPX l comma 34 KPX l endash 42 KPX l j 8 KPX l period 29 KPX l v -8 KPX l w -8 KPX l y -7 KPX l z 5 KPX lambda alphatonos -18 KPX lambda comma 37 KPX lambda epsilon -1 KPX lambda epsilontonos -1 KPX lambda gamma -30 KPX lambda guillemotright -11 KPX lambda nu -41 KPX lambda o 7 KPX lambda omega -36 KPX lambda omegatonos -36 KPX lambda omicron -19 KPX lambda omicrontonos -19 KPX lambda period 35 KPX lambda quoteright -51 KPX lambda sigma -8 KPX lambda tau -24 KPX lambda upsilon -29 KPX lambda upsilontonos -29 KPX lambda xi -9 KPX lcaron a -42 KPX lcaron aacute -42 KPX lcaron ccaron -18 KPX lcaron colon -25 KPX lcaron comma -28 KPX lcaron d -42 KPX lcaron dcaron -42 KPX lcaron e -50 KPX lcaron eacute -45 KPX lcaron f 1 KPX lcaron g -50 KPX lcaron o -46 KPX lcaron oacute -46 KPX lcaron ocircumflex -9 KPX lcaron p 2 KPX lcaron period -31 KPX lcaron s -31 KPX lcaron scaron -4 KPX lcaron semicolon -25 KPX lcaron t 2 KPX lcaron u -9 KPX lcaron uacute -3 KPX lcaron uring -3 KPX lcaron z -13 KPX lcaron zcaron 2 KPX m endash 38 KPX m g -2 KPX m j 4 KPX m p 11 KPX m v -12 KPX m w -12 KPX m y -18 KPX n T -60 KPX n endash 35 KPX n g -5 KPX n j -4 KPX n p 4 KPX n quoteright -24 KPX n v -16 KPX n w -16 KPX n y -22 KPX n z -3 KPX nu alpha -11 KPX nu alphatonos -12 KPX nu colon 24 KPX nu comma -19 KPX nu delta -2 KPX nu epsilontonos -6 KPX nu guillemotright -16 KPX nu lambda -33 KPX nu o 5 KPX nu omega -33 KPX nu omegatonos -33 KPX nu omicron -17 KPX nu omicrontonos -17 KPX nu period -17 KPX nu phi 2 KPX nu quoteright 14 KPX nu semicolon 22 KPX nu sigma -9 KPX nu upsilontonos -4 KPX o T -64 KPX o alpha -18 KPX o asterisk 8 KPX o chi -39 KPX o colon 18 KPX o comma -5 KPX o endash 48 KPX o g -9 KPX o gamma -10 KPX o j -5 KPX o lambda -39 KPX o nu -24 KPX o period -5 KPX o quoteright -14 KPX o semicolon 15 KPX o t 6 KPX o tau 3 KPX o upsilon -23 KPX o v -18 KPX o w -18 KPX o x -24 KPX o y -27 KPX o z -6 KPX odieresis T -28 KPX odieresis asterisk 11 KPX odieresis colon 16 KPX odieresis comma -4 KPX odieresis endash 47 KPX odieresis g -9 KPX odieresis j -3 KPX odieresis period -3 KPX odieresis quoteright -17 KPX odieresis semicolon 14 KPX odieresis t 4 KPX odieresis v -16 KPX odieresis w -19 KPX odieresis x -25 KPX odieresis y -27 KPX odieresis z -9 KPX oacute v -17 KPX oacute w -17 KPX oacute y -26 KPX oacute zacute -6 KPX ocircumflex t 6 KPX oe u -6 KPX ograve v -18 KPX ograve w -18 KPX ograve y -27 KPX omega chi -50 KPX omega gamma -25 KPX omega lambda -46 KPX omega nu -39 KPX omega pi -15 KPX omega tau -12 KPX omegatonos chi -50 KPX omegatonos gamma -25 KPX omegatonos lambda -46 KPX omegatonos nu -39 KPX omegatonos pi -15 KPX omegatonos tau -12 KPX omicron alpha -15 KPX omicron chi -39 KPX omicron gamma -10 KPX omicron lambda -35 KPX omicron nu -24 KPX omicron tau 3 KPX omicron upsilon -21 KPX omicrontonos chi -39 KPX omicrontonos gamma -10 KPX omicrontonos nu -24 KPX omicrontonos tau 3 KPX p asterisk 11 KPX p endash 47 KPX p g -7 KPX p j -2 KPX p t 6 KPX p v -12 KPX p w -12 KPX p y -16 KPX p yacute -16 KPX p z -7 KPX parenleft A -18 KPX parenleft AE -33 KPX parenleft J -42 KPX parenleft T -15 KPX parenleft V -1 KPX parenleft W -1 KPX parenleft X -18 KPX parenleft Y -5 KPX parenleft Z 15 KPX parenleft b 13 KPX parenleft f 39 KPX parenleft fi 49 KPX parenleft fl 48 KPX parenleft g 6 KPX parenleft h 7 KPX parenleft i 15 KPX parenleft j 48 KPX parenleft k 12 KPX parenleft l 10 KPX parenleft p 17 KPX parenleft quoteleft 11 KPX parenleft y 4 KPX period asterisk 1 KPX period endash 38 KPX period hyphen 17 KPX period onesuperior 7 KPX period quoteright -22 KPX period quotesingle -35 KPX period threesuperior 16 KPX period twosuperior 21 KPX phi tau 14 KPX pi alphatonos -18 KPX pi lambda -19 KPX pi omegatonos -39 KPX pi omicron -25 KPX pi omicrontonos -25 KPX pi quoteright 19 KPX pi upsilontonos 4 KPX q braceright 38 KPX q bracketright 16 KPX q c 3 KPX q endash 39 KPX q parenright 10 KPX q u 3 KPX q udieresis 3 KPX question quotedblright 8 KPX question quoteright -13 KPX question quotesingle -12 KPX quotedblbase A 35 KPX quotedblbase AE 31 KPX quotedblbase C 16 KPX quotedblbase G 19 KPX quotedblbase J 3 KPX quotedblbase O 21 KPX quotedblbase Q 19 KPX quotedblbase S 28 KPX quotedblbase T -28 KPX quotedblbase Tcaron -28 KPX quotedblbase V -62 KPX quotedblbase W -59 KPX quotedblbase X 5 KPX quotedblbase Y -37 KPX quotedblbase Yacute -37 KPX quotedblbase Z 19 KPX quotedblbase g 3 KPX quotedblbase s 26 KPX quotedblbase v -19 KPX quotedblbase w -22 KPX quotedblbase y -1 KPX quotedblbase z 12 KPX quotedblleft A -65 KPX quotedblleft AE -85 KPX quotedblleft Aacute -59 KPX quotedblleft Adieresis -59 KPX quotedblleft Aring -59 KPX quotedblleft C 12 KPX quotedblleft G 18 KPX quotedblleft O 3 KPX quotedblleft OE 9 KPX quotedblleft Q 7 KPX quotedblleft S 8 KPX quotedblleft V 3 KPX quotedblleft W 3 KPX quotedblleft X -15 KPX quotedblleft Y -1 KPX quotedblleft Z 18 KPX quotedblleft a -9 KPX quotedblleft adieresis -9 KPX quotedblleft ae -17 KPX quotedblleft c -12 KPX quotedblleft d -9 KPX quotedblleft e -17 KPX quotedblleft f 4 KPX quotedblleft fi 9 KPX quotedblleft fl 8 KPX quotedblleft g 1 KPX quotedblleft o -9 KPX quotedblleft odieresis -9 KPX quotedblleft oe -18 KPX quotedblleft q -20 KPX quotedblleft s 10 KPX quotedblleft t 14 KPX quotedblleft v 14 KPX quotedblleft w 14 KPX quotedblleft x -5 KPX quotedblleft y 13 KPX quotedblleft z 22 KPX quotedblright A -59 KPX quotedblright AE -79 KPX quotedblright Aacute -59 KPX quotedblright Adieresis -59 KPX quotedblright Aring -59 KPX quotedblright T 10 KPX quotedblright V 9 KPX quotedblright W 12 KPX quotedblright Y 2 KPX quoteleft A -72 KPX quoteleft AE -92 KPX quoteleft Aacute -66 KPX quoteleft Adieresis -66 KPX quoteleft Aring -66 KPX quoteleft C 5 KPX quoteleft G 11 KPX quoteleft O -3 KPX quoteleft OE 2 KPX quoteleft S 1 KPX quoteleft T -7 KPX quoteleft V -4 KPX quoteleft W -4 KPX quoteleft X -22 KPX quoteleft Y -8 KPX quoteleft Z 11 KPX quoteleft a -16 KPX quoteleft adieresis -16 KPX quoteleft ae -24 KPX quoteleft c -19 KPX quoteleft d -16 KPX quoteleft e -24 KPX quoteleft f -2 KPX quoteleft fi 2 KPX quoteleft fl 1 KPX quoteleft g -5 KPX quoteleft o -16 KPX quoteleft odieresis -16 KPX quoteleft oe -25 KPX quoteleft q -27 KPX quoteleft s 3 KPX quoteleft t 7 KPX quoteleft v 7 KPX quoteleft w 7 KPX quoteleft x -12 KPX quoteleft y 6 KPX quoteleft z 15 KPX quoteright A -81 KPX quoteright AE -101 KPX quoteright Aacute -81 KPX quoteright Adieresis -81 KPX quoteright Aring -81 KPX quoteright braceright 34 KPX quoteright bracketright 14 KPX quoteright comma -49 KPX quoteright d -35 KPX quoteright o -40 KPX quoteright odieresis -40 KPX quoteright parenright 28 KPX quoteright period -50 KPX quoteright r -14 KPX quoteright s -19 KPX quoteright sacute -19 KPX quoteright scaron -19 KPX quoteright scedilla -17 KPX quoteright t -11 KPX quoteright v -10 KPX quoteright w -10 KPX quoteright y -13 KPX quotesinglbase A 16 KPX quotesinglbase C -2 KPX quotesinglbase J -15 KPX quotesinglbase O 3 KPX quotesinglbase Q 1 KPX quotesinglbase S 10 KPX quotesinglbase T -47 KPX quotesinglbase V -81 KPX quotesinglbase W -77 KPX quotesinglbase Y -55 KPX quotesinglbase Z 1 KPX quotesinglbase g -15 KPX quotesinglbase s 8 KPX quotesinglbase v -38 KPX quotesinglbase w -40 KPX quotesinglbase y -19 KPX quotesinglbase z -6 KPX quotesingle A -83 KPX quotesingle T -8 KPX quotesingle V -5 KPX quotesingle W -5 KPX quotesingle X -25 KPX quotesingle Y -11 KPX quotesingle Z 7 KPX r a -10 KPX r aacute -10 KPX r acircumflex -10 KPX r adieresis -10 KPX r ae -19 KPX r agrave -10 KPX r aogonek -10 KPX r aring -10 KPX r asterisk 23 KPX r b -10 KPX r c -12 KPX r ccaron -12 KPX r ccedilla -8 KPX r colon -6 KPX r comma -56 KPX r d -10 KPX r dcaron -10 KPX r e -17 KPX r eacute -17 KPX r ecircumflex -17 KPX r egrave -17 KPX r endash -15 KPX r eogonek -17 KPX r exclam -70 KPX r f 7 KPX r g -1 KPX r h -16 KPX r hyphen -5 KPX r i 16 KPX r j 11 KPX r k -12 KPX r l -14 KPX r m 10 KPX r n 6 KPX r nacute 6 KPX r ncaron 6 KPX r o -12 KPX r oacute -12 KPX r ocircumflex -12 KPX r odieresis -12 KPX r oe -17 KPX r ograve -12 KPX r ohungarumlaut -12 KPX r oslash -16 KPX r p 15 KPX r period -60 KPX r q -20 KPX r question -65 KPX r quotedblright 34 KPX r quoteright 11 KPX r quotesingle 1 KPX r r 14 KPX r racute 14 KPX r rcaron 14 KPX r s 2 KPX r semicolon -7 KPX r t 12 KPX r tcaron 12 KPX r tcommaaccent 11 KPX r u 10 KPX r udieresis 10 KPX r uacute 10 KPX r uhungarumlaut 10 KPX r uring 10 KPX r v 19 KPX r w 19 KPX r x 6 KPX r y 19 KPX r yacute 19 KPX r z 10 KPX r zacute 10 KPX r zcaron 10 KPX r zdotaccent 10 KPX racute a -10 KPX racute comma -58 KPX racute d -10 KPX racute m 10 KPX racute n 6 KPX racute p 15 KPX racute period -56 KPX racute s 2 KPX racute t 12 KPX racute v 19 KPX racute z 10 KPX rcaron a -10 KPX rcaron aacute -10 KPX rcaron colon -6 KPX rcaron comma -54 KPX rcaron d -10 KPX rcaron dcaron -10 KPX rcaron e -16 KPX rcaron eacute -16 KPX rcaron i 17 KPX rcaron iacute 17 KPX rcaron o -11 KPX rcaron oacute -11 KPX rcaron period -57 KPX rcaron semicolon -10 KPX rcaron u 11 KPX rcaron uacute 10 KPX rcaron uring 10 KPX rcaron v 20 KPX rho chi -42 KPX rho exclam -44 KPX rho gamma -12 KPX rho guillemotright -21 KPX rho lambda -33 KPX rho nu -27 KPX rho pi -2 KPX rho tau 1 KPX s a -2 KPX s adieresis -2 KPX s colon 15 KPX s comma 7 KPX s eacute -12 KPX s endash 17 KPX s exclam -52 KPX s f -14 KPX s g -16 KPX s hyphen -1 KPX s k -4 KPX s period 7 KPX s question -54 KPX s quotedblright 7 KPX s quoteright -15 KPX s s -3 KPX s semicolon 12 KPX s t 2 KPX s v -10 KPX s w -10 KPX s y -8 KPX s z -13 KPX sacute c -6 KPX sacute w -10 KPX scaron k 8 KPX scaron p -2 KPX scaron t 3 KPX sigma lambda -26 KPX slash B 35 KPX slash D 46 KPX slash E 36 KPX slash F 29 KPX slash H 35 KPX slash I 39 KPX slash J -6 KPX slash K 33 KPX slash L 34 KPX slash M 37 KPX slash N 36 KPX slash R 37 KPX slash T 18 KPX slash U 38 KPX slash V 22 KPX slash W 22 KPX slash X 6 KPX slash Y 18 KPX slash Z 44 KPX slash b 42 KPX slash f 27 KPX slash fi 58 KPX slash fl 57 KPX slash g 29 KPX slash h 36 KPX slash i 39 KPX slash j 37 KPX slash k 41 KPX slash l 34 KPX slash slash 44 KPX slash t 45 KPX slash y 15 KPX t S -1 KPX t a 13 KPX t aacute 13 KPX t adieresis 13 KPX t ae 5 KPX t aogonek 13 KPX t aring 13 KPX t asterisk 15 KPX t c 5 KPX t colon 30 KPX t comma 26 KPX t d 13 KPX t endash 37 KPX t exclam -37 KPX t h 5 KPX t hyphen 13 KPX t i 18 KPX t j 13 KPX t m 12 KPX t n 8 KPX t o 4 KPX t oacute 4 KPX t odieresis 4 KPX t p 17 KPX t period 25 KPX t q 2 KPX t question -39 KPX t quotedblright 14 KPX t quoteright -8 KPX t r 15 KPX t s 8 KPX t semicolon 28 KPX t t 15 KPX t u 12 KPX t udieresis 12 KPX t v 21 KPX t w 21 KPX t y 22 KPX t z 7 KPX tau alpha -19 KPX tau alphatonos -20 KPX tau colon 4 KPX tau comma -24 KPX tau epsilontonos -8 KPX tau guillemotright -3 KPX tau iotatonos 6 KPX tau lambda -42 KPX tau o -3 KPX tau omega -41 KPX tau omegatonos -41 KPX tau omicron -27 KPX tau omicrontonos -27 KPX tau period -29 KPX tau phi -6 KPX tau quoteright 15 KPX tau rho -31 KPX tau semicolon 2 KPX tau sigma -18 KPX tau tau 18 KPX tau upsilontonos 2 KPX tcaron a -39 KPX tcaron aacute -39 KPX tcaron comma -30 KPX tcaron e -52 KPX tcaron eacute -51 KPX tcaron m -11 KPX tcaron n -15 KPX tcaron o -48 KPX tcaron oacute -48 KPX tcaron period -29 KPX tcaron r -14 KPX tcaron rcaron -11 KPX tcaron s -39 KPX tcaron scaron -11 KPX tcaron t -5 KPX tcaron u -17 KPX tcaron uacute -11 KPX tcaron uring -11 KPX tcaron y 4 KPX tcaron yacute 4 KPX tcaron z -21 KPX tcaron zcaron -5 KPX u comma 23 KPX u endash 31 KPX u g -8 KPX u j -3 KPX u period 20 KPX u quoteright -23 KPX u v -15 KPX u w -16 KPX u x 5 KPX u y -13 KPX u z -5 KPX udieresis comma 21 KPX udieresis endash 30 KPX udieresis g -7 KPX udieresis j -1 KPX udieresis period 19 KPX udieresis quoteright -23 KPX udieresis v -16 KPX udieresis w -16 KPX udieresis x 5 KPX udieresis y -13 KPX udieresis z -4 KPX upsilon chi -27 KPX upsilon gamma -3 KPX upsilon lambda -28 KPX upsilon tau 9 KPX upsilondieresis nu -17 KPX upsilontonos chi -27 KPX upsilontonos gamma -3 KPX upsilontonos lambda -28 KPX upsilontonos nu -17 KPX upsilontonos pi 6 KPX upsilontonos tau 9 KPX v a -9 KPX v aacute -9 KPX v acircumflex -9 KPX v adieresis -9 KPX v ae -21 KPX v agrave -9 KPX v aring -9 KPX v asterisk 15 KPX v atilde -9 KPX v c -17 KPX v colon 3 KPX v comma -41 KPX v e -22 KPX v eacute -22 KPX v ecircumflex -22 KPX v egrave -22 KPX v endash 27 KPX v g -21 KPX v hyphen 6 KPX v i -5 KPX v j -11 KPX v l -17 KPX v o -18 KPX v oacute -18 KPX v odieresis -18 KPX v oe -22 KPX v ograve -18 KPX v oslash -18 KPX v period -43 KPX v r -7 KPX v s -14 KPX v semicolon 1 KPX v u -11 KPX v udieresis -11 KPX v y -3 KPX w a -14 KPX w aacute -14 KPX w acircumflex -14 KPX w adieresis -14 KPX w ae -22 KPX w agrave -14 KPX w aring -14 KPX w asterisk 10 KPX w atilde -14 KPX w c -22 KPX w colon -1 KPX w comma -46 KPX w e -27 KPX w eacute -27 KPX w ecircumflex -27 KPX w egrave -27 KPX w endash 22 KPX w exclam -65 KPX w f -20 KPX w g -26 KPX w hyphen 1 KPX w i -10 KPX w j -16 KPX w l -22 KPX w o -19 KPX w oacute -19 KPX w odieresis -19 KPX w ograve -19 KPX w oslash -23 KPX w p -11 KPX w period -43 KPX w question -67 KPX w quotedblright 12 KPX w quoteright -10 KPX w quotesingle -21 KPX w r -12 KPX w s -19 KPX w semicolon -3 KPX w t -12 KPX w u -16 KPX w udieresis -16 KPX w y -7 KPX w z -16 KPX x a -2 KPX x asterisk 4 KPX x c -7 KPX x colon 17 KPX x comma 12 KPX x e -12 KPX x eacute -12 KPX x endash 10 KPX x exclam -50 KPX x hyphen -10 KPX x o -8 KPX x odieresis -8 KPX x period 11 KPX x q -10 KPX x question -52 KPX x quotedblright 8 KPX x quoteright -14 KPX x semicolon 11 KPX x y 4 KPX xi alpha -30 KPX xi alphatonos -31 KPX xi epsilon -22 KPX xi epsilontonos -22 KPX xi o -13 KPX xi omegatonos -51 KPX xi omicron -38 KPX xi omicrontonos -38 KPX xi upsilontonos -10 KPX y a -3 KPX y aacute -3 KPX y acircumflex -3 KPX y adieresis -3 KPX y ae -11 KPX y agrave -3 KPX y aring -3 KPX y asterisk 11 KPX y atilde -3 KPX y c -7 KPX y ccaron -7 KPX y colon 10 KPX y comma -17 KPX y e -12 KPX y eacute -12 KPX y ecircumflex -12 KPX y egrave -12 KPX y endash 33 KPX y exclam -53 KPX y g -14 KPX y hyphen 9 KPX y j -7 KPX y l -8 KPX y o -8 KPX y n -10 KPX y oacute -8 KPX y odieresis -8 KPX y ograve -8 KPX y oslash -8 KPX y period -15 KPX y question -55 KPX y quotedblright 13 KPX y quoteright -9 KPX y quotesingle -21 KPX y s -4 KPX y sacute -4 KPX y semicolon 10 KPX yacute ccaron -8 KPX yacute comma -14 KPX yacute period -17 KPX z a 6 KPX z adieresis 6 KPX z asterisk -1 KPX z colon 6 KPX z comma 15 KPX z e -13 KPX z endash -12 KPX z exclam -29 KPX z hyphen -33 KPX z i 6 KPX z o -11 KPX z odieresis -11 KPX z period 13 KPX z semicolon 2 KPX z u -2 KPX z y 10 KPX zacute colon 2 KPX zacute comma 15 KPX zacute semicolon 1 KPX zcaron colon 4 KPX zcaron comma 15 KPX zcaron e -13 KPX zcaron semicolon 2 KPX zdotaccent c -8 KPX zdotaccent colon 6 KPX zdotaccent comma 15 KPX zdotaccent e -13 KPX zdotaccent oacute -11 KPX zdotaccent semicolon 2 KPX zeta alpha -51 KPX zeta alphatonos -52 KPX zeta epsilon -32 KPX zeta epsilontonos -32 KPX zeta o -28 KPX zeta omega -69 KPX zeta omegatonos -69 KPX zeta omicron -53 KPX zeta omicrontonos -53 KPX zeta upsilon -66 KPX zeta upsilontonos -66 EndKernPairs EndKernData EndFontMetrics libwmf-0.2.13/fonts/NimbusRoman-BoldItalic.t1000066400000000000000000004232311441723000300207110ustar00rootroot00000000000000%!PS-AdobeFont-1.0: NimbusRoman-BoldItalic 1.00 %%CreationDate: Wed May 17 2017 % Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development % (URW)++,Copyright 2014 by (URW)++ Design & Development 10 dict begin /FontInfo 12 dict dup begin /version (1.00) readonly def /Notice ((URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /Copyright (Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /FullName (Nimbus Roman Bold Italic) readonly def /FamilyName (Nimbus Roman) readonly def /Weight (Bold) readonly def /ItalicAngle -15.3 def /isFixedPitch false def /UnderlinePosition -109 def /UnderlineThickness 69 def end readonly def /FontName /NimbusRoman-BoldItalic def /PaintType 0 def /FontBBox {-200 -324 1154 972} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec é ×`£Â,ñùÜiš"Ã[[4Þ?¿Ø˜¯.aÔØ·Pþ‡‡ÝÙgëð9YÆÊ2SÝã/ÊØ$u™lµüÔFëâi:Ìô Ÿ-=ËÅ‹IåéÉ¢“ÉÅ«ôSÀ­:¶QÖÃëí<¡yùéö1’YãL ¡ Œ4brî4*{‹0 @!þWbêƒ47W€éŽãfÔâØóJQr¨ª '7øjѹÒùW“à]Λž!sL÷zá*ª^˜[³4ÄI¥JSOÃpŽôL’8€ž?>fµW‘²U„;ª&0, bu±âg×ÿÖs’°åª…ÒÝ 6ý{O-ËŠ[¬)û¯¿jïÅ’Ü™õødŠ.ìÊ6«!„¹4NäÇíô(ƒØIC¥ù˜ñ¶ó%Ca—`¿E ¶ã…¡ Tãq º=iúçÐ}ùý·HœS{ðé}Añ/·ya‰’¨¹%ã*¤M +¯æšj@¦ -Ô¼Ž;tšÒYpõ^X#Ùw“±5_нš ýïHu'-Kò³åSè1ÀßxÄ+‰÷Ä®ÈèÀ DCT´ÞÌ@]ààq’ËI䙃Èß;—ºzË7ö-ËI3{x\(;­+d‘¢Í‡£þøŽÑ3%#ë˜ä–5«…Ez%—Œ`ÄÖ—kff|}²16ÆVMëµ{“ûÐ…Ð$—ÏQdJyŽæ%yN>0*¥ßRT’Ý/`!à=Nú¯²_­´+Õ±6¹Üm¯É×åz7=yW=IªúJ +‡Ð¸é‹Qf(ÚWSŽpqÁp µ‰®•òqqß:ìeXÊü.Ð`À‰¢û[4-- x£Ów¹'ᤗ %¶Ë¬s÷Gñ×¼sâ6j×›ÇcÐ&þH¦!š¦ÏYq%ª¦[´'F/sU“šò¼†dR}ARúpUoz<$ÌË_‰] ”êFR-…Œ²s’0+(¹7Ü-›ÐÜuƒP©p·€“èS‘Ѓ¾ûÀi ‰DË*Šû6²5cVËî2~À÷…qšU“nKQÞù{E ž¹ÿ“Üx H`É&-ín?J›#<ømaµf ô%·2YÙ[/Ú·³søB‘jBNwè]f=?EÈfˆìÇŠHl'æ—?ŸçI«Ÿ¢‘àÔ`Пí„,$çõDãüö~¥ãÑ•Où™»HSC#ðw‡s_ÈK&̶†¬¤AãíŒw‘âp‹ Ê L™¿9EÃ’_ÜI÷\Î¥»·WÚVŸfšìKÕלø{öµ_¨%À<•!žãˆÁGáºav'%4-¥¬Jަx%&Õ¦`ÿ¶óËk,7D"3"cÀQ »Ê–ë ªUY†Ý†ýwI½ªXlúË÷‡¹É;Ç…õ‹ßm‚IÖ¨b¸Ð›1 œ+‰Ðò²¯^Þ¡N“H‹á*4>éItP¬Çõ™n¶';^CÑ]hêÐ'[ ÿ[zŽÎ;¬¬ªé:ÿž=kWEüå¡5äbÎèEE;–8A0Ÿ’bßl.ôpaÒÕî;^2\cüçS±W3¨ê·¯­7ɸ¹Bí^'¾êƒQÇaë@'Tßò×j?ÊÌúç ~Ïý¯!wbÆjùõŠ[…:?PXßЕ <)Gu;¹˜KÖɦR[SxØÓ`WôÖ÷à¿‘;'-IŠúìam638Èu1.É{dI B"ÝÛµ£“:5ý½6Ë\"„/¥¡Ä75p~þ}’Ì ¢ä¾Ú©zYk#ôMõ´¡W,{È@h.üMÛT?e@œYé}ìóZ¨ÙP”‘¨ªŸ;4©Ëû²áhtB&)` „UÛúc*q¶Ë Wì)z©Žš k_hÛ…ÐÆ"úž»v¸ªƒcQCêaÚ{gvS°$ïhŽJ`ÖÃþ*°Á¾ºïö¡uÑè”ê,¿ûÊ;õ 0Íwª£K0ñ—€2¿/Þ${ˆK@‰¶×â“"a" h¼ç@Ïúj7kâg¸˜Wÿ ífaÊ!¦¥åЪ>œ ˆ$„Öö HÓji r¯ïZ±Zx¤µ“š>Eø'¼d-¡(K &]sÇbõD!þùçhYþaÍÈš5˜Úan’ÿq樈͛}²mä€n®…ó¢SÈPK¼àóp/ò!`ðßÒmOFFl¸è™õj¸³Ø¿C¸…?žf’Ÿ¶p†»‹q*‘SFbà‚8%r}W|ï×ó•ñÒóíšX Óüw­³ý üœ3B<0°,Ä A Afò›mM·j§<*òéÁ‡¦1Ý) J>1Çø¾ihxÛ—Öa=ä…ÃüÃVâ¿°OÝÍr2–&šPÝl£2½SšÉJµ¬ã«î›˜y^ÅJÏ" åIU¹ùÊÛ“¢9 ‹p à ñÂq÷ð¶àlçÿÒqçx¥|doÜH‘÷ý1Gì(áRPëJ¡ü›~;¯=3?T_ë£(šûÇßu¶J`]3°;„æŠuvŒ-RÄÅ¹Žœº¹ßïlé—ÞâªC¼ø.Ë)fGFŠü3ئI5ðûïW_*ŸÊ´ÀÒš_O>5ùZºËCîF“——=j÷É6ö¤ÞØé½!àC<éüˆž.¤Øo»×ÒÚÛ~¥ tê/8íë,~ª5óv¦£ -[gA±bIO®x>Ù.ªõÂø àç7l¾Aã`6B¾·¬ëÇd¶Ú\›:‹5Óz Q^›£[ÙÍÏò¸. !d\‚%àòì~v q64…€›Œk¡Ÿ”u±•‹¯_~o#\ƾ™6¹m0‰FF°‡OªŒ z³Éš±dOBq<ŒãÙu>hrך’ZhIi÷ãBKÙ±#µ±Wišt½Ç}»},Í  Q}¥u#|M_4¢ ¶yÿ5íÔÈ×dÅ$f?±×²KfïmU=G3Ų+>_u0Ä’·mÃHÍì»L„£ÕS¢‹z˜ín(þľL@Ó>s¬M•¸š‰ÈÖ>c­êì±Ù±Ò¹ÆEÃFO6OaEú9BŽƒ pßZ`jeÛ}C@%\kéxŽS°d+¹%SL³ ê³U.ë÷^"vƒÐt¿ï'*jt ¾5˜1q„ä|(Áõ2IÍJ5’À‹â½*±Í¬ÿƒSàß•À/бÄ¡º„0µ¿¶Èܾœ­5ÞÀÃO¹%ô2lÁ?}}jÂäoG柮ô­Û´¢&¿~£J޾"pÔ‘¿xoØš'ÿÚnüUÓ¯àFé’ΈÀ(Ýmýo=ˆ¸ž/ãêÞs[þâ§£ÒÛïHXßÃg’^ÿâa”E}‘À±¸º+ùõóð•£_.*ûZ…{ Æ»d“Á Ó‚†çÏás^{Ü/øòéc†ÞòàEáDoA2[UO’ŸUæç1–q´2œG… ‰NåKÃmëÈ"eô2J*8w6–Oø\EîûÛ~ÄŽNo |3OÕü‘³­y©z¹7 iW°jU”RQï»*eÖŠ°ñ ­0F;ýŠ€Å'ÉH‚õí’u{ (’¼#ðóÚÍ[½’à*ä¾½hÝ0.âñBŠæŸ×5HÌ&ýOô«aƒ¾‚áŸâ9Q"V—48°XbŒì¶ ;³ ~ÙÌ` lŽ[óá²îÌ›:Ñ×Z×N¬ø)%ˆ!L)/½ìU®0?É’œÏw#<œÕØ>–mî7E&‡9ñ}ó凞‡êóôÜŠIË6ÕUq7 at¡¼ #›ð.Õ‹žžnt°ÅKywޝ…#ߨš±yxð¢œl‰ž‘f‚déO>W&?ÝPLQ¢øê)<ãšÜCÛ"ÆSp(0gÀHû%Sø )ÔY™~‚»rÛˆÕ6Ы£«®„¹‚¦lÆà>¤œhó«w!§.©)”¨‚’¤á’ëšÖo:VÖ?¤D\›(Ûè™F(oÇ:þãD%oFÌ=QžÖA8!#ìàì+˜o™ qBc¤®ÓT>‡Ÿ²v‡>‡…;´2Ô’Y}åÞbK愱ÏÄ‘òˆÚIë3˜uè ¿çH•…§†º…飭õá>åƒ]yÕ…þ®A c&ŠD"Ò­cMÙzÖÎs诒û‹º\€sT&ó¾•~³eËÎ"—KSrÂk¹ÕÌgx‡ãÃËûס®§4n6”ÛWi»èÊ‹^î4Ý ä-*ÖS®Š¡ú{Ž(ìïÏ½Úø{ PèüœØ6þ6qPgë¡G{ÌõŠUOC6 ä9&=îÐv‘u÷5pQ;è‘ß½ðúGYõëA" ´žU˜……4\©RÙÇãíX;½2×LßBøwš)Qvp„›ŸfÂKöKˆtÕÆ TÁÙ‰ž´­ÍZŠùhÿ–ÙàÄýÑ“;ÔÂéHþ’¥£¬õ™u¨û(ïãoóõ=ù½ s!UC.^n‚& ¹ÉÂn–=N)µÓ®[Èâuoñ•ŸÎùÜù–Åu°¶ ’|†êw{xbâÅPÔf’öîš! WÉí60ý £ñZçÃcM é¯D¥£4 §ÊnÇQšw~탂סôBÐÌà„qGÔöo)u?•ˆ§øG¤!BÀ®0‚ÆÞÅ\TÐßS‚ÕDeK«×“u¾{éÙF;Ï™Š0)mCÔi´W†Øbâ§bƒóTµ;ÿK’ìðL7ò±‡¢þaE‘³å°p"‡ô f£¢]G}Ê(ЯÜã8¡«©¿N% 8·ûw͸+ÉTóÖ\Ìq±RJ½o”À1~! 3v¤—‘SB¡„Ú0D >¬ËpiÛÁÚˆ8}ñH£ô~óyzSLªä1 N4Ö³ÔÈöõJÛ˜¿¿$#æµSåJL¸5|ö ¯)Ò¢+qè)?—¼Þ#¯ä½l~!7'Ëç?7ÍX Ì~”W 4•Ôñåš"º^&8Ô|³ºÞn«°‚å“͸»þó£ÿCÞUÛIV®rë@`eÉ5UÓŽõÎ|ï[pm›˜ôȪ‘ê1²Sn0¥áu‹)¸UJæÛbÈŸ²2]]÷ó"¹ '×–¦Ï5ò—,†¯qÔ½ S.è@Ç“–°òTGæ^8Ñ~YC=LÈ·­ÅP×df3?®Ø;6;FÖêÕ` öp¦ ã…•¢íØeÈÆõ@nÚ CPܧa²¬‰Ë*¦µÞæ=–L<€O(-µ­ìòl@Ô³ƒUû­n‹ëâ[¡äŸ¢ƒäMüØà „#'ô,ù)“åŸÖŠqÏNkR’†,CxÑ. ,0À0—ž¼Ë»®4HNz¬]žÎ)þÝÞu…•‰°•Oc®‹.òz8¿æ,h'3Ø‹¯8BDO%NR³rè 58s£0$´ŸœÅó NõE?_˜ûýôص îHŠì#Q£…X.iYµò XóÿÓåÇEfkáVˆÑKÑgzŒÚ®7Y7œq¨Ý’ÎË)†2NÀ5Ǿ¢™Ím¦ÆÝÈ!:0çˆQÁiF4JÊ 2€kú” "©½è—°2š5»ˆMÝ`§o¯ªºÏÈs9ºö ÚûÍ£s¥Æð±þž² œ^ï@竜:{ é\y™’@XžíÁ-^€*r×dk,¶\eFV,6*õV#WMs}@l=Ôô”ô#¾¨ÿ-)P¿ìÚRéŸý…LøsùÔåÓÊ"·ÄÝAéwl’"„¢Bßý¡ëÝ„ñ$ÑãÊìñ˜ê lZ#2õÖ J+Ì2…cD­1¦Ñ8Æ¡¾ îxô<«°z 5ÇMÉ“ÅW"—–>9i±¸‚‹PŠû'´:æ=}Ý\96§áIN.þâ+üyxçô»Ëüñûk¶3‚ì»NÚ«ö‡¥E¢Û …‚v/tí Rž Ö¿‚3†k¯q&ûšy ¾|(‡ž…6º/ËND˜³Ÿ‹7ç›Vç¢ÏÞÍ Òã.]Î< úṟä1ÃFƒ8‰ÔÏÞ…õf{Ÿ©Öáøu)û*?{ÎF·ˆÚà æ‰¡#L•§š”aÇ;ÿ:qæ³èîŒË¡¨RU™Žà0;;võaT&m;—è ªõäqo!íÓa<·}™GMIÏÃQç0q“?pg&BS$ Ñ¥ŠQqVNbJÂN‘ÒC›2†MÒÝmj;Ûo‚™5Oè**Øä«Ð£oaFNg@"»ªÓï³|Éc¸+#+ªEtzáþ–9žŽü<Ø÷TDàå“§ŠÑéŽD•h¹²ØöÜt¥½M»¢ËÎeJ@C}e”YêÇÕpkÏfÁÐõ>9غ…4ÖT/–:ï”ò¦\‰iÿÏ­½ Ç‚&ÍÁŠ2 q•Mÿ|™ó©KÎqëk"–h/µÍÖ3[¶'ôŠÖZz’0A`{xb\"jÕê|ß)–ûQ«Äˆèذ]Ú¼ÏFTV%;À/¡ äEßµN—þó°+"ïëny5}5Xó .NóAná?¹w:û˜+z7B´â—³¡{ìSÇÅü9ÒÓá`ý*ðÜ¡êƒE^vËcÅv`ãø_›#êáÏ×;sØ«Þ5¼6Ç!¨:xY ,CØæò©5ÚÉ7Qí3¿ÖÃt`ðß‘K„‘[}¦:7S÷f^"ï‹ó¡H‘ òITœºÉ.5¥ýªÏRæââ¸lÞM²o’6N)=éðfúÍ,ز†bÌ¿üU3­Ö@/–ë&ÅíÁ]eÈsÚaŸ’™æaî²nò·'5ª â=uþ˜¹¦üÚ@ ŒéA…ZÍY‡¬ÆéYVßÓÕ±ŸîD”šl9ÿ/Ôü$*–NÚáâVOjYµ¤Q™ÿx¡Ë>ºQЖߎ9U®ÚÈÈH¯ÁÍ—¸¡­3:á7°š6.Ù²êld„D¡3éRqw.Ñ•¸çAGè`"ÈÖ¶¼-_ÿž}Þ†”ýø´IaÆé¶Ë›‘fÓs;¸øê‚“ÔE‘†1H`ì:©Z¬¨‰^tÉ6ˆ˜ûØ%g’ú½ a!bQ~jíËÛìdoljîFÛÔ`ð5Åê‹êExðu€$^ ÒÊVÁ³Qn:˜î껦 vºöϽç”Ü3uTêž2¯—]ØÖ‘ñ’2??‚QÑ –Eø?åD¡,ã½w¬ÛþûhPtƒ¢O¡í:$DÅ,—[®£Z ¥&µ«œ1/èåS4©ãƒl ÑÕï>$Næ9%þH¿ÊúA 6L7œñ±FŸFÌšœéG?O\!ÆxÿHü–½$  `±ïHÜæ??Hi™0[©ñ™P‘úýtH¦~Bú*”Ž:Ú-#R?7 ÑCˆ .ýZv³ž?[µÛ•âÉ]à-Ãp 4ÛàçŠÒ[Š,™‘5½ÀÖÊÔ~ÔØÓ5áÒ€ØKgY ” ¢:¦9šɪÏë¢VÈÓ¹|’J­<¡xÄwúÇ%úÌ#äT}\ŸáDˆsnLúŒ<©sñÒ€°»«Ýê›ò– Ñ|ð±(ÙØ=ª|ä—OXߨ“ßà©üEùӱݳëXØIß,,CSXŸ¸ö¦­ñž!—æj¤úÖnÏäÞÁ¢`⃘üƒ–”OŒ…<ÃŸÝ ®…¢yØ·J_0‚6*9¤zyQû…ýÿN•Ï3äΉ$JHÎ1«QI¿ÑÝ$Î"ªd³ƒ<µqalDÜXš=†#±÷î´ü–dñn¡¯ r×ë¾»â&.Mïûy]}UÂ\LÁ½WPnè·C:>±Blâ^>Œ#: …pþVÜÔÄ)ª+­J‘fÛIäÆŸŒ1€k46K•æ cÐâ¼ü ƒ®¡[µ<­*ßË?ÑÝÂjd‹®¿<›À*þy… ô(£ÉÄh G`‘HÏ…²¯ušO»˜¼L®€”,§¤~o°Z4G©Ùí5B¿R|V?U®{ýúrZj½’¸{‰Â¦ >£)jVý°EFžÖB”Q–!\ „Yû|`|ÇéPлõ»÷uK_GMëƒxÇÄœW$Ñú”:w“j]4C»­ÊO*Œ¾Ä€M Üž^S ûÙøÐáƒ2MžÔM±ohã …‘÷å’ªyOTeVm®àéaü–¥a¹3\2êj…eûL©´ vl¿Ë¹‰ãÉ»°v®n:b¯ewB;Ór¤y¸¸Ç(IqvsG¬¥E‹”ÿ²`Ï ¶ogÄèñ›R¹¢mK[&’¢wøu3kGb­˜ƒæk…Ï -@±b[2-?éuîJÌÌ;e­j’r×¾!ÿÈìu¨\:Úv¾6ï{Xö,¶A é…/Ï»Þûrï0î½W’aäö&„ Mñ9[åõu$óþ}·xŽ)˜Š{,aJ©Æ4(Y©*ÅÛq=Üÿ¶5$©D–Ñ(bb:ÍÐìÀÞL|ËOGÃLÚWH°¬¸Ùö¥(~Üj~Îj4Æ!06·„MŒ ;Âà&,¤=ym‘Ox›‘“ψ$ªáç©14ÇÈòÎç>ëePp,Ç É ɃÈ5ä?'«í³¬Qá0º¥ ޱ`«@¶Eï ï hGa­Leñiºá¨ÿo˜ç#x3Ø8ؼÊ:5`&&QX¡W b‡óÉ¿W-}§]ñÙåϵE6ÑÜmS_åØAÌaCÏxï¨êa³[pb5‰XUÕžÅÞKhµvFvLæ•ö@À¾°3ÑŸÔJž¿/‘dxµà† ´•Ø‹{1“öZgˆ¢$–B@ò JspÝ<½üFÆ[åÔ“PQ9¦½*X”|*¯ƒõ¢ÿuÛbEÞÙÝˆJ ý\á(åÌÀìÙW¬w£™MEÆXDÆ}×Ù«û(!§9Áž ¦n›iÃÁ$î‚x¦3LSÚ±*ò×\›c†ž¹`’‘^Š,f;ÓÝ ?mXâ'þnOѨÆyÔ9Æ_] 8g uÐ/´m",­É…c¦ÈÔ‹LÈ…޹;ì_$",OäýÅãáæÆ3B_9Æ †]×ùnæ ŠGä æ¥öðÌIV –c…³ƒqòÕ©çÜΤ(mª´CO%Ú˜ÈèÖœ Ã36ôèëhæ-Ç„ E!r—sŠß… ª=)„¨”xì1+N ‘î„·„åÂìu®¯ý¥6£OV‹uLõð8"Ë]2͹Ö@)â£Uøö_G~Å’qôòÝý‰—D ÛªÌ8Ÿ‡;©oCè¥5 Çž^×NÙwÊü~«Œ0ö3’oþÍÓfÊbçßì’f‹$øÎ™’–(+(»Âôz”:4žÆ&žÝ@J!å#\脹#üÑJ‰{*¸Ó~@ÒSdOF…"}Mšú4úÿF¡JqK¤HÊýó£ÆýAXoQdÉÓçÒPLª øJï­ÐÁ5øÈtp–[–2X’m ¶ýRôuNSL^º×^9¤co¢‹çÔôÊvÿ0f+Ëá¼H“3™H † SûkzkJf[É_’–¹ž˜br±œû­þÂõ „|õÜ—¡¢š¹AìUC¶ÑÒIaæRLæw’rœm ›C÷˜ÊBŒùj²A=ÚŠÍá4ÿöõ2¦C£ÎEª`ª˜D¶HÄú(A§¼2³¹c–è\*•&9¯ìèÒøM‚~&AµìÀ¢ÕÚ‚Nÿ® 7¢@Að•p©7ÃÝÙ¬9áY{M~¡¼“»Ö¶R·GíS…Áæ”Nßİ Ü•5U‹r‚T§Ú„ÈΛúô>Ë íÉ}wÚ ÒÚÂý a>‘• °—~±8V’O°?;–FRÙ‰¡jAi'¢bßÜkálÙSsÑ¿XÚ‰eºÞÄnïJ7´ÊœsÇfðÓ`¿C³Bàˆ×U«WiÈ]LþÊr toBÀ™:Μ¥Ì¿Wç=DÄö¿ÍK+J›• ºƒN|öX#Å,~s»”ª‚™¨1V¹GîOqô#5œïçošÆ§áƆKѳ` {£M|eb'ï¤BQ±2Ôw½=RÓ`OÚ—èÜ ²2]ͦ¤¹O;¥›^4 =\´"SŒµe,EÙÇ VÜtÄC¨‚ @m€à~øèø6_ ,¬Gu•†öÇç·Æ6pýp³‰nÎô'˜šÙêt 5¦ÃÃxŽò>'c³©^=©ÿ…Vÿ¤ûAQeùïmKi…¿£Þ¯qp'"³ÍXÅÄæ?Îâ?ŸCˆüžðh1‚V§õ÷ð ±^±Ç—¾Ü‹Ãñ_ów Ø é0M®íèjê×ÃÐgÚ„ZM 3ˆTI½+qàÇB`ƒÀ)Á } pÝæÎÀÏë§Qˆ¾xÚUœøzðí)\ÏÇÄ·Kw9è<þúË;Ýg‚pÊŒô澿eÖ³l,¦óS¸l'€2쓵®ÁÝQ àÁ.æ×’œ¢D{/ÃçÊ3núGÍ&æWÇ(ì[çiQÅe\EO¬¯5˜$ˆBh¸·âNcŸ†A¸×Utf¦‰y¿ë-ÂæYõÖ¤•(+â{_{r…øecrüš5¾µYG•\QÕêl¨ÒE=e¨É.Õø'V r¬úNHy{â`¡S x$¯ ýF¡~)5 IÛiM=ë0Ø áÂ0‚â€Eó)Ö3õœ…ç)(ÊÞyÍ*½Sj+ “þM=6ù 7Ä_ß·® Rø Ïrߟ©VÙB‚öXmÔì ‚âùx)t l7k›GùbKôùG£F¨å#ñ‡Ý«Ñ+u¦ÛP\”•B̧UÞõjÊöØ›ŽPØ¿çZDŽÍfèˆ2J}2ý¹náªW~ÉUÆÊEÈfdöH1>2îGbÙ’×Hr^3ÊNðd“$ó~¥«Ö¶ýóÕAûŽ;+å‹hš0¶fkƒ½I§ÖÕø¬’)ÇoÒÀxwbmÐ?1°nDŒ}1ú,jӓü ²/~2q?PîQyi›ÉKv³eSÑÏoè\˜{;H<¬Z.ÛÁqòG=èËQ¢r±nIœZÁR ïɾhºÁ)_ÝT€è'À…ÿ"¬q/4ÿ±Â„p£ÎwÌA$´ YùqAbõ6†.úßàë4/¸LT˲©ó:ÞÀ–›ñKD› »ªiB&ó|;„Rnê®·óù¥"£Ì³F¡˜x {íbó»u¥ëNϦÙy^yNh ¹I¹‹ZBœÊHr,AÔׇ`‡:FŠøˆ~íùl±1$³ t/ñg‘NHÒiiþÿ}ç†:ø¶„"“. ÇB;¡z“½:|Éôú̉ÓN´íQ/ùòî_$nùT݉j#’ðÊNÇžvÒŸ';¼–Ñ"ÚÑà3“¡_ÿ«yºnLs­:3SÀ+^—‘“pÆÜ¦Š^¼÷àní?ê‰Ë VY¾ûr~sÛŽ(—Ä`ÏlI·°ðÈ„Ïv0®2â¥%$Íw­ûÇHû¡.8y–”dB RÌ&yƒ1–)GH_DA ÿSÚšþD4Ö„ð%ßÛ°tuÕVã©mªä¾àOÊY]²™ˆ¼}ä6—Ó—y²@š¬¢ì$¥q—Žž×x™rg¹juLïîXdG¶îøÝ`o´+²}v! ZIê»ÙœËµ>"`dΞ›…N-€^ g½ÐeDt1*qáæÙQ/d $vèÀšÇ{:´@̃"Öu Ç„BäŽ;1Å¿9&¡ .¼G—«‚Ww°,Y8£ñí³/ö]b1]œ:í)}tu1÷ˆ‰qaw‡ ­Æ?<Ça‚ËfW¿Áªb<\ORqénLµº„y€Þò_ÁhTp4Ï¿Œi'öŽÃÛ±VÀ½Ç5iPô1&Aý‚ð©M^µö¢®üJ¬=¸ÊqÈŠÄŸ¯slîË:œ^cŠžè% fJ…^5V¢³ÓëBÅ€ô V"ZŠaèEîô¾NÉ3ejÛÐ$ÐÞ°%Sþ‹ëçl> n.ä‚R Þ¼°úbó& @YªmiÚ:‚æÄÞq³½° œxKSPÓüˆ8÷(Q?Xbbø8G Vïv‘JŽ£%P*ˆL?÷*4Xgš×­Û>¡_k~ü¯K¤!ùÅÖ~{JÙýoúPR´¬¬6²½ãª²¢1›('šV´¡âø‰Ë'•Ô#ǴµCš”` 4ºc˜„¹ÖÙŸjUjUf…8£Qí÷…@PvËA·h¶¯ãVwj-ÿžšfW;²u〇cç<”wGtâS èü @îÆ—ßkëG®ú²B=RÁª]³MÛÛfEÒ V èõñÌŽ HˆYÑú†/—n+X„®i¼á ѹ:Ùò›ÂìÂÔbt âŽ„Í™…¯õ°•‘Êo¾eÿ¥r‚ÉúÁð¤³ÌœkŸ"ÌêJoUìƒYç›{VéU¬QÀÇ”º[V¬ŒôhÌÿ8²c«'ðñLfݶ†p»óýÍ;F˜¦šV4êåÂ(i®¥j‘€Œ·ëÐÙcçIÿ Ø2g2³r+jÁ•YŠ|fƶÌ6ŸÚ¶â/ýoP(ÂeaÑC±I ÉÜU/Åžäf¥‹è©ómì®%BPMµûßÁƒ§Èþ¸—˜ÿÖz%f†ã«GÈ·jÁÁ®‚nÊ[k¿†äÌw‹¥ôœ¥û¸¿â˜¥ê§–ž!ÀJc¥=ù ¾¶ºÅëìXy/êUasíãn¿3–ì{Ò_®S6mB:hÐT? úàQRn?fU†§­SíËAÁ7,qc¯I®P±Œ&´b.§‚Sìmvû”Ê~fUF Pu”˜8šuWÈy ²òÏÀÁšmÒ•Çe¬~ÔŠ+Û .¦]‡xTá$ö+ª°¦L ཷù0–l38š-VÉÙ0xÄVÖ¢œd2®·Ê&qî9Ï;ÿ3¢ú³½«ÇN­í"!s4 I0¿ÛšÇe̺Füö)5*+~¦o“}YÊ+|Äâ‰&“eØþ«Ïlý¦Ö¡¡!ƒD¡¥ˆ-ýóÞÈÍ0=ÖC4µVá 0¤I_l_¯±1æÿÝÇ5' Qæ÷‰×¢â±‚µÜ¿9À#½YîP6L™íü¼ÿÛ^Þ:ŸÙH5¾]‹zLO›CmfÒÂàÇ÷ùÆ•ëÆÄ•vî*Ð\è”»„Ýœ9ý³q„RÐUœžÉFÊ|«Lï™a­Öí(¤åÀá¿#Ð¥wp@ 6T…aÎ} ÀÒ^ê¦U f$À‘°l‚À-×1ÂE4÷ÝKéc³ij*q•3UB¯Ö£5‰ÄèJrÙhÕ‡•r¶ÏyRò‡fBÃíæøµÀvþ˜ÖHá¦d•ò7ô)ßóÔZ¶ŒÓfPrž;ÙKzwcGCW£@¼EɺkÈÁRŠ WY;V3wq¤Cú@£‘† Å ƒcU‹0;õ€pŒVÝ©<ß”àé˜NãKiè’S÷±üš3¯=‹r•ÇAµ¿\îf:ά‡ŸOgÌ7Ld( Õù°ÐNƒè§ÚäÛ)pÝI!´7õlÁïÑà”i7ÕêCÛvµÉ™C‰Ý}%ó°e$ÿöüPGüÓÈÊ«;̲ËbHš@l=ýÒ(Ò¨ø‰7=6Iƒu……)jàŒ/Íê^Ùð_Þ ÿr ú™»ÝiýþÔzÓÁ–º4Xf’8?Ù+pº÷^Qh1ø¸=µ?‹Ó6eºzhረ5G5>?q‡R*Xõå#…Ä˨+s¿3ôÔÇšø<[ßW%ƒ;}ÃG'¯‘b^•pž$“6ÑŸ±gMÔ3 x®k80E$V†ô펌„Ä]x¸[—˜§#žü¡Ë´\› jË—­ÂUê6ý/‡ºÔ­òs^„ÑýÈ/`«¶<±ÍïD'%úddƒ‘D˜ÓÇæ.:d¯Ìqâ²Ø®[í»@":ÿ-„ŒÚÎån©^´²¹È6”ÑLÅX÷Ò"^…¼R3øÎŠãÄQþx ðË ïñ(«µÕÒ•”hȈ=&\0¼ƒN-:Ë$¿ýÛêSç~†‚¡PKÐBùÍ[n™Ð“̯î!Ð]>í–Ü+‘¸Q®wÍEÞ‡Ù¸nEì˜À¬¯ØÆ¨¯ý[¨É0èLp\\‘o4·æY^ AŒ§—6’]F´«[Gb¢É»ºJ—=Ì @x™£ZÃøR2œâa4’2Þ:½Æ^3;oñÔä% ™BœI§’×q vð ç чN$t^uòeíë$V·ÇëC¿&·¹C¬Œ*<7 ‰ã2¶µ5Qßœîa”_)ãCÓywr4¾ý˜$2@í*¤xnË3üã®Â#­¼àÚ¬œvˆ4ÙÆvæö_,F’*ê cèõ°E©<_}ƒi›X?‘½*²šQ‰‰€mC£Cÿzð=í¹»ñXCɳ[xË3L '/<h_Pß:¸Ä3s"í䪮¨F^b«½Är«8«|üÃèžìÀó|K¡ÆLq Í\""øb%k67YÂ:pX$-mc££‡×òó±ÛæO—*ïÇ¿ï{“uXrhüÞRË”¯:i†´J;Xˆù›&§ÆŠTÆUº>õ™eÊá¹:‡×d]è‰ÊA¾Ü’©ßJA@*†ß®jBÎ †K:Á™#o[éÇIDgѵQa}LV¯¥Qw[pƒ`E‡ö×Õ4eD+lÕX›9±PŸd°«µüôÒm2¾¸”ú€nŠbßE‹èße¾žZýL¹ÐãpüUOŒ‰œg¬ÐœòG6Ÿ5Tt9OµÍs‡@§ÈSBæÉÌŒâØ)kÞ 8Ð îñí=>"á×ÌŽi{%öaçíFÇ­dëôøoÕ¿£D‡.îúÌŸ@€ho8Áû^"ÓÄu‡cƒ[ºåaO$眛ŸÊ£ 6ànD©ÐШ÷›hÔ÷æ`„mØìkû惜ƒÞÓáÙÞ”Œp˜Ç“GX.9f8KŸ#Í~~"IWÀ6»ÄÏHmãH-á(T!Yå6žoAñ`>1Zk¸ÝîÌßɯ òó‡ z©½þšïwixU‘È“ÐëüBºÿ£Ç7ÎÙ ¨ŽS'nÉ@ä8&¶âs°ëJŠB o\b,½’;Þµ‰€~Œó9 [Ý1Ÿhvc­£vÉnÖúýNåŸIÒ8Jý iF)¸¤Ùy»àwÐ[¹ThS2|kŸ·0–sÒÅm}|=a€hÆj_j(, V3?]ÒÐ5”W¬NÛ 2¾X&x‚/kñ×ÿ2Évl6à3ˆ­Øi¬Ý·û»/ÖÍãØ(èv/ð‡_Ãü –{MO έ|^¤¬ãì<Ë1›Ô Ì+)\3öŸK¶Û¯qq19‚ ̦³¶ÛH¿oåÚìŸã=®òÊ«3¼l¹$kv\Eÿ Íô€¾ûUvŒ„ÜÊr+ISìš0lÚÙr‚"œ£V# ÛU|æu»‹ ¯­Ã"u©‚ }ÁH©þz³CƒûOSê•­S€þRÝhßï”+¤}ÊÙ?¾J-jIèfC÷ûçl« ,wS]ÿø§ÈfÌ0BÁP22@è™_4Áì{è®íT´|Ö2ÀRU*ðX[cb]ú—HA2»üL4‘büca‹à#¨sH”!†3YG´Âböõà0Ãõõ»tìÁo wÜ>&uýóF•.#(¹†èDï¾ì2VfRèK“PI®$èn°o]½Ç˜ŒâNA?®o[ Híb+RÏPÝí/ý˪®e %˜IÜÀ>,#‹Ù”‹oÿL¶]dÛzA‹µ,>M¡œÃaÙœT<µÊ§@ˆÓæš3HµÝ1¼ÕP}ýÕàVAOݪQƒÝDÃáÁ÷O\vmû”KF÷„rè™h¦:)+Å}‚³&Ö5¢>aØÔOvE‰qÂab\ÆNg@‰'–äÔ°‹¯ÍËÚí\¢9ÅÐzö_LåWU)S“='ôQ·ùÜ(Hø4ÐO²~RøA½µ‡wò)̉÷àÖÆòæìQ+iKˆøK‡¯iÜ;øë;fYØwÁ?¶@½;Ü Æ3¢€Z¼;Ý9ø¼HiÁ‹²­¹) Êz7!Šž×¶ºv­­Ð 4~,ÐêŠ<ßY[˜éÌÈ÷³Xï»åïyàË»$Á¼­l ËÀ|~p'ͱ¥2Ýâ} ãÛsrdúþª+=µÔFÀ”=^ŸzØÀW„ETÒœ¼ï*! dN„Сs½ŒßΣ¸Õ5ÙGBzˆBj>Cí@Øîœv›A¤\ ]Âtå¦;ë˜æȲïˆ/" @!žÖ¿(P/£Ç ±„HngÜ5žÝ0{¯SˆÖØ ÎÊútlªÖè¨ay©Œ}z;b÷ˆ‡%ÿ”¢âÞÿœ‘âƒÛœ%<ŠÕD¨¾êÀD1 >3BczüM¼ÔК{™²‘…LéÔ@…h6I7Ó^®ä¸€ñ¹D°áaªï¶ò Š˜¡›$’îòúq§ø{Òò—Èc>-šb„büÂÞ’%µÊ+žâ½$è`¡5æç¡FGÉNDÀ,²›.j«Xù£pÜ¿7Ñ,Æ~¨˜[ÓC*¸¥é¬D`‘TíB³ü_"h#ÁÒC`Q»Z‡¯¾j}áïc‹! 1w+ìá¯ÇaÀÔ±0R3­‘â«îèÄ€}nXãòRíó‹û—fEñEÊte(NÁrži˜ÙxÉEg„¼«E),0ô@—OX³{êårnÝJWœTà“ ;<¢æ(ÔDº&}»Õ‡I?#¯eQ«ÃÞN´Fðy–šçX 8ØM§j‡šòƒÎBð‘×°5ïIˆFÊ–…7l¶áç:5ËM?J³‰¼ô´(px(³³³iow@§¨ÑSÁb}{Q©Ûr“ÊHþÏÓøáNa½f¬z×~~?=ÛOÉs#ï@®º±É_ŠÚø«¥žÇ( %¥2aòy2‘Ü,?"ý/cÕ‹Eåï(Ú }µ©=7d2ª'î¼øž¯16âV"T”CÑ)ª˜Ë%UóAŠÏgì8úûGáºc¥Nír@‡Ž<ö2–‚tÃApªô“ EbŸ›Cs/Ø^ð—? E2”¼,ówÙ ÇåZAÐý=Ò¹ƒ; ‘¨tù[­}"H«jÎ[FÄŠ·ß“ŽŒYå Õ@6ˇ Vϸ"Ó÷1ë9c6£çcFú‰ óÞÙr´¹CçÅhΦ$Ê„z‘òrŽ €YÄB¼ wOÊÅ~z—àО6¥›­®ES´|Ž>µ‡ûÛ!¸&Ÿ %!”èb3ÃQìwÜD:V$ ¨öå›eŒá*¿?> ™âõœ²êP²€ñ¬ä·ÜÕþ§hPÕˆ˜š@½õ?|Ú_À ï6á×ðé¶-ç;tZüõÛÓ¶ŠK<“Ñ=f¹Âº«ÕŠb†ásc“üý`'vp}/=°Õ>ýeE]ˆŒ¨£¸ óÉšâQ“u-ÃûwÆrŠùA\¬@çÚJ3üexõ” Üü{|.Â5Yl1Bb×½Ôø!Ë·€b-b̽§>Wöµýœ9ÄØß’€(‹4ÉB%^*Yχ„àßxœ´…Þ²\À'ÑñHüâ†`SÃör·Þr±Ìh£WtÌqpW§‹¢DãrV) y£Uë^b°^¤Éµ³’‰é&CÃÂR0Ù»ŸQìÿ…®bdJësˆ õ¸jä5Ùš>ñ ]4׆џŠâyœj~£ÃÎsXwG-šžGÁ?zèý°(lv3ï§7ÏŸ;)ÇŒ‹÷Ĺé=¿j ¡Ž*D¢;0|/œ§¥m`×ikˆJ,Xcà•-ÇPÙÐf_ÀÆÿÉËP¯°&ãªh¥ã$À«@ÛùyÙö„ó«­ppލîÅ_ÛA=ä#XµŒ&Ð÷“žœuE––¹ïZ\0È »w €ÐÝ?W9¥ Ù7,'YEÈG'™V1Õž´òÉê§Ò6 É ¡.½êÚÃ'掃Flç¢P8žµ@o÷½EÆX9Ú»j ôÙÜoǎËÍIïGÓO“–°N>–Œ`7¯E„SñS)W¢"—PÐxD5âfl{©÷P¬¸ÝeЩĦê|ä”Ði¦jÑÉõ¹Õ šéTÏÒ£upñOª¿þTY׆µªC# _2XA²¯÷üÒtdür‚íPà&ób_²eØ0ۋѬ‡¼¦¦Š’kåþPŠe›íÆ&@óŽâû¼–NUó>1™‘oG¸”øæ¿Ë.8ïî­:ø³ðä! Ÿ2úÛC³”m=»ð`7]sqB{¬³‘æñÖ#O0ç¸Ù>ÅPŠr¹9ûá>-•Þ®DQcQêpäȈ†Ñ ظ ¡q7­ °Â3Ó_nÞ`îÔ¸PéÑh¼ÒóÏFfâ¡0=îºv™z§{²¿è46ð·Ãú@¯;nŠ—õÕ* §¯UOÖb$eº ²0ÐV,U/ŰZ˜ “ÌúÓ)…2U´»ëgIºNr…ÔðÌ1ûÈuà!€ÆF6­þ Ñ)~ѶØIBŽŽ<²JôÍPZ^B¨ Ûž©’©2êÚô1q ¢×9h"û[o|ZTÐÒ#úF^žurˆ[½ÀÖÙ/¢¾*±ÙR›±wëµ­Œozü«µõË(œŽÁ„ >—¥_¤­Z mÑõf «…0~¼öÜü`I ±Dâ–~F–¡žñu!N³i/–hIpÚf¬ ¶ð é1\íIïÈ *%WÕ&øf™– òü˜”û†P%åš­F\xlnµ Fý,ew[Ûjt]Õ W5<Ü–mòÓBÇ5×ÕÊÖ¹?Æÿ ÕôZÁ]íˆRœ!³Šì=Y[“–Ò¯`ÆÓ±¡¬ÍqÚÐ8¬¹×Ô°›J,…“‹£ð1¶8ˆBx“Qgc’«ÈC8­)ÅñÄ~äzµÑøaß _Œž±@œ -€Üj ]WÂ-cÛ^ ÄòRhB­áÞÉÛ&]¨’œ ksW “¤ÈÌ0Ÿ¥þ»…ÀsVõC 3 liÍ•Á"…kÏÅO¡ïàdY©wARÉKO(º8—ü8ã=>r¡Ãó£”=çˢƶΔÔ×;XÇph4¸ÏȨH‹ëU&ò·ROH;Y±-XÀ0HõJ¬=Ñ kki³.ÚêÍÍ%¥¦óøDЕàj9ER=Ñ€´±½\Œë¯ìV´½r=÷*¤^\å‚f£M³‡Ù*l´¾~¨eöµë¦£•µ§k?ID<§Õ÷s \V~’¢ÐPmCÀˆæ‘è¹’‰Â¨–F^ î‹=ÃD¸™7݇1ßN©tmÉ2½ýŸì‘+UuW¥<Ö!܃_ BÉS'K>§1öŠ\§¨aðzyVF~¸|[2e—k~–TÏIß²ùÕ|ÞMTA½A¤ eÌ»m³ ì' ~1IjfPj< ÄÆˆRñY^–Û·Œb7Kñ¨æ)¾O›ïƒ®Ín“î[TCêðS´-1 ¤y:ä¥4&WQõG^€Y÷ò­‘½VTZƒ³Ç•%¢TÓYŠÞpE L­ÂIlcF\óØÞ~¡^ðc€K•»¡¢ñ± },Ûï`V—BT&]‚õÑfäÀu³«¢d½ûBÓç.Ó£YG[0 äû7h¸s 6ÍY¸d&Ÿ6éâ•4xg$ú¤.#A™]­È.ÙP™«ùõq6`ËQÒ˜·n•ºãÆ9ÇŠ Ó@Û (¡Ù­³$­.ïÇF 5u#è“)¤=µ:~Ç HG„—Â'_žûiP!Çâ/1¿¨HAÇAî^©Z;¬½nÛÑŸ±Vp˜PzQ€*òs.±½UZÛØï¶ î”üÜðîiW¦MÅ`ܬjG€åŸô>F-c—:¯m©QsE¿± â²G`aÜ+ ¬Ã­Ë™5ÑêýH”¦{Þ8íOY sˆ¡í‹´€ÔëcÇèسåÔz,m†ÙÂ`¶“càì—õ0®cè4%û êuìöêI+ó4(YÄœ]©4`É$ö3È\š)I¨WêËÂÀ¼H€#ìþ_äÝ-Ÿ‚‚JòáÃZÂCqÙf%»œE–¼Ú™çË^°•”€˜Ëkªú^ÆK¹\Ÿj‡–¢Ûý‘Ü‘„ú›à´¹Ôä>Ý=üe‚—y{ÈŒÍ)ö=—ÒÓ¤ªR9–¢•XùtÃã¯6³áª¸Džý%ŒQ¾šF¾BViü”» ö©º26cBwit|4€æ¯‘žkÓ×§T2À$Ž$ ~h0Õ¯ä£\)iXE…ªèËM°pUV :ÂÕal´[Ã7’ ²AWyž‹fÚïï—ÿfã÷ èдºÍ™W*ü€IJ²PéȰðý]kÁà=Ÿ¶ÐLØÊ›Ý3OÞp÷CH0~ÝQ¯_ç:ÏpqþýA-ߌýCskѪô—\·-`›5'~sj:4 ÄÚë@“Õµúâߟô>ÕȤ׮PׯeuîÏ <¤Ê9YN%öUø2Oqaù¦ÁÙ`àZ­¤êuj+è´Ç¹¹4Æ©TÜ€EV”iÿÀ9Í!Æ÷T³R©1\ÕÄä¨|6})séYÞIPÚul‰1–§vA΋/Œä‚Súù¶1Á³Ï• nu[tcë±BœµzpÏü%…C7Ñ›¦Üñãi­Nø ëÌ´SWjPŠ„ã¬ƒ£· ­¡°6)‡eEfULœô »ßÆòêÁ¤!Ý áa…:{"Éz´¤fãæ¾©¿)f|±éÄï½Â³‰s­{ôÓ_8ïÎʽXžd}d´>¯Jˬ(97ËLdÜbÄ^v0q@¼ºPá™jvEÊ?ŠàEÞX‰&ÐíÃN‹v¯‰ }ÉÏ´ ýIX D;NmBv"Pnx£áÅí‰4äk-ly×ðpêýU7ï÷4Ž0«m4ƇÉ*ÈþhìÕ]I¡“laL•Ì=ã>Ìè24Îï“«á"ÂÊhFX°-# \kÀT=·Zµš.=S‰A¸o!ë‚£2YFc ¶%ïªkÇ•¬7‹L7…©•ÎR£*{§;Mñk–Æœ#þBi‡+Ã%jãòÛ%éô¢*iÔ~Χò»`2Þ™ý8HØ3pÙô§= Ô†f]ÀÊïˆ+Ôª¶Û D/@ªsĦd[`ƒB³8÷£'u7yíŒnìð»Èv&o{ݦGÙ5êmÊbÛÆM æûN1ÿ&hÅ…P•?HÊÕ¶›+Ïâ#ö¶oä€`’’Íô´Ö¸WgÂé‚öíl)ñîýqéR—*÷Ü£û_B#WêªÉ%µåæ ûÂHÐÍóMGfù9Ze§j`ñýØq–7Þ;˜|à·æòÞ3Ü¢øoFy-è»IOÛ%AºÅ´HÓäwŸvÌ_tïê/Ýn)C){oÃN~Ô}µö…ÿVâ¹ÜMòÒêo¾?Zª‡›3ô½«‡}¨ÎmAF~Å)¥ÃuŽå"¹´» ¢S6Õ È÷7÷ÝX>¬ô• ó¾©jš^`Wmš”xPõ·ç}ƒÙÀ¥PÿQ©}¹®ÒÀ< VÝÍrnŽ?›òçTN{ 3|*ñQ‘Ì̵{'ÆYQ ª•÷Šäá,Z°§‰Ë¤ÊíJBê_×9Y~w8ÿÃòS6÷Yd®ãÊÙd58Èãhóœ¡D¿û jjóÿu¥4ÇjÿÍAâ~D%F=ŒÐDÈïÇΦ_äjyptªœ‡ˆlK2N“fN¿5ŽJã$¸$ÓÝZÌU1tЏowíéÕ¿L‘­Gõn±ö0#©‡¡mº õÓÔ+h®A}ÙRÉ8¡<|·ù‚™a*q”ÖéÝ,^ýÿWL°al´Ã4e¯àâáoé”wZòõû GÙÑs[;S`ûÄC^|þèÈÂÀýªÏIÄÁüÌÃ18Ú¿+¦ù£æa)\Cá–­a›áwÄù?LOEÄ'‡¨–ÌTuÀ¡É?mˆÄÒMêŸYU~Q´GWL²ƒDƒ¡—›¾˜Œ)‘ö/†/èr*õóA[(Grlð½ØlblA7sJ†î…S¼›QØ·ÌÞû" »Ë.×ÚŽ ”œ¯Ûw Ë×-üÉ`_k7ÉG@tøG8¸çj÷´løìzʬ'é5œ´S,´ÿjÆZ&õcQ‹ÇV½Rø“ å†|É3¢Êáõf€½ºÔÇæ n„ê{ç5'EÓT¸êͺ&œðI“ë/@ü¹'»æ¬’%øzÁÂî³ý2¨:C%@:ò*ç?~^ˆ"¥Ì~Dƒ+|ù¤`¾ïŠIåÀB©@!±‰Ú`ßew]œœnR¢rDÞ=q¤:ŽÐ.‡2)¨ÆÌßt£¾V4~¡Øcò}¹' &µ“šÐ¦ì¤ü˜*³d»I¤Å=ÁöB-©Ì–d¦3Ý»¯â@þÊ]ÿÉÊñÃð´›ëbl;r@­åt6ÔS„ßVÂJQ:!¿$\†“1¹p4¦Õ!tx$WtÞzžƒn 4Üväþ\/!wAŽ%庀s7ç½åô#Y™M’Ôë½+rw@§%£ät¾Ú~”&¼Ç¶Ãi²*Á7](·_±ãcéê»éÅZ̉Vd€Žµ4Fü`‡3ýÂj´a"¾OéX`GÊŽ æ(Ó7HTPùBmMÏÇR˜äkéµ<弯: {gNPQ|p”QUÌñ”c¨+Ýo5Žc%õó¥ßšÝà³/?èZù/K 6‚Ü™ö #„©uII®¨ü4¾© Z×w¿Ž8À´Ï}ß²jqÛ_œA¾>¨øäúð<~ è¾qŽ/ºÖñÖMš *2ŒmÍ(þ•gdt+ifÀ“Ln#Pd©a40J^<§¾ôƒ©þ˜‘áÕÙ (‘R<ÒâŽ(#’ &й\ù¸ëŠžS5UY\ö•¡°Ó!"£8º»h/æ˜cÒå­·ÆQ¯ëM±#a=ñÿËú«‚pz€ îÁòS›•û!™S#óJ{þÁ`â.sF‚yº‘µºÖ3 ÐtÀ¾HsHl¶('íè´”èT¾[¸vÆDÅ­RÕ®ôVpäŒ*úÑt{Iç2ž·v¡è~çO7EÏØ-_óÏøË¤þ¢–̹&öWÍèDrÌØüSöžî(X6µ¤/ºa®"ùOŸ/î¯ñ"ï+? Ç“›fÄÈc>…‘–ÖºÌfœCLiSoÔ€WŒ³vôâ¬ËoPru@¦·§°2!ò«FL ´4 Öÿ\ÌÀ)0F<Ý5YgtF„Ùä¦Aðw?Yµ,Ç_ö«.:¯ñ¹gÖ)æ²R±¶éÌ „²Íö, ëª iîw¹Q^=L×Ò~´̽{åñæàyŒT©n©[ÓK¦øp< ÷J:Žs]3‹:ÃB™Ãö¡ÖppÇaÁ¶À..€d1Í—+„ÿd|ÚyyPGü!0á„æ Õ[¹FŒ€FG䡯= UDyâÜÛ ~þP×ç=Ap…FAhI. ðkÆæÅÅïtmÔ¡'VGÛ-»%&—‹fBßîšo°ùŸw‰ æ,é'Ñ4Á Œ¿¾|Þ–HÚ‘á(û#õ}qûРÆRõY„z¹*a9™êWÜH¾Y,(£gã»jtoó¶þºmzÌ%ñ§éËYŽ/Z>‹Íÿãßëì4î:°¸DÍò¥ý²·Ëñž½õJ…Œ,1¥ÞCªrB5Ûtj4*Ñ3…à L~8!âÏQÈ1†¡Ç±8SĨCM4]ĸ¬óSaÓá’5f‰”Žk[ïë3d^MízÞÇ%*&ŽDãÛ󵩢GȺß^«FÚ<#xsEµ2…Ÿøã±tVÕ¢¿ØþŒ2UÂù±Î<÷&ÖI3%âÈ¿ûí¥© ÈŸ™’F‡ïºçböZ†/‰ü*‡ð/@ß$]¸‰_p ¸»u„ÁÈ?~n*Ê\‹ÐÀ2ù¤£~Õë Å2Vn]V2d}¦z««3`v.ÈõÂ)Ÿ–„K¯qAnôGд¾i=l¤Á°'8ß«[-ÂMk…ÚÞ(À6á’íÇ'!k†öt©dk§ÍŽÜzäJ±—ŽÏ–q¹((yÊ50M² J‰Z8ˆ6N/KMâÒ WË Èý•Ú¬³BZ‘Ôy‡¦[mÝßþ^Loçgb¥Þ‘lÄÑ%»Ä„êèg0°!™´Ãþ{é蚬3â):#\:’U½4F'Ùc<«˜@°«ù&´K‰Ø®Ûpaµn€ªSV…†Þ@/-ºÉ‚¯j§QgTéƒÍ=SÉ 2v|§:"vŠ(×ËQFÚÑPáKá#ƒAÒT7DYÃçyaˆÖÞÀ+Î6‹®(¦®o—v8ÓˆÝ`@ÛDq›§†E /£Ì<ýÑÁE•zrhÓËÛ½55L{ã]ôÉ­y ¨¼‘¸®œBÕMžO޶Ťïòÿ›M’_fÞØð€h"µŒ‡¼Õ•Üc“-·ŽSIƒéîÐ:¼¹½Â$…äy‰qþAM Nýi©å¸PrïɬãŽhzu7 Mcÿ:Xgy„Áz1ï¡&g õšèw‚°ÕKåv¢ Ñw6½Ò2ì¡X {ÊWëRXŸØmm=FJ`nYxF¯Öú]šXcxD\3àYKf„s2¯<¢±UiDk“uˆŸ´ªgp\ƈLJ Ô’Î4JÞEu8l ¾caúî@íÐ-¬’ã:¬(–jfMKîïwÑö“oÞŸ3yΘx0}_Ä%ÚQ_ŽtK/¬‡çU TgßÛ·=|ýÄóY‘=GOl Ø`Úfºéê{1¦ž¬ÝØÑ/Kmï 0/¨H!ÓÒ¾‘Í_¨ÁÂÄàà±Ä÷RSI¬$ÁQ©ïá™0¸Ñ÷]}vF™‚]¿J=l1YZ†¡ ôa®qr…¨ÃÎSüË+äžH²àö•2*6œ¥ps ÝO BƒÅ•è±0íäìw¤Ìñ^‘9$RcÞìFÞ¹lÇÅïËŸ˜a7Ð'÷ÝJ8»Qh›‘RŠqƒ)ž¦G#ýò|),u=µ?0qhîJÒ‡Úò¾Ì&Â-FËäŠFo¨ tòçX†äÂÂØ{Eô…h€—ªçˆÂ€qC¾ÔÙ×»-£¯Œ•Ž»8Ðöêxøõ~³;t7 íýÿ•ŠÃ»OQ ð’O «ø"†‚‹(ÓÈR©³(ªWSAK¹A‘õ¥ppÅßÄ9Ô#ÃéN¶tjès„ñ™€å³_Šo’(Õ±e¦Šqr8_êxýÛIïB¬<°« ©gøÌÛøMµßpìÉ£*²x”F?Å“4ç„;¾ã'ˆõ•˜V\r½Øÿû†e=¦4Ÿ¾É«ìM«&TFˆëÜ—GÀoC·TWãEë•S€‚Ù©pL“UE´œ¡¬ Œ½2@¹­¶G¾®“÷’¬]!ÒI)²NÐ(o1Jô0 'õž |Ÿjž’ðÿ:¨ÒfÑ?¼¨A©„qæÇK2!cû&Ö Ø’\Ðè§•„Î(ÙQÞay½`ªfwc“ µaôŸÒsûÿ`ý…—š®ŠEä å©Îɦ^­ Ø"ܘ«ti< }[Öö¶ºàæÐ3HJcs¢G5£†º¨Ø€^çÒ‰{CÔºdÁ«2.Ô Þu|P£5ΊÐíž(Çÿˆ‰Vyî(ÎnÓų•O°s5¬=oüó_b¹r÷ ~D¿[i±”AŸ×°¤åÌxrj»À7tÑÛekŽ9¬úeš\­yr ëÐ㉔¾©à–H¤âqÎ눲D 7×cYÆHp—•OÊ÷Ÿ_d½òYÎùØ z¤ÎÊð\Ó½z«ýgª#ûOâó"PéÂÿåõ2þYõ¹øV)røö íN!ñxYÜS ÓaÅþ‹H˜4h5“äyô8l‘`?ñÍ ÝþÏU^PQƧf+ÙàHUÊGE_ÛfœÅCrp8-s ‘ü}bK¾/Ùó‹8@„75‹+)‰È×çDõc…†Ðm àL~d±¹wÃj¼n!¼^ °£¹’µ¡öß¾ · ¾CYI7`§¶KF"´„¯@€W2%iÍ®èÕpý”J¿4Ž­ØŽ=-fgvãM["‘"+=I‡pÁÌ£‰Í~íÌî‡12Ì )`$&$æeתè÷;ØõæÚ]Gƒiú$#ž 8a8¬ðß›Cp¶ÄÁ@g˜ã7; HU7Œìb?Òw쫲•ô.#W™Ã:ß„ª³cãnu” <–ó”ñ5§îÜñ.ƒ¸”¿àÝæÄ3á×7´•ÅwÁ°1°!p'[‚’Aâ»ëž[]fÁÂK–½µo¬Yû_ñž®Õ’„;A‡ûƒ…ÔV…6kF#EØ’WÇ WÏ¿ª>²îcòûdnõîU̺AxOk·}¦]äƒYÚ þ<%ïFZá÷¿º‘+YTÀ=h»RÛPÊ»ŸSŸÈÚ¡öìþþý½ÛN}«އÒå²iñÃÒ‹ãï°ìf Jy¹ÓÌÀtûÎ]_’!‘FŠš8Œï2JàSüwÝǵÐJAç_¹®ýð¥t‹É¢âPtöLu1騋¡Ðì!‰ÉÛì*|Im^Ü‘ˆ¨vÞK%ßðI³›Ç©“v+dŠA\ÿ¡`u,CÉw4˪1eñ- ãåJ-<…Åb#hP3GêE47ææÂ±æ+ÌH”“Ÿú ß¨zôS̺Ҏ©S×ë6ºÑQ»µ° &V´NS‚6åBIJÉ=jåE tD#ý}X®F‘¯}mZÄLF¬šYðgHTêg¹JfÚ ½F§(°^­ž¦@·ŽG°ºÞ,ÔÖ‘º~«]‰R©©ýOe·&Âüµu~\?:$ÞvŒõSÞÜ9Ç@DøíÒ‹GW›f‚üœx×ò‹”R Ø‚kSd+ àáš¾}Óª7g=+ØDkzDMB½â(+ 1¬NŒf,äM‘B)¥¢d¨SÏŒ3VV UC‡UÒÓ³œÆëŸîe•C3‘_O§Hj?ª<¿«#Ž@U=9±(ŠlnÞkäj¬/‹ ¿(^Ü ì‘‘äì?‡Zw·l× ©ûKÏo•â·h‚MêÄÞµíuŽ…kñqûîñèÝçP›.PüðzálÉpjþ„äë¬à7ÚÙ¾ÙöÔèIû+ܦðÌÀCºm§~vvg>äÃàÑîâ$Æ}ßM8/XJ-ËËh³<#8’SŒ:z>Ÿ·¡[œOÔÚd!æ“ lR‹71xÞ êÙ 0£ÁÂiËf=B?–AøiH·¤û£7,xõ=wï[zfûQRþ1Frå*ÂÉjb×l_¦k7g!Eh†d¿D‡ôŽ£A»àäfqUÞJÆzJ@¢ †²äK• í~ÔA‰¤ÒB­¸Í4”( áðÐÙrU¹t¤‘úcë@6<'ÞmôªËs½aKûAÐr­L–l½pQ%WiQ¤Ó aâçÖÙ”¨éÌ Ö8"›Õ.“ÊRhæ‹Ã:cbÇxšnçŽ:§c=`Áh˷Ș å&ñÁ”umrûîLwƒt¥ªM±ŠÀ&öEv¢„Ã"‚kC{‘3Þn„É=n™°k?£;ëèT XYç=Hp%J- 3ÓÙ3ŠÜ¿¹*lo0Ž»(›Z¾‰Áj_é%Ó$«VÀ û·:n²jmзŒ~×½k£×S¢Zÿ}Æ«Yª̺«bÓ¯¬‡¿Xò™Ðmæš4ÂZQXöìŽð{±’œ.J ƒtD¸†¸¢®­íXÉ“öRUô'cŸ² ¥ã ^í7ɉÏGóI@£ û^1ÅJÕ¾‹‚{+²O 5™Ç¥ÏMùÅÈ·Ü.±ØúíÙµ9ã賸aÐiBªºeIÌý6þ}ÉËQcñÞ׋käiC.¨´ ?æ'”oO"ಧô’×Ûi\¼Î7™a–•'fß‘•2ˆTÇ9þóò׃ÏúÔïB{òÈxo"uöTÌ®Ò%s^â&xP:<èãâùñ‡õZ0ø‡¾Ö¥®ßF½ìmÜW*ë›1ض‹÷´Su5¾~þï|? “.LE±–ãlÉSQj2î^úwR[9;æè["PœÈº j2lÂ&ö¡"zÁj]aƒA{"°9%ÉÜ.ÕçS o†”î†IÇ+dì~Âñï1Ë‚”ã¯1ÈdƒÑL@½=”ˤ£¯© Å®(ƒs!\2——åb!ÏÄŸkBŒ"qFº¦'E"(Km`¸†naÎ%o ˜'‡ˆ·»Qx0Mõ:Çf”RÛø„ù–'GE,eÜN³AÌžëå[ýÉa wà¸ë16¦œ;Ù3jh|ÜS9@d,XDµ|Ëœ[”ÔŠ‡wÄ H1×ÀU[øÁUíë›ÓµÐ¯xIBaI(¥sU“ïØ‰T? G_qÿj³j¢AèYFX•â¢ìGëíÁ ¢h™¡æâ0Â’L²èz›y‹"½M{ìFh#ÿ!ÿ+Üáܨ³  “©xi-B7ÔÆDëÅЂEZo%Dzß‘8þ(nPã×j|2qDþÏ* ù²â«>Ä1þR9Çg$;³Ä=¦ìŽçá¹Ú>‹L 8×ËyÄÏöð#9Kf°æ„MH@ç’‚ j”A½èìÀ§ø~`(¨ä kÃÖšÚ6xF D´ì÷³=êA‘o£‘9ÉÓñOm@Qe*`ógoÕE—'$½®õÑ 4 ¾Ð’[‰º<$n§cív7ÀT\‘h¥ò¤¸ð0ZwKJÊúÇu>!Ûª¿w`Óñ:jsù‰hIK„Ã%Hz·óòRt°4äÿ¶B'¯Žt=ÌcÚo*f¥ècÉØƒ½ø§ ûvŒïÑ—ÇO<×3; KÔKZbŽe•ý"¹|rè#|„Ä—¶˜EÀGJÉ"~ÙüM¸lÂH?ñ þ¯•‘ /ð_Jx/!Á)ù**•1ÐfÑTI‚Ãü ŸÅ%ÏIÚo`öIACgÇÑ'³m1ñ=SÔzA5™{ ºÊ1£ãü¬S?Ë!˜;´ó8ö áÊÆQ;ÌÂ4,(kýá‡iÆi#U3´ïnÏ÷"oЭ D‘_µ•ÃÕ]Ù×ñ_Rq±¸&@Xy²ÕºRx±y…„õÀèîv8˜q˜VËé• MUûF™"NbŠHÓP‹YV×ѵ\(·ïÚ^=ÅúÞÅ]2ó z-¯SêcDüÅh ÿñœ‘¹åС2żK ¶ ¸åqj>·G%ßè Pþà¾zÝu:°$_æ@ª€I£Ô ©»ØÙi-š§2K¿íÕó¾éå'ÖKuâ@—yÁK»_JÅŒ· …ÖÐY ²  œ3[[‘  Ú7¶óS_RÚ;íþ‰íCAÔ÷}bÞ݈Ã÷—˜¶)àðMÝø2fü¹/øào³ð*éÙâ‘É–ëu6:¯Ù( ¬öãö€…¿äÜðÈ竺.òÃ@Ǭ‹l2Ó è­º»¤ª˜›nè2È¿ôþ\WÚ""¢K–òX1²[!Ì€ÂF¹´G雊´Ž/Ñ{ýM²NÝhp2Ñıû^å^¸Ò9œõ #K’ñ{ŸœNòàÙâ òøì"—øž}œ„ý=pú`»WScIH,¾NžtÁAøZ.ë3Q\f3d‘Ï€X³ðk'4n8A¡ýDg©»º*9OÓ Á<”YØš§’è˜(‹|)…Ñn-¸¶6+SŸD±He¨Þ¾°«Îz«Q‚ðsäÉY¨å’ÊÍÛ/ Í…©Ô×Lõi,# rÚ1G»rjÇÍW lá—‰!,Šwo›Ôƒm, `¸!ÝóGÓõWaÀ³ŽÔ×&Ä Ž¨³ÎÓ½'\¶Ùî±)Îak'LïV0ý|ymQødD×T´ì Y,BB±@)a$àSüG«'lPmIÜÞ’l-È'ç ubá¦%€ªÃ7‹l|M¶Ö<ê茟•¬ ˆÇ¼£8[X)+X^ÑgSmE3ÁtãOÅìD0QÆY"$¾›é»pgÀ"UÖg©ø÷¾­Ñ6ÔÜËìüô4¼sØßÏ„bÉI¤§#ËÆ" à&úRþ pÊãË%.*3}]5k†Á’ò z¥ÒÔ™î¼ÙxÒÝ_¢%ˆË HѺ‘<@ÎC°ŸßÎsÀ4Z8ôA_(…i-æý²Ò(Rñ¹vÚ‘›[Ô!¿ê^ŸâZ»ÇÐB>µé‡¹œme\â S©ï„því?z•:6”Îâo€ZB"‰|ìD¿jr•¬¹{-žÿsWw[2 ÎqîîŠJnàZ%~ðöéô–“GXä)ƒ¿>·¿fÅuÙ¿w®+ìN·† ¢Ãɹç Þ¦n?-R&·Z,Èžê&é´íƒ7·h£Ò”†¼ór4쾆¤–Î<ƒ½´nT¢C|â1'ÊøY´Á²-ù±gz?.DÙ´×)ËK‹É{”Õ3„g¼ÿô?¹À-ÓTÅ+UÉ”ûµc£«›²‰vù€Vúè^OÊÓ-HLŠ ×ˆšqù× ì´%‹©ÐtÄ&Ÿ›`¸ÛµL¥ÕìÐ8Ãò¦¨ÊÔû¬UÏ• ,ÜM1=@B©W‚Ó×Å»EÁÊØøb¹óØ”êM¦!4Ý2S‹Ï JƒàÝ›q‘~Ïã÷ÿs Ø¶f±½ùâw<û…]c“÷Ÿãt`D«ÄêCGÿ$*Mt¶Lë®õ¸Ç´Ëm×yâ_·z`ÐMÞÁË`b;=PPlêÍ.x¤@úÍ:I¤†½¨mã~¿“ß™sœWÙM=ð2_©]ê¶2ã‚ܰÔųv™ôbÖ,cì óÅÓêqK^Îlþs>¿Ð/ Ol‹›(¿»Äó;~fIlmVASPÝ`þ$Æ(¦‘½4øëžK]ÃSùój‰ÕüÙ¶ð9×Áè¬ñлápîëÅ!¡8*äH’Äì/ŸYÂ>˃Æiõeî7 ##R"@£ˆà=äT2Wk X£ Ây°s/ÚÈß#ðò9é/©Èò¨©ŒrQØüÉd‰l60q—‡gñ¾ f°ºË)ÝÍše™f°1öõ\‚%¾­’ê*>3úÏù4Nî7°zRAè'ÌæÛL¹hà‚åûa_¹É Q@´.Ü>6¡Bí\qG¸U¥1Ï ÉgÏÚ#Úµl‰Øó‹FÙc]š‘  Õ¶:ì1*wõ¥áâË­Ì£¯eÀÎ˾ÕɹÅíƒYÛ~^.]Ñ—ßæf­ÑïWR›=ª‘¾à _V"¢-G¦Œ4¯»D}Æu] æb^º6öˆ(LÔ¾+Ü‚² Vœ¥dÊÞúòžëDXœDwðЇC]vš¸Io5wèzÞ“ªQ0ôn¿µí•®>ná;;ÇZÃRrïìµÜ•v…45¢ŽÛ%xË/EWᘞ;-/~?³ƒ33ß¾T›2GQ‡JóÌ( ½Î°§oî´Ðù̧kܹ±°Ë¯Î¶)9.s’ß\ö©'èÍ ±Æ[ ¬Žš(&Ÿ\¾÷ÅhHh§ÈN”“Ã!WÀ‹³}é`ä+”›ÀgµpÜÃÆ.eªy1žù¶·ûב ß¼³÷˾ÖòÅ@¼æ.eªÔ0¥üÖÊ$þyØ5…Ì÷–Z±:h<™FS‹G¦@zt³}–¸„©Sƾ¹…. öVÉXàÀˆÂÑÄž_q&@ÚÔ­êÉR!ü·ú†ž ±\ê•{° Zó±Jéˆ`÷? D;¦|ûH¢jÄŽAü=Çz´jŒ}êçrõ“JÊÞɶÔ‡]ñ˜Ð»Qϱ½õfA`]!óÍÍT—3ÛFî⊥‰Æ9F§þ‚Ѧà„öØ@ò Ý-|Þ Œ $·¥„9ËNÈÜ2õ5ƒfÈIÁa×Å¿å9þ ­„Ò2ÔÉ—“µÂm¸,ÒG%è+väe–Îlñò kA¹­/éWíiÂȯŒ÷/PÀêcÖòpyHªï 5N¢Œ˜Šðˆ3Ç»‘pþ?òMæŠ*fˆJÒr ðñhP­¬"N’9žUÏ,êö¯>Ã_úÜõ—b>‰âÝkNõìJ÷)•WIò°BØE›I3¿a¾ófOâ@ˆ;Ovç âêÍ SØ;R8W©U~óÇpO½²ÿnd±Â(ÍfÅF›2=\o_t*úÏKód8€1a¡ö† ·•7ˆªÃÜHfËXVÝ^¶âT¡ò@Í’GO ÿ­M †‹(§_UÍÕ”›O‡ð€r;qN‘€Ú%­©Z©)´/®÷ûm‚ K ‘ÆIÖp/0²·U™u,#Kj1Rér’&É• ãv1;êÊ™‡—4ªl®€ÙbsxNøÒ*“¼ž© äú6Ù%†f66|j•¯¿ˆÏocA¥MÉà«B ËR~.‚:˜}!õ™{/u°4ÿTY!x%†ææŽûž©•I—ýéGõØÕ¢Ó,/mÀ™(ý_ŒLÕ&÷˜xnØ~•u÷ŠJj œïHå&âÏ-]j·Y Ý ç9¥1~i@oO+:ÞaN~Šhs®ˆûå+å%\Êb„Û¢gãdcôM™ÅdÁ˜xf¦Áöµ‰*gÎb‡™LƒSÆRST?),ëŠf?VâóŸ¯;—Ãy¬Ñ]ù}D?ƘgÑ ¢çw$ø4Á €Ÿè©äpO£ýY¾¿¯éiŒƒÙ3î.wrœŸ;Áϯs­ï²p¬r Gõ!.`oM긛;Ó†:H–^î{~M¡3b#ª£ÿÿÌL3y'´Ó^&i §Êß_¥ÅS£9™9)“! %ÿÍñíONĘ)Cÿr¸ü^5±fžL¤§ø+%¼!>ÄN½[Š*8±cQ©×£€Õ¥ãÁ ß§Ì„lš²™qo>ï"Æ+º ,ò÷EN2_À¸ø_Üfôqä*OÔÁ[lËp.î5úË+ ýåy›KϾòŒÂþàç®OCÈÖà4-¡{¦kd‡»‘4O|Éð»í!Í>cšYÿÑÙ™$2Jºm2mƒA‰ÍcKÚát5X”ƒSíeÁe¼xÑUÅqܬ;¯I÷yœ€0 ³2M_pþÌÜ;0±ܘ’•Õ¾>®Cð¯Ë1ÊInÑEÛycj§?b¢²°ßg°±Z®IϤ‹»¹Ÿ4}þxä€_´6ŸÀýVFƒ;¢3 « åÝê»å†×ªS ø'âoPUC‘ëŠÂ3ûùø1ƒ~øàóà›a[˜§ÐA·~ß´zÔœ¥Q6ÐŽô6¡Þ8:8Í|ÍQµ` &qûs$ˆ¸J<©5« lÑK•abÒ ÁþÓ‹}¸–Wq6ĘTSCn™4йRr˺†³ÏÔU„i~94sOšXÓäŸïg5º´,6Ópß´v1ê/®(ǽ¯Xèc‰¿Ò¤˜?(YzDU”hÖAŽŒ´F?Lz³±÷OQ,š¨|oóížáÓ´¤~[Võqr õ‹;®­Î9kfpøMå*3eë²Ï|ü`J*áp3˜²í¤Ø-¡âò‰‘¾ÉËN~(^0»fµÏUµD;î|é»eäµdÖð3LZøñè—Ž”&w'úûª„x0Ù%Žãbñ)ð#4Æ=YD `v.D+»*ÚΑò%º1ƒ°xÝ¡é… ?c#@ÑåÜø 9¿ã‚Rêîò*¸Ž«iÿ¥ 겯:Rå-{šÈ–^A¤±8Í×;ÍlG„Ó z›ÔC'ÚŠ;µŸ’D#>‹®äÄW å¬f¤e½WqEÈ'—Ì ÓRñ© ªÙJtë0}*¦dO‡¼ + ´êfáuëëAÖ7AÙ bì›6=VT$úÉÕ‘@^íüª¤Ô]¿ÿrìpŸxTÒx°æm¿Î‹Xª/ÿqq;.áãUœÚQ®ÃÈt?æLñE±åñ1ÖìNDàyu7OŒG/ª(`‹ÊnHËU <ƒá ¯ãE‚¿¹±»níðµñÐI6™aÕsN¤Y‘îûíÿÅžÚ‰PÍ8qš¾‰žÛV‚„hÒ4“ÝcΉíÎÞý"©®m^£žì=½Ic¢†¡y¯ý¼ÔgU_‰¤g¨%Kɽ{Ã$éŠ6´f<„ƒc|Ô¯”ÚÍÈW<Îe=m¨ÑeI’”+”a%ê5¸ˆÖ¿V Ì¢­!Ø™~ˆG¹Ô»Î¡ßI¿Z<%Œ.¾è~׺œ^É ´E¡~®|aÚnh6“$“8úð˜_ j:¢ꄨ*ž\Ö@ŒjÜþ1mV*Ú¦™ªìQÀÁ@éeuQºî_y8 À% ^¥¦|OI6·~Éù=]>úÉýÀ™n&®À˧6›ÏÀ›³²­åáÛm‹¤ ¸” )¯kjc/:B“&MŒ€°¶?Û>¹ë_¦¤Dö©aýÄ4P§Õ—GϼïÚÅBD §‰Lq )ù\ÊI¼O»ù–©$FŸ ÐÙÍvìì: Ù°%]/xæëÛAÿ÷0÷˧ϬL’+® (h“~&Ov¥–? —{/Wbtõ2ð2Ö)éðg²Ùî䟅Èw-K߉[º©AÝéYZÊwTcþÀK$0¿ÖÎç¸õ·¿Yq`Xü˜í¥ú|ÛäÿǶyÍúß«„ßafꩱe›X1Ù{cé6ൻqü‘OØÈ‚~/ýv]‡Ësn¹Fý;2Œ³´é%¥@ƒjÁe>F‹ÖwÛ‘¤©0ÈÜâÀ-Ö•Ï"OšÅBÇ žk«^¶Ëøõ†ñQ˜T¡œu Øp#­Å„™,˜Ù­²¸—øæèþ±>–ˆ-üÞkŽP$~fIù¡¹KqVC|Ün ‚˜}¸hÐ[ð Ý7¤NÚÚz.5ª­=Rgª>1YpV+ÊÝFNûÌ¡‚)éK,Õø&ˆmo’;V.BÙhNßɼŒ,õMõÍzÇ3£A!/C"Þ$Ðúk;ÄLÅ©<^êŒç*k ánCnjǰõ2ª¤½8«Ÿ²&è|£G`¤‹iÑíN·)!Å¡~ë½fžV%'’†’ Ùr”D³÷.ž–XÑÞy€Ám`Úx{¡)xp‰ìúVN(ΙåòclFÐ܆ֻ÷“tB¢¸ZB-,$c÷·3ú‘$^–^+3Ý%Ô3 ””·¹¸Œuƒc±rXÁ!vØEV6NŒ ¶mjà CWÎŒ ,Ÿžîæ;Y œäÑ‚Àp8pØuùú9GÇQ]X¡¼c“ÃdðsޱegÍb4»¼4¤¦‘ržgØ×¸ª%™Ìvª1Ç:®b}Sjõ´žýÑ&¦Ê­_åpccMâl*JtG´÷q|1ÉÔä;þÒ0¤!–´Û)‹#GóíþØÈøÑ³ÔÖ`«øÄYiu^h 0K;Å¡%þ¾÷bŸ†“ü"EChaÖå§£]¾¿l`”ŠÕ<ï×™Y¿þ9È8¦ó‡ÑY†ûôlö²@Û÷£{Ù=ÔëcA¦Àë2‹ |0wþœáÇÄÀƒÌ=€}v]¸*432Ò‡ŽJt–.¾§M¬Ú}’¿U^r«B@ÉŽ•BŸˆÊkíºb+ZühmûäOêF¸á5WæœçjüÚ5óyݪ~yD:À@>Þ¹¦òvÐÀ¿´«¯A7b@5$ºGÞ“ˆRå9©N H–/íï\S;tÂm©‚+¬ ›ö«Ÿ)7Ôæ xìóݤx(p(WíÝÁ˜ç „?¨UáÃÙÓ®b×ýgO°Wi(ÐlÛA±š#È»{C_‡çÚæIA»Ü˜ËnÒÀ%ãÊZòTím‡ëMt §4»wÙïìÉ€fù£!•Ñ¿;ãú+¦ð,±²3HQ¦T*WòKá¶¶Ÿ ¯‰ '’€L½”!8eÛ'ZÑðUŠ?¢-qÜ¢…û®ýz_ï¤>ñ¤QìÇÓ]l åkn±B*øVýqÈx­À±,pÿ튪‚:I‘ð˜ Íß””Ûî²lŒ@YHrÅxÜÝó;I±vcrdgŽe>Úf§Ý£…ä¶Ž¿'ËÎÛôW`Pf{™øtóÍ5Œ¿êLLu÷èÒµ9Ó IN¾Fµ°yeLý¯Â¬)´Í•“uªLméÏü áö·ê[­!LËÂã¢ò¥Å˜).¯ÄQämå,Dä.Nýn&¯îSÆ7oœ©6b¾7B pÛ€ùž9É)b)Y‹_$5kÌ“´†j‚$=:Å„ï[Ag•sï‡úä§ýú‰! €DW¢g쳨o›ÿ€eL´³o\|ùÊ¿J¤>ü}ËÙ¦‚Žt: Ûù³‡­ýcÑ#3¥9ËUùUã›B´¯ÈWIS_ÿ5jY›¹^㟭)¹£²ô…¹×;w¦˜G[ß¼ÍuQdß•!«2oVêv¿8˜EWû\?¯›•à¼/iÈ¢ª(zÿZóTEHzÍU‘„v SèåE–x%FfÎ,uˆŸº:_ݰOj%éëðÞp½.øFI=ÉÒ,OYÅÃaàÝl¤yF¸ÁÔ<4]1ç_'ÈHì×$Š£úS¸ÛGÄ…(Ÿÿì*5ÿW–rìÿ2KÜ1»O½0`âï+Ëû}#îzqžût‰ã’Ш÷4œ ëS÷[Sõ­‘Æ—Ê76x.h"X:t!ʼndGo¼?Kø™wŒäÊúäIº åµ³ŒQ ò=CxTjla)hå4àš "OsÄ=Ý÷iÞ}oÞ°úIn&F¾Ã¬©.§¹H1:y "oL*ÅÁÀBü5ýLïò×´§Îvű͇¢Â60’´W‘—J¢üu2µÎÀŠnÁ#ÇgÝ÷_½ˆ•à¥#<žÃ{mP+d.Ú@Ÿk½ò¨¡îÈïM+\½B:ý*s‹iT»¡¥i8ÜÑ9êÙ 9Hãɵ˜Íø° *‹BóaÏ€e‡ƒxzSZã­hÔT¬<ÐoLêµ¥&ŒLHf§ònOÌݪˊ‘Ý¥>·"xÆ™WbÍzø»³_ûçÏÍ !)þIB«=­(ïuDèÈ ·×¹½a€Ú>~© «Ü¸Î\áYB'Œ©ÞcWù±éé3R&¬îO}d3þ>‡¨‡a9“+8—-FŒKŠŸØ"ÜõªÃöý$,%öKÖˆ‹^0ïŠËZ ŸÄ%Ž•ækû­¨» æCb´H ¸dc\ET¾5@õþÝúuÀ´~¶7-é´ò$Ô_ŸdÉ/ròY¸/~mJ}†ÎÎ_Ÿ¿EÑ ÔhîZ¢Ó¹<{G.ØœÜvF`%×$k¸l¹±»~\ñÆÍþLi_VûÃaËP!3ª­åŸÖƒbdÓÔºè”,}SNqTæ šITæÁØgÏS5Ü’ÞÚ ââ“SSr:›’M]ƒA2”F+­ü¢Lzoø£Å%?pŒñÏUÒÍÉ7Aìˆ%A¥– F,¼ï’2‹“ CU,ËÑñbtfÿÓï&FÂy1åEÊÇÝÓÕH*ñÀ+o%cÓ¤.qyL´„aЀ¹»Ž!D˭駇³¡©0g˜fóøñáéTØNäoYo¶ðe±§jš;Lc¾DÔ:M‹UʳŠXYÍKÈ1%@$üãÄT(_W~r>„¤ì/âo{-ãÙ@z¢’-Ü%LEF.Y½‚ÎÁÉ{XšËý»p§ŽªöU=?‹°›¬–ib2áæê7>sµ–E¶‰7ȃ¦SÆ$¢èƒb>Ž5ëò8^mS¼Û:É’kPµ†‚ˆÅÀ­ĨT;=ù°y߻ٽøÃ›i÷û3oR­Y˘¼_ÓNÝ0—óyS@v{ûÑ(ñ%d è?è37K³&5õ1‡š‘é¬è RÔ8,ñ£8®PÿS`Ó{¥¼–Ôü\„¸?L™tp@Šõ°Ù@T7±ŠMÕÍkùe¶¶á‰÷ó¤JžœÂÅ•Cÿë·ƒmvë3(|#Ö“€^ ÙÕÕ!•¸‰ß3§`g4ÙˆNÛI®B Õ´ˆÐá­ŽñŽ(šQ™5 •ƒH"T‹_?ªw:¼²\Çð)í7æUøgW¶öÚ;5iR„E=MÒõâÑ¢4p½—„Ænn³ (AKŸ„i$@ÉAVÓA`;ÔÇ>³ÂÓœ„™OT£^6¨@ØX@ySÃizÇŸ0ȹ7ež0SBŽöž^¨´Xî_݉Á>C•z¤È ×Ý™’ÁP†JØͱ°Yóš©.Dì‡Ç8êN*¥«SÙΟc¯îNjhÞ¿ÄÉuÅÕÇEGÞÀȹʑÙ—u$+ùþxÊŽÖüœ°M`™ú—äÀ1MŸn$á]œ93ÚLÚböª¹õòØågÕ ›b‘§u>î†n‘¬º£uv¿ñŒ Vï#øøô@ûgµ/»Ì`V—HhNl?Þ§ðYe“ ;èv¡¼Ý‘.Çß{¾h˜`ûN‚‘vኘðwE3ñw(ý²þKl&€²Ÿ‘I(ßœ›.-üâ&YþQvrýªE‰è°× 4èZã(#¡’þ{§‘l›¦^zôûwPˆ%P”ÖΙeJ5ñÁ}™èõd{׺\K,v9@Óõ2ö.'ÆŽ!9ÞËpé¤õ3¿üú7Jl ›˜5à>-Ís¥¬n$ðÛåóæ¾ÊÁÛ;Nôš±}³èl#Xô2f[€¦‹^Ø{V«Áè›7&(¿ÙøÔ´p Y-XQºþ½ hŸç`íƒ&o‚­KfûçùBœÈ¦Ô[íþ³7·Þž{dnfÔ¶/4।¹Ë¶Hz}ädÅ?Z}-‘j•…êS·«Š%09ZSMä—±!ÿèQ¶:Ñc «]øÄëæ¡\î ¾ÉÈ×¶“Ç÷ïíÝ䎅î*úî7Ë4‘iŒà6¨½zãL–Õ_ÖWíÄruL²k‹ñ¼M¬‚¯¹7ïè|ÎDI|k%:Ktb®ð…«]®e/Ò]˜fÃZ)Ë©ÀËÔÙ²a·§Û¦ºßz18œ$Ý‚G¬CàÔúG%‘ŽË<ð°e[¸ë„°i¤j*VóXéà©™fï2>^&!ßÏ£Œ°YØ~¼4É¡Ã]w _Ô'6׋œ_½¿#öj7rï6y;ä2ê>ó œ±‘ãЋè·@Çk„˜ !ÌÙ±éKâà)º<#EÑT§™gOâáŒOùëãØÜ.…d_å¤a: Í0òÇ ÈK’ÛRV¼œJ¹Ž±.¼™‹èþ;LïðÙ]»¦Ýtë ^ëiä{'á©üEŒ‘»eE«/+“½âRR4&^³èU¼QË) ‚#ªI‘ŒÆ`Ó!ødú%Û^ïUóýI™ö›úîRëê馺:À#¯ö^U±à™rÿ¤¢èJho1Þ|‡p‘Ööoøø“K aëEXÆ©ˆ¶kéΗúå"(§š={EBàö·vŽ2ØÇåʉÌûŽ^ËóÁ¶OŸzеO6W©"ÒO‚¸)ÊqJ4n=œ-àϨ”ô)Ld\_ÌT@‚SÎVVeˆ5dBÝŧ®KÀÙf'qbÙ?ÒÀçñ:DÀ@P™B8¥Zjœìšô8p]¼wï‘?UØÅ¢Unç.,Üý¸îz¦ÑÍÆ¥žƒfÙÙÜeícÐ8×(3êaÇB§vtØÛ<û¼§—ê(ÝÚ4û#fEö‡F„S0ôhìy]e§Yy ti@Ĭ}no‘±RŸq3.¿ñG|»KúÉ܇’­å§[Óî‚Î/¼` n@å3N3Cqµ?óY Ô Ùuì©«šì™¾U4~ž.HêE1‘–™Ž#¯i\¯»Ñf‡ñòm©—•Ê(yTâ1ÊŒûòÉK²³á~Zp´w œœ x횦5ã½Ë©Ù’$|¬ºþd‘x/æfbé"êø‘¤ Lr™9å'{ M'¯ªµMÒ4‹ntÓT~þù—£¹H,Š_†Æ>Oɤ·Ä{VÈ’_«Ñ–¥s³?U»n{‡Z Øz%P²Pt7Ä¥Ñb„vs½]û/QئÍ%¨±µ—sA.X2Ìø{]^Ê%ˆG°(  ²Ü¥ãkÆÜÑÿ^Þš!2Èp_ÂbÞï@É›*²ÙÏ„—iÍ)aš #=N5 Éð[ÐågÒß©´á‰géPs*ŠÆ2΋ÓÄø5bù ¸Ñ)ÙâÜ{<5À÷°ÛÀt[éÏê¶…ÁŒRÑVUç^Ý‘0OÓ)Zý¶»|ÿ WÞ¬‘²®ÌÓ˜·—Žœ5ÕSwãú7ê¬ázÑoB«T• Í 5et2­'LW…°³‡°ÍQÛ¤ÒÎùˆø¸ö€‡*š3yMjÉí©€VhT4G_¬ódyŧ¯ÆÛ£ ÑZH$ð :;Fr§JY‡Þg›M‰=ʆ ‹_žƒ¢ îÚ}è[NÜ(y&F½X0…-r«çŠå‡ñ NYuë‹ÀÙ@ÝŸÒ¦¿a”1ø ö×4TA†)Úª8‰ï‰‰gåYÚÞ(rah9×¥’`y]ÒêTbÿ¨¼ÇJĘ÷«®ËKôZ_޽ùКZjSb„dd²V‡$šEÒêCû¿ØíX‚£[Ä•}Ȭ n0sëRAPR0¤Å… ÚiãBڡ¡̷{ËŸ ã=á‚zIÇ Gx}: b0sȧö ɱªþÆ.„Ž…¶¢ãškŸøèC!þ"kžÞ'мuA¼¾õÂÒPÈÈ=‹~ØŠš2‚eÍÅôÜšŒÖX³=‰t}%NçÀ#ãï‘ä(ðz2*@s9 e¿‹"÷ZaIü¿­ÿ¢ï¾˜¼úV[ñ/ySÁ³% xrU-ôh®_д°D/%ó]Ä n°_XÔÖ™ù`'…?ŸÅl ´Ÿð"ÙX¨ŒPiH<ã°C© 4Ò·E7ÊŠu«k08¡ÕÏ#v¸¾Ûƒ[=@à¨{%ëaâÏöÌ{Ì'ô*Í=Ê1€Õ˜–eÞÖøãR DïOyê2Ü9YbI{åñ7¤¦ãT¢‡‘ÄAÍ„ ´ïì\{¥þ”;¿‚rÂΟEaâÞ¤P÷Þ¿øµˆ;n»°*S8º93TÿeyJ絟hw?ô€4¹GÅN¤­ÑØ;[ {a©xüyÚX°|Ñ Vî+4Þ‰¼”ç+Œ‹B¯·ã OÌì¿-®v{¬é„듼RM“,›ò‰M¢Ü;™w-PûX%æ &ŒGΪ‹Ë+l÷ª<˜/W|W0]¥XÉþ›»†ìÀâPR„iòdh”Ê}-® Jîùæûx,à \ñOµdí‹â„óêÃ누€¿5)„ÑJÚ“¾¹Ì`)+Z Œ¾:À»ÄÒ¦'ã´È1à=ÁN’¾ÁTŒè‹kí&iœ*êÝ0‡q”F?A'zæ›é;ãAžèLZþªí6G¿ÃJ$;á=êO"N¤¿ThÈ8fâô>$µÖÜêŸZß½M­‹)PüŽå)YšDýˆ¿¶ïÈŒÌ}{ –2馄 ‹îJò#¨ am$¦ßZp^õ(£´,;*Øl©Ì>qÁÚJÑ[®4$Õ6^Kw…*k'rŸi럼æÙw‘†$9·ã¬S‡×…TŠæ¥wXøkÂp;=Ø€¶ójÆ4+'ƒnç¡Z_ZõδIÀ¼yÅ“VʲíÏ8sz¬ Ü–îS¨è++d˜µ‰Ú;þÁÈaTR×µ÷9§mŽl‘as&ŦH ôÖŠå€g›‚d@ÂWšÙX\Êghû1š2ÚÒì ¡òÝ©*ç$þ(µ`ø}ÕÕxd…·cC‹œq¢ä”,!.“àbxïd àôô¤zFÞþªR³ò®›‡Ò¾0øiáú\ èsž-!ÔˆïêÏÇ ÇÏöš<Í«´®û‡ç€Q†JK,d¨Ë/ç€rS?âE„®þ—!ïc9ÂËCøtõÊ{ääXVS×§®©°}pNPipØà«hBþê°†C‹+!ŠÈpÒ5 b>û; ¤z\aÛ]Ưç˜ÝÕíÜžŸ¬Z@Íý½Ÿ£xÏ‘(ÎõG‡õ®h^I¡a%‘¡ÂS|«¥ã IäC¤òO >»fj¨G0¬0½T¬r½°ù³÷jÆ"’ cI>‚Z½öd qÙ„zókaÉ·¹<ÍmO$k_Ñ%ÞÍ}튣vûT·¹æÉÛØÃ3uàÐË o•4·®3¥6…öJÀ@Ìî ¶¬k­&µ¬u‘DïúŸ€è¾v#öaõô”´ÔwÂ×|¬¢ÆÁa«?ç(ç’Ã[šåEµXöF!ë¢Ëx>øKãÍÊÆ­j! ̲Uóœñ\Œ-¶„,5\Ô4 ^× kPÎ#¡è¹I;§àѯ‰“%´zÝñ†›µÉd¾6w2¡Üì›Ñ."¬ Ç\íD˜ÐÀk*i ©:¡Óü àì>Úre±º|šùj°¯& îpi ª5!à€&dbD]®ð¤ìV¨b>RG¯ÝDõmÑ3Þ³žKŠˆib²_>wIøFãƒ1ÚZõ2¬c7´¢“ŠM„+ÜkŠ´?4Xu®¶77L0þïÓ+e'‹û‹¼9«¤o´¸Ä·Þ…¤y7ôþ³Ø\Õj_[–´@äDŸÓöP’£Èé"²3˜†ÿb%fù¿úN¸ —ê‚¡¬sh¦1e5p3ºr46޳iΧ!#Ùâê$Ô¡5ÉB§éDZ¸_Ï’ÌßœîßåDËØˆí¶Á߀„…DÐ/0‹·HÛJ(BÓd»©`~Ä£jl=˜gž1˜îÜyË$׋óÈ~ÿô ÿƒØO:Þ! r8{(¶ï·ã'Ÿ4þ¨Ö›œ N‹éÒbXvaÀs]F=xƒ§êÂWB-õ¨‚c¡¢äŸÍO8`éS…m{3Í|òza'aI[x…þvÌn’ÂÍunL„z« æáHùæ•2 °YÀÁ_±©iM…¨×M[sÌ'ѸãòbÍÚ:^ òïf%¤KèV: ½ßÓ·—ŠÇï*Uh>T¦ŽŸƒ‚ÉÒ$ÆÍþñ k‰Ù™¹vÄØ=-äÕG~<5&bÙ‚f,ŸÉ€´Ýõ03 ›:ÃÅ247ªgì~ºóYÆÍ»„ãT—ß_6Ž ×±Bö¬“XÌ—Þü“¢`½â™ÑìÓuàPA&n˜T:0ÌSã¶ýÉ[×-n)úê²ÃÞ³œ!v¿pÑçæîÚŸl7Ô;ègoŸ£’¢Œ>–x—jrÌ[E2SjøJ¤ê6(³bƒÔù'n2îÊ•¶ÉK‡Äâš‚Ÿ¬<¿A±`žMãάhѼö„û#"~6®nŒÔ®9uhÐ󿺽)¤”ß,–.'ã%ÔC¥Tõ i6%\$±½!JjÙ5Ý”íïÑ,Q› etsÚ¤¥Ü£Rs¢@IösÝ?àç^ä‘Õ€H¤Ó·" IU"·%gÂq´*o=q4+öþÒEU•Yá©Õéùw Rèó D4ö²Ôq-NΩð±W®1GÅÍRW¨l ;®EtÕ½épö8›áç‚-iqu«o^:Ó£` '§–ú9(ÉfGé௲^ó~iÉÄ”¢±ß÷ÁÀuÚß#ñ[ñ}>ì}·MÕ&‡é\_…øíÈ–-y^²ŒáÇwY Èû´¦è_½ÿý•«uY‡0ÀƱ„V,-@‰d%¸âMƆ="i®AÙV'0¯g§Ô¦ÉÀx_0<ªN7{DùM!É!š‹õ‹{Öþ¿¨wB[&RäúÝÁyF‘6=*Ñ„£pá{ \äcô@tWã7‰æšvª–:'c/9‰íkÐïóZ(¤*Ÿ%w3Åþ‹ñÍkÌnõôc¥mìU¤ÁÒZ\™†ÀÞ©7‹xT¤n ´ BmRÎ3`ìmâCÉo€™Ç¼x·7¯öÐ&O~CCH¨5ºÜÀ.\<‘—ní„Lj_p§ãø]üs«²OéŠÌ?Ñ:sàÚ†ÚéDPñ~â6Y4  ¡ Óªu‡«ûÉxíòê+«ìÇÿ†MN8‹Ëõ$°ßý`‹v ÄHáC.àðçV~rÌõ4…Ì×¢=oÛ6à+ÕÇu*[ÒÁ™­%Ö‡Úër/`ù¸ìW¢°Ï4¢vQêø.QnŽúŒ),ßð§ˆ; 0â±]ÑŠgj·[§qÛfILjîã$¼ºhŸêŠ^Rf}˜ŠHý¸Sͽ%Ðäkÿ–‰ÒLg=ØŠ”X¤ ÞX Èõz¼*™EyýÛ8kîåO‘0Q¦[¯ýâ"Ú»¼ÂIvÈJ‘,ŽÁ(àûñlãø3Àõ¼%ó ëYð‘Î:`mœq9‰Óïp ÌÈÈ…© ü¼n*F¢èmP½Þf¼Ý lÿ·±ÓÖ[2,€éÔ}Ãz[wÞ¹5ðìÔk޵E±‡Š‹¾¹º†Ö¢ åäîÆËøéº×Þ(Û ¼Õ¹gÐLºà7ÅÚRë›sYò4“‹Õ=¿Ë)¦ô‰å™ê~(º¥s–I¾VîÄýÉ=îÇYR\èíQóÍMåì: ³_Œ(ç#¦zèB/æzJsÝ%•j–@ÙIĽái\ xó B(¾n_ ë$ûÆIo©Ðî»Oô B®9Ð\›qWýwV¯ÔÙ¼vˆšè€îSÕœhñÉ)#‚£íEGØ$1šÃ„mx  †®ºzÏÊS¡f…•m⣠P(߆Á?…éG`¤Ï•—qÙ8Ò0;ɲ©”2‚¼W­5õ™\ñŸZ¢µ6Š']•ý„?îï¨EsíPxBIßá!S¦3ÿ? ¾¥bSPÄæùe™eÛO]8 ±ßÉèô©26£ u¹ám6LqƒÕÒfx VÓu×]ð'›|#Å$›†îG¼íì|á€É½j²åªwÈ ÔÙäûØÇþ¦)°Bb«¨ýÿäîûÞ) Öãu Î&‘ÙÁæz^ÆŸP3½}á?läÍ£´Kww½ýîÚò.öPÓ"Á¢¦žÜ'ÿŽ˜wÎT¨0YcsxòpØc38Çëe-}ú°ý×òÝè-£ kú¥r¨×ú ö¿.HÏ0"0G‰©÷OÕ¬àìuU–¤•ÞŠwàÙñ³,öhKÞŽ&6.þÔcŒïó£Ó-zÍFrá ÖÍ–„ï°¬ìNã— ŸñýhZE<¾kÜ¢ØÎtɼ#¬ß¸,0ÐÒÿw±2‰Nª¸öîL1¾xñVаў¾¯±ê‹Nf ¨ùúæÞJLQÖ«ý¹¨cY•1Þ_Öu³yêi&ÉoB¸’%8Ëù“²|Bµ†±<ý/û°¸„H›³å#‘ÓL΋ ÊÂÖÿR@p]RKZ:©B‚ "Ôtæ“ã4Hfö‘ÕÝhÎæ4 FÒ¸4ÿ-Æ£çR•ÿt'ƒ$Ô­Ú÷¸Ú›{à ¦£ôÏ¢z°d#ˆ½µ×oÚW>ô E/ °¸ü£®lõˆ„¡I“I“ò©Þ«È¶l†àKI¨¾86]ú{°;’;ìG/‡°Ë«_­ÍÖæ¢ð(FM  ‘BdË.‚¡wŸõ<Ùb|2t¤%²)åã…;í9ÚŠ&t@e¹€¯‰BÞc=ètðä?/lû«ÇÒè»·±wñzÕ’s–¬TÀƒus/…m½ß!Ýã$÷”h9‡ú²Cª¹ŠNÇõp¤-53M²"wÅ>©Ã&·¼‚íÍT¼Ï1/fÐYXçë¦eƸñ¥Ù¶¾ƒ¤Å—”ûÔ,f&ô®.`¾ÿIyT[E~EúLV‚þw*š°³FTê €Š%·å‘Æê…•ê'':(XŽq‡ŒÑ\moL—èIee¾áЦmd˜¡Ï²±3¬Û>Ù& p ¨ˆf³Ã_<ún³zæ{ýeäˆ~;mg)`Ü›oÖ I™fo= <’É{Zµ¶6(€„fG ΰü(ä_‰zïCÐ9/§Ìe¦¼Ë@¶§m±=1¡“û¼v$ÖT7 Ò9î ¨raE®ÈJ!@ÂÊXÐ#ð9ßH)RE!ë”{“À6)bŒd¦V\µˆ–8B¤\{z‰›#’l àfŸø”Þðã&$¾bÛæÈ>“h_Ö1äÒŽn®+py HŒÚp+¤û5ô¿&AÝ#éꃉnÆ(Uœ‚Çãa|Š>µD(ÊJÈE çR*MlêõD›ã»ËŒG>pTt‘G1±l`sàfÛo ý{`!„¿³Õ%–n<à}£É QPu–ùåÃòXBPú³#õÐϾç÷*x­•LI_ŸåÎJÜû‰Òz¶vÅ&§üòîÖ –®=v³•45âÊßžÙ=.ê× ½Ã¶5H­Sl‘ü³:Íozh'O„·[u$}ZÚ®E᪡Ûd¯9šã}ðŽÝì´ë®QXx£‘N«R‰‡iÝinPkÆØôx„k±Œ–j±¶QË€(wËP,‘ÊoÄ+œÛê¦"é%@`ëoÔÆ~/¥s!MÔ|:ØK¥#Nt!e"Ct‚‰ë‡¿l¹ô_Î9SÎÄ7¢ù÷!ìdnð˜_ø¥(U’*‹÷!Ž´¢ûÐA+8:2nçâöçsªkD"7{¡À»K¢¾§¦ßyÀäX¥ÌÛ³OI]=*VÎý¦‚sC¡¬g¦¶¿ ëup‰H¶ñëŸì®ŒºË²_bsŸf¶™ƒ.Æ#õ½n©.5ÛxP# |_– ‡ó· B7eÂÿ:âKTmf“ÐÃïÖaøÇ•™£<ã}¥x¢o'¨Ü¡=üï”Fã´)±ü¾Þí­ÓmðV0½Þù©ê‡@!ÙŠªz ƒÒÈ ¾+ëø{(—5H1¨8¯…T›Õ‚ÿWÓÖu£+Ú}rüÄDkg±¢¢ÄÆ„ šwovtRÿž•\»YwUχ÷œ£ƒ&»¾"†u¥SÀš€PyÃËKš+‰s%‚qøÕ‰0ÕZˆŒQâûNèʹïž[§#8/]ŸUËG=³¼Ê¬IÖ¡×ó\:´¦GÁ ”ÿ>G‘(›"Œñµ]Eêæ×´†“ë€Ú⳸o°%C`ÓÛ€zWÜþ´Q`Ÿq隤U!ïÎÐŒ¨÷ÉŽ­…u¨â~ÔRÙêÝò£ÖÍô#\’˜ï8†BhAVHy“if¯Ï¤¦f™Ü+‘• q—­ õmŠa[Bëkñè©#¼Œ¦ÝŒmP¯}4 Ä‹úB’9À™`N ºåuíFM»%Á{×MæhwÔæš¢$ÎcAë!¢kUKa"ƒÃ‘"06aíÍ+É“Iç¤Ps|¬ø~‘ÔWÖ²’é:4‘ ÕùvI¢Eñmœß\ô4x[ÙñRž³£¾7Ÿ™¯[ŒyOP„) І)0 =îÀJЬk]àÿâkÝÕ_÷P#±ýå…Éxï×…`p¾Ç3¼%Éyñmv[ÔI[@-óÈ6é³@ÕUù~Ü–Þ'$JÑýþú3pÒŒGþ±C Ûõ|„òí>Ðþœ' ·>À^à¸6M _V¦m“©Lï¿æ[ƒU()6wÕhx „˜»›?ËV=½V‘S¨Ôÿ6ø†”ô÷—ƒ-”‘Kg3ªˆï»|d¾§P¿PZò¦¡ «è~bâ¾Å>á‹1~atšJ®J”Š2@iÙ\ªï9 ôšè•Ÿ_ãŸMäþ¥Õží"!¶+uýÕÉÙÝ×¼_‚"\3²£^–è.­»ÏfÙ³ÝѲç3±òÖ Yu5êµ×™rÚ$ß ÀhgaÊr[ÇÀËj@5„Õ6·í¸qtÀˆý2 *FJ°ª¶‚¥zй²¦o#“èþ5."òvÅÆ¨øÂ½X€Vã¼¢| Ö#êÞÑiè"OÛ=åzõVϱÕ›‰ôéS_“b÷ \©{)ó»ðÿh® ¿ãÕ)šS«À¡ÏïÌ;Ò«8ê’TcŠºQy³º†Ük2C-;OMÃÚÞ”ºë @üÀöß Àûð1¼ÍPÊÇŒD÷iÏ˺ ^|¿o]¤™Ó¦»Ð¤c¼Êÿv7jC»Žß›j\€ú+9 # ãÜ_£(‹)¶MvÈ…Yt4TÐ?Ð |bÀص¹¶ÝY†":Ü–]³³ÝÌò«jªŒÒÑúD0a\Æ@9ë†Ä©‘„¥*3d9ÇZ!!ùõœ Z (ì¯Ï+Ä*n²±¶ŸÒàHTNðã-¾¤–žÈš„ÝåÕÿ™]ƒë¯³ûú ©ÇNγ‰ !ãÞãªN0ƒQì›zaSýír£–ùk9ÓÛÎŒòEqw‚c©å;¥?¿µ’ žx~ˆ©Á™Ì‰V›”• -•éñ\ÿ=Â÷²~iÐFx¯u©w @¡Çâó‘ÒYâÌï;›iRŠe=ûØéòýCí4+\Rüb Oâ îÆ4ˆ”Òز’y{·Âd^¢ +¼6h }¿:»—’w±êhÐM¢:w÷s-AAFFÚòù.Òâµ÷"ad/qs8;†žÜñ4³8–÷‡íûëBÆ[‰Ë?baoÏtû4厚64õ±“Š\REx­J\|ókØ9ÁWôü31t Ö~î5á¡6µ½6=)=Õ} /ºÙ{4?YÖë:”]©&H„›QOXßwô« £bêQ‡–`t;ºÛúýpYòßZU4x˜¾³7ïÃÎy GYT›gH ‘CàáçŠÏã›&Z‘jq¨‰v¿)ëNâ.ÖÊÞNüÙµ8b›oÝ€åjÕ¡°R[¯.ñ½3ä»d=Œûº<»²Š4'‡èåšÝÂØ“Éç‡XÄoG¾pÔ³þRÓ–MëMÎeæ”p*îp›†$ƒaX%ÎK$=ùß0m#Û"= E߇ոgŸ71»µ—@pPp¹ R©Ò–(–lJ_,MDiwÌTz8‹þ‚JŸGâÚT ;Éw‰ÔvN$ñ1gáϺhÈ \,;È/ÂFŠËqÁtBÕUüޓ̈‹Û¥Ê¸€©b›ÑPrI…•Æ™ÿ‰¡öý—?B®–¥®;ûU²FÁóŒîÛu|_++i½’§ø¿ `I ² >Ù¿ŸÚ•*Fnï…rƒ»wð>ÊúaD#ƒ²¥÷¡GžûÜý¹‚P J:ê›øª§u¡¿…˜Cò±*DïRŸ|Hõã+T†ŠÐ¼ná…üÒê®ÈÂy_¬6bkŽM[ó–¨=a^Íé]É(±Å/Z=‡{ oh[f/¡¨+3²MÛ[ ýÈ? ¤n ŒJT"ðôÏõÒAzü,”‡!kÃa>Eÿ¦nÆF­àLñoãfÓâ½ Á”¶®×ª¿çyÂVÃêr¸PÇ/N!ÉÃêùíHÛÀŠàWæÙ¨€€vh:zwމwÍ©˜@Tú0_v›GKH¸z-S“¼aªæÝQáÓ–1ÚPÐbP“˜)nWi‹  à²åYJ‘K½å1lïÁE4hSaZ«ž?*kã[ _èdöT“L¡ZÔ´Än•T’f“ÙÒ]tc¹Zæ`ò#çSøkĽ‡É϶sŸ¯¥(7ˆ£FÂàLRc±ÕHо”Þï}/­ÅT¦‚ì=ïÔö‡àSoáËMëH@Ó­€œ ôÅvK„AÄ}ÐÛz6ÿÎÒÔ“ J-ÊÍÛa84°NªÎ4à ¾+g/fcÃ5Õ_¥IÞÿaàåbÕ+r9âÕRÑÞžõët’Âj‹×Ì  ºŠ¾>ú›‘;4x²bd9šFÇ}ßmÈ(øèí—o}>ö_z\«ì]iL_ßbP&d›°¸‰lK¿v¨“á²áÕ³cxÔ D<œu¤v5'-AbNhVœ›Ô˜ó…öÙ–/ îU9·è=3’jÕy–oç{ÃþsàRØFÓ¢3 ðD3&í8@'&Öµ‘âIp`  V›ÞÐ_Cˆ·[ÀEÚéä\ùo­g2¶êˆž—û¦e ! [x Jï@¯ òà†TߨÉg{_pÈT;/j¶)‰ñyÑÍ||¦ÍSîvŸ„ü]>8‹Þ]Æq«g5ÅÎIaÁL4%ȲY°‚¹ƒÏ¢¾?’¼»Hµt©þÿ\G9'‘àÿK‚ÔÌu@*DŠiè,%bÁ@uV¡ð¹wiëû»?Xaau”VHb‹_®ô;„ósìrã¨ÄÀçm•€ž¤ÿ,^ë‡ÊéAsWÅ"ü;åóS0²¢ìB‚Ùìm |øû1È k5bæSjåFä/=Yôfæ_û P¾Ñ^¦#ûØ»- ß(€±ÜxÈ’FÖî†wË:;Ê Î;š œU‘Ès¯=ïn"1É™*±X2Ã,’Ø=ˆÆ¢)ë'ŒC.UyµNé-–Nú¯‹CþÇQß„Ÿ@›Ea$œ­ò­}âyR²Þydñ­Öæ¸ñvíçÞ¤ 5M¡ã¦ñDÂzÔ9Ç2]/Swr‡ÒÛ%8Pç%»:gãRRú \MÂ)ÿ¦¨OO½äѼ©f„ñù€Ð]…3Šû"†µ6Æ üM‚¤jÓL¥.v'ÒZ%GóFó{z* UÁ¼>¹6×ÛúË ûe'èo4O±¾u›nò…BÑ™N‚܈GÐ~q69WEF€Ü óÀDÇœ¾c¦‘Ñÿ÷ßkÙ$Á˜òlz¢é%þì ëX‹Lûd¼ Î0žÆÕ\·’X«©U+R f€F ‡D_ÂT ÍX¯wJè> }]8%-冡AŸÇ¸t®ò™4Bäæo°+CVhêËjÍ0¢]¹^ͤ/"ûý oš¥9EŸüÃɇëF½ `¶*=·Ãõ{ó™’÷UÙdsj—ÍÞsh¿oýl¤wÛô\}ž¥vù‹ƒu„I[×¹i v;v½ó,õxï/ѨŽÿâá~æ¦'öCÐsˆ”0¬Мþ ¢]»aMN»üªŽeP®X«ü¿ fwµªii^θ—•ƒÈü ÙYÅ]ÍøÊznbáUò~°•4 ½Ef×gã#9‘³0ÝŠ’ËÁ‚˜?™EW/ë'{D£µÃªµ¬ž\ÐR|L|ô1§  Ž>GU;Ñ5/(€@Oªs•‚5@™\þ§Åª¬ÝžÏµÜw˜\Ox×6ªÌ3‘ÉGùOÌ^DšS5 ‚¸•…Éb¥—é"Æ¿ãŠ(÷`ø‰ŠáÁîp³<†O#‘†î$.åïÞ˜Q€3dH > ZÄúIrAÒ½J¹Å ?À:Õ±ž§ª1Þ‘ (aÆPñm$;j·ªî“…½I…"¶ RšèBòû› 1‹‹¾CnÔ0£µ˜ûHd7͸Á›†=eJÙãW?g¥b6ñ¼@ôdvÇpÆÖ«u{Q¤ø]Ön„ªM4Ötlˆ_JõÀ2úߟMxýäª:iÕ¥ Kø÷)bëí™H‘AUœZÅFöŽ ñˆÍ׊½TB…ïøkBÇB;³ëk}x/!Ô˜·V,‡ 3o 3¸<Ï0ÌØéQ.][Ñ£¤p…¸:ã-F#| JŽñD¾uÖVíi:ÏGÈÑÄ—=¯îÿŒi>ÀA•ÍœFá EúË%»dÆÜ©†E96"­ÄaT½NÐ\Ö9y©â玙¿Éˆâ ˜ö›Td²ùIjÚ×¢8îu%q«…×­2³•œ =ÐXHwÜ?• mí)¡åqšÎŸV±amô?Á uT‰~®Ji!L"AU ™{è±'¯/äÅ\ÄS§ˆR?$@QÿÜ` Ä~YÔuìE¶Ë¯Zw7ôÂâ?õ®ŽírBBÈÃã´×ÔÆÌ ·º+¢Ÿ=¡µ*b·èãÞ^Û2SŸí»ô ¶YÎêcRÙ72¾nÊR¼N*f‚(•Œªêž*D¦­d®OU¢èyÍCÞ™˜jôpû˜ÃíƒBÿMÉ&E [þ}#=IMµ2å,á«.WJ½©×ÀVË啨|[¼œÆ¡¡C=5 ª:ß#ÚlTrÖß&,H¤SD|ÆÍ[>¿‹JzGçÐÙÀY™ Å+Ô{4Vù"ªFS Òà¬]³ß¬ireÃ!NDþþíÎ{aÕ%¥=ëˆeªý‚çj°9…~ÅW®ßõbaíÇŸ¯Dq² ®È{YXn‘À¿+_cÝkŠêÑV_Ök”o~ŸèèKu·pôÇ/£gZàlû^|Yk› "òPÇUP_¡#Ô°È?l§o'Œ»Kw÷FÚMâ–îì{¹,»‹Îž°‚i"W2ZÝÛöBÐÿ†Ù‘Î_žú넆;¶5Y·®¨Æû WS@J*º˜"n·DVvì EÇu ´œ>“/- ,.²¬¨¸}¼›Rk!ÜÄvrbeˆrë®2ðhr<ŠÙ1Mž*7Ò´hCLGNWò‚¡Þ IÈíô Á3ò•žd…—3òF´§[:a½­'D¯àÎdQ^•"NˆH xg°Þ.`—B`³.²AÌ*’~}Üó×Vã4#E¢³Ž—u6Ì7°Ë9½ºÏ×ñ`éKl*†aÅhÌÛäZ 0D\=‚[pOa£|ïÅðï,hÖ¹â,HÒÞˆN‘Ö'(½=öA³)SÿÅJÇ¿oqèt£64Æ¿¥Ÿçη󼿞®ÈìP.š=¤ 0Ø…4=mïSW„¬ý»ñec>ì”jw²Ø[L2ßÜfÓÖØãj¼&Ö°r+OŽ‹,É:‘h OG~1 ¦|GxœâXóŒèÈ™o¦–~ª”¸,'µ Œñð/¥û‘ç¼ô´5f”…—äG®D°†¦ñ}(Â?ÙÊ/û å˜Wþ¤‰`:#Ëâ‘…¾;×®á 3i¶öd¶~HõìþY—“/ô„FÜT"y8¯pÂÚoà×lƒÍMM?eso½&-CR3û7`ïIÉ´7z"™$%{(x‘&ó ?ëë…Ïu#°/ÆéM™­0›Ê¹›/Ù‚#Žðº : öÂ\óŸ¦ËùÖîwp$ˆ¨y‘5á§­é$^g8É‚€×›”ŒÈ¾ôlR q‹a¦7>hS˜’”¾"ÀônÏhQœ¤73—æå¢žéÝTÜ6ÆÄº'Àë ZßaW`Å£ÙW/‘âÈÅw† 'õ·ýßý)¦\J…ÿÅL|JW¸¿5à0ÐLàΆlΓ&†f“•„|ådJ¨*3rš¨SÒTøØÖîÐáC¯yyÕc¯:d·¥%lry¿ŠH¯¼.[4QIjFý¹°Ë>“O‘ÆÜV„7pWØši/Ô*Æ€ Št\´ž›ÝvM´#Z6¬° d…³mIµõˆÊFËì)]Q#¡âŸj‡‰ #p ©)ÓAà€ ¹Œ*›"äš2Ø€\rE D=²“Ëš²ùsËú{šæKìÕz–+›Nê~ÕëHlØ=é~ºTi W‰"°”lR˜À®½"óÓIêP®¶…„Õ8s‡®°?p&«kîd°-©¢¥è¢›ÊÓ‘eÛ¾ÉõY` ¨§ÚNzíï½àMå ºUAƒHŒâ&ôn޲Úô"‰ô´ª¨áÍ~v’ÿ®kø{¿ŠžOƒK,Ïtj)ÞSCôKƒêRÃM3ÌËŠ~]£,„•ÍeZ ô(Õ+GÜÌJ"s S'UBâkx›sazù`öÿ?ú¹(p=0 2uü›³)ÒíŠ#š!+7ÝFœÍÏäþRùz/°ý-§% "¾þ|d Ù| ´¨€û»…3ñ~CДý©7€ww ¦ÓãY¿DÆŸÝû5YBJèø¥Ê _£¼åðYöPbt°‡|™2R$Y­e-¬é^1ˆõ|Ù£Itó8yÓÂå Ie7×vJ%u3W“ ©íÕùú#i‚:_dÏíûÌNCæúÉÈy² §Æ";x›Q,V*}Ò5T³¥p|Õý€zeúÝeFºj+ªß˜:p¯Êlan±lö®‚ k¢7eÞ`#4ÈïL£=IûÅ wW‰†:•I±ÐN­1‘êRÐZñ âj°oäPVTB¨ ±‚é•NZ/ì±Ö¬üÀ¹9) Žë*MQõþ«QòñðÝHŽ•ͤ¸&^a~¾ZmÁ»s; ÙNƒ¥ƒÐ*¶³·‹ËïkKÿag††óP²ôêG6a«z¯æaõå™w€#Û\>c·ÇàAÓ°w6€s˜—‡ñ¦ß¢]¶A o»†Ë.„oœ©uq®r³X²¥$•Ÿ¿7ÁCgÐ0u^5Bk/&Ÿí¢F-]½ßs}EËL vM—ätS² „ŸkqÉPÝ1â¿ß¢ëY‹ÿJRP' 4QòD%¹ûW³s8×)¿U¦òÅ—nâÞÞœÜ`ôÄ3ʺ%}=ƯÃ~ü(¥w©ðÝìd¬Ð³-'ËÜá`tŒŠ2°9HõhÎsþ'5Ò.ë ì„>Ï÷[rär%$üÈE«ŠH:×[WÏ¢ÄFGÚ•ý}Î «<œ)¤é®†¬ØOÕå Úi'+.$ÒÔ³Û/;&ß:LyС&È(±ãzVÒgNñˆ kg'™Ä&KÊ<*¿µŽö¤­éĽ:X2]žõu¥áèæbõNÿ>Ó¥Á¤Œ!-' ' ýçZÏ"fG¸ŠP|›Í“5ü›™Ùò€F[»+4ŒUgôÂŒLd¼ß÷ÒÄÔ¯úqížúÏB§ýxc0ª)30£`HZð •ÀpŸBf%Ÿh¹‡|ÏGp.Â4<”m)z¹á¢3à âãÐîÓ¯d&_èú5IŠT19*b$ ¹Ä/!"pú€ëêÍ6U©Ïâ®FscUËam‰é_T”ùnUªpdóÕ(0,ïí%Iý¶gË¥ÏHL.•°ú!¼;4ÀœDëÓ®‡²ˆ/Ò“yÆ(›e°[2üIya¶-pÜÚÐV>’„*ÙÎÌ)Îq§®Xƒ"2ZœîÅ@Z««Íþ/ÔŒèŒüH´J . Û, Z-Øáƒi ¬SØÚvÊlcÏ‚ÙA‡ù%]£bÓ6‡1Xyü®¥ûèqØnÅ«—¤ð…P­‡ŠJËSÚeIpì5ÛO*ÀRÊ6tø)äÚá‹,ÞÌV©íÁã ü%µ)CVo•wõ‹ÚCÃßvqR§ä^­æŒÿ§€ßìuWçXŸaÀªEYe›G=†Ts«˜mœ•œ¦¶='P“Jäžñäì»^tOŸÇçÁÞÓÂJRs¦ü¸9¥b¹à¥Ü\UZ8 ?}‰õ§míuŠšt)ÿVIL‚1ƒ˜ï3æßƒª¯x¿âçˆZTã tÆéTe€‘^±ÀâÓõ‘D3ùhB½µZCK¶G`=à<ÒêT¾«dˆ«ˆã¯á­Ñ Fa×8 tŸ½áZì­2ú7¶ Eëb[Ÿ†k¸ñÐcà‘tÖ ·Æ±%1Ë0Ç ï3ÓÆ?éÃì0ÕIÇ’e7Y„é§ ¾ÈEs º†±5R)ÿS¢Ï#ÌÒ$0ÑÜžç“¿ï¬ ‡ŒI¼Öáýö¡åÞ6±GyÖ»OœdT’‰5+Âxc«B£e:ÐcµÿœÄB{õ«»ˆÌ#é¾= F¦E’²2ÝEnÁñLåSÙZù$£hâ©/…ÑÅ%­Z‘®—#»Î}£@ñçE"ˆ‡YWØuñGfõ‚õÂ˰ñÒÌ%Ub¬Èeœâ,*q_MO¬ûôŽ´æˆYÖt(àh\ñJìi¥ÍÓ…˜U˜2ßýÂ{g5ºò’sF¦·ÇþaÝ]Œ“%À׫•m2\BâÏGÞBÏô?‰Né»yÅÑ#„¾ ’ç…³>y³z®‡§€I•=»xMÓoKlJÞüRTÐÐqPŒªËý•,¾qm n†ýIµ $¦‹I?2`óŽ+*ÞRáþ£dàCÞ<•>.Ø2“¯ûˆLŠÔÙ»xÚys±‚镸q>bûëÎõ$þw°×T™2ó=¤µŒ²à÷JÆ#/¨ïr=03½œ]Oi5o¶ÛYúàG;íßÔÆ<ÏÝ~MDûÊá•úŸvqïP'ž$î VPcnŠ@¶§º#2¼ÿI²R>Cø!îv0·}±´7O•ê®ÃgÈ .®2¾×fEvï æ 0• ¥p]uf:ù`†½@F²`¸Gª™gc7;èVüSî.žÓšŸîdÑëÃ[܈ÎGyXZ ñáÕe˜¦™Ã®à ú¯)~Ä}T¡ŽˆÀqwfow™Ò7àý:§0·»L!Ú‚ÏdiHe¢µŒ_ù}çœFK|ó8¥9JiFšþ#Î% ©|ô~åì@#g¸(Ø æS»«M^‰¥ö$^Æ#«IcFžpÞ{«ì#ÕS®l£1·zÉ®H»õÚ*Ù“—i›?]Q@ÈÔœ«ãK>ʸ5–Š„R£rƶˆÓ>û(´ctxúdî2¦˜þç vµ¾õý,\Å”°|*'9™d¥!‹iuõ¡ÐZòBš…ÕvOpÓr Ï1ξ+«I½h­k² 1#É ²J «|fº®>÷!Õy1Šâ^ÀR”£#Ó«?°øÈ4YWƒÄ;}UÆõø[A¸:¨w;íTà…ÜÄ&öPh“†°¡hA+oÿ«@[ü+þU2*ØÔ¯÷3•i·9ê^)olÍ òÒ¹Œl°²í7PØIŒöŸ’ÿ ­õBŒTºÍL0áæÌÀ_ažë ÆVÅþF¾ex‚›æwhõjfPØÖ·×·ÒΈccBþø8º /¨XìKWm†Ô“‘Ç“Jû8Ø*šF^C€T‘Ütœ@oõ u¤#­çÎ Q;[j ¬;”­“¿B¾T|b3|âésÎ6¬.wãý!EÈôèl”‰<À¡†@dpnÔïÓsòyˆY¨ié{MA e" d›-NÞ)†Ž}¬°²ÌŽÚ‚ö?ž”„›­Ì¥rÃ2žFyOÛ¬±6ÉÕ™øÍý6¯@I_½r ò”Nú—l2Kö~Æ%Ž(©÷$%tê¦åm@5a9¦¡Œcö5€ƒÀ‘åÿqp<[…!m‘ÁËëü‚ðÁÀ;ºçËýŒ°G`ÛF[upÒS·ž‰G0®©€I‚á'qQm®¨ð»?€|¿³˜ÝB  Â÷4¼¬Hè*PI,éÐyPˆóŸ“üÊÚFüþ8é”ÁÌÑžO»`¸‰$ ãèhk²CÈ®Ñ×ÍÞÆn+JhBß,!Êû$ÓÉéþÑì ´¶ÊD0zÊ¡ÄÞz+ZÛ®â½Ëˆ:ârp´·†é¶™oãùû…8JfÉ¢ ÉHK޼ˆÓûm<Ç¢³ƒ (âf¨4SûÔœÁEj(¼$·ôáõ¿.…!ù®BZ²·Î ¥¿É³™ž<<£Û ÓTÈÞÚ#û}ÔÜL?Vf)¦H±ô©žö9åׇ)ýŽ®cr1.€¨—€]ЬV‚Ž*U.Ð~šDd¥d·^Æà{ú}¡ *=zýCô1ÐÌò25*Æ<ýªFK0Üö³èªXd0…2FÂõË#׃‹ç1‚÷7³{O|ó* Gùjo TÃ&Ddü¸hMPÕ–rjÝ@ XØdOëTk‰Æ7à CÄ­t2Ô|Ûüð+FG0Wù™¤è l;cÜl¨|^”^f0•@AV!;cû¾j÷íŽ["bO+òƒÎŠ'ƒ³æÿ.b­'”!!ˤ'–¿?ÅtXO¨ªÓt]ŸÛ·iN·‘J³.Kœuy°©ë¶™Ï·Kº©À;عêJÑ{Ðzm{^B¬´dÛ€ÄÔýn -Ž:!ºëÖVÒhDZÇ.~†‰«}:0)Û䂨µ:>ò1ç›@ˆ›Ô < ©¨¯(¸ƒµâ p ºÖãƒÏžÆšŒ!ä KÒ*RŠü¢¾µ`˜‡+Aq×#óÉŒ†¬úY4ø™gÜC«·sÀ¤å •oÂÜy<…Hýã'ªXE{ m'ý/ó=@ÞƒøþGàñ­x¡È¹©¾S‡Z¼/F¢V4!îÖõ²<4Fûó®œOc©RÊƒÜ E‘T¥¯Úµ\4v–Q)|ckõƒ0Œ”ºQæ8 pð5÷’}DTÖpüÅä°„‚?Pû‰¾è‘›²gZìŸXm0Fõ tÕf÷¹Çx$w{²öcg(/ùsëÅ~ÅY¶åQfiØ|´ÀgÐ#2¾üCMMù iîtÈñojîµÄí|£¶A¤‡…{Lô\‡°x ¢fL$„lÿ‰Ý¢ ;Óhˆã˜È(ÍåQì:@ïâ/ùà@вu½ö|ØôÁt/”ý~2}Ém™h²²€/dg¡ÔØj%þq«µO’J5ôy<·¸µ¢N²TFyq6üìÜã¯Ê{‹{P$…kÀݾµVj¥K Ù¶P‡áé.bþ“ ‡qc†‘,Ò¢îZRÓÃl=Ø-^Ӿܸw bvÓ{:Ê¢?¡½‚(mšÅè]†¤ åª:nWÉ«Ê^äÇ•+&cý eJ,Ï\ÐàÍLŒ”\Ü¿'~ôsi¶å_.»ºÿæ<µo+µT{ÑP“Æ£¬\(ßrÙcñ̶ÇÓMrKõq0ÎòÞ– \³9œ¸)®|If (D¡½67s°¢‡¿· “ÆDN*<å:²Ù™±àv§Š] k0¥ÚÒçÿì–ÊôFM‹fozŠ/ªÀc Àæ +Ì£Kª£¯×I[1&G|ΰ–AurYƒÍgBØZ¥1íäWQ¨á5cúâ>@ló—%lZ ç*ZeœLŸßdÂP[¹iEÖ¯ Iˆÿ6åì3‰,Ö+1U·ï--²(…ÁT&äúIë–0a‘ ÍNOŠÈ2¥Ù”Ë‹½TñPÙŽßÖÖå³)»ÅZhÄx‘$ljâVV¹ç ž©øTñäp2ƒymÜÄì&àŽo`ÿö¢ß!lþ>êC¡ ¶¼ KNễƒ.Ÿ^%pTë§JkŽÌ_/(Ïœ¯Ò.‚+8Bd|–>Ý_Wä¬ÁÖOÿ¸!.~w3DKÁìÒÏö|s[‘Ã^xñ­¶Ìœoð¿Jï®Ö‚ˆNbEÅd·záM ¶,ñê´ñÄ`_þ‡*6$&«Vß÷kZìßð¨\^Ø_üdr'/ÍÓs~à6Ë11Ðaúkâ ¤Ëdð–§rhä"·ú¡CªŸfc.…¹Ýœve†gKŽøW½ÍÓßL¢£»%ø¢)3fEìP.' ¿F;||À Þ„T‰Å N ˆ 7`–g$ï€4á"}ɼͱx¶M\³Svªx–¿ã·á×xê"^zT}=MN'î êm ¿Ð÷ýO!x[Kï„F…œ:>¦¡™~3‘Q/ÿ£&·WÍ6ƒžûÊ[léÌ<¦‹Ê-øß‘1šwEgçĆÅåËy'~¹`Qø=© ñx[é#úÝ)\ÿ­vå ;·WdÓŸ•@ÿßÉêX£5ßÈÓ¼²õMµ^C£Ó¾3¨Â†&åÙ¨˜ÈJc#P7,74ˆRܪÿÁˆà®y®t‘rhÄKëÈ÷sBøÍKIÞ…ÏiÆt¾.Ùýït±ÄNÍý‡ %!éù\tG”÷:üÉ_ð™ämAa}ÞatJe™nÃä/ûŸið\è‹OE“£ÝgíŒÓTƒ‰ó_Æä¾|9v¬×¶?=\#ë/B!€“_"¥öÙökaP'lµÇ¥†4[°êüTGì¼ðw—"ö¯ÖJ+x«¥¿] æœt.ˆsJžW©Cá´¡êÀâúÔ±À“[Í[‚ß§xœæè-œ—7÷åRÍ¢_òJWá]ÆàŠ6!•Ër®$ ˜UÜë/}É‚™:|2zi- &‹Á¶z §ómö&wÍÓÜûžE‡ßsØ>i £¹+k¹×WX–—:"áHŸá€­¡Ñ‰+ο26òÇá‹‘&¶œ·M°ök#1ë+>e£"ι5&Ð?‰Š µÎ;Ý9•“" /¸/ñ¶NÅoXÿûÑ“ñߟ_•¸a&^€¸˜:eæƒA’à…:ž4â‰#½ì:JºK6úWÓ8Bùd, H¹@¨ÏbIÔÒ¹Ù7 &Ѓ¹uèxÝ\iK£Lx§bK‚aÅümWÙ{â÷ÃήÑNáƒ<çºi9&xææ¦#o"Œ€ÅŽ4ß> È§€ìyà+qÆeÇ¥³¬ÿ+Īë±}ÈâàÚ{â (²!úÚJ¯¹9'ûÛ¾6ÛKl^L:‰µÓ³¥y­•Íå©—G8 aDù$‡™PÕýÓõH³V(N¨J@r\2Ì‹¬?_Pž¶¡¿uŒÑ×&^÷¬±2ûMV[4)•iÎr² €&mTroúçK„ïÎ(ü'RÈÈÅ“ò>¢ð#³vy‘D=TåŽààÇÕ÷ÈWmÒÍpØ¡ì´m{!£ »3¬6ngEÖ~»þ|ç5;n4Ç{'~ø` ܹÆ1œrTÖTôvŽñÞw÷Ibe¶[—Ui`¨99Ö©] -šbqI'à=¬"zõ=†ÙK,þ_J1¨½ž~Ø]ð§Ùå,»ö÷×þ˜M¥™A;ŠqæÑÑ<ØhígÔ4G&€ ñ‡=ê²mÜR­=‚s‰;µ¼`«÷"Ǫ[ˆœœ¬:8ºâ+8y}Ÿ\wÞÆöɵ҂÷ “ù×Ð ¯§Á Â':îhSšU*Dbµ±ä¦èîi°Eâ5"UŸâmŠúˆ³¡ &#)+õ,JÓ„ÈÓ»ìE5‡ c]ê¹yØè VrûæINà- Í™à8†ç L±³âÀP¨aåÈ=´hœ;€?“•…®àć&$ô8¢Ï¾x©~]ÆšOΚ³ :¥orµ iŒu'þë ö@$ÄMDßškÅßÌÁ²¼‡šêÓ©óþôÑü¥ …Sóèó]~ùÓž×­\˜Z4ÉöÏÜ\ŒBÎÍ1/.óÿT>.]¨46ÃõRÊsEÇL É]ýnµ¾9RÕ WpÕOqd²¼àé•i‹Ì9U)¬½Uĉà h•D7_e†e@8ìV/qÚTÈóÄÊ‚ì-Íu$Í-jú>å¬Èe …•„jXãÆÊ$ ¨q9Yi 0†üÕxâ$PàŽ‰=®d¶§å1G[vêMi8åèKkƆ»¼V–­I„ê«UŸñ% WO$:þ¯6Ô—Q~ôÀ_ƒmª¿&eúœr†])ÏK†èÄb¦ R¾¤±–+Ò²Jv«H¥ó÷aªu¾-’ðÛÚÝ<ÚE r௷ž›é©’8p3zPØ$ TânÒñAÌ­Àv´ð5ð5PäÕÜÚ‹ \·^'¯=n)Ö·µÀ®9ªÑèM5â踟G‚$|2ØœÞsŽ•4ÜÚ›cᆭVÍRÍá‰+ÿ%×ÔÖÂp«6Z×L>€™QKwE4F?%×Ë( SN|V¦qB³]:è¡õ<­ƒ]á7Œ¹´˜p™/ݯïa5îºbÔ¸ÀHi$É«ZHÁYAd«\Ív1A»©kÏpÂÊKþ…ª€½í}íTo¸*J àÑ,^ Ýç¦ä‰ŒøM$…˜×Z[hÛ‹³. Àì·»À•^‰Ñ¶ñí”ĉ@ðP!qɔϠ‘\"ÛÝ¥Új½º1óö¿Ño "*7lÏZí³× ¸ç`&_Ø: l çKôÏòÔÓ|Ô÷˜ñèM4ê96»7¬Ö’aw£=`)Tv«hU¤qÓdOvEKôw’ÚòÔ=™é[®ª…@{8éûRÚá¾Ä˜ãØCa¼žz6¶âW¤Ò÷Dö–øè]ÕMYgâ£3n%ˆ¥·zîª9+¬"Á¥w£n É#î‘ ­¸W#¿Ì·s]*f5‡0F¾Nmrþ)®ÔËæãÌ*kØj–0ê¯5.ØØú,åà¦/´ljÅ Q®ß+‘„(bþ â8«Z¶¢6’@ÈK%ã‘nåã¬m\};Ô<ÌœÍ:sµ^#$‚â²%”Í–ú¶#þš3ÂÚž§[Ì Í;Ê~¯ãÝ?Ž¢§â[XheË¢ñ<º TwÁ…í™{}D9XKbíptéÇ«ÀFïø ùŽõQɤ¨Äký&uGÐ7Ot+n÷ò¦ŠFêõhx%iŠå2ú &±VpV¬²À$=Âw€ùT^…R7õÿÚz¤#aý·vB¿ºl¯i–/ž©Üu8TVÂívuèãôè ×/S|?¯úP“ñmOû ±,ÕøO½5yÀ¢ÀsHA€ƒLaZ?-²-ñVRïÊ¥µÄ·µ÷R}òÀ—xˆ ÌaóÉðê»è3$H¡Tz88ŠÁé6¨Ø-o÷vGáÁHe!ÑR'¡ „z°•ãH’µJßËì:ðõÕÿFvg!S¨ž}•â·ªÈøX<ÞùýþD&ù!ñ;ìÃØq™M¹ÀG”‰ ‡õ¤@¦X¥%_õe–]°Br²Œ7x½–™®¬Êã*Œ"ôáëÊãÃ’‡æµx-g.8¿ò¡\ëÚàyHÒµ%dl̨0Bïõ›–t s¸ M&®ÒÃU®Ó×Íx6q—IgtŒv6® Àt¡ã&x‰åú[ç¬òw¢ö†~# Kp|Kqò™ç€´#í6¹¨ß-ô;"Ó’ ÔËÉ‘ŒÒrr(\¯z2~$rQ)‡P¬¶øyB<£1"Í?¼ï‚3¶Ÿ!»Î‰ÎÀâ&€•ÒÇ‚ib$éX(†³D¯p¥‹!±lÝþ½4e¤›HÁO*ñIJŒ¿«Z¨âxh ?U•Æßj¢±A â1··rÔ*]SþR;4ÇX#n0KJ¢þý{xvIÒèÞ£7X¾•¼X§`aU½ªðùÊriTª*%*šƒ˜Ý¥zzÐ"·g„¦Òo!•´U³Úød |îq®‹õCsÁDJHñr-Píê×:ä‘kû¼Œéåy ½õ ‘HÔû|}ÇG¹’tŸ×_çÃ1o˪ªˆ úPdó'ü¸w\‚m±^qk8(íæ9ª’YG!Ȭà½.—„ ÅîÏ9Ð>ý($(üàI y/Næ’d7E8ë"Ö»óýEB™ƒ$»¼bÜï/áÔΫey…÷øu’ (UªeZð"+—máñ²ZùŽðOÙ¤¥ˆô¼Üb±—ãu¶ÙkêŸ{y"{sã?Ož \‡‰t•KP°rzÑ'Ò DrˆöªéìœÙeŒx0q7v •k%¦Þ;×L!^ÎêD%ƒLó² (ˆú·a>õ2½‹KŒœÆ¥¾õ ®×½tüÎ@ð5‚àpLt¡\§ÁC:ÜÑÇ@ªÎœ2sÄRo.–>/k¬¦°e þf5Óv­-,{“CÚÞ ÝØVïÊŽ0F©ý·R2˜ìYÝ-õºª†y0b7rž¡„ºÞApCrHeÂ,Ó|×ï‚bÏ™¥…Zƒý11bŠÂY0G"¿pgW®íÉ?IM.aÆé–¯¬~ªH—ºŸ-sí3?º½ÑQ2ãÔÏzO×Åe4Ó#Bÿ‡ßËËõ¢YÐ42Fõ•lκ‡Uû@´.í’®n)Õ$$ö®káÌùŽ+µ(wšÿ@àò½<úQXûHGpzCQ )ÇVÚX*ACî,⮸úsq5 ´ëwg™È­®Ç}|j½† TØæV|ËŒ}§Õ÷a³sã,P^|‰Ý¸­0 ý¶l•c%]·ñ/oš®˜e Ê™âáq‹ OÉ’Ðk¯WŠcÓíÛ#µÉx"íM®"Þåt’ºBY½±5¼®6ÝìÃOZE‹Hžn”a2æž±Õ€Øá¹÷÷ózkm¤­•_èQ©z ¬$²:(+¾¶c¿ô'KW*Š™… ÈiI¬âç;AîÌÁ3Ù‹Ö£¯ßÑ›cPäTŽz¤…4cö©¤Ã¯ŽM5©LUTÞ<±b?Ö(öšžÂÏþE£]ÎL[Uótƒ9Ÿò]G’D•Lγê®Kx˨ó¥Ý1í¯ë(y\NLé²³D¯ ýÉ!qy|– 6"ÜN–(Jnx­r¯â(TÆ6˜.Øq—?0í|ÜAòbˆu›M)ø·ëÆ[5­„ú÷ Ï›¿âIß¶ÿˆ¢õ†à0sò³ô¦½èM³,:°±CÅבˆzupÒ˜êQFù]Ɉ\é7üTˆ$LÉõ ;®ÄìÂ1qwˆ .~:ŒŽ Nsyÿf­`ß[Ô•vœÕ\QGšÄ`ú… C’3€‹g6«ó±K”çá1>rµá©®å›Fu¢¬¬øñ6Þ\³ÞH Ì稢vQR}·èßÎgЙd}3"W‚ †Ut’ŽªÙG‚?»Hfå¢Ù…ý Ô(Ô#ˆÃDPöçïþälu±„Œ/h[e<b˜ìóÕ‹÷§hSÍ?"µ„ ÑÐMËððS€A÷™3íº¦-=¸ªhÏ€=7?¡-/m~ ‡UjßãCUÉ<×^_j8Ÿû°k·+'x/Zôa?öߟ£j4Ùªc)P•åLã÷XâÈ„Pi$Wl›ˆ'œLRh‚ Ú¦¡.pÕ›åêan‚Í?I|ró"ôzøüØ©Ú à¹n摸õ,’¬òÛå){VM¹†¢²?oÅÈK {hœz½ÇwÓw+›WÙ\Õ_HëåÛhG5*|qÖüÑì°âƒ-fo<Ê>è )æSVxHaÃÞ,q/Õʱ¯-²îdÚ”Oø¬G öB}ùeà_Bø°“¡6®›Di|*Âï òtåÚ&þU üt"¶¬!M:Ñ*Ú÷å#6ü6ÀrhœÍÔÓà®…²taRp ³h£Ýì|ãISɘX5ˆ—Ë-Á²¢ÇÉoõbpxýf*±íq9/òUgœ7uàúh%–u¾ýÞØéä¶‚-´´Þbˆ³m%BàõåP%÷¿ý ÐùiøÂÆ ¯Ð‹êœÃ¸‹hP ìÝ‚mü§'?ÀŠÆ½ å5Yl´ªU¶}ðh,•ä‰äˆ|Ýôë膞MDR Uôwd‡ÉËÁ÷Àհ''´ ÝÆŸñ6ëD¨Þ‡‘û\•b¢ü€ýúkì9ì†Oè±GÅj /²óY¾¤âóòÒÙ3@p1»)5ž:3z:¬$­+ ’WŦÕzSݽòÓœ¡%åUÛ4âGˆ"ñ(q¬+¯…Æ=„„ˆ$†mŸc¥‡T² ­Í(þt%vå(âÞÞµ°ß? ;ÓȜ֓ßYôz0qBœµ+èýõßKió‰ ­Ôõì™îRäõH>4Î E>Q~E`kX=yË»«æÿ–ö臡fbŸlöÞb7ˆt]B¤ËçUNéqZ)^ûa£9+º纣Ñ)ýåsØßàŒM”9‘s€|AÓWrnE² Wì<ƒÌÖŒ:êEÒƒ« =‡ ÂçOM%¿…ßc”Ñæ#±àô–AOWÁ©€ÁÜD»Ò €ûÆÂ!=ãd}òalÜ" ÷]HŠŽòï]À [;©¸4´3ÌvJi³u†tãK%…RÌBêÙ§ ´P.*-JRޱ–P6èB€¶½°[¨©ßkµéØV¢N+§p«8^^íõäK×@ïFp4ìˆÔUJ•É2‡RÛ¶ˆÉf˜Äx¹»i ?]?‡–£÷‘Åmtöö6óÐÐzÜQÎÒÃn¶ÚzÞÇ€ø YV«kÒ©æk`ŒÒ`ÀÇïO+ëqÂéºf¼-ÉÍÄ'íòÒüDª«özmd6}­|ÖÎs¸LuÊHºo±)H¼9.Ød`=üÝi9™LÃk?æp«®`ìÏÊÒ…õT·É®¶!ñ… ý¢¥Ѥ™I3k'ºx,,usG×mÖß%"w=™}ªS¬´‹@ãpPy…‹<~BÑvæ0vt2©ÀK?¢ˆwŒÜ[ NDÞ¶8§ôÎO¬ð|xE6lÿ¹ÝŠí‚ú Áò!Y¥ŠoFé)ƒú‹GΠ÷ªütÚóÛZno"¾ÿ›û–8"*v&H$¸G·R…­ÑE§ûF2âæ<ȰP¨™¢ ÓÒˆŠ‰ƒ2Õw!ˆOŒ¬Ø¸GŽ«OÁÁ—¼­l• K‚‡ëR™öšùò6vÆ ×"ÞçÀ¬gÙV+BÂÍÝwt“mEšÁ*?Ž·„ ïÆ!¸±È‰Û©“ø¥…îºÖ»ÿA‰ÒϦ]¸‚Jœäé”uqØOÑÜ<&ÜÃXMØ§Ç w׊×Åð„£åuÓÄÓݬH^E”`ëtÅRërã-ÜÇ‘'yؘŒ©>Æ^Ö¶GÀ‰]߸sѸª ÿGŒË6¤¿Ð‘ < “ôÄÕÿ í1¸[ØkžGÒR©{/ÁQ4ú_ßÊwSö#Ñ…¨eû©Ý AægT]¢þݲëK¯U¸\k¬»Ü™Ð³Ø}t¨¯#ÿ¾ì`ÜP§¶iïTçÛSøMT«6Hë=Œ°é:Î:SWüä°Žæc"èÞæNp‡¤À>4#sÕ‰yzž8“Tù¨3íÛ;yH¥-éõ@ˆŽÁ ,Ášî§Ä,µ´­˜³àæ\Xgw//²"ZýV©¯‹]8§ó$þØã~=wWì^ŸÅŒCs£Éí󞩆q¢þ V*Þ½vš¥ŠP‘Íÿ33ƒ_ x‹Þ:øja뫆:!°þ; ó£×£.§¥a Ïw´W+ Ö=÷šo;݃^æ|ˆÚà*F-“ TØ>9¦+ìŸsE‰FB%€OpM‚LUjñ’OHeÊm tȫր2çˆdqœ¾dMá &˜Ø¸¶ÁP@VWhM½U…|ý¬2!ØAÖ†r¢§¹)dÒë¸è=ú‹'±¦¸–e>ìà©®³¬²†'ð{âY¨ƒÒK!éJçÏ#ë[#í¿Y¦ýšˆþDûNˆÁºjHàŽÊr½®®Ò>Ëû´^½ˆºKÊŽÒÀ¶:fÌÿ Uk;• ô·P¾Ðqæ¿n˜¨Ý‚`)X…òs~Þ¬¼‡tŒéë™$æÉ„HþFPQÔë ªt­²à±Ó= *ÀM¿9‡,dêK?"x÷<°XÇÖ·ñÁG\$iØ?òÛ*G¼©´–íX–ðVç¯d†»Ã¶ûVxw“‡×ö·IˆŸÃˆsºxªyÑ7È¢gï*eÒê{%ß,¼¨É11V[ìã‚>Ö=\ýaT9‚é~îŽL…Ã^˜a)¸¸h¯Ò:ü ¡î0³Z;i,iÄR Béd[…Õ›979TßxzgfÊv(«æçž)y ¯À Õ¼Rø†jñ¹úÙâvî«V×6NIbÝÒÓM)ä ô­rSÉ[‹ rñ´,ÝCb×JðZ4YÄM'‹þÌ.¯~f🻕‡#6¶+èo„1öÜ«FŽ»áŒ»•ÅÐWwdF 3Éh2ÈŒ;6c…ŵá‹V¹ÌNG_t¡_Ïhçôf“ c3CW´tyìÐä3!šGšâSb”ßÝÜ,£¾ç?¾GìèŠhHR1 ˜#|Í8~ŒÖ(Ûsÿ#n”Ó*=®$ÃÛA§Ž&u(qˆ‹Ý•Mû¨8j›yM_ÑU†˼ä½|“ê‚dE° -Aí:™!½*\)œ¹IømÁ…VÊ|ø7¬ ÃÁ Ò+ŽYZá=>ŠäœÃIÎÂ6½¢eª¨!Ð-& •X5fƒ¦¸)ˆ79 ¤åñªKêK.ŠW¸PœÈã~úŸ¢sòUŸ:Û"§¨3›wû˜ %÷<3§’&v–áÎßÓ:’¤G–@=¬ç¸Zx‚ð*ýß‘±Xh²Ú± HcêÈÀÖm¸¢‰ät7õ à;Vib9 ÔÚQ÷^í‰ÿS–õ˳ ˜•­í%‚2Õ- !޲pj:¸@÷ûü—vbE¦Âû¦bcVcÖ]¢€Rrå¯ùx4Ìmuó{´Ûnx_È=›f”4¶2”™Ð}¯ÃßnþQ]âÒÈ‘R0ÛHªîò‚µTÝ3¨*cù3_œv/6¸ü§š0`= u ä=ÐËÏë¯Ê]^ᦅΡyÇËJZß-ˆË#Ÿãºj„¹Œë\ÂÆH­G­ )HVòا³Ú³ K9ÔËKÂë‰åä¿¢1w„ѽP¤kΚÕW=®ìd™›¼DéÒð¾ðÕråœÌë.@£àú‘÷#Ág‡©uÖs€ª4®8Ô•D”Æ)‹Ë BÝ ý¯¸6Åè‘ N^YœT˜Ç÷rëä­J:$Y^ɸÁU9Ùñ㹯rÎÿßp©áh#UÀ›³v©G—8 gr™"ôt~XôWWyi´‚-dCXµ –ŽÛök!½ã ál)Y^b {Ïe@õQö-d¼mð¾Yñtïáõê-¨Œúbã«§[ð±1Æ« ùW×Qý”^åmI¤ˆ[ø~/ .l`Fj-³!ÅÇ ¤$7)ÕYË‚ÎcEÞDÉ24¥85ŽsM…Õæf#ÊrŽÁ{’6bB$‰zß1IÂúðùòä)F5åæüH`TŒQùz À¯+O¾é÷îëû†ÖEJ'ÎÌ‹IЀÀ¯|³Ÿ!•V£/¶Í!cÅ%¹•=ŸP¨ïÎHæ\1°eVr4`“ÝþC=ö5½%¥)Ãk9>Zÿ;O’|¸ ÍkMö²‰ã$Á‘^µ‹‰PhäAqQÀ}úœ,›‰í,ÿ>B>É >‘Š­#õ jrο•ÑÉ@ž-9èCýAð´£:ÑZëH' ‡jÍÄÍH”@:‰hkê?»cÜW3ó‚±uÀ}ût°Ó_¥y¡Ç¢1!\˜—ëv!á½ÇòÞªh†¸ô×Kb—×üFäÿ€k4.öÍ-6ʉéü½Ë&"Už7XZç~•÷ÃŒ·<ôæ©%:§ˆÎ¾+ËzÐiC áÚ›%ßuvï KìÀA#3pZâ)Ú±¸×?ÈÛTï!U`¢™ö1zùÍI0K/žÄÏzdwÑ[mö÷n–þÑ}Ò”ü¬˜»ˆÕA2#û“NGO{jîœ,†{@݇4d¬ÆŒe—g½ÎKöEú µÌ›/µJO89Ï uZ¬'ÞÌnvþUXÇÞÊ{³ða+ó`X@û,á"a”(‘`–p ï%¹¬‚"ì¨Å|#ƒ,ësrŸó{ÞÅ[QA”ZkÍ[¢C‹!´Àetäý,¶`@ŽÛ_ %Â(Ø\<æ1’‘´=з¨{zZèRI^¨·³.€ †r•±«{J$,êC2žŠ ¡V9Óqú›Ðí¤%Ì:']SÔs¬ª3d> X&ÃäHCTб/çÃÏ·Ü—‰§½Ð2o}KòàžÇCñX•:oõ•g’ÑšºÀÎøÔ€%7›†²à›ƒ# }Òr´l2¼[-ÛÛ![ºn‘ÈùÙo1i | ,Þî±J|]¢V\Ø"xqžwÿ¤°me)©]Hh‹·;íêMaèjguDÇtZšäZ»ÖÞMfª”7TB·_p›C¶1¦ µ5›_îÔWBÞP¸t)*–P]3ÅçrÚÇ‚«›6Õ´¨¢åøP ÕrÓ3¬§˜D žü¦H”vT×ZåeèWð>ö@Ê« ýJQ9§‰(xºŒDìØý±¬Â2MÄÒùâo±æ±ÜáæÈBqsLÃ-ùþÉ÷U"ºF‚ËDÕzÁÒ´ÁÕ‘Dkïñ”ÕqØ H /™iwpêžÛb¹ÆV´è"½#|Æ–§e)_ûìêæ—³eÚê{0^høœÓc fðëuPQ–ÿ[ëùîâ5,4îDe¤Ø)\÷h²ë4赟u'wÙL€PñK;#¢4‹o¾^asMØ»Œt~ò¶åÚ!ÚåZÐÉ'Xl8äéfï7‘c˜ûp€VVÈr¦lÂØzñ-wkbñï޾̖Â6L*êÚ¥\_^È^1­ÌŽˆxÜë‡'„ø”›,é¸}`Ðõªå`j’˜0I÷á¹…&ª{u¢¤)¦M¼¥“ ÛGáêýÿ¡ç¦4ܘáO`<·™—sºwZä}U@©àNom^¿šŒÛq ¥™ìƒ*= ì·ƒk­â¦¹(üP»Lømz.jýùI ¦J%×Ü4«å‚"6ú7àr‹2ЫӉë# ".-i5ÙÿÃ\€d²ýy dÏô €s<’œ•$$)¾e‘ÇÊ [+ÕjQø¥¹2tâX@d’¡‹JbàÉÈÙäçÌ]Î"îu¡ï—…°œ6íÓ½Å)2fÜ/Ußõéy¹è‚Œº‚˜ªÆ¼¤B›oèÑØv–Æ1._xE{Y±–Z†X²kÙ4BK—øàô$ñù<­âÑxÚ§+1œrËÞô¬ð'ÙÍðó8ï“4H9+LÕÏbeŒ˜Þ¥À§ÑT»©Ìp7¤ïôÎŽ€)1´ùÂsß‚ Å€ìQÍU¡.áÀmŒØžÐp,ZJvÃW¯O>¯½EyßEõGPùkküÂâ$1nËP!3MèŠ÷lVµR_Éä„2^—ó I:ÍR¯N3ÑÞñáÁd2³ÈVÌõ5[Ôü2õSÑà­ú¼õûx6Ðóý.â!„¯¶‘Š—¾ïoÁ#ާ(¯ÿ–3CÜ ¸«UJãX¸ç: 9+MäiL×SW ˜öfº´v;þ·N²œó79Ë{É•çå5UTõVZ Êx&¬«uÖ7ík€ ŽgxQ¸¨dW_–%¢Ì’†ùW…ZÞr!Ðâä§K©c„dí¸Ê¿zdx«¦R®y’ô<Ë•µšÅ Pþ¨—ðô¶ŸB&Ã~Š-ÚpIzÙ9NÆ™–Vmßœb%5Ù…üµãÔéþ$›Óú5ð ¸Ð@^ʠΛM˜öÔ2<½·o`æN }Á°øîÿùÖ9ʪLÏÝFÂeÔÛÀ‹WÛ¿ÎôÇ»ñ|÷oü”ÈôÅ!Óìã]vCPuJTÇ<,±£oúOhجIÎmósÖ·žÀ4ˆª¨ßW_6ß ¼A!ô}GP¥Pä^ÍEÕÜ/Šˆˆa_Î Œ£eÚË/äÀÛeê2¹ ¢3Pº Ë‘þÜ Ô^Ïf5 ŸŽkˆùP¤Èjë¢~—r)¶>…tµNW:¤e;\çJÏW eG~m÷+DÊGï;™©>±tœµ Ž§ÙøˆíÕ4rÇÆ¡ïoÌ¿è›,a*µLùL.˜ýh³¸*<È+¶éa’ ÒÆDIŒ? + ®¿9=ßÑìf9¥:X-1Ô‡ãH0eÌwŠŠR÷’ÂùºÁ ÍpK"x€Rå€[ºü¨#Èø{}ºÁ\ÔWTŽ<õd ÁÞxD‚R‘Žì–<³‘·xÕÒt€+ÌYðj]î¥7p?cþêd9Ú!ÄÄqy€"b‡¯¥|eÿK[§FT3øò X½†N›ÝB{–Å*eãAI?˜FŒ´`MÜrÐüç„7—“©Q¢®¾9OîÍ£ÇX§”D+Ðñ»oÁǵMZå)ƒ¡¾À>\; <z´’=; ÕtšPâ^m“ù{ÏÅ é 'Py=sÖKAEJ.™ËsÑ]†õ‹²XdÐB5ÿldŽÌô€ s)OÖ'?aàÀFûÌEÏâœéöÛžúò›þ š|H>F|¬|Ùñh%îì=0Ø‹9°S‚ž}‘Õìc&꟥un\åcÞúZ0Ârq$¦-¯ 1­^ð’b 5STV—³á69Ý^ÑÖèVí|¦°'ƒ_óÔ€``&¦.9¦k磹7EÈ ÿY+àŒÅhéùÕĸ`À$bÌW¦’ ÊgGëñzÌ)dî\e€).þ‘µ]|ÿápéôžÒ»F{<8ïgËÀ@ì««¾Ó€æiæÉÐ Þ˜ku@mæl=eÝB¸'†Ñ‡CàÉ{þñìdÜx&õøI7K³*o¼€Örv• Œ†/¹#Ôæò”×ÑÓ1Éa1öàVQü-‹Î‚ô)ÔØRÞöÓ‡¨Ö²ÐLÓ7¾îùÚÏ_`fÅÉÜ.¿±\™ÁtVn`Œw¿.BÁe¯MÓóÞQºE@!Vú?jB&ÈËv\v7F‘h";‡ùz#(4‹:;q=bâK©ºxnT ´(,¤÷iµ)(àS?­Aý¯ ÇDZ!ÍÓ™‚)1G}Ïuç­Š¤ Ãã@†O-ƒ&>äÍêR‚EÙ¤ÆaÑYÙû±p"wòÎÙÄ6"²,&’ËT6ÝKcvz¿ýdÀ©èZØ#¯Ç«†«§Ó> eK!%Ò†6_yÖ‹¦Ùç{ЙÍ:ÆoÙjÇåÍqc5i;äˆdc, è=×hzù 3Šv@&ž§ÖH¾z˜´s*ð§­‡·’QxÕgñ>UÞô¹¯CiÁç~ ‚ÆÇΠ\ºóVrŸ¨å'»«ˆ¢ç­‚Mû®ùO‹@X?½NöXÇãºSÔF!ñùM[9`iÛ%õ·$< Y!ª’›®‹Q…¾á¹³?»~ááÏO)Ânõ™û“8ôB[ÄV ^_f·#úçW•BüÇ|˜gò)t®bÝÑÿ±lS1ôµ~¥‘ìçÔoS}]tÂŽ/Új°PÕŠ‡€SËèâÔ¶I– ÂZ'Q!©—6šåñ7=;ñE†Sä&D®»Üj¿¹§‘ÒbíËFKËýÏ^?a ]É„·n§lÒÄ„E§Ù;jæhªj›Mô„k'ãåþŸ2©Agpb¹ŽÞ¦Ó¤šƒˆmNŽ‚‡±7ÿ…,Báè-‡$þ}Ÿ2Ѱ$]e3­M;6µ’èêÅjÛØØB±¬‰ä1—ÎmKÉ{-WY…G>·M uù‰Vé( ¾*ZÂÀ"ã™ ˜îÖQ£×šW0ý8›³2í ,³:òÆÈmÔçu˜z¢CÖ1«ü¨Ë‰d®ez¿ŸÆB+Ké»S ‹À)o_ΛV³ÍO½Îáq5ÑIGŽýÁrt¡Îv–ë‡öF’S®³Î#γÐ?ô¡ ÏTs&ÔE”|ã´YF¼YÃlÌÏ¢`8§ŸL% ×½î5Öï¡”Rù•QxTJÃd5ø×gõƒ4z‘ŽsÓ¡˜®E { ºÖãƒÏžò5“€‹ß4ÌL¼6ÙÈI¦!0VœÕYêºãª]œ4}a¿¶ù>+Š|ܬŽ\tà­]ÿCšð²,ªyî‰avºÕ??½$þüðࣿǼ>±NCsg,°„ë•´øA Cã—ä˜|/{§nâÆð6ef½#2þ$Ñìi^ >‘Š2ÜC -5q<*U”2UÖ/ „þvÜ>ÃÚ\wŸÓ%«T'ÞÓ{-«Ìâ~Ä:T“ðª˜å³÷ëäGδN˜àRNüX"ä00PhÙ1ðY"–cýqa2rð0Âx†²T[ÛŸùÊøl Š‘"Nc?ú f‰e?ìY–#\ h Ì¥BXÌØ5àÆµ"+ây‡ÎaÂŒOjš0$ ³ò—’ýë½|½{B /mû‚®ÄÝ4œ&¹d<ÛÚ[“.Ü œÔKHß{3/˜"ñ·U¦"UböÏG‹-µIz)+s줧±{ÄxŠ-6Å*Ýã ª€Pýšÿ”гD[^êyê.5g/d´jO¿Ná`ýËqN¤¤Ùwü† Q¹:À)+êÓ)J÷9d©8ÖHטÉÞ·Dô1hQÞuê”4êâ(.˜"G<§Oøô†ý€W =¨Q†¸x‹ý²2©3ƒ¿ð`Âw…ñeñE¶#üûÿ1Þjù£‰ã]]Å¥a¹Ö=£.…¡:Jz ÇÖmbĈÅíxˆá~$ŸðÓ³ò°ZÕ/Ûðœ4w-+ò£´fÙõ 1ZP‡YIMÏ•ž,ƒ".գϫ¯ð¦{ë†]— þö¦ƒÃöpc¹n›Ÿ}Vþ»ôZ¦’,VüÄE«LÈéó˜îÔ;Â1ñ?b¥uZ“Ή"öm9 «xdøªéÖ13lÏY&ÑHH§ê›Û`ÏjÈ›U¾ö¸£r~&ošót‹œÀ½•4”QŒÖí"©K¨úÀùöfY‚ÀiïîÀ]ðȰ‘u øò“ñóâ¨IñL"Ç×ÌE!½‹öñæ2å3‚s…‚gj> ©®7§õjêCÆAÔOõvFêò÷ƒbpãTÿm™ª0-mÁò¤p‡PâÏŒåÿ¹N:÷ ^þN²ÍAròL|œ|ðBÕýÿ«§miP+$cp—Gbù4;0>$»å’á‰4t®öѺ"ü;p^\¦¸Ñ›E>‡¢¡´<ìT6jBäÑ܆NƒªA!f2Кɳ[í¸³Vžh†u¨3ÔE–7-x€Ý‚I}ç¥ÿüC_f–Ôˆ²äÃÀjŸr›O Ç(rV÷ïI¸ 8¸•^6R^Én_„jÙŠ7È-z–íaÇ„«ªÅÂÔ0;˜)›$d/…ä.´”~[iñRúÉcÚi=ŽÉ½%`{µ °-ëÛiüá"âܧpö[ ê¯Ù?n¦-»µ;œUÉ€‰…ÖˆÛ6‹®Zò8Iz°_æ¦GG®è¹Íäòt ó`5ÄŸ{«`îÝŸñ½ì÷`á]’¥ªF‚– ÃÁŽ¢¬ëg¡W÷,7Ûßæõ¿ª×Á*åŠüu$YĤQ/ð_ø"ø`÷´Þœ>‘^ëkÑððú ƒzhéZIÍU–aìúŒçT@i`4ܤÁah7M2õ™N³²‡Í}ú™vD5O”(PK % åEÌÓœŸ£ùUcÊKAK¯é‰%P#yŸB™¼Üh±]lßÛŠ.â_b‘êgCߥZš«ƒö½¥[ü:¦cxª¡J{ôO¨üŒå½h¬þ­ ~Øsí6œA´BovrêöÀ¸¯ˆÑÄédfgõÇ‘cý\m£ÝîØ‚Â$¤3¾šºŠØi®û¢ÍÈD#…ÅuW¬êì,YñrŠî(Ë›“Œ#Z qÁ¬Y—òÂn²{yb£Æ´mióqÍþþÈS±É[MN½é–PqáPæV±%ž)r½H\¡ ³÷~òÊÿ=.~G#Äp=âq(0Ù™zNö¿¶Uœu7q\åpÜUˆ½ÿðJÐ5ÍmÚ…ëE5wèfàâëÁF¦ÑKBáy&@{Ž”í">ƒ\äÝõà+bp ÌL”¾’hfë¨ &F‰L°ÐÁ˜+3ÇÍBïÁÉZÉ 5ÂŽQù ôÄ‹x#jƒÔ]Mm¶ è#†åëÛûÎa>¯’’UëÄ4ÏV_/<Î-ÂwߘWä´°-Ú T‚DÇÜ"¯Ü½<Õð‘ÊÍù·êO½V7WéWy¯É+ËæžlTl\W/#ŽÚÝ8D§Åö}ùR"ãåG®ý^X_`®*ˆÈ_‰ä•ú¦ÑcV´V¡ì P¤§F`†/×ÔDwÔ,•pzŽÒÆêK0 ÑkÙ¦ß>‚\,LscVcej²6+£¢ÝòœbŽr1ý“uXÁ1{ƒrRoý§Üry=\~’’´ˆC8 -ÈǨ{«æš ³uõ-ªw…Al7гñ ‡•³Øµg¿†­d¡…ÑeúÝãLñâlè`¥¼ýh/Nؾ0âryŸmÆl ˆc»Ú·fcš½' S‰à{Z#?Ü“ËyÝG`Ú¿È4É6-U$rÛ.bèüQ³>Ê.¯½ß˜õÙ=^%òtXøGz…_FÔ½ÃÁ*?MPöt¬üÞƒb8‡^|Cœ.Þ¶kã€ÎamŽ›‰4·JI¿.dg°¨§# ô©Œæ‹äßÍ| íÜfîúɰzÏîoü©Á½ê ù›åKª­<a' ð\U1²òúhí4jŠW7ð;ÎlFº÷€]‹)wöœ­g²PȱÁÏÓ‘û7G}NnÄxº‚oÿÙ×ð¤Òƒ—/~hí""7µ“ –ñTýNÁTºô¯žËØß ¯bÊ›jõÿ¿Ÿ0oá°(÷¶‘R¨tGùíÍìÖµöгß)ž©•—?[E»@÷p×±ñßf’5°Aàr²8“…ýÍT_p¬ÿ´ ' pLáoôÄþ΄½æ¼xd÷€6a95¹åg ¬­ÄñcòRúLZl·.ÈM=GoDÀÂeÀ9ˆt{Ukšž~u<¯ª_¡'lLèo›JýsÃâUÍœô ÖÀËuCxÿL+Á)šóªâ[ƒæAÅè$×;×7»—}ýâQ‰^\o•!2úCü…ÙUnÚi[¬Ò:2X°‡Æ¾œÅ÷=Ú]°×ë˜A‡íeHƒÏ“$@Ú•IúÿAHÄÙõ€™HÊí‚1¼ìý|E‚+–Q]{þ ›oØj4â;'EíTã VÇ(rxϹGû)a-ãÜת–(£÷8ì ŸÂ5ð·,v0)‹ÌpŽ5ê!¸§ù› .|ûK%Ùv~Q›¨ŽÓ½ÐÊcui(f%÷àï?2Íó~7I8©çñaVDMX‘DLxØCCQ‡³#!]Õgò3‡¢rÒW=wjÉZÄsˆvöŠîóÒì3Å©ϯ ªzXÉßœ®™òÀLiá™tNòéK•óNzÞ•µø\j¥Ÿh+i \«€6þ^2X‡æ®úÈdVk„÷ËßS"`Såj4Œ8 íç¤jxºwé Þ>` n RŒÁ!ÎÑ7‰*”2[:'‚‹ ”…AôÂWàB¢>TS’õG»ÁtC-mJs‘n¦¿žS`žQ]5€oë ŸÔ·Ž $âÏzˆ´¼¥9*{“ày” ) @u'#†]KÒc4Û«§ëe£€…^pÕý·Æéä‡VØ€3RUôÛ1â‡'‡pÝ”¥k-„@í^Ã4T[¡Ë´)!­ú9~µñ{Ú"¿~ BGª^–U›k¿µ¹[*Û=à@w`¾> 4® CƒêÃÄìúß:ò¯xÁˆ ž€>@e~‚ågùÂ2ó®¾Õˆ)Ô”1†x¾/`0WíHlð6z‘Ä•ól§|ÜlÉ„>‰ˆ®`/Á¿ÚK`š§èh? ŽëùZ‰÷=·¢Õ–Æoý+IE3¶Óƒ‹TÊC9 !èÎ’F™ö†¾1vƒÛjºäfkm¥²#îA†ãó¨2mçŪJVÑbþ[$‘oþéÆÿ¸Ü“>0SähFîkglªî¥¶M8SÐE°VhsxeP8AÃC\[Ãò´Û¨¿Ž6Lp…zòäüîb‡JÇÍí O&&.’Ç€|t”IúÓ²ö709 r³¥oAwûï5,ËÀ ƒª£Kmvò$q2ΖXËíHÔ!ŠËtްÒmRzvÐ]C<ênB(0Ñ^Ì 7œƒæ|Vô4$˜¨vOM¡†éY›Ü'} (fµ¡HÅéh Å›ìwZw˜Ü8  z9—3¼ lÁoà™)ôŸ?$ÑÌDyÝPucŽŠãÔâÅ2æ,yßÔ´ÙXÆ_TRÝi=S‰Â[¬%JxU/›‘B~z6*ÕïÀ‹X$Ú¹#G>ýt:Íñ_¿qŒÓ0}JõÜnij_êÒ#”ÀÆ>®­‡”`Ün-7°}¯ähbš¾©7;år‰óPÚ´ß!Aœþé×õ•:3=æLâÜéÜ‘yÇB銑×PEÏGnJ'÷›@ ­¬|âd™í¡@ƒ½\`µ†«æweü˜³¡ÂŠ ôÃì×Ì=ŒCH6¨ {x3îÌC¶?Ëdsï3ä±lªàÂ[ Z_- Î܇Ì´s?awPŸ>ÝJ‹0æs+œÅ­'¢*å O‡ï„[5•ô´-¤ŽÅn‡S°"vXœ8ä౸>pC)ÑMUé}Qb/´Â]ã[y[ÒÅ ¹dLt°kZêË´­û/ô1¬ ‘E÷åpœõÔŠnç%.¡?=òÖk°tX°TV¾§ÚÚÉ?eÚk5b7˜ßÁíB|‘XÃõÎ"bü›óåI 5$ô÷ªJ˜ÔÁQ´M|”>ÀB3A±W»×be {C÷l²üŸÅ]¹ks`ŠôŠo¡v§®E“®’yÆ`Ùo¶0¢nƒ?u”OoQåÏÅí÷VÿÙ6–•AÆÂõYÇrËêB¿©Rá|¥˜"MÆþ9Ô´^-Ë ± :½?Þ½0à(( ZhwGû$±â*r =ð±a‰ÙaRÏO©Õ¢þëÈJŽÎwÚ{ûƒòÁÍ `z0×K5eæ Sù]=8ð¥=.]*n×'Ÿ»ØÃhåÂi˜ S¨÷sýK©’é…ärÂkÐ~'Î$íd8ò?²ÉyÈ'Èü‰ÂâiºØ’ãž]%Â×øï.—qÎ;‹Ë]-ÃYÚñ¼2=½»ug.å°å†|WìùZ<7#FÜ…-»”;W 7J=þ{õ¤ÝT^ãßëûÕƒ&ÃphIZFN ”|uËS9§¿Þ] –|@ëôS÷tiìJL²èòÏÑÞ¾Ás,aN.øä›jÈEfGlåïmxÄ—)e_QþÖ(8'¢W‰fC!î‘ͲÎ[ÀÖ PÍ+ðÈFíû)ؾ6¸è7/”¾¬cS•Š¥_sû–H¶h‰ µr¹ùksè âvnwh·Î6¡Ò×Ý•º9/qv‚4D¥h HŸàA8"¿Z=yÊ+MÐTèiÆGëx ;a%:¶ãrÿ}­·uµ(võóŽŸÇ eRØh·l#†¢ŒÂcö©«™¦?œ\”5|cbZùÇŸ[„Vømn˜¢Œf£Hr¦ã€×uÓ‰$ È©o§êŠ ´l€ODZg%„ÒÔš,Á8¼)¹šÏûkfW žo¹/JCšðñ´ÔËRÓY/œ‘é´:øÄ9ËÉc§â4·ðûù„å'p¦4Å[ìhß0€÷K½fŽ”– `ä.<9ð¿§‘;x`PŽoVíB-fV„'õ¯X°Ì¥Øú¯(µÇ©³™Aªµów{¬"\Øœ+)|W <Õ”È#BÀ,¡¤#>bÿ&û  Ì…SAá²½oHwzE9¾¡^Õhu#RÿÝ׌ð=ºŠå¿ç؉¼Órß nUœQ®¼!A=žqNpê·òPqåwxG ä¡Kº24k×ï÷Ú&(%”Š‹o±¡{o‡·ðÝêõ ¡FîœÑJÌSý÷‰êëARvWZ¹h1¼MdCX×ÉD˜‘©’HW<÷Û¯ë ëøB3`Y4|fzêrFþ…`wËxƒý}¥ ÅuL¯#åërƒÊ¼Ê©•P”G¬ÝöZR zžÞþŒ½eÍI†¯T~«>ø·´£°'ƒ_äš ë݈âs!ÈÅ7EÕ"]¿‡Y.™ãIc㙂Úñ‹ ¯ÇÒ;·‚-/¢ ›ÆŽL¾âÛ]›³³ƒÍéïÒ½í±<'~Ó¼“‚"ð™hèñXN‰³Á¹  a¬O’§$G\ðgÛh VÜš(¨dæ>ÍOæÌ$M÷ÈÐd„26 ‹5w0€°JÅcëŸ[.©®tÌÄ›þ„<à†.Ô£Ú+*G#µ¹|ŠM¬Õà-Íê\ãa±=R!ë ŒR«˜µÜTÅŸ£'`E+åÝûòÁ%±2˜Ì—âf¾¤E¼‡ÜM‹€gÌUôøÁD^¢Sk-J sÈ6ç¬÷|.˜£ñAùŠÉìxØ>áb«¿ºÁõ †ù$†(+ßôRî|m’†šØßk' š @Me¢°X‡Ø±Ë ¢iÿªrÕ¢ø.ÏòV:<¨E¸*Qqãõ6‘ØÏf§«BªÆ ˜•¶Ï9WŸÿ»ñÞ¦}·yv} äÖÏ\1™'­S° ¥É‘NË2Z-Ñw"´fì"x 0†/q€?8•ŸüÏ¿­E–ÉS— §22èϢ߀~Å’´0îUJöÑÜŽEñó&Ôò6ú|¿eIü‹‹K§?ÜHƒÏâ2|ÐÂIOŒv¸£eˆôÐ.3=ÂØ ÜN/|S¿!¢Èå£9xxÛ‡¡¨¼ªlQnœì™Ó+‘fòîéœ;2}ïW+æ.šÔ;•å2Qná60"ÂlæcWÄKyKÔÔóþ¯gjv«h³$Éî× ìËèOVL_cÕ\Î~Èå¥x‚š¼>ã–²l,ƒn¦üWg¬„L¿[‹“’ä?(ª¤|Ò¢…ôﲬvBŽÝM£ëN¼‰ÆÇwßœ #gáòr_…È“ 6|›Â»NN,2Ø¥.«GfÖVȱ«à³ð^aþîÇ告‡3’¶Å4n*â#½}*ül;=FõÇc$$h¤½[xþSƒánž<™5Ì’°y’ÄLnu*DÿŸåØÿÀb!0V\22Ž=}‰ä×_²€§h2¯qÛÚgÊB—¾{ô%¹üó+š‘óà«Ø?Tû—žÞ@$nžDëD¹áiù®Ã°4Ù€c¯Úí$®ËÃÈf»LÄ(™X¥6†§êö5;y'åö£o⯵àZèÍ5¸¯Øq €Wå²LÔ–^ÖáÍ"øç°õÏÑ+ùuà׋ƒqp}çSíh&…~™ç‚cà⛸ í3øÔè°Ø%A­ƒ·#Èm"Î;)Ð'^ùUø½K;67'ì‡YÀô©`ú’ꕉj[Œö¼VŒ8ÃÒK[øOà€ÊÜ„óêVfزƒ¹J,ª&=îèP½!-FìчyN~þóK€íÚ-I×øÝÐø^JYMôIbDPÙm‘Op‹\¢OŽªŸVã*ìÛ¬‡èzÜ,Ïdàêë`:úæ7Vf¦žâh9)N!ÀøKŠ6î-†$‹N*ú1˜@®ûsö"«çíèÎSÖJòn|èƒ>y“ȯ“0ݲhñÒl ©bB»½ÒöQ ‰ÜC_*q¡ þ˜yÚ!d€“ .G#gb'wéÀý‡iå!€gYoÍ©_<2ê/Ãj >¼àj,åeˆÑÀU;*KŸ€Ù„BZwvQçÛbÍ(ÙÔb$å ’nI²@žÁ#ŠN‚ôÏ"¹2b6¤ö5n}%¦¸Œíqî³ÙW©=P}»q‰üúY!¡£®ÝŽô©è´Ùÿ*úh,eÄ0ÃcÖøþç£̨ÅÚ}ŽA` 4Me#¯ì•cÈÍ‹FWv01#“B:jXý‹!Æ28EôºT1:IMˆ5eƒ_7Ì-ÕoÁTiÙmw—Õ‡³IÄœ,Í(ï½q3»‘vÒèwÉÑB£\Ž[çû›t0Î辜¸²=í^cW¼÷­Å«à£È¿ÍÜ>¾è¼›&¹Æfwò‹œv :Õ¦‹ U6åVFœD—±gw0ì9sb„bµ06¯ìx“ûŽÌÞöñhNg)C ±aœ±x–¸3§mT†œzÄœ û}qP;ûuÃÊqª,×= MÝ ý⃿9¿ÉÈÛÑ! MñAÔEsµ/&>]Ÿú““o†a”x§i½í¬ãþîè„>b~×¼‹(âýYH7Æ)ª4–Â'« :©ôkíoõ„rƒŸ «ÓD DBÈFßçc [‚‚²ÝK[¡ªaȽ¸U+ rË4è;šºìÀ¤Źl¼˜¸]Ãñ¯ F«ëÓS88kð¾˜[@úúŸê¨B†>“åÞðò'§KJ~ßå™N²ÅÄí³žß…!®ø<òò,l›ÄOÂU0+¿eš†îñå WÔpf$Lô­=ðAî™Ê[@zÜ!áèöq±lL4ƶ:þê‡ÅÃ%öS¬7wz2Ý[q3¡Mº¨´rþ7®xE¥BSΦ~¯Þ< ù]ãˆë<غ–É¢P*)÷Õ\Ý¢(ŸøÕ †`tꟌÍñw3EÃáQú–íf°ïœò"âãˆÁÔ«î(®‘ZEèø¹×´øbY vÙ”tL´@†nijŒ¿Ì~e«#%ä=C»;gÖʘ|| Úxj0´º˜U˜ãŠ7—ç°F—ÓÈ~kûxèèxâ …Û¨{¯¦E£ª÷÷c·Ý¯ùW‘Aº…>žé(“ ŠA!nf×äØŸB×myBŽGl+Âãç> ~ö€Îr_¥ÖtêJGݰḣ%i“¿–šÕ¾x)|>”oƒeÀ}U÷õRMÜI÷¶‹8ïÏ0á¸úçµ{•3òÂpýŸzÒ)ËÌíqŸÓåèõ&ÎÓa—\*z\èå«ê$­Ïrçyp¹·ØNÐ!¢zcºÞ’½±MU3ÀÞ ‚;ôc¯óÆ9¼ˆ:FR/t ]P“ïÞïµÆC{@(4´=AÐ݇: šÛJ¿¿¡Y°~Õɽ$¤0­‚ŒÂÛËÎÛÃ"_ûáTÚÆƒjœ—üƒÔΓ"-×±,ü®mÏŤçÂ[32H§à†Q’IG„ñÊN´$qÛ‘˜öºß$nÄ»‹>ù1Pm(-„ê«#»]FHÀ«Ðs?Ûá Ñ!°¯ç“÷¸´Ôo«¬æÖ;f¶óýEïBepìXÿ¸““f-s6¦ÊlgTY'æ,¾·5›¬ät±ß‚îB Gí#Lþ²zGß'¿Kwº~·J Ly ”Âþ1 õÌ£yý©÷¿¨^‘·Ä¿µzvAÝÅŒc]•°æÊñk¢ôí\‰‡M/•t&H’ò¥æ©Û@·é‘óÁOƒ2ù¶ˆ«w:ze48ÑOÊwù• ±ç†íNÕh¼âg?|–›êž~Hgr&Þ»<Õ‹M××ôÓ“_5ßRiÅb´×ùÌùÒÈ?5Sܶ9¢‡wFÕ¥ôRë´»S2=þx×xþÅÖd`#cöW¥Ô»ÖãF¶Ÿ³@÷‡Öúº‰*ìžuI1G³uWv¨Ú“Õce5pYÇ(Ô #‹Ì›9RÑÖÎàíŽ<ûýa´qÌÑÏnG”•e™lFd¶Ý°ã?ÙL¿,ƸÅz£5 çÉMõ°¼l…(c"x¡êösKÅE‡˜…Ãâs :Ȳɯ|,½i³3bU1ìžÌ7*]u$bêu)h7Ô¶¨cÙ¿ºSÿrþÕÛžªr]$€µÃkÆ’ép<—ÇY@m kù•ú%¡ýF}ݼÝ$A‡U³ÀZz“*l‘b/sA¯ÚPº÷èËûƆãÒ$ÞúÒ=§ÖQôñÌŽ5õÎÚqyOÕº»Š´¡8~±‡àŽÙÚ¬(²(œ&þý'/oݯ*xžsxEKûÕ‡øz=¹ ñ*>lZ;Yæ „{J(_8¡Ïü?¦`xÕGI§"ÓÔ¯›Ì?2DZӈàžÜO‘ÿ£‚Ö…” ,JK?Ñi@gáú U]2ΕÛž3# Ó‰R¾#¯¶uø".ÐÓ']ùó3W»käQwxE›ìÃy+ciŽ =µRß‘”äðH+ª"C¤%­ø¿eWº†W\ùHQÞöý¿ÈO4´I£ð²õ. €Ô˜Á=ûv UY³s¸>6÷¶žWع‰^…h¨£´™ð[##Ý™A!X=£•“w‹˜’Ô-W‹4ÿÿ.S…>‹EJmØpîTÅÝ’ˆÏ 1E|šôÏÿFQßî>t_V²­QWù”÷ùm$¼eÕ¿ûy˜¼,°,Šïbš}Óà¨t ä`ЭSñ@Ïû¨„‘YÞA _¬xGQ÷yYÕ‘˜© ¸llYí‡|Ÿµ¹Ð¶ù—ä¯ü>I,]V&Ké´üU‘=èânHè¯âÞXWo&{QîÃ(UPËûŸêå“8jzd¨Ò¥Â޾¸Qy¤¹D¢cïÚ÷ °ÕðüÓºÆßWðë‰\êˆÿEäFuS7h¸‡{uuy¼ïæÏ‰VàL*‹àüò€Vص×BgƒÁzÓç)GÌ+ÚqŒÏwÊpLdvFŠ%µW’f®lx·i[ä’ߥ åwßxö#Ù™^× Wòð±—ÐÌfæ°°ŠÈË¡LÂ="- nv*QŸýoñ(y{rxp¦obÙsTfbLô)VIŠÕß»ßÒ­É>e¡œgÆAÝ„QÉSÛ!c#¶5‹Êãˆðbú8b&m XЇiñpøÚ¬E¾­Ú˜>Íï¿çÜ”Và­0zï\ŸW.bDÕ#é¨ÊÍÄãÏÆ!øš²ÿ`—ý÷ݯô)d`|æa›C4Li(™¾-Ñ^'_Ñß÷ÍáÅWîT2„GÆb€…¡PôËÓ¡»˜™­g`¬üŒ537•Ì“®;ÜpN ^hÐ^z‹îzsl!ss%”aµP”†‰Ï‹Ï¿[¾!”,±À…NwT”ØH4¿Pµrœ-gO-‡õˆÇÌp\zÔ¾á[ ÊÍ5þ›†®ØÎÌà@n:†Zêï6fe¸Ù ±œzØ£¢¢#)ó ÷JʬE\þw#I•Êôî/™qFÒÊׯ® 5ãò´WŒÓº®ìör9ãÁ×ÛÎÿv ¿°¤Ý!uÑÖÐÁP8S@¿¡oÚtUÈϼr웼 Ü=a”G‰°óߌò0QÐä‚ ý»Ø­0iKŠDíî+#€„ƒñ*§yNEű×֜ڽ½<´tÓ#͇tîd”4ö0ަˆìŸ¬–èøü/âÐîüríL¬ºÎèÂgÖ!ü…’"X¸õ’&^&˜v&lŽ÷È!/-\5ÍÿØåx«a¨x˳ƸmÞ&Ÿh»ø,rÅ*õΪPîëÎŒž[ÆÄß›‚*+C˜xÁ=.Òmsx³4Èm³2Y‰¼:€²‚è7—"Ö¹·(®/6-®ÉkËÜâÃj´A¦üÑâ ¬`:ÑØMЬj×Ú¥/5X«Â.þí!Ô3º6Ô}_D²¯rEŤËZ4ûð¾œý­m>U3IŠ˜·.8X0ÿcnFØÐ³ƒ¨Ñ$ñ%A9™ËO¤” _3Ö‘ZlÃ]ÔºIÓZã*8<‰µêÖ/ÀÎî© ïpô·ŽFêð6=/ϤX…¡‰>z[[òÚ[Ù$éÅ5`òx ´×a_%­<$É\¸^éÓL“Ëø}!âÔ󂉔-ZójÑJâ±ú⬪C,£oXûŒÛx¹ÕðÀJ^ûxd¸•4dÚÀj8ÿ+‰æ€ñâ¦ÏÖ8ÛÞÈõ=õœz€9É€p“ŸCãá`Qz¤wŒÍØJçÍÆÏÔ…† Á‚U==ô¥LßÑdvÚö‹EM5Ö0O"×°•Û)%±£dZ;³‘ÈüÿxŒ%ËÿÌjI|XŽlXùBß Çè²Tþ]÷Ä4Cuﯠ„ÆôvÑÀ†©µi¨n#¼ÈË`f ÙñôT”rÀ¾-Ü@¥›|5bG¤ U!rÜiÒÉ©»N<>—¢6‰áƒÃËÞÖ¦Ûž':Su@tÙV®–’T‡«R Rcøm¢:°éÙ×̓Ãò MFK –„*YþÓee¶ ÓØTûZáwñÊ)XqÕ™O©tø®/>5t*Mm"ˆ“?¬ÃYQZOñ’°òÀØ£PØ…‹âËÙ<*¸ìë¨í´Ð–>=Aò¨Èj‡DôúµtAô<\¦èwúÝÊtÓ–•ÑŒZôõì:çÖiMÜŽ+*]ÌÃ9=_)w7ß÷+57øÝä:äøÛ˜á'å £u?Ûãdv<²ÅʶWkc£› xŠÕZó ©WG˜ÌÍÕÃç+¤)ƒ9ÿ”E¡ ®öú”c‚mgR ¨3áÝœ°~ü•žÙÊø•¤Ó/²ö­!P‰·CB®¨×ê<ݧ,çã̽€Kà§*¯çAjÜIW(ÂÁe‰î)1“áãqRÑ•Ùü`Ðá6ô· b*kÓÒÍ 7ÚŒˆbЈ-Ùlú8ÄáÌx€ °©Ðävh‚| z'šd÷”•ÌÇ®”¦9Ýx‹‘ZÃ’ÿĬßç÷ÈJöêÚwÆ[Õ±¤Ë/ëïbÇØs•Í^žqʯZÕÙ.bâNû¨i—xÈ™¹—æwü³g•ô(ˆaïíéÒø£÷8ì ŸÂ5ŒŸé,<‚Ùjô/v¥|±Ó:œ ¨ b†# ÇŸe“›¢aÊ@…r—£€ª#m ¥´â /ÉèHD*QqIfluEl†´…0<*"]YؽBpd}·Ff1‚*ñF̆­Ê’¶Ú+²· …É•ÄÔ®ïq®>À¹ „¾X}ðû»&äÛ“Bë$<¢æÄ—jßÞžM X®¶ÔñT’%kVðy¾û¯eëƒë 1ɳÀ{åZÉp˜PPÓ+íÉGRnâæÚ3áòH{8ìÐy³²,|×+%a ÓÜ ¯~ÛþÅ=îz•{L—üEˆ|S+Ñ 'Ôü™ûFßê¡€Ï*~]žq€Áì\Ô¦Õ.ƒÞ‘;4×\pÃ[gœ‰Ž¡ßQµ2ž½ç—Òó”GÆæ¬DÍfãüDÁôO·z¦´â¨ù~Ç"—30·L¦šiüGŽÎž%¡"JF,OD¤,\Ï–µõ˜JÌ×cdKY—V(\o§ÅO¨ÃÎfSíï~®±K6²›äaÍüþœh¦ºÖV†m¼8 ˆœÌ˜\\…èÊ ¥Át«"_迤ÝcŒä"FYœ)Qªk(qOG©f+ò(9ÇõÖ"ÐÔ¥Gœwt0D}&H©µ¡;á£i ¤äíjf¦§{ÌÌÛv]“†¯[%N0S<;¼ ³Ȫ~t?ÐLENΓŠ»ZI¸šr]Eu@EZëËœ™÷5fú?K:U½¨‘<Þ™¿7BB óT"9¿Ò'Qú;N Œ÷&ÿ&ùœ¾ÿé¾S÷¢ü^@„Ï"â&!-œÀNeY؉l»„NxÂvt œå7“¤ ÛJ0Ad kthíLô­.«þпêÐáÓ‡3—™­žy’3ùÒ-oi¾Pnkè¨Ðõ€du`0‚[…vÕ¸ðŽöµÜbhû'I$o¼û^\‚N¿Ë9ר0jcÙdx×éËÓ1ì¦ð×±¿ w'-­çN],:ý‹¹uW]þT\_Àn%Îz83X.{AH7›kËŠžâ_ÀÕIO{Í[y_ê]ÑÒejm¸Š!À{Œ± SÌh$¬S‘¬Ÿ‚C²Œ¥y½Ís™Óçå$Û7¨5`iI¨võH *…¦s ‰[FÜ’C²©`šCÆ  ÀÝ·À•üÄiZÝÖÕãw.#øï2Aö=ÀÂkŸ£Ê-uÖõZ”VNsCÀì_ñ¢Áõ)ο¢õ«ÉÇ1+ÆH ¾uÌNFêÑ _-Ç<ÚêwûºÓRõ1ßÐùqE¸–°‡˜Ü ¾ºŸ_I´‘+²¤)Âáb3ǯïÓâ¹f_YH^'üy+ø¥ZÝj˜¿Ü2ÃT¼]°±L9qX¹û'ôà‰ŠÏ–±¼«U·z²y1E¹ö½t$eÓÐÄäõ ÃK–ÿ*½ñz-FbG=í; âÁ>=LÝ@Sµ¤æ¨¿éX;¯pÙ¡òV!evV‘÷Ê¥öîe#Í:yXZ!‘Ô’Ï”_1Žø0£9º^Ñuùù0¥Ab}mÿ”Æœ ¢"ÓŠ‡‚õæ {+­ÿ‘zèÃV„^´ŠÝö¿Y­šyÁ},|gZœžqgr-×à¦Øˆ6êëÏPÒô1JZ–Fú<‡Þ¹•5åNVÊD¬ßEËæ3fG”™DÖr“ öPÿ-µôK¤a.’¾-ô@i+rAG팅#£?€ä6¡ ýºò÷~–ߨXкx¢1d!ÄÃÂÒFÂ) ÑKy«€!xA)×HÑzµ·©èz?Àf r;à‰ÿˆAœÌ|Ú/AÏÞscÏùîiÆN<ƒªíÖA¯e2ÁBE¶ —to#J<…&“ÍÇ…†;dLy=Ëû£8\`•ô†iÜ—TZ ñw°ù‡9‚Ã…Ýɺð¦ì9ÍÌžX·LX  ìƒu³=îCovÑ>R {àL%w#‘ˆÄv<|ü¤ŠºåN`*6íh¦1e޹±>™Μ¨D©“iØlõkÜ\?6E+ñg+kÌ”3 a+ùL±–ÒíäYÀ‰ãœT»1-Á"Äã®—ÿŒ¡};±kësYòpx{¥ÆÓÐð4ôˆäƒr¡±ÞŒß_žëÚÚÜ/˜Û¦KT tìè/§Ñ+¦ËÓl½À„;°Êä?®"¢ì“OÃKïÕòŒz¡]ƒ +ˆ) ¦q£F³=YÐ& {¸öýéÌO¿ k’}b°8a1‹Ïêãm-wY]“ä +]ZôÇŸ¤z˜H>ÒðÙmîÄÇ,ºH½²-Iu3Ó1„Î<1ÔÛðÜúfƒ¹f0f°|±+ê¾.AWv XétT!ÐZ=ÉÎÉ©ãÜ |cc¡J@ýífÇTÝ;mcIê ˆ¨¹*—Øn…",ôÀÝ ð1YãñòÞóê!“hŒ1æìÌÇg=ÿœË÷ámúrL}um '-R¶'òh㽟ÅP}„FUIBÞeÚCÉ(jØpþ[“ížQ&\'3ƒ.%ç)J1Êd…U‚vÅK•¥¤Â{UáÙ@&xpSÆ“œîNˆCN?òMr ßßQHÒöbX¶ËTe¾¯iއ‡zÀñk¼ÒÕ6¾á»µÎ!i;ïòš¨Ä—.XnXX‹ßŽÃDï=´Ð ÷«Î^†<‰Ž²µâøÍ!ãKþIÀSûæ,'¸}!†]ο¶ð§`u$«¨kU°²bª×‰{SüÒÀð®ýÐÐ1›Šï÷êöø qWrÞsš4ï‘Ò/yÉò.1ºM˜åÏX^ÊÀ=X™´£Mu 0âw9å( »ðP!íWHv™l&2‹O?œ +âJþ ½Tí)$ÞÛ$«Y«ñ¢'[ˆh*5|ui ¿åKÙ´­tÄqǽVH;Øi^ìòùú!í§ªµß}j­-\¡‹'÷eÓëx’ÙäS™(°Lz <„ýS|ÁW7h@§Æà„7¤$óü&pÀÎF,µ×GèvÔ;sNiÁlP5©¨Q2lr™c3׫QœúV§¦°GàïÜG‰e"¨ÌáõhfèΆ VlYåRI{E€Å Fm0¥sÉ™übwašæµ:¹ùçyôPèaÙö>S&OÝrö_º'}QÍMÓ‘KÙzÉ­-„e Aãä äjˆ|S±·Ò:V¯á­Õ9¨=cÅeÎQÂj5”ò´LÈqçêå_T?…µk¤õ&j•M`G¡C™<Þ‰Š7ôá3ŽX{+àÌBãõMA‹yö¹M[O«ÈȲøpÇÑûÞ?íI‡Òs$ÄfZWŽM¥ÎãZ×F¢~ó…}7Jí†àè5‡£ãÇÊÈRеÚ«yÆcÍFjhÞh0ù8dSûvÜÞs ­âyUƒÙ¡|F…Ï oäã;`IJì?/[ÐÎ_3¤‘©B}–>KK{ºå‘ `šê³1Æ=dä#¿ nÕÎ2-^‰Ytmz+ˆã£»0õŸaÄ“ø©nÔõ[™ôó߇ÿ%ŽäQNjSû¬óD2ÙíW„ì½¥y’÷G¹ÎaÉX ½XaL±½/¦Ö9 #A€Ó"³jЦ#™jYŒø»coû„þ8)-{Ð1tn}N@çøÅ´À?…Õÿ,öÓóu#¼Ì(h†/'>¿Z˜ž{À•fkþ¥ô穹aúµZ®òl„}„»öM°ãÝüñZ]­î_+:#èQväæÞ”ìÆU„{ë’¡òÝÁ0¾1VuÜæ·1ÿÖñqHÖRú+n £À`SDÄ"_–µsºôw޽7+:扚 ¡ Áàê²se9ÈìÏuÒ6-ªJš3ƒAox÷D'±Ùž·|“|Õm“r¾{‚¦*ƒ¤iy„Î=Ù9”õϘñ03ÅѼìœÐ‡i¢‡BöFém•rß»o•G¬5C[«)¯1Ô\÷š“œOº}Ø SÝCeobWsÌŬÚ$(ÊZÔ!ÇÃÞi wSã#y°¬·ý©@È «*׬]½]o©N6ñ¨<»i¢”¾Ãº}Þî(Véf;W U>¶™<û›Z†{‚¿øò0cÁ÷59šW(ñŸüa gpæƒØòÿÊ÷Æ$¾Ï_¦ãåì Ot_—V&†œ}¡õÄ»áîçq&«.¤‡³l1 Þ¾0$©™šI7ôU¡ïÐyÞk ÂÀúaÄ)ûj м”䬂[ÍhéÇâž!ÚüÝüôŸ +LtE™R¢¤Hê‰ÁWð-Ù¹*ÆeCš_…ˆÝ+)H„xÌ–aÏyˆêaÉ(V+S&»›BöÄÓHy‘ÀëjB‡Ää¶Þ;íÖ›0´›é"puÉÆi9¹˜¦ÆI Ãïÿ{¾Q +qóV$»D¦¡`«ºµ Y<š K^½(ZÑ#¬÷=d›<Ìó7î×¾ŽBv¾ùÛ!ôwÀšGðs·Ê/È¢‡LvQ‰5R"@<—m¶}âz1 ÚêБ Iû´hKCê!6øoÔÁRz­@˜•”—ü±Þv`µÊž|CyB3«ž®,µ—uönpX‹Q=Ííà‘ÎqƧ&så”5­¦Üi:À”ø@¢˜p”¿¡<ú^ªµ ðÑÍmè4¶ [$ŸÅ_×Õdª› ˆy‘1»¼„+æJ/ÔÚžÃ1ðê­ÓΦû¨ªªgL¹à’‰.–­`ÜÈŒD1ÎøkØ<ïNÎr‘ú =:n6?¶P“ÌÜ„T…Z7K{ÌlÄxd1ͬ«O9GÁ¥o§žÂÞ»g‘§V $áY^[ˤY ­'Š|læüëÃÍ'ÔEIp8èðÂu ËbáÃÚè§áZÜCAÃ\êh[æ‚tÎ`ÇŒ”ïÈ×%èCq]™©JBláåm@ôbænÅ‹<{аéN˜bkùÎ;2þ÷áŸTb¤²þŸªÜ1ëBvÖóÖãÆ'ĉÚãG¶°Ýû;«àÍI,@Qy2¯œ¬t#ö9ôÅìµhÑ6F}jú‰²%îHÈí àþ•æ9u·Å†Ù U—('š8ª'cJA8cñž‰= :ÎÅz…ðCNFÌà >dQõm¬·ˆ=¢SË#›at7 =§¸·‰âµ?Ÿ¸¢Æ²ß’I0w¡[2m.,‚gü6ï +é â×MdÞWÀ¯,–4W^ùßùëÿ>ã˜14nÍÉqõs¤^¬¡ôsÚ¡7g½Cù0ÿsÁ†í͹e"Ýæµ9hœI:¯kT]×vY!ÁÞD¢¢H-iú‚Xð{ pŠäGç¼Ürt>œlý1F³c¯/1¡†a„ ž¡€¤…>.}ßÞ\/ràBÞÝØÛ‚c(ñìGúÈhèPmSÖ(¨ÏÝÉVx‘RýƒŒ:öê9ÇÀÜ1Cf”\ñ_ôì" U!áѬ¤üO¿ukغå DäÐØŠfÖ´a ¸¡Û°FÃûkêÄ,a\¯›ÒÊÍ3·FÝ›¸KÒ]¸à·èFO´C .T´6¨‹Y›Ì ~7 ˜Nã1ɾcéÎJÂGúŽË5Ž;Þw.ÅÇת”ê žì¥õ#–(B(¬Ôc.Œ0lcgò9›¢Š[Qn¶õR©¹ÛO·àÑÚZ%Kç&9P!U+aÿ¾¤½ÒÈ//]à–ËP¸–·±î¤„R~N<À @Œì))ÿƒ=±±Å!z§ëkYõÍ+ôÕ'U­à©!— ê= $ _º Ç03éº{6éUΦ4Ê–hC$0&žÇÀ cë©g©¿ÓÛvpÚ•d nW„FÅý²vÀQ×Ý#Þs#4#OuÓ”Rp|úUe”…L¾x |¡N3® $/_…B Éà.Üö1-ø·>EKa–WÖ_Ý0˜Ìó#|òз@Ne¤”ÀWnnLÉqù>CXôOã¸D³wýË'ÂãMKBÔÇtW­[Y^2ÿ(Ã0[’&ɬ |^¨4oaFOdR~bõ–{ÒGþXǦ5[G MÈ嬓¥*ÖÆL6ÈpÖÁ<–ÚÙös e`hœÛ)Ÿ0pö/Ê]‘&0!ÝÜ i€“[IHr€UWc–æC¢ÅoÝ”î8źc€ù@>&Яl£¡©ZDg)-‰v:”gª¼ß0"e,†þ\h«üi‹Ñ¥^.$ëOZàë”á§àæGEé`õ±Æ {h8d8ÞNÓ²Õ& įYÐMby` K.š¼C”£àk§2Ï Û`ñ#ï%Üû§ú‰+Ÿ¤Ê[òô™vçnà2<©´¹oŠ…çâ¡ôä«è¾Ü²Ú=Iq“i¹¤DC:øãþƒÈøÕ:}L‹s[››W¯ß«Ç3D–ÕPê»t–)ä¾ñU>¨o·`¦÷ÿNò3¹óìçüX¿•àuЈð»¡+Ÿp(ž¬MÁgÂzÁnª=}-xÇÊIóå”éЈIóàJ„Ñ•ƒIžÆ(Wq}Ûèèm¥ºB8"uðc:Ì$ñº9Ç‚&JÊÅlÍ=´xÚ¨\s¾y2¨¥%Ñ>RRßC@F ãkyªR(`[bQf¯Â¯’ßÍW¤rXß'Tï¨ ä‘>ýfVó¨¢EÏôijyÑ7MUså&QKb±bªÿùǧkÈlcI>®eº@ŠÙØÖçpÁ œ`b3ÍMøÍR×>01Ùg©x,=`Z*M”˜BŸ›A€ÉÉÇ> ΆeDͲ. <Þeþ’ìøò“ÌEIój•œãßvÚ§Ö!Ù×WT´oCÞ(m€›ÊÑÇK äð_HfÈÓ2Þ&göŽðMšUVSh3èýkHúÿ*ÞÞrLëX\Z÷l¢wá>ê• œ{dôâà ›~BØ##õÐŽûsbB늞ÀP›/ :m"[$3ËMeBÇŸºsr²Vš´ïû ‹g0RÈû%4J—çÁ}¯Ò÷¾¹‰~žl+´AðzøPÿ T£§ñ<°áîç;Ô÷]r¾õ*¯#ÈC7ƒCDl¡ÍÕ*Ch&|éÔþØOÑ„=Çx=wÚg¡QìLyÕ ¾þªÐòî(oï‚ü°Ts(gçzoÓiðåˆÈê!¤øJŠÇ²›WÉ)tÜ'(Dí`YÓUr Ù3ÛÑbÖ׿æ7DÌsÕüûF´ul’Žågò­`øIêºG5ÀA¯´èé'ôª ˆv¸‡‚‡³/ådÚ•O‰T6­ õ‹’¦IÄ$æÿÞ6itm‘ârHÊrÏ)¼ %ÓSË “—8ÙìñÛGÜÍœÀOüóîükgÂYë ‹u~PÃfäúا†—JÏd±“¹Ls%äïËÖU LåÊÊ5Å}à—æ¦ŸY@öiÌ­Ú[öñ½Â &;/Ü«oK›!ó›h å¤26zêsª1u+ÖU(ÿYT½}€xº­×ñÝ¢-„‹-ky’ŽRCpVë}EzMr°a§ø·IüÉÚÜÜPšÉ×SÅá7Æoxã¶<ÃAyÛ²FîM¿4ÎÈ‘¾„x PÔâdIg¾p, ‹´%]”ãò$¤‰×{¼7«¯QMEG91ë7–y³ˆEÛq‰ ½’‘:øÞ‡ŠÕ¼]¡LAõ5ÅãC™m‰™nJoÊÕÎ0`ò´!£WôöE]¶²ž‰òï0~×êíØ«âtšÙéËæŸô_- õ˜¸YžÍn»Úë/ÎOåÅ#[lþÞÿ•FÖj(ö“Íßé+O5s±qOB ª¨*hÍ÷†fqsQÑ·Ù£¢oûÔd'øÉÔ:ŒMáíh7éE¢B)Vò)aò[¹sÆØüóÍyk£Ü¹¡ÃœByˆgC“bAŒ.ÇÐS$¨:H º¶„”kºîA ×¹¥ÁWˆ˜Jšt¯ßG(T^ÓGTHþQquö¸Êâ/N*t<$–íÌšü°'~; r›‰]@#P+ÕÏmœSÍÛƒyž^ŒßLP¡¨ðÒLâ¢Î0ç¶o-âƒd4ñ@Á –‘ý~ÏÖr/‰¢=Uyü©žÌT„sÏ #=>oòSТz æ$’XãC¬#’ÃY#ÁzrX °1a³üö)ŽT±Îɦ!K-Ø9@¦Ûo'Íb™Í²»È“©6ƒ}n:¸l§æÀÛê‘-›“¤}›­¨Ùça}b[Œ?`fÓŒÆû£°-+èVŪý(T‰"ªÿøÇˆI„ $Kj3á×'‰ù§\ ×¾0PY¼ÖfÀ\º=tÜ#%kÝ„#F‘ÉÙî;ÖC=½"ý¥z^0cZ£´­Ë ëF\h>Þ £‡uõû!×A,Álž¨š¡ÐÆ|2–PÏ”§÷24¥„‚ûÀøI'’qxí¸õcW›è·7,X`-ÅÙϤ,ù;„8…æA¢¢µyU²•ó‡°ü ¢8‚³ËOˆÙ3!Stz °x–( þ¯†h´?¼½Ô d.UŒ:l5Å’¶|Üw Ïv¡Ûô«#˜ÃT¸VwÝP}õΦ¥aR‘M ãp×YŽ‚Þîóïèp<Š„zƒjOKû+³ž=E(0Yÿ€A6¢©?È8_þ›´¶Û¦LåÂØ±Fúf PL{òSÑ?Øêð+…°˜%¹fjtÿn‚9áw”Ú6 !ºµ 3<vL^ fÈ¡îÒ’ü¹°Õ§8X8nE¿“yæ€E~F,E!ŸgÉó£ý%Ìï6Ö}µšU±e—mXVþµ«Ú„šÖíwíÀlÊ¿.5”jÊËqá©Aʼ0Y8ì8r>ôË—‹W[bÄ¡]í«jí×Çá¸gëêUèGÈ=,´`¹ÞU²›ô­ì—‚ÀèHI°›OäœÓã¿h~¬Ä¡)q£.¸’N*z‹B°Y4©°+=¬…†·«#phØë?p´D×ch)ék©]ù@ÖÄÂ=-3«óñòÅä,´$™Å×HA“4óI mΙñÿÕײ\/Uï»ìöêF »MþvG*B¿ÉÞn$5fÌÓÙ ‡ÂCÉìjZ‰ ðçÇøò·’1»å ÞBq'<ó‘ H>VÖø¡Â˜ƒ1ÜÖ+>æ³æKÃzw±9êÊdKtchü —-Ý„Gà£Áþ‡^ù`kuH”^T 0ÿs¾ä) Ú!â ®×R!×Ói¥ÀU®´Dfb`k}ž³ÊA9ý…`µ,Éõ­UéfN´G5רáç6¸é±þyAkζC£* $»qðû??î1B'ë@¸)1ÅÈÜ6àqù_ËI~ÐX%ÒZà¾ýI’{ #‡ôràäEüpFLviɹm‰t_¿wñ7&S•·/KM(Qf ¹sY `#MáëG%íWÀ„þ•Fž™J_Ò¿‘0º»u&npˆââ}«] T8ËŸÈJQÃéMQþç2 øo¸ÛŒqR^ÍòßDcHcqŽÒ‚QýSãB ÄK.ÚÙUŠ£\þ!Ä} "¿eN±QZ#|¤±„¿zù#·(}Ù#øPë]¸ùŠ(,ÝCbÚÿ+œ†&ƒl”€öÆÈeÖB¹q³IHQêì2­;,‰J[ׯݩƻ‚.ÖÕ²®àéWKãùìøm@‹&€à$Ú×ûþÛ(]yCi“ü Ý­ãœN_·& _qíè([$GµGŠUöÁk-ö'!¯u#jPƒbµ‡Â†z‘öÅÜŽë<¸À–ßðöbÅ΢3Q dúÕáÃüBl9üÇÈ{Ú›o¡0Bmjõ Ú(2 %ÿ“ót`w]‚—lgÿ›4>²,8†e|¤‘<¾²ÎR";ÆÊ®ÒP-•dèÑXu@‡ÜNÝmKm ± k„k’‡Ê*jÝœ4ÁõxÈ»Ú.±e ¡Ö’Ò3RùiS˜ ~¼É2•!ŸE£ΠÆãzÙ#’ gé Ýã)OŸ‚ ãÞ¸1^Õ4…:\%)Šþ¦À'<æuf­·˜ˆ¯r_ÝD&¥¸y‹ëlÈÐ-ë_\s±BBðÈãúà ýLlM¤ZYø©¾18vÝ–Ø„b£’âòýÅÛ²Š8=^¾‚¦àr 4âb)ÀÞ7V=±Ù¡^)…z?¹a—}(iý13‚e^zîäŸë€„zJÚ6ûP3W0%öíÎ'ÅÖ*Sñ,Õ’g÷}–ÀnŒ4,Á¯PJdçËí2eW·/’d©ì^Km&-‘ŠÓ Qð:Ï;1(§ €¦9§é^®è²#6÷·|>òL}ˆ<Íaæ{ObÖ‡§§&‚ÌÉÃ앞ötU¥’ב@g°g/褶&m*ë¬:ÀýÕêÙ„¦Ôž”M€x4ÕÒh16§¾GŽµÅ”Æ‡x5 Üv^‹@{ ÂQZÄ}ËèÝ|Ñkà| Œ˜öÜ,õ‡£<ÇÂEs0cX¼®£ƒ‚ÕÂ|˜vk+Ü›·ÊBŒÒËQb´· $âpˆq¡¨Ì ú§4èöU°ìÆ&(﮼”þ†•³ÿ©› :‹t½Aµ=|£Ù<ò òñ†DÏ]ítV~{2Ð<þŠ=Fƒ¡­ã…ø°dóÅ .G‡¯ôŽÛ‹«´¨%·çU©’êK#Ù¡aq²ÁX%Ö‚zãì^ ”ã#†šµrê>T}Ÿn­¢àT¤N,\ÿ§ófEë9áˆSóK£ojâC4ƒÊ›ZUF&ŸwâÂ-±s1Åüý+éý –ç:9Oc#´¾ñ`áXØÁ&ê¤ÃÉmé4lÔG¯Ú”LÔô’>„èú¶</–‹×ׂ.k&+¸÷"›ð*¯°a¨ÓÃïq¿ûß«Flë­ø>ÚhÄÝÚÚÐ¥'0Owb†ÄåÔvõß· VÐ}^g£*ÌiÐí*Ðñ‘¸23¨<þûë÷8ÑÔ l(oÅÛª¶Ì_ÊñÆ“©é1xñ-V™èûS¤R(ýTHÆd9ΣÕÖJõ^Ã!!ššØùèâðE5# Q-ÍX?d‚Œ¨Sx9xõ@…© ˆžàó*ÛýÁÁt”V ¯¦ê¯sOFl³gQà'u³föø}âÆ wF晾ñdGO·Þ<æŒ9wÔts%u ª‰ Ç=ÄÛs¡1º~Òp}~X3]¦ÓèZ AÏO"ô—‘ݯAKŸ!ñ6IÃx]èkenD;r»›—ʈL¹L»î߇¢›¾š Pôùí‡û}¾þ{)ª °é–Ø/Ú×Àö±¶ýÿ¸…kŸ¥ÊÿC‰Õ<á­/ªIu彩ŒAEW'ߪ¬‘’ êd¥ pó(äöùIÚíÛ‰»&eÈdɺ‹ÿЬTšH+¿ì6‰­ 2RÌê®KÁX™C–AMŠ€]5…Ëø(wvú±éÊ©µ¼›Ú€?lÙÔ=µ}˜QTZ½¯Uþñ¤ÂiQ&º›.Ô”²#?C*Ñú>Pö{€|é&R×vË2ßùê/£ÆÀ©ÐùÃî>XsÑËZ;:cY#“¾Údy0Vc-ýr¸ñ(;3#mÁzýSƒvô ˆéÝY9Bä­0»q¹ *xv*cZfá ‡Q–%tîÙ zµÇIolZ3MÖR¿´J/•åcl7Þ œ¸)d‰Ø!p ‰Óš2±Ä¸t–6Ú›(dÛ…¾Ÿ^\êr·ðß3øqáoR) {iz§ù¡P"]†£D6Ç}|ÂѯÉ1`ÚÄɼ _cmIšÄ–ÃàS”^ Ä6‘øéq¦ýq\K-ƒ½ñSïØ»(ºzs¦øÄ Üm*¹“¯è®„$G;…Ј_³\ô~VQC»S1íRÒ4_1%@Ej 083¿Sxa9K<Ê©Øe{pù”´ÜXáL,6ØUܸ¡‡hkê¹ è•Ë1ˆ¿Ä6Õhd ©ë”2Æø¯j[d_=>bCÏú_8AS—¡q¶œõÈ0 >o1NƱyéh*h¦ýÌðÒIµwäwv94­'*_5á>Ðw ±°K`Ý%C@ñüS&Q+â  ÿU‡•U…¢IÂ5ÞZñIx,¨•ÜËØÂ‰CQmZ_ço¸^eù&KUù%£ùMâ­o ¬´|$¡{>_¬Êv‰£R'øµ°ôùϾnæEb(àåù^¦Îà ÑQÙ.Œæ³pKºwºX’f½iÞœ‡’<&ÊÝ2á^¹Ì²3`5ÜJOx=ÆQY%˜JìKO„9²®$™§y|Ú ˆ(@_¼¤¢¡¦5‘9ˆø‚s]58cÇ¥7Ã>eJLl™ÿmz=6K%÷OûõöŒÀ¸<3¯#9·_'Óù·>¦;@†ñgƒ˜œÖ!ÉTmç¹"šbïvÔBú”·×‰dös¿tt+ì·=©e(_%,*óüÌmûpÀ° /AZ®äWÅp1"¢£Ú™6YcÜõœæSÏÔfËœëšòagHÝ@ƒ'l±úLc¬qPog}îÜív8ý“Ž1¾ý´-]žR;«°×‚8î˜KXäÜÏßÑuŠFf"ü/iƤ±5eÆK°ä—œ*€l-Tlá‚EåukyY]4(q›“ ’Þ!Ww¢p:Wª®¿£ñ%—k)žÚÑ\4o=F÷c\Oí,Dù^Bvtn`µõ³±rl4(Ýç sÄ)˜^œuXú` Žç˜Åk»×c‰_Ç›M]k€¬‹Ä‘ðÐ×øù >´T¬ûßòjÔaxŸÊ3Ò¾o*ts\ÄÈþéÆ]1ûeñé†\,y¶ƒé5*S ñ™øáÿd1 ƒ×Cúï©R- ÖÒ׆F“QR¾”á}Ê'„ó ª™´«¿—9=ý××>ñÔo4À ¯Ø’ÇÑg³°—‹›ÕÀ Y |T,òìÑ„¨Ñ&¦?ãé5 NÒÐB7¿ }±©ð¬ ÷V–=˜ßÔ†<9ú H—Š£saµ]!MááúV£nŒ"È¥©4SÖ4¬üø!¼YÜyÔP¼~É 4Rhä‚¢_‰§Ë‚ˆKçjŒÒÝœ*l#.ªb›<÷tõ?Qh!>€ì.Ε\-i2ð¡†dÉQ¤˜'W‘_@€{#×÷ýé{rQ%¤ñÐíÆgiÓ“¶…oø‘ n+õõ’V”˜ÝÚϾ¦4.Ò>þн+×cÔô5èølE/h±ì#äð(‘2&§Ú&|g5m™;¨5#Qéw Á¢9Hg&GºOöÄÞײ:¥‰§µQ¬™õ[,œ~¤&&6DŽ$ÆÅ dÞÝ=ʾÙç…x<ïS¤U£ëeM5!þÎ<üãžRK]ì—=ƒ©Ë ‰+È*Q…|{£ÑCú´;pYPWœîÆëÕo1Ó«ÇË0ÇrnÄqßðï·}g7©zk+z}¾•œ§¢j;´!ÊcŒkñ¤iêB-þßê]½I]›Ç¥,ò¤w¹/XWleÖîr àeYyK'6guRæÉ” O ]‰.O‡Uµ&éûv‡œ2“¬ .áΩ6—f5Ô,å|]#V¶”V²•ÖB –ý‡9o?[ž÷ç…ì°8`! ¼T­ ÿô#Ÿl«éü1„Q‹º,‡†2Ç´4eÃ^†÷ç ›y’÷ö#"àeh(“èõ¯Åh|»„°jåáKisäRî(¨ÀË¿hJy®ŽêêlP«ï¸ƒy20ò° «åÒÚu­J\u9†>ÿbJ>Ô&ê‚$È#a;Z™}¤¬ra5›Æf²ßˆ*'ów¡ !LŒ¡;c^KQÑÑm†òtq³&øÙ[P“vbÜдW…ô¾¨[ïAù—ª¹Æ'¸b1T ȉ1 ô¢ðíkí¸0²( zã)ð‚?È2*²Í󟈟ñ4‘§c”ð~$¢3ÎhˆÍ]µ*"š\­?s®ÂUT1ñu»^ÉK z2u5†Á.V‡< £(dòb(…°ñI¡¥Ïá­©î4v¸3Ž=Ö0Sžæ6"»ó¨?Ÿ¸é‡ßmt¶!TNãYU%CØpͱÜáÆ'Ý•Torl6×@îõ( ÷˜/ÇZC‚H%k·A«¢æ8æü7׺ö©ôe×öà=c ÒrµϤS…Áá©óØ~30v¶W¾â3ÞŒ¥üÒyßŰ&ó„9uz»eÞ™£‹¥À”;ö‡ž ºæIš;Æ‚·ï±‘A(a+ãj3Mí™ÆÉ¹½2þ×ôz§Ûzú«Ô4Ë]åf™/?ª¡>r…n¯T}z°„]àG‹9d|:¾ù«î¶YpJU‡9}2ç¶*Ó_Ä3!_V¤ˆ0w^ŽIÇ(Ú_;ÕW˜_©#î.ˆñ]’Mý‰¨(pP¡î„r‡Ž Ôbc ø“¬_5^ˆèÑ)¿†¶¹§b”øu²U-ËdÔr­#KÈèáIŠÛý\­{wQq”èx„„@!.ãÔQ:Ži™Ù8ˆ«‹ú>¼C»‹©çîÑõþûhŽq*Q9%–úrµªb|{ÿê‚“¬žRê~sHR•MxºþÁƒ7jxÌk€ ˜”›ÕŠÄÆÖµVqI‡mG˜.€&Ÿ ¨_µs,4”Á5ÎVˆ9ÿF âîØ¶Xãsˆ®U„ÓB'©½÷(jg ¥¯šøây¦uáÑ?Šæx‹¬Ã< +ËІ:­¶ÝÖówŠî†uiñä`¶– }Ç•—æDõ0©ö«û• áȈþ"範ˆ2Эaºs[öA­Õ°CW§ò0»6ÛªäÖÚm]NÄØ”¡# «¢ÓåáC×ÕÝ×[D=}?P5¢mÅêepwß= Žêê3,¦Õ âÿ4@ôQ’íx>;ßÄ)ÝáÝyé_ÙX²Ùå…Éd±A»% VÇ$ ìT)Óö‡Ê+‹XªÌBØ·ªÂž©Ç™EÚIò“5e«¯³{‹rwøÄhS¢àË xÅ»ëF$u ½«3Ç[¢¡vØoÄ\¥¸9AoJzx_¹/A ‚R¤fùõ…jÊZËDÓeM °˜_Þepø’Qé¹ï…í‡T”ÆûÌy"•¦öÑ „À÷˜çÖ#ü:Ê¡Ws g?_웬 hnX5²³[8ÊNÄgðo(Àêè’,éì©\Yx )·O‘í‰Ò]ñ°6Ë©wσ:Üœ5+VýlÏ,5®rF&CÏpßÿZ«0c5®jm¨ªÆUùC=ÚR­¼ýôïßIüAfŠŸÓiÇ™¿Î!.å×VúAJQÐSpu:˜àžjm×Èbv`®E¶é<‹jç3±>»tŠ^EuÁh]/ÞWJQ úbÇ××Ò)h6:kÁÌ.s7G†3‡“ÿt~•ëru} Íœ¥ /g+Ø‹UYLÚ6²AU}AjçôÙ—ž?¯f<ºþž@h\Pa§MiƒEç{K,~D0Ýt礜• (†(Ï:)k—ì™á¿ÿ…N^èÏ®7k+ýV©3ÛP&ÉC¢ó +l¶H“ÁõÄz6?ýQ¨ðQfØVѳ%¶’,_%X\¾ãXÓ¿(Y1¢vÁ@ÈA‚’u 7ÕðôÂ¥svy?Úª-¿ò¡`H-f£7A ;m¦#Ás™8Ü+Ô»¡ÕeWê Èt‘I?¬üR}/Å/H„¤Ç"µš:`ÊzÔ¹ üd˜6úÝ{f18ªg™öžk¤¢¬aEüDP¨1š¡¾ÔÓÄP‹?ÒÅ8MyŽÍÖA$©öþ–ár™²Í5¿Æ ¶È9W1œIÍßg•ªfºT¾™MŒ ¯ÉæäfBŽW— „ŠÛNÙå»2Ò{I Bd0& ·4º HK 6`ŽÿÚ}†S_ÞÛýRÿj¯BêX¤ Õï:—XOà5%E)u,8:»ÉDìù }u/qBd”;·mÈU› ¿$.–§ò£Î)qû7<2óNj†WMüœÿr[pE­· õh¤ý”…’úoUáYm ÿÞ/ /i€x1ü5€~œ:åè#¦ÐŸ‘C±÷ˆ lðkàŽßYŒ(ø„O: ÍòÅ3úÝ/îb­ì½À™8 ‡-™Šº¸,Ñö*/K­¼ÔÞ¥Y#£·ÛiÇÈŸ›0UîlísHi@ÙÛ0Œìöíc»™¾èº‚Á;¤ø’nåäWŽ4P¥tÇxŸÂÄ™S­Î+óbÛµGƒ¥zÜ”ÄùáZÔü7H©¹q«|¾5.dX%¸ælþÑÄpÃ`\ž¹£ŠèïI³k%QÇœ]qv¡ÚÅñŸT¹“øŠÞd·ÿ6}4‡vóê1—<¸>›…!ëŽä2a[mlæyønU}¦¢a~_ܾBÅÁç½Ê(!J÷FõѶÕà‘Hs¼ÚR2ªžN|oÚoò^_ÞDV1@ô©ÿÐHmNÙ¸ÜÖdMÇüÖs·“«(Ù1ÉÆæ'× Òñ³X߃áóÂâêåÚ:W;íF "°\UñDôï‹)ã|‚ZX(”|ÎëfïG÷,éa‡C¸m|-ÓGB\mÞÏ6!rÖX»|`€§¤Í¢y:`¥•(ÂF Óuͪ‰Cý¼ªï¦s>Z"`qymÖBÈÂïø½LÛ ©¡–Òy3/ø¬Ãù„»zgÊ»A&3’÷ö¼ãjpã*–9“Sîè¡3b;qe€…›š2Æ®Y+ ' ;"VuÚ›\Š„:,—r„C…ÛÕODi݆!ãú#iiq–C†3¶ô¦0»"BlÀ,òƒ;‰{ÉOf‰êh–jø›“ø|Õj§CŸøuIjöNQ<…2HG¢¾iNLjôb>!°iíæ¸/ýIAWòdM–Rª«CÒ[i˰_¬ŸÅ3"PžÙÞ‚3oçX?.>¾ˆ7‰zÄ(ºm4UpgÌ9¦ HoEïTl®Tˆ%  ¿ÆM4^¤p?€ òôï&¶¢µÈ¯_Ò•=‹Ú:Ñ'ôLS4t!8!6tx&p+<Ñà … rB~G•]ÇÛ'8öÚ êÑX1`Ï4EŠ8G;Ó©|Î]v™ƒ9yu˜‹CQ½ôÆñÝmO?@8qЄ`¾*Ì;åþ"ŽÁÑ÷ß›*éÍæou¨Î‡ó *)^>u'r”Öšå.ä&½E©!ÄÖÐXIe“?ŽÑŠÇ­:ffyìú¬þç ˆÔQöŒÖ¤Ë|öìvê:Ò?s,çô2ìï¼ViúO­`'È3ÿˆã"OõÀ[l—»˜Ó ZObÁß·8žÌ2¼‡"ÆT~Ï{íq©Ø_ú×T j”†+±ÜÄ“J8&NA÷Óæjõ}ßVüñÛ÷Ie£ø ‰3½à£ˆ~cÌî‰0 EyžqÀäï[ÐxxšÞOºyB€9Ëþ'¡þ’‹šÇõÒÆ ÉPßS¼¹ñ„ŠÍ;3„kw!u1$£sÀú¯1Љ×ÈêWíé#n¤Ð"d?£Áűœžq“YúB×ÁckçŒÝø¯õ,˜·;_vÜŸ_~7ª~}»ú»¶2äçÍ„y…!tzƒZ(v›Ó+˜<ÜÔæ%g¦87V¹ %3ÍŒ„¶ÒÅï93ìá‘—C¢}Œ«éÖâ8`ŠØtPôoF8È ! Ò¨\‘@¶-½ÓX%Tñ( qba©qÕˆ~ðåtWÁ.ÌbŒwH·Ò_: ÒÅ>yJ®WÊÏÍÒoWW/# ®Ûª«ïŽË‚\|û@Xe¹<û¿bhÀ1 áæÊé—SÅ?˜¹‡”vìgÚÿÓ_ÃwQ ûlüev¯À`OÑ{*/CQÜ–Û×4 Ã1þ\: E=þÝܱïý±XyF‘¹$jã»­|µ~€+ݯ=¢l[õCpÜu£+JT <P|µ¯úé™Â‹ ñưýô ë»§^eìV;à>p Ä­ø=(_Ô ¨È×+ô¾†@ö„A“‘ˆ¥?c çr ÎЃªsË>Ä»4 R¦‹í8;ý|û1\4³ð¯»©µ)”Ü©é¸=üV½´¢W‹½ønœðòs>zg[À=7l“€šCæ° µ¼ìh†¶Æ†¸‰Š¨ç Œd™äÀ•ì+Ç¥1P´˜¸Θí‚{ê–蘅J¾ªõçÈp3¾áƒš ÙyÜʇA7õ:O¶Ú¶ObÅ(*7“aêó˜^¤5šemƒ—iõkÀVÀvŒAÖ!¿} «Ë¨þæð·ªÌ‹ˆäè5 òYŒ?í–÷<¬¢O{°'ð>r€ßÃlj—K‘¸Œ:)fzS/÷‰‚joÍÿº˜M]O±ËŒFêàÂ_GH‹ÉxAAWH"Ù[Ò S™@Ã[0¦®¤åÀ%»ëx[¸’ã3){8EOnØ—2ï±ÿæ6üì˜âܹÙ\è,ã高—óà]¤Óˆp´…e솃çäF¸ïßA°ÕœV,¤d×Ý6,"Ò°ÊÞØ| •å-¢°c×JZÏ æú~‚¿ÄÈžC'Ö …Œ¾u”›æ²k*·¿FNø÷dsÒñ"ÿ\JóiÏÓ¸¾1ÇIAÖ§©AϮ氠yß’²#˜í¡2Z†®Á³p'<ƒ[Ì}„]î’4Ü~Ö¯8b€û|ЙNå꥜²Å6øaàTc½Œâû°£ÏÉg…¨cµÒŠ£–ÖJyH6@Y[£^cÍÿèÐÂb˸‰?giivŸ8òjOLdðD•=ÒÓh‹ïÃ[Isô~„d ÷Õ:BŸÌFtM±Û!D(?Ùƒ VÖðU½™”ˆp6ƒå‚ؽÑèåüý ôš•ÊiýëÕ{XFœËœ^˜½8±Odã\F+I˜G¬~¹\—)‰]tÃ-¡$ z /›H”¬~t×JŸ¡*-Ê3´(@¥Á±©(|™(»»Pn¢>å“ècþŒ¶;O,‹;OÕ­Ãe¨ÑÕzy+†¤ÍÔÛšz} i8ݧ ¶Ýƒ ª¾§óaÓ2Û¹ F§öbDýø#ß©óqļPnéËôõ?Mh‡%í:j0è–¦h§2KO°l™B#¼‘»y+A5E¿e) ^Žß´¬NgwruÏÛüèîçÇìH¯ìŽ³Ð™ P1Lº7q;Á§ðõ D&À'ßù·Ôì_ชq~Æf·›ˆ\Óù?]À“:ž/éE«b‚¾› “ŽoÀ,àÈ.LF³·ÙÊE$S'—ÙÉR.:Ä-ô7¯ 0,ÅžPGq˜úRL#‘ÓZØŠÒ0 ‹Ü·ø^}j·3E™}Um¡ …ca‰*Z›ËÚúÇBB¼‰ŽKêtkS°Oø,îççFÞ(NÊÜ9ÆÍµµB„ZÌA¢ WAã¤xð“>±Âòó°ÔŠõæW}ÚÆLî`Õöi[¨³7ÞjœAó»Ù‡'¾²`EPÃNš¸“M±npf4z<ì!>÷ZåÐl޾‰¨ RpàümAtüz©eµ&_Ù±JAõón?!¥ËK%MÍËÄŠç~¬ +áqTÎò3¥‡õŸÞmåíÔ˜èE¹•P¨¯¹,´E¦ÍÎSÉà|ÕÚÉ ”ÆK*Ç—d ÇoDZ¦bôÏTID±”~•®oÏKÎøŸ{ѯõØ´wsOø‰Ñ©“ Œš§ø2ŽÜ¥'O‰g¯Ø¿á ú¡mÙ·ÁªÄ%e˜s•rù Ëž²0!ûm$¥K2zÕÞË™ù¼4ûúÆ[ýÉÓ95;8ŒÖò¨@'(Ú‘­¦1íjç¹5œèNµ+„1/Õ¦æðàùž Lv)?Ò/ÍRv;›4gchÃcÝETï)T*d¨ :ð6ÕNóB€çÿ ŸÓ”¨D|Œu^Ó³ŠËt®U¥n†HRç×ɘuä:θÍÓo– û»õ(®g$¥LƒNþð®sbâÉÔ#f/ïKÐìŒVWëŒR¨Ñ œðtÍeù „JxüM)úIˆj”„]—¤ ]Ù!øýZØn¶[“ ˆõ€îÖÖÔêÕC_⟊™õÀüj)`|¢u …÷1 Û¸€¦§î^Ûµ 3Þ×ß7Öñ/~|×½ê p_óøÜ?d8H4Ï2„bñÀÏ.@Æ?6FN¡TÎCŸ¶¢ltK;š…Ý=¤›ŽÇ(ÏX1Ñ´òšìç?ÁénY_U9CÆágD¥h34íÒ^á‡ó~VˆŽ<Ã-By±Å†Æï´Dx ’ÔW¿¸H°Ïާåܶ$NݲC·qPÄÉ-Ç$xEëËj1WÚY÷þ~÷9¤vŠäR!½] öOYjˆàõþ:Ï|râ´&óÏ3g&¶:Êâò Ï ûÓýâîz*pJ‘µááj„ÏúçꩉnvnÉÓS˜ÿ‚&¨]ÄJIIÑ’¤3§ÃnïuS(Sh_<­c<ø¿‘±$@ØJçÿBS4‰˜*ɧÆ[vi*æ–½µ°F\˲HdL“ˆÛ”pü¿«ŠLþ™ñ¾vòýññã Þ¤ö¾6)s–ð5¦þÓ¥®'júŠÿ†9Œù‚r7A -4/ûuÉO÷¡Ë‘ VŠE¾"Ao×-‡ÌÙrµNAÿWû¶ˆðÛ"dMÄ–¶ïÙÜÁvHñÆ4èªÊèÏ®²"Õ¹z׋ûІX(P11*’ÁX‡ŽZÿ„çp`s‡%h°àábdKËÇÄ^úÄY7k]9¼[€'¿êm}&NH欮i*/wÖüHu€a EÇ—™µôñ@NcK=–C‡AšÙœ¤Ñ´Ù`VÂ=-^þŽ @åw&¥ßiEÝÿfþSÏ‚q‹Ÿ>ÙH˶n™>AËËûÏJ¢ K~¿*ƒÅ\{å.Dí—{ù|8J¥vywÝþ›!-çA=lÃ5¶X—‡Ø…aμÁ§€éޛݎ ZñU„@î{aÚ»%.ùvÊl.È2J ;t¤{*Sq›ßflïlk~å`踛÷Ü©‹¥Ó.G $’ŠC ¶è1‹@c$Τ+Ÿ§Kèæ Åæ©©Ê5mê³ÕÉ"ôÓéûe…°œ18Õܺ."5l>éÑ68âÔ^?ãíYÃtÜöpR¢ó†œàŸÔ¥È„‚èÞ†ÞXT3“[€R½Ê™Å­Oç`‘Œ‘—~Ò"—g£ÕWÒxÊmìqö'$`T™e2…hkǸ «¢@Ùim²Œ«­Ï\ê޿–²5-0½«/VŽŸ¶‡1Ýû»Y™™éë¶L•ÔÕ޽&ÊPDÅ„úm•kR €ÂÀcBr¿IBÆn+ÍÞ.0…gŸ„!CôaØ2qäe€AÒ =³ ýÀ2ÃlGZ=b åZ&çqYÎ"òý$츹 Ú¯ÛN0H2t~@ZeãOŒ¹i"CݽEžb†=¬Q¯[¿f°Åm2ýš—´ ã½cwéõÁNzõ¦èÅÙéwŠ¢;×%Ûª!áñsLöТü>‰H¬i.ÌØ(À\ÇyO–t^+WªG4ë Ó°ñ¨#O­Ïr æOHk²nÉÝ8Y7v7ø7MŒj‘m7¨¸+ÙöTvÚè½I ™^°£gZe‘v»^8*·#¿8¨io Ž{¥ø6~D ã“O{èÀ\>ø–/W?îŽúÿŸO%퀙šÁÜ$øý¯`·ŽP¤ßÅܼ¡&QD­z÷Œ‚¢g$›9­nMí*uÁtB7¯Æoæ‘ lÀã~tÖ Uƒé@uþ}€Ï³:Û7FMbò #Á>}ˆô®×Êr |u‡‡—r;ïôèŸd@£÷AI÷o{¬òPI ny5ðmPë‰Jd¤±£Jry²±ÞÕ¹6Èä“èdaÈ4cg‡ÑR¬ ‡81GïqT¾)psršŠ…þþ¬6mÿÍÈψÑB‡šÍ6j]¤÷ØÅPB3‰¯‡£§8`âÁð_g ߤ=²eCÛ#†Qê„pôB´÷8»wãõŽÝ¡¦µ g……›/›fS^NÖ’üÈBW@Q ó ý‡˜™×'Ë€\´!Gaâ É®‰b•J4lKU%Õvßû‰Ý;Ç™‹kh7¸&Dãá›äY(ŽÓ2Õþ¼ç;G2—¼Mß· +Ä20u+ö›””ºÖÌAרH"ðMN\Ÿè àù¥:²j6S¯ùNñ—>`AôGBÖ¢_sÐGX »¼£ˆ8‡©+íî[)!\ׇãNT°1áNÄlóÜ4ǰ#*FZ÷ÑàÄZ!ÍÏ6§¶Bái¯Ø“Õ@,šŠªN%_¦nÆÚ½¶zB@²ÑL]“gñ rM¶¿—o±ÉGÒÙÆš¬çlü‘*c ï À¤B¬È£Ÿ´1`ÃM©¿Ô¯ z³ÄYc‘„ÖÎ,È[µÚáI>¨h )ú8õ eT^3&ë‚ÀÇáHd}mÎ^-¦èžÊd¿p¿‘ŠTöŒº_–zp?ø89Àº¼‘îëcIÙ+"½d“ÖµÔ¨0ªO1$J¥óB«§6Ô“U÷†Õgiv;Ó’L)P}æ/ ðß;X€2üൠ· °¯ÿi‡àV†§Õô<þÿGŒAíîîª_¼Æu·ë“µê¯ fǾ)ÊHÀßWQ([xÀ%q½<´#ɯ"{°˜ÛÀ éë>­îy/VÙ¶1½6ç„|ÝEþX:§2hqÕzg‰ç´ÂŸºÒ•™ƒ¡`û,À‚ tè4jÞ$8¶¸½}qú¾Ž°ÊÿL¶L%~¦šÀ·¦âXjÇú%QNî’'…b¼¯1:gƒÂb´Ÿn*Oqmµðè;&©+@l½¿ü8*"äÙ*[Sd>ò»¯ûÒp_[í³xª×õ~x;Ó¦¿êà2OWÊ-ÑSW+¹vØ%rGmTz1Ò8Ÿ¸¥›Ò`•bÁœ}ߣÕÍjõßÄádE;.áaðT‡ô´ý0ï"¦mð8jƒ–ÏãÎ èxZ"øI8$<Ìk×ßë’—¡;÷ÆÏ0_eçЗ¶ð¹Í«®×¤ÃeÞÇŠ}s Çá3 ’…Ðný…«JKéˆ^2$‚¼Ç„@ÿ|Ynì@VQ°¢†:n\Š6¶€9ÒÕi#ÉFÓ’T›SƘ?¡0 IZ?_e4çúŒý,ýö}àéM0öÚ´ƒvÂ<4NÙb¬ØÇ8÷oKó8õä Ίu˜¥QWë¨î½è¾}D\ná"h~ýµ£’oÄàN¶Àwc€ûI‰£)¦×&´ÓolÐ5*šZ*ÌÍoãü¼Úÿl¿K1ïÒð¤Òáƒ8UÒ2†ð "M$òxæKoÑjv™4&½?ÚÙéG/§þz8aÅö¬„‚p0 ¬]pñѲ”‚GÍÚ®ÁfPØŽcØÛ¯Ûë)Áe–ÜÛ˜œö¹ã'kœ(µ<óÖ„ºc%Lá eã Û:[ÛD–² šòÝÈ’ÿA:ñ©üF徚j$UëZ(ÈvDßç!ŽF®J.Áït*‹Ûh}}-ÒóÃnøA¬.x^R5­Ç\¯ùq„`+ð Õ“¯‡tÔ _S|\ûŸêa`µ cêÁÃÿœ’“úmjŒ¥ÂÊ »E¸‘¬–ÕšÁà“›éÒ¿„³¯¤ÐáPúÞnÇAx[Jn#Ó]žK%©ãCñ3´¢×j|„äø@™î«Ý¦­ý»3࿵Â,ê-î_¢À]G|[?árG™h ž™\¿µ}]‰RH C1½h ~öGÔ¥?ˆŽQB10_lIŽ‹U¶Ü[îÄ¿·“fãxWàà…Tðí~<šK˜/ÈX›®\F\~„#,*4&Jj¡D‹/ÝÛì9xÒ¢ ~•F72´>·Õ:‰ñ.ÍŠ2,DI’ÓB{ãV bôu¤õ¸EËaÑCrŽc-©Ê<®æƒ6±’S+¨ëÿ1fAu›ŠcÞü»€ÆÇfn[ôË{—D´Œmv£:¦Q,7Ë/·Ä±dóJ•YÓ9`DZëòK_vÒ’å—Añ –4Û,Z"èÔÈM0o²YÉ»ª˜…°$`ºÄgÛÏOHkuE}æ˜ÇÙ¤?¨¾Ö;uîÔzpJGÐñ’2°Ôj˜kr(KÑÄ»™ïM¸¸,Ö ÉÓÃÿ;¦rÊ‚`’; §ï5ûã'àIÇ¡Aâ٬η ÉK÷!|;ôÊðt<½òCƒóéÁo‹ÕïéO#9#vÕÆN»Kãïç ,Ío ”è;Bu½à[ZÄÏ%÷©®æ!Ç’æUˆõ@Úçò¬ q•àxÑÁÖƒVŸ‰oƒ8í³¬4GÒ}ŒÔ“Õ:¾°{˜Jsü† ëçŠtÈ•K ÄxÔe¤´¬D±Ø¼Š*VûxÛìí1'f ±ü^ýªBIÉü·Üœ?›i”o7kC8ž…€ž×òd¨+µn>ã¨1y.áY&âÑ $ÿX¯öç¡Çu)„˧’‡~…}”½ì(§„d‰ýE„:Ål’7`í0y¥¢€µ2wïK •“úó ÌbêtÕ|±X¹GÌÈdXÝ3Ø¢NŒìmR²7«O¯ˆöÈÚ¥ÿÃò>ñÑÔÖ6¢¡!<“?Ô®y[Ýå1"Ш3JÜ'´~3,Yh!ºЋ0è´×|uØ÷-0ô¨ãüÚnzx1£ÄA˜ôU?Gcg9ëã4X Z§pÑgBp2›Ÿ €@ƒ&ç(̂Öeã—Ò°0‚bð½á± >ÁÅ Ëþ(ÉKü¹rƒÔ[ȱHmѯWð¼ºì1é øòcQG ý(ë´ËžœŽºp ùBÓé‹YÛ;5¨¸ƒzF|áe.i¸êÕW1ûŽ©+ùQú{AÉ[ 3½ÖOW>Ÿ]ºs¸E”k4+•d^™·/.±|…ëuZQ‡qKžYË|B›YÖ0t Dð¤\mïluSÃÌšÑáÇy ׃|6~tÇ7bHu%^§0d„¸!ù@z :íSLFcîú/Óaºð4g‘¦®¾ÛiÃе84lbjªïî3PÙWÓªâu‘(B’])…²Ñmd©J^X } ^Ã57µ~‡³Â¹v, ›Exf=ÞçwÊ*D1kz:¿õz;§”ÊWa~ë8Õ,4ùRÜaÙÂ_àòÏþO²v`à²w›¨é;²KÛ–Ÿ*òÎúÕ¢ b@m?h„ÞÉñPé61âÜ9¥¨z @n!'xö`çMtYºq¾”lÓ5‚ùneYÍnÑÔÖ¨sÒ°µh"?Õ{éçL#E»#ð]$ñ¨[w¥ÎÛXì(ÀÙf® †k#Yu>³¦ü#pVBÚÓ}ݘ`ý}z‰¼K¥’1OŒŸ• Z0åÈú¶i#=޾×Ú-Qo9Á²v¼õƒµ…b,mï0Š9ååÕd! î”No>¤L!hLš" ‘1¢`‘ŒKGho$û¾¿e…µ<EËI®vQÍŸœã}¿ÍJ3M$`‡ŸáEÄtœƒ¾Ú³†É±Qõ·ÊÎÅ\¨Qé˃¬žÍäúé^¿(ŠÀÊ…uÀ[GR3šB ïfæPÓü­÷ÍËJC»ÞÓ†$}#þA‹¦ÿ ´¿?'Hë? RS lHÑÚ1ŸÔÄÃó˜HŠLjÉ•"°ájæfFšx lxIò Rtì¨z¹hæÿ€t¶p/”wÐ{§ù¯ÿ«ö1~˜ÅÂV'Ý‘ðÖ²Ü)Aš3H3]_jÆ®¾pzer¢¦J?!Š6<ÄÚ 7Ë›™c¬3•¼¬±'‚¯Aõ¼äQƒ1·úF,U;<²N‡1#§ÔpJâ Ì!ĘŸk¼xíá]Ö¤ÂJ$»n.,­ü/-³Ðtƒ¹ò|ò$¯¼Û=lµEÍ ’K¾Ž¸äós³g<<&ì¨Ì©zgûʦ4¥ž…õ΋xȬ:[„ÜȯA/"fÍøÇ Ñ¹ZhÈðËÒ%øß ô妧°±2ûRQDć*(aR%2žkÊ!ûm&)}S Vb¿A§S#"Ä…¼ ¯I îù•xÚÐμÐê½P:6:9µ 'ÁÐâ*‡ 9iƒè2Ó%Ô©ûHð¬eøÎ×ç^JLr}y8'Íy¦’ÆÉA?2Ý<»E"à²w[$V 9&=Ò‰äCÉS9 &9åˆ9éÀ̦f'®zŸ¼"ã62†§%Í2Á=ÿÕ×T˜Ddd$Q˜\î2+²[ ¿_pxÁ'@*~³Ú¨ƒ¥Ð\Èø\•;4oèøFéú B½óÝS®ÊX+³c¿.çÜhˆ”àþ]DñNÐrëV¼Ô¢,pG,; »$äY f*RŒgNmÌèqöÑ[%MâÌñRûI'àëÑÕ™”¬hŠw)2â¤%¡‘Ÿ“‘£Î%C5.bÈÞ‚ts¥Èàô´,P ¶íÞJª¤Í#v¢ÚaªCÐBôƒ\€_ä(¶¨PPY[À ø`«Ï‡Xù³ÞPÕsBÒPžE¦f¬_©F8 ™œÖO–†íW`“QûœsÚѯͺú–¾|GŠ’Vw–I¦­3¹ÆwB;Ï1Ë,±¥kÁØÄ¶â’i…E¿f Jm¡=/(köóšwo§'8C‚FaåÌ€©¸?•\´Ž8¯Ü([Ã5\l“WZñÉmZÆbóœÈ¦Qæ½Ù›.LZ¶såÝù£ÒFÝÿ¤¢\OKLÝ83_RìpULެE²Þ©ÎÏóûoÈu Ø×åG™vG ‘µKF4š}ɈRkRuî®CRÓèm³PXÇ ²îiš;zÛÝ6´ƒîdÚ|€Ä9ž°°nïÎ'È&-/U¦u‘f/¨H‡„ºð:4<Ë]¨ˆúxtÉ­=-b³Ÿ”0 ~ ý’ ’ó÷‘—údÿ®-Á•б$-¢t¡VÓV©¦[êš§D¾KñÚŠeKÙ$ìW½™z¬ŒäA½!õâ$ƒáìÑFµñ®¦tXÐÑÀ^IЋGÙôäba;^.—wvG¿ÂX*ŒŽ§'@ÊSøW{‘¿H@üq ÇœD{/£ì,îC(ߟEl!/\%T&tùFêÂk´É"¯Ž‘Ñý¤-i7‰ËÕaÆ+R¤TñÀ:¿Œ]Ü/¶ ÷¨~7m‘G‚©‘bZ( ꯰–YømZ P lÈeK©‹]è†1Ô®7QKú\p]Bè¯;³®ˆ&…ù.iI›w€ãf´(‹åž5];Ît®¿/—fùí@[h_”øk©M% ~ ÓêL¥(Æ‹N¬îíúŒ«žï¢‚±×±ÄR‘jyE×7õŒPns×ñmïÑÛù+}"L%zô%R’Öæ$= ]lö±£nó}‚ ¥çÀ¹éTmfƒù¨I½Ø–©¯Ô‘[:è­ÅO¨ x7[™py?¡aË€1C¯)yÔ TMÃh7[RÈí&G¨GR2[©Nø†Â°Ÿ¸ñ)Ѽ ¥ÁºGßWK¤«Ø’„GLv:—ßͽ¿×a]¥IÑX~­kMeÓ|:Ñ~yÌwsç¥Àg¡Áìk Wý¯þšÖ~2ìÇÏÏt…ABÓ«C Êõä9WÈ=cÅÛéã„£OÑÏ Ö:a;0)ãÆAÓfø9'ÏöpT[èh˜_^¢]˜o¢p¼íå„àþ~pà¸$ö hæO <ÔO&™ NÄä6ŠS>±ãÝ›ÿJ?™OŠc·b¨YãWeJs )oñ'Àƒé“Çi¶Þú„6-ïé·ÄT¼Ô˜9õ®%Ž•bÿ\1‚Žk`I¹`gÔFܱ‹¥[H™»UÑ4ÿíÝzCͼvºâÚ;läÍr¬0i[ñøû0àŸ~‹“f©f^DvÚþ©›LçMø…i‡r}d”r·¨ª½èº`i}7LR½Œ›¦]ÂðN2 )¨–ʱ]«à2 ß©lbƒ¯uöÊñêSæ"Ù×AET—/v æbpFž¬¥Û‹ýì°_‹§¼£Æ€`Zèª!uˆ@a3m‰ž\§ x:ˆâL[žµŸ7gØÑ¦óö1ýHb’zÐÍlvOÁ›¶G–8“˜öc!ÖylÑÒæ•ÝÞ6mLÿÕxâÏgƒiuÚÁ'4õ±ß¬) K)s=\ÀÃ=Q Êþ{W#œ@¸¯Ïɾ°¿°ä)ÛEfª3Ô«¶Õy€ }/„·S¼%3ÅÇ×ÃÛ—CŸ}ýLØI{èBÆÑ½¡”éúC†+êSÜ’hÌ BÎF‰’ÍPŸB»1•û:ëAñ0T ÇÚÈ7r˸X¢œñ¦@9}œÕöfm»¼Vµv?Ö¹&¼c|¡²e)`3~÷êüÙebs*õ-JµŽb§‡ç­¾üý‹OÜhÝèŒb²y¯ÜZs¬¹`1ºµÙ;I»0‚£i¼B´b)2غ¨ÄciO:‰œßö®žw—€¨÷Ü7ïòdßÿˆOÏ-4±!¬¨MѾ^üü*žãþøáZô!öèÉ—W0iÔ]縦›*‹Ž^\KºbøU©¯ ªwG fºÛ=Šcš{âøFš±nÊ}º”²åD«íO:µZ»¦-bp´¥*C"‘ 4¬ƒ Í[ª$Y 0 ÊJÇè¥tëž*Ç‘ ÜÄŸ;AQÊ m•6k‰«ŽäW“T¬¶´\ÙwƒØhag΃{à°O£9ÔCVb61¼žÇŸÿOÇâP3«p'“ýË&üx(aQ³xDOÝg |¯[êÝÕ< ß­IŠî ß«ükù"òÚd4õ®f¼EÐg ¨æzD¶,mÿº8EnÆN­Š1Ã2i¶˜ZÜŸJaö&»kûÏô$|œ!ô—nJ•1¶DSTÁì¦Z|ÕF5C¶Ø ºz³_šÑH¹”E%ø€46‡àÄ!\9Ü·9(Ÿß Þéo–i9š•¿hIø™Nåh˜y—þL sßurØÓ÷Áùe¥C1­Þ Õêæ i›Vn–ÔÍ#0à®@Ú`E©v\¨x;þðuléÃqpEõhEêœc‹ýQþ 1°Ðk¤Q ÿ¤e»mô òùó+'¢¼åÌõÇ–ou÷i+C寕¨{€úZž/d¦Í€Òjz ´‹&tX#ﺼºœbn ¼4ÚÀðQoîAÒ“ƒN9‡'Mž§ôÃáî. ¡/ä@*p†ÃWƒ‡Â&9Àñãp  ü™ÆoRïÏàÊ…nTˆ5MÇV:tWƒÕBªŸIT»4Ò4deë*RÈèËt=•Tu8…„žÛl…?Tiû–FUb­x¥¡n×’vz¸ì±ßvý7þc¤šnÊût®è€,U±4uG32À×À¹æQâž„~æ|½†þ?ÈBPÊ})š¥í¢SHµ 9îŽ5 `­n1+¢«’/±Ê½ÆCC7¹ç†}}·JÓ› @BÖÕpHñú^ñUj|ѧilf˜ÅÓ$i(,áùÇo¡¬­+Æ¡q¦8.äÛy‡rø.óžyAÂlŸ‚­ýl“ùÞ˜9¸ê 9A›ËjÚGþDãÁ«… 0ÛAöÊE~ÙXŸ*C p5)åL¿RÕ•ÏÑA(b¬ •&2ïÞÝ9)@™FÈ\Í|§žv˜¦ÙEþ®Š‚`yÖŸ0™IïûʉïßÙœÿÒ!Ûóúlo(ê…“(˜Ã=7!PµgþÈHŠwš|ëU÷%eÔý4¿«ÒÊþô|P8­µ=ÒÆ7j^ÕmÒevŸùÌ婃™\×+3j™xBq_¬Ðx_j~‹…ªÆýœðUYìsq nRjö¤ {[$¤z7­E솾*tá*rÚRˆÄÄ%–¶Z懣ˆž"[•9ŸZuó‡ w­úË+§Z¥O×l^eÝ ôžIžÛèÍXð±?­Ð­„^zßÓÂ6Ñ¤ÛæhÄz¬a°!tXQµiÕˆ×ØÚæðið¥•/k‘£W8½ðn/¦¯D‚¸ž÷ßL …4Eü#ÓÃ#ýô°Jûq››RYÄ(«ÈÔ6ñ.òSñÒè8V1XbòŸŽ+=Þ T îð«ºsíé¬)”— °Ú0y2Ù³¯úÔIþìJž_ðMSÊY$fú f,œA,iƒQ³ÝSü}§†(O>"ØÁ‹°@\ª m¾Wç8Ø[b¦½²Q—@Š‘–BljŶ•-°qá(ÁŒ¬w¯F}m Y‚Ñæ¯Í{Ú“¶¢³MÊ ÒØ'Kq[d™6Qæd,¶¡ÕL~¸äéS ¦…ƒ½¸ŠQ6·ÈÞ.:Þ<‹Dè%k =Ms~ÒÅÜ‘‘- _°¨Îë9ß,­-Ô2šÖ(cï€L&²§T¦ ·×N±6Phìç-y’Ü{Ä 2 p<öi¦ìœ°ÓOæ}\ ¥§švúÓÒ"—¯w¼YÝ_[\7raŒ®v›Ìc„kbÐÄÉ2jì&Ù›"²„äôÍ{gÞxç=ìêÌvÕ5ÖenS…".c±"ÕÙL'Èž›Î•Âa‰pî ƒ[½±êŽý@‹bõC°å GX\¬Ïhí,GߨY&Ô.§¾AG²P¤Ã´@T‚îO„˦àÜOIˆx KëÕÚ¾[ᢃZü~Ž*Á4ðzûa$Ðh0¯¢õ×ê´\Í×Côã$epB´5}¨޲°sŠ9hËü?(¥(æë!Uò@láÁ³ò˜?ÔÁ«ƒçÅBîû¤Á¶:¡ã'ï§Úñ~Öéì;„Œ;h¦5¹A¤I4Ëêô¸Õ@0Ù}ƒà.Þ[Êû‹©´Y¦šBKx·(Sx¼ o‘–Þû¹0À&Äî?‘o˜óºs‘ý%*Jˆ’¤g ÎøÛçÙ‚úº8à[)W$¿ó”4ã÷XÕñÚÇgjŒ cØÛNÔÐ‡á æ¦¢ÂÔskˆœ’ÙðÔÕKŠ—µxŒ/ŸÛ¬¥š÷/°%‹J:Ç™pó•Qߌ˅èc~Ñ'®'kL‡¼úíÐÂ¥õ°L“ÔéQ¿¢ËyÀ{NrïÞëá–c ~3¢Š{×Ëç+0¹òI—šMýܤ]W[T¼/ ¡ ûZ¤aÚÖ»à™±Tаm(” ~?¬æ¬Rx§ªst.f'´Ã@ï9,ø’Iã`óÛl±aŒS2°ƒþú@ÐbÍ[˜ ‰â†’åðùD\ÝŠWo€E'¾¾È¥«êd‰¾ò31Ê|ÜÐ&u;x0 ógö½çŽf<ƽ-uï—1Þ{ ®„[~ÇÁŸóª0˜gZ‰¶Ð¶ýSÁë÷ºN€=„6R4¿ìXٛĶ‹ÿ’ _’ýˆ²b‰£$ˆS‚H{iŸ‚E{Ï)܉æ2¦Þ Ø~5¥öÞzSïöh`IžQÜáTÎk “†>ù·þØ|ŽÛ{±læí1arj©¹›Œ|)«=‰ñD‹¾¿„w3Øï6À×ÄÑ}W¹†cyµ€R¤;cÅ·kÁºdõb°Ó¡ÒŽþ÷Àf©fÀ„?…ŽÈ£À¥Äfa øc» D‚Vëå…Uk3Ä<à†£´þ×Ñ_¥¤ A›KóÑ_lr×Ùˆò…©f+Ýùï03-¸gÝòé& t°Ìe·úŸvê§]©›7? žîº³›ö•}¥D¬)õfc.'#èGëX¦bwÝÃ~©òªC:€|=$o¨Y>™ÞººyÚ~ rW×yý7öª]F¢#ݲÆ9 0­ˆRDyÅ·›+ã×±w ½B9ø$”ðOÑ®B˜RÖ²qÕ„ ’Š=ùÝ ¤œË~‰mç&çA(~=¡ÞÁI…—£ñÎä×WcÇÍ@#æÒpeÏ€þ¯Ù×Û\j%ìŠP†1\5BºIq²Ð¸×]†5éæøí‡ ó?ÀšíÎ3 ˜r’†šŽ¯^¤bœ|éÇ´ó€\¾¨"²C= ©))þÿ´ƒDc]A<à:È‹°ˆ”ûì–‡É~d¥7äZé.úã’‘öB|Ö[ÖYræyÔÉ Ñ‚Åë”(ŸâßÒ6RŠ!_›ö¨%-5ñî¬`„òzöÀžlAäœõ†£iö%Tû60|;bÕD²×[—õŽÍzÉcºL.è% Ë…Ôvé ©ÒK‰ˆVXmûQ^®MòÖPïzf©I—\o—QJᲨ`jã¹ÇhL˜ry$­çl/p—ŸÆg”z¬}à1³"sÈÆÀñå•fþ™§yÌ.ù ´/ ]pxCONúRd¨_¶§½B癡Ä^_½˜:h$ð’ Œéã½l(ž%Ã,Äî/ÿ¯µê]±Uo]uò¸Ëtæ×ÌzéËA¬„¶á‚¢„€+9d´\'§¯q_ò‘gÏ‚›XÍÜ[¦ö+#Ái_w/7‹U¡s{õRâ^úrtÆwÅãè/òÜf„èÿ¡0{§äøl.d7—)I;L)y78ütíb×%‚Ž$‰eÈ„ËK=FIÏgÅ—ùðv›ð©«á Á¢ñÕ+3:@€›Êªy±Ï§ò¯«šO«A^ùY&2&GÍ™0R¬µâT˜™ì.Ò=èw]Qd| ©nª¿S“UÆR Š!¬ yÀ™’kº OPfoZ2ùGEE1©¡÷ìV…f·³íôK?¿=wàf›%ܸáþ¼/öìʼ¤……Ñïa6!½):_#ÓLN›gz>.Ø)+R°²)wáû¹yo¿qò/Þ9­ŽSÓƒ¦œç.φÛ,:a—2>Æ]Ú ü¬Ä'õP4—dd%€Åû›=¾ï;5™ƒ®øc°ÀœÿÚ5ªH5v:Qíi0ý5Ü3k8Ò©–¤µÙ\[°”ãFµü|“h'³Þ!@Œ’†•]3;½É¨»ÙÃq<&¶ÚãÚ’æS¬ÉF¾!ˆ˜àÉOuØ: q¹d,=¨Â }ð+¢O&ƒ÷1¿$÷qx•„Ö:p¶ÎÛQãñø'1iâ*¾ ¿?€Õçp5[¤ÆÝÑWdúóómh ˆ¡…t;[gQ'&ì”P8m^ñ¾µš\BÑ$‘zðzÉî‰20´ˆüpífì’«Ê‘)ÀýJÏ(ƒ_á0D«Ÿ&.:o4€1­6bÞTéjË êî=ø®sΠ7ç¤.‹{÷Ü…>†x»@ÏbÈÑôµ[Ì9êÒªmžVn çü w¿™Y…°ÃìË!S Ö„ÔAw7ÈýP%„Ñ O\T¸c´7íå¼BålV¢Ë—æÉþ¯‰‘Oî·,ägðÅ–)Žìº`ÅK›¦“.WhÒ FÆñôJhf©š1ü<Ò˜\Üô‚0"Ùö{vEá%»÷TˆÖ£¥Ë'Óé`%GZ] Z­¬ ¨XB.}fdž²•l@܇~¯K¸<*©Û¢¦ ‚Anòý>AJTš¨B £¾ŸCŸêËååüÙV&o_/Ùšîh‚ݤ³ì7P‚{°™Å(lH„Å|ìà«®{¤—é>ëæÁt%Ãëb$ Ý{4>ë‹0“,_s°L³’ “Óà‘^OÎ:^0ƒù9¼”sYx8Üÿ†­ü<†âžÏ‡úafYe\~HÞÂ… Ë ¿=ӸݢBÖ`ïuÞʲ[;êÁé¨\V*çá:^³¸9Vû&~uµ[÷DætGªc aŽÛ“ðVç\Àèò¶„\sþ½ëgðc÷‚ E$@¨ýب[âõ-u üø«À<ô¬WÝ0LœÇë ö#ü?ÂéXFú¾g:‘¤Vчš7¼+Ž÷°n=’Ï#ž‡_"Ø7ÝG‚èŽ:yüs &Öt¤öóÒ,(ãHýŸ3KÇž]˜íÅßm¥ÝQ=;Ðÿ"í¸°dÇ¥xêÕCð?íø$XI[P;]®·u†w‹òÔäCÞl¼ÒÔF8Ý|„{ßÁòTLnÀÎy EöèÙot‚2V< Î5 ÄCŽÓt©–YPÕz9…qnCœib†|ñA-ÇbEúºóÂ1EÕoÝ©7¹ÜZåÐnK"=ã5•@KªÌü˜]29õªoùwŽssê…5ÑBêh“ ‘žö–æ ’4í,¤gìæÓÙ ?¢±Sà•øÝ[ùÏw{qV‡ôbzÃR`ç•KÑ ð±28'\dâuñ0 ¢Š;„÷ëV¤üÏ…uiÒîþÔ óÜ#ßHtqNÀ~¢ŸKJxÍbd0Ô–çr±4VVg?Æe#¬ Û|î( ÌÄ +Ö´Ó Þþ¬·Ai¿Ì³± /­,&ãÐY¤HÀìK5C}˜ÌK [yð#ô,sÅ¥ç[$úýæ„§{„1Óáÿj#šq‚Ó$`C 7ŠQ“‰«“ʇ"4YB^,fß›C)õÃ]Üåû_)ñ½kè N'ÓÑõ4AŽ˜ù3iÉ—ö‰¬ÜpLío°(|s 1ù¯JfOåÖ™È"™Jdæ/{8œí7]¯»å@f$ËZ+ÌV”œôÖ&ªD} UÇÓñžeб×aQ¯Ve°óG‚8÷t%mëc³¾¿û”`%¢)¬Þ•§¨Ðòk‚3o?VnC¬ò‹—Rvm€ç{pˆ¯ ¬wØ®å‡ Œ8„ÔãÃ.T…§drÅl3´)|P¢‘E+eax±‡—ì¨;»¡„ªSù„;ïpMõ ÃŽ å,'ª‹ˆCJëNpt(’6ÀùŽ*y¿íÂ%àûÛJ‡=ø»ïð¶!•ñV¨ßGŠQM““úpih·íWÝÜVNàžÂf?‹)ÃúÒ3p=péÌ_Ñ¢ª×7<J3œÐ7Ê{Ε‡ßÊ‹lp|]6NCVÔ ê}Õñ¢(IÉ<·H¹Ü¹‚—øxtަ&ÉÝf‚ÑVÑHj«Ð'œÓY+”}ƒ„QPr‹¿)ý-1Ôâ©•x;– Éhû&|Yl›AùOl£àߨ“ ÷By]§RËÔnôtÁsb=“ýé-Í×Ú¶]›qMSÝÙG3~ãªz12í¶êûprÝøJ@|åSüöÇo5wL—ºRû•ÿÓ2¢ÛØÕƒìxbä9hr(cÙÞ„›7ÈJ}]”›Š`îµ—aÔ€o,!búgý-Ek\¯^z,ôª‰ÿÛ³ú·ºÌaP´6l–ô˜X6 ·–’¡uÖpØ`yæ ÅÕõ†¡‚í^ÔÚJábŸ~|-ÿßÌ€w­Ò­(¶É…~‚àwÍCVÏ„¹—®UÙS®˜B°ªì}|N¤êóþÜMA6žéBmqK¨"}Ôïµ::È…âˆ[vý}¡Z³­*ý—e^ÇH™·xÑ u—ÇÊçæqMSа.œËP1Øæ]r`P[µˆ·ÝF›,f©«+“’L$îsþWç¼Iy;”ûcš“WІ4fÅæÝüÁ”ÒQ;ŠÔ ‡Ý®ç$Ý|?™ô׸^˜½ô0B²xeš%›Š´§`ÚtO$³¨S™ 'ÃIkéXÚ–­¿æš, êsRß„ F³9b´ÍEŽýÔØ"ƒ,°k ×7Q{paUÔ$zý´A”ÒxùuP>Dj r‚Üå‘?·qmª”'Ö Î½ïóˆeøËùùËÕò B®¾_3>¼4¶E«ùaÆsãq;St ù•{”® ‘žZ]Ú ­ÀïÊ2ã›Ö°W¥ß:PK5ÑQ½[S[½Ð` a´RÖõÛ·—O£]ƒË®ï‰n¦u©NOè…È7”"p.]û&Õjq']˜®Ì”V¦]x¨0äYBŸ3aÀ Å(é? •‚O¼éöps^޳™þ¦€³è-϶ñµ4¼~Åÿ‡ê,9»‰4ñ³H€5H ÈeH­ðȉFÎ wh¹‰fÈ9Sj4)ÅvO¾ˆ¦d%õhÀ–Hˆ1¨[6$stIôðŽ_íi`c÷5ワ°Œ\¿h!/H”Y·wEÃï§ÒeÎ ºLdäîK‡±€8µPJێίåŒÙ«®XŽFMWOŸ"–¹²‰ß7oI÷Î R'G?Ïx¸Ç|HÌØ1b½"b7¢Êqo¯‡4;(»f_¢z‡GÁWÉœ Ug¦è$µêœ#ƒExâ3.ºô”a¥©¼· B hhóå‘þ©å œD+F®ÖjTò»™GétïµÜóGƒ1ºç”Ýþ?Û;©pmnõ¯¯¸–²¾R$¥bÐ䑪ç6dèÐib*g!hߟîóA«A£PWP6ï Ð]?ÊRà;Ì¡i¹8âè¸}ôg J7ºGÜ)Éœí¼&[áÖOäžmŸø-ËyJh™+­E¤½Oµ"ýe>½j6ôfJ=éCî_!/ôÔ¾Ç:`‹ÏT1ØŠQ@¡Ñã=éêO*Џœû#€7ž|£ÌäX~'!£—v›DçJøv%Ýr”dúb˜—á.y{L0½e(PÂ,×Pù,9޵ì]S}B„V8±´¥MŒä¹a8ySû,áA‡.oì«î¤Ä§¤[úÊŽ0 €†˜Älùm¯’èÊ®ñù9&ÊE±ùŽÊ33 { Xg¿‹‰r\¯°nÂ|B’ûvs®XŽ˜a7çKv‹´Žg£‚¹Hß„®6V‚£8?.dÍÕ( ¸sj”ê)@û¢\PyÆêÀß :WÉeÄ¢¸.i޼Òcçc÷aÆ_T_ Ý{ôD€IziÙ‰gûO+ÄVnWŒZø±m0ø(aŧ£Rh"f›÷¿WvßtulY¸šÔÁ’dù¾Œë´Eñç…JÃ2_ =h‚Jô¤Zz8¤Ñ`0aÌŽ‘|¹$¢ eZF¹/ûõñß[·}ÓTX¶„ËøUæÄ‚Ú44«ß!SŒÁ.vƒÕDÛ (C%kÑ¥Û²<ø‰PéŸ Þ!¦XzsFˆÉ²¤õ¿&Þ”Ú2S‰‘nìiÇÂAhÓAW7æ¡pñ”˜¼¨ÃÖ—;ÁÆm Ü($‘ÊóÚJVjçdÍnt}÷Øz%üº ¼a{þ¿I˜S}®SûpÁ&Îuè8Ðã´ò“†Þ.kàªöÇ#MÛ 2ÉäÝÑÖÈGŽ¢m±+\½.\s½Õ»Ç……ñ7Žk@]~@YCù©ãôŠý¶™Ú‹:iãï0åÊ<ÆW2¯ÍU• L‚ ¢éVŒ‰ƒ^¼¦Æ¸¥ù#Dµ}ÆßØaPóÜp3I·Nü@2ûdA?ÊQ*.^ 2á‘'LÈÐæÆ" hG‘“\7fÙ±ü×paÉ{>²ÿKý«Rð±$qÓNC5hÌ'j *w–²ß~žXÌŸWƒ½>‘2l@(„ ²b©sªû+Ü:×DU‚ 0¢éâ£{ñ¦ý&E1±«—PhHµbßõŠàŸ$uãY#»²Nʶ<]Y$öu»7±Ceûœ äÍ_—µÚéU´ïúiù&Y~\äQÀ¼ÿ=a¨ „câ«VǨeû¢:2QX7ô¬‚À8ZìW}êׂùoPÏ{8´å¨Ž 7áê÷¤RnŸþëò¨Ér³¾'Ÿe&°C¶Ì‰.ŽU*¤Ê?„uþÅ‹ÑG 7—ßRÖ1€ý|¤£çiȼ'/úlëY#¸ËYÛɆ{6ðf¼í·sa^¾ø[œõÔËÿÐÐYeGµàs› „¨Ï ,3qB*Õò„&aÄHˆ!7Ïõj~¸]>`Ö«”bKì$\P©÷Æ×iH£­»ß…¿ƒ@KÏ'cG¥‰,ô¡Ù—; ¡–·µÂ,ƒ<U\:ÇÖxb³iÍ¡³´r•{/€Bå=f‚&óÐzÌñþÉ#vÎGb’;÷ Ñ]¢{o*{€ÇŸ~Øj³S ±ù]Ô³ër>¶0p4â! ( ¹ÎÀÈêLõ¦è¥æÄ+bý”FO¹ä} :ZSC+xÿ*ö4в?|‹GåñO>cÍözšLaœèE*p-òÚá‡йblt0n°´÷LDÈk]Ý/W©¥©æxpé B¢D2ÓÐ u2¤óYM™-3Qþð¹6rCW™3Hò*\{ï[ƨÍaº›ì;¦ åz>¸¹RÏhÆmQ÷”g ]j W{Uek왢yDßf Ù“$‹±¨ÃØßç×üA`p¤ºÅUkYa¨3k·8L F6x ä Ÿ5n?¹_6Xµb’l|MÀÂÄ<Ë3 ÖAÀóùêÝï»*îŽHo(<£¿4¾—ü¢vL¼„Í­$·„@"`Ý%„rõÍ–»¨+<Á1¦J`$”ÇÄàojá fD.Ž`Q™9Ûï>dj¾ ¼èA/½ŽÍЙ`‰å[d–£K9ã@‚I(è¯=÷²ó·]¤D#y-ìbìÜNŸ»·÷0ÛVt)<âïË6ȭȘõ¢­fÒª"çôèW'?YͰÕû$Üp³þBû‘ú¬àlA'5Y{ú¸¼âÔn&mÀð®l¶ƒn²Æ+£ADÿr!\Tw1erN“ÁGÀ1 ƒa ùºöt^Ó&û^Q9ŠF›í¸Þ8­èQ;uFÖIBó5ÅZ2º†M·o!Äó/¬£bgÕ,KKXÞ ¡; å{j¿oÕ ökˆŸø¾*AìœÈ:Ÿdû®ÌòfdÖU_(y5_¤ÁíÐÎ"¡¸”^ól·>cë*tš~žJÿSžŽ×o¶&¨j*AäüÉz={6¡Û'‰™\¦3îRVô÷ŸPŽÆ˜ñ)¡íëV}žÔˆÞ1Pá;§Š}QóiŸ¼ÙÛêƒ?$2ƒ¤Lüè÷±1ª¾…BÅ칤¿Ë|A…9s["èþ„´®!•–U¹\ÌG‹Ý;†;?ŽV;?e{ª•èäR¾JuÏo4øã-_Dýk§aWÏ”üÇFidÒÊ»”ƒ$¿.´€hù®÷ ô½YÛÊ@æ®DöÜn²€Ÿ@A9ºÖk8äÓ€PO•΃Q–èH›)¢éßu¥™@ý¾߸˓Ÿ#ÚÙÏoƒü­·§ÈT×T˜U••5XØD`¬íÊ“é“üàÙã‚á™õÙKu”‡»¾¦$nlö s™ïJTÒîNœPOd·0{•-EtšËÔº ,¦<&Î[]”cŠÅþ_³wò…DR0c¹e•ýÄ Ž8Xa¡\†)Ìï°¤™[ç\Ü1 2ª˜[ëš²˜º$ Ä¨d­…7ba•zÛ~ã~[m¬ÜÁÞt®å•XþÌgN³_{^Æ%ý]$ÐØ&fò.Žp™ÿì„GbBXƒ r{ ²È/ÕÜ·Ì¥ˆw„/Ò‡UL2•²3ËN°œÇŒ­´lÆò. OÔ•P aï`øJi­‹Áž'vI¹"]\Lì˜e‹ŒÆ`©ž'Ò²XÕÔ4O­Ó†Á8“”…@~©‘þåýwU„¾ºeV‹…œp—âU±Ñyìy±´˜ˆL/°Ço™ÿhÿG@8±•¾/Å –ê݈Ñ/ŒFW5“ #ËåvqÇ›ö¼ºiHÿeZŽÊþ±<ìá,þó)l=sœæÈx®}··áÞÝ}ló?P`àªjuèiŠÕa« ÜJ/õ5ùѨ«`’yÁFQ¡ä©G;÷ï'õMš~µ"Çàã ’Ôáõ¿·‡ÑÝÂ'Ub½ Ï7_ˆÌªÖ‹niåqJœ¡|ì æ‹5—ƒV ¢Õ™lûçËlm‰Ëê·‚Ïôê•:ß#ÊJ·G—aoà,Mr Í:ÎÍÓkZ’—PÂáb¶&ýZM—Ï0†ÁÌÍ&j³@˜y™O¸×H%r¹î" ú$ë–ãOÿ Ç÷W"Ú†ab™…O¿þÌï÷\'JzÝóâ­pcËwÑ¿Kñ²ÐØIX›Ÿ?Úóäç¿)œ†.S#°,[~Z¸]£ZJ¹<·vç“Äݤ‹Ê›#ôðâ¦@òÚýJ…ðé7˵Ÿ…¥Îdi¨ÏçÇ'=SË‚Zß~‚ýš-&P‘BD¨ÂeL–óLú±„^0¤ŽÃ$BŸxîÍwÓh0sÇGm/´@Ôba£Sp[g} ŽóR¨ÙL QFUÕÅQà_å=¤òu|"ou‡ê±Á\#ÁÜ•â·øoªlµfZ0àx[㈛š3‰#™ƒofÐ]ÔÿMÅà AëH§¤'Ö.øuçwÓ2‚J”² Õ!·VO}q2tƒmêè8 =íÍ¿ûÁ<< àbQo' <bŒÂÀ|Èò¬Ë¯ñE”æë¸À€µEZª_Y.K*¤Þ½Î7tÞHÅ~iW%K~¾˜nÙï»;f»5ŒîÙÞÎŽ·1ðÜD;­óo¯\F{ƈ’ý[àp3Ÿéôt}``h¾å òö)h;aRƒì'ôíÆÏé$T™Ù@8à=Ür«’Æ‹“@³|Pãw°± .¦‚˜^[ ƒej‹Ù´‹ ”ÛAƒ9c? o,B]ßÈýÓWS‡›ê1{jDÑk'%*Ð(¢Â¡ ¼: 1–Ò¯1AˆWÖZ­}ŒêªJÙÅsÅ7ð}㥛·øSmÝ×ɵð^‘ý3™ªáKô–µƒNëûç)ÄcÛ«ÿ=æbÉ|’­ú„][´z&óFö§µ?¿µ&؉ĸms€ñ=¥ñùôåßP>"ùeäëÑ5òR iô0 Ó¹“pîïbR·®>žP=q·Ì¹º¸À½é ”–Ê­júŒ'<¡ÇRaäÙë2G#ß<'ƹc±šo4c­“z=0ñRE¼¥¡y-·‰Ñu_rQ¯)‡c• ´Õ±h²V ug)½©zã¼Ë’ä±Pnžn㘊øÅ¶G&­ŽU! ­~£ºäŒ±5Z@[Ü/T ¬Ë1Õjs3"áˆW"RXc’ÉQ TH¨ˆG=v¼èy'è?xT÷ÔþˆrŽj…;=wy¿ÖÖ¤† %òª¸_Ì¢ Áà, [Ä´ôåK:ù˜@ÏÔÎGÊ‹Q·"³Ž§bì\1#d§W1 •ôÏØŸÕ~çEª èT7?ì!9œuñás×ZœÎ]át^€ ÊŸ Ø5Zp¡Ä|™áX·ù²ñ&û¯[ÒB,‹M”žà !{’¶Ák“»q &1‚EÀŽÃß4{ã’‚il7Ð^Awt‚JkZ¤U.¹ošLüyw9ñ@uƒL‹šD(2£¤ûôØþ¸”hS‘(®P‘Óy¹ƒI†I°íX*Ýí¢p9Ö#®y£ñ/˜^«#Š7¯úÂ:3…Kû¹„A¬˜è¿¾½Zý*p5±äL!ƒ<«Ißî}„þã7±ãØÇHÖXú‹]XQZm­.¯0¼7…V¡mÑ% è-¢¹ØZµx¢Ö—ú„ý…Ó®í±<~仌¶ Zí ׇè[`«Eúž†0ÆSø¦µ«‰§læ;¡{_Ø–GV5V&DßCÇuÅJæDãwó_IsùVœàç*Œ?ÜÖ®ø*ÂF ÔìcÜJœ l!Ò¤¨­žKÍUk§]qÝ`»q›”u¿VCÉÊ[äÎ^é?R¼óúÑ&íZ$»_ÊgÑâê|ÐV;؇“¨·È£Åg!uô)¢DÅ?ùrÊ!úåª`@úÍUM(ÿ{cuˆÒZz!W'Í›*Ï Ü'w🅦•ÓÀ—õ‘S›(bÕËÍZèãÍíèè¿¢€Xg†» 3æ§Œ é©ÒÚò]·3Ž«žw€×*Å Ë·ƒ0Ìw7—_#ñ] žÛ›@ºröm.mÌ«£W„ R|@Ú‘—:I…ʵý´(¯#ÇÔ‰òñònç9úîR…Ðxë ߸ŒŒEq¬kk/t«…ëI„Í%àÿ({”ྷEùõ"«—K2"h† °ËòÄ”åýØ×*iã¿È—Ò”/ü÷o¢¦œ6ï*¦îõ!H}±EË\Îî{á0ŠZ­[vÞ…t 1± ‹iƳ§šO2%L Ë"ÁõE4&ŸÝçféÊ@RÁžµÃ3s¦Hƒ_û¹*¸ð2!z\çý êfy-1ß}ŠþOêþg¨ôø+€îRc¾¶h—³ó¦ì‚ èÈ3Aú¥´˜v@ Á¥ÌßÀšu6€X߃_Õ]Àé‚[¯À»¸½@T2R—ÙãÕ[wXKP6!ŤO™;¨`ܲíŒÇ!!Ì=:FЀ™fæÊCñÑO·€+3ÐèœÔû€)÷Q™`tæ“£(Úœ.šá¶Å? Ëšn~±õ` £âèW„ÑwºÖì V\rvKq\ˆØ€Ù®Ù>xX®,„¿RñÈEy…j¸Ù†ílzÙø÷Õ9 ÞàÀg0ɉœgZÅö™?eŒ6RY0?‹ÈmS‰ãA…¢ômé­þô׌€×ÝiKã¿ÍëÐà)ÙíTU=JnÛ$F_à”G¥yÅû E™«ðФd(‘m$ ¯Jfb%nt¿îB"²××dí+ô:Q+õ÷—Jtw=Ý¥9~‚÷p¾–pöΊ4÷IÒ¯” C[Í 6L½`/Ãè׸}—œ¸ÜƒžaæTçÙŸ¡ïð"­[üŸÊÞÀ®8%x†Õ<æøUú¬¡è„Y´±s‰wê ˆDnìáRj3G>µ’n§aø›ñËw¨ ›\C‡úAY1‹x~C‰æ›kS™‹”Ú§kš+öpÀ×  ]C\÷4ˆŸL|:fÏ5gÑ=/ðúu ⳉ#ìNJK;É%Ô:tå¬ïgx‡ÄÁ˜”nø u–ûÀÄÃÏ6ñfóœm³†—•Ëiá»sâ»ÑI­ç§\>Ä R»òïQE¬Ë‘“ÿ͟ݯ ¿|.Ì=ÞÈw{öÝ—Ò±jAcW-™6‡¥#j²Xï8Ö†ãMº²N„Ó"å…º+¶ e~ú%¡C{›#¨¤Ÿ¡ÛøF•áHšNš[+€ˆ¤‡4ÇßyPüÄ–¸ôZƒqiÄ.F÷¯8ãr‰+=TÓD™äø®©9p¾—ª%äMÙAt´£5g¤Ø]špSÈë§ îõGyI‚ê‰H –Çöû†õÃ)ÇÅÅï š²M¢ªCÆ-Sœ‘¬ü€Š—ø£‚ŠBǺ?÷ -ó«´2¤!&øyÒU~|s ¹*o —ݙْ/\ s £÷Îx»Ôq—î>•…‚¥ld@8pI6°¨3õüøÔå;Ý~ÿ„õIÂ&¯ ¼ŸN}{«Sqec& Mø’”³µo_.„™Û}I®”îyÞ 8€ñõNŽ‹#Ê€ºÃÞÚÛh¬Hø%μç¶(>­Ëk§˜É£¸í ŒØÄR—Ѭ<`XHðß(ÍÆvÔî°sà•`n ³4‡Êà n…`Ø| ™QAØì>£5Ú[ŽÕ°2öRˆõ/0QØþ›Q7ã‚J Å@`ÙõYÚ1P A¬ì¤BWþ”…otÐ:nr£¤jJ#ô0daP~³WáæŽ0žáLÚ¶ã"L+Æ"]¦¾ï$ñLJTÉjÛåõ )ÓhüƒfwBÚÿÓ(³Cw-]Gµ%2Ý61ìóÐÐ>³˜v{fôX{\–;ÒèK•–5ŸEÈiÃIJ'M$€±2qÚ’{bsöÛ¬½qyè D +svW£¦3 Öƒ‰ËîW¡ïö=aþù=ðSªVæSÈ%í¥íJøÚ¤ÄÛ˜ßöÔ&æ¨gµ‘`[]²Yü÷ád;«Lm¯T!ï]ç{S)ß]¢Nµg®ëžgLC'æürÖ]¤ÒN%F&Hmᔽ> Ã:ç±}±Öþ¿!¾ä©K»d.œsnŽ›$n8…“ß°Š/ŸêÊv(—J—9(ð¢°hj·Â}–¼¦¢M?¥BŒ8ºMiˆy-AàjWh÷€ -„Ôï•~ÎK<8DÍ(!M„ª óVÈ*0QíÕÒþ”€p®÷u^·‘+ÁÈÕõ° xëbÎĽ1¢›Jü9•änºŠ'qÇÜ×[Ù_Iâ ¬˜B¡f4ç°Ö>6Œ¯:ÀÅ*>m'ux™bÁÕÓê:Ï}]A óÝÃþL<,…“œ qª‹‹4\ö•Að„a®8jÅn™qJÀö "cݽIhÒ’Œ¬kÑ(æxGCœK£N`JXâ—%‘ Ùп»èyÐ Š‡Ë€á¢UT}>´q⤤-å¤×åRµœÊúôì¬NÑ"uzóû²8 ¦¢<'8ÒɈ­÷&ø6M I%~¬À¾ÄÑÛÁ h²‚íJÄ`Í{så/ÔàLNu“hžI£'­ÊŠŠ'ëӲͧpMq¿ÙÌ:,f”â ºáðvÕs\Íš"ÑÛ|t1>»÷¾µxÊÞë²/ÝÊÿq¦\ë–.2Tƒ Âí^sHÀÑ Inrå¿VML©>–Tùk±nÎÅ(ÚWƒÉA̺Öüߦa¹Ï O¡ª„sÐWɆSL@ç+ŸÕø 2íE£Àñ˜Àóò ¤*UŠ‘N.ãŸF2ç…íIü#»q Ìüº¾í„9^ú‰ Ô¹¶„èPl:)˜€†RV£@=Þ2¥–å*† ˜n`{RŽt Ͼ3šUêN›Šº+ÂÞÛÿ \äu¿Ã‘W'-I<|ÖæÒ:ßГàEe;$ƒØî”µþ¿e³6iJ{Ëóš¡AèÿžoZf…ÝóH_ NªZŽ<.r ¹sh¼ ¤¢º ©¶žÙ©!ÎêK=q#£,meœ©p Å8Œù3ù¿È6bÇJöFrï­ZÊ–ï®'2€Ö@ÍÏÌ‘0ÌwÇÓdIþ9>œ¼â‡`ŠõÿgW }@1u~Ól¨ƒIóRf+úËc\m›PžitÍì? ]žc‰Eg[›%žDbówõÊúŒ0ñÛy\Ðmê«ÙS«tl¸‘õ)n+ Ц¦=[Uõl¡‘nÿkßK2%þLî!ɵ݉w¦ ¸ Ÿèï‡~ò½Ùsæaa è!ýk¯±BÇß, OPüj‘ºÜ„}¿’¦õ­ÕOHw™c†”/ù¾1²„rª[‡´[Š1@É}wºcâth”¡tKb">3ÄÉ,4.´A­‹ƒ/;ö]˜ˆ–Žü1á3Ç&‹™­.#nA‡ÇÔ™¦+4¯›ß7Å*å°åí5pWìü—’4†mO³*D«°]Œ-¼âGf ‚Ññ å“n';-N§²]Uluj3<ò§ïlB‘”§¢þ,y1ZoñZxùÊ‚ZÝ”õ€VrRêurZ_êeËÎxÝ-Šdò´\Aìqi¿£&‘ Ð+‹E@û׸$ùÕG6íÿà™·Ì6ÑáI«ñ‹@ÖÉAdWœb¿¹–r›”¨µ³ÕQo]B“wÙäìÏŠþñ¢…ðÿg@hý´·ª`¹n—o©%øñþÒN„í¦õKû¨*hPoÒ“»•b˜8®>›«Gš?§l+s»ž£Àϸ¥Ü:c½Kà£U©›°Ð.|µ¬îV"¼¹~Þ‚9“Z9 P×ê—9‰þ;œn…rZäáe%E§ÿ”þ•D•q*0,@$ÜP*X‘‰¡ ú-\Tö…Rô5€-0ýŒ4AѤ íΜSê¾Q«*<7Ö(,ª¯/5©¥ùíLŽ¿ÕÀtÝÚïüÿêÔ¹Ÿ…Žl×nK¬•§ø§WŽ«4-–¸¥A„`^ëõVª¿ùc<ýª×OAᱦÅöá‰Z'$üA]´œÙ©1z¼xþ[uIù_¸Zòq•ç3'?³fxß~O¬ûߟÙ Š´˜FØ@B"ØŸÇ]ìéD¾uúÙWÍëº.¿Jóq¢“Š;{m3÷Н¥s¿ï9~¿·2Só´éät‹ÌVfYÀU*%㛵 ˜Ï»õËœzôÿ˜ûßsÛæiB†³@$Ä(î­jûdoTÎÇùØÎé·ÓÕ´XQ® »FÚoBRÓ÷£ŠgšHv?ˤºHi…ŒGª­8gߺ¡C93 aO’Ì.£:{aÄné˜ßÂ&›¦ó¿ÚÍ¿íñ 0ÃÃ>NÈ=}ý‰ËŸ2g²ú‡Õk50®$׋SHPâÈQ±߼={º’–ô ¬i„HòoÙãž;¡˜ý'¼(¨´Mè|Ãoa§Ì™XÒgmÆLÊ-RxR o÷aˆÔ^æëÊfæ :aTLæ‰\qá‘<›Ég: nàÖì*=MRØ& ‚·Wj“ zõâmS*¯G'ó袠L#˜%'è  OPã¨üBj˜oT·0(9èaOsù•_ÓN©«ùÑ·]’@„„îA·H:ê1¿1l!ihÚ [ZŸ*ôÖÔãD‹B]!ÏÿžÓí~ޱC™<×îmrmå¼ö?Õûû)ÐzkÚUÂxÇ=¬¥sj‘)G*ðc4ÚáÃ…è‰ì]G£)é’ðšcE„¿4_»«Ã•.æÞ¤¯©ø˜^·5 _ŽƒÐg°RAR²3Ú8mÚÖÉ„½nŒ Ý:× —á–ìQd‰L™ÊhtO-ÉÓw%¨®YïLÜ…š¾v ‘¬ xYsM:7x¤’mšQmVâÌùœØNé%Ï©½ÿý%ó™ï‘Šòv“Â5¯áÛó~«â¼^NoÈ[Žr­nâ€)aõD×Þq Ù…[¯„‹—êzØvŒçIKàx%È/¾T£±«»MÑ@€{U Õ$Úï7*Î…C^¬"cóA¬¹=æ“ág—uþšôÄ-=fîÏúºž‹ï†5Ì K]?EØ’s‰j½Sû |Üñ£(R˜1R\þe¥µL‹bý¬ý‘eVcdLâªÑk;$ÆCîr~æâZÊH÷?lœàôSiÍá¥$M69ÒnîÄû: äâ­N|n¨g÷äü2Ö'Ï´ñÖ»º.:@ea> üç +o½´jçí¸(ýNÓnß‚NSŠ‹¶ën!ã·²5˜[G,«h"ƒ…¹Ô¸ŠìÒfÉΙŽ\¤\xn*Iw oÂ! ž_ÔÆøOÙYêg¯’a5´×©œ I]ÙÕGQÛ±ØXtb4†¸IÖ÷ùt8¨äKQò9™•)½0ü¿´ð"cK®[j̆(°˜@qá¢óv2é§ ä ¬AwÁãq˜§ 雩F«Ø¢†ÿM¥òlÊ~“cÞª?_Œc¯ µyæ§ÒPww¦0Œ—ìPO…<Ú ¨ÐÝEOé{ûæc³V Žâ¼R7wk3¤™¶ ¨^=è;¸3Ô|ëý0¬ñ/M3A,E>eU¾hSXµÕ{”®˜GTƒ` ÒÁIÂA›©ˆK[wË`¶ŠØê-R' Yçà©Á‡ãí´D#]^ùK}P§Y|š€¥AI>¦iBB ‹oÖ¾?O”‘ÙŸ¹ØãÛ( R u‚Ö@ ~}£ÆE@ЈJ'â],T$Œ4AÒqë-¡ÂwlØë‰ô»¨{‹°Í‡‰ž?5ਛ¤?œt‡U4–&[ ¯¨j}êñ‹–¯‡upÝÔ5q¬ßÞ¤AÁËò\MWë“?•µìûT­%<Ü*ålyM¦Z}"V òÊý„4ý⯸52ŸWë™æ²/¡ÿù06òi±Ÿ› .Ëv¾­)R~C'§$ nto*+Gi'Tï(c»oTò\Š7)°á}¶´ìP9 ® †˜‘:ª (•ÿ±”â?}ùR”!) ^ÛçDÖ–?Ÿ7ä³»>H´$=™„Òá´›Ùp£þK #+Yˆ5S¶~lÁ¿¥Nß }†Y:¤ue_–›[(p×;ÏüG•ý"îñá¹cö§5-‰wZû»­ÎulýDQÛ(ò€-Ó ²ó(éó/kvòÃG/ˆßÄÛ£2 ¿æ·’Š”†Úh ã«×½l“µ(íXr0×dK¢:gÙÓý…«e c8þ–)ï8ªÕ»øÀIulÕÁ½ÁNfÓuž³çõw¾8›rG™ ''rV·ûýxUÖ+ofglÜ ¹úØè|ò%õ®<¡ºóI¢6mu—³PìJX!‘ŽþQzi@¦NøÔªÃCØxú¹SÌú¾\ƒ“ äñDóÌ[Ø‹PÙÊÅätDÕûþ|&˜Õ¿£Åë4YGä0,,C´wϬ¤ü¸ut‘Qðc‹;T3iÈn…P`êE^Zseÿ¦bêãS(A)Š¡MõÅñüZÆ5[s96åLñ¿{Ъö)ÓVcC[ §IÏÁÒŸ8؉:ÊÿÔIäu„™3Cõ-¥LTw¿R³E­eDÀ°ñ nbnÝw<>u:àŒÖ¾°‡ñjv9ÕÒÔè£ü'PÒïB…ŰS‹&xªÎ.:”¸mÓõ- Ö~§ crS éÌj±Qu&éY{ØñÝ),œ3ÝZ2Sÿà®,W¶Öýc§1«Á΃b8’¥:îèçC C(x•…£ë½YÕ6Ë2[½‹$àW§½e©®™¸ w'˜¶¼ó¼0ad!·¾8íIæ£/|ÙµÐ;-äT`À:fŽý¾ÏO#\Ƴ×?«™x'4ýªp‹NŒˆê†Îº¶®z©.2U~»‰ßp…ƒüËÜ1ìŸVqu7¸š7ïO…ÉTŽ\“_lQÓÕòƒª “÷ãrï(•/?lO¥‚ÅFÒ=Lì!ªË7cŽd%ú#ÃÆØí.¢a{W<À»,Kùr^!qÇk{—sýx]LàcþˆLúH5â~¾Ô»ô0GïP~ž²ÝÚqt9DW¿ŽòÖ?£7'ŽÇQþhm0v¸P7-cãzww‘rŠÐ…] y ðŠ›ƒŸ«ÜÉ8óødvŸÒß§](¼nÛ¸ØLÏÈžy¨ÂÄ‚ÒÁÄø›„*²‡K÷x²³–~Ë[ù‹†é„¬UÂTÒ™$²Z|ë4»‹ÐTÛž­ÃMe·LR¯iV0ê_]š'YØ=­Ó1€è3ïQ{ÐýIî¬N=Q‡ˆ 4ï§”ïGÊ»ì )5E,L×' ¤¾Nƒ<Šºð öÅáÄPÛ²Á5ù¶)ĸ!b›Á±õ;ù$]:ݨ\ˆû®F/KP ˆGLDUÌ›ñ£ƒèoSXIŠÇN@~asm ! 3±Yz=_qÙ°ý!Bìn?¬kã&bòBRœÇW3•ITi‚8@/‘ž4×¹ÈÔTy-Áöøsõ)ÒÅĪF}`ð'ÄXÑàË¥ IÂz:Œí]*Ûµs(-=V—=ŽCg9§Ü—Z¢’åhó|yý̓yÈAúuûÒËú§ÞzCÇBnXzÕcŽ mN`mYßdz¨Í¢D¯—"élv9 á,‘Ž‚AÙà Èð×QX™Ï ÂôšØÚ"ùÅ&¿?kÌy®ªSHÆŠªŸìÛ@û2 ŠÄ·ü6äˆ"±Ï£”0Æ–NSÝýÍ&Ì7CÜ+Ši}(T}ñZ.빓CÞ)ÆT”3ÐË·O$°‘®@°Üõ&ÝcTésݹ}$Å|Y›’°]ý+$JöƵJYµòRöqÀœ_£ï™[˜RÆï–KI(mZ´žj*3æ”c³$påNÿ^#à7^Õq-.È›·“² âƒÎö¦b0·¹v‚[ÃÍ­‡1Xq™É3hì(ü²yW«y–HjD.2|G)03GåSªêQ\Ž’Ó ±*\Åð®¦0Ù¥!Œ£–;–ÿ•ƒ Ò„Än,j #*¦akV¨æ¶8Í®WÒrs¢zÙâÞL P W{¨ðžjEYj ð®Iè¨WS\BP’†ûE›OÊ0Ñì#cãeJV¦#ÇÝ#Èæ­ýiWÏ ¤þ{'”[ÛyAÔÑ-î`CLåÚÂ…pû•ÁÉÍ[•ùùÚ»‡j\‰>ñvCU÷ÿlU‡lî…—À^¾Ê´>I º¬qÐ^ ×7ªXái2i-îQÖÌö@`Žï³H*¼ŽäTóòz^:êŸlø.%)àD}pŽÄ’‚ïA¹ãmEfþC–¿–HWçÞÔ<̶ ï‰1<”üòwPÓ“.í=*fqK=Áoh‚šê]>àó²€òÐÎÌW’ï§f‚Ë‚ãmT~gôc¥ëX,GÔƒnÌHÌ®ÆÔË/>õxÐÞbµ¡[òµ÷ÝÜm¶0zÙ2îû’,$6tENʆD$’wZfM\í,‰¦ÞÁx½×Òšãvˆ·W«ú“$Û}Îcþ™e´£±££<æÿyÒL“¿_B¥»­8»á¥O¼åÑ-(ÒRÁãqÕ{Q®.ǽŽ]^a·zýlÊ!&<Õ9;÷P4´’+”íÙEËÚÐ-,gM34oÉ¿OG6~^*:/Húw.04<+ê×ãr8xñUázEpÏlÛ– œ:Œrhõ”‚™¹áékÁŸkRP±aÅ4°Œ˜m÷¹w¬;&üék$ÞØ &T’½€“‰ç=d™CÔ/R'|ý-ïL[3‹§STÖ|~x±6Ï[s¾ ôw©xÕÿÚ§œ½Ó&‹å[-ê“E…zü@ èÈ"ô[÷áK„I_?Á™¹sã×aRì ,O?êãFx¼Œ÷¶W¢~áºaˆ&,Ÿ,é|ÆßåØã„Ê»‡K_’¥TóE´T¸ž 03 nàå™çñóô稶æ\9<}¼‚·”Ç ¸Þ‰!)ø"ë M²°<8&j™k£ïÏb›ù ºÆ”X¼ýèwý2Ð>°CÏ,t«7ÑzqäÌV˜Ž¶å¥öužñÝ­?èÐe,Pe…®Eâ’êÝñóõHBóLC3¹WSýöÈÝH+éRe•QL„±Z"U¨å7”óqéUŽ_û½ý‚ª¦]™°ØÞИvP‰«Crk h×%—¹ÎS¢{à͈[¦à#éÎÄDz&µEÚy.æZ»lˆúxN‹É ù­s²g@p³¹x•0mö|f;Ì~–E?±O’q~Ü•tëoÊ(9ÈÆ‘5çZeïYtXJ^w#»‘Y'ˆö€sˆjm¶?de— ûƒ4ƒï®é&†ƒ¤®]ºI¦ˆÁhØŸ*Ã* HÑÆú[×y¬+ Τçꊳê`=ÌEGŒüñœæQ§d lãÅQD@Æ ñ²ý¡hƒmº¯+uVetB4Ílíøä‘7bÀP„YyÑß'Üê¼ñIÝÍš.á4È›‰âšŽ†ºßo•¾F’ØY?°h$¹FÕDÇîýŽ#Ög):4{ø‘TbŽˆ,ç ãÀ’ò¦Íôì ¥¾ï®pÐ?$n/V˲eƒN9ÕʰÄß“«·ácá†$î¤]¸’1ÃìzënmýxØÉAo#†òc§\n*ÈgOP7äi?¬ºdÏx½[ï8ŽK¡?~ý{ ; lUšÍšÙœêCÀlË žØÞG{µ0™êÉѬ±Ù}x÷=¿Ij™ÜÉTB Š__“q:G6{ TUx;ª8IÅÿTqc¥¾Å›0Þß³5ž¹`´V»È½öðÚ'ÚÁ1éîð'÷k|ÎÆ]T8„ïˆX·µs­Ða~YÍÃ$â®Î O ÀSÿú§óI/¦íß¼ŒTdÌ ¼µ‡#Ç=+Mh0ê1‰R„¸àâ™9Rv.ÿyÑxß I§4c¡vãÁo„ !Þ 3°šnkŠb­ŸqGþ2®LÃba2ùçþ£"þšGª±Ó8]p%¦}»?^\V“™w•ÛgKÖìºa~®°}F“ÍŽ{pwvñ+ë²&÷"ûÏþâ1›ñêijS^ÄhÛ‹÷±µÌ6΋Äô4ªwC¨‚o;vMdÈ'ÇÅ, Œª‹ŠocŽ¥’ÍÓ¸Lè€Ï¼e¡GëÙ|Z×´, ¨PòDŸ½ÓôÞcàDPܨCª†0q[è5…Ð#u´YЭ±C^˜ê33ÿïæ3îŽh¹²¼†3m|Rû˶D–6Öh¬Ù”â)Àúö‘@ÛÐT¾û–E0žØì“ñwX›GâXœ P¥ÆPSH:áMmb×þh˜óDÖçÝÚ0KËÿ³¯Hxèúwž=>ö” '|…|@Rœ!ñ~û¡ßjyÃàWå®)"N%«S;ѲäEW¿)Õg°UGuø~ãW³Ro†4¥¬•гvåðú}§G‰A!mÌ'×Ó¼J"Æ(q$¹ ¤[) ÎX@žñ?Ì“¢¯Oþ7º'½v}¡F3Yª÷|Ÿ4È©òÖÿ Uqª@2µK §ž`„XÐï4é\xAÖŠ—ØÑïË ÂVV¹&"þÌLmæh/2¦æÃ(3/ŽsÒº¾+ŒQR'ÿð=~‘ÒYuÑù\A4¸|$˜Õ«êy¾ÕñÖ¥S€ ƒàÃê¹JEÞ‚IaËô2éõ8¢ûÖ áßÝV'± Úi ¿:Çœ3øj”1”JmnBÝëK3Õ…‹~…JcžŸ¢¡ÉÙ[ð;gïÍâ)-½b~™fÇ é7â⊋¦¶…›üíÌvP«òŽn¿$J¿¬¥Á(ô±˜jÆhv mIáΊ®ê¥ÈwÑýëÔQnK·3¡w%0MAÑàZêjŸÙ5™’ FŒ˜Dåð£)Ü~vØÊH„s2µ1{Pß•†NYñOŸÐ¦|Þll›z°C384ìW>"‰, û¯êÚŸZ¥…Þç‘÷ÿEò0 %ö±áé¥e<“Õåþ¥fî 6(s°ô*ˆ,i¶>‰gP{EµƒÀ·|è§ãöêì€P¡Çý㣙h0X+¶jŒÖ4îæÌ8M p¥Õ2¦;ü@ 8‘˜7þÑ?j•ÙÏa;mÈ‚ZVM¸$h9]0d‰õ@P] 4Ý®œ{8¢ºš|ëpQ p?6†­K€Î’ÃôjC ¡•ê%+]ÙÖÞÆ¥F{äuÜÏ]sðIJ1`*üv”º ðxP@¬Ë¬y}Oì ΞBR@pšGææžÛ¼ôŸK¸ÝMìó°¥I¸¤¢ÒB¹)jë¼BV¬é.r'«â‡n·”ɉ܃¦/aÛM¶q|' ¤R%ßù1Ђœo+š0—Ÿ–w €v5SžÔÏ_n¶Ý¹OGÜ9ïáax©p6ªÍ¢%µt—Á¥-Oé)‰Ã‚èú¨8Z¼@!–9;¹«Í½v.‰$Ërü5§¬¶?º_ÔÝ}ò‘R?Ø,å”ÙQrÈX¯ß~“\ô#<&è:Pü¶®GS-ܧ¦®=,ö(¤ÉSsX8/]¢þ”êÈŒÝKJ¬ `iN—ÕÌXâ‚jõF“¯U…Ú‘Àý¸Ï•*lÔþO«þµ²ý 7 r õz¾¶„:9aZu¬=GŒµ©ßW/’¾U¼{•*íkuÒŠíÒ×ÚÔ:'ÿR©Ÿ°ë>ÚÖÎ=äõJ*B¾’¬>Ç'0xºÏ&1ö44¡ÈZ6Êå𨃴KÁïn©Åä±Kòj’p~PM@áq¸„È#¶¾ó—æDM¹â w%¾†ÙÌÛX!/%Ôè Væ<ŠÙ¯*·ÚÇLE 1¡K1ðQ¢NnÏ¥IÛ7…štV¦7á ŽÞUÈqñ¹šipšÄmfF}‰W7úÇ©2ëa%ºR«&MÓ+Œˆþÿ“¯ í)&ýj×s†vž'» Ú©DÞ ÎIK\” H®Ý:o †1âo W¬2&˜Î´)Ã3DÙa¢¶Òæ¿p”»j(Gj{¾ºÔõR÷*ØvEf”2a#>y§’|FŽÞ¯Õz€º–LÎØå`Ö³§|ÖdŸì…ÀKýîþ$ÿû(ùÞºÜó³g¦>r=ª­DN+'±?Í×M`ü%ÊÝ„ kâ×Ç]sC‚L„¨ãµìMŠ Ç±ÿMXÝ&Jeúòψ´+2Ñc:›k±ê¹3:ì)ts2«#¸e‹éáÂ\§ÊÃ.yãX‡¿Âüãi˜C9Çq„  åq>bÚÅ2Ðý^ :?fÀÝÙúö+"Y¹zô$ºñ–Ï´íø¼ ^®ï9>׉§…‘lEŸ…ÆsœÑ;¿7n?Æâ€Ôéch˜y¶£ò½äÍä4ëDx\ü7œ‡çXyÓ¼'u¨È65Z¦R& *7üñ1¢#õ¦h+4m_e÷×Ô khHVð|}Â!…ð:ÃfƒùhƒNŠbs»윗eé¶}ïY,MŒí~·ø=tå.nOËø).=éõ§WÀChr—)êF×üùØ}L[-‹¢Ô~ÃщLö®âÌ4z*Û‹ޏÙ6SV ¦˜»õMÇ Kì…l^­ðFuN•ëûRÌá¿=~.†é# ¦×¢ò¯æ!}5ÞëÅ8½ÑÍä!ÙL«‹SV6pªÊè;YµS©‘ 5û1VÌ3ƶOxãTð ¬—AiÂ1ÕžVˆõ#@¢ó0wæ1 Z,‹(ÞNÒAeÚû¬Iÿ5䘻ïc@7šÊ°Û•¼ØßOžÜׯSÉå}¡äÔÊþfU<­û’Èø™’¬6 ]@zýÝç€qR$>`u\Œôpéuð6¿@ãwù²=ů*²vuÊR(pžK¤ŒÝ .ÊòŒ¬êäªMaö2Ól·•^… 9«ó ßÍ55Àè%;­ß‰†IÚeõHÆíæ–î*ÂI>0§[ê6C)çè,@væÒiÄ÷Ž™¶yÃ\ 08e’gª²Áþ à$:àÅÛ¿®S«‘ö§»,TÍœXØÑÓë*”Å¡ëðG%y°ŒE >âêš>ç}îuî¹'°†‹ sjôÁü± e^]îÔ‡\*?üQ×E#\z.ÂëÍü E+©ðQ ¿C Á£o˜0ù;séãe§Ð\¹H¬rÞ&ýVôêY`¸-'o?9…¼š\Øà{O½3°®x3l¤ÆÔª 14ä¿bÙr~Ñ’¢Åüåx:güb-ÿc“&ÿ¾»/ƒ˜Äš;£p´çî:Š0Û™‘øüGÆø§TïV0 = LO³M–›Q®1þ ›Æ9.¨}aUþó +•½ÒW,&0ä…L©%‹@ ŽWTAºØ™¯Dx&Ø÷n¯øJ"}Æüb*#”5։啣5.·©ÎÕ¿ýÁx^rÚ‹ÅßS j3Ŷ7¡±éQ\¿RM“,›òc¢»FÁW.—z¥Óx+gïÑ7Óy¿Á?XÃ_çµc1aÈøé†+ Ý"»ÛÒž ëùîÖ&XÓZ% õ†sµÉ÷3…+ölJõSQç‰Õ¹‚K锼ôþßS4,p]=iÞÀª,g «ïö¨Ô#½{p"z=É¿UïtŸßS?·Õ’âŠ?‚Ù<+…²Ç5\a²úЧã̳¹„‘×K›n»µgg†Iï:üD”ƒk%?#?ÆÖe~$+ë¼ ãØÎÜIÈÓ º“™!-Þíké¶%Œ(æ *ãD矶,J—®x)ôÃ6‚Á°£š{÷˜ÒQ8‹.îè¬ÖÐÀÕ¥ð¶4¹"ÝrgÄ'»À:Ñ#38~‡ø´@­~ªM¼yS¢]Ro31h‡@¶û¡D Dˆ¸ì›qBò|ç¯My…ˆn±èb³UÌ#K}ÀÓãÞÌm£ ÇÊséWÓø–RÀ„L­ñÕ!¿G?ê 4¿PûÁ8üS@ßt¼¦ýx¾bë+zú(^æÛ›® 0Šžù÷'¬HcŸÙ è›Ç¦|{‡ê ¢Wªc×Ö}½Ô_‰D†ñãClªþ“ÂÅ wÕi 0=3²ÅÉ %´hý[Q\̆ÄiDb<蜮é_&À ”´w>îé7ì®ga—«L+Xò$ñV ¾CáÀl<ñÆDr*Ýp[Í!žšüq«9Õc¦­ ¡&6>)‚g”ã ¥!¼¢±Eú¤m‚"Þ™!%*ÚÐË))ì7‰Å׳ÔÐÛÞìC=Êz#°,€ˆgÚáÆôgPÒ'åZ\Z‡=Å9M2îgvö×7+`Üjk82n…uˆ¸\ÍjƒXFGÇÊVGÏd°†I8âC€'‘]û¦¸ùÿbf¦_). ј`ŒÆZðêÛ-¼ ñ*øªá?[QÎ;†{W©c¼Måæ Ö7Û°€-o‘ï»oÑù K“i Ö;xp›…i¿Ä@ýÊkR§^Ÿ¹Sç-A¢²Yg¨ªðÖ‚Ìž2Yñzw„¢³`™Õ Û2 ‡é)ò“YÌR;…¦j·…“…8üÄ-“zìÕuî2‚ò‹ªä®Ø|¤þ‚³ G¡MÙjÌèþ‚G$D<×é‘@jçÉâz$OŒ^ì!¢öúSõrÑ#±jS<û¹òÄ™ïü!^x;çl¸ õ¤«m6:î#f©KQ½¿J³‡)ã÷ÂÝšÁ%ý`K=ý4p¬p4Bé[+‘îY‚°ïP3·ÃCµ ÿ‚?ƒ¼¾üÖ–4>È£Ÿu´UÐÚ£Úm,2Aúu*#m;è-Îá!5$=¥ë- g›Ö«>…2s¾™ /Qþw–оéÁ‰Â¡åJp.?VkÆŠŽuô[Ûgσ·ÿªkÚ¨b€ä¢ñ±YÚñåŒÓ›â¤àYBRÿ.¥Ígq¤mŸ;BÚr~Õ¡i­KÁ͹æ?³5ü—ÒŽ}©Ìnïi!îlh OÂ?AÇõ6¦År0˦Êß™hÚ3«‚Ž€;û:"›K³=ˆ>X£´Â†&ñ=²ËTŸ+Žl™œ?—ûΛÅYR?ÐãÄ’P<®q‰fCK=¬fίfÀ”S‘@ŠÖ(ÈÅz1Oø¯VÉè‹Õ­ùŽ’1Þ´ ÆÙ,tHX`)Þ½A²õg™·Qb?•Ú‹[ò™l`’;|Ôƒ¼Â¨kãѺu#Rh h'Z]ýoפ+ú+ý½zöù(é+/÷VgTñŸ3(ƒ®½ld5®Üf«I‰º¹¹ÐŒ] ³XL²Ý9Úšm®Ô‹ß\3¡m¶QÝÑs•Îê&¼E^\í7–îõ¥©u‡ Ž$aвŒÒ6æVªk*9cczàÂÔe7X•³KiÈÓ¡‹‚Š˜ã¼…‚-‚ÊÓ°‚¡gH\¥Ÿ•‚0# *}¡†²»É²;YYX •ç¢>r-7î­²þÀÍÈéÕz¢rå|€šþDTžàØêiÎե˜":¾á3¶øo_ÍWŸ¥ÿnN<ˆÎ”¶Õa5/v’>øi†iÕ ‰´D—aï#œÐŽJ×ÚP8õýÂrÛ‰6;’5BÈS)#â MAØ®½“W»£ôû ¾kÙF,Í»¿—Z/ØÈy¢ô­°L»ž9&©‚ìÈÆtÈ:‚ ÐÑÏyzb(ù–raõ àl[t%b üç¤éÓu„ŸkxT²Ý­‚صµt¶ý>Úò¸sR&° –턎2Ð5¤)91ŒŸ ªw–pÑÛ¶²¢Ì=|bÕˆe)SÃb¡}I;”|ÒˆµC·ôM.03U “›? ¹I~üD! Ä¢»o>:Ç(ÊuíR°@šÎø“…)ƒL¦Ÿ5\67 8¢ ·dìÌv¤*D5g8vDH?d ļmó¦;[%|îf6‰·±¦Œ±vˆ%”5Å6­‡QŒŸØ?¤/Ù+Ѹ§ž©N'ä/æÐPY&ªxNV°†ªqPj„¶ÅÏÂô\Ú-"Z€0òc&yçô (¸.E ·‘š)RÆçpfuDœ×®M.ðc=sÀqÎY —ðf,;ÆõŽYÖZ³K¥ÏoƒÐq po°—½ÀÚõçCA¸;z8ÐŒv‹êÆôÅTSè€øxÅ­øOõCGM2Ï›¤Ñ!´Bí«®o<§|˜5wÀµ­â2C@XU$­ÀK¡ÅƒWÄþòåÅö:ÕwÈžÀtàÉúâò9âÇUgäþŒÎŒ4-Þ~EX“½jµF!ÇŽK†žO:cî"qLô©Hйvo½(AÅhi*ˆé­Š͸c¢ ³„mQ2ýšFÞ*Ò¨uMöA£Ã÷¾ ½f#ŽâX›©Á½Ê†]W¤Ÿ©2•C¨«h¾À¼û|žkÒL9áC-¾yò âNñN»ÏZ;˜ÆQAZÄ’9“Úy–8c¿zÇAÕý>w$ŒÀ^ ’½ý"ä "˜ö€ùX{ßQ¼VÛhÔ«|æ®`¢' x† GìW["å?žË/ë8SʲŸLŽ}Yš?}ª_p—÷V©ãÏžHó[°JcuÉW4Õ°ÌM\`à5Þ«ÛvŸùÄ@¯O‹uzò¼¿ïîÈVþj%4ÃÐ};ÌIÌžzÄ{¨(ÖË¥Ëh¹gˆl€æ4 R·Ž¨È ²rº¡zví‡Wð@†¶”9FWœJ幋Iãþ¬¹>D´¶}¿¸‹ånJRòn’)€#µ¡J^N'(E´Ý0‹v4—¯2N/#Ç*ï·ÀõÁ´D³µIŽ»“ýµúc&¸÷Üùkl¬¶S”O.]ô¥îïBD‡ê¸Nv¿Ýê§=8rQ_²¸†*8‡aô»uî°ò%›i~"ϰ]¡9d‚pÈÖÙb¤&yªÙÕQ8縘Oô©N©xkj åÄ“Èuðj$ ¶mËN„½4ÂãWh’ ‡I2…›mŠÌÏíÌ„Ï^4  ßHÒQ£„Ó´K"r«¤ïŠä¯äP3Y?3F5|\[>º¿HXÐü>frr¿¤[µõy|Áéch{W]¬z$,¡~וeRÌRz;ž³ÅƒhŸµ–”1”aueWª×†Ñzþò—?OV›/²ÂÝloÐ÷4 5—–Ÿü—¿Ö—]䬚­ìD±†z"ÎkC~71ÑõÖׂ^ÔtÔ¦‚)Î ¯ àÆT¿–½ëýü׼щcm¦ˆ!³ô„©[îÕ=#Ԧ¾æÑVŽQ'8)Õ]9¬½Çï{1YõŠ24q#|ÕÄ¥=¿>*Z GÿX…³S¿bñ·.¶8‰vü{aÔ§½½`1¦=V5B¦úIÂtòû7©M>F¾%Æ,æÖ-Âo¾æ®­¦$ÇS‘5 Sübq1¹^]î¸ÈüÙ…žËÄ"õÅ0Îã -…]ãØñº·X.VƒuKv[Øk{øòÀù,ÊI8@±¶GGù1 g X«ÁG¢~ÉËÒÃL ’©¾iRË‚ {ºÃG,CEF±f¯íU`0•M±‰,Õ-œEÖ^­_QT`ôJãfFøƒóÕÜz<•Gr›å¨ÔS¤@U ÌìÕº:òP›†—¹†nÝG+¼ªw‘ÜGo”uû'ƒ|—6Šýß|æ6ÝDDì£&Eª¢Ò~£Ë0PŠðïcï”|—Ùì—¸gFïÚz̧16>$Ô¸ž ÔmfÎ\?”ŽÐþ„­]„ i޶q “X|‚6–€òDLiûT ×?¬õ{q?L~‘¼ä~ðÍ&æt1¾y £¢ Öƒ {Ø8×é$8¡³ŠÌ¬ð¹ë7u‚äÿùí^!#Yp)¸)ç&Œ¯å }bzY:…íØ›t@ó\@U&2Opõ&ý7OÆ!GlsÕ߸•­¯øƒ¿ÞœœRp„þg‘|‚´ªSÇO×%­8s–LA.ƒ¦tgí˜üÙ*'†ÿLd>a~ÈŸŽþâÐ;LWülXge.¥•m±R½`¼4 P@JâmÁtÁ-³TYðœõí`fHB>H À%–™V™Ýg}Ÿ_~gaþzö$­ÙÅšµ“´ÁóDc¾‹úƒäÓànTb°ó¨Ä²Æë¾Ì5çäqXµ$tu⢅=è¿‘ Ù2„Jm+O£ :jjW>^=”›‡LoÔ«DãtèÙ~áÿŒÙÆ¥;µ9Œ!‹ íòý¸K¾v%©ÓS°è‘ !„΄v05y›5 {vkê¤.ÕhébU¡xºÆ«™ÿˆT²¯Ò6;SÇŽN¸å]Íá×YY§häy°:V«I|šbSTû” ꌺª ½;È:Å1 •'‰ß‰f2ï]0 ‚¯l";'mÄÕfgƒz’,ÛÞCÆå ÷ý³¦““â’?ªz(~£|jbëŠm:7¼[t ï¤j2‹Œùr‡Þ‚œÜaÑŠg·2bÕ£åìn1V^O?èп°2Ú©+ÉGq0) lsñ´? P]Ï0Ƴ;6an½vÄôVá…û««’‹Yó ©%L´ˆúœh‰ŒU©#dÄ9&8H÷ÔQ·nX‘ÎcŽ =BöM&va«Z‰ÒO”M¢”UlÔð$ïE@x›×õ …{!Cã¶Vò1Æ à¯*¦úõ>/÷H ‡A*FúÀ³ù¬0G ".ð’ã ^ò0#÷N‹r_¯Ÿ<嫨'ŽÅEI÷òE‘f¯kuv4FÐðn‘Ú6ú19è /Io í Õ±Œòœ_  ­…õ_7/è|¤­Oé?ôþ³szb2äx>4ìD¨–kà«r31J⨤ŸBŠØæâ†ÐyÛkHíØ­Ì•ààŠr?n´Ñ^{T÷6å_nj^Xk)¼»Ž›msõ Ø„ÞhÁ¡÷!Œ¶e» N1›bb£ó’šÌ9OQ¦=Ò‡2ËWòéUkD›‚®­N抌ªY)šÍWÉ%ÍcúË9BŽl ÞiJý+\`âõ¨cX¸3Á¤w²!*,2;YvÛKe2:¬=ö„¨Är†¨³5‰ ï{è^[ NiªP‹C£‰ÎûVÝr¥8wd*°GZw®HCð;æ0P<Äq„Z­$I ökŒ†c#Ý_?KC±öœÙ¹´A±?÷ØÇbãSÆ¢hÙ£} ÊÃ8z˜?6ÈǽÄýr‚®<>|ûØ¿{WŽtz)í9iUÜ"·Q·r‘¨˜é¨ÞVñ¼rÂþR'‘ì•N÷=œûP)5ç3O¸Èw?ZK^ •à$ÅoÒärÔÒ§T.(¹ª{]Lר_¸x}‰˜xö,‡ÈÖÛ‰ç8ÿ6™3xœÄSò'gpꤞ U£Bà Wqù:H'©¦Å:xȽ±Î³„ýãÅé‰ pwSàv·ð0çá> a#Ù»™Yj#í»pv§ëIÑ\eûLþ×E’ÆœFƒa™|HÞòn‹ "e¥Æ³ öìç.%›Ï-½ê,x¼¥sÏ?Ö]KI^tÂliñ“[ .ë™='ÃfmõX¥Ûørg3ý5˜M”íD\4ÞÝ ¿ê£¬üæ qj$šÄ;ÆD¶é'‚W‚»Ø{¦¤§Ü‘êž#åh‹ôϾèNÉM \ˆ.b'׿ %Ð¾Ï @¤gøžiÛk§=Áñ ajA* ¹05OÓf~A! ¼â±µžÄ +ÞM Üùð{<.ñðÀ‘y ùt:X:¼VÃó™™F¬¸Þ86ÇÐË®ùñ:ý‡¹cJ>g°÷aºÄ=ѬøÕÛêÉÈkÏBp¸hbÂN/mòs̾ˆ¤23mêOdö½†yNmkÍT¥< ÊèG\¨Š¶³°“K#§ÖDRzc Ñ-ª¦qŽŽíP: =žp¯Àdq6(LÙÃe]P(ôN™™kµdìPðY&5úâ™aK•ïíˆ 3¯"ÖñWóžC9X©Õ!0zå%kH)ä®Ö0¨"ƒ@.X(¢ÿ¶vḷ'@¬’Ì/c¤‚¶ÈËÒë‘Hºº%û¹ÀÐwÒÕ 5S1lÚ}íâc^inšc‹³“ÙµS¢ŸR,XïS!ÞQ\ëó@iTÈ“B¬›É‰S¾ŽŒÓ:ìÑ: ªñÛ{úµZGK2“øHÒ(‹ðGžÇKÞ…¸Ý…'.wø…îàÅg.ŸN3mIUé$ä÷K‰:ê 3õ‘2:`ç‹u5ö“vÕä¥Çä. Œî0šª…çSRC+ˆ+›€„ž†¢â}×Kºé|‘0¸é0 ,‹R2T•ÚðKD/ý® ìg.•¦r[†,gàÈn؆"ÐG@l! ßž¨¨(~@¶DüÐuƒ¯Ã_7Dã€CŽÅPi+Õþçþ†¥ãë}Þ§vµË÷#æ~·£‰ŒyGŽææ9TPúä–^! ç<œwºµ2ÿÁ¿ßà/\KnØÄ¢³êáQA1“…ÌQÅÐJ4±U,$‹ì¡Ö.ŒþuP3õÝe¢íÏP0ÿâA¡n òÀ>•2H²(û{I‘‹MÑÌåNo ¼?^ºXUR§ àG_ÖÝò€…Kºõ ™` ]½ä°°ûF~û§S‡DjHXèÀó1B5Hq±`†ÔÛšø¹„Ø,9Uzìr¦„Ïh˜ù3™T|\¦4úÇhQ3š‰úW´ ¸>ž®Û´œ‹V¤ÔHcʆK³Þ %HIª3xõÜ‚oÏlܘŽQH0ŸB:ø«g}Ø aZZRÞ¿¦} HQ”ï\µmâ3ˆË"ÔM udñÕ-‰8ãTí§¡‚sŽNyNHp£$àp!⫘øƒgçl ùÓ}°|ú7Õ%7mëì]WUHC~ðo]6:@×8¶9*seŸ6…pÌÚ ï”™˜#YX+: 9 w¾NMàæ=©c½s»Aªû¼éDÊ =F擨ñ©|Œi]ÛÚx›Î"A¬bÄý¢i>§më{$œåŒ|Ü”àÝ烿noüòˆ T§"ÓoCªxw —EÄ9–ŒþÍ#Íܧ×ÕSJS<œQi…ºõ)éãµtòC{@ì÷u n{–Џ¸Éh*ÞU¹dáce9­#©&&®$"6§¨<  Q:/Yè#oÚˆVÂÝíÄïÉw´¾ñ±’8ÿg9†è”âš2¼ébÏÅ ÏÍä瘼F¹…ÎÌ—¡Kijœjº]Àơҩ\àõ‘^‚}Œ·¦ˆ¬|ØO‚¹ÃÊêÿ¨vž%P†+Û2t™EïqäÃ4BÈà…,wÔˆØí°2)UÎT3=$¼ÆÍ%»oâÿªª´¸\<«f.0wwvÚyV©ð¯ ¿´}‡þ,W¿’{Ý Ô~¾!FÁùE¨`»ýNg–FG­öQò¬ïF·ö1RPƒ ß]± ßÂïU=6ÆqÙç‡ÀgœÊn/.š/O® ë†zþIáýïU?,Hª¹H 66 pæ¦íòÒ¹d(šÎ'›#¯ÓSƒuØò‚G@ØœeMç/úŸT••µÆ.clÏ×[½•{OÙ»l´Ã §ÁØÆÿ'­ašJtÆ/çfœoн™Ø‘RÈ5lEš·&çÚø1õsPaÚÔ7«œ‡ tKƒ ª†ÌTcœø}ÅãQù’_¹cI„K7-á6tY¦ƒk'í¯Ùüù†o#†UE' б6D¿" †?oÁk$(ÈYvî™Î³³[\âÝUKÔÅaø¹–̧®ÎNah¾È:cjÛSM ŒÎØUÐ*†˜@lŸéz¦tòÉÛm1æÙïØÑδz¨ñ€­6X¹BÁ¼‡.Ër Þivÿ#Ö“€2Û\°ƒáz¥òœzŒ¼ .yÍÍ#€¨;›WJ5SÉdqåTÁf^oõ4«Žþ^Êä½n¤UÕ 9[Ùq”;!¦¶mo|Þ/†  A”0:uÅC"®½ºf"=œNc`×F?JcþÙV½9RåÂiÚ0YÉNç‚–0ü$¢¤êÉ×5©êÔÆ rìe݃šïJêeµï—yž„+¹Mêi#wÇE½8•SŒÉMs‹’_ÜÒY¢´íÄã"Ïž;®™,,† `ïêQ¡úûV=Lq‰Xíe˜-æ1…jȱšÔ­£“ž8ÆõxÞj7ˆÍ@³sý££Úo=4[òâ„èݶoˆ>ºÀ  ™®_-‰Æ[²CÚËy^ìÙ­ ëÕô•Îå䉶.újSzÓ´JÚ)bó\ †»mÿš¥ 实rÿ/0¦¤d˜CƒòvÑÛ¶!¶ü½§šèõŸç½ËQn_Í}ˆ ]õŒÙ÷g7)Øîx’á‰89·¿¶h±&CžÛ l±ÌZJÃé£Íç ¨ˆ(h i‰º2r×¹K ¥ü×_Aë§._Còæ)iK9Þí^„»üø­÷ÒébÎÖ"´8ûŒ]ì_}#È vå&¦TÓ:µ.0K`Åf½…-XG8‚ AÖQÍ·­I“°ã»wþß×åð-À“X¿¹ÐN¨Gðrî¥Ò˜Ò_ÚC†\yï¿Ì D’à±’k˜ìzÒ¸…vˆÒƒ-°Õæ tüÖƒˆúté~ *F^ 1<Ò÷¡uOêš”_œÈÙ†äÖ]W0Á ™OêÕå¹£ŠMö¾ÁÓ8L7Ëöœ kîx¸yÄFÑ6M«3 bGm¦‘Eqi(†×&Eo‰WŒkÍýM–EªÜdÙn$ºi¥(+J€†ÑW¾_èðé|J"I9”mt« $rÖ`¿xIHM8°‡]ä‡y”°q~z7¾§¹J éq[<ßNL;LÞ. qôׯ{°Y¬ ªÂ-éfQÎUü––ŸB‰ °Œcµ†V‘!ÿ5úÅ_ýwF“ÄSsaiçEA¨J»¹`›¿2(ULeÿUö›ïåÃÇ[kLÇBul„²k‚¾Bš´Å“êÕô‹Ù]òÎ=[ÿïQÿêD0íàà£`ÖË…çSÇh7þO\B³ñ‡f¹9âi}Ì»Ò*Kðh_b­;ƒ¬+ÙH¸HNS)+ àÒ”îÒF„9PÉ|ÙáÇœ =$3# ª'³Ó4$UznÄaCÖ£$´Õ£+Fºþ°&¯KW, ýðæIDñªOþhß+iŒ:ˆc`€æ ÁÏ{eh¶Ó *•@ámò0"Œ–ÏY?¦R[XUð™=“@ÕŒ{ßõ³þž>Ëó17í#ØÐJ_ž/ªè6ü oUAj¯V2ÄH¹=‡±6ºA—ø ºjIY;CÀPʧᴦ%‹„ût ŬÅù¨sy¼í†¡ÇO‘r`C³|bÊ(¢!’«þî³cAçtöÃ×ƒÜ ÚåœG?ø*Ýø3ËFÝCeüå³—ÃÅô¼§LI‡²½[ËN‹$¡‚¾çgŒ`—¹–Y—‹ôõ »ÑbµÀt®¥ÅÃç åD”oÌ\m#¥‚‹b7÷éb(b8„<ÓôQÄ=|2×Ú™¢•^¥â¸æÂŽ23î (hcÈKS«Øf,OÕVîÜÛ=ÙÐ¥/–{Ë—n£S¶£u‘ ~q¸ÌB¦‘@Ñžr¨á°%óç?ßPY/™±è{Ovo68” É)^‚±º…¢a§¿€þn##Úu6cÆuÍô¦ØW@¦×7ønNéÒ?¶S.‰cÀ9W¢P១ý‹†p¸’ˆL|{ÒöRý~Z›çÉ”â¬.\½ Ýtïù>*{×Ö¥šGCP3¤j—ýå„ !Çä'jë[¸•UšÏÂÂ?퀤÷DÊ8—&mLøÇ–ˆI¶{³Aæ ûð€Ô[›ØÍ¿øÜÅUѰˆÂÞ‚E§µ¯ŠUÔE/¤dïsÏsØç” 3ÂÈ«ž­'ºÎL±2x‘DË.e¬Í`èü÷çíÏß÷MXk|#ݱŽU#¯'MOöšõpô·çŽ?S0ôÉî]}‡yYÁâ>÷ÝoˆÝ®¬3_¡«®àÿù"N6øµimq Dõ¯ÍÌCp½ÁÚøv ´¤WP*Á2änݘˆ ; ß<Ô‹½Rì ÇEhs@{ ‰ÍXºM÷Ë%LøŸ}»$ øûxü7y>(œ[ #CqÞÙZÒ,ÀI4dÆà1z'y„;¨tkZ­Tp+2½XÓOбÚâh ¦Â~ý¨ÔFQ;.éUŸù©^ðг`Bxh»É¹÷øÙe¼¿ ¬ð'qÑ¡ŠÚã˜+ñtQ+Fòòâ)C¬€æ €ýJh9QÍs;‹ÇëµG_nhq á•ô¼—õ¨$`Àë‚×àÖAW6¸[‡”dÁ1%>™##¬V°ô]–x~w×51û¡Ó_Øøjd0Žò…±á*žª+ñî@yü‰ýß;š¾‡õMQW —t]Ô¡¹]ÉáB뀫=8¯’Êë¬bî äÛWz‰6Ää2çî[f2.ÅÆÙ6€=œP.v€1žs£À\‘¢¥X~›I^ç¹ÒoŽ,á ÉIÇ‘5qNžôA€"x¥=j ït·‘Pž½>þ¾\èO²mñg§æóA-|꫾ÅÛ%K“ótœZ¾¿Fꪣ99±ù("êêúúÒb.ùH¡“qÜøÆÕÿò^ ” ½{¶‹ Ò›0¾Î3´¶Þáb°ÀGnq)Ôj±ÿàĽ‡¹h ¦Ë›@3a¦+¦œ=¡@&·Æ V>Ù|÷ÞÖižËÐBÙaíɆi þ›oXÓ0XvaÄ' +y†fÇ/þ6¡Œ<"@kZᓪ!Ì*î^H0£sí~‹¹|Ç%R‘¸H +Ž1ú÷™ÌB‹óÑËÙÙ1ÁøN_w££ üžŒ¸ Z ÁÖ2LÙrXo¯ØXYõí$ ¼‡”ô"så ÝS÷d$9¨Uƒ=Ž9ˆðN€µ;ý—©Ê!âažî_å"2xó³W£—jwé!¦’ÇŽ0ÝyµYÑ™Ð÷·¦[ t$k R!2 Ó 5dzÐ öO1PZýÖæ'j@q³þ^çrò¨ÃkYJŽxFîzšˆ'ÊV£T¬-+"qñNAC„M«¢E1Êè`ØÍi\6•ø¸ `yM®”Ý'Øx¿2W{ £}%Bkš;O…l¹düDR-Ë´Íæ¹G;~vÑ5üàYU Y–yØH:aŸìs£•9¨#Ê&…UÔ¼º#UQ=”¾ë«öC ®ª¡(í³ª83‰¼[HwÆfÏfNœÃ†¶Õ^¼qš âÄø=Yž,ä~ê@ bÇæ‰éçºa¦µ¯£J×iÑBÇ L âAð‰îuIzrâãôÔ±eõÙ E‹59ýfvlóÕÀ‹0Kø½"7Ǫa`ýól31v #`ÝPÜ]^T<³ÉÔ„†¨qæDŒ™‚v>„^öô€Î?]!áå•ôÕ¿n¦E‹]a3P+¸`€ß}/¸¤±ôœÒSÓv(°þ©*&ȧä›ÞÆ€§± m±ƒ_šb„@Pû¾µÍ(?`&ù­’Gÿˆ ñª_+óÿ[2eü¢F¿Ïs5ÄбvVWƒ+%%É0¸¤¤fà%(õ%º†jÙJn¨|8mЏo¾ÂDHqüÚÒ¯…vÅ´ÇÒU§¡uö橞p¦ =ZÙW¨ýÂZÏå¥ÓBÅw«éZh˜¤*Ž ¶ÆñÔvO!]ÔÖX4Z§]^YB²NMÝ~xÍHûE4»à×Õr>^åMA^6oáÏñÈóÅemšquŽR|+†”ûçØ£ ‹¸Í«`h&»^ÇOÒà…è0>’„–Ÿ¨}à"?E¼”ûÉç ìèw”v>WçÇÄ=NHµB™ƒaëò_"\”Lüðªç…c%8rÐe¿Ì] þЃ(­Qž/Í,”ÕÔRôÚ«ìé=Í«y­&àlêúÉws¡Œ*ì!Nˆ$»h7" Zöþ¢ì —¼ænÇù[\°‚Þ`×T.ú·M® žŽÂÓÊs0ül—až:.&æ÷ܱþðý²ºfz¸rœó¶mÁ¤éEý‰Ìc '« 1VÕ ¾Á¡‡|íê“m!ˆ¶h[†ÖÏ¢ xíÛ8þ¿en;…:‰÷?¼w®Ú›pNÝQ/ÝHêy é"èèãgE¡Þyªß—šÃ¤ªAp4ÄP®°ùYêBÍÔ3ðEÛþoMª’ u†Ï¦§ QzsØ{vÜ*ìµË·)!ºIfÌ$µ6Öx“ðª2äV]`¦æ­™Y€^êF¿|Ø`·œß4$;^à½:^+•ƒJ3kܑˬRh |YnΔôòV ìš/tQQH!Ü‹ƒãÔÕ¢]fi®Õÿ·~*‹˜B¹ÝïS^òß0ÂbNãr`GÌî¥%\E¸\"Þ©ÙÈya™œJ±Üý§ÒYÇ!,:GÙäÐŒÿü’ Š÷“ =r&Ìá¡ò¸¦³@¯ÿA²˜w‘ÐA „ý`¦×ôÒƒ7kø…Üj”®­d–»°Z ¾“)^Q4VÎØ“ ©'#€ñî!”1Ï”´ÿE> 7Ÿïìnz<;½ˆÇt$ÂórÖÌÜ}Œìè”U5áÐ}…4vr ¸Ùè¡Lçš!Pc¥6“)¸¼ç?`x]_]1Ø—êCy—¡rºOîýKø_¥1ª'³~œˆÈý4a°Õ‘‡#HËÕ+†å‡VÚš¢®X;’°?ðÜ;¯7èË.!lóüûg–ØIv¾šAÕ\ϰ¤¾iGü¾2Ûø0\àûö „ Ñ ¡5‹Æ¨vHê# +c*sðC$–œ£! Âut=Bߌ8õnåžØý5üãj”!Œ&£9-˜þ†s˜NºÉF°‰¬^^_¢Ü òÒB>¼kîÒ…ÿY(BÎQÊÖåGGÍc7Nú°ùoµ!”^±{vœ¤}•âÓlã¨ýNƒðìžÛç~¶g. n“ X`Ápäéq¯",$uW֠ʸyâe;ĪœØOùÏ€Xî³}ñpM=x!GŸ Ù˜W›Lyb`H÷öyUç×!lú¡÷O/ú’T7†·ÑDôO2>Ì3´ÖHo8Mö÷ó[EႽΤ *Æ7á°W­i%üΤsðó™JÖÔ¡ì Z&‘Øgæ~rbÊpäLúGE}/Ó'ñn³JTM>úSçËbØÒt.cˆ‹µ0õ\Ë]”※K™ÉrÝþWP¹º%vÇ7Y‰ÍÆ×êj>MàN}öŽ®Ë içÙrF¬èÂ}]Ëò²{‰æ„b­åË—#PIwË–«!–>ˆj©OŠõøYhŽ-¸ ï±PeòXõ@o 6"¯¤£ûŸAíÆrÊÂXIîÏJL–¢‚è?­ˆºÊ¸îqõ¡äÕ¾“ïö¥ ¤Wë~ ÙýZ™;DðüXf? ϯ:îŠýµÚ ê;F² æaçùmÂ?{™œ…ŠÑØÒݽ&©êåpÌÝ!QîßðÊnVW†h°mʤ \zc&è0ð–Ž”t);§,¶îÔOöôˆ‹¹¤…àÇ—nhyøI§Móó\À›'yõQò5Qlw @6+ôÀ¥—ƒDº³A‹IÈ:¢vu™Ün!2ÇüÅ‚ó4û©>>¸Åwƒ xñ~g¶Xh<º³õ¬f¹–rÖhz?)UÍ$nòmî¦ÙÞ%ŒÐÃó9•LÛdÁ'”ØVßï3³$®‚éwvîÀ÷™!Œ‰ûŸ2Ò±E‚¯áôA«×hïšív¬Ë/äU=a¢ª—gÿÕYìc)9eðþjo„ô*·÷NNõ`dÁÄ0?A*Ù ÌiDìÂ66b§Åàé_ ãççþ›!4ãïÌÙÜÓ9¤Tû7£ ë,\n„‡A)xBƒªpªÃV¡’I¶Æ_1èD¯ÑC¡×ü_9 ¾ÓQ0ß|á4)nëDyÀ2–Ú2ù>·þ³^Šl1#ÙϽUrT£ç÷ŒeHNÒ–o²[Ó%z·5ëh•VÔ%IæÙÐP¾~J˜Þ®ýšvI—+îÈä€+“§–Bª\ë¡©‹Xùxý,»ë»³Sµ»u ,9Ú¤ŠEy¼[v?³¯;›d*0ëºzgˆY*§2¶àÀiðbÁ/!umtlêLªõÛ̌ȞV?XX¶$ÄþnÞ¦-"³‘*!UÖu.gžíµ¹ÖÏŸ”Î a¯c T&Æì­­mة̦=,¡·Ð!±vIoä5oG4Ë‘Á%´Ø:Ù¦#yv`ª_kÚ-¡ ë· ítIœÎš›„Þ›ã¨BÞ½$òg…ØãÚ9ôG^ì¶Éî3œo[vr%ÊìîÇjcøí½¨i(˜Eø?% qÝjRvh¢Lz©ç®8ˆ[>=¹ÑßÝ:ã~ ˜n‹£Cœe;,eÜ4ŸX)†e@î¥âŠ"Сµ*`7‹ròìn¼ Ú ñ=ÀƒŒ«ÞÖÜ€6ü¤[QIdÙåsx‘ÉA€Ïˆ}Œˆ¨Ëd,aE8l ÷4KG:”x¹‡=Búa•œ£lϽì@øÉŽãËRÐ:Ò_HÐc!cf¦­ÇVŽŽŒ¥o_­·{ÌÅdMµ°õÀ4l² µ¤–r%!•0¸)–R%0¶‚+—0·÷8øÁšaà[4ÕÉ‹†AC!°é-ù'd· –Š[t]ĬB©[BkÁfìÉÕ@‚öЍáÅu›˜„\glð´]ÔŸ/¯™^þI‡´ÄkÊÓÐp@¾K06ˆùH%ÞxÛ°7±­ ¾’vu ¸‡w§åÂ,5MÖ$döÙAbmBú«yýœÜÕì¼¹:ß_Zb¬ÅžÕ¿NIÀÁê‰*«=HQFÔq¸‘gÔ Ñ[Cîý§áÛÞJ„•9Óq0¥@ü`Êsn&Cs5âáÿÉ›SÉ=·Û·sœ‡z"Œ©AŸùoc4ÐkY©ƒß?JCoTL.Êá7>CÀPzÿ”cÑ—8”°ßæ¶ Ü‚L1÷'´­Xz€Ž\ULª€;bOµ ûÔ±·àö ·æöC€f÷ ˆ:ª¼ëž×[‘m·”]:ú&’êtj¬¡_Û•Cëû®dˆøÏá¥8DûÜÐN…»¢Ò:%JJ¨—Çž9HŽÅ$ÏeŠÍä ÚyzÞ² ¦ýŽÆ[âв [)JÓÍk ¥ Ÿ•õWco3aÍÚçÀcY¡yÃM6høàðç¯ØÕ’&ÿfèµêü͉ÂÚ\<61>4ŽSždÃ/ö=¢CÞ_7Õ$¯b±Œã…ë·˜;a!äGä¾¶Õ Œ©’@½]¤`ýeáþ¤l‡eGG©àÞx¼ò¯<5šÚâäìéÎÛZ«?¡ã#œdbƒ nMËMUŠËHéJáNå§Iåv:·ÎET96CR›þ2ìThÐ=-½4„tsØLÜ4çf\*yç…åOÈ·|Áá‚çC¸£T?¦„€[qŠ …Ôá/9ÛT³k\4£B¾~>€ e0nƒˆÏžZ8„)L"MJù‚¨ƒŸ9b5]™^åžã !G³¤iÑRrô±øŽ¡ÈÉÛy"1ÉMVÖÜ;ðÓ!*³ƒTTÖ‹1{º š.IÔ"é ‘q Þi׿Q¡x;VB!Zcœ4?[AúT Ý*™=ÕU€h/éȺd~Óè‰GŒíô¹0ÌN8dz¼öß, „?!bÿ¡¹>&\ˆ[ºg”ù˽m÷½'» @vä›ÎZÑVξë 2e]=_FW’O.úÜB}øI]—p§Ñ‘¡6úÐÂ*£x±:/´_þAØ„O×^¶Ç探ó¾ÓlVp„oßÌÍXM.ºM½˜fQKíæI^¬Õ9O‡c|'(õ•—» íÓ7KÏÕ/©Hñé½ÃØ ö€sn½Éâ`_ó(OÝ%2 òË‹[‹ß—ÿ3òÚØ¼ðϽ_a$š)Ñ90’EJü•\F(ÆÐI¢ ô¡q^ýWîÌ CÈ—L&†Ãl%ØúpÑ /¸(Äp÷mc‹†«‘Ä&bÖzí¿¼“ôæ—YV0Ê0̔̂LÙòºPò¹Ä Z[¤]ÖâÀ‹¯%t,ÑM‹>Ù¾’m ÅQ•1U6ŒŸa~„¦í‰'£ÞˆaS‹NPFÎgR7lºß¡[ü–9)Ú¸4on|Ñ_䯗›9»¹ø/-Oæ¨}nƒ-¨3ùG“AÓ£¢þÀÑ;’÷3#h-;cALýµ q”N§ðcé.Áæo†OïXù#qÒJÔ<í—¼¤ÓÆŒzn™io‹Ï£wû´±ÄÈÍ{V»ÈPtPa ¶†‡&,‡ÃB¹ä˜ðCQÍbE”Éê“ò’öyA õhÅÀ†£óär$•à ˆs¾J‘4AåéXsúA€ýüä*^æh(rúÿÕÖᣡP¶¿ÄãoPàx~í5nú´ó꺴 Þ&äjdñä(6Çx¿Š’cy°,ú”u¯$Ë$ÚEî ä„hý3b?Á1ŒoÜ»èíùY™¼Ô„^Tp®u›/Õ"Õá#÷ôûÖ¸®]u›ò9xSO5õ]° $n$«Ùc¡"¯Ò ¿ç|ÌÕPÊ-“äé?Áƒ¹¤?Â쓺4*HÉn ±60¥J·)f×ÊWˆñaÞɇÀé `kG¬¬û„·­€~«MůêÿÍÈ;ëw¢ùHF:üi +ä«PB²}‡¼ƒ_ÓEQ‰š§MDŽäjÙãHv&¼ Y¢Vɽà(R⽪ {RGŒ†åï£o*b5¾SìM…-‹D…“o3Ê÷ƶlr4ã†ÏpücsEHB¼ò²å~Wt[Ÿ†T…Ûi- s]3€?r.ɈÁLˆŒèò›¿m§«¤Žù’ÐñÕÌx÷²¡B΢Ê_&Il6ÖŠÔs•PZ"Û|Êc'Âu¦°Óƒ)xI—Cå“÷ü¨±CsчÅ38fó4{ÙøŒT3yá¨ã¦”½7W½ˆßLìF~[x­Õ{5,Ž›Ãq0Óº|* á4©maç~b%ÌTä7Êz™ØâPðþJtÄ P£¿T0Ã:3ØUwØB<Ó¼ÏCZ¦paDLŸëæKƒ€36S¦ D s÷Oõ¶‚N ×Úò†½€@«r£7ĮǜK ¼ËVÿð&žKkrçJ3¤¹éš¢ˆìNô“\SÏ«ÅËÄÖ¬\§4·[Š—SPÙ®<®*ìŽR9ϘÒE\%ö÷^àækÊ\–~ÛíOžqUaI¤žd6ž™.ü:•_9NüCë¹"õÊ̪:‘ŸJ£Üí,Mjd°qQÈŽ÷ƒM/(Ù±]ûÝ\l÷ô ¤ „­î¿ê<ÎÚÐôÛz´7 =§%ñãv¤ýŠú˜ž¸º Ï]s;ˆ…@4ÀœøoƒYvO¼7çå# G¼=4õr*M¤¼·ñ†@TPLðµ,ÃË¡ù؆s4#ö€ruñ ¬“Ö˜Ñ1þ|”#æl¾ לi´¨šqSäÂoާ€ë™ô,Gyð¢§òm+$cÏî\Ê7Þ¬ù/¤¹c¶oˆ‡€1cZ©ÌMë«QX‹?‹S[¦³•µi(]k»)Ô…œ™ãÓÛHßênë±»Ìñ;û”KÑÏ]Žì½iöVÑ>¢3Þ˜ÁÁ˜‹X,ˆZÊßN—óЖaQ䫃¨ìèl÷Ü.#è¡7² Ô¨¬&…›ý®«ØÍô?iºÓ޹‹‘°ü‚W!¿^ƒÜGW  î-×6bcÇ̼õeÿ¦çgô¨ÖRÁãz<Ǭr—3/Ô[È-õ¢™{@l=èhcF|fcä¬p>4‹ äË’† ï\ïƒòiÙüá>©Ù‚¶3sÅdéþ•ôVÇ(ÙÁ‹®dM;‹Èâ ¶~½[vÁ Þº£xŸ äqmÃÈKÜÆ%XQ¿Ù™ŽvÿøÀøØá°Ì7‘@¯ñbƒ¿(+ØÎ«A¾#¸’@ÿjkvyßÛøøD]ñÓÔ6‰cy”(AFç›–sÿÕh Ë©æ©3mh;ÚxX&yC@%z_84¶ ð;½_i—êÑkÝ`œÝóç Cí!ßkí8{sNBÉÛÝe¬ k@ ÍõAY$¢œHŽÃ™®MbHÆ.!+O(Q,’É,¾²ÞŸë÷ž“ÐeÕ›ròçt›À¯Cßòƒòˆ0K8ECü&¡æ1JËO9Ž!!œ¨C:7*ॼ(ƃ †R%3·¿¤§JØkòÅ „dÐåDôćø¹ë‘Þ(ǵçÆÇöKsª‰ýw°æÈ™5Ž"Ï|Œ¶ó¢¦làùêÔõÖá3M4~ž*ÖôÚ1ް„„ÞÞ­G‰H‡Zá(N;a5w êÅj¾)ZH®¾-\M)ªŽm&__P™knu^g:‚Gw;ù<ávþ‰APm_Ì…¢ —î9…8#¿Rîѯ<ùÇÊ“u­ÚgV‘Bx`1Þo‚~¢«…¿¸\ªÿù«-p­¼ˆ8˜wPIqsJBÞò½Ãœ “Ï)¯ÛXçÞñ¦Qr4Nâ‹(÷5¹‚m€Øëæ¦à°HZ˜ÉÁh¸SÎù³Môу¥då.‡éX·²¸TÊO~NçÄ–Œàf :WhtتÝdvÈjÖÎÎG)MØ&,ØJÂÌ;˜±(¨ŽöK’D¬=ëØ™÷Èu³ƒ©”“cøÛÉ‹'“SÝÑuÓeçཚd)œä8³22“XÜm®>6E憦X|Â%Á/ðõ†™í‹ï-M 8g†wVèAíïŒDÊ,AÒàp½úä¨Í …OI«ßÆ“ÇB+ðlÄý" flPùá®=2>Ð$ ®»¼/¸èvßlDLÌ‚¼·W±¬¦9W‘amÓ‡¹»æÔ(­¿ÃÔâ2©Fv¾„¨6KJá½ëž†Í‘ž¯FžM)9¿˜­c~µì#Ko4\•ÕüìzÔfDCësW?•5- J¥uàÖõƒ­óZ~­ÄL³Ëjœ÷ÚSd–vË5˜§>G¦« +šøjy*ãJÙ –pêÿ†ì_¥ ŸFàUû:Ïø &T3ëoŒ?sk&SÌÇÓ×4Ñ“TlóUE¦"d1Míß‹¯Ód3N3J9õï«áÇ€dlîD=’qý;hæûzÍ.°“»OýÉoZ'+ç›øƒSBìÓQ±8ÖÝ oz]!wÌÛ"¦A‚ÏT®’ëЛ ¹NF†Gª×ÄE¥ d÷ßYƒ#z+DñUKœKb2oËh8hü_T@ƒm¡?±M„ÛÒ|•Ú4§3ˆ Ç¡¬¨RM¯ub2‰yÍ>6ܧ†0ÖHë(ôÅöHHp G ]‰alЖºNf#­âÜ|€6 Ñ” ”©î©FóÑÂu`áÜóJûWr›dûÑ}Ó¾*6dý[ÒÌx‚–­6ò”n¾š?ס4Å4°§A•´¦i‰LøÛ…9¤·T¨88uW²ijûˆ)u‡?Ÿæ«ÿ™…"9ê>øô¹6±q…ç·:ßjÛ[4Ö'6Å êÂaF@Ò{p½G†¶ÀK'\t-©/tħ@¹‹’wdníœ"¸àGf¡l·3cDƒó@âôfEÄ£8€ã¾÷8¶Cµ6ÁÎ3$¿:qæ¾vÄÁùðÎwãŧ#ÈŒˆlÕÄ.0dà 4XlR÷Œîh¼ã„wÉ~ö zmµôUDip~Ò£!U2‰Ugü¥(¾‘«³ÌÁTo…î‘ú\ ÝsM=d"$½ì~ºþîG-<^ÍÈmL›Çƒ4óï–Šÿi{°LzzëŤ!h‚¡¹¨bý=v‘Û8¼è“™Z@ÀWO´†Euö‚U‡ÿÖÜWK’ê? £WSB‰*y…ló¥Ÿf °†%÷“({g˜yŽ(4|à>hÐ@¼ÅGÌêtÉ}FѯëJÑÎì™&מ·&ný%•nõ‰P—þMDÍý)^d1÷,;Â6ž•’Í@‘Ú¦76ùËTÊd凵áVÖé“ÏÑDƽ^“E`\™Mp;ìèTÝ—ïÃÁîÓ&5½Aa›í}ïJ®ço?IÛ_9†å1aºeZcªeqS $sò ðZyÖÌÜž\i”ï‰C>î:—‡8¦›>WÇ ÙÂ\ }/RVÁYƒêH4&—Þ—¾Âñ}±úñ7…NäÖEå H[ˆÕõïm({‚¬"RÙe¼RÊøï[‡^¹±ÎV58Ú1W/âjùk»z0CP»’ñýÃf<³Ý ˱]¡’„re/¼ÄòL}YãX‰Œ·•5€Úü.£yò¨ó ¿õáýA€i†—+2Xù™«ÌU¯í•,ɘFpBj½Ú}pûxvŽ…KÚ4ŽF4Éê,ß›?é³u8/oOÕĵÇލ 0ÑÅ®5JÇ #ÛŽB&åBýÔDÿjë5+‰¶±>áþ¦êÂFãƒÕMJƒqž‰´¿h~Þ[±D³V@¿äptÂ:>iÍ‹ùstçMÅl~˜ Ï*g ›¨kWywup¼çúôMyª`‡ÿ…=„D¤`a4S^¦®x®#b¿ž³ÝŸäý(*@4Ö&×W ÅAŽÝˆXN,KX}¤$žˆ¶z•’ƒB½ƒ‚'Ë>{‡Z¬V•5Û÷HÜ+ïôÕ­h§Öœ ÷l WÎ \A ä¨ìÐhêPM,¿ó-™ù±`—K6{¯˜ˆul8z4êÔ¢Õ˜YOëçKÍ/EÆûµ]æ!®ç/GFn#Fœš¿Ör½05‡ 9ãž8KÅñ¾.!it&ðJ?1¨º…¿õb" ¨@å£HsÊv‡¥·›OBÉ}ˆŸ©PXþ91Pg74Ÿ³UU+fÆî³gç…å-Ð>f§è‹Ll‡Ìi=ìPú£g‰ÎÂuÞ ³âOáz¾úáói8°òÌ0ôë¡·€ðé€à¼ àºGÃ)Ü#kâ<½Å­Û‰¹õ?ÝÐH¥ ^ÇTè¸Á)ïªB¶ÛC²þÆ)žÜÍ¥o£*q—ö+ ó—Ü•ŸÏ¸_bÂtB"\9÷5ŠRŒ5mELæêU³H»þë3ÙÉï P™X¾mlÍL™ˆ­ä ³8©6ÞL¯Œv·ôî´Ÿc[¬Ž›?åg%û"ê=`ªõΨà q=ƒè”-×?]"ù vjÿéC‡Œ0ufqß4šñ•‡šf䤱*ëøÂ2häošÅY®ˆßUšf –Æ¿Ú^Cy¼8¶/âdœG?é{óË9[u~bW¿f–œìS-Hw7Ï•4T˜ZarRVÿ®ƒÙ‡¡Ì3ØäBhõïîøˆ5ôÚ4]E5o8̉P9+lèB¨ ‚lx-ïÞòb~æŽAAšIˆ ¥jjc_AÏ-€`…Ùé˜0û}â1ïJ3º®†À1­Jë…ƒæ*”Ð~®å½ÉbùoCmµŸ.?šÿpÖëƒPˆ¸Ú¶ÚÔ6yáãÇôy>>BœA  I—‹%ÌeNþ×Ã;/æµyÌ•ÊüIôi[Œ£IvYþà»73Ø»~#ÑÉ ‡‘…7=jB{,ÁQ‰*sG=ÚK‰¿úŽÙ>˜À„É7ó]þ±/‚«b¾ð ²ã=Yžµ“Ev›i–¡H™h¥4¨­7ÛØ6}¶áýž.T?ÆÇWWn äHQ"¿óüYFŸaJåÌ碭Ýß1P–´›Mse0æ‚?›1Ó‡+ä |t¢÷Ò°Xqs`õ¶–j+ƒsœŸéÉyyÉ쫬ËKöÿDÈ}§1aJâÀ0 Û‹w-&œmU àfá6«YTÄ3Vc&Ý¥¬ƒ]íu[ïW={íÂå«CƒK¸W_çU[;sü3‚?l¾}(ñ«8±º]Œë:e€1‘nÔÚœulƒv7…N‘I7j}í½K•‹Øæfh—aENèWåïRÊýÕ#cš–*e6ÉêóßhzÆq~Èx Eİ‘MrŽÅ"áívZùDŽ·u3 ‘ôÞ<òÙ]9¡Æ)jìælE¡~Æ^\}mÐÍ=—l¾mî¹’ÿƺ%ƒÛ*  Tw …ÏÇUÕ¾NÅ6;Wn}kL ¼!‰¦D§$œèZÕßιiWƱ†NØz»=3Uÿ¶#w ðîænf’$—ˆ|Ìù¸þÂK+‹[6V˜Ç„ÄÎ1ò’L} qÞÂqµf¥Õªyž×‚FYy‡0ò£ñÜ{4n•§FBK‘P“ˆ…Ëà2 –ÈHj'×½Û¡hU"ŸT7üñéPÁ×ÅB3¹kBFa«›lÎ¥rÇ}~ AȰO‚ŒÖ5\Ë¿qÛ£S)Ãútè6 ùI­{þ4(RÄ2ÄÛk<Ä-Œ¸¡ÓZáÒ{îu|±$Ä:UÄ^:í{¢«§ã5¨ó•¡VNª£¼Æ©$ŽØÌ6Àôlp ”“YÃ1®2·jæè¾œ^ €¼á 4¹h ‹sÓ9Èqv$¶?QˆivǧD°&ãt9ÚRõN·û¯ß§Ö:òÍŒŠõב$JIŽè(N#J©š%\€©ïNÉyšúúª6bãüïs¯°%ů‘ÊP¾ýíЬX?tô×1¼¸y:ÚCŸyðPÅç>Å^˺€øc é|!@;¨,aP†ºöx\„ù’®–ɖ柣ô|D"Ûñ7*×s Do|Öc«ïGAËl”9Þ ®lÇÇ]¹öµ)ŠvÐŒ¦×¸Çöå›9]˜ñ îh¦oä­ó¦/£X/GYšêybú×T>Qìȧ5cÀ‹Ÿ%!hí›” º|^EÏ€uyÖu‡[œÚ]tJ„—.¸Î¢ã!¼à ÀìͰÏ”?~Ø—½Ý:ÿëÝ88UUU¿ø®™»«—ð >yQˆ›b 5Ù$-ÛyËØå´CØÄ]POìÌ6Ó²yÜÀ\‡ sâñÑU^ÃJDŒÓò/m°Uº}‹­Œg’°Ý”·AP?\T¤„ø¡ºèè.—jB`3\OŽ]RÑ6uuÛÕ¤V|IbtŒ Êü7J{<’¢ÿEê6]ÿp¯¾éœëÿ$Ü4Mˆ¾‹ÔÅ0\ &Ícõr^§‘H‹O…Bü˜ŒP6Hè‚O|zõ>î"Æ2Õû0Fyȵö^í[FâB 5)åÉžU²m ĵj·Cš‚–cpÄ-oÛKŒIËyìø8>+\°£Ô°{ÈÇ:Ì&ºâó÷ÇV*‰^J@«ns!¹–¨ò‰™ÁÉ‘kaÉóõ˜oAkêÏOÈaXvzù¥Z(WÓ %zoÄfž‡¡‘C­y§Š¤þØ8/f¹e-q\œÂl¼Å’+Ûú‰ù‹ð¹õ+<ÎLàMÙH™Ýç;-Ca™ïÙ(ΧC~Íýžgèðú–•>tê‘ݯڷ7ÃÙÿH­mòˆp>RÃ_UÕ·2á¢×žÿ¤](ÑB¼áŠÒÅðŽ\aU‘§¶Ë(5â¼™ƒµ¡ £j X´$íìžKÎ5$Öô ›¦5œÂr´×V²žøe/¹Z è¥2|(ÙìØ/}MríÞu†Àè›i¢¿XJD¿ûVßÞ™þ懖H%çƒÎxúÃnÁ~®³Õ¸|à©nOF™5r ®A_ 7ÀÕ¦pOÛÕz%ÉOšÀô^ VYsŽ5øp·}eœ.c¼v»^L¨-1AÖH”Uj÷º<ÁñãÿG¦uÎ)Û.žvXòE"„ÄËTñx€åðà Xëú8ÜѨ<@Ó;ÁŽçM÷Í–2 e¹c$•€œê.Z·±QP{¶þ*A Ö°O¯Ï*9ú!a½…ŽCµõ+Ÿ™ÉÂâØ€ÇÂ]Q^@2ܰ~¦ ¨¹À€¯žŒº+Á|”/7¶8Ú*¼ù³ #vÂDÐ+v1c¯Å != à5VK¿ò`î,ÒÁµï[—»¬F EÄNn3oüÜœrè…Tá¶¾ˆmWX…ï{…å#3‘ω‘cS};ßîDÇÊ1+„xÍñ㮬ŒI€Ñ2"òêàCa]VTP^6[B­µZ2zÁ¤ë5 ÎOGvÖ@Ë#N„*E}}%Õ$#"dN¾…œ²¿Áä;ÿëBj\Æ“ÆÍÙ {ºµ`RÏÖùG?ÅŽ!äŒJ±³L15^ q¥´J3 êhp ÃÀSúRªÞlp*J¡'ãg*bMBôD’)ÏÓQèk(Àq°Ë*æ#’ËœŽtƒ4ž£õ³4Ž µÊEU/ˆï‡v϶ÍÚÒ…GN/´Z@®<ºÜúœ@(ØlŽ÷l5†QuQ¹‡àp¼,ÔIx³ãœëŒØ%ô#[íÒ¾ÚD¬Š ˜6-;1UYçÕ"y×~uç׎:ŠI´äÀÑG\’žiKò&ld0sƒª[â« ºñu‘v±T> ý ±Žz,ßÅ ÈìŠðOmÝ6¢.ab?bòŽi®Ý¿éˆÚªȕ­†õékÞ*ßâï’äqx£$ø¾ÃO´e‰2ð§ E)XèGšÉ ÇV.V?a` 9ƒÉ¤á26KŠeÏú%yðÚ°¹Ã~ÝMŒ6™ª•í«úQ”ÉÄñô 7På/Ž˜¦ý‹i;—ŒOX* FP\|AÚ? N4ø4›P8#Š¢¢¶/)‰ð“ÆþQM‘(ûtfè·§žBä?™‰ G[ðc„/o`×UŠÏÞêÌ–ÙÇÝðåV§SÝч-ÿ¢”jÖ᦮Wc'Ø•Ü|xDø&°ð.ô$5¦ùû˪öã6”æñHN÷ÉCmÑc?Ǫ°ˆù‘¼'^ŒÚ=[ì€uºa1‡¼GËšðŒnø"K ÝËcW „*8èòÆíii×¼îI ¬šs‡g1=eQMÚÙãà²Q¤ùo8«P|¿Ô?N)H>Jþ¯7§Ä^K¾ [ô𸉓£vÞþ>éÒf‘îy£þo”E½åò²@D¡cº™“ô‹„Êkƒx”ü»ÅÅɦ³xîïÛ¦ÓCE!yÅ#8™hQE7ã`½oꨨˆíÆ‘¡ÀÁ2Óÿ4sý-ï|Ò#?Ñì®tŠ(éÿÊù¤koñÈû½„ã!Æ=3®\5W+Ø2'ðP³†•k‰2i¸“% Nš–¨wÏôXãòdz]{M*Ê áOT(¨£b$Ëav·šnÉKò!¼ÿǸD©6×D@mQèd·šiðáÍGrÏ×eÂZ?µ™Ýh]W%ºÏKó&b6·éÝ8Þ"èG?sú6m+q’©%:º’²<©0iy—µúNÎâ]_eÀ«§ þ+ÃñXÖ®v¼B¼›1]øŒH}•Ѿ`‹ô~0yµ5–WÜÀ¦ZróÌðdš’á™;}§ ZÞ/0Õ©+'|c±xõ$„rÏ$óKk»ä÷?¯,ª"Iáoˆð+8?(B4(@”åÄp_ûÇ7®°nêk|Ôh$$Èï³rLjX•60^ ³øyä:`lºsKÿ(² B(ÐS!«uÀœ÷.“UF5ý¬­ëgN*ÈΨꑯ€9‡4½¸$ç·+É­9©/æ>ç8!ÏÔ‹U.„6zÊÜtè{a5Bõø™˜ Ü’ÿ™s$:%ûMn°=¡Œ”‚m~6=¡“à:–ѤÙéÉí1I¶ð§'3.Uß‚Ýô¬ ÃjQ²ì”òTΤbx¤'Oôa™×|$&F»!.ÈãÀ S4R`;q¦^Åì#I†õ(ç?êm‚TÁô([éTìq9ýd’d—Њ÷U ¿3ó³zpñO¡¿xØN£Ý}¤EG4˜x2‚5æÙÄ3JÂÙšU¶µçX­'ÆKP~ðDb¢{¢G—ð”–´ós=ݦvÿêoK7αÑìdeëïUÛlÞmøŒ…œ†ƒœ¼m4Jmº,™œ#eì¡°(cPìåãi¾‹õ ¿ö0ßnÍ+ãü©ŸÈPÍ2Mн.²d‚ 2.}är{û\UÎ@ rhç^³Í´y ¼Ø&‡Ä˜¨øÔ8=jÇÅL’,f9“Ð1aß4X2ÉÀHQñê0;Çn(ãâêýæe±þýæíô÷¼Í`H€{¡Z)®±ùG¨éRK¶ˆh_‘h?Pu…GÑJt5#v‚Sj•ÕÄüz퉬'^ý ²×¯ÊªBtÉ̹ÉJ刊zOÙœ†ÿÅA$Wá>=¾ ýX.gêw [„à*…(š$ÎÔîY亳E¹k_>€ÏRÑñ×ÏÕGdÄ/#¯§š¦Úž„³â˜ó_E`·ê€k¶°C1 aƛᯢ˜Gú¹`ÍxAôÐLEÌÔZ$ñ#äÌÕ•k›^²¸U|ƒhq[0*ŽÐ·²ã)êÄvy…¬u凛ڻcgâyU¶°™˜HŸ®Å|ÂgÑ$r^V:!Š´Ö³çŠþk¡ <Úz‰¿ @ììÍSêA¾sÞ Û:ߨ‰íftè8Ök¬·“?&î¼Ù>L+ í°Ê‚ý¼®†ïOŸÇzÛía×vô¹é‹e!Ŷ3½õŒ%/ `j„[œ~ª×ºHXe§XÏš½½PKkYÛa'ì‹%ì@Y –´‹Ï/Ï^nêô>ÂÖ¯ïPåá¶`  ÁÙkœ†CqÖ£Ù…~ýûh¾ûO¼]Èn,lôp•J3ì^f>H®¤@þÏwíèOa‰¢ºþ¸f‹¼¹/ôAUr‚Usúð9l¹¥) ¹ i¯5¤_yb¢I Àß%Û¤LÓ¬äXQ˜¬dPÂÈ® ìÁФm0+³“_lÚ;&MQ¤úJã}Õ#ϨnˆašÀEI=²$—ÒB„ºó#2ö„ôB¦I¡:õßÜx¢öéÓ–hÚ”ÃbHºŠ×+g,'dìóëUv‚(Ê‚wCœmvgG7 γuí¸bv|Ú,àë'Gko¤ýaU€Õš b!ý`wƒKÄ…Ù‰j£MÀGR ¤š• xj#èÇ3'ÊÔørŠ C †@á5C_Õ^—±‡)Už&[\Û6‡WtdÂiŠ·¯];Ç7„ïKÇšÁJ¹ÑI¸ƒe-/dè ýS¸>öŸ‹Ö?´‡ìØ xg…jm~ÒmID›|S ìPž9«geดTÙÏ †z™ºÞ›ˆÓí’ ŠÝ²vGëaß òìSÖRúë_Vð¿Pv+K˜Œ@¼Þs£¤ÐçSq°µ‚m[.36ñf¾Õ}¥åkWçð!bNØ’ƒ«@,’°Aùÿì€3m=QGßd¸ÞÙTŽõyZ›%ªºrç£Ä¦ý̤•£ðitod‘¥6o #¹„;pÚ–jâ°xݪk'Ä3fÄEPû–¿·KtŽÌ¶õÇp½t2‚ŠÌ $*Ë›pød-î7 QÿÆtQm*„~¬ qªœè†NŠêÛ€ò1¯ÓCÐÚ8Õ‰aâ…ô˜ëµŠ•ˆ2/0ÁUrÛ#Ëójž^Ó¿Š×†åã l ÅóÛuÁE§jSd@©pmÖë”Û‡´¸5ÇÞG.ê«Á/p¤"/lC¡HÅ +}ß™SUðÛ÷Ån²‘Ø$,««®|_õJkUÒ÷¯´I0tä4Žf»u¼ÌƒûO:(šI,ÏžÎËÏ6cTc k†º©›¡† lûtáMtÇ*ö“¢ `aµ­;8Á%ÓÛLƒfÃ*ά* ˜¹Nß”ÏÀwã¨m6ÍÕ)¥,˜:&ièÆ@ïG«øV†#˜yî ýåZŽÍ& nrbœéb'EQÀTòBã‘]þÚö×yk-’&qiæyRR­c†ÀPº0@éÒj 1ª1É.¾F¯ ¾,ìû4䓹ZŠ ÿÓ‡zÀdvø¨ò¦P¶rCâŸØ¨UAèiªìÿµ`ƹlÌZSŽì˜éû—¾H<“c‘e»-hýçשÓÇl«Öd’çªã®ç´ ‘T‚¥›—«žBñ„l@Ðc¬LrMÃýúDy—6À¶[7æ»øŠiÌŸƒêœàWñáý@at“2; í–²m£Ž‰ŸÕõñ vÙßæA›¡§×%ïb4w\d,U›×N¬ï#)/µªoè…;⎡h4¤/7 EggÔ%BªÃLõ0[é6Ò¸¤iÌ—òÐè‹åW òñå¦RŠÆÆ‰ñN¢’nn 18ÌÝõÍÜØÌÍÏwØm\oX]gèDgÙ ´°—ÇûŒt⃾ÿfYÏ™MÍŽ©†©™XkgÜ…À(ƒ ȉã‘ÔÚÓ¬F Qˆ~à“ºh¦ë|-ñÉi!ž¥¤ÝVŠa#-…†Èn0²‰Oã,&޾ôEè@»ñç¡‚§³žì*o‹öåÌ“ÍM SŠAÌoÒþ}É ŸÒ¾fL§…6 ¼Jk_F}OƒFïÐî+­rÚC—v9驺ö«°ê>ë32Ÿ+Påšòâ@›»µ“{êÞj2;+ù3zE,l²bÈ"t&ê-¯Œ8#7Õ–\}gžCVàèKçšDÐÛÍ›Ffl9Ç[Œq¹eµ 2NÏÛÜ߀¡~{è° oçȨUØYrÝ–CÞÌÉ’.kDM&Þ±\¹¨Ü¨pþfm]ä &%2–gCÑ=¹¾Ò–2ÇpgQ ·:i–„IË‚%ïÖ! ò:yãjl³Ðƒ•›ØÆJ×j¾×ßÑú3>H¡W˜_fy;*¹OãŒç÷Û” >.›AÉÊW¸s‘×™9üld¿èc”Þ“ u5¡Ý°ÉáJb˜ˆnA2Iç]éN/–j7>Ì€îb/û“¶{cÂîÿ`Ì•f~GQ]囃XóѤé®HèÔ¢kò˜™ íð¹3*†xüÞçâÅœM‰£àÁs¸I%iÔ6³þ@V™Éòô©¨,àÝgè¶œ{F¬ü@‡uàBÜ`Pq^WMt÷ #Œ<6fe( •dn0«Ð†Ïœ øÛnTaÁñ¿©Ú‡½k‚‹3Ÿ­aƒ¬N@,4°0!/ì'ÓÖ%¬0GîÓL$ Â2I1)« ÐM“:°á N|žSŒµ*á3Ì9w݇ä<37Ý9À[S°¤À¤ŽsÞ¡Ýû±"ìîÀ úëzºM¶çµOÍü0ú8´ØÍ­¿^à\ñ dqŸôSCm ŽPæ NkW’äfµNU™íFfo¿Ìÿ-vˆêªà›+Ù—ÊÞéLÄkýF3 â#Y¹&£¥~¥Bviü¢dY2Nó­wÓ¶ûˆBôö%ƒÂW’§t|•ï¢$û¢ã×)'c8(¹J:Ñà,ãaµ;¼éù*Ê®îå~û¬p‚ØÓ`”lVà³²—&üNZÈlÙ¼ý` »´½«5äù0°waeÿQæžmtüCçýÂïQ$5#e–4mÔ籟†Gw}yg†¬2 ¯´ð~‹þÝ›E:?mi¶Æ®˜ÃfyÌø”Zk“l€œL[<‘¤vôï]Ï@Æ=)f„0!èðœä6üé¡öqêýýB9´8ßÞY[ä ‚¾¦0n#WfØÎ“ÊÒaði©$Ì¿.ä@ì ºAg$øÊ?ò@ÜõëS³?ÆZ¤ŒõM÷ ˆÃ™9Õì÷?c&PîˉŠ7°ŽC"5$;哤Ïn£8ì±Ëp-:Ø’PÁßÃä@ø‚¡äv| ÄFÞûh¼ ˜Ú5[Ìñù?n‚¶Çl`°M´¸ Q®íF—X+ȰÑ:hqPsöÀãUFH÷µ;ÞFSey‚ç‘´!Q zª6.ÇL°À¼žòbñtmWÚ2ó'KYdªw–j• Œ\í—5Sꈛvõô´ &?ÜC¢k‡cöƒ1j?ŠRÛ_G À¦™5@-5®$×îy2¶Û‘ñ¼$Ž*iІߟeýxÉ€K2̹€$°83ê r$YFð·•Òkßä).Ãû\c/€*«pa®QݼöÆ× ê€ã*=÷¦pÿpúNÈút#=ëZŒÔ=œGªgSáû°Yh°ßò¯ÛèÑ]7}¯R1í`4Éå{ ÷þ Áfþî!eµuø"ñòU}§Ù€ÓC —ý›€iàÏ)j9eÕ ­œ˜ $|¸9è;ÑšRXRQÊ¢ qÞø ,€•®›M¶0‰1ÈËèK’[ ´òBº½9–Ãin츷ƒ¨¶Ï'$×Èžõüi˜Wˆº8ÌgÔuhVeÏûÂv•Hnd}²aÀVKUŠÞý¹ÕË‹Ú÷î4¥­Tù6n¬yÁšLûn\Cæ<"ÓÍB£Z«ÛÙ0ßÿŒ£¥r·÷®@XwAÿŒð±=(ÀI±ù+Ž}Kj*H«ÎO¦ÖY:¨;v‹(V„îdg3ýÎ%jí¼º—}ìqK¡é‹/åLß ¿U7Då-V¼˜Ú?Óßž^'ÈâšOa€ÈboBãSyèduÔô Úú¥~–ßÿ*úh,eÄUäå͉¶9€.‚v`•:Opp ^F_§Cln=Ç‚4‹ò€@¾5T¯|¦Á3¾•eÀy‘²¶Äï{pf½®Ua#_VIUcz%"F¨<`]c£¼"M6´h¸Bǰ¼"abÏîzT8„_§Éú!Îr_Ž Íæ¸„ ,~PŸ ÷èú°ÅýWcÌ'T4£d;ÌDÖ–‚£ÖI‚ôÔûÉH6þŠzRtÐcœÀ‰ ôpjáòYAùo›ÕbLžŒPžðÁ$à¼òòaDÈŸýw›%îÆ«¤.&v6©ÿjçÛ¡é³èÛæl€SäÃ}X…M‹œ£=hR“å”Ä%›kŠ”™!8êh>á ÷*žé6‰TÌÄ&ù x£Õ üÒƒÆN_ ]æ !¥œÁ殺–ºÔËå!/-%U:“ü±æÊ7}öŒý\÷g["f1*ÇHðV–%ŠÍ¢äb"¸äØDÅ"/Î#j2q÷ïÁ c öè„ëD‚^qaZû‡ˆK/œ†Û€·?빇i¨èÁØqýl²¾æõú©¾ÌÀ¸[œC+0-íódÖØ³³ÓºÄçq¿Ëw?¸‘Ç þ Fƒ6º³b»@Xã ­¼eË8 `Û’eµÔIv¹±€©%‰Ô×irô„@k)Ø«¥ËV¦o ›ÙÖ°ü´ÅÅn…1+­_ÔŒ‰ƒkžE³øµçÃ%صÆxI9/w]Í'U04\;粨²÷ã'‹²d8¢åß+^’o{d ÞSÃÒqÍe{‘™–Åõ*Ïfˆµ¯×¶-¸ùîÍ)Í3àUu…r  vd¤7’  ›ñB4͘~è ·m‡ûäô^Ž0 üíqô˜~Q‰=Ø}l¡s) dËû ~‚`˜ÊŠÚ´¡a@È]U¯3Tß™Ãç÷o"Ô5jrR2¸7~€”Q«*IEK‡­«šô©B=3a'.:×¾b ÊÒŽ-å.-gþƒÇÔìõÈh‡Ø*×—1*éÚ©=÷ÛÛ ‰æ@+ñ62€?›…p ü‚,ò¸ô Šë¬MýÁœS]éKãÁFóå·LÊߤ×èK´ŸÉ¦¢À›÷쀧rr‰Í^Íš¼ü¸oa%Q+Ôç¨flX¨\-¾Ô-…Ífˆ¥ÔÏËYE¹ûo´ÖÏÁ™b¤âËíuºŠE‰PælÓUí†ë¿vk,?!¿´ü^ïà*L);¨×}SÁñÌâÛë‰  ,Z1P†IPòÊØ‘ówª±:•óT”Å»Æk±ƒ#ù«`¦8³ê>»ÅÑdìdûf7±ãV+”Î*¨K„8Ùù쌮VZ¤Ý¾Æö0 oæÿjÌù#TÎ3Z¹Cò7ŠD0bT^ÿIñt©ÒÓtMšòÑ/¨¶ÞpÃäÎÅoöHÜÜÂ|úÖcbÈJû‚¾¯âH&ŠÑ1nš/¸CæHû>ýGY¦`eœ†$ሢAãOwªqH¶êÿ Ðå¶gO”K.¹bÔ-@ÊÑí‘‚®FbG`õÉÑxäë;p”qÄc\6¸Ö=CÛFfec« Ûð Æ4@08’ôÈ€PbdeoÕ½_ƒ£·Ú¦¥à|¶ãìÛûÈ‹Å|#$ÜÊ Ð,P®Ú›­êd›ÏÈW GX‡l? ɼð*õ¢’âª4³öäBîgÇÒödøsBÿ¸]mwV&wpˆ% Ã\Y&õp·êí#hRGcw:-œ SNÏÅ,£¸ fdlœè(B5Œ6àNûØcʈàzÓ¡ÐOð7Ü Sh_²Á#¶6i {HUøVÒŸïÿ„*‹ônBQÀôŸà¼i èk‰9—ernzlò@Ž e@„5‡ý=ÏИÀ-hØ^^ÐDšßeLÎ2kf†i¶ûeo~ÿ!TÍü*Ökwî"¼Ô©Û±åØV¦^#;^ƒ‰vºÈ)„°ŠFïÜYÝÏÝdG}ÊûL­äÉEÉêÉ*ɃvWUìúo]Ù×—Vr,伾輪×w*qÌ`<à 8í¾ÂT”: Á×pŠYÂèƒh3àAülOŠ®Y =¶5¶â8`¹˜ÖÄ¡´øÑŽPDV áF”>8y0‘‡Ï $‡JGÞd8_'ñZÆ÷·ëŠ@W¹Æçዺ—z»—¤­¥Ug“)R/ÇÁu]tÅšá#øM?*ÿ =Ms£R\…tnˆ 0"Ý¥Ô¹­§¶lϋΥ°kxÈû€ø? •á²á)± ·}Žøx6 MMT\l¿Ú´´Y •Ñ÷?4†1°ðJÝLF$Díê.†òí\NçqŸxú¸¼>GVÏ><Û©EKoM8/û:…¥5¤ó࿲ Ö;õÕ-7œ®Gë†Y)1s|¾Š½jÿŽèòäß)&"¤*hÀ¹ƒ_ÎýÊvZ+È€)cë/ŠAÓnny®%b¢ÑÓ*Ëéç EÊ€&q&ô•åÆ×µ«©è䥣’¨ðú:Éû7¢¿tå{¾zèÎÅÁ𙨒üÅ™•4Ú×|íZàˆyý£z8 ihI&ÒûüuÖ0¹tA7ðhïñ˜ÛvVè7:…}ãcvKó  Áá”Õ œiõÌB™ìé>ÊCÌ+¼®Ç.ž:öÕR¶¢~8eAh$ºv¤<•¿IÑ9HÖRì¥=r}ÐØÞÙ?-v𠹺ãx\Öž¢’L‚V:ƒ»‚ýkJ| ‹¶×ÖXü­¼ç´&£µÞ6#„|¬ÿ©›Û>Ç ¶ŠŒoNªµOŒéÿšÓt ÄÌY/Ó9ðÌk—KzŸªÙ™H}-ø£º¬JÿûÞ½_³ZM¬¡S˜IÖUÓ tã]s±•¥]£M.럱ÀƒŒ8j¤È·Ý÷Z=w†V*§«©MÀWdÊaL=ƒ°x•¬‚‘Gš ìgüE“&±/ÿ5k49šÌ–{êX&CÔyg{$Eèáx&Ý?MÙ™.¢ö9_ÜåŽõé+Úøï.€&‡Bž>U§sÅìqš;ý=ŽOLñXí.‰ÑíVJº(úaÎðÉÀõù[9û]yô*­˜œö<ÿ«~J €8£ý©2´v—©êl€y&"ÞÙ±ÍP=<°núsQ„|·¥!hÎË hÖ™Šú·918‰ÓÅPo0õ*ÛŸ2Õ3Á7DÃÈ…£BÔ_„V”Ûe¼Öå…]Èê{2Üë•þ9[ŸµDèâ ±BƒªƒÚ\¦Ð’EI<œ¦öô"|?ùÒÕ„o!)œÌÇjÔ·¦QŸ6é3†vI;Ø—õ?ç*Û~¢à0A¤}äØýE1MÎÃÄ/pš «±·Lÿ‚ Þ'èÄ[ۇIJ ‰œÃ¼òŽBÌIµ6µõá[«­^ûaÿƒUÝóX Wäè¤ÿ‡Æâãúæøj|/Ørt¼u"hH*.oÅ.ÕOÕ,ÄȉZWiì¢^ÒÌ@p·¤H :|-{¥ÍŠ‘À)‰wÄÄg1¿J؆;O¿Æaˆð»à­¤`ß³¶;+$?YGÍ©·BY°°9Øc –¼xFèa¨ ºCIbn #æ·æê¶{gZct³‚¸†Ÿœ: vÏyÖªÉÜ—» *ÃdŽÍø¢gwÞ°Ão5$§ë¨âù‰fþ u|ÖU†Rˆg§ì3t‚¯AOB…@;£Y»"§¶³žA½Õ戧 å'²wü(ú%Ic\´né­Dæ˜.ß]ÍÐ@˜›Öî È¢¥;t8Úç-wý?›s-š‰UlÔ\q› ¯y‡Œûº%³ Sý+¯ÇYDM/Œf¨ ýãH•µ®‡v>áŸii¸"À¶¬w…˜‰N÷Q¡rBì&¿†˜•*—ïaVûÓ-„ŒÉV`T÷BB×°$8«˜®ûMb“!Iü‡X¼3ÚS:°h.&ÜiC·bë¾\Ð岜 §{›ñ™•àˆnÞi]$С¾ æ‡*ŽïFØTŠ1V\œà¥{4~Ó_ùå:n?1NKè,]¾erÑèû¢jVjß¡Yïz"_Ý“r¶|„÷ä­sœÁ£äzˆðF ¹]\s¼h‘•÷:}¼Î̲Óvñ…¡lgËýþ”1¯¤ãjp‘ëžï|ey˜½Lq V¿£?kɼ°¬´a_šz áY>8©îöÅN$·‚!#öÕ6'q1ô¶Â‹¾æˆ,C2ß®GBbÇ÷¡é­´D¨ƒfì\tÓˆÄ\Q‡QˆÒ!ÒScf%¶DÓ„4‹ðý7Lj“[ú{Pˆ—9bCß’§ÎìVCÇòÚÏöÓÏY{ÀE‘›ll~Bÿ ´‹ÀBv¥kIby¡GÐìê<´B.£uã•ý™@¿*_UØlãˆ÷ÈËä%"¸Žö›µC}Á)Ä@ vÈžt†ý|6ø .Ý`)OdáðET™4 ÀMªF“€ÝÖ´ŽitcC¬‚£GâõKÄžE*æ}½¿—å BµkôPHùkÔ¯.ª¦#Ù)èvt& …pë]Œ¯)¹þ»øÝb'-¿Æx¹>.Ô«BøÊ]k‹(?êí¡¡Uç=ÑCÛNÀæ’_KÌ=â~♢ž(íೆ]Õ]–•<]_#ºvLûg§½+ÅbŽª'íhÝÁ?–>5)^<ôѶ۷:x^Ý@ë‹ôss¶¿``[é b.à/Ë "8l<Û{dLq§çëIQ ƒR…ÓqOÙ±ô\ÄžšS ¸f¿^ó»­6¹  ƶ kaALÂŒN[†Gfþ0Ìñå~×Á@¥:"Æñ’oX?Tz"ëÞìÖ ß° û1÷A-[_ûŒlŸˆVÉZ=Nì|lªÕ¤»x4©µóÚ«Q‹l¿@êÚXkËí÷7Ç£ÜÊvpxˆF4 AiVHÉÝøþã5È…ºš¶Â°Ïó>ß©ÜÖk­°pÒ$fž…pÿS]ö"˜Õ·LÖ5ÈÅÌ+yƒm@Kå…¶æ‰'¨Ej‚CÆ’3¬IŸÅ#û=,O¼™Ü%.2='Ò8A½IQô³Í-b#¢*Ù£1n@gñ óV\½õ`¯wï€w·#Gé3$‰îÛ‰ ­Œ[Ì64Øé«-ýAòâû&±ƒ‘:*«›ˆ n)>%’&Q¥Ïžÿ}§„fJ§äe¿‘œ´l“dLŒ°ïGÆÍ>é}òΈ5]ÝùPÐzï<,ü%æQ HË™¤¶1…ÖU¿¼£ºFòMã{­¯r‹ßm­ºÂGÙk_W¡Pòa~‰Å)ƒR=ÖÑ‹^ü®¹áŽQ)ü÷OæH¶ThÚ%ì’sƒ©dÂà!t˭Õ…Wx‘£<·dº½yWíœ8sÓ¼k»°Ã]ÙI°rˆ ÙÔëûÎ}êõÏ©œþ³#€O_A0§’Iöã©0iÏ®'¢rº¥ o"ž4zÃzô¸*[zo$ÛžŸ`áÕ¬k]¾}ÇÈ&CÁø³Nî@#·%šUú˜Û‹{± }®Cx(°Î-júøü5{³E˜Ö8¡9ܰO¨•_/ÃezUt#MôW0Ô݉ èãÌ1ë¨vÝ"œ9m ²fŽÚ(C½„*Èz2L© GÄ0µ+ˆX„j¾;ýæ nR©Ò´Y=X}¨¬Iø38ƒ<µñ¦Ýp¯ÑË€æ˜÷"]|¬Nø°“1Æ’½æÆW»‹·_M˨ëø²óÇÅ->™HEêðÐ.áÍúS¸ô꼡5(ûo«3Oðâ,Q‰9úHë8¨‡‘‘¹}×tÑ#*J[v¯E S“Ì!vm%Ue+HUê~T%æ~,t×£¦¸IcÔ„JX"¡@,’µÖ°ÚcÇö;î&ü”…ºAu±ùŒïéxÁ™±ÒÉ-»<°ëæÛ‘œêµ'ÊóÇ&qÇ<\}X9CÂ…Ž–E$÷ÙÛ×Åj9÷Ë*ÒÙPgl•‹Õ¶¦–Õ@¡®n˜ ¼ÖêßéîˆÔÐkk£Ðg¦ËÝÌfÒˆ«…Ed·ß5(¡ÓPÅgøj™Õ…#–C†>A\âAÊWj´‰)¤ìagíc6zÎa^2€EG‡;¥Hò cnÖôÉÚŒ NÉRÉJÓ»VFÝšÙ¿U‹-]´I>Ûcy-¤V.W.+*f¼¼‘î‹eKoôÔûÑiñ÷é~m1ý‡Œgðtæ×€Rö6˜Å´nm|QÝo!‹úˆS¨Ušjjç×PúÁ¯¸íŸO¾Õ-c:©åf-‚hRZ¾ÎàÄË6ªlž¾ÜvL¨.ÐÆSzÿ’EöHê©:§îúóíR‘|û¥ÌÐïiùæï1+¶‡}×е½ŠÅÑb©M)|ž¿Hp„ôIô‰­Ææcʆⱡ‡núÄ­ã×ÅâöÈ’æ9Q7~Tt´3+¢X©.„-:û;¥ˆ,^Ýžyó}Ûë¬N¿óK¥TÂE˜€Ã1Æþ¬unSèéÕ¿ +Þ¾¡¨ä‚ ÉsÙS@—¢•Dp/~xà|"k²|d»#ÙýûÅ3UÏÛè>ýR=ÁmxŸ™Flêωöˆ®>¶õ™*ªýo@|Ò°ö¾‘# þ?6¸ h=©/]ƒbÙâmOÔ龦øŸ*]ž°è˜µñÛ5M!Ÿ'sÅE ¬î˜ ûêéiäÐ2¶eùåXÙ!†ÐG¢Ö³õ±[7Ñ#߯Ùê%KÿÚ™‡Ù‚æ!>[Ÿ·LšqsŠò(üÒ×ÈI\=¥Ø1ЗùU1jô6y—RÓìšjg•½vĵ]×rØ=T—à0{šÑ¾š|Ûþ9q›ÒùÈ}¾Ó6ŽÎ#ÝJ1Xíš@´^’äŽÙZ»^Žúß^í«¬µÄk¦Fo§•®½k;°¤?/Ÿñ¢Ñoó\=_Óêå©Ç%ÎÂÿy£”@y]ÞZ‚‘…¯ÏÀ"ðš#V6¢­kƪH™Œw8Q·-SÓ÷ÊØáfÁ›Ô¨D|cZgVÓ|æãößJwr {š0+Þ3k³=V{:Þ~i«¿º½˜XrŽ­NDAlll m¿ˆ®‹p!¦g (TZ‹\ÄaoÁ*y.x©s>(®î•ø³6¬ËE ô¥Ñ=· %‹–ˆŠ=Ë ¼K"žD×£$¸“O! Svi÷1× ë×Õ¦²f³þ¹üÇ1ÙìÛ…0®ôóµ4ñ1!P(æ^̵—cý|{ý¼ BÞ*XéË»ŒÙúøÁä'MÅàÏ“`ÝÌׯ _Ëy^)ßú>¦ˆ—ždz‡mÀí×WÀѱþÑC0P¸Ìë˜÷Gª’&35lÅR|‘cÉePZe}OŠåû­¬f“‹ê •¯šù%L oŽ@n˜ÿëFµ®!gCŒgî0éµF©ô¯Ù³ãÚþ @GXß ž†%]Õšø,úNãúwq6l`ú‘êð/ö¯ù¦Ç%y¦¾¾ÎŒPi= 5Ña§†éÊvv@@IÚ`M-‰2]m¬úï¯ j÷´:ÈãÚ–;'#g.pŒBŒ„™õÜýŸ·‘Ú×@ õΖ0ÓNuãîQÖ²PÝjf—äw™è9DÁ$x<9Â~‰Ê¡±ƒ%%.;:î|Õ{Ú_[/Ôe«0v) Ö/B­Fçuk?7ɶÜç5oW2Ãçeîi;Ô—¬f¸ª¹ž ‰}A£Ü¸ ꢾMY§²)îŒΡ W Ùð¡°Û;ßò}Ìà–Áe÷Ô×ç:äFÄ—u žUHìs}³2>;‰‡‰)äÝysnG’–ùƤÊ"ò,ˆNæüÌ×pla\Ò°0£¢:È«íTq…ïFІ¨éch”{tX‹ýž$öfÚü´{Ÿ{Ñþþ¢°5ÝÆ´°ÍURÿú9V»ù!íÝ•À$è|á]†õjž9{WÇVz|êÊg:óìöÿ°K<æÈN[žÅ(.ö‰±ë¯z÷™Ý_„ý Úšî™ Κ˜:"Ø‚¢…—‚i)9Øë@Ü‹ŽB¦¬ÖI2qö'Bž¶?)’Õ9© 1¦ùç@éÆ-@eW¢†5§ ¯ »3cŒYMäg8|ê§ææb+?É}8¼Ce¼æûwo×”%¾Ikuáô*Чâ¢QËYÍï/Ûßíz¿KëÙ>Þ9j(³)mmGHï.;ø˜#úq¢–šô‚ÿ|ñ³fnöþèõ±ÐBóøi¶ÑÙsR´ NÞO&Ùû#"°/7¥/]‰7‘FopðÜä´›Bù»º|Ù²õ[å‘~„+ÇõgijH‚Ó}ööh{TQA‰Þé 9SyQ‡¡Á•­E˜²€ŸR›¼^±¶„h ³æÞ倕š¼o5VÀ¬IMA`º–ÍDÂäÆŠr+|žêq›­²£·‡þ'í ·ÀÄü®ŽàÚ]ÞÂÿ(¥\æÑ%“첪ܮrÄlÖ1o] Õе®Á™s³zl\¼Ù¯Dø~¾Aúo¸ºŽät¾ \²'l¥!$¤…m(¨,!>%12Ÿ|éϼ’ ‘î(éŸÈ$ D*`tÿ®ZQÈojÞµBÓI<§õ£y4k*éða½Ioë¶oôìAæ¦× üšÄû ÐçQ™å‘ró+ŒIÁ]ö{ßÐù—ت´Î&Röýeü¹x­úºv…×ÆÂ¹$‘…k´–E@ uÉ›·>]ú´©Ï¼ò•WÅK%v=¾Bä6.ÑÏmÞp~xóèsR aÈ‹Òt7²¶å6Ò©]=f<Í×m·(îXBWb\æ”ëORP5å[?.&’‰ºE·1‡Ç•øhÚͱá»;YŸ– /WÉ}€ FÝFÁ9³+9AÆ×Ù|Ílô…ôœÌ$ýzëÎOÂÿó%õέF …hG#bsÓ‡j8¾I·T˜ãEñC]å{ro|À„ hòžÿ£…Iþ~+¨v†D¯ÛGüþPR¡IíWƒ³@»Dž&=ÀE `RN•™—\«t:è §þ•µ€{£.IÇ7{5h°ú”EãÎÊ&†Ûã"Y>Ä= …ãæ~ˆ[¹T2‚þÃÏøNf°ˆÙx¡žîíþg-£Ð7È´ òMÅv’uF¸ÊÉö  ]DÐʳÁ¾Óå$¡Œ…WÐV­år"hý5 ’$‰·‘*Ýýgu-€«ZúîåD¿¦ÔA¢ÍèÀO§]Ÿ½4A©ÑÇ7¬Úf%’7ø[fÛ˲D)äY ä÷TYéj«üo·O¡‡‹ ÃKtÉ”Z™ ÆåÁ"umÃ*@u «^äx*¿Ê©¦Ø5…Ó ébÙ»È=ãåO÷[ @öøm\F©b2_ÃÐ"šÐ_ö`Ö$ï=Y€æãMxå£Á%A矈s‰Ý\J_‰‰z̺q†CWVˆéUÝ|¶Ñ'&oÂä°äÝxÒn#¢•Yžv;ÚÂ'"ïìk¼Û}D¦²½êó¸]òï9n]lú9E~NIS‡(ŽÌT,wEãâ/µ‰¶ñKè &窺Á´Cq]ûÔƒ‘›À6Ì≺B‡™£”yÔtßòÒ¥™ŒJþ›Þ@ŽÂd^+aÏÉ>Å3Ðü¢+ê–Ÿ)?QKìQÌc¨„vLŸ>`¦Cƒ‰‚+áöOÑö@öúDômqyÏJð\¦!¹‰¹Ç>k×YÙ‡v@®.Òˆ«`.*vþd¦È¸ÐSƒ%fî^—»²¾5lL/NCåq p«=¨ûSŽˆIjÕ·rš²XÞP?&¨Âшa"Ff­mGæ‚–æåå^IƧ=‚䦲y^ƒƒµhü¿p½²@îcGª°ÙxI¢ôÐÂùq`V;ê£Lԥɩ^Uý›‰Œ§¿ì8UϲÀ üëUÌà?="Nuueĉ>$ç¦ G=žˆû„(~ÀWoT¥RbÑGîkdEè¬Å%Dà:ÙS„œÍÞ£\F‡n*®ÉLú//y¦}î¿1 Pa³[ø¤+¤º¯fð± ¾S}ûôâžù^¥OU%º½Mé69¤â-3- )ö¨† {¥iWŽ9†«´£¯à§éºÑ èÃI'ôÑî>ÝíE!M­Lì€t圔N,>-¾_4æËÔc,p_÷Aü•ŠÜPlm/öM4/Û5E8¨jŠðÚÙ—¶&%b.lá ´jÏz¬…,ƒ$¨ÛïA,ŸH™"æåpÇ×À„DŽÀý%.ˆ:½«)ÂHF«úJ.¥Þ`ÍA{üøËÔò/²û[6„ɧ¦¬”_§´(›E9˧ãR¶ù’Ɖ$"e—æó0ÆÈK‡ù)ä EÖ[2õ`©Ð…ò”8ä` ö>±ÖDj E›võ!˜¢sÜOåþÌÓÅŠî<÷– ç‚"Ô_ÈšlÇW]Z™?φªë¹(Û2s3†ñiX³õ¼Á×fUô²ø ‘) ¨+Ö¿ðˆ™û”m¿ÔÒáå÷œ¨ÃÍn'‹ªT 69ø Dd¤äýµk?„‰6U'º…„z©ëA×è¼ y0hLÄî¥Ï¸ñ»+§ªî#{dèÂÕVÔôÎø¬!ôÚÍN<šù4ZðºÂÔÆ/;Ì·ˆ2E+‰5Âáx¶\…“]ýû*P—7d"›ôH¹1%Ù£øÂú+H§,°1¬þªã‡ýAJ¤›¸Fòix9œ•ÎÃÓ:lö©á¾Æ;×@{Öù¿È|JJ;²3U¨ª°‘P=Êyç-ßL ìâÖ$ ¥î÷-£l¬ÞDœZçº@ABÄk+|ZDXª©ÆÎpÈë î'Ýáµ]òÄŽàuÒºZÜÐu ³j©=ûqωT²r…&;¨QÐ`ƒõ¾jq§ó°öÑ꾓®ê‡ŒÿPiÃky2+{Ÿ²Ý’¼.Ä×{3=§Ø³Î<Êå˜9v–45÷åTCŽYò•aÂ#:Õ‘˜ˆVäÇÌÑ»ˆY‚ÙoJÀq`?¶?¡¾/pà<ƒ}|bDçÿµåÛfi£óE´HŽAp'ªk¯*¥­µSqbdŽXG&l.?{XµW±WvÙ”oä+Û¥•LáƒCß¶¥ý§wr°ëÞ8šm‡Ï]øðëìrwQñÁÑQ þqmƒáë~e¿Á'4Úå1’eU𨻩@<%m°òì†JÒÅB bQ%Lìx€åt`:³gO"Txû¦˜ÔEÐáã¦mßð¾ªí=»r9ÿ¡xrâ¶šã7ÌfÙh_ëuVüq×Hƒ—í›U;^>`¸ƒi´'6+Æ’­îŒumMÿD:LöCrI$aÒ“ØqµÀX7BþfœŠŠÏ B†¶ÓŠ¶Åºâ_ëgŠúƬP™‰dx­wƪ8ÍhµWâ&ˆì)”JBèK»úŠÉÙÈÂŒ@¯O«üѸ ¾Ôó§¿ÉŠ³ÎæO-‰è3ó²]Åxì=5VåÜà\ü‚«7³¯Šo Ãê­ÇY±~a­ù¦À[ãI•Ôy‰ñÛ Ý™ÕP¸F ÆÚ‘Î4à1Ït·M²rxél¸u)D³ Zðh?| Ê*ïDxW¤Š"þƒßͽ^²¼TÖ¦ò÷ÉoñeTªZ¶ï­e¥ÅÉ&Ð'sZÍ~³B¼`µ HŒ\PgS²½eÀ Ñ_¬’õ%¡fR\cæx’TYãc|Ñ:æ‘P`¿V2¢ëÜAdÈÏ([Àz€ÎñÈÓØL˜’fX¿ËC}†œ©¡âŽ w´`Žû$ëż˜9´»Vd”¸¥€X|–°¥”àéU âb[{‹™¢ ø=Wr£‹–Ðs[@^åƒ-7¹4£¥ƒ¼Mne㺇Ž|Ö™k_¹›ˆkšÕ'å}À‰ä]ݧ]¿Yó¡ïÝ9eèÖúÑbiäŠ ¾ÚÏžø+étpE×Û‰r“ßö¥¿ö°kW ‰ÙSâÛïÇÏ3^ÐÒ®¾ÑÝ=–¸z±8t¸2ªÃðŸ¢;‰ƒpbÑ z*ìM]h⵸D€v˜Ü'0ßK¤íºí ZhÂ$œ¹_ð¥ZHFl½ìÉ&!ß’ä]Њ)˯LÖß ‘ø~®%(-Úì5+éINE[q‰Üÿ‰4vPõjš<)ÌjÄ %äc– y£@‡œdÚ §kwÏ×Ïb}¡ÆëzH${öç°¥§!›Áoh§ÒŠŒ¬Z· Û/[É·òVÐñ±ÃiâIÈ멉ôЮ¥vSÈ\¹l%Á=ZzÞ°°wŒµ3¤®Ð5+}üØS =§5ÛgiÕÖ Ib¢TÌäÅSð4ê Â·Ø(^½% ì,©½E\«ƒØŸ÷~LJN]ŸE)¿qEfK}_<Ê÷½"¬Z‹|æNR²ÿÀ•Q¥«Ðòº¥5d‘ÄÙ´ÌPRDìÎ!Ê.IiV†©Àv >ù€ÎEN}`ºµŽðZ ³R8­ô8Ї•˜U{wØ‚DšNUì/Ä™»Â`º°B,F”¿î>¤ÝhQìN ’ 'LÑå·KÖ¢–$Ó¼¾ €–R½ÐSÿá TÒ¼}_¼LNS–¼½•­•ÁãáhôÏöwªQCæãT€-¬­j›¬Q>`~ºáíà4ã²Á@~LðUæh>¶üp YÁýO ­ºð Eé´]Ô;¨]€{xÝÍx[6Ó½‚ïë2u)N]ìsãK\jVk‚]/Ò§•IÚ³RÒj‰GλÕGÌò8øZ¸Ël’fçdoeã¾A2ý™p´ö0ÒÚc.»ïÈ>|ûRXñnHWˆ¿+`ËÆjÇPô#Ë£ˆâx%÷]®ôÑó¬¥&„Ào~ ®‹8}ÍÃÀÁåú”<®™w­³)Íë-^It ø]ÛM¯Õ¦Ý7?KÓ;6x=fÞ^!yÍpçàøL“޵Û8²T3£µÐw/B~Áí8åcµ’d•Ä›ÿ?÷W‰ ±Tšêi˜*|ábÖ%ÆÈšCVʽÀot¨#º{8)pÊè´›ó 2d™SÀ2jw×0V!—(f”¿¬*q—ICI{ú£2 ê‹ ì •1sÇš‹pû1v÷0R –÷SÑ;<=Þ^[•?¥@}Ëí°à ³ŠOy }š™ï•HÛ!Ql¶»®cÜX Äûµ\èÇÒuIš(Mx‹gô~}ÁðèéïZ@&LEŸ´&d_Ì, ŽÜÒdÚ‡-½GpTìdÊ«²¸‰-6š´O q¶Õ5¿h1—‘<}&ÈåA®ˆAQBìÎø~C4$f|:ÁÝ9h@à‹Km^ªíñ§G:ÜW†ÅÐÁ‰K2ô±le!Ëvá,bô¶¯'f$G5ä;ºÛ3VW\ðÇ΂äQZye¥rDûeK^#J)áÑ_Úú¤‚Éšˆ´|”݃™Žˆ±›W|™»sŸ¡{í„R¹1*Ç_‹¨OÌZ®}Èù° u8 ž ÖÈæÝÓ³bÊ´ÊÝ‹´¯¡íàd<í騫a)%:×ÎA,­ !vU'§ØW¾Ÿß–§Š°K# óžn>ÈO=g‡l)‡VÞÕ·NŒ;{ÞzëÏûh`¦.õrÅÙîʼn4¿çïH¤ÆteP/ªOÿŠ^ aX)G>QpûØóx6=µU¨†¡Eªµdá‚䃽qô ¥|wÇùÆZ½èD–²Ë'ñkV¢$M‰bZðÛ{Q@áéÏDÝ7ŠL7Y Ûv| IEý02gnjùT$ùs" ™À—꺀”9Ô–SÈavúʦÆ*ƒý‚Ñ@Ï ™·ÇYOQhL)øð©óÐxmè5œw´eêì°yFðÉÒ·V?$ãXù›Î*Í’–Nì@´¾±‡PêTêÚ±«™„%†a£,r©g^urÕqÁ…×cXòíØkÁEÅ0IV„…ºïmÅbîŸ4KÞ $f\Õjìe¤B‚Ï ±ú¿j¼x]wâ×s¡3dqÇìÖâ>±½¥þv»Ýš@Z*wÁNŒïÐ$Ír´>std²–js”Ì—Y u¶‡8³P,V³¸·”ôw“C]K§PÁi ( ŽP^k¼ŠÙßça 4 ÷¸k>–&\í8à1Í€þ´{U]_V#×r>ôüK· Š_ÚÏHM%øQÜîK'pwÙ $DµÅn§Öº e÷}á™%$ŒwF U¦?›<šS´q­]_»yÓb˜ýz÷Šw Dà(JýË%2†àèaÚñÆ¢ÀÎéZŠy+z`D_¹ðÃÉ9Z*0½#z"9–àLmpõ¶cšªêˆÅÖˆ¾ù™ÑÄ1Jç_2lÛ|Lñ=Öœs, #f(ØW–óª°åÕ¼èdÎ~Y*`±¿€¸Œ'm«ÁÏÉ>×Õ87 iäþ;²†|»n+ÈAj̹CŠþöPØtJëà6AŠ{˼ԩÊÔ•ÆI]=ÖŒ¾RrÙŒœx"Ëœ4ÓŽÙEì;ô‘ÿÚ“dâ»/ Û|#ÝÁ4Ò•ªÇgaܳ7(s¹æŸÉJ9ßqÿGäSE¡+ùã/a‹»¸®bß—³pGF/œ%ÈèWÔª.!róßÍü’)mê¾Ç‰Âúdq{_æMK ¼ jˆ}g:ø×™ýÝF@Ízˆgþ†eÌÁÉó˜^ÕÉ×–b5è´ §*‘5r6ÕÀÔFòkÙi§ÿ‡Dû™Œy<ãåü°ÊåI(8'‰–¥,ndGÆ }É*d*[ C€ÉGù è–DJ—ã^[$¡ˆ ö{ÑímçuíŽ<¥À‡ŸÈÚ$Áé‰ S8YΖ‹7Ø©®S– ;;nÁ¾]ÌPFú…/fáâJl²ßgÒfÅ—-?+<ãåàÀ–—C©ÖLÊÔ]B¢vP (:‘Ï1r ½5]Ú[•ý×/(±ÑÙúÊK ì÷Õ !SÄ’6¢åÙÓ¹5./ -0&åöG€¡‚“kš=2Gù—låÄ'aõn¿‹um•±B‘ÈÉ<±ôض¦&²$žw°håø°ˆÒ¬¾l²å¨±™Îezxkoy7QM½xPzŽœƒ° /ø‰ ïþ"ï–îÎ#|_@L£èn j‹ÑÐÎ-µÂªÛír:]r‘þð‘,U:穽:ÛÀ“»p°;l2«½K¸wºÌØ£J±ÈþåôÍ'.1É=ëºDë{=.ÇòÄoèP= «.²ŒH­¨°XÃÙö•4ì•69f<ÔvXúâ Z4F*O§ÇëŽkyxÖáJ¼¹¹ ”Qâ¸CìטM ä'°?¸ÇXXÈým!†|éêRE.øØMŤ¡õ‹«`B~ß@¿hr(£ñ£ÄC¼òr©È£€àÿxª;zJGé°ç'{°2¶IǤςŠí6lQØ)EúHë8—\Gòê¬äDXj[-œý¾^‚õ¤æÃg€û† ñ­u8òHÀ@wÏØvœSj¡¦Ö|52#î§ÿ¹,qä>2AØ+ ÓTö†Ú}T'š†¶giT÷Ü}ðïgÙùë]læ°“·Ý,áá±4ã oÀ)ª+"áB OH2{dp¥JEL•¿okeDõ&nXÑ¿1þX쌳‰ŒŽ¥TuT½Gƒ&q +Œenä„:ñOƒüÿ×môØ ãœ™êÙÿ¬¸¶•1%U•¶ËlÉ +WàpK^ûA”êê˜S‰×{ûù¼© 2æ—C¸¯seh:^Eh´–/JµÁ-¿p–Mú¨ë(ŒGƒŠ-Ý"S˜'A³bäŸ'U¸3³´Bö’ú[ÈD;ÎEu8³ÜIšò@ip€ÛYºÒ¸Î/¯æ¢¦lx$ òë‚§Gšs'×ãÁ˜Ë uŽo9 ÒO¿†ùl¿$<«óîÃÂzøÒ?[RÁÕj¸-Åsô ï@jmñ*Ý*„&¿{Ž.¬àc“|©zU&C©õ½«öÞW~ 8GAü"{Ù¯b¦îŠðr«àB ÞpôŒÇÝQˆ™‹Î"†mŠÖÐÃY”©Ç~uîümR„=S¼/DŒãáË4„c÷.få‘ÑFSE¦ã‰¹¡©¶ã™b ’ð4#[m6¯·— –yfì‚A7 |´.t€Y£©M±±Û™iÅíò‡ˆG£Œ6:›r©ù·ÐÚ×ø¥Ÿ{uÇý™Ä(’ÏÖð+†ðL.ÅùQ§Z’´¹Û@·»U»–Þ[Ëaq>wŸvWþP»‹ˆ¼5 C‹éÃ3¯þ¥½c1Ö”m †|êŠû;é™׫k1¼§<õ;ËžgP(œ”’Ñì3ðz_ž£ tÈuS~Ëœ¦pã̆e;1/Ž}UŲ~>häÚš[º-Z±Qzxp£µÿªbØŠzÁbŒÃ.¸lxèüÀíÉzéd›O¢¬#^SÁxŒ?G2®û°Àu¥ 5ÚûÆ*ôüài†3Ií?½þ?ÁHÎ%’K6å…#“Âö°H”jµ×X"¼ô«Ï2õ…Oâ&FU›C‰öNä` “ÖyJÍ_-Å‚ãÄJÐ^çÐÛò¡9´J*®òUh{?¯¿¶÷îÏœ_HÝ-=bl®•šÙŸ©žîæ­whf=Å$>ùަóüfRÔLUö&V˜ñ?ˆ’‰á8uÏ)h`•K;Σ԰‹lÞ µ„ T$Yô!¸êűW.’ßÒh M¨ýY zÖH™÷ÚY3Ÿr§˜Ù¾âÝ/úTÚwXÐ^b“Tý»ZRm8à&Üä¬È֩ݸö=øbæŒjµTJIKdÄ‘ã»ÔÃ$l/ëÕhË“n!µÙæßEæ6ÈfpÙOË{l¼^c ñ±Ex9åùÃn†¾ÝÜl™¬ºÕH| Ë•taXáeAgIÇÑÿø›‚.ö­iE§žé- cí ðÀ«0ùxâÄõkR åqKhSâÔ5TÛú»ë“ã!,cš1Éܪ)p|Ë/ŽOoMh#j•´›ŽM=tÚfg¡Ò®ûLjDBÂhŽ®þ:Z”¦hF,€ð-+-ÑNK5ì¯ìjómA6-¯ëÛˆ ÑpѾ”*›hÕß=nÖû?ÎtR-S`1“ q O¢Å/îöx<³'“†~PXA‘—Îï±IËgA 0Q0‡CXú>];[øãìhÇ'£(ÃåšZqýEˆm‘“G³9¥1Çj>Ü—@˜àîÑ»ÓFyL—«˜ %oü‚WBlJÝû_¿ãÌ=pY·v/úòg€¹<ØÏÉõݶ4ÙéofÁ_I4oÚ] ¸‰PTÌ/ˆ¡2À»Î'XºÁ-Ëêc–p‚ÜEôÁfˆ–·xFˆˆþG;%óÙ¿õ©S¶È•l‡Gáüó!-uŽY!5*­3U¥—I Ýo3fg©ÓsX¤ž4Á<ð}‘×`5 N®8›5Jzê ÍØ¸#Pð{gÇ•=Ë(|˜=<ó`² >OâX‚šß>!sßÅ=µkBÅÙ"#:<.7£¿ÄÅùz•Š©ñ‡²Q9‡½ÔÍ–îꨞ•‚u±Ï¡\\Y]*‰ughM£ÖMŒ$l-’|Õ°•s´”™×ý‹í– ¨ JÌs×ð`ºÿøºOb¹ç˜dë-8IK®Ü…=  Å¨Ç¿{š¯3QêK'èîþš®jÔ$’ëÒPŒ®ºEBÕpS÷òÒé‚—Vu ­SÁ¬óÇ¿1G &`)Í„Øɵ^*îÄäÊìÜ«dš‰oPç´@³\Jø•²¡ƒà÷y1.&lßssn˜Ìe‹0Íÿ=¯+67›‹ª:6”ó3Š#9G60xÝÑ;676çIBo¢ ËÉÔЭ½¾ëB ºc_à³$Gop-ZRöZÚ01ærì¬Z‰¹&Nš[ôèKáô³$¦ô]MËÓå¾õõºéÕk6ë5ÿ¾ §ó‹zoÄ\Ì^Ÿð¨·©­lተJi®Îi+S^ Ø=n#¤gy©²8q¹øF'/‹vftpÓ3/ª—™FV÷¹E}ä«4ÁÆí”Û ¢Igí8ì —Ò!lé×Q½^ …&îdtYÆ­u¬açC´³úÑ¢Úáy¨x˃¯d(:,}Z^JUTÒŸÒ7¯øE€È±Z”Etš+uºƒÞcÆiCµ×i%T‘«V˵,9-]v¯ÏK„­b ‹íòö¸˜ÎwªØðµOh"…E>p²øåX¸æ?¹N·²ÝòS³nG¿ãuBÉ_àúÎÇþÈ-¨Ê|* Ky70ÂtŸ*¯ ³)ETSkÞ›Ùb‰E[6ZÛ•€y³ËcCb;ÅRÌÄ՟»¥f{zÓ–c²ö"¾l™ÿ 6úì ³-£¦iŸÎò©5T÷îªøÅ÷d­ »A;ÔÎB½YÝÚ[4}yܻ‡ø,¯ a&•bÝÙQ#²vI‰æùT#3z&o«jäø¯ý 3tÃÑÆp`åœñ¬j6:Ú}¯¨j’s0¥SLÎßšIÒ8‹6¾È·bR§3¢èòÁm ÷ŒÏ£HÑg{– Ìf18]3³,¨Vã&Bä¢2GI@H¿^ÌQ÷ó€ÀfèZ÷¥ËjÁ L¾Upö]4ŠZa…øŽèzKµÎ!Ϊ&9­ߨÕRh½Õ-|ÊBéL ÂøK*ÿ>öÃH°dk¥YÝ5rÍ,Œ¬îÉiÈÿo-åU È#œ²;UæE®¦˜ÃšôQS(jª-^¿cúqö7M@Í®êþIÖ8nñÂùüj…jjóPfFb‹U„d¸µåbgíKeCC<í‚C™‹‹pYiŽhƒ>ÊiJú—ú¨Ò_h\õW\ǯÓõŽŒRë“2+’Âú7»…UDb­@µ”¶&Öº–C^bÖôëüiIE¸úü#`õU4•$¢9à¬?L2dæ´~X« 2b‘ê”dôU׆ «™Ø ÔO·^1¼À i:'[Ùg¡¥¾YvÅëaÇðƒµzŒÅ Ìú ¢þ|ñâ[°ý ¬'´Z»‹JÚ ÏÐ4Ä«á4«38*bSý$8½{¯v´Ä2êÜ3xŽ‘Ôˆ ¿‹¼“§ö’xl+·mPO¿òKL¿›h)9ïI¸W=ß» ¤ÄÃùB”9cK ×O­¤&×—+>îxÄ”>ŸÁ}Åpö¢A<ø„Ë/î ÿ9·mq±M0¨æÖ{ìœ3`™þY—û~xzI4 %ÞvRIÌkp|²pwâ«Zy¶Ä¾9·Úâ ‹Vêt½´`¶ùÞóÍÆ?i–í±ÏUi· ðAk¡Žnf8ŸÌÉmˆÑv7Ì}Á¿Z2ÎÆ¸ fÞ2Ã÷*\Iut5AŒD¬çXALhO£5Šöþ+Qêp_PÓ|µ8ϼIÝØp.º„m¿ç"ž7«éŒ ð;ùNVå;ïöƒÛ-ذ ]™¼NÔkóZôûù¬CE!Ôÿ$#ž‚Èæzc¾“UØÏÃ;²íÎTàƒ.PYw&ID3ù”—Ù“×Âd§kc x©ÒT~þ„†X5 éq ©`¹ÿ;U\Û ±UIQf‹|Qhðî29Y:yi…^d¾ï;píU%¦Š/Í4 ð“Ü|No…|[^›Ð/„ h&õrI¬@C׈dpæ–)³O•(¿ß’1šC—çõ_ùšx­ºÍ¨$ a³…i¬Ãbà{5Í‘½!$~v$oýçí´çæÛf^¡´Ÿ™ÅçÞ‡ Á)»ži6äjrzZÄEtW jÏW°`õžz¥°`ð¨ØYsU¿ª „éÐC¼ó›Ï×þráËî ¶áµº}Z«öbŽHÖ ÄŠÁZܼ Ÿ»öòyŒ“3&g=‘’‚cuéY§M¬¢7w¿âûȾTñ¶–\écÝAÇs-nä¸:©)Y°ßr̆ÌèqÁ‚ÚžºYZ&Ï“ò4ŸäöÖ:^ÿù€ÐÑEkn²iwfS“Çú ¸•ùð¡RP©*ó}K%òŠZ÷ŠL÷h«Ä¸¦y}72Þt[m¿PluùÄ\3:pqê s*Kv­Ë;Í[ÞÙ®ºš|¶4˜Ã¥+ÄÝu²‘{¾-¥J¶ìG`UMdÅLó¿S<:6‹¹uÓ#»ôݰFB:—ë¤æÍE€¢Ì‹ªíp5y;¥­Yo.Á:W™ö²mŒ[¹“cöVt`ÆVîCôÁ'1†¿;%–wO?¦•ì;="õæ[oI¡GKž)袷:ë#¶¿P¸tY‰2Ü@kÛ ò}áô¸\|ðgþ$¶¬¶V”@¿ZUœ7…œ*탖„M0·dÍ—OÛû|!¦)¬ŽŒhõpíl’ú€Sâãóî›KXD…j `eOÿ*-ÊyéjI‡„)d<˜6.]ÿ Æ Úð C—½ÜŒ÷î«=í]ûŸ³Y––­{‡˜õCà ñ ±w_Aÿ~G:F»Ç· —wñl¦Gš²•œÚ%^‚#½;I^8ÚO‚ pG7¦{m_¤,>©æáñmÝv:„ŠKó#çíà ¡¦ÂÑzþïÆÎƒ|ë°·RÔ9³Í2˼òíÎÃcK;I Âïÿø ï‰èý¨†Ti1d9ÅI~Ãå;&G î±VÛ „|òeÞe½DÉz½2]YýK³(À@vßÁõ-¥‡Z§7m²}:îÙJ&ÎO¨To—wÆ:oà#(È>Œ ‹].J!43s·ˆî^é3C©[éÁ&šß¥*#*T÷ÆlEãu8ö^p§lî œ6rËd_¾–ÿÖmbÒQ½4Å©ó?«@òßNjÓªd+ƒËNIÍ “]{«g/Qó³ \ð ¿TBuÑ«pä©Ú‘®boõ2 [pBŽ×Eß%Ù‹§ ¿ØëXƒÿéØàí=½ékK˜^‡ÉÑ0Eù•G —ò¸’1ÔÝÄ´ÞÃXçAœØeÆqÍ¿¾m$÷Ù–Lr‡ÖP•{:ØÊ¦nбÏö±¸²;—Znù|e¨lèì¥å0 5W:AÊ^ækòB*Èn9ÀaéYÖ¸ÔJ¬Øº²ÞÀÉFÊ|ò@狇¤í~È—™‚yP4âÇ->åá·–ðoGÂ"Ê’‰æ—ãEvÌYÁo%~¡‡Á\"ø´kÍ×ÃRóÐï .¥|äÕ¾‚êzŸ­ú‚±UhÑÈÚFzDf1CÌ,wjÜÕ—zú Ú–]Û¼Žˆ Åªà“çä¡è=uÞ$üë—·=k_,Ø“×TÂ.Y®ö3>•ÊýÈ\ å.z4u ¹su™é:&¬x#÷œ¶„Ã)w|¹!5Ü%Fª†ô_vþ"‰ì“ßÿ ·ñ´é_kâ÷¤‘ÑD­Ö&i½Ç®¬ôC`óÂiTX,äê-W¸† ¨Ö#4r)£ûWxA€£óš"÷&MéÞ;–¹­Ëî›îovïïBTU–i·ÝPÞ›ލþ¼—¨ûQð@ƒÁôÜ×/ü±ß•B4\œ»ÈÌñSm8oR}ÖÄ VÓêüÒ"Ü 81Ê‘žÎÁ`Yæ]:PUW³ùS¡Cäß £+N"hÏk„ÿvDÉâêÞ±@ÝSÜé˜L„—¨Æjãó‡Œ(<Áo{jíd»"êÏŽfØù1ˆ]Pÿ»(¦…Kil¹vS,:YË@ßЫznïG-§æ­û·³w´]®‹³°€eû«Ñ•W|üùœnÚ^ÿ­Ø“)–Ê8Óza"0æñ D&R«ºùŸw‰s´€!V,ðGÆÚ¿‡åJb§‚)'·?w*ׯ²9DZÕ.À/3J§Ý)“—6Z‰ ~xžd².,ÀÃr~ñ©Z,èü* ·BT2å•= ôPâ„|x£„Ýíoj²ž^f¼Wly ƒ%Ö—›Ê]¢Ô{}%A0®ØÄ2©‘¿L¦Rd?*Ò©÷×3类zæ9ÿÀ ,#ݾäl'nQ7óD&þëAä²6ÓÀĈoQÊ•UÊ6‚Uáþf‰%6Ý¢ZqÝzQµ£'ïéË»èù&ÝqÅõ˜®×²ø~ƒ d;J>"íõÅÒ¨ Ÿ…c‹b2zå–BEgtøÓʶ†q^mrÔÑ‹ŽÕIÂDX jn ϳŇwñ¨ÅÆ–ÊX´8 ÒS¯aä1Ù˜x€ãYÐ*~üé¨kH˜åh ­,ÔÑJ¬‚=ÿŽ?AÒã«*Ïý»ç.Mt•V2,X)•õŸ™\™cdt\@޹ Rí­›‹W¾-®z!Ð:Ö ƒ¥ëésk”?wLÏÓ¤<ï†@Þ=4h WŠ<;ÉDXŸ…yi™œ=°·Ç9]áó)C/‡´nŸ©4Mka"9_JBÃcOÀ’ÆÊ œÿÿï“À5Ö]?ÃÛ-þ)ßÀ'ÇN{¤"´S‘`¤ÏÀHuÌÛ+[,Ò sÈoàu$%@sœ–Š)fN6dYŠPååB[ÊŸ¶ †k:=¦4ùñ>Ê`V€¹e wk-U·š<ô´òªÚF¸è˜jÃÒdN®Ç}©âÐ3xí_>4œ’~-M)ìÝ„G7z’)Ô%À "£ïd&Dj¹5¾½=A—¤ÿüœ |ÊN ®;El‡°¡)zìN]ˆÅmªT˜üdn8¹àa^ª¾ËjJ† #eÉ¥7¬#!$Ì[,ncõh—¨¬\(¦”èð¥ÞN3wªì×RX:¥8©}oÐu!† þÚ!0ŠGúͽ;f›Æ/A„àöBW.{¿&ц½æ!m6Lkï•õ,Éã^ƒÚïâËyØ`â×N…†ÜíT†Kæ÷6ˆfÔÊ1Чõ!àp2n¯`Ïmxúëõ*稠§§â¦ekÏ2Πu37Y¾Jbñ7M&QÊÎù¬Qi;Ú›Xª”¼ <*¸¯0H€ÏÝ-6W§ûtlñÀáhéiŽÍûò”%ð:Ñ–(æxÄý<¡Ákz4¾þ_·6oluåkФbÆ€dÂM0ò®Çt÷#$e„"/L ‡ÔR‡ïìã{ë™Zº‰lJ¹i$‘;>mŽ Å&„ž{D’¨À#¹f K ´N“—Àƒ|³ŽÕ‹Í®Ù?ŸOU0)ÖëèS„“´¹…ú[0ˆøÿdô['RŸé^+;) áeý2³vÞ±IX)–2Ý—È.CÿB¡+0KR ždY#غÏHäa´® l½pô_Æ|=Å(ï(.`ß?fûBÖR½*$ ™Áz¢Â4ÏbS¸ñÚ;Y5U7Ô‰¨tÙì(tΡ™«çÑ6çgYeXA3ãQÇ\K¥ŒYF0šÿªÿ·ãÍ:ëÔÔÕf5aºnÕ/w ªî=PçòÄ4§;pެOî—5L9„¬«’!å¡\æËH;"B¦"’¼LqðQôHK(pI–wg? IJ[È®ÝÚ— Ñë tp‰cdÊ䢒í,` ®¿‹gŃ=ýC©©ë°W2÷oYùE“džÆMUÉ*”¸¾t®D•ñ7üyAP„­í zÓÖ&KÑûšbFüÝwåÀîêÆÕÜk ý[¢™Š÷C8æÍzãȪaT ;ŒCžæË6“°¤èÌ{Zã üV².P”$‚4îΧöo^£ã|zyÅÆººlgŒ±Û.fžq†Ù õ8¸öoEàPÿ‹ýâ¾kÎtìÏ;;d­ÁFŒRÛÅЖ°‚¹æî³÷(é]\í—F‚¥Ü¹ÅFU¾µo€¬(ÙXøx>… ÐŒ£2Žô‰AtKa| «hý“ÝŸ`—Ta> ÷¹®QëmäÐJ¸é[7^Sg0©=;=‚%•ÅÚvfý¨(üüKVçÂ¥ƒÒg‚dÔžm½-êœb·â5œ9¼gDðøŽ;êexrI®Ë“µÛ„ój:^5ÝO) …Øa”bÙÆ£±–©³¬·&ž,V X0²†Éõ5Õ|q@Å0ê“HŒ&p[¼èX=ãû:CŸ¶†b¡ä`š˜ïñ؉qä×!_}ñ²AÇI B—µØKMöýÓÿ[¦eíG ÈlÖé‚žÕ àŸ§µdbÎÜŒ94»vöö!òlÕÒ%¤Žÿ€’–½lüÑÈ:µº @Hpµˆd£¼‡Ä­ìLW½•'Ë#†$Ø‘yØhÉš‚L7Ó­8 M ŠMÝý¡Å„jçØkNœ¸¬¿&**IÑà*³¬°ª;Æ,&(îR.' ÞÝÎödìý°‰/¥¤ØýðC H mÛáÁNúF ‘²¬¡ <Éô¡Þ.ߦ „ôd0ë}^eí)޷ͳ6{Ý¥å>Ö†£äü 3µµÙ1w§­òÏ´õ{\-{i@¯«çÃ"ORí÷ÝtütõJZ… ƒÛ?j A³ÇNÏ gëv{8€ Czð)…‘S&ç”õ!ß,j C¡÷Áv¡!ìFË%‰GÊ6ŠwŶu»ƒi¬[X¾—…Û–rdÜFô•¤P’¨Uê»éøm$™ú%_Ôåèà†¡&Yº0 X®œ;3´«ÚýËâ(2Fîc¹}>ö ¦…@[Û0’«´.s“£ùvd⎻,ÂéHÈ¿÷ÞNÕg­ª©‹¾]ˆ©t_š€ÒJ$—°N 7Ò `àU¼ßweÙ7Àv6a…PF¿ÐÁå&ÏmB¯îkþég ÚÃêû”·i(ÏÈî†ZcõzÃõšäüÔ͆'Æ/,¶ìï’™dñΞÁðö— ~‰Á a®²2¬¹øßAÜ™cˆ;í*ØÓõCëN¦.“Û#ýß…2€¦ðŒxu™r¹©YI}¢”b«%¡Ê¾ç¥iPCÁ‡Z)ñõß%ÐÙPè|ÇB¡ú#r† 'õ·ýßýQú/N‚-ÀPãÏ¥\‰ÊPŒÒm(²Ý8ŠN4s¼¢byj!‚:—5Ø/«TÄ;4Ó†ÕO·°DpGF“Üò׆§‡£nØ]´¼ ” oGf›­Éo~òa\8TÂ¥zèÕ‡οÌy^"±cáè¯TÔÍ]›€J() ú'i¾f™s«¡©Ü;6Räfc|O"ôV4GO‹üú~!å©É\ *h×Á©õv'ÕŠûáClï\ 0A(¬‰‰ 2JÆy_¾qNp~EcÒ&Æý B Á_%$²q?ß"@„Ë-¿ÞF§ÈŒÐæ…‡7ùé5³y} ƃãYÆñJÜ4‹P㊠õë™1ãSXïSÒÏ­rôÙö eŒ55ªvèëË–°‘´ ¿µ;µà:¹›…Ú:½óàføÌл?烢«l{îH,´ÊW•*X½7TXƒ Q SuxÁ_vQ´È?r„¥´˜¿Éä:Ú÷À™î Q3LVØ%hoħsœ®ÖÿçþEì%\r0ÇWR8±Á±u”mÔ‚ù®…$œXþ„eY©.™ËqˆÂ/VŒÒ:ãëâRÃSɇ$.ú07b!¬Â˜-ö$ÃlÎú=YÆÎX?¯ÇªEy‚×P£Š¯l¥§5‹ÜªÊéPBöFä¾"Ôºt™.¥"øC’ŠV¥ºÐô*˜ªHym½»‹éÐŽ„W‹;d¹·®9ÃDý> g˜vçûL‰—ÔbŒâYR+ý<{G‘1g3âÁz/Yö¤µìUå×A!³tÍ éF «¦YÖ§ ¯ñW5~ãKˆÉîë-¸ ûÐúŸ 6¿+òͧ¤€4Œç˜0½AC@U½»鼿,dvHîÀÔãÆ nÇcç®·#‚MžpÊíÀ*ªŽœµ†v)öŽÄ®QgR”þÒQ£‡D¶ ¡-äG8öÜšlPq¸Zg›–Š5é‹áha7*Ï6¸—å>ß­gù,MÄeŠbKYøZÝçZô˜HáC„QúͳٶÁ÷ÂÛNÔ2õz¬lrvý‘T™ {SêÇ[>d½è,[þOÊSÃÇ®k¦w!‘9ʽ®ì¿Ì7öê³"^ˆ‰÷å¾é“Gt[wù×7Â~Ö챆º|o¹$W N”~D,vÈœ‚,CG[ÙpÑp4Ö,ÂûÀ ï°z“Á1VšØ' Ä"Ü4𨗲grásÖ°}ÁÆ´(ñö<̶ý¢Æ·'ºß}‰ž’Ë‚¸ûröEö·–L¾!x(‚·õ‹‹÷ WËù"\dñÒ8höŸ‰oË(_¥×â }øäË ï±!(wËé[¬6Š  ã)iÒ¾È^¥-P±ÄW·\:MÙ]ST‘ô¿a. ýyYdþ•P#§n‰nÛ¶þl%R =Ö«KÓšøWç[ïÕ„JÉg•FpÕd ¶,‡šüöÀôÎis¶~Þ@*j’dÑ$ïÈ3|b±mþžK|ÛÇÜ1{òèØÉü z4k{ϹR†b ÅÞ¨ùÓª­¨2o¨­o7ÇfA£uw¤ZëáFæ~ã›…ñi=še. 'ÿÒ#ÿ½.9 ˜1óчU[ÀÊN¼MY‚Wþ·%ÁÊÊ2Òs¹uxÊÿÅ_Îó„¼’ ; ó3ž³þcñy†èþHÏÔ‘Í@¥6‡ï~ë[ÕïD[Ï›D Aw,P›\ œ­¨Å“îÌš7:·¼@QÏ©2—ú˱•˜ Xš¶GB¸^åëžå‡ž¦©SëÅ­p8Ó²íÒª}ËÎ{ŸøáOÔÜ G”¥TssE’a–¿¯$aÊbñù…~Ø2PŒE§ßïÊñjítN¦ÖΩNDÊÑi?Pr´Ç nЇD_»ì?j ÒZX»<ô”¼U”™‚âBV²çñÁ§|d†õÀÆtñ"ÉþlVkßò‘üñ vÎÁw[¢¬á#‚<»…1ìmÑ]Tš»XucoãCܤ¹ ar›M$»C ¨«<¦ñ”Q ûp>óM¶ñEzT"èC¤Pí0ZãŽÛ×tßå7Da˜…¢ÏZ$SIfr”LÄ5G˜ã•¼4Ž IÉÿ¨ðð w}ºû9YBr?¸Sù±ÇD÷Žfe#äLZ†•+fàMLp~˜CçÜk¤ÝG’X„Yžå!'&P¡3Ã磺JcÇÊh…y…ìVäL,ŒÑ ¶¸Ü†SZo°|÷iHÞrÝë‘J¸œ „ ·Gûg3´IÃ=eä9䇦º”±p5ø.”44=lf#ÊtRa`›JSF$†ܹvü¸¶gÌ7ºR}ã´Ÿ0Q¼FoÈ’©À–;Íâ\äsQ,ŸV:½Wø^sÇRÎKà-ïv´ÏÇ[ÿû•W‘zó"ŸãßÅHY³à¾ŸÖí0üÞ¢z|,ôo9•=%ý$³ëÅìÒ—Y$íB½Ý[áN+‹óÔmþm¬àŸ9mÝ:ÍŠÞIc%m’xU«ØÛªß‚¥{`ËNxº³á[f—Šëfýxañ…yØÔômùÒô´A!D¹þI+öûï,*ŽéØáϼ€ÚüqÊZp¤eŸÔØ?<¯Í«+{Þ;¹Šáåttê¾U›HÈMèoÍ݆&;“ÜÏâ=7«ôÃ;ù,Ío?ÊùÓÎÁ¼ ·:×Ë8œ÷Y[ Á§ñ¶ñÏ#Ï6íûYMtºU`6lö¸NÃàÎ_Ë»Ëw˜Û°Ÿ# …)J„ƒÙuwÁÇZrDàOiJ¾k·.EzáÿfÛ&(G‹£ÕþLMg{aLciÜ3©o®d”ANÍ3¹ë~±„\á™`þw%Z]­é> AÒ¿¹¶õ?"Ú-øßWºàRÆMTèÕ4 Ù·Z]Ìáß2É:yáhbj¦%o6Ë“èÒÿ<†ãáp÷eˆqüsŒ…¹úâæÅúJ8Æ5Gó½–#ô 2µÐå×»A0éú?i±8ÃW/̇9úî@JSìã!dI-97WJÜç fnsQ—e‰Ù•ŠI ,,oúö£TõåªAT¼:¦ÁqœX7ÿû­÷×Ý 6¾U2q\èeùaÛáxÚ9yð®'Äôøïzðࢬ(‰ÈEÇ'_JÞÑçר‹ý§¿Éô~ý¡9éêyýÁÁùVlG½Ä6,ÓN;ê5Aš9-òg@í:,ÓOŒ‚ƒîGs¼ëk|FÜuÜ7)Éì±ÃVðpÈ€.Šß-Ï k¹És—Ù´¦2ë_WÖù†²‰þy‹ Y(÷y¯Fd>-;ýcìaéÃ|èÉò3`Ý“ñz*`ÔÜ(»9–·»¯ÜUsÿRuþ›IC¸¤™³Ï"%³7Äà yüøÊYoãވ؄vGŽoeÝ ÚªÖÍt*ìwø>àÁŸq µŒ$?xB'qfÅ3¦ìšÇ:)˜‡Fy‹ªr\‡Õ£Ï…a'Wz!Šì@`™ @dż÷v1 @’Âð»ccÓQ†•Ý‚]¨3™ŸˆeVÝÉß2]} íqüV ô&Ù[§ âÛM ŽìÉÃTfå·ø<3R(qгéêéM'µ¯Ôí mF™=‹†ÀHhxâæyõÇ­âðþ}SìœJÀÊ?}#gã¦ýü´Íð¸uÉÊyÏ¿¦Ý”KPTp-yÛATtÆüâ ¹ù‚4VêÝøŸ}†ÚÓÂ,ãT×<¥ÈÚÿ:€€žiE°½¥.$X¿”e8Ì3ì¼®åÃÝ@aJ°~) œaÞ[åŽZ’»Ä]{¬âPp/5¬¡‰™oä8:Ù h_ß°àp§š“¯Ôœ…Ý!Æ1ƒÆTUïýK꬘è5„ýÔ\"ôØÎu[Ø„æˆÑgS£þ$jiÏo°§C“ì>u¦Þã29ÀÎÒÏ+"“þÁÐJ¿Iœdm\ç¯Y€wÚÕë{ªÐþ—¦Ï’­]¨ §¬,v øÞÜÛhàOÉ Y Û_“á];ä(qY-ôAmF뜑eY›Æ2(îD¯6߆Fº}W’kýääËBBÕY|¡·OÊ*B[ îU­Ip® óÄü…±4ÌàíòyàJ ‰©m¯S! 5Te‘©…’ú¦[Ïéºn«3 LÃÑ¡Ó+\årÆ$Í”¯Îˆ5Qàâ†ßü¹¶¼âr;‘pê6ÝÔ¿±Aöc÷ø§¥!„P€ÅKu§g©«skØUÉÇhò:´¬À™b8°,ÕñÂcÌA&âÙ+õövô8º6 9ì!IA\÷»LMy*C°q²¹iÆ'¿üè×c:/äJ¸¤ÖVt œÐŽV€ZL?R©k}UÉmò\@ üˆW ÝwåÃתbtnŸgÿƒò« Ðz÷i¡·BÜðÉɬEëi]¹Ü[ØÄl–ª©jVÎhðe6ó)ÝÎnWÌ‘ºåã‹” ÝSF‰Fß“ÅK §–‹,ë°Zâ^ê¤Þõ!Q+Ò x”AœbÈÛ—A¿ŽçÂ¿Úøv=ûÂZ‡¤? å¾JÜÎQ¶{a=)åæòÈAÓÔ…ÆóU.Ö¦*ÅØ¬´‹š~›`3±}²\}«€âšåk\cÙªoïa«2#1ªèR;e°9p;Zµ~-«ähU%žÁñö͉YaÑñœ?Í›TÜ[§:ž‚Óá²CåÜ öÈ[£'J¹]œÑO¨o*Þbr€Û8øù…a¯¨ázïN@"ÆÇô=F1Õ/hƒˆî»ó–qA(ô÷6HR¾5RfkbO?H#Ü”@Rû¼ƒ»æA@þh³1­–ßÜåŒMcnl’Ye7§V"Q¦x8…—7(=JP¨`Ý8a¼™KÑ2°a‡nGõ\>J_¢‰ûãko%œè¨Á ¢fÃ)îQA÷óå™ù +zÚ.¼7”ô%Á0 ÷$°e¶Ô¼b-éКÿL¸PŸóÚB<‚©ï(Ÿ#S­r\jõ‘n‰œrn´fg$ž==¿ÁDE ‘ïaž»y9t“|8_ §¬YéœýŽæXž”Abtؤ‘ûÙ²;yoˆE8åÒþÄ åNEîAšU¦Wƒþß  vzïLéé4!ev,LK™IvQýÕ»§ëoüȉð&Í›×»¬fv›0Ê;èý'HTm|]4`¬LÝ4=cÊàæA–¾e ãì %1ÎHÓÀ“%žU?²ôíœÙ £H‘H‡§91 ±‹ŽsN3"»[”>Â?4lnEÉzi“¡çJdy%ÏÄ ^wWÈŒªÀ:,ž1L0'ÈØNýžÁH¯B¹—ùIýtgY§ä_¥ýÚ»;tЛ™» mšì–íH;õ “óOû–jvvûýÐF2ý ·t,,ß‚¸ž-Ј\U9ûWZ„!+ðhÖ%!v\ .Û™ÞØ·WEXss3D‚ü8Õ5ñÃþS­$pÝÎÜóÌý×{¿«ü>)l¾†PQ¡JþH,¥h[Ë´b¡ßÂCíV¸F(æOèóõ PF‰ û?Ht¶`‘®wüÉ—”uX1ãÔ¾O«dýF~`«gäÞôãúQºÌ;…dXj¸§®lÚã:58ó"T‚ \Kø_êÂHz ·‰¸ÅÊDóšJ‡ãÍÎç«ÙYeR£DAéÂ¥Qw'Ñ€r„x0EŸ´K‹K¯ãI¶åÏã"­Í\È=>«Ž|µ †N&ƒ²¯YÈÅ®hÌ}ƒçÉnˆ_ÑM@¸ªÑbȇƄĠ‚~G ¡²ûŽblãr«à{ Óõðˆ/œX´4Fʂȡ"ÙÜ¥€g²™óÃâ¹/ýå‚=˜GSƽJüBiþ™ñ-«ÂBo—æ6­(÷SÍ0 ®l .9–Ô®+H¨¼e¯×kbU3ÿ ‹µçÐ¥ 3¥Á –y›\ê;ïUíxÙ+!nZ†z$åîd¥™.§l,ÏÿéöÇR\€n>ÑFCLÙ´¿{5Éõ¡Í Þ|£üçQƒÖÇÁ‘ÓÎ\·W”}ÝUö´Mó×yñUtR™’¨1_†÷|zâaÒRÏðóš9ð©)i”+éël<£È‹Ñäûãœã$”ü¨F—<*ÓÀ‹a<}í´f‹¯ëÎ8yïtR·MrÏ-ñ.¿’+ý³í'¢>,02|xo—̹ÿW”Oð“óÖÆ·ˆ›°Þ. FIP± w—üŸWÖÿ‹5üœ}/Eo»ÕÚ.Cà9þÿ¼Cö|Je> ¾mrÊi0ðS¶BG½äŶÉêä¥G¥Â’ˆÆ( (5ê¢×°Â K­§š˜ †Q3LƒN…Üe~Ø,Ö|7?³ÙöcžÉ‡®i?KxL ü ñ‰;Ô âFÇŸs[Åa_wºþÿ0yh¢¢Lˆc—\õ >'Ò¡‡žTxv‡v®¦Þ:ah€ÉÀ7 “,JA x$=ìùY'¶bÍ %´*º£I±HBbqïhx:-øèOÚ›Ö©â(V ¦Þ삆Ӈ/=ˆqæ?Êk9&V%ã÷ö$ì)¥È‘5ãmx}°eVIYpP®(ú&O‹¼ù¥’dG¥‰,ô¡Ù—@Ÿ¥E4†ÅZ¶âH÷ ˜áy:`ut¾ºiŸ7M™"eÝIôQÜ|ô/OÌhiì?3Ìñ‚øyW¦¡_º¼§ÁmŨ/©õT2œ(Ô EÜš7áøðÿ¯“$v9¥œ]¡ùÒŽ1þx"ªs5„?™˜×)Ç9ÈJpÍp<…n‰_íð5^‰äøP4nQ ›¨Îv¯šþÝg˜œ¬ŒIX·<”`½¶ÝáZñ'![î^†·Ÿïý”uŽÏ‘Þßs×¹.À¡\cŸm—ÕoÙúf(} `ˆÍm¨»¢ýâW‚¨d¸ÏÎ{*Àç¬o{OBÕÒsŽ&PaN'¯G7_Ž)KŒz€ð]ذÿ™Šd6fö1ƒöePŠAö[†óƸ‚µ<–W+«ÚúœcEç÷Ð±Ž»ñG§Ö؉éÄáulÄ‹ibÑÎì!Â;iþæÅ‹¹+`3¯C¸½FÜ.hÛù©¹¹“¸´R{ØfQneoJàüp—,±ã³x ôæ8ð4mGBòúŒ"ß6ªäðnlN|^ Gÿ‰˜.`f~‰ð¥Õhà  KÄb*ìŠ:2ÏZNÆ» Q§ÄÞó°ZÿÎÞ¨ú˜ÌÁX°Ô&ÝZ8ôÛVƒ:æüŸpê04ÿ€ç|LVZ½=§ ÜJR>6×Ðð……ƒv³Ó¨¶Å›:ó9)«ä`ăط+ L|­V6©é"óñ±s;ö:¯pt~HÜH¤øÐ=8…œ­¤ ÐFoŠ$<:¥®ÜP1®Œ®yV£8ù†ÌÆíç÷³àͯûÄØY,¾ìå4²1Z(ÁYâœÞ¹B/…5B}ô°Ýoø³ÃÃIT€èÇX¤Ð(JÉÜÏ:)Ö)jØ™5zv1Aà¿ÕÙ=­hV:[ÅÖoY0‹?æ:Äþ¢ã®Û¨U”z6ý"æŽØ–þ+|Á6&­W9<{Ø~ž¸ŸÛ¬a´ÜáEè]ÙKªÞF>¹’CÌFE:*#&˜Ÿ/3ã¨^¶»MWPZ«îäú‚ø•Ëë–Ü|l *au~Kj±Y9[Î.·›ƒÝÌËͧ¡N#g#]½ÌùæØÿí°Õ2?fnÏ¿On ÝªF$ÏÙ²C¯2‚ ¡‹‘yÙ½ØÍS€ö÷Yê:ÔE¤åÒ†*ôÓ àÿ€â‹öäΙhŽÇgq³#jŸ¹èåiºJYV&fÝp)¿µWœp+™‰%䵨jk¼d?¥°Ý^=xÒlÜZâ…ñòÇv‹ÔWý—LX' ì+[†ÚŽŽÆ=RQ¸å æáت p[RbHe—€&pàŽ$‚%áÕ]º»²ý$d-¬äg~äÆTÉá"[¦ºœnÎgÌ›‰ÁxÒÏ¥ºîd^>)•o«_ÿZRfó4Æ4$ƒ,­K€øè¼[?1?Ó÷dùÉŠ&3 ²¡uuäÙ'«´6íµ<“Õt·$Y9Èûe»ú#Tqn€0NÅ 8Ðû Ö‹@çˆî PŠôQÅ¡°ì¥N ì1Ó†àþbnÃêø¨TäŦ¿´­¦Òç Àžµ(ØíÁþÒÂ-ÕªÞ©|žˆ˜KÒbfŽ‹îü¯Wi÷MC§å–Ám¥ºP†ß¢üW¡ qÍËÇÇ.M%yŠ;*{[­>ez.¡ÐçD˜>h•óƒ,„á'3Ž2+®#a•åµë.pÆw=ƒ® “/óï…’Ìr~ƒÍÔ¢Á¤oxÓhó3{hÊ¥Ö_Î÷Õ$ìddÅŸ)ÃTFúl} Þ{ˆÓG#5êˆíщ˜§ ïÞ=úAËBÚ“¦t(²ã`îtûP‹2' ™´ƒ¤ÍÒ¬Ýö›c„xðëbà„-¤`(‡sÈ/˜™$#7­™¢­ð äDŽ4I¡;Âc¸„Å{I… HP´ËÉ*4­#8ºŒqÊ}HwôX–|¤FúWB‚FËE.»¸O…Y»ðØÅzp»Wnãþ¶AYÁ9tN3Ÿ¬cÜ€[S“ U%Pâ;Ü"ãÃmËYœâåûˆ©J|XkÏ|4ÞÅÕ á’‰¼w4¥Ù"‡G }åú³íþÞI§ H^õ»È"[qõUÿ×›ví¬“c‰ÍœéþÝóšÑµ ¸|:ÿ:»§•ƒõRkÖËL ÌÓ–¬‘㱸 íùÙe•Jò–;“Kxá•–sÆtí­ÈÒòýE/{“ÔHÆÙ‚¹ýÿÈØo‹¼0þ6N*¡S¯¡¯AˆãÂý¤¿KÛP*f†>G_ßî$êô(2޾Zôc/É7oDJ\p¤7¥µá·ÐKÁ7S‡_¯¤@ƒÅ8A0Ö3%Žý¦ã1ðn2>;sô%‡9 A®{ø³Ò¤UÕ–Ú™¿ªg)99I¥à…S%™›UÁðgj*}ìß9Ö&±m?]ÅG†ß[°G׺¤•Ë ”º* þäáZE=¸Ø‚X¾×&áP©Gsà; R¾>¯ÿæIÔË›‘­g¶ÜqÅ?ËU/,*…µ;Žø,>Í?ý÷L‰ð"‰?â \Q†iúû(¥“ ,D–¾(‡l§»K›þLšPØw@Ó×ìªÕ ˆÞI¦OŽ1ëù¦ûßþ‘U¸®ÉÞÕ­$B7ó†gܤk2Ûþ¿s™"}CmÕ´|_¨Â#C¸[D CImïáÃ`_Yê||/ fÛÆ nùYP×óY\•2W¡øto¼åô+ø4x•w±ÐÌÈ/wM5³*lé"D ~}Ô­ ò¡ºÚj?Xaœ©Ú•­e †âPLèM‰èí»¢ßN²ßÜê0ÇZãJž»L°X¦¿ ¢¯m6¿j3”#mÞå.óxIJf^€DOÝ[âuF¤Ü’±9xè–Tê#]8üŸ´ ¼ïšfÀj\i&AØxÿç3—ï|ÛOÞ½pΦ}³¸„ü›Ï [¡<£†@#™_%%-NyI›“<ç½6³%æ@ìÖ~‚ƒ•ç¤zv`Zš=–{ø%·~ÉËÈ)÷F-±®fŒU;l~«gÙYØžÏ&bº©%í”@qíj§BâŸuN{MŸR¥“ô¼ýaÓž&€ÖOô/ŒOÿ·K¢“]ZãùðEÖ5÷·”ÍêÔIocï½3bÃêËЕ¿†ø‡ ÖwQ!Àù¨r¼¨àÌ‚ <œ}ð<@WÜ Á'âNg®§+Ÿ]N“9ä>›ò~â‹«wPîGºÈR¨ûKÅ×ÃK’Aze1ë¿;XPngó7Àû‰Vêر€¥Þãø¬!ÓL9Œ[LŠ-9Rߊ€re÷'®;yÓÓ¾¥ÍÃÌUÈxíWCäõ+5\<ÏÀâë'/[Ž1õw¹Ñ¤L¤¦KôIóœZ§mýH\=Ë|.TÌË¢SX¬‚9üó32sÍÃs¸Ž¤½:&­–¡–aOÝWnÁÐèý,z‚T¸Ù½Ã_bâ¼×êŸò=ÎAÅÊ!u<·§´¢ðöQ÷YýÌ9Iðõ­“˱4ïÉ}r‡ÔGéì‰Ý&…¿·½Ê àt˜qCî¹G§±}¸Áò{LÁè¹.K…ELhûn&Üíš“G_ÙFz!¦ðÒé!µ¿Ž*ÒlÖLê~6mÖÉ,ýmbè÷[}œ¬"äcôþX‰CÕêd6ÝUü‹bk ÊÈ„6žJ ÌÊÒ yó%1¸æ¼™î°ïæ´5ÃxëÄã lƸ߃ýÈuwYÊÇèrRù½ú‚Á¢ªgÜJB@â2=Iæ»[ÒkÆþæáÎÔx³6ÇL..6|µÇk£Q';‹xµú6 o5üØ1¸lZXË<8ðGÏ&r¨1D ŠÃŸz×êM}É“e`¯Cå$g»³¤7×*ÐA1¢ýE¿Þ'3Œ0+Æ‹nÍc¯Ð†nÿò•`VQEã4uQqqïçR³h8ìÉ2f ôºؘñá(ã4J°§üð•J"Ò>æ,öÁ<]ñ@Õj¦/§ŒMùqù½kRV3¦0b~ àGrDSXµ(n†78ŽneLÍ#W«±‰¨vÒ]8/ áу©Ï¾¯ìªÑMIó¹™ëÃ_‡Œ–S©±1nÛŠ†ûxÜb>ŽÃ×zeö„Kèfﺾ6Mñ“l‰oÕâz{jo‚–·‚À²®g™-ªqX´Q’mÚi±Ýó'`OŠ„4MÁšT¿ËôØŒæç?ÈJ¥Ý‰ ^õ÷çñ´ ól´”n`Öïá;€ÑºÆ•Ø ø`„Ü» ò4¹msøœ†nq†††!áŽ2nlDûçºÛÌ×ñ$1[÷¹|+ XpÉ›j¸N£±"{q=$÷‰ÏVV¼¼ðÄt@”D…ûüÈ8ýè‘ï ¼,ñ-^Y}›œ~é0e]Ó_PPg=½OòNcœ¡ö-°”©×˜ ßJÖ»L,n¿ã%„d‡é`Š(¬w²Ñ?‡S¯pÊõ,Ÿ;~lÆløò1û$­ \ªãNDü9j»½{$`Þòm*P•ÞrªÛûÑTDG†äB;¶Í&K.=ž03šä;*òÆÞ¨|œtIT2Z¬V³PK¿Î4Ü ÖR.„…z•BæûïFf]Ë„17pvæD¾Âü=©á¦ºâhu™ÏŸòqÇÝú‹ /ÌÈÁZ½ ­»x¼îàø œd;HAUvp¸þÊx­ÄõÊ ùÕåž°ú?[n3-бj¼Àðü ò4ЇQ™4«á_õÀÍ}¥Axš˜Ä¬œõýœ´Î1ÁÐ46¨*!–çÓæ¾(6ù?"¤Ã× ~°w±3Ù`”í¾¥ñ/ lª_ãQºYÈ6³Ÿ­>’*xóú#GÆìþYù3m¡ªVóHõßö½mÇ“ÑþŒ~Fè¼dÍfÔîd 9e¶Ž ™éLÁˆÍí§A,ÒÆa¯¸ôîrñoJê †éöƽ $Üyx–Æ” 4˜ÒœK€ØÌÖØ®_Á/|•ˆÂ•ƒèc_&†#8V-9™À| ¶2|·.P©˜Ä¸™Ô€ßц¦cþ[i;§º?•²s,àb…¾Ú´>·rÏëªÃpÂ,jŒð)ˆy³TRjr¶qún÷ÚCaH1V}×èxœøŒae%¸ž~ € TR¸Š>§¨œ_èóU `w+{/¹¤B sVåõÉ·2“£Ó܈þw9k¨8 Dm*€¢–ÞM†uí~•¥ÔU×<÷Ô±S¨ \Оê¢Þ’å„Öý$j2g¸C‰,€¤ÒN{ñì‘£=ÏɧyBg.´Ç”RT´*ã_ÂŽ[±#,&2[¶ 6o㳃 ù—d¹Ù^A×àË8d{6Â÷F´ˆí· Jή¥×¬XAñ˜5LÊ-†€“«ˆ,Øq7"¤÷8$öFsWJ§rõYû}›ŒÉs5{GÃ}ù{¾•¶ ³SêÓ$ ÅOäêvØ2«‘;‡ü(Žú;Ki&!r`9pÖ¤R þÕMfI^ÙÞ²*gÏÐ&#¼#7‚W,b[¤w]ZT4›ÂÎÞ6YäìÌJµ F†¬wfæÂ|7¾E3¨>© ìX}]ÖßÿÚÿÓæÇWÅ=‡Ø†áQR´Ç×f¤^²¹bÊŸ~*NEõ[‹w­bPèüð–ãÒc;1gÛ4µ÷W*p¾ÍZG,ÆÓÅ4ùb„-Š›e¤MàG8ÞlÚdñê5…cðsý©Bî¤(°µ„Üæ¥•×@ÛIéL#§Þg4·(»¯wÝiì)Ów8ã_ 3¹~ï‚ »~>~OÏ(ñƒ•ôž;fËŽ7^äüÚÁ’ö8eåNø!aþo‚!Ãå1»µk¬?‘!!¶T§ÐÒ‚Då&Ý,Vñt›ÜÀé©ÇBŒÏZá aJƒ3=Â1(z/iá›L·~µýcì•6]žÅ.ú;‘§"•[ + Û´ðç~_]å#TÙ %_óø$;@}kýñâQÍáxUJß©DúÖ”Ð2A(\\êÒß7­lÇñ[¡‡¢‰Ú£D8û õÊ´lHáçÊùy@0·6*ºMïqôÚ™GUVr(´ð˜½Ø Õ㊒Ÿ\Báö²2Æ©PudcÆ_çÏñRšÓXšÒ(´wâ!òM Í“¡­ÒH¡Nû’œÃ•=ºÔz¼iÔZŒ~å-€–WuZ¹›‡·‰ŸXÅêj€ä§SoÔMjû÷s77ª Œ¼ˆECŸÃLkF|ìL^°¿Í}–=¹3Nì s‚±Â¦Û—œ{å„û0P ö¿-Eæ\¸OÕxƒ³0e ý/j¯ÀÊñ÷ÉÐê“;r©´€^¿SkÃWš‹}I‹-J±¿Ë×Dž{L¹)¬n —¿®Rþgòü\Ü<<~.}ú4€Dšë»p›\ãáSñ0­©© mÄ™OùöF+ñ·áU­ÖÄK¤8|çf€ƒ!¬_ó}<»Ù[³…ÁÏäè¢YYEFÌnß ‹CˆëËÃÛqÔHÔNŽhT €—1Ûœ€*º_±ò–ý/fŸ¸·í¾ŸÓ4Öµœ—ki˹cî°²@ë •XËaª.½çŽê“ת»ó”5€‹Ùp1Ȭ:DELJpOan/vk˜Ø Ub“²é]¼Äm =Ù•7fU`Ì¢â·k·/xBTu/Müˆ§}ë`%'5Ð*Y±…˜h6[x‡Öæ‡èξbpÎB¨[ïMíTó%2Î {ÌH”Êób¹ノ„ÓÚUFÃäÐ`NmÊÇ :e¾’ü›+8ï-äeÙí+$F4ú½îBÆ[¡MZ;ÜRÖŽCܵŒRCæíÙägœ·N/‹ðT4†ƒ3T…–ƒ!$ìˆßéá·Õα¶úÃ\¿ÄcÁ· ¸«€süÃè%‰EiY˜È–¾Êõ¢œxLÖþ¢dà À»w˜&cgNl_Ä+Õy…§Š(¨8 Ÿr@åwHN¶xÕI.éI )ËßRÒêb€ ±‚¨_ëÔLÃ¥JÅê„8lý¯nLÞ%4·í4`÷[ÿSå9{eDG€åë*Q¶&²„da:m‘`‹Í9ÆÚpÊ«!) š ¤å@*ràäÃÑŠÈ‹¢WΆÄc>hN#xûwá}äow“!sÓãÒ¡ twÿ£v˜]½nkhÀFÆ^Q`â6é.ú(Ë>ФàN}ß{üÏWìk#‚Vݪ ¼1Iù>ƒë>!—u¯,£„xLkr‚&•YêFHa£r¢bOÚìÿÓTÜ¢bH2ûeºÛnoˆ Ôÿ驚z7“p`vÖ/L@ë¬J¾krçï?¼c7Ͼ”¤‹Gîõ®©äö5XÞg¸CÏhÝrIM¶ÿÏÈ~Ï '•T*¸—}Â6 zb ,;®Ñ«‹ÝDv“¦ìÛÒP†?ÀBêæ1±ÚàeªŽý’ ùqX¥²1¸uT·cíä¹ó$boyŸVÜ…ÜÒŸ)”‹²‹—k®GÔz#ëÞ À5j«­‚,´°zµ‚s²yèô=ê Ý.íƒà1­ûÝêh¥›çú”sÎê}4è;ïe«]Gk[q LKå6áj1`VÊÎ)0xƒÂ'øœ\jí#EâÁÐviÖvÀ¢ÑpSS"wÿœ¿ß…š%‹ì!4Pâ(š$}T؈¶U¶EãÙ’g¬¬ÔQŠö`=´Ót¶ðf?|LáÎ&§Ž¿ð2$¾hÈ)]ß#™?Á »º©C|‘ï]´Â,ê‰ SäÆGÛÙŒžŽ¹ ˆh*ÆhVk1u6E^ó)Â\M´µR°àïߎ®%’'éü“ƒƒŒÞðëÏ_/+>/æl,ã‹«då²öD­Ó¸¹S,­F¡´ˆ°å®@¾©báhÖû“ÚQ6ØaÞM{e!V4yê¥.!»=Fx(ß³Ë"´©~\“¤_Šœseè[>Ü+WÃ\‹²ôƒLÕ”ïkXз+Ï‘¿_Ô{GÊÚR6øÔ¦ª§­åu¤)¬yãξ©ä1-ãéÇ‚>ßÚÜléF¦Þ´ºzzóßSBòZE<Á¦¤Ÿ[.õüwZÞ©’3¿!ó&ÈZ¥Æ«#.Ø‹b*@t¿]ô¥î¹Âiz‡‘¥âÇXÓd£w˜cõ´¡Õa¹})ð_é¨ïün )Ï"l6Úóež ‰ëUœ”¶0)WÿRž˜…(ýà95•¡f:#—cz+5zžJƒ4§¶Xvž¼jóËÇ—©`Ì+Ið·ø˜!¡U„ÑBœÀ-¿9 &Qãàä;€¬Š‰’s7¤£û€Ê¼ÀMgBÝ›Í`þ ¿,Ü对—CGâlÎÛ–pPW93×D]ù_L;ÐÀÙÀßåFKãË€¹:¬®ÝÔ4éÌ$*;EU¡œZSºÔ'ÆÃÎ,iÌQñé1 œ”–±~ •,"h¯f‰ ¿W~Ñ ÇË‹(IÁ«€Üú;”M¸¸oì`ðY›6øêè4òCæÇI_Ôòʃ‹ÓV˜Ó²&«sÅIäÓ@‚e÷}ÅhÔntš5—”•ÒmºÊv·ˆ£óÝkwÇ¿Ÿ?ÊCSÖS=_@–:©Þ? 7œ¬3‚Äsá\†Œ¹:ÝQÕÛ ±üŽA(˜`NöC~Çç!ÙÖcƒª•G_ÓæK«3ÞA4ލX#‡+Q+Q÷ð ©G*õ „Ñ‘nÂÉD1T»òZ%“Û¯Õ„¤dÚFÆô^Q_K²¢å±ú/ÂjF–d’Þ{v¨Ì©3ñÙ™ 7Á¶£š2¦šßì`me™hŸ åãp[!«ŒÁ¿! †ÔÆ™k XçÚmé+*¬>AÂH p+ÛhŸLhev}K‘7·éï7óÞ kÁB„ºåZXƒ 1Çq •ŽKTÁ¸¼~úkÈŸfÆ·Sܤ€¬¹ôíWó<Î1/椌Ô3Z@ZQ§]z`&X≠ÔkhžÌ£ã=Q{é¼Ulµ(žHõ¬²*Ì4Y%´jÌmùÜâ ox±™P]ÐéoA󈄔K-gp‡‰žV àg]<¾‹À½ÝÓ¶Ð0û´‚Ï ŽœA@è›&‚F ín=LäÔÄ 3qÂõz}T¦Ô@ÚÏ5Î>T¥’p•i ˜öÍ«F0aÞA|“ ]„ÍDçg,˜¶,_aç_#ñ›”¬2é§8#ÔB«_-7ˆ‚B¨èu6'ø´ýG¸D•_.å‘‹Çó×|áêè˜^€œ°AEI¥—IôÓ·léÃÙ}]»Ç)7äêÊIãõLâû…h&ÿ+K¶Ôzvœ²O­óœ …m×luyLý½ö>´óoýþdÖ0X¸­ûØJpÖ+åZ‘“í ]kJGXé¾Þîæ‚b»¥}táé”U†ÄxÏ®héДß䓞ìÌ…ÚQ‹‡qœ9P%þ¹ÆñÜxœ(Эî™86x5ÇßÞÒ"s#f>Íe«²¬b͇SPæ‚JçzÍÎÏupÛZ4<|€,³ïëmRÞ(í¼Z„SÚ˜4°XðfùC ®ÇO>ëσÐ<f¦C9aiSÙ¶@?æ‰EƒúÎ b#ûu®FèJnÏ#ørnÝE™›$>üÖ²PL—º'ä´:6'ov {36Κx]M+ÞÎàoùû=™~¥þ©1x“ÇCº4°g‚Fz 8¢˜*Îðvo¬óhÍÑhUÜÑ«Ãcâ1K¹IUkC,üRÿ´ŠîÙ;„!U­=€}>Øøäf¹gê¹ÓµõâŒÜ¼jóà¥OÕ˜ ßJÖ»‰K³PÈЖƒ3@<ñÞBÊÛ «ã†Â—Ÿ#¸ XˆA.‡…ÊßjRD×È#ã»Þ"Ë7ƒ‘ÖoÁû˜hbwe'¬È³™Ž‚ظ+ã–á>»4©u,üBgøÐŒ‘m?ÿ¬ ðÞ>|s)à G ª|¥yvØüÞ^QDÓ˜F+–…I+ɲÇU76¾Q%H&) d…¼Iö¨|‹^!ï¬^î×Óñó¦9±êë¯AZÄ…âÿÊc”‡œð1\»¨Î§üÎÞ.NØÖ¾òmn™°¾XÆyûöª·÷TXÑ}ÝÉZ×Á²d2 _‘zÍÏíÁõøÞé†?ž:ùÇ, üÃäbéÏ÷Ýÿ{ß*ñKçÓà7“)ûKh¢Ek·†cï™}ôóÜ~íf_óAžp‚ÿ²clÆt8ä.Eü$ÖÛè mà} QMKr„ä¼I°Ç«O¾Æ?Îæüîá–ÏRÎiÿ¾íÊxŒÈn67!Hbz2É/Lv›L9y(ÍkkØo«À ?ëÌ‹kFµ êó½ƒÉn ªVº›ž°."ô÷ÎÁY1þÐnKÔNÒÜV™H©4È Óª<íkgþÁ:i±'Ͼ|Ӌ͹³ü‰Æ´°‹²²²ö¾¨5ç(%_¨)ÉU0Ж˜ÚÓѺ±¬»,ïøýÝuZÁ@;M]8Ù²£iØÃ–¢X‚cŸšÝ°ClXÔÕfœéÝ<-²16+^jÓïaËÓµd=WGÂXœ¥èÏO†oQ×óS*ò>Ô ¯¡ ®Oû÷?of¼Ú(Vk8Gœäg‰É[+Ez5''¨ÆßÁÀó­uhts4ôj ®ä‘ðì„RÎèœú»œ–¯ìÑ“¦ÅíãehN?:æH;gÿù/ƒ¾—zO¼á¹gÞп¹h4aÓí²¶_+H¡ˆúÌÑ·ò‡Ø<ð‹m¨ñD`%¸kˆgO™‰Ë7!àÍø‡r>:=TÕ¡ :muq(²îŸñgcrÂæOއC@ÎI9CÒ¾¤9¯Ð#óÀo:ÌrY/}k'Æ:SšÊy Q ¥*˜ù©ä…ªºËþÞr:•⓬Nïhh\TFéY˜ºZ[ZÍ“L(¸íÔ_aKwÐ%'ÉV`Hqc•œ±ã²Â×ýµ-Íq<ƒ‰»Ã²<ÚŸ¶aÕø•8%R…íª1¼ ˆDªd'ìzè•|£HížwPÓì6éiÓïAµÉ!Iû„mi¨sÊëWS9& †§ùIõÔœ ÍŸ™™c” §ã(/H#ˆí¦vÐ%ÑnN YÎŽÑ–{3P5ò`§nžùRÊ5 ŒƒÑtIûg+#ø¾7Í嘧p4“Äðκ×੘c– Õwv0Øq¨oXp€‘v'˜  Õ[m¯WJvÕŸÑÊêw¹NyÊÙ•»PÄ·ÿû1y‹nÞð ÑÇGo{2k«Á{¯Ü‰r)Èãbê]Š8™|²4E,)O™%o•H>ãX>Š|Ša›<ÊY6‹ff—„ú4·Ì;¡ßVHÇ8£mì ÅüüŒ†Ft™[—Õ3Õ9gR¿$Š417L`¼Ãí ÌÛû©n?†ìNxŠätT> :±IJ£Ø6´àJ$,•/ÖI`FmíJ"ÅJ/o‘Cš4{¹m(g$ó ¤8P^nd‡S1stS7Ãi”õÖ©ß­ê³m‡Óû­ ðñn_”ŽïÑ'ˆj+6Âóë­i Ðë?Yï¦ÔÃÿšê;„C‚3¼ýŽ’ HKÞßÉ ™£çí8Ü•ìF¯ÉŬf1ÃàO%ÛÙÔ!rXQä²äkYHŸ€oÔ/®ã¹u…[ÂM­Ìˆ#¹®¢*1V,þØŽÏwFÕ˜VRírUœì¢éÔÖ¥+R¡+´Ø=”Ù2é¸×^ ¤b–?ûcUÌ@ÞP-iÏo8×Åög2ÏØºt¬Û2çÑ#×GõcæÌÆÃÒF°œ5»÷¸%ÆT#ÂÏ"¸c¶Ô.÷”Ž»s‰bÿ°¤’&Zy×W™…W¡Çù­Ë†Ï¬ªå*Ü?­ää T`žyÆSåF-…B—e—òÈÉ"úq ž’›3“Tø{ÝZÚå`<Ø_Àö„祊¹ã,¹Zwþ˜ù–e]!eî¢ðÂùµÙýg\Si‰8£íÈЀ{z ðRð]‚ ðÝEÆ®?t¦ù2×€]0HX¯²ZcéÙ|âûáîHƒ…3s&0”´Òvø@8¼cØDÕ]ô5’ÅD|½[溽p¨`;Ãñ«,X¼oë:ù¿jOÒZíü§|ãÁ¹Ë+áNm£—¾îŸ¼IjÎLaf'Š-¼¤mÿ “³Ù ¤¼É4Ý|¨7P~ 72c¥ï 5nš 9N³:4[µˆ^¥â‡~L×I+gKM­6ŽÔ‡ídÇG7OØeÅÀ}¾wÊÒž6ãlì"˜a°Ñd9É̵öC’Îò厩j„Ú’PTé1Q’-¥—ù%Œû7^†¶4Ç}㣸 -™ˆMG)Ž%ÞC;fJÐûd°t³Ó>U~¹zkÖŽ^çÙ4˜Fð $-FéÔ¾ó0Ó’Ð FŒ"Ô%oÏ÷ —ämž—µ>­J‹NZáþ] Êi£†¢W3RŒBjÚbËý5z“‚‹:xÕ•½M—gÇ©>¬_Ù”?©zUö”>Ä·xønߦçä&ÒoKÑåê£qN…äã(ßVB:K›Åq-Uê>TÁVÕ>—‰ûº´)7å%×Èp˜.¿Ë¡–²†œ3Û+»Õˬ%˜^Sݵä¼çšÆôbâoÚ‡üsI÷1À¦RAJ66-x» 'Ðúdmÿe‰Çؼ»_º¢”šs)Ý5õá´I\P¹úþ£XAê®J|U? ‘àãýöXš¾±àv(îEÕVOyëìÇÊjq¸)JyÔ€³+QÀpþ§º™‰ý#Añ0¸ÄÔƒ/HvÎØI„™ROµÿ ô »–”7keÀ ‘BÕ5‰`ÚF4Z>î‹,Ɖ«ê\Ϭ»ÉB!¦\Eö–´ÁLˆH% J‰‚žî3¢Ñ+ïÿ¦,£Êƒ£èÚxxSw[xm÷‚GÁ³†©¼Y$B¬UX;І;úÉA€3³ñóÎÃ8•rüt_b%ÑûãCkú~9PŽº%Ö–ëáÜéŽß£MQâýÆWŒ4t:çï¹æº+÷àÉÌÛªZ¸7¼‚&»*w1I:ŒQ½i¯ÿQb9Ú|gƒPµ$)Œ)vìŸÝ"H™ì#QÇ´•„ƒ>…\.û:*ñÄ%*§lf8ùN“}nOGûI‹j±ÖÖ ]™c탻؈HuôûªÖxÁÒM%KOzœ KN)×>| D,­ÁkRj$#ù1HæÌ|8ïZÞÙ´ÓT#H„òµÒ­J6*¸…ÃPäCŠ'ZÐ ®lÒýû‹³©D™Ðg ]±²š¸Xm ÇàŽãoIÔÃØÔð9F½¤É&ëåÀ‚eAR˜€ŠGâ‰ÀºRŽå<°1rjGZ¢ÓÀu‹Ø,_ÙÖ>hY™üg]± Øý±Û´óa÷ #ÃîݯÎí"Ó€ÿm8rÖ¡ýRÏŽr+žÃÏ\…òºì“µ¶¶ß‹ƒíÇŽÑP²™G~ 7êÊûb…ßC¬?9Õ ´`ûÕÏýEºð¤¢öCdê¶…-øKÅϺñÿéFþ½6T»¾´ëmÁº—øTrƒQîÓêIÄÞŒ§ÏCxç ÚÔ-DZ¥CÀä‰Ûb-l¬££XÜ=ÿ¸FúÈ7 gž›h¶ãz(».}ðb7×6‡W2·R“ÏSeþLÆ: ­¯ "\©ñ;(¹šmh…9è'jiSê—;$Üð&ÙØ& Wfßè·:@ýÀÚûoUœp ÄÿðèXpÞ¯^òÐ=½»€v•âk½Z’8ùPZÄ¡™ÊdŒ70²ŒâöfþúemâÜ×Àüd‹ñÒ› û½|ÚuŠMßÄk’œ~‚¶ø«.L±­¦$)<®dž<ÉчégÒÿzL0bP0Y™£¦£SŠô’&\™iÈ™5'7M0[Ëll bRrw@è¶àpzòVüæŠ7³žá%S¨…e Ø×»)¢9hù¢@€ƒ?ñ‹*1¿óÁV:b‘„3©¡4cu”w½“aÌè°ewÒäºÑ¯{³Ü_(= ~’G$†5~Ÿ}¦‹Çu˜÷¡¶;†··o:/‚²ë˜6 e'¹Ö%VàXž° 8CrkŒêça éQ¶KI6X[?.“¦,!ð¡è¸´¤í5|Y™þp,¯Ô°FËÛo×r/JQãˆAU÷wušOkõªëŸð°¡¸ÂMI/§ó@ªsÅW¾›†]¼ps“¼:¡2˜³0e‘×H dFZx‘Æ!Fg±høñ=| ¢I[Ì#q†ÅcøÚ$R8aÜÌëOÆ©PöOsר©E™ïC Ö»þ/œRiá‘.=Gk¦a±o_¥½“ç•WÀ@Ó>¡(gÍ™P«SJ÷kÉFXÐ"E…G éßë/™Éæ×ðÚ…K¿x „C¬±:Ä!I‘4ãõe1JÌ çV¯›Nôžòʸ‘šÕXP˜„Ï6â÷w¹½~ É2\kë¢-O {jÛË"¶: CÝ›n*—Ŷ×,Iv.4f¥aüHØÔ›j>O+ë²õBÖç$TœA±ÇU\dExGQ¼:×à=j‰7 rjÍä|CòïןïäÍÞ¸%|TŒSl ž†\‹m~äP¼«%¡™džžgB r´ ÉA¼~v»ÆkSw‡ðÕmoÅ$œ~Oðz{eÁ´ïÎØâ¥ÏWÒɨÆPCáCªPK’ÛQŽŸãÎ\Y ¢+íQÄG~!‰î‡¢f ¯âÿ_ƒB†“áÍg²Ûf‘Ç>Þ¾Öô_B·Îj< ~µ4Kvr7<ó38ºXŃU×.C„ü²™ØéKv†@²µiê±x=f°‡²¸ÕWú1×ûIhü”gû3‹kMÓ0øü1šcæÈ‹y×g†[–ðûdV˜¨÷×øl¦ìÃŒŽ@ýL®ÙîÁ(F?”@÷N²·L¼:8'„SE+̦Ûu¯›©âã šÇBxíÐ,{¤ÏZ¤; ¨-œ.Žf5,®YÍ;ÚH¯/ÉXeÕÆFë²[ÝÂyŽg†sµF$1Ó÷]ËŽz¼¥²û7V¿ú„Ï•q@ÊU½oSz :¶ý [¸l¶>öú±¢%Xì‘n£Éqµot»ÌiïzæŒ>µ¾d¼Q¢d*3{Ë*3Íwé/—]zÏ7w¬bÇÛ…:0³ˆ#@± ‘¨¦I|‰Å•zòã~õÔ 6¼ ðçÕËœÅß‚úþ€úÿ¬À‘b]mÍÎ\3<ÝšƒF¢Ä¾=DØãîï‚Þê¨î¥Ä}áœìÏ&IMlrÓT±u8(Ȉ¶)<­3™´e «ê bU°E RÍ &äγ…¨¾‚¥ c\¹@ÞÒY?:’"[¸ ˜TU°n®=çk K1ù‡öý6¤SpUSpå»RõvÁ™ ŸêÏ„-@`ZKö“¡x½L½M§utö!,£ô¶xPƒŸŸ3¦os/û¿ÞŒ>çV Œ%W»`y.Ãèzs#¼^?{‚À\Æ9²`€}ùÍ›0„ºçS‰¹¶^ °üöa"¶†£ªÒYUtUrÎò€  ³w¤„åTa"süoHq5Ö=:׸òÄ z^Íоaj˜0>Á:7éÉúéýaX÷­ÆÎ©s‰U†GÆøc³ÖwmÓ9Ú@ KîñˆŸ¬_JÊ4uD˜¸žFÄ^*^Ó¾›Of}ëS¨Œ— ¬È ¶„ °åèýŠÞ «8q×»!ÌnÈ”ªU­ØJ^]]` F‘xå@“¤D¥Vwj|ã*üé(û\†5BÃrÒ?æä³924e™1P8   -´]8¬åŽŸJôªDÀ>?U¯Ôó¿‚â#e&K¨“{ôÔÄH¦sèÌ^åGƒXÒ]|ù©úq t¸Xé>BŠÍÁ5Eü^y/êæB™ŠÀ6£? Þ—ZCFý‘4¢p‰äY„#1jŠ ¸5Y›äNy_)“}~Cðä— ³hP!¯l?÷víyL‚•4ÇüÄEµÏhpZæcÜÞ\"^:_ày+ 8Ö‰¤bµM–~a‹‚<ÐPfÊkÆ5}í8ÖfËãAšðéæÖ›&›B~ïì‰üFg¤6±Œ*v!—GÊMÄÁ¦,˜Ûá¾dÞÀ{Þ\. ¸Øuž²ÆÎ¿al*ëØÕP"|Ÿx79›®:ØÛÒ{ìt·eßÆÑ¥9A¹&0T`|º÷ ³æëðÝ’8¾1¡ #¨ëœiY°ðG犉âG6± 3~ÌVÌ£ž}Bô°Í›}¨q²’IiÓ*«±åƒpà)fÑÆ¿DOéUšÎ,?òEÑ´Ú¬RÙ2dR~Sr±|pþ—ÑþpŸr¥Sª‰‘4¡ÊY±eþ[ðÖ¾/ãoó ~¹ÄrñÓ ·AÞ$øÉÁ¯]Ô(÷i~¿8.J€ñÿÆ”KeÛyc Û…ˆÜâ€M³ãxªõ¬‹[÷pYøó+ôÄžÙVYW)Qaoñ«[7˜²°: Ì—ÎT†FÌæ@f0k˜®$&¿‘¿Y(¸'ƒFdŽØ„x‰›å"§…¡iµ‘(é{~¼ÖÙêžÚ¿Û¯õû~_“6¤ ‹:#8hè}Cpî?0£;˲ۧ¶ÕæÌyµ/8IñOÖkvBô\Ä8ëlÄç5öV%€)o¨¶Kððfƒ‡•l¡‹ûõˆ*tÑS€‚Š™×F` ¬½[w~sNF*L‘ëÝŸ'Ã$‹—¸,å7rÖ~´X=õºžÛýò¸Áç‹*!YRê¸}b޾L¤ÿ3QŒ5åU‚bŒ0ãñ4dÑüÒÓr’°45XÀcà ÿ|䛢ÉYÖ®zƒ£µa»Q^-´²oétí‰Ð«I™â/WÑVfõŒîÂä‰Ù`ç#5ê3yØmÁG ³Ï"²ƒaPš’g€‘—`©3dÝç «QÖ@mÈ?ÐQèÈn¤êuó¢zÀkª;ˆ"$”Á¦að6=ÅÂcìTÙ»¼ƒ±‚¿§ë4¡œ\‡É1¢<À ½–ʼnX;£˜ê˜›Ÿšð q¸Ì?þîåSs¶Æj²¤ê‰Zd ßdzh>ëCW̋Գ—vŵäNNÑ Îx@Š©B÷Í7Dÿ AJXt ‹Ï…Y½ÒµßͪwVq3ý’`'àwh—ÏþÀáÝŠw ~<Ë©Msؼ( O¹ôŒiUbLT§»Ë;äh­hÇBÿ¢zÆ÷¹Î;tÒÚ2 ntŸÜÜy"`eEùƒx–]„)âÛ¡Y¾—Ëh9Úâp€úå‰m^:ÆÎØXç‰sâ(~v·ÎÍ <¬X 6ÎóQ°_8½§ÂØ “g©(͛ֈðÛÅ.¨UÌ=¬ÉÉNpAe!]s€–„j£³ÞkAUa¾ƒ¹›9MÌô.]µzé¡È]ÜÀWöFÅá þ±Hmdzèát–^9§T%®‚æï 82à[‹(¤¡‡*é5Xï¡ y£Äó…He£ãü=/MޏáúD¾Òsº|M‡Y9¸ôû3Ç#Ù–‘-¹·…nâJÏ+êwâ1ãog’ÒÀ¾Èô7î”Ë0CsœïJsÏÏ Ø¶UÂH6̶]Ð'>î¼S9Gé½$Rйål=̤ÁÍâ³|€OP«š)Þ¦µãÝÙ1'¥ø½¶ÙOɆÆ:çÉŽY ÍÑÓî'ü'ž9Õ‹ÍÖ¿ÛÄöbö$³ë®®‡‘pF›ƒPV×1D©Ìæ5ÏQÉ}ˆ:ÆÉÈ¢ë|×êËOãy |\ÙRÿã0§QGܾä…[vZÃz s¥ö։܅¶ &íÓO„“ÿ>jéAYo¾¬pö àˆNæÓnÄÄli&ÖHº¡ ¥\|àHƒØ¡¶údÞXéŽ@ù»íj;¿J“oXt+Ñœ>çy¦ JÝd¬ÏŽþÎë1ÜfœDب´ùH*r³í |Sà–“']„¼&âPo¾; pðC‰òXˆ•—Pbg*ba{\ÑÔ1 Ý…k¥!>Wœ•’Œ—^¦be‘  ¯]Q1*¼F)$XÎE¼§¾À‡oÀ _r™û“b%›øõF*ÇÆ¨Ã1þ@sí2À6N"lÊæ…@Ã¥¼µ¸œñ&‚D§9+ e’ŸŸcoHß-€pQÜÙñ¹V_ú\Ê;O]Àñ{Ý0q©~%L²žŠ]éAô£šÑXtÄ©|´˜¿!Rš#f?ì0ç—ƒŽ}¡þéËÿ¤äG›ÚÖ ùëé :<³Ê;.jhÇãÄŒDrú5`æf@$¨¢ay~†T.ÙÈ4^ŸMà %•B¡GáÔ«„øœJo=ñQ¹Ù¤*c¯uáÉ/"‘4VHž;™h݆ò£ª_ÚëÌ$O÷#6kVø!‡’[õ=²$£#ö© ”%WnAŽJ+8´|žyçžö=u‡ÞiÄ+&kãGÑ~í,vu£ïe® áÇ/‹]­˜êƒ4ÆÀ~P?ÛŽÅÿ}i¤J£j:cB¢²&áõ×ÛGÚW/]­¤ÏXù'HéáÀId ŽåtŸî-÷ºý+¨A&义è¨qàSðÆ»z(ÓâÏB7ÜÄ´»Î›þr× T¾ŠÊõ'Æw&ìt*}t‰[Ä}ãIK—µ—ÀiÒ}l±Æw}ùàúp^ À“Ï©Ck“¨”qoW…Èh÷žì18/a@"lCá»ÖÙR[Ýñ0€±Àn¥àe媳°P¥I›Û‹èî0×!ZšÒ¦ïaÏGâÜdêíÞEmîκX~S­Fð|Ë¥S7ašª ƒ¯än³Ÿ¦–ÅÌùíÜFRmo¤üÁŸÍ?Ce£¨a­ ¥ÕÓúSlK`ÕÔi÷+7ñ=ºü;[ïèU¦ý˜Wü Wû`úY[T|¯ÿ*ƒ$¦€J·»}ò‹¯£¡ÅÝ(ÛÈ_ÁÍø¸Ûd ýœO18‡kÕ±°g¨FL⾇B:"ä·šqü©ŒåÊÏL?ô•ðÓRÃöe#=#$Kßí\ÂÓ2j\\Éÿ¯ÛnÎ!ï™C©6üHÇþM™g—м @ZÐï+~èbýUŽKøßarê^c9þQïé¾O8{Pºôs“S-Èö8˜Üö|ˆ™Ìävñ¢e* >)`9L‘0¢fSHš¨B ÀwÂYfú4š _ôÙz–m‘ °› °­hBÐþ|šD'ÏìàîºòoÞ3ЧyÓ©ôSœ®ø)‰ç!Ö©[L+üÓ ÿ²Ï‘q—‚€Æu0E4±?ÿ^µ–9¶?\¢­É¶†1ÞŠ ,‘¾0Cý^š[S6ü<5š &š@&ì(ý¡…Ògf–ùæ‹(O¸%ðšg÷°­^ø¬Ž´/;SP ©REW´ÏÐV£RÑÒqú]"6 I†ÙïþúÎ_á!>Ó Eœbšg^$á‚QÆžNL„ +‚r;' Ðèv×àE®ûå‘úT1ˆ¢Cn£ìl+ôO®úRÝö¾ Bñ–gÔà4UÉ6â®™woÇ&Ãjؾ{h1†v¬3h0[§\+¯*Ö ‰0¡ Òˆòå'¡W÷zû%iH\ÁµxÐyÄo. Ç—ˆu§-{?‰ƒå`®1ã!J€ôíq÷bÚQtY¯M¯Á諲.)̈q›ôÌÑjâ–ªpG#,•çŠ[©+˜ ¹ÃÅ1oæb.αTÎËQÏÅ´n 0êÕ›u…ˆrªY,«MöÍ;КíD=O§Ï`¶9A˜°RÒPð)ù9H·Ðº–+”Fe~uÓw¥ "ê˼kÂ*t%õ q,ÓÇ Sp…Ì4»ƒ¸Ë»A/Ç&èœÞr”6‘BžgÏ\Žiò3äý×lÑF†T9“ˆwYÛ½ÉSFÌi“»9ñòiû#Ú( xPÄœC}‡“ßÞÊÃÀª¿µÈ¯[9ê0<ÛŽJ!ÃôB@þemÈšûs+pL4=úîÛ /﹈ìÅ_½ÏïjŽi‡\R4&6åù´CªÆR¶iÖéÐT›’¬‡5ltÛ´š¦WjÛ¯“7\êùÉPÁ¢ pËÿmXTA$àÒ„hQ(Ç¢Gf ,ùãì )%EœïS’ Í’s2G-]Ë¢ðb’ZL“óªWktV:QɺÕ–«F]¼qæT¸/&î<¼ÀP $æy¢A‚IÍÇl· ¼g{ÔçmÐÛàÓ嬯¯Ã3_×1Ñamúcˇh‚Ÿ0Õd{ßó=øá);‰HRæµý±Žg!zxTük¨ày œ.ȉý„6¥•ÿ0äoå[q†…Pc“°àÚl3IŒh5ëUƒó÷¼lG±ü?·è¾ÔÉî}²…±&,„¨Í 1»>ؤT*·gøkbÖ;À^‘ݑDzì\TÄr›ê!înEl™ê nO\ïŽÇÃìXyaJ=µ×£-ƒÀ#82*žâ†ê>ˆD>¨ “ü¶ £«90㪯‡ó¡%dX{ÄÄmµA%Ñ¡ÐêÀ¢ó»¯¡½ÅŸ‹ &Z†µòƒt6ŠðyU)öŒª›ÈÜaðÇ œæËD…¿íêº ÌE³e+2 Q±FýG´•‰qlÆïŒ‘@ÖóÞõ½ÁI·ŽÜÈ’r÷:HÔ”*˽Rœ‘±ØxÜfË•>lž«Œr—Ÿ²Bë€+@})Æ¢lÎ',H ¿¹ÿê9~°Ø‚0¡Ú^ÍN?Å¢%.‹À Í6 ­ÈLÂ'rg;ÌbeJ(vãÁëD˸-Vn\OAüx& [ȇ߾–žÅzýCaïŒ3“°µp ûI9rÑÃtDõ nf̓U½@Û×¥£)_ S›Z 9Ä·>5¤„¦ä6ê€,fãlr›G­8&_îò×€Ëes£^w°>Ê)âÞúÀêŠheZ±1ÀÇ–]ûAO(sµíU] }w]ßL‰åt8*õhc÷yp“Ôê…•ŽÓòÊC˜ ñf£$5ø„‰þmÙ€ZIËyr\ðék^ró/¡ñ¸Á²®ŽÆp"NÆ=ïÙTÞ)¹U”w¦¤Eز++!ÇK{¸I9t¦Ïx‚Ô‘ý^¿qùk”N u/HR3¦‚A\AGg¸K%O[gÜ…È—Îå7aÛshˆ9QtÕ²Hò+4“›BøÊíŒ%ÖôŒZWíTƒ58ܰlÿâ|†?”¿ %®û¿KÑP qÁGŒxàÔs5®–ZgæÇ|jŽ]OÍ'õHKý0†s&ór…¢únï úÙ$C ˆÚ`Õ˜å9n[¡i½•é©‹~U€ÎÕ㋆:-‰Ñàs¦Û65ëÝ#IØåsbîäÄ=•Õ‚.q„ºâ¤ìK )ŒN¬aYî©{×ÁB0Œ3­e†LRã*“ò53÷0—× 6)–ðÍà}Güö°¾p¤›ZÍ=‡Ó:Ö.û…?¨€^÷:™›êSÊå,~§˜Ö&7Z ½âøÐCJ½,‘*za™)ÍÇ0E{8Ù 1(Þ.i´­BØÒ¡Q rV÷  ~0|=YÆZÝ÷Cãú'¿IÞmcú9n–²ôÕsQê›ÓÞºpAfb'#4Ã¥¿Þx»ÚÁ_3úÜä +ä9Ú$8êB7=çÌ×n,Š7„Æv]wAÖQ¾&<,‹E‘_ažáØÃ鈧%ðµÊ”Žî-@põb:x ]¿ Ipâ4#lèÔó¹ ¸£fMDÕ›YÝaòÏyÏXÄ¡˜ž#cÂñÞ÷æ ÷\+yç * f¿Žn Pɤ1¼Ê™jÕäi_GõÅ´ô©òì[XÅfs Ó7º´±ù¾fD ©âݬ^¯ô£‘[“ò!lÆG^J‚¤ Øl¾j mÜ6täø%w®,Ú%dZähå“ý™V÷U1ðAatq§G6„å€ë ¹Ð¼‰–¸X®BécI¸ý!l:xÊäàÛXÆEú ²¡ ÝoìÖêM;ê_ÚW4ŒéöÖïNŠú‚Z‘«¸Í—ñòîÍŠ[ñ>íµs .—ËÓ6ßO[8“Õ$¹$QNkX?dô%é)îJY‹:M‰nµ<Ýt L)`?3 ´Îäë¬WºÕ7ªâ‹®|É›žŒH³ß›Û|4þŒR†õOÜó*èÍ$Ð0.JïTqpàmHEµ çÅÖ{AL§oGUí÷‰"ÂVáùEˆ’°·|žïŠRû¿T¶Yùç¶3øa§^lBÂû WÒû5ø¥R%ßù1ЂœoD®ƒ%Ï…Ò6@ˆãù’ÛI h nœ¥ø’׎4 Ô(†d|©»-Æè-8eWÌYV¤´OLÉøËŸˆjé“í¬a©¾H4ã캭Y[¸ê‡.!Rf^]jv=C ÕÏì1*°ì 9UÓÙ1.¡òü@ëR;÷%1±€;PcyRkú-⦠y&ç­GdÛˆ]lZ{Äj»"É2hÐnÜœ–©Êíʹåî|wBдAä"$ßÑ•ÈÆßZ<¡ªaÏí0¬9ÖK‹ÔÑ“üðÇ1ˆÖ•œ€«’¥µÛr'äd)M\ª{RŽ/í;××£ú&3ïás³ÀÅÕÒž®L œöüËP(‰vªzÏþË(R˜#ûÆt>ôÕþÒº>zK“*œU±¢¿ž/^f@>K‹ÛY:õŸ'¹-´´ŸÇäÉîÄÅ'7ìxhì¨ãÅ7‘d‰»&š\_xà$|´úߎÔÙnfÌØfuÇv”­1÷ž»ï@*:"Kxp¡ˆR7DÚáG¡7ïÐJngABº9šã? ?¬Ù]¯âRmÒf)‘x,„öö._°ù§ß³ÄüD\+¿ˆn8 qù0¡Q¦çdùäšä¶y]³Ö¤cá‡T,)®½wG’ü8B‡&†æ'|âßdÙº¬rüpù*ëÉ^ß(Cü€š ¤`Ù˜°û:!œ½dy±& ÞP†´x3›¿DêÈš†ÖŽíØz·“yµ¯2*5)-G°.ÇùT¨ã‚!Ýbz;Nql©æì0ŠjÌ‹SÎÂÄXæýO…-í6ÃB!¨ a?‰d‹ .Ñ‚Ÿ” a9ŽéQâ° cdÛ·Q‚?…Írqö¶nõC®Ë¡i쪵;ÿ‰©Za9ÒxQí)¹IÇÄl<¤¨cÓ}"¹I™z®BóQ ^oxJrÃ!³Í)²×D ÿýPîm÷¦$Ö gweuèî4êÀaƒÃˆŒìY»Œìd¿mî†KÏR4Œ8 é%Ÿu•…¬¯=:ÃY¯Å’W0ïXÙQyº;»’` &7ib;¤ÿ±É%#ì?©G."(Ó,-¥ë.J‹vÁÈ@‚bWµRN?òa¨RE‰@\–Îém!9ÂÊîvú1'fÐp¹|§€nРÚìé5ñfÓÓ’˜(¿çé- *b)¢7>JOË^O!ø×>8ŒãpðèøUŒ+å8ý©[}§ÇKïˆgÕªá5–}¡ÔûèC•WÓìM%xXðO5¯raáž x³/;€¿ ? qw=uAA·U¸ ÷:–ôrFº“P ‰¶ºn‹Ýòqu*¡¦Ì{«îeÁd£qƒƒ>0)=\?l VH7ý:ÝýÃó:s ?là§ Ø|Ïxò­Wf—©ö¡M¦Qžè(®þ ~%v·²y¡çm\€6Á@ëÙq¥Ë{Ç8X!âk"‹µšš‰wÎÆ”œAÄ$0úqYÄ?㞟²lÜÍiBšŠ×Í´¸Ýùî)Ï'2™EB}â“Ôk–qO‚C‹ã3S6îõÂ9<è»”ÊÌj·zÿ'%.je9 S_¨C*6J$€Òú‡v@*|¿ýŠÓMlÅ6´l¬Æ¸'õæÁ(£¿“ðÖJFÄÖÞ@™ÛþÐá‚Î&Ùj‡£Œ69¼So;0ÄÍL(yšôq¨4æ˜]s(sK¤i;›ä³”£.Ó¶­¦H)w—–F"”7çáeË=ódž %yåºP'D02¤ä\ŒK^3ûÍï'srÝü™Ùð5„…äÏ|na?qn1A ¿Dõ’qöršiPÓ¹Þ¡NG!ÙÜ,²¡ÐOà»Qê'ôÀ^ùÄU3©[§è¼Ïá¯:aoMEjöœp{èò¥Bu'ã[‹ì$„K)ÛûôpÁ­ /Eî´^2+}ù{([kcõ:Gÿ–œ“J|X:‰’ã±^=žu-”tòlYûMoÀ€ÂaÇ3¢} µv²s0Ñ-…ZˆƒOŒûÆñ¬_=–Ý'¿»6Hì¡Ì˜ÆÍ#liU½UQbÇ ­|µZÍÿ8Ó¼ÕŠ¨ã`ßåSà®íRp’oyR%Ù®€1B#Uu*JŽÙ)Í qQÜ´ôÊ.=[C¨ôLvi†l9&ÞaÇüç,¬e"Ç:ø !¸ÑÕ„qÂÄð)‘Ü› ú[â¾Ç=e"ĨåðF3ÌÏ&Q³æíÓö}ŽR%po`]Å?”º»D]Ÿ´VÌÚŠÇPw¨ @‰>UDzÉ¶Ò tÇ»V•z±¨g-W5ÔV 8Ë8 íж^©‰0 ä m| +ïC<ÍYlâ×ÞQ©TêµãâwÄ,ÞP!M[ñbÅ,oŒ7“îñ^d4y0"ÊíÈtµƒ ‡|óÀC‘ÿ ³n=´_îåÙ*^ûª¹°ùJ½ÙÆþižÃÿ­F\O¹¯äh²‡O Úßµ|&,’ òsh$ÚÌ>êKB½›ßþç@‰qxÖ#‹W-0·]ÓËÈ£Ëor:Ëöè9Ý0Q*‚¹ú¡Xt_ŸÜPç®xárT ë3¹Dk,º Gv£oò3¾¯ïüLwß?2îÆ|GÈöˆ«DÆépŸ‘hèŒEæ’F;<ÅÚÅFô 2œ§Ç!––5߃B:+l³{6ƒË6lïTLÏ&Ͷÿq”ÒÞX ’ØÉšÆù°—FiO…³3é–˜âÃ[F+­‚•@®×£›Yz¸Áwr ™¸f°š:.(Å ŸŒ(øOU÷T¨âFqlˆ$c¦X‰i–Û–i>O4'„æ‹2«is,e:©3–ާúËcpí£{ÀËå×y4x/Áˆ¿…ZˆÕD¶"Trp¼ª` a2½Æ9k Éý°)V‹U4U¡/t¹TÅuJ‡¶´]Fר•iJ©ðÅÀ!Ýw—O-/ã+³eÝ©%¥k: YÜŸ`«®ál9ž¢'x—¦üA¢g”1%§íE婨¥žS÷ÖY]?^÷bò¾\é¾V{Ù«®]ñ–AQ£Ä) m =S¹2åÿ*Ñè«¢åH;+©¬5qÈòB}yíï£|læTú¨j%$íOs·\Míî£FÕµPÐŽ…¡âÜ~ªŸBƒe ÿ \ 8G[cˆ©M¶½­_É@Dºtª§»«¯UHª*"…kCÆCY%Kš_›½i‡ý§,h³­þ<èx ­ ç¡oÁ·)lNv¦²êíþÜðîã$Ô±Åd¶pJwW¡O³ï¸p2°™âñÓÀÏ%§÷Ï“ìCìUµ¡éÈ•`Æ`Ô FViŸŽÉò3‘o¦ˆæ޾bÁq©Èoéþœ­°)ϧ"&jýõæö“@ ~æ¾iøJ÷Œ&šj¶”Ë}É799â\2?ü/˜³á VÖLlwÕM¶eÛ¨”ö-O—ýÜlþl„,L¤J¯‹À"1‘‚’‘[ÈÚ÷µwˆ(vs—µiuVQw™ ùÁf> Ü:‹¸ìåýËÏ¿Tq`Í1žö7J9ÝÒfl ¬ÎØ ·˜ 6éNãnXwŒ”êPÙ-È—#÷h.ô#Œ¥Û(ëﻺôêÒTßÑFK/|u§M©¶×|”²Ý3öKü€ô:áŠë7g«™ÿʵ»Aý㿘'—€(¥ʺ0mI¯6ö¥àÄã®÷ž'§Ìkèv}Ë{6.Yÿç±Kas“KOQVß­úÈß"M¬5ùÂãÓz’¸&2+âKõùQ]”ȹњ«Q™F±;•¿ëøpìï j«0@ 0›F‰€ÀÅv®˜-²j1¿È‡ìû»¿”7DG{èŽöf¶¯WJ¯Á1v-½™!ÕYY–ýZÇ  'òtN›¹ Æ n)\޼j=˜HTŽcŸÚ¹8¤f]c(! ;ò”‹V47,Sõ’«¿ì;ýØa¶UȱÉÝKQH×¥€ž-ayLÓs%µçgÌë±Ì ¯h–i´Þ‹DLø~"$Ëõ(AŒïÁ>”uáGõމU‹+×¾î )aÂŽ]Sí„n½È6ÝÇ1é]Û#/¯â„Àû?ù'Ê$óÙà 'ÅmkµÍŸŠ¥ v¶¦•™Ù"yÆß9èsú©QNܵÚ7@,Gt|„*G^ª„(ÜÒ¬Pô7=µ¸À÷NßÒŒnù÷nÀÌ륛.ïºÂâ†ïÛá÷8c­´czä” Xë-s7Ú{¾›ç‘= ‚¡ì[$iE§yg`ŽZ¦Å&ü¾nCwZgù˜<ûñ”ê9Úð+VYa‡0@ÓCmË…h›ª³5¦`vÁ_|(;ùÅ-êFã˜V°}ß­©› jFÁ& ¸ÙÈ[CŠÇ÷D”¡3q¥àk¦ÈÁ ¯û³R›pQ?ï“v»¤ÚõþelÍX#±Ñ©¼T\2ÿ?„Ùž°º/ãóMUp#¡ý±t›•”W¬súɉÖÉLÕ³¿¥ØƒZ…„£<m;@,þIXF#.“I&YD31] %œñ7é)P„Sw×Ëo g‚°ø ïä²w—ï}àåãðêçáè÷a!œ9V‡~ÐÑ/ N¼.¤ïw0ò?f‰k5Ñ{ÕÜfÕ?€è@R’ %ÊÚIúF?v¯S“Þ&,'åß‚]~€AÜÚ#îª15:l¾gKÿDzÇRw .¾åÑ”þ¨RÍÊ\rù¶è »g0Å[,à†q>9d·ãwVý nò~ç•ÆZ¦œ™ÓÆQ3/8eEËmj¢w6žZzÝsšS×|¼ M^Ü©"†¾ËzªºpgDãì³%&Hþüieu+Øîwx¨ñÇþ@t_ÞcZò÷1Äåä» ݱ¸ÆU§#Tâ´ÉÈ?ŠJ4Ÿgšù—¿Z]›C·9„p…J¬Ú¨‘9{è±°/0:/²i$°Þͪ C›…á^Þ(áMžÄÊ÷B&È’ÒI{x3þÖØNoe¨°º^(B•E©åc ËÇoóBú¬(¡xÊë´ \µ-=òü[œ´1!gƒ/ÏWÈîš¬ŽƒŠ«eÍìàËJ~øŽÉ‹4Ó²¾Šûþ“K«ââÚwks8º¹^v‰rg%#k£ôè#Fà–¢›9Úkbø&ð‘ºY`ÏS¡Vý[¬N3U hÎ!ò8}s+¾ÓJ´ý Ù™<©è°áâÒcmÂùûÂìÇc{ãÐÙ÷±LtÏO-KÓwè>¸êþHƒŠic­ÿWªz°–hZ@‚R© Èû–duÿŒ?qM²S¶+§¦Š‡~Ýâj ÅUF«Þ7 Vk–Åf Sf@cñ Õäȶê~pƒ:«úƒË&³¥Æ[Ó1w9­ÉÈá¼ÍYÒDí(Å“<òB"ßÏýÊ%Fîîå"0JݵgÊ„•Ýs3u¼w!  µ¤‘µ “á ÓeøvÌK]^ÆÁé¡sÄij÷S7˜[­äxRÑáîò@—ð—+{ÐwæJVÔÊXE9ä›ÖI±X"¹±7à‹ù½Ü9çÌ@Éè0FæƒBõ±“`ö"èdñB½Çcõüg¹9[Óâ Ô‡"”±Y³²Ó<óµÌ¸œYIÍpíê„+5¡ÅGÅ÷OR€X=ÎCLì2ƒp&h¸]” 9èŒsƒö”à|#{Æ`°ÍÕ‹B¯ïókj§”j ‹Ã¨M¬óÛ)=bžW…‚Þ¢S¼«6S… –z´…!›¡ÿ%èÀʶӲYŒ–èPuaør¦¿7W’\y½zíÞQ¥í †™ËÅ?óˆ²@ÝF"gÕùmDªy÷^¹ÔXéJyºPS4G\Ü œàóžï™§ yƒ—9@OõǺ"vp{I‡¥ží5xžw&&íÍŸõ}*Ì—YWÀÌpµŠPžv–OÉb KÔ)|÷ÖbCØ‚ "4&ˆXÎçÂOÙQÙ˜æ-r„’8úÄBáyW ©Õ£±÷ýþø;ÉGý¢)oû^¢œ´ËŠ¥!_%w"ŽBw¤sçc&ËéªêêÔ1ï\ÚÓh£÷ô8a‹“â¶Ššå_5 V“  ÇmÒu®¥ª"+i Ç6ÏÆqx|7d¯fëÎð„ HhH½¤ÆiX,”LÀª’£©ÿ1±òX3ì å}w{Ìv3þd’æ_wo($ØúçH©Ì}\<8kBÏóH M.ò™Cè§ó$ËÒ²ä”xŽÇN›lSÔ‚b³â’¾Dgð,=Žü÷äjw•€;Ä3ØjËo7èroøÐ…n’º½ßZ£×Û¢$Àˆx–\/§;ÉË Èx‹¦X>N0ÊÒcú÷•ÎD4)†Ôv7Îa+õ ~gQÄ—²C8ºù1Äž‘¸äÙn4ûv½woûäJñ*KjÒ˜D»II$x}ÊnìÙäVsÝz¸6cH9~çwßåciJLìÚHuKÄ´/Ûs‘J㜓ÞeX‚–ªÏqÞ2&—W[¡„žˆ _ßm¢Š 9Ô7È!üÈÈ)b$ŒÌžLJ2£{s4‹K,ì^Ê1LR)®‹4ù=)9n}Œƒôˆ$…p"(K$F†&xß&_Tà¤ùxXXE=ë4®ÊlqôÍp[‘bIÚþ&~J»ÐOuø€Â[ÑÈŸÙ;ðÅù|kaéÎví=@ã¯â¢ 1ºœ›G` %WøqòѨê±/Ü¥ÛÆsô—ÙÍSVXKÅ€HÊ{E»{MÚ—¼%I—’s×™iGÌßµŸ‚/âåû‡B)¯R寋lÇɰáAVË)7+óŽç“ßäÛSÛÛŽ¡Ï<0%^Í8À SX;+‰ŠÂŽGV9:’Ü©F‚ø<ä_ÌXørÅŒ‡عȯ¶Á1D·zë¥üÈ¿1àÊÖò{R&Q=BÍ¥‘¦ÂàËÐ8~çk"„µMU²3м_k’@ð žE ?Åã”Þ|sõht>õ›š×·n×$RûøHxý»,À‰MÜ-·¡XǓ˚Z*QUÝåTw$ñÇt»Ð/Y|}²àÁ?ÕL †¥ÃT©ã=ùÖm^Òd°I:±¢ó‘ëtUç(€Ñsœ¾MÕWºäAÒN†ohÓ2M´W±ä;Ò,íž0¿ " FÇFÌ´Ìx|÷ò$"û‚ÑÇRÇIœÉRëXÙ‡öí1‘§É}ðþF=?®Gêàìè:oÉ‹àD}Ôvó59úýo4(mê¥6s8-Æ2æúfEÀ¹RþcVo™²C‰Év ÌÏH‘î:ælÅ¿-лJÌö.Ö˜)_bçUQþÞ{Oäúô+rßÑ*ÝuÌý·#âJ@ ,Fÿ÷ìã†{O# †azA’¤¾` wÉD¬7ŽÌ5ÈU¿€ûáÈ>‡O˜þó‚Ï”Ÿï+-¤u:»€¬¹ÁÒ¯Š¦±€ÚÕD}åD¤«*2—´+оgmxöW[bœùj&Bºø3¡Ò Àp(< ?Vƃõù‘œ©'>›0þÀ''ò$ÏUq¼Ú]ú„¾xèAmfà’„zWOˆV—ÿ%‘P.K÷Rl„²å}[ë?¿ ¨$?‰Õû5Õã™t”àu.V~(þàbÍ‚%“Öj¤ß=ëïSL¤[ÚAÛáN ‰kd1;F a`lÊ çMz¬Îhrd C{ „X›{@bi¨8¢^9å|‡;ˆ2m0dƒæ®WàÛv‘á\%ê ¬à«âS‡­×›£]KâcßÊ5\°kmJ‡|ôGLƒuÌæí!ä…Oï(ægw¬ømV×­Ä2löplH[¥vôx;†:?œMy&ÉðÐ^+žñôû»k‘*Añ@9Wï⯄¦ƒ|Ûž`=Fúæ7Ë­»UÅm û‹‘_ÒZêÚ]Ë›`qBGŽŽ‰ª§Þphiê7ñØC’ äð.tB¤„/!aŸ€K•ŒÒìx8ßÏø"œÕY®3Óˆì¶OÕÿö×ט ˜’VˆSЀ‰‡›ƒßÈaýÂ}S± ÞÆ²£#+=Ž ×Õ_iEá„ý^òäµàD‘tª9bà £nDµ­-¸o™/?ÒÀë¿7XRÑÆ.Q{o'§­e, â®Øpô|ÀˆîøÎíéLˆ|š<)‡{èÏÏKñû¼Wùc\w»ã§£ì›Y ¹VI¦C«ª&D±»Òú¸ÈŠó¶“²ÝåW>©¦fnˆ$ûO¨Aœ™wB­ ÞNˆ;…zù5°PÒäÕùÐ1ü¿¿1¹Ë!äd?0N–ñß^@@θA§ ™ bÛÉ…Ê„LýšÓê”óá/f˜n#üÀ²¼üd2<§=òµOt† K^ K†?1KŸ|Ü}ÌžIàµOè5›YÅ» >›èÜ1j`Nû£ÿ½£ §6ú‰k ðaX¥Ä0™uþ$ºÉ-À{b y:Ô¼cšïÿ‹Eˆ{“·$ñÓg ¨ŽÊCŒTZVZø€ †·×’asç0™¯tAœ:<å§ŽžcÏEX#ïÔXGf µ;~Ìò8¢ÈŸ¯‚î|ò¿à.EöÏ-]Ѻz8m{Nu?AÞ '‘%ª%úJÎQ’±j…^”D˜[Ó÷“/aÕvÏ⳸k÷þ3Ýò¯5Ø`O·¯Y”Ç]iÛ–¬ÿš•}ZÀd× Ýg·$8 ³®‘}e?ù.÷MV&$¥ÕÔ1‚øe•Mñ`{Ë= … 7qÑT¼<’Ûp®ŠP'a:Þh ƒN —0Xô)LžX ýÚjåËTRÍ–°{E1ÙD3ýp´êìÙŽ6á-#Ì(í¢¢u23‡%NŽ·0'úGÜ.àZâéQCH$Rp¿ü"ãAÖg5Ûd =”¨rDðÒæ\…ÀæCâ0ÙóuÄrgäa©Ž1PúôŠ”¡ýó:™„ƒí«D3GR%)ºfg„ÛŸ1å˜ù¢õŽƒZÎ l zÁî/MÙÎMÙP~*=½ŒCSçøÕN¹5?Õ‹ªÈ«´d%&‘.œÞ2ï7¡`–™q&-Ô.cLÂïØÏ ÔN‡ž•—¥> •b®KL"]V7iuñØìç.°>«îßé§Åj¶›¤UKf]9!ë­ µ3Ö^ñaÔÜ×#å_0xûUZA †uLƒœ<ä{#îì†öv‰÷fídòDrbDG+0y>nº •ÏÿSýø­¨#í¨Ð;¥´ÌçM?±àƒXN‚eÙNвÒXìÙ%¸rάߦôEj­±)8¦C½oÊ•Öhõuhº2&fö¿K‘WKŸU&}é$JVËr²ÍÝ u¾[ÔO Ö?̉¾M¦íDÕá—fÉNªÃŒ\Uâ"&BƒÑ  9l!TA«¹ ˜²'EOeÀ°Òord$Yü24š&]Ǧ2|'tÍP/:J»^nö çÿгõ2Yå×F±¿b´c{K·lx’QòÐÁ€’o«Î…ø¥ñåÏ0v*wÕx©8+`tî¡.îÕQ9|­Ü,3 I*ÒSÜ‘=>Ë…c)öê‚Uƒ… w7½„'ŠŒHr†Ðвl 6x jt0ôIµúÚWz=?·¹fЭ…™Î[jà}yÎvõdùMJ è$ˆÇ_@‘ÕŽÎ+Álㄜdš¢×^z48·"ˆ(tÁWD_$ÊZFDb.eYóÕÙr'ã:ÏhG ýgb»+~…Ó-¢ñÙàvâúE vÆ3¢9[á¬&Ǹ8¸S£œ ^ÖKrÀŸÑ¢Çw04Æ‘ÝÌ‚è+³jçßuœŬQ-¤)ûñlÀcñ]jQ™ÔiÒtŒ¿»ÈsïG…²b¶J+xX{ñ™P‡÷’ÞeÒã蜰*±‡-Âîu]÷^¶õäC0­˜JWV€ œvÅU…¹"H<༬ãmJ†=‡•TBod¬ü!(Î!t 7»®–Œj¡Ó©‰5ŸÎÄBâKjñå-È×hëÍÐÒQ3Äʺ÷¬UÒ_Œ#±*¶g<ùt=òÈ/7;¼´ôù ¢æJáùŠÓFæË9õ*ÂóŠræ]í!*ãÒòyôÀŽÃÂïÇIÐMdzaº‘­÷$Úi=\sGZðé‘—£ÖÄNÇð#y‡JÛ?X‹|丽 Î:ôÅ`ßw²Ì=ÿ«mx4ÜÊ~ñ¢™U#Àu}Sæð‘Ú‘ðs£†Þôtž éÎ0I#oIí Äqƒ±¾×g«_$7@ }õï£Wyà=˜Ûì{› jæ­ÙjÇåð6ë—^ÇÑùÚñ0ˆá¼YµgÌ4¼43ÿm¿Ò/Š9ŒèyUÀ hž nZ¥P߸„ãÍwy#%@öÛÔóQÙipÍíΘH¼æ{u¶ Zl®´·„ºônÖ;Ûœ××ÜœrüÂ±Þ ¶¤[þå]Ô\R1žUÃkáƒ/Ÿ¨è02aø™TªËÙ5\ 8‘D,ÏSÄN‡©ï‰“¢ö€X80èqÛo"2à ßOWW'Þcø,(ö`0z÷³Z¨Ýåµ®Zà•°Ó…6!FüfWŸ¯[¡¯‚;jMEƒu«ÄSxÉ=¼n0NØuæf=5ÿ€¾ýáJafÑxo•«”AÊ"ó¹¸àô.¦zúµj‘§T‹¨{üÁ¶ž£s ã.T–áÞ«>üf %€S½“˜M "pû2„Þ£³”&è.©îuÅÿ jŠùíyUÑþ²25†±{yfåãà,4!yßð¿»H@lß¡Þ2AаŸ0HèXƒÐdÔ¤9!–ˆhëœóÙ£=–/(}º¤1Å%T€Ríì~ˆõm‡ˆ¢`‰0R¤Ðu:’ZZ;щoí€EÚÔLªôv¸y à­yü†,¯í!«¨Êã:¬¸¤ÜÔDsÊfŒry 2žü§×¿(dp•R•~¹Xf<ªBûV\¤°4,Q$“±pT/;±Úš³IsµöB¥T‡Bû³dVg€jÃ0—ƒ¥4úöoÜâw¹·1ð©Î;»ñ¹œ›êËw‹ØgÉQzµ G^õáS H6CN€Ê`îK'J-eˆ[üü5À*¹€³"_ax&66a3H N4&F&VÊ„Š6ç}¶@ˆ­QÞúŒIÀÍoö^,'ÏWŸE,eÉoì%À›ÃÊàÝ€ëÍ%Æe˜¬Ö!ëîØ…Æk÷Ñ¥,?m÷}–<‰¤þÊ$kÊéì–ü¤ïˉå#áNX˜‰ðug¥ä«{…y}’°TÞO솘גD"&¤‰Û(ÛjUøÿà ÅJ=o =Z?ÌÍÞµKÅë§~o J‹€¸kꧬ%ú*{`þ·1#Ñ1vöä&¢a2)h[Ha¨xq^lÐÃ*íŸx|\ž>¥êÁ'ãV²(ùRTÞvÁc`xŠ–¼—³€|û¤?’šW%ÈTÌ y´“­wUØÝéHîŽæ}Ú—'ÊŸoV¼lp ‘µOÜÌ`PÕ"qâxlDíÆŠ†/Âޮˀb©ñÙÃÏýòXkÜz.poénP·ÐB MøO5;6ê0¬íPí{v¶e´ƒ½ —{D/AÈ0pbß„žÅÎa6ø¯a±tŸ~¢~çL.N X WÐ ÑsñÂÿ™¸p±àŠæ]G½üá‰AkCW}Ü™™ëRÏí ½Ë·â 3ïAzá©\RÁ8”É»è½åkDn¤ÉofÒ¬:0#_P-ïF‘£ÀoËNé³Kè7¶7Œ°ƒ‘® Y æ;t!·7*=òRú=ƒ´óD.Õaò Âð‚³"áDÄv 9DZÞ¡ia‹Å(KIª½3S%§)—×I™qˆªá¡ddÙ¸ßp°ì.r²‡ù™´~Aù^zâðz´æa~°~ÊJåzºÔÀV/œíK6lÖç?ÜÊ„÷Ž´·›?GÝ›uúÚAmÛ±Œ—ÄÝ$ªçÔ¢ŽŸÏ,/#AE å´;úöð`¥¦N¿B<Ú–¤áú¼fEwe´ÚEeáfÃóÕiöËz(`©ƒ(°¶òq8ùìÈåBù·ÉJæ"ζçbJã:L¥ˆ€¶ vˆ¹ã6QXTçÕ×¶–‰qËîB[õeæ=¾i?Ûñ’²äS_ Ã»q<»ªé7\^t=RÎbÄè0cjų Où‡Ó¿3B¬“ļQ¾>%[v'7gó~ë”Fz8,Ù'œã"zxr1²‡¥ªd%d3uŽø牪øóE$’½rI¸¢+ÕÇ.=)he¯E;e î}QþSx ê)†–Y«ô4å™r»ìØSêÇÙ˜˜Rƺâ„v·´buIN'Øß$!­‰;÷ŶöŠ5lO{ÉSí2ýôÄp‘ßָฮéC6ßM泌ÕS_4z±À^aéwŒ'%KyÉ—-ÀÒÃQ!ñÖBsíÞ)Ð&LëÞ䌖óe]ÃrW<¥4ŽÏH¯‘æÝ:Ù¼sØî%zž|†©¡·XZ²HaE«„†AT&lߊ¶r®|I¬åFb,<–"TM»b•÷'@ >ž\*HïìØkw—«ý‰Æµ~cú«>²a LþjñBåÄ™Md>§Â[±äC?Æë ÞsÌ<ƒVW^PÏVEuƒEk.ŠYDuâqH ]ÓFin-J<ãÉ mÈö ‘Æ xîpk ¦¨dAViÓ™V •§³‚U&4|–dzòÌ¥Hõ.Sê•tÕIvÔHÎÊGPZäRf(ÛÍY!‰KªÌöay8_ÁnÖêCDݲ1¶$2^(=~Æ\Ú7DݤìÖFi@ü‘«VC×n6õ/«­úÝ«Ò_Y í¬ñ% ä­‡&$¶Úß|1,{¾o/|Cãþî‘åõÔE¶dQ>´@hÑzUîÔNÄ(j臗œ/dÀJìYçW©ª‡Ÿg?Ùþ›ñ²èмÜnï “«0Ý:pÌ«Þo 8ý;Ü`òà•,Á5P²ª–àD ïÇj3dÆðc~aAx×pI%1³;9þ€ˆ*|nNœî» BYA@0€Ôÿ&„ý]²»níÒjüÿ;kf3åLF®p15}ð”1~’šbåÛS’¡Áî"›kثƆ›¡É‡J e_òTêC¡¬;˲ÍÚ>«$ÅË2­ts/0¡"½äY_okH“^‡MÓÉV²²P¬vMéæÚk´ãìD ïœûLM¤Ko›gÞI@D ¡&lAS—¶RžÐdx©tæ¸õEòt¼Ù b°2‡÷pÀ`%((ѤeÍiyøÐ!±TÌf¥•Âøx¾ÛPrb¾¸ž¶Âµ_™·—j™Ée%$ßô6îØs^$Ý~Yu–XC&¿gL,fI$6Po%q³­×_›„ƒ¦Ó“¯¶®Á²Eš¥÷€jÿÒ¼p!Âw«)wŸ³©V:¦ŽÑ·Ñ —,!¸Øˆó’+öûH­,ÎF²Ðs;h²nótîƒZgö$Y«–†&Üžª#ÿ8æö@²¨ÉlÞ¯I‘lbVƒ5^Ó°™Û¬éY1ãÊÁ•ÛÓ²ŒÏ&xé¯pxÚ¡ŽHHϹyŠ4f…~ ìÇ.[Ü‹¾/Ü®Ñ@„¤öUå.˜°:Ié%´ ÚìϳÃQ®´ ;¨UPè.Íéí¿€O‡ÇÿJ|ÉÒ앵Qµî(›úãå­žÐÚÝ]ïyÛ‘B×æÈ¡÷øD†h¾dMÚ"Y(÷cPv¥„„Q³fXŒ„åZã¾hŸ°XäaúqàÂ1›ü$+G±ÒÑ£+dª6š£!RæµDÓgžÍ€’.]_¯{[ҡСWe> É6Ÿ6/ª \œ¸Ñ“ð8¨DU¦1Æ5’¬r¯®›·Ý–($z?&ë×" :Mˆ]Ҽɜ®‘ Î\òwtc±Qª˜|g^’Åäåé•(€'¹`—­ó†Ù+0fy3‹^Ú¥*ÂŒòråaBÏ÷ȊݲG]ÕkÖz—,½s-ÊÊÒmæoÇjÿý¨øD3ÊEàÓdjó‹.  Ž¿#7ÿËK9eµÊÙ=à}yÑ¿ÐN`<$Æ{Ô½Øü*µ¼ÂBܲhíLÚ]WCáOød¹-¯‰¹˜Ó>;”£æÁ}~j¡N `»YhÖ± Š­µPQIسŒp`x¢*ÍëcËÒçÃWò©"Œ\Óê‹`mØ1)¿Ž53¿Û¹BâŠU›w²Z/#žlrŰÖp{ÓŠgßjXSdŒA+Gˆý®G!‹ %‚V7}ÀÉÔœý›¸)D‰öŸÄŒ¦u댥¤’/> 0º+?6YÚÖ¼=t3$#°r©2Ä‹ª hv½!(¢U º®zGÌ¡`ê°¼°ð#E¯?šô.V…rJåüªL^">–™™¶5ÛÌü‚}¨”±>¼cg·p(Ï`” zŒï›«½G LˆÏnjÚ¨½®ÊýÁìŸ ¿E¿¬j´ž6~  8“»Óȯ8í8ÊÉdP:}%  ZÔ(=[Ù¼,W¼ê?ÑB# t¤©Þ‘qö^“ˆ?Ô×H_ ÇãÊïóÝêxü¨Æ ¹°šSS ٸߟºM‚ãHó˜ix¹Ò[Åš½p<•~-Ö€‡…ˆ˜ÿúªàæWh_(öóNeA-D‘®9ªÎħÎý]ëœ}Öª’`äè  HÈ”u$r–§ƒkÒÂ?gKÜJ uÌQZ †/àh­sÅЃ˜ÃVOBÒ÷ò,,Í“§^匡©L³ÓŒfê ©°2f8g[yî-1Á«d*°Ê×»€Ž¿\G>®1ƒ?Ù”zã]~ Ðø>Œ‹Â+WëÒÎúh€%æ‘èBæÍñÖ È¸z_+-.ìˆQT™#¥ ƒf.ȧ¬›À\z…C–÷¢Ñôÿoô<òú CKØãqò^´}ác]—>ÆÒ`ÑK޳ì.ä¾Ó½Âð^‹ þË€ivimL†@áî=B€Ùš ó²Ÿ%Ý®\ì'aízT¿d.·ÑØÒásЌֵ˜À=e¼Ä/"}q€>VØ%¢I j>&¬  WÚÔ¸šÆ6þÕ6`D¬ëm†B¦ë€M«Tû†š#èì˜óÎC©ê«y–¾Ëg®Uµ˜r—)  ÉjÓXpÈ… ³.¥oþ¾0NÎe*¯¸UíéQ©ˆq#^Âï±1¦&$îwé Rö²ÊÅ3.zÚmìwä7þ¾.ÛûNžÈë;…üœQó9o»·§nwmì×;R³ »X£-ßîDs¼LûÖæ›=Ö P“G—)R>§Ù o߆€5ÈÊôÖkK.rQ„akL°´¢I}¤Ù¡ÓYš'vÅÀpŠ©$Ž_c<çGÇ;gÑ):"Å,uÊÉÑ– *J¹³ÍŸ£Qz¡À±,pÿíŒ*ÄléÛ»ª5ÉVZ²IÞ™®ª7•Vß’?£š›½œ@ЀÙ,ê2Úl6_ª…ȳ·Z„kð€¡V)ý¼¹t®ïµ[s°zm¹í ù©ïãåkÞj”õTxSV#kOÑ‚õ%€o„à-Áí¨,~oÕ5ÇrE›?Ø!K•lˆµdÍNpÊ뢛 ¿qŠV½HΊ³Ô?F£;~ntdÂW¼ý>~Ióqr:6vŸZ\¤Æ"¸ü=;=¤*pe¡lxø“évá8IæH’PÍò93ôªÿ¯ûk¯”]é~U¯WÍ @>?XG.ßS6¦`°ÐN‹£ÔÑ8߸þ¦ ]Fô?‰qÙm4óµbä–Ákþ93‹©³í¥Ò¬{`3Zyi“, Î'âÆ Ï“}+Dpå·»&¹?úíÉåz)™\± ¡Nˆ‚»Œ“[Ñ#ÎÕÝ i ‡ºƒ7¥a›‹Àéx (¸ÇU?C¤Ø>^’ßo7†H+ëÚE[ÇvVó–n½˜•ÁâÛGÎâpžµ¼ñÉ!ÿw¿üUáØCôšãÈe‡ÄÞr¼Ô‡dÿ.m½ÍlÇkÙàB4ožŽô¬—¨-Dúµ*A×óÊÜPóÐ4.χ±G!«‹Ó)tRº~¡Ê8ŒC0¥ùûk,‰;ïÆpÛ3¶·”%Ùý¬ê´~÷¬V—ÞËŠQ+õ{ Ž-*#F»Jnxj|𙵚&%^õô4–õâzuª×à/²È¿ÒŸŒGr†¢¾ŠO'&ÝÄ7£<¶…Ìñgò§FÁz|pŠÓÛã“)ð %¢F¸%ýF·3Aj³‚Ÿ ÄÕYlù÷Çä¶WG[5’mg§ øÇnBGË÷F&ûì¥Ò)ÚÄÝèoüY°´i¶—ôÛÓìÇÏ¿ÈÃíž6‡Á¨¹©1ªU°îZžmåi +PNÆÀÜžüÀ†oAsÿ>Е Cµ¨­ó]wÝOÂÂ>ëÐhÑ1Çó^Ï?y@`ZÀ:à®`5Ñév¨BKÆr{™lŸ'\‹ÌÕè܃3I «¤ß7 ÞsÀìi3)ÖylŠ•v'¶víVr¢O?AÿvµÜ@Ó¼n ð6ô¤n¯áœ³«î Q ý (&ÌPôÖ>>tnÿ:œ­J»7Y†R©ÏûÖV#ÕNnîþ‚aÞkyFp´ÓÚ<ÕèZ08 v©¯îFõ±@˜Œ€3hõùâu6W5ÚÐ{9ëç;ã  :Oäýª}%Îä±ðÃd®™>h—°]ã-—fÞ_'Ž[XЍT¬ê…^ˆØ|Ì·@"ÅÉ—¡d™ŒíêƒÅÞŸ(ÿØ„¥ß*,Ó̉¸€»õ€K±‹2ߥ>Úï¥ú%¢)ƺbu¬pÈ—Æ §{ý‰åa7u ˜ØlàBÙ7æV,]JÆýØæ‡qlÔ!¼ì„Ø®øin/m¹ç îý N¾VL:Øp¨ˆÁ_¬å´r˜R…Š¢zzœ‘»‚ø¥-€R&~ô¶†Øró" y-¨ƒmbû 2Kýê˜÷#ßc|E)Ý{úQçï Øç‹4»aþ{Æ4Ù̘¸ŒH›¼‰õ § E5ËÍðy¶‹ß\ùe#ÈW“+¤ÉÛ?íR²Hü6¤Ö¡›¼ùµ—Jm ÎâÔUDz¿CíPF7W9âjJ&PÑ{©:¾"ß|í3pêÉcwt`gภô9ÓÍQeƒŠ}‡ùC%‘ͽ(bÚP-È/ÐF'„uæåWøQ±žä4ˆ-1®ÆRµmîJ®ÂF\ôbX8dåÙ”(5êÑàôÚ,mŠŒu*A‹E~Ú †´¹²›ÒÄ÷º tJ”_ù ­ÈCl|¹µwåvŸl±tG;£s[ñ¾ŸÓǦ¡‡5²Ëiá@}ä|ä¢^‡;õžÒ61Åß Hj[¾È~Nw1¼šœÏ5ÂB>ðAL6IaŒ–ê”Bwš˜|¿ì]¤.5ó³ôlL Ä{ÎÙ¨:» 5©4XD¥[¢”Žýëìn‡|)Dí-SL6ŸŠwªl[Ó°,GÉX‡éôÚX€sT’5p]ÏM8÷I1l­NÚ<þЦv` / É+ÑÂ/ rYüD|ntG(es!P»G8óbµëðãÛ8×ü¯¦tFíxÅ=w8#ùðe0Þ‰3WÓUín[ÔV@‘·?ˆˆàÇÚ=ÇH6ò¸ÝÔ¬<#ÊÜȲ ø |fü!´—}[ °·Ãñ–•[ª`„~@˜|‹—ï?³QÏ"Ÿ«#n?o^EÅD°ÇCæI¨'úg_8úËa-úþPA=4­&s6’aÌn»PÖ-‘ýx‹Ì+¤Ž/›õiHìÁ…ïD2 g^í‘ü{Ü•«°v*ŒçV[*¯y“ T5'ëÚzã<õÿ3¬3®|„LqÒîO)uÈ´dñöŸPüì-Ðð 32› —9.äDÞ“döÊD%Š®ŸLdµƒa÷÷·ÊåI¥ygY^0¥cdnfF:Ò>Ü•°}€ Eã’MüŽÄø¶]Ê@ÃdpY¥}ŽÔª˜?o˜qæ"/›HÉVUºéÜ̈z/@}Z‹ýtbHJ¹š"ú`ëÕn^E%Ap4Ê„1R6aø¶ ¯U€þEDùZ:+HÚ‹<ÝHAd>­qE>K—'öްžÚ‰o„Óuë[¬‡w­5þ1u5êýÊ*üWÛÜ{­ç+Ÿ~dÞRi6Sf·q;êg!œ÷èÛ¦-èÕJ)`úã¥ÂL)¾ä¤ f€™J£™}ë3z(7dã^=ø}£W1ö9RÇ:»‰†3 ÈÐ\Ölšž\ÁáQ5Œ¦˜wçxÏUy 7ƒŽU<ŽC$ò\ÌßÀÉ×û ‰ho›´ZðȈTYTÁŒlª–€Ö;‰Æ§·ás k›‡f,8Pó@F}FMHiS(¶nËúÛ†›Pjà»[,ÃgŒ”î„W}Öñàú¬"Âg£4ù¿pCÀµ$÷LÉ» *þ@þðÃSà ]~¦Ì¤Iž¬=ý HG]×{¢v­4òF-ðnÍ¡?¯œI*{/ôAQeÝ“¾bbéG.çêiåµ»r7*©óÑ–¦ª 6ë팆­÷‚ëºæ¾Ð¥– MIÝ´¡a@È]U¯“òŒ_6·s“Fÿ‡½ÐêŸÓèHl]”àA yàUªîǤjí}÷Ì}>XRœÔ÷ùU †zÆ=ŽëwÕýuw¿d•c)Óâú¯;”¯ „`w#ÛåAóĉàXL1b™ß‰ü„Iƒu&³„Ô»¨Ë@ö *ÈlJo/î‹ë:NךÍ·3Œ"œZðŸa®%ÓwUB‹](J±È¡Ôÿ1rpšãÇ—~©2U%ý²t²ì3,AB'¢¦ä£n­T¤w rá +–St<™;vJ¾ž2Þ¬RÑë’/¢¯–o½_ þÝ&ì\4¦~Ín -á{û/ëiº'€N]\±>Oû‹¦|·oAp! ¥àâÚì ¹c 2ßhç=’sÖ™J~Còä‹T‹—WlúC§ñn‹¶};ršŸ÷°è)‡˜½&Ç áŸã•ñüÙµ— ²gªÊzÞ^~µ!ŽïìÄ»LËÐlGØŠÄäæÝ2CMx-³Ëe‰ÇdCˆzà¦c´µÕÎÄ÷ÙaþØj‡x"Mçv^?Þˆ4‰dñH7î³DÃÛ¿Åvóm©Qäf»†8ÒQèEü|?H1.ìC’Î~P q™QÎs´3z0 £¡éµý3JGñAýNÎ¥÷ißMq“iÌö½~v^£T™,J¬ç¹YÞÞøÊÿâœs)`H‚‰¶&ð­R«ãÝóQ¯µ„ü­ÖBu{¼¨Ô4# [Q oÀì¡fö8mŽ®‹‘]Ïù%L7mZÙµ½ ?–…“ª ¾Tð=w\§g–`ÇþÙwÞ‡'OŠƒ©0*ý¬9Dm‹¾8JÚ:wQÅôuðÄ.‡Ï3ž¸^½7¡„ ,¢óÍD¿<–tƒ¼3mîô+˜­a ¡=‘¥Ç¨˜JíÀÑ„Kõ*“ëñR9MÇÿëòu\³Ðdø˜§äÍɼ̰,ÍúDQ‘t¨RèžhÂdðµ*޶bzí9Bpk‹ÃȆ²àvoY`)®9F6DÅËL¥Ê;ýVéç_I@ÀÁ¡F#Éjþw 1QðÄN›^  Þ~Ô®Xgi/§ÑJšúÄëGkïo˯ÿÇúž¾<¤›nYJ’uƒO.Vo28E¡Ëwd:ZÜZçÞåx{€ƒË*3~š}SÔ»™'¢ü /"¢UP•Ý«ˆis+”’7h)0÷+i6鉶<¥²52¨f²^XwÑϪ?¶ŸÎ¬ e ¡bß¡ë“8â2íyýÓê ™—B‹• þ{GÕ t}3iñ ·´§Qìr¡&EÏe«# ¿„âzbü§©îªþ#©›¤%ÄÃÉ;JE^ Ç®;Ôa.@…4‹¯ÞHd݇ð°”ÆZû{zúŒôZ©ÐAdʦV;KJìAn•iÆX©\—½ÄöBÓ¶JæÁÐDê€ïV e_+N¥äe·”‚©¨²aÖåó/D¶ˆ ½xôX×m}šn(£¯€ËNعûÓäôþO¸¾”ŸÌKU Î XûMÁ_Ó+§“É–ÕìûÉÔz^N„>z—й W¥V"ª9 ðá笠¡ˆ 2® 5‹Ç_mbD¥xoÖ&ÊhF¹H¯¼²e¬ÂêxÊl.¢íxáŠ3³: \!ŽSÅê =]Ë–çÝmÇÎÿqXB:¾õ¾d[Œ¶‰Nñ y¯]Û`~–/HB‘Á]Ð3ȹÚj¹yÝÿnk¥J† LžšEbåDW§¢ ¡Û¹c~bÐ<Ï WY÷“ëZ)†;]QT¤šxÎ4Ñçá íÕ*PªÔ^ÆÄQëL¸ïpC-¨h_æ#Ê´Êa”ϳÛúÑåÉí‚¿FÊ; ¯*$Ĺºx´hᔃô‰#¨6•L5)ƒÇCý+‡Ê8².)ˆÛ¡…ny±¯£í¿–Á›»ûJ/¯¸{úïkgYºv!Æzê±€ øŸ‘~a´'Ž+Ö„Èœa4?òOGÈ$Jyüz»¦é·o¼(¼=xÜ””YWì1vÎmOùáU6НaDÿÔs­ìE"øâ^ÖÍHÞ¬Uwie…fËÜCþlÙÁúÅ/5³‚ë \KVÅ'¢ó¹5Äê µHå39ÛQvÙ³Ú]^CóR¨,r¹ÆŒœ+D/%G©&ÕÉݹ,“ÓU*Yá™DóF;7âáÀtDò’ùÈ¿òÓv\Ø\Û„ÍL0ÿÀ†— Ü±Q;¥—Çÿùvo©‡rö Ìœª‡ãlîÐÜW£‰»³WâZ‘aï›ãR×îºdYºÇä3oæ6*ƒHbÊ”øŠÉÍžìÝÑt9é$?™]Á_µd¾z‘Xùâìë*»†Ou¬PnþDul³‰qâÂßï°c5&œ:äÖ“þ\а¸I §Üå"a¤Ž'Ú:OAÊDÑžjE 0 /‹Ÿ±«{ˆ›+Àü G' 2´A æý¶i׌jDò ðŒd¶³? 'mÝÑñ€tÖ'Í•)[‘a!tÝÇÅ…¨x¯[ÜOù8HI^I½ë‹½s×Y!’±t/,P°wŒuÀQ‡¢±ðQ';iǤËùSšáV^—’jÍ›Â-æ>÷Н¬-¬×TŒÀ•˜ñÓ$PÝüž¡6gyÛIŒ*ãµyMH»± 4;視‘‡!¬qFŸ(¯ˆIÝQI¶@&¿&èJ´Â¸‹…Sÿ™}¯tö™ÄFl=ÃwÿjL}ÎÓíÒ*£Ù«&,'ÑÆú˜âO£Ì *©8ô¢š°oWp!p‰Ð @wNÇô±¤=¢nXJC9ØNÁ?g ìÅ ŒYÖÞvéÓ¾ÿÎGo@˜ÙëûõO×éoàîÎÆ¨:·ò>¹²Ì-¦ÈzÇ¡J‰ÿ5ºwä=b"ªàJGÕ¢“¤™NÜ¡ä ž8hs'‹«ÎLù$ñpý€½?†âzÙ½4 Z•ŽËà«ó¥wçf¢÷PSw=Uò¸?³! Üù£ ÇY‰çÒnAGiE”/ 6B>i¡ª§^,ç¼®}ªB6Î,‰ÓHy~"ºd_v-E¢BÑLx'†r¶¬}ñAJg/=¶²<¹ÔWp”^‹DÌÁÅ5ió²ÂL„s¥µúÿÀ.hŽžú õ¼p k¤3œ>÷© ¥aɃSÍ(Ádø¨æ”¿)šY©.ò‹ûá¡Þë—ŽX‘ ¾žZbdQ}±÷Äÿ& r¶ô³tâ¢3Ö¼´Q¾}Ž‹nŠTz¸@>ä)_~CJÂÊ8l­Õäçr+aÀ[ªúG-=ÉôfAú;z7ßV2´3œlòeÌó’7²¤ƒaþ&Ù˜ÒúÝL³’VœXð÷»«Aaã{_qÜϳpK\%¥Z5”éU 1©xÑ@Ä·‰B''$N±OàO^~ë'ÊfÒͬcæ²x×’PÔ)*Œõ@Èú’ÊÝ.µÌKb:Á»Á«âFÊ3Ûè#0߸ÉÁ Jñ«Oø°MܬæpÅŠ «Á¿9øvçhwx):ú†ô}L5šä×eT§@.í³÷ò <¼Ê­ÈÍvÄ šqý²×8Ÿ_^­XI/ƒ‰ò½J¼Š—~سVþ«Ѥ¨Pò:1Z(Oä’1`m=#°çÖºóD¦êçŠëº¯3}l.D&Sæ‘C(2»“ëWaß{ô‰.R&*ü&‹‡¯ã»ËŒG>pî¾-#x2ÁòiZ!ôà’ @Áþ„æè¤™'š”J¤cåNŒt¾7ôþ÷ˆtèÑù’Ÿº…¸ Zã¥v¯DÉ’+Söo6f 5]³ª%Ò4m"S8oî¤ßºt£1ºí(N8t*M•+cŸŽé2Óy*;kÍ/êqÈ#:ž»¥,ϧ§Í;ˆŽå¼¤(Ou¨' qxÝH{û=WÙÛùÝT†Äìï±ËJBVùj½Üjº /at¾ÒÊšò²@ÏÛÄ‹ÅëðÐÛnèÖ¼v?£3GN>áÈt™[¡"G®|+­lÚpùVlùß–›ÎG{Ïê<橊ªÌ‹–$ÌEMˆëph‚éÄ^Õb%ãù_GžòÆfì8’òæ¡ã³&AX¬#„ˆÁϵÀQT©¼\„Ù@H¯Ûé3Óö§÷oõVcè×(æG·Ûû»š2ä-‰ñ-AÜõ•nD6F´'¹¢é¾G·w¥ÅéF=xFï0âÔèTíÆ,xu7^ÿÙHÑ á}ébc¦%ÞѬµYö–Ô˜tKw­¦Bï¼°ÔÚÝ`¼þ9{.޽¦Þ¢{­è•u׈Û*±S+\Yx 33ÐSLÉTû¿Sø-y ½P úªíî«Ø­b—VÔZE?#ÑJ´ÆI_Ö|†.²0Ã0:\ yØ?»'v]ó' E8qÄÕÁApÃë…];«†.f~e`ê­W­ª$|—V? Õóœ¶Åeï½C NRÜw±Ä4âIJX—«¼Àb˜ÀÞ*xŒf}åWí§Í8‹9ã b½]@D¾¤YðÚaÔwõJ2b¢N ŸÅXûÙþbïk½-iJôMõ/Ö» ;´ÐÃ<“–/ ôš•ÊiýëÕ{XFšbüô–¯&ÃOàWh©»ÀŸvÜe»ƒñ]ª‡‘0&¾ nW~ÆÏ…›5yO›žQ>ªI=EîMÌ2d§ú¸¸%P?ɤ‚|3ȨjŽý,MÌŽ}&=…8\¿òq%¢­´G²[8%åêË ñ‡io7«+J”Ú¤7ÑÔ‹÷ѯ!èÜý€c‡^8úõpÿÉõ’˜í²D—ÜSÀÜ…(°‡8=EPxsž·üaáÜÍ\øÛ0Þ›-íâápbTìϾ¶Òr¸R¨]wøÕªcHé­XWIß ×r®Åd.bÉǘ¾ÿ¯âèD/{+ç ~¿¿# Zu>¹»Œ²°QVw>ÃTòY‡œîQ±cDe!ç|ÉÞ u®‰nàP Žõ¯ø¹¦ìD®DÝ&B Ÿ“ûŸÇN¨6°@ Ϩ‹•™SKõ’’LÆjpáD¯Øâr“ÜhÒIù”±Æ\[ý!g0lç‚¥„%¶µn[°‘š}ûô?_>·rµ¸JÖŠó€,ÓpákÀrä‹Ì ýžÐc[ÛOf3ƒVI…—ã[8@X6[ßggeã;’¢¾{PC8‘~ßEÿÝü½‡R™8…·3í6âÿ†6â|è«„ëG¬3‰$œ¼Ê¦ RWœ¬s Ú˜?GŸ"gÁG³ñ{#­Éý²5kÌáDÙáòÈa6DÆ[vëE±¸à·¶à ?ŒZ Xò¿-㠔܎KîâúdñÿµÝã{öôª§ÔˆBs” †åF…UJ1d9Psؘ€sFë¤òWÍc‰x–Ò¹;>î«`nY{µå2‚ùVLÞ³r¯‰Ecëõg¹½Ö6Q™#pîfdtöKiýÄ»`«x×ÌV‘ˆh ÉÑWe«f>ýƒi`šÐù0‘ñ-Ÿø²Wkº 2Ý,í¶)š¨:‚Á£1|>ßâÓ?k%0$([ ¶§ÒãûZvõ´*”×1GŸ»…ÊI€èÊØ¡M2Õ§i§Œ’…ú9Ñé…™ Å>Oß2ˆd…ÇÝÇ-êI«›z‚~§®‹köþ·âœ{á†C˜ˆe$Íds¨ úß[X#Ðs3GÓ]‡8á×H~$­0Ò’¤-Ïáá°aQÛç\[†zv¶ìÞVHM_&pvÆs¶Ü†‚*ˆž£|?S¬´:*A2ãª<•!yºõßoR8W_ÞPf_&a¶Ûqwé•ðˆVá§Ð’N½+£yY„šØÝÑŠ6º7ïÈ&Ør+$¬Ö£` ×Ï£6d$90®ju„¡{¡ÁË1¬ùI,o} 0S<“¢’ž}Ù[áöë =|qõ͹–Z¸ôØyò÷Ë.w°{64îDqùÏš³Éó¼ ÆÀ逆 Õ‘yâN 7ŽÞÆô8˜5¤Þ÷õ|R³ßàŸ*0 EL7>u>˜µ‚„ʵm·ùÏÍ}™ÙW°cèNü¼2·´{/V! ÷„‡xZ„ADC±/îeWH\î‰e`a–Øœ<çÙøîÄ8bfö»‰•6®`É¢ÿBM¯÷Òsõ\[áXú\@àÛ|qÊØ©„Ý‹n@÷U½òeL*î¦S²×|Bâ~–eU'BwïÏ•ÀZ8ë)Aú#¨Ïd ÷n¦¿¦l03§z„€éæÌè I|~;DÉêëÇfÛZ#‚IJЇïâ*Çgt §Ùû³˜¬# 8[×]¡GSD»ÅÙ@²ÇÏ‚W”Y‡cdV‡C‰ ¥^¥Ž’î‡ÕÔªRÖ·Œç¸3½ÕQiWÊÁ Æ Y-;KLXì#Mßrþù÷º2Õo›‹ÎÄèšlÉú™;vJòJPk.Wõ”Ví¶žz]1rnf•®k·¾8$¾`zÞÉÜW&Ç“ÝUG¦Gæ?eo§‹¸ùP×8 Ü|Ø*#•…7 ¢ÉR^?Ö¡4Ô;Ì¢6_FK¤˜ªQRÔèólšƒRÔ¥„>ÕëØ¯Á«ÎcÔN9ᜧ«Hö™¶~viòZÆcD_q–ýÅøIžÙõR£g!“£ÒÍá*F0©QŽØÀ@õà;>gËÄaKbPXƒ , fÙ9Xë^®-oÌsŽG‰ ­I’"å†ý›<Ê:ãó´0©W}öeÜK.S#·mùþ÷î"?1jÄ`…œ”›=¤lMçT£»ÏðŸbHáP¶ÁÊœõ˜*É´ÝËnäFª?&Ú44ƒ{Þmz:»EF¤ÆFç#½T82’¥0³ cáâ%ÒV3êsB›Zyçö^š•àþ%"`k)Pç) yW$0iÝæJ9, nÝåÅ.ìVOã] ? Á`j â‡O¹Œ½î©¬ëÔМK³åÉÅ‚­ÇÖ~ó@VxZ2vü·ëþ•¯˜±¹ËÒIú´liþ±PÂpü¶[»—@åðF¾ø\Å+vWNŽ;úü²Û¦’€nð&ÿDÌs¥ k¯tŸÈÒñ4„×¾c°ž†(bIF+bÎÞ«Çûj nP|kÄX%üXÒ¶O Á› `êU£i:±¦Š»¨…‡¸âÏ¡HÝDXV)Mþo’ç„7¸Ôi±$œsAFHãJLú–RÚL5ÕŽËÞLá™^ê!†t"ý—ni†ó*—Ðþ·Ð›ª‰ÄøŒ½Õh+¸ ìâMr¼ ™ßæW£.^€¥05P¿JžÙhÔù9ð6ºˬ*¿8™Áã;¢>Þ÷9à4Â^yí^E¦‡õ2J„½Eú7îÎ÷lV4uöÒHüd¼½ûäj×Rqœ7AÅx8ö–ÁÀ߀âöÕÉ÷DšB‰Ü®·ôJxvÑÂè馿ѶpÈÆžXÓd38€«Hó©uÀœ©åëÛjÁÛÃ{“6z+…ì]£öˆ‚ ° µäŒX§ËJ¸¸Ú[-Q’ëO/|$S&2+J¸¸þ–CP$®˜£Ó"„8` ÅoòÒ)\ ¢){àu{x°ÏÀåØMÜÛâ]~¹„Õ9È{|f=ôf/2Æ)ͺ Rê10 dæà¤èV,ËÄ7¤«Fû¾¶mvQà€'‰ÕÝlá愱mLau1…Øm†€éˆJáH¨ÍPfñç¿{P0'¥«j— ¨ Dç¸j_ íj’Ù¬¡ánAgûÇJŒúÌB Œ[åË9‚æLø“5GdBöBA·Žýµê޽Á¶ü—¬#üIjÅž“‰Œ)g$&ÞE×¥‰6›Ð…6ÐÊö’B¶^X Pµ Na Výy'ŽeµoWA×Cöß6Œ5Tì[ÝÇ'dÛÓ¾1Q ûG<¹½ÕF÷ÂÆÅwÅÎ_ŽÑìLëS¾ÿ˜²­»B+–´óh bííWÔç,²Ä-®É¯‚¸Óгÿö¹Ià®°ö\íÙË ºƒ3ìÑ®S˜Z‹µDвXÆxßW GSÌrÄÂ0©»×ZÉe° qݰ8I hñ^ ÷ê7’³ÍD×µÆ YìÄ^dÙ¤ÛˆN ™¼4Ò(Ÿüy‘ŒuŒµä­+Я{üþ» /ÉE<VºÁ¸›|B¥Rdú8Êà_?ÇŒvé¤ðçˆÜš4dÃ(*î Êy ¸z…¤}Se;5c&ô°œÒ„$$Ü׿‚N´Ô»¨›>¹Q6èšùôƒüÞ÷¶H0¸ŠµGzSi‘ë1ƒÍMOß좭©/¸vgrÓW)l~ÓVö˜ñõœPmÏÊ|&¥P¿ñâ©5Á@ú»7´õ(ïŽ ïWrç9§}Aˬ¶xó§­ —P ŸöðÜ0­åöÉ`ÈžèÑk5ŸêW±r—ïk»V˜,¡ÞÙHç¿u-‰Æí„Õ^ÅNNJf³‡Š¦¢žê‘³+ ú­ÌòôèìË^Í“>.qj:¿ñ$ÜßÃõõh‚¿TÕ³"ÝvcîñdÓÁ0Ç~}œTÖáx4~ÓŬÈÍŸå²),ÖèNâ~jÊ ÷*£âAÎežû/·Ï0Mi$}[û¿Šjb‹®Ây–pûs/Ë ´j(bFÖbw Iz[±på´qÙ)kt|mxÐÙ"òS.]k·ò?ÌŸ-›JkàÛP…,ìrg˜_Téd‹T^™D:L´ëDý—ömáxœá*6ñÍ[æÔÍŠ°N^yç¶dîø>¿× ¯ðÕ:¹þÐQ¸“Ñ`¼ûv"ø\H2÷D’5¤£z„0.‘0y®)ïÈ/„Ĥ™iÐÇ“ÈÊ.“ûÏji_ÂIarB“[>á‚ ¶j»O+Ãý‹Ó¢=oPV Q™dðòV¢5[¹Æç`®ØäÃúDÁín©Êμ1F‘f(x³F¬¶oàgNœ,/kÙn[7-MH”Ï‹AfúdeMÑð½~4 äǬ·iŸ³Ý°ÛUßj½9ÂÂfΑŸ„mñ8g¯ éÉÚ7Wy$‹hBÛ´$ j(½ÄíÚÌÁݵX ´XÁE7ºÄ‡Çƪ"ðÆÏ>Âú–6ŸJÖß u¯>èÜÉ ¥Ò×}9CÅÝPQ:ø“2ÝŠwO‘0|p0¶úLÇÞ5f­³¾e³+€w;ãa<9 x§IÞš¥¯$ü„ûDíCÙó&ØmîÛ6«ö¶Uk·xx|Œ-1ísY‡Átðè %þñ ¼Ö9|Ò¦l½ŠÞI®è·BÊ„cFÒaÌu–‚ßZ¨…Pé uSø Äz¶i“ÿÿ´›($¨ŸY1è>—œÎ¡Ë®‡' |æq÷°—ƒéz¬vÖtÿ"ZˆNÂ0*×ÝÅyösÊÓM R1¹þØFˆ›–ºÊ˜»An²è°¨¶°È­-(6,¿Ow ÞŽ€¨±šÜ<ÏNTöåîf)ƒ[úxY2MYº¹8( áÒ}‡IX¹IB|[c£&9€oèééå×Éq|"¹ÚSýQgÝq·DqQÜ- Û Œ4Ç&:F õŠ>RS€_¤µ1ºƒX!~ÛEâJAsqÔØõ ƒN~ª(g¨óTp®Æèàêü‡û…š4_AnŒ–H§ã™áû–"; ¶QÈ‹ô‡xJH­ ‹\»æÉ;Ô¨r5¿EØyñ'RMäwBÆAïOGÖb|…tª’PÖ6w¤™‰OnFsC®ãOo“-¾;øbØ×íÔ\ÓöQö¼c¦Pö¤¬ EÛCb mqyƒ bs¨‚ì~úuj;ˆ©y”W–€)Ó¸ñæJk´œÂê'ƒcÅXhOCåðzøŽâzèzyøŠÙn•dèq—'OiT „µä”*¼r~½þœñˆWoµ{e[jâD“?Êz ™#ÚLµÙ²wÞØ*à3V½€ÀD·íH:Lk6’úèòS½ÖÎHš·d>§BõY1¤ˆçsŠHÈ~‹UëÛ0@bÕïšÏ¨šOHëͰ·D³ Y¬¨Ît¼ˆzÂæ‘SèÎST¥D­sòòÏlþ/•/@9EoI¬ÒÀgV8€Fšˆ‹gÕß-(‡€è"¾"Ú4¢9p5'ò+}«Ð!8n_@w2.õÚÉõTÚ#H&?b$eô“ûÂò±Ózž7s]éRÂD׋7§³‘ "€NVK@iVB§—Ue`‡§èØà0x®=ÍÂ` b[i7®2œDô"-YlüX]ß“üD“¬i¾6ÙyXù—ù:ž]á¨|TÀç¶F4V S³•þfä“ O°C¬ÇøÄ QÅ‘N­7'x$Š4a¢ØÎ…R1*¸Àø.@ûZ‡pEúç‹[¢§‹«Q,ôU©šCV¼ö‘[k Ű®ãfÅ;ßÇmÜiêÙÖ?‡ÚN´Þ ÙóSIb/¦Lºxù¼áÞ 8³/08qyiHJ2c†xXBùiá×´xçžûǧìd{Îmƒ xÀ|NÂèÃÁŰhâ*¯Ûâ¼d‡˜«np‚´œ§/DyÂúä9{‹úäªäFهɂFB-Oå8ž¥Ê=ïÛ¥¿ÑÿÛÓ4ñ¤‘Q‡Ð¯ˆÍùƒ´Üyª ké”þú~\Êq2Ç$«Ò­¬WEè“{áÍÛfN»I½ä¡¼Åd¬Ô>ص'ˆ/Ç2¶Ø.ºß~.Z¡‘¦?«Bz‰a»ä9íÎlÆ IÍd°Aÿó»c[á”´ÀB®œ.óËnKéÏlw×ÑÞeÁR5õ~ÁLB¯§öNÀ­Ìm~×/tJÁÇ)n÷ÊmZ \¼ôñÅ3Rƒ ´ÁñyøSln·&rQæe çH’q<fÝMñ·sz@*½/é0™ûðÿv¡a(o»ªG%ÖÞê•39éï~-Zå|,=¿"–UôJ|«o½Ü¦WXO×=ÇgGŸKÀ-bµ(é$´9€óÕñç%¾\c´yÆóZ¹²Œ_sÊ~Z¹ˮ°| Õ¡¨¥äR>‚hy2Tóƒ@^_N§:öŒÂŠ ƒQ`¶ý6ûIÄÌ ¯ ¨ÆÆJ4 ëzÛ}-3mÈBã]•¥|&ë€k4¶wiN¶¼ÌFXß Í€ßû¤àÎËe& 3ýŽu8Fìe@p|[¥= 1©{söl’Pô”$Ó”G¸Ø×ƒ"³xXù_"û&™žHe ° ª?Vê“þä–rAK°Y1ù§Q{ÿ¶¨9 ¿£÷þ’i÷†Ãwo^äËãV¯ÚlœcLW‹³šGú8HÉ’•LÀ3YN%NãÔ¼?ðv*è”âË«ØòÙöGj½úœŸ1çWïÍúÊš¢õkµù"Â4— DªÖ ±_Ns¶ƒûÙ^YŸ -ã÷Ϋ†[µ×^œ` þÇS­½¸¶lª9ëöh¦[cvç–W ½Ì5+ßoE Œ|Ïb-áS®–úÏÔÄ Ø#Ç/fûN¦Ï@7ÖZOÞ}¦0ЯTÆ@Þª}g`ú{æ»Ûý`VNж¢nn­ß”T»Àؼ+" o¯R OŸŠ‹£h„#xc4žEÞ5BÛuË|XEÀz¯¼])Æ_jÃ…÷ÿ¥+’Jç°09KLà$ÜË–wÇ´1bN–Q±ü ÅøÑåVâ9A‰6™|-Lžàx_û“uË øÔòY΂̛@6+Z´f.)V‰HJ›•D6kýzýÚ{d’#YîŠí;¿‘'q%ª9¾/Ûê<¬bÒÌÀ£ÓU”ânÖ2„%§pá§77‹Žôßh<Ë@w9ø¯"Àc §ýbENì:eÛãêé':¡YP¨éª ûD—¥âyˆ!À“…›GE1Ò­1ˆ_•°0à·5GIDÈõŸìz©÷Z™Ô̵/߀˜ó Ö|ÄóUªô¤ /œ/X —:üºAÙ÷ñ9¿ÌÀÄ]ïãŽwèC÷¤U}£cMê^%rýÝqõ,•)+h`1ƒ¨aú â1 à>ZÆq„»Ï/–ךz‘Y [àíçOÛ…×ÏiM’XJÆ]Ð]#šoS³þqóq  ²sUÎ_Ú_¨€@>CHÿ$MîÊ—šyŠ6ä¶HÐMÊݘÈÿžf²uÅÏB®ƒ&—­9©ñ\¿çTnŒqÔ¾¿1¹pžùið±WZãþ½Òë ìÁªŒG5œ>ß¼k£…buÞ’ßêçf8‡­´‡QS•u%8â¸qawq·{ìn5ÑV·Ðx©ô1gò¿Ÿ^ ÙÔÇàrÝm¡j°‰ëó~ýËlV{«†HZ˜÷ÊKŽ¿rf"dÃ\5Ár4ÿ¥ÈHR»ªYЪ¾ 2¦ÆXÑÌG€\ïŒ#&ˆÞ~㈙n•3w%–âqp™Ì”¶ðñÌEÝ-Á‰šJ‘p³§üÖFƒ^ÿ’Âk¡AŠå÷˜ÉŽ„‹¼]'ͺþCL!¦Ó'ùd_¼ ·²’ò‰¹\rœ×¸E=-Û&ÜCàQì[ª11—V=-hQŽ_/)×´SÏ”d±¢C¶ÌR0ûü髨+%ïoƒÆŽ½ås›õfO™¡Dº²y`ßµ‰óZÁ g/9)0ÈnLÜÂ>´Äã×ÆÛ˜Us8¦äZ~±èåÔ"_›gŠÖ–Bªn—¤ýy„7 ˜ ´ ýÙPï§á¡3Ïwo4 ù?8+ö1¾«ì¡Øø”-””q›¶p<§ktïbÖØ_BÍ—yE;îÈDÌÎ䃽Ä4ä36êr¹­Ü'BŒ~KŠY%•þ¤™Ü2€T¿ˆÎb ­+c[Ú&Î|¶J pÅË+ûÈÓÿ¥kõXß ¼¾\åë“O CÙ§¢P´–õ#Ú7Õ_"|UI$ðÿ©ùRöª’¥x?+isîǪ2&rX¥ep3Ö7?(û´Atî6/o×èü¢Ã¾5WZyÓCZAÄʛҴÏ,bã¨x§~fñfÙ bXøÇûøŸ„‰¬r‘…5^…­$ €r9ã'UW³Hâæ=òŒI%yæïtÁŒ[ŒÙ8kªcR§ø„ RsDE.”SÎ %R.+3¬M…±¼íš}Ïy`ß©/Ï#@þP>nšœ³ˆ˜¨ÁÁƒÁMœçkáôX~2¯‰ ÔnÑC»jÒ‘TOTqúd´aX,/Þ…ÕÃ%¾}z³‹±‡ ê€N“{™R+üû"<9»¨ã.hAïy¬ÍR=1Öœ¤šjÞ½Ì0òz‚ç¥Y'.Kf™£|þ¶ý‡›à†¦(Jc]’v{£RüQÌØH8ïÍþ±¹ÂñýÏB#|¼Ñ¼îÇï¤F~ï’W=rŸ:6 ÎÖïºÚ“þRI×u³¥ˆ¦3©zü!S“ªqÝA-°ìÔÍîDÎs¥†;öhøu@pÄÏL1#ÏÜÒ*<êJÙY–iôêGÅ®xÉ æ™b€ [j‚™_ÌŒæVµg0SÒüå#»%{û±Ýškeè:‘TG¬É"à! [-ɾü¿ªþ;…p YJÂrÞK)Mjyg‘AnæZ&•Lé!3J2‚Ȉ©–m˜ÿ«í_÷Å@ð‘ö¯Ð&Xâv è¼Û½©å ÎòŒ£®Á] ¾¡ÛžÅr;Æ‹PÄåÕ˜4#K箺ŸX£¬qg‰%ƒ‚A£ú¢/6ƒîÙúÖf®ÌÎIÓNdÍqÈ9äu68h5P ¶U˜â6‹˜KÊîùñ3»¸ô›Vmœ‘*Í´zÙJŸozÍrx»‚½åVùÁT±º· ZO mmâÍwqÂͱÍÿ(çZ”Ì\È}-c^Æ“b5^ l”9¨ }a3Ö¾‡ÊdY5rIÓÛSS@—Øÿ·I\µ²ÛÐÇG×b7Ä•§@zÒX¯ŽŸ•8XÈË—vë9P—®P«ªO›Nâ­hÎ`›`‹MͶËY¸ð£J<-/°á|}“v¾ZM9xÃèlÞ p¨â #B]þö®&IêÊxM!Ρo ðORÙ¹V1Å”RÚ@\¹é%u"ï;ïÝ«h{³¬íÖeÐð>u¢¸íEÅBX+oVøøÛ*úéhîbê ‰)ÏPª¡Òͦ¶e«,å™Es¸áËëøFcïØþÜ›”Þ6öc—j•éÊ÷½ ¯ÖÂŒ7Bs̤Qí¦4/fe,2 =ÝQ¶9•ßk¬\µ7Y;a3ï^U½´Ü%·C:«ªn?ki¾zØ[] ¹D‡Î•›{3ÒÆˆ’uï ð|´ëIPÁu§§A:²œó7(‚•»«2=ÒŠÉQ+ÏDt™Âµ­Íhxäï– Ðoù0W\{Q²¼·$zÒ@ÍcOK‹+±Gm¬å‹ˆMk Ðà.k£DKk¥-Æ– tþ†Š=L,¦lD¥Áþ€ïC£ÖüJQYCáò+¯rÐïiµž®üׂTר ¾±e«hûâ_PÜpØ4¨‘+4s•ïŠ!`Gq¹)e¿ÐßÓøº®_n8OxÉ/¥U‡ ú¹VUìŸ=£Bp±\ýG:~C "tù Ok’¡ãKŸCS¿©òJîhŸl:½ÿ³¦H4E]‚ñ%ûûÒbëK‡q$¹ÊÆ”&:™ù]¶Û³Ì;uoêò†c3ØS„$è—ÎQÜêáïðÐb'\åLçæJÅÖê=ÐsV`+Lî}¾‰Þ¼½ÊÏ„ü@‹ºÄŸ:h£ý5~„šÅ+ ïç5¼MUÑ”º_<×û¹Ñi2¤ñ|j=ôËhCóÃ2L«ù»µ…GaoÁD£*üñQí¯pîlæÁ`í´œ'+…ÍÎî¬ù+¾Ia8®Î–PÕè46Xe¶5„wñ¦ˆ.Xõá“·f5”(‰eëõ—€qsð†ÕëþjÈ:Pع¨«zøñX1±Ç5£B`}á#ÿ¾6äæ]#ú¨ç|Z¼=¾Œ@ é/â"ùçäjÒçÁ)$>ñ¬¼B”âQ¾P¬®¸Á6ý3†^Þup›Å×¾8ç_pexíÇ„Ë.®c'0—¿ÂA1t¢yÜ<_Ä –®ëÈ¡"|üÚ98Ýqž$WA°®Íªß†C. ^ä(ÖZrv’©%µÖø4±ó•pݵ}‰ÔÍß»hcdNƒÊº˜Àø·Î`¬†G%AÀÎFrx~pm4Æ•H·RSýóû7Jz3Q¬Â+ 0’Ç«4Æm‹ƒöÓÊò|U1θçºKŸò~w'Õëdié˜<íì†9âî¨ è;^•î.P¶ƒß枆ýÞ„²¾ú†@þOØ#PsmW&–YL[˜4ƒŽÌ©ƒ ê^Ä…Z +GÎÈ äMM|•4ŸÚ}Ö,Jô R<'fA"y¦ËlDGÓÓj6®þ¸È3Â@Ë—Ü-=f š•7/Õƒåé°ñ2™ã+Є^~ %ß›1ù¿]ý}ެ5î6j„- è„ åbV~Ô{ùKc*&%_+í’Ô º9µcL?³"XÀqÏý3û«ïJˆÅϵ[öÁ4å©1ÇÙæˆ×ä˃ rŒˆOþc¶®Û5aߊ½<Í…Ø3Ñ#ˆ üLQ½ˆCadõøFX 9T”î°§õé¾$OÞ‹Èa¢ì´QüŒ¸sí@ò‚ñ…7þÑïû¥zÀô÷!‘¸¹dåDôPGP‚½Ùõ,£Ùcü§÷I|LÙé ìñBp?VënÅ`GÍ„ºB*KÊFm(!*’^’„~ò„ØÉ÷…±OJk£v}»Ùtw†ÑyCÅçó‚8䬸Ùshΰ°s Öc:=ÌÒ%ù2mAm^ ýŠŠáR“5tmkÓ|á5ã ’|ÈdhD ¼+1ºjà”@©oÁIÊöµI7i´¿`ýÛK÷-ÐU#?Fá…œâ9m &„¦Í·óvûd³!Y)§ù  –0Š%ÉÖ#¬ü­ÔsIÙÖº’Þâ!šï/TÍ€Ëu­0 :K¤OûÇ$þ"Ë"oûÀ§æ ‚ªCÑ~Ö¬Þ—ÅK^Å•ANeÓ1œ!4´c¿ÉSOèÆQ·y}ž[¦6ÙN4 =›ˆ§9‰ìàJªyÙá Eô¿Ú®#YyƒQTÁô×@¶=ȱB |¦ƒu¹ûÉU'‰°ÊàãyM”ÓDsCóûC‚‚¯K뢈É6 ' ?:Y½,jó®€Ö÷áMñÑïQ%˜Ûªcs•éÃ:Q™9zÁçÀ…‹h".”ZZÇôÆ gpŸ¾Qˆ"ËFÁŸ,^û°”ðúÈቭæwO¾u:¾ ÒÝVQ¢-‘ÌààßÑ»ÙHsÁ ©ŽÈWpZaú"1(Šì6=®É-H\æO<)d¹ñ"©’²~ÜÂ&õ--ˆuŽ’¦`u_ŒqIÅVƒ›ßt-K™ëϘNÓ@.œ^q©0haªÚ½k:„QóMÇZ''ì? lvšÄb Šœî‘¯¶Äó)À-‹¥4½¥­ä×ç*¯r í…ýÓÙÏÍø£$5øQmg£Íºµñþô™ „#cŒ…ž!ñ!I¹x™ôiÁ‡¥Io@aîк…HFdR!«Ë32ÐÕŸ!mÝM7h¯¬#z/‚´¦|äLøq&Õ,à•+åÔ‡ÃÚu“êmL8ØUÌS«:29 ‹q<Ú;ÃàÇñº’NB,È™›KH9í]—èxµ¨ú…ŒCØ×!×Ódã_e -I~B#Þ©#>E,̓Ü5ýˆ¸AƒJ©k-ºåtÙÛô^Ã'_·‹ÚéÕ§l'Ëj™K£|ße¹Ë„Ò¿I¸ ÜŸý%ÅZO7~¼˜r¢)AiÍ£¿P•Qó68m4»²ô‚ 5>UTº‰ž`Ò&J„§ ýUmd&£CÓ˜† ÑþÛƒé&ê¯;ýD\–ÐÓíšLéÀ,ÛÇà¦ÈP‘y1&[I[ÝsÌ!Dø»‚è;¼ÆÝD~uÄQE"@û˜ªéi¿ÝÇïG±²)ÁZÅØ*‹ ˆ¦¯µ™Clºüz»zÁY‹ªÝ?¨ÒÅk¥ÄäæîE˜"Áîõôí§L4MÕ#ˇu„ŠAMä¡Ç»?¡$_pŒ0£B#sÓm(+ÓIðê ^º¢/mX!¹&‡øw72²÷°ö.š°° ͯC½ ¤QŠÃ=›ÿ²+òŽE÷áÏ!¤FñsވʉÝq õt[S"ÇÕó‹ôL¢ÑìaAÉBO®ª¹S5Ï|GJÊL½‰À$.«–Wòˆ–“sµ½?”ιóƒ?É–>¶3*0ÝþëZØ´ÄÏ|uí˜RFlXS{Î;NFòât‡y¥ ñÄ(J®M'5dh²Í<îûHkÊÃ&ø O±2 mŽÚöÃÏ.aqèô¨|î=*Ã5š ófá4âÿÞu#š"™ÚI­’„ÀÙräKˆbHd„’ ·Ø eìIȪZ¤I=óÕHŠƒJ®´=zuå{ÏêBzð¦mÈê(CžP­Y0†ÈÖÛpŒúhºdÒZ8¯'-e­ÐÞ;s‘¤ s¼JL&LØ' ˜9åC²ó ¼G“äpóhˆÔTÄ`EÔ83‹½œº)?˜A|ÐUÙúúÊHóñ Ç¿ ûTtƒÉ‡Dï\ ëB\¨ê·]ê±ürÂÃoŸÔ»ä òð22Å)ÿcÏf|“]|F¢p„Xì*Ͻ¸óм6ìB…6(> âýÊÍî;LÎøksn=@G ]!ÓÊ’“c©ÁA¯N Q«¸ì7ö43×uë+ºžèÑpBSˆ{6$7]Œ¹’øåÑÕK‡0RäÝé¥ì•²ÿ¡Áw'[2Ü àuË~óÆ%î6#5Mì<ö?ÈâËLÈÊ·$̰´dìgEgokç¿ÀdB—Á·]‰­*ˆ[0†½X‡’"„…Y` Õðr¢`û©æ$XH O«Eî†=n,_R®{¼.¹Äà’M©¯ä¨‰ÂÙˆK&áÛ 8”½ °¨pX¦ R?ߟ?¿›ÍœQ¹ÿ¦¢¾ˆÍ'P/½,¡·G¬$<þê_rÔ4ÇEH¤5‚ì°’Pôwu"ÙÞ+ø²Çy­—^ÑçW˜Ò=¸ÅØ‹ÿÔEÇ–Ù§5游 Ý€‘_zLcÊD<‚šiâ´*í‹ßBßÀËf¬Ã‚ä8ßšáéáYá+NGº Arf¾{X½ôxÚºkÊËòçi¢Wqm|ÓW¢ª™òîð$(Øfž€ÿ˜;M€Ê™ÅA,0Bií8†®›®ÖÚ@×’ÖX Ï®¿ÂK»—ôꜪbÎVÏ’.u?©l(¬h …–Y‹|¤8Ž[Õ½¯$Ù\)~{(Fò°Dè E’ú@w›qö8bÜe®m,Ã#ˆËã[Z¢ÖzJ)±Ik÷zè™Å^ŸjŒÒM±äêJË*£²ÓÈ"fä92bKÀ[³Bv#Ÿj3¬¯ :ñþáäÕdù‘QÓ3À›åyò†èhb¬Ö)Z£P˜óÑèÆsg6/­g÷NÓˆ—.ºÛßó{7TLÓiä +*+Û®f¨ùm‡îó­~ÃÿÐ8¼$”\ÕI®vÄ™ ¢Eû÷(Là‚4]—y™t1R·¯ûª§KTDÂ4WüÕK€'E¨J…ãèÅV&œŠg/ë¤qÍ-7F,ÃÑH©?d¦Ëù9ýSù@ÞlýIŠ»Sà·ã „0tü>B‘6G:;+Ó{ ½{âѪ=tdDÐ#Þ•Åõ½è.&[4:uÈoûý[Š÷Xý[¶ðnWß™`Ó¸iP†QS¾ÿÔà±ÿfŸÂÌØÈQª6§Ü.¡Ÿ—]âºl¼Íp­_ h©“a¥ª©¼ù# Y{YŸüãÌ ×¶#O‹ãL7 Ž¡³7î) “SoP¿¿ìˆ[ÓÏém©Þ@e‡Ëv„´²ÅÖo¯A"Í‘+ÑqµN‡T/,ïL3~´µÓ®Õ.f­tS@«™Ååš:=ž´*Ë¢£¥Uñê0¦‚ð°ƒýh/€Ÿ®l]ÁõŽ[ ËåŠÒY·®DÌ[¸V„BF­Bu]®rÊ‘¨7Ò‚‡­þ:ü3LB' 泺´Éqêr²BàŠŒ“_oOŸ Ðh›ej’WkýÆ6k¢«¬s]UŠé-§èCú‹¥r}öõ +×Õ!ߤÿÀZc3AvÂÆ8‹ØÛ—"Ø›7—KàÕk–Oö4’¦Ê%æFÏ¢·’v¢íç {kH7P“`#²»Þ´ô¼WÊúÊ4y6±%ƹß"ýX®K‚§‘ú{”"¡§ãu L7PC$zã¾¥õz§…³9®UÎK«`qŽ srëoAåx‹\Œ¦Gkàrû?Ǖ뾼‡}9-µ±{¦¥ö™“?¸Z¨ãèŒ1ˆæNGŸzí½Æþµa¾ŽY{<7M]±1Îq;ÕcÝLEÓ;@=Ñ8¸"DÛ€mXìµhSk uµÏíìÁdpÑ6·l*ŽÌwŒ£lŸä̹ä~¾›Jë2šÓ\CO°By £³zsʦÊ×r®U„(->ÜË™ÔsâM¬tÂ.ló¶¿Ô“í¨H°›ÂÊ N—'t¹8 udáÍׇ`g?˜ÚtÅì4Þ'T^Ÿ’†P18ýÃ5ÑW.kö›C’Iç€i+WŠuØÏÙ£dñ*k€hâ7üöÀ®ªHMÇÖªïkª[Lâ M²ƒûSᮨ$º|ûNqÒÓ×8 Qûä&a¥©b·²B…°RèÁ§PT+=pWD®ù¦pö_p'ƒYI\MˆzÛPéž8OI¡Ä<Ú?Õ‰“C$ Á¹î‹€Óî^5HnÊ­¥N­œ"ÓÛ€öÜëÑ «pvCIc­í=b†vÙ{‰šŸ¨#?ŸFü„ <•_Gr˜U±Õ¥™}öÞ…’œVÑ„Ó6Ûe¨9ɳ¿í/˧âl—¯|» «^tôoºŽTå øÂ)¦²¢d6ËÚèâ t]ù%ÏrrU_‹)! ¸¥¹„áów|Y©Ê¥{qVbóQÌ/p¹¦ÎÜËågMplѰNŒ4׊Ì׃)Ú­(úS·ÚDßf¥uîŒw«Æ’kÔX=†¨…”®N#³ð1÷\v¬R’¯ù5Iø…ŸÊ©pÙ£Ö½ð»å!¹X"2yOÆw|Ãî?ûqåµÊñA÷ã -ëš»HC6;³”³RHë¥Dp&; «’Ní5¼?³é4lËOuå‹u×aüÉé¶uö§Ó€b$7iÙ%Fï :q.§.—ŸÐÕ ]wÉý˜xø<µ†}µ12ˆsò+;&"™-•I\žhë Ø!ø¹•j#VTUùªüÞŒ5¹&O¨ÆòÒM¨nÆÉfp%!KäÜ;9Ë눕†Â6ŽŠ$ þÒÌvü¶tè 4h6zG®Z”5à31<‚ >ø–T!çzßdÃÙìþ¢×dEÍŠ ¹·ÀÁ-ÎÜÕÑMjí–ò\cSòSßÉkyž / ù"ÏçÄ9ë ¾ñIe ¬ÄŠ£ß'Ž™Ôèƨp î²¥“<…f·Ú0ò;‰9›d0ÿ@§ùü#&„ÿ8ôó%[¹Z_#RŽ«t&`Òˆ¢âÚYÍ¢*í•Vw]Œc ²A²I·,.÷,E6¹-ñ Æ:^ýÜ¿ Ó:u^ÀË ÔlN4\o­8€¸émgEÉ’šm±]Û迬²I‚œää6 ÈèJÕË‹¼Ãäþö¨R^ïlªSõg' Š6úo1ˆr[ÀžZ±ÄŸ’Ýæ!E„Œ; çh$ŒPBÅT9…Äïåñ½âlÍÞûç÷äWº(¼íº&g2+ܧìüÔ1¯£Ñù£dŠEGŸóžìz"H wAv´ñ¶a¾@^&‘ÉÈ)Û ]£€ã&ä“â°5}h­Æ8%Dƒ íÕ/@VézÕ`Úˆ¦‹„>þO¬fÚ»P‚H`É?3?ÊV®2øÇD_jŠ8)3˜Å½aN§ImXÎBR“½OSK•^•7¯ØnÚE½D“À{k~0ç…™»Ü[(«­B™ú" ®ô o~1ÇUJ4i^lÝD2j¹j(ÿÌtm|Øõ_wÔ]©b/Ì€=¸l»:¬âº…go› ¿‡ÊóI[‘³6ší*é§œtc+}R&HÅàë7ˆ£ê†—WîzB!zÁf­Ë$Kļôüy…±ß¨’©,ñˆÏù®2DgùŠnPS|ìûÉÞLÉ4Q1û«b@KOë9¾ñIt纈Å%^Òëf°2W[6ÇMu\scÖ&·OÙ(¨w<‚5E”V©…åå¾ÑuáªZ|p~r‰Þ“_>Vƒ0^,üwqøª XùTï¯3ð,y |ÝàLª¥u¡iæUîìRÏrŽ4`U’—9œ´êþƒx²ŸuA®u’Uz¡­(8‹œ€%:ûd³±j°ž«µ;­·nô¥añßÛß!t0×í½[{#uÙf]+ijV…‘þØf¾b³v–Âë"ÇCðã>»½Cr¨þU¼ÀbÓHCzX:#z©Ñ¨#>Ë–d £åÓÓäîvE}YÒí÷ñœ"@7°¬¶äd¾z_Ÿi ÏÀa¶ƒ6È'­Îv9ÑëœûrkËŽîY¾1/G˪¡n‘µT*0€¬íul5Ñ£(4>”êdN —¶{ówÔ×¶˜±ÉÿMM¡h«Þ’Hñ¶JŸ Š~íÐïHïû5PpŸäó²ßH(žøÌ±Ûf®Ìï·ØjôSÍ8ÿbW•†{$¥¹Yz‚ÿ%75 ²SÆü<9Å–£r„X-.<6¨¨ã&j—ˆÿ¼¨»èh `‘\ßù‰rðܪΗ9z<ÏOÉyâ9™ðyŸóè ÂDìNDÎV u,˜™áȾœæñFºœË½9}™ÆqI½Ä^¬Ä¦Òú:\7H x™l2½’%Ó¬Æäç"ÿ5º½*yAEݱx0 ‹¡}¢v]æ˜Å)† ùԅ臒ìºaJ¢Ø·èF¤`D£òŒа@{ UTÄu ß+é]lG>7žûÒñ†müvÔÓ´ ñ´Æ+ Aó›ãÄø$Jàm `Úž:ÙÁçb‹M¸I²MF¤Xxuù6Q_ê!· ƒÖNó”ˆe”O•Ç sÈ„öTûõ>¶ƒ$|úk[~K¦ÕŒ zÙhû§aˆG»¯tùœ=ëÀÐ ¤2>YäöfßX±S]mÆs#Þ_öX¢à×<7ÇÇgcŠØF¡|)}™‘ uÞüÊPúÏ +O2\¾©@Óo;Š£æBðS‡¥1œŒB€öiÍAµº{ƒ?X[|iNœûUoC®Þl(^ìÅ‚2éًцÀ*!Êv‘ÎfÀžo2² ˆ¨lzÁø©%“°j‡å?°I,D},öô€ÃÚ¸l’'úŽ¥î3´× +”<ÁŽXÜÌXWνýׄ•¸UÌ4ï» 4Vµ™‰•ôÊMšUt&ëím²Ì~œÚ ”s·Âžg™Aù)¿×0:¶AQœÐ@+v€¡•©‚³'!…m‰+òëð:oøÄ—n»ÍM-h‘˜ôQ]±™¡^é1ÆhD$ûUÚÚ ñw²tgÈÐ]*Âz7öârrt+h3¾‚ Cö¦ëû6Y‘ž—þ¦ÖNÅ‚ç­Ô7 H‘\IB¿B‘ËÅŒ% sÿµ\ű™àåÉ+lØ:‡ šÌæ®^-磽mÐÅíZ¾'?0Ù͘ù6×CŸ¹9IC°_´&Q °x󏯹`Tš‹Õ™y¾HšÀ¾L˜<0ðƒþû’ÒÙR¤J8¥ñp÷G”û€-0Â}¥WL’ñ: Ûú Žåô<²IBA˜Ëx®gz㎕>˜)”Þ äÓ*^Ù%,CëÈÀ~™ešêTpˆ¿^=¢#Y¿Õ|X%kC|‡×ó¦xnanþ–|“!îO †ÄÛ „»}’ǵança¨¸Ê]ÛÐí®ADxKœH4™ëñÏߢç[_þ³KÖC:$ŽêtÍîKOåŠÜŒ(q¼Z/\gc©çI޳® Ó!J¯Äv¸-˜¦…ŽpCJ›ù>ƒ=4p„µèvè$šÖ4'2|1ƒ‹pØ”AŒ-ö‡f}sÐUå—3 C7¢‹2ãÂ'…¡~2:7uý ´ÕZŠ0½ Q€%2¶ßãD‰UJW0«Ó†QŽwo7§û;Y½!8@Õa–C©nÍ$®©qË«X!OFDÛÊVé»üê‡ ¿ÜA'¼¯´^@@?-rdfrQØOêÜ„n€é Ö¹4áI§‹"W/÷„g£H¿e?ŸÑråö*O%I÷ÊÒmj"ìpd ÈfqžQ—¨äd¦Ý¨Ü “ G˜soûÄÙ>)s,1 Îâô ß¿b¶¤žšÞI±OLYç¯hx¨ÁÀš‹Ï7”-ÂO©A  Œ™U v3»Èa»L$ê · —ë/tNK2¨H%wС¦)òäÂÎŒÆR(/ŽìþÃô%w5ô€”¿Á‡¯Óý7Ëæ×{¢í¸ö<6uÓhúá\Çcœ(ÅÀŒ†Ò(Ž®þãKöC{\`¦l öë‰8Ãÿ¿`[ÂLòž¹>ãúýÄ4ñZÂÊÖh;‘W!K\.ç$/ű/lÒÏä>ƧF½ ™åàSövl¼/ó(‡1f }¾]çüúzF°Ô¤«5¯´Þä~-VDÐê¹-ùäËû¹œuŸ^Eð#9ˆ ¸[Ák©’á=i<7€f%Ÿ@†äéwU£w"îfuÊ¥I3й÷¢ u&£w4ñrÄ\õRnø—ÅLŸ#à·6ÞçÓ“/Ì´Iàõ%Ä ðSm‘¡þõ_· (£íüŸ&‹•Z^xRˆ1V–w2mùEìö þ ä{;0KêÜ7­ÝÆà#ðŹ1k"IGs³ËíCD>ð`DfÊHÑßBóOOGúÁ„ÿ¶ßז޾áíöÛÂÓ%Þ;—|Åìšþ¹« îîÁdЀBà(^Á3ÅE4O¨Ç*ü }Å Y)FKã›}.n¨1·^ä¤Gˆ=ftöb¯†4hl…fガ<ê’ÁxÒT‡Hi…³I¸@®‹E~®1÷¢D ”Âi”žc¤O œèä÷h¾Ã仆ýÏ!bDi÷9¦,9‡3Sî,Gt„0Æ ª3ò¹tÓKµ ˆc˜NÅÑf±µWvÉD#§6+ªb¹Ã¶ƒ 9NbB:a‚l½ ÏùV‘V¶‹™J'ø“b9¡©ëæ žÀèaúñQC¬oàé !ÞQ IãntØÃž™Ó˜Î-S©×ó«´)ø¾—ü©NÌï3$A±jòO…šIƒ¸Ifà%¡gÓ~ T …ó4ºUyž5Ô‚dFÜ;r¸ßÍ Zb2ÊU¸Pïðq|º[q0’2U€¡ŒúçÊX×pJÚߎéëý*QÞ_ÐLdR†P~ÃæˆÓ9Õä^dG_6ú™£áÁn°ÿAÍuo ˆ—ŠŽ&!IÍÌß>ð„-gä>T±NC·šR°ÊÔb(­ˆ¯‘…º¼›‚A'8àn2‚'ëmˆÙæï@ìêqÿŒ¯Èó-fð•0l¾lvÄ‚¹šBÉU³Á^ñ*8T/ƒ‚V´ôÛÜÿ©£šß9@òS°àŽœÄ"ü`€‰Õ(bÈMâ<‡u Pò§œwÿpÊ|œÂñ«pþå¦;ÙšØ\ ÀŸ“ <¬CÍ)háà}J4àóÒ0TÛ}ŒÀ2s2>MÌÏ*W3ÞÕÿ9ß¶Ëx³õ ø‘’2Æì˜;¤ÏÀýò°©ÝX{Fœxí7TàÏÖSð¼ÊJùDîŒm¿ÑïPg°©öù\ €s%]2àZ5R·×ÀŠQQ«)<2µÆc‡Ú8ؘ©•ÒRû ÌÇîJ°8îúKîiü/­QD{Æ{d³Ž›x2Æ••˜>&e°A Œ‰ÇÐú ÜÆÚ±©@Hú´õ c "޹‘cq¬tbíÛ9½ Óßý{±'‚t•–™(§j,qpÔáaI,å(E«&&!÷&’¾f§ˆÒ P÷´ð¤MÌ–ÍpÓ½°`RÌÕÒ¤ üñ§·åøó³_)Ë7]WÆž=ù¹yš³6¤¨ðàÇÌÕ#ðâ®fÆÓÀN%¢¸@§Žc8Ù`L5R×Ý;ÔžŸU ä$£º)¥H«ã5,=­§È4§a2GYƒ{))Áâ»á­E)Éœ<õÊ‹ùÛú`ÝU6Z$7Q|\”7|3\à¹=‘/P«UN$8øº%F±ñq^µ)&´Éí/4‘™ãc¸ß©ô{8ÖÏy–ÁxpZЃ<ö(–÷ûfÖ¦»µÓbû;äèôÇÔ§iàZIë `&#PÏ6ã`ŒK‡õtN7µNlXÂxmÑÍ Ñ_¼.Û8kvxâ¦)yª‚]WàÔqnWùhßÐ –½£t(g.Õªëó¨T=›]#¶¦ Gl¦Újú:Æzì ž›ü§hª2å&êˆèZÒðÝm}jÇ_z]n Ž~#CXË,8RåRmÙ(ÚþŸrY8Ö+:o ¢tZK”ê0  &ßÄ †–)Ö7Ë1’âÒíHauêƒB}³ÅÙ:ˆ@—vñ¦›•Ú¿[áÇ&wDþË¡’M2¶¯Kõüo/’¦¸2õ˜Æ ʯ«üõÊÿR¿ýbSgÏ=?‚òtd"xF‰ƒ˜˜(¬ê.èKF›î²ôÏkÆÿêt09â®*¥/áa˜®§]01üïJŸ6û&}I2˜_¼î}\­7k†¢ÞGë ÿfuŽEÀÓ·1bŒŸ à O&/Ö•~ïæ qÚ©JÅ›~uÕ W r´)ª0m ×lžRý]•2h@g öþg:èËXZ#›ùÈ£­J÷õL߸å4Teóçc×ê°_Þ©¸2í /Àeúr¢o:@mÛß–ëlyT[5‹Ù…f¥R{Þó%éΞr.³dŠè4S—¤'ÔŒy«ÍØ[0óýúHÒÛêô<“qÊvHaÁ} ²ÝPwÎ,•xò3š›µhf@Ótrx+0a­ Þ¿òç¾æž<š¦ðM¢©ÛÿìÅXXFU £í3oNcH÷¹R”eÿD$ümpÀЛzÿÝ•ýÇfû &·[ŽŸô5¯ø:{Pµqb×ÑCø0C7äåõÔ¤“I‹ïÉ':inHƒ4…ÑøBaŸ'Usg™¶!Ü[—ÄNSj›J”°®S³søñÐ-P~yÄ­‚s6ˆÜó&‰{O¡'ÊÒ3ÔÖò€.–L­·Òn /Ô!Éàtq:^Á©«¦µ¡f å̦ºBœ´Áœ«íütbg8Ò$îb•Õ„M JJ%ϱ~zùùRæVÖ ÛDI!ãad 1Ñ|€i¸øéôù ¶6S†–`†Ì'åŠgÂÄ QvDßÇñ8 ÄäD ‘æLRÆyTb[~êËv¤8¸ú«¼¶Sq¶ŸÍ¢˜¨cF»X1ÿ1ržg¶þÚWâdiKy"Pßhûh†­Î}^ŠÀídÂàpnÝ1~Fó³…Yôºô!»"¼×=º5Ë"ù¿é¯ãüÀ_ÑY`_Ø¿&Ñ­]º×Ú€Rk{ÖÈ n4wÀŸ|€‡1)g¨úÜ$XL·šé6?8â°AYÓ²Á²÷*é# \ÿëÛ¤à Ÿ §WNg©ú³•Ø›¡“~™} ­G¨˜tê#Õ)Àl.VßÇ›‘†ÂŒs„°“3ÎwÛqS%½lÿÓ~Ìa¢¬ªÃ?Ò䊮K/Yd/ÃÝõíI;ƒšX¤¦.UØÏKX Â5S’¥É»½™U9'„vžf°ŽµfÇìyº-ëÐ^çϬ•<Çû¤c—vb‹¤n„KŽ9ÿbR=$©»[àÔ˜¾ÑŒd¥ÌŸuAxáçøÖ£üT_Ù¾ëT4[I0²Ç•|Ø+2 i^h‡5BVßs"Há»”c„é7Ø1|N`vþ«g ëJU›Õå-ÖuãÐÛ.~ ˆQ^3§•¼Ê*›Å ä­?¶_;{/­„)5xq%±}Al*ºrçžéææ”=æZ…æ³ Å'ÚpêŒÊ6oº˜ZK|ésÃf—Íp†kùÛÄWCºŠ ¸“Ž! ‘'šzý)‘ǧôàÝ¥!´|± “ÁÀÂN¸KÉHéÿEõ²½´C Ê"û q‚ÿM¾ —©gUƒ;p™9·-LŽnŽ´Pî›b·º±¦ƒ¥ŠƒÌ‘@«Øµ/÷Õ9³£»Å´ágQÂKA=ÚD%gp Zë¯È˜çóÿÂòóC\_m§çd{±½êEäaÅ@²Â§Ézy'…×y\ß *™¹>^«.ócƒhÖµÇ?Ïä ò/à¤ÐŽù,F'ì[çâQ]—¹6!G: Ö|9g¾‹RAǾ8’8å‰rVï“åâ:Pd ‡/áði:ÑOõVÊ®Æ1©±7×»uFÔ `C´P±XR„ ˜[ïøTÿqLÆwfÛ)Põ=ʨ¥€ÀA«âêÎíºCñÀòíí cÍ:ÊóeÏÛRD´q_Kðv”ëñë Vš# ­ÜùrcÚÊ¢ Îòέ&ï»'£Õ>1í·x@ª·ø³¿'c‡Z#˜¦úpl•t4Öi*52êß 8Û¥ˆ–~ÝÃûVrïhߢM üÕ82 … È×9±a¨šR†VÒxº®Çîÿ²‚)Ùg.,Cˆ+•:70隤Ó&à4cZƒx+ š¦úîDbÞ(ªwâøËã kìg—< \¸ç<Ÿ„B+, ôÌ A_š¶ÃtÀŒNæTNî_>B$ÞÀ•ó/¸€Oò9å\â‘€¼ÔgŒý‹ýÇH}»Cç*˜+;¾?M¯ç‰AžVIxݪÿújj’y³£4¡¿a*vÙ¾•R—Ôþ¨Q” …zŽ](²Çø)ïpRQ †+%ŠïŽNE|ϰ¯Jà¡J¢úG¢r?]\$W»¨3ÅSÜÔ”¥PÃH‰üS0ŠÁpÑ7#ïÈ1äTøÐîœwTÍ*äxßdt¦G>Õæîˆ–àz<%'6_A«þL¥¸yÛ<¸ÒFv!ÚÍ¥úÜJè!Rñˆ>B£„ºFŸÏ —¤Û`A˜;æÍ÷'Tóf稢∥˹ս`owX¾Zh_>[lè»ÀPÏÿ–ÒŪ¸2ß…ïv]Äš„ÓL|¦ŽtðBCfBúÎ/<¸Y€‡®Ä¢ª.:üˆ‘rao‡ÅoþIŲ‚£%J’\uLNá2ð ±Øn3F#h¦àßÎ;`X³ºpäz{:s"0·™¨­ÈLSžÙœŒJö„ùÐõpMGoš%¹çì÷ƒ GŠ_ëjÝ']“ÂPæõO Æô… OœCu~ºËDß8YUŒ­ón”PÍbyT :>È6I ±Ç]b_gèñKœÄíj—ë¯öÁªå~ÝÔçd<R—mQ,ù¹y‹Sù‚¬*ó ²=ÃFªÇùŒ—/› ¶že¨è5kOÌsy´&ºYF´ÌÌ`‘LZBˆ_ÍIÆZî€6dâcòù¬ÍËÂso §š“CÍ–S|ӞnjÀCx&u1ÿ"Ô™Z=kp!^ŒX¼Ù<•ŸY-í>éΈ7<–[?ûÏ+ÃZŠ£§2FØ*›“ º/Îa¦/sY§µ†á†WU§ÿ‚’ˉó×Î"¿É¨~ëïAüô\KÏ5럋^Ô0éÖ.7ÜèмˆÔ|xÔþ¾’k1é&˜ek©TͶ=pG®)ž_Ü¿4õ`ó¶Ìý¯ ‡»²èè“L{¹eð^ñ—ù§æß u¢¶ç™òŠŒ6ó &Õ¹Á~Nö†È†ûzÔ˜ ¹½¢Rô¬ˆìDßxq¯°u g£¹¡VƳ¬VñÏÿN Jš×Ù¥…‘€® ®+±¯ÝǧŸV,4êÙb«ck|$ªûã…¿ÌUv¤Šm{!,ö]ù±˜{-=#à™kÝH_ÖßÂy—H#^† Äá Œ‹ñ¡.ÿ§C­ ¨…–ÓHÐ÷KÏ+–ûÛ™àyy5жríf¾)0¼˜í*Q<<äfMÑŽ"¤5pjËõr€¶?ïOõ„Ó‚V‹v”p Ë{ƒšžü#}`aHñ2ÔB4Q}¹ÕjÞMP6¦ÂÝ|# Ü7O‰ÞG_­²;µKq:óYÅä@–DÀÉu]JÃ9\x§ÀwJ2츦ócDÖ¬º‚WS»gª‹PÈER‹+6­¼ª°xÍ7ÒÅ ÖŽ]+ÍÙ¢~F_ˆ¨Ÿ±þ(ÂÿêRŒL) *,“²¡³YÃ5]ÿô˜×œ;㆗†b %¨Içêí/Hf)“7Ai¼3ýmô,2ŸD æž5åÜsª¬-ù©ÅòtËøMã?ÆÖ¤(ýºgw…ßG›fLœ›:½Ë­°5é 4·î†™h‰Ýs&¦´‰>c#WL¹`kLåp žû^ÙeU ½™â4AO‘Q-¦™ûØÓtý‘/•*(ƒ[ ^?Þ 5†·ä‹¨Šë”§¹,K-%‡¾XSßOp® bgç7MOÀ@¯wãtE§1ð.Ȩ=.Èaòwö*ÄÊ›H^<ñ 0ƒg‹ï¸Q˜~–'ž—„ÄM܆7‚\JhgÒ5hßÊ‘÷4›Q±À]Ôw$>á9QŠ­PÑØqξF»V‘7ºJÿàž“î7òVù$ò³­=ó—´n- ?>¨ÚsMÉüÀÈ:-uw‡O_¼®Ì¢dí^ÁH†e^0þ)¨üî&®‰·1Z?Ä»¦«;ÓxÎY¹Ô ð,YUà´¾¨M›Í4õ×Oõ8vu¯X«·=z%žw‘PÒÀh!Äèoý—_Ï}ÚQQx A(I” "Re[:lè+°Ìr°µ˜ßÆK8§BëVÞ›Ààß)ý©!ï€Ùá Þ€ؘvþs”ågöD2dLÿ–W-¾Å‹¦¨0#û+¹_iÅü{ª Òšlóº@lIFZÉ T±fêÿç¾õŸ+U’7ˆDzFy¹®áD{%Ù…Û!IìeMeUe—"6l‡þŽmol%ò07È,’ýF(„Æ\Ë!‚ÓuR+J]åÅÆ–~‹ ‹…ßVˉ ¾Ç… *@4e{’–1£€ðâH=§”Øê wÑBæ¶Š.îb– šî@ùÞTÉej]y¶Ä¾9·Úâ8]âœP·Û•±1Y7§ênJ‹BVbsÂÑ•!â› »Aâ±™O/›ˆ%IchþmT¾ÓÂ$äÊ~ñ8„зþ˜Hr*’,;a§Ã™—Òö4Q)ÀR¹cÉâ&u1…"@„1@¬®Z0¡ËRéŸÃ’–r³õ‹B ñ¦“KȳÞ7{áÄEtG QG&ÃsÔ–ì ¶µÐeJN½„|JàFVB_æ@{!†¢ÁŒ—&©< ð[Tƒ ‰~¯£ÔóVÜ…xÖ×Bzq 2g].À>ÂíP£·¤ùê8ÅaÁaÉžè”ë ™~ûé–6¦¨#”uÁÛ:k2· œ|s‰fèRT—Ûæì¾ÌŠpÀuÓð©@dâð¢BsÍa»?BYÔƒGóvQiJ©¥-ür‰3ƒÎlU£òdø%.ÔyàÁsû8~0’£iÁüŠãcv[n7Ûð 5ɵ ¦hgÌ#[†Z&سT—zÄ9Â0Ù0f%{öº++}XÑã]¬A\Âd ¤…õx×ÚX𢠍3²õÈÎó²ŽyѲ ŠÌ­Í¨˜#u&×6Œ*ëâm1Wî˜ã賦² ×HöÜ9é;ó–XrÒ\Ü‚'ŠåùµÌwU’¦Wpû/û.›äkä;5S+Z⢷¥È{u;dYc~ÑðPý§Y±N*ýÕZqΈ«b·dBqÆ¥ 5Y 'PÁÅxP5”õ Æq1Ô5îœBCé¯ôÙü,º<î…NųgËÑ^±Ìyú6b,ØÏY>6«'}~6ÀÎVÈ´œ¾×ìl§ýAôÀ¼$úE#Œ3Váv žeÂ.é%Ûd ÖÌËzØýSüÞNØòc.-þ;ß'8’ìs›<ÿ)Æh¸‰€÷À {-©Ž›F;*¢žCæ€o$•Úêw‚‰Ppß:èÀŠSÌ»±©SLfÏ-¬+‚GQä÷÷Ð÷ùOóÄ,C  ¨O!¨aôgÞ€sõŽ ÿKôî4óÜC}JéŸôÚ›UR–o›ÃÛ;ºeŠg´4!kàß2 <>ï‘B<£Oà͆eƒ–Ž 4 —&Ȇ«ËåœæO#W¾S挥/u´¦ÑdPÎ9ꤳmàý¸ç‘¹w´gÑÑZÒNV »XûKox:äcN“$Ú8‚éIJRÂ6s¢7à–,®”ªÇJ!¦¤Ó~c︟a1ÔŸÙªl¬ù„{Øj¶f5;g>P—>æT‹gnôæU—*w`54=2ª-J›Ï]AQ œÿ÷…¦Ù3U¢ÜO•3Àús•‹©éÕ@•+A§}œTÁèµ Tùë ÚH›õ, ;Ûóå>Qbë&-Á#‚D=‘!6ìövöÓBŽ¢ñæJ“ ‡ß¹âV—lÈ&_Õ§ÁŠ«2Ù/ *<ࢷUF+´r!v)(”Þù xñ q'¦EiØÈ}©P¶–=tGþ¹/üGh…|ï:íj\™âü«}éßÚ…ÔÐÒôˤoMEëYïvEŸ‘£Ü-|Ü3õKé6²Ý†ø„† ¹c“ÇmU§õΫ­ÚbrÛwY0!&˜¦."6Œ8Å&ÎzdȪç³Nm¥´œpž\åñÉÚT!Ü[ð$žÛÂñÅürýÆ¡wgÊàgsq†ÊGÝÃÆÑ}Ôô«8R7z¯'9'½†u8FË6©ôWy lLSÃEˆ‰1v¿«Å}“ŸçÉ$æÍ(®7N!“žõ?ŸG=jƒàÅXѽ˜Ñ½LJܯj Öw‘Ï¢ƒ¿‡9á H)°¯8#Xñxù6"ˆ8k67¨ez¦ÃV9#?ñTôªeßE#ÔK¾CB3¹kBpޤ±Ó¼_侨Ì") Ó/ òæ"èÑÒçÅ5Ø€´L$™Õ¬œp~jÚ[CÂq¡_“"ÚLø iºãŽh²ä1:±•É}šú¬öUT®pU#˜†>e¾ó‹À¦à¢78hЈöelO0…ÂΉ^šÕ/>á@Îê‘Ts[ò‚œÇ6BA‰7%$ši—»pš´8fjÍúü²)t,AD9ÍA‚/÷£]7…9 €ÞÃé䡿åðÅ2ªÚ‚»hÎqÚ?ÐõJ¡ ô<­îÀÉÜ蘨‹šdNõ:ªp¾9å‹ÚiÄ”¹v]WËmtÚ¯ž#¹ÛÑÖ@Y£­ozÔª¥\ö ~If´úë¼tÖknÇKË€+t{-‰×'„&_¥#@[lNºòâ³û² þÁ]àš<3û¿ü†ÂÆ9½—$Ç®-’÷ïž“u/%´¢ÍðÒàÏ¿Iƒd¦j~e¯2²KêUç.\xí(P'Â=®ÎÇÙ‰{aÎO‡ú¹ü4ó-Ñ,A6OEçæóSÎHíÉ;»)¹üñÿâü’W©b§I¿4EÓÿgKVÙòMÕgˆ¿=/ô·÷™kü¨ y öŠÆ³ÜüÅŽÉÛR6G4K#Yÿ/7ÚmÞëtüIÙß§Jœ^[Ç-ªè½tÉpå¼1ëÕº± ¥¿º2‚À=1B߈ÿÀt ÌÝ }• öúéàfÝË|1cµ G+WA W¯ƒ›3Ωì4r£ÛÕ?–{’‚Ág¸˜E¥¦Û]9± Ÿ«ä',î¹*Æ‘nwл°sdÒÓtÑÒÙC ‡FÆ·¼ßÒ|lÚ‚«2Úô…曇õotß{ÌñGxÏ|eKˆÁè‚;<àSŒæìm¦TDv¤ŒÎÙäÏx YCSuªuž{"˜Â†Ùm~¬5úâMCï­"Fé"Èÿõ§Í o‘î}"^·ßK9~N csX¶÷ÃúáÏÄoBÔ&Ô%N1òÕyÓI‰»i¢0f½"Å®.¢…§ d×Ô¸ˆ€‡öúFQÀJÝ+Àpãö¾¸@öÁîBØåWÎKÿö48| œè¬b¸ç?RJü 47 X9|¾ÍrÔÙû¦l5žz¼ è‡3{Dޝ³Ä\Ñ#¥Q­ØDx&'%×l°°‘@ÑÕUêóò5o˜ž±5ÿ{,“ºÌ,hà(1Û’tmq­eSH|ë»Ë4”a³o×`Y\™ñþ§Q¹ÃMŒÏÍÅG× WLéMݩڥ¼ñmnt9µ#Æ©…ó.®ëªœÀLjzšuÜ•ØÕ/c ‡²Àªâ8ñ*4ûÇ«j„æt*}t‰[Ä}$wC#R5æÖ0Á½åêõ€ešJJ̱ğ¯Aõˆ/‡T}£(Ù}ÖEöÿN™ŸN)«†k¸µ'¥g"¨®Å1àl1?¬ZQÀgѧ 3ÅÈ /2’ìAkkY*Yú†I õ@ÐòPOH ˆþÁh‰™£pA,懰¡þØ5:?äBèÓÀÊ.a{âQsÙÀ Nk¼ ÎDŠTš}Jâ’!ÅœØÜe—”7üøÏ0?Ðè'±êfÓ—ôæf”ºD=òs÷^ÂQÙbü3±û 6Ñ[ï¸9Ž×÷Ÿg‚8 éÍ9…v¥kRA®ZLö®VG¹î‘ J(t>£uÔI,%_Ý‘¶íÅL8¯¾­†û29àæÊ¬½?XïäDÑÕì]7©,É÷@ììAø’2ëµæÙÑ/çQ×pÒËeHj³t–Eà#ŽZæ»™™ê1vR5ŸW°Ø&m[¿ ŒÌD Ü­¥+Úû`­“k;ù—ì—»1ÅŸJ0áÆñ •¨.e†(!4 ±!ð¹s7‹©ÂZ•.åd¬—(¶M˜uÂÒ¤Û ª‰jéòEsáú€šÄa-… ÷i]01Üh›Ä É oƒ~QzÅ×:$P"¨\YkY-1YŸÊŒ0ÈàËŽnƒýaI—š ½X„Þ´Æûƒûõù„d¢4>¢ë;L´8Ó@Zn½ |úÑÍ$l;¦‡ÀäößOS§Óæ¤,hwãEÞRÝ¿©²ôZyPŠÁòÌÌB+koÜÓ2ù5˵yÑêþSûŠRO‡ü5ߺF±4F^Üì¯ø¶A9•“Mð•1õŽŸùëÞ2y-FÎѵ =IDËú_U2*\ZIx³¼=þg÷j µ>`bÕQç˜ RGØ.si~dêÛÕGe ¤†ø^7ÙO¾¦ûgwÉi#Q¡Ì¢U:E- $M°ðúÌhÇá´îÇÁ×l¢è2Ê:—^I9&|øCÎå·Œµù{bRG-¢z½Ÿ–ö4%aa6 †0ö×ÉÕ‹9@p£\Ê{I`Åe‚™­˜¨£ïþéµ;¬UGdÏONúL›<j Ÿ©åzÃcu4BÖÂ,„wK*•â0-.7U‡jËw+jf #.ô\Åy¶´bÍ΂¢×¶ü€L¢OT:Ë\)ØIÿaËbD»t³ÊÍõæAdNE]ÕGÖ¥a$ýÕóv Û˜žnèvЧZë]Ñ÷¼5WÃZ5w°] êÛhþ¦©ýXu{>y°$Чñ_M%†fÍÒ±ãÇ+ýb™ZÕÚ\ϯë†)rýÞ3T4ºM]0ýôÄ6NÛ0œ®Ádc{ KàGæ‚ÞQñ¾¼Ù~ß[RlÆ>©m“]žàÉ_ X°¯$Ðß"&Œy»+\£t¢•}½"‡Yp,uŠ”A®ÉÐŽ[„ºfCü´» òŠß¬n Í ™¤ž” ’XÛKû¸ûÙòX½'<åp˜Yɯ'œÍ‘DÌOÀPõ­kRVIK)ÃDØâ?Þªqàç6¤´è˽·*mÖ¬„*&?_3&8¥s/͈Z—T¤hÉŽGŸ3ÒÏn¢KBGv"®wHbä Iŵ ¸4È_fH]îM[…r­=܇.rÐÎÊ⺗¬Có‰çÕö2 Q$ÚÍßñÚfC3ÿ¶—+·Œ,/9úHý1ùlyhPÂëydvÄôú-‰¡à‹©÷N + W?G¬8aD@ƒ­A„dL[¦ou”ƒ<£ö÷ݬ8ÔHkm`Þ`Ä£{E|ÉÕ&D…ÃI’wN™6fê0ø* ^ﲦùG¿æÙ_Õv°~Ñ ›­nŸÂ)®ë8õåä4œÏ] ôuîo=@v§òT²z!'5QìZØÝ6>Y ÷M©Q‚Ê\vjXÃ#SÀ—¨‰ÿœf¥+.3Žàv:¥Þ„ß[r#ø—×á’v”ó^v Ócöð=¹@nÆJm‰<¡I´(yy‰~’$ô†—¦=“q!”Ï£ ¼n Àù†ÖÇzÙ„ïå úö Wܱ™`WÅR.óe!pê0Ë :š›éZZ.ÂAÔ¤Õ;ŠN$ë\Ò >¼PËšŠj­\­[Œ†–o.i¿N(ºZÇ©ªf»ýNWâ¸.pS³4Y èdlåØaüüæ5‰ÔU›z£ÌÅ,>£_Cù^…¬ ´8žá»b:fy-«:›ßyù½¡ò+<äÅõ:ðÑ,ÏR&ï=FÈáDÔÉÎô•ˆË4§Û‡h½°5Ó©ˆ·ÒJ5¬š ØX{¢ 6.œ¶ó^Øð¿%ÙHƒ.D| ¼Ô™“…lÇÜcØÕn‘K=íÈ1®Ž4/…I[¢®±\ž[9R@¦•Lš"ž'È*Ažm:ê,3¤ÛsdñYC+½–òºjÁ­êˆ˜™©Ð´Vy™@f2‰è4hÜ{'”È­ms·Hq¬5û¢è7Mä£cx-—°Ç±n"Š 8¢?ÖŠ˜ô›à6Hœ³kpeuÉHæÓÜ‚T"væÜ9qîB<ëÔšª$¸¶V}ØÊüÒaúó|[«$¡‰|L£}:À} .ûˆ¸l˜J6ˆž¡0^·•šÚœ·—Ä0/$ÃN"Ü|rÀrVí/q÷Ô2;ÕÔW®á†tŸ}7+Óä(ìkü¤íè¯7²Ö<°¨ÿúY´kê£UU[oÒ1©VVòB’bƒ1ŸùT+Aº>ñh5¿Åbs¿ž$«dS€n]Ëà Õ¢MWÊŠÕMNMÕKÔµÒdÊ8„£'8½˜3M¸§6/oç÷<6jÑ ºV’6@„%J׿;-=¬ üͺ˜8B^.WÞÚ&š‰»:“)(h¼÷±1õwM׆ÕÜ[+´êNDpë–A1îMÞŸm„¥¾öY }M½ƒ{ ð1Z<¥³lˆkØ»Ô`™£;CࡤÂëÒݦåý;)VÎB™F¾Žƒ o¸4SfÈVÙJµÞlZͦù™·Û;”žjÍ*ôÁ ˜×:Ô›J}¤µ­ÄÇÚ?™T³e\k' áŠŽÊ x«’â$ƒp猚8ÿf=‡­Á[]Å,¦|}.ÍaˆÌÌ›ŠÆ8<„QP3|‹ÞN`NT-~jnNåØ ·”€é*VQz½§ôâ4ë!Ä–ïþ:Ï^!|vè<Ôd{},Í?VùâÏES|&&s8«›ýû™æ÷½M¯ÓáXÞC¯ õ%(U´ªjƳÒ÷Û÷ØÓ\“êÉ €¢ïXžQ€#9žÀãs+øŸ}Hð%Sð{ Ò4´48µÍÚ£‡w0\¯·~ÝÌÒÁžª[\UFÎÛ8¿?˜*XLe’›å;À™ =ì0M’iùÊKÄ“W ±`íÝX›4ÁEµQð¥ za¬}×}DY¤Søô¹ì*ÚbïQ÷Šß f´ƒ’¸¥—ʬçZÚé/gÌ2±ÇDÜÝa@P–ÒúHнýF¬rÀÕh÷—òÿÂYì盌 –1¥ë§ÒÅã¡wvE”–Üà[ a¦ÆÄ—Ÿ{VGÌæ£gÛNcjÚã_îù„ —D ¨¾Ê*~®79öǶ=e¶¬bÅñ${£7·îùƒ8¢]¯ÎЈ1Ȱl!ž¯™ûÜòÁm™»è ƲvüKz¶ö„bÖsM0]ìkS¿*`|U'z‚u½}žäL¬ÖÀ4Š@öú´Á¶Št¿ùi÷dM·®eq¯;°vN^Õà…™äçøìŰØ+÷f´Íî¾<¡þù•9Ça#±öè{Ão„ç|YOÚ²¶a5‚ßµ±M'Ÿ°WtEd!ìtDû= ©®µ›«õä¶8ÏTN*¸³"=ð:f}(ÁÒ<"°Œði=ñf×hé’cü%ÖýÕÂfŲ@Ë _ýŒ¿ðg‚† ’Õ WÞó2zOëŠÅ"?±×ö!¥k½×/«pj|&Ĉ!Aµ£=èÅŽøµ®°ÐÏ„üµÞôUgʶ)›«ÎÊ\Œd¼ §Tê«|°]ÿÖú¤_EÄåj}–§EÚI´2ox"Ü3ÆÑ‚{ïP¹*‘Ù°âaË\¤:ç¬ý¿*¤1ß.œ»`½D1XÊWï´îêLÄ> *¨W×:߃€îV Òx²BÝ¿ÿx®æ¾º¦·îlY/zG}ì×þ‰Eïdï*6ò©ßþ¯u©µÊ~•Fàü‘!Rq»䵄¨¹Ê¼Ý7}^O±›tö´ÿdƒaP Éù¾9ÿ†¹[Uš^-d«Ç3Ï=+•—.T8Tá¬êǃYÜÒÌãñ{áýHf °$•8¡QQä–ÉcOiÐt,ƒMzôsŸ&£kOè ½4­®‰• Ém”"Råè¦w˜'’Q¨pÜónR>±àÃLcñd”"·Ò¤)ͨ \2$½ù…©Œ>@¥ÇÊ}=£õÛ1Vÿ¼¢mLç˜o>F›ëwËén¾B‰ý¡ÿÁbë!Tâ_õž$Ò&CèÕ^d,U Uh ˆ&Œ,ópÂh—ß— 1‚˜°ß‡ßˆ?žg ¦§U‹Þ’g¹F«"±êɆ˜ñÞ{ t@b³„9jØÑÅþó§ûýJD¥Mpù½@ÈÜâ§C6‡ÙOÖ"·Ÿê?ÒãØ¶dsÇ´)DaÈH×ð#ÑJ £œE‘á©M2ÐÉ‹sÖ»¤ÀýËNåÔˆÚÜnn¢{ÄøgòVöêPvG´4*%Ôc»#ÎÝûwÈô¨¿æn_7´äGf7ÙÔ{·0‡S}ßý|È?|«öŠçk€ã¸š3RR+g¸g½³c\¼Ge´m–Oû¶*À¿Â’ÃAS Ž£¤ÔVgIÿ‹Fù‰JÔΪmèo€ßÉ5Ld€ ÅS”-^”–6ÌídVgD6?ÆÍ0ªÂ:ƒqÖв+Qµ(ØØú,åà¦yßèsËZ‰~mÓüPs †É°ŠÊr¦æ°$‚à0ù¤>wöŽ—ŠWº®@ÖÊ”nA.HyÙô×Ò1^F£™ÓQïËçA•5“‰E·g›YPÃ’[c¶7JÑj÷gŽ] ê Ðiö<Û“¸8äc:ÑÝó:ì=kg3­‰t€®ÎýKyËc˜% ^ðœ½ÀDÌ‚ª~=7 ì¤û§SÈRÌ(yDù²d„(}C¾ñ-{evþ+üŒiQƒçPnCUd´s #8î᪕!û‡¬ûö œ}Œ"Ê”,…;«¤$F˜÷õÊ»ru‹¹ÂÊB„7üÚOégA«‹ÛüY T&‡®;ƒŒ;EÛ” Ââ©ÖYžÔ…!{S 2ˆh’¯ØËv&Ì—pêi‰¯wîÃÑ-ò;üwx‡nVà2_¨Ã=ù®?:ÄŒUóÁ{G)ïT÷Üa#OçEž<`¸#|ú'¾M5_ ¨$ÖhŠW7ð;ÎlFºü·K¸$°5µï/í°™l×Ö·“<2åZÍ_@Š›¾Ù7;Ú½Žd¦0$¦;oGÃ϶ÓxÀ¯†€ØràûÉ\«‰nƒ ž}娘 WâÀ5íýðx‘T*¦·s&4N<ñ`aTÇ.žF¥‚û«ˆÃ;½r¯Vñ÷ì5¥¿ä“¡tŸü}¥¡Î:ºs‹WÈæ#…õl²¸MÓmïPÚÇ Õ!Ò_/&N‡qœ£ûg¥¹š·T›Û»õYŽCSuåoM¸Ä³T‚)O፠~•NE‘/¡mø3æöû¾ ?‹÷ÜÓŽÐ!½{/ÛëÄèlëU|9„ÎUPÑ=\rÁY`C¶ÒÌyð~úûšv¤'¼÷±ò>3Ÿý¶#È™9¿”žË(?qwn¨[ðýé§²Wþ[ç&[6û¹tä²úÙÑÑÆoO¼ÞïÙÍÉüb;÷[ Ò½Z­É3ª XZYÀ²/‹Í[2H~(ð И—…Ÿ§:åqM»!Ì@ãy©¡ &Ø;—¡:j°Së¶{7nÎÀžû–àa“øcâç-1gqËÕc„Y× ¤7… þßQ+¹3Ì×AŒ1º’»å7DM~ÉÌ×¢¹>ñU¾óng~*=@m×@[»ä4°6YßÖ.U?›÷£_i{W)çÿƒxƒWí2`è€ì$Í,óXÓ\Šýãÿ0'þ ìÎÅ>8Ÿ`(—·C¦h‹B«ü—à€|«å£D=â>Ñé>x)@¨¤´¥Y´ HEuz})Óå3XžÌŒÂveÁYh3Va7ÙÑU½­acÈ|„ã‘öb•–T@’‡ y<›Bº±£e"†ê{xÌ[aV»UgÝxø^¶õ™;ÆÚJÒn¦™$ޞݶrå3¬sQ“ŒER”¸7ELÄÆ‹jt£ßÒ¥zWõñý ü>gâRþµ!YQ¨ú¦,Ä¢$Ž1roÏž$­$”Õ69þ’u‡ý)tšJù9×™ÿ$ȾÙ”ô˜°éŠgüDgÒî#±dñƒbùhÍòóÍá/•Ñ›èâ`€IeË¥_#<­´æäΧHÜR¼ê˜ï Êʈ{†?{ÝSàO4_«ŠïS%;þRteåkÆ­ÞëÁ¦ÆÅºÂίBf}&˜ÈóX G,âžgÖxX5ǰռËdqä v™ÅN^[Ú :×a´ ±Î¿7mígAéme÷–(¬9=. üJæED:ŸúÜ_±–Öw«0¯©¼ÜæÁ¼{i±“™0D ¾cøwû¥\ð²Xô?ý§…_ŸÐö‘¹Éx'ÂÎS7aÂæEÌSqo3¡°Ÿøab'´ÀÖ¢ò¥øj„Nî{º&ö ë¢Õ€Äú{ÅW!KùÔÆdngD†Ú-dÔÓ ÌJ$Ôºò‚zÏ] 0Q⊫ÓA]{„ˆB´'¬ÖÅ5@òŒR¸f ÓO«fƒ’ð †Ø&Àˆñ²âÿ»ÓEïw¥»Ù^¹ÕZá44.I؇ljœRË53ÏøØJ»Žh€SU„Èç%#~Îæ jh/PéCáFætJRƒ5{ã÷Ëâe´ufe¤9­<(VM¨«]µ†}מÔ-µ$—|ªÓÏtÍäããØ€¤÷DÊ8—Ræ'Ÿ\®!£<‡Á{‰†#ÓD¶¯ñíÞt®!¿ºsG¦’jãÂnàÿ7f÷¡ÉËψ'ìw[Æ0¸ääûbž^ÊÛcº„ƒ$=iP_»ÊS÷ð^5īÀn&=îèDL‘¢£!â€ñ$ªÀ¸¶ #t D»ÕFÊo8íEQõ[Éê VV!Wy)¶¹2|)S%ø‘i{N3+­ ì Œ£gê8%ZûS°ƒ­ï&klw´ŸÐ‚ñã-pLD¤NñT¬í ‘vþœä"$¥m»u*˜µ厠XåÖy–-éás³ŽŽÃÉì)`ÚÛd¯íœÏ¨bNÇUþ¸|¡àÅCe:¸¼k4]É;÷Tøç(`¾¿ÿ†esYâ´Ré*Ÿ_¬¡_S¼‹7Ęð§ dw¨ãJxÿT:Ddª=æ“ t2V)ÛçËkŽrç\õñ¾‚ûæ˜PþÔ5%w€Qž£<ÚF¦\nœZ ¨"¶MÃ?Yðtô”­ÔLÈ"NÏeÿA|C³Ð>ˆ|.ßÓ÷‘ØD÷Å4U¸U %Òv ³ÍÇÔ¡ûu ïÔnP¼6f_9ßli4 |‰î’pªðà©ü7I´A" wõÚü4i3w¶¦-#áÂS“Dçž3HÙ„ »Å†X;Ö)g…¾ækW£àÆC†ôV³â¬_}ãßÒûÔY€\o/¢E¨§sBC3¾:S蜩&Ã=5Óà:6Çnÿü°ž/{Œ= ¡àôçmv4[ðŒŠ’e­Îi×Á骢ú;v·ºèú æ…¹¿À½ß!•öÈf☠™Bƒ¯Ž€ ÙK$c{±êöOµ ^þÒÔÎ2ŠØûh\èk5ÝRqû‚ÚAþæ62ß±à.ºëÉèÎU±tO‰)Ïr-© õd~S®3j»’ûQJñÀl–é‚Bä’ ÕÕÙñ¼FB0âzM…n‰ÃPIþn¦ícv犳{`[ŒÇ¥‘* MhU†«Íã4V½§m;ؤ.Y ¨ðâýÒ^‹½ÀÖ‘µÞ„UÜ-’—½m¦ìé[É‚ž!bíj\`ÆÎh+= Ü¥½ÐœeýÁ¨Ü/ØN“­K ã1ÑJîó›ÿ>áôu&6µt9˜MA,Ø©÷ÞW3²³Éãu"‚ïF©¸cÄÿÍ Þ«wBY‡0ŒAVB¢ÛF'sÿ†¤½Ÿcµ~ R®ZåmQ•e{êpå`”[xød #&Îk|ýêÿ”ƒ>¢ÁGí29Í$ Í,6º‹›¡faÉ~'²öbË£­…]M=LA•žÖ¾é´öÓMlú®:‹ÿ`¢ò¨Vï«Æg=¹™)#ADð3. µþü]Ö³q4ž-ƃf¡’µjÁù±™¸f¶LS>ŠÜ7DQôÿ:Èõ“jÁ©‚£ù­NÐ`g‡¹wg¸U’ÇÅ©x•zh<ïniPêcý¿Ihô ¬7çòm#=eÌZ¦Uéè‘e{‹Z½eU2³-¥I;Ï­b p;úy,€æ¸$ùݹ@(eÎßüNf<ìfBóíbé:¶df¨^óØe“''€­„}Yvú}D(èN©~iÉ,¼”kVþ¡«š|s¸`%5<÷bߦÜÄ îP´øî EÓ—î›Ä2Ø™¸èк”{û±_•tÕ5©Y‚’ÑÚ°–¼¤¬™W>q'Ž¡ä²1oà±Å'=y‚¸ØL˜Ö]°»1£×؆ßKã5QšKïv\ÿLj9(ç÷~„}á]¸ñÞæBÐ4Õ4¯Z)¬m…{Äš³1@¸3Ï@‹ZÎà®ó8œ£’ûß‹‡g¯çØå&ô®CðÒÝÉ—c‚Nñq‹*Óg·ž„?.E7ŽM¹•løÀk ä̱Q5¼ãj™ OÚï›DÇØþ=£Ñmvé)òÏoùX¿xžœ?=û]§¥©tsÙO~{ý+ЦC½‹^Ï~8 ÏiK¼ÉBp=«‹þGQxlÌ7tÚú›pv/v!¦:ò¦…­ÒF ø)'*>®Â a¾zQ‡[G¢>ÇT}zÿ›yk†d’9—¼¸¸krâ¯ñ†îneC«jéûÖ—^ýñ‡*Ü›5Â6RÁ ³2ÙŠ]KU·ãaN<èqÒ·³€L ì…‡¡¤vÏÖ¸ßõìÇ`gc!òŠ*+µ“üÐÕ¶ƒpâ‰õbÆèKŸ¢‹¼·iƒ t„ö{NêR$Ì8Ÿ¥=¨ Ž[(˼vJƒiúü P’ñ¯Ækô¿µ=äR¦€ÂäLìF³Ö~#Zomô †üÇÌ0X„èððå<‘k^ìQÃSÉ 7/îq|ÑÎ2¥è©“1±Ièˆ?ðµb¿zóª–¸™=fTÚv…Äľè/k&W×@ô޳@=é<§Õ*üó߯[=cyHÁÿTpø“F^Ù&9Jt¹ØPêq´a™š>·^1CVÜ"YE5W!NþW «8w}ÿǘSƒ9c e¢›Á)_æÍÍ›Ô'x¿–Ä 1jÿÀ¯YÕ/ ç¾²Øn¬ûüúô]¼ Ænû™‘Ä «|®~| Uñ¡Ü ³¹Mp1^nµ| »2tÄ:»\ù±e¯¬ÞqúÆÌ“õ̾,8w4 ²?é)¨pßÕÿ-QUœ=’FD“‘MÁÈ/¸–e<³C‘ƒ»'W5W!`^4‰bóWB~y©šd%{ÈœÐ#K¯.fpI¨˜i˜&pÔÖ‰j²EoOÚŠÈI’Ç¥è°Î¬¦ïGAëÏÿA,!N Ѭê²ý΀»&XÅZ:°e.) èú¥zvã˜ß…Pò.÷Ö”³™¼z¹ë¬ý˜ÓD躡Ùé] ê7élpqz¿ñüa¼fxh¤Re°†ôUúˆ-t‰ý]X0+@gÎõ iÕ)«£¢4Þ‡ó‡O  Za*”Ÿ) Ñc1Bõ‘Þ¡\LSq;‹Úk¹– ŠÍvëâå4Pù·sy.>+vH)T5}ŠVjQ)‘cÕ Kî%ÝAéºÊÚ?²´aœ:R6Ôôº3ä; ¥HW‡'R‰ãýYræui¶K‡Ö… ”†¿Y/xئ>Þ Ž¶ç4@!›Ãé kiü2¦åYÅF‘i6kWðn0Shç7¶³ô– Žf¢Ìû—7,º;<׺Ÿƒäà‹_Ù9Aã›FÜÄ>R¬UwZÕl¶Ä¯ÿhÏb<!¹Â‚ÂÓ»¿DnYéMòjwP»YP¼ ·r%ÏšL&¡š!dÀ›DŽc‰V¨`>€ @•À–D†¦>ÃÞçÏjÆ+IÝÑ\ò~Võd"&,é‘ ƒô³ lx’ä )uƒšýж5qBøgjè•ÁšuFë(ÞƒMš¼Õ«€¦ÔlûXTuF¿$Wo¯ÝBWzÖ1á±’Ìw‘Î@;ÞêîÖ9ÑÍC‰å·øÿ›Ìƒä H|>8S¾ŒrÍýqb Etí$ ›¥¾bûû2( á3A,“… 9qµ2¬Õæ3;º=tOFl €¶„HÌçÀlìÃB,ÙQ®ôÞc¤æ*èX5ùœÏ¹ÊTÔξ+œž[Z³º½Í˜¦;%ëÉŽ„ûvßìÈÐÞ1î¤'m¡$TJGë{`Ús_t…[7ìqrâŸï01‰á¦³ ­ž‡s°„÷{×o4±àÄXÛ Ù£¦£ûQ(µ¬éþT’Â\±"‰5ìr ò,g…šº¿Þ">-Ô5säE6¦ñA„\jp®© {Í×Ù;w–7¼ÓG:K&˜ ?dßWÔµ[à{½â÷mtüuíé+^/uBÓù~ÃùEü@iIOº åmgµ!°îºEŒ3£(;–÷ôqÛf°óD“öt3×YJÎ乄»z û8(`A¥ò§6/JR¿óh]÷+u9"i§çœmàûÙì{/§ã0ªµn Lï"†ù‘ì‡Ù A~¸qû=‰(xbx¥2¾”¿« ÐÉO€¨ ‰)gN¶Xéb&ßn¸=Ëy®Tï—å!Úátþèuˆ]%{ܰôdQfApÜiUôÕdEñÆŸC5DvÖ'£ú ~Ù¿RâsUÞîÚfnV)þñj\ŸÜâ’í¹Â:$ïxÓÀô”sïî É01ãà†xCøx÷¶Dœ˜ÚN®š2©±chX¹2<ÊS­QžËeׄt'knpO>"5)›ô’[¯äÜRçH½lŸ#JkˆN‚ã_½ ¥ô‡s5(ð>’ø%2v’Ú?Ð8IŸ^Ãø8ãâå•3ß(;á“9šg w8çîÆú÷/#>Yv˜W,P$pÔx—XÌ1f·Fö¢„ÙØE?ùÁeÕ4%¢uÚ§úsÆÐéìÇ¿7™–?ûà›/ТeŽ—‘Òék[†xž™µúÑ 4ê…‘&~²ÞלslN„ãt+½½}­F¾ž3Ìó-vȽtÇŠ]÷’€LŒ2¯êoâ6o¶@Q©õ•Ý;ÐÄ.Ëf0>ñ†‰S³²@]ý*Ì f´Z;­mæ·¨Ìf9,_6(ï*ÉÕ\oð_›h^R[ÓǨºE1µS¤×ì¢ ˆxƒXycÊNÂ\çad‘ZÆõ-—-Õ °`P:þ¥/>½ÕáB®$ï ŠKQ "®¸ù!S§™ÉR ßÚ²´¥Ãf"߯ᗮb6¾lgù™’«i#«)c¼TmáHçdÚ1ÓͼÁÜ ´w¨ph}mÁ´¯>¹M|†|”Sw:qêlÑkòµ¸hŸ¶EöÀûìÐæà9 Ûñú;žóýH- Û]y­ð0VëÊö¿,_\$£ D6 7>^T_kšk4a zÁÎm_  Á&ï³dàFõ¡Æ7=6—}K“VËo‘Ba·3cDƒó@âòŒ~¦Âß¾› BžA)1¼ ü—‘3ý[˜“þõéÿÏi¼{¿¾œC}ç˜Ëx²2|kC…íåwi.Û Q«lÙü)²qáub0-„9õKµ Û¤ê4â¢ð‚kÃ'#ƒ×Rlî—+ ·‡€Óö4Åj)óð¥Â¨ø øÿù£{CëÕÎ\DRˆr>í•s§7i)þÇ^g§[wȉ榬¡z|ÎO¹Ðݱ½¬²¸6Xñ‰ºïgCš+gú× ŽµÙ:¼oQ£7Wý΢È,pO&gB?½äU%k³|õŽäåÑXþ¾‹‹­ø¹… Mcê‡êOZ%D¡f„@Ï1>9ކîp9Ù_Tr׳\~ÁR¥Òí–+g¼ÜjBPV]Ô¼…î3¶a-8&¤§IðdÝ…Èçyqx6†‡]\ÂÒ ñsà]ì_êwÔQ®9c_E½5¬C*âÉæ¶4–Y¨z¼›#AüæemlI‚~Ê›-—yŒLã¬Eç ¾ˆµûwU™Øà`ͺV³2$'NÒk\X £p(Eë…\"bÇaê8ÀÔ‰˜Ÿ¶ÓÄŽY<šk2ß·¶(¼)Át¶gñ„Rë(~gÜáêÊTbR ss°ú!‰å|pT”S¸¥î†ÌÖ¸²äåÓx«‰éLåêä%½À«ƒN§ôÇT…?=€Óî¯Ôæ–rÕŠñ&VÚ™p›äµ@Ùcò´]’ ¤è¤ƒÊЊ ös ]¶O›ªƒ¡ÉM¹,s…ò6” ¿ƒ±BîÛÀ—­}ë&_ËðE‡Š¡þJ¢ Œ]*Kßm~ˆgî§5ø­õ–þ=ÃCœ†%z‹}>Ùö?}ˆÑf`ŽÝ¥xï)qø¸9tC äéA¦Ý—à6ú–ÚEÃÎÂxlœ¡É ÈÐýã)ì‰ÁX:Ñ}åi}õ›¤‰\¯ž")³mïÛÝü¦Vøv¾ËÞÁýLHK—Œ!¶´áU´p³ÔÙS ̦½EÊh¸²ñƹ™ÙnÎXϬgÏìzÈw,–V»ñHßD7˜u7ƒÐXy¯§K¸­Šê²Zÿ“ãÒ0ØKªÑ0T¯hßä¨ VŒ²Ú‰4ÈźM]‚y™ï‚s3'‹°BŒ¡WÖ%og¼«ÓâÂñuºÖ³€ôiò¥•¢J̲§ªðégûá¹i î˜:›i~ÿ“p'’æ•ðû2# 4£`lk³‰R¿\éÒ`9–M"v“‡ª5ú´)?û[5´ V*æ³*À‹Â•Ë c d´J·K³ä¶XËö/37ÌÞÿ#ÉÖŠ÷íü ±ä¦¹VÈշɲj ÜR—˜f$‰ cãÌ>3~ªÎ¢jòÐdÏÌwOjlB5/PzaxrßX)¡éÀFü$²ü[-çö‡ï›€ë%ÿ.óPÆÁ–‘T->ƒ†w6ÊŠç« ñ„BÌöϤ¿h]_®sñ4²>”?ß!‚@¤˜2ìf1líü„ȈäÞ}…‘Û$ГéÉ™I*T@Ì™FqœÜ46ƒÍÌm9²G]D-H«´ŒÈÀÊG:]GÓ1QÎ>Þôû0“¼t®}ÌÏ"¹RlŒh6·Ü¬*‹çPp»%¨ÚüÆ~DÁÊ¥ßûÌ Ð#_¦PyHï¡ÃÏÓó·ciùäs t3¨ªÒ)•ì®þÙ€¨ŽêÑ•]0ã¯ß xQž÷ÿžÜ! Ë¡¹Q­œ0íñido“ÅŠ%˜`â”Ô‹ôÁbYš_Gîσdcê\­ ‚fì¸9V_Ñ` •+¨l—ø²ªÍ¹MÈPÊËnÕÎÙÛZìEò–©M—§ÛNk¶VYMe÷œ|ä}«EëVlÑd^%30·;ÜP¼é¹–“+‡çûÕ'•qÇ‚ƒP…ýñPõª‹ÁGʳ…Y»±S<íìû,¦Æh€ ­ËðØÅÑ0ŽŽ.øº’ey•]L˜õŠø¬ Ë95ù'Ú ÈHð aédXÈU³æ‚k¦šØq.g•DWí±äÐHšã3þô8”€Ÿú')Éd5žŸ˜~¹Òç ]ò-ÓïHÞWÌ_¬©áÃe¦1Þ ÏM:ÒO‰UJÏxÓh˜®è5ÚÿÑîÿŸ„î­³fA›NK›xù—äŽ5Ï”]À?xºY?CJ»_Y–Ž Ÿ"0&ÿ ¦ê³ÎÔ¯Sû$'Â`MŒ¼hšXyKø´?Uœ]¶€‚µè’qæSÏ×£itu]ççö65„3vJYfXä_4Ï enü©K^ælo,@÷e2§)¦µK’†Ÿ{ढ¹L%·äC!:Í+;ƪmeìé{4&w5ɱ4èEF¤(=Ë0œ§/Ù‡­³áÖ™Ç|ˆÉz+hþÄŒo±` WÄ×t0¤fï˜Xa ì#çM(zs¾Öîa±Aia{8(¢TœRÙSŸ ’šÌæÃcUø° s)Ò~ZôW/5aL×>»Þ(ãsö¿L“›ªžÅÕ ºZ‘èŸîÍÐ&'È™ ¹"ëòÌm $þæ †+Bƒ›Z‘¶ÙR`ªhÎw˵fŽ vL¿ÊË dº©..Óu}ŽmN׆öÙZ(/fûݘÞ{"ûnEýÛ;­Ñî’å¥Òü¸7¹â Jì¨î ±"Ôi²Y,èRý?1’%%¤ùµ‰R‹¡ÞÃæˆ¿y¹øÏ àŠ´j÷?E¯Õä Yÿ³‹ÛèwÛȆBŽá  xg d g´›¾`®è1­˜Ž§ /%˜+T@\‰g‡ÎyÈ#K/+hT›Îo°éòï"¾:n“_'jZHFÛPA( “Œ«áÌÔSÆmpAÁ °bì~ ˆ šqëšWÆ~,”³;(–? ²Òª¾ë¥†æL(ÅSÕÔ7l‰tíQ£ÀçQ¸eÞ§MS޽ÙðéAzü¥C¡à²A˹åÙ¶Ë,Òxq@Bÿå÷Ì”ßä ž—¢1½;¦s[Èë ƒúʶ9¯:8Ê=ÒN޽bCuÌEHÛìíC»…ýl¦GROÂⓤÖàÈn2†ç×*½-CÄ[ã5¦ÂÝ|# Ü7ÎkꨊÉÕjþ[hnŽ¡ãï‹p‘7Ž˜Œc‰ Þü åUH”ƒbjˆÜ›ÝS•l”#3Œ«ÙÓÅ´ª Á„ZíìϾ7 RY¡‡áø¿Ê7“Íá”Å¥,œ_nŸThü vaçqŸ®[-hƒ:ËK`ö!+©VÄa¼“êU¢ ‘GWœbÕŸ¢þO„½‡mÄ»·gŒàöÿw½ka°öÇùñ[¹³ý8D50M‡®“Ÿÿ¼L FSû$£0Ч5Ë›?›j’pG^Qm C–Þ1v5ið.)ÌF Ý5ÔµOªŠLyÁõ(.ý’¨Žó‚8ðl$ÿGíãß–å,hˆ¬âŸ&gpü(Ù×wŸ à£+xnvG-Ѐ“WB2B‚·­-ùI5Ûw'žÆžj&¾Æ–õÉûQ Z¹[³€{2€€ÇŒB~(&ˆZŬ¦ c„©ˆnU‡¯Ê£—`Éé$ü1Þo4ze9Há‰k • Aø9ûå* $Ý–k}ÑÉ pv ¢¸íû_„ˆáy7Ðuú‡ztUÄß¾5…Œ.°D’ùЙÂÔö–MŒÌ–¡óÍ…ÕCÆÖ”]ME1¯¨ s›ü68-L¾B“f"ùöªÊ¹àvemEbQÈQ¬ÀÚ^’4I‡§qdéö8s#}‰{|Ü#”ÞŸÞ™¯íNÑœÊÐÚËuO•>ÍKÉ.RšœÎ5>¤ô#ÃB—o“iƒê^æ;ôR=&XìW€ óe¥ñ$t8ž©óU4ŒDöV/Ç^06Û~ˆàpMޏIÔ×ì„ù3q.k0Mc£/åcÍH±»óc|äÔÇçê¿?ÅöCÎa·\Ìy>³(‚Ê-ãöB)ñËÉ f³„«ÕoKŠ“\uh¥‚f—Uè0£¼ë­GÉhÔ ´€ ÕsŒ¨p_ý ‡wpVìLjq—¦ fMfñ®­ìD¡g†ö$Z~ï»!S‡ÒR³aÐ'pñn¼|t꜆ÌJÉ4‹ÇD‰L’"Ï T­°¯ãò!b°²FøC€3íé!»Ž2›eÛ43µlv"97|Õ¿„Q:/ø^ÖæìÜÜ%´p³°È)ÃæN›.ã%–ï_lÐDýÉa˜Ggß̆«M ãY´ºþŽà8ÃK+6’Â&<}óàYÕ%Ë¿" q†¿˜ˆÐ';ÒÌÙ…Õ[£b¼`.ý{öHêE·…r#“¸öq1ˆ¡¹ükÀž8«Oš¨–=q&•Ûm ¬ôÁ¥&VÔcñ2K£¯4c: ê }6ì'¾ë¢j£_B»Acüz­ÙAÕŠ-6j—Æ&äÀóÔãà.Ì÷ÊQoÝÄs@³sÔh‡„D ýûæã£uIþÈ£w_4À40éÊïEî¹û:2·ö¡Q×ìËå±¶·vØEúß:\X]XI0Zû/SƒÆe.0ýÉ`Êä°ó=«Ùýà{÷§2ù±LÕˆûjú/õXÕ¨G`Iäûø4ɉ¬&}»{ ¿¡­æ>¤õ¿þÁÂvcäÐñm#€w*¾â÷ w~‰/[{ufø…ùpò:bx4 £k™)î4¹ã¦êj!Ó{tähy$d”[Æ Dë.w+‘ƒuÒ¹ÆSqÆŠ<I V£S7w+•–F66!3“¶š$îùzƒ2Ä…š,³š¥B“píD†L›Õ¨äl[Òü¡#^<_:ÑsfP`;)côi¨š<®$Š‘|³ª¯Î ‘Z&@õ$ã˜ù|«›¾ 7³ 5Ø3Îö"º-ÀÓ×EÚà×׎:ð»,¤ÎÚîáì™ ¿½Kç§Qê?JM"ºüìUeÒòíA­‚FsÏdè—&F=aO÷b$žƒ´â®zuTvØ·¨Óç¦÷P¾ôÞFÖ0¡­1N·×Ï97(²Û\’õI‰“d D •÷å›fމïtMsp`3°ÜÛ¿J­¤êÒ ÿ ŸûÒóWà]z'ª¢Ö9ÿd48°¦ºe¨È”pÉ0:Ç:‰Ž »‰‡­û¶(l!Ju¸ ¯ÛIÝÏ,ÄgÔBù”¦‹£Mæè†ç³D“IÝE• iìmöu«‚ŽÊ}¨0Í©¢—ˆõ‚¡·Æ×[ÚÍDv-‹o^Ü3¦PdÞÎiÛ%i~lâJËÌùŒjO¦ê‹ÛÅ8g £#°ò6«  “ôÚ€½fa‡´þ3A(ÝtØÂnýÿ‡Éñ©¬žþîå äïa¦É¹¶RsIIËL>[ Í»v8cRßsDפÁl­¡ELУX\Êéíô3‡ #Ã_uåQÐñÌšò¸•.’ñÊ>9‹<ãÕXÂf¬õ»ÄøÚÐpcuú|üóÀ¡K^ÓÚ™ÙÇǯRy -Ñ]OJî"Œk©Ëµˆø;¸Ádßçf’çÍÇqîc©ª“šÞ—\€VhŸzm6ÇóN×M²Æ»!¸<˜Æ]C+XžM>O¸Ž=O^ts„>~/Æq‰2¥$rõ¿È“øÞó‚/üËßˈ꼪½¬&QA¹S ”Òj9ý ¹>_3T„1ƒo°I¥«׺єP°z~ývòॅ©Å‡ˆŠˆ¦?ŒaL[y¨Í¼‡è<”žN sóë©©eµk%€€ËO—Çu  ‘ (/s·ì\€¢~ï#ÈŠøu'‘нoË*C œjô1|&Ç1aMÏôd<´§÷…xc3TGGn^ë–šüPÃ>vj}Œ›d d?&‹ËuÚ'êZšP±SU6®ñwv}ƶ²1&ì"¢›?ÑLªMzÕùšÓ °Ž€>¼Hö"ZÓÝlCÚu€(êIé”$;dªÐL§Žzº˜¢2±ô ;éŽ,½e¿ò;%áÏÔO8œZb#¦~…Ð+ZqÔˆgÅ¿ž‘|ð.ís­¤ÌϘbpS•—¥ @>s>A3ã$)ô̸òdS"ƒ?ê­—sÏâ×gåýùâŠgw»Eœ<ÇšáÒ¯ï{ù„únù˜C d]¯šàKDÛÒ¿~_%úÕ¡Ë^Å/©lV®5€>¤ø¨²+™1]l`»:ü#×JåXþe€äTÃfº5l[ÝÈÆ‰ ».°/WD&â9‡–œÅM×ÜÚÑŽ­åœÓøE3Øó¥Ôß™¿ýý²n--êM’‘`¬^ÌRÑÓjí\2FâdIÊy–ø^v® 1f^3nƒ¿>º§A7°çJçr™‹m飫®X2Ö°‡’£› %abÌî6)ÍË@»ÚÊÒµ¸dˆÍÓ¤qæ1ŽÞ |Þ*÷ȪeM°l$âZD¤ÛªÄTûPSOI–ÉN=¢s`Ô#)oHW…ê<Ú•*Äð9a0G)R[±ySjÍÉ(ê røq6ƒDàEÂtL '¯Ç÷.%Š»—ÇãèÐ¥ý:¸¡5DF¶ç” ­àG㚊èwчqIâQ¾';‘èx1±-)ü·”D!y¯Ÿ…ŒöY\ë"u·¶ÚOçÊ0“<¥Õùi¬ÄIbY<Ñ ì‚€eÊ-Büê @³eLJ\ìYsùZ »mÒßb›ó|X¾Ú„ ")$V,Vrr£J´ý´Ÿ“k0aðâWÖÑë (6¹ú~ ]嵩™y_ª3Ò•!p/§Ÿtâ1™bLƒÈÑa ‡Wà ³‹¬:ÙyD§tù;Õïu›¸ ¯»ÓJ>r‰x<~•Åóm«ªþ°‰`~1JÕ{”Ò|ø­Ïp¶½§Dk=}ô0]O\ð¨òÄšâáWYTCú…õö ¦œ¼u"ÿlDÛÒ»ýÃ0)‹eÈ3 ð}0÷˜"Uµm.Á'üë*ä"‚Àµ’d˜&/A!.nfLc }•ªèuˆb¼%£¯è¼2r?8½µoÐJ£jŠ^å¡éHð!ÃùÛMü$Ë…çYáurSQTšÆóšÖe0Ç?8Dltôµ â‹æ¡'¹X*‚œ2‹DYú÷{ô4 ¥Ôú›]OiÔ Ñ6ÓÓ E…†Fï F’£×—&mn>ÿFâùé¶XìÔFE@ª?Ýu“ÆU1M’+븧áÙ€ì Rg£”P›R«Á»uÛ$iÇ86vûLæz¦GòÃ%¥OúÁÏðª\Lhñ¼´ÞYß@ùH§ ÉsXÆþß‹‘¯(Û8ñ<Ì^2Üv)èê²Êá3«(5𶏷EvB¤³í*‰åÚi§¦eÇ<š+µ•Ɉ€Å;®øÝƒ³„lÃmÐ"*’"ò‰¿6#‡,(é|~—’¢ü¹é™_¤‚©!-VT-[ ÝtGåûåÂ,Ó{ >ÆkÎgHòªSмû¦$£§4ĶËf2/ õWf¢¸‚£¯-Œ}ÃŤÄ~þ®aI<ö«€ f/kDqÆû^‚¼PK¬W0âÆvÜ¿Mo r‰H•á#Ð]Þ¥%dãÑŽØíDµ@!ë[ü®“XŒ¼¸rF @ùç‹Æaœà«½b^µd„`?ÐaÜä¿ÚŒuc/ñã¢* ÿÔí䛢¹¢w$œ œ(÷o̘7=gò×Vž”±“:ç°çH^·Ý¢­çn+P8¿oi/§å9Obh‘~ïG<þÔ¡,'¸\W€í‹WÐRiGœîòU]3’¢±D³p`h«Ðîÿ›zäAr†!…œÝJh€‰_2ú0¤3½†>Z)×Ë.¾Rñ,~Vb²‘rH ÇSߊŠ0N™pÂxD~>I¡ŸnɩŎTbà0$K°öÀƒè7M¥ ¡.ÕC[—àÄë¹~âu­)…Rñ«UDÚðSsÁÆÆÀ„¿±F¶ ladøâzš«…¢ýPUñb  ËfµW±¡2Vm®Ò0d·X©÷h”áŠ÷Õ1)wêá7s–‚úœ<݆sòÎ{ëÆSeèb—P+ô¸ø"é!¤­ÝÃÑ–yHf æä‰…zÑsIˆ/ôxU›³q룧yܲê§w‘Â?üG  —¤ï s/g2ìð÷ÚÖ°GjtÛÖ¾eĤ]ˆÀÖ6qmÔ`œž½÷‡­•åï˜îI¯åWîŽB%Å…%¤føÍˆÓ¼Üþt‚‰´oçÖŠt+Vs hkžz}›áÚT¾‘xKãÌyVdv&Çnªˆÿ=W2z¥™hndQ¹¯nøÛ\×*QàŒ, kÅ'Œµ²Ó²Lh–ó…JQ5`A˜‘úºwaU“ˆõ\A?Šªáj½2êPåFäjáÀ}Òåº:2}GIÜOq‹mA¯˜ óÚrìBîIwS„ùhŘ—ŠcÙCûƒ}TŠ…+ȳú8!éਠÍVu5lnlÀ•+7kÑ5È óÕ Ÿ¸×Âÿ­bb¹íJÇ­Tà}”±‡×*“À¬Ú Fƒ¿@—ÁõÎŒK…ÿíF¿DrØò¼ô±ÎÈQ¹cÿZ¦ýZkÖ.hERU]Öa£CÝÔŽ4ª© Bü%@„´e1ÅZö‚Ü:Ó£^!èÁjšu¡Ú‹Îæ§Ø–=á® LB9Æ”ñ º½¯ò2Ò í:¨¦à/ð<þ„ÈÚˆ~m¢Xo8{°ëYÞf€ækÑ£‡,ÒñŽI¥¾e$®¯Š¹ ÒÊEnG¥‰,ô¡Ù—8kKU 6,ÊŒ@jÓiSÀ=;èU×&ð<¬Õö …ò!˜¨Ñ:câ«å/jÂ= ™ïÈ)w)Ù–0i°©õ´A@ç@ëÄ}fdü¤4™©D…Øâ¡"_Z2.‘€íO\‚"¦ßüüõÖå»4Û4B‡ÇÒåÛR R„~ÕØ.—‚íÌ-!0õÿî#"V ~lþ¾Aazl˜Y> ¢4â«dؾ†cÄGÆ "p®€£Z›µÏ—Œ÷$\ ŽÔ—–p‚J!†˜¸ØFæ„WÒùHEeÖŒÿf‡(=‡Ó§ô±^éßyÖO¢ü+ ÌK‡v… %D-ž¨|Ûâ“Lÿït‰%ehÖU Úv»i@wš¿½½¶‚0MHlsN„–4H\˜”…¨àÆM襙•†±Šõ¬š…ek(ñèÞGÂ8©´šŽq~îÎD&ÒíÍã6ëé”2Œ•mÁ^ÞØ4%ÙÎi1E í°K8wÄÔ-ΑGd´S÷†@‡=Œ5teÉÿ½@é•ûZ%™Eöhhå0/ts£)Á¡YÔ°¯û6È*ÀOšÐC¦¯PPŽ P¢Áô1ï¥Jw\gÂFy§¾ >©¯-¬‚¸ZÜõdz„ùµ¯®¾N%S¤”ŠS:~–·»ñ[^äû¹×g¡Ëîú…2«{¬qú¦7L°±8}¨²ò—8ü–Ïnð›$üÝÿΣ@'ˆõ|EŽ­ k4Õż#–6Ýo©dªh&,{’ ¬Ýíý‘ÑÊ›ác_vž†ÀñWY§IyO"nÁªN ~U¡·TF§ö©mð…>Ãù*ÞõÇLa"g¡â#“5‚ðcL'ˆV"D !³ö'*d«±.ǃ¯M WÔ¬ŠBlÄÄש—éÈhÇöÕK²>P\«ÒBš…ƒÉ×!'2éL@3- ZbÈvÁ_^úË;#ý¹çÃgÈzÖCuå5û7“Фç翃¾nµ“àù朶‹Áúôˆw¿IMöI%!\Äß;P?|`›pÀ½Y]*Ð ø²?„(!ë{áÓ«PaùÀhÚ°AµâoÍ|0Šžybã)¹¨ +õ&¯@“.ôê_é²ewò„'¯{UQ…V¬I-ÒâÄ÷.t‡ÆÕõ®G¢˜VÖlŒ=“BáAðƒlQߺÜ Fºœä = ì™*>¿]ŽÀ*Ý‹·ë¢6éàn\—è'ð7L垤+ÏYª8²þëD‹Ü-fZ’8ws-à7×…†¦‹Ö˜ß¡lî’Ëa ¾˜Y”䆅¯|ù£h4 ½xç0†ïß5€V ìIePÕ6¼,övZÃ1NÂæÃÉek«ÚèBðÔty8}Ö/k‰›—Úe0Ê&d'aÖ7b¢»Ú+è·ü³Ìá"NGMùw›½…‚D"+’tx/3âqõA›™¾#êT”Ê j,O_$(K§ÄÚi`Fuýfvù—!¶]¤{Zt£ÂõøŽŠï¶|©j½ïzÿ~Ð{Ãu6õW/H(^"Ü ÙÓ È6Í Ì‘ºDiº·Åµ‘%øwÓCm›Z=¾VdWÿ­p¸qT vßyÅë^—ËË\þö²Ê‹u-ÙꚈ:êšâ…[cœÎÕ;ÜÔË©Œ)t3™Ïä¹¥m w Åúè tVáx0w+Cü¿Þ¼¥hNSïºPU]úªØ8^ƒ¥.$SÖÍÞŸlÏÒJÃÿKNW¦RQÛ9@fAû¶ñnšzºæ‡"Cƒ4`ÃK˜7&o¼Õs‹Nl¾e5´™›!6Ÿ<†ÚÈÕS„lsõmxº»þ.Jh–ÿeXïÖül\DF}ýë$£Ö¥¨% –WA™ßt½| lÍʼnÇ8-‘éÉBÄ<«ïüSÎFèLkÈ› ‹£ ®gÎw×½‘À½´Ïˆº„|Ba€€…AÄ™& {¹)…úD$˜=”[Eüx™2Â"m•%%ÅjÌ}(j—&{Ùéfó¨ ¼,aI: CÖ…ííÁxcm]çjÿm€™šØº–ÄíHùVî¶‚¹J±¯waŒ7ú¶CãõQ€âL@¼ˆEÊe.C ¨|1­"(”œ-–¿”9kæ_¡>Âé=fCFq¬n6}ðÄQ¶àÐè„a½o„åÎûPêI3LºL|l®ó‹å¬‚;ù yWUáõj»¦'Ÿ†—ªN$9둈«µÔ~2Õ¤/ŠÁU§¥™—ý5qõVÔ¡—“0´\h4×rÌ<Ñ“}†Ô¡vL²^šW(7àUó¿AÅÆŒE·ºÎûøôjËí”oL 3^4ÀiúiæzÄÇNp9ãu%qîêÞ2Ž7«r&*0ml;j5‚ÆÝýh¹•<ð ×/º~I÷ç‚$š†Ž]ñEQq¨ïõ³Ã§Ž¿¸r:• 6%€š†ìÀ’NñuU~Mì ŒÍ¹/“ùrr n‡ÿ™(wÅT4Ÿ?©÷l¾â6x"}zÉ‘… Ð`ÿiÆ•ˆ`&ÿ씨 2il,G¸¯nOú0ŒøÊK…‹‘KĶè7Ê(cšÓæGhO8f§-9ã­á#ðhkûÖhyv–𶢫ÁÁŸÃ0í:MDù`°ë ­;$¼ÉY¢hÌϳÞv½{!טÎgÓGWõ½Ÿ[ÿjwïÞ0÷ÑáݳAª˜cò¸r7ò\,ùŽäc)dq#HJõA ÆñHU†š™q€¬ Ë2c^0QÙ)M‡”=hbù5:«¤Ö¼nTà¬€í‚ µœ…*R”xÁ¾4EŒiÅŽP¥·z`dâ†4YÓØóW—uc³\™HŒä4f4ê-† ”Qúø,ð¦0Å&Ê?˜0MuaÒÄ·^8ȱXu0AGI¹+ÍÛ.Œ/(˜¾þfìñ4¼ÓvíOѧ%³4l`½ç¤‚<ü´UVë(hxf’y‰{}Ÿ†c¿>b/Ûº×7„:ÄCׂ³ëZ0¤ôU+ØÍ¤µLÅí—dw‚g/U®d«ßÞŠ/ã>ãVj4¸#f=—£½åÒÇ 3±¸´þ²=› »ÿÇqéBkßI ÊY™ï¿-€¬•H!î[kÆ2óîQ”þ?ùΚîüåj •¡fºs÷Ä%–±ŒT­ûH,Ý»ÐGÿÏ@fWe!hݦɃg®D-—q0W›—šlÁ ¡]ÍI+¤ŸÚb×Tô¹èï0¥¥à ˆµ ]ª,‡Ïª3Áäþ—éÕilW˜›¿üNޏ?ay©6F©÷JÄÔ—¥y¦; 3¥6RÖÛ"ÍâNß¾y®Âq]w6NLhÁ¿èýk£ÛåxKìÎ o@„wQÐø?QèR÷í¾— )÷ϮƔ¥„@)R<¸QçyÈáá.ÀØhtQâ9Wða½B´dÉ5‚·BZÓ¶×Ù·(ºtE%²L°tFµéPà`=¸Ñ-g¡È7 ÐÙ‘ 7ž9OéËÑœ€,êmqª¶5ã±­ø.¹ú9žX¥i5MíriØÞ1Hû†60™–ÿ7uT° ;w~pÌ*€jfµ’½D²•maÇÍqDäí@‚Mji´<ž’ÚeȺAy³®-äå HЋÐEèqÙÇÁW9[Ü«e“ö©Äbßå!§ÔLB¹¬Û 4¤ï¼܆ÄF0n Gx÷2X)œU/kí–ó£üCt \Á* ®énã €vš“«q\PÀá¨#×oVÒ¤…ñ¥Â€Z®(!ÚT9xafµ-§ÔåªU»¨Éª¿.%“X\Ûý{Ѻ÷jêº FõgµÉñ”ž·Ïd;Í’–‡!ÙúáiÍŽ"6ƒ:•eûìŠD;'\Lº|`q¨(º¬<+ Å„^Š’çe©áTc‡е–Rs‘§æææ—¾¤8pa#R“”cF&sýgñ¶Ht˜ 8ž¬¢)P¾Ñ'm;9³ÉH0%/7uqäw…¿ñâÜA*eíÒŽ8XÔ…d踟ÔÌ“„Eå]ÏöÒ]KeàŽëÆ †+L}<© ñ…‡¡_7â¤í YV˜ w(Zõ£9ÛÑž€ÏÖ,}Œ¸^±p×€½›£ª³,©PO9 Ú.@bõÜË«Ìú­áàW$ª1æpl3D@_N«Ž¾Nyzb䧸{ M¥Ôí#óH²¼ÙWG?Š‘"G\±nE›f2ïæ BjÁv÷,b’ìKv*òÏ!½€V©Õ ¿…•GKLºØò—ìÎ÷#åGºÆè«¯WÑÉ=˜Eñ¯G:_8-båðÉ;Ý>Âä×ÉcÛ,øñº`‰•+¡IýyÈjå²+hà( ¤sȘê½ùË~ˆk]öo¥ºâ~A€®v>, Lç6¿Îj@G¢¤×æèR û3RïUy\²*¬®›B*zigð–ó¢è‡&8(è„J¯¹Ê"Y謨‰Ðb©Ä!õ9m±s±Q×aDjg@!Áf[0äSèJuëu0Œ9«ÃýÄÜU¸kÀ´øBëSPž °y–÷E©½€O\y ¯ÃIǪÀM‡Â¡þð°Z‡=ç.§V•È4!&g1ÿMíwèXÞý/kj»f@ÑÝ%Æ"ú.uµ‘÷ÞWª;†²G#=£™Åéöüþö¥@± ¨låc,qÖ¨¼Æ½”hN®cEÈ0Om¦4ûÑ•EŒó7:bEO¥°\"»§>´Ø F@‘ˆX.µU¦vrÕ•ˆÒÆ5xmØv©![ Þ Ú8=…©•”áÚ¥×Â8’¡x˜6c ~›lCÐM«XòmÍfm°‹5UêäµvA'oï$æú×É&YÓ3|ãÖª¥²="i‚ºØ›¶38Î88KU0úÊyK…6Pr%¥.uÑVœùoD1äûõ${ÖCw…â:žŸ^gZ£{¿ìýþ/6˜¬XY,÷CókdF™¯²¾¹Áa鮸ä/YãKo °Œ3¦Ãî½oèú+0`tqxÒ†ÏPÊ.Í*,þŸƒ©ÎçMß“M­w8D·yWGÄ£t¨ù‚èêifjƒHç³Å«ñ½58Ó0ÒýÂ/ËЪüÀЀ0²›#¢+ò™-âÿñ«Gç‚«>­ìYè±I73ƒ ™V¤3i,8W‚ƒ…8þOÈÒžõwC”ì+ÐÅFsw»Éaš²fœ»ÂÕ#é\ÑøÐ ÿHwMfØv­Þ€c¼|ª@Øp¶i®*Z˜Ð’º¼Â \ã)u²Üc€Y¯9ÐÊÅ\ÞSÏrÜ`¬´o”xM:f68løçIci©çCh¿(7Vu7Ù=ÛW²Nè:Þc§Bèݤƒzñ)›xÂFsxáüwÞ=WÃnÁËŠßwM")Êqm_¨*ÆÑ ›ÄQªÑÕ¯šÂ"ç¤\ÕUˆÅíb4mÓJ»p†»n²„±ºÔ_îpÆbðí&·IzUÓdÓza0ÖΰQO)9YØka4€ &ñy3Dè¡Ó³•¾Mžëø!XwÌef º°–«Té§op‘ÛB\ó¹ÒR€$ÊgÿýL©Ç\ôm_èˆNfæNgÎiê~¾§®y0nAIà(ª-kAc/—_É 1ãö!ÁurMâÀ[êj˜,*ñ›ËJ  ¶VäêR¹[¹<¯»ECΆ7‡Ó¨¿Ú(ø{)´‰ÞÑ{&dû ƨ&Î „öMÙÁ jê[3îtM.È£ºã!^ 'mAÉX¶Ñ•€;UètÎZV³Ôðo &_6æœgϬäÛM}òZ¹©hw-_Ó'YSÏ‹ÇY×ËœUs»‡©s½HŒ[;|®wÛÌ+í6pç¼ÙKW§‡S”ì'!²Ϻ(~š„g+Þ÷Ȳ¼n“’9aì”Ì›ÍôïÚÊxS{ÀÿæopýÝ àš"¬Ä›ÃK#OC,R\")‹¨VDÓúbÅa]UÍœô Ö‚»‹•S=½¢cÂ~q÷!zcÕû|±Pî(»ûj=u¬Ïûi2.¢ÁˆŸròÈ uç‹·OUG&MÏÇð:;˜ ×ù•“B»Ô!¨ƒ·ø§‰Þ±‰"°rÿö Ò±›Û¯WY2þ×Üs5ÆÌ«”X¸ÝCFm;ºq“ "9ZæëœOûóëB7´ß`EQ‘ÁÇ6/ùR°,¾¬?\C㦎oVƒÅÕERRðsáF7;o7ÔG.RÇHÕÒâ9]¹ ìy ÷G&TÕlmôçÅÅ`Eîdƒ“CX”[ ª’ÀÑiy¢9ÌæIÝÞ®ìÍEn¤™ñj¤pè³ï‘YqVƒQ(Ø5Æ5ÅÝ,o‰2Ö8G|3­­š òanã88Ý[Üb°®æ½Œfw`¥¼_½âe£,ƒÕÄ¢bzá#š_©’5­K/¾¼:B ¿GäôUғП‚†[Xd¸3°’Ýà¨_Yq³7 Ó7Ó+ÄáÈå’+j48¨{ þ–¨"Y‰PA}·1:ß3‡ak‹à&ºÂ0fÉXÎY£bÁŠ oÈ}ÿd¿ïAEgÛG:|íK«ÄÖ¹âßR™Ó¥0Þ©Iˆj ÍíÑIÀ\ò®i÷¸(tçAxûb²Ùـ퉫|¡ ŸU¸>³x z̦·ëH–½ž£iû±í|ö8^÷2Ï¿G’´ó(×—; pXÅ´ó&Šˆ1󇃾aŠ’5©lúó9â„x™LvŸ6ô ¤ѽÎyµXšvavª#ÛÀ‰ó‹T—ê™ó“„so;ÝD˜·°×_3Âv2Ö6ô˜œ~d–G'û^<ø¡535u·üÄ<ì»ÈÔêd F÷ǃ$‰ò9ЭÏL´»æ>}ꃺƒ0à–d¶·ÔâË.‚VÖèáÞ¢CV*ùìN—›Ý.3±÷9¹ÄÃQ^ü»›”•ÿ^ŠÉ`A~©­± ¿M®Â,ÁœÖ³,¬_šؾ”³ 줌ËÈdY³ Çœ¹oH%¿®e vz©§ÃÌja{—%¾gpCJ#5B˜¢Ž~˜üÑ*{Tq¾»ŸËÙã„ø ƒÁ³ffZôà¾oTrTƒY-%`lçß;Cü´É߀iL–—B¿‚„z+ù4rôäðtâÞG×&°6§þ¯"sópø‡­g/ÍŠþØOcE ìz>ø5Xß 4­g%¸[,å„'0DLc|ÄË딢ik¢ @Ʊë¢Pŵ 3\_õx '• ,~P«r:·Ñ2'µ´ ‡.[¶Ú¥DF„<#ÈGò+€ô.i‹8Få-‚{µé2wkߘXCwô6âS}Æ÷˜Í¬ÌÛ^._x!ÌÐm7Ööj66¬W'%­tW z¢—…Ö ª·±¼3¶Zº¹XÆÃè|Y¨-/Cµ·p\ÉE„84} ¼mÌ+ÿ=èg71Xg`Ùªjz/Ì<¤Aa¨&§³áøY¼d('×çdq©¨-q<ð8Mž&y}dPV`cz,÷ˆœ// ¦±a`9}xÅ2 ›*ŸßWJœ MÎ×ÿÅ!sÀÔ ²^Æ.Òwhz?Šº1`;Ìï`̯o+•k-Ó6FÌ —åço´™Ä]\E;É­ÞÏ˾5f}Œ É%ËAœî‚ŸtÊI|î@ñòœ8»ri<høÅÑ ×ÉB‚À…»¦`;TW>(8%U!÷Ejø±€(cD.ÅœÁ€H’9ÇZD£ê'B0ÿÍ ¹äÅ·üX¤oQª˜¼eàü/•ߊvyùùa¬ ŠîLæck:"áX¸Ði&Ä?­GNK鼜yÎ,*3P8ò¼´Ä«õF üžþZÕ¸‹¹Ò3µäì+˜è› Ø´ê ×uò/Ô[¥¯UÙ|l?V£»Ëv ùÔÏ$2Ør$^a›ô¤o»ìä‚Â~bÇzl²/–ts¼Î§lcœ%ä‘AÕã«F;“Å\„Oº"Ë"Ñð6ÀÍ6ºIh†UÇWÙ`q‹Žh¡†÷qx d’× ¿ÔÎn?¡_ oʃÝÝL,;Sñ™–ªq¿6Þc¯¢¯ýãÉTÿ­“JDøÌ‚SÁ1ŠÚËè¿ù+Ø|r§Tˆ¬}^JmJ8omÙ»Q‰_.!½µu0>’úÔ>‡àQýŠf¸æƒ‘U)Y=·úšäßœ­ñ3£<“s,„i¿µ°±‡7ƒB‡5Οmvoñ¸fï€ÝÝ$[QéóP;²ÅÛ}«Q­Ÿ·ÙpIÅ,«lz 2«L‹íT²è~pàX¦:aqÀøú\tÉY×ôsÇн=RU×øÕHs¶:Nùº—“JF€ãE„ÛÑǧ0Ê*‚¨îúêÇàþiO•h>=/»oí†è%_öi¦Ïz GuŒEµä¡TÐb±³ÀMa=ÀÙ™¨yüêCÛa.Ó7–ø©zòÝD­h’ä ¿UUQ}ðîûoýÍàë¢KqÌH²•k¦aHß[˜/–ÎB€š‰ùÇ‹ÁQžËˆâZz¼èZ™ÇC`ë3¤@yþSXØ$ì"ö©´úBþWÛß-•zJï”(!Îù÷2ö&a¢(Zʇ§ Éí§ Ynjg9jt~xÅAÃÙÍçN1YÝ‘µÏsŸsäÌÕW×ÂîP±¢}Œø~m:ÙÙƒ%-±¸ˆ|Œinù´ÃiPËr£‡r¼XQöµŽºàJœGÛywˆ6@dà”kG?–XežI£GYù½€ù·II\~FdÚ‰z0¦'ó,ìëÉ>Á`~h×É•kןG âüø\Y, ä¬S0˜8DcõÉ×^l›»œèƒöˆS_÷tjûñ ¬žpç¨MMŸÚÿ¼œþ5òRÊ”árø.~RZÏÖ‰j€ÎWñÙ+†'=0΀Ļ‹¹ ‘ìk´NÑÌT¢¢3ü”M´Éö1éø.Ü¿Ð[êGûM~%6SgÙdùÑï-k¯Ï[¸cOfà6󳇦~ ŸrÛ»l ®H7Á(†ãVë¬>âÂW’ÿøéòÓÝË\RÅÚ} 3¶éºz÷Xì ³DÊLM©Äÿ+ &Ú?Gê8>Ñÿ *ÿÓÛ5CZWÓúm@.§‘Iü8ÿ•° N`\‡¸Ò÷? “²å»$—½›õî°}–‚½1 ?Rù +tamÄi¯¶Ç¬ƒ<²à©WÍÒM”òpF¤J¤;ï¾¾™GMï³n}“ëçg Î y¤Šù¡"KMw wCþ‰Á iÎt!gC£ˆR`ǬÜ'5NJÜjšÁ)R$§AV>Ú²òìJµ·ŒÜߢOŸN–Lúhž0IÆÖK0bÃêŠMÞ\õ!I€ÀV:¦ÍòAÖQ¨ÿÛ)T'>$š`Z˜¨ÿ'•`û/‹÷ÞS´móô| M0–磧®Š}TêàÓÞ€˜3kwüoµ{-«Z°šÐÇlsã°Õü÷ hï1¿¼`ðˆwdmè¬VfÛÙZšÕ•]_ëU?Ž"ù.ñ_¿ƒþªqÝîü&é¸ú7K[‚|åbÈ‹5ìnÉèGþÃÆÕ ý¯æ´„šìÅS¹-nö§¦E{äÀX81Eáµ:Ôþ8èÕ/õ1UŠê]ñò*SŒÈ¹õyŽüÇ}ÁÎ[)€0*m¯þi§ÂêÁº Uô+q¯PŸUÓ yü7«ú`¶Î­ìÊͲ–"–½“áþÕéͽðr* öJÁ¯6zºœ=ß &d?0̈:yÄø0õެ!ˆé&ƒ[ íÜÍšy‰*»»ˆqaHü.Ã|ཛྷë1Äçäj#Êël0 -ïxyûQ+璉ºœbð5 'š¡<¿.z¼tnôÐç» ÷²ä®±½œê‰ªÏò;C`v'Ä„|lýo¥[P9‘*—"P7¿äÊó; Ǻ Xà Îxտ𠦹2 W&T_Gа˜¼c ×¶CÈ3§ÕbÆ×¼o™!ùúÙSÊ5Âx!Áü]0˜y¾ 3lóð섇Væ3´a¬4·Ÿëì²í3­Öó ‚[i¿ìÞ£pž£1+ Þ}‘Yj’šë1ÀD¤ô¦”_È(;õ¤©V .Ñ¢¿Èy¦`þ.MÒésòÖ­f¼ÐNUuø¤´ü^FªÕ[]*ZC¢6‘&8(º©~æÔ”õÁÄûúù WO%±WZD“»¢Ö7k_î=3 5u‡ÜTÂ3UhþÀOì\Ø?pæ”–hgÁã90æßJ·)´ ì –SEsÄ…’~ÍðÑ­«[1«¸0qÿš'kÛžt³1°˜ƒ¹ùýÕ®¼r~ÐÈáÙ ‰Ši“Ìœ»‘Ôš,x4©#'ÁDüîE]lÇ2ùÑ &¬ÉòL’»´½¥µW&¨úVkÒw/¡nÊN¼Ô´Ç3¥ŸÐ~ ]x:º‡‘Ed~­tkª !»8›0¦äZ‚ÀÑ~e$ZÿÍ;É/%ÄÔxb=Mñ)îçkòÓµ•W°ò;­ çïW笠àMØ•ë¯,ðü†fš¾ºT‹ë5IØð±_‘VŽ߃¸U¡  ë4šÈ=žU›MÀ[þ®³äæ°1~Q»_ææ×Mý¼Ñž\ƒYʇU–€!¢ò°D%À;A2·ºIØÂù9RÊa‘dŠñ'…X”² ›õÚPN„ËÛ¬µkG¹@´¢C½K,âC_ñB/tN‚íHS0·¢ER†…]ƒñE۫Љ«L/kqqHj3Õ¦t9cUÀæ*Òj,¢s‰2<òœòºÏÃ!]Í@Æ-.&U€x ;.è€ÎYW²j8*ãÎ…}ÉØð¹_¿¿µô©W“îwÌæõ­Æ ˆ¥,Ý;3V©+è†ÙÙ'PÃãU@ûnZ¨س‘EeKÁŸf°|ù¾žkÂÁ,²QÝG5›/d"5Nªå”´6¶¨×¦m+£²þ‚˜xü„Ö´õªÕWøÅdãqLòFHÂLõ#çýwVΜª‹ò’ˆ®½fDá®_~ÐVä¤%ÙiÍ#c鬕ÙY&3ß¾=—ØÍ]΃;ádCm5ºþ1¯ ñ¶]XiÒî1µë)¢Þ!ª™*µ °A ­)ð³ó{v¢0‹C‡âà³·ΚП‰]õ"-ù÷ù‹¶z ½Ka®ÿË„@»|S½«g5Å6ó²é;×yÉæqtÍòú;ŸqEð‰ä#*>åÔ‹œ6NÌÊEˆžé$ðóÑc+<Êq¾Î•;ž±Rݺ?gQ\¢\"Ϥ/†¹t‡ÛÑ«û£È®¦ÉõöEFãÜ µqHŽg•Þ?xüŠ’«â²Ý¨¼8ÜÔ}_åØ ˆn"UÊÙÝ-õK– =º% oä„/ödÒaÔ*››ô_nm‰›[™§|F/e3 ~Û¬lÉ `b]sê©ò ÖélœØ?4YÞ?K 7;ý¥ á1'åC×–pÕzÒF]ÁÑlc·50¼\:Û;xš•ÊY¤y,¤.“YA]‹lBe*}Å_^ùºó¦¨v½‰€4í*ÿ"¨›ê‚ãV$cW“0ªWڥˢL´trÅQ ëNU’œ¥ÜÁ’[ßÌGULƒˆ_‰-€îaö!ÁvJÐBñ$@9 ¬üëŒøƒÿ@ª,å.U²n?¦³T ¼Ž;F`3†€!99ÖŒ[X@PA²Èå¥HϳáˆS¶G§Ï÷eåþkõ‹z+dtHuj;}º‘Bdµ)½;ìëq‹Iò´Ä¾?¾dˆ‚Sk%Ì.?èÖ/ÀK§<ކ!óè‚R¼°žNï¤{^¦BÒªb Q6M†ýº®;gXEö„!ê½à•.~ÊÛlµ¨\@±ý³‹Ìü–ŒÌ'Yf"ëçg¼Ò¿ÐIh‹;2-?•óÖlúw¿ƒœ];°Ù|2Ÿì½¥ ®òdâ´nöÅt衯¨¹2ÌlœZ¿×®»!ÞˆÏl¥!ìø‹_p_$W~å9rÕõ íg?<Þ3§U'Š‘Ð¢ûxc õ”‰ûŸÝ RYƒç¡\©aìØ©|éb¬;¤úÊX Ö¦íªCð\뵨Ðá pX“x£Gè*,¶^4Œ÷Ê5@â$yé°={í0]ˆwÃoŽëkj¶"žn½)Ûa†³'´=F¥H6Al×7ÂÁ ÌîiÕ+¡ã¹ðƒ9:æåXrcÜ› tß¼ª1&銙ŋÒ¨A3€o„lR7^·ÅÁ®—Ë)ñÊm!Ä»NJ¼~ô$\¤Ì6ß–=cf¢ÌÌW:Bä÷¬RRôïiÙPèi: „J>½ëÚO*yIOjŸe´mY †ã“ß?Úz­°”´zíp(ä>iˆ¶¾ 1]–Á”ë–ÒØ½ä¶æ†?ò¬y·È$a†5ÙúŸ?:ÀÝnr¶ê‹¿ÿz™[Œ\Žb[otŽÆÃ¥(¸•Ìhx½âÆ!_JšP¥+Y%Ð5ŒÀš÷ªoˆÀŽ`šáµ«.[lwGDŒ‹;1W‚PºäÊb¡Zø{–>¸”…pŒxW7.Ïį$¨à×T|T&r¬?ò¡9ÊßÅà{ã?+rƒ–:;0m=SÒЮZ-7>tËêq—¿I—ê»uæ/¿0›5LOBaèi¦n±€‹F¨±Ô ö†4@^ÁOŸ‹NäGQx¦yëµkæ+…†³Õw‘€¥oF`çÌòáô%T‡ÐG¯©«zØ4c,w‹'wNÅ7+Þ‚.i»éˆeÙŽû<—¯ÓŒÁ“]:¢Ù´n]ŸŒ?—Zcê®)›Z­6¬nËsËø$I¿?<܃@(b ÛTÓNî KmÄ÷˜©ÔÙfBO­¶oÚVœ{jgЊ–§'-Eâ%BeX²'ú‹›|K¦Î ‰#•⇅@fV@8ýÑé±Ö‚¡ÒÇÅx¾âlW?㎂9‚À~Ob€×}·+¡.«¨¸gAíü“~ÍRFՈѠˆýÀ ù´“3gcŒƒIœõ/® »òYÅŒq}# Lo›Q™tÇ66¸–ÛúR¾:‡ùÅíÛSt=m¶LÚÔkf›|zÙŠ$†=ýò'Íoä5¢±„u- à‹fR>Q¦,ôݯú«DU_L†Üu)ÕŽ3ë—6^yY`o,aq³ê婇;w“SŠÍ¡GäŒÍS` ʬ¾"è±Ñzàç>©H Š¯У£­pE08ãæ«h±ž³>|ƒ3ÚÚiÔ¼‡ã‘t5LÔï>¶ í”fªÕòóýdˆ{ÆÙ¿V™Yr®.h§èY>NÚ^ª±¥6§xd"ãúK«5cî2c+f¦+ðꬸ>z2¿2[:tØÏø¿TTÝUlWä 'ᛦ îÄ ]ôÙÄšBXr½™¬`o"£áƒs3Awi¤žög‰R£’fÂ}r\ÅYFgnÖJˆ•®@ZÀ½0õqÐ,ÿ«t¦« hZÖWWFò š·•û÷‰¤@wÈêëËsÕòL2@¦öN¿0h“+¶ Q“¼Ò„Ï’°!}Õ·ÀêrÓÖ!Ù“|¿i|ûxñåx» tþõÿù\qJ,àèÛ£yFÛ”ÿ+·ä~t–ô gO£ôÌ×\@øÚK›ÁŒ8œæŒ¿Wàý¬ªnŽÜ`Ø,|4ë_¥nÈŒÏ#”Á¨'˜Î#]M¢la ¥è¾—Tãô¥þ ʦ«*ôt¿Ñ§®SI‚^ÂÌ.ñÍËõˆI§ ,ŠSo~åÀå™ñ sµæ,iƒY9¼*ëTÊÀ;JÒdÈŠ‰2ܶ8sT\Z¦ÚAªõj³ñþlf ú¹•›]»£ºñ0PÚèÝNƒhi‡ƒ S·¬ÇDŸ-1Ju!оX¿9èm@d…Ũ ~‚WÖÄ,k [[¶—$2N<†ÇQL¡ÄI±®þÈåó¢,n:®Û9(›faµÝ ±˜f"Ù”¨Z7ãéÎÔvõ¢R+H!˜^/;Ô7»õÆ—qÒgqkº L¼ì72Te|µ{ !YV3—½!§’^E˜W-í½Y…Ú=Ô¥úµ’’ž¤ÃÊÈÉp,¡×C”«H)f`p7Íîe_ý2ªx£ÌqE{`*=K„öoi)>·Coâ¸%?Ò€ˆŒp9ƒÌ«> ××ï&dMð{Ê m5\WiS}%*Pcäú‰cVˆÐ¯L7Ä v+ñÇzŠnh²Ò3 - <åëz’@÷æÉJÕÈcl¶ùGB…a‡ï5ÿ#/…¯™Q²Ó.ˆµôo*L'GºD_ùXäÊ ÀÇyñ{I›Ã~¤ª}¤7±"s\ÃGùrö"÷Œu"œà²Þ¬è åU¤"ˆÞ>ÍrÖ| 2¨£×-ñÌ’k_Dµƒ¦À|u¬׌1WS[rׯµ lXPý¯°NHÃ*m?t˜çmqi"Æ?ŸÃ»÷Ç=M¥)\ð&¤,Såiˆ.’¢þø'Vô/]ai3—¿Ú€Ù Ögk„>QuB«éRÑËƒÓ ‘’!ßìŠâ8ðLQžXFœÊ6Îøs«ÊŸà´Èh ¢ò\uȹKIO»9qø §#Æ\;n_©>œ½ *mGók{=r™iÆMm‰ÎjÈ&GsàKAKêwŠ ŠK]NÞ Á ;êû_Yæ7‘¡b²Ø}¶K• ì [„ ¸‡C,rÀ™Ž0©Xe@¤K©ÝÞüIŽûÌtP9vyìàQß´ ý½{¼:¶ýýÓJlY«ÀBAS¦Î, „©+¹œ¨¡êÂ?¹ô=Ü%òó¦c°“cu±[þ]ë¨Í!…ã"2¿Ã_é´SÖé<,L¶£aÎɾm„±Saêa®â³k{1sBÿ‘?ÏÔØa›üHõDdàˆ_Kà€™Ç: îœÙ”ï'âg.*ˆÐÏh ôá"Ž~ܸâÔ#ggþå–”?àÏàÆ­69ó±w¯Ã7ä~-à[_§6i”²}ÚleÜ€+ã×ó”sE’¯Ø@$ø0à<ã“àJa0/ó:S ,oµuê÷À)¾ ïàrc½ºË˜& «Ü‚mΕ¡‰h0×ósça`) uíöEñ@òHv¶"Ç×@"²’$~M5¨ÌO}Nû‘Óß¶fwFLq[™HTÉ`ž›FAÃ=­Ú|óá]gµ>ìnF…nÃ5¶ÜaÌRüUœÝxýh™VµK§ÔàÌKrÌ\dSÆ)!Xv¦¸åKˆ…wšëý™ÁbÂèîæíkšç ŸòîÏ9Á••µËÉAû¸•œÝ.É¢ï3]'¾îwÆ{ý<þ&c£K=Áå¤C@¬LASÇyZiɆžÛ:­˜ÐlIz>x¤%K-Ä?[/n]¤Âó‰bå*vO´·iKå%$Ufjþ¿ŸÒnƒíÛY ¬OƒtÞ–?ûe;ÝÔÞæzþ¹œ,V¦‚XÌçÁà)¬×oÛÛ™¥‘¹"åƒ'¾úÝI uL õ² E2㸃洌q6ÌÕ}ò¸5s7XŒHr33ιÊWcö,kä‹ÊǨ0j¾ýy÷Cœ þÚ¤¯$ÇŠøÅ·?|­¼@M@ê.Ë=èF}Fò;ȶo‹YiD)¥Ð"bæõ²F¥ŒÈì©Òo­ÞàD0ÆOf´WÝv&`&üI!"VÿÅ]¾šº1ÊFÕ·6‚Ȧ%)&f3$i„÷+&+ÉÜÛh1e«øòÛÖs’ÔF3 J¼å­ˆWTAºØ™¯ŠúVoÊ^ÀE~`ùöìi~xBÈæ·¾{ï ÄMrŸ–Ù¾•R9yz¿i•ષ…hë–kmY¥Qã÷×ÈÎÇ ¬M-Ýžï¤<Ÿ¨[ :ûÏL¹$ð ­œf½¸Âx¼=‡d$\}ú\ør7z4ä ¡†dhUÒOùÚßG ã<ã–¾,})@÷~[{6‡‰Ê½ê¨¦áýÒÙ-ùžq–/ªË˜ÊïVPé×cFûBDE6eô†ZwiÐòù3‡¿1Þª‘¨–œ¨æ@ËY$`¼ E¾Ä¹´ÃL:—syδõw)8M>lJ~—zêFÉêm0E±3¦ºè^Dr²8<ð´ësz}&TŸ„µÝ§^Å¥¾:RHx%¤1ðŸŠ6¯ä¨Zy%ÈÞÝ2h—=Rµ¤˜ÆxË_vKð²T…/]\˜"0ñ¾ZÊ"`_6:‰Ò.~½/˜èŸé%Ó°0®©­§ÜBÃbêü ¢g¿Ã[\Õ˜“‹6¿!‹³§ ônäŹ˜zw]-ôâŠvq“틘eðú‚ZáEчu ™WâĈYõõIÞFê‚<©Õd&t]…èoo3–~ð5ŠÈÌ;Êþ/’EÂÚš?(±]O s=Ó«ê2ÀRhó œ-Q°¶´9–xý‘ÜŠNHQn´jpÍ!Þªµ=MŰyÀ¨-1’cJPYˆ™CW*k‡ÄVºÆs®$ÊÒ­d CQW°fB&Ž1í6Æ#-Edbº3ó5.•wn¹˜†„‹*;Ezå!N°P¼E§È3î5ˆ¬ûR»ÈÐL`Ã,›šlz÷ˆ²¾œlºš´ü5"=‹ l¶.=1—kg.m.=H~’L$_"ÑÆ »“߯õ"JÓ0ÌIĤR¥Ö®ðN׎’_¨F™>&O’Žäšiº¯fÿÃ3eÍR‘—!]M°|=çhŒë‹2%üèé©€àdÂqMÀ$(ìÑÚ…´ÞGìgBg¸”ŸP7×"Z PÊÏeVO”ÎWIö¥ ‹ÔÄON&Î:f8~6Ï5ô•U•$UšKú6²ùúc2A¸šo:O™\¼<ŠyÓZaÀò×ðÖÜ”ÎL]¤\x³@å^Áî#ØN¬v¥ ˆ¨½âe®‹|ä<óìÈõ¼\dÁ¸€Þ+ª60.`é›kÏææÅªöH¬õ ¦^mÈÒ¦6d›èƒ®,ìyú·+³¬™¶Cmw™Ž±RóáFg3:Ü!âJèƒio 㖦͹¯¥ËöIg̉‹À¹óJEs.Ñ@ò\fEäÌÌbtæQ_£÷ò®¯Nu¡+ðl½ëòT_}0ÒÒŒÑ>7Är®óU £Ø¡ml!ˆ^®2÷’,V.ÙÞ z=Eð ÔVƒ}—|@f²Mü¶‹ÓºЃi¸¾ƒÜ¸»~}“VË&©¨/=Ææò =^΀A"Ó 6аº³Ó£Á¡¬Ás¯žÍ‚ÙÍ ˆʪ€¼€ø=À:ÜQ†JwU"Èp¢z9ŠñC¬ÊÕ1–zï^A¨@…¨#Àª¼àÀï ?NX»¿à•|Qá¼7¬ M!r&)*ÑO7¸ˆ2Îr¢CVâÅe0=ÎÊ2km=„0-tO¤þUÕ¸9-KF[ˆ0Ry %eÁ±|33ðÞ‚ìÛ¼‰Xû ^õN‘ÓpŸµHî¥ý¦ ¢- ‡äÛÊ-åÏ#iâw.™‹nêæáâfЃ»cS3ýö½‘u(À¸YT¡$Ùtä8TYæ f9w ’I"}/on†haç…j}̪G ê¾/Ööahí =A'¦È•¾X¡‹ÊÂŒ“ÇpâÓ¾` ©tjÄOP¼ý{ìl}å(-ª-†¯õgz¨xŽ$`Yu<d£´ërR)Îq¯ ßÒv_å• Ë€|‚T™Bwµä´ô#VÔ[‚¯®º÷Oñ èb"¨´k5òª¿BÆ:ÿ õK&qó¾Üʹ1„ ±÷¥ ¨í'¾Nxûç$uY§‡Èý ·Ï̤?ïó3]͈gðœ€ns®¸¼ñk2˜èC•lN]5ÿ ̼ilJfÙý©c7øñ Œ»6!šìMŸ„ ý^I£2ÅŸb^,b!­L³VhɵÒH½ˆä2óùHh|(ý˜ÞN¨K9u(Oæƒàä«B»=„e8ñ~û•uˆµ¥˜dÕñpx÷Ç'yΗ˜³êsoåH÷aŠ>.h6{K~Œ.Q¸ÕñÿHyâ­ãcc¨Q|Yòš í o*ÓxC±DcEÌ5D9žÍ›n¿_œIƒ&>yÿ†eþ*^<Ø®D³ÅË ]4Ã~ÛrØgçnd$¦2¸ìÓ8dÿ‰a-Ç2 y¹J¥\„¼¹Kµ2ñ8»",¦‚¯·7í-gE ;WžÂ¨?HòŒá@gÁÇf„åÈ—…„H Ò!aéyd~TZÆ÷4F¸«úP.ŒìüŠ üdÈ2b´Xyùu"yJÆ×òÛq|©@ W·ÁIùÝ Gìå6ô@—¥¿øRû?^xk‡š´36ƒHЉëJEKÙ€J/­I]wÄQMœµ¥ ÇÕ=jöZ°â)›PW„¾£&F÷–6è…ËzT͵i”÷0Œ³ùÝ™X Mƪ8—#þüÚ|s›œí?µ6ð!#¡ûøëaðþ/“ŽjÞ{ ‚·ˆ˜àáí×_Hºîz[ë«é€p“¢ãÑÖMއFù?«Ó…€yHÝéß(L•¨:±ÿ³k ìë*Q•·<ÊØVªËÓ¤ëÒý ȳö;ÎàG:$¦O †T)ÜîoLFe7Œ÷<¥ñüٺσ€s Û.ÄôXôdHÒ4X‹†ªn%ž[Ã5¿_^š3½¯ÌÈø¢™àÄåÊGjBÚè 9†æ’²¦¶¦“꫚FÞ"Œd³üû²÷àÆÕ¤nNègûl±«´Ì/ ß—`±¯½D‘„,|(I¥å´"õÃÿð?Ü(¯/ í Ÿáò*—·ƒž¢<ÞÙ;¿ÏpÏ¿àsK´ßXý¾ž>u’cìU\Qô¹U|Õ'>í¢#T¸5 Èyô~*DymsÙƒnuWð(xégTñ-Çå]—$ƒ}”ò”cSyÅå6¾à5ÌöÓWj>‘°-Š.õ9q¶u{m½¦Ñîj¹Oç } ƒµ•âÝp#/üµ„õoaÊr.;Ý F2»z¤~Céܬ…Ù~xÕ? lZyRMˆ"nq%6Ëå ËÂÂM¼l¼Ù¼ì¸@[×*R4Ï«Sgš/õJû}›;¹ݙޒ˗wÕúZùXNÁèaçö̘C…˜îžP—WU¬J+úP{Öx€ Ú\©uÕAL@XMPÍ¥é1p™´ <þk ’[oG`hZMä¾pÇ7ש²[j•ÐT{XDˆ ,Ì©†$¦œƒ"¿¨k„ÒgšÏš¸Küà÷]+ÞE_æF¿aÌsŽIÿHy6Aï†oÑÑéÉß§†É8«UáÌë­HAW1J9¹s kUGm‹ãqõ8ѵ¸|½‹#+6‘!"P»ä·Â2j§"FåçÅ6õ7¥\¬|jEKb]úÇ x‡‰((¤HC†ž*µ•¨Z*±Ãÿ^ùÌš-zÑ5Ë++Í®™òÉÌú9<ÍB€ƒT£a\ÕèH¨'‡ˆ„èSùtÛüm)q¥àèDkäÚ¶l†5í쩦Af¦Ö¯ßŸÉk•¶¥µ™a8L¥røúù9£yàž ·¤øâÍ1E×Ç`?#ÿñà`Ã¥J"¹Oe×;˜)5kö[X§¼ÖyÉÚÅU˜fw²u…`ÞåóÔZî€Z#Û).¤…ë]² ¸[(¯NÉ@™„ÄÅÖ6…2¼- kANÑÜ ÐtŽ–òΰ7=E=ú¡Íîß‹}xãm­@jY³(yz`¶j™é‹èb͈áC«¸…û «¯d-ÝŸÃg}]ØsÉÝŸO[¦Æ·£œ»ãç] “ðäœs©#”HíëøsឪiÁ®F/‡Ó;‡ÕDråô&bä§ö1u¡zâíÓê 4¿Z¼]«4PjPšæ‹ÉCŸbw"¦wf–«·–Ýp4{é8ÔDrÁð>Æ®Éé½óï%r›Jd~âݨ4»]ÙP¯è…2/¾Pa÷šš\ûòVðáÓoZ„+ì—ˆ's%ÕBçš ×îú^Ðpm=´×!J` ±GÜsMD=:¼_\>=ðPÌ52 Až®¡˜c•@ÐhC) cžv[¬Í«nýL\;xaIñ@ŸGî§ddÏ€æ£}âÍA‡ñ Q„üè·€7È…R¿ãM‹;~v¥¢×dßnIØðø–›7‹ïDË3î‹ëR9ò:Š˜pë ÔU3/ Fì½ã.D’«Øð6vÞîSBÐ*MOÒ£8ƒª¼ï¡!Ó>“¿¶@Î"Ký/JZïf^ÌV1¤ÒÙßÊ?®¶ýø¸:9ÝÐ_ßÅ;ró›o>»ÿà‹ Þ–È~€|´ø_·.xD³ªv/VQôOyH„ðŠ*µTq ™² Ú‰T¼7Pûô:ÈÄžVìýîiØV+àÝ,RŠöÍŒói Г͵‚Oô®0$ W)0Ô½u”¾h¤ RèåŒ]Bâ‚2‰’F}!òsýc‹z’›Ê¯ŸT!TuÄÞ•¥Ôr調0Lcí“þÌpÑš o n*ÍŠ«/ÄöY½È\Ýï¸X¢^¸sCÎ ~Ð\¼Âç+vyÜܸ»Æ‚Þì Ь(Jþ´§é)âÓg‡Õ<©ÑÈbOG®x4)—55WÎuæ>õªº#Íæž­Ø [k­*h5:êà(ìj¥ÿË_ŸåŠÌ°©UöÂë¹ÍV¸¢`±%M‰Ï·æ¶åǤF#„°>uèº5cPľ_ÂЄv‡‚EÓX5×ËÎEØØ¦#oXŒ…·8ù@jUàøÂ,fÀú5$%λwKÅMBÕÊÛùZZC£Xûn6°¶÷ôp‹×è:yâðaC|ƒ;ÞÁlRÔ›2£o0m[4w=HóÁ‡22[Åý§jÆiàû½ö+ßwI»Ãt4–5gÑ0É?32QN©¯Á16ÇCWمدÀBO•x)êyÇ¡Äßèd¢#›Ÿ`˜†$¨Õ¨Û;д²2G›ÎãD#°WÙœ‘Ècò^!?Ôç{«/| ¥Óy!€¥ë蜈ɩ^mš¼ŠkÕ²F™iÙSÌÏÐ>ßלüçó,Àõ`$¯Ï]‰+‘ž Œ?ÚFôì¿1¡Z€‰ º$Öœ“›u÷H¯Ž<=ˆ;¦XæÚëÕ|†š”YMnv§`-h­Ë"(ïÛs¿Nêù½×€É:S»ø«’}m õùãªEyl@.—@ò´ƒ²iÂR J2‚O\x'ætën¡hE£ãÊuâ747‘pUµ×TØbª•ÕX¥ù:|ƒW]â§ax xpRé ÜI·²øU[=†¢NÚPµˆ“ÅýÒµfûã©V–ˆéçx,$S¥©jÂÏÔ§©sËs—°%®Í1»åv֊ο^XpÕÌÅþ¥Î1ôû»lÄv¨šÏð1ç[¼õÚU/þ¿«5]Œ³®“¡i0pAï3 ÑUuY'~/.¶DÑŒoµ—r18аýÿ®€î[v­’óáxŒ÷‡sf[tOA¡´ÒïíxÏ€t'Ê‘%ÍÚqÎwÊÌcMû„\~gkL¤…k,Fµ¾<^')©Œ’XSÜœ £5gFêÉ-ÏÉØ¹É˜j¼üù™³[{•[­ùŸë|ûMÂîu Ìl°Á?‰Ê £|Á›xmØLŸ¸|j þHXÒˆì§]š9w2˜4Î_Uå ÈšÉÛ^áQÐ×5¤! ¼€£]ò”~ì³·ÔjµÛ¡À¼J¾wF(³úò–©´­810-0uÒ ÆSŽjíÐóeBe [ðIìË«Õ+Òmtœ†}J&EO£IÜÈ/³ 8`¼,\LM]UïUÛq?X´3u÷/›ê'ùgRÜ7|Ó¯E}@K…ƒž—Ež4fŠaÚ*È™q6*wɤ“‡ÿŸ µr3y„Y*ÅH4@¬*Æxc¬çÛ*eѵ‘=+¨‘ãS:ìáÈ+ßP|d·“¤œÔô·Hvb…jKaˆŒNN\ü!‰ŸS ˆkÕ@›÷ߢàÕ‘µY¥¦Ù†0·0 Ü„Š*˜È^DÉFÕ—ÃMPkïn8K7FI›ý.£~“º+-lÁß(ÇY{åð\.µ-úE’¾]B(oãØ¿=M(ghLMÒv£Æu‡Žk“œ~A”•}øb´Ô|êðz×ßÈ;‰BÁ£1Lp—ø9{$)ç0|b­rž†åld€ñq ‚m­CÄ)ïw½qôÝIÓ3P>Ãajð“Y¨<ÀQr–“ÕÖûMŒHг¹s ®ñ‹§8êt ?;ô-ÁªJhY¿šÎÆ¡ zë/³zÕdµ1r°O0ƒv%ÍHz÷×4}ºÄ[‡¶€¶@­!¸ÓëÏD{H)¾sÂúu\FjŸÍðß§Þí×ÙÉ•å]<ݧHŽøœƒ…ÿHªi[[ûXúpM}(ä À§ÐÒ5 skì»óU lÍ÷jÚØôø¨,¬Û ö+“6PŸøÝ Òú’ŸýŒ¸uZR™ˆMIêÔ`Ъo0lÄrF¯o™ú7߉®¦i>WEÚÿáÞ=èU8ê¯Ã²š ,.$¼!ºi˜ñ¡Ý>X)\ßœÂÇ‘¥´'ûüUTÛ¬ªæÞ–=Eá­¸êDRȘ.Bµ,YhVªíUÙ‡ÿàña‡^ E[>Ì|)ª¿Ä:öʾ#4ðdÞ3D±›€ªµ §K¹áÁbR¿¶Þ?©ëCÜÙׄÅG6Ͻ¿ÂÒø"žÊ'O!‘UAÃ>GÕÇ KÄÚ£PBïÚ"ðt¦™@Y´ÃÓhâÓF¸Ïä›Y±²•´|2y®è¼”žíÚ¿D«ÓØÚ«ºSúÄY¬Ïâ h}k’:¨h“À¦ã*3I7ÌéìxÛœdhª¯‘Œ™§Nªô´Ô+Ý\7È/Á »”[€®=ÚX»x~ž®0mÄd! E„Ú½´–5$vÄŸaÿ¾mÐEd¯GûÙÿ?鎰]Ÿï“ècKXaŽ÷+Ï‹œ÷ØÇ¥IR¶¸2“J¥©ú¨½”ÝtšùÛ:ÿlZ&Õ¦«j)…En(öR1ÜDl‰Ø®­Šks§ék¥¿w䣦n¬ä †‚qŸtK%`ê¼rD\R#N-ÛXã.´Ä}ÖQ%CÙT~ºÏÐ8½Òs vÚ±ÌIö“«zhù Ò`è¹=ÀÔ’j¸¹¬´Î~ÚÕ*¯Ø*–±œ0„"u+§¾ç‚to¾éP˜4gÔ,Ù¬\Üäo$¬ÎRÚˆ7öîÒ%Ý Ç)uõ1Ž’J“[¿½~d¤ ÂÄ3z"þ={ˆ Ñ;Ò¹aqÿ†Õ© TÂ<ÖiÿÝÔ56òÀ´¢Âc'Õ˜È#6tqOB¢BËiÄõ–ºW zôV㣶­”!2…/]AóG+ΧSKߌÎ,ÿˆß¸w „ÀFV¤>2u#'°úû¯B[NT¢õ™é2Ô ÀpJá  7Y(ûTú¼ “}ÖTÒ¯ÄdØÙG~j-z8)GÝN†’6–]nªÈšB,žT§à§VÅ.¢0¥ÛŸ´3Ѻ» rWLzó5¼"¢=šâ8“%Å-|t‹2ƸKXµ"yÙ ¿@5O;ÙH‰o«?ô10ä*ó*ù‡µA/¬x4jŒóH—Š­ì×J*dJUk׎ãÁÿŸÉàZ5PA¾¯ZKÀÐöÇÄ"T›šæœ€Ÿì$Ö‡0¹–°ö „R&¶Ù@"è,º*+—]ÇQ¬Œ³ò­Ê—Ôˆý;æ“ ?¿ê‡Ýä#lqýÔi(»4zÐ@Ó ëÜM‡Äûrþìéa Æòl¯ƒSxº RßhMÄ↪ mÎô=O}(yÞ…šºVGã4ý!LV%ljØ|4Ä­¥G,®ã$‚*PÍR¡[¼t‡tdSVqÀuÝS¥¨‚xomž `@À1ˆs¸“Ëç"dß ¾›5¾ÎXé†:À°Â)éÞ-×Gob òGL´Ç´¹¢uEŠT]o'ï+ŽâDòÓg8шG³ê=„dzcy-©FPø­éþ ³Ás!µMŸ»LƒŒÂ¬ÕÜâqóÉ––ÅZ%™Tð#ó5/BõÆUš·I 3|ÀvŽèÜ;¦|Ó yT>#zú-*p&'—gé[ú-db¬¸qûÌÀÀ|T:#dfå^ØHÌ"¼5uœ8h†9æ&NˆžºôN‹¥a`UõýYtÐöMå: ä‡K+½çΛ³qFÂnxAËq—½¶{Ü!(qà„'IÄ{W®x±I1í÷…>!½·‘îÙ“§Ý ‰~¤Êf£?nµ²¦Å¬FHbút×™Çëí ¯.J'àcE®{‹×õ©¾št‡t Áˆ˜½ßŸÊ&=wƒ6\'x^³¯Î:­ñ™qB>Êf@@ª ½l¢.‘?/¯ôeüO‹7 ï„Ôsd§¯ƒ›4(·Žµ—Ûãë2EñŸ&LQÿw²ilÒòÒ>ŒiWòeÀÒb¢fgH @|“ZØ Náæ£-ÌaIêUinŸyÅÈ73bü¬öêH2c¨­H¢½ÞÅSÎpuA˯“·®B÷Ö¥[‰â^ÕûºY¾Y$î‰ðo{¶‹rÏÓ¾ ¤BŒF‰ÿ¹!A`êæ\6h}ûÖÖÎï ž‰æf¢iýÁwãÛ¾ ®¾²Tl:ÂPË«jÜòª¾âÆ8%¨ÿ·¸•sÕ…ÝJ2™ ¶P{®Å!éüA ©ßÓ{ô;°~ÇòŸ“Ø[–LŽoûL{ ‰¤:­ÊÊÄU[5©Ú¤¾|U^,Ê”þ0éÿ`IFù—PËùsH…;þHZæøø¸™‘¶+ãSëÙïtX|§:~ºU±xïdŠx#1¼"˜ž)¾°¡8ÏÙí\®~ðKŸÂsˆMNOÿ‡ær¬úm‹ï ù:šWÕþí¥ûù LÿÌÐ[ÎpH¾ÀÉÓae~yaÑì}ÉBEYÉÄ(ßðR7SÜ:ý)­²Æ3â†èj3«ôõ¬¯© .q_%D!ºzþyr0žnGyÒVÁº‚¡(êù‰?¥Ò]ìA¤(­¦0ÊQó»GŽË± Ю»*Á£×³ ±™p‚M”"¥‰·Û%²†{p°TrÓd#46÷LF€«¼Áaغ|å6vÞ^Û!çe©"p¢–|~í|z¢.Ô»ëÉþó;€ZNL>QÕâtʙޮ×ÂhØ…ˆ'5û ¯Q-APçºëµÕàôL3­@_åOù¸Unb o7 9·áS»£µõÈÒ-¿3骡lá´‡¶«‘ýÚöÌ€Í "ø®4ÍmÜOÔ:~ª2¤¨CḠ}ìÆïÜHJŒ/°¹,AÇ ŠŒh–ô^Wã£×£u»´Åke`©Dš<›©ís±PÑVßC£eÙælCd?Xÿ²ùí«ˆZ/—…Xzˆbë()ž)œpwsE0˜Ò:Ð0) »+ͤ»Òv¦Àƒ–ó\9™iå.œËõb‰Êˆ€|²d±àdJüÇ“GkÄ;lËR–áæÒÍ®cQ£7Wý΢䩩ªØHi»÷ÀMû KÃ0éGàøYð?;ù1Õ `·Šnò—g5q@¡ኾžÎ«ÈÓ¿Ñ]ÏqòŠ­«^UϊΗx ­e–d® ŒÄvÓ˜ûŸ:èc¿‚”¤¢•Àú3U·rç­bGr i켌{¥sñ‘H§ˆ Sœ÷$!gAq8¹ÛmêÈuJâž>”æ-2‚ô5&Äæ“9o{þ<î;Ï>h[Añ¼76ÊDCXµôÌO®Ã + tüïhõjmØR§3}q¦1|okÐPF”@ïé®BèÉiÁá pÿgkË3‹%Ý’º³º¥Â ²oÚÂð?/8ø-©hIBç÷ZIbïm}3ç¢ïÊ€ ¹Æœu;­¾:ݱ6£QÅê~'™ bFþŽý.2§ûX¶µ$rÏ@!u8[9¿ž—¬%ý0}ÀÖ1 ÁÙaËŸ¡ûãˆx0Zö¾¼ïÆ´Ÿ´ýs³¾@¡ óuŸ1æï!Ë·ÔY¼P†ÏæÑ\<3Æ’uÍ93æd\L»{Ù„)pÎs´žÏ?»yC±û.jäNæ?†%+pX]ºôè*÷´·Ym“ ætXYæ^}²ar÷ ⸴X­‘Òk™^2É#‹À†£ŠÀå¶]%5aWàŠW(ÑC“¹„ìëp›µqËÖÕ‰GǃLˆq9äé~=Ñän¢È7«͉dÔ?I¥JšÛ“3u:¨˜Ä3ýG«Í ë2ˆ_h°·`¦ st‘ 6S"ðV±½: ÿY–Ê%ùGó1õ¬5µ*y°Ñ¢[“ÉëÍõsy…ß—¶xµ Í•S5÷®ð”æØé_¶,Î-RR&-˜Eæ— ˆiöZH€Ð=ÆT¨”Ó?I›’é~‹F¥r›ã˜³Ú®<ßâÎë¢Dúëé²A-? ì§ð¡&þœ­À½ñôÈlBøë«öà˜!{çÐ{jû× ễOîű‰NÆa®‰;}Ç_á&Ü ˜PÎ\´>‚· ~ÒsqU9%9×hwYíÏ:œ1Ѿä$ Ø—»Û¹£#„–¿ùJVGbïhèÅyÐ0 ïÖÓØÉ;øÃÇ€wkrº÷bl¶ñÖ'è…ßâðʼCÿSðº“g¾õö6ömþRl^wBÓq—¡ï¡}„x!¤"Hu-¸.“_†|¥TN)GéÒ Ï‰›€ë¯Ó{; ˆj 'ØÄ‘ÑdšáMµÍR)GcH×ü窕6þßÀE5&êq¤8Jµëñ>4ª FÌìÕ¡7Ã@ôì£#òaõ½Ó _,O‰êÚù¹‹bÞ½±k°.S1^qò–dÕоÔ.¾{u5ã=:É¢2äI6”uЙ×é£MïrsÛ×D™@½««?ÇÉKà*]0©Àô’_½Ù1ž!Šînbáõjßq˜¬DŠ´16¡¸7–›ùaâló_ëô\  ƒÜß¹²è‡ø…hç"-ÖÂvQÃQaG»±áýÈêP¸z¼ºv¤#y¦w¯hÅ–¥²0ßS&5/Ù ÀóZ*îr–ÇcÐñ˱ Uƒ3íúHË÷ãLÊ>¢Á<¥Ü:]=§b%]†VŒº˜ç3&†YÍzü€³!¾1vm`õôrUFçTÒ–frÔ>ò«äÖý¤!I½–zöùêãTÇq ñCfS™:pHèÕ ˜E"„t4~î²ÛÙZ”ë:BJ_48ÒLø¬¶u‹q D¼Gâ3šöì Ug[w3–††˜™Ü]ú¯ùÿ¢ÇªäæÆY”GªþPý/H'õ|ÖhD{G,(UÎêÕEì*D…z*2ʹx™dµFQ”°PáãþÑ}¢) ?•„žs°°£¥C!Ù˜€²‡&ø#{Œ¥¨ ôÜÌ>ŸŽ®ï7•ÆåwgR#¥ºŠ9’­Û/ÆøÆ±ƒ˜QgÛ¯ëÉÈ/ÌURì¼6}"æ.ÑeûD¦"£QûQöZœ?=XÇæ2ûN‹\£oðòœªÕ®éÁÉ^4õ«&»¦Ç‚ȯ²Ãºùƒt[}Å,ÄG ‘€äÄ÷ø²§ªMRºàY—ØÎE8•åÎ34«§Aýóö×þ¶ ¢}ÅGë–ô.LÉÃzO¹ÿ±~ÕÈ®$v/ß¾ñU±‘QèÐTãßÒåó‚¡÷®»ÓVÜKO¤2A‘"eà– <˜½yo³‹Á¤\OÉ™Iw'#uêLó¡* ]§Í°šûñÇUfïÂ@'gxbg-¶Ñºe„ÅÓíÇG’C¾Ên ´ÎÑ”Lë$€Ì”ÃÁðÍT^5аɤ% "¶Ä9Fì–Ë@£81“Ž“’ÞTÀ‹Âb-*ýüfñ8Êí÷ÝŒhsl®º˜ê¨1µT›Oǧ)Iú†1º°ö4.\›©$)8iÔZW:tç¿"Ⱥ#ШM ßE€Ü‹õu®.Ka1Ê„R3[™ˆàjóÒ°‹²$Žýal–­žirõM&ºUƾ~ÒòöÃà0 ÇÄ(m§:ç#Î6»_@§k~«Â³1gv†ú?ߢî-ÞLvZõ6igªð¸à8Ô@ÿOö2Jø´+?²¸ºnî?*è©©þl®T¡·`š.Z1’{@CüÍv+€-"!HùB=Z´¶ÜBl¸Þ(‰ûÃY> Ð*5½Å›-•}¢#"ÕÆàùòó}a ¬$º±F-Q|úG©BX—Rhœm¯Õ‘a÷PýyŠ’õâÙJBVrÛ™¸˜±þ.–ࢮ­ ;(¾SH¨dQæšìËJ뇦Úáya:I‡ßÓ„{C=zð¶­M,±ÃçéŒ^špí¡ÓóèÅ$rîj5D+…³#û1]C-®ÀW…{ƒC¡‡<Ú…Þ´à„>=“œ¯×—4Æ_ðÌPò͵|ylîo“¹Ü|œ“Á…ÍÌŠ~(‰Î!¿”°.kÝX×½£¬ jßjÛõ…ÁéÄx$×xC÷?†Çs2²_d»ä.îþ”½ÃÃ`®,åWµS®Ý]ôe$Ê”á¥À F ¯Ü3wìpG7Ç…Â7Më(˜#VÍù¶†/Ɉ\ê<=hCCÃxrIJ bX{epk˳ÝÕÙ¡â‘N%Ê©¸z8îŸè•3¨ò™ÒФUê2»üíJcjBhÊÂʆûáW rlOèLß2i†»fÜåžçËRW9t7±úóÞÙ{ô6F›Ybi¬ü·`kD­€T›FñÕÎD¼F}óX2\ŸêâôÕ@$ z8ºð®çÞv‹òfU—¨¶-ï}c%`‡R0DÅ&ŒýNÆE™oI³»’§ºƒ 󤺬P]79&²]¦ß£_Dq¡a‰«˜éÅÿ,1^Hàüƒ šv6¨N£ÝE["È*$jG„Ùûá(š©ûŽƒ1t×S½Ä vƒ›«ÜYúh‡ÊA”ÂÌÔ%;@¶AäzédMõÝ› Zܳ†§ôŠâÉ:@†ûÛØÁ_ßhÌ8ÅSÓa¼Z¿i©œ£ÁpǹªiŽ+H³@tñ¨YP+G¼²’ å8šdfOB·‰8ºÁP–Öç­+¾Ì'f4î5íûý~yºw‰r¤ Z ÃCU–!{qŠ(úWç¸ï0öºQq¦}›ÛÉxð %Ú™Iåï¶`‡Ù†þ¹ ®®Ýkå@Ÿe£Œ±¡ºØùté±H³ò*œ&¡W×Üãç~Ñj_`ê¶Êô)̇ämÞõƒ™ª®f÷ †ÙœZÑ»Uµ ¯S òfÉÈ©Dÿ@rü˪ˆDÎz(Y¬òG£ÖüšÓ€Ÿòa!ÖÍ\Ö7Û èÍ^X³Î ór*¥¿@¾ân"—žIÂnvàøÖyÃW-zédàÛ~2ª…ÃÈgãLý]ßNeö{Ö?Š“$ 3y‘ÈB•ÖÛ˜R¶Åb¨Ð¤¨²§£¥ë¶®jÐ(&{‡åÆ|ưR²¼ö~ÂZ÷Ö)£ÊâyT.:Ÿc ».]UñVI¯ úйµ+4¹‹rÉeÉä’°„þ\Ôé!J’­ÄRû_o„§Az<¿ÑgÙ—4˜²ÇÐF­ùäØ'‡¢78O¾}ßHZt»^+ E`Šñù¹yb=ÒJ)ÈÏû§¹9Áæû¸s¦oPe¿Jßž^ŒÇÐ"£sF»˜ Q÷`L¬$[å*ÛæEœ†£I¦æÓÃLá%2¬šiÚHÁ*@µ÷ple×F¯£'Òx+îØ)̸™t_¾§…—ÔÎ#©@QØ%ÕÆõ%÷/-8<²fíM6€ÀQí³¾H¯ÔlèЊ‹’ùÌ>¥ŽtÒ(m—ANC=t–o|SäH /ÑîQ¶Ž#OœÎé{ÀYÃ_K 0Æuu¡6a§ƒ+¥Y’]š®ÝuŸ…ý~x/ ¶ïÌž€‚¡Ûd$Ú‹6jov—¾áNÁR²°3í(=¬>ÿ)Þ~]Q‚?~ £ÕjCò‘ÆÁÓgŒÆrÙ¦µÇ][$͸·‹}4©2M;Rg­j qñØ”‰WØ‚ÿÈŸ1YröçÜðoÒ¾;‘JHuÃæu—Ü^[”B}€¥FsÔC“¡îí]ÿbÄòE”¹ Ö¶C,·“Bœ‰¢4Sì]ëÆ¯‘X› Â3Š3ˆB/ì!N¾§gï‡a<¢Q;9¬è¿éèç¬>‚$ ³éìnpSÁwwBðþÚL6˜âЖ(X£{u“¬;b²ïr+œÞb0ç] ÔƒÁžŒŒ0 A\1ª¥ ¢Ð½ÄÄbÌÏRF/x/¤«õ;Ñ¢‡›}Ÿ¿š@Šf?µÌßÓ­˜ŸùÂ×C¼fÛ÷`_ú ØØøpšÓe[øLõqw…6ÊõêÛ Ïfîã8Cÿp’ñð)¹ªON„ƒÃRTùæP‰¥æZð'e䊆céO¹,Ü^7øàŸiA‰š\¡þ·Øæ£œôL†ˆiÁ~uQG4“-íœ,vÊ¡ÄP]™!n‹€µ#@KAŠˆyò(™ŸJÝŒ±œ'UÒË& òÎͤ+2•2ýÔaWÊ79ǵ§õÖq>ØÝ¾)œ’ÅöØ…Û{yœùó‚& þzj¥4¥öÚ(«vÐHû ãtuuô°ù ÜÜèÝêƒfæñç:(ñZá-!)çÀ¼”FrÉyÞ~¿!ª¦öÝb0_»Îˆ£>æ>|¶ÈŒ8%Œ—I|ÈgkÂí¬IªÛÞ…ÀóGëæµ[zÎ|]øèˆWùX1¿œ‹ ¿ƒ•ä.pÀ Ë¿µ,F´P¥+ÞûPlÐÛÓƒ|.^Àø ^_½Á– jF›VSô¦è†Mó0€WÚ\ÅG–˜{÷[¿™¡,z'Z‰¥@“A²s{­ ”¸.Ú×)M(·ãkò´$Ë#XÝv8ÄcgQœMU¯ëgsR‘ß´ ÷¯ýO>‡ð6ê>©êþXæ¿®>D‘®¬rf‹×Ï#â9.²ßÀÇ5ûÜvñÄ`o¤ýãæc²†³~6-|ï-û)£“1§YLÄ Â É;¢Ýô|Ík€È[%ìÓð¦[z¬§^+I•X;fÃæ3ø´B*Gc*Èȉ]ÕAÖ°7,ÄÐ |•rÿ͘…½ÍL—eN |ÝgÖ®‚¯ŽM#"P…É7ë^ò™¤¿:hh¾m±ä¬ÍTg èTmÇæÐaÙÖ]\ ›yÏ­P&`Rå%YQ—ûò!Ý_æÍÆ j~Ecò/P@9¡+†”(%tò C„mþôÕëÍð’bèUž,Goe€,àÔœe7²U #à€q\×°–G?Ê+ÓŒ(7€2m?iÎãv .Ž_x@¡©¿úÐLzcœ(|쩾ñ}Dû>Š5®§FGS šoˆü´¯õÎRpQ`|§u:õ#¦~Ñ}èû†!V5[jÿù¹–4K devÆá/¦Øôü߇1ý:ù>8 ¾)Ú¬s ìœ<’¤£‘l@R ´ZMÓK»N{&ãSšÄB9/Î}µ€´8* ¡á-9Œpb±°ŒÄt€>IËjFdJ ‰ûù9 ’pÑ*¹äo±æû–e©ök>éÙs ýyF¡”ÿÉwo'è9¨Û¾nWùÛ#ûèX ¸º8êå²±lïÊphÁcOÕÉ@_“‘q/ Ë¸ËÈþÈÊì¦"FõŒú(Hîùè§³}2>ð¼RLõˆ3æ¿¡¥0,§MgHØ p“.Eû[»®wæ(B1ïiÊAÝè of%…$Ÿ‘LC‹Nì[ÿ€óo•¬¦°vXUþC{7{Ê$ìñÏħ´y²dk39¾g§í±°rr¶/}˜†MBEuÊÞ `€3n€²÷ôo^2ÐLÕzù3ÓP’ÒÓJŠŽ—£ÃÅ?;ä$JÂëmNÞ…©}hä¶·"ʳçÜÍ&}̤Lö †w)í)•2b2ïz$#ñ^3?ÊVºo—*ô`…ý:Ôìn¬‚ƒr(Xý >œw¿SäyûȹD¡‡ý,s»¶^“)EÎÚÁ•…cÈ>V«öÊ?åkÅÄ’{&q”˕βÎLœ¢i&\èÉ·I7€i"Á÷󘌔w¿Ìº+”õ3ã3È ü+)¸Ô$¨oÓÆ]2%ÄÐÃý5}dûîô̈r}€)^;#d»ØªtÒA¢º‚4Íj~!\ª_‹JP€‹#ÒOZ¿vSÔá‘ÊM:Ý/}hz‚ç$GĺmyMÏD9;0mZ´¸T¢&bu*»Kdú&kXHô –XM·6²X¶Q¯aÓª0½ošIþn( Ø¢]ê‘X‹ýzÖàPx±½³ú 1ªï]{¿šb—½¼\Ô~ààne]Ú–óÿà‰Æs;]| ¤ó©ïmá_)†¼Né›­,>V¢o.m±ŒáU­»¡Çgq‰Õ?άaì¯þæŠÂl+¿ '85íRdÓƒJÕ‚Uãc9{¸žG Å':2 ºÞxlü+a|þMÅæJ:Ž>ƒ™õ¯§´¿×xÉË=›®Áв=z6hLØêÙi'bI#±+$)Ë#*”Ÿ¯¼‡IŽÙ‰1æ´fÛêµ$…ë_7,¿êªä}Yt%áÄ I±³g÷lv7½† šO†sÅ,KÉü¯¢å¨Í n€Y¼>`®‘¥ÂŽ²Ï¨[P’9O¶ $h‘!ä$9ïõ†Ç,CŸæî^¶,Ó*Ê?×Z“~Å”çε6Lúšç A£öf;@..qÒ´Ç^¿åÒ=ÎR5pÇëÆ"q*º­¶ÂâŸé¿ä"ˆö¨zY¨[1 l®ža.ˆ&¤ç h`ªš¾¼ÎÑPZ¸ß¤z¸ÿ\i¾ÛåOØPÊÿJ–-Ö™TÚ–*²†Ê¶d@¸nk57Q|Œáli" lZ~å%e­èKÍ]tŸ JsËâ³IÈéIý„•x¥xQݪ¡åÿ»*”¬”Ô(æ3¤¸pN¯«’–ǧwÝ%.°í$[$' ˜,b®–sA ©X˜˜«þùßJA‰­ë.è[—«jCCdž §!ˆ*ù±ö·•2‘¨cpiA‹t]iø‡y ˆ/¤¿²Ñ¸XT°â)²ñ‹bpîžÚî ∴ IW ­¾¦s[VnöÜšt#=èlý ÏßîÅ+b žì`‘òÌ!>ÙýŸÞE³O$kô]µi6(C”=¶ð@¶k¶^>øªP·€Q¹àBêÔƒ¥žàŸ’ÌN­!.[Q΄ÍQöu‰Ž9ŽÖR˜©âôŒä²‡Ù…Høßéë »•Þã·‚·eÕEjn²gcç”DÉÀgCß©¥ƒì,Zж«¶’‰R`1IUXOSCÑKJÞÙ—!ß–ŒµÍŒ/ ímPÒ;l|§¡Í4¶—«#Îv ·_laC D:…óϘcUƒ¾tñ¤¹KÀa·SÀF–@à·^R†~öqzo¬÷b_X Å“}'<øŽD.)íT“ã,,6é7õÄþs[F8l–‡Q±´4õL,˜§txÜ"F Ú»ÇùÞ?<å¼à’ìüOƒw#Õ%4—µÛ úà â×¹›QH)iŸC†)Ô+fÚŸžqmôþ´¨}r?pzÊF¹jGõ6) –é—!:ØYbóâ([w} +Tqæ³Þ —älç.Ê/¯Ši|³m¬ Z< +‘,îh\ÓΛͻÈéäxe]‘ÝgÄTmÉš@MKòÄ8ŒïzÎ ÀÄQ*E’Fíaoʽ7öO|A€ƒäÝy¦°~<´Ã¹&hÛ<ã§¶)üAžñÏüƲœ"¡Ýôq0²$j³aª" ÇOë‚ꯚQåtˆ!þÆ Á€ä>Õl½Êàÿ¢Œ8 Á£à Y> ƒY§¿ÿg—€¿R€äy[[“ôŠ×¬@‘uNÀƒeH0.ëÖoT¢PkÔb‹씦‚µýô…üæ.k€S‹À•Ô9a ú~ÓjÊzNn¬@Ú*³ Y§ÃIlV˜~#ÕU©Q A5I¿/®.+nƒò‹f‹ƒnaü8¾ÍÙ?C÷ V;œØæ…´ù½é¾y ¨Öº‡綘‰‹ŒEkv€±~~µ)*îÿ‘À)Ÿo,Sà³*0t—#‘Väá™ÆŽ;=AˆËÕx33ŽäxJÌÑg$Ç9Ãd-·M<”¾æ„eÔ±§¯¼åRêŽ OV¶zâžÒëT™xƒ}µ*¤NŠÔ­|¯·×Kdgê<èy,» í@m¨"A½¹ò&`±—Q†¤«ÔÌ2kîD$Å’3b§ß®ã¸B‘­Yˆ¥€ÞwþZÖºÙÊÓo£­ »~4?ØÛõÓ¤‚_æ3— ÷ÛKQ(aG¸ú©©: Ö|&Ô°9'¡Š«¢z~ï´ùE¯¯ ®®È;’Vf”bêôœ@ÕsÍÍÚøî¾ä‡Ep¼êjäà5ÈËmðÚ²ÛÆò¥'bkvéD¦ÈÀXWéö{N‘‚Ò [f5lWGk0.õ 9D1TB®àŸü%àUÓFÒáÏè£8q,ò×QjDÕÙ »ò£Ãÿ€h¨:†iì‡Ë½åÿM&‚žB,©¹SµA3Œ$z™ÁEYÓæøùø.ŸŸŸ,UlÝ«”‹~wù^ûð.Eâ¸iÂK”pQ ³‘íÒÔp#q¯8ã{F÷ÉàMn•ʳбñί|ó€Û÷w-Š¢Â®½;´;ãCZ\ŠÕy›Ñ1îÑžþX62h=|ÈòPwM´kþôí—Ù`‰d0‹Æl6¾%¹ I+Ut}¨õ¸m2äœØ-7s÷éïB‚홀„à"²EPˆØrÇ‹­oŠÁ?¥XâÒ-Ÿ¦@‡ ÅÉõ.ÞÝ?EËà_½‰ø|ü«üÎBø/·ûè‡ÂŃšK6Oßc 0IGþ.›¤Ò]ZÁ'*Ò£—9ja$úU6ödCäß{Ô¶àM\Z@Pmãm-’q4gë×S–ƒ·° Ì7CBl6%Æ _·ÀõT·;É#íî¹PBGsÅ<à>CÝŽ³@½¹#-m/ +«'/«»×ÁðO‡3Á|Q2ôϾTº£U[åž…ÃVËAÞ@‘|%”­­ÌC^ þõž@×ñ7CZvºk$3à–uä5v®Séîß| %:7CñhßåR[ÞR’[¿,¦µ•úQ“2²c¸¿£ ÇÌ¢¸DJÚf@0 —pŽžždþyÔø(2ª]‡[žì6‘®M-ÒÛ/ÂFE¿xZÚRp)×]&”u>  ØmÔØÀYâl–žÔI_Ô&ú¾þ¡]‘¾#cž 6šJQÐf%/ó€½0õ›.!ïŸ*¾é ÈqõÕUÇ]mŸâÖýø p”Á,»T¨¤LNpÆ Û!†½¸NìÉÎÅ1Ž(NâÒô58 ñ‚Gt¿ Þ.º”)bûžÖþ¢üë¥e#>CˆÈ{É\œi.ÒIb¼$ ðÈcþÿ±ó„®×jUéØc­ÍEŽ ×9,Ÿ z7é-F¯e›åº-H0¸~ýR‘zlÔã¹Ø€‚À¼*¬Az!2Î —4›P†Ù${K IÜ„)Á7Žæ·BÕ8Hš¯­R‰ù*—•83CÆŠ_‘ë {Õ™²=~û´Q¯ˆY¶$I¼ wBè°ÝÕiuä¶<Î×XP²œ=ß_Ct×x{©‹kB\ B˜$uîÝ1WÎw£¿˜Vy‹TÑÒ‹Þ:¯Æ?OáN÷HòGàðØ_;…ÚÑü1F6*œ }³2]¹ˆ3ŸÉÂ:’»J˜ŸÁL…†¶˜*igˆ£¬BÏùPÕ‰„¹Ê´¡FWv3¡±@?ÛáÕÊl7\!#“äB9Î æê”L2ß@ºR7…ÝÓøE .Í)»ÙW|G[l¿w± jrgíXÔ®pµ'„is Òn£3´GuܺWø/¬¿u‘Å„…*Byé ·Ž!È¢\Z–}¨®9­¸¡öHe¬IÍ¡âV¿n»ŠšÊ!øIÑÀò×w£ÍT,WlÕNƒ«†ÕÜ/ß§ÊÂ_ÊÔðàUñGqüŽË¹´ЉŸ79Q7¾ç2ŽsS>…Hžøý7Žó©––°wl¸­¶ p¶¢eŽR GÔòrZè'Xîµ_Ã]2ä±Ûê¶äèfDºqn0¸)2 ÑàØMŠD¹ûžÃá¬hº¬:-GªEÃ`È$¼âÃ'R+ ¡è–(ýéÇ=iê)О‡çȼ£Äb(1ñe”sY~cJ¨W<ÅØæáJ‹Üë8Õ¢ˆ ¿æ‡Q™~–ùíáH‹°~®¤f¡ûÐ)…dÔG(y2^8ýßw~l´þ‹Y„:(Ê| s Mhü—âžf]HIÂw®¸aêy™g3§ê‹xâ¯Ep.%#«ti ‡{ñqÈUøÖÐr±4~ßi®$´>ËT cE×84h¯` ôÿš_uŠ»Äœ¢'I„Yýñ{mcX-µ¹/ïÄ/Í“¥à1;å TŒ9¸É>uD²ÉØ ;7 ¸2õ3U= íØËq¬Zóã’P«»I"*®mJÊ“+/÷vQK;~þ¬ÄvçÜö!oÁkÛw°ÍI£xØg¶®¼ƒÐŒÛ?…OÞ?À_–“õ§ª{?äœR4²Q>íÖ´ÜÒÑjÝ©>öþ­†Ehé9¯vSç‹Û±s[«gç©"ðÕO\×v+§óÈZòGU¢å̳7Šëð¹D)A á^Ù)¸P§]¾8z2ßÏ™?±9”k5[ßv_Öi£Î’·…þéÇpŸTÁG?moÎ[51¦¤5ŒGøì›ýÔ°Óf{_pä ¤•A7Ó|ÌdIfiñxÍâªÑ³ô¦ê?ú3•¨¼‰ÒtQçæüi‚H)HTÊÑšß CPÕ`kŒSùÛâ*‰&Å]= lNŸÚx-¡3PÆT›×,ƒ)V^íyUøÙ‰6kÒ¢Ê Åh(ÛÒH–Zçïh­œÇõó’¶aakë05r·ÇÍx?MÕÈHºþcwà Ëz¾Âùû:úÀÆ\—Ã]¾5úäø›<¤X#ÔÅGÐËø\å,žó‹Ëá+ÆSƒzä&¤ÒÃsžÕÍK"N0|ž]ךñáMùk¦Œ|80?)yeÁ$´üÉÍVÚþ^ΔL—yî˜ô¨È 9 ]TÎDôfÖ¡2è?lwX“Ü]J§ƒƒÂIa­Öìc4 a91á¶Þ™ðñ×yÚ~:4b°è¨§n¦½¢æÕånÔ)8Å÷³†¸bHî&{[@TZá´©h¡‚©‘— -}!ò£è–x¯ƒÆÙðu²«Ý…éýÏÚ‘,¾GŒ’öHk… >‘Õ?þÄOï€ÒÚåã»غi¢mÆØƒ#íH)¼&P3*BR;_ñõìÓ…¹F’ýiBêܻޥ§Ð0Û.ìWO0nñvVHÅ{öÙ o™uT\TŽ*(0ÆÕµü¦ÿm+ÞLòCàôV!ƒ ½JçéÜhƒn9ÅÛŠTq+ÿG+%øˆ/F“ Ô:Na€€hQ²z']ä¼Põ‰©–ìÊþømqRçDÁ‘®nçXRFºÜèžÀ«xÅílÂé^‡Ü "ZÎd£¢ªnF˜ÒÊ$jªrj®Öx´Ç^¤O¾n–ù§9ÑÊ,Ä})g@þqMÄ#=Ôæšù¨£-S±j”c—Ú”ý΋t"†³b ÉJÍ›c#^÷u(Ú±U®¦»»B“{=%–²é¿ß3³Xþ±²v’Í#:¶€éº¥-¤Åu=óÎ¥l§óelIµ‚ª©Í¶†Ù#ÿp Z„z¢×øÓº8.°#/À‘j?î·›¡›ÜOï©”—~jlONºþ„ì¦Bô&5Ï›*)ljíce V¤0QM¬\$fì¯ó Aß„é¿E…-…ø%Ú "³høsÄgÜ7øÊ’Ä V¶ñd€öÇóaNˆN[ºFæ¾Û’½’¼ˆÖb£ÿ+űt„\×W>ÃÙÐݱó01r›;Aª‹Vœøüt ¯t SOfŽ ¢cP6wŽáýª´–IúCIRªŒ>ßy†+…ž’ZK)OÕIõ¦³-¥ë~ê·~É‚ƒ>ÿ¸Ñ—SŽh ãg'në©.òîN{sݵ¢Ûq2¸€K31¿£+´&ïÍKyà Þ&˜‘FWKOùA‚€ýÆot`ÕœcÊÃpÌ ½%ÎÝ ^Ê:Ž5Œ’4bÎaašD”5KkÐAIDžuË»eù@ íÌ„ÞiC@‘ôo%Ù×Ò4¾Û`ÅR¦¥Æýð8pاì7fÄb[ó—)Œí8¬ä>¼zó3Õ—.ƒÿJÞþ-Ô¡*×Oı̟¶âº–PÊ»ÁƒsVI‘à,Ô.¤x¡9è³úhÎ3ŽÖXeI¢FKÝOÚ¡ÿØTTu ÖC(2Fç¨a™ê|ó¾ˆ8ß\0T‘Ã1 „K,1)‹ÂÍ\zn'>ôSùÉý%•¸|)wì º:,«S~ Eý~Xl¿-*òåhMi¸ui“Æ8 ¯bÃ>Nn€'~°;Éý®í1k<ÍS"8\rö$ïí•“ðã+€Ãû_,lvIžhZ –`.†µ9g³ënóv¯SSnZpO£ÜX¾ý–¯3óIºÖs°y ø>ð)³ xrŸºL(Q Eë éª Àÿ\eº@dÆ 5©¸œM¸ia¸W¨'ê–ÈhÛÚ“´ìÌ¡À›» ÀùF>G OHs;¡œ¦q¯«‘$ꮵðô hWP¡¼% ÎÖÒ5û Óº5vh»TÔœº÷"ÓüŸ¸àÑ Ž¢¹¦é`QÛÛbåqŠÞUïÌ“Êì”ަ쪯Îüç™tnò¿Ÿ`Q@UhJf€Y¤Qï_êB“i½SÞ¡ÈF<¯¼Ü„íà<èÂ9@a»ù,úLhL|h˜~Á;ì9Ÿ"<6ÏÔù«2ø æÈaæøi,îw^žõG%Áï&¤¾òsÈ‘ëËùˆ3ÞTü#óxlË'nJxQàlL1”âʪé~ÑÍhÍx`ÂàS18F,:óˆïx\èÔÇuŒ[QåT_"†IÝš?Ì•±‚yE<Ö6$)f@HjÙ¾) Õ‡dÑÛ×–”ŠB/‡}áK“Èi…c eK i×)ærÞ»x­WÊãåѤUâPD¨qd˼v Œf§µ9Ÿ²åŸ.1vâ‚#v×´OyŠQˆ½¿üíw‘Wgú£̬m”ÆÏxN®9pI/„÷Ez\ωr@ßìÛáTZ Ø°D¡ðé©4¦‰PFÛŸé]Þטè,œ¥E#ðFFäF°[„£H²P*€Ñx2OcÈ8}]B;ØG#®Õ„fAƒ EЪmz0²êwtSûAÑ[.»¶²[6Zô@< 0Çv¯ ËvÓQ÷ü¤‡S‚cåæä—˜†~2õ3?,_óšÁ—‘Í«¢ëOp9pí©ÕBÈ5~þÑx¨ðuHØ|ƒád™—•Ç`¶°ÙŽò[vÝUÙá͹ÛÔ¡’OÊä N‘Ê_zTÕ©½fÌӂ¯>ÌV"m¬Û•ÛOýÃb>¨í>âOüSc€ò‰lÓý>8¬ô)жl–#® KUŠcÇ-¹ /@…Q²#P‹ \ÚÞfuÜ…òe-‡Õ9¾zŠ«ì"Ÿ- ô'véÓ5ÛŸX$5ÃwÏý­çh šŒkçÈÿÑݹè<ÌÖ[Õb5µ|Θ\(äùQ ”QšMêYª‹á!öº3Q±ùFI\*bM÷Ý䙵º{à{ßOíãP¦­Oÿþðô°´žKp…yVÔî/ l¨ ’æ`i.ÑÎ^øÒ=SG™eoÔŸyÞÁþ©kÆàµ Œ–•Oá’ÿ›gE0…OÒù]ð›>!i*Ö…¥?ë÷kÛ˜€[Ï»¦½@àb[r…egJfOÂaª‰Ñµì¿™eMWX?R@2V½ž-Ðo蜊ï‡"ÎäùªÊµî÷±­þ„œ.«à þJr½®HŸrËÚûöàòòæÇÀ|'Ú èBim¥’¸_*Ê jê&6eæNW¾Æ2´R¿§R ÌM5!$/¤Ý(KõˆGÚóáÕ^@éö|†xÎGK­f5Øö…Ÿy~ ÈW¦—‘†¡™e'D@íPbƒܸAG¬˜`Ùšq茜ý†Lu·¥ú0m–Ø ­ÙU¢êJ`d„ËÉÉx£½«÷u~œHXe5lð)¦4—>Õ+ý`©m3t­:Ç@@ÄN oØ@€»¬d@õ n&2vÅžÙNìËy®á‡âäBy2C0†`¢øä$¬¾…Ì©^ȱêöX2T×ÀÝ[QâkpÞ¦ëÚïÛ… Ý˪9¨Ê::‰åvÖÕÁæK¢ÏWéÏ\Ö»/Ë‚ å{ëS‹hxʼãÅÝc9"ùƒW=ÐÒ=ôgß®©[˜±ÏQ®Ï2ì*º ‰Ý6Þ Eð:õ×néun³2ÙmÃUí¿)2"<4ðeÚéYpÏZ9cã>¦Üį×r u>¡éØõç°1!jé#bÕÐŒzHk/—Vg¡µÄÅ_yá0õ[kñßvuUÑÚ9É­H`à$cùÌ78å_„ÿ ÙJªIHŠš ^5ÆqT{uÚ ¡qï~8þÖ"ðϵÇé0Äß_—N ¼&aäÏI°JS½4)ƒy×kD iÔdf9ãyÀ„Öã¬R.‚¨ZðAνí¸0ëXóI¹ëC½Ððg”¿2bLž˜/·ªn3}t”|VW²@3 ý —â¢ÒlטÕc?ê8ˆöâkrŠ|Etx=JlI8Ê…!é1#÷•¿`¥Üúh9îo[u<u÷w4þ£Óš²ꕮWâµ”UdˆÿÇaÅõ³Eá9¤%^¬»€>*¼P—ÀŸœÜĹZ™Ã‰ ”¤”·ÐN =øwÒ¼ó·;c¯mcÉcRëYJô)ƒõ-¾Ë6Iµ‹<ÌeÙFÖ¹zŬažõR*ðÆaIÏpUbkîZúÐ)®mª¤[88êMJkQaï G™•uˆ¦·pŸÐP˜*š —s××"QbÕä½ôuý?¿—QÂÑô®›×èÍ’Ah÷… 3+e¡ã¥O(;£vÖçá£VŽþ9ûò©¥ÐIrÄdw8VTÈQ„oç‘( šò™â°¶]ØÅyr„ó¹Sú¦úY)Jˆ¢Þ΋ˆyÃTÚ2˜­ö@EA¶Í¿äÊ|\2%ºN,Æw:~&&HKÅÙþDñ‹.%:pp||Wwo4¦TCe]ÿà'W5ciwßpa© Ø!/öúxnxÙ8;9UŸ¬¿k$Öo":nÒêáßLl2m°>©0ÏÊ(¿;°<é`üM¹Ð¥Ñ³%‘O!?–Þ8úî¹2Q$EŠž[¬ìtY£S\‡ Ë*ƒ\j¨/àц/“°:$ÉA¥6C¹Oµ!'èK8m>~ ¡Wôà·¥D0'Ø2«{ûý¶ö¤Çì¶í¸Pùah¶ Ç"´ûÝo_KžðA6-^žVý…7Duú„бßÅbÛæ$0¾âo_"kHPª–GùƒèTh·„Ý0±,L„Ädæ/´JW¿üÆ¡cÊVMº¹L“œ7ˆ.˜ÍVÔK®þÞ –VŒð<,Hg¸„øÝ†6òINI艄M°p&Œ½ñªwåo¯n÷†cÙŸÙ\¨úýJð›°æ?~ñ…¬ñâKʹÓSvUkó¡ÊÎ>^ý:«^…æä@€\Bmß$¹/¼¯£ÄA¬˜f±]¸ ð…81Ú¿l©ùrþ²*ǾíÄúXÛtº’ÌBlVe´ÁÞ€Á]Hù tÒªòÉÅ”‹¬Ñ8ߟ²¿ÇY¤ƒÆ6NÃÔYé£s% MÕv-RH^]½„g‰JÄ…vT¬èæp‹r»Ä•æWU.³?àÈe2¶ûl#ö-^Wø '¬¼Ÿ!8Ø ¤RRÿ-QP¦‚e†²ûf0«2ËKV‡O9‹½Í½®sÕŽV7Ã,,6¨ç•Íî¾é‘(gPh†Äµ¡¼åïi·ÌÃŒZ;¾Þ’m_[…0pl…¼V#¸™jnºãz2Í–Âl$H4&ÿ®F[©r4£ÿ[jdÇ®Þ'§?è€9èg¾w\d›¿F–Ÿ’äKª‡æBØÄdpÉ‚Ð%‹¡ ¥MF|DÞÁI ^úuó ^hÏÛôXä˜&G±§hßÜvð7v€îÒ'¸~k‘—Aýg†„ ¯íU`0•8\q—ÎêZ ƒË…wæsš˜;åðbû–ó­Å˜~F¨£ y‹z´:BâV!v±éH+”­ehrÜ}Í5 £5suÏÐ1àèyÁL­%{Ègò9¯^:Õ3¢czE™üüVªÙå–OÁÐ``Ÿ2T»VçÑ´ôÐëѱRËö¹fëx‘)—Êté«AE‚Ô¸1Þ'‹7K7[ñ·Ö“Í=]‘¢Gtñ;äµ#¸œ›fT;Fzõûðm়úrà»dÎusòÃÒiWÐñúX´}¦áÐåëIõøe/2@ÂrÖ‚‹«ŽRù;¦š©9{WÍ|¬V¾ìåÙÀÖÄÞšzc9–¡œOOòÓO%å„ ‡È·Kx§kßõ“@Þ²Û—¹¼fèA6ºl@MªÀŒ®z(€¥Î7 ½k ð×aŒ²ü»F«£la "èÞV‚û]¥>’A˜ûWKÔäßl%lǧÔU>kdð"aøHÚÎöÆñÿId#Òïõâë¹€¡çwU,ãzXÕu¿rD¹×‚W¥sapAn·ÆG¾èMó¨ƒÄv5@ïñ=ÊO0Nè­¶=()š >í­5N6ùïdÓºüW‚‘ŽÉE4¤¸ãHý[ ”Ù5¯ƒ²ÖJgÚfk®¼(×Þ\µzÌ=†©QDa߈Ž!÷±@B£tçaPF-gH²r“Ž ÆÐ£å=ìHk×Ý cóéòaÖÓ¯ÔSÔ#}Ú­‘Ö†´èC7µÒ½ ]@¶Uºz¶øHõs5ä·Û!éc1‹ìW‡l5cÙâ‘D˜ü_·YH³m—ªpW^ÛðS„†ÌÑ2‘µçȽÔ×!®92)(eð♼Þü!ª_¡î/c¾‘Ó%¥¶úýc,£æÕ¥‚ÚÕÒèF$8Wî2[ñ|0 ž³Í#úgáÛw'e ü{?W°qDâ÷2î9$Úɱçß%…EÄêdû½">&4ܳUO«·UÕ_a@»4Å^óʸ.ykb“¹ÊÇŠ®{Gôˆ~ÌxØfŒ×-±†|V½Ò!1œw€CçŒI¾:XS¤DB” –—ù”!{TdIGŽÀ‰õœ¼{9unÅûú¡HÔ»h–ÐÖÒ­Û„’×èB5qbby·QrÆspv!õé¾âH j@Ë±Ï «%çp¼ü[ƒ•ìF‘È‚<}~?p• ãJKzâöN±V'â<'~ê6ˆ‡…”ðÆÀèr‡ŸsR¥çw“ùÔ :A(ë;F‘rÛnPf(ù8úƒ>‘Œ£%²—]4&4*›,à /æ j-:‡¡8€î(4î© ‹¸(C,ùh³™ÀÞ[n—jèþÛ¾Bý]ûs¿ã6³’Ý(ÅØ¾NòNçü¯¸}À¾¿ÆJ† cÒ¤s`8êÂÌ:sDA@¥'A9ç~µj¶uÑ€a¥=«¢:vG€ªUz šºáÛ‹46ˆà®8Ì~˜æ°o½X¿’Biº‹Kq«ç|bÂé¿zöA¨÷Sã¸/âé’‰ö1¾TºÔ„·¤¿‹?…ꇩìXl:ÇB/—¿;Ù?Âü#$@Æ?`KlwÝH²Ÿ ýâô~ ^JÙeV°ªD†˜M×ÐOCñÊtø×›,•÷j‘ÒÜÚAÉG­ýD ˆR‚îTÙ `q]ÝqåÿþÍwÜ{ÿÌXñVŸ*C p5)åyftýVŒ3ë/†íðPj?ÌÛ$i›J—û ú›–6$ù[ŸÉ˜Ö/u¬IŠ'¤…ñ6]K°²G“”¥:—pÓŸãœ*¡ïæz]Êš1hêãÓ„dVeïfXá3ú;~@âžê]Fã@ru#ÇâÛ&PùFtt«|Hf½ã¾‘øÙG6Öä&zû¶+¯ôd««*0”emäÞaH–â½óøæ½SÀÈlï·ê<ã ¿a…ˆÅˆôû©V0«h¢‚óñ¥çÓ·¿bO¬Ãr•9Ÿ‹}"œÞtŒºý6D¢?,ç¡4ªÆN-Œón`ZZHVrO$‘ÑW剈Î]í4Ýy¶¢ Ç€+„_ò¯Œ¾4O§ €Â™¢@È.S©æe„ܺ^kï^¼¿ë„,~)TÁ¦ós‡jE5–†ànXZÅ4ByC¥L7#•„l¦â÷(jƒµ c·ã„‘)¶zeöv‹?>੃¨ôU.î{bßÞ4ÉÅÆ4ˆ®ãð¶7 ßûVmi­§°ÝÒ]vàR£ÒeIþ#º¦NaCÀÚ—Y@Û—ztyÆ%Tõ˜ž,ÅÁ¢b y#°˜µ!h³_ƒ¶þl±Æ*ýD QQVlÊD¨«ÏãNFVs©û̇*s<¬„·%‹¦YjCK,uêN'd£Ú™ÿCÍ‹àIA®[G¦Þk#æªt>/ÊóÜÏ @îóŸ i"1BȈ«‰¨(û£ˆÅ©ÿ–t`I jâŒÉLïî€N1ì7 =æþ‹_^«úØK«(€âT"•f·È4«Êf˜Ü`Äã£)ÁÎQ—%öØ  ±ÞfñÒñH#øËÖž¤Eyþºà·E)y õp©X®ÄR/çù¾Q¿Ëü;TÌU}ûŽ~O> Dr´§ÍREè‚ίCôìÓ‡Ó‹¹Uí,–"õåá±2ûòf4˜2V]+Ó«FO.¥äm÷‡^O7û®íä7…‹= · r¨ömaFü Ó^þYqož=§*ÛÆZ¾&q†×X^ÃV”Ê9ê¦B§§ò²—ýu°ø3„ÙùÚ=ÏÍ<Û86éQm,“qà÷ìvži¶P¢#—»f„H,gW ƒ0¼×³Î2 tHàż~ŸØ¥,ÝnÏD˜e+»8Oúæ?¼>]\h‹‘Hé¨US‹Ê"ÎcdnÎ `¼5\8r͹qøÍ?æ=Ô&×Bß>ÖŽ—¯duù°>[ƒm¨Ë4¤RS²\­>™ÕUFÒÌÙ¡üü¼Òç{b÷«[ö䔸÷¡"=b3‘’ZB•á•fwûxŵȇ•€Mi`ªo °"pØ  VHçT™Õ 7ÀðX¾g? "ú@Ç©ß@¯ëܾ ÐÖq YÇ;ííªå¬e£™ó)Ÿ×9¿D¥¤±¬þ­~p[,(h2ZbмOS¾m>†u¯ì+ìNyqW_ÑŽJ‡E/HvãÅÕL$u™}™0J6fŸ&«‚Ki'ÊpÃpg¬ZÉcò•µGal V®;Ç3´3ú/l(=RÄ‚á¥Uìœ]åFäÙrÊ3ÝN~j|•{0ê§ 8q|K%¡Pí¿öÚ½a’ýÒz7Q§w9IR:앾d þHÓJ=5Å´½‘ÇW§$€F(áò­Ä†8[ºO1f±q‚!R!›ÇÔGè‚z!`9~M=E´†+±öüè\Ø€A*Ÿy÷Ô¤Ç `Ž;ÆðMO§ !ÁæC68ß³å@ :cÎ ó¨Lì¡'!Ô ¤‘< ‹ÄýèL_ùlZ,bŒÏM“vS„å¼»ÒÜ“¾óµ³Žˆ´CBç{Ô›Z·ÌX¼­¶ËÔÓxä°iÂz•Ëœ§úDa–dÀ Ô5Mv{Ä´½GÿŸ_g°þñß‘ýñÅ7gŽÁY‚[J²Ì‰æ\Ma70 ByêQ9aO&g6r_y*Ár=kp¤ôÕå›~¶X¢À%ªºBœª÷Ì`o|‘Ë(èw±Fgr"ÓéÁsxbÙîýÊé Çð.©Ϥì&û…wlÜ^AQCKˆÌˆ‰°¿póJì€ðLxëx ˆ@T¶øëXØÑXêãuŒ1ösTþ °]8( ,{5ÐXAÛã;‚_tÖõ‰Àa‡­ÛN~$Êx^Àž,JòñJòÔ>"½… ì’˜ o}?¿g°ˆK¶1¨O§HodÈ¥É<˜½"Š Æ rd÷¾ájˆOˆ³®Çòu`¬"&Ò0n×vÐï¯i»k™p˜|ÜꟘìÞñ' ÙžN)MZåc¿ª}F"E¾0@^™2v~, î9B’Îõ‚gëû@®˜Z ý6°+F-gŸá`׈=õwiN*T)µ¤Bû%+Êáëc¢ë °[¤À|ªÕéç“rDC©O¿>‹‚ØÚ}²5fúôlö|b «ýí;p=©FpÒå³^¿,ÒmË%¥<³âÄsÿI¡E§¼ïðxz§Ï°-tÆÌmÓ´¬ÒŽûÞõæ¬'†r±OsÌc˜cËML–Ù±£7`á ´ÄJÙªRù¬•Ñáé¾Ï¥U¥ºçù§›7ŠFyaVÇõ?0ÎUyV¼î,J3Õ[ ‘jËÿ¾¯?a€šŽu–Ø ô}^øHÍœì5ö48Ž@Å+©€ L§H`è7ò„ˆ­‰{ÿ8}îÞÁkâR8óCưeo$jà6)üÏÔ»¥:Š´ÓhBw÷IÅú[”ò ™ :€gO?¾áš<ÿvËP-B61\`ÅzC!svž-NRƧ\Î[¼3ƒ”†ŸõÄaX ¯že"‰ó#Ïs­ºFg;-{qfÊI’Ûsêv, ­{Î>:]ŽKzŸDÔÜÂ&ê{%] À'fjiL1ö|eBo/øJ»‰ßñ&’pþÊ$½;hé¢ è@§Õög¢v\ ˜Ü¨6ë?6ÆLØè c–&h¶°øT/…šv*¥â[›k¢Eûü¸„¿u³N4 ìTØÐHq¢?" O•<¸EqŽÕ NiôµØÆ€|!†$ÄžSúÉ¡Àh¿¤¯äìLD49KÇ(x¦ÿ¢• vM:¾¹™]°W­·â 6‡x¸kþÏjTЦ…·mÄrýè€åæ8XÄ`&Ô$ÁDy{+ÔÜ¿STæûvÿºíM ?—KÐRÎQ@Ùz=Ó¯ôŸÅežÐqs2xýê¦;xÍÛ‡S¹?+>5ªßÁ qÍîM‰×ÞÚø<ãÌcýù¶2¬áϤÊ4|~@Óë=ãÎà#Ÿ-Ë¡Œ€žI(Pn¨†òÔ;¥9exÿûk×ìx+Oa‡ªªÀ —r|–×OziôââÞçËh9_ÑKC¬Ð³ßj Æö=Hñ½Ö•µÞ¹'¯t†‘!h=IsÚ*ËlC«Î?šŸú }8SC²"l‡ŒŸiâD Üçî×éËWûP`Çù"&ìꣲ9‚grO|ÁÆøÛq>)”n[*ýí¦Kg´ºói—°ÜsNdÖtUŽªwm’¶ÔaªÆâÙ*9þU),@…:ÕÑ ÜŽÁuð³q¸{q f“ÊHA„G@x×ípnI‚ç)œ|\}W\$!ëµsá[r2ÇÒ>gÁ«øñž×¢ì\ }é ¾ükdÒeIOvU‰_–é^² zc¸¿£;×Áì›õA~‡Vc@™^ô4ˆ<å«ÀçÑ?£!QßúžFø—Ó¶Mš;¨ N5¦[À‰' éó–É6þîÈLAÁ²z¤ü¾™©ë»Ïì}Z¯¬òÌT’×—Ö-iu§ŽßÄKò©ÁŠÏ,ë’âùÈ,®Q–À¾#5¼ð<iQާ/.SÜYÌî‹ÔÄ?€Š@„8$éøq›/<Ú,¦ÎRE–¯4¾óÝýºAÉԊ·ç'ç`å>ÍN· K=!¼¼( GpgzbÃÅ(Í]š³J3Ù‹yléYñ‚h.U Ó¢„Û´§ûäÃ#VÁ, ïLÊwŠ;n?o½*#>¿BS$ÛÉĵGèÅÉPüÒS+íöxq_OAÅž• ¢èZãê±ñÚ%'Ù§q4âXãò]9´B •ƒ-àÚR¢Ý-¿Xg Ko~FÏ\·Tvç™erÆ”„b‰‰¦ŸŸÆY°ÿ̧ʚ6¤}¼²· >à ŽÂýûÃë^QT€/áçÉüé™|PÞ`ºoñIá·MÖÀ?xwÈÁ†­œðaÆU²Óõ\¿Èµ³>->ÆuöC”‚ðe•ô60t÷4ý˜ óµJz'ñ|:gÞ½c®P]‘&ÚQ/ªFfqj½Ô¨„fP”5ê{jof€Bû^ñÇ»0ކ†bÒU“ÿéÁn÷OݳUC K¶ý¼!æz3,µ°Š® Ò¯º—ÏùQ²8~kãÙTR´^ÚZJZê à°q~_ãüšTbˆÓ|äúë¢ó{îk«éN^Ázo?—ÝÞâć#¼(uGÑÔ÷²˜3ïÂýsoéOÙf¬Îé0§>Ô^¶d„ƒ”K}*%Óôñ8±Åíį’ýÚ«hå´yç’&m¾³9ÊÞv Ï÷›ú–å`°†ºëfÉUKI΃xÈXçšJÄáT¾ã9:ýR«\T¾Üšð*?>C^§'+9WÈõËRæ©¡;‡ÈF_guÈ?ÈÞ(…3Îæ‚¯ò\+'éùɹ+'pðuXåâäíJsâ­¦¯"+°fP¨¦@BÏ”§NKc†æfÍ ½uH wG Åö~A¶ Vȵ«¡eÒZ€‹)`v¾ÂêÕdñÚ˜Û 7Xµ¡é1ÏÖ¥°Îˆ/ÝvÍú"ï뎤¼Wèïè]~?ο'0Øý9KöhLè›c£õ'¤h6y°æ —_ÕÈe£b+à,ÍüôëöL~óÔñ¼öX !ÙýuñwçëŸÎt¶ö©¦†m¶žx¼d)©PŽ^sue—#R@fÌ{ôìaÁºåþ6áB583ÏzÒ+ û§ä©éBóÆ·š ãEH@à³ Ë)1Ž#ùðW¤Ò¹¡6}-`Ñxö(©+#œ°Êó U ÑÿŠ\RyÒM»¤|½é*‹(}A(ÈJåž å Eƒe:{Ó´n¡Gi /n`ѧçå‹l…šêy‹dúJÛu¾¤ß°Š&Ö.µR<¢†Qֵ͆tZï8<è³üf؇cQŸ-§?áᾉ/æ-·ª\ˆ6òüܪÛÞÿºä$ŠøªšÞ¿¬ Ñcíu /|±ÔIªnfj˜¥r¦Ü‘{žÞá<0Š– ˜‹[zù?Pwzƒ©—ÄÔÆì? HJ½ñD š†YÄí€ ÑC Ì”È,þ-Ë ´X™«ÔgÿK©XŒ@ú˜b‘t@s(7CFYzߢ¶pP„tŸò_$ó6U͈ðfé€LOŒÄÝåÖƒ>–¦Õ/f;Ôé†uÞW"nØž[£eX0<›5®dy9õ!I»´ñíïÑ F¥b—”B¥%í A_Ç@?(ÇëhÞ`CuÓH"ŠÑ‰'©Xý/‘êH„>›“àì’‹Æ]Ëè¾uà¨ïð<½J¢šD:Ÿ@²ÂøÿÝÝ=ÑUl0<ˇ\C¸ŠÁóZd®ï£$•Ö{È*PÜŠÐ5ËKb×zm{àI4 YVcº[N«ƒQ ìUéãÅMá̇6+d§„neo ULK}Ïa0CPn}ñÎþŸÅoT”›;¤:€M³3i‘°Úh½ÕݶŸòŽþ'=í„› sÌVá{_½ÒpzÔ6¿›‡DŽB¢´Vz{1ËÜ훿+Š5&(Vͦ"3Û6©Yýó¨V—¥£z·¸€Ì'¤ç¹Ë^»\3ùÛ4Î0ÞÌÝ"¹‹cg<-¸’ýTÉ8ÜŸ±M%Û¿÷7Ã~¿  RÉfKo×Tš©_¤=?s% b4)”-hDõm7e9²“n{J’ÓØüD©ÂN23î4öv˜s©IªFEæIhü+”7®Õ-§îöêº ‘¥ŠnΟ{ÉR'ß„fŠ *!ë{±ÐE|‘¾pìjHï]ßq5dÁœäê+Œ5bùÇvbÕàßBó¶c3ú/=µÐ™[ØòlÂiñù=¹¿v¨äN`ëÛ=¨¾ÊÊÀÔQЦ‘u[×¹a„¡Ÿ[š¦~½x].Ú8ÿÆó›ùGÃzïüÏ9#ž84®‘Ñ"ž(,×òVr.sjéã•)±!½ÎZ¯kh¿¨bÃ%B¾o]þ]Ål–µ’SÊ[ÉØ3ŸÜÂjþÛŠô~-zLRÇзÄó‘­›`=o+@‡ÉvN‹•~:‡_wuŒæ—»_>¦‘2`ýøB~ø¤÷;u‹Û·›Ì—/°véÍÒ²·;c` ×™Ú¸â>mÃ?ª®¼£[{4¨üDCrP{ïÿ |Ÿ¸{$äè¤*)WXEbzõ•íR§_¤¥S:³ÄÓÝ u>% #ýqŽ:«™²ÿE»bõ.b¶˜‹ÉZù¨XoÐ~Õ„1ÇlSoÞ±Hƒ¯mxP8*Zm0ŒèOçq™ÆàÚŒ†hä–߈J J ’gºÄûƒ½ß†4wC6ØÅö9Qê4s:z½ÄNæ±µàCÇçá.ó2‡„Œl8–)¼AÁqÒPó#uÃQ!‡3RhËÚkXÒÛ¤ª—ۮ⠵ ~¯L‘ÁåXéÖƒfÒ7æÍãWž¢I[W¿ ‹,&qþk¸ý$øäZð U}6ý‰TžSãi3‹!¥É)=vå ?ü^8­2÷î!"¶o.xÛQ ¿Ê•ºï¦$¼‹O½à(µ5f™&Ýu3Ógr~ºC¥`áRû6Óúb­©‰5ûka¥k[A[!š×Y„:ht¨¦ˆ#kE¯œÉ#!@¹Ð¸Èê:99kŠJÚQÕªsñ„Ë’0û;!‡½È*Õs&¶ùð¼ÞÆ¿A Ã0* 8ÇÚ¨KaS†Ål*>÷Ù{ oœ üm ·¿Ø–I»¹Çþˆß¿bŸœû^ïE`~»5©ê$׶Ú€íjeWÒ/1n¨á¹F A¥?”çÞ}«v¾éI|/ ½5ÉZý‰æÏÉ2 „`¾<§™tÝ­ÛºÒS”kò Gé}–¢Šr¢ ØL>nP9AçÂ@«TM¾“³ˆC¿Æ¯û/ä;(uƧ®*i‡a\xzv­«ÕžjºúEý¦Òµ,Ê5,’­Fù™ÄU&±¸á\ÍÅŽ;Ú Ç> ”È^‹Ýû·$Ön§œ>0¹–¬ÓÁ¶ï¼¿‘û˜€.ÓÎŒ×X“m•Œòÿ®ÿLµw;ðXì/gˆµu¿¶…ÆŽcû:¾é}òeDvPßÞ·´ûÓ)ê›g8"áV¤“KÍ·®|S£EUÏÚ À쌋dMùÉÚJñ(þ6X?’" èZ'¯‡s‹•P èS;®u6Ⱥ€â©½´@9žrlxò²x®(:r´pþB+–)c¸ìþžibS{¦ÍÇn¥ÃÐõY;úZ`¼7e>Ç•ƒu°9?ü¢ƒ{†¼µ—qÖYS|À\cÊyewld¿ìC2S—FÙG¶æÙí¡vP´Ì¿Íï§ðI¸~r>‘’Ht”²x?& q&[ÈgëÜyüT‡í‘FvÕ°²•ª†™…Ý>¤£Œ_w;*Ñ1ÄÊÇômtQ-›¯@„·¯>{²öž{˜xC  ÕIß`#¶îçOË«Šñ±ƺl«^¡ù³køÈÖ’0ÐÈ º£Yõæˆ0InÀä+¸ÄûÊ@3¬Fu"¸.üT®‰Ç³ø2Ú¦vpà9†xz$û@± W ÑIÙ•ƒì»Ñv^0ÒÑ5Œ»a-•èíªz²øj¤¬cdy ÀSѾÉQÈ–ûÀÒ³Î1̳™Íº®-‚{‰2¯Ð{[à OÓC ·7'‡µ*£üFþˆ% ~2Œë`ÌÓc=îÌ+ìÓž Ï"ƒ§pÒ(F$ÄN2Gz ˜»ÒI XÊf<››wk>³{”XWc­bº‚KÕpeA+/Q?׃]ÿ§ýz*÷㇗-¡‰Ú~Õ¤k¯ÅÙ^ÉWf¦y½Ôèƒ.µ@ü,‡=G?‰5Ã’7H Û/$…“øes>àÉ5ÅŸ^) A­›'¶‰ùn?êQ練bNÃ{ÁÞ"ÆÃ¬.Év]qÛJE£‰ëžûO? ”¸Žÿ›;ž¨Å)z#(¾¹†¾VÆã+¦júKíNH„tñ2ï·Ó‹<.ðÄLdÕÁ…ÁÒœ–´z¦?Lõ¶¢ÿ°ÿÆ;}ŸÒû…\óâE@rw0½sµ~ª¬r¤!Jdçƒ*³ÉnÚÅ&f4$Igá?·-Šz³y—L®¡WÁ=ìK¼ìåë^C¡2IbòÐÈ©ËáÊVZ ¶:›É+ÒV™Ÿý{çLÉ-ÑÕ;¨šŽëLî“ÈW¥YÞ—eA“åÄH¡”xѰ¢Õ¿`†”UÞ÷78„=ÆàŠ~Ñ*x¾®U3}=šNþ5í}QwÓl™ˆ¥‚ðiïfì®W·$L.Qù&'µŸÈÕû´—NâŠ8qY±#údW_¤Œë³úñšéœ'¨•åÌöÒúLqç$75t8tܲ±–egáÚ ë•Ýô)&ØAhÍ|ýNÄ#`Ý—ÅêÈý=ér<¼ˆ4¾2ÛE#oÑpÆÜ\VÀ`äù¦†¯hVÀðÃ7˪&œ™¸(À§ç>#é@ sZ}o²@´ÿÕìYR*¶Èwâ×¢câÌP+:<ø·I¿€v¨W{Rþ~÷žªÃ®.ü=bÆD+—r‹"}†`¸aTˆŒl䊕¢9…];î¡kFAT&ßBõh€ã Œ¤êÙgº‡s@ÿš¨m( -r$cÂXŠ ùl•–cÒˆéågRGÈ×ÊÌf4Û‚?]H[ŽŽÂøL¦&ËÔ= $e÷ÃQ‡Ï1‡¬€v:²,È«¡%¼(¹œœ —;W°SMZŠRþ¼Äu׫ á4ÁEíéýÄȰ.>Ë—(ÂÜ›OÔŠ'à܃4x” 'Ü©“æÊ*˜öðÃn\{sÀ’”^¥Œ›ª oLLj(Ò…‰àÅ\¡Xí|›ù­Þfû8F¡‰Xä{×ZÞ;æY,&ñç‘uuZ„>¶uÝ»ðZyk˜áÝbWæÊŸêËác`hBÜM@`±åYÝcÒ•˜¼ß¬"õD[ ¬¯›7D§[Pzq ¡ v…ðÊ-WÞ¦ðO±¬-$ìy§Åb<›¬sûÄDÈŒåf::U­"ØýL™äö¥à”4;wÿŽÛ0þÿ xŠ1tV¹V=kh\ }ùIøí©Æ·C*Fu¢”Ý“Ÿ™ÄÎÈÇ”‡_6!”sØ0à/›dgv+ƒ•ŠöþæÏÕ¬{SOã”Ë3 ’nHš\&dv¸‡Ä0£—DSÜE‰ß÷¯¾jF¤ŸrÈ@$¿P 6.ÛĤ3îá‰ßM|Vyiè15á‚¶ˆѦ¤§·5™'¬*̓ƒœŶî0÷žVלØøf’>Ï!Ä펉ö‹¾ò:ñ•T #Ѱ|(W‹Ô~-tz*ÞÏøë)¡êÝ'Hùþº:&ê3¾H³RÝ3Ϣ߀ J;kp§r @~Jw~Á‰räE¼ŠqEE?“I^ØrìÅŒs"x‚³}¬¸®[ÿ¦­ñÄ¢W¤^¶)ÏÓ„|òoÊᕦœ³ƒm¯bsð=A2Ôw?y´–FP´s‘VM‰—àT““zFw… ‡1GmðÙ“6uÐ[|{ÛC#ì+ ©ž¿gXC!qà©^n:–µ Y\÷ÀR>‘ðŠÿÇHH %æÜm“äZ*zÀŠÀI i[ý&‰ |â º»ó›7Ž"i×UC\cç_æƒGZˆ½)=-&sÆ7\©ìo±±A9V>Ü•Zf`á[Õèq½¬ ¢›.‚£yq@5¤tv‹œSÝô’""ÈläA½šÐ\[:`aO3ßÌoÞ *0-1-çÞùôX™Øk,ý9§³¦9 ¾ýÏÙûI`1(Ç9`Ȱˆ#›[5%ÄH†ÙD»ñ}Qi%ñœõ_M(‹/Ün7gž K„ÜÌ Šiß+J¿dY¸X¿# †3XÔÇåÁBÿ†ÙÚÓ Éø«®Ï”§ÍE§ôº_•Úrì®ãQá+lE·,'ûáZÏ BY+ý¾=L-ã–¡ Œ[cËo­¿¯\“<€ÛÃ=©o ¼8+ôë[œzþþU5©ygÕp„@û¤aš¤3œònA™þྕ+pHGŒÅ¹‹¸“q©ˆ@)a¯SOñïf•af†àÑIÆ®à™Ê•Ïs)’ö²Qù_¬"ôR·–³•P¨ íá]WW4!±¢•B× ªHôÑ©?亡 Þ*.vƒwÈÛüâæ—½>ýˆ€'£àÿsBê%h½žÜØøz7O‹ p>¯~9Ûöõ`þ‰d·î¦£ÙI’KHoÏ>Áýà #P"çÖ[®¿2n÷VäeŒÎb>‚Ÿ?rAá¹ôd‡F8Ý»Úas+.`Œ.ä(û¹m$Æo;NLDR‹~À¼†*æß¯oøÍRñ~#Ès=·Eth³­öš5ìéMéûÉÓI>’¼‘'ŽVùÞç",pû/ÜÈLøÛ¾1ü–/ç Pû¶ÉÂf;+Èaüì|#«zG8˜ÌºW¤´éß" Ä›==„š Ö¦&†YŒ^ë¦RÜ7{ö½T£pÀÝ;`¼:©céþw¼Yãj ß§û§´‡Fže°úš2Æ¥«M!]ÏäO%@‡ÿ xw ”Š¿IrîÈ^¯‰!­´€y/©0ÚÑP6).Š1®p-±+’!Ó º˜èd¸­þ ËûLQ¬­r%chpÎx ãïÚN_øYï[ðñmþC†˜kS·¾¹Ï, ¢7¥>Ø­ÖÈû6A¿Žùó¤—®"=­äÀ'“‡ØqúŽ“Ø“î‘á#?vŠ£ÇAÇ¿ü»|Õ‡ì’þ2³€— õÜ8¢ÁQ-í…tDWµ@BãÇÕ²I„^?3¹°‡Œ‰IÌ¿¡xWçANüç_]st±ì`Cý+¤ ¡ hFVЗ:ë»9Ü8Ô܆¦ï²­,Ty¬¿÷ç«ã߸žÅ-f!$ƒ{s£[ŽhŽ4 Ìˆ°Åf¼Þð.¾›â4¥ ’Iމ’"ámV,íÛyæ>y,œ€\Zà‘¢Ö'xE«)Ëš5OlÆ}bÝ•å¦ .°;Þ“û¬Ybnâ”U÷²c³i®5¸³ÌOši`#y ég)NÈ?ëxôùí2 ìa“aÖÒAð¿3²`Ó¨ |OÊÁË×AÅuèyn·Ó„_Ùó‹à£ù8ð3îÔ.mCˆ¾T¨,™J÷°wTDËI–ÿ¾Ø÷§*÷yDJ©ÒÉ­ûù#Ÿ¿¤-wþÿDÌ—U`Lñþ=÷¶ÐíÕõ ðšmCòÕ]þ¦‡9&Ÿˆùöί,è‰ôPÙT¦Þ&âÞu£šÂ ¡é߈†9¿”N7îÄ[EŽÀüt +uÅóÔß¶* hÀF«@¡YÀ¹p@«’‘°'[…œaô}ɱtØù•í{M22q=Ð`£‡öE u,Ã\ëfiþeV£`U…ÊPp cf4øµ“š=¬ fÙâ©&OÛíg(œ†Ô¼XÏA±C´µ4ç™5þب±úlë5§'¡¬tÔBM’®°ËLY÷8Ѓ;ñ¾½8iP¹@]^¹ ˜ãXñLf‡‘5Å-^±”®V^7—ÅÏægÈÿ:U@ä ßšf’¡Ì’ÆeWãfÅ=7cê[ñhÒh„í!žP__Ð휼@`Ͱ”¥ ÀtJåÅ!Ó}{µÚaÆè‘žÿu dDŸ»ÿ§ßˆdÝ$§sø*# 5v9a[†‹/zæ–‚‚‰~Pð(Ö†çÃü¦88Ðj«z>Ú"DÊÚŸ—¡oõ¯’[áÐeܤºÛcís¯Äb¦ t!ܪ۽š`†M>8pZi C2zX‹Œ[‹Þ¶s¾½Lzve ïô_¯j·ïŽL9”ÚÆíû‹is§¿ÏíÎe¢ Ôº|L¬Õm9ž§¢vb‘a–Ì]ïΣ·ïŒ+äs]¾ ¿vV›1á£zÜðÂlO ñÚ"^%Ajž§QÒódÄX…B+#ŒÍ Ú[ X¤ça€ZC^éKp›rˆ?©•`—|U’ƒ®F0“àÐ{l`Ÿ7‹rTûΗìz4€L¶à¢ L’0Ä‹ùG²b×a)YŒ"A2yë³J­¤k?v+×™®Kù2L˜¹[ѳæý½CþÕr¤RÈ·-išþ²ºJɇÏ¢TF"Õ‰Òg¸«£"9g% èÝ< 7Ö¡p™r)R.>P}\äÒVMãôJÕx2Ã^i¯KnòlÌên¾¬™"”b¤Ò7U@wíôÑ—ê.\¡ĺ0@>sߟÁ‹u†öb´öØcýòkÀÇ/‰QÐÐÃB v• ¼#0õ _xz²›íÏ3½¤t)>øFë}çkr_àeø‘¸õƒÕ·2ÇÊç‰CÔ$=ú–pàUªªÅ3͈ÜϨ3«õ+LŽœ•1ë ˆ € „¿¬Ž~¶ræô«âÈ)*•p=òöµÌJÜçeožÛ82B\¼ÌLb[òS`¯wµãTߥØá½'Z¶Û¶£`ô^•ê+ÖkŠ Œ:ûf)kf­¯¡Ø,f‰žœH—4º24KÍôãg“ì¶²%´Š¶—Á›2ÉW:³‘}¿µa<ô,Él…ë‰Kécª!öoži‰–´UYG OùÚÉjöœzz„‡ûð;o‹{„hÂj”‡él}*H·„‡ÞPöíšþh/€u6šyÏ>ŽWƒÐâ[#ïÖuû+³ÿ¸Ò@õyh"H¦U¤Kò+¿^>aÙnïÑ_BWÞî ÂÏIX@ìzæšg»ß«©õ²a/bø£YxXhÊ 5Åö>pË[c¨Œµ}Îþ¦qÑ–‡ùqy…¡™£@¤ö>ï¶9¹î2¶i[zñöá\šÚŽÄÒ uø{Z¯ÑƱ9fd©ë‚£Yç`­Ê»7›èÎk6APâîd“ÇŽAí#‘%)2ŠøJ¸r# ?j“"Ÿ›É”»‰HÞÙfØIiÓü+zÅŽ ãÂá$ùr©C×O×ãí•ÈÒ”v²›‹aö?4=RLëÉIó½¨Ö÷ç@žÌU;‰f}¸>è.óÂ&”©Z‡ª²ŸaJŠ5ÄõØåPŒ¥)“ž‡§r—®î=‚ûªO­ëÒ„Ñûï™%°ôïNÁkåŽ`NóÉ(Päûß²xçìç»c¡‹sƯéùaµC%f5ÓZ—HpÓ÷(‘"`·B›ÕB¢{ÉoT¥¦ÊÁÜáa$ÜŸÿŠî[¨…é; ¾o©@ „-•ì¼ÅX?s‹/G L¦Œ}'—V2 £ ,R=é丅%¤ëÞýêãhTžäîŽLŽMcŒøÖÃKFÔÐfÒáºçˆ5Þ²)”}R¹»@"-Jme¾:uY 1#@t‚:J'\ªzàÆ ®ºx,4Ú™d;¥äßÌGÞŒ‹\iÒHô€å‚ŸÏÊ3EÛt+!¼Ó$ÕÇå¹a¹s ]¡®–þ¬w —Ö<Ì5ê±ôö aײ3p¨pºw߀ÖWy¸¡4×í™ Nd’Okq:Z¢Ÿ#8óõ„öšÉæs Èe¤ð}Jys óTÙˆÿä|Õ¤Sì=ñ¨¢fb€û–ÈèH‹íY„iFÈ4ZH ë\»£ÜÐÆ°žy㪑Ì9ݨ3l˜ÁrUÁ]ªº‘þ!ô,¢~a^6!´ËÁq%x'{]ˆ¦þñFVÄ{åçWÇu4·=zǃ"Æõ`V|ž«ì½àPåH^£0F ßã(¥úíņE×*F£1+-ì<òÍ``áßcTûM½Z-òØZVBg4€yÉè‹rOe† ¯.…9H}Ÿâã)”ÃæÞú¤/©0=ÌïÍn80¯¦°e—ÉÙ¯l”'¦¯ë¶€©Þâê²a¿SÆ;¨t »Œ#/ç`oï§t·ö¼ÛäŽÎÉÙ6î;‘a²…ß_}a6&ìàÈ>ô?œ„ŒÀNAIS—N,ÿÑ^æ¾uEòòóTC`S(NxõòT°×öµvÚ-«~58¹ÛІmÂa¥œâ/ÔP†õý@‰¸½½DV‚­ç«õz,ŒD›n`O»†½5RàRú)ùˆòölÔ?e¿Æ ¶äže¯Kíoàù Å8Nºï?cÜ0«k~ýúÑF<‡TQÆ$X¾ _s1Ezô ×SyêE¥qzóQéiÍPöLDt>õËÿ‰ÓÙoâ•ü¯‡÷Ef˜š'$#•šXžªÀ‡Nµ›4@¢3¢ˆ§’¸í …ú¬0ï¾>ç¾ï‡ðC»36*¤R7šf¬—NîòŠeïÙr°|¶D´áXuªTtLÅ‚h&¢|umŒƒÀ×wl ‘–‹)rls}A"WW¾—hÃë:MЩAõ=4Â,wÓHÞliÓžlÆhL ¿»dü¢Ý#ž®dë&R8 §Óˆ!&O¸ÒÁù’@/cF—>o[†.œ¯7¬ðù™á˜²êÃQÃ?œ¿’·sƒÚï1Í&Ìi¯˜nH÷>ÑR‚é ߕϰР¬R–'ÔÛy•[\_¦ê:˜Uœæ^éÂ2¡Z„—£ÁTļEû Ó!Æ òI{ ›_IuÀªfüC1£Ýõ¢éJ2ÌûŠ``ÏnˆÎZ¾5[h¿¾J“>Â’UÀŽfcöÐXµ ‰Œ”8„ɳª •HÖ£ÅÕÖÑfÈ*Y5S…<Ó9ebc`¡"ÎÉð³ŠEèéµXuŒZ+Œ¨£ž­GË3¹¬ÄÆÝƒã|ã'{.¿“#ýÙŒ¶`¹V6RͰà*œvWY›.UX ‘Ï×¹_v¦CHf¹@Ë$s°›‹ÀÙ%>@p²’>?·•QUö,beÝá_~ êGÒ´‹~WéÅŒ›kÊuº¡ ãÍÄ»RÚIÖå…å«{&}ð¨"‹£˜Š€³½Æ®é(ãi° oìwɘS¯JÇr‘\@bãE ½æ÷NŒßÛéΉGP«É¨‘}ÒÏ1oØ>HÖ»•f¶Ÿ)Ê÷ð'ôK.8‚ßÉZµþ¦éz@>n>ýTø—cµrÇ·¬ÿ5 —ÁÀxÀV[ÖzýÛáuaÓd†¿¼& á¿»þ€ 9¸6‚^Ñ£µ¸'Tpó‡-þÞ H„‘Ú p\8‡-®¾j±œ|<¬Nzw05Èa|º7ßv¦kQ$CÎbµB@á‹€T‰°™:¸ û‰#*á˜kÕJ:³²ItæÒ }wfP {)Q÷?âJù‘YœŽÑ2Û¸úû’“nÄÙ’æ85Dd‚f¤€>ÆC0?ò­)yxóaÀ|ŠyÝô´¶Zá˜Àš×*¾-°#.Ú‚xLÇ‹²ü™¹¡7¶ó—®@ ‰™ðÉÜ) ju“tT€˜8¥änòaBzÖRDüsÕ‡ˆ¿$Ú'm—É»kƒ¨97b\ŒßŒ-¦6a‚Ó1 ©wÅ…†–Bìü@z¨lcЬ‡ä¨Æšl+ÓŒ±Î(×ÖšÐ+í%÷Œ΀E(â|þ€îËj £È¾êê€gZìoJý4_±½ J5VfÞÉÈ“àÜ$:è˜ÜäI^–PõêdiZuâ:änÍ]ù–¢å•U[©®¦íÝ©Q[p Q€=x=&ŒqMд=†OT 1ú=Ò¢ûÆPA2½3c!ûI˜žàQhÉ@ËÌ*ª»Ÿõº­dæ„~Zl/ Ër»[ûe§!ïê°Ç[ÊÝ‹¡Û±nÈh/Ýø³<…ùhPhÔ`J}6@Št+ó€WÎB:‚Ñ!Ä[5‡{Øâ2¥hÄWïç(èdô)IÁ䉌ҕý09þÙ 9+ϯ 9WBZF³™Süsµ ô×[yÄ?šÿtEáSòOx=r„šh¨™Y1£Ó:„µÙy¨ÑÒYÚŽ9ß3&sE¦ƒ+òê%o†%ˆ±´MM›‚щ ]^{Ùk<Ú£Y»-B3áb÷J¥Kµs‹Ó/OëM €^püôm9ƒi!dÆ©{u½¤§ê¡r„AÞV­ƒ‹{?“¬‚]ÕDاI°øQAEÑqm>o°ÄÝ×ZÚ²íq&=Ï¢ iõ†PwÜ k¤lÁy6jÔåÐ?~Zb0 ´q¡ÀE¡ûÅj1GÍ Â—D¨ÂÏ ¥ë¡+OöB=誵y\5’ÉéäkwxåV0vÔ’æíÌÎü% êã?ÁŽ"¡ñÂTH³vj¸iB´­€å”ç¦]þ â]Ö£³°žñÎJŠEât W‹eÁþH† ’$DHB>)…²øœ¶X DSD‚2˜ Í]"O½²ôÍ• ü7G¨$–Fá²§cøé#H¤øS«Â:öxÚ "‡:Št1Õ¦©Ž"ãä¼ù›À¾¦YL°n°ÛI0Ÿ-—¨_OÖ[Ãì„Ô*ÐÃ[ì›ÐžŸÝg¦Üm*ÏÉ Ò:"Å•c{ö/žä>QjF~òH²Qÿ®DÿzÕåŒ^ÃpïÏR~Ô©“:¸:®ohÒ)·[ú:‚.!xa¼¿*CPé}•¹,êVã_‡Ë3/}ÝL‹d{,Øñ'=ÆAQ³Áê»)½¥ðêe5»¦ÌâæÑ ÍšÍák˜Îþ?X swWYØ”’áªÇòÉ´Ï¡ºýú=§©ÉÆ÷àúо$½†™Y—èÛñ­,¦ª›•Û©)àô;[J‘Âpjl`d³ìóWe›e©ƒé8šìÎç3¢ße"z£Ê!ŠgsÄ"@I«³^Q3pÎÂüxœBzà&Ðl]hn×wZNþÄÀËä®ýŠÜí’]dk gÿà]ªH•Sk׳™¾ÇÍ8i!þÑвžÛAéJ1¡F¥Ô½»«ÉÃò‹eþN-’ri¦âêEK«]W°O%Á; ôa¸s¨TFºŒýÀºaM{ñ¶>tàÒ³pL¥€ºh=IMõ ÃÄxóü9Ì—QHHÖ·V×öW¼l®>î÷¬žv(NQ˜½õ¢#±»†Kºd Y@á4kxUê–:5åI-®ë]W;.œ83ŒÙÉ­›û›úýÖyÄi¹—‘Q‚ˆ½ ²}s: >ˆ ¨’Û5[­¸ƒ®¤ac Åó/83óÒ·4ö»L_^Ôø.í ¼Éí—ü¾×[–(T©|!¦|~ jU*H˜úlŒŠƒ&[–¸yü\ÝAÃÚ ®Ð]"UÇ¢BT«¹K½çU…ÝWA¿¥û{PGƒ9¼f.Æ ja;žÕa/^èš‚D‚,+€ÅÄyLÄþÚ;ù QÅ$fÈ"ì–À—·ù» Ö{|IsÍ·bÚuø>g‹ Ò¨ú¤œ)6âZ^þf*s&P§x M¾…¼g lŠÉx=“ymSP¤Á˜`â«Ò‹µwLyØ«Nƒ7¢sÃÀǃº…»w6pãEÖ\<ǘu¯§í³{b±U~ËUN"ßç ¨.ò2Nù‘èº+ çâ¦#ª,@Ó©Ô4n¼)H>´dBÊà"ˆ; +œä©hƒ3)zc;\®>áì÷(Ê7jA·i¼œšMÒ«çY°EìýCI£$¹gûF5;Ÿsf'c}…zOó ×™qœej\ >ØS²ÀÚ'%YŽê¶Ð4‚®ÛŸt¾—³Ø)¸¤UŽb^¦ºþ’)Y ÈxcéŠdr>¦ãšß“À`X4 Î{~d^mƒçÃÒ¦}<–¦ ¼²iONrã«&ÄÙêÙU Ƶ$„¶’àd7çß%²éø¨! œHgÜͲŒŠ–a>ïÏR‹èŠÇ“ã=”bGsöèúŒî`›=BgÞeûâ½›p~Ð¥Y1#º–AW£êl&&#Ö¦T=ï`ð›ï]<€Õqù ö†¾-nb› %ï{°{ÕиnP¥>æþ“‰‰Š<^SZ-SG9ÇY]¥›îªš´e{;æMí}ƒ}{5M©©Oâ6c- &7Ë-ÝâÆû­íBJˆàA%AãÞŽ…]ƒºžÌø :dKŠ1¹‰ñÎ={£š9]HJ¼ ¢Ø.˜¢TŠ ´ð$g­a#¥Ê»ÀoIdÎÅSR?:);oèn’ß$}ç´\¼òºÂ¹”G„\òåX V¥?BàOÆ‹ï)Æ/¬—¹UP'b$Øî¸äævã-cƒ„ü…Y½ƒÆØžà* ïã‹XŒd°õêª;Œ£º4( —¹ÊU>çònÔ 6o5 —C?X9:2P$µT?޾ÁØ'aáqtÁ9é…’øÕË|“ #œhõÞ1Q £<—æ/Òt³¯"µ¦6áZŠÓײЬüh'vâÛjq ÷/Å“¬ïÎ’‰û{•AdáQÙ‡Y‚»stYÿ?,®£¦Ç€Ëvð›c†²i8¿…æ |.¬%\Ø‘c° ]—|Ù + Àbã‚4´Yd)¼O0@»v)_JJnŠÌ<ö=?ôhPÂG  Æ5rù.½¢Üsè6¤ãˆiê ×[-Ý(•óPú&­œHÓ!­4è"[÷‹o,F·z}œ£êóÐLé-ÖìÁBd³E‚KD]`U~å[Tr6ìì/l&rhëíØ†þƒÃXg±s}.–Ä7;°Ú}œAÙx‡ë„UoC®Þ^TÙÓ *ãÞÞø¸ e[§»G!žìwYp·á¥ä-¹äNöQ ü8“WsSÉ¿…*”¸°ú÷Ó!#샠ryÐýßÛÖ¾qYEEî4W \u4²)«Šá7¥¸eÓ?‚àªcÌÅ¥ø¢ÚoÖ¤ãFfS:f¼Å„¬¿ëƲ0±'ݦêÃÖÛ¬Üð[«Ÿ¨™9êlrõ)Õ°¦‘?@GÏïãSî žÇ?ÒpL;ÒÆšfÇÉÛ<]~Ï6ógþp¶Ù.v(X*­Q“À8J½'Qq›ÁÊ¥’cT°çW(ÐGÕl §y¯x¯°«(RŒ¾$mç¥Ã»á)¢ÃžFÖ¹“¿Œlƒ½´}V9š(Þ?.«ªvD–¿ÓÙ¨ZÙŠ~»$- ´èiü0X£:‡,•¡t)\ð¤ƒÓ˜þTHØ >("B6w´Õ‡Ÿc‰°–& I®h'%æ.¾îkŒi!¦ÊR̦lÏdêçö^[ÃX=æh³@Ô~¹Ôö/z²Ñ­šœ$2–Ä'!JeÛcZn¬é/íú9ƒ—Ko¸® ‰âL™þoþPNïÏüÀÍànå\†á6ˆ„ªw9Åò3Ø};¥z¹Æ‡Ò˜Ÿ÷F°U݆¾¤ËªK;Ù®©†ù¥uœK 1Øåpßf’|ˆÖÔ¬¸©gSŽÃLQóPÙ@ôd-ê(¯²ӚͦÁ.ÊcYØ´@÷ØÂ«©‘ÈQü$ÞèI•ŒîîNg¥R|ñêà•ód1›–…G9 )*_XÏ,Õø·MDª/¥óï W2zàœ½^2®õë+ÐEDBõýýòdVmœ«–O!üa¥îë먀0&I"uøqÇn¸0±Ÿõ^ ”Ê@˜‘<ªÌÎ-æ /•Ô¹¯ð#”f·3]r³¦ÌÉd ŠBq–`^R6ÅÍlJßr1Eñã·NÅ•š¶…?‘@çAϨ âM1’:Û[zïñÒîP*ïí#mµ|J$ Š%“ƒ-K„!~­¨·Ö:H4ñ?ˆ¦n0ÝÁyáÈWŽç„¾šù…ΓÆ"eæ’ÕF„‰pž±Ù DæTIdgyöÈ@í¼üBðW®(á›>áxUN–Ÿ^]^5vá^<­•®Ä<–Ó+~Ú»šÊ¯=:O·tå">œ&ð9¶0Æ÷CùToÛzŠ›ÙõV»³Ä­ª¶;„JˆŸ*¹ ŽøRäÄ"©à#ï ¿¨Qwk§FÆaŸn$scÒà—h&ª'«—´XŦØ &’Ï-ź­BÿI7Ãú]›Ì«8×Ã>Ng—8'5„IBNò屯Éú’–•ʺ»~ò&øbÉì@0ùKج”ä#ÎÒܪÉÃpAq¤@Mœµ >K Û,ÜI¢HâToi&›ÓsMäSLJÛ,)–ß™ ·÷YE õš»mçq*½É§§4M1ö—ŸÎ=(ó°õžË?*#!6aÖgx;XèTmãý4™ôæ¨N{Ì[cUxeIm™Öè &¯wQÅh°TúqEì,k“¼·qPëÅÚ›wA«Ö=5Ç’QZ¨áôrËO>‹…ØXS€Öf½«3ÍzUò˨HåKoß6x–Â(θ+áÄ;–YSF™©?åœP®²ÏZjÕY×4boíªõŸï€WómÂÿSùˆ!p2[Óê?k.+D°7‚9óŠÛd1½ }Úô¢6ÝC¦Z_¡**^ÛˆÇ#¿‡E9Tÿnq÷F=IÛ´H7­¥kHâÒE'áÛ•ŒªyNý¢DHÚœãZ™Ê&ôÑ¥QÄaÛÄ` ¸0ž¾:~T}T¹gÛ4 n;˜<£m¿p&´›åÚá¹Ï:Swã—’ Ï";*i·5žo 'n½½LR˜Ój@§®¦'FKt‘äÖ’*Í òD+¥å|4A–ÔÈok™ÌÑ®[28x™î´¤LÞ9¶1Ç I¯,‡gú—CŒùï÷^)„s´þòQÌ#ñ £ôrCÖ HØÍþŸBç?5½ÇßÓäLp·1±|— Yý/^ß\LH(.Ý[ÓBÕ¡>¾q0ÖéÛe½ü]Uݳ”´—låÅÚ©|±ëãÄü;UJfQ›$L}æ4ÖÕ÷øñ O\¢VíY™+ë<ƒ†6åxxaú7m —¦¯qœ×.ªè‡›Ç™º´³OüßÒHã}|«æKú(‰¯<šŸ¾©Ä=Ž‹{†¬g3¥\رdUÔ/š¤€Âï]Šøl~ÓŸÕÏü…ü„?. Ë¢Õ­x§õβgÁv6ú¿ÍξåŒ~ßqÂhM¹Ý`v¤|‹*©mcÛ4payuþÖ*®–]ÎÁÃÓk­É@Ëo¤¼ÓÂðø›¥Å¨e­Dñ¥x±;¨Š¥€¹Ý"?‘é÷;[Ôݶ§é}Al¬ ÄÞ¦ð9«œ@?&k£`ü¨øTZDQìr’ ÍëMPD¹°¬ôüŽ„’‰øÒÃl¹àô82¾O¹ Ћº¼°áØI†¤ÑÂöÔØœC¬Oz±á%Ø~_w¨ÅV©?k ïž Ž1UñùÃ&€†g1! ¦(árR2ûUaM-Ï"xuM§¢ „ŠÎÛ™J.súÐME´bͳK¡¢71Mfù"Ÿ²Ebe¶»õ øóðìíP£%ÊÙùBôòj:¾1óˆ–~°R¢zñÀKZÅұ씭èUa³dæš»wbx§÷_kzè’æÿù¦ÔT[ƒ€Ä ,q²”‘Ý+Ò*Óg³Ìî$‹ñŒø7¶E\3ûÑ–]¤eäáô#EãÆfÁè~Z sì8VhdÖõÒU/…g¸ÁT˜4÷ #]Puå6xJ=Ü?¸8NËñ-‚‚À&T±ÔüÂñšP0HaïstLýM¯ÀGbz!VЫøkøØlÛF_S°“ÏÒsú7«¢ØMš‡˜‹O}<iÈî¹áÚiöÚ[B~å³j6»ð:„#°ÕéƒãQJV¯Œ nûg‡ëÙž •œe¨ïÛ¬+±õBꉂ£ îJÍPr#å–ÕMJå€\D‡IÒ2®%"?Cξ„Û ï~ù8M‡ˆóŽær/—üÿ£/Øum]uènŸd´ÐL¾šŒÙ>8z”Ïžeû"¯”óÎ@QÄn\Ô£l£ØÁ¶>tа]÷Ò¦Âð2ÌDåÿÖžZT ßF\⯋î%u…ÿµ] ¶ª“ïe(fé'TS8\öóâ‰_r;\†¢?O¯e|É"ˆ˜ˆfB—M©¬m8SJ3æóˆáÁǃ:´°½8RÓ)J˘±¶ÄÉ 9q÷¾!maVù=vÖ1§Ê;QñU¹»NƒîݘÉÓ„o¹üØ-ìpÀfp—[!ú=ˆÕ‰ 5x°nÉ À I3•þâ% …« ë¢péô´Dq¹F/,Þ¸íïZÐq|kñh9þŽMcœHÈi>u±æf¬aMÝ=$À7ãþ¾¦á(éàZ%TÀí,¯rwÊ^Ì|¸¨¹G¿]ÐÕȌ׵,ào‚¿Û÷$tæËÈ€Ç< ÓbtÉã…ù"î43â¾:¾$ƒb]ÜËø‹5¾„ÌY¾L«_2äMÚ¬ «¾]=n©>sÚ@é[µ¥®ŽüÜ3¹%:™>Ã?b¹9åâî•uUæ Ó*›>Œ¹vé{Ǻ)IVRWÎ’¬2AD>{ú'*pû)GP¶9/8æBê3ËG.÷I×_ îü«'“`±9ŠñLÁýÙžZM æÜ5òÇžF¨á ÈTæn8޵µEß°þ–Æ‹­…›üíÌvP³l~Oªbœ¦ï†ÙÈ=ªë®N“«íèäåNôıC± Qü´9T²îÀÞ¤ÃÜÜ» ™GXâB%lFVÀz›žöñæØvÒˆEà¶5 Hé‹OJWí" ˆ»ÊëFPIœ@(4ª¡:úp¾ÛÛÝÁÊfìTt]KÅæw$Öd˜Ô½ˆÿŒoߨäÛ¼ÂdÓäÿÕ“•yÈuñÔLq£i {ùBá_JÃéäw.{Ÿ:æ<£˜U¤Üz}óC õ?P_yIÆÕ=ºÚ'z€™˜½gòõíÓ÷ÜKY÷íHútŠwÆ2‚{4û|øënmº×‹¶ã£LÉïÔ~“I0\Eë(wLU½K‡Š©§]Ï;¨ãO¾ât©}Êz·{ýaƒãêžg¸^“kušú ¸n*é=3…ë=Ú!YŒ÷{[A¿Û"Q\c¥:všMâ$Õ­èЗ6dïiÜ·p¯Üô…UqÓ7@¢‚ÚE.0†UàF"(tiÚ]Vèâ? ìž}>ÐáR5³²ÄÏÛ—õâi75Mëô²ko_ÂäÜ ËöÚåsOß’ë8Èa~ì︓¼N%†¾»–xXSñg´±d—Y“rç¸Ñ?Çø1óÇ ¨·wˆ ùg¨E“¹“ýÄÝ•ÕX÷“jÚ†‰ÔD¨£u‡­ÎéYǸ¸ÈȺ¬rò² h¦œ´‹lW/=ù•°ðA(ü…c8ssé€àÖA)þøŸRS÷{Üá¹GDå¡¡\È&ÀÐ5øÈ°=9[òáù§G/KaUƒœ ݆J¼ê\Jf;ªk½á¸`\Ö¬Ÿ¿8;3dµÑ·ã:U’Þ¥ ñ%(±ƒ{' •ýÉÄ46É'¿¦W>§8ã™»õó³øÄj«Ê»Öà±俲÷ÈÀ‰ïÈ"—£­7t\FKâ*á•iL„3·Í÷a_$„ \sÖ˜kéëXK9u@ÛkàáÃ~Ń=õ8k³ÏáóûchàÓÚD¯¯§Æ‡Wz®ä~^HPÔ‹˜ ¬‡U^ÃúawzRº´¤6ñËîLGî‚͸w¥BcI‰šçÐwíñ oS $*–)…ùAˆˆÉRô’åáÄÀPÌ…gÎ0 `^Ô[û¶N¡§evóu}¥uÊr ji[Û«$9k>="aª›?ÑÒ8co>[?zõÂxQìÚ´ÐøG²W³´N§\”¿È²7÷ãŒYÖž¦O?é¹ð¢…7~^ŠcM@¹ VÎyþµL/:`WPâGM4 ÄëßÐä ®>¶5}+9«¡ Æî‡ýv°æÓSÑ?Ôa'2ÀAýMpáp¹ý®r7~¼­ 7´bSÓÍIè?Gì·ˆ9 Üä\´™£:wÕ:r’[D¯ µo ’F-BžøëÁˆCt“#(Ï]OèGú.G¨a¿XDL¡¹J<^ÅošÎ÷9:Ó[Ķ;”¢÷ å=ÞPOO½ËFì&Ѱƒ•' ‘96ê É01æ­|â+æõAy\ªò”·Alƒˆ>Ì7ŠÂýÀ£{ßõ0„XŒ7˜µfNýÜ‚€Ÿbèî¤@,“|XqªŒ¼29År^<ˆÖ´u‘>Z%áâÄP­wIÎ.è]e²i˜H`‘ê»ÃAÍGÒY†"ñYòæl³ |Ö2#,@6ÁYÁ¨Ðž#~Õ¦Ãü—ØAÔ‰7ßu‚â–ƒ}-Tqv¨þz.ï<òá÷Qõµ:Ù[\Sí©é)0ëGdm¶,"GÔ¥v[ʆˆõÛ÷>¬çpä4GïÂå ):Ró}tGrlÞZ R¹Æ&GíCpŠ3êÓî;í2BŒrÓ¢Ú-êú¸A¿ý»¸Ðî©,ÿ *¶þÉ€¶ {œ_§‘û³ ~ì‡Z_{°#†;hñ÷àûC½hî7&{•Ø}ujŽ£Q#Æ¢ Ë¥á8qÌWÅ€\£Ø%\½ƒ3Õ$;–±¥èÃÈ‚{…h¶! ¸8µÛRÇú:´æBôálH䬃-åÊÒh–HŒ ðÓTáݧ›R‚ˆÉ”S9QÔêÓ~$·9Oìõi´%¤{d›à¶7Æ’^ µ½–ÀùuAg¡«ªƒXåð2ùãe¢ìÂ$¦U›á¦iŸ•ƒ¢Ý*ÿ:.×tçyýA`¿·™tœ®´â¹ mǵ²9> ëî?9˜üÊI¨³©É¾X®Ë1YÒsT¹Ûø<ªD‚r¹›*0\®xÀ,¿$]í¶w„`s½ðfm”­wÍŸ‰ !/ MÙ+ó5›@sëßy‡}’Wà|#­¯Ìë±Ä«?œÒpú³ìc±¼'tàÎMó—ß²rúƒrxý¶€[¯ fÅCa0†È>Åà2¨8ƉL`û­•kåt„ Fðv7÷Lº×òàxéSB:Ðõ–ÐHÁ‹SÂ*ÄüdÔäãçìhO”`Ù0~Xƒ.ëh(Ã]eä¹>«½$˜<ª€ÒQçgÝĘLuæ«Vb½ 2nŽQçOýW}Nâž¡›‚QÒE¯^ÝÙ¨ªÚFЪ¡ ^š`½û;Gê¶l´õ\m¸„.Ε†Lg \:©šòÆy{ á= ZÂa—Ìd¼ƒÝϭܧ´Ý‹>f£ü½4`WËøw€ƒVoÉg¬?J¶hëRv†ëÞ·`:7´|N9K°Ö) Ç»"×n!¹5hã…ux«xƒ‰óÍL_#`s¤qÚû{ñ3aK圊TV1xÔ u• Éë#uq”‘±Y:% ç—ô Oè ©tßã³ÔÝQ#î)pw©ÈÉzÈvû+~õ»ƒß ¸±»,¼HP$šÏèÈp cËþ–ø6³AWL—¼óÙt„ƒ{‚`O« |9 DáUǘG–äÃË2Az+>lµ“dVÔée¶œC”£hë5ßôÁ;(¨Aø‘Œ}SbCÄfÓ<Òrd)$êÍm Áð–Á¬uï; ÁÖØ\·OŸ_Ep‰]:¾½Vô…³úbeDFdà>[Ù-o)IRzRkÝjÒ…á^ðïsЦ©.v@ÓÌÉ]¿útLxY”سQ"k^å¨Óz¾ŸBkƒVè—€±NüÌ`—dýEja¹íîX%Õ¼ZWsT¦Æ¹»´q¼{Àÿ9Ë®ìd>l£VÈ"„Š;¥T†Ÿ)—ÜE@¼àƒºM ²Žl3؉\º»* !ºt×MÞˆÚŒL˜(¹\l]Ùö¡·:‚ˆf³È¹îeõ•±R3z´‚€•Ž\iJ÷ù†Ï=Ç|jc0íë/„AÎ\Ñ5êzé|<À·BJ¢“Éô«yu*è€j<'ÈÐtŽèû´dp‹  /cÁ¹`Aö¤DÕÑ™_A@¹Òu ëß(Ø’ðÌY\gÂCÀ Ÿ_渿h»Ÿ¼© ÄÈÔ`#Œþ¹o·\ Û á ê™ ÿŠÇUãçò¦@kÇ´2ãŸ@î¾QÄt|ÅgibÐE6>àð" x;=s4ÞÐf\jŽRPß/ìëø¿^ÀßÐþ¡ÜxâzÄ7/P4;¥D[¿_ìÍsÊ`ÎNì~p•ÕDÄ ÷H>¡(1LåäNV^1ŒŠ)oAðvÒ›Þ´.RããŒï'h<ÄBÞ ƒ,ìf…éý)WÓÿ¢U¡m 1ü2ôj—Å=Ò `Ó1{?ú§¦ÁY©e^N9z…{JÊÛèrÊíº”8v òpI=ï9_±/?zùÑ Ø:žÉ³g¾*Ýè%é<+!ê[ ™ ¯µö«ð×”â9F°Úà–!EÓ¾‡ä,DÏŒ10Ô-õ U™ˆ­­KbÎ|.VRP¬¥ï2wZiÕ†e””§!dË8€ÚÂ;e;ÈÎâåq ¡ÓÃå»Ës)b&Õ×h×V…}GÀjí¬ Ÿú;{Ëçe³]ûá¬Óææè»ô¶Ï¦MCÌ·A¬HHÕ_Ió=¶õTé;h5ŸÚy–8c¿zÇðsÏêÈ úrgÊÁ<&*‘f÷ êåç£ö%zåf[tªbÃX &LÚ˜nõ‹{ú©…?…^÷¸¯‰™îA£5ínNöùCDød>œ ÄàÌ&±¼†Åi…µŽòD¥¤]«·Ç¿2"!¾ ƒ˜U $[š„!?T)j1IÈè\~ÖÀ&v— TÁ3#z3.µÅE?È£!üÒ\G{_ýE™q•ÈYWÒÑ6T8.5Út^'M cšo~øåj<û]ôb¡]µûÚÃò;|,­.‰Êw¶žÓïÓ…«¹äi‹,ò»1Ù‰xN·õFË#÷ôâSm¹;ËdÒQ'È®ÕûƧuNP§tÔÄø±=ÚÞÀ%w¬°ª;ÐYÉï§éôóCšŸÔµk‘ "Z‹èõ hÍŧcI jŽö.±¶:ô‘ÈÜ“õ{±…^8Á*aËÌ#5œ±¹^‹þÜcl½úòSôGÔN–Š‹Õà"ªkÕ‡?îæáˆ¥gÞ¢9lŒÚ§"‰¬™mÜé¿AÖ-ÝlÅ2¶~`±á“ÍMg¶@õí¼”¬:i°—ŸÆb[­kaµŽºßá01ø(™l2ÓL^oÍJÓԴ핟±¦¶-›¨écd—…ö—Ò#=´lK¤•7dxРׄå;7ƒ ÷¨wžB;йrŽjÇÎsS õöüòCb¸ÏƘ&£…LBA×Ô?dd^¥UÃe\Žù>‚¯¯—p:JET¢Êu—4N¬ì¿ð³3 ºÄaYíp–Âï¢N–3\a4bà Åõ6‘B²[È¢Nñd€¦jü>.@iaˆ AR’v~"E÷¸‡ëÛóšÂ «,É.‰ýüsƒÕÌØMטoñàGèÔ”dTšž”~Fêü›$‡9ísšÀ~³÷‘Ÿãcøâj;3kÃÙAÛEè§ãêµÎ-¨Õ WÎ+E*Wó(2˜Åªt®Ö’Gë0¯ÀÐkÕQ‡ÇSçzØqã™"èĬÝÀ푞÷O™“gá¡Ê¨] ¬o&@ ]²XO.žpšØ‹å¼áÊ£|Ñ.“)rþã@Ù‹{÷P £DÁ†eDìcóן‰ºëµ¯¥6Q=+Éùy&¨¡…Ö¡p¢7/Ý@_Vºˆ×œq%ö±øQ7WËÃH¾…Iðöò€yb×ú®øð½Ã~˶¾{N!täʆ†˜úXým¹on&š[#û/šæY7'`xÖ¿êTôöŸZ) yæ%£ Áñe¾«¯”S46ŠG³›Y7\mßSîà¥Õ²®—ێЄ%‘3Åÿ&Ìëä²Â¬A;Û=`RáÓ¯ô÷g(ªø ^Ìr….&ˆð4/>¶é+¥ºY”ž¨Í~¡UЇ饜°¥K50'#èQ’ÕrÈðåâ™;¶§{±Õ¢Ìä,’Êå³›ëiµœ×|y.©žÈ 0Ì¡ÆòÓÆú0¾‡ é(F]Ï·tøó.æ¢sÌP&ÌçKņ  hãŠNäQ?+Š#5.æ[£$d pé?=³xKqÓ½ÓqP îÁª°©qMBL½RÀÙb鬄~tb‰,²/ˆYˆÃ ¹Û±®èÝþ·ø#y:cèL2¨4Gh1%3ÇpNR!—'Ǥtò”p0 »\z`ô}lr¼†™ÿœšãµ¼”ÕÇeï¹)}[úÆYmòXMùU—ìF¾9øzf{—[øsôFQJݳ%NùúöŠÇï:‡F= òr1©cK¡9Û~ÌÇi2›QÈØÜ‡…V‹Ä¶&‰5ép‚Åê·)ü³2j ·îlGLô¸Ø.¬œtÓÇIɇtELçyå7¼MË’&kŠZ]©Ïà{&ìÿ _(0·Èò¥Mýç„õcRNª³Ô.Œ<›ú/sTx¶êÕÛ¼¿éYª‘KUž\œt9®Ë’ë=Ε@š—E«3ï«¢€‚x›·óêᾉµôúؽè58¢}Xj>Nxû*c¢ÑâÈpñ¥'á²3¦Ãñ©-,»ºbƒ'±I•¹êÁ‹üß1‚Eh‹\« ÐJRùxA]Óš‘«»PçÞ¹RÔY2‹ø9ÄöOÕh¬58æHc6$Z4uÌ<7d±ˆÊ‘Ü}‡øÁ—BÐm[ÚDÇIĸÌÚ;}èܧ·ê°uØù(ÅJågXuéñÒè9‘)ÞèÚ4–”ÜaÔµíç4±Ì7õó7×cÛh`ýå·Ö _n†ÚÃsò êÑN)®å­ßt·ÐÏŒ³ÐTPR†Û IŽMЏoÎü4 ûÛFå Ïß?ÖL”ÜI™ç°0üNžìŽ\É×veKã­ü[þˆ,Û%¨+²EàÁ]Mñ3 Eðrð]¦ ”Ûögš‘Øà[É Ÿ—uòÓf.Ó Î„H=ˆr56ˆ8§ w›åÓ~p‹ŒY³GAÕo®6Õ‰är›”©C1Ÿ´ô ½ñ믴v?*m•¼HŒ•¢é’ÏeiÂô”f…{Â*?–¹èmèN_ÿö·¢&‚i1›²ÝÕ©jkÅŒgO<•bë (å©â*¤£B;wÂøzlÆÔ4sÓÿ ®†ç)¢¥£¸§U­ kk‘ ëO@%Í„¸©^îA¬öÀ,ñ¡” ¨nVÎMàùó³„ùÅÒa¤ÉÒx\§›‡…1WléK#8ýºrô=Röëôšsn@´M€n«¥Pnÿ`5ÀPÂpÓ”ÉéJÎ(—ÝÃå 'øí݇šãécÕŸœ”Ú¬`íãóÔI­3± îŽ:ùH‰º9Ae·ñïˆÈ4¨õlÆQJÆQd>6'“Ä(•73r3+=Ùâ"þ30¿ãìH©, IkèÜ4gtxر¹RµHPØèÛqì²h_ WЛw«2 ª[¿Jqo!‡?¬ŽLv°¸?Eõ1OdНÐ6§3…„×›+%ëMîKÌúE`‡ÓRO…Å[[þ|kŒÏ'0˜ç‹E a!ŒP±. #’RÊÝÌ'fYc–f¢ùòZŵ_{'Ì=úaO151…ÔÈÀ¶ b+¥óXÑ*jÛTœ´B$Ï&‰s=çƒésrõúÒû¹ÊüÑ[÷ý¶¶¦wÇùëµGe÷è_Ϫ èˆcÙ×rðÉe2iœBÊ'1ªjuÙR·Ê§Ë¨íÏÇö‰[Bù×»ØAhN¬—#»Î}£@ñÃÓmQ`¾¸u¼ó¬ç¤Æí¢ rwB3t€»YàvšâÇ’p®VsÅÆÑeùiÑRè¢f â‹s`ýšs´3·A1µIðÌwsv¸suýâ?öÃ×ã¹k®¬ÿdè<¯ÅBaw‚UðÛT „&¹ÙÉhÍm€«CŸúëñSÒ0úíÅ}@|8,¹ƒXÍÍ5ÌItfJ»/+-ôgúhšøìÖ>BJ=;ž¿2¾…__ÜxsÊF$‘†ˆäKÛ ²y3hjöèh)ÁZ\ÆT×R˨š¶ØâÂ'xª@>þ÷úÖÿ憱ÏÐ/S¡q)Ë4T>õF¥vƇ)ÿœ©Z\"ŸNž’Cú|QØŽ;»Là:#õØ4Tµëÿ„8}À®HÖ¬åMs G~õÈÈ¿´ ¶e˜‰³z|/qA©»²ƒ&)½¹½ƹrq,HŸVîBgÅ»èÚ ý6yªtð&æ ïÿ˜°¦RÿéÈ•°ºjÃÞ]¥=1AEb5¤~uŸ¦!\FzƒºKD¯ži¢±Y<Ÿáx2Îg2í¹z‘ǤšRD³:d£s ü©CúÍ—>µT;¸köWw ‹Ÿ²°$ ÞFÇurÞl&h+[QLq–gQq†Ïã7ÿoˆÀ{v>±­ pݯûŸ¿Þ °Ø TóZFÌâ ­s‰æo”#ÉÔ¼¸õkžÓoœæëZ*޲â>_Û«½ˆ*¦.aµûn\ycæ%FbÞ=á#nŸBÚR¿Õ}:2gÆó¿¯€üŠr©¼êÃMzwX“OÛ¡ÝwÈ#3§ñ/À€Q³ö/}±bv-±y¸l›]Á™,é0J¤!ÂYHøn­°á‹Òå·ÍLz ôòT‡eº¨bdp@ÆcAQm§@Ÿü"ƒ¥…°Õ ‹íˆ²¤A ÿš!š`âË;Ç39siqõ¡â³Õ½lyTáæ‡[_>€µé€gà—ChW惮m¥×Y˜!;ÃÕþº59P’þ¯ÛÖ6Ñ!mîÃèå·ÝÎ%¢p¢wWÉ ¤×PÅ¿¦!k!¬“΀­Ðè´Ï—ÃW«Ò]k8Ýi^çãyDO%¤ ë¡ãY[ñ¼Ø<¼í)kO[J¤½‘IZ=|6 šg®#wN0àèª÷µ2dv‰ñò“¶÷ } šÜ·´ %‡ø3¦#Ž´dGÁØ^£*DŒ}ËÜ?åÉ`üØ5#„ˆbQBàïʈ À€–¹Xù6v“‹©Yv%²HDØÄɆyŸœÏáCÆ…³]gu"ÄCUð„Þ‰å´þdÁ´ÿÈLõ¤!¿àRG+e“n´Rø= WŽëµå¼€r¾E¢A®ÚpË¥I«èYÛÉœQ¨cAmÉûËŠ9fc[• U‘†Kòç šÈÕ€¾'€yŒÂ 3ê"ÿ? 7çÌ/DeŠj¥·¶50uNåÚýÛÝ0‹š>Xq‡„± qsi<®Öø‚$O2¡zRÃa0› Èd¸6@3lþ寄N¶*Ýd;jŠ}ÌdÃ×Võ& ²m%dž²s-¢ûoTˆ×[ÔËÒHé»™K&·ö>~Ÿ ð>¹š#®—“so¶ø?lù›F¬Ò.a0€·;šOFu¨ ƒ˜ì¨eRCµÛw@JäqÃ0²ßÅ «%Ðë_¾3`)x,xýÄR5¾¯$ Ìç”ÜKqkÙžàOBÈ—(¼»¾¤©t‰… åíè±ÆëÉèÆdæ§Z/í·,‘ ܞϢR*€uµf¯ dü=sRþâ9~ù…fÕÄ?àwhJïéex\N²Þ!‘QcCZ^Ðo9næÐª˜qmÓe£Š#ÁfÁˆÍ¨1+8ü Í,•gä‹€r*šÕÁ‘vwâ]äi˾A÷Ìm;çXÃ韧üÄXž¸Æ$‡"WRE׌G òãì[jR…JK¸8>kO8.¼¡géG:˜UÔc‹£—X¸ú½89çG½{…kª±Ÿ›z3åô4Çmæ…´)c’ã³1!ÓœÇc¦&·{zÛñå&Ø £¥u šj߀0Æ,æôÏ­;÷{áqëF¹2ròúF¡02V€^ŸîZx؇aˆ®áÀ¹;ÿ äÒü*v¥2Z$Æñ„ƒ3Û÷õ77 Ä5E˺~]¼¢3&ö˜e€ÊiЉeÐ ð¥8•´* Æ²ó£?á_âa€J{80½ÝÈX%‘˜DütdÎõN:g­nE§CÏÒ~H‹ïmÿ¥äuj-K•* 8®?{¡L=«iœª{-,ÉTO¢ÒàÝ÷UÁœª»¦æsji|W òÝ5¤qÝÿ…Ô’@ÅÚþòýûˆ36Û*Àè$ULtg›¥z)å¤ÞÙŽâE“Zj€ï>TÏ Ã­ µÝä`Æv¾HØQùc¾uèŒ+lÖ<±ºU  -›×OÈlP²adýrmœ {¹}K)ðùY¯ Féf­‡m=t²”_XÎ š‰Â³\ç‰ÇÉEÄ«í„Õ/nL½ Ö6âHÌrwŠÞ»ÅGàƒáB=O4L,ï·d(ù…ê¶h½_c0  ÌÏ»v1óNZIÎ4ªy¤bîze5EJ_ΣÙe5]§)·e ÛÔ‚±)ú›¤ |[¤ùtÍw%šÂ!ó¥#†“ƒØ8Qèu•¿]ê(Ø5ñ¥ HÅÈ5¨¨²_i:f¸ˆç%LAñï°§²¢üß^Þï#M)ì÷…@BpÊÊ:¶í"¼ b²’ûLæÕ U&šæ(ÂjÎߟ_˜ã©Ë!理 º¾0ƒ`x?…}v“,¶Q|žÝÞ‘ÄFµŽW[eÐyÔþTŽTtãÁ§Ú%æ‹Õ|¸Ê|;º·äȇ—ç5O'™ÈFN’“”øör§È5ᔾÔGÝDà†çP*”  ÚOYr624 ÿ,쓽[•zlꯔoøYÓy¶|'"¨ŸáU) wØ’ÁKÏÅêêªW4×_Õ¹X ì‡s½Î²ÕÍõ>Bæl]ƒGŠDÿÎ]9-¼ÈËpË}*Ipæ¦ù¬kN‘%eÿïÇId!ü×‡Îø°4úõ“ÆE´a!Ap…ZøšOpéYŒ'ÉL®;Ü0nÖ#]˜uª‰0¸ s¡¨‹Î¡1ö„DÝo°$ia´iÖ`ƒ‡ë°â³«ÜDX)¦”mÍPJçûµ°ßKð¿bvˆïpprùä¼aÿE0K=—|EYþÁp¹=k›åø5ÚV!ý=¥ûTž³Q|\wÈpZüÞÄ·²f^Ìq· âS¶Îõ·3ÿÈ!D ”ÕnM¤VJåE›ÿ,µB dT­=ð' Z H„"ó.JÉö]ùøèîÙz )’ňí[p ^c lìÀÐÓRLù#Ô²Èú€W =¨Q†¸x÷Yè48LÂ6•CBs‹Æ@Üšt°/Ìq†85§N¶tâ"¶BmŠõ„&sIª'ôµTÔÈiœFÏ®NÖÿU”4Èd¹/Ýoñ/}$+&–3xFˆ„¬øDo`AûÙ*¦ŸüÉ`M3©‚)€]¤ôk4àî^iÚQЬÐyPÉpkûÏbÐRIõËL°]÷nF6ñ-µ›ò¸¶CÎ\.’ô©Ç > z}äï@­{‹!×!L½¨î_º$€ÜQ!×H±«è93gøí\mAJ [Åy¨*ièÜ­ ¤Rn.ó"^o‚ÌÓHÀxí-õ*Ò˜H"éL4Uºâ¦Q¹Ÿ[,Š×&“ŒY,Ðó#–y±ñW{V¹YQW˜èYøh0íÕ[_‡`êΡ¤¨=K{F'ª~¨˜ætC±ßnŠŒNá~f?Ú®š^$1h4rgQw¹†ãƒQ]埻Þ`šC&lQ‚ã/53ܺ&"*% •öêcúsJ&Pn°¼Âð# ‹„û-N!Sb7ˆtyô¾¡[«ÛÇÃÿ€qiPÁþúÃÃP«ð!O‹ ýPÄç•RœHy¢¢ÀÁ¼ß2úÖxcŸi¸p Å„•/«'ÒX»¹ËÐŽa›ðßO’O-·;?«¤±¸ßÁ; ÆVõÑýÝE\¶îtW”_­È—iym«ëË« qW."å ßÄ*ß+/v³«ì‰U ­Åʳ‘‡F ¿þ"‰œÕ’ò Œ ¨·%Ʊ6µ××@•6£9ÒÐÑÀÀ¼¨õàÎ×O`}v ,·ƒ¡Ê_Ä*: 0îW%ojYõEóômEé#óhåI„RTFÛú25›»[ÉWÝ¡]Á/ú$rõaZÛ¼ßãQUÁõ1k„»44)°Ü„Å<€n‹×3UÈå~‰•,›'Ä;Ò—/„PTgI„?Tôçö¥×¦çNrC ,¿¹ÚêUA÷OtjïŠqœjá¿äÁCÜüJÁe[}ÖN‚uC‚+ ÛêèÏ)u ™‘×rísBKhvYØù s‡½_ è±öŸ­³Xu9-¦E-×&˜¢¼ö_|Úÿ†‡ëuŽÐÞ.6ê¢ô£-77#f_x½G"uÕO)³ØäÜý â{By‘¦äñF®¸Âei¼Ã«;-©7ê‡ÝØw2£ÌlÅÚRêaÖ&ƒ6cÚõÈ iŒ¤Ÿ=‘Œ$£¨Ú˜â+ÿB]‚œ<1 'òSÔ8SÔÒOr•Ø`k÷¬G²l]:»¯©?B#£2´¥]TÎíQÁ_þ·zZÜH´&×býxæß¤Og(†aL],$ÃÑÈFÝ8NËÙ”[Ì`­å:ý´f_x¸qmK/§‚Œ0»R”b 1ñ9÷rª‰£EÊJfØÞø¤£¥@«†ˆæ¦W'µˆ©SŠÄr%<„†Í!5:㹚y˜+ðY™™å¿$N‰|ÙŠ.AõÊÑ¥©‹$˜ñ©Ý\³cV0PM]ó>{ªÛüÖ+¸–5Ÿ 7WÞJv'Ï ^öìÉ/hH<?šd&ˆÑC&y Ñð¹»N 9ukê$˜O¯]žÚ9 Nh¢Ñܹ çì¨òá‰éßuù8Iãobç…ËæÒ¤¡)L2yH¦³8ÓÌ.ÁP“ª;XGy&ÆÌÄú?å½)ý N€q¥%áÀ˜ôÓüq9û£Ã£ºÃÿ1õY²Ìî—ÞËÁ~r,e¾ °moårº¡ZçPcgðÛÚ4²f_…s gÿiáfæ¥<ú·õ=#Só$¤ûŽ}ÇìªX½²ÂµøJ‰çš˜8ugÏ U“%\(-ë¡°pL’üÍ[ÝÙýñœ,÷=œä[_¤iäóùЄÀþ9àRÙ³‘¯ Ûñ'1Ní„ßKÑ|ª§¾Ï[eн£ˆRØ"CÛ£†¦‹Á~ÿ`~iå_ÈÕÞû³ËJêå‚–K¦[?×gÔ Ýh.•k<ÎÔGqížËÜ¢·µŒÞ»%ŸTâç»MC$PÕg$GP½ø>@3 QáúVë+C°ÑÓ“1(¥¼¢9ÈŽho/¼¸8ò·‰Ï>÷³žò^[ÛC‡2á^îMÞ囟Ú"óÄÄdjOyœ¹¸®Ì.–l±ßÈ XÀIÄÿØy9ÔdF1óž;òr¹Òßp€hËÖJ…Ò8Ѓ ÿ+äŒþý•Ú®ø"BcÁu(“ §dv=]¦Éïv¸“B>;âºõïz#JºÚTC›Ìê æˆ“û˜ä–|UQè¥ò‡;^t§Ñwh/â·œ9ƒ¤d.¹ÀŽŸXëØ…Ž[rqY2ÝØ]«°åÙ¾ƒ$9Îvn¾;–£{@Ÿ3ᇰM¼ÝëÌ8,M¥HS£°ò2¤‚',M‹oÍûW©¬>eŒ<0´Å[h2+(VPŃ“244!i‡b ‰Ôh30­æ•©d`«VYŒ…ĹÜ›´Ç…¥;ŸÕ¦¶°Ö#ôù>?¯?Û‘+¿ŒÙòù2hõ€ÈeÞ=pXä¦PÙ i¯‘žýðÛÿÉÖædj«º©ÃßTDæ1ųÀŠ©Ï/® T¯Ô„u€«£é6´2Ûù\ÉwítäV…s´r;¥ ¹*i€ûª™gl"ÏY²^yâÂÖ VG|„T7¼l_EøI€5—ú‹Þ»]ÕÅ~À‡pgMÑ¿ÇÁ"†ªôóE ðƒ„ÿM™ŸxSla8ËHv=¬š‡Þ¹9É≤ËÇ*ŽÄ­mò˜]ñwçûì»súyœ2²¡P@#J1LíÉUq])þá@PúÐ`0“§› ÅsH&ºQ¯N‰›(C^NëþÞÕ;LXgêT·\o…‚8‡¸¹ä€WXH-Oªý=1lsñVá!?Šëal@A‘œÝs?ENBI”ãxâ„Êc‰'Æ S€J•â„[²r{”t:\ Újx’§:ZíQÑÙ8¾ ÀE–ž½Ï”_bbâêZîW…ЕÚ?ûi¹œ•¯ °1AKÞcϸ{ds”Õ–ÃuЖ§ˆÑ!Eý@»Á2œYt©×›u' *©îÞè}aÕE±‹®žòPü*kyW­Â/[½…ã4v–5©Ãb€¹ÈB؄ƣÈÝ:í§vÂw•È%gz½HFÇX¢³•6âG}ù5üöîÏ.çÒÂY …t,å˜)“Œhá!åèl¨¢KßDEÿ_ɾ5BÄØpˆ½“pREUÊ\÷gOzb?Å©ùEqGÕçXØá 0]Ðâžå«Wž“SÞpü¹˜¹_n@ÐÇ¡Å󇌬h˜àë¿U¡7¶ÛÏÊ|3·ü½ÔÕ•Û+ÏgÂcÎŸØÆÕa7ÀСVÜã㺷ÂP›‰¹ê6ëI㺠sN5¬Öèæóç5Ü ÀôøP×pA"H@ ­›¾Tû&8oœÆ*Ì?¥ @Ö#ZgÐ1>½Fš¸G³KÖéãâäzÙYRX½âq+ 5xpNÌ&¹Úçhpc×Ðèüˆc$ «&Kg|îcìˆÀaR1Än´„á£Sœ»•,VM*a~N¤G”HkÜ”nXï8Ú–M»½™íïª"ãNWlaç@ÙV¡[ŽÄ“åD›_èÊÙ“ÚñrQ6/ TÐÒr#V§ë+%Ž&ã˜‘Š¿õî׃Åâp˜8KÇ xSú yÐa²Qóöˆ„´Ò•…h¹ o:Aòd‚¬MþØÔ~~l”FÖ÷]«ñ Àhç`°ŠbÚ=yzÁ]{@9x¯ jÃ]†Ø‘L8Ü…Æ«ç÷tÍ \¶énÖ¼ÉE蟃ãÇhjPÝ#Nq/ÁA#òô-A+YG¾_ç6…ç¸üŽˆ™ÆÂ÷ðŽ•û®fêø.5y1!é±Hz¹¸ghOÑ·äz`0OŽÔnù½jˆeÚÁc>™vÔ™F´‰¡oWl"h(yŸ$ìù;séÃN†ê¿X9~¸Ã¹vÉVêÊë°U †ÓKó°˜Ð€@]1…ï¹aûöõ;ÄHÓˆ8T°W/°~—É£zHâ…õ0°¨ϸÂÐR¯óÔ¢€‰e?£ÄFØtæ±\·šEYó6ù³^·Ó<Ù,–Ù¥P4MÖ³Nj—p¥Ÿ¤ÔòV9ý —_î¸â›ôk€uEKDBn'!¾<0G›³ã_Gâ]Y=p°-¢ô˜'a*eµ³šrÀ‹E“O {Å”8]Ý×âó—'p|‹xN,£¹ÊåEäqÙu¶Ü pž*²û£yá_§ò¼Š Ò]´›;±ñìlG×¾óvL/TÃÀ?ìÆ¤êk¼@%N¿Ô$ÆÖøÛªÙ}•xçÙÃþÖ¬;íÇ´Q²ÁÁ]LUiŠ6M–Œ-ÂwŒia@1î"^¼`O£7¥Óüª›É)ÍÍ6Ö•™@´–”TX¼+;.Õ ç*Mø2Ñãï–{Õsý•eaøùëêÈ_šµz´)×¾)ȘÿL!D.Å#“tvfd\¦d®j.m¯ê©¹¹o犊{ãrPOc5ìíÏóÔf=ðX¹xIDrí<òI íj™/ŽapF·Ã<¦¹xöƒÿyPû?t†%dÛŸ[ ç´à! ˆ­¦Ö©¥gnL¥ÂV8ƒ†[\Õ «Ù00ÏÒ5pâ=.¸#i ÏÀPh­ è¾<þF~oѵ)JJÊuøó_† ±`jÏ.ÕÑ HI¦b¬øæ´‰-/IuÈÌ:á± P ïádíà)ݤž|¼»»CUŠ|¡æE22èœiä…|œO£¬P mp’­”Ôíî,9"žÐ™@A]‰W%æ]Ås æùÛ|X  uÌÜl']2ñ‹¾vvÈ‘ù ò7 _Ù' ËÑçô¨TKt:ÄÓ?ÖùË,ö“ _þÓ²V ­ äɾuÖZ¹ÊYû|ôîɹ1áãX.øÞe0v‚YÏ=[½/.²Jí ›•u¿ò޼†Ò‡áÐv欂±¥âÆüÓ°³Ù KCfNðb½ÀþGl!Ÿð¬±ÓÉÑÚ4ûòáÝl圢-º, Æ!ïc4 ØfÌËϺñ‘b¯>!<„ˆñœ†ã½yÁ«’šï+ò/¸Å(·¦Ö›Ä:ϨbTBY¿‡êm¾\:¨ò׺ÕÊh‹Òi±ÚÝ$â[@ÊÛ6e3—Š×Ú½üüÄå5 >÷°‘]qø q÷[¨»Wà2” 7¾*]”ÑsäEÞÄ|×Ê2yíî**û˜É- £kT8â»O|ä¶M#¶Õ˜ìS)É@ûXïõIõ³&îD½Û¿;W1¨Û< *‰>7bïèÎé„rëÝÕuKE¢+%VÏ»_­uƒ:^sµ­œñµJ#·ÁŒø$1øî2Ïïùºö6ûô'î Æ¾eVÔõ‰íSÿa` 97ÐÅCðPék`ºÑ#µÇ~®Ä(ùuº¶ÿ.úÏ ÞêÁ'bÔoþJÍ+r`-*v3}_ÚÄë°]…x¦¸”ª`ž¶Vù‡7Ô ”ngœÖu`Ùcg›,¤Š{j÷ÞÇd%•¦¥Ÿ<”’u +†pú¸A€—³ uhÉìVó[匸õN ?¼šDñ¤éÇJaZPÓºÓ"x… ôp$s? ²}¸—"<Ù`¿0³$¥eÑÈ6æ¦'65n/ýê 2®-Xh£ ìv°DvŒï“H÷ýìÛ,†—eÖÝ_jUY„W÷Ò¡¶—½×À†Á'ágö6É[ŸŠÐÀ’] \ëŠøµ±\›0ÆdÅ‘<•–¤±^ÛPL6ÿ#ï°.Mÿ¹|!fÿZ«*(MFd[FÏ0pÍ€A÷¾|V\²sÅy¡#É‹~Xï!*$¥ÜõÐŽøä[¯u<5mL)ÁHc€wÄéU*H ¹PXÁ+ó¸]%k„ ºö$c¦‚§ iqARÒz¤<ç<>—_O­Vt¢ÆÂÚ&¼ò¥ßYÖtD#{ÎGkÒH–1ëÕ«h Y£W¶“Žˆb|ëÄÜÜ·¹ºæüj½T-%Pï¤)#rž•P‰¥ûbá+<öŸ)(ö 0·õmhiÙãtêY¯ã'™¤Ý›ÀÐüÅqúåâˆUµ¼ÛLЖéäwú; ‚+ld©bÚóõ/YB–ÕY [øý€ÝRRV.A<‡TÂç´HùºÙÇXDŒ2ý†¶Ü¤h%ÇV/ì2ul 9#ù($ºÂíR¹ZœÆé§àóÌsʇ‰~=(â÷g o“®Qàƒ#¬ƒ) šn;¹ú`ß׿zº–Çih0=5}åøu‡=‚?CRp´:ԢǘÀb¼ºÞ;ÀO¨øé|Oþ½º½-Š Ÿ·ùY{ÔZÓ2,Âè ÆÜ,Üg{ý€ë-2]3„›mÔ¯õ7§¢iß~ey@(›†]!¹J$¬Ø6§E7ÆäY‹n!J¼åÏw)”•¯2Ï9ž)¤u>Y“¦+þTéN9zf`{Çá7î©L~~|‰£ÌwíoN ”MÄ8·ü%ãÙû¿bm=LòD¡èÌkÏR^º=±µ.5‰»|§Ü9VwN¯ÃUµnP&»éYª´§eÄ«¨ÎnV/GöÄœx'’¿@}Á²s´\ÙÉM?Lû,Šl´wîeŠÉižÅ•| ì¢b^³Hn~@5ÓªN$"úÙlç÷Wÿõ²XI‹'WQÝ2Ža2C[ˆf?ìx¸bHjJì˜ìúÙ¾ˆò­x 7æKš¡¹|kOaf 4ÁÈo‘þ.U °GPw»k·\P7+Á~t7&$+:€a>q¾¹ëxK:ynøÄ½gx`=†çÖë š‰GwÃìWa™øŠæÒï ¦z`XÛ½k¼ç»&0c“µó«F9o5 m”ÒLï?IKO/ÛQÑu]Ö!zJÉ˜Š¦1‹Ö¢|Í¢!Q!6lð1(kA ÖŽxðýûLÕ´1±e/­¯.•Õñv’ÔÌU†ñpzD¢_¬bŒpÎÙw( ¨Ý9{‹ÌÃÈÆ7Cª F«ðð¿@%k‘t™8 ™7íçŠpT†ÀÉl¤a¢††¥÷î—´L»t‘@ØæzªOg$÷Ý?#<ûY‚^:Öѧ@L½»ÔÕréŽ(ž¨Ù%ˆDöqgúWµa÷E¡DÚî%Ԛʥ‚m{´…éî™ Ãt·F7„w‘}V¯Ó+âiºW;Q¦«=â\Z÷õÌüý9¢-{ðÇyÃ1Ò|•¦ªá³~ô:¥!9&2v©’SåvƯÈ"òw>1øˆ ”΀Uìlñm6íÀ4õNŽÜR†¯Âð2z/l'ïïùÔtœdJçÌGþ÷õƒg6›ÛXéüç>dlƒ\l§ÉŸ³EÉBò@fÛ¶àŸ#¾È?.^tŠ1f6ùßpÌÎrñû>”|šµÈþã™GÇxq–ÀX7ƒ¦Z®Ò(¡ü2¢åX~?|ìŸÇ*ä=ºßR_À®¢nKdëz‰²%–éCâ5‡UïXhW¨%÷˜+ë(¬û„4CrzøHáìAâÊPÅi½šAå; Ö)ÌŠ·/ÔÒ¬ñ^ÈXLz­F?òï:†ní |IM¥Îg†²Ý,ð¦@i,ðFKß<™7`ޱc㺜¤óñ ÞA@-õÄy¦gõ¦Å­²•e-¨Î«øÔVþ›ï¢4/án°Õ•“Ël+®‚O dÜÏD#"ðž»E‰2 ­t=%}ì°R|éht‚ö2Æ ³ ‰[3ƒÊøã¹¾Ë‘#6ÝeB‘!Ñ=ZÄê9›‡I«­—©ª"Ýìó3ôj0µ¥8p™@ÿ{ÁÈ™(;ÃSÕÛ ëeMñù¸¹<Þ ÍnY£cÎì?‹{Û mo½ü°w~1OôçY»‚ÆZé®ëdÒP»ªÆö  %â%³p…^eûÀÆ}˜?>d¢] 5?ï>&e†xrƒÊ {UG½ÜYöû¶.~â¾µÜqÆ8u&Þ’Du9Ÿ7oûËáÆË’måØôk«¨¨Å•G¹ÔŒzpñ­V™¿néÁy÷(×ÙÓä2£Ð¢fásv]Å–õ ÚZ¾äJCn"¦O8¡žœÿõæ'ÔfùÞ»ŒDþCGdÕ§-˜Zó÷ÔûdlJg%q‘JçëDK 9OüJX è ÖOvR~©ÀõPd ÏVãª+£2Ý‹©?)T[û4˜F ™I×Ýýæø gJy‘ªÃêðÐ 0‰¨±§q¶fiäÂ+ÖëcjBÓhÒö6¤j.h3/…ùÃUëÁw¶œì­Œn[»JÓè¿çåCJ®Z{ø`ôÉÏþUæ2hzF7}‘™kGntŸdäxyf 3÷õrAu×Z£$z'¸cb¸s¼¢ º8S€Ö+Rïðd`¬úct¨¡ ³ùdâ ¿ÈWh\îºÊ¢(ŽÄÜuÅU¹]Ú¡dç<\ÏÍ4 *ä?nÁ=†+®>†U¸OQÕlý¡Ù«4 qŒ§ÓM&z ŒMÍÇUY«L’¶†% ¿ ²˜Ña÷á±zeÖpÇþ_³;ØÞe(åQ©û } Q÷…\tìžÃYGÌCÔ?bY4ôQnÌ.nhÜ6¢ŸOé‹2ã3(§£#×:†‹ÚLpŽJÊí¥Cô†¦ôS›àú¶¹^‘¥‹?!¤ˆ>Áåò;É–‰7€9´~†%gU0Sv;7á0u¼SH˜WIoá·.’ïO‡˜lŸ9HÁœƒ,L”€*ën?ˆ±c6íÃ)ëèØ™çšÊqè 1· Þ}@ô)ùmÒsíÆËhá“TÅì/É0‰¸Å´sïʳ<Û§ö sÎ[ïZ{@ò÷ùÉ<wÔ=Òíô65r·MC»¬‘Ýô4ÙW^^“´Úr8¾³S°6’VœxY‡ÏîLîU9dæ¦i¬”@ç6 ßwéC¾vÎ(®=È×ëÙ»¿ˆoé,çÝVßyÄý:sÔ&/]‡¬Ú˜3‘hpûõÆDí6²7aH:$ØoèÎ!ÇÝè¼-,>p×}‹Ip娵kð§•ʲË9»SW—yІù~Ò ú,ŠAÐ/ž€”tÉ0üDõñ¬¦8rÏZAnÍß—Ü]ŸìG $müIO #¢$"o9eæ„|%ðlŒ+ˆ] ±/=;Ä(B±1ôœë"Ïà éNk޶8QqSå(® „õú=Aw®¿+Ÿìö¯š‡­÷Sü ©‹¯²UݹB^·YÍ”º<¿šª“fâåÖªo=hnÄŒ >äÁ…Èßç.wgLS×dY7†®šî}_1ûOv“ï(ê‹:…¹Qæ-•«ÅìÇÙ–<+Éf‰0¾? ? €IÅíp…bò1ü°½HäSÖš4ø0áçnæƒÚصB>|2nü˜&þ#=^.ãÅrˆL+Œq±‰wèïFÔgëÅ»`å#{"Ï 5åW݃ŽZ6Dz9¢öU®3ôh·SÙ®¶@±K‹œå9ü\wÎ8ÊâFn‚h3{ÃAnÊH¿ŒIßÛnÀ¡½è¿F›ÜÝ×âa¼˜í àY(c·¼¥ßí%]]”cR&jYˆî­3ÓÛI!„íAÿ4_Ô„0ÿÅôÄ”3ŒÿІß;?oò„p$¦7øot{CÑ" Ÿ‚Óìÿâ ØK}3tà D3<) S=¶I~ÚÂ’¡ESD½^M•ð…ïUŽêÛf€Tûy'bG)¨SS——'w´M`öz°ÚÎ|sí<Ù'—‡ƒ1a.çˆ[Æ*h‘éÃZ¦A‚@|}×+w š!V½Ä¶n»ØÎphÁE°ÂîªNX£‹ýo/·fæº:©þ#¦È– žœ 7øŽÌ*àÑùñä \d½ù®X)µ@ã”O®¹h…RR†úW8‘ŽÑ›Æwj_ÛUödRÀ°]KÐËÙˆ00NaÓÊÙùi‡w¯ì&È4vüÕÊþË$<à“¿-҈΀lwãÏÙ8ˆ²"ben”­¥gCYlsŠ·Ï¥y‹Ñþ!a.(q eÀv׫Û4Òø$R¼ù§ªºkz,¬¡dù™*|´‹=h nÈfO5Ô‹ Yâ&Ћ½nù3ó“$;°ÙÕYPD…Þ>ŸÅeù>—ìÌ ¯\ª§SÖû³¤£LN ˆ%r(¹v³2¾žu[R\R§ŒRMj–ÍÆcÉ4Z`ê–Ü´_½5ü!HgK%!¢aáeŒú­íÏÈáO¼ªîõIP[br]2g&Àu©ÌÉð.ôjÖúþJxYö­vQŸ=˜s{‡S-»,×ÍÙ¯™„ŽVAÒ#ò©NÓ½ŽTŸf ?þÏv@à`2­‚G4?*œ¬W6­'oÜïµJF“lÀŒJ›˜w-2ŸhkªgÚü£4ŒŠqÌö!=7­êHèMÝÓ”zp€ ¯ßÀqþù#{`TëÑo‚ãÈ‚ÖÒßçû_vU‚¢ßØÝä‡ ! iOµþ²£Gk:}œcTùç†=IC§r´: {Mrbý£ÁˇF«†¸× ¼t/9±˜ÄèÍm(Šž–dÑ®þòm~çú‚®uÕD@Nü¡‚TAE^‹Ôò`Q¤-d$4œ °$+Ë ¾^>^r^½º¯ô.?ùu%5à*uT)Àp¯uŸ/€ó‰Dƒè@ç^'ˆ\ÔßÛ:,xfÉû¹¾´{òA³-¢5T( mLKÞÎnÕ¡ pµY¬O$“Ń·QZYÚz¤|dA8ÌÕÿGœ-’¬‰~uiÔÓçŸ „´×Û4ܵ¨Ë­ä"ÌV-ÌïÉx óþchå›0g_šÆ"HÎáº_AÐU,¦Ú:¿1»RÆ7‚¿F¼†;àÊ’c.ži½=")Œ{̯'˜ÌÈétS”¡ë¼§?F˜Ñ}Í%½RŠžÁõ§#¤œ §ntØâ[A_|D"l5Âz8$†Ó>r I5"¤²`RêS=o‘s3xÝ=¢éµ\•i‹ÎT2DÐ%ß SÝ–dâIßÞÌŸK‰,WìÜud˜AÉkùE£8(þqᦞlÅÀÊ FSSw éw‡Ó¬fūרäÍ}Ø€þ©‚ÉcM|š¡ìàX}­˜Æ»¬£!¿Ë^Sö rzê¸p7•™œø´>ç"·wN»»•^’ Þ-.§4Fß븡ûu¤”}š<•,3™#7+•jÞ‘v§]úÄ'“i†N"I2Y2û–Ý:áÚ”K!rÿ+@HIž8yΰ¬5 IÞêÚÿÖ+ Í–ám VCöâHAÞj¦à$KçÉæo“•k£À’¤³W ·sb¯_‰ }tÅÚöö:ï,ohê ¥;'À‘TB9Ñ™¸r„-=¢1/|U¡Tfd4&ë„Epfç0À‰IE‚ûcäb•B¨¢Ã&W§l—§³·Œ"Æ´Çt ~Û¤¼‘¹6ùT;Ùs-á5‹D [ͺg†¹ ö£ÿe:ƒFkï}¯,”Ÿp/ÂiK$ëY=-?0K6M.Çþ¨¤äŸzðI¯Ö} Se¸q#´ä©lí^óíkÈËâ Ö­ºËg¡b°ð8)üøDÌã ¾X×å|ƒ‡¿¨†¤¥a÷7“›ãD¼¼¯„b¶s+•{jŠGpƒšļQ 9¥‹„TΞ9Øj‚7ïÈ*m›ošå·ái0ñŸDˆ= >¡ÁldRí d6±ú<¡#ºÿ¬1Y‰¼7½aW·Fg† ’äº33ú®N ™…R?ÙãЂ ykª,†¯oˆ;’³›ñdܵ=0_YõÂp#*h„G^üòâ^¸œ‘0Z¶AZâyøÌeE£„º*Þ‹Öµ¡wÜ¥í¼f!7ÚH§$û}ó?µà60X êtÜë H:ÀzŠÊ´Ï€¸´ôîµðƒt÷RÉÕ@  q´“ý-»à>¥â] ‘ýÃùѸØE«éA“êe4¸ ôj_GZQ?HÀ7Ý…]ƒ¡–”0Ž! muÆF.lÑÓ¡H’EÅ„?R@ú´87Æ8U)òž+Ìݯø¬W\mˆ:Ùæ‘}Ä!mÝ&²@ÀÀ¥ªÛ tæIB¼3ލsõR½Å”L3ïv”ÐmãíŽý]6!VÆ—¶¿èÿ\®% Ì&æ•“œœNz4i’ µ\û'IæáJ2ù‰ÞS;Dgtx¹¾Â‚NÂʧÀnߦÞC•q¤Ð`ØËßÂu?–*êEoŒâÍmI¦~üÝÐxÿ.1š7q–ÍWàE¶v<¦DÀÒÜ@‚/°«"`g&½^ƒ+ÏÌa“OÇKRqß{Ž&m°„~åNúõéªx³v$ZH!‹Õ—\”ó‘»+ºsÄ;L¸n×Á8rö³x’ ¶†‚*÷‡Zº%ñÕq:¶ §ï†täh ’/H™ýåÁTÇX' & ej¸UmMÕù¦Œ ë¿{¡ëÚ‰°:¸»1ßäôé jiqËtJ* èbSŸ„]-pöќα+‹v£¯ñ Ù®¼R†'àýcÕúƒúžDŠ—Ä.â£9Œ@òè×μ2õ•­±ÿ(=Ké.µÿ] l¶ùxá' ÈèšpAïìØK90㈼ƒßÃu¢8~Ú„ìdq¥šfE‡@ v#mͱ”¥ísÀÎðˆ¯‘™ÜÙÐëõ_6§.FìN´ïIQD€vb„YLÁ¦ %…^[tòÿ“•ýç]€l}fÒŒ‘‰WqT¤=Xy'ÌöÓ9À1•sD¼ÿLðC={M2Sæ! xqTéo½:Àc? ˆÙÏ<˜H]¦^UŸH|y¾ôÕ*ñ‹œ—ëàfˆNµ_.¡›Œ¥è82ú®ëQf+ºàôÃáçÿõKóêå™ñ«2Ža;–S£„Ïšnú!=1ƒ1Ý~W=pÜ¢G¬™"ºº3Éóa’*œ…x¥Ño­²¼¶*‡úôY"b…à#U£¨ï™ÜßüŠé»fŸ?·p©ëk­$Í*üÏûƒ>fè÷ä4tïE]r¸ò9|®MG¥G&ÙŠyúâãCD‹ÝM&hÃ&–^à±_QŽð¦&·ý:Y+ðÔš·ÖC¼@œ¼³ï*¡€‹Ž¥=ÃIá¿np¥Eg”fµª!)—Y &îù—ñ­v„àn7vžul×o_ˆÎ}$Pe|.šZùR=8€~œê mêûlH΀3ÌGAAµðÓ'—9.V¿ “ÈÐÐí³Eâ¯i‹>œT‡[!Fé}XÓbéò±Ú/r’Ïá0þ'JšV D•#TÕØ—æmÿ,KŒú_KY0÷0á/ÜÖ ®NÊÝn„0ÊB¡"*¸£^ᆒØùäûíòõr¥6Ò„Ez¬î˜z‘`¥d€Åvê6ÓØ4¦tðÔeCŽº‡êqþ õ|ÿ­kTU  _Þs'Ÿzn{07³âž: µ >z¿ieq¸– ˜2”0ºx¬Œ??"×Z«ˆ'¨Ÿš©â8„LÇs1Gs§§4š|t”삨=¶þAÈeœ¡ª=º\]Á$ð?®>Cò_Œ$žàÊ€ ÄL#ffJF~Ëæ%z(³ª^[N®µoC  »¬…]’nQ("×D7½:?êˆk¶vÔbKJTsê$Í@ó¯«8Æ¿™ïdIöÙâƒ?ºümÑÇÀ0Í]aÈ“"M°kÑÑ;¾ø;“¬T”ôëÿvØmP!—˜æDvM_ž¶šõÁÆ‹#ÝaÔÉnéaÒ]9pñë#é‡Äå³þØÚ¡¦o.= VøvƒŸ¥ÒŒXM° HIÂî¡jak<ÞZ×z?+–Øg¿Ô%©OŠçßá †6VÎc¹wÝ£RAÃN3âìh5B =T0R¹/I¿–KvÅp2Æÿ·ÃZíô„7Z¼hƒSå|Oª¤ÅN๡1äÁ‹8kp…ÉÝÛ"'lÊ TÔõá0íúßVX§Ž›Ý›bGè‘.ÂáŠD½¥•P4I÷?r÷É#¢4D•‹i‰Šó6§Ñ†rÑ!}Xß²U)zæ÷‚|ÎO…^3”:ègDÀ"jG„ÙûÊ@ïL)"Që9–D¸Lìh }XQ(îõôøß¯¥kç]XÖç•qâh’¸‚ïOçù°jØ"ÑÐR]DT V¡yç¶¢ö®n“ÕåZO‡b¸,|}+ôŸ8³ Dÿ³81¦Æ>²tz¹—3C¿@~©ÒäS¡C”C#"Øã¿%Y7ò;g'ŽGžšž°""¡»ÎW}äŸðíëã£ÇnúÙÖ9“—){QþR³LrM®÷~–ác‡°uÆi{^‰*/*§6X¬ŒBãaŠŠu¼%Z«¦äÉ9˵†O”B´kÞ#ZLËC ’Z˜2dª ƒÎ8Š·X„5²#JÅv¬1sØø–9Ö'¹fw÷.S9²¾¶›•´»©åx8Ûç—¨s_ìOæ¡U=Ÿq:xc¤Œ2LN–߬4ò¡(}œ¯ç¥T¤`$¿1ÑŸ½’ßâ„—q$ý•MuÅÀŒØÜ”à@·Ÿ%“=÷òÅèÿÉ¥=ó?ñ6¥€@ÝCÉC¯Žï»û‚Q$·5 qÎY´rB!! i|ßhá’ÿ“¼áõñ3:O£A ®¶âóÉÊ\ÚA„ÖyÛPüAH WÍð×OòóßÏ/ä_ hªé-!Ù&#?û—Ü_ó þp1w%Å불Î0/» 2©ðÿy£î**ÈÓížE}Dû«h=ðRæº×.NÚ„JtF¦xëÐ Þu'ýôþ|[ú˜ÄUÜ-«Ìò;žwâEO)ö¸®€%òírØ%ã°[¦[s=_|tÏ8_çüpq"¢Vº”…E·*àTŒ²uþÆH§˜½”ÁdCßß,m?CgL¹ŸîË—H÷Ž›/,3}µ> NÏur …{T;ÆKã`V,‘÷ùp`_hd¿!¥L¢ŸÈPYN’4K!¡Fâ·<´>çY¹§´fäµýûD0ü'56˜“è.›·šÚ­Ò7>¶{þƒ¨UP|qTª’¾¹–·="  7>tÜ7D—ï…Ñ´ÉKžïý—Ά){,ß–£ Â+l“Ý‘|¬! yù˜9Fã%ì&G~6õ¥ÛqÒ6–îÐ /NŽÏ$ Ì)¥DÂA¦À‹Ë‹j»ªÒ¿÷0ÙHñ+äWã)j6·¯FÝW¿Çáy8±im*2ÖvˆêÀEV^„jÉ—¦ÃÒøŒJ@~kÿf+î+,ÎF®ªî‰s1H‹Í ÓX/óù¤°OrzAæyz¢/÷D`çTý»ì(79Y´®dlþFüÙ]<C™0ßtœ@­Ò4Œ¨8³|˜Y – ÖJd+Y¿wf£W;½ÅŒÚÄ‘EÁ·TXü”㈟ ýçs⋯o=¡-®*Ü•pØF%HÝB€ _5-º®÷Ìc³Œï5ƒ±Iåd4)rº„­¢ ¡ˆYÖ.þŠA^æ«f7–Òн2…Özºð§Ž‰GãCuý*)ÆÌûh§îè‚xÖ±.®¤5[±‘:Ò'U‰ž}¦h\cÇíh»rïx„‰ k‹ì K¯ iP ŠÃ….ytÆ ”+‹^«Ó–hÐêuD+oÚW«`[p„Æ¥HOºg/Êç¦r9\ÐÌ€ŽàÆXõÚèy𗛃^JeºÚk'{|fl,KÿRˆàAò—$Dzï;ÃïB™-[fEQ°/EÄÖC’Ì™©‰)¼;¶ŠJ~‡Ñr×ʰ|TÌ‘±^AóøL[ªÌ‰Ú[ïoWÎ Ò| X•ús¢BÃäÖQàO3±a‡’§_G4‘°¬À&èZg0«g ñgòˆR–ÎG_Bl°¯[dÑÉ*ß@¿½g(@h¿Û»˜AúâP œ­mÁNÒ uG´PºIW›)7 IV7pOþh“q*e=ÂI’?eªm¸¦èŒË´(åWÍ!Ș4ܲü™+°œ‡úN¬®Jj†÷îÌ"³ a’|8)ïùLýþÜ¿–2]Ü»%ÞŠ;ÞÝë<{î.z²§Ùfal¯¨¾iÎ;VI­ª¥>}%6¨Û÷‰ \)tí­‹ 9•t£D¨ç– „ɱ,ÖoáÕD|zå嘠±ÿÏ8ù£Øýj¤+ð6•ýÐ,‘y]Mg°&ý‘ß¿jq¡ôÛT³’‡¾îžm¿¢©¿çžlž}mË †Ö{/³Ï)”͆U7Dà ¡÷— çÇ ¦»=EÍ<®wi¶¾§yÃ× 6nZ_Ì4TLûcãñĈ8!8§£ÍÓs­(ŽG‰ˆ+<׸¿îƒRŽ!I* ÛûQ£BOy•©rÉ„¡¥.j4RNÊPŠuj.~êkqÓÂÅ7 R¦0«“Ô*Êó¦2M> 'VVqÊ9* €E¯ºw ½†é,½`E/ÄWF®ôT¹³‘‰Üo1q朘½¶öß¡Â+zé °xŸNn_´€”2j—za'Ñõæ†~!‘€CËúDçÜ´AoÃÒ0êÅIWgp®Îž»iÎÔ?%0G ²µUH¥Ñtø?óŽêÉÞ2$pØü‰Á{DRìϷĹºØãÜ”ì›CD¤¸+£rá,8f*8mʹ@²qXŠ«• õ×¹?-P1šãÍÇö¬sÙ ·ò THß% %ÖNwâ¯Ì°¯GN"²Q0<„æ¯عúî®BsΩ*d šòòXõ]Nÿ¹¨°*9Ñ}[:är).½xÒÐ*Åâ§Î&B KåÑý×/­¯F –^Íüi-p&ÙN„ÇÖ´oõqqƯ£¥»ëö„útc0d¯ûѧ¬iü@R¨ÐVìúJi^Ó¯R®Þ&ºAŒR=©XЬ£wª˜k«o€#ŽÌµÛu!µ¸vÏÀ!oG ¦m5FGt~€ðDäWŽç)E°³õEFúž‘Ek‚½ yš»F‚•¤˜ŸÓ–NØ~Lì@úAhÒâkŒçɶúJø}O0áœRÜ¡8,lrð¯Mx³î«˜Jnò‡”r¼¬48LbÍ8‘ùeÈ |¬±M*Eë_aËa8I>& R1RÄ02b‚ŠßQå(`üw¯šøY‰–©ìo (‹ŸâÝçø“ŸÕ3ð÷\Øb;³mÀë´rTÛsš)›ªÏ¥ó£‰·”ä̦{íx‰—`.Õ—êa×|ƒeŠ^xÀ[^‰Òë›V£‰ÝŒß\úå¡×Hç"î=Çh0#º´äõ¥ 8ÔWèf•PDRnÏŒ¾…ðcˆpš0$F#?—dšÍÉP÷S¡÷¼í¯Ðº(Ü„cÅšDSòå$U—™§¬Eæ‡w>¡(Z1OÂãACÒÁÕëV=§å±äæùó“¥"cVD«¦»SßROe“õŠFÃHOÜ•š¨Ð€\{øéÆ_ÖåÕîˆf¤ˆ…;›úÔ|”pؤûd4¡SA“‰/untaßÞŒ:ÑîÝá]¶xdè„-0J_‰7dŠˆ.\®Ë꤫ƤûåŒY&ú³•$¦—+ϾÎO iæX ·¡¥ ½Šñ«=ÕHQ°æ.skÆ]Kcsù0m7¯`ü)ÚŽƒ`WKŠ1Þ|ãvÉ’²¯×Œ,©B8ဳ¡Hl"nJ€—ÉÉäXlFß]ì-XÁ†þ?_µ\óì*ã00"`1tºªá£DÐâ‚™ïc÷æ Õg¢”ô˜ö¬æLÛ ÍqO_ NÊDœ¶q{%1ãȳ2éeaö¸¬èþB™¢¬î[Reà23Û»J.üQýäk( =5uUM†Tûðx˜¥±ƒç‰†è€Ae”óz2vž++~€€"æ_Å\Kvi·8èm94Þý×$WC­9m¸Õ‹'„K;-¦ãÂ^wñ¹H×£Öt@+’"¿eö†ªåÛ É[þ?¨#ƒ•„ýë£5êõ½iUÕ5’Ôžî'~­ Vøó¯ Z[RHÇ ƒäG)$'ºrmõ¥í’4NÖ¶Iy†<ŠÕü/n{z—•R»âLy‹­Œmªÿ¹5\a±a/VÙ+å3:2>ê©sÂçÏ4}í†m Ñ镯zT-_$°l³¸‰²«3{ˆ}c€ ¸Î•§6tB©kåÈ>oö´O òK5ˆ¹ Á;cnÀGÁ¸ ÙÅÔÕ}¹kYK‚0‡Rƒ‰¸Þ±ÜŽÍ#‡òçg·N0N[¡P_=ö·á¯ŽÀ>—6«³ÈÉþŸíýî0rÊž–Z숺±€MÇ—!è&ÄÉ/†—vÿ;í» 7çHh|œ7¶»ç2Æþ@¯ú-Ôw[£6.0†\O°Ÿy.u2»Vê 'ö4^+©··ØhÔªÀ—ºN©]™yÅát©ûË¿ˆÃÇKHVñ £®mŸ úî(Ïòñ˜Àér˜{v«ô±D! ;: tH×TÎl ‘-~:g¬vñ*» ‚d!7J‹|i/úhÏQðLJ˜éEvë.¨ùCÎãJâ.X”K‡;*$^tõ¯Ì =qÊq”*ÒmõìFwòº[ÚטáÓ<çüD›ÌÞ$…ñ¸ç¨Oï²pÛ¹2žÚª¡ÂR g•Åç—¹¤1Äõ]½m)´BÐK zj¼Ó`ËÚÉQ‚h–œ¤:Û…íÃS©2¨†1ò÷ÒŠËÁQK¹pc¾È ¯1UÕGïY¬ï¼€ð®Vb M1øufºŒ{Är*Ên‚‘Æ!$_>»–œïQ=ИÞTJPý˲b—î5Á:Kâ>¼¾j¿@W†§«’u]ü|_ˆØ«stä…éÒ¶©õbÒìW3giÊÌTá ½“9zûŠ.ÇAVu\Uº7uª–aÿ1—ÙûÄ]+Á/NíÈ_äø³¼@• ŠeèHbž 8ùÞ¬d/0”Êd70€—‘à|‘º ̉ٻ`ÃJîkÖòä/ õ·´Íâ¡»£õà”VãÙ ñFL&àb /â„ÿX*­Ù:འMÀÞaM·æ"Ÿ|ƒ@h`šÃïî´-ñî¡=­{]úççé˜O<òúªºÔž·_lâh+»žl¡Š¦™LyûQÜÚ‹=I.GYœˆ.ﲟ܌}0Ò¹tUèUÎÐɺpx£i™«µ¾¦óhñõÄ´¨».^K÷vߨýÕKÝŒ„HÜ*ìy™N Z?—‰-ÐP¼S%TNŸÚ\ ü9 è´ÖôLIq’ÊÑãòjP“ÚŽv¬%̬•F í2RoØ¥A ¸Úñ s(øJJ››²*f4Æä`Fçvÿ>åj»ÕÉO¼'^•i(d¾ûƒν#`L–;ñ³Pû"2¬}ušF“½,t¯°±©Ü˜þÿ茯¯;"Á¶¿Á¨ ¯~V¦~bCl·uç€ ¼ýkYìÞ1‹Ò*CVT2~Qg.9Ê¥’ûµDÒóqyùbç…ßàCQõ i‰ešßÑô‡ó¬ßV¬ÎfCΦ¬m5ÍP×4¹îì %m¢6Ç>”ç”Ú Ç77;`¥8ÑìÇ>`ÁmÕ}„-¦ÎðS)«<ëæ¯€õ8VÙÕkŸ¿ýBÏ•/ qmùEHòU0ákÝËÔW©P=ÇÑ,ÛÒKt@š³ñÉN–¬•ù­›Gk¤âô` ïXw݉}¸‡o|C>ë.æ h÷µe±Í¦HÝý«oo™÷åå™—µ>©„œ/@Ñ~lÅçÄ G‡bTèn»SrµæK 0!^áXôë½ÏCÉV·PäŽVuÅw丳1k[ÃBò}Àù@7ŒúmX'×QFd ÊiµÄ%>ËÎðÑ*†”4\Ušý.cL_v¶`©Žå….UM#'‚½/¡©u£ju^y,'êFM›óо ¾ Éêå5mŸ}}?q=è†@þOL,5žD{ѳ,Àùs^Ä ,àè ¤tlÃHÁ×™ &Ú»sï¼…+îêÊæ‚äžÜWÿ›}>6¯÷Ñ ÿWÕÏ|oËoTêÊ'#q¾¥Ti@Sý´m»/ñ}IN!9)MLIè’ú¥4¥ó³/]ÆY¤ÓhòZý°ž"ßv;@6f"UéÐÆdpf/3“o´|ÐØÇ[žQš]]œhe{ü\Ñ`S"¨Á³ÜàEé·ç9røÀ=Ê sޏ(q²;^Çkû( ôwèÃÖŸ°}ˬÌVZ†y&2ä]z×lå” V¥tØÞ¾¹C;x"Õ hßøÌè´ü¯8X𲋣ºµþ‰Ññ˜øE~åô”Gã¢Ò˰̦,|EÓ]ƒô¦-·:Làg)Iß1çâ*Vd–=Ö4$qŸÐ©g§X¾ÍÇoÁ]–ÉH·:ÍJ˜ë-©üЏ„#$ ºPPìfslAï#ý|n:kÃy%ïCƒ*°åÊüÈhAÕ|*0аû§“³¤ö£R›sP1í ?j,k`æp¸ˆ„ÿd©UÆ1 ²%Òe|PËø½²ø©-iC$è½è.n‡ÛjéÛæS]¯ ÝåÔ’ñã4‡N"]úuÀœ?ö#d¿qyßGn•Uo_þc$31·àSÆæU©/a Æ×‘ÁÌoL_Ëu×`^ ümLmª† ã4–åÚd†7Ÿ"ŽÞÿå„9 6ÿÿljmO,&4,wgýìÃJü$…©M¾)fþc­:¬¢ö21®L^ƒPrÁ}‰]î•ï9tz„¼/ï¶ŽtL1`Oéô ©¥Ëá•…Ÿ07Òni#¸[åh.ªYE¾÷7²°+Ðqh*±q¬“1•Äcã1ÄÌ#Á8Ñ£ŽÑ;Ýш¶/ÉsÇ:?[úÏÿN1P Õ×ÓnÞ ±é5»TæòêU×Ñj9HÙLÄP³¯üJÂ÷¶·£‹dÝ’Ïíä…1i/ÿœaYJœQ"íXÜÞ"2L+“ïJñ<¬ëÿgää”~[¡ê_wb}3-Ð~ÉMd ÕUá<¬XÈîËHãDH¸p%­ïšú¤óaHà ©ò5¢úÜXþ7Œ À9Û],4ÄÈ!æé31ÂfÞÔÅþ–'TľPéëdømìmyB¯îkëGê¹’¶2°–}Ì .ºÈ|ÆßÉí,yŒˆŸÛï€|<Á%‰«Ð3FÉ7Džñ߆B‚-f#ÈÐHë <Ý>°jBÞ­†EÄð•sz½Þ¥qËCþB?U3–ø Ê;æ¡ÅÅwu ùªŽ:@wâø·º/Vr4üøFÚÆ(@ÙWëÒ} IýHäà‡É“‚ïpÒøVf¨^ç ªEÌ\»¨*|w0éÿ&‡[ǶÄ[èÀo{‹ðÖ²ƒÍAñCDós¼`ÈÜÙF.Ä ³.}Ù-ÿƒ-·^Àp†ÍUB}ÑÑæ²O‘,¬j,g9ë[¯¡qA swéAó 4ºå°ÄG²>ŸUi“‰J·Ž΀«!xõ³Áu·«ÀkfzR z‘–¡ L÷iã—õèÓRgìi?Ë»Lpœ• ˆ³ŠœÛ\ cÔ…üɇ§6ô¡½¸UVúöxÿÀ·ààèG?~†Shgn¢#Èñ=þ?vó®TºÕkŽ-ƒÅÂ&!2i)œbÁIöVÕÃTêÐFšK«ñF)e¢ V€ÚäŠað£òŠù“>ï3ú>|ÀFY–YÉTõ†  fóÔ>¦éM¾F–QZ²Õë\öïî[(ˆê^À•F3³Š‚uÕq×5œ\õÊ­Œ_÷yi°®œ^Ü#sc!ý½jžèWd¸Í6R€²ceN¯Ì3ÚÝÆM*ðxÏÆM$÷ͳ°9 Œ'êŒRâÔ‰œTs»YcDVÓJ6¤pÍ¥„ãÌ}G?É'­~‰_ûÄgË´ ∸þ””»&žG§`rB ¢°ynì_,|*.9׎«ÄsÀ’'€ÂÐЬ‰èïeHzq‡;§—šÎ)Îi‘Ü×O KÎÓˆ©mxóÝÁp­‡YÙ? MLYïl]ÏA¸¼™Î˜>¤bÛ sR2¶Äi ùï¦6uý2«i:残‚¦£±êÎÝëƒÅ¿CÕ׆,”Ø÷Z»yj×f~ÊXfÿîóh¶rîÕ«ŽÖUÕÝEÏŸQUµ0;ÌËù@§—ã˜é;3’"7¶Á`ÏpÅMê¢9™¡-ãµÌóø´ Ž»•ŽRð¶Ù&•Ðbtrâ™JOŸ|Ú@ÏÌÏI Á¤8Äy÷4:´ ®Œx¶~Ô;¾™F Öó0Ê=&·\ó»õyðp~>Ž€®—ƒ”Ïyxì)Gº:…oE¦Ì&©$O^à"+›éÒ£ö³“”Xzyu4•Ìö‡Öù/°LÿÓ£—èîk $̽rܧ.K'go‘ƒ…뼈uùÖB#1í&`%Ã̼7x¦.d¬o …ôó¬Ã+f jé­l„V±q AûØ!B—å¹òÝòÉÚ8H„& ìž@„ÿ¬êÅ< Ø%X5«®¬øc¦ºÇ``t§¤$÷ãsw!U®àWÌ–)oFˇUÙeÏbªr!ïÒ²Çm7‚“”\òÊ¥¸>Íð{aªšÃzƒÊ¸dP™«Õ9iر5Áwñ“¾êmƒ…’p[ãìÅØq8Ü ¼9G¡®ä¹¢ÆËÌz¢RW 뢎9Z‹¿U]ú@YªÒ>€ÅC óyæWÿ—™ôÅa€š>‘'n³0™¨4gbæ•€M«‰^ðêå¨= ¡¯Ñh0: 6Y>«Jf„Oæµi[æ,ÎÎ…ÊÚhÝïÒÚ¨ü6@ê—31ü}ƒŠIñoÙaL6ôå+–gÖÕ3DôÔ¨:=Œ°)Ò[€¸,Z*ŸD›Ã8äŸOʤa„Ïæ{Mù~—[þÖ:¸ß£çÒ—·DÇÕÖ2fªé›å0Ó@¥T+ Ë¦Ü´[è8q!lú5,Ô7x·ÕQÊ>‚žV_&^ýÝBAç̈ÁY*ú%í%Ê+áPWØË™Øy²¼ûsåØI]ÆN@ tú3Ô]Yuzéý¥³6•P0Á?íØKÀê…§mè¡´ùâ ô.ñËEuôç šÈÕ€çu([š>&U SÛ=‚ÕàRÖ’[£o—mS‹êY*ÝÜ4u_  tU{\%F$X°i:®fÇ6M„¹n;5×ÒÝŒ(`–”v¾F±é–ùG4+bÖ{%ÜÔ͉Rø¥ùj…×ê³NSâ‚ä­È`MY†¶-Ç1ç‘Ԫú;­uÐ'Гû­3IÀl’,?{Ìa h³Út wˆõl.}¤©NÅþq3E/SÝãøJ1<¦Å½kj½"ŠhoÃGErõ—³¤YR@Ж F7îb‹Ý¼fƒíªáˆ³’¢œ“{)± ¶”äÅ)i´§™Ï³¢ì¸Xlý (ê~€*»6µÅ¦ÜÙ|Ô'…ˆBi½t¦™'# NFÿ$ñnÐTÈ Ð—H¬b¡-Ó fVï™FÃoçss Q ËŒ²–ßT 'xfk¨R0a_ Q‘raï¹6·d¦8 O™O/¥4v„=[ÌA¹ÜÿÜãn œUNn&qÑí­ÿ3¬sÔɦݱi­@î3ÎïK›™§¯}.·'ÔŠwq¯ïš"Ãó‡íå)Ü}Õ›SžÖ¼E™£-öŽ$š0¢‡–m9^qê”_ÈNÐ60 <Á>V6Š`C¡„1Q@Ïe==åð È$Ù:µÅ¸ñ¥$ @%ÊMîÏL]eéÏò™Á.o.ÐPHºâ´¸×ð®•+?(Sþ6ÑG 1'rÕR~ÙÆôñz)q˜èƒNðïŠÃö$?ï !3ÅC¼·4ixáž·¢éÂiË;«õS èWÆ æ8e¥WŸ…‚ډ¿Ìãe"+)zçÍ¢•±Mkò\]A†o­ç1£D-}z‡^x>SJÍ}räßA÷Êëv%ªœJS3B†mÌý‘-ð¬Ï‚¦-[…*°»¹§[«UYXpâu20x7Ùìö¼‘ŒyÈ¿(™G2¼c—TqØÔÄ'§8†öŸMßD`ÚY˜Og“‘ Xˆ^Kg¨x´Bž±ÝµÏÀ l#gZG"˜uLGºÖ”‰e‰‡Æú–PmÙ£BÖ!˜Ö‡‚ô0›Óa&¬²G\®–nÌñõPòÞ»9 ·ßâð§•ŒWDÕ^À<\ÏÆmVæUûÖ™F¹žù?›Ižgû ž€ŸB¦P¡˜†cÉv»Ÿ¡+ûWª’gõA’„¯ [–€¼—>&QD­º:4»ÌWèµ%|E>Ø! p?à`ËXã-¡¢RßYÛŸÐÜB—#ö•É-œëß©ªŸÕ¼g -‚OÝH…#?*w’ap«\¼Rhs¯ÆéZs«éñ¨Àîcô4âdë“¥XgÎ2Ô‹ Œ Ùÿ]…0éoSâÚ†›‚ç“VMKçú²= nú•WM†±RË^’))Íȃ^Œ>'¶‰Á0ÝDøÓt¸kMž´ãpî Q8$…Ïx·³Õ]ÂG)'JAè wp‹iÛ›†Z–¤[:["ñgá]‚½XPï;ÜkðcÝênë±»;<Èv­B,-òû­QÉ *"5"'ÜÆÀ[פ±¡·èûÛª´Y€­¯«ÂÐÔº¤Y ï\T^à?¬sÜMìdlÕ NrÍYŒ7Ñ(c,Ïí)WôNé¦$®XÂvC†˜hBÚµ-+zgu¶qç¿RÅqØ<6,;X_\e •j| ¡dzfæÎøÁRn­Nªö5bO>žiMmVISåÅ`lµ‚uvÂg¶ÖÛ@:ªO­Âþ4(ØàZ0€iƒ}i1‘;Wµtq{•ú0kX(³›^…ê“óî3÷쓱C)Ǿâ˜8/Ñ}I­ÈMRÕ— ˆB2¸Ïk×T Ò_º²jøêƒ Fœ.Á3M Ö@ ;Z\ÎýÒA"Ìáo£¯†:¥ 2/òq\3)ü¿Ø”Ñd„Ønª{éÄÁüý :P¹l8hE]*òj9o­Â,•¬+dõpQxÜ«:Òû£±/_Ú KÒ{Â0®<ùr±‰¢[5ôµ‹.NÄq»R#,½áéB}³Ù!缟ZŽ%JµEPìä™cse;[¼„’—´XÍ)‰¿N…ÉæïÈþ ±íæk“‚ÉæÂß*d9™ îCÏFæLCÿÑfâÆåƨÿœ*•b©hýÚ¦©¤+Qw<-cÔÆ ¤¡Óip.©D¡€ÆÑwDØO”ÍÔ}ë–±\ü‚Òƒ"ÝÂ’ØôUÞ@yp~4Y&éÚÝÂù;MÌZ¡?¯Þ5•í¦Ê" †…±7~|hSu—qáÄTh"víÃÎÃÒüçš2·xf7¨½ÍL¬xì6ý{ŠÁ§g¨„Ç .÷[W¨½ú)͈º DZ0â<Àô`Éì¦4XÅÝ7!c^Qʬåfã‹Cð ÿÚÙÑ÷°¤ÙvžÐtsä ãäßÛPœß¯Iƒ_1p–ß“hÒn©å'™²T6›JÙ“óê~d1ÉŸ/±àcÆ™ “rñœ@ÅÆBز2@N¶+ºy¥r…$™S^—Hš6NŸÿ@3iwcŚᨠaîšÙÄíñ25µ) rj—Ìñê–zí–.W´û\/‹Ø1¾Ó2Cž{ó‡ÚòÓ `Ÿ²2ìÇ_ÍžnÎA2f ô®¥9`ò6|ÓJX i|ö¾ðp ÃádÕg:¤ÎH#>Òòè¡E ª³PYÉÁ`Æèj MŠ©Ÿ¨K·½¯Ix‘Ÿ´ÂІž8¦'_`Ãc§ë}…B¿ü6õ³|ay“¿2M†cEs‘†Wë£oRÐR® tÅ­5J‚÷—°Ü´«åܱ‰"ÓQöƒµ„W“.dºHÙãq1l¶mhØWø-ÕSjíæò» ¬ÃMÓ Cq~αÙOD›NÆÀ÷—r°¼+}:ÈGuvEVåØšMܦ´ÚŸÙ…[F¯y Ðý5ô%ðøðx< JŠçA"¡(bß±h8¡›µžÈš¸1>6t´cÌùl‚еl8ÑPvµüI”vÕ˜®•ÕrDÝxªBÑóvØÍ ê|ÈÞä¤ÑΆ¨n«y`…o£>v—è&{0ù.c×:¬I²K2ôÆÌN"NÒ¹š`#d˵­iÝ n$ÃfîUasG,JhµC¾¨™AÚôç¾·¶pŠ8Îp(™êÓæ¬Ñ^wÖöWP¦G©6Bé» €ÃsÉb¼œÌËW&¬3À_øŽ¾N^̉^lÞ ÉøSc@¾KðzÍrá}åâÄÞ8FÍ ØYueü0Í÷¤úJêüÞƒo,)loÕÉý’Îþõ¯|G„S*=o­B!Øn‰=r- ®þi+žÆÇ“£í{ÞÐR ú”:ÕgXH Û^‡ ÄU6ä¥VPÈBbÛ¿†á? t¥ýýÞØ»/I*¯áÉW8ª»Jݯ$TÒÕ&l>4§ËíGýûÓìQ• N`Ë8W üvý\Ï4òî?~8Oo^ØÂÊ^?‘íèþÉEAí#ËœOΊHÄ«NU‚ð:•‡ ¸ÇTŽDõ´›˜GRtøè¬•i*Ä"%¨hÞ~õ‹â8¹•"Öä=ž¥r‚4£–¸8žGa/—\:Ï Äªf1÷3‚™ûñÓMüQ]×ÖWrqZ;9äjçÒ‚HïùsßœB©Tìߣ®ãB„EµáŸœÙkŠ1`ØNï,þNˆAjÈ»ê0”É^ŒhdFCrf\¹MQ/ÆÉ·[9BËòˆ‹éà †èµ¶Ö¢s‘iœ1Ði¼ê‘¿òùú±Ø’o\zäáßÖ¨R›Q¬/è31YzŸ¯¤ðÒ@ž‚R£¹ÌçÅ|²îmÓÙ¢ÔŽEÛ àƒµÍ¸…†àˆ›°nžlE¿†–€"ͽk+#…r¼‡D»q­–|K„7Â>‡ï`ºKí °7 ûîtYº&UÔOx¨…„šCrìt_¥»y›ÎÉÎ].­F€€SšºzÀiñKCŠË½ˆ_x?P‡^ir­X€EWP´ÑL.OsœQ‰]¤Ÿ¼Üzeufm=j¡ñyO¼p­è.ÖÀ|Ÿ"†#¼»±æZÓ÷4¿%õ<»6³”Båɇ¦´b |±²H>·aüøåAº©aâÚ°<‹­äÞvPY{B®ˆ¿¦2T›tz­/Mò ež~¬øŽ¢Ÿ8£ØkoîSøA$Æ(Å•Oôá½oGŇiÞ†4E÷‰Ù •˜»’¦sÖu%1-Á¾p'ÊtF"ØRÄÃÛKÜ Ñ)ü½MÃÕ¤ìà Ù˜Ž@õÞ*.·.Ô§Nýýt%pËO¶Þ y»êWÑ B]‰ ‘´ò{Î.MSœ’Ú.è{0ÿtÖþ~9uÅöWzòÍ,',ÚÞ-ñŠ1 å3+JV:žÞ$“zEÒ*gB)©ú,d铲*¾CJ·xaQ3ð¼®Ç¦¦èt~Õ0?Í‹¢ !Ó çöiÓE»4œ…Xö:&çF 0ÄéÑ— ¹óôÌí½ê~Ýüüe¦Þgû»ZèàåÛv2ÑÕ·ÔîRÜ—äcp¼J‹aM_WD‹c|Ó«B4ÖˆëýžPþ‹[.Á  מqÅ'†{.ùÆ›Êpô~9Q 뉊3ºU€qÒÙÄXñн˜~ 9½'ëZÿÐ?mX\]r‚oØ# ­dB*ø‚H¦½†%hÌ9¾|±(^ìÀ›ãyÓIÚ»n©¹iþP]i£€X9ö’Ý÷¶]½qœ#­‚Lo'\kxA%Ò~¤ŒÄú^XÅTpF•Lá|éËœP×ÚO!cVðBå’ªÚ™ÿUZ2¡Ô¶OOLk#_X1`™!¸¬Kš ˆ·Ò†!Ï»–åJc¼6Šáúa£9+º2?ƒ–‡wn‡THXÞy)Ùƒ×mÄUX)ÙŸÆÝÅpÏ”W`œ\£7âØ 9£›—¼©BùòÙë=¢D¯,2ÌŸ;š“ÖÒúD’ZlM±`ƒ¿ôÉm‚'Tø*øJ¾5ZPzÌש\%$y»}ì±:*ع' Ä6W5|R΢È[ç<¹ÛÇv³i.q;ت{ž žOXª}ÃÏá›ã|ìåϰRßÞ«ëËNŸp$q{]zÄé`aºR k­¼bO(C"½ bîÙhÌ„89Slqý% ×Q÷'£ÍÈа.¾î”å<f›@±(ÚäÅVM4½¡ŠÞ ¬ ºæŽõ‰Û›ë÷Ê6Ãðä[°PðKŠœ0Ô¡£'§ÿe%)kW5…D=KxŸ;Y rY à Ú%¼‰gHSõui-œaþß “`Éc””ç @2ŸCX±Ò<;ÈÆƒq„WjƒÍ«;rhÆ~Ž,õ¶³ “>€‹OKËþÛs„M[®ËŸgkeP‚̿ۯ©FOКߠ*ûe–^V X$Ò…Üvý™^ÀGúÖN;_pÀ~á¥ùäÁ“Ûu¤h‡J,ØáHé ì a ³Šª³á“öH:}âu…ºî7w³ç¤¬Ëˆp°Ct¯J‰"¸»æßÔ¾ý‘¼ÇÓ6ɽðwW+æ^ÓDÑ&ÖI(–˜± Ø­Œ‘çO»×衎8Z3"ÃCÚ/y§ÏlrB¹:|* R÷ÎgZÅØÖI—’ qtÞœÇÛLNöjjúátgËÁg¹”­9Ìy í\¸¦ÆÿjùСރQ¬@y–Ûd‹}Ã(³ƒ~…┣©KÈOÜQ«¿àä‚€ ìÖeñpüämVÿ—"¤ÐZ7@Yê)³Å}ÈÈJùçekz¢ûÄ(^´3%ƒ¾=(tüaS±#'C gž o¯túþV²ÃíØU®\âÀ4(ÄÉ.s&3 m!@˜õŽÁx€Ùd3‚ú©uŒ° ûL²QaWb”g(…Í}[ ÙÜÑÙ‘°šT÷i¿-ƒôƒ°,«»*c˜h;|o³Óz®Án4›‡X'õ€o`,çæ¿JÉíøÑš®ÊÇ6NQ¤hñt l(Z?•Durüÿ-òe=m¯.Eó /ëMèvß3!—¶8èƒkböÆ„8½/óD©Þ~ö$¹‹ñ¬˜dÕ$÷Vr"÷dÄŸé´3úDï„ê$XûŸi‘;úí·i<|idôÒÀ «ã÷Lïæ ;=sª{¤–½Òükóo²¼lk®Ó"÷ˆŽÁ­0kŽ‡Æ¶Á”É7›ásW}+Sæ´î‚JÝÙ='°äP;Æè¡å^.¸6;*-~jl« %ûÄæ´ÝÂRU Òu_Ñj•ŒfÄ+/³bŠ®oªa1ü™+ .d·magÖÛ‹³™ÏU'´P øµé¤ïâY`ú˜h4¨¾›€HtͼËbÁÃÌT¼Ê?‹yä¢&¢»˜ªõ%Ùm(U¦Û#çhºå»GÊKß’’ã“]\ÙC>ðBËÁT <^ÕÛšŠÐ‰M´ åøÞºJ悊>9ÿc»j©¥ìsS}p * _!\ áþIå(À–FTM®íRñôµeV× `.ãÍ%MÄ­DA4ÖëGc“Û® Õ*a–çQÕ¿›LŠé™”¦ ÞႌÁÄL%È™ÙeÑ…ã(R1cP ´ †Kqîh¼–žÙ9 Áþè°Ã;þE°N£žŠŠ¯œIN¥€—ÄÊ¢-ˆA©ž1ûš"דE•½™ ¹)Èž§ÃÕÇh|­!¾8q”ÑÑY‡]ŒA¹pW“&ýwb®•† "_žÓfI²Íp‹§£×‚CìØË†žÜ..(>3!V*–ÉGúDtuTd°LE¢’²‘­U6%=|cÿÁ²+R0ð|LÍ­ÐmJ½AX¼9ˆ„®¸®T†gÅK1n;÷yÕd½lÌhÿX´ü»—?±ºoLÐüŽ »—B3†Aâ·¶ëýO8ÃôûxÏÿÙó7Žb)(,ã!ª_Ï]V¸gõPˆ¢Q2/C¶'ýŠ_¹ÜÿÔàbY®Ùñ!\È1z.êñÀlmÓPóšÚºîߨH¥­QÙT›†%¯GïÅØ2¼¨>=ŽÞYÜý‰b§7ø<©YeQóöÞØ¶šÀ¨-JÕbˆ¼Çç¹É/9)ãvHƒÄ?*¬RÍÁž@þ\ËsdN¹|TÔ½*4Í_9ÆBl×¥F«SRø5i>¿ØiØTÉÎV6p;ÙÁ‘oêy#eæíŸpÌê6o/7ˤŽ*®âzÓÐWf[_VQ™B9è€oÞ$_ý0z?6¢°bâ/Eñ|éÍü5’í#rY髉Ö{ÓæpNÖþôÙœöZ1uÜêq+\¢Zâ[%·¸å깘·±Ç¿à0Ãã¶1UY zóLãÀàúŸøà P~\‘<&\O‚3á®s_~õ]æâîsÊ nÛEfÃj¦`b³;Út¨¹z›V0›Dp§Gä­i.Z°ïþ"¤¿VâËj}ˆ“B´W¦ÇˆÔg ˜ðë•ab¥t¡ßYRŸ6)†¨ð¸”3Noöºq÷m÷tyŒ]·b¦×yÆwî03ìË5ÈÈôÔAþ] ‘çá]‡Þõ2ƒ¢Ê_CNnMn¾Ú±V6‰vp‘Ò=åöIz (€Î‡žöZŽ ¢lYAß¾ò˰ZìL˜fNÖC¤Cš)\È„m?…ø¼Eg¥•h1[Kèžz«LJÝ&²‰´Y¼aÆX4öb’öÉÍ¿´‹ Z¡ìÏЦ„ú¦ùq÷Åšß·YWéQPs”Ûæ¢~ÙËW8,%^]¶fÕÚ¶q'f±Edz2=%Ýäú\Ê“wUÒSTñØUœ˜gЪ—žŽ€O︛9É,¥Àèª>ÕA¤¿U!‚QM3bƒÏɪgRì¾vN­Q;Šœt;ó’ãÃì$ÛÏnBÐÉ*kÜ;JØQEõ°*'ÉftôLXéR±ŒZ —ùRì’¡Üé,{£•Dr&l\.lY2+âÑåÕø0XOdƒ‚‡Y¯tt ¢{f/w¾¸€¦Hùå׬¾bsnݱ| u= œ¢|ï±rcsá½a[¦ƒL-5ªä£˜Wغ¿¿_¡O7‚`ä|…ÂaýB*Ô¢°ËüíÅÑ zsW>î¤A±åXï1Wgÿ3hƒ½¥e)3$}¦í;`X¹¬âG+À3„lô)bœ–Å.ÆuØ2áÆ’X„í~¹þ¨ó¶CÕ›•æµh]Ãä'sê@Ã|f¾Fk”•óK%SH¯É”8‘o+ €y®{ª2c/þÎ$Óãj¯œBø¢ª‘£¹urÞìÆf׊qº£_ŸEd˳L‰R5V@ÈŒ0€j´Àѯ÷œñ¶“€=ôðža®°D6ÎïiÜê>µkXl)[& _ÕŒ3ïâ㥯¿F„&üìšÖ(Æ‚º~®q¹,þÏ)ʤ¬¡$ým%ˆëº‘£M:N DQÊz²_Û4àKŒgmˆmY ˆa†„ ƒÆÇ¿):]ØÜ‘ ù"w¡bÄrØ9"r·• BM ôÀšÆImCü]Ãp)ž­úi±­®VãzoGœ2ÌmJ&<‡OuTÑêʦT1ZG‚2ξ‚Ñ´‘ù^ýUµžuUgä¬QçŽÓúŒMKCl¹…‰¡„„{&ã?µakARÆýÅÕåQË`¿Æv3ä½ú„C!ùÓ%S Ìùè19° #\¢T;qn2ÜL|m¥Ö¬Rp‘ˆ¶³DºizÕHŠC9h‚°¶bô%}äŸç%\Iåí5yCJ‰4ee\aÇÐÇÉO¯Xî 7ÅøÊ—­&i3'u÷¿äÜÐóæâkÎÇyÆ‚Í7ÇÂ6¡>@E”_™÷t¹°_Oè)è.3 ãðû (:‰ÄµÓã¦Ç„%S[sIðÈ]%çav`ͼ.b:-ê ÕB`JÖ†cÔõà$å+Øú{Þô™®·5Ø2¸Ó{hM{Y ¹|>OÙÛ./¾4V¾5!Ñ&ù%kµ•ê°™ß&FA#ÜöÄ#ŠqÁóQšSèj¸ãÍW–\;`*¯“¿™yJBMŒ‹lÒ£w‡T¢kìŒYÑ}‚qL§§¬Ý‹ÕRȈ Éìx­W|-w•·3P9'HX(¬}?Õ qˆd 2™÷ªWÉ ƒtó¸‹H¯²ƒqkÃŒx°¾ñ¢“áÎí”_BQàþPŽãô¢:ÅmDlWf£Äž`Ë÷cÁéz¾ð!ƒ‚¶¼!hµ>lê™Q‹l]ŠØƒ–“@^§«Q×úa¿Ûr;œmHÄûu¨ò@G­kvyØÛÑR– Ž¡YÊy»7ê]½!Ý8ûˆt„5»ùuyßÚ½âò, ½¤ªNþ…¨Û\†¡:Ò-ïS‡Ê#Æ=~Å¿éãû5OPY@ ?<Þ©\ "²8’¶E^ tyÆ @*Q¯‹`ˆŠnÕ¦Ù}@ժɅ3Ч“×Z$?_Î|LÑ€C\}¨Uòã I j’Y.Ô»;44ÝH û–&•¡×î)¢”×sÜѼÒBß—ó'ÁäM‘Wé ¸2¼Ç~l‚PæHÃÙkŽ¢|üï ÌãIÿØ58?ãZ (6c5²r+)çà[›‹UkñL¤ýΪòˆ4D^ΤX}òÈÜcüòˆ_0m}FÃÐpTqxmÕ³Ù$kBº%ž@´­`Þ§á¶V¤\„º˜9»(B_‘r¼ZÐÑ ùˆê5­Ðã dm6„K•ª öøG¹kµ5øÎyë%!m˜\æ-IÎöM·ìö{ï ¡Ðsê}8M.?’5`Œ)Ð!â¶!ÛãŠRˆ²ãëô³˜ K$†¨Å¦ç…ÏY‘!néÊêaÈ” 5˜.ÎÆÀ¬^Ä|Ù_'|TO=>5ôoŒûcþmUÝXÞx"áê¦I ¸·æ¸--ÁBÒìèmºÖŒ´f›Ë"?;T­`Elp|ç|ð+z¾€‰ Ž"á|e¿‹2?rC¸¾ñÑ-Ž'˜e:æ­¨¸Ä8Zo¶<%LÌ2“ý”¾KB©…ZÎ&‘ +5ÑK8¯žØáš¶õ}‹ðÍ=1(¿FUºDñ#${´FrwóÀ0{·0u¹Ä²"zmo9ô┞dz+2r37ôïEGZÙ¶Hé™é´xÒ(F•f&pCUZü…g.NÑ}î¼JcÕƒÎëg~p™0C–?¤êŸø; á8îdS…EZþÏâÇ YÁ6™>xþ®+ÅNºŒÒ{Ðï¾óÝ/¿üFXî$þ˜Väbbñ§2A„xÛOêz™¶¢’MÂe(m­À,æ,“|BÔ¦ÌÆTø ¯Ÿ‚ƒM‹ƒPœ=ÄçÜ}hrøIÒÓ¼í£8D½e•ù]5øNƒ” ½Í8Šx½/j®½ž›¿¯G “¬1çü™):@¡zsI˜÷jXBLÛl1¦ý,ÛýÃýY=L½ŒŸ>e0¸îä.ñ=åqc¡à3`uO@¡–ÎÿìñÿV°ú•,Êøs¡¶·û·0ürÝ7h>­Š¥ we,ŠÐöÖ9 !aÔþ‰‘À¦"ææ ÑÑHc³+°ÑèaÓå˜1Ò’ðÂàµP>‹NÚîAé'h 5Œ!Áï9uqP0j1Í(¦Á׌-ý6~e÷ùõ­šÐýôŽ’¶ñ‚þ 9ֱЙæ`w·æÂ3Ú‚ªš¤Ú§#|EQ«rcÞ§, gj”·+wBDK²0©Q¶¸É%$Å3T…¶QRŠkøâÔËÙPŸk¶ý2“úÈÞ„a5^mÅ€Ìd˜H}:RüýT¤Ði$ûEìšN¾Ü-…¦\UK u-Ì e,ÒìDß}P„ÈÅ>ä&™â§=ëeE½éÞKöé¼»ùßÇ+ñ%`µëЫ;ˆêa@_*vÃ*|s¿‰8=^wÖö­|ýë5µÆB‹e„M3ÉÖ>{½¯ÆšqȺŠ\ÎCÕs|ãt˜¾Á‰}A"øÂ z°ù/$Mù Î]k%`šËÚ ä \ÈšÀ]^PÒè æ¸P~ ÍÈ™£ß  QÇdº.)z”+ÜäÄoëqX <e=ðHXâ›ö`þ‰×»nì5Ñ5™£—@3Q#¥Ïû½äž9‹r°Oø~Ø ™«‡ÕÛ3gù„Ý/ƒ¥,xPVŒ>âké"åe<ƒñ „ø°üœ˜‰váÔo¹m€A¡Hý1ç.)TÀ¤>³N÷ל`Ÿ~+ÅC™Îâ¯;jÖaöƒ² K´åO±„—&Æ[0Ê«â(@m8Ñ^ ô ¤»/€ebþC*üvÑ ²í “ÛëM»4Jšút@ Ш“¸ŽräÀêÃÈÈKž€ÏÚ´ÙûŒ€& ùê iÙ÷–ð _`ö­eØÆ<Úš.…A‘­©1Œ Èj<¶šˆ¶£™JXñÃqüŽ3S³GÔß@~“ƒ,°€Gay§‰XdEÕBª ¿O?Ï1Ð}+%SS- Kǹ*Ð&7¼ÿÖmy#ú§ü,H$>t-ˆ*mK1²Û²¹ÂJ`ÜîïòGìo¤8À)ôdÄÜh^Ht–[ïã\ï’6™ Õm ¸0ªÇZšýÕç¾nXR(‚Œ¤.ßÛßR())ñØn¿UZ"€¬XÆHc%,g‚”êP¿u'¯#¾ùáìF훋þ0o…Ș9GÙ|Î*H•³åÖcœ‘d™ ú¨þÁcÂ$4iìÒet…?(æ\ŠtAzàà[wŸîe¯Ë)ȸŒ¤ as^C¹œò4ÊS]Tà$sý$ˆ¶åŽÒöèjü…÷|ÒtøÌ’O°ä£‡€íêUé˜2AÙXä—eY±QAˆ$q¸<„VQ2ánw£·¦IÖ ÓEd%nÀQ~7Kv8‰űw>,ön`ËEW3Ø_2ÚJ±:ùAÓùýÝ%Ñ’GLœFòyjÐkfÑTþ#omŸcFDîdés…M$åÛŠx(Ûe¹M±EC°6µsÝ“ EŠ7;ªÓ5®á?5>’ù#ÌߺH¿Y <ñ¦¿Gú³ªÙ͘&q‚Ù…UÌjZÅyÅäÖ¢ß=¾I§ïWÊ ±é£Á5†iÎlâúä†z³G¹£Fŧ`?kæaç¤T%Mý¢Fì,k8!ãŵýÅ9lr¨ñ€ ôÊØû³Ûµ:1.ÿ­ËtÎPëßð²{?›ÐM¹» ¤²ÓaɸÆ6®âÉxù×»Í×›Zš§!8Rçõ˜Ïæ¿/¯`d§XÞU4ù=naÛM‚½ u@ÛšŠVÓb=»4ïŦãS/cÁU`ö¤Œmó`/Mø¶ê’p69ø'DÆåm\ZSīŞ¹Ž¨z¬"yÐZ°`‘šèÂŒ ØhÒeá­ˆDðiNêðõÙ/Èx潉ŽÌÙ­º(ñW¬†µí;ôo0´Sï Zí•Á˜r·c–Á1Cµ ÖX¤ð>j\‹zŸ;Tdu¼ÿ‘Å»ÂQªz¿­[ˆ²à² É\ Kúÿ9k?W¢ý±ö§,ÂuÅÝŽm¨¹¦á€ÆG°ý—!¬ê˜ÂÆyìÝD @U ÃCw0EqÕýP[héva§‚h6Ž»(‰@‹Æ¥þr ûÏ^¯ò›¥sÉ̽Ü&³íá²Kðꥈë¨ó‘L€“scX|•ËüOžã½Ñ!²Í»1"#2´|º`N©`ú ÛºÀJ¡¸ÿàµYéÐ8/±SËÆw¨P`áÍæ¸‚€ÒXyÞ¼»òèDýÈÙ$ì„ÝînèHFãîYjã¶ïOù ˆÂŒ)y°ê4¹ý±%^`=.Ä89æ{~t ±‚3EZÚÍ"#·ê2Ùâ6)&ân$nwG:yê9â3¿¦£ý\$€MÒê—OûvRjXÍéß^¯2L¦ûqs­Ö- ØydÆ:Æ 8æ'­‰IšM—1ªöÍÛÏi b¼•"¹±ç¦Î‰ê|’à­oHá²×k˜wﻦîk|¢¶ñŸ¼žÌ̪¼îV,€ .ôj‘²yC2±ã/üŸ ‚$ñ?è˜8èlGåÏR¼1Xd]‘^ FÂôg»ÂÿÐÍyß}.&pJx€>®…¡bbˆn‚k4þµ5Ÿ@í€Qþ[j"¿e<Å`YN;n~ŽD£¢åèÉx•cÓž@” »eß)-™ cmUõR}5ù¨8-êäbFl–3‰ÕW›ú(hñžÈ•Ú9ì±:0Å[‹Åîf†^©Â^Pc"«ÒEhï|}X‡nBVÄ(¢êÖlf"˜O ãõ²¯yvÄj\×cr¢˜Ú2>츃UiËAôï°kB¼æ}ˆ«}‰xTÆ—ëÊ0^t±|j“U,]…æ¤÷(³„“mõåû\×á&wÏ×^•/¾Äi&@½!áL9Sèæ “äñÛ„ZôÞýzŽg¡ ÿ÷èq ‹!©Ð꥙ÎW"ÀÓ|Nɨ¨%sR¿3Bv ¢U¹JBòñÑXf‚3Ú}L¢~¥{‰f£òW¨ÐýÆ6Õ2K%侎ËÒÂþ–Öâ6¾J›¡<:xŽ#èÏ€¶Œf>äèå¦58‹ÜzìÀbŽj Ÿw7çŽBÅÁŒâ™‡¾­sÎ\   ¼;›7íÃÏZ®d§Ãz\ˆÎ“x4Û'k|=º)ôÂ.#5OXø#OòÕÒG}ƒ%bj•,½Ei#›é–âLÄ€Ù‰_s½¨ÛUFÈ a梀Ø?]cØžÚšJ­Ée €sK<+e®Üºe~œ%q‘é°‰Äß6Á(ÅaÝ ã©’Ö#¿Ÿ®Ì,ÍÒÄ8°¸ëtï–¿?:Ch£ÿ]!ÎC´@z€ÄÚù…ƒ*9ixà™à*ÒìSI»¦óýžÄ¯~8d¨»M䨱ÿÌè%%ç¬C}~¬®jwAR…Ç™“Ÿá˜¨(Áb›¢†²Å¶y®È™ì@â´ŽŒ}˜àãÖú> £ýGïüÏùëg‰¾låX¼ê²t+‡’ÿ¢Z eaJH÷òÄF|ÇG½Æ¢8‚­¦P807(3[“öQ×Ôkß»á-ÿ¥Ù™ô³ú££®X ÍcdÊ Ÿ)1¸Æ"3ØÔî_?Sq Q½úTAY«ø9uåPWx¶¤:“¦ãuíâév(¦RÅ[ék¹&Ïn¼„O§$Pþ•ÚƒàŸ"øNY—ÔMC±æ±v-›\TG£H¬ ìˆ!?7LŒ§Þšf’ ÒXÇqOL|S ã¥ñØÛ’ág €¶î€ÁPJ·H¦U±Š9zâÏ‘ÉêšÉ­’à Ý[䎒”ñ6éP¸QæNR&PÈ Ð8{ÊÞ-åà8N¸—g³Ÿ##˜{‡ Hp¢ œ4¡l% ÚTƬ³/^Ø"Ð}üGw(œVKCäÐÛ•&³¢Èf®<9M/©iqËìsÁ´w)»Yô$L^ÇÚ­ ´?f—”„úö²½CV‘Oi}ïP{8pÕWÍ+}·ÞíŒK Rè<iå®0Øû½)ÕŨŽ~ãÐÞÚdBßçøÌlú’–ý„7µÈ1qr\¶S»ÔiígÌ\üŠZ§š=ÌÐû>CºÂ¨©IçÂ$ÚR46<èðk¾¶3·mхȉó$éúÖ}‹›WŸd7¡ãصWuòÁ \h·¡þÊÖq‘Ô´/„—ï¡×ŠrTœ¹w–i¨ÔIõ`yrž„áµXò?CéªZ+fý Å£[*vãtçßÁ§w‘×ãcë™»VšÊ÷vݨ¾Oþj,åËÕ¼ƒ„º~bâ*Aªý+xµc7Œ\ÇP#S[L%ïÄ)ŒÆUë€þ†î™SÄ‚v„Plž©ßˆÜ@N|z÷+žøI¢ QPë`‡vçÂpdq.L‰`¹I*mŠ‚~¼¬‚Ònhß<ªxTHXÞ•j:…ùkKÁ“*ëݯCyç´'}ò§`wïè¦.ÅÕ`ÒHî| ¡ó{»Xv[ž‰*T³D¸œ˜y®ÞØ?¸™Ö)ªú{/ü^Nz¾ìÔÃúñ+XJwáDϸü¤v8HíÜpŒ°_¾¨°<8àn7b‚ÉÎÜužËÁ{‡'n ‘QmOÊÃb“m›á¤XØ7™AtfPV¸)ñGY =mäf.•°ä¶1±Ó”QZòXÈ©õꜳM…O ŠT.Rz¥ bšnáR_ç«Ë¶£ÁçzŠj¬JcÁðK‰µÞr6 ÓëXŠëˆÞoJåÛT×$0’ N1Hú”½ù(¶‘–‰Üjø&• ÀИî(ɤZ€ðî¦~¸šq©ëë'÷²*Ueߦ`jsL7¤š¿9õëé;óüA"[4¢ùÈáN^F² B°½ûñ6ÝŠþü=wâÓ½OOF„@YBÙ: r_Ö7O°Rh®÷`G Fø §nI¾¡lZ9ë‹%w…¹æë3±M“LˆÀê*µE’ÂWcÄRÈv·N)#Ö¤pEÛ%h%Ç«¢î±õ)Ú9…×PüQ¿ö(ÇкvjT|¨M¯¯gj›ÌÈsþí0[µÎÃV€ ذÓdÕvȨˆ¦“®Ùi:Z2½ßÿ Ù€‰'î9U°Xv%O­%òvï »©C?w`h*+Æ­‚GÃ4Z%¾jƒ•rå,àÆ5®”óœoøgAk-hÊé\4Tn~æËVŠ\Oer*¦„Ð<Ö]؇Kqm…AK…>;æeÈ!Ò0_™‡zÏâfR.ë~øò_ Šë·•¾V—Ž´7N…ż_é»þæ=щX?å_:QáeB9Àþ«Z23ðš3Œ8àß^Ûòèš± QÁùÏJž˜2·‹±C$B¾rب~Þ3¡éo7û-r3éò„M»Üøß™Jœixé•ÇgÁòh-R~÷fóäª,Þr?1œØÍo™\'¶#…îòTžg8¤ÆE{§¬íáx””¡ÙÉÎü‰»Å Âå|û¼Éû ßVÄ×äI!—^LƤ+eçx¥­–:<¶³Û^›é’d¢íŸÇ׎S©µß»a?9jn9°ìèá3î‚XWõ%ŽOÐê[h…F}ç$,9€“Rnÿ-£Ö/ROr2r‹¡£Š Ê´¯û¯GJmT+lÎ2»ï”$Ý"%zþ"É#\˜/¢­çüÍû=³›C`Zn_³Jܺ٪,N˜Xê»g cÛ3Ê#¯kx8ÅÑ^ÎË´¡ÊòŽ~6'€ ,/ÒmÁ†ðY;ô³åàXGl l5™H÷uÏ8 ”l"„ þ}‹vêÜå¬c‚¶gJ‚F·|ìüĘÁŸŸ¥];ð?%¹ 4¡ê.W¼Š0•Ê!Úqa»Û˜ø]1djÒæùÌ‹Ê!M|µx€É2K툷ˆ- sFo§wbe±FZ<þ¾¸6ÝN!…6†rüw{œy©o-ÿлЀ‚þ„®g˜é2_Ò?^˜ø² Ѱ͞‚ë¤6.O+…–lßÇ<À¿…y}óððWù›dC« p·—¿¿å*¹U7! _¿·H/ÍFÕÉ#ceÕiËÆE„ïy$*‚ô‹‰>ÅJÍŽü}c v§„1¼óZèÉ#Ý>)P@}$¸‰å¯C»ûvJâÈ ½QsñøæžS^HΣÈoU¹Çpn¨| d<=Ž“þx6#ORÂoŠ& åùÙ„›ëÓGBS­â¯(f3R'PZ2¶ÑÚ VwO¤ô;ÙÝHÔž&Y¬3Þ&F>ÔþÔË6Sûsg°k¦£D9˜85@ØüŠVÉ AW&à£ïëajìMî¯(™Ž­4œŽóíÄ=ÿqClâe6„Ó¼…Â0\_ÅÏŒá ¼@  »ò™\. Ȫ´Þ@Ï—g ˜,¾akj_º–"ÓЄ ƒžs¼Ü>œøîûlú8c‰²MÂOÁêÁ„‡BÛâF-¦%Ô]LؘŸ² -Úc³¿µØÔÛ.Y1É…^,¨ø gôƒW%-LÜ-Ž;SrS÷ ’LKÛe²ÍmýwüRB0#¥þD¥B!Àâ3ÿ×d—¢•dl4cGH÷4ÚÁ½&¨²Ù»ç«" WJñuéô¼Èh è3¨KÞÆR7É!ÆP9ÓªHùÒpFẠÒ^¯¯ƒÃówH>)™s€ÀÃ2—^«s|wfn‰4èæÏFàÕ=ÿ‘¦pÐÊmÌãÿÆ ÑÏ(mØVf@“·á#œUµ‰á³OIèwìï j¹ZB[VR(ü ÒÕ½@pê*XOª×ÌŽŸ€4‘¢Š¸ÀdS©¤J8«A?{ýÌtÎ?hr¾Ð訠 >ïn„»à KÑÒš_kîû:µ4÷aL[f_Kó´gmœ~wÆoE³ÚžÅÌ Læ¹½G$épB¹à‹ÖÜ\бfè祟d¼oè6›:?3JÖÞÆþócHêáìàUœ“¨¡9Â*°Ã¹ÖòÔÕå»à›(YXTá%7†UIâBtÊ#:ê ‡JÇ¢ùBæ+â…}×QddÊ#T‰Ðçn÷<†-[ZøvŠp›^®Ú’€gdØÔT¬wäjïìÄõHü&õmØõ{jì°hÓ?Ñ#ƒh©4kª.²„wz$uAêDÉ7øRÏ>áPR¸Í2X:œÄ4þ0wÞ¹¹P KL¿Ñ¹™Lzú«J© g>Z½ò ˆõ_ YŒ£1«”ÉW­f¦Fp!ŸMÛÅPmA–«jžÜZûV¸—t\Kn”–¥ˆY»NÜåÜ'”p}Ç.>hJ”U·& )9zÛ³oQÉC/Q—Ï9hàï*§Ý€ ɨÏ]~,V±¹ÒW‚¤zCTi¦‘+•™v†²¸ {û7gÍAvò¹5¦Lç*y¬¥ ¯|ƒ óíªìÜèK9ùIÒ>” °NbÈÕÑaO¬E¦G û^£”¹[¯Áöé…ùEI5l®’ÊÙ…#ü•£ÊW˜ ‘Èz@ ”ž› s˜E2Úôü¡hÐlPa3ÃãüåVÏ8Y«I©þ‰d‘a‚…;¸+Ü1î‘“j0Q¨í¦ñE¸6 ‘à ìHL§ +pÉ Z^Ÿ¦Î‚2³Û“7‘l>˜âƒj‡qäuÜvG_êt­x®Öç¸õÿÌ1õU¸Õ—JLvŒåÓà³é¡üBûG¯=`ÚWN$í}ð´ã¼ôª³Òc^¢†Ë ´|O@:Ut‡1Y{ 6Ya0 Ï/ç>èA»|F/MäWìf†›V+r©¹¤C¦šy…¶9¼H·¾íx†¾<àç(ƒ€‡_$ÍñY˜‡„õêˆBóŸüÑÍCtPœìlE¨ˆçRKM‰eo:h튬Ï-Lì#fSƒpÔíS¼ý8Jªg?*ÿêTU ˆS¬ÒîdmÇyͧØeiÄúíÿ\;Bà”& ¼õþg/ä`ø1èxz'Ÿ§¤#ÿ_ì,Ä[–X°ÈÎÿ•ctOËžGâ¼Eê#„ŠôS¶h6,À–mÖYSE&ÔbÇ‚]ï–˜•Ü–Ù~°?ºÕ½Å?Ô$G´œr?øéI»n(ùquî „Ù¡ö„–ä`Tݙݬò®‰ê‚^«ƒÄ3F¯Tx³2Lè}¼˜: Æåû–›öçâpÉò ob+Úáf³Æª¼à5}^4Û¼ô†Í] >1‘þzE‡s¾EI‡¸z²ÁFt}YÔÑÌÚs¿8öiˆ«OÍR-ÅD5îmÀ]ã‚#Iu»øVä­aä!DÃñµLDmUÊÞ.% † ºô* ÕþP…€{ÕäK+ÇÃÙªÑx—LÅ]öjÍ.|ÈMøÖ}‘s£¦a Y€VžPF½kHÙ7_l?‰L‚Ô—ò‘†˜K/ö›º}µšÜçòCLh;›myÜ$âm·K‚`N ¤ÍЍ¼Ï+Z+JbÖ”‰qÄý“ „w†?ÿjHÕm^’¾ós‘:àÓsc?0î°³Vÿ²™d,ýPt%ÐÅ>ßÉX®6«Þ½ ½o) º¥hêñ‰ÐÜê® ø^@ ©V…³®òc})Rìm8ƒ%X eòH3iL3]<³32¤NÃé»ò.Þ¦g\‘³©XûâTï²³s”ÛÔæÝìi”-Åì}å¨T6Z-”/„Ýô¬ DÈ—µ!âš®DãéðÝÖÊ!¼\åžÏ"¡{Ëh Šu62$=” ózµþK` Ÿ) ,Iç1+”ö/9á0±Èäá¾:%RuâÒ\½”W'zŸÌCPau&ŽÈÖ·˜ÿ,CÙ_¡‚j¹×µ¼l•@ApM“q3þŒu;’@{=[—vŸƒ&–RŠRãåp&³«¢£Ê*ыܴ‘€vӼΟ8çZU£Æ©oã#É ø§§|ì.¦EíÃŒx/ÜèÕkm\Ïï… ‡ºÉE ãT:è¨]…²B8 úò“Ø_ÏЭ4[, ÆQy'bIu1H å;Cy§^$ùGoÌZâÐËÇá}Êì!à UDR 4+ˆ±io!ý§Ê.¼»™VO¨Ô—ÅjU†™uTÐsõ¹÷9#¾ôÎr³Šõ$ƒÞ}_8r ¡› ^ð †R­ø–!ôèQ°Ï ýgh Møœ0;¢'ËÙê .Û›E„Ø®_–¶!/YÄïÏvÒq–ê^i„FVÛvÝ[»wû{`Yy)Æfå`[Ple]›ÌÐË·4H˳†º„§Ð8º Ÿan¡Ù2žS|š&¦|zS{G˜«HàÝ[*PÆñϹciwš¿ã=Tý2‘ÒÈÁîcñcš´ ô)ÅÁ°ý瘇Èxƒ0y‡Ìë©‘¸´ì =>›÷VøaœŠ–PT¥@XÁ æ¤"Ç>BD€†nÔe¸ÚÛ¡Êá¹[÷ÅÖ :~ѧ Hp懙·uä¡¡¥á®ÝÿëNÿf)x<:898šYÜ)û1~Õ{ž(#bÛåŸ&aǬ6+Mºh" b¿$âïÞjCÒÖ¨Æ-RzP/BííŒp휚"Æ ÄÜh0ä¶Çü5ÌËï°Uæ‡þ¡{IrCÚJYe.WáVz¨æ¯šb8Á($x:ìG7'UÖ!¨, ·ªÿ˜£ø±rxD¼OL ˈtùé³¹íß’rÆ&Ay¨y#ã`3q;1¾Xaø½íÕ1—Á‚æø]¬÷dw€jJ ûÜŠV¸ô ü­ÎÊ9]ëºRï×üއh!G1«gÀq[cë ü·mSÇ,Ê“—öË|[šµv²à¸ßæÃÂìÁ‰by•e‘p'! sýnvŸXIÿúßí‘êØ×À·ÉÝ«¹‹µ*çñî€Æ¸œeV;às¥ôº€`Î t£`óÉáñ쨖O⯰üQ ÃKý©kFO8™oq?˜Wà ð@ʃä±mÇ ?{é€ÞËñ\ß(Cü€š 륑¬ŠÿU}|ýsÉÐ{€Ñëdð3A…ÒÛü[äõ7g2¤ƒ@β¼í&ÄÖƒs2Ò,L¾»M þ2„°Ï9î 4{Ô kf=ûn|PöçK0°›•£ Qå ãûëM:i3{³ªÄXóžf±@[ë lúZ¬äö•{îœ4ý«PȺso¤ÕŽÊœ‹Ü,ëôWˆüº5Ø猈@B…ŠÇÇú½êxâÓgØ~Æ»æ¼m,!QR5\ð ¡¿ºi z½?Ó£ E kËu3ñzî+Žá >5nÊ7£@ÌE¢¬-¥ÃÖ¬“Ë\œdQ^Ú>沤åîë½ÑOHvD‹E°ÖŠZ·}ã³,åÍ=á mZÑí´w’šªR `‡²muL ¯Ûˆ]^“€¾úa“&—«†×ïK[1×éJãT,ü›Š-3žGÞ_'XˆðHÃAÒ™¥‹)ý|š¥ªjTž€‡qPA~]*·ô>$q Ê«Ø*Î#ÀºA›Ðiœ?ŽËsù“ŠÑ¢NNèºê_çc~GêîΤ_b§¸˜ß³9Ø Šlçù¤·ô„Û§d×(‰ÒîJTReŸò 6òAÙB¨\ìnÔ>ÇáësøÉh…ý_0™P§/U:ÏA _q>ÕNª® ÂèN“ýú¥Ì&¼½0x×TâéUßžßEóÛS¥ä…=³pÆf|:+N ±5ŸÃX—䲩ªv\W²¶"Ö—Ûô>=m¡<Ùº‡ò0_lTçà~}®¿òÊâD ÿ é>«¨ Ä>ѵÄÍ-ɘF_>)[¿Íú? “± KOEECšñ×ÈøŸwÛXO 9o¨/™éÝØ"Ä€l™­ûP16\s°_——¢âKþÞ•æ* ¶Õ·}¶ËŒcê£Ø°S´-u¨ælñ!Çÿ•[èpsû°ŽÎ€ê‡[0ZÓ8¢MáæÅ9?»#mI*ˆrõãþî~êëþê²0…I£rÐ|»%Ö3ì£ÑA¤¡‘²âþˆbè…É”ˆe#7Ý9!k›(^- ¸›IÑœògwk;°ÙÕCî-[ºÇUY€T#-5Vn ‘–h€¼Ùòôô#N¼Ëñ=#òRÔ@÷ü•œ<Ñ©™õ¹õ,H„ÛgsyÌÊÑI©êÙZrRäD/½ù2,ߨg8ª«$>ÄÐ%îžý„‹C¼†ÌÜ®Û*ÖóþŒ~e5ÌKÝm-wiÁl¦E+þ›xg “’‰óÁjˆ³'9ðÊùw›]z6­l£æŸ@yÕøz¡Eñ†°è·N£6¢”>kD%SõTV¢Ý) “¾çR”“_ÛiÊG$i<ÿÖÊ.ð|§xÄŸ˜JËᔄˆÍš…‘,.«±õwÅj,LV»Á¢v—²PoÄ€4á_&ÙÓ̘4ìÃÍ4˜úy‡y¾Ïdù™Meö›áPǹç_ÐÄa#ŒAš9ÑéåÎÿŽ9clº;,À½„ë]>hðgQª­ ú(A U’ô•Bº@¶ZÌ€;èÐ>q«YR‡‰sé>W’/佌Ñãí‚™ø®µ¯°yjEi(õÛ;ð¼Û0 šú–ò¾–Q­’ø4-g{]dû…ê\‡E_-_p%3˜àt$?åk­‰çæ)ØXLOø/ Ö®Œ¹éíöËMvYºèw¥5.G½¤ ã‡147é;@Vå2ß+Ê֩Κ¿&yî>–7Sžð:šy­W5ÕJ‹çøØ1Nñ»˜496¤A·G5âëÿ·‚]ïÆ*î©‚wèܶÇʵÄ_Ëo¬Œ©èX}C½À¯êçŒKg;«ê~ç£Öˆ;X@ܵ ŠÙd·2WÌ®§±]f˜XÃ3tfäñ¤!ù7ÃLÝ`¢à¦þ\`é˜gHÝá–Gáè¼ð¸°×wT)ʔ⪚Áª]f¦uÉÖ] ,wTǘáU·dk€ˆ”dúç—fw wu-¾Ü7Z7žc[¿:þ¼§!—ðšÍÞ¡:}Ÿ‰£Ëà?z' æc ïcždM×Hçΰ@„÷‰PÒsg<ïLR QŽÀ± ˜Öï­9`!9XçØ( W}!¸4ÝX}`ñôKµà<Õsªÿ/ˆLÈà.©úRÝ~OÜ i0Ïxä›úóÙ¨bª7x'øÁáV$SìZ¿À7ƒÝ¦Ô:l›&,[S½XT®ÕIL¬CŒÙíuhœ•ÝËy2#®á6s‡Ä®Î_”Ã2xs7ÒðKþ4å¡ò¯õ·[öΤÓüõ·nu(á²R>­1H»Ax[pp5r¹ I‹S\<L©WЉïe©†mp@æ¼V3,è·ç\ëh¡IgùÚ)__ÊÃc#tÖïcC aù»ùqXl¿¹0üšÎv»<‹ÉÇÝvÔßÃ>^®ûÔF¹ÃºäÖ¨YþóÁ^{CZE¯¨ef߯Ë´‚A(û`0SjJ…"‚Œ: "ÚˆIÎPc²‡h(„x/0é§K/'¡Æ²‘MM%ZL5¨Ûíl÷O3¥œÿĵi£Ä;(CÙš8(G„úWDƒF¿w3 ÎCöx'fÆSQ–½ï„!öW Ô)fbé•·"´%cO'5ÆCÄ£‚- •“ ®ÆæTtcËK)ík µwžÉ¶ŸûÇÏõ÷Ÿ¥£·$¡ËúßrT­†Ò[“„Ä®6¥ËûTY„Ùˆv¬š<}¦ØÐùƒCÈ»nU¹¸TZÝÖ‹‘‡ 5üyXçflÊ€ßS*¤¢ñR ËíÈ¢€s=½—Iè^çÂ@ƒZ18¢Zˆ D/[Tž|;Ὲä´CqA£ t*R,l6}D=µ¹ˆ”^ÍLÉ\ßj—­¹ÌÒ8B$&õ‹x4õæžßÓw)™éïDý¯Èè{_m”¸ö?v›Oaæ}e[U;D¾'ÑÍø×xobúÃèøêuÖÅA+ 9zûïô·¿PƒC l›³ð¨'v™,Ñ®QF¡n± Eœ™dô+ºTa8?ç[”‰<í™…Ÿ,9æ ^Üx©ê^èûù%Ècžm¹³Œ•'Åž– Ç  8muI Å ›Z& ñÝŸèã­Ã¡ûddMÀ–àÖzóˆ©rÀ¨l›¦eÝÈFRÜ3~;Ȧi¢×6& 5€µ€‚A™g+§BŠ =«lkþñ'?þ:÷aÑ?‹f¼´ï¨p¥1œÅ'Çò}$gjõK§¹}Ìt°jó˵à\[­-ù±Ûö;ƺšu&.…ËàC i—çùðÆŒ|ßýMµ‚ò†Ÿ6e@â훢UZŒàé=E¿ã\Y7­ƒYs'mô†‚øwaܲ}Wñ\•ÄLæVÚáXBJÉܾwÐÔ ŠéX‘~oÐà?4¿Ê/„ã€" x/3‰A—r|‰E)«*†$£L‡ÙŽ$±Óš½{nجþ>ð­`ª|Ù3Å%ÉÝÔÊíÒUû¿kèGÊÅšõ#·ÄpZåÙ+Hs¿ûáyGêv|¦!vÎQtx €ÿìökôqNM–tcÞü{¦D–oÅí3cÝö1ª´}òSkó?ÓcÉK¡ÕNŠÐ ⌫ÝmØ$(pm['#>íÒ7+Sеñ§{_(-ëëïÔ¡[ò—–šN8ÄùÂ~^l€ö-½3á)$ŒWœí@+ΖêÓo×WîÕ-Ǩ`ëÃÃ…òü—Þx?uvÇ]ßbÝW|œe×V¿žønþl@ÿ¢$>’¸•´Òvª÷¯µæ-Cƒ•ŒzAö S E†Ó®ýš /P¶žÞ’eQ›S6) ÈÍW!ãQ "Ý÷^$&KL@±§^™_+Ý«CF™3õ±’Ï©È@ÓYW‰N^Ø&‹k«tGöOÏÚ ËëœÌs™o_=kkÛ\J)Ôrö±NI¡ÁˆÊIп¸RÇεÄþ°…²¤ÂÞî‚HDëß5¶—^÷hÊ_ˈXÏ2ËÔáQ!ô5wHFutûñˆ–á·I]ÙàYb>ùŠ"Ù\ŠG,ˆھ-Sfn”4ñàH° çбO#–âu$¡EôÚŸ¸5sMjãu²F“D„õb:à ëÆ šVsÝËõK¹¦ßÝ\:•F2!3¹|^¨w¨Ž%.Ï)¯ò°b¦åι„ÉaÙÓ 5йOœºÜØ}}ÃG„Eøñ)&Ƙ@Óß=½P r irïé-¤÷´;å×›lº¦·¬7¶´ßP‘ºM2N„“à\¯ÚvO’î騆à›ì6¥¨Îz[5ÿY»ÝE-Šr@‹Øù f¢"[ö~?€+ ò%Û(¾Ýïd/þ¡|·lžF-ÊŽªþ¡þî$<ƒIŽ ^'¨h¥ùh»U‰ï)_)2“½0¬?À®ˆÍÅ öšjLjPv£ O’Nþœ“«÷ÃÎÉieïï@|½—jWnÝÌþö»4NG”„0¿°¼Úóbé+膵ÍùЭ1úçÖÖ»f`ÜÁÜœ$ìOD$(’Noz£Š’ÛψíF·œB¼ G]²¡öÑÜ™«Xõ³äÑùój(l’ %”Ó’¬‡R¶?˜bÊZ­Ñ*ª¹my$ÿ‰-oâZDtc@ Ô ‹ÿ¾¸ë"V"…T]Ørmfд›Ã°Î…na‘2@TÕ&–‡ Çb" …Æ Jw½¼Ÿ‘f6Dç ºSPÜÈáR/ͼp›P&qœGH9!ö¢, Å¡‰ªÝWÓº²ü8~Ñ49{(c£w·2´zÿÙÌj}¡n4­_ɰF½±‹õñDìS›·Zæ3ØÄ¸¦` -¯Å»ä=3H˨x1ê¸Mú|òˆý°î ¡•¥û™oGI ëtz¤òmV2•ÒЮ“È%ïé@”`h[ Pþ ¯è*&53†…°!^žîƒÃÌpÕ'Î þ ýNE”å´ˆÉ뮆®N&Tº È´¦qû)=º[¸Ôøå ª‡à£¢ÁrÊ ”àrBNÀ‹eC:ãë² |¢ ƒ¨Þ&¿ *9`ÿ‚ž_ÃÕ-Ó‘ž?8¡G$˵¦‡J?nƒú^3©£J£ýæž!h9Ôÿ»•¦º]sóyyì`˜Äv¿nzÙä¼{ÎQÝS—ýöj<²Ë{ç8 ¨¨µÇÎMÞd lšIêô¤×ù,,<5³Ò”ª–ÇDíýÍfÍ‚z™*Uw\ 'Lè0͵œ¾{À¤ïµg›,÷¯Ë£ãñüþ£eã·ÐTÌÄ訲òÿ^3_źˆKØ4ô-ãù¶æÐ9pÆ9=îôe3é%.öÎFÜKç˜ýüI7A¡Aa^!ÒëUÕ:…@`n—)w¢¾ò­ºI¶»ë=„ –Oœ÷§,÷Ï"…ä?4-²4͸S÷¹ßtÊ)è£fÀ*4† Lë2;wû¤œ’ "6J ·ø5¼ðò³ÿû±æùôIrT½‘C@ï4\Ïi>ë ÞÛª–3»9 ºƒè¶ b+ñWl—s"ÛÕZøiÁï¦9rð¦\çŽó½,“íésI$•ªhätÜ"³3õ°9ŽóškãÍ3Ëe߳ՠϫ١Y«ä‹hVíã`ÄÔKdŠâîè{gKMÆÏ,æa\il1i¬ñN~\5ÇŠ©ÜÐ|—ØØÁ›58‡‰kèˆ"Ã,Ù¨,#ðcD@ÿ…μ¿/|ý³ 8Öw/Å}6G7WÙÇõGrWs;b¾çÎ9«uXʳÃ:waÃMY î‹*BÐ+ŠoÈ âÊÖÔÌê9˜”ÆÁ4îÆ¿éÖÁ ·á¢qOݨt¬yañ¹@ Ä âd÷PÍúœI¦DÓíÕÖuîÊœuRÐPp/, S …ˆ{˜nfÅ]Z§ªBޝïv7·á"pù/öƪý1º=Wl«ý¶°‘‡TqG¡ÇIÅ‘õ Œ¯Ó’9 0_vˆ*¼ ]õå¹+¾öpfÜÔ„§²º0‘-Á囤)(_ lû¤ È#¨˜˜¿\³f/,‹[ñMgˆ;´¼bm¿ïmIaÖˆŽûØpòáá¿Qb:[†Aª°³¬²x*Ëÿ߈C¸ TTaŒrü,œ«y"?Ĉ WÀ>>}vP,nmr3$`š‚‡%žKÐ.ö˜>¦èÛ8„cXOÆ\¬3¼wã¤õÛØ¾iBÈ·~•"0ƒY.&=³bŸï?¶Sû«ð4 çL~}‡vñJ );ª”säxëö )ë+rç•Îë¢}—sO·BÍvSzF”qeZú…Í®ËôÃ*!tÿÝšhrÈÏœbgO%›!‡p– Æ5ˆ˜’CKœíÏ<Ì©ÓIäNç §¯éá¯Ì ­î/å|ž°J8ÓoálÊA-Í3îÎØ^m‰ÝÒÄ!–D‡j#Q+ÒO+‰8A+73$Q\µ–úéŸTrq6Žë½Ñã’ŽÞ£”¦¼á¦D‘Ϫï¸9\ˆƒO;ÜìžJ8Ô—€•áÖÖçµ ¨A²¾‹`ûÏ¥Á÷€h¥ÆG/æ2+'×û3[ÄɳJåLW¯›AOÞ_‘v†ÖÉž2x.IàrlÔ–?ÓL«•yxÄÚÅì/}B<íaNáç™ì®lù3s` Šô.!·íS?H•v¡[z†òÞU4:]/Œ¢¤ÌT} ¡¨¬ÝŠ*tûD¶Ê ívÃà.*þn˱©(î!ÃgØD„p¢³ÞB¤ŽÏb·ó^îE¶ÛËÏ X vcWa|ºò„aЊògÝ1Ô•ËFyÞí¡£u0´ôg9Õ¢ï-ˆ’3…È-+c–­ü³Ä1}‡¢Þ1ïÛ çpCw£C3bË8Ÿì|DSºnü—-´É)•§ð°à績1€ô¥UØp„[ä·]L°3µ&Ñ–Ñ£“‰¡TiDûþ£¡C:̪«Ñ­Ôðyšd`µg,ðÜ jÛú¸;Rcç©æog³O!úAÖ‘ ˆ/U€=,»ì}WÈs²5^èmÇbÉÂŽ-¶}Ux”/üAf©uˆ}'3ÕB“C´F«hòìI8Ívb ª”ÞÛV¹s¦JBƒÒZ* S±Äe¢|cKÛÁMFºÝà QªñVa@îØ™^Rp?UúJ´Î'&¾C£R@Œ¾sÛ xãþëÂ5ÝçC¤«^PôwW“üëÊ"à®~’+R§S_ž ²¡¹9àN7ž2 %måÙ}ö'“2ž¬ Ó{.º¯‡œ§ÞFáÙ[b ’ŒOˆ±_ ­«ívk(ß\ñ_¾r5ܱeL¡ª‘¿ù"#~Œ„jÎs $Óu‡—†ß2u?Ñ ¯¯ÆlD9¤\â±O&)œW­RfJ<<•WÈCG G>Äù­÷ñÚú¬âåAÝôm:¢˜‹ThõÁ‚Šè}ñäK(;é`ñiàÐÄ]™ÌýT7 ד@ó%ˆ+Î=üPŠáºÐ‘ b+‚©"S­åød“.K‘¤ÑÉxG«öR‰£-ÒŠbÄ(-ÆÓ¯éT±h¨ ¶LxÖ*¤àdJ,#ó¯ç$ˆÂ­è¥oÖœÊÓCm¬º+Œš­GŽÀ÷Í@þÆÂË59‹Q>þ*úé­·9®žt}€â›¯wæ´o¸?Ű2;šVÚ½7ã.žÔ€àÝ”mÙüp`xE‹å¡‘‰· PÁiØ‚wO?ÆÍñ¸VåG©ù’PÏ- Ð%O74 Žs¡ô›`¤ªBü;ùjâø¿«{ eo—Þ¢®è+ ;ÞêˆäWüäÌôÊ+¸›¨ÆlwT ö-{;¤©›)5æn§ƒ÷t?]®À­Ëú{¸u$9 4á…¤³ãûõ¦OMÖB#k2Bñ/?ñ[to$¡ÕÏ':VÆð°{“ÅWåyX|û sTéÖªB¹Ón§—EG}îÁëÈýÚÏ2¤ƒJ)eƤþ’RðÏÁˆ¢ÆlÆôý ÏÞ¾\®÷Â* I´L޹¥g’Œ |÷AÀôªU·¼U–…=@1ºç°RNµ"±>åÖ6c/h uPJ´[P’û­‰?d³ ôÞ~EÆpfß‹‘òåï4Uqã1)¢GfÚº 4MÄf­z( #þ[:Iäp¼™|úŒêUR¾Êµv#ÍbPu˜’ÁD*ˆrØ’aßÄ \9¤RàDIòëÙÕÜÎÐ.#Ízªðç¯öƒZnLÜÂ>´Ä²å(2ËÕaˆÝ,®«^¾”¸ñ´¦Rv'Bç£Ø4§¦®ÙLNïü|ú篲¯rÃÖóÂLRxf‚(üËñÕ‘ˆÆ&à¿;’+oºB, ŽªÍ`ò•QóšþÌD¤Q‚vÆçÒl …çb™ø­Å\½—¹Vgf^l­VÓ¡ü(Énu7°ÕœXµ³ˆ,ûÉ)Tœý’Aƒt3,:€'EuÜÎur¥lÇ÷‰MJpóïu=1)È7-…Ýû¢HßbÇ•8ÉÎû7Âx½xð(_&¼\qcëÞÚýÆŒŸU <^ÞJKÒ<ÏäìÀ[Pëçb=æAâçN›Lß*’ÆýáMÕ«Zã¢s¬ ÒÄù2ì;|ôÄ[öÃðÀÝΘ¨pÁ=¼å >†Ðøª3äÜ‘¿q"ú =âw¼.Sn¬{ìóŸžê´ jtRÿžÉœ"ŽnÈÜC8û'¡Œ>¥‚ýO¥J-¦&-"ýCÒ ’Œ¼øQ¯&Ss¢Ûœm#¬š%Á.þOÏñÔ¥¥<•SÃðìõ#ñtѸަLájEÿÆAKÌ5Á€6ÆÆã5ã‘I?*Úÿy‰?Mž"…hÃ= ´¶$o{îB1É™62ÛÒç+ï¿Ã%;/ׇU¯ Ùü>¨A£/øs²ÛžðÛˆªŸ€xõJû=Ÿ]Æ£3™§L÷ó]£cÉ·¹<ÍmO$Ïpµº÷×z¼*¸„m­JZÃÇXnîåëu`yc­nð{<Ü ~˜9ËDZ./<ÂzÛ Šp¶…€&Þý¼˜'þ0.)k£ØÒNq X#ŸO6¥, —&x¨éƒòëß™¤~xïbÉ2äÝ9 •Šô1F´à²Ð/. :tv­ñ˜è'Ñ„h±ðžÄB¢DϦÿüDqÑ ýSJ"SÃøn’Ë…T2 •Ù•«[’ù¸§”óêÃj3N§—R:‡A¤WRl…¤a-‹±ìOÏ\mÕ°ë¯]¹8®ÊPáÕË §v²È׺Qj_ö„g·½Z&ToEß!Ä—pNŽÝ#ý›&›e,”r°dwŒ µMó!>@.ŒÍ]a5¨éOñµ ,—ê9ÆÊUÊ xs<š2H÷sø–˜‰¸!…·bÚ5 6ª-Bì™úµéRÏ]…*Ó!£ZÓB(ûæÕnDâj, ‘¤| vEÝ›[5 vDʯµk \Ž}×µ¾yÓ¹žAjÖTç{ï¼³íã¨m€ž¨ï[ÐHH™›2((^‡’A¢½kôÖ‡·IÑë5Á6?]UÔ6»ÆtN‘¯¸#\«.Xw%â—ÅøR›S[«é È“,™·eæ­Ð€/³ž³¬'ãž;™XÖ¸ìão´\ä‡V¦°ëÐ=TªäžËzq: *mŠ~BÓ*—#¶¹Û\V¶Ñˆ6Ò§Ðè 48Hâñd‰„ ;Òšpù"‡"±¶V?Po|"ÙUÕ,~9Ö'#ÍkÁ†¸* HÁ`Wˆl/&A•A4¿ïÝ:‘@Çûî…š–{Î(´.³TëÕ‹fÌh$ÃŽƒrrÛ51½GF¼.ñÓÕ‰jʲ˜™oÁo‘AËÿ¦mº/v“"Ë(kšê+4V‡ooȈå¬6_aŠp’4P%¡ ez«f“SsVVJ#½;b7/èCB;ÿÝql þmq4a·w3‘øc)•›º¼ô:&ÔÌ‹bÿxŸ“¹^_7­\t¿Sý£€L‡€“fŇåžÙAM N¢Fœº&€G_ßÿTþîÚ~,)ÙŒ¥ôÇè–¡V³²a’¿Ë1þ+õ¹ä{,üõ¬6_xL™ºîŠ˜ežÊŽ˜ëQ¢¾ZCˆ¯?ë1"€¥‘Yp/Feš”Ò㜌}ÝžÚD^«ÑÝ4ÉG;ؽqÛ7%ìMOåW“ÕØMÆ@'áD²õs‰× G/2­}0iV,¯®8‡$xz&ÆÏ@›Ò·ñzkìÌí®¢h7iÊyáæDyÖÙ-F¯ Tšò%%«ºD’|Jø´ƒ^&àÉxf`õDÃjàÃÛ•¥iº ;Ý4™sïx AO$r-[ Þ ˜V#ás² `þBM²€±s4£½mþÙ¼1Kñ{Äi±ÖXÀüwÖHáÍbÝ 8ûU!ÒÙ@ãá^†ôŠ»–xÍ‚‹ÚļJÏY<¨>¤HG%Ú#^|B€•%æè,ïÏåßCD86ÆT–ÏhúÊÎÛ—>ª‘Ÿ,ðà@k(F°xéN^âøo=±‡NÁ»øâ¦FpDXR+D›ßÑV6•ǰ0#F¹õ±‡¼„¡wÔp– §¨ tnHY;žØ6îG+_jýþ$í@†)£:PÔòWzT«íHé^Þî"BwcχٞքWÏÒ'ÀgËUŠ‚ˆr(P8‹,%[° ¹DŰo„‹³VýàíÈ&à\pv©“ó¼½)ö@—p\Þ×–D¥$Äñ¦As-™ªs0œßäÏnĤÓxÂ×@Çòvû >¼6!ÓVÑ¢Ú»;Xøü“¬Ø5ÀBY­W-†z-d”ãDz˜nÐãdϾâÍÛ4ÅØÐc9N6idÂÂîþþ¶YÔž#­Ÿ¬tšÎn¸Y ãÖç>÷ õ4gö­™Ùó\Êf)±ºèކîdǘ07×¹KmHŸ.|=0ƒ²Wë’%Îæ÷ù\”FV7Þ°ïçx׳Õ0‹jˆ;M¾-&¹¡Œ‡ÃÆ ›PzñíÛþ¥‘`æU,Ø}ò°-CZ‹>š|$_ m£÷×¶8ŠÐ LëÓEô*·â˜»dOÆ®É㛇72ƒ¾ö\®mñ ÛMÈ·£† <6j nÀ`P~ÃX w‹ª³…Ò`O8¨™s=2­!¤"ÕyNJ MÇK¶YÖ}„…ÙñP…žoÝü8æYn â‚K:ÍPemò!º&ûÙ¶Gë—#bl ¿kÚΠ±ËßEò>ÚŸº¯z¯]sÕ ÚÆiU§=™ìÁbXÃZ$½k=¨ã€ŠVê^{R\ÆI·gÙ^ô.¥]¥óceÒ}N^Z.Ža¯,r GÝÎñ@v¦ÍŸWÍwoßxüí?~&ñ½Gô?Чò/#V@ºTܱ†j,Ÿéêeãlý³¿„¾ê¹N PëDÚï#Ý£ãt–ÝêuL,->?K¡Ðºs^À7‹qœ:M“ "FŸã%¸)`œoË€ÄÛ“üf§ŽÎEÍ8 Àxª12ÞPpMº7¤®B›y`{â%‘tLã+[¹|~’»cé„uºÌÒ«RnŒÆÿŠù½4¹Àv"WÃöºf^·=×äíÕJC,ñ†ó‹ãƒãƒ“;ÍahÈ[Ì•{b=¤r´DYr¦ù¬uÛðJ6"_©›(2¾™‚ŒÉ‹ø¥×záJœ¾ii7š§’â[ÃæÉ‹MÅ߸Ñk-ƒú{Ïq?ø™`ÆÖß}»UƒªìȪ,Ž™U8nd/·]n·ìäÆlÎÍ‘?1³5|'f8!Dg1bì«a€¸Nù±­º0¾#i‚X¹•RŽ°ÙºöD`‘˜©% qÊËùï9XÍg4’¢è¶È·ánšù ©¸Ò/gˆ››ÚÅ$ÙÕ7B³q†µdHÓ£˜4ÕÔNÇÍòøûH\Þ¾arÝùëKMfQêÍÅ´çÐuƒ /=½È™Ä&öøM¸JTn/vz¹ ÷…K³-ZõîH4-¬1v?;žG‘–j_ÿ{ íŠM o£Qè†ÎܦƒË3}ƒ”Pµ¡æÊú`gýO5D­ñÉÄØŒ‚Cú ¶+?Uˆy¹5ŒÑ ׂNR4ÅæpÅ”óȪ ù tÕßöBS/«êåÛŽ-ø›V¡ü^qŒÝþ†!2÷ 4&“ªd7çÍŸžKÇ›/ÅjX匑¦Ó«­=nÌ¢‰ÿ‘ýÓgø­-ò„K~æÁ5/|_Ò†G³e’üÍ nþ0S’ÞÛ¬™gD¾ºXÊ篠†w(éPpŸª-#CՎȹ“±ˆ!pj³;¾èe«g!¯z§îµ(Š~ÃÄÇ@$BÊüˆdŠ”üûÖÛÁ$%o¦™½v(ߺ–¶ÜÉn¨(ƒ¿Ñ¿T]*^<­âùgÑZˆA7Ãfâþ~yý¿¥§ò…×çG>Xœ›uÀ⃼ÆSÊzc ‘¨ñ)gI§/{jÁå6rüýº¥®tc¯@TÛÍGl¥Íë­ˆà5È^h\ìj(œ«ˆ‡mâKÈ&¨mWR†Eïh)ùct¼Ôäc-œkÙ`yïbØ‚íéë’êÆ¼©ª7CY.æÝ+$~ÑqfØ“óF¦¶¾¨Q¹ïs"×·@šWaðàz!¶ pú`(Ûeœ(‹‚ÿ%756à©EÕ&Ž>±£QòéiÑ&Q eðgAZ/<^—QÛÌ~ŽÍ€Àb“ñŒ]Ð#ò5sý¹Ë]L×Ë@.^õ²s˜}ÇþoÙœK´ÎñÑî·érw™ÏÍcî,‚`¸Ø·KÈc:0)|pJKLyh™‹’(Ë¡ m8š÷º5äZÀP¹œöp=$kðþ¹>¯Nwh¿\ó1µ³y¸p•u¹/D!]vúò ùr|RÜpÔ“;%¨brW5mn O}ÐýÕoøÆœ[ÌêRÅ«œM¾“òÕ6йTìC³Þiº„ªyúÐ*­xtP#w=%TøÓm\:Z¬Ùª“ŠM4³—˜è¼Ÿ[w!+Œß•ÚÒO¬õÞ»O¿xŸôè½uàÃ?9ŽY¨•"Äôþ:Š”Ì…7v+êû­§Žs|MfÒ—²’‡t=qöô’øÓª·!ç ÇÏSWûc·¾cË߬ ,Woå:Ö©ŸÁ„ªÿÞ¯„5w«&(¼Rf£ê’uosì‰BW-nĵpòsösS°xûûdÛ îB¿ ÀÚÏ»ùˆùÀÅàS6œç“µƒ‰õWB?¡§lh÷*Zþ‘J„¸š©Üïçñjé)Ö}ÐÌþKâxà·ÆŠR*™ÎR>H?‰’˜_¦Óó~\î×ì÷]* ž¼å }¾ðoJî1ý4xh¿—Mfú#·M áx/yRNÌ›õûŒÂ8D8êBDþ"ôÎp^Q*g™’Îc£(dÑ{ŠøáƒAãk¢UhU ?°¢=×\š~1SLpCÅš·‚‚$)IÁtü+´˜ö޳Îd §Îœla‹_{äúï·*j ½#8OñÓq 9Ö^ñ&hMÏt*5Á×lJWmÐ^Izjï­Ô–¡Á4¿'f`IröM×¼¨¦g×2÷ÆFL+HîWH•ûÿ[âÙ¯>UyÐà,åû\Ÿªôì}ÛÚ"Òcf+£pØ—¸ÿ¯Ä:;´ËgÅEÏe]¯¼#¥dÎ3lFC)_vœKÂsth¨Å,ßåÏ×F0“Ü©”BêÕNoŒ«g-ë!I!š°ƒõ÷î°LÛ‡iÍsÎq«ÏêÎØrZ`ìûĹ4L4”!™FÇÏÿ¹òæúopóšö®0Ó®YOcÔµdç:Xcó8ˆ௩˜û¤'•¨ïÌq¤î0®ÕÆý5 J¼¡crKn—Ô2,»Á ‡WLM(ÅŸÉ|óól°žOæNŒüI¢à‡³IÆwíV,>\Š5@–Ôßr½ý$զåµlKë›Â*˜02K€ÄÉ´&èQø›[Ÿ kÅѰ¦ª-®Žíz6B‘Ñõ#ÿˆ/æ¿Ötüëg0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark libwmf-0.2.13/fonts/NimbusSans-Bold.afm000066400000000000000000003377301441723000300176420ustar00rootroot00000000000000StartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development Comment Creation Date: 5/17/2017 FontName NimbusSans-Bold FullName Nimbus Sans Bold FamilyName Nimbus Sans Weight Bold ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -155 UnderlineThickness 69 Version 1.00 Notice (URW)++,Copyright 2014 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -188 -307 1069 1070 CapHeight 729 XHeight 540 Descender 0 Ascender 0 StartCharMetrics 855 C 32 ; WX 278 ; N space ; B 214 0 214 0 ; C 33 ; WX 333 ; N exclam ; B 112 0 262 726 ; C 34 ; WX 474 ; N quotedbl ; B 50 470 424 729 ; C 35 ; WX 556 ; N numbersign ; B 3 -32 553 697 ; C 36 ; WX 556 ; N dollar ; B 22 -126 527 763 ; C 37 ; WX 889 ; N percent ; B 22 -20 863 709 ; C 38 ; WX 722 ; N ampersand ; B 55 -23 694 723 ; C 39 ; WX 278 ; N quoteright ; B 66 469 205 729 ; C 40 ; WX 333 ; N parenleft ; B 40 -200 303 729 ; C 41 ; WX 333 ; N parenright ; B 22 -200 285 729 ; C 42 ; WX 389 ; N asterisk ; B 23 407 356 729 ; C 43 ; WX 584 ; N plus ; B 50 -10 533 473 ; C 44 ; WX 278 ; N comma ; B 64 -174 218 146 ; C 45 ; WX 333 ; N hyphen ; B 26 207 298 342 ; C 46 ; WX 278 ; N period ; B 64 0 214 146 ; C 47 ; WX 278 ; N slash ; B 2 -14 275 714 ; C 48 ; WX 556 ; N zero ; B 29 -23 517 724 ; C 49 ; WX 556 ; N one ; B 68 0 378 709 ; C 50 ; WX 556 ; N two ; B 30 0 515 724 ; C 51 ; WX 556 ; N three ; B 29 -23 516 724 ; C 52 ; WX 556 ; N four ; B 24 0 522 709 ; C 53 ; WX 556 ; N five ; B 27 -23 517 709 ; C 54 ; WX 556 ; N six ; B 32 -23 519 724 ; C 55 ; WX 556 ; N seven ; B 29 0 528 709 ; C 56 ; WX 556 ; N eight ; B 22 -23 525 724 ; C 57 ; WX 556 ; N nine ; B 28 -24 516 724 ; C 58 ; WX 333 ; N colon ; B 113 0 263 520 ; C 59 ; WX 333 ; N semicolon ; B 113 -174 267 520 ; C 60 ; WX 584 ; N less ; B 40 -10 529 474 ; C 61 ; WX 584 ; N equal ; B 50 52 534 411 ; C 62 ; WX 584 ; N greater ; B 40 -10 529 474 ; C 63 ; WX 611 ; N question ; B 64 0 556 744 ; C 64 ; WX 975 ; N at ; B 27 -137 947 745 ; C 65 ; WX 722 ; N A ; B 26 0 703 729 ; C 66 ; WX 722 ; N B ; B 82 0 666 729 ; C 67 ; WX 722 ; N C ; B 44 -23 685 741 ; C 68 ; WX 722 ; N D ; B 77 0 681 729 ; C 69 ; WX 667 ; N E ; B 79 0 624 729 ; C 70 ; WX 611 ; N F ; B 74 0 586 729 ; C 71 ; WX 778 ; N G ; B 42 -23 711 741 ; C 72 ; WX 722 ; N H ; B 68 0 657 729 ; C 73 ; WX 278 ; N I ; B 63 0 213 729 ; C 74 ; WX 556 ; N J ; B 24 -23 486 729 ; C 75 ; WX 722 ; N K ; B 74 0 717 729 ; C 76 ; WX 611 ; N L ; B 80 0 579 729 ; C 77 ; WX 833 ; N M ; B 66 0 776 729 ; C 78 ; WX 722 ; N N ; B 68 0 661 729 ; C 79 ; WX 778 ; N O ; B 40 -23 742 741 ; C 80 ; WX 667 ; N P ; B 76 0 633 729 ; C 81 ; WX 778 ; N Q ; B 43 -54 745 741 ; C 82 ; WX 722 ; N R ; B 80 0 677 729 ; C 83 ; WX 667 ; N S ; B 32 -23 633 741 ; C 84 ; WX 611 ; N T ; B 14 0 598 729 ; C 85 ; WX 722 ; N U ; B 76 -23 654 729 ; C 86 ; WX 667 ; N V ; B 24 0 647 729 ; C 87 ; WX 944 ; N W ; B 13 0 932 729 ; C 88 ; WX 667 ; N X ; B 22 0 653 729 ; C 89 ; WX 667 ; N Y ; B 27 0 650 729 ; C 90 ; WX 611 ; N Z ; B 30 0 578 729 ; C 91 ; WX 333 ; N bracketleft ; B 66 -200 308 729 ; C 92 ; WX 278 ; N backslash ; B -12 -14 289 714 ; C 93 ; WX 333 ; N bracketright ; B 18 -200 260 729 ; C 94 ; WX 584 ; N asciicircum ; B 61 270 522 695 ; C 95 ; WX 556 ; N underscore ; B -22 -189 578 -120 ; C 96 ; WX 278 ; N quoteleft ; B 67 469 206 729 ; C 97 ; WX 556 ; N a ; B 28 -23 524 549 ; C 98 ; WX 611 ; N b ; B 59 -23 575 729 ; C 99 ; WX 556 ; N c ; B 34 -23 522 549 ; C 100 ; WX 611 ; N d ; B 29 -23 545 729 ; C 101 ; WX 556 ; N e ; B 22 -23 525 549 ; C 102 ; WX 333 ; N f ; B 14 0 313 729 ; C 103 ; WX 611 ; N g ; B 41 -218 533 549 ; C 104 ; WX 611 ; N h ; B 67 0 541 729 ; C 105 ; WX 278 ; N i ; B 67 0 207 729 ; C 106 ; WX 278 ; N j ; B 4 -218 210 729 ; C 107 ; WX 556 ; N k ; B 59 0 548 729 ; C 108 ; WX 278 ; N l ; B 67 0 207 729 ; C 109 ; WX 889 ; N m ; B 60 0 824 549 ; C 110 ; WX 611 ; N n ; B 63 0 546 549 ; C 111 ; WX 611 ; N o ; B 35 -23 569 549 ; C 112 ; WX 611 ; N p ; B 58 -218 574 549 ; C 113 ; WX 611 ; N q ; B 28 -218 544 549 ; C 114 ; WX 389 ; N r ; B 63 0 370 549 ; C 115 ; WX 556 ; N s ; B 29 -23 520 549 ; C 116 ; WX 333 ; N t ; B 14 -23 301 674 ; C 117 ; WX 611 ; N u ; B 58 -23 541 540 ; C 118 ; WX 556 ; N v ; B 14 0 536 540 ; C 119 ; WX 778 ; N w ; B 5 0 766 540 ; C 120 ; WX 556 ; N x ; B 16 0 535 540 ; C 121 ; WX 556 ; N y ; B 9 -219 538 540 ; C 122 ; WX 500 ; N z ; B 21 0 468 540 ; C 123 ; WX 389 ; N braceleft ; B 37 -201 317 730 ; C 124 ; WX 280 ; N bar ; B 100 -200 180 729 ; C 125 ; WX 389 ; N braceright ; B 72 -201 352 730 ; C 126 ; WX 584 ; N asciitilde ; B 60 265 519 437 ; C 161 ; WX 333 ; N exclamdown ; B 66 -186 216 540 ; C 162 ; WX 556 ; N cent ; B 37 -124 522 634 ; C 163 ; WX 556 ; N sterling ; B 31 -23 537 715 ; C 164 ; WX 278 ; N fraction ; B -118 -20 392 715 ; C 165 ; WX 556 ; N yen ; B 5 0 552 704 ; C 166 ; WX 556 ; N florin ; B 21 -220 535 744 ; C 167 ; WX 556 ; N section ; B 33 -201 518 723 ; C 168 ; WX 556 ; N currency ; B 26 100 530 604 ; C 169 ; WX 238 ; N quotesingle ; B 50 470 188 729 ; C 170 ; WX 500 ; N quotedblleft ; B 71 469 437 729 ; C 171 ; WX 556 ; N guillemotleft ; B 88 72 468 481 ; C 172 ; WX 333 ; N guilsinglleft ; B 83 72 250 481 ; C 173 ; WX 333 ; N guilsinglright ; B 80 72 247 481 ; C 174 ; WX 611 ; N fi ; B 14 0 540 729 ; C 175 ; WX 611 ; N fl ; B 14 0 540 729 ; C 177 ; WX 556 ; N endash ; B -9 207 557 311 ; C 178 ; WX 556 ; N dagger ; B 31 -194 523 709 ; C 179 ; WX 556 ; N daggerdbl ; B 28 -194 520 709 ; C 180 ; WX 278 ; N periodcentered ; B 64 216 188 339 ; C 182 ; WX 556 ; N paragraph ; B 20 -191 529 729 ; C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; C 184 ; WX 278 ; N quotesinglbase ; B 66 -135 205 125 ; C 185 ; WX 500 ; N quotedblbase ; B 72 -135 436 125 ; C 186 ; WX 500 ; N quotedblright ; B 73 469 444 729 ; C 187 ; WX 556 ; N guillemotright ; B 88 72 462 481 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ; C 189 ; WX 1000 ; N perthousand ; B 11 -22 990 739 ; C 191 ; WX 611 ; N questiondown ; B 51 -204 544 540 ; C 193 ; WX 333 ; N grave ; B 17 607 213 757 ; C 194 ; WX 333 ; N acute ; B 121 607 317 757 ; C 195 ; WX 333 ; N circumflex ; B 8 607 326 757 ; C 196 ; WX 333 ; N tilde ; B -9 621 345 749 ; C 197 ; WX 333 ; N macron ; B 16 640 315 719 ; C 198 ; WX 333 ; N breve ; B 35 605 299 748 ; C 199 ; WX 333 ; N dotaccent ; B 112 621 222 743 ; C 200 ; WX 333 ; N dieresis ; B 18 621 314 743 ; C 202 ; WX 333 ; N ring ; B 77 590 257 770 ; C 203 ; WX 333 ; N cedilla ; B 27 -220 294 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -44 610 340 757 ; C 206 ; WX 333 ; N ogonek ; B 45 -234 268 0 ; C 207 ; WX 333 ; N caron ; B 9 607 327 757 ; C 208 ; WX 1000 ; N emdash ; B -7 207 1003 311 ; C 225 ; WX 1000 ; N AE ; B 1 0 966 729 ; C 227 ; WX 370 ; N ordfeminine ; B 30 262 329 729 ; C 232 ; WX 611 ; N Lslash ; B 0 0 597 729 ; C 233 ; WX 778 ; N Oslash ; B 31 -39 755 749 ; C 234 ; WX 1000 ; N OE ; B 28 -23 970 741 ; C 235 ; WX 365 ; N ordmasculine ; B 23 262 343 729 ; C 241 ; WX 889 ; N ae ; B 27 -24 857 549 ; C 245 ; WX 278 ; N dotlessi ; B 67 0 207 540 ; C 248 ; WX 278 ; N lslash ; B 0 0 252 729 ; C 249 ; WX 611 ; N oslash ; B 11 -38 598 557 ; C 250 ; WX 944 ; N oe ; B 23 -23 920 549 ; C 251 ; WX 611 ; N germandbls ; B 67 -17 575 729 ; C -1 ; WX 278 ; N .notdef ; B 214 0 214 0 ; C -1 ; WX 1000 ; N AEacute ; B 1 0 966 936 ; C -1 ; WX 722 ; N Aacute ; B 26 0 703 936 ; C -1 ; WX 722 ; N Abreve ; B 26 0 703 927 ; C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ; C -1 ; WX 722 ; N Adieresis ; B 26 0 703 922 ; C -1 ; WX 722 ; N Agrave ; B 26 0 703 936 ; C -1 ; WX 722 ; N Alpha ; B 26 0 703 729 ; C -1 ; WX 722 ; N Alphatonos ; B 26 0 703 729 ; C -1 ; WX 722 ; N Amacron ; B 26 0 703 898 ; C -1 ; WX 722 ; N Aogonek ; B 26 -233 723 729 ; C -1 ; WX 722 ; N Aring ; B 26 0 703 949 ; C -1 ; WX 722 ; N Aringacute ; B 26 0 703 1070 ; C -1 ; WX 722 ; N Atilde ; B 26 0 703 928 ; C -1 ; WX 722 ; N Beta ; B 82 0 666 729 ; C -1 ; WX 722 ; N Cacute ; B 44 -23 685 936 ; C -1 ; WX 722 ; N Ccaron ; B 44 -23 685 936 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -220 685 741 ; C -1 ; WX 722 ; N Ccircumflex ; B 44 -23 685 936 ; C -1 ; WX 722 ; N Cdotaccent ; B 44 -23 685 922 ; C -1 ; WX 667 ; N Chi ; B 22 0 653 729 ; C -1 ; WX 722 ; N Dcaron ; B 77 0 681 936 ; C -1 ; WX 722 ; N Dcroat ; B 0 0 681 729 ; C -1 ; WX 612 ; N Delta ; B 4 0 608 630 ; C -1 ; WX 667 ; N Eacute ; B 79 0 624 936 ; C -1 ; WX 667 ; N Ebreve ; B 79 0 624 927 ; C -1 ; WX 667 ; N Ecaron ; B 79 0 624 936 ; C -1 ; WX 667 ; N Ecircumflex ; B 79 0 624 936 ; C -1 ; WX 667 ; N Edieresis ; B 79 0 624 922 ; C -1 ; WX 667 ; N Edotaccent ; B 79 0 624 922 ; C -1 ; WX 667 ; N Egrave ; B 79 0 624 936 ; C -1 ; WX 667 ; N Emacron ; B 79 0 624 898 ; C -1 ; WX 723 ; N Eng ; B 66 -294 655 741 ; C -1 ; WX 667 ; N Eogonek ; B 79 -233 648 729 ; C -1 ; WX 667 ; N Epsilon ; B 79 0 624 729 ; C -1 ; WX 853 ; N Epsilontonos ; B 52 0 759 729 ; C -1 ; WX 722 ; N Eta ; B 68 0 657 729 ; C -1 ; WX 906 ; N Etatonos ; B 45 0 796 729 ; C -1 ; WX 722 ; N Eth ; B 0 0 681 729 ; C -1 ; WX 556 ; N Euro ; B 6 -23 546 724 ; C -1 ; WX 601 ; N Gamma ; B 74 0 586 729 ; C -1 ; WX 778 ; N Gbreve ; B 42 -23 711 927 ; C -1 ; WX 778 ; N Gcircumflex ; B 42 -23 711 936 ; C -1 ; WX 778 ; N Gcommaaccent ; B 42 -307 711 741 ; C -1 ; WX 778 ; N Gdotaccent ; B 42 -23 711 922 ; C -1 ; WX 604 ; N H18533 ; B 43 0 562 519 ; C -1 ; WX 354 ; N H18543 ; B 49 131 305 387 ; C -1 ; WX 354 ; N H18551 ; B 49 131 305 388 ; C -1 ; WX 722 ; N Hbar ; B 1 0 724 729 ; C -1 ; WX 722 ; N Hcircumflex ; B 68 0 657 936 ; C -1 ; WX 785 ; N IJ ; B 64 -23 725 729 ; C -1 ; WX 278 ; N Iacute ; B 63 0 290 936 ; C -1 ; WX 278 ; N Ibreve ; B 7 0 271 927 ; C -1 ; WX 278 ; N Icircumflex ; B -19 0 299 936 ; C -1 ; WX 278 ; N Idieresis ; B -9 0 287 922 ; C -1 ; WX 278 ; N Idotaccent ; B 63 0 213 922 ; C -1 ; WX 719 ; N Ifraktur ; B 71 -71 651 698 ; C -1 ; WX 278 ; N Igrave ; B -10 0 213 936 ; C -1 ; WX 278 ; N Imacron ; B 2 0 274 898 ; C -1 ; WX 278 ; N Iogonek ; B 34 -233 237 729 ; C -1 ; WX 278 ; N Iota ; B 63 0 213 729 ; C -1 ; WX 278 ; N Iotadieresis ; B -9 0 287 922 ; C -1 ; WX 474 ; N Iotatonos ; B 49 0 361 729 ; C -1 ; WX 278 ; N Itilde ; B -37 0 317 928 ; C -1 ; WX 556 ; N Jcircumflex ; B 24 -23 570 936 ; C -1 ; WX 722 ; N Kappa ; B 74 0 717 729 ; C -1 ; WX 722 ; N Kcommaaccent ; B 74 -307 717 729 ; C -1 ; WX 611 ; N Lacute ; B 80 0 579 936 ; C -1 ; WX 667 ; N Lambda ; B -5 0 672 729 ; C -1 ; WX 611 ; N Lcaron ; B 80 0 579 729 ; C -1 ; WX 611 ; N Lcommaaccent ; B 80 -307 579 729 ; C -1 ; WX 611 ; N Ldot ; B 80 0 579 729 ; C -1 ; WX 833 ; N Mu ; B 66 0 776 729 ; C -1 ; WX 722 ; N Nacute ; B 68 0 661 936 ; C -1 ; WX 722 ; N Ncaron ; B 68 0 661 936 ; C -1 ; WX 722 ; N Ncommaaccent ; B 68 -307 661 729 ; C -1 ; WX 722 ; N Ntilde ; B 68 0 661 928 ; C -1 ; WX 722 ; N Nu ; B 68 0 661 729 ; C -1 ; WX 778 ; N Oacute ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Obreve ; B 40 -23 742 927 ; C -1 ; WX 778 ; N Ocircumflex ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Odieresis ; B 40 -23 742 922 ; C -1 ; WX 778 ; N Ograve ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 40 -23 742 936 ; C -1 ; WX 778 ; N Omacron ; B 40 -23 742 898 ; C -1 ; WX 838 ; N Omegatonos ; B 9 0 804 741 ; C -1 ; WX 778 ; N Omicron ; B 40 -23 742 741 ; C -1 ; WX 825 ; N Omicrontonos ; B 3 -23 786 741 ; C -1 ; WX 778 ; N Oslashacute ; B 31 -39 755 936 ; C -1 ; WX 778 ; N Otilde ; B 40 -23 742 928 ; C -1 ; WX 821 ; N Phi ; B 60 -14 762 743 ; C -1 ; WX 722 ; N Pi ; B 66 0 655 729 ; C -1 ; WX 809 ; N Psi ; B 54 0 758 729 ; C -1 ; WX 722 ; N Racute ; B 80 0 677 936 ; C -1 ; WX 722 ; N Rcaron ; B 80 0 677 936 ; C -1 ; WX 722 ; N Rcommaaccent ; B 80 -307 677 729 ; C -1 ; WX 778 ; N Rfraktur ; B 72 -6 693 604 ; C -1 ; WX 667 ; N Rho ; B 76 0 633 729 ; C -1 ; WX 1000 ; N SF010000 ; B 467 -250 1000 283 ; C -1 ; WX 1000 ; N SF020000 ; B 467 217 1000 750 ; C -1 ; WX 1000 ; N SF030000 ; B 0 -250 533 283 ; C -1 ; WX 1000 ; N SF040000 ; B 0 217 533 750 ; C -1 ; WX 1000 ; N SF050000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF060000 ; B 0 -250 1000 283 ; C -1 ; WX 1000 ; N SF070000 ; B 0 217 1000 750 ; C -1 ; WX 1000 ; N SF080000 ; B 467 -250 1000 750 ; C -1 ; WX 1000 ; N SF090000 ; B 0 -250 533 750 ; C -1 ; WX 1000 ; N SF100000 ; B 0 217 1000 283 ; C -1 ; WX 1000 ; N SF110000 ; B 467 -250 533 750 ; C -1 ; WX 1000 ; N SF190000 ; B 0 -250 533 750 ; C -1 ; WX 1000 ; N SF200000 ; B 0 -250 599 750 ; C -1 ; WX 1000 ; N SF210000 ; B 0 -250 599 283 ; C -1 ; WX 1000 ; N SF220000 ; B 0 -250 533 349 ; C -1 ; WX 1000 ; N SF230000 ; B 0 -250 599 750 ; C -1 ; WX 1000 ; N SF240000 ; B 401 -250 599 750 ; C -1 ; WX 1000 ; N SF250000 ; B 0 -250 599 349 ; C -1 ; WX 1000 ; N SF260000 ; B 0 151 599 750 ; C -1 ; WX 1000 ; N SF270000 ; B 0 217 599 750 ; C -1 ; WX 1000 ; N SF280000 ; B 0 151 533 750 ; C -1 ; WX 1000 ; N SF360000 ; B 467 -250 1000 750 ; C -1 ; WX 1000 ; N SF370000 ; B 401 -250 1000 750 ; C -1 ; WX 1000 ; N SF380000 ; B 401 151 1000 750 ; C -1 ; WX 1000 ; N SF390000 ; B 401 -250 1000 349 ; C -1 ; WX 1000 ; N SF400000 ; B 0 151 1000 750 ; C -1 ; WX 1000 ; N SF410000 ; B 0 -250 1000 349 ; C -1 ; WX 1000 ; N SF420000 ; B 401 -250 1000 750 ; C -1 ; WX 1000 ; N SF430000 ; B 0 151 1000 349 ; C -1 ; WX 1000 ; N SF440000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF450000 ; B 0 151 1000 750 ; C -1 ; WX 1000 ; N SF460000 ; B 0 217 1000 750 ; C -1 ; WX 1000 ; N SF470000 ; B 0 -250 1000 349 ; C -1 ; WX 1000 ; N SF480000 ; B 0 -250 1000 283 ; C -1 ; WX 1000 ; N SF490000 ; B 401 217 1000 750 ; C -1 ; WX 1000 ; N SF500000 ; B 467 151 1000 750 ; C -1 ; WX 1000 ; N SF510000 ; B 467 -250 1000 349 ; C -1 ; WX 1000 ; N SF520000 ; B 401 -250 1000 283 ; C -1 ; WX 1000 ; N SF530000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF540000 ; B 0 -250 1000 750 ; C -1 ; WX 667 ; N Sacute ; B 32 -23 633 936 ; C -1 ; WX 667 ; N Scaron ; B 32 -23 633 936 ; C -1 ; WX 667 ; N Scedilla ; B 32 -220 633 741 ; C -1 ; WX 667 ; N Scircumflex ; B 32 -23 633 936 ; C -1 ; WX 667 ; N Scommaaccent ; B 32 -307 633 741 ; C -1 ; WX 600 ; N Sigma ; B 26 0 579 729 ; C -1 ; WX 611 ; N Tau ; B 14 0 598 729 ; C -1 ; WX 611 ; N Tbar ; B 14 0 598 729 ; C -1 ; WX 611 ; N Tcaron ; B 14 0 598 936 ; C -1 ; WX 611 ; N Tcommaaccent ; B 14 -220 598 729 ; C -1 ; WX 778 ; N Theta ; B 40 -23 742 741 ; C -1 ; WX 667 ; N Thorn ; B 76 0 633 729 ; C -1 ; WX 722 ; N Uacute ; B 76 -23 654 936 ; C -1 ; WX 722 ; N Ubreve ; B 76 -23 654 927 ; C -1 ; WX 722 ; N Ucircumflex ; B 76 -23 654 936 ; C -1 ; WX 722 ; N Udieresis ; B 76 -23 654 922 ; C -1 ; WX 722 ; N Ugrave ; B 76 -23 654 936 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 76 -23 654 936 ; C -1 ; WX 722 ; N Umacron ; B 76 -23 654 898 ; C -1 ; WX 722 ; N Uogonek ; B 76 -234 654 729 ; C -1 ; WX 667 ; N Upsilon ; B 27 0 650 729 ; C -1 ; WX 667 ; N Upsilondieresis ; B 27 0 650 922 ; C -1 ; WX 927 ; N Upsilontonos ; B 78 0 833 729 ; C -1 ; WX 722 ; N Uring ; B 76 -23 654 949 ; C -1 ; WX 722 ; N Utilde ; B 76 -23 654 928 ; C -1 ; WX 944 ; N Wacute ; B 13 0 932 936 ; C -1 ; WX 944 ; N Wcircumflex ; B 13 0 932 936 ; C -1 ; WX 944 ; N Wdieresis ; B 13 0 932 922 ; C -1 ; WX 944 ; N Wgrave ; B 13 0 932 936 ; C -1 ; WX 644 ; N Xi ; B 27 0 616 729 ; C -1 ; WX 667 ; N Yacute ; B 27 0 650 936 ; C -1 ; WX 667 ; N Ycircumflex ; B 27 0 650 936 ; C -1 ; WX 667 ; N Ydieresis ; B 27 0 650 922 ; C -1 ; WX 667 ; N Ygrave ; B 27 0 650 936 ; C -1 ; WX 611 ; N Zacute ; B 30 0 578 936 ; C -1 ; WX 611 ; N Zcaron ; B 30 0 578 936 ; C -1 ; WX 611 ; N Zdotaccent ; B 30 0 578 922 ; C -1 ; WX 611 ; N Zeta ; B 30 0 578 729 ; C -1 ; WX 556 ; N aacute ; B 28 -23 524 757 ; C -1 ; WX 556 ; N abreve ; B 28 -23 524 748 ; C -1 ; WX 556 ; N acircumflex ; B 28 -23 524 757 ; C -1 ; WX 556 ; N adieresis ; B 28 -23 524 743 ; C -1 ; WX 889 ; N aeacute ; B 27 -24 857 757 ; C -1 ; WX 1000 ; N afii00208 ; B -7 207 1003 311 ; C -1 ; WX 722 ; N afii10017 ; B 23 0 700 729 ; C -1 ; WX 719 ; N afii10018 ; B 74 0 669 729 ; C -1 ; WX 722 ; N afii10019 ; B 79 0 663 729 ; C -1 ; WX 567 ; N afii10020 ; B 119 0 518 729 ; C -1 ; WX 712 ; N afii10021 ; B -13 -136 710 729 ; C -1 ; WX 667 ; N afii10022 ; B 73 0 618 729 ; C -1 ; WX 669 ; N afii10023 ; B 74 0 619 922 ; C -1 ; WX 904 ; N afii10024 ; B -12 0 907 729 ; C -1 ; WX 626 ; N afii10025 ; B 59 -23 571 741 ; C -1 ; WX 719 ; N afii10026 ; B 65 0 654 729 ; C -1 ; WX 719 ; N afii10027 ; B 65 0 654 933 ; C -1 ; WX 610 ; N afii10028 ; B 58 0 590 729 ; C -1 ; WX 702 ; N afii10029 ; B 5 -1 625 729 ; C -1 ; WX 833 ; N afii10030 ; B 62 0 772 729 ; C -1 ; WX 722 ; N afii10031 ; B 67 0 656 729 ; C -1 ; WX 778 ; N afii10032 ; B 38 -23 740 741 ; C -1 ; WX 719 ; N afii10033 ; B 72 0 648 729 ; C -1 ; WX 667 ; N afii10034 ; B 69 0 626 729 ; C -1 ; WX 722 ; N afii10035 ; B 42 -23 681 741 ; C -1 ; WX 611 ; N afii10036 ; B 13 0 597 729 ; C -1 ; WX 622 ; N afii10037 ; B 6 0 625 729 ; C -1 ; WX 854 ; N afii10038 ; B 35 0 812 729 ; C -1 ; WX 667 ; N afii10039 ; B 22 0 644 729 ; C -1 ; WX 730 ; N afii10040 ; B 68 -159 700 729 ; C -1 ; WX 703 ; N afii10041 ; B 33 0 643 729 ; C -1 ; WX 1005 ; N afii10042 ; B 49 0 955 729 ; C -1 ; WX 1019 ; N afii10043 ; B 52 -159 1008 729 ; C -1 ; WX 870 ; N afii10044 ; B 16 0 811 729 ; C -1 ; WX 979 ; N afii10045 ; B 107 0 872 729 ; C -1 ; WX 719 ; N afii10046 ; B 100 0 649 729 ; C -1 ; WX 711 ; N afii10047 ; B 19 -23 681 741 ; C -1 ; WX 1031 ; N afii10048 ; B 53 -23 989 741 ; C -1 ; WX 719 ; N afii10049 ; B 50 -1 643 729 ; C -1 ; WX 487 ; N afii10050 ; B 79 0 567 851 ; C -1 ; WX 885 ; N afii10051 ; B 50 -4 790 729 ; C -1 ; WX 567 ; N afii10052 ; B 119 0 518 917 ; C -1 ; WX 711 ; N afii10053 ; B 30 -23 692 741 ; C -1 ; WX 667 ; N afii10054 ; B 32 -23 633 741 ; C -1 ; WX 278 ; N afii10055 ; B 64 0 214 729 ; C -1 ; WX 276 ; N afii10056 ; B -10 0 286 922 ; C -1 ; WX 556 ; N afii10057 ; B 27 -23 489 729 ; C -1 ; WX 1094 ; N afii10058 ; B 16 -1 1035 729 ; C -1 ; WX 1063 ; N afii10059 ; B 52 0 1040 729 ; C -1 ; WX 875 ; N afii10060 ; B 63 0 795 729 ; C -1 ; WX 610 ; N afii10061 ; B 33 0 562 917 ; C -1 ; WX 622 ; N afii10062 ; B 6 0 625 933 ; C -1 ; WX 556 ; N afii10065 ; B 27 -23 524 549 ; C -1 ; WX 618 ; N afii10066 ; B 42 -23 576 847 ; C -1 ; WX 615 ; N afii10067 ; B 87 0 556 540 ; C -1 ; WX 417 ; N afii10068 ; B 73 0 403 540 ; C -1 ; WX 635 ; N afii10069 ; B 7 -112 616 540 ; C -1 ; WX 556 ; N afii10070 ; B 29 -23 531 549 ; C -1 ; WX 556 ; N afii10071 ; B 29 -23 531 743 ; C -1 ; WX 709 ; N afii10072 ; B -8 0 709 540 ; C -1 ; WX 497 ; N afii10073 ; B 34 -23 455 549 ; C -1 ; WX 615 ; N afii10074 ; B 70 0 545 540 ; C -1 ; WX 615 ; N afii10075 ; B 70 0 545 746 ; C -1 ; WX 500 ; N afii10076 ; B 35 0 473 540 ; C -1 ; WX 635 ; N afii10077 ; B 37 0 551 540 ; C -1 ; WX 740 ; N afii10078 ; B 81 0 659 540 ; C -1 ; WX 604 ; N afii10079 ; B 64 0 539 540 ; C -1 ; WX 611 ; N afii10080 ; B 39 -23 573 549 ; C -1 ; WX 604 ; N afii10081 ; B 73 0 531 540 ; C -1 ; WX 611 ; N afii10082 ; B 60 -218 576 549 ; C -1 ; WX 556 ; N afii10083 ; B 36 -23 524 549 ; C -1 ; WX 490 ; N afii10084 ; B 16 0 474 540 ; C -1 ; WX 556 ; N afii10085 ; B 18 -218 547 540 ; C -1 ; WX 875 ; N afii10086 ; B 47 -218 827 736 ; C -1 ; WX 556 ; N afii10087 ; B 19 0 538 540 ; C -1 ; WX 615 ; N afii10088 ; B 71 -160 580 540 ; C -1 ; WX 581 ; N afii10089 ; B 40 0 526 540 ; C -1 ; WX 833 ; N afii10090 ; B 60 0 774 540 ; C -1 ; WX 844 ; N afii10091 ; B 43 -159 836 540 ; C -1 ; WX 729 ; N afii10092 ; B 25 0 671 540 ; C -1 ; WX 854 ; N afii10093 ; B 101 0 752 540 ; C -1 ; WX 615 ; N afii10094 ; B 92 0 559 540 ; C -1 ; WX 552 ; N afii10095 ; B 9 -23 530 549 ; C -1 ; WX 854 ; N afii10096 ; B 49 -23 821 549 ; C -1 ; WX 583 ; N afii10097 ; B 49 0 513 540 ; C -1 ; WX 447 ; N afii10098 ; B 88 0 552 698 ; C -1 ; WX 611 ; N afii10099 ; B 36 -140 555 736 ; C -1 ; WX 417 ; N afii10100 ; B 73 0 403 756 ; C -1 ; WX 552 ; N afii10101 ; B 22 -23 543 549 ; C -1 ; WX 556 ; N afii10102 ; B 29 -23 520 549 ; C -1 ; WX 278 ; N afii10103 ; B 69 0 209 729 ; C -1 ; WX 281 ; N afii10104 ; B -8 0 288 743 ; C -1 ; WX 278 ; N afii10105 ; B 5 -218 211 729 ; C -1 ; WX 969 ; N afii10106 ; B 33 0 923 540 ; C -1 ; WX 906 ; N afii10107 ; B 70 0 872 540 ; C -1 ; WX 611 ; N afii10108 ; B -23 0 556 736 ; C -1 ; WX 500 ; N afii10109 ; B 35 0 471 756 ; C -1 ; WX 556 ; N afii10110 ; B 18 -218 547 746 ; C -1 ; WX 719 ; N afii10145 ; B 77 -160 643 729 ; C -1 ; WX 604 ; N afii10193 ; B 76 -160 529 540 ; C -1 ; WX 575 ; N afii10846 ; B 35 -23 537 549 ; C -1 ; WX 885 ; N afii61248 ; B 42 -16 844 731 ; C -1 ; WX 489 ; N afii61289 ; B -4 -21 364 743 ; C -1 ; WX 1115 ; N afii61352 ; B 71 0 1069 741 ; C -1 ; WX 556 ; N agrave ; B 28 -23 524 757 ; C -1 ; WX 500 ; N aleph ; B 28 0 473 631 ; C -1 ; WX 615 ; N alpha ; B 22 -24 631 549 ; C -1 ; WX 615 ; N alphatonos ; B 24 -23 643 789 ; C -1 ; WX 556 ; N amacron ; B 28 -23 524 719 ; C -1 ; WX 1000 ; N angle ; B 211 0 789 417 ; C -1 ; WX 333 ; N angleleft ; B 58 -125 275 602 ; C -1 ; WX 333 ; N angleright ; B 58 -125 275 602 ; C -1 ; WX 556 ; N aogonek ; B 28 -233 548 549 ; C -1 ; WX 549 ; N approxequal ; B 32 57 517 403 ; C -1 ; WX 556 ; N aring ; B 28 -23 524 770 ; C -1 ; WX 556 ; N aringacute ; B 28 -23 524 892 ; C -1 ; WX 1000 ; N arrowboth ; B 122 143 878 479 ; C -1 ; WX 722 ; N arrowdblboth ; B 6 73 720 517 ; C -1 ; WX 722 ; N arrowdbldown ; B 139 0 583 648 ; C -1 ; WX 722 ; N arrowdblleft ; B 8 73 713 517 ; C -1 ; WX 722 ; N arrowdblright ; B 9 73 714 517 ; C -1 ; WX 722 ; N arrowdblup ; B 139 0 583 648 ; C -1 ; WX 500 ; N arrowdown ; B 72 -107 408 721 ; C -1 ; WX 1000 ; N arrowleft ; B 85 143 913 479 ; C -1 ; WX 1000 ; N arrowright ; B 85 143 913 479 ; C -1 ; WX 500 ; N arrowup ; B 72 -107 408 721 ; C -1 ; WX 500 ; N arrowupdn ; B 72 -32 409 721 ; C -1 ; WX 500 ; N arrowupdnbse ; B 72 -111 409 776 ; C -1 ; WX 1000 ; N asteriskmath ; B 357 101 643 382 ; C -1 ; WX 556 ; N atilde ; B 28 -23 524 749 ; C -1 ; WX 610 ; N beta ; B 66 -218 574 740 ; C -1 ; WX 1000 ; N block ; B 0 -250 1000 750 ; C -1 ; WX 280 ; N brokenbar ; B 100 -200 180 729 ; C -1 ; WX 556 ; N cacute ; B 34 -23 522 757 ; C -1 ; WX 1000 ; N carriagereturn ; B 162 149 884 527 ; C -1 ; WX 556 ; N ccaron ; B 34 -23 522 757 ; C -1 ; WX 556 ; N ccedilla ; B 34 -220 522 549 ; C -1 ; WX 556 ; N ccircumflex ; B 34 -23 522 757 ; C -1 ; WX 556 ; N cdotaccent ; B 34 -23 522 743 ; C -1 ; WX 576 ; N chi ; B 11 -218 566 540 ; C -1 ; WX 604 ; N circle ; B 23 86 581 644 ; C -1 ; WX 1000 ; N circlemultiply ; B 141 -24 858 695 ; C -1 ; WX 656 ; N club ; B -37 0 693 729 ; C -1 ; WX 1000 ; N congruent ; B 259 97 740 435 ; C -1 ; WX 737 ; N copyright ; B -14 -22 751 743 ; C -1 ; WX 743 ; N dcaron ; B 31 -23 725 729 ; C -1 ; WX 611 ; N dcroat ; B 29 -23 605 729 ; C -1 ; WX 400 ; N degree ; B 48 383 351 686 ; C -1 ; WX 606 ; N delta ; B 36 -23 570 749 ; C -1 ; WX 510 ; N diamond ; B -8 -28 546 757 ; C -1 ; WX 465 ; N dieresistonos ; B 85 621 381 889 ; C -1 ; WX 584 ; N divide ; B 50 -11 534 474 ; C -1 ; WX 996 ; N dkshade ; B -2 -250 998 750 ; C -1 ; WX 1000 ; N dnblock ; B 0 -250 1000 250 ; C -1 ; WX 556 ; N eacute ; B 22 -23 525 757 ; C -1 ; WX 556 ; N ebreve ; B 22 -23 525 748 ; C -1 ; WX 556 ; N ecaron ; B 22 -23 525 757 ; C -1 ; WX 556 ; N ecircumflex ; B 22 -23 525 757 ; C -1 ; WX 556 ; N edieresis ; B 22 -23 525 743 ; C -1 ; WX 556 ; N edotaccent ; B 22 -23 525 743 ; C -1 ; WX 556 ; N egrave ; B 22 -23 525 757 ; C -1 ; WX 333 ; N eightsuperior ; B 2 270 325 718 ; C -1 ; WX 1000 ; N element ; B 233 0 767 494 ; C -1 ; WX 556 ; N emacron ; B 22 -23 525 719 ; C -1 ; WX 1000 ; N emptyset ; B 95 -13 901 693 ; C -1 ; WX 611 ; N eng ; B 63 -218 546 549 ; C -1 ; WX 556 ; N eogonek ; B 21 -234 525 549 ; C -1 ; WX 475 ; N epsilon ; B 17 -23 495 549 ; C -1 ; WX 451 ; N epsilontonos ; B 10 -23 483 789 ; C -1 ; WX 583 ; N equivalence ; B 50 -68 534 531 ; C -1 ; WX 600 ; N estimated ; B 53 -11 533 534 ; C -1 ; WX 611 ; N eta ; B 66 -218 549 549 ; C -1 ; WX 611 ; N etatonos ; B 66 -218 549 789 ; C -1 ; WX 611 ; N eth ; B 35 -23 569 744 ; C -1 ; WX 604 ; N exclamdbl ; B 96 0 550 726 ; C -1 ; WX 424 ; N existential ; B 51 0 376 577 ; C -1 ; WX 750 ; N female ; B 189 51 561 729 ; C -1 ; WX 666 ; N ff ; B 14 0 646 729 ; C -1 ; WX 943 ; N ffi ; B 14 0 873 729 ; C -1 ; WX 943 ; N ffl ; B 14 0 873 729 ; C -1 ; WX 604 ; N filledbox ; B -63 0 666 729 ; C -1 ; WX 1000 ; N filledrect ; B 136 0 865 365 ; C -1 ; WX 834 ; N fiveeighths ; B 19 -20 820 726 ; C -1 ; WX 333 ; N fivesuperior ; B 5 271 322 709 ; C -1 ; WX 333 ; N foursuperior ; B 3 284 323 709 ; C -1 ; WX 556 ; N franc ; B 22 0 589 729 ; C -1 ; WX 556 ; N gamma ; B 14 -218 542 540 ; C -1 ; WX 611 ; N gbreve ; B 41 -218 533 748 ; C -1 ; WX 611 ; N gcircumflex ; B 41 -218 533 757 ; C -1 ; WX 611 ; N gcommaaccent ; B 41 -218 533 853 ; C -1 ; WX 611 ; N gdotaccent ; B 41 -218 533 743 ; C -1 ; WX 741 ; N gradient ; B 69 0 673 630 ; C -1 ; WX 549 ; N greaterequal ; B 28 -10 517 639 ; C -1 ; WX 611 ; N hbar ; B 5 0 541 729 ; C -1 ; WX 611 ; N hcircumflex ; B -14 0 541 936 ; C -1 ; WX 594 ; N heart ; B -26 -28 620 729 ; C -1 ; WX 604 ; N house ; B 27 0 577 729 ; C -1 ; WX 278 ; N iacute ; B 67 0 290 757 ; C -1 ; WX 278 ; N ibreve ; B 3 0 267 740 ; C -1 ; WX 278 ; N icircumflex ; B -19 0 299 757 ; C -1 ; WX 278 ; N idieresis ; B -9 0 287 743 ; C -1 ; WX 278 ; N igrave ; B -10 0 207 757 ; C -1 ; WX 556 ; N ij ; B 84 -218 479 729 ; C -1 ; WX 278 ; N imacron ; B 8 0 267 719 ; C -1 ; WX 713 ; N infinity ; B 25 124 688 404 ; C -1 ; WX 274 ; N integral ; B 15 -105 287 913 ; C -1 ; WX 604 ; N integralbt ; B 180 -218 352 913 ; C -1 ; WX 604 ; N integraltp ; B 280 -218 452 913 ; C -1 ; WX 719 ; N intersection ; B 119 0 599 611 ; C -1 ; WX 604 ; N invbullet ; B -8 0 612 620 ; C -1 ; WX 604 ; N invcircle ; B -63 0 666 729 ; C -1 ; WX 1052 ; N invsmileface ; B 162 0 892 730 ; C -1 ; WX 278 ; N iogonek ; B 34 -233 231 729 ; C -1 ; WX 278 ; N iota ; B 69 0 209 540 ; C -1 ; WX 278 ; N iotadieresis ; B -9 0 287 743 ; C -1 ; WX 278 ; N iotadieresistonos ; B -9 0 287 889 ; C -1 ; WX 278 ; N iotatonos ; B 69 0 209 789 ; C -1 ; WX 278 ; N itilde ; B -37 0 317 749 ; C -1 ; WX 278 ; N jcircumflex ; B -21 -218 297 757 ; C -1 ; WX 558 ; N kappa ; B 60 0 549 540 ; C -1 ; WX 556 ; N kcommaaccent ; B 59 -307 548 729 ; C -1 ; WX 556 ; N kgreenlandic ; B 54 0 504 510 ; C -1 ; WX 278 ; N lacute ; B 67 0 278 936 ; C -1 ; WX 556 ; N lambda ; B 16 0 545 729 ; C -1 ; WX 400 ; N lcaron ; B 67 0 385 729 ; C -1 ; WX 278 ; N lcommaaccent ; B 67 -307 207 729 ; C -1 ; WX 479 ; N ldot ; B 79 0 440 729 ; C -1 ; WX 549 ; N lessequal ; B 28 -10 517 639 ; C -1 ; WX 1000 ; N lfblock ; B 0 -250 500 750 ; C -1 ; WX 556 ; N lira ; B 31 -23 537 715 ; C -1 ; WX 584 ; N logicalnot ; B 40 86 544 375 ; C -1 ; WX 278 ; N longs ; B -14 0 280 729 ; C -1 ; WX 494 ; N lozenge ; B 18 0 464 744 ; C -1 ; WX 996 ; N ltshade ; B 31 -83 865 750 ; C -1 ; WX 750 ; N male ; B 103 158 648 729 ; C -1 ; WX 584 ; N minus ; B 40 172 544 291 ; C -1 ; WX 240 ; N minute ; B 58 417 186 673 ; C -1 ; WX 611 ; N mu ; B 58 -220 573 540 ; C -1 ; WX 584 ; N multiply ; B 79 18 505 444 ; C -1 ; WX 500 ; N musicalnote ; B 51 18 449 729 ; C -1 ; WX 750 ; N musicalnotedbl ; B 82 -29 638 645 ; C -1 ; WX 611 ; N nacute ; B 63 0 546 757 ; C -1 ; WX 708 ; N napostrophe ; B 15 0 629 729 ; C -1 ; WX 611 ; N ncaron ; B 63 0 546 757 ; C -1 ; WX 611 ; N ncommaaccent ; B 63 -307 546 549 ; C -1 ; WX 333 ; N ninesuperior ; B 6 270 320 718 ; C -1 ; WX 1000 ; N notelement ; B 233 -63 767 577 ; C -1 ; WX 549 ; N notequal ; B 50 -69 534 528 ; C -1 ; WX 1000 ; N notsubset ; B 233 -63 767 567 ; C -1 ; WX 396 ; N nsuperior ; B 42 267 359 594 ; C -1 ; WX 611 ; N ntilde ; B 63 0 546 749 ; C -1 ; WX 556 ; N nu ; B 17 0 539 540 ; C -1 ; WX 611 ; N oacute ; B 35 -23 569 757 ; C -1 ; WX 611 ; N obreve ; B 35 -23 569 748 ; C -1 ; WX 611 ; N ocircumflex ; B 35 -23 569 757 ; C -1 ; WX 611 ; N odieresis ; B 35 -23 569 743 ; C -1 ; WX 611 ; N ograve ; B 35 -23 569 757 ; C -1 ; WX 611 ; N ohungarumlaut ; B 35 -23 569 757 ; C -1 ; WX 611 ; N omacron ; B 35 -23 569 719 ; C -1 ; WX 845 ; N omega ; B 72 -23 774 540 ; C -1 ; WX 845 ; N omega1 ; B 76 -11 745 540 ; C -1 ; WX 845 ; N omegatonos ; B 72 -23 774 789 ; C -1 ; WX 611 ; N omicron ; B 39 -23 573 549 ; C -1 ; WX 611 ; N omicrontonos ; B 39 -23 573 789 ; C -1 ; WX 834 ; N oneeighth ; B 18 -20 813 715 ; C -1 ; WX 834 ; N onehalf ; B 23 -20 829 715 ; C -1 ; WX 834 ; N onequarter ; B 23 -20 806 715 ; C -1 ; WX 333 ; N onesuperior ; B 31 284 233 709 ; C -1 ; WX 498 ; N openbullet ; B 57 83 437 463 ; C -1 ; WX 979 ; N orthogonal ; B 50 0 930 870 ; C -1 ; WX 611 ; N oslashacute ; B 11 -38 598 757 ; C -1 ; WX 611 ; N otilde ; B 35 -23 569 749 ; C -1 ; WX 494 ; N partialdiff ; B 26 -15 462 750 ; C -1 ; WX 1000 ; N perpendicular ; B 201 0 799 598 ; C -1 ; WX 1094 ; N peseta ; B 91 -12 1021 729 ; C -1 ; WX 715 ; N phi ; B 31 -218 684 549 ; C -1 ; WX 750 ; N phi1 ; B 48 -218 701 663 ; C -1 ; WX 766 ; N pi ; B 70 0 696 540 ; C -1 ; WX 584 ; N plusminus ; B 56 -16 527 608 ; C -1 ; WX 996 ; N product ; B 108 -241 871 720 ; C -1 ; WX 1000 ; N propersubset ; B 233 0 767 494 ; C -1 ; WX 1000 ; N propersuperset ; B 233 0 767 494 ; C -1 ; WX 1000 ; N proportional ; B 197 102 682 379 ; C -1 ; WX 753 ; N psi ; B 56 -218 698 540 ; C -1 ; WX 278 ; N quotereversed ; B 77 469 216 729 ; C -1 ; WX 389 ; N racute ; B 63 0 370 757 ; C -1 ; WX 549 ; N radical ; B 10 -36 515 913 ; C -1 ; WX 389 ; N rcaron ; B 54 0 372 757 ; C -1 ; WX 389 ; N rcommaaccent ; B 63 -307 370 549 ; C -1 ; WX 1000 ; N reflexsubset ; B 233 0 767 599 ; C -1 ; WX 1000 ; N reflexsuperset ; B 233 0 767 599 ; C -1 ; WX 737 ; N registered ; B -14 -22 751 743 ; C -1 ; WX 584 ; N revlogicalnot ; B 50 86 535 394 ; C -1 ; WX 619 ; N rho ; B 65 -218 581 549 ; C -1 ; WX 1000 ; N rtblock ; B 500 -250 1000 750 ; C -1 ; WX 556 ; N sacute ; B 29 -23 520 757 ; C -1 ; WX 556 ; N scaron ; B 29 -23 520 757 ; C -1 ; WX 556 ; N scedilla ; B 29 -220 520 549 ; C -1 ; WX 556 ; N scircumflex ; B 29 -23 520 757 ; C -1 ; WX 556 ; N scommaaccent ; B 29 -307 520 549 ; C -1 ; WX 479 ; N second ; B 113 417 374 673 ; C -1 ; WX 834 ; N seveneighths ; B 53 -20 804 726 ; C -1 ; WX 333 ; N sevensuperior ; B 6 284 327 709 ; C -1 ; WX 996 ; N shade ; B -2 -250 998 750 ; C -1 ; WX 684 ; N sigma ; B 69 -23 636 549 ; C -1 ; WX 333 ; N sixsuperior ; B 8 270 322 718 ; C -1 ; WX 1021 ; N smileface ; B 146 0 876 730 ; C -1 ; WX 531 ; N spade ; B 4 0 600 757 ; C -1 ; WX 1000 ; N suchthat ; B 233 0 767 494 ; C -1 ; WX 996 ; N summation ; B 235 -132 734 746 ; C -1 ; WX 917 ; N sun ; B 77 -17 841 746 ; C -1 ; WX 446 ; N tau ; B 11 0 436 540 ; C -1 ; WX 333 ; N tbar ; B 14 -23 301 674 ; C -1 ; WX 389 ; N tcaron ; B 14 -23 401 829 ; C -1 ; WX 333 ; N tcommaaccent ; B 2 -220 301 674 ; C -1 ; WX 1000 ; N therefore ; B 187 -3 807 625 ; C -1 ; WX 541 ; N theta ; B 17 -23 524 738 ; C -1 ; WX 582 ; N theta1 ; B 7 -23 565 738 ; C -1 ; WX 611 ; N thorn ; B 58 -218 574 729 ; C -1 ; WX 834 ; N threeeighths ; B 23 -20 820 718 ; C -1 ; WX 834 ; N threequarters ; B 18 -20 813 718 ; C -1 ; WX 333 ; N threesuperior ; B 6 271 320 718 ; C -1 ; WX 333 ; N tonos ; B 116 590 218 789 ; C -1 ; WX 1000 ; N trademark ; B 71 273 929 729 ; C -1 ; WX 990 ; N triagdn ; B 195 39 795 600 ; C -1 ; WX 990 ; N triaglf ; B 193 137 759 537 ; C -1 ; WX 990 ; N triagrt ; B 232 137 798 537 ; C -1 ; WX 990 ; N triagup ; B 195 67 795 628 ; C -1 ; WX 333 ; N twosuperior ; B 7 284 319 718 ; C -1 ; WX 611 ; N uacute ; B 58 -23 541 757 ; C -1 ; WX 611 ; N ubreve ; B 58 -23 541 748 ; C -1 ; WX 611 ; N ucircumflex ; B 58 -23 541 757 ; C -1 ; WX 611 ; N udieresis ; B 58 -23 541 743 ; C -1 ; WX 611 ; N ugrave ; B 58 -23 541 757 ; C -1 ; WX 611 ; N uhungarumlaut ; B 58 -23 559 757 ; C -1 ; WX 611 ; N umacron ; B 58 -23 541 719 ; C -1 ; WX 552 ; N underscoredbl ; B -24 -284 576 -77 ; C -1 ; WX 278 ; N uni00A0 ; B 214 0 214 0 ; C -1 ; WX 333 ; N uni00AD ; B 26 207 298 342 ; C -1 ; WX 611 ; N uni021A ; B 14 -307 598 729 ; C -1 ; WX 333 ; N uni021B ; B 14 -307 301 674 ; C -1 ; WX 333 ; N uni02C9 ; B 16 640 315 719 ; C -1 ; WX 278 ; N uni0387 ; B 64 216 188 339 ; C -1 ; WX 719 ; N uni0394 ; B 3 0 716 729 ; C -1 ; WX 802 ; N uni03A9 ; B 37 0 764 741 ; C -1 ; WX 612 ; N uni03BC ; B 65 -218 548 540 ; C -1 ; WX 520 ; N uni03C2 ; B 8 -218 512 549 ; C -1 ; WX 667 ; N uni0400 ; B 79 0 624 936 ; C -1 ; WX 719 ; N uni040D ; B 65 0 654 936 ; C -1 ; WX 556 ; N uni0450 ; B 22 -23 525 757 ; C -1 ; WX 615 ; N uni045D ; B 70 0 545 757 ; C -1 ; WX 869 ; N uni0462 ; B 25 0 790 729 ; C -1 ; WX 703 ; N uni0463 ; B 57 0 651 675 ; C -1 ; WX 778 ; N uni0472 ; B 40 -11 742 740 ; C -1 ; WX 611 ; N uni0473 ; B 36 -11 570 551 ; C -1 ; WX 815 ; N uni0474 ; B 76 0 753 738 ; C -1 ; WX 646 ; N uni0475 ; B 61 0 591 546 ; C -1 ; WX 479 ; N uni0492 ; B 25 0 474 729 ; C -1 ; WX 400 ; N uni0493 ; B 23 0 394 540 ; C -1 ; WX 1124 ; N uni0496 ; B 66 -159 1055 729 ; C -1 ; WX 896 ; N uni0497 ; B 52 -160 840 540 ; C -1 ; WX 626 ; N uni0498 ; B 59 -220 573 741 ; C -1 ; WX 497 ; N uni0499 ; B 34 -220 455 549 ; C -1 ; WX 728 ; N uni049A ; B 66 -160 639 729 ; C -1 ; WX 605 ; N uni049B ; B 64 -160 551 540 ; C -1 ; WX 678 ; N uni049C ; B 67 0 638 729 ; C -1 ; WX 559 ; N uni049D ; B 64 0 526 540 ; C -1 ; WX 610 ; N uni04A0 ; B -188 0 590 729 ; C -1 ; WX 500 ; N uni04A1 ; B -143 0 472 540 ; C -1 ; WX 722 ; N uni04A2 ; B 67 -160 722 729 ; C -1 ; WX 603 ; N uni04A3 ; B 64 -161 595 540 ; C -1 ; WX 722 ; N uni04AA ; B 44 -220 685 741 ; C -1 ; WX 556 ; N uni04AB ; B 34 -220 522 549 ; C -1 ; WX 667 ; N uni04AE ; B 27 0 650 729 ; C -1 ; WX 543 ; N uni04AF ; B 11 -218 540 540 ; C -1 ; WX 667 ; N uni04B0 ; B 27 0 650 729 ; C -1 ; WX 543 ; N uni04B1 ; B 11 -218 540 540 ; C -1 ; WX 717 ; N uni04B2 ; B 22 -159 694 729 ; C -1 ; WX 579 ; N uni04B3 ; B 12 -159 578 540 ; C -1 ; WX 717 ; N uni04B6 ; B 40 -162 716 729 ; C -1 ; WX 601 ; N uni04B7 ; B 50 -157 592 540 ; C -1 ; WX 717 ; N uni04B8 ; B 40 0 651 729 ; C -1 ; WX 601 ; N uni04B9 ; B 50 0 536 540 ; C -1 ; WX 717 ; N uni04BA ; B 67 0 677 729 ; C -1 ; WX 615 ; N uni04BB ; B 82 0 557 736 ; C -1 ; WX 278 ; N uni04C0 ; B 64 0 214 729 ; C -1 ; WX 703 ; N uni04CB ; B 33 -159 643 729 ; C -1 ; WX 581 ; N uni04CC ; B 40 -160 526 540 ; C -1 ; WX 278 ; N uni04CF ; B 64 0 214 729 ; C -1 ; WX 778 ; N uni04D8 ; B 38 -23 740 741 ; C -1 ; WX 719 ; N uni04E2 ; B 65 0 654 882 ; C -1 ; WX 615 ; N uni04E3 ; B 70 0 545 676 ; C -1 ; WX 778 ; N uni04E8 ; B 38 -23 740 741 ; C -1 ; WX 611 ; N uni04E9 ; B 39 -23 573 549 ; C -1 ; WX 622 ; N uni04EE ; B 6 0 625 898 ; C -1 ; WX 556 ; N uni04EF ; B 18 -218 547 699 ; C -1 ; WX 500 ; N uni2002 ; B 0 0 0 0 ; C -1 ; WX 333 ; N uni203E ; B -134 849 466 918 ; C -1 ; WX 916 ; N uni20AF ; B 37 -174 854 632 ; C -1 ; WX 996 ; N uni20DD ; B 141 2 855 716 ; C -1 ; WX 572 ; N uni210F ; B 45 -8 527 711 ; C -1 ; WX 866 ; N uni2112 ; B 63 0 803 773 ; C -1 ; WX 759 ; N uni211E ; B 69 -18 678 667 ; C -1 ; WX 609 ; N uni2120 ; B 26 382 562 678 ; C -1 ; WX 768 ; N uni2126 ; B 20 0 747 741 ; C -1 ; WX 608 ; N uni2128 ; B -3 -197 587 691 ; C -1 ; WX 664 ; N uni212D ; B 57 -74 665 697 ; C -1 ; WX 553 ; N uni212F ; B 87 -19 479 472 ; C -1 ; WX 442 ; N uni2136 ; B 35 0 446 532 ; C -1 ; WX 332 ; N uni2137 ; B 57 0 302 533 ; C -1 ; WX 719 ; N uni2196 ; B -11 -53 710 661 ; C -1 ; WX 719 ; N uni2197 ; B -5 -53 716 661 ; C -1 ; WX 719 ; N uni2198 ; B -5 -53 716 661 ; C -1 ; WX 719 ; N uni2199 ; B -11 -53 710 661 ; C -1 ; WX 996 ; N uni21C4 ; B 118 60 875 651 ; C -1 ; WX 996 ; N uni21C6 ; B 118 60 875 651 ; C -1 ; WX 719 ; N uni21D5 ; B 115 -55 604 679 ; C -1 ; WX 498 ; N uni220D ; B 81 0 507 456 ; C -1 ; WX 996 ; N uni2213 ; B 267 38 729 650 ; C -1 ; WX 278 ; N uni2215 ; B -118 -20 392 715 ; C -1 ; WX 278 ; N uni2219 ; B 64 216 188 339 ; C -1 ; WX 722 ; N uni2223 ; B 328 -250 395 750 ; C -1 ; WX 719 ; N uni2225 ; B 252 -255 467 886 ; C -1 ; WX 1000 ; N uni2227 ; B 243 0 757 513 ; C -1 ; WX 1000 ; N uni2228 ; B 243 0 757 513 ; C -1 ; WX 996 ; N uni222E ; B 278 -244 704 923 ; C -1 ; WX 996 ; N uni2235 ; B 187 -3 807 625 ; C -1 ; WX 996 ; N uni2237 ; B 188 -3 808 625 ; C -1 ; WX 996 ; N uni2262 ; B 260 1 735 565 ; C -1 ; WX 996 ; N uni226A ; B 169 -43 824 583 ; C -1 ; WX 996 ; N uni226B ; B 169 -43 824 583 ; C -1 ; WX 996 ; N uni2285 ; B 233 -63 767 567 ; C -1 ; WX 1000 ; N uni2295 ; B 140 -3 860 716 ; C -1 ; WX 996 ; N uni2296 ; B 138 -25 858 696 ; C -1 ; WX 996 ; N uni2298 ; B 139 -24 856 695 ; C -1 ; WX 996 ; N uni2299 ; B 138 -25 858 696 ; C -1 ; WX 996 ; N uni22A2 ; B 181 0 809 556 ; C -1 ; WX 996 ; N uni22A3 ; B 181 0 809 556 ; C -1 ; WX 996 ; N uni22A4 ; B 222 0 768 632 ; C -1 ; WX 996 ; N uni22BB ; B 216 -145 779 582 ; C -1 ; WX 996 ; N uni256D ; B 466 -250 998 282 ; C -1 ; WX 996 ; N uni256E ; B -2 -250 530 282 ; C -1 ; WX 996 ; N uni256F ; B -2 219 530 750 ; C -1 ; WX 996 ; N uni2570 ; B 466 219 998 750 ; C -1 ; WX 604 ; N uni25A1 ; B 43 0 562 519 ; C -1 ; WX 719 ; N uni25B5 ; B 122 37 598 508 ; C -1 ; WX 719 ; N uni25B9 ; B 127 31 593 512 ; C -1 ; WX 719 ; N uni25BF ; B 122 36 598 507 ; C -1 ; WX 719 ; N uni25C3 ; B 127 31 593 512 ; C -1 ; WX 996 ; N uni25C6 ; B 241 39 767 623 ; C -1 ; WX 996 ; N uni25C7 ; B 190 -11 811 676 ; C -1 ; WX 719 ; N uni301A ; B 219 -155 501 795 ; C -1 ; WX 719 ; N uni301B ; B 219 -155 501 795 ; C -1 ; WX 719 ; N uniEFBF ; B -144 3 748 880 ; C -1 ; WX 719 ; N uniEFC0 ; B 1 -192 472 883 ; C -1 ; WX 719 ; N uniEFC1 ; B 1 -194 472 884 ; C -1 ; WX 719 ; N uniEFC2 ; B -7 -247 728 749 ; C -1 ; WX 719 ; N uniEFC3 ; B -7 -247 728 749 ; C -1 ; WX 719 ; N uniEFC4 ; B 248 -192 720 883 ; C -1 ; WX 719 ; N uniEFC5 ; B 248 -194 720 884 ; C -1 ; WX 719 ; N uniEFC6 ; B 45 -247 676 750 ; C -1 ; WX 719 ; N uniEFC7 ; B 45 -247 676 749 ; C -1 ; WX 719 ; N uniEFC8 ; B 45 -247 676 749 ; C -1 ; WX 719 ; N uniEFC9 ; B 248 -194 472 883 ; C -1 ; WX 719 ; N uniEFCA ; B 124 -80 596 521 ; C -1 ; WX 719 ; N uniEFCB ; B 1 190 720 412 ; C -1 ; WX 719 ; N uniEFCC ; B 313 -189 749 880 ; C -1 ; WX 719 ; N uniEFCD ; B -20 -192 755 884 ; C -1 ; WX 719 ; N uniEFCE ; B 1 -192 669 182 ; C -1 ; WX 719 ; N uniEFCF ; B -26 -192 408 884 ; C -1 ; WX 719 ; N uniEFD0 ; B 1 510 640 884 ; C -1 ; WX 719 ; N uniEFD1 ; B -26 -192 749 884 ; C -1 ; WX 719 ; N uniEFD2 ; B -23 -192 747 883 ; C -1 ; WX 719 ; N uniEFD3 ; B -22 -192 747 884 ; C -1 ; WX 719 ; N uniEFD4 ; B 132 -247 597 749 ; C -1 ; WX 608 ; N uniEFD5 ; B 40 -245 570 495 ; C -1 ; WX 996 ; N uniEFD6 ; B 103 305 831 690 ; C -1 ; WX 996 ; N uniEFD7 ; B 117 -25 880 739 ; C -1 ; WX 996 ; N uniEFD8 ; B 117 -25 880 739 ; C -1 ; WX 996 ; N uniEFD9 ; B 23 269 972 668 ; C -1 ; WX 996 ; N uniEFDA ; B 117 -25 880 739 ; C -1 ; WX 996 ; N uniEFDB ; B 117 -25 880 739 ; C -1 ; WX 719 ; N uniEFDC ; B 88 -199 399 883 ; C -1 ; WX 719 ; N uniEFDD ; B 313 -247 415 883 ; C -1 ; WX 719 ; N uniEFDE ; B 145 -247 416 749 ; C -1 ; WX 719 ; N uniEFDF ; B 313 -247 596 749 ; C -1 ; WX 719 ; N uniEFE0 ; B 145 -247 414 751 ; C -1 ; WX 719 ; N uniEFE1 ; B 313 -247 583 749 ; C -1 ; WX 719 ; N uniEFE2 ; B 139 -247 417 749 ; C -1 ; WX 719 ; N uniEFE3 ; B 313 -247 589 749 ; C -1 ; WX 719 ; N uniEFE4 ; B 1 -192 400 883 ; C -1 ; WX 719 ; N uniEFE5 ; B 1 -194 400 884 ; C -1 ; WX 719 ; N uniEFE6 ; B 320 -192 720 883 ; C -1 ; WX 719 ; N uniEFE7 ; B 320 -194 720 884 ; C -1 ; WX 719 ; N uniEFE8 ; B 1 267 720 325 ; C -1 ; WX 719 ; N uniEFE9 ; B 1 804 720 947 ; C -1 ; WX 719 ; N uniEFEA ; B 1 804 720 884 ; C -1 ; WX 719 ; N uniEFEB ; B 1 -192 720 -113 ; C -1 ; WX 572 ; N uniEFEC ; B 63 -21 531 494 ; C -1 ; WX 996 ; N uniEFFA ; B 143 0 855 711 ; C -1 ; WX 996 ; N uniEFFB ; B 142 0 853 711 ; C -1 ; WX 996 ; N uniEFFC ; B 142 0 853 711 ; C -1 ; WX 993 ; N uniEFFD ; B 145 0 856 712 ; C -1 ; WX 774 ; N uniEFFE ; B 53 -11 722 686 ; C -1 ; WX 498 ; N uniEFFF ; B 17 276 481 741 ; C -1 ; WX 719 ; N union ; B 119 0 599 611 ; C -1 ; WX 593 ; N universal ; B 22 0 571 577 ; C -1 ; WX 611 ; N uogonek ; B 58 -233 564 540 ; C -1 ; WX 1000 ; N upblock ; B 0 250 1000 750 ; C -1 ; WX 582 ; N upsilon ; B 50 -23 533 540 ; C -1 ; WX 582 ; N upsilondieresis ; B 50 -23 533 743 ; C -1 ; WX 582 ; N upsilondieresistonos ; B 50 -23 533 889 ; C -1 ; WX 582 ; N upsilontonos ; B 50 -23 533 789 ; C -1 ; WX 611 ; N uring ; B 58 -23 541 770 ; C -1 ; WX 611 ; N utilde ; B 58 -23 541 749 ; C -1 ; WX 778 ; N wacute ; B 5 0 766 757 ; C -1 ; WX 778 ; N wcircumflex ; B 5 0 766 745 ; C -1 ; WX 778 ; N wdieresis ; B 5 0 766 743 ; C -1 ; WX 685 ; N weierstrass ; B 85 -169 604 402 ; C -1 ; WX 778 ; N wgrave ; B 5 0 766 757 ; C -1 ; WX 445 ; N xi ; B 14 -218 467 729 ; C -1 ; WX 556 ; N yacute ; B 9 -219 538 757 ; C -1 ; WX 556 ; N ycircumflex ; B 9 -219 538 757 ; C -1 ; WX 556 ; N ydieresis ; B 9 -219 538 743 ; C -1 ; WX 556 ; N ygrave ; B 9 -219 538 757 ; C -1 ; WX 500 ; N zacute ; B 21 0 468 757 ; C -1 ; WX 500 ; N zcaron ; B 21 0 468 757 ; C -1 ; WX 500 ; N zdotaccent ; B 21 0 468 743 ; C -1 ; WX 333 ; N zerosuperior ; B 6 270 320 718 ; C -1 ; WX 460 ; N zeta ; B 24 -218 474 729 ; EndCharMetrics StartKernData StartKernPairs 3789 KPX A A 14 KPX A B -13 KPX A C -37 KPX A Ccedilla -37 KPX A G -39 KPX A J -6 KPX A O -35 KPX A Odieresis -35 KPX A Omicron -35 KPX A Phi -54 KPX A Psi -50 KPX A Q -37 KPX A S -18 KPX A T -83 KPX A Tau -83 KPX A Tcaron -83 KPX A Tcommaaccent -85 KPX A Theta -35 KPX A U -34 KPX A Uacute -34 KPX A Ucircumflex -34 KPX A Udieresis -34 KPX A Ugrave -34 KPX A Upsilon -89 KPX A V -67 KPX A W -52 KPX A X 16 KPX A Y -89 KPX A Yacute -89 KPX A Z 12 KPX A a -2 KPX A b -1 KPX A braceright -18 KPX A c -15 KPX A ccedilla -15 KPX A comma 14 KPX A d -16 KPX A e -12 KPX A g -18 KPX A k -1 KPX A gamma -44 KPX A guillemotleft -48 KPX A guilsinglleft -45 KPX A hyphen 3 KPX A nu -41 KPX A o -19 KPX A parenright -7 KPX A period 14 KPX A phi -20 KPX A q -12 KPX A quotedblright -68 KPX A quoteright -65 KPX A quotesingle -61 KPX A s -6 KPX A sigma -36 KPX A t -19 KPX A u -14 KPX A udieresis -14 KPX A upsilon -13 KPX A upsilontonos -13 KPX A v -39 KPX A w -26 KPX A y -37 KPX A yacute -37 KPX A z 17 KPX AE T 3 KPX AE V -2 KPX AE W 3 KPX AE X 9 KPX AE Z 5 KPX Aacute C -37 KPX Aacute G -39 KPX Aacute O -35 KPX Aacute Q -37 KPX Aacute T -83 KPX Aacute Tcaron -83 KPX Aacute U -34 KPX Aacute V -67 KPX Aacute W -52 KPX Aacute Y -89 KPX Aacute a -2 KPX Aacute b -1 KPX Aacute c -15 KPX Aacute comma 14 KPX Aacute d -16 KPX Aacute e -12 KPX Aacute g -18 KPX Aacute guillemotleft -48 KPX Aacute guilsinglleft -45 KPX Aacute hyphen 3 KPX Aacute o -19 KPX Aacute period 14 KPX Aacute q -12 KPX Aacute quotedblright -68 KPX Aacute quoteright -65 KPX Aacute t -19 KPX Aacute u -14 KPX Aacute v -39 KPX Aacute w -26 KPX Aacute y -37 KPX Abreve T -83 KPX Abreve Tcaron -83 KPX Abreve Tcommaaccent -85 KPX Abreve Y -89 KPX Abreve Yacute -89 KPX Abreve y -37 KPX Abreve yacute -37 KPX Acircumflex C -37 KPX Acircumflex G -39 KPX Acircumflex O -35 KPX Acircumflex Q -37 KPX Acircumflex T -83 KPX Acircumflex Tcaron -83 KPX Acircumflex Tcommaaccent -85 KPX Acircumflex U -34 KPX Acircumflex V -67 KPX Acircumflex W -52 KPX Acircumflex Y -89 KPX Acircumflex Yacute -89 KPX Acircumflex comma 14 KPX Acircumflex period 14 KPX Acircumflex v -39 KPX Acircumflex w -26 KPX Acircumflex yacute -37 KPX Adieresis C -37 KPX Adieresis G -39 KPX Adieresis O -35 KPX Adieresis Q -37 KPX Adieresis T -83 KPX Adieresis U -34 KPX Adieresis V -67 KPX Adieresis W -52 KPX Adieresis Y -94 KPX Adieresis a -2 KPX Adieresis b -1 KPX Adieresis c -15 KPX Adieresis comma 14 KPX Adieresis d -16 KPX Adieresis g -18 KPX Adieresis guillemotleft -48 KPX Adieresis guilsinglleft -45 KPX Adieresis hyphen 3 KPX Adieresis o -19 KPX Adieresis period 14 KPX Adieresis q -12 KPX Adieresis quotedblright -68 KPX Adieresis quoteright -65 KPX Adieresis t -19 KPX Adieresis u -14 KPX Adieresis v -39 KPX Adieresis w -26 KPX Adieresis y -41 KPX Agrave C -37 KPX Agrave G -39 KPX Agrave O -35 KPX Agrave Q -37 KPX Agrave T -83 KPX Agrave U -34 KPX Agrave V -67 KPX Agrave W -52 KPX Agrave Y -89 KPX Agrave comma 14 KPX Agrave period 14 KPX Alpha O -35 KPX Alpha Omicron -35 KPX Alpha Phi -54 KPX Alpha Psi -50 KPX Alpha T -83 KPX Alpha Tau -83 KPX Alpha Theta -35 KPX Alpha Upsilon -89 KPX Alpha Y -89 KPX Alpha comma 14 KPX Alpha gamma -44 KPX Alpha guillemotright -30 KPX Alpha nu -41 KPX Alpha period 14 KPX Alpha phi -20 KPX Alpha sigma -36 KPX Alpha upsilon -13 KPX Alpha upsilontonos -13 KPX Alphatonos gamma -44 KPX Alphatonos nu -41 KPX Alphatonos phi -17 KPX Alphatonos sigma -36 KPX Aogonek C -35 KPX Aogonek T -81 KPX Aogonek Tcaron -81 KPX Aogonek Tcommaaccent -56 KPX Aogonek Y -89 KPX Aogonek Yacute -89 KPX Aogonek colon 10 KPX Aogonek comma 14 KPX Aogonek period 14 KPX Aogonek semicolon 10 KPX Aogonek y -4 KPX Aogonek yacute -4 KPX Aring C -37 KPX Aring G -36 KPX Aring O -35 KPX Aring Q -37 KPX Aring T -83 KPX Aring U -34 KPX Aring V -67 KPX Aring W -52 KPX Aring Y -89 KPX Aring a -1 KPX Aring b -1 KPX Aring c -15 KPX Aring comma 14 KPX Aring d -12 KPX Aring e -9 KPX Aring g -18 KPX Aring guillemotleft -48 KPX Aring guilsinglleft -45 KPX Aring hyphen 3 KPX Aring o -19 KPX Aring period 14 KPX Aring q -12 KPX Aring quotedblright -68 KPX Aring quoteright -65 KPX Aring t -19 KPX Aring u -14 KPX Aring v -39 KPX Aring w -22 KPX Aring y -37 KPX Atilde C -37 KPX Atilde G -39 KPX Atilde O -35 KPX Atilde Q -37 KPX Atilde T -83 KPX Atilde U -34 KPX Atilde V -67 KPX Atilde W -52 KPX Atilde Y -89 KPX Atilde comma 14 KPX Atilde period 14 KPX B A -31 KPX B AE -19 KPX B Aacute -31 KPX B Acircumflex -31 KPX B Adieresis -31 KPX B Aring -31 KPX B Atilde -31 KPX B C -14 KPX B Delta -24 KPX B J -2 KPX B O -15 KPX B OE -6 KPX B Oacute -15 KPX B Ocircumflex -15 KPX B Odieresis -15 KPX B Ograve -15 KPX B Oslash -8 KPX B S -6 KPX B T -14 KPX B V -38 KPX B W -28 KPX B Y -50 KPX B Z -13 KPX B lambda -28 KPX B y -6 KPX Beta A -31 KPX Beta Alpha -31 KPX Beta Delta -24 KPX Beta lambda -28 KPX C A -28 KPX C AE -16 KPX C Aacute -28 KPX C Adieresis -28 KPX C Aring -28 KPX C C -7 KPX C D -2 KPX C G -7 KPX C H 1 KPX C J 7 KPX C K -1 KPX C O -6 KPX C Oacute -6 KPX C Odieresis -6 KPX C S 2 KPX C T -4 KPX C V -27 KPX C W -17 KPX C Y -41 KPX C Z -11 KPX C ae 1 KPX C colon 18 KPX C comma 1 KPX C e 8 KPX C hyphen 24 KPX C o 1 KPX C odieresis 1 KPX C oe 7 KPX C period 1 KPX C quoteright 2 KPX C quotesingle 6 KPX C s -2 KPX C semicolon 18 KPX C y 8 KPX Ccaron O -6 KPX Ccedilla A -30 KPX Chi O -38 KPX Chi Omicron -38 KPX Chi Theta -38 KPX Chi alpha -24 KPX Chi alphatonos -26 KPX Chi epsilontonos -4 KPX Chi o -33 KPX Chi omega -43 KPX Chi omicron -35 KPX Chi omicrontonos -35 KPX Chi tau -40 KPX D A -39 KPX D AE -26 KPX D Aacute -39 KPX D Acircumflex -39 KPX D Adieresis -39 KPX D Agrave -39 KPX D Aring -39 KPX D Atilde -39 KPX D E -1 KPX D J 1 KPX D T -18 KPX D V -38 KPX D W -21 KPX D X -37 KPX D Y -54 KPX D Z -25 KPX D a 1 KPX D adieresis 1 KPX D ae 1 KPX D e 11 KPX D hyphen 35 KPX D o 2 KPX D odieresis 2 KPX D oe 8 KPX Delta O -28 KPX Delta Omicron -28 KPX Delta Upsilon -98 KPX Delta Y -98 KPX Delta alphatonos -11 KPX Delta epsilon 5 KPX Delta epsilontonos 8 KPX Delta o -17 KPX Delta omegatonos -30 KPX Delta omicron -19 KPX Delta upsilon -12 KPX E A 3 KPX E C -20 KPX E Ccaron -20 KPX E F -8 KPX E O -21 KPX E Oacute -21 KPX E Odieresis -21 KPX E Omicron -21 KPX E Phi -37 KPX E S -10 KPX E Theta -21 KPX E V -6 KPX E X 5 KPX E Y -8 KPX E Z 1 KPX E a 1 KPX E b -5 KPX E c -12 KPX E d -11 KPX E delta -14 KPX E e -7 KPX E g -17 KPX E gamma -35 KPX E h -9 KPX E i -9 KPX E j -15 KPX E k -5 KPX E l -9 KPX E nu -33 KPX E o -13 KPX E q -9 KPX E quotedblright -17 KPX E quoteright -13 KPX E quotesingle -8 KPX E t -16 KPX E tau -12 KPX E v -32 KPX E w -19 KPX E y -31 KPX E z 5 KPX Epsilon O -21 KPX Epsilon Omicron -21 KPX Epsilon Phi -37 KPX Epsilon Theta -21 KPX Epsilon delta -14 KPX Epsilon gamma -35 KPX Epsilon nu -33 KPX Epsilon tau -12 KPX Epsilontonos nu -59 KPX F A -63 KPX F AE -52 KPX F Aacute -63 KPX F Abreve -63 KPX F Acircumflex -63 KPX F Adieresis -63 KPX F Agrave -63 KPX F Aogonek -62 KPX F Aring -63 KPX F Atilde -63 KPX F C -18 KPX F G -17 KPX F J -26 KPX F O -16 KPX F OE -10 KPX F Odieresis -16 KPX F S -5 KPX F T 18 KPX F W 18 KPX F Y 10 KPX F Z 10 KPX F a -16 KPX F aacute -16 KPX F adieresis -16 KPX F ae -17 KPX F aring -16 KPX F comma -75 KPX F e -8 KPX F eacute -8 KPX F h -8 KPX F hyphen 6 KPX F i -8 KPX F j -9 KPX F l -8 KPX F o -14 KPX F oacute -14 KPX F odieresis -14 KPX F oe -8 KPX F ohungarumlaut -14 KPX F oslash -15 KPX F period -75 KPX F quotedblright 3 KPX F quoteright 6 KPX F quotesingle 12 KPX F r -27 KPX F u -25 KPX F udieresis -25 KPX F uacute -25 KPX F uring -25 KPX F y -21 KPX G A -9 KPX G AE 3 KPX G Aacute -9 KPX G Acircumflex -9 KPX G Adieresis -9 KPX G Agrave -9 KPX G Aring -9 KPX G Atilde -9 KPX G H 1 KPX G S -1 KPX G T -20 KPX G V -39 KPX G W -23 KPX G X -7 KPX G Y -56 KPX G Z -11 KPX G a 4 KPX G adieresis 4 KPX G ae 4 KPX G colon 24 KPX G comma 7 KPX G e 8 KPX G hyphen 26 KPX G o 2 KPX G odieresis 2 KPX G oe 8 KPX G period 7 KPX G quotedblright -15 KPX G quoteright -12 KPX G quotesingle -8 KPX G semicolon 24 KPX G w -1 KPX G y -4 KPX Gamma A -90 KPX Gamma Alpha -90 KPX Gamma Delta -96 KPX Gamma Lambda -75 KPX Gamma O -25 KPX Gamma Omicron -25 KPX Gamma Y 15 KPX Gamma alpha -112 KPX Gamma alphatonos -73 KPX Gamma comma -145 KPX Gamma epsilon -97 KPX Gamma epsilontonos -52 KPX Gamma kappa -76 KPX Gamma nu -56 KPX Gamma o -121 KPX Gamma omicron -123 KPX Gamma period -145 KPX Gamma rho -132 KPX Gamma upsilon -71 KPX Gamma upsilontonos -26 KPX H A -8 KPX H AE 4 KPX H I 10 KPX H T -2 KPX H Y -10 KPX H a 8 KPX H adieresis 8 KPX H ae 9 KPX I A -8 KPX I AE 4 KPX I J -7 KPX I T -2 KPX I V -8 KPX I W -2 KPX I X -6 KPX I Y -10 KPX I Z -4 KPX J A -33 KPX J AE -21 KPX J Adieresis -33 KPX J Aring -33 KPX J Y -12 KPX J y -2 KPX K A 20 KPX K AE 32 KPX K B -8 KPX K C -53 KPX K D -5 KPX K E -6 KPX K F -4 KPX K G -56 KPX K H -1 KPX K I 1 KPX K J -14 KPX K L -7 KPX K N -1 KPX K O -55 KPX K OE -45 KPX K Oacute -55 KPX K Odieresis -55 KPX K Omicron -55 KPX K P -5 KPX K Phi -80 KPX K Q -57 KPX K R -7 KPX K S -31 KPX K T 12 KPX K U -18 KPX K V 6 KPX K W 12 KPX K X 22 KPX K Y 4 KPX K Z 18 KPX K a -4 KPX K adieresis -4 KPX K ae -4 KPX K alphatonos -26 KPX K aogonek -8 KPX K aring -4 KPX K braceright -16 KPX K bracketright 10 KPX K e -26 KPX K epsilontonos -3 KPX K hyphen -46 KPX K j -1 KPX K o -33 KPX K oacute -33 KPX K odieresis -33 KPX K oe -27 KPX K omega -42 KPX K omicron -35 KPX K omicrontonos -35 KPX K parenright 7 KPX K quotedblright -17 KPX K quoteright -13 KPX K quotesingle -5 KPX K u -23 KPX K udieresis -23 KPX K upsilon -25 KPX K upsilontonos -25 KPX K w -43 KPX K y -67 KPX Kappa O -55 KPX Kappa Omicron -55 KPX Kappa Phi -80 KPX Kappa alphatonos -26 KPX Kappa colon -23 KPX Kappa comma 1 KPX Kappa epsilontonos -3 KPX Kappa o -33 KPX Kappa omega -42 KPX Kappa omicron -35 KPX Kappa omicrontonos -35 KPX Kappa period 1 KPX Kappa semicolon -23 KPX Kappa upsilon -25 KPX Kappa upsilontonos -25 KPX L A 8 KPX L AE 21 KPX L Aacute 8 KPX L Adieresis 8 KPX L Aring 8 KPX L C -28 KPX L Ccaron -28 KPX L Ccedilla -31 KPX L G -32 KPX L M -11 KPX L O -29 KPX L OE -21 KPX L Oacute -29 KPX L Ocircumflex -29 KPX L Odieresis -29 KPX L Ograve -29 KPX L Otilde -29 KPX L S -5 KPX L T -96 KPX L Tcaron -96 KPX L Tcommaaccent -96 KPX L U -24 KPX L Udieresis -24 KPX L V -92 KPX L W -70 KPX L Y -113 KPX L Yacute -113 KPX L Z 6 KPX L a 7 KPX L adieresis 7 KPX L braceright -55 KPX L bracketright -43 KPX L e -1 KPX L hyphen -38 KPX L i -11 KPX L j -13 KPX L o -8 KPX L odieresis -8 KPX L parenright -36 KPX L quotedblright -152 KPX L quoteright -148 KPX L quotesingle -140 KPX L u -8 KPX L udieresis -8 KPX L y -59 KPX L yacute -59 KPX Lambda O -26 KPX Lambda Omicron -26 KPX Lambda T -74 KPX Lambda Tau -74 KPX Lambda Theta -26 KPX Lambda Upsilon -82 KPX Lambda Y -82 KPX Lambda alphatonos -1 KPX Lambda comma 26 KPX Lambda epsilon 12 KPX Lambda epsilontonos 15 KPX Lambda guillemotright -18 KPX Lambda o -7 KPX Lambda omicron -9 KPX Lambda omicrontonos -9 KPX Lambda period 26 KPX Lambda quoteright -57 KPX Lambda upsilon -1 KPX Lcaron O -29 KPX Lcaron T -49 KPX Lcaron Tcaron -49 KPX Lcaron Tcommaaccent -49 KPX Lcaron V -55 KPX Lcaron Y -57 KPX Lcaron Yacute -57 KPX Lcaron v -57 KPX Lcaron yacute -54 KPX Lslash O -20 KPX Lslash T -87 KPX Lslash Tcaron -87 KPX Lslash Tcommaaccent -87 KPX Lslash V -83 KPX Lslash W -61 KPX Lslash Y -104 KPX Lslash Yacute -104 KPX Lslash comma 21 KPX Lslash period 21 KPX Lslash v -48 KPX Lslash w -30 KPX Lslash yacute -50 KPX M A -4 KPX M AE 8 KPX M N 11 KPX M T 2 KPX M W 2 KPX M Y -6 KPX M epsilon 19 KPX M j 7 KPX M y 3 KPX Mu epsilon 19 KPX N A -6 KPX N AE 6 KPX N Aacute -6 KPX N Adieresis -6 KPX N Alpha -6 KPX N Aring -6 KPX N C 5 KPX N Ccedilla 5 KPX N G 2 KPX N O 5 KPX N Oacute 5 KPX N Odieresis 5 KPX N Y -8 KPX N Z -2 KPX N a 10 KPX N aacute 10 KPX N adieresis 10 KPX N ae 11 KPX N aring 10 KPX N comma 10 KPX N e 15 KPX N eacute 15 KPX N epsilon 17 KPX N epsilontonos 21 KPX N j 5 KPX N o 7 KPX N oacute 7 KPX N odieresis 7 KPX N omega -8 KPX N oslash 11 KPX N period 10 KPX N u 8 KPX N udieresis 8 KPX N y 1 KPX Nu A -6 KPX Nu Alpha -6 KPX Nu epsilon 17 KPX Nu epsilontonos 21 KPX Nu o 7 KPX Nu omega -8 KPX Nu omicron 5 KPX Nu omicrontonos 5 KPX O A -40 KPX O AE -28 KPX O Aacute -40 KPX O Adieresis -40 KPX O Alpha -40 KPX O Aring -40 KPX O C -2 KPX O Chi -38 KPX O Delta -25 KPX O G -1 KPX O J 4 KPX O Lambda -25 KPX O OE 6 KPX O Psi -9 KPX O S -1 KPX O T -22 KPX O Tau -22 KPX O Upsilon -57 KPX O V -39 KPX O W -22 KPX O X -38 KPX O Y -57 KPX O Z -26 KPX O Zeta -26 KPX O colon 25 KPX O comma -12 KPX O hyphen 37 KPX O lambda -24 KPX O period -12 KPX O semicolon 25 KPX O v -2 KPX O w 2 KPX O x -7 KPX O y -1 KPX O z -2 KPX OE T 6 KPX OE W 6 KPX OE X 11 KPX OE Z 7 KPX Oacute A -40 KPX Oacute T -22 KPX Oacute V -39 KPX Oacute W -22 KPX Oacute Y -57 KPX Oacute Z -26 KPX Oacute colon 25 KPX Oacute comma -12 KPX Oacute period -12 KPX Oacute semicolon 25 KPX Ocircumflex T -22 KPX Ocircumflex V -39 KPX Ocircumflex Y -57 KPX Odieresis A -40 KPX Odieresis T -22 KPX Odieresis V -39 KPX Odieresis W -22 KPX Odieresis X -38 KPX Odieresis Y -57 KPX Odieresis colon 25 KPX Odieresis comma -12 KPX Odieresis period -12 KPX Odieresis semicolon 25 KPX Ograve T -22 KPX Ograve V -39 KPX Ograve Y -57 KPX Omicron A -40 KPX Omicron Alpha -40 KPX Omicron Chi -38 KPX Omicron Delta -25 KPX Omicron Lambda -25 KPX Omicron Psi -9 KPX Omicron Tau -22 KPX Omicron Upsilon -57 KPX Omicron Y -57 KPX Omicron Zeta -26 KPX Omicron lambda -24 KPX Omicrontonos lambda -26 KPX Oslash A -34 KPX Otilde T -22 KPX Otilde V -39 KPX Otilde Y -57 KPX P A -69 KPX P AE -58 KPX P Aacute -69 KPX P Abreve -69 KPX P Acircumflex -69 KPX P Adieresis -66 KPX P Alpha -69 KPX P Aogonek -66 KPX P Aring -66 KPX P B -20 KPX P C -6 KPX P D -17 KPX P E -18 KPX P F -16 KPX P G -5 KPX P H -13 KPX P I -10 KPX P J -43 KPX P K -16 KPX P L -19 KPX P M -12 KPX P N -13 KPX P O -4 KPX P OE 2 KPX P Omicron -4 KPX P P -17 KPX P Q -6 KPX P R -19 KPX P S -2 KPX P T 5 KPX P U -17 KPX P V -19 KPX P W -10 KPX P X -35 KPX P Y -30 KPX P Z -2 KPX P a -7 KPX P aacute -7 KPX P adieresis -7 KPX P ae -7 KPX P alpha -7 KPX P aring -7 KPX P comma -94 KPX P e -8 KPX P eacute -8 KPX P epsilontonos 2 KPX P f 13 KPX P h -12 KPX P i -12 KPX P j -14 KPX P l -12 KPX P o -14 KPX P oacute -14 KPX P odieresis -14 KPX P oe -8 KPX P omegatonos -33 KPX P omicron -16 KPX P omicrontonos -16 KPX P oslash -14 KPX P period -94 KPX P quotedblright 11 KPX P quoteright 14 KPX P quotesingle 18 KPX P t 13 KPX P w 17 KPX P y 14 KPX Phi A -58 KPX Phi Alpha -58 KPX Phi Lambda -43 KPX Phi T -52 KPX Phi Tau -52 KPX Phi Upsilon -77 KPX Phi Y -77 KPX Phi lambda -47 KPX Phi o -12 KPX Phi omega -29 KPX Phi omegatonos -29 KPX Phi omicron -14 KPX Phi omicrontonos -14 KPX Pi epsilontonos 18 KPX Pi lambda -4 KPX Pi o 4 KPX Pi omicron 2 KPX Psi A -52 KPX Psi Alpha -52 KPX Psi O -10 KPX Psi Omicron -10 KPX Q R 3 KPX Q U 1 KPX Q braceright 17 KPX Q bracketright 34 KPX Q hyphen 38 KPX Q parenright 28 KPX Q u 14 KPX Q udieresis 14 KPX R A 2 KPX R AE 14 KPX R B -5 KPX R C -9 KPX R Ccedilla -9 KPX R D -2 KPX R E -3 KPX R F -1 KPX R G -11 KPX R H 1 KPX R I 4 KPX R J -14 KPX R K -1 KPX R L -4 KPX R M 2 KPX R N 1 KPX R O -10 KPX R OE -1 KPX R Oacute -10 KPX R Odieresis -10 KPX R P -2 KPX R Q -11 KPX R R -4 KPX R T -2 KPX R Tcaron -2 KPX R Tcommaaccent -3 KPX R U -8 KPX R Udieresis -8 KPX R V -26 KPX R W -17 KPX R X 4 KPX R Y -36 KPX R Yacute -36 KPX R braceright 11 KPX R bracketright 28 KPX R hyphen 12 KPX R o -6 KPX R oacute -6 KPX R odieresis -6 KPX R parenright 22 KPX R quotedblright 1 KPX R quoteright 4 KPX R quotesingle 6 KPX R u -1 KPX R uacute -1 KPX R udieresis -1 KPX R y 4 KPX R yacute 4 KPX Rho A -69 KPX Rho Alpha -69 KPX Rho Delta -59 KPX Rho Lambda -54 KPX Rho Omicron -4 KPX Rho Phi -15 KPX Rho Tau 5 KPX Rho Theta -4 KPX Rho Upsilon -30 KPX Rho Y -30 KPX Rho alpha -7 KPX Rho colon -6 KPX Rho comma -94 KPX Rho epsilontonos 2 KPX Rho o -14 KPX Rho omegatonos -33 KPX Rho omicron -16 KPX Rho omicrontonos -16 KPX Rho period -94 KPX S A -20 KPX S AE -8 KPX S Aacute -20 KPX S Adieresis -20 KPX S Aring -20 KPX S C -3 KPX S G -5 KPX S J 8 KPX S O -4 KPX S OE 4 KPX S S 4 KPX S T -8 KPX S V -32 KPX S W -21 KPX S Y -44 KPX S Z -2 KPX S a 4 KPX S adieresis 4 KPX S ae 5 KPX S c 6 KPX S e 10 KPX S eacute 10 KPX S h 2 KPX S hyphen 36 KPX S i 2 KPX S l 2 KPX S o 3 KPX S odieresis 3 KPX S oe 9 KPX S q 9 KPX S quotedblright -10 KPX S quoteright -6 KPX S v -1 KPX S w 3 KPX Sigma O -24 KPX Sigma Omicron -24 KPX Sigma Theta -24 KPX Sigma chi -34 KPX Sigma o -2 KPX Sigma omicron -4 KPX Sigma tau -49 KPX T A -88 KPX T AE -76 KPX T Aacute -88 KPX T Abreve -88 KPX T Acircumflex -88 KPX T Adieresis -88 KPX T Agrave -88 KPX T Alpha -88 KPX T Aogonek -87 KPX T Aring -88 KPX T Atilde -88 KPX T B -10 KPX T C -22 KPX T D -7 KPX T E -8 KPX T F -6 KPX T G -25 KPX T H -3 KPX T J -87 KPX T K -6 KPX T L -9 KPX T Lambda -74 KPX T M -2 KPX T N -3 KPX T O -24 KPX T OE -13 KPX T Oacute -24 KPX T Ocircumflex -24 KPX T Odieresis -24 KPX T Ograve -24 KPX T Ohungarumlaut -24 KPX T Omicron -24 KPX T Oslash -24 KPX T Otilde -24 KPX T P -7 KPX T Phi -54 KPX T Q -25 KPX T R -9 KPX T S 1 KPX T T 24 KPX T Tau 24 KPX T U -7 KPX T Upsilon 16 KPX T V 18 KPX T W 24 KPX T X 14 KPX T Y 16 KPX T Z 16 KPX T a -75 KPX T aacute -64 KPX T adieresis -30 KPX T ae -75 KPX T alpha -67 KPX T alphatonos -68 KPX T aogonek -75 KPX T braceright -5 KPX T bracketright 22 KPX T c -73 KPX T cacute -73 KPX T ccedilla -73 KPX T colon -53 KPX T comma -69 KPX T e -72 KPX T eacute -72 KPX T eogonek -72 KPX T epsilon -65 KPX T epsilontonos -51 KPX T g -77 KPX T guillemotleft -106 KPX T guilsinglleft -103 KPX T h -2 KPX T hyphen -50 KPX T i -2 KPX T iacute -15 KPX T j -3 KPX T l -2 KPX T o -79 KPX T odieresis -45 KPX T oacute -79 KPX T ocircumflex -40 KPX T oe -73 KPX T ohungarumlaut -56 KPX T omegatonos -86 KPX T omicron -81 KPX T omicrontonos -81 KPX T oslash -72 KPX T parenright 19 KPX T period -69 KPX T quotedblright -5 KPX T quoteright -2 KPX T quotesingle 6 KPX T r -74 KPX T racute -31 KPX T rho -84 KPX T s -76 KPX T sacute -67 KPX T scedilla -76 KPX T semicolon -53 KPX T sigma -96 KPX T u -71 KPX T udieresis -29 KPX T uacute -29 KPX T uhungarumlaut -29 KPX T upsilon -72 KPX T upsilontonos -25 KPX T uring -29 KPX T v -83 KPX T w -78 KPX T y -80 KPX T yacute -1 KPX T zeta -3 KPX Tau A -88 KPX Tau Alpha -88 KPX Tau Lambda -74 KPX Tau O -24 KPX Tau Omicron -24 KPX Tau Phi -54 KPX Tau T 24 KPX Tau Tau 24 KPX Tau Upsilon 16 KPX Tau Y 16 KPX Tau alpha -67 KPX Tau alphatonos -68 KPX Tau colon -53 KPX Tau comma -69 KPX Tau epsilon -65 KPX Tau epsilontonos -51 KPX Tau guillemotright -91 KPX Tau o -74 KPX Tau omegatonos -86 KPX Tau omicron -76 KPX Tau omicrontonos -76 KPX Tau period -69 KPX Tau quoteright 1 KPX Tau rho -79 KPX Tau semicolon -53 KPX Tau sigma -91 KPX Tau upsilon -67 KPX Tau upsilontonos -25 KPX Tau zeta -3 KPX Tcaron A -88 KPX Tcaron Aacute -88 KPX Tcaron Abreve -88 KPX Tcaron Acircumflex -88 KPX Tcaron Adieresis -88 KPX Tcaron Aogonek -85 KPX Tcaron J -87 KPX Tcaron Odieresis -24 KPX Tcaron aacute -64 KPX Tcaron aogonek -70 KPX Tcaron colon -53 KPX Tcaron comma -69 KPX Tcaron eacute -67 KPX Tcaron eogonek -67 KPX Tcaron hyphen -50 KPX Tcaron nacute -31 KPX Tcaron ncaron -31 KPX Tcaron oacute -74 KPX Tcaron ohungarumlaut -56 KPX Tcaron period -69 KPX Tcaron racute -31 KPX Tcaron rcaron -6 KPX Tcaron sacute -67 KPX Tcaron semicolon -53 KPX Tcaron tcaron -7 KPX Tcaron tcommaaccent -2 KPX Tcaron uacute -29 KPX Tcaron uhungarumlaut -29 KPX Tcaron yacute -1 KPX Tcaron zacute -19 KPX Tcaron zcaron -19 KPX Tcaron zdotaccent -19 KPX Tcommaaccent Aacute -90 KPX Tcommaaccent Abreve -90 KPX Tcommaaccent Acircumflex -90 KPX Tcommaaccent Adieresis -90 KPX Tcommaaccent Aogonek -88 KPX Tcommaaccent aacute -68 KPX Tcommaaccent aogonek -75 KPX Tcommaaccent eacute -72 KPX Tcommaaccent eogonek -72 KPX Tcommaaccent nacute -36 KPX Tcommaaccent ncaron -36 KPX Tcommaaccent oacute -79 KPX Tcommaaccent ohungarumlaut -56 KPX Tcommaaccent racute -36 KPX Tcommaaccent rcaron -3 KPX Tcommaaccent sacute -72 KPX Tcommaaccent tcaron -10 KPX Tcommaaccent tcommaaccent -7 KPX Tcommaaccent uacute -33 KPX Tcommaaccent uhungarumlaut -33 KPX Tcommaaccent uring -33 KPX Tcommaaccent yacute -5 KPX Tcommaaccent zacute -24 KPX Tcommaaccent zcaron -22 KPX Tcommaaccent zdotaccent -24 KPX Theta A -40 KPX Theta Alpha -40 KPX Theta Lambda -25 KPX Theta Upsilon -57 KPX Theta Y -57 KPX U A -37 KPX U AE -24 KPX U Aacute -37 KPX U Acircumflex -37 KPX U Adieresis -37 KPX U Aring -37 KPX U Atilde -37 KPX U S 2 KPX U T -3 KPX U V -9 KPX U W -3 KPX U X -13 KPX U Y -11 KPX U Z -11 KPX U comma -6 KPX U j -5 KPX U m 2 KPX U p 3 KPX U period -6 KPX U v -4 KPX U x -7 KPX U y -1 KPX U z -11 KPX Uacute A -37 KPX Uacute comma -6 KPX Uacute m 2 KPX Uacute p 3 KPX Uacute period -6 KPX Ucircumflex A -37 KPX Udieresis A -37 KPX Udieresis b 2 KPX Udieresis comma -6 KPX Udieresis m 2 KPX Udieresis p 3 KPX Udieresis period -6 KPX Ugrave A -37 KPX Upsilon A -87 KPX Upsilon Alpha -87 KPX Upsilon Delta -87 KPX Upsilon O -53 KPX Upsilon Omicron -53 KPX Upsilon Phi -71 KPX Upsilon T 22 KPX Upsilon Tau 22 KPX Upsilon Theta -53 KPX Upsilon comma -81 KPX Upsilon guillemotright -76 KPX Upsilon omicrontonos -73 KPX Upsilon period -81 KPX Upsilon pi -54 KPX Upsilontonos sigma -127 KPX V A -73 KPX V AE -61 KPX V Aacute -73 KPX V Abreve -73 KPX V Acircumflex -73 KPX V Adieresis -73 KPX V Agrave -73 KPX V Aogonek -73 KPX V Aring -73 KPX V Atilde -73 KPX V C -37 KPX V E -12 KPX V G -40 KPX V H -6 KPX V I -4 KPX V J -62 KPX V L -12 KPX V O -39 KPX V OE -29 KPX V Oacute -39 KPX V Ocircumflex -39 KPX V Odieresis -39 KPX V Ograve -39 KPX V Ohungarumlaut -39 KPX V Oslash -35 KPX V Otilde -39 KPX V R -12 KPX V S -22 KPX V T 20 KPX V U -10 KPX V Y 12 KPX V a -47 KPX V aacute -47 KPX V adieresis -34 KPX V ae -47 KPX V aogonek -46 KPX V braceright -8 KPX V bracketright 18 KPX V c -49 KPX V colon -30 KPX V comma -73 KPX V dcaron -48 KPX V e -43 KPX V eacute -43 KPX V ecaron -43 KPX V eogonek -43 KPX V g -53 KPX V guillemotleft -76 KPX V guilsinglleft -73 KPX V h -5 KPX V hyphen -24 KPX V i -5 KPX V iacute -37 KPX V j -7 KPX V l -5 KPX V o -50 KPX V oacute -50 KPX V ocircumflex -50 KPX V odieresis -49 KPX V oe -44 KPX V ohungarumlaut -50 KPX V oslash -47 KPX V parenright 15 KPX V period -73 KPX V r -35 KPX V racute -35 KPX V rcaron -10 KPX V sacute -50 KPX V semicolon -30 KPX V u -34 KPX V uacute -32 KPX V udieresis -32 KPX V uhungarumlaut -32 KPX V uring -32 KPX V y -9 KPX V yacute -7 KPX W A -59 KPX W AE -47 KPX W Aacute -59 KPX W Abreve -59 KPX W Acircumflex -59 KPX W Adieresis -59 KPX W Agrave -59 KPX W Aogonek -55 KPX W Aring -59 KPX W Atilde -59 KPX W B -9 KPX W C -22 KPX W D -7 KPX W E -8 KPX W F -5 KPX W G -24 KPX W H -2 KPX W J -43 KPX W K -5 KPX W L -8 KPX W M -1 KPX W N -2 KPX W O -23 KPX W OE -14 KPX W Oacute -23 KPX W Ocircumflex -23 KPX W Odieresis -23 KPX W Ograve -23 KPX W Ohungarumlaut -23 KPX W Oslash -19 KPX W Otilde -23 KPX W P -6 KPX W R -8 KPX W S -13 KPX W T 24 KPX W U -6 KPX W V 18 KPX W W 24 KPX W Y 16 KPX W Z 16 KPX W a -30 KPX W aacute -30 KPX W adieresis -30 KPX W ae -29 KPX W aogonek -30 KPX W braceright 2 KPX W bracketright 22 KPX W c -29 KPX W colon -10 KPX W comma -47 KPX W dcaron -31 KPX W e -27 KPX W eacute -27 KPX W ecaron -27 KPX W eogonek -26 KPX W g -32 KPX W guillemotleft -59 KPX W guilsinglleft -57 KPX W h -1 KPX W hyphen -5 KPX W i -1 KPX W iacute -27 KPX W j -3 KPX W l -1 KPX W o -33 KPX W oacute -33 KPX W ocircumflex -33 KPX W odieresis -33 KPX W oe -27 KPX W ohungarumlaut -33 KPX W oslash -30 KPX W parenright 19 KPX W period -47 KPX W quotedblright 11 KPX W quoteright 15 KPX W quotesingle 19 KPX W r -25 KPX W racute -25 KPX W rcaron -6 KPX W sacute -30 KPX W semicolon -10 KPX W u -24 KPX W uacute -22 KPX W udieresis -22 KPX W uhungarumlaut -22 KPX W uring -22 KPX W yacute 2 KPX X A 16 KPX X AE 28 KPX X C -36 KPX X O -38 KPX X OE -28 KPX X Odieresis -38 KPX X Q -39 KPX X T 19 KPX X W 19 KPX X Y 11 KPX X a -7 KPX X ae -6 KPX X alpha -24 KPX X alphatonos -26 KPX X braceright -8 KPX X bracketright 17 KPX X e -25 KPX X eacute -25 KPX X epsilontonos -4 KPX X hyphen -31 KPX X o -33 KPX X odieresis -33 KPX X omega -43 KPX X omicron -35 KPX X omicrontonos -35 KPX X parenright 14 KPX X quotedblright -10 KPX X quoteright -7 KPX X quotesingle 1 KPX X tau -40 KPX X u -24 KPX X udieresis -24 KPX X y -37 KPX Xi alpha 1 KPX Y A -87 KPX Y AE -75 KPX Y Aacute -87 KPX Y Abreve -87 KPX Y Acircumflex -87 KPX Y Adieresis -87 KPX Y Agrave -87 KPX Y Alpha -87 KPX Y Aogonek -87 KPX Y Aring -87 KPX Y Atilde -87 KPX Y C -52 KPX Y Delta -87 KPX Y G -54 KPX Y J -86 KPX Y O -53 KPX Y OE -44 KPX Y Oacute -53 KPX Y Ocircumflex -53 KPX Y Odieresis -53 KPX Y Ograve -53 KPX Y Omicron -53 KPX Y Oslash -50 KPX Y Otilde -53 KPX Y Phi -71 KPX Y Q -54 KPX Y S -29 KPX Y T 22 KPX Y Tau 22 KPX Y Theta -53 KPX Y V 16 KPX Y W 22 KPX Y X 12 KPX Y Z 14 KPX Y a -68 KPX Y aacute -68 KPX Y adieresis -32 KPX Y ae -67 KPX Y aogonek -66 KPX Y braceright -7 KPX Y bracketright 20 KPX Y colon -46 KPX Y comma -81 KPX Y c -71 KPX Y d -68 KPX Y e -65 KPX Y eacute -65 KPX Y eogonek -64 KPX Y g -74 KPX Y guillemotleft -98 KPX Y guilsinglleft -95 KPX Y hyphen -52 KPX Y i -4 KPX Y iacute -42 KPX Y m -47 KPX Y n -48 KPX Y o -71 KPX Y odieresis -47 KPX Y oacute -71 KPX Y ohungarumlaut -71 KPX Y omicrontonos -73 KPX Y oslash -64 KPX Y p -46 KPX Y parenright 17 KPX Y period -81 KPX Y pi -54 KPX Y q -68 KPX Y quotedblright -7 KPX Y quoteright -3 KPX Y quotesingle 4 KPX Y r -48 KPX Y racute -48 KPX Y s -68 KPX Y semicolon -46 KPX Y u -48 KPX Y udieresis -46 KPX Y uacute -46 KPX Y uhungarumlaut -46 KPX Y v -27 KPX Y w -22 KPX Y z -39 KPX Yacute Aacute -87 KPX Yacute Abreve -87 KPX Yacute Acircumflex -87 KPX Yacute Adieresis -87 KPX Yacute Aogonek -87 KPX Yacute J -86 KPX Yacute aacute -68 KPX Yacute colon -46 KPX Yacute comma -81 KPX Yacute eacute -65 KPX Yacute eogonek -64 KPX Yacute hyphen -52 KPX Yacute oacute -71 KPX Yacute ohungarumlaut -71 KPX Yacute period -81 KPX Yacute scedilla -68 KPX Yacute semicolon -46 KPX Yacute uacute -46 KPX Z A 8 KPX Z AE 20 KPX Z E -8 KPX Z O -26 KPX Z OE -17 KPX Z Oacute -26 KPX Z U -16 KPX Z W 14 KPX Z Y 6 KPX Z Z 6 KPX Z a 6 KPX Z adieresis 6 KPX Z ae 7 KPX Z braceright 7 KPX Z bracketright 26 KPX Z colon 3 KPX Z comma 11 KPX Z e -2 KPX Z epsilon 11 KPX Z hyphen -35 KPX Z i -12 KPX Z o -8 KPX Z odieresis -8 KPX Z oe -2 KPX Z omicron -10 KPX Z parenright 12 KPX Z period 11 KPX Z quotedblright 7 KPX Z quoteright 10 KPX Z quotesingle 14 KPX Z semicolon 3 KPX Z v -15 KPX Z w -10 KPX Z y -8 KPX Zeta O -26 KPX Zeta Omicron -26 KPX Zeta epsilon 11 KPX Zeta o -8 KPX Zeta omicron -10 KPX a comma 3 KPX a endash 36 KPX a g -2 KPX a germandbls -2 KPX a j -4 KPX a period 3 KPX a quoteright -13 KPX a s -2 KPX a t -3 KPX a v -19 KPX a w -8 KPX a x 13 KPX a y -20 KPX a z 11 KPX adieresis comma 3 KPX adieresis endash 36 KPX adieresis g -2 KPX adieresis germandbls -2 KPX adieresis j -4 KPX adieresis period 3 KPX adieresis quoteright -13 KPX adieresis s -2 KPX adieresis t -3 KPX adieresis v -19 KPX adieresis w -8 KPX adieresis x 13 KPX adieresis y -20 KPX adieresis z 11 KPX aacute v -19 KPX aacute w -8 KPX aacute y -20 KPX ae r 1 KPX ae v -19 KPX ae w -8 KPX ae y -19 KPX afii10017 afii10025 -28 KPX afii10017 afii10029 23 KPX afii10017 afii10032 -36 KPX afii10017 afii10035 -34 KPX afii10017 afii10036 -80 KPX afii10017 afii10038 -42 KPX afii10017 afii10041 -50 KPX afii10017 afii10044 -82 KPX afii10017 afii10053 -32 KPX afii10017 afii10058 18 KPX afii10017 afii10060 -97 KPX afii10017 afii10073 -11 KPX afii10017 afii10077 7 KPX afii10017 afii10080 -19 KPX afii10017 afii10083 -17 KPX afii10017 afii10084 -51 KPX afii10017 afii10085 -43 KPX afii10017 afii10086 -33 KPX afii10017 afii10089 -36 KPX afii10017 afii10092 -56 KPX afii10017 afii10106 9 KPX afii10017 afii10110 -47 KPX afii10017 colon 8 KPX afii10017 comma 12 KPX afii10017 guillemotright -31 KPX afii10017 hyphen 5 KPX afii10017 period 12 KPX afii10017 semicolon 8 KPX afii10018 afii10017 -28 KPX afii10018 afii10024 -14 KPX afii10018 afii10036 -27 KPX afii10018 afii10037 -23 KPX afii10018 afii10041 -31 KPX afii10018 afii10042 -6 KPX afii10018 afii10060 -52 KPX afii10018 afii10062 -22 KPX afii10018 afii10072 -12 KPX afii10018 afii10084 -55 KPX afii10018 afii10085 -44 KPX afii10018 afii10092 -59 KPX afii10018 afii10106 -16 KPX afii10018 afii10110 -43 KPX afii10019 afii10017 -31 KPX afii10019 afii10024 -10 KPX afii10019 afii10036 -15 KPX afii10019 afii10037 -25 KPX afii10019 afii10041 -19 KPX afii10019 afii10042 2 KPX afii10019 afii10060 -40 KPX afii10019 afii10062 -25 KPX afii10019 afii10072 -3 KPX afii10019 afii10084 -10 KPX afii10019 afii10085 -12 KPX afii10019 afii10089 -16 KPX afii10019 afii10092 -14 KPX afii10019 afii10106 -18 KPX afii10019 afii10110 -12 KPX afii10020 afii10021 -69 KPX afii10020 afii10029 -34 KPX afii10020 afii10032 -41 KPX afii10020 afii10035 -39 KPX afii10020 afii10036 6 KPX afii10020 afii10037 9 KPX afii10020 afii10038 -63 KPX afii10020 afii10041 -3 KPX afii10020 afii10053 -35 KPX afii10020 afii10058 -39 KPX afii10020 afii10060 -18 KPX afii10020 afii10062 9 KPX afii10020 afii10065 -103 KPX afii10020 afii10067 -107 KPX afii10020 afii10069 -114 KPX afii10020 afii10070 -104 KPX afii10020 afii10072 -72 KPX afii10020 afii10073 -112 KPX afii10020 afii10074 -98 KPX afii10020 afii10076 -81 KPX afii10020 afii10077 -124 KPX afii10020 afii10078 -104 KPX afii10020 afii10079 -95 KPX afii10020 afii10080 -109 KPX afii10020 afii10081 -100 KPX afii10020 afii10082 -89 KPX afii10020 afii10083 -108 KPX afii10020 afii10084 -71 KPX afii10020 afii10085 -69 KPX afii10020 afii10086 -110 KPX afii10020 afii10087 -76 KPX afii10020 afii10088 -99 KPX afii10020 afii10089 -83 KPX afii10020 afii10092 -76 KPX afii10020 afii10096 -83 KPX afii10020 afii10097 -109 KPX afii10020 afii10101 -101 KPX afii10020 afii10106 -122 KPX afii10020 afii10110 -24 KPX afii10020 colon -86 KPX afii10020 comma -107 KPX afii10020 hyphen -88 KPX afii10020 period -107 KPX afii10020 semicolon -86 KPX afii10022 afii10038 -27 KPX afii10024 afii10025 -15 KPX afii10024 afii10032 -12 KPX afii10024 afii10035 -10 KPX afii10024 afii10038 -26 KPX afii10024 afii10053 -8 KPX afii10024 afii10065 7 KPX afii10024 afii10066 -4 KPX afii10024 afii10070 -5 KPX afii10024 afii10073 -2 KPX afii10024 afii10080 -10 KPX afii10024 afii10083 -8 KPX afii10024 afii10084 -22 KPX afii10024 afii10085 -23 KPX afii10024 afii10086 -25 KPX afii10024 afii10089 -31 KPX afii10024 afii10101 -1 KPX afii10024 afii10110 -21 KPX afii10025 afii10017 -29 KPX afii10025 afii10021 9 KPX afii10025 afii10024 -8 KPX afii10025 afii10025 -16 KPX afii10025 afii10036 -11 KPX afii10025 afii10037 -23 KPX afii10025 afii10039 -36 KPX afii10025 afii10041 -16 KPX afii10025 afii10049 -20 KPX afii10025 afii10058 -5 KPX afii10025 afii10060 -36 KPX afii10025 afii10062 -22 KPX afii10025 afii10077 -18 KPX afii10025 afii10084 -7 KPX afii10025 afii10085 -9 KPX afii10025 afii10087 -12 KPX afii10025 afii10089 -14 KPX afii10025 afii10097 -13 KPX afii10025 afii10106 -16 KPX afii10025 afii10110 -9 KPX afii10028 afii10025 -26 KPX afii10028 afii10032 -23 KPX afii10028 afii10035 -21 KPX afii10028 afii10038 -37 KPX afii10028 afii10053 -19 KPX afii10028 afii10065 -3 KPX afii10028 afii10066 -16 KPX afii10028 afii10070 -16 KPX afii10028 afii10073 -13 KPX afii10028 afii10080 -21 KPX afii10028 afii10083 -20 KPX afii10028 afii10084 -33 KPX afii10028 afii10085 -34 KPX afii10028 afii10086 -36 KPX afii10028 afii10089 -43 KPX afii10028 afii10101 -13 KPX afii10028 afii10110 -33 KPX afii10032 afii10017 -40 KPX afii10032 afii10021 -6 KPX afii10032 afii10024 -7 KPX afii10032 afii10025 -16 KPX afii10032 afii10029 -8 KPX afii10032 afii10036 -22 KPX afii10032 afii10037 -23 KPX afii10032 afii10039 -35 KPX afii10032 afii10044 -24 KPX afii10032 afii10049 -17 KPX afii10032 afii10058 -13 KPX afii10032 afii10060 -47 KPX afii10032 afii10062 -32 KPX afii10032 afii10077 -19 KPX afii10032 afii10106 -17 KPX afii10034 afii10017 -71 KPX afii10034 afii10021 -54 KPX afii10034 afii10029 -30 KPX afii10034 afii10035 -8 KPX afii10034 afii10049 -19 KPX afii10034 afii10058 -35 KPX afii10034 afii10065 -10 KPX afii10034 afii10067 -26 KPX afii10034 afii10068 -19 KPX afii10034 afii10069 -53 KPX afii10034 afii10070 -15 KPX afii10034 afii10073 -8 KPX afii10034 afii10077 -45 KPX afii10034 afii10080 -19 KPX afii10034 afii10083 -17 KPX afii10034 afii10086 -24 KPX afii10034 afii10101 -10 KPX afii10034 afii10106 -43 KPX afii10034 colon -10 KPX afii10034 comma -98 KPX afii10034 hyphen -4 KPX afii10034 period -98 KPX afii10034 semicolon -10 KPX afii10035 afii10017 -29 KPX afii10035 afii10024 -4 KPX afii10035 afii10025 -12 KPX afii10035 afii10029 -1 KPX afii10035 afii10032 -7 KPX afii10035 afii10035 -8 KPX afii10035 afii10036 -5 KPX afii10035 afii10037 -21 KPX afii10035 afii10038 -11 KPX afii10035 afii10039 -33 KPX afii10035 afii10049 -16 KPX afii10035 afii10058 -7 KPX afii10035 afii10060 -30 KPX afii10035 afii10062 -24 KPX afii10035 afii10084 8 KPX afii10035 afii10085 3 KPX afii10035 afii10089 -3 KPX afii10035 afii10106 -17 KPX afii10035 afii10110 4 KPX afii10036 afii10017 -87 KPX afii10036 afii10021 -51 KPX afii10036 afii10025 -7 KPX afii10036 afii10029 -16 KPX afii10036 afii10032 -23 KPX afii10036 afii10035 -21 KPX afii10036 afii10036 24 KPX afii10036 afii10037 26 KPX afii10036 afii10038 -46 KPX afii10036 afii10049 -16 KPX afii10036 afii10053 -17 KPX afii10036 afii10058 -22 KPX afii10036 afii10060 -1 KPX afii10036 afii10062 26 KPX afii10036 afii10065 -70 KPX afii10036 afii10067 -82 KPX afii10036 afii10068 -75 KPX afii10036 afii10069 -79 KPX afii10036 afii10070 -71 KPX afii10036 afii10072 -54 KPX afii10036 afii10073 -79 KPX afii10036 afii10074 -73 KPX afii10036 afii10076 -56 KPX afii10036 afii10077 -91 KPX afii10036 afii10078 -79 KPX afii10036 afii10079 -70 KPX afii10036 afii10080 -76 KPX afii10036 afii10081 -75 KPX afii10036 afii10082 -68 KPX afii10036 afii10083 -75 KPX afii10036 afii10084 -54 KPX afii10036 afii10085 -51 KPX afii10036 afii10086 -90 KPX afii10036 afii10087 -59 KPX afii10036 afii10088 -74 KPX afii10036 afii10089 -66 KPX afii10036 afii10092 -58 KPX afii10036 afii10097 -77 KPX afii10036 afii10101 -68 KPX afii10036 afii10106 -89 KPX afii10036 afii10110 -6 KPX afii10036 colon -54 KPX afii10036 comma -70 KPX afii10036 guillemotright -91 KPX afii10036 hyphen -51 KPX afii10036 period -70 KPX afii10036 semicolon -54 KPX afii10037 afii10017 -81 KPX afii10037 afii10021 -43 KPX afii10037 afii10025 -23 KPX afii10037 afii10029 -8 KPX afii10037 afii10032 -37 KPX afii10037 afii10035 -36 KPX afii10037 afii10036 32 KPX afii10037 afii10037 35 KPX afii10037 afii10038 -43 KPX afii10037 afii10041 22 KPX afii10037 afii10049 -32 KPX afii10037 afii10053 -33 KPX afii10037 afii10058 -13 KPX afii10037 afii10060 7 KPX afii10037 afii10065 -50 KPX afii10037 afii10066 -39 KPX afii10037 afii10069 -74 KPX afii10037 afii10070 -57 KPX afii10037 afii10072 -12 KPX afii10037 afii10073 -46 KPX afii10037 afii10074 -38 KPX afii10037 afii10076 -21 KPX afii10037 afii10077 -66 KPX afii10037 afii10078 -44 KPX afii10037 afii10079 -35 KPX afii10037 afii10080 -62 KPX afii10037 afii10081 -40 KPX afii10037 afii10082 -31 KPX afii10037 afii10083 -60 KPX afii10037 afii10084 -11 KPX afii10037 afii10085 -11 KPX afii10037 afii10086 -68 KPX afii10037 afii10087 -16 KPX afii10037 afii10088 -39 KPX afii10037 afii10089 -23 KPX afii10037 afii10096 -26 KPX afii10037 afii10097 -51 KPX afii10037 afii10101 -53 KPX afii10037 afii10106 -64 KPX afii10037 afii10110 -9 KPX afii10037 colon -41 KPX afii10037 comma -91 KPX afii10037 guillemotright -59 KPX afii10037 hyphen -33 KPX afii10037 period -91 KPX afii10037 semicolon -41 KPX afii10038 afii10017 -49 KPX afii10038 afii10021 -37 KPX afii10038 afii10024 -24 KPX afii10038 afii10029 -21 KPX afii10038 afii10037 -42 KPX afii10038 afii10039 -54 KPX afii10038 afii10041 -1 KPX afii10038 afii10044 -50 KPX afii10038 afii10049 -29 KPX afii10038 afii10058 -26 KPX afii10038 afii10062 -46 KPX afii10038 afii10069 -34 KPX afii10038 afii10077 -34 KPX afii10038 afii10106 -32 KPX afii10039 afii10025 -38 KPX afii10039 afii10032 -40 KPX afii10039 afii10035 -38 KPX afii10039 afii10038 -51 KPX afii10039 afii10053 -32 KPX afii10039 afii10065 -11 KPX afii10039 afii10070 -33 KPX afii10039 afii10073 -22 KPX afii10039 afii10080 -39 KPX afii10039 afii10083 -35 KPX afii10039 afii10084 -43 KPX afii10039 afii10085 -42 KPX afii10039 afii10086 -57 KPX afii10039 afii10089 -55 KPX afii10039 afii10101 -31 KPX afii10044 afii10036 -102 KPX afii10044 afii10037 -28 KPX afii10044 afii10041 -30 KPX afii10044 afii10044 -114 KPX afii10044 afii10060 -115 KPX afii10044 afii10062 -28 KPX afii10044 afii10092 -53 KPX afii10046 afii10036 -107 KPX afii10046 afii10037 -34 KPX afii10046 afii10041 -35 KPX afii10046 afii10044 -119 KPX afii10046 afii10060 -121 KPX afii10046 afii10062 -33 KPX afii10046 afii10092 -58 KPX afii10047 afii10017 -35 KPX afii10047 afii10036 -17 KPX afii10047 afii10037 -19 KPX afii10047 afii10041 4 KPX afii10047 afii10044 -18 KPX afii10047 afii10049 -10 KPX afii10047 afii10058 -6 KPX afii10047 afii10060 -42 KPX afii10047 afii10062 -28 KPX afii10047 afii10106 -13 KPX afii10048 afii10017 -41 KPX afii10048 afii10021 -8 KPX afii10048 afii10024 -9 KPX afii10048 afii10025 -18 KPX afii10048 afii10029 -6 KPX afii10048 afii10036 -24 KPX afii10048 afii10037 -25 KPX afii10048 afii10039 -37 KPX afii10048 afii10041 -2 KPX afii10048 afii10044 -25 KPX afii10048 afii10049 -19 KPX afii10048 afii10058 -12 KPX afii10048 afii10060 -49 KPX afii10048 afii10062 -34 KPX afii10048 afii10077 -21 KPX afii10048 afii10106 -19 KPX afii10050 afii10021 -49 KPX afii10050 afii10029 -14 KPX afii10050 afii10032 -21 KPX afii10050 afii10035 -19 KPX afii10050 afii10036 26 KPX afii10050 afii10037 29 KPX afii10050 afii10038 -43 KPX afii10050 afii10041 16 KPX afii10050 afii10049 -13 KPX afii10050 afii10053 -15 KPX afii10050 afii10058 -19 KPX afii10050 afii10060 1 KPX afii10050 afii10062 31 KPX afii10050 afii10065 -83 KPX afii10050 afii10067 -87 KPX afii10050 afii10069 -94 KPX afii10050 afii10070 -84 KPX afii10050 afii10072 -52 KPX afii10050 afii10073 -93 KPX afii10050 afii10074 -78 KPX afii10050 afii10076 -61 KPX afii10050 afii10077 -106 KPX afii10050 afii10078 -84 KPX afii10050 afii10079 -75 KPX afii10050 afii10080 -89 KPX afii10050 afii10081 -80 KPX afii10050 afii10082 -69 KPX afii10050 afii10083 -88 KPX afii10050 afii10084 -51 KPX afii10050 afii10085 -49 KPX afii10050 afii10086 -90 KPX afii10050 afii10087 -56 KPX afii10050 afii10088 -79 KPX afii10050 afii10089 -63 KPX afii10050 afii10092 -56 KPX afii10050 afii10096 -63 KPX afii10050 afii10097 -88 KPX afii10050 afii10101 -81 KPX afii10050 afii10106 -104 KPX afii10050 afii10110 -4 KPX afii10052 afii10021 -69 KPX afii10052 afii10029 -34 KPX afii10052 afii10032 -41 KPX afii10052 afii10035 -39 KPX afii10052 afii10036 6 KPX afii10052 afii10037 9 KPX afii10052 afii10038 -63 KPX afii10052 afii10041 -3 KPX afii10052 afii10053 -35 KPX afii10052 afii10058 -39 KPX afii10052 afii10060 -18 KPX afii10052 afii10062 9 KPX afii10052 afii10065 -103 KPX afii10052 afii10067 -107 KPX afii10052 afii10069 -114 KPX afii10052 afii10070 -104 KPX afii10052 afii10072 -72 KPX afii10052 afii10073 -112 KPX afii10052 afii10074 -98 KPX afii10052 afii10076 -81 KPX afii10052 afii10077 -124 KPX afii10052 afii10078 -104 KPX afii10052 afii10079 -95 KPX afii10052 afii10080 -109 KPX afii10052 afii10081 -100 KPX afii10052 afii10082 -89 KPX afii10052 afii10083 -108 KPX afii10052 afii10084 -71 KPX afii10052 afii10085 -69 KPX afii10052 afii10086 -110 KPX afii10052 afii10087 -76 KPX afii10052 afii10088 -99 KPX afii10052 afii10089 -83 KPX afii10052 afii10092 -76 KPX afii10052 afii10096 -83 KPX afii10052 afii10097 -109 KPX afii10052 afii10101 -101 KPX afii10052 afii10106 -122 KPX afii10052 afii10110 -24 KPX afii10058 afii10036 -102 KPX afii10058 afii10037 -28 KPX afii10058 afii10041 -30 KPX afii10058 afii10044 -114 KPX afii10058 afii10060 -115 KPX afii10058 afii10062 -28 KPX afii10058 afii10092 -53 KPX afii10059 afii10036 -84 KPX afii10059 afii10037 -9 KPX afii10059 afii10041 -13 KPX afii10059 afii10044 -96 KPX afii10059 afii10060 -97 KPX afii10059 afii10062 -9 KPX afii10059 afii10092 -36 KPX afii10061 afii10025 -44 KPX afii10061 afii10032 -38 KPX afii10061 afii10035 -37 KPX afii10061 afii10038 -48 KPX afii10061 afii10053 -31 KPX afii10061 afii10065 -17 KPX afii10061 afii10066 -35 KPX afii10061 afii10070 -35 KPX afii10061 afii10073 -27 KPX afii10061 afii10080 -40 KPX afii10061 afii10083 -38 KPX afii10061 afii10084 -48 KPX afii10061 afii10085 -48 KPX afii10061 afii10086 -55 KPX afii10061 afii10089 -57 KPX afii10061 afii10101 -31 KPX afii10061 afii10110 -47 KPX afii10062 afii10017 -91 KPX afii10062 afii10021 -42 KPX afii10062 afii10025 -22 KPX afii10062 afii10029 -7 KPX afii10062 afii10032 -36 KPX afii10062 afii10035 -35 KPX afii10062 afii10036 32 KPX afii10062 afii10038 -42 KPX afii10062 afii10041 22 KPX afii10062 afii10049 -32 KPX afii10062 afii10053 -32 KPX afii10062 afii10058 -13 KPX afii10062 afii10060 7 KPX afii10062 afii10062 35 KPX afii10062 afii10065 -50 KPX afii10062 afii10066 -39 KPX afii10062 afii10069 -74 KPX afii10062 afii10070 -57 KPX afii10062 afii10072 -12 KPX afii10062 afii10073 -46 KPX afii10062 afii10074 -38 KPX afii10062 afii10076 -21 KPX afii10062 afii10077 -66 KPX afii10062 afii10078 -44 KPX afii10062 afii10079 -35 KPX afii10062 afii10080 -62 KPX afii10062 afii10081 -40 KPX afii10062 afii10082 -31 KPX afii10062 afii10083 -60 KPX afii10062 afii10084 -11 KPX afii10062 afii10086 -68 KPX afii10062 afii10087 -16 KPX afii10062 afii10088 -39 KPX afii10062 afii10089 -23 KPX afii10062 afii10096 -26 KPX afii10062 afii10097 -51 KPX afii10062 afii10101 -53 KPX afii10062 afii10106 -64 KPX afii10065 afii10084 -2 KPX afii10065 afii10085 -23 KPX afii10065 afii10089 -13 KPX afii10065 afii10106 5 KPX afii10065 afii10110 -20 KPX afii10066 afii10073 -4 KPX afii10066 afii10084 -8 KPX afii10066 afii10085 -28 KPX afii10066 afii10087 -30 KPX afii10066 afii10089 -3 KPX afii10066 afii10097 -9 KPX afii10066 afii10110 -25 KPX afii10067 afii10072 -2 KPX afii10067 afii10073 -9 KPX afii10067 afii10084 -6 KPX afii10067 afii10085 -26 KPX afii10067 afii10087 -31 KPX afii10067 afii10089 -17 KPX afii10067 afii10097 -15 KPX afii10067 afii10110 -26 KPX afii10068 afii10069 -39 KPX afii10068 afii10077 -32 KPX afii10068 afii10080 -6 KPX afii10068 afii10083 -3 KPX afii10068 afii10086 -13 KPX afii10068 afii10097 3 KPX afii10068 afii10101 2 KPX afii10068 afii10106 -30 KPX afii10068 afii10110 19 KPX afii10068 colon -21 KPX afii10068 comma -66 KPX afii10068 hyphen -47 KPX afii10068 period -66 KPX afii10068 semicolon -21 KPX afii10070 afii10072 8 KPX afii10070 afii10073 6 KPX afii10070 afii10077 -1 KPX afii10070 afii10085 -19 KPX afii10070 afii10087 -18 KPX afii10070 afii10089 4 KPX afii10070 afii10110 -16 KPX afii10072 afii10066 4 KPX afii10072 afii10070 4 KPX afii10072 afii10080 -3 KPX afii10072 afii10083 1 KPX afii10072 afii10086 -16 KPX afii10072 afii10101 5 KPX afii10072 afii10110 16 KPX afii10073 afii10072 5 KPX afii10073 afii10077 -3 KPX afii10073 afii10084 4 KPX afii10073 afii10085 -16 KPX afii10073 afii10087 -20 KPX afii10073 afii10089 -7 KPX afii10073 afii10097 -4 KPX afii10073 afii10106 -1 KPX afii10073 afii10110 -16 KPX afii10075 afii10106 -13 KPX afii10076 afii10065 -6 KPX afii10076 afii10066 -9 KPX afii10076 afii10070 -8 KPX afii10076 afii10073 -14 KPX afii10076 afii10080 -16 KPX afii10076 afii10083 -12 KPX afii10076 afii10086 -30 KPX afii10076 afii10101 -8 KPX afii10076 afii10110 2 KPX afii10080 afii10072 1 KPX afii10080 afii10073 -1 KPX afii10080 afii10077 -14 KPX afii10080 afii10084 -6 KPX afii10080 afii10085 -26 KPX afii10080 afii10087 -24 KPX afii10080 afii10092 -11 KPX afii10080 afii10106 -12 KPX afii10080 afii10110 -23 KPX afii10082 afii10072 3 KPX afii10082 afii10077 -12 KPX afii10082 afii10084 -5 KPX afii10082 afii10085 -25 KPX afii10082 afii10087 -23 KPX afii10082 afii10097 -5 KPX afii10082 afii10101 9 KPX afii10082 afii10110 -21 KPX afii10082 colon 14 KPX afii10082 comma -4 KPX afii10082 hyphen 30 KPX afii10082 period -4 KPX afii10082 semicolon 14 KPX afii10083 afii10062 -10 KPX afii10083 afii10065 6 KPX afii10083 afii10072 1 KPX afii10083 afii10073 4 KPX afii10083 afii10077 -5 KPX afii10083 afii10084 3 KPX afii10083 afii10085 -17 KPX afii10083 afii10086 -4 KPX afii10083 afii10087 -25 KPX afii10083 afii10089 1 KPX afii10083 afii10097 -3 KPX afii10083 afii10106 -3 KPX afii10084 afii10065 4 KPX afii10084 afii10069 -40 KPX afii10084 afii10070 -2 KPX afii10084 afii10073 6 KPX afii10084 afii10077 -33 KPX afii10084 afii10080 -7 KPX afii10084 afii10083 -4 KPX afii10084 afii10084 21 KPX afii10084 afii10085 18 KPX afii10084 afii10086 -14 KPX afii10084 afii10089 9 KPX afii10084 afii10097 2 KPX afii10084 afii10101 1 KPX afii10084 afii10106 -31 KPX afii10084 afii10110 18 KPX afii10084 colon -11 KPX afii10084 comma -55 KPX afii10084 guillemotright -14 KPX afii10084 hyphen -36 KPX afii10084 period -55 KPX afii10084 semicolon -11 KPX afii10085 afii10065 -11 KPX afii10085 afii10069 -39 KPX afii10085 afii10070 -15 KPX afii10085 afii10073 -8 KPX afii10085 afii10077 -32 KPX afii10085 afii10080 -20 KPX afii10085 afii10083 -18 KPX afii10085 afii10084 22 KPX afii10085 afii10086 -26 KPX afii10085 afii10089 10 KPX afii10085 afii10097 -13 KPX afii10085 afii10101 -11 KPX afii10085 afii10106 -30 KPX afii10085 comma -47 KPX afii10085 guillemotright -21 KPX afii10085 hyphen 2 KPX afii10085 period -47 KPX afii10086 afii10068 -17 KPX afii10086 afii10069 -19 KPX afii10086 afii10072 -12 KPX afii10086 afii10073 -12 KPX afii10086 afii10077 -34 KPX afii10086 afii10084 -16 KPX afii10086 afii10085 -34 KPX afii10086 afii10087 -40 KPX afii10086 afii10089 -6 KPX afii10086 afii10092 -21 KPX afii10086 afii10097 -15 KPX afii10086 afii10106 -32 KPX afii10086 afii10110 -34 KPX afii10087 afii10065 -9 KPX afii10087 afii10070 -21 KPX afii10087 afii10073 -20 KPX afii10087 afii10080 -26 KPX afii10087 afii10083 -24 KPX afii10087 afii10086 -41 KPX afii10087 afii10101 -17 KPX afii10087 afii10110 15 KPX afii10092 afii10070 -8 KPX afii10092 afii10083 -11 KPX afii10092 afii10084 -73 KPX afii10092 afii10085 -60 KPX afii10092 afii10089 -20 KPX afii10092 afii10092 -86 KPX afii10092 afii10110 -56 KPX afii10094 afii10070 -7 KPX afii10094 afii10083 -10 KPX afii10094 afii10084 -72 KPX afii10094 afii10085 -59 KPX afii10094 afii10089 -19 KPX afii10094 afii10092 -85 KPX afii10094 afii10110 -55 KPX afii10095 afii10077 -7 KPX afii10095 afii10084 1 KPX afii10095 afii10085 -18 KPX afii10095 afii10089 6 KPX afii10095 afii10092 -2 KPX afii10095 afii10106 -5 KPX afii10095 afii10110 -15 KPX afii10096 afii10072 4 KPX afii10096 afii10077 -12 KPX afii10096 afii10084 -4 KPX afii10096 afii10085 -24 KPX afii10096 afii10087 -22 KPX afii10096 afii10092 -8 KPX afii10096 afii10106 -10 KPX afii10096 afii10110 -20 KPX afii10098 afii10069 -47 KPX afii10098 afii10077 -39 KPX afii10098 afii10080 -13 KPX afii10098 afii10083 -10 KPX afii10098 afii10086 -20 KPX afii10098 afii10097 -3 KPX afii10098 afii10101 -5 KPX afii10098 afii10106 -37 KPX afii10100 afii10069 -39 KPX afii10100 afii10077 -32 KPX afii10100 afii10080 -6 KPX afii10100 afii10083 -3 KPX afii10100 afii10086 -13 KPX afii10100 afii10097 3 KPX afii10100 afii10101 2 KPX afii10100 afii10106 -30 KPX afii10106 afii10084 -67 KPX afii10106 afii10085 -54 KPX afii10106 afii10089 -14 KPX afii10106 afii10092 -80 KPX afii10106 afii10110 -50 KPX afii10107 afii10070 3 KPX afii10107 afii10084 -61 KPX afii10107 afii10085 -48 KPX afii10107 afii10089 -8 KPX afii10107 afii10092 -74 KPX afii10107 afii10101 7 KPX afii10107 afii10110 -44 KPX afii10109 afii10065 -3 KPX afii10109 afii10066 -5 KPX afii10109 afii10070 -4 KPX afii10109 afii10073 -10 KPX afii10109 afii10080 -12 KPX afii10109 afii10083 -8 KPX afii10109 afii10086 -26 KPX afii10109 afii10101 -4 KPX afii10109 afii10110 3 KPX afii10110 afii10065 -11 KPX afii10110 afii10069 -35 KPX afii10110 afii10070 -10 KPX afii10110 afii10073 -8 KPX afii10110 afii10077 -32 KPX afii10110 afii10080 -15 KPX afii10110 afii10083 -14 KPX afii10110 afii10084 22 KPX afii10110 afii10086 -26 KPX afii10110 afii10089 10 KPX afii10110 afii10097 -13 KPX afii10110 afii10101 -7 KPX agrave v -19 KPX agrave w -8 KPX agrave y -20 KPX alpha colon 26 KPX alpha comma 20 KPX alpha delta 3 KPX alpha epsilon 15 KPX alpha exclam -10 KPX alpha gamma 26 KPX alpha guillemotright -16 KPX alpha o 3 KPX alpha omicron 1 KPX alpha omicrontonos 1 KPX alpha period 20 KPX alpha phi 2 KPX alpha pi 1 KPX alpha semicolon 26 KPX alpha sigma -13 KPX alpha tau 30 KPX alpha theta 21 KPX alpha upsilondieresis 11 KPX alpha upsilontonos 11 KPX alpha xi 10 KPX alpha zeta 5 KPX alphatonos colon 32 KPX alphatonos comma 26 KPX alphatonos delta 9 KPX alphatonos epsilon 21 KPX alphatonos gamma 32 KPX alphatonos guillemotright -10 KPX alphatonos o 9 KPX alphatonos omega -5 KPX alphatonos omicron 7 KPX alphatonos period 26 KPX alphatonos semicolon 32 KPX alphatonos sigma -7 KPX alphatonos theta 27 KPX alphatonos xi 16 KPX alphatonos zeta 11 KPX aring v -19 KPX aring w -8 KPX aring y -20 KPX asterisk period -26 KPX b asterisk -4 KPX b colon 13 KPX b comma -7 KPX b endash 47 KPX b j -3 KPX b period -7 KPX b semicolon 13 KPX b v -21 KPX b w -6 KPX b y -21 KPX b z -5 KPX backslash A 27 KPX backslash B 37 KPX backslash C 31 KPX backslash D 39 KPX backslash G 28 KPX backslash H 44 KPX backslash I 46 KPX backslash J 11 KPX backslash K 41 KPX backslash L 38 KPX backslash M 45 KPX backslash N 44 KPX backslash O 29 KPX backslash P 40 KPX backslash Q 27 KPX backslash R 38 KPX backslash S 37 KPX backslash T -28 KPX backslash U 30 KPX backslash V -2 KPX backslash W 12 KPX backslash X 29 KPX backslash Y -24 KPX backslash Z 25 KPX backslash d 52 KPX backslash eacute 55 KPX backslash f 45 KPX backslash fi 38 KPX backslash fl 38 KPX backslash g 46 KPX backslash i 51 KPX backslash j 50 KPX backslash l 51 KPX beta gamma -11 KPX beta lambda -18 KPX braceleft A -21 KPX braceleft AE -8 KPX braceleft J -16 KPX braceleft T -5 KPX braceleft V -11 KPX braceleft W 1 KPX braceleft X -10 KPX braceleft Y -13 KPX braceleft Z 5 KPX braceleft b 12 KPX braceleft f 4 KPX braceleft fi 16 KPX braceleft fl 16 KPX braceleft g 5 KPX braceleft h 8 KPX braceleft i 8 KPX braceleft j 5 KPX braceleft k 12 KPX braceleft l 8 KPX braceleft p 12 KPX braceleft quoteleft 26 KPX braceleft y -9 KPX bracketleft A -6 KPX bracketleft AE 1 KPX bracketleft J -5 KPX bracketleft T 18 KPX bracketleft V 12 KPX bracketleft W 18 KPX bracketleft X 8 KPX bracketleft Y 10 KPX bracketleft Z 20 KPX bracketleft b 23 KPX bracketleft f 16 KPX bracketleft fi 28 KPX bracketleft fl 28 KPX bracketleft g 14 KPX bracketleft h 19 KPX bracketleft i 19 KPX bracketleft j 23 KPX bracketleft k 23 KPX bracketleft l 19 KPX bracketleft p 23 KPX bracketleft quoteleft 44 KPX bracketleft y 1 KPX c J 8 KPX c a 5 KPX c adieresis 5 KPX c ae 6 KPX c asterisk 2 KPX c c 1 KPX c colon 14 KPX c comma 1 KPX c e 7 KPX c endash 32 KPX c exclam -29 KPX c h -3 KPX c hyphen 16 KPX c j -5 KPX c l -3 KPX c oe 6 KPX c period 1 KPX c question -39 KPX c quotedblright -10 KPX c quoteright -7 KPX c s 4 KPX c semicolon 14 KPX c t 1 KPX c u -1 KPX c udieresis -1 KPX c y -14 KPX ccaron e 7 KPX chi alpha -31 KPX chi alphatonos -32 KPX chi epsilon -21 KPX chi epsilontonos -17 KPX chi o -38 KPX chi omega -52 KPX chi omegatonos -52 KPX chi omicron -40 KPX chi omicrontonos -40 KPX chi theta 8 KPX comma endash 28 KPX comma hyphen 11 KPX comma quotedblright -37 KPX comma quoteright -34 KPX d a 3 KPX d adieresis 3 KPX d braceright 8 KPX d bracketright 23 KPX d comma -1 KPX d endash 34 KPX d g -1 KPX d j -1 KPX d parenright 14 KPX d period -1 KPX d v -3 KPX d w 1 KPX d z -5 KPX dcaron a -45 KPX dcaron aacute -45 KPX dcaron colon -44 KPX dcaron comma -66 KPX dcaron e -53 KPX dcaron eacute -53 KPX dcaron m -13 KPX dcaron n -14 KPX dcaron o -59 KPX dcaron oacute -59 KPX dcaron period -66 KPX dcaron r -14 KPX dcaron s -49 KPX dcaron semicolon -44 KPX dcaron u -15 KPX dcaron uacute -12 KPX dcaron udieresis -12 KPX dcaron uring -12 KPX dcaron y 11 KPX dcaron yacute 14 KPX dcaron z -6 KPX delta nu -22 KPX e a 5 KPX e adieresis 5 KPX e asterisk -1 KPX e b 5 KPX e colon 16 KPX e comma -4 KPX e endash 47 KPX e exclam -26 KPX e f -4 KPX e g 1 KPX e h 1 KPX e hyphen 30 KPX e j -3 KPX e k 5 KPX e l 1 KPX e period -4 KPX e question -48 KPX e quoteright -12 KPX e s 4 KPX e semicolon 16 KPX e t -4 KPX e v -18 KPX e w -7 KPX e x -23 KPX e y -18 KPX eacute b 5 KPX eacute c 5 KPX eacute colon 16 KPX eacute comma -4 KPX eacute d 7 KPX eacute exclam -26 KPX eacute g 1 KPX eacute hyphen 30 KPX eacute l 1 KPX eacute period -4 KPX eacute q 8 KPX eacute question -48 KPX eacute quotedblright -16 KPX eacute quoteright -12 KPX eacute semicolon 16 KPX eacute t -4 KPX eacute v -18 KPX eacute w -7 KPX eacute y -18 KPX ecircumflex v -18 KPX ecircumflex w -7 KPX ecircumflex y -18 KPX endash a 29 KPX endash adieresis 29 KPX endash b 34 KPX endash c 45 KPX endash d 47 KPX endash e 50 KPX endash f 19 KPX endash g 42 KPX endash h 30 KPX endash i 30 KPX endash j 29 KPX endash k 34 KPX endash l 30 KPX endash m 33 KPX endash n 32 KPX endash o 44 KPX endash odieresis 44 KPX endash p 34 KPX endash q 47 KPX endash r 32 KPX endash s 30 KPX endash t 24 KPX endash u 34 KPX endash udieresis 34 KPX endash v 10 KPX endash w 23 KPX endash x -15 KPX endash y 9 KPX eogonek zdotaccent -1 KPX epsilon alpha 32 KPX epsilon alphatonos 30 KPX epsilon chi -5 KPX epsilon delta 25 KPX epsilon epsilon 39 KPX epsilon epsilontonos 42 KPX epsilon lambda 10 KPX epsilon o 25 KPX epsilon omega 9 KPX epsilon omegatonos 9 KPX epsilon omicron 23 KPX epsilon omicrontonos 23 KPX epsilon phi 25 KPX epsilon sigma 8 KPX epsilon tau 31 KPX epsilon theta 34 KPX epsilon upsilon 22 KPX epsilon upsilontonos 22 KPX epsilon xi 39 KPX epsilon zeta 33 KPX epsilontonos alpha 38 KPX epsilontonos delta 31 KPX epsilontonos lambda 16 KPX epsilontonos o 31 KPX epsilontonos omega 15 KPX epsilontonos omicron 29 KPX epsilontonos phi 31 KPX epsilontonos semicolon 40 KPX epsilontonos tau 37 KPX epsilontonos theta 40 KPX epsilontonos zeta 39 KPX exclam quoteright 4 KPX f aogonek 2 KPX f asterisk 14 KPX f braceright -2 KPX f bracketright 16 KPX f c -8 KPX f colon 8 KPX f comma -19 KPX f d -7 KPX f e -3 KPX f eacute -3 KPX f endash 17 KPX f exclam -28 KPX f f 20 KPX f g -10 KPX f i -5 KPX f iacute -5 KPX f j -7 KPX f l -5 KPX f o -10 KPX f oacute -10 KPX f odieresis -10 KPX f oe -4 KPX f oslash -8 KPX f parenright 13 KPX f period -19 KPX f question -4 KPX f quotedblright 3 KPX f quoteright 7 KPX f racute -3 KPX f s -1 KPX f semicolon 8 KPX f t 20 KPX f trademark -10 KPX f u -1 KPX f udieresis -1 KPX f uring -1 KPX f w 24 KPX f y 20 KPX f yacute 22 KPX f z 8 KPX g a -2 KPX g adieresis -2 KPX g ae -2 KPX g aring -2 KPX g braceright 2 KPX g bracketright 17 KPX g colon 13 KPX g comma -7 KPX g d -1 KPX g e 2 KPX g eacute 2 KPX g endash 28 KPX g exclam -30 KPX g f -7 KPX g g -7 KPX g h -8 KPX g hyphen 11 KPX g j -7 KPX g k -4 KPX g l -8 KPX g o -6 KPX g oacute -6 KPX g odieresis -6 KPX g p -3 KPX g parenright 8 KPX g period -7 KPX g question -33 KPX g quotedblright -14 KPX g quoteright -10 KPX g r -6 KPX g s -6 KPX g semicolon 13 KPX g t -5 KPX g v -9 KPX g w -4 KPX g y -6 KPX g z -11 KPX gamma alpha -17 KPX gamma alphatonos -18 KPX gamma delta -26 KPX gamma epsilon -8 KPX gamma epsilontonos -4 KPX gamma lambda -51 KPX gamma o -24 KPX gamma omega -42 KPX gamma omegatonos -42 KPX gamma omicron -26 KPX gamma omicrontonos -26 KPX gamma rho -32 KPX gamma upsilontonos 5 KPX gamma xi -1 KPX germandbls e 8 KPX germandbls k 2 KPX germandbls t -5 KPX germandbls w -5 KPX guillemotleft Alpha -34 KPX guillemotleft Alphatonos -34 KPX guillemotleft Etatonos -65 KPX guillemotleft Iotatonos -68 KPX guillemotleft Lambda -19 KPX guillemotleft Tau -91 KPX guillemotleft Upsilon -84 KPX guillemotleft afii10017 -33 KPX guillemotleft afii10029 -9 KPX guillemotleft afii10036 -91 KPX guillemotleft afii10037 -32 KPX guillemotleft afii10041 -22 KPX guillemotleft afii10049 -25 KPX guillemotleft afii10077 -24 KPX guillemotleft afii10084 -14 KPX guillemotleft afii10085 -26 KPX guillemotleft afii10089 -23 KPX guillemotleft nu -24 KPX guillemotleft tau -11 KPX guillemotright A -57 KPX guillemotright AE -45 KPX guillemotright Aacute -57 KPX guillemotright Adieresis -57 KPX guillemotright Aring -57 KPX guillemotright T -109 KPX guillemotright V -81 KPX guillemotright W -63 KPX guillemotright Y -111 KPX guilsinglright A -53 KPX guilsinglright AE -41 KPX guilsinglright Aacute -53 KPX guilsinglright Adieresis -53 KPX guilsinglright Aring -53 KPX guilsinglright T -105 KPX guilsinglright V -77 KPX guilsinglright W -59 KPX guilsinglright Y -107 KPX h asterisk -6 KPX h endash 32 KPX h quoteright -17 KPX h v -25 KPX h y -24 KPX h yacute -24 KPX hyphen A -4 KPX hyphen AE 5 KPX hyphen Aacute -4 KPX hyphen Adieresis -4 KPX hyphen Aring -4 KPX hyphen C 29 KPX hyphen G 30 KPX hyphen J 33 KPX hyphen O 30 KPX hyphen Q 29 KPX hyphen S 18 KPX hyphen T -60 KPX hyphen V -31 KPX hyphen W -14 KPX hyphen X -38 KPX hyphen Y -67 KPX hyphen Z -15 KPX hyphen a 13 KPX hyphen adieresis 13 KPX hyphen afii10017 -2 KPX hyphen afii10036 -60 KPX hyphen afii10037 -34 KPX hyphen afii10084 -40 KPX hyphen afii10085 -9 KPX hyphen f 1 KPX hyphen g 23 KPX hyphen s 12 KPX hyphen t 6 KPX hyphen v -4 KPX hyphen w 8 KPX hyphen x -29 KPX hyphen y -5 KPX hyphen z -18 KPX i T -4 KPX i asterisk 3 KPX i braceright 6 KPX i bracketright 20 KPX i endash 32 KPX i g -4 KPX i j -3 KPX i parenright 11 KPX i quotedblright -10 KPX i quoteright -7 KPX i v -5 KPX i z -7 KPX iacute v -5 KPX iotatonos delta -2 KPX j asterisk 4 KPX j braceright 7 KPX j bracketright 22 KPX j endash 33 KPX j eogonek 7 KPX j oacute -1 KPX j odieresis -1 KPX j parenright 13 KPX j y -1 KPX k a -3 KPX k aacute -3 KPX k adieresis -3 KPX k ae -2 KPX k aogonek -6 KPX k aring -3 KPX k asterisk 10 KPX k b 2 KPX k c -22 KPX k colon -1 KPX k comma 2 KPX k d -19 KPX k e -16 KPX k eacute -16 KPX k endash -8 KPX k eogonek -15 KPX k exclam -23 KPX k f 20 KPX k g -25 KPX k h -1 KPX k hyphen -26 KPX k i -1 KPX k j -2 KPX k k 2 KPX k l -1 KPX k m 2 KPX k o -22 KPX k oacute -22 KPX k odieresis -22 KPX k p 3 KPX k period 2 KPX k q -19 KPX k question -5 KPX k quotedblright -10 KPX k quoteright -6 KPX k s -10 KPX k semicolon -1 KPX k t 20 KPX k u -1 KPX k udieresis -1 KPX k v 19 KPX k w 24 KPX k x 24 KPX k y 20 KPX k z 21 KPX kappa alpha -16 KPX kappa alphatonos -17 KPX kappa comma 2 KPX kappa delta -23 KPX kappa epsilon -4 KPX kappa guillemotright -35 KPX kappa o -23 KPX kappa omega -38 KPX kappa omegatonos -38 KPX kappa omicron -25 KPX kappa omicrontonos -25 KPX kappa period 2 KPX kappa phi -25 KPX kappa sigma -40 KPX kappa theta 11 KPX kappa upsilontonos 1 KPX l comma -3 KPX l endash 32 KPX l g -4 KPX l j -3 KPX l period -3 KPX l v -5 KPX l y -3 KPX l z -7 KPX lambda alphatonos -13 KPX lambda comma 10 KPX lambda epsilon 2 KPX lambda epsilontonos 5 KPX lambda gamma -49 KPX lambda guillemotright -28 KPX lambda nu -46 KPX lambda o -19 KPX lambda omega -32 KPX lambda omegatonos -32 KPX lambda omicron -21 KPX lambda omicrontonos -21 KPX lambda period 10 KPX lambda phi -20 KPX lambda quoteright -62 KPX lambda sigma -36 KPX lambda tau -45 KPX lambda upsilon -16 KPX lambda upsilontonos -16 KPX lambda xi -5 KPX lcaron a -44 KPX lcaron aacute -44 KPX lcaron ccaron -47 KPX lcaron colon -43 KPX lcaron comma -64 KPX lcaron d -55 KPX lcaron dcaron -56 KPX lcaron e -51 KPX lcaron eacute -51 KPX lcaron f 11 KPX lcaron g -57 KPX lcaron o -58 KPX lcaron oacute -58 KPX lcaron ocircumflex -42 KPX lcaron p -10 KPX lcaron period -64 KPX lcaron s -47 KPX lcaron scaron -43 KPX lcaron semicolon -43 KPX lcaron t 11 KPX lcaron u -14 KPX lcaron uacute -10 KPX lcaron uring -10 KPX lcaron v 6 KPX lcaron z -4 KPX lcaron zcaron -1 KPX m endash 35 KPX m g -2 KPX m j -6 KPX m p 1 KPX m v -20 KPX m w -9 KPX m y -20 KPX m z -5 KPX n T -80 KPX n endash 35 KPX n g -2 KPX n j -6 KPX n p 1 KPX n quoteright -15 KPX n v -22 KPX n w -9 KPX n y -22 KPX n z -5 KPX nu alpha -15 KPX nu alphatonos -16 KPX nu colon -4 KPX nu comma -51 KPX nu delta -22 KPX nu epsilontonos -3 KPX nu guillemotright -24 KPX nu lambda -48 KPX nu o -22 KPX nu omega -37 KPX nu omegatonos -37 KPX nu omicron -24 KPX nu omicrontonos -24 KPX nu period -51 KPX nu phi -19 KPX nu quoteright 5 KPX nu semicolon -4 KPX nu sigma -39 KPX nu upsilontonos 4 KPX o T -83 KPX o alpha 6 KPX o asterisk -9 KPX o chi -41 KPX o colon 10 KPX o comma -10 KPX o endash 44 KPX o g -3 KPX o gamma -28 KPX o j -6 KPX o lambda -25 KPX o nu -25 KPX o period -10 KPX o pi -35 KPX o quoteright -18 KPX o semicolon 10 KPX o t -8 KPX o tau -6 KPX o upsilon 2 KPX o v -24 KPX o w -13 KPX o x -25 KPX o y -24 KPX o z -8 KPX odieresis T -49 KPX odieresis asterisk -9 KPX odieresis colon 10 KPX odieresis comma -10 KPX odieresis endash 44 KPX odieresis g -3 KPX odieresis j -6 KPX odieresis period -10 KPX odieresis quoteright -18 KPX odieresis semicolon 10 KPX odieresis t -8 KPX odieresis v -24 KPX odieresis w -13 KPX odieresis x -25 KPX odieresis y -24 KPX odieresis z -8 KPX oacute v -24 KPX oacute w -13 KPX oacute y -24 KPX oacute zacute -8 KPX ocircumflex t -8 KPX oe u 5 KPX ograve v -24 KPX ograve w -13 KPX ograve y -24 KPX omega chi -52 KPX omega gamma -42 KPX omega lambda -35 KPX omega nu -36 KPX omega pi -47 KPX omega tau -20 KPX omegatonos chi -52 KPX omegatonos gamma -42 KPX omegatonos lambda -35 KPX omegatonos nu -36 KPX omegatonos pi -47 KPX omegatonos tau -20 KPX omicron alpha 8 KPX omicron chi -39 KPX omicron gamma -26 KPX omicron lambda -23 KPX omicron nu -23 KPX omicron pi -33 KPX omicron tau -4 KPX omicron upsilon 4 KPX omicrontonos chi -39 KPX omicrontonos gamma -26 KPX omicrontonos nu -23 KPX omicrontonos pi -33 KPX omicrontonos tau -4 KPX p asterisk -4 KPX p endash 47 KPX p j -3 KPX p t -5 KPX p v -21 KPX p w -7 KPX p y -22 KPX p yacute -22 KPX p z -5 KPX parenleft A -14 KPX parenleft AE -6 KPX parenleft J -13 KPX parenleft T 15 KPX parenleft V 9 KPX parenleft W 15 KPX parenleft X 6 KPX parenleft Y 7 KPX parenleft Z 7 KPX parenleft b 13 KPX parenleft f 9 KPX parenleft fi 22 KPX parenleft fl 22 KPX parenleft g 8 KPX parenleft h 9 KPX parenleft i 9 KPX parenleft j 19 KPX parenleft k 13 KPX parenleft l 9 KPX parenleft p 14 KPX parenleft quoteleft 36 KPX parenleft y -5 KPX period asterisk -24 KPX period endash 28 KPX period hyphen 11 KPX period onesuperior -25 KPX period quotedblright -37 KPX period quoteright -34 KPX period quotesingle -37 KPX period threesuperior 5 KPX period twosuperior 12 KPX pi alphatonos -26 KPX pi lambda -42 KPX pi o -32 KPX pi omegatonos -48 KPX pi omicron -34 KPX pi omicrontonos -34 KPX pi quoteright -14 KPX pi upsilontonos -21 KPX q braceright 8 KPX q bracketright 22 KPX q c 1 KPX q endash 34 KPX q parenright 13 KPX question quoteright 4 KPX question quotesingle 7 KPX quotedblbase A 7 KPX quotedblbase AE 19 KPX quotedblbase C -15 KPX quotedblbase G -19 KPX quotedblbase J 17 KPX quotedblbase O -18 KPX quotedblbase Q -20 KPX quotedblbase S 4 KPX quotedblbase T -77 KPX quotedblbase Tcaron -77 KPX quotedblbase V -77 KPX quotedblbase W -54 KPX quotedblbase X -4 KPX quotedblbase Y -93 KPX quotedblbase Yacute -93 KPX quotedblbase Z 17 KPX quotedblbase g -14 KPX quotedblbase s 3 KPX quotedblbase v -56 KPX quotedblbase w -36 KPX quotedblbase y -47 KPX quotedblbase z 16 KPX quotedblleft A -71 KPX quotedblleft AE -58 KPX quotedblleft Aacute -71 KPX quotedblleft Adieresis -71 KPX quotedblleft Aring -71 KPX quotedblleft C -3 KPX quotedblleft G -4 KPX quotedblleft O -3 KPX quotedblleft OE 4 KPX quotedblleft Q -5 KPX quotedblleft S 8 KPX quotedblleft T -1 KPX quotedblleft V 6 KPX quotedblleft W 14 KPX quotedblleft X -10 KPX quotedblleft Y -9 KPX quotedblleft Z -9 KPX quotedblleft a -7 KPX quotedblleft adieresis -7 KPX quotedblleft ae -6 KPX quotedblleft c -12 KPX quotedblleft d -10 KPX quotedblleft e -6 KPX quotedblleft f 13 KPX quotedblleft fi 9 KPX quotedblleft fl 9 KPX quotedblleft g -13 KPX quotedblleft o -13 KPX quotedblleft odieresis -13 KPX quotedblleft oe -7 KPX quotedblleft q -9 KPX quotedblleft s -7 KPX quotedblleft t 14 KPX quotedblleft v 8 KPX quotedblleft w 16 KPX quotedblleft x -5 KPX quotedblleft y 8 KPX quotedblleft z -11 KPX quotedblright A -74 KPX quotedblright AE -61 KPX quotedblright Aacute -74 KPX quotedblright Adieresis -74 KPX quotedblright Aring -74 KPX quotedblright V 3 KPX quotedblright W 13 KPX quotedblright Y -7 KPX quoteleft A -75 KPX quoteleft AE -63 KPX quoteleft Aacute -75 KPX quoteleft Adieresis -75 KPX quoteleft Aring -75 KPX quoteleft C -7 KPX quoteleft G -9 KPX quoteleft O -8 KPX quoteleft Q -9 KPX quoteleft S 4 KPX quoteleft T -5 KPX quoteleft V 2 KPX quoteleft W 9 KPX quoteleft X -15 KPX quoteleft Y -13 KPX quoteleft Z -13 KPX quoteleft a -11 KPX quoteleft adieresis -11 KPX quoteleft ae -11 KPX quoteleft c -17 KPX quoteleft d -14 KPX quoteleft e -11 KPX quoteleft f 8 KPX quoteleft fi 5 KPX quoteleft fl 5 KPX quoteleft g -18 KPX quoteleft o -17 KPX quoteleft odieresis -17 KPX quoteleft oe -11 KPX quoteleft q -14 KPX quoteleft s -12 KPX quoteleft t 10 KPX quoteleft v 3 KPX quoteleft w 11 KPX quoteleft x -9 KPX quoteleft y 4 KPX quoteleft z -15 KPX quoteright A -82 KPX quoteright AE -70 KPX quoteright Aacute -82 KPX quoteright Adieresis -82 KPX quoteright Aring -82 KPX quoteright braceright 25 KPX quoteright bracketright 48 KPX quoteright comma -51 KPX quoteright d -27 KPX quoteright o -33 KPX quoteright odieresis -33 KPX quoteright parenright 38 KPX quoteright period -51 KPX quoteright r -19 KPX quoteright s -24 KPX quoteright sacute -24 KPX quoteright scaron -24 KPX quoteright scedilla -22 KPX quoteright t -7 KPX quoteright v -9 KPX quoteright w -2 KPX quoteright y -9 KPX quotesinglbase A 2 KPX quotesinglbase C -19 KPX quotesinglbase G -24 KPX quotesinglbase J 12 KPX quotesinglbase O -23 KPX quotesinglbase Q -24 KPX quotesinglbase T -81 KPX quotesinglbase V -81 KPX quotesinglbase W -58 KPX quotesinglbase Y -97 KPX quotesinglbase Z 12 KPX quotesinglbase g -18 KPX quotesinglbase s -1 KPX quotesinglbase v -60 KPX quotesinglbase w -41 KPX quotesinglbase y -51 KPX quotesinglbase z 12 KPX quotesingle A -69 KPX quotesingle T 5 KPX quotesingle V 8 KPX quotesingle W 18 KPX quotesingle X -4 KPX quotesingle Y -2 KPX quotesingle Z -2 KPX r a 5 KPX r aacute 5 KPX r acircumflex 5 KPX r adieresis 5 KPX r ae 4 KPX r agrave 5 KPX r aogonek 6 KPX r aring 5 KPX r asterisk 17 KPX r b -1 KPX r colon -9 KPX r comma -60 KPX r e 4 KPX r eacute 4 KPX r ecircumflex 4 KPX r egrave 4 KPX r endash -24 KPX r eogonek 6 KPX r exclam -27 KPX r f 21 KPX r g -3 KPX r h -5 KPX r hyphen -37 KPX r i -5 KPX r j -6 KPX r k -1 KPX r l -5 KPX r m -1 KPX r n -3 KPX r nacute -3 KPX r ncaron -3 KPX r o -1 KPX r oacute -1 KPX r ocircumflex -1 KPX r odieresis -1 KPX r oe 4 KPX r ograve -1 KPX r ohungarumlaut -1 KPX r oslash -2 KPX r period -60 KPX r q 1 KPX r question -3 KPX r quotedblright 7 KPX r quoteright 10 KPX r quotesingle 3 KPX r r -3 KPX r racute -3 KPX r rcaron -3 KPX r s 2 KPX r semicolon -9 KPX r t 21 KPX r tcaron 21 KPX r tcommaaccent 21 KPX r v 20 KPX r w 25 KPX r x 16 KPX r y 22 KPX r yacute 22 KPX r z 8 KPX r zacute 8 KPX r zcaron 8 KPX r zdotaccent 8 KPX racute a 5 KPX racute comma -60 KPX racute m -1 KPX racute n -3 KPX racute period -60 KPX racute s 2 KPX racute t 21 KPX racute v 20 KPX racute z 8 KPX rcaron a 5 KPX rcaron aacute 5 KPX rcaron colon -11 KPX rcaron comma -59 KPX rcaron e 4 KPX rcaron eacute 4 KPX rcaron i -5 KPX rcaron iacute -5 KPX rcaron o -1 KPX rcaron oacute -1 KPX rcaron period -59 KPX rcaron semicolon -11 KPX rcaron v 20 KPX rho chi -39 KPX rho exclam -29 KPX rho gamma -25 KPX rho guillemotright -14 KPX rho lambda -23 KPX rho nu -23 KPX rho pi -33 KPX rho tau -3 KPX s a 5 KPX s adieresis 5 KPX s colon 13 KPX s comma 4 KPX s eacute 5 KPX s endash 31 KPX s exclam -28 KPX s f -1 KPX s g -4 KPX s hyphen 15 KPX s k 1 KPX s p 1 KPX s period 4 KPX s question -42 KPX s quotedblright -18 KPX s quoteright -15 KPX s s 5 KPX s semicolon 13 KPX s t -1 KPX s v -17 KPX s w -9 KPX s y -17 KPX s z 6 KPX sacute w -9 KPX scaron k 1 KPX scaron p 1 KPX scaron t -1 KPX sigma lambda -43 KPX slash B 36 KPX slash D 39 KPX slash E 38 KPX slash F 40 KPX slash H 43 KPX slash I 46 KPX slash K 40 KPX slash L 37 KPX slash M 44 KPX slash N 43 KPX slash R 37 KPX slash T 29 KPX slash U 36 KPX slash V 21 KPX slash W 28 KPX slash X 16 KPX slash Y 18 KPX slash Z 23 KPX slash b 27 KPX slash f 23 KPX slash fi 39 KPX slash fl 39 KPX slash g 21 KPX slash h 23 KPX slash i 23 KPX slash j 23 KPX slash k 27 KPX slash l 23 KPX slash slash 20 KPX slash t 23 KPX slash y 7 KPX t a 5 KPX t aacute 5 KPX t adieresis 5 KPX t ae 5 KPX t aogonek 3 KPX t aring 5 KPX t asterisk 10 KPX t c -10 KPX t colon 15 KPX t comma 3 KPX t d -7 KPX t e -4 KPX t eacute -4 KPX t endash 14 KPX t eogonek -3 KPX t exclam -26 KPX t g -13 KPX t h -2 KPX t hyphen -3 KPX t i -2 KPX t j -7 KPX t o -10 KPX t oacute -10 KPX t odieresis -10 KPX t p 1 KPX t period 3 KPX t q -7 KPX t question -10 KPX t quoteright 2 KPX t s 1 KPX t semicolon 15 KPX t t 14 KPX t u -2 KPX t udieresis -2 KPX t v 13 KPX t w 18 KPX t y 14 KPX t z 11 KPX tau alpha 4 KPX tau alphatonos 3 KPX tau colon -4 KPX tau comma -44 KPX tau epsilontonos 17 KPX tau guillemotright -11 KPX tau iotatonos -1 KPX tau lambda -47 KPX tau o -2 KPX tau omega -20 KPX tau omegatonos -20 KPX tau omicron -4 KPX tau omicrontonos -4 KPX tau period -44 KPX tau quoteright 10 KPX tau rho -14 KPX tau semicolon -4 KPX tau sigma -19 KPX tau tau 27 KPX tau upsilontonos 7 KPX tcaron a -22 KPX tcaron aacute -22 KPX tcaron comma -31 KPX tcaron e -29 KPX tcaron eacute -29 KPX tcaron m -32 KPX tcaron n -34 KPX tcaron o -40 KPX tcaron oacute -40 KPX tcaron period -31 KPX tcaron r -34 KPX tcaron rcaron 14 KPX tcaron s -26 KPX tcaron scaron -19 KPX tcaron t -3 KPX tcaron u -31 KPX tcaron uacute -31 KPX tcaron uring -31 KPX tcaron y -13 KPX tcaron yacute -11 KPX tcaron z -16 KPX tcaron zcaron -4 KPX u comma -3 KPX u endash 32 KPX u g -3 KPX u j -3 KPX u period -3 KPX u quoteright -6 KPX u v -5 KPX u x -5 KPX u y -4 KPX u z -7 KPX udieresis comma -3 KPX udieresis endash 32 KPX udieresis g -3 KPX udieresis j -3 KPX udieresis period -3 KPX udieresis quoteright -6 KPX udieresis v -5 KPX udieresis x -5 KPX udieresis y -4 KPX udieresis z -7 KPX upsilon chi -3 KPX upsilon gamma 3 KPX upsilon lambda -18 KPX upsilon tau 7 KPX upsilondieresis nu 3 KPX upsilontonos chi -3 KPX upsilontonos gamma 3 KPX upsilontonos lambda -18 KPX upsilontonos nu 3 KPX upsilontonos pi -21 KPX upsilontonos tau 7 KPX v a -15 KPX v aacute -15 KPX v acircumflex -15 KPX v adieresis -15 KPX v ae -15 KPX v agrave -15 KPX v aring -15 KPX v asterisk 14 KPX v atilde -15 KPX v c -22 KPX v colon -6 KPX v comma -53 KPX v e -17 KPX v eacute -17 KPX v ecircumflex -17 KPX v egrave -17 KPX v endash 11 KPX v g -23 KPX v hyphen -3 KPX v i -5 KPX v j -7 KPX v l -5 KPX v o -23 KPX v oacute -23 KPX v odieresis -23 KPX v oe -17 KPX v ograve -23 KPX v oslash -19 KPX v period -53 KPX v r -3 KPX v s -18 KPX v semicolon -6 KPX v u -1 KPX v udieresis -1 KPX v y 20 KPX w a -8 KPX w aacute -8 KPX w acircumflex -8 KPX w adieresis -8 KPX w ae -8 KPX w agrave -8 KPX w aring -8 KPX w asterisk 20 KPX w atilde -8 KPX w c -9 KPX w colon 7 KPX w comma -34 KPX w e -6 KPX w eacute -6 KPX w ecircumflex -6 KPX w egrave -6 KPX w endash 24 KPX w exclam -24 KPX w f 24 KPX w g -12 KPX w hyphen 9 KPX w i -1 KPX w j -3 KPX w l -1 KPX w o -13 KPX w oacute -13 KPX w odieresis -13 KPX w ograve -13 KPX w oslash -7 KPX w p 2 KPX w period -34 KPX w question -1 KPX w quotedblright 7 KPX w quoteright 11 KPX w quotesingle 7 KPX w s -10 KPX w semicolon 7 KPX w t 24 KPX w u 2 KPX w udieresis 2 KPX w y 24 KPX w z 12 KPX x a -11 KPX x asterisk 7 KPX x c -25 KPX x colon -1 KPX x comma -5 KPX x e -19 KPX x eacute -19 KPX x endash -15 KPX x exclam -30 KPX x hyphen -28 KPX x o -25 KPX x odieresis -25 KPX x period -5 KPX x q -22 KPX x question -7 KPX x quotedblright -12 KPX x quoteright -8 KPX x semicolon -1 KPX x y 18 KPX xi alpha 4 KPX xi alphatonos 3 KPX xi epsilon 20 KPX xi epsilontonos 24 KPX xi o -1 KPX xi omegatonos -15 KPX xi omicron -3 KPX xi omicrontonos -3 KPX xi upsilontonos 2 KPX y a -16 KPX y aacute -16 KPX y acircumflex -16 KPX y adieresis -16 KPX y ae -16 KPX y agrave -16 KPX y aring -16 KPX y asterisk 12 KPX y atilde -16 KPX y c -22 KPX y ccaron -22 KPX y colon -5 KPX y comma -52 KPX y e -16 KPX y eacute -16 KPX y ecircumflex -16 KPX y egrave -16 KPX y endash 12 KPX y exclam -27 KPX y g -25 KPX y hyphen -2 KPX y j -6 KPX y l -4 KPX y o -24 KPX y n -2 KPX y oacute -24 KPX y odieresis -24 KPX y ograve -24 KPX y oslash -21 KPX y period -52 KPX y question -4 KPX y quoteright 2 KPX y s -18 KPX y sacute -18 KPX y semicolon -5 KPX yacute ccaron -22 KPX yacute comma -52 KPX yacute period -52 KPX z a 6 KPX z adieresis 6 KPX z asterisk 12 KPX z colon 13 KPX z comma 2 KPX z e -3 KPX z endash -9 KPX z exclam -31 KPX z hyphen -14 KPX z i -6 KPX z o -10 KPX z odieresis -10 KPX z period 2 KPX z semicolon 13 KPX z u -8 KPX z udieresis -8 KPX z y 10 KPX zacute colon 13 KPX zacute comma 2 KPX zacute semicolon 13 KPX zcaron colon 13 KPX zcaron comma 2 KPX zcaron e -3 KPX zcaron semicolon 13 KPX zdotaccent c -8 KPX zdotaccent colon 13 KPX zdotaccent comma 2 KPX zdotaccent e -3 KPX zdotaccent oacute -10 KPX zdotaccent semicolon 13 KPX zeta alpha 2 KPX zeta epsilon 18 KPX zeta epsilontonos 22 KPX zeta o -6 KPX zeta omega -17 KPX zeta omegatonos -17 KPX zeta omicron -8 KPX zeta omicrontonos -8 EndKernPairs EndKernData EndFontMetrics libwmf-0.2.13/fonts/NimbusSans-Bold.t1000066400000000000000000003224231441723000300174140ustar00rootroot00000000000000%!PS-AdobeFont-1.0: NimbusSans-Bold 1.00 %%CreationDate: Wed May 17 2017 % Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development % (URW)++,Copyright 2014 by (URW)++ Design & Development 10 dict begin /FontInfo 12 dict dup begin /version (1.00) readonly def /Notice ((URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /Copyright (Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /FullName (Nimbus Sans Bold) readonly def /FamilyName (Nimbus Sans) readonly def /Weight (Bold) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -155 def /UnderlineThickness 69 def end readonly def /FontName /NimbusSans-Bold def /PaintType 0 def /FontBBox {-188 -307 1069 1070} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec é ×`£Â,ñùÜiš"Ã[[4Þ?¿Ø˜¯.aÔØ·Pþ‡‡ÝÙgëð9YÆÊ2SÝã/ÊØ$u™lµüÔFëâi:Ìô Ÿ-=ËÅ‹IåéÉ¢“ÉÅ«ôSÀ­:¶QÖÃëí<¡yùéö1’YãL ¡ Œ4brî4*{‹0 @!þWbêƒ47W€éŽãfÔâØóJQr¨ª '7øjѹÒùW“à]Λx\m§ÆÌ/&5ʵEùº˜\Aî”ë±ãFžuÃηnsó:„+·o¿kPFzà®ó{OrÒLNvh åL—ÃMlÐس º•þZm̨½ïÓÑoãAo{Ì Êá„@‚íNS«½I¯•“Tšìm!0º€b­öðr©WÎÚ“àÉÉ<$öuþ×$â]P«ôºIÊ)®_T\Òâ­ÓõÒ©! ã±ï½ôñrË~!¥´ç, »yü=ÉüÄ^+˜¼TœC ÛäBÄõjÒ3ñ¦s†Ê0ƒîÜa×êÍþ. áycAï \„ÂkCYÿÁ­AGƒÕUp§?· 0\ƒù+¦æÒ&"Â'0Åbà èÛÐCØ áÎ[d&•ö;k§f¶M%oº¹`GPת¶ § ?X†á h‹”CŒ¡|e~le¯ˉ•º›%V~‰ö0ÂÕY%7ñ| u3b ±×áÚH¡u]Œt˜7Øô}s¤óp±%´·l ÿÿõOD<”ktŽ}ã)ƒ ®%[àQlÄ ÿåМ‰Heðqzrðá@£qäLsÐˇ™2–R.u_ãNÂô zÚ, ÖÂcÆòb(g„y0ùx©×ôá™$˜â‰2ÑBûÊŠÐA¤Ñ-K”Ì¢lôô$kWX]^?¦†Qâ%áå¿”ˆûÂ|Ëì¢QS§6HÔ—pÒ@FMT›oL¦ê5mšýƒfÄ«“låÙ&¸Zxûb°ñYF®%ÒKùä:ä(ŒôøÅ@ô|›Uù¼Ðà0øw&™¶ç’R¹¦ß´»XǘŽeÈUǰꉗwëÓÝ#­¥›^îÿ}C7/o$¼QnÆ»vDmL†µœÄ¨µ;ÊÅU:--…'ŽËŒ´÷–/€²€²610mÆ0žj&Ѽsÿ[°é€Ežõø‰ž4ì»ò2í¨F "— ŒÊ°øŠ#¢žDIqRõ¦˜\Íši¸{Y²¹jüòÓܪŠl•RPeÏϳ´¹žÎªìså?Ý)^Séη£³z¤ýæí·46s&ßò  Øp¦ý³±–'"@ƒÓŽsAü n°¨|óîqS5"*~’Q‘ÛЈ¯®ü¨ñ´.áÂËy!Oj™gÛº“ ‘¯‹ƒ/‘¬?½×` Ç}<Òù¤AO{îôÎX)ù@ÑP&× #Ê$I·`L Ê2ùè°±ÖBX!Úª¹¾Oq¯Üç,’%ß >e*(‚žÛnàãqÅÆ°Ù¼dpûàVÆuw0@’on:ëhÆ£¥A›6Ž6uœFî‹Ì«ür]€60ɱý*ð©~KhþÖ<äv«2AI» ‘ܱAj[1á´ç-£ãˆpù„áÿ÷°LFŒYoÒ_+`³Á–D7šøÌd%“Û¦C€Ê® d SÁ5‰¡?m¾¯¯Ç\¤Uˆ->'ž.!6RRXI,é)•TFˆšÿÃ>• YÚÖ€}hú8vËNNÑÓéžq:È?orb•9³¶GÂ_ao¢lž1<¸åH¨É-mR»kÿÐJ¼n áÊv€³ Q>Üb¥Ž¼I¤û.:ý/“£^‹p@Þ»[ºˆÜi(†£«‡]^kæ¬þçDî ÅL_¡õ>#Î~&-üÙIB ÷I®ù² 0׆Åj‘&‘!\‹å·™ƒÞC™<æïV €-¥{ai}<C!Ö^âÂ-ëR™¿@>B¶¡¾+å;’£ÞO¶ä­ÊUQ@ß:{0¦2É ëM€©ZÅv •ˆ’Ý‚¹q BW íÄ.O3q+Jy¬tÒÐé—ÈÊþ+á(”•mH ¾ )yÜ8;ô*øFÉ ([™’Upâw&½GyÏáæA·W÷Eçâ&ã^5aÆfè»ón"þüµÃñ}õi”øÆTV‡ò©A"̳ADõèRD­Ý§ ì˜ö²P›ôÚ²çfxäïFï1âÁ«$O›pÃW(¤D:eøã~]%Í¥ƒ/–8•äüL*ïg¤«:#Ìcð¸p\K—Æø$ÞÔã<Ûc h›+a ¾.JËѺ .ñ†Ý–™¸Lô·s ØGø{usï±Y9hh  Y½çœØ/f–kÝXð˜Ük¶;ŽÏ)ƒÇhøû”açÄͦÀ÷Ñ«lZN@‚6H.H8aj\¹‚0m°Ç4§²ƒL¢Æwûûi x?ÎÄо×I~®…±œD–‚ |£ôëͰò´¾þš']{gñEŸYŽ<&C ¸—¦Ÿ¿é} ë”­÷5þ™xY²€~Ð(Èäö¿;¢';âÉgéøî¶ÎfVý4¿ñɶTþy;ûF®ð™‚([Ûë¹’oí`ï´æ×a¥³éhÞÓÐXj¶u´³‘M(ÒgTD,/ ¿õJºÏTÔÑS7¨¤™ò S²ÁîDz â õ)Òÿ¼Sý¾L[rýa%pú 3Ô×ÌKb{?Óuâì_læö|o<î!ÎÞ–¾Z´‰dôÒøëôOØ©69i_—oƒ«¸ð[ A–Ñ`ý˜ƒéúéôR€©QGƒñ_‰]Ä)Ä[rÊéœÊQ½n­dßAð¡Íctz•'+¬ÈŠ?-åLæZ}žÁú«Ås‡¸$ü¦g‡^¦çÔ¯ê äêw• 5O$ÿZfœb¿ÀXåñ‹‚ö|ƒiï 4V±DºªÖdfŸLºÕüÿORÀBÎuå·'¦1á!'EgGÔëþ\IÝ3l±–Nò4*ÙéO+ô±çOó)Ï+BÿÑSïªê…S6BNho´É•“Ò¼íøZ+#Õº¬I(Û¼µ€å$ ÈœóÉzULâ`‡l©Û’éW˜.¡UÁ WkŸƒË êÂH‘¾HlÔÜÆžøæ ¿|ÖõZ´î S2ÊûKŠõ–±ô’˜j¶ŽDà›Ú€§³Õ˜WÙ"º„àçÚ¯]ø:¡á‰Æ‘‘¨æérª˜LÞ9ê£(ʉ÷„“¾™—V¦Šº,:ìîÒã öxÔZ¤µî R¸ßdwÝ´@ŒVÕø „7qAZð DöšÖwõß~¥'"²C%y&ñ(ÅsP7.î{R zÃ=q†Â¸PÅõP[a×…~–‡XÚ¸ÏwØí΃|¤7/’#Ðg]­§H˜UD˜]ïˆ"Ž©k‚¥yŒŽ_FMþô/ 5ÄÅ+ÓN)n ‘òx_n'i5w• œÔ$.E`Sß›Ö ;ÆÑ†MîìT*(y¡R´XìûIŠÎ€¢±Ÿòbñá†Ú6Á‰ÿÎíÔª¿b§ŽCáÿki -æÆVK¼È'Íîû×½–X4ÕØ`A«é ·#“¼ ª+³e\D€+l•Ëñ¾“ö£œJh5þŸ— йĠE±$‚HÃVƒ‰mªd+0âû­¤úEn\¾kÃß{kKY¹Å`MÐ ñjÚÚ&ÙõøÉþ» –5¤Ž˜×‘³.s‘s$#^¥Š^ÊÇ”Ó*vºÍmfÍjÞkÐW^2IOß #©—g1¹ýò¯Ù²‘ûï &‹#‹PW¶ТI'ϽÇ&ÎQ$ñw¬Dû•ŽZF"YB£;¢/‡=†¢Ï=°j1Û–óZxÚ–½Ro,Rä Ë[i[&^È·H‘ˆè‡ÙªBPåýðöSLFîÑ¿rÑ£L;d†¬»Î®à¶¸ë×54°jÜõEº·Ò[½`EÙe{ íÉ£k^…:cÛ害úr;H uíP#³£5Í›ÂvÛá³|q¨'Hô2í™ÓñBRC½pl)ê²OMW˜äYµYÜÝÐ6¸F#¹$VªxB"³Yé¼á)a]&AÈEw~c)üwÇOzl. 7%¦,rìžÒÂØÈAˆ'–‰œü<áG÷bTÑ!{"d]¹†´ukÐk¹VÎ4N‰'ÇÙÔyÍáÓ¯ˆO`I > jå©”fÆKIh­‘(º¦2‚UCÐöyãzáýý±QO•þé ø0•D@þ7¨;éN[þ†8‹Þ‡ô:]ö—¹ª¢OØâ)·”Ä­yð']Õ<)øGµÁé–«ö?tÞ´Þv±V*¦a²NŠh•”—:²ª£ñȺpÄ ØþT"|˜iKà\@ÕÅk»~‚1G9ì“-G‰Gïfæº4÷FTãUí.Ñsq¢Ï$ x«,*ÔÚ>„“x3É‹‹Nðwva|U›JŸ]Î[×§tøÚQœO£9ì§úÃãìÇ· júÑs³©ÚWA{ó–ÛSÃñåý©×Ét]™b,Ù¼æVÔ›SµÊ ó N‰ˆ‡õZ¸Á£¹ àwF ZlצÛà7®iQ%´ÙëýΗ<“œ©ñ|ŽS+O©¬R©a›Ô‘ Q&˜@ €}¥H³‡8Í­’HÜ$eÍD§éä{þá󆉡Pç­Â ×Hg®Æhf`â8^,Í–‹(é _ªòŸˆ"€gº“¢3Y~Sn%n„ÿÎ<Ø›„ñM¢Æòhéš,ŽOÈЉÛͯ1RÈ\K¿Rhã1ÌE K¿«#²±æ$4ß—@4Õ_½³7½‚мÞM+Sjδ®ˆ§G0Pè°ï»¸N£\à[Mê´„:ýgü¥·¦k¯ršcY4)¹çŸ}U'1Í|“FÐÇÏ;˜€`K"ÎpŽþ lÐD.}K賕BÒsiØA1ÝÚ”°ÜTáÊžuN{Qy裬ªT5n²9,yí…;DÞ5/;½æâlì¸RÚ´ï­Ç(qö¶ï'^¢!(£b“òiÿÅK™ÆËR>V‚$^¤ZkÕÜ+ñ=Û®B—‰4s .™á:Ö”}³æTØt!¾³jû5“ßR°ò&rGÕÈwÁ+¬“ÄœvõŠ^RO-NÁë¿:T)¹‡©¿¸QžÅä@Ë‘¤LqœE/2’†ˆ‰‰j<º’‚‚nû8¨¼ œ†’Æœ˜ò(Äg±{æ£Y’-=¼üÍ2q#¼ ½B¡áDÙ»Ÿ¨<;€°ì²Oq¡û¶5¬è7ï±Û•c»—E~Íp°O]@&Cè'“·²„$îóFÇnuÄ/ÇóŸz¶wØm«® ½£_* «´$ÎO—m¿½ÄØ>ìöçbêØo8#dðmže· WÿäD¼o*K -Xf(l*#Fäî1Ür<ô¿¹òûKÜÌÚ‚ÍùµÁg½»\OÒ\Ì™};¬™°ã: %¨É-í¤®@nCdã# ëØÄŽ#*ëÒ”úM­ü3éOA…tLZƒàpj VèYá4ÍnŠS-Ü}¶‡Vx2˨>GNòpãXˆ]c î™ëõCˉp…/hü ¨"|„â'\þìÁ jå°¢H5°ûÊFýŸxƒ 1 :XtvŒiô¼ÉbµûÁåëpmD2fÒÎc’"ã¡:eSMó´÷C64ðCáÃ÷9š‘í1œ9¥ ÜãW?g¥b6Öà ¾™î ßR'Û56~Ì„„±NËvÁ$+bE°Mf>P«µœ¡ªÙ3¬G§¦ˆ&^ô§?1}êâîTèÀø¼ÿÖÎq`OPïÚßéÈËê*q vZn ¼ó‰¦I ‚„ÀŒ_Ü¥3”“»K¢ªG ugž³Ê@ñr£ÀF!×2Õ¢f¨%—pÒœ‰Uk/°¸z-î/`í<*°I–t =͘"ˆOE˳oÁ`T3[ˆ¨ˆ¼£Ì´&\ȳ›Á€½9«j`¶Oâmh"gþ¿±KH=b̓Ž.G,IƒFÑx«+,ö±½ðcoOî‰ÑiȘgð€¨sÙ›ò18‡Ö»:pL/ÐYXCPáä´G’èj…£u ô¯t>t“Û9nQ·¡Î”÷E«øÙøl7F›ÉTC9B÷®`<[dŸ¤*3vòÒ1D¤h˜Î…S‰77ùGV€±‰yT­)ÏÛ­3=ñ?³çbŽôè.­”<àÞ}47«ù²²,Nî+”¥Ëz°øË«a˜U1² ƒ§P±>è:©õÁ¹à=-¯’lÂÉÌsŸ ´˜¸8«YFfÛ–CZ’äp-ØÒßsô)C‡umœ8þâiÝ¥ Ó\ rß`ëS_/Gû„ VQ¯»˜OJJéO ÅIŠ‹ _Zkq£?_S™ðLõ èB³—XÝ"\èŸk¼û^a Ý’þþz<ÛEú·•ˆqXøp¸?È©œ¯‘?5° %”gæ­ãR9†WN0T³ˆ{E=`Ÿ†ÝëˆøGâM™zý @cá}Ô÷B«ã+ŸnX½:<GêÍ\á'|¯Û2û½œf$\WW|T-åâŸòÕ]w-Ž+E‘BÛjœwe¤'…cº¡–Tÿ8w] ¨E0rØ'ö[©ÿìã y òÈØ¢¯þ²Þ}c]@qðòVVÉ·²ãL›–;£äƒK%‡`xÕW•ç=U“r”x‚U®8 ì8BÉLÇsWgW¼—þßä©È+ŠêõW?ÁÒpVZ¼ß%#ý‚QFÉ-Îßýii7›— –¶o.b;it¹ƒ:_ Q{‡ °Òµ–˜Ñ ,þœ’6¨3"¦Û©6ÿÈÔBçwû®«ÑûbË,ÐO}t=ÃD4{ ÃsFuU÷8ëß›ÁŠ2ïa·™J¹ûrú“ЉÜåмŽÏÄ …›qsx«Ç­˜›»9†Ì ,à~A'e.IË{÷sÏ¡Ò=o×6«Q´¶Ù?mÉÏQÝþì\ãÀh Ù.öö¸vÙóJ`áÆ'QÚ™€vaÎð?î™ñy¬ ¨5¼õßÄ{‡H!žóÑMðÌ^U¶a­nÒ&ÿçNÛL÷.àK úu¬«ÇT¿^Â?rÖÿ$8NtUG&•¥L½”u³Œ g|Ú\væ3 búp#±‘Pe4-UÞxiñÜ+°œ¥TÅs¡ÀƒçAÑÉ&M™Y‚³fŽÒãøÍ/¬ø1í7“ÚWç8™TxR¢iXCånßßÂhÚø­ç}¡¸w÷J‚윽/ß`v\Ÿ:0Ê +yßœ„x›œ¨e.^á.ï1¼+•<¸M('òšGÛIûþPb: OW]¡i^j0R75¡£|W U £%Šf]¸·G•À¡ºÙv+n`ÚSæ±€`­ú¼`‡žºr‹ÓÔêM’Ù®ó2©.4ìîJ²«øôM‘ú(_¸òø‘[”–½‡b`Ú”æ;óJ˜<~°†ø¨D8WzxH/ËmìD<³LäÛû\eÌ…4k{è$h\”̲™tÖ ”ï±eÂVÕ£ÜÌD<ð5N)Ù}ÊËpº÷Zyïñu’·¦”Ø´óì„ÚÍ®rÙ( t1œª~-·<ݤϱºšâ”}5 ½<ÂÂ"Û€@ÛãQ†ƒ ÃlÇ*}3@%\¥LvÞNÉ¢}ŠpA#1ñJ(ú¤=›çíáx| ÙÄ9yã"ß8ˆ %bWB:ÜnQ¯© | Ö”oÇT@óròŠuP²ulŒÂh»…°ÈÝ£^§J˜‹cŽq}F…†P|+Þ»˜Àrëxå¤öá ¨ñ³9mä» ßSG[¨éÚƒå ج>ò:Txù+¢~áºQž‰}¤åÿ¤ˆEÀ§ÿÿª~H ­êÞœPÌúf§¸„,ùç&˜Ã2@—v“öcêÓgýÏP ¥@EEM»ÐÁ·¿`ͦ˜þp× ÅK9¯F¬vphÿÓ¨µ”y X5îú¥X<ÁöÔÁÒå;ìà_«½qÄq.-3)BieŠZÓ“mCsp,ªóêP¸²G,ï’ž°_TqAfá/JYëeË)Yà9Ÿ/ÒÈ0³F=½GÍ Ðžž(Ì«MˆúSõWÌêÇ<›t‘çô,<ö瀗#÷¦ “´ê‚•زê€`ub?‡¸/º ‰@¯\4Q/ ÜЬŸß²â+ˆàg Ú!«ï…6-®ïþða47&Á­p3Œ|!ÿ­@EXYk+¹ ˆ±f«-¶§á™|ÝëëRO*[…ÈÃå+!KôÍûüÝK»û\å£AßiÿÖhesÿ¤Â{y9¢‘ègà¢R%#4¼¡h'=å?Š}î*aß‘@j]:‚¦ÌóH¬8ÔÐðÚX¼Šä5¸APý/q©(¸ày×5áá†ð¯wó' ÿUâIÓQu<{ï˜ñ¬z]©;=:}°Ë#eû§F¶‰Ý§=ä%Бš Tü™SĹÏÙµ½þ¿%Æ[¡[Ÿf½>2Ç1Dɉ#›ûV hbE ë»Ì{Î!ŸèÐ`tD> ( #µ;bÜ'X‚{8, ýÓ`1UßÐÊ knSÉ‚ïj^k æC$Ï{;Z¥0 Ëe® ë‹áK» Vt<™•iÛŽQÔR¨+§åŬ¯ʉIÞ¿õ^+%)ê µ›¹Îë¦`žS`Gy\¡X;¨M:8“à÷È_ä.8ÖŽ–ž1j‘CuRþdÎíÁÝ<øLÉ S$b®Ýƒ=æ2QQždx¬ÚÑTyhœÌUŽ9èߒᦎ˙ÁYˆë©åNm¬®ñ{–‹rDÇøÖæ*¹£Ø5ÔÑiÔ/³þei T僗1Å&*±‡˜qš?$ÆCÒð4pš=è;לðmê)d§†p»7M)sSõE¸Ö<Ò§Î÷ˆ²?kVõÕº_„2ˆ:Ñ‹ÛÈOß#QθþÚÃté¡z¶x×F=$…Å^ôãŒWi*E÷yɱ¨‚‰u7*“ÀYÞ¹[õUœ¹«}ÉdÕ²ª÷dÈ£üè XRíÏõ­/Ú.¶êÁ +ñ vŸløâ·€=§W.EX5Áå œk2¯[…ÝS±UVÒd\… S¿ZØ 9³”:Ñ\Ô&4L¬ HmIÂi]PÝ"Lfýgwj­Ú•o¤ì¶4:¬zÔé!~& |~OÊ_NâÙéÿÑùS$»JñÝ—àö129ã«B"oÆËO«©‹©–þ0ãH01ucÔQ¶Ã\]†ŸMšŸ|­Ã£3ê)–Eþ b@ìÉñT½\LI•ÌWEnyìÿ„ê_±Òg‚ ûؤùΓ`sFLkÃÔZýzô’Ò¶.¸•LuïZ,³„ʽÁ+Q:Gîµd=ŒÐ[{‘ G½gÌŒ ’D=Á`Z kר»d‡Áì6+¤(•2a‚èªQ¢Ó««8bßSœò=¤†Nª%îîÜDöà4![Q/ ¤ Ž'€±AòáiÒš¥ ãÝà«‘éÕxtp{=ÜJ.Lñƒ¹ùøÖÒ6þ° Љc xùÌS–žœÄ}|"S2dÂd•A%É>ýÆI­´ Qdfô1\ÚÈH4¡mAÚ'âr<ÐãD1ßi´‹ÏÒ!ŽL™áãU¦]4Òæ-ÈC/cÂs’²É†öýP,/bNîÀòôcxm@NñFÓG>¿tŠuþ³Ê÷2É2Z]&¥&íi’iì0•>O)èù´e¹ï6…ayñ|S)מcŽÕ-ü;.Œw\|ª ÁÕXFØ,Ú &Zw¸LÂs…‡ÍÒ¼cKcâSòv³)žwíìÔ>ÒÇâ/-3JsÊ))¸Ï'BR´öuaúQ'ë›K‘\Ð÷ÇüCu·d4%³¯3’&Ï`تy…9‰š^ÑöµnmñV3mz%·)¾œÍœîN×õ^ë¥Èš²6 ©4ƻЭfI#u$n$d4é(…ô—l "X.º¼Ž†œ{9P?œ{Æ&i¤¼Ëô‹¬@[HèpTÎ’í­ú1Ìâº+Ú‰ü†"¯k¬æÊh¨}¡æÐ3  vÊe/1—S6½ñ#$°0 ýª39ˆ ¥ÆëXjÊ•tYóõ¬Bù8êpòÃ÷C(K[A^cÁ6ä¡{;k©T4ï£*€nëýúï€*³íµ\ýlRˆÛá_?l ¿Ž:ƒMôÇ {GGÔˆóh`NL˜F‹3À2¤¥‹$Fä ¨¨z%c ‰‡`ó6ô†Õ@Eåô‡pÍÖ+~l[–\–8‹Äþ¢ç§aDp‚â3?ìpÐâ­ÚêÎU—®d* èåûÞ²¿É¬)4;®’TJ­:_yÎbóBy¼bqù¦‘ôç ÁaÚ;£à«eú)ûÞÃõCWÒÒîÙð,Ãû,>†ääD„z¸ªÞ ¶0oŸ=õš.…_ìEc33-߬pÊ×,øhÔÓNÚu¢½Ë¸¸Q©¾ñÁ–lmRáÎÁÇâøÔý•ÈFü’®» x‚àŒK­Z‘{Ô„yT\ˆj­^.e²‚™îón Q ÝŸ!bݰ/4QÅZ3‡Ýeáâr¸ÂȾ6ñqÄG6Ý ”:±ðòŽ Øý DŽð¹lV.K2o¸_FSàoOÜVÄiRn§ß„8íÁ=ü™¥zú‘Oåªf^Q·?¼­ jF%îò?)Ä&eÇîÀJËÿJ¡?´ÍQ2ó°§ÂX!|Ù½í›ÕïÞ€ŠÃiíYbkVM€<†Ì\a‹óO€}uSk”Ýl JÃBžB}2šíÆVÅl_ødHd÷y_mŠÕ;C¤q—?LÕ ù¢½/Öi1w7þwÌòC‘·rôëã<4°8k¬³ šîã‘,Ìì"‹sCvÞú&ÍÔUðB¥)i’ïv™à³¼«œ×J…ï[šÄËupV»¯9)ß­ÆGº*Öpµ\oScÀ¡õEkÆrT…ZZŨ(w%W®t¤ÖHW¬œ§­ÙœÞï&°™“‹5ľý˜*±VR@¾=Îc(ÁfÙM¬ÔÜ*ª~ëE%Ú 5Ñ7!neÎÑ#Cwܪ‹?LC}K³ºþ—LÚ†¼žÃQL_;¶Q¡.VÀRC¤ƒº°à] Ž˜Ë=& ™û­e‘+%oZ—-̘PÅJët@Ðéï›Z§ èìÍÝC=Aá™,\×.ˆ™©Éá×.cÞ¡)‚e+wv_0 ÆÊäöÜâ»N1s׺Äy©ÃðÓ#SG*„wÍДҚA_~ߨÓâ!æ¨$røaoÅ¡‹$qô\›ÝÁµØˆ7È>Tž‹Å¸DÜ´{ü:ñ㥉£dó¼1¹†ÄË›_“g/Feš®ÀÜïE©‚;u­W)J±>E®SíÇm>§¶GOÎÜçëøIØ’I®w÷|þe‹ž¢úF€Ó:,âÁ£‚Çêó_·]¸‡þ ÖÐÉ+Âü­±å|Ê-[IJC^L‹‚DðÄÐÝJd˜ÐK*r<]~ ŒZ Ò‡| 0z~ní¯ NFŸÓ§áPË•´kŽE¦’ÙC¼¯õY‚¥W¨¥Ðù?ó¡Z|#‚ö,>‘ìTå>¯”©¬ÆO£Ó€žK]`3BÜÛ¤{È p/s|0üç^‰jú;ùÁåÖ@Vj6;Àþ§ê#QÁß.²É³µ#Dœ¦¸ïzøsÕÐíà*4R¥ûáEßHÚRÏ…¸Y¨-²ŒHÜÑÖ)+ˆ•äûÍ¡èk Íœâåcö9¿Ë„#•5  ¸šµs>% Tî¸JuŒÅÉÿVÞ(_þ(ty{]rb£½ÕAb{4/CQXsf.¹GsIœ)ÊÃÚêðÝÔÎAûÕ´¨Yj^9 ÃÍ”³Œ†MµŸðœØ¥©¾fÃÀ%ÕbM©A.b úÈÈÁÁ“ÈŠLó?ºÌ—ÌG1ç ÁZê[ËËm¬¢s¨Ù8u ›ì}®K¸‚ Jt/&G¥NO0†UþC¼‹ß€ÒµqžidÀílú2“n9‡WÀÏ¥ólB•î¥ÿ“䦛¨«šØ&œN3›:Gr¾`]Äc” hýÜX)Œª>`Š.uŠm¶u{„ÅËà@3ÊpÁŸÓyC„¥Â†[_¼SF‚ó½ó¯JîèH½w% ůɖ)ïîŽëÓ*à v´¤ÇˆЪEu6Å-W¤ ¿j£aT {®à¶&€ðó ‹l¸ìJrùNõCº“9°:*ßuª XkÙê“PVp¿ü"ãAþÿ H‚éQ…ç™Oà'žç;ýÏÍŽœæªú¹™¸ŒîšÑ-Üû^02uH2žyЦ„²Ü$³ŸFR N/bP òã²a©³›4¹²%dGÏ É)Ñ¿¥Ï© ®?7%×@_Ö#iæ¨~˜E„ðý ýúDä¼-Çå¿¿Wád_…´OÖ¤³k+Áô×Q‰já|:¥ÜÂÅsÁÏÓv˜ >T®~ 8‹§”!µ WÀPdÈÿ£-\¾XX>£/Gí²¿¥Y1©E ¿¸3öäX ûiÌs^”åﵸ/±ˆi×¥¢&RÒ¤ëËØþKðÀ/ Î9Š—É:¨˜©isØÇzký)¡Lõí2 VÃ+7¿hFy@ùBÇ8„Ô.O1ÿujl¢ùZ•«²ÞdصGXgßx¾í©#ðAx9{/Š'3dÆÑMsŒƨ„ ÙËújuÈÞên«Œ5•0Їªo®d’f.ñ•$6l‚q o‘©Á¿;±dTeY'6®b<ÆQÀàó½Îk‡M+–iQ0q¹íàxYP͈ͨàq5Ù­DlðÌæ÷á$ÂÔïÇÀGUÿˆ›H òÅ'…zÊÔ£=²èNuY}Œ²PWKÁ“tµz¤Ø˜XNBÌúÑò?ã' ¦5°÷Là»´cœž¹]ÐôvT…Ñt@wU%3Y3O– ‚Ÿµ6ºYfI´ïù%:&C`u^½±PLùv4¬s lÄÿÏ"D•ªkW2ÑÙSú-Wà A#%ù>Ú·ê¤H+kFDKKe×i|ÇS­ê7 êF4R»ÐªƒlÔà¼òBÅ–^éòŽºÂàmLïûí²U\¨t˜_àtdˆ¿Qø½Àˆù&5÷gMÿ;¢®eßÃ…o“Œ¥K‚~ KÕ §ÕO¿LSìѻΫoÂO+%§ˆF`+ð$Øi½õnŸž4ˆ¸„M!®_ö^'Ò ý´ñòuÀ͸Ǔ|·FÌÚØè™¨39ôËcB³§cÍgYÇzG  K‡Ý§MÃÆ'Mž:ήƒŒaÇ,^Ë)ЃíGae«$š`nu¨0VÔ-p‚+:©––‘ +~„mxRC j Ü•ãŽôT¨6Ñþ`-¶ Ÿ¸×ÖÓ qÔÊöV»©&Þ¬O²¾Zƒûã6Ø>b¯ð^@´J]ûÛ˜19öè1œeBÒ謂]ݲjÔÃ:šñòçÌìÈ´SçxYÒÎ)Ö‡‡{’–“¦˜ŒÓš\Ñíëo,ô.ÍH«­Ü³bW}‰º|9ÅÓŽˆv.e‘­–ß«OëÔÙö—"UÛýÍKj[ûÅ}Ñ}çMYƒÑãwΣÔÇý–)$”»‚×’,Átá,m VÀ½öNEÛįšÇ‚† 겇„×>´NM½eîD£*>¼½ùû"—‡ôÈ`Xážrš\¢ÎÚß÷í=†gm‚§HËË&.!¦–a544¤“&ÍjKª( /xÿJH:åN ­×N½vxº­wJ4õ¹GPr´‹ã]äÙã•äbŒ1›û6@‹‹\]|ŠÁé\̱# {JÁ›sbzJw•€‡M{KîוH-ø‚Õ©~xyF(ó±($9tn0;[%)xb‰*­?/"FèÖ eRbÞýóßSðYñä{ÝTùÁ&.ŠMzru}ûËæ+ðMT¾À.GÝÓO½KX‰Adeú ß]ïÌz`&8(r³Ã+Ú{#ý@¸@EM¡;vÚÿ‘ì9õŠ•šÿºyë&Y@ ;@6ã?õ²å<©û õ5ó˜ê_PmŸÝ6µxLû¯M¼ ¼ÿ¼C#¯RÚy½§Ëy$WÀ ˜d5¹5(ÎmHþÛ­^Iä²Ast$4uo­ oè¹½ƽwŸâq#r&9(ìýݹá.Í1©tgŽ¢6bEH÷=>¯­ÈðS¶·üx‚ {ب"ŒÄïÍTzäÊÒ CÐ ¸Šz‰¶ß²³< aHkìïví+ÑsJ¦ šF­üŸÐœ¡›siªÉXŒ¯u—æö§FI&TSØèÃìB˃5­¿ØAõfè›®Þ–R/¥}©ßM“Ê=LjE;ÁßwÁ—!Zœ”ô²¹ªw»… ºGh$áU+È»Ö[À…ÓIˆ¦ÝíÄÚq>l1ý§‡šAÉý‘ ÙrtïUÒò™Ÿï¯»«L¸+é³ÉÓ™ ¶7Vz[ÆWÃï_¿ËܼПc·¢*7ZøTÃ(…™¡eÌKME%ôæ HŽ"•-ÇzçÆ2²:”U¬<ÉTÖOag…šÚ¶ýÖ¹žù6¼•[:ÚàØ¤cnŒ°!Âõ?e*=]`8™ÌÉÑÏÚ.9q3ðœ¥Õ#…ÞiÐá3ÌÞ¬ï›ø1ˆøÞ]Zï—×Ú¿ëøÜ¬:¤aFØêÔt– 3€Zâ®»ÝV©“4ö·‹Ý/rclyµ¯×NÝ#U®nIF‡ ÕëT4X4àBsç%n¼u·NÃtÓ×§ztøm¶/¥Ù4Ÿg›’òra€…½–÷œþAÑ&Ùí*ă´»ŸGØüúZújl%ItÏ@Ù?W“™ú*¬ßYÍ×)£áÁŸY Õ‚L[ø 0ÝÜ?/Îs”?‚aÉ{F~5ŠšT>«VÎÛpG»~òyJëÕ9 fþ“×À<›c ³¸„€š~ ŒöHm¨Ð€ßXù;i%½Þ;"w»„úkP£ÃÔKwÌû?)²ŠŠ—FŒkÿýB¼îÚˆç0PÛÁÒtÌ'ogð€íúçÒu˜^ão™E«ÉéYr`0›ÖÀÑ0|ÕXª ©Ú¬&,íë]”ý·/J¡±³`’u®UÀ?dcF$½õ?ZÄ[ÆnA9-‡&ººKÏa®Ü~ÿÖ–ž¬¤J‹c¿çAÑ‹•¯î؉¹%árlqåÈdÍŒHEä׎2±±lƒÿ¦;¡™ðþü㬲¼{¼ÀÓ<Ô%1Ã_„/ß,˜‰»Úã˜S×8˜¼©×^ ¶!½n"×v·Ï’‚øýdö/86Iùø.Dàìî|mŒ©±Ñ>™ŸàýOÕûBÄ!Å8瀳±qÏ…výšø' .Ä U[óè&1ܺà>\Ň›)ZÔ Ð+Ã0>ã¢TÄK …lŸp’èÃê!p#¤+O0‹y$·ë&àƒ>;ËÎŒ¥¶‰½$Cgpt蘜ºâç@ÿápÃ’vÂ(ñ٬ᙠv—¯†7A0àçÕ£Ø]Á§Æ14¤‚쎽oj˜š˜†P뫃J‡ výç5¿TÕËî`TÆXx¸” ÉÂ8(‘S·Äg“÷˜ð§;r¼f»²#”ÏÜhå´÷u* Xñö²7u“èÛ‘ÆóÒ»ªÐ±¸5Þ¼ËÔö¼¶£”³”£³g¨ÿ?½ŠáÔÙ}Ó‘g'ˆvÚí„ _ò©Œg.|Òâ­Á«3 ÿLBÞfm´ÜMYò{rÒ»¾ô58à‡b/~i¯ eJ›º_‰´~îæÛp¾™E/™²i{ ·7ã)fñ†ÒöŸÔA —;ÜãÆ7‘hïäŽ4?¶_(±ë{‰>_‹(¶.C…ùÙl! üV˜,èÏeï´|¤¦8“©¼ñ;U @[(E¬øüìùBé*R¼j9ýTÑÕ QþÜØÍéžni¥ÆåÆݬ&~œTç±j©ô—f/ÿKÚÜyÍ^T6YE5¸«¤y)`6x8ë\R²µ­KdÆS{Ù¶Ë#­Ü‡QìíT’x“n¤ $Çá9¾ ǰî Î]|Zá!æbÿAN5ãJ¶Ê4P¤Ÿ—Æ };WÚY,\nÓp²çfû㌸çªKŠàÒÒsël^tȱ'UôˆºD¾GÁ¦ò`Ú„í°^AÆ™-Ñ“®Ç$Ž•þÔ˜)R\:ò„¾ÎôZÃü.l#x Å[5Íá 0j%ß…»Äðè{ÕÇ"ß–zxäš!L‹ýÁ‡CcLÎÿ½­(èXùœYì´Î,`e®®|-öövC*q¾¢™ÍOÂo¸·÷ëýÉ?sR{ð{ èf×ÜVÖtº÷<€ßKYç|†=YûF«c 1D‘'Ѩ£i·«¹ç2„$¬È34hƒMü·b€þË~˜hÒÖ‚Amf–¬†E?fš´WZ*š© RÄÕÀœÃæÁd…0LWLÝß_¿ò¾;àfó äÙLtÃr¹RæEÒÈ%€’û“Î] ªÐ#¶˜Ï!Ó}Þf´F{§as:óð0œ2°ª3JAï‚ô:ɾ$uá_©™¾ bú¨wÿÜ0÷÷$£ÄÛ«EÊ4JîæéÒA²ö‡=>´Õå9Ǥ€€ü‡ôöøMT­%ùü•xÊÙ¿ƒY˜ „ÂÆzi5j €@¼HQØŰ ŒEEB´?²QpN)Ê´…JœÖ‰=8XÍ‚´Þ—û¤g¬GûUZ…iÔN”[ (Î]ŽàsNÙÁµ¹ÅTÞ`×Û=2bUX&bà O6ý™ÒH_ùè>¡‘îCkÙ/ÓŽp|mˆÐ9,Öa‡“”°RŸ%,‹âg(ÃúÕËïY¦3ˆàî7È& ·ÒæÄ2­hnúb¤™Ñy{M ý]²oÇÆq]ªü ¢Z¶E61SÏx~XJšˆò9¸ð€¹Öz3[ìIÄüf3° n›½ø3„Ѷ…þ*J±¸ÜÑ4@‡¦ÈÕkfwƒÈÿ§Åv &L@À3éÝ¥ÆâC^ åýÐÀëÆ¨ëjÍRK4 s°Só3¦ ™XI®NΘ5KSÄØÐŸN‹bñ9Hº²\龟O,Oì×S/½úb3G´Õõ,qÆ?Ìá×vÙUMqz4/«øì=F@q‰öÁƒ„wn˱E—Áú™Ù©ËRIn1DE–zm,ò ©Ÿ]MÞ<…mwcRÍß Ä¿ll8š Ð(¬Šzºi»P/Ÿ>kíݩݹ`Ǩ‚¶‡þZBe¡í·8w³œcvüs†úœÀf¸@À&ü)úÅß)ç9æÖž:ù0½3ʆŒ¸Ñ¨ºóˆV)Xb|Ôo# çC31Ù/ü¥!ès}@oëÎò‰í2ù ~Ö=!Ly#’MM´Ò8ª‘\'5’Ê €¾p ÐŒÞ2*Þ‘®=U!°‚Ë>x@êNÇ_g¶ÿu®%ŠÉ?Ö¯oL=v3Pt)3×Úü÷}܃Ÿ6Ï–>‘¥W)œ€.“(·l L0`üzãÂ=D¥!Pr¦‰òÕͼ5¿¦CH.r<RtnçJm§„LU¬¦]Ì-pÖh“›ïšrrc MÃà*ÇÅ_¨ï˜E­ã·§Í¸Vô]Sz‰n;,™`{E)çt²·O_ØOa¼QÉyƒ‰W㟛æ9Y«.`—Soè6î'ª¥iPß1—MU#%Zü¬¯¨¡!8!"…ÅcSþȤW¤×{êJâºÇQ£ˆ¼äiË 1͍îg^ˆvE±¦bHŠó;4}vm•€¡8I”÷¨ÖÀã€h=&¨Qü'Îå)iÌP;Ãö`ƒûâÝ9´õ}!¶Ù˜25¯•Тó÷ìqÑx\Ú%úð°)šñš‰'¢‚òIF]ÆïíÒ3ñÇ>wY ú° …’9&ȸ/Œ‰r†è¿û8ûo&´¨Êµù4–¦Ð@Æ3zè¬ü<–ÏStêWÖ™Ëuóõ¬ÿ‘šu×OH½ê•GŽ„7ó ²]Zq\d'gG†?î‡gˆ„y^Ü:ùBuŒ±†(šÝŸ“Ô­a!á…qãXwÄì’%³ðfÃcºd˜~<(¤Äð®7¿ü.5zÂ¥§Pÿ?î¤ÑÀ§ŽÒsD!QJr´9Îõ-^’ ‚vúÊ·ÍPÐ ÷‡Xà«ä-L1ÍZ„L¶l665±SAóðò5kݲP~¼‚Yã†Ë¤ €µ™?â‰eÿ¾8r ØßPË)]‚|v¨>Ä“v×]¢Ò ãz›’ú8mæÐQ·ËHOʱ¸&{­DÊÝц§œ¾òLë{*Ý÷Úß×+¶SL€t“8e£s„ä½V´F0±¦&Õη—ø¥µWpW&*òüg…P¦,Ë+\$E‰kJ\Ö3AúàÀ!O u8î|Ô{dRtí KQ#lŒª½ jwÃÒŽªu q(ëÀqëŒFnŽq€8õ…ÍØ()&¸7´G<ø˜™©>ØZçU/¨œï d%šƒ©¥",`°âtî T2x¯Ï#ãoC9ÿZßï„1ùUîy:I¾’o–ê¼ÈEjäP[ÁšDnSÀ ܵ¢ý|–'¸/WÆ·Ùmõ³é1ÿ=ò¨6‚xvVöÏ×¥âϪø¼͸IelÊ&á¡‘þüCm¤ÀîäÅÑ/öƪ [šÜĤ¯»Qm«¸%ÎÍVJF.íbÄ%‚#qüͪYÞi¼æmìŸ[.ƵAÞ¼a; OcýxÚhGã(ÀšocÍMëŸÍ:1ïÏèÛ¿h/#SõcôŠîJˆÇæÎÞ3[WîfPíIn‰n¦LÀj¢*ØV³ü.ñܽŸ2DzWfZDzH»¿vm ~1Ú ¨&G³«Ëpdr±;ªêeØ1ʧ?^-üðJ­ YŠÌôÒ3­å¤-ö%‰ò÷˜‹˜žAãÉa‚ëqîCœ:H\â X“•cÕ%²°û™– Yb§\Ó¾°y#ž^á*5e™$t½Ž €‡gýÖ·Oq»?Ò¼7_É:w÷@hÌC(¬}]ÒIáNrì.‘ 7dRRæùæL$Tg4y’ùWc³Wf¸!ÂÕ¯›j®Ð C¿6¬+îB¿ZTÕ©XÃhÇ1©'•-ôÞF0 ¿Q½sp™2Y·ºx.__aÒÉðã*K„wËžÅòÖ+0-êƒMújJcÁÍiá±ÙYQqÿOÈ6tËSý¤ ¦ÿ]²®,¨îÞ:ï¬=½^)Ò#÷.H)ít‘„É®JC5H‚-UNK~Wß㇣k–u;¡åf±õ=hs3>Mû‚¯÷¯.-7ÁÂæÛ§S‹¾u°¼àV+ÈŸÞådå |Ò/Aç.‰”Ouç~ ¦{SuÓ¥ã¯jmªúg\4¤åÞ g´ЗlBLúÀDj}õZ>èFeö‚Á׈§ z}â\åO¿uéJ¸y‡ Lìú¼ýÅõN~e¶ßa£¥J„äëõíydqçðІ=Xh±¢åà~o¬u'j® K'ƒ:—}F©F~ì?ƒñBþ–ËŽ}_aç W,Ñ¢uÎIy:þÜó~òd)ûQ4§ûUüÜñ RNAâ~*'¶zZlÎÉøˆ6.ØíÂU³á$ô”›ª`èÍÒˆ_¦1Ù(ñ¦8•iÔaRÛ+mâ?ŒåzÌtà‘¼¡¦êŸïœŸ‹"Iq›Öæ@²å“/"}ZõhÔüH Áp°\a\ìÃ7®Õì%Å9kȤ\§ÿ/sÎ⺠ùEzOú„1 T«B×åãûoYM2m’}ˆ´sOd)7ÐiJ?ÛÄútï¡íŒüEÔã£å[ú¤Â»Õ Ne´¯÷?ÃdLN 7¤ ÉÈYq$Œä¶-u³®T÷åøî£µŽ4ÚÌó@ÿ_g¾jÒå‰# ùâÐÕ<”“؃éù†Ö;£ÁÓÚß2¿ }N•ÐñÁ×X tMƒ&žgïÌýc‹²ðÖŽV„øTó[¦ZDTçÌD†Äþárfúa½ÑàêÜíHÀ|'βñÈÍÐûäCË6“Ї6Ibè$~ò7RŽŠÏßL‘]x tðkjØ)5bS²eÕ~®=t¦‡è´Íàáìž'¹íÈ3 I;¤bƒø”(7Ê™KÀ÷'ÓPdS;¨/ò­Š¢J%Eööè*ÈÙ_iÇ\Ý©ô‹âQ´I‡J(k±}lÝá ³ÙŒÈ¥©"DføÜ´t*ÒÔ»ûC.ܘq=oÓ©sEÅ>‘x²†ïJ}¹<£aðÌC|ÿã±Û±ŸzÕV¨ó5ß»_/ÝA~«Ì­G¸Ø‡Žyõð¤”ò‹Ì´M§ô{|tL1ŸtÍ'¶b↑«ÃŒË©³bÏñۯ݅†ÙDÿÅ||SçËHÝ_U<PVÍ»¹ôÛHâ²çg[ FÌY[UtL£¤ï›;–=PX)*ôÊI‡AGåÀ9Àà7›1ÑoÚÅÚis-&™ùmruŠh6ŒâˆHD’qèQÒŠ&êÙ=¢º®JGËN_Úìå” O¹´ì ¢¦ Ú½(]>½·ä\4ïßšÿï” ¿OEXéL?´àß§Œô”¡Õµi=¥âš;ù HMÛ£„9å ÒKnÑ:"QB¼+µÄÝêà¥ÊZ]Ñꡘ©mÀ¡„]Ý“~ù3pŸ_#Þã?`ɉ2/1Žä‹2é-²bÁˆæ@H<˜A^‘?H@ q?/«_çÀT Úä†Uçk/y ½ÀÙ7ö8¥á‚9cÞ7Rüðrô¿ø‡$æ¡Ì-9Qij憽‡Ÿo©ÿ©8åŒ@¯”au‚t—î*AiÏÊç{v5 =,µc½ü6ŠÊ|¢Ÿ·ôKã‚c8HUÅ 6C¾²Öšº–g>9?¹¤ åÅô»‚‹X¯47m´ZO^Ÿ„ö/÷Ï+Ø<€ÔmH$¥ôžBí­ü¯¼”±óŸ–ØÎñM?:<ß6]M e{ó”ÒN½ï¢Jx×m¾„L¾¨ÓÌ?f~dv3ÏxÏ«f’þT#“­Nð»]|÷¿àÍîŒÐJÏá¼etc pE4ë<ÙßìRJÌ8mLÁ#œÅçE¨"\bŸ‰‹ò•­ciF ~˜Fòà„òA…Ô†-jÔ’ #òw_´é× ”¦wœMª9Ì ÑãS0ôÛ-\zjÉ[Ž~~1½T~ÙA—ÝæåGݺ4@º‹òa‘‚º.ÀÿT9i½·’{þÌY©§1IºR¸ªR0¡g<&íUKÜaÖÞñ91U¾r 8³Nê)ÙáÀ …šÏ¾Á”õö²#¾¥¯ýÏï9+…›)V³Ý·Ž[oÀ÷— Ê ·Ø_èç96×Rg3˜ÝzZfO&ÕA³ &“m8ö·îœ@óËHHM?Œ2!ßµ¢.S[ókÇØ¦F·ðˆ[ûexÈéÀŽÅËÙ…±¦Ì =3Ø- ÓÙ¢¶Š±U dÌ2LÊ(mt^¶°…(éªÆÐXŒÊez¢üo!ä!í¹³¶"Ó ¶ðx Ù0? ST·».®-T°{œü+éß¹…F¯YÐ>Ò°x0Òw蚣‹‰ìI@P o¯>@ÎÌQÁ(ßú€ÑÖH+æøíá[[ +ï¯ß<4NäïTÅõ¯è“Ð%7 +ÐÑ!½®øØ³ÐÞµ'œM`(Š$¯“^c@ªå»N²¸.‘ÝËÄá“Á%7a= rsÀÊîºÙÜoêMšà_NÇ `4·«q·S+/Oô=Ñ " Î5O.-V”Éîè2޹P¯ç pð¬’M]gÊ,Í[ÝôˆQáùÇÒÏ-lC3>õ#˜”­@ª… · ÂcÐi¤üip•,óoj"+£«KС0®ÝžÞÕ6Ÿ$S®î<ü:.ôúîØš}@7by¢è+Ø-¹*ý'”{—6gˆ5eŠÁæb`¦Œ´øâœ9¤Ú¶ÁU6M ñN>‰´ï’>õoÌcƒ*'áŸ6 è €çÂ¥ƒßôd-(þqÕ7Pí{gÖ58G0Vµ9ôËW™øÝÝΞM†'½Yueêˆ6è1;„Û„Oèð“Ñaùò9š9A¯r×ÏÁ–éžì×±a.0_%" ö £ìy2I¼¤=FuCŒˆ®e*ž×¶¶}4Þ†(ïø‰òêŸ={Æt¯èoÑf[.m8 ¿:>»û=Å(&½§ÿÏå¹aŠíˆ(.š:Ål~úá¦ò›¤»q ¬ßâãôlô}z°}·%?GTCyG™/èñÛB©_íͪԉè(°<á~HÐû·—cµs•wãhN!%„« xÄa4ešv`¹ìW¯‚(~/Ôé¤óƒ¤Ñu–< À¨R(x÷j‡‹q© €þó|eð=ä ÊMVÒçè,n¾iÄ)ÓÀËóË‚>oËôhCt¾/±íšš8Ɖ c½è†e—¯òÃtÛ9.ˆî=RúP¡¤Xù«ieã.;+øx€æèCª¥\ùÖ>ã¬-8Öü¢Ç¶n u˜b<~¼+N>°ÖxH~dÂ8Hÿv›¤ïä|H2~³IÊûÞ™îâq:ŸšUêæCW)U  R¬4µ ¶Xþxe¬&‹þÖ?1¢ óú÷¨/$€Ì üg£çjeË…}« —MÈGg²_Bä)I [àH£' ÖŒ]ؘö~Å=£i®ò§ie1¸ l‡+ê£++è`L•€‘gB1‹ ¯?ÌPé°% ÐUç¼câì­•'ž9Nßöc%Mh`ÿœDB¶»|:ÙîîÖM/îý«óä[ü郼Êó(ª¤ÿâ²’Iw ©f,19?…€­jRü×®Ôf/+1°ïv0¬¸ }Ÿ© wçEqyóJ_Éüâ{ˆnù‡1>%ÛKÿjµ‘+yÄŠ-Šà9H2*Ì;î¼Ñr!¨§áRŒ椑±Ð:”•c(ã7àh > ±}¬š’¨h€×ÞUþ4R…ÇóO˜<z:ŸB ¹—£Ð6ÇDèÌ©¤ŠíÎ’ÒéܾÚ6¦Æ…¥ŒHÆià÷¨wA¯y(80¼¦Ü(§}r~pë·ÂÐDƒÔÊóÜÂ#/3 ÆeðZp¸cÛÀ@™—®/¸1•ça÷€xsXûYl‹L.,‹=-O³› íl…I}»THÑ€dJºMÅt†„G´ïô¾(°+àÔZL_~n¤Ÿ ìxvèèr’ßåQ”c¸p†ë—É$ò§÷£EfÜp?Ž®jêë§’ÇRä ädJí¨n?¿´s¢ÇË8î­¼ŒÉ^hÝF|íñûåÓFÈRÍè­ázÿ‚ÍbÛÎÅYþvtM0ë¹Ýà3èsêgŒ»FåÓ›0ÕŸuÅ-0‚YW\ƒþíG£Xý§ª6’¦ÕE": “YìÇzZe.ÒŠp¯wa1—e›>0ã9aþË@>FâyX¸ÙM~j_Û–e‹ÀëX E(¼ièäD´9Oyhdßh—NU=â6'ñ"(MY?ú¾g[ÕóÇ<áß6öêwh‡Ì38OköÂ:¿¶Õ€×É£Ú¸¾ùCŠ¥Ô^¾3ã+Sµ2íHö—¡ÄÛ9ÈÕ¸¨&’)OÊ'²M}·0å#21EÉéÝu±›P+¬ú¤8˜uÅN4Î!C> ¥—ë5´B‘B.ªDª¬‰ j"×_6kI=&0•~s~œZ·êqk~îÊÒZ¬fŠ1ÕUà,Å»h ~‘Eµ®u<ÊÞxpªf<½-–/ŸÇC!²ís™¥íù>†Ú†ìu8øiöËz%úàÉ«ä®GK+͵ü¶_‘„­Ú¦?‰œ÷ç±Í÷š¡±ðZЀÓ~Ç £¨¯ŽDý@Ò:<)•Ù–üFLrœÛ+ ”°k`J6HtǾëÝê¤ð …‰Ú±/²ò&î»@;tÆ:Õ( ñ¿Î˜WÝ.I3œ 7Ïh4ëÐ+™Ä¨.ˆ!˜¹ÚÓmù¹|¸ó÷¹ßq+¯?àewÒ߬N°´z8Ü þ’Ðw†9j²®Ok†”l¢ªåáã_LE>çª*Ýh :/†ÇÀ¢IRë;ÝC.bÞ¶%ºäwöýÉibdGúðo6òLòÊû²T}¬¹¾ª(dÆÛØÌµÚ¥>Ãk…;EÈœ)µ‹üñ'­±„Bmv~@XšBĹ$~ZÚªC` Øwhîw«z¸Zò7?f Ÿ3©ÂÓ‘ÞÅv¾Q“‹év÷¹ß²=æ ÈsioÇ߆Êlì/eeŠŠ¿i‰#2zb®ÍìkâßVI—B<… ÚÒa: &1™ºÃDæÇµ¯âý`)émª_‡î€¤ ™Ó2vÁÀÊ3 .°CâbwÚÝϬF•j^Éüù²ºeþiÔE)/¼Çý­•'9y¶¦;-Å›8HÕ´BýI©C““¬KEb­1¦N4U þ%=@†%/Ñþ„$ò~RÊý? ñ<åœí(!¼IÄ(Eç¼µæ]‘¯áMët"äî'?)‰«}Urëþч¹ 6÷ 8ª‡ª‚\”ºt¹Ž£öÂG?ëw«u6¸Ä—ŒÉO${8zsYVôÌsØB¹Ö]l”|hÒâg¿¿ºªλ}îÍ1 ¡§î¿QùÌyq«õ€™BUäó‚YªØ{4¬ÅÇ©÷"æ-ÊݵÒÔnB£Oa‚4{öÀuë«mU«6“AŸÞçˆÖa$êéðcÔÝxU{©¯|ÏÁš§ÙK|Ÿì¨#Œ–±ðr¶³—,6ÖãØMYC€,ï$EŸÇc¾ðøu\x@Æ‚¿Ç{£·´yo0 ­UÛÃ'Õ5<¢QúÀèš’Þi ôn‚Ž  G»œÊ˜µû‹Ô0ÆAžc‘aª“í ñD»¬£cìdÈ{0F¢Ê…AU_o[þà_öÕcFïs VaÜóJØúË•>¸«!üŒ†ü „Š}±b“ /àΛQãØÎvՊž`Žûaû²¹¯÷¨r ¿™,§wÜç› ûÅHæU×qniv$ˆåKŸ~Ôof÷”BU¼r42"u,Ò²J y]Ç@r?+ZÓE\QPna:XCŒ4Èh\f.Nôg'­íŸ]9~#¥±Ü-}= ;:í’ã•û…˜  ‹3:qÈmÛ‘ƒi9»X ×øÂíô ‹1À8‡Ç7¥n6p?ߊm™³áηK!ç[Ó,?©fdÿòÁÂÞ„ósÓÊdÔ¨)¿ ƒ|š1Ò“ÎvRVxM©ßéþ —?&Ó7:ºÞéî§•ûkV/ã¨Ý ’§QÿšÏTÂû¥!lú%“–ô „0\‡‹¸u½a›¢ÉˆoD–nû8Qø¡Öû:‰î–èß}DMÎþIúDì¶Èózÿ\p¬I~­©Èºæž–¯¼Ów–«G0à^œ‚w{ÞA=/ñpÿÃðN±U¶^¼oIרzyžÉÖ†·J§„Q£@Ù¯~c͆Ç7m­º8íÃ&‚ ù‚Á°o´„½„s¾ÆâfÏ–3’yA™6¹=0ÄOµ¹ý¹o×¼xì³fòò…°ØN#ocs@צÉboZ²ÊQJÞäm3Ù„Z2]ŠEJ.½…;¥º¿©oUJÂ@ äoVnx‡Å%{N8‡Eâb°Á0›° ™:f XŒoÅÈ'–ö¸ƒ2Ézu"i_Ÿ,í]¿ul.¿rå=Ùf¼ÿ ½M\“ŒÃÕxmZÁÍÍ í]õ·ü‘iÿéb€Î|bxæê E§ÁÍ^¢d˜Ë?|° ë²cfÝ…/›IgÁ<¨”,k4û†¢ßÁgôT:µ 6%|ï1ÙñòRÊÌ¡iVŒcX}0½ÁIþ|#6Y ï@‰BÅBèþ9q X]LdFÉé]Ê´‘Xý±‘á;huî&^8QùèGfãÓ¹¬ˆrOžCCaSr¬®ëÚžÛ`D7pá<.çAtªjÚÊú7(Å{îù^-ϸݛÜxo’›úö[Ÿ¯;œ;Êä*\ìo†¡¸ê-„ ÚuAÊ¥ÀXèÑ)’2XÆ“n·€_AõXå NÖÿ*Á:â ¤ úS$×Ð!ôÓU²¥Ž Ò—Þ§Û›õ~ Nl…„ý—ŸÝíÞéì 3S:¿:“–繟ՔbOyAŠ, ?DØÁ¯ê¶fUŒ5…¿ '?a;“CíêëØf8–s K¸4¶?;#µ9aÆ"¥My#OÉßÌ}.VB Àº©L9…§o'ÚF}L² †§È~òA~&M¯‰{ר†ñg"#Z98"˜Ûµ¼s×T¨X;Ž>:bË~|Û ç£r‰]ò¬¥rÀŸ¹^h&– .¢œÉ»¸>h¬ga0vRV–Ñ÷¼eI6Ïr/{&}càø>,Y榡·¼ÃqUƒ}÷ '%–û/p£jMÇÿ,vZšld:ћ٥`ñ·ç"™æ’úŽ-º}©(b½`å§u/€ýwëQ”Ø)pÁù}`\Kˬå(Ôj:>ßÙòªŒ»›]Ã.Ú–/䎘suÛÝ<)®*PÙZY£âÃf*°„§Úª« YJ±Šðí¤%Ëj^3½­X>‚r‘WªåB R/ ·ÐÁï?I›£ÁÁð¹›ädÅÒê«9‰Ê4<蜡{â5Å;×c»]Ö±µm ¦+jI¹&ó´—Ó4wý v0ÐÖsˆŽuP­b7@Ƚgv«hpñ‚ê»ö·¯€K<6ÿTÕD.îÅÖA…½Y•™6AW4)*Àé 8žŽÛ$ô˜?y‰‹cÙ©Ø',A Äm4ÔD7—ñ4,Ú!Ô&ÄW€| ¸A\*(‰g5‰y#¥ä!ËØdÁN‰ÆÃç@Þ°†çPiï’ÐÁSšnm9?…Øj¦î‰z:tYÅ,e»”ZV˜.KïíqÒ¨¶xrÑV ìÉ„pg¼%lö*,­¼ ¸!šVDȬŽîœA‰Ê:ßR]˜³0;]t*Ð\Eûô}D Q…Ù² ‹_âYžšÿ›ž™ÈÍ0:TJ©pSå¯8úæ²}šªz©ÆËPR…nä«öMØJ&2‹126*¢ò<6}ñ)¦ÝŠßåõØÐ»:`{>‡88p8çS`¿DÛºØÇjЕúèO 911¯gcµ!©ñn[â—·`Ýá­ÚäÙIר¦Zt$_Æ.‡¼ñáÖ0{³ûóعÖ˜‡+®›ž,\üQÖÝv7u‘•PØ[D©Êås‚F7͸ËõÝèM§Ežl³^¸Æh»TURMm‘Œa„[iæ^úù›•‹"7¶/ßVþjø)¦ BÞ™ü—e 0VØœƒÿ73PDÚãƒrݰw€hcÖ•e}ݯêêÀƒ(ÔÝÍy3Ïb®{2 ”ßb$•(>†”?ÑÌë6ä‡I¼5†à?ˆ¢ÁlÄoÝ<ïÎç+n]ñäÔQE†ÇjÇ×L%adòº÷h2òŠ×<´óöø™áP/$ßXjmµcŠxW¡Æq ç!‰€†Ê]ô#… Iúˆ>Ô¾d|h±DÌ«Ø!l׆=”Mg(Kb4‹ˆ½eøÉˆê 1I̹ôóVýó°6”x¼ÀW…Œ®ÙGˆü`* gî¨ÚQÒ>ù k'$3ßNßCN&¥½Aù1èvE}wÄÛQÓŒe#+¹›­«Äµý7wF÷§£©¹%±q /ì!Š:nªÖœ +²åš)+P6ê©×i§V´ªÊ©g£:g N‹<Ì%®ô¶¿]xzLh½eGrÆ5iÁf I:€ÀÀúm€ÀÀE-èç½²#l5ÆwKߢυ­Ò¬N1]ÓÕ{—hy­üh–Ñv;†Ñž(píͯ»Éº¾ ü„ØLwXÅûZÚý˜^\šÕð’á½z?f ËØ˜eVmÆÇn@až[¨Gà >Ÿeúĉ¼ê(*çÙP%!Ö÷_ˆqü>Ãiù´˜Ç íô’Ý#uÇ…ÏŽœýXÐðÈûàoPÓõwÍêªÐÏ0Þë85®zú”ø|xŸ7wk´­cL¾ßQÒXGxËù‘±"=ô5«k¨ hW±J,MtÆ7ÖkÉVÂ)ÜrÜÝÀû'Ÿ†®l'ŸÇ²¬§à;ü¹Ç¦tö ÖqSo‚š‡Ìí_hº”žˆëÀƒãIT˜BÊ@£ÓW1½og¯F+&ݺÙ"ÿÙú„˜·xAK}LeìcÛ¢•5Ó½Ÿ{ª!CåÐ^{;š, rÿÓøN/Ž’ë 8v׿ô>¤£¶ÞïNþ¤Hàm÷Ušd×±¯G³Bª~ÐHÚäþ÷¤BÒéÁýÈJ”ŒA‹Â·{“Û â&‡ûûçV ¡ÁþÌØû÷B_ɽ®m<¯Á`“V<ŠQ¹g¤ B‚ÂÄ+áó}^^ÒôÚ2o‰j*í F~À¸+i ¤ÉJÈMÖ+®`Ö/ðèdÆä6 íçŽô3ÒèJ™‡]fX«xðRI6@à\öÚ©¾ áÿ“”‚$|6¯ö¹¨G§ñ O²H.‹q‡#rkwžì(’½6ím‰C[…bqGÂÈfOþÚ¦½XüGÑî*²Êÿæ§ù3€þ°úBÛ&’õú-‚oÍ=ße—jÚ¿~ƒW„©“P‡nÆõê͈r'—•$Þ­ÏËZ2/e(ÃÍÚä®ìÍ‚%`·f… S¨ý¶Ö±4g’ ûÖ¼~Ìíà«KªñÖ? ê7æE$ƒoqÚÆûù?Î¥BdÉͰ۲ØnÆÎP%{‘m°þPÝj†¤m0SXµ·œB°{¶È 9ÙÝä-¯ióG×î*aH¡»ºî§,Àó×@Ƕ›²d§õeæ¦p¶8÷Zõ ZO×µŒ%3+ƒ–‘Iªß¯ðô„Zm2}FT/jËýŽ‹—1þ0ßÒèÍξ wRxš÷I Á¡ðŒ^ÞsÅHlûþZŸæ¦hî5“ðŒ*ê²1ˆfÙx¿°ˆMU XwÁ…}I*Ås;ôª€ð"]ån%‚6’ú^!0«Š¤Õ­­ßöknÜq Ü<Úmz>ˆ6f–§áí|¬d,·Ó÷rø¨,hÚuû !ÿÑî¼àžÏdËrSˆž"¹ÕÞ£$€á^U™x |`›À S YÔ•øÚÛc“Ùæ @†þ§‰ZÖQÖ öZ¿Cæ2 R{hI1þo0ê©bµ}&Ú•FŽaª<àžÅÉø%BÜñ¸€ä”"ŒF¿X€êõë–”^÷¨Wúì—»%s`s”DUGÊï©——Lù•lOêÜ{‰•eÄáåê=hµgúüä‡9ïS’ ÇBðmQ?0tgáåðìHØmHv¤ÝÞéZÐÙ £5Ýïµ°â0©¶y2¥80…ç]„NU@a”{‡:‘,¬é] P™w­ Ó¿c÷M§Ù™cfù}‰–ÓŸøÂ ·Jóј§¦— zw›ü_ø¢* Y@’;¶™é:½.°ûwï,mÄ}Ÿ­x økˆþŒïùÛרÐÇ44a”ÛØ¶QÝ©¼mmåRkBæcFë0"Ç›l3~P¿âÏ5å?KŠê™a* ¦&™Ë.tLºè3þ˜m?íÁ­;wï>SwÈ,ÎÙõñð˜N¼#ªÌ*ÝÃ!äôÆ£¾Í,}B½Épžš¦—À ©imIÕ±krœ')opMO‰¦ÇWÄÁ³Ün£2e-–ÿå¿:ÉÂÅÐÑLÂPmqmD­°vkøÍjm¹PÕ‚¥³Ürƒ?ÆWƒøAò Œ·‚*Z0"“b¿™¶ëy>1ŒóˆO,`²´ÒB*4ð‰‹5ÀYt€ž;A­¦òÖ̬ú¦]•ñ%ïß²R3%>UŽO¿Áh–Æ/ôå'›`ˆæ¯2°ýÜFÚǯ$j ¥ìâøö0i‰qÜøµÏd!‚Z4:»3v,£`¾¬Æ[‹Æ¤#ÀI÷xQCWM$`x®G2µð ŸÒ=E8Ѐ`Ê¿ª~ñîeh~)9ßsBÖà׋"ˆáÇšô&œ–ãÉ?ò²åklÀÁóîŸZ\*¿ºXžkeÑñ¸JF!ì9^ð9’rQ~µôÀž÷ýßòÑiÀc¦Wb!‡ø+¡'v_:٣𲘦ž‰Ž…‰Ýü¤‹técïX¼¨›žšqŽÁáMa7T¢÷¶LGdä}Š_Š#r]%§×žú:ËÆð½N‰ŠS÷ÇVŠsTœõ¹ÿÞ±û 1V->¾s¦)`øÕN–\M*~Gõuž;¹I×)xäUÄ8@Ê!S‡V·Ú×1¼MH鹌ZJÅ­­2ÀqÂÞ¢.~ÓòJ‡v¥@³ŒŸ3ÊCÌʱ¡T°ä¢Ë•¿ã¹‡”8Û”5¬ŒP¹YAxÝÿ!@²ÃOÏÓ/?£±¼¯Ñ‚Öûç‡ÿuuÖNê^­ôE¿úƹÀ÷KœÔqTgÇ4éfÜJ@3*Ò馸8µ[Å`"…Ôøœ¾ó(Ók=°FnS/Ž ^ܵ㸪K9 ‹‹ßç¹"Ž3åÌ—9íÚЭøªµ¹Ä¹ ~]¯î±Üx±¢V˜ÞB¢¡EZ9öCáÿ¬½LÕ{ ¾Þ\_¬b”`Öèc% ‡áŸ#e<&°çN|úÔ9ÖqnKSî>»a³KZ­Î È¡&çƒK@Ëü3_ ÞL5ȳÕ‚A¨òx5˜—¹õÅl‰z5C…ªëÈdíC\M¬³V–Ÿ :bvë#ˆJ´~J¬ ¾Ò,läÒ¨ˆ4Î F3X+65É@MÄ¢NešÃ(ªÆÆ,\ˆç©ÁÖstÞêž&µ? Ä²æ ½ëkjÚ­2ª+jÌO› 9D¯-øA¸gzþZ7¤Šo#‘c³ãDˆØn,|=a/áXÛDºëü —ŒÿÊ(%VYÊõCnN ª£åôÕ»7[R<טqBÊ\£‰óøç Õú<KÄ„víôÖ ­¶A•†)çÅÄë­­°‚î‰k{Ti)>¸b,“qmcÈHe±Kˆáö*E˜Ï÷ó€Dô-2þݳS8ÒòŠ‹ WŽHqhP_h°§—@EwògrŠ7 q+[ bซ-‡m‘ôxºµ€þ]¾¼ƒ(ÃÅ£DxkdtÜtCY.âw ˜‡ËfÔáÞvT®!³9_¢×¼’“Ë« zæ½q›"\ðeQ¼¿ÂëS~w_V¨â”0‹ðz…€ú¦Üóôé±U;Åffd¡êËd ÒOö(C!8ÊÅà/þº¹÷²ÐžÃÀµ/à¥ÍõU>˜5Ë}ÃÌÑá³mH¥ì¢•òéÛ1ï›æe2ÿÌã|Vβ¸cq•Ç@ñPOüjo Ã;£xÌÖ ÃY]– µV¥óØ|mš{s¸¥wT%´±ÙûAɆ)v¾Tt,©P{Ôq£ÝÄ£GÌ7»_’‡7 XëV‚VꎧkY]œs>”ƒ¸±O¬¾ÿ¤ûÌP»­ÁÿÍlŸ4/‰bèõ1f(xvƒ´ü™k5Ÿ‹Ï픳Î&9k”i[˜i9ÔY_,¤ª@š›±l¢Ç@ÙàÿÞ<£¬êÀ%•¥b}^&§Åê›…µIÛû2X¼×šB£Ï¿·6ÈÑaN§~03*F•D“ÎñZ€·(j½‰½w¬eHŒ^Ÿ~7 UØ6i.¥ÖŽ<2OR\uÊJvÆa§Ñeùÿ-ä:Ùëd;‹…í§ü=õùÃ[à ­îâ:yUïØÂ9ôZ©jÇg4}K‹ððC /Û5Ø’ÐÑéGG•Q=ôläàר·-ïbÎÔ¡i}µïy|?s.Sîò•(ˆyö(he¯=¥*UM—ónÙæ­?&ä]cVQ‘ö4UðÒV$óYv±–¤P…Z~J»XáO¾DMw–9r¼««}q¬ÔàóF±¹z¡7;O 6@ÿzhßU›'¸Î°fmjô1´´±€G‰½=U¤å\t(*I­8‰—ÌÅJ^¥OÈ/}–hJ¬ï˜¹ŽZ'°0D%¿?PB>¥þŒ ‰Áô³žMªôÞjxL`V€hxô”1§Ô:æz @íuœÚ£ì-ÄŠ<Ô‡…Fx¾=Fä–†0BÈ™ø,Vª´ü)¬7®v–~ýïnŠâ„‘\áþ8Ze✪ÊxÅôÂE›Ù2Àù±(¹±-Sâ¬r"js `x…Û¼¼Ê©»ò<2u±°¼iÔ½VfGhPFJ­;M—]toñ¦<Ó¢¨¥+¤Ó’Gï†} â]É7 úÄ„+ßš½uâžœ¢4ÍqÐR‡t´*ìŸåÊþ£n˜z¯[›«l…í“ØÝ)_²m¶óý3|hK®û-¹+Wöô´Cö"î«Xk梴öFímXõD¦‘Ödæµì;¨·ãeÙ*3ϸÖÚG6úwÑÓ–ËÃÈÍî¸Fi;:abjµPm³¯ª]S)^FÜ¡s8ÎLx7íÿ7Fušã¯œ®L‹„žôbßýïÆ“a_Ã{ÛALƒPÚÅp ‡ŸµÙë0 ûx(“8U1ßçÁùy0ª….÷öa*WÄidŸ—Ú_²Ž¤9Ú|¶Ç2…;Ý"Æsd™&ú Ëdû~‘ÛÍÓU ,½‹ùâcZ[ùaÊØÔ5Š˜…ÊiþaÙ¨“ÚwÊyDR“qpº”äw¼ÍëÚš`Ç|ŸQ¹—³r9ÎÞ@ó¢ yo’½ÊPú°ŽçÞ¯®vkðH 0i^ˆÏ.¿Ê`na¸ª+Õz¾ÏŒľìŒç„ù .=vcè,­öè ­áqvc0‘±xžU?¾¾èº•™s g.Òo‚tPQç9Ž64v¡q½T¶Ë€‰ø55›C|êǾƒ9Máw”y‡â¥×ÙØWHý‹OM¹2{Á!;µüõš!ihŽt±×vR¤¤%§²¥EPwFñÿO :Y\—%_‡-’~³Ø ÂG ûe+ñq•×2ÖT, ÿ7¿Ï§“QOÀNöRX¹Cé·?äÖ­å©}cU„¡”.£LÍõÌ\§{ÃÜ>;²=ì €Rfû/Y2úkÔyV<›'À w…`bcT@Š VÀÂøc}(2ëX·…ÞJ~×Ímîwò,$ÁiK;}Æ+) uO5Óû Å9äJ˜®ïP$ŒOª1kö·¨C¬ü“;  @"øKFÝOÎBUñ|¦uMÐb {ÜQñ%ØXÀŒÞ èXUJ½eG'ýýöŒã96Àð’Ͱ]Ú—‘Ì•ÉÝ{”±@îUÖ¸Â%Ó½WAÒ•Ë½ŽØ]j¶¾Hd}¿ÔLeÞG#iej¡jƒZ=›Ý/ôç –$‰Ùô´ j.ì§./qppŸ‘…Ù®Æ<·¿<£•¶ó8›Üö…Rs/ÀÝGyšT]º…Ù>$û‰<,ÒWÑ g{:°ê @Ì£Ù ·¿J€ÁsÂÕs€ä×»šàfaÁ5Ú©ö{¡‰aÿb‚ç¾eÑëÍþJo5X‡|-`ô ·ïéb }KKÇHŽ<5¸MLt…œß.¤ñùžaÐvŸh»u° 9±MåÏM±HÅ m ÑtÁ'“rYEòCƒýQ ®B"©ˆˆ©ïåM0·?Éûx5™ÎÝÈüýû§*°™hz€X¾¯1¯›lí:T¢NŒ‰Ú§Q^Zi8\Ìê9Q (ÚÍ:¤Ž½À€À¨Ì餠Ø×‹Ä*a4>µsñ(,>5—ÜN— ,D³?tÙø&ÝŸ¬ðDjeeG0o:9´ Tb(9Ùiö¿IØ$Cèù¬‚ЏäMwzòç„hbõä2{·¾»ŒÍ‡ÛPù㽪¬f Λ±çdÚXv)˜cLÔ-äLi×h¦Ѷ}>ôk¾4 –×éëI'ØéH¯¦ø+ƒ¨¼ßñJ5@VL MŽFžh Béî-uÛ±vÆTÍ\D¡­´çþOxá~ Šèˆ×·ÿ¼5`yòeßç\¤WШ¹rjO‡d©aY·÷ÐêÝ'En¢ñ»pW,ØõÈ£lùË7yÌ ±V‘Š3ì'«Ìo?s lB ·Ñ´ùR`ìCË$Þјè "ú@%>‰²wmo{h+Ýg{ÃlÆѬ´èhkn°Ç´ns!`[Cš°P´:*.òÓ¬óáþÂÖ6•6fUz£~Íé£á ëª ^H/¸šø‰òŒJN¼ž£ÃÊPã‡þغڣß<.Õ—ò!ñY6‹goGÍ.‘É䆊k˜0Ñ 3ˆ³œL†V%­†EÍ-Þø{œœsF÷!œÔü¼Ý³r3NÅýñp&›‘¿Þ¿â’Þ(¹†€W™“ÿfJžF?´Åß =ëA·FšR(eìjVì}(â®IÓ;30q(”Š!ŽÚ†U|q8½Âßi=çá’¹‘0ÖQ[ɆxîÝiˆ¶¡l­rõ…áE/ƒ\äP¬.h–9áÇžªa Ú™1,Œ0ò”ýÑgŠÓ\€¡¾…ÙNÃ:£.`¦.q†³îÕ¹äÌûà/¯æ³A|?ÿrnª±šÎy¥œ÷íts‚cF:*NP™1rðØ¬¢é•Š70Û2Tjï ¼VÜóèY·ÇÁrßPSmp[òmÎ’N¢KôxªeYrÿÌólE,?õÛV¤·Ñ[ŠÄwH9šâ½Ïº¢éÀѾþ¢F'tÆÛë« †¾)lâÖ&îÁ8²b„úÅ +g„¤ÃñÌSïÆ›>Ouº^„0Ú®†ÓŽÞ¨ÙÂ'´Ðûì(Ÿû&‰"#ì¶§ÍÊŒÁãþõ¿ ¼£,^:ÿN•(·ÑR,zD+K‹ Îà,bŽ­ŸCW×ÊW™câÁJw5œ©S0å8ߣі¨CÝÕ# n ºÊé×SíVqÙ[+ŽR•H'Xs|Üå¨)=Q,­_ŠC0!’ÄÊÕ"…jGg; „ÝzÇWV!é?{^ a&S+ÝQ¦¨ãüã íû†o·È·ìÚ®AaHbº:ÍÐél¥y«,û¢Ì•–®BЊIŸ®QäFÌÞK ôuy 2XÒGÍ6–iƒ©¼øh±wñÙ“Vƒ$£u÷/âôRLŠvNDF£Ûn ÝÞaÃXÛçãpУ؋¬ýìlIrR]Љû^æq§…Ñ%lagZ±pc=\9¨/+i¨ÿ<ƒÖ2!P £® ™+î^g‚áý"Íh1[—)òÛæ= UˆÕÏ0Vªg¬« K)£’÷CÕ»Ø?xt®n'ÞÊúê¡A`äøÒØK”ìñ,™PÉ@DŸO•kïÔ¢`ü"¨yÁ«;7ÛÖl_ûy+Jž…IS±éV៷àÿWÁc]NWŽaÌteª;Ç>eµõ'âèp’ÍjjÛR]W,@t±é-m À+’<ïÊmÞ EKû€äp ­è2 XÞMëFÄ­ !¿ãS2`yËOx;–/[¢[·Ò¤Ÿu˜0 ³2z’œ m[“: ˆ°åí7$qt ué«ßÕgtç¼;­XúÊs®K$$0ñŠÏ‡§v:•9:©Ï&’´cçšÁýaS·Ûæ’¬4 ñ÷Ñ%€ðƒéÐ3γ•ã™j¿¨?}Yí"Ñ<ýõ™~QÝ¡Í3«‘ -ÂZí/Á3ºk¯‡ONQ½ø-Þ$7%NÚe¯pòÎÚ@›)KÜ„Émk¤WÝÌ’µ"ñ‹Pÿ,5:Ì @ùa£ÄÚ7مѼ]ß²þEãh Ùdú·yrÈa®"+½ ¡Á„dŽiöMÒLNhBÁý %¶ýBª‰=ŽÌT‰;“› gÎüÈÕúÞíÏs~W”ÈõÅS7V^káYýš}.3˜ýÆkPM–¥õ]ì¯z£+“"äH^˜2Ä*T0Œ?}ê{>}üL#‡m“öš±aÅ_ñF𔞌ÚI,þhqúTV4»`Ä^mÐi,¨˜ÿ™²6 ŒKà –3ºÂÏ! ^C±¶ü•ej¾j§Á?1&7˜½§ò½5³”$ž#°-@¸í™6”½±,/pUŸFí4?(Ô¬!EåV™= Ê ‰IÕ_›Ç›|d+žFŠ`£ 3{ôßØÏ /^¸‘¢¡’UßÍJè¿"çÕhµÔðƺÅv`c¤p2Åߟ2ÿ×lÑF†T9“£{‘×çûÏ\™Š³Zµ»ë%m^b 3~¬>$kz€lÕÁ]è­31'Xm,{Ø^­/>héGé7e§³)L·Æšx9¹» ¥F*ñc’®!st‘ÕµXµ]Ÿ³ûÅR—¹])þÎJÑmñzW6røGB¡ÃÉßôbÒ}s_Öä¯ãéÿPħqª\¡Óíùp´ô`ón“+EÇíO..›€}Ê V…iOúîÜ!à¦à3}ºy¶B‰=v†î ·ê„ ºýµÌ<,w \ЂØÕ)9VllŽ£%‘¬ŸŠ B3fÌÎS_gkYO®éçôÂ9O>W¼œÀS"·S áœgbvÎÒV`%BZÉwS/O’dv:4X°³jý¨&×\¾ÙÄ9¸åè{7ýÆR¨êwšQ|M`@bQž˜’ÝÌ„Ÿ¾V;ý¼ï®ó¦ÕÀå8E2Îýð^ûgzO‘%#'BñU™Õ1¼¤®2Û@çyH¥†„­±£è':n-û„ø“ðá´"|‰4V0“Œ9ÝÁÀ[Ë6–#E<ŒôêÒö;#º@¼Ywôä©©K­U ‹ñÑ]?ýòô’åqUJ€ú1e¢9|¶fÖÔTWö¾îÐ 'Û9¬ÃËsñʨp vàà6=ÐO TX–x~'›xdaõré´ì°4ÆR"°·Pîß·Øœ7VZš w¬ -Mpnv)¢–FÔÓtãeóŽÂJ»‚ÜŸE#Ý,”wÛ$º±ß$¬´¥+Á8Û1n¶€3D%Ë>/ðñï´o la ¿^#4‹i$ÙØYOÔÅYlP{˜ ²Zud?{².Ñ|}*é,¿I‰Þý¬ò®6^n[Ã…Õä8oñèœ0*Ãd°r¦µsNvwA ÿÍw¢.é¯`[ˆ;õÔÂLÀç%oÝíÖ¡ £OëM)•>Är wíûÆGþ‹;bᆰ°ó>S`¼uŸ l Eã5at/÷÷r.´ŽÓÙ¹w(u”<á¨$"qÝç !¢mŠEE9ÝÜ8öÙæm)$¿2‚ñÙšVëÔü=ê–Ä_¾XæŒäy€˜.ÿÄ\Çþwe¸næg‰¤]vÙ8#ÀàEgI" ‚ n¾x—ÍœCß")¼0?ìFt3b¯‰ü&kWÙðö Y-ãL„Ê`´`¦Vƒ[W0ú8opJsS™â?íkëˆÂè0•{Uí»p©gûX&ÃP?,†ÈÒÛw{¬±ϲžW5d^€ŒJsí݉·…®ÌÓËF)Ö©»‰ §¹*¾z^çLÕŽâ>¶ÿÀ´-§¿PÔd{@B'þGV©ÁK“þ=GÎf£óÌXØ2.ªS)/ì»é·Õ«ÀF©)•c‘ÊU[ðÖ‚û—Ýò|R³2TœºGˆ•Q§äBn ’“o°„&$®Éåf“%kj®~cµ™ß7ÈÕSÇîÅÍbäk*D,½FÄú‘}:õ°Ë¯R`nãšî쎘ëyGÐõÁh— Ñ\Ý4ï±ahAõö¼òi ž§›”œ·­üøcö„ ãmßP&#.C¬äQŽ.a`ñqÆÆuUdO,mN,^Òì‘]2™`q/‡íêS å˜2ƒP³º›ºa€êÞ¡C`¢`ˆ†Ïù'R>ˆR‹ƒ‡Ë#¯ê˜hŸ2ÞCðÝüÐàý¬Ÿ™š”§v;+—¶f+/¹/\Ž)jý¯7¤zöÑNšoãG`£àªn­_¼¾e¡£W½Æ ×óŽ4ÝSÈ*}°À+Ýc;¡ DFE!Žlö ɪ\`nÕ 8Ê#b7-³ÔåtŒ:ÙyâBnö6öµ£(ó²N¸J§ÈÄheð½ŽÁ®w@ ©nký ×Dqª~V¹ùùgëaed$®æÇÇF–Ÿ¥ ƒ¨×¤ŸZ‘fɦ +ÖFˆZ¼Uü†óó _Ü¥Ç÷¦ØE—"`ÕïGò¡ßS–¶bPòÞ x¨¨ЉI…o^6­"øâ²Š¡ ÜÛRÁz‡ŽãÜ]ê½¶¨ú¦¶P"Z lþìêÿ3m<†5‘~=þ¥R…š"–PÙ6i’¶ ^ìR«ÙI"|Úÿi íÁÛ³ ¢,m +÷ŽŒãƒëÀ㈧M™ñ,­PÉ¥Q„t„êâ»óˆ(ëMîÔ÷ýÓa*õ’Ô7Š_AGxŠÌ%õιWb6{‡¥<Ûk §àÿÆæ—/g¡ý0õ±M®‚¬•Û ÙŽ£×ü0 ï´ÒÝtâû‚æzž`'kÝ'¨AyŠêj:$!%/“eªø%|-w1"£1¦‹°­OIõÀ¢u2û•H#˜½ÿê Uݺ/D¢{;âáˆÝå×ïðéß™€‡}Û&%-0)DDÞV§Wd…¼à?Рǀ“Ç©il¹[ ¿½¥B÷v»Z4Ñ¥éµAã]ŽŠ0Ão³/¢Êþo§áîÀ9 Ü$j•'töz%¦cSQ…"|5Ý‚u +÷1€JÿÛ9hq‰r+Y£qe< °í#)Åe~Òº4Xùð†–v…ïqAtÎf>o¤h§\ FýJbˆaP3ïpÑï ¯+5ðj/Š–îŸÝÔðº'ǘÄj5ç%Ñ!×Àün]qRhm k}'Mpàå튅hsé)dزQºçU9»^áeƒ*³ÌWÚäkUJžÕ}ˆ ¬éZCÞÑ2äZþ!£cÈÙZR“=™Êd9¶J }ÕZÝ2ì Hs±(·RI‰A+ åþ#OJ4U_r¸<»¹¾¬ùÜÄPuÇe4¼O.¡hL¨i úž%Î/oÇñp‹\´ç©{E$a‡8iæü¤¥uëV]€Ýj\þzê6&ÅdgJ餧ÃÂ2*æy–¼ÚÀ²‹·æ]þ›áyÛ©HPk‰øÃœ} ´=Ül¼·«Ÿ×1s™‰\<ú'Ù2d ÉGõX_!OøüXrïv¤ûsºÜ1ÿ›<ƺåü]’ªÊUéUÿ6kï}¡1E}íIx¨ ÓÜõ&Ô¦@\ sžÊ3q´Â=ÄG¢y+3¥.½5@4ËEp#ËÌt®Ÿ¹¢ ¸²]gœZ5¿¿TÔ*ŠaG‡|‘PŽ=8Âx×ý{êqKÌ#y´DÆ¿ÅsEtˆ¨ÝpÄ|@ȉ ‚i4>éßÕáÇ0ŽSMÝçŠÐ(o—]v¹ ³oªüÞ4ä›E‰'¾ ¡ÓÏŸû/bC[F|ÏÓ¢õæ5¤È÷£¶]˜ïð *q qEè xlFi†ˆƒ‘r9OÔI¯IG£ cvªùKãÅD£nY‚˱sÍTñt¡ì‘¤mÝÖqf‹)œy€cÃFeuË-ð XÖ½Dä7‚žh<äwÆÉ{ú düEòÆÞéVÎåâÁV©Þ}rÔÙã’@EŒ‘fµ»”|ฎHFù†-Î~ÖV¯âø'v0[,zÔª¥ô•ê=«,üº?¯^‰[çBB*ÊÝ<«$M ±Ãœ„Ì]§~Á@ªegÎlº+U°@ŽQÝr2R‡8¸nÒCds¸¸à?m¿èšíþ—5` jlÀÓ–®a\-™¶‚äÓèÜ=/5²ÄkÛÙeSñHxÅá´ 1õÌȘ×U:©–@ÙÅäÅÞÞTß ß ¾ðý¾ÇÞ)Ù­ì½p‹û‹Øþésëûƒwe–ÂÓhÛ!_0úÆhë×´³Ebaüù×ñeÊX¨˜”…"P9 ËõîŽDÖeU-pÕ}²âäˆ#žÄmvÛ8¬¸q©c;é”Ëp>Ù»ÜݰŠRÒò'Øpº™'fþÍ*S§ä÷‚Õ"I7)^ü&4ô„ Ñ÷{÷Qþ³î§K½'¤R´ì85Iôº‰”7†¯èpÛF¶âñ¨†±ò›ËÉqÔnô*çèSÇÞñå^s/6þç Ì”ÏiQµ?Ëÿ­;Ç&:¤[BGžß K¤èwÍ­DÒÅ*Jk“iýNëÓOÎ Ù¡ÃTŽpEüXꢊ‹tÆ@õ·r_Ì7ØçOçŠ]+OW}}újWÊz‘êÁ¡Õ:7!Ü=¾wª-ªn>TO¶Ñ÷Gq×î8æçÊ‚<¬EQ;*™°¥%,ewv¦ 'tÖ§KݾÕAÝšè· ýüî×A Œÿ¾$K«þ?cD‰cùø:ÊTú©þ-t‹ ü>sF­·ÌŠü`3L¾‘Ð!³­:þÿÜ;C ‚¨‡=Qj3‚e×°pê"u ¤zM´ÁÈn±ÄI°š¯h‚Iݵµï âO"üü/"¡« [U¬8™*eó7›hR>ð–òÀ2ãºäh?¨ùœ§ÊcTK„ )@·U÷Ö£ŸÏ‚ðpgú )·—›) `7iÊnm.GË‹·sì×ÞgÉ:ÿM·ÁHн‰S|¤™óvÕDëãKlž)`Ê™ –Ðò‡ËïIšž¹<§µ©úË vËWD«9bíiÖ&ö7_uŸððØ TWºålä–™I ªÙŸZèQ¢;æ=p·žXOÏ. Q“ž€©šké|®·#Ô³®:J3¯Yé?îDÏ»^F†9d‰®TÔ?é Ê89…¸èŸ¹—XHv™Ò<Ý’]%ßT7èéšA–šÁcmkMm( êºvE‘@Ôâ~IXL­ØÒýyçï5À îªN—PÞ4RŽO¦[ÒŽù?Çɯ;ú¼w,ðŸŒSò„&åäâvN÷ßpŒÇ™¢J‘‡òaÛÅþÃ[z\½öüÓ¸/Ê×§±ng˜Çš±ÞŸt) ,°^éØk#ÂRÁÌQ«‘ã¦zôZDÈõ‡Ê¶ËòÍÄ5CÞÀëË—U.º=$jéuË-׿r½úu«ÑPæ([·N§…âsíRl|VXU’E˙ϑÞGÏÁnÛ®ÞëÉåWk6ÛÞìnæP? η.ÒßÒB¶ÍºBêwÁY¡¼Yêͪµ‘gÃ.XDö"ÅOÖ„ºfÑ[F°`‚Z˜&CäÓB ðÇT&-9¬Ì®/c®CôÚ(4[„{iÙú¦¤a ˜(—„³mZ[Ñî§ÐÑ­‚“_zöÔœ¹Y»¨@¹Š¦xûr-»¢ÂàMá½$áfí<Û­ÓËkñÆ…ý˜dRó*ÿ²ñ{]k4q78<›D2¬¸GÙ@Ô´ðIo!ò¦‰Z—çqÀú¹—S¢©««bÔ±©IËbŸêØO“ᯑ–&Õˆ„Tñ~Yëjä>Ô1é¹íôp៟’ºv´•. úïýg&©mâœaÔÕ‹»‡æÀ¢^Ƚ«eÑÀžÙgW"ü%þ-³™fÓé°¿bÀlw¼õêSL— ³^«×Ä! Mqà" ¤_ëà&ǰ$ŽG«ôLWYÂfÇÁÈÊf³yß?ø‚y[o?þ>æÎì¡ILwëV[ø…øÒDžÊ‘!®m{Y°ïØs7왵¯~îàÖÁôÀ Éfgn™ÐÒßR&ŸéV‚ŨçêNÊèÈd}`ÇÝT‰^ÑDÙ§çKná| )ëŒ ó©±]2ÜÉD°“CrÀq|€~´ Ý|Ÿ¦™FÄCU…ŽÅÏUÛ?#ÊãÑd´—ÇÉÅì«u½:ÝÿÔôS¢å[ÕQÊ‹#[t<À¸»äSó!ñúìÈ7V8›aÕO¾T¬ææý:ÓgiôîªÛÍ!u&AZœ ž²¯Å~¥ù€ã~›[N÷ýy/X˜˜ÞRYÏS\Q”dF£ýt#Œ­¼$‘Ê3|<Ûáïax& ïÂF#¹eYë®&à==c¼]{ç8„˘‚ÑúŠ‚“-Œ¬1áò²Ï”ÛFÌ6ŸÍ?¬7˜FÅŸ¯ÆÐ{{ÛGIäÙçW³jåµÔ„v·.wå\Zkþ¯Œ’õ¬ ·i¦e«"Vi7juMcGÄñûv²~X–|`P\ÌV®ÛɶTc©òßÍ' ¾  G·¦ÜD¨f.$û"üÄ_fY|`oµ—V¹ŸÀ´Ò{½­@–æ]úGe*œHkª^²8²«¶L5²N[Mb±=öÒ³rÑÃx™kwG>sîÚ»}x8ö™!$à5ޢ慞Ûb…5’Ú0UH\‘Þ¸j³PÄrbe¬&¶Ûk~gM6°ÇH žÉU»Ë°*7‡6<0šŠ.E%Ü™P†cÛ·úqÓ8ƒ;ñì:ÈÎÀ㇪W=ÐKÛ¬ Ò0#á½7¤S©Æ¹ü}OòoWîɾ^‘ªÒ,[»£bö`Jƒª¸SùŬ%'r¶©- ø·o—ã® æÊQþYøÆ­­Ï=â¾g€W|láR»Ý×ÐçºV#åJÉ@úŠ8KŽzå#à6*é‹\÷S¶RëïZÓˆœ°¡oAìâ1hX2³¯Ãþ±ü<AÆhíÜ ŸN«K§AIÒ¼è§Ú‰Ö“ “t_i+÷ž}•ÚèþQ©üM­&»¨Å¨^ù.¯m,)} PHÞƒ½úà< qØ)›*ªzü/àKC«|¢ç Z^o2E'kS˜Ý«ÉÄ@\\«M^å ?|½ôýÓÄTÇËrÜâc`øÅv "á,@åqü_Å=5)’„Qþä3NGO8îÉY~—0 lÀö"+îóÊcQ„­¤Ì[\O]ø%ðs¡ms^¨ÎÜFS]! ó/_ŒâP bt YÐMj/Ô«©ƒUŸùÑóüs9ÊËg¼¢Þ”k>‚¿l#±HªÝ46D Þ‘•èUšÊ UD„êž{iè…‚`t Çxó~‘—¾W¥ÝÕK‡öª¯ÈWa4˜¶›wï/MY̤Þ;¾B-]„©Ü\¾vç¤Ë£&BPâ=KT8-Û?º†ÕÇå ¾ž)ùƒžáHnÖ4MC ‡"ÃNYv=2ƒú¶ší7*,¸«·M^ƒ+žÊzM`ùT sñ;¥>ëTÀ‰8lúEÿ&Ì›KP˜U«Þƒ7šÛHûÀCÛXó2…Ê3‡}?†ëíÂc@â+×Ä&[ªp4žmÞ1–µœJž1ž×)œ—¥¥žñó1vCá&ÅüL~Ÿ¸HVë}‡Ô´ÌŒL>ÕÞS²yÂÒÈ©–[¶X ïÆŠðÛZ!ýí-k:*ÖŽ dà¬NæŠ|{…àƒë¶g@8ÂCM­C-tžH¶×»ÊzW¡J4??Ë+óà ]r ˜ÍSHº¼ðl§Ø\w¸6-2 –›EsV¦Š ´(i¨™¿½lL~î&ùo¹ùFÎx4£Aóô´ôØî?U­VsÝ̱J&ÚjÕ(A[Â(±™Œ?¬†QQtN`‹PàkÀæ âº»Vþó š%³*V\úY,T¤(ǵJÑÄšcñð«g—Ò\Ø.Ìž±<°¨6·RÌÕSügyÙxøÌ †–ý¾&°Úaå½”;úÆ e–D,å²ÁEÝ÷/G}f¦“­ƒk²r'tRˆñ[Ñ­âbnl†÷ª°–‘ubÑNÛ"îBÖ­Q£82¹üSñÛþUo‡ÏÚŠR穱¬[¤Þz‚Iï¼þPéNnHï¾R¹ *ÊóuÁÉé0o“¾wó2,nè|i®ªr¨ÃN`˜o_Zj]zê²c‘«%(GE÷ô‚”9G>6Çr&ÆœêÀð&`«Œ}¨íËÈÔÎïÁÎÕ/Æ{éè¼}…î“ö®ô²_„ˆ¡m%â ®1ȲübÈ:IÀ«ô€/êâ§@›zÈ!¸=¾`Ò¾nŒTlb'™%–j…Ò´Ç@¿ûÿw„!¾¯ êWn—Ü2œ:ø¶3Ã(ŽK…n»ƒOÊ?ó 9“ ®Ï`¬?îòßâ9R®þü9æ÷˨jÐèM: 6W9–r˜¡bjÉí©“¾Y­ ÇŒñÔWV7Beø¸9“ßESñú^8ËžGM)ý–Y-«3˜<ÅÇï{»·àáÁ…$Ç–©J€'*ZŠs¡¨QISöpa^= ]šÍDýowñ¥å÷¤;Fë÷r®_ìfù;8ˆ‘á°l×ùdCg?kóÒ;D-:›Õ/s]k…›Â‡®^á×BÚÞsá³yÂëÊ ÌñÊ %«àÛUÅ€ HÅó@fõj] þv‹Ž.–æxLDç*ä]<{-ÎþŸ/Ÿ–Ô]SŠü•ˆï8d~Ó3ä„ä¯ÒG=aËN÷³Ž=õht2 ¤é ¸YÒ_ˆRKò5ŒhHÔ,S´fMïnàÑc êþë·µð÷ÓŠÞ™yʹ:¾tt?iÌñÀqKeÛ覦’Dj¹êjšk"¬¤®}¦¿¯ûoÄ Þlæ‚LÞÔCmLpÃoú‚tžHýR?ÄdÄ–Œ–öaÜ|J’™Y¦¶Õ!Écz":kœŸª„䉓ý(vd@ÂämWªSX q_½n Ÿ¶êv~ÁÝF+*ûçŒç÷Û” ú·‘´†BL„(”’ó¥·Òÿ¸\ûz~4îÒòó±+¹®v&zz˜ƒúbUb[/‚Ó¿õØ#ÑÞøR ÔÂf(ÒRvkJг/+Â;׫fwäðic¹Ù^ ÃŒÂØÝ‰ì þù-€Y*¨ÈFý¯eqýõ›ÊŸÔ4{½þ÷w’ÚòÔ=™éAUL+ÌÒjègî ]÷e¶âpsu ¯Áû’5ú|Lfn¿Àßc#49-cÚœJwŽ«}CöMÛ|õfŒÛF -Q½­ÊÒᆺ·„\WðWãöߟ:éšc€ ÀÑš‹¿ ÜEš°…V¼ßøæ0è~è–Šæe»Nl){>Ƕž”uZÚk³¡”R³CTii¥˜Ô‹²ÒãhxRpè |€ži¡[Yß­¹@.!ßÍ_îŽÈÊ?èõK³z¼Òu…rJ,`ÀƒÚ6ã%?öTï‚YE6wÆí²×¾Âš4H±Êš±D¤›l-bªÎ)¹ (ÏÉwd¨¨ÅmæW‚Uëæ Œ uöí­ook 3n`«Sk[~KŸ)0r‚P"H»Ây‰3Ì|wZï™W%׿0Yï¸9ÁáÉV¾4Ê®lä_ Áà{l_o{•£#‹>‡틟‹ÞkzS,³Gcí_ÚP¤Sk¾¡tñŽéí{¦Ï|tB‡œÍœäµ]﮵å‘ô¢B¯†„XrnŸbÿY©l#Ö©D׿§›j0î/`#O»×‚íg1§¸Ap¤#ø]¬puvžtìÞÔIR¦ÓœÿÛ£%ý eKøðù¦’Ø#) W* Ò—|¼†µ,\Ä„8­7i*”:íÎjÁ …_"…Ae£©ÿñÚ*ôR¯5ñ)X-ec¹Þ1ÊEƘ]µ`1)Å'rÿbãüµÎŸ¥+ò±™Æ/˜ö—s1@c"UT䕳¬íÖañ£˜]ÑÓNFçYô¤UH+—+2)™\­MÏD¾‰âu²>SEbiȳÚñh¦©»sôL䞾̚ËZM8–…ê’ïa`»{â|‘ÔÒ¼)uš• -ôv®ö©„¨5!PLËWC<ñ¤\‚àSþzí .¼±Õ1ñWžþ´Z¾TwO$>ൗ?HPÐûXÁ ±h•r¹ŒgïÊ÷œŠ¦çà^ÕÞåeWË‹ƒ™Ùo„ÊÓ“7¡:±ô»ôb:Î4ù Aå: ÚFiúšsøâÿì_'ÅPøÉ%g‰7žsS¬`aºéóA`m —U4¸AkTÀï@'óûöÆ<)ÎÏzP;ó/@˜³?ãÝ}=³›/[#r?93y“s;…• [T•HEÁçîkzim÷1E »Þå5¡šâöSéÔÁæ ç”q"!H—õÇz>pºˆbaæ5/d57'åkE RH »Éê7z,_Þðâv.F¡Á*‹æ'`ž*Þ6ÜÀôaìt~×c™+8ŒŠ§óR°wÊgÑ-mt0>Ìg‘Œ3nÑWбʳ-­³gk¢ .‡C¤…sÚ±¸Nþ(gÞ?ÛXµGkõ»¡mÐNOØÜ Ð/*[´Ø ±ÛN"´ºÃÌÏuµ4ouÕkÜ~éÕK!©ÕàûªBß=²Á@ÖጀWS1ÔÛËëDN=áÝÛ+¸†r¹œÂ±OÄü¢@Ämæ¶ÆôwuËÕž¾qû–ã¾[Õ¡†¿–Ô“¤àÞᜑ{ ‹¥Æµo©q+~`DÕ¯þå%üF½ù½Ê,6ù,±i°õ©¶ö›3$‚ÍU¢~ K¶wq,(¹ŸëYÌmZí5:¡[ªÎ»ý'€hÎÌüs¨N+öÙð±_‘A ò2èiÔ¡'GxÃ§È û¡,7DHi3õÕ/ƒ°0n”툓»¤û+ŽÞ5â]ñr¾NÝØN°”c{óÔËÀ©N>—"òŠÅˆlšúwÝÚDÚÕ6µàUyû ±àŠŸõ»+Ô†9ÊÒ"¤­>u3åN; m“¤5#ý­ã05iÐK&vª¹GµÀa<ÞÞ™~þ)ìªB¾I@‰±ŸŒ«Ü¨r}'ÑÑõ¥4GHôÖÙ±FP“IôÕÉDˆa0=ø>Íüð_—±«:çqŸÒGŽfЩH7Å ;¨º¢§P H56³Ž%f‚Æ=~6‚¤&6‹Èõ° è ³÷A;r™D‚íCÙñø«Ù/v<@¼*-­~HÅt[u«“àÔ&l áF8æ¯ö½æ°ã’hÑ¿?jÁfÞU°Võó‡~ás˜–[ÐD¬W9[WÙ­V°dfŒ§ýŸï=ªœN¿dï{uâ‚F¯ÂwÒ’ÕêCºãøã3™ÕGÑUºÇ-é”VÙ•‘0;°‡Aù2D.+ˆ ).•(á?UA›n«¸07x·I3µ±Ê³Ÿ&oTB맯f«{,‹àˆ:±É6¯ò÷ç¦YˆD|™HÆo}‚- ?D‚ñÅ—¸ qÚ½.¤"\õC ‰EìM%s¯Œ”<h¢Ü·ÖrHÏÓ"hw»˜6ËCÁÙ,3 ¨Ã‰2ð‹=’f¦§}‚m[5yü(Þæ¸a,7(Ãu±©ÈTº;7ZjK*Õ!Xø Yºh±CÜ4…¯|zŽbsszécxó4Äå­D¿sø†'X1lãœãå8,o†ìñ JºŠ!؃È;…Ôƒ=‡PèâánêO¬ì9M¹°R© _”gáûc’Ø•^Åú'V·3ºòÅÞàØô\­½õ"R=—,J*•à數F@KnTN Ç‚J°Ú¿!Š÷Ž®‰!ÿv‘€æ¸+ÇÍþ‰VºªCH§‡XªšE6Ôc6£}¿Ý jÐÎûLKÉúáX¿î%ü›Jö¿7èº:ÌÃeÚQµ¦2*ì ÛG Ë ¯'(í¢É4ó4þ ¤ò¹i—åvf 2-¦|õ#JçÆD”½ŒöÂN(µAï\Óë&h~×&%¨¼ñ«’¿µKT¨cÇÞXI?S¬¡Hä-f‘ú¸ð3öqµôª¼Ö 5\|LÕN¸»òR Å1pcŠA·æFi0‚bVäÀ%X7Êøšœ™‡º’ÄÄ3ôîàœžJبÜ:Ø´s{ö蟴ûǡ̂ºߨR7(ß8ñˆ#F±+]º'^Оãà¡#ÐÓ¡8X?gÙPú‚ ¸mOLöAl _nÊÐYîÎaø/{q[ÞVÔŽ ÃÂJ mT@g É{‰`?;œ#ó5:Òg·ÓLÖL–­·Ø± ÁŠo8’v:γ×)àŠ]pÞ¸ìÜoŠ>R“^´k‘8áÇ÷g®¹X½Y/`çê0¬˜I}„'мNVÕ<Õâã²CœÀÃbÒ*¡ âÏÅÚþÎÆzÜ|Æ€CF¼2 ðk{ T âÌ­§8‹=£i‡<†6î‹¡µ}dq\úµ1`öàÔIôp£0!žûŠiŽ£nùýþaÿY bëhœ (î.‰ã1¹RæL~øº> /¿ür$sÉ0éÕ10Ùé×qD ì`[1rþot;ètffËÚ¼¾´‹­‘ùbK“Úáõ å°þmÖ}kb"8T<¡_ ཪ´|-©#þÿK7[ûº>)>Ï Æ 5f<`§nv3ºÖᤣñ޳hÈ!ëG蜤[)h¢äÁ.a^Ëêã¡ÿk“äK½Ð¼¾t)q"w³Œ–ïí~Àîxɇâü; -`¤:¤Qò_ð*hI)î|Æ>¨PÊ}­¯ë·rÖÓ âæuÓGЧŽ{– XÄè-isê“âDžGë|—)GšhÁ+~»™Ò+µR%xÞÖ'bøw'ÐÞþôõ}H¬ yÙ>{2¤1Ô¤ØRØiL‚oØü»#–ÛF°”öM|ÃzÈ'ˆ¡æè×ñÛ[5ì¤Ûj~©ÞÝÎödìý’Jó„ ?•.Fš}+œ¢W”Ь=/w=œj÷31B"i‰™µœyÉÐÿŸ…œ²¹Ï­û'Á×ȬLÄf{³;陆&QânÓd-ý°©Ë/#K 8W•½ÏxV³_$±±r ÕHqBB Ij#w;y¡Ï°'BsKz/,5› ÍýÑ<‹ \&jÜ“‡½ÐØ Ó«@2Z3°qïõ fjn-©¥>¶¥ Á6¿ ÏÕ‘¸¢ðSµÅõ#s\™Ñü÷ åÓÞ.J0ªRJÁ¤© ÈaFc-œê¯òz>/8ÿ,˜Ï(Ü'28=Õ¾ÁÎýZg~ªÕ’–Š@ t§?©ÖiL/Ó /- æ_`ùëÑýší“ ‹å‚ª±ð±A€Í,ïÜñÿU´š$ÛºWÀ'É>­0dy9$þ•ÂæNÖ[ýlVÁ´ýØ"üöOìêÛß×Ëd›µé¬¦•<J 4«à7—xìù°m…Ž"g& ª±ü÷ –&/{E7'2MÌuøÃã9¼1ó*OÖiÞä-à£-jÌm÷¥O²æù!ž‹j#Ôêô•>Y(—Ô¶I^i<Ó²H@Y]HDÖÏGj¯3z!×ÛjMê_«Ïµ žÏ#=7¿€ÖÝÊŠ)5 ì(Ž(µá<Á²M®!^RÿvSÓ*éØè >eKªKªÐŠ< å§É3 Þ8+¬'zÛ›d}Ø`À±p­ ®¯ocôíë™BÀY²¶3胪-ø•çac1”{¥‘AŠÂWQË÷Ì&#rl½t?ÿvpïóÐ}i¬§ ìz T/Xb)‰L{"ኽ0ÈÞ­àŒ5þŸ‰Üš—Rx”V ,'há‹ÄFŸ&‘‹³ÅAhÛ¾8Ê,J7a®õXê¶Õé«ÿüÕØ@­­!¹A¤¨P—ä€K1í6\ ”Ec VdVOLª5¡1 BkéF.ÕÅ|÷å_˜þ ­‚ç61y*žHݯP_Úb ×zOÅQŠöf„HVw@ñ\ןLÌ&{˜c^6Q껡Uþ>Ñ'èÏ! MG5­Üo €&Sºá£îRÆQöÓ‘6oxõ÷¤×›8²*.ôÖ(E{^°„å›\™P/l(Ÿø·ÕDöêBŸ…˜ƒÔ Dj•<Æi›ÚNÞL…õRñàòURË™hIF{†ê<äš™Zn<³b.×­÷)'‡g'½,ýP»ÐÉL÷èÿ„cñ‘öàª(˜–jãºëÒÄÿJË?›ïòw¨:6ß6¦4¦Ù†UQ.êŽÖ-Å_½ÐeÎY¦j¡)k‹íO˜|âw7–Y¹K’2mg;ŠG“VC< ޶£.¨®3:Ž…ÌɳÇ%Ö àJ ¢æØé(2¤8+à–m]Öý”ŸR•$í­4fáY>:2_“®À¹ó,@ÄÊßU­á>µÂözWàÊõxã9„Ùjƒ½ÁØ·z‰Œ 8 ‡Tø4)¼ë¡«ª~¬ÃH,TG©ÁÇ.\ܾæxûéfè²8 cÉÍjQ˜OMcXÈïÖˆ™Hˆ¤Ä‚€fâg¢ó^TxE3dÉ3­…³˜/Óƒý%ôªq69t}ƒj*¡ºîñ¸È{aÂkMÂÒØYZúÎG‹õlK¢Üª“Ì£w¬6íÅ €ØZ׿¨Áoœ·(ÇXÜÁ´cmæ!=§ËE¡äÈ] ‡$[‚Ÿ6Y4½ÞÅCmѧ%‰±ÕšO¼óÝ@MmšI±¾–ÊÅ®"uüòkÅŒ‘,öc@ X÷–™ž½Àè5sPÓ#ëžlÆ! ¹Ý/þøÆ³s²=Õ®r’%BõuÏ:Ý÷£C³O–ǃ ¾sÇÝ8“VÒc™gÁZÈ@4I0ÆDSG̹ŠÛÔjìåoÿ¢¥?†Òâb·áåâ¶Ê.Ve§Ý;ç}Ò¼ñJ3"Ý—œÂŠb1ßY_Ä>í)Ì~ÅG´åßõvé†Mã«~m—D#³B 2Å#Á¬äŒàmi( Ç›¼ç Å« *2 ç-ž)·¼ùÊåH\óà‚dâ3¿Up+3ÌŽ\¦Tfÿþ‹P‹ÜœNÅ`è“€ÜàõîÔ%«"=aTÍŠ³ÁÇTƒ×õ# †Ù< ¶„âTži.g¸ä­—Ò-ªqÂ;š!ýä´Ñ3¿³Ç–ÉÞ¦ú•1‚;©5’ûa‚¸ÃøÇ†çɱ˚’{Œ“Å0§òàBÒl’¥¨ulÒµ—ÊÝ&èºï†wmGYö»×_ÓÙÉsfFkCo¥Œ<Å!>½²:˜©-d7Ç~J²H/3{â*[€ñ¹E§é»}sÃoôR‡¯½V”äº9‹äÖ`3ªq¦uà'¾±ÚJþ-X¼ä,îÁ·ý•Åø l¹ä,¥¦0ÁxKòÿP À#&´'à4¨ÁsSyÁv>ú:c!…îMôÂ,=×'p‚ø„ÆÉÌãÌ_„|¹ø­“1$&õDÚ=k¶¸­â¼ñä˜íý÷G ¶úˆ p_Çmß~x´’„À×€…ÿQ©ƒÛö»ÀÁ†,C5/Y[„”˜@4ºwú–ÀË ··¦în¼máCÓ¸ý~l Ï ÉJ¿Mò–Šñð=¡?ƒæÚ¨œÕÃÈĦ¨Öa¦¡´¿_› ®¦MXÉZ¤cÏ]–ag³ûã•Ô‘úô?ø‡Få÷?Q·«OÃÃÚì±Ï' “›j¶j©G¤çš `ýäVÓ`ÝC>`üÙVŸ%ööȰÙûƒÐâÂ51¾™<ÑÁ°2´5½ºŒÈØ2|ä4ü Ú>ŸÉ&,êå#Õ8ºÈ#züá5ÓÕÁ &°5¬X¥kj <Ä‘ i­- O{û“©µu—Å4¡*Y~•! Z MÒùù4~9ð’ Ò,r’“Ô`Lä &évqn‘(Oãg…kó’_+ûþ[1è(·áÿnŽ×Ô$q•ÜSÀFÔW×ÐõŠI<\ KOQù—ÿJÎa jÐm0-È^êÿ¸Ý ²4|ljy’å$-ΗŸk[Li}çôÊaÞ+3ýƒ÷ÄSë\ªã Üf‰PÒãñè>ð˜åæß…`YÇí8¬zIë›8Oœ<¯‡0?øòu…ˆHì‡éÆÉ€j]*h ×Þh»7U]ÛýüsZIQ—[“íFLÖˆîùg©GêRûîKo°ßÅ2p 6âZy^´Ýõú-:éR‡BU§²>÷»ÌýÕKiO4`Ÿ¨aÝÀëº~rmEƒÄÃ’e¹uâ¶(•Ú!ùeúFžÙ·¡iVºBuàÀw®©—”¯* X$‹~ϋñDâP¤ìv´k®~º æ`Ñ1â°IÞZw%šÏ•·lŸ§ï) w(Þñ %·þW1²¾‡‡\§W»â"öF¾}䌅³èA® ì²òÄù‹Pz¾ÖE*ö¾YêÆT½°Ñ7Øüàí» ¯hÏÞQi›TÛ¥›iz@kÝ7Þ f×E@AbÇ­3PÇùqÙðÛ.³üôzdÑ ßðdøÄ¬¬ŒI“´¶÷Þ¥Ô³m>[ƒû‘€…;™Ü=¬Xu,†Žh[¼I”%$Ÿ$¾À>?pzÉüŒöDt Š¸Ñ±“ãSQðK Dm`˜»#/a.h›‡daA<®¶Œ—9¥lÏÕ«foЉ3 ‰„ðŠöiæÇG®%µŠæ4qèëµçghÈCÛMNœ!(¤An¢Ñ‚:•g«$Ÿdx°R)ÛÙvð²Nìû ömˆžÕK$Ãú#åsuóUyü[ãkër2ÃØ[»×,|¯óm nŸ¾{ËÞ¬ð¶Šz'KIÞÏ—^ÎeÂìõ¸¢ºê~¾í@°+´á®Q7q¢^½èÂ{\%Òƒ‡³úùKsËŸ›¶Þ!Ã~É˦c ‹¥/ØÀí‰ÁiñÇX‹„,%¾Tž’ÓJB¨"åõn~ç"ûX…*ñuŠ«Ëòë•wA!j4‰ÿTžÅý°ŸjÕû×ãߨ/5í%k È2U¸àÍWrƒ~쀵ÚuÒÛÖ…ŽU¢ÊÀóîë`¦UJ,î0=KÓô–OîY,ŠÎÒªÒ’í"Èþòš‹x­bôm²î’í¨~+'"Ò`“Ï_¶|4[ƒØH@›Ðó¥d4>ý†gxG& 8T!…¯?ÀŠ£d ÞžÃÛVÊ‹²g¾F0™cYŒ˜óU›°ØN¼6ö6O®©ÀXée²r½£æô§¿ƒ·­î‹þÿG«Áœˆ°*Iù?.&áàˆL–šÝr²+ Zfô‹ÙYî¦#?4G3 ï÷ ‡Û½s±ƒyLz[! ©í\ò˜?œp?áÝæMAŠ öãÇÙ<´Hj#½š]ªÀœ+Ö‘7 ðHnË3 QvFov:ôõ:ë“pΚˆž6Z`N¯¤c®m‰rà¤ûìw"Ó·ÃK|¾š ŸÍá:g€þJá%Àÿq\œË¬õIn²ÅÉo™Y†L­áì¢ØQÜ×+go{¶£pžT×CV;.9"%cpçrŒÕòy»¾áëó¶+óÎÿŠvBìØè‹FC1Á´Þ/‰mêdè,¾WàOD?¦7Ûa©¡ï–c©wÜZI*ظÏwh—[Ê8•ü.œ×»a‰›3Kbc%^Þ׊R›®á_PxQÁ„§ž¨œøU3¹u!mÉÓróºÊ’åÑDGU½´c`fÓìB_ *1?öV‡ë.+Tý l55åŠ,ô»Ê,0Bòˆ¸½Õ‹Lë¶p¡3øá¹Œ®ý@»(6"ÿdÒÀ6ÐÀÛHé¹Ç›ïñ íGøÍmã¢i—ô“ô5M‹‘µE)tý^RRvxMùºb”kÆø#}i>ðô<—, T›k,ˆ†„™ò'FŒœŽ·ÎúÃÙÛbØÀ¿€Ÿ:ì>%{*eþÐi~î#™bÎÑðIí5“ à¡¶ÿ¾w¿LüYtX^­ä#Ÿ~Ç–Y¦€¸‹­Õ7C2@{מ΄Úª57•FÙ" 4|—Ó1á˜,¸í †Åi3ƒòä«âgßÎñ£,õتkeÌ̸ k}|¥GÇ¿¦Y×núÕ@•]P€!ƒä–À NÎ"Ë«ýù%è4­•¶üæ×1cðŽþY?wí!°ª !¾²A©~¥1/‰dŸ£DEª·âÕÈKÏ”lÄøãO?Šbö¯]¥ ˆ¡šUK 8` /`•¤FŒ †b{©—Ál)ˆï~Ý@!ÇÙ»ÌEÒ$Š”L)+Müí;VID¸ë‚ö Ø¡=½¢ÏŸ¤Ó%ß ñ”:Z¤‰Pe—¹¸lìq8¶øž¢¼RË\—•à “’"$¡³{v‡b /a"!ÙxªÝCÙoˆ=6þòuœ>í‘-JÐoŸLî0ø Š´Ö@ÁÙ˜¤k} *-xJ|ÑLJqëo6S!Îh °Â¹†êrçºüîW°S¨™ç& ‹e9œ ÁÝÔs=Ž_pMï>ß¯ŽŒ³EIåm’w(Gk}Gæ>Ô®ì‚û‡ŽµØºkSÕà¨1X³©ß-k8–/‰öE [¸Ç¸ñŽV µ¿5$‘šÂEÂLPÄ…°ÜoºÔ2ƒÞ7ýôU»Ù'Ч$!É‚¶üÍßrãPØNŽ_| †þkŸÍ ¾WöIg°™âÁè•”ø ÷8eé+òËU/®‚ƒ]š‹%ÁBJZV~°ƒ°.|9°6DÃv–Õ6]|¾fc4Ô^’ӻɽeãyŠ=G±]R‰Z‰Q#ñïuϸ`Øù»’%‹l<³p_;·¡ÃÅ D¢@µ „U}™\ñ6#ãcèyúÿ Ê1YKäoé½1hWÿ;íIögMj>*XØ$V‹áéw¹ sœË%6yt¡Îv–ë镪¶9'ŽŸ¦nm‡z·¦z $H«pã¼Ìiû¦œÔÎÁhó®p^P§ ¹Ç£ópN *˜àÔaC$³\öÅY±j7†Ø…™\|@ï"Ø;ØÌyDsœ/ùO«\Ÿ8ôIfuÊXjNÚ@¥QËhPѺ½Ëð«GCd¿•b¦SŽ˜fÅÀ†ê“îõʲ Nп¡ å5Õ>*ba^íƒd|ÚÛß‚2ú@ì £ Žà~H™ÃŸziìYÊŒ_ÿqN$H¯j4ðÁ|¬²´1.l¼É›Ïv¦8‘5¤¡s—’ò-,éw;5áï¡ä¿¸±Ë~;£‰‘ý,ëè¹*8#½®¯s¼¬Gë"e­5½óô± r«ÐiƒJ~;}*ô];.q3ÜŸ}#ÔCàù ÃmeÄ0Çô{Ä;a)BÏ=N\Æ=jD1# ´>0?7L¿­ÃÿICLQ çûQÀ Áœ9c‹È‹*‡«üu·ùû/(×*Ñ”¡°±7Ò5½“žî¾¦/ŸX#·ùú˜–ÔèÕûqëÂa³¨<ÜůJ>dïÌÌÍPu AJÑæ Ñ‘þ¡ˆv¿êþVèËDÀÛó P—´tÑ:[èÍwÕ%› tŸ9©”̬\ÁÐqfd·$ÈHÇÓ¼…MUVk¯ñîüÃ¥ƒìm=ͤÜï‹S bw­:EöšÐî7j8 [VgfŸÕ ^¼‘P¦çje´9^XÂ8E c}Óß°Zl–9ËË‘½¢‡W™tÏZ’S“ïé5Œ í´ìü¦éd)µöM57Nð´6Ø(zæÜ:Öðèé Ögb€²7v¥tT Å þÖWíy¡Íwî\Åðúb\älw:ê$úíy”¸Ž”©pÖAžÜ²Ñõ+é¡v×Å'² kÜWqíItÉæmBS0kËÝ™zMIu êÌpOªZÙd$€d.±ßNœƒ4 ÝV&MØÍ |Ïëè}xàšñêx6‚‚]EL§-sÄâ8¹è€^÷ÇÊÛɽò~ø£×îþ§“ž€ª66ÍÖ¸îV”D´o-Ÿ_üyÚ¤90ƒ‹þø%FMw&Q­PôK“Lè¹sY2;ûdI0Š›2ƒ£o€×ýÏ5øQ0ø6 Ò/eÕ]v„—Q·÷œÅN¡ø[<ø„‰þmùˆà‘gýÁßWÿ¹¹ŽÉñTwÔ~S®°$‚—9âìawêÔd”%Á×½) ‹}Y…àBõ øÙD6üXÆ;é¿ÊhþÄÆÒÛô•"bKÐämHgà ’8¾ò¶~›òZì=‡tÃòSpƒÞ+CNÊŒªF¼àüù)ÉMD®÷€’?TvP_ÓÅ~–é™H"¨F˜×c’3[.1¿ÛãeWpbŸFÑ‘ŠÎÄ'±Zq[FÎXÁ'Q£j‹Ýù©œ,ÜôRãz¥G†‰gf§ç‚Ɉ-õ=>o` ؾÀÀG| '7ܰ~©Ácq*áÁá°1×QX…õ uú°Ÿl{š „ÓDgUýÄIP §Ë¬=›ø!dÕ…/›Ÿ™BˆUjØ>ˆþÿ‘ÎÆjP©4 é6Çðå±½l×üOÀ~Áz2Èo°\ðUà’Ù˜1•F±Æ‡`M K&ëÎ…ÖK!ô3^ËÇ÷ÕÉêLç%5çµ ²L·x …s S1b¢ò(#R.Uªù¦Rpm„Nc›—PEÅ“†ŠíJ:µÐ>œá—7Dذ¦Tæ*‡Â=(/þ?*$ÃH]çÍÉ!žz [åz°|#žñ¤wÁ”£±¤«þq•fÙ!Z9Öt4çç™8[ë/b?×pÏÇMõë%ºfˆ…bº.ê&¥o;ˆ q°À »6¶õª0ÿºµ¦8ñ¼nQ‚Nlÿ»3VXšþjË“ ýl‹7>‡ÕÐB˜±…Y8>‰5{äR:8ÀF‹5ýͲur1«'/ªiÖlÏNÉì‘'Wíϸ¥¨a.Ï•#A«êÉI€¢‘úô$É4ç‹‘)—;PgŠd­ô/Û2¶ro­¬.ÀÏKÆ:Û¬…µ#I}½°@&¸i¼a æÊb:Œ?È2™5¯¶¯¯ R'Õ«CªÅæöjÅD±û³¯¡ûµw²•–¾,Z3œÒmëV5FâÒ¯s•¸! '©kímvÌL¡ÏM [DìG8E™¸e[u><î­ˆ‹‰-*¤Ê°¯Yv˜XKs,ãΚqÝÝ"WS2é<ãI¾¼\ØkÛ'˜½îSczÆ·´ÄÂgøßoª WÎ<®…DÙñ›íÔ¸bõöÏÇ¥.Ÿ`x‹$¥Azs+,Ê~©®·ñ[ÉÇ ,¤sQžv€%,UN¤¶qLJëW5  3¹Rš§@øà7‰H÷auôþœ%êPÍm0¾ËLfGÕ¼¬Š¢Zb¦ 9bÔåH™§Û~ïo›–·ÌšØmIg]÷‚à4óôÀC)ÈxÜ0ÄÝtïFR‰#)MnÌ “ÎD{*üàWƒ>Aš¼Þ‹ë%ƒ ræW¯fo œê;R®GîŽñ€î+HÂJÀ v6c?úË\:ÛØ3$¬EÔBÌXOÖê‘¶ësêøÑ€-ÑG[ÍŒñ°ö|£Öò׆ ”‹•îºÅ…ž±²——¾îŽ5ag™Ì÷F€}T@Ãï.¾þzH_Ñ-%­íÜ^åõ!€82f›>ÓÔˆø›ç~i2aõ?ÚO¾ðcƒ–+?ÐwÚªZ@Ñæ¸Cº‡ý“½<®*K¦“Щß•=š‘$2(Àh~E,Á’\@Ÿ¼¡%¹Š@½½¤Òþ'šSwa3®dy®Ü=à2@[Ñ]"¾§ Í$hžz–Vï/Ú»¥'fŸ:q`ìì­ \À`$jÍ\¿ Ж}á'¢á1$sæ[ܶM•ùB”‰%ö+Š0Öó´ÏQgä˜ò˔჎ /í±¤uñ’Üq1F¥ÙÏ›H}ÒoôsŠ×Ö"¯ô+Ç ½‰ù ÆåpP;Öwj#Ñÿ›ÁªV(‡èmód–˜A–+£“~ÓÔ€©Ž†Rv_¬œ….a©?RTůZT•ÓS˜¨>,ßßÿ96’"C ™•”ïÁÙàÕ™Ýë‰,-+ç]·uq+aYXÊ7Ðoæ!p÷þ« óØÃ‘¥ýßð]îé}^‰9@QÚ€Wþ÷,E¦ZɱÞù³ÉÁ${!±°²$Û« +—ÜÏéX†_ïÕ&L}o]0þ_°¹ ó.‡±u4HGçMö×{Ôz{êP/Ê5œµK.5hÖÏ/)ö‹JLczHúi=j“i> RTÒ〢•zÉÝÖ: mµ*P¶Ðy$íØ´wF*•),-û§kªÙC55Ù9-1'Ñ;bçÙÇ>1¾—ïŠD‚äzÀ²ӛ椩Ü#¦ò,ˆÐU…4¹Ù>Mú¸œ¨ÈVš¢Î†@È¿¼doY"ú¹K‘Æín  ›å“¹€žD­“‡u¼øNe~88ü¹(Î;b~Æ¢ÁPy:«@òßNjÓª&Ú+Me»±GXµÕŠ` /£yâÉÛ÷L×*w ^oî9Fx*Ô I¾á_(Ú† “÷Ä9>÷Áï†Bv%[Zjª†ï syˆÆð¦ öðú‚9¡•¬Cg°8ò­PÐëÛÿP;,/E‚±ú–ºþáDØJ\øcwïEHãüÕ‰d‘аéÛ( M—Ø“d`Â9ý6IÔ5‹ý¤œîk1Dž[ÃgâNöÐá”Tó¯KDÇ6¶¿ë8¢(wŠåè_Bß¼¯»¯;šúJ¨)9ßs„&g>hB0FòBˆœÎ»\ÔÈÈŒL8d*Uì= ‹f‹U?7XæÏšÄmU”Zéƒ,å}^üÚ•`J* ¬•RëqdݶiuÍ3äI æ´PðŒU9`‡…‡%º¨ÐþIàÀ÷%B§6UBèC”ï·lDg…œO×ô sí&Õ”çÉËÛqn«qœ¡®bw ;Ë!õ\§—½Ìføu‘|Mx®¿4czO¶ùõ–sðà{Û‘s(‹&=83×e‹PZ!‡j"WˆÑJå1Øš9+c…™€¿°kãHÉ©0¾ü-= Ø#VÖý6_Æ´liÒýu¾äÖ°q°–žà]ÐîY$*Þ-ûe†Ó!<´Ã˜zSy¼¾Ð­l7å2Pù00ËX ï˜1µþªŸèüÊÙ£aŒ!ˆ?±~©ò‰•~î?TeU L7û_¢\nÒ­Òþ­Ê7š æí¿E¾óÂp¦vqk_‚#´4Ô`”Ë5´X±,ò¨´+¨ù[©XHUÞ/n÷kÅyymÌ UG·øÇõÙê ‡6cC)f÷*Ú眔9}Ú¬å&ÄØö_¿˜~dà, È,-3î¹öS‡ ¦·T$€$ GUШ•YÌj›ÇZc\ï^ÛÓvÒß{šç7f9½RT¿.:RšÐ3ßß³7ý®:I^xV2]ù›¤}MÉ’Çõò~r¢›ê3Y´=ã\w4ó ùÑOôÓph¦·Á*ô•åõV˰˜}ÐÇÒø#h~®÷Ó)EBèk%ž&à°$¸Þ1qù6CgÛáuÓŒ+ }WÔé?Š™„cŠ?éá°”»Î`¤W{Ág†0üä¯ÁÄgd4GØØÔæ@7Ýð(´ôû«ÝîÕì cÊôa-ú¼â÷B:™<ÉéG† •ëÍk³4Öu—ñZFšÞÜŸ Fù¬MU¨˜·0ùÑê[l ±Ñyÿ ñâ» ŠþGæMsk÷2<@'Ñ&÷(ôÆ©v•—¢^g´î‡Q´]æ»DΦ†‚–•z·ªÌ7‰eÌuº®¤m4*^CÑn x ¨%“ÂÚng1ºÁÖ'E+·ÞPv îïEÇ…•ÛÇ3²¡™›Q ^4Œ>?nMï¿\üa@éçÃ*Mo-"}G²\¡“˵o5W ³óýÏþf‡ï‚â3±Û{Ìd@TbóÇàÆ¥åâŽø)Mµðr4öe 4Ä0“È6Žö  ¬C¢çý#hBÖB<ÏbÆñšŽÇ_ú[tÙ!1óúrû,äÆj„Ÿ¨kµ€¸ý!žµ‚w‰„wŒï,{tÍÚœ¼¸PZ–ÄœëÙCqõ8œULqW ã: +@‰Ž¢„˜¶ìô”Œ'è$jG“¯U…Ú‘ò?Q–î8L͆æl¿· "F”pYPV>!Ɖñ@åæÒ¦ÿÖV!Àç'a-%Ëσ2웳–ów4-¦¼ìƒ GÄYzŽ:K6¼¤Î/¼/oºAØ»‡@Ö‰bÙî_cŸ¡ Oë/±f¦¡ô4' þf ½Cë²· w¯&É…oC5ïj扸LþÙÁ¿žàÜw¸Ž~%r2æþäaKrÆ9.?zvkõŒ€ñ? œ¿¥ð™rÅAÁÿõ •ºµQi“ØFfLà£c.Leã·­Ý—‹­F(aë0öý ¦Îä=`‰¸î¸T­`‘þ€À´Nþ¦kA§çþ:UÈ/µýº±²]p' iæH°õôýN5[Ö"—Re¾™céÙÒ•¬Cgqh˜FIÇÙ›‰Nœ_j?ò+xÐÕàê-aÄ­Í}éúã¼ï•ï®4$ˆÇQõE_ë„~/ u|7:bÔĈÎ鉮·›rz°ðî8Ép²+nQ^zÓA¾öPY¤ÞHàßOÛ·i‘'ŸL  Gc.É]ú]½#[–+f[ µü½Px]òf¬ãØ’ÊÁˆëüÝòX—WW'Ÿ!¥²â~^`D5.!Øx2½N®‚»¸v yu¶â v0nØ£˜jÍÕƒ[ Î_£8˜u?¬rPH²Å˜¢[p·ìN¼9WÇ"5Ò”ðâ蟘…‰*ù‘Üc *N!ÏK{Ð¥Oå>Ü2R™ ô?L6¨f6/ö¤ ¤¦ÿCp¤ãÁ·21ÊÒ÷¬Œ¼“¾89¿SümÃþ¤¶–Ó(«þñáØ´·ÏQò8JЭ²ÚÏÊÙÅD+9×®…%C‚ج,£RQˆu«ª`á:„Ø~8¬ë§«Ò4´Àn˜O`Ÿ‡,ôÊ@­„µϦú=ˆðYˆ °à_`ÆMÖ™C·aÅŒ(Ö Á§Qý@ŸýJ ö˜ªL#I#™©UuäAA7üsñòÕ‹G¶ht^¸PV=¿» ¶’?ìÕS´¥Ôªãm«L~.nÕPU"3:;J1w0i?,äæSõN%Éi‘o¨îKÇ_(Üï¡P o>Qãÿa9p–—¾òs·ÎbfÊéî¦wÕœÜx-!zßðéóÉÜI‚±:ø´¢F€.k•ÏÔÐvDEØCRì.¡0`NîO£Pý[¡ƒYØ5/ë;Þµ‰ºŠìˆè}Ï}mè—Ø…B„Ütå4¾h‚3Šë›^¿JéÓÒ¥ž‘y|=ô4#Ç–`ø¨]s/â‹ÛÐbezFm¾Å^2­DX9•ؽÕÑŽ%tº¬C%758@ÊYA¦döQ½xM!t(òýHÅrËÓ–é”<)õÙjê¼¢gèêw8 †Ã¦(‡ÒYa~ö8öI2eÒèÔ›Q¬¿9b=1°Îìîu¯Órx,÷ê3•dI)´2I5ôtíËž€[0öh2‰§`ÈM*ë€/Â?«°åmf%¨Àq1$Â^zC ŽÅ¾jˆ%åè•©m)ŸEÀú`ø¥ºk6Á§´£exa*¶âH[ùVJÜî¤Ù I|8ã÷'óŸëËwùÏ™5¦äÓ¶¦ãÁ-NMU–똹¶–‘IL”—Çü•§Âœ`'(.¼O/‚>C+5IÝL¿éãžóލ¤ÿU±lýoiÆg#c¾L01Í™ÒN&L‚"(?þ÷ž!“Sªa"ŽÒn¨úä¯F{6z°™I*õßuW‡Ü—2èàÚæ D¹»a”C”è©!«V:£ׂ©’úØ)|õi1@*÷æ/¤‚irOÚßT²2¥ÉHü—GT8>AW!ý º{Sï#0BÌ/º!ôûmưß fÎ= ²!óÆÑ˜áeÊ®ÉýufR³HÂø©r4‡ ézš†£MÞ±–?3ª»mÚú‰±|ØdŽ Ô÷Σ2þÄÎûn7É1~Ê—ø« ]ƒ.Ïç^œjä]§EÝKáçºñ_áÊdµ‚IÉãûκFmíJ%hy½s›¸—0HŠþâµñSY1¾eÊ!úl˜œ+½d­ ¬—úºÊMѯßNÄ`‡D¶ŸŠ«úMˆIìkï²æ×¡=Õ¥a;=ÇôX Ä`wˆÞÚ³`C2êÀ¬@Cc²GÛüìÍWö1í@ºøûL"ü™cõ‡{œó.M^©d‰:O~®>fûñžFëAÌFÜéýÂè8B8\z;/:Qûƒ²GgPKí€UÙòìeHlBQ;ûz~4ùã½§»‚.½XÜ“äI£¯Dê¬0c°Jy!0 N­Á¬¥L\òE®ø°Ó0p‰³ùîrcP!«µSwy(Èú¥mIùBî5$Çzå-§…3^àßbr£Êß·=p1C‘&zÿAY#AîrJÉc^Ùö ûwµýÜLƒÊœßÞ)2³q‹Þ™ñ+bO7ëiüb¤@©ÕŒÄø˜|ß&rßbÎd³Ùz¡ÐtdM¾­ì=ÒH¦F–®±‹}•“àø §s·±ÖÃÚËŒù=ÀƒŒ«Þ«5 YÑYX*më B”`]îÃÄ_j6*ÒŠ”룃Zjé{é‰ýÞþTXjò@(g2ÕÎRþ6뇇ۚ¡|mm¼|Éeé}÷0!ƒýõ·f• ª!â–¡[`iÙ³mx·J_[Ðø]ÏžÏôý¸ˆÃ.áè*e„¦n­Ùœë²÷0¹¬£EE6ð®Ã{‚ "³.Œ³Éú£!VP÷BEk2ξDuêoCíàöuÇK LûØÀ7‹a%ù¨¡š\ø¥F­]©á•aɳ8,Óv *„D»ù¹a&1‚;œGå4[º!;=ö|½ô´s4úëý‹\'Á‘žª€Õ,èòåæû¿¦*¹±uó©½ÓÈ€[E¶É§y ©\Sðs•TÓI©‡!¦¼6÷®Ïª'Ïâõúkñ(3×ûöµéø{žôßA­¼¹×Nn!pï>)Ó@#¤Õ$ Ø•S`>; 1F±ºÆÊ~hÇIų•:©Zธ‰äú ¤/Ô8ªB2çR0ë´ÌBëfŒ9©žž«™>âÀº[¼Ç!4e½Cz™øX¥¾/Úo-^ý ~œ?€dS²Z×ËiãkRì¸âî;ãª^ýÁå³½šìýMÄCÙ„Ͼí³9Çà<Ã6ðoØŽ»•FL‘Pe©ç_|Pôhû¼ÆYâdøt”Cˇ L¦¢èPhæê#(Hëà/´J·doе/þǺâs}ÿM‡AJ8®Íë ƒ"«I?7âì¼QÁâ%¬d2›ýÕWˆ¶u‰xÎf~ìx1(uÄÂõmlASÈN[e ªðŸ.5€+cœ…‘PÊY®àú -F Úí‚Γ¤kçe ž'v‚ð@r6óðm»×þíð:Os_G°GQ Îöìw¾ÐÚÜYW< ŠýG9œ›ÔÌÂx¼€ ü²FÇé‘? øæ¡ô-`²øÅ ]›®~S›=UØü¯ÓØA”ùzK([1ëb{¶5YGhúÉ6x“9²íΰ øøví̳‹¨Hõ:U2ÙYSÓ—’ï·øsÃ𭲟)Л¤øuæà}“k ©^4Ì·«2k梔‹Ãî.V2ÆÓ” Ëãñ`«NårÖ<’žÛÛ=Ï%—O¹G˜ECƒ¢Óº–!Áìµèo«1ÁÍØ0q!Š]/“²ªZ˜bS®Õ†YçW˜•Œ$=ZkèÜ—ETß—]’yä©ѕȮΠOÖ´#k;­¨÷¹Àê?v“nüÁxyƒ™Ì1çÂ'1 ò p™|‘ΫçpÙÞ‡ÇR-E~àä¿!_,\ñý²¥OÑ—8å‰rVï“å¢A¨49!B9‘®Ç=ùiÕ öêmT“¡üÒ&yö«»G²|^ïYn5@[)NóF—¿«\Ý8Þþ*þ/2ý€ãþ’îmÿö‹×{óÄPÍ×ßÔdï¥Î™œèn´Ì5K3‚‚Š*_)`£õRˆj}ZΦ»Þäq€°fƒ~á«í@“>86úiôÓtWÅè!Mº„uÜnjµ >‰×ØGå†ë*MN z ]‡øãñhgót4Ó>_¾¥   (#“b¯§:gÞ¥èaœLÔöõVÊñ˜ñ;{rLš­üB®Um4¶€aÁlÓ403GÏ ·Xb)8HÅÔ&+³¿Ò‹Öb·`]lò‘§"Ö èñhý//ÂUÏî;³Û ò~Ü9*ÐÔÉE\9­öÿ±ÐÇ™l[ý'“­&\a·y±!ÝÞ¬´ÙÒò. ²WBœÖuµ5Í5Dj½î¦¸¡¬DÓ¤óåɹçˆûëÞpÉî*U«„ÉóÒG\¬ÂRœÿ¤Í²MQ+&è‚ÔÿaC»÷D¾}jºY ”°‘ƒ6ü^\§Îp¶&¼Ý36B‰FcL–4ŠÑ>÷*6?Ì¿·„Ò$ Ñq ˜À~pbTe¨íáØ ¿DPo›nô6Aò&n‡û±]¥ä±I!°Ü‡ÎpÙHá)ØÐsÒ (âÉõHúõ i&ÂmÛì,kQuNË«‡¬¨jÐIRH¸’Þ 4]rE ‡ÕJ\ËÒˆ®÷ÒÉÂ`«Šõ}¿ ®V]O~ãB1cìÂ&äi›õº¶LãJ*¥^þOÀ¥V:±¨Ò•s^A ûЯɆ™Àx šåJ”[«—üW÷‹Ø€?J*?Œ´¯þêè.™•Œô!Ó’þR7“¯J!Û–={ŠçT:,ŽWgÖˆd¾(!šçè‰Å9ããX—8cçK¡[h霮´Ô«\·ë£GSIa¶hSljRŠƒ|H‹(Šýz×ß!þ^|Äê<©€Y„OqW„ñ~f­çn­é› =_lý;;zfb %,Z?M  OˆÓ¹wÒ¤Ù„”š¼Ah=\í/¶»4ví§²ì0‡×ñ–Æù&*yàÄ¿éÀD]ï‚æ¥®|Móˆ·WI9Ú¨ €ÉçÏÍ5Êⱚ~öÜ{s¶<ëy@ŒÙM°ªØ&Àé1õ-VFsÍÓ>Á޾èV:‹eDØääI- 'K]“ñ­5Ö eÍ‚vs%¯#û¡¢ÿLdZß=¡Öl“mÿ‚‹¥ƒM•\6ÝbÅVAÃl±!V±ä>1n“ö©' ™‚wè‰u~ŸO™¿^ÕW³ÝÂ{€¹ô”ìÄDýÃl6mnYƧlßǪ…ð-rf½¬äV•è Dus‹B•½::¾¡ã¶ÐSS¦ÀðgòÏÓ5S Éh–D]W¶2 y6d-þmB?"Ñ'Ùý“’Ñøð}ügÎ},¬t”ÜF‰x¿'ú7fùÙä'ê°cóõç;ĹÓhuYxõô¯3icå½i½ñú;¿*ˆB‘ÒɶƒoFãØ¡¥jt6âDoÚ^ïé°`c•Œ-\Û9ŠrˆŠÐ&BK­Æw\%¨}_½ð5Ncì¡%àKÈ4jAÏT{·Kæ# £Ñ­ËÜË~Á™ÍQÅ(À•€emʲ5yᎫßl¦y±‘†yçãT¥B K•B,ËØC/¥`Aã Ìðñ·ËJÁûá!Eæ¾´ÕØÝYÕ4jë Eðàhì"]"3ñF+‚$Ag©)Ìø¸í—æ ;ÈtÙÄk³Ë•ü6õ‰M²ðUí¾õŠêºÄÕ ¢£;F tŒ"öïsþ²¬¿Ókÿ,AÛýŒ&ûlØD¨ÀPiÓź÷-âK~üOÍÙ¹ja2¶Sǯ0Œ‘Ñíæã_º*\ /n:>?ŠPŠ]0S#þ,1ˆv’õÙ]:ÈÐ1kjóÆc¢Ñ‹0®°†ji+RªGù~ {¹`Mñdµô­†½Uè` Ú”ÍkšÍûÓÌOeþÊ qO\ÉÊuŒQ`y¨Ý©’ýG¥Ú'œ÷kº …ÏyÉ\·u„ÿc®ÿj¿‘€áEÿ9Œý’4Zs™'ÍTûåέU!btŒí½jK•ãÅÊÖš‚Ô"*ÉX-Zñà«°»ç­VÙctB—¼ZDÉojzÖsÈ«è̾7¯«ª)¾yI¨0dTHRò ( É“ïÊåÄê)Ã™ŽžµGgËq¡÷v]Ù2Ö̶þØiP¬Ìpõ'WmvöñÚ]¬QU€×ÝiOÒû ìêâ²uà€œÌ“f¯çšHBgìh@Í Äš …Ý! }µ[ö›Ù{æ–p4*Xù›ð»¦Sæ~JøàÜŒ¸(áù LUp“†í —lP¯ûrÌô³W¡®¼ýUMÏ6ÖÈ„öÙàþ¦í{÷í’-!l&ÁÛ™±ˆëH\0!_ˆtE„„MvÒ”¯–Á,É—àÊŒw1Ùbwj±ûŠàW›Ø*Ê”\ ž%î +” 5âØ!ˆUƒðÊ‘ƒæë¹j ¥k &9@}ÿ•·èX«³ƒ‡qõeë½µV7 š/Ç1ï)BYàÌ‹Èٸܥ ¶M1âî³´Á7'/Ö”´°¶a ûª>\|qËTzM,öÐòM«,âÈÊv0ØV#Î>¨¨ hs~¸®Qãß³ŸÎ–bƒ…}' ªàAÒz ­·’6T¾ÇM<ƒÛÿ_yñÖcºª3ÖZˆ^EE½»_’^Û—J1å®îŒü#]©Íì:Þ®>É—qMæ¼áO ‡KgÝŠEí<• Ïí’@+7³6iÆŠzù Wç„‹Í•m’”9XP £ËE°Á¹cWÞY Î_!4M ƒc=Ž á>0½ÙšÿGŽ[!òl¼!¦ñ3 ÿÁ·²2ó–i1‚ FxúŽ”^áëˆ'=‹ÂfBMý&bƒ{è÷ăezÊ‚­áÀ½Ì²ž|O"Á´dâkp§¬òí¯e‰³õõ:4þÃZˆÈ´\¯û‚ûZÞjì~¯Â¶'ƒýñùDºHw±´±%B@f«ÖýëIµ6až1–ŸÀ#|x²ª¿ñöyÑ#Ä>Å? Ìtëï×è„°Qè¯~­úV~L÷ ¿°'Ø—C•ŒìûKdy$ƒÝE Ömý§øËÛzÚ‰wŸš^¾`¶Rc¼) ³ÌÔ4Ìf®›­6 ¤Žà”¤™5ª)„l«ã•Hoî„Cgsºª4³UøGµc{:qšYÇdÙÄÅ›ã9ü~â˜o©2~_ÚW{–ëæžÑÓÀªN¼ýª©ÿåjý¶ë˰¥;>æ6 k q.{¼ììé-«§äà²z{7‚ ¡ºíÇñÌÐk…ê?-¸e{Hws•…§Ñ’mÑ<›oŒòˆÞŒTkKªú@{þ5VÇ"Õ‚±a()‚Ë[!ÆÌ·øÇÅû¿³CbìI\SêL†˜ãZÓ}Äà]½>qCŸÛãfÒ¬E……öóôèÆ'“Ѩ þ÷! ›pÛ1rW“×Y–)s²oÙŽ åÛê ‚‰ÿlu8N^ZƒƒÐùŸTìG(³~ÓSˆ< ,ùŒ‘x™÷"†ËQ5ë%~„îñ­’„VçñŽŽµ¾Ø¢ýE4ž™]ÔR †æÇ™¬ pÒÚD/˜XäMüüiP†™gÞ¸KÖû›¦>]5‡ùÔW(>+Uõ>ÿ!ÙÔÄ‘rÞ:Bå?qìDzÁ| g¡‘ƒ’Í{Û@)q<S!áÛWœúóÀjöª×¦Ó)”#(øMT¢Ê¹nƒÿ¤q0ͳÄ쩇ÒcOÀ|gŠ½à —òßïOÉ·éÑÑ ê.©Ѹi 9ëØ¢ã+^z ZpO çv“-|6±IËÎõü,ÍaQòƒrµ½R0TÒÄyVÑ‹¸XŒŽ%¡ꪲ(Зßa÷¶¬ÈYR0Ûw±Ê5<Ãÿí› Cø·»*ðˆñ’êRž—‘–ŽԒ,œœ»×I”[4¥æM[²KÊ@´Ý‰wLAbAÑTÍ™sô^ÚFMU,ÊxaŠO«Qhw¹7`Õ·ê{[q¡ÿäá¡VÝðþ‰ÃCä¯Ü½œiÃ¥â¦þqÈ[k¸¢æùìQÜÕ¡V+­ëO>8TqLDŽßcôc,ÐAFòpïˆm\‘[‘;Wµ þ:åXå,̽xŽþгG,Þ>§á‹tLè$„ÎÑYú–¸íÉmHº¾˜Ðô8ÉmRç“\Þ¡ïžV OîGrHäs‘uõóeÚêØNö  !(ª0o-Ûü«ÿh¶Må¾u$û<Ê>ã‰ËûòÿÖì=¢ :4.C)-¼Sv3K [÷µ•z`5(L-K¢UÒîYŠµÓº¥·P”Ý‚§é‹´Ýsâ—i9&é|ã'{õˆ´‚ÜÈ=³Ou©°‡8=wÁjâl:ù¾1<Ö,ÿC¸þ)g&*æ²—"z ®ÕŽ_Á¬5å\J’ëÓñO÷#²f¢Yæk°•^í°?ó2ñ¯ˆËeÐv°:œ·ÅÔ iÙ¶9QäÃi-Vw: ÊæÒ_*> ƒ5›-ÀZD73h‹ÜUµ-R(º¨ÓÏõH¢&€ÐÇz«À0R^¤€ƒb®šÐÃgÇ´­¡æ \xlµï\͇µÅná´²+QúÑ_—L£hÿe¶°65Ý}Ú YtåñÌÕúVj¾×·+ ˧J6‹7ùp<ŽzWèô|R4W×Z*¥}‰ApTMßÅȉ-T|«œ× h>]ÁÌž ‹™)Bó]‘ªNY£ûÅë©e.¨£Mñ$à/ "œ#óyöõîqJIn‡Inë9 ÊP¢Oë+Ôð`#Ùå+Zko‡™þëyžÔ<‘,fñçY â5º"š«ú!qÊʮ[û¯(g&©*4ýP_kU4R÷OüdH˜€;(ÕS²~1ãÖ´ŒrDëˆ{žÌ¬ÏïFºã$ •œ 建qðeéµ0¹I#x$“i\ ×xÇ[- æìçÕZד÷2ÕÓ1iKÏÖÑ›¾K²F¿cÈÏÈé÷ÀzÑD+b!G¥/X˜0K*ÁPÎøþ¯uà·IçˆE•›sôùcÿ {°“cc¢ySüyª_ðSȬˆh€·ÏB¿°÷³„ šä{¨“ß7øwà_ÄÝ9x_ÌS„X‰ÏV2@eÓ1œ!4´c¢Ä‚¼is–jÄbºFqš'œ%KQýzÞºNÙµ$8î6¡IÑP“&æØQánlŠLûàFîê3ÍßL]â)y’æ2ïm iʯTͬn9égËä Ù稞ôoÁTwÉWYÄ h$/ظ‰Yõ˜‡é’øM#J&\·ÏàöP¼\ÅÎ8ð4R¥xUü_'Æ7gb“ÃclÂŽ!uÉïío ´„Þå@ùnÉà¶@C¸ë}¿¬wå`y.E¿QzUUœâ)bȽùôXë+«äøíç*Ç S¨ ¿÷´¢šß­±æ•ø©d;rÇ:âRµýO‚ÔY¨dBBZ 8GÈ’ŒRô»íÐÉ1 ‚R»bZ;“`(C}ìžDOp ­VCß>œ\Å‘3ÍpéDç¯ù7Éö W®:D’g*ÈH0é8KYWW=ÊSðõê•Õ¬eMƒ#2†.Õõû=G™+ %9ÂÜÅ"Pl¶Þ 6AÐÆbû‹pŽmu€ˆÎk#âl!>؃Á´Æy¦Ó0Ù^`õjÖð‘T:îíøvÎB‚G·”ÕøEr@ýÿ#eB¤}B›õˆQPIŸ§SL0Õ‹Q_0¢%åÌIÍ߸¸znÁP™Ñ¿dÖ²†šÊì ùR„ûø¥[]ƒ!Å€QÉ•†Úý¯©6†_‚å^„ôà‡®/u§H&.øíðÄKƒª(ª!dúµ”öþ“ŸÌ~ƒÅFÉž(6rDø›®:€¤6­”%N|¦&ìjhE¤e.zvãueR"NéÅu‚ZG·Má@Kuf²tf(nÙÏe³ãC¤U4€Å<hW.ð/7ƒÍj_ž9Æ¡»ùCŒuš\€9×ËÀ#¹D_kîßìÐoü+®À‚7¹•Ëd➦A¯(î€ñMàwÈ[‹ˆjü»}@‘KõiꜨ§Dã-Â'Õ´2²Ð’0ß2è²BïW¯‘´žû¶ÈÖhlüJ‡)ާ}aG\)3‡ã©ô–‘5df7ñÿ!Y7U3!øA3Ä ÆŸ£¨fZDN°k!}çÝ*7Wá¹þ§g9Á=Q¥VÌuÝ®;¢øÑw«ú\/÷E0†äJùôЇY*QÑ7=/÷EP‰ú >è)\ÇIîÀ„Zq…´]GYë1»\‡8\­EA $<[iɾˆÖe¢VO^°O£{gÛ¤#>Ã9îïÖÚ)oìßÓa:ùURÍ9‰¼j«¹´X¥àˆ)tä~öý†OS eYÚ¹G=i˜½Îç-wë­Õи\‰,(ûýŠèé?6x"<¹ (_¬r­›u³Ü|µÅ%“ÉG. ãþýâåjïwð¢5¾2¸œp %ÃhÞšýwc'oKß%o1nˆ¶ml°†í’ø~L\_ÓwXôÍx ¤Ô>Vû|ç©êóQgdN§Ðæ®É’BW‹ÃSdÛ5K9OlÚKPdDÔIþ¹8…^|<üü©Úäâ|Ùt ”éç+ˆ¯tYJ}[˜6­\Y¡çKNž—tC«ù2 §„w³hB87ëî¶p¼¶o±ÑVgLð“RÌŽÃõ+*BNé•XªdªnŒ|e ýjö_ûÊ\SHW)Äà6Âom{})°×9+Á}ûA¡jA =賈Läè7‡£,n¥ð@' ã#c–OƩ֣ •·¥¢F·åiã)ÛÔe ý‚!þ™6ý_¾I4Í6­Ûí/× ÜaöjˆÑ‚Z£câ8ÿMâ³Ï?žUó(ÖHuj;Vž&dUugeœ†$ሢ1ñ^ó?&ù59ú2š÷WT_i0a—)@!•z©Õ2H¿'yk;ÊúXåHOŸãϳ®O µ¢Ù×ó‘¼…SÅ»rË$y°¨Û\¼VÂƒËÆ¶çƒ ø2Š$ð¯Á &²uÉqtmT—À6ˆI.1¦Ý‘wLŒ±oÐki*!ÆZC‰ ÏIm–8èPTý‚ÛúG@ßér{ΙLÎmÏ®!e7ŽÂ{9-8XË/5¦ßÁð)3øÞ+Mož;A ð´ ¼£ üüEò±$ ç™#!-Ÿ£YÎì]áŠþo¦Ñåäai¯ ¯¶AÿÓ×.5´ã®¡ ,§)±±gÛ§¦*z޵•hÄ7ÁÂN_ý!b¹ƒz–ù'G„0?çe€šVc«˜Ø¢þù¯Š¨˜|;iÀ[^žrí%σ÷EXSmP@²©5¡úh~pÜ;Y.i;FZn¢ÑCžÞ-jë3Ù?º.Èì»AFÓ3~¼ü7P‘ÒC-ó”K¥òlÊ~“c¦ èv¾f/´$x›[;¨ß\¶1c]ËûÓ‰%÷ð®PFçÉb\m‚uô~nc'0ð¦‡ÊÞ$L•ȧ —‹÷D“‚ÓŽLž ˆ¼¢ ')v[Ôƒ`ûÍ*ÇOçƒÓ4-.µs‹“ ‹]ù¸§Ò3bñ©\^›#Abõþµ7ÿK)?õ¡½‰›‡õZ³Q’¢0É?xá7w:ÕÞE¦ðËtf„àÜ-[UæØ½v‰\^Ýžsæá´làŽïÖå'œ_*Xc¢ØVè–~¬åð=ÀºŸ"ê»æš L½ÛX˜¡6Z$—’s©RwÆžÆÊ3‚È'؆©\9ô¸I5@e…j¤ËŠ‚s–úPÖ™Ëuóõäàw2ùŸÑ]S²©¿g³Z*!K¾ÏJ0Ù£tçþcù):ˆ8Â2xÌݠܯá/µWVÕB>Š ò«¹îZž0}s;#›Õ•Tý0S„]„b5ÆåK'Œc´Ô ^åáà}¡aV1zWGÒx^ÀšÃ g?‘66Y¯ ³8ëÖñ¦\ ùåšräRç6®…tãÌy‹1)+ŠúhVý.Nµ¶å,h@Ê‘zž®àR†#\´Ž1‘%ì³ J¡4Ï‚F@4g¦Õ+#ÿæÐxì˜î"buÙ "4¦\µòn8˜Üm±«OÚÎŒÖÈ0·21²ú¦·ö–ÄÉ~7F2)ß<÷õ7"jö¸eqÿòäëX'àpúæ14À€²6A¦ò²òäÿø(}«Xó°Ô@ï.Æ'øUv¤nÄZ‰Çi04ñC8±0ã‹_Ás¶Qѧ/žý3Ä8’p1¯“Q¸Œ MËL‘nAQß}]µ­wLþ£:…õ‹”ólÄ}ô’¬âø¿#À˜k•xÝ;8æÊç\žß€ òT£'3Ï«:”6uGz-ßWY&#s'ü%lª:<ñ´`ÖšÅðží¾«Ò¥5‡?Ô¯WYû”Vч7ÊCj¶ Ct˜KŠJ»ipϹo°ôÄÿ'„%€©nßÌXœ¯ï!§­<Ýæ y'Œ.g Ž%vøóæÂɃH†¼Ã.Í›.ÿYPŸ’¢¡¢x²éìãv nA§›êu؈¿þ¬ÜÎKr+¬äúÓzãϦG¢F052óó0<ÌÛ3gò,S@Áp ÀÉ6©Â,/Ÿˆ·§„gŒ`ÿo!L>ËÜçª`}!n˜U† …ÌZàŠGU[oqyÖ¸£ðpÃ%`öÌQ˜¼Ô˜)˜ \Óƒ’0BOÞ³G²' Á¨¤:Û´±ÂçûÁ%rZ-ż™u07GÎF»™Bš$ðÕ1Œ–Bßo?sÎÄÁ W²¡<Ì‹“ÿ¥+@Ê Ž ×U £Ê˜h¸:×(L :‘" –Ú·ŸËk›ðB>rª<*2œuGîþóõÛ($š§þ_‹Ì¥~G¾†QDÇEEd™¹©iç4Y¸\ZžàhE;¢³ÆöDÇNC4PÅ#Ñbøæú>1 É=GÔˆŠüùÌÚ>XÏDÔGC2w-­TË ’Ji€ötƒöiÓX]°3¯]=¡v®ž”*µØ>Šˆàéq^ù{4‹àõköMÛÔò{¥EíòŠQlLq:S#uŸKÉŠù¬Z£ºÝ˜{ˆu®?åìÅ*)ÆÓνt¾ƒì×5uÔñCJð¸ˆ3C„[[³Ô[qÍ¢d ”ä{CÞ¥”8‚®b/ûÉ ê—37d¯ý²ÏU {íŒGøŸf Ó'dnØÍ ê»èÍ+-Ê4o1ìh³“£â çGD•óð&Dýlx!¹þNX`^M}ýjnXK(ø¨£’Ç ãÕ½VA^ÀF/ÒŽ¥/ÒÕ’8¦«¶Ûcì'P ¨Lשpö·)|Á¨òq-ò/$ñ„JÌØ±+=УA_Æ$ÇšmNÁ£õc‘‘øŒÞò×F'ùÖeí5$ù¤¨¢•¢ð{ÛV‘yd“ žêœ |K>pØ~¯•ެ~®iV`d{=º2^­î+®Ÿäè©ÿÖû ì X‡ çŸ^$¯°Ö6&A†¢t³nЃ*"Oþnšø\­¼“¯Õ«ž54tÊxŠWsî„©¯…]˼Wÿý¨Iñm–}Ì­‰š1õfÍÞ6Xªú®Ùm£3ý.‹ß¹o  AôÂé,. x.gŸÊa}ãý½%‰QHÀrÎ>¡·´ðùg–¨¢Ðþç*SÜò©Tàà!S&SÈŸ¬Œ¾©9q&Ï îÜ€kp¼’qµ›.Ÿ3Ç¥)3Q–BÜàpæ¤År_¼PE›6^¸†DLŠm\%¦V¡X ì;àËî”ò“09Z úüè`'Ÿ¨@š¢On5w!üU1«Ï%0!Y21§œýcñÚvâ0ËVØšGn†¥Kf›]•@È<Á ¶¹ä«o†¤åB½ëG9˜sü ÿ7mÜYÆÚ=¹jjæ¢æ?ÁÌFâëʳï¬Ûs´ÛYÉÙ×[€ûô ýtAüÉéÒ ÞvÀMûóœÈ%¹©ú2Tf}«·¾dÍ$;ãN:]hœFô @,®ä¢ê™MN>¦5)̱I5û%)€ÑÃvXP!÷E¶2/Ý‚ŽêoDÕ¸B©.´ØCójM »g=–Þ‚Þ s»DT¨ýâå‰%f·“íÞr©VwÔ˜¿2BÙó…ÞØ1C·Ôõ‘†4z?³=Üõ›y%šC |*X^Yñ­é(ÚåÏ*߄ޙ*;I@ZÍÚ#÷¾<úpÃz#¼ ¦Ó¬ Û++B?¶¢­zÜ{oBM>“R—Vd;z>ï•qw çu"‘T¾Í‹­©É«œÃ,3SJ8z èxßÓÇN`çA¯,ú:†!…Ð0/´ö Z'½qŽÑDq½1Aã÷H±ùXÚ‘Ü ÇBy_Mƒ²‡A¸æ“šªRPä/·5ìn^fÊ‚Þ)ÓÛ; „½æ4kY¹OÞBÂãÎ}òf›O‰zØ$w™\Ò3^aV½.(ÔTéQ­¿M³¾+Z£0eâî@Êg¶•ë7µ¹g‡)¾¢ž¤ÑBƒX´QÛ‚$é¯ú:’«ûâ|‰']Îé ¾'”·5ë?åB¹-=Ëþ˜> ô -Ñ(é°/|IòÇAÄ þ±ß„@Wä¾X _ì2×»ùd‘골|Ó_7Îû9е~˜ ã"Ž¥ÚÓî<¿¸•ùH$oƒuÏAPßû¿?s–ƒªuEZPÛ¼äÉÖ_ÖkhHTŸt–Xñ]GÀ// kŸ¯-[–‹äpìP·"è‰r*AåéYqÕ‹š 5•ü~Ÿiº£KnJ󋃄•Ì‹¯ ¶ñ l2V\Q”sEåP¦}AïhV¦¼EoŽ]‡TpÀjâ©óÐŒsp%‰ßpoLVm'(âÜh Ÿ¡“2a:%"q"O×¢k¬ü· À¬\¢„–üY°Ìo\{¿¤‹,|_R'Ú²œ1§¦6>¬ÝÑÖ÷E[”w›¦¢J"Š W¸çÓϲ²ûýµì„ l!4p=­ËéCáœ(g¾úÝŒk*xxÿDBºBw¬˜UÆÞe_/ó¶PÁÅüzøHÍ è,H-f=]š+¬iW)uÝ[L9ï`ÁÕ“Øóô¤8þŒCÄþq4ê€× 6 å— ­{ŠY'3sqyêq̈ò¥V×À' yÚ<Ù†\ùu`Å2^$nÛ6fV­š‰§ ˆnc÷ƒY>5 ôn¯º>«o¸jÊÔIŽÀÔÖU{ìiè}´˜ZˆýlY¾ábNNç!Oº²Íö]HH4ɘÈ\n Â0ê6õ„”gmò6³ãÞ“ï¨Ù*²h¯—ªNçgƒˆÎdç7ë~  Óâ6t†?ÅðcÔ¶…ÄÊ­|/á{¿èj(Ä+Ë£þÓòûü~ÍÛ^Ø×øw¶ñ?û{mR0}¡ Ra¼;™'îùºõû WË]âäj-hÈ%ï~Ó!›W9¦FpÀ¨è »3cWÍ"‰”«bâÚoM’̲ m' n¹óJá´]@[²Ø9G;µÏ¸{ñ¸ m·C söp_2Š­Kû¶}/ÀÒÑØYļàqȺ&oеªpã¦úRƒ¾Þ-é BÄtû‘Á ‘¹”§Å7´÷SÔ·2*Ϥ=‡¨ð=¸=Ýe }¬s,Ûb²N·»êT¹è×y¤0ix  ò €\› Œ1G}:6Æ—Zý è”`¤Á#ç j1ÒÊ ¥iãº-kÚÁ /5uºt~šï‘;é 7Ë"†Ëy‘ƒP0ŠrŸ™'@È:ý ½(¶…%;K:ä†MÍÑö‡ :.ÃÚ]S¸ÚÉ+’V´§ÜQb2&y;0v‚nõŽ'ƒ××oûôÇÍ­¦ @*ÒÍ ¦±¨:{ï bÜoë)êrüÇe˜MöBƒØ…ëco¡ÉðÃiWù××S îÔ1UµLÛ^9ø×K5$Úε— ©"ƒç¹70³&£¦-Á¼<[¸”J&ïYí–ç<ìV®Â9oüæ”U{£„Û­~™ÄI¢Ž3¼nÒm(õu¹ÍçÅw¹óî`ξ³Î/fSz&¹:‡âÛºÃJèŒ\ P$>k‘£|˜‘&*òDóÖöëÍiií%£y¯€µï –7d+\L±æV«þnއÁë÷Íí\S€êÁ;óþï]è^áIâ|l«EúL…±pQÿ>R Xš=М7CæZ=$HÃÛ<]­”Ô£²‰´ÿÇkDÙ-±(²‡üÕ8¶D”+k—QÎÖHà”$ƒxðÆ€ã§cD21ÿ±z¥ïî”e!wôŠÂ.ñdƒiz¡xNmkêÏ÷ØæK,î‹ Å¡4Æc¾wNÛ'Ó‚kåâç¨åæ`éwÔöØUù ÙÐ ¿Eœ?ÔK›Ö ­~ú8kŠxL–ö€m˜ÿN“¥|g×µ5ÿïÍ\Œ…l¦ð9ÿvÆeš¨äÖ¿t»/†d+* dëo%O‡³,¯û_Ò QÄuGkRVb?1wcìË" •9¡1H"M^LÔ'sEî¶F%ÀŽdf"ÉéC©ø¢$?Ú:¯©´jz9 gJNöÖ9‰aÉ‚ù.Rpb5ŸD¥%¶i"1ÿIµ¤rÛ G‹ÊÓyWNà¸þÛ±‚kP±R߃•aj—JÚ;³‰àŒBv`:O$ŠB0ÇM V_³I)ù‘01ˆS—8±sUµÎM¼såÚEœ ƒŒÕ±ù8»=bñ¡5Ë\ö”÷AÊWoÒl=_¸ÞË¥éä~i€àªÓ¢hZ‚TØ‚ú$AD` #³®Ú_±®ªªí=®±¡” çÖ«Oߘ|ß.ý%ÉöíOk$è ½(+ ¶}åä|D(›v×¢îŽHÔ1ÁòžýÔ;¯rèµËþcý¿Œì™>ŸÏR@ý`Á)“é‰ê®™Ò:a4¦¥K“á)û)‰EÏåÜ+Ÿ0ŒOää\Áoÿ÷¶]ϰ¥Ä8î\EâŠ{ž\LxŤŠA0®6‹Œ‹ ðó²µ·ŽØ%À×3;þ*\À/g»ã Ÿåüˆ¥1 Æî&Å¯í¨–6X¹øcÿvš B¥ý¾bNjÏ ÓyÈCLtÕö-aš1>ÌÂÒØ3ä( ãö²ˆ–3åéú¹Ò¡fR A?´^œ&ЩüE¶é*¨  J¯H‡0i#;~sTw½Š ‰‰5ņ‹Ç¶rЇÑ(ýA¥j~N&ÄzJÄô‚I»ë Kn¿ª5g\ã¯6ÑžägìŠífgÛa‘?”BÝ”crß!0k …ž6ºpªª‚Ãb%{ÿKÆRÇ,+aðK’GÙ´]Šúe;hO>;ÎÍáAèH¥œ°Ì…`K”x¸Z¢yFí¿Á¼©í,Å´‘Û×,6[ Y´7¡:.ƒ;t$CFø«Æîü‰%÷Dd;œ40[)ÚiÖ;¦rzÏ‚€¸é,}ÝWÉ;Òï¥L|7bæö™’BˆÐOW;¼çÏèPMg\´~\I*ø¬Ä³HKÜS?Å>áÖæU‰¥~f*&&}èê@àeÉm ’¿=#2hCîð "°5‚­¥“Ho‰jK¤ø±9ëÛp[Jãâw_Šiï 2yÖ2y[úÔÇK2ÜÁ°6³^‘Ý«7rEE¤BB’‰¦°¡†9<‡Š¬‰»ª¬]¨ëêöÆŠlq>Y·l¬,Ÿ’MÅ(͇+ñÑŸôY#4ÓP0¶3ar98ó9©sÇÝÇ®n€í(*õ÷ŠÂ;:è¯t68Q6OŸ,fâ$nÇ …¥ϑ…vD¡g5²¹ÍíS7gäê8Éé#Ô#Ú—ëþ(Ä?LjՔåêœ.ÛÏ,™Q‡×U3;nS!Ö£3˜‰Ú “+k{ ‘´‘ÍäuÕ¡Oú]ç°Ý6-‰)¢t­‡ñŒöÆ›‡¦´].˺¾ï=kwçÏÙ¥^š|HRþ—Ï]vŒG ³¿«Ø¦Øy-¾vÑoL#óo´Âñ[8€Ü‘‹ìjß@úÜ~™Ì¼®«ýtH&R§X½_²¯),·*”¯Ä3h.ëI-²=‹°ÍUeV¤p‰ 8ÂBˆ>Ƙ´¥~UªÝêuÆÐQD”¢¥É鱬Ì%Ê{.X«ïÄøš©«ŒÐ Ò=A¥ÔóOo +xXo­ñA–+­YŒ„(]H|LÚèyÁ6Lñv#0@¿½@1 à<ÍpÎI-ð’óÅIéòÞé¶qãY÷¹×w` áòòJ¹óì“ÓW"Ú¼ܼ0í)—Y ÜT¹% ÀÔÃm8äT¥yœ¬÷+.é'â>¼¾Jg–„~ƒ'þâ­l–±þ¾rœfn’|¬V/mÓŒÊk•Äm–åxD‘Ô/?¢9—%ŒC\‘\Ì~H;pIü#Íï€qëÚh6k—ð9ƒõìR++ä‡'b,\U…ZÁ»m|O@Qr¡ü×c,­H!õu¨Ä Zr‚!v’^L­ ˆCpçß9€$päʸöL0Ú é™éív’°‹ÿü*Ïâ¥;Î8e¾oIgjîCçBA>Þ4‚õ¦ i8!¢®§¸œ>k ;®î„ˆºW4cÊôa(ÀæÙ‚LZo(–â ¤¦Ë%R|Ý[Fqø—€âÛµ>t–ÿ̹= ÝYS½Ï"ÒË0„©Á‡ª¹Î$=Õ˜…Jÿ(9&–O&‡SÞ¾¦ŽÈC¼tp6¥µÖ¢Ó†iª–%#ë—£zÔ¹`Þè$°îQ¦¥‰-õe·³µ™#侜ò…éÈ/eÎT¢Bi@·$•b{Ëér”$YåÞú _ gñ$¹é8ßÓ¥enîˆžØØ_Žø°ýÀÏý¶R!‹ã'ƒ…[q€®^PjµØ<Ò˜h35R,Îlý'òd  @¯ôç“Bª‡ó°«—žÊ‚1B¢%da ŒûÁg^Y›f{¸UÐéd~®w£…K"·Ã1˜3ocËòP0 MƒÝ͹¢’Ò(JhèbvDÄFzPtWáPÀ#þ†5´ 0`Þ&!wÀ–˜UõÖ5QáâÆv÷xÞ)_‰xç^6Y:— ìcÅzBŒŠËɬ¨¡a¢Ž¨`Bh¡âŸ"FwdíÚ|XG+¯S™–¹L°¶Øã~%õÖŸü¾)ëF„ÞŒŠƒÞ7åä¨úhúI ‚ï ã@¯’RÀç YËssñ¹¡®RÉg‹¦¥ÃÓÀÂNr†=^¾,²3¿Æƒ¥8ïÙ«4%˜0€yêÁòx7GvvÑbÈ$ÁS‘鬵*“jr³[¼†/ákx öÌ~)Ëò/^Q2 Þðor²y)¯b§÷mޔդd·âi/2gÞ`Û¨áM:?°þ_sÒÇìå[4e³Rsãµ”[™Ýýâ¥Ý,9åÄi:. õÁÔFžèìåN¸bÖ©8{æß>Ö£‚Xw7÷ ª½°*÷õ›—ÈÏôššKž±Ú‡¬ b79¸Éü^Årüˆ¤Ç08ñÏö°¸qmfpèÅ$p) GÞÊæ¶‹O‡ ¹WAã wÂg,ûœáªÉßÇŸ|þxà£;wŸbýü˜Xbjø>q^î¸ÑœŽoh—öåK1j×_j¡0ZyÎ(;2N9U÷¶|´Ú°ëýâ²ÐÏOU™Ø™»G‚±d@çä"A‡CȜ˸KõQ[. ²Ë¸WÉÔs÷Äåª÷Ì‚7vBü³'WÿEHë—Ô„Ô~[N%r·49Ê့Ìq†Ktb@xÂŽ~Rãâ½É¨©næôke»¶%“Þ «w—u‘!ÐÓxfu˜ìx“²¼;ØbÍŽ$Ï\à:1{GÏл¼¦xoúk÷ãz‘2º:x}‹Uuû¶Á}‘8f)ˆ—ì´ü+ÃÜj ;§#+§´sv­sL«•Ó»ÅtzUÅ#‚~åÔm^«œ æÞ8/ö~;š€Ü,Kå ÕÅ%õZèB’c%% úèM› ×ÅxayUrîDiÐK}1•Xää…²Ëêñ‰S@Ö0 æ±è‘uùSÛ繟yÆÌhø&dÚÚt“§~*½«q÷E5)Âl§»<¥6qœmp?õÊ3¶W¨ ‘:rS…ŠøzQ*é½Þ«Û ßRP‰IÁxêG»ëHä?Ë‘˜ËØ)þfØŨ’x®ž*Qûܼ©ì–ê]È8,¼v'ÇU~Ê»FÌÛ•´ùž£3°’×\¤cŠãÈÉœÀWæóá­Ž)‹‹"ªã޳'øtKHÞnaµhÿC‘è2;áŸP!àâ²KFúUoö­Dаø««®ß.Þz|ãž5‚ɰZÁ ÀðÁ9½ê ÿGx!0øÑ·eßL¬?´Þ£B žÀ^^ÔmikM:e #)Ú·ï$¼ñAù2Pä¡Ì’%¯Bj„ÿ -Gw˜O3ôK„Ô}ù±qxÌ !®2ë„7>…%•ß,VŒ±ñe#°hÕ«0+/32&¹VÈÀž!#Ý©¾èþW³`)þ!“ ÖXËå(8€"*W5ìü2[ÚÍ€°Ö4Õ%R7ä …a²$EãèakQD—Ê4yZWÇœžÓmãérÒ;ÝWš+Hp¨3½|^¾;¯F¯¶¯zNlÁvÚÏÀ0¦U¦}îBJÞÒ0å[rIVëå{Φ{˜4®Œ™%ÙŠR¼úí|J®ÑA´ÐJJ©L:ïTç7*ˆ„åP¢ïýâ¸Î&~YÊ Yºìò¿²*F½Â)øthû{È í…ôÄ|W•7;²µ+ q|L–¶Æ¢V¦éu»~}ºnïŒÃZ¹Ô%Nv×V‘Uö;+Ø_Öÿ––CßqZðG—·«ò!;6÷ÜÚgöêy.8¦Qè´–ŠòR2Éc¸y:<Óâ€jó²+pc=¿'Õm”R¹‘)œ¹Ukð}ô B%feºz&Ø´Oñýª³m9jÉïÐ*Vþ•øéEr ä] Ozî÷ð.~‚’ÀIpÒÎ÷Ô›X†ëRý=oHÛ¡¡‚,ØïâZ‚G÷úG"_m•I0>E¦!>PÜ" ?¿!Z$2mÇ‘°â»áßûæ¬Þ¤¼[¸Àwû<œ—’-èUöÞÖpSÒ[ß/„°Ñ#[9C) Ü%"‰|sùò©Å=`ñ+½>ù>ªD 4iZ¥Ck‡C):À¯Èëç–¬#%À˜iØÄÃD­ ‹5iÐëo¶¤Õ:•v·Ô‰ãõqãóÉÆ&ºÐpq¿b^z7S ôdE¯ÆÌ™~8½úeŽPLªTPq]×UÍx7Zþî–Š©àUå¤6ÈtS)ÇZV8»dOÍh, +Ï·“¸ð:@ׯÆG2¬3†XmPãLšoZšIŽf{z“;‡ña`Àq̤ß5ú0&·Dê¦F ˜eô”}E•YˆTé¶£²·sd&I¬ "%Ì 9çR+›Èœ¬gZâëPMQ:PÊ•X<ÅùaŒ&¢•üUpΜ²wÊÔDÿ@› 4;*-ê’äÝÀCVìþÊ7 %Å¢›{ïÉû0\ªèvð%8ɆÐ3&±š÷%Ú1¬»vú÷é.ù‡3Îû9Pkgz,Y »nóLµñP@¥ uñR`¤¸< Ò×O´CšD‰màì­f]AW´‚?õöÐǹc¿iª?°YAäîHgˆQ“TJàÛ¦7!T-ˆ!v|2Ï‚ÀÎ÷[ÎÄN—’ åŸÊÐÄÛžò! û½{äõá°ÏÞ2Qnï–IÓ•ªÐ]rG5$¼Ÿyb/ëëd¨‘cQœœÿ57ëâÿ¾*X#gÖ–¯kÏåçÏXÂàv f—j¿§] åîn]Sk’Ù$ê å¢+­9\×°#:Nh:D‰M¬zÏ|Çp ZžÝ²Ï}:~ö>\Ñv,¿‹ÙøsÁMÎÏO‘>ÓÂÑðAufÆ!³RAŽþäãÕGwfq¤f¡ù±PÙ†·—æz‹O@ u¨að¼½éÓë-M•Ý~óz†-²bfÁ¯Ù{ëä:ƒ²ñÚ‹+ò£9úó,‡ çß3oXMB wð´½’ä|e¬Â©Y7êjýAÜbí!’ˆ£FsÂ#S?›•yŸ#ë)æ6tàþ »V­Ïã$a¬CÕÑ­@½×˜æº›dpd:DONÄY-ùMülűvE7(~ÿ½˜ Üöj@ý@‹V„‰‹Å7PM)G&_ x„ç<|Uš~W÷›úÁÈŠ±ÍYˆM›CB+ù*YÒÞoõQ»êBpc®œÊ­30@„nî=ñ£÷ÈVk´•Áë×± @©ØuÄ|'Øi’S'ç?ûªX7%ï#k˜ù t  NÜ2£N¶`Øüš¿@(˜ö|žó„þ•U§}¶×Éìl:i–SArËM*ú ¹I¯ð=}G€/]Õð$¬Ï ’iʹΠíS‚3âh&;ªûÎ(6AâÓ–ç<µ{¥£|cÓ)¸ËP 0‡ÙA/µßþ[`«›=dþ³¢å£†³ÿš—"¾W=É7ù¢{òÝ™‰Ó†× „;9¢uGž9 D—€ÝÙûÔüžj2.¹ v2ùRf$í¢˜åCz,^ ËÆe Σø†ÿÁó̰e6ÅŠ¶y̦àá6üÃy—[cÁmãXw†˜ïØ£~ ιÔÂäñõ—ät®rÜt+æÓ zÄæÃ··A!t±J!¿k©¢¿‘é"°ª¼A 31Í*Áç¼ñª¬žÅÜ8hª/ºîÖAQëÑ“ /J$&6ß¼Þ38`DÓ4™“ªŸ‹´¾$ÞþåÎ~‘mOˆDAyç”Û¹‚â—çþQ,{EVðÅqŽ…î×&†Í¼{ÁCb©”B¥w‹ÌßPª7ü”Ë´ÚYwŽ! …šOù$Tz§Rƒ®ëÝã|\_ŸL"n à}ûS™?sŽ˜^õÝ’®Oƒ=„"ˆð:ñ:æžþ¢™A‰0bó±Y€B%ƒ¬:TÒ¨À^.GÀ20øgòïà#8XYý ±5:µœ¤Ç¢fÿA¿C—£ðÝÍGâÅy‰–eÀ.y¯±ÚÖ‚¯a­dP ©âðœ:Ã?\õwoà7‰ñlßǹ¼\­^í«×_ÐBv2òÜP3³…Ç»æ¼%tcœ¾;‹É»ËüW õŪfýæ%á%—ÊE`ŠÂq ÒÎ`K4ËÏôð/Ñ:anT˜ñ[…2Ã;ë™jÝòa®¾ï§ýþ2õ0ÆšÏä>L=Ô@5”ýÉIç®‚Ž b®¯ð¥áüßAÁÖuÕð«ÁœÇóè )ˆ€>ZiùXæD€E°¼çB“=µ‡¬VoÞëùmD8ê3Á ¼¹óüº12C™lÞóWUÝÎNã´?°?q,«2bG ¯£890zõ†íœ…s$vå¼PtÅÌOÅ5H®Å-t»gGû"³_LDy$ݾ¿"ºº·¨÷0EåÖƒxe€±’äMEj•Vá}[ËÐòvlû‡t® åÞ¢›J¿–‚zŒ¡pô6é_OÎrLÛXp-¢ÌµÊpB À0‹çÒšñvžÁ†4ËÆÜ!Ʋ ó0®‹RV„tÆ ï\Õ^B+õ.Ñ ¡@Äd@pÊ)äýܰ"So\Eî³ÎSà *À³HÞKNžÐP¿Kñ6hÝ:VÊ Sn€Yvq‡=Ò• €›1€LÐ>6qVœí¾°Á%*§xf[ˆ{-œIÊ>ôH*ZÚí™ËÈ.ŒF§£k|O¾iÎï©JË 1D‡S¨šÑj>>&;Ï€Ç< Óbtɺ€NM¢*bîwåÀ}is‚:ÇíV1õᜓ'ÔäI75ÑíêÜÜø»dd…bOîéw;ÂÖ4FP›­_…œœ€Qå …ÿ[äg;²3‰¸a1ÑÿT€~¸‰ö³ÍñtmN%ùMÈS²æ`'•U°v9è`Jõ†AÇXR¿¾h÷ðlãn |Ž‹ñH„¬Q=VÆì^Fsb ×3 ô(¸U § %/“õ%G#~ñ÷ˆöO@ ^®ƒ!§@þÖä#^þ¦oy£À.ñHg›Àê”6² yÕƒñjÕ/ÙšÐgáʬwc-°IøXõ¹+>Áq|µ¯d˜ýØ“"ßȱ!K›ŸrÀÝŒ™MÑ´Ðqå•}ÿ¤­%iΤ)Ï$¾@Cж(ìSÈiqеCÕ $„jÖƒ°¬7LQ²ökñä)dAý×Z³À-ÑM3ò¼JéµöýÛr­`CÖ3ÜÁ]_ÓHD½a0/ØFņ¼þ(j"{Z&sÿ&^[k·¾ÔInPl½ªó‚µJN_"íY[]XÉ_tÄ ö ì Îú ™¦n¬ÏÁ þaÕ[9¼³Xµ‰±5øëùs­Q2ã\¼zmŠíTY¥§•}À£Gòþùï´e`†¿0hÂþ¶6{óHDi³Dï))CÛa3gàùÁÇÒ:]-ÝÜxä\aÙ…r’°Ø_7±^, •m'ûïîýG’6æ®Ù€šêá%©ñá»@Àǘ}%mm¯í—!ýq2FHÐ5î`9S²0‰á³ìȼ$--‘+Ílßˈ~óìtš‰# ¾ÙÃä%im@í`>Ž$Ex&–ðÊîŒ\Úm Ïú­æq7%lj€È  ^FÓó/åIôaìíÂüL ¸~Ö½Åù½ÿÝÏÿ †–ÑL’€¯®æZüM—Ðîü~=< æ¡+NÔøµÖ$jÂM—r¬ Œ…¯­Šá…$ò¬ä|÷Û ÆóŸ¡hˆœ±UëݼÂzY„J©ž‚—UݽƒmM’ZðuÂèQWuù—ù_æTòg¹ë°…!º@"‰‘óÒe¨·íp–íÙ‰¨Ì3¦M~R©]ÑÒ#XÿÆóÞ<Ûn‘†¸€8¤Ëzí¯ðcÊÓ{ŽIès5ÞûÈPe²ØÜd $”|r£ª*ŠqÀKM²ÏÎ×qŽ(Ø­­1°™<¸ÅfîWbmÖI¨bBG.*f¥.¤ÓƒœÓ]ŒÍŒ¦ÕóÐ(õ¼ZÂ\Úí9Äz]ÇüÓÐð¹(ޱõ°í¯Iæc¤õiý莒r›ÛÇ.Õ]-ÈZPýSpöœEüîŸm%!¡?£úI …Ô,{BöÕ}Àƒ´ˆFS®S‡vöòä{ÑX%ú\ÿYÛeúb6 Ô,K%žT›{ã5E™žièûc-þ{ñ#¥Ô\#’¬ÝŽNŸì¶æ<ÊŽ–½}ý­1(ÒÃì,YÂH¨,’†,Ð4â“™ÃclÂŽ!uñ¬¸jžÝ¼Ìí&߯^kœJE*Œ]çpeG'/î›­—>|×]Ãw#5™X§t¢S ¥ TŽCÙ|UŽæ±)“æƒF¿ÇðZž.·âý½V ˜–x¾¢U 쬖5ÿeT°ÁðJÌÝ ¡ÉnܳÁ–øo§4rÖn¸'³z´í°%þxBâ?h³d,‚š ~¶û3®L¸‚nTÖ rÊÕé®ß÷è—8tÔS¯¸G$¬j¿66í ¦GÕ`’‚@k‹Ë«ý\Cåi¸–7¶¢&¦Ï¾^ûøgãÓt±FQJ.ÀØÚ¾Ð ïe»åçœSÀ ˜ðæ}œzWú[ºïs½˜)²ÏjQ’ XJMüh'˪€õŸ¼FaÇ€X ­°ó€0ÒÎ>êÏžù¬–|ãVâhÛ­±æ•ø©d;E3×2Š[YçSeú¶Ujû[Æ çW;U¥Ìöp¤}v½Æ» êž³T¯('N(†Ž¸\½¼,qzoyö¡¹š‘X\í@,æ—SÌ*Èj2XJ1RîkÀý„¯a¹]+4 Nl·Z–ÆŠh¾¨¬)¨“œÖWƒu@{ˆ<(å{ÅG0;©K µ-,Í9ÐèG£ÿÞýº£˜Ý²;’LBòGªN@ÐÊÉn8Ht)½ÁË]7 R^1#¶ÖuIÙzqŠMÔ,QcEÀª¸CÔg†û"¼•HŒöRÀwéŠNêHÚ)nN ³LÁ–q9ðY†b»R­âÑ cðMîÎ-¤aí 2÷Ö‰é EI«~ì5>ïS%~©jC•V>™K¨½Rü)ü}ÛíÐçp,Úàv< ³N³¦šöûÚ©Î2ò9ºDŸÄÕ¸áÊ ;õNáAÖ7Pøg¥{ä×× k;§ºÉCjÂé?²†u$T‘j˜´F$‡aB9L0^Ê}¸ÙF’sÓƒRàRS ‰þŒ½ú°QDk…Ó9­gñãÎ²à…€ YQÚ­ÒuLì:Ù™¿…„ÂõŒ­•ÔM¤q¿“}`,ÆÀM?8}8E—— …Ïø1Qj8ýÊÿ¦sÇ%›ž¼·{)w´i°i§¹|Kôÿé § Íÿí,¾©8L¢·>LŸi ÂèC_‰š™óê)(z§“ø ‚¾àm+ ëQ¿ë’ÿ.©©ƒÐQî‚fwÄy€{Ä`e>pO5cÞ þ®L §³Šús‚|mÛab¬X)+¢À¶F"SNùD0—"7’žÍ% M=ÿÁ,¡²Ê‹&Ã)XêYËap~àemþw¦KÝüÅ:‹AØUXQgÍ),:cŽˆQÀ?cÿŸIA)öy…Ã]†S,-™)þé¯A‚á)|ZÞf%HðصT‰å–èš  qj”¶í‡Ȱ2*Q‡PúÃ_ÐÐ Ss[Q#[Îٹ‘ƒÐwEPZ–=ÉUñ „×bÍŒœIÈ`ÓŽŽMi¸lÕ¬ëJÛ2 ­´h»XÁç‹…?5±nÊýì¦ È_ Àq¯£&•Ýù±Z~öJAëŸXÁ+)€ãXþ8•Ì¿Ž#¿¯vé¥ZÞÌX™Ú¥F…8Û¡œ-©Ç*'Œ[à⃢ F¦qPé¯i?ªë ǃ'•Œ5lºPµï¨8Ä¡´™š‘ܸ¤æ°¥±«¥eÆC»¥Y4¼4½ƒ8`èÄ”n1²Ûãó§>3÷T…$qÃ’‡ØÃsèRÚùç<]ä>ZËFŠ~*4vçZ8Tq?í\"Œø1©’ÞaeÂwó;äWdª¥[dU¼ õY%zS–‡ŽêRvµà½ f«–bÖí¼scëLæÎ”…jKw(‡åèÔÅ4§@ŒF›óì÷ÛþmD†Õ¸•Z³byúüA†ï‚´Pû¡JýfÝòܧÒ$sBð¾TΤQr–ŽuQ~Õ–ó÷½»}Òšh¢biQ[=1µCL!6†‘ƒI}Eê|øF€-!‰õ½G’áJšš Ì…¶êËÍÓR1åFß½æh1Ü[oj¾‘O¯Rˆ¬™…¥ñ¿tEÄ#]–²–Uˆë8Ö€!'Êìÿ¹Rëjá “‘"à¦Îȹ⣠Öäƒl¥|³½4Ø#NþQñ¦äP3œ¡n/n.lèœ/µ0oÌŽyPðÉÞyÿÏG\¶‹Ü0xL——T…¶úY;ë9@Pûâ^ÝéëÆÜ$t âˉNÊ8n_úÞ‚0u¢öoî#ÙKÊï˜&¹`Á×X¸'v±N.íÉšÿzaáax‚à§U Žóê2¤‹¹A^£P3¯´5h³Î ±§ÿ¨7qß’ù‰È$|gféÕ „,å¨Yÿ¤liä¡™$ĵH“ê}u§Ç¼¨7’¹ù 8ììûŒú1°µ¶/*ü/Š^ ¶ÞƒaÔúŒcú 1hHÀ~Ï÷O³Ê8aÄlŠK‹üýŒ³-˜Ë, XP{s¬éóÍÛ†H ö8\j3°|¨Þø,lKÒ>}ïõƒœÅóý+ÅK£ð§ Ï¢ª‚ŒÍÈA¡~qÞ>Žvx¤¡¾€íð©Å®üêX1·¦g˜ù12Îí­•ŸŽ*âöéIÿDr‚³î,ò‘ao‡Æ°Éû3;¾Ë>ŽNrŸß¶"×ÍJ°OÜ5H°<ï;W8)"‹š¨#†;AM½Å­—ß¹tÏÀÏ~â&n¬Ùµ‘#äšhHW"Ô>'7ô´Ò.ö<|ÇeVi0üH³«ü3ãç6†ê¼ƒÐÛ×Ù#ˆÐ‹¤«õô‰A£Pº{hBßðkÑë&ìmùó'šÇò8þ¬{i³'}-MØ?š†%}—5˜`.!±ËEíA~!.f'µ¡lßÑ;îvß2®Á–Ø{šSïtkÀÈŸ•Lù¿,©4E…Sh…´‡£NÊÁOõ”PTŸ¿2/¹ ‚ï6kÝí©“|n‡“?%³d£»£”vÃR“§ÖÕZ^µâdµÆ=¤^ÜçíA‹ºÏÆ`؈ó6·èPÓ¦$zŒè%¹+áòB»­ Ý=ògUe‹ VÕPÐ Ãgßé^Ú®ŸsâÕ-팫»ú9•«¯L‘e%|‘qÇÜ(Lù+&Õ$º[§#TÞÛ#1vio½·¬¹÷KÇÚš³ÀÓ̼¶›¾+ø¡IA0rð-•F”$[·ÐWºÌìX”Ûÿ”aÝÜ^Õ³ZÒˆrsZþŽÕ[›42¥†PY‚[-+cÛix)Îd ;V]§BN€f_¨á·'¦Î"pEíÚ½BÜÌìBÞމì§u.w̹ë{ØeU5ŧÓlÕ#ˆ9öúÃÀwÙe€ê) T“4v…„#Ûç4u ´` ¤„®9‹‰zëYÇÍ _ÛüÓfw¼eôG¿vÒ1ÿPNñ|A6â™hˆæekƒ—øc\[T—ý m5N!âŽóÉ rÈà¶BF0¾ôú‚£ÂÆ¥Þ­‰™%þ7àŒh°ÊýtÄþ§“D¦ !RŒY²”guÖE—›V—¹[¾W 0 £ìÿ«Ÿ‹á·H‹LçSñö­1½V³¼ÇáÜeñ'ô$Ü÷"ìµ`;‚{ynŒ¾[eB|kLkïkI­ƒ1‹2Æ+\{{áYh¢ÁpðõäI¨ùDfQÍ£d¬‡¥Å¾ÂO…CçX´{1#ñlÍ #{uíÔ;̓Ðà† ÁU[&e;:,뙿?…8ôs-£ûϧíÒyc/D1€ÖRò«;û^л»öAöÌf[å;©rPüšc¼Ýù‡˜LŸ-;ÆY»Yù?(H¥ÓÍ̃'ϓᜰ–o‹ìÏêÈâ[HªËþcÛræ£e€@ìJÁâ„èÏ<œø6,zܾ¢Qݧq†B\ ØÄÜþ–”@Äj¡c‚¹ÐŸ­þô^ —<‰à1.E9I ß’~4=ÍÛtòÈ»¹ça6tÖȧQ÷x&[„6ê9ÊΔ hGvTHªf¼]Ê!a–§úpÇàtÛ ¬É‘’ÕD¥Þ ì @ÿù‡dUí¶ìŸë™NíüSòøàúï=þLy”Òë 9Q&'‘áJ¹9THå(MŸbY ÉùÙ†A õÆIBLë?4!PÂõù´g½›ü+L0zeŧ$Fýª«zýÉ´±¢2çÑÊ(¢d«ôÆ¢‹ndúÒŸ‹3çú n!”šÖø'j>‡9îòç7.v¤RZÜjÚRSu´iú¼ ˆõ¢»Zí§üÉ¡ó7Uèwi¦â_nÝn— hÂøÚçÚ¤éÓÂí1ó«Ìâ£tÆù^MË/®ãi¹Ä{Cwú™ÍôÏiG& < ¡”@RoŠQðLP¨¦€Fm*~ÿ‡Xm¾OCÐH@‰]aÝa“'exŠ{Ád=Pßò‰çŸ×Ri†@#Mø»:{ ßï«¢‰œ-K÷ç+ÊŒhç=ဎ·¡e‡-ƒä¹‰¥@šj,¯ge`#=ÜÈbç€@“·õ)Æ^¢Ð”µïËÓDÎ}qKêZVòe"ÔÜK$~»ŽÙü'ã ϾmKBkùŸÖö\ßg1j˜~¯ð(4}d‘_øéÓC.%ËT0z¬ÉÛ¸8—Tä¸Gðl?£cJø´ÈŸ€ØÇcÅ3̼t, ¸UzEø_£×9éÿX|@*\’OlœV{e#µôâȪ(‡#ÜœPÍ8t„%žç¤Ï8(JѰŽÐ:îß*ùÂe‰ÐÆl1<7Ë+¼íÝI(@»K¼Ê>åDN—?k»•²“¶âG¬a¢±¨¦EÿMµÛÌÛ 0ª(cd $ˆºïè$ÇM^Ž}ßßìÐɪ3í׋Ïäf—mXµg‰Zíµ¦ÿ!˜»äÎ_¿Îù Ù¹8_eiý¾1÷Ø àÒØH/«ò8ÎZ‡?§®nbXH¹‡ÿmŠ&—ø²¯02^< VÌ]M¯¿üšnÛƒ*\EΣ/7+PŽ–TÊLstÞ}È?+ Ômf-)`Öò#‚|˜±îyÃò^#ãƒå‹×Æ>Ð8½rU—š“w)$9ΖÒç@‡à&­‘H¿ Wmc=YŶú½¹À-u¼Iÿ#¸fÖ¯eç4Nù=Œ\³îØÞ)·²¡®“à dò03s·éËGþQ0ÿkûÚþÏ3hž¥Ñàª*•q,Ç|«Ýž>ü†ò𜅠|ù+µZõäBùUsAsð>UEbï,~?äô%¿Ãú²œˆ½C*CµŒ Lþ9ß΂¬T>è>1`†ãm×;§Fõâ:Û©½U®á°Er¥g<­ÐƒÎû± QàÃQDˆ›  ï­2<ÕIËÓ{Nû¬`ާÛì Z¤Ë}ò'/3®¯9û‘˜7Îúã÷úƒ Å£Ý[A¶¹÷ßý«3Nª*fŒÍCÑ·˜Orª0=žŸuÓ‰@vå+Ð÷ÄÛ7ë-ÔH¦méù…’R(Z"©æàÓ'>©³®³òUtÅŠG'«ÊmÚi¿q\U•›/H«êJÍ»€&emÇ©(l‘ÖH™àQ“0h•µú Rè•>»þLiªíde® Œ‘k€éP¹ÆS(©$²$ª"I 0úá,õ@ êÍyüy1§ðÍšMúiʉ‰þDyãÀ ûfÚ,ײÏyÂï¢f ^fŸ?…ù½ûz˜¾°–\R±‘®Ì÷Š!Xy`Ös­:Ÿýe÷j7V.Ô}RÊ*k$Nà¼h2ÀF‘eÑŸv¯Žù¥ke€ÔÈ º7¥–ØkõM®’ üæÃß^ù‰åŠ,HÉd•.¬dÅp‘7µŽsb”ò>f-+CÝ`á«Ù㎦)ÿ]ï²Pq£p–qDŸ>7ëC$ÃTã÷­1Š{óq±õŠº>òÁÆÛVýï¨Ã‹=`þ%°(ªZ…:Cí`…Õ”$ï÷§ù„äŒMÔ2F´,­Aqã¼Ç/h]ÿŒ(y¿µжåZ¹—­q°¿ÞE“‘¾Z†~Scc·Ï¡Š(j@*30ïPñ!aÄR–¦=¦þÙÒáÛ;½V1¤(É#ŸhîüKWI’-;Gà «ÊCÿ8ÄNƒ&*7üSá8èÝÈ!óŽ2C B„ôåþ”´¬leH¡dÂSªG\éS•©è4‘#ïãQ=Ëwon“—Cöœ;yÿèµVᆀšÐaß›šž•oÌ› \%=èy¤—â ö+àÒ|Èw–SmžÉó¿4’ –ê§. н6ÿþö~N,ÆFãBãKœïû§|?Ln£9˜dûñYì 9'äÉ“W ?êѽ0ÚóþjÏ÷Í g¡{´ø2©½y˜„hÔ¼.°)¥Ü‹îi/Ròó±Å ƒÄsÃÑy:L±OÜßÃÁLýq¯×9È ¼ßÖ­¥0-µ €îÔÀò]‚& X<‡cS¹ÿœiq/;G”e¥|üœûísë× á—þ5x©¼”EÎA‡Ë\iBx‚òe?_^[UVuäùñ$W1å×òÑÛ&<}þNjÖ¼4Ë3Cè:ÿ€Í]ÏcV„MÔ§©J¤=yÙ¬ìÌ<³¶ÃJ{ö")ÅÓd·¼8æ‘ÈñY›\K^lŒJS+.§†—2Ÿ9(f.!ÚŠñg§rYù²ôT?#*\Q‘»jøXB—ñS-»^áêÀÏ.,¤ê‘;òÄO/ì87â{((Š!Á_l¬¶'ú_qA´gš€ù/zÕì_N³Oï‚«1¢;]ÿúw÷=a¢ߙǕ&]c˜¹PµQD<`~ŠkÆ’ƒ÷*¶XX¸ÿýõjmœ*Y~¦Õ'ž knͪa7Œ}ͺ– çM|ɼ'ƒðÔDèí0–•ŠpèõÌ HU “ÞBp ÀÅ)Œ"·T'˜!—×.û–wX'+ßõ!ŠÕÈ4ßAT¢ 9 Ú-¡f7ÏáÆ6ME0Â:ÎýŸâ@#DúX÷ì›ÞÎÈV2–åþUt _ÆŒúQè’ü©â$J Ó ^y5E#¨ñB„[P')Ö¸jË|Rd†šM^Å®Œk`?.8ƒ§¤­„dŸf»G Û Ö¾’çjKÎÂî ä·Yb©&% ÷}[Õ‹'F~Ëþ Ò z,{é"î>=yW.œéÀðQ‰o´â‡F¶(îð¨Zƒl(‘Ûz3=¯ßÙNó¤hj.x´±kmKùå¾ú@Â!™Jž§IST.Ø-+ 4~ÿ¬Ž4žÊü¹7„lÞ&–no/ññF³iýG#sŽ”Ã.ÜEÆß D¿ƒ€úÓsÁ““#<7¬JÜ áÀçïXf´s›1,Î>zÔãÒ‡#B!üGV§ØãÙµ” jçvi¡òo^.ÌùÏÔN¡ª†RÖ5U{ßû`šE-©#rÿÄÛ¬¼,Vf›«~[Ò‚óÔ·G$°¬6@¸¶æâXò æ ä·ˆ\|Á…L‚xA=|Éqí:vJÆ„–y'xù !Heä2!ˆ4;Vüz Àéfë6wJ4­Œ‡ª|JÕ[€’ƒÌE<úºiçZÑ"$ä&!ýÊÄ+*{ß¿Ozég&§wY‰®˜ìCޱ„q*ÜÄLšÝÓcOXÇ7®Um?Ôë3ÜÊnÈ—QM`'A^$jùV_Q¶<ÒÅö`Ÿ!âÁí¤Æ‚ß’èÊ|a‘ÉÙ‡L#ñ{fšG¦ØPYÉŸI®®òâaû*£i?lR…¸ÞDWÒSÅ4€aÌÈÉrúú†xc‘’DúñJfÂ~ošþ+VÝwðm˜ žÕ ~]Ê{úz©¸r/í™[sºôgKéÂ)3ˆ…ܺFÊ'1qjG<ïªxŽCƒepàs±y»LAÀ8C‡Œñ¨äzvá˜$5²ŸNÉa@!Žç¸]~#¶£b•µ85‚åøÊ-™d:Òà“cFËùÊiREÞP=.öó­W¹6m6M_6çž//GCû e»oš«É)™°ËÛ™@{/ȹ®NÖ¶®Ì¼wψRÃŽ×oÔ5*Õ¥!Y üP¯ÄRF#uû^Xçë|F]Ë®‘5Œm96ßë^¯˜XwI¯¤Õ¨£PÜô4ŽFÀ&«îÝd CŽÖÀP,S î’¥ƒ9ö~Q5ä“Ç›íÅ›üÏÓJé<,@$ªE¤[k|³DÁ³ªYlB,Qd^Dr|Âf¿òÜ36ÀŒ-€0ňQå„\­ÑQaÚDØ~²¾,æÚG^ZKÝÝSjúîš=yÒÃ-7¡c}ÇOÕHˆé¾2C±fŒ®TµG€S_ð\Ñv¹cØZK©úm‰ìÅLeë®Åû]WJë>Ån _,ÿ<ºÚèˆ!fÂÝ ©-%üÁÁRŠ@¶„Ë×õ—J:G—Æh¸Èîøâ€ë 9uÒmE¾ç{@Î[&o›CìѲê i.Tª#Jx\½óø„ôZ~„Q€x×=G˾™Pc£Ò¾Aówbý £Á÷Loe†ñXjUè§cC8¼"ôà´õ¡6h„[Ly¨\ ÅzéÜd‚Qäç è׊ÿiQÚ>¬!¦†7z@‹Ö»W¿w”¼¼éEI.c¹~}¯‰ÚÝrUæ#¢¢ÇÄÃå5€]¼sörìW²ˆ.8YÆL­ë‚‚pÜ1õ‚ s/º†œ¸qåBJP8òˆŽÂ•ã-5¼‚| ,Ÿ]|¯Ý‚gȤÑô\ "¯°]÷ƒ³½sK¶¤²d Æ…üYà2ÜãÎd ¾NÔbU³þ1ÖM¯AuzÆS,¶Óöu1.s¥Dõj^£ƒnà™®)QTD ùÌ©Ñ,›¨"jêQô6(ÉEp8}ïƒóõÿ#‹å»vH:4öª`’¢ªéÎvÿ­ÅWçSéfŠª`%Ñùž|ÑGFQ9Å5&ÓOIxŽÍÁù ä9šT'¸sKÞ'ö\õ/˜éðZq‡ˆl(Äõ°(&NíÀ5÷—†*áÉ–BvÂÌqæÂsàré†@{åc§]8f)¿]ÐPüªRu¤,3ÇÉj¢Áe†ã-Žäɾ”îÚã#æl¦4o’a7R¡+Vf›_‰h{¸€é‚K¨ÓR¼ ”±Æ¨fAЃnÑríùì|˜õzQÿ°ó”°Ž˜PÏšuQ–„xìB—îgI܆«~3f ‹9÷5Ùjøâdd:[‰Nx˜8ž2Ý=tÜô¨gé3¢¹Ò[_Dÿo_ߺ¡ìLg° ÖÁŽ‚Çˆj C€׫`q'f*Ö”–+\íß·7= à¦tM(;V„iâø tª®ÈSð/½Ê¨©Œ0FIh’;×a|o È! ¿“²TÙ®‹|Ï/-PKíõÂ?ª£IÚ¡_®ü’Ó{™lü\ƒì¢«+~úÈ\“þtí+¥Ù áÜOoŸÙ Cùo¢šÕª® S½¤ñ àÊ™w¯¹“Á¾>7®í”œ?Ù%.Hú%ãKêË$u7ÖúAÒê’ ÙiM˜J„Á‹Sóà¶q „ûz‘°Mq&¦¸Hoã Sš $Cläêbˆµ–Sþ™`å2‘é[µ }['‚.¸JV&f&:Üöm)ë.–BÉðÉäõ2›ûp¢ J.lð¸EáŒ×ö§Øµ‹8‡Iš":F_m®íi ˆJ¾> “"¿uШ8\’¢§ª¼ön™ªfzðþ“p¤¼ÜŠ`Md\ù%´0YózÌèõ5;Š[ôž•ô—Ÿv!¨RÊWøy3ùMþ¡k=œÓXëÂápà‘Úß ß¢ÃcBYYO›~¯B»" ƒº¶,ÍT“ÆSJ D´òc?oËqgmÙ^]§1FXRA”OÇÖ"hê’å=f§4_[ ïÊÎHS:³„{­àÊp#ö4l†”&B¯ê¹dBa†™?¶_½z«4]Ùɤ³y5ŠL'°p7J´Ùu¿:KuÀí¤¼D)œvblöD$œ™º+›È‹Âd™ˆ: k®ã1à=â_ä/¤†gÒŠº‹æÆdÅ}4ý8OîdzÿÀ 40£jÀq*œv¿HO$Þxð|bÍÂ`Nc„€žR­„„K̨ ÑÜizc²¦«[ô2 ºôe=ÁJÕžÙ)KrÛlYp²t’ §ÿ½VA†k¬3`“ØßÄŽ‚u£L|IãJ({Ål,Égí-ŠÒÿ © ™­ÉϦÌÁ@F†¢?¾'ŒÔ_Sœ “?ؼ€u»£©] õKçy=­î0’§tmÁ¦2ˆ í-ˆÙ‚ Ÿ@¾z`ž=û\#¢ ’EY6°Ü‰°ËÉ&}V6R¸©«x‘ UË9Ú×F/KÓÔ™} æ&ûR»ÇD–&ò¡‰†wTé»ê½¨w¶Q ¢g¥Ãt‹mÒ /¤ \4WóšÒ—-íÉ©#y êÀpô7E¤ÿZÆðnmì¼3®Åѧ% 3q˽1]âäß{ìFçn~ÖíÇYèD€µí}ÿ鳈þîçu«žá㛂‹t.¦"ÙC&ª<­^éRÁy†’íÙ/ph ñðßܼ߬sã©#ÝÚ`‡ºËSauœÒØhŸÍÛͨŠíÎGD=h…Ë‹ï…L“g¶’aM×YL€•6@OJIWé+óö'›õw ‡|"´9°~œ Ñ€ŒjÖ‹êL¦ "¾Ô,àçªÉ̬âÆš†éˆÃ°kg“µ‘J‰yÅîûÍ$ÝàøT]]uÌ_µB$¤z€KKllHQB¦6‰{’í4E2–ÁÇOéRsá‹|Ûút£ Q“•gS|áð: $8øl÷ð©aì%÷å aINùªdflöö@ü©1¼x¹è"©gZ=ýûèu~E:€E…ŒåƒðÀ@[8øeqÏ&àœRN‡³¬§EzQ-—†ã§â\> ñÕxi² —zöcÁ~NÍq¸€À£…QšÚY˜[F]ƒ,òK±ßäOfˆ!e•¬¶–+B.vÈGXÄLGcLÞUçñ/±Ð6傆Ŵr^+ó[ÒÂôj{Ë6„0â¾pÈE¨•ü|>ÞÞ<Š<ÅÑ®æ¤!%Æè Å×IlrÀ±ˆ¡ô¾c6\{–Ú,»íàYÐ&¥¿Õ®RÒÕüÐX„fjß zù¥Ü6À4e‚T|{6´"hLº¨S/„2XÒm`·lÑ1˜{éýÈ¥¯~¿F%õFªÎûùxÁ:eCZ˜M¸]_†0ûÀÓ@?íþ%c„Å&º´_µ»Ä¡_oê ]qœMyšÏúí÷Sof<ÊT„©áö±ûE@vë ~ÐÑ/ N¼SpTƒŸ€ŒR4™™_V%¼9Cfã1—ˆŠúç4ï±i~c(&&àÔ¯G¯jÖ(Lò@­­nûÃkø¡·Ö_ò‘‹ÆŒç € Vtf$:Y:>È´†Ž®Æèrd°œ„d†\£ÅÕE­4ÔSʮϋâ;ûÔ=”È®>1fhp +š1,…Âè…X/Û€Eê ǬòO{Ú¿¸ž~¥Û˜–^±ç¥ ‡tVUûVÍYªÊF%ŸøŒ2©îݸp;áqv&ânh=F9ï¼J6Ä šÝYŽ a`Üß~Ÿj'JDræÏÕï±”¨ n“Têâ-7WpPX+Á£$ç5ã]KÊRÝõ³ËB…J ›*C21§œÛÕŽ;ì~SÖQˆnÈ7wÜî­½Ãö®µÍ§ÊDŒéAÄ£µ°b¾iRü·UŽd¹å£W2$Á~e­‡?° ž”٦ͭ9jÏêÒƒ–ÝX^ý/$-m£A€'Ç:8;Mh¿Àñç8U“`W’ˆ0ÀuYa9¾ÉÈÊX“’³…j fxÅ·LÎJä¥{Û9ð/h»Öúù€Ó€Ñ®|vž)‚‹‹M¸µá¢v^õ®( ¶O&»€ïÖQ=Î{^>œé?ãÜ¡$]Ô±y ƒ«™é²ÚÍv¡‡íÛNÕÑò^C ѸWaÍLÊî>æùäQgÔþÔ=âr¹¨Û p¼çÀ´%;§bLLé…Á $òQ[ñ¥×Ó—.ü,Ü0Â3±FÌáT‹Æy±ú{Ma=“E,ýáªâK{ÿ5Ž ù(u G;úë’ÌlÀ®Ù¢ÂÔ8d$¥ãöuC¹ ³P›—õ0©æ¤åEÜ5¦ œ“t½z.×ÐÛNÉÿ<äR­¨Oôöåí¢+¥ÞsBdíºòÁ›À™z”‘¼(ŽÍþ‹š@aƒË_œ±cƒf=cOÞýAKå*JŽÐ‚6‡*èpeVá©K‘—¯o­ý·ò‹4Övm寿'¶•ƒ ‹‹ü A† VkÈ5ÏÓaÝö¼ô09ZG–…$Ž&?ÓÐǸÉò'^Õ¦Õ%õ`$ê'É»žpñ²aFO0Ò›'ˆµœ˜NÀ¨æì1žÅ2( ¹àâE÷K6¦‹$;رí§DÄ>d.¦¬T`üŸ¯¤ó°à5LUg’Q Êzý«˜¦=5q±gщb:½i«¶£¿'·aÔ¨õ „y«ûDóµzè[qüžZÚÒ÷C_+—yy‡¬A0_ˆ—pÂì,b8ÊkUä½å{[‡Dr2*”ÆÚëFöq`_¬C¹Þº ³)GÅÿ±jw£c„Я>õ·\Âw ›*'·òh¤ïøïCÚÙ‡–U÷uTÅW'©}%9ƒÜTÌp†ìA°f;,ŽBÌmÍvÓük¡„-g¨(2ú:áwŸ»Ë ºç5õìÏõQé¿¥vÇKÀÓàóŒ¤u)DÅRö} Ú •Àô¾ã"øc ²éÓ4¹ëÐÞ¾ÚÎ=Ë’ËQëˆ>´.OY¥Þ»<qaHî¯5ã\Åæ6¸ç`hò$k[Ÿ®-+OV4é–™A0ýÅÿ”[÷Æ‘Îožañš‰X.ÖkȇÉ–epéUÏVL¶ ‚4wuÈú:0Öè©s&·ï –Ä¢ÿŽ_›Á7±&!³4tIåïs[ûG·"þ"×"ÍÔå<{\žñwQÁQ¸ªJÿÍÿZB¹ ãÆ·Aƒ†½x 'wÙ7ZòA›zÔÊv†p>K£€]¶¹Å†ûŒv‘f¨g¡vS"Ò-øÂD •ŠÉWòoÅ÷%SÑU­=TUÌ?ÓóöÉ5y„C-ßæfÇ$ÒB"v3 ¹Ù鎥ÙË{züÏO¯Q»-˜gä­ðE¨59uÛ!5E×ë!,d¯XM’Õƒï)kWVíÍšlŽ3#ŸwK3Ç(ûþG'%}wy'¯yTìU§I<¹ÎH4‹½”6HIâàøÌ’q&¢…i#šÏÝpú˜Ëšó©­AжÎäôTqN­ š ÀeU¦~r„H0ê“g¬µ¼~<‘e}¦£B*ÇY½k"*¤ªJ(PcsÞ$@«v ž-kX°=Ûa"~m;@Àdžì‹1X ÇÛQÚ> q›ç%T4Ô·ØðÁx0YÊŽ¢pìC®Ë´yj4ù <'‘&ñ3ËÍô|Æ kÌô„¿7Y\‡¯›©ùÜ>@Ùy’n‹S?´¼³ÖíïVwÌ`xÛ –ó©S«²€‰Òõ‰üÖ^EÀQú:xÖÜWµn?´‹mG‚ùr©¡Mãâ^ÖP—Ô3ÀÍ3…7¢‰©ÿÓ¸ZU¥1ÇU^!ÙõMþÝpü¹˜¹_³íËù(³–Ü–é b1¦ÙDñ{·î•ó\'Bä;_•¸£•‚Ü-6'Ac„‰¿q5–FÓxN¨køJpömÉ‘™-\wÔsV¢õt¢“«Æ_ !¹Àg©u™—¹™Îû_¥ný;¾ çÝ•X:æá‰Æ(:J|,£ÝVÅ©4hvå8ë[Jê?†{"™ôglšZ¦ÉDö<‰\átå7NÈjû€Àpðiw¢ý-ÈÜœäãA ‚SÎd¨àëëóè¥=.#(rÀ¢ûÔQCvÒb¹ƒ‰ßbÿظ¡~¥ì4r°lkŠ€mŸÅ!PÜwÀepæÈX13Þ÷'Æÿ[/Ù³ž–¬ë}ȵ©É\¤ütOš]áøä æZE‘³Gäj÷EJèÖ]™Ñ# Ó˜Œ‰ÚOPܨCª†0qd^Gn¿B ô8À¤çÅ;^_(©¶¾âÞÙü3YÞ ÞWÒŒ‹Ó/ÃcþeV‹‰O¡Æ¯ÄÖ\êý Õ¨‰ÔzŠ€ÖoF«?t„ž îØuìêò4è©`n4®†TòöWqêû|NµÂ™‘ÖQÌ9b2[¼QiÆ©™ÄÕ([d¸R6ÄÂcÏ`Ú?®% ¯»ENÒ‰SoÂSñ“ UO›ã÷–Ê6€ZÓ-‚2×D׸âÆX¾ú÷8…:ŸÛÓ¥¨èÝò‚ž*ì'(à‚Sa)nﺇ6)u‘S¾ùܯL»ýoа©S(Šƒâ8Ìùùµl+k›«ŒPw°! ©í\ÇXÂmEvž#ºqõŸ >– NmxÌv-Të¡>~¿÷½‰ŒªÞ¶êưcv=Ð÷7w½IadÎúbÃ=õÑÛ©àÐ5Y<6llß@>¼»C_Œbè!†àµJl7x†56‘{Š‹ÆLQ;¿hŒ%ŦÀÍ®ø‰ëbšASK8Ê^Äü(#ç5§·›&J¼Ù7ÙázÕËÁ>„²Á1ÅâÉ<¿ó-LŽcŽ»H<&ñ—¾ä`ö?)9,#UFõL¶ªòŠ`ᾟÂIŒî†,W'½}¯ÞŠÊ_g¦øT°¿¼F=+Í®ñôf&ÓÎ?Ðbu0l«ö-’>lÖÚWq»ÍqÿtV×™íF‰¶ú£%Çûâ„ÈÆÍãW]É—ÿ5OøÈl*n\2 J‹GÁ½ìÕ°G d(q²ŸäˆøÞðS²J¢Ž>Öñò*sZÁt¾( ´A†@D§†TšJW]Ø(Òz÷ʯõ[ˉÊQ¼XÞ–Çþ#1ÌqÇê¦ÁkQ¡42k2>Ìí(r9²0Dú8s3-šÐŽ–-@ÍÖËòÖ0#œ¾ÉÛ©äÙô0aœØ™G lÈT™ÔÝä¾jJ ÊUWÌzzâ\ë®`E,D¶ °pn›RòAâÏ*ABTgf_óƒ€àâRÈ®¶2ߎ-@t+ña//Ç¿û¸T¢¹À…¹Ã¨’’PYh “üý8yÍÿ¢‘8…:ã~¸ÏŠõõ"$€Ý½x‚(¨!+fØFS‰6Žž>¥ûj'ØóŒà€‚À™±sO¤°qÈnB$i4Ý•!dÉÈE%‚ÚWKHQÔôÞ6/×¶›P–< E öZÕÔ„ænT»$AèòUjgLºG[±’¦ pTÅ7ؽWMÛìr[³±G½i¡qîÊìá2./VV¿®V7SÇïr³¥ts²ÈÄ7Ž pxÞð4”)Ù¿ïWî ¥®‚50ÿÍ߆UínW¾»¹\Šv(yAãMªìêãj¢ZpÀΕrû¿~å²jéÔ† B¥>?ž’ݨ@Ù­9$*¼²bÕ¾+á&6ÏÌ1¨Ú·ï(7qÚip1»­;Î2=”&çtLQ!k+÷pØ©¢:¹ÒÑÉÉÎç•)_Ñ"™‡ÏL¬õwwhäï;ë:ÆUk' \äÏ£y°‹Ú«xr¤L~ù!r» ž n‰ÞpõÇfz‘-‡=…¾z¼‘“ÂzèÀ)ìo‰ M1‰p Ñ©š‚„–ï5ÇßQ{JÖQƒ\SzþNü»nD€%T±caåÔ{Ç…KGo0)¢ošXæáq7™eÂö?ùµ^L']o•Lþ8ÛØ)>³ý›@/Mw •É,… öã!­@hH¦ #\–w><6á9ÉIîø£ùÀúMyñŸ±ÎzÊŽáÁœÚùs/¦ùRͽw #úïCv^RÀ“ðÕî¦E†íÜB‘˜D]Þ¼›4š€°™-P÷À¶í¯b?H%¼Ó„ýÃ+¨É ’U#±1Â]1“‚ûìï›l i„ç43‚jUÙ¯œA¿Ò;—o+òmÄ=õa»çBË¡"|1H¼úÛ²!UÚn/­ùU„!'gÖ.èæÉŒ ªþ'Å–§%ˆ· ÍY àЖÇ56ZME—Æ }çà¾û©]yFCÎ÷4a(3(f(_jÕtòs\oËÏM^º77–ãh1þp«µƒæ‹iÄ%…©†ÎÃE:D×V©² ¥¥–ÔÖ¢Ž÷ëÅÚ”Ep.º?Û­¥ˆ/]ÌÄ]6B! kÔmì2ßñ‚̯«¡üw•À˜=‹²Æ¯Ï"cUï?ríÄY»p®ñá®ÌX)”鳪!¬B±:;8© éÐ'Êö‰¨í Bwr¶$à@k¡V­²t!¢ä²~.ÑÜav_ÀFßÊâ$£ZmeÐ/Æÿ‘¡>¿ HÕž/þºŒÔl´å⺦+Z¨cð}AÿŽÛí×üFµ€€ªn¨4×pNí`ÕõÅÒ¹å_mb¸j^¢6Шe€SƒPÚ³?]³Dòei×poúgü“‚ñ­ÀÈ"øÛ=ubIiµûz´óö¿‹YÁ€Qþ¦Z2‘7ì÷e¯Ó|[l*»±*D¹+ý§“—ÆÌ{ÌìNó²/ÚVµKÎÁŽ®|jijÑ7ò  ³° ~ÏùôJ*<(#¥ÿ§åo½<(‹âÉ:YD6õ¦ìdŇèq†Å K`ÔîÚllà_k8‚”Úh®G®‚TQE:}¼IèöZêŒüŠp¤4ÓÙ&£iÑgÖ‚³HºQ6{0.}púƱ›«ôíd ó ™ûõkéJµÉïW&pŸ‘Æí6»É(¶l³ Uã[؇6Ì4™÷ĬkbŽXs^þ3]$sü}B8¬B†]¾kœi9Úzÿ¹Ðeº¸‹»°dϰ?Q„v¤¼ÚA‚­×Ô'$è“ZôzCrœ}žÍeÊAÓV/‰æýG¥S¦é[®/â0…§®Þ £Ù/ÁPRS³¬°Ypp!—ÐmÑ(©»æÊ¹ìM‰Ü9ÍûE­j…õ/ø6£Š ƒYeä‰jü»aDš¯ËÊòdUµ|}°¤Æ«z+•<ËŠ9@îûHŽøÑ2Jfw   xÇ챉Ʈ ‚/‰ß4Øÿñk¬C¡]ýügOz‹3KÖ>]ýŽ1­‹ü S .wS™Fr\Oƒû Þ´Dô*luk€vž–Þø¢ÿšd£³ˆMñs ÷ÜúB?•Ç6_#ph»cé$ðvÔu ''›:ÒÀˆ6TGé7T¤ L Ý‘ÂGã_Á dbL‰Ywl˜×U™Æ3ò}+n±ÃØ¢nÔ{î Zü´x.ú„Ík¾Î‘B"ï9ŸÚbÏ£§Sæß7$µEƒ'W¡ïœ3õr—ןÏ@q£ô$©çííî¶9ýç½EYñQ1±µ~âÂ×$wÒjCâsõ@òE‘ý‰Ž ˜  <ÇcÙ‹(8/Üî'Ö†ÓÀuBS¬Ÿ¶(#oæ• dÐõø´Dì”WNR–[¾ÂÜCºFâÏØe…rN¸,£¦›Êú§bÈú‰Úà%cõŒE´Ï[”#¸7WàNâ#”a< õ0l†о0Ôîm5º òãü¾š .¢œ^(ù®¨r£ ¼‚æûà­y¡ô[ÙÉR ÙzhÅóÂËgÇqºÎyaÖ."–Á·û–¿­¾?®^±Ã[%À²[8£¯I ?`$ ¦þsªÉ:§²/½Û$Ê9¦èOâ›!uŒ%0õrsû;è•+0‡Ç¢´ÒÓ±ÔÞÿ™”ŒËö~y!A+ÚM}|¸¦%ˆiW4Õ¶xø´Fß車$îýÎ%! kžþµ˜iümQë“U Â+Ù"$„*ÿæÃ^0·.ˆ]òVkb ­A)W³‘¥ÚôgóÔ²EÓùSV÷¸Iž[7„ßš²?uI!‡»ØXhÜîutÒtMì*ŽÈ=ãNMÅÜå-¤ëQ1>a»ÁŸÝÃm·ïæ×Æ ÉôÈÚ\Q¨úÜ(pÉ]hÂâôg”þÓtôô¤(QÂéK:º/EÚ¼š{/ég<.RÛÆduÏ1KÒ˜í§ÏGñ®ÊËs¥+|IzÝã”빃?¸Ä5®†^ã|!u cWuŠ%³„›Š êŽ/$||µX˺:Áõ- cœÝ?"Œ¹|%örŠ5JÇÆ6:“{ÀË'aq/œ½¤jËŽP"‰Þ…e€à¦q>5”ý+äEUÿáóŸx½O&d¿«óñ‹~\¾dXÕF^‚ ÈÞ‰Ðò-ÿeT‡”®ÂÝ•[*×»¹ûжÅRÆþ°²î =ŠOðH/Ïæ¾(Êj¿€²~£õR­^ù?tÏ [ÈM¡Ð}ß-—ù9ANî4ƒúã;Äqˆ´RV”µ\Ñæ^»Oo*Ĩë:NU¢R<5ƒÅT&8L­6Á„ÌlÊwtYöé92ýbñŠ}7kG¤ [ï7ɧ߶~SlÖµ/ÖœŒ|¦ªŠMø”.FÆÍ¦#ýíDÒêíºjÿE_lÄ?€§ ñ•·O8sB©`€}G®P–å¤LÄmG‡šCdFª šÅ4~GŽáPMáOLû‹7ž³ÙÕ C¾²€"™0\›ÒîÓ~sló“¦uÄÙøbt·æöÜ öo¦6ÉM¹鯮 Âý1¼F7 lÑ¥—âjý:jïc Hq¢r³¤¡¸󩔪°`²ÇvÚ°Ý»‘æ AÞ^&Ðë¸*©ƒ¡Ù+cÇgPùß ø²gΔð#/,Âk»UŽX]Ä~y § nßy$怈D1öÄ㬰–̶7ö퓉]æ›XU‡åbWð¢Ÿßlš^æ[†péœæKœ/k¨ÎåàIçÅÖU®Ú{ èu•†Êdjö‰–NF¦™‚Ä,ÛÏ«/1¸ÇÅ=þìbøÌrªáé’+÷Ž\TNÜ¢Ô¯‘éV4‰ýÁ‘õ©´5kT|N,À¤¦ª5Ù±Ó–î¹_ùñF_Aù4Í‚ àî¬Ã!*ý(Èfÿ÷»RŒsœ óÅ¢3OþAOOüCÆx¸”‘² ö¦-$îiДri¹XfœÃÏÊøxÊJ$–^{¦Ç¤92RŠ5ò/§ˆV £—¢;”úÜmy߸i·Mºç… Ž—ÁÖŽ4 ÁÛdi¬-.î7æ·×kÔŠÃÛÌšÓ þsÓYÂÒ×§ô*ŽgÌ™ ˆ¨¬¼Ñé½g°/÷xZÔøÁÇoMúEm°£Þ&›Æ§.[ -6· F]fËÖ:ÎÖÖ+Ug’Õ;p¼7‡º4І'½¶Ö1Ü„[Æ¢¯N m4P_ÂÓéhè5âUÜÿ†ßL½â¯×=3D â€Îñè˜ýHèY¶‚½þ}ɆqF*îýy¨]¹¡=¹¶Ô¬å1þ­Ó+ðTµ»…Ï_º¦Û~F˜Ì ¢£ ãÎ0—YC¥5•ªðD«Çüi%·[0³ ¤çúyAxQ‘〵Â;ö KGÿ_ër‚“æ ˆUE—ãsM…‚ùrêÂ[t/Kàš·_¨ËJw+qwù™¬‘  wÓÐЬvR âÉ@/¡¦ì€¾OS_0Ô†ÛÂÄ£éÃÖ ä+VÚˆè7ìуk©5Œ¾UÂã¶Ÿ„Û”«‚[hEþðñ€Qå?•gd-©ƒ ûÈ{¦i33lÃëIJèÈ £Ë¦o÷t’Ԣؽ’=)& KU9”²÷éi¬Orù—ݤµ aŽm™D·=H#bCa XØ1úÔ姦èÆ)ºi颂ËHKvÕh¨ßåÝ< ³á›~¸–q€Ïâ¬þßèôø isþ:]¢´¨ ï‘VAb~wl0ÙØŠËª³´I¤V_c³úF´xÑóI13L³Iš Ï­?ѰVKˆñ*!ŠôKv_³ÛÅ íK©“RžTO.b­°„Ìä§ JŽ”ê”Jš¶BÂ0œñ ”'˜Ú#0÷yuÑ—ûFdQ©Y×¶JÔ‹ñ«vc$ÈÒf4Ì‚œE­£zðk5y¼„ºmdSº_)cÇð´ÄéH@R1‚À®ßæT·;•ìK1…™ƒ¸­Y0%væ‡(FJl+ÒEs\˱ebÄ46CM![göâTËÄbt¿%v®ኲc Í^ß1ã󖉡Ù}ª“qDy¾leK+Æ 1T²á2´§˜žÎ¨ÂW㺃//E¶ô€†Ï¨$@pȪ!°« V‡=c|(hFöÙÜ‹îO!j7H:âv±ùÏÒ* Ïô`p‚©1¿3ô`C-³ä.Ëâ¯‹ÒæÚbmÿY‹ÀB— S^/P œâº’­¸·µ}fò¸m©O'‹€fk66ª¦'%™é6Wì7§?bŔ؞¤ûŸÈ¾ y?¶¨6‡Õ#d‘§+všº)IžÄ UÝ´ÃU¶A0ñZÓ3C†$Zû¡ø³h¥WÜÝž¤Âavq‡4d‚ŒšÝJ;ÓÚèÕùI>q£œÑØ®ÉOµj>àÍú¿pŽë\¢HÍay‚·h×>bùž‚Sˆƒ&O*‚Þ(Tå A®„··w ìw\G,V4CæÞ'V Á0깤`‡eõäu?$«<²Úý~“†÷W²ÿÀh¥½ÉQ‡{ÃêÚÞH’-ô›Ø ÝK‰$âÔ3ÚAwh¥á1šaJlòmk~Å?ÇÔêA§²"ô£k'ß&]úísÉU/êÆJ™¼!N|ftåeãÚÜ5>õ,ÌΦÔßž+WP#s‘Ói†×©™ŸÇ`tG0%/6¥ñ+·G½Œ''ZÁѤløÚ,Æd÷¥æŒÿ§€ßìÑËqë¿ Ns›ÿê=~211;)àh%ÚÅ»°¾ikvT)Á[=XèBÙÎ.k‰Vž»¬í¯òÅ>¾h7M6û•ãŒd_–A>ú¼Q/¦ýM…ׯd n*Ô¶mþÁ>…U1)wƒOý?+Ú?—A h3=Ô” 0øß ³‰!\hÔ¥œoöt>%,«âZ°þ¡÷qA°EXîß„†\Ž“ˆ†}¦ÿoU—ÕÇßvYTØªÆ êÜhOýü µ•hWh›¬sP¾AÝ¥GþÆÂG7ˆ@9©î.éÚ”‘L‹W¢ ú ±KÒ«¤Nƒt³‚þÍÜD : )çwGb:ž7Œ%Ö¡w}“k.{bäË—E_Áñ¤bÔ<óƒ÷$»¿‡äÂqqÐ¤Í Ä­æ ×bý¿$Úž—éæ|Õ_l_Š½Ãµç‚“‘ÕÜ+vîPmxŒÃãàt^ÍÎwÓÛ! Qå¾fEÕÕ!¤ò̸TeYÓ\—>óð}>,r¾£ùÜܦŽð¹Ú‘Y¶f¼–Ï_YÍË€|am|¡ œR y-VÈd1žs©Ï¶t°lÞí$¡Þ‘<™dß$‡ràЉfÙ%2b@”/_UTug,°÷ â)ÿ@²ž‘åé!÷ £)ÐÞ;¸y—ÌŸ9 æM¦£«3‡àÀáWH å"L¼çª± åJÎŽí{Ãý‹ÎÊ“AA¡1=W®ŠæÄH™c?ÒäýŠÍ³¼+©:fðÂ$6µ\ÒTW гn‡0‰†¸æÉûþ´å÷Š‹:°8)úCÚkÄnŒk›½65kø öI8£Í‰rV!±¨†a泩ҹ¿’v ý¬2}›æëU[³M)1ïâTà+ö ŠATµ`1)Å'r×=©ŒS0œq h{Åï>ÒûÔ ›’œ¥”~³ØR÷o7!Vk‚×e}È(Dˆ·št(S׿ÿ7msÔg"‘F],§ •Çp|b6Ò¢ã0H  ræ,•Û‚Ž Í.¸JíàI z?VAš“Q+çr M«¾hŒü“Ð êõ@"²IFÊ´ylE»1*ýýô‘‡3|!uPng¬—êç…Ì3ˆM•W´Ä„|í¥¾_ÝÒÈõ¤Áãö6—ñ.ÃÈsàX&Õ²ÿÜ^ç‰#æè±]ÇÁÃñ»uïØt¶>½0vj¸î`>ïßš^}'4Ž+è]‡Üï¿ÒUÀ\hI~{1µÕ;EUé©X’±LÄË”tAùÅÜí–z›$Ê-Åy—ceQmYî%:ŸK‹[!mà…I[Õñ?ÇB8sýj$„ó|ô@>T¦ Ž“+áOIêr,ꌟ´‘‰”PÊÌ«õö±øÿÑKse·N6“‹¿m†;sîÉß× 4¦´MÉXOØ_z$<aÄ€­,O¨¹¹ËREåV1šµ•4+Š[F ñsB4¥Tµw¿ Ö/å1êÎI“Y™y|6å§Z«æã•úSx"ïÎòãI¥œðŒ­ÿÁWzÁ 7O±¡Ü½Yþz»EM‘«u àxƒëÛê¾ÏpÀü ër’Ëž {iñá*qq7Û¼!f•"D«äî4¡ŽF¯RÑ.ìÌˬ‡á¹W©æüãÍäÍ£i˜å¨Žµ2ªT‡/›á«»ýX€—¡”)ÙHÏø–Ä,®“¼.Y:)â­ wj©’ïZð¯4 ÙHYå:`¦±w_M—£ŠpNŠNÁÓuÃè7& ‚sÁÉ Ú{1¬;L>Õ‰lïGÑý¨r„ â3þ÷ºfúkå2XÈ䦴Ÿ#èTí¢ÇGzêßKhôe"’“‘ý\Tî5¬~îÔhYáC‰h߉H“‘1$:Å,CWÑX{W¾û@[M[Æ¢QÒÈþFŒãžxí*¨aP ƒúóiæWJ“¾ÆÍ¶Ür1¢GjqœÇ&pwdT¨[—bÖÔa®¼Í;¸ìÊ–­ýXP ûÉŸôBØÞÿsm—Äò÷öÿ`H¥~–JL?>_:~Ó_ÔáæT´¢5ªd¥cˆåò‹ú£ÔË^2t·ÿÑ…”)óËù–> ŠE›£…êL?ŠQôzìul¢\²:™o[”qVýüôb÷&ƒ’¢À |ÖâAÈj-ë"­Ü™0œª¼"ÁzÚšÉìÀ¨,Âþ’=l§¹Åáµëþ`pO|f¶+@¤~…®ªsöf³í`-”u~•|¬}\¬ô–hÀW¤ ßf®šÉ*7e Gzà×L2Ú`Ue$/‹Õ·]+ Ï!wãÖEu†ñÄâÿ­Hn†Q£v•PO’U»¬êÊI{¢_RÁe¤‘ )ÕE[ÎŒJGì, ⵌ>;]Ím¥Ff4J aª±n@´í٦DzžD’räŠüJÊÿž¹?á›þå–Zº2¦Œå¥A4ù{JÊn‡ëìÌgù×þåŸøåÏìM)îî#™õ!J•Ú8³úší"[ÛàDèE±Ì}“ñ;¿j˜Z»ØÚ«e[sÝÑÜ!bÿíÜ]. áQ5õ .§È¨$Ž'0±ð–þA8o‡PvTÖŸÍü¿L£²Á&½*D£ÄXUîGÞJ¥*½äʃÂ;z!ú/8|QŒD² øùG/pl”¨mæqÀMZíçüû™”–hÅð0w¾îŔݮÝëwz‹AK}.ØûlYNœQ&„`f RiÈ 4åo}E£«wun„Ûru0·•1©>ñûX ½mLn…†Nî³oÊKlí›ãnº¯Ð®­ýÚWÏMÝ ÉÝ2 uJ±6[mt$'ê!ÉZN™²>ñYûåÚ`a¬ÇÆÉ˜þ!½.ÛkÓ©•qj^÷¡Œè/óFªglÚR$ ˆŽ6¨ÍTÄÂÔBªÙ27Ñ(ŽB1&ϳt§;Ø îíoEÅ|é2ö”f4ž7¹¦ Ë? B?3ý.9R&¯AÌ,{ˆÞ7#|Bœ¶0«då!††Ò PŒEðvk_7£ƒ´DN¦4!ž¥úVÙl߸ ;%Ði²×ÏØÎP<šÏ¹#6˶ùÛÎèÈF{åþ5› ²æW.ÓŠ"Á;ÑÿÇaz¶#j7±JÀå«ëÈu<óNñ¶þ2Ë%DAšÒê,<_TM ,ÁDë)á$„(~|ÇPéQÄkãʬž˜þKNlj«Z.¼MO>å|ÕË¿îv™Jˆ½ÆÔÕhQÊÆïšü}µÅöÌéîÖa6ô½4(/ȱ~‘¸A€DJ n=“¿.WÀ1B»ô|1uî2/}ü.+ýÊ-üA#T¼ì©Ÿ. ËÅC^‰¯#‚p±ðØæ ¡¦0¨†ìþ¢gA›.‰’$À™€Õ‘”5ë¬r¹âçü˜++*y“ô`àç¦( HŽ Uh¿„¿vÉ6ûhÀ‚ZuˆˆR‹Ëœ ë'4ðVûQî﯌»‹måD{’y(Ǧ` ç«ˆ,¡;fBarkZI‘1ðõ)¹Ú}©Y>ú,k¼¢ßΔB“!»¬~r¦âÆòMy'«Ì¢(Dy+Á~±Rô~>°s–}Ì…üUº_B—aJ²º7и‡Ÿ—’ÔœP¿3’*¦rÝn2i<±Ï‚µÁL¿ ÄÛ'õÃ7 ËÈÇM™hä1ëB_ M*‹gU¹9…ܥˌô£‰×·\÷#2Æ™‰ùàî%UÁ/WLìм?ŒÖ-m­Zâ€îæ>8âÿ=Ži}÷ðòmþ^™%ÿÄs‰|·,S©pèêG¥ÒJ{Rp:^kœoƒ˜#jöFɬEzP™[%>d˜ˆc<ãâ-&-ª‚‰ˆ>sêÄänL9Ka‘‘þˆRé•…ì7£Ä•Í*Úу•Á]éþ9ÈX³ÓäËïÊÁÿÉ>ƒ_gð­µÝ×È,ƒ53e¤¯Óí ‰þfaÖÈk8-ëyc”‘¹sTœ=–Ö ÂRéÕjQ'ì"Õ£ÕÌÇ×+~ÌqîÉ81³Ó-µ/#GàTÍyåxØÝ KºÄ¿?ÏL’‚“·#´X” RøøÔ³ã³¿Å>©+f÷À‹ßÜ´bñXù«!hàCºú,ËÊ2ðtƒ§º¨¾ÇùÕ‡ÙrlÝS!KÝ;Ãį+êÈ„s¥›ób}…Ìí¿ÙÔÐÏ!8`òUÌ–ûIX{JŽªöêK'Ö5ûè;á]Þ¢iQozáE­]ÙÉ ¨:-G\ÎÊ_;{"EÔgv¢ÛÞ=v ÆWgŸÁä[¸ºjn(aú‹ü sÃFU¿£±N÷ßÎû%ÛH‡’Ì7>ÍZd4eÑ´²lù?áH¶¿ÃÈËÉ(¤ïwïÏÿ‹# ,=vøÛØËšÁÏTƒkþ“ªólöWàÆeCúÝ]™#ý㒧຅ºÑV3‹:š|h8‹$p½ö¬JpíAŠkˆJƉ6$6 xÓ@…&Öº‡I`:ÜÈ7üԄˠ϶ÄLF™whæ&i$™~k]5&M …‘÷.ɸ»—öæa ç`¶bÅüÕ)—ÀŽÇŒ/†W°v‡Y«3éLJ%Â{F¨/”9½/I¯býrÉqˆ­»ßLÌÖ"Y 1?*bÌzöEäš›dÏï}²û*Qé£=à“<3¯ß¡ +¤ß5_÷ÁOù7OÈ>¨‹,áD®ÖUö…ˆñÕj/ðÐ ÓFÆW… áy  Kkúôè[m%HNÉpØ(:œP Ñ8ƒL”ð¹IáØMY9·\iY'åÜy·g† ^…&~¹Ä>ÒqZ—asŠàS$GRµÒ0(+åŒÏ.­_Ç—<2x@4‚j¸•úëä¬ìtÐàåéî\ ´»lj6±¢î&úS9aTÙ·è2Ûò†Š$å뱡ùŽ÷Zd·F¶ƒF¯4æ€Gd Þn ‰ tïuŒö xø"ºîh§öX>ºšÞ V`mÆõ7?%´k‘åêàb}ÀB`Šj š€M8qÉI÷¤k_= Q]<ç ÓÀ:„o‚Ç«ÇCË)4ç_ÞLh»¸Î'71ìTC|a_²§»v­?˜ýçXS!Æ9Ÿ¿IÚÇ$Zðfr“6ߢ©Žõ&ÌõéYôo¥wØÎQО_+ `×÷ºNÕ9KººkXfâE 'õÃm“Ï6!d ž±ç»g‹ÖŽª‰#RÉÑo°#áK@>H2Ú.µºt• s»ÒRGêËõ5[Ôü2õéÃ;%|ٙŰ—aþhÂ[ŠÕ»žÛ¨\H<Ä?<ÀƒÙÕðÌ#;]ÕÞdýk¼„„“Bø£¶ì±N?@Ö‘èã­“ßUâo¶N._æ èy¸· "ZÀÆé»TÿPÃ)Ùº gsÈìBõ~D‘ÖÍ‘rç}œŽÛÔìÝô~zo <á笪†Ãž´”Ö1%7¸$Ô¹þ«ÁÓ²ò M.) çë4È?`—ƒª\æ”>1t½k_ééx¥Ñ™ ‡kò¼W‰Ê¶™þç-Ã}##%^ƒ(#ŠJp­/[ÈüÁæÇ!9®žK]};òA {‹qpæ‰IÒö6–Ç-‹HWVÓWžZÍùhhT‹@Ù‘;ºŽƒð&Sc.ƒS ×@²Žª³Ì~CRœ,eÕ¤;!.6œè²„¢9ü[ 'M»}jš † ûP"?I=óæ‰äM&²¶–¸~{\<5vÞŒÌVÂÃ*,.ÕÅ !+ù÷¼þdÃtÝ)àå%Ù7}kù²šùf¾/m¹Žwö\ìôüüŒ¯J‘iÚŸÈ26–£¿Ç< ÓbtÉãW«ÚU7…GÛ"zØE×ÙXi¶ßWB×û¯ïÑS–õˆxš)Vs«;¶å@3›ÆÖª‹¤ã ’*ÎḊ_ØjÊ|˜êäåÉÒ *]§¹pçf¼Ã¹6M密¯­#8µÏ°(†x:bA„ô"S* ÷øw.Ÿoe¹Rn”S*'úSi· 9ì÷oD«"_:]²ÉÕÂV½ û;p‡!†„–ê_Ž(›î1uòT>J·>ã°vþ«<ªÑô:à #)å7šØJ«°z»óögÕ$ SΩ| 4ÿ³íHÝÂx&Yñ ’?‰dx\[ÎJ±ÉûrŸ¿ÑÌ «DCSÏN"»(ƒêa#Zþ®Ü Ì#„ÅÙ{ÃÑñÉ:nJ> Wþ¥rIÔÎv»¿Ó54I=¦¦ eÿæ€Ó‹|Ò&ÍrÚY9Y[×í„ÏÍS`‡Ì“Ã~jEã8B«p&÷”ò<°§¥îÔIȹ Š?° Q!ð"ä~‹#ºlÓÂ-ÕªÞ©|ž±û›’4ýB\”°Ä/%-íÈ`;S  ëµP Yj<äëQ4pL=8CyÓAÀ¨‚ ô|V;ÝB‘O{û`@&à4Y½ÛûfZ·e"Ÿ¹Ï\­~cmö¾ÿÌPõxl (ð64ýr]ô©;6anv|…ÓÑajBfñQQ¥’£º ½³D-IúëðQXÔZrÆP7$ {—ƈöŸH ªÚÙØt\ý…¹½¨â´UïoÚÎ4~Em\7Y±ÊÀ-ϹºËkàeI£þ—%fD,8:=mÍY× @¶¹Kè5ùŒ°Þ s ‘m²»7þqäÁZùZðŒ‘ü)ÞÔìcöC¤ò5ã¾ Ú~Â(oÒº]²ûŽqMÑ©d"@0_°T.Ž2`*œŽ¤9«J‚Ý–bد1ÖÑñ”UM:7aX¯ÖêØµ¾¹7{ŽŠŸoÍÒKx·Ëï;Æ ”h¬€éºZ*'+ç4cö̼û%÷jó?Ö2LŽe¯“µ×W¼îs(ô–xzÉ‘Kl²«Ù·¤I˜g~™ô2'½·V›£ô‚aÇí·m Þœ:ÿ/—ÅáCòb‘]ëeKMà^¡Rò§…OÄß[µ˜…Ïamº…‰7=÷‹ˆðL;ef”ç±òŠòâ=Çq†ò"'McLŒf7³À>“&>T=M:9ë€èTîáºW:fÀ‰>ÞƒßÄï~NvÙ%«Þ$%à]÷ïTß Òg*½Bû99ËÄúëH¨†F°Á¥Um?0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark libwmf-0.2.13/fonts/NimbusSans-BoldItalic.afm000066400000000000000000003417631441723000300207710ustar00rootroot00000000000000StartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development Comment Creation Date: 7/20/2017 FontName NimbusSans-BoldItalic FullName Nimbus Sans Bold Italic FamilyName Nimbus Sans Weight Bold ItalicAngle -12.0 IsFixedPitch false UnderlinePosition -111 UnderlineThickness 69 Version 1.00 Notice (URW)++,Copyright 2014 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -144 -309 1196 1073 CapHeight 729 XHeight 540 Descender 0 Ascender 0 StartCharMetrics 855 C 32 ; WX 278 ; N space ; B 245 0 245 0 ; C 33 ; WX 333 ; N exclam ; B 112 0 417 726 ; C 34 ; WX 474 ; N quotedbl ; B 177 470 579 729 ; C 35 ; WX 556 ; N numbersign ; B 33 -32 660 697 ; C 36 ; WX 556 ; N dollar ; B 59 -126 628 763 ; C 37 ; WX 889 ; N percent ; B 129 -20 903 709 ; C 38 ; WX 722 ; N ampersand ; B 89 -23 720 723 ; C 39 ; WX 278 ; N quoteright ; B 165 469 356 729 ; C 40 ; WX 333 ; N parenleft ; B 84 -200 458 729 ; C 41 ; WX 333 ; N parenright ; B -21 -200 356 729 ; C 42 ; WX 389 ; N asterisk ; B 145 407 478 729 ; C 43 ; WX 584 ; N plus ; B 87 -10 596 473 ; C 44 ; WX 278 ; N comma ; B 27 -174 245 146 ; C 45 ; WX 333 ; N hyphen ; B 70 207 371 342 ; C 46 ; WX 278 ; N period ; B 64 0 245 146 ; C 47 ; WX 278 ; N slash ; B -1 -14 427 714 ; C 48 ; WX 556 ; N zero ; B 81 -23 614 724 ; C 49 ; WX 556 ; N one ; B 172 0 529 709 ; C 50 ; WX 556 ; N two ; B 30 0 628 724 ; C 51 ; WX 556 ; N three ; B 67 -23 613 724 ; C 52 ; WX 556 ; N four ; B 57 0 599 709 ; C 53 ; WX 556 ; N five ; B 59 -23 641 709 ; C 54 ; WX 556 ; N six ; B 85 -23 625 724 ; C 55 ; WX 556 ; N seven ; B 131 0 679 709 ; C 56 ; WX 556 ; N eight ; B 60 -23 620 724 ; C 57 ; WX 556 ; N nine ; B 68 -23 611 724 ; C 58 ; WX 333 ; N colon ; B 113 0 374 520 ; C 59 ; WX 333 ; N semicolon ; B 76 -174 374 520 ; C 60 ; WX 584 ; N less ; B 77 -10 630 474 ; C 61 ; WX 584 ; N equal ; B 61 52 622 412 ; C 62 ; WX 584 ; N greater ; B 38 -10 591 474 ; C 63 ; WX 611 ; N question ; B 168 0 672 744 ; C 64 ; WX 975 ; N at ; B 73 -137 1032 745 ; C 65 ; WX 722 ; N A ; B 26 0 703 729 ; C 66 ; WX 722 ; N B ; B 82 0 762 729 ; C 67 ; WX 722 ; N C ; B 107 -23 793 741 ; C 68 ; WX 722 ; N D ; B 77 0 776 729 ; C 69 ; WX 667 ; N E ; B 79 0 762 729 ; C 70 ; WX 611 ; N F ; B 74 0 741 729 ; C 71 ; WX 778 ; N G ; B 107 -23 819 741 ; C 72 ; WX 722 ; N H ; B 68 0 812 729 ; C 73 ; WX 278 ; N I ; B 63 0 368 729 ; C 74 ; WX 556 ; N J ; B 59 -23 641 729 ; C 75 ; WX 722 ; N K ; B 74 0 843 729 ; C 76 ; WX 611 ; N L ; B 80 0 606 729 ; C 77 ; WX 833 ; N M ; B 66 0 931 729 ; C 78 ; WX 722 ; N N ; B 68 0 816 729 ; C 79 ; WX 778 ; N O ; B 106 -23 828 741 ; C 80 ; WX 667 ; N P ; B 76 0 747 729 ; C 81 ; WX 778 ; N Q ; B 109 -54 831 741 ; C 82 ; WX 722 ; N R ; B 80 0 785 729 ; C 83 ; WX 667 ; N S ; B 76 -23 725 741 ; C 84 ; WX 611 ; N T ; B 142 0 753 729 ; C 85 ; WX 722 ; N U ; B 119 -23 809 729 ; C 86 ; WX 667 ; N V ; B 179 0 802 729 ; C 87 ; WX 944 ; N W ; B 168 0 1087 729 ; C 88 ; WX 667 ; N X ; B 22 0 802 729 ; C 89 ; WX 667 ; N Y ; B 182 0 805 729 ; C 90 ; WX 611 ; N Z ; B 30 0 733 729 ; C 91 ; WX 333 ; N bracketleft ; B 23 -200 463 729 ; C 92 ; WX 278 ; N backslash ; B 138 -23 285 709 ; C 93 ; WX 333 ; N bracketright ; B -25 -200 415 729 ; C 94 ; WX 584 ; N asciicircum ; B 119 270 580 695 ; C 95 ; WX 556 ; N underscore ; B -65 -145 550 -76 ; C 96 ; WX 278 ; N quoteleft ; B 167 469 357 729 ; C 97 ; WX 556 ; N a ; B 50 -23 578 549 ; C 98 ; WX 611 ; N b ; B 59 -23 640 729 ; C 99 ; WX 556 ; N c ; B 77 -23 597 549 ; C 100 ; WX 611 ; N d ; B 79 -23 700 729 ; C 101 ; WX 556 ; N e ; B 64 -23 591 549 ; C 102 ; WX 333 ; N f ; B 90 0 464 729 ; C 103 ; WX 611 ; N g ; B 26 -218 656 549 ; C 104 ; WX 611 ; N h ; B 67 0 629 729 ; C 105 ; WX 278 ; N i ; B 67 0 362 729 ; C 106 ; WX 278 ; N j ; B -43 -218 365 729 ; C 107 ; WX 556 ; N k ; B 59 0 651 729 ; C 108 ; WX 278 ; N l ; B 67 0 362 729 ; C 109 ; WX 889 ; N m ; B 60 0 911 549 ; C 110 ; WX 611 ; N n ; B 63 0 629 549 ; C 111 ; WX 611 ; N o ; B 82 -23 634 549 ; C 112 ; WX 611 ; N p ; B 11 -218 637 549 ; C 113 ; WX 611 ; N q ; B 72 -218 659 549 ; C 114 ; WX 389 ; N r ; B 63 0 487 549 ; C 115 ; WX 556 ; N s ; B 60 -23 589 549 ; C 116 ; WX 333 ; N t ; B 101 -23 414 674 ; C 117 ; WX 611 ; N u ; B 88 -23 656 540 ; C 118 ; WX 556 ; N v ; B 129 0 651 540 ; C 119 ; WX 778 ; N w ; B 120 0 881 540 ; C 120 ; WX 556 ; N x ; B 16 0 648 540 ; C 121 ; WX 556 ; N y ; B 37 -219 653 540 ; C 122 ; WX 500 ; N z ; B 21 0 575 540 ; C 123 ; WX 389 ; N braceleft ; B 84 -200 472 729 ; C 124 ; WX 280 ; N bar ; B 57 -200 335 729 ; C 125 ; WX 389 ; N braceright ; B 29 -200 419 729 ; C 126 ; WX 584 ; N asciitilde ; B 97 265 581 437 ; C 161 ; WX 333 ; N exclamdown ; B 26 -186 331 540 ; C 162 ; WX 556 ; N cent ; B 79 -124 598 634 ; C 163 ; WX 556 ; N sterling ; B 49 -23 629 715 ; C 164 ; WX 278 ; N fraction ; B -122 -20 544 715 ; C 165 ; WX 556 ; N yen ; B 107 0 702 704 ; C 166 ; WX 556 ; N florin ; B -21 -220 690 744 ; C 167 ; WX 556 ; N section ; B 56 -201 596 723 ; C 168 ; WX 556 ; N currency ; B 66 100 644 604 ; C 169 ; WX 238 ; N quotesingle ; B 177 470 343 729 ; C 170 ; WX 500 ; N quotedblleft ; B 171 469 588 729 ; C 171 ; WX 556 ; N guillemotleft ; B 135 72 571 481 ; C 172 ; WX 333 ; N guilsinglleft ; B 128 72 351 481 ; C 173 ; WX 333 ; N guilsinglright ; B 96 72 319 481 ; C 174 ; WX 611 ; N fi ; B 90 0 695 729 ; C 175 ; WX 611 ; N fl ; B 90 0 695 729 ; C 177 ; WX 556 ; N endash ; B 35 207 624 311 ; C 178 ; WX 556 ; N dagger ; B 109 -194 626 709 ; C 179 ; WX 556 ; N daggerdbl ; B 35 -194 623 709 ; C 180 ; WX 278 ; N periodcentered ; B 110 216 260 339 ; C 182 ; WX 556 ; N paragraph ; B 121 -191 684 729 ; C 183 ; WX 350 ; N bullet ; B 111 175 367 425 ; C 184 ; WX 278 ; N quotesinglbase ; B 37 -135 228 125 ; C 185 ; WX 500 ; N quotedblbase ; B 37 -135 462 125 ; C 186 ; WX 500 ; N quotedblright ; B 173 469 595 729 ; C 187 ; WX 556 ; N guillemotright ; B 103 72 533 481 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ; C 189 ; WX 1000 ; N perthousand ; B 72 -21 1021 739 ; C 191 ; WX 611 ; N questiondown ; B 52 -204 556 540 ; C 193 ; WX 333 ; N grave ; B 175 607 339 757 ; C 194 ; WX 333 ; N acute ; B 247 607 475 757 ; C 195 ; WX 333 ; N circumflex ; B 135 610 453 757 ; C 196 ; WX 333 ; N tilde ; B 117 622 500 744 ; C 197 ; WX 333 ; N macron ; B 150 642 467 722 ; C 198 ; WX 333 ; N breve ; B 188 611 455 754 ; C 199 ; WX 333 ; N dotaccent ; B 241 621 377 741 ; C 200 ; WX 333 ; N dieresis ; B 147 621 469 741 ; C 202 ; WX 333 ; N ring ; B 214 593 398 773 ; C 203 ; WX 333 ; N cedilla ; B -13 -220 270 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 82 610 498 757 ; C 206 ; WX 333 ; N ogonek ; B 23 -233 248 0 ; C 207 ; WX 333 ; N caron ; B 167 610 485 757 ; C 208 ; WX 1000 ; N emdash ; B 37 207 1070 311 ; C 225 ; WX 1000 ; N AE ; B 1 0 1104 729 ; C 227 ; WX 370 ; N ordfeminine ; B 96 262 451 729 ; C 232 ; WX 611 ; N Lslash ; B 54 0 624 729 ; C 233 ; WX 778 ; N Oslash ; B 34 -39 906 749 ; C 234 ; WX 1000 ; N OE ; B 90 -23 1107 741 ; C 235 ; WX 365 ; N ordmasculine ; B 92 262 471 729 ; C 241 ; WX 889 ; N ae ; B 54 -23 927 549 ; C 245 ; WX 278 ; N dotlessi ; B 67 0 322 540 ; C 248 ; WX 278 ; N lslash ; B 50 0 372 729 ; C 249 ; WX 611 ; N oslash ; B 12 -38 709 557 ; C 250 ; WX 944 ; N oe ; B 71 -23 986 549 ; C 251 ; WX 611 ; N germandbls ; B 67 -23 654 729 ; C -1 ; WX 278 ; N .notdef ; B 245 0 245 0 ; C -1 ; WX 1000 ; N AEacute ; B 1 0 1104 936 ; C -1 ; WX 722 ; N Aacute ; B 26 0 714 936 ; C -1 ; WX 722 ; N Abreve ; B 26 0 703 934 ; C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ; C -1 ; WX 722 ; N Adieresis ; B 26 0 708 920 ; C -1 ; WX 722 ; N Agrave ; B 26 0 703 936 ; C -1 ; WX 722 ; N Alpha ; B 26 0 703 729 ; C -1 ; WX 722 ; N Alphatonos ; B 26 0 703 729 ; C -1 ; WX 722 ; N Amacron ; B 26 0 706 901 ; C -1 ; WX 722 ; N Aogonek ; B 26 -233 703 729 ; C -1 ; WX 722 ; N Aring ; B 26 0 703 953 ; C -1 ; WX 722 ; N Aringacute ; B 26 0 703 1073 ; C -1 ; WX 722 ; N Atilde ; B 26 0 739 923 ; C -1 ; WX 722 ; N Beta ; B 82 0 762 729 ; C -1 ; WX 722 ; N Cacute ; B 107 -23 793 936 ; C -1 ; WX 722 ; N Ccaron ; B 107 -23 793 936 ; C -1 ; WX 722 ; N Ccedilla ; B 107 -220 793 741 ; C -1 ; WX 722 ; N Ccircumflex ; B 107 -23 793 937 ; C -1 ; WX 722 ; N Cdotaccent ; B 108 -23 788 922 ; C -1 ; WX 667 ; N Chi ; B 22 0 802 729 ; C -1 ; WX 722 ; N Dcaron ; B 77 0 776 936 ; C -1 ; WX 722 ; N Dcroat ; B 73 0 776 729 ; C -1 ; WX 612 ; N Delta ; B 4 0 608 630 ; C -1 ; WX 667 ; N Eacute ; B 79 0 762 936 ; C -1 ; WX 667 ; N Ebreve ; B 79 0 762 934 ; C -1 ; WX 667 ; N Ecaron ; B 79 0 762 936 ; C -1 ; WX 667 ; N Ecircumflex ; B 79 0 762 936 ; C -1 ; WX 667 ; N Edieresis ; B 79 0 762 920 ; C -1 ; WX 667 ; N Edotaccent ; B 79 0 762 918 ; C -1 ; WX 667 ; N Egrave ; B 79 0 762 936 ; C -1 ; WX 667 ; N Emacron ; B 79 0 762 901 ; C -1 ; WX 723 ; N Eng ; B 75 -218 775 741 ; C -1 ; WX 667 ; N Eogonek ; B 79 -233 762 729 ; C -1 ; WX 667 ; N Epsilon ; B 79 0 762 729 ; C -1 ; WX 854 ; N Epsilontonos ; B 186 0 897 729 ; C -1 ; WX 722 ; N Eta ; B 68 0 812 729 ; C -1 ; WX 906 ; N Etatonos ; B 179 0 951 729 ; C -1 ; WX 722 ; N Eth ; B 73 0 776 729 ; C -1 ; WX 556 ; N Euro ; B 21 -23 648 724 ; C -1 ; WX 610 ; N Gamma ; B 78 0 745 729 ; C -1 ; WX 778 ; N Gbreve ; B 107 -23 819 934 ; C -1 ; WX 778 ; N Gcircumflex ; B 107 -23 819 936 ; C -1 ; WX 778 ; N Gcommaaccent ; B 107 -307 819 741 ; C -1 ; WX 778 ; N Gdotaccent ; B 109 -23 817 922 ; C -1 ; WX 604 ; N H18533 ; B 43 0 562 519 ; C -1 ; WX 354 ; N H18543 ; B 49 131 305 387 ; C -1 ; WX 354 ; N H18551 ; B 49 131 305 388 ; C -1 ; WX 722 ; N Hbar ; B 68 0 855 729 ; C -1 ; WX 722 ; N Hcircumflex ; B 68 0 812 936 ; C -1 ; WX 782 ; N IJ ; B 63 -23 872 729 ; C -1 ; WX 278 ; N Iacute ; B 63 0 489 936 ; C -1 ; WX 278 ; N Ibreve ; B 64 0 462 934 ; C -1 ; WX 278 ; N Icircumflex ; B 63 0 467 936 ; C -1 ; WX 278 ; N Idieresis ; B 63 0 483 920 ; C -1 ; WX 278 ; N Idotaccent ; B 63 0 388 918 ; C -1 ; WX 719 ; N Ifraktur ; B 71 -71 651 698 ; C -1 ; WX 278 ; N Igrave ; B 63 0 368 936 ; C -1 ; WX 278 ; N Imacron ; B 63 0 466 901 ; C -1 ; WX 278 ; N Iogonek ; B 7 -233 368 729 ; C -1 ; WX 278 ; N Iota ; B 63 0 368 729 ; C -1 ; WX 278 ; N Iotadieresis ; B 63 0 483 922 ; C -1 ; WX 473 ; N Iotatonos ; B 182 0 515 729 ; C -1 ; WX 278 ; N Itilde ; B 63 0 518 923 ; C -1 ; WX 556 ; N Jcircumflex ; B 59 -23 726 936 ; C -1 ; WX 722 ; N Kappa ; B 74 0 843 729 ; C -1 ; WX 722 ; N Kcommaaccent ; B 74 -307 843 729 ; C -1 ; WX 611 ; N Lacute ; B 80 0 606 936 ; C -1 ; WX 667 ; N Lambda ; B -5 0 672 729 ; C -1 ; WX 611 ; N Lcaron ; B 80 0 607 729 ; C -1 ; WX 611 ; N Lcommaaccent ; B 80 -309 606 729 ; C -1 ; WX 611 ; N Ldot ; B 80 0 630 729 ; C -1 ; WX 833 ; N Mu ; B 66 0 931 729 ; C -1 ; WX 722 ; N Nacute ; B 68 0 816 936 ; C -1 ; WX 722 ; N Ncaron ; B 68 0 816 936 ; C -1 ; WX 722 ; N Ncommaaccent ; B 68 -307 816 729 ; C -1 ; WX 722 ; N Ntilde ; B 68 0 816 923 ; C -1 ; WX 722 ; N Nu ; B 68 0 816 729 ; C -1 ; WX 778 ; N Oacute ; B 106 -23 828 936 ; C -1 ; WX 778 ; N Obreve ; B 106 -23 828 934 ; C -1 ; WX 778 ; N Ocircumflex ; B 106 -23 828 936 ; C -1 ; WX 778 ; N Odieresis ; B 106 -23 828 920 ; C -1 ; WX 778 ; N Ograve ; B 106 -23 828 936 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 106 -23 841 936 ; C -1 ; WX 778 ; N Omacron ; B 106 -23 828 901 ; C -1 ; WX 847 ; N Omegatonos ; B 81 0 888 742 ; C -1 ; WX 778 ; N Omicron ; B 106 -23 828 741 ; C -1 ; WX 844 ; N Omicrontonos ; B 146 -23 881 741 ; C -1 ; WX 778 ; N Oslashacute ; B 34 -39 906 936 ; C -1 ; WX 778 ; N Otilde ; B 106 -23 828 923 ; C -1 ; WX 822 ; N Phi ; B 129 -14 850 743 ; C -1 ; WX 718 ; N Pi ; B 64 0 808 729 ; C -1 ; WX 829 ; N Psi ; B 145 0 921 729 ; C -1 ; WX 722 ; N Racute ; B 80 0 785 936 ; C -1 ; WX 722 ; N Rcaron ; B 80 0 785 936 ; C -1 ; WX 722 ; N Rcommaaccent ; B 80 -307 785 729 ; C -1 ; WX 778 ; N Rfraktur ; B 72 -6 693 604 ; C -1 ; WX 667 ; N Rho ; B 76 0 747 729 ; C -1 ; WX 1000 ; N SF010000 ; B 467 -250 1000 283 ; C -1 ; WX 1000 ; N SF020000 ; B 467 217 1000 750 ; C -1 ; WX 1000 ; N SF030000 ; B 0 -250 533 283 ; C -1 ; WX 1000 ; N SF040000 ; B 0 217 533 750 ; C -1 ; WX 1000 ; N SF050000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF060000 ; B 0 -250 1000 283 ; C -1 ; WX 1000 ; N SF070000 ; B 0 217 1000 750 ; C -1 ; WX 1000 ; N SF080000 ; B 467 -250 1000 750 ; C -1 ; WX 1000 ; N SF090000 ; B 0 -250 533 750 ; C -1 ; WX 1000 ; N SF100000 ; B 0 217 1000 283 ; C -1 ; WX 1000 ; N SF110000 ; B 467 -250 533 750 ; C -1 ; WX 1000 ; N SF190000 ; B 0 -250 533 750 ; C -1 ; WX 1000 ; N SF200000 ; B 0 -250 599 750 ; C -1 ; WX 1000 ; N SF210000 ; B 0 -250 599 283 ; C -1 ; WX 1000 ; N SF220000 ; B 0 -250 533 349 ; C -1 ; WX 1000 ; N SF230000 ; B 0 -250 599 750 ; C -1 ; WX 1000 ; N SF240000 ; B 401 -250 599 750 ; C -1 ; WX 1000 ; N SF250000 ; B 0 -250 599 349 ; C -1 ; WX 1000 ; N SF260000 ; B 0 151 599 750 ; C -1 ; WX 1000 ; N SF270000 ; B 0 217 599 750 ; C -1 ; WX 1000 ; N SF280000 ; B 0 151 533 750 ; C -1 ; WX 1000 ; N SF360000 ; B 467 -250 1000 750 ; C -1 ; WX 1000 ; N SF370000 ; B 401 -250 1000 750 ; C -1 ; WX 1000 ; N SF380000 ; B 401 151 1000 750 ; C -1 ; WX 1000 ; N SF390000 ; B 401 -250 1000 349 ; C -1 ; WX 1000 ; N SF400000 ; B 0 151 1000 750 ; C -1 ; WX 1000 ; N SF410000 ; B 0 -250 1000 349 ; C -1 ; WX 1000 ; N SF420000 ; B 401 -250 1000 750 ; C -1 ; WX 1000 ; N SF430000 ; B 0 151 1000 349 ; C -1 ; WX 1000 ; N SF440000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF450000 ; B 0 151 1000 750 ; C -1 ; WX 1000 ; N SF460000 ; B 0 217 1000 750 ; C -1 ; WX 1000 ; N SF470000 ; B 0 -250 1000 349 ; C -1 ; WX 1000 ; N SF480000 ; B 0 -250 1000 283 ; C -1 ; WX 1000 ; N SF490000 ; B 401 217 1000 750 ; C -1 ; WX 1000 ; N SF500000 ; B 467 151 1000 750 ; C -1 ; WX 1000 ; N SF510000 ; B 467 -250 1000 349 ; C -1 ; WX 1000 ; N SF520000 ; B 401 -250 1000 283 ; C -1 ; WX 1000 ; N SF530000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF540000 ; B 0 -250 1000 750 ; C -1 ; WX 667 ; N Sacute ; B 76 -23 725 936 ; C -1 ; WX 667 ; N Scaron ; B 76 -23 725 936 ; C -1 ; WX 667 ; N Scedilla ; B 76 -220 725 741 ; C -1 ; WX 667 ; N Scircumflex ; B 76 -23 725 936 ; C -1 ; WX 667 ; N Scommaaccent ; B 76 -307 725 741 ; C -1 ; WX 590 ; N Sigma ; B 21 0 702 729 ; C -1 ; WX 611 ; N Tau ; B 142 0 753 729 ; C -1 ; WX 611 ; N Tbar ; B 142 0 753 729 ; C -1 ; WX 611 ; N Tcaron ; B 142 0 753 936 ; C -1 ; WX 611 ; N Tcommaaccent ; B 142 -209 753 729 ; C -1 ; WX 778 ; N Theta ; B 106 -23 828 741 ; C -1 ; WX 667 ; N Thorn ; B 76 0 721 729 ; C -1 ; WX 722 ; N Uacute ; B 119 -23 809 936 ; C -1 ; WX 722 ; N Ubreve ; B 119 -23 809 934 ; C -1 ; WX 722 ; N Ucircumflex ; B 119 -23 809 936 ; C -1 ; WX 722 ; N Udieresis ; B 119 -23 809 920 ; C -1 ; WX 722 ; N Ugrave ; B 119 -23 809 936 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 119 -23 809 936 ; C -1 ; WX 722 ; N Umacron ; B 119 -23 809 901 ; C -1 ; WX 722 ; N Uogonek ; B 119 -233 809 729 ; C -1 ; WX 667 ; N Upsilon ; B 182 0 805 729 ; C -1 ; WX 667 ; N Upsilondieresis ; B 182 0 805 922 ; C -1 ; WX 930 ; N Upsilontonos ; B 213 0 989 729 ; C -1 ; WX 722 ; N Uring ; B 119 -23 809 953 ; C -1 ; WX 722 ; N Utilde ; B 119 -23 809 923 ; C -1 ; WX 944 ; N Wacute ; B 168 0 1087 936 ; C -1 ; WX 944 ; N Wcircumflex ; B 168 0 1087 936 ; C -1 ; WX 944 ; N Wdieresis ; B 168 0 1087 920 ; C -1 ; WX 944 ; N Wgrave ; B 168 0 1087 933 ; C -1 ; WX 657 ; N Xi ; B 34 0 772 729 ; C -1 ; WX 667 ; N Yacute ; B 182 0 805 936 ; C -1 ; WX 667 ; N Ycircumflex ; B 182 0 805 936 ; C -1 ; WX 667 ; N Ydieresis ; B 182 0 805 920 ; C -1 ; WX 667 ; N Ygrave ; B 182 0 805 936 ; C -1 ; WX 611 ; N Zacute ; B 30 0 733 936 ; C -1 ; WX 611 ; N Zcaron ; B 30 0 733 936 ; C -1 ; WX 611 ; N Zdotaccent ; B 30 0 733 918 ; C -1 ; WX 611 ; N Zeta ; B 30 0 733 729 ; C -1 ; WX 556 ; N aacute ; B 50 -23 587 757 ; C -1 ; WX 556 ; N abreve ; B 50 -23 578 754 ; C -1 ; WX 556 ; N acircumflex ; B 50 -23 578 757 ; C -1 ; WX 556 ; N adieresis ; B 50 -23 581 741 ; C -1 ; WX 889 ; N aeacute ; B 54 -23 927 756 ; C -1 ; WX 1000 ; N afii00208 ; B 37 207 1070 311 ; C -1 ; WX 722 ; N afii10017 ; B 23 0 700 729 ; C -1 ; WX 708 ; N afii10018 ; B 69 0 753 729 ; C -1 ; WX 722 ; N afii10019 ; B 79 0 757 729 ; C -1 ; WX 614 ; N afii10020 ; B 86 0 696 729 ; C -1 ; WX 722 ; N afii10021 ; B -27 -136 795 729 ; C -1 ; WX 667 ; N afii10022 ; B 73 0 755 729 ; C -1 ; WX 667 ; N afii10023 ; B 73 0 755 920 ; C -1 ; WX 927 ; N afii10024 ; B -10 0 1044 729 ; C -1 ; WX 643 ; N afii10025 ; B 106 -23 676 741 ; C -1 ; WX 719 ; N afii10026 ; B 65 0 809 729 ; C -1 ; WX 719 ; N afii10027 ; B 65 0 809 907 ; C -1 ; WX 615 ; N afii10028 ; B 56 0 701 729 ; C -1 ; WX 687 ; N afii10029 ; B -3 -1 772 729 ; C -1 ; WX 833 ; N afii10030 ; B 61 0 926 729 ; C -1 ; WX 722 ; N afii10031 ; B 66 0 810 729 ; C -1 ; WX 778 ; N afii10032 ; B 108 -23 822 741 ; C -1 ; WX 719 ; N afii10033 ; B 72 0 803 729 ; C -1 ; WX 667 ; N afii10034 ; B 69 0 737 729 ; C -1 ; WX 722 ; N afii10035 ; B 104 -23 785 741 ; C -1 ; WX 611 ; N afii10036 ; B 142 0 753 729 ; C -1 ; WX 677 ; N afii10037 ; B 79 0 808 729 ; C -1 ; WX 781 ; N afii10038 ; B 96 0 814 729 ; C -1 ; WX 667 ; N afii10039 ; B 22 0 799 729 ; C -1 ; WX 729 ; N afii10040 ; B 68 -156 789 729 ; C -1 ; WX 708 ; N afii10041 ; B 123 0 800 729 ; C -1 ; WX 979 ; N afii10042 ; B 67 0 1067 729 ; C -1 ; WX 989 ; N afii10043 ; B 63 -161 1053 729 ; C -1 ; WX 854 ; N afii10044 ; B 136 0 850 729 ; C -1 ; WX 1000 ; N afii10045 ; B 117 0 1037 729 ; C -1 ; WX 708 ; N afii10046 ; B 94 0 690 729 ; C -1 ; WX 719 ; N afii10047 ; B 72 -23 773 741 ; C -1 ; WX 1042 ; N afii10048 ; B 51 -23 1086 741 ; C -1 ; WX 729 ; N afii10049 ; B 55 0 803 729 ; C -1 ; WX 575 ; N afii10050 ; B 123 0 791 851 ; C -1 ; WX 886 ; N afii10051 ; B 203 0 865 729 ; C -1 ; WX 614 ; N afii10052 ; B 79 0 696 909 ; C -1 ; WX 719 ; N afii10053 ; B 99 -23 786 741 ; C -1 ; WX 667 ; N afii10054 ; B 76 -23 719 741 ; C -1 ; WX 278 ; N afii10055 ; B 64 0 369 729 ; C -1 ; WX 278 ; N afii10056 ; B 63 0 482 920 ; C -1 ; WX 556 ; N afii10057 ; B 62 -23 645 729 ; C -1 ; WX 1094 ; N afii10058 ; B 16 -1 1083 729 ; C -1 ; WX 1042 ; N afii10059 ; B 56 0 1061 729 ; C -1 ; WX 854 ; N afii10060 ; B 160 0 797 729 ; C -1 ; WX 622 ; N afii10061 ; B 60 0 707 907 ; C -1 ; WX 677 ; N afii10062 ; B 79 0 808 931 ; C -1 ; WX 556 ; N afii10065 ; B 55 -23 580 549 ; C -1 ; WX 619 ; N afii10066 ; B 90 -23 701 847 ; C -1 ; WX 604 ; N afii10067 ; B 82 0 623 540 ; C -1 ; WX 534 ; N afii10068 ; B 68 0 576 540 ; C -1 ; WX 618 ; N afii10069 ; B -9 -112 660 540 ; C -1 ; WX 556 ; N afii10070 ; B 74 -24 595 549 ; C -1 ; WX 556 ; N afii10071 ; B 74 -24 595 741 ; C -1 ; WX 736 ; N afii10072 ; B -4 0 832 540 ; C -1 ; WX 510 ; N afii10073 ; B 74 -23 538 549 ; C -1 ; WX 611 ; N afii10074 ; B 68 0 658 540 ; C -1 ; WX 611 ; N afii10075 ; B 68 0 658 726 ; C -1 ; WX 507 ; N afii10076 ; B 52 0 586 540 ; C -1 ; WX 622 ; N afii10077 ; B 30 0 659 540 ; C -1 ; WX 740 ; N afii10078 ; B 81 0 774 540 ; C -1 ; WX 604 ; N afii10079 ; B 64 0 654 540 ; C -1 ; WX 611 ; N afii10080 ; B 85 -23 637 549 ; C -1 ; WX 611 ; N afii10081 ; B 76 0 649 540 ; C -1 ; WX 611 ; N afii10082 ; B 14 -218 640 549 ; C -1 ; WX 556 ; N afii10083 ; B 81 -22 598 549 ; C -1 ; WX 889 ; N afii10084 ; B 222 0 850 540 ; C -1 ; WX 556 ; N afii10085 ; B 49 -222 662 540 ; C -1 ; WX 885 ; N afii10086 ; B 122 -218 879 736 ; C -1 ; WX 556 ; N afii10087 ; B 18 0 648 540 ; C -1 ; WX 646 ; N afii10088 ; B 87 -155 655 540 ; C -1 ; WX 583 ; N afii10089 ; B 102 0 642 540 ; C -1 ; WX 889 ; N afii10090 ; B 62 0 942 540 ; C -1 ; WX 935 ; N afii10091 ; B 75 -157 955 540 ; C -1 ; WX 707 ; N afii10092 ; B 105 0 699 540 ; C -1 ; WX 854 ; N afii10093 ; B 101 0 867 540 ; C -1 ; WX 594 ; N afii10094 ; B 82 0 589 540 ; C -1 ; WX 552 ; N afii10095 ; B 43 -23 594 549 ; C -1 ; WX 865 ; N afii10096 ; B 57 -23 887 549 ; C -1 ; WX 589 ; N afii10097 ; B 52 0 631 540 ; C -1 ; WX 467 ; N afii10098 ; B 69 0 709 698 ; C -1 ; WX 611 ; N afii10099 ; B 142 -140 604 736 ; C -1 ; WX 469 ; N afii10100 ; B 63 0 567 756 ; C -1 ; WX 563 ; N afii10101 ; B 73 -23 611 549 ; C -1 ; WX 556 ; N afii10102 ; B 61 -23 587 549 ; C -1 ; WX 278 ; N afii10103 ; B 69 0 364 729 ; C -1 ; WX 278 ; N afii10104 ; B 67 0 442 741 ; C -1 ; WX 278 ; N afii10105 ; B -41 -218 366 729 ; C -1 ; WX 969 ; N afii10106 ; B 33 0 960 540 ; C -1 ; WX 906 ; N afii10107 ; B 70 0 912 540 ; C -1 ; WX 611 ; N afii10108 ; B 95 0 644 736 ; C -1 ; WX 507 ; N afii10109 ; B 57 0 596 756 ; C -1 ; WX 556 ; N afii10110 ; B 49 -222 662 739 ; C -1 ; WX 719 ; N afii10145 ; B 77 -159 798 729 ; C -1 ; WX 611 ; N afii10193 ; B 79 -157 647 540 ; C -1 ; WX 575 ; N afii10846 ; B 84 -23 606 549 ; C -1 ; WX 885 ; N afii61248 ; B 145 -16 891 731 ; C -1 ; WX 516 ; N afii61289 ; B 75 -18 527 739 ; C -1 ; WX 1146 ; N afii61352 ; B 60 0 1196 741 ; C -1 ; WX 556 ; N agrave ; B 50 -23 578 757 ; C -1 ; WX 500 ; N aleph ; B 28 0 473 631 ; C -1 ; WX 620 ; N alpha ; B 85 -23 734 549 ; C -1 ; WX 620 ; N alphatonos ; B 90 -23 735 789 ; C -1 ; WX 556 ; N amacron ; B 50 -23 579 722 ; C -1 ; WX 1000 ; N angle ; B 211 0 789 417 ; C -1 ; WX 333 ; N angleleft ; B 58 -125 275 602 ; C -1 ; WX 333 ; N angleright ; B 58 -125 275 602 ; C -1 ; WX 556 ; N aogonek ; B 50 -233 578 549 ; C -1 ; WX 549 ; N approxequal ; B 57 36 606 419 ; C -1 ; WX 556 ; N aring ; B 50 -23 578 773 ; C -1 ; WX 556 ; N aringacute ; B 50 -23 578 884 ; C -1 ; WX 1000 ; N arrowboth ; B 123 143 879 479 ; C -1 ; WX 722 ; N arrowdblboth ; B -53 73 776 517 ; C -1 ; WX 722 ; N arrowdbldown ; B 139 0 583 648 ; C -1 ; WX 722 ; N arrowdblleft ; B 8 73 713 517 ; C -1 ; WX 722 ; N arrowdblright ; B 9 73 714 517 ; C -1 ; WX 722 ; N arrowdblup ; B 139 0 583 648 ; C -1 ; WX 500 ; N arrowdown ; B 80 -102 416 725 ; C -1 ; WX 1000 ; N arrowleft ; B 86 143 913 479 ; C -1 ; WX 1000 ; N arrowright ; B 86 143 913 479 ; C -1 ; WX 500 ; N arrowup ; B 80 -102 416 725 ; C -1 ; WX 500 ; N arrowupdn ; B 82 -35 418 721 ; C -1 ; WX 500 ; N arrowupdnbse ; B 82 -111 418 781 ; C -1 ; WX 1000 ; N asteriskmath ; B 357 101 643 382 ; C -1 ; WX 556 ; N atilde ; B 50 -23 612 744 ; C -1 ; WX 621 ; N beta ; B 26 -218 655 740 ; C -1 ; WX 1000 ; N block ; B 0 -250 1000 750 ; C -1 ; WX 280 ; N brokenbar ; B 57 -200 335 729 ; C -1 ; WX 556 ; N cacute ; B 77 -23 597 757 ; C -1 ; WX 1000 ; N carriagereturn ; B 162 138 884 517 ; C -1 ; WX 556 ; N ccaron ; B 77 -23 607 757 ; C -1 ; WX 556 ; N ccedilla ; B 77 -220 597 549 ; C -1 ; WX 556 ; N ccircumflex ; B 77 -23 597 757 ; C -1 ; WX 556 ; N cdotaccent ; B 77 -23 597 741 ; C -1 ; WX 578 ; N chi ; B -35 -218 664 540 ; C -1 ; WX 604 ; N circle ; B 23 86 581 644 ; C -1 ; WX 1000 ; N circlemultiply ; B 141 -24 858 695 ; C -1 ; WX 656 ; N club ; B -37 0 693 729 ; C -1 ; WX 1000 ; N congruent ; B 259 97 740 435 ; C -1 ; WX 737 ; N copyright ; B 54 -22 837 743 ; C -1 ; WX 743 ; N dcaron ; B 90 -23 893 729 ; C -1 ; WX 611 ; N dcroat ; B 79 -23 746 729 ; C -1 ; WX 400 ; N degree ; B 164 383 467 686 ; C -1 ; WX 610 ; N delta ; B 85 -23 667 749 ; C -1 ; WX 510 ; N diamond ; B -8 -28 546 757 ; C -1 ; WX 333 ; N dieresistonos ; B 150 621 472 889 ; C -1 ; WX 584 ; N divide ; B 77 0 606 462 ; C -1 ; WX 996 ; N dkshade ; B -2 -250 998 750 ; C -1 ; WX 1000 ; N dnblock ; B 0 -250 1000 250 ; C -1 ; WX 556 ; N eacute ; B 64 -23 591 757 ; C -1 ; WX 556 ; N ebreve ; B 64 -23 591 754 ; C -1 ; WX 556 ; N ecaron ; B 64 -23 593 757 ; C -1 ; WX 556 ; N ecircumflex ; B 64 -23 591 757 ; C -1 ; WX 556 ; N edieresis ; B 64 -23 591 741 ; C -1 ; WX 556 ; N edotaccent ; B 64 -23 591 741 ; C -1 ; WX 556 ; N egrave ; B 64 -23 591 757 ; C -1 ; WX 333 ; N eightsuperior ; B 87 271 438 718 ; C -1 ; WX 1000 ; N element ; B 233 0 767 494 ; C -1 ; WX 556 ; N emacron ; B 64 -23 591 722 ; C -1 ; WX 1000 ; N emptyset ; B 95 -13 901 693 ; C -1 ; WX 611 ; N eng ; B 63 -218 629 549 ; C -1 ; WX 556 ; N eogonek ; B 64 -233 591 549 ; C -1 ; WX 479 ; N epsilon ; B 51 -23 570 549 ; C -1 ; WX 479 ; N epsilontonos ; B 58 -23 570 789 ; C -1 ; WX 583 ; N equivalence ; B 47 -10 634 470 ; C -1 ; WX 600 ; N estimated ; B 68 -16 548 532 ; C -1 ; WX 611 ; N eta ; B 66 -218 633 549 ; C -1 ; WX 611 ; N etatonos ; B 66 -218 633 789 ; C -1 ; WX 611 ; N eth ; B 83 -23 633 744 ; C -1 ; WX 604 ; N exclamdbl ; B 81 0 677 726 ; C -1 ; WX 424 ; N existential ; B 51 0 376 577 ; C -1 ; WX 750 ; N female ; B 189 51 561 729 ; C -1 ; WX 666 ; N ff ; B 90 0 797 729 ; C -1 ; WX 943 ; N ffi ; B 90 0 1028 729 ; C -1 ; WX 943 ; N ffl ; B 90 0 1028 729 ; C -1 ; WX 604 ; N filledbox ; B -63 0 666 729 ; C -1 ; WX 1000 ; N filledrect ; B 136 0 865 365 ; C -1 ; WX 834 ; N fiveeighths ; B 104 -20 873 725 ; C -1 ; WX 333 ; N fivesuperior ; B 87 271 451 709 ; C -1 ; WX 333 ; N foursuperior ; B 84 284 425 709 ; C -1 ; WX 556 ; N franc ; B 27 0 671 712 ; C -1 ; WX 556 ; N gamma ; B 129 -218 657 540 ; C -1 ; WX 611 ; N gbreve ; B 26 -218 656 754 ; C -1 ; WX 611 ; N gcircumflex ; B 26 -218 656 757 ; C -1 ; WX 611 ; N gcommaaccent ; B 26 -218 656 854 ; C -1 ; WX 611 ; N gdotaccent ; B 28 -218 655 743 ; C -1 ; WX 741 ; N gradient ; B 69 0 673 630 ; C -1 ; WX 549 ; N greaterequal ; B 27 0 610 624 ; C -1 ; WX 611 ; N hbar ; B 67 0 624 729 ; C -1 ; WX 611 ; N hcircumflex ; B 67 0 629 936 ; C -1 ; WX 594 ; N heart ; B -26 -28 620 729 ; C -1 ; WX 604 ; N house ; B 11 0 594 729 ; C -1 ; WX 278 ; N iacute ; B 67 0 448 757 ; C -1 ; WX 278 ; N ibreve ; B 67 0 428 754 ; C -1 ; WX 278 ; N icircumflex ; B 67 0 426 757 ; C -1 ; WX 278 ; N idieresis ; B 67 0 442 741 ; C -1 ; WX 278 ; N igrave ; B 67 0 322 757 ; C -1 ; WX 556 ; N ij ; B 87 -218 633 729 ; C -1 ; WX 278 ; N imacron ; B 67 0 424 722 ; C -1 ; WX 713 ; N infinity ; B 78 124 747 404 ; C -1 ; WX 274 ; N integral ; B 15 -105 287 913 ; C -1 ; WX 604 ; N integralbt ; B 179 -205 352 800 ; C -1 ; WX 604 ; N integraltp ; B 279 -205 452 800 ; C -1 ; WX 719 ; N intersection ; B 119 0 599 611 ; C -1 ; WX 604 ; N invbullet ; B -8 0 612 620 ; C -1 ; WX 604 ; N invcircle ; B -63 0 666 729 ; C -1 ; WX 1052 ; N invsmileface ; B 162 0 892 730 ; C -1 ; WX 278 ; N iogonek ; B 7 -233 358 729 ; C -1 ; WX 278 ; N iota ; B 69 0 324 540 ; C -1 ; WX 278 ; N iotadieresis ; B 69 0 445 743 ; C -1 ; WX 278 ; N iotadieresistonos ; B 69 0 445 889 ; C -1 ; WX 278 ; N iotatonos ; B 69 0 358 789 ; C -1 ; WX 278 ; N itilde ; B 67 0 473 744 ; C -1 ; WX 278 ; N jcircumflex ; B -43 -218 426 757 ; C -1 ; WX 566 ; N kappa ; B 64 0 666 540 ; C -1 ; WX 556 ; N kcommaaccent ; B 59 -307 651 729 ; C -1 ; WX 556 ; N kgreenlandic ; B 59 0 651 540 ; C -1 ; WX 278 ; N lacute ; B 67 0 474 936 ; C -1 ; WX 556 ; N lambda ; B 16 0 545 729 ; C -1 ; WX 400 ; N lcaron ; B 67 0 544 729 ; C -1 ; WX 278 ; N lcommaaccent ; B 11 -307 362 729 ; C -1 ; WX 479 ; N ldot ; B 68 0 546 729 ; C -1 ; WX 549 ; N lessequal ; B 18 0 640 624 ; C -1 ; WX 1000 ; N lfblock ; B 0 -250 500 750 ; C -1 ; WX 556 ; N lira ; B 49 -23 629 715 ; C -1 ; WX 584 ; N logicalnot ; B 103 86 632 376 ; C -1 ; WX 278 ; N longs ; B 62 0 436 729 ; C -1 ; WX 494 ; N lozenge ; B 98 0 544 744 ; C -1 ; WX 996 ; N ltshade ; B 31 -83 865 750 ; C -1 ; WX 750 ; N male ; B 103 158 648 729 ; C -1 ; WX 584 ; N minus ; B 77 172 606 292 ; C -1 ; WX 240 ; N minute ; B 103 417 231 673 ; C -1 ; WX 611 ; N mu ; B 11 -220 655 540 ; C -1 ; WX 584 ; N multiply ; B 102 18 582 444 ; C -1 ; WX 500 ; N musicalnote ; B 51 18 449 729 ; C -1 ; WX 750 ; N musicalnotedbl ; B 82 -29 638 645 ; C -1 ; WX 611 ; N nacute ; B 63 0 629 757 ; C -1 ; WX 708 ; N napostrophe ; B 105 0 724 729 ; C -1 ; WX 611 ; N ncaron ; B 63 0 629 757 ; C -1 ; WX 611 ; N ncommaaccent ; B 63 -307 629 549 ; C -1 ; WX 333 ; N ninesuperior ; B 92 271 433 718 ; C -1 ; WX 1000 ; N notelement ; B 233 -63 767 577 ; C -1 ; WX 549 ; N notequal ; B 44 -74 605 544 ; C -1 ; WX 1000 ; N notsubset ; B 233 -63 767 567 ; C -1 ; WX 396 ; N nsuperior ; B 105 284 461 615 ; C -1 ; WX 611 ; N ntilde ; B 63 0 646 744 ; C -1 ; WX 556 ; N nu ; B 128 0 650 540 ; C -1 ; WX 611 ; N oacute ; B 82 -23 634 757 ; C -1 ; WX 611 ; N obreve ; B 82 -23 634 754 ; C -1 ; WX 611 ; N ocircumflex ; B 82 -23 634 757 ; C -1 ; WX 611 ; N odieresis ; B 82 -23 634 741 ; C -1 ; WX 611 ; N ograve ; B 82 -23 634 757 ; C -1 ; WX 611 ; N ohungarumlaut ; B 82 -23 710 757 ; C -1 ; WX 611 ; N omacron ; B 82 -23 634 722 ; C -1 ; WX 834 ; N omega ; B 114 -25 824 540 ; C -1 ; WX 834 ; N omega1 ; B 122 -11 790 540 ; C -1 ; WX 834 ; N omegatonos ; B 114 -25 824 789 ; C -1 ; WX 611 ; N omicron ; B 85 -23 637 549 ; C -1 ; WX 611 ; N omicrontonos ; B 85 -23 637 789 ; C -1 ; WX 834 ; N oneeighth ; B 135 -20 866 715 ; C -1 ; WX 834 ; N onehalf ; B 139 -20 892 715 ; C -1 ; WX 834 ; N onequarter ; B 146 -20 848 715 ; C -1 ; WX 333 ; N onesuperior ; B 154 284 382 709 ; C -1 ; WX 498 ; N openbullet ; B 57 83 437 463 ; C -1 ; WX 979 ; N orthogonal ; B 50 0 930 870 ; C -1 ; WX 611 ; N oslashacute ; B 12 -38 709 757 ; C -1 ; WX 611 ; N otilde ; B 82 -23 639 744 ; C -1 ; WX 494 ; N partialdiff ; B 26 -15 462 750 ; C -1 ; WX 1000 ; N perpendicular ; B 201 0 799 598 ; C -1 ; WX 1104 ; N peseta ; B 74 -23 1111 712 ; C -1 ; WX 704 ; N phi ; B 69 -218 739 549 ; C -1 ; WX 757 ; N phi1 ; B 98 -218 771 663 ; C -1 ; WX 712 ; N pi ; B 116 0 781 540 ; C -1 ; WX 584 ; N plusminus ; B 50 0 630 633 ; C -1 ; WX 996 ; N product ; B 132 -241 895 720 ; C -1 ; WX 1000 ; N propersubset ; B 233 0 767 494 ; C -1 ; WX 1000 ; N propersuperset ; B 233 0 767 494 ; C -1 ; WX 1000 ; N proportional ; B 197 102 682 379 ; C -1 ; WX 773 ; N psi ; B 108 -218 822 540 ; C -1 ; WX 278 ; N quotereversed ; B 201 469 368 729 ; C -1 ; WX 389 ; N racute ; B 63 0 500 757 ; C -1 ; WX 549 ; N radical ; B 106 -36 709 913 ; C -1 ; WX 389 ; N rcaron ; B 63 0 533 757 ; C -1 ; WX 389 ; N rcommaaccent ; B 8 -307 487 549 ; C -1 ; WX 1000 ; N reflexsubset ; B 233 0 767 599 ; C -1 ; WX 1000 ; N reflexsuperset ; B 233 0 767 599 ; C -1 ; WX 737 ; N registered ; B 55 -22 837 743 ; C -1 ; WX 584 ; N revlogicalnot ; B 67 86 632 376 ; C -1 ; WX 605 ; N rho ; B 12 -218 640 550 ; C -1 ; WX 1000 ; N rtblock ; B 500 -250 1000 750 ; C -1 ; WX 556 ; N sacute ; B 60 -23 589 757 ; C -1 ; WX 556 ; N scaron ; B 60 -23 597 757 ; C -1 ; WX 556 ; N scedilla ; B 60 -220 589 549 ; C -1 ; WX 556 ; N scircumflex ; B 60 -23 589 757 ; C -1 ; WX 556 ; N scommaaccent ; B 60 -307 589 549 ; C -1 ; WX 479 ; N second ; B 127 417 388 673 ; C -1 ; WX 834 ; N seveneighths ; B 132 -20 863 724 ; C -1 ; WX 333 ; N sevensuperior ; B 131 284 475 709 ; C -1 ; WX 996 ; N shade ; B -2 -250 998 750 ; C -1 ; WX 664 ; N sigma ; B 109 -23 738 550 ; C -1 ; WX 333 ; N sixsuperior ; B 103 271 442 718 ; C -1 ; WX 1021 ; N smileface ; B 146 0 876 730 ; C -1 ; WX 531 ; N spade ; B 4 0 600 757 ; C -1 ; WX 1000 ; N suchthat ; B 233 0 767 494 ; C -1 ; WX 996 ; N summation ; B 235 -132 734 746 ; C -1 ; WX 917 ; N sun ; B 77 -17 841 746 ; C -1 ; WX 409 ; N tau ; B 106 0 503 540 ; C -1 ; WX 333 ; N tbar ; B 82 -23 414 674 ; C -1 ; WX 389 ; N tcaron ; B 101 -23 577 829 ; C -1 ; WX 333 ; N tcommaaccent ; B -13 -220 414 674 ; C -1 ; WX 1000 ; N therefore ; B 187 -3 807 625 ; C -1 ; WX 558 ; N theta ; B 85 -24 627 738 ; C -1 ; WX 591 ; N theta1 ; B 54 -23 670 738 ; C -1 ; WX 611 ; N thorn ; B 11 -218 637 729 ; C -1 ; WX 834 ; N threeeighths ; B 109 -20 872 718 ; C -1 ; WX 834 ; N threequarters ; B 103 -20 855 718 ; C -1 ; WX 333 ; N threesuperior ; B 91 271 434 718 ; C -1 ; WX 333 ; N tonos ; B 262 590 385 789 ; C -1 ; WX 1000 ; N trademark ; B 213 273 1087 729 ; C -1 ; WX 990 ; N triagdn ; B 195 39 795 600 ; C -1 ; WX 990 ; N triaglf ; B 193 137 759 537 ; C -1 ; WX 990 ; N triagrt ; B 232 137 798 537 ; C -1 ; WX 990 ; N triagup ; B 195 67 795 628 ; C -1 ; WX 333 ; N twosuperior ; B 68 284 443 718 ; C -1 ; WX 611 ; N uacute ; B 88 -23 656 757 ; C -1 ; WX 611 ; N ubreve ; B 88 -23 656 754 ; C -1 ; WX 611 ; N ucircumflex ; B 88 -23 656 757 ; C -1 ; WX 611 ; N udieresis ; B 88 -23 656 741 ; C -1 ; WX 611 ; N ugrave ; B 88 -23 656 757 ; C -1 ; WX 611 ; N uhungarumlaut ; B 88 -23 697 757 ; C -1 ; WX 611 ; N umacron ; B 88 -23 656 722 ; C -1 ; WX 552 ; N underscoredbl ; B -97 -287 548 -76 ; C -1 ; WX 278 ; N uni00A0 ; B 245 0 245 0 ; C -1 ; WX 333 ; N uni00AD ; B 70 207 371 342 ; C -1 ; WX 611 ; N uni021A ; B 142 -307 753 729 ; C -1 ; WX 333 ; N uni021B ; B 62 -307 414 674 ; C -1 ; WX 333 ; N uni02C9 ; B 150 642 467 722 ; C -1 ; WX 278 ; N uni0387 ; B 110 216 260 339 ; C -1 ; WX 671 ; N uni0394 ; B -18 0 688 729 ; C -1 ; WX 781 ; N uni03A9 ; B 27 0 834 742 ; C -1 ; WX 603 ; N uni03BC ; B 14 -218 658 540 ; C -1 ; WX 532 ; N uni03C2 ; B 79 -218 596 550 ; C -1 ; WX 667 ; N uni0400 ; B 79 0 762 936 ; C -1 ; WX 719 ; N uni040D ; B 65 0 809 936 ; C -1 ; WX 556 ; N uni0450 ; B 64 -23 591 757 ; C -1 ; WX 611 ; N uni045D ; B 68 0 658 757 ; C -1 ; WX 822 ; N uni0462 ; B 100 0 764 729 ; C -1 ; WX 847 ; N uni0463 ; B 147 0 777 672 ; C -1 ; WX 778 ; N uni0472 ; B 106 -23 828 741 ; C -1 ; WX 611 ; N uni0473 ; B 64 -23 616 549 ; C -1 ; WX 784 ; N uni0474 ; B 181 0 886 742 ; C -1 ; WX 614 ; N uni0475 ; B 137 0 666 546 ; C -1 ; WX 479 ; N uni0492 ; B 75 0 629 729 ; C -1 ; WX 400 ; N uni0493 ; B 64 0 509 540 ; C -1 ; WX 1126 ; N uni0496 ; B 55 -157 1135 729 ; C -1 ; WX 896 ; N uni0497 ; B 44 -161 901 540 ; C -1 ; WX 643 ; N uni0498 ; B 106 -220 676 741 ; C -1 ; WX 510 ; N uni0499 ; B 74 -220 538 549 ; C -1 ; WX 728 ; N uni049A ; B 67 -156 717 729 ; C -1 ; WX 605 ; N uni049B ; B 64 -160 598 540 ; C -1 ; WX 678 ; N uni049C ; B 67 0 780 729 ; C -1 ; WX 559 ; N uni049D ; B 63 0 637 540 ; C -1 ; WX 615 ; N uni04A0 ; B -58 0 702 729 ; C -1 ; WX 507 ; N uni04A1 ; B -38 0 586 540 ; C -1 ; WX 722 ; N uni04A2 ; B 67 -157 811 729 ; C -1 ; WX 603 ; N uni04A3 ; B 64 -159 654 540 ; C -1 ; WX 722 ; N uni04AA ; B 107 -220 793 741 ; C -1 ; WX 556 ; N uni04AB ; B 77 -220 597 549 ; C -1 ; WX 667 ; N uni04AE ; B 182 0 805 729 ; C -1 ; WX 543 ; N uni04AF ; B 126 -218 655 540 ; C -1 ; WX 667 ; N uni04B0 ; B 162 0 805 729 ; C -1 ; WX 543 ; N uni04B1 ; B 81 -218 655 540 ; C -1 ; WX 717 ; N uni04B2 ; B 22 -157 799 729 ; C -1 ; WX 589 ; N uni04B3 ; B 12 -159 642 540 ; C -1 ; WX 717 ; N uni04B6 ; B 128 -156 805 729 ; C -1 ; WX 601 ; N uni04B7 ; B 112 -159 652 540 ; C -1 ; WX 717 ; N uni04B8 ; B 128 0 805 729 ; C -1 ; WX 601 ; N uni04B9 ; B 112 0 652 540 ; C -1 ; WX 717 ; N uni04BA ; B 67 0 744 729 ; C -1 ; WX 585 ; N uni04BB ; B 82 0 631 736 ; C -1 ; WX 278 ; N uni04C0 ; B 64 0 369 729 ; C -1 ; WX 708 ; N uni04CB ; B 123 -156 800 729 ; C -1 ; WX 583 ; N uni04CC ; B 102 -161 642 540 ; C -1 ; WX 278 ; N uni04CF ; B 64 0 369 729 ; C -1 ; WX 778 ; N uni04D8 ; B 104 -23 827 741 ; C -1 ; WX 719 ; N uni04E2 ; B 65 0 809 889 ; C -1 ; WX 611 ; N uni04E3 ; B 68 0 658 678 ; C -1 ; WX 778 ; N uni04E8 ; B 108 -23 822 741 ; C -1 ; WX 611 ; N uni04E9 ; B 85 -23 637 549 ; C -1 ; WX 677 ; N uni04EE ; B 79 0 808 877 ; C -1 ; WX 556 ; N uni04EF ; B 49 -222 662 692 ; C -1 ; WX 500 ; N uni2002 ; B 0 0 0 0 ; C -1 ; WX 333 ; N uni203E ; B 25 805 640 874 ; C -1 ; WX 916 ; N uni20AF ; B 37 -174 854 632 ; C -1 ; WX 996 ; N uni20DD ; B 141 2 855 716 ; C -1 ; WX 572 ; N uni210F ; B 45 -8 527 711 ; C -1 ; WX 866 ; N uni2112 ; B 63 0 803 773 ; C -1 ; WX 759 ; N uni211E ; B 158 0 672 667 ; C -1 ; WX 609 ; N uni2120 ; B 26 382 562 678 ; C -1 ; WX 768 ; N uni2126 ; B 21 0 825 741 ; C -1 ; WX 608 ; N uni2128 ; B -3 -197 587 691 ; C -1 ; WX 664 ; N uni212D ; B 57 -74 665 697 ; C -1 ; WX 553 ; N uni212F ; B 87 -19 479 472 ; C -1 ; WX 442 ; N uni2136 ; B 35 0 446 532 ; C -1 ; WX 332 ; N uni2137 ; B 57 0 302 533 ; C -1 ; WX 719 ; N uni2196 ; B -11 -53 710 661 ; C -1 ; WX 719 ; N uni2197 ; B -5 -53 716 661 ; C -1 ; WX 719 ; N uni2198 ; B -5 -53 716 661 ; C -1 ; WX 719 ; N uni2199 ; B -11 -53 710 661 ; C -1 ; WX 996 ; N uni21C4 ; B 118 60 875 651 ; C -1 ; WX 996 ; N uni21C6 ; B 118 60 875 651 ; C -1 ; WX 719 ; N uni21D5 ; B 115 -55 604 679 ; C -1 ; WX 498 ; N uni220D ; B 81 0 507 456 ; C -1 ; WX 996 ; N uni2213 ; B 267 38 729 650 ; C -1 ; WX 278 ; N uni2215 ; B -122 -20 544 715 ; C -1 ; WX 278 ; N uni2219 ; B 110 216 260 339 ; C -1 ; WX 722 ; N uni2223 ; B 328 -250 395 750 ; C -1 ; WX 719 ; N uni2225 ; B 252 -255 467 886 ; C -1 ; WX 1000 ; N uni2227 ; B 243 0 757 513 ; C -1 ; WX 1000 ; N uni2228 ; B 243 0 757 513 ; C -1 ; WX 996 ; N uni222E ; B 278 -244 704 923 ; C -1 ; WX 996 ; N uni2235 ; B 187 -3 807 625 ; C -1 ; WX 996 ; N uni2237 ; B 188 -3 808 625 ; C -1 ; WX 996 ; N uni2262 ; B 260 1 735 565 ; C -1 ; WX 996 ; N uni226A ; B 169 -43 824 583 ; C -1 ; WX 996 ; N uni226B ; B 169 -43 824 583 ; C -1 ; WX 996 ; N uni2285 ; B 233 -63 767 567 ; C -1 ; WX 1000 ; N uni2295 ; B 140 -3 860 716 ; C -1 ; WX 996 ; N uni2296 ; B 138 -25 858 696 ; C -1 ; WX 996 ; N uni2298 ; B 139 -24 856 695 ; C -1 ; WX 996 ; N uni2299 ; B 138 -25 858 696 ; C -1 ; WX 996 ; N uni22A2 ; B 181 0 809 556 ; C -1 ; WX 996 ; N uni22A3 ; B 181 0 809 556 ; C -1 ; WX 996 ; N uni22A4 ; B 222 0 768 632 ; C -1 ; WX 996 ; N uni22BB ; B 216 -145 779 582 ; C -1 ; WX 996 ; N uni256D ; B 466 -250 998 282 ; C -1 ; WX 996 ; N uni256E ; B -2 -250 530 282 ; C -1 ; WX 996 ; N uni256F ; B -2 219 530 750 ; C -1 ; WX 996 ; N uni2570 ; B 466 219 998 750 ; C -1 ; WX 604 ; N uni25A1 ; B 43 0 562 519 ; C -1 ; WX 719 ; N uni25B5 ; B 122 37 598 508 ; C -1 ; WX 719 ; N uni25B9 ; B 127 31 593 512 ; C -1 ; WX 719 ; N uni25BF ; B 122 36 598 507 ; C -1 ; WX 719 ; N uni25C3 ; B 127 31 593 512 ; C -1 ; WX 996 ; N uni25C6 ; B 241 39 767 623 ; C -1 ; WX 996 ; N uni25C7 ; B 190 -11 811 676 ; C -1 ; WX 719 ; N uni301A ; B 219 -155 501 795 ; C -1 ; WX 719 ; N uni301B ; B 219 -155 501 795 ; C -1 ; WX 719 ; N uniEFBF ; B -144 3 748 880 ; C -1 ; WX 719 ; N uniEFC0 ; B 1 -192 472 883 ; C -1 ; WX 719 ; N uniEFC1 ; B 1 -194 472 884 ; C -1 ; WX 719 ; N uniEFC2 ; B -7 -247 728 749 ; C -1 ; WX 719 ; N uniEFC3 ; B -7 -247 728 749 ; C -1 ; WX 719 ; N uniEFC4 ; B 248 -192 720 883 ; C -1 ; WX 719 ; N uniEFC5 ; B 248 -194 720 884 ; C -1 ; WX 719 ; N uniEFC6 ; B 45 -247 676 750 ; C -1 ; WX 719 ; N uniEFC7 ; B 45 -247 676 749 ; C -1 ; WX 719 ; N uniEFC8 ; B 45 -247 676 749 ; C -1 ; WX 719 ; N uniEFC9 ; B 248 -194 472 883 ; C -1 ; WX 719 ; N uniEFCA ; B 124 -80 596 521 ; C -1 ; WX 719 ; N uniEFCB ; B 1 190 720 412 ; C -1 ; WX 719 ; N uniEFCC ; B 313 -189 749 880 ; C -1 ; WX 719 ; N uniEFCD ; B -20 -192 755 884 ; C -1 ; WX 719 ; N uniEFCE ; B 1 -192 669 182 ; C -1 ; WX 719 ; N uniEFCF ; B -26 -192 408 884 ; C -1 ; WX 719 ; N uniEFD0 ; B 1 510 640 884 ; C -1 ; WX 719 ; N uniEFD1 ; B -26 -192 749 884 ; C -1 ; WX 719 ; N uniEFD2 ; B -23 -192 747 883 ; C -1 ; WX 719 ; N uniEFD3 ; B -22 -192 747 884 ; C -1 ; WX 719 ; N uniEFD4 ; B 132 -247 597 749 ; C -1 ; WX 608 ; N uniEFD5 ; B 40 -245 570 495 ; C -1 ; WX 996 ; N uniEFD6 ; B 103 305 831 690 ; C -1 ; WX 996 ; N uniEFD7 ; B 117 -25 880 739 ; C -1 ; WX 996 ; N uniEFD8 ; B 117 -25 880 739 ; C -1 ; WX 996 ; N uniEFD9 ; B 23 269 972 668 ; C -1 ; WX 996 ; N uniEFDA ; B 117 -25 880 739 ; C -1 ; WX 996 ; N uniEFDB ; B 117 -25 880 739 ; C -1 ; WX 719 ; N uniEFDC ; B 88 -199 399 883 ; C -1 ; WX 719 ; N uniEFDD ; B 313 -247 415 883 ; C -1 ; WX 719 ; N uniEFDE ; B 145 -247 416 749 ; C -1 ; WX 719 ; N uniEFDF ; B 313 -247 596 749 ; C -1 ; WX 719 ; N uniEFE0 ; B 145 -247 414 751 ; C -1 ; WX 719 ; N uniEFE1 ; B 313 -247 583 749 ; C -1 ; WX 719 ; N uniEFE2 ; B 139 -247 417 749 ; C -1 ; WX 719 ; N uniEFE3 ; B 313 -247 589 749 ; C -1 ; WX 719 ; N uniEFE4 ; B 1 -192 400 883 ; C -1 ; WX 719 ; N uniEFE5 ; B 1 -194 400 884 ; C -1 ; WX 719 ; N uniEFE6 ; B 320 -192 720 883 ; C -1 ; WX 719 ; N uniEFE7 ; B 320 -194 720 884 ; C -1 ; WX 719 ; N uniEFE8 ; B 1 267 720 325 ; C -1 ; WX 719 ; N uniEFE9 ; B 1 804 720 947 ; C -1 ; WX 719 ; N uniEFEA ; B 1 804 720 884 ; C -1 ; WX 719 ; N uniEFEB ; B 1 -192 720 -113 ; C -1 ; WX 572 ; N uniEFEC ; B 63 -21 531 494 ; C -1 ; WX 996 ; N uniEFFA ; B 143 0 855 711 ; C -1 ; WX 996 ; N uniEFFB ; B 142 0 853 711 ; C -1 ; WX 996 ; N uniEFFC ; B 142 0 853 711 ; C -1 ; WX 993 ; N uniEFFD ; B 145 0 856 712 ; C -1 ; WX 774 ; N uniEFFE ; B 53 -11 722 686 ; C -1 ; WX 498 ; N uniEFFF ; B 17 276 481 741 ; C -1 ; WX 719 ; N union ; B 119 0 599 611 ; C -1 ; WX 593 ; N universal ; B 22 0 571 577 ; C -1 ; WX 611 ; N uogonek ; B 88 -233 656 540 ; C -1 ; WX 1000 ; N upblock ; B 0 250 1000 750 ; C -1 ; WX 591 ; N upsilon ; B 88 -23 652 540 ; C -1 ; WX 591 ; N upsilondieresis ; B 88 -23 652 743 ; C -1 ; WX 591 ; N upsilondieresistonos ; B 88 -23 652 889 ; C -1 ; WX 591 ; N upsilontonos ; B 88 -23 652 789 ; C -1 ; WX 611 ; N uring ; B 88 -23 656 773 ; C -1 ; WX 611 ; N utilde ; B 88 -23 656 744 ; C -1 ; WX 778 ; N wacute ; B 120 0 881 757 ; C -1 ; WX 778 ; N wcircumflex ; B 120 0 881 757 ; C -1 ; WX 778 ; N wdieresis ; B 120 0 881 741 ; C -1 ; WX 685 ; N weierstrass ; B 85 -169 604 402 ; C -1 ; WX 778 ; N wgrave ; B 120 0 881 757 ; C -1 ; WX 450 ; N xi ; B 57 -218 589 729 ; C -1 ; WX 556 ; N yacute ; B 37 -219 653 757 ; C -1 ; WX 556 ; N ycircumflex ; B 37 -219 653 757 ; C -1 ; WX 556 ; N ydieresis ; B 37 -219 653 741 ; C -1 ; WX 556 ; N ygrave ; B 37 -219 653 757 ; C -1 ; WX 500 ; N zacute ; B 21 0 575 757 ; C -1 ; WX 500 ; N zcaron ; B 21 0 575 757 ; C -1 ; WX 500 ; N zdotaccent ; B 21 0 575 741 ; C -1 ; WX 333 ; N zerosuperior ; B 100 271 435 718 ; C -1 ; WX 492 ; N zeta ; B 80 -218 619 729 ; EndCharMetrics StartKernData StartKernPairs 3820 KPX A A 5 KPX A B -23 KPX A C -28 KPX A Ccedilla -28 KPX A G -31 KPX A J -18 KPX A O -31 KPX A Odieresis -31 KPX A Omicron -31 KPX A Phi -52 KPX A Psi -50 KPX A Q -32 KPX A S -22 KPX A T -89 KPX A Tau -81 KPX A Tcaron -81 KPX A Tcommaaccent -81 KPX A Theta -31 KPX A U -31 KPX A Uacute -31 KPX A Ucircumflex -31 KPX A Udieresis -31 KPX A Ugrave -31 KPX A Upsilon -89 KPX A V -67 KPX A W -50 KPX A X 7 KPX A Y -89 KPX A Yacute -89 KPX A Z 3 KPX A a -5 KPX A b -4 KPX A braceright -10 KPX A bracketright 2 KPX A c -10 KPX A ccedilla -10 KPX A comma 17 KPX A d -8 KPX A e -4 KPX A g -9 KPX A k -4 KPX A gamma -39 KPX A guillemotleft -42 KPX A guilsinglleft -39 KPX A hyphen 10 KPX A nu -36 KPX A o -13 KPX A parenright -5 KPX A period 19 KPX A phi -6 KPX A q -5 KPX A quotedblright -64 KPX A quoteright -60 KPX A quotesingle -58 KPX A s -10 KPX A sigma -26 KPX A t -14 KPX A u -10 KPX A udieresis -10 KPX A upsilon -10 KPX A upsilontonos -10 KPX A v -36 KPX A w -22 KPX A y -34 KPX A yacute -34 KPX A z 8 KPX AE T -3 KPX AE V -10 KPX AE W -4 KPX AE X 1 KPX AE Z -2 KPX Aacute C -31 KPX Aacute G -31 KPX Aacute O -30 KPX Aacute Q -32 KPX Aacute T -89 KPX Aacute Tcaron -81 KPX Aacute U -30 KPX Aacute V -67 KPX Aacute W -49 KPX Aacute Y -89 KPX Aacute a -4 KPX Aacute b -6 KPX Aacute c -9 KPX Aacute comma 18 KPX Aacute d -10 KPX Aacute e -2 KPX Aacute g -13 KPX Aacute guillemotleft -41 KPX Aacute guilsinglleft -38 KPX Aacute hyphen 9 KPX Aacute o -11 KPX Aacute period 17 KPX Aacute q -6 KPX Aacute quotedblright -64 KPX Aacute quoteright -60 KPX Aacute t -15 KPX Aacute u -12 KPX Aacute v -35 KPX Aacute w -22 KPX Aacute y -34 KPX Abreve T -89 KPX Abreve Tcaron -81 KPX Abreve Tcommaaccent -81 KPX Abreve Y -89 KPX Abreve Yacute -89 KPX Abreve y -34 KPX Abreve yacute -34 KPX Acircumflex C -28 KPX Acircumflex G -31 KPX Acircumflex O -31 KPX Acircumflex Q -32 KPX Acircumflex T -89 KPX Acircumflex Tcaron -81 KPX Acircumflex Tcommaaccent -81 KPX Acircumflex U -31 KPX Acircumflex V -67 KPX Acircumflex W -50 KPX Acircumflex Y -89 KPX Acircumflex Yacute -89 KPX Acircumflex comma 17 KPX Acircumflex period 19 KPX Acircumflex v -36 KPX Acircumflex w -22 KPX Acircumflex yacute -34 KPX Adieresis C -29 KPX Adieresis G -33 KPX Adieresis O -29 KPX Adieresis Q -30 KPX Adieresis T -87 KPX Adieresis U -29 KPX Adieresis V -65 KPX Adieresis W -48 KPX Adieresis Y -87 KPX Adieresis a -6 KPX Adieresis b -5 KPX Adieresis c -8 KPX Adieresis comma 16 KPX Adieresis d -9 KPX Adieresis g -11 KPX Adieresis guillemotleft -40 KPX Adieresis guilsinglleft -37 KPX Adieresis hyphen 10 KPX Adieresis o -11 KPX Adieresis period 17 KPX Adieresis q -6 KPX Adieresis quotedblright -62 KPX Adieresis quoteright -58 KPX Adieresis t -15 KPX Adieresis u -11 KPX Adieresis v -34 KPX Adieresis w -22 KPX Adieresis y -32 KPX Agrave C -28 KPX Agrave G -31 KPX Agrave O -31 KPX Agrave Q -32 KPX Agrave T -89 KPX Agrave U -31 KPX Agrave V -67 KPX Agrave W -50 KPX Agrave Y -89 KPX Agrave comma 17 KPX Agrave period 19 KPX Alpha O -31 KPX Alpha Omicron -31 KPX Alpha Phi -52 KPX Alpha Psi -50 KPX Alpha T -89 KPX Alpha Tau -81 KPX Alpha Theta -31 KPX Alpha Upsilon -89 KPX Alpha Y -89 KPX Alpha comma 17 KPX Alpha gamma -39 KPX Alpha guillemotright -26 KPX Alpha nu -36 KPX Alpha period 19 KPX Alpha phi -6 KPX Alpha sigma -26 KPX Alpha upsilon -10 KPX Alpha upsilontonos -10 KPX Alphatonos gamma -39 KPX Alphatonos nu -36 KPX Alphatonos phi -6 KPX Alphatonos sigma -26 KPX Aogonek C -29 KPX Aogonek T -85 KPX Aogonek Tcaron -81 KPX Aogonek Tcommaaccent -60 KPX Aogonek Y -86 KPX Aogonek Yacute -86 KPX Aogonek colon 14 KPX Aogonek comma 16 KPX Aogonek period 19 KPX Aogonek semicolon 12 KPX Aogonek y -6 KPX Aogonek yacute -6 KPX Aring C -29 KPX Aring G -32 KPX Aring O -31 KPX Aring Q -30 KPX Aring T -90 KPX Aring U -29 KPX Aring V -65 KPX Aring W -51 KPX Aring Y -86 KPX Aring a -6 KPX Aring b -4 KPX Aring c -8 KPX Aring comma 16 KPX Aring d -9 KPX Aring e -1 KPX Aring g -10 KPX Aring guillemotleft -40 KPX Aring guilsinglleft -36 KPX Aring hyphen 10 KPX Aring o -10 KPX Aring period 19 KPX Aring q -5 KPX Aring quotedblright -65 KPX Aring quoteright -61 KPX Aring t -15 KPX Aring u -11 KPX Aring v -37 KPX Aring w -22 KPX Aring y -34 KPX Atilde C -30 KPX Atilde G -34 KPX Atilde O -33 KPX Atilde Q -31 KPX Atilde T -89 KPX Atilde U -33 KPX Atilde V -66 KPX Atilde W -50 KPX Atilde Y -87 KPX Atilde comma 16 KPX Atilde period 16 KPX B A -38 KPX B AE -28 KPX B Aacute -38 KPX B Acircumflex -38 KPX B Adieresis -38 KPX B Aring -38 KPX B Atilde -38 KPX B C -8 KPX B Delta 4 KPX B J -11 KPX B O -8 KPX B Oacute -8 KPX B Ocircumflex -8 KPX B Odieresis -8 KPX B Ograve -8 KPX B Oslash -10 KPX B S -3 KPX B T -25 KPX B V -38 KPX B W -21 KPX B Y -60 KPX B Z -23 KPX B lambda -29 KPX B y -15 KPX Beta A -38 KPX Beta Alpha -38 KPX Beta Delta 4 KPX Beta lambda -29 KPX C A -33 KPX C AE -21 KPX C Aacute -33 KPX C Adieresis -33 KPX C Aring -33 KPX C G -3 KPX C H 4 KPX C K 1 KPX C O -3 KPX C OE 8 KPX C Oacute -3 KPX C Odieresis -3 KPX C S 4 KPX C T -13 KPX C V -29 KPX C W -14 KPX C Y -51 KPX C Z -15 KPX C a 4 KPX C adieresis 4 KPX C ae 6 KPX C colon 24 KPX C comma 8 KPX C e 12 KPX C hyphen 31 KPX C o 3 KPX C odieresis 3 KPX C oe 9 KPX C period 10 KPX C quotedblright 6 KPX C quoteright 10 KPX C quotesingle 14 KPX C semicolon 25 KPX C y 1 KPX Ccaron O -3 KPX Ccedilla A -33 KPX Chi O -31 KPX Chi Omicron -31 KPX Chi Theta -31 KPX Chi alpha -31 KPX Chi alphatonos -33 KPX Chi epsilontonos -25 KPX Chi o -34 KPX Chi omega -45 KPX Chi omicron -36 KPX Chi omicrontonos -36 KPX Chi tau -46 KPX D A -31 KPX D AE -24 KPX D Aacute -31 KPX D Acircumflex -31 KPX D Adieresis -31 KPX D Agrave -31 KPX D Aring -31 KPX D Atilde -31 KPX D E 1 KPX D J -4 KPX D T -25 KPX D V -28 KPX D W -11 KPX D X -29 KPX D Y -53 KPX D Z -19 KPX D a 11 KPX D adieresis 11 KPX D ae 9 KPX D e 17 KPX D hyphen 42 KPX D o 8 KPX D odieresis 8 KPX D oe 14 KPX D y -5 KPX Delta O -52 KPX Delta Omicron -52 KPX Delta Upsilon -109 KPX Delta Y -109 KPX Delta alphatonos -38 KPX Delta epsilon -17 KPX Delta epsilontonos -21 KPX Delta o -38 KPX Delta omegatonos -53 KPX Delta omicron -39 KPX Delta upsilon -35 KPX E A -6 KPX E C -15 KPX E Ccaron -15 KPX E F -7 KPX E O -14 KPX E Oacute -14 KPX E Odieresis -14 KPX E Omicron -14 KPX E Phi -39 KPX E S -8 KPX E T -8 KPX E Theta -14 KPX E V -15 KPX E W -9 KPX E X -4 KPX E Y -17 KPX E Z -7 KPX E a -4 KPX E b -4 KPX E c -9 KPX E d -6 KPX E delta -13 KPX E e -3 KPX E g -6 KPX E gamma -31 KPX E h -8 KPX E hyphen 7 KPX E i -8 KPX E j -8 KPX E k -4 KPX E l -8 KPX E nu -26 KPX E o -12 KPX E q -7 KPX E quotedblright -11 KPX E quoteright -7 KPX E quotesingle -3 KPX E s -9 KPX E t -13 KPX E tau -22 KPX E v -27 KPX E w -14 KPX E y -27 KPX E z -1 KPX Epsilon O -14 KPX Epsilon Omicron -14 KPX Epsilon Phi -39 KPX Epsilon Theta -14 KPX Epsilon delta -13 KPX Epsilon gamma -31 KPX Epsilon nu -26 KPX Epsilon tau -22 KPX Epsilontonos nu -52 KPX F A -61 KPX F AE -54 KPX F Aacute -61 KPX F Abreve -61 KPX F Acircumflex -61 KPX F Adieresis -61 KPX F Agrave -61 KPX F Aogonek -61 KPX F Aring -61 KPX F Atilde -61 KPX F C -26 KPX F G -25 KPX F J -34 KPX F O -24 KPX F OE -16 KPX F Odieresis -24 KPX F S -13 KPX F T 9 KPX F W 8 KPX F Z 1 KPX F a -23 KPX F aacute -23 KPX F adieresis -23 KPX F ae -25 KPX F aring -23 KPX F comma -74 KPX F e -12 KPX F eacute -12 KPX F h -16 KPX F hyphen 12 KPX F i -16 KPX F j -16 KPX F l -16 KPX F o -22 KPX F oacute -22 KPX F odieresis -22 KPX F oe -16 KPX F ohungarumlaut -22 KPX F oslash -23 KPX F period -73 KPX F quotedblright 3 KPX F quoteright 7 KPX F quotesingle 10 KPX F r -33 KPX F u -32 KPX F udieresis -32 KPX F uacute -32 KPX F uring -32 KPX F y -28 KPX G A -18 KPX G AE -5 KPX G Aacute -18 KPX G Acircumflex -18 KPX G Adieresis -18 KPX G Agrave -18 KPX G Aring -18 KPX G Atilde -18 KPX G H 4 KPX G T -29 KPX G V -34 KPX G W -18 KPX G X -16 KPX G Y -56 KPX G Z -16 KPX G a 8 KPX G adieresis 8 KPX G ae 6 KPX G colon 28 KPX G comma 14 KPX G e 14 KPX G hyphen 33 KPX G o 5 KPX G odieresis 5 KPX G oe 10 KPX G period 13 KPX G quotedblright -11 KPX G quoteright -7 KPX G quotesingle -1 KPX G semicolon 27 KPX G y -12 KPX Gamma A -100 KPX Gamma Alpha -100 KPX Gamma Delta -44 KPX Gamma Lambda -87 KPX Gamma O -35 KPX Gamma Omicron -35 KPX Gamma Y 3 KPX Gamma alpha -121 KPX Gamma alphatonos -82 KPX Gamma comma -140 KPX Gamma epsilon -110 KPX Gamma epsilontonos -69 KPX Gamma kappa -91 KPX Gamma nu -67 KPX Gamma o -124 KPX Gamma omicron -125 KPX Gamma period -144 KPX Gamma rho -131 KPX Gamma upsilon -86 KPX Gamma upsilontonos -40 KPX H A -17 KPX H AE -5 KPX H I 16 KPX H T -9 KPX H Y -19 KPX H a 9 KPX H adieresis 9 KPX H ae 11 KPX H y -8 KPX I A -17 KPX I AE -5 KPX I J -16 KPX I T -9 KPX I V -18 KPX I W -5 KPX I X -15 KPX I Y -20 KPX I Z -6 KPX I y -5 KPX J A -31 KPX J AE -19 KPX J Adieresis -31 KPX J Aring -31 KPX J K 4 KPX J Y -22 KPX J y -11 KPX K A 10 KPX K AE 23 KPX K B -18 KPX K C -49 KPX K D -15 KPX K E -16 KPX K F -13 KPX K G -49 KPX K H -10 KPX K I -8 KPX K J -26 KPX K L -16 KPX K M -9 KPX K N -10 KPX K O -48 KPX K OE -40 KPX K Oacute -48 KPX K Odieresis -48 KPX K Omicron -48 KPX K P -14 KPX K Phi -76 KPX K Q -50 KPX K R -16 KPX K S -44 KPX K T 5 KPX K U -26 KPX K V -2 KPX K W 4 KPX K X 12 KPX K Y -4 KPX K Z 8 KPX K a -17 KPX K adieresis -17 KPX K ae -18 KPX K alphatonos -48 KPX K aogonek -20 KPX K aring -17 KPX K braceright -23 KPX K bracketright 3 KPX K e -38 KPX K epsilontonos -26 KPX K h -9 KPX K hyphen -41 KPX K i -9 KPX K j -10 KPX K l -9 KPX K o -45 KPX K oacute -45 KPX K odieresis -45 KPX K oe -40 KPX K omega -59 KPX K omicron -50 KPX K omicrontonos -50 KPX K parenright -1 KPX K quotedblright -24 KPX K quoteright -20 KPX K quotesingle -13 KPX K u -35 KPX K udieresis -35 KPX K upsilon -41 KPX K upsilontonos -41 KPX K w -53 KPX K y -70 KPX Kappa O -48 KPX Kappa Omicron -48 KPX Kappa Phi -76 KPX Kappa alphatonos -48 KPX Kappa colon -23 KPX Kappa comma 1 KPX Kappa epsilontonos -26 KPX Kappa o -45 KPX Kappa omega -59 KPX Kappa omicron -50 KPX Kappa omicrontonos -50 KPX Kappa period 1 KPX Kappa semicolon -28 KPX Kappa upsilon -41 KPX Kappa upsilontonos -41 KPX L A -1 KPX L AE 11 KPX L Aacute -1 KPX L Adieresis -1 KPX L Aring -1 KPX L C -38 KPX L Ccaron -38 KPX L Ccedilla -40 KPX L G -42 KPX L M -19 KPX L O -41 KPX L OE -30 KPX L Oacute -41 KPX L Ocircumflex -41 KPX L Odieresis -41 KPX L Ograve -41 KPX L Otilde -41 KPX L S -15 KPX L T -103 KPX L Tcaron -103 KPX L Tcommaaccent -103 KPX L U -36 KPX L Udieresis -36 KPX L V -103 KPX L W -80 KPX L Y -121 KPX L Yacute -121 KPX L Z -2 KPX L braceright -61 KPX L bracketright -46 KPX L e -10 KPX L hyphen -38 KPX L i -18 KPX L j -19 KPX L o -18 KPX L odieresis -18 KPX L parenright -47 KPX L quotedblright -145 KPX L quoteright -141 KPX L quotesingle -136 KPX L u -18 KPX L udieresis -18 KPX L y -66 KPX L yacute -66 KPX Lambda O -19 KPX Lambda Omicron -19 KPX Lambda T -77 KPX Lambda Tau -73 KPX Lambda Theta -19 KPX Lambda Upsilon -77 KPX Lambda Y -77 KPX Lambda alphatonos -2 KPX Lambda comma 29 KPX Lambda epsilon 8 KPX Lambda epsilontonos 5 KPX Lambda guillemotright -14 KPX Lambda o -1 KPX Lambda omicron -2 KPX Lambda omicrontonos -2 KPX Lambda period 29 KPX Lambda quoteright -52 KPX Lambda upsilon 1 KPX Lcaron O -41 KPX Lcaron T -57 KPX Lcaron Tcaron -57 KPX Lcaron Tcommaaccent -57 KPX Lcaron V -64 KPX Lcaron Y -66 KPX Lcaron Yacute -66 KPX Lcaron v -64 KPX Lcaron yacute -61 KPX Lslash O -32 KPX Lslash T -94 KPX Lslash Tcaron -94 KPX Lslash Tcommaaccent -94 KPX Lslash V -83 KPX Lslash W -66 KPX Lslash Y -106 KPX Lslash Yacute -106 KPX Lslash comma 17 KPX Lslash period 19 KPX Lslash semicolon -3 KPX Lslash v -48 KPX Lslash w -34 KPX Lslash yacute -48 KPX M A -13 KPX M AE -1 KPX M N 18 KPX M T -5 KPX M Y -15 KPX M Z -6 KPX M epsilon 21 KPX M j 14 KPX M y -4 KPX Mu epsilon 21 KPX N A -15 KPX N AE -3 KPX N Aacute -15 KPX N Adieresis -15 KPX N Alpha -15 KPX N Aring -15 KPX N C 7 KPX N Ccedilla 7 KPX N G 3 KPX N O 4 KPX N Oacute 7 KPX N Odieresis 7 KPX N T -7 KPX N W -3 KPX N Y -18 KPX N Z -4 KPX N a 15 KPX N aacute 15 KPX N adieresis 15 KPX N ae 13 KPX N aring 15 KPX N comma 15 KPX N e 20 KPX N eacute 20 KPX N epsilon 18 KPX N epsilontonos 15 KPX N j 11 KPX N o 11 KPX N oacute 11 KPX N odieresis 11 KPX N omega -5 KPX N oslash 13 KPX N period 17 KPX N u 11 KPX N udieresis 11 KPX N y -3 KPX Nu A -15 KPX Nu Alpha -15 KPX Nu epsilon 18 KPX Nu epsilontonos 15 KPX Nu o 11 KPX Nu omega -5 KPX Nu omicron 9 KPX Nu omicrontonos 9 KPX O A -33 KPX O AE -26 KPX O Aacute -33 KPX O Adieresis -33 KPX O Alpha -33 KPX O Aring -33 KPX O Chi -31 KPX O Delta 9 KPX O J -4 KPX O Lambda -18 KPX O OE 8 KPX O P 1 KPX O Psi -10 KPX O S 1 KPX O T -34 KPX O Tau -34 KPX O Upsilon -55 KPX O V -33 KPX O W -16 KPX O X -31 KPX O Y -55 KPX O Z -21 KPX O Zeta -21 KPX O colon 29 KPX O comma -6 KPX O hyphen 42 KPX O lambda -19 KPX O period -3 KPX O semicolon 28 KPX O v -4 KPX O w 7 KPX O x -10 KPX O y -7 KPX O z -8 KPX OE T -1 KPX OE V -9 KPX OE W -3 KPX OE X 2 KPX OE Z -1 KPX Oacute A -33 KPX Oacute T -33 KPX Oacute V -33 KPX Oacute W -16 KPX Oacute Y -55 KPX Oacute Z -21 KPX Oacute colon 29 KPX Oacute comma -6 KPX Oacute period -3 KPX Oacute semicolon 28 KPX Ocircumflex T -33 KPX Ocircumflex V -33 KPX Ocircumflex Y -55 KPX Odieresis A -33 KPX Odieresis T -33 KPX Odieresis V -33 KPX Odieresis W -16 KPX Odieresis X -31 KPX Odieresis Y -55 KPX Odieresis colon 29 KPX Odieresis comma -6 KPX Odieresis period -3 KPX Odieresis semicolon 28 KPX Ograve T -33 KPX Ograve V -33 KPX Ograve Y -55 KPX Omicron A -33 KPX Omicron Alpha -33 KPX Omicron Chi -31 KPX Omicron Delta 9 KPX Omicron Lambda -18 KPX Omicron Psi -10 KPX Omicron Tau -34 KPX Omicron Upsilon -55 KPX Omicron Y -55 KPX Omicron Zeta -21 KPX Omicron lambda -19 KPX Omicrontonos lambda -26 KPX Oslash A -26 KPX Otilde T -33 KPX Otilde V -33 KPX Otilde Y -55 KPX P A -62 KPX P AE -55 KPX P Aacute -62 KPX P Abreve -62 KPX P Acircumflex -62 KPX P Adieresis -62 KPX P Alpha -62 KPX P Aogonek -56 KPX P Aring -62 KPX P B -23 KPX P C -13 KPX P D -20 KPX P E -21 KPX P F -19 KPX P G -12 KPX P H -16 KPX P I -13 KPX P J -50 KPX P K -19 KPX P L -22 KPX P M -15 KPX P N -16 KPX P O -12 KPX P OE -4 KPX P Omicron -12 KPX P P -20 KPX P Q -13 KPX P R -22 KPX P S -11 KPX P T -5 KPX P U -24 KPX P V -31 KPX P W -21 KPX P X -50 KPX P Y -43 KPX P Z -13 KPX P a -14 KPX P aacute -14 KPX P adieresis -14 KPX P ae -14 KPX P alpha -16 KPX P aring -14 KPX P comma -86 KPX P e -10 KPX P eacute -10 KPX P epsilon -11 KPX P epsilontonos -14 KPX P f 7 KPX P h -20 KPX P hyphen 4 KPX P i -20 KPX P j -20 KPX P l -20 KPX P o -20 KPX P oacute -20 KPX P odieresis -20 KPX P oe -14 KPX P omegatonos -36 KPX P omicron -19 KPX P omicrontonos -19 KPX P oslash -21 KPX P period -86 KPX P quotedblright 14 KPX P quoteright 18 KPX P quotesingle 22 KPX P t 6 KPX P w 7 KPX P y 5 KPX Phi A -55 KPX Phi Alpha -55 KPX Phi Lambda -44 KPX Phi T -69 KPX Phi Tau -69 KPX Phi Upsilon -77 KPX Phi Y -77 KPX Phi lambda -40 KPX Phi o -10 KPX Phi omega -23 KPX Phi omegatonos -23 KPX Phi omicron -9 KPX Phi omicrontonos -9 KPX Pi epsilontonos 13 KPX Pi lambda -13 KPX Pi o 9 KPX Pi omicron 8 KPX Psi A -50 KPX Psi Alpha -50 KPX Psi O -11 KPX Psi Omicron -11 KPX Q R 4 KPX Q U 1 KPX Q braceright 21 KPX Q bracketright 38 KPX Q hyphen 44 KPX Q parenright 31 KPX Q u 14 KPX Q udieresis 14 KPX R A -7 KPX R AE 5 KPX R B -2 KPX R C -4 KPX R Ccedilla -4 KPX R E -1 KPX R F 1 KPX R G -4 KPX R H 4 KPX R I 7 KPX R J -21 KPX R K 1 KPX R L -1 KPX R M 5 KPX R N 4 KPX R O -3 KPX R OE 4 KPX R Oacute -3 KPX R Odieresis -3 KPX R Q -5 KPX R R -1 KPX R T -13 KPX R Tcaron -13 KPX R Tcommaaccent -13 KPX R U -3 KPX R Udieresis -3 KPX R V -30 KPX R W -15 KPX R X -5 KPX R Y -50 KPX R Yacute -50 KPX R Z -8 KPX R a 4 KPX R aacute 4 KPX R adieresis 4 KPX R ae 2 KPX R aring 4 KPX R braceright 16 KPX R bracketright 32 KPX R e 8 KPX R eacute 8 KPX R hyphen 17 KPX R oe 5 KPX R parenright 25 KPX R quotedblright 4 KPX R quoteright 8 KPX R quotesingle 12 KPX R u 3 KPX R uacute 3 KPX R udieresis 3 KPX R y -4 KPX R yacute -3 KPX Rho A -62 KPX Rho Alpha -62 KPX Rho Delta -23 KPX Rho Lambda -46 KPX Rho Omicron -12 KPX Rho Phi -17 KPX Rho Tau -5 KPX Rho Theta -10 KPX Rho Upsilon -43 KPX Rho Y -43 KPX Rho alpha -16 KPX Rho colon -12 KPX Rho comma -86 KPX Rho epsilon -11 KPX Rho epsilontonos -14 KPX Rho o -20 KPX Rho omegatonos -36 KPX Rho omicron -19 KPX Rho omicrontonos -19 KPX Rho period -86 KPX S A -24 KPX S AE -12 KPX S Aacute -24 KPX S Adieresis -24 KPX S Aring -24 KPX S J 1 KPX S OE 8 KPX S S 5 KPX S T -16 KPX S V -29 KPX S W -12 KPX S Y -51 KPX S Z -8 KPX S a 9 KPX S adieresis 9 KPX S ae 11 KPX S c 10 KPX S e 16 KPX S eacute 16 KPX S h 8 KPX S hyphen 39 KPX S i 8 KPX S j 9 KPX S l 8 KPX S o 7 KPX S odieresis 7 KPX S oe 13 KPX S q 12 KPX S quotedblright -2 KPX S quoteright 1 KPX S t 7 KPX S v -9 KPX S w 3 KPX S y -6 KPX Sigma O -23 KPX Sigma Omicron -23 KPX Sigma Theta -23 KPX Sigma chi -35 KPX Sigma o -5 KPX Sigma omicron -8 KPX Sigma tau -40 KPX T A -87 KPX T AE -81 KPX T Aacute -87 KPX T Abreve -87 KPX T Acircumflex -87 KPX T Adieresis -87 KPX T Agrave -87 KPX T Alpha -87 KPX T Aogonek -87 KPX T Aring -87 KPX T Atilde -87 KPX T B -18 KPX T C -30 KPX T D -16 KPX T E -17 KPX T F -14 KPX T G -32 KPX T H -11 KPX T I -9 KPX T J -90 KPX T K -14 KPX T L -17 KPX T Lambda -71 KPX T M -10 KPX T N -11 KPX T O -32 KPX T OE -20 KPX T Oacute -31 KPX T Ocircumflex -31 KPX T Odieresis -31 KPX T Ograve -31 KPX T Ohungarumlaut -31 KPX T Omicron -32 KPX T Oslash -37 KPX T Otilde -31 KPX T P -15 KPX T Phi -56 KPX T Q -32 KPX T R -17 KPX T S -7 KPX T T 15 KPX T Tau 15 KPX T U -15 KPX T Upsilon 6 KPX T V 8 KPX T W 14 KPX T X 4 KPX T Y 6 KPX T Z 7 KPX T a -66 KPX T aacute -66 KPX T adieresis -40 KPX T ae -68 KPX T alpha -71 KPX T alphatonos -74 KPX T aogonek -66 KPX T braceright -13 KPX T bracketright 14 KPX T c -67 KPX T cacute -67 KPX T ccedilla -67 KPX T colon -48 KPX T comma -61 KPX T e -61 KPX T eacute -61 KPX T eogonek -61 KPX T epsilon -66 KPX T epsilontonos -64 KPX T g -72 KPX T guillemotleft -97 KPX T guilsinglleft -93 KPX T h -10 KPX T hyphen -47 KPX T i -10 KPX T iacute -22 KPX T j -10 KPX T l -10 KPX T o -70 KPX T odieresis -53 KPX T oacute -70 KPX T ocircumflex -50 KPX T oe -64 KPX T ohungarumlaut -59 KPX T omegatonos -82 KPX T omicron -71 KPX T omicrontonos -71 KPX T oslash -65 KPX T parenright 9 KPX T period -67 KPX T quotedblright -14 KPX T quoteright -10 KPX T quotesingle -2 KPX T r -66 KPX T racute -41 KPX T rho -72 KPX T s -71 KPX T sacute -71 KPX T scedilla -71 KPX T semicolon -49 KPX T sigma -83 KPX T u -67 KPX T udieresis -39 KPX T uacute -39 KPX T uhungarumlaut -39 KPX T upsilon -67 KPX T upsilontonos -37 KPX T uring -39 KPX T v -87 KPX T w -77 KPX T y -89 KPX T yacute -9 KPX T zeta -17 KPX Tau A -80 KPX Tau Alpha -80 KPX Tau Lambda -71 KPX Tau O -32 KPX Tau Omicron -32 KPX Tau Phi -56 KPX Tau T 15 KPX Tau Tau 15 KPX Tau Upsilon 6 KPX Tau Y 6 KPX Tau alpha -65 KPX Tau alphatonos -68 KPX Tau colon -48 KPX Tau comma -61 KPX Tau epsilon -60 KPX Tau epsilontonos -64 KPX Tau guillemotright -81 KPX Tau o -70 KPX Tau omegatonos -82 KPX Tau omicron -71 KPX Tau omicrontonos -71 KPX Tau period -67 KPX Tau quoteright -4 KPX Tau rho -72 KPX Tau semicolon -49 KPX Tau sigma -83 KPX Tau upsilon -67 KPX Tau upsilontonos -37 KPX Tau zeta -17 KPX Tcaron A -80 KPX Tcaron Aacute -80 KPX Tcaron Abreve -80 KPX Tcaron Acircumflex -80 KPX Tcaron Adieresis -80 KPX Tcaron Aogonek -80 KPX Tcaron J -84 KPX Tcaron Odieresis -31 KPX Tcaron aacute -66 KPX Tcaron aogonek -66 KPX Tcaron colon -48 KPX Tcaron comma -61 KPX Tcaron eacute -61 KPX Tcaron eogonek -61 KPX Tcaron hyphen -47 KPX Tcaron nacute -41 KPX Tcaron ncaron -41 KPX Tcaron oacute -70 KPX Tcaron ohungarumlaut -59 KPX Tcaron period -67 KPX Tcaron racute -41 KPX Tcaron rcaron -16 KPX Tcaron sacute -71 KPX Tcaron semicolon -49 KPX Tcaron tcaron -16 KPX Tcaron tcommaaccent -10 KPX Tcaron uacute -39 KPX Tcaron uhungarumlaut -39 KPX Tcaron yacute -9 KPX Tcaron zacute -29 KPX Tcaron zcaron -29 KPX Tcaron zdotaccent -29 KPX Tcommaaccent Aacute -80 KPX Tcommaaccent Abreve -80 KPX Tcommaaccent Acircumflex -80 KPX Tcommaaccent Adieresis -80 KPX Tcommaaccent Aogonek -80 KPX Tcommaaccent aacute -66 KPX Tcommaaccent aogonek -66 KPX Tcommaaccent eacute -61 KPX Tcommaaccent eogonek -61 KPX Tcommaaccent nacute -41 KPX Tcommaaccent ncaron -41 KPX Tcommaaccent oacute -70 KPX Tcommaaccent ohungarumlaut -59 KPX Tcommaaccent racute -41 KPX Tcommaaccent rcaron -16 KPX Tcommaaccent sacute -71 KPX Tcommaaccent tcaron -16 KPX Tcommaaccent tcommaaccent -10 KPX Tcommaaccent uacute -39 KPX Tcommaaccent uhungarumlaut -39 KPX Tcommaaccent uring -39 KPX Tcommaaccent yacute -9 KPX Tcommaaccent zacute -29 KPX Tcommaaccent zcaron -29 KPX Tcommaaccent zdotaccent -29 KPX Theta A -33 KPX Theta Alpha -33 KPX Theta Lambda -18 KPX Theta Upsilon -55 KPX Theta Y -55 KPX U A -30 KPX U AE -23 KPX U Aacute -30 KPX U Acircumflex -30 KPX U Adieresis -30 KPX U Aring -30 KPX U Atilde -30 KPX U S 4 KPX U T -11 KPX U V -19 KPX U W -9 KPX U X -23 KPX U Y -21 KPX U Z -17 KPX U comma -1 KPX U j 3 KPX U m 3 KPX U n 1 KPX U p 6 KPX U period -1 KPX U r 1 KPX U v -13 KPX U x -15 KPX U y -10 KPX U z -8 KPX Uacute A -30 KPX Uacute comma -1 KPX Uacute m 3 KPX Uacute n 1 KPX Uacute p 6 KPX Uacute period -1 KPX Uacute r 1 KPX Ucircumflex A -30 KPX Udieresis A -30 KPX Udieresis b 7 KPX Udieresis comma -1 KPX Udieresis m 3 KPX Udieresis n 1 KPX Udieresis p 6 KPX Udieresis period -1 KPX Udieresis r 1 KPX Ugrave A -30 KPX Upsilon A -82 KPX Upsilon Alpha -82 KPX Upsilon Delta -46 KPX Upsilon O -50 KPX Upsilon Omicron -50 KPX Upsilon Phi -72 KPX Upsilon T 13 KPX Upsilon Tau 13 KPX Upsilon Theta -50 KPX Upsilon comma -76 KPX Upsilon guillemotright -77 KPX Upsilon omicrontonos -67 KPX Upsilon period -76 KPX Upsilon pi -47 KPX Upsilontonos sigma -119 KPX V A -64 KPX V AE -58 KPX V Aacute -64 KPX V Abreve -64 KPX V Acircumflex -64 KPX V Adieresis -64 KPX V Agrave -64 KPX V Aogonek -64 KPX V Aring -64 KPX V Atilde -64 KPX V C -31 KPX V E -20 KPX V G -36 KPX V H -15 KPX V I -12 KPX V J -68 KPX V L -21 KPX V O -36 KPX V OE -23 KPX V Oacute -36 KPX V Ocircumflex -36 KPX V Odieresis -36 KPX V Ograve -36 KPX V Ohungarumlaut -36 KPX V Oslash -32 KPX V Otilde -36 KPX V R -21 KPX V S -26 KPX V T 12 KPX V U -19 KPX V Y 3 KPX V a -40 KPX V aacute -40 KPX V adieresis -40 KPX V ae -42 KPX V aogonek -40 KPX V braceright -10 KPX V bracketright 10 KPX V c -42 KPX V colon -22 KPX V comma -65 KPX V dcaron -49 KPX V e -36 KPX V eacute -36 KPX V ecaron -36 KPX V eogonek -36 KPX V g -45 KPX V guillemotleft -72 KPX V guilsinglleft -68 KPX V h -13 KPX V hyphen -18 KPX V i -13 KPX V iacute -43 KPX V j -13 KPX V l -13 KPX V o -45 KPX V oacute -45 KPX V ocircumflex -45 KPX V odieresis -45 KPX V oe -39 KPX V ohungarumlaut -45 KPX V oslash -44 KPX V parenright 6 KPX V period -65 KPX V r -41 KPX V racute -41 KPX V rcaron -19 KPX V sacute -45 KPX V semicolon -27 KPX V u -43 KPX V uacute -41 KPX V udieresis -41 KPX V uhungarumlaut -41 KPX V uring -41 KPX V y -17 KPX V yacute -14 KPX W A -48 KPX W AE -42 KPX W Aacute -48 KPX W Abreve -48 KPX W Acircumflex -48 KPX W Adieresis -48 KPX W Agrave -48 KPX W Aogonek -48 KPX W Aring -48 KPX W Atilde -48 KPX W B -15 KPX W C -18 KPX W D -12 KPX W E -13 KPX W F -11 KPX W G -18 KPX W H -8 KPX W I -5 KPX W J -52 KPX W K -11 KPX W L -14 KPX W M -7 KPX W N -8 KPX W O -17 KPX W OE -9 KPX W Oacute -17 KPX W Ocircumflex -17 KPX W Odieresis -17 KPX W Ograve -17 KPX W Ohungarumlaut -17 KPX W Oslash -17 KPX W Otilde -17 KPX W P -12 KPX W R -14 KPX W S -12 KPX W T 16 KPX W U -15 KPX W V 9 KPX W W 15 KPX W Y 7 KPX W Z 8 KPX W a -25 KPX W aacute -25 KPX W adieresis -25 KPX W ae -27 KPX W aogonek -25 KPX W braceright 6 KPX W bracketright 21 KPX W c -28 KPX W colon -7 KPX W comma -42 KPX W dcaron -29 KPX W e -16 KPX W eacute -16 KPX W ecaron -16 KPX W eogonek -16 KPX W g -24 KPX W guillemotleft -52 KPX W guilsinglleft -48 KPX W h -9 KPX W i -9 KPX W iacute -28 KPX W j -9 KPX W l -9 KPX W o -30 KPX W oacute -30 KPX W ocircumflex -30 KPX W odieresis -30 KPX W oe -25 KPX W ohungarumlaut -30 KPX W oslash -23 KPX W parenright 12 KPX W period -43 KPX W quotedblright 16 KPX W quoteright 20 KPX W quotesingle 23 KPX W r -26 KPX W racute -26 KPX W rcaron -15 KPX W sacute -30 KPX W semicolon -5 KPX W u -23 KPX W uacute -23 KPX W udieresis -23 KPX W uhungarumlaut -23 KPX W uring -23 KPX W y -7 KPX W yacute -5 KPX X A 7 KPX X AE 20 KPX X C -31 KPX X O -31 KPX X OE -23 KPX X Odieresis -31 KPX X Q -32 KPX X T 12 KPX X W 11 KPX X Y 3 KPX X a -17 KPX X ae -18 KPX X alpha -31 KPX X alphatonos -33 KPX X braceright -3 KPX X bracketright 10 KPX X e -25 KPX X eacute -25 KPX X epsilontonos -25 KPX X hyphen -23 KPX X o -34 KPX X odieresis -34 KPX X omega -45 KPX X omicron -36 KPX X omicrontonos -36 KPX X parenright 6 KPX X quotedblright -15 KPX X quoteright -11 KPX X quotesingle -6 KPX X tau -46 KPX X u -32 KPX X udieresis -32 KPX X y -45 KPX Xi alpha -3 KPX Xi alphatonos -6 KPX Y A -82 KPX Y AE -70 KPX Y Aacute -82 KPX Y Abreve -82 KPX Y Acircumflex -82 KPX Y Adieresis -82 KPX Y Agrave -82 KPX Y Alpha -82 KPX Y Aogonek -76 KPX Y Aring -82 KPX Y Atilde -82 KPX Y C -51 KPX Y Delta -46 KPX Y G -51 KPX Y J -79 KPX Y O -50 KPX Y OE -42 KPX Y Oacute -50 KPX Y Ocircumflex -50 KPX Y Odieresis -50 KPX Y Ograve -50 KPX Y Omicron -50 KPX Y Oslash -48 KPX Y Otilde -50 KPX Y Phi -72 KPX Y Q -52 KPX Y S -37 KPX Y T 13 KPX Y Tau 13 KPX Y Theta -50 KPX Y V 6 KPX Y W 12 KPX Y X 2 KPX Y Z 5 KPX Y a -62 KPX Y aacute -62 KPX Y adieresis -42 KPX Y ae -64 KPX Y aogonek -62 KPX Y braceright -15 KPX Y bracketright 12 KPX Y colon -44 KPX Y comma -76 KPX Y c -63 KPX Y d -64 KPX Y e -57 KPX Y eacute -57 KPX Y eogonek -57 KPX Y g -62 KPX Y guillemotleft -93 KPX Y guilsinglleft -89 KPX Y hyphen -49 KPX Y i -12 KPX Y iacute -49 KPX Y m -55 KPX Y n -57 KPX Y o -66 KPX Y odieresis -55 KPX Y oacute -66 KPX Y ohungarumlaut -66 KPX Y omicrontonos -67 KPX Y oslash -61 KPX Y p -54 KPX Y parenright 7 KPX Y period -76 KPX Y pi -47 KPX Y q -61 KPX Y quotedblright -3 KPX Y quotesingle 5 KPX Y r -57 KPX Y racute -57 KPX Y s -67 KPX Y semicolon -44 KPX Y u -57 KPX Y udieresis -55 KPX Y uacute -55 KPX Y uhungarumlaut -55 KPX Y v -37 KPX Y w -32 KPX Y z -47 KPX Yacute Aacute -82 KPX Yacute Abreve -82 KPX Yacute Acircumflex -82 KPX Yacute Adieresis -82 KPX Yacute Aogonek -76 KPX Yacute J -79 KPX Yacute aacute -62 KPX Yacute colon -44 KPX Yacute comma -76 KPX Yacute eacute -57 KPX Yacute eogonek -57 KPX Yacute hyphen -49 KPX Yacute oacute -66 KPX Yacute ohungarumlaut -66 KPX Yacute period -76 KPX Yacute scedilla -67 KPX Yacute semicolon -44 KPX Yacute uacute -55 KPX Z A -1 KPX Z AE 11 KPX Z E -15 KPX Z I -7 KPX Z O -23 KPX Z OE -11 KPX Z Oacute -19 KPX Z U -16 KPX Z W 4 KPX Z Y -4 KPX Z Z -2 KPX Z ae -1 KPX Z braceright 1 KPX Z bracketright 22 KPX Z colon -2 KPX Z comma 11 KPX Z e -10 KPX Z hyphen -30 KPX Z i -19 KPX Z o -18 KPX Z odieresis -18 KPX Z oe -13 KPX Z omicron -21 KPX Z parenright 14 KPX Z period 10 KPX Z quotedblright 5 KPX Z quoteright 9 KPX Z quotesingle 14 KPX Z semicolon -5 KPX Z v -25 KPX Z w -20 KPX Z y -18 KPX Zeta O -23 KPX Zeta Omicron -23 KPX Zeta o -18 KPX Zeta omicron -21 KPX a comma 7 KPX a endash 39 KPX a g 1 KPX a germandbls 1 KPX a period 7 KPX a quoteright -8 KPX a s -1 KPX a t -2 KPX a v -16 KPX a w -4 KPX a x 4 KPX a y -14 KPX a z 2 KPX adieresis comma 8 KPX adieresis endash 38 KPX adieresis g 2 KPX adieresis germandbls 2 KPX adieresis period 5 KPX adieresis quoteright -9 KPX adieresis t -1 KPX adieresis v -17 KPX adieresis w -3 KPX adieresis x 4 KPX adieresis y -17 KPX adieresis z 2 KPX aacute v -17 KPX aacute w -2 KPX aacute y -14 KPX ae r 4 KPX ae v -13 KPX ae w -1 KPX ae y -14 KPX afii10017 afii10025 -39 KPX afii10017 afii10029 17 KPX afii10017 afii10032 -30 KPX afii10017 afii10035 -28 KPX afii10017 afii10036 -82 KPX afii10017 afii10037 -23 KPX afii10017 afii10038 -31 KPX afii10017 afii10041 -44 KPX afii10017 afii10044 -83 KPX afii10017 afii10053 -26 KPX afii10017 afii10058 8 KPX afii10017 afii10060 -73 KPX afii10017 afii10062 -22 KPX afii10017 afii10073 -19 KPX afii10017 afii10077 1 KPX afii10017 afii10080 -13 KPX afii10017 afii10083 -11 KPX afii10017 afii10084 -119 KPX afii10017 afii10085 -37 KPX afii10017 afii10086 -37 KPX afii10017 afii10089 -42 KPX afii10017 afii10092 -54 KPX afii10017 afii10110 -44 KPX afii10017 colon 13 KPX afii10017 comma 15 KPX afii10017 guillemotright -25 KPX afii10017 hyphen 9 KPX afii10017 period 18 KPX afii10017 semicolon 11 KPX afii10018 afii10017 -28 KPX afii10018 afii10024 -13 KPX afii10018 afii10036 -32 KPX afii10018 afii10037 -36 KPX afii10018 afii10041 -32 KPX afii10018 afii10042 -7 KPX afii10018 afii10060 -41 KPX afii10018 afii10062 -35 KPX afii10018 afii10072 -2 KPX afii10018 afii10084 -121 KPX afii10018 afii10085 -33 KPX afii10018 afii10092 -52 KPX afii10018 afii10106 -14 KPX afii10018 afii10110 -33 KPX afii10019 afii10017 -32 KPX afii10019 afii10024 -4 KPX afii10019 afii10036 -28 KPX afii10019 afii10037 -35 KPX afii10019 afii10041 -16 KPX afii10019 afii10042 -1 KPX afii10019 afii10060 -37 KPX afii10019 afii10062 -39 KPX afii10019 afii10072 5 KPX afii10019 afii10084 -75 KPX afii10019 afii10085 -21 KPX afii10019 afii10089 -24 KPX afii10019 afii10092 -17 KPX afii10019 afii10106 -17 KPX afii10019 afii10110 -20 KPX afii10020 afii10021 -97 KPX afii10020 afii10029 -50 KPX afii10020 afii10032 -56 KPX afii10020 afii10035 -55 KPX afii10020 afii10036 -14 KPX afii10020 afii10037 -26 KPX afii10020 afii10038 -67 KPX afii10020 afii10041 -25 KPX afii10020 afii10053 -54 KPX afii10020 afii10058 -60 KPX afii10020 afii10060 -23 KPX afii10020 afii10062 -25 KPX afii10020 afii10065 -130 KPX afii10020 afii10067 -126 KPX afii10020 afii10069 -160 KPX afii10020 afii10070 -133 KPX afii10020 afii10072 -96 KPX afii10020 afii10073 -138 KPX afii10020 afii10074 -119 KPX afii10020 afii10076 -111 KPX afii10020 afii10077 -145 KPX afii10020 afii10078 -126 KPX afii10020 afii10079 -117 KPX afii10020 afii10080 -138 KPX afii10020 afii10081 -123 KPX afii10020 afii10082 -111 KPX afii10020 afii10083 -136 KPX afii10020 afii10084 -151 KPX afii10020 afii10085 -91 KPX afii10020 afii10086 -137 KPX afii10020 afii10087 -99 KPX afii10020 afii10088 -129 KPX afii10020 afii10089 -106 KPX afii10020 afii10092 -92 KPX afii10020 afii10096 -109 KPX afii10020 afii10097 -135 KPX afii10020 afii10101 -132 KPX afii10020 afii10106 -146 KPX afii10020 afii10110 -45 KPX afii10020 colon -117 KPX afii10020 comma -138 KPX afii10020 hyphen -119 KPX afii10020 period -143 KPX afii10020 semicolon -112 KPX afii10022 afii10038 -21 KPX afii10024 afii10025 -12 KPX afii10024 afii10032 -4 KPX afii10024 afii10035 -2 KPX afii10024 afii10038 -7 KPX afii10024 afii10053 -4 KPX afii10024 afii10065 3 KPX afii10024 afii10070 3 KPX afii10024 afii10073 -10 KPX afii10024 afii10080 -2 KPX afii10024 afii10084 -87 KPX afii10024 afii10085 -27 KPX afii10024 afii10086 -29 KPX afii10024 afii10089 -33 KPX afii10024 afii10101 3 KPX afii10024 afii10110 -16 KPX afii10025 afii10017 -37 KPX afii10025 afii10021 -7 KPX afii10025 afii10024 -9 KPX afii10025 afii10025 -22 KPX afii10025 afii10029 -4 KPX afii10025 afii10036 -28 KPX afii10025 afii10037 -36 KPX afii10025 afii10039 -35 KPX afii10025 afii10041 -20 KPX afii10025 afii10049 -20 KPX afii10025 afii10058 -13 KPX afii10025 afii10060 -37 KPX afii10025 afii10062 -45 KPX afii10025 afii10077 -21 KPX afii10025 afii10084 -78 KPX afii10025 afii10085 -23 KPX afii10025 afii10087 -24 KPX afii10025 afii10089 -29 KPX afii10025 afii10097 -11 KPX afii10025 afii10106 -22 KPX afii10025 afii10110 -21 KPX afii10028 afii10025 -27 KPX afii10028 afii10032 -20 KPX afii10028 afii10035 -18 KPX afii10028 afii10038 -22 KPX afii10028 afii10053 -19 KPX afii10028 afii10065 -11 KPX afii10028 afii10066 -16 KPX afii10028 afii10070 -12 KPX afii10028 afii10073 -25 KPX afii10028 afii10080 -18 KPX afii10028 afii10083 -16 KPX afii10028 afii10084 -103 KPX afii10028 afii10085 -42 KPX afii10028 afii10086 -45 KPX afii10028 afii10089 -49 KPX afii10028 afii10101 -12 KPX afii10028 afii10110 -32 KPX afii10032 afii10017 -35 KPX afii10032 afii10021 -16 KPX afii10032 afii10024 -4 KPX afii10032 afii10025 -16 KPX afii10032 afii10029 1 KPX afii10032 afii10036 -39 KPX afii10032 afii10037 -35 KPX afii10032 afii10039 -29 KPX afii10032 afii10041 -8 KPX afii10032 afii10044 -36 KPX afii10032 afii10049 -14 KPX afii10032 afii10058 -8 KPX afii10032 afii10060 -47 KPX afii10032 afii10062 -40 KPX afii10032 afii10077 -11 KPX afii10032 afii10106 -13 KPX afii10034 afii10017 -65 KPX afii10034 afii10021 -58 KPX afii10034 afii10029 -24 KPX afii10034 afii10035 -12 KPX afii10034 afii10041 -9 KPX afii10034 afii10049 -30 KPX afii10034 afii10058 -34 KPX afii10034 afii10065 -14 KPX afii10034 afii10067 -31 KPX afii10034 afii10068 -24 KPX afii10034 afii10069 -60 KPX afii10034 afii10070 -16 KPX afii10034 afii10073 -15 KPX afii10034 afii10077 -50 KPX afii10034 afii10080 -21 KPX afii10034 afii10083 -21 KPX afii10034 afii10086 -38 KPX afii10034 afii10101 -14 KPX afii10034 afii10106 -51 KPX afii10034 colon -12 KPX afii10034 comma -91 KPX afii10034 hyphen 3 KPX afii10034 period -91 KPX afii10034 semicolon -14 KPX afii10035 afii10017 -36 KPX afii10035 afii10024 -4 KPX afii10035 afii10025 -14 KPX afii10035 afii10029 1 KPX afii10035 afii10032 -4 KPX afii10035 afii10035 -2 KPX afii10035 afii10036 -19 KPX afii10035 afii10037 -34 KPX afii10035 afii10038 -5 KPX afii10035 afii10039 -30 KPX afii10035 afii10049 -13 KPX afii10035 afii10058 -7 KPX afii10035 afii10060 -28 KPX afii10035 afii10062 -44 KPX afii10035 afii10084 -58 KPX afii10035 afii10085 -7 KPX afii10035 afii10089 -13 KPX afii10035 afii10106 -16 KPX afii10035 afii10110 -8 KPX afii10036 afii10017 -85 KPX afii10036 afii10021 -67 KPX afii10036 afii10025 -19 KPX afii10036 afii10029 -20 KPX afii10036 afii10032 -26 KPX afii10036 afii10035 -25 KPX afii10036 afii10036 15 KPX afii10036 afii10037 3 KPX afii10036 afii10038 -37 KPX afii10036 afii10049 -24 KPX afii10036 afii10053 -24 KPX afii10036 afii10058 -30 KPX afii10036 afii10060 6 KPX afii10036 afii10062 4 KPX afii10036 afii10065 -68 KPX afii10036 afii10067 -76 KPX afii10036 afii10068 -69 KPX afii10036 afii10069 -91 KPX afii10036 afii10070 -66 KPX afii10036 afii10072 -64 KPX afii10036 afii10073 -78 KPX afii10036 afii10074 -69 KPX afii10036 afii10076 -61 KPX afii10036 afii10077 -81 KPX afii10036 afii10078 -75 KPX afii10036 afii10079 -67 KPX afii10036 afii10080 -71 KPX afii10036 afii10081 -73 KPX afii10036 afii10082 -66 KPX afii10036 afii10083 -69 KPX afii10036 afii10084 -121 KPX afii10036 afii10085 -61 KPX afii10036 afii10086 -96 KPX afii10036 afii10087 -69 KPX afii10036 afii10088 -78 KPX afii10036 afii10089 -76 KPX afii10036 afii10092 -62 KPX afii10036 afii10097 -73 KPX afii10036 afii10101 -65 KPX afii10036 afii10106 -82 KPX afii10036 afii10110 -15 KPX afii10036 colon -48 KPX afii10036 comma -61 KPX afii10036 guillemotright -81 KPX afii10036 hyphen -47 KPX afii10036 period -67 KPX afii10036 semicolon -49 KPX afii10037 afii10017 -84 KPX afii10037 afii10021 -72 KPX afii10037 afii10025 -47 KPX afii10037 afii10029 -26 KPX afii10037 afii10032 -54 KPX afii10037 afii10035 -53 KPX afii10037 afii10036 10 KPX afii10037 afii10037 -2 KPX afii10037 afii10038 -51 KPX afii10037 afii10049 -54 KPX afii10037 afii10053 -50 KPX afii10037 afii10058 -35 KPX afii10037 afii10060 1 KPX afii10037 afii10065 -68 KPX afii10037 afii10066 -62 KPX afii10037 afii10069 -94 KPX afii10037 afii10070 -65 KPX afii10037 afii10072 -36 KPX afii10037 afii10073 -68 KPX afii10037 afii10074 -59 KPX afii10037 afii10076 -51 KPX afii10037 afii10077 -85 KPX afii10037 afii10078 -66 KPX afii10037 afii10079 -57 KPX afii10037 afii10080 -71 KPX afii10037 afii10081 -63 KPX afii10037 afii10082 -53 KPX afii10037 afii10083 -69 KPX afii10037 afii10084 -91 KPX afii10037 afii10085 -33 KPX afii10037 afii10086 -95 KPX afii10037 afii10087 -39 KPX afii10037 afii10088 -69 KPX afii10037 afii10089 -46 KPX afii10037 afii10096 -52 KPX afii10037 afii10097 -70 KPX afii10037 afii10101 -65 KPX afii10037 afii10106 -86 KPX afii10037 afii10110 -31 KPX afii10037 colon -54 KPX afii10037 comma -100 KPX afii10037 guillemotright -80 KPX afii10037 hyphen -41 KPX afii10037 period -98 KPX afii10037 semicolon -48 KPX afii10038 afii10017 -51 KPX afii10038 afii10021 -37 KPX afii10038 afii10024 -19 KPX afii10038 afii10029 -13 KPX afii10038 afii10037 -49 KPX afii10038 afii10039 -45 KPX afii10038 afii10041 -17 KPX afii10038 afii10044 -62 KPX afii10038 afii10049 -28 KPX afii10038 afii10058 -22 KPX afii10038 afii10062 -50 KPX afii10038 afii10069 -30 KPX afii10038 afii10077 -21 KPX afii10038 afii10106 -22 KPX afii10039 afii10025 -43 KPX afii10039 afii10032 -33 KPX afii10039 afii10035 -31 KPX afii10039 afii10038 -38 KPX afii10039 afii10053 -29 KPX afii10039 afii10065 -24 KPX afii10039 afii10070 -32 KPX afii10039 afii10073 -38 KPX afii10039 afii10080 -37 KPX afii10039 afii10083 -35 KPX afii10039 afii10084 -110 KPX afii10039 afii10085 -51 KPX afii10039 afii10086 -61 KPX afii10039 afii10089 -65 KPX afii10039 afii10101 -31 KPX afii10044 afii10036 -95 KPX afii10044 afii10037 -45 KPX afii10044 afii10041 -43 KPX afii10044 afii10044 -101 KPX afii10044 afii10060 -86 KPX afii10044 afii10062 -44 KPX afii10044 afii10092 -56 KPX afii10046 afii10036 -102 KPX afii10046 afii10037 -52 KPX afii10046 afii10041 -50 KPX afii10046 afii10044 -108 KPX afii10046 afii10060 -93 KPX afii10046 afii10062 -51 KPX afii10046 afii10092 -63 KPX afii10047 afii10017 -30 KPX afii10047 afii10021 -11 KPX afii10047 afii10029 6 KPX afii10047 afii10036 -35 KPX afii10047 afii10037 -30 KPX afii10047 afii10044 -32 KPX afii10047 afii10049 -9 KPX afii10047 afii10058 -3 KPX afii10047 afii10060 -42 KPX afii10047 afii10062 -35 KPX afii10047 afii10106 -8 KPX afii10048 afii10017 -35 KPX afii10048 afii10021 -16 KPX afii10048 afii10024 -4 KPX afii10048 afii10025 -16 KPX afii10048 afii10029 1 KPX afii10048 afii10036 -40 KPX afii10048 afii10037 -35 KPX afii10048 afii10039 -29 KPX afii10048 afii10041 -8 KPX afii10048 afii10044 -37 KPX afii10048 afii10049 -14 KPX afii10048 afii10058 -8 KPX afii10048 afii10060 -47 KPX afii10048 afii10062 -40 KPX afii10048 afii10077 -11 KPX afii10048 afii10106 -13 KPX afii10050 afii10021 -87 KPX afii10050 afii10029 -41 KPX afii10050 afii10032 -46 KPX afii10050 afii10035 -45 KPX afii10050 afii10036 -4 KPX afii10050 afii10037 -17 KPX afii10050 afii10038 -57 KPX afii10050 afii10041 -15 KPX afii10050 afii10049 -44 KPX afii10050 afii10053 -44 KPX afii10050 afii10058 -50 KPX afii10050 afii10060 -13 KPX afii10050 afii10062 -13 KPX afii10050 afii10065 -104 KPX afii10050 afii10067 -111 KPX afii10050 afii10069 -125 KPX afii10050 afii10070 -100 KPX afii10050 afii10072 -86 KPX afii10050 afii10073 -114 KPX afii10050 afii10074 -104 KPX afii10050 afii10076 -96 KPX afii10050 afii10077 -121 KPX afii10050 afii10078 -110 KPX afii10050 afii10079 -102 KPX afii10050 afii10080 -105 KPX afii10050 afii10081 -108 KPX afii10050 afii10082 -98 KPX afii10050 afii10083 -103 KPX afii10050 afii10084 -141 KPX afii10050 afii10085 -81 KPX afii10050 afii10086 -127 KPX afii10050 afii10087 -89 KPX afii10050 afii10088 -113 KPX afii10050 afii10089 -96 KPX afii10050 afii10092 -82 KPX afii10050 afii10096 -98 KPX afii10050 afii10097 -110 KPX afii10050 afii10101 -99 KPX afii10050 afii10106 -123 KPX afii10050 afii10110 -35 KPX afii10052 afii10021 -97 KPX afii10052 afii10029 -50 KPX afii10052 afii10032 -56 KPX afii10052 afii10035 -54 KPX afii10052 afii10036 -14 KPX afii10052 afii10037 -26 KPX afii10052 afii10038 -66 KPX afii10052 afii10041 -25 KPX afii10052 afii10053 -53 KPX afii10052 afii10058 -60 KPX afii10052 afii10060 -23 KPX afii10052 afii10062 -25 KPX afii10052 afii10065 -137 KPX afii10052 afii10067 -126 KPX afii10052 afii10069 -159 KPX afii10052 afii10070 -133 KPX afii10052 afii10072 -96 KPX afii10052 afii10073 -138 KPX afii10052 afii10074 -119 KPX afii10052 afii10076 -111 KPX afii10052 afii10077 -144 KPX afii10052 afii10078 -125 KPX afii10052 afii10079 -117 KPX afii10052 afii10080 -138 KPX afii10052 afii10081 -123 KPX afii10052 afii10082 -110 KPX afii10052 afii10083 -136 KPX afii10052 afii10084 -150 KPX afii10052 afii10085 -90 KPX afii10052 afii10086 -136 KPX afii10052 afii10087 -98 KPX afii10052 afii10088 -128 KPX afii10052 afii10089 -105 KPX afii10052 afii10092 -92 KPX afii10052 afii10096 -109 KPX afii10052 afii10097 -141 KPX afii10052 afii10101 -132 KPX afii10052 afii10106 -146 KPX afii10052 afii10110 -44 KPX afii10058 afii10036 -98 KPX afii10058 afii10037 -49 KPX afii10058 afii10041 -47 KPX afii10058 afii10044 -104 KPX afii10058 afii10060 -90 KPX afii10058 afii10062 -48 KPX afii10058 afii10092 -60 KPX afii10059 afii10036 -83 KPX afii10059 afii10037 -33 KPX afii10059 afii10041 -32 KPX afii10059 afii10044 -89 KPX afii10059 afii10060 -75 KPX afii10059 afii10062 -32 KPX afii10059 afii10092 -45 KPX afii10061 afii10025 -37 KPX afii10061 afii10032 -25 KPX afii10061 afii10035 -23 KPX afii10061 afii10038 -24 KPX afii10061 afii10053 -21 KPX afii10061 afii10065 -19 KPX afii10061 afii10066 -22 KPX afii10061 afii10070 -18 KPX afii10061 afii10073 -31 KPX afii10061 afii10080 -23 KPX afii10061 afii10083 -26 KPX afii10061 afii10084 -103 KPX afii10061 afii10085 -46 KPX afii10061 afii10086 -51 KPX afii10061 afii10089 -55 KPX afii10061 afii10101 -17 KPX afii10061 afii10110 -43 KPX afii10062 afii10017 -96 KPX afii10062 afii10021 -71 KPX afii10062 afii10025 -46 KPX afii10062 afii10029 -25 KPX afii10062 afii10032 -53 KPX afii10062 afii10035 -52 KPX afii10062 afii10036 10 KPX afii10062 afii10038 -50 KPX afii10062 afii10049 -53 KPX afii10062 afii10053 -52 KPX afii10062 afii10058 -34 KPX afii10062 afii10060 1 KPX afii10062 afii10065 -69 KPX afii10062 afii10066 -62 KPX afii10062 afii10069 -99 KPX afii10062 afii10070 -71 KPX afii10062 afii10072 -36 KPX afii10062 afii10073 -67 KPX afii10062 afii10074 -59 KPX afii10062 afii10076 -51 KPX afii10062 afii10077 -84 KPX afii10062 afii10078 -65 KPX afii10062 afii10079 -57 KPX afii10062 afii10080 -76 KPX afii10062 afii10081 -63 KPX afii10062 afii10082 -53 KPX afii10062 afii10083 -74 KPX afii10062 afii10084 -90 KPX afii10062 afii10086 -97 KPX afii10062 afii10087 -38 KPX afii10062 afii10088 -68 KPX afii10062 afii10089 -45 KPX afii10062 afii10096 -51 KPX afii10062 afii10097 -69 KPX afii10062 afii10101 -70 KPX afii10062 afii10106 -86 KPX afii10065 afii10084 -70 KPX afii10065 afii10085 -19 KPX afii10065 afii10089 -18 KPX afii10065 afii10106 -3 KPX afii10065 afii10110 -14 KPX afii10066 afii10072 1 KPX afii10066 afii10073 -11 KPX afii10066 afii10084 -78 KPX afii10066 afii10085 -25 KPX afii10066 afii10087 -24 KPX afii10066 afii10089 -13 KPX afii10066 afii10097 -4 KPX afii10066 afii10110 -20 KPX afii10067 afii10073 -10 KPX afii10067 afii10084 -72 KPX afii10067 afii10085 -26 KPX afii10067 afii10087 -23 KPX afii10067 afii10089 -25 KPX afii10067 afii10097 -9 KPX afii10067 afii10110 -21 KPX afii10068 afii10069 -80 KPX afii10068 afii10077 -65 KPX afii10068 afii10080 -39 KPX afii10068 afii10083 -38 KPX afii10068 afii10086 -57 KPX afii10068 afii10097 -31 KPX afii10068 afii10101 -32 KPX afii10068 afii10106 -67 KPX afii10068 afii10110 -18 KPX afii10068 colon -63 KPX afii10068 comma -123 KPX afii10068 hyphen -102 KPX afii10068 period -123 KPX afii10068 semicolon -63 KPX afii10070 afii10072 10 KPX afii10070 afii10073 -3 KPX afii10070 afii10077 -8 KPX afii10070 afii10085 -20 KPX afii10070 afii10087 -17 KPX afii10070 afii10089 -5 KPX afii10070 afii10110 -15 KPX afii10072 afii10066 6 KPX afii10072 afii10070 11 KPX afii10072 afii10080 5 KPX afii10072 afii10083 3 KPX afii10072 afii10086 -20 KPX afii10072 afii10101 11 KPX afii10072 afii10110 8 KPX afii10073 afii10072 4 KPX afii10073 afii10077 -6 KPX afii10073 afii10084 -68 KPX afii10073 afii10085 -21 KPX afii10073 afii10087 -18 KPX afii10073 afii10089 -20 KPX afii10073 afii10097 -4 KPX afii10073 afii10106 -7 KPX afii10073 afii10110 -16 KPX afii10075 afii10106 -12 KPX afii10076 afii10066 -1 KPX afii10076 afii10070 2 KPX afii10076 afii10073 -8 KPX afii10076 afii10080 -2 KPX afii10076 afii10083 -4 KPX afii10076 afii10086 -28 KPX afii10076 afii10101 3 KPX afii10080 afii10072 3 KPX afii10080 afii10073 -9 KPX afii10080 afii10077 -16 KPX afii10080 afii10084 -76 KPX afii10080 afii10085 -22 KPX afii10080 afii10087 -19 KPX afii10080 afii10092 -18 KPX afii10080 afii10106 -17 KPX afii10080 afii10110 -17 KPX afii10082 afii10072 9 KPX afii10082 afii10073 -5 KPX afii10082 afii10077 -11 KPX afii10082 afii10084 -73 KPX afii10082 afii10085 -21 KPX afii10082 afii10087 -18 KPX afii10082 afii10089 -10 KPX afii10082 afii10101 12 KPX afii10082 afii10110 -16 KPX afii10082 colon 18 KPX afii10082 hyphen 34 KPX afii10082 period 2 KPX afii10082 semicolon 18 KPX afii10083 afii10062 -30 KPX afii10083 afii10065 4 KPX afii10083 afii10072 3 KPX afii10083 afii10073 -5 KPX afii10083 afii10077 -7 KPX afii10083 afii10084 -64 KPX afii10083 afii10085 -23 KPX afii10083 afii10086 -21 KPX afii10083 afii10087 -20 KPX afii10083 afii10089 -8 KPX afii10083 afii10097 -4 KPX afii10083 afii10106 -9 KPX afii10084 afii10065 -70 KPX afii10084 afii10069 -121 KPX afii10084 afii10070 -74 KPX afii10084 afii10073 -70 KPX afii10084 afii10077 -106 KPX afii10084 afii10080 -80 KPX afii10084 afii10083 -79 KPX afii10084 afii10084 -112 KPX afii10084 afii10085 -58 KPX afii10084 afii10086 -98 KPX afii10084 afii10089 -67 KPX afii10084 afii10097 -71 KPX afii10084 afii10101 -72 KPX afii10084 afii10106 -107 KPX afii10084 afii10110 -58 KPX afii10084 colon -104 KPX afii10084 comma -151 KPX afii10084 guillemotright -90 KPX afii10084 hyphen -132 KPX afii10084 period -151 KPX afii10084 semicolon -104 KPX afii10085 afii10065 -16 KPX afii10085 afii10069 -42 KPX afii10085 afii10070 -12 KPX afii10085 afii10073 -17 KPX afii10085 afii10077 -33 KPX afii10085 afii10080 -17 KPX afii10085 afii10083 -15 KPX afii10085 afii10084 -43 KPX afii10085 afii10086 -40 KPX afii10085 afii10089 1 KPX afii10085 afii10097 -19 KPX afii10085 afii10101 -11 KPX afii10085 afii10106 -35 KPX afii10085 comma -43 KPX afii10085 guillemotright -30 KPX afii10085 hyphen 1 KPX afii10085 period -46 KPX afii10085 semicolon -2 KPX afii10086 afii10068 -26 KPX afii10086 afii10069 -39 KPX afii10086 afii10072 -20 KPX afii10086 afii10073 -32 KPX afii10086 afii10077 -41 KPX afii10086 afii10084 -94 KPX afii10086 afii10085 -47 KPX afii10086 afii10087 -49 KPX afii10086 afii10089 -27 KPX afii10086 afii10092 -36 KPX afii10086 afii10097 -28 KPX afii10086 afii10106 -43 KPX afii10086 afii10110 -41 KPX afii10087 afii10065 -14 KPX afii10087 afii10070 -14 KPX afii10087 afii10073 -23 KPX afii10087 afii10080 -20 KPX afii10087 afii10083 -18 KPX afii10087 afii10086 -47 KPX afii10087 afii10101 -14 KPX afii10087 afii10110 6 KPX afii10092 afii10070 -12 KPX afii10092 afii10083 -15 KPX afii10092 afii10084 -148 KPX afii10092 afii10085 -56 KPX afii10092 afii10089 -29 KPX afii10092 afii10092 -71 KPX afii10092 afii10110 -51 KPX afii10094 afii10070 -10 KPX afii10094 afii10083 -14 KPX afii10094 afii10084 -147 KPX afii10094 afii10085 -55 KPX afii10094 afii10089 -27 KPX afii10094 afii10092 -70 KPX afii10094 afii10110 -49 KPX afii10095 afii10077 -8 KPX afii10095 afii10084 -68 KPX afii10095 afii10085 -14 KPX afii10095 afii10089 -3 KPX afii10095 afii10092 -10 KPX afii10095 afii10097 2 KPX afii10095 afii10106 -10 KPX afii10095 afii10110 -9 KPX afii10096 afii10072 1 KPX afii10096 afii10073 -11 KPX afii10096 afii10077 -18 KPX afii10096 afii10084 -79 KPX afii10096 afii10085 -24 KPX afii10096 afii10087 -21 KPX afii10096 afii10089 -13 KPX afii10096 afii10092 -20 KPX afii10096 afii10106 -19 KPX afii10096 afii10110 -19 KPX afii10098 afii10069 -64 KPX afii10098 afii10077 -49 KPX afii10098 afii10080 -23 KPX afii10098 afii10083 -22 KPX afii10098 afii10086 -41 KPX afii10098 afii10097 -14 KPX afii10098 afii10101 -15 KPX afii10098 afii10106 -51 KPX afii10100 afii10069 -64 KPX afii10100 afii10077 -49 KPX afii10100 afii10080 -23 KPX afii10100 afii10083 -22 KPX afii10100 afii10086 -41 KPX afii10100 afii10097 -15 KPX afii10100 afii10101 -16 KPX afii10100 afii10106 -51 KPX afii10106 afii10084 -149 KPX afii10106 afii10085 -57 KPX afii10106 afii10089 -29 KPX afii10106 afii10092 -72 KPX afii10106 afii10110 -51 KPX afii10107 afii10070 -5 KPX afii10107 afii10083 -8 KPX afii10107 afii10084 -141 KPX afii10107 afii10085 -49 KPX afii10107 afii10089 -22 KPX afii10107 afii10092 -64 KPX afii10107 afii10101 -4 KPX afii10107 afii10110 -44 KPX afii10109 afii10065 6 KPX afii10109 afii10066 5 KPX afii10109 afii10070 9 KPX afii10109 afii10073 -2 KPX afii10109 afii10080 3 KPX afii10109 afii10083 5 KPX afii10109 afii10086 -22 KPX afii10109 afii10101 9 KPX afii10109 afii10110 1 KPX afii10110 afii10065 -11 KPX afii10110 afii10069 -36 KPX afii10110 afii10070 -6 KPX afii10110 afii10073 -17 KPX afii10110 afii10077 -28 KPX afii10110 afii10080 -12 KPX afii10110 afii10083 -10 KPX afii10110 afii10084 -44 KPX afii10110 afii10086 -35 KPX afii10110 afii10097 -14 KPX afii10110 afii10101 -6 KPX agrave v -16 KPX agrave w -4 KPX agrave y -14 KPX alpha colon 26 KPX alpha comma 19 KPX alpha delta 3 KPX alpha epsilon 16 KPX alpha exclam -13 KPX alpha gamma 20 KPX alpha guillemotright -14 KPX alpha o 8 KPX alpha omicron 7 KPX alpha omicrontonos 7 KPX alpha period 20 KPX alpha phi 11 KPX alpha pi 10 KPX alpha semicolon 26 KPX alpha sigma -4 KPX alpha tau 22 KPX alpha theta 18 KPX alpha upsilondieresis 13 KPX alpha upsilontonos 13 KPX alpha xi 13 KPX alpha zeta 1 KPX alphatonos colon 26 KPX alphatonos comma 19 KPX alphatonos delta 3 KPX alphatonos epsilon 16 KPX alphatonos gamma 20 KPX alphatonos guillemotright -14 KPX alphatonos o 9 KPX alphatonos omega -6 KPX alphatonos omicron 7 KPX alphatonos period 21 KPX alphatonos semicolon 27 KPX alphatonos sigma -4 KPX alphatonos theta 18 KPX alphatonos xi 13 KPX alphatonos zeta 2 KPX aring v -16 KPX aring w -4 KPX aring y -14 KPX asterisk period -26 KPX b colon 18 KPX b comma -3 KPX b endash 52 KPX b g 5 KPX b j -1 KPX b period -4 KPX b s -1 KPX b semicolon 18 KPX b v -17 KPX b w -3 KPX b y -15 KPX b z -11 KPX backslash A 18 KPX backslash B 43 KPX backslash C 39 KPX backslash D 45 KPX backslash G 36 KPX backslash H 50 KPX backslash I 52 KPX backslash J 22 KPX backslash K 47 KPX backslash L 44 KPX backslash M 51 KPX backslash N 50 KPX backslash O 37 KPX backslash P 46 KPX backslash Q 35 KPX backslash R 44 KPX backslash S 43 KPX backslash T -22 KPX backslash U 36 KPX backslash W 16 KPX backslash X 18 KPX backslash Y -20 KPX backslash Z 29 KPX backslash d 56 KPX backslash eacute 63 KPX backslash f 50 KPX backslash fi 45 KPX backslash fl 45 KPX backslash g 52 KPX backslash i 56 KPX backslash j 51 KPX backslash l 56 KPX beta gamma -20 KPX beta lambda -25 KPX braceleft A -16 KPX braceleft AE -4 KPX braceleft J -16 KPX braceleft T -13 KPX braceleft V -7 KPX braceleft W 6 KPX braceleft X -9 KPX braceleft Y -23 KPX braceleft Z 4 KPX braceleft b 15 KPX braceleft f 9 KPX braceleft fi 24 KPX braceleft fl 24 KPX braceleft g 11 KPX braceleft h 11 KPX braceleft i 11 KPX braceleft j 12 KPX braceleft k 15 KPX braceleft l 11 KPX braceleft p 19 KPX braceleft quoteleft 32 KPX braceleft y -4 KPX bracketleft A -5 KPX bracketleft AE 7 KPX bracketleft J -4 KPX bracketleft T 9 KPX bracketleft V 3 KPX bracketleft W 17 KPX bracketleft X 2 KPX bracketleft Z 16 KPX bracketleft b 28 KPX bracketleft f 18 KPX bracketleft fi 33 KPX bracketleft fl 33 KPX bracketleft g 24 KPX bracketleft h 24 KPX bracketleft i 24 KPX bracketleft j 23 KPX bracketleft k 28 KPX bracketleft l 24 KPX bracketleft p 26 KPX bracketleft quoteleft 45 KPX bracketleft y 7 KPX c a 2 KPX c adieresis 2 KPX c asterisk 8 KPX c colon 17 KPX c comma 2 KPX c e 5 KPX c endash 31 KPX c exclam -26 KPX c h -2 KPX c hyphen 19 KPX c j -4 KPX c k 1 KPX c l -2 KPX c o -3 KPX c odieresis -3 KPX c oacute -3 KPX c oe 2 KPX c period 5 KPX c question -49 KPX c quotedblright -4 KPX c s -2 KPX c semicolon 16 KPX c t -3 KPX c y -21 KPX ccaron e 7 KPX ccaron o -1 KPX chi alpha -32 KPX chi alphatonos -34 KPX chi epsilon -29 KPX chi epsilontonos -32 KPX chi o -35 KPX chi omega -51 KPX chi omegatonos -51 KPX chi omicron -36 KPX chi omicrontonos -36 KPX chi theta -3 KPX chi upsilontonos -12 KPX comma endash 32 KPX comma hyphen 14 KPX comma quotedblright -34 KPX comma quoteright -30 KPX d a 4 KPX d adieresis 4 KPX d braceright 13 KPX d bracketright 29 KPX d comma 2 KPX d endash 40 KPX d g 3 KPX d j 4 KPX d parenright 22 KPX d period 4 KPX d v -12 KPX d w -1 KPX d y -8 KPX d z -7 KPX dcaron a -40 KPX dcaron aacute -40 KPX dcaron colon -37 KPX dcaron comma -56 KPX dcaron e -39 KPX dcaron eacute -39 KPX dcaron m -12 KPX dcaron n -14 KPX dcaron o -48 KPX dcaron oacute -48 KPX dcaron period -57 KPX dcaron r -14 KPX dcaron s -45 KPX dcaron semicolon -37 KPX dcaron u -15 KPX dcaron uacute -12 KPX dcaron udieresis -12 KPX dcaron uring -12 KPX dcaron y 11 KPX dcaron yacute 15 KPX dcaron z -5 KPX delta nu -18 KPX e a 3 KPX e adieresis 3 KPX e asterisk 3 KPX e b 5 KPX e colon 17 KPX e endash 47 KPX e exclam -22 KPX e f -3 KPX e g 4 KPX e germandbls 1 KPX e h 1 KPX e hyphen 32 KPX e j 1 KPX e k 5 KPX e l 1 KPX e period -1 KPX e question -53 KPX e quoteright -6 KPX e s 1 KPX e semicolon 17 KPX e v -14 KPX e w -2 KPX e x -18 KPX e y -16 KPX e z -5 KPX e zcaron -5 KPX eacute b 5 KPX eacute c 5 KPX eacute colon 17 KPX eacute d 7 KPX eacute exclam -22 KPX eacute g 4 KPX eacute hyphen 32 KPX eacute l 1 KPX eacute period -1 KPX eacute q 10 KPX eacute question -53 KPX eacute quotedblright -10 KPX eacute quoteright -6 KPX eacute semicolon 17 KPX eacute v -14 KPX eacute w -2 KPX eacute y -16 KPX eacute z -5 KPX ecircumflex v -14 KPX ecircumflex w -2 KPX ecircumflex y -16 KPX endash a 34 KPX endash adieresis 34 KPX endash b 38 KPX endash c 50 KPX endash d 50 KPX endash e 58 KPX endash f 22 KPX endash g 49 KPX endash h 34 KPX endash i 34 KPX endash j 34 KPX endash k 38 KPX endash l 34 KPX endash m 37 KPX endash n 36 KPX endash o 49 KPX endash odieresis 49 KPX endash p 41 KPX endash q 54 KPX endash r 36 KPX endash s 29 KPX endash t 26 KPX endash u 37 KPX endash udieresis 37 KPX endash v 12 KPX endash w 26 KPX endash x -7 KPX endash y 14 KPX endash z -1 KPX eogonek zdotaccent -8 KPX epsilon alpha 17 KPX epsilon alphatonos 14 KPX epsilon chi -14 KPX epsilon delta 13 KPX epsilon epsilon 28 KPX epsilon epsilontonos 25 KPX epsilon lambda 5 KPX epsilon o 15 KPX epsilon omega 2 KPX epsilon omegatonos 2 KPX epsilon omicron 13 KPX epsilon omicrontonos 13 KPX epsilon phi 21 KPX epsilon sigma 1 KPX epsilon tau 18 KPX epsilon theta 26 KPX epsilon upsilon 18 KPX epsilon upsilontonos 18 KPX epsilon xi 26 KPX epsilon zeta 15 KPX epsilontonos alpha 17 KPX epsilontonos delta 13 KPX epsilontonos lambda 5 KPX epsilontonos o 15 KPX epsilontonos omega 2 KPX epsilontonos omicron 13 KPX epsilontonos phi 21 KPX epsilontonos semicolon 33 KPX epsilontonos tau 19 KPX epsilontonos theta 26 KPX epsilontonos zeta 15 KPX exclam quotedblright 5 KPX exclam quoteright 9 KPX f a -6 KPX f aacute -6 KPX f adieresis -6 KPX f ae -3 KPX f aogonek -1 KPX f aring -6 KPX f asterisk 15 KPX f bracketright 15 KPX f c -5 KPX f colon 6 KPX f comma -15 KPX f d -6 KPX f endash 19 KPX f exclam -31 KPX f f 13 KPX f g -3 KPX f hyphen 6 KPX f i -5 KPX f iacute -5 KPX f j -6 KPX f l -5 KPX f o -8 KPX f oacute -8 KPX f odieresis -8 KPX f oe -2 KPX f oslash -7 KPX f parenright 7 KPX f period -13 KPX f question -14 KPX f quotedblright 1 KPX f quoteright 5 KPX f quotesingle 2 KPX f racute -3 KPX f s -10 KPX f semicolon 10 KPX f t 12 KPX f trademark -18 KPX f u -6 KPX f udieresis -6 KPX f uring -6 KPX f w 14 KPX f y 12 KPX f yacute 12 KPX g a 1 KPX g adieresis 1 KPX g ae 2 KPX g aring 1 KPX g asterisk 8 KPX g braceright 11 KPX g bracketright 23 KPX g colon 15 KPX g e 7 KPX g eacute 7 KPX g endash 36 KPX g exclam -24 KPX g f -1 KPX g g 2 KPX g hyphen 18 KPX g j 2 KPX g k 3 KPX g o -1 KPX g oacute -1 KPX g odieresis -1 KPX g oe 4 KPX g p 5 KPX g parenright 16 KPX g question -39 KPX g quotedblright -7 KPX g quoteright -3 KPX g r 1 KPX g semicolon 14 KPX g t -1 KPX g v -15 KPX g w -2 KPX g y -11 KPX g z -11 KPX gamma alpha -20 KPX gamma alphatonos -22 KPX gamma delta -24 KPX gamma epsilon -16 KPX gamma epsilontonos -20 KPX gamma lambda -51 KPX gamma o -23 KPX gamma omega -34 KPX gamma omegatonos -34 KPX gamma omicron -24 KPX gamma omicrontonos -24 KPX gamma rho -27 KPX gamma upsilontonos -4 KPX gamma xi -8 KPX germandbls e 10 KPX germandbls k 6 KPX germandbls w -3 KPX guillemotleft Alpha -32 KPX guillemotleft Alphatonos -32 KPX guillemotleft Etatonos -68 KPX guillemotleft Iotatonos -69 KPX guillemotleft Lambda -17 KPX guillemotleft Tau -90 KPX guillemotleft Upsilon -88 KPX guillemotleft afii10017 -31 KPX guillemotleft afii10029 -9 KPX guillemotleft afii10036 -90 KPX guillemotleft afii10037 -56 KPX guillemotleft afii10041 -23 KPX guillemotleft afii10049 -25 KPX guillemotleft afii10077 -30 KPX guillemotleft afii10084 -80 KPX guillemotleft afii10085 -35 KPX guillemotleft afii10089 -30 KPX guillemotleft nu -31 KPX guillemotleft tau -22 KPX guillemotright A -51 KPX guillemotright AE -43 KPX guillemotright Aacute -51 KPX guillemotright Adieresis -51 KPX guillemotright Aring -51 KPX guillemotright T -109 KPX guillemotright V -76 KPX guillemotright W -58 KPX guillemotright Y -107 KPX guilsinglright A -46 KPX guilsinglright AE -38 KPX guilsinglright Aacute -46 KPX guilsinglright Adieresis -46 KPX guilsinglright Aring -46 KPX guilsinglright T -104 KPX guilsinglright V -71 KPX guilsinglright W -53 KPX guilsinglright Y -102 KPX h endash 39 KPX h quoteright -9 KPX h v -18 KPX h y -16 KPX h yacute -16 KPX hyphen AE 9 KPX hyphen C 34 KPX hyphen G 34 KPX hyphen J 34 KPX hyphen O 34 KPX hyphen Q 33 KPX hyphen S 17 KPX hyphen T -57 KPX hyphen V -28 KPX hyphen W -8 KPX hyphen X -33 KPX hyphen Y -65 KPX hyphen Z -14 KPX hyphen a 16 KPX hyphen adieresis 16 KPX hyphen afii10017 2 KPX hyphen afii10036 -57 KPX hyphen afii10037 -43 KPX hyphen afii10084 -135 KPX hyphen afii10085 -6 KPX hyphen f 4 KPX hyphen g 31 KPX hyphen s 14 KPX hyphen t 7 KPX hyphen v -2 KPX hyphen w 11 KPX hyphen x -27 KPX hyphen z -28 KPX i T -12 KPX i asterisk 8 KPX i braceright 10 KPX i bracketright 26 KPX i endash 37 KPX i j 1 KPX i parenright 19 KPX i quotedblright -5 KPX i quoteright -1 KPX i v -14 KPX i w -4 KPX i z -10 KPX iacute v -14 KPX iotatonos delta -2 KPX j asterisk 9 KPX j braceright 12 KPX j bracketright 28 KPX j endash 39 KPX j eogonek 11 KPX j oacute -1 KPX j odieresis -1 KPX j parenright 20 KPX j y -10 KPX k a -14 KPX k aacute -14 KPX k adieresis -14 KPX k ae -15 KPX k aogonek -14 KPX k aring -14 KPX k asterisk 2 KPX k b -5 KPX k c -19 KPX k colon -1 KPX k comma 5 KPX k d -15 KPX k e -12 KPX k eacute -12 KPX k endash -7 KPX k eogonek -12 KPX k exclam -32 KPX k f 14 KPX k g -16 KPX k h -9 KPX k hyphen -25 KPX k i -9 KPX k j -11 KPX k k -5 KPX k l -9 KPX k m -6 KPX k n -7 KPX k o -21 KPX k oacute -21 KPX k odieresis -21 KPX k p -5 KPX k period 3 KPX k q -12 KPX k question -13 KPX k quotedblright -17 KPX k quoteright -13 KPX k r -7 KPX k s -19 KPX k semicolon -2 KPX k t 14 KPX k u -9 KPX k udieresis -9 KPX k v 11 KPX k w 16 KPX k x 15 KPX k y 13 KPX k z 13 KPX kappa alpha -20 KPX kappa alphatonos -23 KPX kappa comma -1 KPX kappa delta -25 KPX kappa epsilon -12 KPX kappa epsilontonos -16 KPX kappa guillemotright -46 KPX kappa o -23 KPX kappa omega -35 KPX kappa omegatonos -35 KPX kappa omicron -25 KPX kappa omicrontonos -25 KPX kappa period -2 KPX kappa phi -17 KPX kappa sigma -37 KPX kappa theta 5 KPX kappa upsilontonos -4 KPX l comma 3 KPX l endash 37 KPX l j 1 KPX l period 1 KPX l v -14 KPX l w -4 KPX l y -11 KPX l z -10 KPX lambda alphatonos -21 KPX lambda comma 11 KPX lambda epsilon -10 KPX lambda epsilontonos -14 KPX lambda gamma -46 KPX lambda guillemotright -37 KPX lambda nu -43 KPX lambda o -20 KPX lambda omega -33 KPX lambda omegatonos -33 KPX lambda omicron -21 KPX lambda omicrontonos -21 KPX lambda period 13 KPX lambda phi -16 KPX lambda quoteright -59 KPX lambda sigma -33 KPX lambda tau -41 KPX lambda upsilon -17 KPX lambda upsilontonos -17 KPX lambda xi -17 KPX lcaron a -45 KPX lcaron aacute -45 KPX lcaron ccaron -51 KPX lcaron colon -40 KPX lcaron comma -59 KPX lcaron d -50 KPX lcaron dcaron -55 KPX lcaron e -42 KPX lcaron eacute -42 KPX lcaron f 7 KPX lcaron g -52 KPX lcaron o -57 KPX lcaron oacute -57 KPX lcaron ocircumflex -48 KPX lcaron p -15 KPX lcaron period -60 KPX lcaron s -50 KPX lcaron scaron -46 KPX lcaron semicolon -40 KPX lcaron t 7 KPX lcaron u -19 KPX lcaron uacute -16 KPX lcaron uring -16 KPX lcaron z -9 KPX lcaron zcaron -6 KPX m endash 39 KPX m g 1 KPX m p 5 KPX m v -16 KPX m w -2 KPX m y -14 KPX m z -10 KPX n T -80 KPX n endash 39 KPX n j -2 KPX n p 3 KPX n quoteright -9 KPX n v -18 KPX n w -4 KPX n y -16 KPX n z -12 KPX nu alpha -19 KPX nu alphatonos -21 KPX nu colon -6 KPX nu comma -49 KPX nu delta -23 KPX nu epsilontonos -14 KPX nu guillemotright -33 KPX nu lambda -43 KPX nu o -22 KPX nu omega -33 KPX nu omegatonos -33 KPX nu omicron -19 KPX nu omicrontonos -19 KPX nu period -47 KPX nu phi -15 KPX nu quoteright 8 KPX nu semicolon -3 KPX nu sigma -31 KPX nu upsilontonos -7 KPX o T -82 KPX o alpha 1 KPX o asterisk -2 KPX o chi -37 KPX o colon 15 KPX o comma -6 KPX o endash 49 KPX o g -1 KPX o gamma -23 KPX o j -4 KPX o lambda -24 KPX o nu -20 KPX o period -7 KPX o pi -19 KPX o quoteright -12 KPX o semicolon 15 KPX o t -4 KPX o tau -18 KPX o v -20 KPX o w -6 KPX o x -20 KPX o y -22 KPX o z -14 KPX odieresis T -57 KPX odieresis asterisk -2 KPX odieresis colon 15 KPX odieresis comma -6 KPX odieresis endash 49 KPX odieresis g -1 KPX odieresis j -4 KPX odieresis period -7 KPX odieresis quoteright -12 KPX odieresis semicolon 15 KPX odieresis t -4 KPX odieresis v -20 KPX odieresis w -6 KPX odieresis x -20 KPX odieresis y -22 KPX odieresis z -14 KPX oacute v -20 KPX oacute w -6 KPX oacute y -22 KPX oacute zacute -14 KPX ocircumflex t -4 KPX oe u 6 KPX ograve v -20 KPX ograve w -6 KPX ograve y -22 KPX omega chi -48 KPX omega gamma -34 KPX omega lambda -36 KPX omega nu -31 KPX omega pi -30 KPX omega tau -32 KPX omegatonos chi -48 KPX omegatonos gamma -34 KPX omegatonos lambda -36 KPX omegatonos nu -31 KPX omegatonos pi -30 KPX omegatonos tau -32 KPX omicron alpha 5 KPX omicron chi -36 KPX omicron gamma -22 KPX omicron lambda -23 KPX omicron nu -18 KPX omicron pi -18 KPX omicron tau -19 KPX omicron upsilon 3 KPX omicrontonos chi -36 KPX omicrontonos gamma -22 KPX omicrontonos nu -18 KPX omicrontonos pi -18 KPX omicrontonos tau -19 KPX p asterisk -1 KPX p endash 50 KPX p g 3 KPX p j 1 KPX p t -2 KPX p v -16 KPX p w -2 KPX p y -16 KPX p yacute -16 KPX p z -12 KPX parenleft A -7 KPX parenleft AE -1 KPX parenleft J -11 KPX parenleft T 7 KPX parenleft W 10 KPX parenleft X -4 KPX parenleft Y -2 KPX parenleft Z 8 KPX parenleft b 21 KPX parenleft f 11 KPX parenleft fi 26 KPX parenleft fl 26 KPX parenleft g 16 KPX parenleft h 17 KPX parenleft i 17 KPX parenleft j 15 KPX parenleft k 21 KPX parenleft l 17 KPX parenleft p 24 KPX parenleft quoteleft 43 KPX period asterisk -20 KPX period endash 31 KPX period hyphen 14 KPX period onesuperior -24 KPX period quotedblright -35 KPX period quoteright -31 KPX period quotesingle -35 KPX period threesuperior 5 KPX period twosuperior 16 KPX phi tau -12 KPX pi alphatonos -14 KPX pi lambda -38 KPX pi o -14 KPX pi omegatonos -30 KPX pi omicron -15 KPX pi omicrontonos -15 KPX pi upsilontonos -13 KPX q braceright 13 KPX q bracketright 25 KPX q c 2 KPX q endash 37 KPX q parenright 18 KPX q u 3 KPX q udieresis 3 KPX question quotedblright 5 KPX question quoteright 9 KPX question quotesingle 12 KPX quotedblbase A 13 KPX quotedblbase AE 25 KPX quotedblbase C -4 KPX quotedblbase G -9 KPX quotedblbase J 24 KPX quotedblbase O -9 KPX quotedblbase Q -10 KPX quotedblbase S 13 KPX quotedblbase T -72 KPX quotedblbase Tcaron -72 KPX quotedblbase V -71 KPX quotedblbase W -48 KPX quotedblbase X 1 KPX quotedblbase Y -88 KPX quotedblbase Yacute -88 KPX quotedblbase Z 21 KPX quotedblbase g -6 KPX quotedblbase s 9 KPX quotedblbase v -49 KPX quotedblbase w -29 KPX quotedblbase y -49 KPX quotedblbase z 20 KPX quotedblleft A -63 KPX quotedblleft AE -57 KPX quotedblleft Aacute -63 KPX quotedblleft Adieresis -63 KPX quotedblleft Aring -63 KPX quotedblleft C -2 KPX quotedblleft G -2 KPX quotedblleft O -2 KPX quotedblleft OE 9 KPX quotedblleft Q -3 KPX quotedblleft S 13 KPX quotedblleft T -11 KPX quotedblleft V 9 KPX quotedblleft W 19 KPX quotedblleft X -17 KPX quotedblleft Y -7 KPX quotedblleft Z -16 KPX quotedblleft a -5 KPX quotedblleft adieresis -5 KPX quotedblleft ae -3 KPX quotedblleft c -6 KPX quotedblleft d -7 KPX quotedblleft f 9 KPX quotedblleft fi 8 KPX quotedblleft fl 8 KPX quotedblleft g -6 KPX quotedblleft o -13 KPX quotedblleft odieresis -13 KPX quotedblleft oe -7 KPX quotedblleft q -4 KPX quotedblleft s -6 KPX quotedblleft t 10 KPX quotedblleft v 8 KPX quotedblleft w 15 KPX quotedblleft x -6 KPX quotedblleft y 9 KPX quotedblleft z -18 KPX quotedblright A -66 KPX quotedblright AE -59 KPX quotedblright Aacute -66 KPX quotedblright Adieresis -66 KPX quotedblright Aring -66 KPX quotedblright T -7 KPX quotedblright V 8 KPX quotedblright W 18 KPX quotedblright Y -6 KPX quoteleft A -68 KPX quoteleft AE -61 KPX quoteleft Aacute -68 KPX quoteleft Adieresis -68 KPX quoteleft Aring -68 KPX quoteleft C -7 KPX quoteleft G -7 KPX quoteleft O -6 KPX quoteleft OE 5 KPX quoteleft Q -8 KPX quoteleft S 8 KPX quoteleft T -16 KPX quoteleft V 5 KPX quoteleft W 14 KPX quoteleft X -22 KPX quoteleft Y -11 KPX quoteleft Z -21 KPX quoteleft a -10 KPX quoteleft adieresis -10 KPX quoteleft ae -7 KPX quoteleft c -11 KPX quoteleft d -12 KPX quoteleft e -4 KPX quoteleft f 4 KPX quoteleft fi 3 KPX quoteleft fl 3 KPX quoteleft g -11 KPX quoteleft o -17 KPX quoteleft odieresis -17 KPX quoteleft oe -12 KPX quoteleft q -8 KPX quoteleft s -10 KPX quoteleft t 5 KPX quoteleft v 3 KPX quoteleft w 10 KPX quoteleft x -11 KPX quoteleft y 4 KPX quoteleft z -23 KPX quoteright A -74 KPX quoteright AE -68 KPX quoteright Aacute -74 KPX quoteright Adieresis -74 KPX quoteright Aring -74 KPX quoteright braceright 23 KPX quoteright bracketright 40 KPX quoteright comma -47 KPX quoteright d -25 KPX quoteright o -26 KPX quoteright odieresis -26 KPX quoteright parenright 43 KPX quoteright period -45 KPX quoteright r -17 KPX quoteright s -19 KPX quoteright sacute -19 KPX quoteright scaron -19 KPX quoteright scedilla -15 KPX quoteright t -4 KPX quoteright v -5 KPX quoteright w -1 KPX quoteright y -4 KPX quotesinglbase A 7 KPX quotesinglbase C -10 KPX quotesinglbase G -15 KPX quotesinglbase J 18 KPX quotesinglbase O -15 KPX quotesinglbase Q -16 KPX quotesinglbase S 7 KPX quotesinglbase T -78 KPX quotesinglbase V -77 KPX quotesinglbase W -54 KPX quotesinglbase Y -94 KPX quotesinglbase Z 15 KPX quotesinglbase g -12 KPX quotesinglbase s 3 KPX quotesinglbase v -55 KPX quotesinglbase w -35 KPX quotesinglbase y -55 KPX quotesinglbase z 14 KPX quotesingle A -61 KPX quotesingle T -2 KPX quotesingle V 12 KPX quotesingle W 23 KPX quotesingle X -15 KPX quotesingle Y -1 KPX quotesingle Z -10 KPX r a -1 KPX r aacute -1 KPX r acircumflex -1 KPX r adieresis -1 KPX r ae -2 KPX r agrave -1 KPX r aring -1 KPX r asterisk 22 KPX r b -8 KPX r c -7 KPX r ccaron -7 KPX r ccedilla -4 KPX r colon -14 KPX r comma -53 KPX r d -6 KPX r dcaron -11 KPX r e 1 KPX r eacute 1 KPX r ecircumflex 1 KPX r egrave 1 KPX r endash -20 KPX r eogonek 4 KPX r exclam -35 KPX r f 15 KPX r g -5 KPX r h -12 KPX r hyphen -33 KPX r i -12 KPX r j -13 KPX r k -8 KPX r l -12 KPX r m -9 KPX r n -10 KPX r nacute -10 KPX r ncaron -10 KPX r o -8 KPX r oacute -8 KPX r ocircumflex -8 KPX r odieresis -8 KPX r oe -2 KPX r ograve -8 KPX r ohungarumlaut -8 KPX r oslash -9 KPX r p -7 KPX r period -55 KPX r q -2 KPX r question -12 KPX r quotedblright 6 KPX r quoteright 10 KPX r quotesingle 8 KPX r r -10 KPX r racute -10 KPX r rcaron -10 KPX r s -4 KPX r semicolon -16 KPX r t 14 KPX r tcaron 14 KPX r tcommaaccent 15 KPX r u -8 KPX r udieresis -8 KPX r uacute -8 KPX r uhungarumlaut -8 KPX r uring -8 KPX r v 11 KPX r w 16 KPX r x 6 KPX r y 15 KPX r yacute 15 KPX r z 1 KPX r zacute 1 KPX r zcaron 1 KPX r zdotaccent 1 KPX racute a -1 KPX racute comma -53 KPX racute d -5 KPX racute m -8 KPX racute n -10 KPX racute p -7 KPX racute period -54 KPX racute s -4 KPX racute t 15 KPX racute v 11 KPX racute z 2 KPX rcaron a -1 KPX rcaron aacute -1 KPX rcaron colon -17 KPX rcaron comma -53 KPX rcaron d -6 KPX rcaron dcaron -11 KPX rcaron e 1 KPX rcaron eacute 1 KPX rcaron i -12 KPX rcaron iacute -12 KPX rcaron o -8 KPX rcaron oacute -8 KPX rcaron period -54 KPX rcaron semicolon -16 KPX rcaron u -8 KPX rcaron uacute -8 KPX rcaron uring -8 KPX rcaron v 11 KPX rho chi -31 KPX rho exclam -19 KPX rho gamma -17 KPX rho guillemotright -5 KPX rho lambda -18 KPX rho nu -11 KPX rho pi -11 KPX rho tau -14 KPX s a 5 KPX s adieresis 5 KPX s colon 16 KPX s comma 9 KPX s eacute 8 KPX s endash 33 KPX s exclam -23 KPX s f -4 KPX s hyphen 18 KPX s k 4 KPX s p 3 KPX s period 10 KPX s question -47 KPX s quotedblright -10 KPX s quoteright -6 KPX s semicolon 16 KPX s t -1 KPX s v -18 KPX s w -6 KPX s y -17 KPX s z 1 KPX sacute c 1 KPX sacute w -6 KPX scaron k 5 KPX scaron p 3 KPX scaron t -3 KPX sigma lambda -32 KPX slash B 37 KPX slash D 40 KPX slash E 39 KPX slash F 41 KPX slash H 44 KPX slash I 47 KPX slash J 6 KPX slash K 41 KPX slash L 38 KPX slash M 45 KPX slash N 44 KPX slash R 38 KPX slash T 20 KPX slash U 38 KPX slash V 17 KPX slash W 31 KPX slash X 12 KPX slash Y 8 KPX slash Z 20 KPX slash b 33 KPX slash f 28 KPX slash fi 43 KPX slash fl 43 KPX slash g 28 KPX slash h 29 KPX slash i 29 KPX slash j 27 KPX slash k 33 KPX slash l 29 KPX slash slash 24 KPX slash t 27 KPX slash y 11 KPX t S -3 KPX t ae -1 KPX t asterisk 15 KPX t c -5 KPX t colon 13 KPX t comma 2 KPX t d -2 KPX t e 1 KPX t eacute 1 KPX t endash 18 KPX t eogonek 4 KPX t exclam -25 KPX t g -5 KPX t h -4 KPX t hyphen 1 KPX t i -4 KPX t j -4 KPX t n -2 KPX t o -7 KPX t oacute -7 KPX t odieresis -7 KPX t p 2 KPX t question -19 KPX t quoteright 3 KPX t r -2 KPX t s -4 KPX t semicolon 10 KPX t t 7 KPX t u -3 KPX t udieresis -3 KPX t v 3 KPX t w 8 KPX t y 6 KPX t z 3 KPX tau alpha -9 KPX tau alphatonos -11 KPX tau colon -2 KPX tau comma -28 KPX tau epsilontonos -5 KPX tau guillemotright -24 KPX tau iotatonos -14 KPX tau lambda -43 KPX tau o -14 KPX tau omega -28 KPX tau omegatonos -28 KPX tau omicron -13 KPX tau omicrontonos -13 KPX tau period -27 KPX tau phi -8 KPX tau quoteright 5 KPX tau rho -20 KPX tau semicolon -3 KPX tau sigma -25 KPX tau tau 12 KPX tau upsilontonos -7 KPX tcaron a -30 KPX tcaron aacute -30 KPX tcaron comma -25 KPX tcaron e -26 KPX tcaron eacute -26 KPX tcaron m -29 KPX tcaron n -31 KPX tcaron o -35 KPX tcaron oacute -35 KPX tcaron period -26 KPX tcaron r -31 KPX tcaron rcaron 6 KPX tcaron s -35 KPX tcaron scaron -25 KPX tcaron t -8 KPX tcaron u -32 KPX tcaron uacute -32 KPX tcaron uring -32 KPX tcaron y -21 KPX tcaron yacute -20 KPX tcaron z -24 KPX tcaron zcaron -13 KPX u endash 36 KPX u g 2 KPX u j 2 KPX u quoteright -3 KPX u v -13 KPX u w -2 KPX u x -13 KPX u y -11 KPX u z -7 KPX udieresis endash 36 KPX udieresis g 2 KPX udieresis j 2 KPX udieresis quoteright -3 KPX udieresis v -13 KPX udieresis w -2 KPX udieresis x -13 KPX udieresis y -11 KPX udieresis z -7 KPX upsilon chi -13 KPX upsilon gamma -6 KPX upsilon lambda -19 KPX upsilon tau -3 KPX upsilondieresis nu -5 KPX upsilontonos chi -13 KPX upsilontonos gamma -6 KPX upsilontonos lambda -19 KPX upsilontonos nu -5 KPX upsilontonos pi -10 KPX upsilontonos tau -3 KPX v a -14 KPX v aacute -14 KPX v acircumflex -14 KPX v adieresis -14 KPX v ae -16 KPX v agrave -14 KPX v aring -14 KPX v asterisk 18 KPX v atilde -14 KPX v c -19 KPX v colon -6 KPX v comma -49 KPX v e -8 KPX v eacute -8 KPX v ecircumflex -8 KPX v egrave -8 KPX v endash 13 KPX v g -16 KPX v i -13 KPX v j -13 KPX v l -13 KPX v o -21 KPX v oacute -21 KPX v odieresis -21 KPX v oe -16 KPX v ograve -21 KPX v oslash -14 KPX v period -46 KPX v r -11 KPX v s -19 KPX v semicolon -2 KPX v u -9 KPX v udieresis -9 KPX v y 13 KPX w a -1 KPX w aacute -1 KPX w acircumflex -1 KPX w adieresis -1 KPX w ae -3 KPX w agrave -1 KPX w aring -1 KPX w asterisk 26 KPX w atilde -1 KPX w c -6 KPX w colon 7 KPX w comma -29 KPX w e 4 KPX w eacute 4 KPX w ecircumflex 4 KPX w egrave 4 KPX w endash 29 KPX w exclam -27 KPX w f 18 KPX w g -3 KPX w hyphen 16 KPX w i -5 KPX w j -4 KPX w l -5 KPX w o -9 KPX w oacute -9 KPX w odieresis -9 KPX w ograve -9 KPX w oslash -1 KPX w period -27 KPX w question -9 KPX w quotedblright 10 KPX w quoteright 14 KPX w quotesingle 12 KPX w r -3 KPX w s -6 KPX w semicolon 11 KPX w t 18 KPX w u -3 KPX w udieresis -3 KPX w y 17 KPX w z 4 KPX x a -16 KPX x asterisk 4 KPX x c -20 KPX x colon -3 KPX x comma -5 KPX x e -14 KPX x eacute -14 KPX x endash -9 KPX x exclam -37 KPX x hyphen -26 KPX x o -23 KPX x odieresis -23 KPX x period -6 KPX x q -18 KPX x question -15 KPX x quotedblright -11 KPX x quoteright -7 KPX x semicolon -4 KPX x y 11 KPX xi alpha -9 KPX xi alphatonos -12 KPX xi epsilon 3 KPX xi o -11 KPX xi omegatonos -28 KPX xi omicron -10 KPX xi omicrontonos -10 KPX xi upsilontonos -14 KPX y a -18 KPX y aacute -18 KPX y acircumflex -18 KPX y adieresis -18 KPX y ae -20 KPX y agrave -18 KPX y aring -18 KPX y asterisk 17 KPX y atilde -18 KPX y c -18 KPX y ccaron -18 KPX y colon -5 KPX y comma -48 KPX y e -11 KPX y eacute -11 KPX y ecircumflex -11 KPX y egrave -11 KPX y endash 10 KPX y exclam -35 KPX y g -20 KPX y hyphen 1 KPX y j -13 KPX y l -13 KPX y o -20 KPX y n -11 KPX y oacute -20 KPX y odieresis -20 KPX y ograve -20 KPX y oslash -18 KPX y period -50 KPX y question -14 KPX y quotedblright 1 KPX y quoteright 5 KPX y quotesingle 1 KPX y s -23 KPX y sacute -23 KPX y semicolon -6 KPX yacute ccaron -18 KPX yacute comma -48 KPX yacute period -50 KPX z asterisk 19 KPX z colon 6 KPX z comma -1 KPX z e -2 KPX z endash -9 KPX z exclam -33 KPX z hyphen -18 KPX z i -7 KPX z o -11 KPX z odieresis -11 KPX z period -3 KPX z semicolon 6 KPX z u -6 KPX z udieresis -6 KPX z y 2 KPX zacute colon 6 KPX zacute comma -1 KPX zacute semicolon 6 KPX zcaron colon 6 KPX zcaron comma -1 KPX zcaron e -2 KPX zcaron semicolon 6 KPX zdotaccent c -8 KPX zdotaccent colon 6 KPX zdotaccent comma -1 KPX zdotaccent e -2 KPX zdotaccent oacute -11 KPX zdotaccent semicolon 6 KPX zeta alpha -30 KPX zeta alphatonos -32 KPX zeta epsilon -7 KPX zeta epsilontonos -10 KPX zeta o -29 KPX zeta omega -42 KPX zeta omegatonos -42 KPX zeta omicron -33 KPX zeta omicrontonos -33 KPX zeta upsilon -25 KPX zeta upsilontonos -25 EndKernPairs EndKernData EndFontMetrics libwmf-0.2.13/fonts/NimbusSans-BoldItalic.t1000066400000000000000000003326131441723000300205440ustar00rootroot00000000000000%!PS-AdobeFont-1.0: NimbusSans-BoldItalic 1.00 %%CreationDate: Thu Jul 20 2017 % Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development % (URW)++,Copyright 2014 by (URW)++ Design & Development 10 dict begin /FontInfo 12 dict dup begin /version (1.00) readonly def /Notice ((URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /Copyright (Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /FullName (Nimbus Sans Bold Italic) readonly def /FamilyName (Nimbus Sans) readonly def /Weight (Bold) readonly def /ItalicAngle -12.0 def /isFixedPitch false def /UnderlinePosition -111 def /UnderlineThickness 69 def end readonly def /FontName /NimbusSans-BoldItalic def /PaintType 0 def /FontBBox {-144 -309 1196 1073} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec é ×`£Â,ñùÜiš"Ã[[4Þ?¿Ø˜¯.aÔØ·Pþ‡‡ÝÙgëð9YÆÊ2SÝã/ÊØ$u™lµüÔFëâi:Ìô Ÿ-=ËÅ‹IåéÉ¢“ÉÅ«ôSÀ­:¶QÖÃëí<¡yùéö1’YãL ¡ Œ4brî4*{‹0 @!þWbêƒ47W€éŽãfÔâØóJQr¨ª '7øjѹÒùW“à]Λx\m§ÆÌ/&5ʵEùº˜\Aî”ë±ãFžuÃηnsó:„+·o¿kPFzà®ó{OrÒLNvh åL—ÃMo©öôÁÝL‰r5Vrì í‹nËÖjFÒB\¾'hLæ¦^`È:Òâ²Gq‚úy™NTÁ>]>¸`0~²¥DÉ!¼š™án`ŸÏMwN+K .‡ÅÔ=§3ÅÊ–±÷Xöï†Îº]5/ÃsË ïYdõKâZÏ„Îø…âé¸4`Š´‡4u?K%õ ŽÑ‡<õ‹||™5 iÅ/î×?ÞšÜÕÆ“õ£Ü³åþ8_†¨ÇmgzàPï‰)’ËèäÌO웵7Œ1²!G¸Ç&w¾ïrŽ3¡{àbýѼtº[cM蕺Zfëóv„ F€òƒ_Ð0è ¤" û1+û–« 6;ƒ76 ØÍ«¾«Ø¨,9›ã,UßÄ3ÃÎPŒ#JY@L” Ί¤‚¸§sKoj‚ºzŠ,‡ñƒ’=ÀK÷hþER¥p’¥¾#-I¼Vm@ÃCU‹?.Û$Ž?Jðd~Í8¸A!.â9§?fh.©Ù.vÛN/ìj!¿5bË”Ux᪔¥¢Ï6ÙŒçW1sím_N¦8êfã¨n÷©RÞ½Sq™ÉÖ¡PäÔ}™>ˬ»2R Ô;(SrÏÙû8h:CÈü/êåúMów¸”Ó0pL2|‹–mà ¢éºon-¼¶kÇP×^º¼ ÿ‹9whrõFfÙ`+¸iÕ¨\åϬ^h[zf@ä ·›H«5ͨ‰ø €¸v|)G·²Æ…ñí.íRÚÙ@ÖX_¿'ÏÓJ ¥ÖÝ\zÍB¦§^ø¡ÊëâÐØñÊ‚ÎAp»Öäø«Ó£Çí 05ïÜ"e»NØ/ñÇ­jž°2WGç—)Ѭ!{¤õ%Å„qügg±àþ¦š¦˜ç®0—ÐÇ2Ú0oo)Ä4Ý¢é¾Óhøø%®ñ]eI¹@ìÈÞ#öÆ M¾ÿ Måø¼"ù‹@ º7W¿dÇB’‚š_‹'“šªºÓ½Ð}þ—?ÀtÚm'Òur(5êÝN›ŽÜTVÈ.#Å1â!*/¥ùâfý@’¥5Æ,×s6 }·Ä®èŽN2øõ\*¸95ÈÎ Ú|±Ž%ªxî$ˆ5áC¼hþ}</¾#vê2¼yfH2ÑC!‡Qæ$}ŽŸË+­”f±H¤ëZ?§U´fS(ù¯žw zø¨yw#c¤Åцɷ‘'ùIÿϨE°ì»º¸%€ÇÖPiFÆ'ºGõ÷Ôòd=Ö~M}Óèß, Ñ@ݧöÞUžÖŠ-jüç¾ëÎ J±aÓ\÷ÁTQëb?kÅ+a¡ï\+W”°Ïèªoâ]E6‡ßå½(Äc"vŽe Û4ÿ„N© =qìܰeþ†3—•6î r&dëþUƒ}ð¾¸ÁåemÙø~[Ašà v¤ _w@c,qå°”} /U®j_îmÈ® x-óöp•ßG%ÿvrËìC§o"¤6š:ÖA܇…»ÅÚþí“…B\ö&úÝíÞiõÒ¼—Æ<Øë!ÝöP†Ò®Lëo#7 xix5•ÝG&M—è¿u*|9µ\E§Z(Y2üìYôJPÒHXJ‡ÄS!ûúÓR@g•ßbi9.¦vÂînA¯|Žè ¸ iòXž‹Ò)LYÖDù§AÕ;’ìïc‹! 1w+í€ác†XiDü&îXGo³m„ ­¹¢F'äužz=\l÷E3ì’')cóá¼%õKìÿ¾ÐÀÏ1¶ ®E¡¤i=ð7 ˜Щ ÌusºŒà¡»´”\ï™0² ¹¾º;¤o”QJö\,×@[f):ƒ™Ç* "ê=Z[,n;oBvÌ“,–Ô`žË"3µuñäW"ã„+Vc0É%¬ ¿UÝà ÃJ°LÍ m3ªð²²_¶?¼¿ZÓ ]ãíý†—Ï’œkG«T¸ñ*Ô€·«+ •¨3‚Ҿʚ „؃ùœVçܵC4§÷›Èjµ¿aÌ!ôN#hd—¬žËÎ9ïk޼¥I…Ä2Œ÷ÀX Ë¥l”ºQ°1cÀ0søŠ:ßïÁÕt¾ÚžU®@½¡'ÎסӜX‘¼É3ÍŸ8c@bõûõ@ç [Ò{Ahñ”n%ˆH4J;Ñ¡®€ïdÌÑ)õ=,ú2ŸúƳP•qöòÎÁH^0­"ßìä¥+žŠ¾ñ⺎=‰âNSp,•;ç†qqÿl¢&„¬ëè§áKL(ɹyÿ„ÅoõË@¨0‰·jÍfx-QVbL?üM7×÷ùñdŒ–¥Nrw¢µ=ÇkÄ~ÃíßñX¬¢êÎ['ÄvË.‚P :`BómF0_Ùãa¸t:DyÀ2d^ÊX a†›À!;¨6“C×£íÈž±wîo0ÍÏ$³/I÷ÞcVÑtóϲpØCd×pœÑe–¹{¾Ò³Ç¬_8ZÅ],¬Í•G )”ÃnRáÉÑÄŽý {¶q¶3öÉzLÕsI] Š ÜÑÉõ Ê ü,p8z”O?!k¡m]U®QÔY>Ä6«sL]ˆˆU†™Z‡ƒþL£ÀÊ“¨Tgl®;&µþ”áøi–³Fû$ý tÊÝIéHÝ L( sÝîïŸË5ðÈÌÔ9³I¾ngÁ÷ƒ'ù#6µr™jhf€¡š—3Ä?¶Ãøæâ!Ìç‹c[?.,s“É™ÇIj–°^uX.Ù–¢o‡—ZÙ]¬èÉê×,Ö¯^ji½¦aå±=µ :ŸÐÕ÷¯PYß䫿¦ûÑ1áiãû{4I“+v»J}Ôk­œë·ûurá†9Æ´<3Ødã‘ÇAØæ-㎄gá8Éî`ñ§ë[{8Eˆ[ VDK/ìj-S"3{!°A“ÎÊb8ðm™¹üíNº©=œt-Ķ¿¸Qú®ÕÞØ-‚/9þÆ5ò°TÃyŒÁêf’‘÷ÿ®ýÉ9XÉË,¤µí¢a†W~$ŒÑ‰ãù“Ñ:F%¨ Q4°+úéIšßþÞäy4Q5nÛ®p&eNëÀv††¿Ù‘¨",ÝË¥Ù±cgCRWcƒÒ¨4<ºT¿p™†›e}³. WcÆ^â$Õ©ZÚ¡™„ßý%á]5^RG.î~ŽW€óºhütCÈˉu å½eC¾>w?‚ñ $)ZÓÊùc³ìȪüX.^‚ãuΈÍoæqæÇC¦¶¾ Õô‹V–SSokw*=¦m:¡+зåÖ‹|g’³aGc6»lŽj™)À"Exú€t§¡9D/ EþXó;q>Ö^å:ØÓÕ’#f¥•r'„ê—ïaM6IEoJàY¾X¥\)(¡Á-ÌP])´Áí²Úæ#r˜Žö îë?éJ½ÈÐ û+K¨ô 2Cú=ÒUH¼Þ |iÙêžL¸%›tPZÚÆ{µW™É<ülzReÚRòlQÚf L²ê¾’¡:ójàÒqó$ÀH*‹‹b±ØÝeXóÇ#µ…Æ/ˆÚLA{0sÙ2#Zãˆ%¼ ð•ZZ3Š3Øçõàºä=y¡±}g—>e‹mgÏ@” ˆ <w ±y×ñj{˜s€{ ¡Ø¯Ù›þ]DWŸËeaßiW;ÃÚ'¸Êx@’Πè¬C=“#'{üË"TŒ”sºÿ÷¸N®cìi÷Íâ줿œÇç-ïŒè>ú¤ÊcË5‡±÷Ô‡qÒìSჿ¿@µä.¦ à¦tg÷„<\ös$OâéÎ_o¿Q;u¢iyb¨¥¹3¥*oÓÇ–ìUp,€Šˆ÷ 3Æ–Ö u}Ì1ÆÊx|;®TŒèÕïŸJ\›Ž¥óv”½Öa„Ø~(¶;ÓìQÿ³,p"£ˆpëÆUßÍœ–ü„{Æ!@¾„=¯f³øU7_Þ¤…𡯯HÓ&?k!ü¤X¸ÎÉue‡÷Ú¬(ëR©,«/åúˆôî¿hÛÞ¿ý~ Ýìu<]$K?žgzvÇoêC B‚q«T–1gR•¹µ'¼_“™(Vuôâkêî‚Å0² e­X×…ë¼Ø}¢î†Þ6ÆåFI3ðîïŸ,ÇP£±{[s£ñ÷\Øb;³[TâNÓsËâÅöBPlvˆÿ÷K(ŒD®Œ‚oÁ))/˜î븾n+ħŸ/Z¯åc"å´&/¦‡s"¯|‰þžËú¬™³ë#&(ГÊâÛº¥e P¥ÿðÂJ'´øÚÏŠðƒÁä …èŠ”H~º±…ÀwÓ]J­õ äë(8€csŠ…= AꘌPJ¢±¦!ÿ‚<¬ó‡ MUiF Àº¼6ò¢ü°ÈÑ8e©nœy^¼–žHï:æÃ’¤¬˜‹0DLö¹·Œ ”|…ЇÛß^@³3]SÑï>~ñs=!€ ó ÅV±áá;>ärÅs{ù!Ãë}Ì?tÚLd*˜S6Ÿ}fľkâ’¢¼Z7¼jœ« óܦ‡^¤ÈûÐHÃæL¹Ü—½ó“JÐÆ7´RÄuö)tÂóFÅŸöçý˜v³7Tò§Ód‡¢©W ‡«¦-‘-V­þ-½0á_7Êò¬Q?¥Den&)õIwÂ>ÌÔ[¡%ߨ­ 4vÈëZ NÎÔAE Ÿ‡%¿àûÔ¦­Ùô½&ýQŠØyL•5ø7 ä•F@S¡¢(PN—ë_F|“¢üÑþ«ÑQ/ëÿþ¹°˜¤ßú^j¦c5‡óa†Ó•nš”ªÎ'D´¾ô,ró!"8щ¸å¡Å* ”wËõAI8º†\Ê8ÌUqÙRG\·¨ëµ§Rýq Ô8xqÌxh:i5ýx„–ö‘z¢ÊŒ.¿×/gÂc¹©>]ý%KsmëO˜ÙySùÝY/d•úpýCuóò\¡A©¸Uí‰LF÷ AœnÛOóõJ ¼Êj:ÿÌxœ܈æV•_t‰O/º+å½Ñ!§J3)Ï&åöþI+µöE©¼µðê ô,`æ ¯@”»ñ™ŒŒuü[hòߥÌ,ÑpŸ1eféöfˆrkýÔnÕ 7Ôñ"¹EŸõÎð—Iœ…º²E¦[ÐÛêªii3ü«¸rl^N r²h Y@å>Vý£4Íò¢¬Êèwm'ËÔaú¸‡ˆ&$g&öê^¤žB­6`ì#åM3æQu€ ­i™Cò¢ÒP·´²^÷ÜFkp\W†Ö͈Ebêæ!R‡ @4‡Í° ]9"eÌAäŸq†=ëÒÛ›[i¶ê3%¸^F+h°{3´ŽÜÚûlÑ€³iM¼ÙÌÈ-Y0ØYc½ÂK”8ÂÕAe}å̳‹§·Ù{/ÒÀéÕÍGlŽïŽ]™k´0ë§>\÷ ²Q³ Ì×P–äúv,ú6cj4K¹9®… ñ9TwîžÅ°ÊÐín*Ð,¦'DVB/žó5銯Ø#)y¬–PK‰–×>BH&HÔl»éGa‚Yz[Jïƒ%“ PGù@Žb4b¡ML€N– ­«´®²ÒhÒÑW‘enÛg¦"¾ñ}}ÊÁ¿.rížñÚ(Ø‚"ÜmÁqµë*²'zØÖ€*½ápp*GÂÍopûѵ|ªì5¬yáÑâ=ñTOõµ£—éáuï'(BÌ4~D /¡1Å8õ›]o ­œÎWaýÁ˪”xV(û2…Ö>»aÆ­Bx ’¿÷3PhNp“o¶ Ru”¢WŽ&„6.ÛèT‘9´ ž;Ô¹áÇ­-ò÷ÇÑ/»õ“ e—8-pV>Én±ËVºª÷=Ácïƒ §sÝo¢ìCõÒåÝ´ ‘BÙŠìŠÏc•ìLÙ Ôf:Í3ÐU¬ B ÷¢år«ßnZ˜éµÃXïDkÛ”ßWJ>þËÚ×Àœ¼î©&;I¹¸ÚB’ÅÈìú,'hÛŒø4dï…5Î’c©©¯B¿:“q ï0 óÔ)ÝÆÓþ0×0øgCš÷ö‚`?¸Æœ”}Ÿˆÿ¡÷²> ýŦÚ8Ë!òfiZU>¸‚:D8FD•ŸKþ*ð©ð½í_+]ù¸¦§Q$·RѺe)CÿѤhf™€á³Ž-ªóÑRÐ+§€f®óöÀwµH>,°úöŸ¾U"Ãß§H˜]—XÜØVHíHŸ¥.R‹™òlOÖ;ÜKªˆN’à: 9Ó5éðé9Tht€1–z«Äׂ?´×òYºõWB?Qp€,¡<|7Ú^{j@<ÉX*‡=ÈÊ–¹–öw#ƒo¤Þg÷Ÿ ç#^åÜ)]FÏqô*è¡“ð‡C0´‚½\'@ëãºt@J>ì>ì8sð$rñ¸÷í ÉzòŸçhÛ› Xõ+i›ø&ö €ûr/ Ë!}xG-EØÃ¾qv+áø–]f,ß1™Ðø[”¦Bæ§Ò ý&¤1?æÉ R‡£‹E7,%e.—“"47Ïnoéz'ñèÿfVxJFM,1©\§£˜ñqäîà6Ü6¹ÁW}âsÄßÃÞª 'ÝÜYÓBÍ;P,óg~#—±EȽiôЬçîß•M|yN*Óóå÷ülílûva Ï”è$$É(,iwN«¾$¶1ýg׿~özê‚®a§¬A8B^Åpµ ­b9O‚šq’Ä—âÊZ÷*^Z„ûzí‹À•”ËôÛàÝ3pêùê7ïÿ$JV’Aù1OXFæ+ÿWrφÝNfœY5Ü%h×ÿCŠ| °Î³õò2š¡™ëHýsëì›Dî†PuF»–žç¶`æ˜n[UÄÛ4ê®.†éCƒ6 Zù—.&×ïaÖ˜Íù"ü%')½E Í0o¤Vd"ZiQÊÃÐJ20Ê%'!Ðg™@ ¶^9ÝO<î$ÓÖS_YŸfë‘ÂljA¨P|¡‰ôù*Pf¨½QÿQ'pª¹®qK•yÑ-×eôÚQfZòyåRc££µ­€”qYölÜâoUçí ɹ ÁÕ†ýÏ•æåWžÜÿæpÖIiÏ”ÑÂj¿æÚèξÅY™©TŒngè‚—œáAßðÌÕ-Êl^ܨ†˜ U«tµVN¶ñ±xÅŽÛš×¢¸4#zúSHö¦W+Œ8‘V0Ë*0&D{CÞ°ÉJ"'Émé°å¸KöûÇ]Pïÿó·ºÆ½PrÚ¨Vš)j¦ÕµÑ¤Aƺ{êA | òê\²Py:Yôd>ª0뤭­Šlà+ ÊËnj¨aBåtÚ‘„Tò™Î)ÑÜÁ«RžÎ³uŽý’‚È-!‡xF H»³ê#;ô®CÉÏL³Í‡®mÞÔ&“öYLÜ"…Yø)`((<á…±]¡bÿ’¸÷œ«ê,û‹ÚψYy½$¦ïªÑ²áH—ÈŒ|SGtD&ºKìM/‡§ëª~Îó¥AœÒÆä-aãsîêjRõ‘\sˆ vìú_é%!­´X º,‰ƒt¬VBça©„“n=±°¹yšùdß kµë]tkkQïNsÝ ì\{ÍGt+¥ŒçþX_ávKþ°0‰»9­šŒ4ü;Ø2——Õ®»vŒ}ÓdÛ µ§Ô!Â3&;fænGþ®Lîh Y¹zÏ»G~ù›A‘ilZiAËÖê%žóóŠ^HÊ’¡ ´txŠ©›'û ¶]F¯€*q€OšÅܯL¨)2v;abü,øó€#ÝÄk•ê=®Î©¼¯Âäø,òK´)M5£ ‹åb¸ç{3ì|ôqØÄ·™†áÂ~ÅØQŠFHCÌ­¡ "4þõ”œ²¾È¹åÛÞø¡(:4É¥>‹U>õbXÒ§ÚlÉ£\‚ìr@žG²# V‡õ“è9]6g(ˆnæ2†ü¿H»1Pû2Ô~ 'ó^*ü³Ô¸UPF¹̽e=mD±R‹/„ ,ĤD|ÙyAÁì²ãâú!WIvL££UÙÿ–I[¹µ„ÄKŠê‰Ï y˜mOâ­F;„ ·pØ«æcüï¹÷(ör“=ueãé Cç…9…bcÔðÐZ?OÛµ£rç™Y¼„p žŸOî~†mø™YÕ ü~ñûÔBÒÍÅ›ÚyU¤˜*‹rB}g¬R_ñ¦p™9L™G¬4è;”2âPÓwU¹WH‹c¨:ã“_z”ëVK|#?Çßné^7ÞhÊ—¨e¤ÐVk¾ D.0BJvVæ ’,•Æ·DˆþÃ1 ‡ É qÑ$á4"[M…d] L;²f>MTÙÊr€Çë]D&ð B…âTõø(F\Ì™ ¹\3(™ëÊäšÒÀå† —¼p º#fƒ¤}1ªëû›ÔevVWä1’GoÿHs&iÕŸÐúŸ#èŽÐ¡ (KgçƧmZYÃ)·ú«r¸íEï "Mrhu•9”ÊèïSyG&ÃîWÕܽK“)±3Ûl}Å6‚W)P(Éî&äIåpÚ™[çÚ¬ ŽØåX…gƒŸ‹0iou¨ õ3ØY}ƒü¡†&m.2ß2#yªÈbœÑ Óuë“5)'ÿJt0#eŸohö–沯ujE YÈ2¢Tž½‘VÿòV_Š(!bβh-ÓÞ‚òL)ôÙídCÁFº„×2MŒ[§Gƒ•Šè0'èþ Åý’¯WÐHèî½—Vjöt¿KŽû¡ÎCnÝ‘‘ÁðB=•ðC 3"YèœWiÖxäi 3#=V$úr'ÆŽè¹PV@…„;R°»ò.t?®)³œ9釱³‡¾:Z Y+øOjLß5/ßÔpŸ†¡ GH;KÒÀÖ<¾«ïI«, ÖwÕ­[sÀw¼©ß_¢õ›€¯7êqšžÇ±uêFeǹð{å9ɦŒˆu7 .Nj,,I‘¸ØÎå>‰¬»0л «/²at6]Ïí•·Icxt¢Ë€_/pT¥Þ!˜pK5`!uÑvAV_Á]3‡ß•:"G¶ e°;“Ä(ÚQ‚3XuéõùÝ%bvǰQFXÖ•æØ\Àâ<¾Ö»tÁ-c#‚µšµ+òmG:ïaÍįæ2¾W*ÃïÙ½’u€@\‹úÄlÿ\®ÅÚ"`rùᘿF©ÉÿãC” ž€D¼p™_óÓ¼s”z««‡NzVÁ¹O¢Ã~KôÕ?Gèõpy <¯w÷å XżÙÿ€•VV}†Âgqœ6/Ç'ö^0D µº]]Ä„ ÒX]3Ô/¤ÓGkhB3pêŽòËç]ÒâI² °ö}\ÖªfN۳؃ßà`nEömTZ Þ¨žc9›×ýþZâQè‰Ø¢]y¡ãÑËê‡{t¹Ï$”`®×sÕtûŸqyƒ’)SzOuŸÒÔαS tµû×9‘wC¢0á}8Œ'¢À²¨Œ‘8¥û4s§—VWÔK3oö©BΩÖu§Æ _*?¯[¿Êä7Ø ÝË“ù Õ¹=5%VWé­åÛdzLK÷65T?D‰Pc1¡ÈðxZé"pª_6]}ÉÒ¹ãH_C›ßx¦4°QIŰ_RlÆùs.„Ÿ‘˃Ópa¯XØÆÉ©MϑϘ±8Ù;'Ó,ŠÄº „âÐsÔId±ô¡ÕJŒç ‰ZÑoË" Å 7ÙM퇗Á·’ù4ÎÚyŽËý%2@7¾Èv5‹ãÔ<Ðꤖœ¥ð±·ƒ8Nã@щæ€$ <9sÿOý) eï&°²À÷o™/ôú¹t5¼±Š?)Cò˜ÞžžÒ7Üe­á«)jm®Ÿô¦„œÂ)*Dƈˆý”tœÑûž¯€ 2Zs{1¢ >jvœ!lvûXe€ûk¹ïÖ9FÆmoB;åîËÂÀÃñ6'gÄœ]æçóEnhËìˆ J¡Ä¤Ê6¯0Ý«¢»ª~³éÏEÞÔM„³ o5^ðvÊAå=qVâ9ã¢ÑĤ¶ºé6Q¸^ѳ<¶g-JëvkñHU/!q,:=8, IÛw½nÚS*öŽ|iÈe‚YG±‘¶Šéö{nQ–ÇǧÏ×ñ¦iôcG¬™)ÂሾÏ5Bèÿ7Èñ N:ÜÈ #â¸vùK;Æà½Tg—–Ð? –À=ÚÈ úÅË:UÐó_Snû‹zÛÊÂõƒ¦Vv¹dx v4¤åZ÷ñè- žžä¿ã ñ¢àesgúm”µXÂX°·Æv˜ÄK¨ƒ‹‹¬Ù¶Æ¸™ôŽäæ@{#ò êC Yµ ù¼a‡‘„ 0&c…bv~5ùÛhi ¶{Üh†²åŠ“HÕ|Œ“ú»º Å@l e[vÝ æ§à¸,ËØÆ¹g) 5j8/ù²vjÆN(ã'³àl`8vÀ`œ׆9Óí¼£8º(°Gêë þ—å}÷'‰óNŠhõº×“Lè òþ¶N4l.lÇÄÝ¿çè0{ŠcŽPk?½iA£DëQ9"®`fcâTúËQlöŽ„Ì¯+Ë©°+ŽNI…£ù†ÿ] ÆŸu²Ä90©·¢²Æ\Ç¿ô?.b¸á‘‰0}™4…¨®ï®¤ñ¬?é å•ì«,–q €4öö¯ÂìJ 5ò÷¦\ô×EO52p™W5,[c&}T !uä€~r jQ7ðlØ?Çqf½œÍDt‚/%W©cÄK!…îÀù‰ó$ý4sûyhŸÿ-¦ÈJÎÙà-žš+A¸\‡&Šö¹±æT©uØKœ®JØÊøÒxƒòªN²¯U 1Ýøp㙘tѳi‘>¬“"JÅŸÇEÉÚXÿâO«À:~h$aÊGŠAú¤.VÞúòåÖ¢±¥»FqÁ%1ƒ6³}*²yäë`”ÒŒª¶>óSfzâ%ª]ÖÞÁB'¥ÃF,æU¾ge¶UÐgÚµ€-4¶b™5PŠü@ýÝ›½›Æc;6fD>ê ï™dþf`›4ý±,f \,'߆°þåJÍX]ºý Z.èKÛTñÓÍT© Ýß$hû’"™cƒMȰÁôºF¡/·Å«¯+›M`>l£^ÅÑu‘úÏG J4ÐÚsJFõ¨p/ïÝ­÷PCë„ÍÈuäd¹$¼Õ‡8ÕòØhgbSÕ/Ö«©Óø(b±­4*È¡âŸÐºþ\"ÖJŠ~žãt3„uýÅ‹ýç9²„µn3ë.©ltEuÑÿñøÜÌøl‘FÆèœðšdo¾—šµ#hÚy2ÔçAo¾Ëë=z¬:ÔøÉX½ ECéÜÐ,ne…¶[âQ/â38[æ3ÃQ-ðp3þÞ@cE7,cÏn’¶ —ǘ¸M¯KôúŽŠø8!Ô¾¾ÅnZB¤+7èUÔ65KÌ¥þNï“ÀÇ}yúZ\ñ¹ýØqZŸ,d±‡Š£äB„ÿûgpP‚)¡ È8Õ8a­-us„Í!d6‡cþ€4·öõpdц–nÖ´UaØgSIqÁ;ÿð4i¨oóêþ\Æ]h;±Òm)ñƒíÔ[Ç/—ÁalÓAJpYÑUž5ÝmÄަœ“V½‹V,ƒ,}|¨ŸúÆy±!ÓŒçž:×Õñ÷¤Ľm0*2Ìr5Ñг<ÆdÝ/ž¯æ:[îÉþÓò¼ ŒqP/ƒîÚ«ýŸÆà ¬-D÷«T*}¶Ðè?––bìå_[°eûê÷u·—h¡aŽû7!Šö“0k‰‰sËÈákµG_¥õŽâß<ö Nb;|&ÑÌÿÔÍHö“œ7nOšîF¿ûÛþÂ(?„ˆôê»ñ© I³åNØ G$óY7Ó{³08vßõ„ç+ÉЇ•4iýøê;§ëz½Ê&§ÈIC‚ƒx1  ”+°Ö‰ûVðþµÃ›\äVÕ!ýaQ+&Š…S(ÄKs÷&²ŽàU†S°q2#ÃÀ•ŒxsËE#Ú ~ƒZ§ššÛ÷( ÌžOÐD£9×§‚’ ‘w¸8>¸RÒ¦R¾Âœ¨K¥âÃÊôåí$Rå2:®Æ2m½æ™ Z~ \‡£8·G)¼3Î«Žªoö÷ÂN¿‰ °&˜ ô~á•¡[sß@´é"Õ"s½…Èt>ÃÉä¥Ûš!½ci±’záåIݘÊ(t¢§.`@Ê3Õv4#@¥Ëvq4Ý¿@Ë }§:ªÌï4²€ÍEWrÑóØÏ.ÊŠomá¼ B›1Rx/`žàQ>æè ©–ò$ç7¯Ë™Ù)”Ü-_¦«‚ÇcÚ7?ûrO×à„× újzÍÌ“ÁÎB~˜×=àݧøÂB<WWVN`2­8Â`~©3çÿ‰>Î'ÒQÇ“[ʉ’Öµ…J‹ –D ËJúÎGc¬äóŸPÒ‘èÕP:j¨ƒ tzž¯|¡hBҊפÎ{h˜ˆUþaÇx¯kK¤f…gRÌ—Ÿ3‚ؘ•ÿé®Ï' 2ÙýÀÿPm%§¾¤«×`£’•Ç G“úoy•R•Æ11Ôœ4õê˜#­=xÒ‹¬cVy1²¼fãTñÕ჌À6–nMGÊ_¿3zè?²y;æÎ3þjʨúW¡G»ÛÈAæÖh&ú;cç¬tT¬jñËé FAbŸ€«àÆæÈ $ËÕ]tö?Áé^ÿ´B¹8t–³Ø°‰ÚœúfÔ$òBç‰qâù¥Þù¤¤õˆ 7ûo–­‚÷@«K*èØ –a¯á}Ï ;NXrË>µbÏÍO¾‹&µÍi¹+`Ó“Ýc%›¾ü+Îöa%nº“YBEùû’AºK7ëib‘·PšEvôzKswgÈ/””ZŒY5#å±~_¿)æàk‡çœÖ[šÀe iuUóKjZ¾cÁô?W ¸”Ez¶þí^©ŠJCØ4-&´ßÁñ²Ë|*ycQÜV$ ±œ@m³Xtz…ï&Ĥ®#x*Kyw{ÍI`û˜>Bñamtƒu¨ö9ÜWH‘L€2òÊÝ} ¶“€O‰ßÙtXá™ÛþØ[IªIoÇcoøa”ƒ-6„‹"-e~çr‚ƒ¦‡â,öªË¢Îo²%Ÿg!Þ¸ƒñ0Þ¡Ç+œ ¯¦•Oú[´òx€Í@žÎp"ëÞ©i=ѼGÅ>Iô†uHÿ’hrUòÑdQ‘QåP>4®%úu¬«ÇTÂxîöî©:6¸;b®˜Sæ-·ÑéÄv‚.Ù²]?Õ–t³lcÇ;×} @q¡*ã2Î(×Ôeý,ÿì< û¢°ý§X6ç*ðJŒœÃXðL-žþ"Cœbã T„î-0k6µÜqj€°Îûok~hyBÑ ÷)Ô ¾RâYR‚?áÀ1¥*¶>¥{ü¢âΟÜêÞ‡5ñÃ?[ ãÞ÷Tó—v*“>¾_‡ÎY\Кƒ°Šxì÷Ÿ²Ä´ ìÿƒ&–õÊ K*žC½øÏlWª&j´‡èW3—p«ö…1ÜîÆ×qЄ?ÁÆ@ïÿ~5s=Þó~¸Ó0HÁôU´¢F(´ô!1 Æ/HÖW öa*•u<$Í„Cd­ôÜ|êáÓ½Ž¦Û¦Î嬷M¥ALL_oïEÀãwtÛÆ¶ [Û16{dðpÞ(Yâ.6‚ƒà`ÝÏs?TDˆiÇU6‘|z÷ôfâ¶ oÊ„D ÃÙUáÖ¡žð'έjþOËNnâ=UÙ‰ôTo²HGÕès¹ÖŽ&Ɖ0O Î…‰Ž²ž+6ü:€ÖRÿrø¨cÅù+r ÞùbSSÝ=r] öá¸\úÊá?¤Šk‰¶ÁÑ5¶èEa(©ðuc¿a’h+^¶/½È)•£ž ®|u(ÑLŸµñK¬x‘á-ö–«…9ÞS$ÿ<éÃÊ+&ò›‘¯Á“¦ÁJr"d"¼°CÝÉz_ó0uYâÓ„ yÕ²,šìËýQƒ„Û7fË 9\ÃÃôÅmG/ϵ5æÈU«®¸’`NeÜ–MüHi½È¬úC\¯ 4F‰eÞi\!p6XBi4‹YR.Q í¦% "~õX“]!Ö{™H>ð:‘“0\)C+_îga¥~qÜÅiß<ÓÀSö0õ3tȽxeOœ®›V9¼À_Åw<·ŽÝŽÀu‰'öŠaϾ1gT&¥_¹0ó²©Ù!‹ÑpŠHgÒ‘.+Ë£í<ˆ.ç>ƒŽübÜÉ23ØÚeüf¡öE!Žê&Z¹Æ½ö—Øj®R† .Þ3½¯‘V3N©‘Z€Q}-^ïÈ 9‹/AŒ&a~:µ}—¤×–òÆk×Nl_Jxƒ>¨¡$>E£Â{¬„N¦¨*t!(ט.™Sý?W>pÀr)WñRٟŕн2Wï±zÿ×MãÓ‹Å‹¦ ^URŒ‘úfK$ôsœe Žø7`8èk–•e.Ððvði˜Ø´Y=ªá'úæiuN&Ú:A%¢â4 D¾8·mÂ'§6u¦pzE ""̦‰-C1hooŠ8“ Ñ,Gäb÷Ÿ= F²ŒI¯$¢¦_¿zÎtð0cœ~ý98U:êKý4ØŒD¥„—ˆ¥A zBOUS½åÎÊ‹]düLÐ÷ܱ)AygA+«Éó}ñc‡DD :Π‡+R÷l±„ɵ€¹r»FHšïž–¿ÜÎ’¯ð·ì}íS2v3ÍSñÏQñ)û0í£ wDƒ‘Ýö“}ÌôSKã­ê£ûIRVázfêª!à³DUžcΣ­‘¬ö V3xu PˆEuÍËNü>…’¼H=!¤µ*°£•¾¨“$L…õÜy^~èMs—ŽéÉÊ…— ËB]~Ul[v´ò‹£˜‡÷M!„žÞoWÝp’-<§ÖíŸÊùþi!f[¢“äÈà¢ñ*x¤Pvò„骡ÐÕ§D@¡‘?•B#V[¯;Z°W"X‹Þôi1—GÜ)#¤Žú#ÛéîFǺRZÎÓyrÛg+V-¾…^¯ŠÞž´¶_Š¢&ÕåÉí‚¿FÊ?©3ˆ:|\—³üçÜ(dUàÖ6w hGcÆäÇYmÞRÄÀ2á«2‚ ”º;,Ó¯\mB€È§ê²®t¶’¹‰á â¨ã®uÌ„xÎÜïÉìhýöÉFÌ_ë% ûuÜâ­Þ'‚äÍŒLÏ€¢kâÇäd°8x£ÕÑ\ÿíKÎòØ?õxÇä9+¶‘qTíã>‚Ù×ñmÌ ì# €1Ÿ„]n˜Ç–}8‰äãkŸh Ã;aôD§`pú—X®ÆÀ ßü~€ß{Arå‘Ë~¯$etÚ³„3½<ÄÉŠaÍ©ïî^?Þ¨N2nê@t¦Oø8Þëw²Aäȭ׸™`•Uèäå]Ú"¸Ü¬ÆiŽÛ«_”µð>+ `Dnï@R#Ã÷m`´"Qº7‚åCÛQë>9R|ˆ‹íï¶ $ú²W7ü%´”‘ô†ÕJbÜr`{-l¯EŠ&'‚b?1yŸÙÁØk£iB”6±‚M ÏOBíEH4kŽüg×b¸)Ï8I܃ $!ûBVc9@‘ZwÂ%yëq¤®VG6½þBþ›jÞtÒ×§ã9«v¨¹WŸõg± tÙP@€ÃÕ¥œ¤ 2x½Â&3¨€~ì`aéb®È¶§AWŒMaôÿœn8Q—\ÂìÀ(¶ûª·4Ï;SL*ç¦ákMýŒ½8ƒçx"£ÒUÐÔØÀ…Y­ç¶hÒN¾Gè>S2.ùîÏÑN/Ê4‰„–=øŽ[¡˜O'F\7gÃ,ïÜ*± îýÀ1¹«SŽ{ž‡,•W¢€¡ÅÁ/ô”,/åâ°ã†q¡I‰/®Õ•›}Ø$õùЗF§½Äf "eH£_Y7³wêôÿé?£šõÒí'L‰íV|̇™Ê΢Ô")ún`’ Í)¶_)Y72RZsƒjæè¦Ò<ñT¿;à~²†RÀP;R͉lªrÑ­3ˆ á|DÁâF¹ÿ/Ïg,%Éüª"ŽMñ@$8û`ÞS§F—ó¦é`bš2pwo¼&¡×NWæŒPö¸%ZòqUñ  a3/-Q/<øZ󸕴Z¾l“ ^à§TÄÇ<`Áj*Ù³UKø¢%àÆŽùÓù}zïÔbÕäÐ  s®|añ*ÇHV+œP›zçA9ô²¤+¬:G;|:ÖŸa‚ŸÂK\üGY“‚S=#9Ûõ×T·¹ ˜ýxBpúIô¨ÎüÖØ©…ë´?Î IyŽ‹o™žJ…3a1\çZ²ëÞ»¬ Lí,Ç8Ǥø¥íZ!eÖÂ-..ãÄù‘0¼¥XzLtÇP«spªEÍÓSš˜y“`Ö†ÉßĨ‰ÓR 5>¥éÆù¥ÈsV27…Ö™™ªÇÚì:´OÔ-òöQúäIÀå¥Bõ¡™&PrEŒ\ÌþÅËv5À­|~g»à¥—ç(£þ¿â´†xõ,Á= Ä3î¦c-‹~í¨§sù 븮£ãi’ –¥?',bâØÊV}îÊÔÔÙø•L€?á†Âß­BÒƒ¨iwbÑŠ|ÿoS _‰2¿­zÁÉöœíÓR'!ŒÏhp\Uéj¾þókÚÒ}?Åd¶^VƒêÓz¹Äý¡T»àÏßö‘ÿXÛêê V眭;®Éðù^Ê ½†Œ-4!*r3mmªJôò2µX«À%ù† Q—°©[×ë×yÜϱð\O 8éåJö ã¤`V³I*Hõ‡è.%xK:þRY›à!³>Zi+¾šüw½ÜIχG´édÆ‘@}Ï BÝxëhå<133‹}EA ÁÃÖæªMuœ‰]¨7•Ü×ð« â…߯ƒXð¯Ò*Âl»[ÉÀºòd{Íýñ{Ÿ}=}ëª P*7Jpç­×y{8´¨¹Yfä ÝXªXÇ,?€9Mœ‘Ž¥G‚µa£“ð–ã&¬„¸ã©”eâk ¸ŒdLU¥²ÊðA¼2åO]„,+uë}órj³kò kBÚß«1Í>qXX*®‰Àò.<œK¼¿£³B×$bÖ¥J¿»ƒwõ»É£ï6H|º¢ “ýŠlešÌ)låayÉ¡OÛaÚLÇö‹´,þw :”±“²`ŽŒâ›ü(•\¾°Þ/¶Ýy•%bòÛò‡ ?ÎcqD>x+\°&,h!',©òÈpTÃ%lˆHEª%=áÍ ) YlP°‹u—KD·Rƒ¢iÕb=ÙÐèí€tÜ ‚ð®Pi—\Í ‚Ì6÷éŠÓ¦KHÎ#í{Pj6nA“qµìyÿ‚¡É€Ûo Î0˪ËN³å»öh‚z~瞈AïOåÍ ü.AŒ8 dÛ@¿Oá µ'iÌ`8]—J»pÙ¸‰g,?š‹µ­ŽÄi@ƒ:˜kÿr‹<ïƒk Ïl,;5†¦¶™ŠE­|ܘœP$Ó¡ó,]R±_–! Ú'ò^Ö«hÜrKKŠ_Ì “¤áTNB´ ìÍÿòØrì}ƒ¨O[‡f`ѽwÁœ›ÛD&?ªËÙ{AdÜù$­ušÐqAUo޳˜)0&½ù{'éºëªó…êøX²ÏñÀBi© ù!ß^Ô¥Y—àŠÄe•´ÿÖŠÎ23tÎõ„TrËŽjŠj# ¬…ê0Û%}íJ®5–Ĭ¹g7*‰áöÞŽ?+¼­Éˆ,­5Élæ1ì~=AþfBÚ o¸¸g_ZQ²qÜ—¾“u†µ¿Ï+‡òxŠÒ$MÎpï“jžŸDƒÊ1â§iÕþqª²Å£ÊFqJ¯‰äMtþq=aý ËÌ.wY¾üpÍ™™Ý.Ÿ3¯loÙ˜-Q¤› E’ö ¨Ù.«A´I¦§?m ;'[±Ä”°Ú§›èá)6e¶¼^+É| :)½`ÛÃ|arŠpSÂk‹ö‡ò~¼ŠÑ¢9,¿ëžÚ‡oÛ!f'fz®hÖF\s5°#ã+þÝ[o„¹Üî“åGQIî Ü0LÇ(s—ÃëVÛŽcl^wÀaØI’½†Oœ@dŽo§—\M•ñׄ‡®ºÂ鯢õÚ!*:«öîÃi…îB7EA¶dž¹|6O½D²ëstžüV` ²ûÅø\” :”ðùãöç¸ë…vöž\Ú^Â8¹‚™„Ù×]<†Ó»Ì\¾j : A‡mGù²ì¿b*g`1 ¸Î u1Xs ?Jšrƒy&º ˜*Kvc÷7ˆ¶‡®H._jìÜqG,/ù; ý+»Â_L¶,™'P%¬IÛ!×/£Ψ¸%£oÈ3ø&^ïÌ[p,Ó-^ÿý(þ3Ç^ñýgmº ’®ðt¢X× ŽVÙŽ\n¼j ÅÈ»æ†ŸßæÙÕ%à“d¬õƒX¢*2Áã@†O-ƒr+€à‘ré:iBÍ|&LúÈžaï…Ìl奀ô}¶"\ñÉRÀŸÉiر·÷è¤Ñʺ8ü²~$JÍK¯ÚLå€Ðß»a0ä7l]ÅœÀä*†X£¤•ƒJºS»£p§`¬}pÌ{å³YO7KgÔR×íàøz Ëƒ%—Y]¾ †ºêÔW`˜„&5ÞŠ¤”’Š{ik1±jÅla¿,R@–ÈäY'÷I&KZ†˜€4Z1Úy„׸ñàÚË´UÌ]KÇ’'Œ‹ˆâ=ž‹žmé W™{•8¼µd° d4«C‰sÂ~¦™aûäݬ¿)~®?MIÕ´ìÌ÷Šº£œ³—¹“à¿yuþøkäþ€ ¥›´œ"RE>ªM…˜e®ùئôœÿ\\y©á—Úý¸±5 ZÆÊ.ü,ªiý" × ôK³êq½÷!©*v¼èHkÒyhüâ½W“Õ“Ü™mf¬(s˜ïÛ-ñc_æ©u=/Öñ@ÊMå¥útEºè³ý@ ºÆ=L"YÏb1~C GCÚkïj°Œ iÇõ±ŸZÝãÍxð‡xŒ$øÈhšžá'SȘ2fŸ[_/;u A†ERù„¤¹7| "XÊ$ÉB]5ÛÛÅý–G_ u,ú³XîD°U_Í‘–׬Vky(Má‘vŒ«‰Ÿå¬ õ/†y>ÜßÉ£cÕS£6»;E‰ZI¿Ëƒ@ç¢#aÕTn¬[Ú±wKç:¦,ÿW0œ½./Æ€ hù]BñlÐchÔ¡;£nÀ7ûºÛQ¢kÆå*œ%ø …Ó´¬¯ƒMÓôŸPÌ.&0îžlµ&cNØ?[|?C‰}þ.âC û£8¬´ï¿Õñ´ÈRL\zA´‡†OGÍ=^ƒ« ì—ÜÂÑ}tÕ £)zyEþË…@'¯Úâš aþRò$Àô4ËQ°÷ÞŽi,"OeÍdcüís-$c¨5ˆÌµnâf‹ÏÚÑIÀ‡K0¹ãÍa?úYz˘hsvÖâKs¤Ê¦Âi9z³pöb¨u:þß Bº´dê¢eñ¨Í¨OYÚ $Gàž™%ÿézÆ’Ì+ú»(-5KnSfÇJ^8ìÿ1ß¹ŸaÆÝí,kér˜ÇÝÿñ©É?çëiMé³ÎMU¹뾈ñ'¨P‰$0gHAè"aõÌyVÂýì< ¥ÿôUpO¨ÂÃpb«ù;Wñ1vå²=J¥dÌF`Å2)tÀ1»l¼uª¢áÎ]ø#ºÝ€Ìâ1µ³Ó‡DÜúõŠfXî5ƒŠÔæŽB™Ã’-‰LŸ1ÎÕ7™¨äz>¥üþ–VžPÅûú£™¶²·œSD˜š]LVƒ„¶+â¤7°Ú(QäÏàB"Ñ:f\Xþ"lΩL°˜ úš{3cÆçbØW“ N’cç1%K픘'·\º¥3`¿ªeòÑ*oM©áwCé쯲Ìh6GY«9ì{Ú}>;3¦þ^×72\ÌÙ[mÄLÏú¡ÆÒ‡AÅ ™ðXÞp£ÍÑÄà°§Ö?Öšàá]6›ð¨66wâxð7§·Ó:ÊÎp8bõÊúDV­Ð/ÿ}‘ƒTõ³Z ˆ(!È)Kê3Wó?þ´¯¡€äª’I¥ÚívGg,¡“:û­C· è–›ºWÉ!œO¿&¦Ýèä¿‚x»ô‘ª¤¢ÑE IÒOkjP—ôëZ  SOg•Š‚yÿäb’èÂü`ûnë9!+ ÛJ,óv6¤ž± ¸J³—ekÿˆ(¬V—7' Ò·°!ÛPÛPfÌ_§ —´?7'‹áI"g_Ùx™# =µª˜,&;1UmÄf8ó‰h‡ðÛ XjKŽá8ˆ%î”/ü‘ÙŽL”“ò¿’—ÉwHrYKÅØÍQÑiƒ ×Ññ¦o¿2f«VJÊ©ûϦõ¹Nþf6ßÒ¨ç5C³¯¤hã²ó©®jþ¨ (ýºÙ»{ 9¤­@i!"pΜȿw–åhˆEèÛi%ªø ÚŒ ²Úeuª,;T«ô]t(•FÍ9 Ñ8@—“EÀ¬ŒÜùœˆDêÇ ÕŠìkôtĽmôLT™3ò¯ðÌn¼6LýE@½1©½¢›øi6$k8"´§²¼É‘µ9€F—“ù| ò&®“ž;zxŽ”À+u<Ö°ÖïvK"~èh³›•Ž@ó­_ ©,©™‡Ø‰3Èû[_X@.ˆ„ˆ»˜¿ Žô³ØÆµ|ù2š}eô0è3¼êµM¥ŸEÜxU¶ >%-Œf ‰4#u ÉÖØÉfÂ_m¼ü8`­Õ„:3Ui Ô”ÕVßõ×&b(ïºO¾ÉêZ—,ỷÂ@" 'HG;ŠqG¦áRÊyU ÃËB Žâ d^™ëbA„ô!O[¾îùÚÏ_`469ÝäÜOPc¡Ë:cǼUzª’‰†g Pÿ_e‘`jêÉó‡Ìb•'SzÁÛ[ Ëûœv?Ù©€‹I°‰E0ª/M÷‰q€ÅV©×àlÖX¨Á—&¥®­ëÝ »‡Ù±vÎwE.æmöFÚk7ªïc gÌ’MU0 7Êk„LSÛl7˜y¾¤ä}¹t %kЃC ÿ«‚W7Ú°~r|Ýg¤Ãã ‹ë Ü꺗SŒ]¾oÎÐ(UŸ@Ù !Rü÷Êëøa½"ê…ÝÙ ú &¯ú èáçÕ†yÙÓUk\eqÄö¬:Uù¡yrà¿âÝõ2. ëÆµ,Ô•§kžŠ%+ ó`­£@4üAàuƒ·»˜d¸_˜,D&È@_Í‚®Ó&.ºHžbò§^æqJ¯þŒ–o†ÓšNŠgÒŽÞŒÁ.ÓîWnÔ,&J Û®(Œûò«F{öKvRþÐLÀÚzHwÄŸZM[ <]„®V×SßK¶f 2yŽ^'é½õgè§vúaU×*ÄxâZ­µUP‘¥Ô¼ô-².0‹¨ö›M†k‹°!ËÓ`ÐY€÷m~ÁHξM+Q˜HÝ»Ãy¡c½›ãIÅgëŠâsøIhñ¶3ŤVˆŠ˜Æ¸Ï¨à!j쵫ÁÂjè}É º Óá–B CºCM"+ÒT÷Ó¨ui0†ó«`tÕb2Q¤g!váÞeëÁ:»|‹6ïø¿NöÌl üŸZ‹AŸ‘ö$üñâ€Ü~%ÿ£ý ±ÂIÏþ+ UÒ¤^ÞÙÙ­×óH­ºx\ƒÞeú„FÏu°A¿µO¥¿²Zv÷ª®aGõ´íËßΧ¶‹¹IßyŒéºêæ ”SUFùÔÅ¡-×ü–E$ßÜ7Ô¦Ó…D¤ò²_ï0žtH²Þgb:(~‡loòܲCµ?·äÉ•¼n]ÈšÇÔ¶Â[³KO2k ˜Àÿóõäu`´ó)$߬%w ¶T‰„é^ ¨‚Ÿcå F“Æ‘CðÖ¢ i"†òXϤ„…Ø÷–«Ùº‘ŒQ(ìÅ\jú´H)ÔF'gV£:þ$uʇkÝÚË쯿ïŽåí¿ÁRp8r A™¯5nñ®ÊÕ¯wÒ{Ä•ãäªR*m¬‚&çõœ+ù4bXï›Ì¯ÌL[àY @h¯ïÅ ”ŒÝæøžóÇßÁŠéM‘ó!xݘ^Ø€1÷œ6 Z„#¡ÁG-ÈeYBŽ‚ZþTüãlÅÿ!ʡRP59<œBó*×-Ѭ®¦ÿ[w©¾Ÿ6$¯sjaW ©AšÐØlùĵÝâÏž±½çøl˜·Ê—üå$²¡äÁ0ÆËuêã¨Ðƒø¦7#÷å2o !Xõ0¤±HËxJ+³‚Ìëi^@ƒõ rWa¢Fí$ jc4üà†‚ùÑâ†Ë`º2 ŽÞÎVûÜ”­œ"tK QJØq?½Ÿ-¼ªáÃ߹ޮWiqˆ¸ §lX0Z­Íyó›®JÐL÷M&\á«îÍŽgÈÁªÙY¯sS`ÍŸf§ýgiéÓ6ÔQœè`›ß5£.œ¼vS©eðš—÷£ÝÆ  ѪžàßùR¼dÍ•´¾Œ"CÑ žä 1ñpöa¡?öDñ/ox=›Aý¨lsîM<ö,þ‘£·dSPg#¨÷&¾Øᕦ«P°*ÓÂaï,Ô_ Vðõ6ˆk·,§zËWzôz’é–LՙB‚=‚‡™ŽÏsjg½Ã¹çøKÒ>q†¦ìñÀ¦÷𛢠ú}?H;ôùï¢|9Gü¥ç†m}­;ò»£¦šñ""ðÄ¡yý’²Ö(èiƒ’ªŠRñW“@™oè<—I‡cP0†Eè~8Džî´‹ºU˜™ò€d½)WvŽ×6¡í@€{ü*ù€†±¢„¨®¢¸ÇȳÏeÎÙU_;ß 4øOÕ·+,COH@Ôíý®7çpW…+~J˜¥T»×UðÙjõy¸Y5® lµŠà˜³¬aöþ²º»ù_áÌUFlYK{à|Ç-(2œ à…ÑÔa‡"NMîãO{èúDiðJ=ñ²Ò8«—–±éÙÅó ‘1Ë£‘æQ;å‰;SQ%왽×2¹½žÀ¾w?îˆÂtf ëSÖ—‰ SlO#¯ò’—E›|Ž [v`>ÔŸç/WuërÇz^a~v«7w\Æ#¸#×¶f €‡ “¾eÙj€÷q46úq öŒÏl5Â~8U?‡ÇÛý‡J0v±‰qEæùIÓt)Ê>Ã_7£ \ ›\þÃvj9‰[–]ã4Ý4{i ecÔfž×Ѧ—J‰–z##*î³Za/èx¶&€¾Ì/9½ˆ™ù²8k¤­®÷Ã{T4=ó†o˜áóH¢ÎÖN§>—g Íð‡œÅNŒ‘ˆgô>ØþθSÈÙŸA5¨Hœf%‚®iðÒÐðÌ„z»Šç'âÜJ]lC† P±ˆþyçíl9¼-AZcÿ× ®gÑUˆIˆš3%!H{¢OàôûÉ?ò¦ÿÍ>X I?+{0¥©ÚV~pœþ»l-Êè«‘55+¶ß¬äáòeå?z£æÔ?J¦ùb“ŒÅï0,öÁÖa †ô €V¼ _ÆŒ<™¢{å\rWÜ-b_m¿…'&Ø0ÝðEt ¦ë:Yi¤Ù/íó“úðRQ)ýCõ¡}0%)Ûr÷PÒ½—ñÒÍM#wªËMS„²d³IÈ1 £9±õ Õß9k[ŽÈl é¸Ä ®æJ'CžÁrÅ^åÄRsÿ¼Š6äYZÂ>¶.þަôLÜÊDïtüúÅŠàÈ\: påúj¯ÉòÿK¶Æœ½¢‘»àîD˜·ø®¿hd-Þ`& ;‘IP´ðhû@çþˆ”•»àwwú÷RÊ"¤“t[r¹ vÖcƒ5¹?gp#ˆ-TÁÀ]-ðÕõö’Ξ´˜ø0w ¼MzAz¨*H•R{‘JþÇ å*Iò¥“T4áp¢òU%i¨*i!óFÑ€A¹×âÖáËEQ£\ï‘^ºêB|'}|··Òyìë C e¥R/˜`;H±DÞþ* X^N½ülù[º7%L-“ ¡ NÆ‚M9öé¾!lµÞëOG)žÍ:1‚¾bΨ‚9;ÌŒH\ŠpFŒ+ùYw/N,¶Rz˜i¼áXêbìè‘2_M<†SžA8µÕl6O«Zø¼… S´yú:*w3lÙwJ“,`1å"ÎRK¹v>º—}ºžË%‡  %·Çõ j­Œ©JÖßå§¡š®:Ö$·X=3|hÔÊm`?´Ky©KäéÑõ—Ò0 öYϤö@þ-¿1T'¤ÆXoq4÷¥æQ‰bªõjâ×nÖ%›×ßzÊ’çóu|tí¦s©è»‚oT¹¾-cIzq'Ô"oVÇNj†½ñͪ-ÖAxÕÚ.ÈHÿtžP3ÿî$p1–RNB(3(ÜuÏ{‚µˆ6Ö¼¬ôÞè’vÞ‡s¦”¢§ë\æ²e»ñ¥½ÞÑ:If·PgæôÖ20XEl¨EŸ)ìyÝá{N¶ø’äYFhX÷ˆå1&éɯEÊüJÚ–»9ÏoþHNÇoÂØ§Ð7z å;ä`¼+Õ¶{Ñp9SäŽÈô ——J´¿48ÝÜuY⌛ˆãx»DôËýˆ}—kŽjöô|¸™µÉˆ•Ç¡ÐÉÅzKÕÆàzÖ÷¨æ_cûÙq߇աâ §VÐyÈ †cFQxÕd¡A6ŒÆéÒ!ÏÊrDìkì^H8o6}ñŸ·‚¢Æ ;"ƒ1¸\ñ÷ž#À³zy[‚g×œíº‹îþš}¹Øºµ›rßÂGêh\²i¾¸Êvå[#+‘a¤×DU…myd¹&õÙÚÓ³ýi~(="Õ25´ßŒUÌ/ä5ÞªîÜÿ‚J/¹Ä)+“sܘNµËDGJ1\EfdâÁ`a[ÌçHÅŸ†ëð2FC;ƒb@Üo&­ g;xdó6ðP®X©ÚØè¹íOê¦a ´î kìãÑé›ó|¹GÄ6@¢Ï¹ä™Ü4}„ån'åÜ'D´× K8Kž|«J‘xá–îz`¿Îæ’Í?• æÐ"“Ë0]KÖãèZëK0+Ÿ!Á•Ù¨IÒŒåt{Ê•œ¬æ#¾6 ¶cN—ï勉9P~hÊ1W-Â8,âX :e:ÉI«˜³lkÍØ6˜!þíRa~}Y®hÌT·ÈÔ>5Âb°P+u‰wþ!qù'7™ø3×*àˆõMvXfoMÕ¥NšKh(0¿3[ú>s€è,=F#µŽS%]Ë…ÂPEÉ*Ùë©ùV¥dÌjÁ7ÏP!€…Ú¬Œ·P£K˜“Ôu$6 |(4$z—U´Äǵ,‹—7M/´Á`ÛôâÒËf‚{DÑñ?b-£Å*—¿ïð¢”ä¡öˆ¨ê.\b¶êw¹ GxñÆTÐú ?ŒÃ„¼øùa¡Sλ¨¼ƒú@Aé÷U»¥8IZŽ aIô¹`•¿ŒÁ´?:yúhàøÌsŸ÷ú|¹'˜°t•EH@`Óÿé¤UÊr´ýÎÜ—ÄP LÊŽavÕË6ÁN÷,h@¨y¦q]ÍŠÃþ !#tÜhìeI¤åš©{Xö ŸÞžÅí?ú¬=ôþB.²8€ ê›5â—hÔ5ýV©KbÒ! ™$@¦Î!Ù£bFóx}‰ƒÎ­ŠÓ†Î?i*»#×aÿ<„tcªiº7©¯…ZgçÓ?V:~˜frâ—ç9ÔÁäÌ"@;6G>Z-| ²ù‚ú”¢rýð2LOªœÆ7¶ž»_™¹&WÍòÜi©c¬b—n8,Õ׺mà/Õ6oÔìo™ŸrC›ñC…7­DÒ΃ºâÚKQ`£Áf¬1'ŠFÂ# ÷+oÞšã9`º£¡ê8ÀÓ¡nKôž@|ºš€Hëé=“Wìa¿8ê…ÈÒI—2¨ëÀ.Iio5&Ý)[cA`ûQã·|ië]‡6ç}ÈÙÙŠÛΑl¼ÄÉFµån4ǼT~Ñ]š/SPÃÈh¿!¥~ [{4q63%Iy™<„™Áq¤Ûb¬¢wýÔ ÃËUbóEÊ£®.¶zuf%hýÔ3Ѿ­OÅ‹ñÜì-ºÜIÓ#–"Ù¥sss~ñº÷LSÞ€ªøZ=Ÿ(ŒñÅ™äö-8vÇti²õ²Ì\ æfιõÈÍÝßT» 슎øÅóJq—žÏûLš¯B¹˜ÂKYàõí©Ïß94XœÄà ­Ÿ¨³l['Ú-"‡’V;òoq•¾S›Æ‰\V¹Ö}…ª› EÅâéh9Ĭɇ5Ïn™ é”ÉŸåö©hYP‡Òö¿ß4¤¹PÅEÖ7k§åÇ&Ö(&-‰#ä:‘¯Ú7\óQŽKÐLÕŠИê®jå9ërKð·µ`­ŠáŠE. />ö<ÂYLïdx#øÒøx2`Àp¯ó<×p¥q¾Z#ÄÖS—àbˆ$n”ËÒåQkgº‘ÓëÎдÉKn¾ìc ­¢UèLøŸ´Æ æg¸Æs\Ž‚ož©¸ÇéÚo…}z³ V‰£àøÃ HëÇ„Ìóc)x§Ùóq˜Fè¥!Ɉ²õÆÏhFÍÃS>«71 ^&Æ¡dÓ´ž—Ö@™ó­axÎXaK´ôjüV7H™|Ù0ÑTk† Udþ™gt‡%´aY4í¿Q€°\û(*kÊK#0·,pÄM´ÿu~rEúM{¤|W4@;¼±š||Εbœ„Ÿ†j“f &,ꆨ¡œ`T&ä¾3õì9VÝáH¦ZlˆÕ“RÛ÷lÄ2 Æ÷}NìÑÈÐûÇRKOèƒAl Ò;‚DüzxŒ]¸Ú4ÞˆyBà¼^øo'qkyu3§Ù§H¡ t)þ ZÌÁÿ¸cÿHhîà{H¦Žª\{ã»—.û©¸-óDÌÇ-;â¿©Ð^e–1ð=u“D eŸ/"ÅVy39-Ù¶ó{.›®¬Áx! ¨…¶òZJÞ¡¹­ý80µ\Ú©ã>ã•R á×=@ w¦ðÚúw²î]æ…Þ¯0hí—¤¯1þQZO³wäÿÁ¹¿þÑTŠwV¨` a2½Æ9IÔ‰bzûˆ¸È‡‰ ¯ú×~ZPUƒÒ 6î3¼5;¤Ub J˜IºÊ§t˜=E²Ùý,kÈpS´(°ñ§7X:3(ÖÐVøþO) ,¡Áx Š¡ñ5Éq±\v (—Ó`pQ÷ªÑµ3Á²Êš,‚Íí«³}“–ä5BC˜3fcë¦D<8Ã½š“£ƒiçÇGë:(y¯´³WZ¾Å—wœæ ½ÇëT”8lûõke«¤k?v+×™®›k`@ÇÀÿÆk9¡»’ÝÂê5à¤ô TõUý°Ù·®ú˜¹J8×êPË_ô i…¶Ãÿ¸‹HP±ù «3ëß&½ýÛ ®K/_¨) ¤ .ÅÛØ.30X+õ+k¤§ œôÁ>Å ò|2ë³<ó6œü˜å¼/Kûççlï9}ÁΞäÀÅ ñ;=ŽW°BEœ4ÆEþ1Kj‚í‹ÉÎn2"¿hƒ/¾ ÀÑã–Z +Šgn˜cñ*Óh>+á–õ>aéo·Gjž Äq/UÒ4rAnLðÕ«]=>›Wnìùg—±ÝšXœ‡1¦@àÜ’ÒÁ¢…¥~®î2-µ³¨ó;wr 3rÏ¿)Twzià…÷¨è{J+Jï÷†&˜{?Y{®Ž¯J¼F#sx›yPÊcèÖ&-ST”f¡>[k0¯8F»FÌWὩî·D ½¢`¡?½Ñpe¿ƒsL=eì®Ûdw[g¡c3jö¦fΚIéê8ÑNçÒi~µ1ò^ëö·æÖÞî! ã4•‡…²ÚæÊ®ÂVàÍÚ°*Ë‘Àì­ÇYŠÃÇõ$¬æQËy—bmC-ø…j(]­À]ûisX”†&[ˆ_S“–äÆÁOc…³€¯<úþ»JÖÃV<Ç#ž*ìšÕÒS7cžãbkÁM'íä{HH_njæ½ÂËe4 Y´«²è´ç×Òû„¥"WÕÝŠ¡œ¤Åû‡Ü»yPbê8Ÿ‚JÈÕ!DLò &T“a¼£n”’pù­2Jg`ÀEÅÛ¦õ&“nóTlZ¨OçJ2’ø!3gY&  AÂÖÐHí¢†(ûØIõÇ“Lqç ‹ñt{ÂH\kGŸ›qJp°&Dc¿è˜³D¹ë óÐÎQ„Gá„Õ¹x0âÛÉ~'¶BÀ£Jfy¢¶^øk,±b?=Ÿ”­\9¯Š§¯„ Ã¢ß}!±ml}â¨.º} ÎÈìE„ áYÝÇ£ò;àMŽ›˜èêVÎÚúüÐ+‘ÊÈ;õR]íRˆßMùpd½_<ܹ…Ù-½Ï ßC¸»½íyk†,šXv– ·ó¤ønõ™÷‰Íª7¾„EQ‘ÆÖ,ó¨E_5LŽu»õ—ÛIã4YÃ1›KÚÝGñU]røCpqk•ÃKǶ»æZ·cèêŽq\ãÚD`Ö FÚýR¸í3Äz¿°45®õ®ìÐô…„v ä*L8ø}ßZ“ÊÃ\[QÎQáÇ(êsX ©ëÉ#9Q(™¥NÞ²Ã!Y ঋUy’t¡ èjª£A4+ýb­Ÿ!pÌ]­4l Æßì¬õñQâE¡Þ¶’þÔTÙ{î KMŽðjKGb®]9Qˆ²OnÞD—NjÕ\·—Fa ûrëSoù žÖ1³ˆp(‡f½Çdø=SwáõÓ.ÍÔæp8üÚMu;AçÌ Ó­Fýon/HÜ™-á]Áç'n0E|$´E&]"Xæuí[0$„'60þ('Šš<Ú,߈ùv¾S¨âõÒŠ Â5”ÅCË&Z-˜ˆA‚ºdni+¡. ôÁãc}#úþ£ä)«ÒÁ<Ä …áß,¦êdZ‰ÚìUÌ&©& H2†'XÁhJPØ`]H¡úñ-‚×ñÛ–Ìï¥ú»Ñõ¡NQy— U9=V®mÔ8ˆž*¸ Á–»MC›#³®¥Ëîxb;_MÈh‘Àò«bec.q€š )¡Ê˜Üõ‹Í;ä{xæŽDñî©òA@çI¸U2ÜòÀS/¿™¾æÚ ä=Š5yk›”F«g³VÊüŽëÖHƒLü\hKAF šM05qÉã‚6³¥‰È{-d]\²Zj– þY“˜±=Ü©Ýj¡Êÿt;YÆçLvÃz²½`ç7QÙ˜ÃãQù’_¹cITjU¼ ¢Rq¶U`4-Цϓ{ @ 0lä'<%vÜn9ck¹-3ãD“E`@ì¶½õ 8œØ8C'ã4v‘UŸ·ÅãÙ~sãÀÿªâ[{Þä@ê+®ìÿ_^êæ^Pª¸”…üœ!¿ó]¯‚°Ì‚↪eËž6Y#Ì·*Ó Oë‰N+€Æä("r¬üë—~ößúr(ì©;:Õ‰07R#kB‹[þAž¹Bµ ×›ˆ®&É:§Ë)öš¾úŽš£×´Q¥Ä[øç¾¢P%½ ?«ÈÊxÏv(.ñ¦Š’·æ·`MÐiµÔ-Ú`óŘ yn8/|â¤g 8&Ì‹…5>Ø6¥³è=kK€!/&‡I§­u'MM=–‡»Í{*N7J í­xN[5urV{\x8ñc5Æ̰ƒòD›%L†êèûÂ8·?ž÷Çñ!5¬9ðý@—nxæ|© ²Í³û¸€€Fxí™uDâ/`]áW¦¯WTí§×ã›9YVW;K„;Jeíx0ç=kNQÖœ¸Š‹íT‘%šõ÷ v¶··­û&¹åÙ®×PFêÑ ¢æîœV×hþ£>Ú[¾¿_½Ôøê_ìÏ ±í&P¸ý¾›Ä¦SÐPϪ›dSîµ–s …øk,n½Ñ«òm‰æôÅNº\å¦b·Øvßm×ÈÇݶ1 Yz½ƒJ‹²ïûšðäŠa‚6ž0ý"Ãlÿ¾êõÑliŒ¡)ƒS\MþFæ%ÙÍ4°Ú´CØS‚qý¢Rœ^ïý±ªwèÂ×&µS‘¯/óYËDs% •}ÏÃú±?kï¶ûb¿} I ™¦m'ƒ1ÛùÞ,]Ô Î}ý õ”û ø`[ õÝTrˆ%:Q®Z.zÜKfÇ0ïi,•Ñ;ÙN™ÀÌ6¼òK3Í)ÄÍaâØÐ<…b1A¶Ôï>ujÈXÏ•#*À MQe¹þOŸ‚z óC¦ œúã˜ô<§}îš}¾r3;Z±%F·XG'ʥ̯<Š©ƒgW\0oãÙ˜:Þ[;—F¼C@§duáu­ŽšS$ŠB›ÃHá÷å‡Õwù{a9Y½o¥“÷3íÿØ€>£4è}ËÐëî0r|,ñ9r¬°LÆ*>­SàGã"?ó;£*„ŽŠŸáÚs1Ÿ„Œþ°GóÁ™³'s“óc~V,ÁfR‰¸#¾L»È Rl isѽ=NpÔË7ãÈ §}ºO§!Øl|Ây½ÎŒ¨h|$ˆ#î§WSn,µË™¯›„‘ƒ»q˜ylª¡´ ì€5¹¬ b·´ÉØ&)0oÝHé|µrð†j©úc»2=ó\Q?§ž>­S NÖæ>S¨íŬ!¼H£7ã’%’hL¡ëZú¤zfÙª^-))®Hnr²¿—ëñvL$Ê€Ñhn수³{ò‡Y›9½Þj¢¡‡»ÏðfXÍ ú{i€jV>yøK”Ç}Ylîa|%v‡á*±~Ç™›r» #£Ã¯m)ðE¢—O"@›QV}GR"‚Æ’O¼ŠZÈcaJR9ê—Ýñã úšÏ¥+—¢AäjRHî6·Õ­Ü¼Ä½¿ö¤&±÷~_„P®<œM#¾Û˜Ö8 wî‚/©Üøä`vçŒø™õd=º–5@PI˜ùyÞ{ö)õ€Dˆ¨±ÎByíqÊá_¬!Øë­ºK{Pc6 èØ¤$"Ž- ÝFxos%æEÖ_ :± 4:dIeÈÈM‰C‹S¿A}„hF¶$¬€A‰ØÜDŽ-¶NxsZPz{Í8‚X@Îx×ÿöE€tM—‚•c*qòyˆzO†¥äNæ,BÛjñè=´ÌW2dSŒ'ýÜ rÊ¿‹Jƒ4àS¤ç¤˜š0WXð’žý3›ì­9I‹»f,ömg¨—ÂJë8À(ü ZhUZÊ¡c²…·iéïÌ“bÒû0‚H‹ðÈÅ)wTM¯ª8_pÇA5Oè;¿‡¤MŸ\SIʃ¦ˆ7®Ìö±ÀµŠû°)Ñtº/ -®°{hÛ\\m}ŒŠ©jtMŸ¯ vM*°føïÁ3Äq‹gÇ7^|Wð\)ٔ׎­ELÕK–ŸŒBT—ÊbrÙÌ‹Œ‡…ÜÈ[VA›•;TrÏn|é_XCƒ+‡yo6ä½]ð¦ß¥–•R Ö\T›gØ÷"ÚÕ7æùO‰U-UÚêh=66=o Œ®jòòÄSWРÿþÓ Ô3eèfƒrˆ¯sÍþñÿà3K‹ÖSÜÛ_ ÅÈ`SBd«»y,õg‡¿–ÙjÁQG'x*RŒŽPùïßÌ$W›•+Ãë§yA c-†^œõYì¤T´™ðÓt¯Øà#«Î_bœq«ä€Ñ£˜:h 7-‘qŽÕB]¹î®ë¹Pý>øÞ¯l›öÀÅ~UÓ_.­{©VG B©+=å&QæOTrÌí–ž–ü†éœ4!ûqlŠ•ðï: ÈÀ´eÔûõ ;Îá‘sg©ý¬;$®]×–ª3ï}£©åíšxd¤v0¢ê俉£?å•uõ¾Æ—‡²k÷ W¡`Ž¥ôqÆØ¹óþW´úSRùÆk??,R_·±Ýd±ÏšqÚl”ï¸)ö3¥Sô¯±ÊSºü¢åê¼—`NQ›Fg‹Ë6[ ,—ɼx“Ÿó+¬û€Ñ~ÒÐ*G²*8×h¯·‹¼?N`(Ûä’ø›©j3 ~ÐÑ/ N¼I½ Xy$e„LÖD®"è¯ é†!§· ÿ­?Œ•0c ­²ãrêŽCó€Ì±²ÃŠë7þ€‡ž)ɪlŒ2A½!ȦºY)6ÃÈH$ˆïª>ðGŸ\“@!‡RãµçÚ±ê»iï $“¥—¡7¨š;TB²‰efÅÌ‹ô}O(#?5ƒÔØjµÎŒRœ×A¼2ɾº©ˆ®«ù1´úfˆÂIÁÖíñëõÀá6æµzûë ¡;2+Yñmf?ÝkwÒl–ÉQÅÅemÐ;n›fã–Ÿ<†ñÊ” ¡éç|®êG“ù5V„JHthbs/GÐRlÉO]M(^CĨ1Ð?ËèÝr)Ì6ð‰ ¢îFJuäI<~À“^âIUw°ezHY0 ´h+ÍÜëýâkXA—ÇÕQ™E^~5–÷Æï5R`õ—š—g*³}K Âüý‘{ºÉÛ‡l µý`É”bˆñ]~³&=bÅ™ºâúÑ´pReiÜKi{âÔ8hqã>-é>ºëEV›qâèðx}òÕy‹¨ µy¹ÛYp¼š„Š¥ÞTHlÆ6Ü¢"2JâQV~»É’,(„Dð'~ÛºTð QÅü¤›£ûÎ,À•”ž.¹qñIz¼~ Zñ&N—{©þÉ]uï ¾qSën":¼®Í–Ÿ3öó¬»7wFÓÜ0˜ðë.Ÿn½³10Ê= \üçD±w~ަ¨=¢ÿ«G·ÆDbœqÿ°°B;ÝOÍ«×Ùƒ|v~3QcóKÅ`°™ïp.Ëwê‹ÂÝÄY!’áglyÕ.Kî`·£UËH›s# z3“£[@òtwRÀéÎg‰$ù³o¬ å'úFçï XO˜ ­²ˆå¸§7.ytD™ ^Ò„üïra}´ü±ÓµV¿â™¹ Àâ±!xÐé£>¼ÐIK%ƒnÝKëÝ*6­æý;S†È™[Ös•Aw"ËÉ..Û°;ª¿:Y[²þ|¨Nƒ9/S¡ªqNÎ> Üß+dúÓ‡œÓy?LLŠåÊ/þW!AT­’x!Úšiºà9“ûµÎû˜±RX°ŸUÓ`&³³ðŸ™r¼áË£†õéY _?¹ï¨AŒföÀB4ޤ0kù™5awSÜ”[3`£2‘ÔÔÜØ¯‘€W7~f`‡aO;c¡.`†ŽpµÖ(Âg̘%6°ÄÉV–IÅk«*5'8ãr“Ÿ¨(K ¦€|ahÅ3~VÚõ£Z@xþ‚@làD²…°•¤#®.´÷Ƀåð>å3‹K&,ê¡æ©)ý.oçî+ªÖ´¢%ŒîôLz³G“Å,nwÆÒ~®”$ëM~tµï: ƒšz4í0YDWž=Üäa¢Ñ>5À¯<›ÛžÀç)?T1¡µ(õÜu¼Êi ö@ó4•ÅÌ88{ 4ë|½zŽÙãvÚöáö ²b±ƒx!b²U 4Ç£Ãgºðè,‰¢7^™4tÒ¼Ô(Gù¯e7ïQ†Ï†˜§¤劚lAäyR® 5­öv=ãKh†KËí¤ë y6ÉÅÐz”¶èŒÏo³¸,«±¨¼K|Ê‚Eä}»ô+6(íë–®(’ÎMΕ.ev~aô¥Àû¼Îtíð~øIÓ?ä }R/b„äYbžº Zïܹ±Û¿6b¹Ãܽ›¥ éþg<ëดü¾ýZŠyiÐ’^ç•Þ"·2f’K]G¹E–‰yu—º<ø6«Öè·|Áü$é=ÎÒ:*'@ôíá}DÏý´h§eZRZq ºøŸ$pnø·>ÚÄÛrsA`d×ÔB~µ8Ü]C©^;ZŽiAÏiƒ$P.q_©9èÒ| ãy­w¤ÃÁŽ„®ß0Ç›†uK¼6_'H±{@‚Þiž2]a®Ôø((,€[϶3dz¤{½|ÈW‡)Vˆ„d!÷\*?„S(d!YPZOשkfM{9ÎK)U©Ç•Ëë(•15«{‘E‰¨y¤‘¥'`±{Ž«ÑÝn£¿îû¹ÌPÄ ¦?³…Eþ‰Ôc¦œJíÒ¨èNÙ …ÕsíT±Gªey’ޱÝãì Õˆ#¼þ3]©D@Tr@îéz©|fÿÅM]Ç#)+^7K“¶Örf7qhÃÏ` ]T3»ù¢ŽÉ× ;äåû”˜côù%èÿF÷w~nr×)*LØ©b1ž™BPµ¨‹°¾Ga¼ÙÞ¯…¯ª0·XiËW*¦Å@ì@â;xŠÉ¢+z¹û8 ŽeËõúŽ'ÈÆ"|«~þ" Oôæ]9Ôá¤)8H\|õG#L¾^žßz•©¶Œ}Áà©â}‚ ‘Ë èé—]mËE׊!¿¹€½ÿ úÜ`® צ™OxYžo,?/©b6‡­QÙµXQÃÌêsàæUBS€ÊK|‘oû4}šLœÖ•Î GêNü²e)›qjs¿§ Q‰£Î"|Z±n3ΗÈÿÌõRWcÒ/¼ÜeÖ± ®áË iWh‘2é¯ *iš{«5tâ$ÿln¯ÌÃK5ç‰ahN[+êàB„1! t`v+bÉ[´¦ýÀ ¾ (N[ ãPTEfæ¸ÏéW*ØÎœÚV$¿6Ä}Ý"8:éMd±uÖˆ“g áö1®¢#u/ñqi0…†0~a™¹Tifz{„û$d ÅTq>íңb&ü^‰·±bB]uä)Pùm*ÑWB›_jË¿du¨5Ó¤¸ç"_õ„hè¢[+‘2¹šm2CKwO p¨œ{‡‚ž#ÁÝ/¦â=Ép´·åâEêHÃT&PlÛÒ™ýf»æ»Ÿ— ­W0Qß–T,‘Ùn&Žó§‹J!LÒA‘ŽØ}q‘Ð0ŸõÊ9BÌG"ßy‹ìnäËÕÚ” ³šïòš—é.«4çûÛ½º»ÒLö•oÊŽ¹ Ó±OðCÕÏp¿Ýq`ÖÜw?«”ãwvõ7³†á>¥g½0l‹Ì‘€#¿Æµ©G®$µ« åm6ø#ò:t¥¹@lå;JWÔÐù¹Þ·Ì‡7"xEÚCbƒñµb÷¢*ø/dýÐÈͱLµø/.|GF»q¢ 4ßû¨aöÏ¯ÚØûµ(¨0[×v-rîÆ÷+©ܶÅÎÛdw*cSºì¿Û "`ßwõƒy/d«Áη¾C‡–1ý9f¼Ã…ÓÒ#K=È[ªŽÍÄ•Ùtï±,ŸWI"öD„Çߘ¥¼/ÚSìÖ0ùz`ÉP wm¿gX8Â/q@„eµsŸ{ëüa¾ÎÔvðÑ÷º!§TêÈ\•øK7¾ì±tÛjßüsE¹QÂdÝ£ô!MËvÿ#R÷ŠH RÜSИà†Ò²0€C’Ý B>©VZä°œ3æÞ“6W‘nhÞ¼ ÞиÛU*a¨‹Ýw3K»^}8êƒþ†*ª‹"¡jùq¼Ëºà¤6ußóÚ"ILd¼ì¢¼$๓º®¸K%ÕÀûh~NÝÅ¶Ñ =£Kà܆~ëaã;Ò4ÒhYc¦ötm±K«¾ˆ ŽNFb.´³qÐ×]¿ïÓæÂKPZÒŇ@ÐpË??5 ^n´ ÷—9óž £/àD'”ü»Ãr S¿–F Q‰õ`½&*nÚ^ à>µSß—Èt–X°¿ßgI±éœYî&aB²kUœ/ YrŒj¿î]3lý~0E÷ÝhЉmHhnÖŒ.`¨í“`g‚ „B¹i†Gk€ØðYWaTÅ&Ø›kF)†ö@À‹ž°³?;S_D6Ç!ä„ EN×l]‹û×ËT·v339±°“°_O•´e:¬6CdÛ H­{´TÚîàj¿"þ*\žæRT¨™ôÚJCpžÔÜé‰uVÞéF+_F^¼ër—þû?0>í±. øVÖù ‚cÑL¹èä¯ÈÚgÞ  ~ß&r­ß#-8'òV—sg™¤WÚ¶ŸÑ»V¿Yßÿ¦)w¿inIé“zqI¼(믑 ;d™ŒqVì䊑ìÖÙ™ø-µR⟈¸ÒioøoÏ \.øJ ºŒä%gýFJ“m»áѵ;Ït$ø¸Ñ§" âŽGž¸)[¶HgV &Ó `Ÿx!?v¾¶üa•9/3÷1®†È.§»Ž&SœN éÝ«q†¥ãDç̹1[µì|”$z—[º=$UQ¡ÚG0oV£EAi ÄÁ?FÜô%Íœ ŸNŒóW¶(Ãü¸MgÉš•q¥XH;ÒßU櫉M² ©®zãÎ}’‚:¤é¼`·ˆ¢Ã¾Í63ƒi+§ÅTÑuõÚž‹Ý9±¦¥ÐxÝï†ÑÒհ轿ü &Õ¶öýšRòy°.Ø¿gz¸¯ï:žÏ™ž‰5x¸¹cøëK“T<þÍmf‰tc–Ä$µ>Ø3£Ç¼Êu¼GèÐ7bbMèÖÿ8æsk“Ö!ÙïÃoÿï4$AMð9PýÉ}ŠI6î¥áÙUR¯5ñ+©¢Üª#“™odc´—çÉ`Ê!ŽEÙ <Ì[|p’ É·æ'ÿݯ€;,O]—\mÓcZhåVè2}›ˆ!·B­ßƒ‹[‰L®4sö9q>¿Ø·ö딀‹Ú§™D§)”ßO> ßç¼ïôì0‚Ð5¦QiÂO—ˆ93j %ÈÓ>ЀЈ3w]¯rÌü^Þ-ÅúÞ\yýËÒs–…€nSF!î“VûJ ‰~~#úy,ìÛ°Ù·p´Â톓÷9T€‰,–¥ k´ RÛ½o‡–mÌO 8è3S(_ ÔP–ýôH3Vs”pÁÞ!˜hÙmg…™Îtû·œ¤ÆõèT¡–£±bǶ³Üˆ¢fðÉ-‡W?/þ<çƒÑpŒ{§~,üÛbvXj*[¸ l#ËÅS_–™k°º›ß'ùå6dw{³˜ƒìGbÇ•Y4uè¼2¶@n²k‹Äruß2È܃ÀHÅJÄà‹–Ò¢%a‰l #'"°—¾Ö®°ÀDöaŒêüµõÌ Ð€ì²žÊ Úä¬dúbœß5J8¢¥Ô&ý6¥±}ÈÃñvÿt耘’?™ö pÚ+^CSqše½Ñë•ÂÁRa?Å™ C…x›»CAÃjÊÍ ¯e‘²ÛŽé[o+#Ì[\–Œ+¨#Ýšæÿ!ÝÚ|w»’R((DlRÌWwi)ÌTp-ò•’ÕyQa¡`Re®•Û£À#âÑ&ež‹pë^Í4•ïî›,ú’¡BÓ‰ñ5ßÚ Ã0dè+(:¤ÏªYrÂеœe™Ðv+U¾Ä–éÔ´ån»4¼MHðMµAûRX£ïÅþ*¡”|kê"Úõ¼·䘛;,Þ¢úñzòüñ—¡zpœòÚã躜ÎuÝ^jµpfïkáèx›¸DU??@3ÛU¶œ¸Ú¾ În¿Û$DA†óe†lhßpµ-±ZÀ}hÇh—6¾½²›kEñ6aoΉ±ýúÓK”_¾~D;N×v)» d–=™Ç´p$Åäú D/e“]%#NŒ½÷ÜWÁÚåŽ#“ž£Æ¶_ÌUâ?s*Žv×°9ýº&,pK"äéú[¡5>fÒ±H:L™=E¸»Ô 4' ߘníÖåÎg5Í£ß_5vÐ$^%Íé>eÜx¯qZ˘ã–üÁH¨Ú ™^[‰FEÞ¯rnT%Sð 36n‹œM Úˆ`x@9e/ñ ïÁÎEa#Ùëý ¿]I ‹D¬fƒ…Ô¬gI|³Ä ñ njí¾s²<ˆž‚4 ïÌ„5ÖÊ!"ÀF ˆÿ{ð“H@ûø/x’”¡v%¥ÜTÀqH‰¥É4,j†Ê0~öؾ2ÉGê½Q]’f}ÈNt¼ßÄX}Ë€O´[λ—<QYWô©è ƒ5žÂ»ÏÓÚWaŽ˜!Š>.å²÷‘kaºg?8y(î~a!mäwØCôâ¢+›ÚÏ«p­8¦Ã8 ¡2»vLºÃÞóf¹ØSRG~\íªüˆG#Ú|_ãG+€ù rÛçIP!.–P´ã±>W`óW¿¿±IˆÛöù‚if„*BÙÓË‚ÇÄ]úˆvS©Èj‹îÚ˜ŸÂ§ ¸åòc…a«s+$­ùï@À*ᤋÿþ¤=éÍæÇ:ÌbÒH c÷T,×=#û>·, ›’cá P ÑHõ²õU­“ò¿Gÿ¾­*.ËsDçŒ+!kêñB{áV€„´¬$éF¡ MV”Å¿ö2ÿï…öˆUm¸ô9š`ä×§Êÿ¸ë<Ø#ÛO /›Ÿ«À* _ËXÒ§¬ZÃ_Ëû*´_5·”ÿ”âY"v÷ALCÖpë{ä}t@“’ð­Åé˜ÕË™yÁݦ–é‰1aÁ8áȧu*Þ™!úÉï®%v]Ä9Ít€ˆ€5FuöíhÀê~c‚<{VqAà°øÚó›u¾¡Ù.¿,{~ÎqÐ áê?¦^§Ðˆ]ž0jÜh0Ù™]9K¥Íd¸JÚ"#$â#§œ5³Åø½Æaæ3ê‡È~ØØ°ÔTóÜ:t’Õó†‹É—§ ­í ´íŸ»ZGI-#¸P4akY9Ü/ß_ºÎ‡&츈|–Á%äç@97ð°ç²ÊÉcÆBa—öfJƶÁõ¡µÝÖ±%UÄ®¾K6Â/¥ª”±ÆãÁÉöG4û}O¦7$Àndäï;‘×Ü•]À¥€æ‹Ùï†ë‚IºqØ‹ä1wÒM8Åk„m|Ñþᣡæá¿6tEE´ˆHj.=Nc¡:² '*¬r¿Œž"-™Ú¬›{bÝgìèùôZ'Í,D—ìûuÚÎ‘ÌØòàæ¨5Íã¤Åq¥²Ø¯ \õè;»:‹··’IRå’5Iß“;ó(sÔqË’(­hÙYÿ0ÖÛèð-†µg{@­ã?u%w ëô–sò +è“ß+]¡up'¦ô07a—|tnþDP„†3µÓ3Å}D¬Îu˜6‘^ÕP¹à]ü§§Ï‘IÖ„NU¹ÆÑõ[ôp¼óásêg:ÒêìàÕ ¼?˜YÔš cYåýgyßùþ‡GÖF¯,i)ýit-©º—™#«'sš=¸¤²m”ú69;n'"U“ë„]ËR‘#y»î7J×MDÖâ¯F¹õá-© SÇo$ ñœè©Ù‘³eÃ"åfCuÿmǰß.LPæè×:U}¥?¸”MaLÖÜ*jÈÜ w½@ šcº™S ”qFL¢¸è¬ÿ‰>}ç'þ:#,W}?š'èten4ÐìÒ˜RWÝc‚Ò6%ô»zt5<¹Š^IåàÁ3ÝFŒ†Ï/#J/ÆBrÄãe”ý÷T)H¥y Ôç1Ê–u#úÈ0ËL@Í«YWkW„¢²bÓò‡ûQ†D›Êý¼«¤"e-4¢5Óĸ:cëûû™M矪ÜlžÅÒ9–ž@yp°jÔ2¥Ò¥gAˆoPjs|HFÑ=Ì)h=Üe]Œ«VUtÑ!ÃqT¥Ød~Ù†–¯:÷ÔÎH7iÚ &zhÕ*ˇzÕ‹5Ïš|M‹,Mk Ù¯‹r FƧ©^ûÀvô›"ŠfHWÊXUîKÛÚ!êØTò 5ÚâéÉ”¾ËÓVóÚÜâm¨CÞ{=ub‡óÍÚu¥©øÄk­Þ2E© _÷šœ¦û»V–ÞɃU…×û|~÷&ã N\(Ñâ ÚØ3 X,>“$¡"¥/eË’[Ú\I —õۛܿJ¶{‡RÇLF’åPJýFë’i\äöVœE˜&^”²Ä¿‰=#Mâ\ râd™©7”G«ÚÏú­[r%òܤ+¸¦EYžeÐÿ52Ñÿ¸Ýì'õ f È·óÁ?ªýe•»K…ÁqûØ`ø‹Z ø %ö’wšbOV?åb9¼ – ø{ o¶x;ÂŽ.{ñ:Êf“×Ü©LÝåÅÅ¥c”›yá`‘^LÝKpÁªŠ(ù’bûo>Ìý"iSÈLâ$\¡ñkmRМw ÒÃ#€4ˆÒ #ƒ¸ó›hì€õ9‰XÄÈua;P>GãË‘;y$&¼ù™ n´hc…Ìu<=9QÆÌ®›4À£vAxÊl•M,àÎGK:óG—q÷–⻸ø2 €`Äa%jƒPõ„XwRíÁ…l'Ð ØŽŠ µŠ¿^ R‘5'´—cô´ö+Û÷„|(³¾@Ÿc_ÁŽ<8ê[ÑÙÔÑxÉ•"ÕTSÀVÏéBÃõæWdù UP±÷°IŠ\²Þ©²3óh … Êh´‹ Ar幎¹µÆÜÆTj7 /êv[håž ©à*odEnÊÎ7W°LXKlvÍR}ó•ÊãØso£˜·ŽR —Ð+µtBY*–ifÎàHL¾o V`2Íјisá¹^ƸU³æ6§êî:DåëQ{*){2nœ§YܡܤE#‹$µÁ ]i × wIR–ØNÑË}'dŸöÆëôèÃßÄt÷´²mšÛ†!¥Âh±Wc½ÐV àÔ-SÅ‘V}ÉŽMb¼4Ä]eˆ€;\­bè†}6ÁÜCè£ÈEu±Ä~ýKæ¹ã/]w@ ¸ÄÐ$é´îÛ@Ü€3¸8³ûìH×#—ÖV)]°gËìb²àÿluC#Ã_›ØÒ O| ñ§6<íÛ¢ù´È&¼K¦;iÊãc‹I—_øœr´í¡ýÔ?ÒûûþW]é”*^¤u?åbeÙe¯ã§GßïŒ$uR“H)‚@FVeh‰ ‹çpa·'®j»ÓŠävTG£òÜXêí”u ,úx2ýò­tÄã„Ì%xÂÈU2÷ç_.Œ²œcºçÀ¨§¢’”Íf´QA5Ëœ-¡CbÀÓÉÖˆ—쀞›­oW¬â“þK„†+Ýï"Õ¤†{}0ç?À ¦Úµ×[åÔÚz†Â°§ÏåŽÒ”«ïß/Ù%ÊÙk]¾2hôü:`*Š¡ò–B£ýµl©£NjÜ«yÌC÷­s`Z.„—#úŽ7N‰T‘Z9³”]îØÓ`^LÌD²óBŠÈ ÿþ‚Í`ݺÃFb´›îý9€|“ø“¬-Ka×ß"¡ *$=^7M¥È±o©Ç‹éÆu¤+Dâ^ļÕöý†ƒc¦¾ðïóþ­î÷W¬7ÝPεås`ÆTâ,ý¹Ö¨üß®,\{--0¤W‰ëM!óÝšñ¼Œxmb…3ñŒ6ûkMªb³A}™JJMÕ¡¯>)Ô n­¶äqHm_„ýtJ¼‰¥|ÿ #òGÉ,§û­>| |û†%|v†SïKú»+cÛªËÐqÃpâ_0ò{GGÇE Ïælß-‡Ü׊?z ÈhÔBÚ6¾1â{íØZõüI™µø#¥ %lã€Îam¶]¶©ÂÜ1n¦R=S¹|Æ5é 9:¶ü_jK*¨JãµRjá4[úú¹våBA Ö_ä.sß¶âuOÁ,h†%hr­òø'V‘ÏW[96Ä »ö6¼ù_ß4©!rŸh‡†¿äÝLhŸÈ„»õX7_tF!ñTS±¿rroŽå ›ŸÞÁÄ9pVÎWçRžm¨Åt,‚G0v—Q9·9EuRuʹaTÿ«8Ñ÷Ñ °pËßüã˜$RèÀ%k"ú÷3µ^ÒÊËZ¥|3¾ ÿ”–·j‰gDgèR2†˜*ƒ¥îöºQYç-.3¹ÆóÚÐŒí‚)×ÇjpÍ ÷Ôÿ¤GT†KáI×5 ‰HE¸$hwðØ—ÙD%ÂÎï5Æ<·?{nÔÖý4¨ãZ¤è6Wyf\êÓ9ƒ®OìòvHÌ^#”®óRŠ›æßH©KçÄfi0Yœ6Ã}1 ¢Z›ÙJJdñÂõâkèD‰m逨²{žM7E¢w‹ëC,7*Ú– ºf‰M:ŠId‚&ÛžÖ”ÚæD£úcÓ„Lz>'•’&žµÊd­C¸‘š°ª’Éq:ô Ö¾W<ݰÞo:²mØT¦šª—<ª2 *àsC{EøÑÅtô $ˆºq÷!ÀJ`œçb²ˆ®&´‹d“ð?ªÅf†¯$\†³ëyv¾)Rþçöƒ¦ŠE1l Ù[@~'@™MtC»»ò})Á}r½×—ÞŸ@A×®{UÞ½z+ñWþ$B8Êÿþt 4§©ô´šaSËÞõª{*ì^ö?4'A`Ñ.;9U×M.¸(-Îë\÷ŠKä4Ç ºíCO“fî{ó$Ã@U]¯æëB"?ÀsÀF¼ÇRO×C©é÷_WµŠ-Ü£håw²¼˜òðð« ‚ñ§aú±da“ΤnôƒÑ‡¼/ ’Œ/Á½5R ÆÁÛj==/Õùøf|Ñ)ïÏ>EþÙäšDø%?×ýKrQ³tøÓŽÓ5üWÌàæï2G`'ªÕ#$•þýRØcÔ¶- \bj_ã)£rÉûŒ>¹ ¸2‚ŒÇöõ,êûx€–dNØvËm¨¨Èü…üfîlqLê Ò\ÒÀ0ˆðåø¿ÊÇ@±ÄU2{0¬+Q¼×Ýüðä›Ù|ïòí…<÷ëbYÕž9úXž$50žC>¨ßÏö ¨Á¦¿ÎÃc`-Mh¼?[ú ´ÂÀj’óò÷\Øb;³IëÕ€RrË„kT£°fx5ÙŸÀ·ØÜ®U4R!„ê9)ûHóC{’¨‰IdÛ¼Iø]/èD_Q a”:)éø•:³ÛÂ=+\ZÜw·ìûÖÉò›ŽJ‚Ä#Çb*ÓòVq\Dçd+(&äÚ¡¼u‰wN‚€î¤ÌÏÛáz¾³ó‡Ý¬ª`,„qàj®¸Éž• ‘Gr-ýû-P¯x|b@|‹¾$iå]óe˜…;‚¼ÐzûÉ9K©1Ö©½!­±—{ëÔZçÆ\²'ÆuüPù˜—NÔȳ¥Ìûßñ#ä ‡p\(ËÈ·ÐТ™rmE Ée÷u~†NxÓÇj€@ÎטoéîÝöK<:âÒjȲëÿªÝ \ˆ²±’Oª„īŴ¸>üÅòv¸^ö0GM‰² °ŽPâaýTÇé¹jvœµXÙsˆ»Ó2¥ª•e Èð"MÎñNC— PôªéÙQÌMv½M%BÆý_)Ólk»A˜–þÍ/Æ”ñBÿ²T¡/EPð¸NQÓ·Á@„Øœ¤†~ʘÖ+!Œ‹ëß­Jñ,[Q¤³V†ßÚù'\!MT¾HVÐ}ü¡eQmå`|°4*¹eVlðè! Y7. ª9(ÌÙ¯”ÔÐyð'mñå·¬)„÷òõK!Ýp—ܽKÍB»P’\‹×Ý>'Qü‹:Ÿ4fk×Õ ü6sƒ~þÈE»ÒP ê ØùQ2CJ„툇ols¸u;§ ᢙ„•s9¤’H"Iè¯uÓT©9ôR"Œç=Ñ&!´:5¨à™‰sõªTa GÁ³eÓƒƒž'ZÑög ¡F[%ìrû ŒAˆ§oG)0ÎVÎW`a‰*°’ÄÞ ¶vµ)ß+„ 4c^¡4ÅÅ+JE ¸¼ÜÝ(=~Z°`ùüöLï7§ñÿkÚ¦'Öú-&II‰b›~¡Ô§ëŽXDO€Yëz¦XFüfyßIïgc†Z~ålLW¸= fjmªí¹Ý\mWæÐ·9^Ë»·‡Uc ®!¬¯^¥³™Zû$+]D«úhïì7æÙࣾZ¢¢°.þ_Ü™t6*kÆlº¨Xmy ûsÀu-tî\Ô÷—˜Žî9WMP®ðÊA²žå!‡žOì§ÐOÔÕ‰÷g•û°ÔíyYDè­yÇì“qu|ñm˜µX´·—u&=iœR¾Ê¥Î{_Ųþšè†mýÉà8šìÎç3¢ßKÖ²æ ª°L/°›q¥»ŽQ¾>Š.ºnsÊ ™ª#)¨dåÚWÿjÀ.  ckÛ¦XO¦"·v¢Ú÷D”aøM4Å!Î(…ݵþ‹‹P\Yñ0!%¾ƒLµ!ç! UrhÔWæ_§â?$õÎÕ—¢þÛ3•«KZ“v²Îdô®Þ÷•7ÝèºS<Àäûb+Bá´Zt^Ln]×/t*™nÄVÇ:¡{Möœ³Àø2Ð\ò}šNq¸ª–”ÏPi‡ßˆÊÜ„å]KÙUðeN¤N+›mÝ•*3Î{Š?añg8õe”ΊQ’ƒl዆¤ýž¨bošÝb²Ùmb#U¸™^ûkå…Ì4eð9p¤ºpý–#Ħâ¯âÎåù˜òRY”S·O ¡ÓØÚAŒ©'ïNéØ<%[D­ßˆ’Y#>þ¢§$ð¹NÔBGÞŽ^C—fZÎó;½¾ÜQïQ#XMZ5ºNîú¹F«µÝì'ê¥xz.}¸™ÄjË÷P  •Æ!'ÊŸzÈü†¸í|¢q\ íIjÏMÆúIöÍÉ’ŽÞÞù&œÂÕU\¼]8Ë+èγ$œœBˆ×ÇŽPD?Ý—<Vcé HIxv•t¬u ý1¥`¸RQ, ~.ïÄÿ ï&н”A†±43[‰®¯œ½ jt³§éwÙÛÝŒu¼ c×ñæ‘«)bÁ­="aª›?ȹ‹šßé`:Gü ǧ¬Ý¿4Ùg¸V˜À¦ÂL<;FQ#&ó¯øƒ@áà¢Ä<3{¥kþD0„\"(ÝQ圸·ä·ÇCŽ”O•£%@`–jg˜¿ €or'ø¼ÞÙôXá0³.ËF é'• aȈuxÕE”~@ÅÀ±U‡ÿJ@øE/¡Î¾Ü¶*/JŸ¿i…»4~`¼ËÔóÕçõÜö @C/#âÉôtôlr8Û í]éÙÇù¥‡0Þ’|VÔ> ½Hcà’ÒÆàg^6Úúj`áÊ"}µju”hŸ—»)Æ1*èåÕ¶z”»X¤[pë ¡*à¥ÉžÉááY,Óz7bºrÆ=R\ƒU!‰oM½‹¥gõw…WB…ÿn¬‚˜[¸“vÆ ~)Í,>íþ¡-{®-èèÀëú¿Žp°,:—“”©˜õ¬œfG½gÌŒ ’·lYLÔO:S¬$‚J!ÏÕ Ì3ç5Šm¬XNå>>šaÆêó>±Ù¢½°'yRщÌß(ý—4=Øo«K]è,¢×k0„Ú§“•»Øctï934ý¡bÜes21 U“ô( ‘ÀsòÿóÕáx¯WÚÆÇA´(å¸@Äça]ƒúIŠ "ç`¸­÷ÀFöºš­=ó?ØëÚðSñ’°ÉðC@Þ)o9‚¥Ïœ÷ WÙJ¢,•ëºx9¤Ê2ÄÞ³%6×#´apÆp#È|q”S…ysêÄ% “n/œ’}Ïê¹m¯"bÌrv•€„ú{ŸcƒAy‘³â ïDÉ\¤‘×;¦ª¢þƒ—²:©¤ÓÔjÍ‘ÞÆ—–nl#$eE€”‡&];¹XàºØ×M¶éi„‘2eø³÷Üàgýì,¼5U t?7×P |ÀÝ¢VNðHÀÐèmÊ1:3åÒ{lWЏ¾;M.r× ä)á¥u3mN¢åæ5í9†üµkÊÓŽ¬^KeĬ£!Š:¬[zv üq‹öã4œŽÏ&ÝÕ&Y‰‚„Pu–é–PR©ÎÀè‹CnvwÞÝ™âý¤MGYÂWÊ÷q?ÊÑê#°¾;÷ÍêÕñØRòïP± ߨïœÜØÔ )ü1[{P”»Ü¢ìI# ç¬Êr2yõâÙ^KáÂ<Ö€\s·Ì$eµ'óé ‹w§cÝW\ ¨*3E.‰3f(Ô¥IØÏ$©aѧ,,FRIÝ£|å ÍZ\Nè`¸°•Ws#ãÏô: „eCÇ^>Tœü ~^Ê'©÷ÃК hvNžîâ2Ü¥Ž-jó€Ô7E2r˜íiiª½¨:.Pøq«ãÊÒϧ).éw[gЧ˜ÍKæ©8ë?£ƒLÊVtøš›#껺r³ùsˆäŠØY$UY.›îÖHÞøÕ_ôˆßr ‘ð$eGÆüîL3‚ÔTv4µëJÃüj^†Ž ÌÅÀéA^»[܃ĔßxÎ\åÏ\·LµÝ‹€_×r„_t,FÂEAGaû•’¼Ó/Ê}S£t…þgÄ¥í.G¿KãÏ—­?°Ç¹pîqf(ƒÒ· åí"û‘(—ét߬œˆ¬Ù„AºXM"B>µg·Ra\…kµñG)6{Hòø¨àÅ:¿åk4[÷wû¼.ã Ç{vt×±j!dEžäÌ8"ÀîM±lÃ$;°Úc5)È|³Æ£EŒù¨fÙ¢¼¥á°e'©sÚR<ÔœhTºÎ^>~à ©^Ž!‚½[Cý‹Š‚¤¬Aâ8xb±yIÅ‚é½^ÛÙ7ÆÈ9gQà‘¢<Òæ ¾}?nQyÇ•?L!8_§Ø©\,Ÿœ(Bóúñãíëjo/á¸Tóêcz?•”ä[:ßͯ=†„S>q!«\f‡Bý„&h-ªØ0ݳù¨W³“‘N+ s@ŠZ¡ŠˆK~,wäߪ)hÐq£èI¨åÀ½Ûqch®¯ Y›¯1†ý¨„¶$ì#Q-ãVÒ1¹z•s5á­@¨Þl†º~B M)çL(ú»^0¦ÜîoLIð¨{æüï陬Žb– ¨Ïë(#¦šKpœ; Ñ 9adz•5©›·íð7K5ýí'Ǻ$íÙö&³ä á%Ä÷r7 \"îA®’HQèôl K†Ž™ìmïN«#6G“=Pö£bM%ž)Ió3Œ¤Î[=ËÝ:àE*Ã¥„[p²¥ì±—Õ¡Vãïê7^šy;²TvHm¸‹z•x·B!×0 <Ý·ff?>F#/[»¸¯/½¸Jøè¢°øöçlÆ•¤ˆ¢Ô×ä± Ùzy_øˆ¿•.0zDÝ<^%;çj GçÄÇð•j°-¬ê«‹\ 8Ä9ëʹ57£Ï`€é ×2_Ÿêy®ê Íx&Æ-!4ÍóâëüþIÏWÕPç/ðÖm¾›ìd‡Õ-‰WS~€ …ü5 Œj3 ׌ziÈ̳¿N´Qþ "üa½Ù7;R](’`¢dM®6°Ö- þ^Pv~÷âs‰*`ÁmRÖL¬ìòYÎsUXÀèÇÝ {ÉÓí%ÃÑ®›O¡ Dáüá¯ø™zh¬°zEW…§ëës?OÈØ7šâƒrI¾¤×ĉ¾ªdvú¶ ‚þˆ¥æÒ ©e=V›À"àW¥eD Tœ¤3¢ÄªëNW£s WòP•Šô8üx \$:zk#¢±¨ñª°Ç_® (‘{Ä–ÖªéÉqˆA«$*/³¾Çñr×BàjmˆxIêëXË’úåGÃíã@Ù5–’À±7+UÙð©£nY¬vvÕK(à åì¿v&ý7$_Dã”·Åd!Ä›<®-¢Æ!ÎôðO]ÕL”RˆK„n©ø]ñpÃbæÄ³s4ƒ9Êû]Â.»Æ õY`]£ïíô«"$Má>;¤ðûapS•~Z'(oˆKZ9ŠÅ–Ð'ðXL¢*†×CÓá°®µÂYM÷ƒË×BI5üdl æýÞIL!ç&5Ä÷pšš iH©Kx¶ÁŽ–ôx5 r:XùÜÛ-‰-á1P‡IpÏ¢díh\­¤^½n†5hY¬Ü§†Û½^Ãw0v¤w£¤;hèªMcø;²H•èíj1Zy&¯Ç" 'úÖ®7qgºSŽ‘’êºjÑx;C‘0Ô=šÏ›È"y[rÒI‰Š:e7"·ˆw ²ek’·dQp¦¦JaÞ³mÜ#+£œs+W"ß$ƒÛBË?VzY+ºŒSƒjÅ3ã@”;è©}J#<‚¹áª#LÖp„cºm5. `¹ïQýÓ‹9H£Æµãf%þ'LjǵÐtçð›Æú¶5•ÒqÙž¡Oà“Nß÷ˆˆ±ÿ×h…ð–ë)vÚîiÉÆO ¡I†5¼ oÀ¢Iý·E„ÿ\0E£ÝgA·€ÁP¨PBÚ#Ó°'5⇷ÞÃú4£Ac»CsªÔY×B—QÜíšÅ÷§¦l»@`–ª›lòÆòªYº z¾ L ‚ü®Š•ùŸ¢€¡n²Î¦n];(L /í;Í\ÏÞ÷WaÐ×ÙC%]OèZŸ6]ušdùN•3gOB19Û=ó L-)7ð#(öõ'q¬Æ¥Ã "’;Þö½;€a²…ìgútŠ2y¼Ëhìg")Á(G-å Õ|ïI`ZIê¥ý`ÂÙ³"ê2] ÆïUAuúe€ 7¶íµåŽU1&••6r®õÆü/¹W±£+9x‚woŸ@n^U¼–]vH§ÜUÿríÍ»‹Õ—Kçkôþ§K´'î[~ý ÷Õ‚ª„¸Y¼ÔgÄîã6¦Š[µ\÷)ÃX”4ú· Øíê#ÔTfüÛ£d¾$$_OH‰ü®·7²A't›úñËý¼×¿Ùát$ë@Š£ »¦]N¯³³$x –ÃQ9ù„ýø†hQEàk¤+•ÍTj.f»2t–‰¬ö®Kp&`ßÞDúI[Àè]wŸh±}72qŽù><ðà Ü-äTôjkåN‘±Ì&@ŠÞXÕ×–ô"çGéœfpð÷N”H‹$þ‹f=´\Å·²æx8 ŇÌ·H›ÖMÅH¤-ûÕ85. næº86c~Wþp§|»o!{µWÙç6]iæÒ8ˆøõã«hvvw%Žqé›ÊÈFgW»I¡-”žr´#v@%`¡iÙ¤¸'´î6ÇtaJÎԫè*?=e¿î[‡‡§M2v s Ÿçõ±‹#^RH…45ß¾bù¡ÊÒ¼n(æ­ü»ïôTh¢A¯Ï0à=¹L¾$ç%SŸJì„¡„ߨ¾Ÿø¤õ°Ç×õÁöI%¸Ùy‘Zè½q£câ9u?/SÂ(…˜3:x¢åY ¬UÌÚ'íoÈbÆÿ31´ü²œ8 „èîQNóöm&4Á?ýù[¦çÚÎ’k-;ýwBî9x]`h¬³P’ˆÌ+²|4õ®&¤Ÿ&~P`ÌÈre§ÁéœÜXtí<7vŒs¯ÙoÌ@DظéiÒœ!+â³Ð÷ËßiI¡èª%þD«™y§®|h²«6•Ž÷«ŒÍ™ÈWdþDõÀxˆÑàÈí/ï·ß• S-Ðÿ¬JÞYâûÄöd…I<º‘بôæì:ùîÍõRQ´«c7x‡çTv›,sŸº0,&‡FqPàÚLóªQŽóœ 3“X\w ½ÐôÀÀ’m›ç›µˆ’Õ…®á2øïô€ûoݯZšîqj>úªk‹ùÙa¯]7î½€ ©¸}núxɯÒVŠß•£Lecà6¦$ÇpáÄóMT(Ê×hKU°¢ eø#å!ðß ~í"°ÀQÚœÿ*ê¤ÚÏ“ò¼ ¦t‘ªìì>3üD­k§»«ç ì·±¸O¤d¹ÉØ-Ypî_UÅ¥Rù¿QM(nÅêGÎI_CÀÕZmFÜF-íÃÚ~þl_–úÃ%ë: ¦q)4m4¸²aV¬ÿÁÇJ‹[Å‹ªk8£Ö‰µCe­Ý7¸N Klé|.Ìù¼mQçnGíJw$is„ܸ8Ÿ'tðT­â‚töøâK|/·ÍÓ¥šJÞ§i`Úñ»ÅàWA\ ª@¹šLãmy-+£ñymà*ÉŒâ¾]Z^r "äІ?×¥ªÛ«DH%_,®µJy}Zƒ©|Ø`%*ÏÅeœC_ÚsVµ¡ñCøólÌžC]HÏicñc>›”ñBdáIK^û¢àî(ù# hW¼ª—n¢Ú¦+@pk"D€tªo«*¿¶®‡àƒ#Öq(ŽOi 8`»W|£çúÖ8Ý+Na”­<²Plò,ëë+Þ5ºÁGm¿»®¸Äè]B?@¦äÑ>T‘?J…+ Q”ò_¼Þ_’2š XÏ­‹9r ÍnstM#e¯ØšÃz™’—mÿeYüåuhø;JoÌÐJ‡+…œònÞÈǤ¯½Û"icÿãÓû• ¯iJŒ€·³Š] ‹üyÆ}*4#ÛÄz•º‹K7OôšËR¬÷þæöç^®ˆá‘¼¬D½ùCò5i»É¯Ècñ(‘ºÜ>/i¸Àô.‹|G“!f×0X…ñ$¦b,·¤t ñ5ƒÝô'ú¡’˜òéwž8‰¸Êº;õ‚ÒC |ð’Q€ù·øêcûÂ/iO¿©Ò‰_¶j3ÍÓÓô !B·il ¬åT1ê‘4ïrGš|wq†Ì|mžtp^,´$>¦¹ÑG8Ÿ„pKæø„KG­w«)‘»Ö}93¿…Ék©&£,áLRAê è2û²ÅEUÜKC]+QK<ýA+«(aN\{ßìÑßM–¿0?|«<+³Ä Žq‹‚aÓJ¯ a¨·¢VowÏ/´W:¸Öç3K‚_N\ĺZ|ñ†â§¾Ñ –?üê"@ÍJÕ ÛÍîà3ÌóËÕ‹¡vŸÉkµ–HñjõÀÔÙU¾Á ‘AM \ …¨Æ&2ÂÆ«c=%ÁB;ãw(ÀQ¡…DHx  ‚9Yó½"`FÜ”µ9a~‚eYËÂe*Þž ÅãXíØë‹äµÿÌá:øÝ)AåtÀ0n$”ÙÃk¤‡Îè¼jnäÅ©°ƒäîÄ k°Zh]>]ÜW”µe§[±zò“½m"Œ}4”Pj`œ× óÍ3 ß(ç¾%Ri}ái®sJÃDFZ óýqSF9LAr;S}îÀ†1Z §ˆHm¿Œå¹ÆÆU¥ ß ‘,ÌÀØunbwL.Nœâ‘`S-nMË&’7Jþ~±ãùƧôTǸ°øÓúL,k§<0È“BWj¦Èñ‡1©3gáf}hh]>]Õ‚…–%-¾îÄñ¿gH±)cÞFy0 Ú”Ú˹NønIÊÔ ƒ§{(lêÑj¦¸Kasr)hèó:3=9ù$MrMÆ×‹øµä”{<Ó%Eš- Ì`(…õ BøIAªî]¤?¥?õQõ#õ BÒO9uör¤÷ùšsÏ\CË6±£lØÐ‚,ðòlÙŽÓÕ)RÑ«HVô]ˆ²=yÁž´J¸zC†žéJôüçùÎ…ûöôÃ%C§ä)rð3ÊnM¡+ɆL± nââ®"\ìSìSžQÓ :ýVÇVék•«Ô¶h/ŒbÁ\À·Ý3&ôpä[‰œ Ís)9arµÛ«¾q¢\Ç@¹©gЇ2u㥨‘êË—Ÿ¥cÿçÛÆûcÂAýnnò1H$¤à{}N¯å‘†ýîùqÝФ.hCñê“Q6èxwäxªìõΉVê48j¨ìÔ35b™í6ÅÇ3œÅ¶R³ã VHO ñnûÙ<¤&µÜ;ˆû¨·7ˆ«ß†>À?¨#•rZ`ì˜~5Z¼0<¶¤–kY¼‰ÀÞé°R;'%ãe# ß p}Vò ™úà qcÜKB4o†æ§ö¿8ŒA†c §f®Š« "§¤©Ÿ™Vi¦u8ºŠ(ºþd¯…C\ËŸvt|Iêy5r/Ådh&ixœ²"³ƒð©-ÏžVÜP?×a?U O°ô«¡³- KÞ0î |¯=c•—|.Z[²7ñåú™éöÛ,WÊÈÃA³*ã! }à*…ƒ1ÏâR"åŸ[¦Àõ/ì ´e|¶Ê6B[sÝ›WÿÐdTÏw¢{Éåþæ®Þ,þ]g穼d£¤šÖÓÅû¶n:ôˆbIåÃÓM]Ê ãi ×Û$ùÒ™'u‡yc{ŸEEo’öd$5Ç=Í—€ñoí@ÈbQ£µ{!mtïœ2^¨lm­Â ØScv²(Öè(T‡£U52qÖ-ô\äX2aUr[½àÀåòÒB¸<0臈_ç"q%(àÙO<„f»BÁ;ÝÌ »¼ÒWìyE§ÀÊH2%TÖo9Pãv,¯–B~Ûˆ(ŠøŽkDŠª×z×úÙÐ:*JDZ#Dç% Ž!u(¾wt®{ÜA^Ò£åÕàïè)©3áá¹7Œ£©N›å)AmO”"VÎë=á¯K=:Œ1Ͱÿ—»ÓößzA·~†ß¡RbÛXÿl(ýThäHÊ'+/µ±wb/óÉlhÔÿš75jÁ+T´ç/°µßÔ{­gFs% ¾u ÆHvÌD?ËÃ멟˜|7þðK€P9‡D)•“Ö!.’ÒØRrÊFŒ¶Gx3ÐÝÝ\'œç†:4Ç%ï5Ö ÄHÔõ“÷y^ìåЃ´}ÔÓkûÛ¼FŸß^OºYƾjz"c <¤ãª+PôÁˆ»;fq-%Cml«y¤Ð‡jeºË÷7ÁåaÃ--ÉÐ¥žþ VÅAæùê½”<ÑS ¥2ÕÛöô’øÓª·4’=æ6LWUÈfTtTÂÂit¤†êø0 ­mP%ErÐâžå†)1P;æqØ~mnî³à°u]ÛÈ~€ûÓé¤H6óü.ûùÁõe1å¹ß$Î r€šX8>ëÃ^ßÐBà`½qMÃωá& qŽ©¾BÒîVªˆO‚¡ÛWƒ¶StÁ€X<‚£‡¼>6»ùiX¹™Lù_À§ÆÐB™G®¤0KÖµs ¢pø˜­ F伞°Ã×™ÇîëÿQö†°~±ãÃÐsàa²óÌ úI¬è»>„ð9; „n'%[üÂL‹»Ã(ýÃ*<.vGwÿnÃ-ƒ¶HynÉÎׂÃ:` %Æxå+@ã&É»|á'‹C<\ KOQŒ$b“j]ê› ÄiË»Œz%Ú 7I"oüëŠã»ˆ?ˆô^`kmdˆQ|ž¼¯bg´uš©¸9æs¬ào¿B7•Ñ‹|wµ2˜KFßpÝMÈOX˜hqêj;cz†–·f_²HXºCûD©bq”bSYIyÀ þÊá>ysã‚ñ¼)YdEf—œaRƒk³1ßÙ!礉nÊys«Y-Ww¿4 á’‘’9´œ(}ïb]\Kª ñvoÉÇ0‘ ŽI¼ÂbRP[µ[“aùp‘3_AÁ¨`û¹i¨i/}ºçàóÀEâm‰:êemÑBšr¤re|®ï ¢©Îpsà#íw'-.Ç’®Œ®DúN™"’æûhúéj–í–ÐOŸj@úìæê+†U1¨{ÁCë|´Wkâ·öbÂP)mŸ…™#Á×T¹\.ƒÄñù©ˆÄÃ×ð)y@ÆN^Œ'ŒúpÄ'Å®±5]Óg …ªqÍ_öiOA@ÉßQP: M†!d7ñœìÁ EO¬ˆ7Ñ5ÙŠ¨‘dÈiˆÀ ¡¹Õ¡TüiÑöª¾šÆ½žÛˆÊqè–n+Ü'÷§©õ$?l¾L‘²gLUe°ð—¦E —õMU <ჺ¤ÍuªÔʾ¾›êŸ/4æd:õç3;WCbÉã.§/ÓéVjؤã7öZ¹0Ês)pSá d5{TTû\‰‡³0U·½ªòÛ–Iì©ÒÎ"G~½¿žR2{Üá•ýÚ'†VàKØ~u,¢s‘E³„ÖZ ȪÔÁÆ´qƸ¯¡'ÖÆ/8Ì@ÄÝÄÅŃ?»ÕyÅ!ø+@è?`£žZ9íÐøÌ$Š’,0­¿ÔÃZh‘íºØL#´ÅrÙå[ÓÁp̪µd…Ƚ ð‘Ó¯^Zò‰+eÑ@ä`¿ŽX¡ ™Ký÷®’=NNùâN&-b›ýç¢i¥Ô•6iUÂoÔs<ŸÆ'æÞ6þÖ€k Ü@K3ST¼ ×x¥ñ7áXGµ`~‘´0>Éûƒi±çF†ÃLÐìѪ)œãE-(¯©=GïŒ'nî˜ÓeZXÏB^Ç_øì¤ªãFò·þÝx|C?& î {˜ÂoÚly­…ôM ž‰Ö©‹3¯}†Ú(M¤¿i8ÆÈ@¿ÒoLbk¡†+ôr7Ž-rMrƒ?ÆQföÃ:5:‰ßœbdãcY†ùˆºäŒ>¶É™{ŠäjªL™= |ljm\pý¿ \jÌ^ÃÆD¸ý0“¡ºN3Lù@t~¬ûÛ}E…±P»ñÀ£súh0òªˆ¬Ò{ÀÞ¢¨40t'áÞMœöÉù¤¡ ÓwáHàMø¢oód~%Fåèpã—x¦%+H$Ý"uKð†¥ÔÙPÉ•+,Ô1^K ,‘SéaK,{@úGŠœ«.ï‡Tç" %?´ƒËÕËD›2&®LdÝÈK“•Ë W-­Í<\d0‚¸v›a±­©™xÝ!ODïä¦ïîdXŒíýî‚—³š¢Î:½4½ŠáJ÷…–ë™æêãÜ'éMÍ ‹BìÌ j‰=5¯jýˆ.YbaVó\r?7­“ø¼üQô5íƒa¹¤[<½PÍ‹¨ˆñ¥!:fîˆZ·Æwʨ¤pæY.1!!V,ŽÔÃÌõËÜ!ãBÅK ºZ\²—iõ9\­Aç´ö‚m–Ø}¢Â»äÕ¬ŒïÀTEAÍìsLËÛsÌl5Á/Ç`±ÞéĶÕõBÅ?›1‡„Óí^ÁTÉצnx#§ÈªW³ó Aw (‹?Ÿ‰7@‘º§ûŸP¶wÈv´§GP"ú5éÍ*7¦ØZÛ,Ñ-wy?x˜^õL˜BÇBؘV¨|<üƒ‡Ñ'K¾¼ç蟣Å#©æÔ (êi9¼¬™]ìÜoØWÁóºÕs©­äùÑKnl…q¶Q*òÒ‰vƒœ‹':ƒ&¯ÌKåqCº_¡PÎÍNOŸ'# Eð–àÉõGu—e S£ê—åW¥9_…Œ£åC•÷žxËÏëæâêNir>é«õP‚ü]ÖÑ0Ä|ð—•¿Žžu7 9·S0·bý‡£_`6¤HuThP­ÒÑöeqòæØ{g±;ê(AÒ·sëbØT•Qîøü9e;¡7ÑŒ§ÄTÆH ådãe ‚Ù“¦\°ËäÛR_Aä”&ïÐù)_,¥ÙÆ8;g1b,¸[¤ÛA­ÐÁçÊl팊 òOÈFÅ VÒDŽ»¦Í»rÒ(“žÕA6ß(€(NµCIn—ž u…ˆ·ìŽÝ%ty&¢ýD¦\X"Î{GÏÞYgI5•:—+ÒªÍi–|æÂ¾€|îùÓ¥}ÄÜÀIWòqyÚ£œÇdÑ]¾ßÁù´ªò*ÉÈŒÃ%T/'YƸÌÑOÉÊï«æ(æ='HžpÓ”Ò¾3”KÖ©›¨y­Ç“‰¸©ƒ{ev”ú²ßpð@|`]z˜}Øœ½v³Æ7ßeïI'ÃG'Rð8̵ºT~(+Ķ{à Ìï,ùn²6£H¤\ˆîð¨yTœ¦ô˜‚ר–³•Å9%]¯Ãø!ýÜóÅYÑÎ^™Lt1AË]‡§ü9*ÅMÓÅ‘)hÄÔ™ô±ÉCS¡¶1š¦f>¬È€ÃÍ]?4%ƒVŒ ù ;Àµ›áºçų—´r¢øaꡜ°•xʺ*P™ KªRÙ ÀÜõ3Œ;’©áhá¢>›Ø{ç=0 ‹Üèñ‘Mõá‘Y o¦ ÉC*K¼oŸ_`á57ž¢Òi[~ [l?ë|Ò†%(~† TÝ€/§©åwî— +^Ý-û †Ü&HáW'{’Çwë`¹€â(æèÖUË‚´¥eNà’§gg|#{¤¦ö.ìTÎÆ^nïº]½)þÕwRðyD²¬wA „óФx¢)tt^LäÞn„‡Rfa´XŠ˜Zõ13ò©f‡$XÞfkÊ;ÃMHr^$­¿åu³“˜ô èâ@™8¶ö=¿°ÂÕf±¢v kâ¥[œ¶žÝÐãßP1ÚÖ[¡@¶B ÿOgp>`–ÙUÀÕ»D¶ŽÇ$ÊSÀ‰½ç²˜cbHŠƒÙÝYÏ/$Guä ÉÕô„)wÑÝ#,4¬Sì3æ=×ß*+“š22Ö?{îš2)¬u%¥ƒ©Ó9ÁßE&ò> ƒ¥|ßs ž>ÖøÇU(ÄN/ lªYPÎE*Ì[ÿ„mò8zä]„˜Ÿ§8øŠfœžÓ–RÉ|ÆÂ)º¾:c9àÑL×SZöc©ÎZ¨2ð;®r e´û.ÚªVëù÷c`kª5hô%W¹{Ï©dnà 'ƒmeñ"š.«¡$ãé‡4 ÊJ8Æú}^ï/‡åw– æg)K©Òb¥èIlDokcÂè8…{[J|¡>§®‡ˆð÷ӪÏÖ3‹çÛ¶–^ÉqäzX|ÛÃÝûEQä Ý/˜O—ܪà·]æ[‘ÀvÜ£›©~‹Ö3S¿’Ê) ÅéƒV\~ȃ&Ç-1{"$Y„vç¥Î@xåäN7ÃóÔÍI곋l4¨N<9ƒ3‰ShÛ«øÔ1¼}Y†pŸPÞ¸1úȳZpŽœb÷$=Y QÄ!ë ‚y©‡}X cWø5Ud‹õÎY¼‡ƒ¢ì*2µï‡¿Ã8ßbÚ-?‚,# èRQºÐž7×Tž·Ð Só•}-S§T‹šZh€AS³Þ<ßG) J@˜iž‚O“ kxõÖÌ`/°ŠÛ&)t•Õ÷DØœ#*'ÅE$ýÐS­ãÿÚÀ¢VÞsü%¹eêŠy’Ю'g³ÃÒíËRÉ®ýU_{Üuf.r_K:œbºKÀÀdžués$ ª/™d÷Ä_‰³I«M²iª™{‚vßži‡‹0Ö¾ßŠB¸¬>’.ïf|öÊ®é8O,9Fܤ7ubÞn@ú¬®ºî–HóÔ%l™H öN»;W”‰;›»ÝÔb^.9Y¶OÇñ€±Ë¡¬¤]ÏNL'}W©0ĶªópãÃaÅávÎR¡>)å‰3õ,Z7´é’xpó>‘r4aÙ.õTcÊ`—5œ¥Y@Q'[-5Ⱥ(úmérY¸f;^ä795°…€#59MÀ6SÌ]ßfW×{‘Œùmabo¤¨ÈDßq æ“K4CÉ/P÷Ø=Æ¢p@£ìÄd‹CÃhm–³©‡÷•9ï#ܸLð”Að ›]S®ã´Ù\dLqÐ÷?G{>Lñ±‡ÀWyñË•e£b“Öçy¼Dë‘Õ§AdbI?8QM|»Ÿ³æŤ·éG`KøW¼s«Iôý¿®á-Ï µ&^J£'ßP>€Ã4½<Ë9OÅ“c±VM¸$I:1µÿôfàc7›,»Eו¦ü¤>áÓΰZ C ²÷8n0½ïatÕ3P9¼?Q«&ž)Ìð‚/eÕŽ:%zÇb}×9AvŒ[j½ëô!óÐÌ:Öˆžs.ö±»Ž€»ì‚rocÝ´ì¡&Š=~ýÐvtUx›ÖzŸ_%¦wþM8=Û€ì!øyäh4f`’e{¼ÜÔS¼Ã݆tpjX1Áv@KNF˜7W¯lïOÀumÚA©‚&Úäl­1jM-‚N:ÆÑCز‚,X¾gëYú¬_–ý¤(MÇ* QbΉÛÏ…ªßêÖ)ê)ófÝž,¬ÇbØŸ?¨Po&ˆß/¬ÄAÛ“ Q5våež×Cƒ¤4’ì{˜KrÅóñ±EÝÛÙÖX/uB}mjjÏ8Rœî['´ ÿqHâÉ:vó1JzfäÉl×=  lÈ AÊ×M'”KÞ©ÈÊ—ShÛXÿP‘^kùpËyõui±Ý„½`®é°œËeè›—Ž­;ønæÇ|hPw`ðoÈ|VYy†NŸ1ÒâªPAá M÷MuqAhñæ_¦/#µ2£h›¤ÝÐQ“?ñË ÂM—¼ý\UŸ€¸a­Ò´Q4gÝ.ŸÞXŒPg. P¯oüˆsZ¤¡½Î³ò>¢Å$?åX Ü{Î<[ ?£4GFÛµûš¬ä‹À_XÍ3HØô2Õºá:©WðÉ6,Yy¨ï˲À1yŠe î`ñîúap—qÜ'X b Ù?š“Züߘ7T>Ò^Õ`›%¿ÃÎç\AGð¼¾›,€h›VÇߺËbh>xÆKˆ½ÌÒŶ‹9(Iej't º˜#%³1T#¹¥˜(‹IãÈ¥Îa,9ÅWÁ¦™Bý‚BÒ5´Ípt‹=éÝñ~ÐÓ>Ùâ»2ÔÉÞ~¼ø¶Gè´;²ÑtI9LÖùè:xâÛ0b¤ÜÈ5Ž¥¦W§÷¡Ù¯;S:;•~â.¿ÛÖß´ˆXc#_§í+áÊõ¯#ãâ†æ¸“ž¹|ỦëÓ‚6=ÊÊV éE µ@¨˜Ù"ÃdA6se¹¦¶*ž%¶„£Yvž…ý0{H;”9c´ñÚÂ''Óâ…$0:(Eq¼p4¤É…5]Š_ m¨WzH)ü{gSÁǸ£÷cnD[Á·‘ /Lzµ—*(ñyxSÇ|¸aÏ=³z™á+‹]„ ÇLˆ™~h þ¡ Â\:Dj:”½~ÉC A§ß"«¢è°RÔ“Êncb+R/4•Õ Õ\´)Ó¢êÈý@±†|‹z®Wñ¦vÀQFT/ÚY`É£’ênͤsxj(ý3‡†_R<Ì´Ì gÛFS½C—¬A;ÅÞu‹1ôEž­iD„‘#xº^†âXyU;HZ ãL< ѸåG³ë˜Z!ãŒRÈ:ð½dö‘Å %Ÿxâ® Àš¢B¼âSv©;Ws@ÂîãÜ®­1¤Úð åôwŠ6˜¥ÜÏ®ü—ë¦Àp¥‰Ùø=Õ½]ǺË*;ìÙìnµž—QP6´_z@o±¤p©ÆK˜”Wd¿æçþf“Êê•L>Ÿúè Æâ¨¨[ÁóR±Lo¥v^‘À÷ƒôyaC Ï“í,ƒç]ã{”ö…ªKöiàð®ÃÎòVË8ó¢ÆNŠu§Pò9ÉRíIE#Ô’2Úvò»M×ú[éY[põ¿áaÈa-fÝ–Ñð|>kÂ¥— í{‡â*½F½,žJݵ.ÿÝk)qâ¨ÆœQþãÆ„43G®üQ’(ÇfOö‚ÀôGÏ·:K1Ôkðxý¤óWìÆ– ÜÌíí]ïÿÖîèÞåþ bB)ÝóŠãv”‰°æ(ñlï’"ÇqÓ+ÿ°SVaeÇÖâµÐUb]a=©hÚðâ‰÷ô2Í5WËÙªÿššta‹bm¼CQrô>•\Þ§µ˜A²œÙ'–‡qíÉk×ßi ›0ÞŽÛŒ¥¥î”W¢›|°Ã{>ÊŽÆÿ™¿I-¼s—p¬LBÓ˜½ÿâA—g"N?‰þfÉÔ)ªËø±,2C:OÇÀ¶¡š åNƒþ(Œý¢Ç7l‚ Ƶ˜/p–tL±FÇÚΛKžÂqwG›Ž}æ;*Û=aB–5úæ¡S=ƒµb^ƒå“(—–ïíR~Ò÷ÜföÇzr ý3•!íˆÑ:Ö¢€yk#1ÂqO÷mõ]¼.+Ò@SØ!lƒU¥™8Ûî ¦1²jä• w Ût© n#e|¤dXÁÔ–ý+ûð/ërM(»3˜ ­U¯ÿò]¿Âö3ÿûÃJbÒ`•ñH? A¼ÃYP î| ŠÊ¯µ¦0èŠQtH¼j>•o²ç4…èùȈïâäí+yÔxšô‘@ô;¥ù‚èTcN›lÖúì!›D¬åïD5 ÏÑúæ|[OAÉS ü†›˜C`!ß"‹5Ûýï?ÙõÏ‚rbuZâùã=•Üa¿ ÖQ5ÿä§0‡ç ”ç:ø¹Uý>½ßz“eÚ-´‘¶{áó*Æ:Ý š”½²d<˜[qÇñt¥øÔ0pEÐjÒþÃ{žh˜¶JUZ¡íÅy?ØO?Âv–H6¤|ä3ˆÀó/ÿ¡Çí$‚yà;z:WQ2ƒ,S<&z“_l¨™D')ÍÛ¼D(æ‹Ò¹Eѳu>ÎͤøÐ‹ýïÔ»Nù©ùzEÓîÉÝ"®¢¼¸ðó…8ž3ABq<ŒãÙuð¯ÓÅ,n×—kÃýÈÌûywjî4þùѧ OxǨ$ÌÓÿèK`'bðìȫœe¡m·óc2þ¤‹âÝhðŸÛËÏP¤ý\˜»ál&†<Μ§É”þZ_LbÈU†¿¤,Qì¤F †Ï‘ñÏD‹AŒv.Î)“n^ÛxÈj:îÔm+¢ú´¯eq˜lžM“6ÏlÿÝóƒ[´+™“¢…7V1󨔺ÈÇi`®Fºó.0lx: åÕ©.aëti NëOYÐLhÁ2mt@l×ÏÂô5J&­gëS~œÒú×Ú›6è’T<(fNÛw«¼ªG/þ¾ œûZë(½(‡âÈâúŸãn¶ ŸÎËÄ$•ò­ah¿ð14ò<†˜=!OPëÕ„Ê-t™[g^%x©Ín;öÒM~€l·¸d2ûŽ0EÝ…bGÀ¡«0©”ìî— Ü-؜̈ÂhÒ»ƒï‚­‹‘¶ÍnÆ€&ˆ*¥Ì "/礡Jøé Æì=â’ô4,cFIµÁöLÐ;¯*ÅP¹ÎV‡÷”®¬… ÒÎì¿=ÄÆ¾õêŒïi;ÙrÎ-Yÿ'x¾=²3ó‰ëSt©Ÿ–RÍp¦zܳJPñ¶Ó'ñLºL¯%‘…Hë^Mù"Pè˜$,Y“=W÷‡r èHǘªwl þ".Ê"*ÂsxnÐXp׫Ú­ÇÌzº ­2Å®{Jɧ®Œ¦l 'y'惫š”=,¹ÛÐ §U#\H„g:ž$·°VÇÞÇ>(‰\ê9x§"‚K3ù# Í­$#äï2(Ôßì–¸´ŒUÖ:­›¼ÚÿpËï׉¤äf6‹ŒtI5QâyInnlrgø¢ƒ²éV9ïôû{Ž•D hJ‹xRrPï¶$$0õqœc2UyÏja¼ÍI “¸d OîïÜ­º/¦É¸Ö”³ŸcÃÓ¢g@f'À Ûu‡ÆëÛ+ǤTzÔ¿Ô¶í))~yþŒP[hìóÐY<›œè<<€}":K¼ÿ̳×Cép‚ì'~"Óúøyú³©=ÝÀõÔ“³G³@?SRI’²b»ÒÖâ¦}ülÄæwÄóžÿœòÝÔõw;¿èÜ<Ê ÿU¿gR#eêÕÐ/Œ€$‘þrª$ôZ!A‚J+ ËÙDöA ¿~‘Ndh¡l˜ìîo¯üw?Kv‰4YÙÆÔI¢Ñÿ89ã:‹“D0Ÿ°câÐs§_?¡}¡5: ®[_Å` ¶äœg¥â1Ëk¬§ý-2꟨ÈWˆDŒwV)q7Fß…"'1Šj]V`wB=L PöÏQ«ä†Ý^!yÍp玗IA‚¡çwžµ{™—íu¯¼ÝfíR`#%žùJaž¢“•ißr²-?”P WvT·ø¨ Æ%"-ÎÊ£¯ºrtؽˆ^¢Œ „ˆ_çÓì§™åK2îC¾„d+ò;ëtÉ.þøé'«öH²únîµ)O•GEÅEØY•àøc-›OÀqŽ^þ¢é 5÷éûï½°ÝßàOñ‚v¡ç©O›ðéçÊyQ©h^qG¯2ú(ºoˆ©×GýÀ²‡Òý iÇ3ÿÓn$'ñœi ]»Ý˲ÛÞ¤ù$.©˜ôØçR®¾£(ìún7a¯5î44ù„¹¡o}·JöØ·X)ð–ˆ—(FHûÜ[wÕÖHlȾ£ s“06–X¿—±K¨YÄfŠ~¬1ö²W y ÇïsÈ,Š•ejb*`W_•ùöŸlÃ8ƒ¨±xsáÂ(Þ2áÚ:°ó}8:Il8@Û²ÍË—9†¥3ÑFÿšÙñ0[f :L(vð’êT‹íRß+®¬DÍa\³ô\±à,(wcNùyg\*„„‘Åv3;×4yÍ`ewàŸÑ‡·%Láâ‚@Ð?ÓæžY§Ù+\Ž%¾!*€‡÷Ê.*ÐÙ”O"ý¸.ìÁ/…cß=´]TÝRæ qâQŠAò¹ íÙÏlý­Q}9ËQPšÂÕ­b ?³Î>êþ-Õà}ÄGïtM.È£ºCU9¨ÍOUn°î‘ ÿîÈ -VóÐ"2œƒðˆÄ¸l 5Õ“#éûƶ•.Ä·U6¦v‚÷N€©3 Ñu¥Ì¤!lV` “·=,}lq¡Q¸áÆá_×HÍüÔÇÖÊ‹råéÙ[õ–ù£ó2…~­•]lδ^5sÇöwççЦëJ„ꆊaYÃ0@ÈàSÃñî§‹œW­º Í½Ê -ôWxc7³:§h܃´¯R¾'"D®þZ€ÐÒë‚#/ý»‰ºúèó-:> ¼–ÓjW=GBœ§U=H!ÿLn·. ‚g×FíZ»‘)‡Ôª ˰ª'×Xh:[[D¨à»#ŽYþF>j„:ÒWå =‡˜û‹ÅXË+µ|1•ÉêÚ•7á_RñŸ^óm0Ä] m'Qð 2cŸ'×–¨Ò~C¶Vgèã™Bz7 β„óþíš¹®!‘£äÕøME÷Õ ¼F1׉ŒQñáŠ$Éöç (¡ÜÝx0ßt²~ËR~äpewchÀ/±{HfI‰w ÀÒ;ŠÙ1lœ/í NÆÁ¾¡Îm%*wþ­>D ¦å³´@/9 ý™PÑÖY"–Å]ŠÂfžéœ3éoWR¾M‘ŸwH¸ÏÝ[ÿ¢´‘β’ø¬8VÎÓ3œ4þ«z 0ð ]9<1äf¯ÁB*eÖÔ"ð®Ô¡‰ÝÑEŠFdÚ­u`r–e?Ã`ŠüE×ëNb+kú ›óÝ«lŠcp¼¯K#f(óÔSôs=»ËÙéH…ÁÑÄ¡õɸ_A1ŒÃù5Îå;ᨘaè–n–Üòõ>T…Ÿ»;i= ¢ ß¿ ë0"Ë÷1¢^l'hbÒæ"Ìú¤Ühò¬Uó:w~â²Ô3ÒæÇr6=’‘GGM>Trã©B{ò›Œt\+è _àZˆÕ „Â/¯ñ.+=úw´5kø(-+hBì›ÉñO_3T‹$$~.=ƾ9T/·€RQ›Ç6 È_Nn‘:ɘl¯§0L–¾=‘Lÿ§e8gã]õaª Ç$…Hç,Qewu6òŒ–Ó,ºpïÕ#‚ŠàWêCÚ´¯Gø¨qæÕ áRdWgýübQî5)ã#ääJº±¹×"XO\^î9ÍoÌ’ EÒV5¼ WVwË(FŠšÖµmke ©ÈþËÛ¢)Åç"‰¦lléü'ßV8øšø3‡Öt)¤ª«ØÛɱŠ0«ºÉ!Å\"W¯ˆ"ëæúšUî5™–õRúwOZÉ´lÔ¾üVß”õK‡v\’ÕÑx\6š¯ý l< «â‡¢žÌŠ/n˜ÿaˆH+a5gˆ‘½ý„´&ŒLM4/rC˜B^гðÊPZ=*dgÓ»ãIÑ|Ì$@¹Ÿ†ŸJ#jËÖ:Nk`†¹\øb‰îÕ¬¢ýÓ-Žù˜{—ó‹»ë¹ìTbJO×L9ö-mJ9ã,óŒ~´ûŽžÀiò„¼@õ“J»Ô?’º‰8ª?%ü6 Ÿ¿ÝqÊbX4%8‘ÓŒ•!œ¨àÜ¢*yG–¬òaƇ1ÐVŽ–Ï—ÒdŽÃþß\&wÍB{ W2›2®ÖF‘bBC&eW¬”·‰ Ã3Ò³Y¬À,dz'ú}…t ”ÀX¤U=îüy£ÒÕIJ1giÊ :š² œ §aRº2‹2P²%ae³“¾OÊY.+Pý¦wª€å6 +ÛÇà#¶íõÒKÜ8~\ÈÖs¿E},Ú°|`—Î™ä °îe±œ†„ž².A—ÈgW_›eÊ“–PgæYU¬ª~g‹ÆÙ÷sÂÒ© W:¥¹ðü‰ù5½#o Ó¼ˆÂDÜôÌŠœ€ËªQ« 4˶ (b1rÉ›ïXŠÛc½¾ÌLŸýé"­gWã¦ä¸‘[ùÅÝП뺬a…¤qçÅÆìä©U·×³èë+ä]ç[(Nµt^<ŒwGîfbM Ø«}ÁgHãÙVÆùðвêîÚlèˆØ€5z‚ g‘tRw Ú]œásÜ5:"b‡þ±‰£ꪄñ=𡉢¸dMÂnå+  ùVù{ö{¸ê É~:ŠÆA ñ)âߟI ¥/ýèó}BE¢pÙA.‘+#Z0Ö CãájÒL*à[ä”!iþŒ`8R¦"#ðô̳£ëGq]žr&Ò³S̰Y¾£¯â{æ—eB½VUðD€.#Ñ 2FPC–[z””@„KÍ”ü$<–¥BÙéEwê]¢2þ@’gŵž[t*~-¯†”O¥¤æ©ENGø¾ºd‘£K8aÌ%4@^ðäãÝOˆ÷¦v ýó»ÜiM?–<|ð…'_"½Ü,^øºæÚþ ^X¡$,-¯eé„á”î8°óÇ9­ßÿ išH­Œd®™¼ªè®#£r†aS‘µ› 0‹ð°¾|z™/NÃXiJ &-Q@óÍ#ùb„2¡tÔŠi›o]úZ#݉)¨7£×!ˆÜô¹{µ ÞÝ323<ëÿÁLç4…«ŽØ2›ú¯dïÏns¼øÅôoöøÈNsÖE¡ñ•]ë@N\/!#” Ì‰½)ݯ}GŽ÷CDl)w±ä–š­ªGÎîö˦LlH¯º> X§¤ƒ˜ÌÜp”A:ö’øKa`èÌóYPÇŽ$nû9Èž#Ì0G'²ªšçY„ý»&(_qo¨DOïv0bÔáÞò³~q)0x9¾& ëîÈ`¢gßAgùn{#ÐÁRÃ]µûüj¨ÊxŠèNìFྶÈ2žÞOäaC3¨¬S)ìÓA(ÿ0òâíh@†…wx»O¾î´æþSV¿àHÜtÍ@X[ƒQCBH»„%wsjNé/ÄYLi5¨š–½3×-uI®úð¯ŽG-)p#6öƒ{ϻؕ~i*ó-tgòҫɲ°ÌöE¾0Ža6Z–+ŒplxTÜ„ •ó¸¿JH2"¹¦³‘ƒ•è³èì»×=x†C—qªãEd:§Ö·¸¡ÞàU±éœ®ÉêîJw˜bÝyà÷´}ÞííÂÝq<)§Ï¿ÎålS^øoŠqù'ÇÔ/š¹EªÔ?ˆ>yKÂÄjH¥ÕXÒ-GÕÛk#}ù‹wj›€®\õUá‡ÚÚY‚oèÇKÊš^ìFçTÐé0wÜ$y Ç3´:Z£ïò¹5b˜âl7)÷«iP>·²þ|ÝT¦KhM¿Òî8ÈpuøÙ$GfY¿6® 8™µjð²UԛëbóÜÑÞ’'SÎ:°Aƒß%2Òjà¿E¹^äâãKxpÓCß+9gR7F6y“œ·j7ôüIÿåÉéB¹½©Iz¼Ü!p'54B^6õ»¦æãgßXðÍhBÇÖŸÒf«"³´ÍOG[¾ŒìôÎ_›°ÈQxqY ªV}.Ñ-mœ6‹jü„.ÝÝM+;w\9¬ŸwúÓí1kw(?z=ec‰q¼8KIn¤-,ÆÂŽÞDÂ!šÜ ÞóvÛ[”ø@¬ZK>´²þ窜¼³È&{)¯{ü ¶7²®9Þó(¾Y°¨³‰˜*,Ȉ<ŸC£×V‚ ©)ø{]z™Â<,oèQ¾x=f{lŒ²[ ẫ§é¦<Ëî¶Ü“~/‚:Gš§ª!uÂ&û¼Dmí&~ò L{$݉»,£ƒepqsð-Æ>µö~Ëóèùä´™Ÿ¬%k+`ˆ6jüSƒ”«JžØ}™à{+*Gk¡Øm.žzÑÁí¤ÌÇ;îDñãœ*ð’µrçÚì¡Tb])ìÁ>¨/̰ÈìlþL“J¨÷¸NxaíFVHÎI0)fT^”¢¤ÔÝ@Ì:!8ØmO›=·úXç‰õEˆ¶ ¼Ù×ÈÜðSÎËyàåÚÑE8^yGê(Äß9ͯ6Xj㥖¾®Éû[ø{µÒ4¦ˆ[Ç-”@Xlß{s ÅU~sgÍÙCØ sþI‹xvÅb唜ÑÕ’E]qQ­áœßXÕ·œ¦þ¢Aß)¯ÓŠœq¾FÑ€ßw…½÷É]ª‡ˆà¥€yŸX >@W¾'ð†éf ˜½ÙLåÎ'¨ò”†xæÉ¯c ƒmöžOÖn \a©š)˜šs‘ÄàB!„±«-4â¤K¢;!¾ë_ξ®’Ñx±GRüv”™³œº„-þ9X>œ=ÐfotrÉ;™%ÉŽ†ÅÐg…@XV=¸yÿͰàG,$¡F þîøÕû8¤…­sǚ袑d<˜ëÆ´}4Ï2b6üÀ’#–u“dØI aæ!£êz¥—¡cÖ”â¬x –Òº¾}ËìÓ­Ówý¢•dáÛQ­ èOT«[arÆéóÆG«ûZï†Å²-¯CÂ9jöØcOüò¦œ´0‚Xi¨P že=RUS_þÍ­:I5˜³ÈèùzB)zoÆH0,@È…¦Fìrë<{ ›.”ú_¿+—!A;ûóýÈCjaqÛ‡gÄbÆ9[µ` %P§’dö §Ý¡Lt'ƒ÷€üF‘Œˆ¤bE‘štåµÅ­&K©kÑ÷Pµ¶×·Ý·ž¿åiW²‚L·$ú_áµw®û ©ZÇÛäô*Wnþ¦wÍ:S4 ýÖÛ)®‰$…žvu¸Øúñâ•É`A|V:/iÓŠMÊ40̡ٿŠ>³«ä",øÉ4_˜EbéÄ%£÷1šblÞ50Ù«‘Ño^ý³ÎÁ’WQ•Éû³vŸÜ¹œ–}i1Îwþú]šmóme'ך™_½ÿ†ÀB€Ê¦T^òèZ08*•W¥‘å›m6?n0NÙ»Ž[&<ÿåáß=Îd   ×Qwâ*Ù¶ÂÑ$K4ÎB¹+Ñ.QôZÇ-~.Á6i)Ò¾/(2[råT=\–=Ç9Gˆ$Òÿ—§†¦üØurlŸ-lfÓú³«æ¼ô'C ˜ß§b ›‰²é;— &­‚þˆŠ—d£kÛøÁ„íööYÉÚOiÿ—Ê#äp~–|uXÏLm!ýëÞížø¢ôƒ±úY7ß®>F¦?oGf½O°YBÖ^!q÷²íîɼºþ| ä`»¥\Aø,‡Û$6dÈ´¥ÖÛc䪅›Ï·Ÿ‡ G|ðïƒ*Ž'"—Ašp(žª®"³(µ'\ú«aRÐ9A£Äa¤I$ì¤25‰úP'@ $:NMÆì~‘º¿±8IÿóçĺHZ0<–‹³"¡عâz#:r(%7±è´º'÷^eÃÆ9îÞÇÌ}­œzßîAÅôÊ·Æuðö,=]î¹H˜Xæ½)b>øªè ˳´G€§­6Â1Ëïº[áðC󌱣^ŸõÝ$ÿqô6CáþïÕg³’Ý…©R˜OÌeÁó3¦\© kš³HŸ¿p‚wi§‚£˜k,ûÝ"G­4…æ2~Ñ‘¿!“Â$y™ô3ê×MȶpC×mÿëÚ±’jjNŒ[z9ŸWó®4 ©7ÉîñêT*è4þ€Ó‡êòŒ»dבÚA±üÙ¶QßþËó]É¥6Ö %ÅóP›ÌÉn#b§"ê‚vˆÙÍëÒµJS¹òoØðX'6½ªˆhAlžÕ`HLg)8QOÀUˆp*œàYÅcÕ«:dé¨U8)½dU2’Óè£Gdz«Ss÷$ÃGl¤Ýã¡lS:s¥HøvÙASû]:1%¬Ç·m5ØtÝð¦6î±â|¥¾×ý8Åô‡é8¦„Fäî…rD«„¥lpG†P®ÏŸËçU({švHS3è±iãK»œ¸Sò<^1aÆþt€Ž÷ñ°ë&LœÞýñvzÎf5¾+ ⳬ~B7Aø³R4úŸxZöþÉðæ¿´æqCðd÷03ˆÆ¢þ\w©«PÉÀ¬·~L$œ˜ •=EÙËý¹˜jx)upˆÿ›nW\¾ï\BÁö°Éà¿Ð„aO&•¡sËs³ØëÊ«½&Þ Q”¢8ÏŠv“ |Óöÿ›µ6:e{¿œ)Qöwæ‘Î26Pdvøn2Ôé)ñœ¿îÒoºïÙÓ£ãÊ0¾˜ –½ç>³o³D ¹}¿Øùí ™ÎãØH¡&§ÖÞô2j&˾½‹BŽ}ØÐ 1Þ^Òt¾çý–›àp?c«oâ¶r]Ž¢Ë-Á„Â&öD@¢ü‡•¨m³yñ0¸òM‰è×!»šË~¸–*Çg*Mž¸ºu’÷Wƒ7c˜¯µŸ0üþAYª…!O&µ»>0IØ¥ÀVç"BÓÑä,ÿL|ŒÛ§mJs‚­Ñž%#–i‘¦p¦º~È"œÒ«5ê—x|šÑ¿óUŽF+¿,h`•ñwEé=Zó‘Zâïl¢¾U`ähu°Ôþʲ¸2£Éà){ɘ7v“CcnoãÌsú9qâFc’?5T¬4ÀÊþÔæ\à nfç3ËïnÅåŒ#Wh©ÙyW¯¹«†RTX´ø}È#¤ÍA„Þ9"m†qs—õb¢ÜRî{Õ+ä£TºV W‡§ð4ßï*©µÐÕ$[¸õnòô‹¬—¿ð~-³.Æ®û¼•¤y¾^ʶù/²K¬AÌïâÌ0ÔB ö×úî O·Ñ~”tïðÏ‘ Cˆ³ÕIöËé‘sîQá¥ÔäâøÔŒ*úÁ< èþšV¸ï-ë¶r^zB"íä*Õ=º-e¡EBÌþµRà«sqþeT'ö^ñ`ž,#ÄyU¾ìúÀÍ™{žŽ×D¾è_,ãã·Vž~ ŒEˆòså²^~Ý™ˆc¾¤3*wÚ¡U ®^—Fíôº> £ùNŒr¼^Fôîù"… "!„H9ÏæÝ´–±i‰Ê÷Å3U%[Nšj3#S A +"… òC:Y‚:´'O|ÿŠ âQóGöÛLeÖ„ý¼Xún:mêP¸f]ÎDÑ6ƒ1T<õÐ2¢sÚ2ÿÅtXìƒ]b,˜9<2µá·£ÓR±®«Õc­<—±×@ÐÇ{‘âðý?Ømè6{rjÄ¿ƒ«ë_zµµ¢Yý"£˜¬²ôþ™Ñ4 §ÐÓÈr³]œC&D‡Î°î´#Y×ÃXÅoÌcš©Í+îxxi^ÈÛˆl…§¢ûF¼Ýè6—ZJD¬çúé©·òß=DÃOŽd;S7.Ïhx4'à WK¸»Ãý—ƒ¬üE3á×ä®3Óú×âíÅ‚íM'„UM¨|Øâ`WgQ ­¤6L1ÿŸ|Vaªf¤Ð‹Z‹éÆö¤g÷ƒ¨¸¦úý¤VÀP)Ê$¢¥t7eÁ°Bc7úau#O"e ü/<÷;ý·k‡MÆh>K„µÔòkÌáµ»UØ®—¨œía¿îí鿾“6^ÍxÄ8¨ÿ«’1¦âeƒ²’K½‚|ó ~r™t)UT‚íX3KÕrËÏî ŒgUEÊš›£Æ‰0]cœë+pWé1A¼H P¦Ûb¡>+†/#QÇî9µÇ`Ñj¹ƒÓIiúüX5f}§šoŽn üt,F>GU„Ævt ~Ûžº™.@Õ¼‘Ç¡_Ã˱æ‘òc­*e¥ÎR(o’A"J_9®"‚ý‘êãf|u)Û‹¡ÚÁ¾±"‘@Žc(±b½éP~x2B=zÛƒºOdì~à žÄ‚Eüß;ø•ÿÍ/¼IC:,yic*yb´+ŸórQ—¿ååO)‰wñìÔ$š|·¯w®?»RÐ1±¥,Ìv+¨¿[-|Ä8®µ77¿ú„žãÖÿ)`8Ë¥qœä[…¶&î¬ñfàL4\å¦ß“3¯©–µÂe½‰·ü|¬–9Çú˜Qí{²`ÝøÕ¢ÿÕˆ÷:j7¥m練ñRÉ_–üE qŸ Ê:òIÏgtÿ…F#{€nheï´°|l »§«7<2쩟Q 2Ć ö¬[Ik%3GIDïöŒ‡‰ý;âÆ,l÷ͺ.Qa¤EÝ-–)žÄ8Ú^ÔFËfHXÌ>B165ÔE™(/‡žw>—šÞ×ý4˜ËDûðÜ+ûÈÉšÏhI)$Ø“ùˆ:R¢UÛÚÞÈ-køÓ‘õ÷äÔK­£xu»!p÷ç³Ø{±ÿúJ¥Ç…%B‹’1m•ê¤Á}SäÏÆrã®Û›Ä˜Ò`Xf2¯J~Ï08ȃ¦ž.ÎPŒB³(—ˆ*ƒÜ™ÚãÂà)8ò^¢6ÍÞ¾j,!1é+ýNÁc÷/m'F˜¶õð m®¿`×$;°ÔNÿhK—Z4ý¦ÿEXÂ$¸”ýÎ<JûJ<¢¶ÆùÖFŠ gfèp6õ0ÆWUÕkãàÿyÀ¤½ŽéqÙ*\wÃæd³®n+âê%+~âYÊê|ë–S¤=…d2DkÁg+Ò×ûé/–9Ÿö÷ÊðÞDoÇX‰+¸-Ä,²Vt|VK©ï«K¸\Æ>d~F·q!MEÁ¬×÷rµÿÀ ä©¿{ggx“$¹ÌÁ‘Êíxƒ¯5S¯ßE¤ú%Íè]²?ëLª¨ùêkÁßlyäm Da ¶©.@wö² µàÙø1¼¦)еu"Z\L™¦z¾½šÇëW%¸Ñ¾üžæÄCR¹ÅROÀ¾C€I]ˆ‡•MÖfIÛiN“N^]B’*CÆÈ•‘rçĽŒÀm×õ,’KŒ’;>$‡LÕMz7ˆ~é9Áb  …ˆÆeêÓõBåÑdÊãã~Ñkúò#®rgQÃT /*ev)Rp„ªw‘^úäloåKõʺÉr—M¢ËÁøÏgŸñé=,D<Ùê]Õ£·Õòe¾½ÊLX_ÔùµúSUFkÀª@O‡EãgªË2DÜ\›õ _Cç–^Ñ[x¼+ÍyÉzëfvý›;Æ'E%ú9U¬ç£Œ@|m—Y¯&[D@§³HÏžÌ@$ðµÔÉöª£¿„mzî9=/„ŠC4Åt­¨sÞ[³¸[ŒŽW” ŠoÐmà lü``ÄÖáQ¬¥¸!4**öt/pZDä"'k˜-«Ü)vå”Ö—üÓØtré[H®颤Þ-?äêÍóËéíÝí{“8>N"\„‡&´# ¼YÔ£Áœ]Ë¿6n/Òà_ÏTÎ`ÊóÔ Ì®_•6l¢2²S5'šž¦«à^)õâ¾ì^ÿ⫌í_³Ôìgtì‡756®×e]=ÎdÙøŠŒw#Ön•úªlFÊ!œX—ÝÌ{º¡£q ª8[Ö2ŽF2—¸|3’êF8ÿøU)•O [‹_<ü”°²"°[¬;i Ó€¹gp½zÕ[-w¤¤ƒv’– KÓ]–|ŽuÕKû …8HäM0O¿T'ÎÏçz?X& d¹–þv¡*¸WFŸüXA ûЯɆåî9d§]t: 6.×/×Q–„å2šAlÓ‡V´ÄÞ[€è(ÅëM°«kôLžÏ°kŽMöcaóÏ‹>ˆh`=ig>ðµ/àý):⢑7ÖÿPÉî»Ë ™K²Ö!jÅò=Ð lH®vÕë'캮/\—ë2‚õE°%t v¸Ãæ)¦Mà¾B°Z÷Áø 01óv«¬¾* —¨ñ w¯€Ð¦ÄÆbxŸ‰ ŽHbÕ ÇÕÇïøn½ÕIÛ˜/ tó&àåûÕëÍð’bèUmsw]ní>bÛ4‘CmÁ˜dºdc®ð„{Rëüñ¨mð’XJ“QÜhi8ñì‹W>çÕ›ûë.úiË{ÃÅhÇèvV uÊð„ÚL»ŽzcȵyFmZ2·CÙÃ’à€-}Á;qP– 1 ¢ÙU êùî&ÙAƒ¥”!;*†DÚÙqÚ Î“=ÐbR n8LXT]šÂ j5²cI:!ä¦tI#¬DÈ-TÓ/·KUUT`•B™PSÈå%„ìéRrÄuؼeíOú´IßJ°ùtéµÁÕ/\S˜~4BH\òä—B¶M£i}TNjüø’Y¯[‡=hmH¿'ˆ³F».<Ì??(Bbl‹÷¹q<ï\Uµ™ÃêJƼóÃxp°De¬$Åj¶úÒ¢yRG1Sˆú:ZZ/ÝFžÅÑ‹:›ë^cÐÀÁÝëÌ’¾çÉÚ+FE+…$ˆü.O›$+–– ƒ²ÿF§¼¼ÊtQµ9õ¼(ÀpfSW¦"¦x…BÅéuc9.¸EH/½X[ÿsEÉm†-a¯OJ2Ÿ# …üBõ4TËôÄΑÚóÄùLn‘- ±êÓzŠÉau¥jlk¦„ (ƒ~<Yý:,Jú¶%ål¿+®( 9©²ÊQ'&ŸV !ݲég¨4s£û·h·[´) ƒb”î,ƒsc™uò+&ûq¸°¡Ë’è }"·EdDÙqT ¥Ê´š²uâ?3È,‡7Ëfe«T1t2  •O(õü^Œ§ÑIƦ„‚—ƵTÚ]7Üãé„»œÍýítÊ|Ê/c쇊®¥?p¡ûJ+F˜ÑpÜëÜ3åë!çð¢9¹âÎUHM0_¼–heyDë\¸*•NrÌ` Ss׿àÔñ»b†c'h×ܼ|¼ÛøÓO—NìÁ öb²F„É¿Ù=Š*Îé:>Зb£y1¬Îlüým¬G¿éÛjÏ7à·]¡˜§¦— 9ÝÆ®®»ÿŠQnCQ¦ݪ$e-q;Q¾gg¼w:÷ Öò!ns²hDÎððwøíðAEZ7;]ÁÈ}=úø]hlXc?î"ý‚(µój —¸n{<wÁ„å?Ÿš².õMLr£ §<6ÞŸÚ¡p%”„-˜Üôgÿ4Sñ[m<²@,Ì3<ÒaàØsÐÇþwÿ,-¤ªnˆÃì¢p{mUf-$ôá2‚({ô9ÏšŸ!1“ºI2¾_CRc¢³½?¢³à$༼7‹dׂ‚ÉQ 1±za\HÉ«ÎyÂ~t»mŒÂç¤Ûœrïm9–d„ï3ÿ´vL]Í¸ÉæTã…Ø&Wÿ ¬¥àÊuäØn2öœÍAp4”ûD~ëëaòˆI˜ƒV]}&h¥„‰‰ÿ¿ß×½ôvfØ?X¦üÿxqºmعݖ¨B/΢&㨹çué­û=¿Ij™ÜÉTBÆjÚŽh%Ô"™,iz¼ž°‰‡CªaÂŽ]t5SÒ m_;†fH·W8¥ÈåOB7y°­ö÷à=®‡7ã«ãÒÙ†¿ÄsX”£ñ;¿"‹ß5AdCØ´€ñKš[öES|Fìµñ]F-µ¶ÈÕžëJåÿØI%ˆŸ7*¨øÃÜÍX–ˆ›þŒù‘›Ü-F•ò[5Ö¼hØ©f w£DŸ¸ÖŽdˆd>ðfïér›DºY]¡¼\w‡\2Àv`ËgQ‡{÷á²®ä\ßõ/­ ¹_pGÀ•#I­ùu>Ÿüú£.ª^&éò£³ì¶ŒHà·Ÿëdn8µr”JËýÕš®ºˆ+^ÿƈfÌ¢Þ‘6’r ÷ösäºø2vBÛ¨["Ñ%O&žv·—aÏ5ùÉd([ûXóüxõwq $í±ÈñâqÖ©·‡›áµ £èþÐÅॽVY«§÷ñÿ˜Ë+%àlÎù ê^»ªjv‰ „Hšk%Çÿ¬¨Úz¤ð˜hÏÚé´E8¯Ó»xåˆ1XñµÚvIÂ@ÏúÍËð3T_•_§˜ïR«;'¬bH9p²ò3dÓ=FøIç¬s:ßGvâPm/C­°}‡ SÇ–Ü¡§¿£–ˆ»"*º<Ç¡LÃçlRä'wÄ6š¢œ•T‡E†rLVÓ`œÎôÝ¡6ø¹º'ïL…Që„U¬†æ­Éœ+9P¿·þWhLߥþ,²œë¡1úή͋ S½!Z½À$èŒ7¼AÔ‰ˆ+L=ñßYIo…Úpµš6sÈå*Nº|ê%é ¿|oWcþm¢²:Ysµñ¬\$t ýbk‚–ˆÔ^ëUMÿϨÑ'‰RìjŽôÒeý%ío;C;`ÃŽXöõ Gû}²¸Àš8ë[ö)›%憒?‚Ó‰%Âb¹«CÐcbI©ÏEEу'ççe% YgÈÁ´hÔˆu±?-ûrd]?„U†7Çyƒjd= Df3ËH¯oxÐÃï¦É2¬¢‰­Vò÷) Å×Îåš”ЯqÀ7Qä”Ë5GNN4ÈH’a{ŒDÑî9ß'ŠS8ê…Œ¨"zD+Qxm&¢ˆÒA¯­›!F ~ÉøIöKíÚâ¬A¬A.Z%÷(³¦z.Øw|áþeB8+„LzãÿE'zbx¨þ¥Ó(¬¸®–\BY-÷‚:Ä"$Mþ-²54Ì.-ú™ 3íÅ)—Ö›N3ÎD,òÑñ–w5 eF^Ìð—ÉPÖÃð¼xIh^RE ‘Ûgµ%ãþ¥¤â¼¬„›Gåv¢¯Äñ¯ò@Z(.QÅ ²,ZŸMc*‘üÉÌòëønáN¡É¶ ÔŸ~ˆî*W8qQÀ ë³WsÛ 3’£oÅÚîqvônœÈ`ÅÆû&sëÒS‹8SP}¶c>æž”/æ2Ëæ¤oÚRïÌ ï&p@‰,µa±m!‹°äy£d‹ÎùNƒ_€eBpD[©¨'AÂû•Yvå}bI»Aàá”ìã%ê‡J–jÿïR÷ DÔ§ßáå!ÆuæôU´‹´”¢ÅÈŒš,õðq«ºk_?o" Â¥¢Š³÷Ö÷ÇLÄG‰w¹ž·ß)mEb±8íjnæi"±^’¯ns0Ø >’ŠÐ=²)‹xƒàÚ%U‹}úÿR«HGL`+NW.*×ÀHΧ‡&~xoÀ< [ccõŸ²ÜBlÎwÈø×í…Ϭõú¹!¾Eø¾ÃY¯Å’W0Ô%û8Ì[º®ÂÎß¹ÃÌ5ËÆ<ôÓ‡óĤ>ÛQK£qкì²ÒÜÈÞa~/+Ò„Ü,µÄ”ÌþÕ¾ÁøÿMÉ:dO,ÓåíNM(øKg•67¤+}˜©/‘hÐp‚ê¡|Uf5É¡­„Vv0E{jn¯`º’Š•wÅýþmpQˆµè/˜QiÒXXÈn½¿ü˶ݺ®?B'‘L¢º*ÂfQèì~v”$çè?™½iã¦ZvZˆäÆ|tÅý@ú'¤â"£tÙb¨ïÁ†îÄ-ô‹¨\~´¿?u4P¦6ödõ»Ú"¸lºÀ +¸ N¼a!]ï¯ ©ÆÞ7TåE£nææ¯ï8š $69rã%wbéd1»üÕ•kC KÔs÷‚ WrûöѸ> ° J1B¶YÛ™)Æ€aèq ‘@sø;°&û)˜XùçOJ¥ìkZº¦c||þ´ýÒú7‘PtîÊ­ªN)ù•Æ5ëáQE1¼ÞB?8´ûçªÀ2GN³ QþaÞ”ÖÆÓ/"íGC‚w’cýˆÅÚ£#[¤èŽÆd‰âïÆï2¤·ËB+”Êïà=fðE_î‡Ítu;à„üÕ·9¹Üæ.’e|/ŠÂ)ìÆÉùÀÃØ'=©o5 K7‹2;Tðƒ¯¬ÆÂaü€Û«n÷€>ì­d!zúà›vÐíÿ\˜Z‰ùØK\mé€ÜSù{„`ù³Ñ8å¤×YóÕ–§®è æÄg%%ÎÖ'#VZõ‰ô/•]Çx'BCF&„¶ìh(СFYÌ&ʬ±„¿Xÿ"éÔÛ:õ[×;§cŸ* )6J.«þÇaœ™a|ò´áñ€„^VÖŸaïwüüÇ=^ ª¶fw³°±*·™–‘¯¤çÑç¢Ã¯À ,Rñ;#2Û¦ÐX=ÍG±÷ѯÈDf¶\½œÖœª;÷Œ]gé—e2þmbç ÇÆ¢êÆ’yëG¹¿…jð…A7-9Ö…}#‡^gy/`Þ6èg㔳Ԛ΄)¢Á„þÿ$DcÀÚ!Çü± PëÐTÚæÐÚÇM<ó›3ÔgÚÔ?J AB Ò™PjaЩJùüÿJS’¶;¤”¥lÊ4·eRhI½°¸˜Í.g/ô¼È@de«ŽE‚KrgòÕ@Çö¥S2:J ¥ç®pJóåÂs–y²ÞZfÌ‹¾‚"ppôç ¸&®‰ßvˆiZ&ÉRãÌlâª'!‚‰7g2­–Jý­Z¼èú=s(p#cKÁýÒ“Iqò>Áiž¢ß’,n–‘¾°ž¶ØÏ÷bò)° ÍÕ—Ô‚+®¿ ýFÑdçk¬…YNÊ¥×k©ÜÏ"Hª„%A0ÍÏϳ™#@V5:$ó÷­5ƒ„ fMÎGêDºéÇÖÝŒ:·[qZ rÜÍA{nóT?!r—:‡B›úDª_–µ+0¡|…Í»eÈÃÆxˆÜQ j‹Ýº -½r»Bmè?B£f€·\Ù“ÄŸ­°Ù¯¸(ã«ö+fpS5*$Âl؈ñømÉITXTwªdòc+»Â€KBæ¶$.7å›qSœ‘óýûŽÞpvQu6Õ.z7 󯯊šbå ÉL]ˆ!ÝY:TÍ7›«ÌòÖÌ9JÍ¥ÎOÜ_»F0`ú!G'_¼\™Ä%<àéÞFqÓ€9, ì›™òËx+VF dnÆÇÜÄK‹ ˜Àhoˆ¶c3#p !¬’ªWß„aù‡èµÝ) ˆ˜c¡3É÷ƒd ­XCHuÀƒÆTžh!jûÿ}ÏÉXaÊt¬Ò¢ <œq TÑ¢e"ñ¹­£œø¥ug%öõ`U»¼=Í4À@~&æÞâ`šÞSÛÂD¡¥IÎôΑÖä˯™Âr]€iå`›ÌMçšK¯+a)ø ­‚S•kãH(/]ßzrÇX8õ6  ñ«ÁQÆ©lض£_—vüÚMŠÔLŒe²û¾œ¹H ;}ÕT0aa™G©ÉÇ~=xhìT^¯›Tiü]Û$0ÙOÉ£s”. úÇžœ3ÃŽ¢óNk¨~:IüAT%1rWX~Õq—¢DW­ ÈGh— S=£°E Ÿù/6éØÄ›Y»þÙ´SU‰þ¼÷¥ôÞ"”ñ¿UKdXž”Ú÷sw‰¿»“žC'Ëu­’.ª9h=9mB·6%õ:oÅ0ìC\U‘(8wœ[k{ÂÀrNòq›ð£KVSÃ\³k‘sËSâOì(1Ý#’éæÎ(/ èSòÚ#Vz‘W7 ¾”³Óê6þÏ ‹¥vDxÙ¡¾í5sß¶.p>þd²Oë”»DQ{4¬•Ú'i¤‘V¾0ã‰ú¾¹cvefciXœ k¼gN5·ß YÓ~Ät99k7|¦d( &ûkâbón¨<XUw¦)ªÐŸ ˜ ð<—@¼äæwÿ@& ÆI=¾‰BN`=¨O¿S!.ðL”šÅ“}3©%Ž<æ[аä q3Z2kä‹u+üžw}2MáÍ$àA ¡ÿæ—­g-Wò@­™ß“k0r··àëƒÊw-HðPX³ê›‡ú5,Êì,QÆdlÓ&ŒÌf¹w,•û¤ß/Z.’†CéLݯŒ^ùC¯³Åî’c«Q«­“9ŠDøOëÏ^7У4*0OZIisRã»S”¹V|ÃÃÁpÞóQSmÆéBõk±è>ü·͹ÛÁh Ò•çDŸBfæ]ᣤp ÜFf¬)®[äRàñP긦›à@o|¸©˜ßFá Q2@öº¼Ùœ.–}ÆÞl7{a'Ñ–~¨–À–’{l$È[çVq«eÊboÉ+,F´¸™ìheŽsgìuÅF»’Yt%éXÔÚ}ˆ€¦& iùVá6–^‡gk+~ha!ŠÉÆ„YMQH6c©]k€­)&`ÔÔûÌ«Ây#»š½×DM”Uë¼’Á Ý}Wtèb§«øV.lÿ¼+q¬¢i}­½[+2åG„Ë0ƒ/ä`ÏYôê-Hì#Q$ÌÒüù´öŽÿz\@š?jáñß¼×LÂF³3šuœD9zaXMVdž˜É)ï!$¢Ïjñ)«ëËõÈÚÅs—RáfkοiëÁž{2S‹ÛCY”å…âã P1%Ë] &Pìr ÂHÀÔÖ¨€Eˈ`à‘m½JÆŠ$zâÊmpÌëOÎy\€™v¢oÁmà)ÅÜݦó¹Ë¢OGБS ÙYx otLœÐcˆ¨@6Ò®V¶eì †`¨¤{ÿ4zu9V«¬3®È'ðWýÉþéÒmù˜q ë¿<¾ñS¡ QJ¹¸y’^2ùö4ú±¢Z°±]+ðC]d^Îgʘœ¼Ù.›úß•u¹J°—:[×5s†8XxGÁå”-`ϲsüþû±1Ý^,${¬¡CɽÚMf‰Æª‡$¬ÄhtœOŸÈÏc†A$aº¦ íåîk,:éµÝçÜ6r…:= [rŠ “a“lvð?Â\5½sÚi&#Z`C}íìÐnIÃ¥™ÊûY—Õ§‡Û>²Kðœíj´N¬ Hà èRŸ^”`èJ&û2Â]ïfL’ò˜'»›÷P]ŸG D*%íuFÔÿôÈr¸ŒÏìçåünÌ\%$¤9•¼ qüî ðåÑáYHLb®µJ`7XãYÖ¤4G¤G…fråËü2ИV‰õɤµ­›e©õˆ±Šƒ7âÔÉüÅUPhŠwŸþ­x"ñ¢†²›}EO" .c¾R Á â3rêTI®Þ^:Á| ô OŽ%³³¥°©àœÒ(a}ÁrÝð§‹™ K0·ÚYôy®jsöžMî@,ñͪô•g‡”+¬%3´hÉ&[®)¼¡”4ÿ"Ýe½Õ&|¥‚¼µ±³XÖ¯CÛ/À£þKá£ÐÕ6[ÓÿÈW²'~vW7Ítà{Âþ€¯)¿™æA7ÐLx~H½‘’GU&6ÙA%»Y_¸£œƒFbì¨Ï»5滤×)ÁŸ“sÇkßÏ(Z†mcâZŠ£ñj$A±÷(Æ\v°!Ð󡲆„K–l-†\ªñ«°ÁsÍ*Ð £y:Ãò"vßÿ‘P¶û¸éóÔn°ˆ¸æ9XºY¼ø¨òv~è$+r= -™*A…Ù#  þy 2`_ì»Õ²'z äkœ/'P;âktrbùðå6m˜°dÆ™%SÂ̾ûó©ùïëm„Œ÷>³®'Sþ=î³ –< Û5æ.#à¢Ç¡¸1.4&Uo­@¤‘Ô[iqà1l£Üs¾l‰÷Ñ Y¸Q Wº}-G»‰øÏ…õ+©«—v'+3DOÚH}ÝÏ çTç«ã‹>³ñ æ{d¢…¹Æ¨ë"(³ä‚–;¥ Õ6ljS5iãU ¦ÇwQ]k`¾äÔ®ŒìØêÁÑß¼ÚsjÅå^\¥øVJv!üg­/ì|FŽtIbÞpl ˆ­­îÅsÍÙÛ¾ÂÄ‘ve¡¢AÄO=ëõ¼ímáÅLðxE½J£-›U]o<¯ƒ©¿ÿTÛHC‘{wõ“M²Ñ“ØÕÇÅ xÃé=×;ic«dNû¾GõnFhÀt0µu0$Wa„”öð¥VˆÐ™þ;ÛýÆX(«L¦Êj*ÚñJA­1Ѝ·˜O? ƒ­Ì>¡ZÖ¶Ö×Ñ~Ï%SóÞÕ~PdÕÄ­ñ&‡ ›à¹àWŽö)É0m–£2j‚ÔÄ“FƒÞp“Üh˜öXÒ™£¢*Ï[/1-›“¦8й¡mÆîèÖy¯q”{².)ÛL¸ QíÉWŸ ‡†V¯í„r¾î´Ø ,>[-­Ì ³œEy7SwÍš*‹Êp/ÚP_Ap°T*eÒ›ùV¸ ºÒKbXTO´Ñ“Rwkò«°™#ÔŸŒwMæGBV¿òe&A¶—±½bˆpÖ/…•ܼ40Š“|œ0“&g½òGY?¯´Põg‰|€Æ4z¡™…:Œ´(#V°ý#_'–ûài“¤£¼æ²~Ëᨗ’ NŒ´Âõá.š‡.ßí“éoxÉÏUÅÀ€¨üCµéø¸OŽ.Ù_ R%AòÍËÿ5H´PØå潊}ç‚ñÿ±ÌlÊœï’,žw1óÿíÏìh5Qk.‹i¿¼bÓHþq3 ,}˜@`±;Åm^¬¤G0f{o¤ ä/îÃéY•À±/;3äï3WÂ*ŽpÅ£xß›õ66Ƕ¸Æú4 :ñ‡Ç+›/Iꣲäʳֆ¶·Þ8]^ïá ÃütÇyªi{k†ÀÐZï"øU¡dþw )âÍi:H©µ@øöç½±%¸xŸbÅ0¿=/ß4~üà‹&ÎîÊ—Gíøã£ÉŒ!4ðšFÛX°¥Åj%œ‰Öu'ª—YßÍðŸP„Wó¹{¢{÷ e”ëÅžŽY7„ Þ)tY^úç¿âûæ"¡5šUå×þ_°É ­”sÝôDnê—îñ¿ÍãòU-.ÒÔw픫­ªîå¶ @[ä¯"Í9®È-|‚ƒçnÆ1©JOÝ5}žzõä5i@ Z “8ʾy¹ý°1ÔŸ˜âFP}ßþ.rIc«ŽfÇÕÂì¬k²¦ØIE˜¬É Aœø‹Ù„uA­rC䌬°ä–“‡ÂíÑP"+z^üÎ^Õ<p„­Ó5†ç.Jøýui š©ž—2¯RÏí묉í¤î.1ÝBËξaÍAß¼[ù–~îß36Œ>±öÇ5„IaæˆBϵ£­IB¾SçJ¦üdž¥CÕyZ7?ë_ÂD{ȧè7ÎW?õ†&ð¾ X-J<5zôER! ¤ä¯ž£WÇìªKÏ,˜8VÛêø" hÄIY©té³ü$^hˆMÝ=ޖך¹(÷&ÜzÃó$îZoÉÄô‡¼|ÍY¡½ÌÊa6Asd >0"×&ÕQòBóÒ<. F”² q e‘ÈÈ¢ú‹âÖQCAu¥Žœˆ•+²mN;Ã1ü& øN3•ú¤’yN)‚fõj¸棚aG£ÚúóV™L›Æ¡éÎvÓ#šz»é—WFËÎ4…¼I•3óÖJÒˆN ó$áÙÜtm  ¬5[R•ÎÛWµ¯ìõÒS(]+ky·ãw)õ‹ÿ/$—b3, üóÔyÚãÏx(H€!Í^h#õ¦H·58„16\y1c¸‹X„UM-ºí¢RH‹a¼¯’Žó-cÄ:K€õ·Ï¿»€ôÂïÚ¦½Ù™ÞÑNù'¢ðè?ã<©%‹ùÖ]æGÐGÔ#´Dwm›«‡³™¹ ¼p› ÉG[+§!X3ÇI ¨'º#±K”þͦ‚Ý$TÎÖ$t7 ¥ÎøƒÚzqBÑ·ÏS ßéÙ:$EyÔ"›gº¯müŒaœèþ_“mŽJEy·¥ÆÚ±jš af8Ö_èÁ5h,N¾¹` µ[ „xÉžö:3‹j™‹zVôì@^ï84fKNšTgü·³•Û¯wˆìÆ÷Ò{N¿ì•–“;á(Ð.wUèÿ/®ëޘŷ ñ³_ÖíÝjcɽpÚ'tO–‡ñØ’LÈÀÎAø%²¿Û’Åíb‡F&ùZ04sŠGŸðÏÊŸКó¿·;îì§LùCLDîì£+\þ tîɲë²íå'<½iáŠFKÖßì62QÂpb(<óëT¥ñN”Š71§nà}œ¹©^¢Æbh÷‹Àý§óÞìkÍIÝ+D²AaÝ­=ÄW]êb›«­@D†]AÊz`â)ÒƒÓU]lõ&ÒͥɭZ’sÚžYEØð CÀO‹k½Bàþø pŽÓ³j’o>åÆ(äHž<"k¤„µo$IÚ3ÞÍ¿çõÁÌ™†q#ìPä| °@‡õ…8ÌÍȧtX4£Äî| «ØEù¤EÖ‰Æy 5Λ]À¢‰AÛ8blå…ݯöfçèü$_S9B¹ Ð… õ¬lþ!˜5lNê Y¨àɈN b@PМTsÛ¯*§í„êC–ä{ɹÖ÷ßÞ¹—HY°©Æv§h®œ½×Z‡Ä™¯I¿ºh`܉jÚ'I»šš¶ú¨7P¦ÿ²W¾Eº&A÷+1>–Y…aŒ¹DrdÕj°’«1°ìw4âtº]78fLJ÷rcÏG"ø°ÁОzeQbÒR[§Á§!|PÆZyܢý$Ç[¯´F¬ŠèÇ›fQ%cH½ÐØ/ÙNîµ*³g'PÓ½Ÿhh.~=~F 0 ±^ÆA·$JP—&.® ï•d#$]Ã}Ž•…Y!ZAü& R;×öν>Ãoöf¡“.Ü0«â’eUðÈà´€Éj$Ó=/i܇ø~3šŠ@çüËú_þÛP:A1œRð?¢›t&¾ˆkcàµ}ÈOèÞŠÛ[Ñ`éáx~ðÁÔu{ÆR °ËW'VR®Ú¿7ñ/GS±ŒË6ÔLÔ²ËR¥0Á~NKÎjl*™Õ‹Ëþ6¸ÇÄdÂjòV–U7½…åÂ)XùÄ<¯Ú(±+J ›N/¬ý0`˜êËÃ=,RÇh`Ã’‘az—X~èyáFcp ÎÀKSñô°X‹¦·¸…ØUÆ}]2gÛÍ´³~1+”ÂÏÛC Uý4ÕQPY9Tר\742à`D[kb^[&¿æCU‹Ûz+ª‹9{×Rág´^…ß¾ç“×)ýœUv·É1¨t“e€œÿHG½!6Òq2}ÈTŽ”0/ý+å³!¾¯±T˜ÌRˆê¦èêHŠMMå&QÄj;q[λ_ÐÖ4á˜%ÝñÌëÁ䎄|j¾TU9°Ñðì0½x)ÔL=x~AqåûÝ!"bNƒê@i6JìÆp\ÁsÎ55ŠË,IÍqQõ«g\ÐR²‘žË²7ªS›$ÕXE¸Œ#Jm÷+Hþ1Ðï¸:Z`(€î¿‡þXZÇ”}‡…‡)ÒÝ3îù³e2B9‚ŠêØ×XUõxD׌å켸@¿Ž²%šˆäF—Çt󢹕}4À|Ü£00ñ‡. Û,e‡Y>û‡ÏOœðð²sI sÍ 5ƒ;‡~‹´å†È{©Seˆ·ÌUôI¶§t +Ÿ¥‘¬§—‚%FSœ€Çk5zžtC°Ù¶Õs£¼d߬ަ~ÎE>ç _2*=b÷xIŠ$Y¤JS3ï„¡‘Ý)àù-;„§ž äÏ©-ß.¬’K0¾?Låöè^²ži)s‚p ýÔxÑ > 8hê÷ËÒ¼þ§L“EpÆÌî™äü]6 P4„es 6¢N‡þ’’q‹«½¢é Ó©•kÌOÓœ8ýOŽ‚åxAЇõw×L£Gä0*°?—BÖÄc9ƒI"±ßUâL¯_Ñ¡ Äf5ÖX=G‚,`rÝèñâ“vNþŽCìø0Ô˜…–qôjVˆI… —'0›È_8*øcí0¶¯sìá÷ób÷OG)•Ê%å¯ö1)“/xÜŒí½¡ÒBeã¹;¹-<òObC¼™ ‹ŽÀ÷Í­9‹[O{çµkŸ`z¦þŸ¤å«i¸X¬!oZ€êa¤¿§ñµ×%]í—ìÝ¡zg³BÒçb Ï”t+XJŰséTÓ“”±¿úìú|´d ++4åÿ<’–­Öý(î-ÏßÊ'ƒÓ³ ÌÅ9Ú'3Ødÿ¼žæ’Ç.=ŒBêJùèGbů½Ô.é¬%cÙ)&^‹ýŠ m&¶Ë·Ñ·#¶>ê³pÀëw)?Ñ¥Káˆ7·˜Å`&ÊêÏ -ùÁŸ‡ýò;ÔŸBÌ´ ºÛ¡»NåÃH×í³³OTä(´Å„\+)CÇ¿M ßK­å· ”†3”‚ª7…¦\*ιüãælòžÇº[5¦4:’ >¸7Ö®P8uŽEßO.› øþÃÝ5}@á£Ï«.{ köŽ–ÀHÑÁí¤ÚŠú|Ë¢•/9¨€!· ¸žÄ¹ì [#.$cò,´¾è•Íè¹ÆÚËsxÿò†/8¯7ÐU¨CKÖ­ ê..èg.Úü°l̓§«áŠÚ,æu¯ÖÚºn¶LIñOò4– ÷]ß̾¯u§ÄãÿZ‡]r*GÙû×^š>P/a #…,Y\€^šîœrQjÛ ü¹Ù°âd“¨îRƒÖRhò­«~~“oZ#Waý±·¼@~öÜ’—Q‚)”A•*C_ÕN/ÞW÷î]$¹R­F`n¾E¡p7ÖɱßjÈf2‘Œë<§–{{ˆ–ùÀé„ù!Ú>Â9XYÌùö‘œ–P¤‰¶â)> ©w'.ØfÁ]­³XÏ+c7Dí^sÀ¥¹´D£¼=Ìo$'@¡pxÒ¦êÇKokUí™ì¡¸¬ñST8Æ}…é·Ò;©«åGÁ¿+Ÿ–oS©~‹6èbV‚lc’”¤¼±Â+´nH€ñâËÐ6ïÝÂáQxUÜÛ|gÒ¥É7´—yçPÙ¹\´g%ÑîsÕ25²BByp šýýÚ-™· L>ˆ8Ýk¦Ú…S¤ç«Ì˜æLä{Ê”äS*‚RTÙ=«ÞÊ0fR ð€û-fT´˜‹ÃTó™§5†É`ÑTœE [aH#ÿ#–àF臢3éV¢Ã>½W©[’˜ð1Ä¡, š¥OàÁ7ô½f=³ ›M3Y{%傺,)¶·G °º ñûД?¨á­h¤NMü\§ .W¼^x¸VT(Ÿ†=WE ÔÚžúRQ;üÉë†Ì1ĦäŽþây¡Ü2”³Ç{gPg8bd¨Ëz9ölk·ªç@«üë7#g[ih_U|Ú/ýlÅùðà¾õ7¦xª˜å\î9ˆò4«öýd_6r3°Ñ©)ô@‡ÂŸ{v–lMÊ>>%'F? ,˜Ôáh¢¹÷µ›)XpÚ÷9櫬¤·˜ñPòœú ߢÍDe¶¹eeÙ.6À)×§ÕòÖ‰ˆ›a¶-`Í9Ý’ú¿’AHY'©Ê•Êtý Õõï€sÄaæú­p(°tæ\Y›>UªÞ¶¹iÎPkÚQVw­zVChËë)ä•‚¼¤Z†CºÊíåw¶#“½ŒÏíŠ TùëzYæaÀç½åªz`]ú|º¬cÏ!Ö¢ ÕŸà«÷ê´üÊ÷ä¾÷/ƒ,ÐÒzaLs;›ä .ù¤õ›Øó­@a¡] ‚YuŒt°ÃÅ…­–f1÷Ç R‡äE[]Ù/ÓCÓ”z]¦Å!´Ú˜hr•‡RÍyV¬|œÑ¯>5ÊHfyët5Š@ä©9-ŒªÌùÌ|“s7g UŠÖåÕ\aSVå`îõÝæ["§;÷J;e¢/ˆÊoº¯A ”Å]¯‡Çô9‡vçÛ«@•ÂÐgé’1·@Åï/ý=p;ÞK˜/WÂD@o´FänÛ¦èðoyÙEêÐ0¼<ƢțÚçÞ,“@£4>$³àéÑðˆw$žÅ;PïÂÔÇ;¬ŽÓÄw—¥TôÙi…[ÞÓñK`«óC£‰‡ç}AátÈSÃrG¤ÿfE ¾ºkÕB86¼U XÌ,c Ç/BýM&¥g÷öó~ø›ïŸ!Z·ybï¤6JŠÙ©,Ù/JE6ŠQi£ ðŒ·÷Ðvab¬ç€PjóBœ¬uTХН·&Ëà.ž'§ó_â#¾Á¸­é\’q{›D.ô§º&óC‰ü˜‹ã{<&¿í†nÛEéš ³]PqÆæ´6^û–’ !‚Œm½UÞÑñ«mŒZm<ðM¤ìjÃÔ;À,ÀR_”DnÃF‚Ôu2‡l)Òty`À#ÞÞˆ„àðQÜx“T‰«-ªðMã‡>éº çršx¯ÃAm"÷n¤R2MNc& þBVÓ°gÚ5[¯@Â-ªk«J4ˆ} L#à sa5r8KÉP'Áe!4ª&óè0¯±º(jw«>ÑÖ•öÑ(ÍÖ4€«ãÓRÿyÿïbÐ_#Ы€ *›Y}Ô<À’¨º¬é˜™¿ÒÇöT0ë)1 (dÝÖ³÷lìä5ÆLk"r¨<\ˆÚcÓBïb—"yÞÛH%N͹v€y¶é`r M_8Ø{ò`m>Â…»Sîä]†Ðæv_ø[òÍG‡ç 0 «µ½*ÌKýͳЉ¥sVj]ÿx•˜G¯›6ò5z&Ô¤‹fÕL#£]‘Oç›m°ô¹wŽeZ¥á0öÑ„ZÛ.œ›Å}´fËÚ(宬œ?'N!pÝ{NäY"Ë“(Ú (Ìduf.ì¹Í Åy᪠à´ÑScسbONëÅ|J#Ì@Xà»’³íõ3ÂBÌÑì‘x!;vßB‰Ðêë$®íãbNŸ2fûd—"ËÅp’T«&aWþ›~øé„½'Þáûó*c/žÚå#*ÿ;EûwRK Þ¨t ï^ cu*`Ǭ­_©#蟃YZæ|Êl+k®[4ü_^q“Iti–©iê5éª$›—Ù£8Æ”§ZLýÊ=>.ÓòPa¼ÙXbòˆOÿ¡€è«ðúy9òVr|ß·Ë~‰Âºy´ZÑýÚ·~£Œ§ZÀJŒùù6™¤E»ËGŽvÎfÐý{…µµz)¸m~}Ú‡ïP?É(¼­wŸ¢¾s¨¾žtÉ0pF«vÌlBrá÷ ÂGì ×m⸻ûQ¨ÿÙ iÁòNÒ‘ßòh1â8ÃC°˜4—J!ÐFÆðkuw¸ÂráÞÿ•Ë lšâK@—'$ÒTÀ5ï5Î]D ¡CSÑ?öÏëU4?ÍÚJ\¶kôÏ0MòRÿVÃÞ%F '¯UÓ8ÃØ•0í´ š‰'fÌ$¼ìÇN+½Î^…°éC  ›GYãM+@Ńó1 qŒâÿÃË®7>¶´kÔwB6^z o½é­½ca*Ä!•\„Dz÷2¤‘Ó¦u:L烠9 Çý‘¤JÆÆÝÒÁ(¼jBíËæ…u@š£od{8º€¬Œ»ŠPXá+pU-èTâ:ƒ¼òºÃt šÎ8ÅηfGÁà;†§@ðdËš˜y™ýïšj‹ŒZÛ“œ˜Yv|ïx’üD¥`£aÅ ê:/”J…ËB·Q—7 ã²ìâ¬Ã.ý4›ÑÉ@ž-9ÓŽ4Ê÷6ètƒ€(@gÞˆQ¨53Ø¥§Nù·åðØ£Lc8ˆè @ÌË9cñ3`i\4êY¬Pï¯fÃ[WTkµ¤Zﳓ…þÌ"¤çn´‘ÞàÅ%«¹LîwÑe@×üF<¦ç¨³3ë7a6í^2n‚n—ü‘ ¢_üÆ…HbÀgšÓÙûÙÈ2?ÖÞñF£Èóþ™Ã#Cfg\Þ™6G_iÌÊO Ó²yåAF-h§IR/TÄ×ÊôpvcY¬m=4º ºy”PoÏ _Ã9xíhí{ÛÒ›]|¯£¤PýóvO!úº?úœK24êþÙiÊf‚ÈíŠXÒ n—͸Pw¥­oÉ9( ‡üxa3࿸+1P¿VWÁ7ŸÀWW×ù4çUð2jàæ¨§8 àõ\Ü€=˜ÞS>C¦¤<¿g¾Â·0®?3<•ýð†Øé–£Å€ÌÓ¤WœŠÛQà8Á~!õ¼ÝÐêÕÿ)±¡|W+ Ù¨¼hp–4b³û˜qyé–ø`A_åàWÈ ÈF‰TØÍ…™Õ\·ãKñ¯¿Á °bpÏ8ø€L¤—Ò}X"D³ øÜ¢d v7ŽpÏœmK{[ÆFF‰8éaîHƒ *ü§FõÀ­«7SîóC7õ½(¡ˆçÌ€Ÿ ý÷’o^6Q껡U¢îe¥Dxà€ š‘ãå“싦¤'|ÿÛý‚ûœp(SãOgï{áÍóïè÷^‡ÎÁ¥T,)—ÔžëW⺭ç=(²ÅÃ:iàâ%ž·Ï¨Ý¸ÆÇL¨ÜË(²E|¼¼‚}SÄö(‹nåÝ›¼>ø# šÔß쓴ɓã)ŒCý‹•Òl¢9›Ñ™jQ2éÑy•@¿T0±çb»'X %oèxË/¬uÃÒ%’iÉ„´õW§Ví]Ðâ:âðe˜B7Ùµ ¸ÊØw„k]1^Ðã÷Z”¼iP£[g h~g!‰ÓÑñë/ºsM.™…fsïkoð—•ÈG&ŸDtšÄè_äרqû'm”ÏÜJâ-ö挞 Öù‰:.Ó? Ó?O$û“{e`ðœ¿êßTàμĞŸP—ÄÒmÒ§YæÁtÔ‚©ì‘ýév5Ù=E>V¦Ïª’Ü@§=Y œõê74ðÕ´‡™Å+_è5hfÄw8'NûtÊ=¥Œ[éŸ¾Ï ‚ŠÏ—“4­2p5&´øP싼F©øŒ§ê^ ½x­Ø(žð†Í94•\Åûxª1Xœ¯MÊ%ÊKH. òPf?fdFkm›4hïy5Äšese“µ˜ßµ{}ŠŒ¯'úD7z%ˆa Px_>s^Je8 »Ó±««#ªŸÍ7mÒàwwö+­Ïlæ?µd<6õ®Þ$®‡—$câ|Åã"'/ü“>brLa$Íù£‹ÙëüæÊÊß*TAeAm²ýk×8‡úÝäÜ6B=÷4ŒœCÿeícÛ®Ñ@7Ýù£ú»:„I oÚ¶é‹Ù#UUx'~º¸ncÞИ (!n!Ó¨½zuK–7“ª ¨ÈÁ<»óšÒfY<¿XciicÁhK+ަоTæ^5tŒ®ž ²žî²Ž}{®xµÓŠvâ–4.Ó>û£cóZC!œÿâô «OJÀ‡éyÌ+žæãµÕ¶S­'<&¬¿›_e®§öI[<öñr—Öò y£ZI³aÞlkûúZRÎtp 0£ýOâ‹r\]*3“kh(Ë%&À7úÐ5e|æ¯ü?îšcx€tµ³)T ˆs-7Öí%NïÈ,qÄÞ²)Êxƒï0± û‹©ùHN¸ðDZjç3{©Y6¤ §ðS)¤ßØtXvNZ ¥ºd3:=tJƒ*"ÆŠø#%pƒut°‰žýoÝ*¶‘ø+œL0uQèzg9½Ç‡ %ü £^ÕZ®N Þï-³ûvn¾ó¦îU¤)á¨V¶ªŒ}ÜÃAaù­é:G¤÷œ Ùz•Ô‹6 ZØÍ_×PŸÔÜ;Ý'L {}V@-ÇkoXÛ6v¾‘!ö±5=Ó_ƒçj}UkdÖðT –Z£Ú™XP „ÿ§‘ÝT€§§$2vD/‘D.¬¼75óí%Á·”ÎUU²î>ç!/[O„ø²êut÷!»Ì&Ë´zâˆ(Ì É(çøm [o€­' EªåmîÁoX’ó!óï,þTì§"°íèæ-­í¨?xì„’©qcâûxþ·ë’T¨T`3ÃUkH¿SíÎè þó´j7¦ã—Œå‰ømã¤Ûl×dŸ±")ò)Ë' aGKΪ„1ªÙÛî²­A&&Xi™õ ¶ô0½šKŒ û Tpÿ çá!@ r2¢_ø­“•º@Õ¥Ë{Á*5[KŸ-ù úÓæD¶îœe-G¼ (òN‰¥ÕR ­|F Yä”ÇÝÓמµ+ɽ‡ŽŽeð¿w|ËAÀI|ÒPµ¹ãú2/ó Ðyò@gí ’Ò|ð{ܹ_]1fe…~ ˆæÜ…Ö C³Z—¦D·ý«@wˆ€1•[~É)B„;¨èX˜v ,aÖP«ڙ#rÁk™RºÁ-F5(˜ÓD00·ï©€™É?„ŠˆNÚ ,šö@8ó_õ³÷“A8ØJ„x$˜õŽ|ß/¥N8—p1±Hà ñafi;hªíÇ÷º»îŒbÌ(›žåû„pÙ¹d3«ì<â†fü#ñpÞ0h¼No²²:.Ær©{½•œ÷wh»ò#¾Ð±.ÍYz<¨wâlø(,Íèn—¢%Ť½-K…áºÊ˜4æà+ ÐpY>Åß\JüxQ?Üአx¥«Ö™°!ô*\¬S˜M…ŸÓãoç¬Hc¥ëÂh¿ù§7ÃWœdéD´ßu¡õk é-·÷Ì|É¿£ÜZ_¡h^­d=k8› åùSò%¦¦DrËõH-#YY<*õ³mñà•–vo…Ì—pg’S£õ2•i ì*rx—¤öÉ[‡lŸ”!~Ü/sHX=È!ý#J.¢/Ž#îñ·PœØðù¹b¥¡ /R¼Úi]µ'Év«ädÐT4]ñDsȆ’Ú¶#Ê’K}9Et¯ù2·!2£wQ×x³Ê5V–8‚%–ïÆ§·avÉaªŒùàõ›ýìpM%òþZ LÁƒp÷ÁšJfLÖè¦ë°xJ3ÉÖᤡèìf‘¿£§^óNÅ·Ç%.™,/z¢ÇÍyZÛq¢£9ùŸßÅš¿Jç \©SEЈƒÞŸ&q‚S0̪D5W!'ã:rpô5L£HòÑVšÐ_ee¨Ô(lÁ¡9– œ•ÁI“ô‰AX´šR]û¼Ÿƒ@:–J_u.š|é"HVLDE‚«¥  ÒDÌÏ#žÕëb†1š9qN,ä ²'•.Öú0ÁG¸J¿!ñkÊå·ÓB&÷²ü‘E3Qˆ^¿v{1|âxŠˆ˜çWªåüVbÕt=¾/qQþÿ t‡ÉŒŽ…€\l¬ô‚V}èõ e+öˆöØcÞôQ ž*C¾âk⬰Ë}(QàŶ/lEïN8þ|‰”A pÆ”=×å¶Mi‘*‡mpÌn=ý%eê GïkòZ+þmU€¯Â‘¥ÜwpvI›É=`8¿™û/{üVü@µÊ2©Äz¨¾OpœSÃvEfå˜øKü7ñíöM@yñšÒb³(‹×é* Ìh„-^Ÿ”rN”©rCu¼v;<"l‚òDrE¡V×LÀ”Bd'8,1ÌÖ±qò ?*qêNWõ 4Ò ÝòÎk‡ì•,V]á#ÑáJáãOóÄT3ÿÈ ÄßG„¡Äpïþ$ P˜‰{x!•>©ªÄ~´hÎpc#K2% “%ÆÎTÀr•Ì•+wí1ªÓÛäʶݯ,£·v¶9¤Ëém…–VصU” À@ë¬Õ¼­ÃLñåãtûÞÁ\¢ØÄ‰Tuh´X{Çtë‹‚ŸDGl—!Sjn¨ò›`¶}+DItáD¡Ã?^ùƒÔ(,"¹ae›ÿ ·+[ÇÊ ©m Ç-ÿ•¹î׉‡xýøûe'éþ°²w×;3F¢ã•¤ˆèyßÜGõæ–z³­‹óHñ-âmR¤Ð9NÁ’°Ì—'•iü>Zx¨µQ~`:‡G´v¼´Qòêùç—e-˜nÒ©“‹™5:LÙÓÍæ»^åA³^_‡C]¯ÔòDþ‰ðµ?°zµ“\t‘Ò ÇqæqL¹ž® 7jã:|œbâ»5¦¾»i¸ø4©ŒŠfþyHѼ«µW³—…ïñ”iüèsç<›rzI¸Ô,¸À›h·~ÆÜ¹±r¬ER®m0“œ–,/ Â8>bäj‘òÇ{|*´{^A‹z¨nŠ œiÛÍØø¬/®SšxGä_<ɘèq@ãî“;ÏY¿ï6ht©ñëTiƒÁâà?5ä­;`ÆSZBcoSO+Ü”øYE[AÉ»Ý4"+CI¦ÁF“Ø=Þm-že­aeVd>›:ˬPíôú.¹\%Ò§3¦Æ}íÆCHè)Æ[RdLXåæVi p×Öû)¿ƒM¥±3'¯oTYŸ‚ ‰÷ýÓfÀrc¥l¥VøƒÙzy¦WíìºÅðÇ;ȳ[š—j=M¬Õ׃ON•j2Õ¾S $€¬ÓÌ ßåõrC«V¢©SöJöûò¥Ø£ñ{Θ¦ÄqS¨T^)_¹‰µTÚ ËÂ7%ÉHQw>>س,„¤¦žlŠõ]ñ¨´ù’êƒËJI^ÑÑov)÷ÝnÄGà}ôèZ ‘Ÿø‹ ¡™? -½Ëžu¶äÊÉpI F¼ ?Éo)ŠÑµQo(ˆ á"—µ[g;šèq:s_lk¯½\äÞ¯±a`"ª¹Ö^ÓV|˜|ôÍÀ}BúK—RKœ¡n#ÓF Mk/Ðuþ~Ãä¯#÷1*tBš{GM?\Ì ØDïÙZy2FØ" ¦Hõàä1¼\7dÎ+¸ˆOÞ…ÊØN½ŽÕ“°_Í'@Ö¹X\›1›@Á´€a_@1H¤gÞH²@µ‹îýKªb …Ûˆÿ=Q”’|­P¤M1Ic©¸Ôæ#R TªowRðšðyL;7Ò6q•Wx&u ã™»ôùÀÚzP8gTÞ_ÅcÊ„Ùùðz*)ê¿Ù§³›ƒâ7Þˆš¸êb>À£…ž¤j «Ñ³‹¡¶¬ñ´eZµ`Ùï½½&û 4¦âîeèÀÄš ÕYq)ë±¾ØsÊ‹cTñÓÛ3‚ºFR»ƒärŽøäIŒ’CÈ ™=l¸Ø?d!gñÙñÍmùDº_ñD2µ¹E¢à" D}ø» ®âÓ¾pÞô)ˆ¦Gkû¬ÖZ–(¾•®Ù²@hΟ(J÷·…‰kæ¾u*Úf©;i‘àPåjd¼:l|BŽ'™ R[-P\ \7Óÿ‚òü~Zaɽ‘Š?Oí¹‰aÉüGzŠã€BÈn«Ä¢9ÊX4ZD‹zî± P-q€#Q÷7§º`I¥i ’:­¬“'>Õù8K™Âc´O§¨~ÒTö> rn,K¤s~Èrª†×æ2H›_3{¤%¾B³V®Vj«ââîG¾D!©^kþ΀CHânhHV©›ô¥|éí­Dâšn¶ù eÂA&abLlÞd]@ª78Â\S Tí,>ÁÊ0ðÆ­gÍâ¦[²Õ(%+®8rƒ<š¦éÄõ·7„ÂfÛNûrz^÷ŽašmKè‘`í.¾tÞ“^±³–Ã¥hi‘õ•†!ž¶³¾Å)wýmõœ˜_F¢þºÈk†{ñq§Fü›Óuï‹Ô 2NÕÅ2ÀÒAóN•Ú}œS/œ†wH­Ç¸gŸnÍ9J{ñõy!0ÆpLj˜u}÷†ý;îiDg¤­98¾€š³/Âôir³Ý‹’ìéìÍÐMúÓÈ߆¼ÙPÝ«·¥sð„=¼Ïú;…~o¶¾‡*_$±ŒG:5š¿  òœèÖË$u<žv7Ÿb>A£…dkÅ~+M‡:ü±ø²1¤%6ƾrb€ä7?~l4ïc«¢t ÍN#±’ÑÇrë×,ãš#øo’gèJ\ÀLðý¸ú[LÊ‚]ÌmÅ…,m~HÓ+—¹ÞQ›Òýî6_%9k¹Xºëím-­Ù0oÓþ;U|ùj¹}nÑŠù)kc÷}Ô(ŸdÄ| ‰´©Iد¤,’4áë—|4ƒKp´e” UjƒZ|+™À4†TH6¢ö²Uþ,¡$Ža4ZÎyQ¤N¼ü#.ÿªEŠŽrq`¨a¦Z¡‡œHË™ên4{-œÜô^öœ*ô]büó<šõ× ù½ì3 ¸å<ÊH1ë4îW*fNœ¹Xš7v¼LÝ0øgCš÷/ñÚMÄÏšìîÉ¢¾,]zh8.;þUMöõ#…##a.ÅŸ‘‘ÞŸ<饠þ&…ñåýK¿w ³–è4‹—ƒG®¬ð~òæEzý¯÷<¸ûôÉSœPVë „Zä_K‚W"‘å–„‡È7æ÷®dßFi°L¼¹læthíÍ€ˆ9"+ÇÿjTUq‹&*=?¶ùU¬ãƒÉ³âY%bëÇß)—H«¥|ýþÆÖVFä“ys[CœÎ*÷BJ­E$´í}Šu4%f.fª,§7£0§I h¨Fê™QÑþEmÌï¼D>‹ ÆÀ2åÞ©n#iîE~0§ñ’×+F5½ÙXE“¸N òu0åŠçéZŸÌè…S3,Ës*HáAâ´ÓOÎբǣ¯+¢œ”ÐU渺‡&OϹ(^'J¦ó3t:;ªGÏGSkü²Ä]ø¨ŽFórÏL_‰&Ý!÷\…I.²âÇÛ) F)ÙSèÂpUýC štÊ<îè$²É8½è^­Ô¦Ès¹TSZ:¿ý.èÒmâãÞö0¡ ¡“ ¨VcC(sgö¥ö¿fwÈåF_´¢'zîÒç]°»Ù€*—ë™÷”B?§n—ˆS¤qß0œaaŒ†Žt/z—qü »Q_fþaªv!ž@ë lt|híèŽMòÔvËo$"hâ íŠ>Y¦Ë÷©¹M¤ÎIìáæùì%ËέÅö)žÃœ|Ûs–“NrO·ßÞËF‡WKùµ2¹¬Úz*DçÛZôt,"Ù"á(2-Šc³À{ÛÀÜ7YÊÚfWk¢ÁCP矈†,aÙ £SœIUÂA’jŽïfaËÒä° Ò™§9A¯2e šó¸y–M¯ÏàþHïÖ#cUµ±}û.6ã_b&²¾¶ØÄ¿ÏÈņ ãäÃ,GÞˆ9SÿÉó¸LUŠLi$|§UÖû„ùÔgÛFúÀ]ì׈ÅIT`~Í îÒ›˜TUòQ}4\Xm¿»ÝÈU#÷ø<‚c²ô„ÉýÙPéÑÁÆøÜÌ5”Ϙq¼¶ð ?Ç5Mñ庆—7:o-”gÝl¸¿ÖÂGô7x<aæJ"ûqÈsÄÇöB-×ÜïΦÞÌ>o™Ž:ä‘Jy\Ï¥>zÞêâup/s5qN%×».Ÿ¦bÐ{PÂÆúaÎ@ä§tŒÐ.@|‰Ž?‚$:-÷ð?a/iÍŒ‹2xa!$(ÜY{1aé/%Tt…uŠ£¹š¸3v@fiúZ¥bL/Úø©Y–XÞÍ·§<1F Ê49†8xe_ÎoÝÈSêb¹^“lfp#Õ#$´Ð§ý"OuŸ˜zV/— ÚWù>[̦(Òõ*ã §\9·lÃç=ì­{> y§PK¿[¦I°A2í›±7WxœbmÿpLÄ>·$ü â.–‘: r¸Û†‘g!(àw~E2‰Ì(o½†ÂŒ±¶˜Bô¥UQ·»Q~ʬB)üwz U~‰Zýy@Òýva'IÕcfX&ØôhÅ\7º³QÚ2±33–ýнºÿñsUÎ:¡žò°D ej®Al)yÜÞ6 Oµ^Vт㽭}\– ꤌ±ÇÓÇ¥b<ÏTãE~×í*ÓèŽòȶðL{¤&«Р©!Ú‚¾Y¸)1Ì´4P€¬¨i–5ßE¡VóV÷ ÿpŒ„K6IÌ¢büUe"M(Ûóö½­³ÚU³“9Šëæá@‘n{Ãr¹>ÎÕÖBËæt¯CjÞÞ^M4tý|¿²ËÙßj¼ç#6LŽu»õ—ÛIã0Í…EÀØãõÜ@f•Jý3ºø§5DLõë]f™oœˆ/lw tÙ >W¡Aì Ò?å®Fcé,í\¶™ Ýò¨{?£”î2`$O+Ï>¿Òi/& ”kø}M¸è+IìXÀÕNÿÖjõZþsÂÿMyÀÑÆqéaÃf:O$†'Ès[.½íq-€<ï—ÎôÀÑ<ÄxH?»‰H‰®£Œ>ÅeEñ¦¦i¤éE”ù³ƒŒ>,Üúލ9?åGsI$‰ÕyŸlxž· 5sŒú äÙ/hA8I¥AËoÿ 2¡ôäŒ7YBV¤A»éèzœa+ªÊªz7ÅzéLæØ%’t Y‘}á„ù¶;|#ÁRõÀ9lžfJ’מÌYø0þêPIäëŠèÆJ˜£ü`Ónÿô$C°]¯:k1&IT(+wž¸Lo¯º%FåQq–ч/QÐóãñCG»e ±aEElq0>ûYâa…ÈÁ9bvÓe•e$ÈŠ÷ Va]AزÍ0Ö'lƒ´všóso€V HáUÜs ®” ;øŠúŽÎ£Œ¼Rú†ÕÖÛïš-¥ê[ǧf„72`úP™"`„]Àøô±ðæSøª ¢­ÛÑVÔ-Û#Fú?1^3~?îyOkYÊÅ¿oêÿÐkô«ñ==¯H:Wëg¤gqßµ“™´f$ÎÍ–¬ÞÓRÇ Rîa¦RÛÖ£æF)vnÒ=–›ÔÉ…jø²eîó²S/=¼W@ù­:Ð%bç=ê~H–GÝs¾*UéE9”neï1ŸÐ{콄‰ñ®)%¢ ߯䞠S,qì‚…¡’Ì]òYö„­XÇZÁ™¯ß‘n§âƒ%?yKƒ€).—¾&µNÑ}+«Ísö‡÷™}›™”Qx „”·a}‡QÙ´:º°Ïÿ… YץƩá)àòá7i’ì Ê œ´ÔJ.d4Áùd!#¢ .C[FéÊK¿¶)¤ñžÑy2›ÿî[¹óJ1…í—îϦ°6Á|&Ö@‡–¾rå¦3%—±6+~ªÔ¬¼…äzC‡@sôh3fpÀ×u܏ލÖ×’wyÊj¢÷tÁ¹ú²ö¾‡ßçá¹Yà:í$eŽhÅß꽌ìýò·Ø²à#HòhKæÂÿK©ó î?åùÅíQ˜fÑ»¨>ýBùcSÅ×jYË “,àÇ'ç\ù¡º è,x•¨!¡­™Gª²y‰ª0ƒò¨ôQ(Bg–ì.vP˜º{YI‚ÅHŸÕgïýêÄ9ÚÀ´õ¹ ˜ÿRu(¼÷.9—ñ7g•#Ôí?œi»É¦Û: à*†;H|h' Æí%¹–¸\›#¨æ¸hº¬çÊ6rºjä‹´lÉÊþÏ8¡Sz.; W7~µ€”)u‰$j7HN9ËÑ2îîÌÑBœrâi¢¸Dó›f'e¼Î®½Ù $N3̘‚PøˆÔwÓ¾^¼i§~ , ÷`‹mÊ)¿vP Ê ²a÷n„˜—l_@1ü@:âôõ¢é™žòIkÙâ–H¢6rx½Ù§ÕÄoá1ÞÉ‘¿Ø´R2èÄ/…0Ä„o¹DÚzš«]žÿ~cŽ’BéY¼M¤ò1AZÏp¼õ¯dÀÁ¹_Wº?`¹ô]¾Ì‚×±!Iƽ ¿è=[§4U$å2íá½A¤Æié­–®¹Fì8¥P¥¸B:ùž/nyûî®Ô‰7xïþTõ™Ð«Y–î4lôåE•HÙ~3o©ÁÕqxÏž Xg±…:Ó4ãàï ­!ß«ÚGܯɧ¾"ArûŽ®€ç·µjÜÊΣÔÓFùÚäñµ¹îð6% é¤dGÝVM£–ØõFõÒ>¬“½h·›Sט6òøšPñ:zXncm°ï-â; ù;iB¤ ¿ïg"kô'}=xÄuÙYüŽzKÐf—EýÚ¢‰©ªFÕ޲M=Þ…bD rè¬'‘*m€‹ë5¡ÚóÓžŸ†6Âd’$¢îP5iË5&B™âº>ºÞ;…‹²¢x´UŒ÷éíP¤&Ïüu }Õ¯ÿ%NòO”Z„7Ã7ǨӑJOÀb`PfŸs 2fYAV'Ä—Ð\ËRÝMë™ 6Å Û‘³¥<îW+š5ÀZ2à‚þF(Á Cü 2+Z¤s‘åG†äüœ345{¦¾8¢™þµàžãd¦ Ý£TRʽ­A&ž }Z³€cò[É?÷»?©†Çf€èX|’3°úÃ2á¯6I.Á0cA‰®Î'MP(aæCJ u.Ô›Pcl‰â×dʱƒÝúԠ÷¯â ¼GCÍÎŒó¶.üÓ¨‰·$¾»iÚ¯i$p¼U¨"²21“ñ¯[FÆŠ³ÛŠæ|ætãá²Ìd >I‚18ÝíÕÍÿ¡s¨e95H\¤xÀL /黨ík_iœáMí:ÖÍ7½Ò¢H‡–h0ÖhÞ‡ØHÛu¥½ÕV€è5a;ÒÑcÔtù,Ä…¾Œ>˹PÙ¶‚¶Š.Ußø,ÔÃ|Ô½)~•|Ò… áR·6.@a7^Á/îíPòÊ}ª€©GxÃ`ÀË‘½©jK¹ÞMVOÏÕËži*ˆx@>#«¼°I2ù+D]\FÅabòLìd”lþ¯A\U?OÉku}¾Å¯~‘‘ö©0¸¾07Žwq×¥f­Km’²HXfÀ÷0ò˜ïÏ‘\P¯Y•lço'iHÍT:ÖâêpaiõÛX鸃ÄUDËÆ<Î-Jõ—Ú(U7ÆŸx=õKyh–Gá" wK!)nWïª÷lPáÜ £íýY]™C**ßMʉ©vêžôLʇP®ªÞ‹÷mÚ[Cú”š)Oq¨ V?3˜Xð$LÙ…í÷à€ÆˆZ(ä§Ù Q·‘V3H#Š´ ÷›¼aEŒ+ B­¶uAoô—pÙeäÞ É£ï•=2é©£EàäŠLo Ñ®1Ë ,àÆ5®”ˆ?Pb¤Û$ ûÚaÔj«êÐa3¦Û1y|žŒ³´GÂø^c²*î4sK—_àYÁ³ó€ÕÓàM‰G+]ý=ÒÑgæšD»(Ê>yÛ,iÓ8ÍQ®v_™(¬ûá¿hV Q=$38ªJÙ3“;Õ‹X}‰Ø°Rê;ªhˆò™ VéIc><«ë 8öYÍ~®÷Úà^€¡T\«ÄöžÃdÔ×Ïkå·¨®3ý˜ÚúÐd©Ö ¡üsý¯t%#W¨dUDARÜ'&ÃtèKn+SÈ,T‡'Æ /–ã¶Õi؉6ãè«£ð íãÈ‚yîyrfؤg0œä´d€IV€³øà^”TÃí_ø¿ /½ÄÍæˆâ­èKÇû¥ço¼-ªƒ\õ®oÙ9ºg óTËÚ|èÄH2P#¶l*F~§sdRn]MÄ´/Ûs‘J£Â’ö8(Ù8§ôåCÖ´>¦Þ_ʼ9N• µn}ÔãzŸ5RT'y'ÇH²û¬¸Ý– G‰YøïK^8”„ÖÄy÷e”{Ýë¤Ê}*ú±2L`°.F !ß8…ïUYÄùš+©2v)&ФÂÙêo…æüÌ¥ç 4h^Ý4òâ?áP¢“dµb¤{Ý«$wFóCÈ)뾺¿xzÿ&2÷†8nïâ–ÐÃêsÂä·nw ?"§¦’ÿ–å`b`uêÕiç¾øVãôN†‹©‹º•@7gK‰ÙÉé6¼pÀâdõ’ìx&.7Cè1ñ %°- #èUz^½Ü Tæ˜Iz§j„ú’<âU?hü€R ™µ¾üM; âeØ(3|dÄ ¡2#\`:Ò7‚œÔ‹”GŒg#1›ûœåÍRèJ’’ ÿEQ½60‰È4ñݧx±åÝDZ½hUôÙ±´õA_>‚q”ÂB/Uäk+rù¯nÝþ'g|Ïùz¾&-ð¿ù¾´•8êoÊ ¨_ò ˜YÓ¥ðÅÕaÑR’)èòq~­Ìc÷aÖ\ž¥™®¤ž&ü_ÆŠò´¸sÐXhåVÁ¦ £2âòü‘íÓX¡Ã8EbK—ŽÀ à-Hã‹üàÖÒüü  XäSµŒwCöÐ*ÄÜLs(sÆ–2à'ÖðÛ”º` õôu¾n¥‘0lÚÙr‚sún'ŠYø`½ŒQ`¶>­e„PuÕ?ª‘—Ý¢œÈRjï½IÍÇÜ«ëvEJXóc½ t\ßü§V”OÊ‘MÖöc**!X¤¯kQ¥©RM7Ê&æar€´pÙ!Å6ùÁõ7瀃‚­CBãÿŸ=~³¡è1!@¶!6`ƒë³ïÐþüœ„µ\ªyVlÊ%Õ¾.v/šºvXTe1wðÅw¨Îuc-¼‹ýtâ6Ê©ï|ç;ò;¶8Æ4øåv±2œY–•“E,™þöì3.ÜûÝõ‚jcÄšÑr-õƒé¼Ð˜Ó ¡àT¦1é=-ý3;pl"SÞT½­’WÐ_u»Øå"n¡Ÿ6Eé)qÃ8óà û²’¬k˜Þ¸~£‚癎ñäbëËä_ÐÊ 1ò4eÕ‹{ø»T> ͼg'}ZaEþ¨d‰+®|²Â7BÆ^yrMH ¼™û`Ëù —N†ßBñÞÉÍ1qB™?Êã>ålV©³2½½hl¡5ftKÅ?\rE–IšU¼NÁCipríàPw¥¹1«H?rÁHiH–d¬öF»{h¦åRV.¦¡¯cÄl¿ªƒI1kN/šçØ:dîNG‡è#éŸe¥õ僚„uçÃζ²¾}§’]˜$ôÛÿæ7vºµQrÖè¬×TºŸë¸,b·q49Z{• vÚ¥ëàN•ó[•ÕÄ6ìˆJƒóåßqX»‹íW(_ð­ËÁÕUe8}Ó±Úú‘”VééˆUâ¥Æ®¬“Õ îzàbľîtº&ky¼rá/²^â;ÿ¿ zk 1rÞW~ êC£n§‘ífз «2²é"±Ž9åǨULgµùfŽnq|Õw ¼Bä««LÂ[KI¤\`›BŽÈ|» Xá™ïšµ#RØ3uÊh ’WÇ=s‘löÕ›§×ƃ pÈ¢V›c»Ò|®²×–z ƒž¯œK-È«+6”u á(D[é$‘é<ð"<;g±ôç;â+S4öê¸QWlo³røbRîÚìÉÓb PIì·ÄÆìX߬ã#™ß• °â­¼j Ó«NJ =o'%&¼¨Çyf—Â$¤x{¼ QÕ¨ƒðÅ×ûžQà`à™J-9-2øgcmqºY«H*îæ!!2ÁÈNzÁY¹ °KE3j^Tš…`8B—r[{tÏÃúJ9¹ÌÃA˜3nÂJOνÚÞF¢ÈÞà +˜ÿÆrÊÒÝ(Uëòqè[,mn‘ÊbtŒè\HØ5ÿ¼–}}üÈsv¥ÏQç úUs°8÷<ê™(¬Q#xÇØÃ¹‘8Oæ[`1 ºcÁÒ§Õúu£ð­Ñ V”wj£OÍͰYCWe€]ËYe‚Ä^B¹ƒ„š­eóbZf:וal=A©m+Ÿòäßúë@£ß˜o3œbQÃçÞ‘€•÷Á0û“*zŠà”¡ÒÛCÉc¶®À0ö&Þ_™Ã¥býú%ž¥¤~òjÓ~8ýìÅJϼ½­iYÀA9R-Ÿ Þô'dýæ|[”Äê§J¬–+{ΨÄY%£¨ÄÓOޤãUyYº'Y“?#m>‘F+Z3pç ÁrY=ßb^Ç´°º±ž¬$/ýä}1ž˜ô®- €-m!¯÷«þþÃUwyèµZ‹N©ª¾„™¤ù ÑV(ÁngÙ€´êöÐ>%ª å»B·¯ˆ}ÙsyÔüÏçR–" îL¬M&?Ž­V–”›îs{¢y>¿““D¾ç%…T*P•<{ñɦÀÒ µ5¥£/×]šPR~‹‰q1ì“QòW“7¹[¬PaÇŸ½â" :e{éûùƈ|ýÿí­=|‘œ”?ü×'Z$a,Ö‚³[q Â'¥Èú6šý‡F£ ŠêõêÑOz_4ýý;"'äØðÇ[|Í/ÿp‘ °ç¦ Lj•´¶Ô©s1ªÂwJ!­ù¿á˜æi_Œ’ë3r¯ÜƒCêÒC‹w Ó1áæ²„^†èr¬3:Iδ)­µ•ì,𧤠°©²àsœ˜: ÁÇã±Â“òsÁŠæt­²_uãîüÜ2j ‚£³ª"‚áqL†]£L#ˆ_XO„qÞZDë*Á±kfÁüʵáÖfÝ9sC!$¨å3›ð?©­{ºPâîlä.}±‹w¨ÃaÔ‘é}JBwbvyCÙ<ò}â¿J;xHµbÞBù_´bèUìy¡ ¢_þ%Å+œ¬5œ?󿉲qas£Ï0A}þ‘õX$Ú Gþ€ñ†9r ¸‹¤úÒ©xŸÎR¤“”w\°[)•¶µ½ 9óÚ¤sFo ~þ7ÛL‡ñ »Ä¶ÅV´cVó¨$)5Š:®×¼#Òö%ªY’¨çË4J*(­p¦ôldCƒg†«¼Lvè}¥,Š\1ðBÄúýdÙíÊ2ÞbE 4²ÜhË6+ßédmNk´±[œ¼7!8øª\pr1 ¹’FÕÿt+$à™ókL=+ €)vñæ9ÇQmÈ2ÍJáþz¶Tn¶8Ü» „™{ÇR$n›ê~%N·-·©cf-'›ö,Ú*:ÄCÕé|Å­c·Áaª½‚üí.îÉŽahZ¤€´ä¢ÏNe" 4Ge§þ Q’‡Ç÷­Ë€cÂSŠ»r*C§â¼ÐÐá];+¬1£˜]J ŸjE¬¨°7nô5ëÈ×5•Û€¿»Ûc56=ºtB^­¹äÌà‘Te?›0Ðèä½ÿX¦å^Óïyõß𜂽þaý¨p°«å„΀ÊÁ³¦ ÏFŒô ?¾ñðp¨ª¨%’*ϧXZ´!ΑVL½L³¤2Ê~Uû¯n±¿nâ¹Á¦wpX #—’ bl¯³" ~¡ºÖ |õ‡Œªïê!&Üz°Ö~£`³¾Ë‰z'ÌnÑ6¼þ*ldSÒ‰YŒä¢èÃô±Œ»Q'Ö•ø¹gr+•E_·ü‹‹›ëؼùÅ[Œœˆ}]ùª¢ÕÍϘºÀ63µ%Îó\;9îÝIØÏ¿’Õ (RBeGõÀéE^ާС¦DõúÖL gLšýß2™÷zËahiY]oïPv˜ýÏ ]§–ðeRËæ8 Ú vS8}˜K:æue£Ç›3g½Ó¤ å%þ›Ý¨¾L>ÂmGŒÈð÷Z6=¦Ë-*Ø1÷³Ûk<€@ÿ$gm‘pôCK 0¢ÔØÝÂ?TÐ÷OeW’³fW¯mi æM… HDiŠæ"â¿:ëå…TœdìÕ@–~9ÏÑFÜ€MµìnÊKõN©¹k+ ! #{Üw!ñm&KŸ6@ÉÁ¦Qü" æÓ>ÞÔI2·ï ÁA7ÿ,9ïL¦ŸŒõþÉÁâS®3Éõ0ÏVè Õ®V¤šr¬,öï‹9ºAˆ‰5võ  ¤Ë Fp={w>ß×{™›D'•Tå•tqo#§º2j!è¦L÷J#Þ:›ÑõÐKd Îë"ÔHž%¼ä·wAˆ_¯ ÂÀÍb- ¤±âY8f'üK¬â8]áŸ{¨‘Öó™ ¯ú{åY™<Æ‹þ«›P`ˆÛýEL¤·G‚Îäq%4T¬áùIYøAV¨hŸ#vÓ {×L)pýÏ}H9ŒÎ…ßè$"‘·àF'×M·ß„œvk—}¨?è—ÝæýVyØr±ýOŠ¥zÒ²ØI³0Ç»"'k.ò¦t GŒ¿TÌ©’z:Ÿ‰ö`Ÿz¤iIë]#)¹¾%QYU…çÏ﹊ü‘üšÁ3Ó·4”Gf¹dÔ®„)z*9ÉØNfkl_DZ ï@ÈÐÔMÌŽ Ä£Q7%rû˜+„ Êò鸅ª¨+gÊ9Z9åHÓ*tu¨Jšåy¸wFY¶pž1+ŒK{ÙõÃõ&Þúª)B¶žïÙôïÓPÊãU‚5ðÐxäFÌÀŸ¤,*¶eõq­Ü,kä¬M䱇¾p9úxÙ˜”L™„b—“Ä UǺ£öo…yJÔéTùˆ!{^ÆäT(|M¶Ìß&˜Æo·}!?0dÍ¥TuÏ*áî0ã ,<„áRi§îW¦þe¥©ô=3¿Y;RÊžа„ÓÖ´ÒE~K‚ìÚÞ!J÷¹¦oÕà;P!9ÉÈVTyTGÓ·åi‚Î&ºÔ;U&Þ‰op%ú¤y=Êf}´bÃÚ5 ñ3ó[ Aßíø6@ùÖSþ­p׃ GË5Œ¥›b—¡z]¸}uÃDkW6ìªÝ øë®‹“WSç(=)nnY^‹¼\f'1j܇‡)Lø‰Ÿ[±Žeb~N:×ø ”Ø]Ô?£RH¼õûÂn›;ƒ‰ÖŽá 4tÀùºjkeZF eiVÇÉ8]«œH×éì»ß>¯(íc?€_éÔ¶“®t¥§Gsóe‚»…>ç+/>’+o;’¬Ó¢5´0—aåP°gIg:‰ÿ}šy|}éwUðê§‹¯qŒ¯ñái:Þaœµ }qãÔÕ†8åžÕM’‹‡Ë³USerénKñ‡š÷¿>p©š0ÀHŠ"]C,ê#õ(pÌÈV*_ûÙXØ«¶¶º£&èECë R :‡½û‡Ñg®‡ÿÐÍyË”«âd>Ó\ø·Ììƒ-AqWšŸŠF̘vw‚A©@ÒWXáÑœ«K½f¼¡Ýã!®fV,ò 2à¿‚¹eÛ¼3;òaw¡ÏÎIî¤=?ºæøÍzó’…4ûÙª-ᜩL[ÕMÜíp^£:Åò¦&ŠéPR6ç€1D9,º+ЬË·ö“e×%-̶>FºèaM1™J’üŸ?q=Àa1Pòñ¾˜t´nðFEIí¨5­ª«vE1ob5F'JC_¬%]"Ïä¼>U‰<¯®ž”õWÀ²5:]µˆ@±Ûæ¹ZZ&/$'៫>Ž<½æR êØ×º›@D<`ƒr¶º‘MåÀ‚×Q xŒòvÄZ‡ï#ÆnÊá L1°Jn¨, Òƒ»VqB”Íòâ‹ÃY^Y¿å‚„ˆCNèRœð(U0” $ð¯}òÅ®€ú´ñ³ç²à[ ÕB·æ¬°¤— HÓ0qÛoåÐ߯ÖN¢œ“™û˜íQø»Ÿ¡ž’š"Iì+HìŒV¨SC™³dŽíŽˆÕ–éÇCì¸-T”Îá6ÏŽô÷.е1Z›×2+0ÿ‰«0ü° Usµ…ÍôEÚ)_ñ'ôìE×Õ<®¡o a…ˆ>t;È&a^¯c/¥¹‘Z·9­ðµ±kbL¨´¨v"#´q@×KT¤Š€í4ò_`^·¦Üñ ¹éSìOœÇ/€éÌﵤå’çɬ˜ I¤½¢y4{=KíåSõµ*׋D|c3‰Ë&¸î%Æd )ø,±Yk1ÿœü6šj¤hn6›<8â2NÝMþÖÛÔbÔÉÚ̽ƒ3E °s¢àK©ž»ü8Ú:úuäá÷¯ÉJ¶ ?Ý÷c³á¬öÑ@¸~33=_£¢Ù„Ì/TgC>¿/ݶ¤ ³«ú98XŸC,!UðÚ4œ%B«½Œ¨¹ Ü/šÊÙàh¿Óº&®æ±•®Hõw½#}!é^žÇ®åšô8p]¼>8"½õJÓœ:ˆçÏb2¬ËVF¸>š¥H€ïŽ ý.I¡¡Ù¡ 1 %Yi5 àØL0Ä+Ô‘Ñ‰×Æ[ij|ûÅtcUczŸ›úÚdÁæm^p¢Ü%CTûE#I‹iò‡x8Dí. -BÓsMíYü¸fèßx»ÊψRò-wäaÍ«)ÖógtDQÑêÃSÐÖ¦sÕƈürîO¯dØÍͧ^=b±‹´ÇûüI’0ôyãXÓÔòé˜îxÐHò1P —xQ.f® d³Ýv ®a/¡òDÁC$¬ «¬ãûn¶i©ÒüZm¤ÂŽC£¾;Œ¨lzÇŸ‚b©TdYjCi2gt1Q™‹.H¦y‰ÍÂK¿öÁ&uF÷æ+‡$3:°Š½ft΃5ð|ö%v Gƒ#—. Çì‡cßäQ{:NúPB´äå»^Wø‘<€Å)÷ã÷m!ÿ¤a/ûrmõ¤ß¡‚Ø:V•:ä–Œ®A›t øtU³7¼ojƬ*ÔS¸ð68€ªiÍ\Éw¦9#Xº9>°—ó€Q,ÆÖ„…ÐcE²{q^R*𤯡pÕå±_Nxî;ÓÝ6G¨¦ÜR¼w¼Ü·¿9¦¯îôé—€rMt÷ÃR;­åæK¯6ðµ¾Ýæ =M2ì´I ¬m¤ó2CÄpå)}¾@K¢n5,¿á¯SŽ|›X_1q›._º/±,¤äIrœDú¯DsÜœ®êëARÅx¶BÉU5¯ÿ‰`/¢Æc·?ü—-„¨øîL)æÈ‚9:à3jðÄ&Ó‡ÜÉŠ& VÌÌýRbÇa ¥sÑ©S•+_ô§ÅÉK"tšPåÄ;•üã]Ue=íöy©Cˆ±´”•¡4uµ”@È¿  ] f¦âL½øÙ?*„Ê r}[,qmðáÂI*Y—ùÀrðXêTþœðMŠBÂý¸#\–M@—)R‰q‘И¿žØD@þÖ˜¶G·I ÇÙZ;uËßâÔì&¼æ¸duŽ©»Ñá_ ¿-8è´’‡]áÖiB?1oâÝ¥×n§Lªhµ µš!2Z´:•ûŠì‰Ýóu±FHÕK´œ¼$Mƒ¤l™»ŇZà+77)½‚4xÃÕì4»|ê¹å9ŒB ö¥KE¯ìÓ.ÕGW ž £¾+SŠ,j»X&n».¤fL¹Z©f^·õ£›¬’&{HêòL©ýpÛ«wÎ`a#ÒŽW£¤ 2œcÆeÂG=YøÛ#äE¶#š‹d‡·vî,•&á(¼spŠ.H™ž?"ð̲eoµ/XO6Ýe;dé³ë’¯î:蟣C‰‚¡X“«Èù7çÀ®|XŽJÚwËÀÄ< „ 戦’{Çosƒ½~@.Ýt“ c½”^ËtPXú¬õŽß*'ï›H"ƒ…ôèÌQð¨ÓÁ¤µtg®©'QÚ¡y»kKæZò&[( Æ W¢IЂŠÉ™¢°H¬\ˆK Jtâª_ÄÀcªÂiÚ·µ«Ìm³”¦.†Š«FžšÕ¤å%¾üËâ0áßÙŒËO86ä_ðpk·Ð!QQH   17î‹tq† 7iNàíqf•œqyųý”üËÍ ¾æù¡šîßE+Ú¥b+R`“"ÖzÕT¨CJ‰oS©Y·µR]ì)º°’jE¶C!Þ®àb%¯É<úÝg ›„á&P¥Ðr«GP˜È@¡H‘nÖ÷Ý ÌÈ€¬¥¶äO_£æÜ?¶=êkEyh–iƒï@ý—;®¬Àp¥àèñȲ“@äd„B$ukhÞº€§ô<æ7ÅÓx´#~âGœnezMˆtá8UÆmÌ~:¢ôÞ)V6½_ «‰†9øu/ž°…j‹šˆ;|tÛœÊä¼?íJeÚ³ái¹/ùKî<{Ò[FyÆdy‹ ƒ• çv:˜êÿÄîŽÒ‚¹þ•ìºøÓ¸¶xB­Ë‹|Ó n†KT¾XSéþ‚ZkÜdÑÔæ¦0þª~Þ7|ÇŠ_ŸÄìù]µ Ìê7‚}|!¶|/*(x>ø€&tNaa>…è.B†¿jÍe‘SŒ§XÄ9&‡Û‡D‹üÎ&@·¿ç{x™H„æt,ê‹Ãä%0„†ÓPãè¼m1° 핉¡­ëü¡Ðî¡Ì盯Zý†{¢˜59çTpÀqÑàá…qÓ&"#¹Z*ËŒòûÏèùÿ1G¹¯meáê@?®/Ÿë4ø$X®AÍRÿkø¬ç®‚[¾ óDbqçòð*Rî&¤Íþß=Fñˆ¸2ºÍ–ÐL€çòIû*®0Gˆ"ì·Œï˜ÝD@…{Lß’ü¬ññ©Å;Ã{bM;”O¼JQ ƒ©á®qe ˰CÚJ]8\è«r¿g<œ"”ŽìÒÙöøQÌs8^ø Í· L ^Ù5–?Ózê áD¬üq”Äée ¬è™¶ïG×m#¸„ç"VÕP’šŽRùl‘"2âȸ×'5îÒm‹ïîáBÇ¢ÂU6rxmðîÒ’ß{íp±*Û(²"‡T°·ˆÑþûš¾ahoZÕ–ÝÑ 'xJÑuµ¼Z’#1ëfg™^ßC©oufÍt­FÃÞ0s%ß vrYiœýTónX=dñ0Z¼q¼•FtZÆ_bwøy¿0ˆZ¾õ§¤ÜîÒ~”À#S?ªŸæ@V‡â³íz€m{[š¹0Ô~[j™fm^Àͨ‹Þ<=+¦”¶ 5}LS;ÙÖ¬ÈYœ-þÓ¿4Àj‚UË‘oº(ù\ËBçê‚§Çý=¦¨$1«r–sŠPéÐW•4ú/LE_üìdiúŽT“±°›‰«Kævö::«¶–¼öT¶ãË£¥¬ŠÚÎýõ™E£²·h8uºWË÷>'NŸ)ëžX”þªß܀缠új:×É÷IÚe2}}€ˆ$‚¹òÑ0=Î QQÍ‚ŸÅsºô5ÂëâÄ£U Ž2mèÈ‚Ib¾—u°L? |u\¼ yñé|uaUï³Mý0"h K…VP˜½Wu,Ìj3ü®Þ¿‡½ÊÕ0ÔeéJYB¸ÜÍkÉþ”Ÿ—GD=X sX¸К}Ä“÷ttD8Yè:m’áâ ²8Þ..Ý.ê,p˜Î0ôÛlP¥:>7­XxÙ¹•!úý ò{QÖç‰s¿^³¤Ê'/›Ö¦¿¼ÌØÀëå—“ëÖƒ+ñm3€ìÓ~ýY€±@Gfu6L…phgQ*‹Ú—hÞˆw×Ö¹Wù]+å—è¼% ¼¦Ñä[}Ó9¡ò«jü¼Äåy€ÆÐ¥ X û¹cÁŒ? ”‹ÞÑW"Í1mÚjof$Ð÷8ÜîNShëÚUn#”,søJ¥ÁÙçú‡l™QŠ,Ò1œä´d€IVÀ!¼Ê\»“Û…¾µpÔÙ þЩâJe‡ôÆÛûù™ÙØ ¥oÈDóóö½ fNèU8…^x%z{/6;MjVY‘PÚÕ#° Sˆp»„„[a1ŠkÚ~K¯Â{Ä â]xS±Ê|@fÆP%GíðÙ?½7øåŒLÇcŸï&oöÏ“QŶ$¨ƒ9ç¼èBÃ1jÆl‰8ôêCW *eé€<Ü¥Û?â³IDrP–ÞÈLW¸Uسð ÷/„)71aõÉ-á&Ïg®`‘¶D8Ry£e|*Ž9 êìý‰Öhëyí¢òŒŠ%8Œwȳøý)BuœZ» #È;ÑLI³‚|\^ÞÙj ØSº·¿®#nÙçV Œh[›ñ3× KÃ*ãS°n²ô‰À±,×lÃy™LY…£Ã-n+TÒq„@+°^bÈìR&Åž-Þj`_ŸÅ«@[w… ƒ=!Eþ˜ÛcA„9y¥4VÙÓyt°öÕ„Ÿ4†¢á†­4ÔÂÚõ˜Bi÷¨6r}”ØwFؼZd¸: ‡áFgS¯¨’=“‚vMÂA¾°8Çϣµý¤(/¡ý aL{®pRèÅõ CÖ—66—¢VX^4k³´ m¸íyó­ OL•@Ëþ‡c/šâ^ñ|£ÝÆÐK?œÊ#˜ÃëÑ´û>‘Í®üÓ(R3§‰[¬¹‹:êå‘64½è Ö:­A˜zì„GP€¯nÂíSZŽ FÓF‚üF07®µ³„z9DRÖ*Ý}‹eƒZYfim«k{¶Wõ5ËMCú}õÄ/”·A|¸9&m¶Ëé÷€¾+=¹"“ŽËâ‰K•,þÉäz™*tñ´ýà·\ªÄ0+•ž;6Úf©&äAzIªQ$z‚O ƒJÞ¢æìc§ö~/ø³+0É÷’Â¥æI„ѼËzjÍÒ€RK­UÏÝR’qá«X¨ég‹§.·¿×üh[ ‡Cû¶yƒmDUùq”ñƒuÔcPÛ{T¼¶q~|îÔ%9Ÿ¤ÿêpñê*|'‹½0­̃¿ææü{ذŠÓúËçå/+m†µys¦E)é´šR²ÉªG¿œk>X2&Bw¶xe!@eEA­ƒ—$Vƒ7-e6_³ïЇ¶Íéõ¨ï~¾¬4€âÚk»Ž6°:>ü¾z?äÉÇ(°+ÄPÑ¿_GÑD|è÷ïNYB Ü=Å÷`™ü“¢“m+®“=†ïUhƒ}$ïÿáþ–YÚÛBøDu¦8É¿B… 9ˆœq›.Š»áY  ´RA9MÛ¸9)–s;1ª¡¬æ‰|ªw®ë„Û/©øSð}‘È[`E<‡àry¯ºž¨@ºk‚Û!c9ý?CÛÑãà–z«µ=ëó{£÷cWïùÒ$SU˜—(³}×9NQ²­´\O‘ʬÔzºô0¢ŽE};H”ô|u0X$& ïâo¬Ù‰þ¢5àóu)VÓFB& Ê°´“.u”“ºêHøØLy²©ÀR)HqÜ ýËõÕ^ËÐLÍonìkp?¿ªyeߌ ïb}Q¡6„„dþ¥1~ø¹,aÛ9˜;*`‡#8¿ožH­Ë6м;sEÕy EjFÞ:ï8 $­’m F„‡~é@U9{àCS>óüȹ‹3\{5Çðîë\4xK¾í‘~Íö"ĬN^½%¤º],+´¨ªS ߢÊÐ*ŽÞƒ[ƒC³â_2¨ã¼ c?yÚ ÌÒAàÍeT=1$r:@&$ª¥œÒÐŽÿBu{,ÿÅâøqå¦õ伜ªDìè›É A39oÔn2Þã¹Agižgç Èëçl©%aõäNïBÁ}§Cs¨}¦üÞI—_ýÞàÿkÚGÐúéï _&SÆîÃ_*®P»žï ¬©¥yt¦¾ÔÈl¹7_Ös‡oZ=Æ>¸kþ_Æ™ÑKCjÐ÷ê‘p8Ü”ÀÂID3‰tZ4=´ãŠCw þO$“S’ï‹ËŽTm¡…¦#( ~^× §_Hõú–:°#¬ 2Ò§&©C/¡ jQM°FÖ#à‚%žW°ßDëÅŠ4ÞZX«¶´—onðcƒmkèů¬¥O]Ÿ€õzÞoLyárw3ß'c~Cu$yÉ -T“ÀÖ–=\')Si8|ì JšÖ/IcѹÑX𢆶Ýè° S0þ|èy]ß¶8nÑ–÷•f²Ä{tkR;µ lÉTJ¸lN™x¹:î Hr7rG\î°;Ûðµò’(på0ù³BaÔÉ· A¸fèÄ{^Ùm^•[´¿é }O'¡EXôÅ׊lÆPtü¯1Æa°&„f”.·HÒeĆ*£xX~Z© ž;gcsùM$¬G‘?\xé%çî‘i|Î^¿ªp*uL~=•+Æêļ@ÇÔùOà§¡ ÙfÊt/~‚º§½»„ŠÔXZ¶±@´“û:S¼LÙ˜½…ÂŽŽ,§B)ëRÉÿ•—::ÞÎMðYO¼Ò«mÀAÅP œðL@!?ñi›˜:ûè ÚΩ §“¬+ìŠ\ÿ†8c!¯Êï¥Û[pÑžFb(Ó¬ ]L–yã-i€Êþq"²oÍÓÒ¿?ñi¯Fcªº0÷±U·~ppûùS.’öø„ItªQ‰<*iŽO•ÚåÅÖú~™Ý×€Ç}W袞ßZ18=è»ç§‡¾fD¶ôôq2…Ïr±PÆ4ÅIš?Òù¹ÔIzï]„L ‘O<î,EÍœ“lxšƒlt›÷A¶ÓxÀó¯qÈGï®w~kr×~ 9[žÞˆãFŽâ-ŸPB¸ÍÑóp s5¦ó,A&û<–Bl6ä ÍZ(@HÓ©rSrX‡L\®sùQÏakhz(òÅêÊQ ¹ÖXl]×â­/¥  ݧ¶Òÿd¶'Të¡$µ`×}šÏ%€FhQ =w¡7RŸ~#25çÙ*- 'b®F©ò1dd}¹Ì=±Ð0IxŸ;_L®¯îy[± :$x€£Sº ™ý©ô¿Âå,”Rþð)N„º]Å ‚º„Z™ƒÈ1‘®Ñå*¬ð« ô¬§N ‡ ‚ý´Ê¯ ÒéwÑÄƒê¶ JŽC5ÅKþHk¡4—dˆÔãGwÌ™ä}\8OKsÞ-x=`&¡C1È’Ñ»iW=Ôö§@kT×±ý-ú•7Í–‹§G::`ƒM9’€2C Í«l5Ìé¢@AìAØ‚æmw^A >kNgðXåßIcûlZð5Ÿ§}EnäðNÌ[ïy«³ãŒŒá%5ÇÈUÊa(aíÔó¸ä5Ëòïmk–E4›ñÑJKp÷øA;¨ˆ£zQÀ’~.»¾ ÿ¼­Æ-¾ÙûÉX<ƒŒ£îÇïÚp&é`=Åõ_¹&yA‹Bi}è‹›5!¬Xª´4 xüŠo$Q5­C±Ã0‹©GÃk‹<ÌBJT¶JhÝÉ|Ñ6’‡u`¦ êoÜ^ÖMÁ¶á”Œ&@„ðW"’ó5ŠxÐ÷"8nrCKÑØí§{BÆÉ-h|Uâ¸gZ!Ëßœ9,€€x‡ð#ÆA­?x<0v´C/Õïý›ð¢(•Mnª¼0ˆÅ}²6-Úo¾Ì­EûÍ®WÇÄ}‹QÏrÉñqpí|êƒ>Kõ‡V› ×±i$ö~Êxr‹sÉ1ŒÊ’VÕà(F¹Ú/ .dFïvxž/ïí òѲ ÝC£³ü=KgØ)¤æÿòI—þÒ¶kÌ?õÏhºOðßï)¡”°“¸"Ðææly.ˆ}3ó~i›åÃtÛ"h¤|HEMº_pm“ü4º UTSŸI'Ÿ†´Z[åeÜ™"„}iÔ×Ã`´ÛRÞ¡»×¹IœF2ñéIvÔ傹`ç¢õÜ›ñÔªEÚ8äÝÆI•vÑTÓN­pd“ÑjÞŽ$'׳~ §ÐòóOñ5«IéË8]„qÿ—Ya_NCØŽ‡5ËÄOÁù®G~üOQ¨–pùPü—»nÉ9›M8WêiÑIú‰x™ÿîg&c!fÃŽÐÈOìiÇ`±Ä: é4Ô!{'Ë‚ÒÁÓ{.cÓ½š= Ô"5'Pm*Ù“¾áLav*¶GŠHmXwéi4²öŽWDæ(]1’ïfGΠ *Ñ]^û£77Å0K`IÿsWã!ˆ* m]¿ÃûňøgI)H {î^J™ÄC¿ƒèM‹N…5ÇzæÆ[L™‡§7ßCqÞ&0…m^·Í|Ö4-´pY^RW³…ˆPÙ§`öuSoÔüÏ)>¨Ué4CŒ,’ ô¸OÖhê!º=EéÝé =aA®XN¡½~õúQ¼T)†se?eRc‰dpr‰'7…ƒ•€!â«Ù‡·^ŒÞtã|fÃJéŽöm?AvKøïö¶ÿÆdœò(PObDãÕR<é+AŽºŠUÔ4ÂÉÔò°¤ÿFR¢Â ˆ9Osùýa“Ø«Ïk`a¯¡<gE$SÙÛ9ÂmŸ<ãwg(ͬ·ï%?”׫]ÈO‹Úú+ß­_öíøÉ¼–$¹zÉ6Ù?êÖÖ]§]X)¡[‹PïLqÛªšÇÁHÜ!ÀJ`œçb·š:¯þ0à3¦ôØ«“sI–^cs4&8*¾bú|%¬¾<̇Mòýd¹ok)XI–Hcô?Ü˦i/rY”EÓ( £D¤‡ Ý.4œDc*PBG¦¨(Ôw,Œ»r¦?:ˆßVøß¥gD2£ãKݪšøCàÎZå{ûÙÉnmÆÃÊëÏJ٧¬‹ß>’"Eº¢H8ç]IK{¾Üm¯0žr~²[g¡ŸÇXeN¹×Áö††g±ìëÔ+5úAäÐùB½¥Ä Zr‚!v¡¤„Žwm™QÌ H¯ÙÊ_÷ñÊAž ¯©âYŒµbuˆçi“㹞á A‰íÎFŸbm~ëÔÆ¸yál²cFWv0¶NÞ¸Z½£wE7|ÞN¹c?ì¨qëvJ‡Î]M‘¼ST&Y9V‘2›P8#Š¢Çœ½Ž~ÝepÙ+ýÄŽÕ`õ]hBRìd§ž*Uè™u€éô AHBÁmìÒU{æ°Eš;eÓ‘‚%Ù'õ9©î´‰çÌmÈ3+]Wש4¹°3SKe¢‘ü “›cDšÃæ~ô7­á8ëÏñ½¼ùß5u$dØ81tâM©/IÖp/$M~öF݇ãÀØ=¼#³äÞkÐR4ºQÓÀ‘Œj¡ ×7Va˜®­†1Ù`aY‡R…Á¼4”æäX,…©š–AAj<±ÃëZ™•™‰Ï†&qa~.ÈNË#øJfnŸ¢HAºi_䘑ƒ‰Oø · Nš•¶ivò7±|£áµy¦Êro÷þÞÖ£Ö¼ ’€óZ“ÓÅÊÅóâúøüs9ëÌü˜ÄèÖnÞÄÀ|š›ä[¾è¾WKém‹ªÄv+å"¿#ýúýD9 ‡©'úåÄI.C쟛…W&jçÊA°$ÉÎÖ‹Øc eD†ì|/K’­°è²K5Ú÷œ¤lÿfghÅ×U¸á„—¾“0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark libwmf-0.2.13/fonts/NimbusSans-Italic.afm000066400000000000000000003446331441723000300201670ustar00rootroot00000000000000StartFontMetrics 3.0 Comment Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development Comment Creation Date: 7/27/2017 FontName NimbusSans-Italic FullName Nimbus Sans Italic FamilyName Nimbus Sans Weight Regular ItalicAngle -12.0 IsFixedPitch false UnderlinePosition -151 UnderlineThickness 50 Version 1.00 Notice (URW)++,Copyright 2014 by (URW)++ Design & Development EncodingScheme AdobeStandardEncoding FontBBox -144 -284 1154 1070 CapHeight 729 XHeight 524 Descender 0 Ascender 0 StartCharMetrics 855 C 32 ; WX 278 ; N space ; B 213 0 213 0 ; C 33 ; WX 278 ; N exclam ; B 124 0 363 729 ; C 34 ; WX 355 ; N quotedbl ; B 177 464 455 709 ; C 35 ; WX 556 ; N numbersign ; B 54 -20 649 697 ; C 36 ; WX 556 ; N dollar ; B 69 -126 613 770 ; C 37 ; WX 889 ; N percent ; B 134 -20 895 709 ; C 38 ; WX 667 ; N ampersand ; B 83 -23 644 709 ; C 39 ; WX 222 ; N quoteright ; B 166 477 309 708 ; C 40 ; WX 333 ; N parenleft ; B 113 -213 446 729 ; C 41 ; WX 333 ; N parenright ; B -7 -213 325 729 ; C 42 ; WX 389 ; N asterisk ; B 169 438 471 729 ; C 43 ; WX 584 ; N plus ; B 92 -11 591 473 ; C 44 ; WX 278 ; N comma ; B 55 -150 214 103 ; C 45 ; WX 333 ; N hyphen ; B 97 240 351 312 ; C 46 ; WX 278 ; N period ; B 87 0 213 103 ; C 47 ; WX 278 ; N slash ; B -12 -20 434 729 ; C 48 ; WX 556 ; N zero ; B 99 -23 600 723 ; C 49 ; WX 556 ; N one ; B 211 0 501 723 ; C 50 ; WX 556 ; N two ; B 34 1 622 723 ; C 51 ; WX 556 ; N three ; B 72 -23 602 723 ; C 52 ; WX 556 ; N four ; B 64 0 574 723 ; C 53 ; WX 556 ; N five ; B 70 -23 629 709 ; C 54 ; WX 556 ; N six ; B 94 -23 614 723 ; C 55 ; WX 556 ; N seven ; B 137 0 671 709 ; C 56 ; WX 556 ; N eight ; B 75 -23 607 723 ; C 57 ; WX 556 ; N nine ; B 84 -23 602 723 ; C 58 ; WX 278 ; N colon ; B 110 0 326 524 ; C 59 ; WX 278 ; N semicolon ; B 78 -150 325 524 ; C 60 ; WX 584 ; N less ; B 87 -9 635 474 ; C 61 ; WX 584 ; N equal ; B 74 111 609 355 ; C 62 ; WX 584 ; N greater ; B 48 -9 596 474 ; C 63 ; WX 556 ; N question ; B 184 0 630 741 ; C 64 ; WX 1015 ; N at ; B 80 -142 1036 741 ; C 65 ; WX 667 ; N A ; B 17 0 653 729 ; C 66 ; WX 667 ; N B ; B 79 0 711 729 ; C 67 ; WX 722 ; N C ; B 112 -23 770 741 ; C 68 ; WX 722 ; N D ; B 89 0 759 729 ; C 69 ; WX 667 ; N E ; B 90 0 751 729 ; C 70 ; WX 611 ; N F ; B 90 0 734 729 ; C 71 ; WX 778 ; N G ; B 109 -23 809 741 ; C 72 ; WX 722 ; N H ; B 83 0 799 729 ; C 73 ; WX 278 ; N I ; B 100 0 349 729 ; C 74 ; WX 500 ; N J ; B 47 -23 581 729 ; C 75 ; WX 667 ; N K ; B 79 0 813 729 ; C 76 ; WX 556 ; N L ; B 80 0 551 729 ; C 77 ; WX 833 ; N M ; B 75 0 916 729 ; C 78 ; WX 722 ; N N ; B 76 0 801 729 ; C 79 ; WX 778 ; N O ; B 104 -23 828 741 ; C 80 ; WX 667 ; N P ; B 91 0 733 729 ; C 81 ; WX 778 ; N Q ; B 104 -59 828 741 ; C 82 ; WX 722 ; N R ; B 93 0 770 729 ; C 83 ; WX 667 ; N S ; B 89 -23 714 741 ; C 84 ; WX 611 ; N T ; B 158 0 748 729 ; C 85 ; WX 722 ; N U ; B 124 -23 800 729 ; C 86 ; WX 667 ; N V ; B 185 0 800 729 ; C 87 ; WX 944 ; N W ; B 177 0 1084 729 ; C 88 ; WX 667 ; N X ; B 22 0 794 729 ; C 89 ; WX 667 ; N Y ; B 168 0 816 729 ; C 90 ; WX 611 ; N Z ; B 28 0 737 729 ; C 91 ; WX 278 ; N bracketleft ; B 19 -213 405 729 ; C 92 ; WX 278 ; N backslash ; B 147 -20 280 729 ; C 93 ; WX 278 ; N bracketright ; B -23 -213 364 729 ; C 94 ; WX 469 ; N asciicircum ; B 115 329 496 709 ; C 95 ; WX 556 ; N underscore ; B -59 -176 551 -126 ; C 96 ; WX 222 ; N quoteleft ; B 163 477 308 709 ; C 97 ; WX 556 ; N a ; B 65 -23 568 539 ; C 98 ; WX 556 ; N b ; B 54 -23 588 729 ; C 99 ; WX 500 ; N c ; B 76 -23 554 539 ; C 100 ; WX 556 ; N d ; B 73 -23 650 729 ; C 101 ; WX 556 ; N e ; B 84 -23 580 539 ; C 102 ; WX 278 ; N f ; B 89 0 413 732 ; C 103 ; WX 556 ; N g ; B 32 -218 601 539 ; C 104 ; WX 556 ; N h ; B 70 0 574 729 ; C 105 ; WX 222 ; N i ; B 66 0 305 729 ; C 106 ; WX 222 ; N j ; B -65 -218 308 729 ; C 107 ; WX 500 ; N k ; B 58 0 584 729 ; C 108 ; WX 222 ; N l ; B 68 0 307 729 ; C 109 ; WX 833 ; N m ; B 71 0 852 539 ; C 110 ; WX 556 ; N n ; B 70 0 574 539 ; C 111 ; WX 556 ; N o ; B 80 -23 576 539 ; C 112 ; WX 556 ; N p ; B 7 -213 586 539 ; C 113 ; WX 556 ; N q ; B 71 -213 607 539 ; C 114 ; WX 333 ; N r ; B 69 0 436 539 ; C 115 ; WX 500 ; N s ; B 61 -23 520 539 ; C 116 ; WX 278 ; N t ; B 97 -23 366 668 ; C 117 ; WX 556 ; N u ; B 88 -23 594 524 ; C 118 ; WX 500 ; N v ; B 122 0 598 524 ; C 119 ; WX 722 ; N w ; B 118 0 820 524 ; C 120 ; WX 500 ; N x ; B 17 0 583 524 ; C 121 ; WX 500 ; N y ; B 8 -218 590 524 ; C 122 ; WX 500 ; N z ; B 31 0 557 524 ; C 123 ; WX 334 ; N braceleft ; B 91 -213 431 729 ; C 124 ; WX 260 ; N bar ; B 54 -212 315 729 ; C 125 ; WX 334 ; N braceright ; B -16 -217 324 729 ; C 126 ; WX 584 ; N asciitilde ; B 137 268 594 438 ; C 161 ; WX 333 ; N exclamdown ; B 76 -205 317 524 ; C 162 ; WX 556 ; N cent ; B 96 -120 585 628 ; C 163 ; WX 556 ; N sterling ; B 44 -23 628 729 ; C 164 ; WX 278 ; N fraction ; B -123 -20 542 709 ; C 165 ; WX 556 ; N yen ; B 100 0 696 709 ; C 166 ; WX 556 ; N florin ; B -32 -212 696 738 ; C 167 ; WX 556 ; N section ; B 63 -213 589 729 ; C 168 ; WX 556 ; N currency ; B 110 133 593 556 ; C 169 ; WX 191 ; N quotesingle ; B 173 464 292 709 ; C 170 ; WX 333 ; N quotedblleft ; B 146 477 449 709 ; C 171 ; WX 556 ; N guillemotleft ; B 147 106 548 438 ; C 172 ; WX 333 ; N guilsinglleft ; B 140 106 336 438 ; C 173 ; WX 333 ; N guilsinglright ; B 109 106 307 438 ; C 174 ; WX 500 ; N fi ; B 83 0 591 732 ; C 175 ; WX 500 ; N fl ; B 89 0 585 732 ; C 177 ; WX 556 ; N endash ; B 46 240 628 312 ; C 178 ; WX 556 ; N dagger ; B 127 -177 620 709 ; C 179 ; WX 556 ; N daggerdbl ; B 51 -177 620 709 ; C 180 ; WX 278 ; N periodcentered ; B 158 227 284 331 ; C 182 ; WX 537 ; N paragraph ; B 145 -178 677 729 ; C 183 ; WX 350 ; N bullet ; B 120 220 376 470 ; C 184 ; WX 222 ; N quotesinglbase ; B 37 -128 180 103 ; C 185 ; WX 333 ; N quotedblbase ; B 20 -128 322 103 ; C 186 ; WX 333 ; N quotedblright ; B 150 477 452 708 ; C 187 ; WX 556 ; N guillemotright ; B 121 106 518 438 ; C 188 ; WX 1000 ; N ellipsis ; B 115 0 907 103 ; C 189 ; WX 1000 ; N perthousand ; B 93 -20 1024 738 ; C 191 ; WX 611 ; N questiondown ; B 86 -217 531 524 ; C 193 ; WX 333 ; N grave ; B 179 592 357 740 ; C 194 ; WX 333 ; N acute ; B 218 592 458 740 ; C 195 ; WX 333 ; N circumflex ; B 146 591 433 741 ; C 196 ; WX 333 ; N tilde ; B 130 611 471 719 ; C 197 ; WX 333 ; N macron ; B 160 627 450 696 ; C 198 ; WX 333 ; N breve ; B 165 594 471 729 ; C 199 ; WX 333 ; N dotaccent ; B 244 612 370 715 ; C 200 ; WX 333 ; N dieresis ; B 159 612 446 715 ; C 202 ; WX 333 ; N ring ; B 216 579 396 754 ; C 203 ; WX 333 ; N cedilla ; B 1 -214 264 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 91 590 505 740 ; C 206 ; WX 333 ; N ogonek ; B 35 -205 246 0 ; C 207 ; WX 333 ; N caron ; B 176 592 463 740 ; C 208 ; WX 1000 ; N emdash ; B 42 240 1068 312 ; C 225 ; WX 1000 ; N AE ; B 11 0 1087 729 ; C 227 ; WX 370 ; N ordfeminine ; B 107 303 441 742 ; C 232 ; WX 556 ; N Lslash ; B 75 0 570 729 ; C 233 ; WX 778 ; N Oslash ; B 32 -24 867 741 ; C 234 ; WX 1000 ; N OE ; B 101 -23 1108 741 ; C 235 ; WX 365 ; N ordmasculine ; B 114 303 452 742 ; C 241 ; WX 889 ; N ae ; B 59 -23 915 539 ; C 245 ; WX 278 ; N dotlessi ; B 94 0 290 527 ; C 248 ; WX 222 ; N lslash ; B 62 0 312 729 ; C 249 ; WX 611 ; N oslash ; B 19 -30 639 541 ; C 250 ; WX 944 ; N oe ; B 85 -23 966 539 ; C 251 ; WX 611 ; N germandbls ; B 70 -20 641 729 ; C -1 ; WX 278 ; N .notdef ; B 213 0 213 0 ; C -1 ; WX 1000 ; N AEacute ; B 11 0 1087 939 ; C -1 ; WX 667 ; N Aacute ; B 17 0 667 939 ; C -1 ; WX 667 ; N Abreve ; B 17 0 683 928 ; C -1 ; WX 667 ; N Acircumflex ; B 17 0 653 940 ; C -1 ; WX 667 ; N Adieresis ; B 17 0 662 914 ; C -1 ; WX 667 ; N Agrave ; B 17 0 653 939 ; C -1 ; WX 667 ; N Alpha ; B 17 0 653 729 ; C -1 ; WX 667 ; N Alphatonos ; B 17 0 653 729 ; C -1 ; WX 667 ; N Amacron ; B 17 0 663 895 ; C -1 ; WX 667 ; N Aogonek ; B 17 -205 663 729 ; C -1 ; WX 667 ; N Aring ; B 17 0 653 953 ; C -1 ; WX 667 ; N Aringacute ; B 17 0 653 1070 ; C -1 ; WX 667 ; N Atilde ; B 17 0 680 918 ; C -1 ; WX 667 ; N Beta ; B 79 0 711 729 ; C -1 ; WX 722 ; N Cacute ; B 112 -23 770 939 ; C -1 ; WX 722 ; N Ccaron ; B 112 -23 770 939 ; C -1 ; WX 722 ; N Ccedilla ; B 112 -214 770 741 ; C -1 ; WX 722 ; N Ccircumflex ; B 112 -23 770 940 ; C -1 ; WX 722 ; N Cdotaccent ; B 113 -23 769 915 ; C -1 ; WX 667 ; N Chi ; B 22 0 794 729 ; C -1 ; WX 722 ; N Dcaron ; B 89 0 759 939 ; C -1 ; WX 722 ; N Dcroat ; B 89 0 759 729 ; C -1 ; WX 612 ; N Delta ; B 4 0 608 630 ; C -1 ; WX 667 ; N Eacute ; B 90 0 751 939 ; C -1 ; WX 667 ; N Ebreve ; B 90 0 751 928 ; C -1 ; WX 667 ; N Ecaron ; B 90 0 751 939 ; C -1 ; WX 667 ; N Ecircumflex ; B 90 0 751 940 ; C -1 ; WX 667 ; N Edieresis ; B 90 0 751 914 ; C -1 ; WX 667 ; N Edotaccent ; B 90 0 751 914 ; C -1 ; WX 667 ; N Egrave ; B 90 0 751 939 ; C -1 ; WX 667 ; N Emacron ; B 90 0 751 895 ; C -1 ; WX 723 ; N Eng ; B 109 -218 756 741 ; C -1 ; WX 667 ; N Eogonek ; B 90 -205 751 729 ; C -1 ; WX 667 ; N Epsilon ; B 90 0 751 729 ; C -1 ; WX 789 ; N Epsilontonos ; B 165 0 826 729 ; C -1 ; WX 722 ; N Eta ; B 83 0 799 729 ; C -1 ; WX 846 ; N Etatonos ; B 159 0 875 729 ; C -1 ; WX 722 ; N Eth ; B 89 0 759 729 ; C -1 ; WX 556 ; N Euro ; B 12 -22 636 709 ; C -1 ; WX 570 ; N Gamma ; B 73 0 725 729 ; C -1 ; WX 778 ; N Gbreve ; B 109 -23 809 928 ; C -1 ; WX 778 ; N Gcircumflex ; B 109 -23 809 940 ; C -1 ; WX 778 ; N Gcommaaccent ; B 109 -284 809 741 ; C -1 ; WX 778 ; N Gdotaccent ; B 110 -23 807 915 ; C -1 ; WX 604 ; N H18533 ; B 43 0 562 519 ; C -1 ; WX 354 ; N H18543 ; B 49 131 305 387 ; C -1 ; WX 354 ; N H18551 ; B 49 131 305 388 ; C -1 ; WX 722 ; N Hbar ; B 83 0 840 729 ; C -1 ; WX 722 ; N Hcircumflex ; B 83 0 799 940 ; C -1 ; WX 733 ; N IJ ; B 41 -23 767 729 ; C -1 ; WX 278 ; N Iacute ; B 100 0 479 939 ; C -1 ; WX 278 ; N Ibreve ; B 100 0 489 928 ; C -1 ; WX 278 ; N Icircumflex ; B 100 0 454 940 ; C -1 ; WX 278 ; N Idieresis ; B 100 0 467 907 ; C -1 ; WX 278 ; N Idotaccent ; B 100 0 389 914 ; C -1 ; WX 719 ; N Ifraktur ; B 71 -71 651 698 ; C -1 ; WX 278 ; N Igrave ; B 100 0 378 939 ; C -1 ; WX 278 ; N Imacron ; B 100 0 458 895 ; C -1 ; WX 278 ; N Iogonek ; B 28 -205 349 729 ; C -1 ; WX 278 ; N Iota ; B 100 0 349 729 ; C -1 ; WX 278 ; N Iotadieresis ; B 100 0 466 914 ; C -1 ; WX 389 ; N Iotatonos ; B 164 0 413 729 ; C -1 ; WX 278 ; N Itilde ; B 100 0 491 918 ; C -1 ; WX 500 ; N Jcircumflex ; B 47 -23 679 940 ; C -1 ; WX 667 ; N Kappa ; B 79 0 813 729 ; C -1 ; WX 667 ; N Kcommaaccent ; B 79 -284 813 729 ; C -1 ; WX 556 ; N Lacute ; B 80 0 551 939 ; C -1 ; WX 667 ; N Lambda ; B 16 0 652 729 ; C -1 ; WX 556 ; N Lcaron ; B 80 0 551 729 ; C -1 ; WX 556 ; N Lcommaaccent ; B 80 -284 551 729 ; C -1 ; WX 556 ; N Ldot ; B 80 0 551 729 ; C -1 ; WX 833 ; N Mu ; B 75 0 916 729 ; C -1 ; WX 722 ; N Nacute ; B 76 0 801 939 ; C -1 ; WX 722 ; N Ncaron ; B 76 0 801 939 ; C -1 ; WX 722 ; N Ncommaaccent ; B 76 -284 801 729 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 801 918 ; C -1 ; WX 722 ; N Nu ; B 76 0 801 729 ; C -1 ; WX 778 ; N Oacute ; B 104 -23 828 939 ; C -1 ; WX 778 ; N Obreve ; B 104 -23 828 928 ; C -1 ; WX 778 ; N Ocircumflex ; B 104 -23 828 940 ; C -1 ; WX 778 ; N Odieresis ; B 104 -23 828 914 ; C -1 ; WX 778 ; N Ograve ; B 104 -23 828 939 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 104 -23 841 939 ; C -1 ; WX 778 ; N Omacron ; B 104 -23 828 895 ; C -1 ; WX 775 ; N Omegatonos ; B 39 0 813 742 ; C -1 ; WX 778 ; N Omicron ; B 104 -23 828 741 ; C -1 ; WX 794 ; N Omicrontonos ; B 111 -23 835 741 ; C -1 ; WX 778 ; N Oslashacute ; B 32 -24 867 939 ; C -1 ; WX 778 ; N Otilde ; B 104 -23 828 918 ; C -1 ; WX 837 ; N Phi ; B 131 -12 859 741 ; C -1 ; WX 725 ; N Pi ; B 82 0 798 729 ; C -1 ; WX 831 ; N Psi ; B 150 0 925 729 ; C -1 ; WX 722 ; N Racute ; B 93 0 770 939 ; C -1 ; WX 722 ; N Rcaron ; B 93 0 770 939 ; C -1 ; WX 722 ; N Rcommaaccent ; B 93 -284 770 729 ; C -1 ; WX 778 ; N Rfraktur ; B 72 -6 693 604 ; C -1 ; WX 667 ; N Rho ; B 91 0 733 729 ; C -1 ; WX 1000 ; N SF010000 ; B 467 -250 1000 283 ; C -1 ; WX 1000 ; N SF020000 ; B 467 217 1000 750 ; C -1 ; WX 1000 ; N SF030000 ; B 0 -250 533 283 ; C -1 ; WX 1000 ; N SF040000 ; B 0 217 533 750 ; C -1 ; WX 1000 ; N SF050000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF060000 ; B 0 -250 1000 283 ; C -1 ; WX 1000 ; N SF070000 ; B 0 217 1000 750 ; C -1 ; WX 1000 ; N SF080000 ; B 467 -250 1000 750 ; C -1 ; WX 1000 ; N SF090000 ; B 0 -250 533 750 ; C -1 ; WX 1000 ; N SF100000 ; B 0 217 1000 283 ; C -1 ; WX 1000 ; N SF110000 ; B 467 -250 533 750 ; C -1 ; WX 1000 ; N SF190000 ; B 0 -250 533 750 ; C -1 ; WX 1000 ; N SF200000 ; B 0 -250 599 750 ; C -1 ; WX 1000 ; N SF210000 ; B 0 -250 599 283 ; C -1 ; WX 1000 ; N SF220000 ; B 0 -250 533 349 ; C -1 ; WX 1000 ; N SF230000 ; B 0 -250 599 750 ; C -1 ; WX 1000 ; N SF240000 ; B 401 -250 599 750 ; C -1 ; WX 1000 ; N SF250000 ; B 0 -250 599 349 ; C -1 ; WX 1000 ; N SF260000 ; B 0 151 599 750 ; C -1 ; WX 1000 ; N SF270000 ; B 0 217 599 750 ; C -1 ; WX 1000 ; N SF280000 ; B 0 151 533 750 ; C -1 ; WX 1000 ; N SF360000 ; B 467 -250 1000 750 ; C -1 ; WX 1000 ; N SF370000 ; B 401 -250 1000 750 ; C -1 ; WX 1000 ; N SF380000 ; B 401 151 1000 750 ; C -1 ; WX 1000 ; N SF390000 ; B 401 -250 1000 349 ; C -1 ; WX 1000 ; N SF400000 ; B 0 151 1000 750 ; C -1 ; WX 1000 ; N SF410000 ; B 0 -250 1000 349 ; C -1 ; WX 1000 ; N SF420000 ; B 401 -250 1000 750 ; C -1 ; WX 1000 ; N SF430000 ; B 0 151 1000 349 ; C -1 ; WX 1000 ; N SF440000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF450000 ; B 0 151 1000 750 ; C -1 ; WX 1000 ; N SF460000 ; B 0 217 1000 750 ; C -1 ; WX 1000 ; N SF470000 ; B 0 -250 1000 349 ; C -1 ; WX 1000 ; N SF480000 ; B 0 -250 1000 283 ; C -1 ; WX 1000 ; N SF490000 ; B 401 217 1000 750 ; C -1 ; WX 1000 ; N SF500000 ; B 467 151 1000 750 ; C -1 ; WX 1000 ; N SF510000 ; B 467 -250 1000 349 ; C -1 ; WX 1000 ; N SF520000 ; B 401 -250 1000 283 ; C -1 ; WX 1000 ; N SF530000 ; B 0 -250 1000 750 ; C -1 ; WX 1000 ; N SF540000 ; B 0 -250 1000 750 ; C -1 ; WX 667 ; N Sacute ; B 89 -23 714 939 ; C -1 ; WX 667 ; N Scaron ; B 89 -23 714 939 ; C -1 ; WX 667 ; N Scedilla ; B 89 -214 714 741 ; C -1 ; WX 667 ; N Scircumflex ; B 89 -23 714 940 ; C -1 ; WX 667 ; N Scommaaccent ; B 89 -284 714 741 ; C -1 ; WX 600 ; N Sigma ; B 29 0 712 729 ; C -1 ; WX 611 ; N Tau ; B 158 0 748 729 ; C -1 ; WX 611 ; N Tbar ; B 158 0 748 729 ; C -1 ; WX 611 ; N Tcaron ; B 158 0 748 939 ; C -1 ; WX 611 ; N Tcommaaccent ; B 138 -214 748 729 ; C -1 ; WX 778 ; N Theta ; B 106 -23 825 741 ; C -1 ; WX 667 ; N Thorn ; B 91 0 708 729 ; C -1 ; WX 722 ; N Uacute ; B 124 -23 800 939 ; C -1 ; WX 722 ; N Ubreve ; B 124 -23 800 928 ; C -1 ; WX 722 ; N Ucircumflex ; B 124 -23 800 940 ; C -1 ; WX 722 ; N Udieresis ; B 124 -23 800 914 ; C -1 ; WX 722 ; N Ugrave ; B 124 -23 800 939 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 124 -23 806 939 ; C -1 ; WX 722 ; N Umacron ; B 124 -23 800 895 ; C -1 ; WX 722 ; N Uogonek ; B 124 -205 800 729 ; C -1 ; WX 667 ; N Upsilon ; B 168 0 816 729 ; C -1 ; WX 667 ; N Upsilondieresis ; B 168 0 816 914 ; C -1 ; WX 865 ; N Upsilontonos ; B 173 0 952 729 ; C -1 ; WX 722 ; N Uring ; B 124 -23 800 953 ; C -1 ; WX 722 ; N Utilde ; B 124 -23 800 918 ; C -1 ; WX 944 ; N Wacute ; B 177 0 1084 939 ; C -1 ; WX 944 ; N Wcircumflex ; B 177 0 1084 940 ; C -1 ; WX 944 ; N Wdieresis ; B 177 0 1084 914 ; C -1 ; WX 944 ; N Wgrave ; B 177 0 1084 932 ; C -1 ; WX 648 ; N Xi ; B 62 0 738 729 ; C -1 ; WX 667 ; N Yacute ; B 168 0 816 939 ; C -1 ; WX 667 ; N Ycircumflex ; B 168 0 816 940 ; C -1 ; WX 667 ; N Ydieresis ; B 168 0 816 914 ; C -1 ; WX 667 ; N Ygrave ; B 168 0 816 939 ; C -1 ; WX 611 ; N Zacute ; B 28 0 737 939 ; C -1 ; WX 611 ; N Zcaron ; B 28 0 737 939 ; C -1 ; WX 611 ; N Zdotaccent ; B 28 0 737 914 ; C -1 ; WX 611 ; N Zeta ; B 28 0 737 729 ; C -1 ; WX 556 ; N aacute ; B 65 -23 570 740 ; C -1 ; WX 556 ; N abreve ; B 65 -23 583 729 ; C -1 ; WX 556 ; N acircumflex ; B 65 -23 568 741 ; C -1 ; WX 556 ; N adieresis ; B 65 -23 568 715 ; C -1 ; WX 889 ; N aeacute ; B 59 -23 915 740 ; C -1 ; WX 1000 ; N afii00208 ; B 42 240 1068 312 ; C -1 ; WX 667 ; N afii10017 ; B 16 0 652 729 ; C -1 ; WX 651 ; N afii10018 ; B 74 0 707 729 ; C -1 ; WX 667 ; N afii10019 ; B 81 0 711 729 ; C -1 ; WX 544 ; N afii10020 ; B 84 0 693 729 ; C -1 ; WX 704 ; N afii10021 ; B -21 -166 776 729 ; C -1 ; WX 667 ; N afii10022 ; B 85 0 745 729 ; C -1 ; WX 667 ; N afii10023 ; B 85 0 745 914 ; C -1 ; WX 917 ; N afii10024 ; B -15 0 1040 729 ; C -1 ; WX 614 ; N afii10025 ; B 101 -23 643 741 ; C -1 ; WX 715 ; N afii10026 ; B 75 0 794 729 ; C -1 ; WX 715 ; N afii10027 ; B 75 0 794 928 ; C -1 ; WX 589 ; N afii10028 ; B 66 0 710 729 ; C -1 ; WX 686 ; N afii10029 ; B 15 -2 779 729 ; C -1 ; WX 833 ; N afii10030 ; B 73 0 914 729 ; C -1 ; WX 722 ; N afii10031 ; B 80 0 796 729 ; C -1 ; WX 778 ; N afii10032 ; B 108 -23 823 741 ; C -1 ; WX 725 ; N afii10033 ; B 82 0 798 729 ; C -1 ; WX 667 ; N afii10034 ; B 92 0 732 729 ; C -1 ; WX 722 ; N afii10035 ; B 116 -23 781 741 ; C -1 ; WX 611 ; N afii10036 ; B 157 0 746 729 ; C -1 ; WX 639 ; N afii10037 ; B 144 0 785 729 ; C -1 ; WX 795 ; N afii10038 ; B 123 -10 827 739 ; C -1 ; WX 667 ; N afii10039 ; B 20 0 790 729 ; C -1 ; WX 727 ; N afii10040 ; B 76 -166 793 729 ; C -1 ; WX 673 ; N afii10041 ; B 138 0 759 729 ; C -1 ; WX 920 ; N afii10042 ; B 65 0 1006 729 ; C -1 ; WX 923 ; N afii10043 ; B 60 -166 1006 729 ; C -1 ; WX 805 ; N afii10044 ; B 114 0 819 729 ; C -1 ; WX 886 ; N afii10045 ; B 85 0 955 729 ; C -1 ; WX 651 ; N afii10046 ; B 75 0 667 729 ; C -1 ; WX 694 ; N afii10047 ; B 53 -23 743 741 ; C -1 ; WX 1022 ; N afii10048 ; B 57 -23 1055 741 ; C -1 ; WX 682 ; N afii10049 ; B 33 0 769 729 ; C -1 ; WX 492 ; N afii10050 ; B 58 0 847 877 ; C -1 ; WX 843 ; N afii10051 ; B 184 -1 831 729 ; C -1 ; WX 544 ; N afii10052 ; B 87 0 696 939 ; C -1 ; WX 708 ; N afii10053 ; B 108 -23 796 741 ; C -1 ; WX 667 ; N afii10054 ; B 92 -23 713 741 ; C -1 ; WX 278 ; N afii10055 ; B 92 0 341 729 ; C -1 ; WX 278 ; N afii10056 ; B 92 0 467 914 ; C -1 ; WX 500 ; N afii10057 ; B 48 -23 579 729 ; C -1 ; WX 1066 ; N afii10058 ; B 34 -2 1070 729 ; C -1 ; WX 982 ; N afii10059 ; B 68 0 989 729 ; C -1 ; WX 844 ; N afii10060 ; B 187 0 823 729 ; C -1 ; WX 589 ; N afii10061 ; B 66 0 669 939 ; C -1 ; WX 639 ; N afii10062 ; B 144 0 785 928 ; C -1 ; WX 556 ; N afii10065 ; B 68 -23 560 539 ; C -1 ; WX 563 ; N afii10066 ; B 89 -23 598 784 ; C -1 ; WX 522 ; N afii10067 ; B 53 0 562 524 ; C -1 ; WX 493 ; N afii10068 ; B 123 0 551 524 ; C -1 ; WX 553 ; N afii10069 ; B -20 -97 599 524 ; C -1 ; WX 556 ; N afii10070 ; B 86 -23 583 539 ; C -1 ; WX 556 ; N afii10071 ; B 86 -23 583 715 ; C -1 ; WX 688 ; N afii10072 ; B -14 0 770 524 ; C -1 ; WX 465 ; N afii10073 ; B 72 -23 489 539 ; C -1 ; WX 556 ; N afii10074 ; B 79 0 588 524 ; C -1 ; WX 556 ; N afii10075 ; B 79 0 588 729 ; C -1 ; WX 472 ; N afii10076 ; B 54 0 511 524 ; C -1 ; WX 564 ; N afii10077 ; B 45 0 586 524 ; C -1 ; WX 686 ; N afii10078 ; B 53 0 728 524 ; C -1 ; WX 550 ; N afii10079 ; B 71 0 591 524 ; C -1 ; WX 556 ; N afii10080 ; B 85 -23 581 539 ; C -1 ; WX 550 ; N afii10081 ; B 75 0 587 524 ; C -1 ; WX 556 ; N afii10082 ; B 12 -218 592 539 ; C -1 ; WX 500 ; N afii10083 ; B 76 -23 548 539 ; C -1 ; WX 833 ; N afii10084 ; B 247 0 793 524 ; C -1 ; WX 500 ; N afii10085 ; B 12 -218 591 524 ; C -1 ; WX 835 ; N afii10086 ; B 147 -218 803 662 ; C -1 ; WX 500 ; N afii10087 ; B 26 0 586 524 ; C -1 ; WX 572 ; N afii10088 ; B 87 -161 585 524 ; C -1 ; WX 518 ; N afii10089 ; B 116 0 551 524 ; C -1 ; WX 830 ; N afii10090 ; B 78 0 863 524 ; C -1 ; WX 851 ; N afii10091 ; B 84 -158 869 524 ; C -1 ; WX 621 ; N afii10092 ; B 71 0 624 524 ; C -1 ; WX 736 ; N afii10093 ; B 89 0 758 524 ; C -1 ; WX 526 ; N afii10094 ; B 71 0 527 524 ; C -1 ; WX 492 ; N afii10095 ; B 49 -23 524 539 ; C -1 ; WX 752 ; N afii10096 ; B 52 -23 763 539 ; C -1 ; WX 534 ; N afii10097 ; B 55 0 573 524 ; C -1 ; WX 339 ; N afii10098 ; B 46 0 654 672 ; C -1 ; WX 556 ; N afii10099 ; B 76 -133 575 729 ; C -1 ; WX 378 ; N afii10100 ; B 70 0 512 740 ; C -1 ; WX 496 ; N afii10101 ; B 82 -23 555 539 ; C -1 ; WX 500 ; N afii10102 ; B 71 -23 528 539 ; C -1 ; WX 222 ; N afii10103 ; B 69 0 308 729 ; C -1 ; WX 222 ; N afii10104 ; B 72 0 391 715 ; C -1 ; WX 222 ; N afii10105 ; B -66 -221 307 729 ; C -1 ; WX 910 ; N afii10106 ; B 47 0 896 524 ; C -1 ; WX 828 ; N afii10107 ; B 60 0 840 524 ; C -1 ; WX 556 ; N afii10108 ; B 76 0 575 729 ; C -1 ; WX 472 ; N afii10109 ; B 54 0 528 740 ; C -1 ; WX 500 ; N afii10110 ; B 12 -218 591 729 ; C -1 ; WX 724 ; N afii10145 ; B 81 -166 798 729 ; C -1 ; WX 556 ; N afii10193 ; B 85 -161 583 524 ; C -1 ; WX 556 ; N afii10846 ; B 86 -23 583 539 ; C -1 ; WX 889 ; N afii61248 ; B 155 -16 877 727 ; C -1 ; WX 323 ; N afii61289 ; B 11 -18 372 739 ; C -1 ; WX 1083 ; N afii61352 ; B 80 0 1154 741 ; C -1 ; WX 556 ; N agrave ; B 65 -23 568 740 ; C -1 ; WX 500 ; N aleph ; B 28 0 473 631 ; C -1 ; WX 570 ; N alpha ; B 77 -23 691 538 ; C -1 ; WX 570 ; N alphatonos ; B 82 -23 691 779 ; C -1 ; WX 556 ; N amacron ; B 65 -23 568 696 ; C -1 ; WX 1000 ; N angle ; B 211 0 789 417 ; C -1 ; WX 333 ; N angleleft ; B 58 -125 275 602 ; C -1 ; WX 333 ; N angleright ; B 58 -125 275 602 ; C -1 ; WX 556 ; N aogonek ; B 65 -205 571 539 ; C -1 ; WX 549 ; N approxequal ; B 60 75 589 386 ; C -1 ; WX 556 ; N aring ; B 65 -23 568 754 ; C -1 ; WX 556 ; N aringacute ; B 65 -23 568 880 ; C -1 ; WX 1000 ; N arrowboth ; B 123 143 879 479 ; C -1 ; WX 722 ; N arrowdblboth ; B 1 73 722 518 ; C -1 ; WX 722 ; N arrowdbldown ; B 139 0 583 648 ; C -1 ; WX 722 ; N arrowdblleft ; B 8 73 713 518 ; C -1 ; WX 722 ; N arrowdblright ; B 9 73 714 518 ; C -1 ; WX 722 ; N arrowdblup ; B 139 0 583 648 ; C -1 ; WX 500 ; N arrowdown ; B 80 -102 416 725 ; C -1 ; WX 1000 ; N arrowleft ; B 86 143 913 479 ; C -1 ; WX 1000 ; N arrowright ; B 86 143 913 479 ; C -1 ; WX 500 ; N arrowup ; B 80 -102 416 725 ; C -1 ; WX 500 ; N arrowupdn ; B 82 -42 418 714 ; C -1 ; WX 500 ; N arrowupdnbse ; B 82 -111 418 782 ; C -1 ; WX 1000 ; N asteriskmath ; B 357 101 643 382 ; C -1 ; WX 556 ; N atilde ; B 65 -23 583 719 ; C -1 ; WX 571 ; N beta ; B 32 -218 606 741 ; C -1 ; WX 1000 ; N block ; B 0 -250 1000 750 ; C -1 ; WX 260 ; N brokenbar ; B 54 -212 315 729 ; C -1 ; WX 500 ; N cacute ; B 76 -23 575 740 ; C -1 ; WX 1000 ; N carriagereturn ; B 162 144 884 522 ; C -1 ; WX 500 ; N ccaron ; B 76 -23 563 740 ; C -1 ; WX 500 ; N ccedilla ; B 76 -214 554 539 ; C -1 ; WX 500 ; N ccircumflex ; B 76 -23 554 741 ; C -1 ; WX 500 ; N cdotaccent ; B 76 -23 554 715 ; C -1 ; WX 546 ; N chi ; B -7 -218 601 524 ; C -1 ; WX 604 ; N circle ; B 23 86 581 644 ; C -1 ; WX 1000 ; N circlemultiply ; B 141 -24 858 695 ; C -1 ; WX 656 ; N club ; B -37 0 693 729 ; C -1 ; WX 1000 ; N congruent ; B 259 97 740 435 ; C -1 ; WX 737 ; N copyright ; B 55 -22 836 742 ; C -1 ; WX 643 ; N dcaron ; B 69 -23 806 729 ; C -1 ; WX 556 ; N dcroat ; B 73 -23 695 729 ; C -1 ; WX 400 ; N degree ; B 188 383 491 686 ; C -1 ; WX 556 ; N delta ; B 85 -23 621 729 ; C -1 ; WX 510 ; N diamond ; B -8 -28 546 757 ; C -1 ; WX 333 ; N dieresistonos ; B 162 605 450 859 ; C -1 ; WX 584 ; N divide ; B 92 0 591 462 ; C -1 ; WX 996 ; N dkshade ; B -2 -250 998 750 ; C -1 ; WX 1000 ; N dnblock ; B 0 -250 1000 250 ; C -1 ; WX 556 ; N eacute ; B 84 -23 580 740 ; C -1 ; WX 556 ; N ebreve ; B 84 -23 586 729 ; C -1 ; WX 556 ; N ecaron ; B 84 -23 580 740 ; C -1 ; WX 556 ; N ecircumflex ; B 84 -23 580 741 ; C -1 ; WX 556 ; N edieresis ; B 84 -23 580 715 ; C -1 ; WX 556 ; N edotaccent ; B 84 -23 580 715 ; C -1 ; WX 556 ; N egrave ; B 84 -23 580 740 ; C -1 ; WX 333 ; N eightsuperior ; B 96 270 429 709 ; C -1 ; WX 1000 ; N element ; B 233 0 767 494 ; C -1 ; WX 556 ; N emacron ; B 84 -23 580 696 ; C -1 ; WX 1000 ; N emptyset ; B 95 -13 901 693 ; C -1 ; WX 556 ; N eng ; B 70 -218 574 539 ; C -1 ; WX 556 ; N eogonek ; B 84 -205 580 539 ; C -1 ; WX 439 ; N epsilon ; B 43 -23 509 539 ; C -1 ; WX 439 ; N epsilontonos ; B 43 -23 509 779 ; C -1 ; WX 584 ; N equivalence ; B 61 51 622 415 ; C -1 ; WX 600 ; N estimated ; B 73 -13 546 529 ; C -1 ; WX 555 ; N eta ; B 68 -218 572 539 ; C -1 ; WX 555 ; N etatonos ; B 68 -218 572 779 ; C -1 ; WX 556 ; N eth ; B 80 -23 576 743 ; C -1 ; WX 500 ; N exclamdbl ; B 89 0 585 729 ; C -1 ; WX 424 ; N existential ; B 51 0 376 577 ; C -1 ; WX 750 ; N female ; B 189 51 561 729 ; C -1 ; WX 556 ; N ff ; B 89 0 691 732 ; C -1 ; WX 778 ; N ffi ; B 89 0 861 732 ; C -1 ; WX 778 ; N ffl ; B 89 0 863 732 ; C -1 ; WX 604 ; N filledbox ; B -63 0 666 729 ; C -1 ; WX 1000 ; N filledrect ; B 136 0 865 365 ; C -1 ; WX 834 ; N fiveeighths ; B 123 -20 853 725 ; C -1 ; WX 333 ; N fivesuperior ; B 93 270 444 709 ; C -1 ; WX 333 ; N foursuperior ; B 88 284 412 709 ; C -1 ; WX 556 ; N franc ; B 33 0 671 710 ; C -1 ; WX 500 ; N gamma ; B 123 -218 599 524 ; C -1 ; WX 556 ; N gbreve ; B 32 -218 601 729 ; C -1 ; WX 556 ; N gcircumflex ; B 32 -218 601 741 ; C -1 ; WX 556 ; N gcommaaccent ; B 17 -218 586 813 ; C -1 ; WX 556 ; N gdotaccent ; B 32 -218 600 715 ; C -1 ; WX 741 ; N gradient ; B 69 0 673 630 ; C -1 ; WX 549 ; N greaterequal ; B 39 0 609 584 ; C -1 ; WX 556 ; N hbar ; B 70 0 573 729 ; C -1 ; WX 556 ; N hcircumflex ; B 70 0 574 940 ; C -1 ; WX 594 ; N heart ; B -26 -28 620 729 ; C -1 ; WX 604 ; N house ; B 11 0 594 729 ; C -1 ; WX 278 ; N iacute ; B 94 0 431 740 ; C -1 ; WX 278 ; N ibreve ; B 94 0 444 729 ; C -1 ; WX 278 ; N icircumflex ; B 94 0 406 741 ; C -1 ; WX 278 ; N idieresis ; B 94 0 419 708 ; C -1 ; WX 278 ; N igrave ; B 94 0 330 740 ; C -1 ; WX 444 ; N ij ; B 80 -218 518 729 ; C -1 ; WX 278 ; N imacron ; B 94 0 401 696 ; C -1 ; WX 713 ; N infinity ; B 78 124 747 404 ; C -1 ; WX 274 ; N integral ; B 15 -105 287 913 ; C -1 ; WX 604 ; N integralbt ; B 179 -205 352 800 ; C -1 ; WX 604 ; N integraltp ; B 279 -205 452 800 ; C -1 ; WX 719 ; N intersection ; B 119 0 599 611 ; C -1 ; WX 604 ; N invbullet ; B -8 0 612 620 ; C -1 ; WX 604 ; N invcircle ; B -63 0 666 729 ; C -1 ; WX 1052 ; N invsmileface ; B 162 0 892 730 ; C -1 ; WX 222 ; N iogonek ; B 0 -205 305 729 ; C -1 ; WX 222 ; N iota ; B 69 0 264 524 ; C -1 ; WX 222 ; N iotadieresis ; B 69 0 392 715 ; C -1 ; WX 222 ; N iotadieresistonos ; B 69 0 395 859 ; C -1 ; WX 222 ; N iotatonos ; B 69 0 318 779 ; C -1 ; WX 278 ; N itilde ; B 94 0 444 719 ; C -1 ; WX 222 ; N jcircumflex ; B -65 -218 369 741 ; C -1 ; WX 500 ; N kappa ; B 56 0 587 524 ; C -1 ; WX 500 ; N kcommaaccent ; B 58 -284 584 729 ; C -1 ; WX 500 ; N kgreenlandic ; B 55 0 594 524 ; C -1 ; WX 222 ; N lacute ; B 68 0 463 939 ; C -1 ; WX 492 ; N lambda ; B 18 0 476 729 ; C -1 ; WX 299 ; N lcaron ; B 64 0 463 729 ; C -1 ; WX 222 ; N lcommaaccent ; B -1 -284 307 729 ; C -1 ; WX 400 ; N ldot ; B 85 0 439 729 ; C -1 ; WX 549 ; N lessequal ; B 28 0 642 584 ; C -1 ; WX 1000 ; N lfblock ; B 0 -250 500 750 ; C -1 ; WX 556 ; N lira ; B 44 -23 628 729 ; C -1 ; WX 584 ; N logicalnot ; B 99 86 619 377 ; C -1 ; WX 222 ; N longs ; B 61 0 385 732 ; C -1 ; WX 471 ; N lozenge ; B 7 0 453 744 ; C -1 ; WX 996 ; N ltshade ; B 31 -83 865 750 ; C -1 ; WX 750 ; N male ; B 103 158 648 729 ; C -1 ; WX 584 ; N minus ; B 81 197 601 269 ; C -1 ; WX 188 ; N minute ; B 90 417 218 673 ; C -1 ; WX 556 ; N mu ; B 18 -220 593 524 ; C -1 ; WX 584 ; N multiply ; B 113 34 568 427 ; C -1 ; WX 500 ; N musicalnote ; B 51 18 449 729 ; C -1 ; WX 750 ; N musicalnotedbl ; B 82 -29 638 645 ; C -1 ; WX 556 ; N nacute ; B 70 0 580 740 ; C -1 ; WX 615 ; N napostrophe ; B 101 0 616 729 ; C -1 ; WX 556 ; N ncaron ; B 70 0 578 740 ; C -1 ; WX 556 ; N ncommaaccent ; B 70 -284 574 539 ; C -1 ; WX 333 ; N ninesuperior ; B 101 270 426 709 ; C -1 ; WX 1000 ; N notelement ; B 233 -63 767 577 ; C -1 ; WX 549 ; N notequal ; B 57 2 592 480 ; C -1 ; WX 1000 ; N notsubset ; B 233 -63 767 567 ; C -1 ; WX 365 ; N nsuperior ; B 110 284 428 609 ; C -1 ; WX 556 ; N ntilde ; B 70 0 589 719 ; C -1 ; WX 500 ; N nu ; B 123 0 599 524 ; C -1 ; WX 556 ; N oacute ; B 80 -23 576 740 ; C -1 ; WX 556 ; N obreve ; B 80 -23 583 729 ; C -1 ; WX 556 ; N ocircumflex ; B 80 -23 576 741 ; C -1 ; WX 556 ; N odieresis ; B 80 -23 576 715 ; C -1 ; WX 556 ; N ograve ; B 80 -23 576 740 ; C -1 ; WX 556 ; N ohungarumlaut ; B 80 -23 683 740 ; C -1 ; WX 556 ; N omacron ; B 80 -23 576 696 ; C -1 ; WX 779 ; N omega ; B 126 -23 753 524 ; C -1 ; WX 779 ; N omega1 ; B 134 -11 764 524 ; C -1 ; WX 779 ; N omegatonos ; B 126 -23 753 779 ; C -1 ; WX 556 ; N omicron ; B 84 -23 581 539 ; C -1 ; WX 556 ; N omicrontonos ; B 84 -23 581 779 ; C -1 ; WX 834 ; N oneeighth ; B 134 -20 851 709 ; C -1 ; WX 834 ; N onehalf ; B 127 -20 874 709 ; C -1 ; WX 834 ; N onequarter ; B 149 -20 846 709 ; C -1 ; WX 333 ; N onesuperior ; B 176 284 364 709 ; C -1 ; WX 498 ; N openbullet ; B 57 83 437 463 ; C -1 ; WX 979 ; N orthogonal ; B 50 0 930 870 ; C -1 ; WX 611 ; N oslashacute ; B 19 -30 639 740 ; C -1 ; WX 556 ; N otilde ; B 80 -23 583 719 ; C -1 ; WX 476 ; N partialdiff ; B 22 -15 458 750 ; C -1 ; WX 1000 ; N perpendicular ; B 201 0 799 598 ; C -1 ; WX 1094 ; N peseta ; B 107 -20 1083 710 ; C -1 ; WX 652 ; N phi ; B 80 -218 672 539 ; C -1 ; WX 556 ; N phi1 ; B 77 -218 595 662 ; C -1 ; WX 670 ; N pi ; B 132 0 725 524 ; C -1 ; WX 584 ; N plusminus ; B 50 0 625 633 ; C -1 ; WX 996 ; N product ; B 140 -241 903 720 ; C -1 ; WX 1000 ; N propersubset ; B 233 0 767 494 ; C -1 ; WX 1000 ; N propersuperset ; B 233 0 767 494 ; C -1 ; WX 1000 ; N proportional ; B 197 102 682 379 ; C -1 ; WX 728 ; N psi ; B 126 -218 749 524 ; C -1 ; WX 222 ; N quotereversed ; B 188 477 308 708 ; C -1 ; WX 333 ; N racute ; B 69 0 498 740 ; C -1 ; WX 453 ; N radical ; B 58 -36 661 913 ; C -1 ; WX 333 ; N rcaron ; B 69 0 486 740 ; C -1 ; WX 333 ; N rcommaaccent ; B 5 -284 436 539 ; C -1 ; WX 1000 ; N reflexsubset ; B 233 0 767 599 ; C -1 ; WX 1000 ; N reflexsuperset ; B 233 0 767 599 ; C -1 ; WX 737 ; N registered ; B 55 -22 836 742 ; C -1 ; WX 584 ; N revlogicalnot ; B 52 86 618 377 ; C -1 ; WX 573 ; N rho ; B 13 -218 594 540 ; C -1 ; WX 1000 ; N rtblock ; B 500 -250 1000 750 ; C -1 ; WX 500 ; N sacute ; B 61 -23 545 740 ; C -1 ; WX 500 ; N scaron ; B 61 -23 547 740 ; C -1 ; WX 500 ; N scedilla ; B 61 -214 520 539 ; C -1 ; WX 500 ; N scircumflex ; B 61 -23 520 741 ; C -1 ; WX 500 ; N scommaaccent ; B 61 -284 520 539 ; C -1 ; WX 354 ; N second ; B 95 417 356 673 ; C -1 ; WX 834 ; N seveneighths ; B 100 -20 843 725 ; C -1 ; WX 333 ; N sevensuperior ; B 134 284 471 709 ; C -1 ; WX 996 ; N shade ; B -2 -250 998 750 ; C -1 ; WX 603 ; N sigma ; B 98 -23 682 539 ; C -1 ; WX 333 ; N sixsuperior ; B 107 270 433 709 ; C -1 ; WX 1021 ; N smileface ; B 146 0 876 730 ; C -1 ; WX 531 ; N spade ; B 4 0 600 757 ; C -1 ; WX 1000 ; N suchthat ; B 233 0 767 494 ; C -1 ; WX 996 ; N summation ; B 227 -134 726 746 ; C -1 ; WX 917 ; N sun ; B 77 -17 841 746 ; C -1 ; WX 374 ; N tau ; B 100 0 482 524 ; C -1 ; WX 278 ; N tbar ; B 89 -23 366 668 ; C -1 ; WX 317 ; N tcaron ; B 96 -23 491 801 ; C -1 ; WX 278 ; N tcommaaccent ; B -29 -214 366 668 ; C -1 ; WX 1000 ; N therefore ; B 187 -3 807 625 ; C -1 ; WX 542 ; N theta ; B 92 -23 604 745 ; C -1 ; WX 550 ; N theta1 ; B 52 -24 632 744 ; C -1 ; WX 556 ; N thorn ; B 7 -213 586 729 ; C -1 ; WX 834 ; N threeeighths ; B 119 -20 853 709 ; C -1 ; WX 834 ; N threequarters ; B 108 -20 844 709 ; C -1 ; WX 333 ; N threesuperior ; B 94 270 426 709 ; C -1 ; WX 333 ; N tonos ; B 272 584 373 779 ; C -1 ; WX 1000 ; N trademark ; B 208 292 1096 729 ; C -1 ; WX 990 ; N triagdn ; B 195 39 795 600 ; C -1 ; WX 990 ; N triaglf ; B 193 137 759 537 ; C -1 ; WX 990 ; N triagrt ; B 232 137 798 537 ; C -1 ; WX 990 ; N triagup ; B 195 67 795 628 ; C -1 ; WX 333 ; N twosuperior ; B 71 284 439 709 ; C -1 ; WX 556 ; N uacute ; B 88 -23 594 740 ; C -1 ; WX 556 ; N ubreve ; B 88 -23 594 729 ; C -1 ; WX 556 ; N ucircumflex ; B 88 -23 594 741 ; C -1 ; WX 556 ; N udieresis ; B 88 -23 594 715 ; C -1 ; WX 556 ; N ugrave ; B 88 -23 594 740 ; C -1 ; WX 556 ; N uhungarumlaut ; B 88 -23 683 740 ; C -1 ; WX 556 ; N umacron ; B 88 -23 594 696 ; C -1 ; WX 552 ; N underscoredbl ; B -74 -236 560 -76 ; C -1 ; WX 278 ; N uni00A0 ; B 213 0 213 0 ; C -1 ; WX 333 ; N uni00AD ; B 97 240 351 312 ; C -1 ; WX 611 ; N uni021A ; B 158 -284 748 729 ; C -1 ; WX 278 ; N uni021B ; B 55 -284 366 668 ; C -1 ; WX 333 ; N uni02C9 ; B 160 627 450 696 ; C -1 ; WX 278 ; N uni0387 ; B 158 227 284 331 ; C -1 ; WX 671 ; N uni0394 ; B -10 0 681 729 ; C -1 ; WX 761 ; N uni03A9 ; B 32 0 806 742 ; C -1 ; WX 548 ; N uni03BC ; B 19 -218 594 524 ; C -1 ; WX 486 ; N uni03C2 ; B 76 -218 559 539 ; C -1 ; WX 667 ; N uni0400 ; B 90 0 751 939 ; C -1 ; WX 715 ; N uni040D ; B 75 0 794 939 ; C -1 ; WX 556 ; N uni0450 ; B 84 -23 580 740 ; C -1 ; WX 556 ; N uni045D ; B 79 0 588 740 ; C -1 ; WX 760 ; N uni0462 ; B 80 0 731 729 ; C -1 ; WX 779 ; N uni0463 ; B 128 0 705 669 ; C -1 ; WX 778 ; N uni0472 ; B 94 -23 818 741 ; C -1 ; WX 556 ; N uni0473 ; B 85 -23 581 539 ; C -1 ; WX 760 ; N uni0474 ; B 168 0 824 739 ; C -1 ; WX 590 ; N uni0475 ; B 166 0 643 531 ; C -1 ; WX 538 ; N uni0492 ; B 80 0 689 729 ; C -1 ; WX 389 ; N uni0493 ; B 71 0 499 524 ; C -1 ; WX 1027 ; N uni0496 ; B 1 -159 1085 729 ; C -1 ; WX 819 ; N uni0497 ; B 2 -161 852 524 ; C -1 ; WX 614 ; N uni0498 ; B 101 -214 643 741 ; C -1 ; WX 465 ; N uni0499 ; B 65 -214 490 539 ; C -1 ; WX 666 ; N uni049A ; B 80 -166 668 729 ; C -1 ; WX 539 ; N uni049B ; B 71 -159 529 524 ; C -1 ; WX 618 ; N uni049C ; B 80 0 724 729 ; C -1 ; WX 505 ; N uni049D ; B 71 0 572 524 ; C -1 ; WX 589 ; N uni04A0 ; B -64 0 710 729 ; C -1 ; WX 472 ; N uni04A1 ; B -59 0 512 524 ; C -1 ; WX 722 ; N uni04A2 ; B 81 -166 797 729 ; C -1 ; WX 550 ; N uni04A3 ; B 71 -161 591 524 ; C -1 ; WX 722 ; N uni04AA ; B 112 -214 770 741 ; C -1 ; WX 500 ; N uni04AB ; B 76 -214 554 539 ; C -1 ; WX 667 ; N uni04AE ; B 168 0 816 729 ; C -1 ; WX 500 ; N uni04AF ; B 133 -218 591 524 ; C -1 ; WX 667 ; N uni04B0 ; B 168 0 816 729 ; C -1 ; WX 500 ; N uni04B1 ; B 75 -218 591 524 ; C -1 ; WX 709 ; N uni04B2 ; B 20 -166 790 729 ; C -1 ; WX 527 ; N uni04B3 ; B 22 -159 582 524 ; C -1 ; WX 695 ; N uni04B6 ; B 149 -166 770 729 ; C -1 ; WX 504 ; N uni04B7 ; B 110 -159 547 524 ; C -1 ; WX 695 ; N uni04B8 ; B 149 0 770 729 ; C -1 ; WX 504 ; N uni04B9 ; B 110 0 547 524 ; C -1 ; WX 695 ; N uni04BA ; B 61 0 682 729 ; C -1 ; WX 567 ; N uni04BB ; B 82 0 581 729 ; C -1 ; WX 278 ; N uni04C0 ; B 92 0 341 729 ; C -1 ; WX 673 ; N uni04CB ; B 138 -159 759 729 ; C -1 ; WX 518 ; N uni04CC ; B 116 -161 551 524 ; C -1 ; WX 278 ; N uni04CF ; B 92 0 341 729 ; C -1 ; WX 778 ; N uni04D8 ; B 103 -24 828 741 ; C -1 ; WX 715 ; N uni04E2 ; B 75 0 794 867 ; C -1 ; WX 556 ; N uni04E3 ; B 79 0 588 658 ; C -1 ; WX 778 ; N uni04E8 ; B 108 -24 823 741 ; C -1 ; WX 556 ; N uni04E9 ; B 85 -23 581 539 ; C -1 ; WX 639 ; N uni04EE ; B 144 0 785 878 ; C -1 ; WX 500 ; N uni04EF ; B 12 -218 591 668 ; C -1 ; WX 500 ; N uni2002 ; B 0 0 0 0 ; C -1 ; WX 333 ; N uni203E ; B 49 855 659 905 ; C -1 ; WX 916 ; N uni20AF ; B 37 -174 854 632 ; C -1 ; WX 996 ; N uni20DD ; B 141 2 855 716 ; C -1 ; WX 572 ; N uni210F ; B 45 -8 527 711 ; C -1 ; WX 830 ; N uni2112 ; B 45 0 785 772 ; C -1 ; WX 759 ; N uni211E ; B 158 0 672 667 ; C -1 ; WX 609 ; N uni2120 ; B 26 382 562 678 ; C -1 ; WX 768 ; N uni2126 ; B 28 0 824 741 ; C -1 ; WX 608 ; N uni2128 ; B -3 -197 587 691 ; C -1 ; WX 664 ; N uni212D ; B 57 -74 665 697 ; C -1 ; WX 498 ; N uni212F ; B 60 -19 452 472 ; C -1 ; WX 442 ; N uni2136 ; B 35 0 446 532 ; C -1 ; WX 332 ; N uni2137 ; B 57 0 302 533 ; C -1 ; WX 719 ; N uni2196 ; B -11 -53 710 661 ; C -1 ; WX 719 ; N uni2197 ; B -5 -53 716 661 ; C -1 ; WX 719 ; N uni2198 ; B -5 -53 716 661 ; C -1 ; WX 719 ; N uni2199 ; B -11 -53 710 661 ; C -1 ; WX 996 ; N uni21C4 ; B 118 60 875 651 ; C -1 ; WX 996 ; N uni21C6 ; B 118 60 875 651 ; C -1 ; WX 719 ; N uni21D5 ; B 115 -55 604 679 ; C -1 ; WX 535 ; N uni220D ; B 94 0 513 455 ; C -1 ; WX 996 ; N uni2213 ; B 260 -11 735 612 ; C -1 ; WX 278 ; N uni2215 ; B -123 -20 542 709 ; C -1 ; WX 278 ; N uni2219 ; B 158 227 284 331 ; C -1 ; WX 722 ; N uni2223 ; B 328 -250 395 750 ; C -1 ; WX 719 ; N uni2225 ; B 252 -255 467 886 ; C -1 ; WX 1000 ; N uni2227 ; B 243 0 757 513 ; C -1 ; WX 1000 ; N uni2228 ; B 243 0 757 513 ; C -1 ; WX 996 ; N uni222E ; B 278 -257 704 972 ; C -1 ; WX 996 ; N uni2235 ; B 187 -3 807 625 ; C -1 ; WX 996 ; N uni2237 ; B 188 -3 808 625 ; C -1 ; WX 996 ; N uni2262 ; B 260 1 735 565 ; C -1 ; WX 996 ; N uni226A ; B 169 -43 824 583 ; C -1 ; WX 996 ; N uni226B ; B 169 -43 824 583 ; C -1 ; WX 996 ; N uni2285 ; B 233 -63 767 567 ; C -1 ; WX 1000 ; N uni2295 ; B 140 -3 860 716 ; C -1 ; WX 996 ; N uni2296 ; B 138 -25 858 696 ; C -1 ; WX 996 ; N uni2298 ; B 139 -24 856 695 ; C -1 ; WX 996 ; N uni2299 ; B 138 -25 858 696 ; C -1 ; WX 996 ; N uni22A2 ; B 181 0 809 556 ; C -1 ; WX 996 ; N uni22A3 ; B 181 0 809 556 ; C -1 ; WX 996 ; N uni22A4 ; B 222 0 768 632 ; C -1 ; WX 996 ; N uni22BB ; B 216 -145 779 582 ; C -1 ; WX 996 ; N uni256D ; B 466 -250 998 282 ; C -1 ; WX 996 ; N uni256E ; B -2 -250 530 282 ; C -1 ; WX 996 ; N uni256F ; B -2 219 530 750 ; C -1 ; WX 996 ; N uni2570 ; B 466 219 998 750 ; C -1 ; WX 604 ; N uni25A1 ; B 43 0 562 519 ; C -1 ; WX 719 ; N uni25B5 ; B 122 37 598 508 ; C -1 ; WX 719 ; N uni25B9 ; B 127 31 593 512 ; C -1 ; WX 719 ; N uni25BF ; B 122 36 598 507 ; C -1 ; WX 719 ; N uni25C3 ; B 127 31 593 512 ; C -1 ; WX 996 ; N uni25C6 ; B 241 39 767 623 ; C -1 ; WX 996 ; N uni25C7 ; B 190 -11 811 676 ; C -1 ; WX 719 ; N uni301A ; B 219 -155 501 795 ; C -1 ; WX 719 ; N uni301B ; B 219 -155 501 795 ; C -1 ; WX 719 ; N uniEFBF ; B -144 3 748 880 ; C -1 ; WX 719 ; N uniEFC0 ; B 1 -192 472 883 ; C -1 ; WX 719 ; N uniEFC1 ; B 1 -194 472 884 ; C -1 ; WX 719 ; N uniEFC2 ; B -7 -247 728 749 ; C -1 ; WX 719 ; N uniEFC3 ; B -7 -247 728 749 ; C -1 ; WX 719 ; N uniEFC4 ; B 248 -192 720 883 ; C -1 ; WX 719 ; N uniEFC5 ; B 248 -194 720 884 ; C -1 ; WX 719 ; N uniEFC6 ; B 45 -247 676 750 ; C -1 ; WX 719 ; N uniEFC7 ; B 45 -247 676 749 ; C -1 ; WX 719 ; N uniEFC8 ; B 45 -247 676 749 ; C -1 ; WX 719 ; N uniEFC9 ; B 248 -194 472 883 ; C -1 ; WX 719 ; N uniEFCA ; B 124 -80 596 521 ; C -1 ; WX 719 ; N uniEFCB ; B 1 190 720 412 ; C -1 ; WX 719 ; N uniEFCC ; B 313 -189 749 880 ; C -1 ; WX 719 ; N uniEFCD ; B -20 -192 755 884 ; C -1 ; WX 719 ; N uniEFCE ; B 1 -192 669 182 ; C -1 ; WX 719 ; N uniEFCF ; B -26 -192 408 884 ; C -1 ; WX 719 ; N uniEFD0 ; B 1 510 640 884 ; C -1 ; WX 719 ; N uniEFD1 ; B -26 -192 749 884 ; C -1 ; WX 719 ; N uniEFD2 ; B -23 -192 747 883 ; C -1 ; WX 719 ; N uniEFD3 ; B -22 -192 747 884 ; C -1 ; WX 719 ; N uniEFD4 ; B 132 -247 597 749 ; C -1 ; WX 572 ; N uniEFD5 ; B 22 -245 552 495 ; C -1 ; WX 996 ; N uniEFD6 ; B 103 305 831 690 ; C -1 ; WX 996 ; N uniEFD7 ; B 117 -25 880 739 ; C -1 ; WX 996 ; N uniEFD8 ; B 117 -25 880 739 ; C -1 ; WX 996 ; N uniEFD9 ; B 23 269 972 668 ; C -1 ; WX 996 ; N uniEFDA ; B 117 -25 880 739 ; C -1 ; WX 996 ; N uniEFDB ; B 117 -25 880 739 ; C -1 ; WX 719 ; N uniEFDC ; B 88 -199 399 883 ; C -1 ; WX 719 ; N uniEFDD ; B 313 -247 415 883 ; C -1 ; WX 719 ; N uniEFDE ; B 145 -247 416 749 ; C -1 ; WX 719 ; N uniEFDF ; B 313 -247 596 749 ; C -1 ; WX 719 ; N uniEFE0 ; B 145 -247 414 751 ; C -1 ; WX 719 ; N uniEFE1 ; B 313 -247 583 749 ; C -1 ; WX 719 ; N uniEFE2 ; B 139 -247 417 749 ; C -1 ; WX 719 ; N uniEFE3 ; B 313 -247 589 749 ; C -1 ; WX 719 ; N uniEFE4 ; B 1 -192 400 883 ; C -1 ; WX 719 ; N uniEFE5 ; B 1 -194 400 884 ; C -1 ; WX 719 ; N uniEFE6 ; B 320 -192 720 883 ; C -1 ; WX 719 ; N uniEFE7 ; B 320 -194 720 884 ; C -1 ; WX 719 ; N uniEFE8 ; B 1 267 720 325 ; C -1 ; WX 719 ; N uniEFE9 ; B 1 804 720 947 ; C -1 ; WX 719 ; N uniEFEA ; B 1 804 720 884 ; C -1 ; WX 719 ; N uniEFEB ; B 1 -192 720 -113 ; C -1 ; WX 535 ; N uniEFEC ; B 45 -21 513 494 ; C -1 ; WX 996 ; N uniEFFA ; B 143 0 855 711 ; C -1 ; WX 996 ; N uniEFFB ; B 142 0 853 711 ; C -1 ; WX 996 ; N uniEFFC ; B 142 0 853 711 ; C -1 ; WX 996 ; N uniEFFD ; B 147 0 858 712 ; C -1 ; WX 774 ; N uniEFFE ; B 53 -11 722 686 ; C -1 ; WX 498 ; N uniEFFF ; B 17 276 481 741 ; C -1 ; WX 719 ; N union ; B 119 0 599 611 ; C -1 ; WX 593 ; N universal ; B 22 0 571 577 ; C -1 ; WX 556 ; N uogonek ; B 88 -205 594 524 ; C -1 ; WX 1000 ; N upblock ; B 0 250 1000 750 ; C -1 ; WX 550 ; N upsilon ; B 94 -23 595 524 ; C -1 ; WX 550 ; N upsilondieresis ; B 94 -23 595 715 ; C -1 ; WX 550 ; N upsilondieresistonos ; B 94 -23 595 859 ; C -1 ; WX 550 ; N upsilontonos ; B 94 -23 595 779 ; C -1 ; WX 556 ; N uring ; B 88 -23 594 754 ; C -1 ; WX 556 ; N utilde ; B 88 -23 594 719 ; C -1 ; WX 722 ; N wacute ; B 118 0 820 740 ; C -1 ; WX 722 ; N wcircumflex ; B 118 0 820 741 ; C -1 ; WX 722 ; N wdieresis ; B 118 0 820 715 ; C -1 ; WX 648 ; N weierstrass ; B 66 -169 585 402 ; C -1 ; WX 722 ; N wgrave ; B 118 0 820 740 ; C -1 ; WX 447 ; N xi ; B 66 -218 572 729 ; C -1 ; WX 500 ; N yacute ; B 8 -218 590 740 ; C -1 ; WX 500 ; N ycircumflex ; B 8 -218 590 741 ; C -1 ; WX 500 ; N ydieresis ; B 8 -218 590 715 ; C -1 ; WX 500 ; N ygrave ; B 8 -218 590 740 ; C -1 ; WX 500 ; N zacute ; B 31 0 557 740 ; C -1 ; WX 500 ; N zcaron ; B 31 0 557 740 ; C -1 ; WX 500 ; N zdotaccent ; B 31 0 557 715 ; C -1 ; WX 333 ; N zerosuperior ; B 110 270 425 709 ; C -1 ; WX 463 ; N zeta ; B 92 -218 596 729 ; EndCharMetrics StartKernData StartKernPairs 3867 KPX A A 10 KPX A B -21 KPX A C -33 KPX A Ccedilla -33 KPX A G -31 KPX A J -11 KPX A O -29 KPX A Odieresis -29 KPX A Omicron -29 KPX A Phi -56 KPX A Psi -52 KPX A Q -29 KPX A S -31 KPX A T -104 KPX A Tau -100 KPX A Tcaron -100 KPX A Tcommaaccent -104 KPX A Theta -30 KPX A U -33 KPX A Uacute -33 KPX A Ucircumflex -33 KPX A Udieresis -33 KPX A Ugrave -33 KPX A Upsilon -93 KPX A V -73 KPX A W -49 KPX A X 8 KPX A Y -93 KPX A Yacute -93 KPX A Z 5 KPX A a -12 KPX A b -1 KPX A braceright 8 KPX A bracketright 2 KPX A c -4 KPX A ccedilla -4 KPX A comma 4 KPX A d -3 KPX A e -11 KPX A g -5 KPX A k -3 KPX A gamma -38 KPX A guillemotleft -42 KPX A guilsinglleft -38 KPX A nu -30 KPX A o -9 KPX A parenright -11 KPX A period 5 KPX A phi -9 KPX A q -4 KPX A quotedblright -52 KPX A quoteright -60 KPX A quotesingle -55 KPX A s -7 KPX A sigma -15 KPX A t -12 KPX A u -10 KPX A udieresis -10 KPX A upsilon -13 KPX A upsilontonos -13 KPX A v -30 KPX A w -20 KPX A y -36 KPX A yacute -36 KPX A z 5 KPX AE T -16 KPX AE V -23 KPX AE W -18 KPX AE X -9 KPX AE Z -11 KPX Aacute C -32 KPX Aacute G -34 KPX Aacute O -28 KPX Aacute Q -31 KPX Aacute T -104 KPX Aacute Tcaron -102 KPX Aacute U -35 KPX Aacute V -72 KPX Aacute W -49 KPX Aacute Y -94 KPX Aacute a -14 KPX Aacute b -2 KPX Aacute c -4 KPX Aacute comma 5 KPX Aacute d -3 KPX Aacute e -11 KPX Aacute g -4 KPX Aacute guillemotleft -43 KPX Aacute guilsinglleft -39 KPX Aacute o -9 KPX Aacute period 5 KPX Aacute q -5 KPX Aacute quotedblright -51 KPX Aacute quoteright -59 KPX Aacute t -12 KPX Aacute u -10 KPX Aacute v -30 KPX Aacute w -20 KPX Aacute y -32 KPX Abreve T -104 KPX Abreve Tcaron -103 KPX Abreve Tcommaaccent -102 KPX Abreve Y -94 KPX Abreve Yacute -94 KPX Abreve y -34 KPX Abreve yacute -34 KPX Acircumflex C -33 KPX Acircumflex G -31 KPX Acircumflex O -29 KPX Acircumflex Q -29 KPX Acircumflex T -104 KPX Acircumflex Tcaron -100 KPX Acircumflex Tcommaaccent -104 KPX Acircumflex U -33 KPX Acircumflex V -73 KPX Acircumflex W -49 KPX Acircumflex Y -93 KPX Acircumflex Yacute -93 KPX Acircumflex comma 4 KPX Acircumflex period 5 KPX Acircumflex v -30 KPX Acircumflex w -20 KPX Acircumflex yacute -36 KPX Adieresis C -32 KPX Adieresis G -33 KPX Adieresis O -28 KPX Adieresis Q -31 KPX Adieresis T -104 KPX Adieresis U -34 KPX Adieresis V -71 KPX Adieresis W -49 KPX Adieresis Y -92 KPX Adieresis a -14 KPX Adieresis b -2 KPX Adieresis c -5 KPX Adieresis comma 5 KPX Adieresis d -3 KPX Adieresis g -4 KPX Adieresis guillemotleft -43 KPX Adieresis guilsinglleft -39 KPX Adieresis o -7 KPX Adieresis period 5 KPX Adieresis q -5 KPX Adieresis quotedblright -51 KPX Adieresis quoteright -59 KPX Adieresis t -13 KPX Adieresis u -11 KPX Adieresis v -30 KPX Adieresis w -21 KPX Adieresis y -35 KPX Agrave C -33 KPX Agrave G -31 KPX Agrave O -29 KPX Agrave Q -29 KPX Agrave T -104 KPX Agrave U -33 KPX Agrave V -73 KPX Agrave W -49 KPX Agrave Y -93 KPX Agrave comma 4 KPX Agrave period 5 KPX Alpha O -29 KPX Alpha Omicron -29 KPX Alpha Phi -56 KPX Alpha Psi -52 KPX Alpha T -104 KPX Alpha Tau -100 KPX Alpha Theta -30 KPX Alpha Upsilon -93 KPX Alpha Y -93 KPX Alpha comma 4 KPX Alpha gamma -38 KPX Alpha guillemotright -31 KPX Alpha nu -30 KPX Alpha period 5 KPX Alpha phi -9 KPX Alpha sigma -15 KPX Alpha upsilon -13 KPX Alpha upsilontonos -13 KPX Alphatonos gamma -38 KPX Alphatonos nu -30 KPX Alphatonos phi -9 KPX Alphatonos sigma -15 KPX Aogonek C -34 KPX Aogonek T -104 KPX Aogonek Tcaron -104 KPX Aogonek Tcommaaccent -46 KPX Aogonek Y -96 KPX Aogonek Yacute -96 KPX Aogonek colon -12 KPX Aogonek comma 3 KPX Aogonek period 3 KPX Aogonek semicolon -5 KPX Aogonek y 19 KPX Aogonek yacute 19 KPX Aring C -33 KPX Aring G -31 KPX Aring O -29 KPX Aring Q -29 KPX Aring T -104 KPX Aring U -33 KPX Aring V -73 KPX Aring W -49 KPX Aring Y -93 KPX Aring a -12 KPX Aring b -1 KPX Aring c -4 KPX Aring comma 4 KPX Aring d -3 KPX Aring e -11 KPX Aring g -5 KPX Aring guillemotleft -42 KPX Aring guilsinglleft -38 KPX Aring o -9 KPX Aring period 5 KPX Aring q -4 KPX Aring quotedblright -52 KPX Aring quoteright -60 KPX Aring t -12 KPX Aring u -10 KPX Aring v -32 KPX Aring w -20 KPX Aring y -36 KPX Atilde C -32 KPX Atilde G -34 KPX Atilde O -28 KPX Atilde Q -32 KPX Atilde T -104 KPX Atilde U -35 KPX Atilde V -72 KPX Atilde W -48 KPX Atilde Y -96 KPX Atilde comma 2 KPX Atilde period 4 KPX B A -29 KPX B AE -29 KPX B Aacute -29 KPX B Acircumflex -29 KPX B Adieresis -29 KPX B Aring -29 KPX B Atilde -29 KPX B C -10 KPX B Delta 5 KPX B J -2 KPX B O -6 KPX B OE -1 KPX B Oacute -6 KPX B Ocircumflex -6 KPX B Odieresis -6 KPX B Ograve -6 KPX B Oslash 4 KPX B S -9 KPX B T -36 KPX B V -40 KPX B W -19 KPX B Y -57 KPX B Z -22 KPX B lambda -20 KPX B y -20 KPX Beta A -29 KPX Beta Alpha -29 KPX Beta Delta 5 KPX Beta lambda -20 KPX C A -41 KPX C AE -45 KPX C Aacute -41 KPX C Adieresis -41 KPX C Aring -41 KPX C C -15 KPX C D -14 KPX C G -17 KPX C H -11 KPX C J -6 KPX C K -9 KPX C O -11 KPX C OE -9 KPX C Oacute -11 KPX C Odieresis -11 KPX C S -18 KPX C T -47 KPX C V -48 KPX C W -25 KPX C Y -66 KPX C Z -41 KPX C a -16 KPX C adieresis -16 KPX C ae -13 KPX C colon -18 KPX C comma -17 KPX C e -10 KPX C hyphen 19 KPX C o -4 KPX C odieresis -4 KPX C oe -7 KPX C period -17 KPX C quotedblright 5 KPX C quoteright -2 KPX C quotesingle 1 KPX C s -10 KPX C semicolon -6 KPX C y -15 KPX Ccaron O -11 KPX Ccedilla A -41 KPX Chi O -40 KPX Chi Omicron -40 KPX Chi Theta -41 KPX Chi alpha -37 KPX Chi alphatonos -40 KPX Chi epsilontonos -20 KPX Chi o -39 KPX Chi omega -62 KPX Chi omicron -41 KPX Chi omicrontonos -41 KPX Chi tau -54 KPX D A -41 KPX D AE -44 KPX D Aacute -41 KPX D Acircumflex -41 KPX D Adieresis -41 KPX D Agrave -41 KPX D Aring -41 KPX D Atilde -41 KPX D E -13 KPX D J -15 KPX D T -56 KPX D V -47 KPX D W -23 KPX D X -49 KPX D Y -71 KPX D Z -53 KPX D a -13 KPX D adieresis -13 KPX D ae -7 KPX D e -2 KPX D hyphen 24 KPX D oe -2 KPX D y -21 KPX Delta O -52 KPX Delta Omicron -52 KPX Delta Upsilon -122 KPX Delta Y -122 KPX Delta alphatonos -32 KPX Delta epsilon -12 KPX Delta epsilontonos -12 KPX Delta o -35 KPX Delta omegatonos -54 KPX Delta omicron -37 KPX Delta upsilon -35 KPX E A -8 KPX E C -40 KPX E Ccaron -40 KPX E F -35 KPX E O -34 KPX E Oacute -34 KPX E Odieresis -34 KPX E Omicron -34 KPX E Phi -44 KPX E S -39 KPX E T -17 KPX E Theta -36 KPX E V -24 KPX E W -20 KPX E X -11 KPX E Y -16 KPX E Z -13 KPX E a -23 KPX E b -18 KPX E c -24 KPX E d -23 KPX E delta -29 KPX E e -28 KPX E g -21 KPX E gamma -43 KPX E h -26 KPX E hyphen -16 KPX E i -24 KPX E j -27 KPX E k -20 KPX E l -25 KPX E nu -40 KPX E o -26 KPX E q -22 KPX E quotedblright -23 KPX E quoteright -31 KPX E quotesingle -27 KPX E s -21 KPX E t -31 KPX E tau -35 KPX E v -40 KPX E w -32 KPX E y -45 KPX E z -13 KPX Epsilon O -34 KPX Epsilon Omicron -34 KPX Epsilon Phi -44 KPX Epsilon Theta -36 KPX Epsilon delta -29 KPX Epsilon gamma -43 KPX Epsilon nu -40 KPX Epsilon tau -35 KPX Epsilontonos nu -64 KPX F A -78 KPX F AE -83 KPX F Aacute -78 KPX F Abreve -78 KPX F Acircumflex -78 KPX F Adieresis -78 KPX F Agrave -78 KPX F Aogonek -78 KPX F Aring -78 KPX F Atilde -78 KPX F C -36 KPX F G -33 KPX F J -66 KPX F O -30 KPX F OE -32 KPX F Odieresis -30 KPX F S -40 KPX F T 2 KPX F Y 3 KPX F Z -16 KPX F a -45 KPX F aacute -45 KPX F adieresis -45 KPX F ae -42 KPX F aring -45 KPX F comma -105 KPX F e -33 KPX F eacute -33 KPX F h -21 KPX F hyphen -10 KPX F i -19 KPX F j -19 KPX F l -20 KPX F o -30 KPX F oacute -30 KPX F odieresis -30 KPX F oe -33 KPX F ohungarumlaut -30 KPX F oslash -31 KPX F period -102 KPX F quotedblright -11 KPX F quoteright -19 KPX F quotesingle -13 KPX F r -45 KPX F u -43 KPX F udieresis -43 KPX F uacute -43 KPX F uring -43 KPX F y -41 KPX G A -15 KPX G AE -12 KPX G Aacute -15 KPX G Acircumflex -15 KPX G Adieresis -15 KPX G Agrave -15 KPX G Aring -15 KPX G Atilde -15 KPX G H -5 KPX G S -12 KPX G T -53 KPX G V -43 KPX G W -23 KPX G X -17 KPX G Y -66 KPX G Z -20 KPX G a -5 KPX G adieresis -5 KPX G ae -2 KPX G colon -3 KPX G comma -2 KPX G hyphen 21 KPX G o 2 KPX G odieresis 2 KPX G period -1 KPX G quotedblright -3 KPX G quoteright -11 KPX G quotesingle -5 KPX G semicolon 7 KPX G w -5 KPX G y -17 KPX Gamma A -96 KPX Gamma Alpha -96 KPX Gamma Delta -110 KPX Gamma Lambda -96 KPX Gamma O -42 KPX Gamma Omicron -42 KPX Gamma Y 19 KPX Gamma alpha -155 KPX Gamma alphatonos -67 KPX Gamma comma -168 KPX Gamma epsilon -145 KPX Gamma epsilontonos -54 KPX Gamma kappa -152 KPX Gamma nu -166 KPX Gamma o -156 KPX Gamma omicron -158 KPX Gamma period -169 KPX Gamma rho -160 KPX Gamma upsilon -163 KPX Gamma upsilontonos -64 KPX H A -20 KPX H AE -17 KPX H I -9 KPX H T -21 KPX H Y -20 KPX H a -5 KPX H adieresis -5 KPX H ae -2 KPX H y -18 KPX I A -23 KPX I AE -20 KPX I J -22 KPX I T -24 KPX I V -31 KPX I W -17 KPX I X -26 KPX I Y -23 KPX I Z -28 KPX I y -21 KPX J A -30 KPX J AE -38 KPX J Adieresis -30 KPX J Aring -30 KPX J Y -18 KPX J y -20 KPX K A 12 KPX K AE 15 KPX K B -16 KPX K C -45 KPX K D -21 KPX K E -21 KPX K F -21 KPX K G -49 KPX K H -18 KPX K I -26 KPX K J -20 KPX K L -16 KPX K M -14 KPX K N -14 KPX K O -41 KPX K OE -39 KPX K Oacute -41 KPX K Odieresis -41 KPX K Omicron -41 KPX K P -22 KPX K Phi -71 KPX K Q -46 KPX K R -23 KPX K S -44 KPX K T 13 KPX K U -19 KPX K V 6 KPX K W 11 KPX K X 10 KPX K Y 14 KPX K Z 7 KPX K a -23 KPX K adieresis -23 KPX K ae -20 KPX K alphatonos -41 KPX K aogonek -23 KPX K aring -23 KPX K braceright 9 KPX K bracketright 12 KPX K e -45 KPX K epsilontonos -16 KPX K h -10 KPX K hyphen -43 KPX K i -8 KPX K j -8 KPX K l -9 KPX K o -40 KPX K oacute -40 KPX K odieresis -40 KPX K oe -43 KPX K omega -58 KPX K omicron -42 KPX K omicrontonos -42 KPX K parenright 2 KPX K quotedblright -13 KPX K quoteright -21 KPX K quotesingle -19 KPX K u -32 KPX K udieresis -32 KPX K upsilon -40 KPX K upsilontonos -40 KPX K w -54 KPX K y -69 KPX Kappa O -41 KPX Kappa Omicron -41 KPX Kappa Phi -71 KPX Kappa alphatonos -41 KPX Kappa colon -34 KPX Kappa comma -11 KPX Kappa epsilontonos -16 KPX Kappa o -40 KPX Kappa omega -58 KPX Kappa omicron -42 KPX Kappa omicrontonos -42 KPX Kappa period -12 KPX Kappa semicolon -34 KPX Kappa upsilon -40 KPX Kappa upsilontonos -40 KPX L A 7 KPX L AE 10 KPX L Aacute 7 KPX L Adieresis 7 KPX L Aring 7 KPX L C -52 KPX L Ccaron -52 KPX L Ccedilla -52 KPX L G -53 KPX L M -20 KPX L O -52 KPX L OE -43 KPX L Oacute -52 KPX L Ocircumflex -52 KPX L Odieresis -52 KPX L Ograve -52 KPX L Otilde -52 KPX L S -29 KPX L T -113 KPX L Tcaron -113 KPX L Tcommaaccent -113 KPX L U -47 KPX L Udieresis -47 KPX L V -116 KPX L W -78 KPX L Y -129 KPX L Yacute -129 KPX L Z 3 KPX L a -7 KPX L adieresis -7 KPX L braceright -37 KPX L bracketright -45 KPX L e -26 KPX L hyphen -129 KPX L i -14 KPX L j -15 KPX L o -21 KPX L odieresis -21 KPX L parenright -52 KPX L quotedblright -134 KPX L quoteright -142 KPX L quotesingle -140 KPX L u -18 KPX L udieresis -18 KPX L y -69 KPX L yacute -69 KPX Lambda O -29 KPX Lambda Omicron -29 KPX Lambda T -104 KPX Lambda Tau -101 KPX Lambda Theta -30 KPX Lambda Upsilon -93 KPX Lambda Y -93 KPX Lambda alphatonos -8 KPX Lambda comma 3 KPX Lambda epsilon 3 KPX Lambda epsilontonos 3 KPX Lambda guillemotright -32 KPX Lambda o -9 KPX Lambda omicron -9 KPX Lambda omicrontonos -9 KPX Lambda period 4 KPX Lambda quoteright -60 KPX Lambda upsilon -14 KPX Lcaron O -52 KPX Lcaron T -72 KPX Lcaron Tcaron -72 KPX Lcaron Tcommaaccent -72 KPX Lcaron V -80 KPX Lcaron Y -72 KPX Lcaron Yacute -72 KPX Lcaron v -66 KPX Lcaron yacute -69 KPX Lslash O -42 KPX Lslash T -104 KPX Lslash Tcaron -104 KPX Lslash Tcommaaccent -104 KPX Lslash V -106 KPX Lslash W -69 KPX Lslash Y -120 KPX Lslash Yacute -120 KPX Lslash colon -28 KPX Lslash comma -17 KPX Lslash period -17 KPX Lslash semicolon -28 KPX Lslash v -57 KPX Lslash w -40 KPX Lslash yacute -60 KPX M A -17 KPX M AE -14 KPX M N 5 KPX M T -18 KPX M W -10 KPX M Y -17 KPX M Z -22 KPX M epsilon 16 KPX M j 5 KPX M y -15 KPX Mu epsilon 16 KPX N A -19 KPX N AE -16 KPX N Aacute -19 KPX N Adieresis -19 KPX N Alpha -19 KPX N Aring -19 KPX N C -7 KPX N Ccedilla -7 KPX N G -5 KPX N O -3 KPX N Oacute -3 KPX N Odieresis -3 KPX N T -20 KPX N W -13 KPX N Y -19 KPX N Z -24 KPX N a -5 KPX N aacute -5 KPX N adieresis -5 KPX N ae -2 KPX N aring -5 KPX N comma -7 KPX N epsilon 13 KPX N epsilontonos 13 KPX N j 3 KPX N o 2 KPX N oacute 2 KPX N odieresis 2 KPX N omega -20 KPX N oslash 5 KPX N period -6 KPX N u -1 KPX N udieresis -1 KPX N y -17 KPX Nu A -19 KPX Nu Alpha -19 KPX Nu epsilon 13 KPX Nu epsilontonos 13 KPX Nu o 2 KPX Nu omega -20 KPX O A -35 KPX O AE -37 KPX O Aacute -35 KPX O Adieresis -35 KPX O Alpha -35 KPX O Aring -35 KPX O C -4 KPX O Chi -43 KPX O Delta 8 KPX O G -5 KPX O J -7 KPX O Lambda -34 KPX O OE 1 KPX O P -7 KPX O Psi -16 KPX O S -9 KPX O T -54 KPX O Tau -54 KPX O Upsilon -64 KPX O V -40 KPX O W -16 KPX O X -43 KPX O Y -64 KPX O Z -46 KPX O Zeta -46 KPX O colon -3 KPX O comma -21 KPX O hyphen 30 KPX O lambda -17 KPX O period -24 KPX O semicolon 8 KPX O v -5 KPX O w 4 KPX O x -17 KPX O y -15 KPX O z -22 KPX OE T -5 KPX OE V -12 KPX OE W -8 KPX OE X -5 KPX OE Z -7 KPX Oacute A -35 KPX Oacute T -54 KPX Oacute V -40 KPX Oacute W -16 KPX Oacute Y -64 KPX Oacute Z -46 KPX Oacute colon -3 KPX Oacute comma -21 KPX Oacute period -24 KPX Oacute semicolon 8 KPX Ocircumflex T -54 KPX Ocircumflex V -40 KPX Ocircumflex Y -64 KPX Odieresis A -35 KPX Odieresis T -54 KPX Odieresis V -40 KPX Odieresis W -16 KPX Odieresis X -43 KPX Odieresis Y -64 KPX Odieresis colon -3 KPX Odieresis comma -21 KPX Odieresis period -24 KPX Odieresis semicolon 8 KPX Ograve T -54 KPX Ograve V -40 KPX Ograve Y -64 KPX Omicron A -35 KPX Omicron Alpha -35 KPX Omicron Chi -43 KPX Omicron Delta 8 KPX Omicron Lambda -34 KPX Omicron Psi -16 KPX Omicron Tau -54 KPX Omicron Upsilon -64 KPX Omicron Y -64 KPX Omicron Zeta -46 KPX Omicron lambda -17 KPX Omicrontonos lambda -22 KPX Oslash A -32 KPX Otilde T -54 KPX Otilde V -40 KPX Otilde Y -64 KPX P A -77 KPX P AE -80 KPX P Aacute -77 KPX P Abreve -77 KPX P Acircumflex -77 KPX P Adieresis -77 KPX P Alpha -77 KPX P Aogonek -77 KPX P Aring -77 KPX P B -36 KPX P C -27 KPX P D -41 KPX P E -41 KPX P F -41 KPX P G -26 KPX P H -38 KPX P I -46 KPX P J -86 KPX P K -36 KPX P L -36 KPX P M -34 KPX P N -34 KPX P O -21 KPX P OE -23 KPX P Omicron -21 KPX P P -42 KPX P Q -24 KPX P R -43 KPX P S -32 KPX P T -26 KPX P U -39 KPX P V -42 KPX P W -32 KPX P X -61 KPX P Y -47 KPX P Z -44 KPX P a -38 KPX P aacute -38 KPX P adieresis -38 KPX P ae -34 KPX P alpha -30 KPX P aring -38 KPX P comma -127 KPX P e -36 KPX P eacute -36 KPX P epsilon -15 KPX P epsilontonos -15 KPX P f -5 KPX P h -30 KPX P hyphen -34 KPX P i -28 KPX P j -29 KPX P l -29 KPX P o -33 KPX P oacute -33 KPX P odieresis -33 KPX P oe -36 KPX P omegatonos -66 KPX P omicron -32 KPX P omicrontonos -32 KPX P oslash -33 KPX P period -130 KPX P quotedblright 20 KPX P quoteright 12 KPX P quotesingle 17 KPX P t -1 KPX P y -7 KPX Phi A -59 KPX Phi Alpha -59 KPX Phi Lambda -59 KPX Phi T -94 KPX Phi Tau -94 KPX Phi Upsilon -91 KPX Phi Y -91 KPX Phi lambda -40 KPX Phi o -14 KPX Phi omega -40 KPX Phi omegatonos -40 KPX Phi omicron -13 KPX Phi omicrontonos -13 KPX Pi epsilontonos 11 KPX Pi lambda -20 KPX Pi omicron -1 KPX Psi A -51 KPX Psi Alpha -51 KPX Psi O -19 KPX Psi Omicron -19 KPX Q R -4 KPX Q U -6 KPX Q braceright 36 KPX Q bracketright 34 KPX Q hyphen 32 KPX Q parenright 16 KPX Q u 8 KPX Q udieresis 8 KPX R A -3 KPX R B -5 KPX R C -11 KPX R Ccedilla -11 KPX R D -10 KPX R E -11 KPX R F -11 KPX R G -10 KPX R H -7 KPX R I -16 KPX R J -21 KPX R K -5 KPX R L -6 KPX R M -3 KPX R N -4 KPX R O -7 KPX R OE -6 KPX R Oacute -7 KPX R Odieresis -7 KPX R P -11 KPX R Q -11 KPX R R -12 KPX R S -10 KPX R T -34 KPX R Tcaron -34 KPX R Tcommaaccent -34 KPX R U -14 KPX R Udieresis -11 KPX R V -41 KPX R W -20 KPX R X -5 KPX R Y -54 KPX R Yacute -54 KPX R Z -8 KPX R a -12 KPX R aacute -12 KPX R adieresis -12 KPX R ae -5 KPX R aring -12 KPX R braceright 30 KPX R bracketright 28 KPX R e -6 KPX R eacute -6 KPX R hyphen 5 KPX R o -1 KPX R oacute -1 KPX R odieresis -1 KPX R oe -4 KPX R parenright 15 KPX R quotedblright 11 KPX R quoteright 3 KPX R quotesingle 7 KPX R u -5 KPX R uacute -5 KPX R udieresis -5 KPX R y -17 KPX R yacute -16 KPX Rho A -77 KPX Rho Alpha -77 KPX Rho Delta -42 KPX Rho Lambda -76 KPX Rho Omicron -21 KPX Rho Phi -33 KPX Rho Tau -26 KPX Rho Theta -23 KPX Rho Upsilon -47 KPX Rho Y -47 KPX Rho alpha -30 KPX Rho colon -52 KPX Rho comma -127 KPX Rho epsilon -15 KPX Rho epsilontonos -15 KPX Rho o -33 KPX Rho omegatonos -66 KPX Rho omicron -32 KPX Rho omicrontonos -32 KPX Rho period -130 KPX S A -31 KPX S AE -31 KPX S Aacute -31 KPX S Adieresis -31 KPX S Aring -31 KPX S C -15 KPX S G -14 KPX S J -3 KPX S O -11 KPX S OE -6 KPX S S -15 KPX S T -38 KPX S V -45 KPX S W -23 KPX S Y -59 KPX S Z -24 KPX S a -12 KPX S adieresis -12 KPX S ae -9 KPX S e -7 KPX S eacute -7 KPX S h -7 KPX S hyphen 19 KPX S i -5 KPX S j -6 KPX S l -6 KPX S o -2 KPX S odieresis -2 KPX S oe -4 KPX S q 2 KPX S quotedblright 2 KPX S quoteright -5 KPX S t -7 KPX S v -18 KPX S w -11 KPX S y -18 KPX Sigma O -53 KPX Sigma Omicron -53 KPX Sigma Theta -54 KPX Sigma chi -54 KPX Sigma o -23 KPX Sigma omicron -27 KPX Sigma tau -55 KPX T A -105 KPX T AE -106 KPX T Aacute -105 KPX T Abreve -105 KPX T Acircumflex -105 KPX T Adieresis -105 KPX T Agrave -105 KPX T Alpha -105 KPX T Aogonek -105 KPX T Aring -105 KPX T Atilde -105 KPX T B -20 KPX T C -53 KPX T D -25 KPX T E -26 KPX T F -26 KPX T G -56 KPX T H -22 KPX T I -31 KPX T J -108 KPX T K -20 KPX T L -21 KPX T Lambda -104 KPX T M -18 KPX T N -19 KPX T O -50 KPX T OE -44 KPX T Oacute -50 KPX T Ocircumflex -50 KPX T Odieresis -50 KPX T Ograve -50 KPX T Ohungarumlaut -50 KPX T Omicron -50 KPX T Oslash -48 KPX T Otilde -50 KPX T P -26 KPX T Phi -85 KPX T Q -56 KPX T R -27 KPX T S -33 KPX T T 9 KPX T Tau 9 KPX T U -23 KPX T Upsilon 10 KPX T V 2 KPX T W 6 KPX T X -3 KPX T Y 10 KPX T Z -9 KPX T a -96 KPX T aacute -96 KPX T adieresis -52 KPX T ae -93 KPX T alpha -83 KPX T alphatonos -76 KPX T aogonek -96 KPX T braceright 5 KPX T bracketright 8 KPX T c -83 KPX T cacute -83 KPX T ccedilla -83 KPX T colon -96 KPX T comma -92 KPX T e -87 KPX T eacute -87 KPX T eogonek -87 KPX T epsilon -72 KPX T epsilontonos -63 KPX T g -80 KPX T guillemotleft -119 KPX T guilsinglleft -115 KPX T h -14 KPX T hyphen -70 KPX T i -12 KPX T iacute -30 KPX T j -12 KPX T l -13 KPX T o -85 KPX T odieresis -48 KPX T oacute -85 KPX T ocircumflex -62 KPX T oe -87 KPX T ohungarumlaut -69 KPX T omegatonos -108 KPX T omicron -87 KPX T omicrontonos -87 KPX T oslash -79 KPX T parenright -2 KPX T period -95 KPX T quotedblright -5 KPX T quoteright -13 KPX T quotesingle -6 KPX T r -85 KPX T racute -64 KPX T rho -90 KPX T s -88 KPX T sacute -87 KPX T scedilla -88 KPX T semicolon -80 KPX T sigma -94 KPX T u -89 KPX T udieresis -48 KPX T uacute -72 KPX T uhungarumlaut -69 KPX T upsilon -92 KPX T upsilontonos -72 KPX T uring -72 KPX T v -106 KPX T w -92 KPX T y -108 KPX T yacute -45 KPX T zeta -26 KPX Tau A -105 KPX Tau Alpha -105 KPX Tau Lambda -104 KPX Tau O -50 KPX Tau Omicron -50 KPX Tau Phi -85 KPX Tau T 9 KPX Tau Tau 9 KPX Tau Upsilon 10 KPX Tau Y 10 KPX Tau alpha -83 KPX Tau alphatonos -76 KPX Tau colon -96 KPX Tau comma -92 KPX Tau epsilon -72 KPX Tau epsilontonos -63 KPX Tau guillemotright -106 KPX Tau o -85 KPX Tau omegatonos -108 KPX Tau omicron -87 KPX Tau omicrontonos -87 KPX Tau period -95 KPX Tau quoteright -13 KPX Tau rho -90 KPX Tau semicolon -80 KPX Tau sigma -94 KPX Tau upsilon -92 KPX Tau upsilontonos -72 KPX Tau zeta -26 KPX Tcaron A -105 KPX Tcaron Aacute -105 KPX Tcaron Abreve -105 KPX Tcaron Acircumflex -105 KPX Tcaron Adieresis -105 KPX Tcaron Aogonek -105 KPX Tcaron J -108 KPX Tcaron Odieresis -50 KPX Tcaron aacute -96 KPX Tcaron aogonek -96 KPX Tcaron colon -96 KPX Tcaron comma -92 KPX Tcaron eacute -87 KPX Tcaron eogonek -87 KPX Tcaron hyphen -70 KPX Tcaron nacute -74 KPX Tcaron ncaron -52 KPX Tcaron oacute -85 KPX Tcaron ohungarumlaut -69 KPX Tcaron period -95 KPX Tcaron racute -64 KPX Tcaron rcaron -6 KPX Tcaron sacute -87 KPX Tcaron semicolon -80 KPX Tcaron tcaron -21 KPX Tcaron tcommaaccent -21 KPX Tcaron uacute -72 KPX Tcaron uhungarumlaut -69 KPX Tcaron yacute -45 KPX Tcaron zacute -66 KPX Tcaron zcaron -37 KPX Tcaron zdotaccent -66 KPX Tcommaaccent Aacute -105 KPX Tcommaaccent Abreve -105 KPX Tcommaaccent Acircumflex -105 KPX Tcommaaccent Adieresis -105 KPX Tcommaaccent Aogonek -105 KPX Tcommaaccent aacute -96 KPX Tcommaaccent aogonek -96 KPX Tcommaaccent eacute -87 KPX Tcommaaccent eogonek -87 KPX Tcommaaccent nacute -74 KPX Tcommaaccent ncaron -52 KPX Tcommaaccent oacute -85 KPX Tcommaaccent ohungarumlaut -69 KPX Tcommaaccent racute -64 KPX Tcommaaccent rcaron -6 KPX Tcommaaccent sacute -87 KPX Tcommaaccent tcaron -21 KPX Tcommaaccent tcommaaccent -21 KPX Tcommaaccent uacute -72 KPX Tcommaaccent uhungarumlaut -69 KPX Tcommaaccent uring -72 KPX Tcommaaccent yacute -45 KPX Tcommaaccent zacute -66 KPX Tcommaaccent zcaron -37 KPX Tcommaaccent zdotaccent -66 KPX Theta A -36 KPX Theta Alpha -36 KPX Theta Lambda -36 KPX Theta Upsilon -66 KPX Theta Y -66 KPX U A -37 KPX U AE -39 KPX U Aacute -37 KPX U Acircumflex -37 KPX U Adieresis -37 KPX U Aring -37 KPX U Atilde -37 KPX U S -11 KPX U T -20 KPX U V -27 KPX U W -16 KPX U X -32 KPX U Y -19 KPX U Z -39 KPX U comma -20 KPX U j -7 KPX U m -8 KPX U n -7 KPX U p 2 KPX U period -23 KPX U r -7 KPX U v -17 KPX U w -8 KPX U x -26 KPX U y -21 KPX U z -36 KPX Uacute A -37 KPX Uacute comma -20 KPX Uacute m -8 KPX Uacute n -7 KPX Uacute p 2 KPX Uacute period -23 KPX Uacute r -7 KPX Ucircumflex A -37 KPX Udieresis A -37 KPX Udieresis comma -20 KPX Udieresis m -8 KPX Udieresis n -7 KPX Udieresis p 2 KPX Udieresis period -23 KPX Udieresis r -7 KPX Ugrave A -37 KPX Upsilon A -93 KPX Upsilon Alpha -93 KPX Upsilon Delta -60 KPX Upsilon O -61 KPX Upsilon Omicron -61 KPX Upsilon Phi -86 KPX Upsilon T 15 KPX Upsilon Tau 15 KPX Upsilon Theta -62 KPX Upsilon comma -106 KPX Upsilon guillemotright -106 KPX Upsilon omicrontonos -81 KPX Upsilon period -108 KPX Upsilon pi -69 KPX Upsilontonos sigma -119 KPX V A -68 KPX V AE -72 KPX V Aacute -68 KPX V Abreve -68 KPX V Acircumflex -68 KPX V Adieresis -68 KPX V Agrave -68 KPX V Aogonek -68 KPX V Aring -68 KPX V Atilde -68 KPX V C -41 KPX V E -28 KPX V G -39 KPX V H -24 KPX V I -33 KPX V J -77 KPX V L -23 KPX V O -37 KPX V OE -35 KPX V Oacute -37 KPX V Ocircumflex -37 KPX V Odieresis -37 KPX V Ograve -37 KPX V Ohungarumlaut -37 KPX V Oslash -28 KPX V Otilde -37 KPX V R -29 KPX V S -40 KPX V T 7 KPX V U -25 KPX V Y 8 KPX V a -61 KPX V aacute -61 KPX V adieresis -57 KPX V ae -53 KPX V aogonek -61 KPX V braceright 4 KPX V bracketright 6 KPX V c -45 KPX V colon -58 KPX V comma -81 KPX V dcaron -41 KPX V e -54 KPX V eacute -54 KPX V ecaron -54 KPX V eogonek -54 KPX V g -45 KPX V guillemotleft -80 KPX V guilsinglleft -76 KPX V h -16 KPX V hyphen -33 KPX V i -14 KPX V iacute -36 KPX V j -15 KPX V l -15 KPX V o -47 KPX V oacute -47 KPX V ocircumflex -47 KPX V odieresis -47 KPX V oe -49 KPX V ohungarumlaut -47 KPX V oslash -44 KPX V parenright -4 KPX V period -84 KPX V r -52 KPX V racute -52 KPX V rcaron -8 KPX V sacute -48 KPX V semicolon -49 KPX V u -51 KPX V uacute -50 KPX V udieresis -50 KPX V uhungarumlaut -50 KPX V uring -50 KPX V y -29 KPX V yacute -26 KPX W A -46 KPX W AE -49 KPX W Aacute -46 KPX W Abreve -46 KPX W Acircumflex -46 KPX W Adieresis -46 KPX W Agrave -46 KPX W Aogonek -46 KPX W Aring -46 KPX W Atilde -46 KPX W B -11 KPX W C -23 KPX W D -16 KPX W E -16 KPX W F -16 KPX W G -21 KPX W H -13 KPX W I -21 KPX W J -51 KPX W K -11 KPX W L -11 KPX W M -9 KPX W N -9 KPX W O -19 KPX W OE -12 KPX W Oacute -19 KPX W Ocircumflex -19 KPX W Odieresis -19 KPX W Ograve -19 KPX W Ohungarumlaut -19 KPX W Oslash -8 KPX W Otilde -19 KPX W P -17 KPX W R -18 KPX W S -21 KPX W T 10 KPX W U -19 KPX W V 3 KPX W W 8 KPX W Y 11 KPX W Z -8 KPX W a -36 KPX W aacute -36 KPX W adieresis -36 KPX W ae -33 KPX W aogonek -36 KPX W braceright 26 KPX W bracketright 23 KPX W c -20 KPX W colon -36 KPX W comma -53 KPX W dcaron -17 KPX W e -29 KPX W eacute -29 KPX W ecaron -29 KPX W eogonek -29 KPX W g -19 KPX W guillemotleft -55 KPX W guilsinglleft -51 KPX W h -13 KPX W hyphen -10 KPX W i -11 KPX W iacute -26 KPX W j -11 KPX W l -12 KPX W o -22 KPX W oacute -22 KPX W ocircumflex -22 KPX W odieresis -22 KPX W oe -25 KPX W ohungarumlaut -22 KPX W oslash -18 KPX W parenright 9 KPX W period -52 KPX W quotedblright 28 KPX W quoteright 20 KPX W quotesingle 22 KPX W r -27 KPX W racute -27 KPX W rcaron -4 KPX W sacute -23 KPX W semicolon -20 KPX W u -26 KPX W uacute -26 KPX W udieresis -26 KPX W uhungarumlaut -26 KPX W uring -26 KPX W y -16 KPX W yacute -14 KPX X A 8 KPX X AE 11 KPX X C -44 KPX X O -40 KPX X OE -38 KPX X Odieresis -40 KPX X Q -40 KPX X T 4 KPX X W 1 KPX X Y 5 KPX X a -28 KPX X ae -25 KPX X alpha -37 KPX X alphatonos -40 KPX X braceright 1 KPX X bracketright 3 KPX X e -46 KPX X eacute -46 KPX X epsilontonos -20 KPX X hyphen -47 KPX X o -39 KPX X odieresis -39 KPX X omega -62 KPX X omicron -41 KPX X omicrontonos -41 KPX X parenright -7 KPX X quotedblright -13 KPX X quoteright -21 KPX X quotesingle -20 KPX X tau -54 KPX X u -36 KPX X udieresis -36 KPX X y -66 KPX Xi alpha -27 KPX Xi alphatonos -29 KPX Xi upsilontonos -35 KPX Y A -93 KPX Y AE -97 KPX Y Aacute -93 KPX Y Abreve -93 KPX Y Acircumflex -93 KPX Y Adieresis -93 KPX Y Agrave -93 KPX Y Alpha -93 KPX Y Aogonek -93 KPX Y Aring -93 KPX Y Atilde -93 KPX Y C -65 KPX Y Delta -60 KPX Y G -64 KPX Y J -102 KPX Y O -61 KPX Y OE -60 KPX Y Oacute -61 KPX Y Ocircumflex -61 KPX Y Odieresis -61 KPX Y Ograve -61 KPX Y Omicron -61 KPX Y Oslash -49 KPX Y Otilde -61 KPX Y Phi -86 KPX Y Q -61 KPX Y S -50 KPX Y T 15 KPX Y Tau 15 KPX Y Theta -62 KPX Y V 8 KPX Y W 12 KPX Y X 3 KPX Y Z -3 KPX Y a -90 KPX Y aacute -90 KPX Y adieresis -51 KPX Y ae -87 KPX Y aogonek -90 KPX Y braceright 10 KPX Y bracketright 14 KPX Y colon -90 KPX Y comma -106 KPX Y c -77 KPX Y d -75 KPX Y e -87 KPX Y eacute -87 KPX Y eogonek -87 KPX Y g -80 KPX Y guillemotleft -119 KPX Y guilsinglleft -115 KPX Y hyphen -81 KPX Y i -6 KPX Y iacute -45 KPX Y m -73 KPX Y n -72 KPX Y o -79 KPX Y odieresis -47 KPX Y oacute -79 KPX Y ohungarumlaut -79 KPX Y omicrontonos -81 KPX Y oslash -80 KPX Y p -64 KPX Y parenright 3 KPX Y period -108 KPX Y pi -69 KPX Y q -74 KPX Y quotedblright 5 KPX Y quoteright -2 KPX Y quotesingle -2 KPX Y r -72 KPX Y racute -72 KPX Y s -82 KPX Y semicolon -81 KPX Y u -74 KPX Y udieresis -47 KPX Y uacute -70 KPX Y uhungarumlaut -70 KPX Y v -48 KPX Y w -46 KPX Y z -68 KPX Yacute Aacute -93 KPX Yacute Abreve -93 KPX Yacute Acircumflex -93 KPX Yacute Adieresis -93 KPX Yacute Aogonek -93 KPX Yacute J -102 KPX Yacute aacute -90 KPX Yacute colon -90 KPX Yacute comma -106 KPX Yacute eacute -87 KPX Yacute eogonek -87 KPX Yacute hyphen -81 KPX Yacute oacute -79 KPX Yacute ohungarumlaut -79 KPX Yacute period -108 KPX Yacute scedilla -82 KPX Yacute semicolon -81 KPX Yacute uacute -70 KPX Z A 5 KPX Z AE 8 KPX Z E -30 KPX Z I -35 KPX Z O -46 KPX Z OE -45 KPX Z Oacute -46 KPX Z U -29 KPX Z Y 4 KPX Z a -10 KPX Z adieresis -10 KPX Z ae -7 KPX Z bracketright 2 KPX Z colon -40 KPX Z comma -29 KPX Z e -28 KPX Z epsilon -1 KPX Z hyphen -100 KPX Z i -17 KPX Z o -24 KPX Z odieresis -24 KPX Z oe -26 KPX Z omicron -28 KPX Z parenright -8 KPX Z period -29 KPX Z quotedblright 11 KPX Z quoteright 3 KPX Z quotesingle 3 KPX Z semicolon -40 KPX Z v -44 KPX Z w -42 KPX Z y -44 KPX Zeta O -46 KPX Zeta Omicron -46 KPX Zeta epsilon -1 KPX Zeta o -24 KPX Zeta omicron -28 KPX a comma -7 KPX a endash 27 KPX a g 2 KPX a germandbls -4 KPX a period -6 KPX a quoteright -16 KPX a s -3 KPX a t -7 KPX a v -19 KPX a w -8 KPX a x 14 KPX a y -24 KPX a z 7 KPX adieresis comma -7 KPX adieresis endash 27 KPX adieresis g 2 KPX adieresis germandbls -4 KPX adieresis period -6 KPX adieresis quoteright -16 KPX adieresis s -3 KPX adieresis t -7 KPX adieresis v -19 KPX adieresis w -8 KPX adieresis x 14 KPX adieresis y -24 KPX adieresis z 7 KPX aacute v -18 KPX aacute w -9 KPX aacute y -23 KPX ae r -3 KPX ae v -18 KPX ae w -6 KPX ae y -25 KPX afii10017 afii10025 -41 KPX afii10017 afii10029 11 KPX afii10017 afii10032 -31 KPX afii10017 afii10035 -32 KPX afii10017 afii10036 -100 KPX afii10017 afii10037 -54 KPX afii10017 afii10038 -49 KPX afii10017 afii10041 -56 KPX afii10017 afii10044 -82 KPX afii10017 afii10053 -28 KPX afii10017 afii10058 1 KPX afii10017 afii10060 -99 KPX afii10017 afii10062 -52 KPX afii10017 afii10073 -16 KPX afii10017 afii10077 -2 KPX afii10017 afii10080 -9 KPX afii10017 afii10083 -5 KPX afii10017 afii10084 -133 KPX afii10017 afii10085 -34 KPX afii10017 afii10086 -45 KPX afii10017 afii10089 -51 KPX afii10017 afii10092 -45 KPX afii10017 afii10106 -3 KPX afii10017 afii10110 -41 KPX afii10017 colon -14 KPX afii10017 comma 3 KPX afii10017 guillemotright -32 KPX afii10017 period 4 KPX afii10017 semicolon -2 KPX afii10018 afii10017 -23 KPX afii10018 afii10024 -21 KPX afii10018 afii10036 -31 KPX afii10018 afii10037 -34 KPX afii10018 afii10041 -42 KPX afii10018 afii10042 -10 KPX afii10018 afii10060 -46 KPX afii10018 afii10062 -32 KPX afii10018 afii10072 -7 KPX afii10018 afii10084 -132 KPX afii10018 afii10085 -25 KPX afii10018 afii10092 -44 KPX afii10018 afii10106 -29 KPX afii10018 afii10110 -29 KPX afii10019 afii10017 -26 KPX afii10019 afii10024 -22 KPX afii10019 afii10036 -37 KPX afii10019 afii10037 -44 KPX afii10019 afii10041 -23 KPX afii10019 afii10042 6 KPX afii10019 afii10060 -52 KPX afii10019 afii10062 -52 KPX afii10019 afii10072 -4 KPX afii10019 afii10084 -85 KPX afii10019 afii10085 -20 KPX afii10019 afii10089 -27 KPX afii10019 afii10092 3 KPX afii10019 afii10106 -21 KPX afii10019 afii10110 -16 KPX afii10020 afii10021 -72 KPX afii10020 afii10029 -43 KPX afii10020 afii10032 -45 KPX afii10020 afii10035 -46 KPX afii10020 afii10036 15 KPX afii10020 afii10037 12 KPX afii10020 afii10038 -74 KPX afii10020 afii10053 -38 KPX afii10020 afii10058 -53 KPX afii10020 afii10062 14 KPX afii10020 afii10065 -146 KPX afii10020 afii10067 -131 KPX afii10020 afii10069 -154 KPX afii10020 afii10070 -141 KPX afii10020 afii10072 -148 KPX afii10020 afii10073 -155 KPX afii10020 afii10074 -144 KPX afii10020 afii10076 -132 KPX afii10020 afii10077 -164 KPX afii10020 afii10078 -131 KPX afii10020 afii10079 -140 KPX afii10020 afii10080 -140 KPX afii10020 afii10081 -142 KPX afii10020 afii10082 -140 KPX afii10020 afii10083 -136 KPX afii10020 afii10084 -229 KPX afii10020 afii10085 -163 KPX afii10020 afii10086 -136 KPX afii10020 afii10087 -162 KPX afii10020 afii10088 -148 KPX afii10020 afii10089 -181 KPX afii10020 afii10092 -141 KPX afii10020 afii10096 -131 KPX afii10020 afii10097 -147 KPX afii10020 afii10101 -139 KPX afii10020 afii10106 -165 KPX afii10020 afii10110 -24 KPX afii10020 colon -148 KPX afii10020 comma -148 KPX afii10020 hyphen -127 KPX afii10020 period -150 KPX afii10020 semicolon -140 KPX afii10022 afii10038 -43 KPX afii10024 afii10025 -35 KPX afii10024 afii10032 -29 KPX afii10024 afii10035 -28 KPX afii10024 afii10038 -46 KPX afii10024 afii10053 -24 KPX afii10024 afii10065 -13 KPX afii10024 afii10066 -21 KPX afii10024 afii10070 -24 KPX afii10024 afii10073 -15 KPX afii10024 afii10080 -23 KPX afii10024 afii10083 -19 KPX afii10024 afii10084 -127 KPX afii10024 afii10085 -46 KPX afii10024 afii10086 -59 KPX afii10024 afii10089 -70 KPX afii10024 afii10101 -22 KPX afii10024 afii10110 -34 KPX afii10025 afii10017 -36 KPX afii10025 afii10021 -27 KPX afii10025 afii10024 -29 KPX afii10025 afii10025 -26 KPX afii10025 afii10029 -23 KPX afii10025 afii10036 -44 KPX afii10025 afii10037 -51 KPX afii10025 afii10039 -47 KPX afii10025 afii10041 -30 KPX afii10025 afii10049 -12 KPX afii10025 afii10058 -33 KPX afii10025 afii10060 -59 KPX afii10025 afii10062 -60 KPX afii10025 afii10077 -28 KPX afii10025 afii10084 -92 KPX afii10025 afii10085 -27 KPX afii10025 afii10087 -32 KPX afii10025 afii10089 -37 KPX afii10025 afii10097 -9 KPX afii10025 afii10106 -29 KPX afii10025 afii10110 -23 KPX afii10028 afii10025 -52 KPX afii10028 afii10032 -45 KPX afii10028 afii10035 -49 KPX afii10028 afii10038 -63 KPX afii10028 afii10053 -45 KPX afii10028 afii10065 -35 KPX afii10028 afii10066 -41 KPX afii10028 afii10070 -45 KPX afii10028 afii10073 -37 KPX afii10028 afii10080 -44 KPX afii10028 afii10083 -40 KPX afii10028 afii10084 -142 KPX afii10028 afii10085 -65 KPX afii10028 afii10086 -81 KPX afii10028 afii10089 -87 KPX afii10028 afii10101 -43 KPX afii10028 afii10110 -38 KPX afii10032 afii10017 -32 KPX afii10032 afii10021 -45 KPX afii10032 afii10024 -27 KPX afii10032 afii10025 -22 KPX afii10032 afii10029 -22 KPX afii10032 afii10036 -58 KPX afii10032 afii10037 -47 KPX afii10032 afii10039 -44 KPX afii10032 afii10041 -19 KPX afii10032 afii10044 -36 KPX afii10032 afii10049 -4 KPX afii10032 afii10058 -31 KPX afii10032 afii10060 -73 KPX afii10032 afii10062 -61 KPX afii10032 afii10077 -20 KPX afii10032 afii10106 -21 KPX afii10034 afii10017 -77 KPX afii10034 afii10021 -83 KPX afii10034 afii10029 -59 KPX afii10034 afii10035 -26 KPX afii10034 afii10041 -21 KPX afii10034 afii10049 -26 KPX afii10034 afii10058 -68 KPX afii10034 afii10065 -34 KPX afii10034 afii10067 -22 KPX afii10034 afii10068 -57 KPX afii10034 afii10069 -73 KPX afii10034 afii10070 -34 KPX afii10034 afii10073 -31 KPX afii10034 afii10077 -60 KPX afii10034 afii10080 -33 KPX afii10034 afii10083 -29 KPX afii10034 afii10086 -66 KPX afii10034 afii10101 -30 KPX afii10034 afii10106 -61 KPX afii10034 colon -52 KPX afii10034 comma -128 KPX afii10034 hyphen -34 KPX afii10034 period -131 KPX afii10034 semicolon -52 KPX afii10035 afii10017 -32 KPX afii10035 afii10024 -25 KPX afii10035 afii10025 -18 KPX afii10035 afii10029 -19 KPX afii10035 afii10032 -7 KPX afii10035 afii10035 -11 KPX afii10035 afii10036 -37 KPX afii10035 afii10037 -44 KPX afii10035 afii10038 -26 KPX afii10035 afii10039 -42 KPX afii10035 afii10049 -5 KPX afii10035 afii10058 -29 KPX afii10035 afii10060 -52 KPX afii10035 afii10062 -49 KPX afii10035 afii10084 -72 KPX afii10035 afii10085 -9 KPX afii10035 afii10089 -21 KPX afii10035 afii10106 -27 KPX afii10035 afii10110 -11 KPX afii10036 afii10017 -105 KPX afii10036 afii10021 -79 KPX afii10036 afii10025 -38 KPX afii10036 afii10029 -50 KPX afii10036 afii10032 -52 KPX afii10036 afii10035 -53 KPX afii10036 afii10036 8 KPX afii10036 afii10037 5 KPX afii10036 afii10038 -81 KPX afii10036 afii10049 -23 KPX afii10036 afii10053 -45 KPX afii10036 afii10058 -60 KPX afii10036 afii10060 -6 KPX afii10036 afii10062 7 KPX afii10036 afii10065 -92 KPX afii10036 afii10067 -78 KPX afii10036 afii10068 -113 KPX afii10036 afii10069 -100 KPX afii10036 afii10070 -89 KPX afii10036 afii10072 -91 KPX afii10036 afii10073 -101 KPX afii10036 afii10074 -91 KPX afii10036 afii10076 -79 KPX afii10036 afii10077 -107 KPX afii10036 afii10078 -78 KPX afii10036 afii10079 -87 KPX afii10036 afii10080 -88 KPX afii10036 afii10081 -89 KPX afii10036 afii10082 -84 KPX afii10036 afii10083 -84 KPX afii10036 afii10084 -175 KPX afii10036 afii10085 -111 KPX afii10036 afii10086 -125 KPX afii10036 afii10087 -111 KPX afii10036 afii10088 -95 KPX afii10036 afii10089 -127 KPX afii10036 afii10092 -87 KPX afii10036 afii10097 -92 KPX afii10036 afii10101 -87 KPX afii10036 afii10106 -108 KPX afii10036 afii10110 -31 KPX afii10036 colon -97 KPX afii10036 comma -99 KPX afii10036 guillemotright -107 KPX afii10036 hyphen -71 KPX afii10036 period -96 KPX afii10036 semicolon -88 KPX afii10037 afii10017 -74 KPX afii10037 afii10021 -76 KPX afii10037 afii10025 -48 KPX afii10037 afii10029 -45 KPX afii10037 afii10032 -48 KPX afii10037 afii10035 -52 KPX afii10037 afii10036 14 KPX afii10037 afii10037 11 KPX afii10037 afii10038 -63 KPX afii10037 afii10041 -1 KPX afii10037 afii10049 -32 KPX afii10037 afii10053 -43 KPX afii10037 afii10058 -54 KPX afii10037 afii10060 -1 KPX afii10037 afii10065 -71 KPX afii10037 afii10066 -53 KPX afii10037 afii10069 -82 KPX afii10037 afii10070 -65 KPX afii10037 afii10072 -39 KPX afii10037 afii10073 -68 KPX afii10037 afii10074 -61 KPX afii10037 afii10076 -49 KPX afii10037 afii10077 -86 KPX afii10037 afii10078 -48 KPX afii10037 afii10079 -57 KPX afii10037 afii10080 -65 KPX afii10037 afii10081 -59 KPX afii10037 afii10082 -49 KPX afii10037 afii10083 -60 KPX afii10037 afii10084 -98 KPX afii10037 afii10085 -32 KPX afii10037 afii10086 -96 KPX afii10037 afii10087 -38 KPX afii10037 afii10088 -65 KPX afii10037 afii10089 -49 KPX afii10037 afii10096 -46 KPX afii10037 afii10097 -60 KPX afii10037 afii10101 -63 KPX afii10037 afii10106 -87 KPX afii10037 afii10110 -25 KPX afii10037 colon -71 KPX afii10037 comma -107 KPX afii10037 guillemotright -83 KPX afii10037 hyphen -48 KPX afii10037 period -103 KPX afii10037 semicolon -62 KPX afii10038 afii10017 -54 KPX afii10038 afii10021 -63 KPX afii10038 afii10024 -44 KPX afii10038 afii10029 -43 KPX afii10038 afii10037 -66 KPX afii10038 afii10039 -61 KPX afii10038 afii10041 -26 KPX afii10038 afii10044 -64 KPX afii10038 afii10049 -23 KPX afii10038 afii10058 -52 KPX afii10038 afii10062 -76 KPX afii10038 afii10069 -36 KPX afii10038 afii10077 -35 KPX afii10038 afii10106 -36 KPX afii10039 afii10025 -51 KPX afii10039 afii10032 -44 KPX afii10039 afii10035 -48 KPX afii10039 afii10038 -62 KPX afii10039 afii10053 -39 KPX afii10039 afii10065 -31 KPX afii10039 afii10070 -44 KPX afii10039 afii10073 -33 KPX afii10039 afii10080 -43 KPX afii10039 afii10083 -39 KPX afii10039 afii10084 -138 KPX afii10039 afii10085 -64 KPX afii10039 afii10086 -80 KPX afii10039 afii10089 -86 KPX afii10039 afii10101 -42 KPX afii10044 afii10036 -108 KPX afii10044 afii10037 -76 KPX afii10044 afii10041 -49 KPX afii10044 afii10044 -101 KPX afii10044 afii10060 -105 KPX afii10044 afii10062 -72 KPX afii10044 afii10092 -45 KPX afii10046 afii10036 -107 KPX afii10046 afii10037 -75 KPX afii10046 afii10041 -48 KPX afii10046 afii10044 -100 KPX afii10046 afii10060 -104 KPX afii10046 afii10062 -71 KPX afii10046 afii10092 -44 KPX afii10047 afii10017 -30 KPX afii10047 afii10021 -41 KPX afii10047 afii10029 -20 KPX afii10047 afii10036 -54 KPX afii10047 afii10037 -41 KPX afii10047 afii10041 -14 KPX afii10047 afii10044 -32 KPX afii10047 afii10049 -2 KPX afii10047 afii10058 -29 KPX afii10047 afii10060 -69 KPX afii10047 afii10062 -59 KPX afii10047 afii10106 -19 KPX afii10048 afii10017 -38 KPX afii10048 afii10021 -51 KPX afii10048 afii10024 -33 KPX afii10048 afii10025 -28 KPX afii10048 afii10029 -28 KPX afii10048 afii10036 -64 KPX afii10048 afii10037 -53 KPX afii10048 afii10039 -50 KPX afii10048 afii10041 -25 KPX afii10048 afii10044 -43 KPX afii10048 afii10049 -10 KPX afii10048 afii10058 -37 KPX afii10048 afii10060 -79 KPX afii10048 afii10062 -67 KPX afii10048 afii10077 -26 KPX afii10048 afii10106 -27 KPX afii10050 afii10021 -59 KPX afii10050 afii10029 -30 KPX afii10050 afii10032 -32 KPX afii10050 afii10035 -33 KPX afii10050 afii10036 28 KPX afii10050 afii10037 25 KPX afii10050 afii10038 -61 KPX afii10050 afii10041 13 KPX afii10050 afii10049 -3 KPX afii10050 afii10053 -25 KPX afii10050 afii10058 -40 KPX afii10050 afii10060 13 KPX afii10050 afii10062 26 KPX afii10050 afii10065 -137 KPX afii10050 afii10067 -121 KPX afii10050 afii10069 -141 KPX afii10050 afii10070 -129 KPX afii10050 afii10072 -130 KPX afii10050 afii10073 -139 KPX afii10050 afii10074 -134 KPX afii10050 afii10076 -121 KPX afii10050 afii10077 -151 KPX afii10050 afii10078 -121 KPX afii10050 afii10079 -130 KPX afii10050 afii10080 -128 KPX afii10050 afii10081 -132 KPX afii10050 afii10082 -126 KPX afii10050 afii10083 -124 KPX afii10050 afii10084 -216 KPX afii10050 afii10085 -152 KPX afii10050 afii10086 -123 KPX afii10050 afii10087 -150 KPX afii10050 afii10088 -138 KPX afii10050 afii10089 -168 KPX afii10050 afii10092 -128 KPX afii10050 afii10096 -120 KPX afii10050 afii10097 -130 KPX afii10050 afii10101 -127 KPX afii10050 afii10106 -152 KPX afii10050 afii10110 -8 KPX afii10052 afii10021 -70 KPX afii10052 afii10029 -42 KPX afii10052 afii10032 -44 KPX afii10052 afii10035 -45 KPX afii10052 afii10036 17 KPX afii10052 afii10037 14 KPX afii10052 afii10038 -72 KPX afii10052 afii10041 1 KPX afii10052 afii10053 -37 KPX afii10052 afii10058 -51 KPX afii10052 afii10060 2 KPX afii10052 afii10062 15 KPX afii10052 afii10065 -144 KPX afii10052 afii10067 -130 KPX afii10052 afii10069 -153 KPX afii10052 afii10070 -139 KPX afii10052 afii10072 -146 KPX afii10052 afii10073 -154 KPX afii10052 afii10074 -143 KPX afii10052 afii10076 -130 KPX afii10052 afii10077 -163 KPX afii10052 afii10078 -130 KPX afii10052 afii10079 -139 KPX afii10052 afii10080 -139 KPX afii10052 afii10081 -141 KPX afii10052 afii10082 -138 KPX afii10052 afii10083 -134 KPX afii10052 afii10084 -228 KPX afii10052 afii10085 -161 KPX afii10052 afii10086 -134 KPX afii10052 afii10087 -161 KPX afii10052 afii10088 -147 KPX afii10052 afii10089 -180 KPX afii10052 afii10092 -140 KPX afii10052 afii10096 -129 KPX afii10052 afii10097 -145 KPX afii10052 afii10101 -137 KPX afii10052 afii10106 -164 KPX afii10052 afii10110 -22 KPX afii10058 afii10036 -113 KPX afii10058 afii10037 -81 KPX afii10058 afii10041 -54 KPX afii10058 afii10044 -106 KPX afii10058 afii10060 -110 KPX afii10058 afii10062 -77 KPX afii10058 afii10092 -50 KPX afii10059 afii10036 -112 KPX afii10059 afii10037 -80 KPX afii10059 afii10041 -53 KPX afii10059 afii10044 -105 KPX afii10059 afii10060 -108 KPX afii10059 afii10062 -76 KPX afii10059 afii10092 -48 KPX afii10061 afii10025 -61 KPX afii10061 afii10032 -52 KPX afii10061 afii10035 -56 KPX afii10061 afii10038 -69 KPX afii10061 afii10053 -52 KPX afii10061 afii10065 -33 KPX afii10061 afii10066 -48 KPX afii10061 afii10070 -51 KPX afii10061 afii10073 -35 KPX afii10061 afii10080 -51 KPX afii10061 afii10083 -46 KPX afii10061 afii10084 -147 KPX afii10061 afii10085 -73 KPX afii10061 afii10086 -87 KPX afii10061 afii10089 -95 KPX afii10061 afii10101 -49 KPX afii10061 afii10110 -57 KPX afii10062 afii10017 -87 KPX afii10062 afii10021 -75 KPX afii10062 afii10025 -47 KPX afii10062 afii10029 -43 KPX afii10062 afii10032 -51 KPX afii10062 afii10035 -53 KPX afii10062 afii10036 15 KPX afii10062 afii10038 -62 KPX afii10062 afii10049 -31 KPX afii10062 afii10053 -48 KPX afii10062 afii10058 -53 KPX afii10062 afii10062 14 KPX afii10062 afii10065 -69 KPX afii10062 afii10066 -51 KPX afii10062 afii10069 -88 KPX afii10062 afii10070 -71 KPX afii10062 afii10072 -37 KPX afii10062 afii10073 -66 KPX afii10062 afii10074 -60 KPX afii10062 afii10076 -47 KPX afii10062 afii10077 -85 KPX afii10062 afii10078 -47 KPX afii10062 afii10079 -56 KPX afii10062 afii10080 -70 KPX afii10062 afii10081 -58 KPX afii10062 afii10082 -48 KPX afii10062 afii10083 -66 KPX afii10062 afii10084 -96 KPX afii10062 afii10086 -102 KPX afii10062 afii10087 -36 KPX afii10062 afii10088 -64 KPX afii10062 afii10089 -47 KPX afii10062 afii10096 -44 KPX afii10062 afii10097 -59 KPX afii10062 afii10101 -67 KPX afii10062 afii10106 -86 KPX afii10065 afii10084 -92 KPX afii10065 afii10085 -30 KPX afii10065 afii10089 -37 KPX afii10065 afii10106 -3 KPX afii10065 afii10110 -24 KPX afii10066 afii10072 -5 KPX afii10066 afii10073 -13 KPX afii10066 afii10084 -95 KPX afii10066 afii10085 -23 KPX afii10066 afii10087 -25 KPX afii10066 afii10089 -19 KPX afii10066 afii10097 -4 KPX afii10066 afii10110 -17 KPX afii10067 afii10072 2 KPX afii10067 afii10084 -77 KPX afii10067 afii10085 -16 KPX afii10067 afii10087 -14 KPX afii10067 afii10089 -18 KPX afii10067 afii10097 4 KPX afii10067 afii10110 -6 KPX afii10068 afii10069 -73 KPX afii10068 afii10077 -60 KPX afii10068 afii10080 -34 KPX afii10068 afii10083 -31 KPX afii10068 afii10086 -69 KPX afii10068 afii10097 -22 KPX afii10068 afii10101 -31 KPX afii10068 afii10106 -61 KPX afii10068 afii10110 -10 KPX afii10068 colon -52 KPX afii10068 comma -119 KPX afii10068 hyphen -100 KPX afii10068 period -123 KPX afii10068 semicolon -52 KPX afii10070 afii10072 -9 KPX afii10070 afii10073 -13 KPX afii10070 afii10077 -22 KPX afii10070 afii10085 -22 KPX afii10070 afii10087 -25 KPX afii10070 afii10089 -16 KPX afii10070 afii10097 -5 KPX afii10070 afii10110 -17 KPX afii10072 afii10066 -1 KPX afii10072 afii10070 -7 KPX afii10072 afii10073 -12 KPX afii10072 afii10080 -7 KPX afii10072 afii10083 -2 KPX afii10072 afii10086 -42 KPX afii10072 afii10101 -2 KPX afii10072 afii10110 1 KPX afii10073 afii10072 -7 KPX afii10073 afii10077 -19 KPX afii10073 afii10084 -84 KPX afii10073 afii10085 -24 KPX afii10073 afii10087 -27 KPX afii10073 afii10089 -26 KPX afii10073 afii10097 -3 KPX afii10073 afii10106 -22 KPX afii10073 afii10110 -18 KPX afii10075 afii10106 -29 KPX afii10076 afii10065 -32 KPX afii10076 afii10066 -23 KPX afii10076 afii10070 -29 KPX afii10076 afii10073 -34 KPX afii10076 afii10080 -28 KPX afii10076 afii10083 -24 KPX afii10076 afii10086 -63 KPX afii10076 afii10101 -23 KPX afii10076 afii10110 -20 KPX afii10080 afii10072 -6 KPX afii10080 afii10073 -11 KPX afii10080 afii10077 -23 KPX afii10080 afii10084 -91 KPX afii10080 afii10085 -19 KPX afii10080 afii10087 -26 KPX afii10080 afii10092 -3 KPX afii10080 afii10106 -24 KPX afii10080 afii10110 -13 KPX afii10082 afii10072 -1 KPX afii10082 afii10073 -6 KPX afii10082 afii10077 -18 KPX afii10082 afii10084 -87 KPX afii10082 afii10085 -14 KPX afii10082 afii10087 -21 KPX afii10082 afii10089 -11 KPX afii10082 afii10097 2 KPX afii10082 afii10101 12 KPX afii10082 afii10110 -8 KPX afii10082 colon -10 KPX afii10082 comma -13 KPX afii10082 hyphen 26 KPX afii10082 period -11 KPX afii10082 semicolon 1 KPX afii10083 afii10062 -63 KPX afii10083 afii10065 -1 KPX afii10083 afii10072 -3 KPX afii10083 afii10073 -5 KPX afii10083 afii10077 -14 KPX afii10083 afii10080 3 KPX afii10083 afii10084 -75 KPX afii10083 afii10085 -21 KPX afii10083 afii10086 -31 KPX afii10083 afii10087 -23 KPX afii10083 afii10089 -11 KPX afii10083 afii10097 -1 KPX afii10083 afii10106 -18 KPX afii10084 afii10065 -82 KPX afii10084 afii10069 -122 KPX afii10084 afii10070 -85 KPX afii10084 afii10073 -79 KPX afii10084 afii10077 -109 KPX afii10084 afii10080 -83 KPX afii10084 afii10083 -80 KPX afii10084 afii10084 -120 KPX afii10084 afii10085 -58 KPX afii10084 afii10086 -118 KPX afii10084 afii10089 -71 KPX afii10084 afii10097 -71 KPX afii10084 afii10101 -80 KPX afii10084 afii10106 -110 KPX afii10084 afii10110 -59 KPX afii10084 colon -101 KPX afii10084 comma -162 KPX afii10084 guillemotright -172 KPX afii10084 hyphen -144 KPX afii10084 period -166 KPX afii10084 semicolon -101 KPX afii10085 afii10065 -30 KPX afii10085 afii10069 -46 KPX afii10085 afii10070 -23 KPX afii10085 afii10073 -27 KPX afii10085 afii10077 -45 KPX afii10085 afii10080 -23 KPX afii10085 afii10083 -18 KPX afii10085 afii10084 -59 KPX afii10085 afii10086 -58 KPX afii10085 afii10089 -10 KPX afii10085 afii10097 -19 KPX afii10085 afii10101 -21 KPX afii10085 afii10106 -46 KPX afii10085 colon -40 KPX afii10085 comma -68 KPX afii10085 guillemotright -51 KPX afii10085 hyphen -14 KPX afii10085 period -68 KPX afii10085 semicolon -29 KPX afii10086 afii10068 -62 KPX afii10086 afii10069 -51 KPX afii10086 afii10072 -39 KPX afii10086 afii10073 -43 KPX afii10086 afii10077 -56 KPX afii10086 afii10084 -123 KPX afii10086 afii10085 -52 KPX afii10086 afii10087 -59 KPX afii10086 afii10089 -46 KPX afii10086 afii10092 -35 KPX afii10086 afii10097 -34 KPX afii10086 afii10106 -57 KPX afii10086 afii10110 -46 KPX afii10087 afii10065 -25 KPX afii10087 afii10070 -26 KPX afii10087 afii10073 -32 KPX afii10087 afii10080 -25 KPX afii10087 afii10083 -21 KPX afii10087 afii10086 -56 KPX afii10087 afii10101 -19 KPX afii10087 afii10110 3 KPX afii10092 afii10070 -12 KPX afii10092 afii10083 -7 KPX afii10092 afii10084 -161 KPX afii10092 afii10085 -48 KPX afii10092 afii10089 -33 KPX afii10092 afii10092 -68 KPX afii10092 afii10110 -42 KPX afii10094 afii10070 -13 KPX afii10094 afii10083 -8 KPX afii10094 afii10084 -162 KPX afii10094 afii10085 -49 KPX afii10094 afii10089 -34 KPX afii10094 afii10092 -69 KPX afii10094 afii10110 -43 KPX afii10095 afii10077 -16 KPX afii10095 afii10084 -88 KPX afii10095 afii10085 -16 KPX afii10095 afii10089 -13 KPX afii10095 afii10097 3 KPX afii10095 afii10106 -21 KPX afii10095 afii10110 -10 KPX afii10096 afii10072 -13 KPX afii10096 afii10073 -18 KPX afii10096 afii10077 -30 KPX afii10096 afii10084 -98 KPX afii10096 afii10085 -26 KPX afii10096 afii10087 -33 KPX afii10096 afii10089 -24 KPX afii10096 afii10092 -10 KPX afii10096 afii10106 -31 KPX afii10096 afii10110 -20 KPX afii10098 afii10069 -35 KPX afii10098 afii10077 -22 KPX afii10098 afii10080 4 KPX afii10098 afii10083 7 KPX afii10098 afii10086 -30 KPX afii10098 afii10097 16 KPX afii10098 afii10101 7 KPX afii10098 afii10106 -23 KPX afii10100 afii10069 -42 KPX afii10100 afii10077 -29 KPX afii10100 afii10080 -3 KPX afii10100 afii10086 -38 KPX afii10100 afii10097 9 KPX afii10100 afii10106 -30 KPX afii10106 afii10084 -169 KPX afii10106 afii10085 -57 KPX afii10106 afii10089 -42 KPX afii10106 afii10092 -77 KPX afii10106 afii10110 -51 KPX afii10107 afii10070 -7 KPX afii10107 afii10083 -2 KPX afii10107 afii10084 -156 KPX afii10107 afii10085 -44 KPX afii10107 afii10089 -29 KPX afii10107 afii10092 -64 KPX afii10107 afii10101 -5 KPX afii10107 afii10110 -38 KPX afii10109 afii10065 -21 KPX afii10109 afii10066 -16 KPX afii10109 afii10070 -18 KPX afii10109 afii10073 -28 KPX afii10109 afii10080 -18 KPX afii10109 afii10083 -13 KPX afii10109 afii10086 -53 KPX afii10109 afii10101 -16 KPX afii10109 afii10110 -18 KPX afii10110 afii10065 -26 KPX afii10110 afii10069 -40 KPX afii10110 afii10070 -22 KPX afii10110 afii10073 -28 KPX afii10110 afii10077 -39 KPX afii10110 afii10080 -17 KPX afii10110 afii10083 -12 KPX afii10110 afii10084 -61 KPX afii10110 afii10086 -52 KPX afii10110 afii10089 -12 KPX afii10110 afii10097 -20 KPX afii10110 afii10101 -15 KPX agrave v -19 KPX agrave w -8 KPX agrave y -24 KPX alpha colon 3 KPX alpha comma 12 KPX alpha delta 10 KPX alpha epsilon 27 KPX alpha exclam -10 KPX alpha gamma 25 KPX alpha guillemotright -20 KPX alpha o 17 KPX alpha omicron 15 KPX alpha omicrontonos 15 KPX alpha period 12 KPX alpha phi 13 KPX alpha pi 6 KPX alpha semicolon 14 KPX alpha sigma 8 KPX alpha tau 32 KPX alpha theta 18 KPX alpha upsilondieresis 13 KPX alpha upsilontonos 13 KPX alpha xi 12 KPX alpha zeta 3 KPX alphatonos colon 3 KPX alphatonos comma 12 KPX alphatonos delta 14 KPX alphatonos epsilon 27 KPX alphatonos gamma 25 KPX alphatonos guillemotright -20 KPX alphatonos o 17 KPX alphatonos omega -9 KPX alphatonos omicron 15 KPX alphatonos period 12 KPX alphatonos semicolon 14 KPX alphatonos sigma 8 KPX alphatonos theta 18 KPX alphatonos xi 12 KPX alphatonos zeta 3 KPX aring v -19 KPX aring w -8 KPX aring y -24 KPX asterisk period -54 KPX b asterisk -10 KPX b colon -16 KPX b comma -15 KPX b endash 48 KPX b g 8 KPX b j 4 KPX b period -17 KPX b s 3 KPX b v -12 KPX b w -3 KPX b y -18 KPX b z -22 KPX backslash A 18 KPX backslash B 38 KPX backslash C 31 KPX backslash D 33 KPX backslash G 29 KPX backslash H 36 KPX backslash I 28 KPX backslash J 13 KPX backslash K 38 KPX backslash L 38 KPX backslash M 40 KPX backslash N 40 KPX backslash O 35 KPX backslash P 32 KPX backslash Q 32 KPX backslash R 31 KPX backslash S 30 KPX backslash T -42 KPX backslash U 28 KPX backslash V -8 KPX backslash W 14 KPX backslash X 15 KPX backslash Y -30 KPX backslash Z 12 KPX backslash d 58 KPX backslash eacute 50 KPX backslash f 45 KPX backslash fi 42 KPX backslash fl 39 KPX backslash g 56 KPX backslash i 53 KPX backslash j 50 KPX backslash l 52 KPX beta gamma -20 KPX beta lambda -25 KPX braceleft A -12 KPX braceleft AE -15 KPX braceleft J -15 KPX braceleft T -11 KPX braceleft V -13 KPX braceleft W 7 KPX braceleft X -14 KPX braceleft Y -10 KPX braceleft Z -23 KPX braceleft b 23 KPX braceleft f 10 KPX braceleft fi 24 KPX braceleft fl 21 KPX braceleft g 19 KPX braceleft h 15 KPX braceleft i 17 KPX braceleft j 16 KPX braceleft k 21 KPX braceleft l 16 KPX braceleft p 21 KPX braceleft quoteleft 36 KPX braceleft y -1 KPX bracketleft A -3 KPX bracketleft AE -6 KPX bracketleft J -6 KPX bracketleft T 4 KPX bracketleft V -2 KPX bracketleft W 18 KPX bracketleft X -5 KPX bracketleft Y 4 KPX bracketleft Z -14 KPX bracketleft b 33 KPX bracketleft f 20 KPX bracketleft fi 34 KPX bracketleft fl 31 KPX bracketleft g 28 KPX bracketleft h 25 KPX bracketleft i 27 KPX bracketleft j 26 KPX bracketleft k 31 KPX bracketleft l 26 KPX bracketleft p 30 KPX bracketleft quoteleft 41 KPX bracketleft y 7 KPX c J 11 KPX c a 1 KPX c adieresis 1 KPX c ae 4 KPX c asterisk 2 KPX c c 7 KPX c colon -9 KPX c e 3 KPX c endash 24 KPX c exclam -23 KPX c h 4 KPX c hyphen -1 KPX c j 5 KPX c k 10 KPX c l 5 KPX c o 5 KPX c odieresis 5 KPX c oacute 5 KPX c oe 2 KPX c period -2 KPX c question -59 KPX c quotedblright 11 KPX c quoteright 3 KPX c s 5 KPX c semicolon 1 KPX c u 1 KPX c udieresis 1 KPX c y -16 KPX ccaron e 1 KPX ccaron o 6 KPX chi alpha -41 KPX chi alphatonos -43 KPX chi epsilon -33 KPX chi epsilontonos -33 KPX chi o -42 KPX chi omega -70 KPX chi omegatonos -70 KPX chi omicron -44 KPX chi omicrontonos -44 KPX chi theta -21 KPX chi upsilontonos -31 KPX comma endash 8 KPX comma hyphen -17 KPX comma quotedblright -41 KPX comma quoteright -49 KPX d a -3 KPX d adieresis -3 KPX d braceright 36 KPX d bracketright 29 KPX d comma -8 KPX d endash 37 KPX d g 8 KPX d j 5 KPX d parenright 15 KPX d period -8 KPX d v -7 KPX d y -11 KPX d z -16 KPX dcaron a -47 KPX dcaron aacute -47 KPX dcaron colon -49 KPX dcaron comma -55 KPX dcaron e -39 KPX dcaron eacute -39 KPX dcaron m -20 KPX dcaron n -20 KPX dcaron o -37 KPX dcaron oacute -37 KPX dcaron period -53 KPX dcaron r -19 KPX dcaron s -39 KPX dcaron semicolon -41 KPX dcaron u -25 KPX dcaron uacute -18 KPX dcaron udieresis -18 KPX dcaron uring -18 KPX dcaron y 2 KPX dcaron yacute 9 KPX dcaron z -19 KPX delta nu -17 KPX e a -11 KPX e adieresis -11 KPX e asterisk -12 KPX e b 3 KPX e colon -20 KPX e comma -19 KPX e endash 39 KPX e exclam -32 KPX e f -11 KPX e g 1 KPX e germandbls -4 KPX e h -4 KPX e hyphen 14 KPX e j -4 KPX e k 1 KPX e l -3 KPX e period -21 KPX e question -72 KPX e quoteright -11 KPX e s -3 KPX e semicolon -8 KPX e t -6 KPX e v -19 KPX e w -7 KPX e x -26 KPX e y -22 KPX e z -23 KPX e zcaron -23 KPX eacute b 3 KPX eacute c 4 KPX eacute colon -20 KPX eacute comma -19 KPX eacute d 5 KPX eacute exclam -32 KPX eacute g 1 KPX eacute hyphen 14 KPX eacute l -3 KPX eacute period -21 KPX eacute q 3 KPX eacute question -72 KPX eacute quotedblright -3 KPX eacute quoteright -11 KPX eacute semicolon -8 KPX eacute t -6 KPX eacute v -19 KPX eacute w -7 KPX eacute y -22 KPX eacute z -23 KPX ecircumflex v -19 KPX ecircumflex w -7 KPX ecircumflex y -22 KPX endash a 13 KPX endash adieresis 13 KPX endash b 39 KPX endash c 51 KPX endash d 52 KPX endash e 45 KPX endash f 22 KPX endash g 53 KPX endash h 31 KPX endash i 33 KPX endash j 36 KPX endash k 37 KPX endash l 32 KPX endash m 31 KPX endash n 31 KPX endash o 47 KPX endash odieresis 47 KPX endash p 42 KPX endash q 52 KPX endash r 32 KPX endash s 25 KPX endash t 25 KPX endash u 34 KPX endash udieresis 34 KPX endash v 19 KPX endash w 28 KPX endash x -18 KPX endash y 16 KPX endash z -30 KPX eogonek zdotaccent -23 KPX epsilon alpha 18 KPX epsilon alphatonos 15 KPX epsilon chi -30 KPX epsilon delta 12 KPX epsilon epsilon 31 KPX epsilon epsilontonos 31 KPX epsilon lambda 7 KPX epsilon o 14 KPX epsilon omega -8 KPX epsilon omegatonos -8 KPX epsilon omicron 14 KPX epsilon omicrontonos 14 KPX epsilon phi 14 KPX epsilon sigma 7 KPX epsilon tau 9 KPX epsilon theta 16 KPX epsilon upsilon 9 KPX epsilon upsilontonos 9 KPX epsilon xi 21 KPX epsilon zeta 8 KPX epsilontonos alpha 18 KPX epsilontonos delta 12 KPX epsilontonos lambda 7 KPX epsilontonos o 14 KPX epsilontonos omega -8 KPX epsilontonos omicron 14 KPX epsilontonos phi 14 KPX epsilontonos semicolon 9 KPX epsilontonos tau 9 KPX epsilontonos theta 16 KPX epsilontonos zeta 8 KPX exclam quotedblright 18 KPX exclam quoteright 10 KPX f a -18 KPX f aacute -18 KPX f adieresis -18 KPX f ae -14 KPX f aogonek -18 KPX f aring -18 KPX f asterisk -3 KPX f braceright 17 KPX f bracketright 15 KPX f c -5 KPX f colon -23 KPX f comma -30 KPX f d -3 KPX f e -13 KPX f eacute -13 KPX f endash 17 KPX f exclam -37 KPX f f 12 KPX f g -7 KPX f hyphen -8 KPX f i -9 KPX f iacute -23 KPX f j -7 KPX f l -10 KPX f o -11 KPX f oacute -11 KPX f odieresis -11 KPX f oe -14 KPX f oslash -5 KPX f parenright 1 KPX f period -31 KPX f question -18 KPX f quotedblright 6 KPX f quoteright -1 KPX f quotesingle -5 KPX f racute -11 KPX f s -6 KPX f semicolon -13 KPX f t 16 KPX f trademark -13 KPX f u -11 KPX f udieresis -11 KPX f uring -11 KPX f w 16 KPX f y 9 KPX f yacute 9 KPX f z -5 KPX g a -8 KPX g adieresis -8 KPX g ae -5 KPX g aring -8 KPX g asterisk -6 KPX g braceright 32 KPX g bracketright 26 KPX g colon -14 KPX g comma -12 KPX g d 7 KPX g e -1 KPX g eacute -1 KPX g endash 33 KPX g exclam -28 KPX g f -6 KPX g g 4 KPX g hyphen 7 KPX g j 1 KPX g k 5 KPX g oe -1 KPX g p 9 KPX g parenright 7 KPX g period -13 KPX g question -41 KPX g quotedblright 2 KPX g quoteright -5 KPX g semicolon -2 KPX g t -1 KPX g v -11 KPX g w -3 KPX g y -14 KPX g z -19 KPX gamma alpha -19 KPX gamma alphatonos -21 KPX gamma delta -23 KPX gamma epsilon -8 KPX gamma epsilontonos -8 KPX gamma lambda -44 KPX gamma o -20 KPX gamma omega -48 KPX gamma omegatonos -48 KPX gamma omicron -22 KPX gamma omicrontonos -22 KPX gamma rho -25 KPX gamma upsilontonos -9 KPX gamma xi -11 KPX germandbls e -15 KPX germandbls k -8 KPX germandbls t -15 KPX germandbls w -19 KPX guillemotleft Alpha -35 KPX guillemotleft Alphatonos -35 KPX guillemotleft Etatonos -59 KPX guillemotleft Iotatonos -62 KPX guillemotleft Lambda -35 KPX guillemotleft Tau -110 KPX guillemotleft Upsilon -115 KPX guillemotleft afii10017 -35 KPX guillemotleft afii10029 -43 KPX guillemotleft afii10036 -110 KPX guillemotleft afii10037 -94 KPX guillemotleft afii10041 -46 KPX guillemotleft afii10049 -22 KPX guillemotleft afii10077 -54 KPX guillemotleft afii10084 -171 KPX guillemotleft afii10085 -46 KPX guillemotleft afii10089 -45 KPX guillemotleft nu -42 KPX guillemotleft tau -65 KPX guillemotright A -46 KPX guillemotright AE -52 KPX guillemotright Aacute -46 KPX guillemotright Adieresis -46 KPX guillemotright Aring -46 KPX guillemotright T -121 KPX guillemotright V -87 KPX guillemotright W -60 KPX guillemotright Y -126 KPX guilsinglright A -40 KPX guilsinglright AE -42 KPX guilsinglright Aacute -40 KPX guilsinglright Adieresis -40 KPX guilsinglright Aring -40 KPX guilsinglright T -115 KPX guilsinglright V -82 KPX guilsinglright W -55 KPX guilsinglright Y -120 KPX h asterisk -13 KPX h endash 32 KPX h quoteright -11 KPX h v -16 KPX h y -21 KPX h yacute -21 KPX hyphen A -1 KPX hyphen AE -7 KPX hyphen Aacute -1 KPX hyphen Adieresis -1 KPX hyphen Aring -1 KPX hyphen C 24 KPX hyphen G 26 KPX hyphen J 24 KPX hyphen O 29 KPX hyphen Q 28 KPX hyphen S 8 KPX hyphen T -76 KPX hyphen V -42 KPX hyphen W -16 KPX hyphen X -49 KPX hyphen Y -85 KPX hyphen Z -33 KPX hyphen a -13 KPX hyphen adieresis -13 KPX hyphen afii10017 -1 KPX hyphen afii10036 -75 KPX hyphen afii10037 -61 KPX hyphen afii10084 -146 KPX hyphen afii10085 -12 KPX hyphen f -4 KPX hyphen g 26 KPX hyphen s -2 KPX hyphen t -1 KPX hyphen v -7 KPX hyphen w 1 KPX hyphen x -45 KPX hyphen y -10 KPX hyphen z -57 KPX i T -16 KPX i asterisk -7 KPX i braceright 30 KPX i bracketright 29 KPX i endash 31 KPX i g 3 KPX i parenright 10 KPX i quotedblright 2 KPX i quoteright -5 KPX i v -13 KPX i w -6 KPX i z -21 KPX iacute v -27 KPX iotatonos delta -4 KPX j asterisk -8 KPX j braceright 32 KPX j bracketright 25 KPX j endash 33 KPX j eogonek -1 KPX j parenright 11 KPX j y -16 KPX k a -15 KPX k aacute -15 KPX k adieresis -15 KPX k ae -12 KPX k aogonek -15 KPX k aring -15 KPX k asterisk -15 KPX k b 2 KPX k c -17 KPX k colon -27 KPX k comma -4 KPX k d -16 KPX k e -21 KPX k eacute -21 KPX k endash -17 KPX k eogonek -21 KPX k exclam -34 KPX k f 8 KPX k g -13 KPX k h -5 KPX k hyphen -42 KPX k i -3 KPX k j -4 KPX k l -4 KPX k m -6 KPX k n -5 KPX k o -19 KPX k oacute -19 KPX k odieresis -19 KPX k p 2 KPX k period -5 KPX k q -15 KPX k question -22 KPX k quotedblright -7 KPX k quoteright -15 KPX k r -5 KPX k s -14 KPX k semicolon -17 KPX k t 12 KPX k u -15 KPX k udieresis -15 KPX k v 10 KPX k w 12 KPX k x 21 KPX k y 4 KPX k z 14 KPX kappa alpha -16 KPX kappa alphatonos -19 KPX kappa comma -7 KPX kappa delta -20 KPX kappa epsilon -8 KPX kappa epsilontonos -8 KPX kappa guillemotright -55 KPX kappa o -18 KPX kappa omega -41 KPX kappa omegatonos -41 KPX kappa omicron -20 KPX kappa omicrontonos -20 KPX kappa period -7 KPX kappa phi -22 KPX kappa sigma -27 KPX kappa theta -3 KPX kappa upsilontonos -14 KPX l comma -13 KPX l endash 32 KPX l g 4 KPX l period -12 KPX l v -12 KPX l w -5 KPX l y -16 KPX l z -20 KPX lambda alphatonos -16 KPX lambda comma -2 KPX lambda epsilon -5 KPX lambda epsilontonos -5 KPX lambda gamma -45 KPX lambda guillemotright -46 KPX lambda nu -40 KPX lambda o -15 KPX lambda omega -38 KPX lambda omegatonos -38 KPX lambda omicron -17 KPX lambda omicrontonos -17 KPX lambda period -3 KPX lambda phi -18 KPX lambda quoteright -57 KPX lambda sigma -24 KPX lambda tau -46 KPX lambda upsilon -22 KPX lambda upsilontonos -22 KPX lambda xi -20 KPX lcaron a -46 KPX lcaron aacute -46 KPX lcaron ccaron -30 KPX lcaron colon -49 KPX lcaron comma -54 KPX lcaron d -33 KPX lcaron dcaron -31 KPX lcaron e -39 KPX lcaron eacute -39 KPX lcaron f 6 KPX lcaron g -35 KPX lcaron o -37 KPX lcaron oacute -37 KPX lcaron ocircumflex -30 KPX lcaron p -10 KPX lcaron period -53 KPX lcaron s -37 KPX lcaron scaron -22 KPX lcaron semicolon -40 KPX lcaron t 10 KPX lcaron u -25 KPX lcaron uacute -17 KPX lcaron uring -17 KPX lcaron z -19 KPX lcaron zcaron -11 KPX m endash 33 KPX m g 2 KPX m j -2 KPX m p 4 KPX m v -16 KPX m w -7 KPX m y -20 KPX m z -18 KPX n T -94 KPX n endash 32 KPX n g 5 KPX n j -2 KPX n p 7 KPX n quoteright -11 KPX n v -16 KPX n w -7 KPX n y -21 KPX n z -18 KPX nu alpha -15 KPX nu alphatonos -17 KPX nu colon -32 KPX nu comma -69 KPX nu delta -23 KPX nu epsilontonos -5 KPX nu guillemotright -46 KPX nu lambda -44 KPX nu o -16 KPX nu omega -43 KPX nu omegatonos -43 KPX nu omicron -18 KPX nu omicrontonos -18 KPX nu period -69 KPX nu phi -20 KPX nu quoteright 7 KPX nu semicolon -25 KPX nu sigma -25 KPX nu upsilontonos -8 KPX o T -93 KPX o alpha 4 KPX o asterisk -14 KPX o chi -45 KPX o colon -22 KPX o comma -21 KPX o endash 42 KPX o g 2 KPX o gamma -24 KPX o j -1 KPX o lambda -20 KPX o nu -18 KPX o period -23 KPX o pi -31 KPX o quoteright -13 KPX o semicolon -6 KPX o t -5 KPX o tau -19 KPX o upsilon -7 KPX o v -18 KPX o w -6 KPX o x -24 KPX o y -24 KPX o z -28 KPX odieresis T -57 KPX odieresis asterisk -14 KPX odieresis colon -22 KPX odieresis comma -21 KPX odieresis endash 42 KPX odieresis g 2 KPX odieresis j -1 KPX odieresis period -23 KPX odieresis quoteright -13 KPX odieresis semicolon -6 KPX odieresis t -5 KPX odieresis v -18 KPX odieresis w -6 KPX odieresis x -24 KPX odieresis y -24 KPX odieresis z -28 KPX oacute v -18 KPX oacute w -6 KPX oacute y -24 KPX oacute zacute -28 KPX ocircumflex t -5 KPX oe u -5 KPX ograve v -18 KPX ograve w -6 KPX ograve y -24 KPX omega chi -63 KPX omega gamma -44 KPX omega lambda -39 KPX omega nu -36 KPX omega pi -49 KPX omega tau -43 KPX omegatonos chi -63 KPX omegatonos gamma -44 KPX omegatonos lambda -39 KPX omegatonos nu -36 KPX omegatonos pi -49 KPX omegatonos tau -43 KPX omicron alpha 9 KPX omicron chi -42 KPX omicron gamma -21 KPX omicron lambda -18 KPX omicron nu -16 KPX omicron pi -26 KPX omicron tau -19 KPX omicron upsilon -1 KPX omicrontonos chi -42 KPX omicrontonos gamma -21 KPX omicrontonos nu -16 KPX omicrontonos pi -26 KPX omicrontonos tau -19 KPX p asterisk -9 KPX p endash 48 KPX p g 11 KPX p j 3 KPX p v -10 KPX p w -1 KPX p y -19 KPX p yacute -19 KPX p z -20 KPX parenleft A -16 KPX parenleft AE -19 KPX parenleft J -18 KPX parenleft T -3 KPX parenleft V -10 KPX parenleft W 3 KPX parenleft X -15 KPX parenleft Y -2 KPX parenleft Z -21 KPX parenleft b 16 KPX parenleft f 4 KPX parenleft fi 23 KPX parenleft fl 20 KPX parenleft g 11 KPX parenleft h 8 KPX parenleft i 10 KPX parenleft j 16 KPX parenleft k 14 KPX parenleft l 9 KPX parenleft p 18 KPX parenleft quoteleft 38 KPX parenleft y -11 KPX period asterisk -52 KPX period endash 7 KPX period hyphen -18 KPX period onesuperior -54 KPX period quotedblright -42 KPX period quoteright -50 KPX period quotesingle -52 KPX period threesuperior -15 KPX period twosuperior -5 KPX phi tau -22 KPX pi alphatonos -23 KPX pi lambda -45 KPX pi o -26 KPX pi omegatonos -49 KPX pi omicron -24 KPX pi omicrontonos -24 KPX pi quoteright -15 KPX pi upsilontonos -29 KPX q braceright 35 KPX q bracketright 34 KPX q c 9 KPX q endash 36 KPX q parenright 16 KPX q u 3 KPX q udieresis 3 KPX question quotedblright 20 KPX question quoteright 12 KPX question quotesingle 17 KPX quotedblbase A 30 KPX quotedblbase AE 30 KPX quotedblbase C 5 KPX quotedblbase G 3 KPX quotedblbase J 43 KPX quotedblbase O 6 KPX quotedblbase Q 7 KPX quotedblbase S 22 KPX quotedblbase T -71 KPX quotedblbase Tcaron -71 KPX quotedblbase V -64 KPX quotedblbase W -30 KPX quotedblbase X 10 KPX quotedblbase Y -87 KPX quotedblbase Yacute -87 KPX quotedblbase Z 29 KPX quotedblbase g 9 KPX quotedblbase s 21 KPX quotedblbase v -32 KPX quotedblbase w -17 KPX quotedblbase y -37 KPX quotedblbase z 19 KPX quotedblleft A -46 KPX quotedblleft AE -61 KPX quotedblleft Aacute -46 KPX quotedblleft Adieresis -46 KPX quotedblleft Aring -46 KPX quotedblleft C 8 KPX quotedblleft G 9 KPX quotedblleft O 12 KPX quotedblleft OE 17 KPX quotedblleft Q 8 KPX quotedblleft S 15 KPX quotedblleft V 19 KPX quotedblleft W 29 KPX quotedblleft X -10 KPX quotedblleft Y 7 KPX quotedblleft Z -18 KPX quotedblleft a -10 KPX quotedblleft adieresis -10 KPX quotedblleft ae -3 KPX quotedblleft c 8 KPX quotedblleft d 10 KPX quotedblleft e 1 KPX quotedblleft f 13 KPX quotedblleft fi 18 KPX quotedblleft fl 15 KPX quotedblleft g 10 KPX quotedblleft o 6 KPX quotedblleft odieresis 6 KPX quotedblleft oe 4 KPX quotedblleft q 11 KPX quotedblleft s 12 KPX quotedblleft t 16 KPX quotedblleft v 22 KPX quotedblleft w 27 KPX quotedblleft y 17 KPX quotedblleft z -15 KPX quotedblright A -50 KPX quotedblright AE -60 KPX quotedblright Aacute -50 KPX quotedblright Adieresis -50 KPX quotedblright Aring -50 KPX quotedblright T 2 KPX quotedblright V 18 KPX quotedblright W 29 KPX quotedblright Y 5 KPX quoteleft A -61 KPX quoteleft AE -76 KPX quoteleft Aacute -61 KPX quoteleft Adieresis -61 KPX quoteleft Aring -61 KPX quoteleft C -7 KPX quoteleft G -5 KPX quoteleft O -3 KPX quoteleft OE -1 KPX quoteleft Q -6 KPX quoteleft T -14 KPX quoteleft V 2 KPX quoteleft W 14 KPX quoteleft X -25 KPX quoteleft Y -7 KPX quoteleft Z -33 KPX quoteleft a -25 KPX quoteleft adieresis -25 KPX quoteleft ae -18 KPX quoteleft c -6 KPX quoteleft d -4 KPX quoteleft e -14 KPX quoteleft f -1 KPX quoteleft fi 3 KPX quoteleft g -4 KPX quoteleft o -12 KPX quoteleft odieresis -12 KPX quoteleft oe -14 KPX quoteleft q -7 KPX quoteleft s -2 KPX quoteleft t 1 KPX quoteleft v 4 KPX quoteleft w 9 KPX quoteleft x -15 KPX quoteleft y -1 KPX quoteleft z -32 KPX quoteright A -66 KPX quoteright AE -76 KPX quoteright Aacute -66 KPX quoteright Adieresis -66 KPX quoteright Aring -66 KPX quoteright braceright 49 KPX quoteright bracketright 42 KPX quoteright comma -61 KPX quoteright d -16 KPX quoteright o -19 KPX quoteright odieresis -19 KPX quoteright parenright 40 KPX quoteright period -61 KPX quoteright r -14 KPX quoteright s -10 KPX quoteright sacute -10 KPX quoteright scaron -10 KPX quoteright scedilla -10 KPX quoteright t -8 KPX quoteright v -3 KPX quoteright w 1 KPX quoteright y -6 KPX quotesinglbase A 14 KPX quotesinglbase C -10 KPX quotesinglbase G -11 KPX quotesinglbase J 27 KPX quotesinglbase O -9 KPX quotesinglbase Q -7 KPX quotesinglbase S 6 KPX quotesinglbase T -86 KPX quotesinglbase V -80 KPX quotesinglbase W -45 KPX quotesinglbase Y -102 KPX quotesinglbase Z 14 KPX quotesinglbase g -5 KPX quotesinglbase s 6 KPX quotesinglbase v -48 KPX quotesinglbase w -33 KPX quotesinglbase y -52 KPX quotesinglbase z 4 KPX quotesingle A -53 KPX quotesingle T -5 KPX quotesingle V 7 KPX quotesingle W 20 KPX quotesingle X -28 KPX quotesingle Y -6 KPX quotesingle Z -24 KPX r a -15 KPX r aacute -15 KPX r acircumflex -15 KPX r adieresis -15 KPX r ae -10 KPX r agrave -15 KPX r aogonek -15 KPX r aring -15 KPX r asterisk -4 KPX r c -7 KPX r ccaron -7 KPX r ccedilla -7 KPX r colon -31 KPX r comma -67 KPX r d -8 KPX r dcaron -6 KPX r e -15 KPX r eacute -15 KPX r ecircumflex -15 KPX r egrave -15 KPX r endash -21 KPX r eogonek -15 KPX r exclam -37 KPX r f 16 KPX r g -5 KPX r h -8 KPX r hyphen -47 KPX r i -7 KPX r j -7 KPX r k -3 KPX r l -8 KPX r m -9 KPX r n -9 KPX r nacute -9 KPX r ncaron -9 KPX r o -12 KPX r oacute -12 KPX r ocircumflex -12 KPX r odieresis -12 KPX r oe -14 KPX r ograve -12 KPX r ohungarumlaut -12 KPX r oslash -11 KPX r period -67 KPX r q -8 KPX r question -12 KPX r quotedblright 5 KPX r quoteright -3 KPX r quotesingle -6 KPX r r -8 KPX r racute -8 KPX r rcaron -8 KPX r s -2 KPX r semicolon -31 KPX r t 20 KPX r tcaron 21 KPX r tcommaaccent 20 KPX r u -7 KPX r udieresis -7 KPX r uacute -7 KPX r uhungarumlaut -7 KPX r uring -7 KPX r v 18 KPX r w 20 KPX r x 9 KPX r y 14 KPX r yacute 14 KPX r z -1 KPX r zacute -1 KPX r zcaron -1 KPX r zdotaccent -1 KPX racute a -15 KPX racute comma -66 KPX racute d -8 KPX racute m -9 KPX racute n -9 KPX racute period -70 KPX racute s -2 KPX racute t 20 KPX racute v 18 KPX racute z -1 KPX rcaron a -15 KPX rcaron aacute -15 KPX rcaron colon -31 KPX rcaron comma -66 KPX rcaron d -8 KPX rcaron dcaron -6 KPX rcaron e -15 KPX rcaron eacute -15 KPX rcaron i -7 KPX rcaron iacute -20 KPX rcaron o -12 KPX rcaron oacute -12 KPX rcaron period -70 KPX rcaron semicolon -31 KPX rcaron u -7 KPX rcaron uacute -7 KPX rcaron uring -7 KPX rcaron v 18 KPX rho chi -44 KPX rho exclam -30 KPX rho gamma -23 KPX rho guillemotright -18 KPX rho lambda -20 KPX rho nu -18 KPX rho pi -31 KPX rho tau -24 KPX s a -8 KPX s adieresis -8 KPX s colon -22 KPX s comma -7 KPX s eacute -7 KPX s endash 12 KPX s exclam -37 KPX s f -13 KPX s hyphen -12 KPX s k -3 KPX s period -7 KPX s question -70 KPX s quotedblright -9 KPX s quoteright -17 KPX s s -5 KPX s semicolon -10 KPX s t -11 KPX s v -23 KPX s w -13 KPX s y -28 KPX s z -10 KPX sacute c -3 KPX sacute w -15 KPX scaron k -3 KPX scaron p -1 KPX scaron t -9 KPX sigma lambda -28 KPX slash B 36 KPX slash D 31 KPX slash E 31 KPX slash F 31 KPX slash H 34 KPX slash I 26 KPX slash J -3 KPX slash K 36 KPX slash L 36 KPX slash M 38 KPX slash N 38 KPX slash R 29 KPX slash T 18 KPX slash U 29 KPX slash V 11 KPX slash W 25 KPX slash X 6 KPX slash Y 19 KPX slash b 27 KPX slash f 15 KPX slash fi 39 KPX slash fl 36 KPX slash g 21 KPX slash h 19 KPX slash i 21 KPX slash j 21 KPX slash k 25 KPX slash l 20 KPX slash slash 20 KPX slash t 16 KPX slash y -2 KPX t S -16 KPX t a -11 KPX t aacute -11 KPX t adieresis -11 KPX t ae -8 KPX t aogonek -11 KPX t aring -11 KPX t asterisk -2 KPX t c -7 KPX t colon -21 KPX t comma -19 KPX t d -6 KPX t e -11 KPX t eacute -11 KPX t endash 9 KPX t eogonek -11 KPX t exclam -38 KPX t g -6 KPX t h -8 KPX t hyphen -15 KPX t i -6 KPX t j -8 KPX t m -9 KPX t n -8 KPX t o -9 KPX t oacute -9 KPX t odieresis -9 KPX t p 1 KPX t period -18 KPX t q -5 KPX t question -20 KPX t quotedblright 5 KPX t quoteright -2 KPX t r -8 KPX t s -8 KPX t semicolon -10 KPX t t 14 KPX t u -9 KPX t udieresis -9 KPX t v 11 KPX t w 14 KPX t y 7 KPX t z 3 KPX tau alpha -6 KPX tau alphatonos -7 KPX tau colon -27 KPX tau comma -49 KPX tau epsilontonos 11 KPX tau guillemotright -66 KPX tau iotatonos -5 KPX tau lambda -45 KPX tau o -9 KPX tau omega -41 KPX tau omegatonos -41 KPX tau omicron -8 KPX tau omicrontonos -8 KPX tau period -49 KPX tau phi -12 KPX tau rho -20 KPX tau semicolon -26 KPX tau sigma -15 KPX tau tau 27 KPX tau upsilontonos -4 KPX tcaron a -31 KPX tcaron aacute -31 KPX tcaron comma -38 KPX tcaron e -29 KPX tcaron eacute -29 KPX tcaron m -27 KPX tcaron n -27 KPX tcaron o -27 KPX tcaron oacute -27 KPX tcaron period -37 KPX tcaron r -26 KPX tcaron rcaron 9 KPX tcaron s -28 KPX tcaron scaron -21 KPX tcaron t -6 KPX tcaron u -31 KPX tcaron uacute -31 KPX tcaron uring -31 KPX tcaron y -13 KPX tcaron yacute -13 KPX tcaron z -17 KPX tcaron zcaron -17 KPX u comma -15 KPX u endash 29 KPX u g 4 KPX u j -2 KPX u period -17 KPX u quoteright -7 KPX u v -13 KPX u w -7 KPX u x -15 KPX u y -18 KPX u z -22 KPX udieresis comma -15 KPX udieresis endash 29 KPX udieresis g 4 KPX udieresis j -2 KPX udieresis period -17 KPX udieresis quoteright -7 KPX udieresis v -13 KPX udieresis w -7 KPX udieresis x -15 KPX udieresis y -18 KPX udieresis z -22 KPX upsilon chi -30 KPX upsilon gamma -11 KPX upsilon lambda -21 KPX upsilon tau -4 KPX upsilondieresis nu -10 KPX upsilontonos chi -30 KPX upsilontonos gamma -11 KPX upsilontonos lambda -21 KPX upsilontonos nu -10 KPX upsilontonos pi -28 KPX upsilontonos tau -4 KPX v a -27 KPX v aacute -27 KPX v acircumflex -27 KPX v adieresis -27 KPX v ae -23 KPX v agrave -27 KPX v aring -27 KPX v asterisk 5 KPX v atilde -27 KPX v c -15 KPX v colon -32 KPX v comma -70 KPX v e -23 KPX v eacute -23 KPX v ecircumflex -23 KPX v egrave -23 KPX v endash 14 KPX v g -15 KPX v hyphen -10 KPX v i -8 KPX v j -9 KPX v l -9 KPX v o -17 KPX v oacute -17 KPX v odieresis -17 KPX v oe -19 KPX v ograve -17 KPX v oslash -14 KPX v period -70 KPX v r -10 KPX v s -16 KPX v semicolon -26 KPX v u -8 KPX v udieresis -8 KPX v y 11 KPX w a -18 KPX w aacute -18 KPX w acircumflex -18 KPX w adieresis -18 KPX w ae -15 KPX w agrave -18 KPX w aring -18 KPX w asterisk 9 KPX w atilde -18 KPX w c -6 KPX w colon -26 KPX w comma -48 KPX w e -10 KPX w eacute -10 KPX w ecircumflex -10 KPX w egrave -10 KPX w endash 26 KPX w exclam -37 KPX w f 15 KPX w g -1 KPX w i -8 KPX w j -8 KPX w l -9 KPX w o -8 KPX w oacute -8 KPX w odieresis -8 KPX w ograve -8 KPX w oslash -4 KPX w p -2 KPX w period -49 KPX w question -15 KPX w quotedblright 18 KPX w quoteright 10 KPX w quotesingle 9 KPX w r -10 KPX w s -7 KPX w semicolon -15 KPX w t 19 KPX w u -8 KPX w udieresis -8 KPX w y 11 KPX w z -2 KPX x a -30 KPX x asterisk -14 KPX x c -18 KPX x colon -33 KPX x comma -22 KPX x e -26 KPX x eacute -26 KPX x endash -22 KPX x exclam -46 KPX x hyphen -47 KPX x o -24 KPX x odieresis -24 KPX x period -21 KPX x q -20 KPX x question -22 KPX x quotedblright -5 KPX x quoteright -13 KPX x semicolon -23 KPX x y 4 KPX xi alpha -17 KPX xi alphatonos -19 KPX xi epsilon -4 KPX xi epsilontonos -4 KPX xi o -21 KPX xi omegatonos -46 KPX xi omicron -20 KPX xi omicrontonos -20 KPX xi upsilontonos -28 KPX y a -35 KPX y aacute -35 KPX y acircumflex -35 KPX y adieresis -35 KPX y ae -28 KPX y agrave -35 KPX y aring -35 KPX y asterisk -1 KPX y atilde -35 KPX y c -19 KPX y ccaron -19 KPX y colon -40 KPX y comma -68 KPX y e -27 KPX y eacute -27 KPX y ecircumflex -27 KPX y egrave -27 KPX y endash 10 KPX y exclam -44 KPX y g -19 KPX y hyphen -14 KPX y j -14 KPX y l -14 KPX y o -25 KPX y n -15 KPX y oacute -25 KPX y odieresis -25 KPX y ograve -25 KPX y oslash -23 KPX y period -68 KPX y question -19 KPX y quotedblright 8 KPX y s -22 KPX y sacute -22 KPX y semicolon -30 KPX yacute ccaron -19 KPX yacute comma -74 KPX yacute period -74 KPX z a -18 KPX z adieresis -18 KPX z asterisk -9 KPX z colon -46 KPX z comma -35 KPX z e -36 KPX z endash -31 KPX z exclam -53 KPX z hyphen -56 KPX z i -23 KPX z o -33 KPX z odieresis -33 KPX z period -35 KPX z semicolon -36 KPX z u -28 KPX z udieresis -28 KPX z y -9 KPX zacute colon -46 KPX zacute comma -35 KPX zacute semicolon -36 KPX zcaron colon -46 KPX zcaron comma -35 KPX zcaron e -36 KPX zcaron semicolon -36 KPX zdotaccent c -29 KPX zdotaccent colon -46 KPX zdotaccent comma -35 KPX zdotaccent e -36 KPX zdotaccent oacute -33 KPX zdotaccent semicolon -36 KPX zeta alpha -32 KPX zeta alphatonos -35 KPX zeta epsilon -10 KPX zeta epsilontonos -10 KPX zeta o -36 KPX zeta omega -52 KPX zeta omegatonos -52 KPX zeta omicron -40 KPX zeta omicrontonos -40 KPX zeta upsilon -34 KPX zeta upsilontonos -34 EndKernPairs EndKernData EndFontMetrics libwmf-0.2.13/fonts/NimbusSans-Italic.t1000066400000000000000000003263061441723000300177450ustar00rootroot00000000000000%!PS-AdobeFont-1.0: NimbusSans-Italic 1.00 %%CreationDate: Thu Jul 27 2017 % Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development % (URW)++,Copyright 2014 by (URW)++ Design & Development 10 dict begin /FontInfo 12 dict dup begin /version (1.00) readonly def /Notice ((URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /Copyright (Copyright (URW)++,Copyright 2014 by (URW)++ Design & Development) readonly def /FullName (Nimbus Sans Italic) readonly def /FamilyName (Nimbus Sans) readonly def /Weight (Regular) readonly def /ItalicAngle -12.0 def /isFixedPitch false def /UnderlinePosition -151 def /UnderlineThickness 50 def end readonly def /FontName /NimbusSans-Italic def /PaintType 0 def /FontBBox {-144 -284 1154 1070} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding StandardEncoding def currentdict end currentfile eexec é ×`£Â,ñùÜiš"Ã[[4Þ?¿Ø˜¯.aÔØ·Pþ‡‡ÝÙgëð9YÆÊ2SÝã/ÊØ$u™lµüÔFëâi:Ìô Ÿ-=ËÅ‹IåéÉ¢“ÉÅ«ôSÀ­:¶QÖÃëí<¡yùéö1’YãL ¡ Œ4brî4*{‹0 @!þWbêƒ47W€éŽãfÔâØóJQr¨ª '7øjѹÒùW“à]Λx\m¡+µ.NhÐ;é—HvŸL¦¨h‹ÓÐC|È“?¤þòçmOXóŸ ÈaEåb¿í[0âh°.FÈ’ÌùƒnýiؤÑ’ýW÷²DÕ+kê7œ;‰µG4üm+Ïêæ®äLÉå½v .U–®¿ÍâµßÌ xÀ÷eSñÄöÁFñâràñðD‘z×%ú]­‚¹py§§lã’±º¡¹nç‘‘DlÌʲ÷RTí ¿j±v@!Cš2ˆëûè1¶úÏ씜gò["=Í=¯N¯Sš`Ü‹‚×#Ûî×~/ù+ªžðÌZ1öئ÷Qp\aÍJd{?öÇ8ÄÇ‚ñ™“êB¸®NNB~¦Tcê3ø¶¢Ã^iÆ™'bK³•@ºKþ6^E|W¤á-PïàV_ÞKSÖÐøäÓJS(D´,X†?´4žac¶«÷08F³¸2ååÀ;0ÚWÃiþ›}¡®Ôš2˜ÏÁ¹þþCõ¯P·á€ÿû{ðÏC^¡êîŸì* úÄ[?nXð¤p“~࿬ÌFZªì34²¹ð•/bõgÒé‰Mּ͉¥@>AªuBumë‘n‘ú.Ô;fêŠkXHúù/É$“þÑo6 ¾¤ûޝ™÷½Õaba-ªT|ínˆ$£CÖݼèZGˆK×Ò%¼³;5˜Í=ÆàkQa Ô蟆š 6\Ö}¡Žaæ /kDÃmm„Î(VÔQ1—y„OX>fž †6t—ò«Ð^Wý¨GiLùHð²‹jÚCÌœ¨s|8òµ‰Þ&¢<©‹"1èbý¾‹ËÍ€ï*)ňf©¡28:+ g6j‰xͱ¹yÅÜD,ÈãD§Ï*Çì6ñ9ç¤ëY¦q’¼©í²]á02öþ¯Ã±šO,Êzƒ5‡™øž—<; Žª:—ÁÍâj] XfœB¸|"û:~#¾àV´9(™¦JÕµkúªn98@Ì?-±¹¹œÌøj[aØ[¼g‰üD/¼ÇY§¿þÙÚ‹·ù¹u¨Hèš\mÿWÖ|¡ZK:¾»pÎo‰ƒ{£x½ôðçùš¨„›V1`Êôjß>ëåT¦QÏý…œê'Mû‘»¥©÷¨‚À8:°+kH“…Èk»¬€¶ÿ5oqCV¶jtÑe¢òîÿá +sÒãа™Qä1%g®_"1IåÐV)%ä»Mi*”‰ÑœœÀÈä³¶¿ç‚ PÐ+ÂÔ•Q=;x¹1#¯’¡—oP.ëT¬Só¼iþg«‘³ú»ÂÐvi´7‚‰š™æ' ,tË]êY"Œâ#*S mKµ‡h¶!@ùaÞ™¬£¬8Þ–¡HE,+®6´i¸Ì Þ2XÍEª€ã,é¶qkaÅ@Ïü¾)‹­øí¹3óQÏ˵Yab2t×=c•mÐ@ålôÙ[@ÜàW1¤°Î ÈÒd¬§çaQFâi˜Yc77ºôBѲ‰ ìõ ¢vcÕ¼çF‘^-(½*#Àkù-‚OMkóM±Ï8ò›FÎz‘ÜòVP7ÓI› ýo" 'BËõ Ñ”dw!ÕCÖ ´¢jpd@K„t/ëóŠvv“BNÀN­°ú¼·vpg¾Ÿ ·Û²_¥Ñ(' vœíÐDNMÏäö'hØÁ„ŽÏ h›„(±½öUwÑ—nîÔçrd¤5",̯ È–y›?Ç =“Ǿ@tkŽ v/áxýr”bV<Ìb¨CzÈ&Í…‡Œ•?–Š?Iæ’–jÉ~¹L„/乫”§I)(¹®ÝVxj×5ŽÒëO!Ëçu¯äöUÍ@¤ª#·D %pÙc¬(z¡Qw ¿°8Š2`P½Ü4І¹º©ÇÏé²ÚW7añû¿•œºRœ#Ès1ÉW›ŸX›¼`ye´á%3“KpŸ³khë?Ív|© £=“@·v,G%˜D#’Û©h~A™·Õ\ß‹–­ØâçÜ7÷X ÕÆü»“¸§¿ÌJŠ6”ªž˜(çÄÓ:7Et2u™©.¯7×¥6ø‘8{z§¾7#ý•$€?ÀZ#k,éÆÀ–¹šZÒ ™iˆÌÐ¨ÂØOÞmÜÍÑLw§õ@]¡±mV§knÀ37Ÿ¯åÛŠùò´äÆô[ t‹n¨ýmïFû6QÒ¤œ² RWõ²?èèI1 UÇÁÔ/üæ$ëö’ùWöc|²/ò Ëeç³QD)ÿ‘îJ0Ф|ýJé4é µM‹nÄÃåE¼n›õrø^œ—‡¼%º¡«åšHE¾’ ´hÿ ™ÀE}7­'|q¥/5_ºÈùù6–ô¯Ð)鵡ˆ"ï•Gþøz…Øë(F7¨úÕEœÔƒ6’ÚÁ8V?Dá\YªÝ¿Ç¦Ãicø æÔœFÀžÂ,a0à¬*gh]w®Çhnr9®º›1™ã¸^"’‰ãÙÂ@ŠSÇç>Îp} ~'0~g{LCÍW²‡šG¸_•Í2Ó‘ºT³`‚âÅËÌJúb97Gx_a–´ñÉ˸*ÕÅšÊRs>-‚|èx#4ì]y«^—Җ¶+Ú?Ì`á)+ÊÉÛváh¿OLõS]j÷aô7=ºaú0¤8iOÝéXŽ[Í!î°E‡RK;†2n«ï)½ý˜[^ýåi¬:có/d@snN¨¸äÍdGãÆöZ‹ƒ™ ƒŒÕ±ù8«¬óæP~Æ`Œ&§:s ‚vO€óµ ¶,;d r¡Þ†ó¿¹¼1ZÈ#°7Ülˆås 9zyå3FOç |ð9vPï ùbys¼™]>ÌÁÎS’?8]2èaêܬ»©Üé*‰ ÓG¡¨ñão&__\Þeg³¼n­)häÑc(ÿM`ó£îÝÿkÒ[ïÞcd@ú-]ÇnçcOÞ1¹E- A q•‹ái D|‰òEÄPèMÇ0$:†ç=æfর¾{ØÏ/>û©sdð]›äÀ u,4¨öÁ õŒSÊ“B.£ê²||õä˜v<:•2)SR½:™ƒ=æÌŽ^ãáb5oã~ô¸:ÉOá 1¿¦é¨i<-HHÀ'–hþ°8æc5G'°×‚âÙ…‚¬FÁ(wë6ø:Æ=ßÑçS)b\,Gk2+CÖÚ"K!cþÙ ïÍiîÜzš%*$,”Jó£—"ð[<¾_Â1"ÄÍPqÍTÞªuÅÏA\¸Ÿk:èP¯“Šuì5FV\9æ•—”ºÃ¼V[CÔbÃ9¡À¹ÓèÙ¡!üÖöíFQ† #¤|Ãþ+<}œå\U…èÐ-qXûeÏü©«cû‰ã}IŽ1 T‘K³=ûËéc/¬~W°÷ýŒ¶½×eiéâ~B¿sXÞjŒ1ßËzî…/šïˆÀý¢„¼nžô¿Ü¯& «;œÇ¹v£1ºÓñüsÌIÃI4Ó„üЎМx ãÚ.·i`¢°Öâ—wlìzs8ñßP žyùwRº™Î˜>¤bÛÂaËïq–_ä6ú¦ÿªBkøµ« õPæ÷¥¸¶w× Ç\¬‹•ÏKei3‘Þ§Ë&Ԥ䡔”t?çßÔÑÇ‘âvN*\ { µ3pÿ4‚¶ë#ˆ­÷G‘Î>ú žè(`]”Úž$Ò²2µŒés3/Ê͘è{úDøœrU¤[1˜SÂ/ƒYŸ!Ñ\{rÑâ‹¥ˆº¢—–Œ³x ®èF¶Ÿÿ*5ø×¶äýª&DÛ*”o¶ªTâ·ü•ˆ‚À4ƒ£M£óžC|¯ÙFòôàDÂd¡"›+óü,%z Œ/-øu9æ,xÖ›F\yîÎåx~‰%¯ÎQ~žÌXJ½Z^A…L#!ɦPÈìŽt=~ãÁeµªí¢…†vè+ åÇó1£êš^`Xêc!' „ÑŠ‚~®:zÓ1×wùðïÞ àº ¿aG"zÕÝd²f×Xà}äkk­Œ?çÙ¡YÈ*—ÉTû£ -€z?IÓp ú%ˆøC’í”ÐÄ-ÎM¯4•y°‰Be"".ªÐ}7i`õæ,ókÆéx^{­FêëkIƒÁlÉŒÝ[3×ÜÔŸ¤=Ó‡v³à[ŠïÌ«û}ýË(UŠW~€ÀiØ §Ã¥èi­윤I숑NKKÝ:›>Ž»¦‚”¹¼PÔ»³(þ{`‚rЖv hRGv@ L·÷Í7éÐ9…¶˜t ZÝú?wjaµ¡„Ô._MÞsÉ<Ï×No#Âé¶5¿³nž ‡ôžF:?E÷õÞM$Ÿû+”gmBÿÝœ~ƒ5k+¨´À=¡©¿…âöæÌŠü%™'z‹¾ÃØ [BbsZ‚ì;X1 EЍ¼ÚãŸÍÂwp>©š´,¨PN©˜m„$ç!’Ù5Sl•>µ?p9ÄNºlÇC“ò6ÈÞué눈ðîƒ>{EW!Ÿƒ¨s'˜{ÁyدAß2ûæUŠ×"?†GÒ±öżüy^+Æàå8¬t|k¶šÀ Ûá4º_l•ûÆì¬ ñ º;#0Lü¬R»¤³xòÒLÁ/!Ì”Ý5>ˆ·†ùÜŵÙ[ߘÚçá¤gá&ÌÿC]ˆ'6˜7y`˜*ù $UoQw€bÏÊŒ)‡”=¤b{Ì‚=àiéíù!þrÏ…ƒÎĬbUÀÜÅ"®+`JƒØ ¶}cÖ$«)S£.Ç5ȱ™"Œ^·Ìäm?@Ä£ » rÎAUb§ÚC>zÉz$2[­EyÍ‘®þ/…ÇZªÔJþ5G‚ ÓHB½í`¿Oƒ‡BšE¦G<(¿É: ¿TYq­Ÿo=åTµTm ßjèÒç[©Äs-|’=©šÈF˜—@(_«»<ž¿(<„'QÊô_ @– ò!ÆÎ¼‹¶ÍŠVãÛ‰—Ofð]IŸëÁnÑRiåUš-!Ï5ê­©Ä¢s{qL¨ùô}bÌNÿ’·ÅƒÖ‚îGÖ^+v[––• ¶ziÔÚ~0dœÑk@F­ìvÙöÝ­7³ÆåÔ5·=Ã%†¸Ü’Ù˜Ñ*MÉ OJ'°)0lŽŸ»u ç²å+Aal5u ,’ªê—Y½>abÌÖqR.~'p»xbqYèK)1(þZµ‰¶²ÒÜl¢F7¸b§ä¯(sP°7bö¸$=s¿FïûF¢Û7¦ÞùÓÐõ¯9ÂfÖIlañrºÉ.œ"C4$?lá ‡Ä˜„cóD¢Kq—›¸mhà5„/!Þ"ò,Ǩ%¹…Jû³bŠ)nõp6®7$¨hîñÞy·ŠÛ¡ì§û ê,cñ»w!g(ùh¡`àHRçÛÇœº2(´(6!„Ž9–¢‚%Wfz 0iGéôl©^6­÷”1ICÏÆÕÏÒÀaó¸è}Ÿnê!@—3©Çö’w`Õ¡†ŒÍ Ü 'ö¢¶ðÎ~js’}ò_ò@‰îb­z2ù)ûuq{,6TÚi?Rþe‰T`=ËdÆX™$FBCºO¡†U_zˆJ(b{i´…Á/'Í3÷õíV“õdð yýiDðèf˜ hÜ}iÁ‰ñU̳ E€rxL<:áõ€TN¡TÉåó]õ9JÈž›÷³¥ñ 1R‰Î „»ÜöÄ»ë',,IÞŒÿZVßhc_(ç#q:ûôf“øö<Ä4çqB(xZÇ•#v3@Ľü @\xg]‰Ûò”|ã!…tZxâ˜mxý@4@½bÊ!~ûªx¯C¥hýð?mOöLAǨg€ñ|¢+|&.ÏhÊ씊lù&=6À*µ«IƱP »ýiù·ÊHHKšå†CÔ¦†ù‚¨A,‘Wû×1(¯ú`4rkË E9]'ñPò É©nºy´À0+‘Ì/€Ì–µ\u˜*åɦ²•k¬U‡†;ü¡&‹61½S'¬Ä†ZðgzìÀèïQÉe2,|JÇpsu׆=aU vŒQµò¬³oóâOSp•ü£r.ÞHCÒß´¬ª“ÀÀÞÉ‹ ð„%xÂ&€®â$ÛöäÍÔŸ˜í<õj(«Ïù_›·»Ú6` I0PƒŠš]“ƒž0ÄQÚä¨ùwšèÙó[úçîŸhðrÏso.'«º—}Ö¸»Û7Î4iîGû4šÎ¬æ‹‘3¹Üÿ¾Í`»À|Ô s/UÜ"¬Ã¢&º•¬k3º5ÎâÚÙ þ\%‰Õ_óˆ`ß7Dc½WÁKøÙM“nºå7Äßã6Ú13Sn‚è¬÷ü‘ðNØPÖÇPóã"OèåCBýì®F™ˆÝÊcf [Z9’I Ö§ \Ê.îþ b5¿UZS¦#.¾ .Ô Û•ÇÐRÕjÇ(ÈSh}]Wcoïc1OêJPBA}ÙÛìö¹wýË^ü×QàussÈ&›–9VÐ70…4ÿ8Ži!‡Ö¬^«òÈ•ê™3`Ãi‚þÄœˆa2>(Íz¿?€[¶¯¢}HÁùØNCÙ€Lšþ6ÿ—ïåǸÍTV^ײ©–®tJðÞu­Q5°J8ÿCH8âaÛÛü§ô!<­ð:ÝaÐΉ#ñNü=a0TÖ¸(ÁWyˆ«ÍÐÔ .A—ÈHVÅGü¡ÝŒàŸ +©¢$IJðòIk^8>71©'ØGCúXíé%é˜ämñd6ή5ßb Ñ¡Ÿ÷ Û;ºrbÅ#,Ê–ÑMæù‡d*ånɵ4P"B´Í•ñ¯rIÃêÜÆ•yŒ|Y7¹Z,¢Ú\ù‡ú©rI‘P”ÙÉ>䮄‡g›AE¾ç/g®æ­Ôio‰ïeÈí'ýà‡ÅǾ¢òR™«CœLÍzi ÁÞp_£gˆMþñYš–߯w-Ê[V¨F5µ`Oo‡NcðۃǟŸÄ()ô/œ¨Í„oç7»)G'/¸‰Ì;#Û³-FPØó¶ fPÒR+‹ñ¢ ;y¯*¤-¥õ¼+­§¬>V—ë bò†ÐË Î¥«äÙ}ÈgÐuQQ…%¯ìóŽ® `g*4ž.G{< ™&‡È}Bö掄Ãf¢9û€ä‡¾¹åR6¦‡ûÉ .è^à!¯ÖÓ†à=¦F7±æjëK÷¨É¤ ¸`/PïíB½*DË+j%¨à§@jëwMÇd5·n]Ì;`ÀÙû÷·Ö/Ù±º 1–TfЖõHU9£‰|N`P'àñ¥‰ë-Y†µ½hÚ/ÚzxêÕz“ûÿ 'ôaÑ.Ç•UŠò`¥•·Ð‚Œ¦M’DzhŽŽË©—H·«e~K#Ž6æ!Ñ[{¹ñO ÿ2´…»øuË]‘wNóŠð±ñÿO$å‚P.%®Ò8ÊoÕøñm˜?}r{²k¥uQ¼†ȧèîæzˆìu«.~ñÞð̤«ÏcnMRÑH^2çt7c;*E„„ý.DAq·©Ÿ›’u¾°­Õsv ÕŽÚî]”ðcuòP¹$é´úÛµ*á2òÏ÷J-ê ?™ôhÿ€¼ ¾=F¼ˆ¶ÝFrS0¼»€ìš5‘ÝL)„¡¡£ëÏ8Ö§ëêQÑ’rçÉ;öXÄn²‹%¯3õ£ýPç7AËEiCY|6ÏP‹òOrÛ…çÝåOªGe½Ò†«–Øw˜{¼Õ†ÿÄŒ-1Ùù"´a#׌)oä-²ZnHzs4dPáãJIÅXàêÙc (3Tľçx_1‰·(".7Û„Üh±´Ô9ñúgå¿;Š•¯›^•SÃ,cßÝÃi=m5‚46ÎÕõ!¤2àŸ Qtþ=mçB¦˜âèQIà)"6s=DüŵmZ™6’Åâ±V#åñ÷c0~'ÌTÒ§)käOŸz¸ šRÅ`ðú9O“ÖP…%•ðê«j´Ù} Ÿµeër˜~•*(ƒ"¥D8g#Ž`S‡]®YìÓÄ,‰æ_–ütª(f´¨ª.ÄŽ‚Þ­ä‚ûa9˜Òô©£ÚoúW"Çe™á4a ¿úó®I duš=‡¬^Ô0Ì:C¢œöôA­Æ=£_ºßq…]+°ü³²«ó Îú»Å2ZEÒ>o"y‚@D yÛfF —5ƒtƒ]ÝÆÃÏ&öº|„c ‹»]z@/O]õKÝŸêb©¶³ã <ç•›O©îJ *4Il9ñÊCcÇûŽb\]YØšI^Ÿ£@嘨&/»QíZIaòhv¹ö&âjŽ*\zŽž5 ¨0nêá•}uÓž R¨+ d¢ ØFú¯¥BŒã[ÑkÝИÖD£§Çû|m°'¤Í­ú¹í"hÌ2ßPÏâMšŽôÀ0´ûkŠ3‡…啼]›¥Çló„g¾qO6áæ&͈œÂ3Lºù›ªÕ¼wXð)¨×ê<ÉLéˆÅ›qu½¿«¶{>Æ‹“,íŒëº„Ÿ±h’—Ô䀓;òYik„d?ùV÷« /€AµžˆüЀT^k Áí¤!„¢œµMšETŸ-芈|4œØ¡j#°ñË7<èOòLïV  ‚’HQ¿¶Ç |ÿ'¦äÝMñ"µÙÒWœ¹õ÷.>üó‰ búNÊ@#ðnÜKaä@ÒËlIéë…Ô²ÙÌ>rÌ×Ièš]š æ}“«ÆXŽÀR\L‡®[Å”éÒh~m%ÐJCŸ Êp[]áÆØ¯~EîO·8ê©L€…i±\€¢vN»Öþ06Ï¥·ç)‰dH€¥à{=Ì”¹…Ô8vl šu’î¸íF§!ǵ_¶}méBl@†"B ú'’"’¯2ØkÅ—!ÃG$Ö_ ¢µ¨2¹ãG·ûŠ£Zm®î¢ñÒô5: ÂZHîo‚àTLoµ24Z‚«µÊ!¦lÕŽSuL -®\ SZ]æ _YU¹äFL‚®£bëÃnGµ Z4%R™cöì2i%Œ^ŒsºìäÜc)À×ÎgQBÛ¹VÔ¥§†j5Â^Lˆâ KÁ{ïJVà+òq©†r°=õG¿á²çH´B»c›Æôä)vfOWÏÈd¨˜8|è’%Eg±dØÔ‰Ÿ+ ¤N‡D™Ç¯Ù¥pf”†/Æ·–·À0GbØ5è¢Îv¹'¡\®AfŽ|:ùИXÀµÅéQ[x‰º–½n†d!I†zu…túz¶R¼ù¸íŒ `—12¨¶c*üËDsbU/·4üï@ò鯍†Æ‹tU`„œØ~ŒŽ”­±(–! ûîÐ}7wâÅ$$OCt%_þ›Ï=PÍÔÓ¯.€}TUÌ>®å½÷Ú4-d6íÅGç•g€˜` ˜“wo<#ÍrÍ¢gµ:èÅͬäªÇŒ2¢hHãEw󻉸.$™jZ e·D7Ã,†ÞNç#½ÉÔ$Þåúý3¨£Ä®Ë¥…µÞ Ý“Ÿ –ke;FïI¤ÆÈx 8Dzý÷L-]1éÄј¥§×¸Õ%|N m )1’$4¯ËË;h.q6¿cµ‚±€©oÏñ#ØõÉÀÒó9 rù è‘/ªúËÞÔ|oÃí¬WO³?ÙRþŠhÞ6ŸÈ”S?=íÏuîëU@Ó9Œ÷ƒ¼|ÒÍ€â¹cÏ6ªdýOÃÁºÚëU¡+[M[ü3ø7ìÉ œ!ÝÙþᵌ ¡#ñB¢í¶g²ô¨VÕcÒÎâ4AÑ/ȼ¾~ŒWABŽz¼—8É,/f§MשM–¢ý½´¬|¡ÏÇú4ÜOû˜õ\Nr›Å7•n* _û⎠§ “¯|N<Æíöæÿ zÖÏ?ÁÙÃXÊÓõ(ùq¡#¥I½W†!?ƒ~òô‹"^w0Šº&¶­&Æâµ ´e¤Îˆj#À®>Û °á´4h`NUGÂ](“ã^ÜUV¶:ÌâžAØ`û™›4/xß«€ÓfqZà2§£GvXÛÿ×ÕàöÞÓ¢Qãǽ€VëíXŒj‹ fgÿ<°_i“ÕgN®4()My¯ñ)Ò"ÐWù` ²aø9(<´ýB̉ð¿kâ_’ ¦63صø¦" äN-Ömk`/‰ˆ¹#µ´ƒF/Ây+ÈÌCŸs¥ƒ-]E;•Û™•‹\Ž‹©ý/®Èð¿xãÞpSÒ©oÚÜ™˜ƒZñl=ŽlÞutòc±è]Ñ; ì4©§ÃÔ|õ•óï›Þ›ÿ §)Û{!TÚQQÄM~Ò=2z“|ºÖÜ[NÚ¡õ#":OWQ÷V-ê;™ŒÓãܳ‡Œ&Ûñï³åÕüG:&±×"ÜæÇ 7‚¶á4Ý—ÅÃ.ÚEpáíjÅpütÀ—ݰ¬gšU}™çŠFÅh¾UÊèZ¡Qõo=b{Çc êuëYG HñF³‹†L žsÊ êÖü§sØ0áOÑ;p{Ùz£&xMà&¶06¼(p±EpB¹Eôô"Zæ2ý`+s¡ïÛçùlh–üVC½L4‡Ý¿<™/+‡±®E&·X}°ì×\jl¯ì¦"´‘ÛÞ߃هÞu©‹I ˆ¶Õ(£Zê‹PËÍŽ"äTä~ýîÔåìùe§9o+ªÜ=Ôç°oð”.KxH–4UëɱyFûÑAÀ˜¿…Í(œŸÇmlóóA¶Xøa_âÐGló—S$›öh‹Û€Å[}“ußfÂLÀ®–^W¹>úº[#y p7gòûÆÛN“³2ïðn×t̲a;Dçþ$+'O‹éné×¼X ¾f¹•¡ºËÏ>Ç‹FÕ1]h}€Ç@Fn9D 5 ›mh®L¨DYõ.‰è‘Ëþ—û‰Tbù¾XA‚—Ã>´¹ÿ?§Á»BòA$txó0™í™yo†ÛBb¸$Æ((u·úÿ^Û6é1 Z÷æôúxKƒ”¢Ô‘Àµé¦KQ\â‚¡tõNd³iÐâ:r9묾ØEŒo0ŠY)*eØN‘–cKPÝR†Lbóõºñ†ûœ% ’Ùj¤eºÖ¹6¹6«ûó¾ðÉ¡ø×R ‰¥¯lW€†m{ºîÏ'3KÏKó$Þ}¥ “dÙMÒ2½bËÍgð¤úõ`@çrƒW²pBCÖ61qCf]¥k¤8³‡+&2ñwôOK¸ÝZ­mFiò~ÐãMèßhDß_ðŸS°‡£å(¤¥¡§È}U>ÕPvprÐPxßúD1Izäœ E¥tÊN¬‚óªæmdüy^128ŽûSÖÐ^MÇO%¹z‘ñ@Šm˜ bN¦µœ[ÝŠÔ>?mˆ@ ßÁtÔSËëµеcm~|Îïêÿ*!#Ie¯›j˱Œý!¾Ó`yjÑÌÄQ€Ã÷n–k›(¶n ·+úΞQâÆhcÏÏanú¼àÕÃûÌEô‘Œ¡K˜_ûôìÞ¿|ÚÝMØUzè D(rãàzû!B«MûÎ`¹”®¸çrüúôo””Ts d#!0lÑÆî åX{ë¡ûûâàýë¨$¶]õȽo¹öUpKà՞ͫÖ\ „¶N`®ô¹ÆæÆ—3䃔?-½&ÃÒXØ9.á›ÆEŽ:Þ¯²=šÎ”©Õo.!A“¥{mñNE’ÁTÁ\c?*M#—1HD>¾_„ê aS3íœs!îl‚ˆ°¿gµ%— ",U:ª¿m°b*gž78c0÷¯G“·õà’= –økÊbˆaÝ7­LºÛnhñ‚r­ìÚ±®aÃ[8‰õœOê/3©—^Mú•:³Ù1A§Üܺ׌óÀô`g½²0vþ´RÍžöKlæî´ëö¬È °ì…=ö»“ T <†îxÆ8!FD食–ذ}?ê5ð@©öEÞq~!nPeðjXÏÖKöç@ â9ŸÖ˜r)òñ'™þ³ ×ã¬gÛŽK£#]ã(zpìf©¾0yc|YJèfq]Q, ‡i ývßæËT ”±nž:4µ(rŠ/æÔ^š€4l5âŠ~C&RñHy5|±D‘ì±öI Z«cŒÍñ_,åJ%š¦¼ý1ÎðŒ3u¾…W¶(¢ûò–@ü<ŒÛ„Ь¥Lw“z ‚p…4—"³ZÈ&-CB®ä™)“¿µq^ׯ¢Hëvꔈ=[T®Wå“>ùˆøÔ$OËñƒ9V·vÏ60ìi6kâèþß0£®Ìk!áŒ&Ýëˆ` |³y5Ê3\MBÃ$ï­PfŽŸŒ ®GdÛX‰H™‘¾€Ò”VŸÿ rÒ°(°’îïXñÍ“?“àÙXW>᪞)8·\8º1B:šÔu—+`¯²kZOp¹Ý÷ýõýÓ}AÕ'® Š|8é%å°xݪk'Ä3jž8+ï1ø³š½E@Ùœì33Ñ202dÔaɦ/ŠÔôÓ… žú¬Fj]Tß']!9ÛmYB».øOýÛÀâàÎðÍH]UÆÐìI\dxDWËOÄ_0.âr@¶2îKJŽûf€éñ9K1yBf!Ù~~DFÍĆ4VÄÉUhEÏ—%ICÉõ'{7C8‡Šqª( 37×3õëÝ'¤,K6õ{P¦GÑ´âL´o5›ÒF¦–OªJŠ‚¼†æG»ðìçZYëÛF=ªÅ°n'ÛÃú$fG<Õ¢,Wå_«K+á‚XFö÷H¦Ð=Ï=¹«Œ-ͽiMuJRˆàÎÁ¿¬ä¸û¿I´¤UGxiÏ UÊát:çÚNå…Ïê%=*¢›‚ÍfÎö´ÊEˆÕCñeÕ[~l€†ÏÃs¸ÿys4 »?tüºwG[ŠÖA€T¨“¤\AIr+J‰ÍTÿy4+8oM]?«±u¨ÔËYÆð 5c5ÅT|ÙY-Ìôì1â~ÛïáeU^¹õÖ i™A7·a’».êh1Æ+ñqÏÀ·ïð•èßJ1ËôGÌyý÷1Ûjˆë5Ç–úÕ6³ùD<‹q،ϣüBˆ0•¤ÍgÈq¹dFõ:ßã«Q l¶“;Š«Vø¢5ÖêÉŒL¬±ózßË,ØÙ™ÏFPëcå³–~a‰3ÍXGéxª1âÒHª9 /bõn5é¸)õW1¶žä©8Ð_e1R yë$ïósÞóH¶IJóØy^yOí&ƒ¹£Ô8O(e—mÞ¯O±ˆÅ®sâÒƒFǵ-=“þ3[z÷:A8¦?eX< ùRûE3cáú® ¶%¾"˜Nkè> l«W]‰Æ‘þ­²4ÙÇÕT?3xéAÒ‘nAXÖ’.nŒiMÞK”8VhRG•C@î©`)¡¢¯ýãÉTÿÃÒ0|»Ð–EÔú,Wd¸Õ óùŸ>Ái®y:}ð³|÷¥ pRo"lP~TV²º¼V•ó¼iŒb7W·9-6Ì3šÿí†x¼â¦à|ÿn£ÓeMó,L3V~óÄàOË7³t¾¡·šgoˆú•»öóU¼õÁ“‰º–[leôñŸù‡ Ã¸Rˆtʤ™ÏÔá ³š Ï?ãš1Þ£•òáî)Ûudï§HPÉ6dÄP>UÖNMƒ“™É€´Ýõ03 óNäX!UÐX˜N§#©²^ß1Ö×€´€:$ðkTBItLýZþà‚Ùt5=¯[­uªHz}TŽAK§LÀ?ò¶ '~W—%Î×ÁC“ìsLüîýÕ(èmÚÈ7-[á¡ÇCb"…X4‡Ÿ¢dk퀀Ԭ™yí—I²ƒÉP¤7Âéx¥zŠ”nàƒí¦A:´ØêÝqñµßÙw8=…ϲ¬Ø€›‘ØÔÒOœÝŸ€Ëæ3. |õÉ],®&Ði@¸ ž¡ïL3ð P&lôna7(Aì¼ú£Îâ¤HV:òƈÔz¹I¢H…äéyÑ+wÞÁBú”Æ /Ò FY IXuøÂ¿÷‚zVÂÆ >44[Í ˆugrqQµ\ð±Æ"zêàNï*Qä„Õ1*„×fUUÎߢ¶¤s6¾-`ímo àÆüv$™Z‘ı‰.ê<áÞ“êç„KcbRûSj9]Î<‰Œ«ÀÇi1ÕˆëŽFe}¾>|{Ý^»Öl£Õ¤2¡¨þ±Cbz“Þ¨¯Œ[Eªðí®ù;œæ…¸DîHSûÅD#lg;MÓ!àÚùžMf§Ž‡ÉìH˜üËnWjÝ…k2b›U‹êÞ‡´Z)}e×ï¡ôläe „¬•lk¼¿Ç)ÔRb£ýYÕHßž3z¥ÍûŒ°C.”°“–.×Wjÿ¦(E¤ÌårÁ´=ñFêð,{ƒå‚\ÛÌyN\C¡k~¶ˆrrÓt†_k,vȤGÆFN•.ª^Ï[×TÌYPéUHàÈ`Æ‹{âuRsR*(¶ñ‚»>gQW-kFj©×dXºq°‚5Àr.4 b=ÈêÌ ºµš¼Þìè¨ç5éˆÜ|¢S}»eé¤õ=¾3V¾C4CžˆÝ¡€ «“¥à×ñd©3üßD9ϰ¢!X¾ƒN¸Çªz{AãÕ-Õ·-€“ïñÒ9„hœÒ9YÏ6¶(î °,‡q™qkæ ¢ê4Üǘ÷©Öù¿¯ì2 èrÉdiwå™"õ®×+'zØ Ý›í0(ÔŒä o®<}.ªD“ Li㺃¼ &QÔçÛsÅGƒ$æ–Hw¾ŽªîÞ;è\· Ç0»ì†Î\Ÿz›,º[ͦÐàÍtšß Þ·¿°{ôp£ª¯ŠÈX¸AQQŠƒã+ˆ‹OK¹]‹89A få._êý¬Q†“Ö›1l²nŒ ¬t'pnç—úš IBˆóqœ' x”¸ý16ê Њѩ ½Ù³Ï;‹{ý]C¬äˆåÜŸK\ æžîŠœ{k;éè¹Z¯°ê_È2®L«ìÜ =»æU±¿u+ùë…rK—+Ùµ‡GÊlHjÓ;¬‘Ê|àx\O"wKyXôJZüÃêzG›Ëð ¤E Ó‘ 1óÚ¯å‚áL©Íl8ŸÐ¦çäξŠA‘ÖçÀ™3Sg‰# ¦ëiÒ­Pmûa½A?ù®ã*q¦nú…h?££þ÷,œ °eèïœ—ËæÁ´VwqfS £jwwï]‡ÁÂ(ÞkV£ËK:ä~ÀmkúŠü¬â$ëÕB«ÛþGè뎣‘×ÜÒ£òXò±VÕ=Š-:[(´§á]5g¦6e~J˜·k1¹Þ"®Íd볓:I±ƒ“a+À >ñ΀Җ…Η/£_€©I=Ĥ!î°|â&2@us·f݇æãôˆl·ôÝîh:J@ÑØMÁÛ†mÚŸµ-¤›DMo ¡k sÕ]|Y Ôs¼|ñ-Î¥µˆ_½XhÆìYÍ{¦hÕ¾çÔÏÛz¦3º•QÖŽ]¶G»)Q5u• pmÃá¶{†€§3V†æjÍŽH|,!ç~Ù°RSú±ìš²…g„O–ÊšìtÄd.×þ¾nÿ—jÌǤ£íž¥ñך¿íEï¡@<ÁRÅN¬CN(ZŸDŒ˜zH$ÈÚNè̈8§ß"„‹O3¦*` øºDásö/AÿiA`¼i‘"9ÄKÎÔ¹ÔjÇ_;Ò˱A•þô~­ ÒIjÌOæ8utZ_EYQ‡Ðìž'¨+WÀØä‰2­üü  ’Ò$ÁÓ\¹cúâDÛ¼ïäo½ŽÑ|­”êhü¹š…ªF‰A ó/:ˆ×?‘Ð|É1Î<,t±}ÅëW5 ¦œ–8±ÒO²¿ ê„Û1…íÓçñ[zhgŒr‘3ïdyÆ4»wá.„ØÍC¥–·…-ÙIìp Œ:¬ÆÞ­‹1»ìô°4ùMÇn{ËÂ>SɃ|™Tß›¤vøÍ3My'Ýòœè{¨õ|‹Rûu#U‰ù¾[Ô¢‹8c¯Ü'<«97í‡ozm”èQXÅäÚ3S+¼õOЏ¶B‰ xÜ>Zôº;!5ëo’öÊ.Í[¨ÄAæéúrgƒÎÓˆ Å–ÇBÓ¡8m+ë+Z¶ TœÍz ‡‰C(XC º™ï-‰{£ô:_c¸ðBnGfÈ?Š'¿mhá ïÏm‚‘M¹3Ê.mÄR²ªöšŸãnð‚‡LߤŪºåtÔ¾Tïm{yõ¿ƹùbíb@ \÷Ô° n›§ëÀàVؘ6(UBW2;ÕjØ3`&ìXñÑf‰øƒÝú¡Rle$è*$¯1*j76ßZáZ)î6|¥æjq0‰l*”øÜÞæFÂʵ¼*Ï'ŒÚƒÅï Rt,]'ŵ"5Ñ!ÁsÒ$SúÈw«Í§ÊÎV60õo^ÞÚÞ2s µ·F§X’^T’Ÿd_¤à¸¦åA©~EÎŒ@n^ëA}fð0õ¨hÍ šSÄŸ¿{Ïízûœœ/ŠÃâß~H§u@FU }VoJ¶IòhA·¶¡t ˆB7‚£rG?Ì'­Øïg泘»ÕÏt½þä6¼ôÿJ $Üùý ¥®œõÿ’c§£‡ôn»™d{å•& · ŸÉ¶½Í­û5$ìÔiÞíe_2©Úíhã‚7ÉTãPúw5Ì«‡Nvc£kÉÿ*Ãy ˆ“@(ì-Ææ1‰`¬ýIHgM‘t>ûøF +AGNeœ,NÁ5¾•â°ÚÓ·WLÔ¡øFx°‹“®Oá4ÈÁ‚‹K §JÞiYžçÄW¢Tna&ñ?&$ ‘Tߟ¥FÛç]©…OÃ÷®Î3©Ú\@ÙrÉ{òmV~áÉÙ!ÃϯÏ®ôjcŒ–gÇ“¶~ßñQÊ+`z¹re_rkˆ®ñ‚p‹~£é¨_—ÍãZmªq‚•v×rB·bþU(*Ó2:sË{‡&rèØ¬Ó­\D)Ô‚$yü«Þá~usµ4æ’< ¾¸ö€ˆÐª@ Š»‹sᇜó½Þ¢zùsD¥#Ù7ÌQWj[‰‘Û,ÚéÞàJŽ.º¨M°Ê Zm]¤ q¬sæ»)ÁÈøÝ ß‰×’™­ð• 5úg<ùSûßù«O0æ\€¥…]&¶3²»|+‡á Ã}ìñrǯ «þÄtnGAEö@Ü^ôà[ù®ö²\v/~coÞ¼3SŠ |ÈܨV"JV·­­çڬʊ’KU<–Þìt]Ü „p-ýr Þ"` ´°ÐÒm¢âiEÁt3 ¯}ù6ÙÌùÄM²Kèi*ëŽ]ꪠœnœòDm*cêž]·ù+“ ½JH~c;¾†Éõßαgï|lçÛÂß çrüÁvŒ[Κy$”–=ùª~9oËÀZ §ì!Øù-ÔhIçþ8w¶™ˆjí–›åWWÏ0“- ¨#u•0”)c•:Ù *1z)¦d¯Å}‡¨(ñÑý”%7 z=瀕ƒ\èü5ö“8sMÝ ‘Øèv à@VÂGi€[¸§‚·YaÕ¼‘ê4ÂÞçOЮý÷Yÿ¤ÿßs«€’¡ÉbSû4N^ɪrgôÆ=@“¾trÄaL–‘–kÂ_ªd0äS/N\þ=Ìzá#ñSé`33S û| ¸Fæ(0îÌñÄmÅ].3_Ü]|?Âü³ ~q EyplÌ¿ÚäíusÀ•‰ ‘^az:—!,tyŠºy“4Ë«>= w4—-@oèØj!IW<$—}|˜¾Â宇Q@/UÃŽ  m§"èd˜D ²´£kÁ^K1¥€áæÍõÖzÔº2/áˆEõÕö( I7Gm\äåw\¾ßg¶*@ §Tk²jhûô›M¼ ô(èØè³»=K\×V¨ýÕøu[óíÉNnLj÷ï7¥æ^'¶*¸,—GSˆAM 寬—D(¤Ž]ÅÑa¿)‘vWíè¥6)­«ã×w4bwóQìp"×¥Z×úœ0§¹dþ9%<ªïá‘WÀƒ<› Ç·ûâÂý¯‚…r$nPöqÀûwgÅWüzŒêû`á,†éÛˆùŒKw˜•k"fü†–ö›‰»{X_~YOj~+›‚ŸÆP‰ÅœS M©—0ì€(Âo»,´Ñ(*ljRXÊŽ<®P~KKÅÒÅ”HÅ4óçÒ`ž’CwW/³‰Wâ%aÕöŒ&Ç/»ç %Ò‘’ןÌ“\µÕL°•K°vCWØ,Òù½&lÅz˜<–BîdûxGTsªêÛF§.§fÌUƒ¦irwý“¾Íå­iˆ¬GÖ¥ch’€&s{}·iŽQœA>ÛE ’}),óÚ»Õ£3]0=Ç¢€“EôãN\´«µ­òX¸!Sv1­¨ô©”©÷m™µ9…9 eÕÝEæ4äœð9”à ý†ö”4Xg¨G¸Ì­sãÇËÌ ÃM§äjàøS»¨€Æ8KK=]} …ZH,e­%]VWÐFÙXAÀ|Fïmÿ³ãZÏ-½PF,•¼ÜRÉ ç N¹¬ðâ$(*Ÿ=¤šY}ñ»/ÿâv ÷ hZòãõ”‹æ–XüË£øatÞtc"ÐÿÙPáÄ 1ÙXf¾îk½Z#+ Azׄ \JsCõiTPäÇëy †•hãØï°™´Ï6íqágç=®"£“Ç5ëUa³„s²ÐKTä—s%«»ä¶PÝÃH*ó$yo4iÌùhî#_€nŽ^‚ŸŒÞ-M6ɾ(1éØ ôLsöCŽíulB ÂꟅ ¾†ä3þi³=Ÿ4Å“«)tò‹š9&ñ m”z—âf>˜´Ø ­?ƒÌâðª%ˆÐ†ˆ¼UGe>X ~R´EIÅ1uѩÚóK*wÈ~¦/b¤ ,9ñHÖN}+øO å~ù¢%Ì ã”'²ÕÇ”{ ·:Óhi¯~!ȱlž˜^‚°4ó [×ÔP^pœ˜G½6•ÝC Éö¤ §ü¤éüo3'iÝC³§µI¡"$Ž% ¨ÕåW‘òË4º€Tv¯“6¡ÇÌòCôÕuºžxž6,…µƒ«æ@ÆB%'x<¼ƒ¦£B·fñ‡66²©4ö}kúêÍC#M×sõ` Ó‰&eq§2ñ½†Ã@g3«…6¼XÒIo%Z%d7Oé¥eÃJV7iuñØ÷Në_hØ"®3ý§cH¿ ‰4á.ûë|\)áއ.©6åÕ¿Þ(Ðwˆ4ì•´z?¸ˆBÄYŽKÕ–ÌÈ|ו¨¢±¬&â6 ®¹_&•ñ¹’]|²º§K|ßÜO,øÍÌ€•؉ßú¼}€ñ• úÏx1¹b½nsæ’Œ›ßÂ÷@Æ2c Ç‘¦r=ê÷º„ÑF`<Ž1we5|„‘u,ËT‚Úðm}ze¡wÑF»wÉ“íæÁ°ð<ŒÀøvš¥Â$™-/v¯Ù_ so<ŽÊ±ÏwÕ¯t¿;ó<ù`¨ìI°ÇlÉ#òS3„x3¨·VÉòDñZ2]bOÉ×FE?•ø[½û€64à`·£Ch•Gçò‘OškŸÖ¯Úü8*Õ»¾kÒ#ùÅÕú}%±*¹hÍ t¦{´€ó»©ssW¦ˆ.£1›ÖŸ¾}7m—Fæ„ÁŽ®„ £úV 3²ïídÏì8ÄìâPz™G : )çwRL[O·«îXÛ5‹k©£¹n“¤³üÑ<%¿:ðjn%ØìXÓ19‘û9í?™êææêáp„Úñrf^R‘³`µI 3½YjžÐBbRr«ÉwzÓ¢¦8¤Ø-97בúÒûUôÅÌBæ¡”–K¢Ó• wÃQœëü“ê+ðsÔpÔ ûæòÛGeîC$©^Ø<;úûÝ6ñ6]ƥػ^f©Ž„Y#ýêðR8’jìt$+ÀÙ¥UÈØ-µ¼D½|›|ë®k‡r¶/Àl”}|E2qš³ÈS6$êˆAx˜ÍÑJõ,± ÷ô’É ;ÀVóáb’Ê5„Û&ÉF…ˆVQ«‹±¾èC²¬g’»ðM˜¶|Š‹wƒR T0¢Ìs9œçÅã[ã!ó"—š—VèŸ5I9” ":’_²§]ÓzwžG([¹ çê‡ÒY£ì³@êвPçì˜åÉ&_È{ÆðŽžBð»iÉ%ÿ‘ŽØ çýRf@ÏvÖ¸ é*ô¡Æ$#ö‘Uã(õÛË–ŠÅ[–Ù’sdºmÚx ë=αúþ ÉþN{X¨ný² >u‡éŸîcI|EÅŒX±fxå@‚³I/Ø0‡O_Ña;‰ ÍØ<”sÝö%°Id/éuÇ ©/û¼‰/ µ4˜«¾x9à±PÁ{KÄŠ¡—,œŠ ž€±Ïœ$@nf½A&ÔÇÕ XôJ#²*kàÐ,7°i¾úPÁà¡i¨/†ö0"£DMoþ‹ß÷ú¸RE¡˜:I)IúØÅ9pZÌúwoŸŸõõ–Íùr* ^ ½ü>úaž1³6 ^®Kå+óþ¸À§¤ûµÊ@øY ¸™x]]©Ô,H›*ÔC~^Ïγ+ÀþðÐÞ.†– £2rX&(~¥ÖªøW’ŽÂ*‚ 7—æÐСÅfZƒ`ãðzu$'ÆtVm˜’Oix˜&²í{10ñá¾´àí%#cÀ ƒcÄ-ŒF+š~@öo_]$æ×Àrºírå ‹G6Ö†6"J¬‘ÒUžzi‡ð:1*Þ·]§Ÿüý+jDôd†‘»šØ– :Ã(¯2²1îTn–{¦Þ•Ø Žï©_³u5DëY†ÇÊŽ¨'#Ÿ£ï¬_¬áG®hˆÆr VŠÔOJd<‚5»QÆõ¡þÓ6k´ ÂÅÍ)>&- FsrTN‘Óm(R|Ú„Î/p€ƒ‰&%Û˜[+Y¡ ¹AGι0ëåÜ‹*ó¿æ²Ó3qfSøC0õI„c ˆh’‹&éEÐ|ãT>¥˜ûº˜OÝa]î’7)ÎÃ)ØÛµJšþ ¨!KsÄ–WXöGÊ({{ª6PFï,ù#™ùÇgW@ËóœÄ·(HFaØÀ²€N6X岿ø(ZÎ ŸÎ5õ†ÚB†áÍ'‡®;ƒŒ;Eýv¯È˜$1]J Äh~(cÖŠЀCÕaç6‰ k,,tá§™Pý6NÌYCã¾ deè„ít§HÆ"þ1^+öÆ•báÖ9‚1²ŸÍ æš÷颡 ¦ãGbÓ¯IÒ‘[ôÞn-GsVÿï¿[q3:ZB™ÒO=þî+×㕼‹ñt”û¡%ü“êä¯3K`Bq+ü|©mJ•cY0€3)_îŸÌ s– ˆùZ‹jl[va1ûPTÓ OÅI”Ž@óD¶ËW.no,|§Às]}©àa§vaÀkêö/E"'JøÎºŒ¼ýËîòàÀÁö¼•º.¨™‡á „îë×|úõߪl¢ÿBÖ£súd…á%Ó;ƒypí{í„ÃV{;šªºxp ¯ç+ïYÝs€ÓCÞÏ»UÆ÷ÅgôhèP0Á=’^Äî蚢҈€9_/,‚¢ÞÕ_¥ñ°®/äN„áyâ;4¥8*ï& ¼tKƒQv¶¤3‘¾aúi¢.Ø+xγø\¯ÌÓA íâVC^¯û[›1‹Ï¬\âµG˜öÂ5œN;+ÂÁüøO©2ïì/4®!Mü«÷¥ËïSo§Z÷’1x…Wß­_0]P=Jö’ô±å`:þ·¨w.»zŽ5·~?e&Åטïvøqÿ{º07QcÓjv~¹¾~TÿÃĦU’îÄú”Kõ7Ž~誠—r~Ý5¶Aaü[°ˆpø$:ek2rª4ä:¼ Q–¸ÿI¨©m0àì/б­Dm’ë)¸>7^KàÛQÎÔ8Uåßì *Ú‡ÿ³ аæÛ܆›Áù˜óË—µšWKˆ*m§$}º«J^{V{áö-OÑH6ŽÕ·«ø§NcΠœȓÕk©¡m_–‹^¦`š®¿NKÈs/UÅ£Gÿ[©=Î’§;óEM^¥|‚R—Šæ‘ĘjÞTx [ÇiŠ6B¯·Jº«…]dëÛ—Fn_Ï\üˆŒs¡àÿ£ŠC„ÂE3™®[>Æå;¾}[ ÂË= ýV·ˆÎ/oÔÏ\c¤N¬Äiw»­E@·`™¯ÝP¿%Y~6˜<Ä©÷S¢ûQ<€l©Î-°vE4˜Ì‚ÈÃ¥¹J\6°iAXžñŽÃ ó"¸sžg‰÷¶U‚سk€«a?º3}8ò4µ{ ˆ:0樼0 þ›ãKh†FñC¿VrÎd¿5¯ÿIw"Œ'·!í¶ŽòÁìÐAÕéu™¦Cþ,„­ø‡ÌÚУ)8肱êHÔC¥¯þâó„]?ßùà\ŒJ-eA|Xäf`ÎQEX#ŽAV›…Q#mß85‘Ç\ÏxÇÝÒ“ëŸó„Ä‹ƒpýu îÃii&”*mZϘï«×n(”^<šziF‰§ïƒ«ã)7@úóô}ÇÊjòVxiâ€Û–ä’"˜m˜Ã>¨žE¹µ›ª%]ÇàGªïé¬c‘E>…Gsnùvà>íê«/Âë!šám’stÀh0fÃÈÀn5ŒbP.Mä¶Dº¬^ú:ÈŽS÷#jXó~ê8©Ÿ»Ì®Å– ?—´Ögò{YMø—¤2Yû\:—xAóZO伫-5(¼ÇHËWál¸þfå½ïRB“™$òÙÑ(Ñ*);I\%zKmå¿ô—É>¤€ÔTŒ’ÁÎ5½ZÒY–R–ÆtŠø½3T"å’gîqk ò¬Ù»B¶!{æ7¼y޵ÖN¤m¡—E LÓà Ø2ÆÙT dˆÎòˆÎN…Üi$((ˆërCjŽ–Yö·þ^ ¯Pl¸ÒMd|ÁÂ!˜—îXH¸þê »)æ©câßïGÂÚ˜† ÎÎþ_•3£n OÉÑ=&{_²6 &Þ[È̼ƒpèÓ¤H€ê€º,j°¿äøä²…H‚·Gì~&Ë!s,–ªÐ@dñ6Âý¼ð˶/íqìî€Ø˜þƒì=7@g•ýá gصŠí©þ/!Q#u¬-õBvØtæ9x7>àCzùŽº &N"龦ÞÁ×ãjTærëœpu&¡ô$Õȃ]¬VŸt†üݱìWRÚÌ ÅãÁ‰Ô>°ƒÙG£‰>JoZ3ÔIòMÞK`«qOfˬh¦jDÀ.Ra±‚íTålLÌRUàÍ~C°AJ'ü°[Õþ"æúçø~ö¡î'e¢D¢ÉO’l9°÷ðÐ%àî+‡¶yøð±½ÃP”†Wr£§ÓÅt¼Ô\$ ˜”½À¨ÅPDìØ&G²(AKO#-vîBݺ3t¿¹%É[D •h“ãS¼.)O'ËÎØ¨Õ@+ò·®–p­Xß‹ÿce¤Yö¿1=¯oX§.iN!&ÇsXë'ø¯”ÙÍÿ~ I±~©£ Jed”cöÀ¼õªfjÑ6 ^½nü ß(„Œ·•©î²Œ¨—CMG”þÅ´æo”ˆ„$Ý=S¶\³“ _iåÿ O&m jW–%¦²BMèRwÆ‚ŠlóY·:MÛBp׫yn™ª ºü¥ƒgc¢“š¤TuYêe”ä<#6^Ze`w öÑ› Ϙ1ÇoÌ•™~¾3Ch¯`ȦKÒ1ÿ×3ðvÛ£`“hW2âö¥–vÇIï?b7úéªÚ‰…|Í6¼.3×Zt¼ŽÀ홸Yìc3¬1µD'·dþä°Ç®)~î›à“AVŸ,ºáÜD>'b-ÞÊn‡_!ÅÞ-—)¦Î)Ñùü«Ð Àü<(ÿ( c¸æ…¥íÔò…Ããù–´»ößžø®Ïw´ ݧo»\³eÆW•à7(¥ÇwÐk!È­Ëjj&ý¾É÷³£1Ë^âY)áÙkáÀ@ýâ®– †(ƒ‹ÕB(G¹ ”ÀÈP˜ÈÙŽª–_R—oÜ ƒé§ Â5•±f&1Ìu ò=³fCÔ¼¸9/=]Ê/kÖ|KOÓ'w0œÝ¹¯õ­\°ælgÚàŽõT¨õU®€¬E¿âë’…ÅJBŸ•×ëM›ÐUô—”&œ»gZÆgŽó÷OΈL>A_ñím)ÍÖf² {˨ÂóI8zÚn“zs~f»7ô°Lï¦ËŸà…ÕZÅU’¿+ [ôý½ *&­¯ ¯fslýŸ°ƒL²!*Â^}cœm»79é„ngúw7ZÞÁí_V蔦ðÓo r9ˆ(]f»£Å•]Â]&™FÉM4õU«ôëc-ñ6ié°á“CÙ|¹wñ ’ –C]ª›ðï @b©UË*Ÿ;‚\á©`fAŒæŒ¦Q¤‹ÁPý«kYè¢÷ÿàAoÑæûÖzöfýîÍbkL1@OdF‰ù9’Ru¥¸ö¬âýo…h.²ŸâBèIxÂ<>ÿW¢ã´:.Wºµc~¶e±&ËÜïqpër6h©^:íöÏKFáoa-N »Ò1éÜ^[¦p¶„koHŸÓ–б§ó ¦ÇÊ–·gþçB™wÔh(\ãÛúKÊ£p-&À¤éèJª¶>¼­v<Íefo‰mx"¼Hº±ô¥$—‘«%{=¸²æEU0ÐaË™¾ä…5/‰¬Y»DžúPÙÝB«ƒr-óᛑÄ)ï¾h/eAÎ>ôõ¯î~„±Ò ùW|þHÀÉ¡n]ƒÎTLåò)æ3­¸kÇ,䇟‘+®È¼S„Oð¸±+'ÉÇ;ê|µÏ¤Ú»ÑoàfÀ«Jc ¹ íØW!«âœ Ûí¼ìU™ÆŠpþ}Åz[Lÿ*â[¨27#Í@b™Ð;Nõ|…ªo“[yO_å¼Z~°íø2{kU8uNâ«þñ^Ù‚Ï5b{±q'­Q»Âˆ[¼²í¡KÒ?Ì À~mÖAËIœ¶æþ”=Ú2½A™ÛH¨¹úJümQNTñ«ü[R÷à™ @½$ƨÎÔìÍ¥Œ—€Äúßíbœ/È~©µçW/ ón#:“à«­*Y°ƒêŸ}pë¬Æ‰î?Ä Ö•ôŒ¤¦~U¢™…õ®u–cTŒžê‰öx ·ðÎÄçvóg׫qi It§©|¸0­·À®D â4Sq +rR­ç÷ˆ ª‚Æ­'knc –Ô®aíåWŠ&0øpZÛ‰Á¶Á|*€mÆShAšq•+B 6RËœ_ÄÁˆy¹ØïNÏY¦°ßÄÈüÄQLß6(æÌÄ–Öýi:WM©~ë¡©¹@^sŒ­8¡ïv‘[œä+ÄUÿ±‹zý5óGJãÄå²ùÿÕ¤³×íeC§øÚ%ö42aL¿Hd” C-¥TlV û0“£Í•üd<€7=ñW¼²ÒÜ3 ÿš0®½óœ «üªóÊ!²Bâ¶¥ ‡Æþ AúÛõ1á 8¡nÝY¢ÂC?yè?ð³ëxÄôsÌ›¨ÈE“O¯6“–š/$>gÌjœJì„JbK?tj]c§ÇĤ mò;ªý[¿zuVzÜö>Š•'h›X/:5“[É¿xƒz@ I!t1ØIñÖ,it%ÌØvܼ޴ŠÔ{ñ_›…’•žE–Û¨÷šãÚòšñBë¡YbüÊ6ÓóYpº%ÉÖ—dÌ(Ô} Š*ùÿ‡tÇ »©-3¤P¤fL¡~'#Z|m9Ú\þÓ´Tp vy¬œjVKà¥-úúëè˜p~eÀAW2~€¨Ùî_{ÅV&Re~Õƒ÷‚+ss2£”¥”a¹í–¯$-IZ +ÎǬ¯¶šáO)Ðúر˜ÝK¼DþŒW¼Ç„L«°IˆMLOûµ<ù%k@™§/¬Ä< •[õ&P'»øXb‹ðÏi±ÔÂäç§%ºÅ"®Kw¨[>2›º" YZÂDùªyCmÃ2¯A·»9•r8’Y\Ñ_ªQ‚ÞZ4vaÚà*ùŒ¼y¸íé]Éâi2‚q­ÊY‡Êv“M½ÀÕ0Qt[ßãù÷‹`$ªóаêæ@{âFázpÖï[pðµµ¼Ž÷$Ã#q#Ñ‹äSñæØæ Û;þAš´Hô­ó;ÎO‡m±ø-vjcݶÊ+g¸ åC­EløÆÜɶ¹ó&>Nu?®  øó‡qî¹ÒZK'4Ì5æxü^PµÏÝÆ«dÛ¼ÍÈÊ9¬Ggi1Å–~0ŒîõÙªþ  ¿ïh+­€XE˜õðF›L Òö0>|–v&ÆÍ¤}\—K~ KUD‹´9YuuZé>;P›hV‡™xšq×ý /ÓYD >8—Ç ï+S‘_z´|rªÌhñ‡móû¯[K$<Ê©¨Í¬™kÏþtK¥_=\±¥ésL%$ÌLÎÆ“ÛUJ“E¡Š3ûƒßP»ÂqP[s•Ï/÷þ‡dŸÜ”a÷»èm˜4RöúdÒïJ½¦jÍFæ)B?þ[NµïC¼¦¬ª±JǵÔ’8óh®!‚/åHúa‰ô;­Wd„oPå(n_† (Ë_õ\ð¨ûŒv:˜³×w4zèpk°˜âûÆÍ“ªÈo.ñXËOc‘Ù”SK8· ›!æ®±N7ý!X©P­‹=mîˉøú‡¦˜U}6ûlhbp¦¹t×V¥ Ó“lƒÛVŠÆïÐûQ½f°s'ôÍëºÂ9Ù÷¢Ä×=·»ŒhÛˆ‰ñ´ß4#=¦D¯} Z¸È6µ|tJ ÝÆWPDŽóA =µDyJÆÇôuÑ€Ûë·G0B‡Þ? ÛÙÛêøðfïÞÁC;*ÅSMÈ/ƒý‘²‰ 1öÓ%¦VÞ?c©ÖÖÕm–"[Ħò§ðè²Q›è‚Jÿø´ß®€ ٓѶ”óx‹8h†/ûáUˆ!Ö=;rÂó$i*oÃ/I¢z4´žj‹Œ~ã',>ouõ}¢jü[°'·6ž¸¹cåfyɧ+Ó–<Æþ}ÚeÎ!§Õè„(;˜)´2[Øg‰ÙãÇÇ%kÐÌÉuë¸ê`4†o# ÌÓÊQHåU…3ÎQ¸s®¬±Èô›1Øoé½9vSßóþ‘*è#Aíܸ uNe˜ª~,ÐňÓbI‘g¸²lx–@a7'ÅÌA8X³@rËwÇ£QË›tZvH9Fg:8RxïNfÊiD5îs |9NËAe ¾Òœò¯nÅWí¾$œÚfúpl¼¿uöœ÷ÍŠÑëiø|GÖúAÒÊúÙqžt1 ­áã›ýˆìƒ;`v×ùGó×@X×Ä-Ð<Ž&ÙclïŸ%87Úוv:ö$3rБþh ¥àl5„QQÚã$Æ÷ù¤ô<ÖýÉÒÌò*pÉ6¨+sÝ4áÒÄgSYi/§±ÏÂòà.‹ˆÞýC61–65òíx‚ªLëŒmXd®)òúLÕÛÍ#ºÁ1}ذtŒ‹„Rycòú4rq!&V§Ü¾* H2WýüîÂ+~F«½ÏTÏ PßzXë=/Zï5 ùï߬/ ÓzL…!KΜÔ4fëe3™Mä󼸊ÉËå÷LpX‡[ÏTKQjòÔŸ/¸×Ùvl<±ýt_¾ç¹’Hþ_šÓD®\òFü$$(mZI&úѻ祱°½V}õ€jž:ב„ÏÖíV°áãñ¯&£{—9º-éÂJ½—F¥i/Ž}W2)=lvv¼’0¤Â\NcähŽ* VGe'd?°D.2 ü$Ó21ç»%ð"•“].[ÆA*U¢ü·O}Üü>Ü~9ÌfÎ:¥fU¦W=/jU ˜K‹.‡A澟t‚3é8ä风~l³Už‹…ç$3•Ê?æ•ò°'–hIK–ZS.Vã)oqc9”ÿùÜÉž7ºBù@nŒ3E-f«´õ\íuœ-58†Æ¶ŸßÞfšåt§R<}ʓDžqEWùÎ Èj¹‚\|ŒþÕűùÖ'@¦Áä|›JëIÀü¬_9ëCQ5Ð<÷V$Zã‰nÙ#Œ"ÛX A€žÄpMw¬<¤¢‹Ò &¼M•3.Çéqk9Øï®kìúL<Ý> ©¾!…Oî_³lÓûùÏóœ‹YÓ’3%‚P•Ö çr*ÌxX*ÛŸÆD~Y˜Î‘ÈLK"lYNçºÐ ÉÔAS9ó0j¢‹\ø’ìM@_!Z´Á+.ŸàI/ÌÏ%µ Íkäz(˜® dólÿÄ&¯ö·(@ŽtZe&t·½ ŸïIiøh•TZ®xŽáMO r!êœø2.@Ég`XN1Ü`ÚÆ‹Ô¯EZËåpÐw[jQ'(ÈÝŒöÂÈúž_䪾‡K-WÏî:PZõô˺®UcÛõ1zdÃ1%¯¼rŽ–ª”§Uu^*³‡„:Lv¥¦Õ=©Üãtv.]F–ä×eW+iŒ+Ü…Ä Ð)Ï Òx¾GNü"}é»äÐÙf ¹V*/í†wdrc;ï–Î1{˜dÝBé1³àoSuŒ¨ýDr ;¨Ux~ÇIhRÅ„ñiM;§VIØh°NÏ&o2*ÀÇÉ÷ßµWBUÀxtS•ÿ:×7MPÿ×5pšL/åö«Ù›tš •h$ *ŽaÝŒ›}—&vŠÈ¨‡8‡$ ç¯"Ç\ËSãp (Ak¨uVïé¾-@±T+µ¡ï«ay±•¤†š°ËxgPºá\¨I'訪½ÿÃ[ƒ™ã[ݺ7ñ°«ÞDéįú²·íÔšgÛ#ïÌ N™·ùÍl«‹À×\W'iß#k,kìWIN룊MÅU À"ºâjo¤Œ1áƒ;p_0ò‡OŒc†pF3mü*|¬_ÒÞÕö i™5žâ_4ü©p…Ž€­¦0‘uçÑÜ l=EŒyïéã<›ÈËC3V’óªáÀ¸`Mb ÐÈ÷ €'JòZç–çû¶U‰Å¹¨pö•.˜Ðêâ{Hþpm5Ñ'²ô¡)ÒLø£Qýhþ?£K:Û ^=»ºíÖ‚p<í¨@˜+OÅt@LCæpUjBXkU´Gh*¦‡DXptݱ…êít'qb†«pdCz1qKbaIä’^÷õŸù5ù}®.@W¯b*MÂMÌgŸÇÀŸCþ3'ÝŸÍ÷õõÉ–ø9JyÜ0‘ÀðgÚå øW…vó1m$ÚÓôç­â»ŸÙP¥‘£™.aJñ&è­‹õ0µÄ•hò¨šgÈ×e›hYÈOéÕQ4)´¢‹íMKÄÙó¿¸ÍôKÆÇúÝãIDù‡&Xÿ¼v¡Âªß<‰õЛYCÓ\Ö`Æ“Í﹚"nw.0vLz¾U0$žA@ÕÀÚ°¨ àÊ2î¥ðNR|~8"w)Æv#t×PÇ žb݇½®‹º´„ŸXJï×fi3ìZ‘ÿ‡Ûî´ªàJ¬ÕðìçA¯g·ÒÊ—€öDÙ˜ñ½ïÛ3T÷y8¯ê:ö™š$•& PÑ%]ĸši $×¶ ØÅï·÷”^€rël‹Zœjtë',qLmÕ¸§Pjøp“¿4/ãÒ2^†—m>‡ª¿;‘¢žÀÿñ¶baò0íãDÖ£0À]g Ä4™»l‘1Sº‰‘“_*r ‚û8<ÿìò³ Qíû˪úl Mþ¨ß6HÎîn~ =16ù­‹®5>o:uy Œ«e~o¾ âÕö¬d¨»ÓÕòb Ñ´6ƒ’uÙ277':XîmxÑcÇßÿ–C GÑ ]^­¯:‘¬&O­¦ Wä÷ZpÄõw"¶äFÔ¥¬[Y±ê²ø_mf˜­GÅ K§ø_(–Dæ7 #7z0õÍ^os™|™ÌOƒÈó…¸’Ø•$ñÞ½–vRDN\•§×¹¶‰O˜ïgBÛ$†B!¹E f?¾Hý`Bã–‰pJGŽë©lgpþ“ žñ.çÄ;ÄSíÄŸJT/Ô(Ñ8ÐTq’fü—eQ¤ÉO$–’’OC¼6ª'€‰õ!t?Úåo@‰PKE¿r$à¾*»Y¯ÐHÙ0å,èÆ‘c O¡‘+æZµH÷ ¿ÔU« ;Dk¢Sú)%øÍôÞ Æ3Ñ6q3˱'«#ÃÇ-Æ‚iÁ¬÷ãGŽ®în­÷~záÕbv™­€–OiþŸÄLÁ¼ÎaÌê+`h7U§ãɶVÆÈŽ1qAe¹ÿƒ_!k‘©P7ö ÃÚX¤ ÒZ^Ð,™‚Rö*Í[Êå×]G¨™mƒœT†C!ª©æ( Œyœ4ºi· ès©+ZÙzTú×ÂÚ™‹ÌEz°¶‚¸l§À’¶…Ù_$1ø-‰â­¥VàXt ûà˜ˆ ¸Ì !gÊÕ ¨õ²¾Œ!×ÜH)-Ÿ9ɇ*èüÕá±ÕCx°ápèw– ` `ëpïU ‡ø»‰b{¦i5ÉæéBhc<×–Ò£h/7Ý4tî³ ¡ ‘ìå)a"1ÀíÔ±×ì1ùwŽbyeÅY"ëNg±ú1âšxò”˜²Ý§l`+æ@0`3³.b|j,îŒãÒÃ7Îü ž¨eŒûÿ-~IÐCcâvdJ2Ðìf×w!ƒ^¥;cÇ ‰Ãp†èa4XŸ!wÊE盵§¶òöÔÄW\ñÅr)ìò༠£5h¨¤~(sFmZsËJY© Œ"wX«mÂb° f®\Š£–ûæ{ù´¯´Út ÍæÆãè&a€hr&õ ËÍÉ~~\0-„TTЬ¦^%”)×L¶o» O"ÍÈj•lÛ–€ÜªoQ¬ÏÒ÷ܯÊ^x¬è‡ïRÁTL5c"Éjà£É hr<Óž ÞEñÐtrME[NTu¿Ûo‹âœ·ÝÉ|„›·×+û¥žfˆmRYNx¯«5Ã’ÉÖ<ƒvl×–`Á¨³5N9Ѭ8ǹ¶PÉ_{t€Xö üÉuF>h—£sš(£yUÑî˜Ñ¨±N«ÃJ½ºàÍ>M•ÍO ä?iøBÚ‡e¯nC­ìáv©óؤ㴌qË8×Þ&œK®=MsèË£©)/Úè|mQج(<:­*4úþùW#-’Ÿé¼†Õ[]`Y1†ogfM~D¼¼ŒÛì±,Ö@6Ù™PÞ˜ýzY_°"¯´s´k"Á~øRô¶ß¦BðU ½ñL¨qáôÖÒú'+ê»LB~ØŸ­XD8SB]Cèü¡N¸Ù<îû†ƒ·‰T·¸Ï*§óÃm>øQªm+F òÊÉØHF} <ü¢T±«UgæÇh¡0Àõ”M»ã]%t÷”ÕdôÍŧO~¸Õ7Ædt_PÀÌ @ÀÕμµ…æþ4~!‘Sí]9Ë´Ep$±8³ïÁì‹!šå"øJÛn À4\Ç)urô­»OÅàhõâu5ßË耪važmáaõÚ£0sé–u$±[n›·õ¥ÊŒ FlÆ­)ñéHäëD“ó–²¢l›”SÈ Ó¸,T.¸QU–Ã'Éâ÷«¼&£áäé°-YщðÓ ˜®übZeë”ìqB AÓe4¯ \½ýÛÿDÞÄv‡N²gÇ=¶K-‹.ŠšE©su{ÁldÝ4·žˆ¥|ÕÍ®gÈ+£C1ZóÕï;JÜmX%M¿‘çªÿ®C7û+çÝP¨©«¼¿´&û˜—7gÑ»¶ÓWs³¸ç#av·nsíí`ñï÷²ß8 Ú‡Ä"Û›Ç;ä³”éÒÐ1N§÷ aÌY&Yji'eå“IJd=cŠ-‘Jþ¢&´B¬†Y:½ºíDU ± 9·»Ï°µ¿÷UØQtÚßá{ª~|r¾—ãˬç/¤”#âU»h9Ý(“ÆM>í0žS5Dý–ÿmu6–Õ9kšþÄø1ˆ35)!N“9Fû¹qðÎ…å–ÔLviîʨW-k´5lg©WN±$³~ËÝ$õ}‡ïÓìÀl#%À)¸+ÿ¡+”ݽûÅ·ç=ÆÂ¿ZL[°½'Ck_,5íHlŒmVâS@¶@Ái‘ГVÖEðÀ°Qa°BGòû‹kªÁ›}ÖÀìtg»£`ÉsÄß5«„¦I3Îõ˜rq ¶…Á+ [»Án˜]¬ëX>EEw¬k.ãÿ"¤Xa/£=Q(ìlÆ<Ä“™šŸDŸs;®ÀAãÌŠ+ÓóO0¤îF¹ IP„ÝëJW¸fÇy*Ø~XÅëåÉ 7‰œ{å|<3Õ”¹âIrIqâˆa'&ˆÆ4m›’¬CÝna‡àH=A°k‹³|—¾­Ë—iqw„˜Ÿ@ÃTl»â›»“ý¹™ è3„,Ù¢‹jý©j!- fWI5/à <žá’—k˜yJ -î@>²É5÷ÃGU]‚cñ¶”õy&ÍÝq0NÛZ ÈÌ’SK õ îôi&ÍàXu…í ¢12—Ö„äN2rALzwJ˜ P¡Ý#'0Uã)äO<ß'c~Cu„ÀíýO«Ð.Ç+V Akb,Õ‡ÒzX'›Dü²°î6ÑþíÑXñÈ8ðP ,¹w‰ÒI•Ÿ¸úÄIÇB‘£peS —?'ãm×jŸSÂÓ:ßb?_½»¢a²P‚t.)S¾^ø¾ E¬›ÍìU ¼èoü Sòϲs«‹¢ÿè1å¯êA †íŸjr¹¥<÷ÒðµÛ"q‡u"Y m>ÀÊäø KoŸ¿YM„:J~p…vعŠ_¹‡S@˜µk&«3aÏ$¤·þïÊVl±öªÖ'Sšé݋˰£¾­ÒLö23rþÍåf+‚]%¿S ¯tO‹ßÐW<¹ÛÈÉß&þ¢tº~÷ísX ©ëÉ#9mt2:V¬¾ 9Þ8`Ö ¹OŒùÛKúÔÀÊEí¡(ýî è–³õ»><_öH=1à\žq›ÄwrYçöó”-¾h,ã¦M^aBÃÂ*Ðû õÓÙ_çLvÃj‹ÐqóãÎNÐjt†ç½gE#½;ùÏtFQE?‹Q§áj¢Ìq38‚ë” •„M©Òª®WøbX¦,Æß{—íÛÿ‰iè]XÃv¡UÆFVoR—ÚùÄwDaÞg™ ©™˜;ß,Ó¼lsƒ¿õêVöTÍ]vHÁ1²e%Ñ´\ïr{ ž¨-2¹æ¬º>y j á²Å-,›&abö¤XMÉw“—IKí*ņè¿ ‘ÙçFÍü°Â!?¯‡±PÍØyIðh÷~ÌU¯§(À!}S4-W Ü}=U}¥2 ™vœ‚©7Eü¬rDŸ7ɸ„ž[WYJ‡¶+‚¨0úšLh¸™;9D™I8hë}îªq¥¡ÅŽC±­G¾l@â<2ÐmwÇ¿azáB+¦?›Qsì £s~žF°cÑÙaÑ`‡û­K„RåíU®¾™÷ÿ¦Ö©1@‡“Ïc 2ÍØahAú̹=ß7:ã­F§R3Λ/i—:¢ÅA"Ó¡„KV¨íÁøéÛ$ã$ëÅWla†¹Â‚1±ð[îUUëSù:ÁM¾->ãÞhò:9¥%äZ%Ý2lら7Ê]?ÑS¼FÃm³ÐP™=Šªü%zú\ZÒ\`žÛàÐÂ,ª{Éï ü[ÈáaÔiÇN€‡‰M n ƨÄÊ1Ÿ…í qïŠø8dFo“ó×€Èí!Hl 21÷ £U61—ÿ¿x½„ ¦%:èUˆÀ¸E‰óïëµ”„ëI&‘†T—„äaú#r9?g‡Ö¿Ã*b}ìz1wBc¾§|ÐbI7T×& è¸‰¯€WÈ_âÞ”È×ËkÝDú¼µªÐ,§ÝÛcÌGŒGiÑåPC¶ÑÒIaæÐ¸s¡dà34ÐõìNá_íÆŸÇÉIsU_¾Ùû#j°¾$ÚÈØgÚïõÖ¶¤MÇQE½ÒËå<£ÌÖl”~6+쓳bg(ïA¢/aŸÿšlcAÛÕ1:Cg=²™v‰Wû³GøÀ¤®ëB#×úL\Ï~'ÎPzE³áåå(c±´ÕO€š›Ž¤zÍóÝx­¸åƒ _ý1RãD§•öÊ‚x»¹âO¬ùT¥Ø²ãCvsØ^P·Å2OãðæŸNpÆTHÒ_1K­s[ȉ çexºI£;Rÿø‚ˆ² W4¨gú€s0®„C©©½x.=®"Œ±ŽšÐÕ//“_&KÄ2PÃwÞÌŒûŸ•Þ$2DHB©ÞX‚džµ¡º$t (»Ê¶¾ÛÍEõ:ŒÊ;rƒeµK ÷¼†Çâþ !Öºh&á„Â.òhTÇ#·µgñÓ âßâŽt¶G±'%o)4J<COb–J-ªjASÚþb–$¡W‹1ƒÙR˰B íãfLdc3õöªY§†¨X*º`èÍ8¦,~•Oåz–xz71ü<æ†ùùÑÀßn°³×ÏçfºÜd‡:l‰ÈØž!‚8|Ssy†ÀøÆvLØFyÛæ¹ó€wTþ•2³bI&DâB¬ GªPœJ¿»¢)s®ÌšúÔáŠÉšöÐûª%ØS½ó>Ue Ó <þs¡°v„œ±áûŒæVÿ¨l1Ð×ÿÉ­çTƒ>§#hÿȹm/áìVJ¾™ŒÚ“ÔÌôÂfp\ÂÜ€L¿ƒ|Â¥[VÂõ³:¸oóÑ?vç}7UÃ]/1M¿ê¡mˆ‘ÔtÂÜ:«ÆÇä’ø¾Ü%mCCnÙ­d<ÉÐY}?É år?(¥›†y¨økNk“’„߈Ç-_ªDéÉFo~Û*5ÌRPû?›õCŒ¸¨Ž-‡áB³TvàMÔU„›|Z ¼`djw(™ @dV€r²ó¥Ž](<\lÔG+¾. 'jÃ7íY¤:¸xƼ›úœÓð0âÛÁãwùòPh§Y÷]÷üÚÁÙF¿ ß¶î[bPr›8ÐŽCÙ­˜Sž3€¹cn©Q÷LöOõBü=ECÊ ˜9™?ÝHÑl¶ßõ|õMòÝfDç !iL瘨ŠßÍh7c¨éÀÁü×@žýÕKÝŒ„H¨AÊ_>TðB0^ܱö"rS< Ķý šWסYf™\ÃÖ†xÒmbÄî•—ÁšÊqݹø­3èðÏ…Ń/!eC8­SmÉ3UÍÒVy0w1°ÅsÍvOßâ{eÛÀ\NÎŒÚwó3+þ“Cp†êäÝd68ɾœmÂÐ8CNÖ±úîù|F«. 8w(±®˜ã¤‰É"l§|Üuƒ’ã:õÍ2càÖµpeW¸1{¼û[Û€,ßBòï9ôŽn†©(©ôx‡*« EA1ï\®©éÈ õ=ÅbD“£+û ˜Ç]AãªWšXC’ÝP™HAã¯~9²Š´ &×úð¦c±\ŸB›Q¶Nȱ{*}pUô¾+®1)X¦Á´2ó.(€Â[OIdþaM®2aj˜°ÆÖ¸4I¦X8òK4úN“ÈÞSæ=KÌb†Et‰î{²Ë ù,ùlQ÷“þ%0a™u€¼VÖ$¼èüyek¡°£} ]hŒ gªúÈ ‘£x¡Ï;Ž·«¦ž.é™/¯À¡^þÉAÎRcÝS¦¶K®¬Æ=( ^j{¯¹ß¬Zì\õŸÑW÷Š¿`Pä(´_ùŒëK-/ŒÂ#?|e.Zw¹²¬$>m×È&ë20zb ø²ÔñÄÊl¨YìåÜdrŠ’ÁÙ­£J˜7äK8†JQíÈÛ1ª“4EXnú“¹ "jƒ’¢ е åz¸8tð±õM¡yÃDì„æ{,b)2z«Î<Õ'10cmoMKò}3p›Ê"¤ö™”2·N³¿ ùÎ}ƒ¿â5G¸Q{‰ŒÖSc&oצÉâ‘iXö:s*Vd¨~':f…ÇÅmÿ;ç0ü“BçT÷„Ž—¹•NÚ¾R·JéWw3CƬF•C›UÚÌÞ[3Сֽf J¼ƒpô…X=ß(m¡ìUê!V±G:Ê1\;î•ûÜç°çmvÑ¡Y‡ðÇý8g8[]À<+gðüÊ=OFîòø»ÐÕMÀ›>ÊŽ)àP£gªÂ©[¡Å ÒvÈLJ>X?°‰øpS[Pó>lðªyxðN¿=›ÒÞ£2rÀÖYéŠòwt#ºf϶¿ _à-(%ú†ÈˆzŸ('êªiëmé=n;]MÉ +ƒ_éëwz¼VEyßNÑóY|W?ê8Þeíü?vàEâÄ£1¿@» V‘¥¦ŒwÁ*Þ™Î.$Ii7û‡vé\Î\?kBÙ"Èb-BÿJ å=ÿZM©E-¼§l¸Á:Õ¸Æg[dž9 y(~è<ºŽûlì4ã«öëVqÙÍË BHQ“(DßIöÅ2Ôý§Ômî`ÿƾ§@^,”ìAôÉÀ†ª4²º£è@RË?8Ín¬XfñŽª_ÛY¹­?ìQ_;Â<9ÇZ/×Þ tñ:j; +9{î—j!nè 5àwߺdð"N}ž‹ó¨Uè iÅäxÄtÌHý—µ˜¶–k€©pßFM³cÇ•§"ãW¸D2 òdüq Òcû³‘Ë»; DõÀ²I gîªÏ¯ ©uë²<¢yŠí¿&\ ü«Àä¾¥ÁxuTC&ú%èb’Ýç!”d¤þ˪´±\Çæùà¼×éÈ ´$ÿ ¾©Hë¿7QG™í[ÔÜR¨K^j•AÉõS=¿®¤Ê@N/b¶Q¤¦‘DÉ–›¬ØÎ8'Á— ¥Än24¹u¡a÷wÎø¯Í`‚LIxËò–3/J_)Ž2¨^Æ[‡sÕ lÕÌÁœÝå¥ @ DRJëÕfË6€š_Ò+‚ã-‹¿DeÆlŠênõ‘¦è.nP±ýäÓ¤Âë’nrE¸¹¸]µlÉWGý0ƒ·-bÞ‹*Ö¶‘Åa4¸$sâ˜Kµðr«e—kÔZæ² …qX_9Ÿ‡bÝö³þšœ<¥…Åù¾ iµz[kÛ­¨ÌB÷ûW‡‡fRš{'bb¥`ú,vý8=^‚§¯bCç Cßßàÿ¬¦©£w‰¤´%ißLJB;c¯óÐóŒ¾yyX<†÷0Ç>4K’öîp&ÐR™¤ÂÚ*èHxàlߤe–ï·ÿGã! ™n uÏSq÷옾ϩpb#= Á8í€CñqÍa»® jl)³žÜdè |iw[w…XNXÀÙ` Š#C©¡âAÙ·vµÊaÃŒW|ø±æÄëÝgpºã×™äó#NY©}_0wþ0å~Z»ÐÎ^»¢‘ZyÏäô½™Áà7ÚhYß¦ŠšêhΨ”½®Yn}Ml`ÖÎ.^ 3¹ôÀP´Òä)<hTåkÌ(jÎI>}@YMI¶ˆ¸{¨,÷ÝI6 !õuÅ¼á ¿xæ_„»ÔV£Fn'ÖF'å°N¸Ícñç–*¼F|Z2Ù¤¶£ru™׋©k=UÚÄó(/½9„"õ-7ϲ‘³”²Ìõ;Š;€çG©3И3ß=ÇEÈò¬k@˜ †ôÛk` ü@¶[ Vƒú———qUUXb5_…mWuÃ÷ÒÃUâc…OÔ4µ7Ä3Pýh-ØèŸª—å1x9Õ[”ª¢Oµ®mË@k;V¶¥è\ÌCƒÉ Ö}¨¾?u.SÓ9µ3†UR¶¹ù˜53néfûÎ9`Á'TïˆB=ñi–=f“κò`’ýi"¨j §WÒRƇ@Ä3[`£Á„ŸwãÉñ0öŠ:–íœÕSúµ²ŒIðÒ ÿà%àã+ ¯Zå )ÝÎFóÈ€¿Ïà” è§à€0 øÁçÝ |ݤ–9›†Ë(™ïóú1Doœð¾'fXWÕÊ’¨?Õ¥X_%EÔã Ã-ð‚»À°j;°ÿu>ùÊÆ„þϾ©êÖL'b÷ü¬ôq³á‰¸i{Ú‘ô²æ¢&cilÝ ˆù7«ªö6®¡›;þ[ *uÌÖÇÀXÍ4/5£!¼qÒ-å:@. Œ¶Ýä òÄE%ô–ÚÈ,Ô´zM(jZ9ÆCÏÁC3+<ʱ¤LoÝPZæûž†#ײµ}ÿ»•Âç ¢žÁoKÁ!³WmdX)"ç©ÊrAÓȼDjŒ“ö")Š|µ ·÷ ú´epfKÍF‹a¨lês„X”ɾ؊ðQD‚œó(0ªŒ3%—­Sd˜õ‚—ËÏ_ŸŽ3H,Ư9ݳb<ÇÅ4.~A;oó €·¹ð4ñoÈo,CÙ#ñæŠåÿº÷wÒÉÜIÓrÉaàaN»g¶S÷)¡]«m«Ü.Éôkø{Ö[»}v}…kelIÐö6k»ÎF×"™•Yä•9>xÌ{íÁóö™’€·'¶¯é«¶¤::Özöx î ²­8½Š ؽ”«Øºê p¿9ãYú£ûX?Æ8F¯šÇ}Ûj\6ï~eàÖÊ„ë³G~Î牖å¿ÛždAôNŠ.ˆôИL=/ó…8ÏPý}¯øúVN§-¦hᘕ£†F‹±±Óôï"Zûô‰çöBÜS§Ò–Q“>›syëÂr~á¢à2ÚÞü|õÓ‰åúŽGÄû§¢eµŒG_c‚ÿJ±êQÌAš¼ì Uî‹@÷Îöì¢4"•¤/)¶µÊ›¹ÐÌ Cƒ.qTG÷rË6ók­ÝÍ7#,3X ¹ˆš/ ª1ßÓ´ýPÙ6šù1ðî@÷j|X¹ˆ+¼“GⲡŽO=K@<>söôL œ7¬gG¤/ïº)à¦P@m]áÐqliZ®5žù» SÂÁĿԠRWËÐd‘$(ó0Sƒ"ré(’Át+Lk^RPËôvrÅÊ(«vÊû«Ã‹¬Y ¯?¢ÁE"H¬Û¶ß Å2ŠL&ë­ð˜Ä£³Üz××vŒF͵Ћ…%¬Ùm—ʶÃB3oÛ§3Z-›e P,¾šïçžoàíÜ&l˜ŒòÖk°i?yQXåW…ž_¸Ë#w〈iïäŠF éMÚ츒 B¤%%{Có)ãGúzÏ%.úpÂÔýAMð¤|Õi0ôZ«ö–bî"/裆÷ÙB†Å—é-OP¼ZÐÚ´­-6ìoü(&Ž©±]QC;%ɵò¾ëýÀ ¬‰èñü~í ¼L—pïÉÖ# —Ô_ö있²ã{×’luô¢2›[]@@oùk¿Äú3[†¶<„¬gÒ ÌL²}‚Ñ€cúDdá3R¬IÿýùTÞxn[Í"¹`(ºäuðÅL÷¡#GŽª»ñUÏ,¯˜Ï3 禗 ó,@;·, Ôp®Y¬´ZáJ¦<©Ê¼=ØD{’dR¯öë¸Ñ¼„ áÔF¹L´´ª2ŸA4—´h^×™'Ƚös!¿Û•¿—®ð‘Ö¿ü¼#̲ü‘ùP5i¾žŽù«nâN ëÔ  {°À•Ÿ£FV$œF3«}÷qjÒȹSáL/ŠÑ6.fcÆ©›—*%M|æ†7Í3㲦bÙ Wz“§£ˆÃÿ d]½…i‘T%Ï,FfìdÀw “#³ }ᥲ¬ÔÈ<²Ç:uɘá-¿‚­ô3B;J2ksñ`q†öX%‹áê Í#w$>éé ý’7 “°ûÎìb #YV˜ѨåÈbR~Ôœ¯ê@Çé]­›"”øŒÕ©•×_ò—l(_ÇÍ/ÂÊ=qL—ñ8­±üÂé+òu»Ã5£‹c\ê·fí;úýÏ«¾Öxh›cïKHèM}Ù§§­œ ¾ Ìïº=)‹ø5MWD¿WÑS,…U– üÐ䆔Ó«¯i:Žuÿøˆ=Ó|õåU\®=–Žqµ °Æ¤†Zý„íd*Ý„ÀO–gÉøåjSþ#Çã|+¼9_ú€,¦‡ ø—¶¨Eô0·áº—jÙ?CÆ^õË Š‹È.A¤¨Ä}µÇ±Ðàÿ~àµ}ÉŠrÔn€cù 00cë7È>ÚGc¼Ÿ:â»ÊjFÉO¦IÚhPÏøžš®A+£8à9+y‹=ÊbÝ’C/ˆÆ…Ëi.±Ý64B¿ŸÅÅí)Às4 ¾=F·gAþ$[À>¤ºe:ýîÈ`°+ÏHÍ´ÉÛCß{R~½:<èjHà7æúmF&fÝ'˜6 r:pu"¢ý_åð…P1 yãÕÍ3Î(!e“Ðnò1•N8ÈýÍŽõ‹H‘2 ¨ÈŲŽJèžšù³AWã+œGE¹WpqƒP}®%‹t³g †&-¨éÒkÿ„.uéüf{ñL£h}ÔÈÌ‹nD¡"”ª„¤ÎÕ¥ºs4Ó¬ûg]¤ë)¥ƒïw'%gVãLk"QºW9ù²û£ƒÃú¦«ÙiEq¡Ò«‘º|S*—'Ù Yð>ê·æ¼Ÿ ŸDðïçRJ‘ð‰¼YóßTp‹.k×CçÌ0îµZã¬IÁozœ PŒôÇôç¦Ê³H¯ñIzÖˆÇt KZ¬/í™é×Á·àSgöÓP:Ðå׃%ãkø.TrûªðÍ\Ìç)lµÊ»1Ã'HØ´f+zãü‘‚íGO•hdÊb­þ©@'S.G’JÅz¼*ÿÝ|x}.EÚüt l‘le YýÙ„¥x{¶A²§ú–GÅÝQãŽù)&V¿ù¾ÿZb޵‰÷±­ïÓKø{†Ô½íföÕN¯8檌âÁY¨­…XðIz€0áØ.¨ÄS)Å1®Joµsœ´ ¸˜ñÛ>tÕ©ŒõÓNºŠb^¡Žõ’!R\X4ÿ¢;'=KÀÆ¢úñ¹²#iÜ‘õái1ï«) nÇxžÞs †ƒÌˆj#ˆ(j¯Ÿçyq8–?ŠÒþ¼ÌûÍ'KXÏ©“ÃuAæ¾#ÿ{c×RWÉšîÊ#%ìFšë~fAål†\KÐPLèë%NcÉŸñ¨è4‚ÿëzt§É;Ï•ÆþÆg¥¸¶eQbVn‘£~“î]â?ÇGi-ßO¨4øº°š…˜ž/ØOËiúíw¨¾Ëí&á§•aÕgü°*¸}*e³hZj˜ê¦Šóؼ¥F€8v½üd^_R})nÖg½YzÝ¥”ti=$¶T­Õs†AÅ%u Ê·R£š]{u "g–êJ+£Öff°{ÔLêW—J´Aý¸n×=oï4Ie ­ê¤¿vd2R¤öÒÉzAEs}‰§œT8?™&ä°­O¡ÀFf¡žÕš/ü k cÉ“BFÊ.Œ8Ç®ìo‚¾RŽ> Ul!iß›=T`³àÉÿZúÉä4¤Lj¦˜º4¹ûœÑ³~+Ò)ýÜ{¾±R21ß*,¸Ø9üÈOX0"d™e¢î˃„Ûv5Õ€3µ‘ xo ­­£5çܸZLtU½Ó×.5ÆV…jŒ4¼kûRÈÒ o Æ7Ó¤-(ÞYè±+m‡Ñª£¾ûýFQƒôžÑc”zö¡Ö^öœæVÔ§Õ²MZŽZ`l/Åýp[G b*D$P;${|]”û¥2—}V2›±a>•ŽÅëÁàñÉZgÓeMÞ¨–©vp›G ÈDÃIF).^BÓPT£$ËlÁ¾OQQÆ‹|p°˜çÔXšrëlžXlí#J=üZ R~Ìc ïà3ÍÜò.ζ‹|‘óሠ†hSOÙH@Ò%| ’ÑIÍíˆÍg›#*-ìóV´© À~Ø4»(u$“°¦q>üÏì$ÛÏnBÐäÁöÓÁÊ7˜æX¥×cÍ ¼ÂzïЛOýf-ÇýmfÃ'I ˆ`’êkȗФ#•C³V®Óq{‘ó ŠˆŠüýz«ÀÿËÌ T•”ë:7tvæ·`¦á‚ ƒl$ïö-V5Ûãð±Ÿÿõ›TM‘чÚõÄ•8§ xläFmÇDî†:…q*6Àöú*s%ù—rô;òÑG¯¨™ã“¨ÂÀçn‹4N$;’ã Šö‘"•H”xóÖÿ ¥£%ñ”(ÿÄÎmn*oQ¬·ð|5×Ð ä—PáꤑeS)’éñ…Ö‹87O[L?¶a~ýO2(+Ó­Y ÷}ó9°ŒÛ\Ê[1­ÞJÛ8 ÷;¿#²{-ðFóèZý©¦“B«7†€ ¨¥.¿o!ø°ä†6à+C¬]tèèñ ù!<m'3Š¢’ñø!ÈXä„•Èlp8Þ¶#˜ï«x<]íSÆ\Ëí5ÒVFºßd•?ûBI C¾Ðßè¦NÑ5‰4w ¸¸Ý™çÇàØ™àé"ë;ÔJáõP[|H¦ïǰ½ˆ4Â;×§f–5ïœ3Ä€Þ¦”¸4³íôKAp[©dð>Í»NN,2Ø¥n®¯üV]ZÑТxƒt¹±ÒMΰÅÄ…òo¼õwf.02jTC½|Áøu2øŽ`\"e9"ŒfªOç6³Áþ€ßn}¡‚²L½[ïôÃÄV?€/Œ!KÏÍ‘È0a/¡°8Ê›Q:ÊwºtIðŒ22Ÿú˜º®µ“ËâCåÚí]½¦ è¹JøÚ=wÚ£¬UæìZ—¿DJŒü‹§—»Ö±í¼„^ ·.>-ŒîTÅûÎÙ-ÓÏõ¡bõìYÞ@óŸRz…‰ï„*œ|ôç}'ø-Æ ÏlÄ× ç¥~fÖÖoߌË‹8Ûò°\ë|àò‹b©P$Hp‡ð¬N ¿nïy©òH•W©é5¥mN á|"ã¬VíÏÉJíñLÁT„ïÞŒC´xŲÚB<©øôõUlùƘ1Ÿ•¢^—ã_ïXEq+!P<œànf«ç.Cò^9ùÐcàˆTÊ£Æä±ãû‚äGOûî^Ž„qü©$J‹LÔ¶`ŸÃ‰´ìT_:ÝÁ '!1Þ!íüãrâÞ¡w½×;6pUµþˆóU®(ºoSÉwyleÓ'óeFñûXGÓ”yÛ¾ d‹Œ×A ïÞ‡šAøæÊq©lç5ÿ,±Å·‘ áHr²?é­ÑôŽiËRä“/þ“ÆÁ&D’3Â8{M}1|¤@"fb襧¸!ª™U\—«ôEÕ†LÉŠ÷ýÙĉēx {UìúZ|¹^ÒÞëæTÄŠvÌÇXÙõ©üˆ–JŒhÅ7ÆQz¢`¢¹šw‰%j ·s­ù~¼ú!$UôÊ ¼¸cvxu>2tH†ó=èb'œD™ ^ë›/î‡  _J–,ñÂ-ƒÍã¤ÂÝ­õN>¾3zªD[¯­W…WÇáp–‘#>ÁòÖ 3Xë1dYŽéº¿ú˜¬[—³Ä;pçêKÊ9ðÇõJêWü¤*ÝöÖ ‹€…lBßsX 있Ǭ­’PZˆ>}Á¬7õ¡àt¢Y9×eÚ„.ÝIÀÎJï|Ñ/w´_&•É–¿3U…²i võöûu]yÖd] ©õ Ë©Dùó:°¹ öŒx@!(㛚#ÛaæÇiô’_Ëc`2ÆÛ­Áê@Nú¯‹ÇÕuAY ¥žáâ²q¤Ð{× %Ómgzˆ=Ë .uëCË?«»oóÙÒÓÅáGõ8³ùÏ“áª6ÊÅñcßUÁ-h ãU>”®ÃªÆø™GѹêO7gòÞ“¶-þ=ÉØ“;[Ÿ¨­· R%O¬§Ñâ9xÌÖSgº)pç^ÿhªçÀ$õÂ¥9x"烿UÖ‡*ééîó 7˜âÕDÅ᱇!ÿÈüŸ}|;¿2­œ´äTÐtól¥º–i%ÔYXm^"1)/úJçiÃf‰Ò›73Ý>çßÄÚ#»½¬°¶Rôj¯(…O §¹ß=ÖG(Ä6ò*uµ,‰úï RÙ•ïK5·C¦‹²£ƒ-÷0ŠNFF‰,ü8œÆ°¡—ÛkÄAÙë‡ Ñ¼  ë1åkXV>S¼E1‚Ç5u¿?;¢Nˆañ¹ªø?9 ‡pg¬f=æ‰ˆØ ˜§kÀÊ>ɪL'‹`!Ы€Dñ4Ó-ˆü‘N¡ÛÕ øÈ¶Ò›©,ÐŒj/åÉšúŽ…ûœ%ßU2,Dw#%ÆÀõïlåI;Tt]6tyäêýZgD¸_GE{Pò¾’n­XªBÈZÑЄöb‹þ\½öΔª„ë'r_÷Ž.¿nÜïÈ;ÏýÜ€uýÍb¿¶Ç@g3çÆì–䈰ä⓬.Ô@‡Ë(Ïhs(¹l¸É«®Ù8µ|UˆâÙK)¼YÎ|)\|’½ŽºV’-1^h>qf0ho·DÇ^S}kw¤ùë‹Çö2zŸæéÒ/óØTÏ*§»ezì«ñ-uõ(*¿­]´¦H‡ú¤HW.Ój‡Ö"&=Fmml„úþÌvÞ6SÆwÖÉ-#=Ÿ<°*Šjº>ïD}~ ¡,ÉÞseëðíB•ɲéS‚&Y{kãÄÃTYß¶4?ÃÒß6N> ßXo>×cdeIоË@pþÂ*ÿãP^)jQŽÑž”é/Š 1c<ðt4geý#œtlÒ8ÏŽ‰lcTþ;•0ª$n†i’®†Î¦Žƒ\Î *™›%02èÞ7dnަ´ýè1 çÃfLrê©õÓSiº­ºyûƈÖr¶T”N+¦…akÕªÔ…àY·&šw7ÙÐFè 'ðöÀƒAãt²ûºe?'´FÔÕ›0ð? @½² “ÁlK½ÞM9B&ù »F°N®A±Ø¸™ìœ®‡Sb=ÄuÍҶa;T—½Œ”Î:Fe‹Å°ÅùëD ¤þæÌ¹Ó)â÷sEn¢¦@»}ƒm~¸ÐcÁŽVï”\¯BÖoŒÐ¬4rŸÏ51–‹µpˆP€ê~9fûÆ¢nzã—€ÿuº®ãb1ÍQ°åă”Q©áAšÑ"X»4ÍágÈ|ù­ïyâýÞ:UiÜÀ œ ™_+ßKIØØí*ª Œ®T_ÒñÍAÅÀ†Í¦Ò*¿Ç8Å}bŠ6"”®d¶•ŒŽ³n]¶ZÅΊJl÷iñB[…ÇlJˤÌPøWó\{Çb)Ѐm¿Ür¬ùÑ ” šª8G.}$¸Ë'|A‹†ëÒý]7£ÿâ”ŦWo £˜tIµ-tÆ¥ÇŇÒ¼æïvAŽÚ|ÆDdA¡—¸ÍŽ}iùÞ[n‰½'ù%½ý±e °ù>¯MT;ÙÊÔ‰V†Ã‚}ÂØ•f$Œ±ôò¦ò¾® e6“ÉÐÐàé£l#e”^ßùµ Ò³º»$§Š¢=Ö7(w íÑr ‘íSîÓO5)ô´àtSMPÛWÆ*=úÛ$Å}êNÏ^Áb·,˜ÁE›7a‡š;*£©[´ÍÊ™¬Ù‰Îtz*žãmn(”0š'Ž`g Ç/ŠÝéU“ªÖ$°zQ~Õk)Ym¦1&†PöÜM2¡HÏÛµ)òpˆæñ°Ôè¯Z$ÉÁü°Þ^6aР+{.†IJ²ä}NHÂð£Þ hEœ§Ææç9ú¼UJ~…à“# âJÈì úYcr‡yì‹x‹uPè•è’­Ù¬á¼掾ìŠä õ-ÄšQpÅøbeâø”~Hz:Ó<5ØrÎûÞd­5&p¬ŸJˆó§ˆú«q‰ Ÿ¶[­}Mƒ­}óHÌ ½;îlÇ£°x£útCбÉaîýÈ­ÍOíºF³WiÝ ñR0&ròYtš©GΟMBÍÎ2,˂˼s9³>¶:ä-1ï±µŸßD¤|ú»ê =l¨áû˜ ¨ðÔ‚žózÇ¥á®Ó-}ôåqà­Zp½óÈRL½ßF„x9“¤¤yt8€ñ¨õ¶É:ž[NkØ÷ÊÕ™¯ö“Œ”ÃP2·CÏ'/Òì̯¬|€-=êÿA@L²¾ÊÙ.ºÂôâÑ:6+Ï"ž"Ž>Wí“_;£ºe›§ü‘)ÍÜä×y1üê/]?ωìöà@}M¿3ŠÖ/oj¸]¢ÉGUPð× Å‰`Àï<¥p>9/†ÓÙ çe*¦`ôRn— Œþ‰ÒUˆ¤o#ìCÏQ/’b'Öø‚‹ºÙ9!9T ­¢h¶ºEs—”Ö,f,=/8xùÓ õz"‘5NfÜ@÷«FO øK ¹$ŸÔ-‹©¿e´žÐ6ä¦ð`ú PEd¬Ì͇˜ äŸõôÉÛiãµ1§“ù¦ž­£ÓÀÙ.!8ê™÷Õ¿6ÔÒ 4eï:): 0•õ£¡}vÁéÙY å~”£{³šÜ‹æÒ¤]‘{¾=#ô~oû a¹ÂFÃGæ@£J*ašX£ø‹À‘ãEë<=mOF @ÍmÖ*柬¹"sD"5s•Mcjò"41gËÜuJs3Ý¢ÍsæE¾$‰‰è_œVŸ¦Ý=ô{Uhƒ2µ™Sës¥*~jÛ€[¬%¬7ôB0g²Ã‚±€ÇªÊG\5â™Ã–JÉ\ùƳ­9Ôï‹þ‡áüÍ$nž»ƒúî½µXýþNû8L—çs ùi(jÕ0W¶:L~AÌjñêäŠäºå;Î@;„‰_U›£¨Æ£Ð“|°§½þ8Š’´ƒ9´ƒ¶.%9ç8(kA ÖŽ;Êæa`ü½ÌÏ»d’QÝUÈ´æ«Þ²˜i3U.xföe´)Ò5g§$*Ôw‰¤6.òͲ)>mù8§"‹TkBwè²¶Dru# çMÑÖ¯¾±ðZbZd@ËSÑÍ]6(f x["¿]ß•Y(X3Æ5ð @5𗸃…"NÎ2œrKÞa2‘ôÏ4RÜ)’^àêÞ]Ú‡í—çU£ëv!Å~¢®¶ãA°»\K!3Cëïåûd22¬2BJ•€Ûç¯Î9/ŸXÕï ­ü+ê²ÏÈÓèµ­ú©7´5è°· t¡^nëÔ¨wÙÖ£A?Ý °œ?p:’— ‚;Ÿ¤Š/¡fB]@w& O àíCV±Œ°±½Îí2{ —–¢ Pc®‚á˜X§ºph‹÷èŽúðR¬ÀÔm>y>&¿§Q˜ÚeÒ~÷Q$iR¾ÈfਚeAê‡ò5‡j½¨Î6æ‚„ì‹t#/¬„å+IÔÑv¨Ó_U%SŸ7Æ¡aûçxí ¥ñè‡4E4`+£0e£Fn¼Ñ p1~…@•¬¡É>|l5Ý 6ËF%C;uó×&56w¯1®ãŽî –®hÆÈÄT]‰‚—(2Dz6ÇâêIî·©à§_±^]ÏÐÄΙ$Vák~À–Ãĸ¶ ·+…8_Zþã¯a\Êõ«Ýþ~ &ÝNI¼˜:o°‰Jí—¯F*Žñê–Øô³x=רBϵq¡V0ʸÂy)+d-\J) KpmãîÍ«u”ÂY]÷BF^ŒQ/0ƒ V„üa°XS¢OLÉ6®cž3ÂEŸEšï-ÄÆwâQg‹MKóœDNB ãÄN&:]—{ÍG„¨ú§Q¢øê Þ"y’ý[Mi†à¹Júƒ#³&þõʽÍär¹SpY v_ÚKî§¹¨ÄTfhÒŠ> |ðp9ŽÛ•‰,Wö<²‰×¤4mHíøìE°'z˨TËké@‹TœÐDSÖý…W¤>…M'KÑ¢v£Ü~ÏZ(xŽÕ:L~'³ìƒònXÉÁ4ј–S$eHe"œ’íØžD»>MJ,¦îbÐKøøG˜…(Dñõ>Û^Ù±‘UZÍJs¦”åºXý*mÞBwì2cÀ“3{ö#¬Ð|Ó·#ù´ü™`Þ‡þÿO ª’Í£ñd¸§˜)],õiÕ₆ÅSùÐJ‘”i–ò‡þkg ®fÓ>õ{KÂê?ì E&\ "UüŸgÀx» c,Iägm ñF…í®êQŠ£´¥Ü«åN! Ö\(Öá%>ic~¶q‚S³?F³*T¢é‡Q‡'°@/jÅ|Â\ô}ÂCdÜó€ƒÏ˜ÌÿÖ¤8þ-´°“cc’9R÷æÖX5%ò/kÑ™ý©NÒ~¤uSⱉçLmß © VüR¥Ó´¨“?¸ŠÎBÎ_–̳¼e<’G{¨™›ÔÉ)È 8_MÍä,ZJ7qhÅ4ÔE+ÏèîÄžÅökWXj¼n+ãðWö›.ú!ëØ×WËÀÒÀ‚ÅøÜÇÃÏ2h1w¢ce¥VW󶦚ڲøØˆÔ^¿Rñ.H[ñ~1óÞ.±Y2*±Ž›µzTÍÄuh3-îü8y´äª´qzí‚tƒª\îtd½I]NXÊÔ45­¡·Žq¯ËÂɂРûÅÀ2f»{IŒOÄÿ¼Ÿ§o.íZkbl§Aù þ—§­Èo¢·Ï4ËùãR_Ý>˜Ñ‘­§7Ä•¡CRNÕ3StÚºŒ´åG„ÏthÓroùT# x½#½+Ì2_vRŸm,-kð˜¼Ó[MÊ­ÒW,©ûÓŽ%f»úÑCÌX¾µa@Kg§2«ï'¥öˆ³¯¬j¾VrU#’ÙpÑ_Uá|Ì·;Gü5jµ Òµu{W§õINü\­iÛXÉpÒß,†aZßì›\X¹wë‹y*£'¢†Ýh<É]Á_O¿! áíö2sh\Çi\ϼ|}¤Ÿ É×kÅf°‹‚"fÓzfáAãfsëa-;}­šÝÜ‡Ç (æ£|ª÷*‡ŠÉ¹Y7ËŒ†ŠsÊo§3Á­»¦;¡Þù[K6LNð]¾‚M9´ç¥þš°f™ƒÉ`ï— ì‰ô5sjÇPy‘sQW¢ =3Æ+Ó»}»ÑzîBxø¨Í6køMñc‹sS-®T<»ÊƒÔrÊ®vHB:Í l¾6ÆD_EÉ<»À°ëXË€‚Ò6ruÄUïŒ_Ž']õ…\q›Í¦M)Ŭ˜W=~‚xÉ “:kØûQ7΀ë1B 4;³ýÒ”†Š– l³B¡ÓW@÷¶ð½å´ïN»j-ãwTOŒ²pdôóÙÌ:Wè G@-Þ‚j}U†óe©V¾nçåz24P é^šÿIœÇ‹Ü£ü}À÷ëèk} OøÓ\ÓÂh]_oOQ?EŽÀ¸»ä=ŹCõ^ùeS€<ëjp¡¹Ýô+ÿ^ïOI´ú]Qœš >“º¨î'ÛÛ‡{Δ¬¦¥AÂÈÉ‘ÅÖxÙÔ²§ØCŒ á0šÃ瘇$ïOö¡¥¥à¤ /ð4//• ÐB ý¨TÐÜ>ˆçñ®l²Ûñ|)-t#g‘æ °á*Qo0úÝÁ¶°ÔßQû£xÒšÍ=3)PÔZáà›ù^ Øefn©®QM+è´‡€ö!{»ÅÒ^?\¶½ h\Ù ,UÁΤÙá5Ñ a´¡Ò9;^¢Ò@ å~õ¦ÃÄFÑQ{í¾ïŸÈX‰¤nÖjdîšïÉDïu…·G|Ïú$VŸîµ÷6”³Üä•A Ø6K£É·Æƒ.[ã¼nºtºËÓÅ(¸¹Û¦ädK¤¢L-4BU`EÙÄU‚6}çY|ÌZ2^”ºÃFm[ßÛd XZY⣠(ünKvgQöM‰%\*eŠ6A²d²¨ªjóZ…÷Ί Öoªù9)c¼6Ò ·VNÒ›ø‚þT8MAiòBs®ïÏ~>Ÿ…íh:*Ô7翈¥§Û›?«éÓ¯ô'ç¼¶CUÿóé\Å‚_qFÒÈHw”ÊÊøý°`§™o¸Wm j´ /“*ºd䱦š3€³@°º;ã«¢t”„IÛÆ‚£ zJ¹È.Lï¢ Þ@&ÉvÅNÅ6žœ¹øÚ_bTwyŸ  Qc-7ö‹Ü¶7“§ täŸH‡J­+’$\Êžˆ‹õكƿŒËXÙ\;’çÎÃÛJ3Œ}â'f÷×Þr£6‚¬ZxTö«¿>šÕz¶žý˜aw3·f¡ëûGD¸fsðκ4[¨Xk¿N@ú|[ AÑ1füœÑBi¬ÙÅíkR€›ƒŒÇË–çÔ¶‡DÖN]åÞ‘à7éhÏžïe¿-êÛ]vÆ^4\N «Tü’é3Buü&Ôæ207PZ•Œ§Xþs+Ãbµ>ÿþŽgšˆýæ”Rü.9R&¯»ÛõT·¼CÞ)/PÄe«ë“…tgGEäAɲix²»ÔC£E…ë†ÐU^ƒý§éA%•ŸÕnïŠ~èC¥PÐÿþé#­ÃµmTAÈù>I½)8¥C x»:þÈv&b¥K¥|±Öæ#Ñ¿ú@P¬Ê\h)LW‰ø¥ý…Œ&r72!šï%‹;‹/½ÎZʧ µ¥½Í\ÛÒ•Í=hƒ¼G¸ÄÒ5âJ`šô¥`ã•ïòL R,^{žŒ –åî¶–tÜ£çc}¾Òª'²&øÝ6ìaBO¼9X6sæµgÐÃÕx>×íµ 92«ñXŸÕ5-[TxúÔ—xDX+Q$€³39Õï­ïGPÕt9šÅ䦚Ïh :¡æåÛz]Ì,–êUDz[Õátµ³Ÿú†‰•úS :»¹;-g¹ÞËtËd´<¶"¾È² c~)A†²3ê•©îmãå†m'I•*>lK‡3¾ßU³ | †C°² *D!èTÿÐÛº>ë¿å×>HºÑ HFS=ŠŠh(ô3ÂìÖ­ މÜK¶®Ïº[ i¸ÖÝ›—Þ7‘ wÌ¡ö~³½q¡.»4û³ŸÎm0ç2;)˜ýkJ –C™võÿ©‡¦g-WÜK76誛ËÔÍéÿĈ΄a™ùý6ä"È€5·yv9! ³ ÔOn_XvКM›”î§¹=ð¦[€;‡Zèb° pŽq¢E¦,]û·¢8»*lóž1\wõŸuJZÿïi;Êå*¼¦KCÝ{VË£’äBQ怈<5·¼˜¾i¥wVsä§¿ÃÝûŠ…™r©ôš,'á|ƒÎƒ ¡ñ ]0rQhašøe¨ÿ2ŠÀœZj¡Š6’ð9&0ÈMiˆ…òŸñ¥« ¥öXgÕL•=ǰ݆ô¨L]ىĚE2`´Æ…І.nÂEß {cƒGy*'Î'—»ѺÿšRc]f Ÿ5;`˜’àÿÚi„Cpi*Õ=1 Ÿ kâ†þ›Ä¨·½Ö?o,®ž3ÆnW,a‡dÁ‡ãã-VºX¹gé—6"ä,‰“»ÌöÖÛ,ÿ4f°?JfR´ÀD²ƒÎoãÛ{¢5 HßÓCïV¤w³ß¼0j%Ê_’«&±AfÉ8w™B¡JKq1Ã3Îud=Õ?ÎuJ€Æg›÷mwKo–Ê%Æ2¸Eá>ÿdD0‹žÄ‡:õnѱx5"í)E¡ÇF.ÿ0MyÄ8€”²r¸ÂÏ=#á{é¯É¯£F Žmv²5%JfXþ uóc[Â6narÄ[æ €g²¬.aÏ !¶y  Yu?¥y¡éñZþqY~½ø J!Ô?£8lùaÒÀ€—|Ê“S©æ, ­ZüoÏQ¹¢t¤âc`Nì‰gZk•Q}hZ¾NÿXX¬@3éí½ì”_F˜<°eÝ4þ@ )¥FQˆSWÆeQÀ$í§DÁt‰oUÛ)šJÏý`#ßÌ®e ûSÈ»¹Øä¹;6o‘znäë:B¼…9F’ÏCàWp„ræsžûg¥ðÀœ«åÑ6þtì wC&$4ÍaTG·.ÎÉ'…Šº ÜTQâ‰Ï08¶ß¸RÐBÉŠ \¥Ú$$mˆ× XGsÅ…zj‚Õm‚Âì]Ÿ3Ò‰[Žçœß9J;NAMìvúʉ\Oô¨Â`ü_ã~ážÅðÊfoÓ’ÓœDs”ùr+%5t¦°b†ÕÀék8ç 1J|H¤häú󦣠G kRÎ.MÐß’ŸýˆñZË&È’è¹’/¶ÿú Èx à1I½ˆ¡w:B%\—p}39‡{2×2äüøóÕš`ý¬†RLörHÚ»£€›pžÝ©Ràø lÜÌ?è„ Dõ‡|ëÔw…³îˆaS®à~L9@©ø@Âà‚©¹{0¹-x4i{#SDªÆ}Ò”fC)Q/tE ZÎ3•S6þ@7r%}|úÍ4<ï›¶Õa¤ª{ïáøÇi,¤QêûÄB&) ]¸ŒÙ#oxJfmÖŠ;¿I°0áZμڤVá¸TXËð!L"Üpg¹(À³Â$"¦,'NæPb†¦Eöþå#-èûfÛ¬„—Ó+Ïñì ©$% °…xådï8’éþ¾2út.݉Üw®¸IÓ53‰Üò¬O]ÚàÍ3ßÚá’Žy@Ïq'÷ߪÿ¸W[ Vm¼µ<Œ`0’ô/(-B]¨Õ…L¨÷á$ ( ¸ÙIXK¼ÛX`óÍ+oI÷²Ïfüºj7Yol×&O| c‹Â<©‚‰û‘,*múÑ~NÒÜOBuK8.´Ÿë9€ñøwçæÑ5—F”÷ì7Èá,fž'$L5…×ý/œÓ,Dy»Ò.®¾u)ÅKÿGDÏæDÉWo6&9þÖÚ³¸9ÜÃvö,â‚ Ü0QÕµ­ôJaÁ§âÑ®4JßßÒ3ËšÚØÉK¦/)E¥Þݨ,ºLè¤Cvø¬PÃ[%±°{®ðOrèðH6^´+‚÷×kp{ëEÁÌÈš'lW•9Ål@„Ž`Î^pQ4—Áг5Γè[QCkï#^;2Ú‡áç¢c:ÎÛÃf޲¹æVh`÷û<¡&†&ÎŒ%_ÂD‰å¾;c%~©1°Õ ˜ê[ˆé^¶Qäs¤ì.÷—©%ˆFòLíØ¦{·Z býSÏ>Mä€3 Ý@@tuðÚL™jYËö_ª…Uf%‚D“ÖðBÂda™°)Òµ dqëîmœUôb¨þbY¿Ç­lÈåFuÀ϶̤|1Jßt8}Ø…&ƒÂõ’§ýc‘®cȰ¾•X¡Q1ŸõÛãÿæRž¬Ìkóqܬ¡©ëðx¶V€xùçIX¶¢/Nå 4µqÊ E}?õ×yx<Üå¤oxL°/œŒ#Í'8^Áp¡vÁPú޳ì}‘Î'}>@\#AI*L~Ü,+R–‚-TÓšîìÊò\¤Ç¿w›+³ÿª‰¸³A…I1§±¥Îˆ]D¾¹º­{‹õÑ›'¯èÖ¬yŠCPkW؇nàK-KÒd6u›SåmPÏ "¢Pß¹Åêžc¸+'93]DÏå6m&Åš}¯ l Rê™ÜF˜¯xH=ßž¡Ÿ\Õ¤~LÉéß´C- ÛÐm|¡ßý϶t“i9œ6FxÔ¬…Ä…Z¢‡ÈÄ ·âÖ‰ð÷Ïëw%Ù`J¥ÅŒŠà/G(7Öïœó”³Ú¬èíÒ\b¿YÆçTªUßÃqYÑ‹»ÙÞ ‚ó“¤*õ[´ûû´¯Zëe;¿.Ÿ.â•¢Ó1ÈÝL@gÙ‹A6L:1SIüÆ@ íŠâ¾ƒ è7.™öôSh8Œƒ¡Ûåv(Ì#¬‘a }bþ‡]æõ…vTèÃ~VݾÒELIú¿])O_º *K4kFßÁŒü¿ý`ö5W­ úNaB~÷Ž pâáüCg™]Öö[o®7ZBbÉF{–X˜.~ËM“´ ÚK6—|d ™ùÁDTǾ3÷ 5¶µ]·è¢e‘¯©ÈGûÍéo¸•µÙÑw$£E¡XÔx¹µV’úút”ÚW¸83¿õÃݪçW  T§!¾¸õYÌ4?ÁCê3EnÅ'dIÿ“¨H¤ªGHïI ç$ˆ%·eƒ©™èUÕ·„áþ•;Nû_ ;÷>Ã"ï^#¢³©tîÞù24EçFgWŽù–ÕûëÃEÛwôúѪZ¦Å>v@2@>ª‚LþŒÞÂ{÷àÑú }•‰e-Ct YM%Ò˜ld w»¤–4¥Áİ/ç¹>ÊS\ÁÕIRE„È”®ÍÓ…Hc¤XèÎÃ\ƒuuÔ<ÑÝú eÏoÂõXL1lV_Zº‰J¢íbK'%2Ö©êëºØßK~tÄ=}êYâK:øò§Ë«r¤[Qý̧Ñ!pW¤W±Ò¦VóF{)O˜uï’RŸêļ(nÎ…œ‘h{§Ïq§FÔš4ªj¢œkGÉ6åÇè€ÊÔ¡"PþÇ$ýwB6•,OâþM¨E<ÊÈHR :³ÿ¤‡¸Ñ›9ÅáÚéü¨i€žh^1&DZ‘茣¶KÚ 7Üû‹”oúìïOÏ“ØÖ.Ñ¿+› Ï$5íã³èîÔù6 Ý³­)£å¼çšeeÕ&üCD)¬K`íGÞǃ3R¸þEJÚ€kñ´QÀ©&rë²Êwy<çù³w§×õwµÔ<ܾVàLŠéÌ™áA§‡,_Zü[÷%GºXio榉ÈjMz[{™xòÝ•§¸ ¢Ú‹Ie„Åìš¹îÃV<³ÉáCf‡ö-"ù-oœ-T´¦ò·z¸LVDpã‹,ж¿“«‡Ë¯p Þœbß©¢%¡u¯Ê¶Ž)P’ŽrÕIhT9LJ>“5ê!hþm(8¼ó•Ä‹¥ŠºfC½O ‚J(£ã½ålí}DØIi”ס­8Ša¼"úÆz¿ªI¹; <™…Q QY1é9g}ÂA»|ÿ¿°±à@™ åyÊa‰ß~‘%yJÎQ¾îèBÉ@˜„ðRÑÛBÑ£24 æny׆ïª]7KªõîcùÏ®ÜÁ+H°åÂËŠ¼+Ý“0S>z^‘H¿0Þ¬o‰'¾N*wDÕ¦GÝ k>SlŠô® :ØíÈdæÇm‚þ¸µ>)Ž*‰w¼dÝìôï}õZÖ踻–xD Ýv:Àoï¾ß(3'1ꈌGï“­Òš€aôã#ОËEzÙ–HåïõáÁHf)¯»1Hº‘Ý£éÓ'àBs„³cr˜ ÿöúC”=£U ?´ÐŽ€÷I=‰ë aƒÌ£ÿÎ‡× ÖƒÝ|IµÜÊáón©”ÌÃ\3Ø_Ÿ|à 9¥æœ2j=óó:±õÀÁ7*žú\Õã®ÁÃÌL2cÒä-¡š àdIAÒö¶"ïC „~ã XŽ6kåU%Ж•Çå“Y9¤–Dq4ÝÓ”æä5ÐcÂ1ïºI¸ÓÁ¦3É/a)«Ëà8ê?'i6F£fÐcâ5)êø\-ßò™ÎɾΑãî9ʬfÑÄD籘D|8ÿœ×n×E°LãÒÖû×bÆ£Œ±§S©èS—FuEtëðUãi²|ìFÑThjTO–¸ŠçfÎÃÏF¤nã;B^¥ ì£î©}CtÌUàÌo‡—þ õ[Ëe·Q‚çöZ(^¦.4Ñ=œ‰t¦}¼.´íìù¨ú5NÄ ¿1þzÿká²Í¶œÐE$Žožm?–:+H¶z]¹YŠu+Ë•-¹g]ŠÃ¶)]ý05왕V«º=kv>Ð PÀaÅÞ©èÓýË,±!P\ªþùÕ(jÈCƪf\™ÝOÚ´>¨fÒ@TÉYS}À”¨!»Ú@{ÇÛO6YwØ([שËèî(ùT† ›¸ÜóUíì¥;ºç¯‡üg⎟Wÿ_“ 6/x¶ž*,íŸ&úêŒNÓ)]Û^±<ë:ZV÷9j/n¹ø)ÆG£Q#Â)š×-1Ä ‘©*W>þ&c]´@¿ªÂüI„Ç €t˜=#!%Vg;íЪ-ŒæÝÖ —vòú-¸p‰.‹.qžÎ7<ò”úôzÊõì9Gè ÎÙ*mX»EÐAÚÀ ¢–§v”³ýï¯UG+š¤*ƒ8ÄŠ)Ðàg§Gg$›³Þ¶#¸ÅM×`‚ÇûÍ”®N><þ©LĬè›ÎÈ…AJÈÖ5[Ö`o·ÊÈO„«=ËÎné—T¥Â®‰±ßsÎ'½“s“Ï3êÆFl±º,x'f/ï%1YŠËö~ÐŒ*õßÎÍÂÇ3x ¯¦2a*ÏæB!û¡Âæ™GéOÏ~zºà1QÒï5–ÔôfÉYDKϘ·ÉØüe¯#7õ\*þ{ÙÜùdÕ:À…ä:­ú±¢D…)¶áâ›s–üxÈ,0´8S69;‘˜{Ì™4=a™{6öBX;¾äP±˜¡RßNCNk\„W€f³ˆþòN„Û7È 3\§ïeßx'ICJ$_›ˆÂ—¤0Ã^]!Ï*ŸBƒhB¬½Ög½s¦Tµ#5eèjp ò·Æs‘W \§  ¸­SYâ9¬»€ö?>%—­2â·a>^CÿlDÑ->ßW"v"Â>êØ£xG>Dµ§ôélã’Ê )hÿ›³ï“ÏÓ!i³SñJˆ„É¿°O‡4ù(‰ÞФ…«Kw °±÷µ2MR_·šG3UEºý… *ƒ…u¨âxÍŒ°°§,u5 œTm’…ä‘Ä­Ûœqw“fÝ QJâEQY3/½’Ÿ—šRkLñŽJf,cÃ=îÆÆhJ"Êå–ʼn2ZY‘¿›E¢N/f ý©Áí"[pD7>ôyª äX@…‰E¢-oúIK‚@½'Ÿòèuk|$ QÕm„9½ÃO4Ú‘3~­jŒýà­îćôc˜WŠ–jïôJ_“tö²Wû0O\‘"Ž3Åí#Òë@Ññʳ¦à¢^¸çd¶ì¶ü¸ ÒÜ{l Aàcë¶ãD¢à|øÂÇß³‰|!_4¬][¤8›XÅÇ“ð7v ÙÆ‘výU[l?èM“‚åÔV¯q!äŸØ=Ð"Ó„Ë*—±Ð*q³®Ž¾—¹î 9ÃúUB[bÿ+‰ÿÖf §_߃uå-hg@paÄ"±“‰áá³Ôih—ä ¦éÒ9£Ì]“žf•$r9û|yšF 8ȲàùsF@ài)[%aü‹‰}Ûö$¤Ø¹áHž¸7b]4 Ø!^ÇovNK Œ_™²ùO¾iZWêO{Ø»ÈÏ)u*ÂÚOF Ij”FâGŽœ%o+ˆE‹s¢˜ý‰`²7¢BïÉ3«ŒŸJ‚.ÛlC9Ò'(RáËÁòc‹³»äšðyÉ3^Z%5¤Ub,np 2Nû‘ƒz¡çY‡ÁãÃÉ_‹‹a³8Nl\û üXYS¹ŽŽNÚ.qU¡ŒóßÒº„5Aé@žú»+!°OzˆŸôªê¯Ó–Î É®í ç Šlkÿšë„=Ç™ê_ºSva‰à{Ì›'åwÎèææw£Vž‘΀Që~hðÊqX²° #E:ÅÔ,êØ«A·¤jÅ¥[Ƥ¬VâRSpuàÿæ­#(÷‘íÑξx¦U Ó:W†–'+mˆ-—g:p¼„«©àØÿÈæÌæü¦:Æ/ØÃÙíõ›¢Á½ÛÀ™U•h„ 6D“jêDã‚É‚K|Ù“4bèV¨á俆‚E¡ØÆ6Ð^溒ÙÁ+ßb•C“ˆÁUë9íeÂ#—N ,«¦§ãé@É ÓÖâ»q8¼)ž?3uç¼ÑÊ÷Óýpãš§"P÷RˆëûȬ00Sî: òºGÏä`Õ‹/ú}+ÿã]¼¸Ã_l8À¼Ájju–ez9bð²´Ù…ùÈ{ÙX0°i×ßþÄœ­4…‚³õ«\·­Au¼ÎîÄÌ# ˜ußÊm©ôW‰»akS^xÕ$ÒñùÖ½ç}Õ‡ ™nðàÚbÕ<þƒ¥_®yfòË.¾­‡ˆsÆÄICŸÆž°ÀYàû\ÈV¹,$€¦ä"Küëóq¤î[ÜWïœÑ~Ÿ¨KÛïû3Ïà3;Å¢±BÜ?é´F£ÃD,d‚žåƒ.Pö—I„Íä×qŽð]Ô„VÈPx÷|–°]•rùüàá©®Q{ÉVÌB}4Š8nX çÐ~ߨã'”:0Kû”ÌÄ},£×åŽ VñÊÁglj «‘ ©w"XXnôd8o74¦%mø€ëŸ'ôw"7¿€ÖÝÊž™»Š¸D” mFCaÛþƒVF ¾…(«Á€U¾˜NiöF§3iA„“AÚìÕ1Î*þ|-ÆòT•€Öž%Ë, ³°5þH¶3µöðRÆ0§¥ÌâtNnœXMçßyzy·Dp.r mdnÎI‘ 4hý7i·¬:̇¢%ü=cC”}óBƨóÏîñò#]Ðó–‰PÔ%϶ØçS7”rI–ˆþéËáôê“ßÃÁaXá|uÚsé3˜’§éX¡ËïzGqj!=)}Uî¶+sí£Cu´w¿’›° •Ò~>xuˆ^ÝÎ¥’GFĺØSºfJ¾q6’„ÞðxïcEÔ J³pÓ“©‚“Ðhž¯[qÔQ5:‹(§¶ö‚#dnTf´hwß0ïÉ[÷ñ1ˆ(™˜¾Œôª®iJ^I°r*ø,´Y«~©€×mÙ4P>‘© ‹«Ãî¢þîxÿD¾ŸºJq˜Wr=Å{yÊ#‡ÀWl4RûýB|â&[Y ”¾mÖçèCwŠŽŒxÍÉØÔ=V[»–‡_~òÀÓ€Ù¥‘˜ÕÀ B= ¹Õá8þ…£ õoo³K]ÒÌ&?ÈË<©íê Ĥ˜{6(5 ë¥ö嬯â~Ãñ-ñÎÀ"__½÷¦¦÷¤7½°"à(¯|ïGØÛ$þ«Oµá8±HÎs¹\ǬÆï/þÕ¡Ô5¨ũBÞVVæ†,.·%u×hÉÈ„á$ ö‡Î§9[‘linqe -ÓbÛ³¤ šõ³£¦kK]M³ø¾{Þ.ƒÄòV +Çígø•oì5±˜÷ŘŠðmêþo¾>†“}ëa)ÿ<-Z—Ãìm‡ì=Shaa6úLÿ¤Mð$-h— Ìcå¸õ Éègê¸Y°i×hÔ7¹QYA‚÷½Cuª§ó/kÙ÷{¢®P`¬žê»£‘§ˆhÚñ‡*µF¤.àh¦ýlþÍŽ,Þ4b¦MmV*Qè21€•Á^å-ðÚ¿àaÁ·dXîˆjÓ"#MH_Õg<‚Òjës8×cÚ…¼}¤q×ÈàóiYU¡íd¡ðÞ¬½·øC¨‰Ý7{£`Vl<ÌÑú\¸J®û9ò¼sï%k6õq!86=,ͨ«hoȨoÅz=<‹·Éz¿· ÉÍ—,³çË–='9˜.Ñ0Ô…LÃËu!:7oZc I1O³?Ÿ8±ð¾ÇÎDSxÚÙ®DÊs™à–²d±\N _&¹Ð`ŒÝ&°ø0Ã,oþÙ\“;A‘UžÊÒ!TèWrËô{ŸZ4! BæE­^m9Ž{µ§B Ϥ´@Ê»%+]È­¾â§GúꌟYÐÔâèL°¢ƒ>V±a£¨»ß«)ž«wÌIõb ;’¥ê<9€{Ü5šÛN2ï¬Æ|¬ñ ÍŠ7!Õ€cjÜx%#2Ý­k¥L}†. “…eÄ~e¹çº±p! ˆd¿ý’ìˆ*ÖŽM†j¥c0ÿÍâñж´4‡Õ©##Ê—=âäiÜW‚X…ññ#¦´+\vÞ6ÑiÓÎl•Ú/œ3ó,íåç5'îahK^Èz£ sÛ»{À‹( ¦E¼7ú’uÁb ’ùlÑ¿,§…£ÝtÏí+Ô¦F‹½ða]zÅ,“p(¥Fí’mE8;ê!â’7Lœ`%Àèžh‡§fl%/DŠ‹(Íœ“3È«À€ò󇾨E5V0#d²|.’áÿU™4Éi‘$!¹¶!¥ ¤? å¾JÜÎÈεO |³ Íôïä½§¬Lé¥ý"Ã}T:7: ‘Ò3-ž™.ËòöàþI†§:ÏrâÂhZ½|‹‰×Û;s ÏÓw`˜T˜øgÄSÞ³cD L³r6Š] „úCbB¯eA…vÈëF¢<áxE浃äάwã”æwï£$Ò£ë/HZ±}‚¨ùÃ0‘Õñƒ´È§N>…P^ß@ZÐï+~ã8+Mã)0fíÔ²Ìéc.º`ËW·©lXLj$’Ü2ªäñ’ÞWË—ÜðÊÊ_Ö%aÍØjéL€ÚòDºÇ¡!?GázuC¼üúŽ'ãþBO[”4Ÿyx²(ùÜÓffóiMºiTBÃ(¾!•,&eú…–0 wp·]“L“köšYˆh¥ÛQ¾Þ˜y«~òàxD§b5SL ”'7†³Èû¡Wz´ú% ua·¦‰H ׂ¾©EP´Ç?ÿBu{j“‚ü@]6 rãq-.´HÜ´9õ;3GqÌŸ%¼9¤"ù zøØ§H¨‘¿p¼j¤)*Ï5æü3Öö¹…¿çá¶%Ó!oÔh"Üù%zTrx›­é]Øí7¤¼ÅƆDF÷9íKY¹ÇÈŸÁˆ^Ëè–j膌fÃz!äÄ«+ž†¾%ì… l¬ìÜæœ‘}ßÞº',ð¥»þ‚%Þ,93›&¯Í\^r‰LøÿÑôøf®³šv›«²¼‡š_9žñd¨`•çhÔ'gˆÈäÒ¹ã÷Â…ó¿1·ØÞÞë£ï1€í!_=©þ)s6Ø…8w°í/ÒoS³'Äò[X5â¶ +n{É[Úö¾ÁàŽ :rÂöF“¡3ÕªñÅ=—xy¯`;AóÔ‹W¶‹ù”|ÜX.a]_‚hÀýŒ‡É‚šue‰4ˆPOžRWþ>Ò"k©)ÝÎ4±]x5{xsó„˜]$k÷¡õfBbZÆÏ’ö@ŠáÃϽf« ër±ëÑöc#ïÆžTÌÑYÅchM?MI™h¥õØÚÜøªéa’ऀ5~ùÙì"]ÊI{ìD[±l }é¶O"&€xÿ…eù¯¾V–,Šïh"5åLÃk¡´2ªfœw"Õ>}ç%º §’‰.:s·wQ·Aµî%ôáV?¾­Ú=Cér™œÓ³Nƈ½ˆO`¹F4¢zº~ëºC>&gOxW?侩%EÊQí6Ê¿šÙI^Ê ì(g'†XˆaS‡eŠH©8TwÌ$"óùw¨|øYwžFu¿ò¼(íš~:rŽª„u);ÁöÌYd¼¢g{/¾Õ’ÑÀ Q´„·àæ~Ó%ñ±‡ŽoŸ× !=ü3:õg~÷š}\ȸÊÝÊÎ¥(aß+Ê•q_Xã§*u ÚÇ!.^?)u!è÷=ÁögKP‹‹ä„n¬¨[8èÅ}qñùrÎ}$¬Ó©Xwi}ôˆð›àþ難?\úzh"©êgNö'[t –Õè^©š©"~¡KÕÝr°½ aô+^­È·´}OSP«Wžq{טEî›3ÑêÑ@=Mï.Ç&‡ûcËÖÅ ð9Ú‘g¨Üòý±ñ€y>+ÉÒÈ—«{ØF\'®:U6gBO‡²Š×Š/ôÍÕôÎí¶Ñ¸¼M2'N“¹r=X†Pxu©ox_’Ÿ+‡GúÔAð—âÚ<òrcº2ÆÒ Î?ÿgxg'(„Û0’-{ y]Ÿ§E_ƤúÈ<ÙãÃ&™E07°¤¿¹lºˆ:šÿúú1ÐnØ÷àé\™%ÿK(g‡±ó™Ô×J¾¥¤æ2 ×lìmbn;Tß«Ñ+ªà;ul¼[‘y˜Üc¦#¹frF2"r¹JÉ´u¼¡Yä˜ÙTüG·ÞÚá‡Å¸ ¦NÇ7NÉIü”Aµ:ùvüÓ¨’,ìK=šÖ mOR—8£ pqe “¾Ð®ÍÆ ïS˜™6CÎáa3äÈÉ(ñ¾•{õé¸ÈO£ð¸$#ŸITCÑHVuA•"^ÓaèÛá5Ij—[°~è”ꌥ¨öêü…eéÚMT-vqKbHº«÷QàÞMEs½”~ö°0ÊŽG©d=¬•zÅ |(d×:yÿØ,ñkâú:X%ïdOabÌÏ ù “S_‹n’YËL¶mìÝÜŽÜeú"ÓŽ>ãBT»:¼¾<+Àéiï³îæÒÞtyàQúžTF9Ý! o$„îÖñ•oy“< jJîóÑ ZaE3™'êÜ•G›«åƒ>kφ(>FÒáz#>öi´ç g£SípÎ ESbÊŽ‘³ÇYh}3 Ø%¡ƒ±€Q)d¼?þO™…îÏ™~vµògVz¯îvìG)bÓg +›OŒ|=•3j“h‚{R8fØq|èáIƒÏÝBBÁCÊšH8–©v·"ÔV¯°'Ë,=¹fÑ)ýVÒF˜ø÷°[Á¢`W-ä慎ìRˆDªØÎº®U·®Ó4ëÙÖJ‡¯µ ix ãÛòqÁ…®"¤p+ŒÚµ8YìC]”)ß­pÔ∇Գ˗y&ìWòÙP•º·•Hˆ/SÏm©o^Ýñ¼“é î}"—‰'%6' Æ ÒMÙ~ᵑ¾gž—(gH-4Ç6Nþú‰çmÊ Ó„” &:¿'Jr-_`á¾—uõiâf] R@ŠÒ£K,œ)iãÌd‡ÊPXÈ* XSƒXT°³BþJÊ$Yܘ.œ!á7JNYŠ·¦Z𔦸õµ—&Ùž!¸/"øÞ% ¢#U"‡ã¿û©Å]+L`ö’¹;`ø€êÑ5×ó, -»)4ìÅ-»¢W$ÓkâT8]:w‚µ†BêÍ£€ÆsN¼Õ=Œ€X”=VÑÛaþåÖ#6IÚµ  Õ8+Vo¦ó»Ä"û¾Q4’$i]¥8´·ƒ-× ›„ SÓ'„çѨ¶Åmýè‡Y¦9* ė…MÅ€–îüòfž°¿Î€Û–-å÷gqU‹“À·ˆ\¤Îª0Öœ~Ë]ñVôp]°MêPÉ-SÒ§qAŽdÇŠÀQƒ¦³8Ý8«¼'¿[eN5'äñÐ3}‘lïqèTܵ5uëKó…„’UÈroca“eçl§= @/<¯Ç8gë¿Æ´xé&!ÒÂpÁnP]U׉©LŽ?¸ÿÙ[ð;gÍcVˆî“ t2V)ÛçCµLúö™kh ¢IÔÙŒZ–™ž„5w·šDå j›¹öO÷ø¡û‘3¯ÕÕ€´'‚*K6²ª†Žðž½œmTˆè°$ ?r[|¶ÂŒ)u$5éS£%„„5bþ±©äúqÛfå}!Ë!B¥¯ Ú4{·GBKèŽgý)Εr\çÉÿ6”Íë}öËŒp³ô¢N;7µ4$¿Iˆˆa(èÍŠ€0@1¾ ú÷6„o)˜ |ywkâê“8 áêgW‚5±»u›¹C°gê1»Ì~Ç×*–¿ãmÀÀ3)N½[CüT3{h_RHbÃD©€T§ƒ¥¿$Ñ E è Ò ½…7n-^ܲ¦h?æ,NÞ³Åá5ÍÄÃ7E4aÖê÷þì.G׎žm%ÀËß8%ÓZ…óœh}ۅ뤮DàAămzV¾ê\èrY§}Î©ÆæÆf â~ô 5’v@%k1ðJž´®™NžÙEI5±.Z´ÆR5L<>ôh:!`¨7ìXÆ­b †g4Åó÷q ~àÒ;ÿŒ/x…|‡åtãÕþÂPÿPz:m‹lÆ¥ðÆùÓ÷UD-ÁoðKÖ*‘¢T#£³ Ô~¿zdG?+~d‚Ù@i5áTzþî´yáÇ;tVÝN”µ¡¡|³¹º /’6AïWõ/ e‰W˜È'£K’Gº#ó½ÿ®eŠ _#ñËdxÉ ÞÛ·ñ K-9GŠñnp¸™”è¿ Ä èï‚Gܖͯ›Ñ¤ŠMw;àÕ‚¤â/=C½›Ôںļ‰ôØ‚Ð`üŠêñâý¯' HÔ‚ý_6ƒ*õ Õ›œYÿSƒ2IUm³²çÜøÖ]M"ý¢$ógþ<¹õe‘Xу(¶Æ*¼Ø®ZVf2ImíØ&­Ïè~tœ„Ìug¶—/%Xm‰aE ï>`ÄѤ¯a³0ï Ã`ÄœQQ‘oè¦×¶dF[ñâ5uS=³nn2Zí¬~; ;ìzÝuîþX=¢TfŒ<3ܘñæÈyºj«Z3K@ä˜Ãlæ+5)ʍUw\Û²]‰¸rضjî[õïmö+²ìMnÎ ´uÐN‹çz_«|Œ0BËØ¨“šjkÉ»£xŠüPÓ5§¬ÓI@µëÀ”›%8&²O»îóÙø~œŽ\))½Ç'ßö´eváñÇ+8øB\ú5>!<Ÿ?t|¿ÑW"çŠ`”åkÄëfnC`IQ Ø·Dö^dí-Xâ×ÃÐä²ê*â¼xÿ€ºè¥óǪ›áºp]å¸Ïgü(p[§Åx7Ý™;nÚ{P9Ã]=Ùmèºkó€K9âæÝUÿÁe•Ñ:=ém_Ø%…™Ê[æ[3 ÏZ¥xÐvý:¤Ìí4¿'5•Ïü° , òÅr9¦†ÖJo|µ`;È}åy £|…s[Ú`D²€¦aHº°ñg‡ZÞažÃ¶Bˆ¨×·ò~ÞSDìÌ„<ºääáGž2|‰´®F|Ö”ª‘½/Ê'£²m¤ëÍ“ºóGâ‚¢YËÐ)*íyD¿¢?gU*âþY²²M€Áó~f××r^PE7 F}ÐÉH3‘¾7¶ÕW+s¨å†(V‹ôfÕl×j4ýÁžyÛ~@€aÃÉJg ï€j4s)ÂbáMøÞìûΞHX\œ&4'FÈù%¹‹~£í¡å¸]»zÕÈäÅ:⓸aÞù™­-QEêõå¿°üº"lDÉé.‰‚K½Ï .v³7ÿãË‚–“V}º,çR-é+ìÁv½Uè4RtW `PεÿÖèc­îßObÞÎú´WÊâÁÿOžQk°~ZÌøuÒ.ý”@5mÄšØ:O d-ÚaÐØP^iÛ ~äÖ\{9è ­ÊvUA+¹-äñQÒk©QßÙ‡ûNÒîÁ78dŸ|©7ǺsÊzìu.`”H9ÞµH½˜Ã…HÙG·Åb#âa§j'Ý7±Î›¸òÌï™à‡WѳªÄ©d ¤m³ì¨îo ˜¢‚Yí,P+yQÒÄ%Ü[T¡½|x©I Ê^™Y±× ]à-ÜטØéH. Ì ÕnõŠ‚]Üdÿ»û×`ë/ÝÂ:gÈ¢²+<7±þ+ŒJÖ”ê³+%/FÚOÆTÜlåµsHŽC¿cÉä•qb| DH—!%zÓˆËH·ÚçMw÷¿ÐÍM׳opÕs½06ò||â¹Æ¤ðe'íÕ™sÄ;œôuw wATÛ Pì\©$\Æ=Ÿð1G3sWŠb¦Þ0içYͲA×r +ŒmM }]|J4êŽóš¤SDèàk¬¥±©c‡º²öï®›ù<$b˜uugœn°ŽN?!'X( “¦ñ hwh¥kS c‘Û^XŽÔI™¢¼Ô÷™œ‡m© ÓwÐd:ÑȆ¦!MjšÀ­¢'¤bžAGøÛ§/ù‡__N1%G¼XñÜô0ï406$5‹ØýU4+˜’®ƒ]¶_‹ºSÓ·^ˆPÿЧu}©ÿ¤vt°‘¹7NrhîÉtßLa=,DøÓ¾¯^;`>1:ö|¶§†zx(Ó<¯YÖcoíÖ èaù.n@b“ŽN;›£+#…šLߵЀ]üÑrÉ=²ó5³vƒhÉÒa6i¥r\Jñª*]kº¶!Ùíy»ö † rÞFï²6Ý!^aE[;©ª¶¼•hmC»{Îe›Â©MœäIgü‰Óôjåz΄u†?T¸V¼ü× øò\ÉÅñ`ob÷gç¦I¾ÆnçCâPû°êEÌ|pPd‰Ï;Pe“GïãúAÍL õ#ˆ¾”ó V»}˜Tò¾+^‰ÅSg sŠ5 Æ•µ(eºCS®ÓÄÚR÷^ù¡ëÇÄdÑ E'ý–|J’ñÑK{Eˆ•¡{œWN†SÊÄÕþ k¦ëWœÌµwªy(K÷" Œã×ù“ŸÝŸnK’^TÄ÷ Ãí„}ØÙD×íD=ùëÚTˆNÒî𠺮r¿O¶‹*fZUÓg;të×Ù«Œ©KÒ‰#XêÐ/è`Çn°l_別¶ÂÎá¡áÌ"eOºÀž²·ÿóx3#”~Ï÷:Tó¦Ñf1‡f>M1ŒÃù5ÎåÈ*sm ˜·¢ÇåcIç£tÎbÿ±Iä2ŸO*c,•ã§ŸOz ?¸@¯;.“(¾•íï–ˆ•å/lôÔž“¾¾ƒSØ_ÆZÍþRF xÏ@’çØ:wnár1_™_ôȇ¿Xšñß借\¯˜Òöÿ5æäÝÉt!x)9E3o:”pãŸÄ©¹­˜"ö)t¾ŒÏ—ÜÚrjÆ0ÒҨ̘nU‡·ÜÊ.öÛZwÎÅ¥ûG–»óÖì½.T‚ò£.Q;d¥;ý‚7ü-Vû¸"61MŒ–%z€ë ýîvvF=§v^{C>‘þS˜ ¨ëøžT5må…UT‚Êñn+éz˜Î#ÄS5õ‡zj¥Œ{:eÙ ÝfEoÄÔõíß-4 Pºq¤°XZ ^W•QÂ$¾¾®Cêèíü®ˆk: nñ΋\«é%/'3¾LS•c³ø´­%¯[4Ý[šrÿÜGIÜ‘lPͽÛã€y’Öޏ’_ŒpÍ“¦6þó³Ù©ÑÁæj©{ˆƒl4~Æw[.U`‡œ8?† ž±¢´¯ƒ‹,¿ö¸É¸eÓð}f ÄiEMfòÄ&Cb¼¨Áë:'иc'}4›ûþR•±„vpÒÿ›q+eŽÍòŸ0˜ºÍjØ~%ölsdøíæ“SBÅ´ø+´¡ÁÈ@’?.e; ÓÜçÀ\ã³¥†Ñ#‘½ÝÙòÖŸDå5/EzÜr/‚©ßÏúJ«qù#)ëtZ‘Ù+eÙæ±³ª¹ÍwvØÓxq-Õ[Ýâ .sï›ÅŽOûòƒÈ«hÂ-íèá öÓ«xD-.âÓŽwïÂ%b éœbÌAÁ‰­gEó"ëýê¤Xí#-?$ăPªÄüÑsp‘QT©ïää ºî"ÉÅ?€fjÑ~rÉžh; ¯Obµ:d'c÷Å&T­Ìcý#'Ý×àO+YwB“E|ošÕ*vÒûüÓé_dwm8ðâwÊDouÀ12ï9|çï#î'8°H©2ÚKzC¤^sȵ}¢ [®õ1X*ò,ÕÏëÆÃ§xG­cyÀa¹Ê¾éMšî+Ïgi«/”ˆê{D…Ô4IJ¤Û8q€óÀì’yj=3–»‘µùY¸,Å>à –O¤»ÛÚéj0»gž²«Þ‰¿jè`Ê!i½IÈxõ²,å êØ­´ÛFÐä_ýeKK4 iþ“(Ø•LW‘§ÜÀOu‘ŠC¢ëlô ÎþÇWg˜»mßL(u¦ç•Çv}:¯~Âiñ¹xqÑŽŸ‚£]_µƒÁ—íZ–¶YžÐ™h$XçF­r´zÒˆ${4=rÉiÉúÉ”N"û®NÜrÊ&SV&À¹žÆ[weGOg,7Íí,` ­«ºŒÕªf ë͉pöýÏ9Jî¢*s.ë±ØüHÕ­gïí*Ó*^õÕÒ÷!ª¹¶oÖ£Ž |&Q˜4Úám†"ëÍ#Œ+ ešgÞ&ù&ÎzAôíu"i1do­¥­Ø8ùKþâ='Ùƒ3ÕÈŸ0ßro‘¹}ö%.VR¿ÿGI)‹?/¶ÅâÞ[ˆúß•NœTy÷L›™ƒÒ·Lpï"ñQåɇæ^fˆä¼ªcu÷>L›ïy©´²ýÃu„‚õ8—Sjœ`8<°,G }mtþÐ|¸g†¦ÕRÒh9°ÐQaÚ¬rœU7˜·öi¡ziOµïJ(þS»Œ<^Ü;êí¬P¡úŸÑo€Ì•)µfù¯@*œÍUñÈ<l°]ÖÐþP–mœiTƒð™ðP™v 3´±qpE‚ºu‡bgˆÊ7øüàBÚs5ꙉÆK3ªE’7eìÅ#8'ì7岟$$0Ò¶c­ð»úEûá¸ÌB ÅÉ¿p¢Ô¬ÕÈ:£Uæ~&Hú({';q@›ðý耩µÕ®Z˯ÎTcÛ^ÕmR¦—„dûe¼µyTÄËØc;{K+ݰc”Õ AáÏKD-Α[ŽµÙÆÞ7å*Nýrÿ?´³¯fê;ýL‹@ëÈ·èž7†½H=ä†7}"!™Öv_í€yãN*ùÙÍf¡‘©-9øã`ý¼K„åÞÕ3@ÕÖÌÆÇ2µt¨ K”0Ñ3n9‘™šQyÌŽNrÆ.oqB=ñÙ§¦Þ77Ùªn;Exï‘Ö@í Ý»®B“i4—rê‹‚ÒÃ÷«Ž˜¥ªp“ ò#t”ĺïÑ w;¡æ°v,:ÿê8¾®´Â†ù¥ïRØ!)ïŠÏ¤óûk¼Çp?-µ†Ò¯Óru¼¡Z¸ŒÖÝ”Ïî™ì¿Žl`¹…XŠºC¬z•&·Á›Ä»Ã©ƒ#:¾0ª^x*õ‹¯Þ0FúîK´Ü »ìs^õv&kÊpÇL'åÄé¯$üî½öÄ3C­byj+ËÅ94™¢+µÏ†¥|¤W| ãUäå¸RÛ”–o æ%±|$È×úÒ­±¶úm÷ÙØv·&*;âH—V… Ÿã9'É•­ÇÎø"XªHé.ø·ØÚÔn$§Ô¬-•™§9]8ÝÆ«Ž" Ö“d$dý…)—ÄÞβávÀ®Y숣áï sýHû´ Ù ¥=7ÁAXÇ —ÿHÁvݲ0…B§´\Ny‹¤ö~ï‹e`–‹Ø6“žô`Óá2¡T0“ Þ-.§4maƒq“/ÿüÁ†ŽLÓ-"IªúuËN¥nlžm1«æV=µA›EáÉñ™2RMœÁw÷ZyY÷"f/ð¶x>5{r‹|ËÁoxM2õ79`NWmd#XfÃ¥é3`õÊç³´½¤o)s¿‘ B“™maû^EÈ'³Ð:¨ªWlO%}LþÂ!Ú±r\tˆuo ¢ ‘ŠFá¤t{ÚÔ\2 þ'¥l‰÷OèÔDÐ IÀëù„fxýÞ¡»i—õd,Sp ™MÉÕ}ѱ~h&´23wŠû§ÎˆØ@Ã,È ÓBZ¼3®ÃJÐÍ <7®‚´LMÛ¬lë¤Å7™;ú’ç£}Ø&`ØKž¤"`Õ4Æ&Ê«80v'ù6ÁÆ/|  «{b%Štï1¼ñ"(‰¯|nÄhÚA‡ âù¡ßá Wftè/0Ü(ù!(òa׋)Åò.¾ÞÑ- çXŽç˜¥†ƒL˜w¤rŸGØEí¬8ªnf(™W|»e8zT›²iI •`Uå …êÙCÌp{ùÏ!Š;h>åiSçÝÙÆB’®^^$xWï@G Òÿ†1gg3RÚñ`Ë{ !o˜ÍŠ•5Š)·Å%÷ñ€µoÓœÅ<Òݸ8ㆎ/ÏVãþÌÚÉ8ºn¸ù¡²ÒN¾íïæ”¾8’È)¸‡²^.¦ ~V1AC <©§Ô§À%ˆ6eÃSaÝW…„zÅ“Yg¥šb*Ä~ãÝf%=Æö@CÄ6sؾšA„IJ¦/äÖì7ü†+ø•:ôª²z©°q¸IÊÆh…CAhÐX}­< ™à{zVÙ=>éåEž_é1?@†[dŸ•ñìîʤ±.‘¡ÁA-ÈTCÓOQ £Ïˆ9—jg€çvwÊǦLAÂR±ML’,®Ò}ЕBÒÀRuER ¶ùˆÒìœ[™[ÔmWP«Î Ï LCî,óD °a¤Ã÷¬¥Ãç·ÍØóVäÔ©é<ˆxrõí¯j%$íOqÞšx¹nùß`Ø_¾æ•œÅ£!¤RÞÿñóìÖ—˜\Þ°ä ǰûmÉ “'m…D”Ñ} KÂòÁ;’3ü²YGxÁ=ˆ„KHþº0Râš‚¤}zDøÌWÕ?ßêÌF—4cYv­5I*„« g }ªänáÕ" æ/?­o"An²Zþ8 Ú?ºÊ)å׸ž±0éuÇÖ¶°*{¸%rüö³5ÅG§Œ‚î¿ kÆÄ$'Ôo¥ö†Œ}Ú³i‹¹fcôº`RÎ …b~C$@RaÖ ¬ôkq1Mm@ýŒ 4uÛ˧ïÁoª-…!©ÏÇdߢUà|á;ÌòVÈ“×93â³|,'î¹S|:„ÿÉ÷•oÖ/怭êß+ x¢¢Åý?t‹”GœØ3  o¹X“é§öz4 t,ËÎSVrÎN¡…€KÔù‚¤â7I«Z:?3bn¼Êò :˜î-(wKP>e;hWÚ»R;=´’„m¡V‰2È}5ÎW…É` ãÊæX}Ú3»·µõó¼ÓÝ*¤yFб*ÕaS¡ˆÅ£šÃÒkÖckYk*6ç!uWÄ׊ò kmÚ%„–Y“3ý®º«ÃÂ5ZS¬õa—ƒ²vÜB“L/™—ö ÷”óÎ4Q1á­Ý U¹=š² ]û9†l…ß?ê9ögû,B~Àtw×j(¾h?æ5á€Luª)޳PÐF*ÃU¶¸¹LĵŸåI·˜4J(™9}›I»~zñH{F+ýWíu¨Ë jfŸtv€¬_¾LIˆF€5®–ÖÊJDs Jk $.ŒÖxˆyzÑûØr0ÜÇzд ‘ŽÝbë°Jña‹¤°½(´M±øvûÓ‰]˃Úfªdfp±/Õ/*Qx@þ 0Xžã,¿ï ¾bʲÄ7/̦ê 5q¦xl®€xK%¢µä‰³nŒ„8gÄ ´Ž-Cžkв·RûuœYЋ‡KoKn™ðÛø§</J)UîEØyöä´zÂeöµÔÓiµ&r|5H$ªžÑœ[´±rõQmU²3ˆóR…¸`Ÿ™’Â×é[•;ø„6—&¢ÅU]£t½_)S/ñ¦ä>Þ?@°¡¬ ö,è‘ü¯ÿ º±Õ«ñœÔúzb8¨·–TÖƒ´dg,^ÛJše#·ï‹ýëžj£E7NŽiþcÑK³© ©!5¨hвEÛdH¯4n /Æâ¹õ­„¨™¿˜j¤ß=âx¼M¢õÿšØh–­ÚO¬®Àm£Z& ñP¢å;®ëy@4ËTCRm~ym$0BP-¹2kÅ(vä)BJ¤ÃÚcmÅ”b´É3ª6ézàÂp2æšeXñNÿÃäÏ<ø êz%îôÎP²žðÈ[ ¶bw Š) ôŸÓ¹ã ùwðË#?n|0­BO¬l—hœ¡þ)(gŸ èº8àÃë î™{–°E “àu×ãÜ'`<‡RcAƒVìæ Y#XÆí0µ#òAšw+ïÒ—:ÑÏа{L) G@ÌZT~Qê=Îx)8ìA_ã{;| ì$ø8®â ?ûgú4`tëdQ: y@.˜u¢äØ 7(Œ ‚U¼ß*꼜\‡}ܘ櫅שë#03÷nðŸ9 øÈïW5?)e£ÕICìÿ’/IÇw[Ã]M4xc®ÛM0è“íV Të*D¦¹ÀŠØe[»‘¿iÉ[Ø”ñp Ô„ª•UÎÅ1Û{¨-¢&A„<àÇ!çt½\s­E ÌäžÚ\5‰çKÛrÑk׸÷…¶¨i"%œâ:ÓÄ]ÚÖjÍ.{›`[#`„Î?V°>:èn ÞèÒ$·GàBÈ?†”Ÿgyîxl«W€SÈF AYœÿ#ÛõxµŸ0çAÁiWköÓbS9eПk>îÆòNDÂÏ3KS±C™MN` -ÆÕIDú.öãð¯îÓxÑåOw¦Þïƒa¸œÊÕs–_9º<Í̉½™•Û¹ç:_©²TîeHÑãÙŒ• ˆ Ã&“±<‘J•“ÄÃàÂyuûa3X•ôbÚò]¯$Êl çM‘³âÊ Nz²uëP;"3ʪ2×\©&ï˜o¤¢Ÿ!p`ŠÅÐC‰þómìls;Ú¸è4¦ñ§¹¡« –XÖ(Ú} iÎ)ÁMd¢¿so¢1Ó7™WG­f̯”¡¹ 2œ‚Ð>-»ù×^ŸT'A‡l$ïC2íÈ_N˪…š°¿¡wŽ/«©s3Ñ0åHr¡^Ö‚ÎŒÇq"-Ц$˜ö.ˆ!¥ÒçÀÇ‹!t›ÇªÏ “ÝR¨•Côçñ-(z|y¥ Õ~Íà»Ñžz¸½ŽÌC(7ƒl\.ÒÓ;‡?ïÚ0 ‘E¢ÑÏ×ׄ)1á·A¬yÿ7+ÀO¶^5=7 ©´¾_\ݧd-(h‰•ΤUåZ¹3YÔ¡z²c¿áãþY9G’á®ÞLšu¶:ÝõëZ²ÂÐ*éZ uM-cŸ;ÅRÛ¼fó#”µÌ‚2ªWô%úç¬äâ Î£Ùk#»þ1'ÄÌãú£fÈràý›sB%PÅï` s¯ØRg©ØŠga뚘¼ÍBæÎÜazõhz#T™³®!™`9!/-ü˜M]ˆëytü ¿Ò–hÉZk¤œk‰)˜¹Ýÿ/ôðx ür'þÁisÃ-˜¦³W:Q­òñ8fiñ3Ulá¯g¨O<êœ —qþé3ç—†`Pö*™ÎƒM\ºK1õVõÓZþ»6ŸÐ;²D;~,žS„8uá”çÅû·tAL+WÒä¼?}ß=ç}š =L3\~Ë­5ЇóÛwÍ®¶®¢ 4¡$ȾáŒwˆÞ‰Y.[½ Ô_‡Ç[ùð¼ñ&:³‚f¬lbãHXç¶\îÕJgTëÌn(‰È©}‹Ä7›|­¿< ó—KÏxÞ!q\ýu3Ã^€Þ•p}Rèˆu]Zµ²™ß?ÏÇžd¶B;Àž#ULkÝä3‘ËîpoÇ“ïûj÷`b„%̨I];å?˜hgTSv˜Øe!Sýh‡Ôgzݯ˲#[Ú‚ÌÄè¼rÁ ÜÈãØü»óXù¸ hï`¸v‰5 _€”wÄz„'äÅ~%iÎöÒ¥ |Ö/ç1*sY·¡AÉÈÔËHºú› G­ÆþýÞ;U ÖQ¤<¾‰8 Šƒ¾rïÕ ÿDÕo Z€yXÖhzMf`]ìð% q•v?¡Ë-c=è n2¿'ÞjL½}ïôéC¥i1Cµ ×HøÊ³þžX³*ÇÑüWY9;åtüd…¢ž‘D~k(¬‡ÌÀ"†™™²°OÆË³#R§­ÅðËöÕÌJÅYš‰¾<T%އôæÙÊ”»v-µ©¹Sœ›ˆ·fãÿM`m@•9‡õÀÂkCP Ünü°‘IÆLd1Uëÿ ›qÌ}&ìAR‘"÷+Ò%™µb«‡Žáøþ“AÇr=qŽáˆ]2=‰ßÝ©eqýß9úd¯Ì.•åM?ö¡ È\=á’ÈÔtw¾§öÁ¤’¦ò^±ÔÚòCm”¡}7ûw'–‹†3qŸî¶/Š=9ð‹EüL3CjàãZ?ÿ¨ø%Tuo˜ #ò¾wŒå9ÊvŠ/j|¯Î¥0ØdÀ³[~Ⱦ½‰B•†Á;0ê^îŒÂ^ÏÅIÛƒ°CA»ÊZLã:Èd?CœJ NN>q(Ä»ö;ë¿ 6ü#[ŠØ5Ù.6íÀ©Sô¾%J¼Kv ŒŽk±ÄeUÃŒ:|mÚäÔ»m³F*­$”EéÈê^"YáM=8¼ýî{ÓŽ:ky2i~æq¿î¹s݃å=–Õ<š»BÍ3àÁé?ˆÜeå÷ëcêÓ‰nضßNÏó^Á$güœ¬{–y!‹{BÙõ7o>¢6ŠqÊ@q¶±Þ4ô¯Ÿ/름¾zÀ ŠÛw”ÝÖ¡ÚòaÿP_ZõδIÀ ·Ò^ Ò3&y};a“º£_ÜücÉ:!=»ùñÝÈ£|Sy.ΤñÐ~(²(³ 5Ýq^;’I;¶ÜÈÁÁÇ»ÓÝ?ì/¶¾ò¥§nÝî–j8 .Ÿ¸d(¬lûÊr’¤²ûB ΔgöÎ[mˆs É «÷ïwÎ⎫Ÿaú¢Ýì1{ååkuÞ®»å̼céÜ÷W[/Ã/”ñø` !sš›tª[|OÿººR ª”‘û£žü•QI–GYË™]°â‚6_fÇVPm§«AL«e{ÆùÖj~ýM§ P0jÅœ<Ô^s5™¢ŠÐ޽M]yC»aUW§gkWQ¨ ÞëC®'ˆ®ÖoªÊÌjttüÝ|ÈÇ ¢*Êñhß,8Jžt?Ü1³öʶ–I}ÐZvMé¶o;ïÈú;sÕtjð˜ïëHåÅ‘DLSÈîDi›ÏŒ|<ÄMÌ2„°õª¹´¾hS¥À‰¾d` ñãu´³K.ýZYøç›<=0Ù"– ´\´tWc16g9åQ«RApSÁýýz¸… .b[h½ê‚OTEý~Xl¿-@x°Ä4^E¼ËŽÙ¯2ñÝb#Î (w6X­ÛÁœl375»‡F«,Ÿ‚›ª´}–…ÞN=Œå%Ôâ«ä¦MGËúÜ;zêw*æXçë³Çuœd›5`ݺêÒÛ7€Å– *ï‘ðùAæ:÷ÖP#1#èðãµÍ˜aY%<ÎYx@U•¿ãñm×nˆw³Órˆœī֤­ ÙŠzKbwHÂËüa3 X¯äÔùäÒvW#}f4ÚÇé`00ëiM‹%»ºÒ=*³PkHIfÈñXëØ÷´5ë/ï{´Õásc“¤ßkÿô•õLž¥8ÍçE’’m§s&Ë ›fbbF- ŒëBN݈$®ö;¡„`PóÇm¿±÷4Y¾9¡š™[4Oß3´7eîÅî }àóË0B™‰´Èœ¢(ÙçœX•g!hº×,xmç† ×d„žæHÔQ’¾ÜæXEî›2Oùïö-c´N‘ÕùvŒ­:…¢ËÙQŒ»õ$ánWd·:öÓJ×Ior©B¯Öœ½fí—÷óKSÉßLjHÁÔY;¤4ŒMt-X>ç-YûÚvvq;\Q)©¿§=Ðhôji”Úè­7Ÿ7´EzÊ_g® ¹ÃžfÔÚ?=l6ЃîãÛá2_«˜×bf»Ê!†Wµ  ävЛešv0cN;¹€Ý3N º{ ¹'êäâܘ•øuÌz Á£Ë³ ToÖ–ïî?ަ&´£˜šÄþì8ˆì™Nh,° *C™“³yS^—yÒiÕI%faj³h ø_2PEÝ–E{‹G5ŠÔ_Î ä% ®‹%Òm]„GÕ¯!ºŠ?“U(7ï«€ N⤥ÜÓÖ¢ºAÏÿC<Ž…»ªÑd·1rÓ°˜ d«’ˆ#f°íäC ¯Ü8<ô޲Ð,ü /€éÆì'éþñʈB›¦2ßíTÞøÈRìö­B´üWk÷ë'­`bãßÇ–-EQTÞ¯)Öu‹©—•öcÄ|Š F·I0KŸikýxEÎ,˜}1¹^ºƒ²-9©¡´È@”S+ôkÆ…Ñîo/— ¬ùí’¯¤x•K!ZÄj’“9ÔÙœ‚ÇèM&%û¤H¤‰.uëPˆŠw­á¢­>ÃA0èȹ,LÅ­R–qÿS~¼ç3ÕßònwM pËÞìĺö¤Ð@ÇÞýW‹­š”¸ºýçPL>ž¹·ÔZÃYX÷ñR¯ÐÝâÂ`ôck,†º¿äŽãú–¹AÚ¯ÓNˆÀŠ…íŽuÝ›ûv‰æBɼ§Þêp¿0‡KA×~R¥§v”÷@ñ:‡æ”È]3ÈV©žG…tà8U¬!Ä S6Ø8 IÞ›VµçƯ"Œ×s•ðüª›¥rgIžžFq@æ`!ßàûü¤{)øHúóhwr[ü«6þ+å*èÊ9DûôÍ”2QÑ®°<Ó®¾ÆC^Q“Ý#³,cžAciN˜ ï–Ìþ&^•Ã^‰2O+¬|y“®½”nšòÏh`o#Û`I‹ì™—Ý((ñš+^°÷~3::<>|¬¶€RF¢.£jY‡ߣo®@v§Ç>á*Qz*ÁH5KKÎrfÌW©ü<:¦i3El.Œ`ðÉo þc("ÔyiÛb"4Ù£Kð€øãøEÛ¹¦6ª1|ðÚ.0„X}F·…ý›0i²Z£LD `ã˜0¡Z&ˆ8ÝzÒ™s`nªášj€äñÿž[]† à{8¸N1ãÈ­±ê,pÝí@¨äe‰N%ûàšXaV/èï§r{š°åáˆe×sñé6šåñ8Då,hŽZç§Èº õÈÖ¿YØÞÞ‡fŸ­N¯ Ìö‰R˜‡3wf>?× ðœuÎGzbIXAÔdàáæOe*â·¹¸Ërêåq¡Äè…(-Zâ' .µúӇ⒡ {ƒ‘±%,v¬–=ŠƒB7¹ªèÀü;Ae²XöÝ+ä3ãHÓ¤ÉïmÄ@§fód„IGÚ0G•S üR$Ÿk­‰?”Wõ›¸£ð2ß¹HгÛnõ^5^z+ží9“롱ìêF–*Î$;­q¸§ƒ½0õÑ»1­ÛÚ”"ùiC.Ÿˆ¸ve"H!€>Q<®²õøJD9ÔyÞälò/ÏMýcc•óøÍ gÁf–kYM­fV`•«ND ÄÃ)×®-ËUÏjbo¢(csÆ€ú…#‹éÍ*`Ö© |_uÚ(^bP?@ª/[°V¯Oëù"'2¸UÇ翞r›FWO§˜¨ƒl!j6c­~$I¾­Òx6ÐáÎÛÙÍXhÆù|±ÿÍY_ Ïn…{?"RkŒÇ¾=TXÕñ²õáí)ÅÚöš÷Ô›f¨%)Òw•Ÿo ~™B)#ï+¯Ô†4_=b{E¯mÍAÖ×÷îžf=îÕ”Vo⺿è$ð²ûvÞ"eÄ|7pFJP˜ý_2ŽY½À»ŽèKC™ÔÆ-…|2â"CÝWo§fÆVÔMu{n­[&ùÿ1ÝieÅ[tÿ+͹ÈhuY "9Û´²1‹Úè” RÏFªùnÿUW»ÍßÕÆlí ÀëQ“ð½ÑŸîg !G%9«Ê‰âšÖ¾·„Ý‘=kð˜ˆDÔ2`+_1F~ƒu½ªf\©mÞ_£ô\Ûè\’§°«qvâesüîÈ€ôå>düæW³8=о†·€YÖ«ÔÄR)»ÄPîòé5aÄF\fZƸýV Ѥóù-{1¯s&å}<‰CúŸìW ,ƒ)žýzjªpÜ— 8ÑôKŠ–C#¢†>Š·aps#MÈ3møÂÑ?HR=±Y>‰ZçÎÚ®uHF¹÷5 V´–ùË®èÑ=øáØàÆæ$Ȇê9l‰ûAŠ»ðZ%Ì9Hƒ@›}|áʳ¿ÍºhȘ1ªη&§Ô8FD„å\Ð3«“)ß›ïˆ?|/ñúµèÐüZ8‚e‡©Ón¥Kÿù-(²åîUmïyÕˆÓÇîÅÒ¤“ÿÊ®®…>nb0]D=’ê‚ý³Ë`˜ IvO8-´ã3¡Ñzδ†úoLb€÷‚#'a»ÍËÄ¢FƒbjÚîAí ¯‘Ý!щ0Ù2$˜4âÑFX$r§‚ÄÏÝÓ»—L ’lbY ˆ¸f›_ Ú;®‚ÊqÁ6GúmëÚ÷£¿ å…S~âbßnCFSÅg‚"ß)N3ê>‹áA¾»ýO“øZi’Õ öÒòhà Nùˆ [,ÓË-³7ÑguÆjóŒÇÊㇷ5ÞÃÈ .Ôo­ØŒ?!ãDÌ$QÀ4.Gâ½6ØëŠ'ˆ¥- Üú0¯âl›Óƒ.CïÐuž€ü”A"Å€–¬×þ|e-Œ—Æ@ä0IdA@JÁw˜‹jßn¶TÅB¦œÿ°¹^„§ È›¬ŽbV4QHa뎽øÞ):’‰îz÷0#O˜B}Vò¼Š>(ê£S·RUª’¿|1¾hù0‚»Â¯7û1?¸IVDà˜ÖA7Þq«È’!¢µ]ÚóÓÊdf¬ÏÔkÉýñ a-ríð!‚@ey<¹ö˜uù^SN’a»‡LÙ%÷ºðï¼¢‰Ÿ‰|ݶ;_¬#¬°ðË™œUȨ´[à¥8³‹ Gr s=ˆŽñº.Ò3T6ñÀ]*Bj±Í~ÈqÉÚ&¥œš¼4aù2;õœÌ |Ês`P¬§=ß7’gVYGîCùÌ—™SY L0ÖRÜ͹ÃpÐxëhÍ2äïŸ8\?+ý—3²SÁŸH#Œù…ýutW|‹Èi&‡¬÷&Hˆøô{ÒË·FyWKÜ䎴žƒØ´nÀ%_Ò"7$×>²b©Ž/c« Ò/¼¤RIü8¥]ÈU|ë}À¨%cåj86ÉJixBÖóŠ»y/zYŒu·®ªÁ$»^½›£ÀX °ßöW¾„þ‡·“ºqbس€Í ¸Ê2ÒÇH*V……KSz‚Œ2W²ï$][ÜŠ‘úïÏ% ÷ŸkA¨‡– ¯48ZÙ]±$ÒÕôuÇÝkm’„³6;‘ÈtCp²Me% |™r¹½0Ú>@¸0|JL¼à°ž=óWG`ˆ'Ù"2ñ’ÐæÂŽ‹•K“ëºh‘Oí¶3jéµÎá&q¦™š]üOPb„ÂbCçÏJø¡Ì(½¹…ŒÇ>üڴè$¬ºÊ7£¿‰<ûZƃç=Ó-Z1•‘ 0ãï²ãH7ZÆ4üëàSÖ=आ®‰ÜSç¹kU(Ÿ×Áñ>Äê#â ŽÆ«.!"èt#ß|3Ke–àÙýüçv¶\Kˆ¨Ð™bûqª\»p¸=)Ö * ƒÄÔ%0ÞYl%¹œMþúy‰iíQ¿…GÈ{(”ÿˆî„/Þê:oYÅ Ì-ó͵½Û×K%ƒX8ÉJ´ˆŽbˆêì†nÏíÐ_ý†“&7µTȸ‚XtÑa^L<ásiÕæ‘'%[Ç •.N™m.‡ûï²Æñ›AwÕ5ÂD2W“C­Ð]ÛHV¤¬¾ë󉣇Ø+ŒµúqÕVc u3Û¡d®44¾³—§yïåð2/•+Ú9½Ò“Hu*#.SÕ‡EùXЛŽRrH­'—öÖmwŽaèn ØZC=û¸MìÀ(8†A>{h£0{Hk¢V‘ ¢VƒDŠANjvê^õl®îrð£«UAÊáB³ì!iæ#RGËá„Æ—¶dV¦ôΦò>}Rè7 wÂ2T‚“ë7\DäƒN;;qíÊK§œ’ÝI›M×¥Ÿr KÔB(þõþ@T6Cí ò^`†83P”߆ï\?U^$Ùè+a38å ›–EŸ‘cgdºê A—ÏF~jÇ1ÝÝ#±¾~B†)):c¾PC5D©žµ „”ßvÁ ñÚYwn“ô˜Çç/øï¤¶ê¸•ºa8uŠVÔüþÙœàÔIf%H÷òµåé† v-“µ«b¿£‰;›!쨇п§ª ¦W3®o(޽¦ñ;•¨°tÖÚ|%695x.S#[^³=·äJ#™‰^21þ¾¸¾ªÛ*ðµÿáÆ6(—(S«‡D ]C”þŒ17%ÍÇè.ç–o8]·®nÉö4•’ªÔÙùÕKÓfºhàSppP¿)AÍkø2¹”6›O¥F•ÚjÛLb²J4w |´æ]ÎßÜùI'¿Ð³]Jw*é%›Ï/m«E~êQa³¹ÇD @†Åêì[¨R# ¬ëøàþrÓCA ô|EÑ:…o"޼ï 5¦†”õ"ÞÌ»ÝÌY5€³P[ã&ƒ S|Q}yÿÔ£HD'{MqïhÕ‹s¨‹HkùUµô4óBß8½±ÕB”Fx7ëWiYÑWz—bqiÞDtŽÑ\Ÿ5™”€aÖ[?ƒØúlJ°§î¯ï&¡'\«µzõ•ÈÖóçQÔ€2㪵¤—óÖD‡(^ž„Þa…$ùóVTÙy%—‘-HVqÚ^(…Ê/pçö=Ë/c¿…»½°s$Ç)À©ZnÈVÜ +SÇ5ÃBÆc&ŸD »¬ýzè}ÇxrlÀ§æ¸B+lÌËöE󜫵ÆêÑXhc}öëØüNå6Ë$¬}”‚*Ñ>|7L±w j•À]Š07× W]m¶“‚%„éë43–β†â?x @B[Ëɯ›»õ^÷µИ'Á,*>kx(¬>ÉÎYÆà ¼†‘§Q;áñT]ôú©^|u»Ÿ0ñº¿<‰¶²ÐÕù"0LF=0×\¾¶É4ÓÿŸ=—p g]7Pã°ãµö]‡·ô{FÖèv—,Í—Ç¿E&âú™{Òº‹Ñª°*£<>êXÏ6¿¤ƒ>ovvÿZm,Ï: à³x®mðЙ깚@dÈG@4)v÷&ÐbÛ-l–n“ºÉøÄg>I4ˆä6Mê­…øùõøPsrÍDÇîæ‰þ±k°.IÚ_2äžªŠ½Ûá~0A#{ß.hë-e&ª—]¿ÁøKP¸"¬’}ÞX£2¨Ì²W`Ãá’è2Bñʼq_ýyóL×LjÌ%ºâqšV󸯹~ X;l¯ÈõÉ¿r>!læTbþSÐÊèMa»àµ@¤¨ú ÒL'™!øz˜ËÌ•G¦ßMÖœ½£ÜßqU)¬ëáMê?¡»IñÞ=¢.ÛªíÜ/Èø)©Žìòîl… ­™–1Gr*+ÎÚeyÍCÅ1Œ 9¸› áNì{a“˜ÞsþýËŽ8S&‰¯”ç[¶·o1LMë­S©3éâz@1ÞðÑ&wð SÇ\£z—ïÿ¯ÃjQëüÄXh¡hÞÉEHb^3 Ñ|?'´7¨Ežæ^¢óËHàA›¥¨ð*`¶ùv›À„×3¨@±„øÄXÔæ³*_ÍÁ¹çw]?ÊG´h?7BÝös žH—Y¹÷ÀÃu™*uN9ÙŽ&Bfë£*оˆ;•_N‘Ã\µGÐjÐÄU±<Ý31w¹CQI««—a…"?RÔÐ.ºtg$‚ýüÌ7%Ò6¸Á’€}dõ¹q\_a„ýº|3,"H(8<÷ p¿g]½rˆ÷ ·tÍà˧ƒ'½(¿˜ j'›+/€ {ÛKÉ$X/ÉñŸ™w_Ô{zöuÊUTí8û°{±Hâ"«¦ƒûËå@”öÂû'àm{±ø}yƒê“7†ËáåÍY}U¯–ëž™«š&–s{²{@˜HãöœÏµ@€aoãQbp[%vf|ÀʈˆWeB Ñ'ðzXNë œxî‘Ra4ù,ìKË~-BÚ™Ô n Æ0 rúu×ÙÂv?ñ6 E–egØ'a„º y ªek6•Y–žhh쨵Ž<Ëhåˆ,©2ª­b3GPòªt/qŽí}(ØÑRmØ>`ùKUÕ_Ö\lŒ4ð|aÎw² ýjz\­µúY[‰,âäcBúWÅÛ¿¯‘Оqª»î0Áóó‘P•¢¤\θ /nç9Lm™ÉT~`y F»õñÆh*„·ïï:ÃVõáà•·µ±ð$DÑýíõ‘'DàP¨I.åkŸl»9 »Er>8Xp+%«*ù°BMoëäiÚÑo©å·('©{ÂmÂ"Ùtç˜w*øêŒ\H˜ìÅ=ùkiñ3Ð;?ÛrÕròØÎ`(QÂh¤”/ÇhÏ)PÍ,9š Îeá\ÿ˨ÒÞöy/õž;bè½Ê<Œ·‚tG¸sªËPKð±›]K&´ˆY(«L®7.!•·öo—çJÉ{z¥ Ñl o°ý³ÝËg"ù^É…‚ó7èO7CïcN–aFH4gqïL°£2Cô&µ úŒ$ƒ’°NFx òìG09Z ow'n r÷Eùè,wé\x Èc_¢›?˜ý‡iÁ­ uñ&àè'úîV ±óP‡xØ^D!Œª?} O‹ »Ù¸®âØÛÔòõª…âKª89JAî™›ÉáÒÜÎl²„¤¢î­kNÜï3´ÑœÓA[µÌóChÆ£ÓÚ†"*qRps*TæÛЬé)#'¾gP+–» ; òŒä±%&á:ŒÐ) PM#݉£L½•ÿ"í#_ÀŽé•áI·Óøc0Ur¹çød:×!f‡ÙÈÕJ‹}Ÿ x3iŸ+.ø5¹=WvÖ:í–A0{u€+RÃ#<§œ5ƒ$ßñ S[û'È%pê¢ÌUÎi–¹\YºÓXŽ}ZYÏ‹Ræxó¶ô¼ÿ\p}¥¶éÅ,ÜãÕaãHbŠÁß/#†Rj(Ê.-‚n²¶ébÛH'yØ»*u1Ö²×í~ˆèKYËÈ«•}ñ ìÙW“µ@jDX(h¿´ì>¹i}²Õˆ˜5¾’Í0DÅ)iL¡Í–¥·h\øÃ)œÄeÞF0b;|WP(^OÖ#§ð”ŒG»»zÄmc—ٯмS¡rrœ0ÁLé7èæÙÓíµE ìÈ ˆôJX³ácÅù _ÿF.árO¤'ÙŠ£¢•oüäïØ°$šLúïLWáp/ŽÈBýè{éÑ‘ëÏ8Gá&@)Ìí´ê«"ñ%à0JuçåN\¦(ÖF×&†gÿÞÛ8e0辂V¹uĦº¬bµë8µù£ŒX1ǶJïÊRûë:Õ¡þEz×ïhÛ¢Ýb|ïctë´Þ—ƨFø,<ˆÚ‹öQœá¯zχžmžOt ˆ‚´àž¿ª à¶K¾PƒgŠÎ¬‘þ“a›Ï››6wŽE‚¼rç–Zn1ÎWî2Xê¿Ù~Åô MŽ£IgÛzqÕ/2R-Z×mõ<:ŽoK²?Âd;•º·‘!²{ø¨*ëÐÓCŸ8b›ÅѶº—O’Õâÿ–¨„ªÂÐ~1GOUýäµ>cœu°¼Q{„6è‚7ÙãÆ)”¢¾ICSp]ññ®ùOZ¥@óRíD.9E&j`¢)ÙˈEC„|0ñ”¸ÅG'L<²ÿD%U£¿Œrå‹#Ñ#È#ÄL޵]˜“àZmTøHrT3kÚ®¾y9 |^{8ý¿7`Í· ÷pf³I»½*”¦&•rð€m-õX]ÑÇëûx#õ;ë!ÂÓýЉ™¦™NâqzI˜©jŒHÂŽ{:OÍ7†L)ËÂå!ŠbzD±|ègKÖ›z¢ŒLäêèbM€rÍO9lµ= ⵂ¤Òî v lC-ÒèÌ$æ Ã!½µÇ8ù±®T÷¿c»ø¼x*€jóúpˆuû±}ÿb€‰“‰[$ÝÊJã %»%9ˆØ‘8_`Ð!ÂÒbï*?ÉH›”îÓXÀ§ÇþÑ!„,Bš Œš?hOK tc¾Èrœ¿Ñ¡‹ô>?%èWÍVrÎ骾ÃÏ·Äýåo¿\¹Ù¦.ËåªÝĶßÊJhQhËl®ø Âêœì|ëR{dëÒK½«?« }=ÉÑ2¶òƒ¾„¦êX°²I5åócV×ô —ý*¬ØV/9¦K Á&wÅ<´¦õŸ Så¬1ÜìçÛ%Þ‘yÀ›‹<À±þÑÅ8(‡ù܃V¸… X³«ß /͹ù‹JÞ)’/†ÀêNDè®F;¸†Žõa†f܈ìC—­T­ŸøugÁèFWp¸„ +¯ê¹Ã÷ˆ] é½\ã†4;’ÓŸi4‹··djeºZ7ãð,N˜.#O«`hpsÌtseønK¹Ü–c¸€r|&=¼"ƼW#MXm©³Ã$u+³jˆÛãKÙ¿Œn»'5²‡ZDï}¯0Y`@¢: ÅÛPÈXGÍ[ç´¥ qŒ)þñY$‰-—-=ž ý“È‚ë oO†€Œ V9Æÿköa%?IqAzÓÙv\Û´þÅÐéúðÆÊ y'î#ïK½ðcŸ×\`¤ìŽX> ‹VL BÌý_²çl*}HB™€RR›gÒJs²÷d½J(¾óÃb…ÎTú±8oÖäƒ1QQ_/ƒ‘>IÊ›\FÊyÕ çŠääåw:ÿέ8¤\pÛhÚj¢­n£õ‹fL¹»U}:˜lÜ¿Ý"½Ì±§kp±Ås£€‹l*éBÿŠð »áî34¡ Ö-«?X>˜6ËÓi¡òþÇ—•NÝ@Eô"Ø!ü`>ZxÛýÙ7ŒAc%þ'Ljǵ¹˜HmÇ–|äãâR)1˹ù×çŤÇnr`…q%Á¶ÐþÝo"9¦\á$¤rõ6`výFŒÑ#íaíîùX×÷4wŠr‘N³p~é›P§¦,ºd%z¢ÜË¿¯êÜÁ†LWè2ˆ`…Ëv,Ýä1"£}Ï9úØ þ‘ÕF ,§¼Ç/Ÿ·yD¦©¢g_qk¬íc?,†²s ™ÌøäÝÁu¬c½dd®¸éüZ(8³Hñe2}’zº`¸ø¤­nò‹` Á€ˆŸNç²ÇPoÕýóÜ+‹¾±ë?ßn ÙôoTÎÑ$•Ŭè4ª'ò°aá¯qa#yd%»\€%!4a«tZ›ŠÐíÏïHe*L‹Ñ ¯)åÙ¬c¯#äã m¨¢L¾ûÉt½ƒý‰À?8ÈP¥ÓÕàRkBpqäļMqZ‡ÞÊñÞ8Tcjy«8;Ä©ä¼Ioöé¾c*â@ ]¥™l±A™};jY`8ÖîõÒ$ ³ã¢s\êp&Z ¢O¶ 9¢†ñVÛ ì+F:8ñ¯ÄtÉæÊRÙî°Q|ù¦œ;àмÔÜloÔRÚéC"ž¢-¿ƒ¼‘UŸ;0þºÑÐÅÉœœK:šâ2 Å\|H5ƒ-“Æ\*yy;8¡Êø|¬:ê*4ÊHÅ? ÅÞ û3…õ¥Ý‚%–©«ˆ¢Oèj…hOü{ÿ…Ëú½ØÂâ¹rœ‘Ô¢5ß³.À ©òºöÉŒ 7qQYÕkò‡Þ½5Áe#Q(Wêr“ÁõœmÊ3¨üÀÙ`€[Ç…€§ïyH õ…-»"!Öß‹h"{c9œ Xãìøv_¡ï²6ncÓ¶~ç*[±9O¡¼±,ÜË5ã{¢ëÆ®M˜aË ò²8A%áæì§}Ó%׸ …;¡ZMXLÌ@h…"”¾Ù"èw£¹Ê×ÂTGy–ŸéGÑGˆi²éWYç;“œ›üo^ùr¸‚VJÑkm ®ÝÉ0nw“ý¦³ÙËBuŠìèOŒÓ+vØ*¹Y8pþ æ¬QÍ®c6?ûGPsWNÿ=7ªm³7P]«|3ýÕ>Ž—ƒ@ð7! ÅCåv ~ Ø •ÇìÒ}QfïÙ[-ù?WŒ*¿òÐ/ĺb|¬É£{UI+íÇùŠÍDp›ãâ¥c~Ó•ð´$€b²yÆÝftûè}-àÄN€ƒ©×üŸü*~~-%Ú©\ÔÖLJP]x›ðÿ)6’‘c껟—ãÙB>ö*dË´ušó¯rhÔø¹ÂHåOÍØ1áü_Ó¬³ö*°}|hHYõI¹¬Tð§à­Üβ::hˆž¥œ€@°pS Àz— ÌA ŸŠ} Y ¾ÿ6ž›\úC»ZíÉÓ©•e­à=ãö²²×jl…q¶Q*òÐ…FÜåV&š¸^¡Ùêµ2Ðx#jѾ‡«4‹Àøø(åç1+Eë|’ëHË€-Ø2ñŒú㟎zÆK#…ŠŠÌÉÌ*÷>áýÜÿ§¸FÕ×i.Ù‰@Üñ8§r÷•¢ž3 "»7&ï!arÛ°¯›ºïw ¾âI½h)GcìøVg¹JúfüW¼¼oD, NË×¥oà•kÀfÿÄ€›^<àáñFô•'±Ãþˆéåòfãv¤ ÇÅœê×ʇƒí¸t`HRµožP\é ‡yÔ5ïABt3g®¨ÙÕ×wq'¬‡¼.;}r+šÀp> e[u:!N]i„(!i–~kpz&: ÇØ8ûŠýÓ©^Ì1ÍÇ4lÇ{¢¿_zàï6˜_cgäI^â0ºÓ p=ÏÜ.rüc³#S¦¥³¸Œ§“è™~™Ü´ßWdÓëLJëÄ®¶–Ú“%,¼D¨Å¹ø¬¢oŸG™gȆ¶ˆªÄ"¤VþkæY’ØuÏ"Í<; оE(bX*×ûï²K­9©n¥Ø¦ø|[¾<©Pd}h0ØàX¯:Kz ‰u cö~×5}&æ4òä[¿o¸8šä>?—uBmR¾ýVE0qª¹hÝ+K|G(Ê[)qóUÂÚKïæÉ§Zðù›öŽßŽ–×bͬIy5ë ž$å¬Û“†×ÏsÔ ZÜ™a«Ð|¼#*ó……6„‰WË£7V¯ÙlägSHý å)Áƒå+ Tf¬»ã1ÂàÙÈ᮲ËÐð\rÚàyxÁ+[8\²lŸVWí\YíDZ¢èr^Õu¾Ï¸¤Hm´°|À~”@yš˜ÒšE4Å´¾<¸F–0@yÒŽ?’ŒjL¼ýtM}Xí(³ñ² ´m°ñSÔÄnUFy–k+ ›NíÁtМ7¿4ˆ×„¬ú¹´ÆûÅ?­d'UPß DëöX8P‚*i¯QDÈA'Øø;mc Éº¬l‚:œKæÐ•y˜yn)\ÏËpqdŽ¿ÁAó [ ¸/_×®kýÛÙúG³ô&c^Ñ 9«¹óË”ÊH^+פ:X(Âî’ƒolN°©«>‹y¥Ò]z»½ì‹õ4^³”9®$Ipe=Õ»Ú’$ˆÇº–ëQ¡ $e¹MH›–•'ðÃåÝzHF&aûÛ}¤…q<ïu‹×Ø´B_Ù„«¬,ÔçÒt/‰—w¨ó3r[ÀRðäã†+úÝ)“Žœ“ Š[¡E©ù¤d¥Ü¦k8'¡ûA/FP= ØU€j©ÆâNR!xÄ‚™:ã/÷(4ß\/ñ0}®E©ß¨¢œÜL„*E}}%Õ$e ; '¢£ Yó/ 2o鱂§®}CžŒÓÏ…š1Ä(úKcO²ýyâó¯§l*.’šø—üLÍHÖ>ù©¥ ºõ]ž„, ¸Îˆ‰Œ»ÔCkrŽžw×Hj²€#“ÁÍB½ŒÎÍ YD0È4]á-zdnzHfçà®H!ÿ”Fó€vlT‰gÜÕ]ƒš£)ÈÚ%¸rÚ¡Z«Hß2Ýl—ÐBÒ `¶[·x£öt,*ö* ÅkH1åÐ/•‘T#çì:©[ ÚO³êYÌŒ™“b*ÎDé:òxÄjO&ÞÒɰ2_ºZÅb¬†|m–±õ•hBÞ7š•CÄ¢Hô•©Æß£î;.l?‘Èû¾ÂÙªMkûî “a†¶¤áTª­²µÙÅK€<¿£÷TølšŠ—U.‡Xõý'ª%L3ôNÊ¥·¶©2ŸYæÀ½—'¡«c1*õäËã0Rõ/DáTÉOüÕmùØ4z…±²õ"Œ'bãÁZÿ3É6˜«A^l¶J}câq¶9ûÀF«´¾ë´iOôž †éŒ †ìʉa#µ©´Šö%¼q$o×ì) OÈ· X€± yËÍ\Y¨¯ýÕk\}؀ٺ 9̵~èu2mÆ *â›!„§Ësô#´¶4æö¯ÿ&r怺#ø£n(ÇNýx·¢ªGU¢ÌމÐ.¯$à×ALä~´*òûŽ>Cê[>wŒ (%¥0+*Ã/[A”.¿0¯ÇgEÉ•iyÌŠQÐ¥õ9éފ׽Å9f¦2s®ú ‘z‚Ûß >\„OTP`Æf€ðQâYF¦Ãq!Óê™õl°ªú ïLš}EÕ7‚‚›3øk·ÆÙrJ®`Öü ÷ówo1þùHÏûÝ$TSæ\)õ »i¬3¦ÚÖ„>¶€Ý ¦–hþ=°Y_B{â9ß „ýBŽj9eºÐJÜ-àÑ “ÃP0½³ à.m¯káŽÏ6z6}xT_Ïi7àùL†¯ðOð<´aêfÑzµÌŸsêÙpƒüŽò­c¶ôºÉÌ…‘޲!RAiXµ.ä÷·Ýf±²ÈañØÜÿ_ˆJgµ¸8… Ú%É'7iF<ÇMé©êvWr_K¶oYóÏ¢í7X$ºÄƇl±û û„~½øÇ$­þ.Ç®‘q»Jõ•û‰ŠoÒ£ÏõŸúÁQR÷©†¾m*Tç×ÀväíUf•4PNî ˜hÌJu~"‘ 9´VÿS;ÝÑc¦˜Œ4œXLúñ‘lëø”[¶64Rx”¸Þö â—ýÉÃö;s¦Q_Ä×ÖÇPoµJíÃÖÕ\–ÜLhз‘žã$&— ab3ѧ¡1Ò.APò`©³¤#±ÜÎé¶Ž¨ÅbxJðÁª×lΙWŽ™~v6´.z2éöÊ4É¡‡ÿ•¦‚õŽyý∂HÅHÿ̉ڡýq="#Y†Ö-S½È³ékw‹Á4§›×±®ýà|¥mpk9kûZ¼‰…W¸ƒgh˜®z|RÑŒR«[8.g|Lot¬ËÅw^­ñQñdÜh™oWIáŠÏ ÷2‹«Ãn#K«éh·ä7ý–®&ãez˜T§dªRİ!vñΩŸ/«1ù³³MÈ&t àµ{] zŽàõ¬Q6ÉEAkŠå}W $ E’}S‚¨¯/é]ûw7ˆ5Õª”K¢-Ètƒ9ËÆà`嚊IJI¯>`-&¡¾ªH˜iºyjõ èïºæ¼ØúLþÕ¤\–'ðš’¤°1+÷ÅÑcMErÔƒ·eQ¸XýŸLÍi8&1† 8Aã⨠>’Õò?ÏÚ‘w(™.Û–41:º*‚‚[ E‰‘œƒÞ)‚îѯûéæ_$y^=}|FîXKÕ¶ÑÔòÊuMsÚÑ·K8j°±ßu©aÆ“½Î¶ŽÜ(WÃÇ–²ß÷0¢¢Wöòå2Ne€–¾¥@ Ÿ³E[rKÞìRÂF-²Nö1Ñ×VÚùAD=.ßÍŒ„"æú~’‹6žO:ÛÃèâ!{¡qtÂR/PÍ1×ÀŸI cR$› à°x\ŸËúó†}Xgöö–þ*߬í£àà|Ž]rÆ>¬qÅCŽ V±†Œê‰ŽÄ£G²ˆTjœ†ƒù{•l-µ2ÓºvÇ6?ññmH/ðö5äãD‹6õiw ±›a:Eb¸dÿŠù;Ú$HñýrjxSÙJ[Po|ìi qFmÙÍ#¶]/%wŒ™ ·*´„-êŸô.Šû ÛxÛz·¤ùîYPůuÅŽZ Èý˜™/ç_müé®#ɨyŽg‰¿W‘j(b>>Ý{LŸÈ>µ!]M“­È¢ã†°iÔ‡þ^”‹9ü;Kt%mçºÉS‰=ë£ôÇJõQ–ÀRKìД‘?8üb9cÚðèjŒ©YÔ½kþIÙóT©?¥Ä#"w‚Áü?úò14Æpøâiž_Ò|u´°.Õé–b=&€2Œ;ÂFhÕ$²Ô€p~–)'=^›õ ~„?F©õËâв­[\Ü}.õàq/;¼m8NV›°šWÐ]“ú¬[t|íI oÖ„XÆáh…+7¥i?ðœ8£ùXsÆäÍ­Œw*ÞÉϹ¦u ®Ö1µ­PŽVŸ áÜøG˜ ÚĘû‰Ce±Ë-3²êw¼+÷Zoßà‹f9Ä*U¥œÄóì˜ÿzš˜Ëc‹Ý€²‚f/ª{xÚ;ë'àÍF¶Ê.ž&>†2‰YÏòp±.Œ‹pWKêå8a®'{IŽR 1>1-ÕEzÆ©±¿ÃÝ&áCf!œš¸,¤ã£ LsЈ:éƒõN‰³Ò˜zZå»¶{ƒVñIm®“J®‹„ÒÏý`ùÏò ‚QÉ„aÀp3d`¼‹È3ÂnymÑ×üÞÊéâ'’ÕÁ/  AˆŠä¶C{§ÅÒbVûŸ¸TÏœ‰K‡æyPð¦§<§* ÇÞñ‚„² ŠÓ|a¤Ý¶«CŠïšw',Ü{¤^¼Ur¢Ûð+[gXòÈc¹?á›ê ªQ”r¶ñ»Òb7/µ#âßäi[G"Í\³øn&`×#V¸v¢âÊúÁ9*‡Ò-îr¶ÆÉtãg‰dµä4¡àŸ±åcÏ<~yñš&éÀ_z’ÖGËçkMOÑH½#V‹1[)Ÿ}$ñݪµ/Z¦1ï¦úÛ’CÌ ÅãÕa®¸J›Î$ôðê¦Û¥}Opé>èºN¸áZ‘$Emxœ±òUOŠX«™šKÛÌ29*ýAHצ>J­Zq»„,FLGœ½@B˜—-žÈ×Aðì[m—†Ê«Öœ,@Y’¯ï„û~{¿ÏÉÅ'dVçÔ,îìÄcF~„ê²ò«1Œbh)ØÔU­sJÈÅÏŽ±üâàžÓßióf䙢#<&„«è¥9z‰S qRàýµ¸o:ÌJOÂä+šžåTzJ*Œ§ñu£/£Øg…âD„Bî³®Ll×çaeWÙfŒ BW|/r12žU˜ì4¥&š¥õã]ѸòH©þöžj¹¯†OfUÂT¸bÀeFoæu¹B% lÊ[Œ+}×Ó¯™q8C+ù7IX/ÖÛ0Œpo"Y4wt­ð…¿Áb=¬×ïP1íév»äø”‘dï‹ØIN´K;n)È0¼kôÏp˜îü˜Ÿß9Âý1Þé¨4 âp¬}…+ŒË}ís‰çe%Ñá+ަÒéÐw•cÛ3¯xŒÝ€{<à ÀË‹g›RÞÖÁ~¢µ+Eéš‘”%"<,¬.ævE”‘þ¹QŽ®«C¹ú¿ÅM\=[ kŸy*Uxøö]~?ýʯjx¹]ÌäTÛ÷%8}+ÃJš\ˆ3¶ØúŸÂôÉtŸ Ê:òIÏûÙ®Žj¬mά|šµÄPþoÉ®*ÑÂþÿ9ÚØ|è±Ú¡4 ¡½ä¤WûÂÎÿüþÛfWøcᩳáxýgó‘oÌc˜æð6â\¥ªKùK*j¾–ÖÝTxmÉ><~š–ØlFdÕÁe=t$ùòÑÐö †sÅv{¾OY71–d¶÷‡vW8“ûç)¤·q­ïwååÛŽ|j#-LY †Ö??ÈyTÕEÒ!¬ZÙ"KŒ‹ x>øC=®µþFÿéº7îR} I$s2ŸIíÖ¿ÇvïÁ™˜èhʪÖkâÕÝZš(~X¹[—…Áµ[V¼¥Ø™ñW0ñøåèÂveŒI$I8]a1rŠª­ƒÐ¨W ÝžY²ÏGQÀËÕI°¨ †N~Åp¥iëç¥"—õ¼¼›ŠµjªýÔäÉtU);»Hì›Sîå–ª–L;s„!ÒÛ@u,ŸÈÁkWŒ÷Ù)4›ˆù¯!\*g ôxXŒ#3SÝʘ)3j(yAá™Gçd¦ÿÀˆiG‡Ž9Ël¬ó^:о(_û 3í]n1T•lò}¸…&»Ë±¼°0SÞìŒ?Ë®ÍøÓ°‘ óçD‘œ¹BF7@á ã¬ZvÉ…˜{rÈ–sæçðl«(NûB­Hpµcø19áÖs/!{VaÜv-ÕkÚÊ W}cÙd«“¦`šïuþQÆq¨ÎˆÂZšxØ6? ÑtÙW«&ø@VãX‡ÊRɕշ¹%Y–^UmxD !]Ã1þ]ÕBk.À&Uöq†(Ž^vpäшp™¥µ»‡êÀ[ÕrŠ&½/œH XèDÒXšd=,Æ–ÀC¿b^É«ƒ|º\`«ºv"*þ9ºcêõYÐãQ¯iƒ0ùËÄU³0¡Š‘Èÿ4mжîåýäI} lÝ[䮸ðHm§_`¦Å²­ÉúAý,BPžñäÌQ·P}C¢!JÉ+ÞÐä0Æû`nü‰³ÊðY$²ËÜ"·û´(—â>CE’g}S~ x'DئÕ`ļji…5“ËŸgîÿX¹ûešd½º^_ßÚ“0 ‘*¶ùGT<ŠX`¹DËÿå}c4‚J}ÜÕІ{©ßÙaûlfUîs•ÑJûóÌ75'7{4m›€À!a(8YšžØ³Š$\jjÛ(RN›ZÚ–¶“í\SvÔ`ZÁ³@àÕÚðÔŒ±¤ä€H)cR!xÉøÎ lWÚߊ7œ"1rÊÆŽJˆôzÆN˜ÙÁB«|ß65Qú¬ÎÓJÏJ“9`˜øGU)žÕ=Ù¿ú}¢riõtKÕ Sfìùø¯m”F à_㩾h—g‚H¯+k•e.!Å 0õXg¸DÝ[ÆHõÚ§k•¤O—âzÉ6 %¶E3qðG2Åð£ÿmç, Ÿ[¼ÚuÓQájQ­¯. v%¯”œ£sÜ…g@£ÞU©»âÇûT¡Y3^ç½6&Ê3ûÕá éös7άÁüS-*q÷Q©µ<ƒ~÷¯!Ï/jR ½r§ñhµAÞJâÍŠÿwm_.sš“ ¹éQ6Ÿ½¦ˆ9éELáªPE/*_rbŸœ¨>Òª@¢—çüB®Íc6> r7Í)ˆé,ôH}8ùÊXh\¡‘¨•’€F˜³\A[ážñN”V•Ю‚ïy¹orí1 "F÷‹q:¤ÌBaÌd´v4}ª,|ê{`ú Rä1TÕÌþÇ"xXévëAÞNJT˜­ç§ï‡˜U{Õ— Ma#peÔj©½"2.Ó5 €žøÆ!Ö¥º``Ž÷ôUÕyýˆ¥²ƒ‚qÓn4d;9ø×⥘ÕËŽÐ{ûÁA.ŽQÄÛ„gd æó!3Ažæä[1^ƒàÕ“ÕPÏÈ„ãüæo¦œ+‰aq’ðá¿Uó•ŽQcç£}áPÇDÓ.œ²œ@ŒªñjcV­ˆ'™k G2dË‘™øPÛÕ¶~~D›|,3’œ!DÁïº[áðCóŒâŸ#úç/IZ@dà:lž˜†hôwŸ0§›J?ŸÎV77Ëš+VûjtŠn>{“ë*jA½æf<ø?J!üΞþ LKO„IÐÉõ‹L©à1:>ü³BVS­Êvs%ж Ĝלhs\z¾YäÜâÏ™í.ß>G#^„y¦–Ö¦å );BÇmõ|–#—%}ÎÉnmcÜ™òr]¾Š¥Áå4÷3w0I¥tp n,C¬×EÚŸ‚§y$y‚Ú±O²#Ö‹Íõ¾HÇ3jŒ©È„0 Ã6KI§h[;tJQšï8U‰)”­K/Ãulë4ÒwPR×År¾W#nD•JyêS´ìt Þ<Hg=EG0âÇcË;‹ wåGI0;Æ‘„è, Kg¯Ÿóä×Y®øÝ©øHTÓ÷L׿1'R# §—eoÁš×æû–쀈ucÅõ‡› TÍÃþhP¼h’‹1ydïiø[tôßÅbFp{ð壵޳ô3<—Ö+P”T[~msìP÷%Q5vï#/vÉÐÀ–Ü Åzui¾9O*ksÓÚ±¾æ-Í Ì¹¦ÂaêÞl[ð‹dÙYŠx‚@‹áµ`ònqlÛÓ:O+XKóÄE`žKJË’Ü4¼ÈM„Ào%£)°­æçÒ‰[$)·M‡oõ Š‹„·º[óßÑÆ¸œÒq7›È´$l/—´Ëí7DúÜ4þâ¦ÓVY5šfvÛOK kœj³¸¿Õw9 á,‘Ž‚AžS¬¥+ÛÑÎo²ˆÜNÿ”Þ‹RkSpŸ÷é|þ]ô˜Ýng"Æô&HQ2VëÞNM¾ìýñù\$dj¦š=ÔqÑÖT[=4…Ê¿ŸR{ç#û>jÈT¬{J{ìÑú È†ª^³B½ÃË ZI@«ã™q_SbO”׬^ ‹Ôçhf«0—nIªv±Á¶„Š˜Û·Ž'-U`ØšÐ0jöZ‚¡-g“jºæ®ð(Àþ)«è±ÏoÒiNüBh?¼Ž„rŠâ¶X{…†Vð@æ>m’(ùIÞ×À?ù÷fÀ½ƒ‹}™’Á„˜}mß+Æw:~&&H­c HÈ–¥°’5 ë!®¸ÎÛ;¾' x›5£õB ®Ê}E˜ÝlQñEy2aZhñ®ChŽŽìÚˆëÂÜ^qaõ$åó6ª›½¶²¦=Añ½Q÷Qï'ƒWØe›ÌŸó’–š¡¿oÞ¨–l£öAÌ{k,›·’ï¾SЫoá–$LÒ›WËLˆ%¹©ú+çfOWr :ă4ß +W^dp‹^»òËmty»Eœ<ÇšáÒ¯°¾§GÞ㟉Ÿ^Dû?±Àe”«Ê W.î ˜ê‚'zEE¦· ®’ÝޏÍ^*,ºa?‰=¹ÊϺ‹ýÀËN!4B–¼R¶µ«Ú7ùQœÎA?ƒÎ<{δ‚ø•úÔC—QÜ0!o([ÃNØÈ+¼ƒKF=YDýe¡¦l•clööfy•¥í2Öÿöjª yY1‰­íò8K”¨§óÍEð ï\ë‹Ë ‹F#Þó [­ ºì×,iãý¿Gu:èO¡a‘º>À“î|ñx®õbLvÁ&I#Z™kjkNe¯~Ÿ–²GÂ{Ì‘Š'EŠ<:¼òD“Ý {5¸Ôƒ™bºò-‡+Š vƒ¯ á‹ÇPDÿ_Dh‘É”+”ìí¯&ô™P)VR8/÷±=Y2OQh|‰/‚²á<@Reþh\OŠún‚g»–¯CWc|Ú¶L˜TÛ£*uu—ÃÑoGÆ©ýŒ¬„ðÀî¾ XÅ)µÕ»:CáÉÝ^÷¨EgÁÎùS…yÜ~Â¥õ3Ú7öj'ïö®£'ôΑ¦NöY –>Î:!Cç©8ï—GaF{ã0~F;…èk!+?E[¹T¢fŽ€(^JuþL}8àüYåZ%%„xëÓ±Ð>ýZÎ{–Ç Šôb$PXLQɹ%aVEGÙ9ëJÉÒÄëCd¼3£ðÊ3kÁwÚ¨7j<™2Dðêí.àÈÚîˆҢǟê g†dÖ‘¶jï9ìÄŒHuK^=J>x¢+ÔÓ F>ˆ¼5ȽèSÚW¬Í¤!«zp¦¼¼Gç>ʇ æS}Ù]@~þ¹†­Çè€ôj©1^@^e)û+l+f %ùšÈQÆâ}téÄé=çí‘•Y¥Y¡ÿn‹mMü„ÀT«™î4¹uo6™1gŒ¼ÎÈ»©³‹)«"Å­Õ>yœ« ®)±™Bù­óH˜„•5á¾Æ®a690ÁŽl(lJ“ Û€•0­#«ÕôùùA¸×»Ü†)"¨ø Ø/"=}èµþ‰*i¢Dõ®àzº¢ß„ é‹f–ã‡K³•ÉUûG~hR±U{…+½–šZ±åxÌBÝPðÖ¨Ñ1< Fãix¼ø¡jN–žsU9-¯­ÂØVÉD¦/1垌‡I¯Þ­cç™î%Uš ŒÃH‡R¨ªß’p8»F¿YÂaê_©ƒµí«ÔZxµO“Ý íf¿Çà1Ù_ !ïòýf£Ù¾F$äLʾÕ“õµ–´‡žòÞ€5( vŸüÜÚ\§  ½µwIXŒb²•úǎ祘|©d*!›w9å5A™¦`b³]n¸9yd¬a ®r84JòÛ²o ƒ˜ÿ²ÓÂö¨(!œ[‰Òsr®Í Ø9}i0Íÿö /œ={÷Õm´ýÔ86*šÍµažýù¦×ØGhE"œ•ih·l­ÅbY.Ö}š¾U Íó±öÁÄ–3× 5;½ ûD꽑ü h#áhF„3å×^+6ÊÎkûëSKé„Â×P} s¿!ÑòAÍ`2¦Û›ã"ºû›´Ó)„tÿ—ncIÉù<°§½=xØðtœZ¾¿Fê0#@X¯^!ÌŒ±Y:6/Ó£ú¢ÄЉWcYö©dí§–wâÔP6ÓˆŽ:ß G^§oÈÐlSRrœwý`‚TnûSBJyülºŸ^z6½é›¬ EÁ%„Ç~Ö£>ÏdΧ%?Yj&°|b{¹~ÿW{0ù˜Ž‡®½Ã %›:v+±¬÷ÞkcÑb% Ix(Ü:ÍäÏÖ{äKVÕ‹»=»Iö,PèF]l&Á4uºkª_×{£m%¢ËÊ”d hª¸­ôêÊ Î-ß"gÞ“âˆÀÌYŸñ›¸Ûއ ‡DD% Y®/®Ö½ËCê/$4óºP÷ÃÝ…ÐtcU‚úë‰{-]jf£¤ÙE@ f=œIEõ˜á.ã>:¸66³¦ê/€Vëx_Ðd›÷NöëïY3Õc‘xÓ®o³tlÖ²:ÈØ*Óóæ=Û“N‰Ô‚(äá¢g>2;åÖ= ÿCVZE’nôÚš®x¼÷;߽̗ÈðQÏ\n×Z°8Xh‰ÈÈè’©*“K.ÓI[vÉòJ"o4pºÿô©Ä>‘®R^†{u†ÓÚšêÛy³@è?ÊJú¬âèc³K^Í´ŽT ÅfäµkNgKN ÄF·`¿Ë/í*m¿Ãéb  ^[Uà¹ÐB¶å°i[Ó…¿bjCh¤DTÔMÁœ{…eÞ¡x¡Ñ6;^WÓßb*ƒ9ÂÚ™M,ÊSô‹*Ú¸¡ü:Þ @GXóêœßm£a½·e‰†µÈÒ(³ˆó²òH¦eºléµË2À®¨·•/¢òžÝqŸ¿A¸,_ä3]³3/!Ð#˜l7Ïä^&gzB§ÙÅ/FjÈ#…P¸åA½%óÚ³?žrd“ä€úËoºoBç ÞP‚Ö/V*o„læ]Xiê""VÀ'×!8]’Ëí:O5ÁT˜Ùä|¶Ó¬ðÜiZ¦¶‰ì¡±§ Ê¥\Ý3_æ tÔlQï„ή n«õæÌ »tÐÆî:¨4ãËnî±È1g¸K÷9¶†#m¼¶<ó§<É;héÿ©bÃX9•?“äÔà¿Óüú‘IÝlæ) ÿ Ö½³À(5±ú×ç€ Î"h|ÌgŽ‘>à'ħáÆÁ;Ú˜{J™×&ˆ²Í€JÀ¿ç/"]*«’3OäùÚ9t"…’݆ZÜøE½` ù0ÚßFð¤bëêñ±©©Y¡ßXtŸ71g AÚNS辫úE¤ØL‚N^çTÕ€‰¾Ù‹Ee xÌz¹`ßp{-hˆœý(ä&"äa DÍ)œ\[­+u­áý¨Ì¦µ~g%4PÆCîˆÊÏÔ°p1¸j¿ô²ãÍ|!¾‘´RáÕd–*Þ¡e"祄DÒÈOáyç] §¸Á¿‹ýŽû su¦ž®cÇm™ÿ—HH°æ…ñþ3V ­ëŒ-éõ9Ûĸãi„RáºL3³²[€?q4qc¥¹gÊfã‹;/]ÄF.{xÚ”òÛ<…t¿¡h‘q1f êV)×hhÀ7­HdKí…u0ÓXºõÍŽi†½ùMD"Ÿk×Xu®4þCDöœ€í‡ýÊ[E§‹úÎFîø½‡vŹ:sì¼óú™aììÿ„RD:[8ÄP`¡ùí׫G‘šAã'Ò=î>=œ3«Ö$Gâ__«ÛùÀÏå’”Ûw¤·÷T5ˆj jÞzŸ‰ùHˆjXÝ€²ó‰;{S–ö.ƒžÅnÁfNŸ]N,ÌÀ Oºm‚^vC '4Ú3]º1ZÁ§YÒ‰Œ”fõFÄL>6½Š\X+³}š«0N0Þ¬îŽvm‚öÌXJ^cKjܨ5žÚôÜÿü‘²´yGR×î¡?ÐkÁÒÀè/¿Ô‚9ÂpÆ¥k à÷ô'÷¿C©¤ÊÜ«„ÁVªÞÉví'—¶Ç§#ÀÑ[ÅÚ´ïqZÀhWaç²Ú톛§ÑnMõmþ?_ZncµŒh|eXeZJ½eG'ýýK5=M‹ å¼jÏPŽN2>ƒb¦éúù¡ê¦[ÙÎ?‰q¬+7² ­«§±°– Õv%_”üµºÂHyd…¢ó㹃åvhˆ«Â1YÈÀX>z;ê²ndÑM5Û€lmß#惀aê iEôÉ$øIú+7Ð; ÷dá5Iúc³“avC±+ügøl,t¯»UN5ÕÆdÿ¾øHu­ÙQ5ò“Èk‘C펠{i&jÖUÒæëz¯k»“zËg– Md„`ÓÄð aõàݦÛèG` y q€ÒYîé}ß„-ÏìÅ0ýQî¼_sB±?Âî‚…äõ'”}9l™7žs?¯žsE*o(úå á~V5AsR „U'E®>ñg‡gQ8ÏVU&‡j]X«_Žg¬U…PÆÎê=¦'¸ññ¤Ò…ÉžßÖûc—€Í$¶kýV,ÄKK m`/\ ”#\] @Å"óSãŒy¿Û™>é{•ãÄ6ÎD¤XÅõïÔJ ÞÓfSjÈÏ:¬¬œÔDZ*o™V%MðRT¬ÇÁz`eúÞÆ¸ËøÖSfAž%í{#ûN×±¾›ìò‘`Ðqøf»&Œ‰Åô"kµ‘'ÂQÓ[‰‹t*™™f9ᲤhW-aÌ ÉQ •ÁðÈ‹nGÆ¢ý§¤ .åíÍÑKX4Ì7¤þHÄC®hÎzÅ–ÛNÏèѽ‡’ !œ!e[^\ìÇ] †Ã"ë4këÿe>ï Êf}gJîÄ>I²[5õG™½³¡´T¸Ÿ[áFr0pÏZµ+€N.¡ÀVÀØÛ=ÂÖçŽ]&¸¯f7ôeéð´$«™|f¬ Íg’£ó÷-â_CšŸ—Ès%eá3¿WÞ¥ýz=;÷ Ž‹¨ÃnC+<2²e6POášÁAþq)åYímª¶îäT Q`Nÿ¤‘´v^«Ò¡V[ú»²j¦=º šèžL]ž1qÙI5*}ä]­Òá h‚ÙǔԽxZM}CuýÆrnª„ïJ°2úQõk”ïLOÀ#nOr&#~Ò¨1^¯~a™´ÈÁ¾ žÂ"yÕ 2F%ׯä¹èÕŠ×Åááâþ.Í…•sfü%€ é‡ÁÇ ›²9ó@]Þ'n’¤Ü¿5KÀcÜüuÜ÷Ôpú”?ù©õèÕ¨6Ñʼ ÝS\¡ätè}7âô™ÉGClfÝ€”î×zžBk¥Tƒ0X¦¶&}¼a4HÏH°9(Š…¦ßI‚ðŒ®$F!q›Ò®Ò’Áñt=Ûª§^¼Á&"^‹š”<ÝŒö3}R ûŽ^Œ¬ä·Æ$v8…í$Uà´=$ŠDSš÷¨Û<§ôcn!Õ<¨ïéS¢ºÂÞs¿µtßÐúx'gž§‹çVQ¾ÿ#ç¦îÒ j“Ð=C1ò¡ —.ñðÈWyFÿÊÚÇTU¢ ¼€†¸—/î°bog³LüØ5>YóÝD4¤Z¢ùÞ¨Ó§qI›ÒBŠ—Ç¯âµ ˜ì£¦…9XZ˜È «ÿs˜Èµ8wN?’0iU25¸ŒŸo¢ædì’Nˆ‚Ím â^ 4#Û ˜®_{Â|Þ¥þGÂj!¶sC1UHjy¨`:æLê¡kAÕZ Ë9s/YÊªŽ—x^ÉÞX ·!ŽTsÊn™´—zñÔ¯»¥ÃaÃ)8óÓ‡1‘Š2PÏú# Í~ÿ%" Å (Û¹f´DÏ;ߣ¹æn*v†X²á:ïhÐå}ãŒàw;ës/9Ü›.s#¼ Á<Åz&œh‡ç.&…¤CýÔ!# õÏOŒ»×!1ÅÕ/úµÿ´?(à,ªN£6àlÈÐ,K9ƒD4_ƒ5=Ä«:í¡÷µˆä§jƘ œ@)ôF3`år¸Vk2³2Bì§/p`9€éeÄïÕļ-©¤™Ø§Ã‚WÝê+k4÷9¹Æ-ì˧àM„©5ÙÞ(儨½1ÀƒDµ£H¥rµ<Ï\îŽq Ý…nH|ù8”x† ¶$ž}ˆ©L }•huŸƒ‹ÿÂ;­í¢²Ô—ˆR°mT°¡ˆ5ß%eæ¸ Z°7¢·†¦“û²ÖÀJM~ü(ÏeÅ\k[Ãu»¬Æ>Z3írMlYešt}”±$¸_aGÔ"]6ã©Dù)øØ†‰t|ûÇcØG·êSý=:ºtµæœ¦‹ ªØÚb¤Où“äwVX3tqS”!ý·ÄäÝ ýá¾ k¹A“¤°)ùÕë=i”//™>‹‹»2ïoyÉ Cr.ØQLÜA{¿ôÎæ²m,Œ˜”Òšñ²ö°êU•¹ÕŽ l'«Hq[ËÕåtçÃ\ÆÒR ¿ºU!Ö£sA@w©s£D±uù÷:ZQ·ûua!ÂÿŽÜ`(Dë–uqÄtMERÉ¥UmÜòoŠNµu±¯æöNLE¯"õ &]i¹8oj™äŽÎtUíêa óò@Cií'¬q ùÂüà†åHr0Lëÿ÷rÁÉ+ŠêyïE²ÙXœÎæ¬ÔÒ‰ý¼0’Öœ±žp ôê×C”z… ¬˜sŽå‹©1ÎbÅ’z×05†B܉©î¦ìÞ$õ ÉÙßL!ÚЖí\;Òy¢Ätn½©µ£¸2_4ÖPYì&¹ƒêß®Ä^ú¥øÑ'JJ»© 3nûÖw icäØÚKÎ^YÝQ„—Š›ØÝ°‘Øõ(VàÆ¢6´U&JÈ–&µñ8ã(·þï´ü]]åÄv(×^pìr7¹š’H É‚E’ž€ã¤2 »^Zaz¨ùK±C@‘žß饂C%N³|=Ö/Άµ kVé×Î8µÓÊ@¶”=ºu<° Ëã*-LÒ˜‰*Ó-«ŸJÆ5ÿ'Œôr8([Øñ_”j Ž‚Ïf-å(*DíùîÀÁoGô—¤ƒ8öÈ^ è§œÓêÙÏ'Yf¤Âù”+»m MŸB'Êá©ôNè iÒM¢’« - :óU±±#£^$öCÅ:V„:ű©uç5ìˆÞã¹ü{ŽvtwûøŽ·£èJtм\ö©áûžë† #šgw@cdZË{42äk5'V­RÜ£UÖ (ø~69Б’/•pêjµ·¢cxïôèîtOJM?^–@¼2äHƒ^é§uhè#k;»Ÿ_e÷[¥BÕ¥kg{êËÎ>“Ûì³W/VŠZëÔ`ŠŒûÜ»QkLðó(ñz)v ˜DhÉèíÔÓ a\*úSÀ"öÿäšÎnß§u’7Ãê &ý~T]íÒ÷VŠÓ:ˆÅr8AÏäaκ¾¼ÑÛNo‚CéY´‚¦ Ǭ^pX~¢™Öœ”î÷“[l½Å‚+…ÆÎ¢§Þ"Ó[C>x«¦×X¬ÍhÛ™­=Τ7.¬)¼.ÃáŠ~–öÛ†»l¯¿²*0›•é—è¤*c1"§Z1 Ó:©æà6oλ:ª@¸©·Žä>Úí°]¤V¯- 6mÚ ‘É¿å i·I@pÃAÖ™¸žbd¶ eôÂ2æË^SnäìëqHZH¥0:,|‹×=çÙ˜—‰¸ÒYx-uB_$9ŸZ³k/±€mT+ †ø'Á€7Eô¾t°x œZ]jž‰"ÝrC ›äVo§ùhf~ÓFž{È  ÙéäMÄc£¶hÐfÜüd¡üÒÌ)Ø1%‘„îkÑ7kfd›?\§Íêi[‡Va'ÓÙ)n§>ð6&ÌöÌhäqô¤;d@±µpØá*Èeל@‰ê8 q57fTPÐÐ X9žo_O`è¤7s@œ””÷Hl}T{aŠZ7vÎ}B“•mõ;WOopm/T7BOóЍ¿ Ò*Íœ·upÛaå| CªÄ;zŸ¬Ìb`<²Ðí!„ŽŒýVEÞ.ñâ2u‡u<€ÈÑK~{[¨Öº´‚iPd=Ñà|sN¯ý¿;xŠÝ †‹â*žß¿öc]‘}ÓØ9€Ã+µ¦Œ9¡z̶>9JNõ4{Öa%r2Ïê¾zÅ]44tXCKì§+š¶A{)`º?€A8Í'ÝŽôÔíó-Lƒ&8 :ÚÎͶǹЄ<µ]iqrƒßL³Ö{¢Vð†ÓRÁ¬2¯ùåGrhœÐ‚;õcÈ}x9nNâËÄ;°qtlÆöPƒÉc{X’à‡ËœnúÉñÜ÷ÉT Ÿ¾¼lÕŒðÚ—£¤4\z×e|ùÏ‘ôÿ®šëœÝ’Ä7Õ”õû~ Gð¯殡Éf Pa*ÈCãz÷Õ¹e“Ömš-E uZäÉm²W±µdOõ´5®L>È`È—£öãEŠå|5UQfãÉó¶rSúð[~á‘¶·w7ý<¢Pá y&$µÔTIaê$ûÙç+&µZgíšê¥8J·Òy¿4lxml¢¾ìü¾ZŸž=µÛ²®n®º$ioº•R…ßܧwÎs®%= Ù.ôûè/ø±§Š}ÿŽšmס…Šùº¹vcz7  /xá,~MYb$Ucð ]¶{ c`²nè9XÂ’[ú›ˆi0u3>…ðjØñ_ ‚ v× BnQG‘ÆtÓ1 jªÖ¶|ºÚžÃÌwo¡›E¶ï—Éìñº°÷§³ÄBPþ•K÷µÓV+«@¢Ê 8&ÞZ1µÝÜ<ð»êH±S¥bõ _§ è;ì#£N.{îÙ•”¦„có%Nú„óʘ¾£@hDÚ’€ä§=÷é‹§Œ+R`Ì"oÄ3}¿ ˆMbïOAr³TèÄ»Óö Hb±võ‚æ»¶‰“äZGîå;e®X~h:ίÚ*H¢\äC[š°=u„×7;¿&'oÂ~”Ô;`¶X|ŠíC\º˜]÷6‹4qÐî•§“›DåÑã‹ÐŸÄÓ°«7›¥¢‹ôMÌGSÀÙ\Ö• ÞVK'Hâ|.°…áõ:r“P‹V=‰­Ûôpæ‹uÿÕ› IèAqXéB¨¡›«,ÒU0Sï¡Êíw Y*ª6{ˆÙÜé°ËIgµì…Ü/£až&à† ?;µî›ÇeÁ’æ –Ó>`2Y¾üÀà|\±‹¦.áísfÆ)éûª¿_K˜Ã§Pf\“õºk“‰/\"¿„mÿšC ‹É²xŠ£!‘Ä×ÇöÀì/¿@~ºó?¤ð¹__Z_ü|Ø8‹64²Ì`7ã‡3XQÉ“ë]&/Ñ™e:¢ÛýÈ„gsF ±öMÉùÆDs08 •'-BoË ó¯6/Íæòvi^y þ‹T®ÂzÚ©ŒÆa>ú‰ä¿Fþ$íf/%$Š·4æï1?•Ýî³d´Ø„KûøçƒsdÐ ·…è©Ô0%çò‚ºa)²tgaÿÕfØeãÈ`HOÍ@âçYãÙFSÜ|][¾Ú™ñ"RèýöÊÆÍ»î)H++´…ä)1²æß“€0¼Ûv{®g–—Ü~åHD6ì˜Â¢Ç]ýzGÏÇúƒÎ »ÁØÁ—™3Ê6ŒZœZ‡–Ù@ÀÂÆ©‘ò½ú•Õãz#cÝûYȲ_7„åÈmCi„*iˆK3JËÞ ¤× ì´ÕLˆÆU¦ÃÊ|R /Ú„¦†9Ênö¶GSVØôq¾Ã~™›rˆZMÍÆôaåm–±„gH¦€3ò}ñR‡HIªô1‹0Íú‚}zn<Ð0´wJÕõN”5¨Š[^›HÚ-¶T`À¨eÍd¼Æ<³ åìgêX‹|N%3¦ÆcQ‘%ˉ]ÙþJé—å;·Â&³3:±ýš]LܳQÐä¤ißãm1Û€vy­Ñ¦¾mIVq¤‰=ž&ôôør[‹ñpäTq“ÕÕZ¹ ÃR®ç#_ƒ¯¤vt³ü}ÍÎÁ¾f’È8£ ûB•1®ŽóèzõÛöwß²ÇM)—rê£(>Rƒ8Ó\«¾XUbR_g›"¶lÜ@·ù²Mª±Ÿag§©§> `ßÊ~–åÖ]jçÛº_¼ùÔ¯÷Œ/l,‹pæg¼¡¾æ0Žhljl‚½¥r#:øúºÕX]„K™êÒ?¿A_¥ — iÁ©LgÏ[ $³~?¬fz‡n„Íá<¦w [`d;«âÇ—û'a‚úšît‰ª±y=v¶Øc`ÙÑËsThTùkQÀ f`I3Ä¿6Ûò\=ÞP+·øB¿E€íhì¤óá}ÿÖtL¢±Äü3A¸AÓ}-ÁÃ!¡Õ\a–LG+h6„UL%øÞáJ;·&µ/j‡ÿg›t´tä‰ìb`jÏ5± X((2³Ý*æUŠl#TÄ'xÉ#]6D%•Ñ| …ì¬|z2"#sqj.–Eó¦CAÊÛZkëD#4éù{¿iÍD s8T€»fŠ€ pØŸIÆ©!ÊÑúFîºæ+£œB¨Æ°m0í”wâø»råP1rz“¾œDþ2ýSõµw)¨´¢Ÿ4ó?ºG•Ó¤&¥šÿ“G÷ymT½ëïØ£ŽìÃ@¶Æïƒyò¶x›Ê lÀOÙ&`Jˆ!öÕ¶ßqe|PŽøÖàÙéAâìhŽ %[€…0°DZ½¿á–9Ä+¿OíÕFôyçÖ›kO׫Ó2Hb•ö]˜½psª0­±´Ã{0˜ç:69êÞ#MŸÚ©q䨅×" ¯E¸=_õÒ#%ç§rñBœž¨æŠÙýUÛS¢2zÅÜN¤êÊMÏOääylPt2½+r¨ðž:rÖà" €†쟻ýB°uˆh0—í5##cùBe=½ƒŒèº4Wþ$ ˜ñ¿n/9˜ cSå7]'bB×oèä:ï0³ä8®á¸*¶+´7ŽL„ññð7ÒMýß)awóÏ8€%K@ž5Ö½3­¯«Á`lƒržÒKbM>–Ô áL;Ö ë¨µC!¸VƇ)=”+æè§>ò»12Ó¡»Z^XéY62­yQùâx%¡Ì2u€Ô^Qd ÉCÎsΠJ.¹S^E®Rú'Û:'8 ‰6_CgµU<áójâ„o××N+º=@‘žûãX¦ÖvȦ+ŽQ<¡6«5¸ŽFêÀ?ýieÌEû*'[¸6icª‹Ìn_Wý|=1Ù¥K f!{î«ÞQ5Ò6ˆã5L\ä­7Í¡«×çÜ–±ÿ§‰V7’Gdã\unü®Sÿ²c·ùûè^]àÜè5þ°«ɲq.‚:¤¯sñëWܘ<@#öÆ“èDªX›Ó¦P»x§;½| :޵HÞq´5ä®KIa#Vkl¯ö“$/ªNÈùþ¸oíG}!nAÑìLŠCn/›¤+›vZwK²õ…çp |´1©5ø–Hwê"%ž?!Û~ú)0¶ñ ‘H²ÍjõËUx4Š¢žÞ`·Ì}’$e@ò7%/JV°¤ÓÔÖ¶óõV)ªyBhEZÓœZ☜‚—–yqñˆJ¸Î«;ØÏ±©’zãr‡¿6Qùõ¨³ž×®áÚJ'9λo/u#Ì­¾¶›o©:¡UˆŒ/W?0¡í+þ¾~†@íAþ¶N­],n3¦ÉΪ§£º»ˆüÉ3_á¾¹:o–°›GÄu¶´W׸ {='¬äâ»ÄõÕy$Þ£ í¡'¤‚¯”åÏCõevßE”1Í*í –Ñ A ›,—ÔéTô¿ö?C¨¢¯ÃÙÏ|ƒ¬Ö"¿‘hÇ(TÎØ¢þGð ÜM:š "7f'>.0FÕðÊ{û:P[Ó[ÐŽŽJ](QWq.‰ÿ.ò½}\=ÚŒ·Œöˆ(× Â:¼´hÿâßúrÆÅOߛ¸¡hÜ|ÜÑ7š`SžúFä<àô&˜+³½ àÉ•#¯·Ð¹Û5dÅLÊå”bÆ ™†þtRkIú¼Å]P½îurÏÎ&‘\¦ ì\f´€ö*šÎÅ­”ÿ¥l_ìX䎧þÖ1i!?9f7‚b!Sña-×vCòEqFɺ ŸnâbrdDa¨¨ÿ5°{û£ôTÊS,‹õ]… ãi Kcš×Œâp>|?“©™åâ³\X„6¸{™ë7OcýÀîò´x-k_êËK£áÿ8w¡LtÓù e¥­¡¢š4mkÚDœ|íOÛ›¤ :Û"÷Ç2ðâí’ÔÜÜ¡ñ'ÏfGbràãm¨ýrÇæœÛ)—ð e ÙÙëQöÙ’ö}ÒH)Tê)f \ž‚°R¤ˆçH¦>7Xiв¤ç1›cÖžW¸,CÙ¹>=Æ»Êî,Ï·BÉgc:Ó:¿ûǯիNì™ÐHiëÉðvw|a{Qéë,2¡‡ªºT“ƒL¼sÕê¥d. æóUnÇÞ´5Na7h[Âʇ#Ÿ¨é<¦ wF Ò„Èì$ù#6÷B•T“T(†µa©/yùY+Ä»—;1s’8†xõñWÖ‚s«ÆÏLN\äÏà>Ñ|™/Hƒª,qBÁÈÑ•)ì-÷ËW¢W¬Âê’}!û+wÖ÷­Så4?4èC2Q+¨éCïÀ.ØAÓŽVïQÒíVþ ©úϦ㮤ù¶“ÆÖÜŸº˜"¶¶ô€Üç/’Í=˜i Ç­¾BjŒnv©Q‡;Aj€8ÀFT<†ê"äø5ÑѰõí2„ÚÏz’^ýóÕ‘Î/FI•vá¬+Ø4ü+G$‹HÅáx¼ÊÏKäÕwdüú-y!¸Çöpc ‚‹J¶€Šm%ãÈÐih˜MßF§mñ;ái híîóO<^ª@‡4ž¬ê :+á‡ß¶V*d˜ß¨´ç,#{k<ÔèñIOcU-?j5¡Òò´°Lþ6Pú_"^~Ó¯o®Š28U, z¢N+]4…²:µëúø%ôþZàâ)içþ¤Üûžc1ÕTæ‚’À\³{qàSÎ!ÖJ§dÓåéÃÃó*ÚæBÌ“ùh—3Ân"/<غød;¯nÃÙ®w¨Kûgúìtiy˜ÆpŠž~TÄ)ÒHIUýêþ·ÊDqCRóÀÀ1{N9£˜?'删 „NÁN´¦$z¬qt/¼Ð2¸ä-בÚTü ¹‰SC'33…ŒÄ0#Â[ôÛ‰èÇ¥-]6#4ÞÊHzç~NÈ3Ùq"1zò$©p ]s’QUß~‘ëÓq‘ÀR2þ±‡;iPt¾aÌÎò½è\ÀkÁ‘Ï&” ¼ãU¶û\3Pc.mô$s6uíü-“CrÁRî;³Åg°^¾ »Ñ#õý.cú“Fœp}€Ô ÖuiüJ`l\Û ê9\\‹G~”È_ºÙü+DÅIË2ô pFUã/kƒù¿Ž}ƒÉžÇAe@´‡çVøAu m¿4á^ŒóUü]^ô3&Wº~Ä)ÀÐhwu@r ii0ØÙwGôxƒ5ž³\æn4æÉÿ°›Q·GB¹­Ì¶Óž¾[ö~»ö„Dî;A±!I<Ùva…l”!ÚGYÔ.l¦]ž:†{áw?ÂüÔ¿¡ßZ‹;ê@2/9¸«Ǻç|«ÁœÓ•§Q|H2«‘:ðˆSn{p¿¶q Úl >+˜f¾½¯ôj>Y¬–ÔO%”`àVifå‹· 5»eC¦ :^å^>3¸ðMs…ódñU¨“ðtV/b©ZDtë‰dºz>—mò@µ« ávJöè…Lƒ·Œì–ß‚_¿2®-Zÿã ›Ö¶ÉúŒ¢:Ó‘D‰øŠæüŒ«.tA å‚Ü V¨ðânûŒ¥úO:ƒö> 28=zô¹ð?#8 Ù 8´ß Œ—o¶r@çÞŸ²­ãmE+(îØmPNN„Uˆc÷"q,­ÐŸkiÞÖSñëˆç¤ªl«V@puHâ£æ;!4ø°<"êtWêä@>Wåî ¹¸SPÌ+[E.ZwŒûn>ÃúXÍIp‚‰ 'ì·ìó3žÎϽÄÓÕ·£óR”31;7+ði—ÌQmsfyÜ ;«jî„r¹„ ¹¦}§÷w_gèÌËÆC­±ÚMr7vñËqÉ0³Å%ÍÿðUq”ãJ›Æ-'¥75û äk¿¹º9:©½’ñ¦ô÷©w—9_UWT+æ“®bóÈ€(Z·X0iš?Ü3´«›7xL×G„ý›·[=k~ÞâÜÊm^ÆÚaâ5»˜ð5ƒ|Õå[0A1Ȭàq1ì7¤ªÂ}‹|ìï¿j¥'ÖÂ|ê-2Ï0„3&?ÂÍæO×£‘çøSòš!37O^¸­3÷hëG>òÓ*î¥0Ë•ßLßß'¾Õá°×îxw³-¡ä™ë5&‡7¾’2éG8 ¾ív–y3DV€¤ž2ÙH7d¬Î‹Øüš<áA—è÷D÷4Ur1_¼ !‰HŒºˆ\@BÖÖËWSÜ÷YeîT Œ€µÈN5ËÝÿ»…º)Ér³v^À{йÊÕáU|QòÛ3CÛW{½¥ø]¦Š¯ÈZøÒk5æ£ú‘ac¤š$ëÃÏÙe0ĵ¼:¬¦îG&3[¾}ÆzWå·âc½L¤hƒ¿Î+À… wÓj‰&|Zµ2Yý:,­®çKѧ½â¾°Êi.ây!?öZÏDo̶OŠÇ–ÑÑT°èŽ'ò‡mpÌzgÆeèå(ãx2·ç®ªE²rjÙBÏ1_œrcq‹|¦Twì¡ Gí·‹Ú);‡KsP {,cnk%Œ“>ëLµPÂO9Q6àE,´â–…ë“q*IÁ]¯$!\Àš4¶X nÈÎïÁo¡C ²LlÅð/ÕR€]2KX”½*<ö©°æìŠ{×jNR¥§>?È;Ààwé>S­õêû’%Ä?ôqØ!½P±ÞAÛΚ~iNæ`†9g?»æhO¬þùâ~ÊûâqC}ôÇP®òØ;stX±e'óà3CZ¢‰íÊ7ÃaÞ4~½b&·®‡EÂŒÄ>h‰ÜÏí¯öì„TÔ¬Žß•B¶Õsƒ™i£—ްÍcj1žÎá/‡­ÔÓ9‹Ô@´¾.?Fä ’§•sM+ÿرݺ l!ÝI/#‡Üï´"<ŽqÍÆ]×[=®ï5ý¨ÄÆ`òª\ •ÓËj,ª^£¸Ž´€b…5<õA';ò(ŒíÛÙ-Mw(a ú‹†3Tôy–Š„&d*è8ˆCfŒçyÛ<â°ÉøQRøî;+s Ö‰@o‡‰#|”!ݼ­x¡a¬éVábý" ·¿G¯É˜iá7Uù”x”qÐú`æÖ°Aw ‘E*i@:<‡__ÇEï§:¿t “zÃCVƒóX䍸!±8Z› ´cݘ„>¶¸lÔ ‡Ì³q¶ Q&®ã`øæÊÀÁŽ#š~ô‡Ä‡sÇ}2§ÖiÒŸÉ1°D_LËŸ ½)Ýk,¾þ’6ÌóÃL³€vF\½Ù„ôHŽ;Ì¢f­­|"³Ï+®Tô)`Q9se_ܶ¼>ÐXoÃðÔõs#•á¬Ãº·Oøè×›­$â8ä5ÛWÕ>óXÀþÐ=nÚy… \nq^!}ÒóÍ#ÑÓã½YZB¡ Ë6Ð xŸ]ÿÿ«Ì«†dÂÊ+­;ˆ"$”ÁÚ8s­w…^ÆuÅ’­we‚Õ¸:çëÁ8Ìgƒ?¤ "boFô.-C&%ÇâCøîôÄÝ-è£5o{L+ôÌb|9v1y Ã+X“u¤x”%­Î¡ò)îŒ>¥0uˆè½§ÙÒý­½ø5W{缕ù‚/¯z£®GÂF+Ú  X~T‡Ä¯UŠÕ7à ?@ïT;€E*ªQÿû!í®9žT\0Mà%“ŽCL–`ãHœ 9€J SahýÝ1ÅKÜx0úˆÿ€!£°%­¦,Íâ=4ŸÈµ >G×Íó•“Ì4’w[+rÚ¥©µ©èPo ‹wy´¿Vè••vAüÚ ÉzjìmÉžHîÐjqÄ—']ïÿv5Œjª¾Öãx,+ ¼nu-¹ÁHÂBcªM-²ô§I×Fó¶ê6‚ (JdJlˆÝUÂÞ™ÆÉ®`Sxšú7.ì¤U2Û½/ øh—28O¤"¡W-a븬ÇÚ½)2¡Û% „‹S;Â,/D Uª¼À½çxÒ Á4K‰bþ‡e‡¤¢ýjêÆ>¤´å§|Ù «UzG¦`ßäÖù']–3ÂEbG”¬_(,}Àî©Z5s Ö83‰¤fvçd3%“#™mÛŒ¶_šæäÖ–)°¶ÁþE´poX*‰³¹â 8”·áT7ö‰:‡Óÿk›ÏW3ÚgG%6iPå‘è=ðC€è%l½ìÿOð¥Ý4 N*i‡ µDǧÜ{ù¡ÅÔX±…ú%!ÖÝË¥?{ö 0ÝN"æu{[m)ƒò{]°ä§”vÏçY¾üò¾Ý8ÞÁ.å´ëÈnû† ðË+è«’áÀ»ó¸ÃÓ4éÜÿ‰Þ=E•–+ïÄ “Òjß¿:é—IIO@û¦1­_œ^Gýä#3Ñ®§«{°1PuÐÍÿ¡ÓIjd®jÓÇ2½:®ä}CþBi è ÒÃÈ­Ô°S43œEKy˜Åfˆ¥£DÅ_;`Ù¬²(Ì0òñÆêv …¨«Ò ÖŸQécŽ{®Mõ[ˆWpÔ¯»†³e¾$™¾/D²¿}~!œ²sÁoÁNCý±s`ö3‡LêK€1Ít,ó1–Æ‚‰Nl§J>‰ós}³l2nÇ}ª‹·º$"¦.èÁÉÂà/ÓÊ“hpô\v ‹v:fó(å7Ð/_Õd±w®šh-~òV—M¡Ý ™ÿàô»`UˆÜ öVæ(d½SܱaÁˆBd±ü÷¤Þ´íFÿDØõ‡!•á«—& 9§'šõ ;Ž©‡dç,íÛjèr²Þtˆ.ŠøAÇ6K-ä.ÊéÏJïNwœõHóÇiy÷ì«æ¦ûÑ1áiã ˆÜWà`&Þ•0BNVTCÕŽf ¯Ý~?) ñ$Èù´I¼ú]à‚G‹°ŸbÅSÊ¢ÛÔ„aÙ(ÕÛ™Xš¼2ZhÓÔõZQ¶þ1Ð £3 ²«Ï‚ÑÄ•ÎÈSËc!‰ª™RàY&y<àÐØF û¤³ìFsÉ¥H*;C<ÿNŸYBø{ˆ]g…¯» ë\l2à!ÙÌ¿´<†ýŽ÷Ú5º1„‹6}ˆLê(×`ÚŠ¿b,d˜ŠÏ’Ê8þ¤ke€ò2vΪŸPÐ^5ÙOx!çTiI°K±Ì ´è%fþv’04‘¤~…øKwžœùþWìðÔùMŽLo¥f{åÒ_±ÐšÿŸåŽ ùÉŽ ë;»¨vd‚õÑŠqžÑ"³³à¯’.ÓäÇ;pLjtÜ=­s!dpDœ†ŒÚ0þŸÓ¹ã ù ~°©bw™ nÅAt‡aÿ2çZ #åƒgÑBÄÈscðgUm×ôç墣ÀþîÊ~@úE¨”ú9(*†DóÍ ’¡¬Mß*T¦~°‡¸¿­ˆ#" ³h„º{¡þÁØ·ƒ¸R ÎPÓ@çâ2…Ük0ÆŽà$év”ŒƒgÊu ) f‰ÓÏž^£CbÍ& ÑE¾5Èuƒ‘ÞiñƒéC*,*_‚ôj©²çÐL4Ó$rö¤u*·UŽ 'ëÇÒ)d­‡sóå&ÜéѲ¦:jI#u>újÊ™ýÀÂL‡$^gîí:ái¡s t ­B¡OúEWYÂAýz™<=xÊ8ó' Am‰!å™ÏL”mÖŒSÎî"çm‰]·Þ’¤ŸJÞ±±uô[„âxQ®¥{xXb¼Ûó}<ŸÝËòÈÈ©–/næ·.U¾ˆycu»ìˆóñ\ňcÒ,´¸tCQVOÔè+|Õ¾è) ¼ÈЬå»Ôyç{J¬E#.ÉÜ’PÛR‰Ç}ïÀZQ{»5[\o¿ƒ“óBC+Áx”#ˆÍ€óÝ}&~ˆžÔEíuÙdl"Œ5Ô1ÐL ÑF!‰úõ*J„Éðæ“óûÒ–¥ñ;‰ëNúÍ6[ç—DÓ³ÿHmâûsØÃZÿ2 :ñ‡Ç+›bîð“—µ”»w¡’"%Ë#Ãë§‘[ †Ð"“z--¤“^Ù.) /M²‘½ó -ËÉì€×FHW tJxOB”:‡_œñõœ³}Í9<:öþÇô§D2l¯;£øü 0‘’!Œ×·Ò£*0ó…c” xIëÎ*Ï‘)ýúš…é†"¦ãôå†!Éáãÿ*P…:Y„}®YÆ›¶Íí…‰'iEøâ?!þëºÉQ©8ïæÕ…‡#¬–û¤Èw¦¤óUX(‹%6hw“-nÍÅ[‚qP2q 7­Ä-®I}jˆßV“äCòÐ³ÐæÈ« Ù¸O±ƒõ¥éØ]%:Nh×ÀÚ÷\¡î™lô¯z0àªFkXÈXÓÊ2;>²‰?¡Zty ¶jˆêœ¾Ÿš/Ï–¢þ¸Ÿ6³xoÙŠÿÕýoq_”ÓÎÁ:v-ÿmËZ ZØD7Ž‘Î#n¿U~Õ—#D›M5Ž{jøÚ‹÷ÐNP“{ï©‚÷bR1]4²ó¸~Eƒ« hܹg¾iÚ¾¾yâÓéãîžG°×<‰ÖFˆW¿øt‡©Uô¯Ôo.¨òŽV µ]Uªû˽72;X«!=ÅCc]çùÛÆÕµÏ„ƒÓ}´A30«^i“²50±ŒS2tîH¢0ñ“*$çôdÜ~Ç v½àéþÝ"ó¾“Ãó†–V1uŸ)J¾3T%Bóg*«RE£8z kQe?%† úÜΩI×ùgsÒøm¯v@UX8ça¼Å*0ï‰oÀƒ¼€§¥:)áãEñÓ˜àö™õA­îPnbÎxÌÍF[„)i,VŽ*ÑÒÅ=Î…¼1§­Å›>‘¨5ål ·*ÜÜ)ÕAÏTC~)ï9»Ÿ(­5°7X ªu'ŸVèò‡ùh·|®ž:a§Þ³Öyu+¬6d´~äôg‹ÌÏ7‘Ñ,ÒVo¨ÞRuu´‡'EM‡O×ÜÕlEàòÞ„fÄÙE5©¨C÷aÉ QNý“Ìü´} ™F ƒoñ´8P'z*±©».²U/ßJ5z™hxºy„+M°¬õœ1 §Ù¾•Dåñ÷›ØM3^¨8O©Ž‡âåÑ‹h6ëUÚNìõãZå¢2"ÅúÌNñÕjh¹œûÐçu?“û¢<ø -ŠõÈUè™ ¯à«<ÎU¸C¯Êƒ&JÀfÔÃYî °N(IIàú½eN—µ¥~\Ë««®­6«*«Sb»7†¼x@æO6ý0«ªsBšãÿ:z$±0s ·""¤Râv]û¹o˜¨Ë¦DooŠÁW#7Ä& ®Db.Müˆ¼Ô¤Þ`Cê#ÞpÖïí´¢¨ÔvKm‰S‚cx4Ñ·AÀÓîöÚj6ÝÙgÖr'é§Ð/Ž©é]t¦â˜¼º_ôý¦‚&‘$¾§Ew™8'O¬£0鱤þV·5nɘã–6.–R{8š%ç«I?ïº4lãwßRÒ3¶Å¿f+šÑ! `¹«‰xŒ°––ñ:ÃúŒ!\³ë~žð4+9òÉd—ê”ô)z_µÇ)?|þñ„ùפE7Cõ©ä}+6>@ëv³„~¼Ä¶¡,`½Ó˜R£Ó4|eAD~\†QºmpÁÚ™.ÌsæÃÐU ÜVüD²’ªÊl¥"Ð`8üyÕ¶EãL~ú€s'EÚ›F=0Äá=ª¦ä ûsq¾Ä<¿Ä_ÁJEÝŽ h{ÏÕñŒG4îý ;ävÿWÙMÆÍÔÑj³Tª;‚›´zp#ÌÉæÁ¤*Pÿ–3gA^ ªéöÏÚF"w{Þ8RœåNߺ«šÔdºwxp(ê­éÍ#ÅP¦v¬eB[ã11u› ÒmUKï=å{œ.íG¶`xÒ3¸Ú!gKÎ1%_F¡ëA-E§<ÉÅcÛsÉk+XÃ3¹kÖÄ…w¤D8J,÷4|7‹”Ì0–c´¯Ô_¦s8ܹ/»¡·?5Í®÷çAxP˜žú‡v¦s¶À²yØ•Ùûž-™¢~Öl!•gšX±!vØ4èøfYYß@ZÐï+~OÜÚ>v¾˜—¼=´§v9æ8ΉAZÛÖì‚^ܳÃúm‹Êÿhyut~4.ï¸B #öŽ’Ä;ºý'YÊâz?Ó’8ý×£R >ƒOÁõ(9ZÃØU[Å\®”Äv|\½¾ÅCi{ãFP²x.(+uJ4•M¥áV*à¬íq€Ê{ÄÁÞ‡¹•¸D§Fðý‰ž ª`B¡{éˆ/ .zlMŽS/ÎV)"3ûœGËŸZ°f£ÎÙ$ò„ƒÓ9fFˆNïS~üìßˉÂß♢å)v=ClVªd’ј7½ÂµÌ>°­^ÐGzRجµ×˜‘uû!+ºJ¶8 d1ÕR\EÌdì• ®gôoS^äò=QK®éâZŒÃ@͇°{{ðh ¬Jj§€Ž¸†ªQp’búx bt)b*«“ÈMÔ–8Ô /v£œý²ê”cè””×1 #óæs^\?IÀõó¡¡#Z#Å2ä[3‘¸^?ÉÒÊ=¬“Ò!eåàtü°œoðËRkòÖt„þ¡Ë|ŽMf¬xAýòÞXÏBØ-ùÛÀž¬HŸˆ‹-רâe/ÐMH>pÔZá2d ŒƒÛµäzÀê‚}÷€0B9eJÔ›áÀXU3ø›k#èr|µä\}šÔŽÝ{òk WfÇ1„JÐ)6þ€†Ydm*£D<0‚–ºå*HüxïA6jâåÕm4ýûP––à¶ü }úi9ï0,öW"ÀÁ˜(—ß§Àåäw‹g£G¼jœ¶šš ÂìOÄ̦£P[R,×ͽ>Y;-Eþ{¥ÝVQš[¨`WÑ{ylÒhSùàL%JüÝ! –DŠïU‹Û¬rÈP¨[n¹ߌAÊÞÇéØï;6ï 7ñÓ†y–(ÖÚüÐãY7Ùú Ùx×ÎG!ѤwŒEëâì\´TýÒD¹4g”+‘­j*Øîa,jî!°•H)M¢¤ÀºûÆbí¯qéÒÃMl;jΧÜSþ”³>˜6¢µ×bº®f.Ù„èÓ•A ÝqÇ#´Ílú!K¹F%GnÀkä7'‰¥ä¨nP¥OHƒEšO‹­"x¤•Šßf1²(J–¯2÷`lp]Ž),œ'¸ÀòùðyÂÉÛ‡$ÞN|‰fáAÚ úgaŠTÐëSSZ2°ªÃMa)ájCЦ:mWNIAy-þC¨‡üVœ ædQ¦ù U=…Û4¥=V˜¨–Ý ™½k1Q±Ç‡SÁ£¾“ùtS7ˆ·fMãÙëØKçÌú[j(éß aUÓ_ÿì™ú™ý$L —;w3-;¶)Ju¦*¨2•ø ̪À8¹¸Ör—àQ # -að­‘”æUŠ|®iðŒoWW°éë®wºSP«AFwæM72kpÑÝ„õzHÇÕúO(ZÊØÃÿG²O\D €—_(3‘€©Žßèi9p$ gÖYƒˆ/—„+~è1Asd=T ¹¸åö†Smñ àKÞ£¹ô…¦Kuýù‹½?·;r%?1äfLK=f¸÷u€Òž)’ÇÌ#hïÍòŸ/B\H«Ò¤Œã [º&ÐÂÊ*KÇ¢œgG¥„ˆbV¯…´À¹p4½5Õ§íx±ç9JŒ˜œõá¼)PÎéÿlXop’ÇÌ7=ﳎ¨ÁP?›êäd´¯XN‰iNÄ–µºeD?*eÂæí£cXŠ&W¼270ÜÅÞÍ:ê…;J¸: —‘‡WŽ:Ž F$´LØûáÓ¹t–¤Ÿ¼ UþÞÈâLCÁ°K •¥ã‘—U07†ÃRs*ÎcûÉðÇz…ÞOCd¼iƺ'¦Ç7⿟†âJjï:ií… $‰ÀùˆàhÇu´¬±'¥ 3åÙb„éuøù êOy¬ ‚}ØŸŸÔ=`ûãÆh¤0–äõiÚv:(\£\.íþÛf?a:p±V¸…‘—i†ÈþµÍÙÚq.q2]ªc8Âà=‚gørráiûm³g{hcFp"é/í˜Æ›ųß ó˜£@O\BŠÔS-¶`à´S@*_à­‹¿Jâ†3Æã†JK6e“¶^µm➣­K޵þxp0zfûk®C¹Ø·’±æ­0ÉÊtƒ¨Ë-ïË×è§Ä܇ãLúôW‰`•": ãÇv)ûË-Ù$âòØþÈdwD§@ZT.B›„¨Ãg™Çs¹ä7aF° pÀ«Çkœ_9]ð阞½Lzò¨Ë‘——!äâ¶kËã.×þ¼|qw©c¼mž"2Œ:ÙžˆpíùK§5¾àEQnýÕ¶o˜Ø&–‚‚ó‘9u…àBC(Ëc'U¾r¾LákÁSkJ»Œì)+Í?öêñ¸|}"hʤ¯X#ŽAyEÚ|@//n¢å¼|ã†îFi×–PÓo–´mž]iLà]}F«·Í…ˆVÍâÕŸvÛò­‘Q«ÜÖÈn4vÙºð3.1ÊŠnEí.Üïvz±" üætœ€˜ “Ó:ϼþì§ #”èФeH;0EÈ‹&.•x‚ÛËð´G~©<èC ŽÄ'ž‰¤¨ZpŸÃcÅ –Cy1Žíq¡Á2 ­þUšÎá|G.:˜íÍ|Þ)V7[Ú˜§¦-ÙÏéA>³yï4žò™ÿ¸£:t+R}èZU®ëÝÙïoì-’S@ [A¾ßG†xAdv†íïD øª5r_w;7—ÖÿUâÚŠ³ØO¶ËRÒ$kÛ7^W´Bf°cÏW•ó.%Å(UhâýɱRã׊³ãa›Ý(÷ëãy#ÏúJ¼‹­´,!r (E«­ð‹Äç9‹–Fž¤n? ÞúéøÆS<*!zŠíÓ·×n.~×>cpü®÷ý#ȯ{WJš0§…$<妶IåÌX²ÀIb­êŽóìœnS·`@ ¶k@3 ™±žÊT7aDº¿ÍuÐk6âÌÚˆƒ-ÕYaä•(å£GJ»^Œ” óGÝ.VõÖbÜ4²ÖKºÆ½Ôu‹YWûNÙÐS#uI£ùç¿öÃHÎ-KÈîæaz‰˜rárÝ(ܵª¾½9v6îµ€§wUB›ºãC‹ þ£1•¶H(faÁ™=\×7è}³ŸV"¼,".knp³¦Z%1K²Éº‰b]9“8íÆ˜wßUHxdy,˜³s½“ ¶'Y§rä ÐjJ£Ž¨ñâÉÕ–omdkR+¦éDÕ½äװ׿ÞONíÓNÂÇQûŠ"++±ÙµÜX¥>î‰Ômd{ö—H½Bç2-ó\ƒíæ¼¼šB¢TB÷f·Xòåž¾„ÔB•²@ÖYé[ä-£#NÊwðBÛQGŽºE(é9;–ç4Ô^ ã¶¥Áh"îÒLÚç“CW|Lí]ñÓ¡ùÚѸ¢óº wzÊgäúåÀQ0å—Ë|9]0_å³ûmø¸/qq²¥”98 ”?%›Ì™ëÝw\Í™@PSÃÞ\I³›¤I¬Ì<-ÖÚõ3ü—îj˜–Öê1 “Ô½x1ŠÉdºlì÷N™sÌTá©3ñGlFfß—‚·`Åâ˜ÚCÅS*·”ð4M‚Äû 'dÖ—ÔÁêQ‚eX"41ž—X™èR!aÄzžü%ò@K4'É ’i5Â:{\Ep•qÙ^â$°ñë¡Uï Ø…õ¶a¡$ÌõJ1UÔ¬Ã!å„Ý;Hš28Kpå6*²µÄìù[hb'Þݽ Þ•z÷èz·ë,My@©†h„àš2Ò¶ÑM!Ñîï¿'¹ÀsR†ÌûcÝŽêkxÌ•¡är$Jqx– &Ò"Ù{796’å±Åùª~s?ïñ¸ÊRÚ6=Pö*;¤z:Ì _›¨tîPظ36¡­º6ê#éý'ŒÕò×}R+úôK²O„¹.„±Lγs]€yMh3¿zÇKJ,'BÎ×å²çŽ ;ø^UÑ×ј¹ÂQô œýR~û5z þ6ÄÜÉáaÚ¢ ‚H¯¯#û³…7žz“oJFml/ÅUhP=Ó2ßÿpw™ä y Íÿ4Ý`!^þÕ¤«óô³×ƒ”dZJD¿û^`ˆÒi{ZÔÿ‹?€³ú|´âõçhJ‘}0ÍÛzˆm„<Ù‰ëgëí%H²w{PàAùEwÄÙÛœÇ[†â:sL]ZQ=MAÓga+avšî˜n e‘K@Ø{¦ Œ³npéAº'‰ã>ÕŸ`°má<õIYYÎ1´‚­µücŸxA5?<±”½d5Á ö×dm·K" eLÖéݾ׺ÕÀi6~úN5tïšf×?ý6 ñ¦§n8u¥Í5E¢Æc˜ ¯¯˜ÕÃ2ägó/‚7䃊ƒˆKPäè´29x¹Â¶6V,\|)̈ 4ÙL'ç0 ÷”}‘Z1ø"½À\Qï}:kØ'çk5X û þœ YÛ…o…lŸ¿gcGLa§9¿&O*oÝJAy_)a-n»Ð.Ë7¾QxA9'Sîù ;LC¥X;Leeü•å:`z•Þ]ųœÐg豨LkbÅ/æ5×55úAÉb©Ô¨•oªàÝ1«»dªppÙŠK—`ÔëÒ©þ7LjÕ’1t>¥¬Ð_Á^—‡¼~z°2ÜÄîx¦UœùªŽLìÝÖ8?‡#œF Û)/£¾ nû£žáV8…é™]j¥µ' ¨û¢ä'°þ¬::éÝÄ´ˆ#gVD¤U‡bé^FóÌA»+"n® dÜòBdu¶s5×Ôô¡Š—vNWjÚB¯eàÍÏm¤žxå7ª¥" ò‹ˆJuãí½Tm9(?Bçï³áÔµù•¬ð±så%8“ÜåSmZ¿KCÃM³•>C;gi²Ü ük,-ê›Ëä&_â¢?€æz+¾Û5c?Q[çÞ\×3@Ud}ôŸ{ ijÏ¿ÝÛp,‘öb“˜§æP0pŸï3é´¸Ã÷Ø«N7/¤¤Ýö5A±Ú²o }Ž@*x¢¨]k÷[H75]1•Û3)•QaQýá»ùÄ‹xtF*Ðp÷圯7÷Ì€EÅ5>~”© ïâÝŠ)m¹³~—ÁѼ¥LB©ƒ¿îŽ¢¨Q½Âû±,g(ß‚bê Ý>[xæ`[|Kgí9Qãf‹Oûó8¼1í|$dÊý¦Ÿ* ·ÒõWâe.¨n¯¼6+£¢ÝòœbÁì&>H}³° 憺[]4¦s°ãy‹ëO’Ÿ.Cß³®Ö*9 z;JË8¯g Uhh:Æì±s¦ð>¥´«cЬ³gt,d¹iwnnÏñcÝßWmòÓ,4mjQΩ<®àƒðàxõþVU”—Hß„¦9)¸’Æ‚ÔW`ù™]µ Uƒ§0d‰hÌq›I|XœŸŽüwá  (yVë>ƒÊ'­V‹ì¸ðo{ç—[¢+ch³fÙô:KâãËnm.±Ž¡ õs·É—AZ}\í É…øV»OBV™÷™·©´Ð¬œPÙå ’;Ói\‡F•]À¦fÍhK–½üÝE’vÚ–Ì-΢²²j×Ìh«¦ùEnŒðæ¥A&¹`óÍU”ö|´,l}aH“O_܃'øO‰%85É–\iëï6È­"½\&鳸±†ôqx`ÖYÃù@ÝS½¤C¨ªߥb£ÌèlR³#^Áµ1œ¥ Hç.9ê¦èˆv”ab\š÷žaß±=Ú`e7+dLa$+Kƒ¥Ð mÁ[þä7ÊŠ7XåÃl0UË8 J¹ðÞ€îp-âEÝEUHŸ,ƒkN˜ ËôÆÏÕÚ< VäSšjø%–¦bçuXXÑŒÕHÀi|”ý_ê-+ËܨG—@ÂØãŽ¢ï Yºõ¼fᨕ”ëÁg$&X&pûuŒ¤¨Ì’ŽãiNíäFutÀŸ˜öÞ„«E_}ùÁwžt§lžt4ãÑ[™×ÉC>D‰ûlÔò´“/“ æç¹ã a|,@Ú‰b1ú¯é5?ä àAœIR,#×¼¨ŒÚ8)wcÛ¨R=}'LÚxÅŒƒLpáêÁ}Î]‡]s¬ÆŽ¼ò¿,ÕR/©qžW‘Ñþð‹y÷¢¨„Ö>¢9hžUÞ5ºR1Ï-\:ý“XB?üpñ –õÕÝÇ2ÞtìB-|º` |Þ¬…ìƒOzsF¬6—UZ¤"ïmihÔƒ¤î®µp¶Õ3R¯TVh0”&¥lÕÆ˜E`U¿Ð6*›Ó€z*<}Ir<³PŸ)Ǻ¦tBt…@Åxª9kO:‡3q8¹³“­«²F©š• ͵œ2,Ú,¼†me2¥<¡Â?$ösûÎoZ¸rm1,4Ѿ£ó„Lû#8ƒµ7ê›TTßוçûDº7Â(Ùÿýf´Ë?C‡}~¼ž¿—Í^ùÍAðz¯|3 §äâê{l· .SÇžþ•°)xΣeÂ¥Ìâ¢X2M=]( ŽåÉ=D¹{³]¾´rIÒ‡RD}URFf)%# +ø@ÏТô¸\Ø»±s/ûÏ5’ù±· îÖJ ø¸} m4\¾×öº_15æ.ɇT›&á8^í \ã\I5¸®'Û7)èDÓÛzøí5_ d¾%º)fB¿aLž Ú¡y#ÉßëM|T¥ôuÈÛ«ô(Vâà/í–6­™C-vg|énë‡ùÈË«çvíBÂì"–œj7º`éTNƒé¢gzÄæl § bdáòÏìòþ!øÕ»‡ÿ•_ºòS»Š0$ÑÔPcÂYÉXû€^Æ÷>ô_/ŸnPÿù†yþ¤öÊwŽH.Ã…Œ~°$!M.årl»éPQÙÎ]qS‘Üf7Ý"E0E‡ÊÚ«*:(qŠ7q"â„&ÕPpâUR0çØæ¢ò 1„{ Ý'ãdmNÁ ÝúÇú)Ð: ™åŒ¶Ëà§øáÎqY ¢"@úãk£A°E(ă6÷Ñß Àp1a̱(§ ìSaÇ$·Ô&'0Üâz¹é;À£z= +(mî¢Þ„ƒ¤ÿö|¬[U…÷Ý3Tšù¼Ì¨‡è@–ã’’v¿?Y*  jC-_¨Ac^Ô üpÀ?kVd÷> ÎÌmÁ¤³mn|˜»»í<~³ž6’ÂlVø¡Ù6ó,˜©”µê›‹MÀÑ Vž  4âÔz‡û~ö¦'ÎÄ÷¾zfªÐd+¸ 'äj2”[›‚ÛŒÒ㣉j‚Î謽¹1.hÊ b+°jœ y*µÌ¡'ô›Òµ¬u°øZÄF[î‘NèìðÂlMAØÓ4á”I™Ÿ¤t,YïN\½ÚÜØø?ÊȺ½fÝŽ“®Õøuçðø6{MÉÛ EÐmèì›™0i-¤$ƒ'ŒÆrÚ¾8÷å¤g§Sàœ¸ H°eóû •±G/Žj÷öG•Xüƒ$Â}A3$îè!"„•¬é1åå[°×Ü\"$ Ó42²Èï- [¥!É5¹´$šyÂò•øùdH£­u4ÞÎp‘`w»\I‡{‡£¹ýµ’X.É>pý,¯Së'DT@6t2˜§7€ŽÃfþx¨8e"ý2í1°0ÖåPÔâÔ ìX/“Ž}®’ri}p(W_´á½ãÿxFmÏWÀÊmóò51$ö @ÇF 8‡ÎÐ&†6bø€ÜúÔœ©XÌë$÷—ÝÛ.ýÎ@͵íœÑÚ¿¬ÓS8>Y9Ê6ÿû¿¬:| EÒ¾j¸;DБé¢ÖFûB³Ûqvy9+b1‹—J³_‹•LÂp†ªì^·›¢a²VòwÁ+Y}õiJ¥0€ƒõXÿxÛüÃWÐÉYŠI=,1#@+í|JJrÎ/Ê¡”(SR¢Èš%…â5$«5ÈïÄ4Ó“-SÄŠ–ö™÷a|(ðh“VÿUxôJůý°úìåÉáú`âºÎùûÉ ’†ìo)CMäÕ“º}"Ïe?óeÊè@^¢è.ßÝ{\õu4QQra m¬im’]_ÎT–>Я)ÒÅs÷:¡ó¬(4fU`ÑÐõRŠ„4 ‹Ä½b:+{0_ĵ‰Û’² u !1†sÁ*‘÷}Õ›« çËÖHÚ’#,ä–v¥<†S6* °¯"¬ŒÓ®W`S„ü›ÂS] ±.‰±¥\Y/ j¸åÌñS†ž€€G°Ý. ñm‡cM›íùþÆ™ÁGÕ£C v¬ÂÐA­èX!´RI˜ÌfMŽ$™[º-÷iÁŽDûûj0]ºyeTÂÓ"æR‡jp“?ÍêÓNðP~g ü1u`¦ Ì 8ÁÀ¼ÀÞÒù\Õ©>ö.êá5݉<ðï‰ÎÇéðþ¬‡œ`ˆ,L¡4»À ›Ï—ÎG•âß âBèZæÓ?8\}„¤ÈHΠðöã­ÎbP|Ä¡¹¬²ó@•_Ê·o·/¢R«¬Oáæîójôð,Ü âÌ3©µú’ïDµÿ]ó=O*xTî×°qדW¶f%H¹QÒ`ï:yû»©>àqëøÌg‡¸î(Àõ–Kœ*Vdb dÕE1°NÞ.9<.åIÔ¬m¹-)f¸3«ª}‡c¡¬¨ `—þé®,÷µ›_ŽÔ5ý?ÙøªP7ö‡ÆÞt ÷eÇ´Ymô¥»ËzÛ•lè¤4K…„Š–ùLkºh3Õ€bÑqt‡—dúcdî«ÖzÝgá%×»Ô‹·6i“(-ÄFí%†Ãx#'I‚Ï;<±-\fkT| bκ¢1'ëñ£1+ïW^ÄØH äÿ–áÙŽQÓ<ß˺·W¯·:#@6æ—z嬗ñóF“ž¤h:Åít^EÃy*þ¸72KðÊsðí׬Çì;äðVºíÅ?·Öz§°QWê‹Ï¾þ ;kï#uc¡$=æ¡®‚[ßôËÌ| ˆ5o1TèÞ@jÀZ ÕöÈVÇV5MØ*ø(u_ão4Ó4õ¿àAýƒ}€pãèw» GûNJN`Ï §ü¯Æ`]ÃǤ@Rë)=ÞMVrŠAÜÙ ;¸ju;w˜ÑÃþ«£Pxá $Pà úíVmÊÚ`uäØúï½Ýs8Âõ%?72ÎÕùJï-[ܼâ¸ÜS8MÅd!âúÙ :-·CuáS"p±ªM†€»³½BÿKΣS½"ç^Γ»š[™·âñ§o_=¦á;æóD’Powà!E$@ãLl ™‹¿ôÊ«UÓèßñ‹ñfæ^N‘m—ü»B2mVk€½º$ÔpíKZ„ïP.öWŽý ¥añ-ÛÄÅO¨´ù_ïËŒºðÈ“ÿlyÈøšÆm~qÊç¶8~Ïé ÌГ¯‰¯TëÓÑêäÏ­é{îp¸"íú (½’¾?¼ÙáÀÃ¢Ý ÁÇ Ï8dfðCŸr‰³ŽØaê¤ò]ÆÛSÖ â×´  GŸqÓÙ{çZöŒði]sÂÍšÅ9h˜ h–Šž ²Ò.ÂP¹“OB–cíoL…‡=Ø©Ï 7uî6$â joüí`‰õ¸eæ¿1/háoĆ&’%ŒƒVj| åöäCFð­)ˆK3À†?Ç8eÍHPšRI'DJ"”™œ…k³¨W;ˆG‰sÎ'0™í| ðÛ¼IÀÛ{v5?#(ˆžKCöéöêp‰ûPu.ëNø‹÷!þù‹¨Àô×##í¿ÜzµŽóÁœ°_†hB†øt¯UøY厠Põ>qõ:qÖFEÿùîþúµ+ï!]"k… J馡ÐñMâër‰&ê|²´‡%äøeÖMÌcÏÛ¾G?*°Â‡ÇÑ#Á†[ šk©”–ýE<ó¯#ZQ+çÒ:"ÒVûlJ¨-`Ž÷¼ B²³Ý†eÈ_ihÓ¸¿Ó¤ljN˜˜u—©¬xòZKYE!'Ö×Eµ ­÷Lp›Bä¬Û`”dÞó…Ÿ„0®^ˆÅÇî]9ž+è÷ ö+„fU\ûžž‡QÍ•ì.G|œ:G¹E†]ÑÙJ0$3jS!¾øEœÅ¦®žv³çèÈ;r Š1ÉÒ 5\ ¦‰áe]›–)R°YldÿØS¬ 0Œµ§á9>¸šŒþQÿ’êå[‘1}Ó¯DähR™Æ+B0ñÅ…mq:•^RµíNžûLÚýÒ_’i¶E­­GG:‡Àpåã"¡V§åÏøí#>xQÈëwVªÑÛgõ¢&÷Íá-]9¦TP%‚¦LÍrrHQâcðD†ü÷‡›¤âº†x$M^„oLêÑ…‘_‰£l!Ó·JzH’txTr»¹"e‘ôùÞAyÂfsždŽ'bCFüËŠÍ£áçàûâî‡T|i²X$ÓµÚF±Ví’Ý«LZÅKò "w‡nìÛ½u†•æ4=(䛽w£{p¿P;k’®²Årá'œâߺúÜyÎ/¡ —.мv`i-{ó4Äå­D¿XØÁé¸ü«Ce­h®'÷z–‹!^'W­ +àȺpA¸³!¸ƒÛfèEVÁ] qÌ+üIÞ¾e©¾w™ºÌ ô×x¦- Ddø¥ÍÎuäI¶75Ýòd‹B«ü—à€|ÀR7†Óì’þL`d®‰Þ»ü&qz Oô2Ò¨Dpàåžú± |GbÅ Ö'¬ß;Á`óvÂ*¿dEÈ^»ÈzÂûß/é« £xÀ4¸›#«ERïOŒ©’eM…<œVÿŸ7‚UûIyhôL2vˆ.Ý,½‘f@fÞÚÌC7_/óæ¬ü[é5Í "}©oï"vˆ[Ñgj‹Ð…/”ÿ¶ùœsë¿ïÍݤ¼¾{Gh2ûàw5±² ,üIí­ŒÅ?4mZ±Õ´õéLek_Øiµô©Àð³‡VYV°ëqÅ·¼¦4_Œ«0à±YëJ׼˲MÃ}•vP¶·W<{´þÓyöóC'Áä^Öð§ §n¬S@de³³fø}©›Lý+­'›bœç™­ï½-¹«âÚ§í(”’õ‹#rb˜Œ“Ïü÷âQ]Täs¦§>[ þpKª"éšX‘6ê/i3’ncŠ`ƒ¯?³9<é?\ØÎß¶Xrs-"cc½¯<¢¡u‚^u ÚÎöxÏ 1;äsÇû—Î#ª UAt'ìÆ·‡ éwçÙ=Ê^HPd/D›¬õ©KEŽÖ,ãµÉªÓ}ÙžïÿCŒ†.üáàÊÏL?ô•ðÓhÊ`B>Q†ƒâ<77¢1£“EIÝY††5!2wN ãk\{⼂ û$7º9ÅAyEõ‘êü_ÎA[œ*n’þ(<\¯kJCÿæÓmS0ù²uý#|»È²q½$Ph®ìí®˜µóR9a¹IVp ¨‰ÏZC>ªhG˜âÜúŽÄw´'>SfÜsiÓ$ι4sGmÙ<ÆÍ8º5‡4£%. 9h—TŒ)­5څʆPJo~ùÓ¤åpÿªsÓøçí¼ÅRIé_‘ J²j•¹"Ó" áÍÞàÈRÖ\ûƒ×°ë]ø¿+øAÿ}éÞ¢û3ÔRFsY ß ˆ~³&8Zm¥_ÝÉ-xy4³!²zÐ+æT𨛋CLo×ͯ}âRÈûRHüó56N0ÙcQR‰aÌ&xbâÎPùGS ãÅ¥iÔ ¶ëK‡¸lí"³HùkÔ¯.ª¦,×3 Y=½Ý…ÚËÕV<ÄÜ *™Ê½SvØn/n]ÇjJ«¤û‰µ9™kèÕ ­{ƒ9„Õ 8&$F ˜ŠÆ¢©°Ê¥³áwÚ„«2ÀP'81)f«£2|ê—Ã3o´À‡oòÍQ1ƒo—ÜjOÄV=5*Ê—4mØD'Ž}NÿêÖ*¢ÿ€,LÄÚÚ“ujêx>¦ŒÓ¸;;Œ®nL[+éí|â^GðËfqóq­›ÌÅŽŠb™~¾@K¢n5,¿ó@[Þ`ìânÐêÁ«ê¶ù9ß_§í„*–ŒÙ‹”‡B‰„rÅšxŽ0f1^(}Iæ–…} ÇKP}îlZÒ;ÂH;² œŒá¡":ؼóo¾?·5VC†¬Ò5¨S ÅŽz\M,þ$išügm7GEÀÉð‡—Þȧ§Ü×€žs”ݸ«Þir¦5Ù(¯gY›[ÿÖˆá™ëAž•ËÇÒ»Áô‰ésÝÂBâÏ•³>{"ù0/ÐåȺš½ö~=K–Ðù’³¼Z7m/I‹k£—bqwG<>Ѱý4çÄiîþý©_ò‘ʸ›^c,æ¢33X_”ÐñYvÏóíLH{H–ë.¶TðÛû÷`0‰Ïá|·t¨Y-”Á*ˆq!~ßdÔ‚t†áÀ(Â+Ju a´b~7Jˆ€ò‘ˆœYk«q)n{3b«ê’ÿ#øì4†U;{•¢Ï®GaÇÁ¼fþ©”},†Š±¹ìx ýmþÞ*,Ò,97€¾œäãú¡ò«è z\ˆ,% %u5~ãDä…´%ŸÏ¸ÀM ¥cȨ+Þ˜¯­0OݸŽÞ¸[^ÙUeèh"­:Í3ão®JQ Ve5½hÎÓnÀÀvÍušð€  ÕéR…+¤†€HppÉ/Þ6B ,mÞ ¯|!Z+6A¨Äqù—¡(>}ù[ÖrêMcãE‹Ëÿ}d§|¼ö÷œlT»Ý\£Ñg¨Èe^ÀrhxÔâ×L Pòí™§p­ø^è§ô²ùRøT#ˆ§¶lºm•§²û“gýVxœ:äw @»ýaœøÙp©®Á+b®¯ÚÕ»©~y8!ÎÛ8ö¬ÃIéó|ËòŒLô¯ˆüS?*yÏwðI†œ*ÓíG)MV Ë͆ç_µ(cû–hÒýJçÓ]믓`6W.¢d®1/zæÚàꥤ½/1–SØ „¹bÇ’`øc•p}'a×yíhö Ÿ”Cš`­¬ŽÌ}¥J<¥ ƒ0ÕÙµ±N4“c`µoÌÙñÆH¾aòðgü‘ù(%-ºÃ(ýÃ*<Ö1Ga"%9.åœ2$N‰æøaÄuAÈéCôÍQòåŒZ? 3_Z1áÝ´EÑ‘ƒÞï—HWº)¬?hó’f:û2z‚´$>nÊÆ›=3ç€Wý\{àj‚¡”aS[-Ç;jà>¦|ŒxsÃ¥ý©é9T»²É<ÈÅNšoPm—½û'×½ÖI”žOò qa'^7'ë_dÂH‰«OA£ž¿Ii„í¬Ö—/ð£Ïnl}±hG@Ê >æü†n< aî=ïMû0P—fˉx—8‰«¡ÿÉusŠ…©6ùG;åa4Ýf¶Õ:||!L5=±ðÓŸýn½CŽ.\&:¹ÂŽødý+ñe<Þie®œAáüÆ–™ÔÃrBê&kDß/]©@Û­ÁÌÞLÄ“ïi´r*Zù ˆM¡¡rSc4XB3fªæV‡›ÁZN\#ÇÚs‘÷ÙØ¶«˜‰»a‘Ñ‘PäÃýg½ é®P鉔WÅò·7€F.‹V O\¥Ó! åÐZ=å¾ ÷˜RüåhaÜZåÖm×0Cò¾YÞ°‹Ÿ~¿EŒ4ßXùzTÁ«V\¾zâVT4÷ „Bô‹¨ªyG¶mqcnRu³G?EÍ'"ãhAƘ‚Q‰§åt,iÅW?Á9*?a `s¯sè픥ßÊ›mH1s¤·#+°tlo”Nʫ݄UïÓ¦f˜tY*¬Nòã>ä]q:$6 ?&“2ߌŸdÇLEºXõ3ƒzŒÜÉÖœc‰?0C~w¾Pa2•U$He£;pY¦¸Ê¥méÛ~@ÃèQ”FŒ*ÌòLÀòò'¤áɲ³oŽt°ù´ñkdŒ=c\Èf‹ÃÀL£üø{»UšžÞÏó[úcTƒ²¤…[È}‹õOúÚHŠmÓì¢ÆQ¸%Íõ¾ˆh_L;Ì¿¡¼MØÑ<’$¨‰Þr,Jhlcó'|½GæÇp©×Ž™*)¢Êkøi°[A6qÇ×›%·üÓ±D‚ñ^™4˜¼%:#ÍrÂÁ|àþu8:PòËæ4ÆCÃ…ð4TÏ qÉjqšŽ@@Œã¨èx¸ùÊmÌ^GÃ/ú…ñƒü”c‹„NÎÐÝ­<·ÎÒ®†Ù)É3Yò(§¦g=ߟg¯|Ç1BG©(Øn¿ljU “Æ…ô›÷Ûtâ(`½½(ñº,½`·áòw‰Úåíëß“2õÂ"@ß% Ô“BÇè.AéÓkz Y§Um窾I …äÉ<%+AJh %´Yþ#¢Y¬’ï2Ï.ƒÉ‹A" ‚ÛOaAštGõ¥8ŠnaL¢Î>i}‡(&õ!Á¿*Ü>FãWê¿vÔaÝAñ¶ÎYt(uœÉ³osx$ërúúÚÔ.äÇvU‚'-®3õQ|΢”Cé ¾lœ®)Ì®_&¢{\›ß¥d%›f‡ËD5X<¿²‹q¤œs­XO­[[]pÿ´¥JkȇvênŠH¥ Ø2ÿ°X.0ŽÖ,j'ýL€Â}%ÅãÜÔ‘ªŽé½»7 Nï¿1³}.ðÏ&Ÿ¢/²çžŒ,~ÜŒbûôúsóRÜ~&'Z |>rÂ?ñkTì'‘Gàó×òÓ`=“E|¸/ì§ìÀ>ú¢fûäÑAüé¦Î ‹>¿âT×Q Î÷¥.Å ·3(c Éìâ“~.Ã8ªð÷qý7Ëõ<÷¡¢Ý¼}¥™#˜¬7=Í\¤SSþ Ìnfú+øâ)"ìúõ#v¡¾ç‘+è3ä/F¼Ç‚B^{×ÿ?ÄѸ²2ñÈS© ®HÇ?”VHÊpʰõ!}8>”i]¤Å«OtÜŸ´U¹íB©Øý+ï/ˆ$“T~6Y©_ãȺ™!Ä.»G»[ !Ö«dÌe7­l8ßÓå)žxö>þ/ÃaáêE—‡¥¥Gíàªîi‰"Ƽ¹á h-·˜‚@Yšáƪ§cÁÌŠç*3¸¨queú°ž0dØ1œ©óÏ\¼Æµ~€à¼A:âãÖ³Éå/qõ#lWñ6ºþzgüét¯lídÙÆ/Qa T;ÊtW„¯¢:Q‘¥Åžëd¼€õŒlÑåäìW¿¦S¤TW—@&ÔayW„ªð¡à ºxõ;§ÿ–3Êlâ@Ü¿Ëbüå-‚Amö`s ¥ypÅ›T?Û/fc:2 ‘ Óº’ü÷O·œs.–QšUëSØíí( Ƭg)àU)žð§3ÝÑç«ò¶ª‘Ü—”f}×O›%áážÎª“ÔùHv¼I óÍG¤á¼_äX-v!NúDTƒç~–=j²3ýFWÈlÐëºÂ­n΂·GSN/çÍO¤^ƒ Pî¯úЧD¬È3ïp)ax€«!ÏàâFÖs1}ätž‘‡.»óÍDÞTFÒ6[ñôû!"†ùš2[k3a?·GnЧ.ÐÏJ Ÿæ-œhÅQ§£ŽÇû$ƒár~Oå%ÜyAc›F(õ,ÈõVø}i‡¹ Ç4ý¥NèÓªÓnº»ÅÉ`·°lÌwä0+8) Ë¡ÁÕ.uåyTÕ$7|¡ðèð6BcU-¡oàN­Þ®r3µTՎDzŒMû·›=kaD¹µ]­-Ãe‚Á§MCã:?!à(hbïÞ£X€1[ËÁ´Às¤KÁ㫵]olDy Vž+xöqŠŠÝM8 ¼zW)8¸Â#’#ç@æèÁÞaaˆš7üšó6‡ÔYùÿ£’Vr 6è¬éƒC“f${ØŠíhG¨ëI×’ƒ£"Ø´©¿ÿòF$ÞŸZ:”$cQ« †‡9ÜÄïZƒô)qáÀä–B7Ù`á§ñZ‹²K‹CƒÒ…sàbΆ¸â‡/nSm»`§AÎÀ`U!yw%rÓ±‹¨“ÒµöÓRp,†ÌðÌßîUÙß×!¿†^ú‹'ý€[Ÿl " £+XóÀÇuÂZÿOPS=EgÑMxÉÝû2­Ï~…\zˆÕ©—qf'«Í}ÔW^¸4Mó€áLþ4>ÊÓ;ž¡=Ò<§òµál&£š ¥ãâõ ~MÅÃônGd·^¯n\e³«<&«±C4ÏFøs‰ê~ãÉqUjÞ±WÝʉ¾à—F~È“ú0²´¼ávR’lMÛz¿©WkIeððÉ/=¤!±š¹ž6a;Æ#?+½¯‡±—DƒË‚®× íô5È9ÍÁ º@rMï.“¡"}_‹¯Œ³8S¦´ú@4Ú±ÝÆLÂ9·Á „îyC·´UDt%šk9cÑ^¹Ièmñà¶WBuðjŠ…SÿÏ| xb üTVLmmþm%a«†R@}`¶‹ˆÚÎb€ÕBuZ¿—Ö‰"+ØIˆ–¾m) B‰%߆">æPÔÆ }äâË‘âˆdÄÓü— ²Ý,xVÕ@¶sÕÅÉóÇmbåauôM|%˜ø†×ìÈ׊µ‚~ø¿SMà_òÄ0o%ÏõÆI'‰¶¹ö|—°K.ÓË­8@ÈW&ÏóèÇ»§[@idë†ï°É'’m· ú*w˜@S¤}vZ´§1V6,Pþ3×ÄY×GühÉö÷ÕEü•ôH?í€Ð¿j•}ˆî÷U®ÿ„¿ïmª¢éŒ¶Såá~ÕÛK'K‚ ykÌ:/x±2dŽ×*„×ðÛjH«Ç=¨]Ï<.Lx÷²6W;=¾ƒ¾ÞìBÁö¸}`ÒOC'tŸ~ó¸f¶‡8{*é›=ÛöÑë¿ÁqÙ b€C"Ÿ2ñϹ„y‚;Í|»0Á¥¨~e×àž½ÝH¦xËgÓõ*3ý­ Õ¶ëˆQ@~q³¼U?ªV³ ï¡e—Šz0ÞE:8¿ãp`Ê"úS*ÆDô|Ù™U/„­\5føèC²þ•éP>­Tiqc­){¢¯­;Þ¿ö1/Üûböã9Ý„û™åÈ7ä&ª¤€ÁŠØgÎ;4eÕàÆ¡qfy!Ĥ%oª2ÂG=( üJ%Û~¨‘sT^à³Ú¢g[@aÊ&ê‰pܤó†>Jc[žŸnÄ„*7.ér.X8Nfí]V)䞘ï?…_ —”rETFO~N"ì.T2¡ GÌ? ;KÎ|ê€0üÚá?B(¿,™AàIIó†Ÿ!‡R‹¶Ä_*! £ÓéäNãéªpR‹öT+޲/Ô' ëè) žC(š ‰8DGS‡ƒ›Sš&²ß~=}Z›ææÚÐ5E“4à,@¿K×ømªŠŽÿ©H=Ñá°¤ƒ:°ï'Ð;´Û„ÞØBßihjo½ú±Ñ—ÿ‹I ŠŠFÅe¡0= Gc[ËÉÓ/Ô‚ÇJºÈ>É Ûõ‘¿½Ú I00\ ×äÂ;çÁ9€¸ýn÷µ‡( (#½ð«cäStàÞûQz&W½~°Í*X²—˜EòÔ{IU’Ò[„”&&Ñe×L7gFá÷´¢ÁPRþßë¥*cÉ¿åÇÁdUó˜W9¨/·Ù‚–¸æxð”‹ ×øýQçÒÕŸhy9Zy‚AäzÊàU 1Œ“œð«;xã¬î)éà?f®{Œ&m«#Ñæú+«í†õ{§æH8Ò¹Çé-Gåù§l]·d½PȽfµq†d/üéT2›r˜t©åD¾ª9†û©„É$T}º©ʬÕî:œÊG~®ÄdL:#çnþ9¶¹³=%·ï¢mð±}¾xwuŒÅ‡GÃÌ/…ÎÀ›FföÃ79¦2í¬ˆ¿èáTÆ&­ú^ª6-‚<Y†F«4Ûêß-3O¶1BËr‚*©ò>rUm™…‰±gá+D£•ñZä•1ÙUù9ÔÝÀgKXY0Ùˆãð¸n!xP_f®à ™>vm÷Ò²m­CO M­×}iÓ¹¸»¼-éÆèK€2E°WﻆÄ\u?P6?+ "‘)/u.ðvàÌ|K›³âìÕ±#³ìp à.«Miï`Æ–âòuR¼‘НÌÝÎ]÷xöϋƯjܵŽ'$¶„‰¯óæÒ$<~(¶‘+AÔðªàq‡éQ#OÓfXeê1"ëû~ú&P·Õ'8­ò«s‡7¨Ó'Á%î¹*:02E‘kue¦6ÀuÐts© ýAÖæh{d>¨Lµ1z®CË+[ýbüö;-¬õD¢³~š‰<£ T}àÆhRS—1µHõ÷7èºwïlJ“²Ý*¿‚<”…d_þäЊºØÂÅ®¦eç3’ÔáÄaä½ ³Î2 tHàÅ“8?ú¬¹Tµ+$8Ëš¥e)Ÿ´ð™?°Â9üÍÿÒJ]ªÏy[K@¸ÇË7îÿÒëÞß ¹Bá}ŠÆʰê`Šíò~‡¥[š^Bï˜>ÁƵeÉŠ$¿ à!%c[LÑc؈±dàEùå><°Î±©é–DOÅÀ˜#Xø;>¯¼ŸlÙÝÇ8ÙúMò-Ž`x ±‚ùTέêà+ O¬Í°ë`q`yJç„(cu‚ÿ%75Á›tYk†½Â¿´M+l¼‹bè˜Øæ+S·MZŒ‚É5A|ÿ»'ÖÛšÕRD1J_–‚Eó­¼aêÉ#öJçø:þòÒщ'¼¼HÙìîÕ@ŸXïEW[¹ø·Ì?UÙVIÊdD€9A½Úû_µ¤œcå… [d±¢:€"xS?Ið¶~c ôüàp¤+Á¢Iš…qÛ::Ÿ±¹¯¸7ÓŽžÄ>€&Héx~×Ñ–3»?;ž æ²—E <;e5 Ö(°äk·>¿½ˆ UÊ|]ké×\¿"AI·Íìó)ySÁ5?½ðæc)äbŠÈ Æ¥q¤„ B$@9ÛF·UQ÷î^/J¤©ûÜé{0:j dCüŒf,-u–“G³ª{¸g#BîÝ%%JÝÒLÂE½–óË$‡c@W…§ëëçaÑiU¤Cƒªæ?öÚ²ûÔØðÙGå÷§DVxR›úvTÆ,šQ&‰ô'›u¦–6¶ Cš¢`$¬s Ñ@Û’vrõçy#ÉØKè0«lÕÞ\yœsXVYã¡XtEÑô{jdß•Â?òù‰± 1*¿êÑßMÏŸtÏÖî%vØäÇ"8Æå(qÓƒOÈôy±ú¥0Fá*SÒ×HL—Ñ…p5J~Ì “.°ƒ$IZÜîœ{v8õqodÀý›Fa(]S¼äÄ÷QˆÆÒ•+% kJGÛœ·ËKLe¸— „4j&lv±£düéóûÙ|ˆ¢OÝ:ˆJ´½^¿ù 0ãUI øÅ:øcÐ÷xO°¾Š;™u.ÐfÇ,&áçZ4¶ÐÞÇkEE¬<Šom¦ª‚Ú{P~òúMõû3þCg®¢|ÙùyñØnäNVWš#”&[;½kŠoÌ:N;Øì²Ûá‹ÌïÞYð&d½ (jn_–ƒ°.ÏÅÀœM/ÅÓµRf¬noËB×L½ tÔJDñ¬ÚNþeÛ›°á´¿ÕäIѸÚvULZصpƒ­ùàg5Í|îü)Ý+T•Kô];æ±¾ª›ß@ x«ëÓËàQNÖÀí$‹'9rLÔ!N¶€âÖâ nX/ º9ôõ·YÂñênù|üݦló°¦ ÆAY‚"›èçàƒïç¶Êš£Û¥7']LɪÉécøwí@gÓzÔJ\RëuQªð\_ŸðªÊÍO4å@Á„²ÈAÿ€k\LrH‹ÏÓJÓE=íè;ÛlÏC‡÷Omµ²ê1`Æ ‡Wèu.¢$þõ[¦jc3=ìU9¥‰!î}ŒÆ5ZÂô¶LfÕ³g“ã½oïa»Bjý(©C“䔡zTh6‹RµÊBhwH™º’ÒCh;ösÙâóÈ@¢Ýo(Œ ˆÍ16›dC¨¯V(V½ÌÔZÍ„¾Ç­b½DuN–5ëTØEÇ•±û~Üi ×ßLºÚ¹­ýýT lªõá àøU*‡:3 f([oP•ñàô°³õÎO æfh®) («úb«´{½ƒC%Ø2Q ôœ_Ak Ö[п¨Ö¤ ;Ê}ž–ÚçןJ˜_/èþ 0>þÞRGUS!^­ð»*rКWe\jzP#CéU/çCO9£Và×$ÇKG€q–{ÔõÄÖ'y5 3ÿ tOe£™YtZ6¶ªÒ{‘+Gë@t ( ?Èé²ýVóYŒmȼؖëòÎÑuW|gbœ.G^´´2@¼¨‘þ«DteÂáå9GD%°ƒÒž  aG¡*±+ÀLðøÁ]™ìB|ð-] $ùòØ[µ5mBr ƒcÒä*D§†ïÖZ,œ«„äVL>ä£xjö˜=ü"Ið–K¦›L|™«SM§b¿Zª.€8n&-p|AØÉ°iw¡"År¯‘ÂhÏV7¥®L{]©«o^úIíyµwl “›wõàŒ`9±_Ê®ö-CùJfT2 ¦=0,¼±>e¿%Ø- ºJAîM»aŠTH•| Еx¹®áŠW}l ¨,vc^mÝŸÐ[w7Þcmë}V ‘&lè1–|‹£²‡ˆõÛï,aYì–ãŸ0 u)DŸä>ïY1*—ËçSâaTdGBìÔe }nˆ¬À¶4Xžg}¿âÆz°g 5îÀª—YžËæÞ©½äôNƒfG ”ÕVÄ68·DÄ+ n¹gæK Ǻ·ˆ<1›¦3/[6ÆZ’µ–¢ÂhBªäÈYˆŸŠQmèøh¦;ôµÔöIH„üáª_#;ë°i¤' ysœiÃÓkÎßÙ™»Ý·üþÆ0ž½9•9)d}^ $WÊ‡Ä ‡×™#,Üç0ÈÀv¼ôfR™ ÝÛü¯7º%¡¸CC¯æO§5“™ŸøË%! bµˆµä;KÛî1rÉo¡q_ýÈ®—e¾ôµ•ÒRëK{&v~:BGØ~ž§Õ™ãÔw]yGñ/¡ž‰Ñ–øl±§’[V=Ofy¦„*Ë^lFñ=éÙ¤µ±'0ôð%¡oxaMÇbUäÄ‹#sŒ™p|-`Éýtþ‹¬<¥â»J }[6Òp.Œ×$JöŒ!³fô–+èsÐ,À|DñI] ÐñX®±€ÕýÍ3›‚™ÊgÏÜïi(£ç™ @S}ò¬}.©2N­Ã,¾aHᾆÀõ³©?§Ù÷0kÚ4¡Ò1Èu½œÆ,gBߺðKòaÈúÈóÜÿ˜ÏitäôMTÐÉÓê KxfÆß›âóZ~2æ 1‡ÃC‘„©ïÇB=‰§* dOÂOµº¹D‰¿˜Üë‹ñËVd4ó‹²p{»fAmøHbsvZTbA¶>ßÅ9EîkÌÕ—(ô*ì󤈷`õn[«TÆEX€¶P>^K"0²«àÝØŸ­D×MóVÝh»QnA‡Qç"iµ/¦¢-†FªœèL‹ éü àÒ®‰fÇ­à…ä\«²†–­ŽÙLqy›ƒd®Ÿ¨L7+å9 ®ø¹ål¶bs©&b"µÆh)£è yEõ¬?›¬ –ÑìB{H/s®Û‰ù¬ç—\JÑ´²â+²8Ä×8b uÆ“.åÝ·§¾¼ùÞSå³+àˆ.õ§8¡çPJϾˆ"j’Eû$u㾨7bR²î+´ñŠÊ:DËïq¥w8_ƒÿv·åã˜(U)u'?Çô$çm9iÜg¢N·ÀàFj~BFÅ¿ð&ªî‰ønc£’ØeÛ— l*çè¹Â¼ÿ[è Õ–BBÕ9+È.0˜]=f¦:„SdÄ[òJ‰Ž¯IÇÔLkr)=Tã1iJh‡„a;k¼‹{ÑâqÄI®º&É~ó Ÿ¼fL¨÷ˆxó^Mfº»?Ê’a¿h†AôÓ¸¶Ü?V<pXBÌž¡"[´Å̬TÕžT¡F7xö)Ž*NºíÄè‹ÍQG"»¡«˜Åæ9ôÂÀ´’sÛ…Òd‡™ÔÚê}+H»Ìg¬4ã4}:_Þ¤ñ²K±=¶¬/¦$ V½I‘(° Úpi‚Në*öiJÒùRÒxø2Ëk#§óÄ+•Vwºbçý Q^š ^>ÇÙ:~ÄÚÁΖ5k!ܧ¤ôÚ¬¤à~:nCòqAp±A=ÇÓµt`Q èáꉄ>Îu€|ˆË£çé>|Û¯ZÅ´Z†j7«ÊžHÉž4DbHLùTªmKpUp¾°†#´‹â‡A è© ¬{»¤œæH;Um'\Z;—§Ògµùp \Ä ZÁ`U:ÈõŽE»° Åß ãõ⃬²Æ6ð ,c}åo¢âœbé÷ý L4­¸3É‘¹LÂ…zÙCJ}Þ%Mú^ú©{ªðœñlaòàuJØ”1ß&>ÂÅ%97¿1@šO:Ú§$+MêkEÙ—.P`•ë·0Ùêwx³WMmPž§òkÕ,H»¼Ñ§#çŒvásŒmvg1yyæÐ7(¤ç"iªÌÂëî!•Û"Ÿê*U–|×':l¯F ;Ý3y*ö«Â»Š¯0|¤ÂVfº_D(‹°trèé'î³¢ˆ·g†o9äãŒÚåݳ ‚>=.f,[ŸJa뺃òäÆÁvOpu"“1)RkA!úÞŠ¥Ý(ƒ•A¯ˆåµåFæYÖïû×{ÌíJEuÙÑÂbº{E‘“ÎÏÊî­bw¡/X©è ."ß4å‹i8·49Íú:S 6Ôß– 8g3]Z»¹å«´|_ì÷“óYÿüïGÒª›ùNZ\st } ‘¡µ¹"W€'ο6@à ø;_„„a%“‚D’ Ö5Á8T–)£d øŸ¥‘hRl»l ãBmùd'iΟÖúé‘=ža¶\(Hp$öGŸÑI~_Û½^ÀÄ kÍLÀ…s!<•~2¾2õ‹R·B‹½9OO;2›Œ°‹kŠo6'½/I*¯áÉW8™¸ö@R¡ešeSUÒG…K´@Am¯I:õ ¯ñ0×8šFo X@s|pØ'¸ÿÖVŸLL\çÎ}ýÖ›†ü¤ñ±™pËͨìdÒ«ÀЧ*‘eN^»‚HÎRuòrW‡þd¥”LÌð-òvÐV»9ü^ûG¶ª 0œ¼¢Þ×#HÑ[5nÞcܬ»–rÂZ­­É§¯´–p#CÞLiL8P§ñ9žµR»‹âß,ÚÊþ¨8¢¨yÝ4ç$Ù¾ÊR+ñ7`!I®Üz‚UG0 ÍÓᅢéI§Gò°ëN•þŽŒŒD\×Qõ¶ÇŸkâ á¯j()Ó)Ño¤öÐuOV€2FÑØ ù&\™#÷]]ЧYCÎ`G¼RîÆ¼¸”1Ðt’D-y“:GzÄSì=Åzé+w0úyõKÏ~5Bbnc6ÿÚâu &žÞy‰þžÇÞf‰r ªóÚˆQ–)Œ¡5Ðx¬_Ö(9qëñ–.¥Tø«=¨&{=Ñ£ ,¦U‚Û´qΣÍ1š™Y×áh0=|Íl;Ü ³2¯(@9«šØ-ªb?°1·±ÛîiÝA«Óþ ·$opa¯_Ïõ •Òû]4‚êxmwo;»t/á—­#X¶ Q¶ì–ewŸ3ÝNŽ}VÙ-œÆJÀ¨oZÝakž]0Ô+oä)±@Ôô6Ç9 q‚-ìX~N‡ø6ôغÑüµ":¶**ˆî™^ÚÒ†öЄ19A+,Nxú ·ÈÒ‰âàÅâHð¬ë[ C‘Ї\ŸˆÿÇ'-ZŒѨ¦>7êû4Ãg}âÌÛF<×|MÜe˜¦›Èmô9#€[ø¦hTe»FøÁúŠ{ˆKe„ƒc÷ãYŸb°¨Gc|6š˜t÷ @"_’=÷…­!œÞ°[ÍOnûƒÂ¿Ø R7y“9*#}¡Ëþ1Ððý ¸$¦'s¹§ù$îÁ¿ù˜Å‰t;.ÇG0^ïL EÏÍ2QøxbTMyɼÎ^6€?ÐÁ EcT¯Æ³êšò¡Ä$pèš™ R‚º˜7¬xt-¼xft.÷öáˆBÎ^3q»UÕ‡dCƒ{`¸DêMÃ,@«²öÂSµJFJÍE¼†²‡Mg¿S »_íQbÔ}+:ÿ9_ZG³Œ{ÀÊú$¥ƒÑùgð…½iÔ‡´·œV>ˆåðBAܰâà´îm/†Ÿ‚¶ŒK«ÈPÏasçÈjîï íZHhäu y¯¶ÁbOe޵„q‡¨üðû9 ÞÎ 9,Ãò+ÉhñRÈ Pã%>Nw’“v+œÈ ’Ji€öhK7ŽÖñfÍp÷5ô2€µ5C>æ—L3¾ ¦’ªh¶ÿ¬€¶ÀM€YÀó߃œÝ]IÝ©b†K(ÙX"J.)ÿînq¼mil¨ˆ1ß.¯L|€#¬ê{ÔêÌ6Sü·;ôWm7¾\Þî«:“èZ~yg¸Š9LiÊ ‹Ïí3˜÷+(¾t»‰ù.p 0‡QŽs‰Ôw¤—$eþå5QÚ%Lû±QÒ0"ˆ©|‘šC^0/'{Q„ç[:Í!õ+­æ]ˆƒJîX“ê4Á°§€ZCŠ«BâDþ®‘¢*ôø›>õn&v¿i3Ƀ¬‘"[G¸Ç|¬i¹“cRWȘÔC.Û·V´­üå÷k- փռ๠PUŽUÚBÅÓèá`'¿¾:’FÄ-ÎÁ ×eå°} µØ-ëø#. FÁâe}JßÁCúÍ—¾… 5Þ-—×¶¨¿ÊcC—r«#mK¶Ìá˜ÁÒñߨͨݥ ›€°9šÁF)¶[Älgdø|@Ñ<­$–Îén¬×f¥â5æ\ú1®ÞN¶×C6%Q·^’ò9ùU¹¿9ìdýÕ´E¿º« ÃDÇv†ÌÉ~8û–|(¿Jìa¾äà3½Çò‹!tWïùz2[0ÞX SÛ@®ä¿tÚX“¸£QŽý  ùë—à‹lŸtÿgvà¾}ð¥Mro ~ê "é§*Eÿ†›¥T>ÜXÞvK¡àC‘nôyvi–t!£Fò0åALa*j»Ãéxò àå ZëW툿LxË.(Â,ãq­ãñEì"zWå=_ß‹nJ#«U}®Ù—­M'c¥öå"ÈnˆÃoEnÊ«úlñz¶Â·eòØgFQÐg,ëå‰àöægzEFmabG4wŽÁÌÊj\WÙ’ÝwDÍ=z“ÛêÞNlí#¶Ã㘠¢l`TÔÛjUoò{™nÖì<³ÒžKû¸{n¸ìêníj$§Q°,œ)Wé©EëÒ‰ñIýü¯XíàÅ-”;ÿK‚y•>&מý“–Ù®úýÓA°—+²’™ù˜®¼]iÑ4wé^ª›ggDΓbKÀús“4SL¯ñ ï|cñ|œ²P4m㺤<%/mQi׆1Väý{ïÅMä·—IÏÀ0„þ©+ŽÈ2û“á8øQ3ÀVjBÄ|ù4—àŒV¥’Õ.…Úw#w«ðˆ¤0ø–b6¨)…ySÕG ¢™–â£f °†„:ìÿ¬Å0Ñ&Y½Æ€²ÒXäaxÔÓy˜\ï«è«ú3ò*Ór®<ˆÎ™’ãÞ…»˜Sä¹´€Ä>Î5¾ÜQШa4VA>›N‚‰’‚ÏðcÛn}ƻɶ¿¡÷Ÿá>œDâåæèO)‘} ûPæ 2—éþ ºTa£ƒÂ%#⢭v¡óC»>aiïG/Eš£6]+uyF Z滼¹Ü€ü>Ø¥D¸¨÷4±ƒÊ˜¶ªa¾;¼q9êk¡ƒ¢œ%ëÀØKOg©ï'—ó1v­èŒ¦à6\–׃MíµµªAnùÛ¿ ÛóQecÿÝK,{B)+  V‰£¸/ ?h$Á»âgÌ µÍJ;“_˜ÖŠt+°¡û”®þˆ’Q——ÀÚYwýQMÃ>j#oZÈ»H_U÷#F«Ÿ¡!ýÍ|/ׇ‘ŠÏ¬¿4pó÷¥”´¸“uã`7ãÍ|¾¯Þ±Ü)n)àelsÂÅÔÑ@ꆪbº£Ê[ TŸøóéÓ§À™sqýý²èŒ §î’~çœ+¨ž«†™q#Fâªw`gÈ¡,Y£}ð[Çzƒy§ ¥PÌh"Úó²Î3ø2ÂPr«‰Î•ù03œðnãÀëGåÉ){*u!a!1l7ƒ*VÄÈÀê§wS,Ë?~§?RUÈÈÈÍ-„ý0›«úDM²¨{!åƒtèN7Èx¦Õ"¤]5çV€Ô|îJŠjHƒÉŸÄêì Æ:FaŒÐý ±ëÆA‰¦¨Y„Äš6nØÄJÝ*ëÆÿàzHHþÑ%Þº4·(ÓÊe7BØ{*gt¡TNOO½? 5Ä~vØx Ç÷²]Ù§ùµoË­0Aɯ9ÈcŠ„§Åó£f 2-?c…eV2Û. -ãc@õYãqº²±"#¥p©GÏ 0ÓhïÆ°˜þ‹½¶V‘‘Âî£^ ȾFïCµüRùj"]æ®-ƒá¯¸Yâiä±¾&8õÙBv߀ÛÈø[AâÈ6)éd;}5ïæ¾e&*"ÒÁäºÚ ß‚®û»\÷wÊs;†‚d޵£ÅB&Ç|áÄu†«âŸP‡ì(‚rÖ/„XšÙ/߇IFî‰gð°ÿófe„ÄbKÞ×a™Ž‰ÈÜôyõsG²wÅû‰ 7B\S%#:swÚGìδN° Ã¢Ð!$ÖÆDªñ9Ùz$A«º]ì$‚Œý1¦ýS4-ûtwDµN‰,åixÅ;ôcCþ1Xw «&~ªÒ³RïZ¢Ê£mµ¡¨M¶µESI|¸‚Pj¡joðÇ)#<«)&P"=½Y“/ÈÅRÆ÷Ѽƒ¨ÿ/Mt2ááš‹W6?a—=XB.%»YIΡsË3ý†ú‰¶†Ú RC{àÎaAàÐug¼'3zÌ|ÔvXå¿á§ü Y4bŒ½uò…ï–!âÄ›¾+Œ®ý懇Ñ Ü ,¨l-)ÜøÙ*{ aQyÐ(Eí<àÈL(kÙm²nžY?k;\.ý2íºÆ™‹úÒ¿û±à$Åó]›ðd5f? ’—6$ßS .I§]v¥CGýÕO¸ ËÇÀô’K¿«Ôß×KÃå v~Tê·öNú^í(µ†$Ü÷þÀ7˜ÃöŠÑ;óÏ1òÚèz|…YÈI[É: {¾ºëý)¤ç™6#òXìâ莎ßH{­`Ó`Ç‚…Tè_(”síC\j.µ½4‡ _èþPVÕ9Ș}Å®e¸€ïéA6Lø¼FƒšC ¯œÈÓ±‰RîçÌ—´Ü‹¼–ÛJe—?X}y?Ô/PT»ï[Üš#§@)ËOáŒÃâ>½@Tû0Ç’þDF’µyÉW›ÊÏ)®âáµ$jc^O z<<ÿJx²3š \:» *k”N¤øªz&”æàëU09†–¾¹bN°zŸK@J<¬õ‚î#PÀnßv ÚÒ&Ý4k0‹“Q»&ÖÖ§uŠ ‰VËÏ*ÝÑ™–Ø)íD+ˆCž©oêØÏŸM³Æ~|š4cf½ùÄ„ç\£¢ ø3Ó£s|$¡"âF«ç >@^Ç8gþF¢÷ç©V”þ¼tX_©*sëRÝ®9ƒ‹AÓtËT»žÅ‚sâ}¤Ï-%SªB•±UB¯@†Þ²Á·÷.½‘¿ µŸ0˜å6„ºê¤ìõÁw9T@J΂&6£à×V­ÇÒ_9ÓHc³‹bÝÖÞ*² ºÚšHû/“Žœej…Æ|í¾ë5…–åcZÁø¶‰2Aß2´žaPÏ_¯MIøiÈDôë,ºép§—®Ô\duD£‡·Ô(8¢3в ÀÇGÌ uçz¢ì q2ªugp”U¶E|Ÿw77-Æ ï ›‘óï hn£?ç-ãÁ*îÿô³jJè¶õ€ÉþêlxÉvá–OsíNQ€É<§Ñ¨ò2•Ú&H3ñn¢H¨DžX|§\¤­qYÕÔ”!¥cá‘(ºâ€â²¹y.öÔòª†øÉ֗쵉oï¼TQ&dþËpNõÆZ¼¬÷y?‹×Ìï-JR;aÖe:Óêýñ"BKIWxŸ‰+Z.Z6¸uw#Þ4A»±µ¯‚ܰñÞbùQ¤É C3•Úÿ6<„/bHb{&Û¼e‹/U{¨â —[í šæLŸeå_Uc,&dÎŽãÒNùW¶A78Àú(^d˜mŠž‰†cGÎSŒo“»#?C2íæ´œ»VŒAø*áhQð’FŸãmõ‚VYèT¨©ÿ%z-‹B´fVók*°ÑUÞ0Sý›’ëÄnûRßÁ*ÌE© Äû¯¶;¸™^ñn³•¨á™¬|P1I•FsTºeñë­Ár‹‡r/çÛtødM½@¢~fŠqÜüÛqPš®Ú™¾Z-gZãÖÒ™²W¼ºIõ¨PÝë.æY[ô#jcºG’s¶Õ··„/¡ôwÂŒkw²Qƒ#°Áp#²úq¾X…¬Ô ¶N“V’2Á–Wr8 …(0s—÷Ñ÷â5Ð,Kâƒúg>òñù+å)´ñ#ªµx ‰,â°$uUf²î„E‡szШ>ƒ€]ÍŠ»’˜ÂEÂîÂ%|6 :†4)7/ÞBóEû¾€&ƒŽB ÿÖ®Zc‚· E#Yì‹!-+±Ìþ­š8„’Z7|:Ü(ù `Ç®D7Œ«˜õ'W‚eó  a½¢y‹€u€Cý¶ î¡ìóÁÆìwÚ@ñs¼uÃ=µ\DþºÃÞÔ¼è²T4¼äWëO¥a† õüÊ:µy|Å8âÎQÇxg8Ü4ð”k‚šú‚Zø„W¬*…u[EØÙÖ•‡¦›“UÔmèÿIRã1àœ`KþùU‡ÇÌ ‚"{ê® Ùü>™i»ƒ\ðÿ€!úíÌ‘5ÅéˆÂ}ÿ×•aúØr ßzŒT"i9`Êz)Jµë**Öõš!L=b´ËË2Ø‘tZ™é‹3—6¨W>â²$ì‰VÐ+ª4Lj2Ì)Ì­ñ—¬R™PahÐô¤Í%âñ÷ÁH©Ó2}°gÆéo'oÃM(·–p¤Kurï¸"Cá¡“—1þ[–¥ß¥71Ä _éŠi<Ða5š Oÿ6Å {ædá¢Ê/þ JÜä|~៰®.Õ ØlµõÝK‡pu©N¬îˆÙßüJÅøÁk¨¶’†:R*‰Gú°|b»};ùH÷H³¨±|e¼¿~›¬-YwÎÉ ”1‡*9J˜*J"ekoÇ@/çG¸×¨çøµ#×ßRõ}×$Ôlº´#ë/Hyã8{ÞŸÄÛßY c2¯qÛÚgÊ*‰oÀÑ&âhíyõûœÞKÍgÕöâ9Oq²T·¸8Å:Ô•*’hÏjBËìyÄ·PöÓGØ¥ÄÉYÅ+|éìÅï×2Úñ“,lcVre(<¼<Þ/Ö‚\Í,rƒY´èûð‡6Y^™³ŸÕª´žÔoó>ì'Ù×í-.£Ýb…¤’"ö‚EÏmueüÇfR¹VFÿ(£áH©Ï’&0üÏBN2ÿàãôvN¯Ük͇×Aƒ¸È ÓÒhwÄJ<Óx³ J‹µ÷"DÃØšŽ¸c\ÍÇ‘¸ã`9_bt|¬ž!±Æ ßb~À½é¾yp^-»‹“-†ßãù¢ß£¿S‚Fc³"‰ÐP¯G÷ü~Ãze{ÉÀÛpªÖ…™S \úE Šà·1g!ÄDZÌD8~-ÿ4³r=Xk[Ù]ó΂Īð<¥£è]ÚóÖé+þê(¹aùý¢ñc daAŲè.´A³»¡j𦮉.šß°«ÚD O½}fšïðqºò‘•2ת«q¸Ä¼°¨Ô¦ÙUûQ ˆ£NˆÇ‡¿Z¾µí ©ƒsûæªö¢vF63#r¼·Õn¬kß¾)”R#KPoDlN‰[D§È0®KbõUMê¾b¹ñæcçSûn¶´­~Ó î$l€R¯í‚ÿÏÀ,•\c^æ+K¸âýÍo Êz<Ò熴hB‡ ÈÓ!×g,—Ûépè[¥‰LRô~V•/Þ¸_ÆÍW—`7°ÞÂA:îVûµ~ ý|(‘|ûM;ÔzåªZt+n¬œŽÇwMÎj×}6KŸ3t>öÅ)ò–"Šq“UîPQh‚ý ZثڋB~äSZõƒý!iSÃå_zÈñ},ÉãÃ@dù ^ŠÞñ3åY5ø2Ð,3ËD¿XpÔµ6Ö¬i¿vƒ ÃèjóB?…Sª ð£s{™ù_]¢˜°%=2º2#i=N-„àð€ l ÿÉb™çrät$–+‚Ñ;~ Z•[âýQ:\ƒQCBH»„%k ÒxräZ >ÀF‹ÀÊÐpW¿RJ‚`ë¼x1#Þ(ï¥@Åû¨–Lˆ™þY°Iìy©Ž;|з÷Â?*,cà ¿G œ!Uô h–´„qù²ª²æ¡¦’tZTŠ.¶µhSw¤À«_¢¸í·çóeÛh£Ä pÁìgçÃm„LyzF1ˆ2>Z`¦°Ø2‰v¸Á[NÀw/oÐøŸŒvôysJ€ chP õp‡RT:š"ðB’§}Í‹íZŠÜ“5&åí¨A®övÓúâ+$ÊÁÐVL[¬~Eç¿·ùƒí%?ƒ+»–œ*TÿÝ^^ùœ¸ ÝP8“^p<Õë Å ZNˆ;#ÔeÛ«•i2?žÛº4®IÒ÷mPº #ŠSéÄÓrÕ´fgm“…àð@¯ip‘¾§V=ÒßõBzÙŒÃÃýQdÐO±Î1"0ѳÕ5fvHòhÔ-ñ`‡ˆ‚ qÂYÙrxËõÙÃ#Ä¢ûÕ G‰ö·Gf£Ì}͞ǜKZî}ëeê5õu @Œ¢– ½­Ë|” Ät”Ãjè‘ʺÖŠþHDÞLQåò ùÀƒxcþ-ؓ⥠#¹‘4ˆ²uÄ×iàC.ª#HÁ,µä–ùq·rØÙmø£›.!tÔN›Fl#ñБ·*É»ÛO¹à¿åSÕÐ ã«á(4׉RQÝ XÑJÊ ¶=ÃgtJ ˆúˆ’ˆWÞ&Cÿ'ÒTZî2¥H€s&ú£ÿ\„ª·‰¬Y49}3°ëPR@Ài$xÞ\³–‰2!ÌN–ßÔÂ;"¼'/‰H@»è'Ñ4Á Œ¿¾§ø×Î_7·~5k^f2ê;‚}‰a¶4ªÑ˜/©Ðz ¨¨kUTršêÌòùäºmU_êˆvFRé_Ž‹|½¿#Yær¯È“Àg§ÄÏ]`'3=õîIþÓì©Kf›^àYsz¸½]ÿ×ê|ÙÓ°Y†hµ¨†&¢ô-?î„°>Zg&é2 t„JQ5Aåì¶•s¶ô'ˆ×ôyjâBV,WH‹V¶‰uáWx/—iN\¹óqË¡ºÚ:¬ŸÄf„û:ÓÅÊ·í’X2p%wšBÌ˰úc>­d<²f“ro“ƒ÷˜"º®ë®_ÎKÛ+“íA "â{§US÷óÉüÿZ")ã·ëçëÌtÕ8v…Á˜49Ó0°TÏVTáí…¢[˜.¥ rpóèvO’`Qîóú¾ˆÑè}]böYÑöKEfe/_Äß:Òj§,4­â… kfg}š]³‘\ G–ÇW¤ái:¢áš\+¨ný\; ˜#UaÞÚ ‰¬žLtJê&ú ­8¿–ü5¾ŠÛÚìU>v}T»Äì/,Wã¼8E#ˆ>ôЧv—(qg¾¬çe)­ÛÈÍ9­\– 'X2g¼ ?í]Œ”?ÒŠ=$%„,\H‰†Ñß'‘ë4Ïe=|{²q‡˜!¼!òn S¾ù<ýÐN}h=½½êËà¶o¾Ir_CPµç±íwœ²²ÚdàxjCÔ·ÜpmÅbJk¨þád74Jì¦ïŽÓ¨¼FéÑ~ûèC|ëuÚ.NíZà|†sè½k+t{.lF‡´ò¦ôFo9ÍPK3ÖBî«Õ‰fÐDÖö23Äè™5™.T%7ÅõLÖ+~»tä»mP¦‚YÖ†_iëü²¼¢¿!Ä%û\ÃìlѨkähº%“æ\¼¥XÜô% ®; 7ÉƒÇøF]jÍÅËûgSInSC_Ðe=êÁí§œÚ—ìÛþÞˆLëW$8ßÅò;œfü¹Êþ£töOH*ÆSý¦^ Oúë<—ÒÀâÈ„œ< DIÇ[¿Avos‘¹®½ç÷L¸}ƒ…„Ä+Ó7 x1d]2[Z“Súòî¢â  –}S²IìëƒW‹U"‰Øô~닃`®"QJ5©ê¡‘Ð\܈X‚úÛ¨^’“ýF¥d3Š»·À³£ò5´%I*Ø=ì"Ÿ{º<Æ?Ÿ¡31×í+U`ê_fA÷8‹vv,u'Cð)¹EL ¿F@Ç‘s|^ÀTK›i®mcüZì•jyò›U;„ÊOc½øB U’å(õmâO’A)ö³ ñä$ÇÝ,Æ'‡ü~CW\Vq—YÏ&/^“ˆ¼ÛðA]äÆ,CÑS±ÀÏz @i+‡w[·‰cM6ßfëVnêïhi èr²Ê· ³ë=H¤AiYZJ%&´ñ¾äÁÆžíI3êo›¥¾95Å>^¡ëßü„¨/z"è·÷,`À„TÝàV¦  ÷’·³­ê«môÓ;¯¢ü§„EºGv{¶ ³Ëô¼v×>0pŠÍÀs¦¸²epÔMôg«+¤D1YÖr‹‘tX?N®£ Ŭ7™ó§86ô÷Åø ¡Ò¿µ %ϽHåþðå'`p׊h.sIZóyâ•{´_Æ“eq ZÇ(‡üUÄ3<?à¿»þc¬™XŠéËóÉ´î‚Ô˜á_¯"pŠÞs·”°ÕÚbŠŒ‰¼ð?g ÈUoýmÍ•ÁªX`¡Ï&Ä5û AÄÿ¤`â×±ý!¶©E`Èx·ŠŽxö·T}ç镞é^¼ µ_ØJ:Sµ£L~Ö×ÿų4-"Šk?‰kõ À !Ý@$¶Q”àÞ£<@er齧Çe䮿x„}|k Fõˆ'•ø—X>£íå˜y±_Р`û(?®0†–'ürOáçÞ].®ÆÛ÷%Xù’ø=šý@\À \P /o›•úmR&טw¹¼AmbV…ªSIãqôO£kPu&Ùb¿¨/‰éÂÄÕol”¿±oTÜ3ä3x#Ím-$™)ºL-PùòûÀ^äýÞ%ƒ@2,‰a§o‚Áð»!þd¡š£Ù$å”™Á›¹@‚> ©VêyfúؤCfjŸ¾P"£ë•gK^ïþ&O|rá&ïnÑ#•‡1@©ª¨½Dï‘Tn!V¯YK3´I›ìCD§ÜÛRV‡YØ·J¥LÛôʆp›©ÆwžÊÁ× õO7&)#»Z…(†„‡ÂØæb&·I¾öᄚÈRóåqÊ+ä·ß°›¾B)Ο*¾zú<ù»òf',"fBð{ÀñðÕÛÖv¶ÆÛ^ÄCÓø­r†w°ið(v”‰JCQà#ù8}åTÂÃþfK›IƒPp±U|ž£Î†Tõê×û¨gÈ©¿ÑUÀûÉŒm²·|YµuªDìåÑýkƒÙ?^¤³œèP¹0¢ƒ{ö2ÜZÆ‚O´êCMfT9i½ HÓÅ}ûvÔPg7Ð~÷DRø.µô†!]‚•}ë'ÓU< rCÞ’‰K cÉÿÀ¯^–æú·Vÿ:Œ„˜âUÝ+?•|¨~=‰TQ@°Ùg¸}ˆs,‰)»h76þ>¥=0ðƒèƒa{–¤õamJ—D¬ãëÐÜk`*wµ‚ÉçsŒÍØ{ T›Ü+4˜ƒ'Å¨Û 9 Tr‰ØÏÒZÃ\.ÕÞµnAÝÁ„ßá…§†cm;‹¯n[ê´<1Û¡JÁ¾Y׈K3ÀzîjîiSÚòY´ÖEvàe.s.=9÷ûc°/Ó³þ£½èEi^O‹p ˜y­Ÿ'QKy+C«É_AÂ?A3ïn¶Î»Í–¥ä†³Œ4»ƒŒ%¿µ6RðŸtÉh²!·?½zÑ;ˆ5þjaðGÊ`$ñhЙUè"{ñÿ.UazÂB%’g;L¸»Ï÷™·­´}ÿÓE¯äT±Ú×qw󸧳±Ã¥å;«$=m— 0msMHìóà:zãÔ÷,<–“Ç”.Єm&k·¸‡»è™†ºø¯ª$½Äelêþ}J©ÌL gÞõ O_ÿûÊYz!WÁ¿Ò"ÖTU›6/£«RLsŸf°SÑd‚`mÑŽœF4ÜÓç4£R€E3išÒoÿ&z 9Ÿk^)T¿þò}-z7iÈ´D·çAÕ Š…óhÃk”UÊ6Òèó’_Ç],0Vô{DÝÁTc*ÊøËñbÝ``¶e”cQ@ý3Ê>;F«H£“ʳUÉ¥¤3k$–ÍDlxø©Q¨†&Êë”=u6høÖÃîÓÜüE?˜ô[vÙ¦.=ÇÆ•Ût¸O6¾V]Q—ì6ÒßÂbÐÀÿ¿¯þ4Šå2Jâ—«x&ˆiÂ'¼zħ/¶%{VW²óNŸ·mòI/üy%: Gc¬x)’—=…@”@r h›aô°²ylçVp‘Igí•ÿ/ájt$â›ím›m6m÷ÖËyÎË&÷Öh¶`§Ëû¢©'¾Û¼ä"Þn,ê[ %d8]’‡vÔ—B¢$¤â=>ÓW°©í$ gzY£Ä÷Z¢þé}aeóŸ{žjHwUwjÚU ß_7@/¡¨^eåt BwàN`ª æ:TÊö¦j=ˆØÖ³;+Ê==!ÜE*Ò<Ôò3nUO©Î;b£_f=[ƒt²…FŸ¸•£}y 7ø¤P-÷“J_Çv´:Ï„Œ(½;ܬâÕ;ïé<.D(‡(nôRˑڪÞd™)£L£+ª®öÊêeE`âðs]AÁ‹*³PY×"ó¿q?GEå ‡³kñ Ûg0¯¸%Þtv_-õÞ˜H×Ñ×o!œF^ÎX9íör¸¡¥nHÒ!¨G?+;úZÈÆûÏ7Q Ïb§î‹PeuT@ÈGØÈô¾ìÏk‹4/ÄIJ5úTÅØú/ ÛôXÀ{c÷¬¬ÄI((F‰ð?<6,Ö.Hç¨#ŸÒnâ¿-¤z± bŸ‹®ÐÖ”Åû×îÓyŠýWüÔM«v¨š6k'´oƒ¶áeðÇßl `Ü2ñÜ·: ¶Ìð.]̓×.áïÞ¤¨«u4 › låìVÒjÞöêï.<ú-ùVF[Ž¥–ŒkYæsõô¼Lh!.%+rîˆõt€6îÑsŠƒ{¡ÐYZؤÍÔÔ_s+ p»Û‘Þ·™šœ#¬:³°ØKø9® ¶c’ ¹))jE˜cSÐÓõKÙ*\Âu£s…÷rs6¬ØFü”˜ø¬éxt…NFNÕ*¼¦Pî °@Îé"k9üá+JlÄw ÿ@ï?-nªê?³„ù2/—á[­*hJÅñ™í’‘R±ÃË2M¶Õ3ôYõðkLžÉyƒ` ~È\5"„ýn¨ ƒ(9·!I¤h½¹¦`‡°>©µ¼H>Ùä??IHIs<͉Â䨿¼Äø9èðµ,Ð%éë{áþ_I½zœ“Í’”1´T*«FT%m‰Éš„Šªñ½VóØümI¦ê“uåYôe=»ÊÎȤ9ï2©¸Ò€a ɰ„¹™žÚôˉ¸¸Å*ßÀçjQÀ.qþðú¼¿X½‘ XbÉœÏe·>ƒðàUK ?“´ÎèX#÷¿rdÇ',“E¬j2ÁjŸ§lšfÂêÄDùàn¶îó )þ›ù&Ä+žDSbËš|:#5U?òo¦Çð¨"Pá¸_ôï?Ï7HµmCf›84|€è‚u¾ÆÐ?aõ¦Ô•Z~¨îU´,PïüÓ~ÝXÉ»Šè"¯ÀZlþ-eü›W‹veCÄ!ö60Þ]ÔLH(àõ¾>h”YL­éµ´×?ŠÀôó· L<¸ÌŠŸw·v]ƈ^0·Î ±Ù~b[3H À‹§g[ë[³~n†Ø9ßtˆòð:ØGWµŽ=¹gê¾Ñ˜Ôw+hÿ ë²”5Šêœið®A…Ðmpèt´}ºhAâS0ú]wdd".ÞødÏQ»‰@Ü”²øs’!åƒçVÔ¸¾© poÓ=¤C@zÌ1"×H§„'â× mÉ &k]7uåÁÚ6®¥OebÇ,F0I@mÞD·ÄÎ÷Ç\˜PCÁH‡ê Ý©,³.ÑÀ¨qwô.h“¸'#`? îžó4áÀöîN¾xHpéXB±• ÈYÅoû8GÝñðó¢e\é ™ˆsŽ)0U c§yègOU3éÔm좷» >ÎK)U©Ç•í™ÎŠ~oz'š¯ŽR¹¶ÁüODU~ðwœûØÑˆ*^~ÖâΧª‘eÞã¿QS¸ä«5wwLÝ"hnB|, ¶›îA  '<_‹Þ)hf÷ç WƒŒë`ÆÇlñ·¬¸Ú/P ãOí;R3ÿÒçŠlCþàÚZÁ°Oú¬Ý+ÿ‚Nú&8øÚ¼Ç¸Ë«­*L^ðm}sžŒWßLô’$¿§¸ Wf_»f  ù æ^(„ 3 f¬íÙˆàh­ä~…<Õ1tlþ¯k‘˜0²ó£òÅÁóÉ.31/” ‡êÀ1N²Y°®ìømÓö¬ŸùàæÜX[ 7Ët‚ -)‚B<ý£yZÝŽX}¬æ‰3îWàiZþ°:ÍãÊÇÁÈñdü=±ôè¹Sjd¸ä[x+IéŸæéŸ†R¼MìJMèUñç´í HOÈÈÖ7ögID )¯ÖWݹ©¾ÊdŒ V2Ô¶µ ûµGz)£3£]îƒVXk*HÈ ZG‘s›Ѥt¹ÛÑ*s¢bb¿‹ª1õÕzy+=9Mèëi| ŽÆ^spf"“ ñ³_çº3r=Zå w¦¨×‚æ ’ÚäxIº´ZÑî¬õwF“ÄSsaî,gv,mŽg¨=_’çæÞŸ“¦;®–OBC‰ha¡ÖñY,.®ž9QÀ@’«¬ø”ö:ÃfƒùhƒNþרN,€e%®‡"…)ü9 ãÜ¡G–´ãvÉJÙÉ=ý_¢‡j|hè”iÉ EêùB¥­:^A”=]LÈú21ÃæJl‚¢ 6l@K™X¬œê$W VðëJÙ Ùq®>Ʊû,¯£/‘Ov. ÈpÐq®ȃt2\Ðt0­Ny<ÓBYssÆè{'Á¦ï—&Ù0Ÿ¸ŸqdñÐVƾ볡ˆ°#q˜À …ƒÆÁާ ßÉRRó®}™ÛPŽþifŸ L<_i“·xE6óÁ`Í&Ï6MÝmÜãñŽ}6' ¤˜‡8¬uŸcûÃd(/‰Úáý&éGFåõ>4¢þõÿ6çPï,,ñ\ˆ£„WB–|v´ê Áú9š"0„OtÚvº@QãWobõ Æ!å·0莶}5®-ó²S åÑø¯ ¡NVå ²IK<ƒg踧ßñ$]+\e¬ã`·ªk™9s:ºšsÞwC ¤Bní˜v?CìÓœYâ^›ekÔ ¤{”¨(CË$Î䧪[ÄÆÇj#þ$9󯘛Ù|¬iì”aÏ—:Ѻz5žÚÏÞðI2ÏÁQÉë)±¼ÞøM¯õż˜Ž:Ò‚8%‚ŠceX*¦%³;¡ïôj¡@¼8°ÚIB£Þ+7¯4ãý*¬ÞãƒaMVMŽ˜`n¿€±÷»Ð-㟂¶©¦—KéPF@ýS;r’b¦ÀFÎ@NKe eŒ:DfÄ¿‡*æu{˜¹âÓúñ"ðmÓlÎÞì‡á@ 9Wj¿‹(Ì‚Ré¾1÷lú#‚^Èø;N ¥X=„øyKr‹'Ù?êèM™1nÁ mrxámÝI•꤀”',[gáTaÈy—µÍ6y_ÃúLL»O£Úˆ…´žë4‡<²Y•xn“5]ñ]ЬkÿLÌE˜·hôó°7„(ÑÌ—b?ˆ£PÑ„»í[ ¸—Ît¹ K3ð“<ЈVÉXw#OŸÖG‡–¤qE™šÑRÇ•–ÃÜ礆ã>•àÛ Â‚ë¬ •’ý­qdºëàS!÷€ïc^5ÏÁþ=B#!=%füµŸ³ve¾ìTJ/&¿oðÙRß® I¹UÔùÐë • ùO[…l²lÖr<ë@ôÑ«.YЏƒ!ãø†pð ‡°Üy‰aäEáÇõä øÇ–?¤Í1¶“á‚»œaVì:‹›5kEðL1‹FÇ¥W=I€ô~i$Ôkâqß ±s‚…ȯXÄ¿þYLÆRêHUatµÚ(Êöƒ'B.Àv5EÚ–bÁôÈ­Å"3räxò¿OÌa9ÙÈœ¸QÖ"¾Òõ,ÎRƒ«u,y¿C0…dò«ÝC”!&¢è.Ù7RC58y³¥ÓÉ›!ê¢Òy™ËW)í¨cùdM:Š*Gᬉ18GñYºêzsàª]½hý¸é‰ß>…g¨IçyÓm Œy÷.Ú!ñ=aªÈÒª}/Í™ƒ&lßVJ[Vx|ae —– ôK„íj. ûÜ(ÞÉ÷ %± V›¯kcò&36ñ¼…ˆ.R·‡{Ù+ƒßçüÊúï#^p2>ÓspˆÝ6k¿çd.=|ŽÐúÀåz"-=`¡XÀ÷ݦ¬Æ ç¢ÚñîeLÑïM/x0šp–õ rãùjzÐ÷¾ymÆàš89Ï=̬"þ@BwÒ±öù­’Í®«À^´úúõJùF ÚC^.E_à¾_‘Æ2ß]ߢ¤Ù)¼ã^.ÌTp-ò•’cùÿœ©4¦m&,O†?ÓÄî©E‘”>>~Uݰ×îX”Ý›èìçéÀ‚7šTY(ÝÑû‰ÅH÷ Ñ9/eX·ÏŠ&NN@¼,“)êEùñ'¥ð»NRý‚Pðè_Ú“™å±'ÖFúÕ?G<"2­>ÓF(ØÝ˜1¡:>1uàJÕj«GÛå>z£äJ’³«M¦ú‹‘Öi”"˜Hò*r€â‰{žZ¹ëS&T¸+CDŠR}ßôˆS™Ûh¡ŠÃpIû0waÙ­àF™ÁáŒÊÂß‚úët[ü±Êó¥™[ñÊm;;6é‘uwÙ‘ â•ZáQ«a ˜~¬i¸w~0 åIÅFZu•Ó‘£[¡2JA¢ÂéˆTÿx“ì"\çÈ'KáîÇã¸çÑèºNM;žuN´ê~ˆCŠë€t¾ì=‰f”Eb)i.öY8ÿ(7­WX—‚íã—U ÿy~¦*sür+ÕÅf¹\šÖ¿ñÏ»‰Ü RS]ĽۧË|ëCeFÿ³¼S’–>†×ðU㸓®&ÉŸïõ(÷óálš©uYl-GQgˆUÂO«DBo Ð)·7±l8›gŽ€ÑÇÈ»J%Z‡qt'ë b£ØK,þ0¡ñ«ø(¡Q¦B¤“[w“ÊâÛ™T¾46ÇørÀ÷²Ïþ³]iE+{¿r­]²‘hjÏù8eà!u§‰È táA#Î\Ž6æ §Ù^eÖu¡R UÂO|ÅÊ"*í-k¬gÚEúÀ±‡6ô’óã-&ZAÔk¿ŒCö2ÔADqµ]TÓv¶Ì.jj Fw *¨r½õâtWžè}- Àö©û6ÓÖ¹Ù;9‚½Í«cEJ`"½bÙštÓ{—þœèÎ'($JÓЊü:Ÿ@iÊ{§WËnù‡Ž÷DN"‰çfhM0Qpf`N`¡¶ìˆ˜Ö£Ž…pçfžh»ÿ˜;«­=U£_¨Ø;öó¾Û/hQœZêÙvÊÀ·žc¹ëIô®,¢Ä£èByg£Ñ¸yE´|’RNç nwŠÖá†ÄM™äÙôÓüã¡eu'l¦ò"©uÝ„Qù€]H¿¯x=äA½LÖð}~Ï&ÉÃÚghÖGrO‰kœ{#2ý—È…€ñâ{-FaÐq¥°îG=¡ÿc›(!x~–÷_¿Û_>Žì[Ç"EWÀJ_Òßø¹Dy6Ÿ .«€óSÃï(¢™†ð£®¸sÑ¥‰j‚øšwÌ€¹µÃIOB*®„hó©Ð eMA?SH.©£ŽJ†›&„lZ2†C0=©Su–»ú^üËPPÊ´§ð-í,W.† ‡«VÊ«P™@Ý×÷ÑbÔpëªB Ž>ÃWäDÊþØ… š¡–¾eÿ¬L£$6· `—gZÍŠåf¼”q—Qx¯½Ú1²o;NÞm@k)OkŽ„ìulF+›¶.”’Šñ²c‹Š¤mW%%£’{a+1,Ó)Ïìi3)ÖylŠÓ—!ƒ¥9jšp¥"êwÖl7ѵÇ$$š nG£i]b¦€þöÕŒº G8Y¨g ™ [4Šui]»«IÀ‰Ø¼ïI lõyœË¯m?$#5›ÁUËâ-Õ¶«”Ì4¤èãqÿgæeÉ5­·§ÞzºûñœÚ±xZ>­ˆ\›8ô…R@¡‹Ý÷*ËʰðÊm§šSCÍêÛJO³2<gÚžj±î¢2äÅÊAgcšåµ ¾äRO­ˆ„( „+ׇ@L(Õ/Iä¡kº`ÄD@¬öŽÙŇƒ«µD]|ÌÊÞ8BàŒPXV3øÚôA®"ô†g¥ã©¨$_NŠq“ÿ´ÇŒÉù¼Ë•êM+Ãòjɰ9s¥^iãTXuq‰¥æß!›G^SÞu@P×ËÑçQc—E÷X÷WË]§Ìš&È&ÙµûNÜ>c¥¸òŠ„9’ÈvÝâ;ˆv3ß}M_‹˜\ Ž-_2v-·©€Õ`ï3æ7B9Ÿ‘WýEͨîÿÂJ<*ÿßM>†[Lúå²ëJoÖ_šéVð2Ô ð“1Öž<½æ½€Œ­Iý© 2v÷&T Þþ*<è½Ò@Áýÿ£ÖµT¢½.–0±­dM6$”ï¤' ïÏhw'lveˇÑovºÊ®lC©‡‡ƒhðž© ÅãV ž<Ðo±ú€£ù¯7ÞòÛC:äšIºN7°ü’¤0QG²A•#€Z˜¨ÅP·ÙÇ]Ff®À±N­päí‹ V1Û–æcNÀ¸u£>þô -š²äsµS¹ýàÅDÄ~*ToÖ\\òC)ÇNLÞ̪ó˜9Ï T|[MVzV9™F3»˜W©X»ßyý~Õ&#ºØ ½?[íIˆuÀÜ‚@ÿÝ©œ°eÃt£ê¹®·ùúê@¼27ø#Yû!4è˜uø B ‚2åÒï¨.×WÎ$”tñì¼9ÔËÅÖ6ªvuÄ©nÀ¦ÓïYw #£Ê‚ ÑÔ#¿‚OÊ=xƒÑþ¡biþ̶¶C—Ê7B”¹ºW7žS}½î±ÊE-Öªì¯~9šf~°|Ó&VöŒÉ~ J%Ñ%>»ÐüÀ2¶,Å‘s´ï¡ßYþÜuS›¯›!J2fºüd £.³Çòbi”[¥‘ F.¥Oá¼Uä5gŸ€xÐÿ_q52ãh$¼ÉÖ—æš057@å¡ÍËÞà·3YöÁCIßÅm£é¾pÞüÀà‡÷tY[(bò“uÌ]|ýÏ)iáN¾ßîID¨TÆÞø¿Ô<ö8ì«.Ã9¸ÕKðÕÖ(×ô“HUÜÝÛ¶Þa×­Ì5à½yô¡OàðÛ׺ £ú¨ŒõFVeãRŽàŸ­ˆ=¼’6ï9œE7 ìn¹Ú§ƒUHeA‡ „M‘¤/nm fw>ÃR¾|T—Aï™ÀH0¡bÍ“C‡fÁ5ÉGɲ"àvÖM&ƒÀ÷yŸse¥Èl&Á4uºk­ë@V(aÙs2òž+6èÏÉ…Çüž¡äšzžVíÑŒD‰”ǘž±uø‹qŠC<ª 5O;ߢþÉ hf°·FJ?^8ÿ€)ƒÏÕüøãyuW™-l.þœüþùÛŠa.0JnxSùæ®/t8ÈDæÖQuDÀÚ®—V%Àîp ±ÿLqÖô_{Ø÷ýºá¦0oh«èuñ÷Jܶ7Ê07çå תW*ÀÑ䪺æÁ$GLN^¸«5 89E¿ÅQŠ™•ޤð¶ºø½f›èž¿a¤Aî… v*•Üî¬cõ¬AZ(à9`+j‹Ä.zp uùIÍGi±p Î» /-o«ß.sX…vÉ« @i}¤ú¥ˆ¢«Òí‹’¥QN<«r¹·°›ŽF%€HZÛχZút9àÖúAÒ \®î±€5óÉB¡ƒ:jNàç^ö©zpoü›wJqgˆ®Þ…MÖÕw< _Ñí |»ћŃñùs… T rDUÁ/ÎÆgÖÚa2§èØ~Ž p¡p0ê€Xý»–ÚWR&L­ªÚŒÀR¿À´¿ÊvºVû,­0ˆlã·PÎ 4ºF ÆàÙ™|ÁM¨u¨mŠn¥<ýc#<¹³Xc0+yfÆùt85×4øõ½_µõ ذ¦ =VÞKö¿T> ^¨k;Ú1üî2”‹²PYfð0\H \H‰ÞÌÆ"¡kËüSc 8ÚØðÇ ô…BßCkË,çòµü ëÆ Ý•±>Tÿdø;C _lz ¥*ë:“yzútÑËÛ(kàNÍÞÅJ¦ÇŠŸ»B—éÞ_t©ÅG+Ƽ#/Íøþº>Œ6j­N)ÃÞv“­È~!'Âî_ûòòød/V‰t‘­í?¥^HÕN£-… uÈ–…ý Ê|`e#˜e`¾*I«¶31&mFæ×JÎïÔ!«1'\"Iټº£0çrn8 Ó±¦ì<„io$ðQ>å³bà ©š OŸâô‹Ðÿϳ°u«Rå-S…×̧žRt‡å+Ûl‡—d?“ÓAÐë`ÑDÎo¹÷f hïMóî¹n SlßÃmˤ½¿}§þÎÏ™jXòÎ{¥Ñ¾è|4Ê'ÆW£ß ßòfÖ‡ûÒI4ÌøûG˜ïCߓ։ïþcÊÔuÔG*`Ïé1Â9ç\X-TˆÇE)H[!.©Íx-_pGœ²üÇ1ãÚ@r× ¨r6gµ£TT(`ÃÆÅæ³ÚåÁŠ>ñK¥ HI™dê¡ »Vh¾2ÈšŸNL÷âØ÷¸ÛÔrŒ1®÷H±‰ö‰J‰ƒs7uVg›wk?©„™J&Âà xÄî?X¸š¹Š~'›ÀcËbqù ßgŸ±‰êˆÿ²õè͸y¾Ë„† ‚ö?~§Ü¯„Ó¨Ù¾§@ÁØþ Q=1Tàw8èÈ*hC„ìûP.ú·rheqÞÀﶇ6c'â@ple“Ñåÿ]cì‘HV¹@üÎQÎ|° Ú}Ÿ é¡*Ò µCøRÜóÛƒ[“²îe¤8K›”3‹Èa1aŠßŒÃMáR¤˜§é÷Uè±ÝÛƒQmüÖ‘Ù™¯t!ޝÀÐ_´¿YñQØ-“eÛP¨MjpHÐ2c~u¤#{Ð!0žEµ5† Ÿ´DŒ‹r9ðh]?®=Ïž')ÔÕÃXCoU‚Ϲï ¤)wËñç×A©W=”[@tR@•T+(üT‚É2×rDØ®?¹‚çÍV%Ûp•_G¥/׃žò¡$–%)†í äDö™°“kÜ$Uvv‡RÁ– §=f3ETË6Cã¹rn¤“WIš;à¿ojßÙá8k{û²AV¯'•*¢{=¯É¢›E©Û™³C ‡Ó¿XsÇê7ZXPÂýÜÙKA Ø”O>n½PÛ\Œ’!Cýµ¬CZGäÖfþŽW± Ns~’Nç öÞþ!Ǧ•ÉU° lOF™N¢,écL³œêê/!¸–0‰Tpý#¤¦í"ĆÛoh1Æžm;º(Ï]¥ýÇÉÙ4Q¯§AyS¼“ÿ8pÐë‘øÜaû ¯ã$±;ZÜá' ˆ.ò†®ƒBã$ªj3óÆY.…ƒcÁ²ˆª08=^ÕXT'Wh½/J¹rg/¯G+3² èFó$Ï/‰Fû Í áÑ;ø_åKëj{©«ou¶i†p§¦šðxú8‡2–{–ôí#GZÙíFD«ã˜”œçNø´ðzjŸ£1þ8@wm.»ñ¸‚a»„gBÐlêW§,ˆ ‹À;Z=zÁ½IWôŽ^e&¸p‰åÌÔ6‹ïœ!䥨ÖÄÿuúláÈIö€9ƒB,¼–3g Çþx—دë‡Îõ&­½â¦£ý$Ù÷PÙÖÖÔÔÑ(áõ€hË¢ º¿{‰ÊDmÕKUࢣÖZœÏûëí£+»íÀ$Ÿ [íNèïÅ)k¯X¢¶Ý`öB\.<öMog¤c¨Õ–üé–ĸ@±ãeÐ*Ûݰ+áQ ÁqìhÛ(¸@vžá)Ú R¡ï†¨Â€¶wüy”Nè´{Ù¶®¨„ýå\*sÂ%øwaÞLs0$©öØÒrõáI'Ô¾HÌ%Öôñ¹×.!͆æ^Ô¥¯mÉu¢s?rÐÃ/cdrõ„Zõm]o-ûZ}xQz›´úØõQ \ŠâÀ ]Cl š…~k`D¸±]Ú¸MýŸÎ]_šÔã6¢–G÷î$ÿäØöP(& ”×»ÿô ÿ¡AIûª«X¯óêSZ™‘8¸hUJ¶¼¤ŒH4í¸ÓžrHX%²–,„±†%b¤ªÍsAcá¢A¬z~ÞŽWDt@7¼HÚ?(7œ"_²l”òhY~m¨„ ËØ"/ cO†1èWh­Çt¶u¬-²VUhƒè‚×åj Éÿ£ ­ºÉÛ±IñÞ#3n€Æ~ýÍ·þàÝ$ë;åÄ^.Iu^æØ·ÏH¶ž¬ÎY?RÉÜj— Èµ¦Èi¶ÓbaÖMhTËû¹½Š ˆN¿óÔ X4Óëånu™i¶v“ÚívBL›Œ,Ù%ü5 ®"jNQ#¡_]c·—l!"ÿ^Aë¸a}M<*ád /3Ñj×o ¿P?Ê|ÚIºÒ+¦ä©ÍËQg›Îø©3¥Œ3Ž¥ê9ÉxÊÛj¶2§ÒйSn«6©ž1µ!ÚMÕõ~ž%¨>°­˜pn¿Å“äñfÁÇÞ^‘±¥°„ÄdàawFÕéºÜjŒá vÁu¡ÞW¸˜Zl^°i/ ¯JªðÀ_Š˜83=ÇÎ"Õb’U¨G‡œHÕJ f¬®j‚/ȉx ù.ëM)lô%ÓŒÔÅ®çM^Њš£t¼'zVÉ£ Y‰Á_/ô[¤9‡‡•++!ã1 zÏ*H]=uÜkòs õž.gœ…ˆ³âjIãqîˆîÍYK *Ç7Ò±@ìßtºÁí!ÎQl?÷»ŸðMédܦÑþo¸{D"2äNºÆÏaƒ¦ÈœÝ™§V‹˜§^aFÊANtÍVK×½™÷­p5JcÎM¦›éX^`á ‹˜ù´ÐÜÙKÈü ÌÁµ¢ôîω³qQašÐHå­´6'¬L$0€áB9ô7§g´l‹DvÔð{$Ú6&Ôäœ Ãä–)Zãù¤Sø2 ~Èêë®™W)÷½È\0& xy§Þlñ_.~¨åšë÷q¾OA‹Cs~su"€Ô(?Bú%5"’ѬÿìMk.&¶YgÈ,`ÓUšØâº×#¡¿H¹Ù·óháþºf[ ÷ˆô³ÞµiÔŒHgž XêUö¢ÉàR«äå:c_šß&aÛ»¥H%½zi·z°L,šf\á¹G$áJ§Ë÷?›Vɺ¡…˜‘³ìº±Ÿ9.m þ4Þn¶ö)ÙBL5»Ø¬Š£í3¸ zV¸§ñô‡Ü,|TÑ&HåD·ŠræßB3ïŽÌ›&)fWçð·È]-WÑÃVÖŠ¤—HìZÀ¡Ö:áú ”"'ƒò÷ÿ¥{§`c&ˆZÏuc¸ìÓÆÓ÷æv>('?úQKê˜Ø*zrÓîœ&aBª;§JM@NÞ¢¨ Š%)’•{²ŸÑ‚¿àH 2ßr:ì$¨Æ6:ý‹üPÔ}Øý²ýº×[ŸËÉÐÖ?Q€5Ô×¹ãÉ…V€¼ô«ñ &ݾÌü~¤Œ³”ÔoO—é#‚TNÁ±Òˆ1{À[òçDÇ”IÎRÌÈâAÞ! …~\›ž=gÁ˜XÆ ñL%­¾ à”¡ÒÛC–Ë{K•ÿ/àFóz=ª'¾póKØE) ®.3yN{±”K®Xâ×È®VçA'™ŒŽE…Õ¦®yþ‡¡»†’2XÅ{&ƦÊͬ:kÞ«¬tÉPQñ½å0E’Œƒ…_z¬ žœ!¢+ 3ÿ{µ òåó¾6?ϵ£•}ê+3ÈÚÈÜõò9=œÎ[F³98ß“É)¶S=+E¯¾t„"ÕÆËÙåó(äáØ‘Nìjj°ÇKÀ!v¶=›ý_A—–Í@Äçuœªƒ„âÄpS ¥VÉßz5æÙNùõùâäþŽk°ì¥N ÿ®tC¥½&æÕx'ЩK gˆ6"À@ÆÀ]¥”îcØÛ>!šË˜@ñÝ»6@šË]–EåŽ!dCP€Bi#½nh( ¥¨{y‚MJ-¦Àiä®Oü#›J9‰õå–WIKnÆ­þ.GÓ´*ÊQÑ1Gè‰âÓFJ×ÒÊñwP—Éíeï~Psi ±.°5ïãñ¢×ÆB<¢dD\̓j‚£€cëÛ¬qx¯½5âG¤üØLòËêGòôzÝÊó‰(šÑ =B4ß¶yãÁ B”¡÷kŒ‰¡?([äÄÈ%˜ÕC /¤ð<¤˜:¹ÐÊo„¹HG»?M¨ÀÑ —µ/¢2˜yõC»Ë6¬Rç<­>pZݨ†O³®ª\%GaýKµ°£r^ÅøÉ ¥çSy†3WÍwÚ•è™h¼:dŠÜ؉–"s+¸×76Ú%+xÕ,ŠÝò‚œÇÃ|/ȼ:l?ýçªXi_칯jåÉ $\ƒjU¤<£ˆÍxÒjòÁ§*¿ð+ýW¾ê;å®»;ïVðæ’ÛaõÀq?²ÙÛÒ[Å?O¦Ç%?¦òD2®bF§‡ìl°ß WÉü°qõqD%30N¦Â3Jp奇Jé&‘$ôGcYǘÑ~ÿ·~â–8q‹í¬äRÊv­Ò-%3X2–]¹¼SeNN¡¼¢¬zzÙ„<²Ž:Óø˜ïøã3×çIW—;×ãËî¸6òÁof˜GÚOzZäÒ7&¦DžmqÔ(>Cs_eçù+x:¿IçÝÍò¾癃‹æ° ÓýÞø¿ [40O«Kš\7pehCAü@¾ä×ù°äÂQ"~«-_‰>à A¨žýe';”Ö×üëv·ZdLãõ•°“ˆK\?“"Ç ã‹=¼—È<8Šc5åiY?Qtf‘ƒŽ`¸;•ë4¢ F“{ (h A ¦™jkHÞÂi\D, {ŽaoS(ÉÖ:D AeVá múa¿et²$iÅKb¦¼›F“\2Wt|Œ_Ÿœ÷d;Iœíá“¡˜àTc­.÷ÏaåE+â*ÃY¨ 7Ð_“ŽaN}.a.9“6/RØüO“jÐâVXíu´ÊÖÿv¤-#¦êZ"º€£PDVFõüeµaßfTOˆ;ÊF&WK’±L§¸ø„ϧіPËÍ lÛM6‰"¹ß•YÚ)hs K¢qí‹-»ˆpã:+ûžã/”ÌËÄËOÉÛcyZj±.Ø {t7F¡Ö˜Öcì Èù:£Xƒƒ·±))~NŠëž4ã‚ Ä»X …£•ò«†ç8w€”h²n<1ÖÙÌa&¨SG­aŃÖÙ±v Öþñ@T ç;!TúÈ|ùD\Ô3”áü`©ÙÆzw€à ÀÕΩ¾úIc*¬­Öè’{ ‹ÁÏ>Îüv\\üÑ”„NÑmü—j;_”'‚æôn>a>S ã¡ mÛ­±&òòÿÌ…KÍ E5PÜ{Ú ‹RC±ÚF2R*Ö*”`ZMé¶©¯–o8ľ„0ÓRû ×-Œs Êyû*“ÓYKR#NbO.&ä„ѯ}\¾nÿwËa2ógôÎüÛ^ÿc°ïÚ*Ï.Ÿ¡*õ@Ú¹WÐé!b²óu¹{éáŒqвgL, G\ç·®†vóM‚l ’5ƒÏ’MŒ¥rÓô•^- ÿq‚’œñD-tï›@î"ë øÛ.dÉæÚU‘â³"°M_RŒí•φ„ûºdDŒVÈ××/R¯'_ÔÍlÙj…(Õ( ¦?³•v–Ï_îëÕÕ x«âTDMܵjäÝýöçåþºÁ¡|§¹ü0óÓ¾ê¶ùÏ)›ù}oänцüjWØB¶=Æþ¢HÁÊ3y¬Ôÿ埬³°nç2»VJ½µÄ†G¥á¥58ó¼$ÞÌžJøTÅ;r³CÕVþ½þM_›ñp‘&y¥¿EçeT¾G@žd?à NU[?ùÄ¥iLøE:È­Îßßì.}Ú:ÚeEœàdýÖjm ¢¦¶Ù ˆµHKï;_Ø5R2þÐLÿN»>q9( mu+­E$,ò¥y¹^ø©„K®’ËsmX>¬CV+>ìKãêLj¶±kdÇè`ðm"ó…ÚÍ=t¯PýäQŸÍ‚k¨ÏÄßöκ~yݱý‹D²GU®~Ä#™¾ŸÉˆEC)ÛµßÕ":ÅM['x—ÉÛXǦÁ5tElv\ˆÐhÖRŠê^Ô§óa\Ÿà^6X¼†Êj/*g.æÖ;B0%Gè'-ô1j¾¯RšñvéGøZ1à ._0ùr^/y™ŠÃ!V™ó8€7s¯æ²¾uW£=ÀÔ¿ˆú}»UèåæÝïê 6!O©™Ó䞪¼íO¢‹hÅú1ÊçîÕ=ûšwÛíâóâ6ÅØêH{lìÍqcP.²W¸Bí<úC5°;ŒŠïÊ_u|ëÂ5{…J[¯çEkÛtËúW.É õc¼Xåû¢4]ãýHæÿùC´o$˜ý³h­IŠÞ½Ý%ågŒa‚„ °]cÏÛ¾{*©Ÿ0-íÌOP¢%LY…Aq3`)Ù4åÚ›$öBÅ×Ö=v‰£¯ÿg·Ôàu-çÃýoù”É ¼ Á“¯¯ë»|•Ô;–Öø"¸G°TSUiùyäÌX=#™^õ“âmër¥Ê—¢¿,N-Ëž ™Q¢X¾¾@·Š¾q<¾¿×\ÚO.fAÛLffRmï¿\²)š‹}[Mi¹ôíVÆÅÏ{®”@RC–ý’‚:1'ÀÑë8µ ÐiVc|Ü«k]]³Hg.ÖXC::Æra÷nÛRÚ^8©#cY 1xÔèíO$Á¤óîá÷’†s·G𮸖öMÿÓ!*Ab‡~´‰²ÞŸñ=Žªè-õ©~¥VõlU¡ê 9î ÓƒÓá«ò”âb>Ã%œòýÌ {™ ”ÿS:r¥ /¨9 wûb€ÌPÃC“tþ¬Jú>Î$S)LéòŠÝÿåÉ ÓCˆWJñ7Y°×WO&ïjj —õy¦N9à,˜Ï(Ý.×nôã­Ðû«3à Z†±ª°·²¤ʉçöî¾{[’Î&,ú°ËÄ’Fe›£¦ú~Tê1½Â[ù®€_¶X…»Lf~¡Ÿš±Ô(ØG… ÄÏ%B[@ £òÆa–ÀDÈ ÐHÞp‰G"«ty‰èt'\n®KÁ!ÎÉ@5&+ÜÑÐCt¯”q±D^ņ;ó1NNÒዳòµ¾œ­Ñ¡ÜQÎlj3³°Þæh÷F;Üݲ‡NæÜkoàòÞ·5 ¿\¹WÅÃùµØì+8)ÏÙ«‰²ucÌüÎ0ÑÁ=ÄMí²ËÈÕ†(¶VZªÒ:VÐÊL«*%(Á”ÚÏùÂf8V y?Nó7k{{ŒAÆø¾&«Ké×埳œ]$fü18—â*fX‚ ›‘°4 tË;ÈÁu°‹Ñˆ:o_èš*–2`‹“GþµGYì ï$O®ÝD)}y2A6¥ƒ£X„a¿²ä¶° 2qîgõ¡».§ˆðd¡áf਎gëê"šô–¶6ó¥Uxù}D?öµ¤m{ÄloÒ_ø?uK‰˜ê—¬Ô’ÔÑì Röþ Ò)èHá)a´É ƒ];µ”.+*—¤£w˜@⊆h$ÚÚç"¿4ŠÌ‹Ÿ¨‰u«îžnÇóУy 8¬Õ˜î©Ó½½D_dëÈ´;ø]ŒßA@ÑÑîÛ®íÐÇÐ.Æ,³>´Øs^57Jøœì·c)[¾ ½IC¦N E8´0V‡âÿžîN^S„]wœ–*"Ï/>pâKØÓEõ0 uúçz°› {¡’°m¼‘4xê'Šâkþµv ÉˆLЪ²ÊF«¨îá;šóµŸ“Ky:v±24âëºÑ唀̓T<‚O8Xir¤0‰ª_.ö©Ÿïâ.„!¦Fäå E­÷ãJñ/5“õ%ã­WÕðìœÁþ©O·º²õÎäNh´IUc£¼±e¤¶¶Wÿ¿TÔÛ[˜R†…ø„Zÿð]¿_:~šøa w{´ÃB2A.yûIý¨óÎ%òo¥t×8ýè ðœ”Ýhƒ¢K±ß–øà#ÙÊ2Èá;£ünÉ+&$ \s5^Nþ4• šßM~J¼Hú~ʧ‹„ã? HÄ;Q±X™¿eÃé…_±Fo˜NÿŽ=‘S­ ÅœÚ5¥°Ïi&BV{÷ŸE›µR|'v¬¢¶(®GëX¿Ofßµqö——ä« qi*Þ—B‘#@<7Ä.eÔB©@ ÐEÌ ]õUcxM¹“ø&Ãþ·|†>{3_ SºèÍ›Év¡âÊ©˜—ZS8'ÞöÏýCØÄ §qÌ£IP:ÏÈý´ê¹O )“Û° ˆ™±c³LEþj»›¤Þ#Õª+ˆ`pÁ—m—«xÖu»ɺ `¶`ïøž°kZúwó!I–­QÐÆ•£—¶+Ûø èžkZÕ‹«ôh]6Á:‹ ZQ$¬’Õ¯–e]‡â>|×Õ…4ü¤í1§0¾ðÍv½7ði~±éz*^å¶ žÇHÙä&|a/åIäÃäû`H—%ؘT᎔Ý`[xó·(­³ÌVËŽÙ »<' v“ý³‘ XÀÌ¡…f] Þc nåÝÝ÷Ïe‰ðs-,NäsD·Í7¦I+)š—¦èôE¨î´ —%4½Dü"ršÓuq±ÓI#¡›CÎ ¢6žP=õŸ¸è—b}E9婨qh|»\0k;_$¢À Áþ.lžgÇÎaÕ§qA²8ÎÄή°ñX.Ä ‡a¿$ ï‹i!-‰àìâöŠ6ý÷¹ªIèsÐ×+šÓ"èäcu<,ª¢rMÊ5>>»™ò5[]_nÊSªq~üÒ“y4HU€ ÕêÿÃËÀæWLtÿ3Æ.ðªß<†N…%"Œ¥Çyà¯}Oã¤Öî÷ z¸eVZÀ$q7{ýàTÿÿÞ– .fNq(“™™Ì2#›°EÊLp5(•k[Íö¢ ½#*µÚßÞvÑÜDJ»Xï¡W`+± nmó“ûqŒj„cÞXYÑÎY™‡ŒQXù@¥ç×WÓGIY<¶K”p¡¢´¥'TÜ„ë“ÄÊ­jcªV[Âz€ø³¸d÷हøÛ“åù‹½”S¾¤•$*«;ÔÊw‰ˇ@]3€_ÿM‚rƒõ¼Ò’œŠ èvW½îè,ùo9€"úlÙØ­ã)_1/•;Rl‹Ú FÆ7;ëÉYïÌê´"Pܱœ}æX6]ÃVïÁ©þØ6tÔ^ĨŠð@÷§ŠP—êÎW ?G—ud ~k¯±Ôm.Ì5pGFkضŸ¶@5Í8ýÕw]‘²eZD÷ügÿ ªÆº\ JÊ/Æ¢Ã*=ÓD”³xK¨æ¡§‘ôº€Péœo†õ€ìkX;ö¥$7'w‘yŒZ¯·IpÊ;b£ÆÍO_ „é´/.ñó?Ÿ2›—H8 ;É4}MÝŽ¢ ™XI®NΪ{¤NÎ_(`~ãÆ‹>šÒ1é^‘Jª”F%îÙø²Û–iªdâ[2â§Ë½P R°äº~ãã‘Ã[à éHl<…(Ú&±¿]G¾‘óÑ*÷¬¼jêh9Ot |Coÿ³m0v²–?žØãb&Fó͈ÉEeö\þ㹓 9¤V¢Éóæ %› þðm¸ÍÉüÚ#žláÓº{Š¥Œ>Ê"8IyØ„òGþ4´ïR°Ä€ªJ{EűÞº•¦…nùÂóÊÁíM<û `Ǭ¬;b!å·kÂðCYÙ;}ÁDÞ0Ô8.VÊH(2‚ù`<½l³å¶h¼b•fhí¿È¬+(°A@¢™€Ü«J,ߥ'ç$q ÇÉ,j*ö›SlV€BÜBüA³ØlÒæ‰Qþhž¨zG˜íÁ±ŒG~”g‰æ€F«s¡ùŽ*Ž{Š¢§´²+ö: ã ð€ôâçÒ`å$ï±è&4FµªÝ1³YU½r)_² J¾IVȨPâ BcÿùÈn 1B#ξ Æ(—7îà¬ÿYvavÐNX‹*´þ…îΔ²˜{äL«f/Íc­râçd$†b§0­TÊœ?¸Žê¸IÖŸÒ þãbÁXäß÷-q*±ka¼¼ñÏ+`nÖ¿± ËTÏ®±Ä¾ 0øWã2ù?lðà¹T~Ova–ôQÀÇ]"ž«YÁ‡]V¤WIo‘|{µ}*ÈéÝÆ±Â^(£aÔÿzË‘ä+Ó†u¨Š¢S!t ¦Ê(s‹/L“-E/ëçé—äÜ}‚Aá î0÷¦xæ:ñ(ÝKh7$3“§Æ ìv!üm*IÔ-ܯ°eumýdÐ+c,¼¹ _›8¼È®ÂÌtñi´È±C.‹õÈr6›È¨Cf§ùææFøÁTÍöD?Öµý;IŸˆ[ðZ1IéU›§3ãú ¹/%¼ ‚D?Ç Lw— 0µ'dûœü«çEÛG8¨4–¸Hœ`P=_7Û Éü…~a^2¢SÅ,ëË“6u’UP³ÛБÇÔ“ä”>©ÂM°·+e%Oðx‘K‡–Jmuí4-íè›ØØ^†2Ð݆ÑZÆ…pçuÐ1žúCX{ Âñ?6HÀæ^,¬| `‰µ—Q“À8èbÁ,³‚X²Nå˜_«vr[}й×ÔôŸÅ8û‰ž•eƒíÕ1µÌ‰ÿ°?×#œ$ÕŒC‘+¶¦ÒëüµÖ ÔØËÏ[®‹)Ú™òý«³ßB›‚{§NI¼"SDC„¶½IòóÊU‹:cuv¨³3¨©ƒõ4pøšlʲö#ž©„û Ü ¥ñì飾Q¡ð.LÆÆB|žn›Ëï8jçïvÅ#‡Y7àX~ïtÅN2•º¨KíOb2%vÑß²s¹æñ˜\1±…å~ƒYGì¼êMì çZ:¸m<ÀµäÈßì•éÐõ­ãKœÔ4>dÛë]Ï÷f™Ëœ×à׌7ÚŠùNìy!àÁUœ™`-Àé8ö¯ãOm~_æ3)ŸZWExÑñ œê˜‰»Ii6âÑ9éGQqتk ®ÚY/-þ¯-KѬ;ÐX^å8σùJ­ž@«užó™›ð…*MŽ`5¿˜y¼6VþÇV²ƒÏÉ‹`˜=ú«ëçŠé¹äkövîëÉa¸L“éУ¡ds‰¬vÍÅ/(p.âàið×iѲ“¡Šv/ ‰UÌC˜–¦eW•MhÏ$^V_MW8—Ñ +Í«¶7R|ž3èX…!lò®= j$!«²N"rØóü¾¡N´Ü…?¢ö\²"æ©î娝Dþ€-âq€Ë$0¤–Ë.^ë@¾þÀAuß‘m—õ[›ÃEÊ~æÝEÔïöEm‚kc±ÕŽ-«O"|Ä%š†µV.ÁèH:AHex®x¡¹éÌ*Ÿæñú׋2=TøÇË#ÀùNT¾4` E̸v!Û1ª“þ‘Bèäça}®•ë56I ¡Œ~¿ÚnŒg¢t›fBVnï;Q­­`èr½\mÍŠCF é¡4‚ôÔÌ聆3és)˜®‰¡8à~`D×Ѧ9™âºÍÊÅúåÎ[ {ž©vÇ"ãûhöUÌ| H3›þ4ò¬¾;èvÓø÷ãh¥ûI||Nžìr Ôc7ðà°ºzÜïùÆháÀ*—~Š^8âuݬL½ož_ÏJë¸oËɨˆuÊŒÞtdŽyýK‰Æ©9hV È-²§G„ë'üèÈán=ÇŽ«»—~bxfÆu½ÚdO³[a—TTsbvnðú ÐÜWöàÞh~DEp¿3u$‹(ä"ÄéPŠ&êäõ¦«þ¼3¼za*1É eèh6(:ƒdýlv…ÐZäÇ…ôv#EjÂG6KuÖ=õ؉TömúêU¡‡Ì°óðø¶r×à$:…†›ï#H²* úü˧¤)Aô›#ÐŒÈ!  ~ÁÏO=»Àºœ ÜfÍU}?Ø®/\*«+Œß8¸¼ãqFQ5CU2o²†Mu²*L´P Þqž›m ÄýV=YíÐ`?ëBoÁúîZÍ ªÂ=½dO/R0nš¼‰äªÖ^Ř$•ä\ùt§~ñ€m¢(Ê幕L:cø³Ž²j>F¹X±Ài% Î³Åê'/Ý?¡Ä“æs®¸®ôz{Ø`¶F©d»¦×&»%߃¤±Uj®¢öœæ½WÃÕÏdž?{Ëk[»÷ë”[O8RÃY¼¯ ùªöog¨…l²L2yrħÌqXp¿A˜çoÚk'>pE¿=˜;>öÒæà“¦ÛTcܲÕ5„kÑÝ0!‰‘ÞQAôÐéWX¬ó/"Y0ôˆJm%)ñSIûxÞKÐo:‚AÖ¦…Â÷úú¡ÚÓý=ÇÌú `ù6ƒ”P2Uß47×6áÔ(NäQž?ßR÷p^ä ˜“~ P8ÇŽâ;ž•·§s:ãÞî–¦"A"×äôg sT”‹¤ü,TܔɌTÛE³®»:±zy^+à°ÁŒNX1ä4Ãoì¶Ôç.qGœXŽI4‹”õ%Ñ+°b :›Ât=gNð ×#@ª÷š²¯é»[L¼µH)ýŸ@’¦ý„¯¨À”E‡E Ù»—+9‰@gY—#¤ C&$¹[¶蟄­h‘ï®ÛÐòâåÝ9$,>ç¹gÏ‹ lÌ…Y û=ìõ€„œá.’_[¦C‹É2w”yÍÆÐÜÃ<;‹{ê›G¶6àÎ*³ÿú†ù ŠÂ]hKfKžÔMYìS‘çÈ%µ¯ó›ùZ‘êpÕåAÞAÜ)€—hƒ€ÄVJôUl¢ïðÔUµà{Y¾iýžyïÌ® ²23Í~,7áÍf¬ýÌrNQ9¢G ï‰¶Ü’"hFá¡®IÌõtuÓpÚ¤R­"ÿƒ½†©‘Î,¦ 3Ñkѹš†uëE¶àÄ•÷Ú—OM”wÉßø¹¨Gý!j¯¬wpàîŸå¯‘‡â˜Ëz«-®W"ÝiÁâ”Ú+å÷ƆGêÒy„½OAa;*9ë6J™A»Ê®“ÄÿX ¨+³£÷ÊҦ䌑ˆ)©“ Õ‘ßm‚ß P f•û0®”I8°V"Úl“ã!)3XʰL·Ò†¶Gfðì‚z+/ø šÍ—?²Nàf|ÛÄX®Uõ8ê¾–‡[rK¯' ,G€”¤;ùú'}m&’ÄòçåGǺNRôÈØ#TseÒ|ôò$ï§)–ÛÑð†GÓÁžiD5yÝUÖĆ4&"4¹í;ôØVÿ¼‚´J×`;v““s r$†_^øp & –«q‡h1Õ…O*pqÇ;„£ þª<÷¤^§\­ú"ÜšSdÕ§-2×è–ŽM-}ìa7]}túEWþ`/+ŠÀõë«Dbp$&VüÙ¨éB Úˆ TJ/fòaÀçÁž˜Ï¹½©µë„9ÉXþ?³³ë©¥ÚñLÖóxÄ=¾ç¦ oMS8÷L™œhåùîB˜þá6W(N€,ñ%Ѥ Ñr?iM£.3 ÈÇÓn/™Úîã uœùèfG\ÛN‡´Y0°ÒÙºëã}3º¨”!Å·0ÿ©²ië˪1­Á0j ¹C7¿½UXöœŸ'šN.=¦E!)"I!a!Ä,„f»… »“ž4§yh[òR»PîoG5ï€ÝcÎèôºÐi g³í‘iä;åC‹ÍF¥×C.—.Œl4<ĸ?0îºi¾ä¼¸ÿÕéþÁכ…HÙœÎûÕÛq0+O؃áÎ'ÇX4w~ˆß¼otH¢çê l¨ë—¥5m­…?£ŠGŠæF_”ø”*n²­ƒõ³GjA£q˜¶Eþó#wYê-(õÝ×â?¥ðQçiéè6š·Q’¬Ì¼éà'zRKQÊïè[&“=V ãªþ—«,HmGízù8ž©™°C“†jºñ©®&!ÃÃÛ‚û^hy–ÜCŸàì‘VÊK\öª+¦l N.·&ÈQÜ5bêj"Pä¿á.Ô„»Z§.ÌÍŒ'Å0OôWVòAæÊ÷d#åSi'î†$ùâ2Qú;l œµ¾p£g?vÔYßÚjbI¸ êšô€/<~ߨ³;°ƒÛô`¥â,T¯˜ž²ÅõZµ¦þÿú##x$&àä#ÝiûµÏ[öy&¨™ÀHY37C´­!âËf`þÃᣅtÅûx¾^7í­±´à²üjV72iþM—µ’k)fÑ'ÛùÛ´[#PM1 %%rΘ›m˜á ©ŠÎ)V’fõ(»‘WõZF7*ÌŒÔóôÐWq8Þ°) óã¡t¬j˜ta—Ø'ãþÓ¡ý¶í¢.Àü‹!ó†²úæ—\!žÄ>ä8ÊúùJœ¯Þ4L7´¢]Ÿúçæ¹ z¥ë`^ÕLè³n‰0Ðã k9¦+íD3ÝW´ãXÜ ë§E[÷Ïå°¤óg¿’^U&‰k¢üƒ·%+Ìl¨qÈ\*HeˆüægzÆ®ð…ÔÀiõ¬·Ž¿|ú“ÝsïY=þd EÌ›hA à~¸Å¼—Wg°ñúT$‹Ó(‰*Þ££áVîK€’ö¬†š!%Z®ÝÄÐaGñÎ¥-ä[ÃÙÞví:KQòŒÑcóGÃÚ•yLeúÍÕJþ$œ'kˆþgì—§ºÏÙ¹M¥;ßÁ>¸8ÀSÐxN9’Uõª0~£"Û\³½$ç<>—ZP¬ÀB‹ †ohÈ'—{B´¤`¢ÞD˜òZV>F#­pEZ˜}ĤúZsàHècÞo*Dp|ÖÑÔT˶ñ°,„û)+©þÂoÉkêÔgÛWÀàŽ ‘ái ›5ìø´²¥nTÛœN])Q’ǡҽ×zÏäøkÓýb¨æ€ÁR³%ÌÒ°uQ…E‰šÐˆä$à‹'…ˆ¾‰çrêW¸v·Yã$ºµAU#\Àì`›ˆýÐÇØ²Ïr_ªí†øˆ!ho…úºÜãtÄ@œ¨ÀR–|PÑ¡{LÞÄ7½0!o?-Ã:6çò¨°²ÓsœÎ¬ï‘¨`ÅTc¾wU¼Ð~E EÏò(ŒWYØÔ‹€ ´¼LAÊD–ixi‚­u¤ÚÖþ#ü¹¦º”ì€Ñ&ÞH©‘¸Ãg£©í^$ yG¶Ú ò9ú" ø°s–ÏcËQtµ‹Ö¦€Ç€ŸMJ[šÆG² .XT™¹%¬ƒ»‰Z¨ýÍåÝ(”šî—ÏWÕµ“+D¾Ãp–xòÿ¤(ƒõou½øeì?ø¢0Û5/çß IÚ8Òlõûx° §ã§qxmj»ë ¨½ýÀ,í|î§Ž »ëœODzÇpä«M©ÂaÃ3`Œ;'¶‹Æ¡ö‚ 笓ÊìUò¿$ÝšÀÍ– $ÛÎîå4í}=œ:OlÁV3ïˆà«"·ÇÏ»p•¿Åjáåd"b`˜›ôð š…Eñ#à&„8­vÈ7ROGñüIqR§ä^¥svµ8«ôxÊ“/õöμ——Úߥ×ìk’D¸ŸŽí)ÜFcÒ"JÅ&˜ ™cUäã+/•a}­ÑIF…‚ÕØ º ®<{"W2¼u{;Þ(=\(-9 ˆ<–llî¯öÈÔbf·óORkt;»çÅ/R³‰þõà7ÓÙÇ9 ÜÊ ÀT)cÅay2=¹dç©ô y tekx ¢Äåfí>ÎÖ3ºSíæ2ìí ðñ¢tíPðL¾âOPo@ ©æ=üÓˆÍÈ@-ƒME€äA˘\Îøô–ZÊDOKPÎïQý\DmÖœ@K#…ì¯U•6pÅC2ÜÕfß7X2Žh)2i.–^û»‡ˆÞö÷h» n^~1¸'y%„î¾µÑ&{j=bxesÁÒ­?ÜW›á(!± ‡‡Ír" ¢4ZÁS ¡¬³Ü@~õ·t¬Ê ¦ ÒA JGî`͘¡àPª.;úTVœ>š/ÜÖ'ƒßºä£o'óvB ¾Mª ÅomIUÜ]#è©ÅØÉÈbŽ( &ÐÝ_Îéw\Àg?4¢Ý|( PEGІ–´B"-‘#݈€y;2Ã~þ>ï©nŠb-¤£¡«¡?¾AîfyÖ‰0±á’g¤û±(žŒ³WEؼ%*1Å WÂé"²û¬·1±Üáͪ@±PQ™¨æu1)ÖªÐûáõíçÇŒŸNqÆÃ-”}­èh!NfA/WŒ)Éú5 3u‘“©*”ŽÆ ´fôwHVžYO<+ÎâiŽH¿Â±ßm!A>DÏ ¹ð °M¦Â t‚‘Î%…£e}íGMæ¼ éHÊð^g ÒF k£ðjÉR2•k”C k¯¹åiGGú ñj¯ãz¸ÃÏÙÿ×X£û8‰Q];Ä OIøËR—Ò=hÜEŒ*ÎèapUys¥^<𜣠£GüÍO‚ÚŠñ—­~€l^aQÇÑžþK±ñ4 œVÓ‡Ià6BÊ%4#(ØÉhZòþû¼]VF’ž˜Ór¦v]PǾBÎT^v#.ûÞGm”¡íKðÎ& Ò±<¨_6ÈÒ7HŒ?6–çÒ¤»//æ]k®ÿp&S;”n¥T—KïZŸmzPÊ ^?*1JÚ1M Bé)eæe'0Ë6íüÕ㢼œû¼·#ÆB2\Ü‹ë|jYkЋ÷IƸ*£[ Åžëó<â‡O[µOä#‰\VàŒÂfÊá½L uµ„,Ç=ò Ý;Gˆ{eÇùíý¦mOsF|ÐQÑÝLÔ¢˜"à^÷}+†0B ð¬¨ïðÓ¾íô/½N v$3ßt¤Î…|ÃðëAlgÑÃ÷÷|¿æi ŽšGI[&&aáïû›Pz8ZARæ¾o粎ˆuîQç×Êë1«ÀŸ)`AGóÖü-Îm^2$â˜k¬y<4Ð’± ûWÕåíèÞƒŠ/gâ‡Fá (<Éì­ge€ôäɤt»’=ªZ´=!}?+ç ƒn^•{FêP¤wÊ6 ÀçK¿·^]yÅŸGè.̺™Ž^®C=Šaÿ9‡l1ƒÍØ¿©&óÔý5™RZ›ð9X$AT‘²xbd±îZ½(Èäe˜žüyK‰ì¨ÒéFÕœºD¡ñômŒV*ÉÑÒ'Œ2>Âþø FM­SÐ/V¡ÛP=‘H<"!Þ¶”C\»™™µ;Ïžóß½Wü2oáaüÀ¥&K yß®æ˜jš;9óà{fÞG@IýN•x‚2›aaÃÖ˜^Œ„ÞÅÎc[J\;@º[•8/7kÊ‹Î6ÅHÌOÞ¼£áæÖ Êq«²Åú}%¶ÿ3 ª©F­Ø;•I·4UÒ“;ܬi—MÞ©o!Ë•È, û0HÑåfîÈjé2,_wî uÞƒš ë™q…kT<Η•vuwé,‡Gv"d·TϧóÁyÄwdrj<-)%ü—yùw˜a§1R…ÒV]t‚niÛfƽ]ê´FMòœþ.´4öu«äë%éÛó¼O‹§l’’ؘ—ËâbuÃZâϲ2–gàê@@Û“‡)!Lhÿïʤì¥à†Ìº®©rÜqYÅûL)Ýqö8¿Ýaö"ý[h…º5ÐOê‚ÝNGpŠH‚;ŠrÆ.J{V“—EùÕîì¸É0•–E­Ü˜×oL>„j¾|…Õ×Í,eî¹c¹7Ž2ó.'2,}f+£µ"x¾4¾]P͗º>-bSŠÙ¬–ñ#PXìÎÎ-*ÅIûÖJ ¯~ê#Ý©£ŒM•ühw¾ªÜpù;Ó(I7½qLÐ+ˆ«¤ ¡þCr‚ÈiO¯÷g{”J+Oþb@ØÞœ=Yl·›ó…î.öã°rñOÒvjï50Oú3†=UÌ8¤»uLÁ¬šyu/\Lîä›=ª3›µùØÊä¹äd´²µ¢we¥q³éb2k(yú_{)ÿ«àíæ¡|CgÛlÒ¬õaúÄ…ÊåJî+ H$ø‚·Š^¢<íiÔÓùyóT´G×€¶|‹AU¤ƒÜö„ªÑF¥’äC^bb*%»Õ;]ãV²9dGá‹}>æ”7àõÈŠB)§íªÐÈÔ6 d°|®ê´Ÿ!ItGCz`Éd¾½þM1ˆ!Ê­a:šž.€âyWL¢ÐÖ…gmWçQÆ¥³ pÚPHÊä [Y¤ ÷Õ‰ Ê…2È)Xš[¼L¿Ÿg'ÎG5 µâ’JÐþ¥›à¼šbž/¹u&Ånmð9jF~kùçäP?’ìMt ›è¨Ð oQÒ#‰FžrQ•t¯Í mã¸xf#7ñà;ü»ž`wØüÝRïþ”þ÷ñU=ðêœGáaT,¦8?"óô½†6%â ¿ùÀ¹ážN‰‡pÊa¾|ℾ|$ŽX`t"¨g5²#KÖè÷ñsVЭºòWl)O³6êâ21ØC‹5ŠÔ:Ýd‚PÖcsu¾×¶Ÿû+ò=´Ð ÕDÀ ߎöÅÏmÒCªëÊ¢Õ"þ_CºÿùûñXù¼h= îS£~âPìV-G“” æþÔÙZA2£·ÍX^3ùgƒKÜ/٘䩇ČCUAÅHKùA¿¾¸ðŸ$¨<ˬö6¬!À6DÉ.€¥¬dÅOgÉšm`ë)Ô˜+õ£Uš?Â,‡5½ð0K•c_DHWâ¬Õn=$t㤈eVDaVà%d¼-F‰ÚÁ×#½,1—‡e¡Ømcì™v܈¿éºmFv/OÈ7ЈʶˆPG52}n3ÅÕ\š }iË$ð›€M Ž Iç.ºl ’Ç-ªâ7.ÌèÀØ €ØË›ê›Ëb¤ÛþN˜èžV¯mcp¾ÉÊí» ûß4¦åϯSÊIœuÉY/Ò» 2#3š`nã‘•ÔµLuÙ§³ÂDÏÝ?»NR úõö8E!Ì’ìÙñà¤mõV  ûÔiH]ÌIƒÚ”Æeø²£Âi‰.ݨÝ÷úžƒ¢ûl½¬=¹zåÒ„JØÀG‡Ï¤´ÇV-T­žGÍ1Å x=?Ê5z`—ÒLØ3θü÷Â=µšp 0C+t²¼ñ óÓ³>}’o¡¼¢Š5s—)Ê[ˆz%aá3I¦?þ‚Õ+`‹†d°ok2íHÚ¬ŠFêåX&è"€µô[F=«­ Ëè€=±•A—ä¸ï‡›ÿcëUlúluˆ\™02La­n˜91ׯc÷Ib×uë,w™(¼ßy£ö è½¥’²ESPºÿ¯ë ·Ñ_k*M ¶æ™RzþY/£ÊÙáË÷ï!-‡ÛKo4Gù™–œX;©y@|HG‘ÿOÈ;å•«}§áÀj@[ñ%! °ª›ît &úóŽ9åAw{4¦í8ƒiõ8ž0’RÖlÔÓ¾{•Üó/î²”žß '©b¤]8!¼a²4ù˜›×”Å&u ã•(⌺ùdÆTÒ‚b¡Äá-Ÿž—åÛª‡â^±†´ªÏ©6!» lj?ëQÎnJ2@™§BÃ3o×<«kœy´-o ÐI÷Úº¾²b?åžW·?UI¥ÏõáʾÎ_kl¨];A‹ð$J4æÛ ƒ#q ¤glcú¯&÷-ÿO±´ºRBk?¤¹³öÛiûQ(h(9h&‡ÑUjî³ÿœÙŽiUlp@@³"ÀîßüQñ1N0ÿ’Þ^ðLò5žÙ·¿%4c=Èž´ïfõŸ-m-ÐûÅÎì¯c3±ƒ‘rUûðÌD(èõ?±¨-´Ie¡á¸ñŒÃ†y}*fŒ¾Ê'ÔM§èÞÉA[ù«<Óýi´ó™¨I­Þá<¥ZqåúûQðÿÖ×ÉàFoVkèe! •*Ã}W”NýG/+U:9 ÎÔKÁiqþèoP„Ÿ@ÌzÄÁÅBj.¬zZÈÈëµ×ñ¬B3u¶#Ñò’Gá@½ú‚ó„8Ü Ö.˹EÔ‰â‰Zij®ðë›® l®¦@Ç öÏ# Aª ²T˜Þiž&í¥Iïj?þ‡X4uÊä¹£F¤üÄ›´{;Ž.×l'°·Ad‘íÏkV„óC3»œœî½CGàøp+Ú ­¤ç€üƒŸEj›("]M¼J!W­Ó©9)Ff%dwîá F§f¡Œå%ÅüLV`0.tBÛ{K2lMÈÁ"T†…ªöømfõý>UPºQ¸õš³ºõQo_7è ©#.­;ä”~‹=. 8¥åD±A¸Ðh§€ò]ÛG_0¶Û³ î‡2Òñ·›N²Š/gEÜu`7 5R)»&9‡r/oÙåïPœ8­M8“ãhŽjÀæ_¬Ý—yâC9J>dוQ¹%ær•ÝÝÂãƒÐ J_~jD8ÿªçn¦Kg{.Xˆ<Ÿ|õk¶¼poþ.zÝq©à±Þ©³êvX®ììmði6ù=tnUº#rã°5.¡ÍAU¶Î‡%‹ ãZú4±Ë«rJÁ´fwܳѧ¸a ’Í~ÚUsÜ"èo”Î@Ì¥¼Šµm"WLmÿ/z[7Qh7³%"ìĶæì×X&Ê“­~4÷r ñ`¡Bö¦dO©"üV°¹PfC”îJÔ“áõAGNº8‹£ÉÇá/R#•ü ãŽÈóþí+e‘””˜ƒ×ö*Y¦G•;?‘ØžÞÂ-K÷Ù'ZhËÀõê8MŸæO‚ɇ*…`𵩅8‘­$á)!JkëêAHKPªÅ¾½\Á‡ð½Em@Cç“ØË”D %-§’´u¥ÕŽJ÷|r –OIYøL¸Ô}ûr5G¡•48}…½@¾ã–…} ðït»­€¨á ÔOHYÿïµn –Vˆ-~`>»uÆè,Å}ÔYµý—6fZÜT’Q:'ð`‘nÐL0c§Ë€ÑUñ]é>ÞÜK—(—E~ÝâÜÇø¡ Ò<ø³,ŒÐ:,<³#C¾¯{á õÛͽX¼(‘S[›)È󯔇ÐâGr l|ñÄ+ÆY‹ÏÅc‹ïçbÒ™Åù<ãð–6µ¯Âœ~?—×ÀLþ¸Qt`ëF©ˆlÇÐ¡Š™9±Y÷ä,½¿N-8]¬Ø„š{·~À¹IPx#DÌL¾n—„°ÛŽˆp ˜Ïï€ý;çöQ¬û¹'`òŽ:°´C~â›Òº§`•­æÅßOé•#LÉÓo›úN†ÉÅŒÜ<'¨SËéÆí˜¿žŠÁ²ß_zf&<ŸïÖ­“Š’ŸKI 0UDŒÒcPò¨nf™¶F>6Ù^$viXèÙùŽœ¢2Ýj-50®æú“›¡ÔŸS†4îñ % ÜÞœÌýñ0tøäù¢×Ó‚“¡írµÛ‡3øŒ©>¡mûw- §ÂOQn²šéN]-~Lú(@¹·†1¤²K?¸N‡&ÀÃÞï’nð z6Òë¥ÓðZ2áKŽØv’Ü7‘8Œû¯·âNEÕV<ê"G™ÛuNH“¬%µ„¹Š?3LŠFvºE‹VkRóPM·)LòÒnAQ"$…lY”¸XÝ4±õ¥ÈH¿\hlA Á+jÉ<~ððß ïÑc5éà ívæI4åü™FFäÐð_ÕÔŒìøxñ´bËQ T“6­i0€rnúùÆ7¤FÎX¡h[H¡py;1à‡'}¶N„Ñ¢3£|ĨÒU ÄS[èÖ‚0 .F¿—ö+JÌÐÿCnÑòªW{¶£-Î·Ô 0•Î(¯ªˆö@iƒ¬4CÝÇ ›„U«xr$ÝWPËÌÈÜ=f¸”ÿ¿™KϬÉ2«»tЛü'¥Pd–Èü:ã1‘j¿J%1ãƒíz‰'x<5ÓM¨ò*cím!­ ÓR T…û¬ô‰n§þ®®óˆl]ŒÀ®½”íjŠ”MjÕ~‡82Ï÷ª+ÿEöœíG© m ¿ÁbuèŠÖêøæëâ×õJÊ ¹Ðò8ÚƒtM(Ö¸bPNâ(O÷àNfîJÔ]Æõ—‹r¬_òÄÝj/!£áþpê]yü íHœ>%yÇ}uº§þÏè] 6¦q˜!öB´#žw ,[‘`üÄQ” !p0k½öEÒú½ª}òô5g4;`:ŸÕ›8Ü(ž×…Na¹WäÖÈdÔhñî‹å6‰ÜJÖÄPDýâ9/®ãw{œ«¾‹(•œY©N ö·+òaÎÜä¥õûݶÈ";nß¡âAÊ50†­†õ’ô7©G_‰Fr€“pÉ?‚âý4¿v åPJçC‘ƒÑbÎ'†v×—R¡Ó¹õ§ãj:Èo˜ù‹5œyr>‘’Ht”²5¨¯˜äD“H-Œ¸·¨~=ÁÆÃÍNÅX \>‡Kàò­²'®>¦ÌŒQÖ¿O¦»™ÿ±¸˜JÙË¡4Ê“žÅ»‰‘nI÷{%Ò rg ”'ŒOºÝXÎŒ¼Ow3DûÄ¥5Ô®è¨À1rñ›k‡¯wVÈ^ÚùiøRÉgûÝ—¿Së´m”¨œ]ÝB©;nUðJ§ÿ8r@¤¯»*=8âL[5Mgÿ*‘ IèqHÜ$'Sw8FNË^­¬ÑØ3ÅL@êF~È™æTú¾ð–ùt]„`Ø}Õ8 RŠLšb[‚„ 'Pd Q€ûû%©½íñ´'!ce dË0D-K”M Ð—qXë.)þÞÁ‘θš*äre^”r*$2ûg³}X§${õ wšH pù?VÔÖ¹9öƒÎ9iÆ›jÝäê_¿Üñn çŠþ¦Ò´ 9¾´_'“v¾øÌŒ¼Ö/_¦<&^œ“øï ›×vûº6kà;E¾ ‚¨ú’ ês¶S[Ì.0*:,¾W0ÿõS§ÆçJ¢x{[²)­Q_¶ëÕ^i‡Žº *t•nòÔy±ƒ’qËŠ ý|<ü›ÚLÀ¬øBÀ{¤Ãµ*?§H§Ñ–Ä{ÑY@›_uˆÈ¨³=K9 Y×ve‹Úý2ÚøYðe>I%$“§Üqd6¿R†YRkµ êÇq„¼®DrG ùÕ\¡“Õ<5õª!Æðïê›ù¡þ—QæÈ9^êS'IàlZWïš:=èˆñQ¥ÈÁôst¸4?”x9û6°r›.¦®a‚íµ ȸƒüM‡kŠõ…<=þ1UÑõpr[/ù=^siëË<â ]k˜ "PÖot”‡PÈl:ˆ›i«ÀÍWLLMô MÅü,ktüžl¿ ‡¡_þQo–0Þ:ÛôÊ» á¬Ñ¢è7:‡hÛ ÍÝj%1'¸xÐx´Úº.mäT)ýKo{&ȯ…G‹jU†¶ôåÑÊ¿»ý…7‘éK,@tÆ¢Ý)JL=…¦Â¹ù4ˆ²ÄÙCK‰ÃÔÀp¾‘êM ƒ€~þÐþB:ÎÖ„Xw´KòþoT6¯Ãb½‹[©‹¬!aÊ¥u›¤Ž¸*¡Íïð¿˜Ã:àã(ÔýÅ wSÓQÒˇ[G•3Àï PêðJœ3ªîYZ¿üYº: Gšþí1R#ض]y&}iYšS‘ ­]JÝÈIgÍ™%OÚ>k_'|gKV ³0€3„®¹¹kËi!ÆË¨=ÜÌ-9ët&Í0OcŠýŒhÑg¥1Ï€7 ÉÒ Û5:t9/Hð'ÞyÕ.©=ñÍ sN®ËùBð»¿NB½D»ÈgŽF¸ØvŽÊÞ¥ªgÎŽekºÖ2ªÓÜHdJ.ÅJ^ ^@Þ/ÙWΜ¥¹¿C|f?L-í ÔJž’ÜhbiAºHbDœÜCÕÔí$[O:û´\†Š§õ< p­ÐwŠÉ¶q7õ³k`¿-Êw¥”¯UõñÏô žtù\ŠkPæ4þ!ï-&‰ú;2>i´4è#Õþþ|biÔþ ^ì+sš›€¥ÅЂê˜/ÁdôXá©Ìévž#J1‚NÚ(+TZ@ÅÎ(Šwºƒy‹ wNh1œ+=åÂaàÍÞö2§¨gjƒún)¥zQŸËÈ*ö¼l)†ÎÀΖ„ÿB¼Ô]Sð'þ®=?ªPnÑPdÈJ»Ð^«`?Ôi¨ÖÈ͉´­ưiþ‰µÂg9œäÜ£aZŽbÅ Æá:f:ú5ÊŸäçr}‹˜÷¼å¦!ø+N³Ô_Œ,–NÆh‡o›>“3pLÕ($‹Grê… X}õúî÷)ØH›M'j­_ûô:3®‚¯o‚õ™ýª87™£‘Eƒþr¦`ö5’â,´SÁ­ä“ÄFÖ$ÙÐY4ºÏ>xã'¯0ºìƒ#$ªéRŸiQMÀTÊö¬W–U‰Xë“™¯[«HEM$ðÚRå+xꥥ]FFÃ`Ê2{Éfi—\uOáuÇU¿zæ6oK\¬]­<æñìPO[¼¿±Ês˜¶”Ìîï*]•¾\ÀyKOÙŒ#ºÅL˜†ÞN ò+L€N˜>‘”o~ôt›žä YvƒK²¶bɆ0kL!¸”ƒÝe¥®¶ÊÄ eÍKä¢|Öcû­‰ÓP1ÁÈXn.’wÒ!ÌJýƒD󊛬H'UW¾ÄH^Öp:i»~æ*KDn‹žwÓMãiŽŸÎó31#ÝVdÛµ`EB‰kˆ)y<7:[éŸRÞ£¾À@ÍN_¡Åçö´i3'lËêlB#bÒ[™{¨Ò¦»j,éeN$lHäZ»5ÒG‰xÔú{5[¦ H7äD®(Çì ”ñ aZlVP^ò¶ãR™«X3€,¹åŠà¢Ê:5Ÿ(¯ 3Ç–àâá(ö¤ð£•ÿ‹±:Uª­ìÚõDÇàî¶z–AnÜé>êOÆ$c >þB[Öîy;q-ê½®Ÿ Ð-Ri×OÖCçŒo¸H¯À7nÆj"K'×ÙµìÈV§B>}_[x¶% %rò²_T¤5¢_aH&=13Ç ‰³æ¸ñŠß¼H-*n†H÷²…J9¿@ž± †àn6b®lZSðÕ• §ß¥@}þSpƒÆí»vßœ”H'ëyԹϑgn¢[#v©×Þˆ*þÀ!®—Æö¸ÍOæÙ°¸y SVËãÒÜr…þ¶¥ÈÛvÔ^~(•Ÿ57ƒÚþ&Ç™¹ oÄ0 Œ?ÌÇ|Süä6a¨çæ‹­ò1ÿôw“ … –‚Fx°lxth”X¤E3¡|CÑ.óZ¬—Õ !cÏÌ[åe(cãN—Î0‰KŠ>Ü­ßÍn¨8ÐÓ[¼4Cä —ÅÊ‚äw [ŠF?íØô›gû晪›ÑhÖ„FÌ£àмÖò)ZÎüÔ|rU¬Œ“ºŸ‰)&ßä² Áø½P"Õ ÿƘ,ñTÓ@D‹ÄQå&u(X‡=™Ò•‡nŽö_ÿ£ü­µÆS X¾ô»aê»Ú<îPØkî„›ãÕ–C`%«|}á†å…­›×‘Ÿ+EVûöQ%Àº¾Æ.#žgÁ"¦¢-7,ˆnCå9k€:Z]d¸A¬oþù×Á5œÉÍ@:<ð7!~høÐçKŽÙIRwN qpG| T S¯¿^åÿÃû7ÂK²~C¸Â¿jÏm>0ßüȈ˜²ÂFÛ$r¯f ¥Þµ"*"šÞþx=Çöƒ„¿ÖŠ¥`è ÜøÖ}ø7HßW»÷'ôÈÏJm~ü‰OÍsGè`Ödú‘E§PÙº—=QûRÊÿù03Ç'HŽAÛZåªký¡¤‡Ìå[Ù¯›ÄžNël1FÕC 0Ñ„½dü+äbåR:©ýÉÒJò6a#»öŠ$Y°ãÄ!¯KÏè¦5ÙË;œÝ@²jh=àW{8wÓ“ãÎ…jü¾œÌ1Rw¯öQÔäÒÔ,2Ö¸¿JkýXñÀr€2æk¸N[§„S+æúç«rJ¹ ¾tÊIÑà­LŸwß0§åƒal`}¥¾Eû\ô]Âzh;€Ç-f ñŽT2ÁÓùX›Q€ŽÁ×_±½Ëä¨áFÕÝeŸÝÄV¦f_HÚtÛÁî?[K7[åê<Û³~vÔd¾~¤õÌQ¥«+R÷fIªŠˆQ£I’üì†/[Å;;çZBæ[œ A²ÙÂÏŒÂY]³Ž`¶¦N±öÙ E`ŽýB¡y,å¢6f–\Kì0+V½ìW% ³2j¼ÜéP#9ú‹yŒ…ä_¨9i1 òô±mzf–G› 5믊~CÜ›©,Ûé6Rnwü¬\醛¶sBá8È8Ýî©».ä´cœ}/\SÁ!“YÁäݘêÍɯNU'*s$¾ûààõïED/ÿ¢}ÍÏõr]ª[¿`]Šy—EusÙ ÷ޏâΣ-P^êœgŒa´:äÊg§HäÜðè€auLªcå¦%†¶%Ÿí{nú lÛìÃû¯¥H”$5äéïæ-‡€²Ô°ŸšéR:¦Û»Ré!` X€\ó¦~íHs.:Úqu³U?©È¦wʘú:°o µ¢ðkƒœS."Ùö är†Û°È÷ŽÆFõÈõðĸoŽýO¢ U}?W,8£¥éè/L(ºÌ©{vÝOw-èœ(†óožâýá¢Ò¼~ßQ–εధ4Á=S¹v,SççÓ³(Ž/lç§a³Ì:Î/µ‚„vOÌ„o"N…ÌÖóÞjƒC·5#¨¡FL–ÆðqSóaui]6G6 ¦>4ö¾°`·&Dš)i¸ë u_xzÑÕð¤Å5pJ÷S©™|89Øç±zÂ9#¤ƒ˜ˆÚØÿçÈ¢c:}󺽇œ.Ž/5‡ÎÍc[-;Ô=áÅB(EŽë‡çYÉû2Ž‚W¯ÞÚ³Åà¡)]úuÌßÔÏõ-m‰åûJÃ*›Œ—‘MH”ãÕ¯»Hö¾ò½Y¸Î|`8‘2{rC éâokMG„ÕCM9( •ìVªEÕ Ë¾"(Âú¾.õÿRu®¯-X) Ûcì(ãým“’ƒ]ö/uæ£=«Á‡‡¬$ÛÚßѳµÕ/NCوǼl 9 ÒMí)Ð cÉ>Ä÷&ÏC7µ¿¿¨‰f=ŠÅI5„!½µ(i±‰²ù•ꉔãÒ„ÛÈL»}™eøö‡ªƒê3¦~²ÝÎ>0ƒ¨¡ØéÙÞ,õ½ßHØXw"uâB®ßðxƒ8qÆUãgoóìþù“*ÄúȾÌì>ãÈ Ðn±õ§e/]ó¤WlG6üÄÏZhøˆùÖ›¢´Þmà¸éõŽ¿1d &¯dÙÎèbD 0¿MçHˆ¢þ4tÐ/ °zX¾hõò5¿ë•\šÊŃßT£IjHh¦ Æ£Ô”AÜ_»Ô™¤Q‡†ìí%7sÝ€ÌQ&Ýúîal+_©ã%>NJ]Ù1 ~½­ øý‚‹.Z´»€x-q›—ÛKàšØxó÷aBf©ÑÅN;[õð/ž†´4b¹ªãŸM‹¿rPÒž?õÝÇi¯&"²(3òøçjþããoÓ@Æ2º_•÷ËH~=ÜÏúÀ“8s¹x!,!0– ë³%fkšÉƒJœ›7m÷ç(²žù´Áu-°Â]…–‡2‘úé]Q÷0lG5’Ëv9 µñ§ LÏK6ÎU¸‘Õ]Mh˜K•ù$õæk¢ýNM ³çÙqtŽ H † næ}ëŒZ2w‡²âKÁo áM†“®ƒ¸‰T{¬@˜JJ¢ ~Ú‰ÊG’Îg1%ƒ¥Áꣾéi_?ÕãÀE®7±(Â"Ó¿½T(·ú‚`&ž|¤s‹ë5؅蚃á*å@vET;Gn‰YÒ\óGmç~Ô?rƒ­Uˆ™Ý÷™9õižJ–2DêÄØŽÖ« ‰®=È¡‘ßC€5óÛ¸Nôy:Ìâ-¦¶T IÖO9G8Û+õ ¹}Ý0ß_µû©_,@úiÔÿç÷x<~5H¤ŒÒ7(„mˆ‹$u‡' 8o`ýAO¯9v'ØPÐànš#;¶|4kí¾Gøè×¼èÐ;è¬qÓÕö5~jêÌëd=yJ9nw\Í.¥u&í¨ÛAóê¿P¼KöŠJÈŒà<òfW:þ`¸‰%ÉÙÃ>{xB\åy5ÓÜR ÏmK©0¶”Y†HÓ2ñ,3ÞŠ DñOsY¸Kƒ¾ûqrˆ¦¢¦ÚHe)üí[<-Ãh¸ˆ˜»ò{·Ê½ ,Ϲª{ŸNlµFã‚Ê4õJ…+^/ 7Li,žõKÚÝýJņÔ6Ë,Ð ÷¿ÑpVηÏx`Lª0¨Ãk^ />7PWnó]Y»—IhuÓ6óNðºÖv/J8hâÄ ?\wáñKÔ«ƒ? |*‡õq„Ýš°ÁÆ"0/¦S†[bð9"-Šù̆Шxª~ÈÆoŽñíUᣤ/áØ1›u¸4 tË;ÈÁuƲ‰+l+üI‰¥UΜ2>Xß[éb²|”¥6:”­¾Ôõ§†D¯íèk¶Íà¯C{´=Ì”²‘rhݼB7¬±C.þL`‚)’î$d’“xY¹¶lØYc¡[oó˜sŽNq½«„ÑÚ¼@ãz¸îBr™?ñU¤C •YÆät«\AKþôÀŸÄ1·Ñé“–0ó²ZùŽðOÙ¤ÕŠqÇ\ZoK•Ümb : ^DÀúë,I!mHu>vI gNeÈ,ŠA„Ž{& îú£´ã¼2O‚gêmïD+ñf¤bw0Ñs·ô¬úï¸Ä©Ë±=(ο„„ÔÄPý,ÅÍ+|éX°-Øâ9Ʊž#Ä):.[½<»þ"&ö,l/Q‹ÜY¿ªSƸ"X m’3N[(” ãÍü]g dbVpÉÐ]ç­4ë¸>{ü²gwÏi”àÃXwBƒF‹Ü áimN:o§äì’Aµ“ÐÉ[º"¡‚ÙA„äÑ÷P½ÏÊñæn}Q[ÜÅ?H¦õÙ¢œí±Òòëú±Ù¹ŸA(Íø0e¯§Á}{·§×q çÛ×ij@ŠÍÇ3w7ﺚˆ¾EñW~¼ßeˆÇ!‹èÄù³F¸ìánª//i«íˆÒÇi{–Ï´Õ¹rö”£ØœŽtjÓaãÝ–Ìg cyVMS¸ïóGF}Jj!µ³ÿŸÝ)»&:}ªžYÕ‡ÿ|¤HÒ]Þâƒ6˜@õ»u¦ìã¶#)G‡'ÐŒrêœrsá¼£x |ŒšžQ«?ÿ|/›yïf0Ö‘_8Ëæ,ës.IàN8È^Álbd1YÅl?d¼f{À¡ ¨¬ÏVÑâjLâ®.Ñ\0­dþ椊ïe¹dS+17ÝñÖà zP.'_¨T3 n™é—Õ®Ù‰¥°;2LJ>X?°‰åhÀp¤¤ÞÆíý+¸ø†ØwmžÂ¤ÔÔ‹3Ö…%°€Êe;©7F{óÙ4Þ†0.&ºo -Þ™2UYdËè¤Å» "šƒr´-ƬÑÌg`D«1R'–‰RTÙ€—óVhõ*i;é‰S ãIÔíÔûëP@PQ¬7¡~(Ü`xͶþ Èuqɳ”Ö¨€€¶I£BÿO°¼ˆîòF›þý´‰Rä|A: ºT [y ÊnªÇZ‹Ýp¬>*ìΡOOŸ÷Þ4P±„gu´·Áh ‚Ú1ƒ´uRé²Ðo 5k!EòìûY)|nÂ;’±—Ĭ«‰î‚›8N¶DË$-O™rø5ˆ†Ìï¼M·ç Ì(œqB„ª¢ÓôŠ™Qý—ÜÖ×^À•ûTä.³UÈ¿è—ö›_èŸK W¡?D`pLêŒ/$ áÀ¬âާ?™‘ך2·¡›U ¬ºE ¯>†¤1ðž—¾-§ãÖ–¹}læ!ò¤¢s®±7÷©›(:à ­Ê£Fq‹]ñN A ·,G1 ø ÜÒõ ¶É®šSCËõx^¿ª…ySgÒG”M$:%«ÊÅêP•ÝM%Ð>DœÒO6z'J¼¹~ŽÝ$IŒZ‹wä þh.á(ÂGØÎœlý6˜Š—!ˆEœílžK¦‚ÝOFûj.ì¯ûÏ„n¾w@ÞƒsÿóDS{hyÚn¹º¬èJÕ¿ ³{+Ô;q{fÖÐZZ9hÓé`0c÷(Úß·'Pu{T¸?œÓ&¢;)S©\ƒˆËš8é”E¢™rµRr‰Q–SÎnÍGõ¹_[PõFÖ¢ÞÏÌl´’™Ë^’Èi—Ø>Uðb± +4à´XâB½ÁýaƉðžÌ¤N,ˆ¥ C¡íéª÷óŠ­qB 6»-0%±BbZq˶È0 ª d*ÑÊóèÓ~>Èø'tzÏÓx-.[½à_è«+“ûþìoW)@Â+yÀ$ÌÄ߯·ô¥+o~Ð/z7tZ“u‘‚ÕòÆ×|ˆ‡žÄÐ0p­ŒÈ:뉱h]8ùÐŽÚ2ÙCPâÞæ^ýÕR04j"ê™S0ºE-òìÉtLœÇ±ˆ mî2Ð[Ζâ!LZ–H1lÈí°Óÿ„…ç3[u‰w!p¸é2a‹ùÄÏ­Y»»sÑ—›¥9ÐtW=M/It´ÓDšìÂLyO ݤõ1VÛÔN‰MC:¢q"lܸýXëØª–ö¼Átx,ÀÐ"ÐzW0—ÊÅ IÏÁ®…²?:¾Ý&Ã,ÁÖY¯Y€Fi ©-‰&ð¥Àµã°­ }Û¹žvKWþÏ¢~‹àÖèÒÆO¬Va¤ÿ®älÒÑ¡XLyÊÛ ðFö‰¡÷ÿ q×~Ò ÉWüô`FYÓJ°Åphsv“ïÛàtåb.  ñë+Ðð«úˆ,É…%níK_Uéò· zÒ™€ªÄ1½Ÿô±>¹fã6ž^„G¹1›v;kAk ³±ò#ã?‹mºFˆ§e™éB> µÍÄ œBKÇŸ’ gæÎh:Ú,3 Mùþ¨HzáVp%¹c;në'3.|dödèÒ‡³9ØÃªíó’ýñƒnVuñjÀëaâ69r†:ÖÛl¹”|lëOÜè|Lçå¬=½OZ{ÛÚï”AL°&ì†ÜÝ{þ„JÚÁRIçžíIèbm|ÒI8liõêW¸Å+¯eâøìQ£Y¹mUófüÆ·Ì6gÞb\ ¯QÞÙqþc_X¯Î_¬tkLAq]‘2Ñ(š¶<ç­ò6§¼¥¯¤·íM¦ƒ‘aÃß™ßï)'…P›k>—K2Ÿõˆh>°<NÈIsfÖC¨o8"Š¥š ÐÚC³¶Ð“«‚~S´Î±±©æ\­%êûÏÿ³ƒU5…WòÒej¥WUc)668~ƒ~8 †ûÖb.R·ÚK¶`Ê^ÛO8S`P3XþG¿¼#±·Äö:ÜO´¡lù[ÝH÷¾wK‡U“9÷–½EV¸OW(ŸYêÓè°T[ˆ‰SÍKdI°™øÚâR¦TR¿Çå&ˆm‹/d’Š`…&ä>ïß7:!{;ç ‹Ãô:—h) ¥ü^ɽ9-Û2n^„–& ì>Ý¡CÞÁ[àN]#á`=û‚iërìûÙ¦fc}º²Y‹cwtÎe1;܃ÊBe'j]B§¹!¢J}‚Ç[ —ÆÅÍ7gØ"Êœ†U¼Hãä@€²z“r§AfÃ8v1›äÞ¥®L€dÐ!&•l©¶mð>`õô °\)ž–âmP ÈÁÎ¥óò÷SoÌ™²i~'¤]ì%ö'ÿ*†W;‘`¯maz¶r\ng-®ŠãèUÿÙ¸;©+¤mÃ0F1éÅ["]owÇšËÚïYÎ@ ¶é\VS&üƒ’¼KŽÐ_UûÖšoö2RÛ2gýøÊÒ”äQø¶ ôÃ#ПIϸí¿»È’Vƒ´sꯟ fs{Sq¶6F™0 ; ÍÏš‚•U|š/¯$vÈ•% O#&ó¯øƒAƉêäuiÜz«í¯¡jú[«ŒÉZ+·ë¶|)§¿ ;\ë> ˜_aBAƒÐ]<£6±{³W™>˜¤ç½IwßO í[IjÜÜ d˜“3¨º'Y>/³m¼Í ‹ ” wÕ·Ë_ëûùáÔB iu5†Æ—´ïo'¦óñÄ™..]E\v.ªHRùAÙ³²\!ï^gÌAiKjX1~ÂP$ Û…>E¬­ô K2*9¢n²ë—Èí:V&jŠ‚NÃk0SøÀ‘£›£˜¹ µÎ^ýSVlõN£T“ÃòrÙVùZä”TÀ~Ó¸S{ø‚Ö¶‚vßjÕéÄ™1¡õ'³W¥t7eÆŸ·¹Qì¹=‘/P«5±ÑõÿŸWŒ½,… Õ´˜?<¨3hÈÜžÖ“R29róÜ+¹rm /ë!úÓŠ‹´Œï¸P”…K0>½¸Öˆu°7ÑÊÔI|St¬u@`{6Ê­ÚW83¤É—hû¨Á‹kQ÷lÕ—¡¡î¨rÇɆ}ÑÉ`æ a\ánÕŸ>¥GTÇÉOwŸ©ÖµW¶’ük>«=/’B•dó÷€˜6m$O3V1í ›úè8[uøÀ]­äÖ”ÜÞܘ®ñá§ðÕlþK­@RP»ú F&œU׿߶ý©•6b£X%¾ç¦Iw»Úÿ¤¶pY IqíáDáE÷NxÖÇŒ?g yÕ÷Ü|ù‡Ñ&e”ªf„Zl a¶.Ý›¿ëü´0þa霕8Dç»8@;[ª«µ*÷‡ ¥»@ƒq}ÑŒg.ËËßD¬û=YpôhXNÚj|6{-$¸à4š¹l5xåFFt ×x”°Må.¿·íÈkbù…,=Ö\È›!ðØNb¡k×ã,×?‚Ó‚´kÈQœó+BkìO\¶­0XøcD•,@ÏMw'ÀÒkÁ 䑵íEˆ^ÉsÚ-ê!s´­¿qSº•>®Ä­^‚¶ð[é•,wqŽé‹Z²ýjt/áâ¡'ÎE°¦ˆÀ;¬ÉîL]?L×3.ÊòN oæ=j9ÃËÄú<¦MF8¯ˆGÞ½×. ëÝi5ô!"¯Øy×°Ê +¡ï«üÄ´[tíÁ“(D´eã£gˆuîȬzO<´ÄOtMraÈæK8näºÁâ„ø™Ú`(ê Ír£çïn-|`eSúU¥¿«‹¬¦³’øsOÄ0p²/Þº¤î^îÔռݛùÓ6ò^W9¨ÕϪÃk²ljë£Ø©FCOÝÙ™ÁÚÖÜÊi^ç6ÖR²AGÖó…ÍíÆ<"9“á¼/Seeé^Q*è{’ŠGD¹è°z(uó‘áH›››ü”t¶rWÚª0ù“Ä#äGdwÑt|û¡¨YÝÉz¸¼³¬¿_¼-$ÑDÕ¡Õç¥]OŽËü]œ†ç³I:yf …f®†hÉ œÿÿï“éñyB5J4ßñf"SÈtL["°ÀJE$äºãì Bïã Æ vL¸ } ©ÂÝ–Ä •*×§¹mÊÿÌÀˆZÓŠŒÁ螌ݿ,Ej*¡uQF“1s=Ï6àø±Î°Jº‡~G}ªÕ-š#L.Ю´ Õ**;‰KRc´AÖR×÷¿1¨ Þß>Áìsò°•±ùoì^Kè¶à@aŒQ³\ykpIÈðèCÜJò 'OQBH€ŒÇ¿u£Ø$J82Û‰Óvž~ë%ëܯFûAÒÀ‚`h˜ž÷ú‘yY· TQ0 cÈjYZ[ÃÐxI2¾3Míÿ¨× ðióÙD²^9e6> ¾ùg/ËÒ3ý®Ã¼Ù,à –œfÍó|‰72ÚÃ}Ö~טå„á\ŒôÑyÑ#ýi ^:pâ+kâ)õ鬑”êËzÑv€íDq~î჻’O›þ¥ÆuMn–éu î&nµ^죔ó³k/æÊf­µ¢’‰A¤-ÿ8Û«ÕúãL xþ{î*7oõ&wŒž†€Š#¡ÿÍÊÅ7‰ØdÇíc3mŽ÷´ë˜Siõ°¡çè+­ÙAà`>ÐĺNøT_,tŸ;Ç+Û‚¡¨ôÂìw7b¹ý0$.t<:ñÏ ˆôEºŸ6ŽèK<¿P1šyÌD/Õ4Z56`B˜Swl~ªçÑwÐDÁaºÔZ92ªu…ѵ…^Jc›Å®Ä ª¬^ûJY„‘ªÄ„ çÎã7ŠÃ™Ôû1î–¾-?tü"ÎÛß2Ó|WÒX|jÁë¦,¶—à· /ʉ{­õ섚(y>;\­Af~Dëî_`OÔ­Ý2ü!°âºÑ`—`lV×jušÖÂ'òO|Œbp÷¸ˆå…¸Y¬U~"‘Òê&nÏÏRB%xÐÝ/€T¥zØ¢»9mÅSÔìf„õÜ~Ñ>sù°¡óÜ’Ü)2~Z… Wj­“ƺ€!åâ¤0¼œñKpJÿhÕ?­¥†“Kq6}ŬãTãy1K#ä¨÷#ò>–oå¦òp¼4øv luBÝ[%ŠÜu{ºÓ0W ¯|“{“°ê@†¹¶FŸv>·×v3ál¨ !_vœø‘™ªÛ(éWoÏÉKßË7¸BÇ’y—?-áõ‘YnÏ«N¨ÇHQ ©“p˜0ÒcšOØ70¿ãʘCWÐÆø 8\ørì¯T´ ì¾éŒ üèÕñM†šæÕ"¯/‰Â9+×ZvÞÑw%$±f0/µçÆ W€oܲÍçCmX/ ËAø*U“$P7§m©D㦶úoGbê˜Ãë(MôB&où™SkHõŠ}÷úH¨o‹Þ®ÌQ™ÚTxq¢u}ܘ~ÆzYÆâ*8vÁ¥{,G¸0q’™zÀ$àfÚ ‰m tŠUI¡ÎØ$?iyJ4«ª@ s…¼zi“Ö.;Z ¶ÜsV ÷yÕ$éûlüY×ÐYÉ"’ÇzwëÙ¤?(8üÒ:²“.ïòäf[e&‡‚€+•š$ë˜Ûÿ\ÆãÔ¼+ó }à v£Æ±ÿI8~Ù‡þ®°yW ɫ˸MUµ£NJ«¥ÙÙŠÔ2¤Ü ÙeoZÑŹo*Šmõ&ÕÆjY-]–\m§ý+%« …iÛ§–Y[H´ÂðZÔÛž.‡ÜßÁv¤{ïI½ó1±ê²1­ ¬ð¼.þ˜o:nǺ¦6(R —´‚H¿î®%c‚¿ØÄ³’Wó{b#Ü}·e)uÀcRû>tîCIÃQEà%ðGUL°Aíw¤z=üÑùäC‡ Âç?yÞÇõEöxZ›-/™éÏ"ûWn 2h¨x2AGÏ÷é×£ËÚ…~nöýóÙ #+V´Òk|x+B_³Œ®ñŒÐL:ïË{œ_Ïçn÷h¦®8 ¥4a!ï÷U6\‘¬ô¼¡D-ó_âÕ¨vÚ”‚™ºñgžÃÇíž©xa ä`ê…[þ×ïפIò`ë5SåÎñ· ^ãR¦K–Û,³jCÛ–Dm èw ƒ’ÁmXF½u4®” ”ϯTi7?ÖÉAôÓ›m_Åá9;_¢«å|T»¿ÚeÈ­%Ãê~ÙÙx žœ™~) c*ÀâT¬ÁA&X»ÒL×J—è¹ð ç3¯ïû£íný:Jå¢9°uQýñ\f>˜}Ö¡ôæ{J+_3{T£Aôo­3²1tІt¯=…©š²’O¸y±Ö¦yW•Ò*ì PcOãüwe‚[ih˜ Mnþóç,™•,¥ñ9îÁ »ë¡ÿ~ø;÷è Ú5ÐËB`gäGÙê¯Ã Õk Ù–á–¾NïpýÿQ½´Iÿ[ŠÆP“#mœ_oz/:&Eê×™ SÒ>ÇTLw­Ï²‡•C/ã‘5q(˦|ì]ê—š Q_ëû£tHr)1¨UÌ›è ð6‹iÃ#U8שԮ~Œ$hš£I¨ ˜»Ûí ˆ²]{x¨š@³Ø¿ekv®ö2øt78†ÿ›]T½I[‘¤ik¹TwîKh>>èPÔ´$… %oQ _vþ¼FîÙ –¢ss™òªË¶µ‘æY×®Ì\Ž%«’°1Íü û]Œ" 60:‡´|Hšwî0.ÜFãÑ—C„seaÛ‚&1Õ6ùdÞ‹¦ÜP€rн­,fû­b%ožK‡Šf3)G@Ö­iï¯|¯|IÅ<ÎNB=Ÿ¤„JºŸæV_¼ X\\‡²JÚNüuËi¸—!ÿá9äø—ä ÷—§{ÏãrØcuâ– ð>Lîšr™O’I”Vkˆ8½åµ/ÀH<Ÿ\",MîØû.Ê›nù†öÜdfâ1±™13%l¦_òŽê‰C•‡‚:Ð^•Ï$ÔV¶V •qç8‹¨õáÞ AOeÃ@²Îã)am…»iF/»N”~ƒÞ²jËu0?#¨¤zˆ&C¶…aŒØ”%v8sv·=u³¥%¯Ä>HrKB 44ÖKªçŸµ²&MŸ`/$Õ¾ØØ ~qkGÃßn…æŒnþ`ÌoÚ6÷kWä1G|3­­š —7wzkÅ{lÌ/7DD©«ÜàÚz÷ª+ògnXMˆÈ zhãª#ðòqÔ¸Kã¹öÌÌwA}u›Ï.|e:¥À޽»°Çø¡í±òX¨¶‹,·‰ðˆ:Ü4ŽC¹ç;_¼ùOínŸÙÀ ˆª²3AGí9qæwã:åÈ@LÜ”„_§®Þ…ÖF@Ü{tWàùŠ(ø2n®6ÊJÞñ Îß@˜Rln„É}˘YÐ<¢± dlÜËâÄYœþܤ‘3¼´ ÷W橽>Êu“<‰pšËÕœËÿ =»QCLuÀ*ËlsºXœ³ã¨¹¹ÀÜ#ù*"¬!aiä…?Âô=ƒÍ½ÙÐÆËÎÀf´b劲°Ï:³žö€ñõÇþH"=ÝñpðúÙe×'úX«U÷F®Œ((]©¶nˆ>9¹´fß5H«8>¹d·&ÃcD Û¾.Ü9•"”î y̾ÑQh¥AÓ¦íN³Ór(š‡à i¾îd’ûmGõ<é^cBƒñ±¬,âC åáQ!G°Ú‚}¸ò5½ÝN7CLOëœ[Ò$(Ri!Öx>Ôê"o?pûRi·°FeˆâÞ)@VEÁ’°£të†tC40òÇ~”ÄwöÜç$g£1¸TmÈÍÿ€%ôÔ:õ=´Y#Ê6ã2|Ûõ ¤aN+³÷"sy¢ê+¸4ÎÖåÖ`éÝ_éÚ«™I lÚ”›‚7x9‰f˜L§í>•1±²äô Ť"XÜîòäó8_8H(q£Dæ°Ü/Ú¢Ø Mâ— Š®þ? @wÄÒéæ4m|ãü„uÙ‹¹{ëÿSkû3ú?Ìr„ÖI—4î3DvÍ[£g³¶œmR/ðoëâé{×–õ—s¶j’·Qøï~¹þ¯?¼™6Ç¢ÔcKÉ;BXp/…éÁc©òê€_´*²LkÔ/Gë4œÍ§§Ë‚U6—¥v¹¥NQ]Ï3Lñ›ôtβݮ¶£Vw~rfìΛübîàatDÈâÃ>¢²ƒ4–ªS>´œ!ÈÜÿ¿Ù㉢Ý:¢ø hØ^ôRLæÉ1æ£ÇÙßÛQËù‘ÖÐÞ„Ì\ûÏ!ô™õ‚.«ÛàäÍ2eBÞÀÀµQn`j]>ñ7?2ßž1ùå¡:‘Í%ÛSº+ìqˆÈV‡u~%UMX3ƒ–: «.Ÿq6ç$„òëo þ;·Y¢B"A1ÞîÊ(:ýPJ‚(6Dfcÿ€Ü¼Ó oã/èÕݯ>ª;„Ú†¦šxòœsøLè"»aƾϔXN}Ë|«êäbÌ1•®>‘a+?äËèDìáÁ³dUåì¬EEY¹ùtì~•]¢ÛVAÄ}êü›9û- –û÷þØRæ´¦„sù?˜ŸÊ7®UB©FÖµoÙQ@¼¨z>åo‹}%tÐÆÅeU9¦#QKü¥S>¬ÜîÏ}»[D*ͶwC‡¨qº2á=üh½ö_/^â– KÈÇ— EΩÕl x»I‚4[ÍW^ }Lp…¼…@à°–|è$Yþ$Ž£°5]¹M»ÎŸÙI¾7ʆÞÒDšC4ýB{Éœ¨‹t"ìå u&€êÉ9Â-êb"×3AÏr°­qBàâ¦g8"€šÚ³Åb9\€…ä÷ÇÖ’€ð¹¯ í¦: !ÙÑ݇¦>:ƒ›•kË(0@¸7K8•‚(k BÒ´¡üú’÷u…*AÃZzìE̔姆6g:N°lܽa\ÂÍÔ¼’Åqx$rS‰}%*•ë°Ñ‚aòa®jm4¨ïÛùZ ýBK „)qñ†‡J‚>ä·OQIë­X}E¨·_=1Ùûoº'ÙV’(x9C^öŠ5L¼TôFø5aä£EÖö¶<â`޶èÝ+xö¨¬Õ”‘u1¬‘Â/B!€ßÈíæäo9f 7…5_ÛL/ؽ›vŽ…´ËD€:°åoiTës›Çä­Ñ»n.ž•¬D…Òȧ±/!÷=áÞõ²ÍM9‹Ue{©™:…ŒàÆ }͆¯†¸UÀ˜ì6…zæ`h—ÇÞ­ó©ÀÍ <ßr ðÃÛÄ! «Ü0Âk½oã¤b\â(Ðxÿâ+§B[`VÁ9$¿âš»‚ôBä_%Õ‹ÿgqê¥}ý‰†emR.€pŠß‚ü Æu{‡Ë-怎=¶h@–¤Ëþ¸ÉêævÐDï;6èiÄö®eic—|:áǸYEw4E-ï´«D$;[²ðlMÖ$„maxAÈ©òÿ'k"Uf®>±Å{.9Eç»ú©aIíYÍ®„BG€Æ; ¾Za†(µ€ÝbˆV?Ȱ]¾~ª!rÄ !lw¸ÿo u© v¤)£ç+òl£A›“û‡ŽtßÙaD¾´ö˜Ö“ó&3`oÝ]uÿ0þZ*¶ Cº+<î=±:Ípµ°7p‚D5t¯QÀ e1–w.ðn"h üítí¤|–£M&ƒ²ØË»e¥Ò±# ²oñã´ü9Ö5ú?G–E“]vÊ-¬9›d˜Ÿ¦£ÄPçJÚ°~èí¬Äål[ì1†æ7bû/i•^È3€{XL¿©ßÅpÆÂÃúîx 7[ÖDše]¦û"à´%øJëÝͳ,ò_:üšRÞqûÔ½‹ØŒoLÄœ_œ¿ì_<ôý|þów´ã×Nºø°r4HwïáD¡ŽlƒõÀí¬Ry&£ïDd‚]4¨ù>Û»3ž±Ï-KMüç–`ãÁJŠ"ûÓ{²W ôä\À‹s °ý ëµ+°üºRó€¥q`ÞÃÄÄ]›`úú–60cª_Ú}h’«u´ÄKÿRTˆ1b÷³UÏò ˆùìÕ4a³\É=¹ûB›¸,L™Ã€z3¤Ý‡uV–:öµ!Œ'G·ÝlTXí@¤¿½Þ=‘á4÷>™pNÐ Ž¹¬êïñ¢‚Z¥¼€ð0'^<½ µõë:*˜ ±Ò«„Ú"CNÌöf4ÞVX,P.¾N#í£¬$»ááZW«Äø<“mc%P¯G³…!®œ‚S Á3X˜á…+ Jw•³ÃºCøÑ:îמñ”m\Ü?ÒER•;‹uå*¾?=výÍ÷ túacþ®ÎF$†Ô5Cû’ÍÈŸ–Q`ÔfEVÐ,À0¾H§bN´“WPcj±¹Hÿ †ú­ž²ó‘Y.m‰m|¿¿žÜ Bí8ÊÙxÙ}¹nGiÙs§lüºÍ 9re:rXø ë´\È"'¿ü¨}È_¦ø¾s̨u•Põ“tÂA=ÛïjW,8ÚtNpª¤#Í}U›³v*;³—CÒ S¾[†v¨ÝŽ:d±´±ð3ÑŽøa^b‰ÇúÍG=Y­bxÀ.á»Iõ*xî+ð3qÛe±˜/NãЄ­þÝÔ/Û”b!ò¦0ûHÀÒ}!ø’¹®Uý =Žú²y:s–†Wד¥æ†a§EU˜å뫳 d1tž¤³pu Q(à¹n4GL0zªKÞÿiR’‚“+·¶¯»â™³H#Ñч™¿{81^QAZù6MúoEΰC×…+q–²×ç«m¡Â>çp¿ "&4±žU- gè‰ TVWÕ‘RtbøÈ²Û`Ýq¥‡(œ\Ëæ:‘´…LF‡¹Ú Ô'íBB4* Û›ôƒUQ´›Ï`!©³Áž¬"{—Jo–Y§G‹up°Gb´ü2bˆZfûiôbÈasÅ]$3Ávg¨Õù²‚jjõ4.M­†ƒé/`íäWD(¾ªL$¹“ô+\z˜òÜm®46Õ\øƒâ–„ÜŽ:cÌfÊÏ-M‘ÌZ³ãÄήī‡ïlDÒ¬[#­FÓ^»±†Ý&"g™Ü$/Úœß/ª·_]4"?˜>”æ=~Úp±ú›‡1YìšÄ0›`oýÖUöàŸ’¤+`y¹øÈÈ)]Ê6ºß†%%løð±h°bL¾m™!Ô¥<óµ êÙ|ö,>{\ÏÔv§Å‚‡ÈQÞ^Ïô6K³1bˆÜG/€ /~84‰ÿ#AmÐrÃB+êœ,çReȰƒÙPâ“þ\ÒlÞƒ‹Gi%zN¾ÔÀ!ßê°B 6[®jí:æ´Õ%‰Êa”r ;áµW,%¦æLRò·cê¤Y@TS;/6tÆùÓÆÑ ‹ûŠýß®:Èdãh=,]uAoƒPLíh°ýÔ =pù6WdV|  «ìv¡àOÓ›Ê6_ª4­†/ï:"T¥ù¾O:·ÝºsÖ¹Iš®¿£–ˆ»"*¿Ø<7Œ«ÃÇå;i«&€Ô©©îÍØu¯^üS‡M ®?aŽDÄ{îs .“N°7D^žø;Ï¿èŠïôšyîä•ïç E×Îij¡1`Pj 1ò;OE/ ˆþ³«÷絿óæuf.ÀCeWÙmÚ¤+d¨Ajó#Å`Õe…Ï86á ¢(2 b0¶ZTm•ØÛ"Ñ`ÿG:ÏMÈ ;%}椓é^§ñKã´l¼”£{zLiº é°“£«`Nxƒõ†ÄyüP|û¢¢uK¡Â_±ætðªm)XS’€¤gdŽA¨Ž8Ì@úÆ<3hîOÎ}|Ú\cŒh…—4²2§+}¦³\vOœÙ)bey-¾¿ÂÛiùânaäÉýœ{“¬˜±DoN“uxR7?|ÿc­îÎr%÷U@Ó¨4¾]d·žRÝ H¡·_¼ß¼(é Xª‡§º˜ÂÂ"cÐhë|¢ìÔÄ¥ÄÐ3€ÀS~[¯œ"á·9Uöó S†×K”»:â„lóHQäL#¶]J܆ƒ_ÔW:wlAqÕ4ö–ð§BÛ- ­½ÐÕuYŸî Çl±û û„~ÓAq`à@üÏæý.TRê¦Ë¨qð±lOR{´Ú5@‰IòÅþ4,+Ê! ÿª¤eò˜ôF2‹H%Us¨¤ßjÜKÿQˆ1í—OÁkZäìÖ}ÕkkßÕSò8^áûýÓê`h}uÅÅ'€ýrwjÄûëTÂÏÒ&·*T^²ÆZA€‘ޱ”Ž©áß­Z óƒo*×È…|Š9ö¿ÉÏJI¤UQ¦.ýq/WпMJq‰×uŒùËi^¬#§8§{°²ñ}èB˜J'¹–)sp¬¡¨ïô¡º¢­*ßÙjÇåÅÍs¨ XÛœL°ÀÉ|¼¿Ì˜ºPÊGÍzºÁcöcήm©HÅA ²’]汨-ú˜ê"㨹°†næ²²:¬¥®PæÖËQn!’é¡SDê]$Ñm°«×·L§„ÎÒ¾é7]ýøx5u’6<š§Ü@® !@õcøhbì)çiQ…eío ‰É5ǬB‚>™Œ¾W¹@ÛañüçM~ãBû¢aÔÛ¥?o"U“¥F%¬Á5ÿkÄz“ìŸÃ»[oÊÝímø@‹ÚÕY–Œá´©œ JCä%ÔÈÖÜ'\³“6Ôid;£[?‡³¢ ú4EÐ8±åãÞdζc{q°Ò™ûDTžÞ¼mi‚¶8ª«¶Æˆ÷}kÇŽ ó¬J#(Ù|¬‹¬s ¼Š ŸD¶Ähà0³ÈÔ*£¤`.ÞeÐ8†ÿ݇cN‡Ôô…è¢ÅhÑmh»–5•¬h¿’ªâ}ià’°åõZ‚)½É\¯€™e:üð$-BáMdo·ðQ ÂQŸ‹CŠ^Ó.óœÕ}'xƒÁµeüM\É×å8  [‰H’01NF¢žoÖ>z(0Ù©êFQb!ê~èÃKðÞ96ðΖ o8où_¿O^buî-Š(KÈâˆÒ]rüé5Úhg:þQ•ü#“äÂ)»¯ ÷'– ¦( aŒ8ÿ~}L(ùNàÛÌÓQþÞ O¨^éIílð²Ü[UI¡éÇæ'èò®dáÂD ÂÎ{§wµ’ˆaégF£çNi…Å!£“Jvšjk8v,ÁV{¢£×ˆ4zá*vD!ç ˜†TÏ߬tõNÄA\”åV÷5¦”ð ÓËÀqžÏ ÇqzèÞ“¨j ‡F23:Þ„Ì$#lã­;¹Ýé;ªæy’µU9ßG¥böª¼ ñþÆ4—†û`‡£étY£Ø¿éö=.7À…òªb¥Yöüà'¢3I¸ ‹rH­U"\_'5%º×{Ÿ¢eä›jó–;­õ4á;{c~ìÑ‚V²ïÊËCK:ÆÎj¥!UƒaWŠã½ûÛ‚•°ˆFY+V¶1©C[OzQ¦nöùú>ŶôÏðÝm툒ÛPÿz`­hØ‘ÊÉ}—Þí`ÌšŒ¨üÁcHòXaâÉ}^Sš] ŒM»&Ö ~¨ß¡ðMk·1½Ø³––ùQ[žÕÃ8m‹³89÷8«YÃ…¶Škt{Æçß [ìÆkyAдòšìç?Êkžuyù)Ùü~iýß³å ó"~§8òŸ8¹£ŸØ2gïÇ5îE޽í:éW<®±êÄ2 /P—Ì;¬‹öÀÓCü2¸6"fé:7Ô‡îc¯ðñ²òÒŒèçd9ôQÿXS<:+@9z2×ú…} å¶§‡Ì*tI—yhq³XïðåDiißÞ”¡äïðD´H¸]žwmžœcë^_²̹€Ži‹X4î¿øygô(3Ñá@8P®Z±Á<b¥˜SÅeª¯ž¸'rü*XÑcÄjÒ÷] Vºïb<Çß"Ò¬Ï1€ß¹SqÖ%É—$Ü}{šü>¼¯Š•8ù­¢ %¯=™4ÇìNßß o½A:Èð$…3Ðs«G !+Ô=ò/-ڇʸàâCÐr ’×Rà<n†×’IGã’¡fgƱ¿[•%T—Œd¢ݳZs÷2 ‰_ˆ&ýö(ÞSÝ™é•5ÕvȼKN„Ê ³¤›ï÷Äo¤L^FT‚Av¸“ö–Ià«d {¨I3{N²ªTsw)Ï|o»y 7:ú…¾2…Ó-RzÓJ°ê áP1šŠ}žþ»öÔEŠ%꟟f¶æ'/¾e„Q¨ÍOÛJ=³œPœüÍþËF¹I×++õã5ß»_ŸD—”yÈ ‡ðè™â}3YG´âç›g•'Ö òÚìdt%”ˆã" \3<*S¢šr“eúá =1¾Ô ñ4e¤R m)ÜÍ=P pâtÐZg;IõU3ó¥­â»ü˜¹Þ `È#{Ï›vÁ²aàˆk!±Í3,虤œRÿ/RküKb×f²WÛ.›4'± ßC7£1ߎ"@r¤°ˆ4×èö'.¹¸ŽƒS†º3¾zê^³À¨]®Û_h9¨á¬‰‡È¾ `ù;ú šÕ¹ßü¹Ç‡#Ö´nî“Xã«F«¨k'mAÉ,51Ø(ÐÀ%à?n¹NÑYýýÍ"Šlå.Ry·úò‚;L¹roST©´è1 ^HVÿ )Ó@ëÑO.#Ù!oÜ^ùJ‡•TyøV¢wÊVãQ(Ô£^0¶¿ã¹ér§‡¯†Lr{†r©ˆà&ñ¥&9&x<^ò¡3ÊÊ‹:ûwP“>³Òimíä1 »ŒÒX=¡òà ZlH p$V:æwmOòéö¡ïg°FgRèYyY~ˆêÍŠ.°_Ä÷CŸ=î+xNÀcÍo„öWS…%IsVn{ðªÌ vð'(+ãn ʵPÖýv2 ¾ N޲v§+ðÑúßdhUa]4\Ìœ„ Ô X}S –ŒM(ø‘îX–Ò5 :Ø]m»;ùq×Ú—Ÿ„¡5hm^'ÖCs¸1`‚R•ilë˜ÿÅÂR§jì£4ŽÅò/‰åq7…`63Æ“¯¡ðm%YD…¯@^{‡{âñõ›Pˆ×ÓDÍôô÷XO¿ E¬ÅÎ*erÿu*À©ä¡þàiRC‘¶]D(UM½T“«–Gåó+&ÅSÿûP¶­˜r}óÎÝ>^ F™™˜fUy¶FLêö¼©J÷PÅÕ…-´û„W—G˜<7Ï}»ì_£ÂƒIÿ}·ñyxþ—Èóù­Ë‘Ip ÏEõʹÂäQ¥±X3qüWlxn>]p¬R€Ž8±g×¼©ø Y‡º¹»b¶†:Lúã´9ý¥™>ÉͶ0ÚÖ<÷AKŰۙÙ(T£Új`þ»í”oÚ˜7NÙÎÅìÌšîXY ¥´œQ‘# 1›( Ä(¯!B0äœ[í6AT_ÐMÖ!ÇWÊ!¤åZ¥Úè<™Góàñ†>›{»›ï7`Pˆª•†•ÿ·Ôõu,Ìõöe Ï@ôÉÓ®Å[¨® RB·EæHÛ‘çðaƒE¤u•¶:~0¥*UwÓ¢auáqü±¢ãžï¦ÞÐX<Wòøù6F£•há$©Byƒ÷¶BÛQ›µ\(tBÍ ×„`ÔäÀj0çõ ·žƒ%¿J—ÛË^m9RKN9c -;´› ÏVw—6z–1/!•2Âß&K3åR£š®o&ÂZñØ\@0ϱæÔ)îfšSú«ˆ3Šü¿yŠÌù4ЂÞ«ªÿÇl³TópÊ·C‹ «KÎÖ3íÒz|À{8 “eà©Oì!LלxÙ䲨½¬ W(yGBuxgRèŸÍ(Çáò Õ°KgÌÊÏ"$…_KSõXä8íS µg+éX¶¢l^VEGs%éËdξÞ7jÙ<‚哎ËW2 X ›*ïMÐ[ÌøèyæfFo;{Œ?Wæá¾uM%}/f›þsˆÁÚl­ÿèŸßö Qî4[1Pu“,î…/ Áô”[«Ñ*"€½)”ñËf ³€¼´Ü~5躭hc¢bq–{ÔõЖXá1„Ap_PÒåª ÃQÃë4Šê„÷¯¡i ¢Š¡á’í l§?‰Ùg B‡¾¡„HÆ]ÜÞ§²ÿ óÛ‡Q|]j»Ù9Gå_ ð›|P !Cø+)ñ¢ÆÁès­­¯*œ#Éä6}~ â¾¥Ð^øþ8×QYÉÇfä@|a]ʽ÷ïJ–éò§úðÕf Ék—½HÌ÷Ï£ ~ƒm1qü¯ýŒrcuÒÏÃ.Ùl;æ Öë1±(­l’ÍÜP;qcòš :çõÙËÑCQà4Ú»¥­MLeèRƒÒÖ3— ÓaEë@£S%­èŽÐë-ÀC,ü×%Ø\ZäÛÄnуÿýñ¢ˆh—ˆÒ?®{Ïz˜luÚŽw(ã\uJØ”¸!fêtÓ£,‘SîÒ¦®,Ø]U,-ŒaÊ£/nŒœöð yKÌoŒÐ!Ëü%­käp[jÜhKEÛ1‚S%I6^ø‘Gå´ÍØg52-IÛ¢ÿ…SsI舷E6˜üz»æá„9‘¶I‚&ÿÅá°ÍþŠÑ®EÏç°6bà‹@Ê¥„k ,ÔHhîJ8mÄÊ]p­¸_Pö‘PÎ7¥ÉÞ@™}øqÔ³“ fÿ^Š S5zÿ-ü¿D<@Àîlh()8Ü{ª6x£'ªÎÑÂÂßÚ£šeªûov®Í¶¬ ;|N‰Íì.G¿Æ÷ému8+ã\û»çáì5Oе,”N’÷D[ž—ZKÑy®V„’f éFFÛ'q×›ËÇj±ap´ìöTg¤Å ^p& [<¿Ç‡¬j£¤™´ÝW¢„;,+×CCõŠ¥¬ŠÁ‡‘qîgiÒB L¯´ZܘvÕ+üúY!¢Æ ª²«yBVc@kŒæQmU6…âŽh„o£4òœ#·D¬•¢!ÆÍ#C‡è%Œø´NK=á1Œ¥AQx¿Ä h3Maÿûbqôl‘’Ð4mø¢å Æ5VAÿzæ}¿Ôµ•`õxs‰°…é’¨ÈÖ„×?é°^°klO¬É^åwJk“c4¦[¹$"Òb'÷A0™ ¬ ]7j3‰¶ˆèaØg¢7°¿4±SÞGE­â…ÞÍDëÝZXeUU÷ž8}a¨ n¢kF„Mäø Â"!ÍìÞÙvTË•Ÿš²Ì?¡‰Èt»g¥¥ …r/W:K<Ïrñ°ÊžâkBßKÖ!bcCl#§œ†ØŠ,Á¶= Àw°wú­­ØM^§í}š ¢g §|¸÷oÙb, ¤mÛ¼)\¢šÕ´Ô­îLRœUy£àB‡6*&ÃÛdÌŠŽµ;*y]+üè Ð25:•vüîô©Ç(7d†7Š¥Öf0£­Ê<ÕCWݨ(úhWkÑߪP™“Ú0(måú3[†¥ÐDÊ+½¼xŠ…õïÊpUûiuûº—É€ v€œX=‰ŒíÐFØ_ Žõ‚ÓôðÝÄJü;‚ÉþÞ÷nRBÏ£i§x¨DÍvÓ1~ ÒgŽ/Gfj’M£ À>5.oûÂFP^Í 5:*„G¼5㧘ôö¸”È6ÚÞ‹,jÇÕÄÐqZc›ÆEÕ4¤˜Ä&°É’ Ĩù34  fŸÑ3!OÐw×zéb¤Vãÿ©ªrΈ°JÂQ‰Ã%Tƒ„gª²OzsPŽd…eO—2>q3ª}"}:ñ׬DÜ( »N˜Ï4„Ý×Éå´ÛžfGVáHö"pk¦?3âÜ iM$Ï»VÓ©^×(÷SÏ¥I]‡]ôîßÒ˜^اÉŠ ëÅ»nÒ—M‰Âô$!›ƒÆJ‹(yŸ"üšÒÀ9‰и¨%–$É2ôB'»0æ=1"›|CJ£³8Ý_5zúCcpïûLÊ×Y½9!@À)¬¯ çŒ9Pª¿aö 5T#{òf(IÊOkÿޝ ñqû‚-Û)®É&¼ÝGwßÛüJC±…˜+Æ2+µoÑÑ€Šš¦JuÕ‡¶Å¸’«p©±Œ­±¿Ss—%jÙD3‹«Î¸NQ TYútÓ“x”bGêebÅœ\(ø³ŽÍ†«€Ò–QöƒâÅÈ$úä¶Þßû ƒà&'‚i©uHpñ<.óÆ*qð|X‹ÙÑI¹í+xh‘ì9ô 8|-Û@>;Ax~IÂ\ÌfŠô®iâ¡w Þ'm·;»q1zó^Õ¹•íVeÅyì,Û_ð>ÜÈe^òLÇŒÁSâ*nI-ýÿ»\NéÒæ›ÛO+¢5Hê¦Ô­Y”ºA‹{èÀÁ)ßWu¦ìmï?¨bÏ¿™ApØ#Ee¨Oz^ϯâeÙ­|æ?Ù áÑ#ªø"©*Øò eRÈÐÓoÞéV"6Jž('‹™>ñüµÆ9l˜±_¬3ÿpvõä¶<3mhžNzòŒ›ïÞÕG¥îЪCûBÎut¹ Ú%G0ìÏQLÓãøø¢v.¤ˆÇØZñèy"»”@Z`P2 K½;œT Œ"g¤Þ"á+ɇJAòð×ÏslžìÁ’Æ,ÿjå©Ö®Ò@O·•ìMW?xÊßþËŸsCø¦ŽjjƧï઱èßÙ².ˆÿ ùíó^‰R+”"€¢“ }Arìè¬Mf¤•0îè~ÿÏ5œB±çéï^°½ð$ÅTt¸çßߺ.½É6m²ØÜd $”ÊJï…V⪷ܗÚïVŠl®>FÂÜJjj´ˆê÷@ËYæ"‘¶àœ§ê‡{Nq^âFÅ:'OQæ@ á¦q£9.rX8ɤhuxä¾WÖ.eï2ÜÇ6¸- õÿ£批”±ZèekñxÇsžå®““áåg[´‚27¾"ý».æ½#ä*Üy[ó £`€óSÈî)Ä<2NmjceEÙPëgÔC9NHmßšÜË7ȱB­öôéÒƒ/OdÎWÌ_!²nÙƒ[ÖÂ*/‚Ú Ä–æ2˜0oÛœøkÒD’Þ Ë0år4õoŸNàÐÌN=O)€{*š/G@ïm=q J’S¦ýÿÖúMY‰Ú +ð%(Gä·×U èœã^Èa…HÜT•<¢à"ÎìÖçÂ"CaI/6¼Y6Î5˜£s™œÎ£Öð¥»gÀâÂ呱ÑÕ ‡Åss‘´‘KJQ /vŒ/:Ö=ýª|åä"æ·f8ò´¾Ì Mž$ØüÝa>˜"VUý®ÇònðóŸõfämãôñ²ù~F‘í¹é°ØRÉ]ûxra¼Lv«¸šW›†Ø`ËòƬ7j¼/8Ñ­ì$øaî5fÏ ÛÀ56 sÀsP±ãÆ#äIjxõÏ+ý!?;©ñ=iÈf×wCþé%” Ò–©£ÉÿÀ8°‰–tÕ²fÛt÷3Î|Þá‹—!P[=6㤗c)ÑþUIZ?¿åÎ'ìïä(Ph-2»®†UñæÞEð…ª~4*ÃÑp:ü ´ ¼<¸Y 8òå“«·:µ"Fü”béΦCøWV”Vå;óœqÊüØV ªÐñYgÃqÝÖ[Sf°k~©amªI‹ÐkVó¡]y3æòË‚çÅ…=çªÏÄ5[%Ik÷[ôiYÜžºè8Þô›p¾vë rwôÄm¸Ju®Ë'œ¯¦œÒýµŠãc#; ‘Ńdˆ•'x''p‰‚ž/{lØz˜‰[É ž×*a£xæÎôš?X愌}#¾ú 1&ê‹ÍÌM_*˜²kÛÇwBe¤‡nÍ•ç8¥õêZ“ÇþoüëdOš)y’FI÷Ö¬;RA1ýdšG‘ä~½>B ͸yû,,âÓ4Vod ûŠÝ>TÝAFPwÁ¦ª4ñ¬ë³·aO¤ãÆ3ÿ¾ÒT/|áKª>‡6Â]ü|`,¸ÔïgFñ1C¯‡Ðs0[ ¦Š .AtG3êpmÐ¬Ê û {ÿ”ËÖ¼"´Gl"$`ÄýlG>%ƪ3={¤aÖœnðy€ú8‰@Œ3œo: mÕ@~^®Á[-4* @ ¥ìóWI ±m²‡åŽbxž„w^G^(Ï(Þ‘šøƒjg^ø’&´ÜÑn(Ã¥ kqT’‰^çÖv?Q_“•§þOc{ghøÏ:3•}~Däú¾gÃÐÍQæªìè7ƒg˜k¼±€þ!Àl[[œ—{Â߬y•|  OØÀÁ È-¼·#(>Šï+»©ÜÃW.Öºº]žµJÛéÂd®à9îbgo‹íôiÄz¬íܽ<×–JŸ ÈLßë$ðnª¾âW¦nù" 0Ó+mOf7ŸÕ"¶'‚Ó´ãeou$¨÷^ãü!-þÕêQümtgD•QàTûW y²M:³ãŒCh]*¼ôE 3ןvÉ'1v“Á¢!h_`΢ÒU<K— ÏüçÔÙsÚ»(|¤Þe HdNª»ˆyîCÀçUsYÕÇèa_Ò ÉÊQõý!øˆÄKÅŸ“ä_éÒþ˾ä0‰y³<0›Ë¿¿±]nDN«Ÿ Ií¾T_ƒ»Sžq@³“Ä[4 ¢·°6\oiª0l‹:mh¡úê„ì¾ H ©Þ?Þ/:²=HÎ51ºà Ú8_¿³î˜¯¿À÷àÖ *±@m^Ôî Ìq¬}µ”1$÷A†¬‰hc Ý£e çTŠp‚·ôÚ¡y)W³ãéN¹JË(;.YF^gÔ2›Ù«#5MfXCcº”c¸«›=êÛ³ôc*÷6¨/7oËOªKè/vœç|©è!õàq/?ð…˜…4 ø,äa jôu,)Éç_ܬ‘oÚ íìZúkJ·zOÝ êžØÄ˜ÛÈœ"\•<3ð•Ó‰÷Ä€Áärpg]¿?‘¯A9ckì Xi¨’˜ï $îÄ?œ¢¥Î¢\˜!wËŸ_ðnÄø£m†á‚nÐ[Ÿ‹cB󬂛"Í).±ä БbxLЧU'°Ì,ô9›D)2,]"åKõ—4¾¶œ ü,VßíŒ-öΟ–ÇP;~4:Í”+$’¶A¦: P¿3 ¦:¶+H ÿÒƒÉá:8›ÔèÍôú5LÓsL’ßTÜzܘF¥ ÊËÓ€”áaÈÙ]ƒ(‚¡Vã'bÎ × þt“nAè<ÎþÐk5ѹ$‰7Ï_­µÞЧw1Ku/0¹ëZäô`xùÐ\îà‰D$:sLqŽaþço;ÑÔýJ¿Er³ŒÞojûßëü4Û‡Dßñ—9 –ªéÌ×% MY ÝobtÚ^¼T¦–åFÆÖö7~µR{E…\`H‘ ¢ÏCŒw.¬¦š}›\ÓQ+I=Léq+e¾ç秺tL2MPlQÁ’¦ð¡›ZpÍæiD–.«[å–Œ›² zÎdƒ¤‡!•T™Iò¦ŽÛÂ|ÓÝœl^õ·Hˆv8ËGóÕ×§ŠxÞd@."³w-°ÛÃaΚ<ãË1Æ”“Á„¶î.~Îw uoüw,ürL03”¿>¸n­¬Jœö:ô3& ÿ_lœwqIÑWø­z“ÈáG©ÄËæÞj›ÊÈTüÁÃKÓ¹iÉlM,‘¿ŸçÍm?"¶ŒVÑ&–BË'@V¯jª¥Ïz³© ë~$G†º<Ÿ£Íù¿a(a0êkšà@†šßËãôx;-ÄÒoÔj[=*¿¼Ì\ƒÄeÊ÷6ÉÝÇÇ2+اscÎî3‚ú´%Qà鱇ùÐì}™ÙŠ, €å8šT¸ýF\àŠÚ®ÜëxëF8Ò·›X5i±i û £Ð‚ö· H¾Y© Ê·õ˜+ÃT™Á—öBË®×5 ¦½eI¥*jI nX&]}p„tÐÇ¬Þ ˆîÍÓù‰‰ÐN+ ”¢»*«}ñ ƒ~û‘ŠÍØNv) µ¶õ—-¡>¡ÚÕ!Àƒ×ð¦7ïʞƺ§+nIYJ•¶$àìÏu·®©óSù…8oQ:ÅQ"Ö:#LƒÚŽÙ8·Ÿ·V©‚Hì2R%Âß›%, k$ü^«Øœ”Õ0×ÌÉEÿd9L–€4ï Ρ Cc?·ÑÎyb?óp- ùº8éÝßêç‡jyˆ•‘bù#ÃÁ• kôØ—7ggö•¯Ì‚•„×Êf~w€ è†f7¢ó¤“^õöC`Æ‹‰þÅÏì›[*dÜ‘«O´†×+Hn®rµ×\nÊÜ ã}äÌôÁq:S 9ø di¥hî‘xÁ_××{¸·ð])WW>¸ð зd…³>Ñ‹xH㇑\õ¹Á6ŸºÙÌðqã3pž^«í{†6Ÿó%}’¥D¼Z1e«Ùp籩 âj2pý((@%ê&'š-+c³Ë]é½÷Þ›ù¦†PY'}nx&t÷>Õ'10cmQ¬áˆžtþ’°°ã1Øñìš ín u„ œêãr†Ë_˜uÆÞ) &ÌUCÅ·JذDˆOn:¢[$Ý3“QÛâÖ?‚ò_-—gåÝÙäôE4\vÃͶ|º õè[ÉÒ ÄÐÌ`óñ è²¼ä î\_õ”|~„â}t0Ñê;#&x·M ]tA·öûËLá=níÉ%&ƒ¬8g±Ç·%™[vO5´—¶½×^L÷=>ôU·½÷_s(Ä™ÊtïTº5ˆ'U§Ü([Þ×jAšÀ.èu ÕtàGë­®¢Eûjñtá A o© ] ½1&ɳ‹ºãJ†Q‡C²q""Aÿ·”Msˆ¹öÿA|µ‚›Ø¿€¸ºù KÉ„iÙÖÓD(÷*Ž}ÌÛ–—ÁÁˆö Ǹ!=ßwg£âÿxµ`ca@ØâeÈõ ²ß°;Zƒ†Ü|‚AY†/ùèТº=- €&KöÌx>¡Ìà¹CëIáqy>ŠœI39TîØtÁÖ„9¤ ÂÛç bÇ;²ãûÈO5oôËI3]»ä¦lv§—yêÁ^˜Ñù0Ç'Ï€ý®ðçµ`eÕ *z>ã\‰ ­nðšl0 ›!1t‹ Ž*’qïÁ\iÃåáa¸w¾c==âA o;VÎüm$dwS›¼l’À­pÔv!Gòô­lµ›Ã#-?t`â’à´ÔAû"𠌲5U3Ó`Z+4c"P:ýI(&ê«–³¶Da`Äœ=uBp»^ ){Ë“—ç*ÆŸ§œ÷éDü9¤`M|xS\HíWò?Ùõò`Å»íNÁªx¤Ê€£~ÇèƒLR.Ɉüèüõ€ˆ‹j8þHž‡¡Û—Oà·#­Ê,jÃ)”-dVQùŽf³‚‚òÔ (Ý *¾0I”Ø'&Ψ%"3™¶N¡Àéu踗/¥Êüœ<»³Vª´û$,ÒŠ嶪íåçÏðAŽ©çJq¾ü@üŸ˜0¯ÇDåîöG®Ñ“ˆ„àK+´®ØsòÄ÷Ç$—‡±ä•=Â=Öê”ᬽ{kC,CóÇ6×ß=KøjBéàUžUáE GÐÀÅ8KUáYwÛÄF±cÑŽ:ž\µëC’ÄÐ|ï.´@¥ÅÜ[LèIË¥„]ªÇTXõÐe¢ >|  å:ùDÝf 5Ìì×f9ÐÅü$.Ã1Â44©Ìœù]‘;9 íu˜wxô*f3ó‹xe,ó‚VÈ® L7ÄæÉp÷Ô1¾Ÿµ–Ûkp hþªò}~Åu¥C#UUêÊ#*àðg]^¢0ò®³W‹øœÇtÔ|zó‚,{€¡—¡ËÞìÂ%C˜\»A#/|±éúܱêZ@K ™®ÒtÄ95QägdgŽØôÙ…™âí–Ôƒ710=ÉaùE´ŠâË¥¬F0á‘7ÜÀû’æÆ“ÒáÐÇÙ <|§«ÖS xJá<&Píl»:ÄV=>wޏ$G~<ñæšv¯A „Œë*I8äSÙqa@!º3>|Ë0Njý¹Óš¿`;6±JÊa äŠVnñæUæÖ¬ŠíÕ=3,-+š)Êøå™¼§£¼bm  «7m˜ê¡)R€ò.h66;jÆœ«R¨g¤I¢àóäj¡&´Ð£J£ÀkfLBؤKT˜F-R¼Ð~RíA·ù+‘M«ê,û£sqAKkK.fë©{š£$ŸÍ;O^Ñ4«àY«O´ð߆Án‘¶{|+Póû-5‘|ˆ¡þ.Jälpç­1Z»¦BU3:Ö¶?kÊÂÙÓâÄv/9@I8¬Úû±4EÅ`>JÛ‘SøíòسÊÂö‹–EFþ é÷;ZˆkjÚr$°j­ÃÆYùÝe¨ÀJH§´Ã®#FQ/}£Ù¶ XŽ0Ny@äØìh7TvîGòªVÂÞ‹øC7} 4›ákÞS³¢rª~…~D¥‹c¯å˜ÃRmÔÅ q^Ì–}Ê3‰È ×L®ëŒ±s¼4;ýÝï7S +Áñî('¿ÍÁ¡q÷Í`a¿üT"l¥O;PBLYÿÑŠ$:P3Œt[r“6_ü½¶V„«ãp)ˆ¤›ó÷s/–ÿ9awØ;jâG”Š?ݰP›uxcºì/”ÑŒ3j´ƒ>"UjêÀŒ/\e‘}}0´ËœRÕË.¹rtÝ¡÷Ãßþ­Ÿ ê]|XM§QD À£°QùÆ‚1–uGÄ^ˆ9§ß÷n²ß·˜Orª0=ó«‘í¦îâêTÏv¶²VLâÞ`i_Ѫ¾±—‘.{´½¢ZIi9íî†%ðüxë qŸ®eöüÆ ]¿oZÐ9jšTeˆãl¼ÙXbòˆOÿ¡ú^é‰áî‚€iÌ0=å˜ÞÚ/Š˜YHÎÚpFUSWk{†)BV“ö–|’£—$BˆÉ©Å‡ä­G(ï£û׈m|«*3ø`Fðu,,îá^WàÓ4A*8òQp¾hJ§]É]´ÀkiÇFY8™zß%Y°ZΪ§"]ä#’úf«ex¡~Ìá¬7ØÁˆ”¬ÇKJË8ÎÄ7eáòK÷íTJáHìXMšÚŠc¿ýax÷}dºåñt :SYF™Ô®CTX-^!»Ìèkrjm<§öD¯ó‹µtC<_J¨0‰Iì|­ˆOZ 0%·È~$ÃN!pÊ3òtÓ‘ÍŽÏÇ­óÞOK¯DT1%UÕOÁ,Ä ä¿gv ì"b\s6F*;ïˆí˜ì07Ú£§FQ¹ø¥ia}Ð_ü"nmù¢Q(„ɱG ~¯ì ±W„û ìZ€D y÷¥uå“™Tž ]E 5©·t]TÓPHzåëuÑs)ë™ÿÛupÛm(‹Áó«-áÉçËýiòA¹CÃ?È/ür…of\`š™DÑÒ8v¸ˆûô°'æå>¥Yîr¼~G\VÚºÑê8TRõà?¯7ï*Ûª,@»°ù¥É‘—[19XÜD`«:MKXÜ…A€n Ǿã5McßÚµ­#Èì1â#k X†L´x…+‘©®¿!¦µAäüÌ.¦ø†ª)W¡ä¬ ƒ¹jR˜„H›À€ì0p,Ìqú[Äm­î{òa&'=zú/U eðDJ2æ–ÜDÊ ÀüC êÜ´Ë]ö_QjÕR]¿•Hu.¬p¼Í÷'Y5aÕŠ#ÏD÷Œ½¶ •¶f:ÏAx¥žT6ÝÊ”J,ûÒx:xÌ#*<à7Ÿï(îWû6Ѥ÷ðÉÇ0˜ÕÞð«çþu½u˜Æ£È ç/v£ÂñY¼i\#é É@$IgtH:žöp-DÀ¹g)È–ô÷ £žÊS¨Ëh_–DǞ˕FF©Be‰—hÜÂé.-)v ¿ÆFái·ˆxº*T èA}ê¬Ê€8ºQ'ñˆO¨Ï<Ø'ìj[ E¨ØšÅ‹ ARß­9ŽÒïç®Hˆ4¤¤¹ ßËõõbе—½?¨ç¦0¾š;aH2òy†µ¶¡`èö=$–a²ª8‘ÏOÆFÜPCý­Ï&÷4—’§´¡‘ôœÕžkãñXNËa…±·¾’…¢´¸XK›ö^EŠ)ÉܪV4Dð²%Û,ºy!¤M™SvÎA©ƒÚŒ´§7L*­ª$HoMÂy¬}§[Ì„í³‹Ã/vJÇÈÎCùš£LPœ¼Y‚]Z6¦dûk‡Æß9æ1en9ÝZ*àN7jQ‰V8žš¤V,,/¶g 6}+_ ›³­c½‚Ç84Ò•Nžèý< Ë£¸Üóψ\äV´ôÓŠ¬¯.ÌÈÀê¦~ ÿÝ„P´Qmº—Pþ Ua(ŽËgÅEÏe]Ú“|\•+°¢JD› žƒLgnÊ/O ǧUG¬Ž%O|(B·”Øæ¦¢odYGð?ç“‹yE©ŒCñÇä9R[D¦aù›Ëýö«wÀ(Õø¡º‚fÜÍ0TL”ò(6ĘðR3c™ò€Âz« ¹EÇSIZ¦u“í»ïó±™Ï:å­ÿ?ù>¶t B ßÿ¨‡8@Í/µÃ#+n³‡+dÔYÍ=XÅG0òƒP†¼Q½ …×…›e)˜]ºfó×ñ‹ÐcxW=“b‘ðP¢2—íš¡t'ˆ`[lúߊš);•O›«ã*ÎLE@EˆKÇî|*t™®Âä7»ÛûC­+ •Ö‘T%HxñŠý¥{¶œ±¥óo$ÐH%×êZÕæÊml28–se£„Ó‹Ú\X–˜Ä‰4¢3‡îñ>‡LÿÛɸΥϼp^Ávú›L \êWá2@"6À–¨Ìœ¾¨ ÀŒÖí ¡?~þ ÁEåÑp™¼Z¶”}’èó×<)ö„q°ÕsËñ@¬]aÀïý½‰|?Ä¢ŒXû„âÇëè¬ùw®CåXÒÔ_¶hXÇíhþ°%[mXµég8ÞÅ öÏåmù÷œukŸmž¹Qîcø•*nÁÇHCADÌß=ž4Åy þlEêª5¢™)‘j«Õ„Zq|”é Õwùò8Enø²n¢c"ý¤áu6VwãHKŒº”xˆÒè\Œâ»ûž¨Ë;äF¬fÈ·-Io–Ö»µ‹_–­Òî"žs9Ø^¸Yà;òZBeèÕìcýÇg¸äk`M’$šDG€(+î §Á6 [¡HoS`œbö¥¢¢ «Ð?™x\îÖju—sßZ@ ª¤k¦­^½nü ß(”ž½¾Ðç!œa.>4½ww.ÒîIõöZQÁê`YKY]s^\kàξ6ù¤ó¯ýÙÍMµ†l|°qÒ Uy\ÅkÌs0«¼àÈÌø:¸Ð<ô½L:¿õ>ÿÃ[£‹õƒožv<­±ï Jê[pí’Ö9ƒ1…hº,`xLrG˜5)•)"{§w—Cèí}¡ôx´“ÔÖr’,„áîñRìÁ–ÝÆ° <á`Îè&Ù¢}Þ#¤õ©/ýuvÂAÔ-8g»"uت³éÕùCŽðMî÷ÈÅã8¦ØÕùD´MÁyæFŽò;”_þì½è'P¶Õ¼Ã¿ÉgÒ™tî,„ŠÔƒÄk.G *qET´*E·Œ¨"µaèb³àÐðD1–£’KADBúýÀÝpôxæ´Ò'ªk‹¿ƒ;… †Áò÷á/îq²W}\+Kþêpçt%xã)Wáõ¬ò²C?Ÿ5Hÿ{qÈFæ"¥â?þ¤‹ÃûDeó—ªOJ˜ÓsD l‰R(!Ðü™Yná\z·xÝÁóÑ:¶úB…Æ|Ÿ—âòßë9r¶Mè)”oYp•s fdf4OWd «Ý#DÆÝV÷aÑ(‡1nžh6/Úã“LÙ‘c5 úÙ³¸‚]þ5\˜6s*»ß³úà½íýtŠÂ2\+qÑ×?{·âš¾§¥Z"ùUæmŸ ÑÀ¥nQ˜ªkÍ»×¶ª0Ì!5È&ï¢}P3_2C‘—ˆ¡]x3·Ú€\äI¾ó%h)Däéù!侩âî¯8õR6$WêXåàò£¾þº§É´Òƒl Úá°‘¬ùCÒå‹pˆSäˆ~S}†'±»žŸÄkÙ2úþ+Ï%jchͼñXUª„ŸÆùþ‡Fe'@Qvzý˜TØxù8”x† ¶Q»NN"ž©Ù‰ØÂ¨[Ib•œòñ€5Oçž’È-® †ÜeŸ-—å¹’Í¿ß0žŠàêýœ <ÞyP¦,‡¸æ±î˜$ùІMˆéò§ZG–¤ÐÒ`c¾²7X^šæyì‰41ôvröû yÛ[<6ñUz¾²ATp&P«YŸà•ìî3cðžÄ]Ú‰aÔ&‘ìt)vŽwû™º±Lº¦'³Å\½·ðž|„Åíü"iôU ߈q8ž­ÈTEcÑ€ªÿWÆÞ7È0CuƒAY«S_]ýΓÌ)%àöä÷»s€á§�o#rÑe¾µóvÄ ¢ªÍMNd·ˆšùVý1Iä—~@Œ ‹o×ßìdú(*@s>»±`o`¹гìâm¼‹dQt»½d¡2¾wLCüÑgš)ìóêcXÓa“lòì "PÊ0`ÚžýÊ  dÊ(´W z£—]eˉíohhvÞu3„³ä6û%‹üDe4\^Ú<k}þƒ}‹¶ûtÁ­—°9)FWÒlþP"å£Z¡žûÌê?0Å|jFñ%M‚\èž§á`i¼ñ9£ò cŽ(L‡ŠoÔh@‘½56hËsgš/ÒKÖãP“GÜw|ú¶Ò:{ ~|Ó°MjY•ðƒ©1º2½vŠ×ëû–ÌxS)Øä=ØBXÐ.Rézsü.q)gäþvÁê‘ \ñ$>©Î&ðñEŠò›ë›­‰ b3.ncêš%<‘ÆDNàо>¾BÈšàýQuÚ@–à– žCB%šÊ žû{1ÓûyjØ8ç«LF´š¹JO>mÕ ô?_y@¯WyÙ«…"ÿ¹fª‘eº• ¾c±àmOUƒ™/Ñ‘X÷ª–Wì`׬4ŸÍT7¦‹¯üïo=Dô§®ô›o°TÓ¸hÿ¸èTP‰ãh–R7œÔc!À>.)ÞÇO¼/×j £—Å(züÐð‡£@ׯúÊ—øtTœñph$£âzIÎŒé – VË•×ÎÉ–­z ?…}ôå3#Y°6JÆÜÅù„¾Nðû¡´W´~¨¶µÃ¶…œûëˆÌDàñþfDpuBÕˆ;úËlçŽOÿ’<& “JØÛOW¾[è!Pû˜\¦ZgÓ6(V¨Šª>—_v»¯‚Yt¦x§ö·YÚ-\0µj>HÄÃç]rü=§0þÛRû‚dw²T8-ºrãRi?ï©¢_j¦ÉÜC|¸‚ǧêˆgÞ‰tžŒj„©Ký1¼xü1ÑqX¼tnΙw³îÛMf…‚%|㾘8Å/)ÒíúmÃHHBÑ$³oìúnµ°n°‡Ê¼)pþ·@™òèÓ7kÂ׉Kq&dèü¿¡Çå°Ž®–Õª»^´a¶ ÄèoЬ`C…‡e¼ZÇ;hÕŸ¬ 1[:TüáÆ÷ÉV‹ï÷ø /]#YØ*¦ÈÇÁå3?€­Æ¡BTÔKïSQä”>o‘4—U Öܼé•c>sù3¼ Œîr—%(ãçÆÚþ¢<@ŽÅu—ÀMxMÿL†@‡P=xà@k×¹K^÷(úu%ýº¼QJŽ~©)Å'0Dfîw:=nãþÁ•ê €º ¹Û–%wôåí¦™70àî|íáG–ÁQtËïa§.ͼš²®Å=±KÈGH+emÄS\ Á±Üò•ÏîbBãy5Ñ‹y/©aâ)®zõÆ nμ´6ÞHBŒG@Yx¹L§bÕq—½iØÃ)¬Ê°¥ÚÔ¼ågà §Ì(Ì„”˜^¾Ô7Û’YZ©šÊÚUFŽí|ªJÍ( ’'%2OÜŽ1øƒ™Ê4äÀäùSy‹# jxl>L‹e”àî/|¯”L=Ê ÷7Üç‡/ƒæ‰mcóÃÐ%…lræ°à”öØâzÙÑ·°¢!»BÊ{Ü–ÉQäo5³bºY_MÝ#¥—3µTlL×ì4´=©%Å“ÞFÓ!¦%T%ùiÏaÑyéš %# ,†ÝœZqBèüåI’N‰‰µOÏ…à "ø3Ðbù•¦„ÐŒÿÓ|§Ü&9ñ\Ö ŽßLÍ:X %Ã45ÀyÓý-)òHZpnb˜”9Ó ¯ $;`=íz£1À܆ ’mcšíg‡ÇÖüg˜L™á«Á_¶ôÒ­%ºôÏîÑiÎßwÀ­Š„j$›,öc©(¾rKï<þÁT´¦*c¹Þe¬cc%qŠ÷%S¯ÆmdVb<Ä(a£,ÊöT1GT ÃO´?ˆæ¤éѧÙsì®þ¨@½“YݹÅ0OÀ¦^LoÂ{úzÑ.]·õžt€ÖѧÄjjþžÊ9¡®!r7+˜'KŠàõuÏ™‘Ò~P~ùˆUrtçW“KIåÉç•õP– qà‡ïÜÉ ã½¾Iââb sìKªŒ¬Ô?Þz$½¥z8;éfO—ûÖhX„‚`â—ý…ÁE`°s …é± B1"›–àï¶)×Éë=y UerÅK¤G¤p¦²“©ª>z¶*O¼8 ºXñöcïÌ PéiÛÈ °¥Ÿ=éû0ûj¸øù>UpºÑÀÌ6¿BUÙsvfôÒ—DÖ‹g É?5––«¹ LÛ ¨ Ü¢®‰äæv¥°)ð†mXü‚Dé¡@äŽ!äáírÊéYЋa÷³qÍÍÇB¢ ²R ¿^ƒ{Ÿ˜ºX’dE¤QÎÙ«Y5?™'cóŠ" g³ô†°ÓýÚË€ŒÀÉWÕŸ;C\ ÎrsëiúEi†òh­¾æ²*Ø¥ 4Nf(·¹XV#ÂCi€à_¦Ìs}rîíjŸ<¹júýÜd@·Yøûn>p«ú,6(C¿05*š[ÔònE^’t†”ft•ê8@¼d!• 8Ü^y¯:å¦ÿQuhcþÀg'ŒÏÞ³ÑæÉtA l.ôpåTRë÷}’‘^gBK˜¿@•%VÑæl U 1vOaj:ÕÉ„7k4ÕðÀÉç ñk?R^ýÊ¥P¨˜Ì&žÍ˜|«ä¸^XœT= Aö5EܵǾÃEmšÉ¬E€¤m¨ƒ½¥‚NîT¦àAéÄ:†oËÃÊÔœ®…£{=cìüœtý¶¢x3wl~ »4h ¨˜/.ôyù™žý÷»v)g­ÿtÒ7¾eÒèlõÅö˜>X2p„ó3õd³™µ¬ *cX¦Šô~' 5w¬Çº˜œšøÛöÉè{Pûšâ†Wmdzyc£©Š[—µöašõNt0Òëòˆ?ÃQ]&eB¶ÄZm6fâ‹1¨d*j…óï¨à7)¬«_!ÄMabŸÀéšL=Wš‡îõ4¾­NþÞ©îÆà¤“ܧR-:n·ö|Ζ[üGoq‘Š®v@nûûYðß´3I.ÌlvBà²>SÔpoŸÙüžÆEî½µ¹ÐxÐlt e}µ«ïJ¤™xµØ}çâGí®Zuä(ÖHÁ­×R…9j=Z¡dZ6K&¬’ ÚÑO.ÑšfiC°‘ÙŸSdŽÁ„ XŸÆ­¼Dµ³#v?‡d± ïÔ낆»k#,À¿•­¡DUãUoù½õ·¸Ÿ"¹¦{8Ö¥æÝ‹’ñßÒŠÍàIQóZDp¸1 Kâ¡ÒßߊœÙ ­'¦jéÝq?6 iåJ­`Ðn[É*úŽMñ…ɘSº„…ÑbL[V+ðó„,éÕ³n´ŠÎ)ð<¥ÿ­97€›áüìtè­Û+Èܹ •Ø?lÕóCù Qu;)Dè„`T»­?åÖæ%Ä}´OÿÈ›wÎÊ,C“‚…‚[þ4Œ~ìo PJ±®ãnUëõÃ*‰Ãfî¡2¯ëØÎÚÁ›ÉÝövcš«@B·zVØ×¡LÊ K¨9°ÓùkÙú-Ò6yOkcøªÐ£_i.fÒDÓX¸È9ª*úäM˜P,êYݸ_Á)úD.Õ´rv ~5ŸL½øã²Èë“I/Ë/°évy¹«9ÇsÂqü^ɉ0G)èÎñ—®i‚ …}ØazÓŒç†!?;¥\'ëÑ[Ÿ †Iz@ ˜sÐqü^a;óz%r^ÉÊP Ï~¥Þ¼xø,§‹ö’ánˆß+¥ÇèþïØ.Œ…/°™DÆSJ\Fl˜3~ ""(ú™&2É– ¥_+g¶ ƒR;6¨~Ò/ƨp_2$©œkõÓÓé+ÛP ae¦¸1†ÂO&çUŸ"qBü-bû¾ÌÈ2ÐÚgôŸÆRˆ¦3Ç-ö$ß¹ïsƒK);äЭյh Í$]¯s¯|­T 0iUµv bùGuwýD¶i®1÷ùOß§"Eîî%Š}–=øB-8‡-4º+úcb5JŸ!zUo— )F| ~½¶#äŸô1ÿî K™n¬ ‘“i!âÕŒ8“N Ú]•!€œ³–ÓÉ IM}}DÜ_äpª¤bòH‚}c?Ç‹~g9;v"å§@/¥b›ïLþqƒYNVq éþª„é}tS‰¬¹^yJVqœíTAíwÂTNéUí~¸¡à×þ*:ƒ¿)@ÌOŸBîf)[qú$]OÖ’áŸTñ•éÄ‘dÌñª0ƒ âï†9*OžEÆ­Žv®¥Ùí?¢ð²^ÞNä¯á‚fu¥÷Ì©€|Žžˆ¿Éõ*΄¯$ÌïÚYM &{{¬{mYèv‘5®oWG¦ötY>k»Tw,âHæÓl¦\…^órCÝA¸óªåe´31vÖzft(®¶7æöL§Â̬û}% Àô0O볩Deb2CŠgcYWA¾ÛtT’b ×È‚°7a™ €¿T~@}XLYÙx¿ÜÚzhÒìa$/‘ç{DSådžÔ;[+ƒ€Ž X“Ûw6Å>jmÏíË÷+\ç¨;ðu•]èrÙg 99ÏL‘ Óz¼¯tòœ&†øÁ(wÄÔgô3š’T鯄^ã%ɼ»3ßï.Ë9ÅVÏüµ ' ÿÕ‹yCõåòÂÏ‘> ;ôn½™+œ˜Á|“=I3P„CÆêF ø^t¡ðGDžQ›QU7ïò4ä}|Å2TÿP:E{Ç; _SQ9Ê("ÜB>ä6ÈæE³ÊøûAl ¢•¨í»¹Òl\S³=š4EûÓ‘w#µ±!ukC,CóÇ6¸Mîådö¡ÆLJ%jg§ÞrÈ ùŸgÉm?ÈÓ¨?=[ÌÃéšSü{>içVýïŽÈùáçk™îCý O@ªË{þƒëËMÚ1ß„_vTïÎ)¾ŒÌcßX^é­†–þ‘A^´§gg†!4—BfÉ÷hðxYÑÒ[ântÚ¸ªç¿fs¸Ô¸ZÍ}®'ÝýÃYö·þgâ™1cC:7kù\G¿)LRtü×; ʾÒi¼*©CM_Š =>àùÁ¤? –¾n·ûÓ~#aŒ‡ºì fœv¸¡ê`p@~@4ÉU5¾çÛ–°ýWCb¥i<•–-jÄ È½³«ÿìÛ K9Q®h…žc1óæà´ÑKñøœ =EL•|zu.HíŽÝ0ì ÆµÑÇÑ “0…‡ѤD´…iM‰G=O{üøËÔò/²ûò™±)Vé ×YDƲT!³i^Ãø >à ً©Ú<d$šy ìÇ U!-A5Ȫeÿ6š LcK܇?å½Ç«ZÆ•bò2ÞTöY_ß~º< íQmþYšÈ0í_-ê™¾ŽØ—8 ¦î÷Ž#°ŸÃv¯Tˆ½ÁU²T…7Ã݃¹Š¨màòû½\þÖý_}LÀ5$jhúFUy ±«$ w²ˆªMÁâɈ¥Øã0;§ú;=6S:I¶ÖºÒž¸ Ñ—Æ*Ì{{ bñ÷*T-x ‘$w=[­ö &w‡í$ÏŒù]Ø+ó’ƒï4zÖz³ú: ¼†¯jôXìeñGÖò1´a`~ЌȰîùó3YUöaáœù‹ _MM5Ëφ¿}÷~@ê,64O‰´>k”¤Eìhÿ­øy¾ Djr¤´Í ¢ßÅ×ÃgàzÌYw“/*vn?ÌùµÝòÌhÛ!? ?D0 ð¼s&»Ú/e€ƒKÙË€húôB`š6r|ž8t0!ÊÌÄqÉ1hÂÉ'D:¬ç6øl¶ØÁ8Éóg˜ªÆ¼×ú¯Žå“EX¤‰ ˜ù$zÉðXÿ?é+ú¹üŒL5Ì „‚µy#½ „fµÖÞ@ùî©mv‹#­9¢5È<Ñ›H9ÞZÏ>°¿å"{«‚ÌNÎ}F`*(nù+öí‰x“,…ýÂá"‰DIy¶íw¤èX6±Èããá¡ø“E[þ¿"Oí>¥æi¿ÔÂÚeœ°„ºGz§‘.ÅÖÉí¹y¹-ô/Ø]PÌ.DÕÚ¨u<.=+ ÚwXœoÉC„² \¾ûËëµÉ…÷ŽX5}¥£I%Pø_üÉ¥(ÕÚ &`ùƒë³úŒ2÷™eÜʰ=Õ!n8v%&; ÓÐ7 ŽÃ·yä†w³b0_0XÝEèǸAhÝçMý<¡¾‡ ¤!Ð’ÒùÁÝá–'¯÷v¾w¼ØÄqû²AV¯'•x d(ñ㊵²íÏʲߒPhC¤8«ˆZN:p Ã'ö†ÕYKŸã Ë—FœvkÅPŠ6J8u'“sØÓƒ¶©ÛäÕEFÕÒ }y ù4›ü"Ú[]×((C°¦or°‰Št>›.ƒ;y YÍ«?qe(Ž˜ÙðMpg‹-çTáÛÅ×*´)OY?o:^Pw$v&ÁƵ߉šñèUî &»;;ÌUì8ò+FtÇK®\¾yœBôÕÝĈ¤£d–…Z‘…+D³ÞêdÆã“ ¬ {êU^g]0©îk¾š%§¿¹tÌL…¹™O-XÛãäÚ›`ÈBp¬&OG‚™˜-M“rÔc<ß1Ù‹°³VŸ”#r¶lf -Êld?¶ˆs&³ì %]Aƒ¯Å…ÒìEumÄ6©µœExòͺÛ(7 ßÔˆX¤A‘'㑨2ó;$­è?¾~!Ɩ´,¥‰³#ïz\Œ!¦-½º:.ÜVßPÝB#†åß5ŸÕ[ž”b¡ç;ÄFUÚäqglwû2‡× ˜Ëì–9ÉfQ‘‘R°®èBDówÀ_Í`ÏžA"|Þ"*#4¤`i÷"ùâ‰A|Q¹1«/섉²>kPWù±ÂZU—ý¼=$hrs±ØÏý¬ØÆdé …èª‹5ÑRÚ\Bm”6;!)Nfä±IŸ 9‡«FäG¬H ¾™ºQüg˜Wãì6F#åŸùL3ñ­ŸkAd/ú;j„ì‡UQšŽnp±ËYÄâq༠ÔîÂ=kÜ564Lz–Œ<23À“ôl¡ãC ¢U÷ü¹×ç Õ¤·ÂwÌÖáD*( ªàr?uˆkóz·'ý[zÌ´u¬O/—6xAŒìtîÝÖ *"U¤œo{Zü Î' °Öªã<óIå Wü×ÎßCO7¸SS[3™3¹J÷™øÔŸã÷@Ÿí 1ÏJÆKÅ[‘KN\=‰/=ë/ÁmÉgԛјí‰XÉ…ò”㫺ô Ù ˜À¡$cþõnÒe`òê7žž’y*/K‚׿æJW…;aIõ—Ú®Ûd æä$fÿà’èåÛ:&Ûe~Àìt'áÕ6|ÀÑ47LlÃêÅ›;TFB––e/"tNœ¸©Ù|ûGhVÇT¹³MÎjºræ½¢U 8Åy&™ºfÛ×¥ç`\ûb¿Š' #%‹>FV‡Ý[ö nAä-¶sªßaaL>á‘]åÊ‹)¸›lÊFS/6ä ©…ÎΑ¶nM0à}g’Žáùßt…P×m?t_Øq~2pq>Òf…)·‘Ét¨5ú˜Á”¨¡Y<]Yª`-x#dÍ¡úJÊ*åÕDØ1—K£>c?ÌîJùÐO¶M; 씳q&+C©²UÊ.ñÏÔ:éõ¸ŸÖóLâß¡¥9ùoÅæTÅ ¥ò"æSÎΉš9] ³¼×šíÎí_%›ßÄÉßÍŽtÁŠøžÀÛ]˜hY ¡º'K{aoà®Æïp72BsìÜxÖLGS`YÛZãy™\Ò.va eˆ®‘̆UÛ}jX©=¿;)N IqĤÎùä‰ùZR’íêˆmôí!Õ¨¢Ÿd<è÷ÂFRf*‹Åľ°-p&ûtŒHò¹’D`dQ´/‚˜úÚœÍÃÆj¥÷©Ð6 P—vL– JQ>cfijuD)×þ_ãkä¿iïñ¹xm¨‡­¬’»MoñÅ,`¾i’Íû À™{<>jQî Y© Fí¸c }„dFši+—ÚȬ†:Uß'c–BEËû<Ž*Hjó:±ØÌÊ)ï%³%h§m‘Á"&/ l ¾©F¨[êÒƒ-Þá6íÿ1³Fлû5ðÊÄú¬ãš\hò·È ÷7D!N…v2Ì•øˆ`/iˆ"ͱoͨŒxÕv§BÐ>˜H|>)ú—õÎÑD(+C0MrSè@6R}M/’'YEm»t=2„ÔíÔ¬ûÞ#ú^|4¢˜p©B°òŠ™±+ïfÝM¹÷¹ÿvê }0ÒÒˆÙqA®wœ/‚Ò3ÞFVäÌÁDð©¾êšLS¦ƒ°Õ¥§ÌB=GgEQÄ+¶\“¬~ Á;Ò‹BµÜ³»Y@õbØš"{£ö è½¥’²õŸ¤ÏU‰A,ÿ dÍi[¹Ù|¥Êæ3$æ²)àïfé–’°Íte™ÄåçÇÀ†…9mEŸ‘Nak¸^ÍÓþÏ}À”L e½Ø7ÁŠXhø°´Ñ:^j¡ˆ‹`´ròÂ/€Ì–µ\u˜*,§ÀP$&Q™Rô-~¢/9⌚1ò7ÿĪ?…ÌüommbçQ_·;Jc`¤•æÇÖ£eB>ííê¦ÌJX­í¥†F jøœÔøQKh• "òia’W¬ÀÏO)Ã1?aÌÛ„³mýã[½*ãR¼”ƨ\Hÿ™öž=Ý©2dº¿Ó‰&ç´„ sGµ>°ð“T“fÁ” ERYu»óª&e¹G7_×VV—¡•å(ˆsÏß(´¯l9‡Œ §e ŸYäŽ|ä~ÂÒEím*"¦yŽÒ—ãÐéod-±ÓhòÞô–s½»6T–ÞFZôÇÄÜçŽCÈæ£ò ûñ7kª#6y›%cGaÖÁ¤ú~¡9îþW´ñƒ0bë5C²œ±®Î7è—2dóóÃéa&6;Ðí’Ð2¿†¹ fíòµE]r8|Å8-æ.ò÷R‡bg,àíÌ5 _nf©ë8£eR0•»€`G;P"ŒóŸ•ÌÐ:l+G š\ólY‡k‰ŸlƃM¡Ú˘fåå£åQ{:+Óˆ+^6²-Ò™p˜ÆÂ¸ÙË$LˆY5]¥$B]ª°ÂCZ“nƒM¸G#{÷r±œºÁ|¥¾“‚8aâŽ+ ›Í¹u%‰/eÛ„ XSÈFZçèQâ’L0JVj‰´Ð1´á½=£%‡t—àQfC (;œRFùË&»K  úŽ ÁúJóÎϸ—è4Øy‰Ã÷,Q¿|pÈY1O@°Fu´ñÞ•zƒÕ¨ëaáÉ Ùõ‘›Æè3ÎÎE„V§ÐŒãóˆ¥î72§ª¥… ¿/oÂø&õ†]‰jCöŽ|I[$üã­b'nö‡"1$,Ú¬ï14Ì –QóÔñ[PÆÝ†/‰=¢0ôèLX’\Qw!L_óOo.A;Å ´%wîâ9ïÅá, –̥ʮ i¡t¾1ºWN๜M±9;úŸ-ºUY iíû’y¾YÍUGiF9»˜ðóz,gƒÛ¿›ò½q`—ñ¸Ê`Âå²JuÜ[ÃJ1ãB•DœªF_ûCËè•lñ@”ˆ ‘uðlûµ&3ŒbûO#/¿dÄi˜R¨qè¹zÂK‡=Go¼]êS¤1–â5üFq#›(ÌÛ»¾¹Ej)Ê º®Cç’8ê‚­þuTŠÀ¬Rî¡r¾¾é Õ\Ÿ]çPñôÇ% [ŸÇ0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark libwmf-0.2.13/fonts/StandardSymbolsPS.afm000066400000000000000000000226571441723000300202550ustar00rootroot00000000000000StartFontMetrics 3.0 Comment Copyright URW Software, Copyright 2015 by URW Comment Creation Date: 5/31/2016 FontName StandardSymbolsPS FullName Standard Symbols PS FamilyName Standard Symbols PS Weight Regular ItalicAngle 0.0 IsFixedPitch false UnderlinePosition -229 UnderlineThickness 46 Version 2.00 Notice URW Software, Copyright 2015 by URW EncodingScheme FontSpecific FontBBox -180 -293 1090 1010 CapHeight 673 XHeight 500 Descender 0 Ascender 0 StartCharMetrics 191 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 128 -13 240 686 ; C 34 ; WX 713 ; N universal ; B 31 0 681 673 ; C 35 ; WX 500 ; N numbersign ; B 20 0 481 631 ; C 36 ; WX 549 ; N existential ; B 25 0 478 673 ; C 37 ; WX 833 ; N percent ; B 63 -7 771 673 ; C 38 ; WX 778 ; N ampersand ; B 41 -13 750 675 ; C 39 ; WX 439 ; N suchthat ; B 48 -13 414 503 ; C 40 ; WX 333 ; N parenleft ; B 53 -172 300 680 ; C 41 ; WX 333 ; N parenright ; B 30 -172 277 680 ; C 42 ; WX 500 ; N asteriskmath ; B 65 127 427 546 ; C 43 ; WX 549 ; N plus ; B 10 0 539 533 ; C 44 ; WX 250 ; N comma ; B 56 -120 194 102 ; C 45 ; WX 549 ; N minus ; B 11 239 535 294 ; C 46 ; WX 250 ; N period ; B 69 -13 181 100 ; C 47 ; WX 278 ; N slash ; B 0 0 254 673 ; C 48 ; WX 500 ; N zero ; B 23 -13 471 686 ; C 49 ; WX 500 ; N one ; B 117 0 390 673 ; C 50 ; WX 500 ; N two ; B 25 0 475 686 ; C 51 ; WX 500 ; N three ; B 39 -13 435 686 ; C 52 ; WX 500 ; N four ; B 16 0 469 680 ; C 53 ; WX 500 ; N five ; B 29 -13 443 699 ; C 54 ; WX 500 ; N six ; B 36 -13 467 685 ; C 55 ; WX 500 ; N seven ; B 24 -7 448 673 ; C 56 ; WX 500 ; N eight ; B 54 -13 440 686 ; C 57 ; WX 500 ; N nine ; B 31 -13 460 686 ; C 58 ; WX 278 ; N colon ; B 81 -13 193 463 ; C 59 ; WX 278 ; N semicolon ; B 83 -120 221 463 ; C 60 ; WX 549 ; N less ; B 26 0 523 522 ; C 61 ; WX 549 ; N equal ; B 11 142 537 391 ; C 62 ; WX 549 ; N greater ; B 26 0 523 522 ; C 63 ; WX 444 ; N question ; B 70 -13 412 686 ; C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ; C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ; C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ; C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ; C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ; C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ; C 70 ; WX 763 ; N Phi ; B 26 0 742 673 ; C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ; C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ; C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ; C 74 ; WX 631 ; N theta1 ; B 18 -13 623 686 ; C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ; C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ; C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ; C 78 ; WX 722 ; N Nu ; B 29 0 720 673 ; C 79 ; WX 722 ; N Omicron ; B 41 -13 715 686 ; C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ; C 81 ; WX 741 ; N Theta ; B 41 -13 715 686 ; C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ; C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ; C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ; C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ; C 86 ; WX 439 ; N sigma1 ; B 40 -222 436 513 ; C 87 ; WX 768 ; N Omega ; B 34 0 736 686 ; C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ; C 89 ; WX 795 ; N Psi ; B 15 0 780 686 ; C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ; C 91 ; WX 333 ; N bracketleft ; B 86 -165 299 673 ; C 92 ; WX 863 ; N therefore ; B 163 -13 701 433 ; C 93 ; WX 333 ; N bracketright ; B 33 -165 246 673 ; C 94 ; WX 658 ; N perpendicular ; B 15 0 652 673 ; C 95 ; WX 500 ; N underscore ; B -2 -252 502 -206 ; C 96 ; WX 500 ; N radicalex ; B 480 857 1090 913 ; C 97 ; WX 631 ; N alpha ; B 41 -13 622 513 ; C 98 ; WX 549 ; N beta ; B 61 -222 515 740 ; C 99 ; WX 549 ; N chi ; B 12 -210 522 513 ; C 100 ; WX 494 ; N delta ; B 40 -13 481 740 ; C 101 ; WX 439 ; N epsilon ; B 22 -13 427 513 ; C 102 ; WX 521 ; N phi ; B 27 -222 490 686 ; C 103 ; WX 411 ; N gamma ; B 5 -219 484 513 ; C 104 ; WX 603 ; N eta ; B 0 -222 527 513 ; C 105 ; WX 329 ; N iota ; B 0 -13 301 513 ; C 106 ; WX 603 ; N phi1 ; B 36 -222 587 513 ; C 107 ; WX 549 ; N kappa ; B 33 0 558 513 ; C 108 ; WX 549 ; N lambda ; B 24 -13 548 740 ; C 109 ; WX 576 ; N mu ; B 33 -219 567 500 ; C 110 ; WX 521 ; N nu ; B -9 -13 475 513 ; C 111 ; WX 549 ; N omicron ; B 35 -13 501 513 ; C 112 ; WX 549 ; N pi ; B 10 -13 530 505 ; C 113 ; WX 521 ; N theta ; B 43 -13 485 686 ; C 114 ; WX 549 ; N rho ; B 50 -220 490 513 ; C 115 ; WX 603 ; N sigma ; B 30 -13 588 500 ; C 116 ; WX 439 ; N tau ; B 10 -13 418 505 ; C 117 ; WX 576 ; N upsilon ; B 7 -13 535 513 ; C 118 ; WX 713 ; N omega1 ; B 12 -13 671 589 ; C 119 ; WX 686 ; N omega ; B 42 -13 684 513 ; C 120 ; WX 493 ; N xi ; B 27 -222 469 766 ; C 121 ; WX 686 ; N psi ; B 12 -222 701 513 ; C 122 ; WX 494 ; N zeta ; B 60 -222 467 756 ; C 123 ; WX 480 ; N braceleft ; B 58 -169 397 677 ; C 124 ; WX 200 ; N bar ; B 65 -177 135 673 ; C 125 ; WX 480 ; N braceright ; B 79 -169 418 677 ; C 126 ; WX 549 ; N similar ; B 17 196 529 325 ; C 128 ; WX 790 ; N apple ; B 56 -4 733 808 ; C 160 ; WX 750 ; N Euro ; B 47 -4 716 671 ; C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 687 ; C 162 ; WX 247 ; N minute ; B 27 476 228 735 ; C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ; C 164 ; WX 167 ; N fraction ; B -180 0 340 673 ; C 165 ; WX 713 ; N infinity ; B 26 115 688 414 ; C 166 ; WX 500 ; N florin ; B 2 -174 494 687 ; C 167 ; WX 753 ; N club ; B 86 -26 660 544 ; C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ; C 169 ; WX 753 ; N heart ; B 117 -33 631 528 ; C 170 ; WX 753 ; N spade ; B 113 -36 629 591 ; C 171 ; WX 1042 ; N arrowboth ; B 24 -16 1024 512 ; C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ; C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ; C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ; C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ; C 176 ; WX 400 ; N degree ; B 50 380 350 686 ; C 177 ; WX 549 ; N plusminus ; B 10 0 539 662 ; C 178 ; WX 411 ; N second ; B 20 476 413 735 ; C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ; C 180 ; WX 549 ; N multiply ; B 17 9 533 525 ; C 181 ; WX 713 ; N proportional ; B 27 114 639 416 ; C 182 ; WX 494 ; N partialdiff ; B 26 -10 462 753 ; C 183 ; WX 460 ; N bullet ; B 50 155 410 518 ; C 184 ; WX 549 ; N divide ; B 10 2 536 525 ; C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ; C 186 ; WX 549 ; N equivalence ; B 14 87 538 446 ; C 187 ; WX 549 ; N approxequal ; B 14 121 527 408 ; C 188 ; WX 1000 ; N ellipsis ; B 111 -13 889 100 ; C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ; C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ; C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ; C 192 ; WX 823 ; N aleph ; B 175 0 661 689 ; C 193 ; WX 686 ; N Ifraktur ; B 10 -54 578 736 ; C 194 ; WX 795 ; N Rfraktur ; B 26 -16 759 730 ; C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 574 ; C 196 ; WX 768 ; N circlemultiply ; B 43 0 733 691 ; C 197 ; WX 768 ; N circleplus ; B 43 0 733 689 ; C 198 ; WX 823 ; N emptyset ; B 39 -24 781 718 ; C 199 ; WX 768 ; N intersection ; B 40 0 732 507 ; C 200 ; WX 768 ; N union ; B 40 -18 732 489 ; C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ; C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ; C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ; C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ; C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ; C 206 ; WX 713 ; N element ; B 45 0 505 470 ; C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ; C 208 ; WX 768 ; N angle ; B 26 -1 738 672 ; C 209 ; WX 713 ; N gradient ; B 36 0 681 687 ; C 210 ; WX 790 ; N registerserif ; B 50 -13 740 690 ; C 211 ; WX 790 ; N copyrightserif ; B 51 -13 741 690 ; C 212 ; WX 890 ; N trademarkserif ; B 18 269 855 673 ; C 213 ; WX 823 ; N product ; B 25 -124 803 751 ; C 214 ; WX 549 ; N radical ; B 10 -35 515 913 ; C 215 ; WX 250 ; N dotmath ; B 69 209 169 311 ; C 216 ; WX 713 ; N logicalnot ; B 15 40 680 367 ; C 217 ; WX 603 ; N logicaland ; B 23 -1 583 476 ; C 218 ; WX 603 ; N logicalor ; B 30 -1 578 476 ; C 219 ; WX 1042 ; N arrowdblboth ; B 27 -19 1023 506 ; C 220 ; WX 987 ; N arrowdblleft ; B 30 -19 939 506 ; C 221 ; WX 603 ; N arrowdblup ; B 39 0 567 909 ; C 222 ; WX 987 ; N arrowdblright ; B 45 -19 954 506 ; C 223 ; WX 603 ; N arrowdbldown ; B 44 0 572 909 ; C 224 ; WX 494 ; N lozenge ; B 18 -1 466 740 ; C 225 ; WX 329 ; N angleleft ; B 25 -152 306 757 ; C 226 ; WX 790 ; N registersans ; B 50 -12 740 679 ; C 227 ; WX 790 ; N copyrightsans ; B 49 -12 739 679 ; C 228 ; WX 786 ; N trademarksans ; B 5 277 725 673 ; C 229 ; WX 713 ; N summation ; B 14 -123 695 752 ; C 230 ; WX 384 ; N parenlefttp ; B 40 -293 436 926 ; C 231 ; WX 384 ; N parenleftex ; B 40 -79 92 925 ; C 232 ; WX 384 ; N parenleftbt ; B 40 -293 436 926 ; C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 341 926 ; C 234 ; WX 384 ; N bracketleftex ; B 0 -85 55 925 ; C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 340 926 ; C 236 ; WX 494 ; N bracelefttp ; B 201 -75 439 926 ; C 237 ; WX 494 ; N braceleftmid ; B 14 -85 258 935 ; C 238 ; WX 494 ; N braceleftbt ; B 201 -70 439 926 ; C 239 ; WX 494 ; N braceex ; B 201 -79 255 925 ; C 241 ; WX 329 ; N angleright ; B 21 -152 302 757 ; C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ; C 243 ; WX 686 ; N integraltp ; B 332 -83 715 922 ; C 244 ; WX 686 ; N integralex ; B 332 -88 415 975 ; C 245 ; WX 686 ; N integralbt ; B 39 -81 415 921 ; C 246 ; WX 384 ; N parenrighttp ; B 54 -293 450 926 ; C 247 ; WX 384 ; N parenrightex ; B 398 -70 450 935 ; C 248 ; WX 384 ; N parenrightbt ; B 54 -293 450 926 ; C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 360 926 ; C 250 ; WX 384 ; N bracketrightex ; B 305 -85 360 925 ; C 251 ; WX 384 ; N bracketrightbt ; B 20 -80 360 926 ; C 252 ; WX 494 ; N bracerighttp ; B 17 -75 255 926 ; C 253 ; WX 494 ; N bracerightmid ; B 201 -85 445 935 ; C 254 ; WX 494 ; N bracerightbt ; B 17 -70 255 926 ; C -1 ; WX 250 ; N .notdef ; B 0 0 0 0 ; EndCharMetrics EndFontMetrics libwmf-0.2.13/fonts/StandardSymbolsPS.t1000066400000000000000000000753241441723000300200350ustar00rootroot00000000000000%!PS-AdobeFont-1.0: StandardSymbolsPS 2.00 %%CreationDate: Tue May 31 2016 % Copyright URW Software, Copyright 2015 by URW % URW Software, Copyright 2015 by URW 10 dict begin /FontInfo 12 dict dup begin /version (2.00) readonly def /Notice (URW Software, Copyright 2015 by URW) readonly def /Copyright (Copyright URW Software, Copyright 2015 by URW) readonly def /FullName (Standard Symbols PS) readonly def /FamilyName (Standard Symbols PS) readonly def /Weight (Regular) readonly def /ItalicAngle 0.0 def /isFixedPitch false def /UnderlinePosition -229 def /UnderlineThickness 46 def end readonly def /FontName /StandardSymbolsPS def /PaintType 0 def /FontBBox {-180 -293 1090 1010} readonly def /FontType 1 def /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32 /space put dup 33 /exclam put dup 34 /universal put dup 35 /numbersign put dup 36 /existential put dup 37 /percent put dup 38 /ampersand put dup 39 /suchthat put dup 40 /parenleft put dup 41 /parenright put dup 42 /asteriskmath put dup 43 /plus put dup 44 /comma put dup 45 /minus put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 60 /less put dup 61 /equal put dup 62 /greater put dup 63 /question put dup 64 /congruent put dup 65 /Alpha put dup 66 /Beta put dup 67 /Chi put dup 68 /Delta put dup 69 /Epsilon put dup 70 /Phi put dup 71 /Gamma put dup 72 /Eta put dup 73 /Iota put dup 74 /theta1 put dup 75 /Kappa put dup 76 /Lambda put dup 77 /Mu put dup 78 /Nu put dup 79 /Omicron put dup 80 /Pi put dup 81 /Theta put dup 82 /Rho put dup 83 /Sigma put dup 84 /Tau put dup 85 /Upsilon put dup 86 /sigma1 put dup 87 /Omega put dup 88 /Xi put dup 89 /Psi put dup 90 /Zeta put dup 91 /bracketleft put dup 92 /therefore put dup 93 /bracketright put dup 94 /perpendicular put dup 95 /underscore put dup 96 /radicalex put dup 97 /alpha put dup 98 /beta put dup 99 /chi put dup 100 /delta put dup 101 /epsilon put dup 102 /phi put dup 103 /gamma put dup 104 /eta put dup 105 /iota put dup 106 /phi1 put dup 107 /kappa put dup 108 /lambda put dup 109 /mu put dup 110 /nu put dup 111 /omicron put dup 112 /pi put dup 113 /theta put dup 114 /rho put dup 115 /sigma put dup 116 /tau put dup 117 /upsilon put dup 118 /omega1 put dup 119 /omega put dup 120 /xi put dup 121 /psi put dup 122 /zeta put dup 123 /braceleft put dup 124 /bar put dup 125 /braceright put dup 126 /similar put dup 128 /apple put dup 161 /Upsilon1 put dup 160 /Euro put dup 162 /minute put dup 163 /lessequal put dup 164 /fraction put dup 165 /infinity put dup 166 /florin put dup 167 /club put dup 168 /diamond put dup 169 /heart put dup 170 /spade put dup 171 /arrowboth put dup 172 /arrowleft put dup 173 /arrowup put dup 174 /arrowright put dup 175 /arrowdown put dup 176 /degree put dup 177 /plusminus put dup 178 /second put dup 179 /greaterequal put dup 180 /multiply put dup 181 /proportional put dup 182 /partialdiff put dup 183 /bullet put dup 184 /divide put dup 185 /notequal put dup 186 /equivalence put dup 187 /approxequal put dup 188 /ellipsis put dup 189 /arrowvertex put dup 190 /arrowhorizex put dup 191 /carriagereturn put dup 192 /aleph put dup 193 /Ifraktur put dup 194 /Rfraktur put dup 195 /weierstrass put dup 196 /circlemultiply put dup 197 /circleplus put dup 198 /emptyset put dup 199 /intersection put dup 200 /union put dup 201 /propersuperset put dup 202 /reflexsuperset put dup 203 /notsubset put dup 204 /propersubset put dup 205 /reflexsubset put dup 206 /element put dup 207 /notelement put dup 208 /angle put dup 209 /gradient put dup 210 /registerserif put dup 211 /copyrightserif put dup 212 /trademarkserif put dup 213 /product put dup 214 /radical put dup 215 /dotmath put dup 216 /logicalnot put dup 217 /logicaland put dup 218 /logicalor put dup 219 /arrowdblboth put dup 220 /arrowdblleft put dup 221 /arrowdblup put dup 222 /arrowdblright put dup 223 /arrowdbldown put dup 224 /lozenge put dup 225 /angleleft put dup 226 /registersans put dup 227 /copyrightsans put dup 228 /trademarksans put dup 229 /summation put dup 230 /parenlefttp put dup 231 /parenleftex put dup 232 /parenleftbt put dup 233 /bracketlefttp put dup 234 /bracketleftex put dup 235 /bracketleftbt put dup 236 /bracelefttp put dup 237 /braceleftmid put dup 238 /braceleftbt put dup 239 /braceex put dup 241 /angleright put dup 242 /integral put dup 243 /integraltp put dup 244 /integralex put dup 245 /integralbt put dup 246 /parenrighttp put dup 247 /parenrightex put dup 248 /parenrightbt put dup 249 /bracketrighttp put dup 250 /bracketrightex put dup 251 /bracketrightbt put dup 252 /bracerighttp put dup 253 /bracerightmid put dup 254 /bracerightbt put readonly def /UniqueID 5021339 def currentdict end currentfile eexec é ×`£Â,ñùÜiš"Ã[[5íj¢5“ÇmTÊ»^”+÷ÖÝ„ñfK‰iœt´rÞŸŽmù%öÄòéñÆ9´Û©ˆí*Äÿ++Þ`[Žã&NÝfA-O!ÆJÅ"½ü|UùÃóåY+; “Ó<›úíÒÔž‰ªº¨2â?.‘¢P2QhnD´àtw•=y0)n*[þ Y]É~ ‰ÎØ×øRÿœÜzYŒiî[AX¡mŠå’v®$zqÎ }V¯×]…í-Ÿ òô¼ÝéàÇP_x=3.° E@J–0õ"â"ê¬E§ÓÄ”Sï÷.;ƒ„za à)ÿ(Žå¨×a*C¶Ô—kfVYºQM[Á’L¥í¸¢f¼£®b‹-€o|ÕÑRù|v€À÷|À‡í/ýœÌ­´ï†-}ÊJASûTæ=å H댾¾TjPב'íúGÉÊý,?De ­[â=Ã^(àÁ\B@·)T¿ê.O×ËÏÄböý¼Ý,µõºœýõÄ`Ы•…úEþMadn&žÊêJ2£]ØTÕn¯QÊSpR/ÎwÊ1ˆ‚ĉ†Z|BfÕ>~Aq4í :ªŒæ\xÒ„©nõ„4È¥4]Zö«ú¡Ô"KBÁŽýtûí“ôÙË46Ý™›™ï1A/mÐ`û¾5ý,ßž8ã&(yæI§Hû(Y7SVBÍË+À$½ áÒ„[#M¦Ä¬Ò“/ä:4qM…WXѯf]6TPf“èáÇ©ÿD¾ró†¥Ð°#utb@ú/ýÙ´4¹wjK’*nJršÖL^oÝ'1¢¥4=ÌÖ1?ídwxh ,Z»R”¾[fº¸Ç5…ÃÂvSêÿ¨¨#³1ÄwiÆø¤Š³Rã N}lÑc4rÈÒã=«¤ž†ôÀš4v@çbàoÂ'†:Úcºs3!CI3–”lA ÷Lþ0r^ëâgó*Ôݶlá‚gãÕ½*¼`ªFrö”ÓXò–íGvTt2É© - åhyÊÃcbûèn´Ð ~¯øekÒ²™ûOí7"uŽÐö®g¹N{æ)Dií˜Ëîq§`ucîŠ$ H@¬iÛQ¾sS¥]²x 6þøð×ÉCè À,‚¤˜ªÝʤVÕ}h7?ÔõýrþB¥¸%†W¨µð(éé7åëv•wX7¶,zãÛ¢z–·ÿêIÁóš %_!÷øÜ49ÖÐ'\O—HêQŸ?±¯fe„{ùû³!Ïá•ùO‘vCó&=XD›;¹AAãåNé1‹} .¿åäø3²Ú2a¸ò†‡<3iéúýV–×+ÅE©æŠËw m˜Žip\Ÿ˜âXa%Æ73l¬Ý~õ ³Ë3`Š«"x:Li¶&,]‚¼dîGz¼™õ¹/»¡¶pÅitÞWp²úÓ#Ë‘ûj׫c­•S4²ÜXí\´ßwJcÆçÚ7šE wÆd¡ _"­qL’ìaÅ4 ™B›TŸ7‚'€Ùj[(<‚*GµŸu'ì•ÁÖÛÃ#ööç@ß¡ƒ°œ£L”ê£>éæ¶áÖt_O1땜Ô.¤¨›QÀ°Nø™sHK¼N(€d²^¼OÕâ2'4€?ä¦ãGñè›$ñžž8±c©†í„ dä¾:ïØq–þ€ÊñmB®†~Ã)d€ñÁaó4Øh‰X­&ºÙ–ƒ½½‘èé„•zÓZQ݇٠…î8–J˜\£ÁH|±Tò5øã|Y_‡ò‚W4l…J2å|ÛMiç¨A!ú3[†¥ÐD…¥½¦ 1J¢u(ÄKs÷&ï?­Õª¥]T¤„`¥Ln´=<4ä8qúÜ íý½ÍW ×Ö&hC^Ì}/{÷“IJÓ%ùÓWNƒQtž³èܤÿ"cÐI|RDÏPFlp²6(;z “ɯРÐÓ¬–« œÎÆ{øI$°ÂiŒ!EŠ~U@IêØíFÖÄ-±F¥F.õé2'VQ?>ÉÝÄ¢§P1DašÓñiÒ‰Y³×½"ÛãCvïƒQƬi‹ñXlçV¡üh¡ýŸ@™mdd¦yï½\g}à–¶®§Þ›SpGFÊFdÖ÷è8¾}ç†T8Y^3ñÞÖÕ œs`=‰Ë%žÅ;PïÂÔqˆ}Š* ܇®< þà ÇÇ@oþÀùŸj/W\©, \96î$UH?¬9Ç ÐÚºF2’“ÜAŽÃw ŒSƒªq.E#£lþ;  Ãbsà¶ ØeãÕ”:IA•-¿+ò¿?½yäöƒÝô͘ëžA[Ï@£eÛhÐù2ÿúï²< 9)gùUö«:ÂöžY­'"öÞ ðl¹nB‘½¡¾ÇS#KQ–3d«$«T ®^,ÄŠ¶ÝKüÌ5$¯®K4¦`°š‰héIêM¤5e'yÔ¨'_Kºø`þz!á: ?…öô厊°\IÔ’6P^~Öõá {d9ÒJ½D†y#;Ø}? _6üÜ]–uõÂ8ðÝIÔ|¯ìftÉïNž>± —«v.²*›ŽÜ©ÚP7*÷>¦¦LÌ!’Ýo¯LcÓ¶»ýLÎ ƒÿ^U|ƒ>ΞÐ7ÊgÁ ÐNÜÍfùº—–÷ý¾õP»~mµàVñó¶¬r/aRòh™þàÏù)ŒjJãý!¢KÛ ë?ÂŽ•*BK #ZI"&úÛž1ÿ€¯Ái:–Ù¥{#·öO½¸~´‡ Ýå?lˆm<;D`ðÈÛßkdPáÏ×IŒ»Çš&µ˜yÀLIB"CÁ£×Â9‰_9šÖ_r<Ó!mh<&„bØ8-Ķ8©BçbMd>°ØÖRˆ5^‹‘+‘Øh–Ó¹àäæîøznƒš¼qN¢oG²œ,š·§mÁŒÖ‚ŠÖùÞ—hÍÆ8áÃúÃ)'Ìoë¹&"Uب5ŠÒ )èCOãÿ-&ÆŸv"íå,ºQì=´?üÇ©#‡9x¼Å• £9øÁ¨…ŒÌ7Þ¿/¦É„0loïªíþVÏ©¢O¥ ¦q3}6fõñðXa©>ìw:)h)|$)£(»A°§„­¯(:áU´–• |íûpíYÃ(|Y'ý@È œÎŽ¶Ò¶æQÌ©Ò ’’¶)’öa°í½‚ǦÜ]ú øUÝ#¶I3°èu¦^¡\ɸUÖX¢¦ ³€JöWÙ.ª»Œ#;I÷¶Uíy9Z¹aجU0æÄ*¬[`=öŒÇeêÑá§”Œ¾g\°û{ÈË|ï)Ä+KåH-?bkAÕl²-XC‹EñÑz3¢³ñå‹ïªæÌHóíæí"V Ò§M!6®ERH n™´ÃÃ4ð,å‰uÛ{ ǰgã2àR1xì]õö͹+3‹¡ÖdÞ])˜ §á0ÜŠè‘leî|qå³|¬É5à7·¥ÔçÙ`*Ðæ|ßEó$:‰ÇœN™¼ÃKÊX m§¡ÑUyüÄ‹aÄš®¯xS¬LÎÝŽÐ× V¥þùÿä  !€Â3È33LÈŠ“E2Œ·çÙuª4Æš^Ù0òôv¥§ó‹¿Dƒüzæ}¿Ôñ"$8ÿs ZXeÏÜ´V1ž%¶›’rUÚ­)$0I¥ ŠS†“ãïšÁâÆúí5\>?~ám̸žœì(lS:\cZ¬k†Ð<"Æ)UJ>Œ |bŸ­Z‹‹î®mY5Mª+Gn†‘«b@cÝ®´'Ú¿6¤¨ÍfÒ5,ñq–¤ÊÐðrt\Ÿ$RAUýBäšÁô—"“nw{èQìŒo€OëoÏn²L¡n FMK(!Ù¶©¢þd|!SnÁgh΄°¬GOô[øî HÀœµÝj½ŸbÊ)aJ}û|ø|­ÂŸ‚mw!¾v\t2¶ä[Ùô:—Y:·”4Z(— Eèsç9€%±Ø`¤¤„œŸ:¨4à3ßÅý–n=/ ³4ÃÚó±ÁXnЫØã³¾l›R€ÿœðJäòøò³íx2ðך±7 eQ3Ÿü*éëJb~KY€&æeÏæ÷27t6˜Ê3~sÇ=ø%ÀËlùþªçˆšè¾@uè±{Wki"_­\—¦Kù¥\ ÄBHxß„ ¥‰™èÒu‘§ã¿W¤4+é§Ð¹¤ñºË9{ùRâ_Þ“áàDú¬jÇgÙAgÖ5lûíbíÚ€fînÓ¾rŸnåkþ²!%žäÂ'vcÂj?†<%[…¡á5gYзšÝ+=½pÙtXÞ§Rƒ[‹ºzä|=]æÙæ¦;¨²ÞTw²ÑÖ“¨:7àu¿)j °ÿÔ˜9?MÉel#å{¼=ü£¾|^ø;¯…ÆØ7La‡g ìì-1Ñ ‘¯˜£aäðš7â>®·Ü$RoÁ&/ÌnÒ§¨Ê_ü“ž“ß5ì–žõº'„2°‹°¶e†ˆ5»:avüâäÏ®T¢ÿ6ðPé¤ézÏMwß&õc´äYG¾°‰®¬ÜRœì°·Õ5ÒAw3.bžËuŠxMЩ#m]Öö_Ÿó…\%ä¥éñ{ qU”Òø¨‚­IRÊòç<Êæ†ˆ×Ðôz§m£–(jÜmÒWªt…wž†ÿP ôEÍþϼfæ—7cbq'F=Ïk‘Ø£fÂ6>zéÀlÛ¨VÆ=穘¯þŒ°žÇªò“g¸[Ä5°üŠÁp úƪŸàÑê ´Š‘$ãYTÛFŽ1¥>ð¸8UùGЯÔbu?éX¤Gj(±Ù/ç"gï„ÑF×wR©ÿh7ˆ[\ÖãTÏóCŽÓ7ßê01”z<'KE¾õºóeóíÞó9÷ø]†Ç BÞ™¿¹ø|üëDss£ùˆ™ÏV·ßÅÇÍO(TI1ýÓ’B~Èöv·rE’®Âú3ÀæSpзa4èeÍ_ÙŸ‡A°mÆÁ?õºÌôöb¥´»^a•¯ò£J\º< ¾Þý>“Z9&PN+æ°­›Ê]{ñ-5ÔüÚ†¢ËãÑňÇìXÕ=à#]6Y«6”»`ã™àä)µÁ‘ã.gjj fƒ¥ZÆ‚SËzXƒ$ÿ¬-c§¼Wß>Yö–»BÅõ º^&8ΦÜÎDÔÛr¬›„1µP#þÌ+ËÀŸ_Bí(ȃ&r[•åîßðð4þšd¡»oÏ’\Ög7²K¶ œNµöñÞƒôßÇbG¡'¼¤f6¥ò@º\LÝGo^ÞÌB5TsÓ¹ñV˜û¥3®‰p7DnÉÊ3÷”Gæ¥Oñ×™XÓVÝuÌ0€J?O%B{dy ‚sŒ ÄbÜ6ÇÚ¸éË»Gݵ„Z&õ¤[KƒsΚAëwò^¾ö3lUz¢Ü†§¾%†Nî>ijShÜÚ(1AñúA"Hã¸@‡„rssDy½‹¤×it xÄÓ[Ñü Gß>_èhZ‡û—ÆÙG¹/]û²¼E„½ù…˜­QW¯ xb-ðµ\ý’ *ÓEˆæàz’k^ký(ù¢ û—;øV«JyNw…ÁLãr‹ü(?}ohÄÔCk vå~î”oS.’'ÀJô4FSjâòj‡Ë7SMfWÏRN®¬'×-`mØ{±;3L.ÁeÏDKš(è˜Enô¦à¡¿OÝ}º|¨Wç˜si§sÇòñ—¶…—ßè5qÇÁkË“¿­68‹“!v‘׋Ãj?÷ØIç×ÕÍJ©i Jj˜épœE¸vn Áš÷œ¯T}Ýê°?u üË„_ÕŠ‡ +®‡Ä¤â;:-³t F¸IfÂÿVøåm—mgúå0_Ö_“^¹Ì¨ràÀ6þbJÆíÊÚýg-·†üIäTÐÍ[øIûmDj2 “—‡1‰Ú%‹ÝHø('½Z¯Ü$Њ™ „/õu(³ ð°L‰K¹üôó¾Õ›Ú+Œ¿ýŠÇ ¢ƒv±X×&sœKfÛð\mž9ïÞ,½æ¢JÏI¼9.dù¥/ÚHgÿtßÿ.œÚž»ÿÇvÝ@ÓÍý#þí°'¿!6ãéDˆþtçEü<ÄBÿá‘®²{”8B1grÌÒ¨ ÉæA$oßÙqk쨨¢yÁ«h…ß–Õ\¥c’ÀGEèZU|ÍÌcšP¡úýQʃI²2œZy²Ä¬*ƒèê:¡6vÊeM;Ul[œn)_D$ÚÚϪ¼¢MnÏ»‘ª‚×úƒ¹.Mè¢O£SoQÿÙ9ðÔWãp¿¡€°BŸ†ûrÙ‘Œ.™c|Ô”ƒ…ù(~\!>щ7=æM•òÝ õù…ð¬Qw¼Fû†3·'Ÿí%Wv4¡'hìræhÕÖ¦ÞŠ/…P_Ï9©c÷öÇL4$Q›e=mSX?Û§¼®']cù é;óPY3ÝC¸Æ:B’Ò7†!x9Âü‚©†x;X[ó`ªŸ2Ô»¸'·Ÿƒ…‘„út“’2±à?+Cæyõ§Â:Ë%‚÷\§ñºõªË¨‹Ö”^ÑÏ”1?9_©<¢DFHšíÉ7É­++ÃXMôXúÇ"NÅy¥£-˜L%3µ® nÅܼuºuž™¼: ƒ½ËÃà §á¯&ù®ŽPp >1˜N˜¹[ªïTG<74l‚=‚O¡/‹u™’£à¢hû§¬d£Â"pgÿ¯ðï]‰±éì‰Õë*Ú?vë2Âþo¤X²R¿ EM`Ųîˆß~®ã²Tl£‰æ N zì.U–BÕ¢cV\,Ÿ›¿Q™ôJaåó¡ ;¿,kõꀒ²(Ú/§×¦¤µb[gZJ\$×þw¯MSér­¾‰ë"28øÚ¿Œæµ¬Pø¸ÀrÈ&óQt¹ƒÎ7ÿö‚ÏCEÖÅÙo±ȱðRéÆº]{#îe%·^!`€©ø–7€ç{»Ž@ÀR¿¦‘¦HãWbc¾G¶!=PA¨¿eÊï$ KMœ$¤ÄÒ[›ì§`+æÞÀÎj®föÀ Ú ]ïúlr=‡$ßUˆçO,Ê.©ÿ%º… ÙRY²J‹ª(ªŽ<šñ†öºêþk,‰Ò_K»qD]E›ŸªŠ²Lz “€'Âñ´%-þ|×kV_¾Æp?‰'S/;œ§jÕ¾›žÚ¶bëƒêq{ãrIEJtj·%ñí€Ñ =õ­×"Rs'h²‡;BÝŽ´q/cP÷oÏ„; qGº^@üðÚosßÛA­8e±O›—€û[) EÒÊC•“þ… ¼Œés›/PÅ+w)>²Cˆv ­ïÖL‡ªr_¤þŽFç âÃ&h¨ Ï{3ûgovTŸZV!ý0öÖNc;ü«õ, BD7ò\Ô ´÷X ûj\¬:8\˨!©°Ù*YW°Ë5+ˆë¼:vPlàk|Ôk8èÅbvgqè : I 9/Hüƒä‰››ßͶy3&Ówù »Öu½q2ËK«Š ²aKå\t•/¶©ž$~1&ÏÖ|èØ)<Ç/E»8¶E¿êà2t]M„ù=#=OÛðà縱î§'9Óå,»D?ÿ)#ù<ò ºUiekUŒÚ_ß×–Ò³D‡ïë!”Áa^þ¥ÙX*/Më°G'¹3/Ç)F…BM ¨`¡«g±J½UÑÏШè“a|åž4¯‰¿ÆYnrd2ñPõdÔL¢¹Rgw²JKx_˜C«üÛø”“zVUãÉ›&V—¸¶+¨/*µ´%•¿Ÿ(X³A°$àäB÷]é®nüf&‹†[²Ÿ:®wÈWLŽ<ï }†öŒ›Ð Du6v)ŸVï)Þ*•-Q´x¨ 6E>žV OîGr q7ye¤¦Ru1ªáÈ á–5šÊÛRå—j}T>äžIhSßð õ°Mi »ÿª,tÁAæK`Ž+Ž`‡ûú O¢Ó-Áyô¿éÈïM‚V>c /Wÿ¯7qì‹d Jc—a`Åz´‡ivqfñB»Bf}˜„#5T‰n%÷­v{IÛFŽ˜7)ÊkÿvîÑ‘(ÄCûÞ&¦µ*-:°™ß_§µ#f^ØÇaB”‘‰^D”C¾ÇÜ`´ ¤ÊÐdä>P“N⩯-+\”ØG ™1Žõ>¤ßöŒv|ÎþBEØ·`¹dK¬z…בަMñŠê·ÌfK£àø Plÿ¸4`r+éïù$]3%r±'÷p^›Lêñ.û†ïÒE<ÖÍí¥üevÀÁZO_ä- ¢t¡ <(˜3A&¦³T%»Dæ»*¥†ÍU¬§@Ë tš¿_Êë™mjÒ{Œ…‡2]=<-Bª0ÿö…¯#éaé¦Ú«U¾–K59„ÐR¦˜êÓ+ºû>º¥pü.ìUB;,JçÛø¨êÅ¿qÝs/oŠ•K£L¡îe>®Ûÿx˜n½iŸ€Ø_B l¾|9j4>ö÷l±ÿíôöí‘ñtêOzpuÃÍC#I,0„–T¦šMRcŽ–®òYò„ª<ÒßÀWúº¥²É-`¼\ -/R®Ø®Æ×àäðM¡}ÝZñ ¾’F«{Ê’a´ÿüŠ’¯ìø UêPZjô'Bíx~RÕ5¦ýN¤d·ÖjFõi}bB4Cÿ±«+ŸÎí±¹pºqœU—U7ŸÃl÷‡Æ¤v‹Ú¼[äø;°»ÏÀîµÓ¡1˜½ó ‘‡ï.ƒ¤dìߥ̚Ãw^ÜÐ$°Sc2‰¢úÕ?õ{L2 c$³ìe»~º*h¼0Q¨¿ÀÚ0:Ñêù¸ŠÖ©Ì$h˜”÷<›K¨å ^Ë úü39xX&Û± 8«1"³™2–Õ§$Öà‚.˜Éœ,ϵ%„Æ+ÖŒŸªpK¢ÉNÆ[o±‡,æo0Ã1!,©Sï …ÐEH èÂŒ™^¡µ¯u*j6–3ÝÆÍ]•$O.sIŠåoyëÔã-R¦Í<œÜ=õe‡ïöîÊÑ€@të5é˜M@¬%¹\À åÖ|—€È9Ô+ßG.‡?PÕä4~äL¹üZrS$baa‚ˆ‘2¶œdÛÜ/ ù¿Ü²ý%‡#©xÿ–¥O–<Â=¹Ô»xĪ¡<˽‚pŠ~Õ$¢ä„^•­þ¾âE$Cµ9À,4ÕMЛ³{®ç:Xq€ÏÉÇ,ª«Ùù;uhæmr:Ù#ewîos´|˜©]œ3F}_Äߦ‚ÆFóí‘ÅO(õcIž¬£h5Àžc}f6ö¤÷è¾2¨‚Ô¦œ•ÈËÏÈ34h¼M¸¢DÛFÿΫø© JIŒa!íØÜú+àuJ¢²5/Úžk×°T{€»z ŠçC¿ÔÇ×\µ¢£‰ŒO¡‹ù•ûØz%ïð“Ƀ|P£¹MÒ¾+|3[&‘N 6¹{«@˜Ëû§kÍV²±SlX¦ìeG7¿Ôgü´ô® :í ::3§n|S“²÷š‘an]{½žX+4¥Fiõñ“Ë—iû×VµR¾:áyƒ‰¼¶-eÉÆ‰\¥ÝmøãÜf±Šã^ªViF—W¦EÇEƒ¢2âï–]×cvÕÃ'úé]uÒÀ“p®€¶ô…¼zì|(5‡DÕž|ýF;°‰+œkû .¥8§Ý“k‹¶M&½ã¾3”Ñʯ+ŽÂ‡/¿ü™¸=í— ¨usK[¶oⵞ÷º˜`pƒ6ض˜Iõ¥5€·¯åBJSÇÿ{¿Q`v¸ÚÅGMѶd‰ìúÿ¯eFCcŸxéCøtM6„Õ¬eT×ü?«¡ D„³é¨R–V ¹¿Õ°—›ö› XUñ@·ùÐ{41$ !o4:åÌÙƒþ°ÂÁ '´f¼¤b‹! ãEh.’BÛR”XŽà©ú]řަ{º¦êd@ÛËk,þ·W½nê%o^ µ|$c ¬Ý€!ÃD÷W÷±ˆ{:j”«©^ül¡"û ë¹R5ÍÑPQß0VçbJ9¼p7.lý…6ñÝ»ñÌœwÀ7Q åmæ|¦1UÃ…eMçtÿ£Ó>€E|ûßµ±Wa#!=ç¥C]¡|€ÁPÖÃÃka Ẏÿô £ú·ˆWNu~¹Š¯Çªè*7BWÐêÿçÇì÷\¬U¶1ܘà¤&®¶ñ#;!®Ì/wæ8&ˆ(ö£EëúŸ|ÞfÊ(\ »5©Ô®çuXjó kè0½=ÊŠDÍñ½Y eÞ:W• Îë›þX!é¤_-‚6Û>)–Ù²I:SKC2E“ǺiÑ—"áõ|ÈXÂCÆ+îØ·ËÞ/gcù´4ïsg¨h5és¿P¦—[Ž¡ù&ZÙõŽ``zT[p²a›õ¯’·ðÆ;g…‹ÏoZpZúÔã"ì½8‚…|dûÚØü¢7ì­ÝÕ«šÓé'^ÇÔJ8ÅìD {6‹ÿû¼gyYO¦â¹˜£‹Js÷Óa1è ¹¦Y,ž{6;V6]ÌVX/è·E= ]02D¹VBè›ÉªŒ†¤ …6Wisq(žùáOÀ¥¢¡!2 RáÅcÆ, ÕR¼Ü6G|­æÉ,"¥YÂß’h Éíi8OoÞ¿0§éÂ׆݅w £t¼½9Ç)oF1µ7Z0Þeœ­Ž×‹6ÁðÀ¾5Úyhrøýo+ß4­ê}§ïš³K½Ù˜>]D°ý©w —Ø÷21µ¥èÞ„Ô±«Dž\ÈsÊÊü40IúەŦËëÞ}*°Sü¼Ü×ûD ß°B'›â-ßzm7íóÀ4Ò½8¿½6³Ùó¡@DñRÉ0Ñqy’€.ÉB¬œRH£eè½Ñ÷˜<}íð&¯,“פ&ŽÖáéϲ:‚´“w:õßI©ñz”щZylaCt›8 ,wÙfèç} Ü£”ðdó&ÑMõc©-„\+´5y}°®V\íw¨h~5’’p†ªŸM O×Tòœã®×Ö/òÂÅO@ Ý9¦é­¦8Ó†§»,LQàΰÙ*d^4fDìõLîu†‰´³-Ö1ã–{åu%à 0n¨¾þŠÖÏ·%õè¼§ºÄÙÞë{ýTÓûûwkÍðªÿÊCâÎù„dÕ&ïÔ)SÊg:Ö{“¼:¡2˜³hŸ¦øYj_«ë˜IbC…0B{ŽO_×|ÉܪûGрĽ®X!›ÖŸ|þvЉF"–b±xn‹dSü? SÏ!ŒÌ_-Yj =ßVoï™AÌ©Ãp³Œz’–Ä"¨ÃaÜ)¤|H¹÷L’t^?êˆ Q)Âõ.B–å?ÉuÛ³“}~Cù²h Ó»pqêW]Nh€íG\Xj‹}ºêI/ûÞ§é¿«Élã9 •/ß=~½k±!o±×¹`Çf¬ZÓs5pÑqÜÖ£E½­ø"¯ÀY”#Ü¥uT"_ѽˆ·ã6î_ zp©·KíºoZÕýHA:Àöâ>’éÑWÂ9aQŒãø üé¥L{f31™›azºéÓæ£yˆËLr¯œå¹:–9X^Ö—Åzæã3fP°ÄÏÍ\äÀõL„êñØçw¼—²Ÿó;Jc ¡eÌÌ<ƒ74<‹üVC™²Ø= óÀâ!÷A ùÂ)ÍÃ~c@º98_?J¯ôIJZµ¿ /[šÞh,eêEpTÓgU¶ÿÕ­Ëàö6Sq|Â(´>ÍEˆO¬' ©þ¦ô^¬­3c“Ái•ICÉD˜#ìQ§][¡–å8r8¤ä`ÌÕU»7Ä»ÿˆüY x¯Ú­Ûˇ©ù¸‹– }ºèö÷¦ÁG¶¹2<Ü<‹—Lªªö›*ÁùÄ9}"mk†Es*?hñVœ—WŸ¥c{ö™er¡Ž¼Zg6B=NÒØ2ªa¡ÎZ‘Ìûm†Ëš“oÁªÝpCy‡D8[¡Á¾™KH{á(,%1vvòA@¢ÒJ§c?£9œ„»”¢ú&Nt1Á¡&&ªSØx4߬¡cíH)+$ß/{´5kø(-+–tëëlN[Û3¢ Ep§s‡*C§¸ÿP÷QC¼^@±ßXƼg&T’ñ›¶ç°Èí¤ý©÷¢ãì–›ÓK–<ú§á=Ì ;Ï:}ÝE%mOäB4ŠŠ,¯–+ç‹ÁìòŠèÈ¤ÝØfch=;wŠ­¾±ý_%/ˆkMCñ{º8!'[áêií¤‚x+‚0g øÇÀ ÀXg`/†¹Ht8‚è®—Ë:ÃÅßyA¦P°`‹¯ÿet›hÈMÖÄP¨Ô0ùk¢IT†‘›Õ•E£P`”2öLj.ETjƒõtópy÷™ÖfQï«ãHCáNójM —0·˜LëYW¿‘9ÐzÛÑó[aó¾qÆ‘Wû¶©ÃÔ“r:&€µ ØÇaÁŠ5~Ékþò#hEL7Yƒ^’Cü áüǫ„öq"Àe™ÔMíÍËfó‡#²79 }ªlÓ5ÄÛË×[踪lI7·ŠÄšRwvòÕÍ«±@ØÝó8©®Nàeîè<|cqn©ýëNV³WcÜI£æÅ/ÖN³ëŠ'¤»:¼…–ïüÈ˽w¦uAÊ-ßP&n ÏyÿÇ÷µ“»,åÝi.s*»£ég9$<øqJðøwG¸ž¦Es'ñ+»ký:\ïÿƒ·¹[ eòŒß(s-èKû+È–—À.7Bµ·Eœr†™À ¸VK×ÖÙWº‘¼š=õOLðô·j¿›+á °À@(IÝåóx‰¦æê]Ïl¤{²ŽL½ßr”®“8`—DýîÜJƒ·ã‹Ïå2”í"µÇÊr37Ùý½Öª¡_Ó\6ç)îéÄÜ'~F… «ÌW„–h±‰¶|­É^ÔåÈ8³¡–n™ßž eÚŒã¸å= Ø¶OÙ‚ÂhnB(I…ÔYŒ×—ì¿sS›´%•–•«¶ìèˆi4W´\”¥þ‚À¤‚×~€šŽ»”r³^-Žó'X(g¡wÎQs®×ú7®§°Ø†# ?è†$éõPdZÅ£ª# «ÐãÕ½Ž?*»0õ„»¶¨D=‡rt#”x’Wp¼WÙ2='»\£r¯,«ì+혨kÿêÂ#õÅõ§ñ¿KVñÓÊ â¨Oô;fÅc­-º.ͦ@d9•ñÃ^g[ì¦<è£ÒMüo—D-1žž"Ós€9°{ü˜û%#eÖ>ȯ“€\ìÓºvµð%ྶªœ UþÇ­”Ü®#‰óäÎ#¼g†r:嵩Äo‘²ô9º»h/æ˜cÒ~œÉzëkoJœyâ›1;°Z˜„Ñ7åCvž- ] 1C¢!¥=1”Þb5å'­ø$ž•3E õTáúŸÇ42wø¯ÿ  U8k-ó2?VI¯q0I"úÞü³ŠJp€ØKŒۮ¹ÿ©UïýÄAR!&-¯.\cÞ±ù߯5½¿:µsññÆÁ³Ôæ–rÿÈ_ƒ}e,@;I.Æ(ÛæOpšÄíÃôƒê¯©Ð—àêšýfÿ`"câŠ(˜’Ç),~©ðý … Vægjr”^,üg.îÚóŸï™“GnÔáéú=m¯Ì§¬g|£ÔhâªYË÷/°[ ô¯Æé9Ù‹ÞGzzÓ \ Œz•=†›{Ñg´OÖ²²ÉR0ÿúÜ~‰ÎŸ‚1žô·~AŽ|°¶¢ Pfw?ißKÂ'9”„Î-EØe€—‚ŽdÚ»äÂ×f0çê$»¾En}£3ÒH´”!òÜI±© ã/¢)­öÏ·]Ì– %uø!Þ÷žo‹C·•m¬CbÀ)3 T6H-j5ï}r‚ ÷Ix`xáððqkÊœ¥£Æ´üNà Êì?ÃÁÇõx_á—–!n*›¦SnšöU¦óUsZÿm~÷hÒx‘†š»F?ó.AæÒx¾9Iž†ªk#¨ OiG:›IV…n“N)Ý 2Âå„«H&€YÎÙªqî[òÒ®Ñò„u©ÆÀj˜ÄH_Ï59ÓpW£ zc Ç,˜à—ŠõqHÃŽËúˆü§ïøOÇ“;à+°iìÿGbÙöÈ V.\…zßz ¨Æ0Ž`'ˆíNªƒj‹o(ŠéNÿŽÇeñÖéNCÁÕ`³*ï³Ï'p7_ã öo`}!ilð`†aÐ#ÎònÀ¢¬Sð‘;cjáÐ,è­E¡ÂŠáÐúâ_kN/.á§‚9U‰p5±/¤è 1x7X~cþi)´¬5a`¢>ß…ì:!>ÉãÉYÿ{©ž” à Xð÷€Ž9½BF ˆŽ´$Yã/&àß,§¼ò¶"Ø‘ÌLƒÞ6Gy¹Þqe,<¹ÿ´DAÑþ#—»Íé¦ @f×kÐ8ݤàçA·ÍfÈØÞ\¡”Áq….žŒøÍ¥µãŒÄQbŽFÐ ½Œ+1>ÐV ëÈ—²?DzÚÿþ!X±öKÑÏX¿ïôxÜôƒ8Ä7½éo•hEŽè¹àY×ÏHLÙ#÷«ÓÁt @”ÿ¢u/QO¦âdÁc ÀÊ2¾BD‰VuÎ(z7iKþ£ÀqÙýdDNµÅ¥ŠÛ‘`s4g5_Óû#ÄNŸC†ËV™iù¢Ñ£$îuH*ÓÏËEZØlËßgµÞxá&çŸÃÜmgá³a™räæƒÁ‹Sóà¶q „ßá‹®z§¥ ÓAæ_ (•5ñÀõwOÃYdº?ÑvŒAKÐê÷!/böᆻkw»Yù3`‚?x>›Çaƒ@£ÌÐNì;<4N¸íõ­ ¨ÅMÿ¿Ô\;Šl0GhðŸÎÝ«¢~²ãä,õŸ˜ýÌ•»Ð ȈÀÙk^¤„×Cræ"$²ÎáHúP~F|º­, ŠXJK }-² gÍùñz¯?,[­TÊ”û(-ñ©±dž~íÚt•¬7‡–Á”³WÙ0BøÖõõiLÝþœmÑ“DL×Þ5ƒšb/}`_gƒØVk†ìù-iYNžìgÝiöQ£ TuôÖ`U¬C“ôMȶØ> Úìk÷Ùk½*±^vcCáÚ„¶b k¨Oö=™å–éa®8I.Ì Ùè O[€±L/BÔƒx“Ò¿çÇ[ÚÝãÉ×J]_‡BÒ´#ûà>K³û*Œ#­zJ¥¦×y‰ÿ²‘XäÚ?0-pbs— ˜wŒ}µ­Õ-uïJ "«8³ß$Ë ˆœŹ!uÿUœ¬ÆÜO“–žQ5ÝÞ9VœíuöݳªoÞ®î~…AÊ`sÂZƒ3ó‘}|ú¼°Ò@nɱßþ áßdLèTbºbÍE¯ÙJ >^Z#ðZ<…ô@ yú²v>û¸­;Ž9ó_N¨=NµKCt¨þ³­wÌ5%á8à]]é±°Ï•£(|_¶7_jƒ|r¢[ÖLè:$T@F·ˆ4þ늉|d¥EQ»ãxÂ"éÚÃõô9Z±Q)ñ&n äú*jM½²Ÿ­“].æÂ²4¿ñ9¶•Z<Œ°ßìªä4Ø\`bAô8ù]wdaq5£D=$ uÜëš@r–029ÿ¼^ˆÊñÅA¹`‰y÷ÖIè·÷I¬ËRÆwU\ê1nçd¡)˜™\ÇmA…ñŽ<À|ì,#¬®°jg ut¦lŽÈ©¼:M´Ë@”Qèfà%A7,Ðrþj=©äÑ?@Lø{–ò74TU´D¯ƒ6æ}ÑérXB gGã>U•6¦¯IQ %P'ØL•»’ÝRGãx]yîæ³3³ôÒk1í‡ Ót•—wÄ­JèAµäË5^‹ÆÌ%·Á\¯¼‰mRc›:=B·Uƒê:öáÿ»‰Ì*¬ÓŽäfáWäÏZýN¬ìð \fbظ_Vï…šŽ} ["(ÚÄqM¼uJõ¡ì½H¿&MV‰bBk¶ ¬!çTü¶ë{ˆqvŒôbæÙ§ó½3~>Ë|îÄ‚.úf§^¦6|Í‹’²|"Ïø«‘ª ¼NÏĽ8‹[£CeÉVü‰-ºÞQq}ñ@aÿ:·G}Jµ„ꟲ BÂh¢¼DÐÔ5³'ŽzXï/eþüæWC§ƒÐnˆB#F÷G`:AvÝ'È0‡6¦\ÛeŽ{êÙĘñúÄU£Y§g¹0r2 `-ûÍ€Á·<¦ÀNƒu×5‰ Eþ`9tÈqòÍgXXöhíÌ«êÚ@¡5™‹ ôë_žD Ø/ ùˆó!€€ÿyŒ€ÈTÒ³úûâ¼ñM—…ÿãÚíÓttñ<Á{Q »™YòûÑ Уà_R£r-8ì7 1ÃäúÄw⤀P Pn“È‚Û{ÜÍÛ‰DUN ghï¹-k¸áIýûÕcUØ ßçë['¢²noû„ÛDæE§!'D‡ÂŒÑûg3¢EÚ7œ½”«Nþ¾<°äŠPÒÅû¥'àPÏ¿y’>ºÉzážw®]Ö"28ë¹u••‰ f€'‘iq?l{K3s7èüʽìd[͸WZIò¨€@w)÷bˆ¢ÕÕQèPïzühÜR ÆI†B ûˆ§<9…\­:Äqüh&Xü>yÈê:†nûgl«ÅBøea÷âa Ñp@@å3o$Ià ”f¯kuv4E ¤yó`*8µ?GJÚ¹$ ûrÚOÊ@[5ÜD Ø„‹Î—.e(„Ð*òà5ëmÑõ‡EÛɧ–»ÇC-@"Ç*6¬À'9Ò´'c™¿èÙÍž¯ôœ¶‹¤ÙßýZµ°å¹[úà ØQBIßÕr;²$ #Xšöë1Vº7 ¬ìŽü<®¯ÌPŽ'pnSa§n²Ö5S!IÃ3i£œ{öË@1WH‰ƒw´¼™Q6±û°šÐ ‚L Cõ»Ÿ¢ÃeÌeÒ&zÅaË-)s| ¿ÿ‰]|ùÏLZó) ¦Ž[1B[‘ÊüšŽØb§ØÊÂÅ(j˜§}®êãµMœë“óárñ¤[:„f+qÔÀerÂÄ4É$fÃJ»T‰$õÿÄñ#žÎÈ“ü‡Å«µ©ÓÖnØ'Ê.*"¯Enêvóôu¡²!;çbñÚQU49;²©^§ªÎùéÕIQÿ,Ñd×3•ªHsäuW Ûâ{‹¦«$Þ_>nÇ꯺©üE“!„d¼´Ý@²-y¿)A H.(*)¶áVðÒÞeµ_^"C¬Ê\„–»W}: uÌR= "Ž ‹“ò)©Ì"?ßp7.ØÙü«õ§Ë—ßç¾SÊktá¾Ç©ÁcôõÓcaù(F÷´£¥’öõ“Öa—ŸŒûák@ìmyxôÞ'Z¶K4cºgñ‘ó u"Æ›žgS4ÉQÜ¥º‡áŽOÌÉ;*­]ïÆ'V­Þ~Í—|Qèì 1}DX Å&"™Êâþî¯A]Pí­ÆaB—R±.LrÅZÂêà†È:ݼÒh#Vgdó»8º´/?q“œŽßÈ?ÍuûÊt]ZW ™LÎ:¢>øMHEåá¼7k]_`E­Kå‘iÈÊ5ˆä;ÀãzN0¤É<ïo¤†Gïø8ºÁMKX¾u÷•ÂSímÌ1{z`˜RTŒ¡ ò4ô@“ç³»þèûpEîS/¸ô]ÕZ>ŒÜ£¢ßˆÙÛ¢û¹³ëá.-û®_¬)bÈÙ•È%œôFìFa?™…Aß1òg·}†‰ßŒ·`»= CúŸ– Â.UãAL§Mº:ôº.ÄöC†1ƒ%6$µ`b¸¶r„šžäº)I¬W­#ë¯jË•5 6‘OÇj¡ÍYã..>fº<ŠuH®&I@ Mš‹êP˜å² ç›H2°0ñ²ìÉ š<;4nw0 L2íŽð˜ýZ0É»C›N–ÅRIàîìÌYá¼ F €–`[ôjJ ÿ_àw¯z§rØn"r-Ÿ ÛÂã3õ4Tbv`=úÑ€÷xbø{øËz|ë7 úIV±¹×­Ò¼yØTL­çÀˆ ~xHòàšO¶=Âö54uÆšå"ð‰ÙWw‘Éd$Íu\m¥SNÜžøbô¶Jo/ &KÂG†%½^±{";#€®á’iÑ3É®qÐ…ßn’HÌÐ3E±.F`{S1>\ qÚ§¨Äjû•„áq–±CD?R´¨« ºu™º‡$Y¨gu¡tƯYáF¯cZH¨:av+sµ.–tΟ ¶§t+èèâNÐmÇ }å^<‘9aæåyÝ4|ö5™#’°ëbÑK%óZ²ØC¢B|FÓì1UGe›±QRI¢Àû*àw…v|Sc¨—âcžØߦΠޟža,‰ÖJvÃ6¬»UàöƒŠ ¬ªšeSûhgBê|%+€¤õ´è’ò'éÇæíßè·–_ Û;n„Y…ê€wQËfŸ®×±TvºÁË)!ÐïƒU•J›\}=›3,. @ÕíÓÌ]„Ôl@:;z¬ÄŸ>ߣM®Ær³Óƒ fk"¿”E‚\‰×ßS¿~ú¡k)Còò±R:à±);ÓV4Ö›õ”éÕDá{Q1S@Kp éÌš ÃË }ÁkÀm:µÃ#¯z¢Ñ ™Uûa’Õö˜µE?u¹>ñá×dÙC¹§Hàe=?J÷zZ)×%/"¼å·¨ãAvˆ½0 õ´[Þ:Dè£ñ? «œŠ¼,l±H!pÏþW«éþg¿ÂßàÊ´A_5øDK2ºÝm‹êd’¹0x8¶›!½MÕt•†ó†é-7#h b¹}õd3å9#½:¤Í!ÔîSúÔŸmýþÂ}°k’2êg‰xÑ$áÁ®FÛ½}ô>$’<>V‹¥R%3ÐŒ|Ñt†JWÊ59„`ÒåÓmÌ: ÌÍ´j!#ms ë…Ó¢xMp”åkªè³Ã†ð¤ß3EâÒ¶[{èAz³+q¡þWÜâÊ…ÛØDt­ÅѼãŸ:/'uÆkQF(—9u°5fq!½¡=ä+‰=â†O>rºÈL5 AäB±Ûéí+£ŽÖHMäI° ±1¢Ó½Ö" axñS‘Ô‹þs::ïÝWŽÌi˜!–aW“ÔƒGÛß5iX‰ü¦œÜ¼ÖßÏÈÕ¢f3(0Oý’C›K#ëgŸ¼9e Ÿt Q`[ÈTÕéo¼´Ú¤ûçŽf¤,ƒhÒ¡n;y‘á×ø| &_‘¦Ôˆì”v¢S«[6´¡([à ½úÍwÃlÆ› Cô ™›9ÑKƽ‰KáÕÕLS™¤m5ºyš(£7ÆÚ]Æn¼Þ"·lÚ»š@bígf=V›™U S-~Ÿ‰Él —1ËÃ<ò|fûÉ!ü¼l™o:¥ÓÙ–)Ý7`©+Í[ÚœHî:H}öÃòø#«Y™¶\¬y€[àѾ8 ¡»åˆ,6Xœ²$åÒ'ÿ$ Ý†ÍÓ«…СEŽ“™Òv”Wfç=¾çÏ+Œ0c'¨/v\#€Û…Üá–g•Á6l«ª³KÆGÞØ'ǰŒžÖ÷gLÓâX:ò@Jòy“§‘ò‰O€>ئÃôIûRB¶è„ÆhüíZ»šÎTví|’DÑâ]MðI19‰ ŒQÖKõë”Ô-í_dêrà­‹¢ÂÅEŽ¡¾=éˆ(²ûa°KY(øˆwWÔb†äÊöî]fEI¤Ï8ˆþïØÑ£ ¤(ÕYÏkªš² +÷½UµÀ¦òPGnFØlÿ5‚/kfVHbÓ錞Üh.GÓRŸšXûG³ý€ÅeãØ?D)¸_êçé>¸›È|‰–EÚJOŽ+,ù Ú÷8Ó/þêŠÝÔéoÒNl'ì]²¦ÔÔÊé¤áyí«nF{$µÌÅWIÕ¿bµŠà;‚Pe[ ÒZâ!Ã;Óã¿T¡¦3=ódOÏ©BnG#1zsßßO5G?H&Óg"ìU‡Xp}:1ñóf*U>4C”wºôù³˜fÑŽ±£U0#›'„…B˜þÅÌô27YºTƒ–£J3CÌ÷ÿòùõ4PF*Áûu:A$bU¾¸É>]-£ä t‹ÖĸßɽŒ¡s*" üÒ±”U½Ÿ6ãD!´h öJà£ò–×å~.! F^]¼Ë{Íü'¯˜ZéL‰18ÙÈør]ÆÎ;ÞfHVÖ.(9nŽñÜê›v\ äÏ2öeNÁ¯ÆŽ"ƒ\ß*†“¨lÂëo°ŽÅ8%ôÂøýŒ4! „ Nßæ’VA r~Gñ³¡@–¾r].üPl_Ñ&ªR÷þô?è¤z;öøfr ¤Ë£oš›Þ¨¢èð2t<ÏÅÒ¡\÷ˆ½C¼ºAu„\#XÕ’ü6Ѐ<ûùoá^¬ô[«‹0¯Ÿ ®|ŠééW¾Ã£ƒÓ³K†;§–—>ö6žm C¿=U1w)éS¾Þ›ÅÚòL´*}PލþM*©Å0³èO »¤TƒQUЪCIõáDÍ€&Fy!Ú5=K¶Y}çYµÖˆ_'º†›Œy¸ËŸ¶7«ŠV-³yW”ìÀqQŽÂ1¼©-Ÿ3\»YÑHà°LÖQ ½Ú…Y×c+i|@œ8ŸÕPÛ¿­Z†ã SÉé‚Z‘LºZ[â¤ïkÖ7.îÈaQI:x;ì$/»0¦æ=·´z޵©‹÷$ƒuÆ-¾Š ø³ë×\fhN6•·ôÞN>ïto±ŸCÄö±>07FÞ@ŠbÙ6ö¬´_2†S; N©‡›¤£=7Ip{¶Ú±•) ÷c ƒ‹'ý¾JêAf¼ì˜œëû–T8íñ SZW¶c£ü¸g^yy:…Ï -9 \ÕœD-€g×0D˜¼Siõ"ÏJ&Nfë\ž œZÒØëh˜B…±&® Ú”f€ÙàU¯|,€ê±v¤Gl›3ž*÷Ý$Wæ½;þÃÎð4ƒ0|˜ßƒ¢d¢Þ½«¸”²^'î¯þv}8þÆužs¶s¿-bm!ÕxõÒÐ#³Ù÷,Ö¾Œþô 5ü»5·‡;õ­ÿ{)>¡8]šTÛO‡4²±†ãÇ `kŸ•|/žeÔȆ/cpØø¼Gr¦¨½úN¦E&^Ô>CâAÃr¯Ïn´;æRŠEAî’ßëxYseIªý-/CpGvƘ "¦ï>cÞaq˜hªãÈÐÔ‡1R†Ù–6b%ª§#/¾/¼.ÄEË(Pž'ÔªôBzÂÙ“’Ÿ kÒæ¬ÒÁ[]Qˆæ<$¦ÖB~U“ÖpñÅn¶¥ßrbÔri‚û1¶ ‚4:4–$¶˜'1¾Ì6gô•¢b+u…@äDüVÕœ¶g9ŽI.Á%òdݼ¬_æ/·¶•ɯݤÖTXÍ—ÂîNåÎÿòQ!ðlF{«¯Ê3‡&ÿ]yècæ6ø;8dÿ{à_=¾ÍrMy3q¸¤Å«ÿEgÞÝMêñå àðõ (îToÐc'½*Õt¼%CϛΫö¬–#þŽ ‡Ý¿&7 ¬© L7¦/nYã­ûk´mÔ!í'C®‡ÉÑÿÿ¶:²ÂcéŸ,.êÑòg Þg&{us@ÆmŒIK‰»mÓ@lh{ ©QEܼ”¨JÌ–ÛK”­øçCBê®®±âmÍ*F*‰è¯wóæcæü,Îm¾"Ÿ52E®«ç¨·ºQš=¶ebº²´Èé•ü Xê;—3ëáù¬8à=ܰ.~UÉÄû)T-RÚH W®Ý¢‡7êuOܶ]mG‘g3[s0ª„‹ä«ðfÚ,]U:ˆEÇôÐRPx""Mx’á )ÚÇ}‹ ’R9˜}õ”¾¿6=fЦ”ï$oaÊš…\Ǜưý†5‚¢ Z…½mxâÓgÀs%Å k¼¼é±†…½¶ø’›°ºˆ Ó–Tq6¼(¹ê]±‹zÕ˜´J˜8)jJ"4P&t…Ä®>3ÙÛB²ò7/\Óc¨:ó(R§€mÏ>'åX /—µ=Ð^í¶QŽ V—ë÷ñÉŠ éü²é:BЛ˜ Áöax‚óvIÄù¤€¹‘4qÖ¥Ö:õîP@V“´à š ó’.”³‰N€ 6Qî.±N_@îß»°eÁ‚¼Ñ$ õcÛð¹l²—¯©Bºø|VÀéBêkînC‰5<-‰@‚ç,º1†¤gowòodî`µõTqò˜„€Ûœ€ }Íéª ÏÅË$%2á§±ÓD+iüù2™Ù‹úœ0Ãc«ªªè¯Í0sí¾îrŸm5Ϲ§Tz(вƒì4)}+ŒÐöØåXY}L$Áo¯Ë”4œËå×ચG LDD»$.C/$=ZÝ[Ʊ®³_o°¾]Àí ùÑ1ž”óêaD-*klK^rP»Ä¡œý{¹„3\ÂA´!>ìJ~€Ä%2)œxBW?é¡/ä¸C]Fø¾žJ ˆäªäI–ð1žå1[©àóèáÇzËÀ0Ì*1éÂÅœóÖ))¸Þ€R¥mÎј9(™†Ó Îüt&¶™ú [ñ£ükXKv®”™¾yQN¾ÐŒj`_J”(È”`›õÉcé|¾:Âm±) àt¬z¡ÆûØè(H]1ù÷µÁ’‘‹ÌÞW¢Qîæ+æû’y0†Å+üËB:†Å|ºèùVRBµAT”þó(Ç~Óã’Ú˱W®Óøs’7ï!0©šÄ{Où|¯zíjŸüç„SoÙ,È ·ó†UÒ0ˆÉÛ‰ŸÎÒ–X÷RkÒÑ Ì?¶fŸƒo›hf19äÔrªòiÌ()AA6‚q'û}+÷«ü²î~¯iÿõ©§±‡KÆíRrì´×8¶û®ø”+Q[h-yi¦ŒD«áú¼7)¿öPý ü d|‹oQÀ¢¸ÉZ¬ˆNŠùÔF뜅,¶ÉðHoùŽø;rpÈXÑ óÙÇþþ«wÍŒ/f. ò-ã¯:%1+âS‡[|”Åÿ&h¨úÛãá€#T=ja¹º{õ¬U€Ïd’SOW ô £á7Yp›´j£Û¦húD¿ÇëI -8¿BýÔÅpCl¨U¸è§úÂÇç 9_¾¡Üm}ITÚ1ìMw¶î ÷¹0¶Tò•¦6ÄÞma/°ÍÇ»cëÛ…@†ýÜéPß»ª(ôÈ+mÆú¼ EÛ0U[ù^t/%Z²ÇK³ Rþytöó/HP—o‰g³ˆ–áÖdÁ÷çîjIk¤X3éÏOØýœpgUŠ]ÈÛˆ– ›c¡4QHfÛ:%c‘¼7þدšk8û=PäVw$?ê Æ2DÔÉÞL@Sý0]Y0_¬ ºýþ6~Þ ®§ª5†<œà£S—Øy]á펒¼–ÇfiÇ%!›Ê=Ã]eðŒgV²¨qÕ3ºhcWÌbqvœéVŸ PäšXaÚ­Ñ~`–@Þ[45^¢ÁôÀ‘ÆûL[q‹W\htU¥Ào©þ ¤¿²„z|…&2I¤ïƒ-hf¾©Ãv{– ÜN~–=™r@e˜`ZDa›!ê/Oð,c¯ì/¸ŸÊ4P<ÿüåÌaÈP¿ŠöCb~ž¹Ù‘¾º¦ÞÊÙ¬¬5Úq¤ü6ò ò"„ö×Càh ÊûG#Åè÷y¼µiÑ}L'ïh’HúgZ] ÚrŽl šçá•KÕÉ x%¹%qo!¸“‚Jóš¿Þ&ÿtiÂS2lÍßÂn§‰ü~:ÙþP´´±%l=yFh‹g²­>aÇrPŸ À‡N“`@òÿÈãû?YcêOÁT¶ÿc kEr(C[|H1aý¡Ìw[ª•û$œ ÜoÍØ,!ܺ6¥2/ÊHÏMuGHÆt6Ú~ÀïĤ5*÷ð—Ñó³/c/^{Ž%0ÚÌøÿO?ìzJôAþXîÇC?úø†¿˜FÙä«—à*À| V!Pò#á&xtnßCýc…ÝVÈ2/ ~›HѦð—9! á˜ràÇ_‡Œ›‘`ée*)_«sŒª«XoÈ‹Y möƒ]Åkš< O6»7©ówYsMðÑªÈ¦ê‰ T(b¶nÈÙ,\l$n‹¶ÓTÑ=”ÛÛÏÌ]T©~AGîhqЉY¡Ñ®5ÔŽÆ÷˜µˆßYCúBma,ET‰5Îa>ÂC‚W×ßQ ho’ãtêCNØ^úˆ¿½bÊaQûkçóPg/+y~ÒµU2;$ø@ª6<ŒºKïUÛú-T‹ü3.Í¢‚Äš¾ "ÞFËô3:~Tü•ª . ÷N hÜzVÌ{W¸ùªnoÀ^,J„mÎË™°Ê1]fÉÑ…®;âñS*=iÓ±¶&1§{N/ÿž uØÎÅUÿÈ¢.Òwž–¯K J!œ³!vøÜCÙì6Å*ÿ"íÝ7_6:„yúƒ- ^ŒQ¦´ÿt@1IEýL•…ã‹ûW°'†Ñp€zl ãç‚u¤ŸŒÝV_Ûˆ…gÁÁq}©J‰+´×õ‡ÝÆ«:šµjëØ­ÇqH­Ÿ þ: œS{YŽùL!k”‚‡£=Ô®Úìdûpaü÷´É*Ž©ÀVuìØý¤ƒ$Î(ÛõlâË™¾×ä²(M} 9¹ãTa ÔÎ=®‹Ó_¦½/¢†+Àmc–LYÑXHÏÊI0ÑìÝbÎ<¸_æ ;í7hÀÝ”`œÛ4M&JF],Â_Z—¢6Æd Ž/±,"ËÞΆlpÐe2‚»lŸ¢[ÚA.¬’X©Õ[=tï€ÁD• Ì.}ÆÁnŽ^H™æ\K€ã*#é®ù¢rð×ZP#"xà£õý³i1£ vp+j2nu•2k¢lËÊɌܱtaõÑbÚ±\Ø4yþÅ.7 á '-¬ô„Mߍޒ€x |œ@yº2ʱk õÓU÷K%0¶á»]VÔ>Téî—¤«ã/V‡G´ŒûlyÅÔ*¹E¸Ïˆ*ò¾l[ß'æÄ½®–¡Ñ©Áé4:f²˧¥ ‹#êrŒ ˜\9üy³³´9Á„®CÎÊy´Õ+»—iýÙþ6ëç.š*²J·QWsVÞž&.6²wWŽ« •äQ’¬“¬;Ìu6È-(aêƒÒ)?ˆ!$„ögd Ø\!ÇkɃ„S´É³¾„¨¦ïÞÙTŒ(ì–œ³Ðœje<­«é˜üŒçë5Gø¤’Uãm05¬( ü3žu”SüÞc Ý‘¬„²q˜™ŠPÈÀ |E3T3)ZÛE·iIuùQÛ°zW®ñáÜ\ÀÇC7Ú¤ÉäErÓíéÛsýwzA§²Ê$Mx"¥šõ‰Œ` †»m¶#Nð²u9à*’mØ9lÄ®sÜë7•-å–§]mñeº¼GžrO8ÝÖD ôŸÓ¹ã ùOkš8·êÞ´µwŒàÿÏÐͰ×Ã{vìݲ±æ‰54A`¹&™²üˆTýƒH­²yb÷Ô&MšÌ6÷J›nùÒ]Þ¦†T§`pÇË¥Z-à¡x ÌhîØ‰ûT×ç½?ÞH=p^ŽÏHw GYv“;t#Õâd®VœÑ•úCo©IÏ47°šÕ€?¬ÅµLçŠ ÷€Fí” € FóüœTË]†Éës‹Ô`ZÖÝh˵5b2³ÐQÙL52bNä ^*g¼ IÈ8Ûž=dÕ Ûú&÷3‰#¤`z LXƒÐ#rM\êÆ—÷ÈlœÀÉWÏ)‹mŽkRÖÿ/(^4¢L÷rIBnV»,ùd/Ä ¾£hšPÊwç^y,à«5Q9gU»®"Ñs °–VTÊ€«N’qü![¿ä0(r~©nò1¤_O;µŠ_‹~¬½† qw¸Üê臬1­RÊF×]/u«7?AĈ(ŽpþUÊ˵ӅxÜö…RdZ(Þ0„ym¾ý%ïn<¤äu¸Ø?k¬Ñ‡Ô²Qàæ°d–Q$Èhèè³¢„F#JÿÃê—B’ÊÿQž­ÌÐDðÆ«’fpK’ÄjFª€#±Ý]7ÁJío_z=†°À[ÈÀØè䨳`%ö!íäéÜçËÁOmAjÙš•ÁUsÜmÔ¯ªÑ=$ˆÌ X$þ¢ '¬*m H_´ÛqîBÜN¤'d<<÷H‰4r”è®â°Ž°¢PþdQ ±ª_ío¬5î‘Y¹aÃýzŠ9Ï^1PdŠ^9^Ù_Œ‰ªeë¾F{M/K¯«gôWP¯j둉[ÈsÀ@’@áo•™.)Õ¸Nê,çÕÖ‰³…öÒ‹ñkrtwe§À£_.ŸˆÆëFV¢,¦ý¶ŽÎž•ÃóÂI4Z".“ö•I)ýu<Ñ3ÅG»Œ)ôÉÇT&©Ô )o°û[ˆ²ÑÍ0&—º•¯7’"ñ·y'ßWHüKö¡Á¼Óß¶Ì\-¦ƒ^@=nf­LâzPÚ#ehlÿÔŽ—›¼s‘—NÍ•ìcpþòÃà¹.sÄ0«‘î/M eoرuÂ¥t?¡f~êYJ~æ‹øÐ9Ê–%("3bx„l«À×IÍÒQ»Ø¢~ÅI’É ‚â¾F,¦îbÐK½cO5ÔU‘Jô‰Uæ´žpëîEd ››œ Ž·½’¨¶¾< “áÐ?ÉÏ Ðpa¤eú!{1IFgð:#ÇÖÜæ§Þ‰Ù[(‘`º^H"Ç2ü{ÝaþìQ‹’hƒq„gM¤To4 ø,äa QNÕüxd…‘~ÔKdG¬B1!8¸ÔFuv³Ò3bV“Äkí;/{Úõú—õ3™©*(l=2/?Ia»ìD®q¡€ø«ŒlÒˆ[ãŸ?í¶Áx¹Ï›ò{šóÓJcm,Š2Êê/ŒýŒ*r3Y³¸o=á×q£§š~^Huå#-fD¢ì–鿉6×{Ì3lïÕ=gÅÃ9 ÃØ?«í×cˆØS°§‰Ç³bãîM÷ì Ö=ùžd(LîV\T£ ‹›a †° ŠÎ`$؈' Ëv‡×e}È(DˆATT¨O2Rl¼™kíô—U‡ªGä*Ú0údÓUìÈþí !30á‰)¥@’‚ûN»_ÊgÑâêRçù®ú;¬¨&Õ@YA!ß¹46á~CË,ò|ó*5”4ï ˆ>"é$˜ëCÊד⇿¨ØG8%#la H|XdõšŠ}q®.Ï®­„-dt¥Wõ¡ïÚÌZL.ê‰u—‰*·Då ¼ªH¤r—Tž¼Àèc’íYFc£·Ù,K¤ð%*²Ò;·¯&¯¼#5­øÿ©Ü¨k<Ö¢Ð9+z-Bçâ#ÃW*܉ÏiŒa¸Èâ%IòO{ŸÀ<ê…¸içK2~Å çó{HŠ<·Q8“Ÿ øóºBwÿŠTäAT‘çFh¢¦‚Dî[\ä˜qž•n:$â"ùËT/BXx ¾ægYHú3c¯P¯½êN™­Ã3zð?Œâ[øÑ^7ƒŸc5ƒ*ŠTq¡@eZ«xÝx ^»•› ü $uƒ¬Ü-/r]G¢Z¿?åHŸµrˆdÖOº,;ˆÛ¨xµgЛ-2d#%F·Ñ/S@ªfþª¨Î&ɦ ¦”jžVÏÿø%ð¦fÃ:+ûDЙ<Ï5Ý6Öd*ýuËp NÌbÖ V«[sñjÝl+ãB7f´Œ¼c0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark libwmf-0.2.13/fonts/fontmap.in000066400000000000000000000055021441723000300161760ustar00rootroot00000000000000 libwmf-0.2.13/fonts/libwmf-fontmap.in000066400000000000000000000317731441723000300174650ustar00rootroot00000000000000#!/bin/sh font_map=@WMF_XTRA_FONTMAP@ font_dir= echo_help=no while test $# -gt 0; do case "$1" in -*=*) optarg=$(echo "$1" | sed 's/[-_a-zA-Z0-9]*=//') ;; *) optarg= ;; esac case $1 in --help) echo_help=yes ;; --map=*) font_map=$optarg ;; *) if test "x$font_dir" = "x"; then font_dir=$1 else font_dir="$font_dir $1" fi ;; esac shift done if test "x$font_map" = "x"; then echo_help=yes fi if test "x$font_dir" = "x"; then font_dir="@WMF_FONTDIR@" else font_dir="$font_dir @WMF_FONTDIR@" fi if test $echo_help = yes; then cat < dir1 [dir2 [dir3 ...]] EOF exit "$1" fi echo font map = $font_map font_pwd=$(pwd) if test -w $font_map; then rm -f $font_map fi cat > $font_map < EOF for i in $font_dir; do if test -d "$i"; then cd "$i" || continue font_cwd=$(pwd) echo scanning "$i" for j in *.afm; do [ -e "$j" ] || continue font_root=$(echo "$j" | sed s/.afm//) font_metrics=$font_cwd/$font_root.afm font_glyphs= if test -r "$font_cwd/$font_root.pfa"; then font_glyphs="$font_cwd/$font_root.pfa" elif test -r "$font_cwd/$font_root.pfb"; then font_glyphs="$font_cwd/$font_root.pfb" elif test -r "$font_cwd/$font_root.t1"; then font_glyphs="$font_cwd/$font_root.t1" fi if test "x$font_glyphs" != "x"; then echo font: "$font_root" FontName=$(grep "FontName " "$font_metrics" | sed "s/FontName //") FullName=$(grep "FullName " "$font_metrics" | sed "s/FullName //") FamilyName=$(grep "FamilyName " "$font_metrics" | sed "s/FamilyName //") Weight=$(grep "Weight " "$font_metrics" | sed "s/Weight //") cd "$font_pwd" || continue echo '' >> $font_map cd "$font_cwd" || continue fi done for j in *.ttf; do [ -e "$j" ] || continue font_root=$(echo "$j" | sed s/.ttf//) font_recognized=yes font_glyphs=$font_cwd/$font_root.ttf case "$font_root" in antquab) FontName="BookAntiqua-Bold" FullName="Book Antiqua Bold" FamilyName="Book Antiqua" Weight="Bold" ;; antquabi) FontName="BookAntiqua-BoldItalic" FullName="Book Antiqua Bold Italic" FamilyName="Book Antiqua" Weight="Bold Italic" ;; antquai) FontName="BookAntiqua-Italic" FullName="Book Antiqua Italic" FamilyName="Book Antiqua" Weight="Italic" ;; arbli___) FontName="Arial-BlackItalic" FullName="Arial Black Italic" FamilyName="Arial Black" Weight="Italic" ;; arial) FontName="ArialMT" FullName="Arial" FamilyName="Arial" Weight="Regular" ;; arialbd) FontName="Arial-BoldMT" FullName="Arial Bold" FamilyName="Arial" Weight="Bold" ;; arialbi) FontName="Arial-BoldItalicMT" FullName="Arial Bold Italic" FamilyName="Arial" Weight="Bold Italic" ;; ariali) FontName="Arial-ItalicMT" FullName="Arial Italic" FamilyName="Arial" Weight="Italic" ;; arialn) FontName="ArialNarrow" FullName="Arial Narrow" FamilyName="Arial Narrow" Weight="Regular" ;; arialnb) FontName="ArialNarrow-Bold" FullName="Arial Narrow Bold" FamilyName="Arial Narrow" Weight="Bold" ;; arialnbi) FontName="ArialNarrow-BoldItalic" FullName="Arial Narrow Bold Italic" FamilyName="Arial Narrow" Weight="Bold Italic" ;; arialni) FontName="ArialNarrow-Italic" FullName="Arial Narrow Italic" FamilyName="Arial Narrow" Weight="Italic" ;; arialuni) FontName="ArialUnicodeMS" FullName="Arial Unicode MS" FamilyName="Arial Unicode MS" Weight="Regular" ;; ariblk) FontName="Arial-Black" FullName="Arial Black" FamilyName="Arial Black" Weight="Regular" ;; batang) FontName="Batang" FullName="Batang" FamilyName="Batang" Weight="Regular" ;; bkant) FontName="BookAntiqua" FullName="Book Antiqua" FamilyName="Book Antiqua" Weight="Regular" ;; bookos) FontName="BookmanOldStyle" FullName="Bookman Old Style" FamilyName="Bookman Old Style" Weight="Regular" ;; bookosb) FontName="BookmanOldStyle-Bold" FullName="Bookman Old Style Bold" FamilyName="Bookman Old Style" Weight="Bold" ;; bookosbi) FontName="BookmanOldStyle-BoldItalic" FullName="Bookman Old Style Bold Italic" FamilyName="Bookman Old Style" Weight="Bold Italic" ;; bookosi) FontName="BookmanOldStyle-Italic" FullName="Bookman Old Style Italic" FamilyName="Bookman Old Style" Weight="Italic" ;; century) FontName="Century" FullName="Century" FamilyName="Century" Weight="Regular" ;; comic) FontName="ComicSansMS" FullName="Comic Sans MS" FamilyName="Comic Sans MS" Weight="Regular" ;; comicbd) FontName="ComicSansMS-Bold" FullName="Comic Sans MS Bold" FamilyName="Comic Sans MS" Weight="Bold" ;; cour) FontName="CourierNewPSMT" FullName="Courier New" FamilyName="Courier New" Weight="Regular" ;; courbd) FontName="CourierNewPS-BoldMT" FullName="Courier New Bold" FamilyName="Courier New" Weight="Bold" ;; courbi) FontName="CourierNewPS-BoldItalicMT" FullName="Courier New Bold Italic" FamilyName="Courier New" Weight="Bold Italic" ;; couri) FontName="CourierNewPS-ItalicMT" FullName="Courier New Italic" FamilyName="Courier New" Weight="Italic" ;; euclid) FontName="Euclid" FullName="Euclid" FamilyName="Euclid" Weight="Regular" ;; euclidb) FontName="Euclid-Bold" FullName="Euclid Bold" FamilyName="Euclid" Weight="Bold" ;; euclidbi) FontName="Euclid-BoldItalic" FullName="Euclid Bold Italic" FamilyName="Euclid" Weight="Bold Italic" ;; euclidi) FontName="Euclid-Italic" FullName="Euclid Italic" FamilyName="Euclid" Weight="Italic" ;; eucsym) FontName="EuclidSymbol" FullName="Euclid Symbol" FamilyName="Euclid Symbol" Weight="Regular" ;; eucsymb) FontName="EuclidSymbol-Bold" FullName="Euclid Symbol Bold" FamilyName="Euclid Symbol" Weight="Bold" ;; eucsymbi) FontName="EuclidSymbol-BoldItalic" FullName="Euclid Symbol Bold Italic" FamilyName="Euclid Symbol" Weight="Bold Italic" ;; eucsymi) FontName="EuclidSymbol-Italic" FullName="Euclid Symbol Italic" FamilyName="Euclid Symbol" Weight="Italic" ;; euextra) FontName="EuclidExtra" FullName="Euclid Extra" FamilyName="Euclid Extra" Weight="Regular" ;; euextrab) FontName="EuclidExtra-Bold" FullName="Euclid Extra Bold" FamilyName="Euclid Extra" Weight="Bold" ;; eufrak) FontName="EuclidFraktur" FullName="Euclid Fraktur" FamilyName="Euclid Fraktur" Weight="Regular" ;; eufrakb) FontName="EuclidFraktur-Bold" FullName="Euclid Fraktur Bold" FamilyName="Euclid Fraktur" Weight="Bold" ;; eumat1) FontName="EuclidMathOne" FullName="Euclid Math One" FamilyName="Euclid Math One" Weight="Regular" ;; eumat1b) FontName="EuclidMathOne-Bold" FullName="Euclid Math One Bold" FamilyName="Euclid Math One" Weight="Bold" ;; eumat2) FontName="EuclidMathTwo" FullName="Euclid Math Two" FamilyName="Euclid Math Two" Weight="Regular" ;; eumat2b) FontName="EuclidMathTwo-Bold" FullName="Euclid Math Two Bold" FamilyName="Euclid Math Two" Weight="Bold" ;; fences) FontName="Fences-Plain" FullName="Fences Plain" FamilyName="Fences" Weight="Plain" ;; gara) FontName="Garamond" FullName="Garamond" FamilyName="Garamond" Weight="Regular" ;; garabd) FontName="Garamond-Bold" FullName="Garamond Bold" FamilyName="Garamond" Weight="Bold" ;; garait) FontName="Garamond-Italic" FullName="Garamond Italic" FamilyName="Garamond" Weight="Italic" ;; gothic) FontName="CenturyGothic" FullName="Century Gothic" FamilyName="Century Gothic" Weight="Regular" ;; gothicb) FontName="CenturyGothic-Bold" FullName="Century Gothic Bold" FamilyName="Century Gothic" Weight="Bold" ;; gothicbi) FontName="CenturyGothic-BoldItalic" FullName="Century Gothic Bold Italic" FamilyName="Century Gothic" Weight="Bold Italic" ;; gothici) FontName="CenturyGothic-Italic" FullName="Century Gothic Italic" FamilyName="Century Gothic" Weight="Italic" ;; impact) FontName="Impact" FullName="Impact" FamilyName="Impact" Weight="Regular" ;; l_10646) FontName="LucidaSansUnicode" FullName="Lucida Sans Unicode" FamilyName="Lucida Sans Unicode" Weight="Regular" ;; lucon) FontName="LucidaConsole" FullName="Lucida Console" FamilyName="Lucida Console" Weight="Regular" ;; marlett) FontName="Marlett" FullName="Marlett" FamilyName="Marlett" Weight="Regular" ;; msmincho) FontName="MS-Mincho" FullName="MS Mincho" FamilyName="MS Mincho" Weight="Regular" ;; mtcorsva) FontName="MonotypeCorsiva" FullName="Monotype Corsiva" FamilyName="Monotype Corsiva" Weight="Regular" ;; mtextra) FontName="MT-Extra" FullName="MT Extra" FamilyName="MT Extra" Weight="Regular" ;; mtsymbol) FontName="MT-Symbol" FullName="MT Symbol" FamilyName="MT Symbol" Weight="Regular" ;; outlook) FontName="MSOutlook" FullName="MS Outlook" FamilyName="MS Outlook" Weight="Regular" ;; pmingliu) FontName="PMingLiU" FullName="PMingLiU" FamilyName="PMingLiU" Weight="Regular" ;; simsun) FontName="SimSun" FullName="SimSun" FamilyName="SimSun" Weight="Regular" ;; symbol) FontName="SymbolMT" FullName="Symbol" FamilyName="Symbol" Weight="Regular" ;; tahoma) FontName="Tahoma" FullName="Tahoma" FamilyName="Tahoma" Weight="Regular" ;; tahomabd) FontName="Tahoma-Bold" FullName="Tahoma Bold" FamilyName="Tahoma" Weight="Bold" ;; times) FontName="TimesNewRomanPSMT" FullName="Times New Roman" FamilyName="Times New Roman" Weight="Regular" ;; timesbd) FontName="TimesNewRomanPS-BoldMT" FullName="Times New Roman Bold" FamilyName="Times New Roman" Weight="Bold" ;; timesbi) FontName="TimesNewRomanPS-BoldItalicMT" FullName="Times New Roman Bold Italic" FamilyName="Times New Roman" Weight="Bold Italic" ;; timesi) FontName="TimesNewRomanPS-ItalicMT" FullName="Times New Roman Italic" FamilyName="Times New Roman" Weight="Italic" ;; trebuc) FontName="TrebuchetMS" FullName="Trebuchet MS" FamilyName="Trebuchet MS" Weight="Regular" ;; trebucbd) FontName="TrebuchetMS-Bold" FullName="Trebuchet MS Bold" FamilyName="Trebuchet MS" Weight="Bold" ;; trebucbi) FontName="Trebuchet-BoldItalic" FullName="Trebuchet MS Bold Italic" FamilyName="Trebuchet MS" Weight="Bold Italic" ;; trebucit) FontName="TrebuchetMS-Italic" FullName="Trebuchet MS Italic" FamilyName="Trebuchet MS" Weight="Italic" ;; verdana) FontName="Verdana" FullName="Verdana" FamilyName="Verdana" Weight="Regular" ;; verdanab) FontName="Verdana-Bold" FullName="Verdana Bold" FamilyName="Verdana" Weight="Bold" ;; verdanai) FontName="Verdana-Italic" FullName="Verdana Italic" FamilyName="Verdana" Weight="Italic" ;; verdanaz) FontName="Verdana-BoldItalic" FullName="Verdana Bold Italic" FamilyName="Verdana" Weight="Bold Italic" ;; webdings) FontName="Webdings" FullName="Webdings" FamilyName="Webdings" Weight="Regular" ;; wingding) FontName="Wingdings-Regular" FullName="Wingdings" FamilyName="Wingdings" Weight="Regular" ;; wingdng2) FontName="Wingdings2" FullName="Wingdings 2" FamilyName="Wingdings 2" Weight="Regular" ;; wingdng3) FontName="Wingdings3" FullName="Wingdings 3" FamilyName="Wingdings 3" Weight="Regular" ;; *) font_recognized=no ;; esac if test $font_recognized = yes; then echo font: "$font_root" cd "$font_pwd" || continue echo '' >> $font_map cd "$font_cwd" || continue else echo "I don't know" "$font_root" fi done cd "$font_pwd" || continue fi done cat >> $font_map < EOF libwmf-0.2.13/include/000077500000000000000000000000001441723000300144725ustar00rootroot00000000000000libwmf-0.2.13/include/Makefile.am000066400000000000000000000000211441723000300165170ustar00rootroot00000000000000SUBDIRS = libwmf libwmf-0.2.13/include/Makefile.in000066400000000000000000000456251441723000300165530ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2018 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@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/wmfconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FREETYPE_CONFIG = @FREETYPE_CONFIG@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_DIR = @GDK_PIXBUF_DIR@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GD_DEFS = @GD_DEFS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBWMF_BUILDSTYLE = @LIBWMF_BUILDSTYLE@ LIBWMF_PACKAGE = @LIBWMF_PACKAGE@ LIBWMF_RELEASE = @LIBWMF_RELEASE@ LIBWMF_VERSION = @LIBWMF_VERSION@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_LITE_AGE = @LT_LITE_AGE@ LT_LITE_CURRENT = @LT_LITE_CURRENT@ LT_LITE_REVISION = @LT_LITE_REVISION@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_LIBM = @SYS_LIBM@ VERSION = @VERSION@ WMF_CFLAGS = @WMF_CFLAGS@ WMF_CONFIG_CFLAGS = @WMF_CONFIG_CFLAGS@ WMF_DEFS = @WMF_DEFS@ WMF_DOCDIR = @WMF_DOCDIR@ WMF_FONTDIR = @WMF_FONTDIR@ WMF_GS_FONTDIR = @WMF_GS_FONTDIR@ WMF_GS_FONTMAP = @WMF_GS_FONTMAP@ WMF_LIBFLAGS = @WMF_LIBFLAGS@ WMF_SYS_FONTMAP = @WMF_SYS_FONTMAP@ WMF_XTRA_FONTMAP = @WMF_XTRA_FONTMAP@ XMKMF = @XMKMF@ XML2_CONFIG = @XML2_CONFIG@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = libwmf all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libwmf-0.2.13/include/libwmf/000077500000000000000000000000001441723000300157525ustar00rootroot00000000000000libwmf-0.2.13/include/libwmf/Makefile.am000066400000000000000000000004411441723000300200050ustar00rootroot00000000000000HDRHEAVY = foreign.h eps.h fig.h svg.h gd.h x.h if LIBWMF_BUILD_ALL HDRBUILD = $(HDRHEAVY) else HDRBUILD = endif wmfhdrdir = $(includedir)/libwmf wmfhdr_HEADERS = api.h color.h defs.h fund.h ipa.h types.h macro.h font.h canvas.h $(HDRBUILD) EXTRA_DIST = template.h plot.h $(HDRHEAVY) libwmf-0.2.13/include/libwmf/Makefile.in000066400000000000000000000425111441723000300200220ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2018 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@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include/libwmf ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__wmfhdr_HEADERS_DIST) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/wmfconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__wmfhdr_HEADERS_DIST = api.h color.h defs.h fund.h ipa.h types.h \ macro.h font.h canvas.h foreign.h eps.h fig.h svg.h gd.h x.h am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(wmfhdrdir)" HEADERS = $(wmfhdr_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FREETYPE_CONFIG = @FREETYPE_CONFIG@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_DIR = @GDK_PIXBUF_DIR@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GD_DEFS = @GD_DEFS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBWMF_BUILDSTYLE = @LIBWMF_BUILDSTYLE@ LIBWMF_PACKAGE = @LIBWMF_PACKAGE@ LIBWMF_RELEASE = @LIBWMF_RELEASE@ LIBWMF_VERSION = @LIBWMF_VERSION@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_LITE_AGE = @LT_LITE_AGE@ LT_LITE_CURRENT = @LT_LITE_CURRENT@ LT_LITE_REVISION = @LT_LITE_REVISION@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_LIBM = @SYS_LIBM@ VERSION = @VERSION@ WMF_CFLAGS = @WMF_CFLAGS@ WMF_CONFIG_CFLAGS = @WMF_CONFIG_CFLAGS@ WMF_DEFS = @WMF_DEFS@ WMF_DOCDIR = @WMF_DOCDIR@ WMF_FONTDIR = @WMF_FONTDIR@ WMF_GS_FONTDIR = @WMF_GS_FONTDIR@ WMF_GS_FONTMAP = @WMF_GS_FONTMAP@ WMF_LIBFLAGS = @WMF_LIBFLAGS@ WMF_SYS_FONTMAP = @WMF_SYS_FONTMAP@ WMF_XTRA_FONTMAP = @WMF_XTRA_FONTMAP@ XMKMF = @XMKMF@ XML2_CONFIG = @XML2_CONFIG@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ HDRHEAVY = foreign.h eps.h fig.h svg.h gd.h x.h @LIBWMF_BUILD_ALL_FALSE@HDRBUILD = @LIBWMF_BUILD_ALL_TRUE@HDRBUILD = $(HDRHEAVY) wmfhdrdir = $(includedir)/libwmf wmfhdr_HEADERS = api.h color.h defs.h fund.h ipa.h types.h macro.h font.h canvas.h $(HDRBUILD) EXTRA_DIST = template.h plot.h $(HDRHEAVY) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/libwmf/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu include/libwmf/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-wmfhdrHEADERS: $(wmfhdr_HEADERS) @$(NORMAL_INSTALL) @list='$(wmfhdr_HEADERS)'; test -n "$(wmfhdrdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(wmfhdrdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(wmfhdrdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(wmfhdrdir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(wmfhdrdir)" || exit $$?; \ done uninstall-wmfhdrHEADERS: @$(NORMAL_UNINSTALL) @list='$(wmfhdr_HEADERS)'; test -n "$(wmfhdrdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(wmfhdrdir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(wmfhdrdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-wmfhdrHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-wmfhdrHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ install-wmfhdrHEADERS installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-wmfhdrHEADERS .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libwmf-0.2.13/include/libwmf/api.h000066400000000000000000000257051441723000300167050ustar00rootroot00000000000000/* libwmf (): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef LIBWMF_API_H #define LIBWMF_API_H #include #include #ifdef __cplusplus extern "C" { #endif /** * Initializes library */ extern wmf_error_t wmf_api_create (wmfAPI**,unsigned long,wmfAPI_Options*); /** * Possibly completes output, and otherwise frees all allocated memory */ extern wmf_error_t wmf_api_destroy (wmfAPI*); /** * Initializes library - 'lite' interface only */ extern wmf_error_t wmf_lite_create (wmfAPI**,unsigned long,wmfAPI_Options*); /** * Possibly completes output, and otherwise frees all allocated memory - 'lite' interface only */ extern wmf_error_t wmf_lite_destroy (wmfAPI*); /** * Reads the header of the current metafile */ extern wmf_error_t wmf_header_read (wmfAPI*); /** * Scans the current metafile to determine bounding box and resources */ extern wmf_error_t wmf_scan (wmfAPI*,unsigned long,wmfD_Rect*); /** * Plays the current metafile, calling exporter graphics procedures */ extern wmf_error_t wmf_play (wmfAPI*,unsigned long,wmfD_Rect*); /** * Supplies a width and height for the current metafile */ extern wmf_error_t wmf_size (wmfAPI*,float*,float*); /** * Supplies a display (integer-) width and height for the current metafile */ extern wmf_error_t wmf_display_size (wmfAPI*,unsigned int*,unsigned int*,double,double); /** * Sets user defines input stream functions for reading a metafile */ extern wmf_error_t wmf_bbuf_input (wmfAPI*,wmfRead,wmfSeek,wmfTell,void*); /** * Opens a file as the current metafile */ extern wmf_error_t wmf_file_open (wmfAPI*,const char*); /** * Closes the file corresponding to the current metafile */ extern wmf_error_t wmf_file_close (wmfAPI*); /** * Specifies an array of unsigned char as the current metafile */ extern wmf_error_t wmf_mem_open (wmfAPI*,unsigned char*,long); /** * Disassociates array corresponding to the current metafile */ extern wmf_error_t wmf_mem_close (wmfAPI*); /* wmf_stream_create: set FILE stream to 0 to write to memory; * wmf_stream_destroy: returns pointer to memory, if not a FILE stream */ /** * Creates compressed character output file stream */ extern wmfStream* wmf_ztream_create (wmfAPI*,gzFile); /** * Creates uncompressed character output file or memory stream */ extern wmfStream* wmf_stream_create (wmfAPI*,FILE*); /** * Finalizes compressed character output file stream */ extern void wmf_ztream_destroy (wmfAPI*,wmfStream*,char**,unsigned long*); /** * Finalizes uncompressed character output file stream */ extern void wmf_stream_destroy (wmfAPI*,wmfStream*,char**,unsigned long*); /** * Formatted print to character output file stream */ extern int wmf_stream_printf (wmfAPI*,wmfStream*,char*,...); /** * malloc() & attach to library's memory manager */ extern void* wmf_malloc (wmfAPI*,size_t); /** * calloc() & attach to library's memory manager */ extern void* wmf_calloc (wmfAPI*,size_t,size_t); /** * realloc() memory attached to library's memory manager */ extern void* wmf_realloc (wmfAPI*,void*,size_t); /** * free() memory attached to library's memory manager */ extern void wmf_free (wmfAPI*,void*); /** * Detach memory from library's memory manager */ extern void wmf_detach (wmfAPI*,void*); /** * strdup() & attach to library's memory manager */ extern char* wmf_strdup (wmfAPI*,const char*); /** * create concatenation of two strings and attach to library's memory manager */ extern char* wmf_str_append (wmfAPI*,char*,char*); /** * strstr() */ extern char* wmf_strstr (const char*,const char*); /** * Increases size of API's string buffer; returns new size or 0 on error */ extern unsigned long wmf_strbuf_grow (wmfAPI*); /** * Initializes the metafile player (called by wmf_api_create()) */ extern wmf_error_t wmf_player_init (wmfAPI*); /** * Returns the Aldus Checksum of the metafile's header */ extern U16 wmf_aldus_checksum (wmfAPI*); /** * Reads a two-byte sequence from the current metafile, returns U16 */ extern U16 wmf_read_16 (wmfAPI*); /** * Reads a four-byte sequence from the current metafile, returns U32 */ extern U32 wmf_read_32 (wmfAPI*,U16*,U16*); /** * file input (wmf_file_open): fgetc() */ extern int wmf_file_read (void*); /** * file input (wmf_file_open): fseek() */ extern int wmf_file_seek (void*,long); /** * file input (wmf_file_open): ftell() */ extern long wmf_file_tell (void*); /** * memory input (wmf_mem_open): fgetc() equiv. */ extern int wmf_mem_read (void*); /** * memory input (wmf_mem_open): fseek() equiv. */ extern int wmf_mem_seek (void*,long); /** * memory input (wmf_mem_open): ftell() equiv. */ extern long wmf_mem_tell (void*); /* default ztream functions; NOT to be used directly! */ /** * compressed char output (wmf_ztream_create): fputs() */ extern int wmf_stream_zputs (char*,void*); /** * compressed char output (wmf_ztream_create): rewind() */ extern int wmf_stream_rezet (void*); /** * uncompressed char output (wmf_stream_create): fputs() */ extern int wmf_stream_sputs (char*,void*); /* default stream functions; NOT to be used directly! */ /** * uncompressed char output (wmf_stream_create): rewind() */ extern int wmf_stream_reset (void*); /** * Writes message to error stream (use WMF_ERROR macro) */ extern void wmf_error (wmfAPI*,char*,int,char*); /** * Writes message to debug stream (use WMF_DEBUG macro) */ extern void wmf_debug (wmfAPI*,char*,int,char*); /** * Formatted print to debug stream */ extern void wmf_printf (wmfAPI*,char*,...); /** * Asserts on zero expression (use WMF_ASSERT macro) */ extern void wmf_assert (wmfAPI*,char*,int); /** * Outputs library-specific command-line options */ extern char* wmf_help (void); /** * Sets drawing origin in device coordinates */ extern void wmf_set_viewport_origin (wmfAPI*,wmfD_Coord); /** * Sets call-back function, called after every metafile record */ extern void wmf_status_function (wmfAPI*,void*,wmfStatus); /** * Writes to --wmf-write file (which may be WMF or home-made wmfxml) */ extern void wmf_write (wmfAPI*,unsigned long,unsigned int,const char*, char**,const unsigned char*,unsigned long); /** * Open --wmf-write file (which may be WMF or home-made wmfxml) */ extern void wmf_write_begin (wmfAPI*,const char*); /** * Close --wmf-write file (which may be WMF or home-made wmfxml) */ extern void wmf_write_end (wmfAPI*); /** * Initialize a wmfAttributes structure */ extern void wmf_attr_new (wmfAPI*,wmfAttributes*); /** * Clear/Empty a wmfAttributes structure */ extern void wmf_attr_clear (wmfAPI*,wmfAttributes*); /** * Free memory associated with a wmfAttributes structure */ extern void wmf_attr_free (wmfAPI*,wmfAttributes*); /** * Add an name&value to a wmfAttributes structure; returns ptr to value-in-list */ extern const char * wmf_attr_add (wmfAPI*,wmfAttributes*,const char*,const char*); /** * Return value of name in a wmfAttributes structure; returns 0 if name not found */ extern const char * wmf_attr_query (wmfAPI*,wmfAttributes*,const char*); /** * Load wmfxml file and wmf_mem_open() it */ extern wmf_error_t wmf_wmfxml_import (wmfAPI*,const char*); #ifdef __cplusplus } #endif /* Useful defs & macros */ /** * @param Z the API handle * @param M string to send to the error stream via wmf_error() */ #define WMF_ERROR(Z,M) wmf_error (Z,__FILE__,__LINE__,M) #ifdef DEBUG #define WMF_DEBUG(Z,M) wmf_debug (Z,__FILE__,__LINE__,M) #define WMF_ASSERT(Z,M) if (!(M)) wmf_assert (Z,__FILE__,__LINE__) #else /** * @param Z the API handle * @param M string to send to the debug stream via wmf_debug() * * (debug build only) */ #define WMF_DEBUG(Z,M) (void)Z /** * @param Z the API handle * @param M an , if zero then call wmf_assert() * * (debug build only) */ #define WMF_ASSERT(Z,M) #endif /* Flags to be passed in wmf_api_create: flags to lie in range (1<<0) to (1<<19) */ /** * Option to wmf_api_create() * * use provided [*]alloc/free functions */ #define WMF_OPT_ALLOC (1<<0) /** * Option to wmf_api_create() * * check provided command line for --wmf-

gd Alpha Channel Test

If your browser fully supports PNG alpha channels, the "blended" and "alpha channel" images should appear identical to the naked eye. Miniscule mathematical differences may exist due to the 7-bit alpha channel resolution of gd.

Palette and truecolor images will look slightly different, as the palette versions are limited to 256 palette entries, which are used as well as possible to approach the effect of the original truecolor version.
Truecolor Images
Blending against light blue, Half Size
Alpha channel, Half Size
Blending against light blue, Full Size
Alpha channel, Full Size
Blending against light blue, Double Size
Alpha channel, Double Size
Palette Images
Blending against light blue, Half Size
Alpha channel, Half Size
Blending against light blue, Full Size
Alpha channel, Full Size
Blending against light blue, Double Size
Alpha channel, Double Size
libwmf-0.2.13/src/extra/gd/arc000066400000000000000000000017071441723000300160500ustar00rootroot00000000000000/* s and e are integers modulo 360 (degrees), with 0 degrees being the rightmost extreme and degrees changing clockwise. cx and cy are the center in pixels; w and h are the horizontal and vertical diameter in pixels. Nice interface, but slow, since I don't yet use Bresenham (I'm using an inefficient but simple solution with too much work going on in it; generalizing Bresenham to ellipses and partial arcs of ellipses is non-trivial, at least for me) and there are other inefficiencies (small circles do far too much work). */ void gdImageArc(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color) { int i; int lx = 0, ly = 0; int w2, h2; w2 = w/2; h2 = h/2; while (e < s) { e += 360; } for (i=s; (i <= e); i++) { int x, y; x = ((long)gdCosT[i % 360] * (long)w2 / 1024) + cx; y = ((long)gdSinT[i % 360] * (long)h2 / 1024) + cy; if (i != s) { gdImageLine(im, lx, ly, x, y, color); } lx = x; ly = y; } } libwmf-0.2.13/src/extra/gd/bdftogd000077500000000000000000000076461441723000300167270ustar00rootroot00000000000000#!/usr/bin/perl -w # # Simple convertor from bdf to gd font format. # # Author: Jan Pazdziora, adelton@fi.muni.cz, http://www.fi.muni.cz/~adelton/ # at Faculty of Informatics, Masaryk University in Brno, Czech Republic. # # Example of use: # fstobdf -s fontserverhost:7100 -fn 8x16 | ./bdftogd FontLarge gdfontl # use strict; my $VERSION = '0.60'; my $now = localtime; if (@ARGV != 2) { die "usage: bdftogd fontname filename, eg. bdftogd FontLarge gdfontl\n"; } my $gdname = shift; $gdname = 'gd' . $gdname unless $gdname =~ /^gd/i; my $filename = shift; $filename = 'gd' . $filename unless $filename =~ /^gd/i; if (-f "$filename.c") { die "File $filename.c already exists, won't overwrite\n"; } if (-f "$filename.h") { die "File $filename.h already exists, won't overwrite\n"; } my ($width, $height); my (@data, @left, @bottom); my ($globalleft, $globaltop); my ($minchar, $maxchar); my ($copyright, $fontdef); my $currentchar; my $gobitmap = 0; while (<>) { chomp; s/\r$//; my ($tag, $value) = split / /, $_, 2; die "Font is not fixed width\n" if $tag eq 'SPACING' and not $value =~ /[CM]/i; $currentchar = $value if $tag eq 'ENCODING'; $minchar = $currentchar if not defined $minchar or $currentchar < $minchar; $maxchar = $currentchar if not defined $maxchar or $currentchar > $maxchar; if ($tag eq 'ENDCHAR') { $gobitmap = 0; my $bottom = $globaltop - $bottom[$currentchar]; if ($bottom > 0) { $data[$currentchar] = substr $data[$currentchar], 0, length($data[$currentchar]) - $bottom * $width; } else { $data[$currentchar] .= '0' x (-$bottom * $width); } } if ($tag eq 'FONTBOUNDINGBOX') { my ($tag, $wid, $hei, $left, $top) = split / /; if (defined $top) { $globalleft = $left; $globaltop = $top; $height = $hei; $width = $wid; } } if ($tag eq 'FONT' and not defined $fontdef) { $fontdef = $value; } if ($tag eq 'COPYRIGHT' and not defined $copyright) { $copyright = $value; } if ($tag eq 'BBX') { my ($tag, $wid, $hei, $left, $bottom) = split / /; if (defined $bottom) { $left[$currentchar] = $left; $bottom[$currentchar] = $bottom; } } if ($gobitmap) { my $value = pack 'H*', $_; my $bits = unpack 'B*', $value; $bits = ('0' x $left[$currentchar]) . $bits; $bits .= '0' x ($width - length $bits); $bits = substr $bits, 0, $width; $data[$currentchar] .= $bits; } if ($tag eq 'BITMAP') { $gobitmap = 1; $data[$currentchar] = ''; } } my $info = <<"EOF"; /* This is a header file for gd font, generated using bdftogd version $VERSION by Jan Pazdziora, adelton\@fi.muni.cz from bdf font $fontdef at $now. EOF if (defined $copyright) { $info .= <<"EOF"; The original bdf was holding following copyright: $copyright */ EOF } else { $info .= <<"EOF"; No copyright info was found in the original bdf. */ EOF } open FILEC, "> $filename.c" or die "Error writing $filename.c: $!\n"; open FILEH, "> $filename.h" or die "Error writing $filename.h: $!\n"; print FILEC <<"EOF"; $info #include "$filename.h" char ${gdname}Data[] = { EOF $minchar = 0 unless defined $minchar; $maxchar = 255 unless defined $maxchar; for (my $i = $minchar; $i <= $maxchar; $i++) { $data[$i] = '' unless defined $data[$i]; $data[$i] = '0' x ($width * $height - length $data[$i]) . $data[$i]; print FILEC "/* Char $i */\n"; for my $line (0 .. $height - 1) { print FILEC join ',', split(//, substr($data[$i], $line * $width, $width)), "\n"; } print FILEC "\n"; next; for my $line (0 .. $height - 1) { print substr($data[$i], $line * $width, $width), "\n"; } } my $capdef = "\U_${filename}_H_"; print FILEC <<"EOF"; }; gdFont ${gdname}Rep = { @{[ $maxchar - $minchar + 1]}, $minchar, $width, $height, ${gdname}Data }; gdFontPtr ${gdname} = &${gdname}Rep; /* This file has not been truncated. */ EOF close FILEC; print FILEH <<"EOF"; #ifndef $capdef #define $capdef 1 $info #include "gd.h" extern gdFontPtr $gdname; #endif EOF 1; libwmf-0.2.13/src/extra/gd/bresenham_ellipse000066400000000000000000000042701441723000300207620ustar00rootroot00000000000000void gdImageEllipse (gdImagePtr im, int cx, int cy, int w, int h, int color) { long d, b_sq, b_sq_4, b_sq_6; long a_sq, a_sq_4, a_sq_6; int x, y, switchem; long lsqrt (long); int pix, half, pstart; int thick = im->thick; half = thick / 2; w /= 2; /* ImageArc uses diameter, not radius */ h /= 2; d = 2 * (long) h *h + (long) w *w - 2 * (long) w *w * h; b_sq = (long) h *h; b_sq_4 = 4 * (long) h *h; b_sq_6 = 6 * (long) h *h; a_sq = (long) w *w; a_sq_4 = 4 * (long) w *w; a_sq_6 = 6 * (long) w *w; x = 0; y = -h; switchem = a_sq / lsqrt (a_sq + b_sq); while (x <= switchem) { pstart = y - half; for (pix = pstart; pix < pstart + thick; pix++) { gdImageSetPixel (im, cx + x, cy + pix, color); gdImageSetPixel (im, cx - x, cy + pix, color); gdImageSetPixel (im, cx + x, cy - pix, color); gdImageSetPixel (im, cx - x, cy - pix, color); } if (d < 0) d += b_sq_4 * x++ + b_sq_6; else d += b_sq_4 * x++ + b_sq_6 + a_sq_4 * (++y); } /* Middlesplat! ** Go a little further if the thickness is not nominal... */ if (thick > 1) { int xp = x; int yp = y; int dp = d; int thick2 = thick + 2; int half2 = half + 1; while (xp <= switchem + half) { pstart = yp - half2; for (pix = pstart; pix < pstart + thick2; pix++) { gdImageSetPixel (im, cx + xp, cy + pix, color); gdImageSetPixel (im, cx - xp, cy + pix, color); gdImageSetPixel (im, cx + xp, cy - pix, color); gdImageSetPixel (im, cx - xp, cy - pix, color); } if (dp < 0) dp += b_sq_4 * xp++ + b_sq_6; else dp += b_sq_4 * xp++ + b_sq_6 + a_sq_4 * (++yp); } } d += -2 * (long) b_sq + 2 * (long) a_sq - 2 * (long) b_sq *(x - 1) + 2 * (long) a_sq *(y - 1); while (y <= 0) { pstart = x - half; for (pix = pstart; pix < pstart + thick; pix++) { gdImageSetPixel (im, cx + pix, cy + y, color); gdImageSetPixel (im, cx - pix, cy + y, color); gdImageSetPixel (im, cx + pix, cy - y, color); gdImageSetPixel (im, cx - pix, cy - y, color); } if (d < 0) d += a_sq_4 * y++ + a_sq_6 + b_sq_4 * (++x); else d += a_sq_4 * y++ + a_sq_6; } } libwmf-0.2.13/src/extra/gd/errs000066400000000000000000000002761441723000300162560ustar00rootroot00000000000000gcc -I. -I/usr/include/freetype2 -I/usr/include/X11 -I/usr/X11R6/include/X11 -I/usr/local/include -O -DHAVE_LIBXPM -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBFREETYPE -c gd_gd2.c -o gd_gd2.o libwmf-0.2.13/src/extra/gd/gd.c000066400000000000000000001464431441723000300161250ustar00rootroot00000000000000#include #include #include #include #include #include "gd.h" #include "gdhelpers.h" #ifdef _OSD_POSIX /* BS2000 uses the EBCDIC char set instead of ASCII */ #define CHARSET_EBCDIC #define __attribute__(any) /*nothing */ #endif /*_OSD_POSIX*/ #ifndef CHARSET_EBCDIC #define ASC(ch) ch #else /*CHARSET_EBCDIC */ #define ASC(ch) gd_toascii[(unsigned char)ch] static const unsigned char gd_toascii[256] = { /*00 */ 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f, 0x87, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /*................ */ /*10 */ 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97, 0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /*................ */ /*20 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /*................ */ /*30 */ 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /*................ */ /*40 */ 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, 0xe7, 0xf1, 0x60, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* .........`.<(+| */ /*50 */ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x9f, /*&.........!$*);. */ /*60 */ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, 0xc7, 0xd1, 0x5e, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*-/........^,%_>?*/ /*70 */ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, 0xcc, 0xa8, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*..........:#@'=" */ /*80 */ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /*.abcdefghi...... */ /*90 */ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /*.jklmnopqr...... */ /*a0 */ 0xb5, 0xaf, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /*..stuvwxyz...... */ /*b0 */ 0xa2, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, 0xbd, 0xbe, 0xac, 0x5b, 0x5c, 0x5d, 0xb4, 0xd7, /*...........[\].. */ /*c0 */ 0xf9, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /*.ABCDEFGHI...... */ /*d0 */ 0xa6, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xdb, 0xfa, 0xff, /*.JKLMNOPQR...... */ /*e0 */ 0xd9, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /*..STUVWXYZ...... */ /*f0 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xb3, 0x7b, 0xdc, 0x7d, 0xda, 0x7e /*0123456789.{.}.~ */ }; #endif /*CHARSET_EBCDIC */ extern int gdCosT[]; extern int gdSinT[]; static void gdImageBrushApply (gdImagePtr im, int x, int y); static void gdImageTileApply (gdImagePtr im, int x, int y); gdImagePtr gdImageCreate (int sx, int sy) { int i; gdImagePtr im; if (overflow2(sx, sy)) { return NULL; } if (overflow2(sizeof (unsigned char *), sy)) { return NULL; } if (overflow2(sizeof (unsigned char), sx)) { return NULL; } im = (gdImage *) gdMalloc (sizeof (gdImage)); memset (im, 0, sizeof (gdImage)); /* Row-major ever since gd 1.3 */ im->pixels = (unsigned char **) gdMalloc (sizeof (unsigned char *) * sy); im->polyInts = 0; im->polyAllocated = 0; im->brush = 0; im->tile = 0; im->style = 0; for (i = 0; (i < sy); i++) { /* Row-major ever since gd 1.3 */ im->pixels[i] = (unsigned char *) gdCalloc ( sx, sizeof (unsigned char)); } im->sx = sx; im->sy = sy; im->colorsTotal = 0; im->transparent = (-1); im->interlace = 0; im->thick = 1; for (i = 0; (i < gdMaxColors); i++) { im->open[i] = 1; im->red[i] = 0; im->green[i] = 0; im->blue[i] = 0; }; im->trueColor = 0; im->tpixels = 0; im->clip = 0; return im; } gdImagePtr gdImageCreateTrueColor (int sx, int sy) { int i; gdImagePtr im; unsigned long cpa_size; if (overflow2(sx, sy)) { return NULL; } if (overflow2(sizeof (int *), sy)) { return NULL; } if (overflow2(sizeof(int), sx)) { return NULL; } im = (gdImage *) gdMalloc (sizeof (gdImage)); if (im == 0) return 0; memset (im, 0, sizeof (gdImage)); cpa_size = sizeof (int) * (unsigned long) sx * (unsigned long) sy; im->_tpixels = (int *) gdMalloc (cpa_size); if (im->_tpixels == 0) { gdFree (im); return 0; } memset (im->_tpixels, 0, cpa_size); im->tpixels = (int **) gdMalloc (sizeof (int *) * sy); if (im->tpixels == 0) { gdFree (im->_tpixels); gdFree (im); return 0; } for (i = 0; i < sy; i++) im->tpixels[i] = im->_tpixels + (i * sx); im->polyInts = 0; im->polyAllocated = 0; im->brush = 0; im->tile = 0; im->style = 0; im->sx = sx; im->sy = sy; im->transparent = (-1); im->interlace = 0; im->trueColor = 1; im->saveAlphaFlag = 1; im->alphaBlendingFlag = 0; im->thick = 1; im->clip = 0; return im; } void gdImageDestroy (gdImagePtr im) { int i; if (im->pixels) { for (i = 0; (i < im->sy); i++) { gdFree (im->pixels[i]); } gdFree (im->pixels); } if (im->tpixels) { gdFree (im->_tpixels); gdFree (im->tpixels); } if (im->polyInts) { gdFree (im->polyInts); } if (im->style) { gdFree (im->style); } if (im->clip) { gdClipSetFree (im); } gdFree (im); } int gdImageColorClosest (gdImagePtr im, int r, int g, int b) { return gdImageColorClosestAlpha (im, r, g, b, gdAlphaOpaque); } int gdImageColorClosestAlpha (gdImagePtr im, int r, int g, int b, int a) { int i; long rd, gd, bd, ad; int ct = (-1); int first = 1; long mindist = 0; if (im->trueColor) { return gdTrueColorAlpha (r, g, b, a); } for (i = 0; (i < (im->colorsTotal)); i++) { long dist; if (im->open[i]) { continue; } rd = (im->red[i] - r); gd = (im->green[i] - g); bd = (im->blue[i] - b); ad = (im->blue[i] - b); dist = rd * rd + gd * gd + bd * bd + ad * ad; if (first || (dist < mindist)) { mindist = dist; ct = i; first = 0; } } return ct; } /* This code is taken from http://www.acm.org/jgt/papers/SmithLyons96/hwb_rgb.html, an article * on colour conversion to/from RBG and HWB colour systems. * It has been modified to return the converted value as a * parameter. */ #define RETURN_HWB(h, w, b) {HWB->H = h; HWB->W = w; HWB->B = b; return HWB;} #define RETURN_RGB(r, g, b) {RGB->R = r; RGB->G = g; RGB->B = b; return RGB;} #define HWB_UNDEFINED -1 #define SETUP_RGB(s, r, g, b) {s.R = r/255.0; s.G = g/255.0; s.B = b/255.0;} #define MIN(a,b) ((a)<(b)?(a):(b)) #define MIN3(a,b,c) ((a)<(b)?(MIN(a,c)):(MIN(b,c))) #define MAX(a,b) ((a)<(b)?(b):(a)) #define MAX3(a,b,c) ((a)<(b)?(MAX(b,c)):(MAX(a,c))) /* * Theoretically, hue 0 (pure red) is identical to hue 6 in these transforms. Pure * red always maps to 6 in this implementation. Therefore UNDEFINED can be * defined as 0 in situations where only unsigned numbers are desired. */ typedef struct { float R, G, B; } RGBType; typedef struct { float H, W, B; } HWBType; #if 0 static HWBType * RGB_to_HWB (RGBType RGB, HWBType * HWB) { /* * RGB are each on [0, 1]. W and B are returned on [0, 1] and H is * returned on [0, 6]. Exception: H is returned UNDEFINED if W == 1 - B. */ float R = RGB.R, G = RGB.G, B = RGB.B, w, v, b, f; int i; w = MIN3 (R, G, B); v = MAX3 (R, G, B); b = 1 - v; if (v == w) RETURN_HWB (HWB_UNDEFINED, w, b); f = (R == w) ? G - B : ((G == w) ? B - R : R - G); i = (R == w) ? 3 : ((G == w) ? 5 : 1); RETURN_HWB (i - f / (v - w), w, b); } static float HWB_Diff (int r1, int g1, int b1, int r2, int g2, int b2) { RGBType RGB1, RGB2; HWBType HWB1, HWB2; float diff; SETUP_RGB (RGB1, r1, g1, b1); SETUP_RGB (RGB2, r2, g2, b2); RGB_to_HWB (RGB1, &HWB1); RGB_to_HWB (RGB2, &HWB2); /* * I made this bit up; it seems to produce OK results, and it is certainly * more visually correct than the current RGB metric. (PJW) */ if ((HWB1.H == HWB_UNDEFINED) || (HWB2.H == HWB_UNDEFINED)) { diff = 0; /* Undefined hues always match... */ } else { diff = abs (HWB1.H - HWB2.H); if (diff > 3) { diff = 6 - diff; /* Remember, it's a colour circle */ } } diff = diff * diff + (HWB1.W - HWB2.W) * (HWB1.W - HWB2.W) + (HWB1.B - HWB2.B) * (HWB1.B - HWB2.B); return diff; } /* * This is not actually used, but is here for completeness, in case someone wants to * use the HWB stuff for anything else... */ static RGBType * HWB_to_RGB (HWBType HWB, RGBType * RGB) { /* * H is given on [0, 6] or UNDEFINED. W and B are given on [0, 1]. * RGB are each returned on [0, 1]. */ float h = HWB.H, w = HWB.W, b = HWB.B, v, n, f; int i; v = 1 - b; if (h == HWB_UNDEFINED) RETURN_RGB (v, v, v); i = floor (h); f = h - i; if (i & 1) f = 1 - f; /* if i is odd */ n = w + f * (v - w); /* linear interpolation between w and v */ switch (i) { case 6: case 0: RETURN_RGB (v, n, w); case 1: RETURN_RGB (n, v, w); case 2: RETURN_RGB (w, v, n); case 3: RETURN_RGB (w, n, v); case 4: RETURN_RGB (n, w, v); case 5: RETURN_RGB (v, w, n); } return RGB; } #endif #if 0 int gdImageColorClosestHWB (gdImagePtr im, int r, int g, int b) { int i; /* long rd, gd, bd; */ int ct = (-1); int first = 1; float mindist = 0; if (im->trueColor) { return gdTrueColor (r, g, b); } for (i = 0; (i < (im->colorsTotal)); i++) { float dist; if (im->open[i]) { continue; } dist = HWB_Diff (im->red[i], im->green[i], im->blue[i], r, g, b); if (first || (dist < mindist)) { mindist = dist; ct = i; first = 0; } } return ct; } #endif int gdImageColorExact (gdImagePtr im, int r, int g, int b) { return gdImageColorExactAlpha (im, r, g, b, gdAlphaOpaque); } int gdImageColorExactAlpha (gdImagePtr im, int r, int g, int b, int a) { int i; if (im->trueColor) { return gdTrueColorAlpha (r, g, b, a); } for (i = 0; (i < (im->colorsTotal)); i++) { if (im->open[i]) { continue; } if ((im->red[i] == r) && (im->green[i] == g) && (im->blue[i] == b) && (im->alpha[i] == a)) { return i; } } return -1; } int gdImageColorAllocate (gdImagePtr im, int r, int g, int b) { return gdImageColorAllocateAlpha (im, r, g, b, gdAlphaOpaque); } int gdImageColorAllocateAlpha (gdImagePtr im, int r, int g, int b, int a) { int i; int ct = (-1); if (im->trueColor) { return gdTrueColorAlpha (r, g, b, a); } for (i = 0; (i < (im->colorsTotal)); i++) { if (im->open[i]) { ct = i; break; } } if (ct == (-1)) { ct = im->colorsTotal; if (ct == gdMaxColors) { return -1; } im->colorsTotal++; } im->red[ct] = r; im->green[ct] = g; im->blue[ct] = b; im->alpha[ct] = a; im->open[ct] = 0; return ct; } /* * gdImageColorResolve is an alternative for the code fragment: * * if ((color=gdImageColorExact(im,R,G,B)) < 0) * if ((color=gdImageColorAllocate(im,R,G,B)) < 0) * color=gdImageColorClosest(im,R,G,B); * * in a single function. Its advantage is that it is guaranteed to * return a color index in one search over the color table. */ int gdImageColorResolve (gdImagePtr im, int r, int g, int b) { return gdImageColorResolveAlpha (im, r, g, b, gdAlphaOpaque); } int gdImageColorResolveAlpha (gdImagePtr im, int r, int g, int b, int a) { int c; int ct = -1; int op = -1; long rd, gd, bd, ad, dist; long mindist = 4 * 255 * 255; /* init to max poss dist */ if (im->trueColor) { return gdTrueColorAlpha (r, g, b, a); } for (c = 0; c < im->colorsTotal; c++) { if (im->open[c]) { op = c; /* Save open slot */ continue; /* Color not in use */ } rd = (long) (im->red[c] - r); gd = (long) (im->green[c] - g); bd = (long) (im->blue[c] - b); ad = (long) (im->alpha[c] - a); dist = rd * rd + gd * gd + bd * bd + ad * ad; if (dist < mindist) { if (dist == 0) { return c; /* Return exact match color */ } mindist = dist; ct = c; } } /* no exact match. We now know closest, but first try to allocate exact */ if (op == -1) { op = im->colorsTotal; if (op == gdMaxColors) { /* No room for more colors */ return ct; /* Return closest available color */ } im->colorsTotal++; } im->red[op] = r; im->green[op] = g; im->blue[op] = b; im->alpha[op] = a; im->open[op] = 0; return op; /* Return newly allocated color */ } void gdImageColorDeallocate (gdImagePtr im, int color) { if (im->trueColor) { return; } /* Mark it open. */ im->open[color] = 1; } void gdImageColorTransparent (gdImagePtr im, int color) { if (!im->trueColor) { if (im->transparent != -1) { im->alpha[im->transparent] = gdAlphaOpaque; } if (color != -1) { im->alpha[color] = gdAlphaTransparent; } } im->transparent = color; } void gdImagePaletteCopy (gdImagePtr to, gdImagePtr from) { int i; int x, y, p; int xlate[256]; if (to->trueColor) { return; } if (from->trueColor) { return; } for (i = 0; i < 256; i++) { xlate[i] = -1; }; for (x = 0; x < (to->sx); x++) { for (y = 0; y < (to->sy); y++) { p = gdImageGetPixel (to, x, y); if (xlate[p] == -1) { /* This ought to use HWB, but we don't have an alpha-aware version of that yet. */ xlate[p] = gdImageColorClosestAlpha (from, to->red[p], to->green[p], to->blue[p], to->alpha[p]); /*printf("Mapping %d (%d, %d, %d, %d) to %d (%d, %d, %d, %d)\n", */ /* p, to->red[p], to->green[p], to->blue[p], to->alpha[p], */ /* xlate[p], from->red[xlate[p]], from->green[xlate[p]], from->blue[xlate[p]], from->alpha[xlate[p]]); */ }; gdImageSetPixel (to, x, y, xlate[p]); }; }; for (i = 0; (i < (from->colorsTotal)); i++) { /*printf("Copying color %d (%d, %d, %d, %d)\n", i, from->red[i], from->blue[i], from->green[i], from->alpha[i]); */ to->red[i] = from->red[i]; to->blue[i] = from->blue[i]; to->green[i] = from->green[i]; to->alpha[i] = from->alpha[i]; to->open[i] = 0; }; for (i = from->colorsTotal; (i < to->colorsTotal); i++) { to->open[i] = 1; }; to->colorsTotal = from->colorsTotal; } void gdImageSetPixel (gdImagePtr im, int x, int y, int color) { int p; switch (color) { case gdStyled: if (!im->style) { /* Refuse to draw if no style is set. */ return; } else { p = im->style[im->stylePos++]; } if (p != (gdTransparent)) { gdImageSetPixel (im, x, y, p); } im->stylePos = im->stylePos % im->styleLength; break; case gdStyledBrushed: if (!im->style) { /* Refuse to draw if no style is set. */ return; } p = im->style[im->stylePos++]; if ((p != gdTransparent) && (p != 0)) { gdImageSetPixel (im, x, y, gdBrushed); } im->stylePos = im->stylePos % im->styleLength; break; case gdBrushed: gdImageBrushApply (im, x, y); break; case gdTiled: gdImageTileApply (im, x, y); break; default: if (gdImageBoundsSafe (im, x, y)) { if (im->trueColor) { if (im->alphaBlendingFlag) { im->tpixels[y][x] = gdAlphaBlend (im->tpixels[y][x], color); } else { im->tpixels[y][x] = color; } } else { im->pixels[y][x] = color; } } break; } } static int gdImageGetTrueColorPixel (gdImagePtr im, int x, int y) { int p = gdImageGetPixel (im, x, y); if (!im->trueColor) { return gdTrueColorAlpha (im->red[p], im->green[p], im->blue[p], (im->transparent == p) ? gdAlphaTransparent : gdAlphaOpaque); } else { return p; } } static void gdImageBrushApply (gdImagePtr im, int x, int y) { int lx, ly; int hy; int hx; int x1, y1, x2, y2; int srcx, srcy; if (!im->brush) { return; } hy = gdImageSY (im->brush) / 2; y1 = y - hy; y2 = y1 + gdImageSY (im->brush); hx = gdImageSX (im->brush) / 2; x1 = x - hx; x2 = x1 + gdImageSX (im->brush); srcy = 0; if (im->trueColor) { for (ly = y1; (ly < y2); ly++) { srcx = 0; for (lx = x1; (lx < x2); lx++) { int p; p = gdImageGetTrueColorPixel ( im->brush, srcx, srcy); gdImageSetPixel (im, lx, ly, p); srcx++; } srcy++; } } else { for (ly = y1; (ly < y2); ly++) { srcx = 0; for (lx = x1; (lx < x2); lx++) { int p; p = gdImageGetPixel (im->brush, srcx, srcy); /* Allow for non-square brushes! */ if (p != gdImageGetTransparent (im->brush)) { /* Truecolor brush. Very slow on a palette destination. */ if (im->brush->trueColor) { gdImageSetPixel (im, lx, ly, gdImageColorResolveAlpha ( im, gdTrueColorGetRed (p), gdTrueColorGetGreen (p), gdTrueColorGetBlue (p), gdTrueColorGetAlpha (p))); } else { gdImageSetPixel (im, lx, ly, im->brushColorMap[p]); } } srcx++; } srcy++; } } } static void gdImageTileApply (gdImagePtr im, int x, int y) { int srcx, srcy; int p=0; if (!im->tile) { return; } srcx = x % gdImageSX (im->tile); srcy = y % gdImageSY (im->tile); if (im->trueColor) { p = gdImageGetTrueColorPixel (im->tile, srcx, srcy); gdImageSetPixel (im, x, y, p); } else { /* Allow for transparency */ if (p != gdImageGetTransparent (im->tile)) { if (im->tile->trueColor) { /* Truecolor tile. Very slow on a palette destination. */ gdImageSetPixel (im, x, y, gdImageColorResolveAlpha ( im, gdTrueColorGetRed (p), gdTrueColorGetGreen (p), gdTrueColorGetBlue (p), gdTrueColorGetAlpha (p))); } else { gdImageSetPixel (im, x, y, im->tileColorMap[p]); } } } } int gdImageGetPixel (gdImagePtr im, int x, int y) { if (gdImageBoundsSafe (im, x, y)) { if (im->trueColor) { return im->tpixels[y][x]; } else { return im->pixels[y][x]; } } else { return 0; } } /* Bresenham as presented in Foley & Van Dam */ void gdImageLine (gdImagePtr im, int x1, int y1, int x2, int y2, int color) { int dx, dy, incr1, incr2, d, x, y, xend, yend, xdirflag, ydirflag; int wid; int w, wstart; int thick = im->thick; dx = abs (x2 - x1); dy = abs (y2 - y1); if (dy <= dx) { /* More-or-less horizontal. use wid for vertical stroke */ wid = thick * cos (atan2 (dy, dx)); if (wid == 0) wid = 1; d = 2 * dy - dx; incr1 = 2 * dy; incr2 = 2 * (dy - dx); if (x1 > x2) { x = x2; y = y2; ydirflag = (-1); xend = x1; } else { x = x1; y = y1; ydirflag = 1; xend = x2; } /* Set up line thickness */ wstart = y - wid / 2; for (w = wstart; w < wstart + wid; w++) gdImageSetPixel (im, x, w, color); if (((y2 - y1) * ydirflag) > 0) { while (x < xend) { x++; if (d < 0) { d += incr1; } else { y++; d += incr2; } wstart = y - wid / 2; for (w = wstart; w < wstart + wid; w++) gdImageSetPixel (im, x, w, color); } } else { while (x < xend) { x++; if (d < 0) { d += incr1; } else { y--; d += incr2; } wstart = y - wid / 2; for (w = wstart; w < wstart + wid; w++) gdImageSetPixel (im, x, w, color); } } } else { /* More-or-less vertical. use wid for horizontal stroke */ wid = thick * sin (atan2 (dy, dx)); if (wid == 0) wid = 1; d = 2 * dx - dy; incr1 = 2 * dx; incr2 = 2 * (dx - dy); if (y1 > y2) { y = y2; x = x2; yend = y1; xdirflag = (-1); } else { y = y1; x = x1; yend = y2; xdirflag = 1; } /* Set up line thickness */ wstart = x - wid / 2; for (w = wstart; w < wstart + wid; w++) gdImageSetPixel (im, w, y, color); if (((x2 - x1) * xdirflag) > 0) { while (y < yend) { y++; if (d < 0) { d += incr1; } else { x++; d += incr2; } wstart = x - wid / 2; for (w = wstart; w < wstart + wid; w++) gdImageSetPixel (im, w, y, color); } } else { while (y < yend) { y++; if (d < 0) { d += incr1; } else { x--; d += incr2; } wstart = x - wid / 2; for (w = wstart; w < wstart + wid; w++) gdImageSetPixel (im, w, y, color); } } } } static void dashedSet (gdImagePtr im, int x, int y, int color, int *onP, int *dashStepP, int wid, int vert); void gdImageDashedLine (gdImagePtr im, int x1, int y1, int x2, int y2, int color) { int dx, dy, incr1, incr2, d, x, y, xend, yend, xdirflag, ydirflag; int dashStep = 0; int on = 1; int wid; int vert; int thick = im->thick; dx = abs (x2 - x1); dy = abs (y2 - y1); if (dy <= dx) { /* More-or-less horizontal. use wid for vertical stroke */ wid = thick * sin (atan2 (dy, dx)); vert = 1; d = 2 * dy - dx; incr1 = 2 * dy; incr2 = 2 * (dy - dx); if (x1 > x2) { x = x2; y = y2; ydirflag = (-1); xend = x1; } else { x = x1; y = y1; ydirflag = 1; xend = x2; } dashedSet (im, x, y, color, &on, &dashStep, wid, vert); if (((y2 - y1) * ydirflag) > 0) { while (x < xend) { x++; if (d < 0) { d += incr1; } else { y++; d += incr2; } dashedSet (im, x, y, color, &on, &dashStep, wid, vert); } } else { while (x < xend) { x++; if (d < 0) { d += incr1; } else { y--; d += incr2; } dashedSet (im, x, y, color, &on, &dashStep, wid, vert); } } } else { /* More-or-less vertical. use wid for horizontal stroke */ wid = thick * sin (atan2 (dy, dx)); vert = 0; d = 2 * dx - dy; incr1 = 2 * dx; incr2 = 2 * (dx - dy); if (y1 > y2) { y = y2; x = x2; yend = y1; xdirflag = (-1); } else { y = y1; x = x1; yend = y2; xdirflag = 1; } dashedSet (im, x, y, color, &on, &dashStep, wid, vert); if (((x2 - x1) * xdirflag) > 0) { while (y < yend) { y++; if (d < 0) { d += incr1; } else { x++; d += incr2; } dashedSet (im, x, y, color, &on, &dashStep, wid, vert); } } else { while (y < yend) { y++; if (d < 0) { d += incr1; } else { x--; d += incr2; } dashedSet (im, x, y, color, &on, &dashStep, wid, vert); } } } } static void dashedSet (gdImagePtr im, int x, int y, int color, int *onP, int *dashStepP, int wid, int vert) { int dashStep = *dashStepP; int on = *onP; int w, wstart; dashStep++; if (dashStep == gdDashSize) { dashStep = 0; on = !on; } if (on) { if (vert) { wstart = y - wid / 2; for (w = wstart; w < wstart + wid; w++) gdImageSetPixel (im, x, w, color); } else { wstart = x - wid / 2; for (w = wstart; w < wstart + wid; w++) gdImageSetPixel (im, w, y, color); } } *dashStepP = dashStep; *onP = on; } #ifdef ORIGINAL_BOUNDS_SAFE int gdImageBoundsSafe (gdImagePtr im, int x, int y) { return (!(((y < 0) || (y >= im->sy)) || ((x < 0) || (x >= im->sx)))); } #endif /* ORIGINAL_BOUNDS_SAFE */ void gdImageChar (gdImagePtr im, gdFontPtr f, int x, int y, int c, int color) { int cx, cy; int px, py; int fline; cx = 0; cy = 0; #ifdef CHARSET_EBCDIC c = ASC (c); #endif /*CHARSET_EBCDIC */ if ((c < f->offset) || (c >= (f->offset + f->nchars))) { return; } fline = (c - f->offset) * f->h * f->w; for (py = y; (py < (y + f->h)); py++) { for (px = x; (px < (x + f->w)); px++) { if (f->data[fline + cy * f->w + cx]) { gdImageSetPixel (im, px, py, color); } cx++; } cx = 0; cy++; } } void gdImageCharUp (gdImagePtr im, gdFontPtr f, int x, int y, int c, int color) { int cx, cy; int px, py; int fline; cx = 0; cy = 0; #ifdef CHARSET_EBCDIC c = ASC (c); #endif /*CHARSET_EBCDIC */ if ((c < f->offset) || (c >= (f->offset + f->nchars))) { return; } fline = (c - f->offset) * f->h * f->w; for (py = y; (py > (y - f->w)); py--) { for (px = x; (px < (x + f->h)); px++) { if (f->data[fline + cy * f->w + cx]) { gdImageSetPixel (im, px, py, color); } cy++; } cy = 0; cx++; } } void gdImageString (gdImagePtr im, gdFontPtr f, int x, int y, unsigned char *s, int color) { int i; int l; l = strlen ((char *) s); for (i = 0; (i < l); i++) { gdImageChar (im, f, x, y, s[i], color); x += f->w; } } void gdImageStringUp (gdImagePtr im, gdFontPtr f, int x, int y, unsigned char *s, int color) { int i; int l; l = strlen ((char *) s); for (i = 0; (i < l); i++) { gdImageCharUp (im, f, x, y, s[i], color); y -= f->w; } } static int strlen16 (unsigned short *s); void gdImageString16 (gdImagePtr im, gdFontPtr f, int x, int y, unsigned short *s, int color) { int i; int l; l = strlen16 (s); for (i = 0; (i < l); i++) { gdImageChar (im, f, x, y, s[i], color); x += f->w; } } void gdImageStringUp16 (gdImagePtr im, gdFontPtr f, int x, int y, unsigned short *s, int color) { int i; int l; l = strlen16 (s); for (i = 0; (i < l); i++) { gdImageCharUp (im, f, x, y, s[i], color); y -= f->w; } } static int strlen16 (unsigned short *s) { int len = 0; while (*s) { s++; len++; } return len; } #if 0 /* If you don't have a nice square root function for longs, you can use ** this hack */ static long lsqrt (long n) { long result = (long) sqrt ((double) n); return result; } #endif /* s and e are integers modulo 360 (degrees), with 0 degrees being the rightmost extreme and degrees changing clockwise. cx and cy are the center in pixels; w and h are the horizontal and vertical diameter in pixels. Nice interface, but slow. See gd_arc_f_buggy.c for a better version that doesn't seem to be bug-free yet. */ void gdImageArc (gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color) { gdImageFilledArc (im, cx, cy, w, h, s, e, color, gdNoFill); } void gdImageFilledArc (gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color, int style) { gdPoint pts[3]; int i; int lx = 0, ly = 0; int fx=0, fy=0; int w2, h2; w2 = w / 2; h2 = h / 2; if ((s % 360) == (e % 360)) { s = 0; e = 360; } else { if (s > 360) { s = s % 360; } if (e > 360) { e = e % 360; } while (s < 0) { s += 360; } while (e < s) { e += 360; } if (s == e) { s = 0; e = 360; } } for (i = s; (i <= e); i++) { int x, y; x = ((long) gdCosT[i % 360] * (long) w2 / 1024) + cx; y = ((long) gdSinT[i % 360] * (long) h2 / 1024) + cy; if (i != s) { if (!(style & gdChord)) { if (style & gdNoFill) { gdImageLine (im, lx, ly, x, y, color); } else { /* This is expensive! */ pts[0].x = lx; pts[0].y = ly; pts[1].x = x; pts[1].y = y; pts[2].x = cx; pts[2].y = cy; gdImageFilledPolygon (im, pts, 3, color); } } } else { fx = x; fy = y; } lx = x; ly = y; } if (style & gdChord) { if (style & gdNoFill) { if (style & gdEdged) { gdImageLine (im, cx, cy, lx, ly, color); gdImageLine (im, cx, cy, fx, fy, color); } gdImageLine (im, fx, fy, lx, ly, color); } else { pts[0].x = fx; pts[0].y = fy; pts[1].x = lx; pts[1].y = ly; pts[2].x = cx; pts[2].y = cy; gdImageFilledPolygon (im, pts, 3, color); } } else { if (style & gdNoFill) { if (style & gdEdged) { gdImageLine (im, cx, cy, lx, ly, color); gdImageLine (im, cx, cy, fx, fy, color); } } } } void gdImageFilledEllipse (gdImagePtr im, int cx, int cy, int w, int h, int color) { gdImageFilledArc (im, cx, cy, w, h, 0, 360, color, gdPie); } void gdImageFillToBorder (gdImagePtr im, int x, int y, int border, int color) { int lastBorder; /* Seek left */ int leftLimit, rightLimit; int i; if (!gdImageBoundsSafe (im, x, y)) return; leftLimit = (-1); if (border < 0) { /* Refuse to fill to a non-solid border */ return; } for (i = x; (i >= 0); i--) { if (gdImageGetPixel (im, i, y) == border) { break; } gdImageSetPixel (im, i, y, color); leftLimit = i; } if (leftLimit == (-1)) { return; } /* Seek right */ rightLimit = x; for (i = (x + 1); (i < im->sx); i++) { if (gdImageGetPixel (im, i, y) == border) { break; } gdImageSetPixel (im, i, y, color); rightLimit = i; } /* Look at lines above and below and start paints */ /* Above */ if (y > 0) { lastBorder = 1; for (i = leftLimit; (i <= rightLimit); i++) { int c; c = gdImageGetPixel (im, i, y - 1); if (lastBorder) { if ((c != border) && (c != color)) { gdImageFillToBorder (im, i, y - 1, border, color); lastBorder = 0; } } else if ((c == border) || (c == color)) { lastBorder = 1; } } } /* Below */ if (y < ((im->sy) - 1)) { lastBorder = 1; for (i = leftLimit; (i <= rightLimit); i++) { int c; c = gdImageGetPixel (im, i, y + 1); if (lastBorder) { if ((c != border) && (c != color)) { gdImageFillToBorder (im, i, y + 1, border, color); lastBorder = 0; } } else if ((c == border) || (c == color)) { lastBorder = 1; } } } } void gdImageFill (gdImagePtr im, int x, int y, int color) { int lastBorder; int old; int leftLimit, rightLimit; int i; if (!gdImageBoundsSafe (im, x, y)) return; old = gdImageGetPixel (im, x, y); if (color == gdTiled) { /* Tile fill -- got to watch out! */ int p, tileColor; int srcx, srcy; if (!im->tile) { return; } /* Refuse to flood-fill with a transparent pattern -- I can't do it without allocating another image */ if (gdImageGetTransparent (im->tile) != (-1)) { return; } srcx = x % gdImageSX (im->tile); srcy = y % gdImageSY (im->tile); p = gdImageGetPixel (im->tile, srcx, srcy); if (im->trueColor) { tileColor = p; } else { if (im->tile->trueColor) { tileColor = gdImageColorResolveAlpha (im, gdTrueColorGetRed (p), gdTrueColorGetGreen (p), gdTrueColorGetBlue (p), gdTrueColorGetAlpha (p)); } else { tileColor = im->tileColorMap[p]; } } if (old == tileColor) { /* Nothing to be done */ return; } } else { if (old == color) { /* Nothing to be done */ return; } } /* Seek left */ leftLimit = (-1); for (i = x; (i >= 0); i--) { if (gdImageGetPixel (im, i, y) != old) { break; } gdImageSetPixel (im, i, y, color); leftLimit = i; } if (leftLimit == (-1)) { return; } /* Seek right */ rightLimit = x; for (i = (x + 1); (i < im->sx); i++) { if (gdImageGetPixel (im, i, y) != old) { break; } gdImageSetPixel (im, i, y, color); rightLimit = i; } /* Look at lines above and below and start paints */ /* Above */ if (y > 0) { lastBorder = 1; for (i = leftLimit; (i <= rightLimit); i++) { int c; c = gdImageGetPixel (im, i, y - 1); if (lastBorder) { if (c == old) { gdImageFill (im, i, y - 1, color); lastBorder = 0; } } else if (c != old) { lastBorder = 1; } } } /* Below */ if (y < ((im->sy) - 1)) { lastBorder = 1; for (i = leftLimit; (i <= rightLimit); i++) { int c; c = gdImageGetPixel (im, i, y + 1); if (lastBorder) { if (c == old) { gdImageFill (im, i, y + 1, color); lastBorder = 0; } } else if (c != old) { lastBorder = 1; } } } } void gdImageRectangle (gdImagePtr im, int x1, int y1, int x2, int y2, int color) { int x1h = x1, x1v = x1, y1h = y1, y1v = y1, x2h = x2, x2v = x2, y2h = y2, y2v = y2; int thick = im->thick; if (thick > 1) { int half = thick / 2; int half1 = thick - half; if (y1 < y2) { y1v = y1h - half; y2v = y2h + half1 - 1; } else { y1v = y1h + half1 - 1; y2v = y2h - half; } } gdImageLine (im, x1h, y1h, x2h, y1h, color); gdImageLine (im, x1h, y2h, x2h, y2h, color); gdImageLine (im, x1v, y1v, x1v, y2v, color); gdImageLine (im, x2v, y1v, x2v, y2v, color); } void gdImageFilledRectangle (gdImagePtr im, int x1, int y1, int x2, int y2, int color) { int x, y; for (y = y1; (y <= y2); y++) { for (x = x1; (x <= x2); x++) { gdImageSetPixel (im, x, y, color); } } } void gdImageCopy (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h) { int c; int x, y; int tox, toy; int i; int colorMap[gdMaxColors]; if (dst->trueColor) { /* 2.0: much easier when the destination is truecolor. */ for (y = 0; (y < h); y++) { for (x = 0; (x < w); x++) { int c = gdImageGetTrueColorPixel (src, srcX + x, srcY + y); if (c != src->transparent) { gdImageSetPixel (dst, dstX + x, dstY + y, c); } } } return; } for (i = 0; (i < gdMaxColors); i++) { colorMap[i] = (-1); } toy = dstY; for (y = srcY; (y < (srcY + h)); y++) { tox = dstX; for (x = srcX; (x < (srcX + w)); x++) { int nc; c = gdImageGetPixel (src, x, y); /* Added 7/24/95: support transparent copies */ if (gdImageGetTransparent (src) == c) { tox++; continue; } /* Have we established a mapping for this color? */ if (colorMap[c] == (-1)) { /* If it's the same image, mapping is trivial */ if (dst == src) { nc = c; } else { /* Get best match possible. This function never returns error. */ nc = gdImageColorResolveAlpha ( dst, src->red[c], src->green[c], src->blue[c], src->alpha[c]); } colorMap[c] = nc; } gdImageSetPixel (dst, tox, toy, colorMap[c]); tox++; } toy++; } } /* This function is a substitute for real alpha channel operations, so it doesn't pay attention to the alpha channel. */ void gdImageCopyMerge (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h, int pct) { int c, dc; int x, y; int tox, toy; int ncR, ncG, ncB; toy = dstY; for (y = srcY; (y < (srcY + h)); y++) { tox = dstX; for (x = srcX; (x < (srcX + w)); x++) { int nc; c = gdImageGetPixel (src, x, y); /* Added 7/24/95: support transparent copies */ if (gdImageGetTransparent (src) == c) { tox++; continue; } /* If it's the same image, mapping is trivial */ if (dst == src) { nc = c; } else { dc = gdImageGetPixel (dst, tox, toy); ncR = gdImageRed (src, c) * (pct / 100.0) + gdImageRed (dst, dc) * ((100 - pct) / 100.0); ncG = gdImageGreen (src, c) * (pct / 100.0) + gdImageGreen (dst, dc) * ((100 - pct) / 100.0); ncB = gdImageBlue (src, c) * (pct / 100.0) + gdImageBlue (dst, dc) * ((100 - pct) / 100.0); /* Find a reasonable color */ nc = gdImageColorResolve (dst, ncR, ncG, ncB); } gdImageSetPixel (dst, tox, toy, nc); tox++; } toy++; } } /* This function is a substitute for real alpha channel operations, so it doesn't pay attention to the alpha channel. */ void gdImageCopyMergeGray (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h, int pct) { int c, dc; int x, y; int tox, toy; int ncR, ncG, ncB; float g; toy = dstY; for (y = srcY; (y < (srcY + h)); y++) { tox = dstX; for (x = srcX; (x < (srcX + w)); x++) { int nc; c = gdImageGetPixel (src, x, y); /* Added 7/24/95: support transparent copies */ if (gdImageGetTransparent (src) == c) { tox++; continue; } /* If it's the same image, mapping is trivial */ if (dst == src) { nc = c; } else { dc = gdImageGetPixel (dst, tox, toy); g = 0.29900 * dst->red[dc] + 0.58700 * dst->green[dc] + 0.11400 * dst->blue[dc]; ncR = gdImageRed (src, c) * (pct / 100.0) + gdImageRed (dst, dc) * g * ((100 - pct) / 100.0); ncG = gdImageGreen (src, c) * (pct / 100.0) + gdImageGreen (dst, dc) * g * ((100 - pct) / 100.0); ncB = gdImageBlue (src, c) * (pct / 100.0) + gdImageBlue (dst, dc) * g * ((100 - pct) / 100.0); /* First look for an exact match */ nc = gdImageColorExact (dst, ncR, ncG, ncB); if (nc == (-1)) { /* No, so try to allocate it */ nc = gdImageColorAllocate (dst, ncR, ncG, ncB); /* If we're out of colors, go for the closest color */ if (nc == (-1)) { nc = gdImageColorClosest (dst, ncR, ncG, ncB); } } } gdImageSetPixel (dst, tox, toy, nc); tox++; } toy++; } } void gdImageCopyResized (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH) { int c; int x, y; int tox, toy; int ydest; int i; int colorMap[gdMaxColors]; /* Stretch vectors */ int *stx; int *sty; /* We only need to use floating point to determine the correct stretch vector for one line's worth. */ double accum; stx = (int *) gdMalloc (sizeof (int) * srcW); sty = (int *) gdMalloc (sizeof (int) * srcH); accum = 0; for (i = 0; (i < srcW); i++) { int got; accum += (double) dstW / (double) srcW; got = (int) floor (accum); stx[i] = got; accum -= got; } accum = 0; for (i = 0; (i < srcH); i++) { int got; accum += (double) dstH / (double) srcH; got = (int) floor (accum); sty[i] = got; accum -= got; } for (i = 0; (i < gdMaxColors); i++) { colorMap[i] = (-1); } toy = dstY; for (y = srcY; (y < (srcY + srcH)); y++) { for (ydest = 0; (ydest < sty[y - srcY]); ydest++) { tox = dstX; for (x = srcX; (x < (srcX + srcW)); x++) { int nc=0; int mapTo; if (!stx[x - srcX]) { continue; } if (dst->trueColor) { mapTo = gdImageGetTrueColorPixel (src, x, y); /* Added 7/24/95: support transparent copies */ if (gdImageGetTransparent (src) == mapTo) { tox++; continue; } } else { c = gdImageGetPixel (src, x, y); /* Added 7/24/95: support transparent copies */ if (gdImageGetTransparent (src) == c) { tox += stx[x - srcX]; continue; } if (src->trueColor) { /* Remap to the palette available in the destination image. This is slow and works badly. */ mapTo = gdImageColorResolveAlpha (dst, gdTrueColorGetRed (c), gdTrueColorGetGreen (c), gdTrueColorGetBlue (c), gdTrueColorGetAlpha (c)); } else { /* Have we established a mapping for this color? */ if (colorMap[c] == (-1)) { /* If it's the same image, mapping is trivial */ if (dst == src) { nc = c; } else { /* Find or create the best match */ nc = gdImageColorResolveAlpha (dst, gdTrueColorGetRed (c), gdTrueColorGetGreen (c), gdTrueColorGetBlue (c), gdTrueColorGetAlpha (c)); } colorMap[c] = nc; } mapTo = colorMap[c]; } } for (i = 0; (i < stx[x - srcX]); i++) { gdImageSetPixel (dst, tox, toy, mapTo); tox++; } } toy++; } } gdFree (stx); gdFree (sty); } /* When gd 1.x was first created, floating point was to be avoided. These days it is often faster than table lookups or integer arithmetic. The routine below is shamelessly, gloriously floating point. TBB */ void gdImageCopyResampled (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH) { int x, y; if (!dst->trueColor) { gdImageCopyResized ( dst, src, dstX, dstY, srcX, srcY, dstW, dstH, srcW, srcH); return; } for (y = dstY; (y < dstY + dstH); y++) { for (x = dstX; (x < dstX + dstW); x++) { float sy1, sy2, sx1, sx2; float sx, sy; float spixels = 0; float red = 0.0, green = 0.0, blue = 0.0, alpha = 0.0; sy1 = ((float) y - (float) dstY) * (float) srcH / (float) dstH; sy2 = ((float) (y + 1) - (float) dstY) * (float) srcH / (float) dstH; sy = sy1; do { float yportion; if (floor (sy) == floor (sy1)) { yportion = 1.0 - (sy - floor (sy)); if (yportion > sy2 - sy1) { yportion = sy2 - sy1; } sy = floor (sy); } else if (sy == floor (sy2)) { yportion = sy2 - floor (sy2); } else { yportion = 1.0; } sx1 = ((float) x - (float) dstX) * (float) srcW / dstW; sx2 = ((float) (x + 1) - (float) dstX) * (float) srcW / dstW; sx = sx1; do { float xportion; float pcontribution; int p; if (floor (sx) == floor (sx1)) { xportion = 1.0 - (sx - floor (sx)); if (xportion > sx2 - sx1) { xportion = sx2 - sx1; } sx = floor (sx); } else if (sx == floor (sx2)) { xportion = sx2 - floor (sx2); } else { xportion = 1.0; } pcontribution = xportion * yportion; p = gdImageGetTrueColorPixel ( src, (int) sx, (int) sy); red += gdTrueColorGetRed (p) * pcontribution; green += gdTrueColorGetGreen (p) * pcontribution; blue += gdTrueColorGetBlue (p) * pcontribution; alpha += gdTrueColorGetAlpha (p) * pcontribution; spixels += xportion * yportion; sx += 1.0; } while (sx < sx2); sy += 1.0; } while (sy < sy2); if (spixels != 0.0) { red /= spixels; green /= spixels; blue /= spixels; alpha /= spixels; } /* Clamping to allow for rounding errors above */ if (red > 255.0) { red = 255.0; } if (green > 255.0) { green = 255.0; } if (blue > 255.0) { blue = 255.0; } if (alpha > gdAlphaMax) { alpha = gdAlphaMax; } gdImageSetPixel (dst, x, y, gdTrueColorAlpha ((int) red, (int) green, (int) blue, (int) alpha)); } } } gdImagePtr gdImageCreateFromXbm (FILE * fd) { gdImagePtr im; int bit; int w, h; int bytes; int ch; int i, x, y; char *sp; char s[161]; if (!fgets (s, 160, fd)) { return 0; } sp = &s[0]; /* Skip #define */ sp = strchr (sp, ' '); if (!sp) { return 0; } /* Skip width label */ sp++; sp = strchr (sp, ' '); if (!sp) { return 0; } /* Get width */ w = atoi (sp + 1); if (!w) { return 0; } if (!fgets (s, 160, fd)) { return 0; } sp = s; /* Skip #define */ sp = strchr (sp, ' '); if (!sp) { return 0; } /* Skip height label */ sp++; sp = strchr (sp, ' '); if (!sp) { return 0; } /* Get height */ h = atoi (sp + 1); if (!h) { return 0; } /* The X protocol request CreatePixmap puts an upper bound of 16 bit to the size. see, e.g. moz#424333, fdo#48961, rhbz#1086714 */ if (w < 0 || w > SHRT_MAX || h < 0 || h > SHRT_MAX) { return 0; } /* Skip declaration line */ if (!fgets (s, 160, fd)) { return 0; } bytes = (w * h / 8) + 1; im = gdImageCreate (w, h); if (!im) { return 0; } gdImageColorAllocate (im, 255, 255, 255); gdImageColorAllocate (im, 0, 0, 0); x = 0; y = 0; for (i = 0; (i < bytes); i++) { char h[3]; int b; /* Skip spaces, commas, CRs, 0x */ while (1) { ch = getc (fd); if (ch == EOF) { goto fail; } if (ch == 'x') { break; } } /* Get hex value */ ch = getc (fd); if (ch == EOF) { goto fail; } h[0] = ch; ch = getc (fd); if (ch == EOF) { goto fail; } h[1] = ch; h[2] = '\0'; if (sscanf (h, "%x", &b) != 1) { goto fail; } for (bit = 1; (bit <= 128); (bit = bit << 1)) { gdImageSetPixel (im, x++, y, (b & bit) ? 1 : 0); if (x == im->sx) { x = 0; y++; if (y == im->sy) { return im; } /* Fix 8/8/95 */ break; } } } /* Shouldn't happen */ fprintf (stderr, "Error: bug in gdImageCreateFromXbm!\n"); fail: gdImageDestroy (im); return 0; } void gdImagePolygon (gdImagePtr im, gdPointPtr p, int n, int c) { int i; int lx, ly; if (!n) { return; } lx = p->x; ly = p->y; gdImageLine (im, lx, ly, p[n - 1].x, p[n - 1].y, c); for (i = 1; (i < n); i++) { p++; gdImageLine (im, lx, ly, p->x, p->y, c); lx = p->x; ly = p->y; } } static int gdCompareInt (const void *a, const void *b); /* THANKS to Kirsten Schulz for the polygon fixes! */ /* The intersection finding technique of this code could be improved */ /* by remembering the previous intertersection, and by using the slope. */ /* That could help to adjust intersections to produce a nice */ /* interior_extrema. */ void gdImageFilledPolygon (gdImagePtr im, gdPointPtr p, int n, int c) { int i; int y; int miny, maxy; int x1, y1; int x2, y2; int ind1, ind2; int ints; if (!n) { return; } if (!im->polyAllocated) { im->polyInts = (int *) gdMalloc (sizeof (int) * n); im->polyAllocated = n; } if (im->polyAllocated < n) { while (im->polyAllocated < n) { im->polyAllocated *= 2; } im->polyInts = (int *) gdRealloc (im->polyInts, sizeof (int) * im->polyAllocated); } miny = p[0].y; maxy = p[0].y; for (i = 1; (i < n); i++) { if (p[i].y < miny) { miny = p[i].y; } if (p[i].y > maxy) { maxy = p[i].y; } } /* Fix in 1.3: count a vertex only once */ for (y = miny; (y <= maxy); y++) { /*1.4 int interLast = 0; */ /* int dirLast = 0; */ /* int interFirst = 1; */ ints = 0; for (i = 0; (i < n); i++) { if (!i) { ind1 = n - 1; ind2 = 0; } else { ind1 = i - 1; ind2 = i; } y1 = p[ind1].y; y2 = p[ind2].y; if (y1 < y2) { x1 = p[ind1].x; x2 = p[ind2].x; } else if (y1 > y2) { y2 = p[ind1].y; y1 = p[ind2].y; x2 = p[ind1].x; x1 = p[ind2].x; } else { continue; } if ((y >= y1) && (y < y2)) { im->polyInts[ints++] = (y - y1) * (x2 - x1) / (y2 - y1) + x1; } else if ((y == maxy) && (y > y1) && (y <= y2)) { im->polyInts[ints++] = (y - y1) * (x2 - x1) / (y2 - y1) + x1; } } qsort (im->polyInts, ints, sizeof (int), gdCompareInt); for (i = 0; (i < (ints)); i += 2) { gdImageLine (im, im->polyInts[i], y, im->polyInts[i + 1], y, c); } } } int gdCompareInt (const void *a, const void *b) { return (*(const int *) a) - (*(const int *) b); } void gdImageSetStyle (gdImagePtr im, int *style, int noOfPixels) { if (im->style) { gdFree (im->style); } im->style = (int *) gdMalloc (sizeof (int) * noOfPixels); memcpy (im->style, style, sizeof (int) * noOfPixels); im->styleLength = noOfPixels; im->stylePos = 0; } void gdImageSetThickness (gdImagePtr im, int thickness) { im->thick = thickness; } void gdImageSetBrush (gdImagePtr im, gdImagePtr brush) { int i; im->brush = brush; if ((!im->trueColor) && (!im->brush->trueColor)) { for (i = 0; (i < gdImageColorsTotal (brush)); i++) { int index; index = gdImageColorResolveAlpha (im, gdImageRed (brush, i), gdImageGreen (brush, i), gdImageBlue (brush, i), gdImageAlpha (brush, i)); im->brushColorMap[i] = index; } } } void gdImageSetTile (gdImagePtr im, gdImagePtr tile) { int i; im->tile = tile; if ((!im->trueColor) && (!im->tile->trueColor)) { for (i = 0; (i < gdImageColorsTotal (tile)); i++) { int index; index = gdImageColorResolveAlpha (im, gdImageRed (tile, i), gdImageGreen (tile, i), gdImageBlue (tile, i), gdImageAlpha (tile, i)); im->tileColorMap[i] = index; } } } void gdImageInterlace (gdImagePtr im, int interlaceArg) { im->interlace = interlaceArg; } int gdImageCompare (gdImagePtr im1, gdImagePtr im2) { int x, y; int p1, p2; int cmpStatus = 0; int sx, sy; if (im1->interlace != im2->interlace) { cmpStatus |= GD_CMP_INTERLACE; } if (im1->transparent != im2->transparent) { cmpStatus |= GD_CMP_TRANSPARENT; } if (im1->trueColor != im2->trueColor) { cmpStatus |= GD_CMP_TRUECOLOR; } sx = im1->sx; if (im1->sx != im2->sx) { cmpStatus |= GD_CMP_SIZE_X + GD_CMP_IMAGE; if (im2->sx < im1->sx) { sx = im2->sx; } } sy = im1->sy; if (im1->sy != im2->sy) { cmpStatus |= GD_CMP_SIZE_Y + GD_CMP_IMAGE; if (im2->sy < im1->sy) { sy = im2->sy; } } if (im1->colorsTotal != im2->colorsTotal) { cmpStatus |= GD_CMP_NUM_COLORS; } for (y = 0; (y < sy); y++) { for (x = 0; (x < sx); x++) { p1 = im1->pixels[y][x]; p2 = im2->pixels[y][x]; if (gdImageRed (im1, p1) != gdImageRed (im2, p2)) { cmpStatus |= GD_CMP_COLOR + GD_CMP_IMAGE; break; } if (gdImageGreen (im1, p1) != gdImageGreen (im2, p2)) { cmpStatus |= GD_CMP_COLOR + GD_CMP_IMAGE; break; } if (gdImageBlue (im1, p1) != gdImageBlue (im2, p2)) { cmpStatus |= GD_CMP_COLOR + GD_CMP_IMAGE; break; } #if 0 /* Soon we'll add alpha channel to palettes */ if (gdImageAlpha (im1, p1) != gdImageAlpha (im2, p2)) { cmpStatus |= GD_CMP_COLOR + GD_CMP_IMAGE; break; } #endif } if (cmpStatus & GD_CMP_COLOR) { break; }; } return cmpStatus; } int gdAlphaBlend (int dst, int src) { return (((((gdAlphaTransparent - gdTrueColorGetAlpha (src)) * gdTrueColorGetRed (src) / gdAlphaMax) + (gdTrueColorGetAlpha (src) * gdTrueColorGetRed (dst)) / gdAlphaMax) << 16) + ((((gdAlphaTransparent - gdTrueColorGetAlpha (src)) * gdTrueColorGetGreen (src) / gdAlphaMax) + (gdTrueColorGetAlpha (src) * gdTrueColorGetGreen (dst)) / gdAlphaMax) << 8) + (((gdAlphaTransparent - gdTrueColorGetAlpha (src)) * gdTrueColorGetBlue (src) / gdAlphaMax) + (gdTrueColorGetAlpha (src) * gdTrueColorGetBlue (dst)) / gdAlphaMax)); } void gdImageAlphaBlending (gdImagePtr im, int alphaBlendingArg) { im->alphaBlendingFlag = alphaBlendingArg; } void gdImageSaveAlpha (gdImagePtr im, int saveAlphaArg) { im->saveAlphaFlag = saveAlphaArg; } libwmf-0.2.13/src/extra/gd/gd.h000066400000000000000000000442721441723000300161270ustar00rootroot00000000000000#ifndef GD_H #define GD_H 1 #ifdef __cplusplus extern "C" { #endif /* default fontpath for unix systems */ #define DEFAULT_FONTPATH "/usr/share/fonts/truetype" #define PATHSEPARATOR ":" /* gd.h: declarations file for the graphic-draw module. * 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." Thomas Boutell and * Boutell.Com, Inc. disclaim all warranties, either express or implied, * including but not limited to implied warranties of merchantability and * fitness for a particular purpose, with respect to this code and accompanying * documentation. */ /* stdio is needed for file I/O. */ #include #include #include #pragma GCC visibility push(hidden) /* The maximum number of palette entries in palette-based images. In the wonderful new world of gd 2.0, you can of course have many more colors when using truecolor mode. */ #define gdMaxColors 256 /* Image type. See functions below; you will not need to change the elements directly. Use the provided macros to access sx, sy, the color table, and colorsTotal for read-only purposes. */ /* If 'truecolor' is set true, the image is truecolor; pixels are represented by integers, which must be 32 bits wide or more. True colors are repsented as follows: ARGB Where 'A' (alpha channel) occupies only the LOWER 7 BITS of the MSB. This very small loss of alpha channel resolution allows gd 2.x to keep backwards compatibility by allowing signed integers to be used to represent colors, and negative numbers to represent special cases, just as in gd 1.x. */ #define gdAlphaMax 127 #define gdAlphaOpaque 0 #define gdAlphaTransparent 127 #define gdRedMax 255 #define gdGreenMax 255 #define gdBlueMax 255 #define gdTrueColorGetAlpha(c) (((c) & 0x7F000000) >> 24) #define gdTrueColorGetRed(c) (((c) & 0xFF0000) >> 16) #define gdTrueColorGetGreen(c) (((c) & 0x00FF00) >> 8) #define gdTrueColorGetBlue(c) ((c) & 0x0000FF) /* This function accepts truecolor pixel values only. The source color is composited with the destination color based on the alpha channel value of the source color. The resulting color is opaque. */ int gdAlphaBlend(int dest, int src); typedef struct gdImageStruct { /* Palette-based image pixels */ unsigned char ** pixels; int sx; int sy; /* These are valid in palette images only. See also 'alpha', which appears later in the structure to preserve binary backwards compatibility */ int colorsTotal; int red[gdMaxColors]; int green[gdMaxColors]; int blue[gdMaxColors]; int open[gdMaxColors]; /* For backwards compatibility, this is set to the first palette entry with 100% transparency, and is also set and reset by the gdImageColorTransparent function. Newer applications can allocate palette entries with any desired level of transparency; however, bear in mind that many viewers, notably many web browsers, fail to implement full alpha channel for PNG and provide support for full opacity or transparency only. */ int transparent; int *polyInts; int polyAllocated; struct gdImageStruct *brush; struct gdImageStruct *tile; int brushColorMap[gdMaxColors]; int tileColorMap[gdMaxColors]; int styleLength; int stylePos; int *style; int interlace; /* New in 2.0: thickness of line. Initialized to 1. */ int thick; /* New in 2.0: alpha channel for palettes. Note that only Macintosh Internet Explorer and (possibly) Netscape 6 really support multiple levels of transparency in palettes, to my knowledge, as of 2/15/01. Most common browsers will display 100% opaque and 100% transparent correctly, and do something unpredictable and/or undesirable for levels in between. TBB */ int alpha[gdMaxColors]; /* Truecolor flag and pixels. New 2.0 fields appear here at the end to minimize breakage of existing object code. */ int trueColor; int ** tpixels; /* Should alpha channel be copied, or applied, each time a pixel is drawn? This applies to truecolor images only. No attempt is made to alpha-blend in palette images, even if semitransparent palette entries exist. To do that, build your image as a truecolor image, then quantize down to 8 bits. */ int alphaBlendingFlag; /* Should the alpha channel of the image be saved? This affects PNG at the moment; other future formats may also have that capability. JPEG doesn't. */ int saveAlphaFlag; gdClipSet* clip; /* See */ int * _tpixels; /* contiguous pixel array */ } gdImage; typedef gdImage * gdImagePtr; typedef struct { /* # of characters in font */ int nchars; /* First character is numbered... (usually 32 = space) */ int offset; /* Character width and height */ int w; int h; /* Font data; array of characters, one row after another. Easily included in code, also easily loaded from data files. */ char *data; } gdFont; /* Text functions take these. */ typedef gdFont *gdFontPtr; /* For backwards compatibility only. Use gdImageSetStyle() for MUCH more flexible line drawing. Also see gdImageSetBrush(). */ #define gdDashSize 4 /* Special colors. */ #define gdStyled (-2) #define gdBrushed (-3) #define gdStyledBrushed (-4) #define gdTiled (-5) /* NOT the same as the transparent color index. This is used in line styles only. */ #define gdTransparent (-6) /* Functions to manipulate images. */ /* Creates a palette-based image (up to 256 colors). */ gdImagePtr gdImageCreate(int sx, int sy); /* An alternate name for the above (2.0). */ #define gdImageCreatePalette gdImageCreate /* Creates a truecolor image (millions of colors). */ gdImagePtr gdImageCreateTrueColor(int sx, int sy); /* Creates an image from various file types. These functions return a palette or truecolor image based on the nature of the file being loaded. Truecolor PNG stays truecolor; palette PNG stays palette-based; JPEG is always truecolor. */ gdImagePtr gdImageCreateFromPng(FILE *fd); gdImagePtr gdImageCreateFromPngCtx(gdIOCtxPtr in); gdImagePtr gdImageCreateFromWBMP(FILE *inFile); gdImagePtr gdImageCreateFromWBMPCtx(gdIOCtx *infile); gdImagePtr gdImageCreateFromJpeg(FILE *infile); gdImagePtr gdImageCreateFromJpegCtx(gdIOCtx *infile); /* ClipSet addition */ void gdClipSetFree(gdImagePtr im); void gdClipSetReset(gdImagePtr im); void gdClipSetAdd(gdImagePtr im,gdClipRectanglePtr rect); /* A custom data source. */ /* The source function must return -1 on error, otherwise the number of bytes fetched. 0 is EOF, not an error! */ /* context will be passed to your source function. */ typedef struct { int (*source) (void *context, char *buffer, int len); void *context; } gdSource, *gdSourcePtr; gdImagePtr gdImageCreateFromPngSource(gdSourcePtr in); gdImagePtr gdImageCreateFromGd(FILE *in); gdImagePtr gdImageCreateFromGdCtx(gdIOCtxPtr in); gdImagePtr gdImageCreateFromGd2(FILE *in); gdImagePtr gdImageCreateFromGd2Ctx(gdIOCtxPtr in); gdImagePtr gdImageCreateFromGd2Part(FILE *in, int srcx, int srcy, int w, int h); gdImagePtr gdImageCreateFromGd2PartCtx(gdIOCtxPtr in, int srcx, int srcy, int w, int h); gdImagePtr gdImageCreateFromXbm(FILE *fd); void gdImageDestroy(gdImagePtr im); /* Replaces or blends with the background depending on the most recent call to gdImageAlphaBlending and the alpha channel value of 'color'; default is to overwrite. Tiling and line styling are also implemented here. All other gd drawing functions pass through this call, allowing for many useful effects. */ void gdImageSetPixel(gdImagePtr im, int x, int y, int color); int gdImageGetPixel(gdImagePtr im, int x, int y); void gdImageLine(gdImagePtr im, int x1, int y1, int x2, int y2, int color); /* For backwards compatibility only. Use gdImageSetStyle() for much more flexible line drawing. */ void gdImageDashedLine(gdImagePtr im, int x1, int y1, int x2, int y2, int color); /* Corners specified (not width and height). Upper left first, lower right second. */ void gdImageRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color); /* Solid bar. Upper left corner first, lower right corner second. */ void gdImageFilledRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color); int gdImageBoundsSafe(gdImagePtr im, int x, int y); void gdImageChar(gdImagePtr im, gdFontPtr f, int x, int y, int c, int color); void gdImageCharUp(gdImagePtr im, gdFontPtr f, int x, int y, int c, int color); void gdImageString(gdImagePtr im, gdFontPtr f, int x, int y, unsigned char *s, int color); void gdImageStringUp(gdImagePtr im, gdFontPtr f, int x, int y, unsigned char *s, int color); void gdImageString16(gdImagePtr im, gdFontPtr f, int x, int y, unsigned short *s, int color); void gdImageStringUp16(gdImagePtr im, gdFontPtr f, int x, int y, unsigned short *s, int color); /* Calls gdImageStringFT. Provided for backwards compatibility only. */ char *gdImageStringTTF(gdImage *im, int *brect, int fg, char *fontlist, double ptsize, double angle, int x, int y, char *string); /* FreeType 2 text output */ char *gdImageStringFT(gdImage *im, int *brect, int fg, char *fontlist, double ptsize, double angle, int x, int y, char *string); /* Point type for use in polygon drawing. */ typedef struct { int x, y; } gdPoint, *gdPointPtr; void gdImagePolygon(gdImagePtr im, gdPointPtr p, int n, int c); void gdImageFilledPolygon(gdImagePtr im, gdPointPtr p, int n, int c); /* These functions still work with truecolor images, for which they never return error. */ int gdImageColorAllocate(gdImagePtr im, int r, int g, int b); /* gd 2.0: palette entries with non-opaque transparency are permitted. */ int gdImageColorAllocateAlpha(gdImagePtr im, int r, int g, int b, int a); /* Assumes opaque is the preferred alpha channel value */ int gdImageColorClosest(gdImagePtr im, int r, int g, int b); /* Closest match taking all four parameters into account. A slightly different color with the same transparency beats the exact same color with radically different transparency */ int gdImageColorClosestAlpha(gdImagePtr im, int r, int g, int b, int a); /* Returns exact, 100% opaque matches only */ int gdImageColorExact(gdImagePtr im, int r, int g, int b); /* Returns an exact match only, including alpha */ int gdImageColorExactAlpha(gdImagePtr im, int r, int g, int b, int a); /* Opaque only */ int gdImageColorResolve(gdImagePtr im, int r, int g, int b); /* Based on gdImageColorExactAlpha and gdImageColorClosestAlpha */ int gdImageColorResolveAlpha(gdImagePtr im, int r, int g, int b, int a); /* A simpler way to obtain an opaque truecolor value for drawing on a truecolor image. Not for use with palette images! */ #define gdTrueColor(r, g, b) (((r) << 16) + \ ((g) << 8) + \ (b)) /* Returns a truecolor value with an alpha channel component. gdAlphaMax (127, **NOT 255**) is transparent, 0 is completely opaque. */ #define gdTrueColorAlpha(r, g, b, a) (((a) << 24) + \ ((r) << 16) + \ ((g) << 8) + \ (b)) void gdImageColorDeallocate(gdImagePtr im, int color); /* Specifies a color index (if a palette image) or an RGB color (if a truecolor image) which should be considered 100% transparent. FOR TRUECOLOR IMAGES, THIS IS IGNORED IF AN ALPHA CHANNEL IS BEING SAVED. Use gdImageSaveAlpha(im, 0); to turn off the saving of a full alpha channel in a truecolor image. Note that gdImageColorTransparent is usually compatible with older browsers that do not understand full alpha channels well. TBB */ void gdImageColorTransparent(gdImagePtr im, int color); void gdImagePaletteCopy(gdImagePtr dst, gdImagePtr src); void gdImagePng(gdImagePtr im, FILE *out); void gdImagePngCtx(gdImagePtr im, gdIOCtx *out); void gdImageWBMP(gdImagePtr image, int fg, FILE *out); void gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out); /* Guaranteed to correctly free memory returned by the gdImage*Ptr functions */ void gdFree(void *m); /* Best to free this memory with gdFree(), not free() */ void *gdImageWBMPPtr(gdImagePtr im, int *size, int fg); void gdImageJpeg(gdImagePtr im, FILE *out, int quality); void gdImageJpegCtx(gdImagePtr im, gdIOCtx *out, int quality); /* Best to free this memory with gdFree(), not free() */ void *gdImageJpegPtr(gdImagePtr im, int *size, int quality); /* A custom data sink. For backwards compatibility. Use gdIOCtx instead. */ /* The sink function must return -1 on error, otherwise the number of bytes written, which must be equal to len. */ /* context will be passed to your sink function. */ typedef struct { int (*sink) (void *context, const char *buffer, int len); void *context; } gdSink, *gdSinkPtr; void gdImagePngToSink(gdImagePtr im, gdSinkPtr out); void gdImageGd(gdImagePtr im, FILE *out); void gdImageGd2(gdImagePtr im, FILE *out, int cs, int fmt); /* Best to free this memory with gdFree(), not free() */ void* gdImageGdPtr(gdImagePtr im, int *size); /* Best to free this memory with gdFree(), not free() */ void* gdImageGd2Ptr(gdImagePtr im, int cs, int fmt, int *size); void gdImageEllipse(gdImagePtr im, int cx, int cy, int w, int h, int color); /* Style is a bitwise OR ( | operator ) of these. gdArc and gdChord are mutually exclusive; gdChord just connects the starting and ending angles with a straight line, while gdArc produces a rounded edge. gdPie is a synonym for gdArc. gdNoFill indicates that the arc or chord should be outlined, not filled. gdEdged, used together with gdNoFill, indicates that the beginning and ending angles should be connected to the center; this is a good way to outline (rather than fill) a 'pie slice'. */ #define gdArc 0 #define gdPie gdArc #define gdChord 1 #define gdNoFill 2 #define gdEdged 4 void gdImageFilledArc(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color, int style); void gdImageArc(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color); void gdImageFilledEllipse(gdImagePtr im, int cx, int cy, int w, int h, int color); void gdImageFillToBorder(gdImagePtr im, int x, int y, int border, int color); void gdImageFill(gdImagePtr im, int x, int y, int color); void gdImageCopy(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h); void gdImageCopyMerge(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h, int pct); void gdImageCopyMergeGray(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h, int pct); /* Stretches or shrinks to fit, as needed. Does NOT attempt to average the entire set of source pixels that scale down onto the destination pixel. */ void gdImageCopyResized(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH); /* gd 2.0: stretches or shrinks to fit, as needed. When called with a truecolor destination image, this function averages the entire set of source pixels that scale down onto the destination pixel, taking into account what portion of the destination pixel each source pixel represents. This is a floating point operation, but this is not a performance issue on modern hardware, except for some embedded devices. If the destination is a palette image, gdImageCopyResized is substituted automatically. */ void gdImageCopyResampled(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH); void gdImageSetBrush(gdImagePtr im, gdImagePtr brush); void gdImageSetTile(gdImagePtr im, gdImagePtr tile); void gdImageSetStyle(gdImagePtr im, int *style, int noOfPixels); /* Line thickness (defaults to 1). Affects lines, ellipses, rectangles, polygons and so forth. */ void gdImageSetThickness(gdImagePtr im, int thickness); /* On or off (1 or 0) for all three of these. */ void gdImageInterlace(gdImagePtr im, int interlaceArg); void gdImageAlphaBlending(gdImagePtr im, int alphaBlendingArg); void gdImageSaveAlpha(gdImagePtr im, int saveAlphaArg); /* Macros to access information about images. */ /* Returns nonzero if the image is a truecolor image, zero for a palette image. */ #define gdImageTrueColor(im) ((im)->trueColor) #define gdImageSX(im) ((im)->sx) #define gdImageSY(im) ((im)->sy) #define gdImageColorsTotal(im) ((im)->colorsTotal) #define gdImageRed(im, c) ((im)->trueColor ? gdTrueColorGetRed(c) : \ (im)->red[(c)]) #define gdImageGreen(im, c) ((im)->trueColor ? gdTrueColorGetGreen(c) : \ (im)->green[(c)]) #define gdImageBlue(im, c) ((im)->trueColor ? gdTrueColorGetBlue(c) : \ (im)->blue[(c)]) #define gdImageAlpha(im, c) ((im)->trueColor ? gdTrueColorGetAlpha(c) : \ (im)->alpha[(c)]) #define gdImageGetTransparent(im) ((im)->transparent) #define gdImageGetInterlaced(im) ((im)->interlace) /* These macros provide direct access to pixels in palette-based and truecolor images, respectively. If you use these macros, you must perform your own bounds checking. Use of the macro for the correct type of image is also your responsibility. */ #define gdImagePalettePixel(im, x, y) (im)->pixels[(y)][(x)] #define gdImageTrueColorPixel(im, x, y) (im)->tpixels[(y)][(x)] /* I/O Support routines. */ gdIOCtx* gdNewFileCtx(FILE*); gdIOCtx* gdNewDynamicCtx(int, void*); gdIOCtx* gdNewSSCtx(gdSourcePtr in, gdSinkPtr out); void* gdDPExtractData(struct gdIOCtx* ctx, int *size); #define GD2_CHUNKSIZE 128 #define GD2_CHUNKSIZE_MIN 64 #define GD2_CHUNKSIZE_MAX 4096 #define GD2_VERS 2 #define GD2_ID "gd2" #define GD2_FMT_RAW 1 #define GD2_FMT_COMPRESSED 2 /* Image comparison definitions */ int gdImageCompare(gdImagePtr im1, gdImagePtr im2); #define GD_CMP_IMAGE 1 /* Actual image IS different */ #define GD_CMP_NUM_COLORS 2 /* Number of Colours in pallette differ */ #define GD_CMP_COLOR 4 /* Image colours differ */ #define GD_CMP_SIZE_X 8 /* Image width differs */ #define GD_CMP_SIZE_Y 16 /* Image heights differ */ #define GD_CMP_TRANSPARENT 32 /* Transparent colour */ #define GD_CMP_BACKGROUND 64 /* Background colour */ #define GD_CMP_INTERLACE 128 /* Interlaced setting */ #define GD_CMP_TRUECOLOR 256 /* Truecolor vs palette differs */ /* resolution affects ttf font rendering, particularly hinting */ #define GD_RESOLUTION 96 /* pixels per inch */ #pragma GCC visibility pop #ifdef __cplusplus } #endif #endif /* GD_H */ libwmf-0.2.13/src/extra/gd/gd2copypal.c000066400000000000000000000024701441723000300175660ustar00rootroot00000000000000 #include #include "gd.h" /* A short program which converts a .png file into a .gd file, for your convenience in creating images on the fly from a basis image that must be loaded quickly. The .gd format is not intended to be a general-purpose format. */ int main (int argc, char **argv) { gdImagePtr im; gdImagePtr pal; FILE *in, *out; if (argc != 3) { fprintf (stderr, "Usage: gd2copypal palettefile.gd2 filename.gd2\n"); exit (1); } in = fopen (argv[1], "rb"); if (!in) { fprintf (stderr, "Palette file does not exist!\n"); exit (1); } pal = gdImageCreateFromGd2 (in); fclose (in); if (!pal) { fprintf (stderr, "Palette is not in GD2 format!\n"); exit (1); } in = fopen (argv[2], "rb"); if (!in) { fprintf (stderr, "Input file does not exist!\n"); exit (1); } im = gdImageCreateFromGd2 (in); fclose (in); if (!im) { fprintf (stderr, "Input is not in GD2 format!\n"); exit (1); } gdImagePaletteCopy (im, pal); out = fopen (argv[2], "wb"); if (!out) { fprintf (stderr, "Output file cannot be written to!\n"); gdImageDestroy (im); exit (1); } gdImageGd2 (im, out, 128, 2); fclose (out); gdImageDestroy (pal); gdImageDestroy (im); return 0; } libwmf-0.2.13/src/extra/gd/gd2time.c000066400000000000000000000023211441723000300170500ustar00rootroot00000000000000 #include #include /* for atoi */ #include /* For time */ #include "gd.h" /* A short program which converts a .png file into a .gd file, for your convenience in creating images on the fly from a basis image that must be loaded quickly. The .gd format is not intended to be a general-purpose format. */ int main (int argc, char **argv) { gdImagePtr im; FILE *in; int x, y, w, h; int c; int i; int t0; if (argc != 7) { fprintf (stderr, "Usage: gd2time filename.gd count x y w h\n"); exit (1); } c = atoi (argv[2]); x = atoi (argv[3]); y = atoi (argv[4]); w = atoi (argv[5]); h = atoi (argv[6]); printf ("Extracting %d times from (%d, %d), size is %dx%d\n", c, x, y, w, h); t0 = time (0); for (i = 0; i < c; i++) { in = fopen (argv[1], "rb"); if (!in) { fprintf (stderr, "Input file does not exist!\n"); exit (1); } im = gdImageCreateFromGd2Part (in, x, y, w, h); fclose (in); if (!im) { fprintf (stderr, "Error reading source file!\n"); exit (1); } gdImageDestroy (im); }; t0 = time (0) - t0; printf ("%d seconds to extract (& destroy) %d times\n", t0, c); return 0; } libwmf-0.2.13/src/extra/gd/gd2topng.c000066400000000000000000000017121441723000300172440ustar00rootroot00000000000000 #include #include "gd.h" /* A short program which converts a .png file into a .gd file, for your convenience in creating images on the fly from a basis image that must be loaded quickly. The .gd format is not intended to be a general-purpose format. */ int main (int argc, char **argv) { gdImagePtr im; FILE *in, *out; if (argc != 3) { fprintf (stderr, "Usage: gd2topng filename.gd2 filename.png\n"); exit (1); } in = fopen (argv[1], "rb"); if (!in) { fprintf (stderr, "Input file does not exist!\n"); exit (1); } im = gdImageCreateFromGd2 (in); fclose (in); if (!im) { fprintf (stderr, "Input is not in GD2 format!\n"); exit (1); } out = fopen (argv[2], "wb"); if (!out) { fprintf (stderr, "Output file cannot be written to!\n"); gdImageDestroy (im); exit (1); } gdImagePng (im, out); fclose (out); gdImageDestroy (im); return 0; } libwmf-0.2.13/src/extra/gd/gd_arc_f_buggy.c000066400000000000000000000371561441723000300204540ustar00rootroot00000000000000/* This is potentially great stuff, but fails against the test program at the end. This would probably be much more efficent than the implementation currently in gd.c if the errors in the output were corrected. TBB */ #if 0 #include "gd.h" #include /* Courtesy of F J Franklin. */ static gdPoint gdArcClosest (int width, int height, int angle); void gdImageFilledEllipse (gdImagePtr im, int cx, int cy, int width, int height, int color) { gdImageFilledArc (im, cx, cy, width, height, 0, 360, color, gdChord); } void gdImageFilledArc (gdImagePtr im, int cx, int cy, int width, int height, int s, int e, int color, int style) { gdPoint pt[7]; gdPoint axis_pt[4]; int angle; int have_s = 0; int have_e = 0; int flip_x = 0; int flip_y = 0; int conquer = 0; int i; int a; int b; int x; int y; long s_sin = 0; long s_cos = 0; long e_sin = 0; long e_cos = 0; long w; /* a * 2 */ long h; /* b * 2 */ long x2; /* x * 2 */ long y2; /* y * 2 */ long lx2; /* x * 2 (line) */ long ly2; /* y * 2 (line) */ long ws; /* (a * 2)^2 */ long hs; /* (b * 2)^2 */ long whs; /* (a * 2)^2 * (b * 2)^2 */ long g; /* decision variable */ long lg; /* decision variable (line) */ width = (width & 1) ? (width + 1) : (width); height = (height & 1) ? (height + 1) : (height); a = width / 2; b = height / 2; axis_pt[0].x = a; axis_pt[0].y = 0; axis_pt[1].x = 0; axis_pt[1].y = b; axis_pt[2].x = -a; axis_pt[2].y = 0; axis_pt[3].x = 0; axis_pt[3].y = -b; if (s == e) return; if ((e - s) >= 360) { s = 0; e = 0; } while (s < 0) s += 360; while (s >= 360) s -= 360; while (e < 0) e += 360; while (e >= 360) e -= 360; if (e <= s) e += 360; /* I'm assuming a chord-rule at the moment. Need to add origin to get a * pie-rule, but will need to set chord-rule before recursion... */ for (i = 0; i < 4; i++) { if ((s < (i + 1) * 90) && (e > (i + 1) * 90)) { gdImageFilledArc (im, cx, cy, width, height, s, (i + 1) * 90, color, gdChord); pt[0] = gdArcClosest (width, height, s); pt[0].x += cx; pt[0].y += cy; pt[1].x = cx + axis_pt[(i + 1) & 3].x; pt[1].y = cy + axis_pt[(i + 1) & 3].y; if (e <= (i + 2) * 90) { gdImageFilledArc (im, cx, cy, width, height, (i + 1) * 90, e, color, gdChord); pt[2] = gdArcClosest (width, height, e); pt[2].x += cx; pt[2].y += cy; if (style == gdChord) { gdImageFilledPolygon (im, pt, 3, color); gdImagePolygon (im, pt, 3, color); } else if (style == gdPie) { pt[3].x = cx; pt[3].y = cy; gdImageFilledPolygon (im, pt, 4, color); gdImagePolygon (im, pt, 4, color); } } else { gdImageFilledArc (im, cx, cy, width, height, (i + 1) * 90, (i + 2) * 90, color, gdChord); pt[2].x = cx + axis_pt[(i + 2) & 3].x; pt[2].y = cy + axis_pt[(i + 2) & 3].y; if (e <= (i + 3) * 90) { gdImageFilledArc (im, cx, cy, width, height, (i + 2) * 90, e, color, gdChord); pt[3] = gdArcClosest (width, height, e); pt[3].x += cx; pt[3].y += cy; if (style == gdChord) { gdImageFilledPolygon (im, pt, 4, color); gdImagePolygon (im, pt, 4, color); } else if (style == gdPie) { pt[4].x = cx; pt[4].y = cy; gdImageFilledPolygon (im, pt, 5, color); gdImagePolygon (im, pt, 5, color); } } else { gdImageFilledArc (im, cx, cy, width, height, (i + 2) * 90, (i + 3) * 90, color, gdChord); pt[3].x = cx + axis_pt[(i + 3) & 3].x; pt[3].y = cy + axis_pt[(i + 3) & 3].y; if (e <= (i + 4) * 90) { gdImageFilledArc (im, cx, cy, width, height, (i + 3) * 90, e, color, gdChord); pt[4] = gdArcClosest (width, height, e); pt[4].x += cx; pt[4].y += cy; if (style == gdChord) { gdImageFilledPolygon (im, pt, 5, color); gdImagePolygon (im, pt, 5, color); } else if (style == gdPie) { pt[5].x = cx; pt[5].y = cy; gdImageFilledPolygon (im, pt, 6, color); gdImagePolygon (im, pt, 6, color); } } else { gdImageFilledArc (im, cx, cy, width, height, (i + 3) * 90, (i + 4) * 90, color, gdChord); pt[4].x = cx + axis_pt[(i + 4) & 3].x; pt[4].y = cy + axis_pt[(i + 4) & 3].y; gdImageFilledArc (im, cx, cy, width, height, (i + 4) * 90, e, color, gdChord); pt[5] = gdArcClosest (width, height, e); pt[5].x += cx; pt[5].y += cy; if (style == gdChord) { gdImageFilledPolygon (im, pt, 6, color); gdImagePolygon (im, pt, 6, color); } else if (style == gdPie) { pt[6].x = cx; pt[6].y = cy; gdImageFilledPolygon (im, pt, 7, color); gdImagePolygon (im, pt, 7, color); } } } } return; } } /* At this point we have only arcs that lies within a quadrant - * map this to first quadrant... */ if ((s >= 90) && (e <= 180)) { angle = s; s = 180 - e; e = 180 - angle; flip_x = 1; } if ((s >= 180) && (e <= 270)) { s = s - 180; e = e - 180; flip_x = 1; flip_y = 1; } if ((s >= 270) && (e <= 360)) { angle = s; s = 360 - e; e = 360 - angle; flip_y = 1; } if (s == 0) { s_sin = 0; s_cos = (long) ((double) 32768); } else { s_sin = (long) ((double) 32768 * sin ((double) s * M_PI / (double) 180)); s_cos = (long) ((double) 32768 * cos ((double) s * M_PI / (double) 180)); } if (e == 0) { e_sin = (long) ((double) 32768); e_cos = 0; } else { e_sin = (long) ((double) 32768 * sin ((double) e * M_PI / (double) 180)); e_cos = (long) ((double) 32768 * cos ((double) e * M_PI / (double) 180)); } w = (long) width; h = (long) height; ws = w * w; hs = h * h; whs = 1; while ((ws > 32768) || (hs > 32768)) { ws = (ws + 1) / 2; /* Unfortunate limitations on integers makes */ hs = (hs + 1) / 2; /* drawing large ellipses problematic... */ whs *= 2; } while ((ws * hs) > (0x04000000L / whs)) { ws = (ws + 1) / 2; hs = (hs + 1) / 2; whs *= 2; } whs *= ws * hs; pt[0].x = w / 2; pt[0].y = 0; pt[2].x = 0; pt[2].y = h / 2; have_s = 0; have_e = 0; if (s == 0) have_s = 1; if (e == 90) have_e = 1; x2 = w; y2 = 0; /* Starting point is exactly on ellipse */ g = x2 - 1; g = g * g * hs + 4 * ws - whs; while ((x2 * hs) > (y2 * ws)) /* Keep |tangent| > 1 */ { y2 += 2; g += ws * 4 * (y2 + 1); if (g > 0) /* Need to drop */ { x2 -= 2; g -= hs * 4 * x2; } if ((have_s == 0) && ((s_sin * x2) <= (y2 * s_cos))) { pt[0].x = (int) (x2 / 2); pt[0].y = (int) (y2 / 2); have_s = 1; } if ((have_e == 0) && ((e_sin * x2) <= (y2 * e_cos))) { pt[2].x = (int) (x2 / 2); pt[2].y = (int) (y2 / 2); have_e = 1; } } pt[1].x = (int) (x2 / 2); pt[1].y = (int) (y2 / 2); x2 = 0; y2 = h; /* Starting point is exactly on ellipse */ g = y2 - 1; g = g * g * ws + 4 * hs - whs; while ((x2 * hs) < (y2 * ws)) { x2 += 2; g += hs * 4 * (x2 + 1); if (g > 0) /* Need to drop */ { y2 -= 2; g -= ws * 4 * y2; } if ((have_s == 0) && ((s_sin * x2) >= (y2 * s_cos))) { pt[0].x = (int) (x2 / 2); pt[0].y = (int) (y2 / 2); have_s = 1; } if ((have_e == 0) && ((e_sin * x2) >= (y2 * e_cos))) { pt[2].x = (int) (x2 / 2); pt[2].y = (int) (y2 / 2); have_e = 1; } } if ((have_s == 0) || (have_e == 0)) return; /* Bizarre case */ if (style == gdPie) { pt[3] = pt[0]; pt[4] = pt[1]; pt[5] = pt[2]; pt[0].x = cx + (flip_x ? (-pt[0].x) : pt[0].x); pt[0].y = cy + (flip_y ? (-pt[0].y) : pt[0].y); pt[1].x = cx; pt[1].y = cy; pt[2].x = cx + (flip_x ? (-pt[2].x) : pt[2].x); pt[2].y = cy + (flip_y ? (-pt[2].y) : pt[2].y); gdImageFilledPolygon (im, pt, 3, color); gdImagePolygon (im, pt, 3, color); pt[0] = pt[3]; pt[1] = pt[4]; pt[2] = pt[5]; } if (((s_cos * hs) > (s_sin * ws)) && ((e_cos * hs) < (e_sin * ws))) { /* the points are on different parts of the curve... * this is too tricky to try to handle, so divide and conquer: */ pt[3] = pt[0]; pt[4] = pt[1]; pt[5] = pt[2]; pt[0].x = cx + (flip_x ? (-pt[0].x) : pt[0].x); pt[0].y = cy + (flip_y ? (-pt[0].y) : pt[0].y); pt[1].x = cx + (flip_x ? (-pt[1].x) : pt[1].x); pt[1].y = cy + (flip_y ? (-pt[1].y) : pt[1].y); pt[2].x = cx + (flip_x ? (-pt[2].x) : pt[2].x); pt[2].y = cy + (flip_y ? (-pt[2].y) : pt[2].y); gdImageFilledPolygon (im, pt, 3, color); gdImagePolygon (im, pt, 3, color); pt[0] = pt[3]; pt[2] = pt[4]; conquer = 1; } if (conquer || (((s_cos * hs) > (s_sin * ws)) && ((e_cos * hs) > (e_sin * ws)))) { /* This is the best bit... */ /* steep line + ellipse */ /* go up & left from pt[0] to pt[2] */ x2 = w; y2 = 0; /* Starting point is exactly on ellipse */ g = x2 - 1; g = g * g * hs + 4 * ws - whs; while ((x2 * hs) > (y2 * ws)) /* Keep |tangent| > 1 */ { if ((s_sin * x2) <= (y2 * s_cos)) break; y2 += 2; g += ws * 4 * (y2 + 1); if (g > 0) /* Need to drop */ { x2 -= 2; g -= hs * 4 * x2; } } lx2 = x2; ly2 = y2; lg = lx2 * (pt[0].y - pt[2].y) - ly2 * (pt[0].x - pt[2].x); lg = (lx2 - 1) * (pt[0].y - pt[2].y) - (ly2 + 2) * (pt[0].x - pt[2].x) - lg; while (y2 < (2 * pt[2].y)) { y2 += 2; g += ws * 4 * (y2 + 1); if (g > 0) /* Need to drop */ { x2 -= 2; g -= hs * 4 * x2; } ly2 += 2; lg -= 2 * (pt[0].x - pt[2].x); if (lg < 0) /* Need to drop */ { lx2 -= 2; lg -= 2 * (pt[0].y - pt[2].y); } y = (int) (y2 / 2); for (x = (int) (lx2 / 2); x <= (int) (x2 / 2); x++) { gdImageSetPixel (im, ((flip_x) ? (cx - x) : (cx + x)), ((flip_y) ? (cy - y) : (cy + y)), color); } } } if (conquer) { pt[0] = pt[4]; pt[2] = pt[5]; } if (conquer || (((s_cos * hs) < (s_sin * ws)) && ((e_cos * hs) < (e_sin * ws)))) { /* This is the best bit... */ /* gradual line + ellipse */ /* go down & right from pt[2] to pt[0] */ x2 = 0; y2 = h; /* Starting point is exactly on ellipse */ g = y2 - 1; g = g * g * ws + 4 * hs - whs; while ((x2 * hs) < (y2 * ws)) { x2 += 2; g += hs * 4 * (x2 + 1); if (g > 0) /* Need to drop */ { y2 -= 2; g -= ws * 4 * y2; } if ((e_sin * x2) >= (y2 * e_cos)) break; } lx2 = x2; ly2 = y2; lg = lx2 * (pt[0].y - pt[2].y) - ly2 * (pt[0].x - pt[2].x); lg = (lx2 + 2) * (pt[0].y - pt[2].y) - (ly2 - 1) * (pt[0].x - pt[2].x) - lg; while (x2 < (2 * pt[0].x)) { x2 += 2; g += hs * 4 * (x2 + 1); if (g > 0) /* Need to drop */ { y2 -= 2; g -= ws * 4 * y2; } lx2 += 2; lg += 2 * (pt[0].y - pt[2].y); if (lg < 0) /* Need to drop */ { ly2 -= 2; lg += 2 * (pt[0].x - pt[2].x); } x = (int) (x2 / 2); for (y = (int) (ly2 / 2); y <= (int) (y2 / 2); y++) { gdImageSetPixel (im, ((flip_x) ? (cx - x) : (cx + x)), ((flip_y) ? (cy - y) : (cy + y)), color); } } } } static gdPoint gdArcClosest (int width, int height, int angle) { gdPoint pt; int flip_x = 0; int flip_y = 0; long a_sin = 0; long a_cos = 0; long w; /* a * 2 */ long h; /* b * 2 */ long x2; /* x * 2 */ long y2; /* y * 2 */ long ws; /* (a * 2)^2 */ long hs; /* (b * 2)^2 */ long whs; /* (a * 2)^2 * (b * 2)^2 */ long g; /* decision variable */ w = (long) ((width & 1) ? (width + 1) : (width)); h = (long) ((height & 1) ? (height + 1) : (height)); while (angle < 0) angle += 360; while (angle >= 360) angle -= 360; if (angle == 0) { pt.x = w / 2; pt.y = 0; return (pt); } if (angle == 90) { pt.x = 0; pt.y = h / 2; return (pt); } if (angle == 180) { pt.x = -w / 2; pt.y = 0; return (pt); } if (angle == 270) { pt.x = 0; pt.y = -h / 2; return (pt); } pt.x = 0; pt.y = 0; if ((angle > 90) && (angle < 180)) { angle = 180 - angle; flip_x = 1; } if ((angle > 180) && (angle < 270)) { angle = angle - 180; flip_x = 1; flip_y = 1; } if ((angle > 270) && (angle < 360)) { angle = 360 - angle; flip_y = 1; } a_sin = (long) ((double) 32768 * sin ((double) angle * M_PI / (double) 180)); a_cos = (long) ((double) 32768 * cos ((double) angle * M_PI / (double) 180)); ws = w * w; hs = h * h; whs = 1; while ((ws > 32768) || (hs > 32768)) { ws = (ws + 1) / 2; /* Unfortunate limitations on integers makes */ hs = (hs + 1) / 2; /* drawing large ellipses problematic... */ whs *= 2; } while ((ws * hs) > (0x04000000L / whs)) { ws = (ws + 1) / 2; hs = (hs + 1) / 2; whs *= 2; } whs *= ws * hs; if ((a_cos * hs) > (a_sin * ws)) { x2 = w; y2 = 0; /* Starting point is exactly on ellipse */ g = x2 - 1; g = g * g * hs + 4 * ws - whs; while ((x2 * hs) > (y2 * ws)) /* Keep |tangent| > 1 */ { y2 += 2; g += ws * 4 * (y2 + 1); if (g > 0) /* Need to drop */ { x2 -= 2; g -= hs * 4 * x2; } if ((a_sin * x2) <= (y2 * a_cos)) { pt.x = (int) (x2 / 2); pt.y = (int) (y2 / 2); break; } } } else { x2 = 0; y2 = h; /* Starting point is exactly on ellipse */ g = y2 - 1; g = g * g * ws + 4 * hs - whs; while ((x2 * hs) < (y2 * ws)) { x2 += 2; g += hs * 4 * (x2 + 1); if (g > 0) /* Need to drop */ { y2 -= 2; g -= ws * 4 * y2; } if ((a_sin * x2) >= (y2 * a_cos)) { pt.x = (int) (x2 / 2); pt.y = (int) (y2 / 2); break; } } } if (flip_x) pt.x = -pt.x; if (flip_y) pt.y = -pt.y; return (pt); } #include "gd.h" #include #include #define WIDTH 500 #define HEIGHT 300 int main (int argc, char *argv[]) { gdImagePtr im = gdImageCreate (WIDTH, HEIGHT); int white = gdImageColorResolve (im, 0xFF, 0xFF, 0xFF), black = gdImageColorResolve (im, 0, 0, 0), red = gdImageColorResolve (im, 0xFF, 0xA0, 0xA0); FILE *out; /* filled arc - circle */ gdImageFilledArc (im, WIDTH / 5, HEIGHT / 4, 200, 200, 45, 90, red, gdPie); gdImageArc (im, WIDTH / 5, HEIGHT / 4, 200, 200, 45, 90, black); /* filled arc - ellipse */ gdImageFilledArc (im, WIDTH / 2, HEIGHT / 4, 200, 150, 45, 90, red, gdPie); gdImageArc (im, WIDTH / 2, HEIGHT / 4, 200, 150, 45, 90, black); /* reference lines */ gdImageLine (im, 0, HEIGHT / 4, WIDTH, HEIGHT / 4, black); gdImageLine (im, WIDTH / 5, 0, WIDTH / 5, HEIGHT, black); gdImageLine (im, WIDTH / 2, 0, WIDTH / 2, HEIGHT, black); gdImageLine (im, WIDTH / 2, HEIGHT / 4, WIDTH / 2 + 300, HEIGHT / 4 + 300, black); gdImageLine (im, WIDTH / 5, HEIGHT / 4, WIDTH / 5 + 300, HEIGHT / 4 + 300, black); /* TBB: Write img to test/arctest.png */ out = fopen ("test/arctest.png", "wb"); if (!out) { fprintf (stderr, "Can't create test/arctest.png\n"); exit (1); } gdImagePng (im, out); fclose (out); fprintf (stderr, "Test image written to test/arctest.png\n"); /* Destroy it */ gdImageDestroy (im); return 0; } #endif libwmf-0.2.13/src/extra/gd/gd_clip.c000066400000000000000000000030641441723000300171230ustar00rootroot00000000000000#include "gd.h" extern void* gdMalloc (size_t); extern void* gdRealloc (void*,size_t); extern void gdFree (void*); int gdImageBoundsSafe(gdImagePtr im, int x, int y) { int unsafe = 0; int safe = 1; int status; int i; gdClipRectanglePtr r; if (y < 0 ) return (unsafe); if (y >= im->sy) return (unsafe); if (x < 0 ) return (unsafe); if (x >= im->sx) return (unsafe); if (im->clip == 0) return (safe); if (im->clip->count == 0) return (safe); status = unsafe; for (i = 0; i < im->clip->count; i++) { r = &(im->clip->list[i]); if (y < r->y_min) continue; if (y > r->y_max) continue; if (x < r->x_min) continue; if (x > r->x_max) continue; status = safe; break; } return (status); } void gdClipSetFree(gdImagePtr im) { if (im->clip) { gdFree (im->clip->list); gdFree (im->clip); im->clip = 0; } } void gdClipSetReset(gdImagePtr im) { if (im->clip) { im->clip->count = 0; } } void gdClipSetAdd(gdImagePtr im,gdClipRectanglePtr rect) { gdClipRectanglePtr more; if (im->clip == 0) { im->clip = gdMalloc (sizeof (gdClipSet)); if (im->clip == 0) return; im->clip->max = 8; im->clip->count = 0; im->clip->list = gdMalloc (im->clip->max * sizeof (gdClipRectangle)); if (im->clip->list == 0) { gdFree (im->clip); im->clip = 0; return; } } if (im->clip->count == im->clip->max) { more = gdRealloc (im->clip->list,(im->clip->max + 8) * sizeof (gdClipRectangle)); if (more == 0) return; im->clip->max += 8; im->clip->list = more; } im->clip->list[im->clip->count] = (*rect); im->clip->count++; } libwmf-0.2.13/src/extra/gd/gd_clip.h000066400000000000000000000010021441723000300171160ustar00rootroot00000000000000#ifndef GD_CLIP_H #define GD_CLIP_H 1 #pragma GCC visibility push(hidden) #ifdef __cplusplus extern "C" { #endif /* ClipRectangle type for use as part of ClipSet. */ typedef struct { /* point must lie in range: x_min <= x <= x_max, y_min <= y <= y_max */ int x_min, y_min; int x_max, y_max; } gdClipRectangle, *gdClipRectanglePtr; /* ClipSet type */ typedef struct { int max; int count; gdClipRectangle* list; } gdClipSet; #ifdef __cplusplus } #endif #pragma GCC visibility pop #endif /* GD_CLIP_H */ libwmf-0.2.13/src/extra/gd/gd_gd.c000066400000000000000000000112401441723000300165610ustar00rootroot00000000000000 #include #include #include #include #include "gd.h" #define TRUE 1 #define FALSE 0 /* Exported functions: */ extern void gdImageGd (gdImagePtr im, FILE * out); #pragma GCC visibility push(hidden) int _gdGetColors (gdIOCtx * in, gdImagePtr im, int gd2xFlag); void _gdPutColors (gdImagePtr im, gdIOCtx * out); #pragma GCC visibility pop /* Use this for commenting out debug-print statements. */ /* Just use the first '#define' to allow all the prints... */ /*#define GD2_DBG(s) (s) */ #define GD2_DBG(s) /* */ /* Shared code to read color tables from gd file. */ /* */ int _gdGetColors (gdIOCtx * in, gdImagePtr im, int gd2xFlag) { int i; if (gd2xFlag) { if (!gdGetByte (&im->trueColor, in)) { goto fail1; } /* This should have been a word all along */ if (!im->trueColor) { if (!gdGetWord (&im->colorsTotal, in)) { goto fail1; } if (im->colorsTotal > gdMaxColors) { goto fail1; } } /* Int to accommodate truecolor single-color transparency */ if (!gdGetInt (&im->transparent, in)) { goto fail1; } } else { if (!gdGetByte (&im->colorsTotal, in)) { goto fail1; } if (!gdGetWord (&im->transparent, in)) { goto fail1; } if (im->transparent == 257) { im->transparent = (-1); } } GD2_DBG (printf ("Pallette had %d colours (T=%d)\n", im->colorsTotal, im->transparent)); for (i = 0; (i < gdMaxColors); i++) { if (!gdGetByte (&im->red[i], in)) { goto fail1; } if (!gdGetByte (&im->green[i], in)) { goto fail1; } if (!gdGetByte (&im->blue[i], in)) { goto fail1; } if (gd2xFlag) { if (!gdGetByte (&im->alpha[i], in)) { goto fail1; } } } for (i = 0; (i < im->colorsTotal); i++) { im->open[i] = 0; }; return TRUE; fail1: return FALSE; } /* */ /* Use the common basic header info to make the image object. */ /* This is also called from _gd2CreateFromFile */ /* */ static gdImagePtr _gdCreateFromFile (gdIOCtx * in, int *sx, int *sy) { gdImagePtr im; int gd2xFlag = 0; if (!gdGetWord (sx, in)) { goto fail1; } if (*sx == 65535) { /* This is a gd 2.0 .gd file */ gd2xFlag = 1; if (!gdGetWord (sx, in)) { goto fail1; } } if (!gdGetWord (sy, in)) { goto fail1; } GD2_DBG (printf ("Image is %dx%d\n", *sx, *sy)); im = gdImageCreate (*sx, *sy); if (!im) { goto fail1; } if (!_gdGetColors (in, im, gd2xFlag)) { goto fail2; } return im; fail2: gdImageDestroy (im); fail1: return 0; } gdImagePtr gdImageCreateFromGd (FILE * inFile) { gdImagePtr im; gdIOCtx *in; in = gdNewFileCtx (inFile); im = gdImageCreateFromGdCtx (in); in->free (in); return im; } gdImagePtr gdImageCreateFromGdCtx (gdIOCtxPtr in) { int sx, sy; int x, y; gdImagePtr im; /* Read the header */ im = _gdCreateFromFile (in, &sx, &sy); if (im == NULL) { goto fail1; }; /* Then the data... */ for (y = 0; (y < sy); y++) { for (x = 0; (x < sx); x++) { int ch; ch = gdGetC (in); if (ch == EOF) { goto fail2; } /* ROW-MAJOR IN GD 1.3 */ im->pixels[y][x] = ch; } } return im; fail2: gdImageDestroy (im); fail1: return 0; } void _gdPutColors (gdImagePtr im, gdIOCtx * out) { int i; gdPutC (im->trueColor, out); if (!im->trueColor) { gdPutWord (im->colorsTotal, out); } gdPutInt (im->transparent, out); if (!im->trueColor) { for (i = 0; (i < gdMaxColors); i++) { gdPutC ((unsigned char) im->red[i], out); gdPutC ((unsigned char) im->green[i], out); gdPutC ((unsigned char) im->blue[i], out); gdPutC ((unsigned char) im->alpha[i], out); } } } static void _gdPutHeader (gdImagePtr im, gdIOCtx * out) { /* 65535 indicates this is a gd 2.x .gd file. */ gdPutWord (65535, out); gdPutWord (im->sx, out); gdPutWord (im->sy, out); _gdPutColors (im, out); } static void _gdImageGd (gdImagePtr im, gdIOCtx * out) { int x, y; _gdPutHeader (im, out); for (y = 0; (y < im->sy); y++) { for (x = 0; (x < im->sx); x++) { /* ROW-MAJOR IN GD 1.3 */ if (im->trueColor) { gdPutInt (im->tpixels[y][x], out); } else { gdPutC ((unsigned char) im->pixels[y][x], out); } } } } void gdImageGd (gdImagePtr im, FILE * outFile) { gdIOCtx *out = gdNewFileCtx (outFile); _gdImageGd (im, out); out->free (out); } void * gdImageGdPtr (gdImagePtr im, int *size) { void *rv; gdIOCtx *out = gdNewDynamicCtx (2048, NULL); _gdImageGd (im, out); rv = gdDPExtractData (out, size); out->free (out); return rv; } libwmf-0.2.13/src/extra/gd/gd_gd2.c000066400000000000000000000473621441723000300166610ustar00rootroot00000000000000/* * gd_gd2.c * * Implements the I/O and support for the GD2 format. * * Changing the definition of GD2_DBG (below) will cause copious messages * to be displayed while it processes requests. * * Designed, Written & Copyright 1999, Philip Warner. * */ #include #include #include #include #include #include #include "gd.h" #include "gdhelpers.h" #define TRUE 1 #define FALSE 0 /* Use this for commenting out debug-print statements. */ /* Just use the first '#define' to allow all the prints... */ /*#define GD2_DBG(s) (s) */ #define GD2_DBG(s) typedef struct { int offset; int size; } t_chunk_info; #pragma GCC visibility push(hidden) extern int _gdGetColors (gdIOCtx * in, gdImagePtr im, int gd2xFlag); extern void _gdPutColors (gdImagePtr im, gdIOCtx * out); #pragma GCC visibility pop /* */ /* Read the extra info in the gd2 header. */ /* */ static int _gd2GetHeader (gdIOCtxPtr in, int *sx, int *sy, int *cs, int *vers, int *fmt, int *ncx, int *ncy, t_chunk_info ** chunkIdx) { int i; int ch; char id[5]; t_chunk_info *cidx = NULL; int sidx; int nc; GD2_DBG (printf ("Reading gd2 header info\n")); for (i = 0; i < 4; i++) { ch = gdGetC (in); if (ch == EOF) { goto fail1; }; id[i] = ch; }; id[4] = 0; GD2_DBG (printf ("Got file code: %s\n", id)); /* Equiv. of 'magick'. */ if (strcmp (id, GD2_ID) != 0) { GD2_DBG (printf ("Not a valid gd2 file\n")); goto fail1; }; /* Version */ if (gdGetWord (vers, in) != 1) { goto fail1; }; GD2_DBG (printf ("Version: %d\n", *vers)); if ((*vers != 1) && (*vers != 2)) { GD2_DBG (printf ("Bad version: %d\n", *vers)); goto fail1; }; /* Image Size */ if (!gdGetWord (sx, in)) { GD2_DBG (printf ("Could not get x-size\n")); goto fail1; } if (!gdGetWord (sy, in)) { GD2_DBG (printf ("Could not get y-size\n")); goto fail1; } GD2_DBG (printf ("Image is %dx%d\n", *sx, *sy)); /* Chunk Size (pixels, not bytes!) */ if (gdGetWord (cs, in) != 1) { goto fail1; }; GD2_DBG (printf ("ChunkSize: %d\n", *cs)); if ((*cs < GD2_CHUNKSIZE_MIN) || (*cs > GD2_CHUNKSIZE_MAX)) { GD2_DBG (printf ("Bad chunk size: %d\n", *cs)); goto fail1; }; /* Data Format */ if (gdGetWord (fmt, in) != 1) { goto fail1; }; GD2_DBG (printf ("Format: %d\n", *fmt)); if ((*fmt != GD2_FMT_RAW) && (*fmt != GD2_FMT_COMPRESSED)) { GD2_DBG (printf ("Bad data format: %d\n", *fmt)); goto fail1; }; /* # of chunks wide */ if (gdGetWord (ncx, in) != 1) { goto fail1; }; GD2_DBG (printf ("%d Chunks Wide\n", *ncx)); /* # of chunks high */ if (gdGetWord (ncy, in) != 1) { goto fail1; }; GD2_DBG (printf ("%d Chunks vertically\n", *ncy)); if ((*fmt) == GD2_FMT_COMPRESSED) { if (*ncx <= 0 || *ncy <= 0 || *ncx > INT_MAX / *ncy) { GD2_DBG(printf ("Illegal chunk counts: %d * %d\n", *ncx, *ncy)); goto fail1; } nc = (*ncx) * (*ncy); GD2_DBG (printf ("Reading %d chunk index entries\n", nc)); sidx = sizeof (t_chunk_info) * nc; cidx = gdCalloc (sidx, 1); for (i = 0; i < nc; i++) { if (gdGetInt (&cidx[i].offset, in) != 1) { goto fail1; }; if (gdGetInt (&cidx[i].size, in) != 1) { goto fail1; }; }; *chunkIdx = cidx; cidx = NULL; }; GD2_DBG (printf ("gd2 header complete\n")); return 1; fail1: gdFree (cidx); return 0; } static gdImagePtr _gd2CreateFromFile (gdIOCtxPtr in, int *sx, int *sy, int *cs, int *vers, int *fmt, int *ncx, int *ncy, t_chunk_info ** cidx) { gdImagePtr im; if (_gd2GetHeader (in, sx, sy, cs, vers, fmt, ncx, ncy, cidx) != 1) { GD2_DBG (printf ("Bad GD2 header\n")); goto fail1; } im = gdImageCreate (*sx, *sy); if (im == NULL) { GD2_DBG (printf ("Could not create gdImage\n")); goto fail1; }; if (!_gdGetColors (in, im, (*vers) == 2)) { GD2_DBG (printf ("Could not read color palette\n")); goto fail2; } GD2_DBG (printf ("Image palette completed: %d colours\n", im->colorsTotal)); return im; fail2: gdImageDestroy (im); return 0; fail1: return 0; } static int _gd2ReadChunk (int offset, unsigned char *compBuf, int compSize, unsigned char *chunkBuf, uLongf * chunkLen, gdIOCtx * in) { int zerr; if (gdTell (in) != offset) { GD2_DBG (printf ("Positioning in file to %d\n", offset)); gdSeek (in, offset); } else { GD2_DBG (printf ("Already Positioned in file to %d\n", offset)); }; /* Read and uncompress an entire chunk. */ GD2_DBG (printf ("Reading file\n")); if (gdGetBuf (compBuf, compSize, in) != compSize) { return FALSE; }; GD2_DBG (printf ("Got %d bytes. Uncompressing into buffer of %d bytes\n", compSize, *chunkLen)); zerr = uncompress (chunkBuf, chunkLen, compBuf, compSize); if (zerr != Z_OK) { GD2_DBG (printf ("Error %d from uncompress\n", zerr)); return FALSE; }; GD2_DBG (printf ("Got chunk\n")); return TRUE; } gdImagePtr gdImageCreateFromGd2 (FILE * inFile) { gdIOCtx *in = gdNewFileCtx (inFile); gdImagePtr im; im = gdImageCreateFromGd2Ctx (in); in->free (in); return im; } gdImagePtr gdImageCreateFromGd2Ctx (gdIOCtxPtr in) { int sx, sy; int i; int ncx, ncy, nc, cs, cx, cy; int x, y, ylo, yhi, xlo, xhi; int vers, fmt; t_chunk_info *chunkIdx = NULL; /* So we can gdFree it with impunity. */ unsigned char *chunkBuf = NULL; /* So we can gdFree it with impunity. */ int chunkNum = 0; int chunkMax=0; uLongf chunkLen; int chunkPos=0; int compMax; int bytesPerPixel; unsigned char *compBuf = NULL; /* So we can gdFree it with impunity. */ gdImagePtr im; /* Get the header */ im = _gd2CreateFromFile (in, &sx, &sy, &cs, &vers, &fmt, &ncx, &ncy, &chunkIdx); if (im == NULL) { gdFree (chunkIdx); return 0; }; bytesPerPixel = im->trueColor ? 4 : 1; nc = ncx * ncy; if (fmt == GD2_FMT_COMPRESSED) { /* Find the maximum compressed chunk size. */ compMax = 0; for (i = 0; (i < nc); i++) { if (chunkIdx[i].size > compMax) { compMax = chunkIdx[i].size; }; }; compMax++; /* Allocate buffers */ chunkMax = cs * bytesPerPixel * cs; chunkBuf = gdCalloc (chunkMax, 1); compBuf = gdCalloc (compMax, 1); GD2_DBG (printf ("Largest compressed chunk is %d bytes\n", compMax)); }; /* if ( (ncx != sx / cs) || (ncy != sy / cs)) { */ /* goto fail2; */ /* }; */ /* Read the data... */ for (cy = 0; (cy < ncy); cy++) { for (cx = 0; (cx < ncx); cx++) { ylo = cy * cs; yhi = ylo + cs; if (yhi > im->sy) { yhi = im->sy; }; GD2_DBG (printf ("Processing Chunk %d (%d, %d), y from %d to %d\n", chunkNum, cx, cy, ylo, yhi)); if (fmt == GD2_FMT_COMPRESSED) { chunkLen = chunkMax; if (!_gd2ReadChunk (chunkIdx[chunkNum].offset, compBuf, chunkIdx[chunkNum].size, chunkBuf, &chunkLen, in)) { GD2_DBG (printf ("Error reading comproessed chunk\n")); goto fail2; }; chunkPos = 0; }; for (y = ylo; (y < yhi); y++) { xlo = cx * cs; xhi = xlo + cs; if (xhi > im->sx) { xhi = im->sx; }; /*GD2_DBG(printf("y=%d: ",y)); */ if (fmt != GD2_FMT_COMPRESSED) { for (x = xlo; x < xhi; x++) { if (im->trueColor) { if (!gdGetInt (&im->tpixels[y][x], in)) { fprintf(stderr, "gd2: EOF while reading\n"); gdImageDestroy(im); return NULL; } } else { int ch; if (!gdGetByte (&ch, in)) { fprintf(stderr, "gd2: EOF while reading\n"); gdImageDestroy(im); return NULL; } im->pixels[y][x] = ch; } } } else { for (x = xlo; x < xhi; x++) { if (im->trueColor) { /* 2.0.1: work around a gcc bug by being verbose. TBB */ int a = chunkBuf[chunkPos++] << 24; int r = chunkBuf[chunkPos++] << 16; int g = chunkBuf[chunkPos++] << 8; int b = chunkBuf[chunkPos++]; im->pixels[y][x] = a + r + g + b; } else { im->pixels[y][x] = chunkBuf[chunkPos++]; } }; }; /*GD2_DBG(printf("\n")); */ }; chunkNum++; }; }; GD2_DBG (printf ("Freeing memory\n")); gdFree (chunkBuf); gdFree (compBuf); gdFree (chunkIdx); GD2_DBG (printf ("Done\n")); return im; fail2: gdImageDestroy (im); gdFree (chunkBuf); gdFree (compBuf); gdFree (chunkIdx); return 0; } gdImagePtr gdImageCreateFromGd2Part (FILE * inFile, int srcx, int srcy, int w, int h) { gdImagePtr im; gdIOCtx *in = gdNewFileCtx (inFile); im = gdImageCreateFromGd2PartCtx (in, srcx, srcy, w, h); in->free (in); return im; } gdImagePtr gdImageCreateFromGd2PartCtx (gdIOCtx * in, int srcx, int srcy, int w, int h) { int scx, scy, ecx, ecy, fsx, fsy; int nc, ncx, ncy, cs, cx, cy; int x, y, ylo, yhi, xlo, xhi; int dstart, dpos; int i; int ch, vers, fmt; t_chunk_info *chunkIdx = NULL; unsigned char *chunkBuf = NULL; int chunkNum; int chunkMax=0; uLongf chunkLen; int chunkPos=0; int compMax; unsigned char *compBuf = NULL; gdImagePtr im; /* */ /* The next few lines are basically copied from gd2CreateFromFile */ /* - we change the file size, so don't want to use the code directly. */ /* but we do need to know the file size. */ /* */ if (_gd2GetHeader (in, &fsx, &fsy, &cs, &vers, &fmt, &ncx, &ncy, &chunkIdx) != 1) { goto fail1; } GD2_DBG (printf ("File size is %dx%d\n", fsx, fsy)); /* This is the difference - make a file based on size of chunks. */ im = gdImageCreate (w, h); if (im == NULL) { goto fail1; }; if (!_gdGetColors (in, im, vers == 2)) { goto fail2; } GD2_DBG (printf ("Image palette completed: %d colours\n", im->colorsTotal)); /* Process the header info */ nc = ncx * ncy; if (fmt == GD2_FMT_COMPRESSED) { /* Find the maximum compressed chunk size. */ compMax = 0; for (i = 0; (i < nc); i++) { if (chunkIdx[i].size > compMax) { compMax = chunkIdx[i].size; }; }; compMax++; if (im->trueColor) { chunkMax = cs * cs * 4; } else { chunkMax = cs * cs; } chunkBuf = gdCalloc (chunkMax, 1); compBuf = gdCalloc (compMax, 1); }; /* Don't bother with this... */ /* if ( (ncx != sx / cs) || (ncy != sy / cs)) { */ /* goto fail2; */ /* }; */ /* Work out start/end chunks */ scx = srcx / cs; scy = srcy / cs; if (scx < 0) { scx = 0; }; if (scy < 0) { scy = 0; }; ecx = (srcx + w) / cs; ecy = (srcy + h) / cs; if (ecx >= ncx) { ecx = ncx - 1; }; if (ecy >= ncy) { ecy = ncy - 1; }; /* Remember file position of image data. */ dstart = gdTell (in); GD2_DBG (printf ("Data starts at %d\n", dstart)); /* Loop through the chunks. */ for (cy = scy; (cy <= ecy); cy++) { ylo = cy * cs; yhi = ylo + cs; if (yhi > fsy) { yhi = fsy; }; for (cx = scx; (cx <= ecx); cx++) { xlo = cx * cs; xhi = xlo + cs; if (xhi > fsx) { xhi = fsx; }; GD2_DBG (printf ("Processing Chunk (%d, %d), from %d to %d\n", cx, cy, ylo, yhi)); if (fmt == GD2_FMT_RAW) { GD2_DBG (printf ("Using raw format data\n")); if (im->trueColor) { dpos = (cy * (cs * fsx) + cx * cs * (yhi - ylo) * 4) + dstart; } else { dpos = cy * (cs * fsx) + cx * cs * (yhi - ylo) + dstart; } if (gdSeek (in, dpos) != 0) { printf ("Error from seek: %d\n", errno); goto fail2; }; GD2_DBG (printf ("Reading (%d, %d) from position %d\n", cx, cy, dpos - dstart)); } else { chunkNum = cx + cy * ncx; chunkLen = chunkMax; if (!_gd2ReadChunk (chunkIdx[chunkNum].offset, compBuf, chunkIdx[chunkNum].size, chunkBuf, &chunkLen, in)) { printf ("Error reading comproessed chunk\n"); goto fail2; }; chunkPos = 0; GD2_DBG (printf ("Reading (%d, %d) from chunk %d\n", cx, cy, chunkNum)); }; GD2_DBG (printf (" into (%d, %d) - (%d, %d)\n", xlo, ylo, xhi, yhi)); for (y = ylo; (y < yhi); y++) { for (x = xlo; x < xhi; x++) { if (fmt != GD2_FMT_COMPRESSED) { if (im->trueColor) { if (!gdGetInt (&ch, in)) { ch = 0; /*printf("EOF while reading file\n"); */ /*goto fail2; */ } } else { ch = gdGetC (in); if (ch == EOF) { ch = 0; /*printf("EOF while reading file\n"); */ /*goto fail2; */ } } } else { if (im->trueColor) { ch = (chunkBuf[chunkPos] << 24) + (chunkBuf[chunkPos+1] << 16) + (chunkBuf[chunkPos+2] << 8) + (chunkBuf[chunkPos+3]); chunkPos+=4; } else { ch = chunkBuf[chunkPos++]; } }; /* Only use a point that is in the image. */ if ((x >= srcx) && (x < (srcx + w)) && (x < fsx) && (x >= 0) && (y >= srcy) && (y < (srcy + h)) && (y < fsy) && (y >= 0) ) { im->pixels[y - srcy][x - srcx] = ch; } }; }; }; }; gdFree (chunkBuf); gdFree (compBuf); gdFree (chunkIdx); return im; fail2: gdImageDestroy (im); fail1: gdFree (chunkBuf); gdFree (compBuf); gdFree (chunkIdx); return 0; } static void _gd2PutHeader (gdImagePtr im, gdIOCtx * out, int cs, int fmt, int cx, int cy) { int i; /* Send the gd2 id, to verify file format. */ for (i = 0; i < 4; i++) { gdPutC ((unsigned char) (GD2_ID[i]), out); }; /* */ /* We put the version info first, so future versions can easily change header info. */ /* */ gdPutWord (GD2_VERS, out); gdPutWord (im->sx, out); gdPutWord (im->sy, out); gdPutWord (cs, out); gdPutWord (fmt, out); gdPutWord (cx, out); gdPutWord (cy, out); } static void _gdImageGd2 (gdImagePtr im, gdIOCtx * out, int cs, int fmt) { int ncx, ncy, cx, cy; int x, y, ylo, yhi, xlo, xhi; int chunkLen; int chunkNum = 0; char *chunkData = NULL; /* So we can gdFree it with impunity. */ char *compData = NULL; /* So we can gdFree it with impunity. */ uLongf compLen; int idxPos=0; int idxSize; t_chunk_info *chunkIdx = NULL; int posSave; int bytesPerPixel = im->trueColor ? 4 : 1; int compMax=0; /*printf("Trying to write GD2 file\n"); */ /* */ /* Force fmt to a valid value since we don't return anything. */ /* */ if ((fmt == 0) || ((fmt != GD2_FMT_RAW) && (fmt != GD2_FMT_COMPRESSED))) { fmt = GD2_FMT_COMPRESSED; }; /* */ /* Make sure chunk size is valid. These are arbitrary values; 64 because it seems */ /* a little silly to expect performance improvements on a 64x64 bit scale, and */ /* 4096 because we buffer one chunk, and a 16MB buffer seems a little largei - it may be */ /* OK for one user, but for another to read it, they require the buffer. */ /* */ if (cs == 0) { cs = GD2_CHUNKSIZE; } else if (cs < GD2_CHUNKSIZE_MIN) { cs = GD2_CHUNKSIZE_MIN; } else if (cs > GD2_CHUNKSIZE_MAX) { cs = GD2_CHUNKSIZE_MAX; }; /* Work out number of chunks. */ ncx = im->sx / cs + 1; ncy = im->sy / cs + 1; /* Write the standard header. */ _gd2PutHeader (im, out, cs, fmt, ncx, ncy); if (fmt == GD2_FMT_COMPRESSED) { /* */ /* Work out size of buffer for compressed data, If CHUNKSIZE is large, */ /* then these will be large! */ /* */ /* The zlib notes say output buffer size should be (input size) * 1.01 * 12 */ /* - we'll use 1.02 to be paranoid. */ /* */ compMax = cs * bytesPerPixel * cs * 1.02 + 12; /* */ /* Allocate the buffers. */ /* */ chunkData = gdCalloc (cs * bytesPerPixel * cs, 1); compData = gdCalloc (compMax, 1); /* */ /* Save the file position of chunk index, and allocate enough space for */ /* each chunk_info block . */ /* */ idxPos = gdTell (out); idxSize = ncx * ncy * sizeof (t_chunk_info); GD2_DBG (printf ("Index size is %d\n", idxSize)); gdSeek (out, idxPos + idxSize); chunkIdx = gdCalloc (idxSize * sizeof (t_chunk_info), 1); }; _gdPutColors (im, out); GD2_DBG (printf ("Size: %dx%d\n", im->sx, im->sy)); GD2_DBG (printf ("Chunks: %dx%d\n", ncx, ncy)); for (cy = 0; (cy < ncy); cy++) { for (cx = 0; (cx < ncx); cx++) { ylo = cy * cs; yhi = ylo + cs; if (yhi > im->sy) { yhi = im->sy; }; GD2_DBG (printf ("Processing Chunk (%dx%d), y from %d to %d\n", cx, cy, ylo, yhi)); chunkLen = 0; for (y = ylo; (y < yhi); y++) { /*GD2_DBG(printf("y=%d: ",y)); */ xlo = cx * cs; xhi = xlo + cs; if (xhi > im->sx) { xhi = im->sx; }; if (fmt == GD2_FMT_COMPRESSED) { for (x = xlo; x < xhi; x++) { int p = im->pixels[y][x]; /*GD2_DBG(printf("%d...",x)); */ if (im->trueColor) { chunkData[chunkLen++] = gdTrueColorGetAlpha (p); chunkData[chunkLen++] = gdTrueColorGetRed (p); chunkData[chunkLen++] = gdTrueColorGetGreen (p); chunkData[chunkLen++] = gdTrueColorGetBlue (p); } else { chunkData[chunkLen++] = p; } }; } else { for (x = xlo; x < xhi; x++) { /*GD2_DBG(printf("%d, ",x)); */ if (im->trueColor) { gdPutInt (im->tpixels[y][x], out); } else { gdPutC ((unsigned char) im->pixels[y][x], out); } }; }; /*GD2_DBG(printf("y=%d done.\n",y)); */ }; if (fmt == GD2_FMT_COMPRESSED) { compLen = compMax; if (compress ((unsigned char *) &compData[0], &compLen, (unsigned char *) &chunkData[0], chunkLen) != Z_OK) { printf ("Error from compressing\n"); } else { chunkIdx[chunkNum].offset = gdTell (out); chunkIdx[chunkNum++].size = compLen; GD2_DBG (printf ("Chunk %d size %d offset %d\n", chunkNum, chunkIdx[chunkNum - 1].size, chunkIdx[chunkNum - 1].offset)); if (gdPutBuf (compData, compLen, out) <= 0) { /* Any alternate suggestions for handling this? */ printf ("Error %d on write\n", errno); }; }; }; }; }; if (fmt == GD2_FMT_COMPRESSED) { /* Save the position, write the index, restore position (paranoia). */ GD2_DBG (printf ("Seeking %d to write index\n", idxPos)); posSave = gdTell (out); gdSeek (out, idxPos); GD2_DBG (printf ("Writing index\n")); for (x = 0; x < chunkNum; x++) { GD2_DBG (printf ("Chunk %d size %d offset %d\n", x, chunkIdx[x].size, chunkIdx[x].offset)); gdPutInt (chunkIdx[x].offset, out); gdPutInt (chunkIdx[x].size, out); }; /* We don't use fwrite for *endian reasons. */ /*fwrite(chunkIdx, sizeof(int)*2, chunkNum, out); */ gdSeek (out, posSave); }; GD2_DBG (printf ("Freeing memory\n")); gdFree (chunkData); gdFree (compData); gdFree (chunkIdx); GD2_DBG (printf ("Done\n")); /*printf("Memory block size is %d\n",gdTell(out)); */ } void gdImageGd2 (gdImagePtr im, FILE * outFile, int cs, int fmt) { gdIOCtx *out = gdNewFileCtx (outFile); _gdImageGd2 (im, out, cs, fmt); out->free (out); } void * gdImageGd2Ptr (gdImagePtr im, int cs, int fmt, int *size) { void *rv; gdIOCtx *out = gdNewDynamicCtx (2048, NULL); _gdImageGd2 (im, out, cs, fmt); rv = gdDPExtractData (out, size); out->free (out); return rv; } libwmf-0.2.13/src/extra/gd/gd_io.c000066400000000000000000000054571441723000300166130ustar00rootroot00000000000000 /* * io.c * * Implements the imple I/O 'helper' routines. * * Not really essential, but these routines were used extensively in GD, * so they were moved here. They also make IOCtx calls look better... * * Written (or, at least, moved) 1999, Philip Warner. * */ #include #include #include #include "gd.h" /* Use this for commenting out debug-print statements. */ /* Just use the first '#define' to allow all the prints... */ /*#define IO_DBG(s) (s) */ #define IO_DBG(s) /* * Write out a word to the I/O context pointer */ void Putword (int w, gdIOCtx * ctx) { unsigned char buf[2]; buf[0] = w & 0xff; buf[1] = (w / 256) & 0xff; (ctx->putBuf) (ctx, (char *) buf, 2); } void Putchar (int c, gdIOCtx * ctx) { (ctx->putC) (ctx, c & 0xff); } void gdPutC (const unsigned char c, gdIOCtx * ctx) { (ctx->putC) (ctx, c); } void gdPutWord (int w, gdIOCtx * ctx) { IO_DBG (printf ("Putting word...\n")); (ctx->putC) (ctx, (unsigned char) (w >> 8)); (ctx->putC) (ctx, (unsigned char) (w & 0xFF)); IO_DBG (printf ("put.\n")); } void gdPutInt (int w, gdIOCtx * ctx) { IO_DBG (printf ("Putting int...\n")); (ctx->putC) (ctx, (unsigned char) (w >> 24)); (ctx->putC) (ctx, (unsigned char) ((w >> 16) & 0xFF)); (ctx->putC) (ctx, (unsigned char) ((w >> 8) & 0xFF)); (ctx->putC) (ctx, (unsigned char) (w & 0xFF)); IO_DBG (printf ("put.\n")); } int gdGetC (gdIOCtx * ctx) { return ((ctx->getC) (ctx)); } int gdGetByte (int *result, gdIOCtx * ctx) { int r; r = (ctx->getC) (ctx); if (r == EOF) { return 0; } *result = r; return 1; } int gdGetWord (int *result, gdIOCtx * ctx) { int r; r = (ctx->getC) (ctx); if (r == EOF) { return 0; } *result = r << 8; r = (ctx->getC) (ctx); if (r == EOF) { return 0; } *result += r; return 1; } int gdGetInt (int *result, gdIOCtx * ctx) { int r; r = (ctx->getC) (ctx); if (r == EOF) { return 0; } *result = r << 24; r = (ctx->getC) (ctx); if (r == EOF) { return 0; } *result += r << 16; r = (ctx->getC) (ctx); if (r == EOF) { return 0; } *result += r << 8; r = (ctx->getC) (ctx); if (r == EOF) { return 0; } *result += r; return 1; } int gdPutBuf (const void *buf, int size, gdIOCtx * ctx) { IO_DBG (printf ("Putting buf...\n")); return (ctx->putBuf) (ctx, buf, size); IO_DBG (printf ("put.\n")); } int gdGetBuf (void *buf, int size, gdIOCtx * ctx) { return (ctx->getBuf) (ctx, buf, size); } int gdSeek (gdIOCtx * ctx, const int pos) { IO_DBG (printf ("Seeking...\n")); return ((ctx->seek) (ctx, pos)); IO_DBG (printf ("Done.\n")); } long gdTell (gdIOCtx * ctx) { IO_DBG (printf ("Telling...\n")); return ((ctx->tell) (ctx)); IO_DBG (printf ("told.\n")); } libwmf-0.2.13/src/extra/gd/gd_io.h000066400000000000000000000017261441723000300166130ustar00rootroot00000000000000#ifndef GD_IO_H #define GD_IO_H 1 #include #pragma GCC visibility push(hidden) typedef struct gdIOCtx { int (*getC)(struct gdIOCtx*); int (*getBuf)(struct gdIOCtx*, void*, int); void (*putC)(struct gdIOCtx*, int); int (*putBuf)(struct gdIOCtx*, const void*, int); int (*seek)(struct gdIOCtx*, const int); long (*tell)(struct gdIOCtx*); void (*free)(struct gdIOCtx*); } gdIOCtx; typedef struct gdIOCtx *gdIOCtxPtr; void Putword(int w, gdIOCtx *ctx); void Putchar(int c, gdIOCtx *ctx); void gdPutC(const unsigned char c, gdIOCtx *ctx); int gdPutBuf(const void *, int, gdIOCtx*); void gdPutWord(int w, gdIOCtx *ctx); void gdPutInt(int w, gdIOCtx *ctx); int gdGetC(gdIOCtx *ctx); int gdGetBuf(void *, int, gdIOCtx*); int gdGetByte(int *result, gdIOCtx *ctx); int gdGetWord(int *result, gdIOCtx *ctx); int gdGetInt(int *result, gdIOCtx *ctx); int gdSeek(gdIOCtx *ctx, const int); long gdTell(gdIOCtx *ctx); #pragma GCC visibility pop #endif libwmf-0.2.13/src/extra/gd/gd_io_dp.c000066400000000000000000000167451441723000300173000ustar00rootroot00000000000000 /* * io_dp.c * * Implements the dynamic pointer interface. * * Based on GD.pm code by Lincoln Stein for interfacing to libgd. * Added support for reading as well as support for 'tell' and 'seek'. * * As will all I/O modules, most functions are for local use only (called * via function pointers in the I/O context). * * gdDPExtractData is the exception to this: it will return the pointer to * the internal data, and reset the internal storage. * * Written/Modified 1999, Philip Warner. * */ #include #include #include #include "gd.h" #include "gdhelpers.h" #define TRUE 1 #define FALSE 0 /* this is used for creating images in main memory */ typedef struct dpStruct { void *data; int logicalSize; int realSize; int dataGood; int pos; } dynamicPtr; typedef struct dpIOCtx { gdIOCtx ctx; dynamicPtr *dp; } dpIOCtx; typedef struct dpIOCtx *dpIOCtxPtr; /* these functions operate on in-memory dynamic pointers */ static int allocDynamic (dynamicPtr * dp, int initialSize, void *data); static int appendDynamic (dynamicPtr * dp, const void *src, int size); static int gdReallocDynamic (dynamicPtr * dp, int required); static int trimDynamic (dynamicPtr * dp); static void gdFreeDynamicCtx (struct gdIOCtx *ctx); static dynamicPtr *newDynamic (int initialSize, void *data); static int dynamicPutbuf (struct gdIOCtx *, const void *, int); static void dynamicPutchar (struct gdIOCtx *, int a); static int dynamicGetbuf (gdIOCtxPtr ctx, void *buf, int len); static int dynamicGetchar (gdIOCtxPtr ctx); static int dynamicSeek (struct gdIOCtx *, const int); static long dynamicTell (struct gdIOCtx *); /* return data as a dynamic pointer */ gdIOCtx * gdNewDynamicCtx (int initialSize, void *data) { dpIOCtx *ctx; dynamicPtr *dp; ctx = (dpIOCtx *) gdMalloc (sizeof (dpIOCtx)); if (ctx == NULL) { return NULL; } dp = newDynamic (initialSize, data); if (!dp) { gdFree (ctx); return NULL; }; ctx->dp = dp; ctx->ctx.getC = dynamicGetchar; ctx->ctx.putC = dynamicPutchar; ctx->ctx.getBuf = dynamicGetbuf; ctx->ctx.putBuf = dynamicPutbuf; ctx->ctx.seek = dynamicSeek; ctx->ctx.tell = dynamicTell; ctx->ctx.free = gdFreeDynamicCtx; return (gdIOCtx *) ctx; } void * gdDPExtractData (struct gdIOCtx *ctx, int *size) { dynamicPtr *dp; dpIOCtx *dctx; void *data; dctx = (dpIOCtx *) ctx; dp = dctx->dp; /* clean up the data block and return it */ if (dp->dataGood) { trimDynamic (dp); *size = dp->logicalSize; data = dp->data; } else { *size = 0; data = NULL; if (dp->data != NULL) { gdFree (dp->data); } } dp->data = NULL; dp->realSize = 0; dp->logicalSize = 0; return data; } static void gdFreeDynamicCtx (struct gdIOCtx *ctx) { dynamicPtr *dp; dpIOCtx *dctx; dctx = (dpIOCtx *) ctx; dp = dctx->dp; gdFree (ctx); /* clean up the data block and return it */ if (dp->data != NULL) { gdFree (dp->data); dp->data = NULL; } dp->realSize = 0; dp->logicalSize = 0; gdFree (dp); } static long dynamicTell (struct gdIOCtx *ctx) { dpIOCtx *dctx; dctx = (dpIOCtx *) ctx; return (dctx->dp->pos); } static int dynamicSeek (struct gdIOCtx *ctx, const int pos) { int bytesNeeded; dynamicPtr *dp; dpIOCtx *dctx; dctx = (dpIOCtx *) ctx; dp = dctx->dp; if (!dp->dataGood) return FALSE; bytesNeeded = pos; if (bytesNeeded > dp->realSize) { if (!gdReallocDynamic (dp, dp->realSize * 2)) { dp->dataGood = FALSE; return FALSE; } } /* if we get here, we can be sure that we have enough bytes to copy safely */ /* Extend the logical size if we seek beyond EOF. */ if (pos > dp->logicalSize) { dp->logicalSize = pos; }; dp->pos = pos; return TRUE; } /* return data as a dynamic pointer */ static dynamicPtr * newDynamic (int initialSize, void *data) { dynamicPtr *dp; dp = (dynamicPtr *) gdMalloc (sizeof (dynamicPtr)); if (dp == NULL) { return NULL; } if (!allocDynamic (dp, initialSize, data)) { gdFree (dp); return NULL; } dp->pos = 0; return dp; } static int dynamicPutbuf (struct gdIOCtx *ctx, const void *buf, int size) { dpIOCtx *dctx; dctx = (dpIOCtx *) ctx; appendDynamic (dctx->dp, buf, size); if (dctx->dp->dataGood) { return size; } else { return -1; }; } static void dynamicPutchar (struct gdIOCtx *ctx, int a) { unsigned char b; dpIOCtxPtr dctx; b = a; dctx = (dpIOCtxPtr) ctx; appendDynamic (dctx->dp, &b, 1); } static int dynamicGetbuf (gdIOCtxPtr ctx, void *buf, int len) { int rlen, remain; dpIOCtxPtr dctx; dynamicPtr *dp; dctx = (dpIOCtxPtr) ctx; dp = dctx->dp; remain = dp->logicalSize - dp->pos; if (remain >= len) { rlen = len; } else { if (remain == 0) { return EOF; } rlen = remain; } memcpy (buf, (void *) ((char *) dp->data + dp->pos), rlen); dp->pos += rlen; return rlen; } static int dynamicGetchar (gdIOCtxPtr ctx) { unsigned char b; int rv; rv = dynamicGetbuf (ctx, &b, 1); if (rv != 1) { return EOF; } else { return b; /* (b & 0xff); */ } } /* ********************************************************************* * InitDynamic - Return a dynamically resizable void* * * ********************************************************************* */ static int allocDynamic (dynamicPtr * dp, int initialSize, void *data) { if (data == NULL) { dp->logicalSize = 0; dp->dataGood = FALSE; dp->data = gdMalloc (initialSize); } else { dp->logicalSize = initialSize; dp->dataGood = TRUE; dp->data = data; } if (dp->data != NULL) { dp->realSize = initialSize; dp->dataGood = TRUE; dp->pos = 0; return TRUE; } else { dp->realSize = 0; return FALSE; } } /* append bytes to the end of a dynamic pointer */ static int appendDynamic (dynamicPtr * dp, const void *src, int size) { int bytesNeeded; char *tmp; if (!dp->dataGood) return FALSE; /* bytesNeeded = dp->logicalSize + size; */ bytesNeeded = dp->pos + size; if (bytesNeeded > dp->realSize) { if (!gdReallocDynamic (dp, bytesNeeded * 2)) { dp->dataGood = FALSE; return FALSE; } } /* if we get here, we can be sure that we have enough bytes to copy safely */ /*printf("Mem OK Size: %d, Pos: %d\n", dp->realSize, dp->pos); */ tmp = (char *) dp->data; memcpy ((void *) (tmp + (dp->pos)), src, size); dp->pos += size; if (dp->pos > dp->logicalSize) { dp->logicalSize = dp->pos; }; return TRUE; } /* grow (or shrink) dynamic pointer */ static int gdReallocDynamic (dynamicPtr * dp, int required) { void *newPtr; /* First try gdRealloc(). If that doesn't work, make a new memory block and copy. */ if ((newPtr = gdRealloc (dp->data, required))) { dp->realSize = required; dp->data = newPtr; return TRUE; } /* create a new pointer */ newPtr = gdMalloc (required); if (!newPtr) { dp->dataGood = FALSE; return FALSE; } /* copy the old data into it */ memcpy (newPtr, dp->data, dp->logicalSize); gdFree (dp->data); dp->data = newPtr; dp->realSize = required; return TRUE; } /* trim pointer so that its real and logical sizes match */ static int trimDynamic (dynamicPtr * dp) { return gdReallocDynamic (dp, dp->logicalSize); } libwmf-0.2.13/src/extra/gd/gd_io_file.c000066400000000000000000000047011441723000300176010ustar00rootroot00000000000000 /* * io_file.c * * Implements the file interface. * * As will all I/O modules, most functions are for local use only (called * via function pointers in the I/O context). * * Most functions are just 'wrappers' for standard file functions. * * Written/Modified 1999, Philip Warner. * */ /* For platforms with incomplete ANSI defines. Fortunately, SEEK_SET is defined to be zero by the standard. */ #ifndef SEEK_SET #define SEEK_SET 0 #endif /* SEEK_SET */ #include #include #include #include "gd.h" #include "gdhelpers.h" /* this is used for creating images in main memory */ typedef struct fileIOCtx { gdIOCtx ctx; FILE *f; } fileIOCtx; struct fileIOCtx *fileIOCtxPtr; gdIOCtx *newFileCtx (FILE * f); static int fileGetbuf (gdIOCtx *, void *, int); static int filePutbuf (gdIOCtx *, const void *, int); static void filePutchar (gdIOCtx *, int); static int fileGetchar (gdIOCtx * ctx); static int fileSeek (struct gdIOCtx *, const int); static long fileTell (struct gdIOCtx *); static void gdFreeFileCtx (gdIOCtx * ctx); /* return data as a dynamic pointer */ gdIOCtx * gdNewFileCtx (FILE * f) { fileIOCtx *ctx; ctx = (fileIOCtx *) gdMalloc (sizeof (fileIOCtx)); if (ctx == NULL) { return NULL; } ctx->f = f; ctx->ctx.getC = fileGetchar; ctx->ctx.putC = filePutchar; ctx->ctx.getBuf = fileGetbuf; ctx->ctx.putBuf = filePutbuf; ctx->ctx.tell = fileTell; ctx->ctx.seek = fileSeek; ctx->ctx.free = gdFreeFileCtx; return (gdIOCtx *) ctx; } static void gdFreeFileCtx (gdIOCtx * ctx) { gdFree (ctx); } static int filePutbuf (gdIOCtx * ctx, const void *buf, int size) { fileIOCtx *fctx; fctx = (fileIOCtx *) ctx; return fwrite (buf, 1, size, fctx->f); } static int fileGetbuf (gdIOCtx * ctx, void *buf, int size) { fileIOCtx *fctx; fctx = (fileIOCtx *) ctx; return (fread (buf, 1, size, fctx->f)); } static void filePutchar (gdIOCtx * ctx, int a) { unsigned char b; fileIOCtx *fctx; fctx = (fileIOCtx *) ctx; b = a; putc (b, fctx->f); } static int fileGetchar (gdIOCtx * ctx) { fileIOCtx *fctx; fctx = (fileIOCtx *) ctx; return getc (fctx->f); } static int fileSeek (struct gdIOCtx *ctx, const int pos) { fileIOCtx *fctx; fctx = (fileIOCtx *) ctx; return (fseek (fctx->f, pos, SEEK_SET) == 0); } static long fileTell (struct gdIOCtx *ctx) { fileIOCtx *fctx; fctx = (fileIOCtx *) ctx; return ftell (fctx->f); } libwmf-0.2.13/src/extra/gd/gd_io_ss.c000066400000000000000000000055351441723000300173150ustar00rootroot00000000000000 /* * io_ss.c * * Implements the Source/Sink interface. * * As will all I/O modules, most functions are for local use only (called * via function pointers in the I/O context). * * The Source/Sink model is the primary 'user' interface for alternate data * sources; the IOCtx interface is intended (at least in version 1.5) to be * used internally until it settles down a bit. * * This module just layers the Source/Sink interface on top of the IOCtx; no * support is provided for tell/seek, so GD2 writing is not possible, and * retrieving parts of GD2 files is also not possible. * * A new SS context does not need to be created with both a Source and a Sink. * * Written/Modified 1999, Philip Warner. * */ #include #include #include #include "gd.h" #include "gdhelpers.h" /* this is used for creating images in main memory */ typedef struct ssIOCtx { gdIOCtx ctx; gdSourcePtr src; gdSinkPtr snk; } ssIOCtx; typedef struct ssIOCtx *ssIOCtxPtr; gdIOCtx *gdNewSSCtx (gdSourcePtr src, gdSinkPtr snk); static int sourceGetbuf (gdIOCtx *, void *, int); static int sourceGetchar (gdIOCtx * ctx); static int sinkPutbuf (gdIOCtx * ctx, const void *buf, int size); static void sinkPutchar (gdIOCtx * ctx, int a); static void gdFreeSsCtx (gdIOCtx * ctx); /* return data as a dynamic pointer */ gdIOCtx * gdNewSSCtx (gdSourcePtr src, gdSinkPtr snk) { ssIOCtxPtr ctx; ctx = (ssIOCtxPtr) gdMalloc (sizeof (ssIOCtx)); if (ctx == NULL) { return NULL; } ctx->src = src; ctx->snk = snk; ctx->ctx.getC = sourceGetchar; ctx->ctx.getBuf = sourceGetbuf; ctx->ctx.putC = sinkPutchar; ctx->ctx.putBuf = sinkPutbuf; ctx->ctx.tell = NULL; ctx->ctx.seek = NULL; ctx->ctx.free = gdFreeSsCtx; return (gdIOCtx *) ctx; } static void gdFreeSsCtx (gdIOCtx * ctx) { gdFree (ctx); } static int sourceGetbuf (gdIOCtx * ctx, void *buf, int size) { ssIOCtx *lctx; int res; lctx = (ssIOCtx *) ctx; res = ((lctx->src->source) (lctx->src->context, buf, size)); /* ** Translate the return values from the Source object: ** 0 is EOF, -1 is error */ if (res == 0) { return EOF; } else if (res < 0) { return 0; } else { return res; }; } static int sourceGetchar (gdIOCtx * ctx) { int res; unsigned char buf; res = sourceGetbuf (ctx, &buf, 1); if (res == 1) { return buf; } else { return EOF; }; } static int sinkPutbuf (gdIOCtx * ctx, const void *buf, int size) { ssIOCtxPtr lctx; int res; lctx = (ssIOCtx *) ctx; res = (lctx->snk->sink) (lctx->snk->context, buf, size); if (res <= 0) { return 0; } else { return res; }; } static void sinkPutchar (gdIOCtx * ctx, int a) { unsigned char b; b = a; sinkPutbuf (ctx, &b, 1); } libwmf-0.2.13/src/extra/gd/gd_jpeg.c000066400000000000000000000620771441723000300171320ustar00rootroot00000000000000 /* * gd_jpeg.c: Read and write JPEG (JFIF) format image files using the * gd graphics library (http://www.boutell.com/gd/). * * This software is based in part on the work of the Independent JPEG * Group. For more information on the IJG JPEG software (and JPEG * documentation, etc.), see ftp://ftp.uu.net/graphics/jpeg/. * * NOTE: IJG 12-bit JSAMPLE (BITS_IN_JSAMPLE == 12) mode is not * supported at all on read in gd 2.0, and is not supported on write * except for palette images, which is sort of pointless (TBB). Even that * has never been tested according to DB. * * Copyright 2000 Doug Becker, mailto:thebeckers@home.com * * Modification 4/18/00 TBB: JPEG_DEBUG rather than just DEBUG, * so VC++ builds don't spew to standard output, causing * major CGI brain damage */ /* TBB: move this up so include files are not brought in */ #ifdef HAVE_LIBJPEG #include #include #include #include #include /* 1.8.1: remove dependency on jinclude.h */ #include "jpeglib.h" #include "jerror.h" #include "gd.h" #include "gdhelpers.h" static const char *const GD_JPEG_VERSION = "1.0"; typedef struct _jmpbuf_wrapper { jmp_buf jmpbuf; } jmpbuf_wrapper; /* Called by the IJG JPEG library upon encountering a fatal error */ static void fatal_jpeg_error (j_common_ptr cinfo) { jmpbuf_wrapper *jmpbufw; fprintf (stderr, "gd-jpeg: JPEG library reports unrecoverable error: "); (*cinfo->err->output_message) (cinfo); fflush (stderr); jmpbufw = (jmpbuf_wrapper *) cinfo->client_data; jpeg_destroy (cinfo); if (jmpbufw != 0) { longjmp (jmpbufw->jmpbuf, 1); fprintf (stderr, "gd-jpeg: EXTREMELY fatal error: longjmp" " returned control; terminating\n"); } else { fprintf (stderr, "gd-jpeg: EXTREMELY fatal error: jmpbuf" " unrecoverable; terminating\n"); } fflush (stderr); exit (99); } static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality); /* * Write IM to OUTFILE as a JFIF-formatted JPEG image, using quality * QUALITY. If QUALITY is in the range 0-100, increasing values * represent higher quality but also larger image size. If QUALITY is * negative, the IJG JPEG library's default quality is used (which * should be near optimal for many applications). See the IJG JPEG * library documentation for more details. */ void gdImageJpeg (gdImagePtr im, FILE * outFile, int quality) { gdIOCtx *out = gdNewFileCtx (outFile); gdImageJpegCtx (im, out, quality); out->free (out); } void * gdImageJpegPtr (gdImagePtr im, int *size, int quality) { void *rv; gdIOCtx *out = gdNewDynamicCtx (2048, NULL); if (out == NULL) return NULL; if (!_gdImageJpegCtx(im, out, quality)) { rv = gdDPExtractData(out, size); } else { rv = NULL; } out->free (out); return rv; } static void jpeg_gdIOCtx_dest (j_compress_ptr cinfo, gdIOCtx * outfile); void gdImageJpegCtx (gdImagePtr im, gdIOCtx * outfile, int quality) { _gdImageJpegCtx(im, outfile, quality); } /* returns 0 on success, 1 on failure */ static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality) { struct jpeg_compress_struct cinfo; struct jpeg_error_mgr jerr; int i, j, jidx; /* volatile so we can gdFree it on return from longjmp */ volatile JSAMPROW row = 0; JSAMPROW rowptr[1]; jmpbuf_wrapper jmpbufw; JDIMENSION nlines; char comment[255]; #ifdef JPEG_DEBUG printf ("gd-jpeg: gd JPEG version %s\n", GD_JPEG_VERSION); printf ("gd-jpeg: JPEG library version %d, %d-bit sample values\n", JPEG_LIB_VERSION, BITS_IN_JSAMPLE); if (!im->trueColor) { for (i = 0; i < im->colorsTotal; i++) { if (!im->open[i]) printf ("gd-jpeg: gd colormap index %d: (%d, %d, %d)\n", i, im->red[i], im->green[i], im->blue[i]); } } #endif /* JPEG_DEBUG */ memset (&cinfo, 0, sizeof (cinfo)); memset (&jerr, 0, sizeof (jerr)); cinfo.err = jpeg_std_error (&jerr); cinfo.client_data = &jmpbufw; if (setjmp (jmpbufw.jmpbuf) != 0) { /* we're here courtesy of longjmp */ if (row) gdFree (row); return 1; } cinfo.err->error_exit = fatal_jpeg_error; jpeg_create_compress (&cinfo); cinfo.image_width = im->sx; cinfo.image_height = im->sy; cinfo.input_components = 3; /* # of color components per pixel */ cinfo.in_color_space = JCS_RGB; /* colorspace of input image */ jpeg_set_defaults (&cinfo); if (quality >= 0) jpeg_set_quality (&cinfo, quality, TRUE); /* If user requests interlace, translate that to progressive JPEG */ if (gdImageGetInterlaced (im)) { #ifdef JPEG_DEBUG printf ("gd-jpeg: interlace set, outputting progressive" " JPEG image\n"); #endif jpeg_simple_progression (&cinfo); } jpeg_gdIOCtx_dest (&cinfo, outfile); row = (JSAMPROW) gdCalloc (1, cinfo.image_width * cinfo.input_components * sizeof (JSAMPLE)); if (row == 0) { fprintf (stderr, "gd-jpeg: error: unable to allocate JPEG row " "structure: gdCalloc returns NULL\n"); jpeg_destroy_compress (&cinfo); return 1; } rowptr[0] = row; jpeg_start_compress (&cinfo, TRUE); sprintf (comment, "CREATOR: gd-jpeg v%s (using IJG JPEG v%d),", GD_JPEG_VERSION, JPEG_LIB_VERSION); if (quality >= 0) sprintf (comment + strlen (comment), " quality = %d\n", quality); else strcat (comment + strlen (comment), " default quality\n"); jpeg_write_marker (&cinfo, JPEG_COM, (unsigned char *) comment, (unsigned int) strlen (comment)); if (im->trueColor) { #if BITS_IN_JSAMPLE == 12 fprintf (stderr, "gd-jpeg: error: jpeg library was compiled for 12-bit\n" "precision. This is mostly useless, because JPEGs on the web are\n" "8-bit and such versions of the jpeg library won't read or write\n" "them. GD doesn't support these unusual images. Edit your\n" "jmorecfg.h file to specify the correct precision and completely\n" "'make clean' and 'make install' libjpeg again. Sorry.\n"); goto error; #endif /* BITS_IN_JSAMPLE == 12 */ for (i = 0; i < im->sy; i++) { for (jidx = 0, j = 0; j < im->sx; j++) { int val = im->tpixels[i][j]; row[jidx++] = gdTrueColorGetRed (val); row[jidx++] = gdTrueColorGetGreen (val); row[jidx++] = gdTrueColorGetBlue (val); } nlines = jpeg_write_scanlines (&cinfo, rowptr, 1); if (nlines != 1) fprintf (stderr, "gd_jpeg: warning: jpeg_write_scanlines" " returns %u -- expected 1\n", nlines); } } else { for (i = 0; i < im->sy; i++) { for (jidx = 0, j = 0; j < im->sx; j++) { int idx = im->pixels[i][j]; /* * NB: Although gd RGB values are ints, their max value is * 255 (see the documentation for gdImageColorAllocate()) * -- perfect for 8-bit JPEG encoding (which is the norm) */ #if BITS_IN_JSAMPLE == 8 row[jidx++] = im->red[idx]; row[jidx++] = im->green[idx]; row[jidx++] = im->blue[idx]; #elif BITS_IN_JSAMPLE == 12 row[jidx++] = im->red[idx] << 4; row[jidx++] = im->green[idx] << 4; row[jidx++] = im->blue[idx] << 4; #else #error IJG JPEG library BITS_IN_JSAMPLE value must be 8 or 12 #endif } nlines = jpeg_write_scanlines (&cinfo, rowptr, 1); if (nlines != 1) fprintf (stderr, "gd_jpeg: warning: jpeg_write_scanlines" " returns %u -- expected 1\n", nlines); } } jpeg_finish_compress (&cinfo); #if BITS_IN_JSAMPLE == 12 error: #endif jpeg_destroy_compress (&cinfo); gdFree (row); return 0; } gdImagePtr gdImageCreateFromJpeg (FILE * inFile) { gdImagePtr im; gdIOCtx *in = gdNewFileCtx (inFile); im = gdImageCreateFromJpegCtx (in); in->free (in); return im; } static void jpeg_gdIOCtx_src (j_decompress_ptr cinfo, gdIOCtx * infile); /* * Create a gd-format image from the JPEG-format INFILE. Returns the * image, or NULL upon error. */ gdImagePtr gdImageCreateFromJpegCtx (gdIOCtx * infile) { struct jpeg_decompress_struct cinfo; struct jpeg_error_mgr jerr; jmpbuf_wrapper jmpbufw; /* volatile so we can gdFree them after longjmp */ volatile JSAMPROW row = 0; volatile gdImagePtr im = 0; JSAMPROW rowptr[1]; JDIMENSION i, j; int retval; JDIMENSION nrows; #ifdef JPEG_DEBUG printf ("gd-jpeg: gd JPEG version %s\n", GD_JPEG_VERSION); printf ("gd-jpeg: JPEG library version %d, %d-bit sample values\n", JPEG_LIB_VERSION, BITS_IN_JSAMPLE); #endif memset (&cinfo, 0, sizeof (cinfo)); memset (&jerr, 0, sizeof (jerr)); cinfo.err = jpeg_std_error (&jerr); cinfo.client_data = &jmpbufw; if (setjmp (jmpbufw.jmpbuf) != 0) { /* we're here courtesy of longjmp */ if (row) gdFree (row); if (im) gdImageDestroy (im); return 0; } cinfo.err->error_exit = fatal_jpeg_error; jpeg_create_decompress (&cinfo); jpeg_gdIOCtx_src (&cinfo, infile); retval = jpeg_read_header (&cinfo, TRUE); if (retval != JPEG_HEADER_OK) fprintf (stderr, "gd-jpeg: warning: jpeg_read_header returns" " %d, expected %d\n", retval, JPEG_HEADER_OK); if (cinfo.image_height > INT_MAX) fprintf (stderr, "gd-jpeg: warning: JPEG image height (%u) is" " greater than INT_MAX (%d) (and thus greater than" " gd can handle)", cinfo.image_height, INT_MAX); if (cinfo.image_width > INT_MAX) fprintf (stderr, "gd-jpeg: warning: JPEG image width (%u) is" " greater than INT_MAX (%d) (and thus greater than" " gd can handle)\n", cinfo.image_width, INT_MAX); im = gdImageCreateTrueColor ((int) cinfo.image_width, (int) cinfo.image_height); if (im == 0) { fprintf (stderr, "gd-jpeg error: cannot allocate gdImage" " struct\n"); goto error; } /* * Force the image into RGB colorspace, but don't * reduce the number of colors anymore (GD 2.0) */ cinfo.out_color_space = JCS_RGB; if (jpeg_start_decompress (&cinfo) != TRUE) fprintf (stderr, "gd-jpeg: warning: jpeg_start_decompress" " reports suspended data source\n"); #ifdef JPEG_DEBUG printf ("gd-jpeg: JPEG image information:"); if (cinfo.saw_JFIF_marker) printf (" JFIF version %d.%.2d", (int) cinfo.JFIF_major_version, (int) cinfo.JFIF_minor_version); else if (cinfo.saw_Adobe_marker) printf (" Adobe format"); else printf (" UNKNOWN format"); printf (" %ux%u (raw) / %ux%u (scaled) %d-bit", cinfo.image_width, cinfo.image_height, cinfo.output_width, cinfo.output_height, cinfo.data_precision); printf (" %s", (cinfo.progressive_mode ? "progressive" : "baseline")); printf (" image, %d quantized colors, ", cinfo.actual_number_of_colors); switch (cinfo.jpeg_color_space) { case JCS_GRAYSCALE: printf ("grayscale"); break; case JCS_RGB: printf ("RGB"); break; case JCS_YCbCr: printf ("YCbCr (a.k.a. YUV)"); break; case JCS_CMYK: printf ("CMYK"); break; case JCS_YCCK: printf ("YCbCrK"); break; default: printf ("UNKNOWN (value: %d)", (int) cinfo.jpeg_color_space); break; } printf (" colorspace\n"); fflush (stdout); #endif /* JPEG_DEBUG */ /* REMOVED by TBB 2/12/01. This field of the structure is documented as private, and sure enough it's gone in the latest libjpeg, replaced by something else. Unfortunately there is still no right way to find out if the file was progressive or not; just declare your intent before you write one by calling gdImageInterlace(im, 1) yourself. After all, we're not really supposed to rework JPEGs and write them out again anyway. Lossy compression, remember? */ #if 0 gdImageInterlace (im, cinfo.progressive_mode != 0); #endif if (cinfo.output_components != 3) { fprintf (stderr, "gd-jpeg: error: JPEG color quantization" " request resulted in output_components == %d" " (expected 3)\n", cinfo.output_components); goto error; } #if BITS_IN_JSAMPLE == 12 fprintf (stderr, "gd-jpeg: error: jpeg library was compiled for 12-bit\n" "precision. This is mostly useless, because JPEGs on the web are\n" "8-bit and such versions of the jpeg library won't read or write\n" "them. GD doesn't support these unusual images. Edit your\n" "jmorecfg.h file to specify the correct precision and completely\n" "'make clean' and 'make install' libjpeg again. Sorry.\n"); goto error; #endif /* BITS_IN_JSAMPLE == 12 */ row = gdCalloc (cinfo.output_width * 3, sizeof (JSAMPLE)); if (row == 0) { fprintf (stderr, "gd-jpeg: error: unable to allocate row for" " JPEG scanline: gdCalloc returns NULL\n"); goto error; } rowptr[0] = row; for (i = 0; i < cinfo.output_height; i++) { nrows = jpeg_read_scanlines (&cinfo, rowptr, 1); if (nrows != 1) { fprintf (stderr, "gd-jpeg: error: jpeg_read_scanlines" " returns %u, expected 1\n", nrows); goto error; } for (j = 0; j < cinfo.output_width; j++) im->tpixels[i][j] = gdTrueColor (row[j * 3], row[j * 3 + 1], row[j * 3 + 2]); } if (jpeg_finish_decompress (&cinfo) != TRUE) fprintf (stderr, "gd-jpeg: warning: jpeg_finish_decompress" " reports suspended data source\n"); jpeg_destroy_decompress (&cinfo); gdFree (row); return im; error: jpeg_destroy_decompress (&cinfo); if (row) gdFree (row); if (im) gdImageDestroy (im); return 0; } /* * gdIOCtx JPEG data sources and sinks, T. Boutell * almost a simple global replace from T. Lane's stdio versions. * */ /* Different versions of libjpeg use either 'jboolean' or 'boolean', and some platforms define 'boolean', and so forth. Deal with this madness by typedeffing 'safeboolean' to 'boolean' if HAVE_BOOLEAN is already set, because this is the test that libjpeg uses. Otherwise, typedef it to int, because that's what libjpeg does if HAVE_BOOLEAN is not defined. -TBB */ #ifdef HAVE_BOOLEAN typedef boolean safeboolean; #else typedef int safeboolean; #endif /* HAVE_BOOLEAN */ /* Expanded data source object for gdIOCtx input */ typedef struct { struct jpeg_source_mgr pub; /* public fields */ gdIOCtx *infile; /* source stream */ unsigned char *buffer; /* start of buffer */ safeboolean start_of_file; /* have we gotten any data yet? */ } my_source_mgr; typedef my_source_mgr *my_src_ptr; #define INPUT_BUF_SIZE 4096 /* choose an efficiently fread'able size */ /* * Initialize source --- called by jpeg_read_header * before any data is actually read. */ static void init_source (j_decompress_ptr cinfo) { my_src_ptr src = (my_src_ptr) cinfo->src; /* We reset the empty-input-file flag for each image, * but we don't clear the input buffer. * This is correct behavior for reading a series of images from one source. */ src->start_of_file = TRUE; } /* * Fill the input buffer --- called whenever buffer is emptied. * * In typical applications, this should read fresh data into the buffer * (ignoring the current state of next_input_byte & bytes_in_buffer), * reset the pointer & count to the start of the buffer, and return TRUE * indicating that the buffer has been reloaded. It is not necessary to * fill the buffer entirely, only to obtain at least one more byte. * * There is no such thing as an EOF return. If the end of the file has been * reached, the routine has a choice of ERREXIT() or inserting fake data into * the buffer. In most cases, generating a warning message and inserting a * fake EOI marker is the best course of action --- this will allow the * decompressor to output however much of the image is there. However, * the resulting error message is misleading if the real problem is an empty * input file, so we handle that case specially. * * In applications that need to be able to suspend compression due to input * not being available yet, a FALSE return indicates that no more data can be * obtained right now, but more may be forthcoming later. In this situation, * the decompressor will return to its caller (with an indication of the * number of scanlines it has read, if any). The application should resume * decompression after it has loaded more data into the input buffer. Note * that there are substantial restrictions on the use of suspension --- see * the documentation. * * When suspending, the decompressor will back up to a convenient restart point * (typically the start of the current MCU). next_input_byte & bytes_in_buffer * indicate where the restart point will be if the current call returns FALSE. * Data beyond this point must be rescanned after resumption, so move it to * the front of the buffer rather than discarding it. */ #define END_JPEG_SEQUENCE "\r\n[*]--:END JPEG:--[*]\r\n" static safeboolean fill_input_buffer (j_decompress_ptr cinfo) { my_src_ptr src = (my_src_ptr) cinfo->src; int nbytes = 0; /* size_t got; */ /* char *s; */ memset (src->buffer, 0, INPUT_BUF_SIZE); while (nbytes < INPUT_BUF_SIZE) { int got = gdGetBuf (src->buffer + nbytes, INPUT_BUF_SIZE - nbytes, src->infile); if ((got == EOF) || (got == 0)) { /* EOF or error. If we got any data, don't worry about it. If we didn't, then this is unexpected. */ if (!nbytes) { nbytes = -1; } break; } nbytes += got; } if (nbytes <= 0) { if (src->start_of_file) /* Treat empty input file as fatal error */ ERREXIT (cinfo, JERR_INPUT_EMPTY); WARNMS (cinfo, JWRN_JPEG_EOF); /* Insert a fake EOI marker */ src->buffer[0] = (unsigned char) 0xFF; src->buffer[1] = (unsigned char) JPEG_EOI; nbytes = 2; } src->pub.next_input_byte = src->buffer; src->pub.bytes_in_buffer = nbytes; src->start_of_file = FALSE; return TRUE; } /* * Skip data --- used to skip over a potentially large amount of * uninteresting data (such as an APPn marker). * * Writers of suspendable-input applications must note that skip_input_data * is not granted the right to give a suspension return. If the skip extends * beyond the data currently in the buffer, the buffer can be marked empty so * that the next read will cause a fill_input_buffer call that can suspend. * Arranging for additional bytes to be discarded before reloading the input * buffer is the application writer's problem. */ static void skip_input_data (j_decompress_ptr cinfo, long num_bytes) { my_src_ptr src = (my_src_ptr) cinfo->src; /* Just a dumb implementation for now. Not clear that being smart is worth * any trouble anyway --- large skips are infrequent. */ if (num_bytes > 0) { while (num_bytes > (long) src->pub.bytes_in_buffer) { num_bytes -= (long) src->pub.bytes_in_buffer; (void) fill_input_buffer (cinfo); /* note we assume that fill_input_buffer will never return FALSE, * so suspension need not be handled. */ } src->pub.next_input_byte += (size_t) num_bytes; src->pub.bytes_in_buffer -= (size_t) num_bytes; } } /* * An additional method that can be provided by data source modules is the * resync_to_restart method for error recovery in the presence of RST markers. * For the moment, this source module just uses the default resync method * provided by the JPEG library. That method assumes that no backtracking * is possible. */ /* * Terminate source --- called by jpeg_finish_decompress * after all data has been read. Often a no-op. * * NB: *not* called by jpeg_abort or jpeg_destroy; surrounding * application must deal with any cleanup that should happen even * for error exit. */ static void term_source (j_decompress_ptr cinfo) { (void)cinfo; #if 0 /* never used */ my_src_ptr src = (my_src_ptr) cinfo->src; #endif } /* * Prepare for input from a gdIOCtx stream. * The caller must have already opened the stream, and is responsible * for closing it after finishing decompression. */ void jpeg_gdIOCtx_src (j_decompress_ptr cinfo, gdIOCtx * infile) { my_src_ptr src; /* The source object and input buffer are made permanent so that a series * of JPEG images can be read from the same file by calling jpeg_gdIOCtx_src * only before the first one. (If we discarded the buffer at the end of * one image, we'd likely lose the start of the next one.) * This makes it unsafe to use this manager and a different source * manager serially with the same JPEG object. Caveat programmer. */ if (cinfo->src == NULL) { /* first time for this JPEG object? */ cinfo->src = (struct jpeg_source_mgr *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof (my_source_mgr)); src = (my_src_ptr) cinfo->src; src->buffer = (unsigned char *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof (unsigned char)); } src = (my_src_ptr) cinfo->src; src->pub.init_source = init_source; src->pub.fill_input_buffer = fill_input_buffer; src->pub.skip_input_data = skip_input_data; src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */ src->pub.term_source = term_source; src->infile = infile; src->pub.bytes_in_buffer = 0; /* forces fill_input_buffer on first read */ src->pub.next_input_byte = NULL; /* until buffer loaded */ } /* Expanded data destination object for stdio output */ typedef struct { struct jpeg_destination_mgr pub; /* public fields */ gdIOCtx *outfile; /* target stream */ unsigned char *buffer; /* start of buffer */ } my_destination_mgr; typedef my_destination_mgr *my_dest_ptr; #define OUTPUT_BUF_SIZE 4096 /* choose an efficiently fwrite'able size */ /* * Initialize destination --- called by jpeg_start_compress * before any data is actually written. */ static void init_destination (j_compress_ptr cinfo) { my_dest_ptr dest = (my_dest_ptr) cinfo->dest; /* Allocate the output buffer --- it will be released when done with image */ dest->buffer = (unsigned char *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, OUTPUT_BUF_SIZE * sizeof (unsigned char)); dest->pub.next_output_byte = dest->buffer; dest->pub.free_in_buffer = OUTPUT_BUF_SIZE; } /* * Empty the output buffer --- called whenever buffer fills up. * * In typical applications, this should write the entire output buffer * (ignoring the current state of next_output_byte & free_in_buffer), * reset the pointer & count to the start of the buffer, and return TRUE * indicating that the buffer has been dumped. * * In applications that need to be able to suspend compression due to output * overrun, a FALSE return indicates that the buffer cannot be emptied now. * In this situation, the compressor will return to its caller (possibly with * an indication that it has not accepted all the supplied scanlines). The * application should resume compression after it has made more room in the * output buffer. Note that there are substantial restrictions on the use of * suspension --- see the documentation. * * When suspending, the compressor will back up to a convenient restart point * (typically the start of the current MCU). next_output_byte & free_in_buffer * indicate where the restart point will be if the current call returns FALSE. * Data beyond this point will be regenerated after resumption, so do not * write it out when emptying the buffer externally. */ static safeboolean empty_output_buffer (j_compress_ptr cinfo) { my_dest_ptr dest = (my_dest_ptr) cinfo->dest; if (gdPutBuf (dest->buffer, OUTPUT_BUF_SIZE, dest->outfile) != (size_t) OUTPUT_BUF_SIZE) ERREXIT (cinfo, JERR_FILE_WRITE); dest->pub.next_output_byte = dest->buffer; dest->pub.free_in_buffer = OUTPUT_BUF_SIZE; return TRUE; } /* * Terminate destination --- called by jpeg_finish_compress * after all data has been written. Usually needs to flush buffer. * * NB: *not* called by jpeg_abort or jpeg_destroy; surrounding * application must deal with any cleanup that should happen even * for error exit. */ static void term_destination (j_compress_ptr cinfo) { my_dest_ptr dest = (my_dest_ptr) cinfo->dest; int datacount = OUTPUT_BUF_SIZE - dest->pub.free_in_buffer; /* Write any data remaining in the buffer */ if (datacount > 0) { if (gdPutBuf (dest->buffer, datacount, dest->outfile) != datacount) ERREXIT (cinfo, JERR_FILE_WRITE); } } /* * Prepare for output to a stdio stream. * The caller must have already opened the stream, and is responsible * for closing it after finishing compression. */ void jpeg_gdIOCtx_dest (j_compress_ptr cinfo, gdIOCtx * outfile) { my_dest_ptr dest; /* The destination object is made permanent so that multiple JPEG images * can be written to the same file without re-executing jpeg_stdio_dest. * This makes it dangerous to use this manager and a different destination * manager serially with the same JPEG object, because their private object * sizes may be different. Caveat programmer. */ if (cinfo->dest == NULL) { /* first time for this JPEG object? */ cinfo->dest = (struct jpeg_destination_mgr *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof (my_destination_mgr)); } dest = (my_dest_ptr) cinfo->dest; dest->pub.init_destination = init_destination; dest->pub.empty_output_buffer = empty_output_buffer; dest->pub.term_destination = term_destination; dest->outfile = outfile; } #endif /* HAVE_JPEG */ libwmf-0.2.13/src/extra/gd/gd_png.c000066400000000000000000000535151441723000300167660ustar00rootroot00000000000000 #ifdef HAVE_LIBPNG #include #include #include #include #include "gd.h" #include "gdhelpers.h" #include "png.h" /* includes zlib.h and setjmp.h */ #define TRUE 1 #define FALSE 0 /*--------------------------------------------------------------------------- gd_png.c Copyright 1999 Greg Roelofs and Thomas Boutell The routines in this file, gdImagePng*() and gdImageCreateFromPng*(), are drop-in replacements for gdImageGif*() and gdImageCreateFromGif*(), except that these functions are noisier in the case of errors (comment out all fprintf() statements to disable that). GD 2.0 supports RGBA truecolor and will read and write truecolor PNGs. GD 2.0 supports 8 bits of color resolution per channel and 7 bits of alpha channel resolution. Images with more than 8 bits per channel are reduced to 8 bits. Images with an alpha channel are only able to resolve down to '1/128th opaque' instead of '1/256th', and this conversion is also automatic. I very much doubt you can see it. Both tRNS and true alpha are supported. Gamma is ignored, and there is no support for text annotations. Last updated: 9 February 2001 ---------------------------------------------------------------------------*/ #ifndef PNG_SETJMP_NOT_SUPPORTED typedef struct _jmpbuf_wrapper { jmp_buf jmpbuf; } jmpbuf_wrapper; static jmpbuf_wrapper gdPngJmpbufStruct; static void gdPngErrorHandler (png_structp png_ptr, png_const_charp msg) { jmpbuf_wrapper *jmpbuf_ptr; /* This function, aside from the extra step of retrieving the "error * pointer" (below) and the fact that it exists within the application * rather than within libpng, is essentially identical to libpng's * default error handler. The second point is critical: since both * setjmp() and longjmp() are called from the same code, they are * guaranteed to have compatible notions of how big a jmp_buf is, * regardless of whether _BSD_SOURCE or anything else has (or has not) * been defined. */ fprintf (stderr, "gd-png: fatal libpng error: %s\n", msg); fflush (stderr); jmpbuf_ptr = png_get_error_ptr (png_ptr); if (jmpbuf_ptr == NULL) { /* we are completely hosed now */ fprintf (stderr, "gd-png: EXTREMELY fatal error: jmpbuf unrecoverable; terminating.\n"); fflush (stderr); exit (99); } longjmp (jmpbuf_ptr->jmpbuf, 1); } #endif static void gdPngReadData (png_structp png_ptr, png_bytep data, png_size_t length) { int check; check = gdGetBuf (data, length, (gdIOCtx *) png_get_io_ptr (png_ptr)); if (check != (int)length) { png_error(png_ptr, "Read Error: truncated data"); } } static void gdPngWriteData (png_structp png_ptr, png_bytep data, png_size_t length) { gdPutBuf (data, length, (gdIOCtx *) png_get_io_ptr (png_ptr)); } static void gdPngFlushData (png_structp png_ptr) { (void)png_ptr; } gdImagePtr gdImageCreateFromPng (FILE * inFile) { gdImagePtr im; gdIOCtx *in = gdNewFileCtx (inFile); im = gdImageCreateFromPngCtx (in); in->free (in); return im; } /* This routine is based in part on the Chapter 13 demo code in "PNG: The * Definitive Guide" (http://www.cdrom.com/pub/png/pngbook.html). */ gdImagePtr gdImageCreateFromPngCtx (gdIOCtx * infile) { png_byte sig[8]; png_structp png_ptr; png_infop info_ptr; png_uint_32 width, height, w, h, rowbytes; int bit_depth, color_type, interlace_type; int num_palette = 0, num_trans; png_colorp palette; png_color_16p trans_gray_rgb; png_color_16p trans_color_rgb; png_bytep trans; png_bytep image_data = NULL; png_bytepp row_pointers = NULL; gdImagePtr im = NULL; int i, j, *open; volatile int transparent = -1; /* Make sure the signature can't match by dumb luck -- TBB */ memset (sig, 0, sizeof (sig)); /* first do a quick check that the file really is a PNG image; could * have used slightly more general png_sig_cmp() function instead */ gdGetBuf (sig, 8, infile); if (!png_check_sig (sig, 8)) return NULL; /* bad signature */ #ifndef PNG_SETJMP_NOT_SUPPORTED png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, &gdPngJmpbufStruct, gdPngErrorHandler, NULL); #else png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); #endif if (png_ptr == NULL) { fprintf (stderr, "gd-png error: cannot allocate libpng main struct\n"); return NULL; } info_ptr = png_create_info_struct (png_ptr); if (info_ptr == NULL) { fprintf (stderr, "gd-png error: cannot allocate libpng info struct\n"); png_destroy_read_struct (&png_ptr, NULL, NULL); return NULL; } /* we could create a second info struct here (end_info), but it's only * useful if we want to keep pre- and post-IDAT chunk info separated * (mainly for PNG-aware image editors and converters) */ /* setjmp() must be called in every non-callback function that calls a * PNG-reading libpng function */ #ifndef PNG_SETJMP_NOT_SUPPORTED if (setjmp (gdPngJmpbufStruct.jmpbuf)) { fprintf (stderr, "gd-png error: setjmp returns error condition\n"); png_destroy_read_struct (&png_ptr, &info_ptr, NULL); return NULL; } #endif open = NULL; palette = NULL; png_set_sig_bytes (png_ptr, 8); /* we already read the 8 signature bytes */ png_set_read_fn (png_ptr, (void *) infile, gdPngReadData); png_read_info (png_ptr, info_ptr); /* read all PNG info up to image data */ png_get_IHDR (png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL); if (overflow2(sizeof (int), width)) { return NULL; } if (overflow2(sizeof (int) * width, height)) { return NULL; } if ((color_type == PNG_COLOR_TYPE_RGB) || (color_type == PNG_COLOR_TYPE_RGB_ALPHA)) { im = gdImageCreateTrueColor ((int) width, (int) height); } else { im = gdImageCreate ((int) width, (int) height); } if (im == NULL) { fprintf (stderr, "gd-png error: cannot allocate gdImage struct\n"); png_destroy_read_struct (&png_ptr, &info_ptr, NULL); gdFree (image_data); gdFree (row_pointers); return NULL; } if (bit_depth == 16) png_set_strip_16 (png_ptr); else if (bit_depth < 8) png_set_packing (png_ptr); /* expand to 1 byte per pixel */ switch (color_type) { case PNG_COLOR_TYPE_PALETTE: png_get_PLTE (png_ptr, info_ptr, &palette, &num_palette); #ifdef DEBUG fprintf (stderr, "gd-png color_type is palette, colors: %d\n", num_palette); #endif /* DEBUG */ if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS)) { /* gd 2.0: we support this rather thoroughly now. Grab the first fully transparent entry, if any, as the value of the simple-transparency index, mostly for backwards binary compatibility. The alpha channel is where it's really at these days. */ int firstZero = 1; png_get_tRNS (png_ptr, info_ptr, &trans, &num_trans, NULL); for (i = 0; i < num_trans; ++i) { im->alpha[i] = gdAlphaMax - (trans[i] >> 1); if ((trans[i] == 0) && (firstZero)) { im->transparent = i; firstZero = 0; } } } break; case PNG_COLOR_TYPE_GRAY: case PNG_COLOR_TYPE_GRAY_ALPHA: /* create a fake palette and check for single-shade transparency */ if ((palette = (png_colorp) gdMalloc (256 * sizeof (png_color))) == NULL) { fprintf (stderr, "gd-png error: cannot allocate gray palette\n"); png_destroy_read_struct (&png_ptr, &info_ptr, NULL); gdImageDestroy(im); return NULL; } if (bit_depth < 8) { num_palette = 1 << bit_depth; for (i = 0; i < 256; ++i) { j = (255 * i) / (num_palette - 1); palette[i].red = palette[i].green = palette[i].blue = j; } } else { num_palette = 256; for (i = 0; i < 256; ++i) { palette[i].red = palette[i].green = palette[i].blue = i; } } if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS)) { png_get_tRNS (png_ptr, info_ptr, NULL, NULL, &trans_gray_rgb); if (bit_depth == 16) /* png_set_strip_16() not yet in effect */ transparent = trans_gray_rgb->gray >> 8; else transparent = trans_gray_rgb->gray; /* Note slight error in 16-bit case: up to 256 16-bit shades * may get mapped to a single 8-bit shade, and only one of them * is supposed to be transparent. IOW, both opaque pixels and * transparent pixels will be mapped into the transparent entry. * There is no particularly good way around this in the case * that all 256 8-bit shades are used, but one could write some * custom 16-bit code to handle the case where there are gdFree * palette entries. This error will be extremely rare in * general, though. (Quite possibly there is only one such * image in existence.) */ } break; case PNG_COLOR_TYPE_RGB: case PNG_COLOR_TYPE_RGB_ALPHA: /* gd 2.0: we now support truecolor. See the comment above for a rare situation in which the transparent pixel may not work properly with 16-bit channels. */ if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS)) { png_get_tRNS (png_ptr, info_ptr, NULL, NULL, &trans_color_rgb); if (bit_depth == 16) /* png_set_strip_16() not yet in effect */ transparent = gdTrueColor (trans_color_rgb->red >> 8, trans_color_rgb->green >> 8, trans_color_rgb->blue >> 8); else transparent = gdTrueColor (trans_color_rgb->red, trans_color_rgb->green, trans_color_rgb->blue); } break; } png_read_update_info (png_ptr, info_ptr); /* allocate space for the PNG image data */ rowbytes = png_get_rowbytes (png_ptr, info_ptr); if ((image_data = (png_bytep) gdMalloc (rowbytes * height)) == NULL) { fprintf (stderr, "gd-png error: cannot allocate image data\n"); png_destroy_read_struct (&png_ptr, &info_ptr, NULL); gdImageDestroy(im); gdFree(palette); return NULL; } if ((row_pointers = (png_bytepp) gdMalloc (height * sizeof (png_bytep))) == NULL) { fprintf (stderr, "gd-png error: cannot allocate row pointers\n"); png_destroy_read_struct (&png_ptr, &info_ptr, NULL); gdFree (image_data); gdImageDestroy(im); gdFree(palette); return NULL; } /* set the individual row_pointers to point at the correct offsets */ for (h = 0; h < height; ++h) { row_pointers[h] = image_data + h * rowbytes; } png_read_image (png_ptr, row_pointers); /* read whole image... */ png_read_end (png_ptr, NULL); /* ...done! */ if (!im->trueColor) { im->colorsTotal = num_palette; im->transparent = transparent; /* load the palette and mark all entries "open" (unused) for now */ open = im->open; for (i = 0; i < num_palette; ++i) { im->red[i] = palette[i].red; im->green[i] = palette[i].green; im->blue[i] = palette[i].blue; open[i] = 1; } for (i = num_palette; i < gdMaxColors; ++i) { open[i] = 1; } } im->interlace = (interlace_type == PNG_INTERLACE_ADAM7); /* can't nuke structs until done with palette */ png_destroy_read_struct (&png_ptr, &info_ptr, NULL); switch (color_type) { case PNG_COLOR_TYPE_RGB: for (h = 0; h < height; h++) { int boffset = 0; for (w = 0; w < width; w++) { register png_byte r = row_pointers[w][boffset++]; register png_byte g = row_pointers[w][boffset++]; register png_byte b = row_pointers[w][boffset++]; im->tpixels[h][w] = gdTrueColor (r, g, b); } } break; case PNG_COLOR_TYPE_RGB_ALPHA: for (h = 0; h < height; h++) { int boffset = 0; for (w = 0; w < width; w++) { register png_byte r = row_pointers[h][boffset++]; register png_byte g = row_pointers[h][boffset++]; register png_byte b = row_pointers[h][boffset++]; /* gd has only 7 bits of alpha channel resolution, and 127 is transparent, 0 opaque. A moment of convenience, a lifetime of compatibility. */ register png_byte a = gdAlphaMax - (row_pointers[h][boffset++] >> 1); im->tpixels[h][w] = gdTrueColorAlpha (r, g, b, a); } } break; default: if (!im->trueColor) { /* Palette image, or something coerced to be one */ for (h = 0; h < height; ++h) { for (w = 0; w < width; ++w) { register png_byte idx = row_pointers[h][w]; im->pixels[h][w] = idx; open[idx] = 0; } } } } #ifdef DEBUG if (!im->trueColor) { for (i = num_palette; i < gdMaxColors; ++i) { if (!open[i]) { fprintf (stderr, "gd-png warning: image data references out-of-range" " color index (%d)\n", i); } } } #endif gdFree (palette); gdFree (image_data); gdFree (row_pointers); return im; } void gdImagePng (gdImagePtr im, FILE * outFile) { gdIOCtx *out = gdNewFileCtx (outFile); gdImagePngCtx (im, out); out->free (out); } /* This routine is based in part on code from Dale Lutz (Safe Software Inc.) * and in part on demo code from Chapter 15 of "PNG: The Definitive Guide" * (http://www.cdrom.com/pub/png/pngbook.html). */ void gdImagePngCtx (gdImagePtr im, gdIOCtx * outfile) { int i, j, bit_depth=1, interlace_type; int width = im->sx; int height = im->sy; int colors; int *open = im->open; int mapping[gdMaxColors]; /* mapping[gd_index] == png_index */ png_byte trans_values[256]; png_color_16 trans_rgb_value; png_color palette[gdMaxColors]; png_structp png_ptr; png_infop info_ptr; volatile int transparent = im->transparent; volatile int remap = FALSE; #ifndef PNG_SETJMP_NOT_SUPPORTED png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING, &gdPngJmpbufStruct, gdPngErrorHandler, NULL); #else png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); #endif if (png_ptr == NULL) { fprintf (stderr, "gd-png error: cannot allocate libpng main struct\n"); return; } info_ptr = png_create_info_struct (png_ptr); if (info_ptr == NULL) { fprintf (stderr, "gd-png error: cannot allocate libpng info struct\n"); png_destroy_write_struct (&png_ptr, (png_infopp) NULL); return; } #ifndef PNG_SETJMP_NOT_SUPPORTED if (setjmp (gdPngJmpbufStruct.jmpbuf)) { fprintf (stderr, "gd-png error: setjmp returns error condition\n"); png_destroy_write_struct (&png_ptr, &info_ptr); return; } #endif colors = im->colorsTotal; png_set_write_fn (png_ptr, (void *) outfile, gdPngWriteData, gdPngFlushData); /* This is best for palette images, and libpng defaults to it for palette images anyway, so we don't need to do it explicitly. What to ideally do for truecolor images depends, alas, on the image. gd is intentionally imperfect and doesn't spend a lot of time fussing with such things. */ /* png_set_filter(png_ptr, 0, PNG_FILTER_NONE); */ /* may want to force maximum compression, but time penalty is large */ /* png_set_compression_level(png_ptr, Z_BEST_COMPRESSION); */ /* can set this to a smaller value without compromising compression if all * image data is 16K or less; will save some decoder memory [min == 8] */ /* png_set_compression_window_bits(png_ptr, 15); */ if (!im->trueColor) { if (transparent >= im->colorsTotal || (transparent >= 0 && open[transparent])) transparent = -1; } if (!im->trueColor) { for (i = 0; i < gdMaxColors; ++i) mapping[i] = -1; } if (!im->trueColor) { /* count actual number of colors used (colorsTotal == high-water mark) */ colors = 0; for (i = 0; i < im->colorsTotal; ++i) { if (!open[i]) { mapping[i] = colors; ++colors; } } if (colors < im->colorsTotal) { remap = TRUE; } if (colors <= 2) bit_depth = 1; else if (colors <= 4) bit_depth = 2; else if (colors <= 16) bit_depth = 4; else bit_depth = 8; } interlace_type = im->interlace ? PNG_INTERLACE_ADAM7 : PNG_INTERLACE_NONE; if (im->trueColor) { if (im->saveAlphaFlag) { png_set_IHDR (png_ptr, info_ptr, width, height, 8, PNG_COLOR_TYPE_RGB_ALPHA, interlace_type, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); } else { png_set_IHDR (png_ptr, info_ptr, width, height, 8, PNG_COLOR_TYPE_RGB, interlace_type, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); } } else { png_set_IHDR (png_ptr, info_ptr, width, height, bit_depth, PNG_COLOR_TYPE_PALETTE, interlace_type, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); } if (im->trueColor && (!im->saveAlphaFlag) && (transparent >= 0)) { trans_rgb_value.red = gdTrueColorGetRed (im->trueColor); trans_rgb_value.green = gdTrueColorGetGreen (im->trueColor); trans_rgb_value.blue = gdTrueColorGetBlue (im->trueColor); png_set_tRNS (png_ptr, info_ptr, 0, 0, &trans_rgb_value); } if (!im->trueColor) { /* Oy veh. Remap the PNG palette to put the entries with interesting alpha channel values first. This minimizes the size of the tRNS chunk and thus the size of the PNG file as a whole. */ int tc = 0; int i; int j; int k; for (i = 0; (i < im->colorsTotal); i++) { if ((!im->open[i]) && (im->alpha[i] != gdAlphaOpaque)) { tc++; } } if (tc) { #if 0 for (i = 0; (i < im->colorsTotal); i++) { trans_values[i] = 255 - ((im->alpha[i] << 1) + (im->alpha[i] >> 7)); } png_set_tRNS (png_ptr, info_ptr, trans_values, 256, NULL); #endif if (!remap) { remap = TRUE; } /* (Semi-)transparent indexes come up from the bottom of the list of real colors; opaque indexes come down from the top */ j = 0; k = colors - 1; for (i = 0; (i < im->colorsTotal); i++) { if (!im->open[i]) { if (im->alpha[i] != gdAlphaOpaque) { trans_values[j] = 255 - ((im->alpha[i] << 1) + (im->alpha[i] >> 7)); mapping[i] = j++; } else { mapping[i] = k--; } } } png_set_tRNS (png_ptr, info_ptr, trans_values, tc, NULL); } } /* convert palette to libpng layout */ if (!im->trueColor) { if (remap) for (i = 0; i < im->colorsTotal; ++i) { if (mapping[i] < 0) continue; palette[mapping[i]].red = im->red[i]; palette[mapping[i]].green = im->green[i]; palette[mapping[i]].blue = im->blue[i]; } else for (i = 0; i < colors; ++i) { palette[i].red = im->red[i]; palette[i].green = im->green[i]; palette[i].blue = im->blue[i]; } png_set_PLTE (png_ptr, info_ptr, palette, colors); } /* write out the PNG header info (everything up to first IDAT) */ png_write_info (png_ptr, info_ptr); /* make sure < 8-bit images are packed into pixels as tightly as possible */ png_set_packing (png_ptr); /* This code allocates a set of row buffers and copies the gd image data * into them only in the case that remapping is necessary; in gd 1.3 and * later, the im->pixels array is laid out identically to libpng's row * pointers and can be passed to png_write_image() function directly. * The remapping case could be accomplished with less memory for non- * interlaced images, but interlacing causes some serious complications. */ if (im->trueColor) { int channels = im->saveAlphaFlag ? 4 : 3; /* Our little 7-bit alpha channel trick costs us a bit here. */ png_bytep *row_pointers; row_pointers = gdMalloc (sizeof (png_bytep) * height); if (row_pointers == NULL) { fprintf (stderr, "gd-png error: unable to allocate row_pointers\n"); return; } for (j = 0; j < height; ++j) { int bo = 0; if ((row_pointers[j] = (png_bytep) gdMalloc (width * channels)) == NULL) { fprintf (stderr, "gd-png error: unable to allocate rows\n"); for (i = 0; i < j; ++i) gdFree (row_pointers[i]); gdFree (row_pointers); return; } for (i = 0; i < width; ++i) { unsigned char a; row_pointers[j][bo++] = gdTrueColorGetRed (im->tpixels[j][i]); row_pointers[j][bo++] = gdTrueColorGetGreen (im->tpixels[j][i]); row_pointers[j][bo++] = gdTrueColorGetBlue (im->tpixels[j][i]); if (im->saveAlphaFlag) { /* convert the 7-bit alpha channel to an 8-bit alpha channel. We do a little bit-flipping magic, repeating the MSB as the LSB, to ensure that 0 maps to 0 and 127 maps to 255. We also have to invert to match PNG's convention in which 255 is opaque. */ a = gdTrueColorGetAlpha (im->tpixels[j][i]); row_pointers[j][bo++] = 255 - ((a << 1) + (a >> 7)); } } } png_write_image (png_ptr, row_pointers); png_write_end (png_ptr, info_ptr); for (j = 0; j < height; ++j) gdFree (row_pointers[j]); gdFree (row_pointers); } else { if (remap) { png_bytep *row_pointers; row_pointers = gdMalloc (sizeof (png_bytep) * height); if (row_pointers == NULL) { fprintf (stderr, "gd-png error: unable to allocate row_pointers\n"); return; } for (j = 0; j < height; ++j) { if ((row_pointers[j] = (png_bytep) gdMalloc (width)) == NULL) { fprintf (stderr, "gd-png error: unable to allocate rows\n"); for (i = 0; i < j; ++i) gdFree (row_pointers[i]); gdFree (row_pointers); return; } for (i = 0; i < width; ++i) row_pointers[j][i] = mapping[im->pixels[j][i]]; } png_write_image (png_ptr, row_pointers); png_write_end (png_ptr, info_ptr); for (j = 0; j < height; ++j) gdFree (row_pointers[j]); gdFree (row_pointers); } else { png_write_image (png_ptr, im->pixels); png_write_end (png_ptr, info_ptr); } } /* 1.6.3: maybe we should give that memory BACK! TBB */ png_destroy_write_struct (&png_ptr, &info_ptr); } #endif /* HAVE_LIBPNG */ libwmf-0.2.13/src/extra/gd/gd_ss.c000066400000000000000000000014451441723000300166220ustar00rootroot00000000000000#include #include #include #include #include "gd.h" #define TRUE 1 #define FALSE 0 /* Exported functions: */ extern void gdImagePngToSink (gdImagePtr im, gdSinkPtr out); extern gdImagePtr gdImageCreateFromPngSource (gdSourcePtr inSource); /* Use this for commenting out debug-print statements. */ /* Just use the first '#define' to allow all the prints... */ /*#define GD_SS_DBG(s) (s) */ #define GD_SS_DBG(s) void gdImagePngToSink (gdImagePtr im, gdSinkPtr outSink) { gdIOCtx *out = gdNewSSCtx (NULL, outSink); gdImagePngCtx (im, out); out->free (out); } gdImagePtr gdImageCreateFromPngSource (gdSourcePtr inSource) { gdIOCtx *in = gdNewSSCtx (inSource, NULL); gdImagePtr im; im = gdImageCreateFromPngCtx (in); in->free (in); return im; } libwmf-0.2.13/src/extra/gd/gd_wbmp.c000066400000000000000000000130761441723000300171450ustar00rootroot00000000000000 /* WBMP: Wireless Bitmap Type 0: B/W, Uncompressed Bitmap Specification of the WBMP format can be found in the file: SPEC-WAESpec-19990524.pdf You can download the WAP specification on: http://www.wapforum.com/ gd_wbmp.c Copyright (C) Johan Van den Brande (johan@vandenbrande.com) Fixed: gdImageWBMPPtr, gdImageWBMP Recoded: gdImageWBMPCtx for use with my wbmp library (wbmp library included, but you can find the latest distribution at http://www.vandenbrande.com/wbmp) Implemented: gdImageCreateFromWBMPCtx, gdImageCreateFromWBMP --------------------------------------------------------------------------- Parts of this code are from Maurice Smurlo. ** Copyright (C) Maurice Szmurlo --- T-SIT --- January 2000 ** (Maurice.Szmurlo@info.unicaen.fr) ** 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. --------------------------------------------------------------------------- Parts od this code are inspired by 'pbmtowbmp.c' and 'wbmptopbm.c' by Terje Sannum . ** ** 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. ** --------------------------------------------------------------------------- Todo: gdCreateFromWBMP function for reading WBMP files ---------------------------------------------------------------------------- */ #include #include #include #include #include #include "wbmp.h" /* gd_putout ** --------- ** Wrapper around gdPutC for use with writewbmp ** */ static void gd_putout (int i, void *out) { gdPutC (i, (gdIOCtx *) out); } /* gd_getin ** -------- ** Wrapper around gdGetC for use with readwbmp ** */ static int gd_getin (void *in) { return (gdGetC ((gdIOCtx *) in)); } static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out); /* gdImageWBMPCtx ** -------------- ** Write the image as a wbmp file ** Parameters are: ** image: gd image structure; ** fg: the index of the foreground color. any other value will be ** considered as background and will not be written ** out: the stream where to write */ void gdImageWBMPCtx (gdImagePtr image, int fg, gdIOCtx * out) { _gdImageWBMPCtx(image, fg, out); } /* returns 0 on success, 1 on failure */ static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out) { int x, y, pos; Wbmp *wbmp; /* create the WBMP */ if ((wbmp = createwbmp (gdImageSX (image), gdImageSY (image), WBMP_WHITE)) == NULL) { fprintf (stderr, "Could not create WBMP\n"); return 1; } /* fill up the WBMP structure */ pos = 0; for (y = 0; y < gdImageSY (image); y++) { for (x = 0; x < gdImageSX (image); x++) { if (gdImageGetPixel (image, x, y) == fg) { wbmp->bitmap[pos] = WBMP_BLACK; } pos++; } } /* write the WBMP to a gd file descriptor */ if (writewbmp (wbmp, &gd_putout, out)) { fprintf (stderr, "Could not save WBMP\n"); freewbmp (wbmp); return 1; } /* des submitted this bugfix: gdFree the memory. */ freewbmp (wbmp); return 0; } /* gdImageCreateFromWBMPCtx ** ------------------------ ** Create a gdImage from a WBMP file input from an gdIOCtx */ gdImagePtr gdImageCreateFromWBMPCtx (gdIOCtx * infile) { /* FILE *wbmp_file; */ Wbmp *wbmp; gdImagePtr im = NULL; int black, white; int col, row, pos; if (readwbmp (&gd_getin, infile, &wbmp)) return (NULL); if (!(im = gdImageCreate (wbmp->width, wbmp->height))) { freewbmp (wbmp); return (NULL); } /* create the background color */ white = gdImageColorAllocate (im, 255, 255, 255); /* create foreground color */ black = gdImageColorAllocate (im, 0, 0, 0); /* fill in image (in a wbmp 1 = white/ 0 = black) */ pos = 0; for (row = 0; row < wbmp->height; row++) { for (col = 0; col < wbmp->width; col++) { if (wbmp->bitmap[pos++] == WBMP_WHITE) { gdImageSetPixel (im, col, row, white); } else { gdImageSetPixel (im, col, row, black); } } } freewbmp (wbmp); return (im); } /* gdImageCreateFromWBMP ** --------------------- */ gdImagePtr gdImageCreateFromWBMP (FILE * inFile) { gdImagePtr im; gdIOCtx *in = gdNewFileCtx (inFile); im = gdImageCreateFromWBMPCtx (in); in->free (in); return (im); } /* gdImageWBMP ** ----------- */ void gdImageWBMP (gdImagePtr im, int fg, FILE * outFile) { gdIOCtx *out = gdNewFileCtx (outFile); gdImageWBMPCtx (im, fg, out); out->free (out); } /* gdImageWBMPPtr ** -------------- */ void * gdImageWBMPPtr (gdImagePtr im, int *size, int fg) { void *rv; gdIOCtx *out = gdNewDynamicCtx (2048, NULL); if (out == NULL) return NULL; gdImageWBMPCtx (im, fg, out); rv = gdDPExtractData(out, size); if (!_gdImageWBMPCtx(im, fg, out)) { rv = gdDPExtractData(out, size); } else { rv = NULL; } out->free (out); return rv; } libwmf-0.2.13/src/extra/gd/gdcache.c000066400000000000000000000121551441723000300171010ustar00rootroot00000000000000#include "gd.h" #include "gdhelpers.h" #include #ifdef HAVE_LIBTTF #define NEED_CACHE 1 #else #ifdef HAVE_LIBFREETYPE #define NEED_CACHE 1 #endif #endif #ifdef NEED_CACHE /* * gdcache.c * * Caches of pointers to user structs in which the least-recently-used * element is replaced in the event of a cache miss after the cache has * reached a given size. * * John Ellson (ellson@lucent.com) Oct 31, 1997 * * Test this with: * gcc -o gdcache -g -Wall -DTEST gdcache.c * * The cache is implemented by a singly-linked list of elements * each containing a pointer to a user struct that is being managed by * the cache. * * The head structure has a pointer to the most-recently-used * element, and elements are moved to this position in the list each * time they are used. The head also contains pointers to three * user defined functions: * - a function to test if a cached userdata matches some keydata * - a function to provide a new userdata struct to the cache * if there has been a cache miss. * - a function to release a userdata struct when it is * no longer being managed by the cache * * In the event of a cache miss the cache is allowed to grow up to * a specified maximum size. After the maximum size is reached then * the least-recently-used element is discarded to make room for the * new. The most-recently-returned value is always left at the * beginning of the list after retrieval. * * In the current implementation the cache is traversed by a linear * search from most-recent to least-recent. This linear search * probably limits the usefulness of this implementation to cache * sizes of a few tens of elements. */ #include "gdcache.h" /*********************************************************/ /* implementation */ /*********************************************************/ /* create a new cache */ gdCache_head_t * gdCacheCreate ( int size, gdCacheTestFn_t gdCacheTest, gdCacheFetchFn_t gdCacheFetch, gdCacheReleaseFn_t gdCacheRelease) { gdCache_head_t *head; head = (gdCache_head_t *) gdMalloc (sizeof (gdCache_head_t)); head->mru = NULL; head->size = size; head->gdCacheTest = gdCacheTest; head->gdCacheFetch = gdCacheFetch; head->gdCacheRelease = gdCacheRelease; return head; } void gdCacheDelete (gdCache_head_t * head) { gdCache_element_t *elem, *prev; elem = head->mru; while (elem) { (*(head->gdCacheRelease)) (elem->userdata); prev = elem; elem = elem->next; gdFree ((char *) prev); } gdFree ((char *) head); } void * gdCacheGet (gdCache_head_t * head, void *keydata) { int i = 0; gdCache_element_t *elem, *prev = NULL, *prevprev = NULL; void *userdata; elem = head->mru; while (elem) { if ((*(head->gdCacheTest)) (elem->userdata, keydata)) { if (i) { /* if not already most-recently-used */ /* relink to top of list */ prev->next = elem->next; elem->next = head->mru; head->mru = elem; } return elem->userdata; } prevprev = prev; prev = elem; elem = elem->next; i++; } userdata = (*(head->gdCacheFetch)) (&(head->error), keydata); if (!userdata) { /* if there was an error in the fetch then don't cache */ return NULL; } if (i < head->size) { /* cache still growing - add new elem */ elem = (gdCache_element_t *) gdMalloc (sizeof (gdCache_element_t)); } else { /* cache full - replace least-recently-used */ /* preveprev becomes new end of list */ assert (prevprev); if (prevprev) prevprev->next = NULL; elem = prev; (*(head->gdCacheRelease)) (elem->userdata); } /* relink to top of list */ elem->next = head->mru; head->mru = elem; elem->userdata = userdata; return userdata; } /*********************************************************/ /* test stub */ /*********************************************************/ #ifdef TEST #include typedef struct { int key; int value; } key_value_t; static int cacheTest (void *map, void *key) { return (((key_value_t *) map)->key == *(int *) key); } static void * cacheFetch (char **error, void *key) { key_value_t *map; map = (key_value_t *) gdMalloc (sizeof (key_value_t)); map->key = *(int *) key; map->value = 3; *error = NULL; return (void *) map; } static void cacheRelease (void *map) { gdFree ((char *) map); } int main (char *argv[], int argc) { gdCache_head_t *cacheTable; int elem, key; cacheTable = gdCacheCreate (3, cacheTest, cacheFetch, cacheRelease); key = 20; elem = *(int *) gdCacheGet (cacheTable, &key); key = 30; elem = *(int *) gdCacheGet (cacheTable, &key); key = 40; elem = *(int *) gdCacheGet (cacheTable, &key); key = 50; elem = *(int *) gdCacheGet (cacheTable, &key); key = 30; elem = *(int *) gdCacheGet (cacheTable, &key); key = 30; elem = *(int *) gdCacheGet (cacheTable, &key); gdCacheDelete (cacheTable); return 0; } #endif /* TEST */ #endif /* HAVE_LIBTTF */ libwmf-0.2.13/src/extra/gd/gdcache.h000066400000000000000000000052711441723000300171070ustar00rootroot00000000000000/* * gdcache.h * * Caches of pointers to user structs in which the least-recently-used * element is replaced in the event of a cache miss after the cache has * reached a given size. * * John Ellson (ellson@lucent.com) Oct 31, 1997 * * Test this with: * gcc -o gdcache -g -Wall -DTEST gdcache.c * * The cache is implemented by a singly-linked list of elements * each containing a pointer to a user struct that is being managed by * the cache. * * The head structure has a pointer to the most-recently-used * element, and elements are moved to this position in the list each * time they are used. The head also contains pointers to three * user defined functions: * - a function to test if a cached userdata matches some keydata * - a function to provide a new userdata struct to the cache * if there has been a cache miss. * - a function to release a userdata struct when it is * no longer being managed by the cache * * In the event of a cache miss the cache is allowed to grow up to * a specified maximum size. After the maximum size is reached then * the least-recently-used element is discarded to make room for the * new. The most-recently-returned value is always left at the * beginning of the list after retrieval. * * In the current implementation the cache is traversed by a linear * search from most-recent to least-recent. This linear search * probably limits the usefulness of this implementation to cache * sizes of a few tens of elements. */ /*********************************************************/ /* header */ /*********************************************************/ /* #include */ #pragma GCC visibility push(hidden) #ifndef NULL #define NULL (void *)0 #endif /* user defined function templates */ typedef int (*gdCacheTestFn_t)(void *userdata, void *keydata); typedef void *(*gdCacheFetchFn_t)(char **error, void *keydata); typedef void (*gdCacheReleaseFn_t)(void *userdata); /* element structure */ typedef struct gdCache_element_s gdCache_element_t; struct gdCache_element_s { gdCache_element_t *next; void *userdata; }; /* head structure */ typedef struct gdCache_head_s gdCache_head_t; struct gdCache_head_s { gdCache_element_t *mru; int size; char *error; gdCacheTestFn_t gdCacheTest; gdCacheFetchFn_t gdCacheFetch; gdCacheReleaseFn_t gdCacheRelease; }; /* function templates */ gdCache_head_t * gdCacheCreate( int size, gdCacheTestFn_t gdCacheTest, gdCacheFetchFn_t gdCacheFetch, gdCacheReleaseFn_t gdCacheRelease ); void gdCacheDelete( gdCache_head_t *head ); void * gdCacheGet( gdCache_head_t *head, void *keydata ); #pragma GCC visibility pop libwmf-0.2.13/src/extra/gd/gddemo.c000066400000000000000000000062751441723000300167700ustar00rootroot00000000000000#include #include "gd.h" #include "gdfontg.h" #include "gdfonts.h" int main (void) { /* Input and output files */ FILE *in; FILE *out; /* Input and output images */ gdImagePtr im_in = 0, im_out = 0; /* Brush image */ gdImagePtr brush; /* Color indexes */ int white; int blue; int red; int green; /* Points for polygon */ gdPoint points[3]; /* Create output image, 256 by 256 pixels, true color. */ im_out = gdImageCreateTrueColor (256, 256); /* First color allocated is background. */ white = gdImageColorAllocate (im_out, 255, 255, 255); /* Set transparent color. */ gdImageColorTransparent (im_out, white); /* Try to load demoin.png and paste part of it into the output image. */ in = fopen ("demoin.png", "rb"); if (!in) { fprintf (stderr, "Can't load source image; this demo\n"); fprintf (stderr, "is much more impressive if demoin.png\n"); fprintf (stderr, "is available.\n"); im_in = 0; } else { im_in = gdImageCreateFromPng (in); fclose (in); /* Now copy, and magnify as we do so */ gdImageCopyResized (im_out, im_in, 32, 32, 0, 0, 192, 192, 255, 255); } red = gdImageColorAllocate (im_out, 255, 0, 0); green = gdImageColorAllocate (im_out, 0, 255, 0); blue = gdImageColorAllocate (im_out, 0, 0, 255); /* Rectangle */ gdImageLine (im_out, 16, 16, 240, 16, green); gdImageLine (im_out, 240, 16, 240, 240, green); gdImageLine (im_out, 240, 240, 16, 240, green); gdImageLine (im_out, 16, 240, 16, 16, green); /* Circle */ gdImageArc (im_out, 128, 128, 60, 20, 0, 720, blue); /* Arc */ gdImageArc (im_out, 128, 128, 40, 40, 90, 270, blue); /* Flood fill: doesn't do much on a continuously variable tone jpeg original. */ gdImageFill (im_out, 8, 8, blue); /* Polygon */ points[0].x = 64; points[0].y = 0; points[1].x = 0; points[1].y = 128; points[2].x = 128; points[2].y = 128; gdImageFilledPolygon (im_out, points, 3, green); /* Brush. A fairly wild example also involving a line style! */ if (im_in) { int style[8]; brush = gdImageCreateTrueColor (16, 16); gdImageCopyResized (brush, im_in, 0, 0, 0, 0, gdImageSX (brush), gdImageSY (brush), gdImageSX (im_in), gdImageSY (im_in)); gdImageSetBrush (im_out, brush); /* With a style, so they won't overprint each other. Normally, they would, yielding a fat-brush effect. */ style[0] = 0; style[1] = 0; style[2] = 0; style[3] = 0; style[4] = 0; style[5] = 0; style[6] = 0; style[7] = 1; gdImageSetStyle (im_out, style, 8); /* Draw the styled, brushed line */ gdImageLine (im_out, 0, 255, 255, 0, gdStyledBrushed); } /* Text */ gdImageString (im_out, gdFontGiant, 32, 32, (unsigned char *) "hi", red); gdImageStringUp (im_out, gdFontSmall, 64, 64, (unsigned char *) "hi", red); /* Make output image interlaced (progressive, in the case of JPEG) */ gdImageInterlace (im_out, 1); out = fopen ("demoout.png", "wb"); /* Write PNG */ gdImagePng (im_out, out); fclose (out); gdImageDestroy (im_out); if (im_in) { gdImageDestroy (im_in); } return 0; } libwmf-0.2.13/src/extra/gd/gdfontg.c000066400000000000000000003422621441723000300171600ustar00rootroot00000000000000 /* This is a header file for gd font, generated using bdftogd version 0.51 by Jan Pazdziora, adelton@fi.muni.cz from bdf font -Misc-Fixed-Bold-R-Normal-Sans-15-140-75-75-C-90-ISO8859-2 at Mon Jan 26 14:45:58 1998. The original bdf was holding following copyright: "Libor Skarvada, libor@informatics.muni.cz" */ #include "gdfontg.h" char gdFontGiantData[] = { /* Char 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 2 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* Char 3 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 4 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 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, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 6 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 8 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 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, /* Char 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 11 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 14 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 15 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 16 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 17 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 18 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 19 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 21 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 22 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 23 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 24 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 25 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 26 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 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, /* Char 27 */ 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 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, /* Char 28 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 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, 0, 0, /* Char 30 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 31 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 32 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 33 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 34 */ 0, 0, 0, 0, 0, 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, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 35 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, /* Char 36 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 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, /* Char 38 */ 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 39 */ 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 40 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 41 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 45 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 47 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, /* Char 48 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 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, /* Char 49 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 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, /* Char 51 */ 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 52 */ 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 53 */ 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 54 */ 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 55 */ 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, /* Char 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 57 */ 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 58 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 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, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 59 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 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, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 61 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 62 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, /* Char 63 */ 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 65 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 66 */ 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 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, /* Char 67 */ 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 68 */ 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 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, /* Char 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, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 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, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, /* Char 71 */ 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 72 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 73 */ 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 74 */ 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 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, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 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, /* Char 76 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 77 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 78 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 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, /* Char 79 */ 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 80 */ 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, /* Char 81 */ 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 82 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 83 */ 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 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, /* Char 84 */ 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 85 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 86 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 87 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 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, /* Char 88 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 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, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 90 */ 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 91 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 92 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 93 */ 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 94 */ 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 96 */ 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 98 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 99 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 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, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 101 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 102 */ 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 103 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, /* Char 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, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 105 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 106 */ 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, /* Char 107 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 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, /* Char 108 */ 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 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, /* Char 109 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 110 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 112 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 113 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 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, 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, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, /* Char 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, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 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, /* Char 116 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 117 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 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, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 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, /* Char 119 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 120 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 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, /* Char 121 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, /* Char 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, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 123 */ 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 124 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 125 */ 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 126 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 128 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 131 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 134 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, /* Char 136 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 137 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 138 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 139 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 140 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 141 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 142 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 143 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 145 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 146 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 147 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 148 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 149 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 150 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 153 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 154 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 156 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 157 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 158 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 159 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 160 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 161 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 162 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 163 */ 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 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, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 165 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 166 */ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 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, /* Char 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 168 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 169 */ 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 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, /* Char 170 */ 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, /* Char 171 */ 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 172 */ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 173 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 174 */ 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 175 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 176 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 177 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, /* Char 178 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, /* Char 179 */ 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 180 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 181 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 182 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 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, /* Char 183 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 184 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, /* Char 185 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 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, /* Char 186 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, /* Char 187 */ 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, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 188 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 189 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 190 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 191 */ 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, 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, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 192 */ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 193 */ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 194 */ 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 195 */ 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 196 */ 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 197 */ 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 198 */ 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 199 */ 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, /* Char 200 */ 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 201 */ 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 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, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, /* Char 203 */ 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 204 */ 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 205 */ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 206 */ 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 207 */ 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 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, /* Char 208 */ 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 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, /* Char 209 */ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 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, /* Char 210 */ 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 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, /* Char 211 */ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 212 */ 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 213 */ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 214 */ 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 215 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 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, /* Char 216 */ 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 217 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 218 */ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 219 */ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 220 */ 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 221 */ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 222 */ 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, /* Char 223 */ 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, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 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, 0, 0, 0, 0, 0, 0, /* Char 224 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, /* Char 225 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 226 */ 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 227 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 228 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 229 */ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 230 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 231 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, /* Char 232 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 233 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 234 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, /* Char 235 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 236 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 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, /* Char 237 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 238 */ 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, /* Char 239 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 240 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 241 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 242 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 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, /* Char 243 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 244 */ 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 245 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 246 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 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, /* Char 247 */ 0, 0, 0, 0, 0, 0, 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, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 0, 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, 1, 1, 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, /* Char 248 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, /* Char 249 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 250 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 251 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 252 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 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, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 253 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, /* Char 254 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, /* Char 255 */ 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; gdFont gdFontGiantRep = { 256, 0, 9, 15, gdFontGiantData }; gdFontPtr gdFontGiant = &gdFontGiantRep; /* This file has not been truncated. */ libwmf-0.2.13/src/extra/gd/gdfontg.h000066400000000000000000000010531441723000300171530ustar00rootroot00000000000000 #ifndef _GDFONTG_H_ #define _GDFONTG_H_ 1 #pragma GCC visibility push(hidden) #ifdef __cplusplus extern "C" { #endif /* This is a header file for gd font, generated using bdftogd version 0.51 by Jan Pazdziora, adelton@fi.muni.cz from bdf font -Misc-Fixed-Bold-R-Normal-Sans-15-140-75-75-C-90-ISO8859-2 at Mon Jan 26 14:45:58 1998. The original bdf was holding following copyright: "Libor Skarvada, libor@informatics.muni.cz" */ #include "gd.h" extern gdFontPtr gdFontGiant; #ifdef __cplusplus } #endif #pragma GCC visibility pop #endif libwmf-0.2.13/src/extra/gd/gdfontl.c000066400000000000000000003306601441723000300171640ustar00rootroot00000000000000 /* This is a header file for gd font, generated using bdftogd version 0.5 by Jan Pazdziora, adelton@fi.muni.cz from bdf font -misc-fixed-medium-r-normal--16-140-75-75-c-80-iso8859-2 at Tue Jan 6 19:39:27 1998. The original bdf was holding following copyright: "Libor Skarvada, libor@informatics.muni.cz" */ #include "gdfontl.h" char gdFontLargeData[] = { /* Char 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 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, /* Char 2 */ 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, /* Char 3 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 4 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 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, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 6 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 11 */ 0, 0, 0, 1, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, /* Char 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, 0, 0, 0, 1, 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, /* Char 14 */ 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 15 */ 0, 0, 0, 1, 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, 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, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, 0, 0, 0, 1, 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, /* Char 16 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 17 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 18 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 19 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 21 */ 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, 0, 0, 0, 1, 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, /* Char 22 */ 0, 0, 0, 1, 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, 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, 1, 1, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, /* Char 23 */ 0, 0, 0, 1, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 24 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, 0, 0, 0, 1, 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, /* Char 25 */ 0, 0, 0, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 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, /* Char 26 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 27 */ 0, 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 28 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 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, 0, 0, /* Char 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 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, /* Char 30 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 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, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 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, /* Char 31 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 32 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 33 */ 0, 0, 0, 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, 1, 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, 0, 0, 0, 1, 0, 0, 0, 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, 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, /* Char 34 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 35 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 36 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 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, /* Char 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, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 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, 0, 0, 0, /* Char 38 */ 0, 0, 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, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 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, /* Char 39 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 40 */ 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 41 */ 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, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, /* Char 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, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 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, /* Char 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, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 45 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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, 0, 0, 0, 0, /* Char 47 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 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, /* Char 48 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 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, 0, 0, 0, 0, /* Char 49 */ 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 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, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 51 */ 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 52 */ 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 53 */ 0, 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, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 54 */ 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 55 */ 0, 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, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 57 */ 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 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, 0, 0, 1, 0, 0, 0, 0, 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, 0, 0, 0, 0, /* Char 58 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, /* Char 59 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, /* Char 61 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 62 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 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, /* Char 63 */ 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 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, 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, /* Char 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, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 65 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 66 */ 0, 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, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 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, 0, 0, 0, /* Char 67 */ 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, 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, 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, 0, 0, 0, /* Char 68 */ 0, 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, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, 0, /* Char 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, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, 0, 0, 0, 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, 0, 0, /* Char 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, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, 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, /* Char 71 */ 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 72 */ 0, 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, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 73 */ 0, 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, 1, 1, 1, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 74 */ 0, 0, 0, 0, 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, 1, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 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, 0, 0, 0, 0, /* Char 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, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 76 */ 0, 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, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 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, 0, 0, /* Char 77 */ 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, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 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, /* Char 78 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 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, /* Char 79 */ 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 80 */ 0, 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, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, 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, /* Char 81 */ 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 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, /* Char 82 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 83 */ 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 84 */ 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, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 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, /* Char 85 */ 0, 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, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 86 */ 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, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 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, /* Char 87 */ 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, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 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, /* Char 88 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 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, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 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, 0, 0, 0, 1, 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, /* Char 90 */ 0, 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, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 91 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 92 */ 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 93 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 94 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 96 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 98 */ 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 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, 0, 0, 0, /* Char 99 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, 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, 0, 0, 0, /* Char 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, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 101 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 102 */ 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 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, 0, 0, 0, 1, 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, /* Char 103 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, /* Char 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, 0, 1, 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, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 105 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 106 */ 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 1, 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, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 107 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 108 */ 0, 0, 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, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 109 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 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, /* Char 110 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 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, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 112 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 113 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 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, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 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, 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, /* Char 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, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 116 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 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, 0, 0, 0, /* Char 117 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, /* Char 119 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 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, /* Char 120 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 121 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, /* Char 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, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 123 */ 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, /* Char 124 */ 0, 0, 0, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 125 */ 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, /* Char 126 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 128 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 131 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 134 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 136 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 137 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 138 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 139 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 140 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 141 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 143 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 145 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 146 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 147 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 148 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 149 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 150 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 153 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 154 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 156 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 157 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 158 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 159 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 160 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 161 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 162 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 163 */ 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 165 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 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, 0, 0, /* Char 166 */ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 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, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 168 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 169 */ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 170 */ 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* Char 171 */ 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 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, /* Char 172 */ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 173 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 174 */ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 175 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 176 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 177 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 178 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, /* Char 179 */ 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 180 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 181 */ 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, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 182 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 183 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 184 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, /* Char 185 */ 0, 0, 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, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 186 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* Char 187 */ 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 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, 0, 0, 0, 0, /* Char 188 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 189 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 191 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 192 */ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 193 */ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 194 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 195 */ 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 196 */ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 197 */ 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 198 */ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, 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, 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, 0, 0, 0, /* Char 199 */ 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, 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, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, /* Char 200 */ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, 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, 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, 0, 0, 0, /* Char 201 */ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, 0, 0, 0, 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, 0, 0, /* Char 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, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 203 */ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, 0, 0, 0, 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, 0, 0, /* Char 204 */ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, 0, 0, 0, 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, 0, 0, /* Char 205 */ 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 206 */ 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 207 */ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, 0, /* Char 208 */ 0, 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, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, 0, /* Char 209 */ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 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, /* Char 210 */ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 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, /* Char 211 */ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 212 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 213 */ 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 214 */ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 215 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 216 */ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 217 */ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 218 */ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 219 */ 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 220 */ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 221 */ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 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, 0, 0, 0, 1, 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, /* Char 222 */ 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, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* Char 223 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 224 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 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, 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, /* Char 225 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 226 */ 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, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 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, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 228 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 229 */ 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 230 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, 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, 0, 0, 0, /* Char 231 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, /* Char 232 */ 0, 0, 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, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, 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, 0, 0, 0, /* Char 233 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 234 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, /* Char 235 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 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, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 237 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 238 */ 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, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, /* Char 239 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 240 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 241 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 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, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, /* Char 243 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 244 */ 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 245 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 246 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, /* Char 247 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 248 */ 0, 0, 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, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 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, 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, /* Char 249 */ 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, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 250 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 251 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 252 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 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, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, /* Char 253 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, /* Char 254 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* Char 255 */ 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; gdFont gdFontLargeRep = { 256, 0, 8, 16, gdFontLargeData }; gdFontPtr gdFontLarge = &gdFontLargeRep; /* This file has not been truncated. */ libwmf-0.2.13/src/extra/gd/gdfontl.h000066400000000000000000000010511441723000300171560ustar00rootroot00000000000000 #ifndef _GDFONTL_H_ #define _GDFONTL_H_ 1 #pragma GCC visibility push(hidden) #ifdef __cplusplus extern "C" { #endif /* This is a header file for gd font, generated using bdftogd version 0.5 by Jan Pazdziora, adelton@fi.muni.cz from bdf font -misc-fixed-medium-r-normal--16-140-75-75-c-80-iso8859-2 at Tue Jan 6 19:39:27 1998. The original bdf was holding following copyright: "Libor Skarvada, libor@informatics.muni.cz" */ #include "gd.h" extern gdFontPtr gdFontLarge; #ifdef __cplusplus } #endif #pragma GCC visibility pop #endif libwmf-0.2.13/src/extra/gd/gdfontmb.c000066400000000000000000002362341441723000300173310ustar00rootroot00000000000000 /* This is a header file for gd font, generated using bdftogd version 0.5 by Jan Pazdziora, adelton@fi.muni.cz from bdf font -misc-fixed-bold-r-normal-sans-13-94-100-100-c-70-iso8859-2 at Thu Jan 8 13:54:57 1998. No copyright info was found in the original bdf. */ #include "gdfontmb.h" char gdFontMediumBoldData[] = { /* Char 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 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, 0, /* Char 2 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 3 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 4 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 6 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 9 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 10 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 11 */ 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 14 */ 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 15 */ 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 16 */ 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 18 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 19 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 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, 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 21 */ 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 22 */ 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 23 */ 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 24 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 25 */ 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 26 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 27 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 28 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 29 */ 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, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 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, /* Char 30 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 31 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 32 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 33 */ 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, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 34 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 35 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 36 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 37 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 38 */ 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, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 39 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 41 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 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, /* Char 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, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 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, 0, /* Char 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, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 45 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 47 */ 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, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 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, /* Char 48 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 49 */ 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, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 50 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 51 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 52 */ 0, 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, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 53 */ 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, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 54 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 55 */ 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, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 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, /* Char 56 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 57 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 58 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 1, 1, 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, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 59 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 61 */ 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 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, 0, 0, 0, 0, 0, 0, /* Char 62 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 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, /* Char 63 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 64 */ 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, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 65 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 66 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 67 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 68 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 69 */ 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, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 70 */ 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, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 71 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 72 */ 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, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 73 */ 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, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 74 */ 0, 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, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 75 */ 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, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 76 */ 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, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 77 */ 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, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 78 */ 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, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 79 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 80 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 81 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 82 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 83 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 84 */ 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, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 85 */ 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, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 86 */ 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, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 87 */ 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, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 88 */ 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, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 89 */ 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, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 90 */ 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, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 91 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 92 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 93 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 94 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 96 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 98 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 99 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 100 */ 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, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 101 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 102 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 103 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, /* Char 104 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 105 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 106 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, /* Char 107 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 108 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 109 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 110 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 112 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, /* Char 113 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 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, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 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, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 116 */ 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, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 117 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 119 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 120 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 121 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, /* Char 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, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 123 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 124 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 125 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 126 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 128 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 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, /* Char 131 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 134 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 136 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 137 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 138 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 139 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 140 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 141 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 143 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 145 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 146 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 147 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 148 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 149 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 150 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 153 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 154 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 156 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 157 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 158 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 159 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 160 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 161 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 162 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 163 */ 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, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 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, /* Char 165 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 166 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 167 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 168 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 169 */ 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 170 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 171 */ 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 172 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 173 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 174 */ 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 175 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 176 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 177 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 178 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, /* Char 179 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 180 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 181 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 182 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 183 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 184 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, /* Char 185 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 186 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 187 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 188 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 189 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 190 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 191 */ 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, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 192 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 193 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 194 */ 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 195 */ 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 196 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 197 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 198 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 199 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 200 */ 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 201 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 202 */ 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, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 203 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 204 */ 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 205 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 206 */ 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 207 */ 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 208 */ 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, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 209 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 210 */ 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 211 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 212 */ 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 213 */ 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 214 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 215 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 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, /* Char 216 */ 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 217 */ 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 218 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 219 */ 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 220 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 221 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 222 */ 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, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 223 */ 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 224 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 225 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 226 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 227 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 228 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 229 */ 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 230 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 231 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 232 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 233 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 234 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, /* Char 235 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 236 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 237 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 238 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 239 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 240 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 241 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 242 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 243 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 244 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 245 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 246 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 247 */ 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, /* Char 248 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 249 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 250 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 251 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 252 */ 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 253 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, /* Char 254 */ 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, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, /* Char 255 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; gdFont gdFontMediumBoldRep = { 256, 0, 7, 13, gdFontMediumBoldData }; gdFontPtr gdFontMediumBold = &gdFontMediumBoldRep; /* This file has not been truncated. */ libwmf-0.2.13/src/extra/gd/gdfontmb.h000066400000000000000000000010041441723000300173170ustar00rootroot00000000000000 #ifndef _GDFONTMB_H_ #define _GDFONTMB_H_ 1 #pragma GCC visibility push(hidden) #ifdef __cplusplus extern "C" { #endif /* This is a header file for gd font, generated using bdftogd version 0.5 by Jan Pazdziora, adelton@fi.muni.cz from bdf font -misc-fixed-bold-r-normal-sans-13-94-100-100-c-70-iso8859-2 at Thu Jan 8 13:54:57 1998. No copyright info was found in the original bdf. */ #include "gd.h" extern gdFontPtr gdFontMediumBold; #ifdef __cplusplus } #endif #pragma GCC visibility pop #endif libwmf-0.2.13/src/extra/gd/gdfonts.c000066400000000000000000002126121441723000300171670ustar00rootroot00000000000000 /* This is a header file for gd font, generated using bdftogd version 0.5 by Jan Pazdziora, adelton@fi.muni.cz from bdf font -misc-fixed-medium-r-semicondensed-sans-12-116-75-75-c-60-iso8859-2 at Thu Jan 8 14:13:20 1998. No copyright info was found in the original bdf. */ #include "gdfonts.h" char gdFontSmallData[] = { /* Char 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 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, /* Char 2 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, /* Char 3 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 4 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 6 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 9 */ 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, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 10 */ 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, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 11 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* Char 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* Char 14 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 15 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* Char 16 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 18 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 19 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 21 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* Char 22 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* Char 23 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 24 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* Char 25 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* Char 26 */ 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, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 27 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 28 */ 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 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, /* Char 30 */ 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, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 31 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 32 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 33 */ 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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 34 */ 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, 1, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 35 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 36 */ 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, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 37 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 38 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 39 */ 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, 1, 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, 0, 0, 0, 0, 0, 0, 0, /* Char 40 */ 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, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 41 */ 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 42 */ 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, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 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, /* Char 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, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 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, /* Char 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, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 45 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 47 */ 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, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 48 */ 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, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 49 */ 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, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 51 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 52 */ 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, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 53 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 54 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 55 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 56 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 57 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 58 */ 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 59 */ 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 61 */ 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 62 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 63 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 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, /* Char 64 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 65 */ 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, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 66 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 67 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 68 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 69 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 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, 0, 0, 0, 0, 0, /* Char 71 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 72 */ 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, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 73 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 74 */ 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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 75 */ 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, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 76 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 77 */ 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, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 78 */ 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, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 79 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, /* Char 81 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 82 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 83 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 84 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 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, 0, 0, 0, /* Char 85 */ 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, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 86 */ 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, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 87 */ 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, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 88 */ 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, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 89 */ 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, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 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, 0, 0, 0, /* Char 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 91 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 92 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 93 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 94 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 96 */ 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, 1, 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, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 98 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 99 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 100 */ 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, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 101 */ 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 102 */ 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, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 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, 0, 0, 0, 0, /* Char 103 */ 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, /* Char 104 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 105 */ 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, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 106 */ 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, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 107 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 108 */ 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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 109 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 0, 0, 1, 0, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 110 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 112 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* Char 113 */ 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, /* Char 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, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 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, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 116 */ 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, 1, 0, 0, 0, 0, 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, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 117 */ 0, 0, 0, 0, 0, 0, 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, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 119 */ 0, 0, 0, 0, 0, 0, 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, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 120 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 121 */ 0, 0, 0, 0, 0, 0, 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, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, /* Char 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, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 123 */ 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, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 124 */ 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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 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, /* Char 125 */ 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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 126 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 128 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 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, /* Char 131 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 134 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 136 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 137 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 138 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 139 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 140 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 141 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 143 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 145 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 146 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 147 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 148 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 149 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 150 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 153 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 154 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 156 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 157 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 158 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 159 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 160 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 161 */ 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, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, /* Char 162 */ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 163 */ 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, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 164 */ 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, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 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, /* Char 165 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 166 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 167 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 168 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 169 */ 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 170 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* Char 171 */ 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 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, 0, 0, 0, /* Char 172 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 173 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 174 */ 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 175 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 176 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 177 */ 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, /* Char 178 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 179 */ 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, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 180 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 181 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 182 */ 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 183 */ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 184 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 185 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 186 */ 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* Char 187 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 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, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 188 */ 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 189 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 190 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 191 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 192 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 193 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 194 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 195 */ 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 196 */ 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 197 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 198 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 199 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 200 */ 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 201 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 202 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 203 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 204 */ 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 205 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 206 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 207 */ 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 208 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 209 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 210 */ 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 211 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 212 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 213 */ 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 214 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 215 */ 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 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, /* Char 216 */ 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 217 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 218 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 219 */ 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 220 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 221 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 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, 0, 0, 0, /* Char 222 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, /* Char 223 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 224 */ 0, 0, 0, 0, 0, 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, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 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, 0, 0, 0, 0, 0, /* Char 225 */ 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 226 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 227 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 228 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 229 */ 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 230 */ 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 231 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, /* Char 232 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 233 */ 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 234 */ 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 235 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 236 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 237 */ 0, 0, 0, 0, 0, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 238 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 239 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 240 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 241 */ 0, 0, 0, 0, 0, 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, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 242 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 243 */ 0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 244 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 245 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 246 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 247 */ 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, /* Char 248 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 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, 0, 0, 0, 0, 0, /* Char 249 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 250 */ 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 251 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 252 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 253 */ 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, /* Char 254 */ 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, 1, 0, 0, 0, 0, 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, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, /* Char 255 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; gdFont gdFontSmallRep = { 256, 0, 6, 13, gdFontSmallData }; gdFontPtr gdFontSmall = &gdFontSmallRep; /* This file has not been truncated. */ libwmf-0.2.13/src/extra/gd/gdfonts.h000066400000000000000000000010051441723000300171640ustar00rootroot00000000000000 #ifndef _GDFONTS_H_ #define _GDFONTS_H_ 1 #pragma GCC visibility push(hidden) #ifdef __cplusplus extern "C" { #endif /* This is a header file for gd font, generated using bdftogd version 0.5 by Jan Pazdziora, adelton@fi.muni.cz from bdf font -misc-fixed-medium-r-semicondensed-sans-12-116-75-75-c-60-iso8859-2 at Thu Jan 8 14:13:20 1998. No copyright info was found in the original bdf. */ #include "gd.h" extern gdFontPtr gdFontSmall; #ifdef __cplusplus } #endif #pragma GCC visibility pop #endif libwmf-0.2.13/src/extra/gd/gdfontt.c000066400000000000000000001146471441723000300172010ustar00rootroot00000000000000 /* This is a header file for gd font, generated using bdftogd version 0.5 by Jan Pazdziora, adelton@fi.muni.cz from bdf font -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-2 at Thu Jan 8 13:49:54 1998. The original bdf was holding following copyright: "Libor Skarvada, libor@informatics.muni.cz" */ #include "gdfontt.h" char gdFontTinyData[] = { /* Char 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 1 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 2 */ 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, /* Char 3 */ 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, /* Char 4 */ 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, /* Char 5 */ 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, /* Char 6 */ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, /* Char 7 */ 0, 0, 0, 0, 0, 0, 1, 0, 0, 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, /* Char 8 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 9 */ 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, /* Char 10 */ 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, /* Char 11 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 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, /* Char 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, /* Char 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, /* Char 14 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 15 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, /* Char 16 */ 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, /* Char 17 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, /* Char 18 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, /* Char 19 */ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 21 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, /* Char 22 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, /* Char 23 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 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, /* Char 24 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, /* Char 25 */ 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, /* Char 26 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 27 */ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 28 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 29 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 30 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 31 */ 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, /* Char 32 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 33 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 34 */ 0, 0, 0, 0, 0, 0, 1, 0, 1, 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, /* Char 35 */ 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 36 */ 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 37 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, /* Char 38 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, /* Char 39 */ 0, 0, 0, 0, 0, 0, 1, 1, 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, /* Char 40 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 41 */ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 42 */ 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 43 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 44 */ 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, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 45 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 47 */ 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 48 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 49 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 50 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 51 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 52 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 53 */ 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 54 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 55 */ 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 56 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 57 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 58 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 59 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, /* Char 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 61 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 62 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 63 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 64 */ 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, /* Char 65 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 66 */ 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 67 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 68 */ 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 69 */ 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 70 */ 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 71 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 72 */ 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 73 */ 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 74 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 75 */ 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 76 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 77 */ 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 78 */ 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 79 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 80 */ 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 81 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, /* Char 82 */ 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 83 */ 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 84 */ 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 85 */ 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 86 */ 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 87 */ 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 88 */ 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 89 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 90 */ 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 91 */ 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 92 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* Char 93 */ 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 94 */ 0, 0, 0, 0, 0, 0, 0, 1, 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, /* Char 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, 1, 1, 1, 1, 1, /* Char 96 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 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, /* Char 97 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 98 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 99 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 100 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 101 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 102 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 103 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, /* Char 104 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 105 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 106 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, /* Char 107 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 108 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 109 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* Char 110 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 111 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 112 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* Char 113 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, /* Char 114 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 115 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 116 */ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 117 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 118 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 119 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 120 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 121 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, /* Char 122 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 123 */ 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 124 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 125 */ 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 126 */ 0, 0, 0, 0, 0, 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, /* Char 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, /* Char 128 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 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, /* Char 131 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 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, /* Char 134 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 136 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 137 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 138 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 139 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 140 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 141 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 143 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 145 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 146 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 147 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 148 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 149 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 150 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 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, /* Char 153 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 154 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 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, /* Char 156 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 157 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 158 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 159 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 160 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 161 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, /* Char 162 */ 1, 0, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 163 */ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* Char 164 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 165 */ 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 166 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 167 */ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, /* Char 168 */ 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, /* Char 169 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 170 */ 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, /* Char 171 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 172 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 173 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 174 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 175 */ 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 176 */ 0, 0, 1, 0, 0, 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, /* Char 177 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, /* Char 178 */ 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, /* Char 179 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 180 */ 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, 0, 0, 0, /* Char 181 */ 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 182 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 183 */ 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, 0, 0, 0, /* Char 184 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, /* Char 185 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 186 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, /* Char 187 */ 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 188 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 189 */ 0, 1, 0, 0, 1, 1, 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, /* Char 190 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 191 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 192 */ 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 193 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 194 */ 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 195 */ 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 196 */ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 197 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 198 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 199 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, /* Char 200 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 201 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 202 */ 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, /* Char 203 */ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 204 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 205 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 206 */ 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 207 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 208 */ 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 209 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 210 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 211 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 212 */ 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 213 */ 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 214 */ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 215 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 216 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 217 */ 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 218 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 219 */ 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 220 */ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 221 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 222 */ 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, /* Char 223 */ 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, /* Char 224 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 225 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 226 */ 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 227 */ 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 228 */ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 229 */ 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 230 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 231 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, /* Char 232 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 233 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 234 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, /* Char 235 */ 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 236 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 237 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 238 */ 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* Char 239 */ 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 240 */ 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 241 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 242 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 243 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 244 */ 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 245 */ 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 246 */ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 247 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, /* Char 248 */ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Char 249 */ 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 250 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 251 */ 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 252 */ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, /* Char 253 */ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, /* Char 254 */ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, /* Char 255 */ 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, }; gdFont gdFontTinyRep = { 256, 0, 5, 8, gdFontTinyData }; gdFontPtr gdFontTiny = &gdFontTinyRep; /* This file has not been truncated. */ libwmf-0.2.13/src/extra/gd/gdfontt.h000066400000000000000000000010451441723000300171710ustar00rootroot00000000000000 #ifndef _GDFONTT_H_ #define _GDFONTT_H_ 1 #pragma GCC visibility push(hidden) #ifdef __cplusplus extern "C" { #endif /* This is a header file for gd font, generated using bdftogd version 0.5 by Jan Pazdziora, adelton@fi.muni.cz from bdf font -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-2 at Thu Jan 8 13:49:54 1998. The original bdf was holding following copyright: "Libor Skarvada, libor@informatics.muni.cz" */ #include "gd.h" extern gdFontPtr gdFontTiny; #ifdef __cplusplus } #endif #pragma GCC visibility pop #endif libwmf-0.2.13/src/extra/gd/gdft.c000066400000000000000000000550361441723000300164540ustar00rootroot00000000000000 /********************************************/ /* gd interface to freetype library */ /* */ /* John Ellson ellson@lucent.com */ /********************************************/ #include #include #include #include #include "gd.h" #include "gdhelpers.h" #ifndef MSWIN32 #include #else #define R_OK 2 #endif /* number of antialised colors for indexed bitmaps */ #define NUMCOLORS 8 char * gdImageStringTTF (gdImage * im, int *brect, int fg, char *fontlist, double ptsize, double angle, int x, int y, char *string) { return gdImageStringFT (im, brect, fg, fontlist, ptsize, angle, x, y, string); } #ifndef HAVE_LIBFREETYPE char * gdImageStringFT (gdImage * im, int *brect, int fg, char *fontlist, double ptsize, double angle, int x, int y, char *string) { return "libgd was not built with FreeType font support\n"; } #else #include "gdcache.h" #include #include FT_FREETYPE_H #include FT_GLYPH_H /* number of fonts cached before least recently used is replaced */ #define FONTCACHESIZE 6 /* number of antialias color lookups cached */ #define TWEENCOLORCACHESIZE 32 /* * Line separation as a factor of font height. * No space between if LINESPACE = 1.00 * Line separation will be rounded up to next pixel row. */ #define LINESPACE 1.05 /* * The character (space) used to separate alternate fonts in the * fontlist parameter to gdImageStringFT. */ #define LISTSEPARATOR " " /* * DEFAULT_FONTPATH and PATHSEPARATOR are host type dependent and * are normally set by configure in gvconfig.h. These are just * some last resort values that might match some Un*x system * if building this version of gd separate from graphviz. */ #ifndef DEFAULT_FONTPATH #define DEFAULT_FONTPATH "/usr/share/fonts/truetype" #endif #ifndef PATHSEPARATOR #define PATHSEPARATOR ":" #endif #ifndef TRUE #define FALSE 0 #define TRUE !FALSE #endif #define MAX(a,b) ((a)>(b)?(a):(b)) #define MIN(a,b) ((a)<(b)?(a):(b)) typedef struct { char *fontlist; /* key */ FT_Library *library; FT_Face face; FT_Bool have_char_map_unicode, have_char_map_big5, have_char_map_sjis, have_char_map_apple_roman; gdCache_head_t *glyphCache; } font_t; typedef struct { char *fontlist; /* key */ FT_Library *library; } fontkey_t; typedef struct { int pixel; /* key */ int bgcolor; /* key */ int fgcolor; /* key *//* -ve means no antialias */ gdImagePtr im; /* key */ int tweencolor; } tweencolor_t; typedef struct { int pixel; /* key */ int bgcolor; /* key */ int fgcolor; /* key *//* -ve means no antialias */ gdImagePtr im; /* key */ } tweencolorkey_t; /******************************************************************** * gdTcl_UtfToUniChar is borrowed from Tcl ... */ /* * tclUtf.c -- * * Routines for manipulating UTF-8 strings. * * Copyright (c) 1997-1998 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) tclUtf.c 1.25 98/01/28 18:02:43 */ /* *--------------------------------------------------------------------------- * * gdTcl_UtfToUniChar -- * * Extract the Tcl_UniChar represented by the UTF-8 string. Bad * UTF-8 sequences are converted to valid Tcl_UniChars and processing * continues. Equivalent to Plan 9 chartorune(). * * The caller must ensure that the source buffer is long enough that * this routine does not run off the end and dereference non-existent * memory looking for trail bytes. If the source buffer is known to * be '\0' terminated, this cannot happen. Otherwise, the caller * should call Tcl_UtfCharComplete() before calling this routine to * ensure that enough bytes remain in the string. * * Results: * *chPtr is filled with the Tcl_UniChar, and the return value is the * number of bytes from the UTF-8 string that were consumed. * * Side effects: * None. * *--------------------------------------------------------------------------- */ #ifdef JISX0208 #include "jisx0208.h" #endif #define Tcl_UniChar int #define TCL_UTF_MAX 3 static int gdTcl_UtfToUniChar (char *str, Tcl_UniChar * chPtr) /* str is the UTF8 next character pointer */ /* chPtr is the int for the result */ { int byte; /* HTML4.0 entities in decimal form, e.g. Å */ byte = *((unsigned char *) str); if (byte == '&') { int i, n = 0; byte = *((unsigned char *) (str + 1)); if (byte == '#') { for (i = 2; i < 8; i++) { byte = *((unsigned char *) (str + i)); if (byte >= '0' && byte <= '9') { n = (n * 10) + (byte - '0'); } else break; } if (byte == ';') { *chPtr = (Tcl_UniChar) n; return ++i; } } } /* * Unroll 1 to 3 byte UTF-8 sequences, use loop to handle longer ones. */ byte = *((unsigned char *) str); #ifdef JISX0208 if (0xA1 <= byte && byte <= 0xFE) { int ku, ten; ku = (byte & 0x7F) - 0x20; ten = (str[1] & 0x7F) - 0x20; if ((ku < 1 || ku > 92) || (ten < 1 || ten > 94)) { *chPtr = (Tcl_UniChar) byte; return 1; } *chPtr = (Tcl_UniChar) UnicodeTbl[ku - 1][ten - 1]; return 2; } else #endif /* JISX0208 */ if (byte < 0xC0) { /* * Handles properly formed UTF-8 characters between * 0x01 and 0x7F. Also treats \0 and naked trail * bytes 0x80 to 0xBF as valid characters representing * themselves. */ *chPtr = (Tcl_UniChar) byte; return 1; } else if (byte < 0xE0) { if ((str[1] & 0xC0) == 0x80) { /* * Two-byte-character lead-byte followed * by a trail-byte. */ *chPtr = (Tcl_UniChar) (((byte & 0x1F) << 6) | (str[1] & 0x3F)); return 2; } /* * A two-byte-character lead-byte not followed by trail-byte * represents itself. */ *chPtr = (Tcl_UniChar) byte; return 1; } else if (byte < 0xF0) { if (((str[1] & 0xC0) == 0x80) && ((str[2] & 0xC0) == 0x80)) { /* * Three-byte-character lead byte followed by * two trail bytes. */ *chPtr = (Tcl_UniChar) (((byte & 0x0F) << 12) | ((str[1] & 0x3F) << 6) | (str[2] & 0x3F)); return 3; } /* * A three-byte-character lead-byte not followed by * two trail-bytes represents itself. */ *chPtr = (Tcl_UniChar) byte; return 1; } #if TCL_UTF_MAX > 3 else { int ch, total, trail; total = totalBytes[byte]; trail = total - 1; if (trail > 0) { ch = byte & (0x3F >> trail); do { str++; if ((*str & 0xC0) != 0x80) { *chPtr = byte; return 1; } ch <<= 6; ch |= (*str & 0x3F); trail--; } while (trail > 0); *chPtr = ch; return total; } } #endif *chPtr = (Tcl_UniChar) byte; return 1; } /********************************************************************/ /* font cache functions */ static int fontTest (void *element, void *key) { font_t *a = (font_t *) element; fontkey_t *b = (fontkey_t *) key; return (strcmp (a->fontlist, b->fontlist) == 0); } static void * fontFetch (char **error, void *key) { font_t *a; fontkey_t *b = (fontkey_t *) key; int n; int font_found = 0; unsigned short platform, encoding; char *fontsearchpath, *fontlist; char *fullname = NULL; char *name, *path, *dir; char dummy = 0; char *strtok_ptr = &dummy; FT_Error err; FT_CharMap found = 0; FT_CharMap charmap; a = (font_t *) gdMalloc (sizeof (font_t)); a->fontlist = strdup (b->fontlist); a->library = b->library; /* * Search the pathlist for any of a list of font names. */ fontsearchpath = getenv ("GDFONTPATH"); if (!fontsearchpath) fontsearchpath = DEFAULT_FONTPATH; path = strdup (fontsearchpath); fontlist = strdup (a->fontlist); /* * Must use gd_strtok_r else pointer corrupted by strtok in nested loop. */ for (name = gd_strtok_r (fontlist, LISTSEPARATOR, &strtok_ptr); name; name = gd_strtok_r (0, LISTSEPARATOR, &strtok_ptr)) { /* * Allocate an oversized buffer that is guaranteed to be * big enough for all paths to be tested. */ fullname = gdRealloc (fullname, strlen (fontsearchpath) + strlen (name) + 6); /* if name is an absolute filename then test directly */ if (*name == '/') { sprintf (fullname, "%s", name); if (access (fullname, R_OK) == 0) { font_found++; break; } } for (dir = strtok (path, PATHSEPARATOR); dir; dir = strtok (0, PATHSEPARATOR)) { sprintf (fullname, "%s/%s.ttf", dir, name); if (access (fullname, R_OK) == 0) { font_found++; break; } } if (font_found) break; } gdFree (path); gdFree (fontlist); if (!font_found) { *error = "Could not find/open font"; gdFree (fullname); gdFree (a); return NULL; } err = FT_New_Face (*b->library, fullname, 0, &a->face); gdFree (fullname); if (err) { *error = "Could not read font"; gdFree (a); return NULL; } /* FIXME - This mapping stuff is imcomplete - where is the spec? */ a->have_char_map_unicode = 0; a->have_char_map_big5 = 0; a->have_char_map_sjis = 0; a->have_char_map_apple_roman = 0; for (n = 0; n < a->face->num_charmaps; n++) { charmap = a->face->charmaps[n]; platform = charmap->platform_id; encoding = charmap->encoding_id; if ((platform == 3 && encoding == 1) /* Windows Unicode */ || (platform == 3 && encoding == 0) /* Windows Symbol */ || (platform == 2 && encoding == 1) /* ISO Unicode */ || (platform == 0)) { /* Apple Unicode */ a->have_char_map_unicode = 1; found = charmap; } else if (platform == 3 && encoding == 4) { /* Windows Big5 */ a->have_char_map_big5 = 1; found = charmap; } else if (platform == 3 && encoding == 2) { /* Windows Sjis */ a->have_char_map_sjis = 1; found = charmap; } else if ((platform == 1 && encoding == 0) /* Apple Roman */ || (platform == 2 && encoding == 0)) { /* ISO ASCII */ a->have_char_map_apple_roman = 1; found = charmap; } } if (!found) { *error = "Unable to find a CharMap that I can handle"; gdFree (a); return NULL; } return (void *) a; } static void fontRelease (void *element) { font_t *a = (font_t *) element; FT_Done_Face (a->face); gdFree (a->fontlist); gdFree ((char *) element); } /********************************************************************/ /* tweencolor cache functions */ static int tweenColorTest (void *element, void *key) { tweencolor_t *a = (tweencolor_t *) element; tweencolorkey_t *b = (tweencolorkey_t *) key; return (a->pixel == b->pixel && a->bgcolor == b->bgcolor && a->fgcolor == b->fgcolor && a->im == b->im); } /* * Computes a color in im's color table that is part way between * the background and foreground colors proportional to the gray * pixel value in the range 0-NUMCOLORS. The fg and bg colors must already * be in the color table. */ static void * tweenColorFetch (char **error, void *key) { tweencolor_t *a; tweencolorkey_t *b = (tweencolorkey_t *) key; int pixel, npixel, bg, fg; gdImagePtr im; (void)error; a = (tweencolor_t *) gdMalloc (sizeof (tweencolor_t)); pixel = a->pixel = b->pixel; bg = a->bgcolor = b->bgcolor; fg = a->fgcolor = b->fgcolor; im = b->im; /* if fg is specified by a negative color idx, then don't antialias */ if (fg < 0) { a->tweencolor = -fg; } else { npixel = NUMCOLORS - pixel; if (im->trueColor) { /* 2.0.1: use gdImageSetPixel to do the alpha blending work, or to just store the alpha level. All we have to do here is incorporate our knowledge of the percentage of this pixel that is really "lit" by pushing the alpha value up toward transparency in edge regions. */ a->tweencolor = gdTrueColorAlpha ( gdTrueColorGetRed (fg), gdTrueColorGetGreen (fg), gdTrueColorGetBlue (fg), gdAlphaMax - (gdTrueColorGetAlpha (fg) * pixel / NUMCOLORS)); } else { a->tweencolor = gdImageColorResolve (im, (pixel * im->red[fg] + npixel * im->red[bg]) / NUMCOLORS, (pixel * im->green[fg] + npixel * im->green[bg]) / NUMCOLORS, (pixel * im->blue[fg] + npixel * im->blue[bg]) / NUMCOLORS); } } return (void *) a; } static void tweenColorRelease (void *element) { gdFree ((char *) element); } /* draw_bitmap - transfers glyph bitmap to GD image */ static char * gdft_draw_bitmap (gdImage * im, int fg, FT_Bitmap bitmap, int pen_x, int pen_y) { unsigned char *pixel = 0; int *tpixel = 0; int x, y, pc; unsigned row, col; tweencolor_t *tc_elem; tweencolorkey_t tc_key; /* initialize tweenColorCache on first call */ static gdCache_head_t *tc_cache; if (!tc_cache) { tc_cache = gdCacheCreate (TWEENCOLORCACHESIZE, tweenColorTest, tweenColorFetch, tweenColorRelease); } /* copy to image, mapping colors */ tc_key.fgcolor = fg; tc_key.im = im; for (row = 0; row < bitmap.rows; row++) { pc = row * bitmap.pitch; y = pen_y + row; /* clip if out of bounds */ if (y >= im->sy || y < 0) continue; for (col = 0; col < bitmap.width; col++, pc++) { const int trueColor = im->trueColor; if (bitmap.pixel_mode == ft_pixel_mode_grays) { /* * Round to NUMCOLORS levels of antialiasing for * index color images since only 256 colors are * available. */ tc_key.pixel = ((bitmap.buffer[pc] * NUMCOLORS) + bitmap.num_grays / 2) / (bitmap.num_grays - 1); } else if (bitmap.pixel_mode == ft_pixel_mode_mono) { tc_key.pixel = ((bitmap.buffer[pc / 8] << (pc % 8)) & 128) ? NUMCOLORS : 0; } else { return "Unsupported ft_pixel_mode"; } if (tc_key.pixel > 0) { /* if not background */ x = pen_x + col; /* clip if out of bounds */ if (x >= im->sx || x < 0) continue; /* get pixel location in gd buffer */ if (trueColor) { tpixel = &im->tpixels[y][x]; } else { pixel = &im->pixels[y][x]; } if (tc_key.pixel == NUMCOLORS) { /* use fg color directly */ if (trueColor) { *tpixel = fg; } else { *pixel = fg; } } else { tc_elem = (tweencolor_t *) gdCacheGet (tc_cache, &tc_key); if (!tc_elem) return tc_cache->error; /* find antialised color */ if (trueColor) { tc_key.bgcolor = *tpixel; *tpixel = tc_elem->tweencolor; } else { tc_key.bgcolor = *pixel; *pixel = tc_elem->tweencolor; } } } } } return (char *) NULL; } static int gdroundupdown (FT_F26Dot6 v1, int updown) { return (!updown) ? (v1 < 0 ? ((v1 - 63) >> 6) : v1 >> 6) : (v1 > 0 ? ((v1 + 63) >> 6) : v1 >> 6); } #pragma GCC visibility push(hidden) extern int any2eucjp (char *, char *, unsigned int); #pragma GCC visibility pop /********************************************************************/ /* gdImageStringFT - render a utf8 string onto a gd image */ char * gdImageStringFT (gdImage * im, int *brect, int fg, char *fontlist, double ptsize, double angle, int x, int y, char *string) { FT_BBox bbox, glyph_bbox; FT_Matrix matrix; FT_Vector pen, delta, penf; FT_Face face; FT_Glyph image; FT_GlyphSlot slot; FT_Error err; FT_Bool use_kerning; FT_UInt glyph_index, previous; double sin_a = sin (angle); double cos_a = cos (angle); int len, i = 0, ch; int x1 = 0, y1 = 0; font_t *font; fontkey_t fontkey; char *next; char *tmpstr = NULL; int render = (im && (im->trueColor || (fg <= 255 && fg >= -255))); FT_BitmapGlyph bm; /***** initialize font library and font cache on first call ******/ static gdCache_head_t *fontCache; static FT_Library library; if (!fontCache) { if (FT_Init_FreeType (&library)) { return "Failure to initialize font library"; } fontCache = gdCacheCreate (FONTCACHESIZE, fontTest, fontFetch, fontRelease); } /*****/ /* get the font (via font cache) */ fontkey.fontlist = fontlist; fontkey.library = &library; font = (font_t *) gdCacheGet (fontCache, &fontkey); if (!font) { return fontCache->error; } face = font->face; /* shortcut */ slot = face->glyph; /* shortcut */ if (FT_Set_Char_Size (face, 0, (FT_F26Dot6) (ptsize * 64), GD_RESOLUTION, GD_RESOLUTION)) { return "Could not set character size"; } matrix.xx = (FT_Fixed) (cos_a * (1 << 16)); matrix.yx = (FT_Fixed) (sin_a * (1 << 16)); matrix.xy = -matrix.yx; matrix.yy = matrix.xx; penf.x = penf.y = 0; /* running position of non-rotated string */ pen.x = pen.y = 0; /* running position of rotated string */ bbox.xMin = bbox.xMax = bbox.yMin = bbox.yMax = 0; use_kerning = FT_HAS_KERNING (face); previous = 0; #ifndef JISX0208 if (font->have_char_map_sjis) { #endif if ((tmpstr = (char *) gdMalloc (BUFSIZ))) { any2eucjp (tmpstr, string, BUFSIZ); next = tmpstr; } else { next = string; } #ifndef JISX0208 } else { next = string; } #endif while (*next) { ch = *next; /* carriage returns */ if (ch == '\r') { penf.x = 0; x1 = (penf.x * cos_a - penf.y * sin_a + 32) / 64; y1 = (penf.x * sin_a + penf.y * cos_a + 32) / 64; pen.x = pen.y = 0; previous = 0; /* clear kerning flag */ next++; continue; } /* newlines */ if (ch == '\n') { penf.y -= face->size->metrics.height * LINESPACE; penf.y = (penf.y - 32) & -64; /* round to next pixel row */ x1 = (penf.x * cos_a - penf.y * sin_a + 32) / 64; y1 = (penf.x * sin_a + penf.y * cos_a + 32) / 64; pen.x = pen.y = 0; previous = 0; /* clear kerning flag */ next++; continue; } if (font->have_char_map_unicode) { /* use UTF-8 mapping from ASCII */ len = gdTcl_UtfToUniChar (next, &ch); next += len; } else if (font->have_char_map_sjis) { unsigned char c; int jiscode; c = *next; if (0xA1 <= c && c <= 0xFE) { next++; jiscode = 0x100 * (c & 0x7F) + ((*next) & 0x7F); ch = (jiscode >> 8) & 0xFF; jiscode &= 0xFF; if (ch & 1) jiscode += 0x40 - 0x21; else jiscode += 0x9E - 0x21; if (jiscode >= 0x7F) jiscode++; ch = (ch - 0x21) / 2 + 0x81; if (ch >= 0xA0) ch += 0x40; ch = (ch << 8) + jiscode; } else { ch = c & 0xFF; /* don't extend sign */ } if (*next) next++; } else { /* * Big 5 mapping: * use "JIS-8 half-width katakana" coding from 8-bit characters. Ref: * ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/japan.inf-032092.sjs */ ch = (*next) & 0xFF; /* don't extend sign */ next++; if (ch >= 161 /* first code of JIS-8 pair */ && *next) { /* don't advance past '\0' */ /* TBB: Fix from Kwok Wah On: & 255 needed */ ch = (ch * 256) + ((*next) & 255); next++; } } /* Convert character code to glyph index */ glyph_index = FT_Get_Char_Index (face, ch); /* retrieve kerning distance and move pen position */ if (use_kerning && previous && glyph_index) { FT_Get_Kerning (face, previous, glyph_index, ft_kerning_default, &delta); pen.x += delta.x; } /* load glyph image into the slot (erase previous one) */ err = FT_Load_Glyph (face, glyph_index, FT_LOAD_DEFAULT); if (err) { gdFree (tmpstr); return "Problem loading glyph"; } /* transform glyph image */ FT_Get_Glyph (slot, &image); if (brect) { /* only if need brect */ FT_Glyph_Get_CBox (image, ft_glyph_bbox_gridfit, &glyph_bbox); if (!i) { /* if first character, init BB corner values */ bbox.xMin = bbox.yMin = (1 << 30) - 1; bbox.xMax = bbox.yMax = -bbox.xMin; } glyph_bbox.xMin += penf.x; glyph_bbox.yMin += penf.y; glyph_bbox.xMax += penf.x; glyph_bbox.yMax += penf.y; if (bbox.xMin > glyph_bbox.xMin) bbox.xMin = glyph_bbox.xMin; if (bbox.yMin > glyph_bbox.yMin) bbox.yMin = glyph_bbox.yMin; if (bbox.xMax < glyph_bbox.xMax) bbox.xMax = glyph_bbox.xMax; if (bbox.yMax < glyph_bbox.yMax) bbox.yMax = glyph_bbox.yMax; i++; } /* transform glyph image */ FT_Glyph_Transform (image, &matrix, 0); if (render) { if (image->format != ft_glyph_format_bitmap) { err = FT_Glyph_To_Bitmap (&image, ft_render_mode_normal, 0, 1); if (err) { gdFree (tmpstr); return "Problem rendering glyph"; } } /* now, draw to our target surface */ bm = (FT_BitmapGlyph) image; gdft_draw_bitmap (im, fg, bm->bitmap, x + x1 + ((pen.x + 31) >> 6) + bm->left, y - y1 + ((pen.y + 31) >> 6) - bm->top); } /* record current glyph index for kerning */ previous = glyph_index; /* increment pen position */ pen.x += image->advance.x >> 10; pen.y -= image->advance.y >> 10; penf.x += slot->metrics.horiAdvance; FT_Done_Glyph (image); } if (brect) { /* only if need brect */ /* For perfect rounding, must get sin(a + pi/4) and sin(a - pi/4). */ double d1 = sin (angle + 0.78539816339744830962); double d2 = sin (angle - 0.78539816339744830962); /* rotate bounding rectangle */ brect[0] = (int) (bbox.xMin * cos_a - bbox.yMin * sin_a); brect[1] = (int) (bbox.xMin * sin_a + bbox.yMin * cos_a); brect[2] = (int) (bbox.xMax * cos_a - bbox.yMin * sin_a); brect[3] = (int) (bbox.xMax * sin_a + bbox.yMin * cos_a); brect[4] = (int) (bbox.xMax * cos_a - bbox.yMax * sin_a); brect[5] = (int) (bbox.xMax * sin_a + bbox.yMax * cos_a); brect[6] = (int) (bbox.xMin * cos_a - bbox.yMax * sin_a); brect[7] = (int) (bbox.xMin * sin_a + bbox.yMax * cos_a); /* scale, round and offset brect */ brect[0] = x + gdroundupdown (brect[0], d2 > 0); brect[1] = y - gdroundupdown (brect[1], d1 < 0); brect[2] = x + gdroundupdown (brect[2], d1 > 0); brect[3] = y - gdroundupdown (brect[3], d2 > 0); brect[4] = x + gdroundupdown (brect[4], d2 < 0); brect[5] = y - gdroundupdown (brect[5], d1 > 0); brect[6] = x + gdroundupdown (brect[6], d1 < 0); brect[7] = y - gdroundupdown (brect[7], d2 < 0); } gdFree (tmpstr); return (char *) NULL; } #endif /* HAVE_LIBFREETYPE */ libwmf-0.2.13/src/extra/gd/gdhelpers.c000066400000000000000000000034451441723000300175020ustar00rootroot00000000000000#include "gd.h" #include "gdhelpers.h" #include #include #include /* TBB: gd_strtok_r is not portable; provide an implementation */ #define SEP_TEST (separators[*((unsigned char *) s)]) char * gd_strtok_r (char *s, char *sep, char **state) { char separators[256]; char *result = 0; memset (separators, 0, sizeof (separators)); while (*sep) { separators[*((unsigned char *) sep)] = 1; sep++; } if (!s) { /* Pick up where we left off */ s = *state; } /* 1. EOS */ if (!(*s)) { *state = s; return 0; } /* 2. Leading separators, if any */ if (SEP_TEST) { do { s++; } while (SEP_TEST); /* 2a. EOS after separators only */ if (!(*s)) { *state = s; return 0; } } /* 3. A token */ result = s; do { /* 3a. Token at end of string */ if (!(*s)) { *state = s; return result; } s++; } while (!SEP_TEST); /* 4. Terminate token and skip trailing separators */ *s = '\0'; do { s++; } while (SEP_TEST); /* 5. Return token */ *state = s; return result; } void * gdCalloc (size_t nmemb, size_t size) { return calloc (nmemb, size); } void * gdMalloc (size_t size) { return malloc (size); } void * gdRealloc (void *ptr, size_t size) { return realloc (ptr, size); } void gdFree (void *ptr) { free (ptr); } int overflow2(int a, int b) { if(a < 0 || b < 0) { fprintf(stderr, "gd warning: one parameter to a memory allocation multiplication is negative, failing operation gracefully\n"); return 1; } if(b == 0) return 0; if(a > INT_MAX / b) { fprintf(stderr, "gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully\n"); return 1; } return 0; } libwmf-0.2.13/src/extra/gd/gdhelpers.h000066400000000000000000000011251441723000300175000ustar00rootroot00000000000000#ifndef GDHELPERS_H #define GDHELPERS_H 1 #pragma GCC visibility push(hidden) /* TBB: strtok_r is not universal; provide an implementation of it. */ extern char *gd_strtok_r(char *s, char *sep, char **state); /* These functions wrap memory management. gdFree is in gd.h, where callers can utilize it to correctly free memory allocated by these functions with the right version of free(). */ void *gdCalloc(size_t nmemb, size_t size); void *gdMalloc(size_t size); void *gdRealloc(void *ptr, size_t size); int overflow2(int a, int b); #pragma GCC visibility pop #endif /* GDHELPERS_H */ libwmf-0.2.13/src/extra/gd/gdkanji.c000066400000000000000000000306601441723000300171330ustar00rootroot00000000000000 /* gdkanji.c (Kanji code converter) */ /* written by Masahito Yamaga (ma@yama-ga.com) */ #include #include #include #include "gd.h" #include "gdhelpers.h" #include #if defined(HAVE_ICONV_H) || defined(HAVE_ICONV) #include #ifdef HAVE_ERRNO_H #include #endif #endif #if defined(HAVE_ICONV_H) && !defined(HAVE_ICONV) #define HAVE_ICONV 1 #endif #define LIBNAME "any2eucjp()" #if defined(__MSC__) || defined(__BORLANDC__) || defined(__TURBOC__) || defined(_Windows) || defined(MSDOS) #ifndef SJISPRE #define SJISPRE 1 #endif #endif #ifdef TRUE #undef TRUE #endif #ifdef FALSE #undef FALSE #endif #define TRUE 1 #define FALSE 0 #define NEW 1 #define OLD 2 #define ESCI 3 #define NEC 4 #define EUC 5 #define SJIS 6 #define EUCORSJIS 7 #define ASCII 8 #define NEWJISSTR "JIS7" #define OLDJISSTR "jis" #define EUCSTR "eucJP" #define SJISSTR "SJIS" #define ESC 27 #define SS2 142 static void debug (const char *format,...) { #ifdef DEBUG va_list args; va_start (args, format); fprintf (stdout, "%s: ", LIBNAME); vfprintf (stdout, format, args); fprintf (stdout, "\n"); va_end (args); #else (void)format; #endif } static void error (const char *format,...) { va_list args; va_start (args, format); fprintf (stderr, "%s: ", LIBNAME); vfprintf (stderr, format, args); fprintf (stderr, "\n"); va_end (args); } /* DetectKanjiCode() derived from DetectCodeType() by Ken Lunde. */ static int DetectKanjiCode (unsigned char *str) { static int whatcode = ASCII; int oldcode = ASCII; int c, i; char *lang = NULL; c = '\1'; i = 0; if (whatcode != EUCORSJIS && whatcode != ASCII) { oldcode = whatcode; whatcode = ASCII; } while ((whatcode == EUCORSJIS || whatcode == ASCII) && c != '\0') { if ((c = str[i++]) != '\0') { if (c == ESC) { c = str[i++]; if (c == '$') { c = str[i++]; if (c == 'B') whatcode = NEW; else if (c == '@') whatcode = OLD; } else if (c == '(') { c = str[i++]; if (c == 'I') whatcode = ESCI; } else if (c == 'K') whatcode = NEC; } else if ((c >= 129 && c <= 141) || (c >= 143 && c <= 159)) whatcode = SJIS; else if (c == SS2) { c = str[i++]; if ((c >= 64 && c <= 126) || (c >= 128 && c <= 160) || (c >= 224 && c <= 252)) whatcode = SJIS; else if (c >= 161 && c <= 223) whatcode = EUCORSJIS; } else if (c >= 161 && c <= 223) { c = str[i++]; if (c >= 240 && c <= 254) whatcode = EUC; else if (c >= 161 && c <= 223) whatcode = EUCORSJIS; else if (c >= 224 && c <= 239) { whatcode = EUCORSJIS; while (c >= 64 && c != '\0' && whatcode == EUCORSJIS) { if (c >= 129) { if (c <= 141 || (c >= 143 && c <= 159)) whatcode = SJIS; else if (c >= 253 && c <= 254) whatcode = EUC; } c = str[i++]; } } else if (c <= 159) whatcode = SJIS; } else if (c >= 240 && c <= 254) whatcode = EUC; else if (c >= 224 && c <= 239) { c = str[i++]; if ((c >= 64 && c <= 126) || (c >= 128 && c <= 160)) whatcode = SJIS; else if (c >= 253 && c <= 254) whatcode = EUC; else if (c >= 161 && c <= 252) whatcode = EUCORSJIS; } } } #ifdef DEBUG if (whatcode == ASCII) debug ("Kanji code not included."); else if (whatcode == EUCORSJIS) debug ("Kanji code not detected."); else debug ("Kanji code detected at %d byte.", i); #endif if (whatcode == EUCORSJIS && oldcode != ASCII) whatcode = oldcode; if (whatcode == EUCORSJIS) { if (getenv ("LC_ALL")) lang = getenv ("LC_ALL"); else if (getenv ("LC_CTYPE")) lang = getenv ("LC_CTYPE"); else if (getenv ("LANG")) lang = getenv ("LANG"); if (lang) { if (strcmp (lang, "ja_JP.SJIS") == 0 || #ifdef hpux strcmp (lang, "japanese") == 0 || #endif strcmp (lang, "ja_JP.mscode") == 0 || strcmp (lang, "ja_JP.PCK") == 0) whatcode = SJIS; else if (strncmp (lang, "ja", 2) == 0) #ifdef SJISPRE whatcode = SJIS; #else whatcode = EUC; #endif } } if (whatcode == EUCORSJIS) #ifdef SJISPRE whatcode = SJIS; #else whatcode = EUC; #endif return whatcode; } /* SJIStoJIS() is sjis2jis() by Ken Lunde. */ static void SJIStoJIS (int *p1, int *p2) { register unsigned char c1 = *p1; register unsigned char c2 = *p2; register int adjust = c2 < 159; register int rowOffset = c1 < 160 ? 112 : 176; register int cellOffset = adjust ? (31 + (c2 > 127)) : 126; *p1 = ((c1 - rowOffset) << 1) - adjust; *p2 -= cellOffset; } /* han2zen() was derived from han2zen() written by Ken Lunde. */ #define IS_DAKU(c) ((c >= 182 && c <= 196) || (c >= 202 && c <= 206) || (c == 179)) #define IS_HANDAKU(c) (c >= 202 && c <= 206) static void han2zen (int *p1, int *p2) { int c = *p1; int daku = FALSE; int handaku = FALSE; int mtable[][2] = { {129, 66}, {129, 117}, {129, 118}, {129, 65}, {129, 69}, {131, 146}, {131, 64}, {131, 66}, {131, 68}, {131, 70}, {131, 72}, {131, 131}, {131, 133}, {131, 135}, {131, 98}, {129, 91}, {131, 65}, {131, 67}, {131, 69}, {131, 71}, {131, 73}, {131, 74}, {131, 76}, {131, 78}, {131, 80}, {131, 82}, {131, 84}, {131, 86}, {131, 88}, {131, 90}, {131, 92}, {131, 94}, {131, 96}, {131, 99}, {131, 101}, {131, 103}, {131, 105}, {131, 106}, {131, 107}, {131, 108}, {131, 109}, {131, 110}, {131, 113}, {131, 116}, {131, 119}, {131, 122}, {131, 125}, {131, 126}, {131, 128}, {131, 129}, {131, 130}, {131, 132}, {131, 134}, {131, 136}, {131, 137}, {131, 138}, {131, 139}, {131, 140}, {131, 141}, {131, 143}, {131, 147}, {129, 74}, {129, 75} }; if (*p2 == 222 && IS_DAKU (*p1)) daku = TRUE; /* Daku-ten */ else if (*p2 == 223 && IS_HANDAKU (*p1)) handaku = TRUE; /* Han-daku-ten */ *p1 = mtable[c - 161][0]; *p2 = mtable[c - 161][1]; if (daku) { if ((*p2 >= 74 && *p2 <= 103) || (*p2 >= 110 && *p2 <= 122)) (*p2)++; else if (*p2 == 131 || *p2 == 69) *p2 = 148; } else if (handaku && *p2 >= 110 && *p2 <= 122) (*p2) += 2; } /* Recast strcpy to handle unsigned chars used below. */ #define ustrcpy(A,B) (strcpy((char*)(A),(const char*)(B))) #define ustrncpy(A,B, maxsize) (strncpy((char*)(A),(const char*)(B), maxsize)) static void do_convert (unsigned char *to, unsigned char *from, const char *code) { #ifdef HAVE_ICONV iconv_t cd; size_t from_len, to_len; if ((cd = iconv_open (EUCSTR, code)) == (iconv_t) - 1) { error ("iconv_open() error"); #ifdef HAVE_ERRNO_H if (errno == EINVAL) error ("invalid code specification: \"%s\" or \"%s\"", EUCSTR, code); #endif strcpy ((char *) to, (const char *) from); return; } from_len = strlen ((const char *) from) + 1; to_len = BUFSIZ; if (iconv (cd, (const char **) &from, &from_len, (char **) &to, &to_len) == -1) { #ifdef HAVE_ERRNO_H if (errno == EINVAL) error ("invalid end of input string"); else if (errno == EILSEQ) error ("invalid code in input string"); else if (errno == E2BIG) error ("output buffer overflow at do_convert()"); else #endif error ("something happen"); strcpy ((char *) to, (const char *) from); return; } if (iconv_close (cd) != 0) { error ("iconv_close() error"); } #else int p1, p2, i, j; int jisx0208 = FALSE; int hankaku = FALSE; j = 0; if (strcmp (code, NEWJISSTR) == 0 || strcmp (code, OLDJISSTR) == 0) { for (i = 0; from[i] != '\0' && j < BUFSIZ; i++) { if (from[i] == ESC) { i++; if (from[i] == '$') { jisx0208 = TRUE; hankaku = FALSE; i++; } else if (from[i] == '(') { jisx0208 = FALSE; i++; if (from[i] == 'I') /* Hankaku Kana */ hankaku = TRUE; else hankaku = FALSE; } } else { if (jisx0208) to[j++] = from[i] + 128; else if (hankaku) { to[j++] = SS2; to[j++] = from[i] + 128; } else to[j++] = from[i]; } } } else if (strcmp (code, SJISSTR) == 0) { for (i = 0; from[i] != '\0' && j < BUFSIZ; i++) { p1 = from[i]; if (p1 < 127) to[j++] = p1; else if ((p1 >= 161) && (p1 <= 223)) { /* Hankaku Kana */ to[j++] = SS2; to[j++] = p1; } else { p2 = from[++i]; SJIStoJIS (&p1, &p2); to[j++] = p1 + 128; to[j++] = p2 + 128; } } } else { error ("invalid code specification: \"%s\"", code); return; } if (j >= BUFSIZ) { error ("output buffer overflow at do_convert()"); ustrcpy (to, from); } else to[j] = '\0'; #endif /* HAVE_ICONV */ } static int do_check_and_conv (unsigned char *to, unsigned char *from) { static unsigned char tmp[BUFSIZ]; int p1, p2, i, j; int kanji = TRUE; int copy_string = FALSE; switch (DetectKanjiCode (from)) { case NEW: debug ("Kanji code is New JIS."); do_convert (tmp, from, NEWJISSTR); break; case OLD: debug ("Kanji code is Old JIS."); do_convert (tmp, from, OLDJISSTR); break; case ESCI: debug ("This string includes Hankaku-Kana (jisx0201) escape sequence [ESC] + ( + I."); do_convert (tmp, from, NEWJISSTR); break; case NEC: debug ("Kanji code is NEC Kanji."); error ("cannot convert NEC Kanji."); copy_string = TRUE; kanji = FALSE; break; case EUC: debug ("Kanji code is EUC."); copy_string = TRUE; break; case SJIS: debug ("Kanji code is SJIS."); do_convert (tmp, from, SJISSTR); break; case EUCORSJIS: debug ("Kanji code is EUC or SJIS."); copy_string = TRUE; kanji = FALSE; break; case ASCII: debug ("This is ASCII string."); copy_string = TRUE; kanji = FALSE; break; default: debug ("This string includes unknown code."); copy_string = TRUE; kanji = FALSE; break; } if (copy_string) { ustrncpy (tmp, from, BUFSIZ); tmp[BUFSIZ-1] = '\0'; } /* Hankaku Kana ---> Zenkaku Kana */ if (kanji) { j = 0; for (i = 0; tmp[i] != '\0' && j < BUFSIZ; i++) { if (tmp[i] == SS2) { p1 = tmp[++i]; if (tmp[i + 1] == SS2) { p2 = tmp[i + 2]; if (p2 == 222 || p2 == 223) i += 2; else p2 = 0; } else p2 = 0; han2zen (&p1, &p2); SJIStoJIS (&p1, &p2); to[j++] = p1 + 128; to[j++] = p2 + 128; } else to[j++] = tmp[i]; } if (j >= BUFSIZ) { error ("output buffer overflow at Hankaku --> Zenkaku"); ustrcpy (to, tmp); } else to[j] = '\0'; } else ustrcpy (to, tmp); return kanji; } #pragma GCC visibility push(hidden) int any2eucjp (unsigned char *dest, unsigned char *src, unsigned int dest_max); #pragma GCC visibility pop int any2eucjp (unsigned char *dest, unsigned char *src, unsigned int dest_max) { static unsigned char tmp_dest[BUFSIZ]; int ret; if (strlen ((const char *) src) >= BUFSIZ) { error ("input string too large"); return -1; } if (dest_max > BUFSIZ) { error ("invalid maximum size of destination\nit should be less than %d.", BUFSIZ); return -1; } ret = do_check_and_conv (tmp_dest, src); if (strlen ((const char *) tmp_dest) >= dest_max) { error ("output buffer overflow"); ustrcpy (dest, src); return -1; } ustrcpy (dest, tmp_dest); return ret; } #if 0 unsigned int strwidth (unsigned char *s) { unsigned char *t; unsigned int i; t = (unsigned char *) gdMalloc (BUFSIZ); any2eucjp (t, s, BUFSIZ); i = strlen (t); gdFree (t); return i; } #ifdef DEBUG int main () { unsigned char input[BUFSIZ]; unsigned char *output; unsigned char *str; int c, i = 0; while ((c = fgetc (stdin)) != '\n' && i < BUFSIZ) input[i++] = c; input[i] = '\0'; printf ("input : %d bytes\n", strlen ((const char *) input)); printf ("output: %d bytes\n", strwidth (input)); output = (unsigned char *) gdMalloc (BUFSIZ); any2eucjp (output, input, BUFSIZ); str = output; while (*str != '\0') putchar (*(str++)); putchar ('\n'); gdFree (output); return 0; } #endif #endif libwmf-0.2.13/src/extra/gd/gdparttopng.c000066400000000000000000000022711441723000300200520ustar00rootroot00000000000000#include #include /* For atoi */ #include "gd.h" /* A short program which converts a .png file into a .gd file, for your convenience in creating images on the fly from a basis image that must be loaded quickly. The .gd format is not intended to be a general-purpose format. */ int main (int argc, char **argv) { gdImagePtr im; FILE *in, *out; int x, y, w, h; if (argc != 7) { fprintf (stderr, "Usage: gdparttopng filename.gd filename.png x y w h\n"); exit (1); } in = fopen (argv[1], "rb"); if (!in) { fprintf (stderr, "Input file does not exist!\n"); exit (1); } x = atoi (argv[3]); y = atoi (argv[4]); w = atoi (argv[5]); h = atoi (argv[6]); printf ("Extracting from (%d, %d), size is %dx%d\n", x, y, w, h); im = gdImageCreateFromGd2Part (in, x, y, w, h); fclose (in); if (!im) { fprintf (stderr, "Input is not in PNG format!\n"); exit (1); } out = fopen (argv[2], "wb"); if (!out) { fprintf (stderr, "Output file cannot be written to!\n"); gdImageDestroy (im); exit (1); } gdImagePng (im, out); fclose (out); gdImageDestroy (im); return 0; } libwmf-0.2.13/src/extra/gd/gdtables.c000066400000000000000000000125621441723000300173120ustar00rootroot00000000000000 int gdCosT[] = { 1024, 1023, 1023, 1022, 1021, 1020, 1018, 1016, 1014, 1011, 1008, 1005, 1001, 997, 993, 989, 984, 979, 973, 968, 962, 955, 949, 942, 935, 928, 920, 912, 904, 895, 886, 877, 868, 858, 848, 838, 828, 817, 806, 795, 784, 772, 760, 748, 736, 724, 711, 698, 685, 671, 658, 644, 630, 616, 601, 587, 572, 557, 542, 527, 512, 496, 480, 464, 448, 432, 416, 400, 383, 366, 350, 333, 316, 299, 282, 265, 247, 230, 212, 195, 177, 160, 142, 124, 107, 89, 71, 53, 35, 17, 0, -17, -35, -53, -71, -89, -107, -124, -142, -160, -177, -195, -212, -230, -247, -265, -282, -299, -316, -333, -350, -366, -383, -400, -416, -432, -448, -464, -480, -496, -512, -527, -542, -557, -572, -587, -601, -616, -630, -644, -658, -671, -685, -698, -711, -724, -736, -748, -760, -772, -784, -795, -806, -817, -828, -838, -848, -858, -868, -877, -886, -895, -904, -912, -920, -928, -935, -942, -949, -955, -962, -968, -973, -979, -984, -989, -993, -997, -1001, -1005, -1008, -1011, -1014, -1016, -1018, -1020, -1021, -1022, -1023, -1023, -1024, -1023, -1023, -1022, -1021, -1020, -1018, -1016, -1014, -1011, -1008, -1005, -1001, -997, -993, -989, -984, -979, -973, -968, -962, -955, -949, -942, -935, -928, -920, -912, -904, -895, -886, -877, -868, -858, -848, -838, -828, -817, -806, -795, -784, -772, -760, -748, -736, -724, -711, -698, -685, -671, -658, -644, -630, -616, -601, -587, -572, -557, -542, -527, -512, -496, -480, -464, -448, -432, -416, -400, -383, -366, -350, -333, -316, -299, -282, -265, -247, -230, -212, -195, -177, -160, -142, -124, -107, -89, -71, -53, -35, -17, 0, 17, 35, 53, 71, 89, 107, 124, 142, 160, 177, 195, 212, 230, 247, 265, 282, 299, 316, 333, 350, 366, 383, 400, 416, 432, 448, 464, 480, 496, 512, 527, 542, 557, 572, 587, 601, 616, 630, 644, 658, 671, 685, 698, 711, 724, 736, 748, 760, 772, 784, 795, 806, 817, 828, 838, 848, 858, 868, 877, 886, 895, 904, 912, 920, 928, 935, 942, 949, 955, 962, 968, 973, 979, 984, 989, 993, 997, 1001, 1005, 1008, 1011, 1014, 1016, 1018, 1020, 1021, 1022, 1023, 1023 }; int gdSinT[] = { 0, 17, 35, 53, 71, 89, 107, 124, 142, 160, 177, 195, 212, 230, 247, 265, 282, 299, 316, 333, 350, 366, 383, 400, 416, 432, 448, 464, 480, 496, 512, 527, 542, 557, 572, 587, 601, 616, 630, 644, 658, 671, 685, 698, 711, 724, 736, 748, 760, 772, 784, 795, 806, 817, 828, 838, 848, 858, 868, 877, 886, 895, 904, 912, 920, 928, 935, 942, 949, 955, 962, 968, 973, 979, 984, 989, 993, 997, 1001, 1005, 1008, 1011, 1014, 1016, 1018, 1020, 1021, 1022, 1023, 1023, 1024, 1023, 1023, 1022, 1021, 1020, 1018, 1016, 1014, 1011, 1008, 1005, 1001, 997, 993, 989, 984, 979, 973, 968, 962, 955, 949, 942, 935, 928, 920, 912, 904, 895, 886, 877, 868, 858, 848, 838, 828, 817, 806, 795, 784, 772, 760, 748, 736, 724, 711, 698, 685, 671, 658, 644, 630, 616, 601, 587, 572, 557, 542, 527, 512, 496, 480, 464, 448, 432, 416, 400, 383, 366, 350, 333, 316, 299, 282, 265, 247, 230, 212, 195, 177, 160, 142, 124, 107, 89, 71, 53, 35, 17, 0, -17, -35, -53, -71, -89, -107, -124, -142, -160, -177, -195, -212, -230, -247, -265, -282, -299, -316, -333, -350, -366, -383, -400, -416, -432, -448, -464, -480, -496, -512, -527, -542, -557, -572, -587, -601, -616, -630, -644, -658, -671, -685, -698, -711, -724, -736, -748, -760, -772, -784, -795, -806, -817, -828, -838, -848, -858, -868, -877, -886, -895, -904, -912, -920, -928, -935, -942, -949, -955, -962, -968, -973, -979, -984, -989, -993, -997, -1001, -1005, -1008, -1011, -1014, -1016, -1018, -1020, -1021, -1022, -1023, -1023, -1024, -1023, -1023, -1022, -1021, -1020, -1018, -1016, -1014, -1011, -1008, -1005, -1001, -997, -993, -989, -984, -979, -973, -968, -962, -955, -949, -942, -935, -928, -920, -912, -904, -895, -886, -877, -868, -858, -848, -838, -828, -817, -806, -795, -784, -772, -760, -748, -736, -724, -711, -698, -685, -671, -658, -644, -630, -616, -601, -587, -572, -557, -542, -527, -512, -496, -480, -464, -448, -432, -416, -400, -383, -366, -350, -333, -316, -299, -282, -265, -247, -230, -212, -195, -177, -160, -142, -124, -107, -89, -71, -53, -35, -17 }; libwmf-0.2.13/src/extra/gd/gdtest.c000066400000000000000000000220571441723000300170170ustar00rootroot00000000000000#include #ifdef _WIN32 #include int unlink (const char *filename) { return _unlink (filename); } #else #include /* for getpid(), unlink() */ #endif #include "gd.h" void CompareImages (char *msg, gdImagePtr im1, gdImagePtr im2); static int freadWrapper (void *context, char *buf, int len); static int fwriteWrapper (void *context, const char *buffer, int len); int main (int argc, char **argv) { gdImagePtr im, ref, im2, im3; FILE *in, *out; void *iptr; int sz; gdIOCtxPtr ctx; char of[256]; int colRed, colBlu; gdSource imgsrc; gdSink imgsnk; int foreground; int i; if (argc != 2) { fprintf (stderr, "Usage: gdtest filename.png\n"); exit (1); } in = fopen (argv[1], "rb"); if (!in) { fprintf (stderr, "Input file does not exist!\n"); exit (1); } im = gdImageCreateFromPng (in); rewind (in); ref = gdImageCreateFromPng (in); fclose (in); printf ("Reference File has %d Palette entries\n", ref->colorsTotal); CompareImages ("Initial Versions", ref, im); /* */ /* Send to PNG File then Ptr */ /* */ sprintf (of, "%s.png", argv[1]); out = fopen (of, "wb"); gdImagePng (im, out); fclose (out); in = fopen (of, "rb"); if (!in) { fprintf (stderr, "PNG Output file does not exist!\n"); exit (1); } im2 = gdImageCreateFromPng (in); fclose (in); CompareImages ("GD->PNG File->GD", ref, im2); unlink (of); gdImageDestroy (im2); iptr = gdImagePngPtr (im, &sz); ctx = gdNewDynamicCtx (sz, iptr); im2 = gdImageCreateFromPngCtx (ctx); CompareImages ("GD->PNG ptr->GD", ref, im2); gdImageDestroy (im2); ctx->free (ctx); /* */ /* Send to GD2 File then Ptr */ /* */ sprintf (of, "%s.gd2", argv[1]); out = fopen (of, "wb"); gdImageGd2 (im, out, 128, 2); fclose (out); in = fopen (of, "rb"); if (!in) { fprintf (stderr, "GD2 Output file does not exist!\n"); exit (1); } im2 = gdImageCreateFromGd2 (in); fclose (in); CompareImages ("GD->GD2 File->GD", ref, im2); unlink (of); gdImageDestroy (im2); iptr = gdImageGd2Ptr (im, 128, 2, &sz); /*printf("Got ptr %d (size %d)\n",iptr, sz); */ ctx = gdNewDynamicCtx (sz, iptr); /*printf("Got ctx %d\n",ctx); */ im2 = gdImageCreateFromGd2Ctx (ctx); /*printf("Got img2 %d\n",im2); */ CompareImages ("GD->GD2 ptr->GD", ref, im2); gdImageDestroy (im2); ctx->free (ctx); /* */ /* Send to GD File then Ptr */ /* */ sprintf (of, "%s.gd", argv[1]); out = fopen (of, "wb"); gdImageGd (im, out); fclose (out); in = fopen (of, "rb"); if (!in) { fprintf (stderr, "GD Output file does not exist!\n"); exit (1); } im2 = gdImageCreateFromGd (in); fclose (in); CompareImages ("GD->GD File->GD", ref, im2); unlink (of); gdImageDestroy (im2); iptr = gdImageGdPtr (im, &sz); /*printf("Got ptr %d (size %d)\n",iptr, sz); */ ctx = gdNewDynamicCtx (sz, iptr); /*printf("Got ctx %d\n",ctx); */ im2 = gdImageCreateFromGdCtx (ctx); /*printf("Got img2 %d\n",im2); */ CompareImages ("GD->GD ptr->GD", ref, im2); gdImageDestroy (im2); ctx->free (ctx); /* ** Test gdImageCreateFromPngSource' * */ in = fopen (argv[1], "rb"); imgsrc.source = freadWrapper; imgsrc.context = in; im2 = gdImageCreateFromPngSource (&imgsrc); fclose (in); if (im2 == NULL) { printf ("GD Source: ERROR Null returned by gdImageCreateFromPngSource\n"); } else { CompareImages ("GD Source", ref, im2); gdImageDestroy (im2); }; /* ** Test gdImagePngToSink' * */ sprintf (of, "%s.snk", argv[1]); out = fopen (of, "wb"); imgsnk.sink = fwriteWrapper; imgsnk.context = out; gdImagePngToSink (im, &imgsnk); fclose (out); in = fopen (of, "rb"); if (!in) { fprintf (stderr, "GD Sink: ERROR - GD Sink Output file does not exist!\n"); } else { im2 = gdImageCreateFromPng (in); fclose (in); CompareImages ("GD Sink", ref, im2); gdImageDestroy (im2); }; unlink (of); /* */ /* Test Extraction */ /* */ in = fopen ("test/gdtest_200_300_150_100.png", "rb"); if (!in) { fprintf (stderr, "gdtest_200_300_150_100.png does not exist!\n"); exit (1); } im2 = gdImageCreateFromPng (in); fclose (in); in = fopen ("test/gdtest.gd2", "rb"); if (!in) { fprintf (stderr, "gdtest.gd2 does not exist!\n"); exit (1); } im3 = gdImageCreateFromGd2Part (in, 200, 300, 150, 100); fclose (in); CompareImages ("GD2Part (gdtest_200_300_150_100.png, gdtest.gd2(part))", im2, im3); gdImageDestroy (im2); gdImageDestroy (im3); /* */ /* Copy Blend */ /* */ in = fopen ("test/gdtest.png", "rb"); if (!in) { fprintf (stderr, "gdtest.png does not exist!\n"); exit (1); } im2 = gdImageCreateFromPng (in); fclose (in); im3 = gdImageCreate (100, 60); colRed = gdImageColorAllocate (im3, 255, 0, 0); colBlu = gdImageColorAllocate (im3, 0, 0, 255); gdImageFilledRectangle (im3, 0, 0, 49, 30, colRed); gdImageFilledRectangle (im3, 50, 30, 99, 59, colBlu); gdImageCopyMerge (im2, im3, 150, 200, 10, 10, 90, 50, 50); gdImageCopyMerge (im2, im3, 180, 70, 10, 10, 90, 50, 50); gdImageCopyMergeGray (im2, im3, 250, 160, 10, 10, 90, 50, 50); gdImageCopyMergeGray (im2, im3, 80, 70, 10, 10, 90, 50, 50); gdImageDestroy (im3); in = fopen ("test/gdtest_merge.png", "rb"); if (!in) { fprintf (stderr, "gdtest_merge.png does not exist!\n"); exit (1); } im3 = gdImageCreateFromPng (in); fclose (in); printf ("[Merged Image has %d colours]\n", im2->colorsTotal); CompareImages ("Merged (gdtest.png, gdtest_merge.png)", im2, im3); gdImageDestroy (im2); gdImageDestroy (im3); #ifdef HAVE_JPEG out = fopen ("test/gdtest.jpg", "wb"); if (!out) { fprintf (stderr, "Can't create file test/gdtest.jpg.\n"); exit (1); } gdImageJpeg (im, out, -1); fclose (out); in = fopen ("test/gdtest.jpg", "rb"); if (!in) { fprintf (stderr, "Can't open file test/gdtest.jpg.\n"); exit (1); } im2 = gdImageCreateFromJpeg (in); fclose (in); if (!im2) { fprintf (stderr, "gdImageCreateFromJpeg failed.\n"); exit (1); } gdImageDestroy (im2); printf ("Created test/gdtest.jpg successfully. Compare this image\n" "to the input image manually. Some difference must be\n" "expected as JPEG is a lossy file format.\n"); #endif /* HAVE_JPEG */ /* Assume the color closest to black is the foreground color for the B&W wbmp image. */ fprintf (stderr, "NOTE: the WBMP output image will NOT match the original unless the original\n" "is also black and white. This is OK!\n"); foreground = gdImageColorClosest (im, 0, 0, 0); fprintf (stderr, "Foreground index is %d\n", foreground); if (foreground == -1) { fprintf (stderr, "Source image has no colors, skipping wbmp test.\n"); } else { out = fopen ("test/gdtest.wbmp", "wb"); if (!out) { fprintf (stderr, "Can't create file test/gdtest.wbmp.\n"); exit (1); } gdImageWBMP (im, foreground, out); fclose (out); in = fopen ("test/gdtest.wbmp", "rb"); if (!in) { fprintf (stderr, "Can't open file test/gdtest.wbmp.\n"); exit (1); } im2 = gdImageCreateFromWBMP (in); fprintf (stderr, "WBMP has %d colors\n", gdImageColorsTotal (im2)); fprintf (stderr, "WBMP colors are:\n"); for (i = 0; (i < gdImageColorsTotal (im2)); i++) { fprintf (stderr, "%02X%02X%02X\n", gdImageRed (im2, i), gdImageGreen (im2, i), gdImageBlue (im2, i)); } fclose (in); if (!im2) { fprintf (stderr, "gdImageCreateFromWBMP failed.\n"); exit (1); } CompareImages ("WBMP test (gdtest.png, gdtest.wbmp)", ref, im2); out = fopen ("test/gdtest_wbmp_to_png.png", "wb"); if (!out) { fprintf (stderr, "Can't create file test/gdtest_wbmp_to_png.png.\n"); exit (1); } gdImagePng (im2, out); fclose (out); gdImageDestroy (im2); } gdImageDestroy (im); gdImageDestroy (ref); return 0; } void CompareImages (char *msg, gdImagePtr im1, gdImagePtr im2) { int cmpRes; cmpRes = gdImageCompare (im1, im2); if (cmpRes & GD_CMP_IMAGE) { printf ("%%%s: ERROR images differ: BAD\n", msg); } else if (cmpRes != 0) { printf ("%%%s: WARNING images differ: WARNING - Probably OK\n", msg); } else { printf ("%%%s: OK\n", msg); return; } if (cmpRes & (GD_CMP_SIZE_X + GD_CMP_SIZE_Y)) { printf ("-%s: INFO image sizes differ\n", msg); } if (cmpRes & GD_CMP_NUM_COLORS) { printf ("-%s: INFO number of pallette entries differ %d Vs. %d\n", msg, im1->colorsTotal, im2->colorsTotal); } if (cmpRes & GD_CMP_COLOR) { printf ("-%s: INFO actual colours of pixels differ\n", msg); } } static int freadWrapper (void *context, char *buf, int len) { int got = fread (buf, 1, len, (FILE *) context); return got; } static int fwriteWrapper (void *context, const char *buffer, int len) { return fwrite (buffer, 1, len, (FILE *) context); } libwmf-0.2.13/src/extra/gd/gdtestft.c000066400000000000000000000054001441723000300173420ustar00rootroot00000000000000 #include "gd.h" #include #define PI 3.141592 #define DEG2RAD(x) ((x)*PI/180.) #define MAX(x,y) ((x) > (y) ? (x) : (y)) #define MIN(x,y) ((x) < (y) ? (x) : (y)) #define MAX4(x,y,z,w) \ ((MAX((x),(y))) > (MAX((z),(w))) ? (MAX((x),(y))) : (MAX((z),(w)))) #define MIN4(x,y,z,w) \ ((MIN((x),(y))) < (MIN((z),(w))) ? (MIN((x),(y))) : (MIN((z),(w)))) #define MAXX(x) MAX4(x[0],x[2],x[4],x[6]) #define MINX(x) MIN4(x[0],x[2],x[4],x[6]) #define MAXY(x) MAX4(x[1],x[3],x[5],x[7]) #define MINY(x) MIN4(x[1],x[3],x[5],x[7]) int main (int argc, char *argv[]) { #ifndef HAVE_LIBFREETYPE fprintf (stderr, "gd was not compiled with HAVE_LIBFREETYPE defined.\n"); fprintf (stderr, "Install the FreeType library, including the\n"); fprintf (stderr, "header files. Then edit the gd Makefile, type\n"); fprintf (stderr, "make clean, and type make again.\n"); return 1; #else gdImagePtr im; int black; int white; int brect[8]; int x, y; char *err; FILE *out; #ifdef JISX0208 char *s = "Hello. ‚±‚ñ‚É‚¿‚Í Qyjpqg,"; /* String to draw. */ #else char *s = "Hello. Qyjpqg,"; /* String to draw. */ #endif double sz = 40.; #if 0 double angle = 0.; #else double angle = DEG2RAD (-90); #endif #ifdef JISX0208 char *f = "/usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf"; /* UNICODE */ /* char *f = "/usr/local/lib/fonts/truetype/DynaFont/dfpop1.ttf"; *//* SJIS */ #else char *f = "times"; /* TrueType font */ #endif /* obtain brect so that we can size the image */ err = gdImageStringFT ((gdImagePtr) NULL, &brect[0], 0, f, sz, angle, 0, 0, s); if (err) { fprintf (stderr, err); return 1; } /* create an image just big enough for the string */ x = MAXX (brect) - MINX (brect) + 6; y = MAXY (brect) - MINY (brect) + 6; #if 0 im = gdImageCreate (500, 500); #else /* gd 2.0: true color images can use freetype too */ im = gdImageCreateTrueColor (x, y); #endif /* Background color. gd 2.0: fill the image with it; truecolor images have a black background otherwise. */ white = gdImageColorResolve (im, 255, 255, 255); gdImageFilledRectangle (im, 0, 0, x, y, white); black = gdImageColorResolve (im, 0, 0, 0); /* render the string, offset origin to center string */ x = 0 - MINX (brect) + 3; y = 0 - MINY (brect) + 3; err = gdImageStringFT (im, NULL, black, f, sz, angle, x, y, s); if (err) { fprintf (stderr, err); return 1; } /* TBB: Write img to test/fttest.png */ out = fopen ("test/fttest.png", "wb"); if (!out) { fprintf (stderr, "Can't create test/fttest.png\n"); exit (1); } gdImagePng (im, out); fclose (out); fprintf (stderr, "Test image written to test/fttest.png\n"); /* Destroy it */ gdImageDestroy (im); return 0; #endif /* HAVE_FREETYPE */ } libwmf-0.2.13/src/extra/gd/gdtopng.c000066400000000000000000000017061441723000300171650ustar00rootroot00000000000000#include #include "gd.h" /* A short program which converts a .png file into a .gd file, for your convenience in creating images on the fly from a basis image that must be loaded quickly. The .gd format is not intended to be a general-purpose format. */ int main (int argc, char **argv) { gdImagePtr im; FILE *in, *out; if (argc != 3) { fprintf (stderr, "Usage: gdtopng filename.gd filename.png\n"); exit (1); } in = fopen (argv[1], "rb"); if (!in) { fprintf (stderr, "Input file does not exist!\n"); exit (1); } im = gdImageCreateFromGd (in); fclose (in); if (!im) { fprintf (stderr, "Input is not in PNG format!\n"); exit (1); } out = fopen (argv[2], "wb"); if (!out) { fprintf (stderr, "Output file cannot be written to!\n"); gdImageDestroy (im); exit (1); } gdImagePng (im, out); fclose (out); gdImageDestroy (im); return 0; } libwmf-0.2.13/src/extra/gd/gdxpm.c000066400000000000000000000066541441723000300166510ustar00rootroot00000000000000 /* add ability to load xpm files to gd, requires the xpm library. Caolan.McNamara@ul.ie http://www.csn.ul.ie/~caolan */ #include #include #include "gd.h" #include "gdhelpers.h" #if 0 #ifndef HAVE_XPM gdImagePtr gdImageCreateFromXpm (char *filename) { fprintf (stderr, "libgd was not built with xpm support\n"); return (NULL); } #else #include "xpm.h" gdImagePtr gdImageCreateFromXpm (char *filename) { XpmInfo info; XpmImage image; int i, j, k, number; char buf[5]; gdImagePtr im = 0; char *apixel; int *pointer; int red = 0, green = 0, blue = 0, color = 0; int *colors; int ret; ret = XpmReadFileToXpmImage (filename, &image, &info); if (ret != XpmSuccess) return 0; if (!(im = gdImageCreate (image.width, image.height))) return 0; number = image.ncolors; colors = (int *) gdMalloc (sizeof (int) * number); if (colors == NULL) return (0); for (i = 0; i < number; i++) { switch (strlen (image.colorTable[i].c_color)) { case 4: buf[1] = '\0'; buf[0] = image.colorTable[i].c_color[1]; red = strtol (buf, NULL, 16); buf[0] = image.colorTable[i].c_color[3]; green = strtol (buf, NULL, 16); buf[0] = image.colorTable[i].c_color[5]; blue = strtol (buf, NULL, 16); break; case 7: buf[2] = '\0'; buf[0] = image.colorTable[i].c_color[1]; buf[1] = image.colorTable[i].c_color[2]; red = strtol (buf, NULL, 16); buf[0] = image.colorTable[i].c_color[3]; buf[1] = image.colorTable[i].c_color[4]; green = strtol (buf, NULL, 16); buf[0] = image.colorTable[i].c_color[5]; buf[1] = image.colorTable[i].c_color[6]; blue = strtol (buf, NULL, 16); break; case 10: buf[3] = '\0'; buf[0] = image.colorTable[i].c_color[1]; buf[1] = image.colorTable[i].c_color[2]; buf[2] = image.colorTable[i].c_color[3]; red = strtol (buf, NULL, 16); red /= 64; buf[0] = image.colorTable[i].c_color[4]; buf[1] = image.colorTable[i].c_color[5]; buf[2] = image.colorTable[i].c_color[6]; green = strtol (buf, NULL, 16); green /= 64; buf[0] = image.colorTable[i].c_color[7]; buf[1] = image.colorTable[i].c_color[8]; buf[2] = image.colorTable[i].c_color[9]; blue = strtol (buf, NULL, 16); blue /= 64; break; case 13: buf[4] = '\0'; buf[0] = image.colorTable[i].c_color[1]; buf[1] = image.colorTable[i].c_color[2]; buf[2] = image.colorTable[i].c_color[3]; buf[3] = image.colorTable[i].c_color[4]; red = strtol (buf, NULL, 16); red /= 256; buf[0] = image.colorTable[i].c_color[5]; buf[1] = image.colorTable[i].c_color[6]; buf[2] = image.colorTable[i].c_color[7]; buf[3] = image.colorTable[i].c_color[8]; green = strtol (buf, NULL, 16); green /= 256; buf[0] = image.colorTable[i].c_color[9]; buf[1] = image.colorTable[i].c_color[10]; buf[2] = image.colorTable[i].c_color[11]; buf[3] = image.colorTable[i].c_color[12]; blue = strtol (buf, NULL, 16); blue /= 256; break; } colors[i] = gdImageColorResolve (im, red, green, blue); if (colors[i] == -1) fprintf (stderr, "ARRRGH\n"); } apixel = (char *) gdMalloc (image.cpp + 1); if (apixel == NULL) return (0); apixel[image.cpp] = '\0'; pointer = image.data; for (i = 0; i < image.height; i++) { for (j = 0; j < image.width; j++) { k = *pointer++; gdImageSetPixel (im, j, i, colors[k]); } } gdFree (apixel); gdFree (colors); return (im); } #endif #endif libwmf-0.2.13/src/extra/gd/index.html000066400000000000000000004703261441723000300173640ustar00rootroot00000000000000 gd 2.0.1

This is gd 2.0.1 BETA.

If you have problems, report them in detail, and consider using gd 1.8.4 until gd 2.0 final is out.

The gd 2.0 documentation update is not complete, but most new features are documented to some degree and the what's new section is reasonably complete. Enjoy!

gd 2.0.1

A graphics library for fast image creation

Follow this link to the latest version of this document.

HEY! READ THIS! gd 2.0.1 creates PNG, JPEG and WBMP images, not GIF images. This is a good thing. PNG is a more compact format, and full compression is available. JPEG works well with photographic images, and is still more compatible with the major Web browsers than even PNG is. WBMP is intended for wireless devices (not regular web browsers). Existing code will need modification to call gdImagePng or gdImageJpeg instead of gdImageGif. Please do not ask us to send you the old GIF version of GD. Unisys holds a patent on the LZW compression algorithm, which is used in fully compressed GIF images. The best solution is to move to legally unencumbered, well-compressed, modern image formats such as PNG and JPEG as soon as possible.

gd 2.0.1 requires that the following libraries also be installed:

libpng (see the libpng home page)

zlib (see the info-zip home page) zlib

jpeg-6b or later, if desired (see the Independent JPEG Group home page)

If you want to use the TrueType font support, you must also install the FreeType 2.x library, including the header files. See the Freetype Home Page, or SourceForge. No, I cannot explain why that site is down on a particular day, and no, I can't send you a copy.

If you want to use the Xpm color bitmap loading support, you must also have the X Window System and the Xpm library installed (Xpm is often included in modern X distributions).

Please read the documentation and install the required libraries. Do not send email asking why png.h is not found. Do not send email asking why libgd.so is not found, either. See the requirements section for more information. Thank you!

Table of Contents

Up to the Boutell.Com, Inc. Home Page

Credits and license terms

In order to resolve any possible confusion regarding the authorship of gd, the following copyright statement covers all of the authors who have required such a statement. If you are aware of any oversights in this copyright notice, please contact Thomas Boutell who will be pleased to correct them.

COPYRIGHT STATEMENT FOLLOWS THIS LINE
Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 by Cold Spring Harbor Laboratory. Funded under Grant P41-RR02188 by the National Institutes of Health.

Portions copyright 1996, 1997, 1998, 1999, 2000, 2001 by Boutell.Com, Inc.

Portions relating to GD2 format copyright 1999, 2000 Philip Warner.

Portions relating to PNG copyright 1999, 2000 Greg Roelofs.

Portions relating to libttf copyright 1999, 2000 John Ellson (ellson@lucent.com).

Portions relating to JPEG and to color quantization copyright 2000, Doug Becker and copyright (C) 1994-1998, Thomas G. Lane. This software is based in part on the work of the Independent JPEG Group. See the file README-JPEG.TXT for more information.

Portions relating to WBMP copyright 2000 Maurice Szmurlo and Johan Van den Brande.

Permission has been granted to copy, distribute and modify gd in any context without fee, including a commercial application, provided that this notice is present in user-accessible supporting documentation.

This does not affect your ownership of the derived work itself, and the intent is to assure proper credit for the authors of gd, not to interfere with your productive use of gd. If you have questions, ask. "Derived works" includes all programs that utilize the library. Credit must be given in user-accessible documentation.

This software is provided "AS IS." The copyright holders disclaim all warranties, either express or implied, including but not limited to implied warranties of merchantability and fitness for a particular purpose, with respect to this code and accompanying documentation.

Although their code does not appear in gd 2.0.1, the authors wish to thank David Koblas, David Rowley, and Hutchison Avenue Software Corporation for their prior contributions.

END OF COPYRIGHT STATEMENT

What is gd?

gd is a graphics library. It allows your code to quickly draw images complete with lines, arcs, text, multiple colors, cut and paste from other images, and flood fills, and write out the result as a PNG or JPEG file. This is particularly useful in World Wide Web applications, where PNG and JPEG are two of the formats accepted for inline images by most browsers.

gd is not a paint program. If you are looking for a paint program, you are looking in the wrong place. If you are not a programmer, you are looking in the wrong place, unless you are installing a required library in order to run an application.

gd does not provide for every possible desirable graphics operation. It is not necessary or desirable for gd to become a kitchen-sink graphics package, but version 2.0 does include most frequently requested features, including both truecolor and palette images, resampling (smooth resizing of truecolor images) and so forth.

What if I want to use another programming language?

Not all of these tools are necessarily up to date and fully compatible with 2.0.1.

Perl

gd can also be used from Perl, courtesy of Lincoln Stein's GD.pm library, which uses gd as the basis for a set of Perl 5.x classes. Highly recommended.

Tcl

gd can be used from Tcl with John Ellson's Gdtclft dynamically loaded extension package. (Gdtclft2.0 or later is needed for gd-1.6 and up with PNG output.)

Pascal

Pascal enthusiasts should look into Michael Bradbury's gdfp package.

Haskell

A new gd interface is now available for Haskell programmers.

REXX

A gd interface for the REXX language is available.

Any Language

There are, at the moment, at least three simple interpreters that perform gd operations. You can output the desired commands to a simple text file from whatever scripting language you prefer to use, then invoke the interpreter.

  • tgd, by Bradley K. Sherman
  • fly, by Martin Gleeson

What's new in version 2.0.1?

  • Workaround for a bug in gcc, apparently found in gcc 2.7.2 and up. I reproduced and fixed it while using gcc 2.9.5.2. The bug occurred only when the -g option was in use. This problem caused gcc to spew internal error messages unrelated to the correctness of the code in gd_gd2.c. Howard Jones was first to report it.
  • gdImageFilledEllipse documented and altered; no longer requires a superfluous style argument. Thanks to Francis James Franklin.
  • The Makefile now offers the correct syntax for optionally creating a static library. Thanks to Jean-Lous Regez, among others.
  • A nested comment, an attempt to return the value of a void function, and a potentially significant error in gdImageCopyResampled were fixed thanks to Joseph Shirley.
  • A bug preventing proper truecolor text rendering was fixed, thanks to Jason Gallagher.
  • gdImageStringFT (FreeType) should now work better against a transparent or semitransparent background, and should act in a manner consistent with the most recent gdImageAlphaBlending setting. Antialiasing is now done via the alpha channel mechanism if the image is a truecolor image.
  • Bugs in the output of gdImageArc and gdImageFilledArc were reported by Bruce Verderaime. A simple and correct but inefficient implementation has been substituted until fixes are contributed for the faster code, which is in gd_arc_f_buggy.c along with the test program that reproduces the bug(s).
  • gdImageFilledArc now offers additional style options, which can be combined to produce various effects.
  • Masahito Yamaga (ma@yama-ga.com) sent a patch to improve support for Japanese output via gdImageStringFT. He also added a new readme.jpn file.
  • Zillions of documentation fixes.

What's new in version 2.0?

  • Support for truecolor images! Version 2.0 can load truecolor PNGs with no loss of color information, and almost no loss of alpha channel information. Version 2.0 can also load truecolor JPEGs with as little loss as possible; however, bear in mind that JPEG is a lossy format, so repeated load/save cycles always reduce image quality. This is not a bug. To create a truecolor image from scratch, call the new gdImageCreateTrueColor function. The gdImageCreate function is still available to create palette images, and may also be referred to as gdImageCreatePalette.
  • Support for alpha channels! In addition to 24 bits of color information for each pixel (eight bits of red, green, and blue respectively), version 2.0 supports 7 bits of "alpha channel" information. This is used to determine exactly how transparent the pixel should be. There is also support for a full 7 bits of transparency for each individual palette index in a palette-based image. Please note that, as of this writing, only Macintosh Internet Explorer 5.x and Mozilla/Netscape 6.x display partial transparency properly.
  • The new gdImageAlphaBlending function allows for two different modes of drawing. In blending mode, the alpha channel component of the color supplied to all drawing functions, such as gdImageSetPixel, determines how much of the underlying color should be allowed to shine through. The resulting image is not transparent. In non-blending mode, drawing color is copied literally with the alpha channel information, resulting in a transparent image. Blending mode is not available when drawing on palette images.
  • The gdImageCopyResampled function provides "smooth" copying from a large image to a smaller one, using a weighted average of the pixels of the source area rather than selecting one representative pixel. This function is identical to gdImageCopyResized when the destination image is a palette image.
  • The gdImageTrueColorToPalette function converts a truecolor image to a palette image. The code for this function was originally drawn from the Independent JPEG Group library code, which is excellent. The code has been modified to preserve as much alpha channel information as possible in the resulting palette, in addition to preserving colors as well as possible. This does not work as well as might be hoped. It is usually best to simply produce a truecolor output image instead, which guarantees the highest output quality.
  • A very high degree of backwards compatibility with existing gd 1.x code has been maintained, at both the source code and binary level. Code which directly accesses the pixels array will fail only if it encounters an existing truecolor image, which may happen if the code attempts to open and modify an existing JPEG or truecolor PNG. Such code should be modified to check the trueColor flag of the gdImage structure, and refer to the tpixels array instead when it is set.
  • gd is now compiled and installed as a shared library. However, gd still does not use autoconf, because I (TBB) have very limited patience with autoconf. These days, most Unix systems provide a fairly POSIX-standard environment, and the provided Makefile is likely to work well if users read it and follow the instructions at the top.
  • Support for line thickness was added by Michael Schwartz. My apologies to him for sitting on his patches for so long. See the new gdImageSetThickness function, which affects all standard gd functions that draw lines and curves. In addition, Michael added a convenient gdImageEllipse function.
  • The new gdImageFilledArc function provides a straightforward way to draw filled arcs. Also, gdImageFilledEllipse is a convenient way to fill an ellipse without specifying starting and ending angles. Thanks go out to F J Franklin.
  • To put an end to the confusion, TrueType 1.x support has been removed in favor of TrueType 2.x support. The old gdImageStringTTF function simply invokes gdImageStringFT.
  • The specialized .gd and .gd2 file formats have been upgraded to support truecolor. New images written by the versions of these functions found in 2.0 will be rejected, with varying degrees of grace, by older versions of gd. THIS AFFECTS THE .GD and .GD2 FORMATS ONLY. IF YOU ARE CONFUSED BY THIS PARAGRAPH, IT PROBABLY DOESN'T APPLY TO ANYTHING YOU WILL EVER ENCOUNTER. Since these file formats are absolutely, positively *not* designed for distributing images, just for preprocessing them, this should not be a big problem. gd 2.0 should read old .gd and .gd2 files correctly.

What's new in version 1.8.4?

  • Add support for FreeType2 (John Ellson ellson@lucent.com)
  • Add support for finding in fonts in a builtin DEFAULT_FONTPATH, or in a path from the GDFONTPATH environment variable.
  • remove some unused symbols to reduce compiler warnings
  • bugfix in size comparisons in gdImageCompare
  • REXX now mentioned
  • All memory allocation functions are now wrapped within the library; gdFree is exported and recommended for freeing memory returned by the gdImage(Something)Ptr family of functions.

What's new in version 1.8.3?

  • WBMP output memory leak fixed
  • #include <gd.h> corrected to #include "gd.h" in gd_wbmp.c
  • Documented the fact that the source and output images shouldn't match in the WBMP test except for black and white source images

What's new in version 1.8.2?

  • WBMP support debugged and improved by Johann Van den Brande
  • WBMP tests added to gdtest.c by Thomas Boutell
  • Use of platform-dependent 'install' command removed by Thomas Boutell
  • Comments added to Makefile warning users to juggle the order of the libraries if the linker complains; is there any portable way to do this automatically, short of using autoconf?
  • Documentation of gdImageCreateFromXpm corrected
  • Updated links to fast-moving, always dodging libpng and zlib web sites

What's new in version 1.8.1?

  • Optional components no longer built by default (following the documentation)
  • JPEG code no longer requires inappropriate header files
  • Win32 patches from Joe Gregorio
  • 16-bit font support for bdftogd, from Honza Pazdziora

What's new in version 1.8?

  • Support for JPEG output, courtesy of Doug Becker
  • A link to Michael Bradbery's Pascal wrapper
  • Support for WBMP output, courtesy of Maurice Szmurlo
  • gdImageColorClosestHWB function based on hue, whiteness, blackness, superior to the regular gdImageColorClosest function, courtesy of Philip Warner
  • License clarification: yes, you can modify gd

Additional JPEG Information

Support for reading and writing JPEG-format images is courtesy of Doug Becker and the Independent JPEG Group / Thomas G. Lane. You can get the latest version of the IJG JPEG software from ftp://ftp.uu.net/graphics/jpeg/ (e.g., the jpegsrc.v6b.tar.gz file). You must use version 6b or later of the IJG JPEG software. You might also consult the JPEG FAQ at http://www.faqs.org/faqs/jpeg-faq/.

What's new in version 1.7.3?

Another attempt at Makefile fixes to permit linking with all libraries required on platforms with order- dependent linkers. Perhaps it will work this time.

What's new in version 1.7.2?

An uninitialized-pointer bug in gdtestttf.c was corrected. This bug caused crashes at the end of each call to gdImageStringTTF on some platforms. Thanks to Wolfgang Haefelinger.

Documentation fixes. Thanks to Dohn Arms.

Makefile fixes to permit linking with all libraries required on platforms with order- dependent linkers.

What's new in version 1.7.1?

A minor buglet in the Makefile was corrected, as well as an inaccurate error message in gdtestttf.c. Thanks to Masahito Yamaga.

What's new in version 1.7?

Version 1.7 contains the following changes:
  • Japanese language support for the TrueType functions. Thanks to Masahito Yamaga.
  • autoconf and configure have been removed, in favor of a carefully designed Makefile which produces and properly installs the library and the binaries. System-dependent variables are at the top of the Makefile for easy modification. I'm sorry, folks, but autoconf generated many, many confused email messages from people who didn't have things where autoconf expected to find them. I am not an autoconf/automake wizard, and gd is a simple, very compact library which does not need to be a shared library. I did make many improvements over the old gd 1.3 Makefile, which were directly inspired by the autoconf version found in the 1.6 series (thanks to John Ellson).
  • Completely ANSI C compliant, according to the -pedantic-errors flag of gcc. Several pieces of not-quite-ANSI-C code were causing problems for those with non-gcc compilers.
  • gdttf.c patched to allow the use of Windows symbol fonts, when present (thanks to Joseph Peppin).
  • extern "C" wrappers added to gd.h and the font header files for the convenience of C++ programmers. bdftogd was also modified to automatically insert these wrappers into future font header files. Thanks to John Lindal.
  • Compiles correctly on platforms that don't define SEEK_SET. Thanks to Robert Bonomi.
  • Loads Xpm images via the gdImageCreateFromXpm function, if the Xpm library is available. Thanks to Caolan McNamara.

What's new in version 1.6.3?

Version 1.6.3 corrects a memory leak in gd_png.c. This leak caused a significant amount of memory to be allocated and not freed when writing a PNG image.

What's new in version 1.6.2?

Version 1.6.2 from John Ellson adds two new functions:
  • gdImageStringTTF - scalable, rotatable, anti-aliased, TrueType strings using the FreeType library, but only if libttf is found by configure. We do not provide TrueType fonts. Obtaining them is entirely up to you.
  • gdImageColorResolve - an efficient alternative for the common code fragment:
    
          if ((color=gdImageColorExact(im,R,G,B)) < 0)
              if ((color=gdImageColorAllocate(im,R,G,B)) < 0)
                  color=gdImageColorClosest(im,R,G,B);
    

Also in this release the build process has been converted to GNU autoconf/automake/libtool conventions so that both (or either) static and shared libraries can be built.

What's new in version 1.6.1?

Version 1.6.1 incorporates superior PNG reading and writing code from Greg Roelofs, with minor modifications by Tom Boutell. Specifically, I altered his code to read non-palette images (converting them to palette images badly, by dithering them), and to tolerate palette images with types of transparency that gd doesn't actually support (it just ignores the advanced transparency features). Any bugs in this area are therefore my fault, not Greg's.

Unlike gd 1.6, users should have no trouble linking with gd 1.6.1 if they follow the instructions and install all of the pieces. However, If you get undefined symbol errors, be sure to check for older versions of libpng in your library directories!

What's new in version 1.6?

Version 1.6 features the following changes:

Support for 8-bit palette PNG images has been added. Support for GIF has been removed. This step was taken to completely avoid the legal controversy regarding the LZW compression algorithm used in GIF. Unisys holds a patent which is relevant to LZW compression. PNG is a superior image format in any case. Now that PNG is supported by both Microsoft Internet Explorer and Netscape (in their recent releases), we highly recommend that GD users upgrade in order to get well-compressed images in a format which is legally unemcumbered.

What's new in version 1.5?

Version 1.5 featured the following changes:
New GD2 format
An improvement over the GD format, the GD2 format uses the zlib compression library to compress the image in chunks. This results in file sizes comparable to GIFs, with the ability to access parts of large images without having to read the entire image into memory.

This format also supports version numbers and rudimentary validity checks, so it should be more 'supportable' than the previous GD format.

Re-arranged source files
gd.c has been broken into constituant parts: io, gif, gd, gd2 and graphics functions are now in separate files.

Extended I/O capabilities.
The source/sink feature has been extended to support GD2 file formats (which require seek/tell functions), and to allow more general non-file I/O.

Better support for Lincoln Stein's Perl Module
The new gdImage*Ptr function returns the chosen format stored in a block of memory. This can be directly used by the GD perl module.

Added functions
gdImageCreateFromGd2Part - allows retrieval of part of an image (good for huge images, like maps),
gdImagePaletteCopy - Copies a palette from one image to another, doing it's best to match the colors in the target image to the colors in the source palette.
gdImageGd2, gdImageCreateFromGd2 - Support for new format
gdImageCopyMerge - Merges two images (useful to highlight part of an image)
gdImageCopyMergeGray - Similar to gdImageCopyMerge, but tries to preserve source image hue.
gdImagePngPtr, gdImageJpegPtr, gdImageWBMPPtr, gdImageGdPtr, gdImageGd2Ptr - return memory blocks for each type of image.
gdImageCreateFromPngCtx, gdImageCreateFromGdCtx, gdImageCreateFromGd2Ctx, gdImageCreateFromGd2PartCtx - Support for new I/O context.
NOTE: In fairness to Thomas Boutell, any bug/problems with any of the above features should probably be reported to Philip Warner.

What's new in version 1.4?

Version 1.4 features the following changes:
Fixed polygon fill routine (again)
Thanks to Kirsten Schulz, version 1.4 is able to fill numerous types of polygons that caused problems with previous releases, including version 1.3.
Support for alternate data sources
Programmers who wish to load a GIF from something other than a stdio FILE * stream can use the new gdImageCreateFromPngSource function.
Support for alternate data destinations
Programmers who wish to write a GIF to something other than a stdio FILE * stream can use the new gdImagePngToSink function.
More tolerant when reading GIFs
Version 1.4 does not crash when reading certain animated GIFs, although it still only reads the first frame. Version 1.4 also has overflow testing code to prevent crashes when reading damaged GIFs.

What's new in version 1.3?

Version 1.3 features the following changes:
Non-LZW-based GIF compression code
Version 1.3 contained GIF compression code that uses simple Run Length Encoding instead of LZW compression, while still retaining compatibility with normal LZW-based GIF decoders (your browser will still like your GIFs). LZW compression is patented by Unisys. We are currently reevaluating the approach taken by gd 1.3. The current release of gd does not support this approach. We recommend that you use the current release, and generate PNG images. Thanks to Hutchison Avenue Software Corporation for contributing the RLE GIF code.
8-bit fonts, and 8-bit font support
This improves support for European languages. Thanks are due to Honza Pazdziora and also to Jan Pazdziora . Also see the provided bdftogd Perl script if you wish to convert fixed-width X11 fonts to gd fonts.
16-bit font support (no fonts provided)
Although no such fonts are provided in the distribution, fonts containing more than 256 characters should work if the gdImageString16 and gdImageStringUp16 routines are used.
Improvements to the "webpng" example/utility
The "webpng" utility is now a slightly more useful application. Thanks to Brian Dowling for this code.
Corrections to the color resolution field of GIF output
Thanks to Bruno Aureli.
Fixed polygon fills
A one-line patch for the infamous polygon fill bug, courtesy of Jim Mason. I believe this fix is sufficient. However, if you find a situation where polygon fills still fail to behave properly, please send code that demonstrates the problem, and a fix if you have one. Verifying the fix is important.
Row-major, not column-major
Internally, gd now represents the array of pixels as an array of rows of pixels, rather than an array of columns of pixels. This improves the performance of compression and decompression routines slightly, because horizontally adjacent pixels are now next to each other in memory. This should not affect properly written gd applications, but applications that directly manipulate the pixels array will require changes.

What else do I need to use gd?

To use gd, you will need an ANSI C compiler. All popular Windows 95 and NT C compilers are ANSI C compliant. Any full-ANSI-standard C compiler should be adequate. The cc compiler released with SunOS 4.1.3 is not an ANSI C compiler. Most Unix users who do not already have gcc should get it. gcc is free, ANSI compliant and a de facto industry standard. Ask your ISP why it is missing.

As of version 1.6, you also need the zlib compression library, and the libpng library. As of version 1.6.2, you can draw text using antialiased TrueType fonts if you also have the libttf library installed, but this is not mandatory. zlib is available for a variety of platforms from the zlib web site. libpng is available for a variety of platforms from the PNG web site.

You will also want a PNG viewer, if you do not already have one for your system, since you will need a good way to check the results of your work. Netscape 4.04 and higher, and Microsoft Internet Explorer 4.0 or higher, both support PNG. For some purposes you might be happier with a package like Lview Pro for Windows or xv for X. There are PNG viewers available for every graphics-capable modern operating system, so consult newsgroups relevant to your particular system.

How do I get gd?

By HTTP

By FTP

How do I build gd?

In order to build gd, you must first unpack the archive you have downloaded. If you are not familiar with tar and gunzip (Unix) or ZIP (Windows), please consult with an experienced user of your system. Sorry, we cannot answer questions about basic Internet skills.

Unpacking the archive will produce a directory called "gd-2.0.1".

For Unix

cd to the 2.0.1 directory. Edit the Makefile with your preferred text editor and make any necessary changes to the settings at the top, especially if you want Xpm or TrueType support. Next, type "make install". Because gd 2.0 and above installs as a shared library, it is necessary to install the library properly before running gd-based programs.

If you get errors, edit the Makefile again, paying special attention to the INCLUDEDIRS and LIBDIRS settings.

IF YOU GET LINKER ERRORS, TRY JUGGLING THE ORDER OF THE -l DIRECTIVES IN THE MAKEFILE. Some platforms may prefer that the libraries be listed in the opposite order.

For Windows, Mac, Et Cetera

Create a project using your favorite programming environment. Copy all of the gd files to the project directory. Add gd.c to your project. Add other source files as appropriate. Learning the basic skills of creating projects with your chosen C environment is up to you.

If you wish to test the library, type "make test" AFTER you have successfully executed "make install". This will build several test programs, including "gddemo". Run gddemo to see some of the capabilities of gd.

gddemo should execute without incident, creating the file demoout.png. (Note there is also a file named demoin.png, which is provided in the package as part of the demonstration.)

Display demoout.png in your PNG viewer. The image should be 128x128 pixels and should contain an image of the space shuttle with quite a lot of graphical elements drawn on top of it.

(If you are missing the demoin.png file, the other items should appear anyway.)

Look at demoin.png to see the original space shuttle image which was scaled and copied into the output image.

gd basics: using gd in your program

gd lets you create PNG or JPEG images on the fly. To use gd in your program, include the file gd.h, and link with the libgd.a library produced by "make libgd.a", under Unix. Under other operating systems you will add gd.c to your own project.

If you want to use the provided fonts, include gdfontt.h, gdfonts.h, gdfontmb.h, gdfontl.h and/or gdfontg.h. For more impressive results, install FreeType 2.x and use the new gdImageStringFT function. If you are not using the provided Makefile and/or a library-based approach, be sure to include the source modules as well in your project. (They may be too large for 16-bit memory models, that is, 16-bit DOS and Windows.)

Here is a short example program. (For a more advanced example, see gddemo.c, included in the distribution. gddemo.c is NOT the same program; it demonstrates additional features!)

/* Bring in gd library functions */
#include "gd.h"

/* Bring in standard I/O so we can output the PNG to a file */
#include <stdio.h>

int main() {
	/* Declare the image */
	gdImagePtr im;
	/* Declare output files */
	FILE *pngout, *jpegout;
	/* Declare color indexes */
	int black;
	int white;

	/* Allocate the image: 64 pixels across by 64 pixels tall */
	im = gdImageCreate(64, 64);

	/* Allocate the color black (red, green and blue all minimum).
		Since this is the first color in a new image, it will
		be the background color. */
	black = gdImageColorAllocate(im, 0, 0, 0);	

	/* Allocate the color white (red, green and blue all maximum). */
	white = gdImageColorAllocate(im, 255, 255, 255);	
	
	/* Draw a line from the upper left to the lower right,
		using white color index. */
	gdImageLine(im, 0, 0, 63, 63, white);	

	/* Open a file for writing. "wb" means "write binary", important
		under MSDOS, harmless under Unix. */
	pngout = fopen("test.png", "wb");

	/* Do the same for a JPEG-format file. */
	jpegout = fopen("test.jpg", "wb");

	/* Output the image to the disk file in PNG format. */
	gdImagePng(im, pngout);

	/* Output the same image in JPEG format, using the default
		JPEG quality setting. */
	gdImageJpeg(im, jpegout, -1);

	/* Close the files. */
	fclose(pngout);
	fclose(jpegout);

	/* Destroy the image in memory. */
	gdImageDestroy(im);
}
When executed, this program creates an image, allocates two colors (the first color allocated becomes the background color), draws a diagonal line (note that 0, 0 is the upper left corner), writes the image to PNG and JPEG files, and destroys the image.

The above example program should give you an idea of how the package works. gd provides many additional functions, which are listed in the following reference chapters, complete with code snippets demonstrating each. There is also an alphabetical index.

Webpng: a more powerful gd example

Webpng is a simple utility program to manipulate PNGs from the command line. It is written for Unix and similar command-line systems, but should be easily adapted for other environments. Webpng allows you to set transparency and interlacing and output interesting information about the PNG in question.

webpng.c is provided in the distribution. Unix users can simply type "make webpng" to compile the program. Type "webpng" with no arguments to see the available options.

Function and type reference

Types

gdImage(TYPE)
The data structure in which gd stores images. gdImageCreate, gdImageCreateTrueColor and the various image file-loading functions return a pointer to this type, and the other functions expect to receive a pointer to this type as their first argument. It is reasonably safe to examine any of the members of this structure. It is also reasonably safe to modify individual pixels within the pixels or tpixels arrays. If the trueColor flag is set, the tpixels array is valid; otherwise the pixels array is valid.

The colorsTotal, red, green, blue, alpha and open arrays manage the palette. They are valid only when the trueColor flag is not set. The transparent value contains the palette index of the first transparent color as read-only information for backwards compatibility; gd 2.0 stores this information in the alpha array so that variable transparency can be supported for each palette entry. However, for truecolor images, transparent represents a single RGB color which is always 100% transparent, and this feature is generally supported by browsers which do not support full alpha channels.

typedef struct {
	/* Palette-based image pixels */
	unsigned char ** pixels;
	int sx;
	int sy;
	/* These are valid in palette images only. See also
	/* 'alpha', which appears later in the structure to
		preserve binary backwards compatibility */
	int colorsTotal;
	int red[gdMaxColors];
	int green[gdMaxColors];
	int blue[gdMaxColors]; 
	int open[gdMaxColors];
	/* For backwards compatibility, this is set to the
		first palette entry with 100% transparency,
		and is also set and reset by the 
		gdImageColorTransparent function. Newer
		applications can allocate palette entries
		with any desired level of transparency; however,
		bear in mind that many viewers, notably
		many web browsers, fail to implement
		full alpha channel for PNG and provide
		support for full opacity or transparency only. */
	int transparent;
	int *polyInts;
	int polyAllocated;
	struct gdImageStruct *brush;
	struct gdImageStruct *tile;	
	int brushColorMap[gdMaxColors];
	int tileColorMap[gdMaxColors];
	int styleLength;
	int stylePos;
	int *style;
	int interlace;
	/* New in 2.0: alpha channel for palettes. Note that only
		Macintosh Internet Explorer and (possibly) Netscape 6
		really support multiple levels of transparency in
		palettes, to my knowledge, as of 2/15/01. Most
		common browsers will display 100% opaque and
		100% transparent correctly, and do something 
		unpredictable and/or undesirable for levels
		in between. TBB */
	int alpha[gdMaxColors]; 
	/* Truecolor flag and pixels. New 2.0 fields appear here at the
		end to minimize breakage of existing object code. */
	int trueColor;
	int ** tpixels;
	/* Should alpha channel be copied, or applied, each time a
		pixel is drawn? This applies to truecolor images only.
		No attempt is made to alpha-blend in palette images,
		even if semitransparent palette entries exist. 
		To do that, build your image as a truecolor image,
		then quantize down to 8 bits. */
	int alphaBlendingFlag;
	/* Should the alpha channel of the image be saved? This affects
		PNG at the moment; other future formats may also
		have that capability. JPEG doesn't. */
	int saveAlphaFlag;
} gdImage;

The order of the structure members may appear confusing, but was chosen deliberately to increase backwards compatibility with existing gd 1.x-based binary code that references particular structure members.

gdImagePtr (TYPE)
A pointer to an image structure. gdImageCreate returns this type, and the other functions expect it as the first argument.
gdFont (TYPE)
A font structure. Used to declare the characteristics of a font. Plese see the files gdfontl.c and gdfontl.h for an example of the proper declaration of this structure. You can provide your own font data by providing such a structure and the associated pixel array. You can determine the width and height of a single character in a font by examining the w and h members of the structure. If you will not be creating your own fonts, you will not need to concern yourself with the rest of the components of this structure.
typedef struct {
	/* # of characters in font */
	int nchars;
	/* First character is numbered... (usually 32 = space) */
	int offset;
	/* Character width and height */
	int w;
	int h;
	/* Font data; array of characters, one row after another.
		Easily included in code, also easily loaded from
		data files. */
	char *data;
} gdFont;
gdFontPtr (TYPE)
A pointer to a font structure. Text-output functions expect these as their second argument, following the gdImagePtr argument. Two such pointers are declared in the provided include files gdfonts.h and gdfontl.h.
gdPoint (TYPE)
Represents a point in the coordinate space of the image; used by gdImagePolygon and gdImageFilledPolygon.
typedef struct {
        int x, y;
} gdPoint, *gdPointPtr;
gdPointPtr (TYPE)
A pointer to a gdPoint structure; passed as an argument to gdImagePolygon and gdImageFilledPolygon.
gdSource (TYPE)
typedef struct {
        int (*source) (void *context, char *buffer, int len);
        void *context;
} gdSource, *gdSourcePtr;
Represents a source from which a PNG can be read. Programmers who do not wish to read PNGs from a file can provide their own alternate input mechanism, using the gdImageCreateFromPngSource function. See the documentation of that function for an example of the proper use of this type.
gdSink (TYPE)
typedef struct {
        int (*sink) (void *context, char *buffer, int len);
        void *context;
} gdSink, *gdSinkPtr;
Represents a "sink" (destination) to which a PNG can be written. Programmers who do not wish to write PNGs to a file can provide their own alternate output mechanism, using the gdImagePngToSink function. See the documentation of that function for an example of the proper use of this type.

Image creation, destruction, loading and saving

gdImageCreate(sx, sy) (FUNCTION)
gdImageCreate is called to create palette-based images, with no more than 256 colors. Invoke gdImageCreate with the x and y dimensions of the desired image. gdImageCreate returns a gdImagePtr to the new image, or NULL if unable to allocate the image. The image must eventually be destroyed using gdImageDestroy().
... inside a function ...
gdImagePtr im;
im = gdImageCreate(64, 64);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateTrueColor(sx, sy) (FUNCTION)
gdImageCreateTrueColor is called to create truecolor images, with an essentially unlimited number of colors. Invoke gdImageCreateTrueColor with the x and y dimensions of the desired image. gdImageCreateTrueColor returns a gdImagePtr to the new image, or NULL if unable to allocate the image. The image must eventually be destroyed using gdImageDestroy().

Truecolor images are always filled with black at creation time.

... inside a function ...
gdImagePtr im;
im = gdImageCreateTrueColor(64, 64);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromJpeg(FILE *in) (FUNCTION)
gdImageCreateFromJpegCtx(FILE *in) (FUNCTION)

gdImageCreateFromJpeg(FILE *in) (FUNCTION)
gdImageCreateFromJpegCtx(FILE *in) (FUNCTION)

gdImageCreateFromJpeg is called to load images from JPEG format files. Invoke gdImageCreateFromJpeg with an already opened pointer to a file containing the desired image. gdImageCreateFromJpeg returns a gdImagePtr to the new truecolor image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a JPEG image). gdImageCreateFromJpeg does not close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy(). The returned image is always a truecolor image.
gdImagePtr im;
... inside a function ...
FILE *in;
in = fopen("myjpeg.jpg", "rb");
im = gdImageCreateFromJpeg(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromPng(FILE *in) (FUNCTION)
gdImageCreateFromPngCtx(gdIOCtx *in) (FUNCTION)

gdImageCreateFromPng is called to load images from PNG format files. Invoke gdImageCreateFromPng with an already opened pointer to a file containing the desired image. gdImageCreateFromPng returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a PNG image). gdImageCreateFromPng does not close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy().

If the PNG image being loaded is a truecolor image, the resulting gdImagePtr will refer to a truecolor image. If the PNG image being loaded is a palette or grayscale image, the resulting gdImagePtr will refer to a palette image. gd retains only 8 bits of resolution for each of the red, green and blue channels, and only 7 bits of resolution for the alpha channel. The former restriction affects only a handful of very rare 48-bit color and 16-bit grayscale PNG images. The second restriction affects all semitransparent PNG images, but the difference is essentially invisible to the eye. 7 bits of alpha channel resolution is, in practice, quite a lot.

gdImagePtr im;
... inside a function ...
FILE *in;
in = fopen("mypng.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromPngSource(gdSourcePtr in) (FUNCTION)
gdImageCreateFromPngSource is called to load a PNG from a data source other than a file. Usage is very similar to the gdImageCreateFromPng function, except that the programmer provides a custom data source.

The programmer must write an input function which accepts a context pointer, a buffer, and a number of bytes to be read as arguments. This function must read the number of bytes requested, unless the end of the file has been reached, in which case the function should return zero, or an error has occurred, in which case the function should return -1. The programmer then creates a gdSource structure and sets the source pointer to the input function and the context pointer to any value which is useful to the programmer.

The example below implements gdImageCreateFromPng by creating a custom data source and invoking gdImageCreateFromPngSource.

static int freadWrapper(void *context, char *buf, int len);

gdImagePtr gdImageCreateFromPng(FILE *in)
{
        gdSource s;
        s.source = freadWrapper;
        s.context = in;
        return gdImageCreateFromPngSource(&s);
}

static int freadWrapper(void *context, char *buf, int len)
{
        int got = fread(buf, 1, len, (FILE *) context);
        return got;
}
gdImageCreateFromGd(FILE *in) (FUNCTION)
gdImageCreateFromGdCtx(gdIOCtx *in) (FUNCTION)

gdImageCreateFromGd is called to load images from gd format files. Invoke gdImageCreateFromGd with an already opened pointer to a file containing the desired image in the gd file format, which is specific to gd and intended for very fast loading. (It is not intended for compression; for compression, use PNG or JPEG.) gdImageCreateFromGd returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a gd format image). gdImageCreateFromGd does not close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy().
... inside a function ...
gdImagePtr im;
FILE *in;
in = fopen("mygd.gd", "rb");
im = gdImageCreateFromGd(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromGd2(FILE *in) (FUNCTION)
gdImageCreateFromGd2Ctx(gdIOCtx *in) (FUNCTION)

gdImageCreateFromGd2 is called to load images from gd2 format files. Invoke gdImageCreateFromGd2 with an already opened pointer to a file containing the desired image in the gd2 file format, which is specific to gd2 and intended for fast loading of parts of large images. (It is a compressed format, but generally not as good as maximum compression of the entire image would be.) gdImageCreateFromGd returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a gd format image). gdImageCreateFromGd2 does not close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy().
... inside a function ...
gdImagePtr im;
FILE *in;
in = fopen("mygd.gd2", "rb");
im = gdImageCreateFromGd2(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromGd2Part(FILE *in, int srcX, int srcY, int w, int h) (FUNCTION)
gdImageCreateFromGd2PartCtx(gdIOCtx *in) (FUNCTION)

gdImageCreateFromGd2Part is called to load parts of images from gd2 format files. Invoked in the same way as gdImageCreateFromGd2, but with extra parameters indicating the source (x, y) and width/height of the desired image. gdImageCreateFromGd2Part returns a gdImagePtr to the new image, or NULL if unable to load the image. The image must eventually be destroyed using gdImageDestroy().

gdImageCreateFromXbm(FILE *in) (FUNCTION)
gdImageCreateFromXbm is called to load images from X bitmap format files. Invoke gdImageCreateFromXbm with an already opened pointer to a file containing the desired image. gdImageCreateFromXbm returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain an X bitmap format image). gdImageCreateFromXbm does not close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy().
... inside a function ...
gdImagePtr im;
FILE *in;
in = fopen("myxbm.xbm", "rb");
im = gdImageCreateFromXbm(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageCreateFromXpm(char *filename) (FUNCTION)
gdImageCreateFromXbm is called to load images from XPM X Window System color bitmap format files. This function is available only if HAVE_XPM is selected in the Makefile and the Xpm library is linked with the application. Unlike most gd file functions, the Xpm functions require filenames, not file pointers. gdImageCreateFromXpm returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain an XPM bitmap format image). You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy().
... inside a function ...
gdImagePtr im;
FILE *in;
in = fopen("myxpm.xpm", "rb");
im = gdImageCreateFromXpm(in);
fclose(in);
/* ... Use the image ... */
gdImageDestroy(im);
gdImageDestroy(gdImagePtr im) (FUNCTION)
gdImageDestroy is used to free the memory associated with an image. It is important to invoke gdImageDestroy before exiting your program or assigning a new image to a gdImagePtr variable.
... inside a function ...
gdImagePtr im;
im = gdImageCreate(10, 10);
/* ... Use the image ... */
/* Now destroy it */
gdImageDestroy(im);
void gdImageJpeg(gdImagePtr im, FILE *out, int quality) (FUNCTION)
void gdImageJpegCtx(gdImagePtr im, gdIOCtx *out, int quality) (FUNCTION)
gdImageJpeg outputs the specified image to the specified file in JPEG format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImageJpeg does not close the file; your code must do so.

If quality is negative, the default IJG JPEG quality value (which should yield a good general quality / size tradeoff for most situations) is used. Otherwise, for practical purposes, quality should be a value in the range 0-95, higher quality values usually implying both higher quality and larger image sizes.

If you have set image interlacing using gdImageInterlace, this function will interpret that to mean you wish to output a progressive JPEG. Some programs (e.g., Web browsers) can display progressive JPEGs incrementally; this can be useful when browsing over a relatively slow communications link, for example. Progressive JPEGs can also be slightly smaller than sequential (non-progressive) JPEGs.

... inside a function ...
gdImagePtr im;
int black, white;
FILE *out;
/* Create the image */
im = gdImageCreate(100, 100);
/* Allocate background */
white = gdImageColorAllocate(im, 255, 255, 255);
/* Allocate drawing color */
black = gdImageColorAllocate(im, 0, 0, 0);
/* Draw rectangle */
gdImageRectangle(im, 0, 0, 99, 99, black);
/* Open output file in binary mode */
out = fopen("rect.jpg", "wb");
/* Write JPEG using default quality */
gdImageJpeg(im, out, -1);
/* Close file */
fclose(out);
/* Destroy image */
gdImageDestroy(im);
void* gdImageJpegPtr(gdImagePtr im, int *size) (FUNCTION)
Identical to gdImageJpeg except that it returns a pointer to a memory area with the JPEG data. This memory must be freed by the caller when it is no longer needed. The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time. The 'size' parameter receives the total size of the block of memory.
void gdImagePng(gdImagePtr im, FILE *out) (FUNCTION)
gdImagePng outputs the specified image to the specified file in PNG format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImagePng does not close the file; your code must do so.
... inside a function ...
gdImagePtr im;
int black, white;
FILE *out;
/* Create the image */
im = gdImageCreate(100, 100);
/* Allocate background */
white = gdImageColorAllocate(im, 255, 255, 255);
/* Allocate drawing color */
black = gdImageColorAllocate(im, 0, 0, 0);
/* Draw rectangle */
gdImageRectangle(im, 0, 0, 99, 99, black);
/* Open output file in binary mode */
out = fopen("rect.png", "wb");
/* Write PNG */
gdImagePng(im, out);
/* Close file */
fclose(out);
/* Destroy image */
gdImageDestroy(im);
void* gdImagePngPtr(gdImagePtr im, int *size) (FUNCTION)
Identical to gdImagePng except that it returns a pointer to a memory area with the PNG data. This memory must be freed by the caller when it is no longer needed. The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time. The 'size' parameter receives the total size of the block of memory.
gdImagePngToSink(gdImagePtr im, gdSinkPtr out) (FUNCTION)
gdImagePngToSink is called to write a PNG to a data "sink" (destination) other than a file. Usage is very similar to the gdImagePng function, except that the programmer provides a custom data sink.

The programmer must write an output function which accepts a context pointer, a buffer, and a number of bytes to be written as arguments. This function must write the number of bytes requested and return that number, unless an error has occurred, in which case the function should return -1. The programmer then creates a gdSink structure and sets the sink pointer to the output function and the context pointer to any value which is useful to the programmer.

The example below implements gdImagePng by creating a custom data source and invoking gdImagePngFromSink.

static int stdioSink(void *context, char *buffer, int len)
{
	return fwrite(buffer, 1, len, (FILE *) context);
}

void gdImagePng(gdImagePtr im, FILE *out)
{
	gdSink mySink;
	mySink.context = (void *) out;
	mySink.sink = stdioSink;
	gdImagePngToSink(im, &mySink);
}
void gdImageWBMP(gdImagePtr im, int fg, FILE *out)
gdImageWBMPCtx(gdIOCtx *out) (FUNCTION)(FUNCTION)
gdImageWBMP outputs the specified image to the specified file in WBMP format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImageWBMP does not close the file; your code must do so.

WBMP file support is black and white only. The color index specified by the fg argument is the "foreground," and only pixels of this color will be set in the WBMP file. All other pixels will be considered "background."

... inside a function ...
gdImagePtr im;
int black, white;
FILE *out;
/* Create the image */
im = gdImageCreate(100, 100);
/* Allocate background */
white = gdImageColorAllocate(im, 255, 255, 255);
/* Allocate drawing color */
black = gdImageColorAllocate(im, 0, 0, 0);
/* Draw rectangle */
gdImageRectangle(im, 0, 0, 99, 99, black);
/* Open output file in binary mode */
out = fopen("rect.wbmp", "wb");
/* Write WBMP, with black as foreground */
gdImageWBMP(im, black, out);
/* Close file */
fclose(out);
/* Destroy image */
gdImageDestroy(im);
void* gdImageWBMPPtr(gdImagePtr im, int *size) (FUNCTION)
Identical to gdImageWBMP except that it returns a pointer to a memory area with the WBMP data. This memory must be freed by the caller when it is no longer needed. The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time. The 'size' parameter receives the total size of the block of memory.
void gdImageGd(gdImagePtr im, FILE *out) (FUNCTION)
gdImageGd outputs the specified image to the specified file in the gd image format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImagePng does not close the file; your code must do so.

The gd image format is intended for fast reads and writes of images your program will need frequently to build other images. It is not a compressed format, and is not intended for general use.

... inside a function ...
gdImagePtr im;
int black, white;
FILE *out;
/* Create the image */
im = gdImageCreate(100, 100);
/* Allocate background */
white = gdImageColorAllocate(im, 255, 255, 255);
/* Allocate drawing color */
black = gdImageColorAllocate(im, 0, 0, 0);
/* Draw rectangle */
gdImageRectangle(im, 0, 0, 99, 99, black);
/* Open output file in binary mode */
out = fopen("rect.gd", "wb");
/* Write gd format file */
gdImageGd(im, out);
/* Close file */
fclose(out);
/* Destroy image */
gdImageDestroy(im);
void* gdImageGdPtr(gdImagePtr im, int *size) (FUNCTION)
Identical to gdImageGd except that it returns a pointer to a memory area with the GD data. This memory must be freed by the caller when it is no longer needed. The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time. The 'size' parameter receives the total size of the block of memory.
void gdImageGd2(gdImagePtr im, FILE *out, int chunkSize, int fmt) (FUNCTION)
gdImageGd2 outputs the specified image to the specified file in the gd2 image format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImageGd2 does not close the file; your code must do so.

The gd2 image format is intended for fast reads and writes of parts of images. It is a compressed format, and well suited to retrieving smll sections of much larger images. The third and fourth parameters are the 'chunk size' and format resposectively.

The file is stored as a series of compressed subimages, and the Chunk Size determines the sub-image size - a value of zero causes the GD library to use the default.

It is also possible to store GD2 files in an uncompressed format, in which case the fourth parameter should be GD2_FMT_RAW.

... inside a function ...
gdImagePtr im;
int black, white;
FILE *out;
/* Create the image */
im = gdImageCreate(100, 100);
/* Allocate background */
white = gdImageColorAllocate(im, 255, 255, 255);
/* Allocate drawing color */
black = gdImageColorAllocate(im, 0, 0, 0);
/* Draw rectangle */
gdImageRectangle(im, 0, 0, 99, 99, black);
/* Open output file in binary mode */
out = fopen("rect.gd", "wb");
/* Write gd2 format file */
gdImageGd2(im, out, 0, GD2_FMT_COMPRESSED);
/* Close file */
fclose(out);
/* Destroy image */
gdImageDestroy(im);
void* gdImageGd2Ptr(gdImagePtr im, int chunkSize, int fmt, int *size) (FUNCTION)
Identical to gdImageGd2 except that it returns a pointer to a memory area with the GD2 data. This memory must be freed by the caller when it is no longer needed. The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time. The 'size' parameter receives the total size of the block of memory.

Drawing Functions

void gdImageSetPixel(gdImagePtr im, int x, int y, int color) (FUNCTION)
gdImageSetPixel sets a pixel to a particular color index. Always use this function or one of the other drawing functions to access pixels; do not access the pixels of the gdImage structure directly.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Set a pixel near the center. */
gdImageSetPixel(im, 50, 50, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageLine(gdImagePtr im, int x1, int y1, int x2, int y2, int color) (FUNCTION)
gdImageLine is used to draw a line between two endpoints (x1,y1 and x2, y2). The line is drawn using the color index specified. Note that the color index can be an actual color returned by gdImageColorAllocate or one of gdStyled, gdBrushed or gdStyledBrushed.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a line from the upper left corner to the lower right corner. */
gdImageLine(im, 0, 0, 99, 99, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageDashedLine(gdImagePtr im, int x1, int y1, int x2, int y2, int color) (FUNCTION)
gdImageDashedLine is provided solely for backwards compatibility with gd 1.0. New programs should draw dashed lines using the normal gdImageLine function and the new gdImageSetStyle function.

gdImageDashedLine is used to draw a dashed line between two endpoints (x1,y1 and x2, y2). The line is drawn using the color index specified. The portions of the line that are not drawn are left transparent so the background is visible.

... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a dashed line from the upper left corner to the lower right corner. */
gdImageDashedLine(im, 0, 0, 99, 99);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImagePolygon(gdImagePtr im, gdPointPtr points, int pointsTotal, int color) (FUNCTION)
gdImagePolygon is used to draw a polygon with the verticies (at least 3) specified, using the color index specified. See also gdImageFilledPolygon.
... inside a function ...
gdImagePtr im;
int black;
int white;
/* Points of polygon */
gdPoint points[3];
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a triangle. */
points[0].x = 50;
points[0].y = 0;
points[1].x = 99;
points[1].y = 99;
points[2].x = 0;
points[2].y = 99;
gdImagePolygon(im, points, 3, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color) (FUNCTION)
gdImageRectangle is used to draw a rectangle with the two corners (upper left first, then lower right) specified, using the color index specified.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a rectangle occupying the central area. */
gdImageRectangle(im, 25, 25, 74, 74, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFilledPolygon(gdImagePtr im, gdPointPtr points, int pointsTotal, int color) (FUNCTION)
gdImageFilledPolygon is used to fill a polygon with the verticies (at least 3) specified, using the color index specified. See also gdImagePolygon.
... inside a function ...
gdImagePtr im;
int black;
int white;
int red;
/* Points of polygon */
gdPoint points[3];
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Allocate the color red. */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* Draw a triangle. */
points[0].x = 50;
points[0].y = 0;
points[1].x = 99;
points[1].y = 99;
points[2].x = 0;
points[2].y = 99;
/* Paint it in white */
gdImageFilledPolygon(im, points, 3, white);
/* Outline it in red; must be done second */
gdImagePolygon(im, points, 3, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFilledRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color) (FUNCTION)
gdImageFilledRectangle is used to draw a solid rectangle with the two corners (upper left first, then lower right) specified, using the color index specified.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = int gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a filled rectangle occupying the central area. */
gdImageFilledRectangle(im, 25, 25, 74, 74, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageArc(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color) (FUNCTION)
gdImageArc is used to draw a partial ellipse centered at the given point, with the specified width and height in pixels. The arc begins at the position in degrees specified by s and ends at the position specified by e. The arc is drawn in the color specified by the last argument. A circle can be drawn by beginning from 0 degrees and ending at 360 degrees, with width and height being equal. e must be greater than s. Values greater than 360 are interpreted modulo 360.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 50);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Inscribe an ellipse in the image. */
gdImageArc(im, 50, 25, 98, 48, 0, 360, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFilledArc(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color, int style) (FUNCTION)
gdImageFilledArc is used to draw a partial ellipse centered at the given point, with the specified width and height in pixels. The arc begins at the position in degrees specified by s and ends at the position specified by e. The arc is filled in the color specified by the second to last argument. A circle can be drawn by beginning from 0 degrees and ending at 360 degrees, with width and height being equal. e must be greater than s. Values greater than 360 are interpreted modulo 360. The last argument is a bitwise OR of the following possibilities:
  • gdArc
  • gdChord
  • gdPie (synonym for gdChord)
  • gdNoFill
  • gdEdged
gdArc and gdChord are mutually exclusive; gdChord just connects the starting and ending angles with a straight line, while gdArc produces a rounded edge. gdPie is a synonym for gdArc. gdNoFill indicates that the arc or chord should be outlined, not filled. gdEdged, used together with gdNoFill, indicates that the beginning and ending angles should be connected to the center; this is a good way to outline (rather than fill) a 'pie slice'.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 50);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Inscribe a filled pie slice in the image. */
gdImageFilledArc(im, 50, 25, 98, 48, 0, 45, white, gdArc);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFilledEllipse(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color) (FUNCTION)
gdImageFilledEllipse is used to draw an ellipse centered at the given point, with the specified width and height in pixels. The ellipse is filled in the color specified by the last argument. A circle can be drawn by beginning from 0 degrees and ending at 360 degrees, with width and height being equal. e must be greater than s. Values greater than 360 are interpreted modulo 360.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 50);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Inscribe a filled ellipse in the image. */
gdImageFilledEllipse(im, 50, 25, 98, 48, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFillToBorder(gdImagePtr im, int x, int y, int border, int color) (FUNCTION)
gdImageFillToBorder floods a portion of the image with the specified color, beginning at the specified point and stopping at the specified border color. For a way of flooding an area defined by the color of the starting point, see gdImageFill.

The border color cannot be a special color such as gdTiled; it must be a proper solid color. The fill color can be, however.

Note that gdImageFillToBorder is recursive. It is not the most naive implementation possible, and the implementation is expected to improve, but there will always be degenerate cases in which the stack can become very deep. This can be a problem in MSDOS and MS Windows 3.1 environments. (Of course, in a Unix or Windows 95/98/NT environment with a proper stack, this is not a problem at all.)

... inside a function ...
gdImagePtr im;
int black;
int white;
int red;
im = gdImageCreate(100, 50);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Allocate the color red. */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* Inscribe an ellipse in the image. */
gdImageArc(im, 50, 25, 98, 48, 0, 360, white);
/* Flood-fill the ellipse. Fill color is red, border color is
	white (ellipse). */
gdImageFillToBorder(im, 50, 50, white, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageFill(gdImagePtr im, int x, int y, int color) (FUNCTION)
gdImageFill floods a portion of the image with the specified color, beginning at the specified point and flooding the surrounding region of the same color as the starting point. For a way of flooding a region defined by a specific border color rather than by its interior color, see gdImageFillToBorder.

The fill color can be gdTiled, resulting in a tile fill using another image as the tile. However, the tile image cannot be transparent. If the image you wish to fill with has a transparent color index, call gdImageTransparent on the tile image and set the transparent color index to -1 to turn off its transparency.

Note that gdImageFill is recursive. It is not the most naive implementation possible, and the implementation is expected to improve, but there will always be degenerate cases in which the stack can become very deep. This can be a problem in MSDOS and MS Windows environments. (Of course, in a Unix or Windows 95/98/NT environment with a proper stack, this is not a problem at all.)

... inside a function ...
gdImagePtr im;
int black;
int white;
int red;
im = gdImageCreate(100, 50);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Allocate the color red. */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* Inscribe an ellipse in the image. */
gdImageArc(im, 50, 25, 98, 48, 0, 360, white);
/* Flood-fill the ellipse. Fill color is red, and will replace the
	black interior of the ellipse. */
gdImageFill(im, 50, 50, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageSetBrush(gdImagePtr im, gdImagePtr brush) (FUNCTION)
A "brush" is an image used to draw wide, shaped strokes in another image. Just as a paintbrush is not a single point, a brush image need not be a single pixel. Any gd image can be used as a brush, and by setting the transparent color index of the brush image with gdImageColorTransparent, a brush of any shape can be created. All line-drawing functions, such as gdImageLine and gdImagePolygon, will use the current brush if the special "color" gdBrushed or gdStyledBrushed is used when calling them.

gdImageSetBrush is used to specify the brush to be used in a particular image. You can set any image to be the brush. If the brush image does not have the same color map as the first image, any colors missing from the first image will be allocated. If not enough colors can be allocated, the closest colors already available will be used. This allows arbitrary PNGs to be used as brush images. It also means, however, that you should not set a brush unless you will actually use it; if you set a rapid succession of different brush images, you can quickly fill your color map, and the results will not be optimal.

You need not take any special action when you are finished with a brush. As for any other image, if you will not be using the brush image for any further purpose, you should call gdImageDestroy. You must not use the color gdBrushed if the current brush has been destroyed; you can of course set a new brush to replace it.

... inside a function ...
gdImagePtr im, brush;
FILE *in;
int black;
im = gdImageCreate(100, 100);
/* Open the brush PNG. For best results, portions of the
	brush that should be transparent (ie, not part of the
	brush shape) should have the transparent color index. */
in = fopen("star.png", "rb");
brush = gdImageCreateFromPng(in);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
gdImageSetBrush(im, brush);
/* Draw a line from the upper left corner to the lower right corner
	using the brush. */
gdImageLine(im, 0, 0, 99, 99, gdBrushed);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
/* Destroy the brush image */
gdImageDestroy(brush);
void gdImageSetTile(gdImagePtr im, gdImagePtr tile) (FUNCTION)
A "tile" is an image used to fill an area with a repeated pattern. Any gd image can be used as a tile, and by setting the transparent color index of the tile image with gdImageColorTransparent, a tile that allows certain parts of the underlying area to shine through can be created. All region-filling functions, such as gdImageFill and gdImageFilledPolygon, will use the current tile if the special "color" gdTiled is used when calling them.

gdImageSetTile is used to specify the tile to be used in a particular image. You can set any image to be the tile. If the tile image does not have the same color map as the first image, any colors missing from the first image will be allocated. If not enough colors can be allocated, the closest colors already available will be used. This allows arbitrary PNGs to be used as tile images. It also means, however, that you should not set a tile unless you will actually use it; if you set a rapid succession of different tile images, you can quickly fill your color map, and the results will not be optimal.

You need not take any special action when you are finished with a tile. As for any other image, if you will not be using the tile image for any further purpose, you should call gdImageDestroy. You must not use the color gdTiled if the current tile has been destroyed; you can of course set a new tile to replace it.

... inside a function ...
gdImagePtr im, tile;
FILE *in;
int black;
im = gdImageCreate(100, 100);
/* Open the tile PNG. For best results, portions of the
	tile that should be transparent (ie, allowing the
	background to shine through) should have the transparent
	color index. */
in = fopen("star.png", "rb");
tile = gdImageCreateFromPng(in);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
gdImageSetTile(im, tile);
/* Fill an area using the tile. */
gdImageFilledRectangle(im, 25, 25, 75, 75, gdTiled);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
/* Destroy the tile image */
gdImageDestroy(tile);
void gdImageSetStyle(gdImagePtr im, int *style, int styleLength) (FUNCTION)
It is often desirable to draw dashed lines, dotted lines, and other variations on a broken line. gdImageSetStyle can be used to set any desired series of colors, including a special color that leaves the background intact, to be repeated during the drawing of a line.

To use gdImageSetStyle, create an array of integers and assign them the desired series of color values to be repeated. You can assign the special color value gdTransparent to indicate that the existing color should be left unchanged for that particular pixel (allowing a dashed line to be attractively drawn over an existing image).

Then, to draw a line using the style, use the normal gdImageLine function with the special color value gdStyled.

As of version 1.1.1, the style array is copied when you set the style, so you need not be concerned with keeping the array around indefinitely. This should not break existing code that assumes styles are not copied.

You can also combine styles and brushes to draw the brush image at intervals instead of in a continuous stroke. When creating a style for use with a brush, the style values are interpreted differently: zero (0) indicates pixels at which the brush should not be drawn, while one (1) indicates pixels at which the brush should be drawn. To draw a styled, brushed line, you must use the special color value gdStyledBrushed. For an example of this feature in use, see gddemo.c (provided in the distribution).

gdImagePtr im;
int styleDotted[2], styleDashed[6];
FILE *in;
int black;
int red;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
red = gdImageColorAllocate(im, 255, 0, 0);	
/* Set up dotted style. Leave every other pixel alone. */
styleDotted[0] = red;
styleDotted[1] = gdTransparent;
/* Set up dashed style. Three on, three off. */
styleDashed[0] = red;
styleDashed[1] = red;
styleDashed[2] = red;
styleDashed[3] = gdTransparent;
styleDashed[4] = gdTransparent;
styleDashed[5] = gdTransparent;
/* Set dotted style. Note that we have to specify how many pixels are
	in the style! */
gdImageSetStyle(im, styleDotted, 2);
/* Draw a line from the upper left corner to the lower right corner. */
gdImageLine(im, 0, 0, 99, 99, gdStyled);
/* Now the dashed line. */
gdImageSetStyle(im, styleDashed, 6);
gdImageLine(im, 0, 99, 0, 99, gdStyled);

/* ... Do something with the image, such as saving it to a file ... */

/* Destroy it */
gdImageDestroy(im);
void gdImageAlphaBlending(gdImagePtr im, int blending) (FUNCTION)
The gdImageAlphaBlending function allows for two different modes of drawing on truecolor images. In blending mode, the alpha channel component of the color supplied to all drawing functions, such as gdImageSetPixel, determines how much of the underlying color should be allowed to shine through. As a result, gd automatically blends the existing color at that point with the drawing color, and stores the result in the image. The resulting pixel is opaque. In non-blending mode, the drawing color is copied literally with its alpha channel information, replacing the destination pixel. Blending mode is not available when drawing on palette images.
gdImagePtr im;
int red, blue;
im = gdImageCreateTrueColor(100, 100);
/* Background color */
red = gdTrueColor(255, 0, 0);	
gdImageFilledRectangle(im, 0, 0, 100, 100, red);
/* Drawing color. Full transparency would be an alpha channel value
	of 127 (gd has a 7 bit alpha chnanel). 0 is opaque,
	127 is transparent. So cut gdAlphaTransparent in half to get
	50% blending. */
blue = gdTrueColorAlpha(0, 0, 255, gdAlphaTransparent / 2);	
/* Draw with blending. Result will be 50% red, 50% blue: yellow 
	(emitted light, remember, not reflected light. What you learned 
	in Kindergarten is wrong here). */
gdImageAlphaBlending(im, 1);
gdImageFilledRectangle(im, 0, 0, 25, 25, blue);
/* Draw without blending. Result will be 50% blue, 50%
	the background color of the image viewer or web browser
	used; results in browsers that don't support
	semi-transparent pixels are unpredictable! */
gdImageAlphaBlending(im, 0);
gdImageFilledRectangle(im, 75, 75, 25, 25, blue);
/* Write the image to disk, etc. */

Query Functions

int gdImageAlpha(gdImagePtr im, int color) (MACRO)
gdImageAlpha is a macro which returns the alpha channel component of the specified color index. Alpha channel values vary between 0 (gdAlphaOpaque), which does not blend at all with the background, through 127 (gdAlphaTransparent), which allows the background to shine through 100%. Use this macro rather than accessing the structure members directly. int gdImageBlue(gdImagePtr im, int color) (MACRO)
gdImageBlue is a macro which returns the blue component of the specified color index. Use this macro rather than accessing the structure members directly.
int gdImageGetPixel(gdImagePtr im, int x, int y) (FUNCTION)
gdImageGetPixel() retrieves the color index of a particular pixel. Always use this function to query pixels; do not access the pixels of the gdImage structure directly.
... inside a function ...
FILE *in;
gdImagePtr im;
int c;
in = fopen("mypng.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
c = gdImageGetPixel(im, gdImageSX(im) / 2, gdImageSY(im) / 2);
printf("The value of the center pixel is %d; RGB values are %d,%d,%d\n",
	c, im->red[c], im->green[c], im->blue[c]);
gdImageDestroy(im);
int gdImageBoundsSafe(gdImagePtr im, int x, int y) (FUNCTION)
gdImageBoundsSafe returns true (1) if the specified point is within the bounds of the image, false (0) if not. This function is intended primarily for use by those who wish to add functions to gd. All of the gd drawing functions already clip safely to the edges of the image.
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
if (gdImageBoundsSafe(im, 50, 50)) {
	printf("50, 50 is within the image bounds\n");
} else {
	printf("50, 50 is outside the image bounds\n");
}
gdImageDestroy(im);
int gdImageGreen(gdImagePtr im, int color) (MACRO)
gdImageGreen is a macro which returns the green component of the specified color index. Use this macro rather than accessing the structure members directly.
int gdImageRed(gdImagePtr im, int color) (MACRO)
gdImageRed is a macro which returns the red component of the specified color index. Use this macro rather than accessing the structure members directly.
int gdImageSX(gdImagePtr im) (MACRO)
gdImageSX is a macro which returns the width of the image in pixels. Use this macro rather than accessing the structure members directly.
int gdImageSY(gdImagePtr im) (MACRO)
gdImageSY is a macro which returns the height of the image in pixels. Use this macro rather than accessing the structure members directly.

Fonts and text-handling functions

void gdImageChar(gdImagePtr im, gdFontPtr font, int x, int y, int c, int color) (FUNCTION)
gdImageChar is used to draw single characters on the image. (To draw multiple characters, use gdImageString or gdImageString16. See also gdImageStringFT for a high quality solution.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The character specified by the fifth argument is drawn from left to right in the specified color. (See gdImageCharUp for a way of drawing vertical text.) Pixels not set by a particular character retain their previous color.
#include "gd.h"
#include "gdfontl.h"
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a character. */
gdImageChar(im, gdFontLarge, 0, 0, 'Q', white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageCharUp(gdImagePtr im, gdFontPtr font, int x, int y, int c, int color) (FUNCTION)
gdImageCharUp is used to draw single characters on the image, rotated 90 degrees. (To draw multiple characters, use gdImageStringUp or gdImageStringUp16.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The character specified by the fifth argument is drawn from bottom to top, rotated at a 90-degree angle, in the specified color. (See gdImageChar for a way of drawing horizontal text.) Pixels not set by a particular character retain their previous color.
#include "gd.h"
#include "gdfontl.h"
... inside a function ...
gdImagePtr im;
int black;
int white;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a character upwards so it rests against the top of the image. */
gdImageCharUp(im, gdFontLarge,
	0, gdFontLarge->h, 'Q', white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageString(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color) (FUNCTION)
gdImageString is used to draw multiple characters on the image. (To draw single characters, use gdImageChar.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The null-terminated C string specified by the fifth argument is drawn from left to right in the specified color. (See gdImageStringUp for a way of drawing vertical text. See also gdImageStringFT for a high quality solution.) Pixels not set by a particular character retain their previous color.
#include "gd.h"
#include "gdfontl.h"
#include <string.h>
... inside a function ...
gdImagePtr im;
int black;
int white;
/* String to draw. */
char *s = "Hello.";
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a centered string. */
gdImageString(im, gdFontLarge,
	im->w / 2 - (strlen(s) * gdFontLarge->w / 2),
	im->h / 2 - gdFontLarge->h / 2,
	s, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageString16(gdImagePtr im, gdFontPtr font, int x, int y, unsigned short *s, int color) (FUNCTION)
gdImageString is used to draw multiple 16-bit characters on the image. (To draw single characters, use gdImageChar.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The null-terminated string of characters represented as 16-bit unsigned short integers specified by the fifth argument is drawn from left to right in the specified color. (See gdImageStringUp16 for a way of drawing vertical text.) Pixels not set by a particular character retain their previous color.

This function was added in gd1.3 to provide a means of rendering fonts with more than 256 characters for those who have them. A more frequently used routine is gdImageString.

void gdImageStringUp(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color) (FUNCTION)
gdImageStringUp is used to draw multiple characters on the image, rotated 90 degrees. (To draw single characters, use gdImageCharUp.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts.The null-terminated C string specified by the fifth argument is drawn from bottom to top (rotated 90 degrees) in the specified color. (See gdImageString for a way of drawing horizontal text.) Pixels not set by a particular character retain their previous color.
#include "gd.h"
#include "gdfontl.h"
#include <string.h>
... inside a function ...
gdImagePtr im;
int black;
int white;
/* String to draw. */
char *s = "Hello.";
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color white (red, green and blue all maximum). */
white = gdImageColorAllocate(im, 255, 255, 255);	
/* Draw a centered string going upwards. Axes are reversed,
	and Y axis is decreasing as the string is drawn. */
gdImageStringUp(im, gdFontLarge,
	im->w / 2 - gdFontLarge->h / 2,
	im->h / 2 + (strlen(s) * gdFontLarge->w / 2),
	s, white);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageStringUp16(gdImagePtr im, gdFontPtr font, int x, int y, unsigned short *s, int color) (FUNCTION)
gdImageString is used to draw multiple 16-bit characters vertically on the image. (To draw single characters, use gdImageChar.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The null-terminated string of characters represented as 16-bit unsigned short integers specified by the fifth argument is drawn from bottom to top in the specified color. (See gdImageStringUp16 for a way of drawing horizontal text.) Pixels not set by a particular character retain their previous color.

This function was added in gd1.3 to provide a means of rendering fonts with more than 256 characters for those who have them. A more frequently used routine is gdImageStringUp.

char *gdImageStringFT(gdImagePtr im, int *brect, int fg, char *fontname, double ptsize, double angle, int x, int y, char *string) (FUNCTION)
RECOMMENDED. New in 1.8.4. gdImageStringFT draws text using the FreeType 2.x library.

gdImageStringFT draws a string of anti-aliased characters on the image using the FreeType library to render user-supplied TrueType fonts. We do not provide TrueType fonts (.ttf and .ttc files). Obtaining them is entirely up to you. The string is anti-aliased, meaning that there should be fewer "jaggies" visible. The fontname is the full pathname to a TrueType font file, or a font face name if the GDFONTPATH environment variable or FreeType's DEFAULT_FONTPATH variable have been set intelligently. The string may be arbitrarily scaled (ptsize) and rotated (angle in radians).

The user-supplied int brect[8] array is filled on return from gdImageStringFT with the 8 elements representing the 4 corner coordinates of the bounding rectangle.
0 lower left corner, X position
lower left corner, Y position
lower right corner, X position
3 lower right corner, Y position
4 upper right corner, X position
5 upper right corner, Y position
6 upper left corner, X position
7 upper left corner, Y position

The points are relative to the text regardless of the angle, so "upper left" means in the top left-hand corner seeing the text horizontally.

Use a NULL gdImagePtr to get the bounding rectangle without rendering. This is a relatively cheap operation if followed by a rendering of the same string, because of the caching of the partial rendering during bounding rectangle calculation.

The string is rendered in the color indicated by the gf color index. Use the negative of the desired color index to disable anti-aliasing.

The string may contain UTF-8 sequences like: "&#192;"

gdImageStringFT will return a null char* on success, or an error string on failure.

#include "gd.h"
#include <string.h>
... inside a function ...
gdImagePtr im;
int black;
int white;
int brect[8];
int x, y;
char *err;

char *s = "Hello."; /* String to draw. */
double sz = 40.;
char *f = "/usr/local/share/ttf/Times.ttf";  /* User supplied font */

/* obtain brect so that we can size the image */
err = gdImageStringFT(NULL,&brect[0],0,f,sz,0.,0,0,s);
if (err) {fprintf(stderr,err); return 1;}

/* create an image big enough for the string plus a little whitespace */
x = brect[2]-brect[6] + 6;
y = brect[3]-brect[7] + 6;
im = gdImageCreate(x,y);

/* Background color (first allocated) */
white = gdImageColorResolve(im, 255, 255, 255);
black = gdImageColorResolve(im, 0, 0, 0);

/* render the string, offset origin to center string*/
/* note that we use top-left coordinate for adjustment
 * since gd origin is in top-left with y increasing downwards. */
x = 3 - brect[6];
y = 3 - brect[7];
err = gdImageStringFT(im,&brect[0],black,f,sz,0.0,x,y,s);
if (err) {fprintf(stderr,err); return 1;}

/* Write img to stdout */
gdImagePng(im, stdout);

/* Destroy it */
gdImageDestroy(im);
char *gdImageStringTTF(gdImagePtr im, int *brect, int fg, char *fontname, double ptsize, double angle, int x, int y, char *string) (FUNCTION)
DEPRECATED. THis function simply invokes gdImageStringFT for backwards compatibility with old code that was written with FreeType 1.x. /DL>

Color-handling functions

int gdImageColorAllocate(gdImagePtr im, int r, int g, int b) (FUNCTION)
gdImageColorAllocate finds the first available color index in the image specified, sets its RGB values to those requested (255 is the maximum for each), and returns the index of the new color table entry, or an RGBA value in the case of a truecolor image; in either case you can then use the returned value as a parameter to drawing functions. When creating a new palette-based image, the first time you invoke this function, you are setting the background color for that image.

In the event that all gdMaxColors colors (256) have already been allocated, gdImageColorAllocate will return -1 to indicate failure. (This is not uncommon when working with existing PNG files that already use 256 colors.) Note that gdImageColorAllocate does not check for existing colors that match your request; see gdImageColorExact, gdImageColorClosest and gdImageColorClosestHWB for ways to locate existing colors that approximate the color desired in situations where a new color is not available. Also see gdImageColorResolve, new in gd-1.6.2.

... inside a function ...
gdImagePtr im;
int black;
int red;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color red. */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* Draw a dashed line from the upper left corner to the lower right corner. */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorAllocateAlpha(gdImagePtr im, int r, int g, int b, int a) (FUNCTION)
gdImageColorAllocateAlpha finds the first available color index in the image specified, sets its RGBA values to those requested (255 is the maximum for red, green and blue, and 127 represents full transparency for alpha), and returns the index of the new color table entry, or an RGBA value in the case of a truecolor image; in either case you can then use the returned value as a parameter to drawing functions. When creating a new palette-based image, the first time you invoke this function, you are setting the background color for that image.

In the event that all gdMaxColors colors (256) have already been allocated, gdImageColorAllocate will return -1 to indicate failure. (This is not uncommon when working with existing palette-based PNG files that already use 256 colors.) Note that gdImageColorAllocateAlpha does not check for existing colors that match your request; see gdImageColorExactAlpha and gdImageColorClosestAlpha for ways to locate existing colors that approximate the color desired in situations where a new color is not available. Also see gdImageColorResolveAlpha.

... inside a function ...
gdImagePtr im;
int black;
int red;
im = gdImageCreate(100, 100);
/* Background color (first allocated) */
black = gdImageColorAllocate(im, 0, 0, 0);	
/* Allocate the color red, 50% transparent. */
red = gdImageColorAllocateAlpha(im, 255, 0, 0, 64);	
/* Draw a dashed line from the upper left corner to the lower right corner. */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorClosest(gdImagePtr im, int r, int g, int b) (FUNCTION)
gdImageColorClosest searches the colors which have been defined thus far in the image specified and returns the index of the color with RGB values closest to those of the request. (Closeness is determined by Euclidian distance, which is used to determine the distance in three-dimensional color space between colors.)

If no colors have yet been allocated in the image, gdImageColorClosest returns -1.

When applied to a truecolor image, this function always succeeds in returning the desired color.

This function is most useful as a backup method for choosing a drawing color when an image already contains gdMaxColors (256) colors and no more can be allocated. (This is not uncommon when working with existing PNG files that already use many colors.) See gdImageColorExact for a method of locating exact matches only.

... inside a function ...
gdImagePtr im;
FILE *in;
int red;
/* Let's suppose that photo.png is a scanned photograph with
	many colors. */
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* Try to allocate red directly */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* If we fail to allocate red... */
if (red == (-1)) {
	/* Find the closest color instead. */
	red = gdImageColorClosest(im, 255, 0, 0);
}
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorClosestAlpha(gdImagePtr im, int r, int g, int b, int a) (FUNCTION)
gdImageColorClosest searches the colors which have been defined thus far in the image specified and returns the index of the color with RGBA values closest to those of the request. (Closeness is determined by Euclidian distance, which is used to determine the distance in four-dimensional color/alpha space between colors.)

If no colors have yet been allocated in the image, gdImageColorClosestAlpha returns -1.

When applied to a truecolor image, this function always succeeds in returning the desired color.

This function is most useful as a backup method for choosing a drawing color when a palette-based image already contains gdMaxColors (256) colors and no more can be allocated. (This is not uncommon when working with existing palette-based PNG files that already use many colors.) See gdImageColorExactAlpha for a method of locating exact matches only.

... inside a function ...
gdImagePtr im;
FILE *in;
int red;
/* Let's suppose that photo.png is a scanned photograph with
	many colors. */
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* Try to allocate red, 50% transparent, directly */
red = gdImageColorAllocateAlpha(im, 255, 0, 0, 64);	
/* If we fail to allocate red... */
if (red == (-1)) {
	/* Find the closest color instead. */
	red = gdImageColorClosestAlpha(im, 255, 0, 0, 64);
}
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorClosestHWB(gdImagePtr im, int r, int g, int b) (FUNCTION)
gdImageColorClosestHWB searches the colors which have been defined thus far in the image specified and returns the index of the color with hue, whiteness and blackness closest to the requested color. This scheme is typically superior to the Euclidian distance scheme used by gdImageColorClosest.

If no colors have yet been allocated in the image, gdImageColorClosestHWB returns -1.

When applied to a truecolor image, this function always succeeds in returning the desired color.

This function is most useful as a backup method for choosing a drawing color when an image already contains gdMaxColors (256) colors and no more can be allocated. (This is not uncommon when working with existing PNG files that already use many colors.) See gdImageColorExact for a method of locating exact matches only.

... inside a function ...
gdImagePtr im;
FILE *in;
int red;
/* Let's suppose that photo.png is a scanned photograph with
	many colors. */
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* Try to allocate red directly */
red = gdImageColorAllocate(im, 255, 0, 0);	
/* If we fail to allocate red... */
if (red == (-1)) {
	/* Find the closest color instead. */
	red = gdImageColorClosestHWB(im, 255, 0, 0);
}
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorExact(gdImagePtr im, int r, int g, int b) (FUNCTION)
gdImageColorExact searches the colors which have been defined thus far in the image specified and returns the index of the first color with RGB values which exactly match those of the request. If no allocated color matches the request precisely, gdImageColorExact returns -1. See gdImageColorClosest for a way to find the color closest to the color requested.

When applied to a truecolor image, this function always succeeds in returning the desired color.

... inside a function ...
gdImagePtr im;
int red;
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* The image may already contain red; if it does, we'll save a slot
	in the color table by using that color. */
/* Try to allocate red directly */
red = gdImageColorExact(im, 255, 0, 0);
/* If red isn't already present... */
if (red == (-1)) {
	/* Second best: try to allocate it directly. */
	red = gdImageColorAllocate(im, 255, 0, 0);	
	/* Out of colors, so find the closest color instead. */
	red = gdImageColorClosest(im, 255, 0, 0);
}
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorResolve(gdImagePtr im, int r, int g, int b) (FUNCTION)
gdImageColorResolve searches the colors which have been defined thus far in the image specified and returns the index of the first color with RGB values which exactly match those of the request. If no allocated color matches the request precisely, then gdImageColorResolve tries to allocate the exact color. If there is no space left in the color table then gdImageColorResolve returns the closest color (as in gdImageColorClosest). This function always returns an index of a color.

When applied to a truecolor image, this function always succeeds in returning the desired color.

... inside a function ...
gdImagePtr im;
int red;
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* The image may already contain red; if it does, we'll save a slot
	in the color table by using that color. */
/* Get index of red, or color closest to red */
red = gdImageColorResolve(im, 255, 0, 0);
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorResolveAlpha(gdImagePtr im, int r, int g, int b, int a) (FUNCTION)
gdImageColorResolveAlpha searches the colors which have been defined thus far in the image specified and returns the index of the first color with RGBA values which exactly match those of the request. If no allocated color matches the request precisely, then gdImageColorResolveAlpha tries to allocate the exact color. If there is no space left in the color table then gdImageColorResolveAlpha returns the closest color (as in gdImageColorClosestAlpha). This function always returns an index of a color.

When applied to a truecolor image, this function always succeeds in returning the desired color.

... inside a function ...
gdImagePtr im;
int red;
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* The image may already contain red; if it does, we'll save a slot
	in the color table by using that color. */
/* Get index of red, 50% transparent, or the next best thing */
red = gdImageColorResolveAlpha(im, 255, 0, 0, 64);
/* Draw a dashed line from the upper left corner to the lower right corner */
gdImageDashedLine(im, 0, 0, 99, 99, red);
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
int gdImageColorsTotal(gdImagePtr im) (MACRO)
gdImageColorsTotal is a macro which returns the number of colors currently allocated in a palette image. For truecolor images, the result of this call is undefined and should not be used.
int gdImageColorRed(gdImagePtr im, int c) (MACRO)
gdImageColorRed is a macro which returns the red portion of the specified color in the image. This macro works for both palette and truecolor images.
int gdImageColorGreen(gdImagePtr im, int c) (MACRO)
gdImageColorGreen is a macro which returns the green portion of the specified color in the image. This macro works for both palette and truecolor images.
int gdImageColorBlue(gdImagePtr im, int c) (MACRO)
gdImageColorBlue is a macro which returns the green portion of the specified color in the image. This macro works for both palette and truecolor images.
int gdImageGetInterlaced(gdImagePtr im) (MACRO)
gdImageGetInterlaced is a macro which returns true (1) if the image is interlaced, false (0) if not. Use this macro to obtain this information; do not access the structure directly. See gdImageInterlace for a means of interlacing images.
int gdImageGetTransparent(gdImagePtr im) (MACRO)
gdImageGetTransparent is a macro which returns the current transparent color index in the image. If there is no transparent color, gdImageGetTransparent returns -1. Use this macro to obtain this information; do not access the structure directly.
void gdImageColorDeallocate(gdImagePtr im, int color) (FUNCTION)
gdImageColorDeallocate marks the specified color as being available for reuse. It does not attempt to determine whether the color index is still in use in the image. After a call to this function, the next call to gdImageColorAllocate for the same image will set new RGB values for that color index, changing the color of any pixels which have that index as a result. If multiple calls to gdImageColorDeallocate are made consecutively, the lowest-numbered index among them will be reused by the next gdImageColorAllocate call.
... inside a function ...
gdImagePtr im;
int red, blue;
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* Look for red in the color table. */
red = gdImageColorExact(im, 255, 0, 0);
/* If red is present... */
if (red != (-1)) {
	/* Deallocate it. */
	gdImageColorDeallocate(im, red);
	/* Allocate blue, reusing slot in table.
		Existing red pixels will change color. */
	blue = gdImageColorAllocate(im, 0, 0, 255);
}
/* ... Do something with the image, such as saving it to a file... */
/* Destroy it */
gdImageDestroy(im);
void gdImageColorTransparent(gdImagePtr im, int color) (FUNCTION)
gdImageColorTransparent sets the transparent color index for the specified image to the specified index. To indicate that there should be no transparent color, invoke gdImageColorTransparent with a color index of -1. Note that JPEG images do not support transparency, so this setting has no effect when writing JPEG images.

The color index used should be an index allocated by gdImageColorAllocate, whether explicitly invoked by your code or implicitly invoked by loading an image. In order to ensure that your image has a reasonable appearance when viewed by users who do not have transparent background capabilities (or when you are writing a JPEG-format file, which does not support transparency), be sure to give reasonable RGB values to the color you allocate for use as a transparent color, even though it will be transparent on systems that support PNG transparency.

... inside a function ...
gdImagePtr im;
int black;
FILE *in, *out;
in = fopen("photo.png", "rb");
im = gdImageCreateFromPng(in);
fclose(in);
/* Look for black in the color table and make it transparent. */
black = gdImageColorExact(im, 0, 0, 0);
/* If black is present... */
if (black != (-1)) {
	/* Make it transparent */
	gdImageColorTransparent(im, black);
}
/* Save the newly-transparent image back to the file */
out = fopen("photo.png", "wb");
gdImagePng(im, out);
fclose(out);
/* Destroy it */
gdImageDestroy(im);
void gdImageTrueColor(int red, int green, int blue) (MACRO)
gdImageTrueColor returns an RGBA color value for use when drawing on a truecolor image. Red, green, and blue are all in the range between 0 (off) and 255 (maximum). This macro should not be used with palette-based images. If you need to write code which is compatible with both palette-based and truecolor images, use gdImageColorResolve.
void gdImageTrueColorAlpha(int red, int green, int blue, int alpha) (MACRO)
gdImageTrueColorAlpha returns an RGBA color value for use when drawing on a truecolor image with alpha channel transparency. Red, green, and blue are all in the range between 0 (off) and 255 (maximum). Alpha is in the range between 0 (opaque) and 127 (fully transparent). This macro should not be used with palette-based images. If you need to write code which is compatible with both palette-based and truecolor images, use gdImageColorResolveAlpha.

Copying and resizing functions

void gdImageCopy(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h) (FUNCTION)
gdImageCopy is used to copy a rectangular portion of one image to another image. (For a way of stretching or shrinking the image in the process, see gdImageCopyResized.)

The dst argument is the destination image to which the region will be copied. The src argument is the source image from which the region is copied. The dstX and dstY arguments specify the point in the destination image to which the region will be copied. The srcX and srcY arguments specify the upper left corner of the region in the source image. The w and h arguments specify the width and height of the region.

When you copy a region from one location in an image to another location in the same image, gdImageCopy will perform as expected unless the regions overlap, in which case the result is unpredictable.

Important note on copying between images: since different images do not necessarily have the same color tables, pixels are not simply set to the same color index values to copy them. gdImageCopy will attempt to find an identical RGB value in the destination image for each pixel in the copied portion of the source image by invoking gdImageColorExact. If such a value is not found, gdImageCopy will attempt to allocate colors as needed using gdImageColorAllocate. If both of these methods fail, gdImageCopy will invoke gdImageColorClosest to find the color in the destination image which most closely approximates the color of the pixel being copied.

... Inside a function ...
gdImagePtr im_in;
gdImagePtr im_out;
int x, y;
FILE *in;
FILE *out;
/* Load a small png to tile the larger one with */
in = fopen("small.png", "rb");
im_in = gdImageCreateFromPng(in);
fclose(in);
/* Make the output image four times as large on both axes */
im_out = gdImageCreate(im_in->sx * 4, im_in->sy * 4);
/* Now tile the larger image using the smaller one */
for (y = 0; (y < 4); y++) {
	for (x = 0; (x < 4); x++) {
		gdImageCopy(im_out, im_in,
			x * im_in->sx, y * im_in->sy,
			0, 0,
			im_in->sx, im_in->sy);
	}
}
out = fopen("tiled.png", "wb");
gdImagePng(im_out, out);
fclose(out);
gdImageDestroy(im_in);
gdImageDestroy(im_out);
void gdImageCopyResized(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int destW, int destH, int srcW, int srcH) (FUNCTION)
gdImageCopyResized is used to copy a rectangular portion of one image to another image. The X and Y dimensions of the original region and the destination region can vary, resulting in stretching or shrinking of the region as appropriate. (For a simpler version of this function which does not deal with resizing, see gdImageCopy.)

The dst argument is the destination image to which the region will be copied. The src argument is the source image from which the region is copied. The dstX and dstY arguments specify the point in the destination image to which the region will be copied. The srcX and srcY arguments specify the upper left corner of the region in the source image. The dstW and dstH arguments specify the width and height of the destination region. The srcW and srcH arguments specify the width and height of the source region and can differ from the destination size, allowing a region to be scaled during the copying process.

When you copy a region from one location in an image to another location in the same image, gdImageCopy will perform as expected unless the regions overlap, in which case the result is unpredictable. If this presents a problem, create a scratch image in which to keep intermediate results.

Important note on copying between images: since images do not necessarily have the same color tables, pixels are not simply set to the same color index values to copy them. gdImageCopy will attempt to find an identical RGB value in the destination image for each pixel in the copied portion of the source image by invoking gdImageColorExact. If such a value is not found, gdImageCopy will attempt to allocate colors as needed using gdImageColorAllocate. If both of these methods fail, gdImageCopy will invoke gdImageColorClosest to find the color in the destination image which most closely approximates the color of the pixel being copied.

... Inside a function ...
gdImagePtr im_in;
gdImagePtr im_out;
int x, y;
FILE *in;
FILE *out;
/* Load a small png to expand in the larger one */
in = fopen("small.png", "rb");
im_in = gdImageCreateFromPng(in);
fclose(in);
/* Make the output image four times as large on both axes */
im_out = gdImageCreate(im_in->sx * 4, im_in->sy * 4);
/* Now copy the smaller image, but four times larger */
gdImageCopyResized(im_out, im_in, 0, 0, 0, 0,
	im_out->sx, im_out->sy,
	im_in->sx, im_in->sy);	
out = fopen("large.png", "wb");
gdImagePng(im_out, out);
fclose(out);
gdImageDestroy(im_in);
gdImageDestroy(im_out);
void gdImageCopyResampled(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int destW, int destH, int srcW, int srcH) (FUNCTION)
gdImageCopyResampled is used to copy a rectangular portion of one image to another image, smoothly interpolating pixel values so that, in particular, reducing the size of an image still retains a great deal of clarity. The X and Y dimensions of the original region and the destination region can vary, resulting in stretching or shrinking of the region as appropriate. (For a simpler version of this function which does not deal with resizing, see gdImageCopy. For a version which does not interpolate pixel values, see gdImageCopyResized.

Pixel values are only interpolated if the destination image is a truecolor image. Otherwise, gdImageCopyResized is automatically invoked.

The dst argument is the destination image to which the region will be copied. The src argument is the source image from which the region is copied. The dstX and dstY arguments specify the point in the destination image to which the region will be copied. The srcX and srcY arguments specify the upper left corner of the region in the source image. The dstW and dstH arguments specify the width and height of the destination region. The srcW and srcH arguments specify the width and height of the source region and can differ from the destination size, allowing a region to be scaled during the copying process.

When you copy a region from one location in an image to another location in the same image, gdImageCopy will perform as expected unless the regions overlap, in which case the result is unpredictable. If this presents a problem, create a scratch image in which to keep intermediate results.

Important note on copying between images: since images do not necessarily have the same color tables, pixels are not simply set to the same color index values to copy them. If the destination image is a palette image, gd will use the gdImageColorResolve function to determine the best color available.

... Inside a function ...
gdImagePtr im_in;
gdImagePtr im_out;
int x, y;
FILE *in;
FILE *out;
/* Load a large png to shrink in the smaller one */
in = fopen("large.png", "rb");
im_in = gdImageCreateFromPng(in);
fclose(in);
/* Make the output image four times as small on both axes. Use
	a true color image so that we can interpolate colors. */
im_out = gdImageCreateTrueColor(im_in->sx / 4, im_in->sy / 4);
/* Now copy the large image, but four times smaller */
gdImageCopyResampled(im_out, im_in, 0, 0, 0, 0,
	im_out->sx, im_out->sy,
	im_in->sx, im_in->sy);	
out = fopen("large.png", "wb");
gdImagePng(im_out, out);
fclose(out);
gdImageDestroy(im_in);
gdImageDestroy(im_out);
void gdImageCopyMerge(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h, int pct) (FUNCTION)
gdImageCopyMerge is almost identical to gdImageCopy, except that it 'merges' the two images by an amount specified in the last parameter. If the last parameter is 100, then it will function identically to gdImageCopy - the source image replaces the pixels in the destination.

If, however, the pct parameter is less than 100, then the two images are merged. With pct = 0, no action is taken.

This feature is most useful to 'highlight' sections of an image by merging a solid color with pct = 50:

... Inside a function ...
gdImageCopyMerge(im_out, im_in, 100, 200, 0, 0, 30, 50, 50);
void gdImageCopyMergeGray(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h, int pct) (FUNCTION)
gdImageCopyMergeGray is almost identical to gdImageCopyMerge, except that when merging images it preserves the hue of the source by converting the destination pixels to grey scale before the copy operation.
... Inside a function ...
gdImageCopyMergeGray(im_out, im_in, 100, 200, 0, 0, 30, 50, 50);
void gdImagePaletteCopy(gdImagePtr dst, gdImagePtr src) (FUNCTION)
Copies a palette from one image to another, attempting to match the colors in the target image to the colors in the source palette.

Miscellaneous Functions

int gdImageCompare(gdImagePtr im1, gdImagePtr im2) (FUNCTION)
gdImageCompare returns a bitmap indicating if the two images are different. The members of the bitmap are defined in gd.h, but the most important is GD_CMP_IMAGE, which indicated that the images will actually appear different when displayed. Other, less important, differences relate to pallette entries. Any difference in the transparent colour is assumed to make images display differently, even if the transparent colour is not used.
... Inside a function ...
cmpMask = gdImageCompare(im1, im2);
gdImageInterlace(gdImagePtr im, int interlace) (FUNCTION)
gdImageInterlace is used to determine whether an image should be stored in a linear fashion, in which lines will appear on the display from first to last, or in an interlaced fashion, in which the image will "fade in" over several passes. By default, images are not interlaced. (When writing JPEG images, interlacing implies generating progressive JPEG files, which are represented as a series of scans of increasing quality. Noninterlaced gd images result in regular [sequential] JPEG data streams.)

A nonzero value for the interlace argument turns on interlace; a zero value turns it off. Note that interlace has no effect on other functions, and has no meaning unless you save the image in PNG or JPEG format; the gd and xbm formats do not support interlace.

When a PNG is loaded with gdImageCreateFromPng or a JPEG is loaded with gdImageCreateFromJpeg, interlace will be set according to the setting in the PNG or JPEG file.

Note that many PNG and JPEG viewers and web browsers do not support interlace or the incremental display of progressive JPEGs. However, the interlaced PNG or progressive JPEG should still display; it will simply appear all at once, just as other images do.

gdImagePtr im;
FILE *out;
/* ... Create or load the image... */

/* Now turn on interlace */
gdImageInterlace(im, 1);
/* And open an output file */
out = fopen("test.png", "wb");
/* And save the image  -- could also use gdImageJpeg */
gdImagePng(im, out);
fclose(out);
gdImageDestroy(im);
gdFree(void *ptr) (FUNCTION)
gdFree provides a reliable way to free memory allocated by functions such as gdImagePngPtr which return blocks of memory. Use of this function guarantees that the version of free() that is ultimately called will be intended for use with the version of malloc() that originally allocated the block.

Constants

gdBrushed (CONSTANT)
Used in place of a color when invoking a line-drawing function such as gdImageLine or gdImageRectangle. When gdBrushed is used as the color, the brush image set with gdImageSetBrush is drawn in place of each pixel of the line (the brush is usually larger than one pixel, creating the effect of a wide paintbrush). See also gdStyledBrushed for a way to draw broken lines with a series of distinct copies of an image.
gdMaxColors(CONSTANT)
The constant 256. This is the maximum number of colors in a PNG file according to the PNG standard, and is also the maximum number of colors in a gd image.
gdStyled (CONSTANT)
Used in place of a color when invoking a line-drawing function such as gdImageLine or gdImageRectangle. When gdStyled is used as the color, the colors of the pixels are drawn successively from the style that has been set with gdImageSetStyle. If the color of a pixel is equal to gdTransparent, that pixel is not altered. (This mechanism is completely unrelated to the "transparent color" of the image itself; see gdImageColorTransparent gdImageColorTransparent for that mechanism.) See also gdStyledBrushed.
gdStyledBrushed (CONSTANT)
Used in place of a color when invoking a line-drawing function such as gdImageLine or gdImageRectangle. When gdStyledBrushed is used as the color, the brush image set with gdImageSetBrush is drawn at each pixel of the line, providing that the style set with gdImageSetStyle contains a nonzero value (OR gdTransparent, which does not equal zero but is supported for consistency) for the current pixel. (Pixels are drawn successively from the style as the line is drawn, returning to the beginning when the available pixels in the style are exhausted.) Note that this differs from the behavior of gdStyled, in which the values in the style are used as actual pixel colors, except for gdTransparent.
gdDashSize (CONSTANT)
The length of a dash in a dashed line. Defined to be 4 for backwards compatibility with programs that use gdImageDashedLine. New programs should use gdImageSetStyle and call the standard gdImageLine function with the special "color" gdStyled or gdStyledBrushed.
gdTiled (CONSTANT)
Used in place of a normal color in gdImageFilledRectangle, gdImageFilledPolygon, gdImageFill, and gdImageFillToBorder. gdTiled selects a pixel from the tile image set with gdImageSetTile in such a way as to ensure that the filled area will be tiled with copies of the tile image. See the discussions of gdImageFill and gdImageFillToBorder for special restrictions regarding those functions.
gdTransparent (CONSTANT)
Used in place of a normal color in a style to be set with gdImageSetStyle. gdTransparent is not the transparent color index of the image; for that functionality please see gdImageColorTransparent.

About the additional .gd image file format

In addition to reading and writing the PNG and JPEG formats and reading the X Bitmap format, gd has the capability to read and write its own ".gd" format. This format is not intended for general purpose use and should never be used to distribute images. It is not a compressed format. Its purpose is solely to allow very fast loading of images your program needs often in order to build other images for output. If you are experiencing performance problems when loading large, fixed PNG images your program needs to produce its output images, you may wish to examine the functions gdImageCreateFromGd and gdImageGd, which read and write .gd format images.

The program "pngtogd.c" is provided as a simple way of converting .png files to .gd format. I emphasize again that you will not need to use this format unless you have a need for high-speed loading of a few frequently-used images in your program.

About the .gd2 image file format

In addition to reading and writing the PNG format and reading the X Bitmap format, gd has the capability to read and write its own ".gd2" format. This format is not intended for general purpose use and should never be used to distribute images. It is a compressed format allowing pseudo-random access to large image files. Its purpose is solely to allow very fast loading of parts of images If you are experiencing performance problems when loading large, fixed PNG or JPEG images your program needs to produce its output images, you may wish to examine the functions gdImageCreateFromGd2, gdImageCreateFromGd2Part and gdImageGd2, which read and write .gd2 format images.

The program "pngtogd2.c" is provided as a simple way of converting .png files to .gd2 format.

About the gdIOCtx structure

Version 1.5 of GD added a new style of I/O based on an IOCtx structure (the most up-to-date version can be found in gd_io.h):
typedef struct gdIOCtx {
        int     (*getC)(struct gdIOCtx*);
        int     (*getBuf)(struct gdIOCtx*, void*, int);

        void     (*putC)(struct gdIOCtx*, int);
        int     (*putBuf)(struct gdIOCtx*, const void*, int);

        int     (*seek)(struct gdIOCtx*, const int);
        long    (*tell)(struct gdIOCtx*);

        void    (*free)(struct gdIOCtx*);

} gdIOCtx;
Most functions that accepted files in previous versions now also have a counterpart that accepts an I/O context. These functions have a 'Ctx' suffix.

The Ctx routines use the function pointers in the I/O context pointed to by gdIOCtx to perform all I/O. Examples of how to implement an I/O context can be found in io_file.c (which provides a wrapper for file routines), and io_dp.c (which implements in-memory storage).

It is not necessary to implement all functions in an I/O context if you know that it will only be used in limited cirsumstances. At the time of writing (Version 1.6.1, July 1999), the known requirements are:

All Must have 'free',
Anything that reads from the contextMust have 'getC' and 'getBuf',
Anything that writes to the contextMust have 'putC' and 'putBuf'.
If gdCreateFromGd2Part is calledMust also have 'seek' and 'tell'.
If gdImageGd2 is calledMust also have 'seek' and 'tell'.

Please tell us you're using gd!

When you contact us and let us know you are using gd, you help us justify the time spent in maintaining and improving it. So please let us know. If the results are publicly visible on the web, a URL is a wonderful thing to receive, but if it's not a publicly visible project, a simple note is just as welcome.

If you have problems

If you have any difficulties with gd, feel free to contact the author, Thomas Boutell. Problems relating to the gd2 format should be addressed to Philip Warner.

Be sure to read this manual carefully first.

Alphabetical quick index

gdBrushed | gdDashSize | gdFont | gdFontPtr | gdFree | gdImage | gdImageAlphaBlending | gdImageArc | gdImageBlue | gdImageBoundsSafe | gdImageChar | gdImageCharUp | gdImageColorAllocate | gdImageColorAllocateAlpha | gdImageColorClosest | gdImageColorClosestAlpha | gdImageColorDeallocate | gdImageColorExact | gdImageColorExactAlpha | gdImageColorResolve | gdImageColorResolveAlpha | gdImageColorTransparent | gdImageCopy | gdImageCopyMerge | gdImageMergeGray | gdImageCopyResized | gdImageCopyResampled | gdImageCreate | gdImageCreatePalette | gdImageCreateTrueColor | gdImageCreateFromGd | gdImageCreateFromGd2 | gdImageCreateFromGd2Part | gdImageCreateFromJpeg | gdImageCreateFromPng | gdImageCreateFromPngSource | gdImageCreateFromXbm | gdImageCreateFromXpm | gdImageDashedLine | gdImageDestroy | gdImageFill | gdImageFilledArc | gdImageFilledEllipse | gdImageFillToBorder | gdImageFilledRectangle | gdImageGd | gdImageGd2 | gdImageGetInterlaced | gdImageGetPixel | gdImageGetTransparent | gdImageGreen | gdImageInterlace | gdImageJpeg | gdImageLine | gdImageFilledPolygon | gdImagePaletteCopy | gdImagePng | gdImagePngToSink | gdImagePolygon | gdImagePtr | gdImageWBMP | gdImageRectangle | gdImageRed | gdImageSetBrush | gdImageSetPixel | gdImageSetStyle | gdImageSetTile | gdImageString | gdImageString16 | gdImageStringFT | gdImageStringTTF | gdImageStringUp | gdImageStringUp16 | gdImageWBMP | gdMaxColors | gdPoint | gdStyled | gdStyledBrushed | gdTiled | gdTransparent

Boutell.Com, Inc. libwmf-0.2.13/src/extra/gd/install-item000077500000000000000000000000411441723000300176760ustar00rootroot00000000000000#!/bin/sh cp $2 $3 chmod $1 $3 libwmf-0.2.13/src/extra/gd/jisx0208.h000066400000000000000000002133701441723000300170210ustar00rootroot00000000000000#ifndef JISX0208_H #define JISX0208_H #pragma GCC visibility push(hidden) /* This file was derived from "src/VF_Ftype.c" in VFlib2-2.24.2 by Dr. Kakugawa */ /* JIS -> Unicode mapping table */ static unsigned short UnicodeTbl[][94] = { { /* category 01 */ 0x0000, 0x3001, 0x3002, 0xFF0C, 0xFF0E, 0x30FB, 0xFF1A, 0xFF1B, 0xFF1F, 0xFF01, 0x309B, 0x309C, 0x00B4, 0xFF40, 0x00A8, 0xFF3E, 0xFFE3, 0xFF3F, 0x30FD, 0x30FE, 0x309D, 0x309E, 0x3003, 0x4EDD, 0x3005, 0x3006, 0x3007, 0x30FC, 0x2015, 0x2010, 0xFF0F, 0xFF3C, 0xFF5E, 0x2225, 0xFF5C, 0x2026, 0x2025, 0x2018, 0x2019, 0x201C, 0x201D, 0xFF08, 0xFF09, 0x3014, 0x3015, 0xFF3B, 0xFF3D, 0xFF5B, 0xFF5D, 0x3008, 0x3009, 0x300A, 0x300B, 0x300C, 0x300D, 0x300E, 0x300F, 0x3010, 0x3011, 0xFF0B, 0xFF0D, 0x00B1, 0x00D7, 0x00F7, 0xFF1D, 0x2260, 0xFF1C, 0xFF1E, 0x2266, 0x2267, 0x221E, 0x2234, 0x2642, 0x2640, 0x00B0, 0x2032, 0x2033, 0x2103, 0xFFE5, 0xFF04, 0xFFE0, 0xFFE1, 0xFF05, 0xFF03, 0xFF06, 0xFF0A, 0xFF20, 0x00A7, 0x2606, 0x2605, 0x25CB, 0x25CF, 0x25CE, 0x25C7}, { /* category 02 */ 0x25C6, 0x25A1, 0x25A0, 0x25B3, 0x25B2, 0x25BD, 0x25BC, 0x203B, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2208, 0x220B, 0x2286, 0x2287, 0x2282, 0x2283, 0x222A, 0x2229, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2227, 0x2228, 0xFFE2, 0x21D2, 0x21D4, 0x2200, 0x2203, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2220, 0x22A5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x226A, 0x226B, 0x221A, 0x223D, 0x221D, 0x2235, 0x222B, 0x222C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x212B, 0x2030, 0x266F, 0x266D, 0x266A, 0x2020, 0x2021, /**/ 0x00B6, 0x0000, 0x0000, 0x0000, 0x0000, 0x25EF}, { /* category 03 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF10, 0xFF11, 0xFF12, 0xFF13, 0xFF14, 0xFF15, 0xFF16, 0xFF17, 0xFF18, 0xFF19, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, 0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, 0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37, 0xFF38, 0xFF39, 0xFF3A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF41, 0xFF42, 0xFF43, 0xFF44, 0xFF45, 0xFF46, 0xFF47, 0xFF48, 0xFF49, 0xFF4A, 0xFF4B, 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F, 0xFF50, 0xFF51, 0xFF52, 0xFF53, 0xFF54, 0xFF55, 0xFF56, 0xFF57, 0xFF58, 0xFF59, 0xFF5A, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 04 */ 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304A, 0x304B, 0x304C, 0x304D, 0x304E, 0x304F, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305A, 0x305B, 0x305C, 0x305D, 0x305E, 0x305F, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306A, 0x306B, 0x306C, 0x306D, 0x306E, 0x306F, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307A, 0x307B, 0x307C, 0x307D, 0x307E, 0x307F, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308A, 0x308B, 0x308C, 0x308D, 0x308E, 0x308F, 0x3090, 0x3091, 0x3092, 0x3093, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 05 */ 0x30A1, 0x30A2, 0x30A3, 0x30A4, 0x30A5, 0x30A6, 0x30A7, 0x30A8, 0x30A9, 0x30AA, 0x30AB, 0x30AC, 0x30AD, 0x30AE, 0x30AF, 0x30B0, 0x30B1, 0x30B2, 0x30B3, 0x30B4, 0x30B5, 0x30B6, 0x30B7, 0x30B8, 0x30B9, 0x30BA, 0x30BB, 0x30BC, 0x30BD, 0x30BE, 0x30BF, 0x30C0, 0x30C1, 0x30C2, 0x30C3, 0x30C4, 0x30C5, 0x30C6, 0x30C7, 0x30C8, 0x30C9, 0x30CA, 0x30CB, 0x30CC, 0x30CD, 0x30CE, 0x30CF, 0x30D0, 0x30D1, 0x30D2, 0x30D3, 0x30D4, 0x30D5, 0x30D6, 0x30D7, 0x30D8, 0x30D9, 0x30DA, 0x30DB, 0x30DC, 0x30DD, 0x30DE, 0x30DF, 0x30E0, 0x30E1, 0x30E2, 0x30E3, 0x30E4, 0x30E5, 0x30E6, 0x30E7, 0x30E8, 0x30E9, 0x30EA, 0x30EB, 0x30EC, 0x30ED, 0x30EE, 0x30EF, 0x30F0, 0x30F1, 0x30F2, 0x30F3, 0x30F4, 0x30F5, 0x30F6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 06 */ 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 07 */ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 08 */ 0x2500, 0x2502, 0x250C, 0x2510, 0x2518, 0x2514, 0x251C, 0x252C, 0x2524, 0x2534, 0x253C, 0x2501, 0x2503, 0x250F, 0x2513, 0x251B, 0x2517, 0x2523, 0x2533, 0x252B, 0x253B, 0x254B, 0x2520, 0x252F, 0x2528, 0x2537, 0x253F, 0x251D, 0x2530, 0x2525, 0x2538, 0x2542, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 09 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 11 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 12 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 13 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 14 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 15 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 16 */ 0x4E9C, 0x5516, 0x5A03, 0x963F, 0x54C0, 0x611B, 0x6328, 0x59F6, 0x9022, 0x8475, 0x831C, 0x7A50, 0x60AA, 0x63E1, 0x6E25, 0x65ED, 0x8466, 0x82A6, 0x9BF5, 0x6893, 0x5727, 0x65A1, 0x6271, 0x5B9B, 0x59D0, 0x867B, 0x98F4, 0x7D62, 0x7DBE, 0x9B8E, 0x6216, 0x7C9F, 0x88B7, 0x5B89, 0x5EB5, 0x6309, 0x6697, 0x6848, 0x95C7, 0x978D, 0x674F, 0x4EE5, 0x4F0A, 0x4F4D, 0x4F9D, 0x5049, 0x56F2, 0x5937, 0x59D4, 0x5A01, 0x5C09, 0x60DF, 0x610F, 0x6170, 0x6613, 0x6905, 0x70BA, 0x754F, 0x7570, 0x79FB, 0x7DAD, 0x7DEF, 0x80C3, 0x840E, 0x8863, 0x8B02, 0x9055, 0x907A, 0x533B, 0x4E95, 0x4EA5, 0x57DF, 0x80B2, 0x90C1, 0x78EF, 0x4E00, 0x58F1, 0x6EA2, 0x9038, 0x7A32, 0x8328, 0x828B, 0x9C2F, 0x5141, 0x5370, 0x54BD, 0x54E1, 0x56E0, 0x59FB, 0x5F15, 0x98F2, 0x6DEB, 0x80E4, 0x852D}, { /* category 17 */ 0x9662, 0x9670, 0x96A0, 0x97FB, 0x540B, 0x53F3, 0x5B87, 0x70CF, 0x7FBD, 0x8FC2, 0x96E8, 0x536F, 0x9D5C, 0x7ABA, 0x4E11, 0x7893, 0x81FC, 0x6E26, 0x5618, 0x5504, 0x6B1D, 0x851A, 0x9C3B, 0x59E5, 0x53A9, 0x6D66, 0x74DC, 0x958F, 0x5642, 0x4E91, 0x904B, 0x96F2, 0x834F, 0x990C, 0x53E1, 0x55B6, 0x5B30, 0x5F71, 0x6620, 0x66F3, 0x6804, 0x6C38, 0x6CF3, 0x6D29, 0x745B, 0x76C8, 0x7A4E, 0x9834, 0x82F1, 0x885B, 0x8A60, 0x92ED, 0x6DB2, 0x75AB, 0x76CA, 0x99C5, 0x60A6, 0x8B01, 0x8D8A, 0x95B2, 0x698E, 0x53AD, 0x5186, 0x5712, 0x5830, 0x5944, 0x5BB4, 0x5EF6, 0x6028, 0x63A9, 0x63F4, 0x6CBF, 0x6F14, 0x708E, 0x7114, 0x7159, 0x71D5, 0x733F, 0x7E01, 0x8276, 0x82D1, 0x8597, 0x9060, 0x925B, 0x9D1B, 0x5869, 0x65BC, 0x6C5A, 0x7525, 0x51F9, 0x592E, 0x5965, 0x5F80, 0x5FDC}, { /* category 18 */ 0x62BC, 0x65FA, 0x6A2A, 0x6B27, 0x6BB4, 0x738B, 0x7FC1, 0x8956, 0x9D2C, 0x9D0E, 0x9EC4, 0x5CA1, 0x6C96, 0x837B, 0x5104, 0x5C4B, 0x61B6, 0x81C6, 0x6876, 0x7261, 0x4E59, 0x4FFA, 0x5378, 0x6069, 0x6E29, 0x7A4F, 0x97F3, 0x4E0B, 0x5316, 0x4EEE, 0x4F55, 0x4F3D, 0x4FA1, 0x4F73, 0x52A0, 0x53EF, 0x5609, 0x590F, 0x5AC1, 0x5BB6, 0x5BE1, 0x79D1, 0x6687, 0x679C, 0x67B6, 0x6B4C, 0x6CB3, 0x706B, 0x73C2, 0x798D, 0x79BE, 0x7A3C, 0x7B87, 0x82B1, 0x82DB, 0x8304, 0x8377, 0x83EF, 0x83D3, 0x8766, 0x8AB2, 0x5629, 0x8CA8, 0x8FE6, 0x904E, 0x971E, 0x868A, 0x4FC4, 0x5CE8, 0x6211, 0x7259, 0x753B, 0x81E5, 0x82BD, 0x86FE, 0x8CC0, 0x96C5, 0x9913, 0x99D5, 0x4ECB, 0x4F1A, 0x89E3, 0x56DE, 0x584A, 0x58CA, 0x5EFB, 0x5FEB, 0x602A, 0x6094, 0x6062, 0x61D0, 0x6212, 0x62D0, 0x6539}, { /* category 19 */ 0x9B41, 0x6666, 0x68B0, 0x6D77, 0x7070, 0x754C, 0x7686, 0x7D75, 0x82A5, 0x87F9, 0x958B, 0x968E, 0x8C9D, 0x51F1, 0x52BE, 0x5916, 0x54B3, 0x5BB3, 0x5D16, 0x6168, 0x6982, 0x6DAF, 0x788D, 0x84CB, 0x8857, 0x8A72, 0x93A7, 0x9AB8, 0x6D6C, 0x99A8, 0x86D9, 0x57A3, 0x67FF, 0x86CE, 0x920E, 0x5283, 0x5687, 0x5404, 0x5ED3, 0x62E1, 0x64B9, 0x683C, 0x6838, 0x6BBB, 0x7372, 0x78BA, 0x7A6B, 0x899A, 0x89D2, 0x8D6B, 0x8F03, 0x90ED, 0x95A3, 0x9694, 0x9769, 0x5B66, 0x5CB3, 0x697D, 0x984D, 0x984E, 0x639B, 0x7B20, 0x6A2B, 0x6A7F, 0x68B6, 0x9C0D, 0x6F5F, 0x5272, 0x559D, 0x6070, 0x62EC, 0x6D3B, 0x6E07, 0x6ED1, 0x845B, 0x8910, 0x8F44, 0x4E14, 0x9C39, 0x53F6, 0x691B, 0x6A3A, 0x9784, 0x682A, 0x515C, 0x7AC3, 0x84B2, 0x91DC, 0x938C, 0x565B, 0x9D28, 0x6822, 0x8305, 0x8431}, { /* category 20 */ 0x7CA5, 0x5208, 0x82C5, 0x74E6, 0x4E7E, 0x4F83, 0x51A0, 0x5BD2, 0x520A, 0x52D8, 0x52E7, 0x5DFB, 0x559A, 0x582A, 0x59E6, 0x5B8C, 0x5B98, 0x5BDB, 0x5E72, 0x5E79, 0x60A3, 0x611F, 0x6163, 0x61BE, 0x63DB, 0x6562, 0x67D1, 0x6853, 0x68FA, 0x6B3E, 0x6B53, 0x6C57, 0x6F22, 0x6F97, 0x6F45, 0x74B0, 0x7518, 0x76E3, 0x770B, 0x7AFF, 0x7BA1, 0x7C21, 0x7DE9, 0x7F36, 0x7FF0, 0x809D, 0x8266, 0x839E, 0x89B3, 0x8ACC, 0x8CAB, 0x9084, 0x9451, 0x9593, 0x9591, 0x95A2, 0x9665, 0x97D3, 0x9928, 0x8218, 0x4E38, 0x542B, 0x5CB8, 0x5DCC, 0x73A9, 0x764C, 0x773C, 0x5CA9, 0x7FEB, 0x8D0B, 0x96C1, 0x9811, 0x9854, 0x9858, 0x4F01, 0x4F0E, 0x5371, 0x559C, 0x5668, 0x57FA, 0x5947, 0x5B09, 0x5BC4, 0x5C90, 0x5E0C, 0x5E7E, 0x5FCC, 0x63EE, 0x673A, 0x65D7, 0x65E2, 0x671F, 0x68CB, 0x68C4}, { /* category 21 */ 0x6A5F, 0x5E30, 0x6BC5, 0x6C17, 0x6C7D, 0x757F, 0x7948, 0x5B63, 0x7A00, 0x7D00, 0x5FBD, 0x898F, 0x8A18, 0x8CB4, 0x8D77, 0x8ECC, 0x8F1D, 0x98E2, 0x9A0E, 0x9B3C, 0x4E80, 0x507D, 0x5100, 0x5993, 0x5B9C, 0x622F, 0x6280, 0x64EC, 0x6B3A, 0x72A0, 0x7591, 0x7947, 0x7FA9, 0x87FB, 0x8ABC, 0x8B70, 0x63AC, 0x83CA, 0x97A0, 0x5409, 0x5403, 0x55AB, 0x6854, 0x6A58, 0x8A70, 0x7827, 0x6775, 0x9ECD, 0x5374, 0x5BA2, 0x811A, 0x8650, 0x9006, 0x4E18, 0x4E45, 0x4EC7, 0x4F11, 0x53CA, 0x5438, 0x5BAE, 0x5F13, 0x6025, 0x6551, 0x673D, 0x6C42, 0x6C72, 0x6CE3, 0x7078, 0x7403, 0x7A76, 0x7AAE, 0x7B08, 0x7D1A, 0x7CFE, 0x7D66, 0x65E7, 0x725B, 0x53BB, 0x5C45, 0x5DE8, 0x62D2, 0x62E0, 0x6319, 0x6E20, 0x865A, 0x8A31, 0x8DDD, 0x92F8, 0x6F01, 0x79A6, 0x9B5A, 0x4EA8, 0x4EAB, 0x4EAC}, { /* category 22 */ 0x4F9B, 0x4FA0, 0x50D1, 0x5147, 0x7AF6, 0x5171, 0x51F6, 0x5354, 0x5321, 0x537F, 0x53EB, 0x55AC, 0x5883, 0x5CE1, 0x5F37, 0x5F4A, 0x602F, 0x6050, 0x606D, 0x631F, 0x6559, 0x6A4B, 0x6CC1, 0x72C2, 0x72ED, 0x77EF, 0x80F8, 0x8105, 0x8208, 0x854E, 0x90F7, 0x93E1, 0x97FF, 0x9957, 0x9A5A, 0x4EF0, 0x51DD, 0x5C2D, 0x6681, 0x696D, 0x5C40, 0x66F2, 0x6975, 0x7389, 0x6850, 0x7C81, 0x50C5, 0x52E4, 0x5747, 0x5DFE, 0x9326, 0x65A4, 0x6B23, 0x6B3D, 0x7434, 0x7981, 0x79BD, 0x7B4B, 0x7DCA, 0x82B9, 0x83CC, 0x887F, 0x895F, 0x8B39, 0x8FD1, 0x91D1, 0x541F, 0x9280, 0x4E5D, 0x5036, 0x53E5, 0x533A, 0x72D7, 0x7396, 0x77E9, 0x82E6, 0x8EAF, 0x99C6, 0x99C8, 0x99D2, 0x5177, 0x611A, 0x865E, 0x55B0, 0x7A7A, 0x5076, 0x5BD3, 0x9047, 0x9685, 0x4E32, 0x6ADB, 0x91E7, 0x5C51, 0x5C48}, { /* category 23 */ 0x6398, 0x7A9F, 0x6C93, 0x9774, 0x8F61, 0x7AAA, 0x718A, 0x9688, 0x7C82, 0x6817, 0x7E70, 0x6851, 0x936C, 0x52F2, 0x541B, 0x85AB, 0x8A13, 0x7FA4, 0x8ECD, 0x90E1, 0x5366, 0x8888, 0x7941, 0x4FC2, 0x50BE, 0x5211, 0x5144, 0x5553, 0x572D, 0x73EA, 0x578B, 0x5951, 0x5F62, 0x5F84, 0x6075, 0x6176, 0x6167, 0x61A9, 0x63B2, 0x643A, 0x656C, 0x666F, 0x6842, 0x6E13, 0x7566, 0x7A3D, 0x7CFB, 0x7D4C, 0x7D99, 0x7E4B, 0x7F6B, 0x830E, 0x834A, 0x86CD, 0x8A08, 0x8A63, 0x8B66, 0x8EFD, 0x981A, 0x9D8F, 0x82B8, 0x8FCE, 0x9BE8, 0x5287, 0x621F, 0x6483, 0x6FC0, 0x9699, 0x6841, 0x5091, 0x6B20, 0x6C7A, 0x6F54, 0x7A74, 0x7D50, 0x8840, 0x8A23, 0x6708, 0x4EF6, 0x5039, 0x5026, 0x5065, 0x517C, 0x5238, 0x5263, 0x55A7, 0x570F, 0x5805, 0x5ACC, 0x5EFA, 0x61B2, 0x61F8, 0x62F3, 0x6372}, { /* category 24 */ 0x691C, 0x6A29, 0x727D, 0x72AC, 0x732E, 0x7814, 0x786F, 0x7D79, 0x770C, 0x80A9, 0x898B, 0x8B19, 0x8CE2, 0x8ED2, 0x9063, 0x9375, 0x967A, 0x9855, 0x9A13, 0x9E78, 0x5143, 0x539F, 0x53B3, 0x5E7B, 0x5F26, 0x6E1B, 0x6E90, 0x7384, 0x73FE, 0x7D43, 0x8237, 0x8A00, 0x8AFA, 0x9650, 0x4E4E, 0x500B, 0x53E4, 0x547C, 0x56FA, 0x59D1, 0x5B64, 0x5DF1, 0x5EAB, 0x5F27, 0x6238, 0x6545, 0x67AF, 0x6E56, 0x72D0, 0x7CCA, 0x88B4, 0x80A1, 0x80E1, 0x83F0, 0x864E, 0x8A87, 0x8DE8, 0x9237, 0x96C7, 0x9867, 0x9F13, 0x4E94, 0x4E92, 0x4F0D, 0x5348, 0x5449, 0x543E, 0x5A2F, 0x5F8C, 0x5FA1, 0x609F, 0x68A7, 0x6A8E, 0x745A, 0x7881, 0x8A9E, 0x8AA4, 0x8B77, 0x9190, 0x4E5E, 0x9BC9, 0x4EA4, 0x4F7C, 0x4FAF, 0x5019, 0x5016, 0x5149, 0x516C, 0x529F, 0x52B9, 0x52FE, 0x539A, 0x53E3, 0x5411}, { /* category 25 */ 0x540E, 0x5589, 0x5751, 0x57A2, 0x597D, 0x5B54, 0x5B5D, 0x5B8F, 0x5DE5, 0x5DE7, 0x5DF7, 0x5E78, 0x5E83, 0x5E9A, 0x5EB7, 0x5F18, 0x6052, 0x614C, 0x6297, 0x62D8, 0x63A7, 0x653B, 0x6602, 0x6643, 0x66F4, 0x676D, 0x6821, 0x6897, 0x69CB, 0x6C5F, 0x6D2A, 0x6D69, 0x6E2F, 0x6E9D, 0x7532, 0x7687, 0x786C, 0x7A3F, 0x7CE0, 0x7D05, 0x7D18, 0x7D5E, 0x7DB1, 0x8015, 0x8003, 0x80AF, 0x80B1, 0x8154, 0x818F, 0x822A, 0x8352, 0x884C, 0x8861, 0x8B1B, 0x8CA2, 0x8CFC, 0x90CA, 0x9175, 0x9271, 0x783F, 0x92FC, 0x95A4, 0x964D, 0x9805, 0x9999, 0x9AD8, 0x9D3B, 0x525B, 0x52AB, 0x53F7, 0x5408, 0x58D5, 0x62F7, 0x6FE0, 0x8C6A, 0x8F5F, 0x9EB9, 0x514B, 0x523B, 0x544A, 0x56FD, 0x7A40, 0x9177, 0x9D60, 0x9ED2, 0x7344, 0x6F09, 0x8170, 0x7511, 0x5FFD, 0x60DA, 0x9AA8, 0x72DB, 0x8FBC}, { /* category 26 */ 0x6B64, 0x9803, 0x4ECA, 0x56F0, 0x5764, 0x58BE, 0x5A5A, 0x6068, 0x61C7, 0x660F, 0x6606, 0x6839, 0x68B1, 0x6DF7, 0x75D5, 0x7D3A, 0x826E, 0x9B42, 0x4E9B, 0x4F50, 0x53C9, 0x5506, 0x5D6F, 0x5DE6, 0x5DEE, 0x67FB, 0x6C99, 0x7473, 0x7802, 0x8A50, 0x9396, 0x88DF, 0x5750, 0x5EA7, 0x632B, 0x50B5, 0x50AC, 0x518D, 0x6700, 0x54C9, 0x585E, 0x59BB, 0x5BB0, 0x5F69, 0x624D, 0x63A1, 0x683D, 0x6B73, 0x6E08, 0x707D, 0x91C7, 0x7280, 0x7815, 0x7826, 0x796D, 0x658E, 0x7D30, 0x83DC, 0x88C1, 0x8F09, 0x969B, 0x5264, 0x5728, 0x6750, 0x7F6A, 0x8CA1, 0x51B4, 0x5742, 0x962A, 0x583A, 0x698A, 0x80B4, 0x54B2, 0x5D0E, 0x57FC, 0x7895, 0x9DFA, 0x4F5C, 0x524A, 0x548B, 0x643E, 0x6628, 0x6714, 0x67F5, 0x7A84, 0x7B56, 0x7D22, 0x932F, 0x685C, 0x9BAD, 0x7B39, 0x5319, 0x518A, 0x5237}, { /* category 27 */ 0x5BDF, 0x62F6, 0x64AE, 0x64E6, 0x672D, 0x6BBA, 0x85A9, 0x96D1, 0x7690, 0x9BD6, 0x634C, 0x9306, 0x9BAB, 0x76BF, 0x6652, 0x4E09, 0x5098, 0x53C2, 0x5C71, 0x60E8, 0x6492, 0x6563, 0x685F, 0x71E6, 0x73CA, 0x7523, 0x7B97, 0x7E82, 0x8695, 0x8B83, 0x8CDB, 0x9178, 0x9910, 0x65AC, 0x66AB, 0x6B8B, 0x4ED5, 0x4ED4, 0x4F3A, 0x4F7F, 0x523A, 0x53F8, 0x53F2, 0x55E3, 0x56DB, 0x58EB, 0x59CB, 0x59C9, 0x59FF, 0x5B50, 0x5C4D, 0x5E02, 0x5E2B, 0x5FD7, 0x601D, 0x6307, 0x652F, 0x5B5C, 0x65AF, 0x65BD, 0x65E8, 0x679D, 0x6B62, 0x6B7B, 0x6C0F, 0x7345, 0x7949, 0x79C1, 0x7CF8, 0x7D19, 0x7D2B, 0x80A2, 0x8102, 0x81F3, 0x8996, 0x8A5E, 0x8A69, 0x8A66, 0x8A8C, 0x8AEE, 0x8CC7, 0x8CDC, 0x96CC, 0x98FC, 0x6B6F, 0x4E8B, 0x4F3C, 0x4F8D, 0x5150, 0x5B57, 0x5BFA, 0x6148, 0x6301, 0x6642}, { /* category 28 */ 0x6B21, 0x6ECB, 0x6CBB, 0x723E, 0x74BD, 0x75D4, 0x78C1, 0x793A, 0x800C, 0x8033, 0x81EA, 0x8494, 0x8F9E, 0x6C50, 0x9E7F, 0x5F0F, 0x8B58, 0x9D2B, 0x7AFA, 0x8EF8, 0x5B8D, 0x96EB, 0x4E03, 0x53F1, 0x57F7, 0x5931, 0x5AC9, 0x5BA4, 0x6089, 0x6E7F, 0x6F06, 0x75BE, 0x8CEA, 0x5B9F, 0x8500, 0x7BE0, 0x5072, 0x67F4, 0x829D, 0x5C61, 0x854A, 0x7E1E, 0x820E, 0x5199, 0x5C04, 0x6368, 0x8D66, 0x659C, 0x716E, 0x793E, 0x7D17, 0x8005, 0x8B1D, 0x8ECA, 0x906E, 0x86C7, 0x90AA, 0x501F, 0x52FA, 0x5C3A, 0x6753, 0x707C, 0x7235, 0x914C, 0x91C8, 0x932B, 0x82E5, 0x5BC2, 0x5F31, 0x60F9, 0x4E3B, 0x53D6, 0x5B88, 0x624B, 0x6731, 0x6B8A, 0x72E9, 0x73E0, 0x7A2E, 0x816B, 0x8DA3, 0x9152, 0x9996, 0x5112, 0x53D7, 0x546A, 0x5BFF, 0x6388, 0x6A39, 0x7DAC, 0x9700, 0x56DA, 0x53CE, 0x5468}, { /* category 29 */ 0x5B97, 0x5C31, 0x5DDE, 0x4FEE, 0x6101, 0x62FE, 0x6D32, 0x79C0, 0x79CB, 0x7D42, 0x7E4D, 0x7FD2, 0x81ED, 0x821F, 0x8490, 0x8846, 0x8972, 0x8B90, 0x8E74, 0x8F2F, 0x9031, 0x914B, 0x916C, 0x96C6, 0x919C, 0x4EC0, 0x4F4F, 0x5145, 0x5341, 0x5F93, 0x620E, 0x67D4, 0x6C41, 0x6E0B, 0x7363, 0x7E26, 0x91CD, 0x9283, 0x53D4, 0x5919, 0x5BBF, 0x6DD1, 0x795D, 0x7E2E, 0x7C9B, 0x587E, 0x719F, 0x51FA, 0x8853, 0x8FF0, 0x4FCA, 0x5CFB, 0x6625, 0x77AC, 0x7AE3, 0x821C, 0x99FF, 0x51C6, 0x5FAA, 0x65EC, 0x696F, 0x6B89, 0x6DF3, 0x6E96, 0x6F64, 0x76FE, 0x7D14, 0x5DE1, 0x9075, 0x9187, 0x9806, 0x51E6, 0x521D, 0x6240, 0x6691, 0x66D9, 0x6E1A, 0x5EB6, 0x7DD2, 0x7F72, 0x66F8, 0x85AF, 0x85F7, 0x8AF8, 0x52A9, 0x53D9, 0x5973, 0x5E8F, 0x5F90, 0x6055, 0x92E4, 0x9664, 0x50B7, 0x511F}, { /* category 30 */ 0x52DD, 0x5320, 0x5347, 0x53EC, 0x54E8, 0x5546, 0x5531, 0x5617, 0x5968, 0x59BE, 0x5A3C, 0x5BB5, 0x5C06, 0x5C0F, 0x5C11, 0x5C1A, 0x5E84, 0x5E8A, 0x5EE0, 0x5F70, 0x627F, 0x6284, 0x62DB, 0x638C, 0x6377, 0x6607, 0x660C, 0x662D, 0x6676, 0x677E, 0x68A2, 0x6A1F, 0x6A35, 0x6CBC, 0x6D88, 0x6E09, 0x6E58, 0x713C, 0x7126, 0x7167, 0x75C7, 0x7701, 0x785D, 0x7901, 0x7965, 0x79F0, 0x7AE0, 0x7B11, 0x7CA7, 0x7D39, 0x8096, 0x83D6, 0x848B, 0x8549, 0x885D, 0x88F3, 0x8A1F, 0x8A3C, 0x8A54, 0x8A73, 0x8C61, 0x8CDE, 0x91A4, 0x9266, 0x937E, 0x9418, 0x969C, 0x9798, 0x4E0A, 0x4E08, 0x4E1E, 0x4E57, 0x5197, 0x5270, 0x57CE, 0x5834, 0x58CC, 0x5B22, 0x5E38, 0x60C5, 0x64FE, 0x6761, 0x6756, 0x6D44, 0x72B6, 0x7573, 0x7A63, 0x84B8, 0x8B72, 0x91B8, 0x9320, 0x5631, 0x57F4, 0x98FE}, { /* category 31 */ 0x62ED, 0x690D, 0x6B96, 0x71ED, 0x7E54, 0x8077, 0x8272, 0x89E6, 0x98DF, 0x8755, 0x8FB1, 0x5C3B, 0x4F38, 0x4FE1, 0x4FB5, 0x5507, 0x5A20, 0x5BDD, 0x5BE9, 0x5FC3, 0x614E, 0x632F, 0x65B0, 0x664B, 0x68EE, 0x699B, 0x6D78, 0x6DF1, 0x7533, 0x75B9, 0x771F, 0x795E, 0x79E6, 0x7D33, 0x81E3, 0x82AF, 0x85AA, 0x89AA, 0x8A3A, 0x8EAB, 0x8F9B, 0x9032, 0x91DD, 0x9707, 0x4EBA, 0x4EC1, 0x5203, 0x5875, 0x58EC, 0x5C0B, 0x751A, 0x5C3D, 0x814E, 0x8A0A, 0x8FC5, 0x9663, 0x976D, 0x7B25, 0x8ACF, 0x9808, 0x9162, 0x56F3, 0x53A8, 0x9017, 0x5439, 0x5782, 0x5E25, 0x63A8, 0x6C34, 0x708A, 0x7761, 0x7C8B, 0x7FE0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968F, 0x745E, 0x9AC4, 0x5D07, 0x5D69, 0x6570, 0x67A2, 0x8DA8, 0x96DB, 0x636E, 0x6749, 0x6919, 0x83C5, 0x9817, 0x96C0, 0x88FE}, { /* category 32 */ 0x6F84, 0x647A, 0x5BF8, 0x4E16, 0x702C, 0x755D, 0x662F, 0x51C4, 0x5236, 0x52E2, 0x59D3, 0x5F81, 0x6027, 0x6210, 0x653F, 0x6574, 0x661F, 0x6674, 0x68F2, 0x6816, 0x6B63, 0x6E05, 0x7272, 0x751F, 0x76DB, 0x7CBE, 0x8056, 0x58F0, 0x88FD, 0x897F, 0x8AA0, 0x8A93, 0x8ACB, 0x901D, 0x9192, 0x9752, 0x9759, 0x6589, 0x7A0E, 0x8106, 0x96BB, 0x5E2D, 0x60DC, 0x621A, 0x65A5, 0x6614, 0x6790, 0x77F3, 0x7A4D, 0x7C4D, 0x7E3E, 0x810A, 0x8CAC, 0x8D64, 0x8DE1, 0x8E5F, 0x78A9, 0x5207, 0x62D9, 0x63A5, 0x6442, 0x6298, 0x8A2D, 0x7A83, 0x7BC0, 0x8AAC, 0x96EA, 0x7D76, 0x820C, 0x8749, 0x4ED9, 0x5148, 0x5343, 0x5360, 0x5BA3, 0x5C02, 0x5C16, 0x5DDD, 0x6226, 0x6247, 0x64B0, 0x6813, 0x6834, 0x6CC9, 0x6D45, 0x6D17, 0x67D3, 0x6F5C, 0x714E, 0x717D, 0x65CB, 0x7A7F, 0x7BAD, 0x7DDA}, { /* category 33 */ 0x7E4A, 0x7FA8, 0x817A, 0x821B, 0x8239, 0x85A6, 0x8A6E, 0x8CCE, 0x8DF5, 0x9078, 0x9077, 0x92AD, 0x9291, 0x9583, 0x9BAE, 0x524D, 0x5584, 0x6F38, 0x7136, 0x5168, 0x7985, 0x7E55, 0x81B3, 0x7CCE, 0x564C, 0x5851, 0x5CA8, 0x63AA, 0x66FE, 0x66FD, 0x695A, 0x72D9, 0x758F, 0x758E, 0x790E, 0x7956, 0x79DF, 0x7C97, 0x7D20, 0x7D44, 0x8607, 0x8A34, 0x963B, 0x9061, 0x9F20, 0x50E7, 0x5275, 0x53CC, 0x53E2, 0x5009, 0x55AA, 0x58EE, 0x594F, 0x723D, 0x5B8B, 0x5C64, 0x531D, 0x60E3, 0x60F3, 0x635C, 0x6383, 0x633F, 0x63BB, 0x64CD, 0x65E9, 0x66F9, 0x5DE3, 0x69CD, 0x69FD, 0x6F15, 0x71E5, 0x4E89, 0x75E9, 0x76F8, 0x7A93, 0x7CDF, 0x7DCF, 0x7D9C, 0x8061, 0x8349, 0x8358, 0x846C, 0x84BC, 0x85FB, 0x88C5, 0x8D70, 0x9001, 0x906D, 0x9397, 0x971C, 0x9A12, 0x50CF, 0x5897, 0x618E}, { /* category 34 */ 0x81D3, 0x8535, 0x8D08, 0x9020, 0x4FC3, 0x5074, 0x5247, 0x5373, 0x606F, 0x6349, 0x675F, 0x6E2C, 0x8DB3, 0x901F, 0x4FD7, 0x5C5E, 0x8CCA, 0x65CF, 0x7D9A, 0x5352, 0x8896, 0x5176, 0x63C3, 0x5B58, 0x5B6B, 0x5C0A, 0x640D, 0x6751, 0x905C, 0x4ED6, 0x591A, 0x592A, 0x6C70, 0x8A51, 0x553E, 0x5815, 0x59A5, 0x60F0, 0x6253, 0x67C1, 0x8235, 0x6955, 0x9640, 0x99C4, 0x9A28, 0x4F53, 0x5806, 0x5BFE, 0x8010, 0x5CB1, 0x5E2F, 0x5F85, 0x6020, 0x614B, 0x6234, 0x66FF, 0x6CF0, 0x6EDE, 0x80CE, 0x817F, 0x82D4, 0x888B, 0x8CB8, 0x9000, 0x902E, 0x968A, 0x9EDB, 0x9BDB, 0x4EE3, 0x53F0, 0x5927, 0x7B2C, 0x918D, 0x984C, 0x9DF9, 0x6EDD, 0x7027, 0x5353, 0x5544, 0x5B85, 0x6258, 0x629E, 0x62D3, 0x6CA2, 0x6FEF, 0x7422, 0x8A17, 0x9438, 0x6FC1, 0x8AFE, 0x8338, 0x51E7, 0x86F8, 0x53EA}, { /* category 35 */ 0x53E9, 0x4F46, 0x9054, 0x8FB0, 0x596A, 0x8131, 0x5DFD, 0x7AEA, 0x8FBF, 0x68DA, 0x8C37, 0x72F8, 0x9C48, 0x6A3D, 0x8AB0, 0x4E39, 0x5358, 0x5606, 0x5766, 0x62C5, 0x63A2, 0x65E6, 0x6B4E, 0x6DE1, 0x6E5B, 0x70AD, 0x77ED, 0x7AEF, 0x7BAA, 0x7DBB, 0x803D, 0x80C6, 0x86CB, 0x8A95, 0x935B, 0x56E3, 0x58C7, 0x5F3E, 0x65AD, 0x6696, 0x6A80, 0x6BB5, 0x7537, 0x8AC7, 0x5024, 0x77E5, 0x5730, 0x5F1B, 0x6065, 0x667A, 0x6C60, 0x75F4, 0x7A1A, 0x7F6E, 0x81F4, 0x8718, 0x9045, 0x99B3, 0x7BC9, 0x755C, 0x7AF9, 0x7B51, 0x84C4, 0x9010, 0x79E9, 0x7A92, 0x8336, 0x5AE1, 0x7740, 0x4E2D, 0x4EF2, 0x5B99, 0x5FE0, 0x62BD, 0x663C, 0x67F1, 0x6CE8, 0x866B, 0x8877, 0x8A3B, 0x914E, 0x92F3, 0x99D0, 0x6A17, 0x7026, 0x732A, 0x82E7, 0x8457, 0x8CAF, 0x4E01, 0x5146, 0x51CB, 0x558B, 0x5BF5}, { /* category 36 */ 0x5E16, 0x5E33, 0x5E81, 0x5F14, 0x5F35, 0x5F6B, 0x5FB4, 0x61F2, 0x6311, 0x66A2, 0x671D, 0x6F6E, 0x7252, 0x753A, 0x773A, 0x8074, 0x8139, 0x8178, 0x8776, 0x8ABF, 0x8ADC, 0x8D85, 0x8DF3, 0x929A, 0x9577, 0x9802, 0x9CE5, 0x52C5, 0x6357, 0x76F4, 0x6715, 0x6C88, 0x73CD, 0x8CC3, 0x93AE, 0x9673, 0x6D25, 0x589C, 0x690E, 0x69CC, 0x8FFD, 0x939A, 0x75DB, 0x901A, 0x585A, 0x6802, 0x63B4, 0x69FB, 0x4F43, 0x6F2C, 0x67D8, 0x8FBB, 0x8526, 0x7DB4, 0x9354, 0x693F, 0x6F70, 0x576A, 0x58F7, 0x5B2C, 0x7D2C, 0x722A, 0x540A, 0x91E3, 0x9DB4, 0x4EAD, 0x4F4E, 0x505C, 0x5075, 0x5243, 0x8C9E, 0x5448, 0x5824, 0x5B9A, 0x5E1D, 0x5E95, 0x5EAD, 0x5EF7, 0x5F1F, 0x608C, 0x62B5, 0x633A, 0x63D0, 0x68AF, 0x6C40, 0x7887, 0x798E, 0x7A0B, 0x7DE0, 0x8247, 0x8A02, 0x8AE6, 0x8E44, 0x9013}, { /* category 37 */ 0x90B8, 0x912D, 0x91D8, 0x9F0E, 0x6CE5, 0x6458, 0x64E2, 0x6575, 0x6EF4, 0x7684, 0x7B1B, 0x9069, 0x93D1, 0x6EBA, 0x54F2, 0x5FB9, 0x64A4, 0x8F4D, 0x8FED, 0x9244, 0x5178, 0x586B, 0x5929, 0x5C55, 0x5E97, 0x6DFB, 0x7E8F, 0x751C, 0x8CBC, 0x8EE2, 0x985B, 0x70B9, 0x4F1D, 0x6BBF, 0x6FB1, 0x7530, 0x96FB, 0x514E, 0x5410, 0x5835, 0x5857, 0x59AC, 0x5C60, 0x5F92, 0x6597, 0x675C, 0x6E21, 0x767B, 0x83DF, 0x8CED, 0x9014, 0x90FD, 0x934D, 0x7825, 0x783A, 0x52AA, 0x5EA6, 0x571F, 0x5974, 0x6012, 0x5012, 0x515A, 0x51AC, 0x51CD, 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5B95, 0x5CF6, 0x5D8B, 0x60BC, 0x6295, 0x642D, 0x6771, 0x6843, 0x68BC, 0x68DF, 0x76D7, 0x6DD8, 0x6E6F, 0x6D9B, 0x706F, 0x71C8, 0x5F53, 0x75D8, 0x7977, 0x7B49, 0x7B54, 0x7B52, 0x7CD6, 0x7D71, 0x5230}, { /* category 38 */ 0x8463, 0x8569, 0x85E4, 0x8A0E, 0x8B04, 0x8C46, 0x8E0F, 0x9003, 0x900F, 0x9419, 0x9676, 0x982D, 0x9A30, 0x95D8, 0x50CD, 0x52D5, 0x540C, 0x5802, 0x5C0E, 0x61A7, 0x649E, 0x6D1E, 0x77B3, 0x7AE5, 0x80F4, 0x8404, 0x9053, 0x9285, 0x5CE0, 0x9D07, 0x533F, 0x5F97, 0x5FB3, 0x6D9C, 0x7279, 0x7763, 0x79BF, 0x7BE4, 0x6BD2, 0x72EC, 0x8AAD, 0x6803, 0x6A61, 0x51F8, 0x7A81, 0x6934, 0x5C4A, 0x9CF6, 0x82EB, 0x5BC5, 0x9149, 0x701E, 0x5678, 0x5C6F, 0x60C7, 0x6566, 0x6C8C, 0x8C5A, 0x9041, 0x9813, 0x5451, 0x66C7, 0x920D, 0x5948, 0x90A3, 0x5185, 0x4E4D, 0x51EA, 0x8599, 0x8B0E, 0x7058, 0x637A, 0x934B, 0x6962, 0x99B4, 0x7E04, 0x7577, 0x5357, 0x6960, 0x8EDF, 0x96E3, 0x6C5D, 0x4E8C, 0x5C3C, 0x5F10, 0x8FE9, 0x5302, 0x8CD1, 0x8089, 0x8679, 0x5EFF, 0x65E5, 0x4E73, 0x5165}, { /* category 39 */ 0x5982, 0x5C3F, 0x97EE, 0x4EFB, 0x598A, 0x5FCD, 0x8A8D, 0x6FE1, 0x79B0, 0x7962, 0x5BE7, 0x8471, 0x732B, 0x71B1, 0x5E74, 0x5FF5, 0x637B, 0x649A, 0x71C3, 0x7C98, 0x4E43, 0x5EFC, 0x4E4B, 0x57DC, 0x56A2, 0x60A9, 0x6FC3, 0x7D0D, 0x80FD, 0x8133, 0x81BF, 0x8FB2, 0x8997, 0x86A4, 0x5DF4, 0x628A, 0x64AD, 0x8987, 0x6777, 0x6CE2, 0x6D3E, 0x7436, 0x7834, 0x5A46, 0x7F75, 0x82AD, 0x99AC, 0x4FF3, 0x5EC3, 0x62DD, 0x6392, 0x6557, 0x676F, 0x76C3, 0x724C, 0x80CC, 0x80BA, 0x8F29, 0x914D, 0x500D, 0x57F9, 0x5A92, 0x6885, 0x6973, 0x7164, 0x72FD, 0x8CB7, 0x58F2, 0x8CE0, 0x966A, 0x9019, 0x877F, 0x79E4, 0x77E7, 0x8429, 0x4F2F, 0x5265, 0x535A, 0x62CD, 0x67CF, 0x6CCA, 0x767D, 0x7B94, 0x7C95, 0x8236, 0x8584, 0x8FEB, 0x66DD, 0x6F20, 0x7206, 0x7E1B, 0x83AB, 0x99C1, 0x9EA6}, { /* category 40 */ 0x51FD, 0x7BB1, 0x7872, 0x7BB8, 0x8087, 0x7B48, 0x6AE8, 0x5E61, 0x808C, 0x7551, 0x7560, 0x516B, 0x9262, 0x6E8C, 0x767A, 0x9197, 0x9AEA, 0x4F10, 0x7F70, 0x629C, 0x7B4F, 0x95A5, 0x9CE9, 0x567A, 0x5859, 0x86E4, 0x96BC, 0x4F34, 0x5224, 0x534A, 0x53CD, 0x53DB, 0x5E06, 0x642C, 0x6591, 0x677F, 0x6C3E, 0x6C4E, 0x7248, 0x72AF, 0x73ED, 0x7554, 0x7E41, 0x822C, 0x85E9, 0x8CA9, 0x7BC4, 0x91C6, 0x7169, 0x9812, 0x98EF, 0x633D, 0x6669, 0x756A, 0x76E4, 0x78D0, 0x8543, 0x86EE, 0x532A, 0x5351, 0x5426, 0x5983, 0x5E87, 0x5F7C, 0x60B2, 0x6249, 0x6279, 0x62AB, 0x6590, 0x6BD4, 0x6CCC, 0x75B2, 0x76AE, 0x7891, 0x79D8, 0x7DCB, 0x7F77, 0x80A5, 0x88AB, 0x8AB9, 0x8CBB, 0x907F, 0x975E, 0x98DB, 0x6A0B, 0x7C38, 0x5099, 0x5C3E, 0x5FAE, 0x6787, 0x6BD8, 0x7435, 0x7709, 0x7F8E}, { /* category 41 */ 0x9F3B, 0x67CA, 0x7A17, 0x5339, 0x758B, 0x9AED, 0x5F66, 0x819D, 0x83F1, 0x8098, 0x5F3C, 0x5FC5, 0x7562, 0x7B46, 0x903C, 0x6867, 0x59EB, 0x5A9B, 0x7D10, 0x767E, 0x8B2C, 0x4FF5, 0x5F6A, 0x6A19, 0x6C37, 0x6F02, 0x74E2, 0x7968, 0x8868, 0x8A55, 0x8C79, 0x5EDF, 0x63CF, 0x75C5, 0x79D2, 0x82D7, 0x9328, 0x92F2, 0x849C, 0x86ED, 0x9C2D, 0x54C1, 0x5F6C, 0x658C, 0x6D5C, 0x7015, 0x8CA7, 0x8CD3, 0x983B, 0x654F, 0x74F6, 0x4E0D, 0x4ED8, 0x57E0, 0x592B, 0x5A66, 0x5BCC, 0x51A8, 0x5E03, 0x5E9C, 0x6016, 0x6276, 0x6577, 0x65A7, 0x666E, 0x6D6E, 0x7236, 0x7B26, 0x8150, 0x819A, 0x8299, 0x8B5C, 0x8CA0, 0x8CE6, 0x8D74, 0x961C, 0x9644, 0x4FAE, 0x64AB, 0x6B66, 0x821E, 0x8461, 0x856A, 0x90E8, 0x5C01, 0x6953, 0x98A8, 0x847A, 0x8557, 0x4F0F, 0x526F, 0x5FA9, 0x5E45, 0x670D}, { /* category 42 */ 0x798F, 0x8179, 0x8907, 0x8986, 0x6DF5, 0x5F17, 0x6255, 0x6CB8, 0x4ECF, 0x7269, 0x9B92, 0x5206, 0x543B, 0x5674, 0x58B3, 0x61A4, 0x626E, 0x711A, 0x596E, 0x7C89, 0x7CDE, 0x7D1B, 0x96F0, 0x6587, 0x805E, 0x4E19, 0x4F75, 0x5175, 0x5840, 0x5E63, 0x5E73, 0x5F0A, 0x67C4, 0x4E26, 0x853D, 0x9589, 0x965B, 0x7C73, 0x9801, 0x50FB, 0x58C1, 0x7656, 0x78A7, 0x5225, 0x77A5, 0x8511, 0x7B86, 0x504F, 0x5909, 0x7247, 0x7BC7, 0x7DE8, 0x8FBA, 0x8FD4, 0x904D, 0x4FBF, 0x52C9, 0x5A29, 0x5F01, 0x97AD, 0x4FDD, 0x8217, 0x92EA, 0x5703, 0x6355, 0x6B69, 0x752B, 0x88DC, 0x8F14, 0x7A42, 0x52DF, 0x5893, 0x6155, 0x620A, 0x66AE, 0x6BCD, 0x7C3F, 0x83E9, 0x5023, 0x4FF8, 0x5305, 0x5446, 0x5831, 0x5949, 0x5B9D, 0x5CF0, 0x5CEF, 0x5D29, 0x5E96, 0x62B1, 0x6367, 0x653E, 0x65B9, 0x670B}, { /* category 43 */ 0x6CD5, 0x6CE1, 0x70F9, 0x7832, 0x7E2B, 0x80DE, 0x82B3, 0x840C, 0x84EC, 0x8702, 0x8912, 0x8A2A, 0x8C4A, 0x90A6, 0x92D2, 0x98FD, 0x9CF3, 0x9D6C, 0x4E4F, 0x4EA1, 0x508D, 0x5256, 0x574A, 0x59A8, 0x5E3D, 0x5FD8, 0x5FD9, 0x623F, 0x66B4, 0x671B, 0x67D0, 0x68D2, 0x5192, 0x7D21, 0x80AA, 0x81A8, 0x8B00, 0x8C8C, 0x8CBF, 0x927E, 0x9632, 0x5420, 0x982C, 0x5317, 0x50D5, 0x535C, 0x58A8, 0x64B2, 0x6734, 0x7267, 0x7766, 0x7A46, 0x91E6, 0x52C3, 0x6CA1, 0x6B86, 0x5800, 0x5E4C, 0x5954, 0x672C, 0x7FFB, 0x51E1, 0x76C6, 0x6469, 0x78E8, 0x9B54, 0x9EBB, 0x57CB, 0x59B9, 0x6627, 0x679A, 0x6BCE, 0x54E9, 0x69D9, 0x5E55, 0x819C, 0x6795, 0x9BAA, 0x67FE, 0x9C52, 0x685D, 0x4EA6, 0x4FE3, 0x53C8, 0x62B9, 0x672B, 0x6CAB, 0x8FC4, 0x4FAD, 0x7E6D, 0x9EBF, 0x4E07, 0x6162, 0x6E80}, { /* category 44 */ 0x6F2B, 0x8513, 0x5473, 0x672A, 0x9B45, 0x5DF3, 0x7B95, 0x5CAC, 0x5BC6, 0x871C, 0x6E4A, 0x84D1, 0x7A14, 0x8108, 0x5999, 0x7C8D, 0x6C11, 0x7720, 0x52D9, 0x5922, 0x7121, 0x725F, 0x77DB, 0x9727, 0x9D61, 0x690B, 0x5A7F, 0x5A18, 0x51A5, 0x540D, 0x547D, 0x660E, 0x76DF, 0x8FF7, 0x9298, 0x9CF4, 0x59EA, 0x725D, 0x6EC5, 0x514D, 0x68C9, 0x7DBF, 0x7DEC, 0x9762, 0x9EBA, 0x6478, 0x6A21, 0x8302, 0x5984, 0x5B5F, 0x6BDB, 0x731B, 0x76F2, 0x7DB2, 0x8017, 0x8499, 0x5132, 0x6728, 0x9ED9, 0x76EE, 0x6762, 0x52FF, 0x9905, 0x5C24, 0x623B, 0x7C7E, 0x8CB0, 0x554F, 0x60B6, 0x7D0B, 0x9580, 0x5301, 0x4E5F, 0x51B6, 0x591C, 0x723A, 0x8036, 0x91CE, 0x5F25, 0x77E2, 0x5384, 0x5F79, 0x7D04, 0x85AC, 0x8A33, 0x8E8D, 0x9756, 0x67F3, 0x85AE, 0x9453, 0x6109, 0x6108, 0x6CB9, 0x7652}, { /* category 45 */ 0x8AED, 0x8F38, 0x552F, 0x4F51, 0x512A, 0x52C7, 0x53CB, 0x5BA5, 0x5E7D, 0x60A0, 0x6182, 0x63D6, 0x6709, 0x67DA, 0x6E67, 0x6D8C, 0x7336, 0x7337, 0x7531, 0x7950, 0x88D5, 0x8A98, 0x904A, 0x9091, 0x90F5, 0x96C4, 0x878D, 0x5915, 0x4E88, 0x4F59, 0x4E0E, 0x8A89, 0x8F3F, 0x9810, 0x50AD, 0x5E7C, 0x5996, 0x5BB9, 0x5EB8, 0x63DA, 0x63FA, 0x64C1, 0x66DC, 0x694A, 0x69D8, 0x6D0B, 0x6EB6, 0x7194, 0x7528, 0x7AAF, 0x7F8A, 0x8000, 0x8449, 0x84C9, 0x8981, 0x8B21, 0x8E0A, 0x9065, 0x967D, 0x990A, 0x617E, 0x6291, 0x6B32, 0x6C83, 0x6D74, 0x7FCC, 0x7FFC, 0x6DC0, 0x7F85, 0x87BA, 0x88F8, 0x6765, 0x83B1, 0x983C, 0x96F7, 0x6D1B, 0x7D61, 0x843D, 0x916A, 0x4E71, 0x5375, 0x5D50, 0x6B04, 0x6FEB, 0x85CD, 0x862D, 0x89A7, 0x5229, 0x540F, 0x5C65, 0x674E, 0x68A8, 0x7406, 0x7483}, { /* category 46 */ 0x75E2, 0x88CF, 0x88E1, 0x91CC, 0x96E2, 0x9678, 0x5F8B, 0x7387, 0x7ACB, 0x844E, 0x63A0, 0x7565, 0x5289, 0x6D41, 0x6E9C, 0x7409, 0x7559, 0x786B, 0x7C92, 0x9686, 0x7ADC, 0x9F8D, 0x4FB6, 0x616E, 0x65C5, 0x865C, 0x4E86, 0x4EAE, 0x50DA, 0x4E21, 0x51CC, 0x5BEE, 0x6599, 0x6881, 0x6DBC, 0x731F, 0x7642, 0x77AD, 0x7A1C, 0x7CE7, 0x826F, 0x8AD2, 0x907C, 0x91CF, 0x9675, 0x9818, 0x529B, 0x7DD1, 0x502B, 0x5398, 0x6797, 0x6DCB, 0x71D0, 0x7433, 0x81E8, 0x8F2A, 0x96A3, 0x9C57, 0x9E9F, 0x7460, 0x5841, 0x6D99, 0x7D2F, 0x985E, 0x4EE4, 0x4F36, 0x4F8B, 0x51B7, 0x52B1, 0x5DBA, 0x601C, 0x73B2, 0x793C, 0x82D3, 0x9234, 0x96B7, 0x96F6, 0x970A, 0x9E97, 0x9F62, 0x66A6, 0x6B74, 0x5217, 0x52A3, 0x70C8, 0x88C2, 0x5EC9, 0x604B, 0x6190, 0x6F23, 0x7149, 0x7C3E, 0x7DF4, 0x806F}, { /* category 47 */ 0x84EE, 0x9023, 0x932C, 0x5442, 0x9B6F, 0x6AD3, 0x7089, 0x8CC2, 0x8DEF, 0x9732, 0x52B4, 0x5A41, 0x5ECA, 0x5F04, 0x6717, 0x697C, 0x6994, 0x6D6A, 0x6F0F, 0x7262, 0x72FC, 0x7BED, 0x8001, 0x807E, 0x874B, 0x90CE, 0x516D, 0x9E93, 0x7984, 0x808B, 0x9332, 0x8AD6, 0x502D, 0x548C, 0x8A71, 0x6B6A, 0x8CC4, 0x8107, 0x60D1, 0x67A0, 0x9DF2, 0x4E99, 0x4E98, 0x9C10, 0x8A6B, 0x85C1, 0x8568, 0x6900, 0x6E7E, 0x7897, 0x8155, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 48 */ 0x5F0C, 0x4E10, 0x4E15, 0x4E2A, 0x4E31, 0x4E36, 0x4E3C, 0x4E3F, 0x4E42, 0x4E56, 0x4E58, 0x4E82, 0x4E85, 0x8C6B, 0x4E8A, 0x8212, 0x5F0D, 0x4E8E, 0x4E9E, 0x4E9F, 0x4EA0, 0x4EA2, 0x4EB0, 0x4EB3, 0x4EB6, 0x4ECE, 0x4ECD, 0x4EC4, 0x4EC6, 0x4EC2, 0x4ED7, 0x4EDE, 0x4EED, 0x4EDF, 0x4EF7, 0x4F09, 0x4F5A, 0x4F30, 0x4F5B, 0x4F5D, 0x4F57, 0x4F47, 0x4F76, 0x4F88, 0x4F8F, 0x4F98, 0x4F7B, 0x4F69, 0x4F70, 0x4F91, 0x4F6F, 0x4F86, 0x4F96, 0x5118, 0x4FD4, 0x4FDF, 0x4FCE, 0x4FD8, 0x4FDB, 0x4FD1, 0x4FDA, 0x4FD0, 0x4FE4, 0x4FE5, 0x501A, 0x5028, 0x5014, 0x502A, 0x5025, 0x5005, 0x4F1C, 0x4FF6, 0x5021, 0x5029, 0x502C, 0x4FFE, 0x4FEF, 0x5011, 0x5006, 0x5043, 0x5047, 0x6703, 0x5055, 0x5050, 0x5048, 0x505A, 0x5056, 0x506C, 0x5078, 0x5080, 0x509A, 0x5085, 0x50B4, 0x50B2}, { /* category 49 */ 0x50C9, 0x50CA, 0x50B3, 0x50C2, 0x50D6, 0x50DE, 0x50E5, 0x50ED, 0x50E3, 0x50EE, 0x50F9, 0x50F5, 0x5109, 0x5101, 0x5102, 0x5116, 0x5115, 0x5114, 0x511A, 0x5121, 0x513A, 0x5137, 0x513C, 0x513B, 0x513F, 0x5140, 0x5152, 0x514C, 0x5154, 0x5162, 0x7AF8, 0x5169, 0x516A, 0x516E, 0x5180, 0x5182, 0x56D8, 0x518C, 0x5189, 0x518F, 0x5191, 0x5193, 0x5195, 0x5196, 0x51A4, 0x51A6, 0x51A2, 0x51A9, 0x51AA, 0x51AB, 0x51B3, 0x51B1, 0x51B2, 0x51B0, 0x51B5, 0x51BD, 0x51C5, 0x51C9, 0x51DB, 0x51E0, 0x8655, 0x51E9, 0x51ED, 0x51F0, 0x51F5, 0x51FE, 0x5204, 0x520B, 0x5214, 0x520E, 0x5227, 0x522A, 0x522E, 0x5233, 0x5239, 0x524F, 0x5244, 0x524B, 0x524C, 0x525E, 0x5254, 0x526A, 0x5274, 0x5269, 0x5273, 0x527F, 0x527D, 0x528D, 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8FA8}, { /* category 50 */ 0x8FA7, 0x52AC, 0x52AD, 0x52BC, 0x52B5, 0x52C1, 0x52CD, 0x52D7, 0x52DE, 0x52E3, 0x52E6, 0x98ED, 0x52E0, 0x52F3, 0x52F5, 0x52F8, 0x52F9, 0x5306, 0x5308, 0x7538, 0x530D, 0x5310, 0x530F, 0x5315, 0x531A, 0x5323, 0x532F, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346, 0x5345, 0x4E17, 0x5349, 0x534D, 0x51D6, 0x535E, 0x5369, 0x536E, 0x5918, 0x537B, 0x5377, 0x5382, 0x5396, 0x53A0, 0x53A6, 0x53A5, 0x53AE, 0x53B0, 0x53B6, 0x53C3, 0x7C12, 0x96D9, 0x53DF, 0x66FC, 0x71EE, 0x53EE, 0x53E8, 0x53ED, 0x53FA, 0x5401, 0x543D, 0x5440, 0x542C, 0x542D, 0x543C, 0x542E, 0x5436, 0x5429, 0x541D, 0x544E, 0x548F, 0x5475, 0x548E, 0x545F, 0x5471, 0x5477, 0x5470, 0x5492, 0x547B, 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54C7, 0x54A2, 0x54B8, 0x54A5, 0x54AC, 0x54C4, 0x54C8, 0x54A8}, { /* category 51 */ 0x54AB, 0x54C2, 0x54A4, 0x54BE, 0x54BC, 0x54D8, 0x54E5, 0x54E6, 0x550F, 0x5514, 0x54FD, 0x54EE, 0x54ED, 0x54FA, 0x54E2, 0x5539, 0x5540, 0x5563, 0x554C, 0x552E, 0x555C, 0x5545, 0x5556, 0x5557, 0x5538, 0x5533, 0x555D, 0x5599, 0x5580, 0x54AF, 0x558A, 0x559F, 0x557B, 0x557E, 0x5598, 0x559E, 0x55AE, 0x557C, 0x5583, 0x55A9, 0x5587, 0x55A8, 0x55DA, 0x55C5, 0x55DF, 0x55C4, 0x55DC, 0x55E4, 0x55D4, 0x5614, 0x55F7, 0x5616, 0x55FE, 0x55FD, 0x561B, 0x55F9, 0x564E, 0x5650, 0x71DF, 0x5634, 0x5636, 0x5632, 0x5638, 0x566B, 0x5664, 0x562F, 0x566C, 0x566A, 0x5686, 0x5680, 0x568A, 0x56A0, 0x5694, 0x568F, 0x56A5, 0x56AE, 0x56B6, 0x56B4, 0x56C2, 0x56BC, 0x56C1, 0x56C3, 0x56C0, 0x56C8, 0x56CE, 0x56D1, 0x56D3, 0x56D7, 0x56EE, 0x56F9, 0x5700, 0x56FF, 0x5704, 0x5709}, { /* category 52 */ 0x5708, 0x570B, 0x570D, 0x5713, 0x5718, 0x5716, 0x55C7, 0x571C, 0x5726, 0x5737, 0x5738, 0x574E, 0x573B, 0x5740, 0x574F, 0x5769, 0x57C0, 0x5788, 0x5761, 0x577F, 0x5789, 0x5793, 0x57A0, 0x57B3, 0x57A4, 0x57AA, 0x57B0, 0x57C3, 0x57C6, 0x57D4, 0x57D2, 0x57D3, 0x580A, 0x57D6, 0x57E3, 0x580B, 0x5819, 0x581D, 0x5872, 0x5821, 0x5862, 0x584B, 0x5870, 0x6BC0, 0x5852, 0x583D, 0x5879, 0x5885, 0x58B9, 0x589F, 0x58AB, 0x58BA, 0x58DE, 0x58BB, 0x58B8, 0x58AE, 0x58C5, 0x58D3, 0x58D1, 0x58D7, 0x58D9, 0x58D8, 0x58E5, 0x58DC, 0x58E4, 0x58DF, 0x58EF, 0x58FA, 0x58F9, 0x58FB, 0x58FC, 0x58FD, 0x5902, 0x590A, 0x5910, 0x591B, 0x68A6, 0x5925, 0x592C, 0x592D, 0x5932, 0x5938, 0x593E, 0x7AD2, 0x5955, 0x5950, 0x594E, 0x595A, 0x5958, 0x5962, 0x5960, 0x5967, 0x596C, 0x5969}, { /* category 53 */ 0x5978, 0x5981, 0x599D, 0x4F5E, 0x4FAB, 0x59A3, 0x59B2, 0x59C6, 0x59E8, 0x59DC, 0x598D, 0x59D9, 0x59DA, 0x5A25, 0x5A1F, 0x5A11, 0x5A1C, 0x5A09, 0x5A1A, 0x5A40, 0x5A6C, 0x5A49, 0x5A35, 0x5A36, 0x5A62, 0x5A6A, 0x5A9A, 0x5ABC, 0x5ABE, 0x5ACB, 0x5AC2, 0x5ABD, 0x5AE3, 0x5AD7, 0x5AE6, 0x5AE9, 0x5AD6, 0x5AFA, 0x5AFB, 0x5B0C, 0x5B0B, 0x5B16, 0x5B32, 0x5AD0, 0x5B2A, 0x5B36, 0x5B3E, 0x5B43, 0x5B45, 0x5B40, 0x5B51, 0x5B55, 0x5B5A, 0x5B5B, 0x5B65, 0x5B69, 0x5B70, 0x5B73, 0x5B75, 0x5B78, 0x6588, 0x5B7A, 0x5B80, 0x5B83, 0x5BA6, 0x5BB8, 0x5BC3, 0x5BC7, 0x5BC9, 0x5BD4, 0x5BD0, 0x5BE4, 0x5BE6, 0x5BE2, 0x5BDE, 0x5BE5, 0x5BEB, 0x5BF0, 0x5BF6, 0x5BF3, 0x5C05, 0x5C07, 0x5C08, 0x5C0D, 0x5C13, 0x5C20, 0x5C22, 0x5C28, 0x5C38, 0x5C39, 0x5C41, 0x5C46, 0x5C4E, 0x5C53}, { /* category 54 */ 0x5C50, 0x5C4F, 0x5B71, 0x5C6C, 0x5C6E, 0x4E62, 0x5C76, 0x5C79, 0x5C8C, 0x5C91, 0x5C94, 0x599B, 0x5CAB, 0x5CBB, 0x5CB6, 0x5CBC, 0x5CB7, 0x5CC5, 0x5CBE, 0x5CC7, 0x5CD9, 0x5CE9, 0x5CFD, 0x5CFA, 0x5CED, 0x5D8C, 0x5CEA, 0x5D0B, 0x5D15, 0x5D17, 0x5D5C, 0x5D1F, 0x5D1B, 0x5D11, 0x5D14, 0x5D22, 0x5D1A, 0x5D19, 0x5D18, 0x5D4C, 0x5D52, 0x5D4E, 0x5D4B, 0x5D6C, 0x5D73, 0x5D76, 0x5D87, 0x5D84, 0x5D82, 0x5DA2, 0x5D9D, 0x5DAC, 0x5DAE, 0x5DBD, 0x5D90, 0x5DB7, 0x5DBC, 0x5DC9, 0x5DCD, 0x5DD3, 0x5DD2, 0x5DD6, 0x5DDB, 0x5DEB, 0x5DF2, 0x5DF5, 0x5E0B, 0x5E1A, 0x5E19, 0x5E11, 0x5E1B, 0x5E36, 0x5E37, 0x5E44, 0x5E43, 0x5E40, 0x5E4E, 0x5E57, 0x5E54, 0x5E5F, 0x5E62, 0x5E64, 0x5E47, 0x5E75, 0x5E76, 0x5E7A, 0x9EBC, 0x5E7F, 0x5EA0, 0x5EC1, 0x5EC2, 0x5EC8, 0x5ED0, 0x5ECF}, { /* category 55 */ 0x5ED6, 0x5EE3, 0x5EDD, 0x5EDA, 0x5EDB, 0x5EE2, 0x5EE1, 0x5EE8, 0x5EE9, 0x5EEC, 0x5EF1, 0x5EF3, 0x5EF0, 0x5EF4, 0x5EF8, 0x5EFE, 0x5F03, 0x5F09, 0x5F5D, 0x5F5C, 0x5F0B, 0x5F11, 0x5F16, 0x5F29, 0x5F2D, 0x5F38, 0x5F41, 0x5F48, 0x5F4C, 0x5F4E, 0x5F2F, 0x5F51, 0x5F56, 0x5F57, 0x5F59, 0x5F61, 0x5F6D, 0x5F73, 0x5F77, 0x5F83, 0x5F82, 0x5F7F, 0x5F8A, 0x5F88, 0x5F91, 0x5F87, 0x5F9E, 0x5F99, 0x5F98, 0x5FA0, 0x5FA8, 0x5FAD, 0x5FBC, 0x5FD6, 0x5FFB, 0x5FE4, 0x5FF8, 0x5FF1, 0x5FDD, 0x60B3, 0x5FFF, 0x6021, 0x6060, 0x6019, 0x6010, 0x6029, 0x600E, 0x6031, 0x601B, 0x6015, 0x602B, 0x6026, 0x600F, 0x603A, 0x605A, 0x6041, 0x606A, 0x6077, 0x605F, 0x604A, 0x6046, 0x604D, 0x6063, 0x6043, 0x6064, 0x6042, 0x606C, 0x606B, 0x6059, 0x6081, 0x608D, 0x60E7, 0x6083, 0x609A}, { /* category 56 */ 0x6084, 0x609B, 0x6096, 0x6097, 0x6092, 0x60A7, 0x608B, 0x60E1, 0x60B8, 0x60E0, 0x60D3, 0x60B4, 0x5FF0, 0x60BD, 0x60C6, 0x60B5, 0x60D8, 0x614D, 0x6115, 0x6106, 0x60F6, 0x60F7, 0x6100, 0x60F4, 0x60FA, 0x6103, 0x6121, 0x60FB, 0x60F1, 0x610D, 0x610E, 0x6147, 0x613E, 0x6128, 0x6127, 0x614A, 0x613F, 0x613C, 0x612C, 0x6134, 0x613D, 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615A, 0x616B, 0x6174, 0x616F, 0x6165, 0x6171, 0x615F, 0x615D, 0x6153, 0x6175, 0x6199, 0x6196, 0x6187, 0x61AC, 0x6194, 0x619A, 0x618A, 0x6191, 0x61AB, 0x61AE, 0x61CC, 0x61CA, 0x61C9, 0x61F7, 0x61C8, 0x61C3, 0x61C6, 0x61BA, 0x61CB, 0x7F79, 0x61CD, 0x61E6, 0x61E3, 0x61F6, 0x61FA, 0x61F4, 0x61FF, 0x61FD, 0x61FC, 0x61FE, 0x6200, 0x6208, 0x6209, 0x620D, 0x620C, 0x6214, 0x621B}, { /* category 57 */ 0x621E, 0x6221, 0x622A, 0x622E, 0x6230, 0x6232, 0x6233, 0x6241, 0x624E, 0x625E, 0x6263, 0x625B, 0x6260, 0x6268, 0x627C, 0x6282, 0x6289, 0x627E, 0x6292, 0x6293, 0x6296, 0x62D4, 0x6283, 0x6294, 0x62D7, 0x62D1, 0x62BB, 0x62CF, 0x62FF, 0x62C6, 0x64D4, 0x62C8, 0x62DC, 0x62CC, 0x62CA, 0x62C2, 0x62C7, 0x629B, 0x62C9, 0x630C, 0x62EE, 0x62F1, 0x6327, 0x6302, 0x6308, 0x62EF, 0x62F5, 0x6350, 0x633E, 0x634D, 0x641C, 0x634F, 0x6396, 0x638E, 0x6380, 0x63AB, 0x6376, 0x63A3, 0x638F, 0x6389, 0x639F, 0x63B5, 0x636B, 0x6369, 0x63BE, 0x63E9, 0x63C0, 0x63C6, 0x63E3, 0x63C9, 0x63D2, 0x63F6, 0x63C4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, 0x651D, 0x6417, 0x6428, 0x640F, 0x6467, 0x646F, 0x6476, 0x644E, 0x652A, 0x6495, 0x6493, 0x64A5, 0x64A9, 0x6488, 0x64BC}, { /* category 58 */ 0x64DA, 0x64D2, 0x64C5, 0x64C7, 0x64BB, 0x64D8, 0x64C2, 0x64F1, 0x64E7, 0x8209, 0x64E0, 0x64E1, 0x62AC, 0x64E3, 0x64EF, 0x652C, 0x64F6, 0x64F4, 0x64F2, 0x64FA, 0x6500, 0x64FD, 0x6518, 0x651C, 0x6505, 0x6524, 0x6523, 0x652B, 0x6534, 0x6535, 0x6537, 0x6536, 0x6538, 0x754B, 0x6548, 0x6556, 0x6555, 0x654D, 0x6558, 0x655E, 0x655D, 0x6572, 0x6578, 0x6582, 0x6583, 0x8B8A, 0x659B, 0x659F, 0x65AB, 0x65B7, 0x65C3, 0x65C6, 0x65C1, 0x65C4, 0x65CC, 0x65D2, 0x65DB, 0x65D9, 0x65E0, 0x65E1, 0x65F1, 0x6772, 0x660A, 0x6603, 0x65FB, 0x6773, 0x6635, 0x6636, 0x6634, 0x661C, 0x664F, 0x6644, 0x6649, 0x6641, 0x665E, 0x665D, 0x6664, 0x6667, 0x6668, 0x665F, 0x6662, 0x6670, 0x6683, 0x6688, 0x668E, 0x6689, 0x6684, 0x6698, 0x669D, 0x66C1, 0x66B9, 0x66C9, 0x66BE, 0x66BC}, { /* category 59 */ 0x66C4, 0x66B8, 0x66D6, 0x66DA, 0x66E0, 0x663F, 0x66E6, 0x66E9, 0x66F0, 0x66F5, 0x66F7, 0x670F, 0x6716, 0x671E, 0x6726, 0x6727, 0x9738, 0x672E, 0x673F, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746, 0x675E, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67A9, 0x677C, 0x676A, 0x678C, 0x678B, 0x67A6, 0x67A1, 0x6785, 0x67B7, 0x67EF, 0x67B4, 0x67EC, 0x67B3, 0x67E9, 0x67B8, 0x67E4, 0x67DE, 0x67DD, 0x67E2, 0x67EE, 0x67B9, 0x67CE, 0x67C6, 0x67E7, 0x6A9C, 0x681E, 0x6846, 0x6829, 0x6840, 0x684D, 0x6832, 0x684E, 0x68B3, 0x682B, 0x6859, 0x6863, 0x6877, 0x687F, 0x689F, 0x688F, 0x68AD, 0x6894, 0x689D, 0x689B, 0x6883, 0x6AAE, 0x68B9, 0x6874, 0x68B5, 0x68A0, 0x68BA, 0x690F, 0x688D, 0x687E, 0x6901, 0x68CA, 0x6908, 0x68D8, 0x6922, 0x6926, 0x68E1, 0x690C, 0x68CD}, { /* category 60 */ 0x68D4, 0x68E7, 0x68D5, 0x6936, 0x6912, 0x6904, 0x68D7, 0x68E3, 0x6925, 0x68F9, 0x68E0, 0x68EF, 0x6928, 0x692A, 0x691A, 0x6923, 0x6921, 0x68C6, 0x6979, 0x6977, 0x695C, 0x6978, 0x696B, 0x6954, 0x697E, 0x696E, 0x6939, 0x6974, 0x693D, 0x6959, 0x6930, 0x6961, 0x695E, 0x695D, 0x6981, 0x696A, 0x69B2, 0x69AE, 0x69D0, 0x69BF, 0x69C1, 0x69D3, 0x69BE, 0x69CE, 0x5BE8, 0x69CA, 0x69DD, 0x69BB, 0x69C3, 0x69A7, 0x6A2E, 0x6991, 0x69A0, 0x699C, 0x6995, 0x69B4, 0x69DE, 0x69E8, 0x6A02, 0x6A1B, 0x69FF, 0x6B0A, 0x69F9, 0x69F2, 0x69E7, 0x6A05, 0x69B1, 0x6A1E, 0x69ED, 0x6A14, 0x69EB, 0x6A0A, 0x6A12, 0x6AC1, 0x6A23, 0x6A13, 0x6A44, 0x6A0C, 0x6A72, 0x6A36, 0x6A78, 0x6A47, 0x6A62, 0x6A59, 0x6A66, 0x6A48, 0x6A38, 0x6A22, 0x6A90, 0x6A8D, 0x6AA0, 0x6A84, 0x6AA2, 0x6AA3}, { /* category 61 */ 0x6A97, 0x8617, 0x6ABB, 0x6AC3, 0x6AC2, 0x6AB8, 0x6AB3, 0x6AAC, 0x6ADE, 0x6AD1, 0x6ADF, 0x6AAA, 0x6ADA, 0x6AEA, 0x6AFB, 0x6B05, 0x8616, 0x6AFA, 0x6B12, 0x6B16, 0x9B31, 0x6B1F, 0x6B38, 0x6B37, 0x76DC, 0x6B39, 0x98EE, 0x6B47, 0x6B43, 0x6B49, 0x6B50, 0x6B59, 0x6B54, 0x6B5B, 0x6B5F, 0x6B61, 0x6B78, 0x6B79, 0x6B7F, 0x6B80, 0x6B84, 0x6B83, 0x6B8D, 0x6B98, 0x6B95, 0x6B9E, 0x6BA4, 0x6BAA, 0x6BAB, 0x6BAF, 0x6BB2, 0x6BB1, 0x6BB3, 0x6BB7, 0x6BBC, 0x6BC6, 0x6BCB, 0x6BD3, 0x6BDF, 0x6BEC, 0x6BEB, 0x6BF3, 0x6BEF, 0x9EBE, 0x6C08, 0x6C13, 0x6C14, 0x6C1B, 0x6C24, 0x6C23, 0x6C5E, 0x6C55, 0x6C62, 0x6C6A, 0x6C82, 0x6C8D, 0x6C9A, 0x6C81, 0x6C9B, 0x6C7E, 0x6C68, 0x6C73, 0x6C92, 0x6C90, 0x6CC4, 0x6CF1, 0x6CD3, 0x6CBD, 0x6CD7, 0x6CC5, 0x6CDD, 0x6CAE, 0x6CB1, 0x6CBE}, { /* category 62 */ 0x6CBA, 0x6CDB, 0x6CEF, 0x6CD9, 0x6CEA, 0x6D1F, 0x884D, 0x6D36, 0x6D2B, 0x6D3D, 0x6D38, 0x6D19, 0x6D35, 0x6D33, 0x6D12, 0x6D0C, 0x6D63, 0x6D93, 0x6D64, 0x6D5A, 0x6D79, 0x6D59, 0x6D8E, 0x6D95, 0x6FE4, 0x6D85, 0x6DF9, 0x6E15, 0x6E0A, 0x6DB5, 0x6DC7, 0x6DE6, 0x6DB8, 0x6DC6, 0x6DEC, 0x6DDE, 0x6DCC, 0x6DE8, 0x6DD2, 0x6DC5, 0x6DFA, 0x6DD9, 0x6DE4, 0x6DD5, 0x6DEA, 0x6DEE, 0x6E2D, 0x6E6E, 0x6E2E, 0x6E19, 0x6E72, 0x6E5F, 0x6E3E, 0x6E23, 0x6E6B, 0x6E2B, 0x6E76, 0x6E4D, 0x6E1F, 0x6E43, 0x6E3A, 0x6E4E, 0x6E24, 0x6EFF, 0x6E1D, 0x6E38, 0x6E82, 0x6EAA, 0x6E98, 0x6EC9, 0x6EB7, 0x6ED3, 0x6EBD, 0x6EAF, 0x6EC4, 0x6EB2, 0x6ED4, 0x6ED5, 0x6E8F, 0x6EA5, 0x6EC2, 0x6E9F, 0x6F41, 0x6F11, 0x704C, 0x6EEC, 0x6EF8, 0x6EFE, 0x6F3F, 0x6EF2, 0x6F31, 0x6EEF, 0x6F32, 0x6ECC}, { /* category 63 */ 0x6F3E, 0x6F13, 0x6EF7, 0x6F86, 0x6F7A, 0x6F78, 0x6F81, 0x6F80, 0x6F6F, 0x6F5B, 0x6FF3, 0x6F6D, 0x6F82, 0x6F7C, 0x6F58, 0x6F8E, 0x6F91, 0x6FC2, 0x6F66, 0x6FB3, 0x6FA3, 0x6FA1, 0x6FA4, 0x6FB9, 0x6FC6, 0x6FAA, 0x6FDF, 0x6FD5, 0x6FEC, 0x6FD4, 0x6FD8, 0x6FF1, 0x6FEE, 0x6FDB, 0x7009, 0x700B, 0x6FFA, 0x7011, 0x7001, 0x700F, 0x6FFE, 0x701B, 0x701A, 0x6F74, 0x701D, 0x7018, 0x701F, 0x7030, 0x703E, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70AF, 0x70F1, 0x70AC, 0x70B8, 0x70B3, 0x70AE, 0x70DF, 0x70CB, 0x70DD, 0x70D9, 0x7109, 0x70FD, 0x711C, 0x7119, 0x7165, 0x7155, 0x7188, 0x7166, 0x7162, 0x714C, 0x7156, 0x716C, 0x718F, 0x71FB, 0x7184, 0x7195, 0x71A8, 0x71AC, 0x71D7, 0x71B9, 0x71BE, 0x71D2, 0x71C9, 0x71D4, 0x71CE, 0x71E0, 0x71EC, 0x71E7, 0x71F5, 0x71FC}, { /* category 64 */ 0x71F9, 0x71FF, 0x720D, 0x7210, 0x721B, 0x7228, 0x722D, 0x722C, 0x7230, 0x7232, 0x723B, 0x723C, 0x723F, 0x7240, 0x7246, 0x724B, 0x7258, 0x7274, 0x727E, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296, 0x72A2, 0x72A7, 0x72B9, 0x72B2, 0x72C3, 0x72C6, 0x72C4, 0x72CE, 0x72D2, 0x72E2, 0x72E0, 0x72E1, 0x72F9, 0x72F7, 0x500F, 0x7317, 0x730A, 0x731C, 0x7316, 0x731D, 0x7334, 0x732F, 0x7329, 0x7325, 0x733E, 0x734E, 0x734F, 0x9ED8, 0x7357, 0x736A, 0x7368, 0x7370, 0x7378, 0x7375, 0x737B, 0x737A, 0x73C8, 0x73B3, 0x73CE, 0x73BB, 0x73C0, 0x73E5, 0x73EE, 0x73DE, 0x74A2, 0x7405, 0x746F, 0x7425, 0x73F8, 0x7432, 0x743A, 0x7455, 0x743F, 0x745F, 0x7459, 0x7441, 0x745C, 0x7469, 0x7470, 0x7463, 0x746A, 0x7476, 0x747E, 0x748B, 0x749E, 0x74A7, 0x74CA, 0x74CF, 0x74D4, 0x73F1}, { /* category 65 */ 0x74E0, 0x74E3, 0x74E7, 0x74E9, 0x74EE, 0x74F2, 0x74F0, 0x74F1, 0x74F8, 0x74F7, 0x7504, 0x7503, 0x7505, 0x750C, 0x750E, 0x750D, 0x7515, 0x7513, 0x751E, 0x7526, 0x752C, 0x753C, 0x7544, 0x754D, 0x754A, 0x7549, 0x755B, 0x7546, 0x755A, 0x7569, 0x7564, 0x7567, 0x756B, 0x756D, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758A, 0x7589, 0x7582, 0x7594, 0x759A, 0x759D, 0x75A5, 0x75A3, 0x75C2, 0x75B3, 0x75C3, 0x75B5, 0x75BD, 0x75B8, 0x75BC, 0x75B1, 0x75CD, 0x75CA, 0x75D2, 0x75D9, 0x75E3, 0x75DE, 0x75FE, 0x75FF, 0x75FC, 0x7601, 0x75F0, 0x75FA, 0x75F2, 0x75F3, 0x760B, 0x760D, 0x7609, 0x761F, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, 0x7630, 0x763B, 0x7647, 0x7648, 0x7646, 0x765C, 0x7658, 0x7661, 0x7662, 0x7668, 0x7669, 0x766A, 0x7667, 0x766C, 0x7670}, { /* category 66 */ 0x7672, 0x7676, 0x7678, 0x767C, 0x7680, 0x7683, 0x7688, 0x768B, 0x768E, 0x7696, 0x7693, 0x7699, 0x769A, 0x76B0, 0x76B4, 0x76B8, 0x76B9, 0x76BA, 0x76C2, 0x76CD, 0x76D6, 0x76D2, 0x76DE, 0x76E1, 0x76E5, 0x76E7, 0x76EA, 0x862F, 0x76FB, 0x7708, 0x7707, 0x7704, 0x7729, 0x7724, 0x771E, 0x7725, 0x7726, 0x771B, 0x7737, 0x7738, 0x7747, 0x775A, 0x7768, 0x776B, 0x775B, 0x7765, 0x777F, 0x777E, 0x7779, 0x778E, 0x778B, 0x7791, 0x77A0, 0x779E, 0x77B0, 0x77B6, 0x77B9, 0x77BF, 0x77BC, 0x77BD, 0x77BB, 0x77C7, 0x77CD, 0x77D7, 0x77DA, 0x77DC, 0x77E3, 0x77EE, 0x77FC, 0x780C, 0x7812, 0x7926, 0x7820, 0x792A, 0x7845, 0x788E, 0x7874, 0x7886, 0x787C, 0x789A, 0x788C, 0x78A3, 0x78B5, 0x78AA, 0x78AF, 0x78D1, 0x78C6, 0x78CB, 0x78D4, 0x78BE, 0x78BC, 0x78C5, 0x78CA, 0x78EC}, { /* category 67 */ 0x78E7, 0x78DA, 0x78FD, 0x78F4, 0x7907, 0x7912, 0x7911, 0x7919, 0x792C, 0x792B, 0x7940, 0x7960, 0x7957, 0x795F, 0x795A, 0x7955, 0x7953, 0x797A, 0x797F, 0x798A, 0x799D, 0x79A7, 0x9F4B, 0x79AA, 0x79AE, 0x79B3, 0x79B9, 0x79BA, 0x79C9, 0x79D5, 0x79E7, 0x79EC, 0x79E1, 0x79E3, 0x7A08, 0x7A0D, 0x7A18, 0x7A19, 0x7A20, 0x7A1F, 0x7980, 0x7A31, 0x7A3B, 0x7A3E, 0x7A37, 0x7A43, 0x7A57, 0x7A49, 0x7A61, 0x7A62, 0x7A69, 0x9F9D, 0x7A70, 0x7A79, 0x7A7D, 0x7A88, 0x7A97, 0x7A95, 0x7A98, 0x7A96, 0x7AA9, 0x7AC8, 0x7AB0, 0x7AB6, 0x7AC5, 0x7AC4, 0x7ABF, 0x9083, 0x7AC7, 0x7ACA, 0x7ACD, 0x7ACF, 0x7AD5, 0x7AD3, 0x7AD9, 0x7ADA, 0x7ADD, 0x7AE1, 0x7AE2, 0x7AE6, 0x7AED, 0x7AF0, 0x7B02, 0x7B0F, 0x7B0A, 0x7B06, 0x7B33, 0x7B18, 0x7B19, 0x7B1E, 0x7B35, 0x7B28, 0x7B36, 0x7B50}, { /* category 68 */ 0x7B7A, 0x7B04, 0x7B4D, 0x7B0B, 0x7B4C, 0x7B45, 0x7B75, 0x7B65, 0x7B74, 0x7B67, 0x7B70, 0x7B71, 0x7B6C, 0x7B6E, 0x7B9D, 0x7B98, 0x7B9F, 0x7B8D, 0x7B9C, 0x7B9A, 0x7B8B, 0x7B92, 0x7B8F, 0x7B5D, 0x7B99, 0x7BCB, 0x7BC1, 0x7BCC, 0x7BCF, 0x7BB4, 0x7BC6, 0x7BDD, 0x7BE9, 0x7C11, 0x7C14, 0x7BE6, 0x7BE5, 0x7C60, 0x7C00, 0x7C07, 0x7C13, 0x7BF3, 0x7BF7, 0x7C17, 0x7C0D, 0x7BF6, 0x7C23, 0x7C27, 0x7C2A, 0x7C1F, 0x7C37, 0x7C2B, 0x7C3D, 0x7C4C, 0x7C43, 0x7C54, 0x7C4F, 0x7C40, 0x7C50, 0x7C58, 0x7C5F, 0x7C64, 0x7C56, 0x7C65, 0x7C6C, 0x7C75, 0x7C83, 0x7C90, 0x7CA4, 0x7CAD, 0x7CA2, 0x7CAB, 0x7CA1, 0x7CA8, 0x7CB3, 0x7CB2, 0x7CB1, 0x7CAE, 0x7CB9, 0x7CBD, 0x7CC0, 0x7CC5, 0x7CC2, 0x7CD8, 0x7CD2, 0x7CDC, 0x7CE2, 0x9B3B, 0x7CEF, 0x7CF2, 0x7CF4, 0x7CF6, 0x7CFA, 0x7D06}, { /* category 69 */ 0x7D02, 0x7D1C, 0x7D15, 0x7D0A, 0x7D45, 0x7D4B, 0x7D2E, 0x7D32, 0x7D3F, 0x7D35, 0x7D46, 0x7D73, 0x7D56, 0x7D4E, 0x7D72, 0x7D68, 0x7D6E, 0x7D4F, 0x7D63, 0x7D93, 0x7D89, 0x7D5B, 0x7D8F, 0x7D7D, 0x7D9B, 0x7DBA, 0x7DAE, 0x7DA3, 0x7DB5, 0x7DC7, 0x7DBD, 0x7DAB, 0x7E3D, 0x7DA2, 0x7DAF, 0x7DDC, 0x7DB8, 0x7D9F, 0x7DB0, 0x7DD8, 0x7DDD, 0x7DE4, 0x7DDE, 0x7DFB, 0x7DF2, 0x7DE1, 0x7E05, 0x7E0A, 0x7E23, 0x7E21, 0x7E12, 0x7E31, 0x7E1F, 0x7E09, 0x7E0B, 0x7E22, 0x7E46, 0x7E66, 0x7E3B, 0x7E35, 0x7E39, 0x7E43, 0x7E37, 0x7E32, 0x7E3A, 0x7E67, 0x7E5D, 0x7E56, 0x7E5E, 0x7E59, 0x7E5A, 0x7E79, 0x7E6A, 0x7E69, 0x7E7C, 0x7E7B, 0x7E83, 0x7DD5, 0x7E7D, 0x8FAE, 0x7E7F, 0x7E88, 0x7E89, 0x7E8C, 0x7E92, 0x7E90, 0x7E93, 0x7E94, 0x7E96, 0x7E8E, 0x7E9B, 0x7E9C, 0x7F38, 0x7F3A}, { /* category 70 */ 0x7F45, 0x7F4C, 0x7F4D, 0x7F4E, 0x7F50, 0x7F51, 0x7F55, 0x7F54, 0x7F58, 0x7F5F, 0x7F60, 0x7F68, 0x7F69, 0x7F67, 0x7F78, 0x7F82, 0x7F86, 0x7F83, 0x7F88, 0x7F87, 0x7F8C, 0x7F94, 0x7F9E, 0x7F9D, 0x7F9A, 0x7FA3, 0x7FAF, 0x7FB2, 0x7FB9, 0x7FAE, 0x7FB6, 0x7FB8, 0x8B71, 0x7FC5, 0x7FC6, 0x7FCA, 0x7FD5, 0x7FD4, 0x7FE1, 0x7FE6, 0x7FE9, 0x7FF3, 0x7FF9, 0x98DC, 0x8006, 0x8004, 0x800B, 0x8012, 0x8018, 0x8019, 0x801C, 0x8021, 0x8028, 0x803F, 0x803B, 0x804A, 0x8046, 0x8052, 0x8058, 0x805A, 0x805F, 0x8062, 0x8068, 0x8073, 0x8072, 0x8070, 0x8076, 0x8079, 0x807D, 0x807F, 0x8084, 0x8086, 0x8085, 0x809B, 0x8093, 0x809A, 0x80AD, 0x5190, 0x80AC, 0x80DB, 0x80E5, 0x80D9, 0x80DD, 0x80C4, 0x80DA, 0x80D6, 0x8109, 0x80EF, 0x80F1, 0x811B, 0x8129, 0x8123, 0x812F, 0x814B}, { /* category 71 */ 0x968B, 0x8146, 0x813E, 0x8153, 0x8151, 0x80FC, 0x8171, 0x816E, 0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818A, 0x8180, 0x8182, 0x81A0, 0x8195, 0x81A4, 0x81A3, 0x815F, 0x8193, 0x81A9, 0x81B0, 0x81B5, 0x81BE, 0x81B8, 0x81BD, 0x81C0, 0x81C2, 0x81BA, 0x81C9, 0x81CD, 0x81D1, 0x81D9, 0x81D8, 0x81C8, 0x81DA, 0x81DF, 0x81E0, 0x81E7, 0x81FA, 0x81FB, 0x81FE, 0x8201, 0x8202, 0x8205, 0x8207, 0x820A, 0x820D, 0x8210, 0x8216, 0x8229, 0x822B, 0x8238, 0x8233, 0x8240, 0x8259, 0x8258, 0x825D, 0x825A, 0x825F, 0x8264, 0x8262, 0x8268, 0x826A, 0x826B, 0x822E, 0x8271, 0x8277, 0x8278, 0x827E, 0x828D, 0x8292, 0x82AB, 0x829F, 0x82BB, 0x82AC, 0x82E1, 0x82E3, 0x82DF, 0x82D2, 0x82F4, 0x82F3, 0x82FA, 0x8393, 0x8303, 0x82FB, 0x82F9, 0x82DE, 0x8306, 0x82DC, 0x8309, 0x82D9}, { /* category 72 */ 0x8335, 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350, 0x8345, 0x832F, 0x832B, 0x8317, 0x8318, 0x8385, 0x839A, 0x83AA, 0x839F, 0x83A2, 0x8396, 0x8323, 0x838E, 0x8387, 0x838A, 0x837C, 0x83B5, 0x8373, 0x8375, 0x83A0, 0x8389, 0x83A8, 0x83F4, 0x8413, 0x83EB, 0x83CE, 0x83FD, 0x8403, 0x83D8, 0x840B, 0x83C1, 0x83F7, 0x8407, 0x83E0, 0x83F2, 0x840D, 0x8422, 0x8420, 0x83BD, 0x8438, 0x8506, 0x83FB, 0x846D, 0x842A, 0x843C, 0x855A, 0x8484, 0x8477, 0x846B, 0x84AD, 0x846E, 0x8482, 0x8469, 0x8446, 0x842C, 0x846F, 0x8479, 0x8435, 0x84CA, 0x8462, 0x84B9, 0x84BF, 0x849F, 0x84D9, 0x84CD, 0x84BB, 0x84DA, 0x84D0, 0x84C1, 0x84C6, 0x84D6, 0x84A1, 0x8521, 0x84FF, 0x84F4, 0x8517, 0x8518, 0x852C, 0x851F, 0x8515, 0x8514, 0x84FC, 0x8540, 0x8563, 0x8558, 0x8548}, { /* category 73 */ 0x8541, 0x8602, 0x854B, 0x8555, 0x8580, 0x85A4, 0x8588, 0x8591, 0x858A, 0x85A8, 0x856D, 0x8594, 0x859B, 0x85EA, 0x8587, 0x859C, 0x8577, 0x857E, 0x8590, 0x85C9, 0x85BA, 0x85CF, 0x85B9, 0x85D0, 0x85D5, 0x85DD, 0x85E5, 0x85DC, 0x85F9, 0x860A, 0x8613, 0x860B, 0x85FE, 0x85FA, 0x8606, 0x8622, 0x861A, 0x8630, 0x863F, 0x864D, 0x4E55, 0x8654, 0x865F, 0x8667, 0x8671, 0x8693, 0x86A3, 0x86A9, 0x86AA, 0x868B, 0x868C, 0x86B6, 0x86AF, 0x86C4, 0x86C6, 0x86B0, 0x86C9, 0x8823, 0x86AB, 0x86D4, 0x86DE, 0x86E9, 0x86EC, 0x86DF, 0x86DB, 0x86EF, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, 0x86FB, 0x8711, 0x8709, 0x870D, 0x86F9, 0x870A, 0x8734, 0x873F, 0x8737, 0x873B, 0x8725, 0x8729, 0x871A, 0x8760, 0x875F, 0x8778, 0x874C, 0x874E, 0x8774, 0x8757, 0x8768, 0x876E, 0x8759}, { /* category 74 */ 0x8753, 0x8763, 0x876A, 0x8805, 0x87A2, 0x879F, 0x8782, 0x87AF, 0x87CB, 0x87BD, 0x87C0, 0x87D0, 0x96D6, 0x87AB, 0x87C4, 0x87B3, 0x87C7, 0x87C6, 0x87BB, 0x87EF, 0x87F2, 0x87E0, 0x880F, 0x880D, 0x87FE, 0x87F6, 0x87F7, 0x880E, 0x87D2, 0x8811, 0x8816, 0x8815, 0x8822, 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883B, 0x8844, 0x8842, 0x8852, 0x8859, 0x885E, 0x8862, 0x886B, 0x8881, 0x887E, 0x889E, 0x8875, 0x887D, 0x88B5, 0x8872, 0x8882, 0x8897, 0x8892, 0x88AE, 0x8899, 0x88A2, 0x888D, 0x88A4, 0x88B0, 0x88BF, 0x88B1, 0x88C3, 0x88C4, 0x88D4, 0x88D8, 0x88D9, 0x88DD, 0x88F9, 0x8902, 0x88FC, 0x88F4, 0x88E8, 0x88F2, 0x8904, 0x890C, 0x890A, 0x8913, 0x8943, 0x891E, 0x8925, 0x892A, 0x892B, 0x8941, 0x8944, 0x893B, 0x8936, 0x8938, 0x894C, 0x891D, 0x8960, 0x895E}, { /* category 75 */ 0x8966, 0x8964, 0x896D, 0x896A, 0x896F, 0x8974, 0x8977, 0x897E, 0x8983, 0x8988, 0x898A, 0x8993, 0x8998, 0x89A1, 0x89A9, 0x89A6, 0x89AC, 0x89AF, 0x89B2, 0x89BA, 0x89BD, 0x89BF, 0x89C0, 0x89DA, 0x89DC, 0x89DD, 0x89E7, 0x89F4, 0x89F8, 0x8A03, 0x8A16, 0x8A10, 0x8A0C, 0x8A1B, 0x8A1D, 0x8A25, 0x8A36, 0x8A41, 0x8A5B, 0x8A52, 0x8A46, 0x8A48, 0x8A7C, 0x8A6D, 0x8A6C, 0x8A62, 0x8A85, 0x8A82, 0x8A84, 0x8AA8, 0x8AA1, 0x8A91, 0x8AA5, 0x8AA6, 0x8A9A, 0x8AA3, 0x8AC4, 0x8ACD, 0x8AC2, 0x8ADA, 0x8AEB, 0x8AF3, 0x8AE7, 0x8AE4, 0x8AF1, 0x8B14, 0x8AE0, 0x8AE2, 0x8AF7, 0x8ADE, 0x8ADB, 0x8B0C, 0x8B07, 0x8B1A, 0x8AE1, 0x8B16, 0x8B10, 0x8B17, 0x8B20, 0x8B33, 0x97AB, 0x8B26, 0x8B2B, 0x8B3E, 0x8B28, 0x8B41, 0x8B4C, 0x8B4F, 0x8B4E, 0x8B49, 0x8B56, 0x8B5B, 0x8B5A, 0x8B6B}, { /* category 76 */ 0x8B5F, 0x8B6C, 0x8B6F, 0x8B74, 0x8B7D, 0x8B80, 0x8B8C, 0x8B8E, 0x8B92, 0x8B93, 0x8B96, 0x8B99, 0x8B9A, 0x8C3A, 0x8C41, 0x8C3F, 0x8C48, 0x8C4C, 0x8C4E, 0x8C50, 0x8C55, 0x8C62, 0x8C6C, 0x8C78, 0x8C7A, 0x8C82, 0x8C89, 0x8C85, 0x8C8A, 0x8C8D, 0x8C8E, 0x8C94, 0x8C7C, 0x8C98, 0x621D, 0x8CAD, 0x8CAA, 0x8CBD, 0x8CB2, 0x8CB3, 0x8CAE, 0x8CB6, 0x8CC8, 0x8CC1, 0x8CE4, 0x8CE3, 0x8CDA, 0x8CFD, 0x8CFA, 0x8CFB, 0x8D04, 0x8D05, 0x8D0A, 0x8D07, 0x8D0F, 0x8D0D, 0x8D10, 0x9F4E, 0x8D13, 0x8CCD, 0x8D14, 0x8D16, 0x8D67, 0x8D6D, 0x8D71, 0x8D73, 0x8D81, 0x8D99, 0x8DC2, 0x8DBE, 0x8DBA, 0x8DCF, 0x8DDA, 0x8DD6, 0x8DCC, 0x8DDB, 0x8DCB, 0x8DEA, 0x8DEB, 0x8DDF, 0x8DE3, 0x8DFC, 0x8E08, 0x8E09, 0x8DFF, 0x8E1D, 0x8E1E, 0x8E10, 0x8E1F, 0x8E42, 0x8E35, 0x8E30, 0x8E34, 0x8E4A}, { /* category 77 */ 0x8E47, 0x8E49, 0x8E4C, 0x8E50, 0x8E48, 0x8E59, 0x8E64, 0x8E60, 0x8E2A, 0x8E63, 0x8E55, 0x8E76, 0x8E72, 0x8E7C, 0x8E81, 0x8E87, 0x8E85, 0x8E84, 0x8E8B, 0x8E8A, 0x8E93, 0x8E91, 0x8E94, 0x8E99, 0x8EAA, 0x8EA1, 0x8EAC, 0x8EB0, 0x8EC6, 0x8EB1, 0x8EBE, 0x8EC5, 0x8EC8, 0x8ECB, 0x8EDB, 0x8EE3, 0x8EFC, 0x8EFB, 0x8EEB, 0x8EFE, 0x8F0A, 0x8F05, 0x8F15, 0x8F12, 0x8F19, 0x8F13, 0x8F1C, 0x8F1F, 0x8F1B, 0x8F0C, 0x8F26, 0x8F33, 0x8F3B, 0x8F39, 0x8F45, 0x8F42, 0x8F3E, 0x8F4C, 0x8F49, 0x8F46, 0x8F4E, 0x8F57, 0x8F5C, 0x8F62, 0x8F63, 0x8F64, 0x8F9C, 0x8F9F, 0x8FA3, 0x8FAD, 0x8FAF, 0x8FB7, 0x8FDA, 0x8FE5, 0x8FE2, 0x8FEA, 0x8FEF, 0x9087, 0x8FF4, 0x9005, 0x8FF9, 0x8FFA, 0x9011, 0x9015, 0x9021, 0x900D, 0x901E, 0x9016, 0x900B, 0x9027, 0x9036, 0x9035, 0x9039, 0x8FF8}, { /* category 78 */ 0x904F, 0x9050, 0x9051, 0x9052, 0x900E, 0x9049, 0x903E, 0x9056, 0x9058, 0x905E, 0x9068, 0x906F, 0x9076, 0x96A8, 0x9072, 0x9082, 0x907D, 0x9081, 0x9080, 0x908A, 0x9089, 0x908F, 0x90A8, 0x90AF, 0x90B1, 0x90B5, 0x90E2, 0x90E4, 0x6248, 0x90DB, 0x9102, 0x9112, 0x9119, 0x9132, 0x9130, 0x914A, 0x9156, 0x9158, 0x9163, 0x9165, 0x9169, 0x9173, 0x9172, 0x918B, 0x9189, 0x9182, 0x91A2, 0x91AB, 0x91AF, 0x91AA, 0x91B5, 0x91B4, 0x91BA, 0x91C0, 0x91C1, 0x91C9, 0x91CB, 0x91D0, 0x91D6, 0x91DF, 0x91E1, 0x91DB, 0x91FC, 0x91F5, 0x91F6, 0x921E, 0x91FF, 0x9214, 0x922C, 0x9215, 0x9211, 0x925E, 0x9257, 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923F, 0x924B, 0x9250, 0x929C, 0x9296, 0x9293, 0x929B, 0x925A, 0x92CF, 0x92B9, 0x92B7, 0x92E9, 0x930F, 0x92FA, 0x9344, 0x932E}, { /* category 79 */ 0x9319, 0x9322, 0x931A, 0x9323, 0x933A, 0x9335, 0x933B, 0x935C, 0x9360, 0x937C, 0x936E, 0x9356, 0x93B0, 0x93AC, 0x93AD, 0x9394, 0x93B9, 0x93D6, 0x93D7, 0x93E8, 0x93E5, 0x93D8, 0x93C3, 0x93DD, 0x93D0, 0x93C8, 0x93E4, 0x941A, 0x9414, 0x9413, 0x9403, 0x9407, 0x9410, 0x9436, 0x942B, 0x9435, 0x9421, 0x943A, 0x9441, 0x9452, 0x9444, 0x945B, 0x9460, 0x9462, 0x945E, 0x946A, 0x9229, 0x9470, 0x9475, 0x9477, 0x947D, 0x945A, 0x947C, 0x947E, 0x9481, 0x947F, 0x9582, 0x9587, 0x958A, 0x9594, 0x9596, 0x9598, 0x9599, 0x95A0, 0x95A8, 0x95A7, 0x95AD, 0x95BC, 0x95BB, 0x95B9, 0x95BE, 0x95CA, 0x6FF6, 0x95C3, 0x95CD, 0x95CC, 0x95D5, 0x95D4, 0x95D6, 0x95DC, 0x95E1, 0x95E5, 0x95E2, 0x9621, 0x9628, 0x962E, 0x962F, 0x9642, 0x964C, 0x964F, 0x964B, 0x9677, 0x965C, 0x965E}, { /* category 80 */ 0x965D, 0x965F, 0x9666, 0x9672, 0x966C, 0x968D, 0x9698, 0x9695, 0x9697, 0x96AA, 0x96A7, 0x96B1, 0x96B2, 0x96B0, 0x96B4, 0x96B6, 0x96B8, 0x96B9, 0x96CE, 0x96CB, 0x96C9, 0x96CD, 0x894D, 0x96DC, 0x970D, 0x96D5, 0x96F9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970E, 0x9711, 0x970F, 0x9716, 0x9719, 0x9724, 0x972A, 0x9730, 0x9739, 0x973D, 0x973E, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975C, 0x9760, 0x9764, 0x9766, 0x9768, 0x52D2, 0x976B, 0x9771, 0x9779, 0x9785, 0x977C, 0x9781, 0x977A, 0x9786, 0x978B, 0x978F, 0x9790, 0x979C, 0x97A8, 0x97A6, 0x97A3, 0x97B3, 0x97B4, 0x97C3, 0x97C6, 0x97C8, 0x97CB, 0x97DC, 0x97ED, 0x9F4F, 0x97F2, 0x7ADF, 0x97F6, 0x97F5, 0x980F, 0x980C, 0x9838, 0x9824, 0x9821, 0x9837, 0x983D, 0x9846, 0x984F, 0x984B, 0x986B, 0x986F, 0x9870}, { /* category 81 */ 0x9871, 0x9874, 0x9873, 0x98AA, 0x98AF, 0x98B1, 0x98B6, 0x98C4, 0x98C3, 0x98C6, 0x98E9, 0x98EB, 0x9903, 0x9909, 0x9912, 0x9914, 0x9918, 0x9921, 0x991D, 0x991E, 0x9924, 0x9920, 0x992C, 0x992E, 0x993D, 0x993E, 0x9942, 0x9949, 0x9945, 0x9950, 0x994B, 0x9951, 0x9952, 0x994C, 0x9955, 0x9997, 0x9998, 0x99A5, 0x99AD, 0x99AE, 0x99BC, 0x99DF, 0x99DB, 0x99DD, 0x99D8, 0x99D1, 0x99ED, 0x99EE, 0x99F1, 0x99F2, 0x99FB, 0x99F8, 0x9A01, 0x9A0F, 0x9A05, 0x99E2, 0x9A19, 0x9A2B, 0x9A37, 0x9A45, 0x9A42, 0x9A40, 0x9A43, 0x9A3E, 0x9A55, 0x9A4D, 0x9A5B, 0x9A57, 0x9A5F, 0x9A62, 0x9A65, 0x9A64, 0x9A69, 0x9A6B, 0x9A6A, 0x9AAD, 0x9AB0, 0x9ABC, 0x9AC0, 0x9ACF, 0x9AD1, 0x9AD3, 0x9AD4, 0x9ADE, 0x9ADF, 0x9AE2, 0x9AE3, 0x9AE6, 0x9AEF, 0x9AEB, 0x9AEE, 0x9AF4, 0x9AF1, 0x9AF7}, { /* category 82 */ 0x9AFB, 0x9B06, 0x9B18, 0x9B1A, 0x9B1F, 0x9B22, 0x9B23, 0x9B25, 0x9B27, 0x9B28, 0x9B29, 0x9B2A, 0x9B2E, 0x9B2F, 0x9B32, 0x9B44, 0x9B43, 0x9B4F, 0x9B4D, 0x9B4E, 0x9B51, 0x9B58, 0x9B74, 0x9B93, 0x9B83, 0x9B91, 0x9B96, 0x9B97, 0x9B9F, 0x9BA0, 0x9BA8, 0x9BB4, 0x9BC0, 0x9BCA, 0x9BB9, 0x9BC6, 0x9BCF, 0x9BD1, 0x9BD2, 0x9BE3, 0x9BE2, 0x9BE4, 0x9BD4, 0x9BE1, 0x9C3A, 0x9BF2, 0x9BF1, 0x9BF0, 0x9C15, 0x9C14, 0x9C09, 0x9C13, 0x9C0C, 0x9C06, 0x9C08, 0x9C12, 0x9C0A, 0x9C04, 0x9C2E, 0x9C1B, 0x9C25, 0x9C24, 0x9C21, 0x9C30, 0x9C47, 0x9C32, 0x9C46, 0x9C3E, 0x9C5A, 0x9C60, 0x9C67, 0x9C76, 0x9C78, 0x9CE7, 0x9CEC, 0x9CF0, 0x9D09, 0x9D08, 0x9CEB, 0x9D03, 0x9D06, 0x9D2A, 0x9D26, 0x9DAF, 0x9D23, 0x9D1F, 0x9D44, 0x9D15, 0x9D12, 0x9D41, 0x9D3F, 0x9D3E, 0x9D46, 0x9D48}, { /* category 83 */ 0x9D5D, 0x9D5E, 0x9D64, 0x9D51, 0x9D50, 0x9D59, 0x9D72, 0x9D89, 0x9D87, 0x9DAB, 0x9D6F, 0x9D7A, 0x9D9A, 0x9DA4, 0x9DA9, 0x9DB2, 0x9DC4, 0x9DC1, 0x9DBB, 0x9DB8, 0x9DBA, 0x9DC6, 0x9DCF, 0x9DC2, 0x9DD9, 0x9DD3, 0x9DF8, 0x9DE6, 0x9DED, 0x9DEF, 0x9DFD, 0x9E1A, 0x9E1B, 0x9E1E, 0x9E75, 0x9E79, 0x9E7D, 0x9E81, 0x9E88, 0x9E8B, 0x9E8C, 0x9E92, 0x9E95, 0x9E91, 0x9E9D, 0x9EA5, 0x9EA9, 0x9EB8, 0x9EAA, 0x9EAD, 0x9761, 0x9ECC, 0x9ECE, 0x9ECF, 0x9ED0, 0x9ED4, 0x9EDC, 0x9EDE, 0x9EDD, 0x9EE0, 0x9EE5, 0x9EE8, 0x9EEF, 0x9EF4, 0x9EF6, 0x9EF7, 0x9EF9, 0x9EFB, 0x9EFC, 0x9EFD, 0x9F07, 0x9F08, 0x76B7, 0x9F15, 0x9F21, 0x9F2C, 0x9F3E, 0x9F4A, 0x9F52, 0x9F54, 0x9F63, 0x9F5F, 0x9F60, 0x9F61, 0x9F66, 0x9F67, 0x9F6C, 0x9F6A, 0x9F77, 0x9F72, 0x9F76, 0x9F95, 0x9F9C, 0x9FA0}, { /* category 84 */ 0x582F, 0x69C7, 0x9059, 0x7464, 0x51DC, 0x7199, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 85 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 86 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 87 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 88 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}, { /* category 89 */ 0x7E8A, 0x891C, 0x9348, 0x9288, 0x84DC, 0x4FC9, 0x70BB, 0x6631, 0x68C8, 0x92F9, 0x66FB, 0x5F45, 0x4E28, 0x4EE1, 0x4EFC, 0x4F00, 0x4F03, 0x4F39, 0x4F56, 0x4F92, 0x4F8A, 0x4F9A, 0x4F94, 0x4FCD, 0x5040, 0x5022, 0x4FFF, 0x501E, 0x5046, 0x5070, 0x5042, 0x5094, 0x50F4, 0x50D8, 0x514A, 0x5164, 0x519D, 0x51BE, 0x51EC, 0x5215, 0x529C, 0x52A6, 0x52C0, 0x52DB, 0x5300, 0x5307, 0x5324, 0x5372, 0x5393, 0x53B2, 0x53DD, 0xFA0E, 0x549C, 0x548A, 0x54A9, 0x54FF, 0x5586, 0x5759, 0x5765, 0x57AC, 0x57C8, 0x57C7, 0xFA0F, 0xFA10, 0x589E, 0x58B2, 0x590B, 0x5953, 0x595B, 0x595D, 0x5963, 0x59A4, 0x59BA, 0x5B56, 0x5BC0, 0x752F, 0x5BD8, 0x5BEC, 0x5C1E, 0x5CA6, 0x5CBA, 0x5CF5, 0x5D27, 0x5D53, 0xFA11, 0x5D42, 0x5D6D, 0x5DB8, 0x5DB9, 0x5DD0, 0x5F21, 0x5F34, 0x5F67, 0x5FB7}, { /* category 90 */ 0x5FDE, 0x605D, 0x6085, 0x608A, 0x60DE, 0x60D5, 0x6120, 0x60F2, 0x6111, 0x6137, 0x6130, 0x6198, 0x6213, 0x62A6, 0x63F5, 0x6460, 0x649D, 0x64CE, 0x654E, 0x6600, 0x6615, 0x663B, 0x6609, 0x662E, 0x661E, 0x6624, 0x6665, 0x6657, 0x6659, 0xFA12, 0x6673, 0x6699, 0x66A0, 0x66B2, 0x66BF, 0x66FA, 0x670E, 0xF929, 0x6766, 0x67BB, 0x6852, 0x67C0, 0x6801, 0x6844, 0x68CF, 0xFA13, 0x6968, 0xFA14, 0x6998, 0x69E2, 0x6A30, 0x6A6B, 0x6A46, 0x6A73, 0x6A7E, 0x6AE2, 0x6AE4, 0x6BD6, 0x6C3F, 0x6C5C, 0x6C86, 0x6C6F, 0x6CDA, 0x6D04, 0x6D87, 0x6D6F, 0x6D96, 0x6DAC, 0x6DCF, 0x6DF8, 0x6DF2, 0x6DFC, 0x6E39, 0x6E5C, 0x6E27, 0x6E3C, 0x6EBF, 0x6F88, 0x6FB5, 0x6FF5, 0x7005, 0x7007, 0x7028, 0x7085, 0x70AB, 0x710F, 0x7104, 0x715C, 0x7146, 0x7147, 0xFA15, 0x71C1, 0x71FE, 0x72B1}, { /* category 91 */ 0x72BE, 0x7324, 0xFA16, 0x7377, 0x73BD, 0x73C9, 0x73D6, 0x73E3, 0x73D2, 0x7407, 0x73F5, 0x7426, 0x742A, 0x7429, 0x742E, 0x7462, 0x7489, 0x749F, 0x7501, 0x756F, 0x7682, 0x769C, 0x769E, 0x769B, 0x76A6, 0xFA17, 0x7746, 0x52AF, 0x7821, 0x784E, 0x7864, 0x787A, 0x7930, 0xFA18, 0xFA19, 0xFA1A, 0x7994, 0xFA1B, 0x799B, 0x7AD1, 0x7AE7, 0xFA1C, 0x7AEB, 0x7B9E, 0xFA1D, 0x7D48, 0x7D5C, 0x7DB7, 0x7DA0, 0x7DD6, 0x7E52, 0x7F47, 0x7FA1, 0xFA1E, 0x8301, 0x8362, 0x837F, 0x83C7, 0x83F6, 0x8448, 0x84B4, 0x8553, 0x8559, 0x856B, 0xFA1F, 0x85B0, 0xFA20, 0xFA21, 0x8807, 0x88F5, 0x8A12, 0x8A37, 0x8A79, 0x8AA7, 0x8ABE, 0x8ADF, 0xFA22, 0x8AF6, 0x8B53, 0x8B7F, 0x8CF0, 0x8CF4, 0x8D12, 0x8D76, 0xFA23, 0x8ECF, 0xFA24, 0xFA25, 0x9067, 0x90DE, 0xFA26, 0x9115, 0x9127, 0x91DA}, { /* category 92 */ 0x91D7, 0x91DE, 0x91ED, 0x91EE, 0x91E4, 0x91E5, 0x9206, 0x9210, 0x920A, 0x923A, 0x9240, 0x923C, 0x924E, 0x9259, 0x9251, 0x9239, 0x9267, 0x92A7, 0x9277, 0x9278, 0x92E7, 0x92D7, 0x92D9, 0x92D0, 0xFA27, 0x92D5, 0x92E0, 0x92D3, 0x9325, 0x9321, 0x92FB, 0xFA28, 0x931E, 0x92FF, 0x931D, 0x9302, 0x9370, 0x9357, 0x93A4, 0x93C6, 0x93DE, 0x93F8, 0x9431, 0x9445, 0x9448, 0x9592, 0xF9DC, 0xFA29, 0x969D, 0x96AF, 0x9733, 0x973B, 0x9743, 0x974D, 0x974F, 0x9751, 0x9755, 0x9857, 0x9865, 0xFA2A, 0xFA2B, 0x9927, 0xFA2C, 0x999E, 0x9A4E, 0x9AD9, 0x9ADC, 0x9B75, 0x9B72, 0x9B8F, 0x9BB1, 0x9BBB, 0x9C00, 0x9D70, 0x9D6B, 0xFA2D, 0x9E19, 0x9ED1, 0x0000, 0x0000, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0xFFE2, 0xFFE4, 0xFF07, 0xFF02}}; #pragma GCC visibility pop #endif /* JISX0208_H */ libwmf-0.2.13/src/extra/gd/mathmake.c000066400000000000000000000017621441723000300173140ustar00rootroot00000000000000#include #include #define scale 1024 int basis[91]; int cost[360]; main (void) { int i; printf ("#define costScale %d\n", scale); printf ("int cost[] = {\n "); for (i = 0; (i <= 90); i++) { basis[i] = cos ((double) i * .0174532925) * scale; } for (i = 0; (i < 90); i++) { printf ("%d,\n ", cost[i] = basis[i]); } for (i = 90; (i < 180); i++) { printf ("%d,\n ", cost[i] = -basis[180 - i]); } for (i = 180; (i < 270); i++) { printf ("%d,\n ", cost[i] = -basis[i - 180]); } for (i = 270; (i < 359); i++) { printf ("%d,\n ", cost[i] = basis[360 - i]); } printf ("%d\n", cost[359] = basis[1]); printf ("};\n"); printf ("#define sintScale %d\n", scale); printf ("int sint[] = {\n "); for (i = 0; (i < 360); i++) { int val; val = cost[(i + 270) % 360]; if (i != 359) { printf ("%d,\n ", val); } else { printf ("%d\n", val); } } printf ("};\n"); } libwmf-0.2.13/src/extra/gd/pngtogd.c000066400000000000000000000017071441723000300171660ustar00rootroot00000000000000 #include #include "gd.h" /* A short program which converts a .png file into a .gd file, for your convenience in creating images on the fly from a basis image that must be loaded quickly. The .gd format is not intended to be a general-purpose format. */ int main (int argc, char **argv) { gdImagePtr im; FILE *in, *out; if (argc != 3) { fprintf (stderr, "Usage: pngtogd filename.png filename.gd\n"); exit (1); } in = fopen (argv[1], "rb"); if (!in) { fprintf (stderr, "Input file does not exist!\n"); exit (1); } im = gdImageCreateFromPng (in); fclose (in); if (!im) { fprintf (stderr, "Input is not in PNG format!\n"); exit (1); } out = fopen (argv[2], "wb"); if (!out) { fprintf (stderr, "Output file cannot be written to!\n"); gdImageDestroy (im); exit (1); } gdImageGd (im, out); fclose (out); gdImageDestroy (im); return 0; } libwmf-0.2.13/src/extra/gd/pngtogd2.c000066400000000000000000000022631441723000300172460ustar00rootroot00000000000000 #include #include #include "gd.h" /* A short program which converts a .png file into a .gd file, for your convenience in creating images on the fly from a basis image that must be loaded quickly. The .gd format is not intended to be a general-purpose format. */ int main (int argc, char **argv) { gdImagePtr im; FILE *in, *out; int cs, fmt; if (argc != 5) { fprintf (stderr, "Usage: pngtogd2 filename.png filename.gd2 cs fmt\n"); fprintf (stderr, " where cs is the chunk size\n"); fprintf (stderr, " fmt is 1 for raw, 2 for compressed\n"); exit (1); } in = fopen (argv[1], "rb"); if (!in) { fprintf (stderr, "Input file does not exist!\n"); exit (1); } im = gdImageCreateFromPng (in); fclose (in); if (!im) { fprintf (stderr, "Input is not in PNG format!\n"); exit (1); } out = fopen (argv[2], "wb"); if (!out) { fprintf (stderr, "Output file cannot be written to!\n"); gdImageDestroy (im); exit (1); } cs = atoi (argv[3]); fmt = atoi (argv[4]); gdImageGd2 (im, out, cs, fmt); fclose (out); gdImageDestroy (im); return 0; } libwmf-0.2.13/src/extra/gd/readme.txt000066400000000000000000004741561441723000300173720ustar00rootroot00000000000000 This is gd 2.0.1 BETA. _If you have problems, report them in detail, and consider using gd 1.8.4 until gd 2.0 final is out._ The gd 2.0 documentation update is not complete, but most new features are documented to some degree and the what's new section is reasonably complete. Enjoy! gd 2.0.1 A graphics library for fast image creation Follow this link to the latest version of this document. _HEY! READ THIS!_ gd 2.0.1 creates PNG, JPEG and WBMP images, not GIF images. This is a good thing. PNG is a more compact format, and full compression is available. JPEG works well with photographic images, and is still more compatible with the major Web browsers than even PNG is. WBMP is intended for wireless devices (not regular web browsers). Existing code will need modification to call gdImagePng or gdImageJpeg instead of gdImageGif. _Please do not ask us to send you the old GIF version of GD._ Unisys holds a patent on the LZW compression algorithm, which is used in fully compressed GIF images. The best solution is to move to legally unencumbered, well-compressed, modern image formats such as PNG and JPEG as soon as possible. gd 2.0.1 _requires_ that the following libraries also be installed: libpng (see the libpng home page) zlib (see the info-zip home page) zlib jpeg-6b or later, if desired (see the Independent JPEG Group home page) If you want to use the TrueType font support, you must also install the _FreeType 2.x library_, including the header files. See the Freetype Home Page, or SourceForge. No, I cannot explain why that site is down on a particular day, and no, I can't send you a copy. If you want to use the Xpm color bitmap loading support, you must also have the X Window System and the Xpm library installed (Xpm is often included in modern X distributions). Please read the documentation and install the required libraries. Do not send email asking why png.h is not found. Do not send email asking why libgd.so is not found, either. See the requirements section for more information. Thank you! Table of Contents * Credits and license terms * What's new in version "XYZ" of GD? * What is gd? * What if I want to use another programming language? * What else do I need to use gd? * How do I get gd? * How do I build gd? * gd basics: using gd in your program * webpng: a useful example * Function and type reference by category * About the additional .gd image file format * Please tell us you're using gd! * If you have problems * Alphabetical quick index Up to the Boutell.Com, Inc. Home Page Credits and license terms In order to resolve any possible confusion regarding the authorship of gd, the following copyright statement covers all of the authors who have required such a statement. _If you are aware of any oversights in this copyright notice, please contact Thomas Boutell who will be pleased to correct them._ COPYRIGHT STATEMENT FOLLOWS THIS LINE Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 by Cold Spring Harbor Laboratory. Funded under Grant P41-RR02188 by the National Institutes of Health. Portions copyright 1996, 1997, 1998, 1999, 2000, 2001 by Boutell.Com, Inc. Portions relating to GD2 format copyright 1999, 2000 Philip Warner. Portions relating to PNG copyright 1999, 2000 Greg Roelofs. Portions relating to libttf copyright 1999, 2000 John Ellson (ellson@lucent.com). Portions relating to JPEG and to color quantization copyright 2000, Doug Becker and copyright (C) 1994-1998, Thomas G. Lane. This software is based in part on the work of the Independent JPEG Group. See the file README-JPEG.TXT for more information. Portions relating to WBMP copyright 2000 Maurice Szmurlo and Johan Van den Brande. _Permission has been granted to copy, distribute and modify gd in any context without fee, including a commercial application, provided that this notice is present in user-accessible supporting documentation._ This does not affect your ownership of the derived work itself, and the intent is to assure proper credit for the authors of gd, not to interfere with your productive use of gd. If you have questions, ask. "Derived works" includes all programs that utilize the library. Credit must be given in user-accessible documentation. _This software is provided "AS IS."_ The copyright holders disclaim all warranties, either express or implied, including but not limited to implied warranties of merchantability and fitness for a particular purpose, with respect to this code and accompanying documentation. Although their code does not appear in gd 2.0.1, the authors wish to thank David Koblas, David Rowley, and Hutchison Avenue Software Corporation for their prior contributions. END OF COPYRIGHT STATEMENT What is gd? gd is a graphics library. It allows your code to quickly draw images complete with lines, arcs, text, multiple colors, cut and paste from other images, and flood fills, and write out the result as a PNG or JPEG file. This is particularly useful in World Wide Web applications, where PNG and JPEG are two of the formats accepted for inline images by most browsers. gd is not a paint program. If you are looking for a paint program, you are looking in the wrong place. If you are not a programmer, you are looking in the wrong place, unless you are installing a required library in order to run an application. gd does not provide for every possible desirable graphics operation. It is not necessary or desirable for gd to become a kitchen-sink graphics package, but version 2.0 does include most frequently requested features, including both truecolor and palette images, resampling (smooth resizing of truecolor images) and so forth. What if I want to use another programming language? Not all of these tools are necessarily up to date and fully compatible with 2.0.1. Perl gd can also be used from Perl, courtesy of Lincoln Stein's GD.pm library, which uses gd as the basis for a set of Perl 5.x classes. Highly recommended. Tcl gd can be used from Tcl with John Ellson's Gdtclft dynamically loaded extension package. (Gdtclft2.0 or later is needed for gd-1.6 and up with PNG output.) Pascal Pascal enthusiasts should look into Michael Bradbury's gdfp package. Haskell A new gd interface is now available for Haskell programmers. REXX A gd interface for the REXX language is available. Any Language There are, at the moment, at least three simple interpreters that perform gd operations. You can output the desired commands to a simple text file from whatever scripting language you prefer to use, then invoke the interpreter. * tgd, by Bradley K. Sherman * fly, by Martin Gleeson What's new in version 2.0.1? * Workaround for a bug in gcc, apparently found in gcc 2.7.2 and up. I reproduced and fixed it while using gcc 2.9.5.2. The bug occurred only when the -g option was in use. This problem caused gcc to spew internal error messages unrelated to the correctness of the code in gd_gd2.c. Howard Jones was first to report it. * gdImageFilledEllipse documented and altered; no longer requires a superfluous style argument. Thanks to Francis James Franklin. * The Makefile now offers the correct syntax for optionally creating a static library. Thanks to Jean-Lous Regez, among others. * A nested comment, an attempt to return the value of a void function, and a potentially significant error in gdImageCopyResampled were fixed thanks to Joseph Shirley. * A bug preventing proper truecolor text rendering was fixed, thanks to Jason Gallagher. * gdImageStringFT (FreeType) should now work better against a transparent or semitransparent background, and should act in a manner consistent with the most recent gdImageAlphaBlending setting. Antialiasing is now done via the alpha channel mechanism if the image is a truecolor image. * Bugs in the output of gdImageArc and gdImageFilledArc were reported by Bruce Verderaime. A simple and correct but inefficient implementation has been substituted until fixes are contributed for the faster code, which is in gd_arc_f_buggy.c along with the test program that reproduces the bug(s). * gdImageFilledArc now offers additional style options, which can be combined to produce various effects. * Masahito Yamaga (ma@yama-ga.com) sent a patch to improve support for Japanese output via gdImageStringFT. He also added a new readme.jpn file. * Zillions of documentation fixes. What's new in version 2.0? * _Support for truecolor images!_ Version 2.0 can load truecolor PNGs with no loss of color information, and almost no loss of alpha channel information. Version 2.0 can also load truecolor JPEGs with as little loss as possible; however, bear in mind that JPEG is a lossy format, so repeated load/save cycles always reduce image quality. This is not a bug. To create a truecolor image from scratch, call the new gdImageCreateTrueColor function. The gdImageCreate function is still available to create palette images, and may also be referred to as gdImageCreatePalette. * _Support for alpha channels!_ In addition to 24 bits of color information for each pixel (eight bits of red, green, and blue respectively), version 2.0 supports 7 bits of "alpha channel" information. This is used to determine exactly how transparent the pixel should be. There is also support for a full 7 bits of transparency for each individual palette index in a palette-based image. Please note that, as of this writing, only Macintosh Internet Explorer 5.x and Mozilla/Netscape 6.x display partial transparency properly. * The new gdImageAlphaBlending function allows for two different modes of drawing. In blending mode, the alpha channel component of the color supplied to all drawing functions, such as gdImageSetPixel, determines how much of the underlying color should be allowed to shine through. The resulting image is not transparent. In non-blending mode, drawing color is copied literally with the alpha channel information, resulting in a transparent image. Blending mode is not available when drawing on palette images. * The gdImageCopyResampled function provides "smooth" copying from a large image to a smaller one, using a weighted average of the pixels of the source area rather than selecting one representative pixel. This function is identical to gdImageCopyResized when the destination image is a palette image. * The gdImageTrueColorToPalette function converts a truecolor image to a palette image. The code for this function was originally drawn from the Independent JPEG Group library code, which is excellent. The code has been modified to preserve as much alpha channel information as possible in the resulting palette, in addition to preserving colors as well as possible. This does not work as well as might be hoped. It is usually best to simply produce a truecolor output image instead, which guarantees the highest output quality. * A very high degree of backwards compatibility with existing gd 1.x code has been maintained, at both the source code and binary level. _Code which directly accesses the pixels array will fail only if it encounters an existing truecolor image_, which may happen if the code attempts to open and modify an existing JPEG or truecolor PNG. Such code should be modified to check the trueColor flag of the gdImage structure, and refer to the tpixels array instead when it is set. * gd is now compiled and installed as a shared library. However, gd still does not use autoconf, because I (TBB) have very limited patience with autoconf. These days, most Unix systems provide a fairly POSIX-standard environment, and the provided Makefile is likely to work well if users read it and follow the instructions at the top. * Support for line thickness was added by Michael Schwartz. My apologies to him for sitting on his patches for so long. See the new gdImageSetThickness function, which affects all standard gd functions that draw lines and curves. In addition, Michael added a convenient gdImageEllipse function. * The new gdImageFilledArc function provides a straightforward way to draw filled arcs. Also, gdImageFilledEllipse is a convenient way to fill an ellipse without specifying starting and ending angles. Thanks go out to F J Franklin. * To put an end to the confusion, TrueType 1.x support has been removed in favor of TrueType 2.x support. The old gdImageStringTTF function simply invokes gdImageStringFT. * The specialized .gd and .gd2 file formats have been upgraded to support truecolor. New images written by the versions of these functions found in 2.0 will be rejected, with varying degrees of grace, by older versions of gd. THIS AFFECTS THE .GD and .GD2 FORMATS ONLY. IF YOU ARE CONFUSED BY THIS PARAGRAPH, IT PROBABLY DOESN'T APPLY TO ANYTHING YOU WILL EVER ENCOUNTER. Since these file formats are absolutely, positively *not* designed for distributing images, just for preprocessing them, this should not be a big problem. gd 2.0 should read old .gd and .gd2 files correctly. What's new in version 1.8.4? * Add support for FreeType2 (John Ellson ellson@lucent.com) * Add support for finding in fonts in a builtin DEFAULT_FONTPATH, or in a path from the GDFONTPATH environment variable. * remove some unused symbols to reduce compiler warnings * bugfix in size comparisons in gdImageCompare * REXX now mentioned * All memory allocation functions are now wrapped within the library; gdFree is exported and recommended for freeing memory returned by the gdImage(Something)Ptr family of functions. What's new in version 1.8.3? * WBMP output memory leak fixed * #include corrected to #include "gd.h" in gd_wbmp.c * Documented the fact that the source and output images shouldn't match in the WBMP test except for black and white source images What's new in version 1.8.2? * WBMP support debugged and improved by Johann Van den Brande * WBMP tests added to gdtest.c by Thomas Boutell * Use of platform-dependent 'install' command removed by Thomas Boutell * Comments added to Makefile warning users to juggle the order of the libraries if the linker complains; is there any portable way to do this automatically, short of using autoconf? * Documentation of gdImageCreateFromXpm corrected * Updated links to fast-moving, always dodging libpng and zlib web sites What's new in version 1.8.1? * Optional components no longer built by default (following the documentation) * JPEG code no longer requires inappropriate header files * Win32 patches from Joe Gregorio * 16-bit font support for bdftogd, from Honza Pazdziora What's new in version 1.8? * Support for JPEG output, courtesy of Doug Becker * A link to Michael Bradbery's Pascal wrapper * Support for WBMP output, courtesy of Maurice Szmurlo * gdImageColorClosestHWB function based on hue, whiteness, blackness, superior to the regular gdImageColorClosest function, courtesy of Philip Warner * License clarification: yes, you can modify gd Additional JPEG Information Support for reading and writing JPEG-format images is courtesy of Doug Becker and the Independent JPEG Group / Thomas G. Lane. You can get the latest version of the IJG JPEG software from ftp://ftp.uu.net/graphics/jpeg/ (e.g., the jpegsrc.v6b.tar.gz file). You _must_ use version 6b or later of the IJG JPEG software. You might also consult the JPEG FAQ at http://www.faqs.org/faqs/jpeg-faq/. What's new in version 1.7.3? Another attempt at Makefile fixes to permit linking with all libraries required on platforms with order- dependent linkers. Perhaps it will work this time. What's new in version 1.7.2? An uninitialized-pointer bug in gdtestttf.c was corrected. This bug caused crashes at the end of each call to gdImageStringTTF on some platforms. Thanks to Wolfgang Haefelinger. Documentation fixes. Thanks to Dohn Arms. Makefile fixes to permit linking with all libraries required on platforms with order- dependent linkers. What's new in version 1.7.1? A minor buglet in the Makefile was corrected, as well as an inaccurate error message in gdtestttf.c. Thanks to Masahito Yamaga. What's new in version 1.7? Version 1.7 contains the following changes: * Japanese language support for the TrueType functions. Thanks to Masahito Yamaga. * autoconf and configure have been removed, in favor of a carefully designed Makefile which produces and properly installs the library and the binaries. System-dependent variables are at the top of the Makefile for easy modification. I'm sorry, folks, but autoconf generated _many, many confused email messages_ from people who didn't have things where autoconf expected to find them. I am not an autoconf/automake wizard, and gd is a simple, very compact library which does not need to be a shared library. I _did_ make many improvements over the old gd 1.3 Makefile, which were directly inspired by the autoconf version found in the 1.6 series (thanks to John Ellson). * Completely ANSI C compliant, according to the -pedantic-errors flag of gcc. Several pieces of not-quite-ANSI-C code were causing problems for those with non-gcc compilers. * gdttf.c patched to allow the use of Windows symbol fonts, when present (thanks to Joseph Peppin). * extern "C" wrappers added to gd.h and the font header files for the convenience of C++ programmers. bdftogd was also modified to automatically insert these wrappers into future font header files. Thanks to John Lindal. * Compiles correctly on platforms that don't define SEEK_SET. Thanks to Robert Bonomi. * Loads Xpm images via the gdImageCreateFromXpm function, if the Xpm library is available. Thanks to Caolan McNamara. What's new in version 1.6.3? Version 1.6.3 corrects a memory leak in gd_png.c. This leak caused a significant amount of memory to be allocated and not freed when writing a PNG image. What's new in version 1.6.2? Version 1.6.2 from John Ellson adds two new functions: * gdImageStringTTF - scalable, rotatable, anti-aliased, TrueType strings using the FreeType library, but only if libttf is found by configure. _We do not provide TrueType fonts. Obtaining them is entirely up to you._ * gdImageColorResolve - an efficient alternative for the common code fragment: if ((color=gdImageColorExact(im,R,G,B)) < 0) if ((color=gdImageColorAllocate(im,R,G,B)) < 0) color=gdImageColorClosest(im,R,G,B); Also in this release the build process has been converted to GNU autoconf/automake/libtool conventions so that both (or either) static and shared libraries can be built. What's new in version 1.6.1? Version 1.6.1 incorporates superior PNG reading and writing code from Greg Roelofs, with minor modifications by Tom Boutell. Specifically, I altered his code to read non-palette images (converting them to palette images badly, by dithering them), and to tolerate palette images with types of transparency that gd doesn't actually support (it just ignores the advanced transparency features). Any bugs in this area are therefore my fault, not Greg's. Unlike gd 1.6, users should have no trouble linking with gd 1.6.1 if they follow the instructions and install all of the pieces. However, _If you get undefined symbol errors, be sure to check for older versions of libpng in your library directories!_ What's new in version 1.6? Version 1.6 features the following changes: _Support for 8-bit palette PNG images has been added. Support for GIF has been removed._ This step was taken to completely avoid the legal controversy regarding the LZW compression algorithm used in GIF. Unisys holds a patent which is relevant to LZW compression. PNG is a superior image format in any case. Now that PNG is supported by both Microsoft Internet Explorer and Netscape (in their recent releases), we highly recommend that GD users upgrade in order to get well-compressed images in a format which is legally unemcumbered. What's new in version 1.5? Version 1.5 featured the following changes: _New GD2 format_ An improvement over the GD format, the GD2 format uses the zlib compression library to compress the image in chunks. This results in file sizes comparable to GIFs, with the ability to access parts of large images without having to read the entire image into memory. This format also supports version numbers and rudimentary validity checks, so it should be more 'supportable' than the previous GD format. _Re-arranged source files_ gd.c has been broken into constituant parts: io, gif, gd, gd2 and graphics functions are now in separate files. _Extended I/O capabilities._ The source/sink feature has been extended to support GD2 file formats (which require seek/tell functions), and to allow more general non-file I/O. _Better support for Lincoln Stein's Perl Module_ The new gdImage*Ptr function returns the chosen format stored in a block of memory. This can be directly used by the GD perl module. _Added functions_ gdImageCreateFromGd2Part - allows retrieval of part of an image (good for huge images, like maps), gdImagePaletteCopy - Copies a palette from one image to another, doing it's best to match the colors in the target image to the colors in the source palette. gdImageGd2, gdImageCreateFromGd2 - Support for new format gdImageCopyMerge - Merges two images (useful to highlight part of an image) gdImageCopyMergeGray - Similar to gdImageCopyMerge, but tries to preserve source image hue. gdImagePngPtr, gdImageJpegPtr, gdImageWBMPPtr, gdImageGdPtr, gdImageGd2Ptr - return memory blocks for each type of image. gdImageCreateFromPngCtx, gdImageCreateFromGdCtx, gdImageCreateFromGd2Ctx, gdImageCreateFromGd2PartCtx - Support for new I/O context. _NOTE:_ In fairness to Thomas Boutell, any bug/problems with any of the above features should probably be reported to Philip Warner. What's new in version 1.4? Version 1.4 features the following changes: Fixed polygon fill routine (again) Thanks to Kirsten Schulz, version 1.4 is able to fill numerous types of polygons that caused problems with previous releases, including version 1.3. Support for alternate data sources Programmers who wish to load a GIF from something other than a stdio FILE * stream can use the new gdImageCreateFromPngSource function. Support for alternate data destinations Programmers who wish to write a GIF to something other than a stdio FILE * stream can use the new gdImagePngToSink function. More tolerant when reading GIFs Version 1.4 does not crash when reading certain animated GIFs, although it still only reads the first frame. Version 1.4 also has overflow testing code to prevent crashes when reading damaged GIFs. What's new in version 1.3? Version 1.3 features the following changes: Non-LZW-based GIF compression code Version 1.3 contained GIF compression code that uses simple Run Length Encoding instead of LZW compression, while still retaining compatibility with normal LZW-based GIF decoders (your browser will still like your GIFs). _LZW compression is patented by Unisys. We are currently reevaluating the approach taken by gd 1.3. The current release of gd does not support this approach. We recommend that you use the current release, and generate PNG images._ Thanks to Hutchison Avenue Software Corporation for contributing the RLE GIF code. 8-bit fonts, and 8-bit font support This improves support for European languages. Thanks are due to Honza Pazdziora and also to Jan Pazdziora . Also see the provided bdftogd Perl script if you wish to convert fixed-width X11 fonts to gd fonts. 16-bit font support (no fonts provided) Although no such fonts are provided in the distribution, fonts containing more than 256 characters should work if the gdImageString16 and gdImageStringUp16 routines are used. Improvements to the "webpng" example/utility The "webpng" utility is now a slightly more useful application. Thanks to Brian Dowling for this code. Corrections to the color resolution field of GIF output Thanks to Bruno Aureli. Fixed polygon fills A one-line patch for the infamous polygon fill bug, courtesy of Jim Mason. I believe this fix is sufficient. However, if you find a situation where polygon fills still fail to behave properly, please send code that demonstrates the problem, _and_ a fix if you have one. Verifying the fix is important. Row-major, not column-major Internally, gd now represents the array of pixels as an array of rows of pixels, rather than an array of columns of pixels. This improves the performance of compression and decompression routines slightly, because horizontally adjacent pixels are now next to each other in memory. _This should not affect properly written gd applications, but applications that directly manipulate the pixels array will require changes._ What else do I need to use gd? To use gd, you will need an ANSI C compiler. _All popular Windows 95 and NT C compilers are ANSI C compliant._ Any full-ANSI-standard C compiler should be adequate. _The cc compiler released with SunOS 4.1.3 is not an ANSI C compiler. Most Unix users who do not already have gcc should get it. gcc is free, ANSI compliant and a de facto industry standard. Ask your ISP why it is missing._ As of version 1.6, you also need the zlib compression library, and the libpng library. As of version 1.6.2, you can draw text using antialiased TrueType fonts if you also have the libttf library installed, but this is not mandatory. zlib is available for a variety of platforms from the zlib web site. libpng is available for a variety of platforms from the PNG web site. You will also want a PNG viewer, if you do not already have one for your system, since you will need a good way to check the results of your work. Netscape 4.04 and higher, and Microsoft Internet Explorer 4.0 or higher, both support PNG. For some purposes you might be happier with a package like Lview Pro for Windows or xv for X. There are PNG viewers available for every graphics-capable modern operating system, so consult newsgroups relevant to your particular system. How do I get gd? By HTTP * Gzipped Tar File (Unix) * .ZIP File (Windows) By FTP * Gzipped Tar File (Unix) * .ZIP File (Windows) How do I build gd? In order to build gd, you must first unpack the archive you have downloaded. If you are not familiar with tar and gunzip (Unix) or ZIP (Windows), please consult with an experienced user of your system. Sorry, we cannot answer questions about basic Internet skills. Unpacking the archive will produce a directory called "gd-2.0.1". For Unix cd to the 2.0.1 directory. Edit the Makefile with your preferred text editor and make any necessary changes to the settings at the top, especially if you want Xpm or TrueType support. Next, type "make install". Because gd 2.0 and above installs as a shared library, it is necessary to install the library properly before running gd-based programs. If you get errors, edit the Makefile again, paying special attention to the INCLUDEDIRS and LIBDIRS settings. IF YOU GET LINKER ERRORS, TRY JUGGLING THE ORDER OF THE -l DIRECTIVES IN THE MAKEFILE. Some platforms may prefer that the libraries be listed in the opposite order. For Windows, Mac, Et Cetera Create a project using your favorite programming environment. Copy all of the gd files to the project directory. Add gd.c to your project. Add other source files as appropriate. Learning the basic skills of creating projects with your chosen C environment is up to you. If you wish to test the library, type "make test" AFTER you have successfully executed "make install". This will build several test programs, including "gddemo". Run gddemo to see some of the capabilities of gd. gddemo should execute without incident, creating the file demoout.png. (Note there is also a file named demoin.png, which is provided in the package as part of the demonstration.) Display demoout.png in your PNG viewer. The image should be 128x128 pixels and should contain an image of the space shuttle with quite a lot of graphical elements drawn on top of it. (If you are missing the demoin.png file, the other items should appear anyway.) Look at demoin.png to see the original space shuttle image which was scaled and copied into the output image. gd basics: using gd in your program gd lets you create PNG or JPEG images on the fly. To use gd in your program, include the file gd.h, and link with the libgd.a library produced by "make libgd.a", under Unix. Under other operating systems you will add gd.c to your own project. If you want to use the provided fonts, include gdfontt.h, gdfonts.h, gdfontmb.h, gdfontl.h and/or gdfontg.h. For more impressive results, install FreeType 2.x and use the new gdImageStringFT function. If you are not using the provided Makefile and/or a library-based approach, be sure to include the source modules as well in your project. (They may be too large for 16-bit memory models, that is, 16-bit DOS and Windows.) Here is a short example program. _(For a more advanced example, see gddemo.c, included in the distribution. gddemo.c is NOT the same program; it demonstrates additional features!)_ /* Bring in gd library functions */ #include "gd.h" /* Bring in standard I/O so we can output the PNG to a file */ #include int main() { /* Declare the image */ gdImagePtr im; /* Declare output files */ FILE *pngout, *jpegout; /* Declare color indexes */ int black; int white; /* Allocate the image: 64 pixels across by 64 pixels tall */ im = gdImageCreate(64, 64); /* Allocate the color black (red, green and blue all minimum). Since this is the first color in a new image, it will be the background color. */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Draw a line from the upper left to the lower right, using white color index. */ gdImageLine(im, 0, 0, 63, 63, white); /* Open a file for writing. "wb" means "write binary", important under MSDOS, harmless under Unix. */ pngout = fopen("test.png", "wb"); /* Do the same for a JPEG-format file. */ jpegout = fopen("test.jpg", "wb"); /* Output the image to the disk file in PNG format. */ gdImagePng(im, pngout); /* Output the same image in JPEG format, using the default JPEG quality setting. */ gdImageJpeg(im, jpegout, -1); /* Close the files. */ fclose(pngout); fclose(jpegout); /* Destroy the image in memory. */ gdImageDestroy(im); } When executed, this program creates an image, allocates two colors (the first color allocated becomes the background color), draws a diagonal line (note that 0, 0 is the upper left corner), writes the image to PNG and JPEG files, and destroys the image. The above example program should give you an idea of how the package works. gd provides many additional functions, which are listed in the following reference chapters, complete with code snippets demonstrating each. There is also an alphabetical index. Webpng: a more powerful gd example Webpng is a simple utility program to manipulate PNGs from the command line. It is written for Unix and similar command-line systems, but should be easily adapted for other environments. Webpng allows you to set transparency and interlacing and output interesting information about the PNG in question. webpng.c is provided in the distribution. Unix users can simply type "make webpng" to compile the program. Type "webpng" with no arguments to see the available options. Function and type reference * Types * Image creation, destruction, loading and saving * Drawing, styling, brushing, tiling and filling functions * Query functions (not color-related) * Font and text-handling functions * Color handling functions * Copying and resizing functions * Miscellaneous Functions * Constants Types gdImage_(TYPE)_ The data structure in which gd stores images. gdImageCreate, gdImageCreateTrueColor and the various image file-loading functions return a pointer to this type, and the other functions expect to receive a pointer to this type as their first argument. It is reasonably safe to examine any of the members of this structure. It is also reasonably safe to modify individual pixels within the pixels or tpixels arrays. If the trueColor flag is set, the tpixels array is valid; otherwise the pixels array is valid. The colorsTotal, red, green, blue, alpha and open arrays manage the palette. They are valid only when the trueColor flag is not set. The transparent value contains the palette index of the first transparent color as read-only information for backwards compatibility; gd 2.0 stores this information in the alpha array so that variable transparency can be supported for each palette entry. However, for truecolor images, transparent represents a single RGB color which is _always 100% transparent_, and this feature is generally supported by browsers which do not support full alpha channels. typedef struct { /* Palette-based image pixels */ unsigned char ** pixels; int sx; int sy; /* These are valid in palette images only. See also /* 'alpha', which appears later in the structure to preserve binary backwards compatibility */ int colorsTotal; int red[gdMaxColors]; int green[gdMaxColors]; int blue[gdMaxColors]; int open[gdMaxColors]; /* For backwards compatibility, this is set to the first palette entry with 100% transparency, and is also set and reset by the gdImageColorTransparent function. Newer applications can allocate palette entries with any desired level of transparency; however, bear in mind that many viewers, notably many web browsers, fail to implement full alpha channel for PNG and provide support for full opacity or transparency only. */ int transparent; int *polyInts; int polyAllocated; struct gdImageStruct *brush; struct gdImageStruct *tile; int brushColorMap[gdMaxColors]; int tileColorMap[gdMaxColors]; int styleLength; int stylePos; int *style; int interlace; /* New in 2.0: alpha channel for palettes. Note that only Macintosh Internet Explorer and (possibly) Netscape 6 really support multiple levels of transparency in palettes, to my knowledge, as of 2/15/01. Most common browsers will display 100% opaque and 100% transparent correctly, and do something unpredictable and/or undesirable for levels in between. TBB */ int alpha[gdMaxColors]; /* Truecolor flag and pixels. New 2.0 fields appear here at the end to minimize breakage of existing object code. */ int trueColor; int ** tpixels; /* Should alpha channel be copied, or applied, each time a pixel is drawn? This applies to truecolor images only. No attempt is made to alpha-blend in palette images, even if semitransparent palette entries exist. To do that, build your image as a truecolor image, then quantize down to 8 bits. */ int alphaBlendingFlag; /* Should the alpha channel of the image be saved? This affects PNG at the moment; other future formats may also have that capability. JPEG doesn't. */ int saveAlphaFlag; } gdImage; The order of the structure members may appear confusing, but was chosen deliberately to increase backwards compatibility with existing gd 1.x-based binary code that references particular structure members. gdImagePtr _(TYPE)_ A pointer to an image structure. gdImageCreate returns this type, and the other functions expect it as the first argument. gdFont _(TYPE)_ A font structure. Used to declare the characteristics of a font. Plese see the files gdfontl.c and gdfontl.h for an example of the proper declaration of this structure. You can provide your own font data by providing such a structure and the associated pixel array. You can determine the width and height of a single character in a font by examining the w and h members of the structure. If you will not be creating your own fonts, you will not need to concern yourself with the rest of the components of this structure. typedef struct { /* # of characters in font */ int nchars; /* First character is numbered... (usually 32 = space) */ int offset; /* Character width and height */ int w; int h; /* Font data; array of characters, one row after another. Easily included in code, also easily loaded from data files. */ char *data; } gdFont; gdFontPtr _(TYPE)_ A pointer to a font structure. Text-output functions expect these as their second argument, following the gdImagePtr argument. Two such pointers are declared in the provided include files gdfonts.h and gdfontl.h. gdPoint _(TYPE)_ Represents a point in the coordinate space of the image; used by gdImagePolygon and gdImageFilledPolygon. typedef struct { int x, y; } gdPoint, *gdPointPtr; gdPointPtr _(TYPE)_ A pointer to a gdPoint structure; passed as an argument to gdImagePolygon and gdImageFilledPolygon. gdSource _(TYPE)_ typedef struct { int (*source) (void *context, char *buffer, int len); void *context; } gdSource, *gdSourcePtr; Represents a source from which a PNG can be read. Programmers who do not wish to read PNGs from a file can provide their own alternate input mechanism, using the gdImageCreateFromPngSource function. See the documentation of that function for an example of the proper use of this type. gdSink _(TYPE)_ typedef struct { int (*sink) (void *context, char *buffer, int len); void *context; } gdSink, *gdSinkPtr; Represents a "sink" (destination) to which a PNG can be written. Programmers who do not wish to write PNGs to a file can provide their own alternate output mechanism, using the gdImagePngToSink function. See the documentation of that function for an example of the proper use of this type. Image creation, destruction, loading and saving gdImageCreate(sx, sy) _(FUNCTION)_ gdImageCreate is called to create palette-based images, with no more than 256 colors. Invoke gdImageCreate with the x and y dimensions of the desired image. gdImageCreate returns a gdImagePtr to the new image, or NULL if unable to allocate the image. The image must eventually be destroyed using gdImageDestroy(). ... inside a function ... gdImagePtr im; im = gdImageCreate(64, 64); /* ... Use the image ... */ gdImageDestroy(im); gdImageCreateTrueColor(sx, sy) _(FUNCTION)_ gdImageCreateTrueColor is called to create truecolor images, with an essentially unlimited number of colors. Invoke gdImageCreateTrueColor with the x and y dimensions of the desired image. gdImageCreateTrueColor returns a gdImagePtr to the new image, or NULL if unable to allocate the image. The image must eventually be destroyed using gdImageDestroy(). Truecolor images are always filled with black at creation time. ... inside a function ... gdImagePtr im; im = gdImageCreateTrueColor(64, 64); /* ... Use the image ... */ gdImageDestroy(im); gdImageCreateFromJpeg(FILE *in) _(FUNCTION)_ gdImageCreateFromJpegCtx(FILE *in) _(FUNCTION)_ gdImageCreateFromJpeg(FILE *in) _(FUNCTION)_ gdImageCreateFromJpegCtx(FILE *in) _(FUNCTION)_ gdImageCreateFromJpeg is called to load images from JPEG format files. Invoke gdImageCreateFromJpeg with an already opened pointer to a file containing the desired image. gdImageCreateFromJpeg returns a gdImagePtr to the new truecolor image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a JPEG image). gdImageCreateFromJpeg does _not_ close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy(). _The returned image is always a truecolor image._ gdImagePtr im; ... inside a function ... FILE *in; in = fopen("myjpeg.jpg", "rb"); im = gdImageCreateFromJpeg(in); fclose(in); /* ... Use the image ... */ gdImageDestroy(im); gdImageCreateFromPng(FILE *in) _(FUNCTION)_ gdImageCreateFromPngCtx(gdIOCtx *in) _(FUNCTION)_ gdImageCreateFromPng is called to load images from PNG format files. Invoke gdImageCreateFromPng with an already opened pointer to a file containing the desired image. gdImageCreateFromPng returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a PNG image). gdImageCreateFromPng does _not_ close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy(). If the PNG image being loaded is a truecolor image, the resulting gdImagePtr will refer to a truecolor image. If the PNG image being loaded is a palette or grayscale image, the resulting gdImagePtr will refer to a palette image. gd retains only 8 bits of resolution for each of the red, green and blue channels, and only 7 bits of resolution for the alpha channel. The former restriction affects only a handful of very rare 48-bit color and 16-bit grayscale PNG images. The second restriction affects all semitransparent PNG images, but the difference is essentially invisible to the eye. 7 bits of alpha channel resolution is, in practice, quite a lot. gdImagePtr im; ... inside a function ... FILE *in; in = fopen("mypng.png", "rb"); im = gdImageCreateFromPng(in); fclose(in); /* ... Use the image ... */ gdImageDestroy(im); gdImageCreateFromPngSource(gdSourcePtr in) _(FUNCTION)_ gdImageCreateFromPngSource is called to load a PNG from a data source other than a file. Usage is very similar to the gdImageCreateFromPng function, except that the programmer provides a custom data source. The programmer must write an input function which accepts a context pointer, a buffer, and a number of bytes to be read as arguments. This function must read the number of bytes requested, unless the end of the file has been reached, in which case the function should return zero, or an error has occurred, in which case the function should return -1. The programmer then creates a gdSource structure and sets the source pointer to the input function and the context pointer to any value which is useful to the programmer. The example below implements gdImageCreateFromPng by creating a custom data source and invoking gdImageCreateFromPngSource. static int freadWrapper(void *context, char *buf, int len); gdImagePtr gdImageCreateFromPng(FILE *in) { gdSource s; s.source = freadWrapper; s.context = in; return gdImageCreateFromPngSource(&s); } static int freadWrapper(void *context, char *buf, int len) { int got = fread(buf, 1, len, (FILE *) context); return got; } gdImageCreateFromGd(FILE *in) _(FUNCTION)_ gdImageCreateFromGdCtx(gdIOCtx *in) _(FUNCTION)_ gdImageCreateFromGd is called to load images from gd format files. Invoke gdImageCreateFromGd with an already opened pointer to a file containing the desired image in the gd file format, which is specific to gd and intended for very fast loading. (It is _not_ intended for compression; for compression, use PNG or JPEG.) gdImageCreateFromGd returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a gd format image). gdImageCreateFromGd does _not_ close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy(). ... inside a function ... gdImagePtr im; FILE *in; in = fopen("mygd.gd", "rb"); im = gdImageCreateFromGd(in); fclose(in); /* ... Use the image ... */ gdImageDestroy(im); gdImageCreateFromGd2(FILE *in) _(FUNCTION)_ gdImageCreateFromGd2Ctx(gdIOCtx *in) _(FUNCTION)_ gdImageCreateFromGd2 is called to load images from gd2 format files. Invoke gdImageCreateFromGd2 with an already opened pointer to a file containing the desired image in the gd2 file format, which is specific to gd2 and intended for fast loading of parts of large images. (It is a compressed format, but generally not as good as maximum compression of the entire image would be.) gdImageCreateFromGd returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain a gd format image). gdImageCreateFromGd2 does _not_ close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy(). ... inside a function ... gdImagePtr im; FILE *in; in = fopen("mygd.gd2", "rb"); im = gdImageCreateFromGd2(in); fclose(in); /* ... Use the image ... */ gdImageDestroy(im); gdImageCreateFromGd2Part(FILE *in, int srcX, int srcY, int w, int h) _(FUNCTION)_ gdImageCreateFromGd2PartCtx(gdIOCtx *in) _(FUNCTION)_ gdImageCreateFromGd2Part is called to load parts of images from gd2 format files. Invoked in the same way as gdImageCreateFromGd2, but with extra parameters indicating the source (x, y) and width/height of the desired image. gdImageCreateFromGd2Part returns a gdImagePtr to the new image, or NULL if unable to load the image. The image must eventually be destroyed using gdImageDestroy(). gdImageCreateFromXbm(FILE *in) _(FUNCTION)_ gdImageCreateFromXbm is called to load images from X bitmap format files. Invoke gdImageCreateFromXbm with an already opened pointer to a file containing the desired image. gdImageCreateFromXbm returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain an X bitmap format image). gdImageCreateFromXbm does _not_ close the file. You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy(). ... inside a function ... gdImagePtr im; FILE *in; in = fopen("myxbm.xbm", "rb"); im = gdImageCreateFromXbm(in); fclose(in); /* ... Use the image ... */ gdImageDestroy(im); gdImageCreateFromXpm(char *filename) _(FUNCTION)_ gdImageCreateFromXbm is called to load images from XPM X Window System color bitmap format files. This function is available only if HAVE_XPM is selected in the Makefile and the Xpm library is linked with the application. Unlike most gd file functions, the Xpm functions require filenames, not file pointers. gdImageCreateFromXpm returns a gdImagePtr to the new image, or NULL if unable to load the image (most often because the file is corrupt or does not contain an XPM bitmap format image). You can inspect the sx and sy members of the image to determine its size. The image must eventually be destroyed using gdImageDestroy(). ... inside a function ... gdImagePtr im; FILE *in; in = fopen("myxpm.xpm", "rb"); im = gdImageCreateFromXpm(in); fclose(in); /* ... Use the image ... */ gdImageDestroy(im); gdImageDestroy(gdImagePtr im) _(FUNCTION)_ gdImageDestroy is used to free the memory associated with an image. It is important to invoke gdImageDestroy before exiting your program or assigning a new image to a gdImagePtr variable. ... inside a function ... gdImagePtr im; im = gdImageCreate(10, 10); /* ... Use the image ... */ /* Now destroy it */ gdImageDestroy(im); void gdImageJpeg(gdImagePtr im, FILE *out, int quality) _(FUNCTION)_ void gdImageJpegCtx(gdImagePtr im, gdIOCtx *out, int quality) _(FUNCTION)_ gdImageJpeg outputs the specified image to the specified file in JPEG format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImageJpeg does _not_ close the file; your code must do so. If quality is negative, the default IJG JPEG quality value (which should yield a good general quality / size tradeoff for most situations) is used. Otherwise, for practical purposes, quality should be a value in the range 0-95, higher quality values usually implying both higher quality and larger image sizes. If you have set image interlacing using gdImageInterlace, this function will interpret that to mean you wish to output a progressive JPEG. Some programs (e.g., Web browsers) can display progressive JPEGs incrementally; this can be useful when browsing over a relatively slow communications link, for example. Progressive JPEGs can also be slightly smaller than sequential (non-progressive) JPEGs. ... inside a function ... gdImagePtr im; int black, white; FILE *out; /* Create the image */ im = gdImageCreate(100, 100); /* Allocate background */ white = gdImageColorAllocate(im, 255, 255, 255); /* Allocate drawing color */ black = gdImageColorAllocate(im, 0, 0, 0); /* Draw rectangle */ gdImageRectangle(im, 0, 0, 99, 99, black); /* Open output file in binary mode */ out = fopen("rect.jpg", "wb"); /* Write JPEG using default quality */ gdImageJpeg(im, out, -1); /* Close file */ fclose(out); /* Destroy image */ gdImageDestroy(im); void* gdImageJpegPtr(gdImagePtr im, int *size) _(FUNCTION)_ Identical to gdImageJpeg except that it returns a pointer to a memory area with the JPEG data. This memory must be freed by the caller when it is no longer needed. _The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time._ The 'size' parameter receives the total size of the block of memory. void gdImagePng(gdImagePtr im, FILE *out) _(FUNCTION)_ gdImagePng outputs the specified image to the specified file in PNG format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImagePng does _not_ close the file; your code must do so. ... inside a function ... gdImagePtr im; int black, white; FILE *out; /* Create the image */ im = gdImageCreate(100, 100); /* Allocate background */ white = gdImageColorAllocate(im, 255, 255, 255); /* Allocate drawing color */ black = gdImageColorAllocate(im, 0, 0, 0); /* Draw rectangle */ gdImageRectangle(im, 0, 0, 99, 99, black); /* Open output file in binary mode */ out = fopen("rect.png", "wb"); /* Write PNG */ gdImagePng(im, out); /* Close file */ fclose(out); /* Destroy image */ gdImageDestroy(im); void* gdImagePngPtr(gdImagePtr im, int *size) _(FUNCTION)_ Identical to gdImagePng except that it returns a pointer to a memory area with the PNG data. This memory must be freed by the caller when it is no longer needed. _The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time._ The 'size' parameter receives the total size of the block of memory. gdImagePngToSink(gdImagePtr im, gdSinkPtr out) _(FUNCTION)_ gdImagePngToSink is called to write a PNG to a data "sink" (destination) other than a file. Usage is very similar to the gdImagePng function, except that the programmer provides a custom data sink. The programmer must write an output function which accepts a context pointer, a buffer, and a number of bytes to be written as arguments. This function must write the number of bytes requested and return that number, unless an error has occurred, in which case the function should return -1. The programmer then creates a gdSink structure and sets the sink pointer to the output function and the context pointer to any value which is useful to the programmer. The example below implements gdImagePng by creating a custom data source and invoking gdImagePngFromSink. static int stdioSink(void *context, char *buffer, int len) { return fwrite(buffer, 1, len, (FILE *) context); } void gdImagePng(gdImagePtr im, FILE *out) { gdSink mySink; mySink.context = (void *) out; mySink.sink = stdioSink; gdImagePngToSink(im, &mySink); } void gdImageWBMP(gdImagePtr im, int fg, FILE *out) gdImageWBMPCtx(gdIOCtx *out) _(FUNCTION)__(FUNCTION)_ gdImageWBMP outputs the specified image to the specified file in WBMP format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImageWBMP does _not_ close the file; your code must do so. _WBMP file support is black and white only. The color index specified by the fg argument is the "foreground," and only pixels of this color will be set in the WBMP file._ All other pixels will be considered "background." ... inside a function ... gdImagePtr im; int black, white; FILE *out; /* Create the image */ im = gdImageCreate(100, 100); /* Allocate background */ white = gdImageColorAllocate(im, 255, 255, 255); /* Allocate drawing color */ black = gdImageColorAllocate(im, 0, 0, 0); /* Draw rectangle */ gdImageRectangle(im, 0, 0, 99, 99, black); /* Open output file in binary mode */ out = fopen("rect.wbmp", "wb"); /* Write WBMP, with black as foreground */ gdImageWBMP(im, black, out); /* Close file */ fclose(out); /* Destroy image */ gdImageDestroy(im); void* gdImageWBMPPtr(gdImagePtr im, int *size) _(FUNCTION)_ Identical to gdImageWBMP except that it returns a pointer to a memory area with the WBMP data. This memory must be freed by the caller when it is no longer needed. _The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time._ The 'size' parameter receives the total size of the block of memory. void gdImageGd(gdImagePtr im, FILE *out) _(FUNCTION)_ gdImageGd outputs the specified image to the specified file in the gd image format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImagePng does _not_ close the file; your code must do so. The gd image format is intended for fast reads and writes of images your program will need frequently to build other images. It is _not_ a compressed format, and is not intended for general use. ... inside a function ... gdImagePtr im; int black, white; FILE *out; /* Create the image */ im = gdImageCreate(100, 100); /* Allocate background */ white = gdImageColorAllocate(im, 255, 255, 255); /* Allocate drawing color */ black = gdImageColorAllocate(im, 0, 0, 0); /* Draw rectangle */ gdImageRectangle(im, 0, 0, 99, 99, black); /* Open output file in binary mode */ out = fopen("rect.gd", "wb"); /* Write gd format file */ gdImageGd(im, out); /* Close file */ fclose(out); /* Destroy image */ gdImageDestroy(im); void* gdImageGdPtr(gdImagePtr im, int *size) _(FUNCTION)_ Identical to gdImageGd except that it returns a pointer to a memory area with the GD data. This memory must be freed by the caller when it is no longer needed. _The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time._ The 'size' parameter receives the total size of the block of memory. void gdImageGd2(gdImagePtr im, FILE *out, int chunkSize, int fmt) _(FUNCTION)_ gdImageGd2 outputs the specified image to the specified file in the gd2 image format. The file must be open for writing. Under MSDOS and all versions of Windows, it is important to use "wb" as opposed to simply "w" as the mode when opening the file, and under Unix there is no penalty for doing so. gdImageGd2 does _not_ close the file; your code must do so. The gd2 image format is intended for fast reads and writes of parts of images. It is a compressed format, and well suited to retrieving smll sections of much larger images. The third and fourth parameters are the 'chunk size' and format resposectively. The file is stored as a series of compressed subimages, and the _Chunk Size_ determines the sub-image size - a value of zero causes the GD library to use the default. It is also possible to store GD2 files in an uncompressed format, in which case the fourth parameter should be GD2_FMT_RAW. ... inside a function ... gdImagePtr im; int black, white; FILE *out; /* Create the image */ im = gdImageCreate(100, 100); /* Allocate background */ white = gdImageColorAllocate(im, 255, 255, 255); /* Allocate drawing color */ black = gdImageColorAllocate(im, 0, 0, 0); /* Draw rectangle */ gdImageRectangle(im, 0, 0, 99, 99, black); /* Open output file in binary mode */ out = fopen("rect.gd", "wb"); /* Write gd2 format file */ gdImageGd2(im, out, 0, GD2_FMT_COMPRESSED); /* Close file */ fclose(out); /* Destroy image */ gdImageDestroy(im); void* gdImageGd2Ptr(gdImagePtr im, int chunkSize, int fmt, int *size) _(FUNCTION)_ Identical to gdImageGd2 except that it returns a pointer to a memory area with the GD2 data. This memory must be freed by the caller when it is no longer needed. _The caller must invoke gdFree(), not free(), unless the caller is absolutely certain that the same implementations of malloc, free, etc. are used both at library build time and at application build time._ The 'size' parameter receives the total size of the block of memory. Drawing Functions void gdImageSetPixel(gdImagePtr im, int x, int y, int color) _(FUNCTION)_ gdImageSetPixel sets a pixel to a particular color index. Always use this function or one of the other drawing functions to access pixels; do not access the pixels of the gdImage structure directly. ... inside a function ... gdImagePtr im; int black; int white; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Set a pixel near the center. */ gdImageSetPixel(im, 50, 50, white); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageLine(gdImagePtr im, int x1, int y1, int x2, int y2, int color) _(FUNCTION)_ gdImageLine is used to draw a line between two endpoints (x1,y1 and x2, y2). The line is drawn using the color index specified. Note that the color index can be an actual color returned by gdImageColorAllocate or one of gdStyled, gdBrushed or gdStyledBrushed. ... inside a function ... gdImagePtr im; int black; int white; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Draw a line from the upper left corner to the lower right corner. */ gdImageLine(im, 0, 0, 99, 99, white); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageDashedLine(gdImagePtr im, int x1, int y1, int x2, int y2, int color) _(FUNCTION)_ gdImageDashedLine is provided _solely for backwards compatibility _with gd 1.0. New programs should draw dashed lines using the normal gdImageLine function and the new gdImageSetStyle function. gdImageDashedLine is used to draw a dashed line between two endpoints (x1,y1 and x2, y2). The line is drawn using the color index specified. The portions of the line that are not drawn are left transparent so the background is visible. ... inside a function ... gdImagePtr im; int black; int white; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Draw a dashed line from the upper left corner to the lower right corner. */ gdImageDashedLine(im, 0, 0, 99, 99); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImagePolygon(gdImagePtr im, gdPointPtr points, int pointsTotal, int color) _(FUNCTION)_ gdImagePolygon is used to draw a polygon with the verticies (at least 3) specified, using the color index specified. See also gdImageFilledPolygon. ... inside a function ... gdImagePtr im; int black; int white; /* Points of polygon */ gdPoint points[3]; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Draw a triangle. */ points[0].x = 50; points[0].y = 0; points[1].x = 99; points[1].y = 99; points[2].x = 0; points[2].y = 99; gdImagePolygon(im, points, 3, white); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color) _(FUNCTION)_ gdImageRectangle is used to draw a rectangle with the two corners (upper left first, then lower right) specified, using the color index specified. ... inside a function ... gdImagePtr im; int black; int white; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Draw a rectangle occupying the central area. */ gdImageRectangle(im, 25, 25, 74, 74, white); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageFilledPolygon(gdImagePtr im, gdPointPtr points, int pointsTotal, int color) _(FUNCTION)_ gdImageFilledPolygon is used to fill a polygon with the verticies (at least 3) specified, using the color index specified. See also gdImagePolygon. ... inside a function ... gdImagePtr im; int black; int white; int red; /* Points of polygon */ gdPoint points[3]; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Allocate the color red. */ red = gdImageColorAllocate(im, 255, 0, 0); /* Draw a triangle. */ points[0].x = 50; points[0].y = 0; points[1].x = 99; points[1].y = 99; points[2].x = 0; points[2].y = 99; /* Paint it in white */ gdImageFilledPolygon(im, points, 3, white); /* Outline it in red; must be done second */ gdImagePolygon(im, points, 3, red); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageFilledRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color) _(FUNCTION)_ gdImageFilledRectangle is used to draw a solid rectangle with the two corners (upper left first, then lower right) specified, using the color index specified. ... inside a function ... gdImagePtr im; int black; int white; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = int gdImageColorAllocate(im, 255, 255, 255); /* Draw a filled rectangle occupying the central area. */ gdImageFilledRectangle(im, 25, 25, 74, 74, white); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageArc(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color) _(FUNCTION)_ gdImageArc is used to draw a partial ellipse centered at the given point, with the specified width and height in pixels. The arc begins at the position in degrees specified by s and ends at the position specified by e. The arc is drawn in the color specified by the last argument. A circle can be drawn by beginning from 0 degrees and ending at 360 degrees, with width and height being equal. e must be greater than s. Values greater than 360 are interpreted modulo 360. ... inside a function ... gdImagePtr im; int black; int white; im = gdImageCreate(100, 50); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Inscribe an ellipse in the image. */ gdImageArc(im, 50, 25, 98, 48, 0, 360, white); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageFilledArc(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color, int style) _(FUNCTION)_ gdImageFilledArc is used to draw a partial ellipse centered at the given point, with the specified width and height in pixels. The arc begins at the position in degrees specified by s and ends at the position specified by e. The arc is filled in the color specified by the second to last argument. A circle can be drawn by beginning from 0 degrees and ending at 360 degrees, with width and height being equal. e must be greater than s. Values greater than 360 are interpreted modulo 360. The last argument is a bitwise OR of the following possibilities: + gdArc + gdChord + gdPie (synonym for gdChord) + gdNoFill + gdEdged gdArc and gdChord are mutually exclusive; gdChord just connects the starting and ending angles with a straight line, while gdArc produces a rounded edge. gdPie is a synonym for gdArc. gdNoFill indicates that the arc or chord should be outlined, not filled. gdEdged, used together with gdNoFill, indicates that the beginning and ending angles should be connected to the center; this is a good way to outline (rather than fill) a 'pie slice'. ... inside a function ... gdImagePtr im; int black; int white; im = gdImageCreate(100, 50); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Inscribe a filled pie slice in the image. */ gdImageFilledArc(im, 50, 25, 98, 48, 0, 45, white, gdArc); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageFilledEllipse(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color) _(FUNCTION)_ gdImageFilledEllipse is used to draw an ellipse centered at the given point, with the specified width and height in pixels. The ellipse is filled in the color specified by the last argument. A circle can be drawn by beginning from 0 degrees and ending at 360 degrees, with width and height being equal. e must be greater than s. Values greater than 360 are interpreted modulo 360. ... inside a function ... gdImagePtr im; int black; int white; im = gdImageCreate(100, 50); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Inscribe a filled ellipse in the image. */ gdImageFilledEllipse(im, 50, 25, 98, 48, white); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageFillToBorder(gdImagePtr im, int x, int y, int border, int color) _(FUNCTION)_ gdImageFillToBorder floods a portion of the image with the specified color, beginning at the specified point and stopping at the specified border color. For a way of flooding an area defined by the color of the starting point, see gdImageFill. The border color _cannot_ be a special color such as gdTiled; it must be a proper solid color. The fill color can be, however. Note that gdImageFillToBorder is recursive. It is not the most naive implementation possible, and the implementation is expected to improve, but there will always be degenerate cases in which the stack can become very deep. This can be a problem in MSDOS and MS Windows 3.1 environments. (Of course, in a Unix or Windows 95/98/NT environment with a proper stack, this is not a problem at all.) ... inside a function ... gdImagePtr im; int black; int white; int red; im = gdImageCreate(100, 50); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Allocate the color red. */ red = gdImageColorAllocate(im, 255, 0, 0); /* Inscribe an ellipse in the image. */ gdImageArc(im, 50, 25, 98, 48, 0, 360, white); /* Flood-fill the ellipse. Fill color is red, border color is white (ellipse). */ gdImageFillToBorder(im, 50, 50, white, red); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageFill(gdImagePtr im, int x, int y, int color) _(FUNCTION)_ gdImageFill floods a portion of the image with the specified color, beginning at the specified point and flooding the surrounding region of the same color as the starting point. For a way of flooding a region defined by a specific border color rather than by its interior color, see gdImageFillToBorder. The fill color can be gdTiled, resulting in a tile fill using another image as the tile. However, the tile image cannot be transparent. If the image you wish to fill with has a transparent color index, call gdImageTransparent on the tile image and set the transparent color index to -1 to turn off its transparency. Note that gdImageFill is recursive. It is not the most naive implementation possible, and the implementation is expected to improve, but there will always be degenerate cases in which the stack can become very deep. This can be a problem in MSDOS and MS Windows environments. (Of course, in a Unix or Windows 95/98/NT environment with a proper stack, this is not a problem at all.) ... inside a function ... gdImagePtr im; int black; int white; int red; im = gdImageCreate(100, 50); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Allocate the color red. */ red = gdImageColorAllocate(im, 255, 0, 0); /* Inscribe an ellipse in the image. */ gdImageArc(im, 50, 25, 98, 48, 0, 360, white); /* Flood-fill the ellipse. Fill color is red, and will replace the black interior of the ellipse. */ gdImageFill(im, 50, 50, red); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageSetBrush(gdImagePtr im, gdImagePtr brush) _(FUNCTION)_ A "brush" is an image used to draw wide, shaped strokes in another image. Just as a paintbrush is not a single point, a brush image need not be a single pixel. _Any_ gd image can be used as a brush, and by setting the transparent color index of the brush image with gdImageColorTransparent, a brush of any shape can be created. All line-drawing functions, such as gdImageLine and gdImagePolygon, will use the current brush if the special "color" gdBrushed or gdStyledBrushed is used when calling them. gdImageSetBrush is used to specify the brush to be used in a particular image. You can set any image to be the brush. If the brush image does not have the same color map as the first image, any colors missing from the first image will be allocated. If not enough colors can be allocated, the closest colors already available will be used. This allows arbitrary PNGs to be used as brush images. It also means, however, that you should not set a brush unless you will actually use it; if you set a rapid succession of different brush images, you can quickly fill your color map, and the results will not be optimal. You need not take any special action when you are finished with a brush. As for any other image, if you will not be using the brush image for any further purpose, you should call gdImageDestroy. You must not use the color gdBrushed if the current brush has been destroyed; you can of course set a new brush to replace it. ... inside a function ... gdImagePtr im, brush; FILE *in; int black; im = gdImageCreate(100, 100); /* Open the brush PNG. For best results, portions of the brush that should be transparent (ie, not part of the brush shape) should have the transparent color index. */ in = fopen("star.png", "rb"); brush = gdImageCreateFromPng(in); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); gdImageSetBrush(im, brush); /* Draw a line from the upper left corner to the lower right corner using the brush. */ gdImageLine(im, 0, 0, 99, 99, gdBrushed); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); /* Destroy the brush image */ gdImageDestroy(brush); void gdImageSetTile(gdImagePtr im, gdImagePtr tile) _(FUNCTION)_ A "tile" is an image used to fill an area with a repeated pattern. _Any_ gd image can be used as a tile, and by setting the transparent color index of the tile image with gdImageColorTransparent, a tile that allows certain parts of the underlying area to shine through can be created. All region-filling functions, such as gdImageFill and gdImageFilledPolygon, will use the current tile if the special "color" gdTiled is used when calling them. gdImageSetTile is used to specify the tile to be used in a particular image. You can set any image to be the tile. If the tile image does not have the same color map as the first image, any colors missing from the first image will be allocated. If not enough colors can be allocated, the closest colors already available will be used. This allows arbitrary PNGs to be used as tile images. It also means, however, that you should not set a tile unless you will actually use it; if you set a rapid succession of different tile images, you can quickly fill your color map, and the results will not be optimal. You need not take any special action when you are finished with a tile. As for any other image, if you will not be using the tile image for any further purpose, you should call gdImageDestroy. You must not use the color gdTiled if the current tile has been destroyed; you can of course set a new tile to replace it. ... inside a function ... gdImagePtr im, tile; FILE *in; int black; im = gdImageCreate(100, 100); /* Open the tile PNG. For best results, portions of the tile that should be transparent (ie, allowing the background to shine through) should have the transparent color index. */ in = fopen("star.png", "rb"); tile = gdImageCreateFromPng(in); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); gdImageSetTile(im, tile); /* Fill an area using the tile. */ gdImageFilledRectangle(im, 25, 25, 75, 75, gdTiled); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); /* Destroy the tile image */ gdImageDestroy(tile); void gdImageSetStyle(gdImagePtr im, int *style, int styleLength) _(FUNCTION)_ It is often desirable to draw dashed lines, dotted lines, and other variations on a broken line. gdImageSetStyle can be used to set any desired series of colors, including a special color that leaves the background intact, to be repeated during the drawing of a line. To use gdImageSetStyle, create an array of integers and assign them the desired series of color values to be repeated. You can assign the special color value gdTransparent to indicate that the existing color should be left unchanged for that particular pixel (allowing a dashed line to be attractively drawn over an existing image). Then, to draw a line using the style, use the normal gdImageLine function with the special color value gdStyled. As of version 1.1.1, the style array is copied when you set the style, so you need not be concerned with keeping the array around indefinitely. This should not break existing code that assumes styles are not copied. You can also combine styles and brushes to draw the brush image at intervals instead of in a continuous stroke. When creating a style for use with a brush, the style values are interpreted differently: zero (0) indicates pixels at which the brush should not be drawn, while one (1) indicates pixels at which the brush should be drawn. To draw a styled, brushed line, you must use the special color value gdStyledBrushed. For an example of this feature in use, see gddemo.c (provided in the distribution). gdImagePtr im; int styleDotted[2], styleDashed[6]; FILE *in; int black; int red; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); red = gdImageColorAllocate(im, 255, 0, 0); /* Set up dotted style. Leave every other pixel alone. */ styleDotted[0] = red; styleDotted[1] = gdTransparent; /* Set up dashed style. Three on, three off. */ styleDashed[0] = red; styleDashed[1] = red; styleDashed[2] = red; styleDashed[3] = gdTransparent; styleDashed[4] = gdTransparent; styleDashed[5] = gdTransparent; /* Set dotted style. Note that we have to specify how many pixels are in the style! */ gdImageSetStyle(im, styleDotted, 2); /* Draw a line from the upper left corner to the lower right corner. */ gdImageLine(im, 0, 0, 99, 99, gdStyled); /* Now the dashed line. */ gdImageSetStyle(im, styleDashed, 6); gdImageLine(im, 0, 99, 0, 99, gdStyled); /* ... Do something with the image, such as saving it to a file ... */ /* Destroy it */ gdImageDestroy(im); void gdImageAlphaBlending(gdImagePtr im, int blending) _(FUNCTION)_ The gdImageAlphaBlending function allows for two different modes of drawing on truecolor images. In blending mode, the alpha channel component of the color supplied to all drawing functions, such as gdImageSetPixel, determines how much of the underlying color should be allowed to shine through. As a result, gd automatically blends the existing color at that point with the drawing color, and stores the result in the image. The resulting pixel is opaque. In non-blending mode, the drawing color is copied literally with its alpha channel information, replacing the destination pixel. Blending mode is not available when drawing on palette images. gdImagePtr im; int red, blue; im = gdImageCreateTrueColor(100, 100); /* Background color */ red = gdTrueColor(255, 0, 0); gdImageFilledRectangle(im, 0, 0, 100, 100, red); /* Drawing color. Full transparency would be an alpha channel value of 127 (gd has a 7 bit alpha chnanel). 0 is opaque, 127 is transparent. So cut gdAlphaTransparent in half to get 50% blending. */ blue = gdTrueColorAlpha(0, 0, 255, gdAlphaTransparent / 2); /* Draw with blending. Result will be 50% red, 50% blue: yellow (emitted light, remember, not reflected light. What you learned in Kindergarten is wrong here). */ gdImageAlphaBlending(im, 1); gdImageFilledRectangle(im, 0, 0, 25, 25, blue); /* Draw without blending. Result will be 50% blue, 50% the background color of the image viewer or web browser used; results in browsers that don't support semi-transparent pixels are unpredictable! */ gdImageAlphaBlending(im, 0); gdImageFilledRectangle(im, 75, 75, 25, 25, blue); /* Write the image to disk, etc. */ Query Functions int gdImageAlpha(gdImagePtr im, int color) _(MACRO)_ gdImageAlpha is a macro which returns the alpha channel component of the specified color index. Alpha channel values vary between 0 (gdAlphaOpaque), which does not blend at all with the background, through 127 (gdAlphaTransparent), which allows the background to shine through 100%. Use this macro rather than accessing the structure members directly. int gdImageBlue(gdImagePtr im, int color) _(MACRO)_ gdImageBlue is a macro which returns the blue component of the specified color index. Use this macro rather than accessing the structure members directly. int gdImageGetPixel(gdImagePtr im, int x, int y) _(FUNCTION)_ gdImageGetPixel() retrieves the color index of a particular pixel. Always use this function to query pixels; do not access the pixels of the gdImage structure directly. ... inside a function ... FILE *in; gdImagePtr im; int c; in = fopen("mypng.png", "rb"); im = gdImageCreateFromPng(in); fclose(in); c = gdImageGetPixel(im, gdImageSX(im) / 2, gdImageSY(im) / 2); printf("The value of the center pixel is %d; RGB values are %d,%d,%d\n", c, im->red[c], im->green[c], im->blue[c]); gdImageDestroy(im); int gdImageBoundsSafe(gdImagePtr im, int x, int y) _(FUNCTION)_ gdImageBoundsSafe returns true (1) if the specified point is within the bounds of the image, false (0) if not. This function is intended primarily for use by those who wish to add functions to gd. All of the gd drawing functions already clip safely to the edges of the image. ... inside a function ... gdImagePtr im; int black; int white; im = gdImageCreate(100, 100); if (gdImageBoundsSafe(im, 50, 50)) { printf("50, 50 is within the image bounds\n"); } else { printf("50, 50 is outside the image bounds\n"); } gdImageDestroy(im); int gdImageGreen(gdImagePtr im, int color) _(MACRO)_ gdImageGreen is a macro which returns the green component of the specified color index. Use this macro rather than accessing the structure members directly. int gdImageRed(gdImagePtr im, int color) _(MACRO)_ gdImageRed is a macro which returns the red component of the specified color index. Use this macro rather than accessing the structure members directly. int gdImageSX(gdImagePtr im) _(MACRO)_ gdImageSX is a macro which returns the width of the image in pixels. Use this macro rather than accessing the structure members directly. int gdImageSY(gdImagePtr im) _(MACRO)_ gdImageSY is a macro which returns the height of the image in pixels. Use this macro rather than accessing the structure members directly. Fonts and text-handling functions void gdImageChar(gdImagePtr im, gdFontPtr font, int x, int y, int c, int color) _(FUNCTION)_ gdImageChar is used to draw single characters on the image. (To draw multiple characters, use gdImageString or gdImageString16. See also gdImageStringFT for a high quality solution.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The character specified by the fifth argument is drawn from left to right in the specified color. (See gdImageCharUp for a way of drawing vertical text.) Pixels not set by a particular character retain their previous color. #include "gd.h" #include "gdfontl.h" ... inside a function ... gdImagePtr im; int black; int white; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Draw a character. */ gdImageChar(im, gdFontLarge, 0, 0, 'Q', white); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageCharUp(gdImagePtr im, gdFontPtr font, int x, int y, int c, int color) _(FUNCTION)_ gdImageCharUp is used to draw single characters on the image, rotated 90 degrees. (To draw multiple characters, use gdImageStringUp or gdImageStringUp16.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The character specified by the fifth argument is drawn from bottom to top, rotated at a 90-degree angle, in the specified color. (See gdImageChar for a way of drawing horizontal text.) Pixels not set by a particular character retain their previous color. #include "gd.h" #include "gdfontl.h" ... inside a function ... gdImagePtr im; int black; int white; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Draw a character upwards so it rests against the top of the image. */ gdImageCharUp(im, gdFontLarge, 0, gdFontLarge->h, 'Q', white); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageString(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color) _(FUNCTION)_ gdImageString is used to draw multiple characters on the image. (To draw single characters, use gdImageChar.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The null-terminated C string specified by the fifth argument is drawn from left to right in the specified color. (See gdImageStringUp for a way of drawing vertical text. See also gdImageStringFT for a high quality solution.) Pixels not set by a particular character retain their previous color. #include "gd.h" #include "gdfontl.h" #include ... inside a function ... gdImagePtr im; int black; int white; /* String to draw. */ char *s = "Hello."; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Draw a centered string. */ gdImageString(im, gdFontLarge, im->w / 2 - (strlen(s) * gdFontLarge->w / 2), im->h / 2 - gdFontLarge->h / 2, s, white); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageString16(gdImagePtr im, gdFontPtr font, int x, int y, unsigned short *s, int color) _(FUNCTION)_ gdImageString is used to draw multiple 16-bit characters on the image. (To draw single characters, use gdImageChar.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The null-terminated string of characters represented as 16-bit unsigned short integers specified by the fifth argument is drawn from left to right in the specified color. (See gdImageStringUp16 for a way of drawing vertical text.) Pixels not set by a particular character retain their previous color. This function was added in gd1.3 to provide a means of rendering fonts with more than 256 characters for those who have them. A more frequently used routine is gdImageString. void gdImageStringUp(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color) _(FUNCTION)_ gdImageStringUp is used to draw multiple characters on the image, rotated 90 degrees. (To draw single characters, use gdImageCharUp.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts.The null-terminated C string specified by the fifth argument is drawn from bottom to top (rotated 90 degrees) in the specified color. (See gdImageString for a way of drawing horizontal text.) Pixels not set by a particular character retain their previous color. #include "gd.h" #include "gdfontl.h" #include ... inside a function ... gdImagePtr im; int black; int white; /* String to draw. */ char *s = "Hello."; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color white (red, green and blue all maximum). */ white = gdImageColorAllocate(im, 255, 255, 255); /* Draw a centered string going upwards. Axes are reversed, and Y axis is decreasing as the string is drawn. */ gdImageStringUp(im, gdFontLarge, im->w / 2 - gdFontLarge->h / 2, im->h / 2 + (strlen(s) * gdFontLarge->w / 2), s, white); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageStringUp16(gdImagePtr im, gdFontPtr font, int x, int y, unsigned short *s, int color) _(FUNCTION)_ gdImageString is used to draw multiple 16-bit characters vertically on the image. (To draw single characters, use gdImageChar.) The second argument is a pointer to a font definition structure; five fonts are provided with gd, gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, and gdFontGiant. You must include the files "gdfontt.h", "gdfonts.h", "gdfontmb.h", "gdfontl.h" and "gdfontg.h" respectively and (if you are not using a library-based approach) link with the corresponding .c files to use the provided fonts. The null-terminated string of characters represented as 16-bit unsigned short integers specified by the fifth argument is drawn from bottom to top in the specified color. (See gdImageStringUp16 for a way of drawing horizontal text.) Pixels not set by a particular character retain their previous color. This function was added in gd1.3 to provide a means of rendering fonts with more than 256 characters for those who have them. A more frequently used routine is gdImageStringUp. char *gdImageStringFT(gdImagePtr im, int *brect, int fg, char *fontname, double ptsize, double angle, int x, int y, char *string) _(FUNCTION)_ _RECOMMENDED. New in 1.8.4._ gdImageStringFT draws text using the FreeType 2.x library. gdImageStringFT draws a string of anti-aliased characters on the image using the FreeType library to render user-supplied TrueType fonts. _We do not provide TrueType fonts (.ttf and .ttc files). Obtaining them is entirely up to you._ The string is anti-aliased, meaning that there should be fewer "jaggies" visible. The fontname is the full pathname to a TrueType font file, or a font face name if the GDFONTPATH environment variable or FreeType's DEFAULT_FONTPATH variable have been set intelligently. The string may be arbitrarily scaled (ptsize) and rotated (angle in radians). The user-supplied int brect[8] array is filled on return from gdImageStringFT with the 8 elements representing the 4 corner coordinates of the bounding rectangle. 0 lower left corner, X position lower left corner, Y position lower right corner, X position 3 lower right corner, Y position 4 upper right corner, X position 5 upper right corner, Y position 6 upper left corner, X position 7 upper left corner, Y position The points are relative to the text regardless of the angle, so "upper left" means in the top left-hand corner seeing the text horizontally. Use a NULL gdImagePtr to get the bounding rectangle without rendering. This is a relatively cheap operation if followed by a rendering of the same string, because of the caching of the partial rendering during bounding rectangle calculation. The string is rendered in the color indicated by the gf color index. _Use the negative of the desired color index to disable anti-aliasing._ The string may contain UTF-8 sequences like: "À" gdImageStringFT will return a null char* on success, or an error string on failure. #include "gd.h" #include ... inside a function ... gdImagePtr im; int black; int white; int brect[8]; int x, y; char *err; char *s = "Hello."; /* String to draw. */ double sz = 40.; char *f = "/usr/local/share/ttf/Times.ttf"; /* User supplied font */ /* obtain brect so that we can size the image */ err = gdImageStringFT(NULL,&brect[0],0,f,sz,0.,0,0,s); if (err) {fprintf(stderr,err); return 1;} /* create an image big enough for the string plus a little whitespace */ x = brect[2]-brect[6] + 6; y = brect[3]-brect[7] + 6; im = gdImageCreate(x,y); /* Background color (first allocated) */ white = gdImageColorResolve(im, 255, 255, 255); black = gdImageColorResolve(im, 0, 0, 0); /* render the string, offset origin to center string*/ /* note that we use top-left coordinate for adjustment * since gd origin is in top-left with y increasing downwards. */ x = 3 - brect[6]; y = 3 - brect[7]; err = gdImageStringFT(im,&brect[0],black,f,sz,0.0,x,y,s); if (err) {fprintf(stderr,err); return 1;} /* Write img to stdout */ gdImagePng(im, stdout); /* Destroy it */ gdImageDestroy(im); char *gdImageStringTTF(gdImagePtr im, int *brect, int fg, char *fontname, double ptsize, double angle, int x, int y, char *string) _(FUNCTION)_ _DEPRECATED._ THis function simply invokes gdImageStringFT for backwards compatibility with old code that was written with FreeType 1.x. /DL> Color-handling functions int gdImageColorAllocate(gdImagePtr im, int r, int g, int b) _(FUNCTION)_ gdImageColorAllocate finds the first available color index in the image specified, sets its RGB values to those requested (255 is the maximum for each), and returns the index of the new color table entry, or an RGBA value in the case of a truecolor image; in either case you can then use the returned value as a parameter to drawing functions. When creating a new palette-based image, the first time you invoke this function, you are setting the background color for that image. In the event that all gdMaxColors colors (256) have already been allocated, gdImageColorAllocate will return -1 to indicate failure. (This is not uncommon when working with existing PNG files that already use 256 colors.) Note that gdImageColorAllocate does not check for existing colors that match your request; see gdImageColorExact, gdImageColorClosest and gdImageColorClosestHWB for ways to locate existing colors that approximate the color desired in situations where a new color is not available. Also see gdImageColorResolve, new in gd-1.6.2. ... inside a function ... gdImagePtr im; int black; int red; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color red. */ red = gdImageColorAllocate(im, 255, 0, 0); /* Draw a dashed line from the upper left corner to the lower right corner. */ gdImageDashedLine(im, 0, 0, 99, 99, red); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); int gdImageColorAllocateAlpha(gdImagePtr im, int r, int g, int b, int a) _(FUNCTION)_ gdImageColorAllocateAlpha finds the first available color index in the image specified, sets its RGBA values to those requested (255 is the maximum for red, green and blue, and 127 represents full transparency for alpha), and returns the index of the new color table entry, or an RGBA value in the case of a truecolor image; in either case you can then use the returned value as a parameter to drawing functions. When creating a new palette-based image, the first time you invoke this function, you are setting the background color for that image. In the event that all gdMaxColors colors (256) have already been allocated, gdImageColorAllocate will return -1 to indicate failure. (This is not uncommon when working with existing palette-based PNG files that already use 256 colors.) Note that gdImageColorAllocateAlpha does not check for existing colors that match your request; see gdImageColorExactAlpha and gdImageColorClosestAlpha for ways to locate existing colors that approximate the color desired in situations where a new color is not available. Also see gdImageColorResolveAlpha. ... inside a function ... gdImagePtr im; int black; int red; im = gdImageCreate(100, 100); /* Background color (first allocated) */ black = gdImageColorAllocate(im, 0, 0, 0); /* Allocate the color red, 50% transparent. */ red = gdImageColorAllocateAlpha(im, 255, 0, 0, 64); /* Draw a dashed line from the upper left corner to the lower right corner. */ gdImageDashedLine(im, 0, 0, 99, 99, red); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); int gdImageColorClosest(gdImagePtr im, int r, int g, int b) _(FUNCTION)_ gdImageColorClosest searches the colors which have been defined thus far in the image specified and returns the index of the color with RGB values closest to those of the request. (Closeness is determined by Euclidian distance, which is used to determine the distance in three-dimensional color space between colors.) If no colors have yet been allocated in the image, gdImageColorClosest returns -1. When applied to a truecolor image, this function always succeeds in returning the desired color. This function is most useful as a backup method for choosing a drawing color when an image already contains gdMaxColors (256) colors and no more can be allocated. (This is not uncommon when working with existing PNG files that already use many colors.) See gdImageColorExact for a method of locating exact matches only. ... inside a function ... gdImagePtr im; FILE *in; int red; /* Let's suppose that photo.png is a scanned photograph with many colors. */ in = fopen("photo.png", "rb"); im = gdImageCreateFromPng(in); fclose(in); /* Try to allocate red directly */ red = gdImageColorAllocate(im, 255, 0, 0); /* If we fail to allocate red... */ if (red == (-1)) { /* Find the _closest_ color instead. */ red = gdImageColorClosest(im, 255, 0, 0); } /* Draw a dashed line from the upper left corner to the lower right corner */ gdImageDashedLine(im, 0, 0, 99, 99, red); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); int gdImageColorClosestAlpha(gdImagePtr im, int r, int g, int b, int a) _(FUNCTION)_ gdImageColorClosest searches the colors which have been defined thus far in the image specified and returns the index of the color with RGBA values closest to those of the request. (Closeness is determined by Euclidian distance, which is used to determine the distance in four-dimensional color/alpha space between colors.) If no colors have yet been allocated in the image, gdImageColorClosestAlpha returns -1. When applied to a truecolor image, this function always succeeds in returning the desired color. This function is most useful as a backup method for choosing a drawing color when a palette-based image already contains gdMaxColors (256) colors and no more can be allocated. (This is not uncommon when working with existing palette-based PNG files that already use many colors.) See gdImageColorExactAlpha for a method of locating exact matches only. ... inside a function ... gdImagePtr im; FILE *in; int red; /* Let's suppose that photo.png is a scanned photograph with many colors. */ in = fopen("photo.png", "rb"); im = gdImageCreateFromPng(in); fclose(in); /* Try to allocate red, 50% transparent, directly */ red = gdImageColorAllocateAlpha(im, 255, 0, 0, 64); /* If we fail to allocate red... */ if (red == (-1)) { /* Find the _closest_ color instead. */ red = gdImageColorClosestAlpha(im, 255, 0, 0, 64); } /* Draw a dashed line from the upper left corner to the lower right corner */ gdImageDashedLine(im, 0, 0, 99, 99, red); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); int gdImageColorClosestHWB(gdImagePtr im, int r, int g, int b) _(FUNCTION)_ gdImageColorClosestHWB searches the colors which have been defined thus far in the image specified and returns the index of the color with hue, whiteness and blackness closest to the requested color. This scheme is typically superior to the Euclidian distance scheme used by gdImageColorClosest. If no colors have yet been allocated in the image, gdImageColorClosestHWB returns -1. When applied to a truecolor image, this function always succeeds in returning the desired color. This function is most useful as a backup method for choosing a drawing color when an image already contains gdMaxColors (256) colors and no more can be allocated. (This is not uncommon when working with existing PNG files that already use many colors.) See gdImageColorExact for a method of locating exact matches only. ... inside a function ... gdImagePtr im; FILE *in; int red; /* Let's suppose that photo.png is a scanned photograph with many colors. */ in = fopen("photo.png", "rb"); im = gdImageCreateFromPng(in); fclose(in); /* Try to allocate red directly */ red = gdImageColorAllocate(im, 255, 0, 0); /* If we fail to allocate red... */ if (red == (-1)) { /* Find the _closest_ color instead. */ red = gdImageColorClosestHWB(im, 255, 0, 0); } /* Draw a dashed line from the upper left corner to the lower right corner */ gdImageDashedLine(im, 0, 0, 99, 99, red); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); int gdImageColorExact(gdImagePtr im, int r, int g, int b) _(FUNCTION)_ gdImageColorExact searches the colors which have been defined thus far in the image specified and returns the index of the first color with RGB values which exactly match those of the request. If no allocated color matches the request precisely, gdImageColorExact returns -1. See gdImageColorClosest for a way to find the color closest to the color requested. When applied to a truecolor image, this function always succeeds in returning the desired color. ... inside a function ... gdImagePtr im; int red; in = fopen("photo.png", "rb"); im = gdImageCreateFromPng(in); fclose(in); /* The image may already contain red; if it does, we'll save a slot in the color table by using that color. */ /* Try to allocate red directly */ red = gdImageColorExact(im, 255, 0, 0); /* If red isn't already present... */ if (red == (-1)) { /* Second best: try to allocate it directly. */ red = gdImageColorAllocate(im, 255, 0, 0); /* Out of colors, so find the _closest_ color instead. */ red = gdImageColorClosest(im, 255, 0, 0); } /* Draw a dashed line from the upper left corner to the lower right corner */ gdImageDashedLine(im, 0, 0, 99, 99, red); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); int gdImageColorResolve(gdImagePtr im, int r, int g, int b) _(FUNCTION)_ gdImageColorResolve searches the colors which have been defined thus far in the image specified and returns the index of the first color with RGB values which exactly match those of the request. If no allocated color matches the request precisely, then gdImageColorResolve tries to allocate the exact color. If there is no space left in the color table then gdImageColorResolve returns the closest color (as in gdImageColorClosest). This function always returns an index of a color. When applied to a truecolor image, this function always succeeds in returning the desired color. ... inside a function ... gdImagePtr im; int red; in = fopen("photo.png", "rb"); im = gdImageCreateFromPng(in); fclose(in); /* The image may already contain red; if it does, we'll save a slot in the color table by using that color. */ /* Get index of red, or color closest to red */ red = gdImageColorResolve(im, 255, 0, 0); /* Draw a dashed line from the upper left corner to the lower right corner */ gdImageDashedLine(im, 0, 0, 99, 99, red); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); int gdImageColorResolveAlpha(gdImagePtr im, int r, int g, int b, int a) _(FUNCTION)_ gdImageColorResolveAlpha searches the colors which have been defined thus far in the image specified and returns the index of the first color with RGBA values which exactly match those of the request. If no allocated color matches the request precisely, then gdImageColorResolveAlpha tries to allocate the exact color. If there is no space left in the color table then gdImageColorResolveAlpha returns the closest color (as in gdImageColorClosestAlpha). This function always returns an index of a color. When applied to a truecolor image, this function always succeeds in returning the desired color. ... inside a function ... gdImagePtr im; int red; in = fopen("photo.png", "rb"); im = gdImageCreateFromPng(in); fclose(in); /* The image may already contain red; if it does, we'll save a slot in the color table by using that color. */ /* Get index of red, 50% transparent, or the next best thing */ red = gdImageColorResolveAlpha(im, 255, 0, 0, 64); /* Draw a dashed line from the upper left corner to the lower right corner */ gdImageDashedLine(im, 0, 0, 99, 99, red); /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); int gdImageColorsTotal(gdImagePtr im) _(MACRO)_ gdImageColorsTotal is a macro which returns the number of colors currently allocated in a palette image. For truecolor images, the result of this call is undefined and should not be used. int gdImageColorRed(gdImagePtr im, int c) _(MACRO)_ gdImageColorRed is a macro which returns the red portion of the specified color in the image. This macro works for both palette and truecolor images. int gdImageColorGreen(gdImagePtr im, int c) _(MACRO)_ gdImageColorGreen is a macro which returns the green portion of the specified color in the image. This macro works for both palette and truecolor images. int gdImageColorBlue(gdImagePtr im, int c) _(MACRO)_ gdImageColorBlue is a macro which returns the green portion of the specified color in the image. This macro works for both palette and truecolor images. int gdImageGetInterlaced(gdImagePtr im) _(MACRO)_ gdImageGetInterlaced is a macro which returns true (1) if the image is interlaced, false (0) if not. Use this macro to obtain this information; do not access the structure directly. See gdImageInterlace for a means of interlacing images. int gdImageGetTransparent(gdImagePtr im) _(MACRO)_ gdImageGetTransparent is a macro which returns the current transparent color index in the image. If there is no transparent color, gdImageGetTransparent returns -1. Use this macro to obtain this information; do not access the structure directly. void gdImageColorDeallocate(gdImagePtr im, int color) _(FUNCTION)_ gdImageColorDeallocate marks the specified color as being available for reuse. It does not attempt to determine whether the color index is still in use in the image. After a call to this function, the next call to gdImageColorAllocate for the same image will set new RGB values for that color index, changing the color of any pixels which have that index as a result. If multiple calls to gdImageColorDeallocate are made consecutively, the lowest-numbered index among them will be reused by the next gdImageColorAllocate call. ... inside a function ... gdImagePtr im; int red, blue; in = fopen("photo.png", "rb"); im = gdImageCreateFromPng(in); fclose(in); /* Look for red in the color table. */ red = gdImageColorExact(im, 255, 0, 0); /* If red is present... */ if (red != (-1)) { /* Deallocate it. */ gdImageColorDeallocate(im, red); /* Allocate blue, reusing slot in table. Existing red pixels will change color. */ blue = gdImageColorAllocate(im, 0, 0, 255); } /* ... Do something with the image, such as saving it to a file... */ /* Destroy it */ gdImageDestroy(im); void gdImageColorTransparent(gdImagePtr im, int color) _(FUNCTION)_ gdImageColorTransparent sets the transparent color index for the specified image to the specified index. To indicate that there should be _no_ transparent color, invoke gdImageColorTransparent with a color index of -1. Note that JPEG images do not support transparency, so this setting has no effect when writing JPEG images. The color index used should be an index allocated by gdImageColorAllocate, whether explicitly invoked by your code or implicitly invoked by loading an image. In order to ensure that your image has a reasonable appearance when viewed by users who do not have transparent background capabilities (or when you are writing a JPEG-format file, which does not support transparency), be sure to give reasonable RGB values to the color you allocate for use as a transparent color, _even though it will be transparent on systems that support PNG transparency_. ... inside a function ... gdImagePtr im; int black; FILE *in, *out; in = fopen("photo.png", "rb"); im = gdImageCreateFromPng(in); fclose(in); /* Look for black in the color table and make it transparent. */ black = gdImageColorExact(im, 0, 0, 0); /* If black is present... */ if (black != (-1)) { /* Make it transparent */ gdImageColorTransparent(im, black); } /* Save the newly-transparent image back to the file */ out = fopen("photo.png", "wb"); gdImagePng(im, out); fclose(out); /* Destroy it */ gdImageDestroy(im); void gdImageTrueColor(int red, int green, int blue) _(MACRO)_ gdImageTrueColor returns an RGBA color value for use when drawing on a truecolor image. Red, green, and blue are all in the range between 0 (off) and 255 (maximum). This macro should not be used with palette-based images. If you need to write code which is compatible with both palette-based and truecolor images, use gdImageColorResolve. void gdImageTrueColorAlpha(int red, int green, int blue, int alpha) _(MACRO)_ gdImageTrueColorAlpha returns an RGBA color value for use when drawing on a truecolor image with alpha channel transparency. Red, green, and blue are all in the range between 0 (off) and 255 (maximum). Alpha is in the range between 0 (opaque) and 127 (fully transparent). This macro should not be used with palette-based images. If you need to write code which is compatible with both palette-based and truecolor images, use gdImageColorResolveAlpha. Copying and resizing functions void gdImageCopy(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h) _(FUNCTION)_ gdImageCopy is used to copy a rectangular portion of one image to another image. (For a way of stretching or shrinking the image in the process, see gdImageCopyResized.) The dst argument is the destination image to which the region will be copied. The src argument is the source image from which the region is copied. The dstX and dstY arguments specify the point in the destination image to which the region will be copied. The srcX and srcY arguments specify the upper left corner of the region in the source image. The w and h arguments specify the width and height of the region. When you copy a region from one location in an image to another location in the same image, gdImageCopy will perform as expected unless the regions overlap, in which case the result is unpredictable. _Important note on copying between images:_ since different images do not necessarily have the same color tables, pixels are not simply set to the same color index values to copy them. gdImageCopy will attempt to find an identical RGB value in the destination image for each pixel in the copied portion of the source image by invoking gdImageColorExact. If such a value is not found, gdImageCopy will attempt to allocate colors as needed using gdImageColorAllocate. If both of these methods fail, gdImageCopy will invoke gdImageColorClosest to find the color in the destination image which most closely approximates the color of the pixel being copied. ... Inside a function ... gdImagePtr im_in; gdImagePtr im_out; int x, y; FILE *in; FILE *out; /* Load a small png to tile the larger one with */ in = fopen("small.png", "rb"); im_in = gdImageCreateFromPng(in); fclose(in); /* Make the output image four times as large on both axes */ im_out = gdImageCreate(im_in->sx * 4, im_in->sy * 4); /* Now tile the larger image using the smaller one */ for (y = 0; (y < 4); y++) { for (x = 0; (x < 4); x++) { gdImageCopy(im_out, im_in, x * im_in->sx, y * im_in->sy, 0, 0, im_in->sx, im_in->sy); } } out = fopen("tiled.png", "wb"); gdImagePng(im_out, out); fclose(out); gdImageDestroy(im_in); gdImageDestroy(im_out); void gdImageCopyResized(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int destW, int destH, int srcW, int srcH) _(FUNCTION)_ gdImageCopyResized is used to copy a rectangular portion of one image to another image. The X and Y dimensions of the original region and the destination region can vary, resulting in stretching or shrinking of the region as appropriate. (For a simpler version of this function which does not deal with resizing, see gdImageCopy.) The dst argument is the destination image to which the region will be copied. The src argument is the source image from which the region is copied. The dstX and dstY arguments specify the point in the destination image to which the region will be copied. The srcX and srcY arguments specify the upper left corner of the region in the source image. The dstW and dstH arguments specify the width and height of the destination region. The srcW and srcH arguments specify the width and height of the source region and can differ from the destination size, allowing a region to be scaled during the copying process. When you copy a region from one location in an image to another location in the same image, gdImageCopy will perform as expected unless the regions overlap, in which case the result is unpredictable. If this presents a problem, create a scratch image in which to keep intermediate results. _Important note on copying between images:_ since images do not necessarily have the same color tables, pixels are not simply set to the same color index values to copy them. gdImageCopy will attempt to find an identical RGB value in the destination image for each pixel in the copied portion of the source image by invoking gdImageColorExact. If such a value is not found, gdImageCopy will attempt to allocate colors as needed using gdImageColorAllocate. If both of these methods fail, gdImageCopy will invoke gdImageColorClosest to find the color in the destination image which most closely approximates the color of the pixel being copied. ... Inside a function ... gdImagePtr im_in; gdImagePtr im_out; int x, y; FILE *in; FILE *out; /* Load a small png to expand in the larger one */ in = fopen("small.png", "rb"); im_in = gdImageCreateFromPng(in); fclose(in); /* Make the output image four times as large on both axes */ im_out = gdImageCreate(im_in->sx * 4, im_in->sy * 4); /* Now copy the smaller image, but four times larger */ gdImageCopyResized(im_out, im_in, 0, 0, 0, 0, im_out->sx, im_out->sy, im_in->sx, im_in->sy); out = fopen("large.png", "wb"); gdImagePng(im_out, out); fclose(out); gdImageDestroy(im_in); gdImageDestroy(im_out); void gdImageCopyResampled(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int destW, int destH, int srcW, int srcH) _(FUNCTION)_ gdImageCopyResampled is used to copy a rectangular portion of one image to another image, smoothly interpolating pixel values so that, in particular, reducing the size of an image still retains a great deal of clarity. The X and Y dimensions of the original region and the destination region can vary, resulting in stretching or shrinking of the region as appropriate. (For a simpler version of this function which does not deal with resizing, see gdImageCopy. For a version which does not interpolate pixel values, see gdImageCopyResized. Pixel values are only interpolated if the destination image is a truecolor image. Otherwise, gdImageCopyResized is automatically invoked. The dst argument is the destination image to which the region will be copied. The src argument is the source image from which the region is copied. The dstX and dstY arguments specify the point in the destination image to which the region will be copied. The srcX and srcY arguments specify the upper left corner of the region in the source image. The dstW and dstH arguments specify the width and height of the destination region. The srcW and srcH arguments specify the width and height of the source region and can differ from the destination size, allowing a region to be scaled during the copying process. When you copy a region from one location in an image to another location in the same image, gdImageCopy will perform as expected unless the regions overlap, in which case the result is unpredictable. If this presents a problem, create a scratch image in which to keep intermediate results. _Important note on copying between images:_ since images do not necessarily have the same color tables, pixels are not simply set to the same color index values to copy them. If the destination image is a palette image, gd will use the gdImageColorResolve function to determine the best color available. ... Inside a function ... gdImagePtr im_in; gdImagePtr im_out; int x, y; FILE *in; FILE *out; /* Load a large png to shrink in the smaller one */ in = fopen("large.png", "rb"); im_in = gdImageCreateFromPng(in); fclose(in); /* Make the output image four times as small on both axes. Use a true color image so that we can interpolate colors. */ im_out = gdImageCreateTrueColor(im_in->sx / 4, im_in->sy / 4); /* Now copy the large image, but four times smaller */ gdImageCopyResampled(im_out, im_in, 0, 0, 0, 0, im_out->sx, im_out->sy, im_in->sx, im_in->sy); out = fopen("large.png", "wb"); gdImagePng(im_out, out); fclose(out); gdImageDestroy(im_in); gdImageDestroy(im_out); void gdImageCopyMerge(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h, int pct) _(FUNCTION)_ gdImageCopyMerge is almost identical to gdImageCopy, except that it 'merges' the two images by an amount specified in the last parameter. If the last parameter is 100, then it will function identically to gdImageCopy - the source image replaces the pixels in the destination. If, however, the _pct_ parameter is less than 100, then the two images are merged. With pct = 0, no action is taken. This feature is most useful to 'highlight' sections of an image by merging a solid color with pct = 50: ... Inside a function ... gdImageCopyMerge(im_out, im_in, 100, 200, 0, 0, 30, 50, 50); void gdImageCopyMergeGray(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h, int pct) _(FUNCTION)_ gdImageCopyMergeGray is almost identical to gdImageCopyMerge, except that when merging images it preserves the hue of the source by converting the destination pixels to grey scale before the copy operation. ... Inside a function ... gdImageCopyMergeGray(im_out, im_in, 100, 200, 0, 0, 30, 50, 50); void gdImagePaletteCopy(gdImagePtr dst, gdImagePtr src) _(FUNCTION)_ Copies a palette from one image to another, attempting to match the colors in the target image to the colors in the source palette. Miscellaneous Functions int gdImageCompare(gdImagePtr im1, gdImagePtr im2) _(FUNCTION)_ gdImageCompare returns a bitmap indicating if the two images are different. The members of the bitmap are defined in gd.h, but the most important is GD_CMP_IMAGE, which indicated that the images will actually appear different when displayed. Other, less important, differences relate to pallette entries. Any difference in the transparent colour is assumed to make images display differently, even if the transparent colour is not used. ... Inside a function ... cmpMask = gdImageCompare(im1, im2); gdImageInterlace(gdImagePtr im, int interlace) _(FUNCTION)_ gdImageInterlace is used to determine whether an image should be stored in a linear fashion, in which lines will appear on the display from first to last, or in an interlaced fashion, in which the image will "fade in" over several passes. By default, images are not interlaced. (When writing JPEG images, interlacing implies generating progressive JPEG files, which are represented as a series of scans of increasing quality. Noninterlaced gd images result in regular [sequential] JPEG data streams.) A nonzero value for the interlace argument turns on interlace; a zero value turns it off. Note that interlace has no effect on other functions, and has no meaning unless you save the image in PNG or JPEG format; the gd and xbm formats do not support interlace. When a PNG is loaded with gdImageCreateFromPng or a JPEG is loaded with gdImageCreateFromJpeg, interlace will be set according to the setting in the PNG or JPEG file. Note that many PNG and JPEG viewers and web browsers do _not_ support interlace or the incremental display of progressive JPEGs. However, the interlaced PNG or progressive JPEG should still display; it will simply appear all at once, just as other images do. gdImagePtr im; FILE *out; /* ... Create or load the image... */ /* Now turn on interlace */ gdImageInterlace(im, 1); /* And open an output file */ out = fopen("test.png", "wb"); /* And save the image -- could also use gdImageJpeg */ gdImagePng(im, out); fclose(out); gdImageDestroy(im); gdFree(void *ptr) _(FUNCTION)_ gdFree provides a reliable way to free memory allocated by functions such as gdImagePngPtr which return blocks of memory. Use of this function guarantees that the version of free() that is ultimately called will be intended for use with the version of malloc() that originally allocated the block. Constants gdBrushed _(CONSTANT)_ Used in place of a color when invoking a line-drawing function such as gdImageLine or gdImageRectangle. When gdBrushed is used as the color, the brush image set with gdImageSetBrush is drawn in place of each pixel of the line (the brush is usually larger than one pixel, creating the effect of a wide paintbrush). See also gdStyledBrushed for a way to draw broken lines with a series of distinct copies of an image. gdMaxColors_(CONSTANT)_ The constant 256. This is the maximum number of colors in a PNG file according to the PNG standard, and is also the maximum number of colors in a gd image. gdStyled _(CONSTANT)_ Used in place of a color when invoking a line-drawing function such as gdImageLine or gdImageRectangle. When gdStyled is used as the color, the colors of the pixels are drawn successively from the style that has been set with gdImageSetStyle. If the color of a pixel is equal to gdTransparent, that pixel is not altered. (This mechanism is completely unrelated to the "transparent color" of the image itself; see gdImageColorTransparent gdImageColorTransparent for that mechanism.) See also gdStyledBrushed. gdStyledBrushed _(CONSTANT)_ Used in place of a color when invoking a line-drawing function such as gdImageLine or gdImageRectangle. When gdStyledBrushed is used as the color, the brush image set with gdImageSetBrush is drawn at each pixel of the line, providing that the style set with gdImageSetStyle contains a nonzero value (OR gdTransparent, which does not equal zero but is supported for consistency) for the current pixel. (Pixels are drawn successively from the style as the line is drawn, returning to the beginning when the available pixels in the style are exhausted.) Note that this differs from the behavior of gdStyled, in which the values in the style are used as actual pixel colors, except for gdTransparent. gdDashSize _(CONSTANT)_ The length of a dash in a dashed line. Defined to be 4 for backwards compatibility with programs that use gdImageDashedLine. New programs should use gdImageSetStyle and call the standard gdImageLine function with the special "color" gdStyled or gdStyledBrushed. gdTiled _(CONSTANT)_ Used in place of a normal color in gdImageFilledRectangle, gdImageFilledPolygon, gdImageFill, and gdImageFillToBorder. gdTiled selects a pixel from the tile image set with gdImageSetTile in such a way as to ensure that the filled area will be tiled with copies of the tile image. See the discussions of gdImageFill and gdImageFillToBorder for special restrictions regarding those functions. gdTransparent _(CONSTANT)_ Used in place of a normal color in a style to be set with gdImageSetStyle. gdTransparent is _not_ the transparent color index of the image; for that functionality please see gdImageColorTransparent. About the additional .gd image file format In addition to reading and writing the PNG and JPEG formats and reading the X Bitmap format, gd has the capability to read and write its own ".gd" format. This format is _not_ intended for general purpose use and should never be used to distribute images. It is not a compressed format. Its purpose is solely to allow very fast loading of images your program needs often in order to build other images for output. If you are experiencing performance problems when loading large, fixed PNG images your program needs to produce its output images, you may wish to examine the functions gdImageCreateFromGd and gdImageGd, which read and write .gd format images. The program "pngtogd.c" is provided as a simple way of converting .png files to .gd format. I emphasize again that you will not need to use this format unless you have a need for high-speed loading of a few frequently-used images in your program. About the .gd2 image file format In addition to reading and writing the PNG format and reading the X Bitmap format, gd has the capability to read and write its own ".gd2" format. This format is _not_ intended for general purpose use and should never be used to distribute images. It is a compressed format allowing pseudo-random access to large image files. Its purpose is solely to allow very fast loading of _parts_ of images If you are experiencing performance problems when loading large, fixed PNG or JPEG images your program needs to produce its output images, you may wish to examine the functions gdImageCreateFromGd2, gdImageCreateFromGd2Part and gdImageGd2, which read and write .gd2 format images. The program "pngtogd2.c" is provided as a simple way of converting .png files to .gd2 format. About the gdIOCtx structure Version 1.5 of GD added a new style of I/O based on an IOCtx structure (the most up-to-date version can be found in gd_io.h): typedef struct gdIOCtx { int (*getC)(struct gdIOCtx*); int (*getBuf)(struct gdIOCtx*, void*, int); void (*putC)(struct gdIOCtx*, int); int (*putBuf)(struct gdIOCtx*, const void*, int); int (*seek)(struct gdIOCtx*, const int); long (*tell)(struct gdIOCtx*); void (*free)(struct gdIOCtx*); } gdIOCtx; Most functions that accepted files in previous versions now also have a counterpart that accepts an I/O context. These functions have a 'Ctx' suffix. The Ctx routines use the function pointers in the I/O context pointed to by gdIOCtx to perform all I/O. Examples of how to implement an I/O context can be found in io_file.c (which provides a wrapper for file routines), and io_dp.c (which implements in-memory storage). It is not necessary to implement all functions in an I/O context if you know that it will only be used in limited cirsumstances. At the time of writing (Version 1.6.1, July 1999), the known requirements are: All Must have 'free', Anything that reads from the context Must have 'getC' and 'getBuf', Anything that writes to the context Must have 'putC' and 'putBuf'. If gdCreateFromGd2Part is called Must also have 'seek' and 'tell'. If gdImageGd2 is called Must also have 'seek' and 'tell'. Please tell us you're using gd! When you contact us and let us know you are using gd, you help us justify the time spent in maintaining and improving it. So please let us know. If the results are publicly visible on the web, a URL is a wonderful thing to receive, but if it's not a publicly visible project, a simple note is just as welcome. If you have problems If you have any difficulties with gd, feel free to contact the author, Thomas Boutell. Problems relating to the gd2 format should be addressed to Philip Warner. _Be sure to read this manual carefully first. _ Alphabetical quick index gdBrushed | gdDashSize | gdFont | gdFontPtr | gdFree | gdImage | gdImageAlphaBlending | gdImageArc | gdImageBlue | gdImageBoundsSafe | gdImageChar | gdImageCharUp | gdImageColorAllocate | gdImageColorAllocateAlpha | gdImageColorClosest | gdImageColorClosestAlpha | gdImageColorDeallocate | gdImageColorExact | gdImageColorExactAlpha | gdImageColorResolve | gdImageColorResolveAlpha | gdImageColorTransparent | gdImageCopy | gdImageCopyMerge | gdImageMergeGray | gdImageCopyResized | gdImageCopyResampled | gdImageCreate | gdImageCreatePalette | gdImageCreateTrueColor | gdImageCreateFromGd | gdImageCreateFromGd2 | gdImageCreateFromGd2Part | gdImageCreateFromJpeg | gdImageCreateFromPng | gdImageCreateFromPngSource | gdImageCreateFromXbm | gdImageCreateFromXpm | gdImageDashedLine | gdImageDestroy | gdImageFill | gdImageFilledArc | gdImageFilledEllipse | gdImageFillToBorder | gdImageFilledRectangle | gdImageGd | gdImageGd2 | gdImageGetInterlaced | gdImageGetPixel | gdImageGetTransparent | gdImageGreen | gdImageInterlace | gdImageJpeg | gdImageLine | gdImageFilledPolygon | gdImagePaletteCopy | gdImagePng | gdImagePngToSink | gdImagePolygon | gdImagePtr | gdImageWBMP | gdImageRectangle | gdImageRed | gdImageSetBrush | gdImageSetPixel | gdImageSetStyle | gdImageSetTile | gdImageString | gdImageString16 | gdImageStringFT | gdImageStringTTF | gdImageStringUp | gdImageStringUp16 | gdImageWBMP | gdMaxColors | gdPoint | gdStyled | gdStyledBrushed | gdTiled | gdTransparent _Boutell.Com, Inc._ libwmf-0.2.13/src/extra/gd/tc000066400000000000000000000012151441723000300157030ustar00rootroot00000000000000 if (im->trueColor) { a->tweencolor = gdTrueColorAlpha(im, (pixel * gdTrueColorGetRed(fg) + npixel * gdTrueColorGetRed(bg)) / NUMCOLORS, (pixel * gdTrueColorGetGreen(fg) + npixel * gdTrueColorGetGreen(bg)) / NUMCOLORS, (pixel * gdTrueColorGetBlue(fg) + npixel * gdTrueColorGetBlue(bg)) / NUMCOLORS, (pixel * gdTrueColorGetAlpha(fg) + npixel * gdTrueColorGetAlpha(bg)) / NUMCOLORS); } else { a->tweencolor = gdImageColorResolve(im, (pixel * im->red[fg] + npixel * im->red[bg]) / NUMCOLORS, (pixel * im->green[fg] + npixel * im->green[bg]) / NUMCOLORS, (pixel * im->blue[fg] + npixel * im->blue[bg]) / NUMCOLORS); } libwmf-0.2.13/src/extra/gd/testac.c000066400000000000000000000077161441723000300170150ustar00rootroot00000000000000 #include #include "gd.h" /* If palette is true, we convert from truecolor to palette at the end, to test gdImageTrueColorToPalette and see file size/ quality tradeoffs. */ void testDrawing ( gdImagePtr im_in, double scale, int blending, int palette, char *filename); int main (int argc, char *argv[]) { /* Input and output files */ FILE *in; FILE *out; /* Input image */ gdImagePtr im_in = 0; /* Colors */ int lightBlue; if (argc != 2) { fprintf (stderr, "Usage: testac filename.png\n"); exit (1); } /* Load original PNG, which should contain alpha channel information. We will use it in two ways: preserving it literally, for use with compatible browsers, and compositing it ourselves against a background of our choosing (alpha blending). We'll change its size and try creating palette versions of it. */ in = fopen (argv[1], "rb"); if (!in) { fprintf (stderr, "Can't load %s.\n", argv[1]); exit (1); } else { im_in = gdImageCreateFromPng (in); fclose (in); } testDrawing (im_in, 1.0, 0, 0, "noblending-fullsize-truecolor.png"); testDrawing (im_in, 1.0, 1, 0, "blending-fullsize-truecolor.png"); testDrawing (im_in, 0.5, 0, 0, "noblending-halfsize-truecolor.png"); testDrawing (im_in, 0.5, 1, 0, "blending-halfsize-truecolor.png"); testDrawing (im_in, 2.0, 0, 0, "noblending-doublesize-truecolor.png"); testDrawing (im_in, 2.0, 1, 0, "blending-doublesize-truecolor.png"); testDrawing (im_in, 1.0, 0, 1, "noblending-fullsize-palette.png"); testDrawing (im_in, 1.0, 1, 1, "blending-fullsize-palette.png"); testDrawing (im_in, 0.5, 0, 1, "noblending-halfsize-palette.png"); testDrawing (im_in, 0.5, 1, 1, "blending-halfsize-palette.png"); testDrawing (im_in, 2.0, 0, 1, "noblending-doublesize-palette.png"); testDrawing (im_in, 2.0, 1, 1, "blending-doublesize-palette.png"); gdImageDestroy (im_in); return 0; } /* If palette is true, we convert from truecolor to palette at the end, to test gdImageTrueColorToPalette and see file size/ quality tradeoffs. */ void testDrawing ( gdImagePtr im_in, double scale, int blending, int palette, char *filename) { gdImagePtr im_out; FILE *out; /* Create output image. */ im_out = gdImageCreateTrueColor ((int) (gdImageSX (im_in) * scale), (int) (gdImageSY (im_in) * scale)); /* Request alpha blending. This causes future drawing operations to perform alpha channel blending with the background, resulting in an opaque image. Without this call, pixels in the foreground color are copied literally, *including* the alpha channel value, resulting in an output image which is potentially not opaque. This flag can be set and cleared as often as desired. */ gdImageAlphaBlending (im_out, blending); /* Flood with light blue. */ gdImageFill (im_out, (int) (gdImageSX (im_in) * scale / 2), (int) (gdImageSY (im_in) * scale / 2), gdTrueColor (192, 192, 255)); /* Copy the source image. Alpha blending should result in compositing against red. With blending turned off, the browser or viewer will composite against its preferred background, or, if it does not support an alpha channel, we will see the original colors for the pixels that ought to be transparent or semitransparent. */ gdImageCopyResampled (im_out, im_in, 0, 0, 0, 0, (int) (gdImageSX (im_in) * scale), (int) (gdImageSY (im_in) * scale), gdImageSX (im_in), gdImageSY (im_in)); /* Write PNG */ out = fopen (filename, "wb"); /* If this image is the result of alpha channel blending, it will not contain an interesting alpha channel itself. Save a little file size by not saving the alpha channel. Otherwise the file would typically be slightly larger. */ gdImageSaveAlpha (im_out, !blending); gdImagePng (im_out, out); fclose (out); gdImageDestroy (im_out); } libwmf-0.2.13/src/extra/gd/wbmp.c000066400000000000000000000147231441723000300164730ustar00rootroot00000000000000 /* WBMP ** ---- ** WBMP Level 0: B/W, Uncompressed ** This implements the WBMP format as specified in WAPSpec 1.1 and 1.2. ** It does not support ExtHeaders as defined in the spec. The spec states ** that a WAP client does not need to implement ExtHeaders. ** ** (c) 2000 Johan Van den Brande */ #include #include #include #include #include "wbmp.h" #include "gd.h" #include "gdhelpers.h" #ifdef NOTDEF #define __TEST /* Compile with main function */ #define __DEBUG /* Extra verbose when with __TEST */ #define __WRITE /* readwbmp and writewbmp(stdout) */ #define __VIEW /* view the wbmp on stdout */ #endif /* getmbi ** ------ ** Get a multibyte integer from a generic getin function ** 'getin' can be getc, with in = NULL ** you can find getin as a function just above the main function ** This way you gain a lot of flexibilty about how this package ** reads a wbmp file. */ int getmbi (int (*getin) (void *in), void *in) { int i, mbi = 0; do { i = getin (in); if (i < 0) return (-1); mbi = (mbi << 7) | (i & 0x7f); } while (i & 0x80); return (mbi); } /* putmbi ** ------ ** Put a multibyte intgerer in some kind of output stream ** I work here with a function pointer, to make it as generic ** as possible. Look at this function as an iterator on the ** mbi integers it spits out. ** */ void putmbi (int i, void (*putout) (int c, void *out), void *out) { int cnt, l, accu; /* Get number of septets */ cnt = 0; accu = 0; while (accu != i) accu += i & 0x7f << 7 * cnt++; /* Produce the multibyte output */ for (l = cnt - 1; l > 0; l--) putout (0x80 | (i & 0x7f << 7 * l) >> 7 * l, out); putout (i & 0x7f, out); } /* skipheader ** ---------- ** Skips the ExtHeader. Not needed for the moment ** */ int skipheader (int (*getin) (void *in), void *in) { int i; do { i = getin (in); if (i < 0) return (-1); } while (i & 0x80); return (0); } /* create wbmp ** ----------- ** create an empty wbmp ** */ Wbmp * createwbmp (int width, int height, int color) { int i; Wbmp *wbmp; if ((wbmp = (Wbmp *) gdMalloc (sizeof (Wbmp))) == NULL) return (NULL); if ((wbmp->bitmap = (int *) gdMalloc (sizeof (int) * width * height)) == NULL) { gdFree (wbmp); return (NULL); } wbmp->width = width; wbmp->height = height; for (i = 0; i < width * height; wbmp->bitmap[i++] = color); return (wbmp); } /* readwbmp ** ------- ** Actually reads the WBMP format from an open file descriptor ** It goes along by returning a pointer to a WBMP struct. ** */ int readwbmp (int (*getin) (void *in), void *in, Wbmp ** return_wbmp) { int row, col, byte, pel, pos; Wbmp *wbmp; if ((wbmp = (Wbmp *) gdMalloc (sizeof (Wbmp))) == NULL) return (-1); wbmp->type = getin (in); if (wbmp->type != 0) { gdFree (wbmp); return (-1); } if (skipheader (getin, in)) { gdFree (wbmp); return (-1); } wbmp->width = getmbi (getin, in); if (wbmp->width == -1) { gdFree (wbmp); return (-1); } wbmp->height = getmbi (getin, in); if (wbmp->height == -1) { gdFree (wbmp); return (-1); } #ifdef __DEBUG printf ("W: %d, H: %d\n", wbmp->width, wbmp->height); #endif if ((wbmp->bitmap = (int *) gdMalloc (sizeof (int) * wbmp->width * wbmp->height)) == NULL) { gdFree (wbmp); return (-1); } #ifdef __DEBUG printf ("DATA CONSTRUCTED\n"); #endif pos = 0; for (row = 0; row < wbmp->height; row++) { for (col = 0; col < wbmp->width;) { byte = getin (in); for (pel = 7; pel >= 0; pel--) { if (col++ < wbmp->width) { if (byte & 1 << pel) { wbmp->bitmap[pos] = WBMP_WHITE; } else { wbmp->bitmap[pos] = WBMP_BLACK; } pos++; } } } } *return_wbmp = wbmp; return (0); } /* writewbmp ** --------- ** Write a wbmp to a file descriptor ** ** Why not just giving a filedescriptor to this function? ** Well, the incentive to write this function was the complete ** integration in gd library from www.boutell.com. They use ** their own io functions, so the passing of a function seemed to be ** a logic(?) decision ... ** */ int writewbmp (Wbmp * wbmp, void (*putout) (int c, void *out), void *out) { int row, col; int bitpos, octet; /* Generate the header */ putout (0, out); /* WBMP Type 0: B/W, Uncompressed bitmap */ putout (0, out); /* FixHeaderField */ /* Size of the image */ putmbi (wbmp->width, putout, out); /* width */ putmbi (wbmp->height, putout, out); /* height */ /* Image data */ for (row = 0; row < wbmp->height; row++) { bitpos = 8; octet = 0; for (col = 0; col < wbmp->width; col++) { octet |= ((wbmp->bitmap[row * wbmp->width + col] == 1) ? WBMP_WHITE : WBMP_BLACK) << --bitpos; if (bitpos == 0) { bitpos = 8; putout (octet, out); octet = 0; } } if (bitpos != 8) putout (octet, out); } return (0); } /* freewbmp ** -------- ** gdFrees up memory occupied by a WBMP structure ** */ void freewbmp (Wbmp * wbmp) { gdFree (wbmp->bitmap); gdFree (wbmp); } /* printwbmp ** --------- ** print a WBMP to stdout for visualisation ** */ void printwbmp (Wbmp * wbmp) { int row, col; for (row = 0; row < wbmp->height; row++) { for (col = 0; col < wbmp->width; col++) { if (wbmp->bitmap[wbmp->width * row + col] == WBMP_BLACK) { putchar ('#'); } else { putchar (' '); } } putchar ('\n'); } } #ifdef __TEST /* putout to file descriptor ** ------------------------- */ int putout (int c, void *out) { return (putc (c, (FILE *) out)); } /* getin from file descriptor ** -------------------------- */ int getin (void *in) { return (getc ((FILE *) in)); } /* Main function ** ------------- ** */ int main (int argc, char *argv[]) { FILE *wbmp_file; Wbmp *wbmp; wbmp_file = fopen (argv[1], "rb"); if (wbmp_file) { readwbmp (&getin, wbmp_file, &wbmp); #ifdef __VIEW #ifdef __DEBUG printf ("\nVIEWING IMAGE\n"); #endif printwbmp (wbmp); #endif #ifdef __WRITE #ifdef __DEBUG printf ("\nDUMPING WBMP to STDOUT\n"); #endif writewbmp (wbmp, &putout, stdout); #endif freewbmp (wbmp); fclose (wbmp_file); } } #endif libwmf-0.2.13/src/extra/gd/wbmp.h000066400000000000000000000024111441723000300164670ustar00rootroot00000000000000/* WBMP ** ---- ** WBMP Level 0: B/W, Uncompressed ** This implements the WBMP format as specified in WAPSpec 1.1 and 1.2. ** It does not support ExtHeaders as defined in the spec. The spec states ** that a WAP client does not need to implement ExtHeaders. ** ** (c) 2000 Johan Van den Brande ** ** Header file */ #ifndef __WBMP_H #define __WBMP_H 1 #pragma GCC visibility push(hidden) /* WBMP struct ** ----------- ** A Wireless bitmap structure ** */ typedef struct Wbmp_ { int type; /* type of the wbmp */ int width; /* width of the image */ int height; /* height of the image */ int *bitmap; /* pointer to data: 0 = WHITE , 1 = BLACK */ } Wbmp; #define WBMP_WHITE 1 #define WBMP_BLACK 0 /* Proto's ** ------- ** */ void putmbi( int i, void (*putout)(int c, void *out), void *out); int getmbi ( int (*getin)(void *in), void *in ); int skipheader( int (*getin)(void *in), void *in ); Wbmp *createwbmp( int width, int height, int color ); int readwbmp( int (*getin)(void *in), void *in, Wbmp **wbmp ); int writewbmp( Wbmp *wbmp, void (*putout)( int c, void *out), void *out); void freewbmp( Wbmp *wbmp ); void printwbmp( Wbmp *wbmp ); #pragma GCC visibility pop #endif libwmf-0.2.13/src/extra/gd/webpng.c000066400000000000000000000130161441723000300170020ustar00rootroot00000000000000/* Bring in the gd library functions */ #include "gd.h" /* Bring in standard I/O and string manipulation functions */ #include #include /* for atoi() */ #include #ifdef _WIN32 #include int getpid () { return _getpid (); } #else #include /* for getpid(), unlink() */ #endif int main (int argc, char **argv) { FILE *in; FILE *out; char outFn[20]; int useStdinStdout = 0; /* Declare our image pointer */ gdImagePtr im = 0; int i; /* We'll clear 'no' once we know the user has made a reasonable request. */ int no = 1; /* We'll set 'write' once we know the user's request requires that the image be written back to disk. */ int write = 0; /* C programs always get at least one argument; we want at least one more (the image), more in practice. */ if (argc < 2 || !strcmp (argv[1], "--help")) { no = 1; goto usage; } /* The last argument should be the image. Open the file. */ if (strcmp ("-", argv[argc - 1]) == 0) { /* - is synonymous with STDIN */ useStdinStdout = 1; in = stdin; } else { in = fopen (argv[argc - 1], "rb"); } if (!in) { fprintf (stderr, "Error: can't open file %s.\n", argv[argc - 1]); exit (1); } /* Now load the image. */ im = gdImageCreateFromPng (in); fclose (in); /* If the load failed, it must not be a PNG file. */ if (!im) { fprintf (stderr, "Error: %s is not a valid PNG file.\n", argv[argc - 1]); exit (1); } /* Consider each argument in turn. */ for (i = 1; (i < (argc - 1)); i++) { /* -i turns on and off interlacing. */ if (!strcmp (argv[i], "--help")) { /* Every program should use this for help! :) */ no = 1; goto usage; } else if (!strcmp (argv[i], "-i")) { if (i == (argc - 2)) { fprintf (stderr, "Error: -i specified without y or n.\n"); no = 1; goto usage; } if (!strcmp (argv[i + 1], "y")) { /* Set interlace. */ gdImageInterlace (im, 1); } else if (!strcmp (argv[i + 1], "n")) { /* Clear interlace. */ gdImageInterlace (im, 0); } else { fprintf (stderr, "Error: -i specified without y or n.\n"); no = 1; goto usage; } i++; no = 0; write = 1; } else if (!strcmp (argv[i], "-t")) { /* Set transparent index (or none). */ int index; if (i == (argc - 2)) { fprintf (stderr, "Error: -t specified without a color table index.\n"); no = 1; goto usage; } if (!strcmp (argv[i + 1], "none")) { /* -1 means not transparent. */ gdImageColorTransparent (im, -1); } else { /* OK, get an integer and set the index. */ index = atoi (argv[i + 1]); gdImageColorTransparent (im, index); } i++; write = 1; no = 0; } else if (!strcmp (argv[i], "-l")) { /* List the colors in the color table. */ int j; if (!im->trueColor) { /* Tabs used below. */ printf ("Index Red Green Blue Alpha\n"); for (j = 0; (j < gdImageColorsTotal (im)); j++) { /* Use access macros to learn colors. */ printf ("%d %d %d %d %d\n", j, gdImageRed (im, j), gdImageGreen (im, j), gdImageBlue (im, j), gdImageAlpha (im, j)); } } else { printf ("Truecolor image, no palette entries to list.\n"); } no = 0; } else if (!strcmp (argv[i], "-d")) { /* Output dimensions, etc. */ int t; printf ("Width: %d Height: %d Colors: %d\n", gdImageSX (im), gdImageSY (im), gdImageColorsTotal (im)); t = gdImageGetTransparent (im); if (t != (-1)) { printf ("First 100% transparent index: %d\n", t); } else { /* -1 means the image is not transparent. */ printf ("First 100% transparent index: none\n"); } if (gdImageGetInterlaced (im)) { printf ("Interlaced: yes\n"); } else { printf ("Interlaced: no\n"); } no = 0; } else { fprintf (stderr, "Unknown argument: %s\n", argv[i]); break; } } usage: if (no) { /* If the command failed, output an explanation. */ fprintf (stderr, "Usage: webpng [-i y|n ] [-l] [-t index|none ] [-d] pngname.png\n" " -i [y|n] Turns on/off interlace\n" " -l Prints the table of color indexes\n" " -t [index] Set the transparent color to the specified index (0-255 or \"none\")\n" " -d Reports the dimensions and other characteristics of the image.\n" "\n" "If you specify '-' as the input file, stdin/stdout will be used input/output.\n" ); } if (write) { if (useStdinStdout) { out = stdout; } else { /* Open a temporary file. */ /* "temp.tmp" is not good temporary filename. */ sprintf (outFn, "webpng.tmp%d", getpid ()); out = fopen (outFn, "wb"); if (!out) { fprintf (stderr, "Unable to write to %s -- exiting\n", outFn); exit (1); } } /* Write the new PNG. */ gdImagePng (im, out); if (!useStdinStdout) { fclose (out); /* Erase the old PNG. */ unlink (argv[argc - 1]); /* Rename the new to the old. */ if (rename (outFn, argv[argc - 1]) != 0) { perror ("rename"); exit (1); } } } /* Delete the image from memory. */ if (im) { gdImageDestroy (im); } /* All's well that ends well. */ return 0; } libwmf-0.2.13/src/extra/trio/000077500000000000000000000000001441723000300157365ustar00rootroot00000000000000libwmf-0.2.13/src/extra/trio/Makefile.am000066400000000000000000000004711441723000300177740ustar00rootroot00000000000000CFLAGS = @CFLAGS@ @WMF_CFLAGS@ LDFLAGS = @LDFLAGS@ DEFS = @DEFS@ @WMF_DEFS@ INCLUDES = -I$(top_builddir) -I$(srcdir) if LIBWMF_OPT_TRIO LIBTRIO = libtrio.la else LIBTRIO = endif noinst_LTLIBRARIES = $(LIBTRIO) libtrio_la_SOURCES = trio.c strio.c libtrio_la_LDFLAGS = EXTRA_DIST = trio.h triop.h strio.h libwmf-0.2.13/src/extra/trio/Makefile.in000066400000000000000000000455311441723000300200130ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2018 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@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/extra/trio ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/wmfconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libtrio_la_LIBADD = am_libtrio_la_OBJECTS = trio.lo strio.lo libtrio_la_OBJECTS = $(am_libtrio_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libtrio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libtrio_la_LDFLAGS) $(LDFLAGS) -o $@ @LIBWMF_OPT_TRIO_TRUE@am_libtrio_la_rpath = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/strio.Plo ./$(DEPDIR)/trio.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libtrio_la_SOURCES) DIST_SOURCES = $(libtrio_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @WMF_CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ @WMF_DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FREETYPE_CONFIG = @FREETYPE_CONFIG@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_DIR = @GDK_PIXBUF_DIR@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GD_DEFS = @GD_DEFS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBWMF_BUILDSTYLE = @LIBWMF_BUILDSTYLE@ LIBWMF_PACKAGE = @LIBWMF_PACKAGE@ LIBWMF_RELEASE = @LIBWMF_RELEASE@ LIBWMF_VERSION = @LIBWMF_VERSION@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_LITE_AGE = @LT_LITE_AGE@ LT_LITE_CURRENT = @LT_LITE_CURRENT@ LT_LITE_REVISION = @LT_LITE_REVISION@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_LIBM = @SYS_LIBM@ VERSION = @VERSION@ WMF_CFLAGS = @WMF_CFLAGS@ WMF_CONFIG_CFLAGS = @WMF_CONFIG_CFLAGS@ WMF_DEFS = @WMF_DEFS@ WMF_DOCDIR = @WMF_DOCDIR@ WMF_FONTDIR = @WMF_FONTDIR@ WMF_GS_FONTDIR = @WMF_GS_FONTDIR@ WMF_GS_FONTMAP = @WMF_GS_FONTMAP@ WMF_LIBFLAGS = @WMF_LIBFLAGS@ WMF_SYS_FONTMAP = @WMF_SYS_FONTMAP@ WMF_XTRA_FONTMAP = @WMF_XTRA_FONTMAP@ XMKMF = @XMKMF@ XML2_CONFIG = @XML2_CONFIG@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = -I$(top_builddir) -I$(srcdir) @LIBWMF_OPT_TRIO_FALSE@LIBTRIO = @LIBWMF_OPT_TRIO_TRUE@LIBTRIO = libtrio.la noinst_LTLIBRARIES = $(LIBTRIO) libtrio_la_SOURCES = trio.c strio.c libtrio_la_LDFLAGS = EXTRA_DIST = trio.h triop.h strio.h all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/extra/trio/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/extra/trio/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libtrio.la: $(libtrio_la_OBJECTS) $(libtrio_la_DEPENDENCIES) $(EXTRA_libtrio_la_DEPENDENCIES) $(AM_V_CCLD)$(libtrio_la_LINK) $(am_libtrio_la_rpath) $(libtrio_la_OBJECTS) $(libtrio_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strio.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trio.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/strio.Plo -rm -f ./$(DEPDIR)/trio.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/strio.Plo -rm -f ./$(DEPDIR)/trio.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-generic clean-libtool clean-noinstLTLIBRARIES \ cscopelist-am ctags ctags-am distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libwmf-0.2.13/src/extra/trio/strio.c000066400000000000000000000267461441723000300172610ustar00rootroot00000000000000/************************************************************************* * * $Id: strio.c,v 1.1 2001/06/07 08:23:02 fjfranklin Exp $ * * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. * ************************************************************************/ /* * TODO * - StrToLongDouble */ #if defined(unix) || defined(__xlC__) # define PLATFORM_UNIX #elif defined(WIN32) || defined(_WIN32) # define PLATFORM_WIN32 #elif defined(AMIGA) && defined(__GNUC__) # define PLATFORM_UNIX #endif #if defined(__STDC__) && (__STDC_VERSION__ >= 199901L) # define TRIO_C99 #endif #include "strio.h" #include #include #include #include #include #ifndef DEBUG # define NDEBUG #endif #include #ifndef NULL # define NULL 0 #endif #define NIL ((char)0) #ifndef FALSE # define FALSE (1 == 0) # define TRUE (! FALSE) #endif #define VALID(x) (NULL != (x)) #define INVALID(x) (NULL == (x)) #if defined(PLATFORM_UNIX) # define USE_STRCASECMP # define USE_STRNCASECMP # define USE_STRERROR #elif defined(PLATFORM_WIN32) # define USE_STRCMPI #endif /************************************************************************* * StrAppendMax */ char *StrAppendMax(char *target, size_t max, const char *source) { assert(VALID(target)); assert(VALID(source)); assert(max > 0); max -= StrLength(target) + 1; return (max > 0) ? strncat(target, source, max) : target; } /************************************************************************* * StrCopyMax */ char *StrCopyMax(char *target, size_t max, const char *source) { assert(VALID(target)); assert(VALID(source)); assert(max > 0); /* Includes != 0 */ target = strncpy(target, source, max - 1); target[max - 1] = (char)0; return target; } /************************************************************************* * StrDuplicate */ char *StrDuplicate(const char *source) { char *target; assert(VALID(source)); target = (char *)malloc(StrLength(source) + 1); if (target) { StrCopy(target, source); } return target; } /************************************************************************* * StrDuplicateMax */ char *StrDuplicateMax(const char *source, size_t max) { char *target; size_t len; assert(VALID(source)); assert(max > 0); /* Make room for string plus a terminating zero */ len = StrLength(source) + 1; if (len > max) { len = max; } target = (char *)malloc(len); if (target) { StrCopyMax(target, len, source); } return target; } /************************************************************************* * StrEqual */ int StrEqual(const char *first, const char *second) { assert(VALID(first)); assert(VALID(second)); if (VALID(first) && VALID(second)) { #if defined(USE_STRCASECMP) return (0 == strcasecmp(first, second)); #elif defined(USE_STRCMPI) return (0 == strcmpi(first, second)); #else while ((*first != NIL) && (*second != NIL)) { if (toupper(*first) != toupper(*second)) { break; } first++; second++; } return ((*first == NIL) && (*second == NIL)); #endif } return FALSE; } /************************************************************************* * StrEqualCase */ int StrEqualCase(const char *first, const char *second) { assert(VALID(first)); assert(VALID(second)); if (VALID(first) && VALID(second)) { return (0 == strcmp(first, second)); } return FALSE; } /************************************************************************* * StrEqualCaseMax */ int StrEqualCaseMax(const char *first, size_t max, const char *second) { assert(VALID(first)); assert(VALID(second)); if (VALID(first) && VALID(second)) { return (0 == strncmp(first, second, max)); } return FALSE; } /************************************************************************* * StrEqualMax */ int StrEqualMax(const char *first, size_t max, const char *second) { assert(VALID(first)); assert(VALID(second)); if (VALID(first) && VALID(second)) { #if defined(USE_STRNCASECMP) return (0 == strncasecmp(first, second, max)); #else /* Not adequately tested yet */ size_t cnt = 0; while ((*first != NIL) && (*second != NIL) && (cnt <= max)) { if (toupper(*first) != toupper(*second)) { break; } first++; second++; cnt++; } return ((cnt == max) || ((*first == NIL) && (*second == NIL))); #endif } return FALSE; } /************************************************************************* * StrError */ const char *StrError(int errorNumber) { #if defined(USE_STRERROR) return strerror(errorNumber); #else return "unknown"; #endif } /************************************************************************* * StrFormatDate */ size_t StrFormatDateMax(char *target, size_t max, const char *format, const struct tm *datetime) { assert(VALID(target)); assert(VALID(format)); assert(VALID(datetime)); assert(max > 0); return strftime(target, max, format, datetime); } /************************************************************************* * StrHash */ unsigned long StrHash(const char *string, int type) { unsigned long value = 0L; char ch; assert(VALID(string)); switch (type) { case STRIO_HASH_PLAIN: while ( (ch = *string++) != NIL ) { value *= 31; value += (unsigned long)ch; } break; default: assert(FALSE); break; } return value; } /************************************************************************* * StrMatch */ int StrMatch(char *string, char *pattern) { assert(VALID(string)); assert(VALID(pattern)); for (; ('*' != *pattern); ++pattern, ++string) { if (NIL == *string) { return (NIL == *pattern); } if ((toupper(*string) != toupper(*pattern)) && ('?' != *pattern)) { return FALSE; } } /* two-line patch to prevent *too* much recursiveness: */ while ('*' == pattern[1]) pattern++; do { if ( StrMatch(string, &pattern[1]) ) { return TRUE; } } while (*string++); return FALSE; } /************************************************************************* * StrMatchCase */ int StrMatchCase(char *string, char *pattern) { assert(VALID(string)); assert(VALID(pattern)); for (; ('*' != *pattern); ++pattern, ++string) { if (NIL == *string) { return (NIL == *pattern); } if ((*string != *pattern) && ('?' != *pattern)) { return FALSE; } } /* two-line patch to prevent *too* much recursiveness: */ while ('*' == pattern[1]) pattern++; do { if ( StrMatchCase(string, &pattern[1]) ) { return TRUE; } } while (*string++); return FALSE; } /************************************************************************* * StrSpanFunction * * Untested */ size_t StrSpanFunction(char *source, int (*Function)(int)) { size_t count = 0; assert(VALID(source)); assert(VALID(Function)); while (*source != NIL) { if (Function(*source)) break; /* while */ source++; count++; } return count; } /************************************************************************* * StrSubstringMax */ char *StrSubstringMax(const char *string, size_t max, const char *find) { size_t count; size_t size; char *result = NULL; assert(VALID(string)); assert(VALID(find)); size = StrLength(find); if (size <= max) { for (count = 0; count <= max - size; count++) { if (StrEqualMax(find, size, &string[count])) { result = (char *)&string[count]; break; } } } return result; } /************************************************************************* * StrToDouble * * double ::= [ ] * ( | * | * ) * [ [ ] ] * number ::= 1*( ) * digit ::= ( '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' ) * exponential ::= ( 'e' | 'E' ) * sign ::= ( '-' | '+' ) * decimal_point ::= '.' */ double StrToDouble(const char *source, char **endp) { #if defined(TRIO_C99) return strtod(source, endp); #else /* Preliminary code */ int isNegative = FALSE; int isExponentNegative = FALSE; unsigned long integer = 0; unsigned long fraction = 0; unsigned long fracdiv = 1; unsigned long exponent = 0; double value = 0.0; /* First try hex-floats */ if ((source[0] == '0') && ((source[1] == 'x') || (source[1] == 'X'))) { source += 2; while (isxdigit((int)*source)) { integer *= 16; integer += (isdigit((int)*source) ? (*source - '0') : (isupper((int)*source) ? (*source - 'A') : (*source - 'a'))); source++; } if (*source == '.') { source++; while (isxdigit((int)*source)) { fraction *= 16; fraction += (isdigit((int)*source) ? (*source - '0') : (isupper((int)*source) ? (*source - 'A') : (*source - 'a'))); fracdiv *= 16; source++; } if ((*source == 'p') || (*source == 'P')) { source++; if ((*source == '+') || (*source == '-')) { isExponentNegative = (*source == '-'); source++; } while (isdigit((int)*source)) { exponent *= 10; exponent += (*source - '0'); source++; } } } } else /* Then try normal decimal floats */ { isNegative = (*source == '-'); /* Skip sign */ if ((*source == '+') || (*source == '-')) source++; /* Integer part */ while (isdigit((int)*source)) { integer *= 10; integer += (*source - '0'); source++; } if (*source == '.') { source++; /* skip decimal point */ while (isdigit((int)*source)) { fraction *= 10; fraction += (*source - '0'); fracdiv *= 10; source++; } } if ((*source == 'e') || (*source == 'E')) { source++; /* Skip exponential indicator */ isExponentNegative = (*source == '-'); if ((*source == '+') || (*source == '-')) source++; while (isdigit((int)*source)) { exponent *= 10; exponent += (*source - '0'); source++; } } } value = (double)integer; if (fraction != 0) { value += (double)fraction / (double)fracdiv; } if (exponent != 0) { if (isExponentNegative) value /= pow((double)10, (double)exponent); else value *= pow((double)10, (double)exponent); } if (isNegative) value = -value; if (endp) *endp = source; return value; #endif } /************************************************************************* * StrToFloat */ float StrToFloat(const char *source, char **endp) { #if defined(TRIO_C99) return strtof(source, endp); #else return (float)StrToDouble(source, endp); #endif } /************************************************************************* * StrToUpper */ int StrToUpper(char *target) { int i = 0; assert(VALID(target)); while (NIL != *target) { *target = toupper(*target); target++; i++; } return i; } libwmf-0.2.13/src/extra/trio/strio.h000066400000000000000000000144261441723000300172560ustar00rootroot00000000000000/************************************************************************* * * $Id: strio.h,v 1.1 2001/06/07 08:23:02 fjfranklin Exp $ * * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. * ************************************************************************/ #ifndef TRIO_STRIO_H #define TRIO_STRIO_H #include #include #include #ifndef DEBUG # define NDEBUG #endif #include /* * StrAppend(target, source) * StrAppendMax(target, maxsize, source) * * Append 'source' to 'target' * * target = StrAlloc(size) * * Allocate a new string * * StrContains(target, substring) * * Find out if the string 'substring' is * contained in the string 'target' * * StrCopy(target, source) * StrCopyMax(target, maxsize, source) * * Copy 'source' to 'target' * * target = StrDuplicate(source) * target = StrDuplicateMax(source, maxsize) * * Allocate and copy 'source' to 'target' * * StrEqual(first, second) * StrEqualMax(first, maxsize, second) * * Compare if 'first' is equal to 'second'. * Case-independent. * * StrEqualCase(first, second) * StrEqualCaseMax(first, maxsize, second) * * Compare if 'first' is equal to 'second' * Case-dependent. Please note that the use of the * word 'case' has the opposite meaning as that of * strcasecmp(). * * StrFormat(target, format, ...) * StrFormatMax(target, maxsize, format, ...) * * Build 'target' according to 'format' and succesive * arguments. This is equal to the sprintf() and * snprintf() functions. * * StrFormatDate(target, format, ...) * * StrFree(target) * * De-allocates a string * * StrHash(string, type) * * Calculates the hash value of 'string' based on the * 'type'. * * StrIndex(target, character) * StrIndexLast(target, character) * * Find the first/last occurrence of 'character' in * 'target' * * StrLength(target) * * Return the length of 'target' * * StrMatch(string, pattern) * StrMatchCase(string, pattern) * * Find 'pattern' within 'string'. 'pattern' may contain * wildcards such as * (asterics) and ? (question mark) * which matches zero or more characters and exactly * on character respectively * * StrScan(source, format, ...) * * Equal to sscanf() * * StrSubstring(target, substring) * * Find the first occurrence of the string 'substring' * within the string 'target' * * StrTokenize(target, list) * * Split 'target' into the first token delimited by * one of the characters in 'list'. If 'target' is * NULL then next token will be returned. * * StrToUpper(target) * * Convert all lower case characters in 'target' into * upper case characters. */ enum { STRIO_HASH_NONE = 0, STRIO_HASH_PLAIN, STRIO_HASH_TWOSIGNED }; #if !defined(DEBUG) || defined(__DECC) #define StrAppend(x,y) strcat((x), (y)) #define StrAlloc(n) ((char *)calloc(1, (n))) #define StrContains(x,y) (0 != strstr((x), (y))) #define StrCopy(x,y) strcpy((x), (y)) #define StrFree(x) free((x)) #define StrIndex(x,y) strchr((x), (y)) #define StrIndexLast(x,y) strrchr((x), (y)) #define StrLength(x) strlen((x)) #define StrSubstring(x,y) strstr((x), (y)) #define StrTokenize(x,y) strtok((x), (y)) #define StrToLong(x,y,n) strtol((x), (y), (n)) #define StrToUnsignedLong(x,y,n) strtoul((x), (y), (n)) #else /* DEBUG */ /* * To be able to use these macros everywhere, including in * if() sentences, the assertions are put first in a comma * seperated list. * * Unfortunately the DECC compiler does not seem to like this * so it will use the un-asserted functions above for the * debugging case too. */ #define StrAppend(x,y) \ (assert((x) != NULL),\ assert((y) != NULL),\ strcat((x), (y))) #define StrAlloc(n) \ (assert((n) > 0),\ ((char *)calloc(1, (n)))) #define StrContains(x,y) \ (assert((x) != NULL),\ assert((y) != NULL),\ (0 != strstr((x), (y)))) #define StrCopy(x,y) \ (assert((x) != NULL),\ assert((y) != NULL),\ strcpy((x), (y))) #define StrIndex(x,c) \ (assert((x) != NULL),\ strchr((x), (c))) #define StrIndexLast(x,c) \ (assert((x) != NULL),\ strrchr((x), (c))) #define StrFree(x) \ (assert((x) != NULL),\ free((x))) #define StrLength(x) \ (assert((x) != NULL),\ strlen((x))) #define StrSubstring(x,y) \ (assert((x) != NULL),\ assert((y) != NULL),\ strstr((x), (y))) #define StrTokenize(x,y) \ (assert((y) != NULL),\ strtok((x), (y))) #define StrToLong(x,y,n) \ (assert((x) != NULL),\ assert((y) != NULL),\ assert((n) >= 2 && (n) <= 36),\ strtol((x), (y), (n))) #define StrToUnsignedLong(x,y,n) \ (assert((x) != NULL),\ assert((y) != NULL),\ assert((n) >= 2 && (n) <= 36),\ strtoul((x), (y), (n))) #endif /* DEBUG */ char *StrAppendMax(char *target, size_t max, const char *source); char *StrCopyMax(char *target, size_t max, const char *source); char *StrDuplicate(const char *source); char *StrDuplicateMax(const char *source, size_t max); int StrEqual(const char *first, const char *second); int StrEqualCase(const char *first, const char *second); int StrEqualCaseMax(const char *first, size_t max, const char *second); int StrEqualMax(const char *first, size_t max, const char *second); const char *StrError(int); size_t StrFormatDateMax(char *target, size_t max, const char *format, const struct tm *datetime); unsigned long StrHash(const char *string, int type); int StrMatch(char *string, char *pattern); int StrMatchCase(char *string, char *pattern); size_t StrSpanFunction(char *source, int (*Function)(int)); char *StrSubstringMax(const char *string, size_t max, const char *find); float StrToFloat(const char *source, char **target); double StrToDouble(const char *source, char **target); int StrToUpper(char *target); #endif /* TRIO_STRIO_H */ libwmf-0.2.13/src/extra/trio/trio.c000066400000000000000000003424461441723000300170740ustar00rootroot00000000000000/************************************************************************* * * $Id: trio.c,v 1.1 2001/06/07 08:23:02 fjfranklin Exp $ * * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. * ************************************************************************* * * A note to trio contributors: * * Avoid heap allocation at all costs to ensure that the trio functions * are async-safe. The exceptions are the printf/fprintf functions, which * uses fputc, and the asprintf functions and the modifier, which * by design are required to allocate form the heap. * ************************************************************************/ /* * TODO: * - Scan is probably too permissive about its modifiers. * - Add hex-float to TrioReadDouble. * - C escapes in %#[] ? * - C99 support has not been properly tested. * - Multibyte characters (done for format parsing, except scan groups) * - Complex numbers? (C99 _Complex) * - Boolean values? (C99 _Bool) * - C99 NaN(n-char-sequence) missing * - Should we support the GNU %a alloc modifier? GNU has an ugly hack * for %a, because C99 used %a for other purposes. If specified as * %as or %a[ it is interpreted as the alloc modifier, otherwise as * the C99 hex-float. This means that you cannot scan %as as a hex-float * immediately followed by an 's'. */ #if defined(unix) || defined(__xlC__) /* AIX xlC workaround */ # define PLATFORM_UNIX #elif defined(AMIGA) && defined(__GNUC__) # define PLATFORM_UNIX #endif /************************************************************************* * Include files */ #include #include "trio.h" #include "triop.h" #include "strio.h" #if !defined(DEBUG) && !defined(NDEBUG) # define NDEBUG #endif #include #include #include #include #include #include #include #if defined(TRIO_C99) # include #endif #if defined(PLATFORM_UNIX) # include # include # define USE_LOCALE #endif #if defined(_MSC_VER) #include #define read _read #define write _write #endif /* _MSC_VER */ /************************************************************************* * Generic definitions */ #ifndef NULL # define NULL 0 #endif #define NIL ((char)0) #ifdef __cplusplus # undef TRUE # undef FALSE # define TRUE true # define FALSE false # define BOOLEAN_T bool #else # ifndef FALSE # define FALSE (1 == 0) # define TRUE (! FALSE) # endif # define BOOLEAN_T int #endif /* mincore() can be used for debugging purposes */ #define VALID(x) (NULL != (x)) /* * Encode the error code and the position. This is decoded * with TRIO_ERROR_CODE and TRIO_ERROR_POSITION. */ #if defined(TRIO_ERRORS) # define TRIO_ERROR_RETURN(x,y) (- ((x) + ((y) << 8))) #else # define TRIO_ERROR_RETURN(x,y) (-1) #endif /************************************************************************* * Internal definitions */ #if defined(__STDC_ISO_10646__) || defined(MB_LEN_MAX) # define USE_MULTIBYTE #endif #if !defined(USE_LONGLONG) # if defined(__GNUC__) && !defined(__STRICT_ANSI__) # define USE_LONGLONG # elif defined(__SUNPRO_C) # define USE_LONGLONG # elif defined(_LONG_LONG) || defined(_LONGLONG) # define USE_LONGLONG # endif #endif /* The extra long numbers */ #if defined(USE_LONGLONG) # define LONGLONG long long # define ULONGLONG unsigned long long #else # define LONGLONG long # define ULONGLONG unsigned long #endif /* The longest possible integer */ #if defined(TRIO_C99) # define LONGEST uintmax_t # define SLONGEST intmax_t #else # define LONGEST ULONGLONG # define SLONGEST LONGLONG #endif /* The maximal number of digits are for base 2 */ #define MAX_CHARS_IN(x) (sizeof(x) * CHAR_BIT + 1) /* The width of a pointer. The number of bits in a hex digit is 4 */ #define POINTER_WIDTH ((sizeof("0x") - 1) + sizeof(void *) * CHAR_BIT / 4) /* Infinite and Not-A-Number for floating-point */ #define USE_NON_NUMBERS #ifndef NAN # define NAN (cos(HUGE_VAL)) #endif #define INFINITE_LOWER "inf" #define INFINITE_UPPER "INF" #define LONG_INFINITE_LOWER "infinite" #define LONG_INFINITE_UPPER "INFINITE" #define NAN_LOWER "nan" #define NAN_UPPER "NAN" /* Various constants */ enum { TYPE_PRINT = 1, TYPE_SCAN = 2, /* Flags. Use maximum 32 */ FLAGS_NEW = 0, FLAGS_STICKY = 1, FLAGS_SPACE = 2 * FLAGS_STICKY, FLAGS_SHOWSIGN = 2 * FLAGS_SPACE, FLAGS_LEFTADJUST = 2 * FLAGS_SHOWSIGN, FLAGS_ALTERNATIVE = 2 * FLAGS_LEFTADJUST, FLAGS_SHORT = 2 * FLAGS_ALTERNATIVE, FLAGS_SHORTSHORT = 2 * FLAGS_SHORT, FLAGS_LONG = 2 * FLAGS_SHORTSHORT, FLAGS_QUAD = 2 * FLAGS_LONG, FLAGS_LONGDOUBLE = 2 * FLAGS_QUAD, FLAGS_SIZE_T = 2 * FLAGS_LONGDOUBLE, FLAGS_PTRDIFF_T = 2 * FLAGS_SIZE_T, FLAGS_INTMAX_T = 2 * FLAGS_PTRDIFF_T, FLAGS_NILPADDING = 2 * FLAGS_INTMAX_T, FLAGS_UNSIGNED = 2 * FLAGS_NILPADDING, FLAGS_UPPER = 2 * FLAGS_UNSIGNED, FLAGS_WIDTH = 2 * FLAGS_UPPER, FLAGS_WIDTH_PARAMETER = 2 * FLAGS_WIDTH, FLAGS_PRECISION = 2 * FLAGS_WIDTH_PARAMETER, FLAGS_PRECISION_PARAMETER = 2 * FLAGS_PRECISION, FLAGS_BASE = 2 * FLAGS_PRECISION_PARAMETER, FLAGS_BASE_PARAMETER = 2 * FLAGS_BASE, FLAGS_FLOAT_E = 2 * FLAGS_BASE_PARAMETER, FLAGS_FLOAT_G = 2 * FLAGS_FLOAT_E, FLAGS_QUOTE = 2 * FLAGS_FLOAT_G, FLAGS_WIDECHAR = 2 * FLAGS_QUOTE, FLAGS_ALLOC = 2 * FLAGS_WIDECHAR, FLAGS_IGNORE = 2 * FLAGS_ALLOC, FLAGS_IGNORE_PARAMETER = 2 * FLAGS_IGNORE, FLAGS_SIZE_PARAMETER = 2 * FLAGS_IGNORE_PARAMETER, /* Reused flags */ FLAGS_EXCLUDE = FLAGS_SHORT, FLAGS_USER_DEFINED = FLAGS_IGNORE, /* Compounded flags */ FLAGS_ALL_VARSIZES = FLAGS_LONG | FLAGS_QUAD | FLAGS_INTMAX_T | FLAGS_PTRDIFF_T | FLAGS_SIZE_T, NO_POSITION = -1, NO_WIDTH = 0, NO_PRECISION = -1, NO_SIZE = -1, NO_BASE = -1, MIN_BASE = 2, MAX_BASE = 36, BASE_BINARY = 2, BASE_OCTAL = 8, BASE_DECIMAL = 10, BASE_HEX = 16, /* Maximal number of allowed parameters */ MAX_PARAMETERS = 64, /* Maximal number of characters in class */ MAX_CHARACTER_CLASS = UCHAR_MAX, /* Maximal string lengths for user-defined specifiers */ MAX_USER_NAME = 64, MAX_USER_DATA = 256, /* Maximal length of locale separator strings */ MAX_LOCALE_SEPARATOR_LENGTH = 64, /* Maximal number of integers in grouping */ MAX_LOCALE_GROUPS = 64 }; #define NO_GROUPING ((int)CHAR_MAX) /* Fundamental formatting parameter types */ #define FORMAT_UNKNOWN 0 #define FORMAT_INT 1 #define FORMAT_DOUBLE 2 #define FORMAT_CHAR 3 #define FORMAT_STRING 4 #define FORMAT_POINTER 5 #define FORMAT_COUNT 6 #define FORMAT_PARAMETER 7 #define FORMAT_GROUP 8 #if defined(TRIO_GNU) # define FORMAT_ERRNO 9 #endif #if defined(TRIO_EXTENSION) # define FORMAT_USER_DEFINED 10 #endif /* Character constants */ #define CHAR_IDENTIFIER '%' #define CHAR_BACKSLASH '\\' #define CHAR_QUOTE '\"' #define CHAR_ADJUST ' ' /* Character class expressions */ #define CLASS_ALNUM ":alnum:" #define CLASS_ALPHA ":alpha:" #define CLASS_CNTRL ":cntrl:" #define CLASS_DIGIT ":digit:" #define CLASS_GRAPH ":graph:" #define CLASS_LOWER ":lower:" #define CLASS_PRINT ":print:" #define CLASS_PUNCT ":punct:" #define CLASS_SPACE ":space:" #define CLASS_UPPER ":upper:" #define CLASS_XDIGIT ":xdigit:" /* * SPECIFIERS: * * * a Hex-float * A Hex-float * c Character * C Widechar character (wint_t) * d Decimal * e Float * E Float * F Float * F Float * g Float * G Float * i Integer * m Error message * n Count * o Octal * p Pointer * s String * S Widechar string (wchar_t) * u Unsigned * x Hex * X Hex * [] Group * <> User-defined * * Reserved: * * D Binary Coded Decimal %D(length,precision) (OS/390) */ #define SPECIFIER_CHAR 'c' #define SPECIFIER_STRING 's' #define SPECIFIER_DECIMAL 'd' #define SPECIFIER_INTEGER 'i' #define SPECIFIER_UNSIGNED 'u' #define SPECIFIER_OCTAL 'o' #define SPECIFIER_HEX 'x' #define SPECIFIER_HEX_UPPER 'X' #define SPECIFIER_FLOAT_E 'e' #define SPECIFIER_FLOAT_E_UPPER 'E' #define SPECIFIER_FLOAT_F 'f' #define SPECIFIER_FLOAT_F_UPPER 'F' #define SPECIFIER_FLOAT_G 'g' #define SPECIFIER_FLOAT_G_UPPER 'G' #define SPECIFIER_POINTER 'p' #define SPECIFIER_GROUP '[' #define SPECIFIER_UNGROUP ']' #define SPECIFIER_COUNT 'n' #if defined(TRIO_UNIX98) # define SPECIFIER_CHAR_UPPER 'C' # define SPECIFIER_STRING_UPPER 'S' #endif #if defined(TRIO_C99) # define SPECIFIER_HEXFLOAT 'a' # define SPECIFIER_HEXFLOAT_UPPER 'A' #endif #if defined(TRIO_GNU) # define SPECIFIER_ERRNO 'm' #endif #if defined(TRIO_EXTENSION) # define SPECIFIER_BINARY 'b' # define SPECIFIER_BINARY_UPPER 'B' # define SPECIFIER_USER_DEFINED_BEGIN '<' # define SPECIFIER_USER_DEFINED_END '>' # define SPECIFIER_USER_DEFINED_SEPARATOR ':' #endif /* * QUALIFIERS: * * * Numbers = d,i,o,u,x,X * Float = a,A,e,E,f,F,g,G * String = s * Char = c * * * 9$ Position * Use the 9th parameter. 9 can be any number between 1 and * the maximal argument * * 9 Width * Set width to 9. 9 can be any number, but must not be postfixed * by '$' * * h Short * Numbers: * (unsigned) short int * * hh Short short * Numbers: * (unsigned) char * * l Long * Numbers: * (unsigned) long int * String: * as the S specifier * Char: * as the C specifier * * ll Long Long * Numbers: * (unsigned) long long int * * L Long Double * Float * long double * * # Alternative * Float: * Decimal-point is always present * String: * non-printable characters are handled as \number * * Spacing * * + Sign * * - Alignment * * . Precision * * * Parameter * print: use parameter * scan: no parameter (ignore) * * q Quad * * Z size_t * * w Widechar * * ' Thousands/quote * Numbers: * Integer part grouped in thousands * Binary numbers: * Number grouped in nibbles (4 bits) * String: * Quoted string * * j intmax_t * t prtdiff_t * z size_t * * ! Sticky * @ Parameter (for both print and scan) */ #define QUALIFIER_POSITION '$' #define QUALIFIER_SHORT 'h' #define QUALIFIER_LONG 'l' #define QUALIFIER_LONG_UPPER 'L' #define QUALIFIER_ALTERNATIVE '#' #define QUALIFIER_SPACE ' ' #define QUALIFIER_PLUS '+' #define QUALIFIER_MINUS '-' #define QUALIFIER_DOT '.' #define QUALIFIER_STAR '*' #define QUALIFIER_CIRCUMFLEX '^' #if defined(TRIO_C99) # define QUALIFIER_SIZE_T 'z' # define QUALIFIER_PTRDIFF_T 't' # define QUALIFIER_INTMAX_T 'j' #endif #if defined(TRIO_BSD) || defined(TRIO_GNU) # define QUALIFIER_QUAD 'q' #endif #if defined(TRIO_GNU) # define QUALIFIER_SIZE_T_UPPER 'Z' #endif #if defined(TRIO_MISC) # define QUALIFIER_WIDECHAR 'w' #endif #if defined(TRIO_EXTENSION) # define QUALIFIER_QUOTE '\'' # define QUALIFIER_STICKY '!' # define QUALIFIER_VARSIZE '&' /* This should remain undocumented */ # define QUALIFIER_PARAM '@' /* Experimental */ # define QUALIFIER_COLON ':' /* For scanlists */ #endif /************************************************************************* * Internal structures */ /* Parameters */ typedef struct { int type; unsigned long flags; int width; int precision; int base; int varsize; int indexAfterSpecifier; union { char *string; void *pointer; union { SLONGEST as_signed; LONGEST as_unsigned; } number; double doubleNumber; double *doublePointer; long double longdoubleNumber; long double *longdoublePointer; int errorNumber; } data; /* For the user-defined specifier */ char user_name[MAX_USER_NAME]; char user_data[MAX_USER_DATA]; } parameter_T; /* General trio "class" */ typedef struct _trio_T { const void *location; void (*OutStream)(struct _trio_T *, int); void (*InStream)(struct _trio_T *, int *); /* * The number of characters that would have been written/read if * there had been sufficient space. */ int processed; /* * The number of characters that are actually written/read. * Processed and committed with only differ for the *nprintf * and *nscanf functions. */ int committed; int max; int current; } trio_T; /* References (for user-defined callbacks) */ typedef struct _reference_T { trio_T *data; parameter_T *parameter; } reference_T; /* Registered entries (for user-defined callbacks) */ typedef struct _userdef_T { struct _userdef_T *next; trio_callback_t callback; char *name; } userdef_T; /************************************************************************* * Internal variables */ #if defined(PLATFORM_UNIX) extern int errno; #endif static const char null[] = "(nil)"; #if defined(USE_LOCALE) static struct lconv *internalLocaleValues = NULL; #endif /* * UNIX98 says "in a locale where the radix character is not defined, * the radix character defaults to a period (.)" */ static char internalDecimalPoint[MAX_LOCALE_SEPARATOR_LENGTH] = "."; static char internalThousandSeparator[MAX_LOCALE_SEPARATOR_LENGTH] = ","; static char internalGrouping[MAX_LOCALE_GROUPS] = { (char)NO_GROUPING }; static const char internalDigitsLower[] = "0123456789abcdefghijklmnopqrstuvwxyz"; static const char internalDigitsUpper[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; static userdef_T *internalUserDef = NULL; static BOOLEAN_T internalDigitsUnconverted = TRUE; static int internalDigitArray[128]; /************************************************************************* * trio_strerror [public] */ const char *trio_strerror(int errorcode) { /* Textual versions of the error codes */ switch (TRIO_ERROR_CODE(errorcode)) { case TRIO_EOF: return "End of file"; case TRIO_EINVAL: return "Invalid argument"; case TRIO_ETOOMANY: return "Too many arguments"; case TRIO_EDBLREF: return "Double reference"; case TRIO_EGAP: return "Reference gap"; case TRIO_ENOMEM: return "Out of memory"; case TRIO_ERANGE: return "Invalid range"; default: return "Unknown"; } } /************************************************************************* * TrioIsQualifier [private] * * Description: * Remember to add all new qualifiers to this function. * QUALIFIER_POSITION must not be added. */ static BOOLEAN_T TrioIsQualifier(const char ch) { /* QUALIFIER_POSITION is not included */ switch (ch) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case QUALIFIER_PLUS: case QUALIFIER_MINUS: case QUALIFIER_SPACE: case QUALIFIER_DOT: case QUALIFIER_STAR: case QUALIFIER_ALTERNATIVE: case QUALIFIER_SHORT: case QUALIFIER_LONG: case QUALIFIER_LONG_UPPER: case QUALIFIER_CIRCUMFLEX: #if defined(QUALIFIER_SIZE_T) case QUALIFIER_SIZE_T: #endif #if defined(QUALIFIER_PTRDIFF_T) case QUALIFIER_PTRDIFF_T: #endif #if defined(QUALIFIER_INTMAX_T) case QUALIFIER_INTMAX_T: #endif #if defined(QUALIFIER_QUAD) case QUALIFIER_QUAD: #endif #if defined(QUALIFIER_SIZE_T_UPPER) case QUALIFIER_SIZE_T_UPPER: #endif #if defined(QUALIFIER_WIDECHAR) case QUALIFIER_WIDECHAR: #endif #if defined(QUALIFIER_QUOTE) case QUALIFIER_QUOTE: #endif #if defined(QUALIFIER_STICKY) case QUALIFIER_STICKY: #endif #if defined(QUALIFIER_VARSIZE) case QUALIFIER_VARSIZE: #endif #if defined(QUALIFIER_PARAM) case QUALIFIER_PARAM: #endif return TRUE; default: return FALSE; } } /************************************************************************* * TrioIsNan [private] */ static int TrioIsNan(double number) { #ifdef isnan /* C99 defines isnan() as a macro */ return isnan(number); #else double integral, fraction; return (/* NaN is the only number which does not compare to itself */ (number != number) || /* Fallback solution if NaN compares to NaN */ ((number != 0.0) && (fraction = modf(number, &integral), integral == fraction))); #endif } /************************************************************************* * TrioIsInfinite [private] */ static int TrioIsInfinite(double number) { #ifdef isinf /* C99 defines isinf() as a macro */ return isinf(number); #else return ((number == HUGE_VAL) ? 1 : ((number == -HUGE_VAL) ? -1 : 0)); #endif } /************************************************************************* * TrioSetLocale [private] */ #if defined(USE_LOCALE) static void TrioSetLocale(void) { internalLocaleValues = (struct lconv *)localeconv(); if (StrLength(internalLocaleValues->decimal_point) > 0) { StrCopyMax(internalDecimalPoint, sizeof(internalDecimalPoint), internalLocaleValues->decimal_point); } if (StrLength(internalLocaleValues->thousands_sep) > 0) { StrCopyMax(internalThousandSeparator, sizeof(internalThousandSeparator), internalLocaleValues->thousands_sep); } if (StrLength(internalLocaleValues->grouping) > 0) { StrCopyMax(internalGrouping, sizeof(internalGrouping), internalLocaleValues->grouping); } } #endif /* defined(USE_LOCALE) */ /************************************************************************* * TrioGetPosition [private] * * Get the %n$ position. */ static int TrioGetPosition(const char *format, int *indexPointer) { char *tmpformat; int number = 0; int index = *indexPointer; number = (int)StrToLong(&format[index], &tmpformat, BASE_DECIMAL); index = (int)(tmpformat - format); if ((number != 0) && (QUALIFIER_POSITION == format[index++])) { *indexPointer = index; /* * number is decreased by 1, because n$ starts from 1, whereas * the array it is indexing starts from 0. */ return number - 1; } return NO_POSITION; } /************************************************************************* * TrioFindNamespace [private] * * Find registered user-defined specifier. * The prev argument is used for optimisation only. */ static userdef_T * TrioFindNamespace(const char *name, userdef_T **prev) { userdef_T *def; for (def = internalUserDef; def; def = def->next) { /* Case-sensitive string comparison */ if (StrEqualCase(def->name, name)) return def; if (prev) *prev = def; } return def; } /************************************************************************* * TrioPreprocess [private] * * Description: * Parse the format string */ static int TrioPreprocess(int type, const char *format, parameter_T *parameters, va_list arglist, void **argarray) { #if defined(TRIO_ERRORS) /* Count the number of times a parameter is referenced */ unsigned short usedEntries[MAX_PARAMETERS]; #endif /* Parameter counters */ int parameterPosition; int currentParam; int maxParam = -1; /* Utility variables */ unsigned long flags; int width; int precision; int varsize; int base; int index; /* Index into formatting string */ int dots; /* Count number of dots in modifier part */ BOOLEAN_T positional; /* Does the specifier have a positional? */ BOOLEAN_T got_sticky = FALSE; /* Are there any sticky modifiers at all? */ /* * indices specifies the order in which the parameters must be * read from the va_args (this is necessary to handle positionals) */ int indices[MAX_PARAMETERS]; int pos = 0; /* Various variables */ char ch; int charlen; int i = -1; int num; char *tmpformat; #if defined(TRIO_ERRORS) /* * The 'parameters' array is not initialized, but we need to * know which entries we have used. */ memset(usedEntries, 0, sizeof(usedEntries)); #endif index = 0; parameterPosition = 0; #if defined(USE_MULTIBYTE) mblen(NULL, 0); #endif while (format[index]) { #if defined(USE_MULTIBYTE) if (! isascii(format[index])) { /* * Multibyte characters cannot be legal specifiers or * modifiers, so we skip over them. */ charlen = mblen(&format[index], MB_LEN_MAX); index += (charlen > 0) ? charlen : 1; continue; /* while */ } #endif /* defined(USE_MULTIBYTE) */ if (CHAR_IDENTIFIER == format[index++]) { if (CHAR_IDENTIFIER == format[index]) { index++; continue; /* while */ } flags = FLAGS_NEW; dots = 0; currentParam = TrioGetPosition(format, &index); positional = (NO_POSITION != currentParam); if (!positional) { /* We have no positional, get the next counter */ currentParam = parameterPosition; } if(currentParam >= MAX_PARAMETERS) { /* Bail out completely to make the error more obvious */ return TRIO_ERROR_RETURN(TRIO_ETOOMANY, index); } if (currentParam > maxParam) maxParam = currentParam; /* Default values */ width = NO_WIDTH; precision = NO_PRECISION; base = NO_BASE; varsize = NO_SIZE; while (TrioIsQualifier(format[index])) { ch = format[index++]; switch (ch) { case QUALIFIER_SPACE: flags |= FLAGS_SPACE; break; case QUALIFIER_PLUS: flags |= FLAGS_SHOWSIGN; break; case QUALIFIER_MINUS: flags |= FLAGS_LEFTADJUST; flags &= ~FLAGS_NILPADDING; break; case QUALIFIER_ALTERNATIVE: flags |= FLAGS_ALTERNATIVE; break; case QUALIFIER_DOT: if (dots == 0) /* Precision */ { dots++; /* Skip if no precision */ if (QUALIFIER_DOT == format[index]) break; /* After the first dot we have the precision */ flags |= FLAGS_PRECISION; if ((QUALIFIER_STAR == format[index]) || (QUALIFIER_PARAM == format[index])) { index++; flags |= FLAGS_PRECISION_PARAMETER; precision = TrioGetPosition(format, &index); if (precision == NO_POSITION) { parameterPosition++; if (positional) precision = parameterPosition; else { precision = currentParam; currentParam = precision + 1; } } else { if (! positional) currentParam = precision + 1; /* coverity[copy_paste_error : FALSE] - this is correct width, not precision */ if (width > maxParam) maxParam = precision; } if (currentParam > maxParam) maxParam = currentParam; } else { precision = StrToLong(&format[index], &tmpformat, BASE_DECIMAL); index = (int)(tmpformat - format); } } else if (dots == 1) /* Base */ { dots++; /* After the second dot we have the base */ flags |= FLAGS_BASE; if ((QUALIFIER_STAR == format[index]) || (QUALIFIER_PARAM == format[index])) { index++; flags |= FLAGS_BASE_PARAMETER; base = TrioGetPosition(format, &index); if (base == NO_POSITION) { parameterPosition++; if (positional) base = parameterPosition; else { base = currentParam; currentParam = base + 1; } } else { if (! positional) currentParam = base + 1; if (base > maxParam) maxParam = base; } if (currentParam > maxParam) maxParam = currentParam; } else { base = StrToLong(&format[index], &tmpformat, BASE_DECIMAL); if (base > MAX_BASE) return TRIO_ERROR_RETURN(TRIO_EINVAL, index); index = (int)(tmpformat - format); } } else { return TRIO_ERROR_RETURN(TRIO_EINVAL, index); } break; /* QUALIFIER_DOT */ case QUALIFIER_PARAM: type = TYPE_PRINT; /* FALLTHROUGH */ case QUALIFIER_STAR: /* This has different meanings for print and scan */ if (TYPE_PRINT == type) { /* Read with from parameter */ flags |= (FLAGS_WIDTH | FLAGS_WIDTH_PARAMETER); width = TrioGetPosition(format, &index); if (width == NO_POSITION) { parameterPosition++; if (positional) width = parameterPosition; else { width = currentParam; currentParam = width + 1; } } else { if (! positional) currentParam = width + 1; if (width > maxParam) maxParam = width; } if (currentParam > maxParam) maxParam = currentParam; } else { /* Scan, but do not store result */ flags |= FLAGS_IGNORE; } break; /* QUALIFIER_STAR */ case '0': if (! (flags & FLAGS_LEFTADJUST)) flags |= FLAGS_NILPADDING; /* FALLTHROUGH */ case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': flags |= FLAGS_WIDTH; /* &format[index - 1] is used to "rewind" the read * character from format */ width = StrToLong(&format[index - 1], &tmpformat, BASE_DECIMAL); index = (int)(tmpformat - format); break; case QUALIFIER_SHORT: if (flags & FLAGS_SHORTSHORT) return TRIO_ERROR_RETURN(TRIO_EINVAL, index); else if (flags & FLAGS_SHORT) flags |= FLAGS_SHORTSHORT; else flags |= FLAGS_SHORT; break; case QUALIFIER_LONG: if (flags & FLAGS_QUAD) return TRIO_ERROR_RETURN(TRIO_EINVAL, index); else if (flags & FLAGS_LONG) flags |= FLAGS_QUAD; else flags |= FLAGS_LONG; break; case QUALIFIER_LONG_UPPER: flags |= FLAGS_LONGDOUBLE; break; #if defined(QUALIFIER_SIZE_T) case QUALIFIER_SIZE_T: flags |= FLAGS_SIZE_T; /* Modify flags for later truncation of number */ if (sizeof(size_t) == sizeof(ULONGLONG)) flags |= FLAGS_QUAD; else if (sizeof(size_t) == sizeof(long)) flags |= FLAGS_LONG; break; #endif #if defined(QUALIFIER_PTRDIFF_T) case QUALIFIER_PTRDIFF_T: flags |= FLAGS_PTRDIFF_T; if (sizeof(ptrdiff_t) == sizeof(ULONGLONG)) flags |= FLAGS_QUAD; else if (sizeof(ptrdiff_t) == sizeof(long)) flags |= FLAGS_LONG; break; #endif #if defined(QUALIFIER_INTMAX_T) case QUALIFIER_INTMAX_T: flags |= FLAGS_INTMAX_T; if (sizeof(intmax_t) == sizeof(ULONGLONG)) flags |= FLAGS_QUAD; else if (sizeof(intmax_t) == sizeof(long)) flags |= FLAGS_LONG; break; #endif #if defined(QUALIFIER_QUAD) case QUALIFIER_QUAD: flags |= FLAGS_QUAD; break; #endif #if defined(QUALIFIER_WIDECHAR) case QUALIFIER_WIDECHAR: flags |= FLAGS_WIDECHAR; break; #endif #if defined(QUALIFIER_SIZE_T_UPPER) case QUALIFIER_SIZE_T_UPPER: break; #endif #if defined(QUALIFIER_QUOTE) case QUALIFIER_QUOTE: flags |= FLAGS_QUOTE; break; #endif #if defined(QUALIFIER_STICKY) case QUALIFIER_STICKY: flags |= FLAGS_STICKY; got_sticky = TRUE; break; #endif #if defined(QUALIFIER_VARSIZE) case QUALIFIER_VARSIZE: flags |= FLAGS_SIZE_PARAMETER; parameterPosition++; if (positional) varsize = parameterPosition; else { varsize = currentParam; currentParam = varsize + 1; } if (currentParam > maxParam) maxParam = currentParam; break; #endif default: /* Bail out completely to make the error more obvious */ return TRIO_ERROR_RETURN(TRIO_EINVAL, index); } } /* while qualifier */ /* * Parameters only need the type and value. The value is * read later. */ if (flags & FLAGS_WIDTH_PARAMETER) { #if defined(TRIO_ERRORS) usedEntries[width] += 1; #endif parameters[pos].type = FORMAT_PARAMETER; indices[width] = pos; width = pos++; } if (flags & FLAGS_PRECISION_PARAMETER) { if (precision < 0 || precision >= MAX_PARAMETERS) { /* Bail out completely to make the error more obvious */ return TRIO_ERROR_RETURN(TRIO_ETOOMANY, index); } #if defined(TRIO_ERRORS) usedEntries[precision] += 1; #endif parameters[pos].type = FORMAT_PARAMETER; indices[precision] = pos; precision = pos++; } if (flags & FLAGS_BASE_PARAMETER) { if (base < 0 || base >= MAX_PARAMETERS) { /* Bail out completely to make the error more obvious */ return TRIO_ERROR_RETURN(TRIO_ETOOMANY, index); } #if defined(TRIO_ERRORS) usedEntries[base] += 1; #endif parameters[pos].type = FORMAT_PARAMETER; indices[base] = pos; base = pos++; } if (flags & FLAGS_SIZE_PARAMETER) { if (varsize < 0 || varsize >= MAX_PARAMETERS) { /* Bail out completely to make the error more obvious */ return TRIO_ERROR_RETURN(TRIO_ETOOMANY, index); } #if defined(TRIO_ERRORS) usedEntries[varsize] += 1; #endif parameters[pos].type = FORMAT_PARAMETER; indices[varsize] = pos; varsize = pos++; } indices[currentParam] = pos; switch (format[index++]) { #if defined(SPECIFIER_CHAR_UPPER) case SPECIFIER_CHAR_UPPER: flags |= FLAGS_LONG; #endif /* FALLTHROUGH */ case SPECIFIER_CHAR: parameters[pos].type = FORMAT_CHAR; break; #if defined(SPECIFIER_STRING_UPPER) case SPECIFIER_STRING_UPPER: flags |= FLAGS_LONG; #endif /* FALLTHROUGH */ case SPECIFIER_STRING: parameters[pos].type = FORMAT_STRING; break; case SPECIFIER_GROUP: if (TYPE_SCAN == type) { parameters[pos].type = FORMAT_GROUP; while (format[index]) { if (format[index++] == SPECIFIER_UNGROUP) break; /* while */ } } break; case SPECIFIER_INTEGER: parameters[pos].type = FORMAT_INT; break; case SPECIFIER_UNSIGNED: flags |= FLAGS_UNSIGNED; parameters[pos].type = FORMAT_INT; break; case SPECIFIER_DECIMAL: /* Disable base modifier */ flags &= ~FLAGS_BASE_PARAMETER; base = BASE_DECIMAL; parameters[pos].type = FORMAT_INT; break; case SPECIFIER_OCTAL: flags &= ~FLAGS_BASE_PARAMETER; base = BASE_OCTAL; parameters[pos].type = FORMAT_INT; break; #if defined(SPECIFIER_BINARY) case SPECIFIER_BINARY_UPPER: flags |= FLAGS_UPPER; /* FALLTHROUGH */ case SPECIFIER_BINARY: flags |= FLAGS_NILPADDING; flags &= ~FLAGS_BASE_PARAMETER; base = BASE_BINARY; parameters[pos].type = FORMAT_INT; break; #endif case SPECIFIER_HEX_UPPER: flags |= FLAGS_UPPER; /* FALLTHROUGH */ case SPECIFIER_HEX: flags |= FLAGS_UNSIGNED; flags &= ~FLAGS_BASE_PARAMETER; base = BASE_HEX; parameters[pos].type = FORMAT_INT; break; case SPECIFIER_FLOAT_E_UPPER: flags |= FLAGS_UPPER; /* FALLTHROUGH */ case SPECIFIER_FLOAT_E: flags |= FLAGS_FLOAT_E; parameters[pos].type = FORMAT_DOUBLE; break; case SPECIFIER_FLOAT_G_UPPER: flags |= FLAGS_UPPER; /* FALLTHROUGH */ case SPECIFIER_FLOAT_G: flags |= FLAGS_FLOAT_G; parameters[pos].type = FORMAT_DOUBLE; break; case SPECIFIER_FLOAT_F_UPPER: flags |= FLAGS_UPPER; /* FALLTHROUGH */ case SPECIFIER_FLOAT_F: parameters[pos].type = FORMAT_DOUBLE; break; case SPECIFIER_POINTER: parameters[pos].type = FORMAT_POINTER; break; case SPECIFIER_COUNT: parameters[pos].type = FORMAT_COUNT; break; #if defined(SPECIFIER_HEXFLOAT) # if defined(SPECIFIER_HEXFLOAT_UPPER) case SPECIFIER_HEXFLOAT_UPPER: flags |= FLAGS_UPPER; # endif /* FALLTHROUGH */ case SPECIFIER_HEXFLOAT: base = BASE_HEX; parameters[pos].type = FORMAT_DOUBLE; break; #endif #if defined(FORMAT_ERRNO) case SPECIFIER_ERRNO: parameters[pos].type = FORMAT_ERRNO; break; #endif #if defined(SPECIFIER_USER_DEFINED_BEGIN) case SPECIFIER_USER_DEFINED_BEGIN: { unsigned int max; int without_namespace = TRUE; parameters[pos].type = FORMAT_USER_DEFINED; parameters[pos].user_name[0] = NIL; tmpformat = (char *)&format[index]; while ((ch = format[index])) { index++; if (ch == SPECIFIER_USER_DEFINED_END) { if (without_namespace) { /* We must get the handle first */ parameters[pos].type = FORMAT_PARAMETER; parameters[pos].indexAfterSpecifier = index; parameters[pos].flags = FLAGS_USER_DEFINED; /* Adjust parameters for insertion of new one */ pos++; # if defined(TRIO_ERRORS) if(currentParam >= MAX_PARAMETERS) { /* Bail out completely to make the error more obvious */ return TRIO_ERROR_RETURN(TRIO_ETOOMANY, index); } usedEntries[currentParam] += 1; # endif parameters[pos].type = FORMAT_USER_DEFINED; currentParam++; if(currentParam >= MAX_PARAMETERS) { /* Bail out completely to make the error more obvious */ return TRIO_ERROR_RETURN(TRIO_ETOOMANY, index); } indices[currentParam] = pos; if (currentParam > maxParam) maxParam = currentParam; } /* Copy the user data */ max = (unsigned int)(&format[index] - tmpformat); if (max > MAX_USER_DATA) max = MAX_USER_DATA; StrCopyMax(parameters[pos].user_data, max, tmpformat); break; /* while */ } if (ch == SPECIFIER_USER_DEFINED_SEPARATOR) { without_namespace = FALSE; /* Copy the namespace for later looking-up */ max = (int)(&format[index] - tmpformat); if (max > MAX_USER_NAME) max = MAX_USER_NAME; StrCopyMax(parameters[pos].user_name, max, tmpformat); tmpformat = (char *)&format[index]; } } if (ch != SPECIFIER_USER_DEFINED_END) return TRIO_ERROR_RETURN(TRIO_EINVAL, index); } break; #endif /* defined(SPECIFIER_USER_DEFINED_BEGIN) */ default: /* Bail out completely to make the error more obvious */ return TRIO_ERROR_RETURN(TRIO_EINVAL, index); } #if defined(TRIO_ERRORS) if(currentParam >= MAX_PARAMETERS) { /* Bail out completely to make the error more obvious */ return TRIO_ERROR_RETURN(TRIO_ETOOMANY, index); } /* Count the number of times this entry has been used */ usedEntries[currentParam] += 1; #endif /* Find last sticky parameters */ if (got_sticky && !(flags & FLAGS_STICKY)) { for (i = pos - 1; i >= 0; i--) { if (parameters[i].type == FORMAT_PARAMETER) continue; if ((parameters[i].flags & FLAGS_STICKY) && (parameters[i].type == parameters[pos].type)) { /* Do not overwrite current qualifiers */ flags |= (parameters[i].flags & (unsigned long)~FLAGS_STICKY); if (width == NO_WIDTH) width = parameters[i].width; if (precision == NO_PRECISION) precision = parameters[i].precision; if (base == NO_BASE) base = parameters[i].base; break; } } } parameters[pos].indexAfterSpecifier = index; parameters[pos].flags = flags; parameters[pos].width = width; parameters[pos].precision = precision; parameters[pos].base = (base == NO_BASE) ? BASE_DECIMAL : base; parameters[pos].varsize = varsize; pos++; if (! positional) parameterPosition++; } /* if identifier */ } /* while format characters left */ for (num = 0; num <= maxParam; num++) { #if defined(TRIO_ERRORS) if (usedEntries[num] != 1) { if (usedEntries[num] == 0) /* gap detected */ return TRIO_ERROR_RETURN(TRIO_EGAP, num); else /* double references detected */ return TRIO_ERROR_RETURN(TRIO_EDBLREF, num); } #endif i = indices[num]; /* * FORMAT_PARAMETERS are only present if they must be read, * so it makes no sense to check the ignore flag (besides, * the flags variable is not set for that particular type) */ if ((parameters[i].type != FORMAT_PARAMETER) && (parameters[i].flags & FLAGS_IGNORE)) continue; /* for all arguments */ /* * The stack arguments are read according to ANSI C89 * default argument promotions: * * char = int * short = int * unsigned char = unsigned int * unsigned short = unsigned int * float = double * * In addition to the ANSI C89 these types are read (the * default argument promotions of C99 has not been * considered yet) * * long long * long double * size_t * ptrdiff_t * intmax_t */ switch (parameters[i].type) { case FORMAT_GROUP: case FORMAT_STRING: parameters[i].data.string = (arglist != NULL) ? va_arg(arglist, char *) : (char *)(argarray[num]); break; case FORMAT_POINTER: case FORMAT_COUNT: case FORMAT_USER_DEFINED: case FORMAT_UNKNOWN: parameters[i].data.pointer = (arglist != NULL) ? va_arg(arglist, void *) : argarray[num]; break; case FORMAT_CHAR: case FORMAT_INT: if (TYPE_SCAN == type) { if (arglist != NULL) parameters[i].data.pointer = (LONGEST *)va_arg(arglist, void *); else { if (parameters[i].type == FORMAT_CHAR) parameters[i].data.pointer = (LONGEST *)((char *)argarray[num]); else if (parameters[i].flags & FLAGS_SHORT) parameters[i].data.pointer = (LONGEST *)((short *)argarray[num]); else parameters[i].data.pointer = (LONGEST *)((int *)argarray[num]); } } else { #if defined(QUALIFIER_VARSIZE) if (parameters[i].flags & FLAGS_SIZE_PARAMETER) { /* * Variable sizes are mapped onto the fixed sizes, in * accordance with integer promotion. * * Please note that this may not be portable, as we * only guess the size, not the layout of the numbers. * For example, if int is little-endian, and long is * big-endian, then this will fail. */ parameters[i].flags &= ~FLAGS_ALL_VARSIZES; varsize = (int)parameters[parameters[i].varsize].data.number.as_unsigned; if (varsize <= (int)sizeof(int)) ; else if (varsize <= (int)sizeof(long)) parameters[i].flags |= FLAGS_LONG; #if defined(QUALIFIER_INTMAX_T) else if (varsize <= (int)sizeof(LONGLONG)) parameters[i].flags |= FLAGS_QUAD; else parameters[i].flags |= FLAGS_INTMAX_T; #else else parameters[i].flags |= FLAGS_QUAD; #endif } #endif /* defined(QUALIFIER_VARSIZE) */ #if defined(QUALIFIER_SIZE_T) || defined(QUALIFIER_SIZE_T_UPPER) if (parameters[i].flags & FLAGS_SIZE_T) parameters[i].data.number.as_unsigned = (arglist != NULL) ? (LONGEST)va_arg(arglist, size_t) : (LONGEST)(*((size_t *)argarray[num])); else #endif #if defined(QUALIFIER_PTRDIFF_T) if (parameters[i].flags & FLAGS_PTRDIFF_T) parameters[i].data.number.as_unsigned = (arglist != NULL) ? (LONGEST)va_arg(arglist, ptrdiff_t) : (LONGEST)(*((ptrdiff_t *)argarray[num])); else #endif #if defined(QUALIFIER_INTMAX_T) if (parameters[i].flags & FLAGS_INTMAX_T) parameters[i].data.number.as_unsigned = (arglist != NULL) ? (LONGEST)va_arg(arglist, intmax_t) : (LONGEST)(*((intmax_t *)argarray[num])); else #endif if (parameters[i].flags & FLAGS_QUAD) parameters[i].data.number.as_unsigned = (arglist != NULL) ? (LONGEST)va_arg(arglist, ULONGLONG) : (LONGEST)(*((ULONGLONG *)argarray[num])); else if (parameters[i].flags & FLAGS_LONG) parameters[i].data.number.as_unsigned = (arglist != NULL) ? (LONGEST)va_arg(arglist, long) : (LONGEST)(*((long *)argarray[num])); else { if (arglist != NULL) parameters[i].data.number.as_unsigned = (LONGEST)va_arg(arglist, int); else { if (parameters[i].type == FORMAT_CHAR) parameters[i].data.number.as_unsigned = (LONGEST)(*((char *)argarray[num])); else if (parameters[i].flags & FLAGS_SHORT) parameters[i].data.number.as_unsigned = (LONGEST)(*((short *)argarray[num])); else parameters[i].data.number.as_unsigned = (LONGEST)(*((int *)argarray[num])); } } } break; case FORMAT_PARAMETER: /* * The parameter for the user-defined specifier is a pointer, * whereas the rest (width, precision, base) uses an integer. */ if (parameters[i].flags & FLAGS_USER_DEFINED) parameters[i].data.pointer = (arglist != NULL) ? va_arg(arglist, void *) : argarray[num]; else parameters[i].data.number.as_unsigned = (arglist != NULL) ? (LONGEST)va_arg(arglist, int) : (LONGEST)(*((int *)argarray[num])); break; case FORMAT_DOUBLE: if (TYPE_SCAN == type) { if (parameters[i].flags & FLAGS_LONG) parameters[i].data.longdoublePointer = (arglist != NULL) ? va_arg(arglist, long double *) : (long double *)((long double *)argarray[num]); else { if (arglist != NULL) parameters[i].data.doublePointer = va_arg(arglist, double *); else { if (parameters[i].flags & FLAGS_SHORT) parameters[i].data.doublePointer = (double *)((float *)argarray[num]); else parameters[i].data.doublePointer = (double *)((double *)argarray[num]); } } } else { if (parameters[i].flags & FLAGS_LONG) parameters[i].data.longdoubleNumber = (arglist != NULL) ? va_arg(arglist, long double) : (long double)(*((long double *)argarray[num])); else { if (arglist != NULL) parameters[i].data.longdoubleNumber = (long double)va_arg(arglist, double); else { if (parameters[i].flags & FLAGS_SHORT) parameters[i].data.longdoubleNumber = (long double)(*((float *)argarray[num])); else parameters[i].data.longdoubleNumber = (long double)(long double)(*((double *)argarray[num])); } } } break; #if defined(FORMAT_ERRNO) case FORMAT_ERRNO: parameters[i].data.errorNumber = errno; break; #endif default: break; } } /* for all specifiers */ return num; } /************************************************************************* * * @FORMATTING * ************************************************************************/ /************************************************************************* * TrioWriteNumber [private] * * Description: * Output a number. * The complexity of this function is a result of the complexity * of the dependencies of the flags. */ static void TrioWriteNumber(trio_T *self, SLONGEST number, unsigned long flags, int width, int precision, int base) { BOOLEAN_T isNegative; char buffer[MAX_CHARS_IN(LONGEST) * MAX_LOCALE_SEPARATOR_LENGTH * MAX_LOCALE_GROUPS]; char *bufferend; char *pointer; const char *digits; int i; int length; char *p; int charsPerThousand; int groupingIndex; int count; assert(VALID(self)); assert(VALID(self->OutStream)); assert((base >= MIN_BASE && base <= MAX_BASE) || (base == NO_BASE)); digits = (flags & FLAGS_UPPER) ? internalDigitsUpper : internalDigitsLower; if (flags & FLAGS_UNSIGNED) isNegative = FALSE; else if ((isNegative = (((SLONGEST)number) < 0))) number = -number; if (flags & FLAGS_QUAD) number &= (ULONGLONG)-1; else if (flags & FLAGS_LONG) number &= (unsigned long)-1; else number &= (unsigned int)-1; /* Build number */ pointer = bufferend = &buffer[sizeof(buffer) - 1]; *pointer-- = NIL; charsPerThousand = (int)internalGrouping[0]; groupingIndex = 1; for (i = 1; i < (int)sizeof(buffer); i++) { *pointer-- = digits[number % base]; number /= base; if (number == 0) break; if ((flags & FLAGS_QUOTE) && (charsPerThousand != NO_GROUPING) && (i % charsPerThousand == 0)) { /* * We are building the number from the least significant * to the most significant digit, so we have to copy the * thousand separator backwards */ length = StrLength(internalThousandSeparator); if (((int)(pointer - buffer) - length) > 0) { p = &internalThousandSeparator[length - 1]; while (length-- > 0) *pointer-- = *p--; } /* Advance to next grouping number */ switch (internalGrouping[groupingIndex]) { case CHAR_MAX: /* Disable grouping */ charsPerThousand = NO_GROUPING; break; case 0: /* Repeat last group */ break; default: charsPerThousand = (int)internalGrouping[groupingIndex++]; break; } } } /* Adjust width */ width -= (bufferend - pointer) - 1; /* Adjust precision */ if (NO_PRECISION != precision) { precision -= (bufferend - pointer) - 1; if (precision < 0) precision = 0; flags |= FLAGS_NILPADDING; } /* Adjust width further */ if (isNegative || (flags & FLAGS_SHOWSIGN) || (flags & FLAGS_SPACE)) width--; if (flags & FLAGS_ALTERNATIVE) { switch (base) { case BASE_BINARY: case BASE_HEX: width -= 2; break; case BASE_OCTAL: width--; break; default: break; } } /* Output prefixes spaces if needed */ if (! ((flags & FLAGS_LEFTADJUST) || ((flags & FLAGS_NILPADDING) && (precision == NO_PRECISION)))) { count = (precision == NO_PRECISION) ? 0 : precision; while (width-- > count) self->OutStream(self, CHAR_ADJUST); } /* width has been adjusted for signs and alternatives */ if (isNegative) self->OutStream(self, '-'); else if (flags & FLAGS_SHOWSIGN) self->OutStream(self, '+'); else if (flags & FLAGS_SPACE) self->OutStream(self, ' '); if (flags & FLAGS_ALTERNATIVE) { switch (base) { case BASE_BINARY: self->OutStream(self, '0'); self->OutStream(self, (flags & FLAGS_UPPER) ? 'B' : 'b'); break; case BASE_OCTAL: self->OutStream(self, '0'); break; case BASE_HEX: self->OutStream(self, '0'); self->OutStream(self, (flags & FLAGS_UPPER) ? 'X' : 'x'); break; default: break; } /* switch base */ } /* Output prefixed zero padding if needed */ if (flags & FLAGS_NILPADDING) { if (precision == NO_PRECISION) precision = width; while (precision-- > 0) { self->OutStream(self, '0'); width--; } } /* Output the number itself */ while (*(++pointer)) { self->OutStream(self, *pointer); } /* Output trailing spaces if needed */ if (flags & FLAGS_LEFTADJUST) { while (width-- > 0) self->OutStream(self, CHAR_ADJUST); } } /************************************************************************* * TrioWriteString [private] * * Description: * Output a string */ static void TrioWriteString(trio_T *self, const char *string, unsigned long flags, int width, int precision) { int length; int ch; assert(VALID(self)); assert(VALID(self->OutStream)); if (string == NULL) { string = null; length = sizeof(null) - 1; /* Disable quoting for the null pointer */ flags &= (~FLAGS_QUOTE); width = 0; } else { length = StrLength(string); } if ((NO_PRECISION != precision) && (precision < length)) { length = precision; } width -= length; if (flags & FLAGS_QUOTE) self->OutStream(self, CHAR_QUOTE); if (! (flags & FLAGS_LEFTADJUST)) { while (width-- > 0) self->OutStream(self, CHAR_ADJUST); } while (length-- > 0) { /* The ctype parameters must be an unsigned char (or EOF) */ ch = (unsigned char)(*string++); if (flags & FLAGS_ALTERNATIVE) { if (! (isprint(ch) || isspace(ch))) { /* * Non-printable characters are converted to C escapes or * \number, if no C escape exists. */ self->OutStream(self, CHAR_BACKSLASH); switch (ch) { case '\a': self->OutStream(self, 'a'); break; case '\b': self->OutStream(self, 'b'); break; case '\f': self->OutStream(self, 'f'); break; case '\n': self->OutStream(self, 'n'); break; case '\r': self->OutStream(self, 'r'); break; case '\t': self->OutStream(self, 't'); break; case '\v': self->OutStream(self, 'v'); break; case '\\': self->OutStream(self, '\\'); break; default: self->OutStream(self, 'x'); TrioWriteNumber(self, (SLONGEST)ch, FLAGS_UNSIGNED | FLAGS_NILPADDING, 2, 2, BASE_HEX); break; } } else if (ch == CHAR_BACKSLASH) { self->OutStream(self, CHAR_BACKSLASH); self->OutStream(self, CHAR_BACKSLASH); } else { self->OutStream(self, ch); } } else { self->OutStream(self, ch); } } if (flags & FLAGS_LEFTADJUST) { while (width-- > 0) self->OutStream(self, CHAR_ADJUST); } if (flags & FLAGS_QUOTE) self->OutStream(self, CHAR_QUOTE); } /************************************************************************* * TrioWriteDouble [private] */ static void TrioWriteDouble(trio_T *self, long double longdoubleNumber, unsigned long flags, int width, int precision, int base) { int charsPerThousand; int length; double number; double precisionPower; double workNumber; int integerDigits; int fractionDigits; int exponentDigits; int expectedWidth; int exponent; unsigned int uExponent = 0; double dblBase; BOOLEAN_T isNegative; BOOLEAN_T isExponentNegative = FALSE; BOOLEAN_T isHex; const char *digits; char numberBuffer[MAX_CHARS_IN(double) * MAX_LOCALE_SEPARATOR_LENGTH * MAX_LOCALE_GROUPS]; char *numberPointer; char exponentBuffer[MAX_CHARS_IN(double)]; char *exponentPointer = NULL; int groupingIndex; char *work; int i; BOOLEAN_T onlyzero; int set_precision = precision; assert(VALID(self)); assert(VALID(self->OutStream)); assert(base == BASE_DECIMAL || base == BASE_HEX); number = (double)longdoubleNumber; #if defined(USE_NON_NUMBERS) /* Look for infinite numbers and non-a-number first */ switch (TrioIsInfinite(number)) { case 1: /* Positive infinity */ TrioWriteString(self, (flags & FLAGS_UPPER) ? INFINITE_UPPER : INFINITE_LOWER, flags, width, precision); return; case -1: /* Negative infinity */ TrioWriteString(self, (flags & FLAGS_UPPER) ? "-" INFINITE_UPPER : "-" INFINITE_LOWER, flags, width, precision); return; default: /* Finitude */ break; } if (TrioIsNan(number)) { TrioWriteString(self, (flags & FLAGS_UPPER) ? NAN_UPPER : NAN_LOWER, flags, width, precision); return; } #endif /* defined(USE_NON_NUMBERS) */ /* Normal numbers */ digits = (flags & FLAGS_UPPER) ? internalDigitsUpper : internalDigitsLower; isHex = (base == BASE_HEX); dblBase = (double)base; if (precision == NO_PRECISION) precision = FLT_DIG; precisionPower = pow(10.0, (double)precision); isNegative = (number < 0.0); if (isNegative) number = -number; if ((flags & FLAGS_FLOAT_G) || isHex) { if ((number < 1.0e-4) || (number > precisionPower)) flags |= FLAGS_FLOAT_E; #if defined(TRIO_UNIX98) if (precision == 0) precision = 1; #endif } if (flags & FLAGS_FLOAT_E) { /* Scale the number */ workNumber = log10(number); if (workNumber == -HUGE_VAL) { exponent = 0; /* Undo setting */ if (flags & FLAGS_FLOAT_G) flags &= ~FLAGS_FLOAT_E; } else { exponent = (int)floor(workNumber); number /= pow(10.0, (double)exponent); isExponentNegative = (exponent < 0); uExponent = (isExponentNegative) ? -exponent : exponent; /* No thousand separators */ flags &= ~FLAGS_QUOTE; } } /* * Truncated number. * * precision is number of significant digits for FLOAT_G * and number of fractional digits for others */ integerDigits = (floor(number) > DBL_EPSILON) ? 1 + (int)log10(floor(number)) : 1; fractionDigits = (flags & FLAGS_FLOAT_G) ? precision - integerDigits : precision; number = floor(0.5 + number * pow(10.0, (double)fractionDigits)); if ((int)log10(number) + 1 > integerDigits + fractionDigits) { /* Adjust if number was rounded up one digit (ie. 99 to 100) */ integerDigits++; } /* Build the fraction part */ numberPointer = &numberBuffer[sizeof(numberBuffer) - 1]; *numberPointer = NIL; onlyzero = TRUE; for (i = 0; i < fractionDigits; i++) { *(--numberPointer) = digits[(int)fmod(number, dblBase)]; number = floor(number / dblBase); if((set_precision == NO_PRECISION) || (flags & FLAGS_ALTERNATIVE)) { /* Prune trailing zeroes */ if (numberPointer[0] != digits[0]) onlyzero = FALSE; else if (onlyzero && (numberPointer[0] == digits[0])) numberPointer++; } else onlyzero = FALSE; } /* Insert decimal point */ if ((flags & FLAGS_ALTERNATIVE) || ((fractionDigits > 0) && !onlyzero)) { i = StrLength(internalDecimalPoint); while (i> 0) { *(--numberPointer) = internalDecimalPoint[--i]; } } /* Insert the integer part and thousand separators */ charsPerThousand = (int)internalGrouping[0]; groupingIndex = 1; for (i = 1; i < integerDigits + 1; i++) { *(--numberPointer) = digits[(int)fmod(number, dblBase)]; number = floor(number / dblBase); if (number < DBL_EPSILON) break; if ((i > 0) && ((flags & (FLAGS_FLOAT_E | FLAGS_QUOTE)) == FLAGS_QUOTE) && (charsPerThousand != NO_GROUPING) && (i % charsPerThousand == 0)) { /* * We are building the number from the least significant * to the most significant digit, so we have to copy the * thousand separator backwards */ length = StrLength(internalThousandSeparator); integerDigits += length; if (((int)(numberPointer - numberBuffer) - length) > 0) { work = &internalThousandSeparator[length - 1]; while (length-- > 0) *(--numberPointer) = *work--; } /* Advance to next grouping number */ if (charsPerThousand != NO_GROUPING) { switch (internalGrouping[groupingIndex]) { case CHAR_MAX: /* Disable grouping */ charsPerThousand = NO_GROUPING; break; case 0: /* Repeat last group */ break; default: charsPerThousand = (int)internalGrouping[groupingIndex++]; break; } } } } /* Build the exponent */ exponentDigits = 0; if (flags & FLAGS_FLOAT_E) { exponentPointer = &exponentBuffer[sizeof(exponentBuffer) - 1]; *exponentPointer-- = NIL; do { *exponentPointer-- = digits[uExponent % base]; uExponent /= base; exponentDigits++; } while (uExponent); } /* * Calculate expected width. * sign + integer part + thousands separators + decimal point * + fraction + exponent */ expectedWidth = StrLength(numberPointer); if (isNegative || (flags & FLAGS_SHOWSIGN)) expectedWidth += sizeof("-") - 1; if (exponentDigits > 0) expectedWidth += exponentDigits + sizeof("E+") - 1; if (isExponentNegative) expectedWidth += sizeof('-') - 1; if (isHex) expectedWidth += sizeof("0X") - 1; /* Output prefixing */ if (flags & FLAGS_NILPADDING) { /* Leading zeros must be after sign */ if (isNegative) self->OutStream(self, '-'); else if (flags & FLAGS_SHOWSIGN) self->OutStream(self, '+'); if (isHex) { self->OutStream(self, '0'); self->OutStream(self, (flags & FLAGS_UPPER) ? 'X' : 'x'); } if (!(flags & FLAGS_LEFTADJUST)) { for (i = expectedWidth; i < width; i++) { self->OutStream(self, '0'); } } } else { /* Leading spaces must be before sign */ if (!(flags & FLAGS_LEFTADJUST)) { for (i = expectedWidth; i < width; i++) { self->OutStream(self, CHAR_ADJUST); } } if (isNegative) self->OutStream(self, '-'); else if (flags & FLAGS_SHOWSIGN) self->OutStream(self, '+'); if (isHex) { self->OutStream(self, '0'); self->OutStream(self, (flags & FLAGS_UPPER) ? 'X' : 'x'); } } /* Output number */ for (i = 0; numberPointer[i]; i++) { self->OutStream(self, numberPointer[i]); } /* Output exponent */ if (exponentDigits > 0) { self->OutStream(self, isHex ? ((flags & FLAGS_UPPER) ? 'P' : 'p') : ((flags & FLAGS_UPPER) ? 'E' : 'e')); self->OutStream(self, (isExponentNegative) ? '-' : '+'); for (i = 0; i < exponentDigits; i++) { self->OutStream(self, exponentPointer[i + 1]); } } /* Output trailing spaces */ if (flags & FLAGS_LEFTADJUST) { for (i = expectedWidth; i < width; i++) { self->OutStream(self, CHAR_ADJUST); } } } /************************************************************************* * TrioFormatProcess [private] */ static int TrioFormatProcess(trio_T *data, const char *format, parameter_T *parameters) { #if defined(USE_MULTIBYTE) int charlen; #endif int i; const char *string; void *pointer; unsigned long flags; int width; int precision; int base; int index; index = 0; i = 0; #if defined(USE_MULTIBYTE) mblen(NULL, 0); #endif while (format[index]) { #if defined(USE_MULTIBYTE) if (! isascii(format[index])) { charlen = mblen(&format[index], MB_LEN_MAX); while (charlen-- > 0) { data->OutStream(data, format[index++]); } continue; /* while */ } #endif /* defined(USE_MULTIBYTE) */ if (CHAR_IDENTIFIER == format[index]) { if (CHAR_IDENTIFIER == format[index + 1]) { data->OutStream(data, CHAR_IDENTIFIER); index += 2; } else { /* Skip the parameter entries */ while (parameters[i].type == FORMAT_PARAMETER) i++; flags = parameters[i].flags; /* Find width */ width = parameters[i].width; if (flags & FLAGS_WIDTH_PARAMETER) { /* Get width from parameter list */ width = (int)parameters[width].data.number.as_signed; } /* Find precision */ if (flags & FLAGS_PRECISION) { precision = parameters[i].precision; if (flags & FLAGS_PRECISION_PARAMETER) { /* Get precision from parameter list */ precision = (int)parameters[precision].data.number.as_signed; } } else { precision = NO_PRECISION; } /* Find base */ base = parameters[i].base; if (flags & FLAGS_BASE_PARAMETER) { /* Get base from parameter list */ base = (int)parameters[base].data.number.as_signed; } switch (parameters[i].type) { case FORMAT_CHAR: if (flags & FLAGS_QUOTE) data->OutStream(data, CHAR_QUOTE); if (! (flags & FLAGS_LEFTADJUST)) { while (--width > 0) data->OutStream(data, CHAR_ADJUST); } data->OutStream(data, (char)parameters[i].data.number.as_signed); if (flags & FLAGS_LEFTADJUST) { while(--width > 0) data->OutStream(data, CHAR_ADJUST); } if (flags & FLAGS_QUOTE) data->OutStream(data, CHAR_QUOTE); break; /* FORMAT_CHAR */ case FORMAT_INT: if (base == NO_BASE) base = BASE_DECIMAL; TrioWriteNumber(data, parameters[i].data.number.as_signed, flags, width, precision, base); break; /* FORMAT_INT */ case FORMAT_DOUBLE: TrioWriteDouble(data, parameters[i].data.longdoubleNumber, flags, width, precision, base); break; /* FORMAT_DOUBLE */ case FORMAT_STRING: TrioWriteString(data, parameters[i].data.string, flags, width, precision); break; /* FORMAT_STRING */ case FORMAT_POINTER: { reference_T reference; reference.data = data; reference.parameter = ¶meters[i]; trio_print_pointer(&reference, parameters[i].data.pointer); } break; /* FORMAT_POINTER */ case FORMAT_COUNT: pointer = parameters[i].data.pointer; if (NULL != pointer) { /* * C99 paragraph 7.19.6.1.8 says "the number of * characters written to the output stream so far by * this call", which is data->committed */ #if defined(QUALIFIER_SIZE_T) || defined(QUALIFIER_SIZE_T_UPPER) if (flags & FLAGS_SIZE_T) *(size_t *)pointer = (size_t)data->committed; else #endif #if defined(QUALIFIER_PTRDIFF_T) if (flags & FLAGS_PTRDIFF_T) *(ptrdiff_t *)pointer = (ptrdiff_t)data->committed; else #endif #if defined(QUALIFIER_INTMAX_T) if (flags & FLAGS_INTMAX_T) *(intmax_t *)pointer = (intmax_t)data->committed; else #endif if (flags & FLAGS_QUAD) { *(ULONGLONG int *)pointer = (ULONGLONG)data->committed; } else if (flags & FLAGS_LONG) { *(long int *)pointer = (long int)data->committed; } else if (flags & FLAGS_SHORT) { *(short int *)pointer = (short int)data->committed; } else { *(int *)pointer = (int)data->committed; } } break; /* FORMAT_COUNT */ case FORMAT_PARAMETER: break; /* FORMAT_PARAMETER */ #if defined(FORMAT_ERRNO) case FORMAT_ERRNO: string = StrError(parameters[i].data.errorNumber); if (string) { TrioWriteString(data, string, flags, width, precision); } else { data->OutStream(data, '#'); TrioWriteNumber(data, (SLONGEST)parameters[i].data.errorNumber, flags, width, precision, BASE_DECIMAL); } break; /* FORMAT_ERRNO */ #endif /* defined(FORMAT_ERRNO) */ #if defined(FORMAT_USER_DEFINED) case FORMAT_USER_DEFINED: { reference_T reference; userdef_T *def = NULL; if (parameters[i].user_name[0] == NIL) { /* Use handle */ if ((i > 0) || (parameters[i - 1].type == FORMAT_PARAMETER)) def = (userdef_T *)parameters[i - 1].data.pointer; } else { /* Look up namespace */ def = TrioFindNamespace(parameters[i].user_name, NULL); } if (def) { reference.data = data; reference.parameter = ¶meters[i]; def->callback(&reference); } } break; #endif /* defined(FORMAT_USER_DEFINED) */ default: break; } /* switch parameter type */ /* Prepare for next */ index = parameters[i].indexAfterSpecifier; i++; } } else /* not identifier */ { data->OutStream(data, format[index++]); } } return data->processed; } /************************************************************************* * TrioFormatRef [private] */ static int TrioFormatRef(reference_T *reference, const char *format, va_list arglist, void **argarray) { int status; parameter_T parameters[MAX_PARAMETERS]; status = TrioPreprocess(TYPE_PRINT, format, parameters, arglist, argarray); if (status < 0) return status; return TrioFormatProcess(reference->data, format, parameters); } /************************************************************************* * TrioFormat [private] * * Description: * This is the main engine for formatting output */ static int TrioFormat(void *destination, size_t destinationSize, void (*OutStream)(trio_T *, int), const char *format, va_list arglist, void **argarray) { int status; trio_T data; parameter_T parameters[MAX_PARAMETERS]; assert(VALID(OutStream)); assert(VALID(format)); assert(VALID(arglist) || VALID(argarray)); memset(&data, 0, sizeof(data)); data.OutStream = OutStream; data.location = destination; data.max = destinationSize; #if defined(USE_LOCALE) if (NULL == internalLocaleValues) { TrioSetLocale(); } #endif status = TrioPreprocess(TYPE_PRINT, format, parameters, arglist, argarray); if (status < 0) return status; return TrioFormatProcess(&data, format, parameters); } /************************************************************************* * TrioOutStreamFile [private] */ static void TrioOutStreamFile(trio_T *self, int output) { FILE *file = (FILE *)self->location; assert(VALID(self)); assert(VALID(file)); self->processed++; self->committed++; (void)fputc(output, file); } /************************************************************************* * TrioOutStreamFileDescriptor [private] */ static void TrioOutStreamFileDescriptor(trio_T *self, int output) { int fd = *((int *)self->location); char ch; assert(VALID(self)); ch = (char)output; (void)write(fd, &ch, sizeof(char)); self->processed++; self->committed++; } /************************************************************************* * TrioOutStreamString [private] */ static void TrioOutStreamString(trio_T *self, int output) { char **buffer = (char **)self->location; assert(VALID(self)); assert(VALID(buffer)); **buffer = (char)output; (*buffer)++; self->processed++; self->committed++; } /************************************************************************* * TrioOutStreamStringMax [private] */ static void TrioOutStreamStringMax(trio_T *self, int output) { char **buffer; assert(VALID(self)); buffer = (char **)self->location; assert(VALID(buffer)); if (self->processed < self->max) { **buffer = (char)output; (*buffer)++; self->committed++; } self->processed++; } /************************************************************************* * TrioOutStreamStringDynamic [private] */ #define DYNAMIC_START_SIZE 32 struct dynamicBuffer { char *buffer; size_t length; size_t allocated; }; static void TrioOutStreamStringDynamic(trio_T *self, int output) { struct dynamicBuffer *infop; assert(VALID(self)); assert(VALID(self->location)); infop = (struct dynamicBuffer *)self->location; if (infop->buffer == NULL) { /* Start with a reasonable size */ infop->buffer = (char *)malloc(DYNAMIC_START_SIZE); if (infop->buffer == NULL) return; /* fail */ infop->allocated = DYNAMIC_START_SIZE; self->processed = 0; self->committed = 0; } else if (self->committed + sizeof(NIL) >= infop->allocated) { char *newptr; /* Allocate increasing chunks */ newptr = (char *)realloc(infop->buffer, infop->allocated * 2); if (newptr == NULL) return; infop->buffer = newptr; infop->allocated *= 2; } infop->buffer[self->committed] = output; self->committed++; self->processed++; infop->length = self->committed; } /************************************************************************* * printf */ int trio_printf(const char *format, ...) { int status; va_list args; assert(VALID(format)); va_start(args, format); status = TrioFormat(stdout, 0, TrioOutStreamFile, format, args, NULL); va_end(args); return status; } int trio_vprintf(const char *format, va_list args) { assert(VALID(format)); assert(VALID(args)); return TrioFormat(stdout, 0, TrioOutStreamFile, format, args, NULL); } int trio_printfv(const char *format, void ** args) { assert(VALID(format)); assert(VALID(args)); return TrioFormat(stdout, 0, TrioOutStreamFile, format, NULL, args); } /************************************************************************* * fprintf */ int trio_fprintf(FILE *file, const char *format, ...) { int status; va_list args; assert(VALID(file)); assert(VALID(format)); va_start(args, format); status = TrioFormat(file, 0, TrioOutStreamFile, format, args, NULL); va_end(args); return status; } int trio_vfprintf(FILE *file, const char *format, va_list args) { assert(VALID(file)); assert(VALID(format)); assert(VALID(args)); return TrioFormat(file, 0, TrioOutStreamFile, format, args, NULL); } int trio_fprintfv(FILE *file, const char *format, void ** args) { assert(VALID(file)); assert(VALID(format)); assert(VALID(args)); return TrioFormat(file, 0, TrioOutStreamFile, format, NULL, args); } /************************************************************************* * dprintf */ int trio_dprintf(int fd, const char *format, ...) { int status; va_list args; assert(VALID(format)); va_start(args, format); status = TrioFormat(&fd, 0, TrioOutStreamFileDescriptor, format, args, NULL); va_end(args); return status; } int trio_vdprintf(int fd, const char *format, va_list args) { assert(VALID(format)); assert(VALID(args)); return TrioFormat(&fd, 0, TrioOutStreamFileDescriptor, format, args, NULL); } int trio_dprintfv(int fd, const char *format, void **args) { assert(VALID(format)); assert(VALID(args)); return TrioFormat(&fd, 0, TrioOutStreamFileDescriptor, format, NULL, args); } /************************************************************************* * sprintf */ int trio_sprintf(char *buffer, const char *format, ...) { int status; va_list args; assert(VALID(buffer)); assert(VALID(format)); va_start(args, format); status = TrioFormat(&buffer, 0, TrioOutStreamString, format, args, NULL); *buffer = NIL; /* Terminate with NIL character */ va_end(args); return status; } int trio_vsprintf(char *buffer, const char *format, va_list args) { int status; assert(VALID(buffer)); assert(VALID(format)); assert(VALID(args)); status = TrioFormat(&buffer, 0, TrioOutStreamString, format, args, NULL); *buffer = NIL; return status; } int trio_sprintfv(char *buffer, const char *format, void **args) { int status; assert(VALID(buffer)); assert(VALID(format)); assert(VALID(args)); status = TrioFormat(&buffer, 0, TrioOutStreamString, format, NULL, args); *buffer = NIL; return status; } /************************************************************************* * snprintf */ int trio_snprintf(char *buffer, size_t bufferSize, const char *format, ...) { int status; va_list args; assert(VALID(buffer)); assert(VALID(format)); va_start(args, format); status = TrioFormat(&buffer, bufferSize > 0 ? bufferSize - 1 : 0, TrioOutStreamStringMax, format, args, NULL); if (bufferSize > 0) *buffer = NIL; va_end(args); return status; } int trio_vsnprintf(char *buffer, size_t bufferSize, const char *format, va_list args) { int status; assert(VALID(buffer)); assert(VALID(format)); assert(VALID(args)); status = TrioFormat(&buffer, bufferSize > 0 ? bufferSize - 1 : 0, TrioOutStreamStringMax, format, args, NULL); if (bufferSize > 0) *buffer = NIL; return status; } int trio_snprintfv(char *buffer, size_t bufferSize, const char *format, void **args) { int status; assert(VALID(buffer)); assert(VALID(format)); assert(VALID(args)); status = TrioFormat(&buffer, bufferSize > 0 ? bufferSize - 1 : 0, TrioOutStreamStringMax, format, NULL, args); if (bufferSize > 0) *buffer = NIL; return status; } /************************************************************************* * snprintfcat * Appends the new string to the buffer string overwriting the '\0' * character at the end of buffer. */ int trio_snprintfcat(char *buffer, size_t bufferSize, const char *format, ...) { int status; va_list args; size_t buf_len; va_start(args, format); assert(VALID(buffer)); assert(VALID(format)); buf_len = strlen(buffer); buffer = &buffer[buf_len]; status = TrioFormat(&buffer, bufferSize - 1 - buf_len, TrioOutStreamStringMax, format, args, NULL); va_end(args); *buffer = NIL; return status; } int trio_vsnprintfcat(char *buffer, size_t bufferSize, const char *format, va_list args) { int status; size_t buf_len; assert(VALID(buffer)); assert(VALID(format)); assert(VALID(args)); buf_len = strlen(buffer); buffer = &buffer[buf_len]; status = TrioFormat(&buffer, bufferSize - 1 - buf_len, TrioOutStreamStringMax, format, args, NULL); *buffer = NIL; return status; } /************************************************************************* * trio_aprintf */ /* Deprecated */ char * trio_aprintf(const char *format, ...) { va_list args; struct dynamicBuffer info; assert(VALID(format)); info.buffer = NULL; info.length = 0; info.allocated = 0; va_start(args, format); (void)TrioFormat(&info, 0, TrioOutStreamStringDynamic, format, args, NULL); va_end(args); if (info.length) { info.buffer[info.length] = NIL; /* we terminate this with a zero byte */ return info.buffer; } else return NULL; } /* Deprecated */ char * trio_vaprintf(const char *format, va_list args) { struct dynamicBuffer info; assert(VALID(format)); assert(VALID(args)); info.buffer = NULL; info.length = 0; info.allocated = 0; (void)TrioFormat(&info, 0, TrioOutStreamStringDynamic, format, args, NULL); if (info.length) { info.buffer[info.length] = NIL; /* we terminate this with a zero byte */ return info.buffer; } else return NULL; } int trio_asprintf(char **result, const char *format, ...) { va_list args; int status; struct dynamicBuffer info; assert(VALID(format)); info.buffer = NULL; info.length = 0; info.allocated = 0; va_start(args, format); status = TrioFormat(&info, 0, TrioOutStreamStringDynamic, format, args, NULL); va_end(args); if (status < 0) { *result = NULL; return status; } if (info.length == 0) { /* * If the length is zero, no characters have been written and therefore * no memory has been allocated, but we must to allocate and return an * empty string. */ info.buffer = (char *)malloc(sizeof(char)); if (info.buffer == NULL) { *result = NULL; return TRIO_ERROR_RETURN(TRIO_ENOMEM, 0); } } info.buffer[info.length] = NIL; /* we terminate this with a zero byte */ *result = info.buffer; return status; } int trio_vasprintf(char **result, const char *format, va_list args) { int status; struct dynamicBuffer info; assert(VALID(format)); assert(VALID(args)); info.buffer = NULL; info.length = 0; info.allocated = 0; status = TrioFormat(&info, 0, TrioOutStreamStringDynamic, format, args, NULL); if (status < 0) { *result = NULL; return status; } if (info.length == 0) { info.buffer = (char *)malloc(sizeof(char)); if (info.buffer == NULL) { *result = NULL; return TRIO_ERROR_RETURN(TRIO_ENOMEM, 0); } } info.buffer[info.length] = NIL; /* we terminate this with a zero byte */ *result = info.buffer; return status; } /************************************************************************* * * @CALLBACK * ************************************************************************/ /************************************************************************* * trio_register [public] */ void * trio_register(trio_callback_t callback, const char *name) { userdef_T *def; userdef_T *prev = NULL; if (callback == NULL) return NULL; if (name) { /* Bail out if namespace is too long */ if (StrLength(name) >= MAX_USER_NAME) return NULL; /* Bail out if namespace already is registered */ def = TrioFindNamespace(name, &prev); if (def) return NULL; } def = (userdef_T *)malloc(sizeof(userdef_T)); if (def) { if (name) { /* Link into internal list */ if (prev == NULL) internalUserDef = def; else prev->next = def; } /* Initialize */ def->callback = callback; def->name = (name == NULL) ? NULL : StrDuplicate(name); def->next = NULL; } return def; } /************************************************************************* * trio_unregister [public] */ void trio_unregister(void *handle) { userdef_T *self = (userdef_T *)handle; userdef_T *def; userdef_T *prev = NULL; assert(VALID(self)); if (self->name) { def = TrioFindNamespace(self->name, &prev); if (def) { if (prev == NULL) internalUserDef = NULL; else prev->next = def->next; } StrFree(self->name); } free(self); } /************************************************************************* * trio_get_format [public] */ const char * trio_get_format(void *ref) { assert(((reference_T *)ref)->parameter->type == FORMAT_USER_DEFINED); return (((reference_T *)ref)->parameter->user_data); } /************************************************************************* * trio_get_argument [public] */ void * trio_get_argument(void *ref) { assert(((reference_T *)ref)->parameter->type == FORMAT_USER_DEFINED); return ((reference_T *)ref)->parameter->data.pointer; } /************************************************************************* * trio_get_width / trio_set_width [public] */ int trio_get_width(void *ref) { return ((reference_T *)ref)->parameter->width; } void trio_set_width(void *ref, int width) { ((reference_T *)ref)->parameter->width = width; } /************************************************************************* * trio_get_precision / trio_set_precision [public] */ int trio_get_precision(void *ref) { return (((reference_T *)ref)->parameter->precision); } void trio_set_precision(void *ref, int precision) { ((reference_T *)ref)->parameter->precision = precision; } /************************************************************************* * trio_get_base / trio_set_base [public] */ int trio_get_base(void *ref) { return (((reference_T *)ref)->parameter->base); } void trio_set_base(void *ref, int base) { ((reference_T *)ref)->parameter->base = base; } /************************************************************************* * trio_get_long / trio_set_long [public] */ int trio_get_long(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_LONG); } void trio_set_long(void *ref, int is_long) { if (is_long) ((reference_T *)ref)->parameter->flags |= FLAGS_LONG; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_LONG; } /************************************************************************* * trio_get_longlong / trio_set_longlong [public] */ int trio_get_longlong(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_QUAD); } void trio_set_longlong(void *ref, int is_longlong) { if (is_longlong) ((reference_T *)ref)->parameter->flags |= FLAGS_QUAD; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_QUAD; } /************************************************************************* * trio_get_longdouble / trio_set_longdouble [public] */ int trio_get_longdouble(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_LONGDOUBLE); } void trio_set_longdouble(void *ref, int is_longdouble) { if (is_longdouble) ((reference_T *)ref)->parameter->flags |= FLAGS_LONGDOUBLE; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_LONGDOUBLE; } /************************************************************************* * trio_get_short / trio_set_short [public] */ int trio_get_short(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_SHORT); } void trio_set_short(void *ref, int is_short) { if (is_short) ((reference_T *)ref)->parameter->flags |= FLAGS_SHORT; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_SHORT; } /************************************************************************* * trio_get_shortshort / trio_set_shortshort [public] */ int trio_get_shortshort(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_SHORTSHORT); } void trio_set_shortshort(void *ref, int is_shortshort) { if (is_shortshort) ((reference_T *)ref)->parameter->flags |= FLAGS_SHORTSHORT; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_SHORTSHORT; } /************************************************************************* * trio_get_alternative / trio_set_alternative [public] */ int trio_get_alternative(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_ALTERNATIVE); } void trio_set_alternative(void *ref, int is_alternative) { if (is_alternative) ((reference_T *)ref)->parameter->flags |= FLAGS_ALTERNATIVE; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_ALTERNATIVE; } /************************************************************************* * trio_get_alignment / trio_set_alignment [public] */ int trio_get_alignment(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_LEFTADJUST); } void trio_set_alignment(void *ref, int is_leftaligned) { if (is_leftaligned) ((reference_T *)ref)->parameter->flags |= FLAGS_LEFTADJUST; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_LEFTADJUST; } /************************************************************************* * trio_get_spacing /trio_set_spacing [public] */ int trio_get_spacing(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_SPACE); } void trio_set_spacing(void *ref, int is_space) { if (is_space) ((reference_T *)ref)->parameter->flags |= FLAGS_SPACE; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_SPACE; } /************************************************************************* * trio_get_sign / trio_set_sign [public] */ int trio_get_sign(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_SHOWSIGN); } void trio_set_sign(void *ref, int is_sign) { if (is_sign) ((reference_T *)ref)->parameter->flags |= FLAGS_SHOWSIGN; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_SHOWSIGN; } /************************************************************************* * trio_get_padding / trio_set_padding [public] */ int trio_get_padding(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_NILPADDING); } void trio_set_padding(void *ref, int is_padding) { if (is_padding) ((reference_T *)ref)->parameter->flags |= FLAGS_NILPADDING; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_NILPADDING; } /************************************************************************* * trio_get_quote / trio_set_quote [public] */ int trio_get_quote(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_QUOTE); } void trio_set_quote(void *ref, int is_quote) { if (is_quote) ((reference_T *)ref)->parameter->flags |= FLAGS_QUOTE; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_QUOTE; } /************************************************************************* * trio_get_upper / trio_set_upper [public] */ int trio_get_upper(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_UPPER); } void trio_set_upper(void *ref, int is_upper) { if (is_upper) ((reference_T *)ref)->parameter->flags |= FLAGS_UPPER; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_UPPER; } /************************************************************************* * trio_get_largest / trio_set_largest [public] */ #if defined(TRIO_C99) int trio_get_largest(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_INTMAX_T); } void trio_set_largest(void *ref, int is_largest) { if (is_largest) ((reference_T *)ref)->parameter->flags |= FLAGS_INTMAX_T; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_INTMAX_T; } #endif /************************************************************************* * trio_get_ptrdiff / trio_set_ptrdiff [public] */ #if defined(TRIO_C99) int trio_get_ptrdiff(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_PTRDIFF_T); } void trio_set_ptrdiff(void *ref, int is_ptrdiff) { if (is_ptrdiff) ((reference_T *)ref)->parameter->flags |= FLAGS_PTRDIFF_T; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_PTRDIFF_T; } #endif /************************************************************************* * trio_get_size / trio_set_size [public] */ #if defined(TRIO_C99) int trio_get_size(void *ref) { return (((reference_T *)ref)->parameter->flags & FLAGS_SIZE_T); } void trio_set_size(void *ref, int is_size) { if (is_size) ((reference_T *)ref)->parameter->flags |= FLAGS_SIZE_T; else ((reference_T *)ref)->parameter->flags &= ~FLAGS_SIZE_T; } #endif /************************************************************************* * trio_print_int [public] */ void trio_print_int(void *ref, int number) { reference_T *self = (reference_T *)ref; TrioWriteNumber(self->data, (SLONGEST)number, self->parameter->flags, self->parameter->width, self->parameter->precision, self->parameter->base); } /************************************************************************* * trio_print_uint [public] */ void trio_print_uint(void *ref, unsigned int number) { reference_T *self = (reference_T *)ref; TrioWriteNumber(self->data, (SLONGEST)number, self->parameter->flags | FLAGS_UNSIGNED, self->parameter->width, self->parameter->precision, self->parameter->base); } /************************************************************************* * trio_print_double [public] */ void trio_print_double(void *ref, double number) { reference_T *self = (reference_T *)ref; TrioWriteDouble(self->data, number, self->parameter->flags, self->parameter->width, self->parameter->precision, self->parameter->base); } /************************************************************************* * trio_print_string [public] */ void trio_print_string(void *ref, char *string) { reference_T *self = (reference_T *)ref; TrioWriteString(self->data, string, self->parameter->flags, self->parameter->width, self->parameter->precision); } /************************************************************************* * trio_print_pointer [public] */ void trio_print_pointer(void *ref, void *pointer) { reference_T *self = (reference_T *)ref; unsigned long flags; LONGLONG number; if (NULL == pointer) { const char *string = null; while (*string) self->data->OutStream(self->data, *string++); } else { /* * The subtraction of the null pointer is a workaround * to avoid a compiler warning. The performance overhead * is negligible (and likely to be removed by an * optimising compiler). The (char *) casting is done * to please ANSI C++. */ number = (ULONGLONG)((char *)pointer - (char *)0); /* Shrink to size of pointer */ number &= (ULONGLONG)-1; flags = self->parameter->flags; flags |= (FLAGS_UNSIGNED | FLAGS_ALTERNATIVE | FLAGS_NILPADDING); TrioWriteNumber(self->data, number, flags, POINTER_WIDTH, NO_PRECISION, BASE_HEX); } } /************************************************************************* * trio_print_ref [public] */ int trio_print_ref(void *ref, const char *format, ...) { int status; va_list arglist; assert(VALID(format)); va_start(arglist, format); status = TrioFormatRef((reference_T *)ref, format, arglist, NULL); va_end(arglist); return status; } /************************************************************************* * trio_vprint_ref [public] */ int trio_vprint_ref(void *ref, const char *format, va_list arglist) { assert(VALID(format)); return TrioFormatRef((reference_T *)ref, format, arglist, NULL); } /************************************************************************* * trio_printv_ref [public] */ int trio_printv_ref(void *ref, const char *format, void **argarray) { assert(VALID(format)); return TrioFormatRef((reference_T *)ref, format, NULL, argarray); } /************************************************************************* * * @SCANNING * ************************************************************************/ /************************************************************************* * TrioSkipWhitespaces [private] */ static int TrioSkipWhitespaces(trio_T *self) { int ch; ch = self->current; //add in check for EOF to silence coverity warnings while (ch != EOF && isspace(ch)) { self->InStream(self, &ch); } return ch; } /************************************************************************* * TrioGetCharacterClass [private] * * FIXME: * multibyte */ static int TrioGetCharacterClass(const char *format, int *indexPointer, int *flagsPointer, int *characterclass) { int index = *indexPointer; int i; char ch; char range_begin; char range_end; *flagsPointer &= ~FLAGS_EXCLUDE; if (format[index] == QUALIFIER_CIRCUMFLEX) { *flagsPointer |= FLAGS_EXCLUDE; index++; } /* * If the ungroup character is at the beginning of the scanlist, * it will be part of the class, and a second ungroup character * must follow to end the group. */ if (format[index] == SPECIFIER_UNGROUP) { characterclass[(int)SPECIFIER_UNGROUP]++; index++; } /* * Minus is used to specify ranges. To include minus in the class, * it must be at the beginning of the list */ if (format[index] == QUALIFIER_MINUS) { characterclass[(int)QUALIFIER_MINUS]++; index++; } /* Collect characters */ for (ch = format[index]; ch != SPECIFIER_UNGROUP && ch != NIL; ch = format[++index]) { switch (ch) { case QUALIFIER_MINUS: /* Scanlist ranges */ /* * Both C99 and UNIX98 describes ranges as implementation- * defined. * * We support the following behaviour (although this may * change as we become wiser) * - only increasing ranges, ie. [a-b] but not [b-a] * - transitive ranges, ie. [a-b-c] == [a-c] * - trailing minus, ie. [a-] is interpreted as an 'a' * and a '-' * - duplicates (although we can easily convert these * into errors) */ range_begin = format[index - 1]; range_end = format[++index]; if (range_end == SPECIFIER_UNGROUP) { /* Trailing minus is included */ characterclass[(int)ch]++; break; /* for */ } if (range_end == NIL) return TRIO_ERROR_RETURN(TRIO_EINVAL, index); if (range_begin > range_end) return TRIO_ERROR_RETURN(TRIO_ERANGE, index); for (i = (int)range_begin; i <= (int)range_end; i++) characterclass[i]++; break; case QUALIFIER_COLON: /* Character class expressions */ if (StrEqualMax(CLASS_ALNUM, sizeof(CLASS_ALNUM) - 1, &format[index])) { for (i = 0; i < MAX_CHARACTER_CLASS; i++) if (isalnum(i)) characterclass[i]++; index += sizeof(CLASS_ALNUM) - 1; } else if (StrEqualMax(CLASS_ALPHA, sizeof(CLASS_ALPHA) - 1, &format[index])) { for (i = 0; i < MAX_CHARACTER_CLASS; i++) if (isalpha(i)) characterclass[i]++; index += sizeof(CLASS_ALPHA) - 1; } else if (StrEqualMax(CLASS_CNTRL, sizeof(CLASS_CNTRL) - 1, &format[index])) { for (i = 0; i < MAX_CHARACTER_CLASS; i++) if (iscntrl(i)) characterclass[i]++; index += sizeof(CLASS_CNTRL) - 1; } else if (StrEqualMax(CLASS_DIGIT, sizeof(CLASS_DIGIT) - 1, &format[index])) { for (i = 0; i < MAX_CHARACTER_CLASS; i++) if (isdigit(i)) characterclass[i]++; index += sizeof(CLASS_DIGIT) - 1; } else if (StrEqualMax(CLASS_GRAPH, sizeof(CLASS_GRAPH) - 1, &format[index])) { for (i = 0; i < MAX_CHARACTER_CLASS; i++) if (isgraph(i)) characterclass[i]++; index += sizeof(CLASS_GRAPH) - 1; } else if (StrEqualMax(CLASS_LOWER, sizeof(CLASS_LOWER) - 1, &format[index])) { for (i = 0; i < MAX_CHARACTER_CLASS; i++) if (islower(i)) characterclass[i]++; index += sizeof(CLASS_LOWER) - 1; } else if (StrEqualMax(CLASS_PRINT, sizeof(CLASS_PRINT) - 1, &format[index])) { for (i = 0; i < MAX_CHARACTER_CLASS; i++) if (isprint(i)) characterclass[i]++; index += sizeof(CLASS_PRINT) - 1; } else if (StrEqualMax(CLASS_PUNCT, sizeof(CLASS_PUNCT) - 1, &format[index])) { for (i = 0; i < MAX_CHARACTER_CLASS; i++) if (ispunct(i)) characterclass[i]++; index += sizeof(CLASS_PUNCT) - 1; } else if (StrEqualMax(CLASS_SPACE, sizeof(CLASS_SPACE) - 1, &format[index])) { for (i = 0; i < MAX_CHARACTER_CLASS; i++) if (isspace(i)) characterclass[i]++; index += sizeof(CLASS_SPACE) - 1; } else if (StrEqualMax(CLASS_UPPER, sizeof(CLASS_UPPER) - 1, &format[index])) { for (i = 0; i < MAX_CHARACTER_CLASS; i++) if (isupper(i)) characterclass[i]++; index += sizeof(CLASS_UPPER) - 1; } else if (StrEqualMax(CLASS_XDIGIT, sizeof(CLASS_XDIGIT) - 1, &format[index])) { for (i = 0; i < MAX_CHARACTER_CLASS; i++) if (isxdigit(i)) characterclass[i]++; index += sizeof(CLASS_XDIGIT) - 1; } else { characterclass[(int)ch]++; } break; default: characterclass[(int)ch]++; break; } } return 0; } /************************************************************************* * TrioReadNumber [private] * * We implement our own number conversion in preference of strtol and * strtoul, because we must handle 'long long' and thousand separators. */ static BOOLEAN_T TrioReadNumber(trio_T *self, LONGEST *target, int flags, int width, int base) { LONGEST number = 0; int digit; int count; BOOLEAN_T isNegative = FALSE; int j; assert(VALID(self)); assert(VALID(self->InStream)); assert((base >= MIN_BASE && base <= MAX_BASE) || (base == NO_BASE)); TrioSkipWhitespaces(self); if (!(flags & FLAGS_UNSIGNED)) { /* Leading sign */ if (self->current == '+') { self->InStream(self, NULL); } else if (self->current == '-') { self->InStream(self, NULL); isNegative = TRUE; } } count = self->processed; if (flags & FLAGS_ALTERNATIVE) { switch (base) { case NO_BASE: case BASE_OCTAL: case BASE_HEX: case BASE_BINARY: if (self->current == '0') { self->InStream(self, NULL); if (self->current) { if ((base == BASE_HEX) && (toupper(self->current) == 'X')) { self->InStream(self, NULL); } else if ((base == BASE_BINARY) && (toupper(self->current) == 'B')) { self->InStream(self, NULL); } } } else return FALSE; break; default: break; } } while (((width == NO_WIDTH) || (self->processed - count < width)) && (! ((self->current == EOF) || isspace(self->current)))) { if (isascii(self->current)) { digit = internalDigitArray[self->current]; /* Abort if digit is not allowed in the specified base */ if ((digit == -1) || (digit >= base)) break; } else if (flags & FLAGS_QUOTE) { /* Compare with thousands separator */ for (j = 0; internalThousandSeparator[j] && self->current; j++) { if (internalThousandSeparator[j] != self->current) break; self->InStream(self, NULL); } if (internalThousandSeparator[j]) break; /* Mismatch */ else continue; /* Match */ } else break; number *= base; number += digit; self->InStream(self, NULL); } /* Was anything read at all? */ if (self->processed == count) return FALSE; if (target) *target = (isNegative) ? -number : number; return TRUE; } /************************************************************************* * TrioReadChar [private] */ static BOOLEAN_T TrioReadChar(trio_T *self, char *target, int width) { int i; assert(VALID(self)); assert(VALID(self->InStream)); for (i = 0; (self->current != EOF) && (i < width); i++) { if (target) target[i] = self->current; self->InStream(self, NULL); } return TRUE; } /************************************************************************* * TrioReadString [private] */ static BOOLEAN_T TrioReadString(trio_T *self, char *target, int flags, int width) { int i; char ch; LONGEST number; assert(VALID(self)); assert(VALID(self->InStream)); TrioSkipWhitespaces(self); /* * Continue until end of string is reached, a whitespace is encountered, * or width is exceeded */ for (i = 0; ((width == NO_WIDTH) || (i < width)) && (! ((self->current == EOF) || isspace(self->current))); i++) { ch = self->current; if ((flags & FLAGS_ALTERNATIVE) && (ch == CHAR_BACKSLASH)) { self->InStream(self, NULL); switch (self->current) { case '\\': ch = '\\'; break; case 'a': ch = '\a'; break; case 'b': ch = '\b'; break; case 'f': ch = '\f'; break; case 'n': ch = '\n'; break; case 'r': ch = '\r'; break; case 't': ch = '\t'; break; case 'v': ch = '\v'; break; default: if (isdigit(self->current)) { /* Read octal number */ if (!TrioReadNumber(self, &number, 0, 3, BASE_OCTAL)) return FALSE; ch = (char)number; } else if (toupper(self->current) == 'X') { /* Read hexadecimal number */ self->InStream(self, NULL); if (!TrioReadNumber(self, &number, 0, 2, BASE_HEX)) return FALSE; ch = (char)number; } else { ch = self->current; } break; } } if (target) target[i] = ch; self->InStream(self, NULL); } if (target) target[i] = NIL; return TRUE; } /************************************************************************* * TrioReadGroup [private] * * FIXME: characterclass does not work with multibyte characters */ static BOOLEAN_T TrioReadGroup(trio_T *self, char *target, int *characterclass, int flags, int width) { int ch; int i; assert(VALID(self)); assert(VALID(self->InStream)); ch = self->current; for (i = 0; ((width == NO_WIDTH) || (i < width)) && (! ((ch == EOF) || (((flags & FLAGS_EXCLUDE) != 0) ^ (characterclass[ch] == 0)))); i++) { if (target) target[i] = (char)ch; self->InStream(self, &ch); } if (target) target[i] = NIL; return TRUE; } /************************************************************************* * TrioReadDouble [private] * * FIXME: * add hex-float format * add long double */ static BOOLEAN_T TrioReadDouble(trio_T *self, double *target, int flags, int width) { int ch; char doubleString[512] = ""; int index = 0; int start; int j; if ((width == NO_WIDTH) || (width > (int)sizeof(doubleString) - 1)) width = sizeof(doubleString) - 1; TrioSkipWhitespaces(self); /* * Read entire double number from stream. StrToDouble requires a * string as input, but InStream can be anything, so we have to * collect all characters. */ ch = self->current; if ((ch == '+') || (ch == '-')) { doubleString[index++] = ch; self->InStream(self, &ch); width--; } start = index; #if defined(USE_NON_NUMBERS) switch (ch) { case 'n': case 'N': /* Not-a-number */ if (index != 0) break; /* FALLTHROUGH */ case 'i': case 'I': /* Infinity */ while (isalpha(ch) && (index - start < width)) { doubleString[index++] = ch; self->InStream(self, &ch); } doubleString[index] = NIL; /* Case insensitive string comparison */ if (StrEqual(&doubleString[start], INFINITE_UPPER) || StrEqual(&doubleString[start], LONG_INFINITE_UPPER)) { *target = ((start == 1 && doubleString[0] == '-')) ? -HUGE_VAL : HUGE_VAL; return TRUE; } if (StrEqual(doubleString, NAN_LOWER)) { /* NaN must not have a preceeding + nor - */ *target = NAN; return TRUE; } return FALSE; default: break; } #endif /* defined(USE_NON_NUMBERS) */ while ((ch != EOF) && (index - start < width)) { /* Integer part */ if (isdigit(ch)) { doubleString[index++] = ch; self->InStream(self, &ch); } else if (flags & FLAGS_QUOTE) { /* Compare with thousands separator */ for (j = 0; internalThousandSeparator[j] && self->current; j++) { if (internalThousandSeparator[j] != self->current) break; self->InStream(self, &ch); } if (internalThousandSeparator[j]) break; /* Mismatch */ else continue; /* Match */ } else break; /* while */ } if (ch == '.') { /* Decimal part */ doubleString[index++] = ch; self->InStream(self, &ch); while (isdigit(ch) && (index - start < width)) { doubleString[index++] = ch; self->InStream(self, &ch); } if ((ch == 'e') || (ch == 'E')) { /* Exponent */ doubleString[index++] = ch; self->InStream(self, &ch); if ((ch == '+') || (ch == '-')) { doubleString[index++] = ch; self->InStream(self, &ch); } while (isdigit(ch) && (index - start < width)) { doubleString[index++] = ch; self->InStream(self, &ch); } } } if ((index == start) || (*doubleString == NIL)) return FALSE; if (flags & FLAGS_LONGDOUBLE) /* *longdoublePointer = StrToLongDouble()*/; else { *target = StrToDouble(doubleString, NULL); } return TRUE; } /************************************************************************* * TrioReadPointer [private] */ static BOOLEAN_T TrioReadPointer(trio_T *self, void **target, int flags) { LONGEST number; char buffer[sizeof(null)]; flags |= (FLAGS_UNSIGNED | FLAGS_ALTERNATIVE | FLAGS_NILPADDING); if (TrioReadNumber(self, &number, flags, POINTER_WIDTH, BASE_HEX)) { /* * The strange assignment of number is a workaround for a compiler * warning */ if (target) *target = (char *)0 + number; return TRUE; } else if (TrioReadString(self, (flags & FLAGS_IGNORE) ? NULL : buffer, 0, sizeof(null) - 1)) { if (StrEqualCase(buffer, null)) { if (target) *target = NULL; return TRUE; } } return FALSE; } /************************************************************************* * TrioScan [private] */ static int TrioScan(const void *source, size_t sourceSize, void (*InStream)(trio_T *, int *), const char *format, va_list arglist, void **argarray) { #if defined(USE_MULTIBYTE) int charlen; #endif int status; int assignment; parameter_T parameters[MAX_PARAMETERS]; trio_T internalData; trio_T *data; int ch; int cnt; int index; /* Index of format string */ int i; /* Index of current parameter */ int flags; int width; int base; void *pointer; assert(VALID(InStream)); assert(VALID(format)); assert(VALID(arglist) || VALID(argarray)); memset(&internalData, 0, sizeof(internalData)); data = &internalData; data->InStream = InStream; data->location = source; data->max = sourceSize; #if defined(USE_LOCALE) if (NULL == internalLocaleValues) { TrioSetLocale(); } #endif if (internalDigitsUnconverted) { memset(internalDigitArray, -1, sizeof(internalDigitArray)); for (i = 0; i < (int)sizeof(internalDigitsLower) - 1; i++) { internalDigitArray[(int)internalDigitsLower[i]] = i; internalDigitArray[(int)internalDigitsUpper[i]] = i; } internalDigitsUnconverted = FALSE; } status = TrioPreprocess(TYPE_SCAN, format, parameters, arglist, argarray); if (status < 0) return status; assignment = 0; i = 0; index = 0; data->InStream(data, &ch); #if defined(USE_MULTIBYTE) mblen(NULL, 0); #endif while (format[index]) { #if defined(USE_MULTIBYTE) if (! isascii(format[index])) { charlen = mblen(&format[index], MB_LEN_MAX); /* Compare multibyte characters in format string */ for (cnt = 0; cnt < charlen - 1; cnt++) { if (ch != format[index + cnt]) { return TRIO_ERROR_RETURN(TRIO_EINVAL, index); } data->InStream(data, &ch); } continue; /* while */ } #endif /* defined(USE_MULTIBYTE) */ if (EOF == ch) return EOF; if (CHAR_IDENTIFIER == format[index]) { if (CHAR_IDENTIFIER == format[index + 1]) { /* Two % in format matches one % in input stream */ if (CHAR_IDENTIFIER == ch) { data->InStream(data, &ch); index += 2; continue; /* while format chars left */ } else return TRIO_ERROR_RETURN(TRIO_EINVAL, index); } /* Skip the parameter entries */ while (parameters[i].type == FORMAT_PARAMETER) i++; flags = parameters[i].flags; /* Find width */ width = parameters[i].width; if (flags & FLAGS_WIDTH_PARAMETER) { /* Get width from parameter list */ width = (int)parameters[width].data.number.as_signed; } /* Find base */ base = parameters[i].base; if (flags & FLAGS_BASE_PARAMETER) { /* Get base from parameter list */ base = (int)parameters[base].data.number.as_signed; } switch (parameters[i].type) { case FORMAT_INT: { LONGEST number; if (0 == base) base = BASE_DECIMAL; if (!TrioReadNumber(data, &number, flags, width, base)) return assignment; assignment++; if (!(flags & FLAGS_IGNORE)) { pointer = parameters[i].data.pointer; #if defined(QUALIFIER_SIZE_T) || defined(QUALIFIER_SIZE_T_UPPER) if (flags & FLAGS_SIZE_T) *(size_t *)pointer = (size_t)number; else #endif #if defined(QUALIFIER_PTRDIFF_T) if (flags & FLAGS_PTRDIFF_T) *(ptrdiff_t *)pointer = (ptrdiff_t)number; else #endif #if defined(QUALIFIER_INTMAX_T) if (flags & FLAGS_INTMAX_T) *(intmax_t *)pointer = (intmax_t)number; else #endif if (flags & FLAGS_QUAD) *(ULONGLONG int *)pointer = (ULONGLONG)number; else if (flags & FLAGS_LONG) *(long int *)pointer = (long int)number; else if (flags & FLAGS_SHORT) *(short int *)pointer = (short int)number; else *(int *)pointer = (int)number; } } break; /* FORMAT_INT */ case FORMAT_STRING: if (!TrioReadString(data, (flags & FLAGS_IGNORE) ? NULL : parameters[i].data.string, flags, width)) return assignment; assignment++; break; /* FORMAT_STRING */ case FORMAT_DOUBLE: if (!TrioReadDouble(data, (flags & FLAGS_IGNORE) ? NULL : parameters[i].data.doublePointer, flags, width)) return assignment; assignment++; break; /* FORMAT_DOUBLE */ case FORMAT_GROUP: { int characterclass[MAX_CHARACTER_CLASS + 1]; int rc; index += 2; memset(characterclass, 0, sizeof(characterclass)); rc = TrioGetCharacterClass(format, &index, &flags, characterclass); if (rc < 0) return rc; if (!TrioReadGroup(data, (flags & FLAGS_IGNORE) ? NULL : parameters[i].data.string, characterclass, flags, parameters[i].width)) return assignment; assignment++; } break; /* FORMAT_GROUP */ case FORMAT_COUNT: pointer = parameters[i].data.pointer; if (NULL != pointer) { #if defined(QUALIFIER_SIZE_T) || defined(QUALIFIER_SIZE_T_UPPER) if (flags & FLAGS_SIZE_T) *(size_t *)pointer = (size_t)data->committed; else #endif #if defined(QUALIFIER_PTRDIFF_T) if (flags & FLAGS_PTRDIFF_T) *(ptrdiff_t *)pointer = (ptrdiff_t)data->committed; else #endif #if defined(QUALIFIER_INTMAX_T) if (flags & FLAGS_INTMAX_T) *(intmax_t *)pointer = (intmax_t)data->committed; else #endif if (flags & FLAGS_QUAD) { *(ULONGLONG int *)pointer = (ULONGLONG)data->committed; } else if (flags & FLAGS_LONG) { *(long int *)pointer = (long int)data->committed; } else if (flags & FLAGS_SHORT) { *(short int *)pointer = (short int)data->committed; } else { *(int *)pointer = (int)data->committed; } } break; /* FORMAT_COUNT */ case FORMAT_CHAR: if (!TrioReadChar(data, (flags & FLAGS_IGNORE) ? NULL : parameters[i].data.string, (width == NO_WIDTH) ? 1 : width)) return assignment; assignment++; break; /* FORMAT_CHAR */ case FORMAT_POINTER: if (!TrioReadPointer(data, (flags & FLAGS_IGNORE) ? NULL : (void **)parameters[i].data.pointer, flags)) return assignment; assignment++; break; /* FORMAT_POINTER */ case FORMAT_PARAMETER: break; /* FORMAT_PARAMETER */ default: return TRIO_ERROR_RETURN(TRIO_EINVAL, index); } ch = data->current; index = parameters[i].indexAfterSpecifier; i++; } else /* Not an % identifier */ { if (isspace((int)format[index])) { /* Whitespaces may match any amount of whitespaces */ ch = TrioSkipWhitespaces(data); } else if (ch == format[index]) { data->InStream(data, &ch); } else return TRIO_ERROR_RETURN(TRIO_EINVAL, index); index++; } } return assignment; } /************************************************************************* * TrioInStreamFile [private] */ static void TrioInStreamFile(trio_T *self, int *intPointer) { FILE *file = (FILE *)self->location; assert(VALID(self)); assert(VALID(file)); self->current = fgetc(file); self->processed++; self->committed++; if (VALID(intPointer)) { *intPointer = self->current; } } /************************************************************************* * TrioInStreamFileDescriptor [private] */ static void TrioInStreamFileDescriptor(trio_T *self, int *intPointer) { int fd = *((int *)self->location); int size; unsigned char input; assert(VALID(self)); size = read(fd, &input, sizeof(char)); self->current = (size == 0) ? EOF : input; self->processed++; self->committed++; if (VALID(intPointer)) { *intPointer = self->current; } } /************************************************************************* * TrioInStreamString [private] */ static void TrioInStreamString(trio_T *self, int *intPointer) { unsigned char **buffer; assert(VALID(self)); assert(VALID(self->InStream)); assert(VALID(self->location)); buffer = (unsigned char **)self->location; self->current = (*buffer)[0]; if (self->current == NIL) self->current = EOF; (*buffer)++; self->processed++; self->committed++; if (VALID(intPointer)) { *intPointer = self->current; } } /************************************************************************* * scanf */ int trio_scanf(const char *format, ...) { int status; va_list args; assert(VALID(format)); va_start(args, format); status = TrioScan(stdin, 0, TrioInStreamFile, format, args, NULL); va_end(args); return status; } int trio_vscanf(const char *format, va_list args) { assert(VALID(format)); assert(VALID(args)); return TrioScan(stdin, 0, TrioInStreamFile, format, args, NULL); } int trio_scanfv(const char *format, void **args) { assert(VALID(format)); assert(VALID(args)); return TrioScan(stdin, 0, TrioInStreamFile, format, NULL, args); } /************************************************************************* * fscanf */ int trio_fscanf(FILE *file, const char *format, ...) { int status; va_list args; assert(VALID(file)); assert(VALID(format)); va_start(args, format); status = TrioScan(file, 0, TrioInStreamFile, format, args, NULL); va_end(args); return status; } int trio_vfscanf(FILE *file, const char *format, va_list args) { assert(VALID(file)); assert(VALID(format)); assert(VALID(args)); return TrioScan(file, 0, TrioInStreamFile, format, args, NULL); } int trio_fscanfv(FILE *file, const char *format, void **args) { assert(VALID(file)); assert(VALID(format)); assert(VALID(args)); return TrioScan(file, 0, TrioInStreamFile, format, NULL, args); } /************************************************************************* * dscanf */ int trio_dscanf(int fd, const char *format, ...) { int status; va_list args; assert(VALID(format)); va_start(args, format); status = TrioScan(&fd, 0, TrioInStreamFileDescriptor, format, args, NULL); va_end(args); return status; } int trio_vdscanf(int fd, const char *format, va_list args) { assert(VALID(format)); assert(VALID(args)); return TrioScan(&fd, 0, TrioInStreamFileDescriptor, format, args, NULL); } int trio_dscanfv(int fd, const char *format, void **args) { assert(VALID(format)); assert(VALID(args)); return TrioScan(&fd, 0, TrioInStreamFileDescriptor, format, NULL, args); } /************************************************************************* * sscanf */ int trio_sscanf(const char *buffer, const char *format, ...) { int status; va_list args; assert(VALID(buffer)); assert(VALID(format)); va_start(args, format); status = TrioScan(&buffer, 0, TrioInStreamString, format, args, NULL); va_end(args); return status; } int trio_vsscanf(const char *buffer, const char *format, va_list args) { assert(VALID(buffer)); assert(VALID(format)); assert(VALID(args)); return TrioScan(&buffer, 0, TrioInStreamString, format, args, NULL); } int trio_sscanfv(const char *buffer, const char *format, void **args) { assert(VALID(buffer)); assert(VALID(format)); assert(VALID(args)); return TrioScan(&buffer, 0, TrioInStreamString, format, NULL, args); } libwmf-0.2.13/src/extra/trio/trio.h000066400000000000000000000126431441723000300170720ustar00rootroot00000000000000/************************************************************************* * * $Id: trio.h,v 1.2 2001/10/23 11:24:12 fjfranklin Exp $ * * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. * ************************************************************************/ #ifndef TRIO_TRIO_H #define TRIO_TRIO_H #include #include #include /* * Use autoconf defines if present. Packages using trio must define * HAVE_CONFIG_H as a compiler option themselves. */ #if defined(HAVE_CONFIG_H) # include #endif #if !defined(WITHOUT_TRIO) /* * Error codes. * * Remember to add a textual description to trio_strerror. */ enum { TRIO_EOF = 1, TRIO_EINVAL = 2, TRIO_ETOOMANY = 3, TRIO_EDBLREF = 4, TRIO_EGAP = 5, TRIO_ENOMEM = 6, TRIO_ERANGE = 7, }; /* Error macros */ #define TRIO_ERROR_CODE(x) ((-(x)) & 0x00FF) #define TRIO_ERROR_POSITION(x) ((-(x)) >> 8) #define TRIO_ERROR_NAME(x) trio_strerror(x) const char *trio_strerror(int); /************************************************************************* * Print Functions */ int trio_printf(const char *format, ...); int trio_vprintf(const char *format, va_list args); int trio_printfv(const char *format, void **args); int trio_fprintf(FILE *file, const char *format, ...); int trio_vfprintf(FILE *file, const char *format, va_list args); int trio_fprintfv(FILE *file, const char *format, void **args); int trio_dprintf(int fd, const char *format, ...); int trio_vdprintf(int fd, const char *format, va_list args); int trio_dprintfv(int fd, const char *format, void **args); /* trio_sprintf(target, format, ...) * trio_snprintf(target, maxsize, format, ...) * * Build 'target' according to 'format' and succesive * arguments. This is equal to the sprintf() and * snprintf() functions. */ int trio_sprintf(char *buffer, const char *format, ...); int trio_vsprintf(char *buffer, const char *format, va_list args); int trio_sprintfv(char *buffer, const char *format, void **args); int trio_snprintf(char *buffer, size_t max, const char *format, ...); int trio_vsnprintf(char *buffer, size_t bufferSize, const char *format, va_list args); int trio_snprintfv(char *buffer, size_t bufferSize, const char *format, void **args); int trio_snprintfcat(char *buffer, size_t max, const char *format, ...); int trio_vsnprintfcat(char *buffer, size_t bufferSize, const char *format, va_list args); char *trio_aprintf(const char *format, ...); char *trio_vaprintf(const char *format, va_list args); int trio_asprintf(char **ret, const char *format, ...); int trio_vasprintf(char **ret, const char *format, va_list args); /************************************************************************* * Scan Functions */ int trio_scanf(const char *format, ...); int trio_vscanf(const char *format, va_list args); int trio_scanfv(const char *format, void **args); int trio_fscanf(FILE *file, const char *format, ...); int trio_vfscanf(FILE *file, const char *format, va_list args); int trio_fscanfv(FILE *file, const char *format, void **args); int trio_dscanf(int fd, const char *format, ...); int trio_vdscanf(int fd, const char *format, va_list args); int trio_dscanfv(int fd, const char *format, void **args); int trio_sscanf(const char *buffer, const char *format, ...); int trio_vsscanf(const char *buffer, const char *format, va_list args); int trio_sscanfv(const char *buffer, const char *format, void **args); /************************************************************************* * Renaming */ #ifdef TRIO_REPLACE_STDIO /* Replace the functions */ #ifndef HAVE_PRINTF # define printf trio_printf #endif #ifndef HAVE_VPRINTF # define vprintf trio_vprintf #endif #ifndef HAVE_FPRINTF # define fprintf trio_fprintf #endif #ifndef HAVE_VFPRINTF # define vfprintf trio_vfprintf #endif #ifndef HAVE_SPRINTF # define sprintf trio_sprintf #endif #ifndef HAVE_VSPRINTF # define vsprintf trio_vsprintf #endif #ifndef HAVE_SNPRINTF # define snprintf trio_snprintf #endif #ifndef HAVE_VSNPRINTF # define vsnprintf trio_vsnprintf #endif #ifndef HAVE_SCANF # define scanf trio_scanf #endif #ifndef HAVE_VSCANF # define vscanf trio_vscanf #endif #ifndef HAVE_FSCANF # define fscanf trio_fscanf #endif #ifndef HAVE_VFSCANF # define vfscanf trio_vfscanf #endif #ifndef HAVE_SSCANF # define sscanf trio_sscanf #endif #ifndef HAVE_VSSCANF # define vsscanf trio_vsscanf #endif /* These aren't stdio functions, but we make them look similar */ #define dprintf trio_dprintf #define vdprintf trio_vdprintf #define aprintf trio_aprintf #define vaprintf trio_vaprintf #define asprintf trio_asprintf #define vasprintf trio_vasprintf #define dscanf trio_dscanf #define vdscanf trio_vdscanf #endif /* strio compatible names */ #define StrScan trio_sscanf #define StrFormat trio_sprintf #define StrFormatMax trio_snprintf #define StrFormatAlloc trio_aprintf #define StrFormatAppendMax trio_snprintfcat #endif /* TRIO_IGNORE */ #endif /* TRIO_TRIO_H */ libwmf-0.2.13/src/extra/trio/triop.h000066400000000000000000000073141441723000300172510ustar00rootroot00000000000000/************************************************************************* * * $Id: triop.h,v 1.1 2001/06/07 08:23:02 fjfranklin Exp $ * * Copyright (C) 2000 Bjorn Reese and Daniel Stenberg. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. * ************************************************************************ * * Private functions, types, etc. used for callback functions. * * The ref pointer is an opaque type and should remain as such. * Private data must only be accessible through the getter and * setter functions. * ************************************************************************/ #ifndef TRIO_TRIOP_H #define TRIO_TRIOP_H #if defined(__STDC__) && (__STDC_VERSION__ >= 199901L) # define TRIO_C99 #endif #define TRIO_BSD #define TRIO_GNU #define TRIO_MISC #define TRIO_UNIX98 #define TRIO_EXTENSION #define TRIO_ERRORS typedef int (*trio_callback_t)(void *ref); void *trio_register(trio_callback_t callback, const char *name); void trio_unregister(void *handle); const char *trio_get_format(void *ref); void *trio_get_argument(void *ref); /* Modifiers */ int trio_get_width(void *ref); void trio_set_width(void *ref, int width); int trio_get_precision(void *ref); void trio_set_precision(void *ref, int precision); int trio_get_base(void *ref); void trio_set_base(void *ref, int base); int trio_get_padding(void *ref); void trio_set_padding(void *ref, int is_padding); int trio_get_short(void *ref); /* h */ void trio_set_shortshort(void *ref, int is_shortshort); int trio_get_shortshort(void *ref); /* hh */ void trio_set_short(void *ref, int is_short); int trio_get_long(void *ref); /* l */ void trio_set_long(void *ref, int is_long); int trio_get_longlong(void *ref); /* ll */ void trio_set_longlong(void *ref, int is_longlong); int trio_get_longdouble(void *ref); /* L */ void trio_set_longdouble(void *ref, int is_longdouble); int trio_get_alternative(void *ref); /* # */ void trio_set_alternative(void *ref, int is_alternative); int trio_get_alignment(void *ref); /* - */ void trio_set_alignment(void *ref, int is_leftaligned); int trio_get_spacing(void *ref); /* (space) */ void trio_set_spacing(void *ref, int is_space); int trio_get_sign(void *ref); /* + */ void trio_set_sign(void *ref, int is_showsign); int trio_get_quote(void *ref); /* ' */ void trio_set_quote(void *ref, int is_quote); int trio_get_upper(void *ref); void trio_set_upper(void *ref, int is_upper); #if defined(TRIO_C99) int trio_get_largest(void *ref); /* j */ void trio_set_largest(void *ref, int is_largest); int trio_get_ptrdiff(void *ref); /* t */ void trio_set_ptrdiff(void *ref, int is_ptrdiff); int trio_get_size(void *ref); /* z / Z */ void trio_set_size(void *ref, int is_size); #endif /* Printing */ int trio_print_ref(void *ref, const char *format, ...); int trio_vprint_ref(void *ref, const char *format, va_list args); int trio_printv_ref(void *ref, const char *format, void **args); void trio_print_int(void *ref, int number); void trio_print_uint(void *ref, unsigned int number); /* void trio_print_long(void *ref, long number); */ /* void trio_print_ulong(void *ref, unsigned long number); */ void trio_print_double(void *ref, double number); void trio_print_string(void *ref, char *string); void trio_print_pointer(void *ref, void *pointer); #endif /* TRIO_TRIOP_H */ libwmf-0.2.13/src/font.c000066400000000000000000001172771441723000300147670ustar00rootroot00000000000000/* libwmf (font.c): library for wmf conversion Copyright (C) 2000,2001 Francis James Franklin The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ #include #include #include #include #include #ifdef HAVE_UNISTD_H #include #endif #include "wmfdefs.h" #include "font.h" #ifdef _WIN32 extern char* _libwmf_get_fontdir(); static char* _libwmf_get_xtra_fontmap (void) { static char retval[1000] = ""; if (retval[0] == '\0') { strcpy (retval, _libwmf_get_fontdir ()); strcat (retval, "\\share\\libwmf\\fonts\\fontmap"); } return retval; } #undef WMF_XTRA_FONTMAP #define WMF_XTRA_FONTMAP _libwmf_get_xtra_fontmap () static char* remap_font_file_name(wmfAPI* API,char* filename) { /* If filename is prefixed with the compile-time WMF_FONTDIR, * substitute the run-time font directory. */ char* retval; if (strncmp (filename, WMF_FONTDIR "/", strlen (WMF_FONTDIR "/")) == 0) { retval = wmf_malloc (API,strlen (filename) - strlen (WMF_FONTDIR) + strlen (_libwmf_get_fontdir ()) + 1); strcpy (retval,_libwmf_get_fontdir ()); strcat (retval,filename + strlen (WMF_FONTDIR)); } else { retval = wmf_strdup (API,filename); } return retval; } #endif static void ipa_font_add_wmf (wmfAPI* API,wmfFontMap* mapping) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; wmfFontMap* more; unsigned int i = 0; while (font_data->wmf[i].name) { if (strcmp (font_data->wmf[i].name,mapping->name) == 0) break; i++; } if (font_data->wmf[i].name) return; /* Entry exists already */ if ((i & 0x0f) == (unsigned int) 0x0f) { more = (wmfFontMap*) wmf_realloc (API,font_data->wmf,(i + 0x11) * sizeof (wmfFontMap)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } font_data->wmf = more; } font_data->wmf[i].name = wmf_strdup (API,mapping->name ); font_data->wmf[i].normal = wmf_strdup (API,mapping->normal ); font_data->wmf[i].italic = wmf_strdup (API,mapping->italic ); font_data->wmf[i].bold = wmf_strdup (API,mapping->bold ); font_data->wmf[i].bolditalic = wmf_strdup (API,mapping->bolditalic); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } i++; font_data->wmf[i].name = 0; } static void ipa_font_add_sub (wmfAPI* API,wmfMapping* mapping) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; wmfMapping* more; unsigned int i = 0; while (font_data->sub[i].name) { if (strcmp (font_data->sub[i].name,mapping->name) == 0) break; i++; } if (font_data->sub[i].name) return; /* Entry exists already */ if ((i & 0x0f) == (unsigned int) 0x0f) { more = (wmfMapping*) wmf_realloc (API,font_data->sub,(i + 0x11) * sizeof (wmfMapping)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } font_data->sub = more; } font_data->sub[i].name = wmf_strdup (API,mapping->name ); font_data->sub[i].mapping = wmf_strdup (API,mapping->mapping); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } i++; font_data->sub[i].name = 0; } static void ipa_font_add_ps (wmfAPI* API,wmfMapping* mapping) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; wmfFT_Mapping* more; unsigned int i = 0; while (font_data->ps[i].name) { if (strcmp (font_data->ps[i].name,mapping->name) == 0) break; i++; } if (font_data->ps[i].name) return; /* Entry exists already */ if ((i & 0x0f) == (unsigned int) 0x0f) { more = (wmfFT_Mapping*) wmf_realloc (API,font_data->ps,(i + 0x11) * sizeof (wmfFT_Mapping)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } font_data->ps = more; } font_data->ps[i].name = wmf_strdup (API,mapping->name ); font_data->ps[i].mapping = wmf_strdup (API,mapping->mapping); font_data->ps[i].encoding = mapping->encoding; if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } font_data->ps[i].face = 0; i++; font_data->ps[i].name = 0; } static void ipa_font_add_cache (wmfAPI* API,wmfFT_CacheEntry* entry) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; wmfFT_CacheEntry* more; unsigned int i = 0; while (font_data->cache[i].name) { if (strcmp (font_data->cache[i].path,entry->path) == 0) break; i++; } if (font_data->cache[i].name) return; /* Entry exists already */ if ((i & 0x0f) == (unsigned int) 0x0f) { more = (wmfFT_CacheEntry*) wmf_realloc (API,font_data->cache,(i + 0x11) * sizeof (wmfFT_CacheEntry)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } font_data->cache = more; } font_data->cache[i].name = wmf_strdup (API,entry->name); font_data->cache[i].path = wmf_strdup (API,entry->path); font_data->cache[i].face = entry->face; if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } i++; font_data->cache[i].name = 0; } char* wmf_ipa_font_lookup (wmfAPI* API,char* ps_name) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; unsigned int i = 0; while (font_data->cache[i].name) { if (strcmp (font_data->cache[i].name,ps_name) == 0) break; i++; } if (font_data->cache[i].name == 0) return (0); return (font_data->cache[i].path); } void wmf_ipa_font_init (wmfAPI* API,wmfAPI_Options* options) { wmfFontData* font_data = 0; wmfFontmapData* fontmap_data = 0; unsigned int i; unsigned int count; API->font_data = wmf_malloc (API,sizeof (wmfFontData)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } font_data = (wmfFontData*) API->font_data; font_data->map = wmf_ipa_font_map; font_data->stringwidth = wmf_ipa_font_stringwidth; font_data->user_data = wmf_malloc (API,sizeof (wmfFontmapData)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } fontmap_data = (wmfFontmapData*) font_data->user_data; API->fonts = (char**) wmf_malloc (API,16 * sizeof (char*)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } API->fonts[0] = 0; fontmap_data->fontdirs = (char**) wmf_malloc (API,16 * sizeof (char*)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } fontmap_data->fontdirs[0] = 0; fontmap_data->wmf = (wmfFontMap*) wmf_malloc (API,16 * sizeof (wmfFontMap)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } fontmap_data->wmf[0].name = 0; if ((API->flags & WMF_OPT_FONTMAP) && options->font.wmf) { i = 0; while (options->font.wmf[i].name) { ipa_font_add_wmf (API,&(options->font.wmf[i])); if (ERR (API)) break; i++; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } } count = sizeof WMFFontMap / sizeof (wmfFontMap); for (i = 0; i < count; i++) { ipa_font_add_wmf (API,&(WMFFontMap[i])); if (ERR (API)) break; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } fontmap_data->sub = (wmfMapping*) wmf_malloc (API,16 * sizeof (wmfMapping)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } fontmap_data->sub[0].name = 0; if ((API->flags & WMF_OPT_FONTMAP) && options->font.sub) { i = 0; while (options->font.sub[i].name) { ipa_font_add_sub (API,&(options->font.sub[i])); if (ERR (API)) break; i++; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } } count = sizeof SubFontMap / sizeof (wmfMapping); for (i = 0; i < count; i++) { ipa_font_add_sub (API,&(SubFontMap[i])); if (ERR (API)) break; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } fontmap_data->ps = (wmfFT_Mapping*) wmf_malloc (API,16 * sizeof (wmfFT_Mapping)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } fontmap_data->ps[0].name = 0; fontmap_data->cache = (wmfFT_CacheEntry*) wmf_malloc (API,16 * sizeof (wmfFT_CacheEntry)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } fontmap_data->cache[0].name = 0; if ((API->flags & WMF_OPT_FONTMAP) && options->font.ps) { i = 0; while (options->font.ps[i].name) { ipa_font_add_ps (API,&(options->font.ps[i])); if (ERR (API)) break; i++; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } } count = 13; for (i = 0; i < count; i++) { ipa_font_add_ps (API,&(PSFontMap[i])); if (ERR (API)) break; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } if (FT_Init_FreeType (&(fontmap_data->Library)) != 0) { WMF_ERROR (API,"Failed to initialize freetype..."); API->err = wmf_E_DeviceError; fontmap_data->Library = 0; } API->flags |= API_FTLIBRARY_OPEN; fontmap_data->FD.max = 0; fontmap_data->FD.len = 0; fontmap_data->FD.FI = 0; if (API->flags & WMF_OPT_SYS_FONTS) { if (API->flags & WMF_OPT_SYS_FONTMAP) { wmf_ipa_font_map_xml (API,&(fontmap_data->FD),options->sys_fontmap_file); } else { wmf_ipa_font_map_xml (API,&(fontmap_data->FD),WMF_SYS_FONTMAP); } } if (API->flags & WMF_OPT_XTRA_FONTS) { if (API->flags & WMF_OPT_XTRA_FONTMAP) { wmf_ipa_font_map_xml (API,&(fontmap_data->FD),options->xtra_fontmap_file); } else { wmf_ipa_font_map_xml (API,&(fontmap_data->FD),WMF_XTRA_FONTMAP); } } fontmap_data->GS.max = 0; fontmap_data->GS.len = 0; fontmap_data->GS.FI = 0; if (API->flags & WMF_OPT_GS_FONTMAP) { wmf_ipa_font_map_gs (API,&(fontmap_data->GS),options->gs_fontmap_file); } else { wmf_ipa_font_map_gs (API,&(fontmap_data->GS),WMF_GS_FONTMAP); } } void wmf_ipa_font_map_set (wmfAPI* API,wmfMap map) { wmfFontData* font_data = (wmfFontData*) API->font_data; font_data->map = map; } void wmf_ipa_font_dir (wmfAPI* API,char* fontdir) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; char** more; unsigned int i = 0; while (font_data->fontdirs[i]) { if (strcmp (font_data->fontdirs[i],fontdir) == 0) break; i++; } if (font_data->fontdirs[i]) return; /* Entry exists already */ if ((i & 0x0f) == (unsigned int) 0x0f) { more = (char**) wmf_realloc (API,font_data->fontdirs,(i + 0x11) * sizeof (char*)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } font_data->fontdirs = more; } font_data->fontdirs[i] = wmf_strdup (API,fontdir); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } i++; font_data->fontdirs[i] = 0; } static void ipa_font_add_api (wmfAPI* API,char* name) { char** more; unsigned int i = 0; while (API->fonts[i]) { if (strcmp (API->fonts[i],name) == 0) break; i++; } if (API->fonts[i]) return; /* Entry exists already */ if ((i & 0x0f) == (unsigned int) 0x0f) { more = (char**) wmf_realloc (API,API->fonts,(i + 0x11) * sizeof (char*)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } API->fonts = more; } API->fonts[i] = wmf_strdup (API,name); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } i++; API->fonts[i] = 0; } /* Returns width of string in points, assuming (unstretched) font size of 1pt * WARNING: This is not very accurate. If anyone has a better idea, then... */ float wmf_ipa_font_stringwidth (wmfAPI* API,wmfFont* font,char* str) { FT_Face face = WMF_FONT_FTFACE (font); if (!face) return 0.0; FT_Vector delta; FT_Bool use_kerning; FT_UInt glyph_index; FT_UInt previous; float width; int i; int length; if ((face == 0) || (str == 0)) { WMF_DEBUG (API,"wmf_ipa_font_stringwidth: NULL face or str - ??"); return 0; } FT_Set_Char_Size (face,0,12 * 64,300,100); FT_Set_Transform (face,0,0); use_kerning = FT_HAS_KERNING (face); previous = 0; width = 0; length = strlen (str); for (i = 0; i < length; i++) { /* convert character code to glyph index */ /* ==== Should this be unsigned ?? ==== */ glyph_index = FT_Get_Char_Index (face,str[i]); if (use_kerning && previous && glyph_index) { FT_Get_Kerning (face,previous,glyph_index,0,&delta); width += (float) (delta.x >> 6); } if (glyph_index) { /* load glyph image into the slot. DO NOT RENDER IT! */ FT_Load_Glyph (face,glyph_index,FT_LOAD_DEFAULT); if (face->glyph) width += (float) (face->glyph->advance.x >> 6); } previous = glyph_index; } return (width*72/(300*12)); } static float ipa_char_position (wmfFont* font,char* str,char* last) { FT_Face face = WMF_FONT_FTFACE (font); if (!face) return 0.0; FT_Vector delta; FT_Bool use_kerning; FT_UInt glyph_index; FT_UInt previous; float width; char* ptr; FT_Set_Char_Size (face,0,12 * 64,300,100); FT_Set_Transform (face,0,0); use_kerning = FT_HAS_KERNING (face); previous = 0; width = 0; for (ptr = str; ptr <= last; ptr++) { /* convert character code to glyph index */ /* === Should this be unsigned ?? ==== */ glyph_index = FT_Get_Char_Index (face,(*ptr)); if (use_kerning && previous && glyph_index) { FT_Get_Kerning (face,previous,glyph_index,0,&delta); width += (float) (delta.x >> 6); } if (ptr == last) break; /* load glyph image into the slot. DO NOT RENDER IT! */ FT_Load_Glyph (face,glyph_index,FT_LOAD_DEFAULT); width += (float) (face->glyph->advance.x >> 6); previous = glyph_index; } return (width*72/(300*12)); } void wmf_ipa_draw_text (wmfAPI* API,wmfDrawText_t* draw_text,wmfCharDrawer ipa_draw_text) { wmfDrawText_t draw_char; size_t i; size_t length; char buffer[2]; float text_width; float cos_theta; float sin_theta; double theta; length = strlen (draw_text->str); theta = - WMF_TEXT_ANGLE (draw_text->dc->font); cos_theta = (float) cos (theta); sin_theta = (float) sin (theta); for (i = 0; i < length; i++) { draw_char.dc = draw_text->dc; buffer[0] = draw_text->str[i]; buffer[1] = 0; text_width = ipa_char_position (draw_text->dc->font,draw_text->str,draw_text->str+i); text_width = (float) ((double) text_width * draw_text->font_height * draw_text->font_ratio); draw_char.pt.x = draw_text->pt.x + text_width * cos_theta; draw_char.pt.y = draw_text->pt.y + text_width * sin_theta; draw_char.TL.x = 0; draw_char.TL.y = 0; draw_char.BR.x = 0; draw_char.BR.y = 0; draw_char.bbox.TL.x = 0; draw_char.bbox.TL.y = 0; draw_char.bbox.TR.x = 0; draw_char.bbox.TR.y = 0; draw_char.bbox.BR.x = 0; draw_char.bbox.BR.y = 0; draw_char.bbox.BL.x = 0; draw_char.bbox.BL.y = 0; draw_char.str = buffer; draw_char.flags = draw_text->flags; draw_char.font_height = draw_text->font_height; draw_char.font_ratio = draw_text->font_ratio; ipa_draw_text (API,&draw_char); } } void wmf_ipa_font_map_xml (wmfAPI* API,wmfXML_FontData* FD,char* xmlfontmap) { FD->max = 0; FD->len = 0; FD->FI = 0; #ifdef HAVE_EXPAT exmlfontmap_read (API,FD,xmlfontmap); return; #endif /* HAVE_EXPAT */ #ifdef HAVE_LIBXML2 xml2fontmap_read (API,FD,xmlfontmap); return; #endif /* HAVE_LIBXML2 */ WMF_DEBUG (API,"warning: no XML support!"); } #ifdef HAVE_EXPAT #include #define EXML_BUFSIZE 1024 static void exml_start (void* user_data,const char* tag,const char** attributes) { const char** attr; EXML_FontData* exml_data = (EXML_FontData*) user_data; wmfAPI* API = exml_data->API; wmfXML_FontData* FD = exml_data->FD; wmfXML_FontInfo* more = 0; wmfXML_FontInfo FI; if ((tag == 0) || (attributes == 0)) return; if (strcmp (tag,"font")) return; FI.format = 0; FI.metrics = 0; FI.glyphs = 0; FI.name = 0; FI.fullname = 0; FI.familyname = 0; FI.weight = 0; FI.version = 0; FI.alias = 0; attr = attributes; while (*attr) { if (strcmp ((*attr),"format") == 0) { attr++; FI.format = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"metrics") == 0) { attr++; FI.metrics = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"glyphs") == 0) { attr++; FI.glyphs = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"name") == 0) { attr++; FI.name = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"fullname") == 0) { attr++; FI.fullname = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"familyname") == 0) { attr++; FI.familyname = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"weight") == 0) { attr++; FI.weight = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"version") == 0) { attr++; FI.version = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"alias") == 0) { attr++; FI.alias = wmf_strdup (API,(char*) (*attr)); } else attr++; attr++; } if (FD->len == FD->max) { more = wmf_realloc (API,FD->FI,(FD->max + 32) * sizeof (wmfXML_FontInfo)); if (more) { FD->FI = more; FD->max += 32; } } if (FD->len < FD->max) { FD->FI[FD->len] = FI; FD->len++; } } static void exmlfontmap_read (wmfAPI* API,wmfXML_FontData* FD,char* xmlfontmap) { int status = 0; int length; char buffer[EXML_BUFSIZE]; void* user_data; FILE* in; EXML_FontData exml_data; XML_Parser exml; FD->max = 32; FD->len = 0; FD->FI = wmf_malloc (API,FD->max * sizeof (wmfXML_FontInfo)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); FD->max = 0; return; } in = fopen (xmlfontmap,"r"); if (in == 0) { WMF_DEBUG (API,"unable to open xml-fontmap"); FD->max = 0; wmf_free (API,FD->FI); FD->FI = 0; return; } exml = XML_ParserCreate (0); if (exml == 0) { WMF_DEBUG (API,"error creating expat-xml parser"); FD->max = 0; wmf_free (API,FD->FI); FD->FI = 0; fclose (in); return; } exml_data.API = API; exml_data.FD = FD; user_data = (void*) (&exml_data); XML_SetUserData (exml,user_data); XML_SetStartElementHandler (exml,exml_start); while (fgets (buffer,EXML_BUFSIZE,in)) { length = (int) strlen (buffer); if (XML_Parse (exml,buffer,length,0) == 0) { WMF_DEBUG (API,"expat-xml: error parsing xml fontmap"); status = 1; break; } } if (status == 0) XML_Parse (exml,buffer,0,1); XML_ParserFree (exml); fclose (in); if (FD->len == 0) { FD->max = 0; wmf_free (API,FD->FI); FD->FI = 0; } } #endif /* HAVE_EXPAT */ #ifdef HAVE_LIBXML2 #include #include static void xml2_start (void* user_data,const char* tag,const char** attributes) { const char** attr; XML2_FontData* xml2_data = (XML2_FontData*) user_data; wmfAPI* API = xml2_data->API; wmfXML_FontData* FD = xml2_data->FD; wmfXML_FontInfo* more = 0; wmfXML_FontInfo FI; if ((tag == 0) || (attributes == 0)) return; if (strcmp (tag,"font")) return; FI.format = 0; FI.metrics = 0; FI.glyphs = 0; FI.name = 0; FI.fullname = 0; FI.familyname = 0; FI.weight = 0; FI.version = 0; FI.alias = 0; attr = attributes; while (*attr) { if (strcmp ((*attr),"format") == 0) { attr++; FI.format = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"metrics") == 0) { attr++; FI.metrics = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"glyphs") == 0) { attr++; FI.glyphs = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"name") == 0) { attr++; FI.name = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"fullname") == 0) { attr++; FI.fullname = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"familyname") == 0) { attr++; FI.familyname = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"weight") == 0) { attr++; FI.weight = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"version") == 0) { attr++; FI.version = wmf_strdup (API,(char*) (*attr)); } else if (strcmp ((*attr),"alias") == 0) { attr++; FI.alias = wmf_strdup (API,(char*) (*attr)); } else attr++; attr++; } if (FD->len == FD->max) { more = wmf_realloc (API,FD->FI,(FD->max + 32) * sizeof (wmfXML_FontInfo)); if (more) { FD->FI = more; FD->max += 32; } } if (FD->len < FD->max) { FD->FI[FD->len] = FI; FD->len++; } } static void xml2fontmap_read (wmfAPI* API,wmfXML_FontData* FD,char* xmlfontmap) { XML2_FontData xml2_data; xmlParserCtxtPtr ctxt; xmlSAXHandler sax; memset ((void*) (&sax), 0, sizeof (xmlSAXHandler)); sax.startElement = (startElementSAXFunc) xml2_start; xml2_data.API = API; xml2_data.FD = FD; ctxt = xmlCreateFileParserCtxt (xmlfontmap); if (ctxt == 0) return; ctxt->sax = &sax; ctxt->userData = (void*) (&xml2_data); xmlParseDocument (ctxt); ctxt->sax = 0; xmlFreeParserCtxt (ctxt); } #endif /* HAVE_LIBXML2 */ void wmf_ipa_font_map_gs (wmfAPI* API,wmfGS_FontData* FD,char* gsfontmap) { ipa_font_gs_file (API,FD,gsfontmap); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } /* TODO ?? */ } static void ipa_font_gs_file (wmfAPI* API,wmfGS_FontData* FD,char* file) { char* line = 0; char* name = 0; char* alias = 0; FILE* in = 0; in = fopen (file,"r"); if (in == 0) { WMF_DEBUG (API,"ipa_font_gs_file: unable to read ghostscript fontmap!\n"); return; } while (wmf_true) { line = ipa_font_gs_readline (API,in); if (line == 0) break; if (*line) { name = line; alias = line; while (!isspace ((int) (*alias))) { if ((*alias) == 0) break; alias++; } if (*alias) { (*alias) = 0; alias++; } ipa_font_gs_add (API,FD,name,alias); } wmf_free (API,line); } fclose (in); } static void ipa_font_gs_add (wmfAPI* API,wmfGS_FontData* FD,char* name,char* alias) { wmfGS_FontInfo* more = 0; wmf_bool_t fMatched; unsigned int i; if ((name == 0) || (alias == 0)) return; if (name[0] != '/') return; if ((alias[0] != '/') && (alias[0] != '(')) return; if ((alias[0] == '(') && (alias[strlen (alias) - 1] != ')')) return; if (FD->FI == 0) { FD->FI = (wmfGS_FontInfo*) wmf_calloc (API,0x20,sizeof (wmfGS_FontInfo)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } FD->max = 0x20; FD->len = 0; } fMatched = wmf_false; for (i = 0; i < FD->len; i++) { if (strcmp (FD->FI[i].name,name+1) == 0) { wmf_free (API,FD->FI[i].alias); FD->FI[i].alias = wmf_strdup (API,alias); fMatched = wmf_true; break; } } if (fMatched) return; if (FD->len == FD->max) { more = (wmfGS_FontInfo*) wmf_realloc (API,FD->FI,(FD->max+0x20) * sizeof (wmfGS_FontInfo)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } FD->FI = more; FD->max += 0x20; } FD->FI[FD->len].name = wmf_strdup (API,name+1); FD->FI[FD->len].alias = wmf_strdup (API,alias); FD->len++; } static char* ipa_font_gs_alias (wmfGS_FontData* FD,char* name) { char* alias = 0; unsigned int i; for (i = 0; i < FD->len; i++) { if (strcmp (FD->FI[i].name,name) == 0) { alias = FD->FI[i].alias; break; } } return (alias); } static char* ipa_font_gs_readline (wmfAPI* API,FILE* in) { char buf[128]; char* line = 0; char* more = 0; char* ptr = 0; char* ptr1 = 0; char* ptr2 = 0; wmf_bool_t fBackSlash; wmf_bool_t fContinue; wmf_bool_t fReadExtra = wmf_false; if (fgets (buf,128,in) == 0) return (0); fBackSlash = wmf_false; fContinue = wmf_true; ptr = buf; while (*ptr) { if (((*ptr) == '%') && (!fBackSlash)) { fContinue = wmf_false; if (buf[strlen(buf)-1] != '\n') { fReadExtra = wmf_true; } else { fReadExtra = wmf_false; } (*ptr) = 0; break; } if ((*ptr) == '\n') { if (fBackSlash) { fContinue = wmf_true; ptr--; } else { fContinue = wmf_false; } (*ptr) = 0; break; } if ((*ptr) == '\\') { fBackSlash = wmf_true; } else { fBackSlash = wmf_false; } ptr++; } line = wmf_strdup (API,buf); if (line == 0) return (line); while (fContinue) { if (fgets (buf,10,in) == 0) { wmf_free (API,line); return (0); } fBackSlash = wmf_false; fContinue = wmf_true; ptr = buf; while (*ptr) { if (((*ptr) == '%') && (!fBackSlash)) { fContinue = wmf_false; fReadExtra = wmf_true; (*ptr) = 0; break; } if ((*ptr) == '\n') { if (fBackSlash) { fContinue = wmf_true; ptr--; } else { fContinue = wmf_false; } (*ptr) = 0; break; } if ((*ptr) == '\\') { fBackSlash = wmf_true; } else { fBackSlash = wmf_false; } ptr++; } more = wmf_str_append (API,line,buf); wmf_free (API,line); line = more; if (line == 0) { break; } } if (line == 0) return (0); if (fReadExtra) { while (buf[strlen(buf)-1] != '\n') if (fgets (buf,128,in) == 0) break; } /* Strip the string */ ptr1 = line; ptr2 = line; while (*ptr2) { if (!isspace ((int) (*ptr2))) break; ptr2++; } while (*ptr2) { if (isspace ((int) (*ptr2))) break; (*ptr1) = (*ptr2); ptr1++; ptr2++; } if (*ptr2) { (*ptr1) = (*ptr2); ptr1++; ptr2++; } while (*ptr2) { if (!isspace ((int) (*ptr2))) break; ptr2++; } while (*ptr2) { if (isspace ((int) (*ptr2))) break; (*ptr1) = (*ptr2); ptr1++; ptr2++; } (*ptr1) = 0; while ((--ptr1) >= line) { if (!isspace ((int) (*ptr1))) break; (*ptr1) = 0; } ptr1 = line; ptr2 = line; while (*ptr2) { if ((*ptr2) == '%') ptr1--; (*ptr1) = (*ptr2); ptr1++; ptr2++; } (*ptr1) = 0; return (line); } /** * This is the fun bit. * * @param API the API handle * @param font WMF font object: font's \b family \b name, \b italics flag, and the \b weight * * Other inputs include: a ghostscript-style Fontmap, and up to two XML RedHat-style fontmaps. (These are * all parsed earlier.) There are also the fallback 13 standard postscript fonts. And then there is a list * of font directories to search for fonts. * * \b libwmf requires fonts to have a postscript name, and maintains an internal cache of glyphs path and * \b freetype font face, keyed to postscript font name. Unfortunately, although the XML fontmaps do have * font \b family \b name, the GS fontmap does not. In the latter, therefore, matching WMF font info to * postscript font name is hit-and-miss. */ void wmf_ipa_font_map (wmfAPI* API,wmfFont* font) { wmfIPAFont* ipa_font = 0; char* mapping = 0; if (font == 0) return; if (font->user_data == 0) { font->user_data = wmf_malloc (API,sizeof (wmfIPAFont)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } } ipa_font = (wmfIPAFont*) font->user_data; ipa_font->ps_name = 0; ipa_font->ft_face = 0; /* Check system fonts for match and load font face if found... */ if (ipa_font_sys_face (API,font,ipa_font_sys_map (API,font))) return; /* Check GS fontmap for match and load font face if found... */ if (ipa_font_gs_face (API,font,ipa_font_gs_map (API,font))) return; /* otherwise, load one of standard 13... */ mapping = ipa_font_std (API,font); if (mapping) { if (ipa_font_face (API,font,mapping)) return; } WMF_ERROR (API,"wmf_ipa_font_map: failed to load *any* font!"); API->err = wmf_E_BadFile; } /** * Searches XML Fontmap for font-name matching WMF's font name. * * Basically, this is matching a font's family name + italic + weight parameters to a postscript name. * Font weight is problematic. */ static wmfXML_FontInfo* ipa_font_sys_map (wmfAPI* API,wmfFont* font) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; wmfXML_FontInfo* FI = 0; unsigned int i; for (i = 0; i < font_data->FD.len; i++) { if (strcmp (font->lfFaceName,font_data->FD.FI[i].familyname) == 0) { if ( wmf_strstr (font_data->FD.FI[i].fullname,"Italic") || wmf_strstr (font_data->FD.FI[i].fullname,"Oblique")) { if (font->lfItalic != 1) continue; } else { if (font->lfItalic == 1) continue; } if ( wmf_strstr (font_data->FD.FI[i].weight,"Bold") || wmf_strstr (font_data->FD.FI[i].weight,"Demi")) /* or "Medium" ?? */ { if (font->lfWeight <= 550) continue; } else { if (font->lfWeight > 550) continue; } FI = &(font_data->FD.FI[i]); break; } } return (FI); } /** * Checks XML Fontmap entry is valid before loading face. */ static FT_Face ipa_font_sys_face (wmfAPI* API,wmfFont* font,wmfXML_FontInfo* FI) { #if 0 wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; struct stat stat_buf; #endif FT_Face face = 0; if (FI == 0) return (0); if (FI->name == 0) { WMF_DEBUG (API,"no postscript name in system-font record?"); return (0); } if (FI->glyphs == 0) { WMF_DEBUG (API,"no glyphs in system-font record?"); return (0); } face = ipa_font_face (API,font,FI->name); return (face); } /** * Searches GS Fontmap for font-name matching WMF's font name. * * Basically, this is matching a font's family name + italic + weight parameters to a postscript name. * I have decided to test only the first word of the family name, so incorrect matches are probably. * Font weight is problematic as well. */ static wmfGS_FontInfo* ipa_font_gs_map (wmfAPI* API,wmfFont* font) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; wmfGS_FontData* GS = &(font_data->GS); wmfGS_FontInfo* FI = 0; wmf_bool_t require_italic; wmf_bool_t require_bold; wmf_bool_t found_italic; wmf_bool_t found_bold; unsigned int name_length = 0; unsigned int i; char* name = 0; char* ptr = 0; if (GS->len == 0) return (0); name = font->lfFaceName; if (name == 0 || name[0] == 0) name = "Times"; /* Find first white-space character or eol */ ptr = name; while (!isspace (*ptr)) { if ((*ptr) == 0) break; ptr++; name_length++; } if (name_length == 0) { WMF_DEBUG (API,"Unexpectedly short font name?"); API->err = wmf_E_Glitch; return (0); } require_italic = ((font->lfItalic == 1) ? wmf_true : wmf_false); require_bold = ((font->lfWeight > 550) ? wmf_true : wmf_false); /* Search for match in GS Fontmap list */ for (i = 0; i < GS->len; i++) { if (strncmp (name,GS->FI[i].name,name_length) == 0) { found_italic = wmf_false; found_bold = wmf_false; if ( wmf_strstr (GS->FI[i].name,"Ital") || wmf_strstr (GS->FI[i].name,"Obli")) { found_italic = wmf_true; } if ( wmf_strstr (GS->FI[i].name,"Bold") || wmf_strstr (GS->FI[i].name,"Demi")) /* or "Medi" ?? */ { found_bold = wmf_true; } if ((require_italic == found_italic) && (require_bold == found_bold)) { FI = &(GS->FI[i]); break; } } } if (FI == 0) return (0); return (FI); } /** * Takes a [name]/[alias] pair from the GS Fontmap and tries to load [name] as a font, * and then, provided [alias] is aliased to a font-file & not a 3rd font-name, [alias]. */ static FT_Face ipa_font_gs_face (wmfAPI* API,wmfFont* font,wmfGS_FontInfo* FI) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; FT_Face face = 0; char* aalias = 0; if (FI == 0) return (0); face = ipa_font_face (API,font,FI->name); if (face) return (face); if (FI->alias[0] != '/') return (0); aalias = ipa_font_gs_alias (&(font_data->GS),FI->alias+1); if (!aalias) return 0; if (aalias[0] != '(') { WMF_DEBUG (API,"font lookup is too complicated! Giving up..."); return (0); } face = ipa_font_face (API,font,FI->alias+1); return (face); } /** * Takes a postscript font name and: * * (1) Check to see whether font has been cached; if so: return (ipa_font_face_cached ()) * (2) Check for font in XML table; if found: * (a) ipa_font_face_open () * (b) return (ipa_font_face_cached ()) * (3) Check for font with file in GS table; if so: * (a) search for font file in font search path; if found: * ( i) ipa_font_face_open () * (ii) return (ipa_font_face_cached ()) * (4) Check for font in internal table; if found: * (a) ipa_font_face_open () * (b) return (ipa_font_face_cached ()) * (5) return (0) */ static FT_Face ipa_font_face (wmfAPI* API,wmfFont* font,char* ps_name) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; FT_Face face = 0; unsigned int i; char* name = 0; char* suffix = 0; char* glyphs = 0; char* metrics = 0; /* (1) Check to see whether font has been cached; if so: return (ipa_font_face_cached ()) */ face = ipa_font_face_cached (API,font,ps_name); if (face) return (face); /* (2) Check for font in XML table */ glyphs = 0; metrics = 0; for (i = 0; i < font_data->FD.len; i++) { if (font_data->FD.FI[i].name == 0) continue; if (strcmp (ps_name,font_data->FD.FI[i].name) == 0) { glyphs = font_data->FD.FI[i].glyphs; metrics = font_data->FD.FI[i].metrics; break; } } if (glyphs) { face = ipa_font_face_open (API,ps_name,glyphs,metrics); if (face) return (ipa_font_face_cached (API,font,ps_name)); } /* (3) Check for font with file in GS table */ name = 0; for (i = 0; i < font_data->GS.len; i++) { if (strcmp (ps_name,font_data->GS.FI[i].name) == 0) { if (font_data->GS.FI[i].alias[0] == '(') { name = wmf_strdup (API,font_data->GS.FI[i].alias + 1); } break; } } glyphs = 0; if (name) { name[strlen (name) - 1] = 0; glyphs = ipa_font_path_find (API,name); } metrics = 0; if (glyphs) { if (strlen (name) > 3) { suffix = name + strlen (name) - 4; if ((strcmp (suffix,".pfa") == 0) || (strcmp (suffix,".pfb") == 0)) { strcpy (suffix,".afm"); metrics = ipa_font_path_find (API,name); } } face = ipa_font_face_open (API,ps_name,glyphs,metrics); } if (name) wmf_free (API,name); if (glyphs) wmf_free (API,glyphs); if (metrics) wmf_free (API,metrics); if (face) return (ipa_font_face_cached (API,font,ps_name)); /* (4) Check for font in internal table */ name = 0; i = 0; while (font_data->ps[i].name) { if (strcmp (ps_name,font_data->ps[i].name) == 0) { name = wmf_strdup (API,font_data->ps[i].mapping); break; } i++; } glyphs = 0; if (name) { glyphs = ipa_font_path_find (API,name); } metrics = 0; if (glyphs) { if (strlen (name) > 3) { suffix = name + strlen (name) - 4; if ((strcmp (suffix,".pfa") == 0) || (strcmp (suffix,".pfb") == 0)) { strcpy (suffix,".afm"); metrics = ipa_font_path_find (API,name); } } face = ipa_font_face_open (API,ps_name,glyphs,metrics); } if (name) wmf_free (API,name); if (glyphs) wmf_free (API,glyphs); if (metrics) wmf_free (API,metrics); if (face) return (ipa_font_face_cached (API,font,ps_name)); /* (5) return (0) */ return (0); } /** * Opens the font with freetype and caches postscript name, glyphs path & FT font face */ static FT_Face ipa_font_face_open (wmfAPI* API,char* ps_name,char* glyphs,char* metrics) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; wmfFT_CacheEntry entry; FT_Face face = 0; struct stat stat_buf; #ifdef _WIN32 glyphs = remap_font_file_name (API,glyphs); #endif if (stat (glyphs,&stat_buf)) { WMF_ERROR (API,"unable to stat font file:"); WMF_ERROR (API,glyphs); API->err = wmf_E_BadFile; #ifdef _WIN32 wmf_free (API,glyphs); #endif return (0); } if (FT_New_Face (font_data->Library,glyphs,0,&face) != 0) { WMF_ERROR (API,"Failed to open font:"); WMF_ERROR (API,glyphs); API->err = wmf_E_DeviceError; #ifdef _WIN32 wmf_free (API,glyphs); #endif return (0); } #ifdef _WIN32 if (metrics) { metrics = remap_font_file_name (API,metrics); } #endif if (metrics) { if (stat (metrics,&stat_buf)) { WMF_DEBUG (API,"unable to stat font metrics file:"); WMF_DEBUG (API,metrics); } else { if (FT_Attach_File (face,metrics) != 0) { WMF_DEBUG (API,"unable to load font metrics file:"); WMF_DEBUG (API,metrics); } } } /* Select encoding (I'm very uncertain about this!): - [TODO] ?? */ if (FT_Select_Charmap (face,ft_encoding_adobe_standard) == 0) { WMF_DEBUG (API,glyphs); WMF_DEBUG (API,"Adobe Standard Encoding"); } else if (FT_Select_Charmap (face,ft_encoding_adobe_custom) == 0) { WMF_DEBUG (API,glyphs); WMF_DEBUG (API,"Adobe Custom Encoding"); } else if (FT_Select_Charmap (face,ft_encoding_symbol) == 0) { WMF_DEBUG (API,glyphs); WMF_DEBUG (API,"Symbol Encoding"); } else if (FT_Select_Charmap (face,ft_encoding_unicode) == 0) { WMF_DEBUG (API,glyphs); WMF_DEBUG (API,"Unicode Encoding"); } else { WMF_ERROR (API,"Bad encoding! (Please help me!)"); API->err = wmf_E_DeviceError; } entry.name = ps_name; entry.path = glyphs; entry.face = face; ipa_font_add_cache (API,&entry); /* cache font name, path & face */ ipa_font_add_api (API,ps_name); /* add font name to list of fonts used */ return (face); } /** * Finds font info in cache and sets WMF's font entry appropriately. */ static FT_Face ipa_font_face_cached (wmfAPI* API,wmfFont* font,char* ps_name) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; wmfIPAFont* ipa_font = (wmfIPAFont*) font->user_data; FT_Face face = 0; unsigned int i; /* Check cache for font */ i = 0; while (font_data->cache[i].name) { if (strcmp (font_data->cache[i].name,ps_name) == 0) { face = font_data->cache[i].face; break; } i++; } if (face) { ipa_font->ps_name = ps_name; ipa_font->ft_face = face; } return (face); } /** * Search for file_name in font path and return full path to file as wmf_malloc() string */ static char* ipa_font_path_find (wmfAPI* API,char* file_name) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; struct stat stat_buf; unsigned int length; unsigned int count; unsigned int i; char* path = 0; /* Determine length of string required to hold path name of font */ count = 0; i = 0; while (font_data->fontdirs[i]) { length = strlen (font_data->fontdirs[i]); if (count < length) count = length; i++; } count += 1 + strlen (file_name) + 1; path = (char*) wmf_malloc (API,count); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (0); } /* Compose full font file path: */ i = 0; while (font_data->fontdirs[i]) { strcpy (path,font_data->fontdirs[i]); strcat (path,"/"); strcat (path,file_name); WMF_DEBUG (API,path); if (stat (path,&stat_buf) == 0) break; /* file exists */ i++; } if (font_data->fontdirs[i] == 0) { WMF_DEBUG (API,"file not found in font path."); wmf_free (API,path); path = 0; } return (path); } /** * If after XML & GS fontmap searches the font still hasn't been matched, then use one of the 13 standard * postscript fonts (or any others that have been added via library options). */ static char* ipa_font_std (wmfAPI* API,wmfFont* font) { wmfFontmapData* font_data = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; char* mapping = 0; unsigned int i; unsigned int index = 0; /* First: check for an exact match: */ i = 0; while (font_data->wmf[i].name) { if (strcmp (font->lfFaceName,font_data->wmf[i].name) == 0) { mapping = font_data->wmf[i].name; break; } i++; } /* If no exact match, check for a close (i.e., sub-string) match: */ if (mapping == 0) { i = 0; while (font_data->sub[i].name) { if (wmf_strstr (font->lfFaceName,font_data->sub[i].name)) { mapping = font_data->sub[i].mapping; break; } i++; } } /* If still no match, use the default: */ if (mapping == 0) mapping = DefaultFontMapping; /* Check chosen mapping in list of exact names: */ i = 0; while (font_data->wmf[i].name) { if (strcmp (mapping,font_data->wmf[i].name) == 0) { index = i; break; } i++; } /* If not found then something odd has happened - probably a typo somewhere... */ if (font_data->wmf[i].name == 0) { WMF_ERROR (API,"Glitch! Unmapped font..."); API->err = wmf_E_Glitch; return (0); } /* Select a new mapping (the PS font name) on basis of weight & italic parameters */ if (font->lfWeight > 550) /* => Bold (?? Don't ask me...) */ { if (font->lfItalic == 1) /* Italic */ { mapping = font_data->wmf[index].bolditalic; } else { mapping = font_data->wmf[index].bold; } } else { if (font->lfItalic == 1) /* Italic */ { mapping = font_data->wmf[index].italic; } else { mapping = font_data->wmf[index].normal; } } return (mapping); } libwmf-0.2.13/src/font.h000066400000000000000000000126371441723000300147660ustar00rootroot00000000000000/* libwmf ("font.h"): library for wmf conversion Copyright (C) 2000,2001 Francis James Franklin The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMF_FONT_H #define WMF_FONT_H #include #include FT_FREETYPE_H #include FT_GLYPH_H static void ipa_font_add_wmf (wmfAPI*,wmfFontMap*); static void ipa_font_add_sub (wmfAPI*,wmfMapping*); static void ipa_font_add_ps (wmfAPI*,wmfMapping*); static void ipa_font_add_cache (wmfAPI*,wmfFT_CacheEntry*); static void ipa_font_add_api (wmfAPI*,char*); static float ipa_char_position (wmfFont*,char*,char*); static wmfXML_FontInfo* ipa_font_sys_map (wmfAPI*,wmfFont*); static FT_Face ipa_font_sys_face (wmfAPI*,wmfFont*,wmfXML_FontInfo*); #ifdef HAVE_EXPAT static void exml_start (void*,const char*,const char**); static void exmlfontmap_read (wmfAPI*,wmfXML_FontData*,char*); typedef struct _EXML_FontData EXML_FontData; struct _EXML_FontData { wmfAPI* API; wmfXML_FontData* FD; }; #endif /* HAVE_EXPAT */ #ifdef HAVE_LIBXML2 static void xml2_start (void*,const char*,const char**); static void xml2fontmap_read (wmfAPI*,wmfXML_FontData*,char*); typedef struct _XML2_FontData XML2_FontData; struct _XML2_FontData { wmfAPI* API; wmfXML_FontData* FD; }; #endif /* HAVE_LIBXML2 */ static void ipa_font_gs_file (wmfAPI* API,wmfGS_FontData* FD,char* file); static void ipa_font_gs_add (wmfAPI* API,wmfGS_FontData* FD,char* name,char* alias); static char* ipa_font_gs_alias (wmfGS_FontData* FD,char* name); static char* ipa_font_gs_readline (wmfAPI* API,FILE* in); static wmfGS_FontInfo* ipa_font_gs_map (wmfAPI* API,wmfFont* font); static FT_Face ipa_font_gs_face (wmfAPI* API,wmfFont* font,wmfGS_FontInfo* FI); static FT_Face ipa_font_face (wmfAPI* API,wmfFont* font,char* ps_name); static FT_Face ipa_font_face_open (wmfAPI* API,char* ps_name,char* glyphs,char* metrics); static FT_Face ipa_font_face_cached (wmfAPI* API,wmfFont* font,char* ps_name); static char* ipa_font_path_find (wmfAPI* API,char* file_name); static char* ipa_font_std (wmfAPI* API,wmfFont* font); /* postscript (standard 13) font name mapping to type 1 font file */ static wmfMapping PSFontMap[13] = { { "Courier", "NimbusMonoPS-Regular.t1", ft_encoding_adobe_standard }, { "Courier-Oblique", "NimbusMonoPS-Italic.t1", ft_encoding_adobe_standard }, { "Courier-Bold", "NimbusMonoPS-Bold.t1", ft_encoding_adobe_standard }, { "Courier-BoldOblique", "NimbusMonoPS-BoldItalic.t1", ft_encoding_adobe_standard }, { "Helvetica", "NimbusSans-Regular.t1", ft_encoding_adobe_standard }, { "Helvetica-Oblique", "NimbusSans-Italic.t1", ft_encoding_adobe_standard }, { "Helvetica-Bold", "NimbusSans-Bold.t1", ft_encoding_adobe_standard }, { "Helvetica-BoldOblique","NimbusSans-BoldItalic.t1", ft_encoding_adobe_standard }, { "Times-Roman", "NimbusRoman-Regular.t1", ft_encoding_adobe_standard }, { "Times-Italic", "NimbusRoman-Italic.t1", ft_encoding_adobe_standard }, { "Times-Bold", "NimbusRoman-Bold.t1", ft_encoding_adobe_standard }, { "Times-BoldItalic", "NimbusRoman-BoldItalic.t1", ft_encoding_adobe_standard }, { "Symbol", "StandardSymbolsPS.t1", ft_encoding_adobe_custom }}; /* exact WMF font name to postscript (standard 13) equivalent... * well, yeah, I know. :-( */ static wmfFontMap WMFFontMap[] = { { "Courier", "Courier", "Courier-Oblique", "Courier-Bold", "Courier-BoldOblique" }, { "Helvetica", "Helvetica", "Helvetica-Oblique", "Helvetica-Bold", "Helvetica-BoldOblique" }, { "Modern", "Courier", "Courier-Oblique", "Courier-Bold", "Courier-BoldOblique" }, { "Monotype Corsiva", "Courier", "Courier-Oblique", "Courier-Bold", "Courier-BoldOblique" }, { "News Gothic", "Helvetica", "Helvetica-Oblique", "Helvetica-Bold", "Helvetica-BoldOblique" }, { "Symbol", "Symbol", "Symbol", "Symbol", "Symbol" }, { "System", "Courier", "Courier-Oblique", "Courier-Bold", "Courier-BoldOblique" }, { "Times", "Times-Roman", "Times-Italic", "Times-Bold", "Times-BoldItalic" }}; /* Sub-string match if not in the above list; */ static wmfMapping SubFontMap[] = { { "Arial", "Helvetica", ft_encoding_adobe_standard }, { "Courier", "Courier", ft_encoding_adobe_standard }, { "Fixed", "Courier", ft_encoding_adobe_standard }, { "Helvetica", "Helvetica", ft_encoding_adobe_standard }, { "Sans", "Helvetica", ft_encoding_adobe_standard }, { "Sym", "Symbol", ft_encoding_adobe_standard }, { "Terminal", "Courier", ft_encoding_adobe_standard }, { "Times", "Times", ft_encoding_adobe_standard }, { "Wingdings", "Symbol", ft_encoding_adobe_standard }}; /* If all else fails, assume Times */ static char* DefaultFontMapping = "Times"; #endif /* ! WMF_FONT_H */ libwmf-0.2.13/src/io-wmf.c000066400000000000000000000202511441723000300152000ustar00rootroot00000000000000/* -*- Mode: C; tab-width: 8; c-basic-offset: 8 -*- */ /* GdkPixbuf library - WMF image loader * * Copyright (C) 2002 Dom Lachowicz * Copyright (C) 2002 Francis James Franklin * * Authors: Dom Lachowicz * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* This module is based on AbiWord and wvWare code and ideas done by * Francis James Franklin and io-svg.c in the * librsvg module by Matthias Clasen */ #include #include #include #include #include "libwmf/api.h" #include "libwmf/gd.h" G_MODULE_EXPORT void fill_vtable (GdkPixbufModule *module); G_MODULE_EXPORT void fill_info (GdkPixbufFormat *info); typedef struct { GdkPixbufModuleUpdatedFunc updated_func; GdkPixbufModulePreparedFunc prepared_func; GdkPixbufModuleSizeFunc size_func; gpointer user_data; GByteArray *data; } WmfContext; static void pixbuf_destroy_function (guchar * pixels, gpointer data) { (void)data; g_free (pixels); } static guchar * pixbuf_gd_convert (int * gd_pixels, gint width, gint height) { guchar * pixels = NULL; guchar * px_ptr = NULL; int * gd_ptr = gd_pixels; gint i = 0; gint j = 0; gsize alloc_size = width * height * sizeof (guchar) * 4; unsigned int pixel; guchar r,g,b,a; pixels = (guchar *) g_try_malloc (alloc_size); if (pixels == NULL) return NULL; px_ptr = pixels; for (i = 0; i < height; i++) for (j = 0; j < width; j++) { pixel = (unsigned int) (*gd_ptr++); b = (guchar) (pixel & 0xff); pixel >>= 8; g = (guchar) (pixel & 0xff); pixel >>= 8; r = (guchar) (pixel & 0xff); pixel >>= 7; a = (guchar) (pixel & 0xfe); a ^= 0xff; *px_ptr++ = r; *px_ptr++ = g; *px_ptr++ = b; *px_ptr++ = a; } return pixels; } static gboolean gdk_pixbuf__wmf_image_stop_load (gpointer data, GError **error) { /* will be used to represent the WMF in-memory * during the decoding process */ WmfContext *context = (WmfContext *)data; gboolean result = FALSE; guchar *pixels = NULL; GdkPixbuf *pixbuf = NULL; /* the bits we need to decode the WMF via libwmf2's GD layer */ wmf_error_t err; unsigned long flags; wmf_gd_t *ddata = NULL; wmfAPI *API = NULL; wmfAPI_Options api_options; wmfD_Rect bbox; int *gd_pixels = NULL; /* the natural width and height of the WMF or the user-specified with+height */ gint width, height; double resolution_x, resolution_y; if (error != NULL) *error = NULL; /* TODO: be smarter about getting the resolution from screen */ resolution_x = resolution_y = 72.0; width = height = -1; flags = WMF_OPT_IGNORE_NONFATAL | WMF_OPT_FUNCTION; api_options.function = wmf_gd_function; api_options.argc = 0; api_options.argv = NULL; err = wmf_api_create (&API, flags, &api_options); if (err != wmf_E_None) { g_set_error (error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY, "Couldn't create WMF reader"); goto _wmf_error; } ddata = WMF_GD_GetData (API); ddata->type = wmf_gd_image; err = wmf_mem_open (API, context->data->data, context->data->len); if (err != wmf_E_None) { g_set_error (error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_FAILED, "Couldn't create reader API"); goto _wmf_error; } err = wmf_scan (API, 0, &bbox); if (err != wmf_E_None) { g_set_error (error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE, "Error scanning WMF file"); goto _wmf_error; } /* find out how large the app wants the pixbuf to be */ if (context->size_func != NULL) (*context->size_func) (&width, &height, context->user_data); /* if these are <= 0, assume user wants the natural size of the wmf */ if (width <= 0 || height <= 0) { unsigned int uwidth, uheight; err = wmf_display_size (API, &uwidth, &uheight, resolution_x, resolution_y); width = uwidth; height = uheight; if (err != wmf_E_None || width <= 0 || height <= 0) { g_set_error (error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE, "Couldn't determine image size"); goto _wmf_error; } } ddata->bbox = bbox; ddata->width = width; ddata->height = height; err = wmf_play (API, 0, &bbox); if (err != wmf_E_None) { g_set_error (error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE, "Couldn't decode WMF file into pixbuf"); goto _wmf_error; } wmf_mem_close (API); if (ddata->gd_image != NULL) gd_pixels = wmf_gd_image_pixels (ddata->gd_image); if (gd_pixels == NULL) { g_set_error (error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE, "Couldn't decode WMF file - no output (huh?)"); goto _wmf_error; } pixels = pixbuf_gd_convert (gd_pixels, width, height); if (pixels == NULL) { g_set_error (error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY, "Couldn't create RGBA buffer"); goto _wmf_error; } wmf_api_destroy (API); API = NULL; pixbuf = gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB, TRUE, 8, width, height, width * 4, pixbuf_destroy_function, NULL); if (pixbuf == NULL) { g_set_error (error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE, "Couldn't decode WMF file"); goto _wmf_error; } if (context->prepared_func != NULL) (* context->prepared_func) (pixbuf, NULL, context->user_data); if (context->updated_func != NULL) (* context->updated_func) (pixbuf, 0, 0, gdk_pixbuf_get_width (pixbuf), gdk_pixbuf_get_height (pixbuf), context->user_data); result = TRUE; _wmf_error: if (API != NULL) wmf_api_destroy (API); g_byte_array_free (context->data, TRUE); g_free (context); return result; } static gboolean gdk_pixbuf__wmf_image_load_increment (gpointer data, const guchar *buf, guint size, GError **error) { WmfContext *context = (WmfContext *)data; if (error != NULL) *error = NULL; g_byte_array_append (context->data, buf, size); return TRUE; } static gpointer gdk_pixbuf__wmf_image_begin_load (GdkPixbufModuleSizeFunc size_func, GdkPixbufModulePreparedFunc prepared_func, GdkPixbufModuleUpdatedFunc updated_func, gpointer user_data, GError **error) { WmfContext *context = g_new0 (WmfContext, 1); if (error != NULL) *error = NULL; context->prepared_func = prepared_func; context->updated_func = updated_func; context->size_func = size_func; context->user_data = user_data; context->data = g_byte_array_new (); return (gpointer)context; } void fill_vtable (GdkPixbufModule *module) { module->begin_load = gdk_pixbuf__wmf_image_begin_load; module->stop_load = gdk_pixbuf__wmf_image_stop_load; module->load_increment = gdk_pixbuf__wmf_image_load_increment; } void fill_info (GdkPixbufFormat *info) { /* Magic header is sometimes: "\327\315\306\232" or "\001\000\011\000" * Impossible to recognize all WMFs this way, as not all WMFs have headers */ static GdkPixbufModulePattern signature[] = { { "\xd7\xcd\xc6\x9a", NULL, 100 }, { "\x01\x00\x09\x00", NULL, 100 }, { NULL, NULL, 0 } }; static gchar *mime_types[] = { "image/x-wmf", NULL }; static gchar *extensions[] = { "wmf", "apm", NULL }; info->name = "wmf"; info->signature = signature; info->description = "Windows Metafile"; info->mime_types = mime_types; info->extensions = extensions; info->flags = 0; } libwmf-0.2.13/src/ipa/000077500000000000000000000000001441723000300144075ustar00rootroot00000000000000libwmf-0.2.13/src/ipa/Makefile.am000066400000000000000000000022041441723000300164410ustar00rootroot00000000000000CFLAGS = @CFLAGS@ @WMF_CFLAGS@ LDFLAGS = @LDFLAGS@ DEFS = @DEFS@ @WMF_DEFS@ \ -DPACKAGE=\"@PACKAGE@\" \ -DVERSION=\"@VERSION@\" if LIBWMF_OPT_SYS_GD GDHDRS = else GDHDRS = -I$(top_srcdir)/src/extra/gd endif INCLUDES = \ -I$(top_srcdir)/include \ -I$(top_srcdir)/src \ $(GDHDRS) \ -I$(top_builddir) noinst_LTLIBRARIES = libipa.la libipa_la_SOURCES = eps.c fig.c svg.c xgd.c x.c ipa.c plot.c foreign.c libipa_la_LDFLAGS = IPAHEADERS = \ ipa/bmp.h \ ipa.h EPSHEADERS = \ eps/bmp.h \ eps/device.h \ eps/draw.h \ eps/region.h \ eps.h FIGHEADERS = \ fig/bmp.h \ fig/color.h \ fig/device.h \ fig/draw.h \ fig/font.h \ fig/region.h \ fig.h SVGHEADERS = \ svg/bmp.h \ svg/device.h \ svg/draw.h \ svg/region.h \ svg.h GDHEADERS = \ xgd/bmp.h \ xgd/device.h \ xgd/draw.h \ xgd/font.h \ xgd/region.h \ xgd.h XHEADERS = \ x/bmp.h \ x/color.h \ x/device.h \ x/draw.h \ x/font.h \ x/region.h \ x.h PLOTHEADERS = \ plot/bmp.h \ plot/device.h \ plot/draw.h \ plot/region.h \ plot.h EXTRA_DIST = template.c template.h $(IPAHEADERS) $(EPSHEADERS) $(FIGHEADERS) $(SVGHEADERS) $(GDHEADERS) $(XHEADERS) $(PLOTHEADERS) libwmf-0.2.13/src/ipa/Makefile.in000066400000000000000000000511261441723000300164610ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2018 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@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/ipa ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/wmfconfig.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libipa_la_LIBADD = am_libipa_la_OBJECTS = eps.lo fig.lo svg.lo xgd.lo x.lo ipa.lo plot.lo \ foreign.lo libipa_la_OBJECTS = $(am_libipa_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libipa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libipa_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/eps.Plo ./$(DEPDIR)/fig.Plo \ ./$(DEPDIR)/foreign.Plo ./$(DEPDIR)/ipa.Plo \ ./$(DEPDIR)/plot.Plo ./$(DEPDIR)/svg.Plo ./$(DEPDIR)/x.Plo \ ./$(DEPDIR)/xgd.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libipa_la_SOURCES) DIST_SOURCES = $(libipa_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @WMF_CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ @WMF_DEFS@ \ -DPACKAGE=\"@PACKAGE@\" \ -DVERSION=\"@VERSION@\" DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FREETYPE_CONFIG = @FREETYPE_CONFIG@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_DIR = @GDK_PIXBUF_DIR@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GD_DEFS = @GD_DEFS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBWMF_BUILDSTYLE = @LIBWMF_BUILDSTYLE@ LIBWMF_PACKAGE = @LIBWMF_PACKAGE@ LIBWMF_RELEASE = @LIBWMF_RELEASE@ LIBWMF_VERSION = @LIBWMF_VERSION@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_LITE_AGE = @LT_LITE_AGE@ LT_LITE_CURRENT = @LT_LITE_CURRENT@ LT_LITE_REVISION = @LT_LITE_REVISION@ LT_RELEASE = @LT_RELEASE@ LT_REVISION = @LT_REVISION@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_LIBM = @SYS_LIBM@ VERSION = @VERSION@ WMF_CFLAGS = @WMF_CFLAGS@ WMF_CONFIG_CFLAGS = @WMF_CONFIG_CFLAGS@ WMF_DEFS = @WMF_DEFS@ WMF_DOCDIR = @WMF_DOCDIR@ WMF_FONTDIR = @WMF_FONTDIR@ WMF_GS_FONTDIR = @WMF_GS_FONTDIR@ WMF_GS_FONTMAP = @WMF_GS_FONTMAP@ WMF_LIBFLAGS = @WMF_LIBFLAGS@ WMF_SYS_FONTMAP = @WMF_SYS_FONTMAP@ WMF_XTRA_FONTMAP = @WMF_XTRA_FONTMAP@ XMKMF = @XMKMF@ XML2_CONFIG = @XML2_CONFIG@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @LIBWMF_OPT_SYS_GD_FALSE@GDHDRS = -I$(top_srcdir)/src/extra/gd @LIBWMF_OPT_SYS_GD_TRUE@GDHDRS = INCLUDES = \ -I$(top_srcdir)/include \ -I$(top_srcdir)/src \ $(GDHDRS) \ -I$(top_builddir) noinst_LTLIBRARIES = libipa.la libipa_la_SOURCES = eps.c fig.c svg.c xgd.c x.c ipa.c plot.c foreign.c libipa_la_LDFLAGS = IPAHEADERS = \ ipa/bmp.h \ ipa.h EPSHEADERS = \ eps/bmp.h \ eps/device.h \ eps/draw.h \ eps/region.h \ eps.h FIGHEADERS = \ fig/bmp.h \ fig/color.h \ fig/device.h \ fig/draw.h \ fig/font.h \ fig/region.h \ fig.h SVGHEADERS = \ svg/bmp.h \ svg/device.h \ svg/draw.h \ svg/region.h \ svg.h GDHEADERS = \ xgd/bmp.h \ xgd/device.h \ xgd/draw.h \ xgd/font.h \ xgd/region.h \ xgd.h XHEADERS = \ x/bmp.h \ x/color.h \ x/device.h \ x/draw.h \ x/font.h \ x/region.h \ x.h PLOTHEADERS = \ plot/bmp.h \ plot/device.h \ plot/draw.h \ plot/region.h \ plot.h EXTRA_DIST = template.c template.h $(IPAHEADERS) $(EPSHEADERS) $(FIGHEADERS) $(SVGHEADERS) $(GDHEADERS) $(XHEADERS) $(PLOTHEADERS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/ipa/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/ipa/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libipa.la: $(libipa_la_OBJECTS) $(libipa_la_DEPENDENCIES) $(EXTRA_libipa_la_DEPENDENCIES) $(AM_V_CCLD)$(libipa_la_LINK) $(libipa_la_OBJECTS) $(libipa_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eps.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fig.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/foreign.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipa.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plot.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/svg.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgd.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/eps.Plo -rm -f ./$(DEPDIR)/fig.Plo -rm -f ./$(DEPDIR)/foreign.Plo -rm -f ./$(DEPDIR)/ipa.Plo -rm -f ./$(DEPDIR)/plot.Plo -rm -f ./$(DEPDIR)/svg.Plo -rm -f ./$(DEPDIR)/x.Plo -rm -f ./$(DEPDIR)/xgd.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/eps.Plo -rm -f ./$(DEPDIR)/fig.Plo -rm -f ./$(DEPDIR)/foreign.Plo -rm -f ./$(DEPDIR)/ipa.Plo -rm -f ./$(DEPDIR)/plot.Plo -rm -f ./$(DEPDIR)/svg.Plo -rm -f ./$(DEPDIR)/x.Plo -rm -f ./$(DEPDIR)/xgd.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-generic clean-libtool clean-noinstLTLIBRARIES \ cscopelist-am ctags ctags-am distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libwmf-0.2.13/src/ipa/eps.c000066400000000000000000000347371441723000300153600ustar00rootroot00000000000000/* libwmf (ipa/eps.c): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ #include #include #include #include "wmfdefs.h" #ifndef WITHOUT_LAYERS #include "libwmf/eps.h" static void wmf_eps_device_open (wmfAPI*); static void wmf_eps_device_close (wmfAPI*); static void wmf_eps_device_begin (wmfAPI*); static void wmf_eps_device_end (wmfAPI*); static void wmf_eps_flood_interior (wmfAPI*,wmfFlood_t*); static void wmf_eps_flood_exterior (wmfAPI*,wmfFlood_t*); static void wmf_eps_draw_pixel (wmfAPI*,wmfDrawPixel_t*); static void wmf_eps_draw_pie (wmfAPI*,wmfDrawArc_t*); static void wmf_eps_draw_chord (wmfAPI*,wmfDrawArc_t*); static void wmf_eps_draw_arc (wmfAPI*,wmfDrawArc_t*); static void wmf_eps_draw_ellipse (wmfAPI*,wmfDrawArc_t*); static void wmf_eps_draw_line (wmfAPI*,wmfDrawLine_t*); static void wmf_eps_poly_line (wmfAPI*,wmfPolyLine_t*); static void wmf_eps_draw_polygon (wmfAPI*,wmfPolyLine_t*); static void wmf_eps_draw_rectangle (wmfAPI*,wmfDrawRectangle_t*); static void wmf_eps_rop_draw (wmfAPI*,wmfROP_Draw_t*); static void wmf_eps_bmp_draw (wmfAPI*,wmfBMP_Draw_t*); static void wmf_eps_bmp_read (wmfAPI*,wmfBMP_Read_t*); static void wmf_eps_bmp_free (wmfAPI*,wmfBMP*); static void wmf_eps_draw_text (wmfAPI*,wmfDrawText_t*); static void wmf_eps_udata_init (wmfAPI*,wmfUserData_t*); static void wmf_eps_udata_copy (wmfAPI*,wmfUserData_t*); static void wmf_eps_udata_set (wmfAPI*,wmfUserData_t*); static void wmf_eps_udata_free (wmfAPI*,wmfUserData_t*); static void wmf_eps_region_frame (wmfAPI*,wmfPolyRectangle_t*); static void wmf_eps_region_paint (wmfAPI*,wmfPolyRectangle_t*); static void wmf_eps_region_clip (wmfAPI*,wmfPolyRectangle_t*); #include "ipa/eps.h" #include "ipa/eps/bmp.h" #include "ipa/eps/device.h" #include "ipa/eps/draw.h" #include "ipa/eps/region.h" #endif /* ! WITHOUT_LAYERS */ void wmf_eps_function (wmfAPI* API) { #ifndef WITHOUT_LAYERS wmf_eps_t* ddata = 0; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; if ((API->flags & API_STANDARD_INTERFACE) == 0) { WMF_ERROR (API,"Can't use this device layer with 'lite' interface!"); API->err = wmf_E_DeviceError; return; } /* IPA function reference links */ FR->device_open = wmf_eps_device_open; FR->device_close = wmf_eps_device_close; FR->device_begin = wmf_eps_device_begin; FR->device_end = wmf_eps_device_end; FR->flood_interior = wmf_eps_flood_interior; FR->flood_exterior = wmf_eps_flood_exterior; FR->draw_pixel = wmf_eps_draw_pixel; FR->draw_pie = wmf_eps_draw_pie; FR->draw_chord = wmf_eps_draw_chord; FR->draw_arc = wmf_eps_draw_arc; FR->draw_ellipse = wmf_eps_draw_ellipse; FR->draw_line = wmf_eps_draw_line; FR->poly_line = wmf_eps_poly_line; FR->draw_polygon = wmf_eps_draw_polygon; FR->draw_rectangle = wmf_eps_draw_rectangle; FR->rop_draw = wmf_eps_rop_draw; FR->bmp_draw = wmf_eps_bmp_draw; FR->bmp_read = wmf_eps_bmp_read; FR->bmp_free = wmf_eps_bmp_free; FR->draw_text = wmf_eps_draw_text; FR->udata_init = wmf_eps_udata_init; FR->udata_copy = wmf_eps_udata_copy; FR->udata_set = wmf_eps_udata_set; FR->udata_free = wmf_eps_udata_free; FR->region_frame = wmf_eps_region_frame; FR->region_paint = wmf_eps_region_paint; FR->region_clip = wmf_eps_region_clip; /* Allocate device data structure */ ddata = (wmf_eps_t*) wmf_malloc (API,sizeof (wmf_eps_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } API->device_data = (void*) ddata; /* Device data defaults */ ddata->bbox.TL.x = 0; ddata->bbox.TL.y = 0; ddata->bbox.BR.x = 0; ddata->bbox.BR.y = 0; ddata->out = 0; ddata->Title = 0; ddata->Creator = 0; ddata->Date = 0; ddata->For = 0; ddata->eps_x = 0; ddata->eps_y = 0; ddata->eps_width = 0; ddata->eps_height = 0; ddata->page_width = 596; ddata->page_height = 842; ddata->flags = 0; #else /* ! WITHOUT_LAYERS */ API->device_data = 0; API->err = wmf_E_DeviceError; #endif /* ! WITHOUT_LAYERS */ } #ifndef WITHOUT_LAYERS static void wmf_eps_draw_text (wmfAPI* API,wmfDrawText_t* draw_text) { wmf_eps_t* ddata = WMF_EPS_GetData (API); wmfStream* out = ddata->out; wmfFont* font = 0; wmfRGB* rgb = 0; float red; float green; float blue; float size; float ratio; float theta; unsigned int i; unsigned int length; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]draw_text"); if (out == 0) return; size = (float) draw_text->font_height; ratio = (float) draw_text->font_ratio; font = WMF_DC_FONT (draw_text->dc); theta = (float) (WMF_TEXT_ANGLE (font) * 180 / PI); wmf_stream_printf (API,out,"gsave %% wmf_[eps_]draw_text\n"); wmf_stream_printf (API,out,"/%s findfont %f scalefont setfont\n",WMF_FONT_PSNAME (font),size); wmf_stream_printf (API,out,"%f %f translate 1 -1 scale %f rotate ",draw_text->pt.x,draw_text->pt.y,theta); wmf_stream_printf (API,out,"%f 1 scale\n",ratio); wmf_stream_printf (API,out,"("); length = strlen (draw_text->str); for (i = 0; i < length; i++) { if (draw_text->str[i] == ')') wmf_stream_printf (API,out,"\\)"); else if (draw_text->str[i] == '(') wmf_stream_printf (API,out,"\\("); else wmf_stream_printf (API,out,"%c",draw_text->str[i]); } wmf_stream_printf (API,out,")\n"); if (WMF_DC_OPAQUE (draw_text->dc)) { wmf_stream_printf (API,out,"dup stringwidth pop dup "); wmf_stream_printf (API,out,"newpath 0 %f moveto 0 rlineto 0 %f rlineto neg 0 rlineto closepath ", - 0.29 * size,1.07 * size); rgb = WMF_DC_BACKGROUND (draw_text->dc); red = (float) ((int) rgb->r) / 255; green = (float) ((int) rgb->g) / 255; blue = (float) ((int) rgb->b) / 255; wmf_stream_printf (API,out,"%f %f %f setrgbcolor fill ",red,green,blue); } rgb = WMF_DC_TEXTCOLOR (draw_text->dc); red = (float) ((int) rgb->r) / 255; green = (float) ((int) rgb->g) / 255; blue = (float) ((int) rgb->b) / 255; wmf_stream_printf (API,out,"%f %f %f setrgbcolor ",red,green,blue); wmf_stream_printf (API,out,"0 0 moveto show\n"); wmf_stream_printf (API,out,"grestore\n"); } static void wmf_eps_udata_init (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]udata_init"); } static void wmf_eps_udata_copy (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]udata_copy"); } static void wmf_eps_udata_set (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]udata_set"); } static void wmf_eps_udata_free (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]udata_free"); } /* Write out postscript path, *minus* the ultimate `fill', then call eps_path_fill * Note: I KNOW there is a better way to do patterns, but my ghostscript hangs when I try! * * Assumes that lbStyle != BS_NULL */ static void eps_path_fill (wmfAPI* API,wmfDC* dc,wmfD_Rect* bbox) { wmf_eps_t* ddata = WMF_EPS_GetData (API); wmfStream* out = ddata->out; wmfBrush* brush; wmfRGB* rgb; wmfBMP* bmp; float red; float green; float blue; float side; WMF_DEBUG (API,"~~~~~~~~eps_path_fill"); if (out == 0) return; brush = WMF_DC_BRUSH (dc); switch (WMF_BRUSH_STYLE (brush)) { case BS_NULL: WMF_ERROR (API,"Attempt to set null fill-style!"); API->err = wmf_E_Glitch; break; case BS_HATCHED: wmf_stream_printf (API,out,"clip "); if (WMF_DC_OPAQUE (dc)) { rgb = WMF_DC_BACKGROUND (dc); red = (float) ((int) rgb->r) / 255; green = (float) ((int) rgb->g) / 255; blue = (float) ((int) rgb->b) / 255; wmf_stream_printf (API,out,"%f %f %f setrgbcolor ",red,green,blue); wmf_stream_printf (API,out,"fill "); } wmf_stream_printf (API,out,"\n"); wmf_stream_printf (API,out,"1 setlinewidth "); wmf_stream_printf (API,out,"[] 0 setdash "); rgb = WMF_BRUSH_COLOR (brush); red = (float) ((int) rgb->r) / 255; green = (float) ((int) rgb->g) / 255; blue = (float) ((int) rgb->b) / 255; wmf_stream_printf (API,out,"%f %f %f setrgbcolor\n",red,green,blue); switch (WMF_BRUSH_HATCH (brush)) { case HS_HORIZONTAL: wmf_stream_printf (API,out,"%f 5 %f { newpath dup %f exch moveto %f exch lineto stroke } for\n", bbox->TL.y,bbox->BR.y,bbox->TL.x,bbox->BR.x); break; case HS_VERTICAL: wmf_stream_printf (API,out,"%f 5 %f { newpath dup %f moveto %f lineto stroke } for\n", bbox->TL.x,bbox->BR.x,bbox->TL.y,bbox->BR.y); break; case HS_FDIAGONAL: wmf_stream_printf (API,out,"gsave %% HS_FDIAGONAL\n"); wmf_stream_printf (API,out,"%f %f translate -45 rotate ", bbox->TL.x-(bbox->BR.y-bbox->TL.y)/2,(bbox->TL.y+bbox->BR.y)/2); side = ((bbox->BR.x-bbox->TL.x) + (bbox->BR.y-bbox->TL.y)) / 1.41421356237309504880; wmf_stream_printf (API,out,"0 5 %f { newpath dup 0 moveto %f lineto stroke } for ", side,side); wmf_stream_printf (API,out,"grestore\n"); break; case HS_BDIAGONAL: wmf_stream_printf (API,out,"gsave %% HS_BDIAGONAL\n"); wmf_stream_printf (API,out,"%f %f translate -45 rotate ", bbox->TL.x-(bbox->BR.y-bbox->TL.y)/2,(bbox->TL.y+bbox->BR.y)/2); side = ((bbox->BR.x-bbox->TL.x) + (bbox->BR.y-bbox->TL.y)) / 1.41421356237309504880; wmf_stream_printf (API,out,"0 5 %f { newpath dup 0 exch moveto %f exch lineto stroke } for ", side,side); wmf_stream_printf (API,out,"grestore\n"); break; case HS_CROSS: wmf_stream_printf (API,out,"%f 5 %f { newpath dup %f exch moveto %f exch lineto stroke } for\n", bbox->TL.y,bbox->BR.y,bbox->TL.x,bbox->BR.x); wmf_stream_printf (API,out,"%f 5 %f { newpath dup %f moveto %f lineto stroke } for\n", bbox->TL.x,bbox->BR.x,bbox->TL.y,bbox->BR.y); break; case HS_DIAGCROSS: wmf_stream_printf (API,out,"gsave %% HS_DIAGCROSS\n"); wmf_stream_printf (API,out,"%f %f translate -45 rotate ", bbox->TL.x-(bbox->BR.y-bbox->TL.y)/2,(bbox->TL.y+bbox->BR.y)/2); side = ((bbox->BR.x-bbox->TL.x) + (bbox->BR.y-bbox->TL.y)) / 1.41421356237309504880; wmf_stream_printf (API,out,"0 5 %f { newpath dup 0 moveto %f lineto stroke } for ", side,side); wmf_stream_printf (API,out,"0 5 %f { newpath dup 0 exch moveto %f exch lineto stroke } for ", side,side); wmf_stream_printf (API,out,"grestore\n"); break; default: if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Unsupported brush/hatch style!"); } else { WMF_ERROR (API,"Unsupported brush/hatch style!"); API->err = wmf_E_Glitch; } break; } break; case BS_DIBPATTERN: bmp = WMF_BRUSH_BITMAP (brush); if (bmp->data == 0) { if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Attempt to fill with non-existent pattern!"); } else { WMF_ERROR (API,"Attempt to fill with non-existent pattern!"); API->err = wmf_E_Glitch; break; } } /* fallthrough - TODO: implement bitmap fill */ default: if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Unsupported brush style!"); /* no break here */ } else { WMF_ERROR (API,"Unsupported brush style!"); API->err = wmf_E_Glitch; break; } /* fallthrough - no break here */ case BS_SOLID: rgb = WMF_BRUSH_COLOR (brush); red = (float) ((int) rgb->r) / 255; green = (float) ((int) rgb->g) / 255; blue = (float) ((int) rgb->b) / 255; wmf_stream_printf (API,out,"%f %f %f setrgbcolor fill\n",red,green,blue); break; } } /* Write out postscript path, *minus* the ultimate `stroke', then call eps_path_stroke * * Assumes that lopnStyle != PS_NULL */ static void eps_path_stroke (wmfAPI* API,wmfDC* dc,float linewidth) { wmf_eps_t* ddata = WMF_EPS_GetData (API); wmfStream* out = ddata->out; wmfPen* pen = 0; wmfRGB* rgb = 0; float red; float green; float blue; WMF_DEBUG (API,"~~~~~~~~eps_path_stroke"); if (out == 0) return; wmf_stream_printf (API,out,"\n"); wmf_stream_printf (API,out,"%f setlinewidth ",linewidth); pen = WMF_DC_PEN (dc); rgb = WMF_PEN_COLOR (pen); red = (float) ((int) rgb->r) / 255; green = (float) ((int) rgb->g) / 255; blue = (float) ((int) rgb->b) / 255; wmf_stream_printf (API,out,"%f %f %f setrgbcolor ",red,green,blue); switch (WMF_PEN_ENDCAP (pen)) { case PS_ENDCAP_SQUARE: wmf_stream_printf (API,out,"2 setlinecap "); break; case PS_ENDCAP_ROUND: wmf_stream_printf (API,out,"1 setlinecap "); break; case PS_ENDCAP_FLAT: default: wmf_stream_printf (API,out,"0 setlinecap "); break; } switch (WMF_PEN_JOIN (pen)) { case PS_JOIN_BEVEL: wmf_stream_printf (API,out,"2 setlinejoin "); break; case PS_JOIN_ROUND: wmf_stream_printf (API,out,"1 setlinejoin "); break; case PS_JOIN_MITER: default: wmf_stream_printf (API,out,"0 setlinejoin "); break; } switch (WMF_PEN_STYLE (pen)) { case PS_DASH: /* DASH_LINE */ wmf_stream_printf (API,out,"[ %f %f ] 0 setdash ", linewidth*10,linewidth*10); break; case PS_ALTERNATE: case PS_DOT: /* DOTTED_LINE */ wmf_stream_printf (API,out,"[ %f %f ] 0 setdash ", linewidth,linewidth*2); break; case PS_DASHDOT: /* DASH_DOT_LINE */ wmf_stream_printf (API,out,"[ %f %f %f %f ] 0 setdash ", linewidth*10,linewidth*2,linewidth,linewidth*2); break; case PS_DASHDOTDOT: /* DASH_2_DOTS_LINE */ wmf_stream_printf (API,out,"[ %f %f %f %f %f %f ] 0 setdash ", linewidth*10,linewidth*2,linewidth,linewidth*2,linewidth,linewidth*2); break; case PS_INSIDEFRAME: /* There is nothing to do in this case... */ case PS_SOLID: default: wmf_stream_printf (API,out,"[] 0 setdash "); break; } wmf_stream_printf (API,out,"stroke\n"); } #endif /* ! WITHOUT_LAYERS */ libwmf-0.2.13/src/ipa/eps.h000066400000000000000000000025171441723000300153540ustar00rootroot00000000000000/* libwmf ("ipa/eps.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFIPA_EPS_H #define WMFIPA_EPS_H typedef enum { eps_arc_ellipse = 0, eps_arc_open, eps_arc_pie, eps_arc_chord } eps_arc_t; static void eps_draw_arc (wmfAPI*,wmfDrawArc_t*,eps_arc_t); static void eps_path_fill (wmfAPI*,wmfDC*,wmfD_Rect*); static void eps_path_stroke (wmfAPI*,wmfDC*,float); static char* WMF_PS_DEFS = ""; static char* WMF_PS_HEAD = "\ save\n\ "; static char* WMF_PS_TAIL = "\ restore\n\ "; #endif /* ! WMFIPA_EPS_H */ libwmf-0.2.13/src/ipa/eps/000077500000000000000000000000001441723000300151765ustar00rootroot00000000000000libwmf-0.2.13/src/ipa/eps/bmp.h000066400000000000000000000067431441723000300161370ustar00rootroot00000000000000/* libwmf ("ipa/eps/bmp.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_eps_rop_draw (wmfAPI* API,wmfROP_Draw_t* rop_draw) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ (void)rop_draw; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]rop_draw"); } /* TODO ?? Care about bmp_draw->type */ static void wmf_eps_bmp_draw (wmfAPI* API,wmfBMP_Draw_t* bmp_draw) { wmf_eps_t* ddata = WMF_EPS_GetData (API); static const char hex[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; wmfStream* out = ddata->out; U16 x; U16 y; U16 i; unsigned int ui_x; unsigned int ui_y; char buffer[80]; float width; float height; wmfRGB rgb; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]bmp_draw"); if (out == 0) return; wmf_stream_printf (API,out,"gsave %% wmf_[eps_]bmp_draw\n"); wmf_stream_printf (API,out," %f %f translate\n",bmp_draw->pt.x,bmp_draw->pt.y); width = (float) ((double) bmp_draw->crop.w * bmp_draw->pixel_width ); height = (float) ((double) bmp_draw->crop.h * bmp_draw->pixel_height); wmf_stream_printf (API,out," 0 %f translate\n",height); wmf_stream_printf (API,out," %f %f scale\n",width,-height); /* I'm going to assume it's a color image - TODO: monochrome */ wmf_stream_printf (API,out," /picstr %u 3 mul string def\n",bmp_draw->crop.w); wmf_stream_printf (API,out," %u %u 8\n",(unsigned int) bmp_draw->crop.w,(unsigned int) bmp_draw->crop.h); wmf_stream_printf (API,out," [ %u 0 0 %u 0 0 ]\n",(unsigned int) bmp_draw->crop.w,(unsigned int) bmp_draw->crop.h); wmf_stream_printf (API,out," { currentfile picstr readhexstring pop } false 3\n"); wmf_stream_printf (API,out," colorimage\n"); for (y = 0; y < bmp_draw->crop.h; y++) { ui_y = (unsigned int) (y + bmp_draw->crop.y); i = 0; for (x = 0; x < bmp_draw->crop.w; x++) { ui_x = (unsigned int) (x + bmp_draw->crop.x); if (i == 78) { buffer[i++] = '\n'; buffer[i] = 0; wmf_stream_printf (API,out,buffer); i = 0; } wmf_ipa_bmp_color (API,&(bmp_draw->bmp),&rgb,ui_x,ui_y); buffer[i++] = hex[(rgb.r & 0xf0) >> 4]; buffer[i++] = hex[ rgb.r & 0x0f ]; buffer[i++] = hex[(rgb.g & 0xf0) >> 4]; buffer[i++] = hex[ rgb.g & 0x0f ]; buffer[i++] = hex[(rgb.b & 0xf0) >> 4]; buffer[i++] = hex[ rgb.b & 0x0f ]; } if (i > 0) { buffer[i++] = '\n'; buffer[i] = 0; wmf_stream_printf (API,out,buffer); } } wmf_stream_printf (API,out,"grestore\n"); } static void wmf_eps_bmp_read (wmfAPI* API,wmfBMP_Read_t* bmp_read) { WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]bmp_read"); wmf_ipa_bmp_read (API,bmp_read); } static void wmf_eps_bmp_free (wmfAPI* API,wmfBMP* bmp) { WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]bmp_free"); wmf_ipa_bmp_free (API,bmp); } libwmf-0.2.13/src/ipa/eps/device.h000066400000000000000000000140751441723000300166150ustar00rootroot00000000000000/* libwmf ("ipa/eps/device.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This is called by wmf_play() the *first* time the meta file is played */ static void wmf_eps_device_open (wmfAPI* API) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]device_open"); } /* This is called by wmf_api_destroy() */ static void wmf_eps_device_close (wmfAPI* API) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]device_close"); } /* This is called from the beginning of each play for initial page setup */ static void wmf_eps_device_begin (wmfAPI* API) { wmf_eps_t* ddata = WMF_EPS_GetData (API); wmfStream* out = ddata->out; float Ox; float Oy; float xScale; float yScale; time_t t; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]device_begin"); if (out == 0) return; if ((out->reset (out->context)) && ((API->flags & WMF_OPT_IGNORE_NONFATAL) == 0)) { WMF_ERROR (API,"unable to reset output stream!"); API->err = wmf_E_DeviceError; return; } if ((ddata->bbox.BR.x <= ddata->bbox.TL.x) || (ddata->bbox.BR.y <= ddata->bbox.TL.y)) { WMF_ERROR (API,"~~~~~~~~wmf_[eps_]device_begin: bounding box has null or negative size!"); API->err = wmf_E_Glitch; return; } if ((ddata->eps_width == 0) || (ddata->eps_height == 0)) { ddata->eps_width = (unsigned int) ceil (ddata->bbox.BR.x - ddata->bbox.TL.x); ddata->eps_height = (unsigned int) ceil (ddata->bbox.BR.y - ddata->bbox.TL.y); } if (ddata->flags & WMF_EPS_STYLE_PS) /* Output in full postscript style */ { wmf_stream_printf (API,out,"%%!PS-Adobe-2.0\n"); wmf_stream_printf (API,out,"%%%%BoundingBox: "); wmf_stream_printf (API,out," 0 0 %u %u\n",ddata->page_width,ddata->page_height); if (ddata->Title) { wmf_stream_printf (API,out,"%%%%Title: "); wmf_stream_printf (API,out,"%s\n",ddata->Title); } if (ddata->Creator) { wmf_stream_printf (API,out,"%%%%Creator: "); wmf_stream_printf (API,out,"%s\n",ddata->Creator); } if (ddata->Date) { wmf_stream_printf (API,out,"%%%%Date: "); wmf_stream_printf (API,out,"%s\n",ddata->Date); } else { t = time (0); wmf_stream_printf (API,out,"%%%%Date: "); wmf_stream_printf (API,out,"%s\n",ctime (&t)); } if (ddata->For) { wmf_stream_printf (API,out,"%%%%For: "); wmf_stream_printf (API,out,"%s\n",ddata->For); } wmf_stream_printf (API,out,"%%%%Pages: 1\n"); wmf_stream_printf (API,out,"%%%%PageOrder: Ascend\n"); wmf_stream_printf (API,out,"%%%%EndComments\n"); wmf_stream_printf (API,out,"%%%%BeginProlog\n"); out->sputs (WMF_PS_DEFS,out->context); wmf_stream_printf (API,out,"%%%%EndProlog\n"); wmf_stream_printf (API,out,"%%%%BeginSetup\n"); wmf_stream_printf (API,out,"%%%%EndSetup\n"); wmf_stream_printf (API,out,"%%Page: 1 1\n"); if (ddata->flags & WMF_EPS_LANDSCAPE) wmf_stream_printf (API,out,"%%%%PageOrientation: Landscape\n"); else wmf_stream_printf (API,out,"%%%%PageOrientation: Portrait\n" ); wmf_stream_printf (API,out,"%%%%BeginPageSetup\n"); out->sputs (WMF_PS_HEAD,out->context); wmf_stream_printf (API,out,"gsave\n"); if (ddata->flags & WMF_EPS_LANDSCAPE) { wmf_stream_printf (API,out,"%u 0 translate\n",ddata->page_width); wmf_stream_printf (API,out,"90 rotate\n"); } wmf_stream_printf (API,out,"%%%%EndPageSetup\n\n"); wmf_stream_printf (API,out,"%d %d translate\n",ddata->eps_x,ddata->eps_y); } else /* Output in basic encapsulated postscript style */ { wmf_stream_printf (API,out,"%%!PS-Adobe-2.0 EPSF-2.0\n"); wmf_stream_printf (API,out,"%%%%BoundingBox: "); wmf_stream_printf (API,out," 0 0 %d %d\n",ddata->eps_width,ddata->eps_height); out->sputs (WMF_PS_DEFS,out->context); out->sputs (WMF_PS_HEAD,out->context); wmf_stream_printf (API,out,"gsave\n"); } wmf_stream_printf (API,out,"0 %d translate\n",ddata->eps_height); wmf_stream_printf (API,out,"1 -1 scale\n"); Ox = - ((float) ddata->eps_width * ddata->bbox.TL.x) / (ddata->bbox.BR.x - ddata->bbox.TL.x); Oy = - ((float) ddata->eps_height * ddata->bbox.TL.y) / (ddata->bbox.BR.y - ddata->bbox.TL.y); wmf_stream_printf (API,out,"%f %f translate\n",Ox,Oy); xScale = (float) ddata->eps_width / (ddata->bbox.BR.x - ddata->bbox.TL.x); yScale = (float) ddata->eps_height / (ddata->bbox.BR.y - ddata->bbox.TL.y); wmf_stream_printf (API,out,"%f %f scale\n",xScale,yScale); wmf_stream_printf (API,out,"gsave %% begin clip\n"); } /* This is called from the end of each play for page termination */ static void wmf_eps_device_end (wmfAPI* API) { wmf_eps_t* ddata = WMF_EPS_GetData (API); wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]device_end"); if (out == 0) return; wmf_stream_printf (API,out,"grestore %% end clip\n"); if (ddata->flags & WMF_EPS_STYLE_PS) /* Output in full postscript style */ { wmf_stream_printf (API,out,"%%%%PageTrailer\n"); wmf_stream_printf (API,out,"grestore\n"); out->sputs (WMF_PS_TAIL,out->context); wmf_stream_printf (API,out,"showpage\n"); wmf_stream_printf (API,out,"%%%%Trailer\n"); wmf_stream_printf (API,out,"%%%%EOF\n"); } else /* Output in basic encapsulated postscript style */ { wmf_stream_printf (API,out,"grestore\n"); out->sputs (WMF_PS_TAIL,out->context); wmf_stream_printf (API,out,"showpage\n"); } } libwmf-0.2.13/src/ipa/eps/draw.h000066400000000000000000000300641441723000300163070ustar00rootroot00000000000000/* libwmf ("ipa/eps/draw.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_eps_flood_interior (wmfAPI* API,wmfFlood_t* flood) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ (void)flood; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]flood_interior"); if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"flood_interior unsupported."); } else { WMF_ERROR (API,"flood_interior unsupported."); API->err = wmf_E_Glitch; } } static void wmf_eps_flood_exterior (wmfAPI* API,wmfFlood_t* flood) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ (void)flood; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]flood_exterior"); if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"flood_exterior unsupported."); } else { WMF_ERROR (API,"flood_exterior unsupported."); API->err = wmf_E_Glitch; } } static void wmf_eps_draw_pixel (wmfAPI* API,wmfDrawPixel_t* draw_pixel) { wmf_eps_t* ddata = WMF_EPS_GetData (API); float red; float green; float blue; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]draw_pixel"); if (out == 0) return; red = (float) ((int) draw_pixel->color.r) / 255; green = (float) ((int) draw_pixel->color.g) / 255; blue = (float) ((int) draw_pixel->color.b) / 255; wmf_stream_printf (API,out,"newpath %f %f moveto ",draw_pixel->pt.x,draw_pixel->pt.y); wmf_stream_printf (API,out,"%f dup neg exch 0 rlineto 0 %f rlineto 0 rlineto ", (float) draw_pixel->pixel_width, (float) draw_pixel->pixel_height); wmf_stream_printf (API,out,"closepath %f %f %f setrgbcolor fill\n",red,green,blue); } static void wmf_eps_draw_pie (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]draw_pie"); eps_draw_arc (API,draw_arc,eps_arc_pie); } static void wmf_eps_draw_chord (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]draw_chord"); eps_draw_arc (API,draw_arc,eps_arc_chord); } static void wmf_eps_draw_arc (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]draw_arc"); eps_draw_arc (API,draw_arc,eps_arc_open); } static void wmf_eps_draw_ellipse (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_eps_t* ddata = WMF_EPS_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]draw_ellipse"); eps_draw_arc (API,draw_arc,eps_arc_ellipse); } static void eps_draw_arc (wmfAPI* API,wmfDrawArc_t* draw_arc,eps_arc_t finish) { wmf_eps_t* ddata = WMF_EPS_GetData (API); float Ox; float Oy; float a; float b; float start = 0; float end = 360; float linewidth; double x_eff; double y_eff; double stretch; wmfStream* out = ddata->out; wmfPen* pen = 0; wmfD_Rect bbox; WMF_DEBUG (API,"~~~~~~~~eps_draw_arc"); if (out == 0) return; bbox.TL = draw_arc->TL; bbox.BR = draw_arc->BR; Ox = (draw_arc->BR.x + draw_arc->TL.x) / 2; /* origin of ellipse */ Oy = (draw_arc->BR.y + draw_arc->TL.y) / 2; a = (draw_arc->BR.x - draw_arc->TL.x) / 2; /* axes of ellipse */ b = (draw_arc->BR.y - draw_arc->TL.y) / 2; if (finish != eps_arc_ellipse) { x_eff = (double) draw_arc->start.x; y_eff = (double) a * (double) a - x_eff * x_eff; y_eff = ((y_eff < 0) ? 0 : sqrt (y_eff)); if (draw_arc->start.y < 0) y_eff = - y_eff; start = (float) (atan2 (y_eff,x_eff) * 180 / PI); x_eff = (double) draw_arc->end.x; y_eff = (double) a * (double) a - x_eff * x_eff; y_eff = ((y_eff < 0) ? 0 : sqrt (y_eff)); if (draw_arc->end.y < 0) y_eff = - y_eff; end = (float) (atan2 (y_eff,x_eff) * 180 / PI); } if (TO_FILL (draw_arc) && (finish != eps_arc_open)) { wmf_stream_printf (API,out,"gsave %% eps_draw_arc\n"); wmf_stream_printf (API,out,"matrix currentmatrix %f %f translate 1 %f scale ",Ox,Oy,b/a); if (finish == eps_arc_ellipse) { wmf_stream_printf (API,out,"0 0 %f 0 360 arc ",a); } else if (finish == eps_arc_pie) { wmf_stream_printf (API,out,"0 0 %f %f %f arc 0 0 lineto ",a,start,end); } else if (finish == eps_arc_chord) { wmf_stream_printf (API,out,"0 0 %f %f %f arc ",a,start,end); } wmf_stream_printf (API,out,"closepath setmatrix "); eps_path_fill (API,draw_arc->dc,&bbox); wmf_stream_printf (API,out,"grestore\n"); } if (TO_DRAW (draw_arc)) { pen = WMF_DC_PEN (draw_arc->dc); linewidth = (float) WMF_PEN_HEIGHT (pen); stretch = WMF_PEN_WIDTH (pen) / WMF_PEN_HEIGHT (pen); wmf_stream_printf (API,out,"gsave %% eps_draw_ellipse\n"); wmf_stream_printf (API,out,"%f 1 scale ",stretch); wmf_stream_printf (API,out,"matrix currentmatrix %f %f translate 1 %f scale ", (float) ((double) Ox / stretch),Oy,b / (float) ((double) a / stretch)); if (finish == eps_arc_ellipse) { wmf_stream_printf (API,out,"0 0 %f 0 360 arc closepath ",a); } else if (finish == eps_arc_open) { wmf_stream_printf (API,out,"0 0 %f %f %f arc ",a,start,end); } else if (finish == eps_arc_pie) { wmf_stream_printf (API,out,"0 0 %f %f %f arc 0 0 lineto closepath ",a,start,end); } else if (finish == eps_arc_chord) { wmf_stream_printf (API,out,"0 0 %f %f %f arc closepath ",a,start,end); } wmf_stream_printf (API,out,"setmatrix "); eps_path_stroke (API,draw_arc->dc,linewidth); wmf_stream_printf (API,out,"grestore\n"); } } static void wmf_eps_draw_line (wmfAPI* API,wmfDrawLine_t* draw_line) { wmf_eps_t* ddata = WMF_EPS_GetData (API); float linewidth; double stretch; wmfStream* out = ddata->out; wmfPen* pen = 0; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]draw_line"); if (out == 0) return; if (TO_DRAW (draw_line)) { pen = WMF_DC_PEN (draw_line->dc); linewidth = (float) WMF_PEN_HEIGHT (pen); stretch = WMF_PEN_WIDTH (pen) / WMF_PEN_HEIGHT (pen); wmf_stream_printf (API,out,"gsave %% wmf_[eps_]draw_line\n"); wmf_stream_printf (API,out,"%f 1 scale ",stretch); wmf_stream_printf (API,out,"newpath %f %f moveto %f %f lineto ", (float) ((double) draw_line->from.x / stretch),draw_line->from.y, (float) ((double) draw_line->to.x / stretch),draw_line->to.y ); eps_path_stroke (API,draw_line->dc,linewidth); wmf_stream_printf (API,out,"grestore\n"); } } static void wmf_eps_poly_line (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_eps_t* ddata = WMF_EPS_GetData (API); U16 i; U16 sub_length; U16 sub_count; float linewidth; double stretch; wmfPolyLine_t sub_line; wmfStream* out = ddata->out; wmfPen* pen = 0; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]poly_line"); if (out == 0) return; if (poly_line->count > 500) { sub_length = poly_line->count / (1 + poly_line->count / 500); sub_count = 0; sub_line.dc = poly_line->dc; sub_line.pt = poly_line->pt; while (poly_line->count > sub_count + 1) { sub_line.count = MIN (sub_length,poly_line->count - sub_count); wmf_eps_poly_line (API,&sub_line); sub_line.pt += sub_line.count - 1; sub_count += sub_line.count - 1; } } else if ((poly_line->count > 1) && TO_DRAW (poly_line)) { pen = WMF_DC_PEN (poly_line->dc); linewidth = (float) WMF_PEN_HEIGHT (pen); stretch = WMF_PEN_WIDTH (pen) / WMF_PEN_HEIGHT (pen); wmf_stream_printf (API,out,"gsave %% wmf_[eps_]poly_line\n"); wmf_stream_printf (API,out,"%f 1 scale\n",stretch); for (i = 0; i < poly_line->count; i++) { wmf_stream_printf (API,out,"%f %f\n", (float) ((double) poly_line->pt[poly_line->count-1-i].x / stretch), poly_line->pt[poly_line->count-1-i].y); } wmf_stream_printf (API,out,"newpath moveto 2 1 %u { pop lineto } for ",(unsigned int) poly_line->count); eps_path_stroke (API,poly_line->dc,linewidth); wmf_stream_printf (API,out,"grestore\n"); } } static void wmf_eps_draw_polygon (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_eps_t* ddata = WMF_EPS_GetData (API); U16 i; float linewidth; double stretch; wmfStream* out = ddata->out; wmfPen* pen = 0; wmfD_Rect bbox; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]draw_polygon"); if (out == 0) return; if (poly_line->count > 500) { if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Too many points on polygon!"); } else { WMF_ERROR (API,"Too many points on polygon!"); API->err = wmf_E_Glitch; } } else if (poly_line->count > 2) { if (TO_FILL (poly_line)) { bbox.TL.x = poly_line->pt[0].x; bbox.TL.y = poly_line->pt[0].y; bbox.BR.x = poly_line->pt[0].x; bbox.BR.y = poly_line->pt[0].y; wmf_stream_printf (API,out,"gsave %% wmf_[eps_]draw_polygon\n"); for (i = 0; i < poly_line->count; i++) { wmf_stream_printf (API,out,"%f %f\n",poly_line->pt[i].x,poly_line->pt[i].y); if (bbox.TL.x > poly_line->pt[i].x) bbox.TL.x = poly_line->pt[i].x; if (bbox.TL.y > poly_line->pt[i].y) bbox.TL.y = poly_line->pt[i].y; if (bbox.BR.x < poly_line->pt[i].x) bbox.BR.x = poly_line->pt[i].x; if (bbox.BR.y < poly_line->pt[i].y) bbox.BR.y = poly_line->pt[i].y; } wmf_stream_printf (API,out,"newpath moveto 2 1 %u { pop lineto } for closepath ", (unsigned int) poly_line->count); eps_path_fill (API,poly_line->dc,&bbox); wmf_stream_printf (API,out,"grestore\n"); } if (TO_DRAW (poly_line)) { pen = WMF_DC_PEN (poly_line->dc); linewidth = (float) WMF_PEN_HEIGHT (pen); stretch = WMF_PEN_WIDTH (pen) / WMF_PEN_HEIGHT (pen); wmf_stream_printf (API,out,"gsave %% wmf_[eps_]draw_polygon\n"); wmf_stream_printf (API,out,"%f 1 scale\n",stretch); for (i = 0; i < poly_line->count; i++) { wmf_stream_printf (API,out,"%f %f\n", (float) ((double) poly_line->pt[poly_line->count-1-i].x / stretch), poly_line->pt[poly_line->count-1-i].y); } wmf_stream_printf (API,out,"newpath moveto 2 1 %u { pop lineto } for closepath ", (unsigned int) poly_line->count); eps_path_stroke (API,poly_line->dc,linewidth); wmf_stream_printf (API,out,"grestore\n"); } } } static void wmf_eps_draw_rectangle (wmfAPI* API,wmfDrawRectangle_t* draw_rect) { wmf_eps_t* ddata = WMF_EPS_GetData (API); float linewidth; double stretch; wmfStream* out = ddata->out; wmfPen* pen = 0; wmfD_Rect bbox; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]draw_rectangle"); if (out == 0) return; if (TO_FILL (draw_rect)) { bbox.TL = draw_rect->TL; bbox.BR = draw_rect->BR; wmf_stream_printf (API,out,"gsave %% wmf_[eps_]draw_rectangle\n"); wmf_stream_printf (API,out,"newpath %f %f moveto %f %f lineto %f %f lineto %f %f lineto closepath ", draw_rect->TL.x,draw_rect->TL.y, draw_rect->TL.x,draw_rect->BR.y, draw_rect->BR.x,draw_rect->BR.y, draw_rect->BR.x,draw_rect->TL.y); eps_path_fill (API,draw_rect->dc,&bbox); wmf_stream_printf (API,out,"grestore\n"); } if (TO_DRAW (draw_rect)) { pen = WMF_DC_PEN (draw_rect->dc); linewidth = (float) WMF_PEN_HEIGHT (pen); stretch = WMF_PEN_WIDTH (pen) / WMF_PEN_HEIGHT (pen); wmf_stream_printf (API,out,"gsave %% wmf_[eps_]draw_rectangle\n"); wmf_stream_printf (API,out,"%f 1 scale ",stretch); wmf_stream_printf (API,out,"newpath %f %f moveto %f %f lineto %f %f lineto %f %f lineto closepath ", (float) ((double) draw_rect->TL.x / stretch),draw_rect->TL.y, (float) ((double) draw_rect->TL.x / stretch),draw_rect->BR.y, (float) ((double) draw_rect->BR.x / stretch),draw_rect->BR.y, (float) ((double) draw_rect->BR.x / stretch),draw_rect->TL.y); eps_path_stroke (API,draw_rect->dc,linewidth); wmf_stream_printf (API,out,"grestore\n"); } } libwmf-0.2.13/src/ipa/eps/region.h000066400000000000000000000076441441723000300166450ustar00rootroot00000000000000/* libwmf ("ipa/eps/region.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_eps_region_frame (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_eps_t* ddata = WMF_EPS_GetData (API); wmfStream* out = ddata->out; wmfPen* set_pen = 0; wmfPen pen; wmfDC dc; wmfD_Rect rect; unsigned int i; float linewidth; float stretch; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]region_frame"); if (out == 0) return; if (poly_rect->count == 0) return; set_pen = WMF_DC_PEN (poly_rect->dc); pen = (*set_pen); WMF_PEN_SET_STYLE (&pen,PS_SOLID); WMF_PEN_SET_ENDCAP (&pen,PS_ENDCAP_SQUARE); WMF_PEN_SET_JOIN (&pen,PS_JOIN_MITER); WMF_DC_SET_PEN (&dc,&pen); linewidth = (float) poly_rect->height; stretch = poly_rect->width / poly_rect->height; for (i = 0; i < poly_rect->count; i++) { rect.TL.x = poly_rect->TL[i].x - poly_rect->width / 2; rect.TL.y = poly_rect->TL[i].y - poly_rect->height / 2; rect.BR.x = poly_rect->BR[i].x + poly_rect->width / 2; rect.BR.y = poly_rect->BR[i].y + poly_rect->height / 2; wmf_stream_printf (API,out,"gsave %% wmf_[eps_]region_frame\n"); wmf_stream_printf (API,out,"%f 1 scale ",stretch); wmf_stream_printf (API,out,"newpath %f %f moveto %f %f lineto %f %f lineto %f %f lineto closepath ", rect.TL.x / stretch,rect.TL.y, rect.TL.x / stretch,rect.BR.y, rect.BR.x / stretch,rect.BR.y, rect.BR.x / stretch,rect.TL.y); eps_path_stroke (API,&dc,linewidth); wmf_stream_printf (API,out,"grestore\n"); } } static void wmf_eps_region_paint (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_eps_t* ddata = WMF_EPS_GetData (API); unsigned int i; wmfStream* out = ddata->out; wmfD_Rect bbox; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]region_paint"); if (out == 0) return; if (poly_rect->count == 0) return; if (TO_FILL (poly_rect)) { for (i = 0; i < poly_rect->count; i++) { bbox.TL = poly_rect->TL[i]; bbox.BR = poly_rect->BR[i]; wmf_stream_printf (API,out,"gsave %% wmf_[eps_]region_paint\n"); wmf_stream_printf (API,out,"newpath %f %f moveto %f %f lineto %f %f lineto %f %f lineto closepath ", poly_rect->TL[i].x,poly_rect->TL[i].y, poly_rect->TL[i].x,poly_rect->BR[i].y, poly_rect->BR[i].x,poly_rect->BR[i].y, poly_rect->BR[i].x,poly_rect->TL[i].y); eps_path_fill (API,poly_rect->dc,&bbox); wmf_stream_printf (API,out,"grestore\n"); } } } static void wmf_eps_region_clip (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_eps_t* ddata = WMF_EPS_GetData (API); unsigned int i; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[eps_]region_clip"); if (out == 0) return; wmf_stream_printf (API,out,"grestore %% end clip\n"); wmf_stream_printf (API,out,"gsave %% begin clip\n"); if (poly_rect->count == 0) return; wmf_stream_printf (API,out,"[\n"); for (i = 0; i < poly_rect->count; i++) { wmf_stream_printf (API,out,"%f %f %f %f\n", poly_rect->TL[i].x, poly_rect->TL[i].y, poly_rect->BR[i].x-poly_rect->TL[i].x, poly_rect->BR[i].y-poly_rect->TL[i].y); } wmf_stream_printf (API,out,"] rectclip\n"); } libwmf-0.2.13/src/ipa/fig.c000066400000000000000000000234551441723000300153310ustar00rootroot00000000000000/* libwmf (ipa/fig.c): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ #include #include #include #ifdef HAVE_TIME_H #include #endif /* HAVE_TIME_H */ #include "wmfdefs.h" #ifndef WITHOUT_LAYERS #include "libwmf/fig.h" static void wmf_fig_device_open (wmfAPI*); static void wmf_fig_device_close (wmfAPI*); static void wmf_fig_device_begin (wmfAPI*); static void wmf_fig_device_end (wmfAPI*); static void wmf_fig_flood_interior (wmfAPI*,wmfFlood_t*); static void wmf_fig_flood_exterior (wmfAPI*,wmfFlood_t*); static void wmf_fig_draw_pixel (wmfAPI*,wmfDrawPixel_t*); static void wmf_fig_draw_pie (wmfAPI*,wmfDrawArc_t*); static void wmf_fig_draw_chord (wmfAPI*,wmfDrawArc_t*); static void wmf_fig_draw_arc (wmfAPI*,wmfDrawArc_t*); static void wmf_fig_draw_ellipse (wmfAPI*,wmfDrawArc_t*); static void wmf_fig_draw_line (wmfAPI*,wmfDrawLine_t*); static void wmf_fig_poly_line (wmfAPI*,wmfPolyLine_t*); static void wmf_fig_draw_polygon (wmfAPI*,wmfPolyLine_t*); static void wmf_fig_draw_rectangle (wmfAPI*,wmfDrawRectangle_t*); static void wmf_fig_rop_draw (wmfAPI*,wmfROP_Draw_t*); static void wmf_fig_bmp_draw (wmfAPI*,wmfBMP_Draw_t*); static void wmf_fig_bmp_read (wmfAPI*,wmfBMP_Read_t*); static void wmf_fig_bmp_free (wmfAPI*,wmfBMP*); static void wmf_fig_draw_text (wmfAPI*,wmfDrawText_t*); static void wmf_fig_udata_init (wmfAPI*,wmfUserData_t*); static void wmf_fig_udata_copy (wmfAPI*,wmfUserData_t*); static void wmf_fig_udata_set (wmfAPI*,wmfUserData_t*); static void wmf_fig_udata_free (wmfAPI*,wmfUserData_t*); static void wmf_fig_region_frame (wmfAPI*,wmfPolyRectangle_t*); static void wmf_fig_region_paint (wmfAPI*,wmfPolyRectangle_t*); static void wmf_fig_region_clip (wmfAPI*,wmfPolyRectangle_t*); #include "ipa/fig.h" #include "ipa/fig/bmp.h" #include "ipa/fig/color.h" #include "ipa/fig/device.h" #include "ipa/fig/draw.h" #include "ipa/fig/font.h" #include "ipa/fig/region.h" #endif /* ! WITHOUT_LAYERS */ void wmf_fig_function (wmfAPI* API) { #ifndef WITHOUT_LAYERS wmf_fig_t* ddata = 0; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; fig_t* fig = 0; int i; if ((API->flags & API_STANDARD_INTERFACE) == 0) { WMF_ERROR (API,"Can't use this device layer with 'lite' interface!"); API->err = wmf_E_DeviceError; return; } /* IPA function reference links */ FR->device_open = wmf_fig_device_open; FR->device_close = wmf_fig_device_close; FR->device_begin = wmf_fig_device_begin; FR->device_end = wmf_fig_device_end; FR->flood_interior = wmf_fig_flood_interior; FR->flood_exterior = wmf_fig_flood_exterior; FR->draw_pixel = wmf_fig_draw_pixel; FR->draw_pie = wmf_fig_draw_pie; FR->draw_chord = wmf_fig_draw_chord; FR->draw_arc = wmf_fig_draw_arc; FR->draw_ellipse = wmf_fig_draw_ellipse; FR->draw_line = wmf_fig_draw_line; FR->poly_line = wmf_fig_poly_line; FR->draw_polygon = wmf_fig_draw_polygon; FR->draw_rectangle = wmf_fig_draw_rectangle; FR->rop_draw = wmf_fig_rop_draw; FR->bmp_draw = wmf_fig_bmp_draw; FR->bmp_read = wmf_fig_bmp_read; FR->bmp_free = wmf_fig_bmp_free; FR->draw_text = wmf_fig_draw_text; FR->udata_init = wmf_fig_udata_init; FR->udata_copy = wmf_fig_udata_copy; FR->udata_set = wmf_fig_udata_set; FR->udata_free = wmf_fig_udata_free; FR->region_frame = wmf_fig_region_frame; FR->region_paint = wmf_fig_region_paint; FR->region_clip = wmf_fig_region_clip; /* Allocate device data structure */ ddata = (wmf_fig_t*) wmf_malloc (API,sizeof (wmf_fig_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } API->device_data = (void*) ddata; /* Device data defaults */ ddata->fig_data = (void*) wmf_malloc (API,sizeof (fig_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } fig = (fig_t*) ddata->fig_data; for (i = 0; i < NUMPATTERNS; i++) { fig->equiv[i] = 0; } ddata->bbox.TL.x = 0; ddata->bbox.TL.y = 0; ddata->bbox.BR.x = 0; ddata->bbox.BR.y = 0; ddata->out = 0; ddata->Title = 0; ddata->Creator = 0; ddata->Date = 0; ddata->For = 0; ddata->fig_x = 0; ddata->fig_y = 0; ddata->fig_width = 0; ddata->fig_height = 0; ddata->format = wmf_P_A4; ddata->dpi = 1200; ddata->depth = 999; ddata->ddec = 1; ddata->image.context = 0; ddata->image.name = 0; ddata->flags = 0; #ifdef HAVE_LIBPNG ddata->flags |= WMF_FIG_SUPPORTS_PNG; #endif #ifdef HAVE_LIBJPEG ddata->flags |= WMF_FIG_SUPPORTS_JPEG; #endif /* Add the 32 standard colors at the head of the IPA color table: */ fig_std_colors (API); #else /* ! WITHOUT_LAYERS */ API->device_data = 0; API->err = wmf_E_DeviceError; #endif /* ! WITHOUT_LAYERS */ } #ifndef WITHOUT_LAYERS static void wmf_fig_udata_init (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_fig_t* ddata = WMF_FIG_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]udata_init"); } static void wmf_fig_udata_copy (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_fig_t* ddata = WMF_FIG_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]udata_copy"); } static void wmf_fig_udata_set (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_fig_t* ddata = WMF_FIG_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]udata_set"); } static void wmf_fig_udata_free (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_fig_t* ddata = WMF_FIG_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]udata_free"); } static int fig_brushstyle (wmfAPI* API,wmfDC* dc) { wmfBrush* brush = WMF_DC_BRUSH (dc); wmfBMP* bmp = 0; int fillstyle = -1; /* Not filled */ if (WMF_BRUSH_STYLE (brush) == BS_NULL) { return (fillstyle); } switch (WMF_BRUSH_STYLE (brush)) { case BS_NULL: fillstyle = -1; break; case BS_SOLID: fillstyle = 20; break; case BS_HATCHED: switch (WMF_BRUSH_HATCH (brush)) { case HS_HORIZONTAL: fillstyle = 49; break; case HS_VERTICAL: fillstyle = 50; break; case HS_FDIAGONAL: fillstyle = 44; break; case HS_BDIAGONAL: fillstyle = 45; break; case HS_CROSS: fillstyle = 51; break; case HS_DIAGCROSS: fillstyle = 46; break; default: fillstyle = 20; wmf_printf (API,"Unsupported Hatching: %d\n",(int) (brush->lbHatch)); break; } break; case BS_DIBPATTERN: WMF_DEBUG (API,"Attempt to fill with bitmap! Using random pattern instead..."); bmp = WMF_BRUSH_BITMAP (brush); fillstyle = fig_bmp_pattern (API,bmp->data); break; default: wmf_printf (API,"Unsupported Brush Style: %d\n",(int) (brush->lbStyle)); break; } return (fillstyle); } static int fig_linestyle (wmfAPI* API,wmfDC* dc) { (void)API; wmfPen* pen = WMF_DC_PEN (dc); int linestyle = SOLID_LINE; switch (WMF_PEN_STYLE (pen)) { case PS_DASH: /* DASH_LINE */ linestyle = DASH_LINE; break; case PS_ALTERNATE: case PS_DOT: /* DOTTED_LINE */ linestyle = DOTTED_LINE; break; case PS_DASHDOT: /* DASH_DOT_LINE */ linestyle = DASH_DOT_LINE; break; case PS_DASHDOTDOT: /* DASH_2_DOTS_LINE */ linestyle = DASH_2_DOTS_LINE; break; case PS_INSIDEFRAME: /* There is nothing to do in this case... */ case PS_SOLID: default: linestyle = SOLID_LINE; break; } return (linestyle); } static int fig_joinstyle (wmfAPI* API,wmfDC* dc) { (void)API; wmfPen* pen = WMF_DC_PEN (dc); int joinstyle = JOIN_ROUND; switch (WMF_PEN_JOIN (pen)) { case PS_JOIN_BEVEL: joinstyle = JOIN_BEVEL; break; case PS_JOIN_MITER: joinstyle = JOIN_MITER; break; case PS_JOIN_ROUND: default: joinstyle = JOIN_ROUND; break; } return (joinstyle); } static int fig_capstyle (wmfAPI* API,wmfDC* dc) { (void)API; wmfPen* pen = WMF_DC_PEN (dc); int capstyle = CAP_ROUND; switch (WMF_PEN_ENDCAP (pen)) { case PS_ENDCAP_SQUARE: capstyle = CAP_PROJECT; break; case PS_ENDCAP_FLAT: capstyle = CAP_PROJECT; break; case PS_ENDCAP_ROUND: default: capstyle = CAP_ROUND; break; } return (capstyle); } static void fig_set_style (wmfAPI* API,wmfDC* dc,figDC* fig) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfBrush* brush = WMF_DC_BRUSH (dc); wmfPen* pen = WMF_DC_PEN (dc); fig->pen_style = 0; fig->thickness = (fig_height (API,WMF_PEN_HEIGHT (pen)) * 72) / ddata->dpi; fig->area_fill = fig_brushstyle (API,dc); fig->line_style = fig_linestyle (API,dc); fig->join_style = fig_joinstyle (API,dc); fig->cap_style = fig_capstyle (API,dc); fig->radius = 5; fig->forward_arrow = 0; fig->backward_arrow = 0; fig->pen_color = wmf_ipa_color_index (API,WMF_PEN_COLOR (pen)); fig->fill_color = wmf_ipa_color_index (API,WMF_BRUSH_COLOR (brush)); /* If a pattern is specified, the given fill_color should be used to * render its lines instead of the given pen_color, and the background * should be white. Without this, Xfig would use fill_color to fill * the space between pattern lines drawn in pen_color, which is wrong. */ if (fig->area_fill > 40) { fig->pen_color = fig->fill_color; fig->fill_color = 7; } else { fig->thickness++; } fig->style_val = 5.0; } #endif /* ! WITHOUT_LAYERS */ libwmf-0.2.13/src/ipa/fig.h000066400000000000000000000074341441723000300153350ustar00rootroot00000000000000/* libwmf ("ipa/fig.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFIPA_FIG_H #define WMFIPA_FIG_H /* * FIG : Facility for Interactive Generation of figures * Copyright (c) 1985-1988 by Supoj Sutanthavibul * Parts Copyright (c) 1989-1998 by Brian V. Smith * Parts Copyright (c) 1991 by Paul King * * Any party obtaining a copy of these files is granted, free of charge, a * full and unrestricted irrevocable, world-wide, paid up, royalty-free, * nonexclusive right and license to deal in this software and * documentation files (the "Software"), including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons who receive * copies from any such party to do so, with the only requirement being * that this copyright notice remain intact. */ /* FIG format object codes */ #define O_COLOR_DEF 0 #define O_ELLIPSE 1 #define O_POLYLINE 2 #define O_SPLINE 3 #define O_TEXT 4 #define O_ARC 5 #define O_COMPOUND 6 #define O_END_COMPOUND -O_COMPOUND #define O_ALL_OBJECT 99 /* Subtypes for O_POLYLINE */ #define T_POLYLINE 1 #define T_BOX 2 #define T_POLYGON 3 #define T_ARC_BOX 4 #define T_PICTURE 5 /* line types */ #define SOLID_LINE 0 #define DASH_LINE 1 #define DOTTED_LINE 2 #define DASH_DOT_LINE 3 #define DASH_2_DOTS_LINE 4 #define DASH_3_DOTS_LINE 5 /* Join styles */ #define JOIN_MITER 0 #define JOIN_ROUND 1 #define JOIN_BEVEL 2 /* cap styles */ #define CAP_BUTT 0 #define CAP_ROUND 1 #define CAP_PROJECT 2 /* number of patterns */ #define NUMPATTERNS 22 /* FIG license applies above */ typedef struct _fig_t fig_t; typedef struct _figPoint figPoint; typedef struct _figDC figDC; struct _fig_t { void* equiv[NUMPATTERNS]; }; struct _figPoint { int x; int y; }; struct _figDC { int pen_style; int thickness; int area_fill; int line_style; int join_style; int cap_style; int radius; int forward_arrow; int backward_arrow; int pen_color; int fill_color; float style_val; }; /* fig/bmp.h */ static void fig_bmp_add (wmfAPI*,void*); static int fig_bmp_pattern (wmfAPI*,void*); static void fig_bmp_remove (wmfAPI*,void*); /* fig/color.h */ typedef struct _fig_color_t fig_color_t; struct _fig_color_t { float r; float g; float b; }; static void fig_std_colors (wmfAPI*); static void fig_color_to_file (wmfAPI*,wmfStream*); /* fig/device.h */ static figPoint fig_translate (wmfAPI*,wmfD_Coord); static int fig_width (wmfAPI*,float); static int fig_height (wmfAPI*,float); /* fig/draw.h */ static void fig_draw_arc (wmfAPI*,wmfDrawArc_t*,int); /* fig/font.h */ typedef struct _PS_to_FIG PS_to_FIG; struct _PS_to_FIG { char* PS_FontName; int FIG_FontNumber; }; /* fig.c */ static int fig_brushstyle (wmfAPI*,wmfDC*); static int fig_linestyle (wmfAPI*,wmfDC*); static int fig_joinstyle (wmfAPI*,wmfDC*); static int fig_capstyle (wmfAPI*,wmfDC*); static void fig_set_style (wmfAPI*,wmfDC*,figDC*); #endif /* ! WMFIPA_FIG_H */ libwmf-0.2.13/src/ipa/fig/000077500000000000000000000000001441723000300151545ustar00rootroot00000000000000libwmf-0.2.13/src/ipa/fig/bmp.h000066400000000000000000000104561441723000300161110ustar00rootroot00000000000000/* libwmf ("ipa/fig/bmp.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_fig_rop_draw (wmfAPI* API,wmfROP_Draw_t* rop_draw) { /* wmf_fig_t* ddata = WMF_FIG_GetData (API); */ (void)rop_draw; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]rop_draw"); } /* TODO ?? Care about bmp_draw->type */ static void wmf_fig_bmp_draw (wmfAPI* API,wmfBMP_Draw_t* bmp_draw) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; figDC fig; figPoint pt; int width; int height; int left; int right; int top; int bottom; int npoints = 5; int flipped = 0; char* name = 0; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]bmp_draw"); if (out == 0) return; if (bmp_draw->bmp.data == 0) return; if (ddata->image.name == 0) return; name = ddata->image.name (ddata->image.context); if (name == 0) return; if (WMF_FIG_ImageIsEPS (ddata)) { wmf_ipa_bmp_eps (API,bmp_draw,name); } else if (WMF_FIG_ImageIsPNG (ddata)) { wmf_ipa_bmp_png (API,bmp_draw,name); } else if (WMF_FIG_ImageIsJPG (ddata)) { wmf_ipa_bmp_jpg (API,bmp_draw,name); } else { WMF_ERROR (API,"Glitch! Can't determine image format to use."); API->err = wmf_E_Glitch; return; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } /* Okay, if we've got this far then "name" is the filename of an eps (cropped) image */ wmf_stream_printf (API,out,"# wmf_[fig_]bmp_draw\n"); fig_set_style (API,bmp_draw->dc,&fig); ddata->depth -= ddata->ddec; wmf_stream_printf (API,out, "%d %d %d %d %d %d %d %d %d %f %d %d %d %d %d %d\n", O_POLYLINE, T_PICTURE, fig.line_style, fig.thickness, fig.pen_color, fig.fill_color, ddata->depth, fig.pen_style, fig.area_fill, fig.style_val, fig.join_style, fig.cap_style, fig.radius, fig.forward_arrow, fig.backward_arrow, npoints); width = fig_width (API,(float) ((double) bmp_draw->crop.w * bmp_draw->pixel_width )); height = fig_height (API,(float) ((double) bmp_draw->crop.h * bmp_draw->pixel_height)); pt = fig_translate (API,bmp_draw->pt); left = pt.x; right = pt.x + width; top = pt.y; bottom = pt.y + height; wmf_stream_printf (API,out,"%d %s\n",flipped,name); wmf_stream_printf (API,out,"%d %d ", left, top); wmf_stream_printf (API,out,"%d %d ", right,top); wmf_stream_printf (API,out,"%d %d ", right,bottom); wmf_stream_printf (API,out,"%d %d ", left, bottom); wmf_stream_printf (API,out,"%d %d\n",left, top); } static void wmf_fig_bmp_read (wmfAPI* API,wmfBMP_Read_t* bmp_read) { WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]bmp_read"); wmf_ipa_bmp_read (API,bmp_read); fig_bmp_add (API,bmp_read->bmp.data); } static void wmf_fig_bmp_free (wmfAPI* API,wmfBMP* bmp) { WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]bmp_free"); wmf_ipa_bmp_free (API,bmp); fig_bmp_remove (API,bmp->data); } static void fig_bmp_add (wmfAPI* API,void* bmp) { wmf_fig_t* ddata = WMF_FIG_GetData (API); fig_t* fig = (fig_t*) ddata->fig_data; int i; for (i = 0; i < NUMPATTERNS; i++) { if (fig->equiv[i] == 0) { fig->equiv[i] = bmp; break; } } } static int fig_bmp_pattern (wmfAPI* API,void* bmp) { wmf_fig_t* ddata = WMF_FIG_GetData (API); fig_t* fig = (fig_t*) ddata->fig_data; int i; for (i = 0; i < NUMPATTERNS; i++) { if (fig->equiv[i] == bmp) break; } return ((i < NUMPATTERNS) ? (41 + i) : -1); } static void fig_bmp_remove (wmfAPI* API,void* bmp) { wmf_fig_t* ddata = WMF_FIG_GetData (API); fig_t* fig = (fig_t*) ddata->fig_data; int i; for (i = 0; i < NUMPATTERNS; i++) { if (fig->equiv[i] == bmp) { fig->equiv[i] = 0; break; } } } libwmf-0.2.13/src/ipa/fig/color.h000066400000000000000000000050631441723000300164470ustar00rootroot00000000000000/* libwmf ("ipa/fig/color.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static fig_color_t fig_color[32] = { { 0.000, 0.000, 0.000 }, /* Black */ { 0.000, 0.000, 1.000 }, /* Blue */ { 0.000, 1.000, 0.000 }, /* Green */ { 0.000, 1.000, 1.000 }, /* Cyan */ { 1.000, 0.000, 0.000 }, /* Red */ { 1.000, 0.000, 1.000 }, /* Magenta */ { 1.000, 1.000, 0.000 }, /* Yellow */ { 1.000, 1.000, 1.000 }, /* White */ { 0.000, 0.000, 0.560 }, { 0.000, 0.000, 0.690 }, { 0.000, 0.000, 0.820 }, { 0.530, 0.810, 1.000 }, { 0.000, 0.560, 0.000 }, { 0.000, 0.690, 0.000 }, { 0.000, 0.820, 0.000 }, { 0.000, 0.560, 0.560 }, { 0.000, 0.690, 0.690 }, { 0.000, 0.820, 0.820 }, { 0.560, 0.000, 0.000 }, { 0.690, 0.000, 0.000 }, { 0.820, 0.000, 0.000 }, { 0.560, 0.000, 0.560 }, { 0.690, 0.000, 0.690 }, { 0.820, 0.000, 0.820 }, { 0.500, 0.190, 0.000 }, { 0.630, 0.250, 0.000 }, { 0.750, 0.380, 0.000 }, { 1.000, 0.500, 0.500 }, { 1.000, 0.630, 0.630 }, { 1.000, 0.750, 0.750 }, { 1.000, 0.880, 0.880 }, { 1.000, 0.840, 0.000 }}; static void fig_std_colors (wmfAPI* API) { wmfRGB color; fig_color_t* fc = 0; int i; fc = fig_color; for (i = 0; i < 32; i++) { color = wmf_rgb_color (API,fc->r,fc->g,fc->b); wmf_ipa_color_add (API,&color); fc++; } } static void fig_color_to_file (wmfAPI* API,wmfStream* out) { wmfRGB* rgb = 0; unsigned long count; unsigned long i; unsigned int r; unsigned int g; unsigned int b; count = wmf_ipa_color_count (API); /* Write all the collected extra colour from IPA color table */ for (i = 32; i < count; i++) { rgb = wmf_ipa_color (API,i); r = (unsigned) rgb->r; g = (unsigned) rgb->g; b = (unsigned) rgb->b; wmf_stream_printf (API,out,"0 %lu #%02x%02x%02x\n",i,r,g,b); } } libwmf-0.2.13/src/ipa/fig/device.h000066400000000000000000000146251441723000300165740ustar00rootroot00000000000000/* libwmf ("ipa/fig/device.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This is called by wmf_play() the *first* time the meta file is played */ static void wmf_fig_device_open (wmfAPI* API) { /* wmf_fig_t* ddata = WMF_FIG_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]device_open"); } /* This is called by wmf_api_destroy() */ static void wmf_fig_device_close (wmfAPI* API) { /* wmf_fig_t* ddata = WMF_FIG_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]device_close"); } /* This is called from the beginning of each play for initial page setup */ static void wmf_fig_device_begin (wmfAPI* API) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; unsigned int page_width; unsigned int page_height; float def_width; float def_height; float ratio_def; float ratio_page; time_t t; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]device_begin"); if (out == 0) return; if ((out->reset (out->context)) && ((API->flags & WMF_OPT_IGNORE_NONFATAL) == 0)) { WMF_ERROR (API,"unable to reset output stream!"); API->err = wmf_E_DeviceError; return; } if ((ddata->bbox.BR.x <= ddata->bbox.TL.x) || (ddata->bbox.BR.y <= ddata->bbox.TL.y)) { WMF_ERROR (API,"bounding box has null or negative size!"); API->err = wmf_E_Glitch; return; } if (ddata->dpi == 0) { WMF_ERROR (API,"Glitch! dpi = 0?"); API->err = wmf_E_Glitch; return; } if ((ddata->fig_width == 0) || (ddata->fig_height == 0)) { wmf_size (API,&def_width,&def_height); if (ddata->flags & WMF_FIG_LANDSCAPE) { page_width = wmf_ipa_page_height (API,ddata->format); page_height = wmf_ipa_page_width (API,ddata->format); } else { page_width = wmf_ipa_page_width (API,ddata->format); page_height = wmf_ipa_page_height (API,ddata->format); } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } ddata->fig_width = (unsigned int) ceil (def_width ); ddata->fig_height = (unsigned int) ceil (def_height); if ((ddata->flags & WMF_FIG_NO_MARGINS) == 0) { ddata->fig_x = 72; /* 1 inch margin */ ddata->fig_y = 72; page_width -= 144; page_height -= 144; } if ((ddata->fig_width > page_width) || (ddata->fig_height > page_height) || (ddata->flags & WMF_FIG_MAXPECT)) { ratio_def = def_height / def_width; ratio_page = (float) page_height / (float) page_width; if (ratio_def > ratio_page) { ddata->fig_height = page_height; ddata->fig_width = (unsigned int) ((float) page_height / ratio_def); } else { ddata->fig_width = page_width; ddata->fig_height = (unsigned int) ((float) page_width * ratio_def); } } ddata->fig_x += ((int) page_width - (int) ddata->fig_width ) / 2; ddata->fig_y += ((int) page_height - (int) ddata->fig_height) / 2; ddata->fig_x = (ddata->fig_x * ddata->dpi) / 72; ddata->fig_y = (ddata->fig_y * ddata->dpi) / 72; ddata->fig_width = (ddata->fig_width * ddata->dpi) / 72; ddata->fig_height = (ddata->fig_height * ddata->dpi) / 72; } ddata->depth = 999; /* This overrides user settings ?? */ wmf_stream_printf (API,out,"#FIG 3.2\n"); if (ddata->flags & WMF_FIG_LANDSCAPE) { wmf_stream_printf (API,out,"Landscape\n"); } else { wmf_stream_printf (API,out,"Portrait\n"); } wmf_stream_printf (API,out,"Center\n"); wmf_stream_printf (API,out,"Metric\n"); wmf_stream_printf (API,out,"%s\n",wmf_ipa_page_format (API,ddata->format)); wmf_stream_printf (API,out,"100.0\n"); wmf_stream_printf (API,out,"Single\n"); wmf_stream_printf (API,out,"-2\n"); wmf_stream_printf (API,out,"%u 2\n",ddata->dpi); if (ddata->Title) { wmf_stream_printf (API,out,"# Title: "); wmf_stream_printf (API,out,"%s\n",ddata->Title); } if (ddata->Creator) { wmf_stream_printf (API,out,"# Creator: "); wmf_stream_printf (API,out,"%s\n",ddata->Creator); } if (ddata->Date) { wmf_stream_printf (API,out,"# Date: "); wmf_stream_printf (API,out,"%s\n",ddata->Date); } else { t = time (0); wmf_stream_printf (API,out,"# Date: "); wmf_stream_printf (API,out,"%s\n",ctime (&t)); } if (ddata->For) { wmf_stream_printf (API,out,"# For: "); wmf_stream_printf (API,out,"%s\n",ddata->For); } /* Write colour pseudo-objects to file */ fig_color_to_file (API,out); } /* This is called from the end of each play for page termination */ static void wmf_fig_device_end (wmfAPI* API) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]device_end"); if (out == 0) return; wmf_stream_printf (API,out,"# end device_end\n"); } /* translation & scaling functions */ static figPoint fig_translate (wmfAPI* API,wmfD_Coord d_pt) { wmf_fig_t* ddata = WMF_FIG_GetData (API); figPoint fig_pt; double x; double y; x = ((double) d_pt.x - (double) ddata->bbox.TL.x); x /= ((double) ddata->bbox.BR.x - (double) ddata->bbox.TL.x); x *= (double) ddata->fig_width; y = ((double) d_pt.y - (double) ddata->bbox.TL.y); y /= ((double) ddata->bbox.BR.y - (double) ddata->bbox.TL.y); y *= (double) ddata->fig_height; fig_pt.x = (int) ddata->fig_x + (int) floor (x); fig_pt.y = (int) ddata->fig_y + (int) floor (y); return (fig_pt); } static int fig_width (wmfAPI* API,float wmf_width) { wmf_fig_t* ddata = WMF_FIG_GetData (API); double width; width = (double) wmf_width * (double) ddata->fig_width; width /= ((double) ddata->bbox.BR.x - (double) ddata->bbox.TL.x); return ((int) ceil (ABS (width))); } static int fig_height (wmfAPI* API,float wmf_height) { wmf_fig_t* ddata = WMF_FIG_GetData (API); double height; height = (double) wmf_height * (double) ddata->fig_height; height /= ((double) ddata->bbox.BR.y - (double) ddata->bbox.TL.y); return ((int) ceil (ABS (height))); } libwmf-0.2.13/src/ipa/fig/draw.h000066400000000000000000000325421441723000300162700ustar00rootroot00000000000000/* libwmf ("ipa/fig/draw.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_fig_flood_interior (wmfAPI* API,wmfFlood_t* flood) { /* wmf_fig_t* ddata = WMF_FIG_GetData (API); */ (void)flood; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]flood_interior"); if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"flood_interior unsupported."); } else { WMF_ERROR (API,"flood_interior unsupported."); API->err = wmf_E_Glitch; } } static void wmf_fig_flood_exterior (wmfAPI* API,wmfFlood_t* flood) { /* wmf_fig_t* ddata = WMF_FIG_GetData (API); */ (void)flood; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]flood_exterior"); if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"flood_exterior unsupported."); } else { WMF_ERROR (API,"flood_exterior unsupported."); API->err = wmf_E_Glitch; } } static void wmf_fig_draw_pixel (wmfAPI* API,wmfDrawPixel_t* draw_pixel) { wmfBrush* set_brush = 0; wmfBrush brush; wmfPen* set_pen = 0; wmfPen pen; wmfDrawRectangle_t draw_rect; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]draw_pixel"); /* Going to redirect this to wmf_fig_draw_rectangle */ draw_rect.dc = draw_pixel->dc; draw_rect.width = 0; draw_rect.height = 0; /* brush setup */ set_brush = WMF_DC_BRUSH (draw_rect.dc); brush = (*set_brush); WMF_BRUSH_SET_STYLE (&brush,BS_SOLID); WMF_BRUSH_SET_COLOR (&brush,&(draw_pixel->color)); WMF_DC_SET_BRUSH (draw_rect.dc,&brush); /* pen setup */ set_pen = WMF_DC_PEN (draw_rect.dc); pen = (*set_pen); WMF_PEN_SET_STYLE (&pen,PS_NULL); WMF_DC_SET_PEN (draw_rect.dc,&pen); draw_rect.TL.x = (float) draw_pixel->pt.x; draw_rect.TL.y = (float) draw_pixel->pt.y; draw_rect.BR.x = (float) (draw_pixel->pt.x + draw_pixel->pixel_width ); draw_rect.BR.y = (float) (draw_pixel->pt.y + draw_pixel->pixel_height); wmf_fig_draw_rectangle (API,&draw_rect); WMF_DC_SET_BRUSH (draw_rect.dc,set_brush); /* Soon to be redundant ?? */ WMF_DC_SET_PEN (draw_rect.dc,set_pen); /* Soon to be redundant ?? */ } static void wmf_fig_draw_pie (wmfAPI* API,wmfDrawArc_t* draw_arc) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]draw_pie"); wmf_stream_printf (API,out,"# wmf_[fig_]draw_pie\n"); fig_draw_arc (API,draw_arc,0); wmf_stream_printf (API,out,"# draw_pie not impl\n"); } static void wmf_fig_draw_chord (wmfAPI* API,wmfDrawArc_t* draw_arc) { (void)draw_arc; wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]draw_chord"); wmf_stream_printf (API,out,"# draw_chord not impl\n"); } static void wmf_fig_draw_arc (wmfAPI* API,wmfDrawArc_t* draw_arc) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]draw_arc"); wmf_stream_printf (API,out,"# wmf_[fig_]draw_arc\n"); fig_draw_arc(API, draw_arc, 1); wmf_stream_printf (API,out,"# end draw_arc\n"); } static void fig_draw_arc (wmfAPI* API,wmfDrawArc_t* draw_arc,int sub_type) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; figDC fig; figPoint TL; figPoint BR; int direction; int Ox; int Oy; float start_x; float start_y; float end_x; float end_y; float mid_x; float mid_y; float rad; float start; float end; float mid; WMF_DEBUG (API,"~~~~~~~~fig_draw_arc"); wmf_stream_printf (API,out,"# fig_draw_arc\n"); fig_set_style (API,draw_arc->dc,&fig); ddata->depth -= ddata->ddec; direction = 0; start_x = (float) draw_arc->start.x; start_y = (float) draw_arc->start.y; end_x = (float) draw_arc->end.x; end_y = (float) draw_arc->end.y; TL = fig_translate (API,draw_arc->TL); BR = fig_translate (API,draw_arc->BR); /* origin: */ Ox = (BR.x + TL.x + 1) / 2; Oy = (BR.y + TL.y + 1) / 2; /* long axis */ rad = ((float) (BR.x - TL.x)) / 2; /* start_y = sqrt(rad * rad - start_x * start_x); if (draw_arc->start.y < 0) start_y = - start_y; end_y = sqrt(rad * rad - end_x * end_x); if (draw_arc->end.y < 0) end_y = - end_y; */ start = atan2 (start_y,start_x); end = atan2 ( end_y, end_x); /* rad = sqrt(start_x*start_x + start_y*start_y); */ /* Construct middle point: */ if (end < start) end += M_2PI; mid = 0.5 * (start + end); mid_x = Ox + (rad * cos (mid)); mid_y = Oy + (rad * sin (mid)); /* Shift to origin: */ start_x = Ox + start_x; start_y = Oy + start_y; end_x = Ox + end_x; end_y = Oy + end_y; wmf_stream_printf (API,out, "%d %d %d %d %d %d %d %d %d %f %d %d %d %d %f %f %d %d %d %d %d %d\n", O_ARC, sub_type, fig.line_style, fig.thickness, fig.pen_color, fig.fill_color, ddata->depth, fig.pen_style, fig.area_fill, fig.style_val, fig.cap_style, direction, fig.forward_arrow, fig.backward_arrow, (float) Ox, (float) Oy, (int) start_x, (int) start_y, (int) mid_x, (int) mid_y, (int) end_x, (int) end_y); } static void wmf_fig_draw_ellipse (wmfAPI* API,wmfDrawArc_t* draw_arc) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; figDC fig; figPoint TL; figPoint BR; float angle; int sub_type; int direction; int Ox; int Oy; int a; int b; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]draw_ellipse"); wmf_stream_printf (API,out,"# wmf_[fig_]draw_ellipse\n"); fig_set_style (API,draw_arc->dc,&fig); sub_type = 1; ddata->depth -= ddata->ddec; direction = 1; angle = 0.0; TL = fig_translate (API,draw_arc->TL); BR = fig_translate (API,draw_arc->BR); /* origin of ellipse */ Ox = (BR.x + TL.x + 1) / 2; Oy = (BR.y + TL.y + 1) / 2; /* axes of ellipse */ a = (BR.x - TL.x + 1) / 2; b = (BR.y - TL.y + 1) / 2; wmf_stream_printf (API,out, "%d %d %d %d %d %d %d %d %d %f %d %f %d %d %d %d %d %d %d %d\n", O_ELLIPSE, sub_type, fig.line_style, fig.thickness, fig.pen_color, fig.fill_color, ddata->depth, fig.pen_style, fig.area_fill, fig.style_val, direction, angle, Ox, Oy, a, b, Ox, Oy, (Ox + a), (Oy + b)); wmf_stream_printf (API,out,"# end draw_ellipse\n"); } static void wmf_fig_draw_line (wmfAPI* API,wmfDrawLine_t* draw_line) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; figDC fig; figPoint from; figPoint to; int npoints; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]draw_line"); if (out == 0) return; if (TO_DRAW (draw_line)) { wmf_stream_printf (API,out,"# wmf_[fig_]draw_line\n"); fig_set_style (API,draw_line->dc,&fig); ddata->depth -= ddata->ddec; npoints = 2; wmf_stream_printf (API,out, "%d %d %d %d %d %d %d %d %d %f %d %d %d %d %d %d\n", O_POLYLINE, T_POLYLINE, fig.line_style, fig.thickness, fig.pen_color, fig.fill_color, ddata->depth, fig.pen_style, fig.area_fill, fig.style_val, fig.join_style, fig.cap_style, fig.radius, fig.forward_arrow, fig.backward_arrow, npoints); from = fig_translate (API,draw_line->from); to = fig_translate (API,draw_line->to ); wmf_stream_printf (API,out, "%d %d\n%d %d\n", from.x, from.y, to.x, to.y); wmf_stream_printf (API,out,"# end draw_line\n"); } } static void wmf_fig_poly_line (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; wmfPolyLine_t sub_line; figDC fig; figPoint pt; U16 i; U16 sub_length; U16 sub_count; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]poly_line"); if (out == 0) return; if (poly_line->count > 500) { sub_length = poly_line->count / (1 + poly_line->count / 500); sub_count = 0; sub_line.dc = poly_line->dc; sub_line.pt = poly_line->pt; while (poly_line->count > sub_count + 1) { sub_line.count = MIN (sub_length,poly_line->count - sub_count); wmf_fig_poly_line (API,&sub_line); sub_line.pt += sub_line.count - 1; sub_count += sub_line.count - 1; } } else if ((poly_line->count > 1) && TO_DRAW (poly_line)) { fig_set_style (API,poly_line->dc,&fig); /* fjf - the logic may have change here ?? */ fig.area_fill = -1; /* override fill settings */ ddata->depth -= ddata->ddec; wmf_stream_printf (API,out,"# wmf_[fig_]poly_line\n"); wmf_stream_printf (API,out, "%d %d %d %d %d %d %d %d %d %f %d %d %d %d %d %d\n", O_POLYLINE, T_POLYLINE, fig.line_style, fig.thickness, fig.pen_color, fig.fill_color, ddata->depth, fig.pen_style, fig.area_fill, fig.style_val, fig.join_style, fig.cap_style, fig.radius, fig.forward_arrow, fig.backward_arrow, poly_line->count); /* Output co-ordinate pairs: */ for (i = 0; i < poly_line->count; i++) { pt = fig_translate (API,poly_line->pt[poly_line->count-1-i]); wmf_stream_printf (API,out,"%d %d\n",pt.x,pt.y); } wmf_stream_printf (API,out,"# end poly_line\n"); } } static void wmf_fig_draw_polygon (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; figDC fig; figPoint pt; U16 i; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]draw_polygon"); if (out == 0) return; if (poly_line->count > 500) { if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Too many points on polygon!"); } else { WMF_ERROR (API,"Too many points on polygon!"); API->err = wmf_E_Glitch; } } else if (poly_line->count > 2) { fig_set_style (API,poly_line->dc,&fig); ddata->depth -= ddata->ddec; if (TO_FILL (poly_line)) { wmf_stream_printf (API,out,"# wmf_[fig_]draw_polygon\n"); wmf_stream_printf (API,out, "%d %d %d %d %d %d %d %d %d %f %d %d %d %d %d %d\n", O_POLYLINE, T_POLYGON, fig.line_style, fig.thickness, fig.pen_color, fig.fill_color, ddata->depth, fig.pen_style, fig.area_fill, fig.style_val, fig.join_style, fig.cap_style, fig.radius, fig.forward_arrow, fig.backward_arrow, poly_line->count + 1); for (i = 0; i < poly_line->count; i++) { pt = fig_translate (API,poly_line->pt[i]); wmf_stream_printf (API,out,"%d %d\n",pt.x,pt.y); } pt = fig_translate (API,poly_line->pt[0]); wmf_stream_printf (API,out,"%d %d\n",pt.x,pt.y); wmf_stream_printf (API,out,"# end draw_polygon\n"); } if (TO_DRAW (poly_line)) { fig.area_fill = -1; fig.thickness++; wmf_stream_printf (API,out,"# wmf_[fig_]draw_polygon\n"); wmf_stream_printf (API,out, "%d %d %d %d %d %d %d %d %d %f %d %d %d %d %d %d\n", O_POLYLINE, T_POLYGON, fig.line_style, fig.thickness, fig.pen_color, fig.fill_color, ddata->depth, fig.pen_style, fig.area_fill, fig.style_val, fig.join_style, fig.cap_style, fig.radius, fig.forward_arrow, fig.backward_arrow, poly_line->count + 1); for (i = 0; i < poly_line->count; i++) { pt = fig_translate (API,poly_line->pt[poly_line->count-1-i]); wmf_stream_printf (API,out,"%d %d\n",pt.x,pt.y); } pt = fig_translate (API,poly_line->pt[poly_line->count-1]); wmf_stream_printf (API,out,"%d %d\n",pt.x,pt.y); wmf_stream_printf (API,out,"# end draw_polygon\n"); } } } static void wmf_fig_draw_rectangle (wmfAPI* API,wmfDrawRectangle_t* draw_rect) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; figDC fig; figPoint TL; figPoint BR; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]draw_rectangle"); if (out == 0) return; fig_set_style (API,draw_rect->dc,&fig); ddata->depth -= ddata->ddec; TL = fig_translate (API,draw_rect->TL); BR = fig_translate (API,draw_rect->BR); if (TO_FILL (draw_rect)) { wmf_stream_printf (API,out,"# wmf_[fig_]draw_rectangle\n"); wmf_stream_printf (API,out, "%d %d %d %d %d %d %d %d %d %f %d %d %d %d %d %d\n", O_POLYLINE, T_BOX, fig.line_style, fig.thickness, fig.pen_color, fig.fill_color, ddata->depth, fig.pen_style, fig.area_fill, fig.style_val, fig.join_style, fig.cap_style, fig.radius, fig.forward_arrow, fig.backward_arrow, 5); wmf_stream_printf (API,out,"%d %d\n%d %d\n%d %d\n%d %d\n%d %d\n", TL.x,TL.y, TL.x,BR.y, BR.x,BR.y, BR.x,TL.y, TL.x,TL.y); wmf_stream_printf (API,out,"# end draw_rectangle\n"); } if (TO_DRAW (draw_rect)) { fig.area_fill = -1; fig.thickness++; wmf_stream_printf (API,out,"# wmf_[fig_]draw_rectangle\n"); wmf_stream_printf (API,out, "%d %d %d %d %d %d %d %d %d %f %d %d %d %d %d %d\n", O_POLYLINE, T_BOX, fig.line_style, fig.thickness, fig.pen_color, fig.fill_color, ddata->depth, fig.pen_style, fig.area_fill, fig.style_val, fig.join_style, fig.cap_style, fig.radius, fig.forward_arrow, fig.backward_arrow, 5); wmf_stream_printf (API,out,"%d %d\n%d %d\n%d %d\n%d %d\n %d %d\n", TL.x,TL.y, TL.x,BR.y, BR.x,BR.y, BR.x,TL.y, TL.x,TL.y); wmf_stream_printf (API,out,"# end draw_rectangle\n"); } } libwmf-0.2.13/src/ipa/fig/font.h000066400000000000000000000070671441723000300163050ustar00rootroot00000000000000/* libwmf ("ipa/fig/font.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static PS_to_FIG PSFontNo[35] = { { "Times-Roman", 0 }, { "Times-Italic", 1 }, { "Times-Bold", 2 }, { "Times-BoldItalic", 3 }, { "AvantGarde-Book", 4 }, { "AvantGarde-BookOblique", 5 }, { "AvantGarde-Demi", 6 }, { "AvantGarde-DemiOblique", 7 }, { "Bookman-Light", 8 }, { "Bookman-LightItalic", 9 }, { "Bookman-Demi", 10 }, { "Bookman-DemiItalic", 11 }, { "Courier", 12 }, { "Courier-Oblique", 13 }, { "Courier-Bold", 14 }, { "Courier-BoldOblique", 15 }, { "Helvetica", 16 }, { "Helvetica-Oblique", 17 }, { "Helvetica-Bold", 18 }, { "Helvetica-BoldOblique", 19 }, { "Helvetica-Narrow", 20 }, { "Helvetica-Narrow-Oblique", 21 }, { "Helvetica-Narrow-Bold", 22 }, { "Helvetica-Narrow-BoldOblique", 23 }, { "NewCenturySchlbk-Roman", 24 }, { "NewCenturySchlbk-Italic", 25 }, { "NewCenturySchlbk-Bold", 26 }, { "NewCenturySchlbk-BoldItalic", 27 }, { "Palatino-Roman", 28 }, { "Palatino-Italic", 29 }, { "Palatino-Bold", 30 }, { "Palatino-BoldItalic", 31 }, { "Symbol", 32 }, { "ZapfChancery-MediumItalic", 33 }, { "ZapfDingbats", 34 }}; static void wmf_fig_draw_text (wmfAPI* API,wmfDrawText_t* draw_text) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; wmfFont* font = 0; figPoint pt; const char* ps_name = 0; float theta; int i; int fig_font; int sub_type; int pen_style = 0; unsigned int size; unsigned int length; unsigned int font_flags; unsigned long pen_color; unsigned long height; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]draw_text"); if (out == 0) return; font = WMF_DC_FONT (draw_text->dc); height = draw_text->font_height; /* In radians: */ theta = (float) (WMF_TEXT_ANGLE (font)); ddata->depth -= ddata->ddec; /* PS points / FIG units */ size = (fig_height (API,height) * 72) / ddata->dpi; pt = fig_translate (API,draw_text->pt); length = 0; wmf_stream_printf (API,out,"# wmf_[fig_]draw_text\n"); pen_color = wmf_ipa_color_index (API,WMF_DC_TEXTCOLOR (draw_text->dc)); fig_font = -1; /* Default. */ ps_name = WMF_FONT_PSNAME (font); if (ps_name) { for (i = 0; i < 35; i++) { if (strcmp (ps_name,PSFontNo[i].PS_FontName) == 0) { fig_font = PSFontNo[i].FIG_FontNumber; } } } sub_type = 0; /* Left justified for now; interpreter should do rest... */ font_flags = 0x4; /* PostScript font for now */ wmf_stream_printf (API,out, "%d %d %lu %d %d %d %u %f %u %lu %u %d %d ", O_TEXT, sub_type, pen_color, ddata->depth, pen_style, fig_font, size, theta, font_flags, height, length, pt.x, pt.y); wmf_stream_printf (API,out,"%s\\001\n",draw_text->str); wmf_stream_printf (API,out,"# end draw_text\n"); } libwmf-0.2.13/src/ipa/fig/region.h000066400000000000000000000067001441723000300166130ustar00rootroot00000000000000/* libwmf ("ipa/fig/region.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_fig_region_frame (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmfBrush* set_brush = 0; wmfBrush brush; wmfPen* set_pen = 0; wmfPen pen; wmfDrawRectangle_t draw_rect; unsigned int i; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]region_frame"); if (poly_rect->count == 0) return; /* Going to redirect this to wmf_fig_draw_rectangle */ draw_rect.dc = poly_rect->dc; draw_rect.width = 0; draw_rect.height = 0; /* brush setup */ set_brush = WMF_DC_BRUSH (draw_rect.dc); brush = (*set_brush); WMF_BRUSH_SET_STYLE (&brush,BS_NULL); WMF_DC_SET_BRUSH (draw_rect.dc,&brush); /* pen setup */ set_pen = WMF_DC_PEN (draw_rect.dc); pen = (*set_pen); WMF_PEN_SET_STYLE (&pen,PS_SOLID); WMF_PEN_SET_JOIN (&pen,PS_JOIN_MITER); WMF_PEN_SET_ENDCAP (&pen,PS_ENDCAP_SQUARE); WMF_PEN_SET_WIDTH (&pen,poly_rect->width ); WMF_PEN_SET_HEIGHT (&pen,poly_rect->height); WMF_DC_SET_PEN (draw_rect.dc,&pen); for (i = 0; i < poly_rect->count; i++) { draw_rect.TL.x = poly_rect->TL[i].x - poly_rect->width / 2; draw_rect.TL.y = poly_rect->TL[i].y - poly_rect->height / 2; draw_rect.BR.x = poly_rect->BR[i].x + poly_rect->width / 2; draw_rect.BR.y = poly_rect->BR[i].y + poly_rect->height / 2; wmf_fig_draw_rectangle (API,&draw_rect); } WMF_DC_SET_BRUSH (draw_rect.dc,set_brush); /* Soon to be redundant ?? */ WMF_DC_SET_PEN (draw_rect.dc,set_pen); /* Soon to be redundant ?? */ } static void wmf_fig_region_paint (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmfPen* set_pen = 0; wmfPen pen; wmfDrawRectangle_t draw_rect; unsigned int i; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]region_paint"); if (poly_rect->count == 0) return; if (!TO_FILL (poly_rect)) return; /* Going to redirect this to wmf_fig_draw_rectangle */ draw_rect.dc = poly_rect->dc; draw_rect.width = 0; draw_rect.height = 0; /* pen setup */ set_pen = WMF_DC_PEN (draw_rect.dc); pen = (*set_pen); WMF_PEN_SET_STYLE (&pen,PS_NULL); WMF_DC_SET_PEN (draw_rect.dc,&pen); for (i = 0; i < poly_rect->count; i++) { draw_rect.TL = poly_rect->TL[i]; draw_rect.BR = poly_rect->BR[i]; wmf_fig_draw_rectangle (API,&draw_rect); } WMF_DC_SET_PEN (draw_rect.dc,set_pen); /* Soon to be redundant ?? */ } static void wmf_fig_region_clip (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_fig_t* ddata = WMF_FIG_GetData (API); wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[fig_]region_clip"); if (out == 0) return; wmf_stream_printf (API,out,"# end clip\n"); wmf_stream_printf (API,out,"# begin clip\n"); if (poly_rect->count == 0) return; /* */ } libwmf-0.2.13/src/ipa/foreign.c000066400000000000000000000122711441723000300162070ustar00rootroot00000000000000/* libwmf (ipa/foreign.c): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ #include "wmfdefs.h" #ifndef WITHOUT_LAYERS #ifdef HAVE_GD #include #endif /* HAVE_GD */ #include "libwmf/foreign.h" #else /* ! WITHOUT_LAYERS */ #ifdef HAVE_GD #undef HAVE_GD #endif #endif /* ! WITHOUT_LAYERS */ void wmf_foreign_function (wmfAPI* API) { #ifndef WITHOUT_LAYERS wmf_foreign_t* ddata = 0; API->function_reference = 0; /* Allocate device data structure */ ddata = (wmf_foreign_t*) wmf_malloc (API,sizeof (wmf_foreign_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } API->device_data = (void*) ddata; ddata->flags = 0; #ifdef HAVE_LIBPNG ddata->flags |= WMF_FOREIGN_SUPPORTS_PNG; #endif #ifdef HAVE_LIBJPEG ddata->flags |= WMF_FOREIGN_SUPPORTS_JPEG; #endif #else /* ! WITHOUT_LAYERS */ API->device_data = 0; API->err = wmf_E_DeviceError; #endif /* ! WITHOUT_LAYERS */ } int wmf_image_load_png (wmfAPI* API,FILE* png_in,wmfImage* image) { (void)API; /* wmf_foreign_t* ddata = WMF_FOREIGN_GetData (API); */ #ifdef HAVE_GD gdImage* gd_image = 0; #ifndef HAVE_LIBPNG return (-1); #endif gd_image = gdImageCreateFromPng (png_in); if (gd_image == 0) return (-1); image->type = wmf_I_gd; image->width = (U16) gdImageSX (gd_image); image->height = (U16) gdImageSY (gd_image); image->data = (void*) gd_image; return (0); #else /* HAVE_GD */ return (-1); #endif /* HAVE_GD */ } int wmf_image_load_jpg (wmfAPI* API,FILE* jpg_in,wmfImage* image) { (void)API; /* wmf_foreign_t* ddata = WMF_FOREIGN_GetData (API); */ #ifdef HAVE_GD gdImage* gd_image = 0; #ifndef HAVE_LIBJPEG return (-1); #endif gd_image = gdImageCreateFromJpeg (jpg_in); if (gd_image == 0) return (-1); image->type = wmf_I_gd; image->width = (U16) gdImageSX (gd_image); image->height = (U16) gdImageSY (gd_image); image->data = (void*) gd_image; return (0); #else /* HAVE_GD */ return (-1); #endif /* HAVE_GD */ } int wmf_image_save_eps (wmfAPI* API,FILE* file,wmfImage* image) { /* wmf_foreign_t* ddata = WMF_FOREIGN_GetData(API); */ #ifdef HAVE_GD wmfRGB rgb; gdImage* gd_image = 0; int c; int i; int j; int k; int width; int height; static char hex[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; char buffer[80]; gd_image = (gdImage*) image->data; if ((gd_image == 0) || (file == 0)) return (-1); if (image->type != wmf_I_gd) { WMF_ERROR (API,"image type not supported!"); API->err = wmf_E_DeviceError; return (-1); } width = gdImageSX (gd_image); height = gdImageSY (gd_image); /* */ fputs ("%!PS-Adobe-2.0 EPSF-2.0\n",file); fputs ("%%BoundingBox: ",file); fprintf (file," 0 0 %d %d\n",width,height); fprintf (file," 0 %d translate\n",1); fprintf (file," %d %d scale\n",width,height); /* I'm going to assume it's a color image - TODO: monochrome */ fprintf (file," /picstr %d 3 mul string def\n",width); fprintf (file," %d %d 8\n",width,height); fprintf (file," [ %d 0 0 %d 0 0 ]\n",width,height); fputs (" { currentfile picstr readhexstring pop } false 3\n",file); fputs (" colorimage\n",file); for (j = 0; j < height; j++) { k = 0; for (i = 0; i < width; i++) { if (k == 78) { buffer[k++] = '\n'; buffer[k] = 0; fputs (buffer,file); k = 0; } c = gdImageGetPixel (gd_image,i,j); if (gd_image->trueColor) { rgb.r = gdTrueColorGetRed (c); rgb.g = gdTrueColorGetGreen (c); rgb.b = gdTrueColorGetBlue (c); } else { rgb.r = gd_image->red[c]; rgb.g = gd_image->green[c]; rgb.b = gd_image->blue[c]; } buffer[k++] = hex[(rgb.r & 0xf0) >> 4]; buffer[k++] = hex[ rgb.r & 0x0f ]; buffer[k++] = hex[(rgb.g & 0xf0) >> 4]; buffer[k++] = hex[ rgb.g & 0x0f ]; buffer[k++] = hex[(rgb.b & 0xf0) >> 4]; buffer[k++] = hex[ rgb.b & 0x0f ]; } if (k > 0) { buffer[k++] = '\n'; buffer[k] = 0; fputs (buffer,file); } } fputs ("showpage\n",file); return (0); #else /* HAVE_GD */ return (-1); #endif /* HAVE_GD */ } void wmf_image_free (wmfAPI* API,wmfImage* image) { /* wmf_foreign_t* ddata = WMF_FOREIGN_GetData (API); */ #ifdef HAVE_GD gdImage* gd_image = (gdImage*) image->data; if (image->type != wmf_I_gd) { WMF_ERROR (API,"image type not supported!"); API->err = wmf_E_DeviceError; return; } if (gd_image) { gdImageDestroy (gd_image); } image->data = 0; #endif /* HAVE_GD */ } libwmf-0.2.13/src/ipa/ipa.c000066400000000000000000000054301441723000300153260ustar00rootroot00000000000000/* libwmf (ipa/ipa.c): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ #include #include #include #include #include #ifdef HAVE_UNISTD_H #include #endif /* Define WMF_API if this is module so that ipa headers are included via "wmfdefs.h" first */ #define WMF_IPA 1 #include "wmfdefs.h" #include "ipa/ipa.h" #include "ipa/ipa/bmp.h" /* Provides default bitmap functionality */ #define NPageTypes 11 static ipa_page_info PageInfo[NPageTypes] = { { wmf_P_A5, "A5", 420, 595 }, { wmf_P_A4, "A4", 595, 842 }, { wmf_P_A3, "A3", 842, 1191 }, { wmf_P_A2, "A2", 1191, 1684 }, { wmf_P_A1, "A1", 1684, 2384 }, { wmf_P_A0, "A0", 2384, 3370 }, { wmf_P_B5, "B5", 516, 729 }, { wmf_P_Letter, "Letter", 612, 792 }, { wmf_P_Legal, "Legal", 612, 1008 }, { wmf_P_Ledger, "Ledger", 1224, 792 }, { wmf_P_Tabloid, "Tabloid", 792, 1224 }}; char* wmf_ipa_page_format (wmfAPI* API,wmf_page_t type) { int i; char* format = 0; for (i = 0; i < NPageTypes; i++) { if (PageInfo[i].type == type) { format = PageInfo[i].format; break; } } if (format == 0) { WMF_ERROR (API,"Glitch! unexpected page type!"); API->err = wmf_E_Glitch; } return (format); } unsigned int wmf_ipa_page_width (wmfAPI* API,wmf_page_t type) { int i; unsigned int length = 0; for (i = 0; i < NPageTypes; i++) { if (PageInfo[i].type == type) { length = PageInfo[i].width; break; } } if (length == 0) { WMF_ERROR (API,"Glitch! unexpected page type!"); API->err = wmf_E_Glitch; } return (length); } unsigned int wmf_ipa_page_height (wmfAPI* API,wmf_page_t type) { int i; unsigned int length = 0; for (i = 0; i < NPageTypes; i++) { if (PageInfo[i].type == type) { length = PageInfo[i].height; break; } } if (length == 0) { WMF_ERROR (API,"Glitch! unexpected page type!"); API->err = wmf_E_Glitch; } return (length); } libwmf-0.2.13/src/ipa/ipa.h000066400000000000000000000066721441723000300153440ustar00rootroot00000000000000/* libwmf ("ipa/ipa.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFIPA_IPA_H #define WMFIPA_IPA_H /* bmp.h */ typedef struct _ipa_b64_t ipa_b64_t; typedef struct _BMPSource BMPSource; typedef struct _BMPData BMPData; typedef struct _PointInfo PointInfo; typedef struct _BMPInfo BMPInfo; #ifdef HAVE_GD #include /* Use GD for BMP -> PNG conversion */ static int ipa_b64_sink (void*,const char*,int); static void ipa_b64_flush (void*); static gdImage* ipa_bmp_gd (wmfAPI*,wmfBMP_Draw_t*); #else /* HAVE_GD */ #ifdef HAVE_LIBPNG #include #endif /* HAVE_LIBPNG */ static void ldr_bmp_png (wmfAPI* API,wmfBMP_Draw_t* bmp_draw,FILE* out); #endif /* HAVE_GD */ static size_t ReadBlob (BMPSource*,size_t,unsigned char*); static int ReadBlobByte (BMPSource*); static unsigned short ReadBlobLSBShort (BMPSource*); static unsigned int ReadBlobLSBLong (BMPSource*); static long TellBlob (BMPSource*); static int DecodeImage (wmfBMP*,BMPSource*,unsigned int,unsigned char*); static void ReadBMPImage (wmfAPI*,wmfBMP*,BMPSource*); static int ExtractColor (wmfAPI*,wmfBMP*,wmfRGB*,unsigned int,unsigned int); static void SetColor (wmfAPI*,wmfBMP*,wmfRGB*,unsigned char,unsigned int,unsigned int); #define IPA_B64_BUFLEN 57 /* must be multiple of three... */ #define IPA_B64_LEQUIV 78 /* (IPA_B64_BUFLEN * 4) / 3 + 2 */ struct _ipa_b64_t { wmfAPI* API; wmfStream* out; char buffer[IPA_B64_BUFLEN]; int length; }; struct _BMPSource { unsigned char* begin; unsigned char* end; unsigned char* ptr; }; struct _BMPData { unsigned int NColors; wmfRGB* rgb; unsigned char* image; unsigned short bits_per_pixel; unsigned int bytes_per_line; unsigned short masked; unsigned short flipped; }; struct _PointInfo { double x; double y; double z; }; struct _BMPInfo { unsigned long file_size; unsigned long ba_offset; unsigned long offset_bits; unsigned long size; long width; long height; unsigned short planes; unsigned short bits_per_pixel; unsigned long compression; unsigned long image_size; unsigned long x_pixels; unsigned long y_pixels; unsigned long number_colors; unsigned long colors_important; unsigned short red_mask; unsigned short green_mask; unsigned short blue_mask; unsigned short alpha_mask; long colorspace; PointInfo red_primary; PointInfo green_primary; PointInfo blue_primary; PointInfo gamma_scale; }; /* ipa.c */ typedef struct _ipa_page_info ipa_page_info; struct _ipa_page_info { wmf_page_t type; char* format; unsigned int width; unsigned int height; }; #endif /* ! WMFIPA_IPA_H */ libwmf-0.2.13/src/ipa/ipa/000077500000000000000000000000001441723000300151605ustar00rootroot00000000000000libwmf-0.2.13/src/ipa/ipa/bmp.h000066400000000000000000001057001441723000300161120ustar00rootroot00000000000000/* libwmf ("ipa/ipa/bmp.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef HAVE_GD /* png stuff below adapted from stuff sent to me [fjf] by Lennard D. Rosenthal; * probably used in ImageMagick and may not be covered, therefore, by the LGPL - (fjf) * * utility routine for saving a pixbuf to a png file. * This was adapted from Iain Holmes' code in gnome-iconedit, and probably * should be in a utility library, possibly in gdk-pixbuf itself. */ static void ldr_bmp_png (wmfAPI* API,wmfBMP_Draw_t* bmp_draw,FILE* out) { #ifdef HAVE_LIBPNG wmfRGB rgb; png_structp png_ptr = 0; png_infop info_ptr = 0; png_text text[2]; int i; int j; int x; int y; int width = (int) bmp_draw->crop.w; int height = (int) bmp_draw->crop.h; int depth = 8; /* ?? bit depth (bits per sample) */ int opacity; char* ptr = 0; char* buffer = (char*) wmf_malloc (API,4 * width); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING,0,0,0); if (png_ptr == 0) { WMF_DEBUG (API,"Failed to write bitmap as PNG! (png_create_write_struct failed)"); wmf_free (API,buffer); return; } info_ptr = png_create_info_struct (png_ptr); if (info_ptr == 0) { WMF_DEBUG (API,"Failed to write bitmap as PNG! (png_create_info_struct failed)"); png_destroy_write_struct (&png_ptr,0); wmf_free (API,buffer); return; } if (setjmp (png_ptr->jmpbuf)) { WMF_DEBUG (API,"Failed to write bitmap as PNG! (setjmp failed)"); png_destroy_write_struct (&png_ptr,&info_ptr); wmf_free (API,buffer); return; } png_init_io (png_ptr,out); png_set_IHDR (png_ptr,info_ptr,width,height,depth, PNG_COLOR_TYPE_RGB_ALPHA,PNG_INTERLACE_NONE,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT); /* Some text to go with the png image */ text[0].key = "Title"; text[0].text = "A converted bitmap"; text[0].compression = PNG_TEXT_COMPRESSION_NONE; text[1].key = "Software"; text[1].text = "libwmf2"; text[1].compression = PNG_TEXT_COMPRESSION_NONE; png_set_text (png_ptr,info_ptr,text,2); /* Write header data */ png_write_info (png_ptr,info_ptr); /* pump the raster data into libpng, one scan line at a time */ x = (int) bmp_draw->crop.x; y = (int) bmp_draw->crop.y; for (j = 0; j < height; j++) { ptr = buffer; for (i = 0; i < width; i++) { opacity = wmf_ipa_bmp_color (API,&(bmp_draw->bmp),&rgb,x+i,y+j); *ptr++ = (char) rgb.r; *ptr++ = (char) rgb.g; *ptr++ = (char) rgb.b; *ptr++ = (char) ((unsigned char) (opacity & 0xff)); } png_write_row (png_ptr,(png_bytep) buffer); } png_write_end (png_ptr,info_ptr); png_destroy_write_struct (&png_ptr,&info_ptr); wmf_free (API,buffer); #else /* HAVE_LIBPNG */ WMF_ERROR (API,"Glitch? No PNG support!"); API->err = wmf_E_Glitch; #endif /* HAVE_LIBPNG */ return; } #endif /* ! HAVE_GD */ #ifdef HAVE_GD static int ipa_b64_sink (void* context,const char* buffer,int length) { ipa_b64_t* b64 = (ipa_b64_t*) context; int i = 0; while (i < length) { // coverity[overrun-local : FALSE] - coverity seems to fail to see that ipa_b64_flush resets length to 0 b64->buffer[b64->length] = buffer[i]; i++; b64->length++; if (b64->length == IPA_B64_BUFLEN) ipa_b64_flush (context); } return (i); } #endif /* HAVE_GD */ #ifdef HAVE_GD static void ipa_b64_flush (void* context) { ipa_b64_t* b64 = (ipa_b64_t*) context; static char B64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; char buffer[IPA_B64_LEQUIV]; unsigned long ulc1; unsigned long ulc2; unsigned long ulc3; unsigned long ulc; int triplets = (b64->length + 2) / 3; int triplen; int i; char* ptr = b64->buffer; char* btr = buffer; if (b64->length == 0) return; triplen = triplets * 3; for (i = b64->length; i < triplen; i++) b64->buffer[i] = 0; (*btr) = '\n'; btr++; for (i = 0; i < triplets; i++) { ulc1 = (unsigned long) ((unsigned char) (*ptr)); ptr++; ulc2 = (unsigned long) ((unsigned char) (*ptr)); ptr++; ulc3 = (unsigned long) ((unsigned char) (*ptr)); ptr++; ulc = (ulc1 << 16) | (ulc2 << 8) | ulc3; ulc1 = (ulc & (0x3f << 18)) >> 18; ulc2 = (ulc & (0x3f << 12)) >> 12; ulc3 = (ulc & (0x3f << 6)) >> 6; ulc &= 0x3f; (*btr) = B64[ulc1]; btr++; (*btr) = B64[ulc2]; btr++; (*btr) = B64[ulc3]; btr++; (*btr) = B64[ulc ]; btr++; } if ((triplen - b64->length) > 1) (*(btr-2)) = '='; if ((triplen - b64->length) > 0) (*(btr-1)) = '='; (*btr) = '\0'; wmf_stream_printf (b64->API,b64->out,buffer); b64->length = 0; } #endif /* HAVE_GD */ void wmf_ipa_bmp_b64 (wmfAPI* API,wmfBMP_Draw_t* bmp_draw,wmfStream* out) { #ifdef HAVE_GD gdImage* image = 0; gdSink sink; ipa_b64_t b64; WMF_DEBUG (API,"~~~~~~~~wmf_ipa_bmp_b64"); #ifndef HAVE_LIBPNG WMF_DEBUG (API,"No support for PNG, sorry!"); API->err = wmf_E_DeviceError; return; #endif /* HAVE_LIBPNG */ image = ipa_bmp_gd (API,bmp_draw); if (image == 0) return; b64.API = API; b64.out = out; b64.length = 0; sink.context = (void*) (&b64); sink.sink = ipa_b64_sink; gdImagePngToSink (image,&sink); gdImageDestroy (image); ipa_b64_flush (sink.context); #endif /* HAVE_GD */ } void wmf_ipa_bmp_png (wmfAPI* API,wmfBMP_Draw_t* bmp_draw,char* name) { FILE* file = 0; #ifdef HAVE_GD gdImage* image = 0; #endif /* HAVE_GD */ WMF_DEBUG (API,"~~~~~~~~wmf_ipa_bmp_png"); #ifndef HAVE_LIBPNG WMF_DEBUG (API,"No support for PNG, sorry!"); API->err = wmf_E_DeviceError; return; #endif /* HAVE_LIBPNG */ file = fopen (name,"wb"); if (file == 0) { WMF_ERROR (API,"Failed to open file to write GD image!"); return; } #ifdef HAVE_GD image = ipa_bmp_gd (API,bmp_draw); if (image) { gdImagePng (image,file); gdImageDestroy (image); } #else /* HAVE_GD */ ldr_bmp_png (API,bmp_draw,file); #endif /* HAVE_GD */ fclose (file); } void wmf_ipa_bmp_jpg (wmfAPI* API,wmfBMP_Draw_t* bmp_draw,char* name) { #ifdef HAVE_GD FILE* file = 0; gdImage* image = 0; WMF_DEBUG (API,"~~~~~~~~wmf_ipa_bmp_jpg"); #ifndef HAVE_LIBJPEG WMF_DEBUG (API,"No support for JPEG, sorry!"); API->err = wmf_E_DeviceError; return; #endif /* HAVE_LIBJPEG */ file = fopen (name,"wb"); if (file == 0) { WMF_ERROR (API,"Failed to open file to write GD image!"); return; } image = ipa_bmp_gd (API,bmp_draw); if (image) { gdImageJpeg (image,file,-1); /* Default quality. */ gdImageDestroy (image); } fclose (file); #endif /* HAVE_GD */ } #ifdef HAVE_GD static gdImage* ipa_bmp_gd (wmfAPI* API,wmfBMP_Draw_t* bmp_draw) { wmfRGB rgb; int color; unsigned int ui_x; unsigned int ui_y; unsigned int i; unsigned int j; gdImage* image = 0; WMF_DEBUG (API,"~~~~~~~~ipa_bmp_gd"); if (bmp_draw->bmp.data == 0) { WMF_ERROR (API,"Glitch! Attempt to write non-existant bitmap."); API->err = wmf_E_Glitch; return (0); } image = gdImageCreateTrueColor ((int) bmp_draw->crop.w,(int) bmp_draw->crop.h); if (image == 0) { WMF_ERROR (API,"Failed to create GD image!"); API->err = wmf_E_DeviceError; return (0); } ui_x = (unsigned int) bmp_draw->crop.x; ui_y = (unsigned int) bmp_draw->crop.y; for (j = 0; j < (unsigned int) bmp_draw->crop.h; j++) { for (i = 0; i < (unsigned int) bmp_draw->crop.w; i++) { wmf_ipa_bmp_color (API,&(bmp_draw->bmp),&rgb,ui_x+i,ui_y+j); color = gdImageColorResolve (image,rgb.r,rgb.g,rgb.b); gdImageSetPixel (image,(int) i,(int) (bmp_draw->crop.h-1-j),color); } } return (image); } #endif /* HAVE_GD */ void wmf_ipa_bmp_eps (wmfAPI* API,wmfBMP_Draw_t* bmp_draw,char* name) { wmfRGB rgb; unsigned int i; unsigned int j; unsigned int k; unsigned int ui_x; unsigned int ui_y; unsigned int width; unsigned int height; static char hex[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; char buffer[80]; FILE* file = 0; WMF_DEBUG (API,"~~~~~~~~wmf_ipa_bmp_eps"); if (bmp_draw->bmp.data == 0) { WMF_ERROR (API,"Glitch! Attempt to write non-existant bitmap."); API->err = wmf_E_Glitch; return; } file = fopen (name,"w"); if (file == 0) { WMF_ERROR (API,"Failed to open file to write EPS image!"); API->err = wmf_E_BadFile; return; } ui_x = (unsigned int) bmp_draw->crop.x; ui_y = (unsigned int) bmp_draw->crop.y; width = (unsigned int) bmp_draw->crop.w; height = (unsigned int) bmp_draw->crop.h; /* Output as an embedded eps */ fputs ("%!PS-Adobe-2.0 EPSF-2.0\n",file); fputs ("%%BoundingBox: ",file); fprintf (file," 0 0 %u %u\n",width,height); fprintf (file," 0 %d translate\n",1); fprintf (file," %u %u scale\n",width,height); /* I'm going to assume it's a color image - TODO: monochrome */ fprintf (file," /picstr %u 3 mul string def\n",width); fprintf (file," %u %u 8\n",width,height); fprintf (file," [ %u 0 0 %u 0 0 ]\n",width,height); fputs (" { currentfile picstr readhexstring pop } false 3\n",file); fputs (" colorimage\n",file); for (j = 0; j < height; j++) { k = 0; for (i = 0; i < width; i++) { if (k == 78) { buffer[k++] = '\n'; buffer[k] = 0; fputs (buffer,file); k = 0; } wmf_ipa_bmp_color (API,&(bmp_draw->bmp),&rgb,ui_x+i,ui_y+j); buffer[k++] = hex[(rgb.r & 0xf0) >> 4]; buffer[k++] = hex[ rgb.r & 0x0f ]; buffer[k++] = hex[(rgb.g & 0xf0) >> 4]; buffer[k++] = hex[ rgb.g & 0x0f ]; buffer[k++] = hex[(rgb.b & 0xf0) >> 4]; buffer[k++] = hex[ rgb.b & 0x0f ]; } if (k > 0) { buffer[k++] = '\n'; buffer[k] = 0; fputs (buffer,file); } } fputs ("showpage\n",file); fclose (file); return; } void wmf_ipa_bmp_read (wmfAPI* API,wmfBMP_Read_t* bmp_read) { wmfBMP* bmp = 0; BMPSource source; BMPData* data; WMF_DEBUG (API,"~~~~~~~~wmf_[ipa_]bmp_read"); bmp = &(bmp_read->bmp); bmp->data = 0; data = (BMPData*) wmf_malloc (API,sizeof (BMPData)); if (ERR (API)) { if (API->flags & WMF_OPT_IGNORE_NONFATAL) { API->err = wmf_E_None; bmp->data = 0; } WMF_DEBUG (API,"bailing..."); return; } data->NColors = 0; data->rgb = 0; data->image = 0; bmp->width = bmp_read->width; bmp->height = bmp_read->height; bmp->data = (void*) data; source.begin = bmp_read->buffer; source.end = bmp_read->buffer + bmp_read->length; source.ptr = bmp_read->buffer; ReadBMPImage (API,bmp,&source); if (ERR (API)) { if (API->flags & WMF_OPT_IGNORE_NONFATAL) { API->err = wmf_E_None; bmp->data = 0; } } } void wmf_ipa_bmp_free (wmfAPI* API,wmfBMP* bmp) { BMPData* data; WMF_DEBUG (API,"~~~~~~~~wmf_[ipa_]bmp_free"); if (bmp->data == 0) return; data = (BMPData*) bmp->data; if (data->rgb) wmf_free (API,(void*) data->rgb ); if (data->image) wmf_free (API,(void*) data->image); wmf_free (API,bmp->data); bmp->data = 0; } wmfBMP wmf_ipa_bmp_copy (wmfAPI* API,wmfBMP* bmp,unsigned int width,unsigned int height) { wmfBMP copy; wmfRGB rgb; BMPData* copy_data = 0; BMPData* data = 0; float x; float y; unsigned int i; unsigned int j; int opacity; size_t size; WMF_DEBUG (API,"~~~~~~~~wmf_[ipa_]bmp_copy"); copy.width = width; copy.height = height; copy.data = 0; if (bmp->data == 0) return (copy); data = (BMPData*) bmp->data; copy.data = wmf_malloc (API,sizeof (BMPData)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (copy); } copy_data = (BMPData*) copy.data; if (data->rgb) { copy_data->NColors = data->NColors; copy_data->rgb = (wmfRGB*) wmf_malloc (API,data->NColors * sizeof (wmfRGB)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); wmf_free (API,copy.data); copy.data = 0; return (copy); } } else { copy_data->NColors = 0; copy_data->rgb = 0; } copy_data->bits_per_pixel = data->bits_per_pixel; copy_data->bytes_per_line = 4 * ((width * copy_data->bits_per_pixel + 31) / 32); size = height * copy_data->bytes_per_line * sizeof (unsigned char); copy_data->image = (unsigned char*) wmf_malloc (API,size); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); if (copy_data->rgb) wmf_free (API,copy_data->rgb); wmf_free (API,copy.data); copy.data = 0; return (copy); } copy_data->masked = data->masked; copy_data->flipped = data->flipped; /* Data structure is complete, now to copy the image... */ for (j = 0; j < height; j++) { y = (float) ((double) j * (double) bmp->height / (double) height); for (i = 0; i < width; i++) { x = (float) ((double) i * (double) bmp->width / (double) width); opacity = wmf_ipa_bmp_interpolate (API,bmp,&rgb,x,y); if (opacity < 0) break; /* Shouldn't occur, I think */ wmf_ipa_bmp_setcolor (API,©,&rgb,(unsigned char) opacity,i,j); } } return (copy); } int wmf_ipa_bmp_color (wmfAPI* API,wmfBMP* bmp,wmfRGB* rgb,unsigned int x,unsigned int y) { int status = -1; /* error value */ /* WMF_DEBUG (API,"~~~~~~~~wmf_[ipa_]bmp_color"); */ rgb->r = 0; rgb->g = 0; rgb->b = 0; if (bmp->data && x < bmp->width && y < bmp->height) { status = ExtractColor (API,bmp,rgb,x,y); } else if ((API->flags & WMF_OPT_IGNORE_NONFATAL) == 0) { WMF_ERROR (API,"Point outside bitmap"); API->err = wmf_E_Glitch; } return (status); } int wmf_ipa_bmp_interpolate (wmfAPI* API,wmfBMP* bmp,wmfRGB* rgb,float x,float y) { int status = -1; /* error value */ unsigned int i1; unsigned int i2; unsigned int j1; unsigned int j2; unsigned char o_11; unsigned char o_12; unsigned char o_21; unsigned char o_22; float f_11; float f_12; float f_21; float f_22; wmfRGB rgb_11; wmfRGB rgb_12; wmfRGB rgb_21; wmfRGB rgb_22; /* WMF_DEBUG (API,"~~~~~~~~wmf_[ipa_]bmp_interpolate"); */ i1 = (unsigned int) floor (x); i2 = (unsigned int) ceil (x); j1 = (unsigned int) floor (y); j2 = (unsigned int) ceil (y); if (i1 >= (unsigned int)(bmp->width - 2)) { i1 = bmp->width - 2; i2 = bmp->width - 1; } if (j1 >= (unsigned int)(bmp->height - 2)) { j1 = bmp->height - 2; j2 = bmp->height - 1; } if ((i1 == i2) && (j1 == j2)) return (wmf_ipa_bmp_color (API,bmp,rgb,i1,j1)); i2 = i1 + 1; j2 = j1 + 1; rgb->r = 0; rgb->g = 0; rgb->b = 0; status = wmf_ipa_bmp_color (API,bmp,&rgb_11,i1,j1); if (status < 0) return (status); o_11 = (unsigned char) status; status = wmf_ipa_bmp_color (API,bmp,&rgb_12,i2,j1); if (status < 0) return (status); o_12 = (unsigned char) status; status = wmf_ipa_bmp_color (API,bmp,&rgb_21,i1,j2); if (status < 0) return (status); o_21 = (unsigned char) status; status = wmf_ipa_bmp_color (API,bmp,&rgb_22,i2,j2); if (status < 0) return (status); o_22 = (unsigned char) status; x -= (float) i1; y -= (float) j1; f_11 = (1 - x) * (1 - y); f_12 = x * (1 - y); f_22 = x * y; f_21 = (1 - x) * y; status = (int) (rgb_11.r * f_11 + rgb_21.r * f_21 + rgb_22.r * f_22 + rgb_12.r * f_12); rgb->r = (unsigned char) ((status < 0) ? 0 : ((status > 255) ? 255 : status)); status = (int) (rgb_11.g * f_11 + rgb_21.g * f_21 + rgb_22.g * f_22 + rgb_12.g * f_12); rgb->g = (unsigned char) ((status < 0) ? 0 : ((status > 255) ? 255 : status)); status = (int) (rgb_11.b * f_11 + rgb_21.b * f_21 + rgb_22.b * f_22 + rgb_12.b * f_12); rgb->b = (unsigned char) ((status < 0) ? 0 : ((status > 255) ? 255 : status)); status = (int) (o_11 * f_11 + o_21 * f_21 + o_22 * f_22 + o_12 * f_12); status = ((status < 0) ? 0 : ((status > 255) ? 255 : status)); return (status); } void wmf_ipa_bmp_setcolor (wmfAPI* API,wmfBMP* bmp,wmfRGB* rgb,unsigned char opacity, unsigned int x,unsigned int y) { /* WMF_DEBUG (API,"~~~~~~~~wmf_[ipa_]bmp_setcolor"); */ if (bmp->data && x < bmp->width && y < bmp->height) { SetColor (API,bmp,rgb,opacity,x,y); } else if ((API->flags & WMF_OPT_IGNORE_NONFATAL) == 0) { WMF_ERROR (API,"Point outside bitmap"); API->err = wmf_E_Glitch; } } /* Following source adapted from ImageMagick-5.2.7's coders/bmp.c, hence: % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % BBBB M M PPPP % % B B MM MM P P % % BBBB M M M PPPP % % B B M M P % % BBBB M M P % % % % % % Read/Write ImageMagick Image Format. % % % % % % Software Design % % John Cristy % % July 1992 % % % % % % Copyright (C) 2001 ImageMagick Studio, a non-profit organization dedicated % % to making software imaging solutions freely available. % % % % Permission is hereby granted, free of charge, to any person obtaining a % % copy of this software and associated documentation files ("ImageMagick"), % % to deal in ImageMagick without restriction, including without limitation % % the rights to use, copy, modify, merge, publish, distribute, sublicense, % % and/or sell copies of ImageMagick, and to permit persons to whom the % % ImageMagick 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 ImageMagick. % % % % 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 % % ImageMagick Studio be liable for any claim, damages or other liability, % % whether in an action of contract, tort or otherwise, arising from, out of % % or in connection with ImageMagick or the use or other dealings in % % ImageMagick. % % % % Except as contained in this notice, the name of the ImageMagick Studio % % shall not be used in advertising or otherwise to promote the sale, use or % % other dealings in ImageMagick without prior written authorization from the % % ImageMagick Studio. % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % */ static size_t ReadBlob (BMPSource* src,size_t length,unsigned char* buffer) { size_t count = 0; for (count = 0; count < length; count++) { if (src->ptr >= src->end) break; buffer[count] = (*(src->ptr)); src->ptr++; } return (count); } static int ReadBlobByte (BMPSource* src) { int byte; if (src->ptr >= src->end) return (EOF); byte = (int) (*(src->ptr)); src->ptr++; return (byte); } static unsigned short ReadBlobLSBShort (BMPSource* src) { unsigned short value; unsigned char buffer[2]; value = ReadBlob (src,2,buffer); if (value < 2) return (~value); value = buffer[1] << 8; value |= buffer[0]; return (value); } static unsigned int ReadBlobLSBLong (BMPSource* src) { unsigned int value; unsigned char buffer[4]; value = ReadBlob (src,4,buffer); if (value < 4) return (~value); /* i.e., = -1 */ value = buffer[3] << 24; value |= buffer[2] << 16; value |= buffer[1] << 8; value |= buffer[0]; return (value); } static long TellBlob (BMPSource* src) { return ((long) (src->ptr - src->begin)); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % D e c o d e I m a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Method DecodeImage unpacks the packed image pixels into runlength-encoded % pixel packets. % % A description of each parameter follows: % % o compression: A value of 1 means the compressed pixels are runlength % encoded for a 256-color bitmap. A value of 2 means a 16-color bitmap. % % o pixels: The address of a byte (8 bits) array of pixel data created by % the decoding process. % % */ static int DecodeImage (wmfBMP* bmp,BMPSource* src,unsigned int compression,unsigned char* pixels) { int byte; int count; int i; U16 x; U16 y; U32 u; unsigned char* q; unsigned char* end; for (u = 0; u < ((U32) bmp->width * (U32) bmp->height); u++) pixels[u] = 0; byte = 0; x = 0; q = pixels; end = pixels + bmp->width * bmp->height; for (y = 0; y < bmp->height; ) { count = ReadBlobByte (src); if (count == EOF) break; if (count != 0) { /* Encoded mode. */ byte = ReadBlobByte (src); for (i = 0; i < count; i++) { if (q == end) return 0; if (compression == 1) { (*(q++)) = (unsigned char) byte; } else { (*(q++)) = ((i & 0x01) ? (byte & 0x0f) : ((byte >> 4) & 0x0f)); x++; } } } else { /* Escape mode. */ count = ReadBlobByte (src); if (count == 0x01) return 1; switch (count) { case 0x00: { /* End of line. */ x = 0; y++; if (y >= bmp->height) return 0; q = pixels + y * bmp->width; break; } case 0x02: { /* Delta mode. */ x += ReadBlobByte (src); y += ReadBlobByte (src); if (y >= bmp->height) return 0; if (x >= bmp->width) return 0; q = pixels + y * bmp->width + x; break; } default: { /* Absolute mode. */ for (i = 0; i < count; i++) { if (q == end) return 0; if (compression == 1) { (*(q++)) = ReadBlobByte (src); } else { if ((i & 0x01) == 0) byte = ReadBlobByte (src); (*(q++)) = ((i & 0x01) ? (byte & 0x0f) : ((byte >> 4) & 0x0f)); } x++; } /* Read pad byte. */ if (compression == 1) { if (count & 0x01) byte = ReadBlobByte (src); } else { if (((count & 0x03) == 1) || ((count & 0x03) == 2)) { byte = ReadBlobByte (src); } } break; } } } /* ?? TODO if (QuantumTick (y,image->rows)) MagickMonitor (LoadImageText,y,image->rows); */ } ReadBlobByte (src); /* end of line */ ReadBlobByte (src); return 1; } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % R e a d B M P I m a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Method ReadBMPImage reads a Microsoft Windows bitmap image file and % returns it. It allocates the memory necessary for the new Image structure % and returns a pointer to the new image. % % The format of the ReadBMPImage method is: % % image=ReadBMPImage(image_info) % % A description of each parameter follows: % % o image: Method ReadBMPImage returns a pointer to the image after % reading. A null image is returned if there is a memory shortage or % if the image cannot be read. % % o image_info: Specifies a pointer to an ImageInfo structure. % % o exception: return any errors or warnings in this structure. % % */ static void ReadBMPImage (wmfAPI* API,wmfBMP* bmp,BMPSource* src) { BMPInfo bmp_info; BMPData* data = 0; long start_position = 0; unsigned char packet[4]; unsigned int bytes_per_line; unsigned int image_size; unsigned int packet_size; unsigned int i; unsigned long u; size_t bytes_read; data = (BMPData*) bmp->data; memset (&bmp_info,0,sizeof (BMPInfo)); bmp_info.ba_offset = 0; bmp_info.size = ReadBlobLSBLong (src); if (bmp_info.size == 12) { /* OS/2 BMP image file. */ bmp_info.width = ReadBlobLSBShort (src); bmp_info.height = ReadBlobLSBShort (src); bmp_info.planes = ReadBlobLSBShort (src); bmp_info.bits_per_pixel = ReadBlobLSBShort (src); bmp_info.x_pixels = 0; bmp_info.y_pixels = 0; bmp_info.number_colors = 0; bmp_info.compression = 0; bmp_info.image_size = 0; } else { /* Microsoft Windows BMP image file. */ bmp_info.width = ReadBlobLSBLong (src); bmp_info.height = ReadBlobLSBLong (src); bmp_info.planes = ReadBlobLSBShort (src); bmp_info.bits_per_pixel = ReadBlobLSBShort (src); bmp_info.compression = ReadBlobLSBLong (src); bmp_info.image_size = ReadBlobLSBLong (src); bmp_info.x_pixels = ReadBlobLSBLong (src); bmp_info.y_pixels = ReadBlobLSBLong (src); bmp_info.number_colors = ReadBlobLSBLong (src); bmp_info.colors_important = ReadBlobLSBLong (src); for (u = 0; u < (bmp_info.size - 40); u++) ReadBlobByte (src); if ( (bmp_info.compression == 3) && ((bmp_info.bits_per_pixel == 16) || (bmp_info.bits_per_pixel == 32)) ) { bmp_info.red_mask = ReadBlobLSBShort (src); bmp_info.green_mask = ReadBlobLSBShort (src); bmp_info.blue_mask = ReadBlobLSBShort (src); if (bmp_info.size > 40) { /* Read color management information. */ bmp_info.alpha_mask = ReadBlobLSBShort (src); bmp_info.colorspace = ReadBlobLSBLong (src); bmp_info.red_primary.x = ReadBlobLSBLong (src); bmp_info.red_primary.y = ReadBlobLSBLong (src); bmp_info.red_primary.z = ReadBlobLSBLong (src); bmp_info.green_primary.x = ReadBlobLSBLong (src); bmp_info.green_primary.y = ReadBlobLSBLong (src); bmp_info.green_primary.z = ReadBlobLSBLong (src); bmp_info.blue_primary.x = ReadBlobLSBLong (src); bmp_info.blue_primary.y = ReadBlobLSBLong (src); bmp_info.blue_primary.z = ReadBlobLSBLong (src); bmp_info.gamma_scale.x = ReadBlobLSBShort (src); bmp_info.gamma_scale.y = ReadBlobLSBShort (src); bmp_info.gamma_scale.z = ReadBlobLSBShort (src); } } } if (bmp_info.height < 0) { bmp_info.height = - bmp_info.height; data->flipped = 1; } else { data->flipped = 0; } /* WMF may change bitmap size without changing bitmap header */ if (bmp->width == 0) bmp->width = (U16) bmp_info.width; if (bmp->height == 0) bmp->height = (U16) bmp_info.height; data->NColors = 0; if ((bmp_info.number_colors != 0) || (bmp_info.bits_per_pixel < 16)) { data->NColors = (unsigned int) bmp_info.number_colors; } if (data->NColors > 0) { /* Read BMP raster colormap. */ data->rgb = (wmfRGB*) wmf_malloc (API,data->NColors * sizeof (wmfRGB)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } if (bmp_info.size == 12) packet_size = 3; else packet_size = 4; for (i = 0; i < data->NColors; i++) { bytes_read = ReadBlob (src,packet_size,packet); if (bytes_read < packet_size) { WMF_ERROR (API,"Unexpected EOF"); API->err = wmf_E_EOF; break; } data->rgb[i].b = packet[0]; data->rgb[i].g = packet[1]; data->rgb[i].r = packet[2]; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } } while (TellBlob (src) < (long) (start_position + bmp_info.offset_bits)) { ReadBlobByte (src); } /* Read image data. */ if (bmp_info.compression == 2) bmp_info.bits_per_pixel <<= 1; bytes_per_line = 4 * ((bmp->width * bmp_info.bits_per_pixel + 31) / 32); image_size = bytes_per_line * bmp->height; data->image = (unsigned char*) wmf_malloc (API,image_size); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } if ((bmp_info.compression == 0) || (bmp_info.compression == 3)) { bytes_read = ReadBlob (src,image_size,data->image); if (bytes_read < image_size) { WMF_ERROR (API,"Unexpected EOF"); API->err = wmf_E_EOF; } } else { if (bmp_info.bits_per_pixel == 8) /* Convert run-length encoded raster pixels. */ { if (!DecodeImage (bmp,src,(unsigned int) bmp_info.compression,data->image)) { WMF_ERROR (API,"corrupt bmp"); API->err = wmf_E_BadFormat; } } else { WMF_ERROR (API,"Unexpected pixel depth"); API->err = wmf_E_BadFormat; } } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } data->bits_per_pixel = bmp_info.bits_per_pixel; data->bytes_per_line = bytes_per_line; data->masked = bmp_info.red_mask; } static int ExtractColor (wmfAPI* API,wmfBMP* bmp,wmfRGB* rgb,unsigned int x,unsigned int y) { int status = 0; BMPData* data = 0; int bit; unsigned int color; unsigned char opacity = WMF_BMP_OPAQUE; unsigned char* p; unsigned short word; data = (BMPData*) bmp->data; if (data->flipped) y = (bmp->height - 1) - y; switch (data->bits_per_pixel) { case 1: { p = data->image + (y * data->bytes_per_line) + (x >> 3); bit = 0x80 >> (x & 0x07); if ((*p) & bit) color = 1; else color = 0; if (data->rgb && (color < data->NColors)) { (*rgb) = data->rgb[color]; } else { if (color) { rgb->r = 0; rgb->g = 0; rgb->b = 0; } else { rgb->r = 0xff; rgb->g = 0xff; rgb->b = 0xff; } } break; } case 4: { p = data->image + (y * data->bytes_per_line) + (x >> 1); if (x & 1) color = (*p) & 0x0f; else color = ((*p) >> 4) & 0x0f; if (data->rgb && (color < data->NColors)) { (*rgb) = data->rgb[color]; } else { rgb->r = color << 4; rgb->g = color << 4; rgb->b = color << 4; } break; } case 8: { p = data->image + (y * data->bytes_per_line) + x; color = (*p); if (data->rgb && (color < data->NColors)) { (*rgb) = data->rgb[color]; } else { rgb->r = color; rgb->g = color; rgb->b = color; } break; } case 16: { p = data->image + (y * data->bytes_per_line) + (x << 1); word = (unsigned short) p[0] | (((unsigned short) p[1]) << 8); if (data->masked == 0) { rgb->r = ((word >> 10) & 0x1f) << 3; rgb->g = ((word >> 5) & 0x1f) << 3; rgb->b = ( word & 0x1f) << 3; } else { rgb->r = ((word >> 11) & 0x1f) << 3; rgb->g = ((word >> 5) & 0x3f) << 2; rgb->b = ( word & 0x1f) << 3; } break; } case 24: { p = data->image + (y * data->bytes_per_line) + (x + (x << 1)); rgb->b = p[0]; rgb->g = p[1]; rgb->r = p[2]; break; } case 32: { p = data->image + (y * data->bytes_per_line) + (x << 2); rgb->b = p[0]; rgb->g = p[1]; rgb->r = p[2]; opacity = p[3]; break; } default: if ((API->flags & WMF_OPT_IGNORE_NONFATAL) == 0) { WMF_ERROR (API,"Bitmap has bad format (illegal color depth)"); API->err = wmf_E_BadFormat; } status = -1; break; } if (status == 0) status = (int) opacity; return (status); } static void SetColor (wmfAPI* API,wmfBMP* bmp,wmfRGB* rgb,unsigned char opacity,unsigned int x,unsigned int y) { BMPData* data = 0; unsigned int i; unsigned int r_diff; unsigned int g_diff; unsigned int b_diff; unsigned int diff; unsigned int min_diff; unsigned int color; unsigned char bit; unsigned char* p; unsigned short word; data = (BMPData*) bmp->data; if (data->flipped) y = (bmp->height - 1) - y; switch (data->bits_per_pixel) { case 1: { p = data->image + (y * data->bytes_per_line) + (x >> 3); bit = 0x80 >> (x & 0x07); if (rgb->r || rgb->g || rgb->b) { (*p) |= ( bit & 0xff); } else { (*p) &= (~bit & 0xff); } break; } case 4: { p = data->image + (y * data->bytes_per_line) + (x >> 1); if (data->rgb == 0) break; min_diff = 766; color = 0; for (i = 0; i < data->NColors; i++) { r_diff = (unsigned int) ABS ((int) rgb->r - (int) data->rgb[i].r); g_diff = (unsigned int) ABS ((int) rgb->g - (int) data->rgb[i].g); b_diff = (unsigned int) ABS ((int) rgb->b - (int) data->rgb[i].b); diff = r_diff + g_diff + b_diff; if (min_diff > diff) { min_diff = diff; color = i; } } if (x & 1) { (*p) = ( ((unsigned char) color) | ((*p) & 0x0f)); } else { (*p) = ((((unsigned char) color) << 4) | ((*p) & 0xf0)); } break; } case 8: { p = data->image + (y * data->bytes_per_line) + x; if (data->rgb == 0) break; min_diff = 766; color = 0; for (i = 0; i < data->NColors; i++) { r_diff = (unsigned int) ABS ((int) rgb->r - (int) data->rgb[i].r); g_diff = (unsigned int) ABS ((int) rgb->g - (int) data->rgb[i].g); b_diff = (unsigned int) ABS ((int) rgb->b - (int) data->rgb[i].b); diff = r_diff + g_diff + b_diff; if (min_diff > diff) { min_diff = diff; color = i; } } (*p) = (unsigned char) color; break; } case 16: { p = data->image + (y * data->bytes_per_line) + (x << 1); word = 0; if (data->masked == 0) { word |= (rgb->r >> 3) << 10; word |= (rgb->g >> 3) << 5; word |= rgb->b >> 3; } else { word |= (rgb->r >> 3) << 11; word |= (rgb->g >> 2) << 5; word |= rgb->b >> 3; } p[0] = (unsigned char) ( word & 0x00ff ); p[1] = (unsigned char) ((word & 0xff00) >> 8); break; } case 24: { p = data->image + (y * data->bytes_per_line) + (x + (x << 1)); p[0] = rgb->b; p[1] = rgb->g; p[2] = rgb->r; break; } case 32: { p = data->image + (y * data->bytes_per_line) + (x << 2); p[0] = rgb->b; p[1] = rgb->g; p[2] = rgb->r; p[3] = opacity; break; } default: if ((API->flags & WMF_OPT_IGNORE_NONFATAL) == 0) { WMF_ERROR (API,"Bitmap has bad format (illegal color depth)"); API->err = wmf_E_BadFormat; } break; } } libwmf-0.2.13/src/ipa/plot.c000066400000000000000000000141261441723000300155350ustar00rootroot00000000000000/* libwmf (ipa/plot.c): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ #include #include "wmfdefs.h" #ifdef HAVE_LIBPLOT #include "libwmf/plot.h" static void wmf_plot_device_open (wmfAPI*); static void wmf_plot_device_close (wmfAPI*); static void wmf_plot_device_begin (wmfAPI*); static void wmf_plot_device_end (wmfAPI*); static void wmf_plot_flood_interior (wmfAPI*,wmfFlood_t*); static void wmf_plot_flood_exterior (wmfAPI*,wmfFlood_t*); static void wmf_plot_draw_pixel (wmfAPI*,wmfDrawPixel_t*); static void wmf_plot_draw_pie (wmfAPI*,wmfDrawArc_t*); static void wmf_plot_draw_chord (wmfAPI*,wmfDrawArc_t*); static void wmf_plot_draw_arc (wmfAPI*,wmfDrawArc_t*); static void wmf_plot_draw_ellipse (wmfAPI*,wmfDrawArc_t*); static void wmf_plot_draw_line (wmfAPI*,wmfDrawLine_t*); static void wmf_plot_poly_line (wmfAPI*,wmfPolyLine_t*); static void wmf_plot_draw_polygon (wmfAPI*,wmfPolyLine_t*); static void wmf_plot_draw_rectangle (wmfAPI*,wmfDrawRectangle_t*); static void wmf_plot_rop_draw (wmfAPI*,wmfROP_Draw_t*); static void wmf_plot_bmp_draw (wmfAPI*,wmfBMP_Draw_t*); static void wmf_plot_bmp_read (wmfAPI*,wmfBMP_Read_t*); static void wmf_plot_bmp_free (wmfAPI*,wmfBMP*); static void wmf_plot_draw_text (wmfAPI*,wmfDrawText_t*); static void wmf_plot_udata_init (wmfAPI*,wmfUserData_t*); static void wmf_plot_udata_copy (wmfAPI*,wmfUserData_t*); static void wmf_plot_udata_set (wmfAPI*,wmfUserData_t*); static void wmf_plot_udata_free (wmfAPI*,wmfUserData_t*); static void wmf_plot_region_frame (wmfAPI*,wmfPolyRectangle_t*); static void wmf_plot_region_paint (wmfAPI*,wmfPolyRectangle_t*); static void wmf_plot_region_clip (wmfAPI*,wmfPolyRectangle_t*); #include "ipa/plot.h" #include "ipa/plot/bmp.h" #include "ipa/plot/device.h" #include "ipa/plot/draw.h" #include "ipa/plot/region.h" #endif /* HAVE_LIBPLOT */ void wmf_plot_function (wmfAPI* API) { #ifdef HAVE_LIBPLOT wmf_plot_t* ddata = 0; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; plot_t* plot = 0; if ((API->flags & API_STANDARD_INTERFACE) == 0) { WMF_ERROR (API,"Can't use this device layer with 'lite' interface!"); API->err = wmf_E_DeviceError; return; } /* IPA function reference links */ FR->device_open = wmf_plot_device_open; FR->device_close = wmf_plot_device_close; FR->device_begin = wmf_plot_device_begin; FR->device_end = wmf_plot_device_end; FR->flood_interior = wmf_plot_flood_interior; FR->flood_exterior = wmf_plot_flood_exterior; FR->draw_pixel = wmf_plot_draw_pixel; FR->draw_pie = wmf_plot_draw_pie; FR->draw_chord = wmf_plot_draw_chord; FR->draw_arc = wmf_plot_draw_arc; FR->draw_ellipse = wmf_plot_draw_ellipse; FR->draw_line = wmf_plot_draw_line; FR->poly_line = wmf_plot_poly_line; FR->draw_polygon = wmf_plot_draw_polygon; FR->draw_rectangle = wmf_plot_draw_rectangle; FR->rop_draw = wmf_plot_rop_draw; FR->bmp_draw = wmf_plot_bmp_draw; FR->bmp_read = wmf_plot_bmp_read; FR->bmp_free = wmf_plot_bmp_free; FR->draw_text = wmf_plot_draw_text; FR->udata_init = wmf_plot_udata_init; FR->udata_copy = wmf_plot_udata_copy; FR->udata_set = wmf_plot_udata_set; FR->udata_free = wmf_plot_udata_free; FR->region_frame = wmf_plot_region_frame; FR->region_paint = wmf_plot_region_paint; FR->region_clip = wmf_plot_region_clip; /* Allocate device data structure */ ddata = (wmf_plot_t*) wmf_malloc (API,sizeof (wmf_plot_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } API->device_data = (void*) ddata; /* Device data defaults */ ddata->type = wmf_plot_generic; ddata->plot_data = (plot_t*) wmf_malloc (API,sizeof (plot_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } plot = (plot_t*) ddata->plot_data; plot->plotter = 0; plot->params = pl_newplparams (); if (plot->params == 0) { API->err = wmf_E_DeviceError; return; } ddata->file = 0; ddata->width = 0; ddata->height = 0; ddata->bbox.TL.x = 0; ddata->bbox.TL.y = 0; ddata->bbox.BR.x = 0; ddata->bbox.BR.y = 0; ddata->flags = 0; #else /* HAVE_LIBPLOT */ API->device_data = 0; API->err = wmf_E_DeviceError; #endif /* HAVE_LIBPLOT */ } #ifdef HAVE_LIBPLOT static void wmf_plot_draw_text (wmfAPI* API,wmfDrawText_t* draw_text) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]draw_text"); } static void wmf_plot_udata_init (wmfAPI* API,wmfUserData_t* userdata) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]udata_init"); } static void wmf_plot_udata_copy (wmfAPI* API,wmfUserData_t* userdata) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]udata_copy"); } static void wmf_plot_udata_set (wmfAPI* API,wmfUserData_t* userdata) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]udata_set"); } static void wmf_plot_udata_free (wmfAPI* API,wmfUserData_t* userdata) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]udata_free"); } #endif /* HAVE_LIBPLOT */ libwmf-0.2.13/src/ipa/plot.h000066400000000000000000000024451441723000300155430ustar00rootroot00000000000000/* libwmf ("ipa/plot.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFIPA_PLOT_H #define WMFIPA_PLOT_H #include typedef struct _plotPoint plotPoint; typedef struct _plot_t plot_t; static plotPoint plot_translate (wmfAPI*,wmfD_Coord); static float plot_width (wmfAPI*,float); static float plot_height (wmfAPI*,float); struct _plotPoint { int x; int y; }; struct _plot_t { plPlotter* plotter; plPlotterParams* params; }; #endif /* ! WMFIPA_PLOT_H */ libwmf-0.2.13/src/ipa/plot/000077500000000000000000000000001441723000300153655ustar00rootroot00000000000000libwmf-0.2.13/src/ipa/plot/bmp.h000066400000000000000000000030761441723000300163220ustar00rootroot00000000000000/* libwmf ("ipa/plot/bmp.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_plot_rop_draw (wmfAPI* API,wmfROP_Draw_t* ropdraw) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]rop_draw"); } static void wmf_plot_bmp_draw (wmfAPI* API,wmfBMP_Draw_t* bmp_draw) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]bmp_draw"); } static void wmf_plot_bmp_read (wmfAPI* API,wmfBMP_Read_t* bmp_read) { WMF_DEBUG (API,"wmf_[plot_]bmp_read"); wmf_ipa_bmp_read (API,bmp_read); } static void wmf_plot_bmp_free (wmfAPI* API,wmfBMP* bmp) { WMF_DEBUG (API,"wmf_[plot_]bmp_free"); wmf_ipa_bmp_free (API,bmp); } libwmf-0.2.13/src/ipa/plot/device.h000066400000000000000000000057751441723000300170130ustar00rootroot00000000000000/* libwmf ("ipa/plot/device.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This is called by wmf_play() the *first* time the meta file is played */ static void wmf_plot_device_open (wmfAPI* API) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); /* plot_t* plot = (plot_t*) ddata->plot_data; */ WMF_DEBUG (API,"wmf_[plot_]device_open"); } /* This is called by wmf_api_destroy() */ static void wmf_plot_device_close (wmfAPI* API) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]device_close"); /* */ if (plot) { if (plot->params) pl_deleteplparams (plot->params); } } /* This is called from the beginning of each play for initial page setup */ static void wmf_plot_device_begin (wmfAPI* API) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]device_begin"); } /* This is called from the end of each play for page termination */ static void wmf_plot_device_end (wmfAPI* API) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]device_end"); } static plotPoint plot_translate (wmfAPI* API,wmfD_Coord d_pt) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plotPoint g_pt; double x; double y; x = ((double) d_pt.x - (double) ddata->bbox.TL.x); x /= ((double) ddata->bbox.BR.x - (double) ddata->bbox.TL.x); x *= (double) ddata->width; y = ((double) d_pt.y - (double) ddata->bbox.TL.y); y /= ((double) ddata->bbox.BR.y - (double) ddata->bbox.TL.y); y *= (double) ddata->height; g_pt.x = (int) floor (x); g_pt.y = (int) floor (y); return (g_pt); } static float plot_width (wmfAPI* API,float wmf_width) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); double width; width = (double) wmf_width * (double) ddata->width; width /= ((double) ddata->bbox.BR.x - (double) ddata->bbox.TL.x); return ((float) width); } static float plot_height (wmfAPI* API,float wmf_height) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); double height; height = (double) wmf_height * (double) ddata->height; height /= ((double) ddata->bbox.BR.y - (double) ddata->bbox.TL.y); return ((float) height); } libwmf-0.2.13/src/ipa/plot/draw.h000066400000000000000000000062521441723000300165000ustar00rootroot00000000000000/* libwmf ("ipa/plot/draw.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_plot_flood_interior (wmfAPI* API,wmfFlood_t* flood) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]flood_interior"); } static void wmf_plot_flood_exterior (wmfAPI* API,wmfFlood_t* flood) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]flood_exterior"); } static void wmf_plot_draw_pixel (wmfAPI* API,wmfDrawPixel_t* draw_pixel) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]draw_pixel"); } static void wmf_plot_draw_pie (wmfAPI* API,wmfDrawArc_t* draw_arc) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]draw_pie"); } static void wmf_plot_draw_chord (wmfAPI* API,wmfDrawArc_t* draw_arc) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]draw_chord"); } static void wmf_plot_draw_arc (wmfAPI* API,wmfDrawArc_t* draw_arc) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]draw_arc"); } static void wmf_plot_draw_ellipse (wmfAPI* API,wmfDrawArc_t* draw_arc) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]draw_ellipse"); } static void wmf_plot_draw_line (wmfAPI* API,wmfDrawLine_t* draw_line) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]draw_line"); } static void wmf_plot_poly_line (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]poly_line"); } static void wmf_plot_draw_polygon (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]draw_polygon"); } static void wmf_plot_draw_rectangle (wmfAPI* API,wmfDrawRectangle_t* draw_rectangle) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]draw_rectangle"); } libwmf-0.2.13/src/ipa/plot/region.h000066400000000000000000000030431441723000300170210ustar00rootroot00000000000000/* libwmf ("ipa/plot/region.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_plot_region_frame (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]region_frame"); } static void wmf_plot_region_paint (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]region_paint"); } static void wmf_plot_region_clip (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_plot_t* ddata = WMF_PLOT_GetData (API); plot_t* plot = (plot_t*) ddata->plot_data; WMF_DEBUG (API,"wmf_[plot_]region_clip"); } libwmf-0.2.13/src/ipa/svg.c000066400000000000000000000364461441723000300153670ustar00rootroot00000000000000/* libwmf (ipa/svg.c): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ #include #include #include #include "wmfdefs.h" #ifndef WITHOUT_LAYERS #include "libwmf/svg.h" static void wmf_svg_device_open (wmfAPI*); static void wmf_svg_device_close (wmfAPI*); static void wmf_svg_device_begin (wmfAPI*); static void wmf_svg_device_end (wmfAPI*); static void wmf_svg_flood_interior (wmfAPI*,wmfFlood_t*); static void wmf_svg_flood_exterior (wmfAPI*,wmfFlood_t*); static void wmf_svg_draw_pixel (wmfAPI*,wmfDrawPixel_t*); static void wmf_svg_draw_pie (wmfAPI*,wmfDrawArc_t*); static void wmf_svg_draw_chord (wmfAPI*,wmfDrawArc_t*); static void wmf_svg_draw_arc (wmfAPI*,wmfDrawArc_t*); static void wmf_svg_draw_ellipse (wmfAPI*,wmfDrawArc_t*); static void wmf_svg_draw_line (wmfAPI*,wmfDrawLine_t*); static void wmf_svg_poly_line (wmfAPI*,wmfPolyLine_t*); static void wmf_svg_draw_polygon (wmfAPI*,wmfPolyLine_t*); static void wmf_svg_draw_polypolygon(wmfAPI * API, wmfPolyPoly_t* polypolygon); static void wmf_svg_draw_rectangle (wmfAPI*,wmfDrawRectangle_t*); static void wmf_svg_rop_draw (wmfAPI*,wmfROP_Draw_t*); static void wmf_svg_bmp_draw (wmfAPI*,wmfBMP_Draw_t*); static void wmf_svg_bmp_read (wmfAPI*,wmfBMP_Read_t*); static void wmf_svg_bmp_free (wmfAPI*,wmfBMP*); static void wmf_svg_draw_text (wmfAPI*,wmfDrawText_t*); static void wmf_svg_udata_init (wmfAPI*,wmfUserData_t*); static void wmf_svg_udata_copy (wmfAPI*,wmfUserData_t*); static void wmf_svg_udata_set (wmfAPI*,wmfUserData_t*); static void wmf_svg_udata_free (wmfAPI*,wmfUserData_t*); static void wmf_svg_region_frame (wmfAPI*,wmfPolyRectangle_t*); static void wmf_svg_region_paint (wmfAPI*,wmfPolyRectangle_t*); static void wmf_svg_region_clip (wmfAPI*,wmfPolyRectangle_t*); #include "ipa/svg.h" #include "ipa/svg/bmp.h" #include "ipa/svg/device.h" #include "ipa/svg/draw.h" #include "ipa/svg/region.h" #endif /* ! WITHOUT_LAYERS */ void wmf_svg_function (wmfAPI* API) { #ifndef WITHOUT_LAYERS wmf_svg_t* ddata = 0; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; if ((API->flags & API_STANDARD_INTERFACE) == 0) { WMF_ERROR (API,"Can't use this device layer with 'lite' interface!"); API->err = wmf_E_DeviceError; return; } /* IPA function reference links */ FR->device_open = wmf_svg_device_open; FR->device_close = wmf_svg_device_close; FR->device_begin = wmf_svg_device_begin; FR->device_end = wmf_svg_device_end; FR->flood_interior = wmf_svg_flood_interior; FR->flood_exterior = wmf_svg_flood_exterior; FR->draw_pixel = wmf_svg_draw_pixel; FR->draw_pie = wmf_svg_draw_pie; FR->draw_chord = wmf_svg_draw_chord; FR->draw_arc = wmf_svg_draw_arc; FR->draw_ellipse = wmf_svg_draw_ellipse; FR->draw_line = wmf_svg_draw_line; FR->poly_line = wmf_svg_poly_line; FR->draw_polygon = wmf_svg_draw_polygon; FR->draw_polypolygon = wmf_svg_draw_polypolygon; FR->draw_rectangle = wmf_svg_draw_rectangle; FR->rop_draw = wmf_svg_rop_draw; FR->bmp_draw = wmf_svg_bmp_draw; FR->bmp_read = wmf_svg_bmp_read; FR->bmp_free = wmf_svg_bmp_free; FR->draw_text = wmf_svg_draw_text; FR->udata_init = wmf_svg_udata_init; FR->udata_copy = wmf_svg_udata_copy; FR->udata_set = wmf_svg_udata_set; FR->udata_free = wmf_svg_udata_free; FR->region_frame = wmf_svg_region_frame; FR->region_paint = wmf_svg_region_paint; FR->region_clip = wmf_svg_region_clip; /* Allocate device data structure */ ddata = (wmf_svg_t*) wmf_malloc (API,sizeof (wmf_svg_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } API->device_data = (void*) ddata; /* Device data defaults */ ddata->bbox.TL.x = 0; ddata->bbox.TL.y = 0; ddata->bbox.BR.x = 0; ddata->bbox.BR.y = 0; ddata->out = 0; ddata->Description = 0; ddata->width = 0; ddata->height = 0; ddata->image.context = 0; ddata->image.name = 0; ddata->flags = 0; #else /* ! WITHOUT_LAYERS */ API->device_data = 0; API->err = wmf_E_DeviceError; #endif /* ! WITHOUT_LAYERS */ } #ifndef WITHOUT_LAYERS static void wmf_svg_draw_text (wmfAPI* API,wmfDrawText_t* draw_text) { wmf_svg_t* ddata = WMF_SVG_GetData (API); svgFont font; svgPoint pt; float font_height; float sin_theta; float cos_theta; double theta; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]draw_text"); if (out == 0) return; pt = svg_translate (API,draw_text->pt); font_height = svg_height (API,(float) draw_text->font_height); theta = - WMF_TEXT_ANGLE (draw_text->dc->font); sin_theta = (float) sin (theta); cos_theta = (float) cos (theta); /* TODO: Scaling? */ /* TODO: Background color? */ /* TODO: string-length?? */ wmf_stream_printf (API,out,"dc))); wmf_stream_printf (API,out,"font-family:%s; ",font.family); wmf_stream_printf (API,out,"font-style:%s; ", font.style); wmf_stream_printf (API,out,"font-weight:%s; ",font.weight); wmf_stream_printf (API,out,"font-size:%f; ",font_height); wmf_stream_printf (API,out,"fill:%s",svg_color_closest (WMF_DC_TEXTCOLOR (draw_text->dc))); /* wmf_stream_printf (API,out,"\">",(float) (theta * 180 / PI)); */ wmf_stream_printf (API,out,"\" transform=\"matrix("); wmf_stream_printf (API,out,"%f %f %f %f ",cos_theta,sin_theta,-sin_theta,cos_theta); wmf_stream_printf (API,out,"%f %f)\"\n\t>",pt.x,pt.y); wmf_stream_printf (API,out,"%s",draw_text->str); /* wmf_stream_printf (API,out,"\n"); */ wmf_stream_printf (API,out,"\n"); } static void wmf_svg_udata_init (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]udata_init"); } static void wmf_svg_udata_copy (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]udata_copy"); } static void wmf_svg_udata_set (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]udata_set"); } static void wmf_svg_udata_free (wmfAPI* API,wmfUserData_t* user_data) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ (void)user_data; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]udata_free"); } static svgFont svg_font (char* ps_name) { svgFont* font = svg_known_fonts; while (font->ps_name) { if (strcmp (ps_name,font->ps_name) == 0) break; font++; } return (*font); } static char* svg_color_closest (wmfRGB* rgb) { int i; int i_best; int d; int d_r; int d_g; int d_b; int d_best; i_best = 0; d_r = (int) rgb->r - (int) svg_named_color[i_best].r; d_r = ABS (d_r); d_g = (int) rgb->g - (int) svg_named_color[i_best].g; d_g = ABS (d_g); d_b = (int) rgb->b - (int) svg_named_color[i_best].b; d_b = ABS (d_b); d_best = MAX (d_r,d_g); d_best = MAX (d_b,d_best); for (i = 1; i < 147; i++) { d_r = (int) rgb->r - (int) svg_named_color[i].r; d_r = ABS (d_r); d_g = (int) rgb->g - (int) svg_named_color[i].g; d_g = ABS (d_g); d_b = (int) rgb->b - (int) svg_named_color[i].b; d_b = ABS (d_b); d = MAX (d_r,d_g); d = MAX (d_b,d); if (d == 0) { i_best = i; break; } if (d < d_best) { i_best = i; d_best = d; } } return (svg_named_color[i_best].name); } static void svg_style_fill (wmfAPI* API,wmfDC* dc) { wmf_svg_t* ddata = WMF_SVG_GetData (API); wmfRGB* brush_color; wmfBMP* brush_bmp; wmfBrush* brush; unsigned int fill_opaque; unsigned int fill_polyfill; unsigned int brush_style; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~svg_style_fill"); if (out == 0) return; fill_opaque = (unsigned int) WMF_DC_OPAQUE (dc); fill_polyfill = (unsigned int) WMF_DC_POLYFILL (dc); brush = WMF_DC_BRUSH (dc); brush_style = (unsigned int) WMF_BRUSH_STYLE (brush); brush_color = WMF_BRUSH_COLOR (brush); brush_bmp = WMF_BRUSH_BITMAP (brush); if (brush_style == BS_NULL) { wmf_stream_printf (API,out,"fill:none"); return; } if (fill_opaque) { wmf_stream_printf (API,out,"fill-opacity:1.0; "); } else { wmf_stream_printf (API,out,"fill-opacity:0.5; "); /* semi-transparent... ?? */ } switch (fill_polyfill) /* Is this correct ?? */ { case WINDING: wmf_stream_printf (API,out,"fill-rule:nonzero; "); break; case ALTERNATE: default: wmf_stream_printf (API,out,"fill-rule:evenodd; "); break; } switch (brush_style) { #ifdef WRITE_EPS_NOT_SVG /* float side; */ case BS_HATCHED: fputs ("clip ",out); if (dc->bgmode != TRANSPARENT) { rgb = dc->bgcolor; red = (float) ((int) rgb.r) / 255; green = (float) ((int) rgb.g) / 255; blue = (float) ((int) rgb.b) / 255; fprintf (out,"%f %f %f setrgbcolor ",red,green,blue); fputs ("fill ",out); } fputs ("\n",out); fputs ("1 setlinewidth ",out); fputs ("[] 0 setdash ",out); rgb = brush->lbColor; red = (float) ((int) rgb.r) / 255; green = (float) ((int) rgb.g) / 255; blue = (float) ((int) rgb.b) / 255; fprintf (out,"%f %f %f setrgbcolor\n",red,green,blue); switch (brush->lbHatch) { case HS_HORIZONTAL: fprintf (out,"%f 5 %f { newpath dup %f exch moveto %f exch lineto stroke } for\n", bbox->TL.y,bbox->BR.y,bbox->TL.x,bbox->BR.x); break; case HS_VERTICAL: fprintf (out,"%f 5 %f { newpath dup %f moveto %f lineto stroke } for\n", bbox->TL.x,bbox->BR.x,bbox->TL.y,bbox->BR.y); break; case HS_FDIAGONAL: fputs ("gsave % HS_FDIAGONAL\n",out); fprintf (out,"%f %f translate -45 rotate ", bbox->TL.x-(bbox->BR.y-bbox->TL.y)/2,(bbox->TL.y+bbox->BR.y)/2); side = ((bbox->BR.x-bbox->TL.x) + (bbox->BR.y-bbox->TL.y)) / 1.41421356237309504880; fprintf (out,"0 5 %f { newpath dup 0 moveto %f lineto stroke } for ", side,side); fputs ("grestore\n",out); break; case HS_BDIAGONAL: fputs ("gsave % HS_BDIAGONAL\n",out); fprintf (out,"%f %f translate -45 rotate ", bbox->TL.x-(bbox->BR.y-bbox->TL.y)/2,(bbox->TL.y+bbox->BR.y)/2); side = ((bbox->BR.x-bbox->TL.x) + (bbox->BR.y-bbox->TL.y)) / 1.41421356237309504880; fprintf (out,"0 5 %f { newpath dup 0 exch moveto %f exch lineto stroke } for ", side,side); fputs ("grestore\n",out); break; case HS_CROSS: fprintf (out,"%f 5 %f { newpath dup %f exch moveto %f exch lineto stroke } for\n", bbox->TL.y,bbox->BR.y,bbox->TL.x,bbox->BR.x); fprintf (out,"%f 5 %f { newpath dup %f moveto %f lineto stroke } for\n", bbox->TL.x,bbox->BR.x,bbox->TL.y,bbox->BR.y); break; case HS_DIAGCROSS: fputs ("gsave % HS_DIAGCROSS\n",out); fprintf (out,"%f %f translate -45 rotate ", bbox->TL.x-(bbox->BR.y-bbox->TL.y)/2,(bbox->TL.y+bbox->BR.y)/2); side = ((bbox->BR.x-bbox->TL.x) + (bbox->BR.y-bbox->TL.y)) / 1.41421356237309504880; fprintf (out,"0 5 %f { newpath dup 0 moveto %f lineto stroke } for ", side,side); fprintf (out,"0 5 %f { newpath dup 0 exch moveto %f exch lineto stroke } for ", side,side); fputs ("grestore\n",out); break; default: if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Unsupported brush/hatch style!"); } else { WMF_ERROR (API,"Unsupported brush/hatch style!"); API->err = wmf_E_Glitch; } break; } break; #endif /* WRITE_EPS_NOT_SVG */ case BS_DIBPATTERN: if (brush_bmp->data == 0) { if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Attempt to fill with non-existent pattern!"); } else { WMF_ERROR (API,"Attempt to fill with non-existent pattern!"); API->err = wmf_E_Glitch; break; } } /* fallthrough - TODO: implement bitmap fill */ default: if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Unsupported brush style!"); /* no break here */ } else { WMF_ERROR (API,"Unsupported brush style!"); API->err = wmf_E_Glitch; break; } /* fallthrough - no break here */ case BS_SOLID: break; } wmf_stream_printf (API,out,"fill:%s",svg_color_closest (brush_color)); } static void svg_style_stroke (wmfAPI* API,wmfDC* dc) { wmf_svg_t* ddata = WMF_SVG_GetData (API); wmfPen* pen; wmfRGB* pen_color; float pen_width; unsigned int pen_style; unsigned int pen_endcap; unsigned int pen_join; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~svg_style_stroke"); if (out == 0) return; pen = WMF_DC_PEN (dc); pen_color = WMF_PEN_COLOR (pen); pen_width = ( svg_width (API,(float) WMF_PEN_WIDTH (pen)) + svg_height (API,(float) WMF_PEN_HEIGHT (pen)) ) / 2; pen_style = (unsigned int) WMF_PEN_STYLE (pen); pen_endcap = (unsigned int) WMF_PEN_ENDCAP (pen); pen_join = (unsigned int) WMF_PEN_JOIN (pen); if (pen_style == PS_NULL) { wmf_stream_printf (API,out,"stroke:none"); return; } wmf_stream_printf (API,out,"stroke-width:%f; ",MAX (0,pen_width)); switch (pen_endcap) { case PS_ENDCAP_SQUARE: wmf_stream_printf (API,out,"stroke-linecap:square; "); break; case PS_ENDCAP_ROUND: wmf_stream_printf (API,out,"stroke-linecap:round; "); break; case PS_ENDCAP_FLAT: default: wmf_stream_printf (API,out,"stroke-linecap:butt; "); break; } switch (pen_join) { case PS_JOIN_BEVEL: wmf_stream_printf (API,out,"stroke-linejoin:bevel; "); break; case PS_JOIN_ROUND: wmf_stream_printf (API,out,"stroke-linejoin:round; "); break; case PS_JOIN_MITER: default: wmf_stream_printf (API,out,"stroke-linejoin:miter; "); break; } switch (pen_style) { case PS_DASH: /* DASH_LINE */ wmf_stream_printf (API,out,"stroke-dasharray:%f %f; ", pen_width*10,pen_width*10); break; case PS_ALTERNATE: case PS_DOT: /* DOTTED_LINE */ wmf_stream_printf (API,out,"stroke-dasharray:%f %f; ", pen_width,pen_width*2); break; case PS_DASHDOT: /* DASH_DOT_LINE */ wmf_stream_printf (API,out,"stroke-dasharray:%f %f %f %f; ", pen_width*10,pen_width*2,pen_width,pen_width*2); break; case PS_DASHDOTDOT: /* DASH_2_DOTS_LINE */ wmf_stream_printf (API,out,"stroke-dasharray:%f %f %f %f %f %f; ", pen_width*10,pen_width*2,pen_width,pen_width*2,pen_width,pen_width*2); break; case PS_INSIDEFRAME: /* There is nothing to do in this case... */ case PS_SOLID: default: wmf_stream_printf (API,out,"stroke-dasharray:none; "); break; } wmf_stream_printf (API,out,"stroke:%s",svg_color_closest (pen_color)); } #endif /* ! WITHOUT_LAYERS */ libwmf-0.2.13/src/ipa/svg.h000066400000000000000000000170421441723000300153630ustar00rootroot00000000000000/* libwmf ("ipa/svg.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFIPA_SVG_H #define WMFIPA_SVG_H typedef enum { svg_arc_open, svg_arc_pie, svg_arc_chord } svg_arc_t; static void svg_draw_arc (wmfAPI*,wmfDrawArc_t*,svg_arc_t); typedef struct _svgPoint svgPoint; struct _svgPoint { float x; float y; }; static svgPoint svg_translate (wmfAPI*,wmfD_Coord); static float svg_width (wmfAPI*,float); static float svg_height (wmfAPI*,float); static void svg_style_stroke (wmfAPI*,wmfDC*); static void svg_style_fill (wmfAPI*,wmfDC*); typedef struct _svgFont svgFont; struct _svgFont { char* ps_name; char* family; char* style; char* weight; }; static svgFont svg_font (char*); static svgFont svg_known_fonts[] = { { "Courier", "Courier", "normal", "normal" }, { "Courier-Oblique", "Courier", "oblique", "normal" }, { "Courier-Bold", "Courier", "normal", "bold" }, { "Courier-BoldOblique", "Courier", "oblique", "bold" }, { "Helvetica", "Helvetica", "normal", "normal" }, { "Helvetica-Oblique", "Helvetica", "oblique", "normal" }, { "Helvetica-Bold", "Helvetica", "normal", "bold" }, { "Helvetica-BoldOblique","Helvetica", "oblique", "bold" }, { "Times-Roman", "Times", "normal", "normal" }, { "Times-Italic", "Times", "italic", "normal" }, { "Times-Bold", "Times", "normal", "bold" }, { "Times-BoldItalic", "Times", "italic", "bold" }, { "Symbol", "Symbol", "normal", "normal" }, { 0, "Times", "normal", "normal" } /* default */ }; typedef struct _svgColor svgColor; struct _svgColor { char* name; unsigned char r; unsigned char g; unsigned char b; }; static char* svg_color_closest (wmfRGB*); /* These are the colors defined in the SVG standard */ static svgColor svg_named_color[147] = { { "aliceblue", 240, 248, 255 }, { "antiquewhite", 250, 235, 215 }, { "aqua", 0, 255, 255 }, { "aquamarine", 127, 255, 212 }, { "azure", 240, 255, 255 }, { "beige", 245, 245, 220 }, { "bisque", 255, 228, 196 }, { "black", 0, 0, 0 }, { "blanchedalmond", 255, 235, 205 }, { "blue", 0, 0, 255 }, { "blueviolet", 138, 43, 226 }, { "brown", 165, 42, 42 }, { "burlywood", 222, 184, 135 }, { "cadetblue", 95, 158, 160 }, { "chartreuse", 127, 255, 0 }, { "chocolate", 210, 105, 30 }, { "coral", 255, 127, 80 }, { "cornflowerblue", 100, 149, 237 }, { "cornsilk", 255, 248, 220 }, { "crimson", 220, 20, 60 }, { "cyan", 0, 255, 255 }, { "darkblue", 0, 0, 139 }, { "darkcyan", 0, 139, 139 }, { "darkgoldenrod", 184, 134, 11 }, { "darkgray", 169, 169, 169 }, { "darkgreen", 0, 100, 0 }, { "darkgrey", 169, 169, 169 }, { "darkkhaki", 189, 183, 107 }, { "darkmagenta", 139, 0, 139 }, { "darkolivegreen", 85, 107, 47 }, { "darkorange", 255, 140, 0 }, { "darkorchid", 153, 50, 204 }, { "darkred", 139, 0, 0 }, { "darksalmon", 233, 150, 122 }, { "darkseagreen", 143, 188, 143 }, { "darkslateblue", 72, 61, 139 }, { "darkslategray", 47, 79, 79 }, { "darkslategrey", 47, 79, 79 }, { "darkturquoise", 0, 206, 209 }, { "darkviolet", 148, 0, 211 }, { "deeppink", 255, 20, 147 }, { "deepskyblue", 0, 191, 255 }, { "dimgray", 105, 105, 105 }, { "dimgrey", 105, 105, 105 }, { "dodgerblue", 30, 144, 255 }, { "firebrick", 178, 34, 34 }, { "floralwhite", 255, 250, 240 }, { "forestgreen", 34, 139, 34 }, { "fuchsia", 255, 0, 255 }, { "gainsboro", 220, 220, 220 }, { "ghostwhite", 248, 248, 255 }, { "gold", 255, 215, 0 }, { "goldenrod", 218, 165, 32 }, { "gray", 128, 128, 128 }, { "grey", 128, 128, 128 }, { "green", 0, 128, 0 }, { "greenyellow", 173, 255, 47 }, { "honeydew", 240, 255, 240 }, { "hotpink", 255, 105, 180 }, { "indianred", 205, 92, 92 }, { "indigo", 75, 0, 130 }, { "ivory", 255, 255, 240 }, { "khaki", 240, 230, 140 }, { "lavender", 230, 230, 250 }, { "lavenderblush", 255, 240, 245 }, { "lawngreen", 124, 252, 0 }, { "lemonchiffon", 255, 250, 205 }, { "lightblue", 173, 216, 230 }, { "lightcoral", 240, 128, 128 }, { "lightcyan", 224, 255, 255 }, { "lightgoldenrodyellow", 250, 250, 210 }, { "lightgray", 211, 211, 211 }, { "lightgreen", 144, 238, 144 }, { "lightgrey", 211, 211, 211 }, { "lightpink", 255, 182, 193 }, { "lightsalmon", 255, 160, 122 }, { "lightseagreen", 32, 178, 170 }, { "lightskyblue", 135, 206, 250 }, { "lightslategray", 119, 136, 153 }, { "lightslategrey", 119, 136, 153 }, { "lightsteelblue", 176, 196, 222 }, { "lightyellow", 255, 255, 224 }, { "lime", 0, 255, 0 }, { "limegreen", 50, 205, 50 }, { "linen", 250, 240, 230 }, { "magenta", 255, 0, 255 }, { "maroon", 128, 0, 0 }, { "mediumaquamarine", 102, 205, 170 }, { "mediumblue", 0, 0, 205 }, { "mediumorchid", 186, 85, 211 }, { "mediumpurple", 147, 112, 219 }, { "mediumseagreen", 60, 179, 113 }, { "mediumslateblue", 123, 104, 238 }, { "mediumspringgreen", 0, 250, 154 }, { "mediumturquoise", 72, 209, 204 }, { "mediumvioletred", 199, 21, 133 }, { "midnightblue", 25, 25, 112 }, { "mintcream", 245, 255, 250 }, { "mistyrose", 255, 228, 225 }, { "moccasin", 255, 228, 181 }, { "navajowhite", 255, 222, 173 }, { "navy", 0, 0, 128 }, { "oldlace", 253, 245, 230 }, { "olive", 128, 128, 0 }, { "olivedrab", 107, 142, 35 }, { "orange", 255, 165, 0 }, { "orangered", 255, 69, 0 }, { "orchid", 218, 112, 214 }, { "palegoldenrod", 238, 232, 170 }, { "palegreen", 152, 251, 152 }, { "paleturquoise", 175, 238, 238 }, { "palevioletred", 219, 112, 147 }, { "papayawhip", 255, 239, 213 }, { "peachpuff", 255, 218, 185 }, { "peru", 205, 133, 63 }, { "pink", 255, 192, 203 }, { "plum", 221, 160, 221 }, { "powderblue", 176, 224, 230 }, { "purple", 128, 0, 128 }, { "red", 255, 0, 0 }, { "rosybrown", 188, 143, 143 }, { "royalblue", 65, 105, 225 }, { "saddlebrown", 139, 69, 19 }, { "salmon", 250, 128, 114 }, { "sandybrown", 244, 164, 96 }, { "seagreen", 46, 139, 87 }, { "seashell", 255, 245, 238 }, { "sienna", 160, 82, 45 }, { "silver", 192, 192, 192 }, { "skyblue", 135, 206, 235 }, { "slateblue", 106, 90, 205 }, { "slategray", 112, 128, 144 }, { "slategrey", 112, 128, 144 }, { "snow", 255, 250, 250 }, { "springgreen", 0, 255, 127 }, { "steelblue", 70, 130, 180 }, { "tan", 210, 180, 140 }, { "teal", 0, 128, 128 }, { "thistle", 216, 191, 216 }, { "tomato", 255, 99, 71 }, { "turquoise", 64, 224, 208 }, { "violet", 238, 130, 238 }, { "wheat", 245, 222, 179 }, { "white", 255, 255, 255 }, { "whitesmoke", 245, 245, 245 }, { "yellow", 255, 255, 0 }, { "yellowgreen", 154, 205, 50 }}; #endif /* ! WMFIPA_SVG_H */ libwmf-0.2.13/src/ipa/svg/000077500000000000000000000000001441723000300152065ustar00rootroot00000000000000libwmf-0.2.13/src/ipa/svg/bmp.h000066400000000000000000000063141441723000300161410ustar00rootroot00000000000000/* libwmf ("ipa/svg/bmp.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_svg_rop_draw (wmfAPI* API,wmfROP_Draw_t* rop_draw) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ (void)rop_draw; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]rop_draw"); } /* TODO ?? Care about bmp_draw->type */ static void wmf_svg_bmp_draw (wmfAPI* API,wmfBMP_Draw_t* bmp_draw) { wmf_svg_t* ddata = WMF_SVG_GetData (API); float width; float height; char* name = 0; svgPoint pt; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]bmp_draw"); if (out == 0) return; if (bmp_draw->bmp.data == 0) return; if ((ddata->flags & WMF_SVG_INLINE_IMAGES) == 0) { if (ddata->image.name == 0) return; name = ddata->image.name (ddata->image.context); if (name == 0) return; wmf_ipa_bmp_png (API,bmp_draw,name); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } /* Okay, if we've got this far then "name" is the filename of an png (cropped) image */ } pt = svg_translate (API,bmp_draw->pt); width = (float) (bmp_draw->pixel_width * (double) bmp_draw->crop.w); height = (float) (bmp_draw->pixel_height * (double) bmp_draw->crop.h); width = svg_width (API,width); height = svg_height (API,height); width = ABS (width); height = ABS (height); wmf_stream_printf (API,out,"crop.w; height /= (float) bmp_draw->crop.h; wmf_stream_printf (API,out,"\ttransform=\"matrix("); wmf_stream_printf (API,out,"%f 0 0 %f %f %f)\"\n",width,height,pt.x,pt.y); if ((ddata->flags & WMF_SVG_INLINE_IMAGES) == 0) { wmf_stream_printf (API,out,"\tsodipodi:absref=\"%s\"\n",name); wmf_stream_printf (API,out,"\txlink:href=\"%s\"/>\n",name); } else { wmf_stream_printf (API,out,"\txlink:href=\"data:image/png;base64,"); wmf_ipa_bmp_b64 (API,bmp_draw,out); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } wmf_stream_printf (API,out,"\"/>\n"); } } static void wmf_svg_bmp_read (wmfAPI* API,wmfBMP_Read_t* bmp_read) { WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]bmp_read"); wmf_ipa_bmp_read (API,bmp_read); } static void wmf_svg_bmp_free (wmfAPI* API,wmfBMP* bmp) { WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]bmp_free"); wmf_ipa_bmp_free (API,bmp); } libwmf-0.2.13/src/ipa/svg/device.h000066400000000000000000000100531441723000300166150ustar00rootroot00000000000000/* libwmf ("ipa/svg/device.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This is called by wmf_play() the *first* time the meta file is played */ static void wmf_svg_device_open (wmfAPI* API) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]device_open"); } /* This is called by wmf_api_destroy() */ static void wmf_svg_device_close (wmfAPI* API) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]device_close"); } /* This is called from the beginning of each play for initial page setup */ static void wmf_svg_device_begin (wmfAPI* API) { wmf_svg_t* ddata = WMF_SVG_GetData (API); wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]device_begin"); if (out == 0) return; if ((out->reset (out->context)) && ((API->flags & WMF_OPT_IGNORE_NONFATAL) == 0)) { WMF_ERROR (API,"unable to reset output stream!"); API->err = wmf_E_DeviceError; return; } if ((ddata->bbox.BR.x <= ddata->bbox.TL.x) || (ddata->bbox.BR.y <= ddata->bbox.TL.y)) { WMF_ERROR (API,"~~~~~~~~wmf_[svg_]device_begin: bounding box has null or negative size!"); API->err = wmf_E_Glitch; return; } if ((ddata->width == 0) || (ddata->height == 0)) { ddata->width = (unsigned int) ceil (ddata->bbox.BR.x - ddata->bbox.TL.x); ddata->height = (unsigned int) ceil (ddata->bbox.BR.y - ddata->bbox.TL.y); } wmf_stream_printf (API,out,"\n"); wmf_stream_printf (API,out,"\n"); wmf_stream_printf (API,out,"width,ddata->height); wmf_stream_printf (API,out,"\txmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\">\n"); if (ddata->Description) { wmf_stream_printf (API,out,"%s\n",ddata->Description); } } /* This is called from the end of each play for page termination */ static void wmf_svg_device_end (wmfAPI* API) { wmf_svg_t* ddata = WMF_SVG_GetData (API); wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]device_end"); if (out == 0) return; wmf_stream_printf (API,out,"\n"); } static svgPoint svg_translate (wmfAPI* API,wmfD_Coord d_pt) { wmf_svg_t* ddata = WMF_SVG_GetData (API); svgPoint g_pt; double x; double y; x = ((double) d_pt.x - (double) ddata->bbox.TL.x); x /= ((double) ddata->bbox.BR.x - (double) ddata->bbox.TL.x); x *= (double) ddata->width; y = ((double) d_pt.y - (double) ddata->bbox.TL.y); y /= ((double) ddata->bbox.BR.y - (double) ddata->bbox.TL.y); y *= (double) ddata->height; g_pt.x = (float) x; g_pt.y = (float) y; return (g_pt); } static float svg_width (wmfAPI* API,float wmf_width) { wmf_svg_t* ddata = WMF_SVG_GetData (API); double width; width = (double) wmf_width * (double) ddata->width; width /= ((double) ddata->bbox.BR.x - (double) ddata->bbox.TL.x); return ((float) width); } static float svg_height (wmfAPI* API,float wmf_height) { wmf_svg_t* ddata = WMF_SVG_GetData (API); double height; height = (double) wmf_height * (double) ddata->height; height /= ((double) ddata->bbox.BR.y - (double) ddata->bbox.TL.y); return ((float) height); } libwmf-0.2.13/src/ipa/svg/draw.h000066400000000000000000000251501441723000300163170ustar00rootroot00000000000000/* libwmf ("ipa/svg/draw.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_svg_flood_interior (wmfAPI* API,wmfFlood_t* flood) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ (void)flood; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]flood_interior"); if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"flood_interior unsupported."); } else { WMF_ERROR (API,"flood_interior unsupported."); API->err = wmf_E_Glitch; } } static void wmf_svg_flood_exterior (wmfAPI* API,wmfFlood_t* flood) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ (void)flood; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]flood_exterior"); if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"flood_exterior unsupported."); } else { WMF_ERROR (API,"flood_exterior unsupported."); API->err = wmf_E_Glitch; } } static void wmf_svg_draw_pixel (wmfAPI* API,wmfDrawPixel_t* draw_pixel) { wmf_svg_t* ddata = WMF_SVG_GetData (API); wmfRGB* rgb = &(draw_pixel->color); svgPoint pt; float width; float height; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]draw_pixel"); if (out == 0) return; pt = svg_translate (API,draw_pixel->pt); width = svg_width (API,(float) draw_pixel->pixel_width ); height = svg_height (API,(float) draw_pixel->pixel_height); wmf_stream_printf (API,out,"\n"); } static void wmf_svg_draw_pie (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]draw_pie"); svg_draw_arc (API,draw_arc,svg_arc_pie); } static void wmf_svg_draw_chord (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]draw_chord"); svg_draw_arc (API,draw_arc,svg_arc_chord); } static void wmf_svg_draw_arc (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]draw_arc"); svg_draw_arc (API,draw_arc,svg_arc_open); } static void wmf_svg_draw_ellipse (wmfAPI* API,wmfDrawArc_t* draw_arc) { wmf_svg_t* ddata = WMF_SVG_GetData (API); svgPoint TL; svgPoint BR; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]draw_ellipse"); if (out == 0) return; if (TO_FILL (draw_arc) || TO_DRAW (draw_arc)) { TL = svg_translate (API,draw_arc->TL); BR = svg_translate (API,draw_arc->BR); wmf_stream_printf (API,out,"dc); wmf_stream_printf (API,out,"; "); svg_style_stroke (API,draw_arc->dc); wmf_stream_printf (API,out,"\" "); wmf_stream_printf (API,out,"/>\n"); } } static void svg_draw_arc (wmfAPI* API,wmfDrawArc_t* draw_arc,svg_arc_t finish) { wmf_svg_t* ddata = WMF_SVG_GetData (API); svgPoint TL; svgPoint BR; svgPoint start; svgPoint end; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~svg_draw_arc"); if (out == 0) return; if ((draw_arc->start.x == draw_arc->end.x) || (draw_arc->start.y == draw_arc->end.y)) { wmf_svg_draw_ellipse (API,draw_arc); return; } if (TO_FILL (draw_arc) || TO_DRAW (draw_arc)) { TL = svg_translate (API,draw_arc->TL); BR = svg_translate (API,draw_arc->BR); start = svg_translate (API,draw_arc->start); end = svg_translate (API,draw_arc->end ); wmf_stream_printf (API,out,"dc); wmf_stream_printf (API,out,"; "); } svg_style_stroke (API,draw_arc->dc); wmf_stream_printf (API,out,"\" "); wmf_stream_printf (API,out,"/>\n"); } } static void wmf_svg_draw_line (wmfAPI* API,wmfDrawLine_t* draw_line) { wmf_svg_t* ddata = WMF_SVG_GetData (API); svgPoint from; svgPoint to; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]draw_line"); if (out == 0) return; if (TO_DRAW (draw_line)) { from = svg_translate (API,draw_line->from); to = svg_translate (API,draw_line->to ); wmf_stream_printf (API,out,"dc); wmf_stream_printf (API,out,"\" "); wmf_stream_printf (API,out,"/>\n"); } } static void wmf_svg_poly_line (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_svg_t* ddata = WMF_SVG_GetData (API); svgPoint pt; U16 i; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]poly_line"); if (out == 0) return; if (poly_line->count <= 1) return; if (TO_DRAW (poly_line)) { wmf_stream_printf (API,out,"count; i++) { if ((i & 3) == 1) wmf_stream_printf (API,out,"\n\t"); pt = svg_translate (API,poly_line->pt[i]); wmf_stream_printf (API,out,"%f,%f ",pt.x,pt.y); } wmf_stream_printf (API,out,"\"\n\t"); wmf_stream_printf (API,out,"style=\""); svg_style_stroke (API,poly_line->dc); wmf_stream_printf (API,out,"\" "); wmf_stream_printf (API,out,"/>\n"); } } static void wmf_svg_draw_polygon (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_svg_t* ddata = WMF_SVG_GetData (API); svgPoint pt; U16 i; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]draw_polygon"); if (out == 0) return; if (poly_line->count <= 2) return; if (TO_FILL (poly_line) || TO_DRAW (poly_line)) { wmf_stream_printf (API,out,"count; i++) { if ((i & 3) == 1) wmf_stream_printf (API,out,"\n\t"); pt = svg_translate (API,poly_line->pt[i]); wmf_stream_printf (API,out,"%f,%f ",pt.x,pt.y); } wmf_stream_printf (API,out,"\"\n\t"); wmf_stream_printf (API,out,"style=\""); svg_style_fill (API,poly_line->dc); wmf_stream_printf (API,out,"; "); svg_style_stroke (API,poly_line->dc); wmf_stream_printf (API,out,"\" "); wmf_stream_printf (API,out,"/>\n"); } } static void wmf_svg_draw_polypolygon(wmfAPI * API, wmfPolyPoly_t* polypolygon) { wmf_svg_t* ddata = WMF_SVG_GetData (API); wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]draw_polypolygon"); if (out == 0) return; if (TO_FILL(polypolygon) || TO_DRAW(polypolygon)) { int polygon, point; wmfPolyLine_t poly_line; svgPoint pt; wmf_stream_printf (API,out,"npoly; polygon++) { poly_line.dc = polypolygon->dc; poly_line.pt = polypolygon->pt[polygon]; poly_line.count = polypolygon->count[polygon]; if ((poly_line.count > 2) && poly_line.pt) { pt = svg_translate (API,poly_line.pt[0]); wmf_stream_printf (API,out,"M%f,%fL",pt.x,pt.y); for (point = 1; point < poly_line.count; point++) { if ((point & 3) == 1) wmf_stream_printf (API,out,"\n\t"); pt = svg_translate (API,poly_line.pt[point]); wmf_stream_printf (API,out,"%f,%f ",pt.x,pt.y); } wmf_stream_printf (API,out,"Z"); } } wmf_stream_printf (API,out,"\"\n\t"); wmf_stream_printf (API,out,"style=\""); svg_style_fill (API,polypolygon->dc); wmf_stream_printf (API,out,"; "); svg_style_stroke (API,polypolygon->dc); wmf_stream_printf (API,out,"\" "); wmf_stream_printf (API,out,"/>\n"); } } static void wmf_svg_draw_rectangle (wmfAPI* API,wmfDrawRectangle_t* draw_rect) { wmf_svg_t* ddata = WMF_SVG_GetData (API); svgPoint TL; svgPoint BR; float width; float height; wmfStream* out = ddata->out; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]draw_rectangle"); if (out == 0) return; if (TO_FILL (draw_rect) || TO_DRAW (draw_rect)) { TL = svg_translate (API,draw_rect->TL); BR = svg_translate (API,draw_rect->BR); wmf_stream_printf (API,out,"width > 0) || (draw_rect->height > 0)) { width = svg_width (API,draw_rect->width ) / 2; height = svg_height (API,draw_rect->height) / 2; wmf_stream_printf (API,out,"rx=\"%f\" ",width); wmf_stream_printf (API,out,"ry=\"%f\" ",height); } wmf_stream_printf (API,out,"\n\t"); wmf_stream_printf (API,out,"style=\""); svg_style_fill (API,draw_rect->dc); wmf_stream_printf (API,out,"; "); svg_style_stroke (API,draw_rect->dc); wmf_stream_printf (API,out,"\" "); wmf_stream_printf (API,out,"/>\n"); } } libwmf-0.2.13/src/ipa/svg/region.h000066400000000000000000000027431441723000300166500ustar00rootroot00000000000000/* libwmf ("ipa/svg/region.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_svg_region_frame (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ (void)poly_rect; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]region_frame"); } static void wmf_svg_region_paint (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ (void)poly_rect; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]region_paint"); } static void wmf_svg_region_clip (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { /* wmf_svg_t* ddata = WMF_SVG_GetData (API); */ (void)poly_rect; WMF_DEBUG (API,"~~~~~~~~wmf_[svg_]region_clip"); } libwmf-0.2.13/src/ipa/template.c000066400000000000000000000220741441723000300163730ustar00rootroot00000000000000/* libwmf (ipa/template.c): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ /* If compiling as module, rename global functions to a standard */ #ifdef WMF_IPA_MODULE #define wmf_template_device_open wmf_device_open #define wmf_template_device_close wmf_device_close #define wmf_template_device_begin wmf_device_begin #define wmf_template_device_end wmf_device_end #define wmf_template_flood_interior wmf_flood_interior #define wmf_template_flood_exterior wmf_flood_exterior #define wmf_template_draw_pixel wmf_draw_pixel #define wmf_template_draw_pie wmf_draw_pie #define wmf_template_draw_chord wmf_draw_chord #define wmf_template_draw_arc wmf_draw_arc #define wmf_template_draw_ellipse wmf_draw_ellipse #define wmf_template_draw_line wmf_draw_line #define wmf_template_poly_line wmf_poly_line #define wmf_template_draw_polygon wmf_draw_polygon #define wmf_template_draw_rectangle wmf_draw_rectangle #define wmf_template_rop_draw wmf_rop_draw #define wmf_template_bmp_draw wmf_bmp_draw #define wmf_template_bmp_read wmf_bmp_read #define wmf_template_bmp_free wmf_bmp_free #define wmf_template_draw_text wmf_draw_text #define wmf_template_udata_init wmf_udata_init #define wmf_template_udata_copy wmf_udata_copy #define wmf_template_udata_set wmf_udata_set #define wmf_template_udata_free wmf_udata_free #define wmf_template_region_frame wmf_region_frame #define wmf_template_region_paint wmf_region_paint #define wmf_template_region_clip wmf_region_clip #endif /* WMF_IPA_MODULE */ #include "wmfdefs.h" #include "libwmf/template.h" #include "ipa/template.h" void wmf_template_function (wmfAPI* API) { wmf_template_t* ddata = 0; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; /* IPA function reference links */ FR->device_open = wmf_template_device_open; FR->device_close = wmf_template_device_close; FR->device_begin = wmf_template_device_begin; FR->device_end = wmf_template_device_end; FR->flood_interior = wmf_template_flood_interior; FR->flood_exterior = wmf_template_flood_exterior; FR->draw_pixel = wmf_template_draw_pixel; FR->draw_pie = wmf_template_draw_pie; FR->draw_chord = wmf_template_draw_chord; FR->draw_arc = wmf_template_draw_arc; FR->draw_ellipse = wmf_template_draw_ellipse; FR->draw_line = wmf_template_draw_line; FR->poly_line = wmf_template_poly_line; FR->draw_polygon = wmf_template_draw_polygon; FR->draw_rectangle = wmf_template_draw_rectangle; FR->rop_draw = wmf_template_rop_draw; FR->bmp_draw = wmf_template_bmp_draw; FR->bmp_read = wmf_template_bmp_read; FR->bmp_free = wmf_template_bmp_free; FR->draw_text = wmf_template_draw_text; FR->udata_init = wmf_template_udata_init; FR->udata_copy = wmf_template_udata_copy; FR->udata_set = wmf_template_udata_set; FR->udata_free = wmf_template_udata_free; FR->region_frame = wmf_template_region_frame; FR->region_paint = wmf_template_region_paint; FR->region_clip = wmf_template_region_clip; /* Allocate device data structure */ ddata = (wmf_template_t*) wmf_malloc (API,sizeof (wmf_template_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } API->device_data = (void*) ddata; /* Device data defaults */ ddata->bbox.TL.x = 0; ddata->bbox.TL.y = 0; ddata->bbox.BR.x = 0; ddata->bbox.BR.y = 0; ddata->flags = 0; } /* This is called by wmf_play() the *first* time the meta file is played */ void wmf_template_device_open (wmfAPI* API) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]device_open"); } /* This is called by wmf_api_destroy() */ void wmf_template_device_close (wmfAPI* API) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]device_close"); } /* This is called from the beginning of each play for initial page setup */ void wmf_template_device_begin (wmfAPI* API) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]device_begin"); } /* This is called from the end of each play for page termination */ void wmf_template_device_end (wmfAPI* API) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]device_end"); } void wmf_template_flood_interior (wmfAPI* API,wmfFlood_t* flood) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]flood_interior"); } void wmf_template_flood_exterior (wmfAPI* API,wmfFlood_t* flood) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]flood_exterior"); } void wmf_template_draw_pixel (wmfAPI* API,wmfDrawPixel_t* drawpixel) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]draw_pixel"); } void wmf_template_draw_pie (wmfAPI* API,wmfDrawArc_t* drawarc) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]draw_pie"); } void wmf_template_draw_chord (wmfAPI* API,wmfDrawArc_t* drawarc) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]draw_chord"); } void wmf_template_draw_arc (wmfAPI* API,wmfDrawArc_t* drawarc) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]draw_arc"); } void wmf_template_draw_ellipse (wmfAPI* API,wmfDrawArc_t* drawarc) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]draw_ellipse"); } void wmf_template_draw_line (wmfAPI* API,wmfDrawLine_t* drawline) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]draw_line"); } void wmf_template_poly_line (wmfAPI* API,wmfPolyLine_t* polyline) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]poly_line"); } void wmf_template_draw_polygon (wmfAPI* API,wmfPolyLine_t* polyline) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]draw_polygon"); } void wmf_template_draw_rectangle (wmfAPI* API,wmfDrawRectangle_t* drawrectangle) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]draw_rectangle"); } void wmf_template_rop_draw (wmfAPI* API,wmfROP_Draw_t* ropdraw) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]rop_draw"); } void wmf_template_bmp_draw (wmfAPI* API,wmfBMP_Draw_t* bmpdraw) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]bmp_draw"); } void wmf_template_bmp_read (wmfAPI* API,wmfBMP_Read_t* bmpread) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]bmp_read"); } void wmf_template_bmp_free (wmfAPI* API,wmfBMP* bmp) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]bmp_free"); } void wmf_template_draw_text (wmfAPI* API,wmfDrawText_t* drawtext) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]draw_text"); } void wmf_template_udata_init (wmfAPI* API,wmfUserData_t* userdata) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]udata_init"); } void wmf_template_udata_copy (wmfAPI* API,wmfUserData_t* userdata) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]udata_copy"); } void wmf_template_udata_set (wmfAPI* API,wmfUserData_t* userdata) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]udata_set"); } void wmf_template_udata_free (wmfAPI* API,wmfUserData_t* userdata) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]udata_free"); } void wmf_template_region_frame (wmfAPI* API,wmfPolyRectangle_t* polyrectangle) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]region_frame"); } void wmf_template_region_paint (wmfAPI* API,wmfPolyRectangle_t* polyrectangle) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]region_paint"); } void wmf_template_region_clip (wmfAPI* API,wmfPolyRectangle_t* polyrectangle) { wmf_template_t* ddata = WMF_TEMPLATE_GetData (API); WMF_DEBUG (API,"wmf_[template_]region_clip"); } libwmf-0.2.13/src/ipa/template.h000066400000000000000000000017451441723000300164020ustar00rootroot00000000000000/* libwmf ("ipa/template.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFIPA_TEMPLATE_H #define WMFIPA_TEMPLATE_H #endif /* ! WMFIPA_TEMPLATE_H */ libwmf-0.2.13/src/ipa/x.c000066400000000000000000000262131441723000300150260ustar00rootroot00000000000000/* libwmf (ipa/x.c): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ #include "wmfdefs.h" #ifdef X_DISPLAY_MISSING void wmf_x_function (wmfAPI* API) { API->err = wmf_E_DeviceError; WMF_DEBUG (API,"No support for X"); } #else /* X_DISPLAY_MISSING */ /* i.e., not */ #include #include "libwmf/x.h" static void wmf_x_device_open (wmfAPI*); static void wmf_x_device_close (wmfAPI*); static void wmf_x_device_begin (wmfAPI*); static void wmf_x_device_end (wmfAPI*); static void wmf_x_flood_interior (wmfAPI*,wmfFlood_t*); static void wmf_x_flood_exterior (wmfAPI*,wmfFlood_t*); static void wmf_x_draw_pixel (wmfAPI*,wmfDrawPixel_t*); static void wmf_x_draw_pie (wmfAPI*,wmfDrawArc_t*); static void wmf_x_draw_chord (wmfAPI*,wmfDrawArc_t*); static void wmf_x_draw_arc (wmfAPI*,wmfDrawArc_t*); static void wmf_x_draw_ellipse (wmfAPI*,wmfDrawArc_t*); static void wmf_x_draw_line (wmfAPI*,wmfDrawLine_t*); static void wmf_x_poly_line (wmfAPI*,wmfPolyLine_t*); static void wmf_x_draw_polygon (wmfAPI*,wmfPolyLine_t*); static void wmf_x_draw_rectangle (wmfAPI*,wmfDrawRectangle_t*); static void wmf_x_rop_draw (wmfAPI*,wmfROP_Draw_t*); static void wmf_x_bmp_draw (wmfAPI*,wmfBMP_Draw_t*); static void wmf_x_bmp_read (wmfAPI*,wmfBMP_Read_t*); static void wmf_x_bmp_free (wmfAPI*,wmfBMP*); static void wmf_x_draw_text (wmfAPI*,wmfDrawText_t*); static void wmf_x_udata_init (wmfAPI*,wmfUserData_t*); static void wmf_x_udata_copy (wmfAPI*,wmfUserData_t*); static void wmf_x_udata_set (wmfAPI*,wmfUserData_t*); static void wmf_x_udata_free (wmfAPI*,wmfUserData_t*); static void wmf_x_region_frame (wmfAPI*,wmfPolyRectangle_t*); static void wmf_x_region_paint (wmfAPI*,wmfPolyRectangle_t*); static void wmf_x_region_clip (wmfAPI*,wmfPolyRectangle_t*); #include #include #include "ipa/x.h" #include "ipa/x/bmp.h" #include "ipa/x/color.h" #include "ipa/x/device.h" #include "ipa/x/draw.h" #include "ipa/x/font.h" #include "ipa/x/region.h" void wmf_x_function (wmfAPI* API) { wmf_x_t* ddata = 0; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; if ((API->flags & API_STANDARD_INTERFACE) == 0) { WMF_ERROR (API,"Can't use this device layer with 'lite' interface!"); API->err = wmf_E_DeviceError; return; } /* IPA function reference links */ FR->device_open = wmf_x_device_open; FR->device_close = wmf_x_device_close; FR->device_begin = wmf_x_device_begin; FR->device_end = wmf_x_device_end; FR->flood_interior = wmf_x_flood_interior; FR->flood_exterior = wmf_x_flood_exterior; FR->draw_pixel = wmf_x_draw_pixel; FR->draw_pie = wmf_x_draw_pie; FR->draw_chord = wmf_x_draw_chord; FR->draw_arc = wmf_x_draw_arc; FR->draw_ellipse = wmf_x_draw_ellipse; FR->draw_line = wmf_x_draw_line; FR->poly_line = wmf_x_poly_line; FR->draw_polygon = wmf_x_draw_polygon; FR->draw_rectangle = wmf_x_draw_rectangle; FR->rop_draw = wmf_x_rop_draw; FR->bmp_draw = wmf_x_bmp_draw; FR->bmp_read = wmf_x_bmp_read; FR->bmp_free = wmf_x_bmp_free; FR->draw_text = wmf_x_draw_text; FR->udata_init = wmf_x_udata_init; FR->udata_copy = wmf_x_udata_copy; FR->udata_set = wmf_x_udata_set; FR->udata_free = wmf_x_udata_free; FR->region_frame = wmf_x_region_frame; FR->region_paint = wmf_x_region_paint; FR->region_clip = wmf_x_region_clip; /* Allocate device data structure */ ddata = (wmf_x_t*) wmf_malloc (API,sizeof (wmf_x_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } API->device_data = (void*) ddata; /* Device data defaults */ ddata->display_name = 0; ddata->window_name = 0; ddata->icon_name = 0; ddata->display = 0; ddata->root = None; ddata->window = None; ddata->pixmap = None; ddata->hatch = None; ddata->brush = None; ddata->gc = 0; ddata->color = 0; ddata->bbox.TL.x = 0; ddata->bbox.TL.y = 0; ddata->bbox.BR.x = 0; ddata->bbox.BR.y = 0; ddata->flags = 0; } static void wmf_x_udata_init (wmfAPI* API,wmfUserData_t* userdata) { (void)userdata; /* wmf_x_t* ddata = WMF_X_GetData (API); */ WMF_DEBUG (API,"wmf_[x_]udata_init"); } static void wmf_x_udata_copy (wmfAPI* API,wmfUserData_t* userdata) { (void)userdata; /* wmf_x_t* ddata = WMF_X_GetData (API); */ WMF_DEBUG (API,"wmf_[x_]udata_copy"); } static void wmf_x_udata_set (wmfAPI* API,wmfUserData_t* userdata) { (void)userdata; /* wmf_x_t* ddata = WMF_X_GetData (API); */ WMF_DEBUG (API,"wmf_[x_]udata_set"); } static void wmf_x_udata_free (wmfAPI* API,wmfUserData_t* userdata) { (void)userdata; /* wmf_x_t* ddata = WMF_X_GetData (API); */ WMF_DEBUG (API,"wmf_[x_]udata_free"); } static void setbrushstyle (wmfAPI* API,wmfDC* dc) { wmf_x_t* ddata = WMF_X_GetData (API); wmfBMP* bmp = 0; wmfRGB pixel; wmfBrush* brush = 0; int fill_style; U16 i; U16 j; XGCValues values; brush = WMF_DC_BRUSH (dc); values.function = Our_XROPfunction[WMF_DC_ROP (dc) - 1]; if (values.function == GXinvert) { values.function = GXxor; values.foreground = ddata->black; } else { values.foreground = get_color (API,WMF_BRUSH_COLOR (brush)); } values.background = get_color (API,WMF_DC_BACKGROUND (dc)); switch (WMF_BRUSH_STYLE (brush)) { /* TODO: these arrays are convenient but how SEG-safe are they? */ case BS_HATCHED: if (ddata->hatch != None) XFreePixmap (ddata->display,ddata->hatch); ddata->hatch = XCreateBitmapFromData (ddata->display,ddata->root, HatchBrushes[WMF_BRUSH_HATCH (brush)],8,8); fill_style = ((WMF_DC_OPAQUE (dc)) ? FillOpaqueStippled : FillStippled); XSetStipple (ddata->display,ddata->gc,ddata->hatch); break; case BS_DIBPATTERN: setdefaultstyle (API); bmp = WMF_BRUSH_BITMAP (brush); if (ddata->brush != None) { XFreePixmap (ddata->display,ddata->brush); ddata->brush = None; } if (bmp->data == 0) { fill_style = FillSolid; break; } ddata->brush = XCreatePixmap (ddata->display,ddata->root, bmp->width,bmp->height,ddata->depth); if (ddata->brush == None) { fill_style = FillSolid; break; } for (j = 0; j < bmp->height; j++) { for (i = 0; i < bmp->width; i++) { wmf_ipa_bmp_color (API,bmp,&pixel,i,j); XSetForeground (ddata->display,ddata->gc,get_color (API,&pixel)); XDrawPoint (ddata->display,ddata->brush,ddata->gc,i,j); } } XSetTile (ddata->display,ddata->gc,ddata->brush); fill_style = FillTiled; break; case BS_NULL: case BS_SOLID: case BS_PATTERN: default: fill_style = FillSolid; break; } XSetFillStyle (ddata->display,ddata->gc,fill_style); switch (WMF_DC_POLYFILL (dc)) { case ALTERNATE: values.fill_rule = EvenOddRule; break; case WINDING: values.fill_rule = WindingRule; break; default: values.fill_rule = EvenOddRule; break; } XChangeGC (ddata->display,ddata->gc,GCFunction|GCForeground|GCBackground|GCFillRule,&values); } static void setlinestyle (wmfAPI* API,wmfDC* dc) { wmf_x_t* ddata = WMF_X_GetData (API); wmfPen* pen = 0; unsigned long color; char* dashes = 0; int dash_len; XGCValues values; pen = WMF_DC_PEN (dc); color = get_color (API,WMF_PEN_COLOR (pen)); switch (WMF_DC_ROP (dc)) { case R2_BLACK: values.foreground = ddata->black; values.function = GXcopy; break; case R2_WHITE: values.foreground = ddata->white; values.function = GXcopy; break; case R2_XORPEN: values.foreground = color; /* It is very unlikely someone wants to XOR with 0 */ /* This fixes the rubber-drawings in paintbrush */ if (values.foreground == 0) { values.foreground = ((ddata->white) ? ddata->white : ddata->black); } values.function = GXxor; break; default: values.foreground = color; values.function = Our_XROPfunction[WMF_DC_ROP (dc) - 1]; break; } switch (WMF_PEN_STYLE (pen)) { case PS_DASH: dashes = (char*) PEN_dash; dash_len = 2; values.line_style = ((WMF_DC_OPAQUE (dc)) ? LineDoubleDash : LineOnOffDash); break; case PS_DOT: dashes = (char*) PEN_dot; dash_len = 2; values.line_style = ((WMF_DC_OPAQUE (dc)) ? LineDoubleDash : LineOnOffDash); break; case PS_DASHDOT: dashes = (char*) PEN_dashdot; dash_len = 4; values.line_style = ((WMF_DC_OPAQUE (dc)) ? LineDoubleDash : LineOnOffDash); break; case PS_DASHDOTDOT: dashes = (char*) PEN_dashdotdot; dash_len = 6; values.line_style = ((WMF_DC_OPAQUE (dc)) ? LineDoubleDash : LineOnOffDash); break; case PS_ALTERNATE: /* FIXME: should be alternating _pixels_ that are set */ dashes = (char*) PEN_alternate; dash_len = 2; values.line_style = ((WMF_DC_OPAQUE (dc)) ? LineDoubleDash : LineOnOffDash); break; case PS_USERSTYLE: /* FIXME */ default: dashes = 0; dash_len = 2; values.line_style = LineSolid; break; } values.fill_style = FillSolid; values.line_width = (int) ceil ( (double) x_width (API,WMF_PEN_WIDTH (pen)) + (double) x_height (API,WMF_PEN_HEIGHT (pen)) ); if (values.line_width < 1) values.line_width = 1; switch (WMF_PEN_ENDCAP (pen)) { case PS_ENDCAP_SQUARE: values.cap_style = CapProjecting; break; case PS_ENDCAP_FLAT: values.cap_style = CapButt; break; case PS_ENDCAP_ROUND: default: values.cap_style = CapRound; break; } switch (WMF_PEN_JOIN (pen)) { case PS_JOIN_BEVEL: values.join_style = JoinBevel; break; case PS_JOIN_MITER: values.join_style = JoinMiter; break; case PS_JOIN_ROUND: default: values.join_style = JoinRound; break; } if (dashes) XSetDashes (ddata->display,ddata->gc,0,dashes,dash_len); values.background = get_color (API,WMF_DC_BACKGROUND (dc)); XChangeGC (ddata->display,ddata->gc, GCFunction | GCForeground | GCLineStyle | GCLineWidth | GCCapStyle | GCBackground | GCJoinStyle | GCFillStyle, &values); } static void setdefaultstyle (wmfAPI* API) { wmf_x_t* ddata = WMF_X_GetData (API); XGCValues values; values.function = GXcopy; values.foreground = ddata->black; values.background = ddata->white; values.fill_style = FillSolid; values.fill_rule = EvenOddRule; values.cap_style = CapRound; values.join_style = JoinRound; values.line_style = LineSolid; values.line_width = 1; XChangeGC (ddata->display,ddata->gc, GCFunction | GCForeground | GCLineStyle | GCJoinStyle | GCCapStyle | GCBackground | GCLineWidth | GCFillStyle | GCFillRule, &values); } #endif /* X_DISPLAY_MISSING */ libwmf-0.2.13/src/ipa/x.h000066400000000000000000000062651441723000300150400ustar00rootroot00000000000000/* libwmf ("ipa/x.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFIPA_X_H #define WMFIPA_X_H /* ROP code to GC function conversion */ static int Our_XROPfunction[16] = { GXclear, /* R2_BLACK */ GXnor, /* R2_NOTMERGEPEN */ GXandInverted, /* R2_MASKNOTPEN */ GXcopyInverted, /* R2_NOTCOPYPEN */ GXandReverse, /* R2_MASKPENNOT */ GXinvert, /* R2_NOT */ GXxor, /* R2_XORPEN */ GXnand, /* R2_NOTMASKPEN */ GXand, /* R2_MASKPEN */ GXequiv, /* R2_NOTXORPEN */ GXnoop, /* R2_NOP */ GXorInverted, /* R2_MERGENOTPEN */ GXcopy, /* R2_COPYPEN */ GXorReverse, /* R2_MERGEPENNOT */ GXor, /* R2_MERGEPEN */ GXset /* R2_WHITE */ }; #define NB_HATCH_STYLES 6 static char HatchBrushes[NB_HATCH_STYLES + 1][8] = { { 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00 }, /* HS_HORIZONTAL */ { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 }, /* HS_VERTICAL */ { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }, /* HS_FDIAGONAL */ { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }, /* HS_BDIAGONAL */ { 0x08, 0x08, 0x08, 0xff, 0x08, 0x08, 0x08, 0x08 }, /* HS_CROSS */ { 0x81, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x81 }, /* HS_DIAGCROSS */ { 0xee, 0xbb, 0xee, 0xbb, 0xee, 0xbb, 0xee, 0xbb } /* Hack for DKGRAY */ }; static char PEN_dash[] = { 5,3 }; /* ----- ----- ----- */ static char PEN_dot[] = { 2,2 }; /* -- -- -- -- -- -- */ static char PEN_dashdot[] = { 4,3,2,3 }; /* ---- -- ---- -- */ static char PEN_dashdotdot[] = { 4,2,2,2,2,2 }; /* ---- -- -- ---- -- */ static char PEN_alternate[] = { 1,1 }; /* FIXME */ static void setbrushstyle (wmfAPI*,wmfDC*); static void setlinestyle (wmfAPI*,wmfDC*); static void setdefaultstyle (wmfAPI*); /* device.h */ static XPoint x_translate (wmfAPI*,wmfD_Coord); static XPoint x_translate_ft64 (wmfAPI*,wmfD_Coord,FT_Vector*); static float x_width (wmfAPI*,float); static float x_height (wmfAPI*,float); /* color.h */ static void setup_color (wmfAPI*); static unsigned long get_color (wmfAPI*,wmfRGB*); /* draw.h */ typedef enum { x_arc_ellipse = 0, x_arc_open, x_arc_pie, x_arc_chord } x_arc_t; static void x_draw_arc (wmfAPI*,wmfDrawArc_t*,x_arc_t); /* font.h */ static void x_draw_ftbitmap (wmfAPI*,FT_Bitmap*,XPoint,wmfRGB*,wmfRGB*); #endif /* ! WMFIPA_X_H */ libwmf-0.2.13/src/ipa/x/000077500000000000000000000000001441723000300146565ustar00rootroot00000000000000libwmf-0.2.13/src/ipa/x/bmp.h000066400000000000000000000101411441723000300156020ustar00rootroot00000000000000/* libwmf ("ipa/x/bmp.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_x_rop_draw (wmfAPI* API,wmfROP_Draw_t* rop_draw) { wmf_x_t* ddata = WMF_X_GetData (API); XPoint TL; XPoint BR; WMF_DEBUG (API,"wmf_[x_]rop_draw"); if (!TO_FILL (rop_draw)) return; setbrushstyle (API,rop_draw->dc); switch (rop_draw->ROP) /* Ternary raster operations */ { case SRCCOPY: /* dest = source */ break; case SRCPAINT: /* dest = source OR dest */ break; case SRCAND: /* dest = source AND dest */ break; case SRCINVERT: /* dest = source XOR dest */ break; case SRCERASE: /* dest = source AND (NOT dest) */ break; case NOTSRCCOPY: /* dest = (NOT source) */ break; case NOTSRCERASE: /* dest = (NOT src) AND (NOT dest) */ break; case MERGECOPY: /* dest = (source AND pattern) */ break; case MERGEPAINT: /* dest = (NOT source) OR dest */ break; case PATCOPY: /* dest = pattern */ break; case PATPAINT: /* dest = DPSnoo */ break; case PATINVERT: /* dest = pattern XOR dest */ break; case DSTINVERT: /* dest = (NOT dest) */ break; case BLACKNESS: /* dest = BLACK */ XSetForeground (ddata->display,ddata->gc,ddata->black); break; case WHITENESS: /* dest = WHITE */ XSetForeground (ddata->display,ddata->gc,ddata->white); break; default: break; } TL = x_translate (API,rop_draw->TL); BR = x_translate (API,rop_draw->BR); BR.x -= TL.x; BR.y -= TL.y; if (ddata->window != None) { XFillRectangle (ddata->display,ddata->window,ddata->gc,TL.x,TL.y,BR.x,BR.y); } if (ddata->pixmap != None) { XFillRectangle (ddata->display,ddata->pixmap,ddata->gc,TL.x,TL.y,BR.x,BR.y); } } static void wmf_x_bmp_draw (wmfAPI* API,wmfBMP_Draw_t* bmp_draw) { wmf_x_t* ddata = WMF_X_GetData (API); wmfRGB rgb; int opacity; float bmp_width; float bmp_height; float x; float y; unsigned int i; unsigned int j; unsigned int width; unsigned int height; XPoint pt; WMF_DEBUG (API,"wmf_[x_]bmp_draw"); setdefaultstyle (API); pt = x_translate (API,bmp_draw->pt); bmp_width = x_width (API,(float) ((double) bmp_draw->crop.w * bmp_draw->pixel_width )); bmp_height = x_height (API,(float) ((double) bmp_draw->crop.h * bmp_draw->pixel_height)); width = (unsigned int) ceil (1.0 + bmp_width ); /* The 1.0 is a bit of a fudge factor... */ height = (unsigned int) ceil (1.0 + bmp_height); /* Works with test11.wmf, anyway. [??] */ for (j = 0; j < height; j++) { y = (float) ((double) j * (double) (bmp_draw->crop.h - 1) / (double) (height - 1)); y += (float) bmp_draw->crop.y; for (i = 0; i < width; i++) { x = (float) ((double) i * (double) (bmp_draw->crop.w - 1) / (double) (width - 1)); x += (float) bmp_draw->crop.x; opacity = wmf_ipa_bmp_interpolate (API,&(bmp_draw->bmp),&rgb,x,y); if (opacity < 0) break; XSetForeground (ddata->display,ddata->gc,get_color (API,&rgb)); if (ddata->window != None) { XDrawPoint (ddata->display,ddata->window,ddata->gc,i+pt.x,(height-1-j)+pt.y); } if (ddata->pixmap != None) { XDrawPoint (ddata->display,ddata->pixmap,ddata->gc,i+pt.x,(height-1-j)+pt.y); } } } } static void wmf_x_bmp_read (wmfAPI* API,wmfBMP_Read_t* bmp_read) { WMF_DEBUG (API,"wmf_[x_]bmp_read"); wmf_ipa_bmp_read (API,bmp_read); } static void wmf_x_bmp_free (wmfAPI* API,wmfBMP* bmp) { WMF_DEBUG (API,"wmf_[x_]bmp_free"); wmf_ipa_bmp_free (API,bmp); } libwmf-0.2.13/src/ipa/x/color.h000066400000000000000000000120321441723000300161430ustar00rootroot00000000000000/* libwmf ("ipa/x/color.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void setup_color (wmfAPI* API) { wmf_x_t* ddata = WMF_X_GetData (API); XColor rgb; int r; int g; int b; unsigned long c; ddata->flags &= ~WMF_X_CMAP_DESTROY; /* Okay, trouble with X is all those visual classes, of which (thankfully) * PseudoColor and TrueColor are the most common; * Color allocation is always going to be tricky; here I set up a 6-bit * pseudo-TrueColor mapping for PseudoColor... */ if (ddata->class == PseudoColor) { ddata->colormap = DefaultColormap (ddata->display,DefaultScreen (ddata->display)); if (ddata->visual->map_entries >= 64) { ddata->color = wmf_malloc (API,64 * sizeof (unsigned long)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } if (XAllocColorCells (ddata->display,ddata->colormap,False,0,0,ddata->color,64) == 0) { ddata->colormap = XCopyColormapAndFree (ddata->display,ddata->colormap); ddata->flags |= WMF_X_CMAP_DESTROY; if (XAllocColorCells (ddata->display,ddata->colormap,False,0,0,ddata->color,64) == 0) { WMF_ERROR (API,"setup_color: something bizarre going on here."); wmf_free (API,ddata->color); ddata->color = 0; XFreeColormap (ddata->display,ddata->colormap); ddata->colormap = DefaultColormap (ddata->display,DefaultScreen (ddata->display)); ddata->flags &= ~WMF_X_CMAP_DESTROY; } } } if (ddata->color) { rgb.flags = DoRed | DoGreen | DoBlue; c = 0; for (b = 65535; b >= 0; b -= 21845) for (g = 65535; g >= 0; g -= 21845) for (r = 65535; r >= 0; r -= 21845) { rgb.pixel = ddata->color[c]; rgb.red = r; rgb.green = g; rgb.blue = b; XStoreColor (ddata->display,ddata->colormap,&rgb); c++; } ddata->black = ddata->color[0]; ddata->white = ddata->color[63]; ddata->mask.red = 48; ddata->mask.green = 12; ddata->mask.blue = 3; } else { WMF_DEBUG (API,"setup_color: too few colors; going B&W..."); ddata->black = BlackPixel (ddata->display,DefaultScreen (ddata->display)); ddata->white = WhitePixel (ddata->display,DefaultScreen (ddata->display)); ddata->mask.red = 0; ddata->mask.green = 0; ddata->mask.blue = 0; } } else if (ddata->class == TrueColor) { ddata->black = 0; ddata->white = ddata->visual->red_mask | ddata->visual->green_mask | ddata->visual->blue_mask; ddata->mask.red = ddata->visual->red_mask; ddata->mask.green = ddata->visual->green_mask; ddata->mask.blue = ddata->visual->blue_mask; } else { WMF_ERROR (API,"setup_color: this class of visual is not supported!"); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; return; } } static unsigned long get_color (wmfAPI* API,wmfRGB* rgb) { wmf_x_t* ddata = WMF_X_GetData (API); unsigned long pixel; unsigned long mask; unsigned long red; unsigned long green; unsigned long blue; int shift; int bits; if ((ddata->mask.red == 0) || (ddata->mask.green == 0) || (ddata->mask.blue == 0)) { if ((rgb->r > 0x7f) || (rgb->g > 0x7f) || (rgb->b > 0x7f)) { pixel = ddata->white; } else { pixel = ddata->black; } return (pixel); } /* lots of assumptions built into this next bit, so if your colors go * haywire then gosh. */ mask = ddata->mask.red; shift = 0; while ((mask & 1) == 0) { mask >>= 1; shift++; } bits = 0; while ((mask & 1) == 1) { mask >>= 1; bits++; } red = (long) rgb->r; while (bits > 8) { red <<= 1; bits--; } while (bits < 8) { red >>= 1; bits++; } red <<= shift; mask = ddata->mask.green; shift = 0; while ((mask & 1) == 0) { mask >>= 1; shift++; } bits = 0; while ((mask & 1) == 1) { mask >>= 1; bits++; } green = (long) rgb->g; while (bits > 8) { green <<= 1; bits--; } while (bits < 8) { green >>= 1; bits++; } green <<= shift; mask = ddata->mask.blue; shift = 0; while ((mask & 1) == 0) { mask >>= 1; shift++; } bits = 0; while ((mask & 1) == 1) { mask >>= 1; bits++; } blue = (long) rgb->b; while (bits > 8) { blue <<= 1; bits--; } while (bits < 8) { blue >>= 1; bits++; } blue <<= shift; pixel = red | green | blue; if (ddata->color) pixel = ddata->color[pixel]; /* map color */ return (pixel); } libwmf-0.2.13/src/ipa/x/device.h000066400000000000000000000174351441723000300163000ustar00rootroot00000000000000/* libwmf ("ipa/x/device.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This is called by wmf_play() the *first* time the meta file is played */ static void wmf_x_device_open (wmfAPI* API) { wmf_x_t* ddata = WMF_X_GetData (API); XWindowAttributes root_attributes; XTextProperty wText; XSizeHints sizehints; XSetWindowAttributes attributes; unsigned int border; unsigned long valuemask; static char* default_name = "libwmf (x)"; WMF_DEBUG (API,"wmf_[x_]device_open"); if ((!(ddata->x_width > 0)) || (!(ddata->x_height > 0))) { WMF_ERROR (API,"window/pixmap has unset or bad size."); API->err = wmf_E_Glitch; return; } if (ddata->flags & WMF_X_DISPLAY_OPEN) { ddata->flags &= ~WMF_X_DISPLAY_CLOSE; ddata->flags &= ~WMF_X_WINDOW_OPEN; ddata->flags &= ~WMF_X_WINDOW_CLOSE; ddata->flags &= ~WMF_X_PIXMAP_OPEN; ddata->flags &= ~WMF_X_PIXMAP_CLOSE; ddata->flags &= ~WMF_X_CMAP_DESTROY; ddata->display = XOpenDisplay (ddata->display_name); if (ddata->display == 0) { WMF_ERROR (API,"unable to open display!"); API->err = wmf_E_DeviceError; return; } ddata->flags |= WMF_X_DISPLAY_CLOSE; ddata->flags |= WMF_X_WINDOW_OPEN; ddata->flags |= WMF_X_PIXMAP_OPEN; } else /* display already open */ { if (ddata->display == 0) { WMF_ERROR (API,"display not open!"); API->err = wmf_E_DeviceError; return; } } ddata->root = RootWindow (ddata->display,DefaultScreen (ddata->display)); XGetWindowAttributes (ddata->display,ddata->root,&root_attributes); ddata->visual = root_attributes.visual; ddata->depth = root_attributes.depth; #if defined(__cplusplus) || defined(c_plusplus) ddata->class = ddata->visual->c_class; /* C++ class of screen (monochrome, etc.) */ #else ddata->class = ddata->visual->class; /* class of screen (monochrome, etc.) */ #endif setup_color (API); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } ddata->gc = XCreateGC (ddata->display,ddata->root,0,0); if (ddata->gc == 0) { WMF_ERROR (API,"unable to create gc!"); API->err = wmf_E_DeviceError; return; } XSetForeground (ddata->display,ddata->gc,ddata->white); if (ddata->flags & WMF_X_WINDOW_OPEN) { ddata->flags &= ~WMF_X_WINDOW_CLOSE; border = 0; /* Default border size. */ valuemask = 0; valuemask |= CWBackPixel; attributes.background_pixel = ddata->white; valuemask |= CWColormap; attributes.colormap = ddata->colormap; ddata->window = XCreateWindow (ddata->display,ddata->root,0,0, ddata->x_width,ddata->x_height,border,ddata->depth, InputOutput,ddata->visual,valuemask,&attributes); if (ddata->window == None) { WMF_ERROR (API,"unable to create window!"); API->err = wmf_E_DeviceError; return; } ddata->flags |= WMF_X_WINDOW_CLOSE; XFillRectangle (ddata->display,ddata->window,ddata->gc, 0,0,ddata->x_width,ddata->x_height); /* Window manager stuff */ if (ddata->window_name == 0) ddata->window_name = default_name; if (ddata->icon_name == 0) ddata->icon_name = default_name; XStringListToTextProperty (&(ddata->window_name),1,&wText); XSetWMName (ddata->display,ddata->window,&wText); XStringListToTextProperty (&(ddata->icon_name) ,1,&wText); XSetWMIconName (ddata->display,ddata->window,&wText); sizehints.flags = PSize; sizehints.width = (int) ddata->x_width; sizehints.height = (int) ddata->x_height; XSetWMNormalHints (ddata->display,ddata->window,&sizehints); XMapWindow (ddata->display,ddata->window); } if (ddata->flags & WMF_X_PIXMAP_OPEN) { ddata->flags &= ~WMF_X_PIXMAP_CLOSE; ddata->pixmap = XCreatePixmap (ddata->display,ddata->root, ddata->x_width,ddata->x_height,ddata->depth); if (ddata->pixmap == None) { WMF_ERROR (API,"unable to create pixmap!"); API->err = wmf_E_DeviceError; return; } ddata->flags |= WMF_X_PIXMAP_CLOSE; XFillRectangle (ddata->display,ddata->pixmap,ddata->gc, 0,0,ddata->x_width,ddata->x_height); if (ddata->window != None) { XSetWindowBackgroundPixmap (ddata->display,ddata->window,ddata->pixmap); XClearWindow (ddata->display,ddata->window); } } XFlush (ddata->display); } /* This is called by wmf_api_destroy() */ static void wmf_x_device_close (wmfAPI* API) { wmf_x_t* ddata = WMF_X_GetData (API); WMF_DEBUG (API,"wmf_[x_]device_close"); if (ddata->hatch != None) XFreePixmap (ddata->display,ddata->hatch); if (ddata->brush != None) XFreePixmap (ddata->display,ddata->brush); if (ddata->gc) XFreeGC (ddata->display,ddata->gc); if (ddata->flags & WMF_X_CMAP_DESTROY) XFreeColormap (ddata->display,ddata->colormap); if (ddata->flags & WMF_X_WINDOW_CLOSE) XDestroyWindow (ddata->display,ddata->window); if (ddata->flags & WMF_X_PIXMAP_CLOSE) XFreePixmap (ddata->display,ddata->pixmap); if (ddata->flags & WMF_X_DISPLAY_CLOSE) XCloseDisplay (ddata->display); } /* This is called from the beginning of each play for initial page setup */ static void wmf_x_device_begin (wmfAPI* API) { wmf_x_t* ddata = WMF_X_GetData (API); WMF_DEBUG (API,"wmf_[x_]device_begin"); setdefaultstyle (API); XSetClipMask (ddata->display,ddata->gc,None); XSetForeground (ddata->display,ddata->gc,ddata->white); if (ddata->window != None) XFillRectangle (ddata->display,ddata->window,ddata->gc, 0,0,ddata->x_width,ddata->x_height); if (ddata->pixmap != None) XFillRectangle (ddata->display,ddata->pixmap,ddata->gc, 0,0,ddata->x_width,ddata->x_height); XFlush (ddata->display); } /* This is called from the end of each play for page termination */ static void wmf_x_device_end (wmfAPI* API) { wmf_x_t* ddata = WMF_X_GetData (API); WMF_DEBUG (API,"wmf_[x_]device_end"); XFlush (ddata->display); } /* translation & scaling functions */ static XPoint x_translate (wmfAPI* API,wmfD_Coord d_pt) { return (x_translate_ft64 (API,d_pt,0)); } static XPoint x_translate_ft64 (wmfAPI* API,wmfD_Coord d_pt,FT_Vector* pen) { wmf_x_t* ddata = WMF_X_GetData (API); XPoint x_pt; double x; double y; x = ((double) d_pt.x - (double) ddata->bbox.TL.x); x /= ((double) ddata->bbox.BR.x - (double) ddata->bbox.TL.x); x *= (double) ddata->x_width; y = ((double) d_pt.y - (double) ddata->bbox.TL.y); y /= ((double) ddata->bbox.BR.y - (double) ddata->bbox.TL.y); y *= (double) ddata->x_height; x_pt.x = (short) floor (x); x_pt.y = (short) floor (y); if (pen) { pen->x = floor ((x - floor (x)) * 64); pen->y = floor ((y - floor (y)) * 64); } return (x_pt); } static float x_width (wmfAPI* API,float wmf_width) { wmf_x_t* ddata = WMF_X_GetData (API); double width; width = (double) wmf_width * (double) ddata->x_width; width /= ((double) ddata->bbox.BR.x - (double) ddata->bbox.TL.x); return ((float) width); } static float x_height (wmfAPI* API,float wmf_height) { wmf_x_t* ddata = WMF_X_GetData (API); double height; height = (double) wmf_height * (double) ddata->x_height; height /= ((double) ddata->bbox.BR.y - (double) ddata->bbox.TL.y); return ((float) height); } libwmf-0.2.13/src/ipa/x/draw.h000066400000000000000000000212301441723000300157620ustar00rootroot00000000000000/* libwmf ("ipa/x/draw.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_x_flood_interior (wmfAPI* API,wmfFlood_t* flood) { (void)flood; /* wmf_x_t* ddata = WMF_X_GetData (API); */ WMF_DEBUG (API,"wmf_[x_]flood_interior"); /* TODO */ } static void wmf_x_flood_exterior (wmfAPI* API,wmfFlood_t* flood) { (void)flood; /* wmf_x_t* ddata = WMF_X_GetData (API); */ WMF_DEBUG (API,"wmf_[x_]flood_exterior"); /* TODO */ } static void wmf_x_draw_pixel (wmfAPI* API,wmfDrawPixel_t* draw_pixel) { wmf_x_t* ddata = WMF_X_GetData (API); XPoint pt; WMF_DEBUG (API,"wmf_[x_]draw_pixel"); pt = x_translate (API,draw_pixel->pt); setdefaultstyle (API); XSetForeground (ddata->display,ddata->gc,get_color (API,&(draw_pixel->color))); if (ddata->window != None) { XDrawPoint (ddata->display,ddata->window,ddata->gc,pt.x,pt.y); } if (ddata->pixmap != None) { XDrawPoint (ddata->display,ddata->pixmap,ddata->gc,pt.x,pt.y); } } static void wmf_x_draw_pie (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_x_t* ddata = WMF_X_GetData (API); */ WMF_DEBUG (API,"wmf_[x_]draw_pie"); x_draw_arc (API,draw_arc,x_arc_pie); } static void wmf_x_draw_chord (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_x_t* ddata = WMF_X_GetData (API); */ WMF_DEBUG (API,"wmf_[x_]draw_chord"); x_draw_arc (API,draw_arc,x_arc_chord); } static void wmf_x_draw_arc (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_x_t* ddata = WMF_X_GetData (API); */ WMF_DEBUG (API,"wmf_[x_]draw_arc"); x_draw_arc (API,draw_arc,x_arc_open); } static void wmf_x_draw_ellipse (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_x_t* ddata = WMF_X_GetData (API); */ WMF_DEBUG (API,"wmf_[x_]draw_ellipse"); x_draw_arc (API,draw_arc,x_arc_ellipse); } static void x_draw_arc (wmfAPI* API,wmfDrawArc_t* draw_arc,x_arc_t finish) /* TODO !! */ { wmf_x_t* ddata = WMF_X_GetData (API); XPoint TL; XPoint BR; XPoint s_pt; XPoint e_pt; int Ox; int Oy; int w; int h; int start = 0; int end = 64 * 360; WMF_DEBUG (API,"~~~~~~~~x_draw_arc"); TL = x_translate (API,draw_arc->TL); BR = x_translate (API,draw_arc->BR); Ox = (BR.x + TL.x) / 2; /* origin of ellipse */ Oy = (BR.y + TL.y) / 2; w = (BR.x - TL.x); /* axes of ellipse */ h = (BR.y - TL.y); if (finish != x_arc_ellipse) { start = (int) (atan2 (draw_arc->end.y ,draw_arc->end.x ) * 64 * 180 / PI); end = (int) (atan2 (draw_arc->start.y,draw_arc->start.x) * 64 * 180 / PI); start = (64 * 360) - start; end = (64 * 360) - end; while (start < 0) { start += 64 * 360; end += 64 * 360; } while (end <= start) end += 64 * 360; end -= start; if (finish != x_arc_open) { s_pt = x_translate (API,draw_arc->start); s_pt.x += Ox; s_pt.y += Oy; e_pt = x_translate (API,draw_arc->end); e_pt.x += Ox; e_pt.y += Oy; } } if (TO_FILL (draw_arc) && (finish != x_arc_open)) { setbrushstyle (API,draw_arc->dc); if (finish == x_arc_ellipse) { XSetArcMode (ddata->display,ddata->gc,ArcChord); } else if (finish == x_arc_pie) { XSetArcMode (ddata->display,ddata->gc,ArcPieSlice); } else if (finish == x_arc_chord) { XSetArcMode (ddata->display,ddata->gc,ArcChord); } if (ddata->window != None) { XFillArc (ddata->display,ddata->window,ddata->gc,TL.x,TL.y,w,h,start,end); } if (ddata->pixmap != None) { XFillArc (ddata->display,ddata->pixmap,ddata->gc,TL.x,TL.y,w,h,start,end); } } if (TO_DRAW (draw_arc)) { setlinestyle (API,draw_arc->dc); if (ddata->window != None) { XDrawArc (ddata->display,ddata->window,ddata->gc,TL.x,TL.y,w,h,start,end); } if (ddata->pixmap != None) { XDrawArc (ddata->display,ddata->pixmap,ddata->gc,TL.x,TL.y,w,h,start,end); } if (finish == x_arc_ellipse) { /* Do nothing */ } else if (finish == x_arc_open) { /* Do nothing */ } else if (finish == x_arc_pie) { if (ddata->window != None) { XDrawLine (ddata->display,ddata->window,ddata->gc,e_pt.x,e_pt.y,Ox,Oy); XDrawLine (ddata->display,ddata->window,ddata->gc,Ox,Oy,s_pt.x,s_pt.y); } if (ddata->pixmap != None) { XDrawLine (ddata->display,ddata->pixmap,ddata->gc,e_pt.x,e_pt.y,Ox,Oy); XDrawLine (ddata->display,ddata->pixmap,ddata->gc,Ox,Oy,s_pt.x,s_pt.y); } } else if (finish == x_arc_chord) { if (ddata->window != None) { XDrawLine (ddata->display,ddata->window,ddata->gc,e_pt.x,e_pt.y,s_pt.x,s_pt.y); } if (ddata->pixmap != None) { XDrawLine (ddata->display,ddata->pixmap,ddata->gc,e_pt.x,e_pt.y,s_pt.x,s_pt.y); } } } } static void wmf_x_draw_line (wmfAPI* API,wmfDrawLine_t* draw_line) { wmf_x_t* ddata = WMF_X_GetData (API); XPoint from; XPoint to; WMF_DEBUG (API,"wmf_[x_]draw_line"); if (TO_DRAW (draw_line)) { setlinestyle (API,draw_line->dc); from = x_translate (API,draw_line->from); to = x_translate (API,draw_line->to ); if (ddata->window != None) { XDrawLine (ddata->display,ddata->window,ddata->gc,from.x,from.y,to.x,to.y); } if (ddata->pixmap != None) { XDrawLine (ddata->display,ddata->pixmap,ddata->gc,from.x,from.y,to.x,to.y); } } } static void wmf_x_poly_line (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_x_t* ddata = WMF_X_GetData (API); XPoint* pt; U16 i; WMF_DEBUG (API,"wmf_[x_]poly_line"); if (poly_line->count < 2) return; pt = (XPoint*) wmf_malloc (API,poly_line->count * sizeof (XPoint)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } for (i = 0; i < poly_line->count; i++) { pt[i] = x_translate (API,poly_line->pt[i]); } if (TO_DRAW (poly_line)) { setlinestyle (API,poly_line->dc); if (ddata->window != None) { XDrawLines (ddata->display,ddata->window,ddata->gc, pt,poly_line->count,CoordModeOrigin); } if (ddata->pixmap != None) { XDrawLines (ddata->display,ddata->pixmap,ddata->gc, pt,poly_line->count,CoordModeOrigin); } } wmf_free (API,pt); } static void wmf_x_draw_polygon (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_x_t* ddata = WMF_X_GetData (API); XPoint* pt; U16 i; WMF_DEBUG (API,"wmf_[x_]draw_polygon"); if (poly_line->count < 2) return; pt = (XPoint*) wmf_malloc (API,(poly_line->count + 1) * sizeof (XPoint)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } for (i = 0; i < poly_line->count; i++) { pt[i] = x_translate (API,poly_line->pt[i]); } pt[poly_line->count] = pt[0]; if (TO_FILL (poly_line)) { setbrushstyle (API,poly_line->dc); if (ddata->window != None) { XFillPolygon (ddata->display,ddata->window,ddata->gc, pt,poly_line->count+1,Complex,CoordModeOrigin); } if (ddata->pixmap != None) { XFillPolygon (ddata->display,ddata->pixmap,ddata->gc, pt,poly_line->count+1,Complex,CoordModeOrigin); } } if (TO_DRAW (poly_line)) { setlinestyle (API,poly_line->dc); if (ddata->window != None) { XDrawLines (ddata->display,ddata->window,ddata->gc, pt,poly_line->count+1,CoordModeOrigin); } if (ddata->pixmap != None) { XDrawLines (ddata->display,ddata->pixmap,ddata->gc, pt,poly_line->count+1,CoordModeOrigin); } } wmf_free (API,pt); } static void wmf_x_draw_rectangle (wmfAPI* API,wmfDrawRectangle_t* draw_rectangle) { wmf_x_t* ddata = WMF_X_GetData (API); XPoint TL; XPoint BR; WMF_DEBUG (API,"wmf_[x_]draw_rectangle"); TL = x_translate (API,draw_rectangle->TL); BR = x_translate (API,draw_rectangle->BR); BR.x -= TL.x; BR.y -= TL.y; if (TO_FILL (draw_rectangle)) { setbrushstyle (API,draw_rectangle->dc); if (ddata->window != None) { XFillRectangle (ddata->display,ddata->window,ddata->gc,TL.x,TL.y,BR.x,BR.y); } if (ddata->pixmap != None) { XFillRectangle (ddata->display,ddata->pixmap,ddata->gc,TL.x,TL.y,BR.x,BR.y); } } if (TO_DRAW (draw_rectangle)) { setlinestyle (API,draw_rectangle->dc); if (ddata->window != None) { XDrawRectangle (ddata->display,ddata->window,ddata->gc,TL.x,TL.y,BR.x,BR.y); } if (ddata->pixmap != None) { XDrawRectangle (ddata->display,ddata->pixmap,ddata->gc,TL.x,TL.y,BR.x,BR.y); } } } libwmf-0.2.13/src/ipa/x/font.h000066400000000000000000000121101441723000300157700ustar00rootroot00000000000000/* libwmf ("ipa/x/font.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_x_draw_text (wmfAPI* API,wmfDrawText_t* draw_text) { wmf_x_t* ddata = WMF_X_GetData (API); wmfFont* font = 0; wmfRGB* bg = 0; wmfD_Coord TL; wmfD_Coord BR; wmfD_Coord TR; wmfD_Coord BL; XPoint pt; XPoint pts[5]; float font_height; float font_ratio; double theta; double phi; FT_Face face; FT_F26Dot6 width; FT_F26Dot6 height; FT_Matrix matrix; FT_Vector pen; WMF_DEBUG (API,"wmf_[x_]draw_text"); setdefaultstyle (API); if (WMF_DC_OPAQUE (draw_text->dc)) { if ((draw_text->BR.x > draw_text->TL.x) && (draw_text->BR.y > draw_text->TL.y)) { TL = draw_text->TL; BR = draw_text->BR; TR.x = draw_text->BR.x; TR.y = draw_text->TL.y; BL.x = draw_text->TL.x; BL.y = draw_text->BR.y; } else { TL = draw_text->bbox.TL; BR = draw_text->bbox.BR; TR = draw_text->bbox.TR; BL = draw_text->bbox.BL; } bg = WMF_DC_BACKGROUND (draw_text->dc); XSetForeground (ddata->display,ddata->gc,get_color (API,bg)); pts[0] = x_translate (API,TL); pts[1] = x_translate (API,TR); pts[2] = x_translate (API,BR); pts[3] = x_translate (API,BL); pts[4] = pts[0]; if (ddata->window != None) { XFillPolygon (ddata->display,ddata->window,ddata->gc,pts,4,Convex,CoordModeOrigin); } if (ddata->pixmap != None) { XFillPolygon (ddata->display,ddata->pixmap,ddata->gc,pts,4,Convex,CoordModeOrigin); } } else { bg = &wmf_white; } if (strlen (draw_text->str) > 1) { wmf_ipa_draw_text (API,draw_text,wmf_x_draw_text); return; } font = WMF_DC_FONT (draw_text->dc); face = WMF_FONT_FTFACE (font); font_height = x_height (API,(float) draw_text->font_height); font_ratio = x_width (API,(float) (draw_text->font_height * draw_text->font_ratio)); font_ratio /= font_height; width = (FT_F26Dot6) (64 * font_height * font_ratio); height = (FT_F26Dot6) (64 * font_height); FT_Set_Char_Size (face,width,height,0,0); theta = - WMF_TEXT_ANGLE (font); phi = atan2 (sin (theta),font_ratio * cos (theta)); pt = x_translate_ft64 (API,draw_text->pt,&pen); matrix.xx = (FT_Fixed) ( cos (phi) * 0x10000L); matrix.xy = (FT_Fixed) ( sin (phi) * 0x10000L); matrix.yx = (FT_Fixed) (- sin (phi) * 0x10000L); matrix.yy = (FT_Fixed) ( cos (phi) * 0x10000L); FT_Set_Transform (face,&matrix,&pen); FT_Load_Char (face,draw_text->str[0],FT_LOAD_RENDER); pt.x += face->glyph->bitmap_left; pt.y -= face->glyph->bitmap_top; x_draw_ftbitmap (API,&(face->glyph->bitmap),pt,WMF_DC_TEXTCOLOR (draw_text->dc),bg); } static void x_draw_ftbitmap (wmfAPI* API,FT_Bitmap* bitmap,XPoint pt,wmfRGB* fg,wmfRGB* bg) { wmf_x_t* ddata = WMF_X_GetData (API); wmfRGB rgb; float red; float green; float blue; float grey; /* 1 = black(fg); 0 = white(bg) */ unsigned char* buffer; unsigned long fg_pixel; unsigned int row; unsigned int rows; unsigned int col; unsigned int cols; int x; int y; rows = bitmap->rows; cols = bitmap->width; fg_pixel = get_color (API,fg); if (bitmap->pixel_mode == ft_pixel_mode_mono) { XSetForeground (ddata->display,ddata->gc,fg_pixel); } for (row = 0; row < rows; row++) { buffer = bitmap->buffer + row * bitmap->pitch; y = pt.y + row; for (col = 0; col < cols; col++) { if (bitmap->pixel_mode == ft_pixel_mode_grays) { grey = (float) buffer[col] / (float) (bitmap->num_grays - 1); } else if (bitmap->pixel_mode == ft_pixel_mode_mono) { grey = ((buffer[col>>3] << (col & 7)) & 128) ? 1 : 0; } else /* Unsupported ft_pixel_mode */ { grey = 0; } if (grey > 0) /* if not background */ { x = pt.x + col; if ((grey >= 1) && (bitmap->pixel_mode != ft_pixel_mode_mono)) { XSetForeground (ddata->display,ddata->gc,fg_pixel); } else /* find anti-aliased color */ { red = grey * (float) fg->r + (1 - grey) * (float) bg->r; green = grey * (float) fg->g + (1 - grey) * (float) bg->g; blue = grey * (float) fg->b + (1 - grey) * (float) bg->b; rgb = wmf_rgb_color (API,red/255,green/255,blue/255); XSetForeground (ddata->display,ddata->gc,get_color (API,&rgb)); } if (ddata->window != None) { XDrawPoint (ddata->display,ddata->window,ddata->gc,x,y); } if (ddata->pixmap != None) { XDrawPoint (ddata->display,ddata->pixmap,ddata->gc,x,y); } } } } } libwmf-0.2.13/src/ipa/x/region.h000066400000000000000000000101431441723000300163110ustar00rootroot00000000000000/* libwmf ("ipa/x/region.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_x_region_frame (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_x_t* ddata = WMF_X_GetData (API); wmfPen* pen = 0; XPoint TL; XPoint BR; unsigned int i; int width; int height; WMF_DEBUG (API,"wmf_[x_]region_frame"); if (poly_rect->count == 0) return; setdefaultstyle (API); pen = WMF_DC_PEN (poly_rect->dc); XSetForeground (ddata->display,ddata->gc,get_color (API,WMF_PEN_COLOR (pen))); width = x_width (API,poly_rect->width ); height = x_height (API,poly_rect->height); if (width < 1) width = 1; if (height < 1) height = 1; for (i = 0; i < poly_rect->count; i++) { TL = x_translate (API,poly_rect->TL[i]); BR = x_translate (API,poly_rect->BR[i]); if (ddata->window != None) { XFillRectangle (ddata->display,ddata->window,ddata->gc, TL.x-width,TL.y-height,TL.x-(TL.x-width),BR.y-(TL.y-height)); XFillRectangle (ddata->display,ddata->window,ddata->gc, TL.x-width,BR.y,BR.x-(TL.x-width),BR.y+height-(BR.y)); XFillRectangle (ddata->display,ddata->window,ddata->gc, TL.x,TL.y-height,BR.x+width-(TL.x),TL.y-(TL.y-height)); XFillRectangle (ddata->display,ddata->window,ddata->gc, BR.x,TL.y,BR.x+width-(BR.x),BR.y+height-(TL.y)); } if (ddata->pixmap != None) { XFillRectangle (ddata->display,ddata->pixmap,ddata->gc, TL.x-width,TL.y-height,TL.x-(TL.x-width),BR.y-(TL.y-height)); XFillRectangle (ddata->display,ddata->pixmap,ddata->gc, TL.x-width,BR.y,BR.x-(TL.x-width),BR.y+height-(BR.y)); XFillRectangle (ddata->display,ddata->pixmap,ddata->gc, TL.x,TL.y-height,BR.x+width-(TL.x),TL.y-(TL.y-height)); XFillRectangle (ddata->display,ddata->pixmap,ddata->gc, BR.x,TL.y,BR.x+width-(BR.x),BR.y+height-(TL.y)); } } } static void wmf_x_region_paint (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_x_t* ddata = WMF_X_GetData (API); XPoint TL; XPoint BR; unsigned int i; WMF_DEBUG (API,"wmf_[x_]region_paint"); if (poly_rect->count == 0) return; if (TO_FILL (poly_rect)) { setbrushstyle (API,poly_rect->dc); for (i = 0; i < poly_rect->count; i++) { TL = x_translate (API,poly_rect->TL[i]); BR = x_translate (API,poly_rect->BR[i]); BR.x -= TL.x; BR.y -= TL.y; if (ddata->window != None) { XFillRectangle (ddata->display,ddata->window,ddata->gc,TL.x,TL.y,BR.x,BR.y); } if (ddata->pixmap != None) { XFillRectangle (ddata->display,ddata->pixmap,ddata->gc,TL.x,TL.y,BR.x,BR.y); } } } } static void wmf_x_region_clip (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_x_t* ddata = WMF_X_GetData (API); XPoint TL; XPoint BR; XRectangle* rect; unsigned int i; WMF_DEBUG (API,"wmf_[x_]region_clip"); XSetClipMask (ddata->display,ddata->gc,None); if (poly_rect->count == 0) return; rect = (XRectangle*) wmf_malloc (API,poly_rect->count * sizeof (XRectangle)); for (i = 0; i < poly_rect->count; i++) { TL = x_translate (API,poly_rect->TL[i]); BR = x_translate (API,poly_rect->BR[i]); rect[i].x = TL.x; rect[i].y = TL.y; rect[i].width = BR.x - TL.x; rect[i].height = BR.y - TL.y; } XSetClipRectangles (ddata->display,ddata->gc,0,0,rect,poly_rect->count,Unsorted); wmf_free (API,rect); } libwmf-0.2.13/src/ipa/xgd.c000066400000000000000000000312041441723000300153350ustar00rootroot00000000000000/* libwmf (ipa/gd.c): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ #include #include "wmfdefs.h" #ifdef HAVE_GD #include "libwmf/gd.h" static void wmf_gd_device_open (wmfAPI*); static void wmf_gd_device_close (wmfAPI*); static void wmf_gd_device_begin (wmfAPI*); static void wmf_gd_device_end (wmfAPI*); static void wmf_gd_flood_interior (wmfAPI*,wmfFlood_t*); static void wmf_gd_flood_exterior (wmfAPI*,wmfFlood_t*); static void wmf_gd_draw_pixel (wmfAPI*,wmfDrawPixel_t*); static void wmf_gd_draw_pie (wmfAPI*,wmfDrawArc_t*); static void wmf_gd_draw_chord (wmfAPI*,wmfDrawArc_t*); static void wmf_gd_draw_arc (wmfAPI*,wmfDrawArc_t*); static void wmf_gd_draw_ellipse (wmfAPI*,wmfDrawArc_t*); static void wmf_gd_draw_line (wmfAPI*,wmfDrawLine_t*); static void wmf_gd_poly_line (wmfAPI*,wmfPolyLine_t*); static void wmf_gd_draw_polygon (wmfAPI*,wmfPolyLine_t*); static void wmf_gd_draw_rectangle (wmfAPI*,wmfDrawRectangle_t*); static void wmf_gd_rop_draw (wmfAPI*,wmfROP_Draw_t*); static void wmf_gd_bmp_draw (wmfAPI*,wmfBMP_Draw_t*); static void wmf_gd_bmp_read (wmfAPI*,wmfBMP_Read_t*); static void wmf_gd_bmp_free (wmfAPI*,wmfBMP*); static void wmf_gd_draw_text (wmfAPI*,wmfDrawText_t*); static void wmf_gd_udata_init (wmfAPI*,wmfUserData_t*); static void wmf_gd_udata_copy (wmfAPI*,wmfUserData_t*); static void wmf_gd_udata_set (wmfAPI*,wmfUserData_t*); static void wmf_gd_udata_free (wmfAPI*,wmfUserData_t*); static void wmf_gd_region_frame (wmfAPI*,wmfPolyRectangle_t*); static void wmf_gd_region_paint (wmfAPI*,wmfPolyRectangle_t*); static void wmf_gd_region_clip (wmfAPI*,wmfPolyRectangle_t*); #include "ipa/xgd.h" #include "ipa/xgd/bmp.h" #include "ipa/xgd/device.h" #include "ipa/xgd/draw.h" #include "ipa/xgd/font.h" #include "ipa/xgd/region.h" #endif /* HAVE_GD */ void wmf_gd_function (wmfAPI* API) { #ifdef HAVE_GD wmf_gd_t* ddata = 0; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; gd_t* gd = 0; if ((API->flags & API_STANDARD_INTERFACE) == 0) { WMF_ERROR (API,"Can't use this device layer with 'lite' interface!"); API->err = wmf_E_DeviceError; return; } /* IPA function reference links */ FR->device_open = wmf_gd_device_open; FR->device_close = wmf_gd_device_close; FR->device_begin = wmf_gd_device_begin; FR->device_end = wmf_gd_device_end; FR->flood_interior = wmf_gd_flood_interior; FR->flood_exterior = wmf_gd_flood_exterior; FR->draw_pixel = wmf_gd_draw_pixel; FR->draw_pie = wmf_gd_draw_pie; FR->draw_chord = wmf_gd_draw_chord; FR->draw_arc = wmf_gd_draw_arc; FR->draw_ellipse = wmf_gd_draw_ellipse; FR->draw_line = wmf_gd_draw_line; FR->poly_line = wmf_gd_poly_line; FR->draw_polygon = wmf_gd_draw_polygon; FR->draw_rectangle = wmf_gd_draw_rectangle; FR->rop_draw = wmf_gd_rop_draw; FR->bmp_draw = wmf_gd_bmp_draw; FR->bmp_read = wmf_gd_bmp_read; FR->bmp_free = wmf_gd_bmp_free; FR->draw_text = wmf_gd_draw_text; FR->udata_init = wmf_gd_udata_init; FR->udata_copy = wmf_gd_udata_copy; FR->udata_set = wmf_gd_udata_set; FR->udata_free = wmf_gd_udata_free; FR->region_frame = wmf_gd_region_frame; FR->region_paint = wmf_gd_region_paint; FR->region_clip = wmf_gd_region_clip; /* Allocate device data structure */ ddata = (wmf_gd_t*) wmf_malloc (API,sizeof (wmf_gd_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } API->device_data = (void*) ddata; /* Device data defaults */ ddata->type = wmf_gd_png; ddata->gd_data = (void*) wmf_malloc (API,sizeof (gd_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } gd = (gd_t*) ddata->gd_data; gd->image = 0; ddata->file = 0; ddata->memory = 0; ddata->sink.context = 0; ddata->sink.function = 0; ddata->gd_image = 0; ddata->width = 0; ddata->height = 0; ddata->bbox.TL.x = 0; ddata->bbox.TL.y = 0; ddata->bbox.BR.x = 0; ddata->bbox.BR.y = 0; ddata->flags = 0; #ifdef HAVE_LIBPNG ddata->flags |= WMF_GD_SUPPORTS_PNG; #endif #ifdef HAVE_LIBJPEG ddata->flags |= WMF_GD_SUPPORTS_JPEG; #endif #else /* HAVE_GD */ API->device_data = 0; API->err = wmf_E_DeviceError; #endif /* HAVE_GD */ } #ifdef HAVE_GD static void wmf_gd_udata_init (wmfAPI* API,wmfUserData_t* userdata) { (void)userdata; /* wmf_gd_t* ddata = WMF_GD_GetData (API); */ /* gd_t* gd = (gd_t*) ddata->gd_data; */ WMF_DEBUG (API,"wmf_[gd_]udata_init"); } static void wmf_gd_udata_copy (wmfAPI* API,wmfUserData_t* userdata) { (void)userdata; /* wmf_gd_t* ddata = WMF_GD_GetData (API); */ /* gd_t* gd = (gd_t*) ddata->gd_data; */ WMF_DEBUG (API,"wmf_[gd_]udata_copy"); } static void wmf_gd_udata_set (wmfAPI* API,wmfUserData_t* userdata) { (void)userdata; /* wmf_gd_t* ddata = WMF_GD_GetData (API); */ /* gd_t* gd = (gd_t*) ddata->gd_data; */ WMF_DEBUG (API,"wmf_[gd_]udata_set"); } static void wmf_gd_udata_free (wmfAPI* API,wmfUserData_t* userdata) { (void)userdata; /* wmf_gd_t* ddata = WMF_GD_GetData (API); */ /* gd_t* gd = (gd_t*) ddata->gd_data; */ WMF_DEBUG (API,"wmf_[gd_]udata_free"); } static int setbrushstyle (wmfAPI* API,wmfDC* dc) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; wmfBrush* brush = 0; wmfBMP* bmp = 0; wmfRGB* rgb = 0; wmfRGB pixel; int i; int j; int fg; int bg; int brushstyle; unsigned int x; unsigned int y; unsigned char* bits = 0; brush = WMF_DC_BRUSH (dc); rgb = WMF_BRUSH_COLOR (brush); brushstyle = gdImageColorResolve (gd->image,rgb->r,rgb->g,rgb->b); switch (WMF_BRUSH_STYLE (brush)) { case BS_NULL: WMF_ERROR (API,"Attempt to set null fill-style!"); API->err = wmf_E_Glitch; break; case BS_HATCHED: switch (WMF_BRUSH_HATCH (brush)) { case HS_HORIZONTAL: bits = HS_HORIZONTAL_bits; break; case HS_VERTICAL: bits = HS_VERTICAL_bits; break; case HS_FDIAGONAL: bits = HS_FDIAGONAL_bits; break; case HS_BDIAGONAL: bits = HS_BDIAGONAL_bits; break; case HS_CROSS: bits = HS_CROSS_bits; break; case HS_DIAGCROSS: bits = HS_DIAGCROSS_bits; break; default: if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Unsupported brush/hatch style!"); bits = HS_DIAGCROSS_bits; } else { WMF_ERROR (API,"Unsupported brush/hatch style!"); API->err = wmf_E_Glitch; bits = 0; } break; } if (bits == 0) break; if (gd->brush.hatch == 0) gd->brush.hatch = gdImageCreateTrueColor (8,8); if (gd->brush.hatch) { rgb = WMF_DC_BACKGROUND (dc); bg = gdImageColorResolve (gd->brush.hatch,rgb->r,rgb->g,rgb->b); if (!WMF_DC_OPAQUE (dc)) { gdImageColorTransparent (gd->brush.hatch,bg); } rgb = WMF_BRUSH_COLOR (brush); fg = gdImageColorResolve (gd->brush.hatch,rgb->r,rgb->g,rgb->b); for (j = 0; j < 8; j++) { for (i = 0; i < 8; i++) { if (bits[j] & (1<<(7-i))) { gdImageSetPixel (gd->brush.hatch,i,j,fg); } else { gdImageSetPixel (gd->brush.hatch,i,j,bg); } } } gdImageSetTile (gd->image,gd->brush.hatch); brushstyle = gdTiled; } break; case BS_DIBPATTERN: bmp = WMF_BRUSH_BITMAP (brush); if (bmp->data == 0) { if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Attempt to fill with non-existent pattern!"); break; } else { WMF_ERROR (API,"Attempt to fill with non-existent pattern!"); API->err = wmf_E_Glitch; break; } } if (gd->brush.image) { if ((gd->brush.width != (int) bmp->width ) || (gd->brush.height != (int) bmp->height)) { gdImageDestroy (gd->brush.image); gd->brush.image = 0; } } if (gd->brush.image == 0) { gd->brush.width = (int) bmp->width; gd->brush.height = (int) bmp->height; gd->brush.image = gdImageCreateTrueColor (gd->brush.width,gd->brush.height); } if (gd->brush.image) { for (y = 0; y < (unsigned int) gd->brush.height; y++) { for (x = 0; x < (unsigned int) gd->brush.width; x++) { wmf_ipa_bmp_color (API,bmp,&pixel,x,y); fg = gdImageColorResolve (gd->brush.image,pixel.r,pixel.g,pixel.b); gdImageSetPixel (gd->brush.image,(int) x,(int) y,fg); } } gdImageSetTile (gd->image,gd->brush.image); brushstyle = gdTiled; } break; default: if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Unsupported brush style!"); /* no break here */ } else { WMF_ERROR (API,"Unsupported brush style!"); API->err = wmf_E_Glitch; break; } case BS_SOLID: break; } return (brushstyle); } static int setlinestyle (wmfAPI* API,wmfDC* dc) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; wmfPen* pen = 0; wmfRGB* rgb = 0; int pen_width; int pen_height; int fg; int bg; int linestyle; int i; int style[14]; pen = WMF_DC_PEN (dc); /* Color */ rgb = WMF_PEN_COLOR (pen); fg = gdImageColorResolve (gd->image,rgb->r,rgb->g,rgb->b); rgb = WMF_DC_BACKGROUND (dc); bg = gdImageColorResolve (gd->image,rgb->r,rgb->g,rgb->b); linestyle = fg; /* Size */ pen_width = (int) ceil ((double) gd_width (API,WMF_PEN_WIDTH (pen))); pen_height = (int) ceil ((double) gd_height (API,WMF_PEN_HEIGHT (pen))); if (pen_width < 1) pen_width = 1; if (pen_height < 1) pen_height = 1; if ((pen_width == 1) && (pen_height == 1)) { /* Ordinary line */ } else { if (gd->pen.image == 0) { /* Need to create a brush */ gd->pen.image = gdImageCreateTrueColor (pen_width,pen_height); } else if ((pen_width == gd->pen.width) && (pen_height == gd->pen.height)) { /* Already have brush of correct size */ } else { /* Need to free current brush & create new one */ gdImageDestroy (gd->pen.image); gd->pen.image = gdImageCreateTrueColor (pen_width,pen_height); } if (gd->pen.image) { gd->pen.width = pen_width; gd->pen.height = pen_height; rgb = WMF_PEN_COLOR (pen); fg = gdImageColorResolve (gd->pen.image,rgb->r,rgb->g,rgb->b); rgb = WMF_DC_BACKGROUND (dc); bg = gdImageColorResolve (gd->image,rgb->r,rgb->g,rgb->b); if (bg != fg) gdImageColorTransparent (gd->pen.image,bg); gdImageFilledRectangle (gd->pen.image,0,0,gd->pen.width,gd->pen.height,bg); /* `Square' nib */ gdImageFilledRectangle (gd->pen.image,0,0,gd->pen.width,gd->pen.height,fg); gdImageSetBrush (gd->image,gd->pen.image); linestyle = gdBrushed; } } switch (WMF_PEN_STYLE (pen)) { case PS_DASH: for (i = 0; i < 5; i++) style[i] = fg; for (i = 5; i < 8; i++) style[i] = bg; gdImageSetStyle (gd->image,style, 8); if (linestyle == gdBrushed) { linestyle = gdStyledBrushed; } else { linestyle = gdStyled; } break; case PS_DOT: for (i = 0; i < 2; i++) style[i] = fg; for (i = 2; i < 4; i++) style[i] = bg; gdImageSetStyle (gd->image,style, 4); if (linestyle == gdBrushed) { linestyle = gdStyledBrushed; } else { linestyle = gdStyled; } break; case PS_DASHDOT: for (i = 0; i < 4; i++) style[i] = fg; for (i = 4; i < 7; i++) style[i] = bg; for (i = 7; i < 9; i++) style[i] = fg; for (i = 9; i < 12; i++) style[i] = bg; gdImageSetStyle (gd->image,style,12); if (linestyle == gdBrushed) { linestyle = gdStyledBrushed; } else { linestyle = gdStyled; } break; case PS_DASHDOTDOT: for (i = 0; i < 4; i++) style[i] = fg; for (i = 4; i < 6; i++) style[i] = bg; for (i = 6; i < 8; i++) style[i] = fg; for (i = 8; i < 10; i++) style[i] = bg; for (i = 10; i < 12; i++) style[i] = fg; for (i = 12; i < 14; i++) style[i] = bg; gdImageSetStyle (gd->image,style,14); if (linestyle == gdBrushed) { linestyle = gdStyledBrushed; } else { linestyle = gdStyled; } break; case PS_INSIDEFRAME: /* There is nothing to do in this case... */ case PS_SOLID: default: break; } return (linestyle); } #endif /* HAVE_GD */ int * wmf_gd_image_pixels (void * gd_image) { int * pixels = 0; #ifdef HAVE_GD gdImagePtr img = (gdImagePtr) gd_image; if (img) pixels = img->_tpixels; #endif /* HAVE_GD */ return (pixels); } libwmf-0.2.13/src/ipa/xgd.h000066400000000000000000000054631441723000300153520ustar00rootroot00000000000000/* libwmf ("ipa/gd.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFIPA_GD_H #define WMFIPA_GD_H /* I suppose I shouldn't call this file gd.h, but as long is included * before any other "gd*.h" there's no problem... */ #include extern int gdImageBoundsSafe (gdImage*,int,int); extern void gdClipSetFree (gdImage*); extern void gdClipSetReset (gdImage*); extern void gdClipSetAdd (gdImage*,gdClipRectangle*); typedef enum { gd_arc_ellipse = 0, gd_arc_open, gd_arc_pie, gd_arc_chord } gd_arc_t; typedef struct _gd_t gd_t; /* extern char* gdft_draw_bitmap (gdImagePtr,int,FT_Bitmap,int,int); */ static void gd_draw_arc (wmfAPI*,wmfDrawArc_t*,gd_arc_t); static int gd_sink (void*,const char*,int); static gdPoint gd_translate (wmfAPI*,wmfD_Coord); static gdPoint gd_translate_ft64 (wmfAPI*,wmfD_Coord,FT_Vector*); static float gd_width (wmfAPI*,float); static float gd_height (wmfAPI*,float); static int setbrushstyle (wmfAPI*,wmfDC*); static int setlinestyle (wmfAPI*,wmfDC*); struct _gd_t { gdImagePtr image; int white; /* Pen data */ struct { gdImagePtr image; int width; int height; } pen; struct { gdImagePtr hatch; /* 8x8 only */ gdImagePtr image; int width; int height; } brush; /* Sink data */ long max_length; long length; char* buffer; char* ptr; }; static unsigned char HS_BDIAGONAL_bits[] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; static unsigned char HS_CROSS_bits[] = { 0x08, 0x08, 0x08, 0xff, 0x08, 0x08, 0x08, 0x08}; static unsigned char HS_DIAGCROSS_bits[] = { 0x81, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x81}; static unsigned char HS_FDIAGONAL_bits[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; static unsigned char HS_HORIZONTAL_bits[] = { 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00}; static unsigned char HS_VERTICAL_bits[] = { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08}; /* font.h */ static void gd_draw_ftbitmap (wmfAPI*,FT_Bitmap*,gdPoint,wmfRGB*,wmfRGB*); #endif /* ! WMFIPA_GD_H */ libwmf-0.2.13/src/ipa/xgd/000077500000000000000000000000001441723000300151715ustar00rootroot00000000000000libwmf-0.2.13/src/ipa/xgd/bmp.h000066400000000000000000000125161441723000300161250ustar00rootroot00000000000000/* libwmf ("ipa/xgd/bmp.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_gd_rop_draw (wmfAPI* API,wmfROP_Draw_t* rop_draw) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; gdPoint TL; gdPoint BR; int brushstyle; WMF_DEBUG (API,"wmf_[gd_]rop_draw"); if (!TO_FILL (rop_draw)) return; brushstyle = setbrushstyle (API,rop_draw->dc); switch (rop_draw->ROP) /* Ternary raster operations */ { case SRCCOPY: /* dest = source */ break; case SRCPAINT: /* dest = source OR dest */ break; case SRCAND: /* dest = source AND dest */ break; case SRCINVERT: /* dest = source XOR dest */ break; case SRCERASE: /* dest = source AND (NOT dest) */ break; case NOTSRCCOPY: /* dest = (NOT source) */ break; case NOTSRCERASE: /* dest = (NOT src) AND (NOT dest) */ break; case MERGECOPY: /* dest = (source AND pattern) */ break; case MERGEPAINT: /* dest = (NOT source) OR dest */ break; case PATCOPY: /* dest = pattern */ break; case PATPAINT: /* dest = DPSnoo */ break; case PATINVERT: /* dest = pattern XOR dest */ break; case DSTINVERT: /* dest = (NOT dest) */ break; case BLACKNESS: /* dest = BLACK */ brushstyle = gdImageColorResolve (gd->image,0,0,0); break; case WHITENESS: /* dest = WHITE */ brushstyle = gdImageColorResolve (gd->image,255,255,255); break; default: break; } TL = gd_translate (API,rop_draw->TL); BR = gd_translate (API,rop_draw->BR); gdImageFilledRectangle (gd->image,TL.x,TL.y,BR.x,BR.y,brushstyle); } static void wmf_gd_bmp_draw (wmfAPI* API,wmfBMP_Draw_t* bmp_draw) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; wmfRGB bg; wmfRGB rgb; int opacity; float bmp_width; float bmp_height; float x; float y; unsigned int i; unsigned int j; unsigned int width; unsigned int height; int alpha; int color; unsigned long tfg; unsigned long tbg; gdPoint pt; WMF_DEBUG (API,"wmf_[gd_]bmp_draw"); pt = gd_translate (API,bmp_draw->pt); bmp_width = gd_width (API,(float) ((double) bmp_draw->crop.w * bmp_draw->pixel_width )); bmp_height = gd_height (API,(float) ((double) bmp_draw->crop.h * bmp_draw->pixel_height)); width = (unsigned int) ceil (1.0 + bmp_width ); /* The 1.0 is a bit of a fudge factor... */ height = (unsigned int) ceil (1.0 + bmp_height); /* Works with test11.wmf, anyway. [??] */ for (j = 0; j < height; j++) { y = (float) ((double) j * (double) (bmp_draw->crop.h - 1) / (double) (height - 1)); y += (float) bmp_draw->crop.y; for (i = 0; i < width; i++) { x = (float) ((double) i * (double) (bmp_draw->crop.w - 1) / (double) (width - 1)); x += (float) bmp_draw->crop.x; opacity = wmf_ipa_bmp_interpolate (API,&(bmp_draw->bmp),&rgb,x,y); if (opacity < 0) break; if (opacity == 0) continue; if (opacity < 0xff) { color = gdImageGetPixel (gd->image,i+pt.x,(height-1-j)+pt.y); alpha = gdImageAlpha (gd->image, color); alpha = (((0x7f - alpha) + 1) << 1) - 1; bg.r = (unsigned char) (gdImageRed (gd->image, color) & 0xff); bg.g = (unsigned char) (gdImageGreen (gd->image, color) & 0xff); bg.b = (unsigned char) (gdImageBlue (gd->image, color) & 0xff); /* not sure if this is correct, but... */ tfg = (1 + (unsigned long) opacity) * (1 + (unsigned long) rgb.r); tbg = (1 + (unsigned long) (0xff - opacity)) * (1 + (unsigned long) bg.r); rgb.r = (unsigned char) ((((tfg + tbg) >> 8) - 1) & 0xff); tfg = (1 + (unsigned long) opacity) * (1 + (unsigned long) rgb.g); tbg = (1 + (unsigned long) (0xff - opacity)) * (1 + (unsigned long) bg.g); rgb.g = (unsigned char) ((((tfg + tbg) >> 8) - 1) & 0xff); tfg = (1 + (unsigned long) opacity) * (1 + (unsigned long) rgb.b); tbg = (1 + (unsigned long) (0xff - opacity)) * (1 + (unsigned long) bg.b); rgb.b = (unsigned char) ((((tfg + tbg) >> 8) - 1) & 0xff); tbg = (unsigned long) opacity; tbg *= 0x100 - (unsigned long) alpha; tbg = ((tbg - 1) >> 8) + (unsigned long) alpha; alpha = (int) (tbg & 0xff); alpha = 0x7f - (((alpha + 1) >> 1) - 1); } else { alpha = 0x7f - (((opacity + 1) >> 1) - 1); } color = gdImageColorResolveAlpha (gd->image,rgb.r,rgb.g,rgb.b,alpha); gdImageSetPixel (gd->image,i+pt.x,(height-1-j)+pt.y,color); } } } static void wmf_gd_bmp_read (wmfAPI* API,wmfBMP_Read_t* bmp_read) { WMF_DEBUG (API,"wmf_[gd_]bmp_read"); wmf_ipa_bmp_read (API,bmp_read); } static void wmf_gd_bmp_free (wmfAPI* API,wmfBMP* bmp) { WMF_DEBUG (API,"wmf_[gd_]bmp_free"); wmf_ipa_bmp_free (API,bmp); } libwmf-0.2.13/src/ipa/xgd/device.h000066400000000000000000000154261441723000300166110ustar00rootroot00000000000000/* libwmf ("ipa/xgd/device.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This is called by wmf_play() the *first* time the meta file is played */ static void wmf_gd_device_open (wmfAPI* API) { #if !defined(HAVE_LIBPNG) || !defined(HAVE_LIBJPEG) wmf_gd_t* ddata = WMF_GD_GetData (API); #endif WMF_DEBUG (API,"wmf_[gd_]device_open"); #ifndef HAVE_LIBPNG if (ddata->type == wmf_gd_png) { WMF_ERROR (API,"Sorry! libwmf[gd] does not have PNG support!"); API->err = wmf_E_DeviceError; return; } #endif /* HAVE_LIBPNG */ #ifndef HAVE_LIBJPEG if (ddata->type == wmf_gd_jpeg) { WMF_ERROR (API,"Sorry! libwmf[gd] does not have JPEG support!"); API->err = wmf_E_DeviceError; return; } #endif /* HAVE_LIBJPEG */ } /* This is called by wmf_api_destroy() */ static void wmf_gd_device_close (wmfAPI* API) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; WMF_DEBUG (API,"wmf_[gd_]device_close"); if (gd->brush.hatch) gdImageDestroy (gd->brush.hatch); if (gd->brush.image) gdImageDestroy (gd->brush.image); if (gd->pen.image) gdImageDestroy (gd->pen.image); if (gd->image) gdImageDestroy (gd->image); } /* This is called from the beginning of each play for initial page setup */ static void wmf_gd_device_begin (wmfAPI* API) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; WMF_DEBUG (API,"wmf_[gd_]device_begin"); if ((ddata->width == 0) || (ddata->height == 0)) { WMF_ERROR (API,"Image has bad size!"); API->err = wmf_E_Glitch; return; } gd->image = gdImageCreateTrueColor ((int) ddata->width,(int) ddata->height); if (gd->image == 0) { WMF_ERROR (API,"Unable to create image!"); API->err = wmf_E_DeviceError; return; } gd->brush.hatch = 0; gd->brush.image = 0; gd->pen.image = 0; gd->white = gdImageColorAllocate (gd->image,255,255,255); /* background color */ gdImageFilledRectangle (gd->image,0,0,(int) ddata->width - 1,(int) ddata->height - 1,gd->white); } /* This is called from the end of each play for page termination */ static void wmf_gd_device_end (wmfAPI* API) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; gdSink sink; WMF_DEBUG (API,"wmf_[gd_]device_end"); switch (ddata->type) { #ifdef HAVE_LIBPNG case (wmf_gd_png): if (ddata->flags & WMF_GD_OUTPUT_FILE) { if (ddata->file == 0) { WMF_ERROR (API,"Attempt to write to null stream!"); API->err = wmf_E_BadFile; break; } gdImagePng (gd->image,ddata->file); } else if (ddata->flags & WMF_GD_OUTPUT_MEMORY) { sink.context = (void*) API; sink.sink = gd_sink; gd->buffer = 0; gdImagePngToSink (gd->image,&sink); if (ERR (API)) { WMF_ERROR (API,"PNG Write failed!"); break; } ddata->memory = gd->buffer; } break; #endif #ifdef HAVE_LIBJPEG case (wmf_gd_jpeg): if (ddata->flags & WMF_GD_OUTPUT_FILE) { if (ddata->file == 0) { WMF_ERROR (API,"Attempt to write to null stream!"); API->err = wmf_E_BadFile; break; } gdImageJpeg (gd->image,ddata->file,-1); /* Default quality. */ } else if (ddata->flags & WMF_GD_OUTPUT_MEMORY) { WMF_ERROR (API,"JPEG Output to memory not supported!"); /* Or is it ?? */ API->err = wmf_E_Glitch; } break; #endif case (wmf_gd_image): /* no output, but don't destroy image (see below) */ break; default: WMF_ERROR (API,"Output format is not supported!"); API->err = wmf_E_Glitch; break; } if (gd->brush.hatch) gdImageDestroy (gd->brush.hatch); if (gd->brush.image) gdImageDestroy (gd->brush.image); if (gd->pen.image) gdImageDestroy (gd->pen.image); if (ddata->type == wmf_gd_image) { gdClipSetReset (gd->image); /* Remove any clipping rectangles */ ddata->gd_image = (void*) gd->image; } else { gdImageDestroy (gd->image); } gd->brush.hatch = 0; gd->brush.image = 0; gd->pen.image = 0; gd->image = 0; } static int gd_sink (void* context,const char* buffer,int length) { wmfAPI* API = (wmfAPI*) context; wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; int i; char* more = 0; if ((ddata->flags & WMF_GD_OWN_BUFFER) && ddata->sink.function) { return (ddata->sink.function (ddata->sink.context,(char*) buffer,length)); } if (ERR (API)) return (0); if (length <= 0) return (length); if (gd->buffer == 0) { gd->buffer = (char*) wmf_malloc (API,4096); if (ERR (API)) { gd->buffer = 0; return (0); } gd->max_length = 4096; gd->length = 0; } while ((gd->length + (long) length) > gd->max_length) { more = (char*) wmf_realloc (API,gd->buffer,gd->max_length + 4096); if (ERR (API)) break; gd->buffer = more; gd->max_length += 4096; } if (ERR (API)) return (0); gd->ptr = gd->buffer + gd->length; for (i = 0; i < length; i++) { (*(gd->ptr)) = (char) buffer[i]; gd->ptr++; gd->length++; } return (length); } static gdPoint gd_translate (wmfAPI* API,wmfD_Coord d_pt) { return (gd_translate_ft64 (API,d_pt,0)); } static gdPoint gd_translate_ft64 (wmfAPI* API,wmfD_Coord d_pt,FT_Vector* pen) { wmf_gd_t* ddata = WMF_GD_GetData (API); gdPoint g_pt; double x; double y; x = ((double) d_pt.x - (double) ddata->bbox.TL.x); x /= ((double) ddata->bbox.BR.x - (double) ddata->bbox.TL.x); x *= (double) ddata->width; y = ((double) d_pt.y - (double) ddata->bbox.TL.y); y /= ((double) ddata->bbox.BR.y - (double) ddata->bbox.TL.y); y *= (double) ddata->height; g_pt.x = (int) floor (x); g_pt.y = (int) floor (y); if (pen) { pen->x = floor ((x - floor (x)) * 64); pen->y = floor ((y - floor (y)) * 64); } return (g_pt); } static float gd_width (wmfAPI* API,float wmf_width) { wmf_gd_t* ddata = WMF_GD_GetData (API); double width; width = (double) wmf_width * (double) ddata->width; width /= ((double) ddata->bbox.BR.x - (double) ddata->bbox.TL.x); return ((float) width); } static float gd_height (wmfAPI* API,float wmf_height) { wmf_gd_t* ddata = WMF_GD_GetData (API); double height; height = (double) wmf_height * (double) ddata->height; height /= ((double) ddata->bbox.BR.y - (double) ddata->bbox.TL.y); return ((float) height); } libwmf-0.2.13/src/ipa/xgd/draw.h000066400000000000000000000171551441723000300163100ustar00rootroot00000000000000/* libwmf ("ipa/xgd/draw.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_gd_flood_interior (wmfAPI* API,wmfFlood_t* flood) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; wmfRGB* rgb; gdPoint pt; int color; WMF_DEBUG (API,"wmf_[gd_]flood_interior"); pt = gd_translate (API,flood->pt); rgb = &(flood->color); color = gdImageColorResolve (gd->image,rgb->r,rgb->g,rgb->b); gdImageFillToBorder (gd->image,pt.x,pt.y,color,color); } static void wmf_gd_flood_exterior (wmfAPI* API,wmfFlood_t* flood) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; wmfRGB* rgb; gdPoint pt; int color; WMF_DEBUG (API,"wmf_[gd_]flood_exterior"); pt = gd_translate (API,flood->pt); rgb = &(flood->color); color = gdImageColorResolve (gd->image,rgb->r,rgb->g,rgb->b); if (flood->type == FLOODFILLSURFACE) { gdImageFill (gd->image,pt.x,pt.y,color); } else { gdImageFillToBorder (gd->image,pt.x,pt.y,color,color); } } static void wmf_gd_draw_pixel (wmfAPI* API,wmfDrawPixel_t* draw_pixel) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; gdPoint pt; wmfRGB* rgb; int color; WMF_DEBUG (API,"wmf_[gd_]draw_pixel"); pt = gd_translate (API,draw_pixel->pt); rgb = &(draw_pixel->color); color = gdImageColorResolve (gd->image,rgb->r,rgb->g,rgb->b); gdImageSetPixel (gd->image,pt.x,pt.y,color); } static void wmf_gd_draw_pie (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_gd_t* ddata = WMF_GD_GetData (API); */ /* gd_t* gd = (gd_t*) ddata->gd_data; */ WMF_DEBUG (API,"wmf_[gd_]draw_pie"); gd_draw_arc (API,draw_arc,gd_arc_pie); } static void wmf_gd_draw_chord (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_gd_t* ddata = WMF_GD_GetData (API); */ /* gd_t* gd = (gd_t*) ddata->gd_data; */ WMF_DEBUG (API,"wmf_[gd_]draw_chord"); gd_draw_arc (API,draw_arc,gd_arc_chord); } static void wmf_gd_draw_arc (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_gd_t* ddata = WMF_GD_GetData (API); */ /* gd_t* gd = (gd_t*) ddata->gd_data; */ WMF_DEBUG (API,"wmf_[gd_]draw_arc"); gd_draw_arc (API,draw_arc,gd_arc_open); } static void wmf_gd_draw_ellipse (wmfAPI* API,wmfDrawArc_t* draw_arc) { /* wmf_gd_t* ddata = WMF_GD_GetData (API); */ /* gd_t* gd = (gd_t*) ddata->gd_data; */ WMF_DEBUG (API,"wmf_[gd_]draw_ellipse"); gd_draw_arc (API,draw_arc,gd_arc_ellipse); } static void gd_draw_arc (wmfAPI* API,wmfDrawArc_t* draw_arc,gd_arc_t finish) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; gdPoint TL; gdPoint BR; gdPoint s_pt; gdPoint e_pt; int Ox; int Oy; int w; int h; int start = 0; int end = 360; int brushstyle; int linestyle; WMF_DEBUG (API,"~~~~~~~~gd_draw_arc"); TL = gd_translate (API,draw_arc->TL); BR = gd_translate (API,draw_arc->BR); Ox = (BR.x + TL.x) / 2; /* origin of ellipse */ Oy = (BR.y + TL.y) / 2; w = (BR.x - TL.x); /* axes of ellipse */ h = (BR.y - TL.y); if (finish != gd_arc_ellipse) { start = (int) (atan2 (draw_arc->start.y,draw_arc->start.x) * 180 / PI); end = (int) (atan2 (draw_arc->end.y ,draw_arc->end.x ) * 180 / PI); if (start < 0) { start += 360; end += 360; } if (end < start) end += 360; if (finish != gd_arc_open) { s_pt = gd_translate (API,draw_arc->start); s_pt.x += Ox; s_pt.y += Oy; e_pt = gd_translate (API,draw_arc->end); e_pt.x += Ox; e_pt.y += Oy; } } if (TO_FILL (draw_arc)) { brushstyle = setbrushstyle (API,draw_arc->dc); if (finish == gd_arc_ellipse) { gdImageFilledArc (gd->image,Ox,Oy,w,h,start,end,brushstyle,gdChord); } else if (finish == gd_arc_open) { /* Do nothing */ } else if (finish == gd_arc_pie) { gdImageFilledArc (gd->image,Ox,Oy,w,h,start,end,brushstyle,gdPie); } else if (finish == gd_arc_chord) { gdImageFilledArc (gd->image,Ox,Oy,w,h,start,end,brushstyle,gdChord); } } if (TO_DRAW (draw_arc)) { linestyle = setlinestyle (API,draw_arc->dc); gdImageArc (gd->image,Ox,Oy,w,h,start,end,linestyle); if (finish == gd_arc_ellipse) { /* Do nothing */ } else if (finish == gd_arc_open) { /* Do nothing */ } else if (finish == gd_arc_pie) { gdImageLine (gd->image,e_pt.x,e_pt.y,Ox,Oy,linestyle); gdImageLine (gd->image,Ox,Oy,s_pt.x,s_pt.y,linestyle); } else if (finish == gd_arc_chord) { gdImageLine (gd->image,e_pt.x,e_pt.y,s_pt.x,s_pt.y,linestyle); } } } static void wmf_gd_draw_line (wmfAPI* API,wmfDrawLine_t* draw_line) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; gdPoint from; gdPoint to; int linestyle; WMF_DEBUG (API,"wmf_[gd_]draw_line"); if (TO_DRAW (draw_line)) { linestyle = setlinestyle (API,draw_line->dc); from = gd_translate (API,draw_line->from); to = gd_translate (API,draw_line->to ); gdImageLine (gd->image,from.x,from.y,to.x,to.y,linestyle); } } static void wmf_gd_poly_line (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; gdPoint from; gdPoint to; int linestyle; U16 i; WMF_DEBUG (API,"wmf_[gd_]poly_line"); if (TO_DRAW (poly_line) && (poly_line->count > 1)) { linestyle = setlinestyle (API,poly_line->dc); from = gd_translate (API,poly_line->pt[0]); for (i = 1; i < poly_line->count; i++) { to = gd_translate (API,poly_line->pt[i]); gdImageLine (gd->image,from.x,from.y,to.x,to.y,linestyle); from = to; } } } static void wmf_gd_draw_polygon (wmfAPI* API,wmfPolyLine_t* poly_line) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; gdPoint* pt; int brushstyle; int linestyle; U16 i; WMF_DEBUG (API,"wmf_[gd_]draw_polygon"); if (poly_line->count < 3) return; pt = (gdPoint*) wmf_malloc (API,poly_line->count * sizeof (gdPoint)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } for (i = 0; i < poly_line->count; i++) { pt[i] = gd_translate (API,poly_line->pt[i]); } if (TO_FILL (poly_line)) { brushstyle = setbrushstyle (API,poly_line->dc); gdImageFilledPolygon (gd->image,pt,poly_line->count,brushstyle); } if (TO_DRAW (poly_line)) { linestyle = setlinestyle (API,poly_line->dc); gdImagePolygon (gd->image,pt,poly_line->count,linestyle); } wmf_free (API,pt); } static void wmf_gd_draw_rectangle (wmfAPI* API,wmfDrawRectangle_t* draw_rectangle) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; gdPoint TL; gdPoint BR; int brushstyle; int linestyle; WMF_DEBUG (API,"wmf_[gd_]draw_rectangle"); TL = gd_translate (API,draw_rectangle->TL); BR = gd_translate (API,draw_rectangle->BR); if (TO_FILL (draw_rectangle)) { brushstyle = setbrushstyle (API,draw_rectangle->dc); gdImageFilledRectangle (gd->image,TL.x,TL.y,BR.x,BR.y,brushstyle); } if (TO_DRAW (draw_rectangle)) { linestyle = setlinestyle (API,draw_rectangle->dc); gdImageRectangle (gd->image,TL.x,TL.y,BR.x,BR.y,linestyle); } } libwmf-0.2.13/src/ipa/xgd/font.h000066400000000000000000000113561441723000300163160ustar00rootroot00000000000000/* libwmf ("ipa/xgd/font.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_gd_draw_text (wmfAPI* API,wmfDrawText_t* draw_text) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; gdPoint pt; gdPoint pts[4]; wmfFont* font = 0; wmfRGB* fg = 0; wmfRGB* bg = 0; wmfD_Coord TL; wmfD_Coord BR; wmfD_Coord BL; wmfD_Coord TR; int color; float font_height; float font_ratio; double theta; double phi; FT_Face face; FT_F26Dot6 width; FT_F26Dot6 height; FT_Matrix matrix; FT_Vector pen; WMF_DEBUG (API,"wmf_[gd_]draw_text"); if (WMF_DC_OPAQUE (draw_text->dc)) { if ((draw_text->BR.x > draw_text->TL.x) && (draw_text->BR.y > draw_text->TL.y)) { TL = draw_text->TL; BR = draw_text->BR; TR.x = draw_text->BR.x; TR.y = draw_text->TL.y; BL.x = draw_text->TL.x; BL.y = draw_text->BR.y; } else { TL = draw_text->bbox.TL; BR = draw_text->bbox.BR; TR = draw_text->bbox.TR; BL = draw_text->bbox.BL; } bg = WMF_DC_BACKGROUND (draw_text->dc); color = gdImageColorResolve (gd->image,bg->r,bg->g,bg->b); pts[0] = gd_translate (API,TL); pts[1] = gd_translate (API,TR); pts[2] = gd_translate (API,BR); pts[3] = gd_translate (API,BL); gdImageFilledPolygon (gd->image,pts,4,color); } else { bg = &wmf_white; /* improper for gd? TODO */ } if (strlen (draw_text->str) > 1) { wmf_ipa_draw_text (API,draw_text,wmf_gd_draw_text); return; } font = WMF_DC_FONT (draw_text->dc); face = WMF_FONT_FTFACE (font); font_height = gd_height (API,(float) draw_text->font_height); font_ratio = gd_width (API,(float) (draw_text->font_height * draw_text->font_ratio)); font_ratio /= font_height; width = (FT_F26Dot6) (64 * font_height * font_ratio); height = (FT_F26Dot6) (64 * font_height); FT_Set_Char_Size (face,width,height,0,0); theta = - WMF_TEXT_ANGLE (font); phi = atan2 (sin (theta),font_ratio * cos (theta)); pt = gd_translate_ft64 (API,draw_text->pt,&pen); matrix.xx = (FT_Fixed) ( cos (phi) * 0x10000L); matrix.xy = (FT_Fixed) ( sin (phi) * 0x10000L); matrix.yx = (FT_Fixed) (- sin (phi) * 0x10000L); matrix.yy = (FT_Fixed) ( cos (phi) * 0x10000L); FT_Set_Transform (face,&matrix,&pen); FT_Load_Char (face,draw_text->str[0],FT_LOAD_RENDER); pt.x += face->glyph->bitmap_left; pt.y -= face->glyph->bitmap_top; fg = WMF_DC_TEXTCOLOR (draw_text->dc); gd_draw_ftbitmap (API,&(face->glyph->bitmap),pt,fg,bg); } static void gd_draw_ftbitmap (wmfAPI* API,FT_Bitmap* bitmap,gdPoint pt,wmfRGB* fg,wmfRGB* bg) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; wmfRGB rgb; float red; float green; float blue; float grey; /* 1 = black(fg); 0 = white(bg) */ unsigned char* buffer; unsigned int row; unsigned int rows; unsigned int col; unsigned int cols; int x; int y; int fg_pixel; int color; rows = bitmap->rows; cols = bitmap->width; fg_pixel = gdImageColorResolve (gd->image,fg->r,fg->g,fg->b); for (row = 0; row < rows; row++) { buffer = bitmap->buffer + row * bitmap->pitch; y = pt.y + row; for (col = 0; col < cols; col++) { if (bitmap->pixel_mode == ft_pixel_mode_grays) { grey = (float) buffer[col] / (float) (bitmap->num_grays - 1); } else if (bitmap->pixel_mode == ft_pixel_mode_mono) { grey = ((buffer[col>>3] << (col & 7)) & 128) ? 1 : 0; } else /* Unsupported ft_pixel_mode */ { grey = 0; } if (grey > 0) /* if not background */ { x = pt.x + col; if ((grey >= 1) && (bitmap->pixel_mode != ft_pixel_mode_mono)) { color = fg_pixel; } else /* find anti-aliased color */ { red = grey * (float) fg->r + (1 - grey) * (float) bg->r; green = grey * (float) fg->g + (1 - grey) * (float) bg->g; blue = grey * (float) fg->b + (1 - grey) * (float) bg->b; rgb = wmf_rgb_color (API,red/255,green/255,blue/255); color = gdImageColorResolve (gd->image,rgb.r,rgb.g,rgb.b); } gdImageSetPixel (gd->image,x,y,color); } } } } libwmf-0.2.13/src/ipa/xgd/region.h000066400000000000000000000062261441723000300166330ustar00rootroot00000000000000/* libwmf ("ipa/xgd/region.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void wmf_gd_region_frame (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_gd_t* ddata = WMF_GD_GetData (API); wmfPen* pen = 0; wmfRGB* rgb = 0; gd_t* gd = (gd_t*) ddata->gd_data; gdPoint TL; gdPoint BR; unsigned int i; int width; int height; int color; WMF_DEBUG (API,"wmf_[gd_]region_frame"); if (poly_rect->count == 0) return; pen = WMF_DC_PEN (poly_rect->dc); rgb = WMF_PEN_COLOR (pen); color = gdImageColorResolve (gd->image,rgb->r,rgb->g,rgb->b); width = gd_width (API,poly_rect->width ); height = gd_height (API,poly_rect->height); if (width < 1) width = 1; if (height < 1) height = 1; for (i = 0; i < poly_rect->count; i++) { TL = gd_translate (API,poly_rect->TL[i]); BR = gd_translate (API,poly_rect->BR[i]); gdImageFilledRectangle (gd->image,TL.x-width,TL.y-height,TL.x,BR.y,color); gdImageFilledRectangle (gd->image,TL.x-width,BR.y,BR.x,BR.y+height,color); gdImageFilledRectangle (gd->image,TL.x,TL.y-height,BR.x+width,TL.y,color); gdImageFilledRectangle (gd->image,BR.x,TL.y,BR.x+width,BR.y+height,color); } } static void wmf_gd_region_paint (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; gdPoint TL; gdPoint BR; unsigned int i; int brushstyle; WMF_DEBUG (API,"wmf_[gd_]region_paint"); if (poly_rect->count == 0) return; if (TO_FILL (poly_rect)) { brushstyle = setbrushstyle (API,poly_rect->dc); for (i = 0; i < poly_rect->count; i++) { TL = gd_translate (API,poly_rect->TL[i]); BR = gd_translate (API,poly_rect->BR[i]); gdImageFilledRectangle (gd->image,TL.x,TL.y,BR.x,BR.y,brushstyle); } } } static void wmf_gd_region_clip (wmfAPI* API,wmfPolyRectangle_t* poly_rect) { wmf_gd_t* ddata = WMF_GD_GetData (API); gd_t* gd = (gd_t*) ddata->gd_data; gdPoint TL; gdPoint BR; gdClipRectangle rect; unsigned int i; WMF_DEBUG (API,"wmf_[gd_]region_clip"); gdClipSetReset (gd->image); if (poly_rect->count == 0) return; for (i = 0; i < poly_rect->count; i++) { TL = gd_translate (API,poly_rect->TL[i]); BR = gd_translate (API,poly_rect->BR[i]); rect.x_min = MIN (TL.x,BR.x); rect.x_max = MAX (TL.x,BR.x) - 1; rect.y_min = MIN (TL.y,BR.y); rect.y_max = MAX (TL.y,BR.y) - 1; gdClipSetAdd (gd->image,&rect); } } libwmf-0.2.13/src/meta.c000066400000000000000000000321471441723000300147370ustar00rootroot00000000000000/* libwmf (meta.c): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif #include #include "wmfdefs.h" static void write_header (wmfAPI*,long,long); static void write_str (wmfAPI*,const char*); static void write_b64 (wmfAPI*,const unsigned char*,unsigned long); /** * @internal */ U16 wmf_read_16 (wmfAPI* API) { int i1; int i2; U16 bb = 0; if (API->bbuf.read == 0) { WMF_ERROR (API,"wmf_read_16: no input stream open!"); API->err = wmf_E_BadFile; } else { i1 = WMF_READ (API); i2 = WMF_READ (API); if ((i1 == EOF) || (i2 == EOF)) { WMF_DEBUG (API,"wmf_read_16: (EOF)"); API->err = wmf_E_EOF; } else bb = (((U16) i2) << 8) + ((U16) i1); } return (bb); } /** * @internal */ U32 wmf_read_32 (wmfAPI* API,U16* u16a,U16* u16b) { U16 w1; U16 w2; U32 ww = 0; w1 = wmf_read_16 (API); w2 = wmf_read_16 (API); if (u16a) (*u16a) = w1; if (u16b) (*u16b) = w2; if (API->err == wmf_E_None) ww = WMF_U16_U16_to_U32 (w1,w2); return (ww); } /** * Compute the Aldus checksum of the metafile's header. * * @param API the API handle * * (Must read the header first, either via wmf_scan() or by calling wmf_header_read() directly.) * * @return Returns the checksum. */ U16 wmf_aldus_checksum (wmfAPI* API) { U16 Checksum = 0; Checksum ^= API->File->pmh->Key & 0x0000FFFFUL; Checksum ^= (API->File->pmh->Key & 0xFFFF0000UL) >> 16; Checksum ^= API->File->pmh->Handle; Checksum ^= API->File->pmh->Left; Checksum ^= API->File->pmh->Top; Checksum ^= API->File->pmh->Right; Checksum ^= API->File->pmh->Bottom; Checksum ^= API->File->pmh->Inch; Checksum ^= API->File->pmh->Reserved & 0x0000FFFFUL; Checksum ^= (API->File->pmh->Reserved & 0xFFFF0000UL) >> 16; return (Checksum); } /** * Read the metafile's header. * * @param API the API handle * * (Must read the header first, either via wmf_scan() or by calling wmf_header_read() directly.) * * @return Returns the library error state (\b wmf_E_None on success). * Possible library error states of \b wmf_E_Glitch, \b wmf_E_BadFormat (bad header), * \b wmf_E_BadFile (no open input stream) and \b wmf_E_EOF (premature end-of-file). */ wmf_error_t wmf_header_read (wmfAPI* API) { U16 u16a; U16 u16b; long header_start = WMF_TELL (API); long header_end = 0; if ((API->File->pmh->Key = wmf_read_32 (API,&u16a,&u16b)) == 0x9ac6cdd7) { API->File->placeable = 1; API->File->pmh->Handle = wmf_read_16 (API); u16a = wmf_read_16 (API); API->File->pmh->Left = U16_2_S16 (u16a); u16a = wmf_read_16 (API); API->File->pmh->Top = U16_2_S16 (u16a); u16a = wmf_read_16 (API); API->File->pmh->Right = U16_2_S16 (u16a); u16a = wmf_read_16 (API); API->File->pmh->Bottom = U16_2_S16 (u16a); API->File->pmh->Inch = wmf_read_16 (API); API->File->pmh->Reserved = wmf_read_32 (API,0,0); API->File->pmh->Checksum = wmf_read_16 (API); API->File->wmfheader->FileType = wmf_read_16 (API); API->File->wmfheader->HeaderSize = wmf_read_16 (API); } else { API->File->placeable = 0; API->File->pmh->Key = 0; API->File->pmh->Handle = 0; API->File->pmh->Left = 0; API->File->pmh->Top = 0; API->File->pmh->Right = 0; /* was 6000 */ API->File->pmh->Bottom = 0; /* was 6000 */ API->File->pmh->Inch = 0; API->File->pmh->Reserved = 0; API->File->pmh->Checksum = 0; API->File->wmfheader->FileType = u16a; /* from key-check above */ API->File->wmfheader->HeaderSize = u16b; } if (ERR (API)) return (API->err); if (API->File->wmfheader->HeaderSize == 9) { API->File->wmfheader->Version = wmf_read_16 (API); API->File->wmfheader->FileSize = wmf_read_32 (API,0,0); API->File->wmfheader->NumOfObjects = wmf_read_16 (API); API->File->wmfheader->MaxRecordSize = wmf_read_32 (API,0,0); API->File->wmfheader->NumOfParams = wmf_read_16 (API); API->File->pos = WMF_TELL (API); header_end = API->File->pos; write_header (API, header_start, header_end); } else { WMF_ERROR (API,"wmf_header_read: this isn't a wmf file"); API->err = wmf_E_BadFormat; } return (API->err); } static void write_header (wmfAPI* API, long header_start, long header_end) { unsigned char * header = 0; long i; long header_size = header_end - header_start; int byte; wmfAttributes attrlist; if (API->write_data == 0) return; if (header_size <= 0) { WMF_ERROR (API, "Glitch!"); API->err = wmf_E_Glitch; return; } header = (unsigned char *) wmf_malloc (API, header_size); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } wmf_attr_new (API, &attrlist); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } WMF_SEEK (API,header_start); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } for (i = 0; i < header_size; i++) { byte = WMF_READ (API); if (byte == EOF) { WMF_ERROR (API, "Glitch!"); API->err = wmf_E_Glitch; break; } header[i] = (unsigned char) (byte & 0xff); } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } wmf_write (API, 0, 0, "header", attrlist.atts, header, header_size); wmf_attr_free (API, &attrlist); wmf_free (API, header); } typedef enum _wmf_write_t { wmf_W_WMF = 0, wmf_W_XML } wmf_write_t; typedef struct _wmfWriteFileInfo wmfWriteFileInfo; struct _wmfWriteFileInfo { FILE* file; wmf_write_t type; }; void wmf_write (wmfAPI * API, unsigned long Size, unsigned int Function, const char * name, char ** atts, const unsigned char * buffer, unsigned long length) { char ** attr = 0; unsigned char prefix[6]; wmfWriteFileInfo * WFI = (wmfWriteFileInfo *) API->write_data; if (WFI == 0) return; prefix[0] = (unsigned char) ( Size & 0xff); prefix[1] = (unsigned char) ((Size >> 8) & 0xff); prefix[2] = (unsigned char) ((Size >> 16) & 0xff); prefix[3] = (unsigned char) ((Size >> 24) & 0xff); prefix[4] = (unsigned char) ( Function & 0xff); prefix[5] = (unsigned char) ((Function >> 8) & 0xff); if (WFI->type == wmf_W_WMF) { if (strcmp (name, "header")) fwrite (prefix, 1, 6, WFI->file); if (buffer && length) fwrite (buffer, 1, length, WFI->file); return; } if (name == 0) return; fprintf (WFI->file, " <%s", name); if (atts) { attr = atts; while (*attr) { fprintf (WFI->file, " %s=\"", *attr++); if (*attr) fputs (*attr, WFI->file); fputs ("\"", WFI->file); attr++; } } fputs (">\n", WFI->file); if (strcmp (name, "header")) write_b64 (API, prefix, 6); if (buffer && length) write_b64 (API, buffer, length); fprintf (WFI->file, " \n", name); } void wmf_write_begin (wmfAPI * API, const char * filename) { int length; wmfWriteFileInfo * WFI = (wmfWriteFileInfo *) wmf_malloc (API, sizeof(wmfWriteFileInfo)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } if (filename == 0) { WMF_ERROR (API,"Glitch!"); API->err = wmf_E_Glitch; return; } length = strlen (filename); if (length < 5) { WMF_ERROR (API,"Bad [--wmf-write] filename! expected *.wmf or *.xml"); API->err = wmf_E_BadFile; return; } if ((strcmp (filename + length - 4, ".wmf") == 0) || (strcmp (filename + length - 4, ".WMF") == 0)) { WFI->type = wmf_W_WMF; } else if ((strcmp (filename + length - 4, ".xml") == 0) || (strcmp (filename + length - 4, ".XML") == 0)) { WFI->type = wmf_W_XML; } else { WMF_ERROR (API,"Bad [--wmf-write] filename! expected *.wmf or *.xml"); API->err = wmf_E_BadFile; return; } if (WFI->type == wmf_W_WMF) WFI->file = fopen (filename, "wb"); if (WFI->type == wmf_W_XML) WFI->file = fopen (filename, "w"); if (WFI->file == 0) { WMF_ERROR (API,"Unable to open [--wmf-write] file for writing!"); API->err = wmf_E_BadFile; return; } API->write_data = (void *) WFI; if (WFI->type == wmf_W_XML) { API->flags |= API_ENABLE_EDITING; write_str (API, "\n"); write_str (API, "\n"); } } void wmf_write_end (wmfAPI * API) { wmfWriteFileInfo * WFI = (wmfWriteFileInfo *) API->write_data; if (WFI == 0) return; if (WFI->type == wmf_W_XML) write_str (API, "\n"); fclose (WFI->file); wmf_free (API, API->write_data); API->write_data = 0; } static void write_str (wmfAPI * API, const char * str) { wmfWriteFileInfo * WFI = (wmfWriteFileInfo *) API->write_data; if (WFI == 0) return; if (WFI->type == wmf_W_WMF) return; if ( str == 0) return; if (*str == 0) return; fputs (str, WFI->file); } static void write_b64 (wmfAPI * API, const unsigned char * buffer, unsigned long length) { static char B64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; unsigned long i; unsigned long b32; unsigned long remaining = length; const unsigned char * bufptr = buffer; char buf[74]; char * ptr = 0; wmfWriteFileInfo * WFI = (wmfWriteFileInfo *) API->write_data; if (WFI == 0) return; if (WFI->type == wmf_W_WMF) return; if (length == 0) return; if (buffer == 0) { WMF_ERROR (API, "Glitch!"); API->err = wmf_E_Glitch; return; } buf[72] = '\n'; buf[73] = 0; while (remaining >= 54) { ptr = buf; for (i = 0; i < 18; i++) { b32 = (unsigned long) *bufptr++; b32 = (b32 << 8) | (unsigned long) *bufptr++; b32 = (b32 << 8) | (unsigned long) *bufptr++; *ptr++ = B64[(b32 >> 18) ]; *ptr++ = B64[(b32 >> 12) & 0x3f]; *ptr++ = B64[(b32 >> 6) & 0x3f]; *ptr++ = B64[ b32 & 0x3f]; } fputs (buf, WFI->file); remaining -= 54; } ptr = buf; while (remaining >= 3) { b32 = (unsigned long) *bufptr++; b32 = (b32 << 8) | (unsigned long) *bufptr++; b32 = (b32 << 8) | (unsigned long) *bufptr++; *ptr++ = B64[(b32 >> 18) ]; *ptr++ = B64[(b32 >> 12) & 0x3f]; *ptr++ = B64[(b32 >> 6) & 0x3f]; *ptr++ = B64[ b32 & 0x3f]; remaining -= 3; } if (remaining == 2) { b32 = (unsigned long) *bufptr++; b32 = (b32 << 8) | (unsigned long) *bufptr++; b32 = (b32 << 8); *ptr++ = B64[(b32 >> 18) ]; *ptr++ = B64[(b32 >> 12) & 0x3f]; *ptr++ = B64[(b32 >> 6) & 0x3f]; remaining -= 2; } if (remaining == 1) { b32 = (unsigned long) *bufptr++; b32 = (b32 << 16); *ptr++ = B64[(b32 >> 18) ]; *ptr++ = B64[(b32 >> 12) & 0x3f]; } *ptr++ = '\n'; *ptr++ = 0; fputs (buf, WFI->file); } void wmf_attr_new (wmfAPI * API, wmfAttributes * list) { if (list == 0) return; list->name = 0; list->buffer = 0; list->length = 0; list->offset = 0; list->count = 0; list->max = 0; list->atts = (char **) wmf_malloc (API, 2 * (8 + 1) * sizeof (char *)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } list->max = 8; list->atts[list->count] = 0; } void wmf_attr_clear (wmfAPI * API, wmfAttributes * list) { unsigned long i; if (list == 0) return; for (i = 0; i < (2 * list->count); i++) wmf_free (API, list->atts[i]); list->count = 0; list->atts[list->count] = 0; if (list->name) { wmf_free (API, list->name); list->name = 0; } list->buffer = 0; list->length = 0; } void wmf_attr_free (wmfAPI * API, wmfAttributes * list) { if (list == 0) return; wmf_attr_clear (API, list); if (list->atts) { wmf_free (API, list->atts); list->atts = 0; } list->max = 0; } const char * wmf_attr_add (wmfAPI * API, wmfAttributes * list, const char * name, const char * value) { unsigned long i; char ** more = 0; char * copy_name = 0; char * copy_value = 0; if (list == 0) return 0; if (list->atts == 0) return 0; copy_value = wmf_strdup (API, value); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return 0; } for (i = 0; i < (2 * list->count); i += 2) { if (strcmp (list->atts[i], name) == 0) { copy_name = list->atts[i]; wmf_free (API, list->atts[i+1]); list->atts[i+1] = copy_value; break; } } if (copy_name) return copy_value; copy_name = wmf_strdup (API, name); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return 0; } if (list->count == list->max) { more = (char **) wmf_realloc (API, list->atts, 2 * (list->max + 8 + 1) * sizeof (char *)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return 0; } list->atts = more; list->max += 8; } list->atts[list->count++] = copy_name; list->atts[list->count++] = copy_value; list->atts[list->count] = 0; return copy_value; } const char * wmf_attr_query (wmfAPI * API, wmfAttributes * list, const char* name) { (void)API; unsigned long i; const char * value = 0; if (list == 0) return 0; if (list->atts == 0) return 0; for (i = 0; i < (2 * list->count); i += 2) { if (strcmp (list->atts[i], name) == 0) { value = list->atts[i+1]; break; } } return value; } libwmf-0.2.13/src/metadefs.h000066400000000000000000000130121441723000300155740ustar00rootroot00000000000000/* libwmf ("metadefs.h"): library for wmf conversion Copyright (C) 2000-2002 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFMETADEFS_H #define WMFMETADEFS_H /* Modes for WmfSetMapMode */ #define MM_TEXT 1 #define MM_LOMETRIC 2 #define MM_HIMETRIC 3 #define MM_LOENGLISH 4 #define MM_HIENGLISH 5 #define MM_TWIPS 6 #define MM_ISOTROPIC 7 #define MM_ANISOTROPIC 8 #define MM_DPI 9 /* meta file api defs */ #define META_SAVEDC 0x001E /*i dont think ive saved everything ?*/ #define META_REALIZEPALETTE 0x0035 /*safely ignored methinks*/ #define META_SETPALENTRIES 0x0037 /*safely ignored methinks*/ #define META_CREATEPALETTE 0x00f7 /*not implemented yet*/ #define META_SETBKMODE 0x0102 /*working on it*/ #define META_SETMAPMODE 0x0103 /*more or less implemented*/ #define META_SETROP2 0x0104 /*maybe it works maybe it doesnt*/ #define META_SETPOLYFILLMODE 0x0106 #define META_SETSTRETCHBLTMODE 0x0107 /*dont know yet*/ #define META_SETTEXTCHAREXTRA 0x0108 /*extra space after each character*/ #define META_RESTOREDC 0x0127 /*i dont think ive restored everything ?*/ #define META_INVERTREGION 0x012A /*invert the select region*/ #define META_PAINTREGION 0x012B /*paint the selected region*/ #define META_SELECTCLIPREGION 0x012C /*set a region to be the clipping region*/ #define META_SELECTOBJECT 0x012D /*select what object to draw with*/ #define META_SETTEXTALIGN 0x012E /*working on it, vertial done for X*/ #define META_DIBCREATEPATTERNBRUSH 0x0142 /*implemented fully i think*/ #define META_DELETEOBJECT 0x01f0 /*delete an object, deleting selected object makes you fall back to the previous selected object ?*/ #define META_SETBKCOLOR 0x0201 #define META_SETTEXTCOLOR 0x0209 /*text color, stored*/ #define META_SETTEXTJUSTIFICATION 0x020A /*amount of extra space to add to each space i believe*/ #define META_SETWINDOWORG 0x020B /*defines the origin of the coordinate system that the wmf functions are against*/ #define META_SETWINDOWEXT 0x020C /*defines the width and height of the coord-system*/ #define META_SETVIEWPORTORG 0x020D #define META_SETVIEWPORTEXT 0x020E /*only makes a difference in those MM_ISOTROPIC and MM_ANISOTROPIC modes*/ #define META_OFFSETWINDOWORG 0x020F /*changes the origin of the logical window*/ #define META_OFFSETVIEWPORTORG 0x0211 /*changes the origin of the device window*/ #define META_LINETO 0x0213 /*fairly obvious, once clipping is engaged*/ #define META_MOVETO 0x0214 /*obvious see code for more*/ #define META_OFFSETCLIPRGN 0x0220 /*move the clipping reg*/ #define META_FILLREGION 0x0228 /*fill the selected region with the selected brush*/ #define META_SETMAPPERFLAGS 0x0231 /*font mapping flag, ignorable methinks*/ #define META_SELECTPALETTE 0x0234 /*safely ignored methinks*/ #define META_CREATEFONTINDIRECT 0x02FB /*gd mapping needs to be done, X one needs to be made robust*/ #define META_CREATEPENINDIRECT 0x02FA /*uncertain*/ #define META_CREATEBRUSHINDIRECT 0x02FC /*undertain*/ #define META_POLYGON 0x0324 /*obvious*/ #define META_POLYLINE 0x0325 /*obvious*/ #define META_SCALEWINDOWEXT 0x0410 /*modify the extent of the window*/ #define META_SCALEVIEWPORTEXT 0x0412 /*modify the extent of the viewport*/ #define META_EXCLUDECLIPRECT 0x0415 /*remove part of a clipping rect*/ #define META_INTERSECTCLIPRECT 0x0416 /*a clipping rectangle, often used for lines*/ #define META_ELLIPSE 0x0418 /*obvious*/ #define META_FLOODFILL 0x0419 /*reasonably obvious*/ #define META_RECTANGLE 0x041B /*obvious*/ #define META_SETPIXEL 0x041F /*obvious*/ #define META_FRAMEREGION 0x0429 /*reasonably obvious*/ #define META_TEXTOUT 0x0521 #define META_POLYPOLYGON 0x0538 /*working*/ #define META_EXTFLOODFILL 0x0548 /*what are filltypes ?*/ #define META_ROUNDRECT 0x061C /*reasonably obvious*/ #define META_PATBLT 0x061D /*more ROP stuff*/ #define META_ESCAPE 0x0626 /*i think i can ignore this one*/ #define META_CREATEREGION 0x06FF /*awkward*/ #define META_ARC 0x0817 /*obvious*/ #define META_PIE 0x081A /*a pie*/ #define META_CHORD 0x0830 /*a chord*/ #define META_DIBBITBLT 0x0940 /*not so sure yet, some common ones working so far*/ #define META_EXTTEXTOUT 0x0a32 /*working on it, basically working for X*/ #define META_DIBSTRETCHBLT 0x0b41 /*working on it*/ #define META_SETDIBTODEV 0x0d33 /*a reasonably complicated mechanism of copying a graphic to the screen*/ #define META_STRETCHDIB 0x0f43 /*working on it*/ /* Regions */ #define ERROR 0 #define NULLREGION 1 #define SIMPLEREGION 2 #define COMPLEXREGION 3 #define RGN_AND 1 #define RGN_OR 2 #define RGN_XOR 3 #define RGN_DIFF 4 #define RGN_COPY 5 #define CLIP_INTERSECT 0x0001 #define CLIP_EXCLUDE 0x0002 #define CLIP_KEEPRGN 0x0004 #endif /* ! WMFMETADEFS_H */ libwmf-0.2.13/src/player.c000066400000000000000000001211611441723000300153000ustar00rootroot00000000000000/* libwmf (player.c): library for wmf conversion Copyright (C) 2000,2001 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif #include #include #include #include #ifdef HAVE_UNISTD_H #include #endif #include "wmfdefs.h" #include "metadefs.h" #include "player.h" #include "player/region.h" /* Provides: REGION manipulation functions */ #include "player/clip.h" /* Provides: clip function */ #include "player/color.h" /* Provides: color stuff */ #include "player/coord.h" /* Provides: coordinate translations */ #include "player/dc.h" /* Provides: dc stack & other dc functions */ #include "player/defaults.h" /* Provides: default settings */ #include "player/record.h" /* Provides: parameter mechanism */ #include "player/meta.h" /* Provides: record interpreters */ #include /** * @internal */ wmf_error_t wmf_player_init (wmfAPI* API) { wmfPlayer_t* P = 0; WMF_DEBUG (API,"~~~~~~~~wmf_player_init"); API->player_data = wmf_malloc (API,sizeof (wmfPlayer_t)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } P = (wmfPlayer_t*) API->player_data; P->flags = 0; return (API->err); } /** * Scan the metafile. * * @param API the API handle * @param flags (unused) * @param d_r for bounding-box return * * Before the metafile can be played, it must be scanned. This is because metafile headers do not always * provide image size information. Although the device layer (the graphics exporter) is initialized in * wmf_api_create(), the output device is not opened until after the metafile is scanned. By scanning, * therefore, the device layer can be provided on opening not only with size information but also a list * of colors to expect (not including those in raster images) and of other required resources, if necessary. * Finally, if scanning fails, then there's certainly no point in playing the metafile. * * The bounding box, in device coordinates, is returned in \p *d_r. * * @return Returns the library error state (\b wmf_E_None on success). */ wmf_error_t wmf_scan (wmfAPI* API,unsigned long flags,wmfD_Rect* d_r) { (void)flags; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; WMF_DEBUG (API,"~~~~~~~~wmf_scan"); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } /* wmf_scan doesn't allow re-scanning, but I suppose there may be a case * implementing a rescan function (or WMF_RESCAN flag?) at some point ?? */ if (P->flags & PLAYER_SCANNED) { WMF_DEBUG (API,"already scanned; skipping..."); return (API->err); } P->dc_stack_maxlen = 0; P->dc_stack = 0; P->objects = 0; P->D_TL.x = 0; P->D_TL.y = 0; P->D_BR.x = 0; P->D_BR.y = 0; d_r->TL = P->D_TL; d_r->BR = P->D_BR; P->flags &= ~PLAYER_PLAY; /* Set scan mode */ wmf_header_read (API); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } if (API->File->wmfheader->NumOfObjects > 0) { P->objects = (wmfObject*) wmf_malloc (API,NUM_OBJECTS (API) * sizeof (wmfObject)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } } if (MAX_REC_SIZE(API) > UINT32_MAX / 2) { API->err = wmf_E_InsMem; WMF_DEBUG (API,"bailing..."); return (API->err); } U32 nMaxRecordSize = (MAX_REC_SIZE(API) ) * 2 * sizeof (unsigned char); if (nMaxRecordSize) { //before allocating memory do a sanity check on size by seeking //to claimed end to see if its possible. We're constrained here //by the api and existing implementations to not simply seeking //to SEEK_END. So use what we have to skip to the last byte and //try and read it. const long nPos = WMF_TELL (API); WMF_SEEK (API, nPos + nMaxRecordSize - 1); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } int byte = WMF_READ (API); if (byte == (-1)) { WMF_ERROR (API,"Unexpected EOF!"); API->err = wmf_E_EOF; return (API->err); } WMF_SEEK (API, nPos); } P->Parameters = (unsigned char*) wmf_malloc (API, nMaxRecordSize); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } WmfPlayMetaFile (API); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } d_r->TL = P->D_TL; d_r->BR = P->D_BR; P->flags |= PLAYER_SCANNED; return (API->err); } /** * Get image size. * * @param API the API handle * @param width width return * @param height height return * * wmf_size() returns image width in \p *width and image height in \p *height. If supplied, the metafile * header values are used, otherwise the width and height found by wmf_scan() are used. * * @return Returns the library error state (\b wmf_E_None on success). * Possible library error state of \b wmf_E_Glitch (the metafile has not been scanned). */ wmf_error_t wmf_size (wmfAPI* API,float* width,float* height) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; S16 default_width; S16 default_height; WMF_DEBUG (API,"~~~~~~~~wmf_size"); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } if ((P->flags & PLAYER_SCANNED) == 0) { WMF_ERROR (API,"attempt to determine size of unscanned metafile!"); API->err = wmf_E_Glitch; return (API->err); } default_width = WMF_BBOX_RIGHT (API) - WMF_BBOX_LEFT (API); default_height = WMF_BBOX_TOP (API) - WMF_BBOX_BOTTOM (API); default_width = ABS (default_width ); default_height = ABS (default_height); if (default_width && default_height) { (*width) = (float) default_width; (*height) = (float) default_height; } else { (*width) = P->D_BR.x - P->D_TL.x; (*height) = P->D_BR.y - P->D_TL.y; } return (API->err); } /** * Get estimate of image display size. * * @param API the API handle * @param width width return * @param height height return * @param res_x x-resolution of display * @param res_y y-resolution of display * * wmf_display_size() returns image width in \p *width and image height in \p *height. * wmf_size() is used to get the calculated/estimate width and height of the image, * and these values are converted to integer width and height estimates for display. * * @return Returns the library error state (\b wmf_E_None on success). * Possible library error state of \b wmf_E_Glitch (the metafile has not been scanned). */ wmf_error_t wmf_display_size (wmfAPI* API,unsigned int* width,unsigned int* height, double res_x,double res_y) { unsigned int units_per_inch = 1440; double disp_width; double disp_height; float est_width; float est_height; WMF_DEBUG (API,"~~~~~~~~wmf_display_size"); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } wmf_size (API, &est_width, &est_height); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } if (PLACEABLE (API)) { units_per_inch = DPI (API); } else if ((est_width * est_height) < (1024 * 1024)) { units_per_inch = 72; } disp_width = ((double) est_width ) * res_x / (double) units_per_inch; disp_height = ((double) est_height) * res_y / (double) units_per_inch; if (width) *width = (unsigned int) disp_width; if (height) *height = (unsigned int) disp_height; return API->err; } /** * Play the metafile. * * @param API the API handle * @param flags (unused) * @param d_r for bounding-box return * * Before the metafile can be played, it must be scanned - see wmf_scan(). * * The first time (and only the first time) the metafile is played, it first calls \b device_open() for the * device layer specified (and initialized) in wmf_api_create(). Then, and also each subsequent time the * metafile is played, it calls \b device_begin(), plays the metafile (with calls to various other device * layer functions), and finally it calls \b device_end(). \b device_close() is only ever called via * wmf_api_destroy(). * * \p d_r is recomputed, but should not change. * * @return Returns the library error state (\b wmf_E_None on success). */ wmf_error_t wmf_play (wmfAPI* API,unsigned long flags,wmfD_Rect* d_r) { (void)flags; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; WMF_DEBUG (API,"~~~~~~~~wmf_play"); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } if ((P->flags & PLAYER_SCANNED) == 0) { WMF_ERROR (API,"attempt to play unscanned metafile!"); API->err = wmf_E_Glitch; return (API->err); } if ((API->flags & API_DEVICE_OPEN) == 0) { if (FR->device_open) FR->device_open (API); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } API->flags |= API_DEVICE_OPEN; } d_r->TL = P->D_TL; d_r->BR = P->D_BR; P->flags |= PLAYER_PLAY; /* Set play mode */ WmfPlayMetaFile (API); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } d_r->TL = P->D_TL; d_r->BR = P->D_BR; return (API->err); } static wmf_error_t WmfPlayMetaFile (wmfAPI* API) { unsigned int i; int byte; int changed; unsigned char* Par; unsigned int Function; unsigned long Size; unsigned long number; long pos_params; long pos_current; long pos_max; wmfObject* objects = 0; wmfUserData_t userdata; wmfRegion* visible; wmfRecord Record; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfFontData* FD = (wmfFontData*) API->font_data; wmfAttributes attrlist; wmfAttributes * atts = 0; WMF_DEBUG (API,"~~~~~~~~WmfPlayMetaFile"); P->dc_stack_length = 0; visible = &(P->visible); visible->numRects = 0; visible->rects = 0; visible->size = 0; P->current.x = 0; /* Should this be in the DC ?? */ P->current.y = 0; P->Viewport_Origin.x = 0; /* Should this be in the DC ?? */ P->Viewport_Origin.y = 0; P->Viewport_Width = 1024; /* Should this be in the DC ?? */ P->Viewport_Height = 1024; /* Can SetDefaults go in player_init ?? */ if (FD == 0) { WMF_ERROR (API,"Glitch! No font engine interface!"); API->err = wmf_E_Glitch; return (API->err); } if (FD->map == 0) { WMF_ERROR (API,"Glitch! No font-mapper!"); API->err = wmf_E_Glitch; return (API->err); } if (FD->stringwidth == 0) { WMF_ERROR (API,"Glitch! No string width function!"); API->err = wmf_E_Glitch; return (API->err); } if ((API->bbuf.read == 0) || (API->bbuf.seek == 0) || (API->bbuf.tell == 0)) { WMF_ERROR (API,"WmfPlayMetaFile: input functions set improperly!"); API->err = wmf_E_Glitch; return (API->err); } P->dc = dc_copy (API,0); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } WmfSetMapMode (API,(U16)(PLACEABLE (API) ? MM_DPI : MM_TEXT)); if (PLAY (API)) { if (FR->device_begin) FR->device_begin (API); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } } Par = P->Parameters; objects = P->objects; for (i = 0; i < NUM_OBJECTS (API); i++) objects[i].type = 0; WMF_SEEK (API,API->File->pos); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } wmf_attr_new (API, &attrlist); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (API->err); } number = 0; do { if (++number < API->store.count) { atts = API->store.attrlist + number; } else { atts = &attrlist; wmf_attr_clear (API, atts); } Size = wmf_read_32 (API,0,0); Function = wmf_read_16 (API); if ((Size == 3) && (Function == 0)) { if (SCAN (API)) wmf_write (API, Size, Function, "empty", atts->atts, 0, 0); break; /* Probably final record ?? */ } /* if ((Size > MAX_REC_SIZE (API)) || (Size < 3)) */ if (((Size - 3) > MAX_REC_SIZE (API)) || (Size < 3)) { WMF_ERROR (API,"libwmf: wmf with bizarre record size; bailing..."); WMF_ERROR (API," please send it to us at http://www.wvware.com/"); wmf_printf (API,"maximum record size = %u\n",(unsigned) MAX_REC_SIZE (API)); wmf_printf (API,"record size = %u\n",(unsigned) Size); API->err = wmf_E_BadFormat; break; } pos_params = WMF_TELL (API); if (pos_params < 0) { WMF_ERROR (API,"API's tell() failed on input stream!"); API->err = wmf_E_BadFile; break; } for (i = 0; i < ((Size - 3) * 2); i++) { byte = WMF_READ (API); if (byte == (-1)) { WMF_ERROR (API,"Unexpected EOF!"); API->err = wmf_E_EOF; break; } Par[i] = (unsigned char) byte; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); break; } Record.size = Size - 3; Record.function = Function; Record.parameter = Par; Record.position = pos_params; switch (Function) { case META_SETMAPMODE: SCAN_DIAGNOSTIC (API,"New Record: SETMAPMODE"); changed = meta_mapmode (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setmapmode", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETWINDOWORG: SCAN_DIAGNOSTIC (API,"New Record: SETWINDOWORG"); changed = meta_orgext (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setwindoworg", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETVIEWPORTORG: SCAN_DIAGNOSTIC (API,"New Record: SETVIEWPORTORG"); meta_orgext (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setviewportorg", atts->atts, Record.parameter, Record.size * 2); SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETVIEWPORTEXT: SCAN_DIAGNOSTIC (API,"New Record: SETVIEWPORTEXT"); changed = meta_orgext (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setviewportext", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETWINDOWEXT: SCAN_DIAGNOSTIC (API,"New Record: SETWINDOWEXT"); changed = meta_orgext (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setwindowext", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_OFFSETWINDOWORG: SCAN_DIAGNOSTIC (API,"New Record: OFFSETWINDOWORG"); changed = meta_orgext (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "offsetwindoworg", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_OFFSETVIEWPORTORG: SCAN_DIAGNOSTIC (API,"New Record: OFFSETVIEWPORTORG"); changed = meta_orgext (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "offsetviewportorg", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SCALEWINDOWEXT: SCAN_DIAGNOSTIC (API,"New Record: SCALEWINDOWEXT"); changed = meta_scale (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "scalewindowext", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SCALEVIEWPORTEXT: SCAN_DIAGNOSTIC (API,"New Record: SCALEVIEWPORTEXT"); changed = meta_scale (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "scaleviewportext", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; /* Following were originally play-only: * (a) basic draw * (b) REGION calls * (c) BMP & ROP stuff * (d) DC set * (e) text & font * (f) palette * (g) create & delete; save & restore; ... * (h) ==== other ==== */ /* (a) basic draw */ case META_MOVETO: SCAN_DIAGNOSTIC (API,"New Record: MOVETO"); changed = meta_moveto (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "moveto", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_FLOODFILL: SCAN_DIAGNOSTIC (API,"New Record: FLOODFILL"); changed = meta_flood (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "floodfill", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_EXTFLOODFILL: SCAN_DIAGNOSTIC (API,"New Record: EXTFLOODFILL"); changed = meta_flood (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "extfloodfill", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETPIXEL: SCAN_DIAGNOSTIC (API,"New Record: SETPIXEL"); changed = meta_pixel (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setpixel", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_PIE: SCAN_DIAGNOSTIC (API,"New Record: PIE"); changed = meta_arc (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "pie", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_CHORD: SCAN_DIAGNOSTIC (API,"New Record: CHORD"); changed = meta_arc (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "chord", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_ARC: SCAN_DIAGNOSTIC (API,"New Record: ARC"); changed = meta_arc (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "arc", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_ELLIPSE: SCAN_DIAGNOSTIC (API,"New Record: ELLIPSE"); changed = meta_ellipse (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "ellipse", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_LINETO: SCAN_DIAGNOSTIC (API,"New Record: LINETO"); changed = meta_line (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "lineto", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_POLYLINE: SCAN_DIAGNOSTIC (API,"New Record: POLYLINE"); changed = meta_lines (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "polyline", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_POLYGON: SCAN_DIAGNOSTIC (API,"New Record: POLYGON"); changed = meta_polygon (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "polygon", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_POLYPOLYGON: SCAN_DIAGNOSTIC (API,"New Record: POLYPOLYGON"); changed = meta_polygons (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "polypolygon", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_ROUNDRECT: SCAN_DIAGNOSTIC (API,"New Record: ROUNDRECT"); changed = meta_round (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "roundrect", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_RECTANGLE: SCAN_DIAGNOSTIC (API,"New Record: RECTANGLE"); changed = meta_rect (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "rectangle", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; /* (b) REGION calls */ case META_FRAMEREGION: SCAN_DIAGNOSTIC (API,"New Record: FRAMEREGION"); changed = meta_rgn_brush (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "frameregion", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_FILLREGION: SCAN_DIAGNOSTIC (API,"New Record: FILLREGION"); changed = meta_rgn_brush (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "fillregion", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_INVERTREGION: SCAN_DIAGNOSTIC (API,"New Record: INVERTREGION"); changed = meta_rgn_paint (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "invertregion", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_PAINTREGION: SCAN_DIAGNOSTIC (API,"New Record: PAINTREGION"); changed = meta_rgn_paint (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "paintregion", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_CREATEREGION: SCAN_DIAGNOSTIC (API,"New Record: CREATEREGION"); changed = meta_rgn_create (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "createregion", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SELECTCLIPREGION: SCAN_DIAGNOSTIC (API,"New Record: SELECTCLIPREGION"); changed = meta_clip_select (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "selectclipregion", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_OFFSETCLIPRGN: SCAN_DIAGNOSTIC (API,"New Record: OFFSETCLIPREGION"); changed = meta_clip_offset (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "offsetclipregion", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_EXCLUDECLIPRECT: SCAN_DIAGNOSTIC (API,"New Record: EXCLUDECLIPRECT"); changed = meta_clip_combine (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "excludecliprect", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_INTERSECTCLIPRECT: SCAN_DIAGNOSTIC (API,"New Record: INTERSECTCLIPRECT"); changed = meta_clip_combine (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "intersectcliprect", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; /* (c) BMP & ROP stuff * Notes: (1) BMP width/height may be signed! ?? i.e., -width,-height ?? * (2) Check! Check! Check! */ case META_SETDIBTODEV: SCAN_DIAGNOSTIC (API,"New Record: SETDIBTODEV"); changed = meta_dib_draw (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setdibtodev", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_STRETCHDIB: SCAN_DIAGNOSTIC (API,"New Record: STRETCHDIB"); changed = meta_dib_draw (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "stretchdib", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_DIBSTRETCHBLT: SCAN_DIAGNOSTIC (API,"New Record: DIBSTRETCHBLT"); changed = meta_dib_draw (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "dibstretchblt", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_DIBBITBLT: SCAN_DIAGNOSTIC (API,"New Record: DIBBITBLT"); changed = meta_dib_draw (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "dibbitblt", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_DIBCREATEPATTERNBRUSH: SCAN_DIAGNOSTIC (API,"New Record: DIBCREATEPATTERNBRUSH"); changed = meta_dib_brush (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "dibcreatepatternbrush", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_PATBLT: SCAN_DIAGNOSTIC (API,"New Record: PATBLT"); changed = meta_rop_draw (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "patblt", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; /* (d) DC set */ case META_SETROP2: SCAN_DIAGNOSTIC (API,"New Record: SETROP2"); changed = meta_dc_set (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setrop2", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETTEXTJUSTIFICATION: SCAN_DIAGNOSTIC (API,"New Record: SETTEXTJUSTIFICATION"); changed = meta_dc_set (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "settextjustification", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETTEXTCHAREXTRA: SCAN_DIAGNOSTIC (API,"New Record: SETTEXTCHAREXTRA"); changed = meta_dc_set (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "settextcharextra", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETPOLYFILLMODE: SCAN_DIAGNOSTIC (API,"New Record: SETPOLYFILLMODE"); changed = meta_dc_set (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setpolyfillmode", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETSTRETCHBLTMODE: SCAN_DIAGNOSTIC (API,"New Record: SETSTRETCHBLTMODE"); changed = meta_unused (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setstretchbltmode", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETTEXTALIGN: SCAN_DIAGNOSTIC (API,"New Record: SETTEXTALIGN"); changed = meta_dc_set (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "settextalign", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETTEXTCOLOR: SCAN_DIAGNOSTIC (API,"New Record: SETTEXTCOLOUR"); changed = meta_dc_color (API,&Record,atts); if (SCAN (API)) wmf_write (API, Size, Function, "settextcolour", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETBKCOLOR: SCAN_DIAGNOSTIC (API,"New Record: SETBKCOLOR"); changed = meta_dc_color (API,&Record,atts); if (SCAN (API)) wmf_write (API, Size, Function, "setbkcolor", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETBKMODE: SCAN_DIAGNOSTIC (API,"New Record: SETBKMODE"); changed = meta_dc_set (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setbkmode", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SELECTOBJECT: SCAN_DIAGNOSTIC (API,"New Record: SELECTOBJECT"); changed = meta_dc_select (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "selectobject", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; /* (e) text & font */ case META_TEXTOUT: SCAN_DIAGNOSTIC (API,"New Record: TEXTOUT"); changed = meta_text (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "textout", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_EXTTEXTOUT: SCAN_DIAGNOSTIC (API,"New Record: EXTTEXTOUT"); changed = meta_text (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "exttextout", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_CREATEFONTINDIRECT: SCAN_DIAGNOSTIC (API,"New Record: CREATEFONTINDIRECT"); changed = meta_font_create (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "createfontindirect", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETMAPPERFLAGS: SCAN_DIAGNOSTIC (API,"New Record: SETMAPPERFLAGS"); changed = meta_unused (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setmapperflags", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; /* (f) palette */ case META_CREATEPALETTE: SCAN_DIAGNOSTIC (API,"New Record: CREATEPALETTE"); changed = meta_palette_create (API); if (SCAN (API)) wmf_write (API, Size, Function, "createpalette", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_REALIZEPALETTE: SCAN_DIAGNOSTIC (API,"New Record: REALIZEPALETTE"); changed = meta_unused (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "realizepalette", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SELECTPALETTE: SCAN_DIAGNOSTIC (API,"New Record: SELECTPALETTE"); changed = meta_unused (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "selectpalette", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_SETPALENTRIES: SCAN_DIAGNOSTIC (API,"New Record: SETPALENTRIES"); changed = meta_unused (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "setpalentries", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; /* (g) create & delete; save & restore; ... */ case META_SAVEDC: SCAN_DIAGNOSTIC (API,"New Record: SAVEDC"); changed = meta_dc_save (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "savedc", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_RESTOREDC: SCAN_DIAGNOSTIC (API,"New Record: RESTOREDC"); changed = meta_dc_restore (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "restoredc", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_CREATEPENINDIRECT: SCAN_DIAGNOSTIC (API,"New Record: CREATEPENINDIRECT"); changed = meta_pen_create (API,&Record,atts); if (SCAN (API)) wmf_write (API, Size, Function, "createpenindirect", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_CREATEBRUSHINDIRECT: SCAN_DIAGNOSTIC (API,"New Record: CREATEBRUSHINDIRECT"); changed = meta_brush_create (API,&Record,atts); if (SCAN (API)) wmf_write (API, Size, Function, "createbrushindirect", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; case META_DELETEOBJECT: SCAN_DIAGNOSTIC (API,"New Record: DELETEOBJECT"); changed = meta_delete (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "deleteobject", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; /* (h) ==== other ==== */ case META_ESCAPE: SCAN_DIAGNOSTIC (API,"New Record: ESCAPE"); changed = meta_unused (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "escape", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; default: SCAN_DIAGNOSTIC (API,"New Record: UNKNOWN"); changed = meta_unused (API,&Record); if (SCAN (API)) wmf_write (API, Size, Function, "unknown", atts->atts, Record.parameter, Record.size * 2); if (changed && ((Record.size * 2 + 6) == atts->length)) { memcpy (atts->buffer + 6, Record.parameter, Record.size * 2); } SCAN_DIAGNOSTIC (API,"\n"); break; } if (PLAY (API) && API->status.function) { pos_current = WMF_TELL (API); if (pos_current < 0) { WMF_ERROR (API,"API's tell() failed on input stream!"); API->err = wmf_E_BadFile; break; } pos_current -= API->File->pos; pos_max = (FILE_SIZE(API) - API->File->pos)*2; if (API->status.function (API->status.context,(float) pos_current / (float) pos_max)) { API->err = wmf_E_UserExit; } } } while (API->err == wmf_E_None); if (Size == 0) { WMF_DEBUG (API,"size was 0, giving up now silently..."); if (API->err == wmf_E_EOF) { WMF_DEBUG (API,"discarding an EOF error, however."); API->err = wmf_E_None; } } if (ERR (API)) /* Quit now ?? */ { WMF_DEBUG (API,"bailing..."); return (API->err); } wmf_attr_free (API, &attrlist); if (SCAN (API)) wmf_write_end (API); while (P->dc_stack_length) { if (P->dc) { userdata.dc = P->dc; userdata.data = P->dc->userdata; if (FR->udata_free) FR->udata_free (API,&userdata); wmf_free (API,P->dc); } P->dc = dc_stack_pop (API); } if (P->dc) { userdata.dc = P->dc; userdata.data = P->dc->userdata; if (PLAY (API) && FR->udata_free) FR->udata_free (API,&userdata); wmf_free (API,P->dc); } dc_stack_free (API); for (i = 0; i < NUM_OBJECTS(API); i++) { if (objects[i].type == OBJ_BRUSH) { if (objects[i].obj.brush.lbStyle == BS_DIBPATTERN) { if (objects[i].obj.brush.bmp.data && FR->bmp_free) { FR->bmp_free (API,&(objects[i].obj.brush.bmp)); } } } else if (objects[i].type == OBJ_REGION) { wmf_free (API,objects[i].obj.rgn.rects); } else if (objects[i].type == OBJ_FONT) { wmf_free (API,objects[i].obj.font.lfFaceName); } } if (PLAY (API) && FR->device_end) FR->device_end (API); return (API->err); } libwmf-0.2.13/src/player.h000066400000000000000000000176421441723000300153150ustar00rootroot00000000000000/* libwmf ("player.h"): library for wmf conversion Copyright (C) 2000,2001 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFPLAYER_H #define WMFPLAYER_H /* General defs */ typedef struct _wmfL_Coord wmfL_Coord; typedef struct _wmfRegion wmfRegion; typedef struct _wmfObject wmfObject; typedef struct _wmfPlayer_t wmfPlayer_t; typedef struct _wmfRecord wmfRecord; typedef void (*pProcO) (wmfAPI*,wmfRegion*,wmfD_Rect*,wmfD_Rect*,wmfD_Rect*,wmfD_Rect*,float,float); typedef void (*pProcNonO) (wmfAPI*,wmfRegion*,wmfD_Rect*,wmfD_Rect*,float,float); struct _wmfL_Coord { S32 x; S32 y; }; struct _wmfRegion { unsigned int size; unsigned int numRects; U16 type; /* NULL, SIMPLE or COMPLEX */ wmfD_Rect* rects; wmfD_Rect extents; }; struct _wmfObject { int type; union { wmfBrush brush; wmfPen pen; wmfFont font; int palette; wmfRegion rgn; } obj; }; struct _wmfPlayer_t { wmfPen default_pen; wmfBrush default_brush; wmfFont default_font; wmfDC* dc; /* current dc */ int dc_stack_maxlen; int dc_stack_length; wmfDC** dc_stack; wmfObject* objects; wmfRegion visible; /* I don't understand this... what is the purpose of `visible'? */ wmfL_Coord current; /* Current position */ wmfD_Coord D_TL; /* Bounding box from Display perspective */ wmfD_Coord D_BR; wmfD_Coord Viewport_Origin; /* Origin of Viewport */ S32 Viewport_Width; /* Display extents */ S32 Viewport_Height; unsigned char* Parameters; /* meta file parameter values */ unsigned long flags; }; struct _wmfRecord { unsigned long size; unsigned int function; unsigned char* parameter; long position; }; /* In: defaults.h */ static void SetDefaults (wmfAPI*,wmfPen*,wmfBrush*,wmfFont*); /* In: color.h */ static wmfRGB rgb (U16,U16); /* In: coord.h */ static wmfL_Coord L_Coord (U16,U16); static void D_Rect (wmfAPI*,wmfD_Rect*,U16,U16,U16,U16); static void D_Coord_Register (wmfAPI*,wmfD_Coord,float); static void WmfSetMapMode (wmfAPI*,U16 map_mode); static double PixelWidth (wmfAPI*); static double PixelHeight (wmfAPI*); static wmfL_Coord wmf_L_Coord_translate (wmfAPI*,wmfD_Coord); static wmfD_Coord wmf_D_Coord_translate (wmfAPI*,wmfL_Coord); /* In: region.h */ static wmfD_Rect* rgn_memchk (wmfAPI*,wmfRegion*); static unsigned int REGION_Coalesce (wmfRegion *pReg,unsigned int prevStart,unsigned int curStart); static void REGION_RegionOp (wmfAPI*,wmfRegion*,wmfRegion*,wmfRegion*,pProcO,pProcNonO,pProcNonO); static void REGION_SetExtents (wmfRegion*); static void REGION_CopyRegion (wmfAPI*,wmfRegion*,wmfRegion*); static void REGION_UnionRegion (wmfAPI*,wmfRegion*,wmfRegion*,wmfRegion*); static void REGION_UnionO (wmfAPI*,wmfRegion*,wmfD_Rect*,wmfD_Rect*,wmfD_Rect*,wmfD_Rect*,float,float); static void REGION_UnionNonO (wmfAPI*,wmfRegion*,wmfD_Rect*,wmfD_Rect*,float,float); static void REGION_SubtractRegion (wmfAPI*,wmfRegion*,wmfRegion*,wmfRegion*); static void REGION_SubtractO (wmfAPI*,wmfRegion*,wmfD_Rect*,wmfD_Rect*,wmfD_Rect*,wmfD_Rect*,float,float); static void REGION_SubtractNonO1 (wmfAPI*,wmfRegion*,wmfD_Rect*,wmfD_Rect*,float,float); static void REGION_IntersectRegion (wmfAPI*,wmfRegion*,wmfRegion*,wmfRegion*); static void REGION_IntersectO (wmfAPI*,wmfRegion*,wmfD_Rect*,wmfD_Rect*,wmfD_Rect*,wmfD_Rect*,float,float); static void WmfSetRectRgn (wmfRegion*,wmfD_Rect*); static void WmfCombineRgn (wmfAPI*,wmfRegion*,wmfRegion*,wmfRegion*,U16); static void rect_merge (wmfAPI*,wmfRegion*,wmfD_Rect*,float,float); /* In: clip.h */ static void Clipping (wmfAPI*,wmfRegion*,wmfRegion*,wmfD_Rect*,U16); /* In: dc.h */ static wmfDC* dc_copy (wmfAPI*,wmfDC*); static void dc_stack_push (wmfAPI*,wmfDC*); static wmfDC* dc_stack_pop (wmfAPI*); static void dc_stack_free (wmfAPI*); /* In: record.h */ static U16 ParU16 (wmfAPI*,wmfRecord*,unsigned long); static S16 ParS16 (wmfAPI*,wmfRecord*,unsigned long); static S32 ParS32 (wmfAPI*,wmfRecord*,unsigned long); static int PutParU16 (wmfAPI*,wmfRecord*,unsigned long,U16); static wmfRecord OffsetRecord (wmfAPI*,wmfRecord*,unsigned long); /* In: meta.h */ static int meta_mapmode (wmfAPI*,wmfRecord*); static int meta_orgext (wmfAPI*,wmfRecord*); static int meta_scale (wmfAPI*,wmfRecord*); static int meta_moveto (wmfAPI*,wmfRecord*); static int meta_flood (wmfAPI*,wmfRecord*); static int meta_pixel (wmfAPI*,wmfRecord*); static int meta_arc (wmfAPI*,wmfRecord*); static int meta_ellipse (wmfAPI*,wmfRecord*); static int meta_line (wmfAPI*,wmfRecord*); static int meta_lines (wmfAPI*,wmfRecord*); static int meta_polygon (wmfAPI*,wmfRecord*); static int meta_polygons (wmfAPI*,wmfRecord*); static int meta_round (wmfAPI*,wmfRecord*); static int meta_rect (wmfAPI*,wmfRecord*); static int meta_rgn_brush (wmfAPI*,wmfRecord*); static int meta_rgn_paint (wmfAPI*,wmfRecord*); static int meta_rgn_create (wmfAPI*,wmfRecord*); static int meta_clip_select (wmfAPI*,wmfRecord*); static int meta_clip_offset (wmfAPI*,wmfRecord*); static int meta_clip_combine (wmfAPI*,wmfRecord*); static int meta_dib_draw (wmfAPI*,wmfRecord*); static int meta_dib_brush (wmfAPI*,wmfRecord*); static int meta_rop_draw (wmfAPI*,wmfRecord*); static int meta_dc_set (wmfAPI*,wmfRecord*); static int meta_dc_color (wmfAPI*,wmfRecord*,wmfAttributes*); static int meta_dc_select (wmfAPI*,wmfRecord*); static int meta_dc_save (wmfAPI*,wmfRecord*); static int meta_dc_restore (wmfAPI*,wmfRecord*); static int meta_text (wmfAPI*,wmfRecord*); static int meta_pen_create (wmfAPI*,wmfRecord*,wmfAttributes*); static int meta_brush_create (wmfAPI*,wmfRecord*,wmfAttributes*); static int meta_font_create (wmfAPI*,wmfRecord*); static int meta_palette_create (wmfAPI*); static int meta_delete (wmfAPI*,wmfRecord*); static int meta_unused (wmfAPI*,wmfRecord*); static void polypoly_construct (wmfAPI*,wmfPolyPoly_t*,wmfPolyLine_t*,U16); static void diagnose_object (wmfAPI*,unsigned int,wmfObject*); /* In: player.c */ static wmf_error_t WmfPlayMetaFile (wmfAPI*); static U16 ParU16 (wmfAPI*,wmfRecord*,unsigned long); static S16 ParS16 (wmfAPI*,wmfRecord*,unsigned long); static S32 ParS32 (wmfAPI*,wmfRecord*,unsigned long); static wmfRecord OffsetRecord (wmfAPI*,wmfRecord*,unsigned long); #define PLAYER_SCANNED (1 << 0) #define PLAYER_PLAY (1 << 1) #define PLAYER_TLBR_D_SET (1 << 2) #define SCAN(API) ((((wmfPlayer_t*)((API)->player_data))->flags & PLAYER_PLAY) == 0) #define PLAY(API) (((wmfPlayer_t*)((API)->player_data))->flags & PLAYER_PLAY) #define PLACEABLE(API) ((API)->File->placeable) #define DPI(API) ((API)->File->pmh->Inch) #define NUM_OBJECTS(API) ((API)->File->wmfheader->NumOfObjects) #define MAX_REC_SIZE(API) ((API)->File->wmfheader->MaxRecordSize) #define FILE_SIZE(API) ((API)->File->wmfheader->FileSize) #define WMF_BBOX_LEFT(API) ((API)->File->pmh->Left ) #define WMF_BBOX_TOP(API) ((API)->File->pmh->Top ) #define WMF_BBOX_RIGHT(API) ((API)->File->pmh->Right ) #define WMF_BBOX_BOTTOM(API) ((API)->File->pmh->Bottom) #define POINT_TO_INCH(X) ((double) (X) / (double) 72 ) #define INCH_TO_POINT(X) ((double) (X) * (double) 72 ) #define MM_TO_INCH(X) ((double) (X) / (double) 25.4) #define SCAN_DIAGNOSTIC(API,MESG) if (SCAN ((API)) && DIAG ((API))) fputs (MESG,stderr); #endif /* ! WMFPLAYER_H */ libwmf-0.2.13/src/player/000077500000000000000000000000001441723000300151325ustar00rootroot00000000000000libwmf-0.2.13/src/player/clip.h000066400000000000000000000042201441723000300162300ustar00rootroot00000000000000/* libwmf ("player/clip.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFPLAYER_CLIP_H #define WMFPLAYER_CLIP_H static void Clipping (wmfAPI* API,wmfRegion* clip,wmfRegion* vis,wmfD_Rect* rect,U16 flags) { wmfRegion rgn; rgn.rects = 0; if (clip->numRects == 0) { if (clip->rects) { rgn.rects = clip->rects; rgn.size = clip->size; clip->rects = 0; clip->size = 0; } } if (rgn.rects == 0) { rgn.rects = (wmfD_Rect*) wmf_malloc (API,8 * sizeof (wmfD_Rect)); rgn.size = 8; if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } } WmfSetRectRgn (&rgn,rect); if ((clip->numRects == 0) && (flags & CLIP_INTERSECT)) { (*clip) = rgn; return; } /* else if (flags & CLIP_EXCLUDE) ... */ if (clip->numRects == 0) { if (clip->rects == 0) { clip->rects = (wmfD_Rect*) wmf_malloc (API,8 * sizeof (wmfD_Rect)); clip->size = 8; if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } } WmfSetRectRgn (clip,0); WmfCombineRgn (API,clip,vis,0,RGN_COPY); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } } WmfCombineRgn (API,&rgn,clip,&rgn,(U16)((flags & CLIP_EXCLUDE) ? RGN_DIFF : RGN_AND)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } (*clip) = rgn; /* What about what *was* in clip ?? Check WmfCombineRgn */ } #endif /* ! WMFPLAYER_CLIP_H */ libwmf-0.2.13/src/player/color.h000066400000000000000000000305501441723000300164240ustar00rootroot00000000000000/* libwmf ("player/color.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFPLAYER_COLOR_H #define WMFPLAYER_COLOR_H /* These are the colors defined in the SVG standard (I haven't checked the final recommendation for changes) */ wmfRGB wmf_aliceblue = { 240, 248, 255 }; wmfRGB wmf_antiquewhite = { 250, 235, 215 }; wmfRGB wmf_aqua = { 0, 255, 255 }; wmfRGB wmf_aquamarine = { 127, 255, 212 }; wmfRGB wmf_azure = { 240, 255, 255 }; wmfRGB wmf_beige = { 245, 245, 220 }; wmfRGB wmf_bisque = { 255, 228, 196 }; wmfRGB wmf_black = { 0, 0, 0 }; wmfRGB wmf_blanchedalmond = { 255, 235, 205 }; wmfRGB wmf_blue = { 0, 0, 255 }; wmfRGB wmf_blueviolet = { 138, 43, 226 }; wmfRGB wmf_brown = { 165, 42, 42 }; wmfRGB wmf_burlywood = { 222, 184, 135 }; wmfRGB wmf_cadetblue = { 95, 158, 160 }; wmfRGB wmf_chartreuse = { 127, 255, 0 }; wmfRGB wmf_chocolate = { 210, 105, 30 }; wmfRGB wmf_coral = { 255, 127, 80 }; wmfRGB wmf_cornflowerblue = { 100, 149, 237 }; wmfRGB wmf_cornsilk = { 255, 248, 220 }; wmfRGB wmf_crimson = { 220, 20, 60 }; wmfRGB wmf_cyan = { 0, 255, 255 }; wmfRGB wmf_darkblue = { 0, 0, 139 }; wmfRGB wmf_darkcyan = { 0, 139, 139 }; wmfRGB wmf_darkgoldenrod = { 184, 134, 11 }; wmfRGB wmf_darkgray = { 169, 169, 169 }; wmfRGB wmf_darkgreen = { 0, 100, 0 }; wmfRGB wmf_darkgrey = { 169, 169, 169 }; wmfRGB wmf_darkkhaki = { 189, 183, 107 }; wmfRGB wmf_darkmagenta = { 139, 0, 139 }; wmfRGB wmf_darkolivegreen = { 85, 107, 47 }; wmfRGB wmf_darkorange = { 255, 140, 0 }; wmfRGB wmf_darkorchid = { 153, 50, 204 }; wmfRGB wmf_darkred = { 139, 0, 0 }; wmfRGB wmf_darksalmon = { 233, 150, 122 }; wmfRGB wmf_darkseagreen = { 143, 188, 143 }; wmfRGB wmf_darkslateblue = { 72, 61, 139 }; wmfRGB wmf_darkslategray = { 47, 79, 79 }; wmfRGB wmf_darkslategrey = { 47, 79, 79 }; wmfRGB wmf_darkturquoise = { 0, 206, 209 }; wmfRGB wmf_darkviolet = { 148, 0, 211 }; wmfRGB wmf_deeppink = { 255, 20, 147 }; wmfRGB wmf_deepskyblue = { 0, 191, 255 }; wmfRGB wmf_dimgray = { 105, 105, 105 }; wmfRGB wmf_dimgrey = { 105, 105, 105 }; wmfRGB wmf_dodgerblue = { 30, 144, 255 }; wmfRGB wmf_firebrick = { 178, 34, 34 }; wmfRGB wmf_floralwhite = { 255, 250, 240 }; wmfRGB wmf_forestgreen = { 34, 139, 34 }; wmfRGB wmf_fuchsia = { 255, 0, 255 }; wmfRGB wmf_gainsboro = { 220, 220, 220 }; wmfRGB wmf_ghostwhite = { 248, 248, 255 }; wmfRGB wmf_gold = { 255, 215, 0 }; wmfRGB wmf_goldenrod = { 218, 165, 32 }; wmfRGB wmf_gray = { 128, 128, 128 }; wmfRGB wmf_grey = { 128, 128, 128 }; wmfRGB wmf_green = { 0, 128, 0 }; wmfRGB wmf_greenyellow = { 173, 255, 47 }; wmfRGB wmf_honeydew = { 240, 255, 240 }; wmfRGB wmf_hotpink = { 255, 105, 180 }; wmfRGB wmf_indianred = { 205, 92, 92 }; wmfRGB wmf_indigo = { 75, 0, 130 }; wmfRGB wmf_ivory = { 255, 255, 240 }; wmfRGB wmf_khaki = { 240, 230, 140 }; wmfRGB wmf_lavender = { 230, 230, 250 }; wmfRGB wmf_lavenderblush = { 255, 240, 245 }; wmfRGB wmf_lawngreen = { 124, 252, 0 }; wmfRGB wmf_lemonchiffon = { 255, 250, 205 }; wmfRGB wmf_lightblue = { 173, 216, 230 }; wmfRGB wmf_lightcoral = { 240, 128, 128 }; wmfRGB wmf_lightcyan = { 224, 255, 255 }; wmfRGB wmf_lightgoldenrodyellow = { 250, 250, 210 }; wmfRGB wmf_lightgray = { 211, 211, 211 }; wmfRGB wmf_lightgreen = { 144, 238, 144 }; wmfRGB wmf_lightgrey = { 211, 211, 211 }; wmfRGB wmf_lightpink = { 255, 182, 193 }; wmfRGB wmf_lightsalmon = { 255, 160, 122 }; wmfRGB wmf_lightseagreen = { 32, 178, 170 }; wmfRGB wmf_lightskyblue = { 135, 206, 250 }; wmfRGB wmf_lightslategray = { 119, 136, 153 }; wmfRGB wmf_lightslategrey = { 119, 136, 153 }; wmfRGB wmf_lightsteelblue = { 176, 196, 222 }; wmfRGB wmf_lightyellow = { 255, 255, 224 }; wmfRGB wmf_lime = { 0, 255, 0 }; wmfRGB wmf_limegreen = { 50, 205, 50 }; wmfRGB wmf_linen = { 250, 240, 230 }; wmfRGB wmf_magenta = { 255, 0, 255 }; wmfRGB wmf_maroon = { 128, 0, 0 }; wmfRGB wmf_mediumaquamarine = { 102, 205, 170 }; wmfRGB wmf_mediumblue = { 0, 0, 205 }; wmfRGB wmf_mediumorchid = { 186, 85, 211 }; wmfRGB wmf_mediumpurple = { 147, 112, 219 }; wmfRGB wmf_mediumseagreen = { 60, 179, 113 }; wmfRGB wmf_mediumslateblue = { 123, 104, 238 }; wmfRGB wmf_mediumspringgreen = { 0, 250, 154 }; wmfRGB wmf_mediumturquoise = { 72, 209, 204 }; wmfRGB wmf_mediumvioletred = { 199, 21, 133 }; wmfRGB wmf_midnightblue = { 25, 25, 112 }; wmfRGB wmf_mintcream = { 245, 255, 250 }; wmfRGB wmf_mistyrose = { 255, 228, 225 }; wmfRGB wmf_moccasin = { 255, 228, 181 }; wmfRGB wmf_navajowhite = { 255, 222, 173 }; wmfRGB wmf_navy = { 0, 0, 128 }; wmfRGB wmf_oldlace = { 253, 245, 230 }; wmfRGB wmf_olive = { 128, 128, 0 }; wmfRGB wmf_olivedrab = { 107, 142, 35 }; wmfRGB wmf_orange = { 255, 165, 0 }; wmfRGB wmf_orangered = { 255, 69, 0 }; wmfRGB wmf_orchid = { 218, 112, 214 }; wmfRGB wmf_palegoldenrod = { 238, 232, 170 }; wmfRGB wmf_palegreen = { 152, 251, 152 }; wmfRGB wmf_paleturquoise = { 175, 238, 238 }; wmfRGB wmf_palevioletred = { 219, 112, 147 }; wmfRGB wmf_papayawhip = { 255, 239, 213 }; wmfRGB wmf_peachpuff = { 255, 218, 185 }; wmfRGB wmf_peru = { 205, 133, 63 }; wmfRGB wmf_pink = { 255, 192, 203 }; wmfRGB wmf_plum = { 221, 160, 221 }; wmfRGB wmf_powderblue = { 176, 224, 230 }; wmfRGB wmf_purple = { 128, 0, 128 }; wmfRGB wmf_red = { 255, 0, 0 }; wmfRGB wmf_rosybrown = { 188, 143, 143 }; wmfRGB wmf_royalblue = { 65, 105, 225 }; wmfRGB wmf_saddlebrown = { 139, 69, 19 }; wmfRGB wmf_salmon = { 250, 128, 114 }; wmfRGB wmf_sandybrown = { 244, 164, 96 }; wmfRGB wmf_seagreen = { 46, 139, 87 }; wmfRGB wmf_seashell = { 255, 245, 238 }; wmfRGB wmf_sienna = { 160, 82, 45 }; wmfRGB wmf_silver = { 192, 192, 192 }; wmfRGB wmf_skyblue = { 135, 206, 235 }; wmfRGB wmf_slateblue = { 106, 90, 205 }; wmfRGB wmf_slategray = { 112, 128, 144 }; wmfRGB wmf_slategrey = { 112, 128, 144 }; wmfRGB wmf_snow = { 255, 250, 250 }; wmfRGB wmf_springgreen = { 0, 255, 127 }; wmfRGB wmf_steelblue = { 70, 130, 180 }; wmfRGB wmf_tan = { 210, 180, 140 }; wmfRGB wmf_teal = { 0, 128, 128 }; wmfRGB wmf_thistle = { 216, 191, 216 }; wmfRGB wmf_tomato = { 255, 99, 71 }; wmfRGB wmf_turquoise = { 64, 224, 208 }; wmfRGB wmf_violet = { 238, 130, 238 }; wmfRGB wmf_wheat = { 245, 222, 179 }; wmfRGB wmf_white = { 255, 255, 255 }; wmfRGB wmf_whitesmoke = { 245, 245, 245 }; wmfRGB wmf_yellow = { 255, 255, 0 }; wmfRGB wmf_yellowgreen = { 154, 205, 50 }; /* Color table */ /** * Initialize internal color table * * @param API the API handle */ void wmf_ipa_color_init (wmfAPI* API) { wmfColorData* color; API->color_data = wmf_malloc (API,sizeof (wmfColorData)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } color = (wmfColorData*) API->color_data; color->max = 32; color->count = 0; color->rgb = (wmfRGB*) wmf_malloc (API,color->max * sizeof (wmfRGB)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } color->rgb[0] = wmf_red; /* not a real entry; don't increment count... */ } /** * Add a color to the internal table. * * @param API the API handle * @param rgb pointer to the color to be added */ void wmf_ipa_color_add (wmfAPI* API,wmfRGB* rgb) { wmfRGB* more = 0; wmfColorData* color = (wmfColorData*) API->color_data; unsigned long i; int new_color = 1; for (i = 0; i < color->count; i++) { if ( (rgb->r == color->rgb[i].r) && (rgb->g == color->rgb[i].g) && (rgb->b == color->rgb[i].b)) { new_color = 0; break; } } if (!new_color) return; if (color->count == color->max) { more = wmf_realloc (API,color->rgb,(color->max + 32) * sizeof (wmfRGB)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } color->rgb = more; color->max += 32; } color->rgb[color->count] = (*rgb); color->count++; } /** * Find closest matching color in internal table and return its index. * * @param API the API handle * @param rgb pointer to the color to be matched * * @return Returns the index of the closest matching color. */ unsigned long wmf_ipa_color_index (wmfAPI* API,wmfRGB* rgb) { wmfColorData* color = (wmfColorData*) API->color_data; unsigned long i; unsigned long best = 0; unsigned int dbest = 766; unsigned int di; unsigned int dr; unsigned int dg; unsigned int db; if (color->count == 0) { if (API->flags & WMF_OPT_IGNORE_NONFATAL) { WMF_DEBUG (API,"Color table has no entries!"); } else { WMF_ERROR (API,"Color table has no entries!"); API->err = wmf_E_Glitch; } return (best); /* This should dereference safely to red. */ } /* First check for an exact match... */ for (i = 0; i < color->count; i++) { if ((rgb->r == color->rgb[i].r) && (rgb->g == color->rgb[i].g) && (rgb->b == color->rgb[i].b)) { best = i; dbest = 0; break; } } if (dbest == 0) return (best); /* Otherwise return best match; I'm going to use minimax rather than r.m.s. */ for (i = 0; i < color->count; i++) { dr = (unsigned int) ABS (((int) (rgb->r)) - ((int) (color->rgb[i].r))); dg = (unsigned int) ABS (((int) (rgb->g)) - ((int) (color->rgb[i].g))); db = (unsigned int) ABS (((int) (rgb->b)) - ((int) (color->rgb[i].b))); di = MAX (dr,dg); di = MAX (di,db); if (di < dbest) { best = i; dbest = di; } } return (best); } /** * Get the number of indexed colors. * * @param API the API handle * * @return Returns the number of indexed colors. */ unsigned long wmf_ipa_color_count (wmfAPI* API) { wmfColorData* color = (wmfColorData*) API->color_data; return (color->count); } /** * Get indexed color. * * @param API the API handle * @param index the index of the color * * @return Returns pointer to the indexed color. */ wmfRGB* wmf_ipa_color (wmfAPI* API,unsigned long index) { wmfColorData* color = (wmfColorData*) API->color_data; if (index >= color->count) { WMF_ERROR (API,"Glitch! Color index out of range!"); API->err = wmf_E_Glitch; return (&wmf_red); } return (color->rgb + index); } static wmfRGB rgb (U16 one,U16 two) { wmfRGB color; color.r = (unsigned char) (one & 0x00FF); color.g = (unsigned char) ((one & 0xFF00) >> 8); color.b = (unsigned char) (two & 0x00FF); return (color); } /** * The color white. * * @param API the API handle * * @return Returns \b wmf_white. */ wmfRGB wmf_rgb_white (void) { return (wmf_white); } /** * The color black. * * @param API the API handle * * @return Returns \b wmf_black. */ wmfRGB wmf_rgb_black (void) { return (wmf_black); } /** * Create a color with specified fractions of red, green and blue. * * @param API the API handle * @param red fraction (0 to 1 inclusive) of color red * @param green fraction (0 to 1 inclusive) of color green * @param blue fraction (0 to 1 inclusive) of color blue * * \b wmf_rgb_color (API,1,1,1) returns \b wmf_white. * * \b wmf_rgb_color (API,0,0,0) returns \b wmf_black. * * @return Returns the color. */ wmfRGB wmf_rgb_color (wmfAPI* API,float red,float green,float blue) { (void)API; wmfRGB color; int i_red; int i_green; int i_blue; if (red > 1) red = 1; if (green > 1) green = 1; if (blue > 1) blue = 1; if (red < 0) red = 0; if (green < 0) green = 0; if (blue < 0) blue = 0; i_red = (int) (red * (float) 256); i_green = (int) (green * (float) 256); i_blue = (int) (blue * (float) 256); if (i_red > 255) i_red = 255; if (i_green > 255) i_green = 255; if (i_blue > 255) i_blue = 255; if (i_red < 0) i_red = 0; if (i_green < 0) i_green = 0; if (i_blue < 0) i_blue = 0; color.r = (unsigned char) i_red; color.g = (unsigned char) i_green; color.b = (unsigned char) i_blue; return (color); } #endif /* ! WMFPLAYER_COLOR_H */ libwmf-0.2.13/src/player/coord.h000066400000000000000000000171031441723000300164130ustar00rootroot00000000000000/* libwmf ("player/coord.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* File to be included from player/player.c */ #ifndef WMFPLAYER_COORD_H #define WMFPLAYER_COORD_H /** * Set the device origin coordinate. * * @param API the API handle * @param d_pt origin in device coordinates * * Not really recommended. */ void wmf_set_viewport_origin (wmfAPI* API,wmfD_Coord d_pt) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; P->Viewport_Origin = d_pt; } static wmfL_Coord L_Coord (U16 u16_x,U16 u16_y) { wmfL_Coord l_pt; l_pt.x = U16_2_S32 (u16_x); l_pt.y = U16_2_S32 (u16_y); return (l_pt); } static void D_Rect (wmfAPI* API,wmfD_Rect* d_r,U16 u16_x1,U16 u16_y1,U16 u16_x2,U16 u16_y2) { wmfL_Coord l_pt_1; wmfL_Coord l_pt_2; wmfD_Coord d_pt_1; wmfD_Coord d_pt_2; l_pt_1.x = U16_2_S32 (u16_x1); l_pt_1.y = U16_2_S32 (u16_y1); l_pt_2.x = U16_2_S32 (u16_x2); l_pt_2.y = U16_2_S32 (u16_y2); d_pt_1 = wmf_D_Coord_translate (API,l_pt_1); d_pt_2 = wmf_D_Coord_translate (API,l_pt_2); if (d_pt_1.x <= d_pt_2.x) { d_r->TL.x = d_pt_1.x; d_r->BR.x = d_pt_2.x; } else { d_r->TL.x = d_pt_2.x; d_r->BR.x = d_pt_1.x; } if (d_pt_1.y <= d_pt_2.y) { d_r->TL.y = d_pt_1.y; d_r->BR.y = d_pt_2.y; } else { d_r->TL.y = d_pt_2.y; d_r->BR.y = d_pt_1.y; } } static void D_Coord_Register (wmfAPI* API,wmfD_Coord d_pt,float scope) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; if ((P->flags & PLAYER_TLBR_D_SET) == 0) { P->D_TL = d_pt; P->D_BR = d_pt; P->flags |= PLAYER_TLBR_D_SET; } scope = ABS (scope); if (P->D_TL.x > (d_pt.x - scope)) P->D_TL.x = d_pt.x - scope; if (P->D_TL.y > (d_pt.y - scope)) P->D_TL.y = d_pt.y - scope; if (P->D_BR.x < (d_pt.x + scope)) P->D_BR.x = d_pt.x + scope; if (P->D_BR.y < (d_pt.y + scope)) P->D_BR.y = d_pt.y + scope; } static wmfL_Coord wmf_L_Coord_translate (wmfAPI* API,wmfD_Coord d_pt) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfL_Coord l_pt; d_pt.x += P->Viewport_Origin.x; d_pt.y += P->Viewport_Origin.y; l_pt.x = (float) ((double) d_pt.x / PixelWidth (API)); l_pt.y = (float) ((double) d_pt.y / PixelHeight (API)); l_pt.x += P->dc->Window.Ox; l_pt.y += P->dc->Window.Oy; return (l_pt); } static wmfD_Coord wmf_D_Coord_translate (wmfAPI* API,wmfL_Coord l_pt) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfD_Coord d_pt; l_pt.x -= P->dc->Window.Ox; l_pt.y -= P->dc->Window.Oy; d_pt.x = (float) ((double) l_pt.x * PixelWidth (API)); d_pt.y = (float) ((double) l_pt.y * PixelHeight (API)); d_pt.x -= P->Viewport_Origin.x; d_pt.y -= P->Viewport_Origin.y; return (d_pt); } static void WmfSetMapMode (wmfAPI* API,U16 map_mode) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; switch (map_mode) { case (MM_TEXT): /* each unit is 1pt */ WMF_DEBUG (API,"map_mode: MM_TEXT"); P->dc->pixel_width = 1; P->dc->pixel_height = 1; break; case (MM_LOMETRIC): /* each unit is 0.1mm */ WMF_DEBUG (API,"map_mode: MM_LOMETRIC"); P->dc->pixel_width = INCH_TO_POINT (MM_TO_INCH (0.1)); P->dc->pixel_height = INCH_TO_POINT (MM_TO_INCH (0.1)); break; case (MM_HIMETRIC): /* each unit is 0.01mm */ WMF_DEBUG (API,"map_mode: MM_HIMETRIC"); P->dc->pixel_width = INCH_TO_POINT (MM_TO_INCH (0.01)); P->dc->pixel_height = INCH_TO_POINT (MM_TO_INCH (0.01)); break; case (MM_LOENGLISH): /* each unit is 0.01 inch */ WMF_DEBUG (API,"map_mode: MM_LOENGLISH"); P->dc->pixel_width = INCH_TO_POINT (0.01); P->dc->pixel_height = INCH_TO_POINT (0.01); break; case (MM_HIENGLISH): /* each unit is 0.001 inch */ WMF_DEBUG (API,"map_mode: MM_HIENGLISH"); P->dc->pixel_width = INCH_TO_POINT (0.001); P->dc->pixel_height = INCH_TO_POINT (0.001); break; case (MM_TWIPS): /* each unit is 1/1440 inch */ WMF_DEBUG (API,"map_mode: MM_TWIPS"); P->dc->pixel_width = 0.05; P->dc->pixel_height = 0.05; break; case (MM_ISOTROPIC): case (MM_ANISOTROPIC): WMF_DEBUG (API,"map_mode: MM_[AN]ISOTROPIC"); /* scale here depends on window & viewport extents */ PixelWidth (API); PixelHeight (API); break; default: if (PLACEABLE (API)) { WMF_DEBUG (API,"map_mode: MM_DPI (placeable)"); P->dc->pixel_width = INCH_TO_POINT ((double) 1 / (double) DPI (API)); P->dc->pixel_height = INCH_TO_POINT ((double) 1 / (double) DPI (API)); map_mode = MM_DPI; /* [fjf] added this - uncertainly */ } else { WMF_ERROR (API,"unexpected mapping mode!"); API->err = wmf_E_BadFormat; } break; } P->dc->map_mode = map_mode; } static double PixelWidth (wmfAPI* API) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; switch (P->dc->map_mode) { case (MM_ISOTROPIC): /* scale here depends on window & viewport extents */ case (MM_ANISOTROPIC): if (P->dc->Window.width == 0) { WMF_ERROR (API,"PixelWidth: window has bad size!"); API->err = wmf_E_BadFormat; break; } if (P->Viewport_Width == 0) { WMF_ERROR (API,"PixelWidth: viewport has bad size!"); API->err = wmf_E_BadFormat; break; } P->dc->pixel_width = (double) P->Viewport_Width / (double) P->dc->Window.width; break; case (MM_TEXT): /* each unit is 1pt */ case (MM_LOMETRIC): /* each unit is 0.1mm */ case (MM_HIMETRIC): /* each unit is 0.01mm */ case (MM_LOENGLISH): /* each unit is 0.01 inch */ case (MM_HIENGLISH): /* each unit is 0.001 inch */ case (MM_TWIPS): /* each unit is 1/1440 inch */ case (MM_DPI): /* isotropic; placeable meta file */ if (P->dc->Window.width < 0) return -P->dc->pixel_width; break; default: if (!ERR (API)) { WMF_ERROR (API,"unexpected mapping mode!"); API->err = wmf_E_Glitch; } break; } if (ERR (API)) return (1); return (P->dc->pixel_width); } static double PixelHeight (wmfAPI* API) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; switch (P->dc->map_mode) { case (MM_ISOTROPIC): /* scale here depends on window & viewport extents */ case (MM_ANISOTROPIC): if (P->dc->Window.height == 0) { WMF_ERROR (API,"PixelHeight: window has bad size!"); API->err = wmf_E_BadFormat; break; } if (P->Viewport_Height == 0) { WMF_ERROR (API,"PixelHeight: viewport has bad size!"); API->err = wmf_E_BadFormat; break; } P->dc->pixel_height = (double) P->Viewport_Height / (double) P->dc->Window.height; break; case (MM_TEXT): /* each unit is 1pt */ case (MM_LOMETRIC): /* each unit is 0.1mm */ case (MM_HIMETRIC): /* each unit is 0.01mm */ case (MM_LOENGLISH): /* each unit is 0.01 inch */ case (MM_HIENGLISH): /* each unit is 0.001 inch */ case (MM_TWIPS): /* each unit is 1/1440 inch */ case (MM_DPI): /* isotropic; placeable meta file */ if (P->dc->Window.height < 0) return -P->dc->pixel_height; break; default: if (!ERR (API)) { WMF_ERROR (API,"unexpected mapping mode!"); API->err = wmf_E_Glitch; } break; } if (ERR (API)) return (1); return (P->dc->pixel_height); } #endif /* ! WMFPLAYER_COORD_H */ libwmf-0.2.13/src/player/dc.h000066400000000000000000000107611441723000300156760ustar00rootroot00000000000000/* libwmf ("player/dc.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFPLAYER_DC_H #define WMFPLAYER_DC_H static wmfDC* dc_copy (wmfAPI* API,wmfDC* dc) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfDC* dc_new = 0; wmfRegion* clip; wmfRegion* clip_new; wmfUserData_t userdata; dc_new = (wmfDC*) wmf_malloc (API,sizeof (wmfDC)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (0); } dc_new->clip = wmf_malloc (API,sizeof (wmfRegion)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); wmf_free (API,dc_new); return (0); } clip_new = (wmfRegion*) dc_new->clip; clip_new->numRects = 0; clip_new->size = 8; clip_new->rects = (wmfD_Rect*) wmf_malloc (API,clip_new->size * sizeof (wmfD_Rect)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); wmf_free (API,dc_new->clip); wmf_free (API,dc_new); return (0); } WMF_DC_SET_BACKGROUND (dc_new,&wmf_white); WMF_DC_SET_TEXTCOLOR (dc_new,&wmf_black); WMF_DC_SET_OPAQUE (dc_new); WMF_DC_SET_POLYFILL (dc_new,ALTERNATE); WMF_DC_SET_ROP (dc_new,R2_COPYPEN); WMF_DC_SET_TEXTALIGN (dc_new,TA_LEFT); WMF_DC_SET_CHAREXTRA (dc_new,0); WMF_DC_SET_BREAKEXTRA (dc_new,0); if (dc) { WMF_DC_SET_BRUSH (dc_new,dc->brush); WMF_DC_SET_PEN (dc_new,dc->pen ); WMF_DC_SET_FONT (dc_new,dc->font ); clip = (wmfRegion*) dc->clip; REGION_CopyRegion (API,clip_new,clip); dc_new->Window.Ox = dc->Window.Ox; dc_new->Window.Oy = dc->Window.Oy; dc_new->Window.width = dc->Window.width; dc_new->Window.height = dc->Window.height; dc_new->pixel_width = dc->pixel_width; dc_new->pixel_height = dc->pixel_height; dc_new->map_mode = dc->map_mode; userdata.dc = P->dc; userdata.data = P->dc->userdata; if (PLAY (API) && FR->udata_copy) FR->udata_copy (API,&userdata); dc_new->userdata = userdata.data; } else { SetDefaults (API,&(P->default_pen),&(P->default_brush),&(P->default_font)); WMF_DC_SET_BRUSH (dc_new,&(P->default_brush)); WMF_DC_SET_PEN (dc_new,&(P->default_pen )); WMF_DC_SET_FONT (dc_new,&(P->default_font )); dc_new->Window.Ox = 0; dc_new->Window.Oy = 0; dc_new->Window.width = 1024; dc_new->Window.height = 1024; dc_new->pixel_width = 1; dc_new->pixel_height = 1; dc_new->map_mode = MM_TEXT; userdata.dc = dc_new; userdata.data = 0; if (PLAY (API) && FR->udata_init) FR->udata_init (API,&userdata); dc_new->userdata = userdata.data; } return (dc_new); } static void dc_stack_push (wmfAPI* API,wmfDC* dc) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfDC** more = 0; if (ERR (API)) return; if (dc == 0) { API->err = wmf_E_Glitch; return; } if (P->dc_stack == 0) { P->dc_stack = (wmfDC**) wmf_malloc (API,8 * sizeof (wmfDC*)); if (ERR (API)) return; P->dc_stack_maxlen = 8; } if (P->dc_stack_length == P->dc_stack_maxlen) { more = (wmfDC**) wmf_realloc (API,P->dc_stack,(P->dc_stack_maxlen + 8) * sizeof (wmfDC*)); if (ERR (API)) return; P->dc_stack = more; P->dc_stack_maxlen += 8; } P->dc_stack[P->dc_stack_length] = dc; P->dc_stack_length++; } static wmfDC* dc_stack_pop (wmfAPI* API) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; if (ERR (API)) return (0); if (P->dc_stack_length == 0) { API->err = wmf_E_Glitch; return (0); } P->dc_stack_length--; return (P->dc_stack[P->dc_stack_length]); } static void dc_stack_free (wmfAPI* API) { wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; while (P->dc_stack_length) { P->dc_stack_length--; wmf_free (API,P->dc_stack[P->dc_stack_length]); } wmf_free (API,P->dc_stack); P->dc_stack = 0; P->dc_stack_maxlen = 0; } #endif /* ! WMFPLAYER_DC_H */ libwmf-0.2.13/src/player/defaults.h000066400000000000000000000042461441723000300171200ustar00rootroot00000000000000/* libwmf ("player/defaults.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFPLAYER_DEFAULTS_H #define WMFPLAYER_DEFAULTS_H static void SetDefaults (wmfAPI* API,wmfPen* pen,wmfBrush* brush,wmfFont* font) { wmfFontData* FD = (wmfFontData*) API->font_data; wmfBMP bmp; WMF_PEN_SET_COLOR (pen,&wmf_black); WMF_PEN_SET_WIDTH (pen,1); WMF_PEN_SET_HEIGHT (pen,1); WMF_PEN_SET_STYLE (pen,PS_SOLID); WMF_PEN_SET_ENDCAP (pen,PS_ENDCAP_ROUND); WMF_PEN_SET_JOIN (pen,PS_JOIN_ROUND); WMF_PEN_SET_TYPE (pen,PS_COSMETIC); bmp.width = 0; bmp.height = 0; bmp.data = 0; WMF_BRUSH_SET_COLOR (brush,&wmf_black); WMF_BRUSH_SET_STYLE (brush,BS_NULL); WMF_BRUSH_SET_HATCH (brush,HS_HORIZONTAL); WMF_BRUSH_SET_BITMAP (brush,&bmp); WMF_FONT_SET_HEIGHT (font,12); WMF_FONT_SET_WIDTH (font,12); WMF_FONT_SET_ESCAPEMENT (font, 0); WMF_FONT_SET_ORIENTATION (font, 0); WMF_FONT_SET_WEIGHT (font, 0); WMF_FONT_SET_ITALIC (font, 0); WMF_TEXT_SET_UNDERLINE (font, 0); WMF_TEXT_SET_STRIKEOUT (font, 0); WMF_FONT_SET_CHARSET (font, 0); WMF_FONT_SET_OUT (font, 0); WMF_FONT_SET_CLIP (font, 0); WMF_FONT_SET_QUALITY (font, 0); WMF_FONT_SET_PITCH (font, 0); WMF_FONT_SET_NAME (font,wmf_strdup (API,"Times")); font->user_data = 0; FD->map (API,font); } #endif /* ! WMFPLAYER_DEFAULTS_H */ libwmf-0.2.13/src/player/meta.h000066400000000000000000002403371441723000300162420ustar00rootroot00000000000000/* libwmf ("player/meta.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFPLAYER_META_H #define WMFPLAYER_META_H static int meta_mapmode (wmfAPI* API,wmfRecord* Record) { int changed = 0; U16 par_U16; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 0",Record->size); } par_U16 = ParU16 (API,Record,0); WmfSetMapMode (API,par_U16); return (changed); } static int meta_orgext (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; S32 par_S32_x; S32 par_S32_y; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 1",Record->size); } par_S32_x = ParS32 (API,Record,1); par_S32_y = ParS32 (API,Record,0); switch (Record->function) { case META_SETWINDOWORG: P->dc->Window.Ox = par_S32_x; P->dc->Window.Oy = par_S32_y; break; case META_SETVIEWPORTORG: P->Viewport_Origin.x = (float) ((double) par_S32_x * P->dc->pixel_width ); P->Viewport_Origin.y = (float) ((double) par_S32_y * P->dc->pixel_height); break; case META_SETVIEWPORTEXT: P->Viewport_Width = par_S32_x; P->Viewport_Height = par_S32_y; PixelWidth (API); PixelHeight (API); /* Recalculate pixel size */ break; case META_SETWINDOWEXT: P->dc->Window.width = par_S32_x; P->dc->Window.height = par_S32_y; PixelWidth (API); PixelHeight (API); /* Recalculate pixel size */ break; case META_OFFSETWINDOWORG: P->dc->Window.Ox += par_S32_x; P->dc->Window.Oy += par_S32_y; break; case META_OFFSETVIEWPORTORG: P->Viewport_Origin.x += (float) ((double) par_S32_x * P->dc->pixel_width ); P->Viewport_Origin.y += (float) ((double) par_S32_y * P->dc->pixel_height); break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } return (changed); } static int meta_scale (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; S32 par_S32_x1; S32 par_S32_x2; S32 par_S32_y1; S32 par_S32_y2; double x1; double x2; double y1; double y2; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 3",Record->size); } par_S32_x2 = ParS32 (API,Record,3); par_S32_x1 = ParS32 (API,Record,2); par_S32_y2 = ParS32 (API,Record,1); par_S32_y1 = ParS32 (API,Record,0); if ((par_S32_x1 == 0) || (par_S32_y1 == 0)) { WMF_ERROR (API,"meta file attempts division by zero!"); API->err = wmf_E_BadFormat; return (changed); } x2 = (double) par_S32_x2; x1 = (double) par_S32_x1; y2 = (double) par_S32_y2; y1 = (double) par_S32_y1; switch (Record->function) { case META_SCALEWINDOWEXT: P->dc->Window.width = (S32) (((double) P->dc->Window.width * x2) / x1); P->dc->Window.height = (S32) (((double) P->dc->Window.height * y2) / y1); break; case META_SCALEVIEWPORTEXT: P->Viewport_Width = (S32) (((double) P->Viewport_Width * x2) / x1); P->Viewport_Height = (S32) (((double) P->Viewport_Height * y2) / y1); break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } PixelWidth (API); PixelHeight (API); /* Recalculate pixel size */ return (changed); } static int meta_moveto (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; U16 par_U16_x; U16 par_U16_y; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 1",Record->size); } par_U16_x = ParU16 (API,Record,1); par_U16_y = ParU16 (API,Record,0); P->current = L_Coord (par_U16_x,par_U16_y); return (changed); } static int meta_flood (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfL_Coord l_pt; wmfFlood_t flood; U16 par_U16_x; U16 par_U16_y; U16 par_U16_rg; U16 par_U16_b; U16 par_U16_t; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 4",Record->size); } par_U16_x = ParU16 (API,Record,4); par_U16_y = ParU16 (API,Record,3); par_U16_b = ParU16 (API,Record,2); par_U16_rg = ParU16 (API,Record,1); par_U16_t = ParU16 (API,Record,0); l_pt = L_Coord (par_U16_x,par_U16_y); flood.pt = wmf_D_Coord_translate (API,l_pt); flood.color = rgb (par_U16_rg,par_U16_b); if (SCAN (API)) { wmf_ipa_color_add (API,&(flood.color)); D_Coord_Register (API,flood.pt,0); return (changed); } flood.dc = P->dc; flood.type = par_U16_t; flood.pixel_width = ABS (P->dc->pixel_width ); flood.pixel_height = ABS (P->dc->pixel_height); switch (Record->function) { case META_FLOODFILL: if (FR->flood_interior) FR->flood_interior (API,&flood); break; case META_EXTFLOODFILL: if (FR->flood_exterior) FR->flood_exterior (API,&flood); break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } return (changed); } static int meta_pixel (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfL_Coord l_pt; wmfDrawPixel_t drawpixel; U16 par_U16_x; U16 par_U16_y; U16 par_U16_rg; U16 par_U16_b; float scope; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 3",Record->size); } par_U16_x = ParU16 (API,Record,3); par_U16_y = ParU16 (API,Record,2); par_U16_b = ParU16 (API,Record,1); par_U16_rg = ParU16 (API,Record,0); l_pt = L_Coord (par_U16_x,par_U16_y); drawpixel.pt = wmf_D_Coord_translate (API,l_pt); drawpixel.color = rgb (par_U16_rg,par_U16_b); drawpixel.pixel_width = ABS (P->dc->pixel_width ); drawpixel.pixel_height = ABS (P->dc->pixel_height); if (SCAN (API)) { wmf_ipa_color_add (API,&(drawpixel.color)); scope = (float) MAX (drawpixel.pixel_width,drawpixel.pixel_height); D_Coord_Register (API,drawpixel.pt,scope); return (changed); } drawpixel.dc = P->dc; if (FR->draw_pixel) FR->draw_pixel (API,&drawpixel); return (changed); } static int meta_arc (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfL_Coord l_pt; wmfD_Coord d_pt; wmfD_Coord c_pt; wmfDrawArc_t drawarc; wmfPen* pen = 0; U16 par_U16_x; U16 par_U16_y; U16 end_x; U16 end_y; char Qs; char Qe; float scope = 0; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 7",Record->size); } par_U16_x = ParU16 (API,Record,7); par_U16_y = ParU16 (API,Record,6); l_pt = L_Coord (par_U16_x,par_U16_y); drawarc.TL = wmf_D_Coord_translate (API,l_pt); par_U16_x = ParU16 (API,Record,5); par_U16_y = ParU16 (API,Record,4); l_pt = L_Coord (par_U16_x,par_U16_y); drawarc.BR = wmf_D_Coord_translate (API,l_pt); par_U16_x = ParU16 (API,Record,3); par_U16_y = ParU16 (API,Record,2); l_pt = L_Coord (par_U16_x,par_U16_y); drawarc.end = wmf_D_Coord_translate (API,l_pt); end_x = par_U16_x; end_y = par_U16_y; par_U16_x = ParU16 (API,Record,1); par_U16_y = ParU16 (API,Record,0); if ((end_x == par_U16_x) && (end_y == par_U16_y)) { /* start == end: This is probably an ellipse... TODO */ } l_pt = L_Coord (par_U16_x,par_U16_y); drawarc.start = wmf_D_Coord_translate (API,l_pt); if (SCAN (API)) { pen = WMF_DC_PEN (P->dc); scope = (float) (MAX (WMF_PEN_WIDTH (pen),WMF_PEN_HEIGHT (pen))) / 2; D_Coord_Register (API,drawarc.end,scope); D_Coord_Register (API,drawarc.start,scope); } c_pt.x = (drawarc.TL.x + drawarc.BR.x) / 2; /* ellipse origin */ c_pt.y = (drawarc.TL.y + drawarc.BR.y) / 2; drawarc.start.x -= c_pt.x; drawarc.start.y -= c_pt.y; drawarc.end.x -= c_pt.x; drawarc.end.y -= c_pt.y; if (SCAN (API)) { if ((drawarc.start.x > 0) && (drawarc.start.y >= 0)) Qs = '1'; else if ((drawarc.start.x <= 0) && (drawarc.start.y > 0)) Qs = '2'; else if ((drawarc.start.x < 0) && (drawarc.start.y <= 0)) Qs = '3'; else Qs = '4'; if ((drawarc.end.x > 0) && (drawarc.end.y >= 0)) Qe = '1'; else if ((drawarc.end.x <= 0) && (drawarc.end.y > 0)) Qe = '2'; else if ((drawarc.end.x < 0) && (drawarc.end.y <= 0)) Qe = '3'; else Qe = '4'; switch (Qs) { case '1': switch (Qe) { case '1': if ( (drawarc.end.x < drawarc.start.x) || (drawarc.end.y < drawarc.start.y)) break; d_pt.x = drawarc.BR.x; d_pt.y = c_pt.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ case '4': d_pt.x = c_pt.x; d_pt.y = drawarc.BR.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ case '3': d_pt.x = drawarc.TL.x; d_pt.y = c_pt.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ default: case '2': d_pt.x = c_pt.x; d_pt.y = drawarc.TL.y; D_Coord_Register (API,d_pt,scope); break; } break; case '2': switch (Qe) { case '2': if ( (drawarc.end.x < drawarc.start.x) || (drawarc.end.y > drawarc.start.y)) break; d_pt.x = c_pt.x; d_pt.y = drawarc.TL.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ case '1': d_pt.x = drawarc.BR.x; d_pt.y = c_pt.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ case '4': d_pt.x = c_pt.x; d_pt.y = drawarc.BR.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ default: case '3': d_pt.x = drawarc.TL.x; d_pt.y = c_pt.y; D_Coord_Register (API,d_pt,scope); break; } break; case '3': switch (Qe) { case '3': if ( (drawarc.end.x > drawarc.start.x) || (drawarc.end.y > drawarc.start.y)) break; d_pt.x = drawarc.TL.x; d_pt.y = c_pt.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ case '2': d_pt.x = c_pt.x; d_pt.y = drawarc.TL.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ case '1': d_pt.x = drawarc.BR.x; d_pt.y = c_pt.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ default: case '4': d_pt.x = c_pt.x; d_pt.y = drawarc.BR.y; D_Coord_Register (API,d_pt,scope); break; } break; case '4': default: switch (Qe) { case '4': if ( (drawarc.end.x > drawarc.start.x) || (drawarc.end.y < drawarc.start.y)) break; d_pt.x = c_pt.x; d_pt.y = drawarc.BR.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ case '3': d_pt.x = drawarc.TL.x; d_pt.y = c_pt.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ case '2': d_pt.x = c_pt.x; d_pt.y = drawarc.TL.y; D_Coord_Register (API,d_pt,scope); /* fallthrough */ default: case '1': d_pt.x = drawarc.BR.x; d_pt.y = c_pt.y; D_Coord_Register (API,d_pt,scope); break; } break; } return (changed); } d_pt.x = (drawarc.BR.x - drawarc.TL.x) / 2; /* elliptic axes */ d_pt.y = (drawarc.BR.y - drawarc.TL.y) / 2; if ((drawarc.start.x == 0) && (drawarc.start.y == 0)) drawarc.start.x = d_pt.x; if (drawarc.start.x > d_pt.x ) drawarc.start.x = d_pt.x; if (drawarc.start.x < (-d_pt.x)) drawarc.start.x = - d_pt.x; if (drawarc.start.y > d_pt.y ) drawarc.start.y = d_pt.y; if (drawarc.start.y < (-d_pt.y)) drawarc.start.y = - d_pt.y; if ((drawarc.end.x == 0) && (drawarc.end.y == 0)) drawarc.end.x = d_pt.x; if (drawarc.end.x > d_pt.x ) drawarc.end.x = d_pt.x; if (drawarc.end.x < (-d_pt.x)) drawarc.end.x = - d_pt.x; if (drawarc.end.y > d_pt.y ) drawarc.end.y = d_pt.y; if (drawarc.end.y < (-d_pt.y)) drawarc.end.y = - d_pt.y; drawarc.dc = P->dc; switch (Record->function) { case META_PIE: if (FR->draw_pie) FR->draw_pie (API,&drawarc); break; case META_CHORD: if (FR->draw_chord) FR->draw_chord (API,&drawarc); break; case META_ARC: if (FR->draw_arc) FR->draw_arc (API,&drawarc); break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } return (changed); } static int meta_ellipse (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfL_Coord l_pt; wmfDrawArc_t drawarc; wmfPen* pen = 0; U16 par_U16_x; U16 par_U16_y; float scope; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 3",Record->size); } par_U16_x = ParU16 (API,Record,3); par_U16_y = ParU16 (API,Record,2); l_pt = L_Coord (par_U16_x,par_U16_y); drawarc.TL = wmf_D_Coord_translate (API,l_pt); par_U16_x = ParU16 (API,Record,1); par_U16_y = ParU16 (API,Record,0); l_pt = L_Coord (par_U16_x,par_U16_y); drawarc.BR = wmf_D_Coord_translate (API,l_pt); if (SCAN (API)) { pen = WMF_DC_PEN (P->dc); scope = (float) (MAX (WMF_PEN_WIDTH (pen),WMF_PEN_HEIGHT (pen))) / 2; D_Coord_Register (API,drawarc.TL,scope); D_Coord_Register (API,drawarc.BR,scope); return (changed); } drawarc.dc = P->dc; if (FR->draw_ellipse) FR->draw_ellipse (API,&drawarc); return (changed); } static int meta_line (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfL_Coord l_pt; wmfDrawLine_t drawline; wmfPen* pen = 0; U16 par_U16_x; U16 par_U16_y; float scope; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 1",Record->size); } drawline.from = wmf_D_Coord_translate (API,P->current); par_U16_x = ParU16 (API,Record,1); par_U16_y = ParU16 (API,Record,0); l_pt = L_Coord (par_U16_x,par_U16_y); drawline.to = wmf_D_Coord_translate (API,l_pt); P->current = l_pt; if (SCAN (API)) { pen = WMF_DC_PEN (P->dc); scope = (float) (MAX (WMF_PEN_WIDTH (pen),WMF_PEN_HEIGHT (pen))) / 2; D_Coord_Register (API,drawline.from,scope); D_Coord_Register (API,drawline.to,scope); return (changed); } drawline.dc = P->dc; if (FR->draw_line) FR->draw_line (API,&drawline); return (changed); } static int meta_lines (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfL_Coord l_pt; wmfD_Coord d_pt; wmfPolyLine_t polyline; wmfPen* pen = 0; U16 par_U16_x; U16 par_U16_y; U16 i; unsigned long index; float scope; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 0",Record->size); } polyline.count = ParU16 (API,Record,0); if (SCAN (API) && DIAG (API)) { fprintf (stderr,",%lu",(unsigned long) (2 * polyline.count)); } if (SCAN (API)) { pen = WMF_DC_PEN (P->dc); scope = (float) (MAX (WMF_PEN_WIDTH (pen),WMF_PEN_HEIGHT (pen))) / 2; index = 1; for (i = 0; i < polyline.count; i++) { par_U16_x = ParU16 (API,Record,index); index++; par_U16_y = ParU16 (API,Record,index); index++; l_pt = L_Coord (par_U16_x,par_U16_y); d_pt = wmf_D_Coord_translate (API,l_pt); D_Coord_Register (API,d_pt,scope); } return (changed); } polyline.pt = (wmfD_Coord*) wmf_malloc (API,polyline.count * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } index = 1; for (i = 0; i < polyline.count; i++) { par_U16_x = ParU16 (API,Record,index); index++; par_U16_y = ParU16 (API,Record,index); index++; l_pt = L_Coord (par_U16_x,par_U16_y); polyline.pt[i] = wmf_D_Coord_translate (API,l_pt); } polyline.dc = P->dc; if (FR->poly_line) FR->poly_line (API,&polyline); wmf_free (API,polyline.pt); return (changed); } static int meta_polygon (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfL_Coord l_pt; wmfD_Coord d_pt; wmfPolyLine_t polyline; wmfPen* pen = 0; U16 par_U16_x; U16 par_U16_y; U16 i; unsigned long index; float scope; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 0",Record->size); } polyline.count = ParU16 (API,Record,0); if (SCAN (API) && DIAG (API)) { fprintf (stderr,",%lu",(unsigned long) (2 * polyline.count)); } if (SCAN (API)) { pen = WMF_DC_PEN (P->dc); scope = (float) (MAX (WMF_PEN_WIDTH (pen),WMF_PEN_HEIGHT (pen))) / 2; index = 1; for (i = 0; i < polyline.count; i++) { par_U16_x = ParU16 (API,Record,index); index++; par_U16_y = ParU16 (API,Record,index); index++; l_pt = L_Coord (par_U16_x,par_U16_y); d_pt = wmf_D_Coord_translate (API,l_pt); D_Coord_Register (API,d_pt,scope); } return (changed); } polyline.pt = (wmfD_Coord*) wmf_malloc (API,polyline.count * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } index = 1; for (i = 0; i < polyline.count; i++) { par_U16_x = ParU16 (API,Record,index); index++; par_U16_y = ParU16 (API,Record,index); index++; l_pt = L_Coord (par_U16_x,par_U16_y); polyline.pt[i] = wmf_D_Coord_translate (API,l_pt); } polyline.dc = P->dc; if (FR->draw_polygon) FR->draw_polygon (API,&polyline); wmf_free (API,polyline.pt); return (changed); } static int meta_polygons (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfL_Coord l_pt; wmfD_Coord d_pt; wmfPolyLine_t polyline; wmfPolyPoly_t polypoly; wmfRecord Polygon; wmfPen* pen = 0; U16 par_U16_x; U16 par_U16_y; U16 num_pars; U16 count; U16 style; U16 i; U16 j; unsigned long index; float scope; int skip_record; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 0",Record->size); } polypoly.npoly = ParU16 (API,Record,0); if (polypoly.npoly == 0) return (changed); if (SCAN (API) && DIAG (API)) { fprintf (stderr,",%lu",(unsigned long) polypoly.npoly); } polypoly.pt = (wmfD_Coord**) wmf_malloc (API, polypoly.npoly * sizeof (wmfD_Coord*)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polypoly.count = (U16*) wmf_malloc (API, polypoly.npoly * sizeof (U16)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } count = 0; num_pars = 0; skip_record = 0; for (i = 0; i < polypoly.npoly; i++) { polypoly.count[i] = ParU16 (API,Record,(unsigned long) (1 + i)); count += polypoly.count[i] + 2; /* for polypoly->polyline fill constructor */ num_pars += polypoly.count[i]; if ((polypoly.count[i] < 3) && (skip_record == 0)) { WMF_DEBUG (API,"strange polygon in polypolygon list; skipping record..."); skip_record = 1; } if (skip_record) { polypoly.pt[i] = 0; } else { polypoly.pt[i] = (wmfD_Coord*) wmf_malloc (API, polypoly.count[i] * sizeof (wmfD_Coord)); if (ERR (API)) break; } } if (skip_record) { for (i = 0; i < polypoly.npoly; i++) { if (polypoly.pt[i]) wmf_free (API, polypoly.pt[i]); } wmf_free (API, polypoly.pt); wmf_free (API, polypoly.count); return (changed); } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } if (SCAN (API) && DIAG (API)) { fprintf (stderr,",%lu",(unsigned long) (polypoly.npoly + 2 * num_pars)); } if (SCAN (API)) { pen = WMF_DC_PEN (P->dc); scope = (float) (MAX (WMF_PEN_WIDTH (pen),WMF_PEN_HEIGHT (pen))) / 2; index = 1 + polypoly.npoly; for (i = 0; i < num_pars; i++) { par_U16_x = ParU16 (API,Record,index); index++; par_U16_y = ParU16 (API,Record,index); index++; l_pt = L_Coord (par_U16_x,par_U16_y); d_pt = wmf_D_Coord_translate (API,l_pt); D_Coord_Register (API,d_pt,scope); } return (changed); } polypoly.dc = P->dc; Polygon = OffsetRecord (API,Record,(unsigned long) (1 + polypoly.npoly)); for (i = 0; i < polypoly.npoly; i++) { polyline.count = polypoly.count[i]; index = 0; for (j = 0; j < polyline.count; j++) { par_U16_x = ParU16 (API,&Polygon,index); index++; par_U16_y = ParU16 (API,&Polygon,index); index++; l_pt = L_Coord (par_U16_x,par_U16_y); polypoly.pt[i][j] = wmf_D_Coord_translate (API,l_pt); } Polygon = OffsetRecord (API,&Polygon,index); } if (FR->draw_polypolygon) { FR->draw_polypolygon (API,&polypoly); } else if (FR->draw_polygon) { if (TO_FILL (&polypoly)) { style = polypoly.dc->pen->lopnStyle; /* [TODO: use macros ??] */ polypoly.dc->pen->lopnStyle = PS_NULL; polyline.dc = polypoly.dc; polyline.pt = (wmfD_Coord*) wmf_malloc (API, count * sizeof (wmfD_Coord)); polyline.count = 0; if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polypoly_construct (API, &polypoly, &polyline, 0); if (polyline.count > 2) FR->draw_polygon (API,&polyline); wmf_free (API, polyline.pt); polypoly.dc->pen->lopnStyle = style; } if (TO_DRAW (&polypoly)) { style = polypoly.dc->brush->lbStyle; /* [TODO: use macros ??] */ polypoly.dc->brush->lbStyle = BS_NULL; for (i = 0; i < polypoly.npoly; i++) { polyline.dc = polypoly.dc; polyline.pt = polypoly.pt[i]; polyline.count = polypoly.count[i]; if ((polyline.count > 2) && polyline.pt) { FR->draw_polygon (API,&polyline); } } polypoly.dc->brush->lbStyle = style; } } for (i = 0; i < polypoly.npoly; i++) { if (polypoly.pt[i]) wmf_free (API, polypoly.pt[i]); } wmf_free (API, polypoly.pt); wmf_free (API, polypoly.count); return (changed); } static void polypoly_construct (wmfAPI* API,wmfPolyPoly_t* polypoly,wmfPolyLine_t* polyline,U16 ipoly) { U16 count = polypoly->count[ipoly]; U16 i; U16 imin; U16 last; double x2; double y2; double r2; double r2_min = 0; if ((polyline->pt == 0) || (polypoly->pt == 0)) return; /* erk!! */ if ((polypoly->pt[ipoly] == 0) || (polypoly->count[ipoly] < 3)) return; while ((polypoly->pt[ipoly][0].x == polypoly->pt[ipoly][count-1].x) && (polypoly->pt[ipoly][0].y == polypoly->pt[ipoly][count-1].y)) { count--; if (count < 3) break; } if (count < 3) return; last = 0; if (ipoly < (polypoly->npoly - 1)) { if ((polypoly->pt[ipoly+1] == 0) || (polypoly->count[ipoly+1] < 3)) { last = 1; /* erk!! */ } } else { last = 1; /* last poly, yay! */ } if (last) { for (i = 0; i < count; i++) { polyline->pt[polyline->count].x = polypoly->pt[ipoly][i].x; polyline->pt[polyline->count].y = polypoly->pt[ipoly][i].y; polyline->count++; } polyline->pt[polyline->count].x = polypoly->pt[ipoly][0].x; polyline->pt[polyline->count].y = polypoly->pt[ipoly][0].y; polyline->count++; return; } /* find polygon point closest to point 0 in next polygon [TODO: improve this??] */ imin = 0; for (i = 0; i < count; i++) { x2 = (double) polypoly->pt[ipoly][i].x - (double) polypoly->pt[ipoly+1][0].x; x2 *= x2; y2 = (double) polypoly->pt[ipoly][i].y - (double) polypoly->pt[ipoly+1][0].y; y2 *= y2; r2 = x2 + y2; if (i == 0) { r2_min = r2; } else if (r2 < r2_min) { r2_min = r2; imin = i; } } for (i = 0; i <= imin; i++) { polyline->pt[polyline->count].x = polypoly->pt[ipoly][i].x; polyline->pt[polyline->count].y = polypoly->pt[ipoly][i].y; polyline->count++; } polypoly_construct (API, polypoly, polyline, (U16)(ipoly + 1)); for (i = imin; i < count; i++) { polyline->pt[polyline->count].x = polypoly->pt[ipoly][i].x; polyline->pt[polyline->count].y = polypoly->pt[ipoly][i].y; polyline->count++; } polyline->pt[polyline->count].x = polypoly->pt[ipoly][0].x; polyline->pt[polyline->count].y = polypoly->pt[ipoly][0].y; polyline->count++; } static int meta_round (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfL_Coord l_pt; wmfDrawRectangle_t drawrect; wmfPen* pen = 0; U16 par_U16_x; U16 par_U16_y; float scope; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 5",Record->size); } par_U16_x = ParU16 (API,Record,5); par_U16_y = ParU16 (API,Record,4); l_pt = L_Coord (par_U16_x,par_U16_y); drawrect.TL = wmf_D_Coord_translate (API,l_pt); par_U16_x = ParU16 (API,Record,3); par_U16_y = ParU16 (API,Record,2); l_pt = L_Coord (par_U16_x,par_U16_y); drawrect.BR = wmf_D_Coord_translate (API,l_pt); if (SCAN (API)) { pen = WMF_DC_PEN (P->dc); scope = (float) (MAX (WMF_PEN_WIDTH (pen),WMF_PEN_HEIGHT (pen))) / 2; D_Coord_Register (API,drawrect.TL,scope); D_Coord_Register (API,drawrect.BR,scope); return (changed); } par_U16_x = ParU16 (API,Record,1); par_U16_y = ParU16 (API,Record,0); drawrect.width = (float) ((double) par_U16_x * ABS (P->dc->pixel_width )); drawrect.height = (float) ((double) par_U16_y * ABS (P->dc->pixel_height)); drawrect.dc = P->dc; if (FR->draw_rectangle) FR->draw_rectangle (API,&drawrect); return (changed); } static int meta_rect (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfL_Coord l_pt; wmfDrawRectangle_t drawrect; wmfPen* pen = 0; U16 par_U16_x; U16 par_U16_y; float scope; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 3",Record->size); } par_U16_x = ParU16 (API,Record,3); par_U16_y = ParU16 (API,Record,2); l_pt = L_Coord (par_U16_x,par_U16_y); drawrect.TL = wmf_D_Coord_translate (API,l_pt); par_U16_x = ParU16 (API,Record,1); par_U16_y = ParU16 (API,Record,0); l_pt = L_Coord (par_U16_x,par_U16_y); drawrect.BR = wmf_D_Coord_translate (API,l_pt); if (SCAN (API)) { pen = WMF_DC_PEN (P->dc); scope = (float) (MAX (WMF_PEN_WIDTH (pen),WMF_PEN_HEIGHT (pen))) / 2; D_Coord_Register (API,drawrect.TL,scope); D_Coord_Register (API,drawrect.BR,scope); return (changed); } drawrect.width = 0; drawrect.height = 0; drawrect.dc = P->dc; if (FR->draw_rectangle) FR->draw_rectangle (API,&drawrect); return (changed); } static int meta_rgn_brush (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfObject* objects; wmfObject* obj_region; wmfObject* obj_brush; wmfRegion* region; wmfRegion* clip; wmfBrush* brush; wmfBrush* temp_brush; wmfD_Coord d_pt; wmfPolyRectangle_t polyrect; U16 oid_region; U16 oid_brush; U16 par_U16_x; U16 par_U16_y; unsigned int i; unsigned long max_index; float width; float height; objects = P->objects; if (Record->function == META_FRAMEREGION) { max_index = 3; } else { max_index = 1; } if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = %lu",Record->size,max_index); } oid_region = ParU16 (API,Record,0); oid_brush = ParU16 (API,Record,1); if ((oid_region >= NUM_OBJECTS (API)) || (oid_brush >= NUM_OBJECTS (API))) { WMF_ERROR (API,"Object out of range!"); API->err = wmf_E_BadFormat; return (changed); } obj_region = objects + oid_region; obj_brush = objects + oid_brush; if (SCAN (API) && DIAG (API)) { diagnose_object (API,(unsigned int) oid_region,obj_region); diagnose_object (API,(unsigned int) oid_brush, obj_brush ); } if ((obj_region->type != OBJ_REGION) || (obj_brush->type != OBJ_BRUSH)) { WMF_ERROR (API,"libwmf: have lost track of the objects in this metafile"); WMF_ERROR (API," please send it to us at http://www.wvware.com/"); API->err = wmf_E_Glitch; return (changed); } region = &(obj_region->obj.rgn); brush = &(obj_brush->obj.brush); if (Record->function == META_FRAMEREGION) { par_U16_x = ParU16 (API,Record,3); par_U16_y = ParU16 (API,Record,2); width = (float) ((double) par_U16_x * ABS (P->dc->pixel_width )); height = (float) ((double) par_U16_y * ABS (P->dc->pixel_height)); } else { width = 0; height = 0; } if (SCAN (API)) { d_pt = region->extents.TL; d_pt.x -= width; d_pt.y -= height; D_Coord_Register (API,d_pt,0); d_pt = region->extents.BR; d_pt.x += width; d_pt.y += height; D_Coord_Register (API,d_pt,0); return (changed); } polyrect.dc = P->dc; polyrect.TL = 0; polyrect.BR = 0; polyrect.count = 0; polyrect.width = 0; polyrect.height = 0; if (FR->region_clip) FR->region_clip (API,&polyrect); /* i.e., none */ clip = (wmfRegion*) P->dc->clip; polyrect.count = MAX (clip->numRects,region->numRects + 1); polyrect.TL = (wmfD_Coord*) wmf_malloc (API,polyrect.count * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polyrect.BR = (wmfD_Coord*) wmf_malloc (API,polyrect.count * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polyrect.count = region->numRects; for (i = 0; i < polyrect.count; i++) { polyrect.TL[i] = region->rects[i].TL; polyrect.BR[i] = region->rects[i].BR; } i = polyrect.count; polyrect.TL[i] = region->extents.TL; polyrect.BR[i] = region->extents.BR; polyrect.width = width; polyrect.height = height; switch (Record->function) { case META_FRAMEREGION: if (FR->region_frame) { temp_brush = WMF_DC_BRUSH (polyrect.dc); /* ultimately redundant ?? */ WMF_DC_SET_BRUSH (polyrect.dc,brush); FR->region_frame (API,&polyrect); WMF_DC_SET_BRUSH (polyrect.dc,temp_brush); /* ultimately redundant ?? */ } break; case META_FILLREGION: if (FR->region_paint) { temp_brush = WMF_DC_BRUSH (polyrect.dc); /* ultimately redundant ?? */ WMF_DC_SET_BRUSH (polyrect.dc,brush); FR->region_paint (API,&polyrect); WMF_DC_SET_BRUSH (polyrect.dc,temp_brush); /* ultimately redundant ?? */ } break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } polyrect.count = clip->numRects; for (i = 0; i < polyrect.count; i++) { polyrect.TL[i] = clip->rects[i].TL; polyrect.BR[i] = clip->rects[i].BR; } polyrect.width = 0; polyrect.height = 0; if (FR->region_clip) FR->region_clip (API,&polyrect); wmf_free (API,polyrect.TL); wmf_free (API,polyrect.BR); return (changed); } static int meta_rgn_paint (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfObject* objects; wmfObject* obj_region; wmfRegion* region; wmfRegion* clip; wmfD_Coord d_pt; wmfPolyRectangle_t polyrect; U16 oid_region; U16 temp_rop; unsigned int i; objects = P->objects; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 0",Record->size); } oid_region = ParU16 (API,Record,0); if (oid_region >= NUM_OBJECTS (API)) { WMF_ERROR (API,"Object out of range!"); API->err = wmf_E_BadFormat; return (changed); } obj_region = objects + oid_region; if (SCAN (API) && DIAG (API)) { diagnose_object (API,(unsigned int) oid_region,obj_region); } if (obj_region->type != OBJ_REGION) { WMF_ERROR (API,"libwmf: have lost track of the objects in this metafile"); WMF_ERROR (API," please send it to us at http://www.wvware.com/"); API->err = wmf_E_Glitch; return (changed); } region = &(obj_region->obj.rgn); if (SCAN (API)) { d_pt = region->extents.TL; D_Coord_Register (API,d_pt,0); d_pt = region->extents.BR; D_Coord_Register (API,d_pt,0); return (changed); } polyrect.dc = P->dc; polyrect.TL = 0; polyrect.BR = 0; polyrect.count = 0; polyrect.width = 0; polyrect.height = 0; if (FR->region_clip) FR->region_clip (API,&polyrect); /* i.e., none */ clip = (wmfRegion*) P->dc->clip; polyrect.count = MAX (clip->numRects,region->numRects + 1); polyrect.TL = (wmfD_Coord*) wmf_malloc (API,polyrect.count * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polyrect.BR = (wmfD_Coord*) wmf_malloc (API,polyrect.count * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polyrect.count = region->numRects; for (i = 0; i < polyrect.count; i++) { polyrect.TL[i] = region->rects[i].TL; polyrect.BR[i] = region->rects[i].BR; } i = polyrect.count; polyrect.TL[i] = region->extents.TL; polyrect.BR[i] = region->extents.BR; switch (Record->function) { case META_INVERTREGION: if (FR->region_paint) { temp_rop = WMF_DC_ROP (polyrect.dc); /* ultimately redundant ?? */ WMF_DC_SET_ROP (polyrect.dc,R2_NOT); FR->region_paint (API,&polyrect); WMF_DC_SET_ROP (polyrect.dc,temp_rop); /* ultimately redundant ?? */ } break; case META_PAINTREGION: if (FR->region_paint) FR->region_paint (API,&polyrect); break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } polyrect.count = clip->numRects; for (i = 0; i < polyrect.count; i++) { polyrect.TL[i] = clip->rects[i].TL; polyrect.BR[i] = clip->rects[i].BR; } if (FR->region_clip) FR->region_clip (API,&polyrect); wmf_free (API,polyrect.TL); wmf_free (API,polyrect.BR); return (changed); } static int meta_rgn_create (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfRecord start; wmfRecord end; wmfObject* objects; wmfObject* obj_region; wmfRegion* region; wmfRegion temp_region; wmfD_Rect d_r; U16 i; U16 oid_region; U16 x1; U16 x2; U16 y1; U16 y2; U16 band; U16 num_band; U16 num_pair; U16 count; unsigned long max_index; objects = P->objects; i = 0; while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; if (i == NUM_OBJECTS (API)) { WMF_ERROR (API,"Object out of range!"); API->err = wmf_E_BadFormat; return (changed); } oid_region = i; obj_region = objects + oid_region; obj_region->type = OBJ_REGION; region = &(obj_region->obj.rgn); region->rects = (wmfD_Rect*) wmf_malloc (API,8 * sizeof (wmfD_Rect)); region->size = 8; if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } WmfSetRectRgn (region,0); if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; index 0-4,6-10 skipped; max. index = 5",Record->size); diagnose_object (API,(unsigned int) oid_region,obj_region); } num_band = ParU16 (API,Record,5); if (num_band == 0) return (changed); temp_region.rects = (wmfD_Rect*) wmf_malloc (API,8 * sizeof (wmfD_Rect)); temp_region.size = 8; if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } WmfSetRectRgn (&temp_region,0); end = OffsetRecord (API,Record,10); max_index = 10; for (band = 0; band < num_band; band++) { max_index++; if (SCAN (API) && DIAG (API)) { fprintf (stderr,",%lu",max_index); } start = OffsetRecord (API,&end,1); count = ParU16 (API,&start,0); if (count & 1) { WMF_ERROR (API,"Delimiter not even!"); API->err = wmf_E_BadFormat; break; } num_pair = count >> 1; max_index += count + 3; if (SCAN (API) && DIAG (API)) { fprintf (stderr,",%lu",max_index); } end = OffsetRecord (API,&start,(unsigned long) (count + 3)); if (ParU16 (API,&end,0) != count) { WMF_ERROR (API,"Mismatched delimiters!"); API->err = wmf_E_BadFormat; break; } y1 = ParU16 (API,&start,1); y2 = ParU16 (API,&start,2); for (i = 0; i < num_pair; i++) { x1 = ParU16 (API,&start,(unsigned long) (3 + 2 * i)); x2 = ParU16 (API,&start,(unsigned long) (4 + 2 * i)); D_Rect (API,&d_r,x1,y1,x2,y2); WmfSetRectRgn (&temp_region,&d_r); WmfCombineRgn (API,region,region,&temp_region,RGN_OR); } } wmf_free (API,temp_region.rects); return (changed); } static int meta_clip_select (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfObject* objects; wmfObject* obj_region; wmfRegion* region; wmfRegion* clip; U16 oid_region; objects = P->objects; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 0",Record->size); } oid_region = ParU16 (API,Record,0); if (oid_region >= NUM_OBJECTS (API)) { WMF_ERROR (API,"Object out of range!"); API->err = wmf_E_BadFormat; return (changed); } obj_region = objects + oid_region; if (SCAN (API) && DIAG (API)) { diagnose_object (API,(unsigned int) oid_region,obj_region); } if (obj_region->type != OBJ_REGION) { if (API->flags & WMF_OPT_IGNORE_NONFATAL) { /* Some metafiles use this even though no region-objects have been defined, * so I have some doubt about the correctness of this handler; perhaps * this should reset the clip region to the entire space? * * Anyway, I am making this particular error non-fatal. */ WMF_DEBUG (API,"libwmf: have lost track of the objects in this metafile"); WMF_DEBUG (API," please send it to us at http://www.wvware.com/"); } else { WMF_ERROR (API,"libwmf: have lost track of the objects in this metafile"); WMF_ERROR (API," please send it to us at http://www.wvware.com/"); API->err = wmf_E_Glitch; } return (changed); } region = &(obj_region->obj.rgn); clip = (wmfRegion*) P->dc->clip; WmfCombineRgn (API,clip,region,0,RGN_COPY); return (changed); } static int meta_clip_offset (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfRegion* clip; wmfPolyRectangle_t polyrect; wmfL_Coord l_pt; U16 par_U16_x; U16 par_U16_y; unsigned int i; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 1",Record->size); } clip = (wmfRegion*) P->dc->clip; par_U16_x = ParU16 (API,Record,1); par_U16_y = ParU16 (API,Record,0); l_pt = L_Coord (par_U16_x,par_U16_y); for (i = 0; i < clip->numRects; i++) { clip->rects[i].TL.x += l_pt.x; clip->rects[i].TL.y += l_pt.y; clip->rects[i].BR.x += l_pt.x; clip->rects[i].BR.y += l_pt.y; } clip->extents.TL.x += l_pt.x; clip->extents.TL.y += l_pt.y; clip->extents.BR.x += l_pt.x; clip->extents.BR.y += l_pt.y; if (SCAN (API)) return (changed); polyrect.TL = (wmfD_Coord*) wmf_malloc (API,clip->numRects * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polyrect.BR = (wmfD_Coord*) wmf_malloc (API,clip->numRects * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polyrect.count = clip->numRects; for (i = 0; i < polyrect.count; i++) { polyrect.TL[i] = clip->rects[i].TL; polyrect.BR[i] = clip->rects[i].BR; } polyrect.dc = P->dc; polyrect.width = 0; polyrect.height = 0; if (FR->region_clip) FR->region_clip (API,&polyrect); wmf_free (API,polyrect.TL); wmf_free (API,polyrect.BR); return (changed); } static int meta_clip_combine (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfRegion* visible; wmfRegion* clip; wmfPolyRectangle_t polyrect; wmfD_Rect d_r; U16 x1; U16 x2; U16 y1; U16 y2; unsigned int i; visible = &(P->visible); if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 3",Record->size); } x1 = ParU16 (API,Record,3); y1 = ParU16 (API,Record,2); x2 = ParU16 (API,Record,1); y2 = ParU16 (API,Record,0); D_Rect (API,&d_r,x1,y1,x2,y2); clip = (wmfRegion*) P->dc->clip; switch (Record->function) { case META_EXCLUDECLIPRECT: Clipping (API,clip,visible,&d_r,CLIP_EXCLUDE); break; case META_INTERSECTCLIPRECT: Clipping (API,clip,visible,&d_r,CLIP_INTERSECT); break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } if (SCAN (API)) return (changed); polyrect.TL = (wmfD_Coord*) wmf_malloc (API,clip->numRects * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polyrect.BR = (wmfD_Coord*) wmf_malloc (API,clip->numRects * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polyrect.count = clip->numRects; for (i = 0; i < polyrect.count; i++) { polyrect.TL[i] = clip->rects[i].TL; polyrect.BR[i] = clip->rects[i].BR; } polyrect.dc = P->dc; polyrect.width = 0; polyrect.height = 0; if (FR->region_clip) FR->region_clip (API,&polyrect); wmf_free (API,polyrect.TL); wmf_free (API,polyrect.BR); return (changed); } static int meta_dib_draw (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfRecord bmp_record; wmfBMP_Read_t bmp_read; wmfBMP_Draw_t bmp_draw; wmfL_Coord l_pt_TL; wmfL_Coord l_pt; wmfD_Coord d_pt; U16 par_U16_x = 0; U16 par_U16_y = 0; U16 par_U16_w = 0; U16 par_U16_h = 0; S32 width; S32 height; long pos_current; double stretch_x; double stretch_y; if ((Record->function == META_DIBBITBLT) && ((Record->size) == 9)) /* Special case... */ { changed = meta_rop_draw (API,Record); return (changed); } if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); } switch (Record->function) { case META_SETDIBTODEV: if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t#par=%lu; index 0 skipped; max. index = 8",Record->size); } par_U16_x = ParU16 (API,Record,8); par_U16_y = ParU16 (API,Record,7); par_U16_w = ParU16 (API,Record,6); par_U16_h = ParU16 (API,Record,5); bmp_draw.crop.w = par_U16_w; bmp_draw.crop.h = par_U16_h; bmp_draw.crop.x = ParU16 (API,Record,4); bmp_draw.crop.y = ParU16 (API,Record,3); bmp_read.width = ParU16 (API,Record,2); /* uncertain about this ?? */ bmp_read.height = ParU16 (API,Record,1); bmp_draw.type = SRCCOPY; bmp_record = OffsetRecord (API,Record,9); break; case META_STRETCHDIB: if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t#par=%lu; index 2 skipped; max. index = 10",Record->size); } par_U16_x = ParU16 (API,Record,10); par_U16_y = ParU16 (API,Record,9); par_U16_w = ParU16 (API,Record,8); par_U16_h = ParU16 (API,Record,7); bmp_draw.crop.x = ParU16 (API,Record,6); bmp_draw.crop.y = ParU16 (API,Record,5); bmp_draw.crop.w = ParU16 (API,Record,4); bmp_draw.crop.h = ParU16 (API,Record,3); bmp_read.width = 0; bmp_read.height = 0; bmp_draw.type = (U32) ParU16 (API,Record,0) + (((U32) ParU16 (API,Record,1)) << 16); bmp_record = OffsetRecord (API,Record,11); break; case META_DIBSTRETCHBLT: if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t#par=%lu; max. index = 9",Record->size); } par_U16_x = ParU16 (API,Record,9); par_U16_y = ParU16 (API,Record,8); par_U16_w = ParU16 (API,Record,7); par_U16_h = ParU16 (API,Record,6); bmp_draw.crop.x = ParU16 (API,Record,5); bmp_draw.crop.y = ParU16 (API,Record,4); bmp_draw.crop.w = ParU16 (API,Record,3); bmp_draw.crop.h = ParU16 (API,Record,2); bmp_read.width = 0; bmp_read.height = 0; bmp_draw.type = (U32) ParU16 (API,Record,0) + (((U32) ParU16 (API,Record,1)) << 16); bmp_record = OffsetRecord (API,Record,10); break; case META_DIBBITBLT: WMF_DEBUG (API,"(play) META_DIBBITBLT"); if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t#par=%lu; max. index = 7",Record->size); } par_U16_x = ParU16 (API,Record,7); par_U16_y = ParU16 (API,Record,6); par_U16_w = ParU16 (API,Record,5); par_U16_h = ParU16 (API,Record,4); bmp_draw.crop.x = ParU16 (API,Record,3); bmp_draw.crop.y = ParU16 (API,Record,2); bmp_draw.crop.w = par_U16_w; bmp_draw.crop.h = par_U16_h; bmp_read.width = 0; bmp_read.height = 0; bmp_draw.type = (U32) ParU16 (API,Record,0) + (((U32) ParU16 (API,Record,1)) << 16); bmp_record = OffsetRecord (API,Record,8); break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } if ((par_U16_w == 0) || (par_U16_h == 0) || (bmp_draw.crop.w == 0) || (bmp_draw.crop.h == 0)) { return (changed); } l_pt_TL = L_Coord (par_U16_x,par_U16_y); bmp_draw.pt = wmf_D_Coord_translate (API,l_pt_TL); l_pt = L_Coord (par_U16_w,par_U16_h); width = ABS (l_pt.x); height = ABS (l_pt.y); if (SCAN (API)) { D_Coord_Register (API,bmp_draw.pt,0); l_pt.x = l_pt_TL.x + width; l_pt.y = l_pt_TL.y + height; d_pt = wmf_D_Coord_translate (API,l_pt); D_Coord_Register (API,d_pt,0); return (changed); } pos_current = WMF_TELL (API); if (pos_current < 0) { WMF_ERROR (API,"API's tell() failed on input stream!"); API->err = wmf_E_BadFile; return (changed); } bmp_read.offset = bmp_record.position; bmp_read.buffer = bmp_record.parameter; bmp_read.length = (long) (bmp_record.size) * 2; bmp_read.bmp.data = 0; if (FR->bmp_read) FR->bmp_read (API,&bmp_read); if (ERR (API) || (bmp_read.bmp.data == 0)) { WMF_DEBUG (API,"bailing..."); return (changed); } if (WMF_SEEK (API,pos_current) == (-1)) { WMF_ERROR (API,"API's seek() failed on input stream!"); API->err = wmf_E_BadFile; return (changed); } bmp_draw.dc = P->dc; bmp_draw.bmp = bmp_read.bmp; if (bmp_draw.crop.x >= bmp_read.bmp.width ) bmp_draw.crop.x = 0; if (bmp_draw.crop.y >= bmp_read.bmp.height) bmp_draw.crop.y = 0; if (bmp_draw.crop.x + bmp_draw.crop.w >= bmp_read.bmp.width) { bmp_draw.crop.w = bmp_read.bmp.width - bmp_draw.crop.x; } if (bmp_draw.crop.y + bmp_draw.crop.h >= bmp_read.bmp.height) { bmp_draw.crop.h = bmp_read.bmp.height - bmp_draw.crop.y; } stretch_x = (double) par_U16_w / (double) bmp_draw.crop.w; stretch_y = (double) par_U16_h / (double) bmp_draw.crop.h; bmp_draw.pixel_width = ABS (P->dc->pixel_width ) * stretch_x; bmp_draw.pixel_height = ABS (P->dc->pixel_height) * stretch_y; if (FR->bmp_draw) FR->bmp_draw (API,&bmp_draw); if (FR->bmp_free) FR->bmp_free (API,&(bmp_draw.bmp)); return (changed); } static int meta_dib_brush (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfRecord bmp_record; wmfObject* objects; wmfObject* obj_brush; wmfBrush* brush; wmfBMP_Read_t bmp_read; U16 oid_brush; unsigned int i; long pos_current; objects = P->objects; i = 0; while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; if (i == NUM_OBJECTS (API)) { WMF_ERROR (API,"Object out of range!"); API->err = wmf_E_BadFormat; return (changed); } oid_brush = i; obj_brush = objects + oid_brush; obj_brush->type = OBJ_BRUSH; brush = &(obj_brush->obj.brush); if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = ?",Record->size); diagnose_object (API,(unsigned int) oid_brush,obj_brush); } bmp_record = OffsetRecord (API,Record,2); pos_current = WMF_TELL (API); if (pos_current < 0) { WMF_ERROR (API,"API's tell() failed on input stream!"); API->err = wmf_E_BadFile; return (changed); } bmp_read.offset = bmp_record.position; bmp_read.buffer = bmp_record.parameter; bmp_read.length = (long) (bmp_record.size) * 2; bmp_read.width = 0; bmp_read.height = 0; bmp_read.bmp.width = 0; bmp_read.bmp.height = 0; bmp_read.bmp.data = 0; if (PLAY (API) && FR->bmp_read) FR->bmp_read (API,&bmp_read); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } if (WMF_SEEK (API,pos_current) == (-1)) { WMF_ERROR (API,"API's seek() failed on input stream!"); API->err = wmf_E_BadFile; return (changed); } WMF_BRUSH_SET_STYLE (brush,BS_DIBPATTERN); WMF_BRUSH_SET_COLOR (brush,&wmf_black); WMF_BRUSH_SET_BITMAP (brush,&(bmp_read.bmp)); if (SCAN (API)) wmf_ipa_color_add (API,WMF_BRUSH_COLOR (brush)); WMF_DC_SET_BRUSH (P->dc,brush); return (changed); } static int meta_rop_draw (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfROP_Draw_t rop_draw; wmfL_Coord l_pt_TL; wmfL_Coord l_pt; U16 par_U16_x = 0; U16 par_U16_y = 0; U16 par_U16_w = 0; U16 par_U16_h = 0; S32 width; S32 height; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); } switch (Record->function) { case META_DIBBITBLT: /* META_DIBBITBLT: Special case: Size = 12 */ if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t#par=%lu; index 2-4 skipped; max. index = 8",Record->size); } par_U16_x = ParU16 (API,Record,8); par_U16_y = ParU16 (API,Record,7); par_U16_w = ParU16 (API,Record,6); par_U16_h = ParU16 (API,Record,5); rop_draw.ROP = (U32) ParU16 (API,Record,0) + (((U32) ParU16 (API,Record,1)) << 16); break; case META_PATBLT: if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t#par=%lu; max. index = 5",Record->size); } par_U16_x = ParU16 (API,Record,5); par_U16_y = ParU16 (API,Record,4); par_U16_w = ParU16 (API,Record,3); par_U16_h = ParU16 (API,Record,2); rop_draw.ROP = (U32) ParU16 (API,Record,0) + (((U32) ParU16 (API,Record,1)) << 16); break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } l_pt_TL = L_Coord (par_U16_x,par_U16_y); rop_draw.TL = wmf_D_Coord_translate (API,l_pt_TL); l_pt = L_Coord (par_U16_w,par_U16_h); width = ABS (l_pt.x); height = ABS (l_pt.y); l_pt.x = l_pt_TL.x + width; l_pt.y = l_pt_TL.y + height; rop_draw.BR = wmf_D_Coord_translate (API,l_pt); if (SCAN (API)) { D_Coord_Register (API,rop_draw.TL,0); D_Coord_Register (API,rop_draw.BR,0); return (changed); } rop_draw.dc = P->dc; rop_draw.pixel_width = ABS (P->dc->pixel_width ); rop_draw.pixel_height = ABS (P->dc->pixel_height); if (FR->rop_draw) FR->rop_draw (API,&rop_draw); return (changed); } static int meta_dc_set (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; U16 par_U16; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 0",Record->size); } par_U16 = ParU16 (API,Record,0); switch (Record->function) { case META_SETROP2: WMF_DC_SET_ROP (P->dc,par_U16); break; case META_SETTEXTJUSTIFICATION: WMF_DC_SET_BREAKEXTRA (P->dc,par_U16); break; case META_SETTEXTCHAREXTRA: WMF_DC_SET_CHAREXTRA (P->dc,par_U16); break; case META_SETPOLYFILLMODE: WMF_DC_SET_POLYFILL (P->dc,par_U16); break; case META_SETTEXTALIGN: WMF_DC_SET_TEXTALIGN (P->dc,par_U16); break; case META_SETBKMODE: if (par_U16 == TRANSPARENT) { WMF_DC_SET_TRANSPARENT (P->dc); } else { WMF_DC_SET_OPAQUE (P->dc); if (par_U16 != OPAQUE) { WMF_DEBUG (API,"unexpected background mode; assuming opaque..."); } } break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } return (changed); } static int meta_dc_color (wmfAPI* API,wmfRecord* Record,wmfAttributes* attrlist) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfRGB color; U16 par_U16_rg; U16 par_U16_b; const char * value = 0; char hash[8]; unsigned long rgbhex; static char hex[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 1",Record->size); } if (API->flags & API_ENABLE_EDITING) { if ((value = wmf_attr_query (API, attrlist, "color"))) { if ((*value) == '#') { if (sscanf (value+1, "%lx", &rgbhex) == 1) { par_U16_rg = (U16) ((rgbhex >> 8) & 0xffff); par_U16_b = (U16) ( rgbhex & 0x00ff); if (PutParU16 (API,Record,1,par_U16_b )) changed = 1; if (PutParU16 (API,Record,0,par_U16_rg)) changed = 1; } else { value = 0; /* force a re-write below */ } } else { value = 0; /* force a re-write below */ } } } par_U16_b = ParU16 (API,Record,1); par_U16_rg = ParU16 (API,Record,0); color = rgb (par_U16_rg,par_U16_b); if ((API->flags & API_ENABLE_EDITING) && ((value == 0) || changed)) { hash[0] = '#'; hash[1] = hex[(color.r >> 4) & 0x0f]; hash[2] = hex[ color.r & 0x0f]; hash[3] = hex[(color.g >> 4) & 0x0f]; hash[4] = hex[ color.g & 0x0f]; hash[5] = hex[(color.b >> 4) & 0x0f]; hash[6] = hex[ color.b & 0x0f]; hash[7] = 0; wmf_attr_add (API, attrlist, "color", hash); } if (SCAN (API)) wmf_ipa_color_add (API,&color); switch (Record->function) { case META_SETTEXTCOLOR: WMF_DC_SET_TEXTCOLOR (P->dc,&color); break; case META_SETBKCOLOR: WMF_DC_SET_BACKGROUND (P->dc,&color); break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } return (changed); } static int meta_dc_select (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfObject* objects; wmfObject* obj; U16 oid; objects = P->objects; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 0",Record->size); } oid = ParU16 (API,Record,0); if (oid >= NUM_OBJECTS (API)) { WMF_ERROR (API,"Object out of range!"); API->err = wmf_E_BadFormat; return (changed); } obj = objects + oid; if (SCAN (API) && DIAG (API)) { diagnose_object (API,(unsigned int) oid,obj); } switch (obj->type) { case OBJ_BRUSH: WMF_DC_SET_BRUSH (P->dc,&(obj->obj.brush)); break; case OBJ_PEN: WMF_DC_SET_PEN (P->dc,&(obj->obj.pen)); break; case OBJ_FONT: WMF_DC_SET_FONT (P->dc,&(obj->obj.font)); break; default: WMF_DEBUG (API,"unexpected object type!"); break; } return (changed); } static int meta_dc_save (wmfAPI* API,wmfRecord* Record) /* complete ?? */ { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = ?",Record->size); } dc_stack_push (API,P->dc); P->dc = dc_copy (API,P->dc); return (changed); } static int meta_dc_restore (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfRegion* clip; wmfPolyRectangle_t polyrect; wmfUserData_t userdata; unsigned int i; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = ?",Record->size); } /* for (i = PAR(0); i < 0; i++) *//* Implies PAR(0) is signed ?? */ userdata.dc = P->dc; userdata.data = P->dc->userdata; if (PLAY (API) && FR->udata_free) FR->udata_free (API,&userdata); clip = (wmfRegion*) P->dc->clip; wmf_free (API,clip->rects); wmf_free (API,P->dc->clip); wmf_free (API,P->dc); P->dc = dc_stack_pop (API); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } if (SCAN (API)) return (changed); userdata.dc = P->dc; userdata.data = P->dc->userdata; if (FR->udata_set) FR->udata_set (API,&userdata); clip = (wmfRegion*) P->dc->clip; polyrect.dc = P->dc; polyrect.width = 0; polyrect.height = 0; if (clip->numRects) { polyrect.TL = (wmfD_Coord*) wmf_malloc (API,clip->numRects * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polyrect.BR = (wmfD_Coord*) wmf_malloc (API,clip->numRects * sizeof (wmfD_Coord)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } polyrect.count = clip->numRects; for (i = 0; i < polyrect.count; i++) { polyrect.TL[i] = clip->rects[i].TL; polyrect.BR[i] = clip->rects[i].BR; } if (FR->region_clip) FR->region_clip (API,&polyrect); wmf_free (API,polyrect.TL); wmf_free (API,polyrect.BR); } else { polyrect.TL = 0; polyrect.BR = 0; polyrect.count = 0; if (FR->region_clip) FR->region_clip (API,&polyrect); } return (changed); } static int meta_text (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfFontData* FD = (wmfFontData*) API->font_data; wmfRecord str_record; wmfRecord lpDx_record; wmfL_Coord l_pt; wmfD_Coord d_pt; wmfD_Coord t_pt; wmfD_Coord o_pt; wmfDrawText_t drawtext; wmfFont* font = 0; U16 par_U16; U16 par_U16_x; U16 par_U16_y; U16 i; U16 length = 0; U16 bbox_info = 0; U16 l_width; U16* lpDx = 0; char buffer[2]; char* str_save; double theta; double ratio; float cos_theta; float sin_theta; float width; switch (Record->function) { case META_TEXTOUT: if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 0",Record->size); } if (WMF_DC_TEXTALIGN (P->dc) & TA_UPDATECP) { if ((Record->size) < (unsigned int)(1 + (length + 1) / 2)) { WMF_ERROR (API,"Record is too short!"); API->err = wmf_E_BadFormat; break; } l_pt = P->current; } else { if ((Record->size) < (unsigned int)(3 + (length + 1) / 2)) { WMF_ERROR (API,"Record is too short!"); API->err = wmf_E_BadFormat; break; } if (SCAN (API) && DIAG (API)) { fprintf (stderr,",-2,-1"); } par_U16_x = ParU16 (API,Record,(Record->size)-1); par_U16_y = ParU16 (API,Record,(Record->size)-2); l_pt = L_Coord (par_U16_x,par_U16_y); } drawtext.pt = wmf_D_Coord_translate (API,l_pt); length = ParU16 (API,Record,0); if (length == 0) break; drawtext.TL.x = 0; drawtext.TL.y = 0; drawtext.BR.x = 0; drawtext.BR.y = 0; str_record = OffsetRecord (API,Record,1); break; case META_EXTTEXTOUT: if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); } if (WMF_DC_TEXTALIGN (P->dc) & TA_UPDATECP) { if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t#par=%lu; index 0-1 ignored; max. index = 3",Record->size); } l_pt = P->current; } else { if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t#par=%lu; max. index = 3",Record->size); } par_U16_x = ParU16 (API,Record,1); par_U16_y = ParU16 (API,Record,0); l_pt = L_Coord (par_U16_x,par_U16_y); } drawtext.pt = wmf_D_Coord_translate (API,l_pt); length = ParU16 (API,Record,2); if (length == 0) break; bbox_info = ParU16 (API,Record,3); if (bbox_info) { if (SCAN (API) && DIAG (API)) { fprintf (stderr,",7"); } par_U16_x = ParU16 (API,Record,4); /* Is this right ?? */ par_U16_y = ParU16 (API,Record,5); l_pt = L_Coord (par_U16_x,par_U16_y); drawtext.TL = wmf_D_Coord_translate (API,l_pt); par_U16_x = ParU16 (API,Record,6); /* Is this right ?? */ par_U16_y = ParU16 (API,Record,7); l_pt = L_Coord (par_U16_x,par_U16_y); drawtext.BR = wmf_D_Coord_translate (API,l_pt); if (SCAN (API)) { D_Coord_Register (API,drawtext.TL,0); D_Coord_Register (API,drawtext.BR,0); } str_record = OffsetRecord (API,Record,8); } else { drawtext.TL.x = 0; drawtext.TL.y = 0; drawtext.BR.x = 0; drawtext.BR.y = 0; str_record = OffsetRecord (API,Record,4); } break; default: WMF_ERROR (API,"libwmf: erk! programmer's error..."); WMF_ERROR (API," please contact us at http://www.wvware.com/"); API->err = wmf_E_Glitch; break; } if (ERR (API)) return (changed); if (length == 0) return (changed); drawtext.str = (char*) wmf_malloc (API,length + 1); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } font = WMF_DC_FONT (P->dc); /* FIXME: bug here? Negative font height is supposed to represent absolute font pointsize */ drawtext.font_height = (double) WMF_FONT_HEIGHT (font) * ABS (P->dc->pixel_height); /* FIXME: bug here, WMF_FONT_WIDTH and WMF_FONT_HEIGHT do not necessarily have same scale! */ drawtext.font_ratio = (double) WMF_FONT_WIDTH (font) / (double) WMF_FONT_HEIGHT (font); par_U16 = 0; for (i = 0; i < length; i++) { if (i & 1) { drawtext.str[i] = (par_U16 >> 8) & 0xff; } else { par_U16 = ParU16 (API,&str_record,i/2); drawtext.str[i] = par_U16 & 0xff; } } drawtext.str[length] = '\0'; width = FD->stringwidth (API,font,drawtext.str); width = (float) ((double) width * drawtext.font_height * drawtext.font_ratio); lpDx_record = OffsetRecord (API,&str_record,(length+1)/2); if ((Record->function == META_EXTTEXTOUT) && ((lpDx_record.size) >= length)) { lpDx = (U16*) wmf_malloc (API,length * sizeof (U16)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } l_width = 0; for (i = 0; i < length; i++) { lpDx[i] = ParU16 (API,&lpDx_record,i); l_width += lpDx[i]; } l_pt = L_Coord (0,0); t_pt = wmf_D_Coord_translate (API,l_pt); l_pt = L_Coord (l_width,0); d_pt = wmf_D_Coord_translate (API,l_pt); width = d_pt.x - t_pt.x; } theta = - WMF_TEXT_ANGLE (font); cos_theta = (float) cos (theta); sin_theta = (float) sin (theta); /* Okay, have text reference point, string width & font height, & angle (in radians) * Compute bounding box and adjust for alignment: */ if (WMF_DC_TEXTALIGN (P->dc) & TA_BASELINE) { /* */ } else if (WMF_DC_TEXTALIGN (P->dc) & TA_BOTTOM) { d_pt.y = - drawtext.font_height / 3; /* This is only approximate... */ t_pt.x = - d_pt.y * sin_theta; t_pt.y = d_pt.y * cos_theta; drawtext.pt.x += t_pt.x; drawtext.pt.y += t_pt.y; } else /* if (WMF_DC_TEXTALIGN (P->dc) & TA_TOP) */ { d_pt.y = drawtext.font_height; /* This is only approximate... */ t_pt.x = - d_pt.y * sin_theta; t_pt.y = d_pt.y * cos_theta; drawtext.pt.x += t_pt.x; drawtext.pt.y += t_pt.y; } if (WMF_DC_TEXTALIGN (P->dc) & TA_CENTER) { d_pt.x = width / 2; d_pt.y = - drawtext.font_height * 0.77; t_pt.x = d_pt.x * cos_theta - d_pt.y * sin_theta; t_pt.y = d_pt.x * sin_theta + d_pt.y * cos_theta; drawtext.bbox.TR.x = drawtext.pt.x + t_pt.x; drawtext.bbox.TR.y = drawtext.pt.y + t_pt.y; D_Coord_Register (API,drawtext.bbox.TR,0); drawtext.bbox.BL.x = drawtext.pt.x - t_pt.x; drawtext.bbox.BL.y = drawtext.pt.y - t_pt.y; D_Coord_Register (API,drawtext.bbox.BL,0); d_pt.x = width / 2; d_pt.y = drawtext.font_height * 0.23; t_pt.x = d_pt.x * cos_theta - d_pt.y * sin_theta; t_pt.y = d_pt.x * sin_theta + d_pt.y * cos_theta; drawtext.bbox.BR.x = drawtext.pt.x + t_pt.x; drawtext.bbox.BR.y = drawtext.pt.y + t_pt.y; D_Coord_Register (API,drawtext.bbox.BR,0); drawtext.bbox.TL.x = drawtext.pt.x - t_pt.x; drawtext.bbox.TL.y = drawtext.pt.y - t_pt.y; D_Coord_Register (API,drawtext.bbox.TL,0); d_pt.x = - width / 2; t_pt.x = d_pt.x * cos_theta; t_pt.y = d_pt.x * sin_theta; drawtext.pt.x += t_pt.x; drawtext.pt.y += t_pt.y; } else if (WMF_DC_TEXTALIGN (P->dc) & TA_RIGHT) { d_pt.y = - drawtext.font_height * 0.77; t_pt.x = - d_pt.y * sin_theta; t_pt.y = d_pt.y * cos_theta; drawtext.bbox.TR.x = drawtext.pt.x + t_pt.x; drawtext.bbox.TR.y = drawtext.pt.y + t_pt.y; D_Coord_Register (API,drawtext.bbox.TR,0); d_pt.y = drawtext.font_height * 0.23; t_pt.x = - d_pt.y * sin_theta; t_pt.y = d_pt.y * cos_theta; drawtext.bbox.BR.x = drawtext.pt.x + t_pt.x; drawtext.bbox.BR.y = drawtext.pt.y + t_pt.y; D_Coord_Register (API,drawtext.bbox.BR,0); d_pt.x = - width; d_pt.y = - drawtext.font_height * 0.77; t_pt.x = d_pt.x * cos_theta - d_pt.y * sin_theta; t_pt.y = d_pt.x * sin_theta + d_pt.y * cos_theta; drawtext.bbox.TL.x = drawtext.pt.x + t_pt.x; drawtext.bbox.TL.y = drawtext.pt.y + t_pt.y; D_Coord_Register (API,drawtext.bbox.TL,0); d_pt.x = - width; d_pt.y = drawtext.font_height * 0.23; t_pt.x = d_pt.x * cos_theta - d_pt.y * sin_theta; t_pt.y = d_pt.x * sin_theta + d_pt.y * cos_theta; drawtext.bbox.BL.x = drawtext.pt.x + t_pt.x; drawtext.bbox.BL.y = drawtext.pt.y + t_pt.y; D_Coord_Register (API,drawtext.bbox.BL,0); d_pt.x = - width; t_pt.x = d_pt.x * cos_theta; t_pt.y = d_pt.x * sin_theta; d_pt.x = drawtext.pt.x + t_pt.x; d_pt.y = drawtext.pt.y + t_pt.y; drawtext.pt = d_pt; if (WMF_DC_TEXTALIGN (P->dc) & TA_UPDATECP) { P->current = wmf_L_Coord_translate (API,drawtext.pt); } } else /* if (WMF_DC_TEXTALIGN (P->dc) & TA_LEFT) */ { d_pt.y = - drawtext.font_height * 0.77; t_pt.x = - d_pt.y * sin_theta; t_pt.y = d_pt.y * cos_theta; drawtext.bbox.TL.x = drawtext.pt.x + t_pt.x; drawtext.bbox.TL.y = drawtext.pt.y + t_pt.y; D_Coord_Register (API,drawtext.bbox.TL,0); d_pt.y = drawtext.font_height * 0.23; t_pt.x = - d_pt.y * sin_theta; t_pt.y = d_pt.y * cos_theta; drawtext.bbox.BL.x = drawtext.pt.x + t_pt.x; drawtext.bbox.BL.y = drawtext.pt.y + t_pt.y; D_Coord_Register (API,drawtext.bbox.BL,0); d_pt.x = width; d_pt.y = - drawtext.font_height * 0.77; t_pt.x = d_pt.x * cos_theta - d_pt.y * sin_theta; t_pt.y = d_pt.x * sin_theta + d_pt.y * cos_theta; drawtext.bbox.TR.x = drawtext.pt.x + t_pt.x; drawtext.bbox.TR.y = drawtext.pt.y + t_pt.y; D_Coord_Register (API,drawtext.bbox.TR,0); d_pt.x = width; d_pt.y = drawtext.font_height * 0.23; t_pt.x = d_pt.x * cos_theta - d_pt.y * sin_theta; t_pt.y = d_pt.x * sin_theta + d_pt.y * cos_theta; drawtext.bbox.BR.x = drawtext.pt.x + t_pt.x; drawtext.bbox.BR.y = drawtext.pt.y + t_pt.y; D_Coord_Register (API,drawtext.bbox.BR,0); if (WMF_DC_TEXTALIGN (P->dc) & TA_UPDATECP) { d_pt.x = width; t_pt.x = d_pt.x * cos_theta; t_pt.y = d_pt.x * sin_theta; d_pt.x = drawtext.pt.x + t_pt.x; d_pt.y = drawtext.pt.y + t_pt.y; P->current = wmf_L_Coord_translate (API,drawtext.pt); } } if (SCAN (API)) { wmf_free (API,drawtext.str); if (lpDx) wmf_free (API,lpDx); return (changed); } drawtext.dc = P->dc; drawtext.flags = bbox_info; if (lpDx) { str_save = drawtext.str; drawtext.str = buffer; t_pt = drawtext.pt; ratio = drawtext.font_ratio; l_width = 0; for (i = 0; i < length; i++) { buffer[0] = str_save[i]; buffer[1] = 0; l_pt = L_Coord (0,0); o_pt = wmf_D_Coord_translate (API,l_pt); l_pt = L_Coord (l_width,0); d_pt = wmf_D_Coord_translate (API,l_pt); d_pt.x -= o_pt.x; d_pt.y -= o_pt.y; drawtext.pt.x = t_pt.x + d_pt.x * cos_theta; drawtext.pt.y = t_pt.y + d_pt.x * sin_theta; l_pt = L_Coord (0,0); o_pt = wmf_D_Coord_translate (API,l_pt); l_pt = L_Coord (lpDx[i],0); d_pt = wmf_D_Coord_translate (API,l_pt); d_pt.x -= o_pt.x; d_pt.y -= o_pt.y; width = FD->stringwidth (API,font,drawtext.str); width = (float) ((double) width * drawtext.font_height * ratio); if (d_pt.x < width) { drawtext.font_ratio = ratio * (d_pt.x / width); } else { drawtext.font_ratio = ratio; } if (FR->draw_text) FR->draw_text (API,&drawtext); l_width += lpDx[i]; drawtext.bbox.TL.x = 0; drawtext.bbox.TL.y = 0; drawtext.bbox.TR.x = 0; drawtext.bbox.TR.y = 0; drawtext.bbox.BL.x = 0; drawtext.bbox.BL.y = 0; drawtext.bbox.BR.x = 0; drawtext.bbox.BR.y = 0; } wmf_free (API,lpDx); } else { if (FR->draw_text) FR->draw_text (API,&drawtext); } wmf_free (API,drawtext.str); return (changed); } static int meta_pen_create (wmfAPI* API,wmfRecord* Record,wmfAttributes* attrlist) /* complete, I think */ { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfObject* objects = 0; wmfObject* obj_pen = 0; wmfRGB color; wmfPen* pen = 0; U16 par_U16_rg; U16 par_U16_b; U16 par_U16_w; U16 par_U16_s; U16 oid_pen; U16 i; const char * value = 0; char hash[8]; unsigned long rgbhex; static char hex[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; objects = P->objects; i = 0; while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; if (i == NUM_OBJECTS (API)) { WMF_ERROR (API,"Object out of range!"); API->err = wmf_E_BadFormat; return (changed); } oid_pen = i; obj_pen = objects + oid_pen; obj_pen->type = OBJ_PEN; pen = &(obj_pen->obj.pen); if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; index 2 skipped; max. index = 4",Record->size); diagnose_object (API,(unsigned int) oid_pen,obj_pen); } par_U16_s = ParU16 (API,Record,0); WMF_PEN_SET_STYLE (pen,par_U16_s); /* Need to do all of these separately... */ WMF_PEN_SET_ENDCAP (pen,par_U16_s); WMF_PEN_SET_JOIN (pen,par_U16_s); WMF_PEN_SET_TYPE (pen,par_U16_s); par_U16_w = ParU16 (API,Record,1); par_U16_w = MAX (1,par_U16_w); WMF_PEN_SET_WIDTH (pen,(double) par_U16_w * ABS (P->dc->pixel_width )); WMF_PEN_SET_HEIGHT (pen,(double) par_U16_w * ABS (P->dc->pixel_height)); if (API->flags & API_ENABLE_EDITING) { if ((value = wmf_attr_query (API, attrlist, "color"))) { if ((*value) == '#') { if (sscanf (value+1, "%lx", &rgbhex) == 1) { par_U16_rg = (U16) ((rgbhex >> 8) & 0xffff); par_U16_b = (U16) ( rgbhex & 0x00ff); if (PutParU16 (API,Record,4,par_U16_b )) changed = 1; if (PutParU16 (API,Record,3,par_U16_rg)) changed = 1; } else { value = 0; /* force a re-write below */ } } else { value = 0; /* force a re-write below */ } } } par_U16_b = ParU16 (API,Record,4); par_U16_rg = ParU16 (API,Record,3); color = rgb (par_U16_rg,par_U16_b); if ((API->flags & API_ENABLE_EDITING) && ((value == 0) || changed)) { hash[0] = '#'; hash[1] = hex[(color.r >> 4) & 0x0f]; hash[2] = hex[ color.r & 0x0f]; hash[3] = hex[(color.g >> 4) & 0x0f]; hash[4] = hex[ color.g & 0x0f]; hash[5] = hex[(color.b >> 4) & 0x0f]; hash[6] = hex[ color.b & 0x0f]; hash[7] = 0; wmf_attr_add (API, attrlist, "color", hash); } WMF_PEN_SET_COLOR (pen,&color); if (SCAN (API)) wmf_ipa_color_add (API,&color); if (WMF_PEN_STYLE (pen) != PS_NULL) { WMF_DEBUG (API,"Non-null pen style..."); } WMF_DC_SET_PEN (P->dc,pen); return (changed); } static int meta_brush_create (wmfAPI* API,wmfRecord* Record,wmfAttributes* attrlist) /* unfinished */ { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfObject* objects = 0; wmfObject* obj_brush = 0; wmfRGB color; wmfBrush* brush = 0; wmfBMP bmp; U16 par_U16_rg; U16 par_U16_b; U16 oid_brush; U16 i; const char * value = 0; char hash[8]; unsigned long rgbhex; static char hex[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; objects = P->objects; i = 0; while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; if (i == NUM_OBJECTS (API)) { WMF_ERROR (API,"Object out of range!"); API->err = wmf_E_BadFormat; return (changed); } oid_brush = i; obj_brush = objects + oid_brush; obj_brush->type = OBJ_BRUSH; brush = &(obj_brush->obj.brush); if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 3",Record->size); diagnose_object (API,(unsigned int) oid_brush,obj_brush); } WMF_BRUSH_SET_STYLE (brush,ParU16 (API,Record,0)); if (API->flags & API_ENABLE_EDITING) { if ((value = wmf_attr_query (API, attrlist, "color"))) { if ((*value) == '#') { if (sscanf (value+1, "%lx", &rgbhex) == 1) { par_U16_rg = (U16) ((rgbhex >> 8) & 0xffff); par_U16_b = (U16) ( rgbhex & 0x00ff); if (PutParU16 (API,Record,2,par_U16_b )) changed = 1; if (PutParU16 (API,Record,1,par_U16_rg)) changed = 1; } else { value = 0; /* force a re-write below */ } } else { value = 0; /* force a re-write below */ } } } par_U16_b = ParU16 (API,Record,2); par_U16_rg = ParU16 (API,Record,1); color = rgb (par_U16_rg,par_U16_b); if ((API->flags & API_ENABLE_EDITING) && ((value == 0) || changed)) { hash[0] = '#'; hash[1] = hex[(color.r >> 4) & 0x0f]; hash[2] = hex[ color.r & 0x0f]; hash[3] = hex[(color.g >> 4) & 0x0f]; hash[4] = hex[ color.g & 0x0f]; hash[5] = hex[(color.b >> 4) & 0x0f]; hash[6] = hex[ color.b & 0x0f]; hash[7] = 0; wmf_attr_add (API, attrlist, "color", hash); } WMF_BRUSH_SET_COLOR (brush,&color); WMF_BRUSH_SET_HATCH (brush,ParU16 (API,Record,3)); bmp.width = 0; bmp.height = 0; bmp.data = 0; WMF_BRUSH_SET_BITMAP (brush,&bmp); if (SCAN (API)) wmf_ipa_color_add (API,&color); WMF_DC_SET_BRUSH (P->dc,brush); return (changed); } static int meta_font_create (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFontData* FD = (wmfFontData*) API->font_data; wmfRecord name_record; wmfObject* objects = 0; wmfObject* obj_font = 0; wmfFont* font = 0; U16 oid_font; U16 par_U16; S16 par_S16_w; S16 par_S16_h; unsigned long i; unsigned long length; char* fontname = 0; objects = P->objects; i = 0; while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; if (i == NUM_OBJECTS (API)) { WMF_ERROR (API,"Object out of range!"); API->err = wmf_E_BadFormat; return (changed); } oid_font = i; obj_font = objects + oid_font; obj_font->type = OBJ_FONT; font = &(obj_font->obj.font); if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 8",Record->size); diagnose_object (API,(unsigned int) oid_font,obj_font); } par_S16_w = ParS16 (API,Record,1); par_S16_h = ParS16 (API,Record,0); WMF_FONT_SET_HEIGHT (font,ABS (par_S16_h)); WMF_FONT_SET_WIDTH (font,ABS (par_S16_w)); WMF_FONT_SET_ESCAPEMENT (font,ParS16 (API,Record,2)); /* text angle */ WMF_FONT_SET_ORIENTATION (font,ParS16 (API,Record,3)); WMF_FONT_SET_WEIGHT (font,ParU16 (API,Record,4)); par_U16 = ParU16 (API,Record,5); WMF_FONT_SET_ITALIC (font,par_U16 & 0xff); WMF_TEXT_SET_UNDERLINE (font,(par_U16 >> 8) & 0xff); par_U16 = ParU16 (API,Record,6); WMF_TEXT_SET_STRIKEOUT (font,par_U16 & 0xff); WMF_FONT_SET_CHARSET (font,(par_U16 >> 8) & 0xff); par_U16 = ParU16 (API,Record,7); WMF_FONT_SET_OUT (font,par_U16 & 0xff); WMF_FONT_SET_CLIP (font,(par_U16 >> 8) & 0xff); par_U16 = ParU16 (API,Record,8); WMF_FONT_SET_QUALITY (font,par_U16 & 0xff); WMF_FONT_SET_PITCH (font,(par_U16 >> 8) & 0xff); if (WMF_FONT_WIDTH (font) == 0) { WMF_FONT_SET_WIDTH (font,WMF_FONT_HEIGHT (font)); } name_record = OffsetRecord (API,Record,9); length = (name_record.size) * 2; fontname = (char*) wmf_malloc (API,length + 1); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } par_U16 = 0; for (i = 0; i < length; i++) { if (i & 1) { fontname[i] = (par_U16 >> 8) & 0xff; } else { par_U16 = ParU16 (API,&name_record,i/2); fontname[i] = par_U16 & 0xff; } } fontname[length] = '\0'; WMF_FONT_SET_NAME (font,fontname); /* must not free fontname */ font->user_data = 0; FD->map (API,font); /* Determine/Load freetype face */ if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (changed); } WMF_DC_SET_FONT (P->dc,font); return (changed); } static int meta_palette_create (wmfAPI* API) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfObject* objects = 0; unsigned long i; objects = P->objects; i = 0; while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; if (i == NUM_OBJECTS (API)) { WMF_ERROR (API,"Object out of range!"); API->err = wmf_E_BadFormat; return (changed); } objects[i].type = OBJ_PAL; return (changed); } static int meta_delete (wmfAPI* API,wmfRecord* Record) { int changed = 0; wmfPlayer_t* P = (wmfPlayer_t*) API->player_data; wmfFunctionReference* FR = (wmfFunctionReference*) API->function_reference; wmfObject* objects; wmfObject* obj; U16 oid; objects = P->objects; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = 0",Record->size); } oid = ParU16 (API,Record,0); if (oid >= NUM_OBJECTS (API)) { WMF_ERROR (API,"Object out of range!"); API->err = wmf_E_BadFormat; return (changed); } obj = objects + oid; if (SCAN (API) && DIAG (API)) { diagnose_object (API,(unsigned int) oid,obj); } if (obj->type == OBJ_BRUSH) { if (obj->obj.brush.lbStyle == BS_DIBPATTERN) { if (PLAY (API) && FR->bmp_free) FR->bmp_free (API,&(obj->obj.brush.bmp)); } } else if (obj->type == OBJ_REGION) { wmf_free (API,obj->obj.rgn.rects); } obj->type = 0; return (changed); } static int meta_unused (wmfAPI* API,wmfRecord* Record) { int changed = 0; if (SCAN (API) && DIAG (API)) { fprintf (stderr,"\t[0x%04x]",Record->function); fprintf (stderr,"\t#par=%lu; max. index = ?",Record->size); } /* META_SETSTRETCHBLTMODE: not all that important really */ /* META_SETMAPPERFLAGS: extract from http://www.melander.dk/lib/windows/gdi/fontmap.htm { Windows Font Mapping Ron Gery Microsoft Developer Network Technology Group Created: June 8, 1992 Filters An application can, to some extent, filter which physical fonts are examined by the font mapper. Aspect-ratio filtering, which is available in both Windows versions 3.0 and 3.1, allows an application to specify that only fonts designed for the device's aspect ratio should be considered by the font mapper. An application enables and disables this filter by using the SetMapperFlags function. Because nonscaling raster fonts are designed with a certain aspect ratio in mind, it is sometimes desirable to ensure that only fonts actually designed for the device are used. When this filter is enabled, the font mapper does not consider any physical fonts whose design aspect ratio does not match that of the device. Aspect-ratio filtering does not affect TrueType fonts because they can scale to match any aspect ratio. This filter affects all font selections to the DC until the filter is turned off. Aspect-ratio filtering is a holdover from earlier times and is not a recommended approach in today's font world. } So we're going to ignore this call entirely */ /* META_REALIZEPALETTE: META_SELECTPALETTE: META_SETPALENTRIES: as these set and fiddle with the palette i don't think they have much relevence to our converter, we will do our own color management elsewhere (if we do it at all), so i think we can safely ignore these things. */ /* META_ESCAPE: ?? */ return (changed); } static void diagnose_object (wmfAPI* API,unsigned int oid,wmfObject* obj) { fprintf (stderr,"\toid=%u / %u ",(unsigned) oid,(unsigned) NUM_OBJECTS (API)); switch (obj->type) { case OBJ_BRUSH: fprintf (stderr,"(brush)"); break; case OBJ_PEN: fprintf (stderr,"(pen)"); break; case OBJ_FONT: fprintf (stderr,"(font)"); break; case OBJ_REGION: fprintf (stderr,"(region)"); break; case OBJ_PAL: fprintf (stderr,"(palette)"); break; default: fprintf (stderr,"(other [%u])",(unsigned) obj->type); break; } } #endif /* ! WMFPLAYER_META_H */ libwmf-0.2.13/src/player/record.h000066400000000000000000000055041441723000300165650ustar00rootroot00000000000000/* libwmf ("player/record.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFPLAYER_RECORD_H #define WMFPLAYER_RECORD_H static U16 ParU16 (wmfAPI* API,wmfRecord* record,unsigned long index) { U16 sp1; U16 sp2; if (index >= record->size) { WMF_ERROR (API,"Bad record - unexpectedly short!"); API->err = wmf_E_BadFormat; return (0); } index <<= 1; sp1 = record->parameter[index]; index++; sp2 = record->parameter[index]; return ((sp2 << 8) | sp1); } static int PutParU16 (wmfAPI* API,wmfRecord* record,unsigned long index,U16 sp) { int changed = 0; unsigned char c1 = (unsigned char) ( sp & 0xff); unsigned char c2 = (unsigned char) ((sp >> 8) & 0xff); if (index >= record->size) { WMF_ERROR (API,"Bad record - unexpectedly short!"); API->err = wmf_E_BadFormat; return (0); } index <<= 1; if (record->parameter[index] != c1) { record->parameter[index] = c1; changed = 1; } index++; if (record->parameter[index] != c2) { record->parameter[index] = c2; changed = 1; } return (changed); } static S16 ParS16 (wmfAPI* API,wmfRecord* record,unsigned long index) { U16 up; up = ParU16 (API,record,index); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (up); } return (U16_2_S16 (up)); } static S32 ParS32 (wmfAPI* API,wmfRecord* record,unsigned long index) { U16 up; up = ParU16 (API,record,index); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (up); } return (U16_2_S32 (up)); } static wmfRecord OffsetRecord (wmfAPI* API,wmfRecord* record,unsigned long index) { wmfRecord new_record; new_record.function = record->function; new_record.size = 0; new_record.parameter = 0; new_record.position = 0; if (index > record->size) { WMF_ERROR (API,"Bad record - unexpectedly short!"); API->err = wmf_E_BadFormat; return (new_record); } new_record.size = record->size - index; index <<= 1; new_record.parameter = record->parameter + index; new_record.position = record->position + index; return (new_record); } #endif /* ! WMFPLAYER_RECORD_H */ libwmf-0.2.13/src/player/region.h000066400000000000000000000665311441723000300166010ustar00rootroot00000000000000/* libwmf ("player/region.h"): library for wmf conversion Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFPLAYER_REGION_H #define WMFPLAYER_REGION_H static wmfD_Rect* rgn_memchk (wmfAPI* API,wmfRegion* rgn) { wmfD_Rect* more = 0; if (rgn->numRects < (rgn->size - 1)) return (rgn->rects + rgn->numRects); more = wmf_realloc (API,rgn->rects,(rgn->size + 8) * sizeof (wmfD_Rect)); if ((more == 0) || (ERR (API))) return (0); /* The two conditions are equivalent, I think */ rgn->rects = more; rgn->size += 8; /* The exponential increase in memory allocation in MEMCHECK scares me */ return (rgn->rects + rgn->numRects); } /* 1 if two RECTs overlap. * 0 if two RECTs do not overlap. */ #define EXTENTCHECK(r1,r2) \ ( ((r1)->BR.x > (r2)->TL.x) \ && ((r1)->TL.x < (r2)->BR.x) \ && ((r1)->BR.y > (r2)->TL.y) \ && ((r1)->TL.y < (r2)->BR.y) ) static void WmfSetRectRgn (wmfRegion* rgn,wmfD_Rect* rect) { if ((rect == 0) || (rect->TL.x == rect->BR.x) || (rect->TL.y == rect->BR.y)) /* EMPTY_REGION (rgn); */ { rgn->extents.TL.x = 0; rgn->extents.TL.y = 0; rgn->extents.BR.x = 0; rgn->extents.BR.y = 0; rgn->numRects = 0; rgn->type = NULLREGION; } else { rgn->extents = (*rect); (*(rgn->rects)) = (*rect); rgn->numRects = 1; rgn->type = SIMPLEREGION; } } static void WmfCombineRgn (wmfAPI* API,wmfRegion* destObj,wmfRegion* src1Obj,wmfRegion* src2Obj,U16 mode) { if ((destObj == 0) || (src1Obj == 0)) return; if (mode == RGN_COPY) { REGION_CopyRegion (API,destObj,src1Obj); return; } if (src2Obj) { switch (mode) { case RGN_OR: REGION_UnionRegion (API,destObj,src1Obj,src2Obj); break; case RGN_AND: REGION_IntersectRegion (API,destObj,src1Obj,src2Obj); break; #if 0 case RGN_XOR: REGION_XorRegion (API,destObj,src1Obj,src2Obj); break; #endif case RGN_DIFF: REGION_SubtractRegion (API,destObj,src1Obj,src2Obj); break; } } } static void REGION_UnionRegion (wmfAPI* API,wmfRegion* newReg,wmfRegion* reg1,wmfRegion* reg2) { /* checks all the simple cases */ /* Region 1 and 2 are the same or region 1 is empty */ if ((reg1 == reg2) || (!(reg1->numRects))) { if (newReg != reg2) REGION_CopyRegion (API,newReg,reg2); return; } /* If nothing to union (region 2 empty) */ if (reg2->numRects == 0) { if (newReg != reg1) REGION_CopyRegion (API,newReg,reg1); return; } /* Region 1 completely subsumes region 2 */ if ( (reg1->numRects == 1) && (reg1->extents.TL.x <= reg2->extents.TL.x) && (reg1->extents.TL.y <= reg2->extents.TL.y) && (reg1->extents.BR.x >= reg2->extents.BR.x) && (reg1->extents.BR.y >= reg2->extents.BR.y)) { if (newReg != reg1) REGION_CopyRegion (API,newReg,reg1); return; } /* Region 2 completely subsumes region 1 */ if ( (reg2->numRects == 1) && (reg2->extents.TL.x <= reg1->extents.TL.x) && (reg2->extents.TL.y <= reg1->extents.TL.y) && (reg2->extents.BR.x >= reg1->extents.BR.x) && (reg2->extents.BR.y >= reg1->extents.BR.y)) { if (newReg != reg2) REGION_CopyRegion (API,newReg,reg2); return; } REGION_RegionOp (API,newReg,reg1,reg2,REGION_UnionO,REGION_UnionNonO,REGION_UnionNonO); newReg->extents.TL.x = MIN (reg1->extents.TL.x,reg2->extents.TL.x); newReg->extents.TL.y = MIN (reg1->extents.TL.y,reg2->extents.TL.y); newReg->extents.BR.x = MAX (reg1->extents.BR.x,reg2->extents.BR.x); newReg->extents.BR.y = MAX (reg1->extents.BR.y,reg2->extents.BR.y); newReg->type = ((newReg->numRects)?(COMPLEXREGION):(NULLREGION)); } static void REGION_CopyRegion (wmfAPI* API,wmfRegion* dst,wmfRegion* src) { if (dst != src) /* don't want to copy to itself */ { if (dst->size < src->numRects) { dst->rects = wmf_realloc (API,dst->rects,src->numRects * sizeof (wmfD_Rect)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } dst->size = src->numRects; } dst->numRects = src->numRects; dst->extents.TL.x = src->extents.TL.x; dst->extents.TL.y = src->extents.TL.y; dst->extents.BR.x = src->extents.BR.x; dst->extents.BR.y = src->extents.BR.y; dst->type = src->type; memcpy ((char*) dst->rects,(char*) src->rects,(int) (src->numRects * sizeof (wmfD_Rect))); } } /***************************************************************************** * REGION_RegionOp * * Apply an operation to two regions. Called by REGION_Union, * REGION_Inverse, REGION_Subtract, REGION_Intersect... * * Results: * None. * * Side Effects: * The new region is overwritten. * * Notes: * The idea behind this function is to view the two regions as sets. * Together they cover a rectangle of area that this function divides * into horizontal bands where points are covered only by one region * or by both. For the first case, the nonOverlapFunc is called with * each the band and the band's upper and lower extents. For the * second, the overlapFunc is called to process the entire band. It * is responsible for clipping the rectangles in the band, though * this function provides the boundaries. * At the end of each band, the new region is coalesced, if possible, * to reduce the number of rectangles in the region. * */ static void REGION_RegionOp ( wmfAPI* API, wmfRegion* newReg, /* Place to store result */ wmfRegion* reg1, /* First region in operation */ wmfRegion* reg2, /* 2nd region in operation */ pProcO overlapFunc, /* Function to call for over-lapping bands */ pProcNonO nonOverlap1Func, /* Function to call for non-overlapping bands in region 1 */ pProcNonO nonOverlap2Func /* Function to call for non-overlapping bands in region 2 */ ) { wmfD_Rect* r1; /* Pointer into first region */ wmfD_Rect* r2; /* Pointer into 2d region */ wmfD_Rect* r1End; /* End of 1st region */ wmfD_Rect* r2End; /* End of 2d region */ wmfD_Rect* oldRects; /* Old rects for newReg */ wmfD_Rect* r1BandEnd; /* End of current band in r1 */ wmfD_Rect* r2BandEnd; /* End of current band in r2 */ wmfD_Rect* prev_rects; float ytop; /* Top of intersection */ float ybot; /* Bottom of intersection */ float top; /* Top of non-overlapping band */ float bot; /* Bottom of non-overlapping band */ unsigned int prevBand; /* Index of start of previous band in newReg */ unsigned int curBand; /* Index of start of current band in newReg */ /*Initialization: * * set r1, r2, r1End and r2End appropriately, preserve the important * parts of the destination region until the end in case it's one of * the two source regions, then mark the "new" region empty, allocating * another array of rectangles for it to use. */ r1 = reg1->rects; r2 = reg2->rects; r1End = r1 + reg1->numRects; r2End = r2 + reg2->numRects; /* newReg may be one of the src regions so we can't empty it. We keep a * note of its rects pointer (so that we can free them later), preserve its * extents and simply set numRects to zero. */ oldRects = newReg->rects; newReg->numRects = 0; /* Allocate a reasonable number of rectangles for the new region. The idea * is to allocate enough so the individual functions don't need to * reallocate and copy the array, which is time consuming, yet we don't * have to worry about using too much memory. I hope to be able to * nuke the Xrealloc() at the end of this function eventually. */ newReg->size = MAX (reg1->numRects,reg2->numRects) * 2; if ((newReg->rects = wmf_malloc (API,sizeof (wmfD_Rect) * newReg->size)) == 0) { newReg->size = 0; return; } /* Initialize ybot and ytop. * * In the upcoming loop, ybot and ytop serve different functions depending * on whether the band being handled is an overlapping or non-overlapping * band. * * In the case of a non-overlapping band (only one of the regions * has points in the band), ybot is the bottom of the most recent * intersection and thus clips the top of the rectangles in that band. * ytop is the top of the next intersection between the two regions and * serves to clip the bottom of the rectangles in the current band. * * For an overlapping band (where the two regions intersect), ytop clips * the top of the rectangles of both regions and ybot clips the bottoms. */ if (reg1->extents.TL.y < reg2->extents.TL.y) { ybot = reg1->extents.TL.y; } else { ybot = reg2->extents.TL.y; } /* prevBand serves to mark the start of the previous band so rectangles * can be coalesced into larger rectangles. qv. miCoalesce, above. * In the beginning, there is no previous band, so prevBand == curBand * (curBand is set later on, of course, but the first band will always * start at index 0). prevBand and curBand must be indices because of * the possible expansion, and resultant moving, of the new region's * array of rectangles. */ prevBand = 0; do { curBand = newReg->numRects; /* This algorithm proceeds one source-band (as opposed to a * destination band, which is determined by where the two regions * intersect) at a time. r1BandEnd and r2BandEnd serve to mark the * rectangle after the last one in the current band for their * respective regions. */ r1BandEnd = r1; while ((r1BandEnd != r1End) && (r1BandEnd->TL.y == r1->TL.y)) r1BandEnd++; r2BandEnd = r2; while ((r2BandEnd != r2End) && (r2BandEnd->TL.y == r2->TL.y)) r2BandEnd++; /* First handle the band that doesn't intersect, if any. * * Note that attention is restricted to one band in the * non-intersecting region at once, so if a region has n * bands between the current position and the next place it overlaps * the other, this entire loop will be passed through n times. */ if (r1->TL.y < r2->TL.y) { top = MAX (r1->TL.y,ybot); bot = MIN (r1->BR.y,r2->TL.y); if ((top != bot) && (nonOverlap1Func)) { (*nonOverlap1Func) (API,newReg,r1,r1BandEnd,top,bot); } ytop = r2->TL.y; } else if (r2->TL.y < r1->TL.y) { top = MAX (r2->TL.y,ybot); bot = MIN (r2->BR.y,r1->TL.y); if ((top != bot) && (nonOverlap2Func)) { (*nonOverlap2Func) (API,newReg,r2,r2BandEnd,top,bot); } ytop = r1->TL.y; } else { ytop = r1->TL.y; } /* If any rectangles got added to the region, try and coalesce them * with rectangles from the previous band. Note we could just do * this test in miCoalesce, but some machines incur a not * inconsiderable cost for function calls, so... */ if (newReg->numRects != curBand) { prevBand = REGION_Coalesce (newReg,prevBand,curBand); } /* Now see if we've hit an intersecting band. The two bands only * intersect if ybot > ytop */ ybot = MIN (r1->BR.y,r2->BR.y); curBand = newReg->numRects; if ((ybot > ytop) && (overlapFunc)) { (*overlapFunc) (API,newReg,r1,r1BandEnd,r2,r2BandEnd,ytop,ybot); } if (newReg->numRects != curBand) { prevBand = REGION_Coalesce (newReg,prevBand,curBand); } /* If we've finished with a band (bottom == ybot) we skip forward * in the region to the next band. */ if (r1->BR.y == ybot) r1 = r1BandEnd; if (r2->BR.y == ybot) r2 = r2BandEnd; } while ((r1 != r1End) && (r2 != r2End)); /* Deal with whichever region still has rectangles left. */ curBand = newReg->numRects; if (r1 != r1End) { if (nonOverlap1Func) { do { r1BandEnd = r1; while ((r1BandEnd < r1End) && (r1BandEnd->TL.y == r1->TL.y)) r1BandEnd++; (*nonOverlap1Func) (API,newReg,r1,r1BandEnd,MAX (r1->TL.y,ybot),r1->BR.y); r1 = r1BandEnd; } while (r1 != r1End); } } else if ((r2 != r2End) && (nonOverlap2Func)) { do { r2BandEnd = r2; while ((r2BandEnd < r2End) && (r2BandEnd->TL.y == r2->TL.y)) r2BandEnd++; (*nonOverlap2Func) (API,newReg,r2,r2BandEnd,MAX (r2->TL.y,ybot),r2->BR.y); r2 = r2BandEnd; } while (r2 != r2End); } if (newReg->numRects != curBand) { REGION_Coalesce (newReg,prevBand,curBand); } /* A bit of cleanup. To keep regions from growing without bound, * we shrink the array of rectangles to match the new number of * rectangles in the region. This never goes to 0, however... * * Only do this stuff if the number of rectangles allocated is more than * twice the number of rectangles in the region (a simple optimization...). */ if (newReg->numRects < (newReg->size >> 1)) { if (newReg->numRects) /* REGION_NOT_EMPTY */ { prev_rects = newReg->rects; newReg->size = newReg->numRects; newReg->rects = wmf_realloc (API,newReg->rects,sizeof(wmfD_Rect) * newReg->size); if (newReg->rects == 0) newReg->rects = prev_rects; } else { /* No point in doing the extra work involved in an Xrealloc if * the region is empty */ newReg->size = 1; wmf_free (API,newReg->rects); newReg->rects = wmf_malloc (API,sizeof (wmfD_Rect)); } } wmf_free (API,oldRects); } /***************************************************************************** * REGION_Coalesce * * Attempt to merge the rects in the current band with those in the * previous one. Used only by REGION_RegionOp. * * Results: * The new index for the previous band. * * Side Effects: * If coalescing takes place: * - rectangles in the previous band will have their bottom fields * altered. * - pReg->numRects will be decreased. * */ static unsigned int REGION_Coalesce ( wmfRegion* pReg, /* Region to coalesce */ unsigned int prevStart, /* Index of start of previous band */ unsigned int curStart /* Index of start of current band */ ) { wmfD_Rect* pPrevRect; /* Current rect in previous band */ wmfD_Rect* pCurRect; /* Current rect in current band */ wmfD_Rect* pRegEnd; /* End of region */ unsigned int curNumRects; /* Number of rectangles in current band */ unsigned int prevNumRects; /* Number of rectangles in previous band */ float bandtop; /* top coordinate for current band */ pRegEnd = pReg->rects + pReg->numRects; pPrevRect = pReg->rects + prevStart; prevNumRects = curStart - prevStart; /* Figure out how many rectangles are in the current band. Have to do * this because multiple bands could have been added in REGION_RegionOp * at the end when one region has been exhausted. */ pCurRect = pReg->rects + curStart; bandtop = pCurRect->TL.y; for (curNumRects = 0; (pCurRect != pRegEnd) && (pCurRect->TL.y == bandtop); curNumRects++) { pCurRect++; } if (pCurRect != pRegEnd) { /* If more than one band was added, we have to find the start * of the last band added so the next coalescing job can start * at the right place... (given when multiple bands are added, * this may be pointless -- see above). */ pRegEnd--; while (pRegEnd[-1].TL.y == pRegEnd->TL.y) pRegEnd--; curStart = pRegEnd - pReg->rects; pRegEnd = pReg->rects + pReg->numRects; } if ((curNumRects == prevNumRects) && (curNumRects != 0)) { pCurRect -= curNumRects; /* The bands may only be coalesced if the bottom of the previous * matches the top scanline of the current. */ if (pPrevRect->BR.y == pCurRect->TL.y) { /* Make sure the bands have rects in the same places. This * assumes that rects have been added in such a way that they * cover the most area possible. I.e. two rects in a band must * have some horizontal space between them. */ do { if ( (pPrevRect->TL.x != pCurRect->TL.x ) || (pPrevRect->BR.x != pCurRect->BR.x)) { /* The bands don't line up so they can't be coalesced. */ return (curStart); } pPrevRect++; pCurRect++; prevNumRects -= 1; } while (prevNumRects != 0); pReg->numRects -= curNumRects; pCurRect -= curNumRects; pPrevRect -= curNumRects; /* The bands may be merged, so set the bottom of each rect * in the previous band to that of the corresponding rect in * the current band. */ do { pPrevRect->BR.y = pCurRect->BR.y; pPrevRect++; pCurRect++; curNumRects -= 1; } while (curNumRects != 0); /* If only one band was added to the region, we have to backup * curStart to the start of the previous band. * * If more than one band was added to the region, copy the * other bands down. The assumption here is that the other bands * came from the same region as the current one and no further * coalescing can be done on them since it's all been done * already... curStart is already in the right place. */ if (pCurRect == pRegEnd) { curStart = prevStart; } else { do { *pPrevRect++ = *pCurRect++; } while (pCurRect != pRegEnd); } } } return (curStart); } /***************************************************************************** * REGION_UnionO * * Handle an overlapping band for the union operation. Picks the * left-most rectangle each time and merges it into the region. * * Results: * None. * * Side Effects: * Rectangles are overwritten in pReg->rects and pReg->numRects will * be changed. * */ static void REGION_UnionO ( wmfAPI* API, wmfRegion* pReg, wmfD_Rect* r1, wmfD_Rect* r1End, wmfD_Rect* r2, wmfD_Rect* r2End, float top, float bottom ) { while ((r1 != r1End) && (r2 != r2End)) { if (r1->TL.x < r2->TL.x) { rect_merge (API,pReg,r1,top,bottom); if (ERR (API)) return; r1++; } else { rect_merge (API,pReg,r2,top,bottom); if (ERR (API)) return; r2++; } } if (r1 != r1End) { do { rect_merge (API,pReg,r1,top,bottom); if (ERR (API)) return; r1++; } while (r1 != r1End); } else { while (r2 != r2End) { rect_merge (API,pReg,r2,top,bottom); if (ERR (API)) return; r2++; } } } static void rect_merge ( wmfAPI* API, wmfRegion* rgn, wmfD_Rect* r, float top, float bottom ) { wmfD_Rect* pNextRect = 0; wmfD_Rect* pPrior = 0; if ((pNextRect = rgn_memchk (API,rgn)) == 0) return; if (rgn->numRects == 0) { rgn->numRects++; pNextRect->TL.x = r->TL.x; pNextRect->TL.y = top; pNextRect->BR.x = r->BR.x; pNextRect->BR.y = bottom; pNextRect++; } else { pPrior = pNextRect - 1; if ((pPrior->TL.y == top) && (pPrior->BR.y == bottom) && (pPrior->BR.x >= r->TL.x)) { if (pPrior->BR.x < r->BR.x) pPrior->BR.x = r->BR.x; } else { rgn->numRects++; pNextRect->TL.x = r->TL.x; pNextRect->TL.y = top; pNextRect->BR.x = r->BR.x; pNextRect->BR.y = bottom; pNextRect++; } } } /***************************************************************************** * REGION_UnionNonO * * Handle a non-overlapping band for the union operation. Just * Adds the rectangles into the region. Doesn't have to check for * subsumption or anything. * * Results: * None. * * Side Effects: * pReg->numRects is incremented and the final rectangles overwritten * with the rectangles we're passed. * */ static void REGION_UnionNonO ( wmfAPI* API, wmfRegion* pReg, wmfD_Rect* r, wmfD_Rect* rEnd, float top, float bottom ) { wmfD_Rect* pNextRect = 0; while (r != rEnd) { if ((pNextRect = rgn_memchk (API,pReg)) == 0) return; pReg->numRects++; pNextRect->TL.x = r->TL.x; pNextRect->TL.y = top; pNextRect->BR.x = r->BR.x; pNextRect->BR.y = bottom; pNextRect++; r++; } } /***************************************************************************** * REGION_SubtractNonO1 * * Deal with non-overlapping band for subtraction. Any parts from * region 2 we discard. Anything from region 1 we add to the region. * * Results: * None. * * Side Effects: * pReg may be affected. * */ static void REGION_SubtractNonO1 ( wmfAPI* API, wmfRegion* pReg, wmfD_Rect* r, wmfD_Rect* rEnd, float top, float bottom ) { wmfD_Rect* pNextRect = 0; while (r != rEnd) { if ((pNextRect = rgn_memchk (API,pReg)) == 0) return; pReg->numRects++; pNextRect->TL.x = r->TL.x; pNextRect->TL.y = top; pNextRect->BR.x = r->BR.x; pNextRect->BR.y = bottom; pNextRect++; r++; } } /***************************************************************************** * REGION_SubtractRegion * * Subtract regS from regM and leave the result in regD. * S stands for subtrahend, M for minuend and D for difference. * * Results: * TRUE. * * Side Effects: * regD is overwritten. * */ static void REGION_SubtractRegion ( wmfAPI* API, wmfRegion* regD, wmfRegion* regM, wmfRegion* regS ) { /* check for trivial reject */ if ( (regM->numRects == 0) || (regS->numRects == 0) || (!EXTENTCHECK (®M->extents,®S->extents)) ) { REGION_CopyRegion (API,regD,regM); return; } REGION_RegionOp (API,regD,regM,regS,REGION_SubtractO,REGION_SubtractNonO1,0); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return; } /* Can't alter newReg's extents before we call miRegionOp because * it might be one of the source regions and miRegionOp depends * on the extents of those regions being the unaltered. Besides, this * way there's no checking against rectangles that will be nuked * due to coalescing, so we have to examine fewer rectangles. */ REGION_SetExtents (regD); regD->type = ((regD->numRects) ? COMPLEXREGION : NULLREGION); } /***************************************************************************** * REGION_SubtractO * * Overlapping band subtraction. x1 is the left-most point not yet * checked. * * Results: * None. * * Side Effects: * pReg may have rectangles added to it. * */ static void REGION_SubtractO ( wmfAPI* API, wmfRegion* pReg, wmfD_Rect* r1, wmfD_Rect* r1End, wmfD_Rect* r2, wmfD_Rect* r2End, float top, float bottom ) { wmfD_Rect* pNextRect = 0; float left = r1->TL.x; if ((pNextRect = rgn_memchk (API,pReg)) == 0) return; while ((r1 != r1End) && (r2 != r2End)) { if (r2->BR.x <= left) { /* Subtrahend missed the boat: go to next subtrahend. */ r2++; } else if (r2->TL.x <= left) { /* Subtrahend preceeds minuend: nuke left edge of minuend. */ left = r2->BR.x; if (left >= r1->BR.x) { /* Minuend completely covered: advance to next minuend and * reset left fence to edge of new minuend. */ r1++; if (r1 != r1End) left = r1->TL.x; } else { /* Subtrahend now used up since it doesn't extend beyond * minuend */ r2++; } } else if (r2->TL.x < r1->BR.x) { /* Left part of subtrahend covers part of minuend: add uncovered * part of minuend to region and skip to next subtrahend. */ if ((pNextRect = rgn_memchk (API,pReg)) == 0) return; pReg->numRects++; pNextRect->TL.x = left; pNextRect->TL.y = top; pNextRect->BR.x = r2->TL.x; pNextRect->BR.y = bottom; pNextRect++; left = r2->BR.x; if (left >= r1->BR.x) { /* Minuend used up: advance to new... */ r1++; if (r1 != r1End) left = r1->TL.x; } else { /* Subtrahend used up */ r2++; } } else { /* Minuend used up: add any remaining piece before advancing. */ if (r1->BR.x > left) { if ((pNextRect = rgn_memchk (API,pReg)) == 0) return; pReg->numRects++; pNextRect->TL.x = left; pNextRect->TL.y = top; pNextRect->BR.x = r1->BR.x; pNextRect->BR.y = bottom; pNextRect++; } r1++; left = r1->TL.x; } } /* Add remaining minuend rectangles to region. */ while (r1 != r1End) { if ((pNextRect = rgn_memchk (API,pReg)) == 0) return; pReg->numRects++; pNextRect->TL.x = left; pNextRect->TL.y = top; pNextRect->BR.x = r1->BR.x; pNextRect->BR.y = bottom; pNextRect++; r1++; if (r1 != r1End) left = r1->TL.x; } } /***************************************************************************** * REGION_SetExtents * Re-calculate the extents of a region */ static void REGION_SetExtents ( wmfRegion* pReg ) { wmfD_Rect* pRect; wmfD_Rect* pRectEnd; wmfD_Rect* pExtents; if (pReg->numRects == 0) { pReg->extents.TL.x = 0; pReg->extents.TL.y = 0; pReg->extents.BR.x = 0; pReg->extents.BR.y = 0; return; } pExtents = &pReg->extents; pRect = pReg->rects; pRectEnd = pRect + pReg->numRects - 1; /* Since pRect is the first rectangle in the region, it must have the * smallest top and since pRectEnd is the last rectangle in the region, * it must have the largest bottom, because of banding. Initialize left and * right from pRect and pRectEnd, resp., as good things to initialize them * to... */ pExtents->TL.x = pRect->TL.x; pExtents->TL.y = pRect->TL.y; pExtents->BR.x = pRectEnd->BR.x; pExtents->BR.y = pRectEnd->BR.y; while (pRect <= pRectEnd) { if (pRect->TL.x < pExtents->TL.x) pExtents->TL.x = pRect->TL.x; if (pRect->BR.x > pExtents->BR.x) pExtents->BR.x = pRect->BR.x; pRect++; } } /***************************************************************************** * REGION_IntersectRegion */ static void REGION_IntersectRegion ( wmfAPI* API, wmfRegion* newReg, wmfRegion* reg1, wmfRegion* reg2 ) { /* check for trivial reject */ if ( (!(reg1->numRects)) || (!(reg2->numRects)) || (!EXTENTCHECK (®1->extents,®2->extents))) { newReg->numRects = 0; } else { REGION_RegionOp (API,newReg,reg1,reg2,REGION_IntersectO,0,0); } /* Can't alter newReg's extents before we call miRegionOp because * it might be one of the source regions and miRegionOp depends * on the extents of those regions being the same. Besides, this * way there's no checking against rectangles that will be nuked * due to coalescing, so we have to examine fewer rectangles. */ REGION_SetExtents (newReg); newReg->type = ((newReg->numRects) ? COMPLEXREGION : NULLREGION); } /***************************************************************************** * REGION_IntersectO * * Handle an overlapping band for REGION_Intersect. * * Results: * None. * * Side Effects: * Rectangles may be added to the region. * */ static void REGION_IntersectO ( wmfAPI* API, wmfRegion* pReg, wmfD_Rect* r1, wmfD_Rect* r1End, wmfD_Rect* r2, wmfD_Rect* r2End, float top, float bottom ) { float left; float right; wmfD_Rect* pNextRect; while ((r1 != r1End) && (r2 != r2End)) { left = MAX (r1->TL.x,r2->TL.x); right = MIN (r1->BR.x,r2->BR.x); /* If there's any overlap between the two rectangles, add that * overlap to the new region. * There's no need to check for subsumption because the only way * such a need could arise is if some region has two rectangles * right next to each other. Since that should never happen... */ if (left < right) { if ((pNextRect = rgn_memchk (API,pReg)) == 0) return; pReg->numRects++; pNextRect->TL.x = left; pNextRect->TL.y = top; pNextRect->BR.x = right; pNextRect->BR.y = bottom; pNextRect++; } /* Need to advance the pointers. Shift the one that extends * to the right the least, since the other still has a chance to * overlap with that region's next rectangle, if you see what I mean. */ if (r1->BR.x < r2->BR.x) { r1++; } else if (r2->BR.x < r1->BR.x) { r2++; } else { r1++; r2++; } } } #endif /* ! WMFPLAYER_REGION_H */ libwmf-0.2.13/src/recorder.c000066400000000000000000001262061441723000300156160ustar00rootroot00000000000000/* libwmf (recorder.c): library for wmf conversion Copyright (C) 2002 Francis James Franklin The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif #include #include #include #include "wmfdefs.h" #include "metadefs.h" #include "libwmf/canvas.h" #include "recorder.h" static void s_convert_color (wmfRGB * color, unsigned short * rg, unsigned short * b) { if (color && rg && b) { *rg = ((unsigned short) (color->g) << 8) | (unsigned short) (color->r); *b = (unsigned short) (color->b); } } static void s_rbox_set (wmfAPI * API, wmfConstruct * construct, wmfRecordBox * rbox, unsigned long n) { if (n >= construct->rec_count) { WMF_ERROR (API, "Hmm. Record out of range..."); API->err = wmf_E_Glitch; rbox->start = NULL; rbox->end = NULL; rbox->ptr = NULL; return; } rbox->start = construct->buffer + construct->rec_offset[n ]; rbox->end = construct->buffer + construct->rec_offset[n+1]; rbox->ptr = rbox->start; } static void s_rbox_skip_w (wmfAPI * API, wmfRecordBox * rbox) { if (rbox->end - rbox->ptr < 2) { WMF_ERROR (API, "Hmm. Record out of range..."); API->err = wmf_E_Glitch; return; } rbox->ptr++; rbox->ptr++; } static void s_rbox_ushort (wmfAPI * API, wmfRecordBox * rbox, unsigned long us) { if (rbox->end - rbox->ptr < 2) { WMF_ERROR (API, "Hmm. Record out of range..."); API->err = wmf_E_Glitch; return; } *rbox->ptr++ = (unsigned char) ( us & 0xff); *rbox->ptr++ = (unsigned char) ((us >> 8) & 0xff); } static void s_rbox_ulong (wmfAPI * API, wmfRecordBox * rbox, unsigned long ul) { if (rbox->end - rbox->ptr < 4) { WMF_ERROR (API, "Hmm. Record out of range..."); API->err = wmf_E_Glitch; return; } *rbox->ptr++ = (unsigned char) ( ul & 0xff); *rbox->ptr++ = (unsigned char) ((ul >> 8) & 0xff); *rbox->ptr++ = (unsigned char) ((ul >> 16) & 0xff); *rbox->ptr++ = (unsigned char) ((ul >> 24) & 0xff); } static void s_update_header (wmfAPI * API, wmfConstruct * construct) { wmfRecordBox rbox; s_rbox_set (API, construct, &rbox, 1); s_rbox_skip_w (API, &rbox); s_rbox_skip_w (API, &rbox); s_rbox_skip_w (API, &rbox); s_rbox_ulong (API, &rbox, construct->length / 2); s_rbox_ushort (API, &rbox, construct->NoObjects); s_rbox_ulong (API, &rbox, construct->MaxRecord); } static void s_append_record (wmfAPI * API, wmfConstruct * construct, wmfRecordBox * rbox, unsigned long length) { unsigned char * uc_more = 0; unsigned long * ul_more = 0; unsigned long bytes; if (length & 1) { WMF_DEBUG (API, "odd length? records should have even length. adding 1..."); length++; } if (construct->length + length > construct->max) { bytes = (construct->length + length) - construct->max; if (bytes & 0x7f) { bytes |= 0x7f; bytes++; } uc_more = (unsigned char *) wmf_realloc (API, construct->buffer, construct->max + bytes); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return; } construct->buffer = uc_more; construct->max += bytes; } if (construct->rec_count == construct->rec_max) { bytes = (construct->rec_max + 1 + 16) * sizeof (unsigned long); ul_more = (unsigned long *) wmf_realloc (API, construct->rec_offset, bytes); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return; } construct->rec_offset = ul_more; construct->rec_max += 16; } if (construct->MaxRecord < (length / 2)) construct->MaxRecord = length / 2; construct->length += length; construct->rec_count++; construct->rec_offset[construct->rec_count] = construct->length; s_rbox_set (API, construct, rbox, construct->rec_count-1); } /** * Get a handle for creating a new metafile. * * @param API the API handle * @param width width in 'dots' (a.k.a. 'twips'?) * @param height height in 'dots' (a.k.a. 'twips'?) * @param dpi dots per inch: one of 1440, 2880, 720, or 360 * * In case you want to use simple drawing routines to create your own metafile; all * drawing commands expect a wmfCanvas handle as well as the API handle. * * @return Returns 0 on failure. */ wmfCanvas * wmf_canvas (wmfAPI * API, unsigned short width, unsigned short height, unsigned short dpi) { unsigned short checksum; wmfRecordBox rbox; wmfConstruct * construct = 0; if ((width & 0x7fff) != width) { WMF_ERROR (API, "Image too large! (width > 0x7fff)"); return 0; } if ((height & 0x7fff) != height) { WMF_ERROR (API, "Image too large! (height > 0x7fff)"); return 0; } if ((dpi != 1440) && (dpi != 2880) && (dpi != 720) && (dpi != 360)) { WMF_ERROR (API, "invalid dpi! expected one of 1440, 2880, 720, or 360"); return 0; } construct = (wmfConstruct *) wmf_malloc (API, sizeof (wmfConstruct)); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return 0; } construct->buffer = (unsigned char *) wmf_malloc (API, 128); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); wmf_free (API, construct); return 0; } construct->length = 2 * 11; /* size in bytes of placeable meta header */ construct->max = 128; construct->rec_offset = (unsigned long *) wmf_malloc (API, 16); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); wmf_free (API, construct->buffer); wmf_free (API, construct); return 0; } construct->rec_offset[0] = 0; construct->rec_count = 1; construct->rec_max = 15; construct->rec_offset[construct->rec_count] = construct->length; construct->width = width; construct->height = height; construct->dpi = dpi; s_rbox_set (API, construct, &rbox, 0); checksum = 0xcdd7 ^ 0x9ac6 ^ width ^ height ^ dpi; /* I think... */ s_rbox_ulong (API, &rbox, 0x9ac6cdd7); /* Key */ s_rbox_ushort (API, &rbox, 0 ); /* Handle */ s_rbox_ushort (API, &rbox, 0 ); /* Left */ s_rbox_ushort (API, &rbox, 0 ); /* Top */ s_rbox_ushort (API, &rbox, width ); /* Right */ s_rbox_ushort (API, &rbox, height ); /* Bottom */ s_rbox_ushort (API, &rbox, dpi ); /* Inch */ s_rbox_ulong (API, &rbox, 0 ); /* Reserved */ s_rbox_ushort (API, &rbox, checksum ); /* Checksum */ s_append_record (API, construct, &rbox, 2 * 9); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); wmf_free (API, construct->rec_offset); wmf_free (API, construct->buffer); wmf_free (API, construct); return 0; } s_rbox_ushort (API, &rbox, 2); /* Type */ s_rbox_ushort (API, &rbox, 9); /* HeaderSize */ s_rbox_ushort (API, &rbox, 0x0300); /* Version */ s_rbox_ulong (API, &rbox, 0); /* Size */ s_rbox_ushort (API, &rbox, 0); /* NoObjects */ s_rbox_ulong (API, &rbox, 0); /* MaxRecord */ s_rbox_ushort (API, &rbox, 0); /* NoParameters */ construct->NoObjects = 3; construct->MaxRecord = 11; s_update_header (API, construct); construct->new_pen.style = PS_NULL; construct->new_pen.width = 1; construct->new_pen.color = wmf_black; construct->pen = construct->new_pen; construct->new_brush.style = BS_NULL; construct->new_brush.hatch = HS_HORIZONTAL; construct->new_brush.color = wmf_black; construct->brush = construct->new_brush; strcpy (construct->new_font.name, "Times New Roman"); construct->new_font.height = 100; /* size (in tenths of points) */ construct->new_font.width = 0; /* Do we care? */ construct->new_font.escapement = 0; /* Do we care? */ construct->new_font.orientation = 0; /* text rotation (in tenths of a degree ??) */ construct->new_font.weight = 400; /* bold, normal, light, etc. */ construct->new_font.italic = 0; /* italic, oblique, etc. */ construct->new_font.underline = 0; /* underline */ construct->new_font.strikeout = 0; /* strike-through */ construct->new_font.charset = 0; /* character set, encoding,... */ construct->new_font.out = 0; /* font outlining */ construct->new_font.clip = 0; /* Do we care? */ construct->new_font.quality = 0; /* Do we care? */ construct->new_font.pitch = 16; /* italics angle ?? */ construct->font = construct->new_font; s_create_pen (API, construct); /* order of object creation is important! */ s_create_brush (API, construct); s_create_font (API, construct); s_select (API, construct, 0); s_select (API, construct, 1); s_select (API, construct, 2); construct->polyfill = ALTERNATE; s_set_polyfill (API, construct); construct->background = TRANSPARENT; s_set_background (API, construct); construct->bgcolor = wmf_white; s_set_bgcolor (API, construct); construct->textcolor = wmf_black; s_set_textcolor (API, construct); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); wmf_free (API, construct->rec_offset); wmf_free (API, construct->buffer); wmf_free (API, construct); return 0; } return (wmfCanvas *) construct; } /** * Last command when creating a new metafile; returns the metafile you have drawn. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param buffer metafile buffer return * @param length metafile length return * * Cleans up memory etc. associated with the canvas process, except of course for the * new metafile itself which gets returned. * * @return Returns 0 on failure, *buffer on success */ unsigned char * wmf_canvas_done (wmfAPI * API, wmfCanvas * canvas, unsigned char ** buffer, unsigned long * length) { wmfConstruct * construct = (wmfConstruct *) canvas; if ((construct == 0) || (buffer == 0) || (length == 0)) return 0; /* TODO: s_delete (API, construct, 2); */ s_delete (API, construct, 1); s_delete (API, construct, 0); s_update_header (API, construct); /* TODO */ *buffer = construct->buffer; *length = construct->length; wmf_free (API, construct->rec_offset); wmf_free (API, construct); return *buffer; } /** * Change current pen style. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param line one of PS_SOLID, PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT, PS_NULL, PS_INSIDEFRAME, PS_USERSTYLE, or PS_ALTERNATE * @param endcap one of PS_ENDCAP_ROUND, PS_ENDCAP_SQUARE, or PS_ENDCAP_FLAT * @param join one of PS_JOIN_ROUND, PS_JOIN_BEVEL, or PS_JOIN_MITER * @param width stroke width * @param color stroke color * * Pen settings to be used with next drawing command. * * @return Returns 0 on success. */ int wmf_canvas_set_pen (wmfAPI * API, wmfCanvas * canvas, unsigned short line, unsigned short endcap, unsigned short join, unsigned short width, wmfRGB color) { wmfConstruct * construct = (wmfConstruct *) canvas; if (construct == 0) return -1; line &= 0x0f; if (line > 8) { WMF_DEBUG (API, "Attempt to set unsupported line style."); line = 0; } endcap &= 0x0f00; if (endcap > 0x0200) { WMF_DEBUG (API, "Attempt to set unsupported endcap style."); endcap = 0; } join &= 0xf000; if (join > 0x2000) { WMF_DEBUG (API, "Attempt to set unsupported join style."); join = 0; } construct->new_pen.style = line | endcap | join; if (width == 0) { WMF_DEBUG (API, "Pen width is 0? Setting to 1."); width = 1; } construct->new_pen.width = width; construct->new_pen.color = color; return 0; } /** * Change current brush style. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param style one of BS_SOLID, BS_NULL, or BS_HATCHED * @param hatch one of HS_HORIZONTAL, HS_VERTICAL, HS_FDIAGONAL, HS_BDIAGONAL, HS_CROSS or HS_DIAGCROSS * @param color stroke color * * Brush settings to be used with next drawing command. * * @return Returns 0 on success. */ int wmf_canvas_set_brush (wmfAPI * API, wmfCanvas * canvas, unsigned short style, unsigned short hatch, wmfRGB color) { wmfConstruct * construct = (wmfConstruct *) canvas; if (construct == 0) return -1; if (style > 2) { WMF_DEBUG (API, "Attempt to set unsupported brush style."); style = 0; } construct->new_brush.style = style; if (hatch > 5) { WMF_DEBUG (API, "Attempt to set unsupported hatch brush."); hatch = 0; } construct->new_brush.hatch = hatch; construct->new_brush.color = color; return 0; } /** * Change current font. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param name font name * @param size font height (in twips) * @param orient text rotation in tenths of degrees * @param weight 400 for normal text, 700 for bold * @param italic 0 for normal text, 1 for oblique/italic * @param strike 0 for normal text, 1 for strike-through * @param uscore 0 for normal text, 1 for underscore (I think; and 2 for double uscore ??) * @param encode encoding; 0 for most fonts, 2 for symbol fonts; presumably others... * @param pitch italic angle; usually 0 (webdings), 16 (times), 32 (arial) or 48 (courier) * * Font settings to be used with next drawing command. * * @return Returns 0 on success. */ int wmf_canvas_set_font (wmfAPI * API, wmfCanvas * canvas, const char * name, unsigned short size, unsigned short orient, unsigned short weight, unsigned short italic, unsigned short strike, unsigned short uscore, unsigned short encode, unsigned short pitch) { int length; wmfConstruct * construct = (wmfConstruct *) canvas; if ((construct == 0) || (name == 0)) return -1; if (orient >= 3600) { WMF_DEBUG (API, "orientation exceeds 360 degrees; reducing to 0."); orient = 0; } if (italic > 1) { WMF_DEBUG (API, "italic set unusually high; reducing to 1."); italic = 1; } if (strike > 1) { WMF_DEBUG (API, "strike-through set unusually high; reducing to 1."); strike = 1; } if (uscore > 2) { WMF_DEBUG (API, "underscore set unusually high; reducing to 2."); uscore = 2; } if (pitch > 48) { WMF_DEBUG (API, "pitch set unusually high; reducing to 48."); pitch = 48; } length = strlen (name); if (length >= CanvasFontBufferSize) { WMF_DEBUG (API, "font name is too long; reducing."); length = CanvasFontBufferSize - 1; } memset (construct->new_font.name, 0, CanvasFontBufferSize); strncpy (construct->new_font.name, name, length); construct->new_font.name[length] = 0; construct->new_font.height = size; construct->new_font.orientation = orient; construct->new_font.weight = weight; construct->new_font.italic = italic; construct->new_font.underline = uscore; construct->new_font.strikeout = strike; construct->new_font.charset = encode; construct->new_font.pitch = pitch; return 0; } static int s_setnew_pen (wmfAPI * API, wmfConstruct * construct) { if (ERR (API)) return -1; if (memcmp (&(construct->pen), &(construct->new_pen), sizeof (wmfCanvasPen)) == 0) { return -1; } construct->pen = construct->new_pen; if (s_delete (API, construct, 0) == 0) if (s_create_pen (API, construct) == 0) if (s_select (API, construct, 0) == 0) return 0; return -1; } static int s_setnew_brush (wmfAPI * API, wmfConstruct * construct) { if (ERR (API)) return -1; if (memcmp (&(construct->brush), &(construct->new_brush), sizeof (wmfCanvasBrush)) == 0) { return -1; } construct->brush = construct->new_brush; if (s_delete (API, construct, 1) == 0) if (s_create_brush (API, construct) == 0) if (s_select (API, construct, 1) == 0) return 0; return -1; } static int s_setnew_font (wmfAPI * API, wmfConstruct * construct) { if (ERR (API)) return -1; if (memcmp (&(construct->font), &(construct->new_font), sizeof (wmfCanvasFont)) == 0) { return -1; } construct->font = construct->new_font; if (s_delete (API, construct, 2) == 0) if (s_create_font (API, construct) == 0) if (s_select (API, construct, 2) == 0) return 0; return -1; } static int s_create_pen (wmfAPI * API, wmfConstruct * construct) { unsigned long Size = 3 + 5; unsigned short rg = 0; unsigned short b = 0; wmfRecordBox rbox; if (ERR (API)) return -1; s_convert_color (&(construct->pen.color), &rg, &b); s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_CREATEPENINDIRECT); s_rbox_ushort (API, &rbox, construct->pen.style); s_rbox_ushort (API, &rbox, construct->pen.width); s_rbox_ushort (API, &rbox, construct->pen.width); /* this should be ignored */ s_rbox_ushort (API, &rbox, rg); s_rbox_ushort (API, &rbox, b); return 0; } static int s_create_brush (wmfAPI * API, wmfConstruct * construct) { unsigned long Size = 3 + 4; unsigned short rg = 0; unsigned short b = 0; wmfRecordBox rbox; if (ERR (API)) return -1; s_convert_color (&(construct->brush.color), &rg, &b); s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_CREATEBRUSHINDIRECT); s_rbox_ushort (API, &rbox, construct->brush.style); s_rbox_ushort (API, &rbox, rg); s_rbox_ushort (API, &rbox, b); s_rbox_ushort (API, &rbox, construct->brush.hatch); /* ?? something missing? */ return 0; } static int s_create_font (wmfAPI * API, wmfConstruct * construct) { short size; unsigned short i; unsigned short cc; unsigned short length = (strlen (construct->font.name) + 1) / 2; unsigned long Size = 3 + 9 + length; wmfRecordBox rbox; if (ERR (API)) return -1; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_CREATEFONTINDIRECT); size = - (short) (construct->font.height); s_rbox_ushort (API, &rbox, (unsigned short) size); s_rbox_ushort (API, &rbox, construct->font.width); s_rbox_ushort (API, &rbox, construct->font.escapement); s_rbox_ushort (API, &rbox, construct->font.orientation); s_rbox_ushort (API, &rbox, construct->font.weight); s_rbox_ushort (API, &rbox, construct->font.italic | (construct->font.underline << 8)); s_rbox_ushort (API, &rbox, construct->font.strikeout | (construct->font.charset << 8)); s_rbox_ushort (API, &rbox, construct->font.out | (construct->font.clip << 8)); s_rbox_ushort (API, &rbox, construct->font.quality | (construct->font.pitch << 8)); for (i = 0; i < length; i++) { cc = (unsigned short) construct->font.name[2*i ]; cc |= ((unsigned short) construct->font.name[2*i+1]) << 8; s_rbox_ushort (API, &rbox, cc); } return 0; } static int s_delete (wmfAPI * API, wmfConstruct * construct, unsigned short oid) { unsigned long Size = 3 + 1; wmfRecordBox rbox; if (ERR (API)) return -1; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_DELETEOBJECT); s_rbox_ushort (API, &rbox, oid); return 0; } static int s_select (wmfAPI * API, wmfConstruct * construct, unsigned short oid) { unsigned long Size = 3 + 1; wmfRecordBox rbox; if (ERR (API)) return -1; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_SELECTOBJECT); s_rbox_ushort (API, &rbox, oid); return 0; } /** * Set polygon fill mode. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param mode one of ALTERNATE or WINDING * * Set polygon fill mode. * * @return Returns 0 on success. */ int wmf_canvas_set_polyfill (wmfAPI * API, wmfCanvas * canvas, unsigned short mode) { wmfConstruct * construct = (wmfConstruct *) canvas; if (construct == 0) return -1; if (ERR (API)) return -1; if ((mode != ALTERNATE) && (mode != WINDING)) { WMF_ERROR (API, "Unexpected polygon fill mode! Expected one of ALTERNATE or WINDING"); return 0; } if (construct->polyfill == mode) return 0; construct->polyfill = mode; return s_set_polyfill (API, construct); } static int s_set_polyfill (wmfAPI * API, wmfConstruct * construct) { unsigned long Size = 3 + 1; wmfRecordBox rbox; if (ERR (API)) return -1; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_SETPOLYFILLMODE); s_rbox_ushort (API, &rbox, construct->polyfill); return 0; } /** * Set background mode. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param mode one of TRANSPARENT or OPAQUE * * Set background mode. * * @return Returns 0 on success. */ int wmf_canvas_set_background (wmfAPI * API, wmfCanvas * canvas, unsigned short mode) { wmfConstruct * construct = (wmfConstruct *) canvas; if (construct == 0) return -1; if (ERR (API)) return -1; if ((mode != TRANSPARENT) && (mode != OPAQUE)) { WMF_ERROR (API, "Unexpected background mode! Expected one of TRANSPARENT or OPAQUE"); return -1; } if (construct->background == mode) return 0; construct->background = mode; return s_set_background (API, construct); } static int s_set_background (wmfAPI * API, wmfConstruct * construct) { unsigned long Size = 3 + 1; wmfRecordBox rbox; if (ERR (API)) return -1; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_SETBKMODE); s_rbox_ushort (API, &rbox, construct->background); return 0; } /** * Set background color. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param color background color * * Set background color. * * @return Returns 0 on success. */ int wmf_canvas_set_bgcolor (wmfAPI * API, wmfCanvas * canvas, wmfRGB color) { wmfConstruct * construct = (wmfConstruct *) canvas; if (construct == 0) return -1; if (ERR (API)) return -1; if ((construct->bgcolor.r == color.r) && (construct->bgcolor.g == color.g) && (construct->bgcolor.b == color.b)) return 0; construct->bgcolor = color; return s_set_bgcolor (API, construct); } static int s_set_bgcolor (wmfAPI * API, wmfConstruct * construct) { unsigned long Size = 3 + 2; unsigned short rg = 0; unsigned short b = 0; wmfRecordBox rbox; if (ERR (API)) return -1; s_convert_color (&(construct->bgcolor), &rg, &b); s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_SETBKCOLOR); s_rbox_ushort (API, &rbox, rg); s_rbox_ushort (API, &rbox, b); return 0; } /** * Set text color. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param color text color * * Set text color. * * @return Returns 0 on success. */ int wmf_canvas_set_textcolor (wmfAPI * API, wmfCanvas * canvas, wmfRGB color) { wmfConstruct * construct = (wmfConstruct *) canvas; if (construct == 0) return -1; if (ERR (API)) return -1; if ((construct->textcolor.r == color.r) && (construct->textcolor.g == color.g) && (construct->textcolor.b == color.b)) return 0; construct->textcolor = color; return s_set_textcolor (API, construct); } static int s_set_textcolor (wmfAPI * API, wmfConstruct * construct) { unsigned long Size = 3 + 2; unsigned short rg = 0; unsigned short b = 0; wmfRecordBox rbox; if (ERR (API)) return -1; s_convert_color (&(construct->textcolor), &rg, &b); s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_SETTEXTCOLOR); s_rbox_ushort (API, &rbox, rg); s_rbox_ushort (API, &rbox, b); return 0; } /** * Draw a line. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param x1 x-coordinate of start point * @param y1 y-coordinate of start point * @param x2 x-coordinate of end point * @param y2 y-coordinate of end point * * Draw line from (x1,y1) to (x2,y2). * * @return Returns 0 on success. */ int wmf_canvas_line (wmfAPI * API, wmfCanvas * canvas, unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2) { #if 0 unsigned long Size = 3 + 2; wmfRecordBox rbox; #endif wmfConstruct * construct = (wmfConstruct *) canvas; if (construct == 0) return -1; if (ERR (API)) return -1; if (((x1 & 0x7fff) != x1) || ((x2 & 0x7fff) != x2)) { WMF_ERROR (API, "Coordinate out of range! (x > 0x7fff)"); return -1; } if (((y1 & 0x7fff) != y1) || ((y2 & 0x7fff) != y2)) { WMF_ERROR (API, "Coordinate out of range! (y > 0x7fff)"); return -1; } if (s_moveto (API, construct, x1, y1) == 0) if (s_lineto (API, construct, x2, y2) == 0) return 0; return -1; } static int s_moveto (wmfAPI * API, wmfConstruct * construct, unsigned short x, unsigned short y) { unsigned long Size = 3 + 2; wmfRecordBox rbox; if (ERR (API)) return -1; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_MOVETO); s_rbox_ushort (API, &rbox, y); s_rbox_ushort (API, &rbox, x); return 0; } static int s_lineto (wmfAPI * API, wmfConstruct * construct, unsigned short x, unsigned short y) { unsigned long Size = 3 + 2; wmfRecordBox rbox; s_setnew_pen (API, construct); if (ERR (API)) return -1; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_LINETO); s_rbox_ushort (API, &rbox, y); s_rbox_ushort (API, &rbox, x); return 0; } /** * Draw a rounded rectangle. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param left lower x-coordinate * @param top lower y-coordinate * @param right upper x-coordinate * @param bottom upper y-coordinate * @param rx x-axis of corner ellipse * @param ry y-axis of corner ellipse * * Draw a rounded rectangle. Coordinate origin is at the top-left, y increasing down. * * @return Returns 0 on success. */ int wmf_canvas_roundrect (wmfAPI * API, wmfCanvas * canvas, unsigned short left, unsigned short top, unsigned short right, unsigned short bottom, unsigned short rx, unsigned short ry) { unsigned long Size = 3 + 6; wmfRecordBox rbox; wmfConstruct * construct = (wmfConstruct *) canvas; if (construct == 0) return -1; s_setnew_pen (API, construct); s_setnew_brush (API, construct); if (ERR (API)) return -1; if (((left & 0x7fff) != left) || ((right & 0x7fff) != right) || ((rx & 0x7fff) != rx)) { WMF_ERROR (API, "Coordinate out of range! (x > 0x7fff)"); return -1; } if (((top & 0x7fff) != top) || ((bottom & 0x7fff) != bottom) || ((ry & 0x7fff) != ry)) { WMF_ERROR (API, "Coordinate out of range! (y > 0x7fff)"); return -1; } s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_ROUNDRECT); s_rbox_ushort (API, &rbox, ry); s_rbox_ushort (API, &rbox, rx); s_rbox_ushort (API, &rbox, bottom); s_rbox_ushort (API, &rbox, right); s_rbox_ushort (API, &rbox, top); s_rbox_ushort (API, &rbox, left); return 0; } /** * Draw a rectangle. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param left lower x-coordinate * @param top lower y-coordinate * @param right upper x-coordinate * @param bottom upper y-coordinate * * Draw a rectangle. Coordinate origin is at the top-left, y increasing down. * * @return Returns 0 on success. */ int wmf_canvas_rect (wmfAPI * API, wmfCanvas * canvas, unsigned short left, unsigned short top, unsigned short right, unsigned short bottom) { unsigned long Size = 3 + 4; wmfRecordBox rbox; wmfConstruct * construct = (wmfConstruct *) canvas; if (construct == 0) return -1; s_setnew_pen (API, construct); s_setnew_brush (API, construct); if (ERR (API)) return -1; if (((left & 0x7fff) != left) || ((right & 0x7fff) != right)) { WMF_ERROR (API, "Coordinate out of range! (x > 0x7fff)"); return -1; } if (((top & 0x7fff) != top) || ((bottom & 0x7fff) != bottom)) { WMF_ERROR (API, "Coordinate out of range! (y > 0x7fff)"); return -1; } s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_RECTANGLE); s_rbox_ushort (API, &rbox, bottom); s_rbox_ushort (API, &rbox, right); s_rbox_ushort (API, &rbox, top); s_rbox_ushort (API, &rbox, left); return 0; } /** * Draw an ellipse. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param left lower x-coordinate * @param top lower y-coordinate * @param right upper x-coordinate * @param bottom upper y-coordinate * * Draw an ellipse in the given bounding box. Coordinate origin is at the top-left, * y increasing down. * * @return Returns 0 on success. */ int wmf_canvas_ellipse (wmfAPI * API, wmfCanvas * canvas, unsigned short left, unsigned short top, unsigned short right, unsigned short bottom) { unsigned long Size = 3 + 4; wmfRecordBox rbox; wmfConstruct * construct = (wmfConstruct *) canvas; if (construct == 0) return -1; s_setnew_pen (API, construct); s_setnew_brush (API, construct); if (ERR (API)) return -1; if (((left & 0x7fff) != left) || ((right & 0x7fff) != right)) { WMF_ERROR (API, "Coordinate out of range! (x > 0x7fff)"); return -1; } if (((top & 0x7fff) != top) || ((bottom & 0x7fff) != bottom)) { WMF_ERROR (API, "Coordinate out of range! (y > 0x7fff)"); return -1; } s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_ELLIPSE); s_rbox_ushort (API, &rbox, bottom); s_rbox_ushort (API, &rbox, right); s_rbox_ushort (API, &rbox, top); s_rbox_ushort (API, &rbox, left); return 0; } /** * Draw an arc, open or fill as chord or pie. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param left lower x-coordinate * @param top lower y-coordinate * @param right upper x-coordinate * @param bottom upper y-coordinate * @param x1 x-coordinate of start of arc * @param y1 y-coordinate of start of arc * @param x2 x-coordinate of end of arc * @param y2 y-coordinate of end of arc * @param type arc type (open, chord or pie) * * Draw an arc in the given bounding box, from (x1,y1) to (x2,y2). * Coordinate origin is at the top-left, y increasing down. * * @return Returns 0 on success. */ int wmf_canvas_arc (wmfAPI * API, wmfCanvas * canvas, unsigned short left, unsigned short top, unsigned short right, unsigned short bottom, unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, wmf_canvas_arc_t type) { unsigned long Size = 3 + 8; unsigned short Function; wmfRecordBox rbox; wmfConstruct * construct = (wmfConstruct *) canvas; if (construct == 0) return -1; switch (type) { default: case wmf_CA_open: Function = META_ARC; s_setnew_pen (API, construct); break; case wmf_CA_chord: Function = META_CHORD; s_setnew_pen (API, construct); s_setnew_brush (API, construct); break; case wmf_CA_pie: Function = META_PIE; s_setnew_pen (API, construct); s_setnew_brush (API, construct); break; } if (ERR (API)) return -1; if (((left & 0x7fff) != left ) || ((right & 0x7fff) != right) || ((x1 & 0x7fff) != x1 ) || ((x2 & 0x7fff) != x2 )) { WMF_ERROR (API, "Coordinate out of range! (x > 0x7fff)"); return -1; } if (((top & 0x7fff) != top ) || ((bottom & 0x7fff) != bottom) || ((y1 & 0x7fff) != y1 ) || ((y2 & 0x7fff) != y2 )) { WMF_ERROR (API, "Coordinate out of range! (y > 0x7fff)"); return -1; } s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, Function); s_rbox_ushort (API, &rbox, y1); s_rbox_ushort (API, &rbox, x1); s_rbox_ushort (API, &rbox, y2); s_rbox_ushort (API, &rbox, x2); s_rbox_ushort (API, &rbox, bottom); s_rbox_ushort (API, &rbox, right); s_rbox_ushort (API, &rbox, top); s_rbox_ushort (API, &rbox, left); return 0; } /** * Draw a line connecting a sequence of points. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param x array of N x-coordinates * @param y array of N y-coordinates * @param N number of points on line * * Draw a line connecting a sequence of points. * * @return Returns 0 on success. */ int wmf_canvas_polyline (wmfAPI * API, wmfCanvas * canvas, unsigned short * x, unsigned short * y, unsigned short N) { unsigned long Size = 3 + 1 + 2 * (unsigned long) N; unsigned short i; wmfRecordBox rbox; wmfConstruct * construct = (wmfConstruct *) canvas; if ((construct == 0) || (x == 0) || (y == 0) || (N < 2)) return -1; s_setnew_pen (API, construct); if (ERR (API)) return -1; for (i = 0; i < N; i++) { if ((x[i] & 0x7fff) != x[i]) { WMF_ERROR (API, "Coordinate out of range! (x > 0x7fff)"); Size = 0; break; } if ((y[i] & 0x7fff) != y[i]) { WMF_ERROR (API, "Coordinate out of range! (y > 0x7fff)"); Size = 0; break; } } if (Size == 0) return -1; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_POLYLINE); s_rbox_ushort (API, &rbox, N); for (i = 0; i < N; i++) { s_rbox_ushort (API, &rbox, x[i]); s_rbox_ushort (API, &rbox, y[i]); } return 0; } /** * Draw a polygon. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param x array of N x-coordinates * @param y array of N y-coordinates * @param N number of points of polygon * * Draw a polygon. * * @return Returns 0 on success. */ int wmf_canvas_polygon (wmfAPI * API, wmfCanvas * canvas, unsigned short * x, unsigned short * y, unsigned short N) { unsigned long Size = 3 + 1 + 2 * (unsigned long) N; unsigned short i; wmfRecordBox rbox; wmfConstruct * construct = (wmfConstruct *) canvas; if ((construct == 0) || (x == 0) || (y == 0) || (N < 3)) return -1; s_setnew_pen (API, construct); s_setnew_brush (API, construct); if (ERR (API)) return -1; for (i = 0; i < N; i++) { if ((x[i] & 0x7fff) != x[i]) { WMF_ERROR (API, "Coordinate out of range! (x > 0x7fff)"); Size = 0; break; } if ((y[i] & 0x7fff) != y[i]) { WMF_ERROR (API, "Coordinate out of range! (y > 0x7fff)"); Size = 0; break; } } if (Size == 0) return -1; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_POLYGON); s_rbox_ushort (API, &rbox, N); for (i = 0; i < N; i++) { s_rbox_ushort (API, &rbox, x[i]); s_rbox_ushort (API, &rbox, y[i]); } return 0; } /** * Draw a set of polygons. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param count number of polygons [i = 0..count-1] * @param x x[i] is array of N x-coordinates in ith polygon * @param y y[i] is array of N y-coordinates in ith polygon * @param N N[i] is number of points of ith polygon * * Draw a set of polygons. * * @return Returns 0 on success. */ int wmf_canvas_polygons (wmfAPI * API, wmfCanvas * canvas, unsigned short count, unsigned short ** x, unsigned short ** y, unsigned short * N) { unsigned long Size = 3 + 1 + (unsigned long) count; unsigned short i; unsigned short j; wmfRecordBox rbox; wmfConstruct * construct = (wmfConstruct *) canvas; if ((construct == 0) || (x == 0) || (y == 0) || (count == 0)) return -1; for (j = 0; j < count; j++) { if ((x[j] == 0) || (y[j] == 0) || (N[j] < 3)) { Size = 0; break; } Size += 2 * (unsigned long) N[j]; if (Size > 0x7fffffff) { Size = 0; break; } } if (Size == 0) return -1; s_setnew_pen (API, construct); s_setnew_brush (API, construct); if (ERR (API)) return -1; for (j = 0; j < count; j++) for (i = 0; i < N[j]; i++) { if ((x[j][i] & 0x7fff) != x[j][i]) { WMF_ERROR (API, "Coordinate out of range! (x > 0x7fff)"); Size = 0; break; } if ((y[j][i] & 0x7fff) != y[j][i]) { WMF_ERROR (API, "Coordinate out of range! (y > 0x7fff)"); Size = 0; break; } } if (Size == 0) return -1; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_POLYPOLYGON); s_rbox_ushort (API, &rbox, count); for (j = 0; j < count; j++) s_rbox_ushort (API, &rbox, N[j]); for (j = 0; j < count; j++) for (i = 0; i < N[j]; i++) { s_rbox_ushort (API, &rbox, x[j][i]); s_rbox_ushort (API, &rbox, y[j][i]); } return 0; } /** * Draw text. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param x x-coordinate of string * @param y y-coordinate of string * @param str the text string to be drawn * * Draw text. * * @return Returns 0 on success. */ int wmf_canvas_text (wmfAPI * API, wmfCanvas * canvas, unsigned short x, unsigned short y, const char * str) { unsigned short i; unsigned short length; unsigned short cc; unsigned long Size = 3 + 3; wmfRecordBox rbox; wmfConstruct * construct = (wmfConstruct *) canvas; if ((construct == 0) || (str == 0)) return -1; length = (strlen (str) + 1) / 2; /* TODO: do conversion from UTF-8 to... ?? */ if (length == 0) return 0; Size += length; if ((x & 0x7fff) != x) { WMF_ERROR (API, "Coordinate out of range! (x > 0x7fff)"); return -1; } if ((y & 0x7fff) != y) { WMF_ERROR (API, "Coordinate out of range! (y > 0x7fff)"); return -1; } s_setnew_font (API, construct); if (ERR (API)) return -1; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_TEXTOUT); s_rbox_ushort (API, &rbox, length); for (i = 0; i < length; i++) { cc = (unsigned short) str[2*i ]; cc |= ((unsigned short) str[2*i+1]) << 8; s_rbox_ushort (API, &rbox, cc); } s_rbox_ushort (API, &rbox, y); s_rbox_ushort (API, &rbox, x); return 0; } /** * Place a bitmap. * * @param API the API handle * @param canvas the Canvas handle for the metafile you are drawing to * @param x x-coordinate of bitmap * @param y y-coordinate of bitmap * @param width (scaled) width of bitmap * @param height (scaled) height of bitmap * @param buffer buffer containing bitmap * @param length length of buffer * * Place a bitmap. * * @return Returns 0 on success. */ int wmf_canvas_bitmap (wmfAPI * API, wmfCanvas * canvas, unsigned short x, unsigned short y, unsigned short width, unsigned short height, const unsigned char * buffer, unsigned long length) { unsigned short bmp_width; unsigned short bmp_height; unsigned long bmp_size; unsigned long Size = 3 + 10; wmfRecordBox rbox; wmfConstruct * construct = (wmfConstruct *) canvas; if ((construct == 0) || (buffer == 0) || (length == 0)) return -1; if ((x & 0x7fff) != x) { WMF_ERROR (API, "Coordinate out of range! (x > 0x7fff)"); return -1; } if ((y & 0x7fff) != y) { WMF_ERROR (API, "Coordinate out of range! (y > 0x7fff)"); return -1; } if ((bmp_size = s_bmp_query ()) == 0) { WMF_ERROR (API, "Bad bitmap!"); return -1; } if (ERR (API)) return -1; Size += bmp_size; s_append_record (API, construct, &rbox, 2 * Size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return -1; } s_rbox_ulong (API, &rbox, Size); s_rbox_ushort (API, &rbox, META_DIBSTRETCHBLT); s_rbox_ulong (API, &rbox, 0); /* ?? */ s_rbox_ushort (API, &rbox, bmp_height); s_rbox_ushort (API, &rbox, bmp_width); s_rbox_ushort (API, &rbox, 0); s_rbox_ushort (API, &rbox, 0); s_rbox_ushort (API, &rbox, height); s_rbox_ushort (API, &rbox, width); s_rbox_ushort (API, &rbox, y); s_rbox_ushort (API, &rbox, x); /* TODO */ return 0; } static unsigned long s_bmp_query (void) { return 0; } libwmf-0.2.13/src/recorder.h000066400000000000000000000100141441723000300156100ustar00rootroot00000000000000/* libwmf ("recorder.h"): library for wmf conversion Copyright (C) 2002 Francis James Franklin The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFRECORDER_H #define WMFRECORDER_H typedef struct _wmfCanvasPen wmfCanvasPen; typedef struct _wmfCanvasBrush wmfCanvasBrush; typedef struct _wmfCanvasFont wmfCanvasFont; typedef struct _wmfConstruct wmfConstruct; typedef struct _wmfRecordBox wmfRecordBox; struct _wmfCanvasPen { unsigned short style; unsigned short width; wmfRGB color; }; struct _wmfCanvasBrush { unsigned short style; unsigned short hatch; wmfRGB color; }; #ifdef CanvasFontBufferSize #undef CanvasFontBufferSize #endif #define CanvasFontBufferSize 64 struct _wmfCanvasFont { char name[CanvasFontBufferSize]; unsigned short height; unsigned short width; unsigned short escapement; unsigned short orientation; unsigned short weight; unsigned short italic; unsigned short underline; unsigned short strikeout; unsigned short charset; unsigned short out; unsigned short clip; unsigned short quality; unsigned short pitch; }; struct _wmfConstruct { unsigned char * buffer; unsigned long length; unsigned long max; unsigned long * rec_offset; unsigned long rec_count; unsigned long rec_max; unsigned short NoObjects; unsigned long MaxRecord; /* Maximum record size in *words* */ unsigned short width; unsigned short height; unsigned short dpi; wmfCanvasPen pen; wmfCanvasBrush brush; wmfCanvasFont font; wmfCanvasPen new_pen; wmfCanvasBrush new_brush; wmfCanvasFont new_font; unsigned short polyfill; unsigned short background; wmfRGB bgcolor; wmfRGB textcolor; }; struct _wmfRecordBox { unsigned char * start; unsigned char * end; unsigned char * ptr; }; static void s_convert_color (wmfRGB *, unsigned short *, unsigned short *); static void s_rbox_set (wmfAPI *, wmfConstruct *, wmfRecordBox *, unsigned long); static void s_rbox_skip_w (wmfAPI *, wmfRecordBox *); static void s_rbox_ushort (wmfAPI *, wmfRecordBox *, unsigned long); static void s_rbox_ulong (wmfAPI *, wmfRecordBox *, unsigned long); static void s_update_header (wmfAPI *, wmfConstruct *); static void s_append_record (wmfAPI *, wmfConstruct *, wmfRecordBox *, unsigned long); static int s_setnew_pen (wmfAPI *, wmfConstruct *); static int s_setnew_brush (wmfAPI *, wmfConstruct *); static int s_setnew_font (wmfAPI *, wmfConstruct *); static int s_create_pen (wmfAPI *, wmfConstruct *); /* use via s_setnew_pen */ static int s_create_brush (wmfAPI *, wmfConstruct *); /* use via s_setnew_brush */ static int s_create_font (wmfAPI *, wmfConstruct *); /* use via s_setnew_font */ static int s_delete (wmfAPI *, wmfConstruct *, unsigned short); /* use via s_setnew_* */ static int s_select (wmfAPI *, wmfConstruct *, unsigned short); /* use via s_setnew_* */ static int s_set_polyfill (wmfAPI *, wmfConstruct *); static int s_set_background (wmfAPI *, wmfConstruct *); static int s_set_bgcolor (wmfAPI *, wmfConstruct *); static int s_set_textcolor (wmfAPI *, wmfConstruct *); static int s_moveto (wmfAPI *, wmfConstruct *, unsigned short, unsigned short); static int s_lineto (wmfAPI *, wmfConstruct *, unsigned short, unsigned short); static unsigned long s_bmp_query (void); #endif /* ! WMFRECORDER_H */ libwmf-0.2.13/src/stream.c000066400000000000000000000165161441723000300153060ustar00rootroot00000000000000/* libwmf (stream.c): library for wmf conversion Copyright (C) 2001 The Free Software Foundation The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif #include #include "wmfdefs.h" #include "stream.h" /** * Open a compressed character output stream. * * @param API the API handle * @param out descriptor for a zlib compressed file stream * * wmf_ztream_create() creates a \b wmfStream (a character-based output stream) for output to a file opened * via \b zlib. (Writing compressed data to memory is not currently supported.) * * @return Returns a \b wmfStream pointer, or zero on failure. * Possible library error state of \b wmf_E_InsMem. */ wmfStream* wmf_ztream_create (wmfAPI* API,gzFile out) { wmfStream* stream = 0; wmfDefaultZtream* defstr = 0; if (out == 0) { WMF_DEBUG (API,"memory ztream (compressed stream) not supported"); return (0); } defstr = wmf_malloc (API,sizeof (wmfDefaultZtream)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (0); } defstr->API = API; defstr->out = out; defstr->offset = 0; /* Can't reset them anyway. */ defstr->max = 0; defstr->len = 0; defstr->buf = 0; defstr->ptr = 0; stream = wmf_malloc (API,sizeof (wmfStream)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); if (defstr->buf) wmf_free (API,defstr->buf); wmf_free (API,defstr); return (0); } stream->context = (void*) defstr; stream->sputs = wmf_stream_zputs; stream->reset = wmf_stream_rezet; return (stream); } /** * Open an uncompressed character output stream. * * @param API the API handle * @param out descriptor for a file stream; or zero to write to memory * * wmf_stream_create() creates a \b wmfStream (a character-based output stream) for output to a file or, if * \p out is zero, to memory. * * @return Returns a \b wmfStream pointer, or zero on failure. * Possible library error states of \b wmf_E_InsMem or \b wmf_E_BadFile. */ wmfStream* wmf_stream_create (wmfAPI* API,FILE* out) { wmfStream* stream = 0; wmfDefaultStream* defstr = 0; defstr = wmf_malloc (API,sizeof (wmfDefaultStream)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (0); } defstr->API = API; if (out) { defstr->out = out; defstr->offset = ftell (out); if ((defstr->offset < 0) && ((API->flags & WMF_OPT_IGNORE_NONFATAL) == 0)) { WMF_ERROR (API,"wmf_stream_create: ftell failed on output stream"); API->err = wmf_E_BadFile; wmf_free (API,defstr); return (0); } defstr->max = 0; defstr->len = 0; defstr->buf = 0; defstr->ptr = 0; } else { defstr->out = 0; defstr->offset = 0; defstr->max = 256; defstr->len = 0; defstr->buf = wmf_malloc (API,defstr->max * sizeof (char)); defstr->ptr = defstr->buf; if (ERR (API)) { WMF_DEBUG (API,"bailing..."); wmf_free (API,defstr); return (0); } } stream = wmf_malloc (API,sizeof (wmfStream)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); if (defstr->buf) wmf_free (API,defstr->buf); wmf_free (API,defstr); return (0); } stream->context = (void*) defstr; stream->sputs = wmf_stream_sputs; stream->reset = wmf_stream_reset; return (stream); } /** * Close a compressed character output stream. * * @param API the API handle * @param stream stream handle * @param buffer (unused) * @param length (unused) */ void wmf_ztream_destroy (wmfAPI* API,wmfStream* stream,char** buffer,unsigned long* length) { wmfDefaultZtream* defstr = 0; if (stream == 0) return; defstr = (wmfDefaultZtream*) stream->context; (*(defstr->ptr)) = 0; if (buffer) (*buffer) = defstr->buf; if (length) (*length) = defstr->len; wmf_free (API,stream->context); wmf_free (API,(void*) stream); } /** * Close an uncompressed character output stream. * * @param API the API handle * @param stream stream handle * @param buffer for memory return * @param length for length return * * In the case of write-to-memory, on return \p *buffer is an array of length \p length. */ void wmf_stream_destroy (wmfAPI* API,wmfStream* stream,char** buffer,unsigned long* length) { wmfDefaultStream* defstr = 0; if (stream == 0) return; defstr = (wmfDefaultStream*) stream->context; (*(defstr->ptr)) = 0; if (buffer) (*buffer) = defstr->buf; if (length) (*length) = defstr->len; wmf_free (API,stream->context); wmf_free (API,(void*) stream); } /** * Formatted print to character output stream. * * @param API the API handle * @param stream stream handle * @param format print format * * With syntax similar to printf(), wmf_stream_printf() prints a formatted message to a \b wmfStream * character stream. * * @return Returns the number of characters written, or zero on failure. * Possible library error state of \b wmf_E_InsMem. */ int wmf_stream_printf (wmfAPI* API,wmfStream* stream,char* format,...) { int length; va_list argp; va_start (argp,format); for (;;) { length = vsnprintf (API->string_buffer.buffer,API->string_buffer.length,format,argp); if ((length >= 0) && ((unsigned int)length < (API->string_buffer.length - 1))) break; /* i.e., success */ if (wmf_strbuf_grow (API) == 0) break; /* i.e., probably a memory failure */ } va_end (argp); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); return (0); } stream->sputs (API->string_buffer.buffer,stream->context); return (length); } /** * @internal */ int wmf_stream_zputs (char* str,void* context) { wmfDefaultZtream* defstr = (wmfDefaultZtream*) context; return (gzputs (defstr->out,str)); } /** * @internal */ int wmf_stream_sputs (char* str,void* context) { char* more = 0; char* sptr = 0; unsigned long max=0; wmfDefaultStream* defstr = (wmfDefaultStream*) context; wmfAPI* API = defstr->API; if (defstr->out) { return (fputs (str,defstr->out)); } sptr = str; while (*sptr) { if ((defstr->len + 1) == defstr->max) { more = (char*) wmf_realloc (API,defstr->buf,(defstr->max + 256) * sizeof (char)); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); defstr->max = max; return (EOF); } defstr->max += 256; defstr->buf = more; defstr->ptr = defstr->buf + defstr->len; } (*(defstr->ptr)) = (*sptr); defstr->ptr++; defstr->len++; sptr++; } return (0); } /** * @internal */ int wmf_stream_rezet (void* context) { WMF_DEBUG (((wmfDefaultZtream*) context)->API, "cannot reset ztream (compressed stream)"); return (0); } /** * @internal */ int wmf_stream_reset (void* context) { wmfDefaultStream* defstr = (wmfDefaultStream*) context; if (defstr->out) { return (fseek (defstr->out,defstr->offset,SEEK_SET)); } else { defstr->len = 0; defstr->ptr = defstr->buf; return (0); } } libwmf-0.2.13/src/stream.h000066400000000000000000000025001441723000300152770ustar00rootroot00000000000000/* libwmf ("stream.h"): library for wmf conversion Copyright (C) 2001 Francis James Franklin The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFAPI_STREAM_H #define WMFAPI_STREAM_H typedef struct _wmfDefaultZtream wmfDefaultZtream; typedef struct _wmfDefaultStream wmfDefaultStream; struct _wmfDefaultZtream { wmfAPI* API; gzFile out; z_off_t offset; unsigned long max; unsigned long len; char* buf; char* ptr; }; struct _wmfDefaultStream { wmfAPI* API; FILE* out; long offset; unsigned long max; unsigned long len; char* buf; char* ptr; }; #endif /* ! WMFAPI_STREAM_H */ libwmf-0.2.13/src/wmf.c000066400000000000000000000222361441723000300146000ustar00rootroot00000000000000/* libwmf (wmf.c): library for wmf conversion Copyright (C) 2001 Francis James Franklin The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ #include #include "wmfdefs.h" #ifdef _WIN32 #include static char installation_prefix[1000] = ""; BOOL WINAPI DllMain (HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) { char* p; switch (fdwReason) { case DLL_PROCESS_ATTACH: if (!GetModuleFileName ((HMODULE) hinstDLL, installation_prefix, sizeof (installation_prefix))) break; /* If the libwmf DLL is in a "bin" or "lib" subfolder, assume * it's a Unix-style installation tree. */ p = strrchr (installation_prefix, '\\'); if (p) { *p = '\0'; p = strrchr (installation_prefix, '\\'); if (p && (stricmp (p + 1, "bin") == 0 || stricmp (p + 1, "lib") == 0)) *p = '\0'; } else installation_prefix[0] = '\0'; break; } return TRUE; } char* _libwmf_get_fontdir (void) { static char retval[1000] = ""; if (retval[0] == '\0') { strcpy (retval, installation_prefix); strcat (retval, "\\share\\libwmf\\fonts"); } return retval; } #undef WMF_FONTDIR #define WMF_FONTDIR _libwmf_get_fontdir () #endif static void wmf_arg (unsigned long*,wmfAPI_Options*); static void wmf_arg_fontdirs (wmfAPI*,wmfAPI_Options*); /** * Creates and initializes an instance of the \b libwmf library for a specified device layer. * * @param API_return pointer to a wmfAPI* (the API handle use henceforth) * @param flags bitwise OR of WMF_OPT_ options * @param options pointer to wmfAPI_Options structure * * This is the first and necessary step when using \b libwmf. Options are passed via the wmfAPI_Options * structure and \p flags. wmf_api_create allocates the wmfAPI structure and initializes the color and * font tables, the metafile player, and the device layer. If successful then the pointer to the wmfAPI * structure is returned via \p API_return, otherwise all allocated memory is released and the library * exits with an appropriate error. * * @return The error state of the library: \b wmf_E_None indicates successful creation and initialization * of the library, and \p *API_return will be non-zero. For any other error value \p *API_return * will be zero. */ wmf_error_t wmf_api_create (wmfAPI** API_return,unsigned long flags,wmfAPI_Options* options) { wmfAPI* API = 0; wmf_error_t err = wmf_E_None; (*API_return) = 0; if (flags & WMF_OPT_ARGS) wmf_arg (&flags,options); flags |= API_STANDARD_INTERFACE; err = wmf_lite_create (&API,flags,options); if (err != wmf_E_None) return err; /* Create font data */ API->font_data = 0; API->fonts = 0; wmf_ipa_font_init (API,options); wmf_arg_fontdirs (API,options); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); err = wmf_api_destroy (API); return (err); } if ((flags & WMF_OPT_WRITE) && (options->write_file)) { wmf_write_begin (API, options->write_file); if (ERR (API)) { WMF_DEBUG (API,"bailing..."); err = wmf_api_destroy (API); return (err); } } /* Have successfully created the API... */ (*API_return) = API; return (wmf_E_None); } /** * Close the device layer, if open, and release all allocated memory attached to the memory manager. * * @param API the API handle * * @return The final error state of the library. */ wmf_error_t wmf_api_destroy (wmfAPI* API) /* Basically free all alloced memory */ { wmf_error_t err; /* associated with the API */ wmfFontmapData* FD = 0; FT_Library ft_lib = 0; if ((API->flags & API_FTLIBRARY_OPEN) && API->font_data) { FD = (wmfFontmapData*) ((wmfFontData*) API->font_data)->user_data; if (FD) ft_lib = FD->Library; } if (API->write_data) wmf_write_end (API); err = wmf_lite_destroy (API); if (ft_lib) FT_Done_FreeType (ft_lib); return (err); } /* Check command line for arg. * =========================== */ static void wmf_arg (unsigned long* flags,wmfAPI_Options* options) { char** argv = options->argv; int argc = options->argc; int arg = 0; while ((++arg) < argc) { if (strncmp (argv[arg],"--wmf-",6)) continue; if (strcmp (argv[arg],"--wmf-help") == 0) { /* This is ignored; the controlling program can check for it... */ continue; } if ((strcmp (argv[arg],"--wmf-error" ) == 0) || (strcmp (argv[arg],"--wmf-error=yes") == 0)) { (*flags) &= ~WMF_OPT_NO_ERROR; continue; } if (strcmp (argv[arg],"--wmf-error=no") == 0) { (*flags) |= WMF_OPT_NO_ERROR; continue; } if ((strcmp (argv[arg],"--wmf-debug" ) == 0) || (strcmp (argv[arg],"--wmf-debug=yes") == 0)) { (*flags) &= ~WMF_OPT_NO_DEBUG; continue; } if (strcmp (argv[arg],"--wmf-debug=no") == 0) { (*flags) |= WMF_OPT_NO_DEBUG; continue; } if (strcmp (argv[arg],"--wmf-sys-fonts") == 0) { (*flags) |= WMF_OPT_SYS_FONTS; continue; } if (strncmp (argv[arg],"--wmf-sys-fontmap=",18) == 0) { (*flags) |= WMF_OPT_SYS_FONTS; (*flags) |= WMF_OPT_SYS_FONTMAP; options->sys_fontmap_file = argv[arg] + 18; continue; } if (strcmp (argv[arg],"--wmf-xtra-fonts") == 0) { (*flags) |= WMF_OPT_XTRA_FONTS; continue; } if (strncmp (argv[arg],"--wmf-xtra-fontmap=",19) == 0) { (*flags) |= WMF_OPT_XTRA_FONTS; (*flags) |= WMF_OPT_XTRA_FONTMAP; options->xtra_fontmap_file = argv[arg] + 19; continue; } if (strncmp (argv[arg],"--wmf-gs-fontmap=",17) == 0) { (*flags) |= WMF_OPT_GS_FONTMAP; options->gs_fontmap_file = argv[arg] + 17; continue; } if (strncmp (argv[arg],"--wmf-write=",12) == 0) { (*flags) |= WMF_OPT_WRITE; options->write_file = argv[arg] + 12; continue; } if ((strcmp (argv[arg],"--wmf-ignore-nonfatal" ) == 0) || (strcmp (argv[arg],"--wmf-ignore-nonfatal=yes") == 0)) { (*flags) |= WMF_OPT_IGNORE_NONFATAL; continue; } if (strcmp (argv[arg],"--wmf-ignore-nonfatal=no") == 0) { (*flags) &= ~WMF_OPT_IGNORE_NONFATAL; continue; } if (strcmp (argv[arg],"--wmf-diagnostics") == 0) { (*flags) |= WMF_OPT_DIAGNOSTICS; continue; } if (strncmp (argv[arg],"--wmf-fontdir=",14) == 0) continue; /* ignore for now */ } (*flags) &= 0x000fffff; } static void wmf_arg_fontdirs (wmfAPI* API,wmfAPI_Options* options) { char** argv = options->argv; int argc = options->argc; int arg = 0; if (API->flags & WMF_OPT_ARGS) { while ((++arg) < argc) { if (strncmp (argv[arg],"--wmf-fontdir=",14) == 0) { wmf_ipa_font_dir (API,argv[arg] + 14); } } } if (API->flags & WMF_OPT_FONTDIRS) { argv = options->fontdirs; while (*argv) { wmf_ipa_font_dir (API,(*argv)); argv++; } } #ifndef _WIN32 wmf_ipa_font_dir (API,WMF_GS_FONTDIR); #endif wmf_ipa_font_dir (API,WMF_FONTDIR); } /** * @verbatim Additional wmf-related options: --wmf-error[=yes|no] switch for error reports. --wmf-debug[=yes|no] switch for debug reports, if any. --wmf-ignore-nonfatal[=yes|no] switch to ignore (some) non-fatal errors. --wmf-diagnostics emit diagnostic information. --wmf-fontdir= add to list of font directories. --wmf-sys-fonts use system fonts, if any found. --wmf-sys-fontmap= use system xml-fontmap file . --wmf-xtra-fonts use non-system fonts, if any found. --wmf-xtra-fontmap= use non-system xml-fontmap file . --wmf-gs-fontmap= use ghostscript file . --wmf-write= write metafile to . Report bugs to . @endverbatim * * @return Returns the above as a string. */ char* wmf_help () { static char* help = "\ Additional wmf-related options:\n\ \n\ --wmf-error[=yes|no] switch for error reports.\n\ --wmf-debug[=yes|no] switch for debug reports, if any.\n\ --wmf-ignore-nonfatal[=yes|no] switch to ignore (some) non-fatal errors.\n\ --wmf-diagnostics emit diagnostic information.\n\ --wmf-fontdir= add to list of font directories.\n\ --wmf-sys-fonts use system fonts, if any found.\n\ --wmf-sys-fontmap= use system xml-fontmap file .\n\ --wmf-xtra-fonts use non-system fonts, if any found.\n\ --wmf-xtra-fontmap= use non-system xml-fontmap file .\n\ --wmf-gs-fontmap= use ghostscript file .\n\ --wmf-write= write metafile to .\n\ \n\ Report bugs to .\n"; return (help); } libwmf-0.2.13/src/wmfdefs.h000066400000000000000000000045301441723000300154440ustar00rootroot00000000000000/* libwmf ("wmfdefs.h"): library for wmf conversion Copyright (C) 2000,2001 - various; see CREDITS, ChangeLog, and sources The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFDEFS_H #define WMFDEFS_H #include "libwmf/fund.h" #include "libwmf/types.h" #include "libwmf/api.h" #include "libwmf/defs.h" #include "libwmf/ipa.h" #include "libwmf/font.h" #include "libwmf/color.h" #include "libwmf/macro.h" #ifdef LIBWMF_INCLUDE_TRIO_H #include "extra/trio/trio.h" #endif #define WMF_BMP_OPAQUE 0xff /* I think, or should this be zero ?? */ /* API flags: flags to lie in range (1<<20) to (1<<31) */ #define API_DEVICE_OPEN (1<<20) #define API_FTLIBRARY_OPEN (1<<21) #define API_FILE_OPEN (1<<22) #define API_ENABLE_EDITING (1<<30) #define API_STANDARD_INTERFACE (1<<31) /* API-independent defs & macros *only* */ #ifdef MAX #undef MAX #endif #define MAX(a,b) (((a) > (b)) ? (a) : (b)) #ifdef MIN #undef MIN #endif #define MIN(a,b) (((a) < (b)) ? (a) : (b)) #ifdef ABS #undef ABS #endif /* ABS */ #define ABS(X) (((X) < 0) ? (-(X)) : (X)) #ifdef ROUND #undef ROUND #endif /* ROUND */ #define ROUND(X) (((X) < 0.0) ? ((X) - 0.5) : ((X) + 0.5)) #ifndef M_PI #define M_PI 3.14159265358979323846 #endif #ifndef PI #define PI 3.14159265358979323846 #endif #ifndef M_2PI #define M_2PI 6.28318530717958647692 #endif #ifndef M_SQRT2 #define M_SQRT2 1.41421356237309504880 #endif #define WMF_U16_U16_to_U32(A,B) ((((U32) (B)) << 16) + (U32) (A)); /* (Simple) API-dependent defs */ #define ERR(API) ((API)->err != wmf_E_None) #define DIAG(API) ((API)->flags & WMF_OPT_DIAGNOSTICS) #endif /* ! WMFDEFS_H */ libwmf-0.2.13/src/xml.c000066400000000000000000000262201441723000300146040ustar00rootroot00000000000000/* libwmf (xml.c): library for wmf conversion Copyright (C) 2000,2001 Francis James Franklin The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "wmfconfig.h" #endif /* HAVE_CONFIG_H */ #include #include #include "wmfdefs.h" #include "xml.h" static int s_value (char c) { int v = -1; if ((c >= 'A') && (c <= 'Z')) v = c - 'A'; else if ((c >= 'a') && (c <= 'z')) v = 26 + c - 'a'; else if ((c >= '0') && (c <= '9')) v = 52 + c - '0'; else if (c == '+') v = 62; else if (c == '/') v = 63; return v; } static void cd_append (wmfXML_InputData * data, const char * buffer, unsigned long length) { unsigned long i; unsigned long size; int v; char c; char * more = 0; const char * ptr = buffer; if ((length == 0) || (buffer == 0)) return; if (data->cd_buffer == 0) { more = (char *) wmf_malloc (data->API, length); if (ERR (data->API)) { WMF_DEBUG (data->API,"bailing..."); return; } data->cd_buffer = more; data->cd_bufptr = data->cd_buffer; data->cd_max = length; } if (data->cd_length + length > data->cd_max) { size = data->cd_length + length; more = (char *) wmf_realloc (data->API, data->cd_buffer, size); if (ERR (data->API)) { WMF_DEBUG (data->API,"bailing..."); return; } data->cd_buffer = more; data->cd_bufptr = data->cd_buffer + data->cd_length; data->cd_max = size; } for (i = 0; i < length; i++) { c = *ptr++; v = s_value (c); if (v >= 0) { *(data->cd_bufptr++) = c; data->cd_length++; } } } static void mem_append (wmfXML_InputData * data, unsigned char * buffer, unsigned long length) { unsigned char * more = 0; unsigned long size; if ((length == 0) || (buffer == 0)) return; if (data->mem_buffer == 0) { more = (unsigned char *) wmf_malloc (data->API, length); if (ERR (data->API)) { WMF_DEBUG (data->API,"bailing..."); return; } data->mem_buffer = more; data->mem_bufptr = data->mem_buffer; data->mem_max = length; } if (data->mem_length + length > data->mem_max) { size = data->mem_length + length; more = (unsigned char *) wmf_realloc (data->API, data->mem_buffer, size); if (ERR (data->API)) { WMF_DEBUG (data->API,"bailing..."); return; } data->mem_buffer = more; data->mem_bufptr = data->mem_buffer + data->mem_length; data->mem_max = size; } memcpy (data->mem_bufptr, buffer, length); data->mem_bufptr += length; data->mem_length += length; } static void store_clear (wmfAPI * API) { unsigned long i; for (i = 0; i < API->store.count; i++) wmf_attr_free (API, API->store.attrlist + i); API->store.count = 0; } static void store_atts (wmfAPI * API, const char * element_name, const char ** atts) { unsigned long size; const char ** attr = 0; const char * name = 0; const char * value = 0; wmfAttributes * more = 0; if (API->store.attrlist == 0) { more = (wmfAttributes *) wmf_malloc (API, 16 * sizeof (wmfAttributes)); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return; } API->store.attrlist = more; API->store.max = 16; API->store.count = 0; } if (API->store.count == API->store.max) { size = (API->store.max + 16) * sizeof (wmfAttributes); more = (wmfAttributes *) wmf_realloc (API, API->store.attrlist, size); if (ERR (API)) { WMF_DEBUG (API, "bailing..."); return; } API->store.attrlist = more; API->store.max += 16; } more = API->store.attrlist + API->store.count++; wmf_attr_new (API, more); more->name = wmf_strdup (API, element_name); if (atts == 0) return; attr = atts; while (*attr) { name = *attr++; value = *attr++; wmf_attr_add (API, more, name, value); } } static void xml_start (void * user_data, const char * name, const char ** atts) { wmfXML_InputData * input_data = (wmfXML_InputData *) user_data; wmfAPI* API = input_data->API; if (ERR (API)) return; if (input_data->wmfxml == 0) { if (strcmp (name, "wmfxml") == 0) { input_data->wmfxml = 1; } else { input_data->wmfxml = -1; } return; } if (input_data->wmfxml != 1) return; store_atts (API, name, atts); input_data->cd_bufptr = input_data->cd_buffer; input_data->cd_length = 0; } static void xml_data (void * user_data, const char * buffer, int length) { wmfXML_InputData * input_data = (wmfXML_InputData *) user_data; if (ERR (input_data->API)) return; if (input_data->wmfxml != 1) return; cd_append (input_data, buffer, (unsigned long) ((unsigned) length)); } static void xml_end (void * user_data, const char * name) { unsigned char buffer[54]; unsigned char * bufptr = 0; char * cd_ptr = 0; unsigned long i; unsigned long b32; unsigned long length; unsigned long remaining; wmfXML_InputData * input_data = (wmfXML_InputData *) user_data; wmfAttributes * attr = 0; wmfAPI * API = input_data->API; if (ERR (API)) return; if (input_data->wmfxml != 1) return; if (strcmp (name, "wmfxml") == 0) { for (i = 0; i < API->store.count; i++) { attr = API->store.attrlist + i; attr->buffer = input_data->mem_buffer + attr->offset; } return; } attr = API->store.attrlist + (API->store.count - 1); attr->length = 0; attr->offset = (unsigned long) (input_data->mem_bufptr - input_data->mem_buffer); cd_ptr = input_data->cd_buffer; remaining = input_data->cd_length; while (remaining >= 72) { bufptr = buffer; for (i = 0; i < 18; i++) { b32 = (unsigned long) ( s_value (*(cd_ptr++))); b32 = (unsigned long) ((b32 << 6) | s_value (*(cd_ptr++))); b32 = (unsigned long) ((b32 << 6) | s_value (*(cd_ptr++))); b32 = (unsigned long) ((b32 << 6) | s_value (*(cd_ptr++))); *bufptr++ = (unsigned char) ((b32 >> 16) ); *bufptr++ = (unsigned char) ((b32 >> 8) & 0xff); *bufptr++ = (unsigned char) ((b32 ) & 0xff); } mem_append (input_data, buffer, 54); remaining -= 72; attr->length += 54; } bufptr = buffer; length = 0; while (remaining >= 4) { b32 = (unsigned long) ((unsigned) s_value (*(cd_ptr++))); b32 = (b32 << 6) | (unsigned long) ((unsigned) s_value (*(cd_ptr++))); b32 = (b32 << 6) | (unsigned long) ((unsigned) s_value (*(cd_ptr++))); b32 = (b32 << 6) | (unsigned long) ((unsigned) s_value (*(cd_ptr++))); *bufptr++ = (unsigned char) ((b32 >> 16) ); *bufptr++ = (unsigned char) ((b32 >> 8) & 0xff); *bufptr++ = (unsigned char) ((b32 ) & 0xff); remaining -= 4; length += 3; } if (remaining == 3) { b32 = (unsigned long) ((unsigned) s_value (*(cd_ptr++))); b32 = (b32 << 6) | (unsigned long) ((unsigned) s_value (*(cd_ptr++))); b32 = (b32 << 6) | (unsigned long) ((unsigned) s_value (*(cd_ptr++))); b32 = (b32 << 6); *bufptr++ = (unsigned char) ((b32 >> 16) ); *bufptr++ = (unsigned char) ((b32 >> 8) & 0xff); remaining -= 3; length += 2; } if (remaining == 2) { b32 = (unsigned long) ((unsigned) s_value (*(cd_ptr++))); b32 = (b32 << 6) | (unsigned long) ((unsigned) s_value (*(cd_ptr++))); b32 = (b32 << 12); *bufptr++ = (unsigned char) ((b32 >> 16) ); remaining -= 2; length++; } if (remaining == 1) { WMF_DEBUG (API, "xml_end: WMF Record has unexpected length!"); } if (length) { mem_append (input_data, buffer, length); attr->length += length; } input_data->cd_bufptr = input_data->cd_buffer; input_data->cd_length = 0; } #ifdef HAVE_EXPAT #include #define EXML_BUFSIZE 1024 wmf_error_t wmf_wmfxml_import (wmfAPI * API, const char * wmfxml_filename) { char buffer[EXML_BUFSIZE]; int status; int length; FILE * in = 0; XML_Parser parser = 0; wmfXML_InputData input_data; input_data.API = API; input_data.cd_buffer = 0; input_data.cd_bufptr = 0; input_data.cd_length = 0; input_data.cd_max = 0; input_data.mem_buffer = 0; input_data.mem_bufptr = 0; input_data.mem_length = 0; input_data.mem_max = 0; input_data.wmfxml = 0; if (ERR (API)) return API->err; store_clear (API); if ( wmfxml_filename == 0) return wmf_E_BadFile; if (*wmfxml_filename == 0) return wmf_E_BadFile; in = fopen (wmfxml_filename, "r"); if (in == 0) { WMF_DEBUG (API, "wmf_wmfxml_import: unable to open file"); return wmf_E_BadFile; } parser = XML_ParserCreate (0); if (parser == 0) { WMF_DEBUG (API, "wmf_wmfxml_import: error creating expat-xml parser"); fclose (in); return wmf_E_InsMem; } XML_SetUserData (parser, (void *) (&input_data)); XML_SetStartElementHandler (parser, xml_start); XML_SetEndElementHandler (parser, xml_end); XML_SetCharacterDataHandler (parser, xml_data); status = 0; while (fgets (buffer, EXML_BUFSIZE, in) && (API->err == wmf_E_None)) { length = (int) strlen (buffer); if (XML_Parse (parser, buffer, length, 0) == 0) { WMF_DEBUG (API,"wmf_wmfxml_import: error parsing file"); status = 1; break; } } if ((status == 0) && (API->err == wmf_E_None)) XML_Parse (parser, buffer, 0, 1); XML_ParserFree (parser); fclose (in); if (input_data.cd_buffer) wmf_free (API, input_data.cd_buffer); if (ERR (API)) { if (input_data.mem_buffer) wmf_free (API, input_data.mem_buffer); return API->err; } API->flags |= API_ENABLE_EDITING; return wmf_mem_open (API, input_data.mem_buffer, (long) input_data.mem_length); } #endif /* HAVE_EXPAT */ #ifdef HAVE_LIBXML2 #include #include wmf_error_t wmf_wmfxml_import (wmfAPI * API, const char * wmfxml_filename) { xmlParserCtxtPtr ctxt = 0; xmlSAXHandler sax; wmfXML_InputData input_data; input_data.API = API; input_data.cd_buffer = 0; input_data.cd_bufptr = 0; input_data.cd_length = 0; input_data.cd_max = 0; input_data.mem_buffer = 0; input_data.mem_bufptr = 0; input_data.mem_length = 0; input_data.mem_max = 0; input_data.wmfxml = 0; if (ERR (API)) return API->err; store_clear (API); if ( wmfxml_filename == 0) return wmf_E_BadFile; if (*wmfxml_filename == 0) return wmf_E_BadFile; memset ((void*) (&sax), 0, sizeof (xmlSAXHandler)); sax.startElement = (startElementSAXFunc)xml_start; sax.endElement = (endElementSAXFunc)xml_end; sax.characters = (charactersSAXFunc)xml_data; ctxt = xmlCreateFileParserCtxt (wmfxml_filename); if (ctxt == 0) return wmf_E_InsMem; ctxt->sax = &sax; ctxt->userData = (void*) (&input_data); xmlParseDocument (ctxt); ctxt->sax = 0; xmlFreeParserCtxt (ctxt); if (input_data.cd_buffer) wmf_free (API, input_data.cd_buffer); if (ERR (API)) { if (input_data.mem_buffer) wmf_free (API, input_data.mem_buffer); return API->err; } API->flags |= API_ENABLE_EDITING; return wmf_mem_open (API, input_data.mem_buffer, (long) input_data.mem_length); } #endif /* HAVE_LIBXML2 */ libwmf-0.2.13/src/xml.h000066400000000000000000000023451441723000300146130ustar00rootroot00000000000000/* libwmf ("xml.h"): library for wmf conversion Copyright (C) 2000,2001 Francis James Franklin The libwmf Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The libwmf Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the libwmf Library; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef WMFXML_H #define WMFXML_H typedef struct _wmfXML_InputData wmfXML_InputData; struct _wmfXML_InputData { wmfAPI * API; char * cd_buffer; char * cd_bufptr; unsigned long cd_length; unsigned long cd_max; unsigned char * mem_buffer; unsigned char * mem_bufptr; unsigned long mem_length; unsigned long mem_max; int wmfxml; }; #endif /* ! WMFXML_H */ libwmf-0.2.13/wmfconfig.h.in000066400000000000000000000103511441723000300156040ustar00rootroot00000000000000/* wmfconfig.h.in. Generated from configure.ac by autoheader. */ #ifndef LIBWMF_CONFIG_H #define LIBWMF_CONFIG_H /* Define if you have expat. */ #undef HAVE_EXPAT /* Define if you have libxml2. */ #undef HAVE_LIBXML2 /* Define if you have libpng. */ #undef HAVE_LIBPNG /* Define if you have libjpeg. */ #undef HAVE_LIBJPEG /* defining this will disable egs, fig, svg & foreign layers */ #undef WITHOUT_LAYERS /* define if you have libgd */ #undef HAVE_GD /* define if you wish to build the magick device layer. */ #undef ENABLE_MAGICK /* Define if you have GNU plotutils (libplot) >= 2.4.0. */ #undef HAVE_LIBPLOT /* Define if you have the header file. */ #undef HAVE_UNISTD_H /* define if you have strstr */ #undef HAVE_STRSTR /* define if you have [_]vsnprintf */ #undef HAVE_VSNPRINTF /* Define to `_vsnprintf' if necessary */ #undef vsnprintf /* define if you have [_]snprintf */ #undef HAVE_SNPRINTF /* Define to `_snprintf' if necessary */ #undef snprintf /* define if you have vfscanf */ #undef HAVE_VFSCANF /* Define to `unsigned' if doesn't define. */ #undef size_t /* Define to `long' if does not define. */ #undef off_t /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the `fprintf' function. */ #undef HAVE_FPRINTF /* Define to 1 if you have the `fscanf' function. */ #undef HAVE_FSCANF /* 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 `printf' function. */ #undef HAVE_PRINTF /* Define to 1 if you have the `scanf' function. */ #undef HAVE_SCANF /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF /* Define to 1 if you have the `sprintf' function. */ #undef HAVE_SPRINTF /* Define to 1 if you have the `sscanf' function. */ #undef HAVE_SSCANF /* 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 `strstr' function. */ #undef HAVE_STRSTR /* 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_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `vfprintf' function. */ #undef HAVE_VFPRINTF /* Define to 1 if you have the `vfscanf' function. */ #undef HAVE_VFSCANF /* Define to 1 if you have the `vprintf' function. */ #undef HAVE_VPRINTF /* Define to 1 if you have the `vscanf' function. */ #undef HAVE_VSCANF /* Define to 1 if you have the `vsnprintf' function. */ #undef HAVE_VSNPRINTF /* Define to 1 if you have the `vsprintf' function. */ #undef HAVE_VSPRINTF /* Define to 1 if you have the `vsscanf' function. */ #undef HAVE_VSSCANF /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* 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 home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if the X Window System is missing or not being used. */ #undef X_DISPLAY_MISSING /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `long int' if does not define. */ #undef off_t /* Define to `unsigned int' if does not define. */ #undef size_t /* If any *printf / *scanf functions are missing, cover them with trio functions */ #define TRIO_REPLACE_STDIO 1 #endif /* ! LIBWMF_CONFIG_H */