pax_global_header00006660000000000000000000000064133102564710014514gustar00rootroot0000000000000052 comment=1c779da68910e183c8e3139b441ab367abe3d7e1 colorize-0.64/000077500000000000000000000000001331025647100132735ustar00rootroot00000000000000colorize-0.64/.gitignore000066400000000000000000000000471331025647100152640ustar00rootroot00000000000000/a.out /colorize /debug.txt /version.h colorize-0.64/AUTHORS000066400000000000000000000002771331025647100143510ustar00rootroot00000000000000Authors of Colorize. Steven Schubiger. Main author. Urs Fässler. Suggestions on refactoring cleaning lines. Axel Beckert. Help with Debian Packaging. Elias Diem. Initial .gitignore. colorize-0.64/COPYING000066400000000000000000001045131331025647100143320ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . colorize-0.64/HACKING000066400000000000000000000005541331025647100142660ustar00rootroot00000000000000colorize Hacking ================ Git dependency for version output --------------------------------- The colorize sources ought to be made available as a Git repository, otherwise no detailed git version hash may be included in the version output of colorize. Even versions of older commits will no longer be accessible. See version.pl for some in depth code. colorize-0.64/Makefile000066400000000000000000000014041331025647100147320ustar00rootroot00000000000000.PHONY: check check_valgrind install clean release .SUFFIXES: .SUFFIXES: .c .o SHELL=/bin/sh CC=gcc CFLAGS:=-ansi -pedantic $(CFLAGS) FLAGS= # command-line macro colorize: colorize.c perl ./version.pl > version.h $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o colorize colorize.c \ -DCPPFLAGS="\"$(CPPFLAGS)\"" -DCFLAGS="\"$(CFLAGS)\"" -DLDFLAGS="\"$(LDFLAGS)\"" \ -DHAVE_VERSION $(FLAGS) check: perl ./test.pl --regular check_valgrind: @which valgrind >/dev/null 2>&1 || (printf '%s\n' "valgrind not found" && exit 1) perl ./test.pl --valgrind || exit 0 install: test ! -d $(DESTDIR)/usr/bin && mkdir -p $(DESTDIR)/usr/bin || exit 0 cp colorize $(DESTDIR)/usr/bin clean: rm -f a.out colorize debug.txt version.h release: sh ./release.sh colorize-0.64/README000066400000000000000000000041521331025647100141550ustar00rootroot00000000000000colorize ======== Description ----------- Colorize aims at being a small, independent and handy command-line text colorizing tool. It emits ANSI escape sequences in order to color lines of text; also, sequences emitted by colorize or foreign programs may be cleared. The main code is written in C (c89 mostly), whereas the test script consists of Perl code. Colorize is known to build and test successfully on Linux and Net/Open/MirBSD. Other platforms are untested, so be prepared for it to eventually not work as expected there. Requirements ------------ gcc make perl valgrind (optional) Build instructions ------------------ Issue `make' to build colorize. Once completed, run the tests with `make check'. Then you should most likely have a working binary. Next, install it with `make install' (may require elevated user permissions). Finally, clean up the working directory through `make clean'. Customizing instructions ------------------------ The default character ('/') which separates the foreground from the background color may be redefined: `make FLAGS=-DCOLOR_SEP_CHAR_COLON' -> defines as ':' `make FLAGS=-DCOLOR_SEP_CHAR_SLASH' -> defines as '/' Debugging instructions ---------------------- For the sake of completeness, colorize can be also built with debugging output by issuing `make FLAGS=-DDEBUG'. The intention is to provide some memory allocation diagnostics (and might be extended in future). Usually, a debugging build is not required. Furthermore, tests can be run through valgrind by issuing, for example, `make check_valgrind 2>&1 | tee valgrind.out'. The file provided here for the `tee' invocation will be populated with the captured output from both standard output and error stream. Documentation ------------- See man page source file: colorize.1. Usage example ------------- In ~/.bashrc: | ls_color() { | ls "$@" | colorize green - | } | alias ls=ls_color This excerpt defines an alias which will set the color being printed for literal ls invocations to green. Afterword --------- Let me know, if you have ideas, bug reports, patches, etc. Author ------ Steven Schubiger colorize-0.64/colorize.1000066400000000000000000000041451331025647100152070ustar00rootroot00000000000000.TH COLORIZE 1 "2018-01-31" "colorize v0.64" "User Commands" .SH NAME colorize \- colorize text on terminal with ANSI escape sequences .SH SYNOPSIS \fBcolorize\fR [\fIoption\fR]... (\fIforeground\fR) [\fIfile\fR] .PP \fBcolorize\fR [\fIoption\fR]... (\fIforeground\fR)/(\fIbackground\fR) [\fIfile\fR] .PP \fBcolorize\fR \-\-clean[\-all] [\fIfile\fR] .PP \fBcolorize\fR \-hV .SH DESCRIPTION Colorizes text read from standard input stream or file by using ANSI escape sequences (and also vice versa, i.e. cleaning text from sequences) and prints resulting output to the terminal. .PP When colorizing text, (foreground) and eventually (background) may be either one of following color values: none, black, red, green, yellow, blue, magenta, cyan, white, default or random. First character of color name in upper case denotes increased intensity, whereas for lower case colors will be of normal intensity. If "none" is chosen, no escape sequences will be emitted. .PP Color escape sequences are added per each line, hence colored lines can be safely extracted. .PP When de-colorizing text, \-\-clean omits color escape sequences which were emitted by colorize (see NOTES for list), whereas \-\-clean\-all omits all valid ones. If in doubt, consider using \-\-clean\-all. .SH OPTIONS .TP .BR \-\-attr=\fIATTR1,ATTR2,...\fR set attributes by name .RS Attributes: bold, underscore, blink, reverse and concealed. .RE .TP .BR \-\-clean clean text from color escape sequences emitted by colorize .TP .BR \-\-clean\-all clean text from all valid color escape sequences .TP .BR \-\-exclude\-random=\fICOLOR\fR text color to be excluded when selecting a random foreground color .TP .BR \-\-omit\-color\-empty omit printing color escape sequences for empty lines .TP .BR \-h ", " \-\-help show help screen and exit .TP .BR \-V ", " \-\-version display version data and exit .SH NOTES The list of color escape sequence codes being emitted and omitted is as follows: .IP * 4 30-37,39 (foreground colors) .IP * 4 1-9;30-37,39 (foreground colors with attributes) .IP * 4 40-47,49 (background colors) .IP * 4 0 (reset) .SH AUTHOR Steven Schubiger colorize-0.64/colorize.c000066400000000000000000001257441331025647100153020ustar00rootroot00000000000000/* * colorize - Read text from standard input stream or file and print * it colorized through use of ANSI escape sequences * * Copyright (c) 2011-2018 Steven Schubiger * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #define _DEFAULT_SOURCE #define _BSD_SOURCE #define _XOPEN_SOURCE 700 #define _FILE_OFFSET_BITS 64 #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef DEBUG # define DEBUG 0 #endif #define str(arg) #arg #define to_str(arg) str(arg) #define streq(s1, s2) (strcmp (s1, s2) == 0) #define strneq(s1, s2, n) (strncmp (s1, s2, n) == 0) #if !DEBUG # define xmalloc(size) malloc_wrap(size) # define xcalloc(nmemb, size) calloc_wrap(nmemb, size) # define xrealloc(ptr, size) realloc_wrap(ptr, size) # define xstrdup(str) strdup_wrap(str, NULL, 0) # define str_concat(str1, str2) str_concat_wrap(str1, str2, NULL, 0) #else # define xmalloc(size) malloc_wrap_debug(size, __FILE__, __LINE__) # define xcalloc(nmemb, size) calloc_wrap_debug(nmemb, size, __FILE__, __LINE__) # define xrealloc(ptr, size) realloc_wrap_debug(ptr, size, __FILE__, __LINE__) # define xstrdup(str) strdup_wrap(str, __FILE__, __LINE__) # define str_concat(str1, str2) str_concat_wrap(str1, str2, __FILE__, __LINE__) #endif #define free_null(ptr) free_wrap((void **)&ptr) #if defined(BUF_SIZE) && (BUF_SIZE <= 0 || BUF_SIZE > 65536) # undef BUF_SIZE #endif #ifndef BUF_SIZE # define BUF_SIZE 4096 #endif #define LF 0x01 #define CR 0x02 #define SKIP_LINE_ENDINGS(flags) ((flags) == (CR|LF) ? 2 : 1) #define VALID_FILE_TYPE(mode) (S_ISREG (mode) || S_ISLNK (mode) || S_ISFIFO (mode)) #define STACK_VAR(ptr) do { \ stack_var (&vars_list, &stacked_vars, stacked_vars, ptr); \ } while (false) #define RELEASE_VAR(ptr) do { \ release_var (vars_list, stacked_vars, (void **)&ptr); \ } while (false) #if !DEBUG # define MEM_ALLOC_FAIL() do { \ fprintf (stderr, "%s: memory allocation failure\n", program_name); \ exit (EXIT_FAILURE); \ } while (false) #else # define MEM_ALLOC_FAIL_DEBUG(file, line) do { \ fprintf (stderr, "Memory allocation failure in source file %s, line %u\n", file, line); \ exit (EXIT_FAILURE); \ } while (false) #endif #define ABORT_TRACE() \ fprintf (stderr, "Aborting in source file %s, line %u\n", __FILE__, __LINE__); \ abort (); #define CHECK_COLORS_RANDOM(color1, color2) \ streq (color_names[color1]->name, "random") \ && (streq (color_names[color2]->name, "none") \ || streq (color_names[color2]->name, "default")) #define ALLOC_COMPLETE_PART_LINE 8 #if defined(COLOR_SEP_CHAR_COLON) # define COLOR_SEP_CHAR ':' #elif defined(COLOR_SEP_CHAR_SLASH) # define COLOR_SEP_CHAR '/' #else # define COLOR_SEP_CHAR '/' #endif #if DEBUG # define DEBUG_FILE "debug.txt" #endif #define MAX_ATTRIBUTE_CHARS (6 * 2) #define PROGRAM_NAME "colorize" #define VERSION "0.64" typedef enum { false, true } bool; struct color_name { char *name; char *orig; }; struct color { const char *name; const char *code; }; static const struct color fg_colors[] = { { "none", NULL }, { "black", "30m" }, { "red", "31m" }, { "green", "32m" }, { "yellow", "33m" }, { "blue", "34m" }, { "magenta", "35m" }, { "cyan", "36m" }, { "white", "37m" }, { "default", "39m" }, }; static const struct color bg_colors[] = { { "none", NULL }, { "black", "40m" }, { "red", "41m" }, { "green", "42m" }, { "yellow", "43m" }, { "blue", "44m" }, { "magenta", "45m" }, { "cyan", "46m" }, { "white", "47m" }, { "default", "49m" }, }; struct bytes_size { unsigned int size; char unit; }; enum { FMT_GENERIC, FMT_STRING, FMT_QUOTE, FMT_COLOR, FMT_RANDOM, FMT_ERROR, FMT_FILE, FMT_TYPE }; static const char *formats[] = { "%s", /* generic */ "%s '%s'", /* string */ "%s `%s' %s", /* quote */ "%s color '%s' %s", /* color */ "%s color '%s' %s '%s'", /* random */ "less than %lu bytes %s", /* error */ "%s: %s", /* file */ "%s: %s: %s", /* type */ }; enum { GENERIC, FOREGROUND = 0, BACKGROUND }; static const struct { const struct color *entries; unsigned int count; const char *desc; } tables[] = { { fg_colors, sizeof (fg_colors) / sizeof (struct color), "foreground" }, { bg_colors, sizeof (bg_colors) / sizeof (struct color), "background" }, }; enum { OPT_ATTR = 1, OPT_CLEAN, OPT_CLEAN_ALL, OPT_EXCLUDE_RANDOM, OPT_OMIT_COLOR_EMPTY, OPT_HELP, OPT_VERSION }; static int opt_type; static const struct option long_opts[] = { { "attr", required_argument, &opt_type, OPT_ATTR }, { "clean", no_argument, &opt_type, OPT_CLEAN }, { "clean-all", no_argument, &opt_type, OPT_CLEAN_ALL }, { "exclude-random", required_argument, &opt_type, OPT_EXCLUDE_RANDOM }, { "omit-color-empty", no_argument, &opt_type, OPT_OMIT_COLOR_EMPTY }, { "help", no_argument, &opt_type, OPT_HELP }, { "version", no_argument, &opt_type, OPT_VERSION }, { NULL, 0, NULL, 0 }, }; enum attr_type { ATTR_BOLD = 0x01, ATTR_UNDERSCORE = 0x02, ATTR_BLINK = 0x04, ATTR_REVERSE = 0x08, ATTR_CONCEALED = 0x10 }; struct attr { const char *name; unsigned int val; enum attr_type type; }; static FILE *stream; #if DEBUG static FILE *log; #endif static unsigned int stacked_vars; static void **vars_list; static bool clean; static bool clean_all; static bool omit_color_empty; static char attr[MAX_ATTRIBUTE_CHARS + 1]; static char *exclude; static const char *program_name; static void process_opts (int, char **); static void process_opt_attr (const char *); static void write_attr (const struct attr *, unsigned int *); static void print_hint (void); static void print_help (void); static void print_version (void); static void cleanup (void); static void free_color_names (struct color_name **); static void process_args (unsigned int, char **, char *, const struct color **, const char **, FILE **); static void process_file_arg (const char *, const char **, FILE **); static void skip_path_colors (const char *, const char *, const struct stat *); static void gather_color_names (const char *, char *, struct color_name **); static void read_print_stream (const char *, const struct color **, const char *, FILE *); static void merge_print_line (const char *, const char *, FILE *); static void complete_part_line (const char *, char **, FILE *); static bool get_next_char (char *, const char **, FILE *, bool *); static void save_char (char, char **, size_t *, size_t *); static void find_color_entries (struct color_name **, const struct color **); static void find_color_entry (const struct color_name *, unsigned int, const struct color **); static void print_line (const char *, const struct color **, const char * const, unsigned int, bool); static void print_clean (const char *); static bool is_esc (const char *); static const char *get_end_of_esc (const char *); static const char *get_end_of_text (const char *); static void print_text (const char *, size_t); static bool gather_esc_offsets (const char *, const char **, const char **); static bool validate_esc_clean_all (const char **); static bool validate_esc_clean (int, unsigned int, unsigned int *, const char **, bool *); static bool is_reset (int, unsigned int, const char **); static bool is_attr (int, unsigned int, unsigned int, const char **); static bool is_fg_color (int, const char **); static bool is_bg_color (int, unsigned int, const char **); #if !DEBUG static void *malloc_wrap (size_t); static void *calloc_wrap (size_t, size_t); static void *realloc_wrap (void *, size_t); #else static void *malloc_wrap_debug (size_t, const char *, unsigned int); static void *calloc_wrap_debug (size_t, size_t, const char *, unsigned int); static void *realloc_wrap_debug (void *, size_t, const char *, unsigned int); #endif static void free_wrap (void **); static char *strdup_wrap (const char *, const char *, unsigned int); static char *str_concat_wrap (const char *, const char *, const char *, unsigned int); static bool get_bytes_size (unsigned long, struct bytes_size *); static char *get_file_type (mode_t); static bool has_color_name (const char *, const char *); static FILE *open_file (const char *, const char *); static void vfprintf_diag (const char *, ...); static void vfprintf_fail (const char *, ...); static void stack_var (void ***, unsigned int *, unsigned int, void *); static void release_var (void **, unsigned int, void **); extern int optind; int main (int argc, char **argv) { unsigned int arg_cnt; const struct color *colors[2] = { NULL, /* foreground */ NULL, /* background */ }; const char *file = NULL; program_name = argv[0]; atexit (cleanup); setvbuf (stdout, NULL, _IOLBF, 0); #if DEBUG log = open_file (DEBUG_FILE, "w"); #endif attr[0] = '\0'; process_opts (argc, argv); arg_cnt = argc - optind; if (clean || clean_all) { if (clean && clean_all) vfprintf_fail (formats[FMT_GENERIC], "--clean and --clean-all switch are mutually exclusive"); if (arg_cnt > 1) { const char *const format = "%s %s"; const char *const message = "switch cannot be used with more than one file"; if (clean) vfprintf_fail (format, "--clean", message); else if (clean_all) vfprintf_fail (format, "--clean-all", message); } } else { if (arg_cnt == 0 || arg_cnt > 2) { vfprintf_diag ("%u arguments provided, expected 1-2 arguments or clean option", arg_cnt); print_hint (); exit (EXIT_FAILURE); } } if (clean || clean_all) process_file_arg (argv[optind], &file, &stream); else process_args (arg_cnt, &argv[optind], &attr[0], colors, &file, &stream); read_print_stream (&attr[0], colors, file, stream); RELEASE_VAR (exclude); exit (EXIT_SUCCESS); } #define PRINT_HELP_EXIT() \ print_help (); \ exit (EXIT_SUCCESS); #define PRINT_VERSION_EXIT() \ print_version (); \ exit (EXIT_SUCCESS); extern char *optarg; static void process_opts (int argc, char **argv) { int opt; while ((opt = getopt_long (argc, argv, "hV", long_opts, NULL)) != -1) { switch (opt) { case 0: /* long opts */ switch (opt_type) { case OPT_ATTR: process_opt_attr (optarg); break; case OPT_CLEAN: clean = true; break; case OPT_CLEAN_ALL: clean_all = true; break; case OPT_EXCLUDE_RANDOM: { bool valid = false; unsigned int i; exclude = xstrdup (optarg); STACK_VAR (exclude); for (i = 1; i < tables[GENERIC].count - 1; i++) /* skip color none and default */ { const struct color *entry = &tables[GENERIC].entries[i]; if (streq (exclude, entry->name)) { valid = true; break; } } if (!valid) vfprintf_fail (formats[FMT_GENERIC], "--exclude-random switch must be provided a plain color"); break; } case OPT_OMIT_COLOR_EMPTY: omit_color_empty = true; break; case OPT_HELP: PRINT_HELP_EXIT (); case OPT_VERSION: PRINT_VERSION_EXIT (); default: /* never reached */ ABORT_TRACE (); } break; case 'h': PRINT_HELP_EXIT (); case 'V': PRINT_VERSION_EXIT (); case '?': print_hint (); exit (EXIT_FAILURE); default: /* never reached */ ABORT_TRACE (); } } } static void process_opt_attr (const char *p) { /* If attributes are added to this "list", also increase MAX_ATTRIBUTE_CHARS! */ const struct attr attrs[] = { { "bold", 1, ATTR_BOLD }, { "underscore", 4, ATTR_UNDERSCORE }, { "blink", 5, ATTR_BLINK }, { "reverse", 7, ATTR_REVERSE }, { "concealed", 8, ATTR_CONCEALED }, }; unsigned int attr_types = 0; while (*p) { const char *s; if (!isalnum (*p)) vfprintf_fail (formats[FMT_GENERIC], "--attr switch must be provided a string"); s = p; while (isalnum (*p)) p++; if (*p != '\0' && *p != ',') vfprintf_fail (formats[FMT_GENERIC], "--attr switch must have strings separated by ,"); else { bool valid_attr = false; unsigned int i; for (i = 0; i < sizeof (attrs) / sizeof (struct attr); i++) { const size_t name_len = strlen (attrs[i].name); if ((size_t)(p - s) == name_len && strneq (s, attrs[i].name, name_len)) { write_attr (&attrs[i], &attr_types); valid_attr = true; break; } } if (!valid_attr) { char *attr_invalid = xmalloc ((p - s) + 1); STACK_VAR (attr_invalid); strncpy (attr_invalid, s, p - s); attr_invalid[p - s] = '\0'; vfprintf_fail ("--attr switch attribute '%s' is not valid", attr_invalid); RELEASE_VAR (attr_invalid); /* never reached */ } } if (*p) p++; } } static void write_attr (const struct attr *attr_i, unsigned int *attr_types) { const unsigned int val = attr_i->val; const enum attr_type attr_type = attr_i->type; const char *attr_name = attr_i->name; if (*attr_types & attr_type) vfprintf_fail ("--attr switch has attribute '%s' twice or more", attr_name); snprintf (attr + strlen (attr), 3, "%u;", val); *attr_types |= attr_type; } static void print_hint (void) { fprintf (stderr, "Type `%s --help' for help screen.\n", program_name); } static void print_help (void) { struct opt_data { const char *name; const char *short_opt; const char *arg; }; const struct opt_data opts_data[] = { { "attr", NULL, "=ATTR1,ATTR2,..." }, { "exclude-random", NULL, "=COLOR" }, { "help", "h", NULL }, { "version", "V", NULL }, }; const struct option *opt = long_opts; unsigned int i; printf ("Usage: %s (foreground) OR (foreground)%c(background) OR --clean[-all] [-|file]\n\n", program_name, COLOR_SEP_CHAR); printf ("\tColors (foreground) (background)\n"); for (i = 0; i < tables[FOREGROUND].count; i++) { const struct color *entry = &tables[FOREGROUND].entries[i]; const char *name = entry->name; const char *code = entry->code; if (code) printf ("\t\t{\033[%s#\033[0m} [%c%c]%s%*s%s\n", code, toupper (*name), *name, name + 1, 10 - (int)strlen (name), " ", name); else printf ("\t\t{-} %s%*s%s\n", name, 13 - (int)strlen (name), " ", name); } printf ("\t\t{*} [Rr]%s%*s%s [--exclude-random=]\n", "andom", 10 - (int)strlen ("random"), " ", "random"); printf ("\n\tFirst character of color name in upper case denotes increased intensity,\n"); printf ("\twhereas for lower case colors will be of normal intensity.\n"); printf ("\n\tOptions\n"); for (; opt->name; opt++) { const struct opt_data *opt_data = NULL; unsigned int i; for (i = 0; i < sizeof (opts_data) / sizeof (struct opt_data); i++) if (streq (opt->name, opts_data[i].name)) { opt_data = &opts_data[i]; break; } if (opt_data) { if (opt_data->short_opt) printf ("\t\t-%s, --%s\n", opt_data->short_opt, opt->name); else printf ("\t\t --%s%s\n", opt->name, opt_data->arg); } else printf ("\t\t --%s\n", opt->name); } printf ("\n"); } static void print_version (void) { #ifdef HAVE_VERSION # include "version.h" #else const char *const version = NULL; #endif const char *version_prefix, *version_string; const char *c_flags, *ld_flags, *cpp_flags; const char *const desc_flags_unknown = "unknown"; struct bytes_size bytes_size; bool debug; #ifdef CFLAGS c_flags = to_str (CFLAGS); #else c_flags = desc_flags_unknown; #endif #ifdef LDFLAGS ld_flags = to_str (LDFLAGS); #else ld_flags = desc_flags_unknown; #endif #ifdef CPPFLAGS cpp_flags = to_str (CPPFLAGS); #else cpp_flags = desc_flags_unknown; #endif #if DEBUG debug = true; #else debug = false; #endif version_prefix = version ? "" : "v"; version_string = version ? version : VERSION; printf ("%s %s%s (compiled at %s, %s)\n", PROGRAM_NAME, version_prefix, version_string, __DATE__, __TIME__); printf ("Compiler flags: %s\n", c_flags); printf ("Linker flags: %s\n", ld_flags); printf ("Preprocessor flags: %s\n", cpp_flags); if (get_bytes_size (BUF_SIZE, &bytes_size)) { if (BUF_SIZE % 1024 == 0) printf ("Buffer size: %u%c\n", bytes_size.size, bytes_size.unit); else printf ("Buffer size: %u%c, %u byte%s\n", bytes_size.size, bytes_size.unit, BUF_SIZE % 1024, BUF_SIZE % 1024 > 1 ? "s" : ""); } else printf ("Buffer size: %lu byte%s\n", (unsigned long)BUF_SIZE, BUF_SIZE > 1 ? "s" : ""); printf ("Color separator: '%c'\n", COLOR_SEP_CHAR); printf ("Debugging: %s\n", debug ? "yes" : "no"); } static void cleanup (void) { if (stream && fileno (stream) != STDIN_FILENO) fclose (stream); #if DEBUG if (log) fclose (log); #endif if (vars_list) { unsigned int i; for (i = 0; i < stacked_vars; i++) free (vars_list[i]); free_null (vars_list); } } static void free_color_names (struct color_name **color_names) { unsigned int i; for (i = 0; color_names[i]; i++) { RELEASE_VAR (color_names[i]->name); RELEASE_VAR (color_names[i]->orig); RELEASE_VAR (color_names[i]); } } static void process_args (unsigned int arg_cnt, char **arg_strings, char *attr, const struct color **colors, const char **file, FILE **stream) { int ret; char *p; struct stat sb; struct color_name *color_names[3] = { NULL, /* foreground */ NULL, /* background */ NULL, /* sentinel value */ }; const char *color_string = arg_cnt >= 1 ? arg_strings[0] : NULL; const char *file_string = arg_cnt == 2 ? arg_strings[1] : NULL; assert (color_string != NULL); if (streq (color_string, "-")) { if (file_string) vfprintf_fail (formats[FMT_GENERIC], "hyphen cannot be used as color string"); else vfprintf_fail (formats[FMT_GENERIC], "hyphen must be preceded by color string"); } ret = lstat (color_string, &sb); /* Ensure that we don't fail if there's a file with one or more color names in its path. */ if (ret == 0) /* success */ skip_path_colors (color_string, file_string, &sb); if ((p = strchr (color_string, COLOR_SEP_CHAR))) { if (p == color_string) vfprintf_fail (formats[FMT_STRING], "foreground color missing in string", color_string); else if (p == color_string + strlen (color_string) - 1) vfprintf_fail (formats[FMT_STRING], "background color missing in string", color_string); else if (strchr (++p, COLOR_SEP_CHAR)) vfprintf_fail (formats[FMT_STRING], "one color pair allowed only for string", color_string); } gather_color_names (color_string, attr, color_names); assert (color_names[FOREGROUND] != NULL); if (color_names[BACKGROUND]) { unsigned int i; const unsigned int color_sets[2][2] = { { FOREGROUND, BACKGROUND }, { BACKGROUND, FOREGROUND } }; for (i = 0; i < 2; i++) { const unsigned int color1 = color_sets[i][0]; const unsigned int color2 = color_sets[i][1]; if (CHECK_COLORS_RANDOM (color1, color2)) vfprintf_fail (formats[FMT_RANDOM], tables[color1].desc, color_names[color1]->orig, "cannot be combined with", color_names[color2]->orig); } } find_color_entries (color_names, colors); assert (colors[FOREGROUND] != NULL); free_color_names (color_names); if (!colors[FOREGROUND]->code && colors[BACKGROUND] && colors[BACKGROUND]->code) { struct color_name color_name; color_name.name = color_name.orig = "default"; find_color_entry (&color_name, FOREGROUND, colors); assert (colors[FOREGROUND]->code != NULL); } process_file_arg (file_string, file, stream); } static void process_file_arg (const char *file_string, const char **file, FILE **stream) { if (file_string) { if (streq (file_string, "-")) *stream = stdin; else { const char *file = file_string; struct stat sb; int ret; errno = 0; ret = stat (file, &sb); if (ret == -1) vfprintf_fail (formats[FMT_FILE], file, strerror (errno)); if (!VALID_FILE_TYPE (sb.st_mode)) vfprintf_fail (formats[FMT_TYPE], file, "unrecognized type", get_file_type (sb.st_mode)); *stream = open_file (file, "r"); } *file = file_string; } else { *stream = stdin; *file = "stdin"; } assert (*stream != NULL); assert (*file != NULL); } static void skip_path_colors (const char *color_string, const char *file_string, const struct stat *sb) { bool have_file; unsigned int c; const char *color = color_string; const mode_t mode = sb->st_mode; for (c = 1; c <= 2 && *color; c++) { bool matched = false; unsigned int i; for (i = 0; i < tables[GENERIC].count; i++) { const struct color *entry = &tables[GENERIC].entries[i]; if (has_color_name (color, entry->name)) { color += strlen (entry->name); matched = true; break; } } if (!matched && has_color_name (color, "random")) { color += strlen ("random"); matched = true; } if (matched && *color == COLOR_SEP_CHAR && *(color + 1)) color++; else break; } have_file = (*color != '\0'); if (have_file) { const char *file_existing = color_string; if (file_string) vfprintf_fail (formats[FMT_QUOTE], get_file_type (mode), file_existing, "cannot be used as color string"); else { if (VALID_FILE_TYPE (mode)) vfprintf_fail (formats[FMT_QUOTE], get_file_type (mode), file_existing, "must be preceded by color string"); else vfprintf_fail (formats[FMT_QUOTE], get_file_type (mode), file_existing, "is not a valid file type"); } } } static void gather_color_names (const char *color_string, char *attr, struct color_name **color_names) { unsigned int index; char *color, *p, *str; str = xstrdup (color_string); STACK_VAR (str); for (index = 0, color = str; *color; index++, color = p) { char *ch, *sep; p = NULL; if ((sep = strchr (color, COLOR_SEP_CHAR))) { *sep = '\0'; p = sep + 1; } else p = color + strlen (color); assert (p != NULL); for (ch = color; *ch; ch++) if (!isalpha (*ch)) vfprintf_fail (formats[FMT_COLOR], tables[index].desc, color, "cannot be made of non-alphabetic characters"); for (ch = color + 1; *ch; ch++) if (!islower (*ch)) vfprintf_fail (formats[FMT_COLOR], tables[index].desc, color, "cannot be in mixed lower/upper case"); if (streq (color, "None")) vfprintf_fail (formats[FMT_COLOR], tables[index].desc, color, "cannot be bold"); if (isupper (*color)) { switch (index) { case FOREGROUND: snprintf (attr + strlen (attr), 3, "1;"); break; case BACKGROUND: vfprintf_fail (formats[FMT_COLOR], tables[BACKGROUND].desc, color, "cannot be bold"); default: /* never reached */ ABORT_TRACE (); } } color_names[index] = xcalloc (1, sizeof (struct color_name)); STACK_VAR (color_names[index]); color_names[index]->orig = xstrdup (color); STACK_VAR (color_names[index]->orig); for (ch = color; *ch; ch++) *ch = tolower (*ch); color_names[index]->name = xstrdup (color); STACK_VAR (color_names[index]->name); } RELEASE_VAR (str); } static void read_print_stream (const char *attr, const struct color **colors, const char *file, FILE *stream) { char buf[BUF_SIZE + 1]; unsigned int flags = 0; while (!feof (stream)) { size_t bytes_read; char *eol; const char *line; bytes_read = fread (buf, 1, BUF_SIZE, stream); if (bytes_read != BUF_SIZE && ferror (stream)) vfprintf_fail (formats[FMT_ERROR], BUF_SIZE, "read"); buf[bytes_read] = '\0'; line = buf; while ((eol = strpbrk (line, "\n\r"))) { const bool has_text = (eol > line); const char *p; flags &= ~(CR|LF); if (*eol == '\r') { flags |= CR; if (*(eol + 1) == '\n') flags |= LF; } else if (*eol == '\n') flags |= LF; else /* never reached */ vfprintf_fail (formats[FMT_FILE], file, "unrecognized line ending"); p = eol + SKIP_LINE_ENDINGS (flags); *eol = '\0'; print_line (attr, colors, line, flags, omit_color_empty ? has_text : true); line = p; } if (feof (stream)) { if (*line != '\0') print_line (attr, colors, line, 0, true); } else if (*line != '\0') { char *p; if ((clean || clean_all) && (p = strrchr (line, '\033'))) merge_print_line (line, p, stream); else print_line (attr, colors, line, 0, true); } } } static void merge_print_line (const char *line, const char *p, FILE *stream) { char *buf = NULL; char *merged_esc = NULL; const char *esc = ""; const char char_restore = *p; complete_part_line (p + 1, &buf, stream); if (buf) { /* form escape sequence */ esc = merged_esc = str_concat (p, buf); /* shorten partial line accordingly */ *(char *)p = '\0'; free (buf); } #ifdef TEST_MERGE_PART_LINE printf ("%s%s", line, esc); fflush (stdout); _exit (EXIT_SUCCESS); #else print_clean (line); *(char *)p = char_restore; print_clean (esc); free (merged_esc); #endif } static void complete_part_line (const char *p, char **buf, FILE *stream) { bool got_next_char = false, read_from_stream; char ch; size_t i = 0, size; if (get_next_char (&ch, &p, stream, &read_from_stream)) { if (ch == '[') { if (read_from_stream) save_char (ch, buf, &i, &size); } else { if (read_from_stream) ungetc ((int)ch, stream); return; /* cancel */ } } else return; /* cancel */ while (get_next_char (&ch, &p, stream, &read_from_stream)) { if (isdigit (ch) || ch == ';') { if (read_from_stream) save_char (ch, buf, &i, &size); } else /* got next character */ { got_next_char = true; break; } } if (got_next_char) { if (ch == 'm') { if (read_from_stream) save_char (ch, buf, &i, &size); } else { if (read_from_stream) ungetc ((int)ch, stream); return; /* cancel */ } } else return; /* cancel */ } static bool get_next_char (char *ch, const char **p, FILE *stream, bool *read_from_stream) { if (**p == '\0') { int c; if ((c = fgetc (stream)) != EOF) { *ch = (char)c; *read_from_stream = true; return true; } else { *read_from_stream = false; return false; } } else { *ch = **p; (*p)++; *read_from_stream = false; return true; } } static void save_char (char ch, char **buf, size_t *i, size_t *size) { if (!*buf) { *size = ALLOC_COMPLETE_PART_LINE; *buf = xmalloc (*size); } /* +1: effective occupied size of buffer */ else if ((*i + 1) == *size) { *size *= 2; *buf = xrealloc (*buf, *size); } (*buf)[*i] = ch; (*buf)[*i + 1] = '\0'; (*i)++; } static void find_color_entries (struct color_name **color_names, const struct color **colors) { struct timeval tv; unsigned int index; /* randomness */ gettimeofday (&tv, NULL); srand (tv.tv_usec * tv.tv_sec); for (index = 0; color_names[index]; index++) { const char *color_name = color_names[index]->name; const unsigned int count = tables[index].count; const struct color *const color_entries = tables[index].entries; if (streq (color_name, "random")) { bool excludable; unsigned int i; do { excludable = false; i = rand() % (count - 2) + 1; /* omit color none and default */ switch (index) { case FOREGROUND: /* --exclude-random */ if (exclude && streq (exclude, color_entries[i].name)) excludable = true; else if (color_names[BACKGROUND] && streq (color_names[BACKGROUND]->name, color_entries[i].name)) excludable = true; break; case BACKGROUND: if (streq (colors[FOREGROUND]->name, color_entries[i].name)) excludable = true; break; default: /* never reached */ ABORT_TRACE (); } } while (excludable); colors[index] = (struct color *)&color_entries[i]; } else find_color_entry (color_names[index], index, colors); } } static void find_color_entry (const struct color_name *color_name, unsigned int index, const struct color **colors) { bool found = false; unsigned int i; const unsigned int count = tables[index].count; const struct color *const color_entries = tables[index].entries; for (i = 0; i < count; i++) if (streq (color_name->name, color_entries[i].name)) { colors[index] = (struct color *)&color_entries[i]; found = true; break; } if (!found) vfprintf_fail (formats[FMT_COLOR], tables[index].desc, color_name->orig, "not recognized"); } static void print_line (const char *attr, const struct color **colors, const char *const line, unsigned int flags, bool emit_colors) { /* --clean[-all] */ if (clean || clean_all) print_clean (line); /* skip for --omit-color-empty? */ else if (emit_colors) { /* Foreground color code is guaranteed to be set when background color code is present. */ if (colors[BACKGROUND] && colors[BACKGROUND]->code) printf ("\033[%s", colors[BACKGROUND]->code); if (colors[FOREGROUND]->code) printf ("\033[%s%s%s\033[0m", attr, colors[FOREGROUND]->code, line); else printf (formats[FMT_GENERIC], line); } if (flags & CR) putchar ('\r'); if (flags & LF) putchar ('\n'); } static void print_clean (const char *line) { const char *p = line; if (is_esc (p)) p = get_end_of_esc (p); while (*p != '\0') { const char *text_start = p; const char *text_end = get_end_of_text (p); print_text (text_start, text_end - text_start); p = get_end_of_esc (text_end); } } static bool is_esc (const char *p) { return gather_esc_offsets (p, NULL, NULL); } static const char * get_end_of_esc (const char *p) { const char *esc; const char *end = NULL; while ((esc = strchr (p, '\033'))) { if (gather_esc_offsets (esc, NULL, &end)) break; p = esc + 1; } return end ? end + 1 : p + strlen (p); } static const char * get_end_of_text (const char *p) { const char *esc; const char *start = NULL; while ((esc = strchr (p, '\033'))) { if (gather_esc_offsets (esc, &start, NULL)) break; p = esc + 1; } return start ? start : p + strlen (p); } static void print_text (const char *p, size_t len) { size_t bytes_written; bytes_written = fwrite (p, 1, len, stdout); if (bytes_written != len) vfprintf_fail (formats[FMT_ERROR], (unsigned long)len, "written"); } static bool gather_esc_offsets (const char *p, const char **start, const char **end) { /* ESC[ */ if (*p == 27 && *(p + 1) == '[') { bool valid = false; const char *const begin = p; p += 2; if (clean_all) valid = validate_esc_clean_all (&p); else if (clean) { bool check_values; unsigned int prev_iter, iter; const char *digit; prev_iter = iter = 0; do { check_values = false; iter++; if (!isdigit (*p)) break; digit = p; while (isdigit (*p)) p++; if (p - digit > 2) break; else /* check range */ { char val[3]; int value; unsigned int i; const unsigned int digits = p - digit; for (i = 0; i < digits; i++) val[i] = *digit++; val[i] = '\0'; value = atoi (val); valid = validate_esc_clean (value, iter, &prev_iter, &p, &check_values); } } while (check_values); } if (valid) { if (start) *start = begin; if (end) *end = p; return true; } } return false; } static bool validate_esc_clean_all (const char **p) { while (isdigit (**p) || **p == ';') (*p)++; return (**p == 'm'); } static bool validate_esc_clean (int value, unsigned int iter, unsigned int *prev_iter, const char **p, bool *check_values) { if (is_reset (value, iter, p)) return true; else if (is_attr (value, iter, *prev_iter, p)) { (*p)++; *check_values = true; *prev_iter = iter; return false; /* partial escape sequence, need another valid value */ } else if (is_fg_color (value, p)) return true; else if (is_bg_color (value, iter, p)) return true; else return false; } static bool is_reset (int value, unsigned int iter, const char **p) { return (value == 0 && iter == 1 && **p == 'm'); } static bool is_attr (int value, unsigned int iter, unsigned int prev_iter, const char **p) { return ((value > 0 && value < 10) && (iter - prev_iter == 1) && **p == ';'); } static bool is_fg_color (int value, const char **p) { return (((value >= 30 && value <= 37) || value == 39) && **p == 'm'); } static bool is_bg_color (int value, unsigned int iter, const char **p) { return (((value >= 40 && value <= 47) || value == 49) && iter == 1 && **p == 'm'); } #if !DEBUG static void * malloc_wrap (size_t size) { void *p = malloc (size); if (!p) MEM_ALLOC_FAIL (); return p; } static void * calloc_wrap (size_t nmemb, size_t size) { void *p = calloc (nmemb, size); if (!p) MEM_ALLOC_FAIL (); return p; } static void * realloc_wrap (void *ptr, size_t size) { void *p = realloc (ptr, size); if (!p) MEM_ALLOC_FAIL (); return p; } #else static void * malloc_wrap_debug (size_t size, const char *file, unsigned int line) { void *p = malloc (size); if (!p) MEM_ALLOC_FAIL_DEBUG (file, line); fprintf (log, "%s: malloc'ed %lu bytes [source file %s, line %u]\n", program_name, (unsigned long)size, file, line); return p; } static void * calloc_wrap_debug (size_t nmemb, size_t size, const char *file, unsigned int line) { void *p = calloc (nmemb, size); if (!p) MEM_ALLOC_FAIL_DEBUG (file, line); fprintf (log, "%s: calloc'ed %lu bytes [source file %s, line %u]\n", program_name, (unsigned long)(nmemb * size), file, line); return p; } static void * realloc_wrap_debug (void *ptr, size_t size, const char *file, unsigned int line) { void *p = realloc (ptr, size); if (!p) MEM_ALLOC_FAIL_DEBUG (file, line); fprintf (log, "%s: realloc'ed %lu bytes [source file %s, line %u]\n", program_name, (unsigned long)size, file, line); return p; } #endif /* !DEBUG */ static void free_wrap (void **ptr) { free (*ptr); *ptr = NULL; } #if !DEBUG # define do_malloc(len, file, line) malloc_wrap(len) #else # define do_malloc(len, file, line) malloc_wrap_debug(len, file, line) #endif static char * strdup_wrap (const char *str, const char *file, unsigned int line) { const size_t len = strlen (str) + 1; char *p = do_malloc (len, file, line); strncpy (p, str, len); return p; } static char * str_concat_wrap (const char *str1, const char *str2, const char *file, unsigned int line) { const size_t len = strlen (str1) + strlen (str2) + 1; char *p, *str; p = str = do_malloc (len, file, line); strncpy (p, str1, strlen (str1)); p += strlen (str1); strncpy (p, str2, strlen (str2)); p += strlen (str2); *p = '\0'; return str; } static bool get_bytes_size (unsigned long bytes, struct bytes_size *bytes_size) { const char *unit, units[] = { '0', 'K', 'M', 'G', '\0' }; unsigned long size = bytes; if (bytes < 1024) return false; unit = units; while (size >= 1024 && *(unit + 1)) { size /= 1024; unit++; } bytes_size->size = (unsigned int)size; bytes_size->unit = *unit; return true; } static char * get_file_type (mode_t mode) { if (S_ISREG (mode)) return "file"; else if (S_ISDIR (mode)) return "directory"; else if (S_ISCHR (mode)) return "character device"; else if (S_ISBLK (mode)) return "block device"; else if (S_ISFIFO (mode)) return "named pipe"; else if (S_ISLNK (mode)) return "symbolic link"; else if (S_ISSOCK (mode)) return "socket"; else return "file"; } static bool has_color_name (const char *str, const char *name) { char *p; assert (strlen (str) > 0); assert (strlen (name) > 0); if (!(*str == *name || *str == toupper (*name))) return false; else if (*(name + 1) != '\0' && !((p = strstr (str + 1, name + 1)) && p == str + 1)) return false; else return true; } static FILE * open_file (const char *file, const char *mode) { FILE *stream; errno = 0; stream = fopen (file, mode); if (!stream) vfprintf_fail (formats[FMT_FILE], file, strerror (errno)); return stream; } #define DO_VFPRINTF(fmt) \ va_list ap; \ fprintf (stderr, "%s: ", program_name); \ va_start (ap, fmt); \ vfprintf (stderr, fmt, ap); \ va_end (ap); \ fprintf (stderr, "\n"); static void vfprintf_diag (const char *fmt, ...) { DO_VFPRINTF (fmt); } static void vfprintf_fail (const char *fmt, ...) { DO_VFPRINTF (fmt); exit (EXIT_FAILURE); } static void stack_var (void ***list, unsigned int *stacked, unsigned int index, void *ptr) { /* nothing to stack */ if (ptr == NULL) return; if (!*list) *list = xmalloc (sizeof (void *)); else { unsigned int i; for (i = 0; i < *stacked; i++) if (!(*list)[i]) { (*list)[i] = ptr; return; /* reused */ } *list = xrealloc (*list, (*stacked + 1) * sizeof (void *)); } (*list)[index] = ptr; (*stacked)++; } static void release_var (void **list, unsigned int stacked, void **ptr) { unsigned int i; /* nothing to release */ if (*ptr == NULL) return; for (i = 0; i < stacked; i++) if (list[i] == *ptr) { free (*ptr); *ptr = NULL; list[i] = NULL; return; } } colorize-0.64/debian/000077500000000000000000000000001331025647100145155ustar00rootroot00000000000000colorize-0.64/debian/changelog000066400000000000000000000017361331025647100163760ustar00rootroot00000000000000colorize (0.64-1) unstable; urgency=low * New upstream release. * Declare compliance with Debian Policy 4.1.4. (No changes needed.) * debian/copyright: amend format URL and years. -- Steven Schubiger Wed, 13 Jun 2018 19:31:50 +0200 colorize (0.63-1) unstable; urgency=low * New upstream release. * Declare compliance with Debian Policy 4.1.2. (No changes needed.) * debian/rules: eliminate trailing whitespace. -- Steven Schubiger Wed, 06 Dec 2017 22:48:42 +0100 colorize (0.62-1) unstable; urgency=low * New upstream release. * debian/rules: trim down. -- Steven Schubiger Thu, 17 Aug 2017 22:26:17 +0200 colorize (0.61-1) unstable; urgency=low * New upstream release. -- Steven Schubiger Thu, 27 Apr 2017 19:41:04 +0200 colorize (0.60-1) unstable; urgency=low * Initial Debian package version. -- Steven Schubiger Sun, 02 Apr 2017 23:19:04 +0200 colorize-0.64/debian/colorize.manpages000066400000000000000000000000131331025647100200520ustar00rootroot00000000000000colorize.1 colorize-0.64/debian/compat000066400000000000000000000000021331025647100157130ustar00rootroot000000000000009 colorize-0.64/debian/control000066400000000000000000000012371331025647100161230ustar00rootroot00000000000000Source: colorize Section: utils Priority: optional Maintainer: Steven Schubiger Build-Depends: debhelper (>= 9) Standards-Version: 4.1.4 Homepage: http://cgit.refcnt.org/colorize.git/tree/README Vcs-Git: git://refcnt.org/colorize.git Vcs-Browser: http://cgit.refcnt.org/colorize.git/ Package: colorize Conflicts: forensics-colorize Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Colorizes text on terminal with ANSI escape sequences Colorizes text read from standard input stream or file by using ANSI escape sequences (and also vice versa, i.e. cleaning text from sequences) and prints resulting output to the terminal. colorize-0.64/debian/copyright000066400000000000000000000021151331025647100164470ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: colorize Source: http://cgit.refcnt.org/colorize.git/ Files: * Copyright: 2011-2018 Steven Schubiger License: GPL-3.0+ Files: debian/* Copyright: 2016-2018 Steven Schubiger License: GPL-3.0+ License: GPL-3.0+ This program is free software: you can 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 package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". colorize-0.64/debian/docs000066400000000000000000000000071331025647100153650ustar00rootroot00000000000000README colorize-0.64/debian/rules000077500000000000000000000004441331025647100155770ustar00rootroot00000000000000#!/usr/bin/make -f # see FEATURE AREAS in dpkg-buildflags(1) export DEB_BUILD_MAINT_OPTIONS = hardening=+all # see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/* DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/default.mk # main packaging script based on dh7 syntax %: dh $@ colorize-0.64/debian/source/000077500000000000000000000000001331025647100160155ustar00rootroot00000000000000colorize-0.64/debian/source/format000066400000000000000000000000141331025647100172230ustar00rootroot000000000000003.0 (quilt) colorize-0.64/debian/watch000066400000000000000000000001421331025647100155430ustar00rootroot00000000000000version=3 http://cgit.refcnt.org/colorize.git/refs/ /colorize.git/snapshot/colorize-(.+)\.tar\.gz colorize-0.64/doc/000077500000000000000000000000001331025647100140405ustar00rootroot00000000000000colorize-0.64/doc/colorize.html000066400000000000000000000147271331025647100165670ustar00rootroot00000000000000 colorize
[sts@apollo ~/colorize]$ ./colorize --help
Usage: ./colorize (foreground) OR (foreground)/(background) OR --clean[-all] [-|file]

	Colors (foreground) (background)
		{-} none         none
		{#} [Bb]lack     black
		{#} [Rr]ed       red
		{#} [Gg]reen     green
		{#} [Yy]ellow    yellow
		{#} [Bb]lue      blue
		{#} [Mm]agenta   magenta
		{#} [Cc]yan      cyan
		{#} [Ww]hite     white
		{#} [Dd]efault   default
		{*} [Rr]andom    random [--exclude-random=<foreground color>]

	First character of color name in upper case denotes increased intensity,
	whereas for lower case colors will be of normal intensity.

	Options
		    --attr=ATTR1,ATTR2,...
		    --clean
		    --clean-all
		    --exclude-random=COLOR
		    --omit-color-empty
		-h, --help
		-V, --version
[sts@apollo ~/colorize]$ ./colorize cyan /etc/motd

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
[sts@apollo ~/colorize]$ ./colorize cyan /etc/motd | ./colorize --clean

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
[sts@apollo ~/colorize]$ ./colorize Yellow /etc/motd

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
[sts@apollo ~/colorize]$ ./colorize white/blue /etc/motd

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
[sts@apollo ~/colorize]$ ./colorize --exclude-random=black random /etc/motd

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
[sts@apollo ~/colorize]$ ./colorize --attr=bold magenta /etc/motd

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
[sts@apollo ~/colorize]$ ./colorize green /etc/motd | head -n2 | tail -n1
The programs included with the Debian GNU/Linux system are free software;
[sts@apollo ~/colorize]$ ./colorize --version
colorize v0.63-5-gadd8a17 (compiled at Feb  1 2018, 17:05:52)
Compiler flags: "-ansi -pedantic "
Linker flags: ""
Preprocessor flags: ""
Buffer size: 4K
Color separator: '/'
Debugging: no
colorize-0.64/doc/screenshots/000077500000000000000000000000001331025647100164005ustar00rootroot00000000000000colorize-0.64/doc/screenshots/colorize.html000066400000000000000000000015721331025647100211210ustar00rootroot00000000000000 colorize Screenshots
1
2
3
4
5
6
7
8
colorize-0.64/doc/screenshots/colorize/000077500000000000000000000000001331025647100202265ustar00rootroot00000000000000colorize-0.64/doc/screenshots/colorize/colorize1.jpg000066400000000000000000002011121331025647100226340ustar00rootroot00000000000000JFIFHHCCe   Q{Ѽn9x\#wZ|V"{|k.F#@m৔;:< ΍}yǨB}Sq#Fy ц`Œ ~H`94<8)倐9  <?.yX H|:@ˁGj>\ Ptp8| ?5tX ?9 @y_2Oyy`#@ <e倏,<-倯<3Gk`_`To,yp+|4G倧e䁠@|\ ?$ y t#<:@yGg\ @8>|7?n^c|bX23e \V>3`: r^ l`05f<\O꽲 sOsh3g`;52<7򛵑G 9 x@G; ^P <}^#<O3~q[{`$ < @ #@.^@: Ώ9>GsOs_, \@5G|`3Hty'O+e<}n3GGˁ`+(typ$ _4? Oj^\_$@9SyP$ yp)倐$`.y@i X O$ e G\ by@+ [ʀ-y@+ `*@yO$ @ y X | 3P:@Π>p>S`#o|:3@t syry tp#c~h>tXP4P,^cH/4 yg` vy_$ X S@pi bGx+y`x*S HfGPy X f<@`10yl7 =@4̀o9+ O4@t@ y|x/倏2| _2iX`O k XG x y@ @6/$ `8@nE+1t[ RʚNy~I(H*r7 =7Z抧|ʄDۺ5zl;VY%Z1`>a`G#YPήwt{l7QgҶͫm~Ǘ-6Mo;J}xν6YPCܨti[^նac@s|ν"tT<.鵢n.u"P*tZttaӂ9mbuf;awEh-ǔ-hrr64;jlחEEYTuύЎol"Q3ǫB~8×]#uUpUǗ]9m AY"jZ((u8{hVuU(S×]#uU쭑t cˮԝ/ Noi^vp?:wK]N̑ @tF~Yt.ZDuwݤ]56A1u|zs!au}hXu` [Ptۋ9:T%eѬ2rgFaA eO$z8kNwyO &s9̀ޥTaE#/ܥl{EN}ˑmf?(Y,_uRw/~zDʰ"oTEÔvD0z",Ŗ1T=]~fdc;wCI*|z9n;hm7o(ax-銯ݫ{o_ `ˠzEoAlލ:]"{}Daf腞߿\zM7afԨ7\g4`N1BĜfmd nϴlA 2n}Ǖw!Sx֝<͟u+ 9uZ뗬 !HM#6m^O瘹 )w ygr`)T cU Ч}Z~(WER^|PUZ)WP2:veG^3gjeEiBف[T׹#{aAO(Vߔ_K`kfRnK UZ)WP2:veG^3VjЬC`lZlApYW^՝"D_\lNg<..tRSPS3LԲٓ&昋B섩 Pڤ?!1u"nhC:HKE-y ,R?!3y_q"6~'R&q<Q~KςI԰8~{|Yg?+LnƊZ#:RPIԉLEvBT'R7Fv({@DH͞&'R7b-s)q( d%N$DӦ"Ї8a787p7m -KmBH# č#fs^+IPp9YDk[fd >@@FV2x_B(P٤i&"U}^[7B56l <*q'R/gcwJ=#v2ہͮftv+Š3p@ ve\H}S {v#>mN s*[/+e#VHL"(yASxQg_=0NC&14&:yZNYkNIeWKӌdD/țF"_) vcȵ.t tӃ_'Lsu 堆= b"ꎍvSM 67ʅأYPgQۥtlhvdtk}x=;qg7tk 17~mJv=YFtkYPЊk3;lmeBQDLNX zv8n{Y*㬨X{meBQ)ލ`WYӹ)EVJ}wL͗tۨt}ZΉgUl5Mƍ-3]vHϕ`^ j$QЁx(it{׿ ET v1  qS+Nv?8!eTkt:h_eeN;(~1 RDM=nv1%mMVTXoiUXס|-KL+`$LЈce.;amQ_èt,4Լ'9584VF Lc|n(13&;—7E 5QHo\mA]JF./|4L?DaSQmf{'%HBخNgꋆm5ҚqMI_{dk{@-=YQ-G::^EйE)E 1&HĄJ~ohhnImu"aJ!Io _Ȅ?f/"#$;/^d AM_8ǥ8@GDIg^`Ocm ?Pv۫t|; !"1#2`$A3BPa %4QR5Cbq?Z|9FW`bvl7LfStHШU,r K@95 LGwB7zQMY&6][YFcS,NfS:9LU>FV?̖H[KjeI^f՘Sdf)2Vgh YHX(*@lrܪ%#PDb؋ 0Y%Av]ۣmf H,^9lLcMYyN8"6jayB#h8rY<4KZ6I9+QF~rd= jĶ;Q2b]ԟ [xzyk"B`19c_$_Q wqFWOo9TTSXأ}FD ,as\{ }^J%7 da 8l"s,O/R{./LZJ#y F¬1mKF4'j‘M0<+Jifww̼lxӢ&Y'[آQ4b+)31 Fj,5Qv"3cjghTJ.doµ6 j^^bYf򯗵R`mGzfũHf/1O5K(bh^;s)|u,V!/z<')  90۔pq_6-B9UgƥFb-qDcTaUI fc_;ou t9PR;8j@7W9e]NᴶkO'~sر]*O~R}/+kO[?媺'NE _Waҵ: 4=?Y>g/4}>:4z[5QwRDFߖ+Wz|5mPZB4D}qjQ$PjP2:|/CRŖOrV5Ve#YL7.GBDܾW?QRAfbUFY${e*Xe%YXazBYHʿ'C2p$`W ^)fUpqTmmН,1?\W-8PHRq﷑1ѓ[RG k̻$Ln\crTX2[bX6@BIL|Xgl\n~QDmϳR.TZ?V=|rՈW8S?,G11m^I ڋqNd#3 2xM2HtR0UeV{ե&de͖23҆4(*=vhc2I'R0+LchKVI= :(y=gdo6GԬo4UiI$JV-IcxCcLȥF̡oI z[.ڀ pSo&BArz=Zo÷VQq|ݼ~#ힾ*tHN9Z8DZC2mUe{WbL1 u|jC冬4x̕)QcpnbvKQd䑙k-ry\?f8l+J˷iTb2UX޵&ɹ SхW pGl0RrZJ]y cVe~^*9@`2#XZݡ%s#;q\Hf%?ٕK [͈gH2rp I?̿6 $`"#%!&4P237CE??ct]Cnzv,j¼} v mHhW>)T(әv>ivsԤ;nv0u0'b7q/AǕ=RʬWZO}ԡ L][O.Q,ʙ{,s)VdDRs7P8Uu<Gq?%/" 柳= b @ECƃ65_TW0Ֆ)"6F^nl [YpZQ0)X`)vȢPMY`AƺrVS(h U;`v GEVonvʥ8K+)4szoLZxͫG[oWUf:|רyNs8+]5֯~=(!-XW8şʩj&\loN{?"a/ +.LBtU<ǁkgh_\PUSF)4r-?A_tmV݇8]gLj1W3Qv, -Y")GYfjXqď^3^ctɲCFF0HM M/Cظ'uM ]RfiDPJC 4Ka A4-]n{}ѯ8gamo(ٍL,?#ghLCU鿅M$[3jPYGkЫ1 C<$6{;-B#aэWXwՖ>uJ*4ϘPrڰjX%<2rt[i+pu|~I4kiXJTj׎MCq0 0uYg5 чz}&_OKk}PhhLڻ(#:#R xC'7Ttݏ"6&#Z\w-2KdxZF0TJ۱Ø4tYYmeoY<0`ͪ] TM-VnTj.쎃I֍9 %t}N>Tq>@|䄣B嬾d XgjbSoH@p:`L&őwWq([Y]$Yre-:w&Y# UϞx]_Ȉsl`R );{/wJ\&=B "nZ$D{Gĉo6Gԩ>et0_95PMtˉeN#7r)zQ+}ޜs$<P~NGClڛUZSEi,$edr`Yb)'HaX( $ ;nƺ9F1x #Xf ud XW$b){-*Q%(ˎ5-;)k~n*BG"+I=%G0]DRKd/^1k4`Y ~q8~;M=UkX.aDpOAN"TpWzȸy˛ [9l4H{w|f*vn{e"hdwUeR%R~⾂Tw)׶'ϟ*S []J<ڙY,`Wn:=_j{y}g5?.u<߆GڙVɻmC,]]bӰ44u"δfB:\^}$z{W)4<#˯m %uCmwr%9Tme54f.wEѷ"NW[2:q4sg"SnIIr:{\FhΨ4T1>n[9Kr/7#(QeI+jϿYƃuG%I;SR$9,Q7YK| cW^YE; G} Wʺo:zXG]NZjWȇf*GؔC+W^te7zM WuSL뢲?W?N\?Z>?k_}s;N-WkeJ&Mj7._h(kuiE+h*z_ő-aѓ]u7u|fz=H)=5 wU_8]nkK.!KՈ<>=}<^єIZ Qfţt~侐tp6n ݍ|9[5&B6y.*RM n>4(teh$V"=SDX4NHuRiM>s@2H0mXwޖ=YڨcLviEˊ<^iJp-G0k},dx^T?4sl-:{x}X%`ykei*Y.5WT}!:$#%P !"&4536`07@CvTV?/zʷ`FfbVEz&e+ ä%PCg(ԜJ /Hl-ƉEbtc:(ae vV&n_uhط/FIPϯ .6KDg*ի9y!)"د7660eܢt|'VOF5ĔbIJe̝Xw7&\Bmd ςBQ [FI0H83n yL` sMQLmS-nLGd%G_WRk[]ޫ!d0yYuJUf䲇pT}6PeCYp&LW(rK .c]f_w)nV0NjZRWl(u l<4N7Y\KhƶMFEHΙ٣T`i jXwPxU}UJ!.^g5[ b*ͯ/ڻ*䊅; Ƀ?WێUBoxT,VHN q>5}BO a$֋tXƃBmWG?yDu^i3&sTQP)A7#}q!<]uXAOf.5q0XiO(֜V HV qf>vIQļ=g"[\,P$GQ49F먅|X/}j UFR__VbU` ZÛdEvS]pҝPZGpo!3ihx<4=,05xK%%7602໬gҸZ s9)RW1jʍA :lb uTat9eޚ"83IHr"].CXstn~c4[ Xo/)cTQLmB7ZD965Sh@u}bNs4qqr1P#2p^STR*P4d,.x_p̊?hkAؽ3EY_po?ы_foҼ-%!kT0t$*#5_K&Ѹطz& 3tĜ&Z ).JR4Tb?Zf"yibO յ]=lN!Ӫ$h3 ]'#iFx(Q&E Y_o#6QC`TN_3zg*5KUٱ"ulo_~<۔vr1+Ո@Wā6bOGk;R<~mv_U>+ܝ+?ªhZGz k괯b9%_%qغRř 74Lm*u[\8W3hϊjO;;ޙ@̝^DzkZ o{r}_{\|{+GєgwVecjWZЩ<[Ǵ`h⇫!%)xMKq\Ol^eUk&c #lu"ƭU. !mF]`֬ץ\(U*xEyiʱXߟF6!~f<{:uW 1ց+yL3YfRȹ[tHTYU9פu3aEBۛa {4܅x1os/5!L>NًD *1X{OnaSªRU615Biɐ(?z3ZښnZGC #gaC%f*I|J˴uςk qlKWk a6Fq/NL9rD:pq,tֈpvତL [ٵģ3Nr)Ə?mlOS]Í.D@Y~RE%f+Ix8~DZ*:10.[- lsK"\IPxiYAYWfCu:.ce1 CqTAfaƅfYl.n×)ʊ̊XdqЪnA\ 77΀~6q]EZcMyHWZ]w',T:^k@b['-\,a{Һ}۶'&]|ϻqDXOwY̾B~Mn okE cf|ha vDd1Ef.iMlA$prUiڕp9 $H5dxxe%n. aYW̃2t՜#LIe7"~C-H=1-,:K?\j>qpǗi2#_JFY _ZtFC",,|B^YObG.Ё+G0DeA9q"Y;G%i\SIٗzoi;$89M\ĉ5[;_< NEWZll`іihUp \a C:pUR\aDD҇#$Jq'oYAUa\ HLYB?Ŋ+ScTSWA]fǹehh.v ǿP|D' c3 r9r*tѭ+ 5ȉk~@col6Ⱦx 3{[M܆5wfBӏpenԊ399" %$:0)geڜm#3?IA V=/&S(Zt"Z9||ڳ6h*DmjX0ٜtup"H_{򽁼TMVU=2P(iD";+(Y+ 9.D sibұڭUVB 5\yY/`5c8R1K!^e2#7Fv%#o\6LZeBhi{akLSn*S@Dp*Z,wU}P"_9S+hyVG~JٹcH^|FIi|N޳03萙<'V+Ʃi>'z,r: ݧ0\&׏ZSN? /Vfns%q &(U/(5ZW@k+Z4'd|{Zm;Y}/4gTٹ k̅ݩfrr $E{KHua`R k9S)13Gsnf2! *z_ M!#F]QV(?E8Eo smf&l+!QHT, >ՐqCa9Ɉl&hD<<7ɑE{x{5l{?>d!bQ9o>EwxŢ`+6>\FH_tC "?%3MSTҖ9s=̲?v,%]@K[M"Rˈд{%WlmgGii TrNHpֲ&4Rpi q8 61-ŴTPq$/slks!w, |lVry˂6 :M`"v.l6:?C K2I(Fhk`uF\/I5Ei\Je%6G˖͢s1jG&nRjD5C>VrI+_WJM&8sIf>YZ͗wc96 Kj*srVrw"Wx ̱O-Xv^t5EA.a|թK0TEp6haG,f"xj% l\.1hH21zU 2ڥ hkwa¹z9ro ։S ^ܩMS3<)+1Uc8?! *QO~Hu drttO2l2eRKjͨpۓrʎ=#dڕd'^ŵLec2O#\[/6vΩ9j29$YuWk\UƋsqW12Zj :5+W_uA'VQN7 I+n6D#ǥX) Nc-[b vv++zQa{[V)&[I ˅gX#F\`" AYA[d]Kc 36{5y5PlCB`Az`_SvOՙ;.!i6q.ς VP<at5;.̋\֊\ܢBWqOx8$( SIO{XeqJ̭t9Whd,(.0 EW,`w ZX=P@Ԗ\K !_re^~y! 5`9_"f/@z; >w,X sr\:!qYk\ϧ= wi^{g. T,\BԀ JgհL`P>o5mw_]~d9~_}jq~T~JיW8ogr5! {8}ⷤd<,F*cy${3#GLYg"SݶhEQwǪLkJ:QeW]J;[ mAVW =muTr$'Hfr- rpo+ k`gȜ X.erǨ0% չB ɮD/E,FFsr un~@zUVv0\`1k-/'"{O71kx/ԮۧV'P ܔanAV}P2̹9 gX5K|ݯRPcϧsU`E}eawdͰm _抦5ʱJ:W(fńcb/ }Uh[1F~ͯg 8̡&i3Ntd,J)(v*Ӡ0OBlw]0M)ذҾA>E*)"bNsn eiӸhW3]&fI>, xEh8i(l sγlLd( |'S~q~>@j>=$  QclK0LpNt-)hw(jM_!4mx0>UpEpX Xqe3JZЎpJ!Yba'rɵv8\W)u:7ld>^vxi%n|lB](rk>D/ncr%#!(ڪJlp9 spfzKLSеIp@64L'{A-o5aִΓ65$s'(PGy˫q;_o#oB#Hv[o%T›&m}Gjs2&Dt;ဠ5H*s?f6_7tQ*(Vl{_(x{֎=b_WǮ4(ީJO+ACԪ9^)ǬߎmΜXp+ u3k6l&ev/N08c /5ߧA}?sϮ0).ƕ\<& CK*('(6`A*QF,qd1?`(/OOR7hSYY&eov]z,asCK SDxlug?B>; ֒ܦƤ&j'YP@a^y.\0iv5WX-"":)bvGfDn]/к]!GW"N-g(dя4iuDt[O2*$4NnrŢҫzov@ {h`olVY]UK%.?7t3N ^PkVC!JCY~V. 3# =*z6}\_5jU:`2x\V$Ti9SGk4dR _wʕ]\tɅĶ7I?$EY$e~nxpҫ.lq^D6s:Ǹr-2 SiHR28;)sT&S!eqUWFwNc 6m_śEJ~qk^I,\U٩E0t==*YRѦ^F.?oHy* $ 6S\h.ՏX.[uZɠ#0F 'pY+9UìP8dD•p$X4fuǤ3 @6X2 65P'((JcԐT9e[0+\,"ea'xP) 9Z(b^3}rGϪ.PPc@6#8q\Qoިn{~BYVz.B#;4`0zcUl\f^<7T^b\_*vvNk>DV ,vh"JlbGѽ_ hF{#mkLsr^ r)lzyUgs4#կZ"He@sGjW F] 4Vs1Pvۄm)v6\hj(;"9ȏd:m)byy]Kۢk7HzھU#;D2SB ڇ46uYR&ȢZp0£ uqL'bis!Rգnrz b|Jà &uWN(K3Of*"ln4},MIm5qX+O"'7@3*%ݛêଆ>AVM 4 =n$a _!j;.Iqm훏WCAgiB)[fdWtXޑ[M(s$5LWMk-exVM@1A! XpnstT8fԬ bRUjv%J0Z4WMHY9~x#l6]S@XVI 3_e Ki=$7%WGUb}~Z἗]{D1ZE!ꮿ%tk,\ܫ`WàwN]]Zm%0jձ嫚WٳωgҿF!iW}x_xCN6VBhw\ bA ; ]*ɑGtde)7u8s@]YYC UݴJo;G@XjJlРΙLjv,جքQs{w%\uDX`f]eFD,v?z%ѥo0W/C)} 3:T10^˾8rH!bq Ba%/!|"ixizij5٤la"N>Î%[BX=a1"8VP1@^…jz ih(d; 67!np[g=9G4`ž482CGMNxt4gV=Fpѕ  -e56㈬h]mx[|Lm#_v/Qu4=1}2jT 2H:vv/ʉ_]˘]4qQl?gO~u i i"ӧ X.RDԩ̷0sWW Ys%ͦFɀ 4'Xf5inݾ'Dۇ[,j7n R²d,_$-8Ǻ9nuzLEUS\+L {Del,i*KFYnۍFAFyxʂ8m*{~N: Җdw4&_zqVؚ!z֑)$Oi1\L=l0AC9x?ɲ>fBha1^q#!s 9@!c8 Z ;\V `a3*JUE5e*?qzd9>4GPƴy9[n- ng0fFY#Ԭ5 a~(>yRo2mۼUp6 &|Mη5z};jlG ^hˤmY0ySOLz.?Qk}lk~DuKZD}\FHjs\"VU?'Lu GIGv#:gLx|3Bj܏^4x_j~Iכ S␝Ze[W_2mQU[ vC+xtËO?VK@ղL0ד_F劄g:][Yh," o+4qqr1P#2p^STR*P4d,.x_p̊j UFR__VbU` ZÛdEvS]pҝPZGpo!3ihx<4=,05xK%%7602໬gK*9^-ߓ颸w5^jcK3hACNJK 6\İSl'Q4j Y\+FI6s?4Z[nB=~ΥޖBk}ǃCBzH{KhWM_Μ܈PjKE=Xu-E:;,'\*\#4@܈AXbRɍÙckq|˜SJ||5OI?6{m/-+iߔ3tʀãϥ#p@\FӺ&ٰstَI5xb]++ts:1"Hx6k: $J\ 80iT4KYm&h ꌾ1!UʡUjF-W.\?^-&jQNǣmW WwGA{oF="ū2"=Tu]8JF}TA(J?BCO F'Nؙ|M//ugzs~%(N!b6D͂>b@:8|SwɉiO'IU.yQj]G@J U68`~K'b2`*\9R O^"WdG7Dx].l>yULشJX MS{-vMn÷Cl]P# hzmŔ,γ=۹)~{Vb=sv+#ȅ?T=kȚ5wz 5/f",d7nFTIP-z?!f3="1VZSbD!a /ZDY(IیRAXq`s*д-iDLBɽpmy>O)+m2VN `h!U5ZVU(]pz^i EMݒ?[: ue -!T,e1'v5q(r+l~n:\932Τt/*"Z\ğ;>v=޻Mk_g?Wwzo<4K[ ls-lFNy`sؑ:\~`?e>N?f_~Czp8s8!ř4Q7TLU6LT 90ES8ļwۈ)6  Gb*,jEsI! 0o絎N/XH8XW;]Eb1=1ՔJy6X4iX-q_vړx7@MMJ謶v̨" 0 /PceP(*aDuX_ 4DB DSgPUqRG1Z@ e$bE혎#p=u!P'f7Gώx|[fن)O/{`ؿ@څukOȠť@KEŘDPȊ|\Wk} 0#֢I:5ȕ>H9+XڑL/K׶ l3s?cǝXfzV v\MBw÷[C9}Zf Q޴Q~',ɤg!w+G1o+~q[_ȐGFіږ5ĨڽmsDs\5{.kB<έ+oEU%>6_h.sm!p nLOojY@ȣ/0Q1Qip+װUv^oqg[UyBPYw,驧1Gލ5֜ c>wW4꯯3OVڊtCY>B 7H2׭L ŭ`UIn?}ޥtr*$<䇞|M;LB?pDourzA.9h9% 9eKMp=M6266{@`G&q.CKR}dِ;C@g]N~\ds; w˵.){Yj/[{z`@]S&kaSNL@Wx{lBCaw#Ow]0 l}ͬ XҏJ+\ rR!"`gKkF.(w Eb3~%x,RA={u+-TzovVhEQW9V;;Τg()7)1~-2ˊU&pD)Z5 Po5q >K ES_=jM|=Mpe 1zɮFdVriTfAn)^@Oo@tO]~>GV:o9^L=CDvuѣ2c. F|*ҧi2|g/:]/WޗH?<^o>__,[_?ۇcg(X&ڏh?`'V?aܛ}bfs#Iv\YTQ#EIū695hGnP T9MIibWmP_hPb=IƵ;7ϹCsPʁ5+xyoC%ύ3PO&iut8hnqoUI`<,d`9P LuB//jt^_[K#yxx)bZW#k\54 KgZ*AJDlMᢻJuJ˲TX=O D` d0 1^.}L yi}W9Kys]]Wx|E Aݷ ZUIKJT[QgIe9(a#ڏ"s5Y%`e/~;6v_f?yc|{/[#8WNiw=U|˖kTp@5m#<\xy?L8ՠ=[oj%A.)E>[L*zu:Ǥ[!D#>dk엊j>;^E!۠IAVrZQ!V1yyK6 q%Y*ҎMbIpC >Ggn䛪i5ufܽ5{y=>N3 ӳSWWG'1bƊ1A;'mijԐAu(peEX,%A֪"ŗ.3l#ZԲ0`J%7쎫-fCٳb&D|if+_ID& R5) >&E',ap*3lX+ױ0L<ӂCxS> լN$Y@ܼA6Z hl1OAbW,6Jfp2 t{VIrs_ K!wBv\8:'G+M4[F<ҁV7TA;d giRoN8WevN[} 8c @ؐ;{fB] _])qJs;m~tK2,NquUOQ u˶\,k}Iʖ)Hfd&\hJ!_: ܖ$ج\KI]*fֳۯOFM>A!U륉CYkHtިDrc"00MyDDzwjӺQGp&s=~`N;(aAi?X!iOJ/F>OF!i~֧&- B1_7GE_S5uC-Us͘?kȂ6gT@XEƎRҺ+EC\]OEu *+0[XՏ$WfeueLݙPSWB^mdG@==IfK˕.2j XFpsug%ʹ G7ѽNŏ X|kѰuxĺ92n/-0B_`ȍ'j+ g4Dۺuvr "(iDW rJ|s.>z+R?FB&ָ`Q[1&;o[.<]_Vs5b*ɢ˅Ώkyv ֒Ed$Jmk}fdeLiAxS7lez];b+5jCՆelm`[|,jBVsA~>?\Ep;jQ; (UA!gPs.>mɐnp0| PZ ]<:29Aծ\`_WtZ,"6ʘ5 j#k&ADXE^/K$:K>9P,Nj#'% Q."Sh! lPvEr 5r+tR %XG0vxM?_v;X1˙ZP<ۨĕZ(M+jtpA}f NZJ"j GZUq92ro )̅JCV#A%+80]8r8.C : =8|{t 5%iϰZFUba<̨voMiY7t*PDL(Ԑf|LX'hǺթD^f Nu-kCf8^,'LB|p Ts:N(ڹ zc;dx0{sm {nBQ ۪[oʲS 4\awK3д| :ZH\\SPeIZɱ{]bRoilq.DjZ -v+0NBmQxՕvH%VM`;bahdسᘈӟ`zL$0?N aΊ 4ZJSʱ؟q RӁC+F)K5/DtR:|bcԴJ~=fcKl|im'd\a[+yp\˒l̿{~$|4Zr+>eH tKP#*jm0Tv賚]1ZaD="cNl99_1%#D@ gŃVٶQ1<1%Th +hxZfm Ns(N6a^^v#OT1чa"&\bWJ `K8ݻ"|UT @"Ǖ 4( !VpO[_~M*9+3̭#sMx!ۦMfK|tYWUgkC^81bL=!ETG9X!(`jԠmH铥Hũv-Tɱz A ~Z+bHHοEXNxխV|ˇb8<hgP;ȱP<Z4MڵhbAY{r36S>yKeNYPoVM_P-?V(dnO5Ú+p2y C^c~(5 mކ:iW`xw.^Oi~6?pa_#Iו>zޕk*o `ƠxYC m{ 뼃 *ث>Hꏟ3rZ͆ړ 3Z3/5嶓f-[c`Dod44f=ʮkt%{ΘQcaa 4 /A=Mv2C5`0 )b NỉRH 0Ly14!2飁6ˮx$XJÈ!b50W;-,Zf@pjeAO( }Xb.UjߟYk(FeT z!96E6w|;%P[C aPPc`Dod44f=ʮkt%{ΘQcaa 4 mģς̓ ~妅y\Xb:9Y rgAP ,ԵecWlgj Bu>-⨏eZSLgENʄi.V|ˇb8<hgP;ȱP<Z4MڵhbAY{r36S>yKeNYPoVM_P-?V(dnO5Ú+p2y C^c~(5 mކ:iW`xw.^Oi~6?pa_#Iו>zޕk*z¨Pnj-eBi5qw!U,w[%|r(_al;z5:H.\B51cY Y^R+Sh)gT讃?r=.S EM*ϐ9h4QmQ1l?1AiпXhj> F)pWyڞ;Z =`ªM >MmïkPbY,3_!n'kR_a1 a5t7 U)W .tT,Ә,IPkZ xv\]js݁M6SSy~qޥc{ؒ-jFdrʸ* v7b"zX:pH>|kG6GjL4 hϨGMnɎ{0kcR4WZ`C*xДW:aEy0-LĬ{H zPi> G**8.`=dJmtQ8_Oett{0tkaOiS!t<:}RkS7a^Et#rǚ%4?HOc*$9?BWT>zvFo+ 4%iKlȒpsNdJD paǤmilc,*d uUQ _U m)^X԰!ޡx`C}XHs?]5iVIbr2kWES^\]=\EgL96.a3i7]kƁkb{Uv0Qr `ߠxr*P5BρKY94qCnW_W=a<Ɍk^Cf~} `-#.EB #iH%6Qedia3/pjF2?a4)f~"h;] *|= ;H{JmLShbžBHnscq7\9y8`Z474huv&rp%x^p|ijRB| (Z ɣ(uBx,nx}; L`cZ2_[5#L/^{iv-lqymBf4Zxh{%X<`jJ,K0nl`ewY-`>恐E>q *mW?zla8z1Ѹ>紭6>F-)!Ȕ1g<7G}_eѓנh?+nzAԢHMcyeX`t+`"h]#'D h%~mCȻCJ֥V,,`}ERPuP_k!%FDCҴST0p"R48ƛXq}h0<)[IL l,[늯C I29\<@(΂^[pƸTAj9ή,xETd0Yh!ԩiEpx3WX@K.s#D)|k\S+ǏCn4 ce8)ǎKю=i4`1lO!Dhq7_ 9䱸? #iH%6Qedia3/pjF2?QJ)H&ŽBњE¦jm`^8 Q!Xaʒ' 4"KHE,":vĎ)VkO5V&^S4Ol|ӫW)="^'f4Ǜ)Îy{JmLShbžBHnscq7((-֚dqTToliX _ӓ`9nP.ҭ5U *d84lT86]T9qz1Ѹ>紭6>F-)!Ȕ1g<7G}_d]ր<_y1.Wyx'p_WnN_es@^pjk"8QyGW6Wd0y1ָ>>:SjaJeal!RH`,c_s*qymBf4Zxh{%X<`jJ,K0nl`ewYy:{EJY4Ik '&dD2'1 =kq}lԏ0yw%h?H\ ;Sy KEkY`Y(,qd? V$+d[#Du a6)[ "` 4T'ٯdkfq)NG[휓G8g1,+)+4a跳kI[ٜE9ƵA`ql B-怢3<zSE tY n"?z>.S}qMR U N Ts]sLE6 bڇyQ>dS9@1Ȃ7vS1ip;&UKIjVpإfOᴾd~/u{7{/H/ܵMn>F*H(10q{i|>bxAxr=\@: 8H4H .(WI$])y9uV[d9˙s?GB8j.uڕ|&v,ROȊjXL&fePp*;"xR﵊9nYQCz ߭´XcȪG \>qxC=^Gq/vdž<Lj=1Σ Ҹa2)\@Hba YP/6G.;Ȫӂ8S,x˛4&8~ɉ5wUbaCb.ĎF dT;A\kUթgY0F}%-?"aں%Ja zsiF.T%NB|K4=2g%٤" Z،V‡UXkȑ5XCc;]~uLޝM1f,έ lB єNG.Tȫ%gV;YĒF$Lt[}kEg{ѐhM\g*QYдG;U:MɄ[s`-~Hejj?k Ź]h_kPv* DB+_ްMr3z{s9c?{.ԟ0h٨fʝ.F=~e C$L D_\6,LFTx܈ʾX(Ҹ%PM,9/:յ}܄hk4 Q/se$B'˕y n"y1q9K349jB.e^h Qg$lڸ YT8 Kui;$ʐX^,^jϒjgI⤱̋o]`E A[Wf؞JEwUko9 V'㤜& ze0GPhW2.5m66aa%/Xr`c&ALN`& ⌱+ +"CiCAZDun6 R]\m -Wlzd>RGU̾0Bvi+2Ң<9T?wϵט#@u㖭_$4eZ;*441z9mbXq?c?[o9LkNyfky8;Whv)G( KUu8`H7D-f?2kh6:fz`:sZ.f|{YlkrNsY]!Th;+ZS7V C8HVoڶ}KW1iww٥clɞ\Wߑ ݟ"ٚ>Sd;і2Z+Jȃ,+Q&J@ʴ!1ʸiF%W)A09l C"6j>@~gЋy* :#SX#U_Zk9>j`1#7vh46@K!iDV@z[;-Ԫ !&itL3:3NU*v\YfCtXeBe>$Ռܳyx = 6ȂHZ~\=l )V;ZTQ3I,Km?cgOpҧ00cg4 GK^J=~P,j f9Ѧjkpk|=g:^O׽z^o=ncGdH6V_7HRAI5NEqi )#e=.ȅ?T=kȚ5wz 5/f","H3g&Vn_ݥb@XĈqh\i햼),h:BҾ_,${Yy2u1W}axowτ,u9o\ykUFYáV ']rzHh 7 WHv򸧵u*h[HAyh+/X#w#Kah4ui MF@\:ݏ29Pu ǿG4I8^ET*b]JpiIq# ,ky -g^+@>#ҩ&O͹/g͎E& G/t!Sӏ=y{&z|t̩xf=Z| .>?cgOpҧ00ez5#lӻmₒYujy DR"`r@M[+׎r ^" $ :-6َ5~.X%Tj7(F 1)qDw8LaUT!U4Uq!#8~4,<@K6Ce[`dA%gu]U7u\.h #F7<@tD- Ylm×9vg ˛XRuԐ] a1\謊V~DGzF6sFs]BhDvK>;?Я BEx8&1-$^f0òe/ZfY !c::Ё8H빁ѕSe6OpuLQjg)pY)PkOvyR'S9&@s`U[ mc4=ÖDaCe֜\[P`!s?^fnP0Fb?m5@HnEJ9buXw$AGQ50+t(bu4p-h8Ӻ ,_ lA%P&)93^H:`@?$DjTĵ\R=r>*0lk3%+$TBhn90&[T1TٍQXSd.NR giqq8]Yߦ{{ecURnGݶPmrqs]$Sm$S`ňXp/8K h  @'@]LyAJŕ&Z(/Zh"-L*0lk3%+ #"N}cZTUO5G5mu yP.4|Z~>bk&['vj)}y= MC,is< 3K;jb[qdk8rGs2H<z~ՇX;n^e:zF'*ɮNiWke EVG^>l1Rr&Y=rΓ2q~KE5WІQ[ӣUX<\3,i'Y&qrI{^}[ Eoz jLjF2Tk ZbmU[}$Ϻ%2iu -q.N>reJV /fT=1\*mstX5W S,-`\*s")r' #?Od5%+4D*3žȌu_# K%.6SJU ݌(w:y6iEM ɴy1Oa[W-J|ힲz`p\(R*3o+A.PX6EQi*ѦOmۄlG"<d񜝁smѤC"UzoX~M.oί-y,P18]鳲z<,y,T6ƕF -d."Q'g7pg@q18TC0jG{ 9?4Fq䳀| =fy@]_%/o>0DK,Ɠ>N|s9Ҧ^@`- sμDgk^%<}-ZoBNzgiCZdDgh4( ;%E!KW>qrgks.ȉC@}|9ї̞=h u,yTd9]d^\ľ\Ix]tO@?X٘O LL8l9,vbf r&E9-YF=X"jh9RSK]yҌi4~F<۟`DA՜m2:wN5 \{: ^mD c_j֒/$ #O4ń7F:c4"|>YG2"@ڵP )UivyMYUV"[]1n5&QQeeu/^1M/)/ " \CwP^{{BW]ڪ' -^>c;6(@"HSyT0WdJ}TV8> gP1>DXCK)`&6+I:.~} %SVj zԀ)TH3ၳhϮʁ]@_m(6 _̦ng$72'3tZ4'z6= #@Te\xJ) y͔L9V ,A?"F;NjnY/!3*"':5]u] BYMόv5f}{u85> B}2X3 aï-V&>NF"5n?g[JìeІWmijJ; *lS!t9T8'߉`+uװ ;Mjc+Cd3<%ZJҎ4 Vo%7u^EG{-Y_l_vN.ԉЈC.(BT1#[A[ u66Ude ljqT숭{#U&"!#×Q/9kX1421p,Ll| @8uibh|L:,` zRc@Bʛ*AighFB'S؋ݩlX{[ouQlRkZʸhy+^Q [ګV\;-PXËSZB!BU` h4,faB;x(ٔŅ%G5h-O4gV=Fpѕ  -e56㈬h]mx[|Lm#_v/Q ߠ3\D>n$V 6CG౸yRX_Sϗ8`a+gRgߏ^r 3wP|.]>d8۩8ٸ)F/x|c3|݃`@i [ E'd#^e\䠡##9H()4\e8[ȗNkHJsUmQ5#JSl>Fef*R!"; ,'^|"Qb*VlRlV@!m4U2,Fp6$d b \/"-LTe.!08\E҅UN|P:\ց/+LŅ+ʊھuZ+CVpD%_:7L8Ch7 kMOVjv],*"G ɹas*.SXtǸC15N녈 -IRеLA*T*57.ŗ-CLQf4a8aEiSX2n?z[PX5ӷ`aU)=^Yq3&ghM!O4T\BsdA.hstgͳ1EPR݉b.Țdk_k9?M1+3rԸ?*sȰ0-\ AD%ĈaaqlCDg9bMКB8i,Ȃ$]<#ϛg[~Iצ`֙BXy]w HijD[ G][ Iʉ' T^bT9iխ cݣ]Y/Ym̒Ap*άvetʤп\KK>򮵕 Wp\v뒤¦!mM :3kp{w_an8wa> 4^~kx :sʏr!B-`הFqirة *24_Y~L&5W [2PM"}A!]N3to&Q5%+Re( 7Q*[1 {0QFwI75P8U[u[(UUSr!e /b&H9UxQlcm7le]YιPx݁X{oSTتEGeɌ8w?xZ,~Ue1}?2|ǫK?OdJ)⯞%fŠQqk%kfD&_! \b, hCbv/h+qI<4伣7p{2^s`e*gY #)zo[ NYWz^jOO$Kac!//L{L W>#}.?n?'ⵜ|yd=J4ږ!:KigYE l?:H+F|I\Wug0fO3JFr2fRSϵUorۗSirG|?q'b7/ X$7^jj2Q|r>[&_gOS"niafzaf??~ۆż/`*uYCT LiaRF\1qF,N! Hq Suyk`Gw6 `sd?YlgӳϺ>W{Oc̙`ժP%b#;sč!;Hdg}IVCjmX^ a"s@eߤ.iܪ'[mȉ9|e$5!'PΕHk3cQw_%6`'g2jܽӕEVF00s TejU+D.a%H[^a H,N|d-ߠM> к@2+ >z$_:݈g!Qe4t^[ G榁,ejmPkMQsQQR#kSjP̊'_kL5cu3cR{-]?Eo? +TluJ뀷B[;1uQWlϤ8dr<* !P1AQ`a0@q?!X%pX/8^Q?0,`!,M $W IU2:Lq^aFK )QjhKнn2MήH wYT1/!\ fȺz.L%Rt,JQi;P `EW?tgU"m@^[ϐLⰃmT7mV͑+1R5F?$Bڪ9c? '?a@OP{`Y2-F*Ȁ8+C*>&!f޹3 hufy' )2'W fOEkݡb6d5_#_Ic5Z00 ҝףP\KLr Hf?mr^*1g)L m׷/3n?._D7@yP~ '4!)#d\fʨxa7(fC?Cߨt2z^7K*ظz/S1,uۭO1}y #Ñ4 vT5߂I,4uvJH&^#XjrP=LŊ~\0˴ >'bL)ۀz8Ax_ǫ//`"igEӇԫzf}ffݏ.c ?,#ONj#,B}lx]=5`-矋*^Vp1Ec P'@z!vƜQp۬1 !#dXV6*}a26"SBC*`HIiaG] yM͌|΍gVg`0xa~ ,p$YZ^RMX7J:b( ˻׍e!MrNوfx:,( `Z~gЩ!K~(NhI9l3< i|q ʐ<'dV( Bka9wa:6iV haql`KdEi+eUdBusBI{f!SL簋PwTa;"Dh"]& ˻םHo°L5GpQ.J, Ve@|N }3a(4#v̳EP(;i+üMn {X6P΂xiZJ6bL -v p%Thy31 [E^JU7阎# H?q3gfrL[؜1e=%zHqfm7$ű eUdLM@`eF1N)qtKPC;cR4'a۴/e$vHeJKoLl+=SAdcn# {z.ӽ0(@̴_dyhńq+╘[txʅ V0']yE%:Omg*1Aq<ʪ̉FŬXy뢫hMR>7`Pd]2!c4CDb$t!5!B5N|yj;l4FVǔr#Tdh`OZe~#?fC)No$%sGDtiXc 0NgXL*rM3\'bf\h,c _PSeeJXNf!&J}ggtVU]YZRG[D񹌷ޟnTV}; QH1=C ytkpa(5'A$ *vl!'0|m Ngp [ }gg$`'^vb>t`v_m Ga }Дjnk u5D /{D#񎥊!k%i+}xM=e|l~Sle78[IVg;l?VL [W#Y@j *0_<ɵTmŲԀv/3192Xy뢫hL$^(4ڲ& m(oe"cEg҃,c+;`| *4GLWSz@1Ʌ!>h,=EӐݖ Ֆ)yɚ[Z^F hTgeWvr_T-D3kEРU +tQƅ&|2Q9 AR]r@H@]j9 u6 bt`*3b{=[́ 1 +҅p:Z+2ʙ 4n>Yȳ!gST^E4cN<З)cl' )2 Xv"_*f_I3 zBuU=#-(QWf 0`e&bo+]z,gi˺n4}\mU4ϔy" !0SV Ysf#@|Rc?+G@M = SF1a`^xGR?lNbn]A QUD}d3 '5'b~aM/ S=cFeCQWf 0jZqg hR^Qf= ڌrkDt:8Õj۩z'/H"z M_WpĭWaUv, 'sа D%du6 btiC^{=[́EwȈ\T`^gmJrŇ\/ܧ`s` u [ްGۓ\t`v_m GaPᩝt>jf`>@?".$ Q3ya.,~^z+BrUѓ /{D#񎥊FL~9hȈifтUm bJ̠hU?ql5 B7:Lh00#H~6UOGԩp"<0 jy@1WtL'd˸'YQG*WkDz"om}mn ||%HBad䅏$L#FDDL 0_n~p0.NH(Ocz͎Fw<@3K7UEϤ]u[Mbo _Exh)SgEr⯱n | "uWp뺍PJ'Cc":G <J̠hU?ql5!;6&""Mb~#~>jE; cr~4  Ⱥ6*|r3OZK "ԔQ `ցȺ6*|r3OZl.Cpm" `KF !"( h]~Y¯8 2P]X*l.CȘሀRa@EUi),EuQ]!r?6c (RXr(DtgD4.@ hn䶑XD@AR]r@hd]n>9ֱ{֭Ew%\$<#D͔%(~Reu`к6 ٢ b1Vl0 ZDeKFiM%(~ERIxF;&M 0Հ4~\S` !Uc@Z00;1-9 o"t MF*nxJ{Q^(n h|(eTH@]j&I mN!)Ȯ%6sr57ynF4>~@M_K "ԓ=+'H!D,y+oiB `iPC8z/S1(QIhJMCfpc*ԁR%0͜d/dHf@`‚Gaq<.QRT>BSIP|Vh8Ë `kW}ƫӐRñPlvOy̯zMPmkY+x^E7um0ؠX! Rs6* |j~1f#jxDR#{4c4h =T. T/KČ+ޔey<2YuMBE1eH!Du 2Y(GpbQͅVh ] ,)'[.I"1W$zEeOԠG^bL7fkO;+lLP. ՅO =y_"){:md9 sRO W+g^񾨿 ,)'[TpuZUֿ0A&'P0XP j80ڀa0hAi9 q+c1Bep&L&Jy`m04 י]!6M6V C# +1"OqXUrR JqĴ"QHX^59$1ZP2+`P1 Be G{ )Q6Ab-oz²1a`^ ˻׋Fq Ya\:0 EtWqx?L' >C"/tL"_9Y54m$_XIXXaUt+,:A@p*/Zvђ^ [rMk]N:0 EttdpYDV XacT W؂f! +tyLȝ&,, ֝cV( 86b؅22X UZb̢_o xJ^ROD%1>ѭ*ޙ҈̚'9EP+r)"0/wZep ZL `V 5TD`]X*ݨ̓N-XWFRu`m@YA8!PxІ n^h#ye{<4}^ܴ'T8U?e@ 0i^x#y$tX_4X_핀*LCn W?- ^>(8aÔB  Ytq!v»D*,C\K~ nx ao/ dO֍UI})l6ѽjMrX?TI~_ pYÀ[=yJQ)|ha M@I@lDA @ H A@ @I$H$I$A$II $AI$I$I$ $$@ @I $@H I2 H$$ @I$@@@4I II@HI$ A$I$$ $ $II II$A$AHIII $ @$HH I$ I$I II $ @A@$I$H $ $@ @hA$H%@&!1`APQaq ?"k{:XH"|xPdt0#V5#A nĸ9ydqy (> j ==nn6U#h 2K% )4v*Jy$ ' 944v0r=o< Hմƺ^:Y1$'8X%9u g"1O*xȦ#N̢8LG-8$uX<1ހ&Խ^V 9:>sYꀛ׊[maYR8ե} $wӍQ=_/.*% ㊫Vt/bE5B=1U?R.zf?z \2]Z cĎ8Jzc)䜝"_k\AuOλ;g\Y+lFØoɒ` s͒%"eW&h9sj0[%B%GhcShS^s(fcߋQ7,d9%!~iXdyxh? W{W( _wE9vTOshm\԰B0W`X 4JȤ`gDZH1!,o'|9$ 0AP!`1@aq?ޢg mBϾvY@Ա+L(:kQ=kT%U'ZMq|82fB,3 g(b C_\Rr'(1dpEvh)]LלO">nQI_эa Q%s] K2ބeVcx߄M^2΋'3\/j6I>cp&=T swP, mxo]L9 Juap_ y"b#'*\fn2\-ғTڍPAZ9Zmq`am[ud8iAEaxOnA*-[wՠA9 ed#䘀;6j6.idmal[Xy8BQAD>sqmRA|U}%pm;eQ<)KC=mUi#,ø@W <@!FF͚ ~d⨙Xe?@Ay+g3:AMV6j_L(9+.nfodBghT"T;㬈wU05|"OYK>@ ŕF };lsiiK@?o^& P vR|!wbj!w|_jS萰." */W QA_WU~r*BQȃoH='ΑrV(g6=_Gyd# %yH85 , @'ΑrtaFT)l7܆[=35\եz˻jqp ~dh!dԆ pwȓH9 0#*rQCFj2\r*BV.SPz:ZOoѵ6Y} 1x ,TSWn;9F=V:ʜ%8-lSkp5x%X'fUi~|!wx<'8nQ6ܒ`NIVJ],,:VU,s7#J߯0yOEǓWU^uHz9 T%&}j&Ohi-\~Lf@Q|*&ɸ@D*$2: 3{ ޟ2m4۩ZaF s~BD\O؄1O<(BIJRwʁu@t4D ToFDiK6hkH 4۩ZaF R2Nߒ+(OBa*"NBw5,1jUzFILpZ:\pC ˟ݝT#5: rpgƥsN0j}hEI&M.=C::yTc^<0L?Ο?g+:? :JJqϗ gOBϫ ݝ[aYKeh :kcM%`ԩZe.r0.U EHĞ&9B.I-$"0F>k!\ yL/vt& 3{85˵0B}Eg?oOz d#GgU<{3_C>cWkZ 48&n so N;D9ddj|)Ht~i@g)e[.WC R}t\`X}]HR%2R6/75B݆O'Yv ϶Zf2(;)m#Wmg1'CPHqj lj? (ĪF$v9Tc{]Xc˝PW 4 )Mm3]ǷQ="'ڕ(k {⇩wlU$>/_#)LVme>c%gr|<⟚ @]e#r=ёc[SP& !H8pu/XV,s{ύ1/Z!4:fxꨙ::<=c&ea,74W[WwqHtۜ տ䣳W!}?~sp't9QZ$+I/v\fn=ߙBqVKR%58ѓ3T)?&*FX 6r)@;6\;[RoAA6/2\ }36Ƶщӹ BG7&vcyKqP?Iz14-I Y}0rxv&zPxn:T*~FL1ぉ*w Ux)FXm0#=sWA{ˮ[Uk]&}wB֣;r<$LeC׈\$&WmPXn'}]Rj- 8?vLlPcbJSKcAskͰQ.BD3ﯴ= cA /Vg N/."8}1H;ϟ3PW*!,TIQ&lH4K~h+|7Qm׿X TP >RTЅh:.' Wt9j- WCRj IoNS#{7抁ffoG|bk2nZ%N ИK*p$oU_*}r\; %ԨmBt m:<[ xkd^scgiU'Z*|Hݟ" J <驐WU^@.YuҰk?GC`.0sdkAhi~R<h>AA SJecEZ5 08]rfl$fQh J.snl+Kll\j ߒJ`o]!0 ZܦFd`Qdϙ\ 3-Րj2IV|uRty$ jayTakʡ,1Zd0Ť~lA zt4NYcqt/"wj aEų|`KƗQ|kv΅`r:Tsx܀8BO;XehȱjC%]nJ֥Qy-teSdDCWH l|PUy%"vytSiլfMc \2/?fk MX'ڜ`QAB\74Ƿ25=G~LZEMeTV GCI$mLljij0 "1=]4lEO "@pdmRr< a*M95`W *m;7=^'B'y?V? EZd04}V6h: 0T /s@=lJV8{Wh" LbCeёc@ {U?FD0noq㪠TżUёcAu@8Db.z2 qC| j !6U@C6#;ǟёc-JOLκZF;iY2 qI ?<n%+`rn!=*1on2F0C6UFёcv [n!=*1o;bH3A6UF&E*B." Jdۈv~%+`[8Lbg]xϯjArtͷQdA)Xv.Zf6FHD{T*ׁ*lʩtn''0#/M:QKFKO'#~+w @;R΁yZ(0#/OF6"17̝fp "oڍU O؂k8iq/!ٺ˧\tTy9o#Rrȑd}FG1ё\(}^ӳY#ʛ`taxV7PZ%UA@d"-ppՙG%kX $-TeR1##fHhH Jk=U~f ӧ56O'#gϘϏqUld ]a$[5"[(_"2>q|[ cФco"#3{ *x㑟#_c8^5Ee4U%)\ Pzkx].Il0Uj7nZ6^>MӉDԳ@l$#\g/Im`{@nn>sqTnHހ4x Z?Cͥ#rߘb2dn:T*~{yj 2 qUGdGбNQ1JI@.Ŗt/=NG+ QRML t,}@@q]W[ OF$w IY |YpH<ĵ2ڮw ]e/MwG5-zk=Wr40}ʑ1x1"S?^95ZKߧPQ[1<>ΔqfHB74}/jJ΅۴$J(}ޅӅ.'y&)[=o+Wddj| S3!TS8"g;V5x}*),]77 k;w |Ī^EJ))+N&os} = @ ޵>}j6n zx* HYr`da".49.jLYTCEcp;B{ N]2]xǻkL]ΞJ .|<84#EP5colorize-0.64/doc/screenshots/colorize/colorize2.jpg000066400000000000000000002574611331025647100226570ustar00rootroot00000000000000JFIFHHCC  .=> *gDgGþRs?ݫH=g_9}B GyHOXTB_r;GFw>c  }ڮuMTS </= H? Py y@hv|7}Cv~=@s|nlGS~~؞'v=e֑ٝtK4׹0m2#))xoV3|J6+xoKYO[|\Qt yzg7!p>.ssTtf?nom*Omm)iS>ፊ6K8ѱ\Rg 9#b))MϙRY,SuGOlqjU: %nPTtRR nն>9 4lW$:kZ>JJRR8/.O40sy7J <'k7̄Nn|o3sx{N6;[kZ4jnlRY,IIJn|x9:}#bvݟOnyImgڠPf˿rT wNwTlqFK Hsyg'JC͙IK# o$>-?3H*U:I))sy6;&]i4k%i4{m~JZT]8T7]ϕZ?p>乼vitv_uv_um?d@xFroK8T~f9Zu$y.O4.3k?43s_n?CH4.]M͗ImK8.O#cdmo>nlpms l̄O#RR=JAd)isxJZ|f26;\K8·[gQi4p+u*}P M./-GSJA7>\qqkĔ/l{8A|[fKֵ 7/4H4ϙRқ/>t.uukn7,qd 7 ))BC76]?zm&̤}k%jNn|ΟPt6;seVmt> lw@7}Ap5>7}kPiitZ?p>RoCdvaX_Tֵ}mit>?pjMϗk|wIKP3}[pRSNoicf75wRqku ?o3yY,vS0VmFtM_Ssxn|@j:|.]o$U: + EO؟%ZSַuq<_/U6#7k8 $};Xa@G"orB W%K8-uv(;]4N ^YP=skäLgx:LF>@Qs^1ڣuNr=|k5>/m}M5QЕ?(V;YküWAKs6lmmHfÞ;6y:/Q٭+#;iN#X7Ml ؝ xiri ЫZ-AP޷v\DiN#X4uXxȯ+`"jES6sM3l9H,O^ls:o ĥYdٽfpSKETd0 в9W評~bGq1RG\q2<"91ЊM5 7II5òX|T}GP‡` v<0hܷ8#}Ƙ(1*ydw_YWVЩ#c&7]Mwt~ -yjLjΉz]$]u\S&'R&*(-*~iLj["0L. n[ؖ7z֛nquS &w41KdGr2=ִ7IyMt2cP%2bu?{K~(M'Η /+ X99eX/G5qWsC9I%|4{ׁs֦̓ }nr*XLaFngxuQfYBѓhY1Bhu05 df |A\ؖ9&38lߨ\[1 "9eneS ZbUukYNmׂwpL]r8>Yn+̉<MDve]ut4)& eck%uTꉮܴ68Ǿ-YMlѝΏ<9MEiaSME.TM1ӷ(ܴ59{͝z`]!0t~ y1ws{ mk"M 8u: ]yA.5DQD۪jH+9ֲ^ lUmӎAK'-5.^3[ؒV7[Q] b\ʇ9K4xK媬ء.(: 9B,/E\LO>iRVщj5hUf,`PL FKV tj=M4u5k֏tWkjD j/Rk?,<”00?qMR㮿.:H=39._Qʒ );r_jxGL 25G*y㗴rيv@v)|g Ir],Q0ןeq }\10)0B>a\G&^rX'^--4,-9yBt̩O[c$J[GkGČiTxB&轃EЯP2)֮ӊn߬SHW>q7eJ[SRtݷlK@1뼛 }#Iꮽ'H3:/"obqj=sZ%liV۹?ǝ; C9Ols;_MhWY܂my [^6:FܫmfouF4,3^b~BN=җqe:2 ϓxd.L8 ?݉pLXbO+,1' #0rXJ=eϦ?eԬAM3@#,`s?F#.,ET3)ȣl7$͟G.3)?X2\}b.4sı(3&0#caH˖]:=cc(u)Js4{Gf8>,>N%Kr(9cC??6 C=fIfY1F=qa1X{ZG)|xCLq{2HgG?6 VFX#Sg9 b9#E?X?A0@g2O-xɿ= Gs Knm͙02>ĝe30yYtReRD!$Iib9(vrC#/ņNvg%v17RK, aHr-$dhԲk`#wOY]06謘yjtO$6[`L%=Zֻ LU*CzvvVB m(>5i_~"k 9n5c^DgR{t͍d<)SK_p*"׀ʓN:YG\aTјv{>]xW WZj1 m׳Mh3U- 8qETX,1z^ST}4 9~;1ɯ;Q 4d{7ZVcQ[?*X[}JwwCD+]<8n]laKǻ0lVJ>%mVԯ-jqVCF4Z׆oW\ ǯU,u_7cW]ׯ'_Evqa%FU T%(hXINA*hCq5\UqpikW+֏=;fH)Y+] ʱyF77m $}jյA_jVh1Ň:6 _.eN3 f|3Q(8uyb+¬hh_8%ϼm98а~6 9W!*|2E8~Zy2>d/fX+}9dLE^k5uGKuPVzBjաoW"5zݎH:/6Y'܋]EAW~:;qxqu*IeSҵƼEGTSj.8v-{n6,iQRbdeq,(o[""ZuOI3$BS2 X%ꉔFNٔmY%,2˻J@;O,lv0_vںl V2-v0NkC7Gfdo:w5mb'ʼn !m>BT^H9^`iAY]u衾l6afq]ޢڌM݂0W 1>iƵ}fcpzjZE(xi7+ , Q漱^:4լ D[ ͂oH2mY"MN%jFk*i5Ģљ)bUVD##S,M`g "0GZ:ח8W#8˸liFUU@벹! c!&2 Jc7zS/Wjw W?OԖ^L 2l:jBX Mb1Y"jℱMUH@ca[]nPJ8ѰT~"Y$0a= sZK5q&ƞ6k\IW"vK FỴ8K\̹ IL{E SXk%* U@Zb` XX8dzS`g pK8f #Hf9nMؼfi{:OD5EN.炴ՐT ,c?K,kETT"YUV˂@1B#pa8>bʚ4 œ/=`H9YVKʚ˕h5mPVx1P<،8#1G8 RC휱*j%[e l0[%JeI(F31漱^:4լ D[ ͂oH2mY"MUA)Ndrb~kw>a=UH5D3W,'ECIX8X/x0`RFh%YY+p2aC(@89>ꧫZξjT&T-5q*bYD^O`9C1w0iu SZJ5k:52W(PTH2` j;DZoCJ9=Z#|G7=/'טk7XjMYuTmjV5~xMu-d(uaɘf!a1}Ujz nY dbkc,3(I ȁ$,09=ЎpV ÑfCI+mPcf.qv SR!',e&(e+@A&(K4Zdf$(T mH&+>D^O`9C1w0iu KԡG_[b5OW`M'xlw?!n0VY1Bi+/ @pc5C ufUM+NYf3c#2WT֒Eh->ǏSȿX)C0L9F[0v Rn0}+Me4kԵ}j'*uipw<h@|^cYe\ (ʪ\Q18cG1%5[ TW7lo&ѤPUF,1y G bDy>2s\׬k~ʴZO[HNkp!YUjz nY dbkc,3(I ȁ$,09=Ўp/^ةRW^~,,A5;vxNW o% ڧV^A$VÌ1Oee\6A**Ƞu\RDH 1q]OU=ZfuRi29iV#_5 )4dQ 3Y>s.'qi)hk tdARZ*x XLYlZkg CJj,nMHY1bq  ĉ>}Şe`;tKG ̓4䄜g^=RӰ9d<׸P|t;mj}JؼMKeQV b^eucB6͟\eN\kyUx ҿkNrn(%u?(wUCpi)mV4ḻV8coy%*G5B}I‡ȕӯyMZ+=U֫6cE[Z\ ΞǞV늹t7xEm{`kaҾ6,5† obx" ;aUwmdU5Hv f\J\Y]MO%7ʴ~ު*ݵSF%>[!{!SmqYj&3!Y5i+SW6 Y 5DuQoOeUS, /a(zx7S-PhQ4FDqŕMЉ!؀ڦef>C$e v]lӳ5XʫVAhk"EԖh"J 5ކvcz 'V׶9 :-+^3m2ˬ߃\(`ɮ1F'B Swp :)͆UM$ܬbU&Y\ FU8#̒(krӯx_ i^pYX$ca3i"_U陿̫3QXXiun'XX;Y%#;lAZCl+\]Uk7Rc`FAUiMUukZO1*4mA\ۃZﯶ^Q6 1Β8a)(ԜB <#n$fXgYf& )%TLu=h+ 6xkO+b 1Xқ-z"}I®Qg\ppldm5|лĩhls -6<bwx~iU@kTIدdW:׺O)ڸ׳_y%^k+R<`ih]T ,?y e{SZ9^L-\ڌ+J0tƯCHIUw)m5KٝJeĒ𫧅c3]i۴ Ve54Aj%;ihK5%ҷV뀎V/3[K|3m)J͂΄vVZ|j ৌRDF t@$] aT|B5jBWWUu_pJ#uz^=/WzvxV< y#k}z{nXG7S9om*emJH/#8.GB_$Q؟ LVaID.]DX{il5%^˕-O`Z59[Ko.XP[Q@ˋ@*uE>XOm7V+[eBvuOa50TְUiU%JWu{=jR_WkZ 5ccj3پ!D=oC%`e'*ojs^+l; ]i[बu昊 ϐ5ꋵV V ɅOc2z#s:Ek؀ Xk0]' 0vBkZpaQfzu\uwUT6V 1Nƣ<ۋ.&oRQ5"5u'JɱoO_qzc3TNo'TMuPʵ+#`BMW ު^y 2iAE{eU$CV p,` Wav]>6XB+0l\ JvܬQVo59Eaj.a>@]=V5&7!®&*ճFAxv*"n Y%r~޾27fNt+Pen{'aή;8(,}Uֶ{di[]12Um6 Ʈ niGZj jɻj+7m! 1($t.v,Clпi>٫`~^jÖQj%,l`t: :F`sY׮_(<:|ֻeau[iLZ\7pr.mU/tffrd Ja7^αs XkRf\TqZ7T^J$a̗\`+z5*EbZvX2ݹWfWpz#𢵂/pKMN MцVt,ِ^bjJ|c;?uq.Gq= r|WBOֻZﰬ{M"Nƴ6oW(0UcM+,7 kc,[c\?-04u:6S3˰!0kUU5.3U_;gI\5a0!)Zn$Յ{A-5%,1[ZYf9B}3\W3P8_!M)d4zꃯ{z6=-u}Mitc }=:U[kA]Y߷%Uuƿkf,kJ8iʦ#z`nK[= beZ>M#,)Z1fƶ+@dl>#R}y Y 7Zsm8YzYRF `s -%B|K D&҄XMW|22**$y!uF"z5H%vFܶ(~-iFduV.SM4昏'Vq֌ܫ9rj]z~3%dӶJWaVU,9bjoOHšTiۆH䶕BᲷ^Y\' v.,ZeØ|J_O ¥fwYq] ec/E4G YqiTﳳa@,X_`c$`ֶ 5_3ϔmQ\kZްA8BM^˪_Y:[aP)Wykz>$n~8k WX|yJGr(ٕPm4v"JM;KJfMgkYyY[U;UK \w+k=RLS)퉛h* (,o\Nku6w9^XuU5q$[1>4.Lk2%+2qकf6 I ݓ\aʲR%V,5NJxwKaCӧgzwPCŅZ4=èTk]uEږAk [O5>Bv%si2.XTNږC7,r[˴?BX9W@ÉŖY1Խu^ Tzʰ 5@,xFe}>ڃ)|o >=BpuLuah!a!$^!m6S.cW tAJNJ,7W bql~ ΰjgo-eCqRA5-\w0adU])}MmµL{Or*nLYk wo^)-7.QSPYM\gx%}"%]n g{*l5rvzʂHقOG:SZlwfm{7Zk፹:J$VZ#+]sX\V[D¶HsFjPMb=6i+iĐþ(7Tl5eBYu"v?V-Ci}}X=fovoesgR/[w4K%ys%|~}^wkoe9n.+!)U}|aȻm^,ƝhԶTְy$AHL Re6SU[J׭NZ*w,KsjpXdjpWz=Yؙ 7vp&3Y=aի7*-]mcnZS\I|ӗ}tp5uvճSDب֟_5-5,{}`6ul5i.A3* jy*c׹QR$U gtzG2IsieyS[4) $Sknh=ehVT b_dHl\WU;aUڔC\y*l`~ɐJt!n3i-""BvE, # HNmTT-]`{EEyElGDUMV6L-$-Vv,O[;!ӳS;XbzEa*5n~yk:UѢKo &~;+d]^ѻo 5T؄b$Vܨֈ.\ljEgbvJ ^jXq* VYP)K8lWU%:ņXm]S/&BΑ%iZ`D(z8v;v )jujK'ZE u6U aa5W}k!F1wwx++} iMp O\aW5tصjM`hR"?n+!G\u|ߥ; X B:ٌ 'mJfu^kmXrGj%&X}m::+k䝖x9hÙk]bw[VSM@1 +鄔-iTBLbɪ%jqW>5䡵]og[qZe֪+SYQTsV׉ %pǸxAⵞ^*y౲V_N{KSKvBt*7U0FeijÌD5/]Www0:v^z/.v !6[ܾXz[ ovJd*az=+bdcA~յ_j8GQXgǮ-c/A5P+6gΩS+K,h\ZېY]Sڶݞ6B}HhY_HzsU-;;RDE+Ϲ0]g]-[֗x@F]N%@ue5p=T֯T]v66U*? j+GE7>Be* gc#f =Mk1M"o]FJhJ MOOzbp;CAύUoOaiacѴO*!S?T]?i7_v`[k@W}0F vS/2bLW싱;Vi։KeMkINM[ܯ ȵ&P66m }\_R1Sr65ϱ.2HZH6+?m2ݵ+|z֕;XY:=&Gf6ݎp?J,\ IX{yZY1Id- &B3MI@ ^dOkVXVF%}s7$(hFO,0X2voЧeMYy}tz.d] :VuC8*}&vTk^fJᤲ[LG'‡4dXYOXzJ-) ˨kg',#ܳJV8R *taTVh1{@u3`/ +L'@y(9te\T!;stBJZ1!PTq"o\uţ9]Eq7+jȨz݅>52X[/+YT0iiřKlbek8Nls] ZY\QK*ID%soP5 +rh'VѲq8"S0l3ukDEQZh6WE9F؉ p|6R'ŬCf&Wu4AӋ&uu.?P , #9wRa- ^~Λc'55 ,=U2T,McakNq҃zCfOjҭ꽏6}=7 _*Y;nWWW\R{[BX Wj5\ Kd1m#WOIa5TVNu[+ )Nj_4wlJ,JvlƮ3jtE26'<,qablί{<u|ĶBOiw"Ey2X8bvB 0e՚he@GK@,K!&WRG [8NUa XMA̹9a3ihQʼneb 83$ىthW3cM ?ՆjRZ6u3]8fFXSrB8) j󡊜(hƝM˧V*#P ÈU~%-]> fR_]5`X%PDqՋӛ%㷬U5w8juNec|ͺd1zjʄ21 (0casKVN;OӆMDEZGG՘^2;pdVFu$XC؁@nufg16%)h |5HiI.e'PaVP1E1bkU0#zo o)K~ݡt\40ug?9c-+)Zt .s +;,㌆Xn[&0(;:;@gcWoǛjK |;:Өm+F3eV1"YNep|e'W-Uh`Ic}ՁɘB<ojv*ƲTd40VG"@J,zUbzŅT*(!pz9UkY4N(a ƾ K(M nU+͵_2FWqj]]ae=FBo*3G_JL*Jm1uL}_eef7 &YG0 ND"/gTCv D6L@UY}YmʔU%IK*TțΊ~HŃEd`+C6&8zo o)K~ݡt\40ug?9c,& N6+,vȕ9Cr ,680 ++kHᤲ)`9W;rМ#**R)ulnj$UM, P+!Xx XK 4O Xac2PU8YL B,&Tl(ʶ*ȳ08,& N6+,vȕ9Cr ,680 [4)p!O?w}$| FǔR~Efa_p9ٓLgoK\ޖzGcbfP/ĴPq1T=^;ԫS>-9KZ lRB>fg[l pBDD^Z3kʴKi]jdI?]akZ;ž,)Z޵}#iT"{ kftͨy /Vb+Zi`$׊gqll#݆wRn6AʜKA )(⡬SeԹe5^ |a!g*R}ŏ-SIeU;Cѧz|+i,u|p})X]ߏs6&cw5j'I^w̰oo`vZ',X-i3`-rkvphJs@ 0*92oї̈́,˿+F6aB ž dp85bb&]K nnnx8&oi'):=i3V*+K`lwm ߹V擇ى*04*Դڞ Tj:QeAWi ѧɂ!y7콏y}W/u1@  ]o3?vz?>ali繏Zö>/lՎz,'F۞/$Uo}L,(TT,ݖCX$C@m6L+}OAm=.-P!ш}hB-mb9 ѯAvpGAn~jb Lv6c_j%msaUu%d"Mm]_.r]%cT-Щ}Lj}G٦OgG ֌,QTڱ;)3,]ǯ4 ]6Db:|;FMkT۲\UIـ%lgT]uv P՗%Yuf8ve+DQU^ڣj-UxqJ6|-]|]W*  l,ѽpY-yl bۙY96E[jm]+:l>Xkڢۃ= U ^[+y[fE-ڭ7Em/V-GD_Ԫ6ܵ ٱ3)%U h!k[^f*&%+h`k^Qgeʥ)c:2 RYM3ㇵ}OV>=*l&xgcCl;`مOaTlnS*ni]xѤUN閴60W}5:hVLa#+.-jCZF`smf Ccqkgor<KaքRJe v5vVCz\=K!V=f\jW_߮2S1VktV/ujwÝM[KRXVfV[pq,)ǁEِ 3a$rc.e T|M+f8jݬ޼{4υ,T:kO|++~gjNGֶشQYn+-CibUYّ)Ez`i,$u]gO]uem~7ga%t'j}涭JFXe-k+XI65Mb]&m֋aE-nCGqmjH[kבNZTiERd i* _|Kc[aΩXi؃U?a7f^ Vե dOBJkI!mV̳kx%VSXޭ+2VYI+ 7r﯐iu 6G -m3;}]Y۸onJ.ê$d v.MccN]oO;VF'cXGcc*KIVGlm]Z.(G`\7=XS\ ZBd'ec-]6R:pðuWUdҦ:/h}5N+*,v}4 Bſr?'*! cf-ęp&*߮ gp^ՉƼTu#T{-"".5v%,Zk 2pso.KQ XDŽ>\qTSĝi$G"f)-io4>nʵBu0z/b֚`KXfJG.N޹ ZyY'(tecq0HOa״]C/YJ݌l=3)J9Q*c~IqNƺE,4f,y.~mreJ!xqRx{DAlo6F;^W7a̬Ih!db|5X[f! N3Z,A!ګ$- 㭮zCZM̧Ta/je^fZ7"il>w.βNpyX W!jXDUfVXa`U#GjeNY֭0ƹl,.p%b]WYc2vd(eJAmofRfE'SoZSVlunBL3Upe1m'kMf~u,P42N* &t1.b;]/rRo;|c64g+lqRz7|(u6T@*6M&:D6ZM-r;@.ru+Y>\U!A]$m~y{ֻ͇twq]8_ib~;e c7^ڪ)Nx1A}[z!;ZC䭊Zxe88lu[4O$+ˋ7lIxN׌vVJ[I*[5:X% mL,P6vnFSbUhۘH6MTخYCL(ID )BacD]ecQWM:j떒l m/Ml;jjkfDؓ.b=6YNk-,j.j̤kx eSB!`M%5B{9TIPkںԓq$d;c~BJ 4kyj+րvj-ihVXH^nXSKi1kKtw5ҍeg|5޾%݂A)h,ݰp[!%ψoEJ]閇 i2tzR9̛!Y&PmFVD._tRα6bQ\OIHQ$n˃8a,8MJ:q}\Vj൚&8RM:G-{_OYdX=P3`Vn0daZ>O!!YKqPZ՜3l6 FYV,!2JN,J!EҊ˴m09bSsmS֣8gTmc^V|zO4tkF+,gP!Yl}Ƶ$OO>"d3@s X,q2lFdXJq&&iLL.p|?a qqL鎡 ƒ޳p]x)Ş!c.$)ö=L؏TbR1<ãsqצɄLC9q_=b$Leı8gcU&Cj/_GO3ܲևm{2L@11jԵUkƀ,fBj,>k+cc42栜Yq, j`\]7-+Mi,Ds'M꼖f +#Tbm4zn9jU|uQwLdt~C}a[y?<۲4IN[M;2銹>ת#Qh'՚?Piܿ@Wt4oNuq\|"GK7CP_k[ oսT\ՅjՑXG̃1ؔg^WqٌMXX]6*W("c]mlZ[T൦ 7 |+5},znPsK 2gi[lXյR5rqXl/N+Vحh!SL\ZEI6Oa}>ګAǿ7gNj<}'=jZ?KfR㲎fҹRmZNem7ٽ\iW M>͉~prxOMu'-Igr8@tŘЬXwPRIzbۨيK,Sq~@`^k w3:H}CtUe.ֱe 9\-zPK뢷د}u$K\>j|j+T-ټ9QUԖ®!8j7syӺ g3ڃ=qGQنV rC5grB3y験~K;՛~iSC,uoPt:T갮C||;|y.d;U/E/صiC[BjdqZYm)"TRԟ{X#ۦ2ԖZǖ?UWui^e,}G9]A #Gi̭申oVvOQ]Ҙ'ט}Eס9iYUhN^ܰ|fU=c*(o^c:Mi2~鼮waC]m=tuK8*kѪlXl/_;욜 KwB/6Op Rɒ0JU:tx/{-_[}/ЫV՚M[J5 ܭŏQ<\Ei]3Ѻs `V+v߈ېX]uywXAnoҹbE|̺F: Q 9j;Pu;E*'= >uF+Ro\zsT9!OH^*+DW@ն-X\+ZؚMSkY_^/6ɴZvE*ӵ򊮰ٚ:;]!H}8v}:hz9bꕬS%8d[^oYY춴 t)?GDh:K1Ea`ڽ|E]OBf|eRR6n9pmEbۘa6䨟aKwJҒ* t]ܖ;~iP RV¹&2N/Wb+y z^dM}\;FV؃hhl۶F6Szi2 yc&LS6'ٹh,ʟ)KAJ79b;5Xj骒y(jKF@dQ@,6yVFNY PVK*%id|~3X8T\BV(ǻg>[V0L'o;:Uq!tג#̈Ŵm߮x߆MPk Va-]UHε;6uU]f"]/`Ey{' YчKG"ZCo\ŷ殏\[(%R┛t2c[(|d>\qiˆ_hI(jic6ējVȷ(!ReƅH%e v`@3뵊˧#cɩ1b\]SZŵ-6I !K ִmabrYPžY(S'kB5doCb!fAd.墲PW޸Pdiڷ0SXY.m"!pǫ(_wqH{}Y+dcW˭ 3%䥲^:*|Vc-ZYXڦ!Z^$bRV Ѷ>eeyO "Y}UO0m5p5*65P%Ū2[gLn3#;O&cYj=9S*d+IG(rXvwgs{CھO[9O0Wzм IYZh5ToM<]t6X_O\9_- pED&AxA d Ln0gu9-CXZ%yD0(fFvL>+1~ߑu6t-Ȧ$o۳Ţ'f 5\^p8Ⱦc޸ȩe ?Q5Lm"C00'1q0@rYcZ]ùi&u9Lm͆LaȌHw""䈦fHwϦٰR9h 8H;Gc1lU9eg$d$IL,dfDfG}My+,b*@X2{]>16$[8P&)Y"OiB1J-+KLHCvk#!MP+gsy|Oy~# ´pg.|ع>f,Y0 DwHf"`wǨx^vFa㰛`~cY(: f6W 8F./|f~-ڳ[?O>;Cˏ"ryfl2cDffRFfS$E32E3}g d+4I(R)Q%~#I sepk%CeI8KHv \ُP挨AAJva6:}׳L6لGg߼ &Ѱg4ˉ;M"ds3rxY/o>7|} 61.r޷06Ys:Ga=v 'L#1>~ٻn>ÜqP,2((LϢ39Ȏ`@"H @`ch\]dBdA$@qw4eE d} S ;d"?3>%~m6d-?~שOẤ6\pg! ."1SL 8Z#r댊v]>^ T$3{Z J%5~5;6,o\q_igXCFd ̧̤r")Hfdgym-skMcacqF?r\vjʞ][g2>l>gegDZ]. 91("[oU67m.o5XrǹO&K s9s3}MdmYXdꗶV̉KZ@%&q%2#; bőL gq!(Db& 'xzdn, 0; )=E/pasexi j"Fg?Maॹr< i qPL,v!cxVXTkfaL ڲ,&HDSYP״Oj3XFB)JL*6yO@`2qMJg]R`e$,nHP~=— YprH×U"b9+ ka4ʺ+KYSAWvjXg@I &WɤmKEn"5q8Xjx{ U]c;uwK˔6Zv r NVK}`a'r,V,c@-o V,Al]kZl|_+`ŵq L- SҒ{{+kPQl@ֱ^^ [;2Am\p4S,D{{ Ymk5A2XHĊlyo­vd}~Ri9ܡxs|̨_)9j)I~ ֒%M1E)}̳iS^am[1`;Q2j-.M%]7_L6X3yT[LOkR]hSM_6]iYm\#2v"H+X)Xdv,b /NҢƟcT,D+a$#+ 6*QA֕sJcAoP8XǩnţZC&+g#"}l47:سbfQ~ $鄅*cr=b$:2-@=EЪ\ӭoH96rR_ +eղ$ zv+0 i+x 8ŕ:d2Cu-؁"0Mjw!CKx azcJ>kU;fxXŋXbW8Ƌ-X&ؠ6,\dY#J%'J=\lɠ@b u7rV8?7"F -bFA kwaWU)[16%<_ s'.?.`cGM %)B/ՔU+@ǜMFu1F!; :M5Q?<^NAR_~'SϯblP&ZAH TNZ>~uEm4[q%S .XA U6>"\.?i8)'X9XuE6E5e"K:! [镋i k  g㲾B Umiyo <VoX muR2JlgX>Kr{E.e Ք ucRBVb0LpL !+1cS^co`}\W&NA _s\5e#]VT ً`lK0Q8?7"F -bFA kwaWU)[jzJ&(2Vma3HhcQdU5ͩ2rCk%:Q-.RXv맘2dNS p乱pĠ u0xp>!2) "'ljY2 fÍ7^&ܯ]'5ݳU =Kbu-<‘le)R*̞s!IQm>SXmzmhsYXDNq[LdbV t[I^2bkeLQ`>2-8!JkR7ͦ״ÈXȥjX3$~%J5]̚[rUoZ, jzdo6o:,2ɹ{Q`Nl[Ő,8FH&d]Tִ%䪬AlɴM&瑱.% XDHLYlÔ@GH:* &!g羥nyv&.O8SDIqe-v"Ūq&SiNV,`W D0229dE0 w+\ DDz#ڴz˚Q"eo;=V4%b3iP@#kֳ]K[=n#a iqT㚉 ȨU1amQrk##^B$]3<HwhgMYo1Ib)Z&y &VLE%FnvE*X%z6z[T,2*ΛuXZUYȩݓ_:-?h@ŋ =1NY.2'԰D %2VӓZk6+q[gޓv|6NBمr+KMDВ:Z.IRL[W_y[)tM91-UB;; s!5kYK2,M`ט(g8drm%&]6زPs^ɶ,0LRNK*)+FdU*.n.Z2ىlƩ8gaۊI6$ 4d)"{ˡgBƱXm+el+5d] 92d6FT"pd ]YЁ/@{bK\dNaf .K0d 2o%–+kytMi7 }-cﻯyC$af{4o!b!&,2uDݨz\DeCd]eRNX65+XեU\"=+ /V>uiG+ܯK ,4#W6zQ-X< ⪢@\^թ1bR{dUIWU~yKW.v0v3 26θ1}irKo >`PGSY }v=.s峱1w}Aƪ"H'(Л(i-v*lgWt<{z2`D+ _OeCZn*a;bk`~l2n,Y:Jǚɛ#YeoR-V&*Md֡s'& ,*x۬raFjDɶkԚm5kdhrB,"MCkg6ڹܽaJ3Ӓ f=&Z­eL,jgQif"%jKk&;[ JܧKSX^0l cJam @ߓE2.,*hռR+aSIxd&㨹2޺&VGQ' 5i+"ǩo+` c֭ay6U(IH e+.eb`peB ~Eej8b-KT2z?CfMֺOj (u:cSW,15YhBŕsUMt!ZjEvJF'.IVP8Vw3D9oQ J]kh se*&"J XIr'>z*Ԭ :C_`-Mj7c:5dY_=HJz`̅;lѫNX*,?xÆ[x 0_G %E0a *vT'ViH2֭LRGv1mF >_oMOH :-/" `"3`;PplR;Z?ogg)xM`dWK a<=`HYA\XpK h5gbT=|$K;bjمWd6Ĉʚ|xF# sCo1p@R`0ypYŋaALs\ma)Z/Ma(2XW.NT I̫"y,axSa6Uc@3޷Tt,_OCfՊceq&AXi[++l/;G)?=};ZmtK;K汃_Rʖ',ږa)bZrS@Q q(>1?_^l0mmz܇~㎵ǍbLw`ku1rp!8lT28i")[$5I|9VƈnK8WR}kY|ym@q {6nCWwqZaXAܧV[j\M?18a% ؾQB< +eec͕⻥b5@v#GĨw@; "g&BS;>C1 a9JEv gT] ^=k'[ A7LkY\[ZJvc_L;V8īP ) 8܉ Mܡb#B9G7PplR;Z?ogg):(tw8#ÄIi[/[S FslLqFuT!\`!#GG* ymڥ@}2B-eh]nWmX5c\9ILwoKIbV\ԦDv#U`c~A3jۨ$%+. `f_dGH2̨$!tQ~MY]Yʑ (L#p:vݔVޣ"mYGV \8 0] %e6ԛ;x.' $@dq6v۸͒]7Y>p=75wC.㊪tЕ.ޔ%m{9gtp^[C)`ItỸE &_}N9Ozk6bZYZ #mg\uv 'K+T$>Xs+V-nX;5S~YP6]e'jֲ_f *E@0\q;mXBQ²`/ eAto=)^Bk9B+0Ȑ7Zڻb<@EcgXRD{f:i!TT]`xqݓ=O2ݭ9w9e̅C.LA4 &R+}2s 1DdԻ& &CC9m^f$6z}gmAK%zʂ3vؒ%"F~iEaؽz򔤬(촭Y]B S6_RώAt`Q-*UU$VP昢`8zP: huRC')$R:pAdۍVH5b1 P6cx]Fb> Y߹mbJb$@v#9)&0Č)"gu}P͏z+(dXv +aB2+9^u2'WobKfږv/f*X.)忌r"`+^>'>ma۫y r|@]bB|g pHsvp9d ug $_"3;kϮ]'c|'+gώ5\u;$YJ\I~!,P$o +3yDKYK8j 6=`[` TedH;o]!%KDDz?^N$7irg|dv6PkZ W\L &. kX .wrO.ЀbFe_l51m{ {тy "mK ;ij,|z~9|W{ $W$xT+~'+!>!33 $ b'q ӧ jZn0<כbѫXd@쯀G{8"ax {sph<^Ai ~msW䒾^*;pa ȥ$hߝ\TF8^UYZ91]Z5kMFd˥˹Vf^Q]!Iq_,+EAʣ=^pA<쬍UNɊUV+j/]ٕz] naț*9`qt1LYx߀ 淓P;_OI&(T}`lEV!.Ir(' = ػ UjE,e><;΢6D6z5TQ\xv uu}LHHH'4SgQ+RJBsbn§1,?&x1Yɏ rwmB YYo7C*$PTO뢠9QH LNy&tf6N}|OWW.S˫{nޙy_i-OkΟ_{'?]M޴&sͭ`enkůַK_CElxQX9kom\kPz҈Sk?0Y Qu% ČZEƳIK ]liWACָ$'r Ķ 'L9BJxܸR ]i _(qDHν0"|U i(}hmyL7zTz6Y}l)Zݎi7aWa8GҸMN順Ci&'̪ 꺥rMe O7(dWfѥ@l)joܪO+3?{jH0I}d|2.IG0!NSL dMY*yK"^lA8}ArSl^ǵQiAp ʔ$J|JVMy=R,ALulXv DюD9{} ppm1JJ:wU@YRkeA楑@+8{C.XHMmCP,']rnkBϽl_0-aI0aNƘB2ČC>dl s@IZybElbb<]n㦵KEsRYL}{db* bZU]bdTc^I'1)w<پ?ǂIdxSjn;(slUf`Dj Clj<;7i XG V" E@d[®)+ o9,V (ŔtJb垂;ֺўŪ;+ұa\ (ar1 eL`XGmKR|a>-#Q-52EӔj<;qb@ǐ̌Q1z^2zbܧ Nƙt))9"&T]sanAuϻ?y3|Md1ѲnLN`BDT0S)0|eBAȊj#[:}9h<AiC={g;]Òm폐L)0khLrS`rVp̫= m-ܮJ&8_p^$RZ jw3A5*K[;W_9kYX`Kbܦ<уY̠Xـc9$=7j~cJ_8`O"B=c#ȣj@X,ۺVwX->ҚKR[YX LXv wsQ%h[Oǖdfy={pv8GzNG1Zrer:F?f|ѽʕ4l,1C|VK…y4\M_|&I*VXj6kBNBWU)JCqm1h5WJjuhe6(e bW/zB[6 DADrئ7Jρ)(L@6͇W/%PiU_AI!mphB4ަԨ{:դ^t!HPX.ؒ9~{L(XBJ6սleUtV /ȍIqr&UDVB~<&G7XZO$V1weKy&9[ 0H__&fɫY #\YYQݬVRRaݬ'r8Kf'Sca7Q_]Y*EӏCf@ѐ'+ _Ʊ rF06eA]sU7lJf.z$Gzpf@.%n.ؘ38X&)XMsBʆK]f|Ce>SWLd&`WKJN*WJ&A l֕<3%VVQyVjl8i𫧷̔m_Y߫P8m_D|RZk'ueZy;Xf)c{y1j H ,eCqSu7A;hgiNW=DS ,h$j z! ֺɏX+=VC#6ڗRk:WFo?5ZoƆSrXm X g?6fj뿯Y_껱]W_zZ2ƊņAKzvg"mïR02zb=?R6scꦙ韧3UWV2ZIk[8dSfսuI½-',:V}>VPsyyeS(E ; /f7)bܺZPcO꫃鿅ah˖QR R=u;{ {_ښu]M?2}/Ub]]khdz3!Frx߯gC"5@"zLe~CO5}]Usa%oWҩV-IŽb~k_Qk?c3QY LVa3+S_!mEXVjȖhMw} jSK1o|Ԍ5jlÌ. ]W2U[=5 (oϭIb_DN!ejj&cQ]=^({Y3!ǻ)>?^ukٞqWnWZҵ0Hq8ػvT]j9V Kc "TS4/6bMGvjf8& ̺*u;,NIqk|~mԟv?3SA霖lU/SPģ'CPjOOpogW{_3g_-{/m5b1Lq{SG }KS4Fk .ƾn(ZvZeRI3)s,x_ oNW]z{)XkY JŁ*T\V-Ю>4Zme'Hiu]׿S;qx PZUʲ5!*&6nq`XQ{}ؿ{{?ڽ/G;:>4[bo;HivWSq Q2]U%̶iWM'\VS{K ZrSO{u[Ib|W-IE^XV(OtNZ|c'C*,ۯLM)4:bڨQU UC]0 {R]}>dzn_~Q^ѥڳ_*~ qW MgAr1V!n2(-8<~bٱv7_YL}XAVh`u]\oa]_G)M-Ϣ{Ǘ>joEߡUB j}}{%}\H6bVxnJKm!<]#d<ӕpLFfvs` m|cɯ \ :!rpK3 3Sſ<}j!׻5_@XҺ!k(ծm(:>&/0#iMq)ѳUF6צJa+%ss,Ɠ%B)>ܮ7K|C]/Qaw濤]3X' {GUUInEwz`rs:qZ\'l*\x>vvMY]@{p"yM9Gqś(­aFr =34xbJø۲\IκJ'3/OSQ3c#g/;A A9:Wzh#Ɔ{j֨lt>vWG3=#_+.&a]O:Cv}'!Fff籨oxϹct[xaپPqTڢڙ:-dh\e-296ؽVv)ȗӹ3CUdZ4UgW,ٓΆGA" C ? muZg'! ++a63 7d4.LP*V8ًUsPlI3NVfzKgL "Өz(!A4Viv9qI kꑀc`K{ FoDdGdvEuNo]m$tG?7g3`}~M9 A (mc뽚>zQâg!2s 83>a%Ϻ>2փA$rxCRj/W1x/tTߗǸF:tu+卥__g;1B OUa0wzN޳ͯ.\ #ɇ?yB1ʸr7g;/zcJ")vm,z2XqO= q/t͌{ndF{ee4B+UՙxZDSbRCC53\es[1sK;lS<^;g{Kf:6 ![f9sW.[ImNOµpt[9Q~Gmg/.Y|riQ[`oAbm&ټu#r$]PI_*pl"4Ҩ9#F|YLF.gTTݧrti-.F͠#Eܫ!fY*I*uYM zRV QxαsA(f4Q 4sH^ Gm'[$K)n=.9H0 x1-lV5I>*\AMcEP 5ki..N=zȜg}6G*ŎßpR҅)V0]׼1tKmbAOP6k!mJ[;;?4_X}C;"J=Uyo6([O?-n1+'9zYͮrB6nPlSJZK+~X?={5U>,?J8k]P̋j~;h~t uAڶYm,J$8"ϡK@&{(gaiC kF2P:_q$-Wj[>r=Xq9ʆ g: fy?!#-\+~lja=P=Ξg 5q\yвyccs|%Dc3q sP7y%g'Gl.l`q4=__c 9O%ׇPo^O^@xwrO7b} T?b*Gwcy~w9"|k,cp 21/L Smuv46t-v+cKW\8#!Uc0:!V뷿Rln]iKeկv\XYc4#WNǶMvƩuH6'vs}&qb3sH'8q:ݐO~!+?P/Y.Կ?U}_};5\1G"p31tڎej V2YT'I|4:?n鶿~q\;wY0Ƿ,%/-V$fDbi,OOkg{d앾0) QO ;e,H:~DQFnf Yn4*C[ 1 WbĀ-]f1C/BPjJfbXŖfLMG fRx"X<̚SWꘚ+bOR1˥KIP0:9k!E.3jhff{^K1Jk&'NADIta0S@Ġj6iՂuJ:e+$0߆>)v}~sGYk 0t럧 ӺZ]9+FdHRD&E{ ͉ަpi

hG`4A'#~Hٯ(S!M@chljIΣY&8G.K1m|e1Q6Z}=H!LjtG Ru1W5QP6yJ><]LY.AhMV,OfV+ڽz(VG=.sCl^5:إ`1kx%l.FSkWDKI^!cdTG-+.Y s*AqkZFap)CV6xz9 q~Q_ cglyaߏ5]VMh8kU.Tus9jHqDM-WQh֌kfr'i1F^9q5B_4p*-cZ2ʉB*353z96R--4 ]w)kK:ignHG[bLO LhQLa3,*L^I]14༧٥[%,~`يÇZUYp&!.J[#)0GBmIReCfN|;6);vyR֬~sx:'jX] U(ZJ/"CaO Q.;mLc'=aTUGJ+UQbif,txJan["sddUœ̌M>^/=V\[ς 顤gLzC]v ~]=&w:΅iw\im07F>f RN01  -Oз\/`#ytyYK$n[ؗZq,20.%{N(PB>-'8+8xmιLjg6T|}x`Һ$Wv:n'(&Wh$ǶǢ%^Кdm.pVɛ ~Fwg0Z͑3-)RH%$~%_'+ ںEK4GQFZ, HEDUzh CIHٳA4qs5c>kKJG9Hs+S&ϰ]J~Fstf-y[y۷O,V4^X/\J #´\e)1qw/IV}߿z~ڽޯw~GWo˯$$0*jυ0{Du9I-F 2beCfKf JymT?3MiДϢxScbWj(&3Tكty }=Q9E0S)[ Hb$"OQ,έ IV;fWQz^QQÿ&aZ5TCda3Z|W~ C乎s^1[MR7! y3kL(҈h J EO+!4u `Խb/qG74R~fJ)^i\$ӛD5|<6FM1oEexQV5R!cQQx޲?Lסc:TkUſmf=_c'kX93sŢѐ7*P 䤓SIJK[L.R% aZ.2;^ūhVbccM*(Q&|0z5AϣG'4H e+xIL^D__<;S>ξxyy~J!r\9b-)Iy{֙ft42i3z(+Œ*lY: TLJu-cWU C6Y4 +uW̚o(4&J^ zy-Jzf ܽ26Ţِ`Rz #;#Z%ؼImkn>fYEO/|<軚N8S͔J)m6Fih$^^KV_Ok[D$ESVKQbR !)ER0.[ؖ.י!4AHV^ HH#{@H`Tn? 4a sV[J4 -nnKxR^!/kK{QWl0jZG=3ul\4F!ҁkE䤐07f=CC EסoX o3Mu? [gV狼z\dp3yw +/P(anU0߭Iɪx!20T>+ !r\9b-)Iy{֙f][D 4v|GN[ڋ"bJAM]%_kuwlw nFZƭJ^۰  P?a[ҥ1)yEozZa-e;:..gMKA`f-7Io/u4g{izfc,cʕ 8 Cὄ`V%&.21j"՘6,hSEʼp FnqE.I@En`f3)JRD!|(҈h J EO+!L,>^h}ᬧ"fXAʖV𭽵۵ߚha#[ic>F'#F[d"[7\.ܽ`vzJ Z HW`ʻMea>cs*4gu9vJ\;j24/֋< Ç5lA-r}Q_4ѵAauE6mЖ>6Z\5KsAܕ߸ {ŶVfcwLd\eH. cVljnt3óhg;j sR'v]&dݨMih@t3}N2@e"a`?m9Iq^B`4Ps1㽩1iY&u3 [n숤q)@S߸\ZzѵAauE6mЖ>6Z\5Ks^Yi Cjy! TThg<.d?FsD^#hit1hs&VkXj!Vn7kJZU!j4f^4 5 {A&փ{xϺ4!3s]ޅ; fΪe_7 SuAyQFG7/{{_Cϫ,,eDḐ)lQ9&-_-jByIDﭬ2&ޢQAzm[ y&tl( C zR F/aZ2c = MV x+mnJ .mı`}&plUOO75oaO;(ko[劖&*QG|.l|8R2dTyEZť,b%YA-Dk@o k3 Ltfk7_5pxƩ.*Aܕ߸ {ŶVfcwLd\eH. xYLGUŢ ?5Yb1tyY(ݭ־4,=MeRauB!K)XK2Ѡ(3s[nR樾hef٨U}"^2Pv~Zj殘lf6O'uC@\jw(oSkfQQئg+0q%~Ԋv ;rBK-E@R aکle h"DoG tj3ei"MUa :+l,fv>O.FJMu+=>rrp3FYJ0:v2PFO5Fo'Gb:Y@&uq;Tեm$Uem g~q [80f3\I׶ lݙCd3Td] j %,l4U/Goh`Pj OpA{L/-OƳ"mywA+Ky@MV$aj fX,C]#ȼO`n翗#m%etV]řlI, p!* |KMy\%ζɫY¸]UÑX!LbsY 55o$aqMyr`û5t --$;0a<Й[I eA$qs.Z 5a'6KKT <t".5ҕKXtv7&-`-lbvԄri}24ΓX˯,iGՔCRxN##I_@WH6Q[R+?)ε{QB֛Ԡ1bkށ0}o ,#8|6\W>S1/ֲ֦NóVu:?ND|J]mIhtzJhȇ`0NBåIK%9ki5Fsy]u9okQuBXCl5& ubQ^\du,cEً.c9ϗi|_da\77^!a* u5 o ZagO=A{҅5+RX YSTv W:glQv)ǩ 7IP\c?,{q|3lfԚh67lT2^hףu_d4|Ooz | j3kH[N{hK웂A̚wnr?C%YG-H⬳XE>7RiFf/m'FCT"bxfCjn;@֖sX\fYT6gVi+ʻY\6Z38M-1M_%. %*Hs0ӄ]Mzn05ts\dеRg;$]G쥆l]eU4W0q(?aȹ VQ_(iS:Sx.nWKBz|]yJoi}e U,N,C'ҫ4EEhtEֳ+ i(2!8^`!{GM'R浪 ͎sWml뉏oMM=iCb, RđKUT*mW8]Vӷ+z/  _!fJ)^i\$ӛD5|<俽#q6]fjmh,Қ0e!߫`5: f]i%!%P#iZ;O2K5k4XWkeIJ2>ae u`yZC˞8@͜ynir'J;?sSw4(g0oZ)[{X:,ޣ7B .KŽ jU7^% 1 %J"ſȀ UOu|di&(_{'oYjR0 )F"! eS"-f 'VFU.kA']Voc zI{:nѦݔы!Jdj1CwҽjF.UurR93z UY-m!怚IfϪ@rb2c mm✿Jyi!kᨆV~M*:ﳥuFi ҉fN+mUF:$h- t4d5ZK$3ϰN@RW4s GUi3Xtpǚ06#,9..-Gkw`@%uiWS_<ϳIYl~ ~T Cerg)fA6| eHSɈdgMƊσժL+l _!nq.i y^fgZBB{= M$*?YEoʧ! y(G,VvRYVaߥ!J1b܌Ñ^FUwIY{QY-NϵII*|^eO=Y&{J<\(z ķ!=ô%/~/<|Q58\% 6t^8FE ֦{ Qr*w=0[EKq$!=2P5htj#.M-/JU;?bٝmI}mxb%}=Ϥ㳙&߮6Vs.Y&0 kC\Z%n!N1qEy>9poeSɲ.&)L,ic\r+mfjފ!n@>H=T<\mWAOpɪX㣪dWOLqr7[t| l18FWD aepIJGJ+Attsȓ&q4Qe 3F*4!cd=<|Q58\% LRpX ӣc68w+o8Xyޙg %T4R)k@ 34#K/(bnndY]@% *X5`$ (`Xfdɦ2".k1 0հd ,` ,Q10 ?:K yf3MD3x.7ʎHg?6X=_YMAXz Y3IXQ0j6WR3,/oV"桇JY⺫Q'R6J~1 w,k6򴨦{6Ml5]&qiZԅZu^81M|ј*Z:9- K%-u!i*bP]jMK4UUR2IsE^+Vw!F5ƅmހ40nmQȎi !+7ut:ꕫVe|@{4mxOmM efʡ' <]bi.83r3)d1{+0aܧqew6 WڼeS-(G,P٘ 겓bYfJ5hJy%|Tm1?kAvxx.Vs|{i.i׌dtY*y0OcP]5bV%jғ"Ќ]ixDHg9- X΀W_2kةjE zDW?{[;5OBY󧟭{Uw4 d"Hx9z# QUđK0x\pf3f0S)P9bV`O"G!Sʣ 2@-(+R2% 0{"v:t>#j-+Fa_3zv~SS=Wu4 2rݩz6iߓ+PJh W\w%"zܣ^wX kVN*y_Γew=;JpߵB0|J;|^5X&'86|g/_g-Xy0b8Kˢa5{$P=7@3zG,"FΆw {ˋ k3HX+2eo)(y`M\TсRA/ЮTP8em.qa=vi$_ A$xH׶6UfܢDzо+/z>A3"O;{wX˧f&5+l[riE` ƀ_ htåK)Z㐋#Z-?c0Dblos:%]^KLoa=[3>_'c='Pc2O8$* @ LŸ{{8•[S.:/db17v&ouK_/IHruk[ WwzcM[t,*NHsDq,7"W}E6}eL*Ξ^q47 Yxu]5V|yK06`ȦZ[svfG`sA-fQ Y ޵I!r#ܿu<ـ%o[;6kTRu1| fUl.nL)|}Zkuj*DZ;ÍB p`6iX?Rt; xP i&~+[(q3ND|q颲dCA+:)~=!zf{FGm*}~4\ZݴE oC7W%^)+ٱWs^ңu[f[aNN$b6?ؓ)|]gcS"oӮ8h=d>|;EYt=1ƠNԈDLl>2rhAo.c1ϝ%K['?1JR[+YkF"ֶy$3h)Jzhߡ掠?>R5gV]7߳L1"\ \gzOQ:p/;a-eƲۄ!]KُJԦOldhu"M6٦ͺmm4m,Pbd#Eu+T۳?ԡ4&Y.fss[Id@3gl$<ͅOxWד]$ C-!S\><*CQv.*ZbĨ jD]$ C-!S\><*CQv.*ZbĨ jD+QbA#hA}{?h~>e%x,qoiQbY+[|; 7aAjVT(р ,K11e52_(u'@&ya|ՍB艝3iTQ⑥JPb/]p䖧[h!8:gJi"v 1F3|T+i\y׸OA ԵZXޖjK4$.Fl*r_ QԒCRW$7 웒qfX`]w.h5,;XGeVh'o4)q4:^nW*dh~/_ nߟwCyTsb~OU$Qpo7J(F wDK4S>I2XAvQ$Q&a8ݫJ|/l$kJ,bu-ZJD44v*7$6QkUEc-:k,uGYe; в!"6s)@ X-j.l9s FֽZv{YV`Gf˳UIXz,]"tdvөo~*OP^jhHUl6-)'h Ro`ՅZI- ~+N24?t /o;trG`(Ĉ斀nqP h-+3a 5" KZ KMj'8d|HaAk6nHXڟ ȼIz;1C&,.X&Fpg (IBRfR#< * ^fl:6D?hҡJ@9nZ"9̃E%s3ē i%lwvJ_[u 32q`<9O˖Om؞\7j. A:1_Z`QfA[BGe8үy0Ag0q[^FhMublqTa}6{emRxyrphːZVTg-̌b%<Q\erL=C0(#i=(Jg)쓢12۷g%'KV2um[ȸ&,,YGi f.`/s)MQؤ/7UP{|g貔aJEI^Վ)I FJ`\-_14T|qȰ=0&aVt<`Z 9CT,,Slǐwo@'fwXap546)³L_7㪱IA0uS&* %݀%t.Η8d(W{.}B`+4( ,\רjqLԪSj%GvJP( ˌ5ē4Vԭ4~56rH}tJmF3t Q'{ã]kK6Idπ"429 !\ʺWJ~LV0yusy ,ƚtRh1ZiWE<I L'* e5%_&>Ssޖ7qNҕi6-q =|Q=mEV KT2VK  5"K@ye*:,Nw:*'b(^[^險SNҕ)&>喽zZ."1rZZz6td,L֍]uJrdPAXúi^)qlki+eZ[ 'Ҽi'lT:HתnE)kFyA}}!:Mfi]6 keFh *WVǚjk54ʌ&8ENky^ %.g: x r}+Nh+{c1DML~fNjftCf΢ :c?ok=%-YE3hw H10j(L8yWSg=!mC/iuzPQĐp`vVuV6Uu"CFUuZbMNi|3pB)=Z FBlor avLK2vifl5IWes>nI 6ǨЗLDaAk6nHXڟ ȼIz;ǜik3g[%Oޢ%hW>13 /cC@0uLcY=drY|]\ҸcQf~Ѩ i$}VdŵDxlRO.DCPjyկ&Y|SPUJYik{ԇJu6s9Dý;&*YdBG 8^ڲf3,@@+fߢK[+]0fELRje>{1jS7e5E"4t]S`78=ii.Yur%r 䖓uMY"}t_739%b/샹V̷lΒ `\$I@hh +ST-fR֗% BD^(K-{G"&HNroOE2N+ɲEV*p)j5ءR澫Y'LKQQʘpe}ah\ْL?tKPp=]uv6[\ ՅB&-LmDԭPE6\3BS]!b찮Ƴ9E4͝fr]DD%+\Yuik$c%˵㡙%~EH8e8 ,InZn4,SooSF fS$k8uw"KN|23xyGmA4~?Uaॢe{}Of7vAx``Nf> )ɐ!]/nh'>(|s'W9qJ%o+-vtk(a鳁^Hp2cI}E1nu*9 PkV݇3)eQ?j)?N&&r#C|fh8m.LI~lgV;)ǵ?E{Fu׏lp4BQ,zecDT-K)w41= uo5/PU_Q+{SG;M>*G>}oz>}Nގ/xo\]OwIkAυ;7^[?!F1 tӭf`.:U@LmcPfߋo3n ,vɬֆ+eѻ2jl!e<2/)dO36C9c,fD*դԯ<=_:eߵ_;z;{5)cOl趻:TcPf@+U-ڤxׯ[:3]46YJTخ g TŃy(O^ujjj2]O in7kcmTPlIu-^ԃO=ٜ_ق$o 8Fu'(viM$B-Zx0}N]pU٢k2)bEa,%(."2Ceބ 1س9I@ٹU*et$qN/ :Mf,2)L7cUq]%BcT&~t2_A15arͱԀ xm}#yvFY`DCHg#DRFȸ֨bϵ|,:Y1< y}j§GuK@f΅7THXj+=}3#P̌ giF'!epN՟ܯ*xp ?1@ r}8"O%xC|f;im>w -?ƀ:C5̉t7 :pЛ hmڧ?,;d0Is )=rl Ϣ.Ī KDxF"QꝏFXtQ(- Z*=ڪS7<&B!GBfl 嗬2lT dzHn/sb=hƯ:Ü$Dٜ^0xdMY2EJ=y jdBmU:mI< l<#:aemk<.%avj/9~j;TmDC/eaCluCN!,OPùl H-jAq$v./v=@-щ:h_A-IzT}[Yn@ MUd8t)T~xaڤCj,2h\tL+YN ֯~)D 4~ԁDzX]J)[FUTRKQ>O!4sE`hE 4~=Dl E\tL+$72 0Y _AzU=?# $.F)_f0XC*QXIjTu@O !ШUCAbӕQWIA5dO( jWAX`IXH{*ϊӺX? T4Rʴqi` M`X6":&`j:@cVmf*5',$Df1ٮERb0PW:9skg>NA(a^8?aj9HYh { d@q(h-ZDKդErD9Ć+jA/IZ3ONnM4=TbPxIТ,WiX%%p:Ap@y@I!6,y<.U~odӂ>SR{Om)VH`ȽR a1[HA$*3D+TA )o"0G39tcisax^npzBb[?f`0vpG|Wn$}de"M]<S`34# G3#l؜W1r#)%i Q>9\fɊ&MtQv)#].&n;d@{NRd&8㌡BSVóL !kG>$?v!fE*JEN鷗"p*Ӥs Fu5y 㯞2i nʂ"I.#qACc66+ܤ\EQ'؊yi'uxLsS{y+i Dxa] z]Gp)D3M`GRQI7uvP͍𲶪Ox@I)p֎oٚ~dCEe^.ٲD% D%I@Mozd h7sKP[;8H~\mf=c 0+ˇ>sCqP܃>&Y T$!~ +rfG{bkX! Hݔ/p n':r``L jڵ[O,{ő?!ֆ"ey$:0 ̆=Y*BzT _2L b)Io$e5 c`nBWiy 3ouu?A J({H\Y _@XPQTpQ `-OHG"Y[ '>rڝ|2Ss1H^/S#p_C F: n':r``͇?QV`t X3SIOCDZ0簐݌qqn>w;V=XoF 5X!l ai" 'RʴqPdw(#$Hԁ粭"xc, |&0INwƵ}Ngϐfu64 3sIM5niuJ x0]*#L$>$,mo&g.$-3gi{JC=CʄFB{'x^ht@Fc.@3hF,JeUZ/EDRQ1@܉ Uv 1iZy, =_0;jI? Ӣ2 -Ƣ g0\Lobƛr3#Kal+B'ZlXanHo#~?'C f_\p'N"0 I אI{X2GC^-7HtrV [-zw]VfrʡIjTUm=2~OF:`|8*0S"'`OL>@>@$3$x ذu@]E B*] ),2&jUi)و!|#y\BNp>dL@3Uܥ-l~5Q^f{M؊#]9c+=2*xiȀp0);LjlD@ɵ*N#E]& zdU \&0C0diJȧ!jdxֳ9c<أM*pYIvʍinMw\)ZޞMgn =۰a/S A0)ERRswձ}Lh!m Q܋\ c=5ݛa7jMيC^{StgX6D߶!4Akj$q:?6 ?m!YFӥdg(\sqzSA1_YZd6A(~sT+$L";*drvA}V3hf0h7KG )%sTN>& *ǾNUraMpsRZ n]XWE'iMz&hy tWAp~'paSu!hj>30Gm7p6Dngd'͂IF7?r"9f sCu\PQJQ+IE E[ UYך$7BDT,ɝr*nj}ζfnڪ%IӨ_)/0Yx um(LpڕVByn@ 21,Ƀ wK~U@!U*P|,Rφ85V=鎥 fTFJ!:IPoU˺ʅ;G.=հ)V9 5ĄgbIGUe*lYm>DZD` U G\*a ;K^0AN~jM| -J@I$I$l$A $A mdm 2L %JL!6$&i , EMe didaD i ,4JL &DPmS a ` MRA&i (e0 KdeH$4 [@ -I 4IlAKH `KE &! 1APQ0@`a?:\JvhkN)괫f;dv1:9PBo!fc?7Q={uu13u>Oշ!i}z=ur{ n+K; ͵0o|uSw@HJ(Qu?2*5 Xf0*kbb]/^QLx4*M4hۂzczuq\SnZV|*jw\H#,*K $njޡW4áiF8]5q(~7ྲf35TϣU{|u6@w5z/-7"޴+m|`{T?O8VPDn_4PeEDE;i< D=0I%Ko6=#d!s@fbǗvږG8]SOFF+|ȝ-%_<<Z` k*6.JԨDYw%Wq9KS Μ*kAKpbw80fPQFS*/N_ŝpV+I#uT*rUvwѺ&-nH-KԨDYw?rĎ*&09A? PQIQ"%;~J>rSp(MJ$Es̘ĥT1C`g)Wfty4~Z^!i,;ϣtLn7**LӼh)t6rq7Q{hV񣸥];MYkⴛyR:GY*kAB_1W(yП~-aNQaݖ}c vESp(M (ȿc%@!U< Ԛ6l ^'!+Rp>et oUzin7ƫU$GTp'N:rު`JI}9 mЋas{=a6 $u'9 ž<9vn*t4g먑=<ͭ&.7c~?3{lXe:ÞJ/Q:Jq-Nr1ˢmUFBcso0{P>*FPp UXKˑ3{m*zR^Q}'Lw~n$;AD< QtPh)AW飧2Kw<􁻍49y6^v&l.W_w_S&ƀoSuۧv9귾+t7ZZ{KtO"* 3H?ePEG {:^#ۮe*"(׉vIn\T)ETUUg1Zþa 6W9tǞBgO;>\bbV5\4ozPqcwB^ʑtr@e [>49'%X5қ1c^%Șlc$jw aEB'pc*⚨JRl-``. ~YH(pǛZ:8MJ$Er9do}J >/ S"v;X NR(4bb֐d{iHo۲QDnH4wGqJvޮ}Ǿ֗e-:,Z{RcЬ7]54QkJ;$<ln]VIKq^+T3b#?p\mzI YFxM`К)?N񣸧Ӱ)܋@x qUA&i4wNZ44OhInfC3ۢDݫ[PdlW[4E [hʾ{&w'U2=KW4Q8emP sVS9U҇,ߨuժxO9% `==Xa<,ngkȫ}2lB/y4մP n/˛u]WʿUfjY#[ DU?AXبE~AGVZv>GӛsWQ[&;j%P$bVj5U^O1L).#=/~wl$ YeOD''70P=m)GϤu'#0$@FA `H'2^>q 7A+Xfgh*p ͫɤ3) ?NϹN9hk"Vl8+3P jYVA_cك Nl뭵%ZV `P,LD6hU.h3?}RMI۲^QJdBl]q(G.tEU<֗ظoq}(Zc~3PI v/IL~E؜H %((rUT@W'KoQ.*g1Bk).zy1ERxOEg\kZeNOQ{\1LR&lRtn66Qv1zAw;&jw:W2  ]>!&@&g?CRw^U#t}'3W< w24 `E 05 ,!Z=]D:as)* B"4@#@Iv,Q {Hٱ:繆.I܇c *!1AQaqP 0@`?$uX̡_!*%=9-b30N` DztB[,jRIy_nrzpyvi}{O gE0h/?004 N*c8Κiӈ.ރba )s1.בaa>?}{OADWVr΍$j 5gDT8PWȋ$CũmUw!I»^HrWu7]G↴}USr(raXd&vCC*G;\-FMi0!LnXdHJx$y>^C"iz4D]KOcNAbm^( ,xQZ9,$Hsȫ 6ª=f3SEZ&(Fb]' L 4:dsZHF#w#$0w>SF !*fG*3L1eZ,=.9,6'"6b+A7t .cOkש1D/-ao 6h;!P y ghd[6xOt:eP.gZ)M@oɝ#nUhvHМɈ&TE@1g0LҔ*ac8cghgԇ)Ub'BAвw+N& yvam+j GgbD5b\؞}B%1#q2 QI)EW~ r$Dj"D* H(g]F8P3z)qR=7DJJ`?,`BDPK&%F"Q$\]F8P3{7re bxInRjıKlc%t>S(J#Q9P\bq'[<^D(R:&%Z"}0CϲT`X^d1tn&A*1%(.DHKH(xDHf%>TZ{J\jPUb'BAŘ" Hx"ъ pBc%Ȓ>@?[A[3!La.,8fyq-OX(R $)q"”0-͐_gluBfecٜ,)ER8֏j.~E; #L{xf(VMME2Y<]ElJ.hdMOj"rUZRIMĂL0Q\ $`N}P$)N4֤9IUR>6𠻱ؐ͝U@LB,K\Ik2 D0@s83f+չCg~D'"4L9Ѧ!E*_Q,ƺD81xzOKZ%j@BTxV ,(graޢe>'~koTP z>a{SKy `A21KmǪac:HU i 5MT!M]A 7#dW0P eG"Zl?ƒs/ *˼zqv._i3JC;d"iRYgbVL[zwWT+8vH6 D(0Ms2w%(Za+F s5 C*p;Xw8I Cx?;1Xi ' F) @Bz]:N1R=5ق;O d!p'\vv)s(Y\;p;Xw8G`ǟsCیpA͓>^?,蟤#/A&bUR8j1H3>E 4qw)㕟*ΩtEFՓjIʞ.@[r+oQW_)-%ǁI c@jasW T ~Hm0,R,Sjpb' <ybvR/M=@|@L BͅS(5%$ӻh86`.Ī+Jlշʬ=t$E`"1XG38e!&).J J9/<℺L1*r81<,CK n9| &m! Zl#\Ϯ䰐 hkJdFƓ(\JGPcBJi ^cSp%Q\~{%NU18 )Ҳ"$]F&MGZnwc7j'Fj6*A," N`շ5mczeo{I^X8LvET:C%LS]gqc=z2I~j{Ps y ٪̅ⲅ6bUz%a#xPcQkpyl{)qR,kC0:u ݃Z{J\hdFC4*c9}h)MKԒj5E(et⥹DZ)SԋE]\#$EVd䡝DZx]KҕH{ ؽ521.CIhMצ@'0 nxxO 1gr >[*Lh-IHN`Ё=L'Qx_e(Ut 4ԓ̫6-a;s2aRz 0 ]iSPP߳U/֯' brOLQ e ack@LIeSTZe-r ܵ1񵶄C nSJAZFx4l3_Rhj]"0'PbzX6Z+iJgb 1O74."Y@<huu2\muS29Q\*1}AZW\:p o}h d%! ɀJ>9847@ & 7ծ inh t8 lm*H:f\dHN't s-P,8ΦZ!h3-Pּ !m OO%U2(zcR/(,MX dX 5R.(se'3$O& N@$#k{HMߒy\*uJDr`ܖRo>r>CQFLb}2LWu*Z vd£@﯁h`ЗA75i;UI#Az(^x*BsAk]evֽ4^aUaYxa831+w axDkjE/.)e#h8{[UMQC#7t6YRhDnA/w}@/7gԷئP (S)@ ;ˎ|brAt޺K ^BkFeԋr MhPqp3l P}V|_<Uax&u2L TO $V$\+~$; "h/4`cI{-aiyU&Ҟɺ{yVqBYMuAX/69Rjo ՁC "CC4"߆Au$٘V?h#p,_ ӁG%Auirx?iĒwDZ96#].'Q$5BګD%).),x9R;;`R䯑u M(."( Am; ="j E NpOEyٵ٧Lʌ'U/ >,J}bL ݝ#^K u UHʞ gn""Qfj̴xTvJοF$ y fW>FBvMNk*VfeҐ?J(2N12k/F_`q4~00Db'6 8X$3b;q]96;;!;28"ê `$ !1A0@PQ`aq?OW&./P%o;+%aΛ{kǮs,Mjl/Z,N% S%}UHSoKm^"Lײ:4ۼhFu!߅VO y#rZKL<\AH UAKݺ=gT)cgVʪ[O9PY ɖCKW;;yΙI:f*wH` DV9 m"" />g(m\ DM&e4ezC|K6]䞳Iɡ-([u<-S}ɏ}@AS%S8-8D/> it%s}ZҺ3s?`j3 CS:, ;锕^t_ʅB"qˀZɌZ$Q<Pj| ;e㟸.w lm".p_Ή-uf>&^Xb[kzk>EǐnjɌYP1Ju/:mBH#^0u.w!wI4L32Ij(<$!~n L{YiJf&"H GdXA*c #yDڪ `G>-.bW19ŵE]hcalK)3 "p#:)؋a0n% (GȚU:_!AFHK ؀( X`KG*XX׉& $+?F6AD.8h{qYZd O>G;bTo+W؏wبEG^^y^l1d72a\2W @!`1N_=M+PkܐV'lGy^zF}VܐVK^Pʹ\+w3ά9l$K7w'[4qg%9 R< iЩzޒvDa%C( 'BSPx!b?U{{J3@)sP}tgpog+~kZkܐV'lGy^zF}PPV-Ě[SXJq" 4 38zbQ%Ȣj\)ZįrPD!^~ SLsyGE?l"(L,yCbTNÖA(iv34:mCNOLLvb8a>VD"p3Ȯ%%{KL6:A\HP}fc"e>oL=iKm'J]BCC0X" -!;FdFS¤@:2@ ^^T5ýfa" bށ #|L+5@TOfM=E?7EȂP>fhFpT2\MY#eݍ_2$((sz@?0> jXRW )m؍hv-@2Uw%5w kl'}ciCtU]e ZO/2%𷟲zZA @J){&SeNsa[d w 0!A2m>  ʭ[\%K$D'?θ3Vوq#(]| )ء_fnIt~E[ȰIlT!짼@#% vL$Gh( )+]DW˅,M;SHbP-2 *դ9+ k?Ⱦ[2 %449V֛G?zRL!69͇}mFgk#uw@Z3/AyC*pDra hDA9JQ?dխ{%BrX̃e s jWQU< y@xv+O{s'SSv@ܝoA{rg40( {CAX!W&A2(h;3b2C@g+R!h%d,ԍS#m\{GꤤIB fGbk:"M R<3=)6  *dHvmյJSH9r bz.SXhmnPh2 ؀phgj>rqYdq=`"Ob'd¸d'C%8J8[5J4Z' !:f?Pz]Yc͛呃 ?k؃lLhUbVV$"{@b=*HBRэlS%aX<*J'B566ݢ VJŝH!#U:Ȅ'BzK)p1tDN٥ԻO)^9:/Ie8upn1^3بå!Hc #}#- !ĬlLiȜb,y^}j,j2HM]FveҶop%2Nz}/,SeBk0MÔc]3MBJKMC-#7LJ/S8@_( k5@`Wzm8+xl*\2!B79|Pa@Ⱥ>_B">?1,+q4lyZoSuľBr+Hw6yUvq20<b!Gb9A@KDN9R? XVu3w_| ) wdֆ: ^^f`{ưv}nrJ!W2*7g=+m>PLLTN N9L3@ rX 5o&fNtȟgrD"6"B;ynTEՋAEcTS"HeH+z'V)1 mg,I|Fsm^\>a@|1B 8(AG7rwVzd.Bˌs-oP$;:# %"5:A"$&/@fmS![ΡK;{2_N$vl[񖀓DG̎~IeYJzKȆK%KKw)%2H4/7omsf}%׹=9oU:dySkT%U$KC Z UOks0icp5W}JPRLwwrftcolorize-0.64/doc/screenshots/colorize/colorize3.jpg000066400000000000000000001346701331025647100226540ustar00rootroot00000000000000JFIFHHCC  Q{Ѻm9xU\#sr?GGlx5@kytvN^#Y9|`Gx,Rx<C?&+'#v,W1C~g3~ik_\<`*pc @ |@C̀Q@ @3y,7.UP]G΁O>L dw|,`S@2`|52)`t(X4 H9<$~a |@ |g@t @9|9`Y`[<)&`-ty`?: O΁X9`[<畀$Kos@?:&@#L W O`@h?sʀ@@W1/Ci$< _$<:~y` QL <䀴 ^Q< ^i,g`yxyh΁#t  W07:_4//@ H yh!0L/" W{:s '@@~@ yy=x@4y\|6y͞pyg'Xgg'@Lx|t 9伈? |txG!*+G!]6o#g>L ^|7$< >th O8U䀏>O΁9@Ky9:<< Hy $o5T^H)3]=> `U07\ǟҟn?2m:O,z".:<CU\#Yw128c46|28 `i"1U\#7?; ?* P0@"7` RkQܚ[۬ЬBKݵa\%::S֑\'w!m\Qnk?(b-sȓ8_"g,R)i$DKDg E^'\ሴ!_5ru+UofT?^%1B@.x$DÎ6ƈ533N4U-0?!391KܓchN*/nTع6M"ŕQ,v;e{]lo9{LݬQd{HjWy=AB@- e'dllR+1XQ2jB.sK@WIP+57j{YwB ,i-U/"gh(Sc(5V̢D읒 *ea_vZm1ڌ-1 'QЏO[/AACa7ɬ#[}i|{vJtMdpiz Ɇ.{8ya^qJEY7&0IU lv1r־q<$SCPLC]sXԣHhdػ ZQ()Jo=vRYN Zw!DY23꼩֧Rм+4Rr":ܡ'MxU6lkz]PuE.>emJvM]6JAݐjCfzWch~娥l18rS*pahYeSTS>nBrWmU7ueCB/kV׶ZsL M]v꫒,]U3㮹((꫒N /gsjMYUݗ8g؄~gībUXPawc$k{aG"zJ'"UuqWѴ%YZQhKMKY!Tf(ol"Q3b9"3k "g>PѴ%Ik22Hs`׎꫒I{PheAJWc>}n-{1InOp^ld|)z}P] >L=kϰy0T1+`m6QDMڊ̀{kT=vyx\ABxe"oﲴ#]l4||m8څZ w'͋s6a|*gߖ\vvc{ZH0T 8^Rx=T`P;QM #_nO&`x*\zQ_ Y*5̜[PfRV_[ W$>lbSld^krݒ!ɛkf^6 ZU!I^PjY ^K1V\lRفPuVZ6$Zt:[ʦ qE~쉽|\)? Ae((%\j@luE-+g8Ap97Z z ,h_#z1sw ,%9ؔN3eD- ,6A43m#9jJB]eJ:JV!C`qo! Ie5ދ{&Q,K“"k#2S,x)5~FZlVcB&70s ?[IzO !FR?+1$XYl1R>b΢\u8ABKLzO=-{}5KAu4tJ#{嬊DdɉRrb˔ݘ8\3mjvcͅeł[Ϥ zt.9~݅m+1aƒpf-3Fvx+:Ҷ"4 B]k?TS -1/Xчdلcy~裧g0;IB5z?^16܌lO7ζ[LA:ܘ4JgtҟPNo "WF'qlSy/lݳmݴnǮJI4eb.ٻ;B`ΫQёo$Rzn.!6NMS?3!"#12A$3BPaQR45Cbq?\x~n*G꫰2vm7C&ٔ<,4TB.ȳʂg ]5fO|~^%F:82-Xv>WN}?x7r~iWDR1b(!ґrU3BljU~gi @;BQ;OztyJ#MƶXllmX6#8#X-JB!.;]b=\W'8n#ĄprܪT^itY"taqBz-8,HeOȂ>Qz22Dm-Úp ced?jzP!C}KJc][31; %C/vhT͝B͹!U?f++H14e ~+$y3vGMq2UmSϧ&eɼ@d<={|5Ek%j+,kAuD䪝R>*G$e#-5Ҩ3k۔ۓËO(2U@]ۗι3'$1ӧ2.dQrdu2}cS*J7eؐx+"ѷ*FJ$ wF L체!d+DqvokSS)r(1d%LkUJ8ejoV#d.Mq֢D/P l>1(ÑS9C偔 Ad4z1s3_ɏas\cfPxO8neNDrRl6?upojuɁL޲XoM3;f *ؖ*ΥBȕ*)F2Rsۡ; ~f,Řf%혞{OrOYD\nd֔3QP=ٜ7}-tZ*Aa;s9 tќNb.~R)@ԣ=nÖ8o}W"ȫ*Idw>=24+v}rf3͍Źc0Kf|īf#}oHlۺtȧڟ0~1?2X[6* I&%zޢ}"^K@;[wbt46I:a{Ɩ7tok\-$P!"%47??cvItģӱdԯW4E *D'51"3\}F˵yH/`{랥!t.WɅS8!|<, l͏yzt=Jմ}!`^ȣ_iW':YJo?,ߍ@fUִuIȽh7=  $'`7=^( +m\j 'a,S_Dlnl [YpZQ0)X`)vȢPMY`AƺrVS(h U;`x GEVoxʥ%wu{M@9RQUY- l!Ma"U˟{۪|װ&pWkJ /ƒ֯~=(!-81g2Z>/[㓞pmObzK&FS?9~VG6mr=~\  Ju(8F@eHr{NxIkđ_X7[LЈU+~s?+"}, +>xlǔuDfRWWqoxY\Xv gmZŮr)Rc[V|%k57#/dЊńm6J_{ݙXW.,.1|4yJ?-iŞP!OGBڏ`2WWgַ& &5m\)K ѺYå,SE^nTB2- j維W==AdXamoJ0CufuH`(u5Y7A)9Daiд񱛠Ziopcۣ^nnBvabM4֢(FLvJ!ȐF%iZ`mcn{~Qѯ_}|7l&dVTx3hXWO,i"٘#Vڂ?S^]! WՂQ1!hWH?jwߞ<}ïtR /s?T?> h?k匲>-pv]'XѭcX? )Rs^95 $ñYe@Fi7UN<֊tͫ3Ar98 O)ZZˈ1~5]_ݏ"6&#Z\w-2KdxZF0TJ۱auF:,\|@oY<0`ͪ] TM-VnTj.쎃IsJqۏaݫd%/-e hhƛ- dq`Gr?p"B"6{+ċ.B iXgޭ/esM*U榲)YW{j%qSmv ǞSopQb_6]9P~0X 2?9u| ?ocoPh8E&  e-'Ӱr޵i^1X n# &Pw6NfS4fNSȘ\MoQ/'iCBB=հ]c+'Ct8: ij9<|#ln7dhbć mfnJ1k0L-8km$RO4n5wޔG,] s)vFpךY&&(lR 2Od5lU%hُRLxwoL-8o7|ªdN<y!DUR4/sX+CM g[k tLԊF r ~OvIzw.ύP9EbHu7m 2.rI\pDzlk̏8;ZyT.l 43GqĬS,B?HN"4ΐMGP$GM4', u5jxx.?'a/eߩu?|u~ϥcޫ{dMoK2}@o ;ȶ޸4b"aAEpUq6ΎdcN>_~%*iZ&LkvɎ5Uxi$y؟DPF  JkQ8LaUT!U4Uq! FbM ɐ5qCaI)qל B^ ww&E_|G GUn[GXndXnK(wW G}\s`U +fT8M71 \ak5|퟈9E_ns6J'}ny{PZмJ"Q^YQ1F l;4N7Y\KhƶMFEHΙ٣T`i jXwP˼kU/3Eom kK6=#W|PoΨnLE2v|g¥]egBq{k< Ja>R2 4wߍZ.b 1c )]X2y̚I:!QG@Nph(|J #/;eUDoOq J|UAD^79Q g$}t쒣y:{EJY4Ik '&/)Z?ز_M<+/?d<2;k/5w l1׃C.WQbYs`. ~Vk+BSY.=__r鲻#.z =d񶫧QgwԪ^ I,3nELfÑ6Ȥ&lOg>l每2/8>GO~Yȩ@! > -dǔMQ!_<7_+- H L_sVj`#FJFuK#9FEEAmf+$x-eSTn!QcM|J1Vh5W䢲-jΗ4QYD~Fd֚7D^]&rNA}%QQM3{V<'uڮ6'cEYёFv(Q&E Y_o#6QԇSZgg*H*FYM: 67ۯm'5h>/+eһVecjWZЩ<[Ǵ`h⇫!)vMKq!+.r-N83GS3k&c #lu}EZ\030wAZ^p8AW^lPYE*`_~|: LWI_[,ZG䯙2Xd=@eK"m"HZG P>Tx-u3aEBۛa܉ |FnBRtv7zOsSSb* F%^ۘcw)piUMMm&rвrd--F<Fk[SMHhaVDl2Qd,0%SI/PYvPpNBsan-jma!b b"k)!=@!"N\F.ν3\K>G5 Mp~kpvତL [ٵ"Ql9eG6JuYƗXT K,?cRE%f+Ix8z޵ Tu2b a.[- lsK"\ڒ=Oڠ6/Q"ҳ{d+qe]M Z4T' u!S-SXgIo_p**6<2*Oc%sB*s4ߠސ?:ːuai5#ܾ Bj8U΅_*9r7&m͂X^TO mȰLT!m2kGVY{Qkhufm~ɘkm#0\ &9TVg9']I)OôI#6X:w9p,O?Ҥj5d=dB`J*G )OêRYVL8U#,c u_,_E୮J"}j/o!5+AK,brRSXRC?A#>~"COZ!ht!9ha5N Dx Og_1Up]]ec# ˪ M}c>/N>_C}?o"4b:DU<ufI5ۺS(]dVɟ[h~:p*Z,&}P"_ĸG>[cw)piUMMm&rвrd--F<Fk[SMHhaVDl2Qd,0%SI/PYvPpNBsan-jma!b b"k)!=@!"N\F.ν3\K>G5 Mp~kpvତL [ٵ"Ql9eG6JuYƗXT K,?cRE%f+Ix8z޵ Tu2b a.[- lsK"\ڒ=Oڠ6/Q"ҳ{d+qe]M Z4T' u!S-SXgIo_p**6<2*Oc%sB*s4ߠސ?:ːuai5!_Z3wgNXUԫ$am!Ѡ[Xq`Y܎9,eєjAdb\ub`!C?`6l[)]BgmWi9TȤ{@ZUe h 䊩?kmmw!}9!GQ<֕`Yt1fϒaR"?vJYiK6ش_sj5#UollKPV>~?)(U~yĝy5\ipGSL%eq!n-Ū`Us\oiP}N/Ϭ5oRg[VHG{/k3u#s^f:pS]/AS}C爵k-`8mъ$o$lӄ2ap0n쪟N%t؅'WLBɄWcg+nPŏihJɻmq: %+vp=!f^q&*T A|r!m8OuGE\/OW9bSC`r w QoD:f.pLPEOi7B00R>^QDY3z|8`tƇ#a1ur\kxzc_{y8&WfܵؒW r])wCq.a4$i`x,RȈFpdª,y~GR0YI1ȮGM?ڭw/ݘCT)wuCS^uPW*Qrն\jȯNG눮;)2z"*X9yVEbBXJxqiMđHU]u@"(UdĚl3AE'Aܬ#)3}(zZHrQR77ea G)`kVd4~z"_ 懖=&v`-Raϸ˪Dn7WA |ٳXYɋAȩhb״:\]8t# ;fk=SŕZ4U5 {yuƵ{O~[P,.ԝjCyL aX%r䴁>2[X#.kml  u1\mv[n~_BTYO9PѐW{cVP*iT\4";굢0 Gl,h$".</ e[W'Ds:-{Gڇ7?F pw\%aglw?,Zd^9a|թK0TEp6haG3a5s.Zp^>82'%R-46DNj|91(!؄QtF72~jbD/܁sHcdY1#KiXIDxZYlP+g~%.x@ǠQ=5UCj`0J⛰v3!w&"ZTWI}$IWux)Яh K6< s"]3w;E`ͥЖ?bH:fkz ND8-/Ht"r3vtpɑS\&b2[IZg*rx<\7j`Pkl 9(Oz%/rn1ih0PՔ^)`kVd4~z"_ 懖=&v`ƆKoetMM!b].&+XA9u3^a9Y\@dJIv]a^ŭ@DOo4/kNj qAuf~5WpYIMvI #B"0K 9#LmQl!m7U8U.%0YSiOPgEXEݥVW%OpaHqWKɮ2 K"m %l0 8Aĥ =Gq𕃳L23 і"J8SNFS:XEf;? =Zfq\%4={/:_IגO֬ӛ1=icI-]&PSYUf_<9##+4Y%C{IЂ6Ɂ_ʵ΂u9`IFFAL$xQ+ZA3pbU)WQC"'5>ꘔ YUzblB(׺#{sBTƻqXA]Ubݯ.H"\Va]d2 K"m %l0 8Aĥ =GqXmLڸ"&1\SvڠFrD7N$`DC6p[Wc2K/Jp/Q-w/r; rE"h:3L@ZVRѰ]cYCLGI5@K, ~ogiqq8]Yߦ{{ecURnGݶ+ WD¦2+nTZB$f1ktJ֬fWhJ T2kҁ` +Y\s#Zc^IX)0"^};n-Mx72!q!xf?>4#"XLt`NH$+C+ljb ۬E-.T'GpV(`̰EӗfEkEB.nQR!+818Gj3t.U Qr؆cus 5'7lU~?0<4o|M,/ LXHdvg=/՘UqwZ ]NNgi=-6.~?nzǐn69 .e0б_V,!z{A;-Y`{fWܦ(՘+OosuݮDu:{# I;"=fy^ub$yMl 5*"qN ]+S*^ ZR=;d$䳨ZM;v> )D>T5/)mSYAN glZͰSD~IzMB]L*<ŬQwh׫;]BH$Vنsy”jן]9ɸQ%\E6MW$YB=UrDC*4Rĥ ']Vna1AFub^mTҁ;YR'ˑڔE*gt/6=_h:,"@r~e?W=,[<Èi`5䤧^4c_QVx*CIZς(,A㖁PJ-ǕBh'~>`.xAalbfMu@"3"LD4[H͒4g[wM: ̈-m!x]QC:M},-LNhsW0z gZ]sN=$xYZ/a-Vg-Łq "5)־rj(8;XCE(4^v [g5Md’^LtVgݯ.ر~g/+XjxWXcA*gU_'- Va8R6k 'AZɹ a',3p Lh8ʱttså>g6eWI!%ML짒<>r F /4x6-Y@62dǐ^9fUD)ɫj;q'_ȧ,-`\*s")r#Uèrұe6IJgT12b"Us ۺz~yg aTqTqϿ;+ _gECndK cd-R7ib CCI ⬓tns+mZRRBhP`$%P6"*I:Đ @40u$S= R& ?x) ŕn2(+fUTU'<2&M.M^7EUyێ@:E?nakSUQLӑ3 z-[zٛ+*U a`xX^GvQqӵZՎFO>پ&h1̞UP64tNBc*EU1[H`Õݠ~^>P!E#ׇwaG[eQZP9FsBc_LPҔ8!RD/FڐkQ=W *U#O+U0EfX]" qN˳"57(SDhtsM1d:Zq*} Q%(1((t_f<_wGw߯~' Kvr5nqOS4@|qX]A"K3 ,]Ը{smg2.LJdFdY_6֩^g+[#>D`:Džs+^=GV9,xؾ߮ N2׺ \ߖ,45+t{Bω) ۟rQmdH!D?.(^A&~UEUj`TQ.Q5?(Hs}NաsVI%9[ !@%38!򥎁+]8H²^F='{fݒnRAi|߰-JıHU]u@"(UdĚlt2ygJ:YWM弡NON `%||ThzZu+yL҇+-:Me)ksjQuJy ʹN<` ۇWVmn0zw6I̙EG{-+Ѥam `#XоWp!A+]_=>6A5K1AkQgoaƣ{G4b}qj4`v>W pҮLC5!4\ףY*#}~>/J|?i//΅diiJ`XVKZ B"1,*<4Rq*O*CxkgP'F<ڇM!1(GӧhdcC7afG YIpfҳ*V j.`DZt%JtagQgD.5ʫšτ"Gc$[&0Sv;G0#J¾zaAAP[cCs0hZ}pBdU ck8ey5#N;=U"gԫLT>_ ,r \q/Hb'beq.s≙.-/~Y"{zz;]S bi[WH<"DF|2CWH E`a ɲnu.ܜvܜ{l7o\ ĉ&66Ϭ͑FR2Bg`vG΂\s֐6 JEN26|FR qU yz|ƥJ!CZI7iU~cBkIڪ ҩe9[ՂoHE3&c5g?>´pO%xo/v7G\ׅffBL.ƚkhd0T9k3|h/ڇ:5}vm&}I"TnZ >D |yDW^?;McU] M;`Rw]m'0#kgз>6.t$_ayچW}abm6|d@?b/@CkŏӸk"l/Rfj@zWNB-Xx+2pȈMaZ @Ќ{gSǠpjg2-kחX3zeQaLU W- $8<+=#!r/\=9/,FH$+)mOg?ywn_ ^=GG'8m@k2џw|}NkK|;Vy?/]3.ɁWϐFKoؼ.̏wx;篑v0jťFu@Gh@@!xh،5lNKp9v#t4e vNv瓜HCA0ԧ?C91lܵ2|B]o:õ#/z^~8'vƫ,J]+4ޣ纡+7[XV[siɷD3a\qЬ6? [ ԳirB5Y^WwR5ܿEC}r3X2ӼiQ WwӉv o Z78nq7$g2 a(g:T8w t fc I[j*yU9l6ETp j3Wr,5ݔ\q|.#Q-_@\joraO8ͰG:T nNfdRu"*]ᰚz\8WR#5V5_R𲅪ڛdpg"fS:؏6,kgbC$]WMfMݾ[kt\(^J? k4Kƃ¬\Põ̖L ~^7Z1L 3}ߩM,!jFŕEq7:yWg^ ɂ'u@!S韙%]E.[4NB񈺢*u(XZ!կ5"?!_E]i9GE+2!3.28Z6j0& RMda}M9Zg~*ʹhh}n~^+* ݠ?gf)lKۀ()4}8V@TʏCaI]"T2*I^&3́U.4-c]䈯Y7Rs:\\ ݷNԐ;4tv4 R._Wխ4חIY1Ņ:`/X%g>cK d{I?]kmI I>hǤjXĠ[pM> t ԟ޺šȲfu囐{BuvXGv wOAAlL\;_RMUƴ!pqV.Ɨ*L=qjmm]go{h~7LgO.+/S/ң`+4.W\;jf4>3 +nnW#hy9Yi\ؘVC# Æ.Xn^ `s<~vU#:ێB%EgunHQϐ!CS"nG^Rw h ń僂€ >+ z~ +#?o,4'*p 67&% lL3&žӰv3W*4fѐ{Obt}.<6:3; ƒܦƤ"` H!XՄUdCjN8賙UȌxsP G$^&_ksszn ȸ(d@ k~2/'(\j.@ch~ ?O4xK|tbHCn L>>wN:h6IkX.i zshmEI [KEuJFrvm\- LT P[]Y(+j MZ8\~g<_.)v v1 yZPhy57)ѹ39L`X}?&ȉ꘏@K=CsJW.5x۶m2n>XhUs!%vyQOJC𡫲/ߊ `:E6D ,8 4ӫ]j+@gJh{JvOH;cɆ/Jx$P3JŮRːҳ:`wRy(!UC$i60ֈ΢5r +ȟ`^gD2h 8^<$gtL ;RyFGÞR|K WREi1Hy>s0UxJU)liMU@+2ӂ-d'a.-ZtAdx9'CaTgDIWQE 6Ӑb.!J&uk&'M{Wa̩,NkM 2:ßm42w?Y>U$ ldjw.$gJ&q08v>)>E/nK &bOWh{}^|mëFfGG dVW)qAh ZHYC:˙ RQɋ,@8oX+BR.CB<^e ^HU:\u'3tIAWJ7osKP5"}ZMyy餑|S XS A*X0um=}LQEe<.`EK^pw(ϞDK9,1CKY # n" Wƶ~Յ;^u9":c!tc2ath֒JAe>uSH#eFŴ;L$ 80c.)"WdG7"RO&OF!i~֧&- B1_7GE_Yfk^JuX*5`ɀi%~BR`Wa<4?dL~">y?uΆY0N^Y/8~6w`,mvΛ,_N\r4@ k^s3CEVfL0 :D2hJ@7uW ؈!>&eo(Ynm|\Q$9T30[ "(!.@Wؤkչbu.[ET_k;mc`uu*"rЍ"ɄY #:,c% 6C¤Q k"0h^z)Չo=a?,QNHk?ZXW#Np%2%dŰF  ;ُ;hSd<Ϊ.r߮/c|ȗ!vx|h;7OFVA[yFQ$}9gB,vYM:5˧{iqS?u+.IE-ybF-50fJ5Չ*4.ˮ8:DzR$T Y*yԋD3 guWe" Y8򂬺C&jÛ(T.exDRړT9P$"29F먝r /|l^j|N#_5h ce(K%'Ah3 0ZzJ߉}qQ9AV9ˊ-a«+ϜZϺ<"jăVGD":2U—$\\!p"5toא!|@f6r$O0 d cAUNYK7quG4+6@Lq͞S|LxDRړT9P$"29F먝r /|F8HЈ(B7HS([A[[MN6Udc8Kq?{}״~G}/^w??^pw(ϞDK9,1CKY # n" WptyjTC7R[xVzDVF+ n+cW1Շg8@mKLJEX,aEvESYMS?*W.?c迼?<_CyEit}_6w{DOg x _ǫY7P25U -VA_lli6]ly8>y,T6ƕF -d."Q'g7]sT@PqWi\5,.I.-;)Wэ/G/`YPLsb8SJwg s{1J,T!HXX;!iS1^oJўx7ֹC+rri8kJFhȉbapϫ.LJ=+bؒ.[IuD@PgƗV+La1:dHwG!orHb%ĽZɏUrկvro2Bm}csYdAYQOIG4Ri1f.XJnkj12=S:-y\RFprt;ؗ]wQwf\R#duzko S+ū&Ke꺭cyp_ԾGɔ Gp 3564BzdhD[]+udp;K ǪC0 67fXݸ᬴~bn@V8.>NK#椞*cJz"X Eki#wV $ 4^GƺS!f1Qz3 #BG a 9k x҇aۅO )Kf=Y !ש}@nc1h:t4UadWy2Ѩ?Rh<[qjL?,,iyH X(Ei{0&p^~HKpXXr~AB1-ՖƯVGzCɘfI4őtV}?.Q-~F?!bȐWp;dlw1:-ȅ C־o@+U bA͹f-"Eh!E}P0QX{A ]o\268#e=~ig[^yg-ߚ{ȽKh>ͦdW/}v\vSS7 NS躃5,Zڍ~9x'2H͊Es sqT#Uz,-}NnF1ZӍO!2Bz@xqh:=rM9c, ڪ׬/"uJ)pFFZ' _wJJg!͵'9ҙb_2eUPA@!41mW 6X"ۛQ/^zdZd2arfeIw d*{3qBM{N;W-F`ITjtc^ ҚF?9вK_ g>E/=w~~Hc]P}n8e )p8AAŢ.*s[#pڇviJXYU3&`<-tq̾VCGa?1yDk|b4L8`/a-<ȣִ?\|6~"^k¶aZ˻6Dʹv˕|? ng=ۓח_)Rl,56_dE[8B\Cawslqh \t"A@dih(˸1# :ѩ.uFQ`:]& ܮ$JE/=w~~.kALOv#(v]_?rL z֖y+~2;dK7_oX}|V/>{sN/Oq/oV@ǽd<+"{s""Z7qOֱGlx+Ǒ`u6UYA"Nq$B09]O3$~eݢG@JuRI3٤VW4t܁_=T'tJ!VW!8/Rǧd$K7!g,{ӴpHebH:I_;*=nzjh`帱N!m`0]VǴ .BBsFeҶDʳ}]0즧qf8sC=BnX:_dͅ"}G_+UK!*mY֧~HVLVx4IW9Ʃ:LᷜGYʆɒl ̸::~>3^TV8ǒ 45вzЙ2kk^GfQ9۟>TL%Vzb3'UQUʢyB*Y ~QϏN;@юC%G'v7>9bC OG7fC&3+!Sgy?x߫Q,wc @*Cͱc9QT Xŕ$+dTK:Ot6+4uȝ$t;_ﴎ,\B# =gŪTgkNctpf2?A^:;Wc&\^,;G[]/pv7ݫzyT]b+CNJHj] m6ANAzG:8O"*Hp9"3ĤoaQMR sCOw w=e7sΛ|zeh`}YRik/KPVL˦"̺ C`4D%g3.q`mG:ͭ.k:@?bAnxpө/BH=N!aْ*Rg׎a6r`x/bGUJA(Mv1[&k{CLWqI:1P+ S ظ܆ta#OK@C*VHiZ$_%3!;9ΝFmǨ!J} }Vv0=NyXaO)ap_2٪3]U2qynۤJ֨+i)cit>WH+WTW2Y գBuV"a4@WKy"ƧiKfd 5U9]X Ϳ'5N[D(Ƴl=u? 6`NGOhH1Z)Jԫ؈K]WKsQYH[){#잂Dj8^veM J#nd)946w^"\C2sXYr(e}`\aE9U2VcȜZf)`w}$苬NӛB]v,H5Mg΄g|c4cЮ"HI%b*7>fh`0B"qj[Ja[gs%rPdۇ,ujJj W,z+I:I:S/z_:9]IE)9"9˻dOI\OOE eR6qވMkeLO^ (g5qYlِ=XkWH`{cNGEXjͯeN W Úp琂v/s"ҠOߐ+~#-7}kA1_z?!?. րQ/-LƚZ+^ d ^Ef ̓ . ?X).4 y b%aH+kɦ=NqJc}2Bռam ȶJ.=g<^N#\=i=ܽɄCM+}qU0K#-`%s@^pk"QwGW6Wd0y喢 ZthU% R׆"+4pįvEL. ;Sy KEkY`Y(,qd?B\@QQȰm*`Q ̑'8B?2l# p$Ia%PdnP(lp<'!C e]8g&d锋-Y4ԚSq'0trêtfq)NGdݖ_:z"Z^ >RC;]{ݏ;d_JqPe b`d sb8 MWofSR!kTٓOؚlRօʉUoq@[eJ*~XWZ,J^_ &^מ4\S]ͺ3 KbQZ]ub" .Ƶ4Dn0 5qڃp F)5 \k/2$,V()+hF4F6Vw _@j=0c`2W%Y:t_MxF֛EeΊF- -7 Ӥw˙M3]+e[@;b,nTv>LVAZPF"Ad_6ڹ,Ky[YlzE1oMr#-yhJҩ}jgݺ8lB@9|2!y)ۋI%;xD(-J[xѥᬍJY(H ay J*c\cwMcʥ[Eœy`eJ0%sE:+e> >p![V\3hf ,R&H2k*׷ާ+Fk%`T(6NcDm0_"q}> 4T1&-=-"y̽N$ O):\gȿi/zTlӒ%${E5f rKş,yEPM ho%E]'5 :0;[16uU&*pc -Ġߜ'ID5}lY&_)s3yVO{E[@V>,)PAyf}Q6I&"e+ne+-JvNR̹wѨS#z d lhFjn2(iʩ)qʯJB .o.:4DRjA:9DbK"蔅\ UM]*R('5XWd62~W c IP'yNg7{?ۏ)! 1AQ0Pa@`q?!X&8,/]0,`!M $AkdxLq^aFK )Qj4ASB e\ch"yS2t xA:͉xpUTQŌ'0k8\ETEuIl.Cp1U@x$mt5YPmQў3@T/eIu*ỒEaRXy$]!!ulV#fT. <$$à.Q(c!$GAlp{Hͯ|r[RQsT%ցPVI ӈ xAeAhVDźg1zfm|4( `%anG w4w.3\Ⱥz.L*); Xi;P `EW~ΫsDڀ/3Thz>@E3ߊ S;lA[6ǀƐ mD cO[UGpLgAItP(C'(PJ{hY3 ST@ NVT|DrM_XGhu2jį0 XY ڋĭ'v3112$@%n!_ߘOEf!MH׆1'ف-&3M :(!(%[L[,Qr 'f%heG,| f|nQ|:ӔM~Z%elךi-5h֧B,YMx Ny˚] -N/5ta@%cHgΏo@F.ӦwkPۈŭ ԆA,s`*h<{]#@9-j3bf"ύ` &bJ/hpB,})-hv'+F?P. p'0ܔT-M{+6#8(fErv/31"+ϸ@t6̦Je#LNol| V}45P;"}8pW _mtKd.~dihPkj2vJn-j*yW!&W&K#*HtrBLWمBXh:$c:n4[Ηb5nzP ˠ3Q'H&#wnx!lr'W0:X ᓍgcLQO Torua`X.`3 E2"%E O !& [ްD"s+Ϣ@fhNN,ͦ䘶!9Y54ajI Rv ]5ZeMUh'V>xjbxa/ Sr*uHgYe]!YRUY8%Eװo't3ڷ@ Ĭ]pnL}$O;QO _b&6:1OȋQ,R_ w6p kRoAhTr2" &LP%oZtdv~aPf?xrh7$mv1F۷S%>ݙMæ^\YM1lA3O$\< s;9|6dZi86b؃赝N8 $TAY +u<=J 9r@(E|¼]a)dB^s3 nISFBahYS>ﮉy"T1-9 }t˯̨rVe\|j^P-޽5Sv:.wAɰC6HYfx:4"4Lņy"V2"޾p*āA``0yE90ݹf)X,Y`,'NQ 03*>řܓ S uzt ۴0k.W%ޔSk89h}ș 4Sf-6H*@X EфmY4[4kih0,=^L2gNWZl;b~#0ѮE%ͭ-? T>)=^1Ԕ =&:gW3bg_@hq9G ئWbLOי$H&hWJYfyx*W!EEʹ^%#W4J%xm]V5*LI'G=\WIRbV1]^_!= }ŠnlSv^$,wvHXG!`m7h?/`߈<60j^2KN@pM{:hBSc,mZCBE3_y!is%(Cqv*Jc[a$#Q.uF883ǥ$fhfiRӘǴY'aEߚɴЦĻc=& H!TK!Ϧᐖ/ LM9Oc GKdjuXY.Åοl @N l4FV `rJ`Q&ǥ$fhUxb[df4;$TG:`B@"UZ$V&d. @qtZp Gڏo 6#Şe#WKj|]SM@zRV ؊ (ށ€53/{ֈbDfZ6 6qN0.sI< <kB  M@II$A$$`$ A I$ H$  @A A$   H$HI$I$I$H $I I H HI$H I @$    $H@ @@$@$@ A @$ $$H $A $I$@4D""MI !1APQaq?"k{t.Wv<!ExPdtq#Vd ot%%$]ϴ`HDx. iN֭AWǏ7*zDʐC T_N?IBrr:*̕IBOjs2hh3WJkS`Z*.Q%1_c+k]bm+A aEͩed{,N̹* c˯.܇Z4XD= ">m)tKNjȷLCNPR3YrNʰcvKDZbF=MPTpq :w`h6(chHM#N3mYN}~ Ӗ-٘ ϴ`H,;єgc?!P?ӊ<}ueY{x.H-#>5ԊëB|m5m"[wPx@iL۞>:DO4#ʞdSPȑN̢82)[qY̓c( fzR{Xn7͞ Mxս~Ql+*PgOėNqhWaB ˊ?uUۺw^R\.zf;3[`(?kR=33.PХDRG{lbPQKEqG"y;~e34Bz`F'*RP/ Au\lt{ёc`KֈM.: ȟ-n& 8s>A|`3!_p0\u/6UAQxu=T)Jk" J{lgC`̵!n2F0CX3/L5?FD0/Z!4:fx7"|Oț$ pd̄Xv/., QёcH]1Z_\Rr'(1dpEvh)]LלOڂN7(H}ư]셨\%ՙ oB 2վX1!9WL =ڥodh$IP1=T sw/ ơXi" ޻s0E8 2{\7Q6u*8(a虇ȘVQmJ(-ԬVT.HK 2 sG #SIUE{J6I>cp${)@^C@6LE0w0$a*qf\g^`jܾ-yr-]$KOp\(37xN-ո<:<=c&ۙ⣼H]5G' "`S9̬X4 >mM)C#FE5YǞ0wl:ȕ tnU~ Vnzവ+݌@Maʉ9<=v\k +skC%f:]% q?d+~֢E\Ѕe;ӚuXCxG?#DZq [_Fc)%T(DLgDV/cVk3P @a&D 8BOG=ΫۥF |zd)AFIS7Jڭ4Bt:.98s :sIOvV|Y&(Fb="=j9L9!!%b!3ǀ.Uz:@-MUY~3,6T/%2Ƕb2%__lbgRώ ,у3X 0D:F]m2J̈?_) O#Z>s#7)-P>ԊoӼ" C|UVh̗X9фe> oDN-JOJvJ@ވ2: 3{?@&z kΆLcC*PKUS$W! Q-0 q<% 2LJsuR;xb[1zʳĖyфwt{cD2.(r6BL2=$Ӫ|pSr(AD$Pel'9Oz&0򔑣dufى8?4/G;mܨ ,@D*$ʔAQЮ2C\FT >\#QOb3׸*B""&Cw "O#X.#!hR L"O#X.$#"K(ȅD|G]Afox);.g d cq퉪Tʆ|!wáb,M3)tBS:e':KL<\ANmL^1!.R+'!T*C6 tQeUVᝏZC?P'kf!`naʏN))DxOK7M7ʯ?[j;kPQfm?Cͥ*E/<;YITzFf [S6FQtL;*Ѹ&0tLBRu$/9-"~9KnI# 4{טHLLN-AдCdJ-+)#YOwQ6LoUY3ABE߱ngLlQ)zJg8p ^ς;t]##N O=ddfLPd,f묓L;hP~b/h`wT ş\;a/H-24$DU.Q% EpbcQt߸>F([{0J t(|輄/%<"y0n/*UᦽT'a, #FS=.(*ag?7y|Иfo=-fE/(, LboEӖҥADvt& 3@~|h j~]7fA ٯ cݡe]u++[>uDҩҞ&hDv5\r~uk |6A(%Уuh^YH15 sj 5?Nge_͙$3g1dX^*G/!9@ml%R:C-YCjShnm낗O jn%+`(Re7xN9Nq٧KS8N Ȭ % @: 0ۂ#s֊Xީ2 qV2k)ܨgF-z"fLy*`- #m̽] kQq4<Wo4Kh҂6bxDF#Bёc zr+aHdMRvCi(L2TXёc-JO޾n%+`:fxp0\qF"篛" JHSQeJ[_hKm|`3!>+?'Հwb5iuh$ʲ̃Gx^4j[_F3 X0+>&ihLr yC+Ӟ5+07Q.'h8.TF׭": mbD6e )n^{j ˁx'e*)X ߛte }lW%Q=C<p¬6) 0 *#۫Еb5"KAxiic\rWHm86]UyL?Pt(Av ƣoW2&*R.< {~/@7n+4L4aw~f{>ax.jbun D*1!I~Ɓp>Ҵ.*7L(joW0Acolorize-0.64/doc/screenshots/colorize/colorize4.jpg000066400000000000000000002653531331025647100226600ustar00rootroot00000000000000JFIFHHCC  . qt;w@_8 Z7̓l<tx& #C_?ښ|Wy;ч!O8 >UO9u\;{芛@o0:_5Y_t <y<~ù__#U>wGt@Ӝrw@xYWZ|? 0mUOχOdk}9j?aGtH}$v /c+qS]rAK}cuWuU[|Gҟ]}qBU>I]?tYWlne\msPy|;WϑEuǣɃl7^:qF9oϣKǟ}8v"o/cp<ο)qaUO#Z|Gt&UO#2uwkWðcjʩpMgV%t,m_>rCjp{=7~]qh_T?:D>>FVa#JJZ|>#!O8DT/j=ȣMO}} 0d~]O9u\;7̓lv)4_1_dV?) tح;W+Un-L_ǜz+WO*1w+dy[xksP| _d`0+n1_6#\z<+=UUGvoϊcW"+qp1^_UO7y6|s+4o/ܯ+GS3PܯT pUm_=:DLEE">_p<ǣɮ65у_O<.U<;VsH̝b UGڜ#"z<9Fg\;T$`}/ð°ݯNopr|^T hÙ: 7k{SƷXھ`':aݯ8W;Fܯ+axdy]B#J|+\m|2<5тq2]}qC1l]?>*"xd~E.1kJ{x=ÿGtѼhS|2?+UGy]B#z<6# b=O)+?,P #7@'0`OH"٥JUѢkI}Vmg>tD} >R>Bʞ3Kۋ$me}gYв^ q{r.v}J *n >>಴V,%.%b~Z*&>| .;]K3KO\:i,t{z S9F0 !Vw5͌!2.)=3%Y%ZY1)õT+R~RWɀ 2la^LLx2'C7ʱt<ҬaXKa~`cЊ*lF$fo2Z:KԙRw/2ʹeV>aʡf!9&~̑UJjK]_7gX6t%:owR&ehY ]^j;YkdkcNW҇%T/;Lu?\cci tةKV@}h$+-Y6iЈjoiU(Klm8hL](Faf_fs-E_0 K5`M'5^ YKe"6Փ~gn)V,n;ݣ:yV &\Ͻ#HPڿ5r-ٜ7\Ú%BUJ/Z>m+Ah*KRjaڗ?nYf 5_,תZV,6 -%3c6սjㅔSeB%(=`ǂ}ul^!().5.~ܲ@a:NV=s?4DLA&Hc.x%6hDe3[ W05x) `5ijomJuKQA"4jㅔX5М%u+~ߗ,o%>#KrGQxI\FJ!-4cm!xB4=^Oz3Fџ.iF=@ʈleXKNmˀTCMv1ߐml[Ⱥ2UdY|ɥ$(Zmv{%`iHhv۲43Ʌ'P=NqK*'1FhqX3d:d:5 XtaNN,Ze`c6htpLI,ڄTK?zn PCtz%Kّ z%9fbȼ3x*:ډ=F&5hNwB^oEs-"(V Y&*2RR%'[ xZΥ|`}a8nfxMը'kGd :'!ge\ &H4D(d :2K3c} :L#IiɌĨ:CjV*&ȕԉI]R]{xDj*q7|ZI!mmGÅ ".8A]y&L)1M%̓t=1\e`FTPEP# <4+ɛElLjB:M./kXF V%u,UVn3e#-7ENɓH _I&!Ź~4gCŻ! beq!8.ے۱, d;/[ja_@Ca9몣ɓ4=o5@ge IscF:nbONaozw7U`hKtќ[I:IscB&HgQLRujŻlozwZ[Fv^/ih;/&L)2[%źh!ź^{wBC-ФYMT} dkl(*$DZ2Ԏ=/,uQ-IóaHu`JCrEc,GW>tXzL갴DT g\%c1uwIBD{p|5@Z# hP(M1`_oGn樠BY'_XeR,r_.AR3sIgf=V:7'wMt5?c36_%hjݱϪ&Q\K`nGC!"#123A$QBSaCPR04Dcq 5Tbt%`?KC+"i/FHUV@q o\zl(V% =ԕXc> 2PRRFLY|@%:Oq>3Jըc@@Ϸ7$oi2U+?.g-+ֵy3~+}G͚4LuY$DqQbG"'bCjm fz#e<~XVD=)@óTr.UWJ#]jĘN[٥.J'IdL.ZJ'1>A=v([A?XhRSF*R49Sjs*r(8+uo>a;Dvabir1b>)V1,XK#w/ʧb^dzGP_6lũLcL!󐢗 q@q$[͗1!}F|$h N-[yzF36zYP+Ur|Flfla_0Ht*0LuDmUh0riV^8>e^q2)HNU37\Uf'S`ie$ ?0p)9Kӏk>iQvxN#WDK<~ߵ?7oË"˲`¦ O.;{Q5@~"q{ŊяV){r]{.Xʠ򫰙Y,Xקb*ώdzTgY\ (%DʱO4U4,.85rU4Y\"\WȎ< k/%vV(WUe?OZ%#c}eƝ|<9lx̞0J}5kBU-Ź) Aɑ]@aۉL.2Jl#v ŨΑ@h_u?$p qma&|5km[c|hdodH/a񙆝1:)6\G+֒wߛ*l];6Qh_/F#o@ː0f]Xv0S⮫ӗ,Wsgd{Tͽ>GPNvwi2fxv+mUȳW 1F4^Vmkf_B~>?H@츽hNj@+=ѹ.E,ePg|=F25qX > :cL KP o他ֳA\n(u-b-T:;dJ娹V x{$i%BcCcO+mJ.*zwOU+=%cdlviA2Y{(znj"AW4![*6UoO|.MY}Tgy~tZ,fI<" Z2:I?>.-}"rE)6@[r}y~v ?HHfD^mݝSkV\>ތqg&:Vc?O2y)ēڏ a/_1%lkB4ڐͪ;ؘih[lf 5>xbYݢiaG̲v6BaCXM?MWr>/IzR3 O$1 KX3b6|Y,;2~aW4t"7ԶyVx8͞-!#ܒ~eGP\ Z"`)tH=kBlǙNQ  `ɑS.TMUCPx1 d4VVU c^M?+h +NJ>Jy;G EUTFʘ^uN>̫ARA^KD*<)yإ9ǚow&fa$cvN;KY5UR OzV}'tsFS1%?L,?-2c>eZ#jk5q]6b]MF ܒ*|I+7\ ىoRE\[sKx)d6M\}\^s E w$q'SҴ#iwzS6I9$g+m~;PD=SyB&DDUk)W(ؠeٗ #`X X,R[ҀB)Qil@ %arBkm[k1,a;Ҵqޅj½byحWU5e!u PuBtw~K:wt%$ (Tn_+pq_Oه6<6r!r-F$^Bq^*LM23c̔oYF!&O+n[ M~>44J4[%NCe۱'S28OC 'Ր+,|Y5hQ BM">H5Uv4uvq~/Jf{odsi,tg8eZY~b>]~%GʃL+ l}[*q'%VDAZ (DZ>+ ]JU?W^Cv5Pl}16RIn? 3%HߋDi"_7@t|?ւǯֻ<$E r-%^*-=M!V.HSs-|{_ *gvH-Jݲ-f{{$MZX84Ej P[-݅POڎs3f%h U+du9D&NbXkoQVK8fً3JPI)44xe\n--VbFl()ƊbB5zmˈH̥RU)^/h?AͫWgp ;>[$ˉ]xN2aI;#XWWҹڎ lԱUFeN\y7͝M#?.O5ɛH<:KM  d2-f8F=+ !2bcljdwfRKh|!׷kQ{Qrx>g'_;{F4/i#:LmCidg rHM))*L~ͳրF]|e.?o徭s|9vq/7D.d!Di~kC`ڽRU"Tgv?vz;fP τ(&o3P .Qp l<4̃D Lr>?Q=ޓl\31pbF\jdgvtىf:dx>gR8n4#BO:S0AV;N ǑZc(VGajT\$mLv|,*`]q"ٹ|xjM0X-Lo3K{)^>qfG$ӧPa5<}~o^\Ƕo>Z czl 8ր@Rn^ePvr~#y Trn% ~ZB7و!Iq2 =9pC~#mJv=σ8 * *9}f>!Qaf'(ĿXVDll h+=[>lRqVVC2\vGL1ƀ%h WoOdrU'4T^[ 8"~<F*i >O[nN2y'l}9t_O|~M½ޫz^Q_^%z]bӬ%Vi?uT4\"2YWޅ\GlG}νKԢ!M)N^ 6ԚvO<"-DůWUkŞ\ OY %a8O*1aG!c G`X}JǏ3&-s,Yp@{rA:Pu2ݼ+7~~?~|]57.?{}`̔424ń=K9Vq$[ˮ \cǙ t#[RVtWU{EzS_#CĺIf^)ɛrI nIJU !AӑD8/6!|.6C0Ub',>€ٙ> *,ӢəZs2HРoּu˪oN;޷oG[o&o}k_Y!Hkγ@m< ʮ~N12 ANCkByu޶=ǃhYen'kWc߾ƾhs")f::UIA+|}6G.\5M\w˯qkwtק޷~_s2eПK*x=b*q{r U=9tڊ 7_?W5/otk.[7-kz}?BLk^:7[wtק޷~_Rޠa!_$~4곘J im8z} )Yh`gC*~D@2dq}4>}\7\>?{xz-9B;c2-x]Z/T*U8fne %1_0ǿ %#g)8k qN*7:ErM/Lf5aPc h "륓lj.bc2;F9K2]w""WJ^wdL }JieD^WPf9o@9EP W>ˡ:tG=pO"fcMi/1sqp!8c`ws P|<'C>Te0}#BriU)^,^pQ`r`#)@=}&x٥cYyrp:'ȞZ#t耷qYQ ". &B|`QT€!<8*1h bb2h͸MWhNX75lb+J|XФAI\-hqh$fQ&Z`bv؝T=aA m Rd2:3*DrpsOO~L\U"iUPQݴ92R]`dL2YiѦH߱*\KaV~ړDQI3P|U͹{.w.O7R,lfF~5{/܁*Zf?r%#1iȺUYK^(du1;Rc9MU'8P [ky4,[t|_jU*&;ڷo0S$YZgCC׊<.)ؗFN yQyC"X3- UVY2P>&VMe`Yy'S)@l~a,'$4J:RCvaĮK][J{>l ZTftƸ+goϋdh-2}ɶGMd̩iϚ\t=TdS"X֨'h)1 ;9gbODW",WLɖ:MZe'0C>0՚S*" ^+B'n_~_o;"4E4]IptԤeD*/fN4_Ѯ%c½dQcQE<:r\`:g8d`(`h{r=KfKWDN|+24ڏ鬭Ah14 N\_Q&OryTnȦAb˞qwk7*MO#G8Xدrׂ3d,5]<$ FGC2fI @]Cjo|y]5(#.1< bA;[~O ʎrC7+psMIN4k՟Zi< r]͏2UU^ PѺhQ$PEGgW22 Oc"ídcߘf$Ŧ}h'rh_X> ĕ8J6>U~eU.4hٛB՜ u 3Tgr~ +OgU"" sgckR=iVjz_v7\P(q%'wn=O@xޣSZc>|Q!id tغy16"rQ/h :1 xh.T/.S2tb6QԖ]Jԫ> 15jƍFȔҪϔ7ךzL^Db6LkS+{ ֤ɁmCQ~^I#!UnFm6RGe>GE^˓("[=mO):[jxY gϊ$26b~,Y>GJRkRqێӲ<twWzο oQ`q;O|rB@s7!BF:a2Lq&W U92TK @;±:&Hu΍i'_| jaǮqre+ipЫb+dC.S{,>-\h6ܝ\k~>?~r,lI*@ ڜFyl+>vM|,Pul~rKxXfk+nLK  }xO*0&ېdQ8@K5Ӯ08i\]tH*Agkevy@V1yOU#LLM4iSdVhZ rZۀo_BYZ:638b赓7Ӻ#!.h5fR=e4sϭ[E],_32]C"3"ɋWf#[߿Xu'n /5hUrD -< ǴiuɑPxknH>K ?N_12#S@neXPDpgG':Q,)͘etdET)]1e.5QUyA.˜ndt&LݗL}9s-Uj2+/Yٿ'Cc w&^2 mKIT)o>Pݞiyq˗nw~s3B\S'ӫϓ]?Yl'F/n1㥩g{`*@u.׹x\0\QE\U#xZ506,A{Cr|ӵlFc"h>:Ѓb[sAorN=r2 !bS:rD.6D;g[Bi-9_~Ϳ<1Ȭ7t~, ]md6x[{/.#_(;SZozcݷ̧IQ\6ePUZKs 4)3uXS2*!wcWIbI~ 7~?]4<4@oPFZ?qhykA=ݟJfd1&Ld‰rm ֛CUEk^t]mX{jnKNLq*I?*Fcv's3[T_ٺ-C|JrCa fS`A#ٖ!ֽ$iwR&cfT/ceBdSŀԾ qoۍ?cSjƹ H{ft^d42 {$7~JvVB. Ң"DQ*($d"!>C]ñ>x^_z[qRx)[ jsDE-FEX!XV=}ǶIy*o|I} x9y drG28wFBq|ӵlFc"h>:Ѓb[λB"ȋ$URqTEÇK2㶱ievvg^T@TmPTԻzTU;+442*1#~#8^ŨWATpۚqc4|s(ɔS"(n&Og3xS.Fđ'[G'2;=ntDWAQ9mGv7&S+ZTn`m\x>iR7[bD5Mj~8٩1UJT͘9e+'0 dq:,4 +`JtG pA}~gvNi* jRɞ4%x|~+IˮTbO,<d[ovCf?s6r|J[ṳ̂1$Rhe jr`#mğjkٹ.=ykY& I_Pq}ųrrε䆽xMGixiY٨3e[ r?f[o~s{īHQ+')D;Vbe; V<78k|eYJ' $(@ءbInF@"15_jbtUO|ćgŊ=lu\_ǏY,TC7q+b5iD]0IqeWb+*k΃?F_DiČj}&aTU |sa_)F㓭KR~eS$s+b;}ѺU)Pbe4*r²p* s H1ZCrczI1)? ~f§1U˨_3~M+F}ZlkA\ey! BҝmAsS}q=Lab¹ՆN@ˡyld杤"C  7YJo5gDoP'C:yo/O.Xy>IbӖz7>e.V9)9Ǟ`ፍ8s2-L~AFx!wxlU+?)雙i2'\a"A]_U-?0&f,eۮFBRhNaW6_HW< X뤇%X[WS (g4GGl&NJFz4ݲ!#JEń_D扇J["erltZw&f>[{= dsi2.Itڏ7J> 1/<va70k0"OU5ĎF,V4Ғ%ג*$xbq x"Lh;w$2-;"ᤡl5-342WҮ>Ƴ6šfɱ<:t4KUJ_yI[_%wN\~,W7䍣S?+;e\|H޶ub;̓n7F*cGLH?uG:ۻcbI;ٖx#̠+lx| o1k (rr ⸓c$sGSʤ^VdUBAFBi> ?/yFiG*=\. HƊ^Oe͛̄ܟ/9jG!ӠK_fqܷnu` GDMcc ͑Lk"4zNiA̭gYrlPYn6X0I>!<6TSS,@O}ӛr%ey˲hgAǜ^NtnH嵇ژ_/kyQ~;<0M뤨bo̢'@el2p "+!Ty A9L| -#t ~TD').yh/@,?keb'JCJS_ޣٴz<|b.Kd|QqoGd˯t(A۟4Cey6ED^dX**P4Sĩwc4՛,vu5:8DLL䬧1(KγϒIniULu2ǜ~c-VI/&+<,4`#Nu*̙-2׾ǚ6 wb=Ts໷ݘ&~e%Yee:e#G >9^8.Y.ً+1S_(ٵ0Lפ޵n 1mC7$x?QQuGzyٿoFȗz9ݨ Yxv4}xCy~?j7IKk<¨_9 *UQeh{> q(]YFWƎ=LΟv{||qUâߪɡ(3aɤ4=_hϮI-J̶ŕT f# )sf:"r:2c$Lq`V ԷX1oATR9*/1fn!03'IS"ؓX8:7ф:O&2h)*hʂ$S?vŹqj]UoQftڣ`X2^Ùʥ\\׶rRmɘJ@BH|%1E!sb'9cf+*bdb'lj*A9rxco tKx;YrmىAO'"#oi)<ήa+7* RQj(m9 !J[SBI-2*oXfbtk~&HdtbFQBO"\IFfY~goæF1h^z~6?to}7#镑iKT2$TisS;$2 8F}OU꺿~]{ϗ\;cd\ lYru7r-y}yyl,k|wG??<)ښ!9|'ƄB=PiEU€@=/*R9CڌGcjAr' psjNCMmyfֶ=9 LE9|U'!ͯf̍W(Ŀa%Kh2H+[Yf$p!&m|G̯_߆XjQj5OЏbwN\~,W7䍣S?yId/Sj/7=NM~˳|+`JtG pA} ( RU}PZrًoob*SW{!AHP{)]qG=q|yqzkȅT]UDADD TP6I>'ZŹFĴݑ:ڐuxWOuz~˟~^ X222#}o'!cص٫*ݿqTWr i,rKT/$w}#<ݦztb64tA^NC{DZkW?U@U~ CʺTHlo NC|Y>V|\ݿ⼗+[Yf$p!&m|GLo,J` w 8G={QTɸg˧8l~Xj+lWL>3Dn"nZ_7I彫_,G"^eY'j& ȏ_oKaZTL$ΆV,.NNzCMqG1iqE5-w,&o0lenzOO;vAwt!uyZݣ~xv31^.+si;g8cY7|T<ߵ9_5o .\%)[<\+IBrHYȷ7fT˱QtST ˽}[ ִ\j>]ZUѕāR~^'~FYZJ7Fw]1q\3\}mYJ9ٕ*%>t&C[iE95ǙR;mg8VK2|.scY[J_T.jb!Dv2J4LH俬IURX\F'u9#%NNgr2h}.M1&k׋GZ7>,}"{w"\KPAl?Y?d*CN`@n-1Sߏ, Y!>??/2;Lr`s 5v!,2|o.j_#0|(U.$8%[B}ȞZc~qEč d]//1͊8\5ŒǷWV˸wbŒcT~B|Z<%k*f}X^;{hdšsCRE)LY4^%mI=tiP|˓c^f7b u*0?~}s_)Pn? H+j&WFTIƋJ$o?g:XgE~j]5W17S<ʕnuã0",3"/hm{g+(Vȑ&%hy,yڻ<&d4Yq2?[3$Crgoޓ{922r)J1N5>kZAaFE2K\vxTNĝgR8)Jn4#B:O<Ρq6R"gS_vGwQ/2ٮi%qra9|BQJN4$>2-9rU2T}Ht o+BY zݲM *URO#dzq54^l-k|zrrv۾&:<ͱq6K35Pw?Al.բwf#z>'?OJ #$5"%46&3PV7de 02CEFUw!'(8GW`cqr?orLlii! F{w=¯lXwU\eYG-ED2w$eFxf?8-zz'-k$5!%4dz޷J88\1]YKźVT&4sY갮Mc=$cǪpicr_{ >?hii!!+9?uED$n2ڤd.,J.T vyغT`EA?NuUb Sm@U|#tjg|?%]$~;;Kkk/y^|ebسu?|>?CfvH!?/ܧLǟ9=7uQЯ},$9ǫ۲uKcO ltn4|Ѩt٥-@p G9z.. ߁ӱ[.I% Yc9_BR&J^Yĥ޹<`>oI޼..p(wYhd";+z!Hu4NfTBDɘ "{|nA˯rP讀j]"Zf@L >Z,F6Om_CU3!Ɋυ[Lzydl|rY/˫zF/cG_|o[rdL8lkR)B^Vsp,{ex9s˰#Om5A$,XDD'%gG!HƑ;CCkv=-`jcwp}O<+%i9W?.~f_m^ܭM֬31ƇfH"[j6(uL{8mr6j dhj gZeC V5ԘQ (x@Q)BGt_J0ίdgfA[EݐFAV6]":}-c)ZAj_NqUY@{u}xN_d]I =h U,Γp@$>PN ɂ]|&ni7k-DؗW.3bW:>hΌj =d 5tZ 5XFbyWPCEv̪moiG!3ܓ,&cg;k"gŢK-M4y*_i{;Ox]g;;Yg7N$ ڑg-+Bd"CWf`;\W1/&~MqU mjq@אX4izapf4HdC)FZaN m,> 06.ĺAÐӂƺͪʪ݊:7U%vڢYE*@qctV^»l\iQsߙ@*kYuzV3LU4MQTχRZە 5gSIaM(&GL2tO! H#xLXс0\BKDX?@.,mR5^y1SUQ9=o _u%=hvNuPcԍ)7nV_[]*U]bЋ:MyPg4 1ԝ)!͇SI'6o FΜ-G"fA36_Y\zkUl;ys5A5 'z^s/.7f*m& vH7u/;k*xRA.+ZOm ͷΪ)> @ Rf%ᶔB'RuZFmY ~#1w&{9uDʯXV[.`SHgc!S$r6})Z1Z D7+-ʆv&,Vj!1wbu{VEx @窡=*(C@SW38DrRyY:}w-G:[/-"C% TOx|S#D*[e,V^=S7F$T(E=uWEYQUT\!g;Fjp )b!jUpE71m \5㯄K7Ih1 ņTԶk>!\Xr@Vgd"svƶ yVT Xь(;O /J a =0c mvDJKdTU@ A3fWx1d۔C '~FP w2]DHc Ih\1[sb$C+.4VˠekaL,9PLVyA/ [$ %mU~vO!j|guc=^T>7@^9E{"i86k7{yޗv&8yإq)ãThDf\P)2HC]M;&s:+}wBU_Y@ ^M92pE 5{|4$K196,WHep 8BfK:MJ"?/|Ǽ鿾~<#=^_yO/ď 0mRSCC1V63V5N *Mww$V\3crK˝h&.Vp0Xb*UqlJɠG;iJ @T7cP HeMA`|`=K}.NN Y]íyk̤ iʌGm%W]O uޣ.vܾ!r[(^?<-#R?LM;']e.qns[hFp<JljM"F 9'WWўaȻJ7[i^N5^9 Xښ-ms,GBRkEUÈqnZ= Mnuj?N0ʋ:S Yfʢڣ[YxS6ʮDr=b& <Yc,NTN_Lcp~BFU&Pҗ,=]]iZ5J|ybj 9Zu3W[KTՅ,X {"藧-4fgv >JDz xl5(ِkhWtv 0|`V~_[h#OfX]%v?G7xaDl̓uȳdÖSq`sXÏVKp]eXjl -"WDtuC+qwFVa\}LRU*l&4[K.s 9!AB4¯,b6~39¥Q_.AiU``  u(+zR-ҴX,+hg>?@{ֈ~sa4XAC2h56lۋs$Rn|ܪE,6L4n-Z)ǩfFP%doRpa 2->ø zOT_%^چ[U :Ywrk!5mS]wdigϘ]oH*y,^}N]hThUK#Rdz{7×` E;6bE!b[Syu)V5K+Xxj wJ=,}ꮿvmO'>y#t6 2 s!5Ȧ P~6GTsas c 9KT8SpP+PB[\ҧKUPJ7A,,y ۣBGzmpVݎB%b)<RYLЄ8\{0EC01,kw{Qz>I"*5W.0ٜВYy>b| z3Avck@\![0 J+UT82ג-*?_^Gf$ˉY'3L8e]T.,.&#FW=NO821x-}hK@Z$1#Hu[u]Irti)c3OZxuV~jjo_SO%˲$2ҽϧfBtbuȌ xZ qUB-NKt,YhzMnq:,l-^M+Mpxh_y}J Bvjj{),\A ǐMȒz{ƸKBJ\f_Q*=j3Bԇeg//n]mv}ؘt ]n>$(4^H)8ZtI.`9m ͼdv%6W]\w6'MdG AIfQ zrs h'_|⎉ŬsfqjR:=q)G!X ތ3BpR8 ZCymxѥ{g}` `*zXz"d_wW~_|ռ#G>g>?[ҙ[h$ORCгiQK=wQlnW]ʭYjU!%_Ͳx]$A -q]Ͳ5׍lp\P5}u( 96W'd.!<٤ƚYqiOPzo S`= Zk5[r]/L}4]n$EBKWؚ9\\}jg}ET_k;j]Qq>č8̩G֬m.|vh9]iGMD;YX"&8S{@_$/ڭ.dy~n1,O|n_]|u!Hɲ&U>{7,=-+ .d8^iy6Uj>9𭲧P#5U;n{IJ-엷uVU/p[LԱ>;Vzr*.u{L'(gVi B(\;k PKhg/p*_]ȉa{P+Z=&u8,@* WV6Ư۪W_i2f G{42ꕮ'VEmד(44]ĖyFS-RXuIѳg֪W$(`G$,ϸrz`xӄ8U?Hf5U+t=~H$pPlo,!;\gDZ;Ye"A @bT<6D)G8*,Ͼ #J2͕>G?} _}?Co=>ٕ߫}?osW|?g+ J]XB\%R7YůdMPf{*k4أDq]X'(!gmא=sE( Oh*֟V_ гO*:OhK(zG67՝Njn.pc.SitmL˥"W0YL%FCi01DV ż˓(~`|3[*_WO}3v.iՑhHveBF`+[ES"uQ8oYx/+vW)u33E s&ČPgD ׅAP"?ȺW4+)p]PX{묾P5.\?{)}uU*j)c}22ý>iӽ~M cjOxӠCyʦ7?Bv-/ǮҎV9R_g,e52.)QW 3\&TB/4ܺQˉգ"HQ`\Y@=?ʗZ *b%W{|XqAPzq"U(&\e9ǞhPP9a" -F =7NlU,ꄂFR~2\w/rG{>O?{ׯ}~l̹U_77Oݽm˴NH@yGH\3N~TȝT2+Kճ*;  NJǗ,HҥwlG7"Q|kWz'~s,zzXD3W@F4\Dr$]<.ÊhR0/h- xV=>eP{[U{Gܺ9ǎp>?-}/_+_'?W?fW~\ٿϙ]GG/O?vF^? J8Y]6Q e}<4,+"C-1G6k|KX~؋RR|gxC) cgW2;o.|'?<+򾳥c'+~Oy^$xG=bG۟Yfw|<|_<ȣ~׿OCfW~\ٿϙ]GG/O? Q V׌!"`ӱ1 %) 8"*%Lm.bͮW˗T?U}q@WsN |Uuж?X#?~ʗߓbEWr9VVZ(z#ab,RULvS]ŐOjϴH|,pqJYWU<ISq~[PkA]yad9Me`Z=YksDʩTl(i*9n7=ecc)kAPƏZEWC(qF鯞 .s}!Bz 0hZ`7|RΏ$N9VΩ{6#X;\OR b[ӟ? 9ĭU*K|̥])807>&Ϯ[R>:Zs ?m>l@ a4DݭҮ?t]I.PrH[rSw'`5 >5m n0ъgH?ػP*Ke[ Z=b9:|ZY%TCna1F` 3Ic{jͩk>` (d˵kTn86]oNBWaTBAUwicok²ǔe. ۯ3yu`|x1$W̎WPUEc$8c+^k,1XqAaWeNWe 0[_Y|8ٜXs F3t}*s註Z^Zy:Ň}p YWȉv~N[5ʬlfV~I@SĪchd !|ŸK;ZjX2:=kH3KJRgY>ՕS :EZrWiM$ǛힷV1V^y˞xZ&4AgxsuQi 5#s4 2n&7½ZuFʂ%͎2CL.wnxXhtOg4zoQ Oβ^Ѕپer`}ulRyWZM>5>}aMF=b(p+JeK0W4ۤ7)Ti=Mj~+B!גyd$%{'JaR)?{ЕkAˇ1%O) ֋(`DchZ |Ϥ8i]UScf߰/j7YY,*[ʫj3<հ.IuԝԙiUo#e, & R2IWV7*װFTwwOc6֯h5~`7X5K=M>L<ׁ7xe-7]6m*Oτn]vkբ!2j[>dj$3>d G>3Zln^:XK7cKLDQ!׸o's3P6T! =;tK,Kճ2#FB<#aO IVܔ*{'FUpZ q)s1ၯ]|Ղ_ {6 Y#Oy*LE]Y3$4MWMF+~7'C}Eryp9KZ.syv]uqˁlMkILmJ2Fxt8}Ff[lJ Z+ #,v!*n {F؍H{ZfWIrPm8n=Ù, 48uO.CMI]ߏA;G7w8g 8Ν3ylYj9wa+4F)2`hlC=yFWϋqC6l:gdI ddȡղZ'b{$H (+Ŋ>mϨB-EUEFRnx'.V]sZ5|$Ȑ aFSʖsH,!6ďAȨ㤀5*O Ԁ~w 2Mq#]O7!k LN:B)搿tYdIEn8f50TRUlE vg*ĥFb)2庤L(W)*mY~5#,zo}Tb{_K=fOʘz,*sBg'!2GjvDwI@O0j̻u $yj%wU0\>}Ƙ8b*o5)͙陓q=bH⑘_$d ,˜Y{F),J~ rBQT&5Z\kʙǛ? 7= |qhMe[Y? D֗!qDlV/b]}WzZ!e5+ +ЇE_  Ҵ#]ݢ!NL7=q@WaB Q E$2j)N9)3+aH=-&# LuʛZ!Jt h_u>aO IVܔ*{'FUpZ q)s1ၯ]|Ղ_ {6 Y#OyfU%kCbEŶ41YxXc Y|z=t'!NT6r5ՆHN $+ H5:0CO%+a'NA6g |"iV.]Q:n]` nndXM_tuSI2*b*Bُ;h_RQEPAZrd%^z &Dj c {lS ċE@b,8q%έGAvȹdĹFŅe.HW@++I_v g:PnX@\V+Y žn ppI<>2 9|syQ(Q/>W֬ش~%W4E bR7e ^rɥ!¨{Cze |y}+'[@/f.-U`L= 8Ku+ qսHW6xne>zTIX EK4!$tcYVj‰[5BQxCӬ7s,)Ƅrm?zKt>T!8WHY^gE70 |ð#^@_A=]ҜUxd2Pot?)' 87T !:&9x3VНzl%A NFO{ ScØ$geAEVN/ؓM!า.6"2t^,/M$j6PCqr[c`9U1 8ym 墜D.``ZWɐgPcZ )|LHepH"n"+#:E,m4,$(bN DNk}$Vm|hxPJ_xҼA>) \xV1jwE6? ͛ȱ$PH6, O!$.0%@B)RSwAX,"GУπe |+kp /n?wG&ԦaЯf1ĹQ%P(!cQAU%u$UzuI7/Eu~m{#d )ŞvM;0JXV VgX*#,8UiE}ժ7nwyB?YA$ZϏ3ݤ3?@ME[sTQY2ΥE66𖎞~PȷS4I a|W7jTV#GVmSIyN b; wV%X/({we?#agvoOë\dF;M8C*, Weعh {`/vMI6j$5{ WyZwɑƲySuv/SkYOoZ1EqV{w 8٪xDaƴkm1, ?}Gq7 !΃dH }\ۡBz`cTY5"b('/:N@y -1>b>aeG8l`n** 8%fD#LM1]鳃ku@VFg|5>誴'0/;o]2(8Zծ򻔆޴+["$ホ3[]R׶]gp-Ha+0_uW%cȃ?Uc ;H.evء32~@ Qjs,HڒlqDEADzXgk-d, nBKOK9G؝_2|8OQ"9z3n iwL #wP_b_YvIRctM6*|<` ׸"KIIRB1g.IQI:Z6/s#>\xB3s|sQL}fD%^#F=; Z:!|U9c>yV~Pn&@z]|&_N['k;XO`uZVk>2f ͋ƎFFNTJu5?U1i`F7gacE٠GBG43I+iTp}>:_&?G?Z~eB,/'$zM/Xư<1Wg_r=Q럵d}\ry]GlEΦ\}'#qO?3ݓ! õ7eo")/HkonYֲ"Gc7kuUnT 3ݗteYts*)]I q}u}~thwt($_mon&Zv ffeDZQYԈߣn`v@MK"ϰH׺ikj&aOxv]J3Adj{*( ,S[W8oF_ \ERp3`ŤޒL0 D?5+5:ƣ"Ȏ U~LWߚq+V u>nTU]`:֖j/xdMM}N W| Ū)%%inge:r|At;=Br_G '5,ƛCi~4DxRyB,㾘KYtf7v6JY+'f bUBg{S]E~_et b5"꿆uUvZ*XH_Q}a]C/5;lE) hF~.˦,R+$ HFu^=Nu]Mv)Bqe )3' v.ʆ9k[Fr>L)V}e Q\l(LA o{9>Cۚn cD 0Ed^\k!(p/Ϣ?c>ߕ?#|^Oo~jj+JwD|D:|abMH̊=,+\.)Fñ ,+k6p-Vŭ58)в?IAaaQ}+$.g+-R)KYYK?5*Sh4w|?Ũ>ॻ3m٩ |?iN6Yy:u"_ɵs=佧)FPYi ^xl3~`׷ɺ%WF>:}Im _;>C7=\ېC7;5 qقƍNSʦ)0 %ޜtydj_r.Z:Ub e(^ #r3ﺸĸ*_"uР~aXuC"MG?11z C袪8nv#raR)5U "U6quS9BzCI,xj3qY,@xs]!}KiiG '{?=́.n,J!b2d6Ux8J2s+%/Y9krB#B!8;?'J H(ek|M]ȑ4=mZ3vvh#XMyK( X71`az)WTP= pȼ>^i h U}fnב[9p6XVI$ EVebOw9^ m~Fv4)e _+s?rrp֭hx #Xf ud XW$b){-*Q%(ˎ)UeߛPTԪŅ /4|W.|GdF,d;!5ɣ!@eB( bOIx]MʻWAN2\S!&|UȬA]tOhM5)YZƘ

/>.T:w!ZܪLˋ^,j̫ޫPX++9Q\~շ3sCn- DeTگO tMufˍEQ/Ml񽣓d^{mVQ/}[>+5$N?K^8\#sb<{O^u-w_&mj{W#ʵUTȲxvwϤ~?ҙߝ??/=.]]NnXݢDEV) %u֮P-pDCCU\{eD.iH3<K9dZ 6)0Gj j&B6_XBBJ#>F]??]{dSB?o/4Gү!q52c_^ȼ[es]fVx~3DWbnM3#_h\i37\CAi5'y,?___.w~|_g|xWfjp0?B߷h]X>cٟ?,(ܦtSgC"h\3.ZE%<4>(~/?<8_NyXziLl3ߡSʃ ^(Ddd)Ɠ@¢iPRp$Q8 w{E$S([T'ų][׫Bi[NO9ܳ@]Kbh,o/15XGH"6TXN\r?^C0V8>Yp>DJˆDJWotDeV%$uBU46(0L2T+EG1or΁era**cP= UPF bNehL W*HxH :q}SW36(NF\:~ p =9`C"ãi'BVU8ULe9So /el s<Fayܳ2AzYW?{e><qsIJm|9O'g?xyYU,AONsB4{02鬁KI=ѝW}SWSl%]PesF.┝vC/iDFXTJ*9XHڴu͠R;9cƹs+b)2szeh@B ؈ŬeoZ}&N̳&Dl_|||?֒W|?=o1Ru bS)(c)"Bsj6Hs癏WZ>we-~wOxcyg|ׇxGsߌYD 6I1Zfѣ" fс3a $fwAthӿ "]AXQk*L s qdkq/M㟩~w?Zce;O㿫!?sb xpÚ!Md XW*H{꺛a*R(˞?b1aW*CeĪiN* <9PiZx*l!1\'!Hو(q> UЪYM5[_h_ᢕO[,+W4 vY]UWW/n꫶?x RC.%SN^zu U\q dH sDŽAWEg9Uz3F)ԙugUU7Ren^&ʇ$_TkĂ Ga{lm_J/'  |8'Dz~QxY  QI 'U/svF\ (˞?=a6OqF]ͦ^u{m&>BCNB't,(c_Ңg0vwn4ɑ3/Vϯ|RUGOɷn3:̽u_]0=uj:Na`ڐfg\Q8Ky>A^JZ\ғ7utgf8$h{hf/u0KUq!d>-f*oh/(+M}B¤'$ ֦=L=#7*j/}$PE!Ɛ/VŚJJO_ưzox:pkF9.Zr5K\S!nRz'p;<E>]6P"܏Hk4/x?7վ3'H>ͦYc,NAq%M7f1"ΩtoZx IXr[ڜE2gK&U*-ʴ{ls5Mf8bƐNwAtXGR=g@߬4*MWW_a9\Fd6j` X ,s 8U|a v1xq6̳OJ,NTSie|̙Vu+˚D()76: |]],.;Bg|_Z-K4J2jT#=Qmq&C(;}j@-aX#_d҃)([B퀝4a)s&-Z@-v~jԍ,{\z,F2j$HGC^_?`_b>W__kODmqǡι\}qFU1sfap2묛ۗ7WuȽ֏Lykj;<9y]UO~|b|ҁ[ǥNF&n<0+/$}x~kCsT5"-8 lxCtk]m`}X>Y)J]2b0 -^B &˒מXoĮ١a`x喁?TU|iqdc ^7&aѹAA"ѽ|旞%.>}4e ,VLWyq[Ab >]ń}$@- oO'3v62/)+8)%*DȃQ`]Z+rrvmTLa^Hϳ2&ږb~۱rhA+Eb|\ŠzlL<Չ'<2+/z{UK̿2%æ'ug#?=_71>&fU|@-YF-5,u.h80h,r/r\PuETVKKDч*&Cd6hQ=S>+_g_m1'OǪRF #95h@#4IۣUF4ƕz8w~R@ar2N{wlרjE{c1s0X;  PK na FW h5b:}oij>TC(\ɽ+ZWaa~ĞaO"{( s+n&K6cȗ<؊R݀Y* gdB hRc^eŬRh;3`mC_~gq!ӳk/X J}a[G?戁Di&ZRO5ʳ2MOvJQ4kYn6=lyipDo7 X]05_tj9\w3gg d-QF` ˓m3rN?:wUoOuw'mk`v)4+3}ơ|0J&:E> [:]mr e]uR5M>*7` >oEՕ&=ɦl\/A섡Ewg[+ WiD,rLcTeK4! "M [lǼFoGqώ m9v+8]Oˆ7l*1[ˁ+нX=NJeL^{稔?IԤvSΊR!Qq_*Xb[o kE_Wulj[Ef/ O*J<%]e\aw?qԀK47њvf' w6܉ubeYoC-eB #||.62ݙ0ŴcYyrUfr\{H\W*j-X@v<\hwQu7iy3t +S;G~p@Z]ُg+-+w 'dWj&kS'[1D1*˪uoT1Ԛ'(!8cQCiXytİ9yXzP"t5'?_Y{}*x'Os 3iB|ys뇻e*}˼! {~a/;N,,I-٭G*EӲ\Le+g6F91'~FۣC< ?3gosczhtD+DApVQT+^~U(Kz3\s+5(,ZTŅ {ͪvSe>+.6v^еsqr ^4rpX6[8n%b3Li:d<-,Fe(P'p>%,f"G.Nx#`Tu0+9!AujǪdQ $>*@;@OA#G YQ8&ꩴg &j^mxsyf$G+rӵ訸ĐG>q0KƙS~k"˦%7`0"믣 Xٍ+,%rg` k9JȰ3mTcAMC4O+eɎb UOxp;bQ͘"|Ѵ]S/mW;J` k9JȰ3mTcAMC4O+eҒˣ;4Wg򁩣$_]=ӱDj<6+mv9>BjQꌬ@keX#V F/Qxc gFP#P{YikݞY=CU=; BJ2ZKwO[`WuA3-s+s$/ULE<նf*u*Nh:Vi$|.I4`d c f 4\y8hU+4w{Nr<zLl;~4bX1\e^wf@떟]g%~Z _Y"S}F+6h]1Lզ@(@7uֵ히 ~5[*Ԗr}dꉘi|A]kK2Ŋ4N`?x7e[L*VG8Z=YKSw6XPztZ=1~YCWo߉ϺɆCC]AmCV͒* y<L3RđjC$uu^p6aM̦"zIdIVUm/O mDbW[JI4ʳ~VR^@6nx9IЂߖ(7eRɚoGd{\J io%n+_U~dUŎTUlPn2HV]/:;1#̱5c] ggk&rE([.G֥ulU4Ova9笄%).ՂNɳ+Uk'@J1XL&VT $,TW͞ldyzV.}ngsIbIo91gw.6gHgGOQLhOVjES[B3/;aێҘ{HT&z{8c3?\[E V+ c}e4qvtc7 z#{jP{i->Ʈ^W_l6f iua ^9 Sꀍ eg0qT{4}dYdKz*B nؤ:px?[ d%:-#=L}x5SZ&߈zaSRo=⮗ !3 '6}^6 fpb(^rK PDXA9:ftO&lmE'.ȁBl5'S^"͂TƑUKoZzQ+*4fM#b.,5̲i%WY0ѵ[viն=mn#X>^IΑ nFב\R$;gUR~*KcB#M[=ޟ.RMsٚkDhӬ)cmĹ+< + Q(O^q9?OYZ|y+bVӅ 2L6rsHr4,͛>fƮܲP T誵vb廍ȓVSWe\nu6R)[_KGKvݹ D׷\[0=dvǞ՞|ݩ$Ka]z=Ni fn&[p)/%lLm[WvΥv]p}\., =m kHXqxm=+N]4s[4 꾞u-$N֭%l:Fv`!r3 ur4ɋܴ/]a9?S~ÐW_{>{nW_Z n6>/5uWJ#dI?w7blj*8>ڶzAi(aF7Vcn[ŽqP4(S) jwztg$܉W.%Ox!R :>xPZ:5B$˜iZhg\AP9.#.6z>7X`B^E&Ka-oilpZǧhYZ1^QjAnoE8L+?8GA] hN fcFb)Bd2r Mt+U7|fy$ ̍]1ƶtӲ= }`64񂾂کH .AiQ8y񴫼խ&nJ. lq0^RvÓ4T?֝=C8/)k #\.dk{ zzߴzi;5:7+@ZOJ;v&)m-Lr1_QnFETUYxѸ/_b.3YerDOt=,` 3x7 4`V9oK~Q Mf૵F˨R%C)+F0ө R/V묽*ƑJM1x5%g@#;ⅵtm Q@lL싩51cbX|Hi/aI}xB8Ԩ&wQQv-&ƲX*qP^+rBDʘ\OhڛVU(-/6Ԣ8f mcط.* e:޻a-WkӁ1ޜ6POk a9f?IƵq]1r$_:e>Ӳvۖi9nepEI Zϴ ʈlP뛌u󧲜mcJaj[+Ng{?gF$* EDptl+:r%lac^V VV7,_gsZX1!1"aq t0m+#9 9eEOm2L;q`dЧ˙  c0HeVJgM2čTk˱E*ڶ@,ai;oEP,n')2΄mDsz@B?/l%UUQu@_!e%Eť;]3u#;m)Tm[ZtQF=5b ͇L8WpRquPT6̜,NeOE˨TU EwU[XK_ѳ2 ^t7MI%s:oB_H֎7GFlmVi^~V,%P *HibJ}K67kc b00 #1H@ѯaCI0nA|KC=>~y~Gm*ʔ>P$s675y452&PS!U]{+ZŠ8v4?xɷblg}մz#@.5+ $Z;٤r!_.EC1S[U;*k5\ƥJs |Oql.!D\j?=cIB33>=L:t$_ ,nAKR@Ojzf D1.W"[z¥Eր v Ve;l*ɜ锯ṃu\THtpbq:l yZkSPSHPh2@DF+FRvWjuhįk?tmo"U:t^+aSWb Ffm$-b1^ Iye~RՖ0_^kOĹ9m1|t[lN'lI% %f,}NyڟKuTpou }{%W`Z K.=)Ǟd9o\k,v=b F}j]bj#u 0EX$lH$z4gZ=E ViQ?ufZ^UF-sZiaBG~)07YXљ,$b`P ,aml+QcqӶLdMhm ^5~L싮 Ȅ[|ĘaI}xARS(#r=K5rɓp [-n+{. ,=ygG-iK뿈^rA']Q;+wMaеVFFV{u" R̄7  "RZ: o|]d-ka1`^k/ȋN=bUBg3N ܋mI&wBi˨JWYj)BzZg.>&\QΛZx[TT,!²{]tU@48#X,/ ~]5Ivf/gʬnkKVY JѺeD.I{ː3 bPeQܭe] VFa !q hvmK@, g7j M~[-zDuUns kWU9>vRKx+ X7U `B~#U{G[n1 ז ]bG|}wUE^[t]P?ڤo3Vfkշ׌Zg5KK61ă_ڡRs^AkQcYpnյEf2[W^(y%`E ״tV?It1bõm J\; kmvFy$bv"+[ƪhADMs=M 52a,K4UQ,|U"yN-,\]LXrʕ\Ut4(4RhF;]9`*poZx>-yUB~[\ݶ)3·#QxaKLP D%UnDY뇒UJKջz5 -H_Ӑj0g7-D NZ3^ D}8=k\1ձb7 в*65R֚*`+ 6qTc6F m ycT~}XwE0@C%t-2BM[@XW+,%V,ZW;,^:#YA u]-M>L4 -%R$;7$ӭ1fTLBXb Ykƍ$.\cA"<MP@Peڐ56f-Xɚ[Aאv(mUBkWي{mʾe>Y{r?}CzH5*%6ѴA81Wj3:רli-&b@!Йm2յ%QT :fi'1#;/iSϊ#M5z>wf$zoA}>w;KJHåcN5]\e:Tƣf=ThFHh׌_TW6[;m)#}3n{DgEcNk\ETMW*991ϚOf"XwJe3MB&djmTJuOǧZt_=ȺTjmThSG&݃:&&vlc&@|6ZK$T;<[fȾk1C^*Q+ Z[#OӯQ }~cWjWM[E[ kV+1'c!|+gk+eqvӄU9>vRKx+ X7U `B~#U{G[n1 זeB2KO8ER`V2)gժى̧\٤f1m*BD 7r[mBvU&25V7ؑ3ӵĖA5J6Ië ľ\ q.3*OWnmyz|.?zoQ@ hU Mu_Wkc!d~s-Qyk;T5 ]L&Z-3챯*:ƣ򲕴]tqU8` ly1\/gKBCgj8U2mmq ]O /d#\4Hn4?$TS2RU ns]qglCa')e`?e_YъTeRFs!st}[sh} /-{V@KO*=ׇ*E0η9c8}6D( 3p# D / Cm-M0ņ6e_{ϑ| -e#~__y?5=?55ޒ֔ ͩ\Cw1D6M)]Ua31FW `:Rt"ݎr_&-;ƺEQ'39>>L%]QÕ"D[P>א-cnָRۧN61R2iɎ(YmO@Ոnq~r޳e}ϯ0D F(W@;_mQYj%e9Ո9'?/)=rxT_.{|{>9}?I[]k҆V̡ҥՌQߕ[#mC1\5E՜m;j!/yƭUX>e!_"fʻ_lc"D$gJ njdED<\#[/bK+T/9;'_<GO_GO |:Zj% v 17Q%e^sFmkddQ霝5F0h-K ~1˼kUy_ڸY^>w/_xն<.3JIS£*mm*3 c֮^Z\,pVh4[V/w:gTl Vf?޽]~* y~rFi|~o?meZ:% e!)͸rQ}Ͼ0XcX0o"5P%lt[SMedO=|'lGpK CXבU'рj^p})^ KZtUT99b1 kZ5v ѱ$-fʦf({?7|uJGBȠ0KTc;1gP}yԍ]j5ХHPePˑu4˦ֈ=5Gcd[IԢ2]`xoT94+䲙0 PPDm.պS?^Z5'Mb\9W { PMZ &JlJvk`ig*PQ'.%\*1ʆqR"3&yH#kz~%[Uv(_yS޷`=sƨY8~[+&^v_G U@C%lT%~nćlQ Z4 ?R.t=:=SRmmx} &7koP(ڍ<=6R~ԳV`##X)X&}"#WCUzHaxqE^L!7 N *5UM gJx@^gb~~ZͶ淯CnmfKc5Lh\a;F!.b aǦ^JÆf,ʁ/fmMcK`\eՔ KMPm&DWM=ً$PP֟V9n›#7PhkTn&+QKLڐ!\7]2"(DkcFiwҷ\S'UăV#I}>*gL‹)v݃[Mc)\1 $6I]6 [j*efQׅa8F6ID#6JcZFՆCPVAd*&k+v;CrwjHkҖ^nzɎ`4 [8$;b~X7[L\Ii zqw[ti 45kөԟF[#$zMz]Dy}MSCҭ+`vԫ*ښjZNiN+Gf>8))JҺ|fƟ4 Qg1kӒ쮟>r/UEQR;ofH}1<^Σڋr7/FsRmhm/_y(!-_Vԫڵ .zbk(vψ+OLvA0VvLh[dꚻcy數$o X7 ؟jY BYٶS0Y)c5FaN8+g6U~! Y0}_= Lo%j!iq4X+P7IQi1;" s_6Z<+mk; P,DD1P%d'}ML +cښm/Hn "||;b;YŤ߂YحNEݩ", J[מ{~jU&9%lⶌFw6tޗI%^i'-EyF̖uש;bQBX.+g*\Y+cPի暰k'ϏAA,ӭ'kmI6^`۽VBs__}E2vek:kTַT.PXbOa3 #}]^ZzV [HCleOϊmHZ}KVmCz] Zm[jz=:\X@umJ!!U60Um/ ϝYSG:lv5~^56o!%hadJ{6`< M'I`h*sحvoP̀j?qΞ6ޢ%x` ȐoRFl[h Fe#ej U6mnut*S00Í`ٵQ`HC(v=mm1oԈ_,P6*#"~Y mk~xYbOe@[bli:31 ǮPQmvԧؚ:4"ArPu>c!3ki0!{ B)tyzdΊvzl&SՒȺdN4Fۣ+e]6ij /rL TPmBiԒ_xi,pǢQ!5F\]ʺuk]lrd͍]#YBZ[vMXaLaъն:z2r Zڶ6l!^|qTnF)b7@]d5!yGcU*B؂ eڣi ƫ l3R*6hZ;SGϚ 8+lH/V[\RE,kvMҲԵyݾ9" rhw#pwUuyRH'ϝDSSϿ/"b0؏ha֢Z}sW{.?#a[R-pj4f˪X\SusA3bOӛJڔX\%f l ZZ1 YQy ^zi"4$X0 *S^Pm.-L&kʍV+y\@@(uaTH"W: ZfqZ(ʫXV9eVCq˩JRui'}*Mhzs"~<϶-h# :X^uP,LywQ/\;l,9_DIZHC`5Uj {*$[ͥ ex269gvWyp7 3S2e!T&q_ThLzW^eī/+DȢv-dmfa9VU{#8-.fT-a~xX̂]*%6ǥGӍ;g>\m^o[(,(jCYEWzQlcޱJ6ӝ|Fz  0=GKx?0(2[ZqLr)o0zZMuP;~ K= o6~{ ILsQV/J-؀=a!SwEn:5}PRfR7Eb-fj0QW4`! 5x&Ṕڢ]KⲂ҉ߜTdin{5j[yN_qMo*t0lHrޕ?$YK?}5k12a6ܲ7ě> @ؗax ׼+!y|Bb0(IPx_w}xv}lOP=ZkjI$ nG"Ͼ|bS1:CE]KZƂȥqfڭMiחQaeXm63WTYukBސogt9Q+nUuXҝJ6Œ8jVS'Nnɗ{a^z`d"{RleTى3:PVA6:(&8Ն]hwdQ f*,,:@wUZ ;\,]@$PC.[͎tA:fK Xv5RD- FYݪ6jmQVʯ5-mFmC:|20QĈe%E*t^ɭ!MyA`/4%6I`.P 82kn*W[ ֐U=q;ZEcY9j/d &bR#SRB.YS%/Uae5:֕+mElvp *e15TTJm ]‹<*SՖ`]ToW}5"SAQE*KLa \; ple 2Ӯ+uIɩ 4a6>H )^g )f VTй(8`Y>k1 qf:8vlI)nQ[\B8mؙ4ĒzjT#֌Wmcz kp]=&hu'[jTր+)Ex J.JtK.%dª#"_umڋJ])ˈGXMU˭Sn ` B"5]X W zիrG0Ge}OXWyJYS2*_#騚f,,lYc@GvPX3g{sV^)&51`K72džoVLjG*@rL-< NO:[k,J++Ơe{%ë;8VsPi9mG7Tʳ6ﵢa\Q,ՒDc/rEvl7Xd|w<ڵk¾խh#TGe&o'nfćx/ ?)ҷփyhEyk*#vr %wf"p>e%Um88cEaᨏi)a:rԱUOb(#ъf{UAnnp Kۤ։P7i9+};+lPnR*dI_l11ک=(+%5ưc -DitM~yOVrQX>ݏQ ~lQ= |P` 7&vc6efc !Q,B8x͛^QMEC{/<90Lޜgj(lkbʊ- aZPȷHk/"UMY]Ʊ 0K$Rt14N6@(MU3q,KCKfqǰ5vSkVeBze,%8" ca+CUsP꺜`@ܨMbIHp,mմ_#Ƣ+tH - Hٌ_~Z-QL]}5JCf[eQ-MIyZ{bNdo7LD.L{E<ݎ;qԃ[B88jHPQ2VJ;}{kc*dzjEqIMg >s xa9 _h?Vz皮ד2W* :""y\,qB[E (Z||F@cNZ4N9kg_/t`%~J(;G2ٿ_7?cW}׭lOJ2*: X1cYhh\KPQ$I CD!VL:څ1< }[Fx.go~9lmðA/0pT<_Ztj'@r:)m$f~ILm/d7C|;Z[]Wc`<ۘ,BHdE;#D钹?`w-\R:X+6e*[Ұ,u 񆬴x^l{XnTRTڴhJKF[bx<__tc"-ۂZK t(nwK"蜳5;ay@Շ⾁M:v[V=)h*[9g+!&; (Z-[Bj|wrSn\i"6Bߞf:Ot㙛!VXmi&+]eإ"%T6М2^NÓKFH12^kŒ]=ʂ;mU;d`Y#Jي2G]$  N<&4GC-}ף_g" $v blg4`kF?;#uYFL"/8b{^/1B4#uA % jʎr Mbή0${0r=Rwc41tSҒ^-f[\k 0G:4KK@!:Ԁ86쬀S&$"Fk 슸dƾ Ӱm8'+:հEN &Ŗ|#a ژ#9!.Wbozf kf(hO}?b_mL߈m@ Vp#wQ'0hi,/ikOmP;tDsHj5Pz5hbV3RI^Gƺ)h؋Zj_K5ŏdX1GUUWPGn^cA+~qʒ^ccZ.m+:YG˥j[T_yFWR6PZ<[nO:\R -nv,hv%=Thv0=Kr#!v򦢖.JYҷQO5Z7eJ0ztxVH-B5ʖ1bN߬#M% fuh5rnR~dKUak j9}?t&5-a .)FL#Y?޲jq1xY bUsaҶVmĴ% P/SFe *wzUBޛ V}G.g!3s 61{ΛhӨ17In9zkUUlh/TfL0xa*CZȦF`o1B{3YkEZi@ Xzk"%R 2"aji Q#aO8q'pl#-#^A싼o *Mo粪\~Ќqn(x蟎K;[W 1U.cUOFAQ-[_^0zIZ__JIEMǘW悥dmʲ6nѷjt5ՕlD)C[b À6FkRVնX-m&d)O죓}*ibH"v&UEy'I <"S2R1 &NqL̏Us*ޥAU2(ң)cNUW1 gAꭄͯBʆs~ΩsV&gsVk ҅3c`3aHH=0Ǽ ˻0Š5SIb6+neꪸvNQ#gGGAֺIԇ۳`|RD=g_Xw<3ф`WG5\e$ۍX#x 1VvΆ6 LTppR3kmJ~&A heADm|~060@vca@,jWTe{ײQEAlkamO1|K)(ܦE0[K[!αP>~ ط]Y~@0C7Q Q=?*njTOVp'+J6Jq,K5yEcYŃ  v em)\{s7[ [UC;&J?iYÝC:U -6.,%b-&dGpRL X-#kK99L sMdaP(-* Nl- ˺ X4>ܪͧFZb_d~Yc{+rq9,BҒ# uy$l  B*:KAfinzF{MKHzݶֹU'2kCPݸk̇Z9L Q6Տ $$SoP$j7kcQ![|M1@d Ww@lε",hMB*u+tK:_T;o2!aWj!ڑn F=[[W#(S^ӭkLmXjXB PSJvhbsfeoOO 󎲁Ǧe;oTS\*09x *$Rt14N6@(MU3q,K3f_8ɥg_-BQ!wOlhlfM&ǵUOZ6O|[dh9CyhSB!Ԇ`wʷ^he-IHɭyWKJ$eEqvHeڵ-ũV;=$uTQZ;kZ219wa(-8_GHߡ+qt\o|6(Iu8KhH&CvӰEFwP4(L"zs TsO])d+sWq5e써Z8PA8Pm8̿Wr~l%A )ִiYdAF#.uhb I%Po:m)p4`agUV0TBU]__<|z_^_}lU5d(p΂XC9Ō3(0pTV#2'ᄐ]i޷}yQٝ`d(߃|P5`NY3,s/ k??O>Qn[CoM y+lUȼ"|[/B{~v.Cӯmޚ~.NJ!.UB]N&}y2X7='L+~[sMY>^ܞ|ϸAyg Q~c< < &fP/rhL,Q83|h e7+[T`mZQJxkk$rKrMQVE[* Vl霆4kC0yNFYRj{/h2;yr"W GqPjdjjՃ-\ؘh)!^jC9c ,[aG2pŲ#1H -K (RXxĻ$QmU)Wk #"섥 ۘ80ܵ1QF`] FEVƪZTc]L+K!n#c<|l- 0m{-G88;C\V} {[Ϋ*x|#JξEXvComziIU:e$8_|CQcm0щx1!ANZﴒ& d5RcmW)t\3>0=cTRv΂FIDm cm*1"W8p3x[1R-J1.[lJUȻ!)Bv9>_a"RC =w}vG\qK![صg֯vWL~@gpE%)C[: 'h {mml8p%gum;a] [p,bCJ"N*>+6ңlʆ;/oa۴vJ-eq 9 9+ESPvq-;S<~/մuIt-nf䲇 (8ϫJ*S/?c{?O~^/8/~/?|?Q 8!(!}^׭ZW-x}z<]~kdb-Re”0-i6 9lǝMVMR3:c ώ}?`d^!_Q"5qFoʭQsg bX~i[NMj3CwN.sLE55QUG(3iR]R]q$t^AZLLm;Fsg,09Ss֗x&t[(k*-M}VN})c1c&صl!;a Pa&RQFa\#Km^Zf 0o!e~h8/{Y0[E6JΨg;Q|=Y=yp,8Dƣ\5`{N!* }DUSlceKDqV%gk3kPu;gzZW^0UW< GH& - gi Nѯ o7nɻ _Nmo :9Ι5Dԟ=ןIP.G*>TP*kF9ov :Z]yݛhBsr9FTOA^YUVC|#Xnb6 j_ǯ([ 4|P H^#5qTfVl[ӦFVjhbV括;Qp.[.kZmOLBA_:jb CW+¤?O{9_~[O;_~/oYNꕫ$ ]j[t`SpRJߜQwyٰbEWjiKRq!Ba$EKmG fLm^sՑ7VkΡݲ,>uBd~@?S5ZXYcW[u9=a}ѯFD:9 eQ쭆#^kIvzaSs[]n)Luko"2ڳ?RQa{_#ؔ=[WZ -Dxp:o.7ٵeD+ ȸ,f몇'Ra~ecN'r3da6CN ž.C&oaku \Ѿ[E‚=9?}e}Z3\#zܡJ=PÖ,W~OĦAncUZ<Ƙm8l2bҞ P2Q^˄USҙ.?BӶKk StYTUN?tԬCHXw rv0_n'.ȓc.G  w*)HO/ucrRIenH-Ə6S{jtw 2Tgʶ~ ZS(5hoaHZ`1ȿkRMSqe=]5LREFn($kn>oexqh/0݇C?=t>2mUʍfćS5ėj,-W! au;-Hب#dpBګ֫e/3u^~H HH =5œ1{6řdAVs_}uHkOD1s/<@j f*v"JS/ Q D vBD{*pK]@F:,7b&C zˆx%M5HU<=-|'.! <2*d21+w /x?Tno.Z򄆃a(Qo&DzlgIuQF+Y V|ucHqvr56QoXw .*~[ gICI&2ɘff5 eq||GlW Փ/mLM$SZ\viU - <*b-0$Yp` 0MFĂ q̊|s1ͱ-jN 눶AڴnmA#9%ϓ `WoUMTAS_*,ꂴFC&mjp8B*Q@@J.&S em#o#Y O&+L @,Z87\D\ܹ̬Uz-u U&b2v29Tج3_SbJ:b(D_Ʋ&klNrF94)#'~-U"Gu)a}"aWtJWGolmC: N"8ԋ{8m)6w*L ye@knhK"k5AjaAK!a\{:"R~_M@$@l]M&mWH賩bq({@M:-e`͐(*7iZ0D cш[BEޭ?6?3,Zɩٝ!͚$OE%V!' -T\mm_4SvU7cn(deR7jZe/1!k ztjtOYOПeЭ PģS۪ZdkN$G$g*d7 #m:>ܣ96ͥ h`(ra DQf^CP#+z#GER-Wu34t]8[\e_8e|F`~UHtAzDRgIUt'k"8~]V.KV{* \a a:J xC)]ބEU|!FWt |P &Q" JQb,2.AӀPvh5P•u8ƣQ(\{p(O*Iݠ"YDauݩVj A` !R \FScݨt:B7)d#XVRkO* Ӟ^Z5}F- 2_@t@ "VDER (ԥ-ջ:*X+8I>JSdkXPuH!JIL*d)5FpF65A/2ƫսIAZF'ARI+KTL; a#ޔ$&q7b@2HSFt6'2z>oXmVw&kofa{XT7w *d)AJȼ)t~f'I>G(,&,,$YT { /O gOiBs'Wjޤv9 RG4 ND,*(6LiY906 g5`O ..a$B鶴wQû1G?V(FU EVy B  1G?V!FH|#5}F^]re4QK)aV3xgJ2u~efQbXLX:4AW"=|x x5r:,1B#.Cj7ٶ7[M:`Ea1rbEl3 Ue\N4NªPYqGM?\}[帲 -]X#it{lNr\ PB N7Ѷc,z,[8|>x C!DXv "((вQJ6M<20jy7j -"HX%#dƳF|UЅC&j1ppG!b ׺*vHo GcL|vUdБj^pOd@$H TMvj&wI2:-63(v.465`*If>!s? nVVGXnR:پh97\'g['zv@\Kkpm<Ў&V[*0I q7<lDB*H>)3PPs Iޙ$ }/DJPl@%Z ,ELUdfUhQ)CPZ}F_CѫW"TA+RӲ_A \X%-Fkp .7;oc{A!h#]j%> k{Fܐji$>;@ "?]. Ʒ>cOEŒx6pV.% &7sl}L9Yk֩E. P@aRKQA, ϙ"1'n >"e sF:}tzԘJDխKF8p[2sjԴA yü$lv mAZ,ʰΜ)/:'U t EE ! +` xE#h,"q é-/R'' Vx%u* peM Q4BZmP{BIX(oQpʸ[<8tn-#VtԎ4[F F)PC"z@!` 8CuVj` -~{|~cj@ RJAtHYS>cz̤t'P+jBqu4p1FҤ؛rz /u@fjʩ>xV )TjJ-<%DZH<=S ng"YHi )?RpZ^*U O^} G-g2%l~;r:ZGZY7[*2\ijgh_:.^bY:vZ|d鯆NK}F u9[3,X><X-"igxΨzxg7euzgPϩAAo'iM"cx>;zJvu4+(}-E*PX%jzst!~ҢB &ɗ lgeɣ !k5h.&R CڋL î * 9;*QDybũ1MtG܁f AA j8O30B)yTdb^C83X^qN·|C`}KjGİ^@NLBE&%BJ&t"2eDȰDQ (0_K| *F/pPPN`Ǝ!Az^)PDH\W+`jgF~mт HU3D!/LE1}Bt %$Ztů 5<}# {)CsMDe+$EvMg!*dA[sLUAFΚњ,0z@і=%B 8 ,\Ne }P"̗'&{qe7 ^ _*ޤ_5x?K ЃdNJir)WjޤUyjpب}Z>YpPw,QH׹#) (;(p U./P /4X_e} ]U_ :VV%4NBª 0JUթ4Ο! X@kī5GT+"$^0ANr9fwI ~zh5UTlz]Rn*wVJW-tEy!)eeLB,F)pMR>g)۷6|Ju(@ $?!ZE%^RBPD"V4S~Pm #RoyUp7 1%)TI*J/)_ۂSpWдjҿ P Ze6!PaAm%L0-D0D`X@@ $Em DQELi @0QA i2H@%4 e%0A!XdD iB` (lh4m0`A4%m6al@mLH-0lM@Y a!Il )!1AQaPq0 `?w!ND*AzL$#ay|Id_PJQdBmBE ?/;|wD9繈ꧯ۷KG[} Ö`2ufNB20 黛d1uqcߌn qYcZg!1pZga1tE=ZF0`Ol!A0 =\)l~Ix?Qvi1ro(d墴#4pQ颠bxI (v-shhCmǚ {ƩiDZ"tiҟ_jbDsU H*+JAB](ʜKmIDVN3&Ah\ zmԟ"P>Nb:'SIXH E!NEb DTQ|P 2f:D <A*ZPz-"4#<9ià1quR7%(PP`7ـEj y-.&+HuJN6r!uv /ؕ%yWP` PmW@\%` $6QMzH;pT yD簃2T Pyǯ (FXJ\ICcT@XZr?!eXH5b" ib [[Bwӻe wW$`LZ`IIy=9$@2kRO $ `cڻ3!E (cڻs%(>ң0`$`dT)h/k MA VnH`ca JWKА #`& Bt9 A"˗| D)jK":9Qd@zǠ ӛF(-Za@ 0/b $ebH9(3=/%'?sݺotK[[Js?MbTA]aMd$  %$j4M>ң0zzY e$(cڻs%(| zEoQـ.2FJ@﹟8 "k Y[fDMyUE]0CQSb.7LƢ/<_!U$8 $(d3>%P9,n⷇Poμ۹ WQUPWq̊6JO&^dG:<:؁",JF,w-}~Kf-d:,IhsNsî hf qx <4Z{kC>Lj>1YKɘk^*=KeJXU+jP }^ Q.Ax@Pgx-M8eJHxxatUu{ M≤Tpdl| ߴ H EwNt=I>UYUNOp?-=/ZYSeeSacm0* /N@0-㻌JNuM$+r;>A]?mcvzy%ּ9ꖋL]7Sh}c*Shqc]6հsU&vc?ptrVHu\= 15RȝX8!7_$48p̨4r{A|lIz_@/mDPaDdABaDҊrU,=Ŭ%qZ@ / PɌd?“,o9#A*ILۢc yXB#/"0*dl'L>R]dLh hb [pN@6Zn1H4QXƥ_UrBXnX 9Lc1DU9&D};v$,F4`0/)&f0$)A,=Bujkda"(ҨӲCe, %_4`*äSpH&l)bR"%"'0 A@N 0Tz9:1 X KnIPUV!}&mhEI:8C:; Aˢix!(` -&+у(b'"MdXw$+tJ&e)dCo'gp𐵝&UIsу *-D0Bj fTm򨈈ITzFK|\_%Mg/iQs'r0yDnp~ FK"ިKmtU8/ϓ@9{F)ăbқR PcAHp53 7O T!< |?WT=qi7b@P"&U4N7$ J8Q@&OYp2 YI$<$|bB9zڈa@c==ⷓڶRTDDS$X"vO8VEP*ޱЎH(& "ʄ$(; (I~#N5|ٸEJr`HP@ZūQjerJ@#"z@cχ q^i*4[PI MEF2}- i,TKcҊ\JC"~"K,J(] ! j·~n+!dw3RVZ=yf>RI'7^6MTFK(H@ei:0_fEBDlɄHc: U'4hUU7SK@_0Nq) <* QQMU$n>p;'i$5Ct$9f# >WAl6K"By"rhw ߆EM8s:iJp*u''DL)k%:Q>w.Z-EOD--$l(t6~*`C*E"Z(AI#ElJ]Q[؜f؄XVT+I$c2D@.L2feD65KȪ@PA@݊2*F[B7l"Gȟؙ52՘ <yt"ث (bNw@GR":+@[%"Jċ AbX"W2{vW]O*B\LJo*T1*PC)a:0#7UHHfEul"U=@Ї)K\tz^qĚM<@" .4P 0!ϺItq.T*n0cyų,0FuÑ }8?KLHaKɥ3IcR,Nr =}pR꿥R//9,@s@b$iLbP\(2ͣ: = }I~DWQCd*DUuyLEdBNL%3/RMCx@@@~DWQCާV? _tM`dX'"!y%1`~9S _Eԣ㆕Tn B~KdPA@0* oT )^{y h nxp&&A)u_{}'Yd^(I`(YJN_Y}%p5T)Ouv;p%,#$O$DkA4h]!S"! fotl;õL?]ɐ+!is|>k4Xp7FpLJi߄ P=06d{ǀ<14CQNc؇ C!Ql)1ztWRgtbEP2́/~[uY|z)SrFJUMrtA;O;x|jZ 0|'yllXD +@1fxY%d=EҜ1iF.9( Z_[EA5YX"|:"#!HWrLt#F %;O;z}I<le_V_WC& "("I?n©s!E PJh#( !1AP0Qaqp?-˜iPtU4KMhCi Q~f3N;Ɛ(]x j6}~Q<+  (#x3%޵(IJ O}CGtu[A$.2U7]`Pw)hs葱z~eJ`3lR WW:xá14>9?v,YG;CgMՇIǻI&M9uDfu[[Y#D-:?ֵOl\d-S rz@}&fOޞs]$_u˺$mL؟*dG\Ō> h2/ guęua2vQ`4%z_T %>@iARa/'rqBZ-X]yք#їG)Ǯ0IPcmu=: fBYSmqYi ڝ X7TǪoS}Ww2gAC1㹀Jt2}!e_\v6*T@^Ql'l pTyV)õ"ر,HF`Hhj 5ϒl+U1 $"?:0] */{cqOK`IWK}W7_&bM~fKn&˫Z"JgE R5(ۗisv>_NHdQkc&! \&M~'v}Ejtaˀ$FʷGst=z.~ajBUYyB&iZtzu7{\ՠLЈ 4 !ִ!SlSzPVLW$Ë*eTYSD* o,I|6lƂ "8k*W9yg@t3Z-%K9c#63DΆb_}AKTQ34$- 6?NEL!LoZNb+taː'g^Ю&YfE[`LuPrǓ YDf»Boh?fG~iryȢw(f[RD+R;ꇁ1"#i}M+]EE s6wd0VB|mk $/xlOtFoj"J1d4'Ҩb S C^촗kXuUur)o=rHk8ěIn C^촏ʧeBzp(7֜Ofi]2˒O_5$쭏}_ɻ P\i#lD 7lDRD+J]89/i13[`.}N3lyŸo~$:{:/RD*$*V9#E\gHƆT(7ܽ -{9Ws 7I V 6lO-ߖ,;0) !ȺxU,&bSIh$P8Y7RmUV> (FU1#@ V\M-:=,Zr7mz!bINg jO(m)^%E2tZsd$=XG޷B \M+؉.k^?{u%HiXc쒝e+7.'!Ush|:BzN®cc Ok߹1vuNъz9%͊+U1 BmF{6O^pӫG &H[Kj"wu@϶_j̩s~!I N|,0wӦ HV^8> E͊+Uw#Gqs7GF1va6ǒwwOV"?%gV<=/z7wBؕQEY8ͥ $`olj9EJPhg2o:kN'n34A$TPWՊy#.l`:*rU C$Ň#٨ĵ&Y~kHy,)c4>QS0 w=2lcZlh0Py3y[̋xjsLU a3青PlZ1Ⲅ&2x zz^3k[N)] b0s: %P4wCB U>f <3OEx\]eq7qK\^}`?pdӋۻI ^w>CՈ,[eTRIT21 W,hbZ}y?/ 9w,Zw c~ێέ2lZ"_ Cj*> P)()P!"SW;P D0cg&ibFO} IyMn܉(2]E&]f1UYj",5<ÄR7Ppv 0P&C" ?w#.S?~X/c<-4lj8(&vLUx#;ј٪LYmqVGVčM1BF=`Y!k mtFyݯoUag;!u ZId>gu`FY'&.3 BHglf$O/i%y`; ANKKCpQaH(_m[?yFb{pg~\%HdDd؛isr>2 FqH)ܟ1`;n&4dbHNWu7E*[턩t¤FFu(q՛FK V%_ 2m0ngaj/j`ehdW4!Z!5QZsdfD?,\_dm\dݼuR x|W@`wW*_m#zߺ GdY~Oq"~QfJC>hUdL,l/bgh0Ám\V h%1O) " kl$'>S~B*_ )>m-:=Vjmrad%2/ j[ǎ\!DUgf~DXpp^~%FR ӱl͆d3=CoS,-bsOaxs,ixe]#RJ"^/-0ͲӨ:ɋ[ZLfGfH^wo?ۄ 7 #h1Xp7[xYȀ^dGv+XTZR?`ե*GdM7Ȱv;7$mȥYw-١6wb~p5CDi!\I>o,&uo'҄K{63lcQ߲b; $T/*[KkAKU\Pir[Hn,+{r%ӜsTNN̢/<"^{i-{rWd`TTLj_ (OYM87lD 7lD3[`/<0VW]#l+lDqO"nFc}b;roqmѬci??1YLN5m"XDdpAs*<Ubt^oqmLhO*[a B|m pIkM'7G==ͪ $^p濢yE]HT1S/hP d0c,>91vD㡩п߈tZp)d!pߴXwfiX5H; :V3b--PL0_0I"ӿ]PzZh3g9]BhDIJ?ҟ/sU7 Ozz"+@LhI`IFmݟ_1SzӶ،TA͕47u+>"3tyiV ֒QvT,Vfg}<[d[aL4FIخ#2nH-1@>:akt4ZG&_/Q\$N&<(;j݈eM˅v ԸW`Mƌr\YX-㽭yšd}'*Gr/FH~vojNn34ğ& !01@QAP`apq?mx&oNk$tzG{TuO'@ebHi3@]Pw Iy];ibr^.{vX*nsCM"*VgT=.N X]h+굯\hܔiLړ9Vj&1Od(G _9kH*~-EP]C;p,Pݑ;p,Pݑʔ*O61D1 pbi*+bk&]ā!hd FAvι@ԕwfC (:-&y̞"#HvzKGBh1#rszn&Da27p6$Wiԍi(jĉ(NT3E]$rbxE(HՍ/s\f.fr`Yw?t+V?f긵:3(4Vh6ǣ{nYIԴMQv`ςZ=JZR=30D]s,iڀ𝶦 2]@rƱD z9f8\mAd=sDGq+zB dE62eeGK_M_;YT JfrR8]8m\/;b4`HJ& Im)2@ʜ m [,_pqM':}wOn87ɏX:}F8ZI0@o+(.ruX6Jr"|PfG !_>-71́|9g0a$rLq|UJ$gcFQp><ם+8H"inb 23)'P FAZH` Knf;zMi{nYIԴk(̸b#S^X^]"`]-VQKe=l;--z/Kt{?NdMs[D/֜g`mk):@ȐznDtg BؕV4 ;UF)$+W'>!AP+sw~ƏrDѪM^كr  O@|ygћPk򬋲ɱ}掋"oT qEh#!FW*? .v]챁';4'xDlɀ :Y[I@NDjUXѫm7 S1*XDu9j+{`$P{t1uaHۀ|Gjq6EƢ֡ Ҭ%2Jh`y`91" X _#O2(*+~yb;mkxW _>"Cs _WU}\%T4d+A)QPŧt;M`3;H}Pơ5U-b Yu%R<71(@_}: J֍tn/q_,$v1OUu.߷z'o%1uaW̿Rȸ EBYR`pEIE ?K )fӛ|CV4."jwOk`s(muOz*J.7H.b").'}wK| Fl/²u{Y*t?Yd8b 2wբ?-[e\/s: Э<aVsa9)! =~qEW1) "rۊL?-X h?sl XLWT="oǬBv@d>>`Yg=~qE~VZosY4f_hڇ yL̃3t(.ԅX׹*[⫶4PPj3 >RGr8AId u:FWԬ*6U<-oq7ᨳ;GcصU'bi<2?]zkp{;k`$ORwuL-@U묡k/ѫ`(hdx 'Pw kԑ} )&ڛ*j|qo%cr^MYSF=2#0Yئ qMj؜cW!fX;Ije P;;x5;[jZHv߾3i1eB:2u n'~@- +z@ά)IM)DbAZ)vBWT*ȳK]{Т7YC < )]l*U pC{v7*( ƎO&&}_$K`TƄq'ya.X7w-qDl 2m) E=WHCxMDPjT[S7~ ;%(6 G&L"h} 1+"jS5%n~a=ek'\$U r4#PdBa"Sh)y F&3{>#s GHfk&2<1uZXs;aH&3"qiߠx6NDZcnr؈x/u*Hdj&cFxOA]I};Q٣vCn8@Ӽrx83dd͔^zc 4HdsΗ4 [A :B8FL|L*S-ثm%_zfl3hDZDTo0 wI;2u.NTEVR rpw-HC2;t j?fo-@p>Yː$W@G(]j?u`L%V<Tծ*k~EDjg(xn-a]"{|K✁ mmqR=E>#I9&{MSϯCV4 `8k0DNj{$$5D- >qZ8xܘ=EhKg@JQ qG~`8q@lAK= Bȸ`/Apt2quiç׎;?;)o̹M=#'Gg=ʶUl_AakdkG$fw01[0T" AT(q65Uj}3mgnZ |d,c=l%wk٪ 8;&JN>\׳(k\ r<0T={0~JG8_]; ]d>wDAZ8AH6(-&vB oWeJ`W#@tPꦕ׿Gt`1|呏>Pp0-pէ@ DЃt _ϐ@jjQm=J0;T.^F|gw9pjeHQ]Y]pÚixRE%-߷z'o%s]C@tgLҠhDD߷ߵ<6=kT%UkT%U$KC Z UJ~D-LDfMn_\gtw |n32|3JpE[qaឌ Oow&`;mٳ=|. A`Uv&tlP=3{އgYp%֦Hf|Srhno.긲fp[3#'-]'(7⍍,TE^d71iMF,^poQÅ m`%~d_TS JDFn y(ҙ'  ުK!F>pph{-Nl$9soL#x4VJ<Gy ;&BY{l48a;9€mxixTVrzn<$S])PCLbYlU>-5S8+[3lS1*XALīi``\+`O,lBc+EO ^KYA\colorize-0.64/doc/screenshots/colorize/colorize5.jpg000066400000000000000000002707051331025647100226560ustar00rootroot00000000000000JFIFHHCC  )tb:sx17]>+ TH`G̀4|y0#ב[>H Hy}/g:7-czs1 hWy-y hጰ XH yXVygX]NikO؀*]?t [oRg侳a\O%Lnvv=K[ `!YU?֥q4IzSfcߨ0|e|I1O/۟zpleCLnvצuYlf .E厧c\zeϦ\ɱfu&̓^j>Xv=r6-MeWߟ[`6e7*-kS11f7VUV;42|ez[lbm-1|eu *] 7YdfdŸ53<4-eC1O1&aF2tINL=.N#UR6@*٠כ6tC3Kf3 /y̓ՕQL,ʩ>2)e(YU zh[**fsg^iohYV, ~X^j1 f3rtnlYUQ6!nyZCl_1u;]bN62ff;7YK{E EV֥>aO偯͛z5@f6ayfl}M!YUz5Ϧ\M0Իml͝U ]\BQn_LfK@:@hV2,56yomYtOfsi3KmWu&7;k;Y!aedu =uueW2t.ь,_ṅXv=o#:, ~Zcsg{vwrtsFAfcŸN9]ՕU33s0 4۷ݚ- F,~Z`6l~]-""+›'W_la囬ͥK{Nf3BQu }EsgT $/5\/3׉3fc:,f}5K{L&=Ÿ)›՝_2b3MugPdYU'WѥueVFrtAGxfL{?Wɯ*3oluKϦ\n^g`ey_lC3Qռ:_)FP|efb)2wx6wZhz$vuǣښ} ǐ})VLsϙU/t%Xy0n<η+!tEqAj<87[|ߘߠ1P} ) P73@`HTZ(Y9RΥ7PWq0|a҉צh~K2-zF${++ A5cx8 dJGSi[B:2ՙxpԵbZ8HNQ/VEXժ|mEt=8$z* l^}Xs[B0K:az:w12i0/'SeX0bN8b*6 \û.{ 0b 3:]]kdc_M>ljgsOf96)S_xmFX 9;,Sm,vY\|UvcZاc݈s<9NcJdʻ9#sR |K'3b7lR읝f2X ̯ӕm+%;t'<߲Q.2+rwvEn na&>gf-~ӓ+%"mޢQ!K"pb9s׬WV0֭D9;@<@n>,USLMbγe}ex( 6ۃRs&ʃ`4*j?,'uztu_*XT,}:jg֭DYGL~Ȏ F8d|i}z'7^4XI'M_F84xբHO'XZRmפ1Xɛ15l<#1z+ 멸_֊, 2+?8UmY4h(:52{RRͷ3,Zw-T( ,t.Z`5`&uJı|2ƈ;Jmt2{dۛgM0c9VLdth`v{*wn)rn^&S o^R m2 DTꉮ){E a x v[iP3nE`ūT^?^DcB#5zY0Y|"i$=> (H*uDL*皦F^D*lx8Xo5\XU֥4fq`lfbTm&bb (2..iЭh CR[%0 !ȝ`n1S`E6Un`YwvQn`_&Sv gծUD(8GT8zwV";za px2 (vaUO@^BW?RuA9Q'MO\k_,% MJ" ,>w">fJi3mqOvQxgMvq1=v? ~z'vaIOOY?=dOY?=dOY?+!rǬ!>G_Rъ(OJrQdD\(aᗉTDcҒ !"oXM{=XD E.Vytk G q@[kl_Gz$A^!NhkL : &(l!E+2BZG#k `dA9uղW$CƸ-?0{3U њ"00 Z\\aœ%FʦN{^ EB`HjƸ->Xƽ3C/kuyֹZkuyֹZkuyֹZkuyֹZXsε:<\sε:<\sε̻,u&+6JrnHfޭn+WȮpcmS:< PsYP,0*L8fE84HpIBG+_%sh*Ƅrўw=bLmISY/ak oZǁkσSDZ:EN4.ĭ(HAUmDu7\Cޭ,HtnMSmQWܛ*vϜ8YmHte6{n6r/YfZաwI'CTglF !"#12AS$3QTBRq4CPa 0bdt%cD`?JjڙؤR$ykHnY~ZjA"3F*0[_w~]TH1$( }iSA5RR,b-b<%"Xg!ErK,)>4#cf#bKpԕIT/k?t2/b[7}roEphɚLH˭rs >?M>]޼GG.$¢AޤW1d2f&Z}zaZW(e$~͸0N3 1P#|ld oF 'hG(Y&>h"IV\Xda M㎊"%N@+.@6AI*~-oCOEU*E9U )C ls}+(h}1Ek.\yʲLjn3v-LvT{B7r* уSmt5*e< k2Ւլ+hUv&eg K$RKD_Ŧꤒ1WDrfxuU,7Cr[==<2U2Gf)QTTNiAs^cH5eC< 5[nw> IP;=fՑH{yX)^T㬤?G)>O:OStT㬤?G)>O:OStT㬤?G)>O:OStT㬤?G)>O:OStT㬤?G)>O:OStT㬤?G)>O:OStT㬤?G)>O:OStT㬤?G)>O:OStT㬤?G)>O:OStTUS1 0314dv$A>am @'X{?i YcuPö6Ⱥ 2<.jW'I)тݯjdv b$Q{l#i{ )K7{C)ѵZ$q.^6cC,1BԴIQ=EQFg:{O-e~f%VVM1u0A$Y\xO5uR R˚rPw\qA }AiU8ijsXݳCp%Lt5%X2lR #D+HzN$k0VX}i<䬊,1Dag`!P$i8]!ٖxb̓u$E ɛ"]^ b7*.ȊBg5&$H@ǨGDL031e)/(c[O,)4STemPc@lHkB3x8YVEfV5{H@B2̉.`,.uB1BqF"i"eWxMFg76vVM8 4NXU=2天p {,MV7¡ q-8a, +.*–CKP4Ke&FH&NfeYP-0"@If݁6s"~$U(̥G`%,}[LE2d +Ӫ04^ry,&HJҍ9\<Nuj#b'LJyW1C!1%8E2-(dȸ*@-t&Z$*묆X-#K5+(iKy6\6qMdĄ(n(JJ RYzc)]+!lI(#JEFo,tgB95XaWHBB؟{N8J JF0"k(-p͛QPDU.CbIZpy <8*X9S-z)!69,QL$LGMOPfUM ٚc0YmMyDȀG%fG&EQ &N_&,:L4,i362KlN 2fC]n,lS$ eT%";9oVc;4)CDTR5e&Nle4i15?\ݨ*#)CʱȘ\}|bg!CE"sdؐTɲɃ\1t7TԘQGՒ@ ],VE܅\v+dV" .R"ƒC}Xi0|H#Vc'G<ʓس)rf]fV7QrAk($3UUs^] m4|,Q٣)`9%^MٖVZD(@ u NLm;*]wYKܚES:#Rh2Ȟ-CNZC.Im,Ѯ]$.M*II Gq=]! m %UV@MXBKyދpĂAUryZ.qjTu9J2 0!Yٲ5$өCSFdy.<2 YH lAx\`.]YƤ#ZkV*/ӏ,ր`1@Jr6ֲ̌ON Mb=pE)zrP(!E'ohFɗC܅[~JcX_$}}Z!ÁIBTE#Je%lA䄌'TN " +*y]QgeرPOҤkȒ*sy<4`ҠvU( 5ˊ3\`NHћXXWVdyY\aܠ1iηy񌪺EƲW$m5a7]&VX` YW%yLKJ kԈlWI L;ɚ("0٘_I_3y6IU3YfJ"-qr2. [)".s 5]B҇,62NOp.:n\F,u;x˘R'1X B)% 3wZ&WvE(RlϊX1]Z ,6I9JTLٰP]|45.Bv]s8'#TD` ne29!R3YbegF*5y2!e!AK\ ZgASwH`.cp $,e eVBC:& R$CHl2ěYtpXՅy%D%G%N2ܖ3GenǮE\ EjJK{&0e_$ȏS:! I/%82j\6UkbQ(V,NizzȒgt7&Մ!_M/*XUe9S<$U"%ɉS*3TPH~Q-ɨ: e,֬]\bv щ>\ōcjwl/}jdPٟpc:A23)Ym E\WP$ykHmk2RdWF(Pe)\ƖҴ{2K*|׫D#x(8*_x%]PWws#"AX+\AqqʑU.5OPW" 2p2&ŭ_r: %@Itر(V;v f-EJܰ7aŻKdkȱeu$pZҢr/az#V4FZԖ 8˦#rX]'^ρyrqXąf'/g1Qj '0lيkz>oۍ̜]fc=C7kT6d)xǒ;S]wTԋ;_Z6g\,~gήLo`kj$u$[hĚuBibsKKY< H9e,Dh[bd`#V*g^={dWmTq*-EU5H10单jDUW,3 V1'4WGlf^̕FD$Z8e\RE]%]*'"*]5iJda|!,lP-$2ei9U6Dr(Xx&e#%C,-y(D)-RHi Lm%1$)Q3f@wpY\W8Թ w[nq$1e̡"u,U՝gPCםoJ$pD]XSi VqbFf%M&5$w$S9 [_V8fZ޷)VRC"J1sp 3S0c` i[gmb-睧{c*h&WNPAUF'EfԼWJ}7\Yccgu:ND)x@M6c^JpBEAyU$ztDA&[91aU:ˊ"zh@NJ9aVj.nX8]36iȥdqX|xehdFض4rՄ!ńٕBvQn}N*rpDK #Zo-APg'Pb1qӺYk͍XŢY <_!3*rUVe7 ,J*Zhii}^6bѡkiP2wsўр,`Q-݋7r4BX(HRhɅ@ 9X%:+:pB.<&hV|9LGs()#mn/t`:NG wS$1N O}ͨ걤D1dU/b=AvU20 b}^߬kG-gkeq)4+d1ta{#F66lXH`īҵ*XTIah%GBbY1IVB":qb \;bX ', reqQ&$Vk {V7*E{`%UR b**'o(s)RP6WxaF2BlQjUyTmDD1ôYtv37}$dUdkX+!"XV(cM6-k9y[k\zdI%+,+k[ݥ{|,v= +L08t2:]͎o<;ݭ{QU{F2vuJ3ec}Y*EC܅ R,(m6Kg^tP# AG&f\ y~iZ|^gH bP5|;%>q#m~y2R͎#YUSR3 PWbCD  1Ŗ(f9HE( #a@2W&] .;M#ҳH*QɮU[H&FafHbF2.. m7X؛)FPnv 'b2^ 5;,PDdP #TI]} zQ*rcSOL !@ ,uiehcPUc9 wS6A!i" Ib! e/bfzXBhpWklRaFC); C39ErA IqèN+XE|u$H/k׈2 TQfBHlhkRQ`OvES6lc ۑxgrdcؑ )zXEZEe#bBXGf!WbViuqiV6K{ $ݠt>wHR9`-\ѣ](&BdqoqӠb$dcb|1d/]= G!N5[Cs :a$&I;{KYA*:eQ= 1^a/`$ 88yœ@|ąOLi[Q I*<~qp۵}Ţ4ehC\ bulc\Ζ_gaZO,ANfe/HY1B]YI66~XWfFYݼT.R$R[U$Yh>RLFP 6 7.TT6#xiW@@b]2eEkQZ9u84lV.#TN`6 =Ld8M>ٱ=1jmז(,2 #mAjLF uDf\uSby <~X1(>Y*ѣGXie#H.l.l̀>jZqi Zr0 Kh榏g\D6\)=4%NEԪOlPMCL-VX:$yZ͂kGO-:ꝳ"O#dtĠ~Odd<0]L$:zP$i LvU)ianE*S l0X cSzt]\ZUG@ 7h$.:ϝX)pKW4hJ5ɐ$CF[--8f*L>ü6eB-i`WEשY 7'a#)Q \dt"NJq$|LOOPűƪ3$,6zgM ڈ]t*MUik#&ݯ,FST2̑ `(QY*I4HLS2CĮH‰Gj_"ZKG9.C+zEg$i-p\E_`XT۪*~\1[zZQHd. d$4ݤ8yĵq6D #fPqfم6a{JDž`L2YwCPgIU[QpklKrjH 0ps{c{hȊ9rR$i,P7);؂8Ijf>.hFO)B`4Ԗ 0 Â!,ci4\ E"jCʢ9 EЫcm FdaJ"q8iqj=\^X{D3L.i MMHN͋{!Y҆W561S{ؑaab~"i$sb=QTH{.lvͺUq2An#pAS-$|zgRH[e]0mqHc FJ 8Y$@ʒ:+8Ve7` X~C*#{(iS%]Fͦ2F٢,䳖`CFqk0G)uڌH${LJM^ 2$XH܌7qAHrLn80*{ @ʕh,eE7`" Oǁ|J,j%cP &B͉Ӻ66SԵMhվ_2|_ * fNJ4rMōx^MOI,.,lD@oDžFBAr1qf,=oPFj*jnS;K{{Ĝ)mS[&7Re{^׶Q^ @ʕh,eE7`" OǃSUnMqO S) ԫ)DWCǃpE^ÀčbdJv#} i"ʑb\{Xw5e̍(MJjA#-£.V@/r,CEhib4n4xڏLj-%TQ,-[Aw9 R'e02kix T lu"}gG_}CF"q ೱbrT=}+C-XL5[e(PԱ"=E2K}CE,rYƤQQ8mQ:dL1YاKghaU7({96e{YD23wtEdиAfV|TlIV, R :jƶL\+&IE$1]V2,±RuO,Ŵ@[DMq ]suT 9\f'XP[Y' 4>-'.I_ٔC**Зym#%&8;vakU@,_eՊ<)VI:HV5a.;*]R&1BwBű*Dn0K ̶gGA&4ɒDk#=P' )+"urԮXd\#wسẔ ZGKFxV91`^в+H jfH ֍SU Do$|"Fi"BR# r.5*æ{e#< OH$P*KI*˔^-.lc\y-UHA#S1CfY [Q)*X:$2a)H*VC"߲zri0u $5Az|cWBeqX 5}bHQX) &fH5&,R1 T1I$AǎR|:)>G㔟Gx^sO#Hjhl.lnjAp=^E`i%̋`cVuCm3OU-6F>nٮ'x9\ji"AV0R|:)>G㔟GxOQ#x'èG93K3 $KrIx'è;7"*]v0>ṴH#SV5vB5,dX7XÈ-p3}dGiq8nsN5KKd=Exqe$&ψCm[˦'[_!lj 蹆DO `Hh%=Z۾$]V#yF}ЎZl,|ݕ\Om8܈HQvG.d\͢!!; ˚y خn;bbfb#$ nI>i6-Cw.~G ͢tio*Ql.ra%a ͢DYQ*.1c%q3OU-6F>nٮ'/3GJJnzIVVj>q45[*dlqc쭚}KoQǎR|:)>G㔟GxOQ#x5iTI[յed>ǎR|:)>G㔟GxOQ#x'è")Y#G|՟$hG K$@LYXrZa4B%Y5}W53S:Q 92zCG*⠮c a$T$sO":ȍTTMԑ\1 .G ;9ŤZY*w庨kG^kÝC+,N2uF(yIɀ7FR) #`ػF*mfk,.nƌ O/OiIV6Ժ?k#^XTv+)jias8vGܳ2{6.sUXz%4`1Ts1fC! YfDAi9XFͣbLlqw `wF1J*2&1ٲ9YG#qdk^άޗmpw.0;dCDq`eH T"o}J+#`bI?g6 c$m[ 8TT4E E z><&~3 7h>8|<&~3 7h>8|<&~3 7h>8|<&~3 7h>8|+bY,I$9$$rITF'^L#̅d#ޟLO:x$Y3d"^tx 6}չzK=C4#njP]HU"U s>g-VƜL!lza(3H=+:E/c:5PMLiհ/tES-6HLsTj"F$2POqL^(d@cmXxctؒ=x WRRC,rh$Ut6={(N:Wn0UORQrŒ)banw{:ZZZ=] [Jaeۏ,C.QGR:jCaV];-A$)JH/W.9O-Hі,@@kt`V ڃ2Tf2388a7\jBLٚ$^`v@*E+ fPԁe5^IQ󩶙S;>*BaGDkEz^R&@)V@/]H6~ Q u:kִɪŻ}GOPMT^-eQOvLzΏ6Lf<_rau یy)ҥ+շk!6~ 2gO]} 6Tk{kT ~-a=xW=pW_2ܹN{}GsԴtֹ}`f)WEmAx@5P<n,p:W;ϭzOt \ )'{QUEtބ>(eJ>cis3E5.O:j!Ĭ6 Ǻ!}6iu #(:`׭qԀf2Sʀ3wWMC߿Wde.tDH-byAV% Iڴ*<IVh1=nG4/d>Գ-ierA$G5WyS]j@+}RrϩTSX8HXf2T@k{mnAcͲ4IҶ]7ꆏ=!zkޡ1ʈ!ujW&̔uD]Gdxѡ|XN~T.{uܱZr!At+@ VkL"? QjO4e]?, ާ~ܮ6M*:+TupvyuD5N: 6ō^" U˵zw/1{n:4.eO8@&O# -ȏZfǁ*nzfR۹r3`/oZiHŶZ򯌷qc6wUWɏTˮ8v1ZȤ.T= X/Wv^ #΀7 M:N( 4TEP}>(G&wyWQ~T:H}@P5{u~E ir 4 KMq~0K@14gW R mJ]~0hVͻhG$Gʗ @]`iߗBڊ^ J5!??wQKv$G_(lMӒ΍+TZg sj mCR!F֦ƥ,D5.43Jr3Lw{2[O9u ̽AG\e{k^^G?Vv=HD}8K|~ʼn:t ٻyW+]ѹRECv!Wp0%)(]MK\$Vk]8#>:MK]{sCn^F٤TTH$E:W8DÎ~ _8=~?:g.Î~ _8=~?:g.Î~ _8=~?:g.Î~ _8=~?:g.Î~ _8=~?:g.Î~ _8=~?:g.Î~ _8=~?:g.Î~ _8=~?:g.Î~ _8=~?:g.Î~ 1,^QJ(z!+n5M5V[m+e)K?~R "CHJ.͓H|IAE_U<˷]lcFJ4UZLgP->mƺP]Qוk9.=D'Zn|ʵo/;>t[vUnjaƹ'9yԳ')ϭ\4 hXZax0ȻQbo֥1 4i+9`J6g1^۳fA3vu"8:"@!Q"$Ts;\Ͱ(Ar%K=_p =A`C*+hUߍ<;邨5,^6c@>O K[F*X2MIT!]|N DkF_c63:lI~Jyʕ J}TṖɌJk`:Pgc9s1ځU+j|)܂ RGJ*riNeMnYZHT 8͡>]4.8@+䯔˜D6#-, .R\-<ۦbh5lIRqq Ȭz#6 /L@w1[ chv&fg 1)wT' ʓ fls\^FF\Ztta>.\i-K'ևQ-&@{.)J!dcL>8w2$<}{{i[Z ;w5<Va668m.rՇq9 )>>l:S!!F-Sf>wu%zrqa{{Qؒ<zA)BqCK+x~!QƎjQm_L-e"U0a&_!~Zݶt-c$-9V9|c5#/ j5!Q]XWYxj5nGߠ¨:HcPU'Zs ÈkX@L0ÜU5goJU YA8s>?n_s}ͺϹSx(̈wAhx*$}Cs+6 \8"ba,,s1r섎bP5SOQJ4|kvIޔӍ`OWЀÑyl 7;W& :.M6%yrY(+/M%H&souqc91(N1&>+ iJĂFm9] ed5" m2\}U6 @0z{I_p.·(PQd&q;$=싪 `[t7I'Sd(!r^hK PSh NHU]EۙwSurvde !)FQ<:/ç6_bWUf7=ǀBOn +3'1w8U>a Nu].wҡݗk+ Z+1 0ϐ0^uwW|3hݣ=])pSevqKosi-\mgLʪ9+x^켚+ʮ8>bP|Λ }xޮ?B}B}֋<]Oy?x=4˟ %n1đLFz8"m S*8ԏsWv^VU\,ӛ.O6Q  [5aͅ&P:AmMc9[;`!6vU覺2 i& UuKxbgkM4Yy^1Ť"4a-~h@t<?Ws#&ՇDae=YF#.%U"K LBR$*ġ)`jU9%-Δm%li+0lȮum)gI!K \@^<+R͍*&rɥ+2 P>Xwq*{ 9e(k=gF`1MEFJ"ӆkl`)\W&\B]q+0lȮum)gI!K \@^<+R͍*&rɥ+2.PCz]?[a|N_yG.1hmS^;gC_M|KaD2C.Tq2>(&0&Y@0sBfiӫ\ƞF67˞9ƛh|`Hk`[T-X XEr'hAJ5W^~ʻǎm$",͟1KWIӈ N(;՗v~uIhdУe4&Gµ]8 ȶO+juQ=&ZPn 02Q44^ȶ ]aYGoXd M$4-+ښiV7 cIEhÒnIxMn~2Z44 PP}͌-#㐎-opH 5=cuml$I=i&a6Ymeז]uM84]aXLo-591a+i%v]UgD+$f M~*Y8/EUʔA++]X:` ov Y8fLGB=Mё6rEpEmN:,гE&9@aT509ѕE=8gKStvɦyhty 3 |1i8-pM05R}Ѯd5"K]$cMhCGlnEVw?W~׹؁}䖌z3oP$+啽9\A {"kQS" s5/kg #k1 d!Q|RGGDJpb̼=pА8\ظXSCCz 'PJ) 7Xa6Iȯh7]{bҮ`lY"?c/0>Q|msYUQt̨h4FrP,n5l)sy|HudϦٔsʩ Y mWlMaXJV5/F2n,Ԧl9Xy4LMy:sĉ m;8tI3 e_7f kƪ1.yErI_RI+\Զԁ se MmTg5=LJ1XC3#TUÃm=Ԅ[n IADdEzEXnNf01d=v6 Miw\>^ԼWd >E~ .<`e )52-1=2춦^Ǡeq8 ͔~FsܶDzRsO#+#͝UMvY汜] cm?d͠ =qI̓g)Q2 ˈЇDq>K-v5J4>-Z Y3 sH=rVÁ:iI9 ™L! ( 2 t%H.\S&@ K&_=At(#NlibYrLƫ @ZJJn~L( q"eʞC)V> 0Օt؂#++r]{SFcNpH l*%/?&TPp7!xE"KT="JDcg4Ģ%FcXepb"sn @6Ďk\tOF`a!۔ yZyxG+VU}DRzjʄ:lA.O('N\ٞT:bj"4Q]ҹSX8!qO!Hmgj;ƭF|]C8rHdAWrh f\ZCYT@Ye1'b {pEy%t@Kب.i$<-pm i$ɮRQ833z-1&N)u{. 7ZElV cCE2p-F,q3!JB D4Q̸\X, <)6G8|0 E".F0T(apeTE5F5M55Uq+cLj- =)Gg7ow< >?ǧ﯍TçMJ2pn\`B-n.KV}cܾ**tyUĮb>G%Vc,0!eY\y5Se@ƧleZt@x+`K^a4R 2MaK>E/5tU)1܌t =˖]ֈ픊 h@b)b+VCU}."CB3x;BU:FF@e╄}0n+&vp8h0L_$j,Ls&eq)7 T8s$,;h;:cIa]D5<9{8W$g\f9:#r0R14Ӛo$[KwѡDcꊭ2| 2m"&Y}Ɂ+ϹSvo?^y1.Txi9IUSjիħ8LNAR^FS(aaw?v *`M2q `AiG-lI i}K%IkWUb̓(&nyɞ)ݝrK3!" )lhʋ!Wi2SlϦm+^szPX*|W $ce23pc oJgӆ!e{-G*׏K wie3Z_pS8PRW)EfhLԸGJ^ڦXA'ŃgJz2ub9XzPt蕵\nwKeVÉe\ Fc{$R[,#{ٶzw/v|/}Z+@ďT29Ȫڄl(!y$KЮ QCT{ f2%j[F %Eq `W|̨5D,"%:[^ nVLrGWa>ha,eV42G% !B¦ĬWuQ+S;~yCx}?|D+TP"nW[<*uL)`d]&:vUGQ%^5lAVOPoL4e,YQ,c(Y}"@qavrIY8L44q9g3dJDIBÖpS@dEʭΖT }T'橻1dk ;/ʃLXttw#.wV#*؋hN[]tVUl8U?X&ճfQfI: FrܾY:CK"ZW.Q*N@!%ru׫ !-A2n` fmZՠɎ-Ҳ>^{fvqy|OwI1~Ȃ ´_r8٦o-3"6=Yr(H9\+)!u։w@`[ n>%%cʸeqH.k@S}iJǀqLW8 h$ .BpO Od3 һ\oZǖf+Q 7 Lemm _2Kv$ID x^yLبZ<-8fa%N*"T+4 ž"#ZբFQBWpm~`Uh4)7KϏƅFRωSlV!^!]CO*XRHjX7f¡ ҃в vP,'4{TlԺ9.:khdмf7,SS#{CJLIу&!h#:ِ 8'guh48+Q gRei. Ⰳܫ |sk3lސP@+ԞZu 't ~|NT1i *n wbuM|@:IP5=< N״?囧kOk- /YU cQBHhP 7eqs}Vw*y~}\;ݾQд}z2/kCfy='kω[gI^cmhhum9_SJFz;Ԉy:`pC1G%Vc,0!eY\y5Se@ƧleZt@x+`K\l30rJn]Ayw aOL#f(j+nmA 훺a˳nh*HAMl>60eQV`>r~Ռ2$+9iDwWiG}b5ҁtE>g,徭e0Y .R02nfO8rP;/GzOO]ڵyKp`a#8͂7**CK^fëkYbqj%.Z7.#`PhKFe\4j<9ʠLk 4VmJJV4.yQbexu\l 9ɓctXej zgm]jQ#]ھ_r!>l>!qxt1c*,U6 uPg, Z@#x% |Cݬ5369#Բu2ii u_#g/XS|*jR\<ԹU!BA,V<xfʟMVvM6,44%e;uIAiԹ, i}m}w+0z'h\%MTsGsqXpRbK6f]0:faRQ>-.yC.qNmRKfX6<ZK^ܛTNQC ;#_<5>=_b۶pi'p]1}g:] bGgY&V𶹏 ^OѶIU 9&d7[Ք܉bG4ykuj]gQJ5sfQ \-c,̙O0}`8Zau~k/ AMU 50XԄYm+!MϹj-dsd.\Ite6JYLx5T26B_IqNBY˔gGTcUgL#?愋ê=-<SSˌbukF"1&1#OUg,B^u.\!֟h:42>!t/_[ˇ<\jg.jDm:&#BU/ k74aBNYJ@^?8W3U4Yϯ(aW9cy ΠSZ)*VZamg1:d-m8ֻi*ހ$#,R.XLm¢dwjYuktezk-Ї0ZaʐJËP!\ÛlίR5Kmt/jmuV0|]$fYknnYn9q*iV6o>dLѿy> xݞgzszyba3<,,ªHŧvNjmV)kB0.묋AiUHl'\#H0ܴQMNMlO5#U?d `ٞB=0TNb㤪c|λ3yR[TQ7EI>ZL.l؛Ȯ*^s}_n {(,yLJ։jP,c!t9}i\ 5hcCcLuQO!'a"o IC\ 2x쒜Iၶ6[Ub Hˏ\" xA244. H# H#++M6-P7T%)T<4¡YT1rxW &g [#RD6IU2匨_zEՑ6 @ vCl/10;wW]Ϣd~yy<-.~R e!Pͫ[tiy:P|*c ܢ(`KOgwoR ȱf۬L^FtpM_jٱj lYm7{G4mE(Y|%>e\99ejjHDe#̫~чc[u`wH,Y1H+Ɣ̨BPc>G&yn##h@RjUpB=t* =\tS/WsnB<@2r턬_x-[QYX0k5U/$Uo6+b뭠,C0 =V~#}1,^ i#`Nֵ{`ifDU :J 3ob0w.RlnxXd#~3;g]}]x?Iɞd:5CBX@pvXq[jӊ }v%#d5-Y-UJ@IJ0wGsL^5}BG] I@ёxVx~poK. ;͕ze<[;o{NϏ[} >Oӳ_Ϙ} 0an#v)juc5UM;Bb;(TS\k06r?f,4;Vl]wW>kJ1ͤ-.K,-5!劙 ]>m_Bۤ9U@i̩%_2Nite1 c[BF4/8.cE5[lQS_G>?{#i<ו=cw=]힏_Sd5-Y-UJ@IJ0wGsL^c3cї=ŇU~N~U~hFxU6Pqx|%U_M Wu7W)WmVFPec<|GCS9KPbܘXPm Y@"uF7ĚBڧܟO?J-]^N,5؁=!!S8orO= 波Il0"%2:H5ImEh-uLQX'_mK=7T9)JGvf}匛e{:"7YLORУ^62=0vR^ʷ,j8¨:>$A>շ0lY]]/"_I+K͂w󲋝Ύy9< G-\2k5Q%hc_N̶kNAUTH0_¹qXNͫYvls} 鏼/z6 -.#R,QYOS[.ݶج|]wtJHn$fzܡ1RHƐP4De IYNR Ҙ]5S+[WGD)U;Aaħ ÷h-Ѧ blMa(:eWC4'⩉_vVe8l*j).zozFy~KnK^Ah$ipo[ģ*Sy%w KjF{ΠV#U{O"A^-eѶ@`CÕ%F'x/#EiHA͡Ett՗vEK &Y,,}`J^[;mER,S]sjHJCґC&*׈m$ ?\u=98M#rw-@Woѧ xcV= \2aj G}ZYooΆ (*b\׭-ӈ. . `ÿ-r""y<҂8p7XﴋMW n5ӣ!R(q^z s@|3_ÄFXBY Rk*1Cla[.#]ũ ` aI(xn4E8xYT;{:]LhRL9,0mY 6davY hr,Ҟ4c:vgG;e0TOj iCO*@?y)2Q-Acec(UzHr'7MsZ6ZeI j,l:B dYYh0qqԮ72H,N2r>2۱SȢ׮5K<9!&g~2XL.h,mM]ʦڇů IVGh=x[S{=!aqo "굻)mV.Ig 4_sH/$/r~DHS1G < h-u@H}ҥ[,zo[i HH" &o{-+r#ƉODU1܍0n%ew9$NF%kk]Mdgj毫5+pA 9 eud~s>䂹ه8#l?&.|*F98YS0 vI6F|;c_z]=嗠 IE=_}]4\ee(¸FRTgߏʧPl?x;n~U:gw6Hw0k`AݶU$5_r+\d+RS!.:JP#Ҙh}XeAIv4[cͲcѨJ\7Iy <(!-~LB-l2j:Y{@HgS $<]>*ZO*X}b=3wOW؜VznoԌ?F4 ayp<[ƿQ#‹fY\EQ;W\(`}P-u:]A &X$**x\m{a;ޟBxäwmiѥYab=ڋ_0U> Sz[JyBD/RGlDݦp^ۮPGR=Y]3%+_#<&iAb[/I:1g9Dw F  R++M^yi\`|Km-^2G;S%j͑v`F+b2@q)UY\,4a=/ZP7Lˌ3=X@H ª8kYо g][k&MFꖯD<{D٫t<`~-b:‡n˘xlet!xVgɉz:m vj2 elcf\/-z``ZT׀L1Y(M ЋmDY8$1zwrbLQG ;qs=Us) |E;>E-VnT*v{Yj툤!%;$rÊ[fB Dr;bV)AiȚLXZi--䚵gO,{ ?pU(/lx%_ū=n[j &uM>6XI|f U>wP&١*׀a}-!WlĪ MqJ|N.V y#- >[*+ ӂ 5.y m m߇ʱ3u&YWKUUV)IIus9 u4SS]=Ɨ)ViqvlE qqe2k*:j6M&cT$K ax"'xN#}6n*(WWj7_w~5c} _fsMO[.[b{:ZfTeM貈tpl\֪ȋ^@ 0++PSeyT_ʱ,.3J^G]ڱLʫ3LR1x=b8{c֎ ͣY[NUm`Q<07fh \Qedc (N "UMSTee]d]UWN1y;K;n P31VeAE͔l("ՋgK hR|}AZ+S]9txRBk թ/)pr.}f15ai-ׁNV *Ă)(`TYAܣ3M81$)KsVEB!Waugwɨo2:2A(4])*ݯ#.8Zz'w",Xx97;;*n`{'iCOAQ*V02]m`3`- !Ȑ4xHh0.H dS}5;(0sMi՟ewdK=DHJO)Wo.΂8WdFP<6SgmW̫Z_ݸWdZc>-1b:-橝,MUX:lkL /V*L`5&6>]{Tna;j}Ft4W\>Q*աJzԫDwX}Byw ^m(kqX! SDn'/ VҤ#[dXi#+%x ݺuKfD5Reȕsv tkyLZأaA"1ppDх&ٯLCΠ!crdYSX1=L cd+ h o+$ycٮ}*Ycf=Q5g lZc@`bMi_]$Qt&Oy=y7g?aYcoqz*4"eX: eci\(TI8[een" 빒H 1.vVu8Zy@xCTr3T)vd9QSPk]Ι-i>Ⱥ\_3ٌlcۡ 'R:+|3-u&8ovF?쉚7{'Aۻ{~_nOO+ySzəA.6TZ6 }ì|dSO Joq#J-Љh)W)G.&yE6lcerh}VzŨ64,_]Ta\UELa]l矽qv}s~'|xc_Go/t=)HpkC/yyAH #RMrv{DM;#u6֟6|`%%;qTdpCHQ0/.P2"U^s%[zXK# ay"5[lg$_{ 0rlt%Z} äuNP~-y^<#]J@nH#JSMjgڈmF;^ ($ !hJcQl @6g6 ZI2ѶXJX! Kn7FUs.'-\8g$-m!R@g*:Hеz, H1c)Ŝu-4y`ɫ=HSb/oJ.*"Q0}6J|FsIDZ$oEM,m$R9S&o%ܮl QLRc\*-?0QvKUf{`fCau؜Yr5wX/.xvgqq%)_.~C9.~C9.~C9.~C9.~C9.~C9.~C9.~C9u@iAiaE9q(qi1a\#cx5`~ !liZ=Ua"C+G eT UDsmr6kӛDGI\r=P8+.}$942ұYvM{qL荒e7f %򘱼0ܖM :rReu&VV ΧG@&l+]X'59`gi 316H^3/N1eM j ^\Hu=s \0Dh_Vyn/pŏ%s@`)]vohrUv8G 궎`=XG$d?vg72όaTZ[)؋5Ӫ=G7 s_{5Jrn>D#a y%6^(pqSL.kr ݐ*uLu o7Y8=xi[s^R1*E׭E\BJ=X,8un^feF3O) &تY1yXoRMAo4s^[Б#S+ 58) ?:ڃڊyhRX`6FInzˈjrM%]TX_8Yr39n! }>i3VBhӨY4ٖCհDz&?s=[aSzYs :dBh"1V8 k0cd`ř!BYՌ`|ޙ! {\RH[mm}kGMe}5c~fYݤIYRhNQx@iym&fz*P+OLdGX.GqfeUXT.C` o WDϲ]B݀.RWHXQ?^RNbw@кۀBZyW[W4DZ}?rl}|'?G+Y!d HdP 7%G@Y@Prqgr&FԢeί|QѮueNS8>ZFޏ/~Ҭz#|j">ŏ(qOCVu%?,0"Hw0"_QD:ag[Bv.Mr+r\eޓOpǘB9a^sԜ{te/g2F\WM~Nr)y;,, ˺nٗ.̖fG6FBbhF\/qxs3,H#ekbuiHv2dFZaeB.h[ۙr),%)xď@.]bv^|ֆ}SnLZn3xD͋5r~0Us(t5p[dx:"чj~ЃJ 2k0ZcGR~m-eG\%eVMN6 q>2ERØj=ց A`ڪ HT2`F̳C:6ۼ >D'fReyUλ'g"sȜR7/[L l pz޼w/_]N?O_]+v=8[Ujz[n3, `NlqbE.{^ھռmj7@^&(BSO Rׯ\$kl_C)Qa6 (ڜ% krDAB*)65T6+Z*cr=V(5-k[9CrSvNu"U r 'g@QR inϨ}GYvBTuEA0+F!px,"{'tYUaˊT,(S#(NC'rp<+,au <4Mg׮ccB͓ c>fGֶRX5uv + yA*k#+g#]cI[5[mqnERn.rYj'+íň$cqKRދdjFBU}xUx'*IgQw566(ĔFծ֡c5p FI9'1cj^Ż bb me^ khjγƥԸ$zrX޿ku6[J{6]c:'Ö-TT%v;4N!d9lgn(ݼMuLKPV-aYV|ՏX $/f5/U[Kh9BI,yCOr`|D5#Lb-{rS*fbffH[qn}O vaLk%_rQkA[MQڭ%Z)RmzgV4{ڷC"Fh6x$saIBkSKKxFbjmeI 2@ʫS2 UMMŵ-ïU>2 OXkk~"ݿ;e}Nj λcS څfq6,Zr ,3N[r[u:r(#1d`uܓ.`Z>ÿ+iZ>}Hun]EƣG7sDȇܒYmůY= b2`!pŕWLXVۀk늾U s,m * ޹#V{+^೓Uy?AoS'N%̓l~,`O>,UYY9Bnxei[[#s_S-X yJ3wfƇ%Iy.zm^;(H/ WS%T-eNz+jLd{9.CڽUw{{kvv|ТW]W&FA,"֭Tjhr/ͫ'~f''/W;j堢dV֪Sڊ}[k*2)f^I/y c=JrUn5ֱ쉭WKhaQJ ~ѦT ZW^}w_)IVW%3Goz*;I46^G}9agWP;Vk\4h; Kߝ*H}|_|0NdSYοzuH*:UJ [ZtѮ ] VvǶWk)6nZE^`kYׯ; *+c!6@PJu~ƾ56M*\Gݰ|[DV5٫Q%p UvV/VwXu7C aC[ l M]7@eiG^k.kRT%]E ^lַ K\Zɂtb)[q-I6D?3WޘT^>6R[/M|r+g[^W+6}aSuv5 KH\ӰuT(Q6*[]`w[XڨjwVؽsTtdpvۭS;A{q v*[Y9QKMϫjUe}~+߰vr^ DMۿlZ]zX׿Fu_i/IDnߴތ0Dn$orm?N4!3kUkOƕyJ(mFJ{)hC6TDqv̱8pFZtXgP;?զv-/n*]% ,1f&U J[5t6'?~g+Xd-So&}Hvx _YQΙi-r[cN)LO;cJؚ%XB^ɩC_UM A^XW%/Ҭ밢 ju#@I=kW TI;=(q]ކ֪o^#~+l~o]L6Pnh8Nok2*\3cy2aF.hknL$AD k%<~·F MjsD(=:#C[xƞZbF򲴳^[NtFN N]'+&7e2'l;W߆Zm}7l2Y nR b CoFI^jm1swX4 k.+eg5igH1g @,!Z)16mt[V^!E+,gDe}x.W`? H2{.cSaeꨝC^V¢gm[Wټ.+˔I-y(\vꔮٻl=RUj.R4ֵ+Lg#Fdx:֬PeZɹhpÙGs2]m<çf'*i^2%_VA z*=Eª*ȥjLX))+4ug%oܥV f~z.e g& 0xn`qT#6閑:qم鐮zBߞ7X| 9Į% 4fN+׬SLLJU;Tk9^RmVo3] f)6W T5!:}ӛ fޏN|^"Hyd&^cu@B` )=I`]5:v6́4izձ*+$H-`ֵ,vV/l[FB0S[lTlZ怒kg؞Xᷯ^ J6hj@&ŶG,L6bivj_E19U&6ڐMTRiDt6TG;ml]N*z~_HԮz<2m՘o7: U{KfeF%J1O<,|D Zp+o"Xf/yV0 C0פ04 b~jVؠy¦lPiK TT k*Xu02`…Ԧ]Ϟ)`Z-s\`$SV0UYO a$ HĂ(qģKұ e;uQ:<˞FZrNje@h#Y ArW+E´X"W_q}|:XEq#`$0>2bĐsf`fם$ be/Y55ooۊ=c}T.3} v=e[ֵ>g+Դ I_nVNV c +]~(@8C%kfc7ՖI\`WlBqS.Us4v8gt-zVZTS+*Rs(j-*ՆYءQ fjK |fڲ!$-[rPavQsܦ}$_J Qz3^x2VAmC=%ElJ KhLPS-f&0@I,9mS ZY@b@$H"QJ9ı` 1z-qm|jk/J-yX5U9y*+d$l2 'P>#ZQ:T.]8VȇQY#7OWkl&Uv(EPOAGslSÍ8|q2C1pJc4ٰ},X8f3֯Mְqa7Ed\ GْQe<17şrjRӫP8ɱ̸偒X1mrBmmƿYpm+E)I3eou2']IQz>>QPZnk' /)f'sHf+mW8HVbJf ᳆1V>єe#+҆c-2궥m5WsIe@Y k;XFDys2n#ZQ:T.]8VȇQYsHi% GhJ.ĀӬ~u\W\qvs_Fee`Xz]ծ2fzNEpCdyNs:Lڰ}B؍iْHWο6|4r=Ǹ^Zak YcMy^RZ6T!Z'Xpm#0 ̱FkmhL 0t**}{kq "5jp^dTbT>jIevM%}Qb LkB̙dν 0āѭȺY[Z"BYU%N쌲pU*wkĹ*SJaJaֆN]*7~ o5*lTf*/& <D̃%YĜXi)y3 e"X2j v˗*SqKR!cg&Qtڏ{j$^:bX)S caJRk/,tuL;^mW$ZM&& 8.5j uF+6XYم2bh2QfPYKq5V1$6)g24gɱS Iq,`4̆4XgүMU+F\VĕF3LLcSAVUV'_\}֍oWM*$(b:kĊrb_u^>+{bjejELK#[bC-jR^ߕ*=Sv_v?K'6mPrpZʵ!86m bW('J5r%$Vdœ+4AEʢ(SwNo5r]Fҿ,NAk-TUv((l/ ,J8Zx$ⴔf~ !FhVk;(jk͵\ֆ4X qxenRZ Y5NݟN_yXS-WYk.nX.pX2nƶ*_ѯ[.Jbc9-" +.]kZS=`4I2#r+SO&Y3B+1PO7sWQo$p|.OÒ,\J+WTjG n?$e b'S10ѱXy"6^wp5,7M~#4-,+d +HyuٵR MXZۡL.ڦҧw!5NJUTkX5V,E_֊U d}̅!&`QЛ=jU@9HL;rle:5dz1U"2=1j[d˕J.^:AԺvhJ,KbrCG)A,5\;:# w5ֱw3@B2\dJF,ڮL;Hf 2NGY8Du~3zr_F,@Re-[ 0ĐاH:R!џ&L1&Jf"U JhJbug]~%^'~\|wki~ִQ |yPoqʷ]kʜ8Oaj8Ү [N N%9 6"z60V[.+Bf7'v'1L尵a$3>RCFY ]-p۩uBov D^ו˧ٓ,סf٘pj Qr$El(k'ӳ~dō\`9 kZ{רO/OZH3EC[%it߲RXIdhtvmS7rJW.xJeIeZUI{m u ՜8r$=kBXU`fVхsց7gS1|wi|l.rƚ_lCNYG,G0`Ufuzd %WܪE7auj>'W Ò%1agN&{}ZEfP5X-iYa\uMYL_+]sQT;SY8v\ڏ+CX#DC^@E%@erצ-z,S vuZ%s[Xsx e!zk_.Vֈ;VvUqS{#,,mJ#>q,Z)1ٰY ܩ5◖l::~&Qꋶvέ&vhS 2ob7lꗛI4aTّ;7Wm'!P}s%[azElF0Rc?lG'/S]|8^/}<)[ETl2&41dpTUfXtWby6ksvͲÕ޶ 0i QaĵT!ްt8Z)XWw6n{]Ƣ`;,lhp8U-E&aUٜ\iա)]%W30ġ*r X_ofaVF5_]V gk3IVS XԖkkR0UHjr;HVq=eWK(O ץX kdcdqzTu3OIXiMqjVGDa%MAYkk}/UTDM!DVEik4+덄Y@5kli=rG{]eƋK_3m6sR{ciHj%2::$)N JAdπ hk;2Ե^1bR²XIep/Vhӟ%R- :Xk5 ٵdЌ4{MQ^@BqrX1VzVP|}`/6]A싴ujL@g檴"풟az[kyPl坴Bn mu9d58uZy(A< z 7Mff3b6# I ȁ S3DNٮl׵Y\BmnKSf`EWkXo?%b!GuXzCXRYp'X ^ecY/ }sWZQy3Ulߴ~[y?WAV/Zʧi,g,,f .T(zj[͡LW1j"lUstj^ \6QIp#*#O`bKj~ZҡHfQէ7~6{GU+RU׵]@TzFXP}̄]h~ٕ2L!*P`AE i֢`A&Jk9.j1bة +[Z:ƩnW@z5ȌՂAiZ#6`^S:{Y%`CcK#YX uxӺɣeioӄ _ߚmsfCe(|KTn||Ҳqm\2G zHYjٌخhMH2 ce $%,1VVYUn/ps~ud+Յ',`<7UvηbdU(uZ\Nc.TŊQ7*\-/ޕWo|CѹKHw緵Q5|E~DXX ?77Djm}96њMWRJUJjfaڞրx0%s$jWw\1ݸf{̭;I(ӫ:@@|Ii YWb IbD /0DLe"UP[Lƫ'͛#bmfaʸnʕEx$5)ȓJٓUE.yXN_Cv ܽmTfK57l g^Um*T,M:K023D+,V\ڷ} } i\MV Y:d1<ŵ*54ǭS` In3 !V!U{KT,j&]vUt&X +钍:Yd\g CL(y;FrG\'eH,-wڢXxIퟢfZψ݀]2ȹcSj^LrXs?/j9{'e pTFe-91B$1q̣Nn0l/VlWu<G/ z҇/Sv8'4*zs}oh8|ݿ>FݥVI̺_ZV}AX#ؕv-VY==xm2{ce+la<ӪAD!j8C͉`q^u,:l=W RE9|6W2jo+iҽ rbרk Y@rP}_:ݳ[6 {:+ۇ]kiz8:ڥ&GH%C`- cj;\\o$pr\$=X+.R7e8s~&Vu ԙ ʐ/Q'DV+ʦ ET\b Tr\ ˫LqUuEƸ+}"RS\QG0^î룐#T5oO64Z tc5ר)W[H/A@UV^٫5DXˉ{Pk6~XHKbo Hxk{]\7q^[zYb̠xbuWڎ^hBFEԭWZJ6Si-2ٓ V=g>6eIR+$M*okX~y6asSU4E1lVP3&,Daxs65Zf57l;1E`MrĊݨ\va&7WRĸ”@d2z75Q sBmon=֬zUS+Q$;3V﬇p:UKUEERR`UiXWDWT%b1&,UEZ#WeyEF[$Wf_vDUxٺz tYarc HC$g8'X* N^rfi[_oVuZR_; 3~Q3Oug^;_P=(,{%Alی0cG4rEuSvI'77'0>?H{X̼PvLR%xrK SB.'Ֆ ŝ8d :H t2:%opJ[o ַ(VƿtR5Ҭ!nٵv7pV\6 (_PRÊFmpv{S\ m9HgۿhFUbʻt\$as 3GN80]}ٍr5qҫ h6ugBoŅ+r`%Frw6ܱ&Φlm(۳ JUe(@ `U.IZQS+,M_$ul J3hWy*I~|PT? [뛳[e/.VL)$Y~Qϖ z }3bmrZ*(e1CsGY2h& cG*UTS IV+Ub (Ju*Ijm73e{{j5ٵّ>bTWs1,؝cw!qkPb{X.^&0Gԋg9O=q&v EX=kX#fA Jƴ6ͩlq9Ѡӹ~Yx:LVμUublWj1d5|vX/*[31uYܧ,o\iF[JV'QªXydgҵ26ul\3asVOXWt(2a>SgP{.5.L7 ڱc;,opDf3}*>;ULYx^# JJ${; E66VߨJO9Y^1#BI( 1"1Gb$2Uvf6ND]'&%`Hb%b,hϜ$s?&.z=>⤟OuCjʶʭ,Y@b@$H"QJ9ı5U]٦Mӆ-WIɆIce$ICؿnf !?:Y7NYUTƇ4XS+k0PkIhipTu@Ͳ}& Gά(九PU0+A6f18;m6ъM2YX! {2ȸn+)S/sc6\ I7m2.o q̻&KQRl9]tj,R:g*ғMg%<9b|v}N^s<N!}JGkZT]uE| nIogIZ~L5.z=>?⤟OuCjڦ*`pe`1 9Fcq(3&h]w,婬Fl;6H;4ZD,!b,IZ:9;6BlI@9md g|9'Q+ܿ dn)PUg!oi_R8u{@˥[dL qaQWV}.´~6%Y|d@zZJ2nvr*KKzY׷;˛k]徎ڔx_?)O}~S@QAhYUV,x@R!bJ#L#fY>x_?>a2 &N̢,m* La0%m)-{fmv&Ve 6I(Peˠ89j-h#_$rQP>s']Ο+]A rQ-W?`Ї(]E;|(3 NY`IdKJѠ_أI6 JKMvBu0e՚hk9c3ih1ljqUTLkdvI:M—0Աjbw4L4Jس]_?? '<U|@y>)ϴ$pd H*;2M)3e@gÌ2Ԗ%l` J*$4|OdSqFʪ v`b cQ8d21Y3]ua.Ӱ#T?3Ǹ?hͫzKGQY[bz}PE{NI]i@JO%}+oaIhK7+lUs 2U)- "OGs/<:+bvׯ{|$5V>~y5n<>Fc {8 o6f SiTgQ׽p~NyD|Sh??O}~S_/rC\+lXn(C21y >x_?)O}~SR팳(;*X=0zlܾ븇YTu6,9 jb)zxuW2gfO*KuO [q*n|lܸGPi ?ZauLzQ˫=5U0 TA.K `N+g\vZiI:_]Z3jkY1auszJkn.TF';_" kz kx ^Ŏ\*[1ۋ7"*ԗZAMXYM|\dMsNit ձP5I~w- jӆg$ia7[ʅutd1T}9T,%ez:V2*,bn)SMZc\Cj!MI:h"KҴ,vRՈ84],*+j~T? \}fdEr&ךʶ D˷s,EH+k|T@PF_ffo;^#.rMY-ˈ)h,"ԟs =7Mԩ+I]t^XV2m5RY$+-+kcRvg"OndN2֞QlD5=2T5.OSy5OfΗzц5;wkeEZ^j j(HkcEC+nnՈMk9bXgTiWZEzK#ᜲ :gUs['onZZ]݂[6ΝJ'-v֌0N;>ۄ+.h0YBZ505[XHJ%^jlCqkQ`|g&Z75[ԕ*ݟEnetvAΗ߸޵Ts]!Ugg-ĵOgcLLVQ"^̝5Ylm,Ԭ໥V*kZvv:+Y{j$uwtK<,̀k* Zuuz|;%vUNWJkB lCbOmoTjATٯɄ{YTpl J&E娮1T WT6+=><靉* 5  roC0^SҬٝ`HփGCsrjwc]n*KW`׶^,*pk2Ƅ6ɀХjZ qϥ񰩯:Y*;8#Kf<{|[j^`cx6 d'|;'g`?b5znےWo[XMJQzvzZLu10wXc4,gܦOkN-rr0Mj5zZ@"Fw)/Z`VC,w&泵i:CvSvN%Jc^RnioxX4Ex)K^yJk6[RB}dix=)TWmiK.L9LaG$99zl뤮qjs%l6 6K3?;fSب#ht+;ZK':jn';PoW \٭t܃revlZ٪(NZ9Ymf fjsAji]{ G=sRVؖzl {[Jщ]lVYVaUp98ǩ W__MXyG3fFSb%ψ̣bfvvo3SiM9&5X\ٚ-GI VT#)a\bq&-h䑘Pk ݂p{eZe͡v mFY ۔caꜷon,_f1Z[Elڢ]k{64Y¶zxq=][ss6Y|]\%f,+kק[y[arׯQ5 ؛M;1W T]=M(Wp/^8Mmn^Dӫy{NY~Ӄ$88K vOg`B#B!uٙs 2E GfC1s [{ot_:uYZ:&$dlܵ'EYMnȔdSk kle0 WK;՛n\'ڙ,ٺ[biۮ[%-wnj(ASr.+*/3}{)pB"!$AqPu<]Gk}@prqs 䇿 aHv'[5r|d##jx&gK $)r]ڇI!iC|aC$ePܑ wa]Tޚvv)B4+و2]8!Pxd9#-t6C.g_?~ Wkm4ruG}]U٬um$A>jva)nk!"`+2ef̠a",,§R3NMFmk` Ӂ*Sv/R:[ 1g% ac9|g| :7;Ez_n#b}iVRrs ,NR2Py%hKeܱi/"}u+qlLo" .i$yHg9n޵b١xᱳ[t*kvkR-h&BxII3%'l OZ6_jِm=6ߎEªᏋ VGn\l=/אgd2eY+YFP!S|QƼ#\Y?ߑ u&.JT<~qXGzT^=MdyGcW~:v\3ZƷ+Y 칽V ESD[RgSH,Z69_o GZTn;Kr"V%sm#kZJ|s:g8>|l5MWYZڟo؂c޷hvudžlȮ"(3K1\Yk/?^ww\u.ZG7KPľ^ks:?qx>_x)P&r avd* ZV-|:O f $2ľz* k]oW  3IC‘H xTFY<ԆtchFca$@UkURVLyiԦD6;sYޟ_h;KtdGGoq0I wo^=Î1|?lB1a , 5XbYa q q^=EJQ+d֤Ѳ2XU㷊b} -Qo׀5]T, S0Ǻ֊%:G\2FGWgbvʘl(VLjC>[U$l֧rZUZfrlB]?+'!^vL<)e r\cPc[:3X*qgL Tr*8 u۝]Z9>+|~\c?Niy7==V??˛Ŏ?ז=NnW>wz@'??(!1 0APQa@q`?!IdɌ_z91(ȜuF]w`\қZu -4CV8 lUaqgpB B_;pp.l`%[ ҕCUϐ5Ghd]nxRx-7$ lL[sAWh]~S  XE! a4CF)'{fʱy=92J`@_E%(~ʀ Y@@CB+eGaLL[4[H V|s`d7 r\V!N}^P&Rpc,RNFR@ሻ$ g Vk8φv +.Ũ]Q.0E`XxsrM`ȱM (ki֞e8$QZ|@(/|Y# waIH%'+3n9#K۷4IW&̧.hQ Vʙkʠ Ȯ (|9HjykfFbX' η.z'w\O}.Oi>$m=Y2#ׯ^zׯ^L@@mUxI}]jڋ|n$_+ƹs=Iʂ["꠩j7R]n>6X,\,}J).:no:1xt\sJ WE`ѾXnȩms -x%,85 w,vhuQ]aj+ub\Oaf%^U7ᩯPK0UE|&l9E7/Ec^Vt~?I'[muFI ߝOچ48۰ŲyHA]W?0 PLm3)>GaVIL璌8iws[ۿi jM t$RAdFxm?}ӎq[ܲd TJ^f+Ȭ$ ]&csWٿ;F{L6"k}5mgEeW?H)FZ8GF6]^n刢jɇIksCe&3Jn[8%7m>U{?78˥SspZ)mpn}7/RgZ޸ߘ05 yCe#.?Nnٸ172n>[〮9ݾkbÚ:DžNn@ZAĢm~xeJ.M 3WSoJ8 qMNgAAԡ4񙯙=3}q }`=Xp܉ޗ)JBׄ?_$) Rɴ=_(j A_y>L(TȚSkb)Okl̒;mUQ\\ [~D8,6@@gcTW3R -)<:0Pn5@,SU?NYFLf)p&mW.>2!pVϊF{xΆ(M;䰄>مs!ie_'ݫtA@6u$ߓ<ƖNwǻUfO'%s1:alHnϝv`oEQ !$?۷~'$T[~CN]մbfܴVm%ݲhd=,V8T ;KWar6bM.*jeDk'ԓܤ<ؔ'+8axL|`,U1#{OچMò*9B$O9ݷ<ʤbzey!oJYM]xD͂Yڰ(PvBBeuƛnsڊ|VG>.uؘʪacLnʹ$z'4|De']o/: reF)ɷ^f`Fő8AJoڐdQXJ]˝S) Ij:g9PBs]VG>$inԍ]z.lP'}ͨ;=1eLJR2!chKB1Սl<lI?#L6l_ U_L-ᛖVG>.uؘʪMBwU{7ۼا֐v˗O!Q[zWiPug&c2Xv(T K?π7>1W9*Oʌ:Ӝ@fOLBTTɠ:T.B0p[j|<2,ݏ̽ae Hx˄+E@8Eg]`vBl+m7Jeπ!SyJ\D5,_wнe? W+ދJF)B=i NmР OߥIRgx\/Cjg".>E@+ދJ3srZz, Jrj-8Y5fjxs`3SmvaKp&BTImϞ\#̔$lF{u_O rM܎7C xUK tqvb7jly%9CX>.b? [V8__Ib1:Z (F)&Ttxd[`kQa},w5$*:v2uo7jI?+0b 4,E,h]f/SgBb_425c1i:x8HJERa))ؔFqe0Tlt|v:,q\H8e1Ȉzc?4ȺAT FPwGf4QmncKa\b73nXFrE bϨ*_BTPWz 6z=T!GHjvHѳcIrY[iW@/p 3Apo˾ *0۷T1wGCňw)%ȓB|^Ea&?4._D SF{cZ4óMmg v"`Ȟ&;U$P0I!#=xwW}9ivq ٚA;a%iA D)-Dʩ>s5`T!]v}(4kȮHa[lƮumEY3CuqmmmmWmmWڽMW/ F钞Tɬuֆ`C/֐rtdgO +y=?n7["3#EZ ;f},D҈0T-Q׊Er78>? a/tݯ.E")&ߢs|_@A9,B誉$ XӀZSuҌ@zP0, Y>c c [5;-EҤҢh6|*j 1?;0`uT(Hbc!!{(7aZ't2J0Y mEeBkh\x:~)QZ,jx-5,  Vx  @o Okԕ_DCժ1 _QoL?j?]H_VL e4  II I mh$M4mImaqCwP\ƶ x#Z7N`熊a[ŰSI )F'f5<$gzWT[)`I03t6⮯h KQ7;-W 9fmؓcl_ o#'Q"66 mem}3vb˜1̲YAi@͝&Se ; ~<|ܰM[I&`M(!1AQq0Pa @`?D |D̼j P=~pGZlܳ=TNdM&xn.+]'bun Hp?YG] G!(rg̉heȮt$W(C=2]M,.8*!*`h_[ i5EXb[T*p C,hL^sX:0QƂ'Ck"9kw$LwAz/2KJ\> DA2V!Z/&Upi_5;,1R"S}T 4=Gt! 8:Hu`t*@p "JAV("b2 jj30"+Gڨ@JT@Aҽ> DA396w XL*5?Au*ְ)$BE<!1v*=}'0 i vwF8HuJTIT UÅMf5:c0Z'C]W^:hrp5蠗roh̏V&bl LB7A Dd,@Atȏ IDmTd,@AAt *K)IN !B Zba2L@Ð FRdG{dwIAw.0W A6#闁AOKDTv+ tDyM>LR(QySB+ [ ZиC~PRUyA--Q(œ3,Htq?힖=;raM;'Ǣە{XykOI]Q)%cQtPZ:*ݬ B ˜t=񨊼D^>R:%S `=x/ yPo XBh sm I]@FtȵoU"qcQtPZ:7Qr( Xؕ3 9/*D#;kfZ(xJj(jg(UU_GFS\X!T*6o( 4@V5 a!QF5_ VO+Ez:;T8# Ƶ]+!ڈ T{F@;61"! $*wjP%@@KjKZͣJ3āʲK+^ 6˥4ϧ~_F["PUN  , bCh}K1$djqƈZ Y"htKHz`!uN$U"Xu8"I;pW"->.+[Vi Tݐ]!Lԣl&('n*h*p3=AAx:% ]NyKZDOP-O3`>E [wHUm|yߔ>̟\xzpXeӀ≾p`z0'n*h*p#!uXYpp"eA5 $aՐڦIlRAͱ.U-+>RG ^59L G<%?Tjl3KJ`JȴhUZ7:ocS._\iВ-ЙcE C> [i0}XuE  ʷ@DàQ9Kjߘvڕa@% Cd(B;e2ֳ$/iv\T T+ۭOVT-Y0\iВ-ȘoDuɷĄ1'L3"5g'@WeEc!\R r)"|a1Y Q-V fo)InŠHeJ@%%Q08ը#t$S[ @eL r_,5BU`] C ўE!=iDdAGRb`:RАҦ3$t3G@Q*G`@* E x-n D0@[`(:d#}4G}Z"E.y2)+#)tv !ٽ3h+ 2̔*Ś.)fG@? !҆5>p@* rt` 44OO,ÁSX˗.\rk0|2U@%LB pXN̦3EtTߩ_?G ~EΞY@TX5!"!ђ(8T'[u`(S8zg`e+wZJ]:0\o((#a;2lA''[ugv9pu }b5AgX rE"d O.\r @اabE"qHJ[iOd=aRTbrqOecU(K Ns & Vщԯة{s5YbV|b~cGIo}6L 'F 5xDX *W1yӣs5d ZF]D­ty=MV;T ЂmK8]F%1oc((` @Nd0[(&dC?>LoOQp\@=^Ԝ;K'8IBnT%X8!yp`Q@MҒ&1A]u\r@Z ~&"2k$R)\@=^Ԝ:T'RJ:+}m[ &|8#d^Q*"zīݮJ3SpDDa, * ɉ#8.$*pB$|?_$PPGEPe & Zmv$R `In#>3 H@h\iВ- B`EAh3IDA|PPAtT7W Tƾaw$D镊vTߨO{ Н*^ZTZ9zQ$Pn=l$j RT*<8HQ`mmmm) mmAp RU eK̲5$ݤv@ O#E"};n #ͅ\@Hα:*%3&Nrap na0$Tp-USLQ) Xbؼ$^e" ݙ7y?%9 Az׳EVE:S'x >\ 79fU; |o1CWZsKzDݡh#wTF;9E:c5rF\ vٵI;B5^_x/` ;R4aC[Uq; )e ~?5zTy 鰝 O'mI#aQ Ok R`& < C#Q^zf[f伟x|#K( !1A0P@Qaq`?sCl9T%%:l2LWqc>Mf?WiEӶnV~f6!f$@6$wԐw㤺sGs^65EqQd3Hnt`u.L#-JڏD"픇lYɔaOLY@.3{N;ztZOIHܫhɨNPb.0nq7gg/f* "D$H"D$H"D$H"D$H"D MN;U״<6De"`"_ J9k{_b7ᴺ? J(>6r%|:gPR>:R〬O!3s٫XE:YmE@nj`_".&,"QPړR -.}t*T% =r}c=AM.1Z{JD2U cvԫM5k`-Ũ(Ḋc=ۗUM`s/֨#$7 śt'Szr`(Bzp)T4ڡ̹ŎaR)-ߔ>1{_bP4t=70BPa֬ V#zl6UCU[sZ%orBb@Bjw*DJ{]} J0XW'(igjJ#rP­t@1j#NKp}@.tϬϵ¶[!{wmG?g]bR#A=4GWJ#z1O3۾ǽB PQ26 2; lƟՖOo.fXv,HB' ' ȸ;B$u3 ?Np|=ؔzbSY7|TIW[pC 7k,ov m~)?.>h L ӘA7sYj#4]s:"y{[]~ظVc{#]o{0z2_)r/V(Iٔ'NىXv9)ƙI?蝾{\Ȣ!w|חl#5Wsi{9ʔ VqQ~RUU9@1 xK՞ x_OD8N6:Ġ5TtQp.i˳gET]1b*h-6Js^ǎ:)`U< M(ҜCY+VAlKS/T w"=P4>BY s'G f< Ͼ]}Sƪz/~#erh9}jbZ+ 'Q]^ْt;Z}C"ܘ_*.0arQ .]zuOT瘯Ҏ6S_|dwh".͢jVP:I'콿2< !g5@0Cpp â2d4뮽)&L3{_b㾂IQ#M~ vu]B/ kDJ?QUZj㸪>aQ N#\"2=k RAK;ELxQ`:k\O б 7&qx!ySl&:ohl+bѦ%~^cdO tmEW`b8vUTBvWk>W*)bvnxƓ!?,BlO6b.^bo,%W fĴơԑl@zBJ8?-<Q )@UO# !01@PQaA`q?kSEYJ?V-nNhԪw; zM6~gt>LjhEI}q6EA|DCARE>ьFskB3[Y" JNJg,wqݬb!迡] E_7FD0&NXglTG$~)B%8( A$c? >J6UG'^ HA³Rx2 q` Cmzك~4hѣF4hѤ1(UxpJ0(BM)ʖ) d7L;XJ>kmVZ74èKPtcNXi:Y.`4߈qǔa\7fT'CCPbn>6 8@dCa F<3c!u% bðL-Nt'S(p<d&AL±EO8}44P+뒄P6C@of>RH  `n`ՒN{2pAC (%3[u0@G= 4-Ktz5 Ɓ3X5 [sxt8"``z8qh\0)v02 ҴK#C1L+T CZڲ`ÐH=E0TKxys!`<0I44%`|u5`E1L +i"`Zk6.=h*!$=q'NU6QH6H&H^Be\\O;EW6y") D43) e -E5op`aCI\n=glwX(Ƣ4Wp4YB FM RXpmCQN0BY:q3dG.4ĕ^ 5V!-@q $Lp02,,LTLE(f91A|,Hߚy-J!,;>J$ ]a "hI`3;6:~MlCEje(Sp4f2 PJYMìH]M wBR`X#5s)%6Vj40AJ:*,t?m7Qa"Y(l!& م^"94AD)u^ 0c{.6x|\*i<D m`NPr:VFQMFi_(F(!K,J*%*_W Uor8'@( ~,T)>oKEf~AP.D6E u0 mn|K ?ِ!B НrlsUA]Nw&ՉȔ&b%!FA لl XHKp"K aA <eq#!` / Է,̼5l*5,J#xP><AVU8P}W4L)[܎  #:̘1r_#ȡ %p:Dp!IJ@<0&DZ8G=iBAR,U+e!HE.LPb{"*~':  ~Ph;ZEE3$]F 1 ҉I6OGvq pJI} "&HFG_f?< ((H]CB񥩰@`5aI0 PNmcK"}8x`@P@P|@6W]4JC9IԅŎHa-I x`N PwIiFLMlbQ(H4T$4Bf (N(t x$<x`TDQ@;iz4+:4Pp#A{vPc8C@2؜I1%;N]թq%Bo52 z*FWwA7%2V.H,әyRjDw3UtK32#,3_ s(h*ڃ¯;D@)\i}2E uiPxP"n\y +Ce8dkAP?d%Bb>jhwVZ#^V> $q/ >xhS Ѷri-$6?=̌{,R<xdD)F aDNtwa&a v۷nݻv0A[B \[D( h FD@"S[0(F!M㣻 80QC$QC!a!@qlC>݆Hp0rGvq[nDKv۷moL8:>OJzwc'Q)PŒ=eŲQy9PDncb(Zys(abU2eUwy=*K~aqM5FXw@HV&0}1ut+tN'w\̗'TTLlŌp~^`J$Z,Kc,I"6C&MX&$wv58 Z>G<NNtרh!ɰMd\ h#vB = +0ucɫ֩0AĬN;<91'lߘuq\]6]"tCԖv}xwc=:Xc塀PHQUò/5HWW|<4ZDҔM]},b#?aG:MsbንAkNC R@) l0`q0'GCJv SR>CҨ@$4BrE L#dWkLH30aO@ #㯱E6r8888C!qqlѢaul(п6d2v`p<3CBK@;M؅ L qԶ:zŇ 0'-1H+t`brMUI-`EJT¬TvBq:2`):1tGBJ"[ã򒐈qX 4 Vg7Ly794o+$)7Ǔ-2!]E=ܙf ն^`Mp@D@I}aQdRXC)49b3>4XM5^kaDnt*& P Ql5:n XJU,J!h͑BX! 0w9\W4or:fYjy ^Scolorize-0.64/doc/screenshots/colorize/colorize6.jpg000066400000000000000000002563751331025647100226660ustar00rootroot00000000000000JFIFHHCC  F|_P^>P7l29p_F o`W7 ` l >l y, x_}S{z<㨇\|_GU ¿<|#'`3篞l ~}`g?=ߟ(ϙ^|}~y|>=|{+π-tEge*xa_f<{8D2\t;gO3ui/wt:ȓT]mt|ˬ}mx. >ӳsI%Qw[dV[t7?Pq,秙͗Kɀ}9:ydGw>d4Ĉƻs .%. 9C+,LOaZ|A7ݟ,V[-.]z]4 8C2#=<4xΞfȗI9 iO3cw>Y5%Nd:uyT]5XGt=N]_ugSxt=Ebd:ٽe~Dw9K1s}=+,vx.;\ǒg[lpi4 8,ϭJVhev>rΧ@;sy}mqcJޗO3><,y)"O+ct5N3a_f?g??-tqDw~&gDwa͙";<\b3u[KKy~f6gO3KN2%44㧙KKWG?P7?PȎ?Pğ0ku: K6ewg";.;/u| 0LN7|@%K~q~tz?'؏þS_P^>ǣAlG{U$<Q#WþT7FM?,8 ¿3++g E E ϳA=D / P#$7"%45`݃Xɭj7ZYm=}ke֨3J"篶}#l>Ҵg*[TqE_^5G J(>+[-ԭx5+@ҵjVz#J[ūj/\VNȫSo;Z{믪a_s6MNͱз}6ڣnouӬ7%G\]gݱI٫P[%k֋ ^k6Fջ YsG+I>Uw[v a5QI*ɹY V#v;;5nk\sznͮ:ccSsLk{ho3vAAZ]IC-\orgI:shFi^`.nU>0ɡ:_/):qx^%qk %KS$B+cEXJs@0ԪgŕXzxUȆ,8GoE8.CJ'`L 9^j@>b2Upa`&YBSYu["s@D E$ Ibs`Ә0_hEC؟y 3dr, †b"%Z,φ8`"܃ÅJXq)BŁvXlŜÓf <6-?j8^vl4IIY'7Pq'c)Ħ&YS ʿ הh70YK(­fcW?qո1\mF2hʲWe2%*'DI=Vd^"0 甾2s>"レ|­K\㈄SOk\ I,s&\ksVIZ0Yl V/5v]=V+Z pd)mP@O*qY , j6 ŁXĘP`U(hۊ<3jRil?׼8^h*~{nA[Zu[1T D0*7$'aqxB,,@^k5lSW ZS~B IW Ư 1cG\2`U"U% TOьdDň U\ZlV8M%\X3%WrԌqKeA !W TLA9cNS kLu겦+CxdeTO(45bd 1Ws)¦T˝3-\$/5 ׊3J'}Ur,hX48}oȷY$\ypEf)Vj)fi²ALRkf1O57/ v!Ԝc,Ų.0c)BYo<ŋx,[r,hX48blDL'Y~_98ăd']2_WՆbY UaF=IaϏAfb2W[Ob.>`рX|3ELFNI/3(c5cA8H.J l^ڄLR )N_u)KI(V*L?8rF -p&c`h Jj_ ,XAUS)%6WŜ {ɛ$ObKU / |!dPi9z鈢눘"L pcAp1<Q59*i 5e$h09?b1pL9ח\4^DD`r+\4l}PdKM, ̰ym4)9KJ8MG=,_f Qs,A {e")C?`/)|Eig 9kfb`LD̩D9p_}Z}^+AE){F,R]y9,b2 `b>:X vw]jmV? i, =.Pi=5z ]鷶Ksu=p 6'}?wv]ŧp^7b*rtvv۷΃oB7e{/ISuϻ훟:'wu @!"#$%2 14APQ&35BRa6qt7`sv?YX 0BpW )sNP$Qc9>gopr&!8?x1,?#0A b %?,Cɜ~_r!?1&&RYp311,f_y@0Q,B2h>c9_Q < !ccsg1' _OdX8~_x"l3n/1dX1r8syKQ>:-) >p~?X/Q?Ix0 $/O%(iJY,?ߜ~$E fYş$\a'rgG;P{8 Xq'8\&%Dp\3evK<1_x*SBȹ1OSs(Z%˒2Eള Jg9#2"xLD H9hr(O-c?Cx㗈1sGbg?Qu|A_1`xQQ1Z7Xem$\Aܲ,Ys!1ܳXsg,EyY 19K% 839A82KMK+ J4#Rp\җCc<_JM& ɘ@18Xs<䅑>_l*@ EgJ\aQx>cs}pA!,񄇌0ܥX%Ǧ?Om쟐NJefy 8 ma>A%'c$DD~cDi ]xҦ uDn=T]dM5X/ZiHqVE0K ]6J@kΦSwc xΑaGF=J:m E"bº~Vm{kd7[X!U^n^9.w<X<>C1(}q3,)񧻦eYzlU)2uJIi]&M= QhmoKHܒ]tp|θ7RIʖ"/cTiWz`p{_CwC×~_5pu kwLqL( Օq&-q=B֋ցK%mmvueCY7g]RG6HR܉zqc%dIkŕj++Y6!iH|ke,+nkhWycf`zlH*2$m(䜶& K7sR@aoBj5%Ma9mk$TmnUUïkH^qXX!\흁 u*`*@.^m<םMA3Ɂ5&R``V%ZQުٛ_@>qR`+piBg+23kk )Sws+HN a:!@eFQZɝΣeif^[L;Jr4T'Bk5ժ.igZkh[:te>9n>cZl7RSYeA\W"[;+AX:!Zg_cDxM E9JsSI͕6r|ȞH{i 6ӈ)bJX8>]5?; jWpY',~=mV:m%θv' ҵq놱LTcJz6>Uһurvp'l_fi?+xW8 DkQ\IKB֨[rV2emscYv#iib}\ASihKԼ&`;}(;*Mg6FtLJ: 5#wfI f<LfMhAatՙatlFJ~t]J;5|6>ZwnOjSM+_:]VgbXKW[b ]UzJϜUc \RltT2٪Duf\,:IکfS j[XiR)s K9b"xfGw_ʕuGmXs/d #bb!UF1&eb5ΚbPՋYQʰ0#HKJFRh .5h!kTsZYd.[ DRG9Cp89q FJ7U٪(6:&̡g :'M4X=)831_rWp.sQCGy@_#jr)N+ֵJ$IMx^QԲ'kpY.j{ qPwU9]/m6Kt,;˺ta+ {j;tv]~lJʌj(`kŸc0¼'g )4HQVrMPz-eo\YTӴSrjܽ n[/XZf8\n b*=CEdpr)-גW8 pNF( IHXZ??(6X\V}]NZ_e+6ۻUaP]Ah$ť[(=S+l;ðֵYZ͢z֬{](_urUhp!5_.e¬Mu ߖ\-ܴsj.ٙE"RBZ6tC'RWl٫wddV~f¦`kBK{u]mz5NWge]k&öv)n5ηA>Rk-ۄbBitYVBZe 1jJةF@t1`FfIwFՖRԶimHT`C xԂcMW!`Fa9UWW I!YcQ[-󬘋6}*X)*cNMo֎4V[:*.]M5u*t hV@uѰnH UtZkBּwV$x2f'aS$%9pL5Kjtx@Oh"vغ4x([ZV,YmsrOAz $K^3c_+6Ea[7lZҵz,:=uW:6 W<}o(vcÅyÔ\]a{KڊdBOm-Cd6_l7L㟌;NL9nTiѹg`9}kGռ;~G*/v,&::Zյ`T\lM+YO]`f":fLနT5ڶ{qb ؗvƾf זP㳳˖  T~"k  _vmysh9Y`UlUԂ%bۑ?m`q3:f Z;($uH _顯kB/\7lKZ-|mVRY^ /K*J\f xYFiɛ<uj׭o.k B,ν~^[ZJAH,3RMl g4/k HY2Z}@ᯍUYx{ppb ^T6@őjUMŷH2 J8318%'l65[ܽR?z:Oik/Zp`ć'rĿGU(5Sft|4È @E ɚ8l't '.H%Z-Fmk` Ӂ*Tv/R:[ 1fE ac2 m6B\Jb ɋ+.ó MȸPhT9qf-hOH$8Pi%UaL2"$1q9F1ecQAkvj}ESH IZi282(οOmuM*i]7O1ʋ YJ`]cWG#saI55&K\/55zvʶ]Qk/>|sޱs>j4kZZa]33rNg1VbS&c,ON4lԍ\*jlX?eEB2l8]¾jғ--*ּ5Mi\4Rܨ4:Ok ђbBeJ=z}$籯O1Os'CvЦQhSUAnٗy}MtxaTyBZoCro=[=oo .\_\$n6iQd 6Ke k#Pb4"%r^D+- }Rپ'5)+-a OgC%8˻Cs/[[zN_QOt;kvZ[Uxj0Ҹi,Phum129%ZĄ"xcxT{(&:Vn1v *:n줲 "˽ pe@2@g6]yMQ/g}P[sS8A$WE< HóDWM !u}܂kTنIe-ʃCi*$!SV>3֖扈)ySgLF W152 '[I ȁ(\G0H^P0-͢[SgbP{6"MZx`Hp)%Z׆ +[V -a!aC2UHB,|f?a'>:uc^h׷T|_SwV $epVzZjRHnbM[=Bk Y&Dkt#H(ćl%NT7$BWU<: ` b He*yaẍ́W׊% GVܳ q^A:!Č8WT]EhT3>ǎc:h b& "ilǰ}*W>c`y;vگñC<F8MPaH!]ZkRZ[IL5:̤3ڭVb8Nu[^tAH b2`1߬ܫɮ9fwg=B Ww ,ЕHe{bt"$V^7p혾YרLh؜ަ_ l;tBReTRO~}(mMN6wk=+T;}#.;^z&=5;T_jkoNt}Z{D/}@'Sn=GlOb"9.nWXW +W /c)%Nl5o\yx;>977/ x]Y{aNJ]C`0nW*HZRVm3Q|B4㲾חɪ[ED~> 5Zaj_n2&=)ՌSz3fB~Bl694ʡ0c^cHnZV;tM-)c*4܃ZMmnV_S5%0  @ ;):$ʐvkI:MURKI־FO| eMzU1 E_ ͤkkX1SiCQOK;j?Ez|WN쎂v;eS:c/rME5EO}H(w;Z9m:bNUz)47~ߤv}ksnn>^y1ۨig7qXGS\mNĪJɳ:ŋ5m5q &H ^isG|՛VjiU΍V<-jQc[e&WmUBh4h,X^#r'oE$ì;VV9*r:VG$Qnv`EʖX>VLknk`vJv 8`Cߪ=ʾFk*uܝUT5:ع +3~ǁ{3 I:HZS56!P#6 f.k]P$TDnٰ/}fyX >E_-ng@0{e-3ylEvJ-f{HJ83MvvЮVmN[y]ӆW/!Eەkѡv,5.T[tSZTٹ]^ZnV_U(կWYYk6cX^3Y֍g]ZD4+ʱ*V쐮IkY͆փzJa l Wo-Xe 虎n޽j}iAf׀սUaˬV,Բ`?N )l#3kا$VʪǶHb.d듽іPMX^|=Q^ziz+] 8뵬-#^w],)UT%StAT;, $#k\mj"#7ArzFA&qhTcZL횲]4ƿrU156 Ur g;VJ^yHn.26 u㳹DZ`:+,1g[ٮ7tr.8((M7kã&0R /12g{6*(B X<Է65.A6q󖥪iKŋ8V.MTOh2B5bU*̵q :K$WE*־_5BBYU9ov+N\PknMW7,kMrcZĂ0D.Ekg7ui f[CffS=[57.aT\7nŸ^XJw$*דlydLqI1ϗG:M%yFÃGc,i6EfRhz5'm:mRk_lF5őtr`kX*vZɘl *Z)١)]]FZZ'Dvۺ[;o-{d4*n&NV>º=խ*]E+-r+ʋ]9ZO]:Kl5d##gZ{ivsv3J;.=kR(i3(3i(fBPjTlCڱq$WqQS0t+QJJuZJvvjn+Tԫa6P(v'_Ԡya kU0!bdJ!UaquHP jҵs$؃f%])\=/1cNk} +*k%Z0Q@0UU3D"c!S$9qVCU}9-W:k mSk٪co@]Ŧw%GTQ_fۄe±J,تrĔ+ !VS6RzW&gZ/njhԘF͚JN fyf$C9,"ij_Q:NkU0Juz] j_!P@Jڪ ;i VW=%$ĪHj[se+ 8%I*qgz[PN˴m5x/ ʓ%[*XK5BY]v$]"kZ, kGk86fʕJtO Qxk{z^l`@ f'k[UD`vZ:WyWhAZV]X`(rY#GlпZbm1 "W5oEצ׶aKt6uecf܀Յ"4rw7+1֑wT^R3iMR};KM_`fJ)5KfO轘 ![nIaABqғF-}޳uVUVd+{Qδ|*\W`#HZ`,\/rY Zugb&'\MjƠ$ek5z;{]M{> mZ%+(肣2 U2fl\=sQSw{m5:Ю V{LRN ccg=MS@k4mS $ X]L.j,n*l KJ,#󉇴`͂˶e-߻z#0WV鵿C7v1=.OiH{럠n;ƃ9k֯lt ͮ T* V <*CDNڽ[Zyd;:,\G8v8&bu:8(wa@jŘؕTW%XUr-4eYS/U]BRAzvTUֱVI + jqdi eҶW5Cb{uƴK*b(W] V*pu)0RtXoC}K~/gּ:f/rײY^YʰTղ0JZ)t`v.p8?|l1mtZ1iy+9ѶAg8\ΐ?)\Y1W#%*šzLܢȽ_WLU-)W YUbƼrkԨE}m̐PꙄ̥r{Z>M`ѵG:E>Nӳ.KѰ$![OI!<$k.igʭ\a?aXZwk/ ΡspǎY뾑PÌ`Ox%S/d +bJ]h)נb\|@kBn{KYU]ү5kǓIzטvpcF2s;:C qdI\Y` s*ڦ*f`BpR`1 9Fcc(3ϫJa,ƹ]STNg籦V56܄<=nuڬAP3d|2!BCU1:  KT2'^sS5 +"Δ+ *Xe]G&)],-m-+NշjmXƜGX~+65)a1g,-RQoϲev swTZW)C>Fpb_`SypLFY"˜YN,R-ɼ`2(-cfkK #!eNeK-(VN $]W4²,kEhIYJJBʱ,NPSq]qƮ , (ͫ:]ƈ *ejigc Q5`*ۥugX@?NJmӝ|rӰ{gaNVv2H©,KIG $U;WsPƾRl؎oIٝqilW\J7T+NOvF;5ࡖ[\Sf;uFMRN] 2HڡDB;ņ +~?yC^IgCceS]6=hN:g6XMCQ) kaRg[A%cv3^j;3F.^^::m)l1α.dod ڬր^ƳRU#P''hNz HħPpNQ| XVOSքmXuen DlkI#Z"ɥ2̐J" [ o% k(Ĕ9TT.٪º&N=|w q,,|5Xi|u-kvl؋KTf ⠻J5h VM<+1qȴߎX`1_6l`[LWgKXqDя58 .,0Q.W,b1'FZ]>]Dyj}p.fuiur/-H1oA*)5VDWvV os> H硃 Re^-կcmbD!U- 8g}jk uİ,)S%W[O2ku.dmY/\P}q'kLMiu|BԶoxC(_]׻agF)>-^KX pJo40B} 5m႞.-R*۪5 m Uխ Ŷ 9@U-'Wl-G&!|S BZV?4Ĵࡳi#rn@.JC;Ѹ{Frp*4dW*;1ӦjPyzzlvmo OZsKsԩ@uj2ܴ{ u *4q*R'ٿYmhV-goj:MEr=$,v]iS:?Z=tj{Z>{=PUֶ5Ь|jL*,GgUw6[7ەɥW d @먬4m\W̎&$.hGXOEД859bR `ݕ> @1 ձkhKRM7OP{+@+34}K 2,u ~IWjW~,܍&lX ddb%kD⶷FjkƮlf] {]?µs[5dK;-UFݸ?9qwb k~___~Ff#ڳ;RuI6;5m&ïooB%K7͔Y:EKGB?c(64kš֮TΈTZԙ*JmVY3 =^Nr{UTyO3MG-֭ٷ/Iڻkڠ&ɦlMV`zVFel4p0| ln Uiz񣩱]sW555פZIVlf k*XWj(WYYIcuAMZ(ѧ{&P$_g_Nէ1-Ճq$vMmYX=e]'Uh^ &&0hģnFA"eA Vlb,n f1"pŵUj".% 0 r7W5kmrZ*(\e1C描g~l*\ S>''),1|!O DKe`s4F+-4fv`Ls cR!JIJd)K2sll#^ jlYƲ-݃oZR%nIf0>P((Q1u,2PQf_cՙHtLwkX:Wj9x5jufVZs6z׬[:ZJdٔ{]dGc!+q_ފ0-hc&K9kls9>fҩ6XK:ٍWq/9QmƼ94Ds_?UTf\LPѝ*BRƘ'Zs%iWe0VA j@\qg,BzҿhT 3|i :uu ݰB_km᱖51"I8⢀3Mī*™e"$1q9F1ecWZxk2Ku;_㶹.$Yz)]QSYy e:U>jz)nnZFPn-V Xلz­AvR?u+&Ak[3A|kyn]Z=mEjH7 Z'x3Jj?|>-&=bM}y]i^;+M}b9~f1 uS%`̨YtIPY4A{L00ru1Ƹlf.jFW⼶DZOLl{"IIRn5V6Wd4=[nS 3jͭu e6tT5Cr ,hgO(F1P[B0Pw+`iWm#ctoa䗋%\ 8ä+9ԓ)*gBU{BmֶZ3UjOBq-MSXWd(Zwd 1BrT\1h[Y2c7b2cfΚ;Gkw+j[MpѤdib$;Źi.0^~Ն5-: Br%nMe.3jtD%6*P j8}XZpSn/Hbx+7 {E6k,Aq| Qd;e^5H볱p݅ſ Y>32;n0vO2e[PU~ ZX 0 2P@$H"Q2ı\gboh g\VV\c#Y ]TFlŅg; Ic=#ZY\rqp|n #2 2 >p0FJ l:=] t+Cqk)%F&m|lz#nrz`S @}Whٔ+4Gx]&KR'kY\mɒmG@]A쇁_(-[wsى>8 ChuT颔v+]`}k e~x[{9[\1԰ʷjՖmSY cng{A|Csmf\ )_5 kh7KWWY)VzfACQa_W76}f7k*ʃ[ Y+ qlՅ[Z.^F6ůP4=z4йlXՏ$W^#J[}Ws*ц? 5۷Tk*b/wP 3Z~)g$ђ6h/bC%ZJCx BWXWu}H(:ϫvc| ־3.5JʃV+uԳ+[Fj`Uو9 IW`ϝWƩj !\Jȷ0o5'+UŘY詍z/+fu=ݑW0aFͺQk\3B(bGE:kZ>mn_:Js]sj ¢W24ĻspcΟWkR0n}MZPQf_c#1U)`W.kXX G/NEQt=}M7j\+䷨fS'kԘ2Dvڼ "~֙ke+KiQT,ԏux4һݖI}s\؁U=EMuel.obul]{v\VSWJ 3W 01YڏF;[jkipV9lt++N[AmAd >}s+nu䵽0R\;su,>oꚏkgdVhʳ򃂬/BDO{]^E}5/syZ;@9<G=au⾹.Ʃ=,So׭):30sA3ħ1#Cv=˳o_w;5]sϟSyr}Ͽxv rY*e+}nP&:5Rn^N% k`=hѭ=æ YHɦcv^a59+ a)k}sffqah=x19$D՞r883`ь񇶔(qj!U{kMaE;0p5U CKpg4~F،ݝצ&`[5o Yd,+9SbH," 介F)QB҇29:(K jYٚݬڝS%6tir'6dEL"V|.ޏ<׃nb ]\RUҪ@]kB" "a-b\GL%Ĥi("+8q̍5r8$ >띕GF}_7zϢ@s/ʾ¥U>cp=^p $X SX[/ "jXhUi_;a޷>~yՆǰǵ3 水yҞNBH"C|cxj90hx&Cmf9YV'ڦR5,%ďYUX\\.qqzƾ2ݶ?9ֵXq]J}و[9 IaVʸVr-}`ib#ջYܷz…NJk6GwI#MK 6nj꘬@ %6j':Tuʻd;(dM~H#h8d!v ²gµl[?cUnMA©ac`+- WSwԒi/Ju%dYUT%Փw &Rm̂lZQmT{vB}UCmiOmwЦ*؃nKT{vYܑOt :\8P[t3d.MYd]kw-Jt+6jR&n @'G9d,G K8W.HisTm^fmf9 Z݁f—ki/L&˵V7WbasgVƯRJb}fT$$=u=G[ŏ`B%s~ Xkc)Նt|:7YZ֬ H_(Y-DI-2G$bӤ5+޸KRE╾ƪ?#)b Z5֭V K+kDe6]FWV6Kױ|x Q-]x;VqӝlX=Uu+_O^aQP20zsXr&Sc_ >vC]{iKH5]*?!X3~X8qV5j+;iV]vH6'ҮfYZVAjRظ-A]XPl.ϭe=czԨi8 sj7U2w5{vkzZ5Q_ 9Bc/wWhˉ޷ BZ^[|:l${=6Ϸ5kkx%^m,lZmӡdP !X@sb"n!x>|#dX2Wdόe3LJE騱/DXb!sb,8-OԳJ238 2瘱H&>r(Oa<ņ)gg1 y'?N8e/`|ܞ?ɱK~2~_ ل 03>x`B#)Yy H܇5ǔE <8"G`EHIys6}Pg?Y'nj1~ٳX^a "f!dbqQ㏸Ϗ\a/U??O91ݟ!f4"A9OYg8Տl=8` %8F~qHTOy/,Yyt)c84Q%)y11( br^~2%0,0`q<׎?Pdyć(>9JP%(2~ɏ(Q E">BK0 ĥ&12gX`/י3}cXccQ1}9ܳ860/鯓P1~cbQ. ~f\W"ԝ1xߖxa<{ꞳAcC[S(v"wTxܥj&#׋yN 0T|o{%]\ӹb_Vz*~d^g[ [F<=~OrJG*Tg^%zG܎H&SPb|W28ϨA=hU.xSv>\|W%3!*f Jc)v/71J6 5Epԡ6ٺKU,bZI]vA-z).=A@5Ϭ0,7۽۸ے]'~W5dz_=_,0*_ j|=g~V>7y'g]xwݼkCڭdrq#N? Kr~m|G5XL*׍Vǧ%ϢqRZe>q~Q%_#kW!_yV%&ywc3>j>qANO }KQ[`WĦ*՚ΟR'kq9 1?d ˖ʯZS~_2P0# U^Yqn7wVY?_T?O/LlokFWxErOq'6%l'=[<p(Gzj~Kv! [[ icWg{;(< ωBǓzYQ)Ec2cN kҥZ^s(1_)voKɹ7^Awx?xcy^V}F ˷*~7 䡌;<ޟ\Vm6yԛf|Wֵd| նPuuYsxdǐwr>q!&V,|Xj:<j%WjS_п}Lbךce| |Y[q)3V,W G^\^Wo'JKm3GsXBWam5)6[/E3,ױ'a`(k_,͝LjcrVUU\ǓY}O$D]* >s@ݦ5LFόDj܄!Pg>nZdDNzĨ[UZA"մ$&rl`SrlI-mB k`@`}{̲͊UT$E.rHud«]*j멯ilRVmii%k3-S΃33]k{uUq^ُ7rÇɪJ-#@\F׳e|ZB[ 4=޿?sn<|>|{߳]T֗6r,P'66MuW©`LIۆiNl#sEv***wE|+6cl d $$0&1׸J5Uif}P)d+֫zE.ԕc]&w(j".ܝz*J]&,/yu V6]\עE&Dhi`b=WHOsy{zFک48,kLӤql)%MJ@)v%i̶ `6'2kd'b+lu aWePΚABDz3qmLMa3ꑰ譭{k!?FY+>aMF$S\V!2"!Z4,)}dDfVdYu@MZ}SXTkBKP֭ٗmˏ5e|J\/n 9J!tMBYW*&ۋ| R ͜mЄ:#XO11XƘ) /ic. eG6K6aXOͦ?Z3ԡ9;ɳN6YL @XDеj+ZyajZ>\XV^ʓ$e1!VYHZ*-HRmenmTVX^ UY DE?gư<{Kuze%} ]+ܵ'`+76L8h0k58Ц|i0FA^Gz݋yL˱ץjʀh.P.`G!'-䝢чd)ܵpPvYYD 1׀kR50~vE[$CY0ĕϵaP7lKnԱ fvƕ ɤaWxX`AD wid~2ĔY amVv` bcvu~۲tQd_€[+7تŋbRkY ugh%xat,Zj'`JFn-maS߽MM蕭#=6sێ_o]`6bfEĔhQj54I5 X]ru.:_g@bV!gf۷m؞)"DdE5]lulnAJnL W + zWJYMbp&͞nwB;6~ԏ9lPOnuUHYi6my,-iK 7yVdr˃tl :hq)ek eg$pAD, fG]tLQ. YOn$13yHőAF>sg=&9P C d$iIsǨDvFBa29۠`ľarqjspu~^gyxfܨ,jhmu˞zT@rbRg13HQXU{QYs7l@r5d:`,c FBQ10Q:L}mW,\u)rtL2y9kp-dY㛕mlڭ K/T--4m[ F@ $4c-n>+r/OmF9mIrnC NHhcj9T? f荅XP6Mj\I$AmBxCf1>w)T+DӭfتeKqBL'&K:I, !@ƤDSDΑyb+-k d'Rs`M5;Bѹ Mr 6(MtjلIzM[ʳ$\(U/>cgi]DyLk7.נu NB"H>o`'VFēI1252Ԋ4[]dRAMg-R5X^ЗN#GmTRZxV(3^yD #\2lGy>2x󎋘XIK3y ,7U\hm}A_b!Tw% {pL |NFO|n`w,{#[Uw_>8v{7m-,*ױeRkI90bdbJ`gMJ#_cu!^YZa+YˉMMVIޠR8= H{ɳֳcN_vkf}OdrsVlmzUέm4 YX]T2HEj$*&GIaȀr0yDIGQJhY ('J Y+d B\ޑ^hoD6^;ܘCON2xIDLto98!`NVФ#gFٮR-n=F6HXZFЉHchTѫ4?6C1|-&nZ7-UxܬMUC\`:I@~ >wF\ f\=}֫oN;;m_w iǻ]FfLh@MpL&Zhjb:ʮkڴ4֘c`cqƥ01b?ܩzڭR11tz¢ZSl*yx rW<R"M6,l/^@Olpr"ݤ$ll€9ΓrU.z%QRֆ\ I@κLzmlڭ K/T--4m[ F@ $4cަe1(f,LJ$`O]lReP7:F"{7kQZ 4Թ,cd@˰^ *Z{DffC"uC]pd1$ـ lok@V W~H.!{dڅ`'{ Mv-^1MK8UlV6@gsirfMV`e"Vߋ= ڇ [vY\lV,RtN$%zOC})T^M|P.G&^0S`X㉱f\ JvW-qHw!6rf2g߷vewmݮîkϣ:X&%r ZA2Fd#F*OTv%5^d궕IKF`vzR PCS'3/#j1+dr/%l2kWdop`=DDpWPvr0u[KI+")lLd ͻ c$"?~2<%Uh̓A6k'E+؛K wn-vd$4kٯ`2̚2)V'=ƐRҭLA-&H"9fIqd*8q{M\v FI"+bbG#SCbY@& 0 yAvMHi@Zb&o*U%6,Wi޺ccRKtMk%&nxvWXdE+~KUwk>s(nnvtX}N>ՋAb /%/_q*kBV%guqHWBZPj7X{yԣz}\JjTdC]NTYHq-RWX.a#m=Z^F v{WiN=Db[D? Gլsm{dkaCGǗOGbB ;# =q o/8`/$B& Խ_Y* bg% PJKyƆV U-Rpr?ؽMpFKMp~=Ǽ,Vm|c[Lbs潥65b]`䔪J&< (6̟[ uq^WWh{qf1jP>g5 J-K/BZ8b9sruof ٨,,nj! q{0yцp׋dӉjԵs퇘FﲍBm->LyTH $XF=^Kޡ bν]v+ma-%,랊s&1yO}k<%%>+8ܻuA|Pnk+؛K wn-vd$4kٯ`2̚24&mOiL|DHɕ48de>kJWqJmzvl5’F'db4\XV,)UV]xLe֘.?bN *l6kPlkE]qZ%Î2_mR{RtJjZkwz#Ԓ~%>\BW Ɋ2\Ia֋CsQ;{%VFv劢Vc>nrj+dJ JI+QJM3 "2ʕKuuømp+Squ۠mLi#0uğe.AD:T5kV5-iu{. [ zUmYj?.O!\d=ŠzXY%TAU nG^l ^ŖAJ륯8 $)5(ӭLZլ&M\> 6 JBgrVyAI( DY9S%ax"뜔|q8`&h1a4Ma$5KͫwBhvLʠ Su D T咡 Olo^lle+V@.ʓNx9VR7o~de/(dsBU9xb?͈ |D:~D35+ Y+": WJ޸DQs:u{C^C#$Ƹ%nx37+'5T&Æv,W MzqI? ),P,UѬ6FܱM]bAnFD唱[~ڧoaw_qX]:ۘ0Do@$mj[ÙEVۑt-py(YU/B"#; ,٩lhĜ(X2Ib6me=w8n[^kdXhZiUd Sy;Jr1" T{k a]PR j{- bMW >k @M=7VY*7bʳUlAjm@۫E9`Ҳ'EufZ]&$6V:>~:.\Cg{/ۯjYX*Z(jߙ66?\ejeH\n<7BHu&INȕbf֪۸O"h۴gWnP. X+LJk->„J®5fYT &SBbd4F5>S`fdja.[%0&iȇw9G PVIX͈0ۋ1fHJf [,A,#hmHҦv@XBťV,Ջ03b'j0(_.+64k') P9q30+SvD!9}J$ZͿ)6]Qň"mg x._JE4‡zD7suov[ɧmo2zkXf(+~' KzY&"dZq-{ Ly-k)>2Ud݁ z hbDzHv?2+Rl. kXF<5:'Jv2Yx1ւAX Yل$\Y4p5[\ˉ+1'_nʹ Z- F*m "KcXI#F _ca$D2LMJM˛$i|wh] 8n)4;|IMVOشrqmvŀZxKAR}n"[D_`guYf-&n1 %c@AZDU/ Zy@\dAb<*wr;RNjEe?=vWnĵ R޲SGp#1#0@`c0kb!b"ŐE8䠚 Ed"1 @r=S5 9 cgbJ ;ꦚ6ömFb\oXqj4SdJv`2w5Gr+T@EH})KBJ:̔ɱ9#kLaDdE=t~%bQlYPӸQ(JA1LLaf }h]lG!-Dll, d&0*gI]Ɔ"~ YifFbg۩ 5ut™U[,l9HEF"SE)@6BiX k _UK(u{,k7"[&66dɱ_R]}ϯn%ۨۻ]]4?KMn46Œz 22XclVjǀ]YSf[Vܚ(,$[~@'dk 3Oa1ExPf)qԪ+lvnpAcMZ5%,>\pd2.&Ȍ/,bjR&J5Hv3&k6k]ef.Xbl6\yWmtUc~y5Uf/%Z:Ƚ7l]Ewe}7auLTM+,bi۱6E=B_'L* 95Nض/֑̕bT UPJjYq90džuLMe=ٿې u>KYb6)X*`l8u☀ИVf"S]MEnjۤ\:_rDWXcN5lׂritj|%*9ݢj\#Л^K/q_>/}>g:??wk>,0 n9G2"٩n"{v¬ˇslJ<݆si.;ˍZەb[fy fi׋SjC \۩{rQ kK޴58dz~:[kQ8$?1;45imꊭbjX"MK]֯aDe 䡸䭏|ZBA١Ϯ\iwUb$ -h-Q=lCUݒg[i"Ө$lv&+Pc)U.=C{QL DfFdB޶?$RB%+-%n'a1鵫!.b z OQ"&'Q?ԪORܣrŖقq#:AFc,kƂ"1DD FhU.+Ӂ͹/Sqe0ESDJ&! Y[5eHVNXR!Z~W"W6!f sB !ϙ yN"1$S:D};X[._1ej? uMudc,FGܦ9eȏ A)x0xؐ/O^Ewڐ+ծoߍ admP5XMQa;UWT餗d"d;Kz+ aNXӖ8PF‘fu&&-gDYbNEEJR>Vf,]Ǒ)GB6 O1hnřkbƳT)2,[:ki? g 9K9XM>v%ҭ+ҶuDk(`stX:cmCdw*Yc"5g|m䒪#lĔ}`m3-pHʅsOŸ[ \$ҿVcbI;nef 8JDghhDIj `Dbk0EovY3.$BCTl,Ň-eGZ@DYX-nᬠٯm_Jq9$Qe!j-DLPLdُVm,Rc DJUK)6kWL̕,kVJ(ׄRc2[9P4(pW@)V\~h쏐P#!e@ցbExB̭fIGwq.O]315ɱ;EMrhV豕)9߮4䛡Z&s+kg5ύ&$ZfIHDY"#l,Y4 iŅXa_$dq;#Ppu O]{o[+-EQuS'e񱔖("jXfK,mBUd"ז & MeQJ 5K|\S2zғZT$hV2 Spq۔.-|4*(ԖB'E^eY*NeZx懐1bkQ!xyaۈy5Ez+ ʗ|Vxt2L̈8wTk5ɱ;EMrhV豕)9߮4䛡Z&V;V&[b|m 7`k!5VayJB rcd} YEh RX'fz 8z{Wq-o?+|3͗+UsY†M`I VTr'iI(j9Q冭֬"FN<Ր kbie^̑J.Ҭ#Hݦ L2o 1I%j`5UVz@^Œ>6Y V!6ѦHHB[{*lV 3װEƾYeliaU*vŇɬMz&RN;.daZdn6DrnTb+-Vڙ'Ij'PՕ+ lQft.dmG*_cYO Ka'fuڵm{rla l9Jdi&5V/lR*`FT۹HQB *YaqB5@q|#3ǦV=peDx+4qk QkG:ɀF dD+N+NTR3?lzf7휴)7brUA5ؠaGY=Ej(H`ePC#nm!Jc?MQuZW!;SrdmC#dXs3NŔ6Bbט&HJ#f{cHd_Ld!#N@H2Dft3Ԁ BHDerC r 3 Ѥ2=:*#X,7$ )SXV5S#S1Љ9/uBCaA1GXHtCZ"}?Z tq6ű 12ҟdW04$ 7:ii!̓אY .Z;tl#d4GCtm͈06@[|Xf8+7L-v2yD/D%L?uR;@uY))33)crF֙&0ȊX;g*& |m v47D`k;Lt!tQZ6X;b۠`y~cр0 l5F$3L Ɠi֯K'58aW8R@c`@X\^vE , ymM}Ż&kwM}*J" p*C%S*d5:z* ([+PL2d"GC3ynԦ̥Z*=ǔŌqZ(͒r!*Ѯ2.z;~1uޫJBPjѽmը ԕPi0zdUZ$3"˦bπxٓ:W 2Hv5Uh@п*rآ`KZUYF/MBVv1)VBDNȳ4cTJjv&fŵ6=0PU ky0;kmqYŒטjC\/=,5w~ի Vs㤤2F7)xu;ihDVzlV,zUY'YJ__y#,iHZ@R@% K)Y @dk?l3 cEOܹcoPy{,|sܽƱ8 6*?;7Bk dZ'J%૲>PwU (\٨n5XܟxF;9ay"f+)7<u =[9(ǶS;#1Ii~9lsZPjǎY~>L\s9:wj)sar![m+ۯ_N_*/'Y%?}JyFZ#l) brtxK*!港4Qu' ]\\[b^ծL{;K5kNZ|q6<,xW<̨`'xeu^\~>#g7^prB}i.g-|h`W5~nj;'O3#㠋)dk{[ Z;29hE x4>x &K= Gus\ϳe fpz]3S>0p^qO?[) Tb?#msnۚ2fXRoy~(1UKZf&[1o;ͫS&yssǓү6t1oxcO+ f\`}] #f}lA?(a8ZA^3j|C[3j>=Ȱ/Hsp5v@_֜ ^gLvƼ0d՟ujY*X]!E)VC8mo+qyWYO7nm9_$'?SFSgd?TjbΪEԮ#-$U,^ahAoq8z1[f8݁VNlbnjx(-kQ?kW [10>9kVm\{fnf>SP~!/akkͷNc:v]0"V.ݳfۅ EUu[xy{ߘW* 31S˝U|OvDa{|SXSAy425arߧ>Xw?Vt,rx\c}&+L$bhd)XǝCQ~MRomwx_x%CSȮߋ+&L'JfB퍯_M|sv++opfS/yZujt);V'V>wv&[>qb¾e]"cmE?E pY<}Ok:* eK>-?aVy3s'RzXF7w+^Z^6,(rJH, bT" gK^5~!㗙]p/\mBaeV* nRuͨ2I5 a.FMK-B?@!"#$123AQ%4 BCPR&0SbvDT`qrt?/h~Bq4fIWJp(WsSGcP\چ˩UE~zOTղ'|^S^XnR~h(VVz8"Rn]|y g ,z;+Ku6"{8#'p"D8#N׻Gk5y8vr^lR˪\XY A%T[mpEQufp 1X26iV "Q1*9 5n17_2^rW~O_zζvdtg~~ IlR3KεBݯ# WvbTa~F2,B;LC=轍hȍ5O}L2FcdRI|+Kn6WY\s ]BLq T(kZ {lUj \^N@)v"~H\h_' eK^,61QnG 44j~a;eP6%`&8T#Ȱ~[(%\hw3YG{1K]mkQeK^,61QnG 44j~a;eP6%`&8\-7nbcbZ92Ȱ~E|QQ^/fCz+9`_]H0N]i WdR?Yt0tyj o?|y(?rmehiZUp18 |m@0OlV㾨aZs=+joJJzF+%S[Sdq:D.hU+1ٝ'Sf~3ei۱Y'G5Nssu*:NqzzQw#P5ƵD*19<6WIc4cojyOg9J(٨P-0XᲹM9{9Z{Sjx4{hçVNh&i{ƒӘ]\L#P`9 #/q3Nj,/և/՞}3KI>wFuhNGޢ>Us+Ɵ,FuZG;b["i< yjϽbpS5T˷iJ@Xjn}xv YT5Oŋ-$x2_Fŋg K Vm5SZT*8[Xحt{":#;g Ҽ~û"ԸK^I2y|suzѻg3^FV.m:9clVխukZ iUx5qoVH]pYʖմ^{SGLtj̮F 9g޶lLsdaTx5ZUcz2،RSԙrd?>0 4qK|mPn'|{Tpudq̊kSZi.06nztw@jW^ JO/?wNdƶ##?>Ӫr+}.:}tx3#6au2p|ٛ8z"k*=]̂18~FKP(jX |rKYr^g/?Xx?hUvKiZ:!FNίcS"o;*&cH)j<}}=^g[_eLqW3>O8ˏ;oQ[cd]zJdѺN~NSl$CGGFSc#BG+Җ:}3Ku Fj/5g'Lp:tG%6[)iܵ{9Wc2:t^jۥ5ٵ dpyYԹ/%W-AL;uVw_ic}<[,fu7;0ڤWtcbh*l&SS`CM@FO2܄'Ibk{լ15cF)WOy|KmUgRF}6?\im ^S;:},Q;gSyyw^ ridv_oj\zq`y2foRh]]YG>YL;ǣRm5 ꮦ3 c`fSS #yN# bSxMgxFӺIxlݺF:%"ΐ.c7<_rUә !􆆨L岘[ T?GRޤ Hee5WO1?H]CciuOӋlcُ#FWA,N"u^ +ڬr.M){^}#c@cdWb#&iVNk9+:rvn[5 u]eakuLEk['G ҺZ]!?ՙ rye!!o2n0rtPc[_ީv>4e k{5*өKx:f5N6ctu>g33Vq9l4xhj驋cMc2u2] Yg5,Got?4F%ָ?tί"R~;2%Lז`vʮ6Z155}`i>Ug_T0W ;Y=kEz9tFivbƆTUlhcK+crYy5sT t-ȂQ~NG@h#ڤ<Sh,׀5g3q%OO5b;u*4}S ː=GVjH\u )++ OdMSɊKZ ݒ#UX/ȵg_hU9vޑ5lr%(d@ɦ{b gbk#ujTl\G_S圆BXeHЉGi[2 !% t D ZfuJbi eigvyXl:q.-}\½RX᮶p_-U~! P_Q pRQ1JZ{ { t1XbM.|;p`/8 |$BE4P#WJT26c Vɜ4 bKxhI-}C;O_)89@|r߮L8Za~?aӮOuֶ\PhH9펥$~9-]^43"Q҈3 U'B׹9' d"!*Ye*-*SX]@̢}.0ܦ[l+Z\6̦ǃyH[&rI1d-DnػFPK$#C1;8<>5+ɟW],<+(Ƥ$-[4pĕϋZw6Kk?5R.bBNx3_TTlɛfW% HTlPD8֦gf͇"d- UF3F&J@(R#1 TB8ק5O(-x3DN\f䃻Oa|q:uz\pعXa``x%gI8qv,`}mj> mwf=&(V> }-ILL6&K}'L~7Gtay7ymLK \8dHGH&6V8:phڤ-b(澽rBH)R"=k=a{Id9' r`b=<|Ԓ&- s |&:Zh4: QŪ["VBL `{OBO^5F @U۴ ]S ls6Z^ )Q"M Kaĝ=P P_nU( '\7_[G Fj֥N Jq{ijXGsAKQ+r`Ֆ&ze< c3;@D3G9ئ}Y(^ "S$L>TU' sFK 5k4=Xcx9V56A ȯ̾_6o]U[Lyc6J@VBܫ*;`=nR6xp R+/CȭA T҈PBV<NpR600ԁdz}NBx?@ٷjW gJL? 5XI;Z0LsZsPY2]j+5yh4 Z!1a7&ł߇X~#CǶ+yOFthˀ!)JVbrHV2639_ZJIDkEHasoa-LIvBښˮ +`8KTem ;D mCF Dc)b73#k'siSY j *;tすcQ;٧'/^9v%|S#q_S=K8 b0(!!Hg 'b}}W8Yϔf )B@Tfpc0b,pCRK$ک(b# )fwWju Us&$Y8gQ#n /|Tl/o`>p9`m3wʽeVfa5];s1.a)>F֋'aIpBi@̠@$ayJ`P7nРaH3>񻭩FiA2El-[G㸤;$4<[rB86_~hzZUF81Beֳ.#3>֖fB" iIDL@dϰCܣ~YpJ%#~-*?W~cDB'1$ $1GւGk3p4nS XoyZ$H0dʸL VmFH,lfGd$+qe6E?h%Z嚊GyP'C ЯFY9+RO9Xx=.i!loy$ޛ 0Y Q6fI6|r 6 D*m0Xg:1$">< *B660Fd`p\C$xv/8>=L.`h8fEe3B~l,:*!5bs+lj`>Ȇ;u\g`!5:T .Vk2&G?@mDs_k4F]NAqπ-户ĝ|`U/'XFjX)^ pEJ BPyIn _V밒EylSeW,Z$x6%P0k_mQE]I# f 3XVǟyu0O-.;o>eE 㦣 > B Z5%M趤+kB9'_ YL]MR$,ANHvl0mr##RxMUw^X[j{yTJc'QĤ}qoApO$˝GG .?%"EsuTiQ-#M whrDO g~BV@Æτ_$ln]n RH9jkQE55My)b=k*P@Tc-51ECaNQYH2 _U8jkBj%̮-Zdm@ۅ( ;Nb*t,K?XqsM#rC 氛ZqD(O^w}D}ؽI8t*Il-(ȠLVp\ :|~棪2_2Xu!a֩T q_خ$ƒb ]fja̕ IMyyY` %FLHUxmT}j[s."ĨDD^ v2bFdj_*˸Ȏ{&.[Vgy PIKn:#1`H0I VʠIĩ"+}s_Qw8{l].mAYf6&ЂLxim 7i -4Kh;ĭff62vmuAፅ7y Cifǔ|ec,V,(R nnL*iԩnkwa|T-DuIJ^QLbX td.x%dGd=&Ti 3*(\2VldmA ńJ{(Av$a!^n(RtUR7& rT]8J| DpUbw? )nCBH ijdT0e9j*v5۶z 2=UJZlk D-ްY[ay3r?1f F,{k'TN:abN[\|s|+|OW>EƄr"H*uV*kHVN 6ب".dD5G~ EP `qab$roXL?Xb;Xp.Gh.UX4W+b+ t`ǩ=OLDA;1ߋ H , 8d³"y6ERаwX/Y _* &ƫL-qGR ct zTa YbTL]7jܸyJ9ˏk9qyqÊjtElXv?! `_JSk4&H.|;oR"E ttGJѐe@Y-Q&JCO.1p'6 ;"mX--}"'Ylb&/`Y-2jcț-w,XR FfP DDS{LDGϢ>0)rK)vy\dqpLşD9@i&k$iaMi_o7J0#!%&m2s_uZh͂{o&4`kbk l f$";zIE k4J 2UuB1aJ7x]cHW׈cØIFץ=P0YvLF: qY}BFV]8c9!ݑ1%x~uжHL[8pp8%< 8Y2=UJZlk D-ްY[ay3r?1f F@[ܫ\|_fqJe5wMCJGemvadEl3RJE.1K6kD@`%!.6CM w#)"]uf"@5Q0c7_N @d EuJ$K kUĴOc9TH(#10Ɉms`l \֩店J j 'RE(Dj{-#9-KHeJ_E_a~'WO gp$y; 3HquUPW%x 5mb^}0p0BaO=Ƣf@=1>2{d y(xDȗ\k1-Yb hL',Uh0E2Қ;UtP8gv6مOg20%_\&J b Pĵ6 RkWF=uIфwErKfUL+VIB֖_2Rۓ%r { 22Ia# òzkG] Y5r\#ZQҾ Bk3$WG62)|$;LHH̃p@" Q@S+ iGX"pJV*5c;nɝ}4 &Zkd*PP Oc'""# 1,@Db=#MQ*;Cr4 ~Q3;@s.]5K (X(&lZ`YJAM'>?f%Q!xu"JL Rͤ OpGT MjSŃaQ,u`Q9Qq&~IyeO _E<1sć􂉂b@bBSߒབݐ1xqZvX,Ak=tI"=Jn2Xj8)%RxtLWqVwEb2H)PjKX2s8C-k9S ph_x,[bա YD;c&9x 埛ZeS&T!4`l 6j8XuRlSm+/eoᾫ-rS>mÓ.jȓ."rabM,q0Q[U?Lt Y^R vv%5uO,P]]gJE&nb\T+ڭRw$WIE`.jT"- i|׊nMX)5:J,ZǷK.ϗbZ~\H7~L]{t+YMVYa4e$Ȳ,=,%hU;g##^?vZlN`4RׅUXTu k#ǮZū2 <x b !SIDD%.[ \r6bka%Ec&b y /CnB%z`)P8xhQł3cl[_? K LF@cH3N1Ȍ̤dr")yG;:eX{0xQ"X[-GyGN\ ~d?< !c |F+KK~+Fgđ`DF=}#gBMu)O&-YCR BUŠlub#3تbUQ {bEjH`H m!V`6rJ(xL IT3۫S'h@ `QaXd썦 v\ŀaeg ?)8);K#U鏓8;1r,YUwMCZk"P,% *8^*+& Q>S^FH0X0aT)4;iҷ lz|i+p!ڼ0;;+VKC)W9UnTO@#y;]~HpS ŘO]J WeK+h8qWY- V[]*~UI zPܬq "!2fąf{6"({YŶ=A 2u"g-9Skp?"c~FdDS%3>@c2$$3!(xV׮ƐFmrd'0ГD\kr_|Psn8-5{F6+cc ۹ɜtFD4D܎=L5Al=W"e;m\Z$JA̢6,֘ső! |!oBGAe5m:d@|-Y71ZvU iS.YP]5֕ЛF*Dd&[D22;^ %vfخюqbz0&?n&smڳ_` W9G -;{O[kjA( { x.6X»"r…K? Wc 55z,aMCrE;TɬPE%+3|D/Ȣ-{0U&{v*ɳ?nq10 h?5dX>͔oɼ x:kHl_ `((1[1zRi8jWd% PE0c[l3`>^p,G~;|ӌ,d$ A-='L@k %S,HH Qu6(Lk1D1e-7U/>S ڰŌr!2!\F%gF=TMU\J^l";$c}IsPr!$;Oo@Q̌OB[m}σ t ă;8as@`Xb"1;Cb=_P`(` z\Lv9_v/{c`Cl_jx,DxȎ ކ[6x"\~gȿ}Uk2k8YpsifF[G#vC\ٮ,9H+߀7ϮYzUط0`DWJ o ">1o݉2seC|E7~"#Dz\70GP?@3;XP$Q.{HIS{VKR#c;s4OǘฦW)Q;TRT;pPÅ O)QILϷS?v-sE/íeԮ? 8`(`D[ D @@ }L5) ,r93zp.@a@_!^gȿ} ̉ $%Q>1ť`OCFM[ )g~1k5%)|{F"y K LF@cH3N1ť`OCFM[ )g~1룰y.<;:ϏǞܸo'Y{HR0 ̑N d` n^E͉5x0É4q/\8D+ȇnHĢ1U̽p*8M~)B$I7W ,jTX>m0ia0:\,w$}ƒ_L" @kMTBHT&,;''syQI $[ڛC.t7X Ʋ)G:@ >g /b X*E+dPQb;y;+rNCqF)PCF ,9֦Х>(//WLx-@mRe U'6xV51%; L3?XnNTe6!)UŢS*8%VYhX 2bT+,فʓS%1)U=ٮMjJ 9og*Y!8vmϝM#"G܆(BS*\O{.K! r]Mq 1oEscp؊9j4̄CV5Jkpl Ϲ;l~Sz6Jr"['*A*xԧ WqbNBob%aN6ȹḧ́Li8tdbH[vxQ,k({t5Q?hynGO}|Oɴ(P!\^JQ6 B閜[ga?;90@IOzoUuϋGMus:#f\F(PUB̝d+&ס] O򾛬(ZV+` b yq8@Ko1>]C}gz+23t2C˪]N?.*? nҸ^RdHW9Rjc-[ kNUU['~jRt,w Gj6j-MlrGǢz&Wo_xf2ET9][Ǵ[29o,n;`C'PZӺG%hp0PN nG.-pgsIb~4s#HjZg~.X3i:RFe51} qxZ ~8ӟr}~Ҹ_CcՍy*-֭x޴w-v43X'w0XWF7U.__K2-q*_Ɨ<4v>鎢V:ޣ3"|U> \͚~M`w.!b(bƥ;ieޣ1#/rsVKYiz{JE=qkEjJWZXT-YgQȯ8龜≥1vqL_=m"渫"5#K+VYe/BшF9&q}IG)W*j6ڻXaoŅJh\hh\Y$5X, .ӹrt2+MڔX26W mX"uDh |dgR=e]f9}{NWYhVW,[2 u~~qIsl0)CJ#7kvTofF1,zyV~3L^a"I\$5N~=tz7"euY;7LrV v)(!1AQ aqP0`?!)۷ %(+fEoHx@4 fի~ a4%@ ~o)!ؕeba2=Q0D,e0Na2=WD_3\$a;%&kv[",'&%!ؕebJ C+0>?AbBr8F `MФ WSKiTf|jדp ;]-D 6⟄ ['og 6;:&͕&E`od mb%OCfjjaAK!0Gf=@_ OטxB iH B) dQ3d@CI%Q˜(dH"Էu&`%f|w2@$wU 6h.<!J#BW= M26AN_(ͬ5^__VxE _ZlpJtT81-`ULcxbgfJ  T ޕLY@*}A?t ?H1ղAX.xBeLy?}izAGbO69k>E[Ҩ%V\gj˦113WLgCnRFQ4q4GN PEDt$y}hݙ0>N.h'V`Y c%eNhxb0Pa Ԃ3Bw8ٖ.+=T0 J4IސR#3jI-RR~V Q1ɾ'4[[[8C46Lf\wϱIraHق37Wm[t}+.žWԬ:ضeKݮl[MT>*4@FdQn@86Tuhv>a[iO 66xB=., N@|^"BCyWPZ~GK}MqK'IOGP qݞܞ+ v;`oW냝ےӧ'ml(1t|LLY|>Yj0]d7io Ap9Tǜ O${-$%Vf`(t xW9oC!%^M Qz4aͱB40Jnk)CdJ?ijm2ZWFAg1JOX\yBf!X6̈́@2y7#@>;C49az0՜N&|s^X/;ʤ!0=BCj0!= HpF>i6+ x;x}D#Qer L@hyy<13 `kGY\2)B`=#˪`viXԜ|<΄oƮ?~^ +sB]tӞxaQZvDwGX0-TĤ. KbmVaB Ʊ.?6Ede8L1ݓXnO>_Cij̠P3Kvq)97;xViA$Ah'bӬ (my q `SAeT~Q9I7Ad`v OpZ pOEX*P;6xTp\7 'z  7Q7r ,̥LH0y'`7lHZI1iq TQ }5F_&2] l`k5Er#y4PAz?Sd/{9cpjMFOA7 :Var L!]_Cijoݯ+ oqf‡gzWA["cGa`>* 1( 6(UĐOSer u@P'Y+WaG^l,[-ILU `Q( 0Xh=* T1J>GU A`o=6a(x I!> EP<#vT(cܙp`A5IJcS_S +V6T/'Xb6-`+s&ƎiL CPku1Q[Sut-=h׉E&v1f?[:\]d> JzQכC>]{&x[.b?zu-Wekz#cK.ߏpc  hӓ=K͟ Ó]VnoW<W6[&dJcՑG9JDk*Y#x)F *d$e8]v #LWHu҅}yD{χ#2 tAP~>HdKv.h$/>@s$laQa@CT< 8ᮃoUpq PCK)L,BZۖ@sV̟?M|46ڣ53%RoFgd8E&hX /  D@Q_NRMIm<*8~ YBxg UrCVQ-zTAa4#),_zcXy ;tZs @WarY Ijp߸ @x@As:!0gcI%޲(F2+HzܰgH|^4(TaﹶUgLP%).bKRmQ!Z#fgA-L  v՟g+3ABDȘ?8bX/4Tg>tBɨHтҒ85@@V F474L}m@&RPɿdޛ pOOq[v(vD#Gi @O¨^N+Tj #Swse'ni߀_ 'R!A'ZXW ̰ATHӰ[@ zyd#[$9_W4s=0$$k}yi+u2m*QZ{{>}3F~׻&4Kc1zFb]W[PFm.d2NGShy%KJ(_gT{޸~S1) יAd 3ʨv-$4;ߨ>"p!NJNejA]J@ y@JH D@Pc1")ɜripe=%7,>AL/d_n .B5PY)#(*L?8J'N¥m 'Oo1gABDʽ m6QJi:v+hQ:{yCgEGʽ m6QJ_=&W[PSv,%p2οs,@ɭj@ҨݎW΃uOo k2 8oT\Dfy Sŷ0΍:GdL$KI4+TXGhp*>@!- ".l 665^Sd:N6nɩٯ?a|J$ɫeL4t/_| f'YXcCecݦ*EҰd6^agOFJyϜ0d: f:O|)qE<ld!>b578~G}-Deň ڑhJt*Tҝ}SgP- : $YB?$?!ZE%^RBPxȄRs "FJyϼ;Pm 1 Up-9Lls9DPU&YĤ_~nVhի_ P @) @ I$;lF؀p$>O܂N?Î $$>6b@N''cq ߓ䝏pF ;r#pwN |wp?p<QvliD/\X4E^!㿃%f)OQؑ2D D 'qrIH5ߜ,֔syyw\[s) &hz'84]yZ2z!%ps48v_]ɛbճF 4G9l@G^}U%hi@z2'u%pLo9Ɖ3PErfs{&1 yJ@))i$ASsv!&B~d]::K]#Zski'9FZUzGM &(8UJ XxP̈x<ΦۨE3,f[u 1] ~kٱVA?1{O,EZE]CfE$iك5bAs@@CEQ": G~27!ymHQ"t`"FR9Q-V 6[S+إ /Rrv?`(c&*z}< 2 33͒t&hsRDriyni@j7c(eOv̤(:] "MTY8G!yPͼXn>Яql"(:' < ;w6O1)OX*\(GBQ>ރJ}GƋXҖ6sJl7KLt 8,Jt>ǜ[(*ߕ7z@1r4Y`њ֔s@0W0`:@6boU>$@1uϧǬ!%kTժFwѻ#>Zc<[t:9e Oup4bCy5 w%`Wg X zez9xtis"'3>A? SS\E՝$ 0*1*j'K^dgJbB Oa[b]3F9 wsqAR[XCYqu.!w.;=euJccu4vO/FU=:;Jgƪz/> 5W3)yAs'Ga~pYLPsuAv{ňSAltVqyhZYE3rq7k9shpͯ4~[3zb,da˱0(U_^F@9l:6Ү}tx2k2Գg1Qݧ 8_x7A +k?,52L\Уhl1ntc܉%dX k*T8hRn Wɵ?E%3Dw/prq7k=| aF;wL c")W!|$]QH?}LIȗݩ8ߡ`(9&_klЂqX O%s` - )(a|!{_b@eFq7T*`8+=ph43/$W#dשFvsJ$&k+W085^Bp I`WrRgVjЮlW|/Ԥ{5oL zU"]VNݘ*XL)(aG|OoL {a{;oXA5. _.irbI`6'T\*j\ 6pJcz=XBk\tH/x81yhd]yLy"G8&@*u@T(ROB'"f~QcxI,F)>_@+߆ѾT.I;|qԯ6{0ahCHջ-B|zsْ)MZ5CǸF/#jNiEh x"~L4ˆF5lIa.j9"oҟs G깼5IbUJIqsۆ: RE/]+W2nw<~WPmZ3(~.;c[ \>x> ImS>9Q&Ez6.{@/2{n Y*d=60ahCH? SRk);_zտKCT`nyLntp׳n?IDF_. 8 $Vu\vl1j ͹* IpCj *rQ7b $">6! ~@1TZ]3PӍnBapBskVꆹ]^{{CC:xG2&cd,^Z 8, i1Apo{2)N '#^3haa CW˸Cq"r U9E kS$? w"=F|bcP'_*kMO:bҊ:'a3\iQD#2P{ed@%ƁU=9Q}:Vv:mt\(%=Ċn *kMEO2Shppuco@;tIS[F'$]E"%o/bbu*̅Uo+ PAiTvm( JTqiXI]NyyDk-Nqb/팪܃yNc#IJgު}K#IݬA3~+DP~?Zc<[Žp4̟e%@ 4 ixn߭pT gSIhCJ»n7db[|_!%=Qᆵb-U Ƨ|Chʮr Rn:eĒBHQ= 4w״n?P>Zc<[Hg2}}VpT O8@Ķ?$dw%u w"=K,DYw1]J2𠪳h_>d§V=yJUN)3J>a%i[b<X>k8B71;tJUb&:VCЈ(E$ӁG^iCƐ- J4[E4 q~ZTJPcWjopY3xHħtAIO@K!l)%x:z e@/aʃF Y8 D onJQ=ͣjn©s!R %P6'!1Aq QaP0`?7XS </*%MhCBlƢ/4TOfiߠ֐(],^Z_EO^`1ADcF19. ,%* ,D 0+[A$/}JL*we-yH،^YLr)+ꈫCBcU.m@$%8ۣVxcBCii} 6gh[£1~Kw6oQZEL'mคE"eCp ] ŏVf3n,\nH_T#-a,/ + I?+ ܈<1:0(137 w :FC &E/{A, 2?b_;ba-C/>&PLti\x'kJ9nz4/ؗ9 ޻LBME@2YTIr3 A) sXk۱XnM~6,Xyz L+DrxQX3bu}fW'BQTؠ8.$쁆Ih0><[%T p}(o3\;p=&+(=[@_ bb*Lv,SLq+͢' 6 ^;?)gp. `ɓ'\sȕ:)ao##Pm0'A/Ω-TbqB6Qsǂm uj^e-ܧ2?ZjŽK92zwS)oC0$EH22)gp.IKLB9=5GEHıb]v9̥ǜW ,E4(%˂LF!5v| z\j.)"g kN&a ȍ̮ -G7D * X~ :@z2`< >Y@s7 y,ÍqENgK:*:{:'4}L\39U^keo8ucSP1 A=0@$JP 魝Z?e1, 9:k(D%qP/tj"@"?YIuA5J)f5 "S~ѧ6<,QO&"#N9Pƞ҇W$;]5rߤjrXbdDQXOh%F"$%] :eY@kGePEVw_%ew(m))@pW76(2,}W BZ("k"K'ZDlHEgTk8i?# iX=7?jp+ڙ`Wƅ?0NjYQ7'-hϥ}G6iu!A!Yes&E c !n]!؋4wxj&t&#a%fqHZe+bv-kZM#^bwvhe>' GP<2B.%HUF/}jFiZB/DSåuqIM3с%rzMoR_Nڷb0Q6VLߠ:m ٺoWh O=i%geAMfj&|g!V?E}oVOdmp)Fd9Zc<|uׄiLW 9|Ӊ ?Nڷb0R˅v IpPƌrs3[{y2>~EZ屮K`Y E:ӿ%!1 APQaq0`? ֯p$Oc] A*M^_}: 姓 $[əE\@hV;xHAq,u(<|!|dsJ#eCC"bKߡkaa^*|t7oQ"߈8( a.XWQ kӓT{vĹDZzA6K_T:2@#bo\ k0(rҐ`]fİsM3b<DP5 ʰN+˺ Ь(4t`#D*gQ|% 2_t5I@ 52f퓢2@qL>2O?@9"^T.AR @ : 3r (1;-yIE  -E (1:+&\o(@_%4'HT<RX֕L2ҩ2X0Ĉá&VLp[)Eekr./e>l=C>{ |=Z-cg#qִp8K$6/͉>FBDi|9},hG=P~n;Q;i.$=EX :Q%&C:T(GKt 51KM#3DS! y>rTC=.Y F+hٚeX 9BtOgM*攳 *&BR:ޢmX HHeάք +T]YB~ 1PIC C}EaU@@PU V̶nE>jpl%z7S[MXu+,DQX1ʳLM>DW^ݕm2 \ DxH^?L HЧ-0߻TU_Np 00xqoy5EJ)E 1opiDOBF cAvYә%Uf#12b+YG{sx4o%iF7 ?D%(Nw-d 鎤;?" `/J%tA@8ŸEQU}9(P>3.Tȃ@D 6Dԩ '~.(ԙ! p2!#`,h{0 kvdL-9ؚ)([U8N)a&VPo(k«0Џ!V.ɐZƮWdYi[GH92Z pXl8N?$@ LMjQ@^\,Dz \UiHo E{}$p榄`Bj+j ,Q-$Ev0A 4@H\x̣bl\$3jʿ #;=T]vWCkB!WTLƀr<3Oa9!GG4`UGPh97q&'iЉ`iPOċͼjObz WߚrŠ#\* QB2B;V ޽"Efyz\ N|=j ,Q-$EwiU.@e߰xgdTB``B!W{Ϛdp ݲDuT38 tӀ^ɛrj*P]ݫ 9J)*W( %\㼕Ts~jۨ[z(%^3f -1(욈D>SЁAh_-Ê0׀Qi5'&&J3 >h!skg(`9AMB J/LQ) gJ!X=5_PC:pTBp]RZP75àMz%TFFԠ)#)_ʺ81/;=oHr/@ q Q@u2B;V ("T@I+BLBƯHaRn8{\Ut ž`E&jLՀQB#WDG"OR wD.UoXC !Ifk&gޠ0 Q;ڹY:fBo/A({}h=VKj\}$%vf4nVFԙ!p4|fAt\| v UM\3tO9ގ\b(ݡ</)͙*5]?q:PdK_ ?'ЊX0@i 8UtU;BZD+ҜPbBN) \*`ƶ&s'+ͣw{q%;NaHQFNSeL#T+Ơ8yEΰOD@3Ax׊T\Z}Dv~PGF@>`:ܝz.]m 3O#,1 /]hD۪0_ JnՀ*6`*Dn:/"b`|#RXH#T+Ơ`KWAKASLA>SpFH'E.QpU=!*D:* *`"la`;aOE|<atx EUXUsThz6mj@ !֟jlq|wg -A d$pZx`g n<3츐KrQe%M0@md)` xs84~='n`D9kfo7uQh&bdb+%T #<H ӅPÓ!_,R[_GM@6 $[əOuOcolorize-0.64/doc/screenshots/colorize/colorize7.jpg000066400000000000000000000677631331025647100226700ustar00rootroot00000000000000JFIFHHCC.   3ށtoΪ꽄p.<?xwD6^S Nj>4Hյ;vi0yPpiL]piϖe=nYN3k-_Cck&]~*m겣>/!|:Ccm-][M^gܦmJC-cuUyIji"WZuOç]uVx:Ɖ Ij29^gܠ.%sgrL]_?x+x MOϏUl8U[7ꭄ}o89'}.V '0P 7H ~liY3ZjfUCe-SPdR6?'^ O?lt)YAKVH\R5g0ڥ+(="W R@)O)UF9an+ABu]{r`Av zUF[Э>GT5އNS]EjGJ amooJ̶Híߒڕ}/X:Hv6^M˳,k4,CsmЫ-wX ZXp#]J຃qj9(Ʀ6#AzLG8_$=S!M]`9 $dh'Dufw|IgzG5 1 =k#F.Ʋ4D U TLfkDV~Fszt_VûjJj4cQ[f(=keU˼kk j@eYEh2Ȯ&K(\' ZD_J^_"n~\%&:o FgV Z%&]W(lAe8|ktt9;seh&J9oYNQI"B(KK+fW휓EL(bv hoɳ"żd !U;JLVF #ìB$g4'c_)2ɴҙbܢFn9:9XŹe:}X<^껱ˣ?Ay^N+%SDUШ|zNVё$s+R*._`U=VgN8 !"#$123PQ%R 05AE?jV([^KNo1m}R%:G[ե#G[Z{kgGYf#KkR'3[GXco aVyqZoo^:kK~1c^#Z Vkط&g|ךW"cuVK-5w[;iK؛~hz[ "@+u[ۤuפ։?S&6Bfd='ay?NjRI#JV֙T#G~nz[Vf:g~1=y*_ ͫ[޶DR&֟bgtZDe-+RV/(J.> v/H ۥhkL6 @7JW=tAW5ljf@ ,Xo=<2aڕ(u3S"z^b;z"KQŬB t*IJ[7t!Չd"+5י3:A-cIEݕI4ig}HNԬ o?7[_T3PK6f^IE[X^k?bg3Jƈ6`6e+ԊkӤDGֆD-r/z_AґyJ[$-ZYŽ"? %-iψ]P}R+_%c_Ҋج,,GgmAktZ*(fsC0ZJEpɼ2l|~J9״t/1|q)g;:۶?5;(?|goGEIxΕJVf,C)~Z[}] \aٝ*qp "in(hG᭢ÙM Jz@NU+] )uVT(<(2.GHyv:]2s"3K6Hȩ;f­Qe 뵩 RDUV;N63J̮PW4VZ89Gگ ]}(j,1d,VUG"Ҳl:ոY -2\NUBU<Էe֔rpB`j I"K+"W=PQgA2=7xZikC0y{y*7c>214-]=ftWmu&u!Dh[_Vs}gM&2"& HQ63J10 4r&ّZ췏:\62C2$c N-o@aF`}-Gm U̦]tďM㭨ݐeT`S.RQ"-ohTsb y3"d\;iz jjC:΂T@Vjǝ4kܸ~(OJޅ]{_CU(:xʡ\o^f<9OeL^;>fl[5 ?kK"v|pP2q=p^GYAhTAFCm=!2RpGgAnM7 y4MeFpon6CƯ#=eW7"T3W`g&&p "ASzRmPeSL@,0ES}׫탆Mtv\i@Wx q\hg{ڸ+fbIۑ[R=kW 3_CMjυNZ PUܐ/j=[ I[-r.Z,Qk^e1Q>zc{U'^lh7P\(Id_qFrfkRs@3le%3sݒޞ^Z.|٠STayֻ u&'.U62(*6j<:{5Ie*!a: `-,(.P 0,s BcP Z9QЏg/37f8>OM}%es6i OFks-bo2~F&{q0u®f`WLqk.5Ҷ+ٞ4qO< ߞb >K,qu#gC?]/_&XEWr&GQ4 9S41ߐU+l`:z%͙:-&iFUWXk}]?r oW4HM !'\NF`JT %hLqZ 6.t8,5iGY͏ǜ9W*]j;<# QLsH]A2PRZ&yqkG=WWW嘊BqqG q5SCl |M n8JAT.}d PBBw `gioCI=f]9m dQĕVBpZ:.P Z#݊KGA:6ep2e4;lh+3|bg4jT>Jq19c_E]4\x^daAUl7 (%+ЕK|Mw j(-RmY_gRd%|;T ]ys@0DCC<fV5U T\`Ai[pP]H/a"_1dv7!1Dm G&Yqh![[*'ő7e ,v]ƷB}H -N6r8KY}~s9= V0oyr}{Z,o$$҃tlO[|~ǠU|y|]?);;|)v6_F1Ȯ ŔT%2aNWFn+9l3j]oJ 8ACl1#DP+g符r(xW3< ΪM0 ϟ6T!:f TYLwx({2[XPf.Dݤx l (hW*|qs3xؙ开\yC5<2GX_W#\l M ]d/ 7Ns򫥦ҙux/( _A$ 5Ƚ/% O9 ։.V «+CGedkm?S'q&52v.d\s$[TO|Etz*"j"𥞢Ī!I^N֙crǟLU\^ <;9+(+Fn`5_ )Cv㉮pT?ʮ":jY_r~_VdJܳ /RAr 쵢;"'U^W$Wkj3K}h P6U"/5ԥXdji*('&X ylZ8Q~o[Ӽq=fNJT1PfϜaD(31ՁkEF.נrPdvk6{s߿-na:֖"s̎Nȧ&#oNϵ 'ط`9K -~/Z[;mXuz>zTW1n:t{R^ץ~>QP^n֛OÛu~?3 #$"P!%0237H?~T^^~ctoU-t j`jwLi>ֈQYŬrŞ#Br6WX/!8"G56^UV]՟ʬNҹ#BqX*8!}ݥ'GZ]Rdu 4kUŌ vwaqp.hG=ʊu49 g}ԝq/4h%#B`\0SUCc17gzWWknA)!XVA06@UD*Xj$lEQ_KkwgOxG-Ly;q>Rm-* gF _bY aT1?X$Ł֣)Z5 ZZXm71G[X"YFj9[I%zFJG> 5j^M"]sV 6&U4)/-jD*^FFv6Sj4[6ۣ}=c:O`k.꒼ڥNW* eMN OC%-=N_Bq^ka(muE'Q)6v=.YXW5h>GIG*Y&BuRhtzD.W_fhNl-]]IűS4cm?u~3N`e!C{/{s7d:cN*t“`l m~oU(\.-)zjJe 5r1%sLgcHɞƾ/tJ]WӤǔ=|LZ[xʩNUuWs*&0W=` zvֲԨlZίn7RtTr13ͫ[ku JxtP鵣 vѯgVpzЫUعs`%xZQ:gWZ)ukE_tLl2ns@VW̊Yh:;uNPogyjt7gSwid\ S'Z]J'-޵"3丹SXmm7xM.=zw?:.ov(V+aAUN zUgyC{nj -GYlzz=xNZY]Q1+o#}<}ܸ/rzwlk^cYc[6[&Kc_zN=M\/#|9Kr;Jl7` 6jrhs^V̾yͅ V = QHP&uWڡ\Bc`!˳/["U/Ǖ!PWKmlW ,t )|eIu['rؒ,U)Eҕn8w ĄQupYL0&)lXig,Ѫ#F,b)I%$ !^KQuWTߛ s$_bL'*4uZT3B! rM|/ESD3 긓X'T:fdatO#s Ƀ8ZCM\o"1%nk*Q[^R"rebQl0(dKf?dofښ'}FVFƓ4mkv Wck_ 86.6l[_%yJ5uxsWjV4tGo""jU< E91N&6{yPTR)ALPyS< ?!Jl )״CTP֨v|R$Mu׊N(25Xdg9ą"V&U,W77`F͋knֲ5d,VP1\16j N% MR(BY)RF ucHb+*0 +"MWK {$"$E| lf8IuCRf_aäMUm&MG9e? >Fo$fU)5UL,(LLjCݲf92"6 i<)j%?ly-Y}Y<4jk/ "-G^{i„ rd%Q\ReF20X(s´B$b&bX@c & LbxKy$#CB7s׳tSEAJ D'jkeemX0EL`6C] As4 Ei7gDEV5㙰Vk]dx=K0bP!dKV>ǭ9`YSIx&C!1 uq\"$A"S',+JLX1 ux}6VE!U,%C7իHlC°gXg^2E΀k:ʖ0Z /=K1)9eBNpL8+ h$< ,l2ܚ,LlGs]kgL;*XbՋNU`dؙd]J MO)+YeC2xP HQ103\gf„ljȓឧ,qitl{b8K5 \),k]ccmEa\kׄk+vMD$?Ă p\Xijjmܠ Jp=R- F Py'!רh0F %ĢX4SSkJ_v*+P(Ӡx",C,Va]JhY)J>P] B9XF^^J&Q9sAzLU\1JR#AcjVW$/hTrMV}f +9cb"ŶrJTt|f usv02G9L)m] d^FXlq`WaA]L1VqfV:(S.ae?6SCJ_:gr}vS!K fe*5@%y,3^ckٵVNV*NYWaL$5gb2/s`d"X3hTFW\m(KTČ `L 2,D/&h{JʋQۙ}_5Z+h܄ b)|5b S3o!f#  yF8\@LxB,K9QlZW5a-u4 K^u5[d `oزYl[+½s'5V* k]TlN#_,FRS#1RL'a%b#6>txصK]Ѷ]"bZuVa"N!Di2#cpBlmJdjS2Z6بb6lj֦X`BV3~-y60\Cs3ݦ?w{a6j _IhD\UuꂭS fE,6(9)2v>c&jQ&S 0bYU,=$pϹ $  4 +Zf&]G(u./F|Pr\~JY^%aQi0( [F95 ( ,yuՅ Ӭ$[TrMi$YU5S8[OwiiLudY#iWo)ZFnyݕq: ~Ut-S,WWԫ}CNAhOhza[t֢´Yaz᧔ڪTge}tP%ѽƸ,֨n2׊M(wk, BASnu.ygNR}LMg_1$׾vg\P u/Z\_zE_7W~-c 7uv_] PKaZ\K'ڻ=@g۝P0L:M4*uaBl$.'bY+ev̮ԩWgָpk6UN4SS[w0?Ω.tӯmmULm٠,,I{Щe%S]1G앮uꕙrQ:W_ve*EJJuey^+:,2ZE͇i^y1mְk h2bvIۭnP.st-g\B) n'%_qG$3,X7ZЬTw`U%QU}aҤb8t\VgMښ k-3WJ ݒwKU^f) ~suAխV/GR٬5jnhvg:>靝rܯc m7cɯ;w; l6[goםWzr) 5a$2ƠEZmS*7Jz]c^.-욵*YM;Ag Ff{RmӵzWֿew[z髜Cbn)X0WlinC$,CSjm]ֵۻ/'!M\cq6u^ScL|B/q#ci'IK׶mTWv^7S]lªE@/;;INr3"!#$%0P &23?o;+הڏ!P,;6Qڧmt7X V[&Pb+P_AueCy9aCbߑ'c2ŅEz5O7Z74PL/8r9C8hM5ۿdF_2knUnĐ*֛┿$۶+Cr.+V( qJMvW_Y4?m^ª4To+2-uu~j2d`ZPXvfS{z;_W[RT 99jQ+oSkGg:Kp(bJJq&eWOc-^H9 aZ୫"ZO0@eܟ+#Vؘܹ>ځ)>69_ ]6_U~kߟ]g PĿ>P\Y[v̨m(q( bXAJV3E2I-="Oxuj-l/(5WO0;hJ F]u9f:]I,Q4]iO\΅ eظnE7jӬD{QO\5?!S^#Ygeb:%)Pf_b N6O1gbCTs B*VTW]4V ou-OU4k/z6 |Ǝܽ~P4$JP;Y=c!'y뾘D ]^@LW tQȲwf(0uM]KZ늪u 76ʾŚK %y8y拯uraFv@y\`lmm驲5]}ܭzۋ?OnUʺ=] q1ϱQ"Z2/յY|Z _}}>ɬYk݁k(u!%F Yg^WXkE~8ߒ)٩ YlZUQ_i(ڷʢlan78qy[U#v MŵVƹѨV~_;Jh]v-8}GVk D?dc={_']*T[,ߍi^ctmu_.Tƽs:T=kx[":wzRD׾ҿMTb[nų.ժTL[Ti:E|ue{ED]?+pK>}u EAuJ8S|qp=UZֶJtǴºj(kyFu]A[KluZУ]ml8B&xrv5l: 7Ai:1V֤Yۜ"5{hAXղEddJ@TB,0ZkKWp[׍kT/#ʻ={8vY@5kiMW\X;ޗל4"nK^7{֖-|xXj]SRTaz=銚d) }A[ 7yO3@c5:&ٿa ɺ3jbZյTB hC C mܶO_g"Z)FX}3jmx j4!Wn_)4.m1\f4Z*$*b5d3Pll5zfam(6F)ӵ)-iU몷^lKMd{Țo+izسKճWY}vee]F5zKNb~>B8_'4 '՝rf8yy {D=e)*hONZkel3T]쫊lsa&^ڳқ%+ccmct~YNշVJ֯z'H47;ΟgXa?.&5W#U6ub5$8,TyX_v5w˔$kGP&!K Gq}nT`u!FմY)׬3b}4u}8c_>#AR3LKlTS/ %Քj9W@QCnԙs<7IRq\~#a?9NR]CYRmV%•&҉)5eV|:^ |aG("^ЉB6VY@,RX,l48L#2 iM@ \r 2,#e+.s[C>1 \<"Bf prDycJnjLEb+-|_@U1h?dLց8IyI&~3$.Lˆd$ 'oA? g''<3xS: s .SPE܀g8%YS @=fVh1``ʼf/\J+TvOVʥ^Le*;z^&ݜljy,9qhHr É8Qjn@Z+>5 ؖwcyȗTl) d[^I4j T3@, 4BI9q@e6e8c,mj ؋A.\'YJIb8:&iJKޅZn'_0i'W;HBÂɟQܞfkA9U7((eځr@ 0{R^nX&,y]:.l0#gj/{hD+, ),6 &r*`Zcd,Q.zC(5ehU,(9*vSF #g"JDY"',aK!-*J]* {NÈ\{3hԖxJ j I ᖬzBtarIEխv|Ki i %b 3|Kφ)/71+w'H񴘠59&EkS$,[U3(azajVLVΠZؽ0>dxd"JtJ B+Vv1gi>/kxK4ȉ)`LD31,΄b)Lda&@Jxȅn׫A+ʔm '^e\XrLdX#k7TYmB [6W8K%y`L"?-CZnCmJA\(D򙆱`j:pl>G:+`cr7W)cN"WQBt$`XP ʘlef2-d,"U4<2%fPaB~O<)ࡵ[fI *vv98] @(B- V^BOO) 6)%"-|ο6fpXl2 yYڨ1%`qke K׮rly\\X>ϫ*;1 yG :P%Bu4obphupثA7s `P@ ҈ "룆k"̨dNj3cPgKAc\aUE3HK83)$kr"=(H\iBǘ^P)Ŝ2ɇPx`>/eg\8Hg8BF. 21x_gss}ZS.b1es^s]MU~%hrxB+ˈxK`h)f +Tb6v Mlb+I*Koanb _s]SeM)k@<&&3uX]fFƓCXT)YDض뙥"r@0_)Mw0Tn[ ڕf(c%ip,"S+TpVUg3Ѹ)2sM-!6s hk՗ ZբC[ Y)o>ԁe1`DEFsdc)g8bـa<9}*섩WZIsX[Կ۽cOzWV%x0X:a'i G\`3X`6Xc;C2@Mohq*3f[F25HsYWkG4Vphn8nfG|ֈ,&lZy(əFPYA)/@?c̾r.ryO?gRah>> Ph -&+KSZl-;Q9NmdkZ2Dk+"'.%fU\1198L ǮZb*g좢XEd;IOpʼnŞ#(Y%!bN`Zخq'f`쬾j]as>->6T8Y\0HS$e x1ό(gQ?:(YhB3wY*lqv䭖 0dEFsdc)g8bـa<9}$V` 3[aW٘dV`^KH#BB@X_ $QG,0 lc0,aoe9NY(+~3N\bQj;(y, MFsijrL14Gfͽ`n)FSAʷo$9l.cI:qG4ժ: @ 6a;!/+"tXXnŧccm>N.?'<<|!:EPtDⲲU%Ydl.Nq*YS29q(єׄ9bI̓!9 f;g9zSZX8v:5@Pœh,J>_0!^ݑ Z>A&BOe+'\ h*`Ng e2Y SeuJ֊/׮Z +M X$"7?? I'eDOʉV+ Wk"䱭a6HSLcBl\>E餖YYKS=x8a˾98(meh 03e rK?0,1>c~]Eq2gcq]v\UE\ɩh·6m$~֋F uW#&) ɠR$ ,C,I`BNYp0a!B~F8?0k+k񜲟0 +򥅓޷+K e8^ebU}jW?XM!d|OVdDZiaw-{_-Tj]@IUzUn8A9~#cE=6mTSiOOOdײ@c+!R:j3Df/Z3rF-HHlirB.DE2GSx4]i/p'A1Z1X\/D!et=/`Xus:GysϪ +I(]ŭ]PLɥ2 VsH|Ad5g\ j O\}~ܕvj%Ǣ+pfs=l2I.dȮm3*Jmc>/")]AGf83#3# fo{UYq5 )w5ci gXC;GuMʅ3ZVn 45|f똁Dp`ku^[%g04T^OnXU\lMZ ɫ{ e;<8>+A+DWxn4KCc(RTUJbvP?FX;$!xJfX`Y((7L,T$uܻB_2dp,nhP^XР\>( Qhh IK'Q/3`#*fZ׋?C+BGB "[`(Q !1AP 0Q?|OYA>ңbD+?iQԊ RGs/+](td|uxן…i8)+V>k ®iaj J8WFK^HD w(]#)ӕ~53=5scL9̙ yAτjnd^9ȡ~uG99x ;Bŭ&g)̔=,|5UIN % b|U0JItDQF'~!4 `UPU!.|.$R a2J8QJQ d7eW}8Т+k@v:`i ir/r vK9KZF`]тҢv D UiD*A:Ȩ h)`*#=#:ɿQV -ZD(|sq[z؜\<⸬-c;0ډ$UUPн8Q S62C\k\\Cd- R6$0]?(/2-,|/@¥ov=LAFϮU[Buat\`׃P`XN#L L_{vXlxe /k_"04ρ8+Gp㴄v4!<p{#A0gE~*! ̒3[E>1ys[uE4%a-}Ș7v}׋B LOix>[_"E=M @ӢG1| ~iгpDFh oHoOr$K(_\v$I?)4lܶ Q.A _E {\zԲKJOBfǤ@x6$m9dZ1I*ZRD` !_*33~C\/ԵCdQf!DP)v$I(u0A>ͱb3qmȣ\K$&LrBE)H"k7=<,s(Mb&HQ-jC :- R ܦ\J ( p?$w; j@jVP, ( :6sZ XAMېQVMR`WIo!! 1APQ`aq?3 _ִ!Q'hB85ocЕ*M bg֧pL9rt,147^uT4qtYXQ^btKʲ"H =olZ\=˲R(zљm@*#1s&2 FX)Dwa&t` \LGI}(P]?H}RT6.[Vu#D,^Bm{u"$>]ohMku)9FOB--*)iy̚ޗl9R0/R7*9=ͳxkxE֣8_e&"q. $fw^8kwlBJ!n+԰@mƳnz2r4ڙبbQ2|}Rÿ4Ix7,{j? WNq;>V^=Vaw7Ň5;b=t,6Wľ-apfʯwY)1GKxKF׳PgX -U㏼&JMkonj+U,9Lv"4gH#'*Xv ND~zb~IU|ՈW'#K{;0XIѱ볺ᬻBS+}eT PRkdެNk>w|-b/ț2iewn{KD(d9T@-6D;@uԫ59ꔦQZCy$8@s$o wkomL_C;6N"_ YS溤}6H :lZb43e}ko y@YDt/=!.$IHH𵘺@җe?(fc)aDuT2aػ7qRDdPO3_*vFB^9ٶφlZA79ׂZr 0S,`k#6aѓC^Z^DR['zj9[s߂طv~?  A!01@Q`a?']o [8n=p{rs|e[e#Hw[eR)d:j2 EtU1wcA^FCC>cY!6Y!{K4uZ׻1҉"OKV #aF'Hr 25> "Q hS\V0jݹ)dӧ7؄Rp툮S|.ܺ= I'0VT^.o۲u1.{o1t@ZZU aۉ|gLZ^_2B?ѿ, C:+qxC(og4Bu08J!}A;BOAcsC@ǕӾ%4tD$6%Jc^&ͣ5ɹ.7GY5jg#HfAeALnq$ <4d,G _Ll#`9?1HoT8Ea\;NuVх YN\ߠɺ5)B}U[̆#h(崌ߋx(3ޢ0{Q_2ɹUVo!_ Ռ m4.ryr0=N"[2t@20k)Мϋ =jS_VX+֣;V|;thDГ~_ H9. =+O.knх YN+PqT뛺JggTujc8.WC`W:.oyb>,j\[N SFзaFv ::/>*,Ƴ!C<=ErꚂX}+8.EJI:cڄTgŞ(/@Ǝx '0A0k)К|ŴA%잤,1g\R_Q{.S/$ĚЮ%HdQD[u@XD+$W7`}#Ō2(L?@&LU6߳ZLڈf*jF0V{HfGf}Sͦ&~ocolorize-0.64/doc/screenshots/colorize/colorize8.jpg000066400000000000000000000571221331025647100226550ustar00rootroot00000000000000JFIFHHCC^/  2>pNGGt˨B:!,$|U/`L, |:_:%`-S>pX3yn>H <O:^tw.V:%p  yɁ 0>x<g?Xy H <@<_Z5y3 "|(O:@&Uo7,8/3 |i>Vs!@_O*G@Z|p~oWcS^2`̝b>xV.=O_Un~+? {Wܯ0ӛmd|0ں|1UnOY)@ 7"#0 4EF9mSJ 焃CSa!u"릛Y{K٭}ohkKgK {N\}C+O^UC!:몯%v_M]wN'Q3¢{}Uǫ2g@sŷ(xUs]{)ρ*SSQXcv;l)4֣_+]y_m'x Y]Fl)R=d|{L58ix+Z&\~ݣva|/o fN D|~>cߔTD(,@fR'2WF|8AG,F}kQ`ʠ)_y}%,2H 7|On8s1;3UĂmR)di:\s\yĭ*gɆy 1e%?pεjUYSMQnhp">9 }f;wV۹ fgĺOki;MIᘑAg .y,4MM%Ʃ¹?'[y T`\LNx3ݺUiOPN/]$AJ-o> [뒿$M'XndиX3tdn /bԞۢd͓u/!"12#A@Ba$3R5?Y|LU٧;5~qE ᔏo򼦤L5"&/t6`yP!w%U4$u'{U2N5*9w߈yu2] ,zO sR%YmT| iTdOMJhj=2LVPI5&X:/7`ʅ{ &=Z6^Mr]kJ,ߏsfEy'9Oje@G?/ʄ2VUL(E :K+O &ȴ9^Ct0}O.̏.F&ydkH0.YE Wr15P$a"CisA#otP/Cʢ()N"(,bӔ`Ueuj $d)89>*46m:'ӛVYF&˶`}7 aY1 1dJ/)S"Ƞ|GoKzv->g/r|:"F)ǟ+\K$n\I6CV.C_@ma[[`⬛&3~hRuV;O1r}Hc0u&JTkqZы *$QA@ǏPe HQ3wcAEl??~#+xK$q͟$mJ*Qdr>>#bP%W&d!zRͱ}q~2^[- Mi"!4 &g׻y'#+kyLE"؟>k12ifp?Q p"z~ 0'>ƨ\4SF]As3AKI|A,vmOU_0LL(ydQ22DH~,W6'GS^]'UǑFVy-Ců_:MN=3ra+іrdAGyLMrRt5ZlX'cEzV)]9WU'BptD?)\>>BѤwǶLvYZgj2I87)EVAzkUJ8ejoV#2&Qa" l>1(ÑSaR|ՠd4{cEffœǗrkC>@幖QҜ(l,LRm™ӯ_$L=ح>L%m eCfr;QiAb[:͐$S̲1ل llTLiϥRM*sbtB<-4Κ*?TZ(zmWw* pXyN;PmEJvuY7a(,T$5d^*߸ȸoZ~S1WuelC)<ڦo4Pe)T_V]@oFəQ*YkS?4vߐykoC+mXϤhSamg!>?Z#>(5L޲Xoc-pf}'ܓ,.U2]RkJu3{=ٜ7|-tZ*Aa;s9 u9T;b?)P JjQjv7`fڀ|W"ȫ*Idw>=di@*WM>eVgraNSS~FoHlۺuOڟ0r,[-qZޢ}E]~KUw=;[wbt46I:ayƖ7tgzZoO.@!#$%4"7?= >Ƚ^6ѴG4Ɖ0ˁɩq@-n&0 8d >QQ~̤CAQܩ$vRȘ2L7qeOdFǣloz  ᮉ:H˨T( ]]_Pc`;­"Gv!C%BS:oOp8D0gƷsv] pK [U]@LW ⷶ tAdEtEZ5Htih{|\H%-DVX%QZF7ԶjQm̝I{>3ǎ)u͢PH#Z8DwdծLQ r[Ji836(KB{*:]xv(|[ѯ>_JV坬iC.#lwXLRӸ{ꖷf,pb$r*_ٞ*>y"]UIk8E9^FNG= %q Cʓtv*(&*a~W]"kر@YpgTM m %Q{7? v+!_xu"",HY']н@B&| \w2I[vuQ)43ow } Jޟa&C60W"5&5h5=OlciT'&!ops۟`OyG}vX,s6۟Wv2$_b)j/嫛@+[)î]`}G t2Ky^wEV.0T> /+2AF;8/Z:ODnQNM>RQV'}rS.uKqj#dm:%.!~!fuG{68+=JuE,ѩ JS`م2&_/a0/J<$WNɵљg*q}p* %j{wbA] OdmZE /!ZF֥XWF,X<Xes*Ĺdx#^8}=w_ƗP(`G6Ěǫ< 8YWb>X!e-ڇF-Focgbk.q_'C*Oگi0Y`D=TtkH,v5NGXri_`ݧa8lԥ,ܛYẁt D, YV O:C5HQzodA(= |דfgRz5 NׅұۗQNz?&ߑ]~JHȴ) EcbXl*LM=gYMz|JFn rV&@UUqhdiW4, 3VqN_*SY,ڈ=_W)c?SopQb_6]9P~0X 2?9u| ?ocoPh8E&  e-'Ӱr޵i^1X n# &Pw6NfS4fNSȘ\MoQ/'iCBB=հ]c+'Ct8: ij9<|#ln7dhbć mfnJ1k0L-8km$RO4n5wޔG,] s)vFpךY&&(lR 2Od5lU%hُRLxwoL-8o7|ªdN<y!DUR4/sX+CM g[k tLԊF r ~Ofoah>6Z@" 4Dȸ{ˊ%q [9.XTJ2

[zU6o/`WA /|S"zӢɈ_QzuW@Ʀ::e]:9~M5htw}1g&;[ U^Zykb|IA@`ApzD 1)qDzH =1TEPTT#]U0cΎ껫r2Cv0dk[.W*IP/0x+ 鮻`sӰ8M֒ pvz /Rk D"`\xé0 mfbŨ-J1c( Kpe!Vz 84mdor9$n@,dsU>1zG`pYb;Me$EX:ӆh*"".6S X!uAsX; {gm|QiO۸J?dě :01 '-@KQ^j*Z\2c̐NUWtT X:|aXEm>K}9si}(Rov/|gg#|ru~{j|_Im3#$@!" %&0456v?/_~|z"z~Bm(Zx38CXx/(bjWKBk\Z!4qrߣL^P߿^ɌJ/n(Tw%w~வ(Ll :D]i,>+=9\ye7 Bc޲‘Y=gp*8:'-+_lK.Fp%K..,Y0`0e_ WKwLqאb6m& Z~yu֖}O rÎZT.P(E2T (wQxyQ/Uߢr `s*Lrh/Z"b |S!;p)rb)L [nɘ3U.=\q F?B/"A8b4".˦$ HFEu]MYBq\sLx#n/ـHJ`f)Z]׽XP]sCaQʱK| /3/XFD5z `ei&KQp<(q̆iQjkdS/o]5u$/-̹<:vE?!0 _3|K/{Ք9I9vn< k (ѣӅnQd(Zm`b꩜5K"--^s{\Qs׌I>]g[nDo! :02Aooou4TeB E VN|`x˘U ^L/Ht0eoVq@a%>?;[F|gO un`le3-Z x4 |x7&ؼ>Z boAm-㚵"uN|̬ ¿iqͲc1E2)@!a< r;kUb,bW<[Ӂ{ƫjdJIzfx%3|j?B VB-R5ԒF/O¿Wҋ~4BKO˞pl IȱdYɞB6^8jM4i˜6 G oT3JG6q63b^PZ"i:sduY<k0L#F]"^P{+#8=hõ*p T̽!:bYYŲG#?EW9!R> %r![1Ǹ"_VŸ4+.[gRrq闗ZWף:G;K '8m@k2^}𞁄~!yB{1R0dg$g71FGQK"RV$רm@UX+y<.~Šry>bA/{OwWqi0bc\*&(B-'Lalc.G4"0K@E2V|44|`&&+W#mB~vkdk!94N]iV0c iu/4^}4߭KvEX  ^EKc#h/q]g{Nj4cdIZJ50 GW YkƒeQ0 LcLavZG PɅ+1dJh(懨l^esKD3tpW2Z3C|uXKM< qO a Wr_RNH . N_]Dq,lM8͔:[ ݋ }boRAԡ%ZⓔM`p ZW\ꁲRQWapū `UkX}V=3̭jc3Pv]ۦUuEVQC=cueq-Ho:u3+bY lN&Jl҅Q9UҺZ5b1S%lWӮӛ<܅Ǽ]s|Pp aKh>Q3[MSWYaت Gih4LMhVP*FڅsCr0h"Ҭa3yLDŽX WMiPhJfh`s3D{ŵZl^W0R "0XYZ>d]9/KgZX,Cӣ9lېZ2 Qb ]#6~ ` &=@cN`M[eIz1&(1 ju.yP/fQu* ]$4~ k%5VFMӵx?A&6r&mz?c/NÃ,` 1TQ%\ALX"J/pⲖp3Z][2-^I5:XPXYEtYENWϧCmZ~!gS *ȸަo:ժ Q {.βi1/D'5tyUPD yu+/[+.;WrF=lQ{+EQL@G{m0q}U7<v&Epo%:|V<զ/i8\V(޹{D耢K!XW=J@M`7ז9P0F- mZ6+XJr-?oo,ՠ zQBIsh Ep0 |Y- hE]^`U5Xb R_"eNtCJħ3mPir1vD ?`Zݤ\LuC~N#@;иXa מH`8ͪzeaV jFMshë1`*бEry p֥%+n4PM*;*^6t8Χ/(R^]9g.fmZʑ~e:R,WWsXr(VG`׷KLlM1%,)/ĈZ_N:܊a؜{g0ӣlr{P)O>]FBO3j,+ƎJF*l~>\Z@9uMeGX7;Ӧ^\!/^%g\b5bs6t'甆,sEit}_6w{DOg x _ǫ^}vCNM  [8cMξ8n8ꊾ5y}9 iRuƅˮ#_,@qH)-^\sǒ6fS,jJ$G"h\/{}״~G}/SŃ{2 ȦWf1dXBfF#eJ-4iӰV+ 6m wXY Ie\kNF+AGqF|"YȩdmI*(Z]DuN9nx+nP& #N@M,*0ip 8UgjgUTZC!mm)sny8>y,T6ƕF -d."Q'g7orOw|o+ #/~]rL ٧a&G,ɏ;G7gW{/Zv˼+<FAyge(Ϸd~\4j[6tlL[ -p!B⤋"Iii.jN42?$X6ݫ}m1Id9̇"A`rag"H˵}Um{$.57Ql8|RqʨQ]b?^=_0#LC Is8yW!/ѻ>٢ ]H c=5Q_> BAS t~)Z>W^9T3=(WpG@pŤ.1r_ z|Kml}9$JIxypLg"++WUW8B@:F_ɆxSV wIBf$,no'5lnҎ D9~!pg@q18UXQ|T[:J\pKr"k+_gr_&teӞ^V^M.i&`jGfO41F!cseWu&n HZՠҀn/:AM̖  !W9T80)Vwiwպ ¿P\of+"Ud68[~P%(WT"+_;:I*VuUQ0Ll&C27EsmR#-`:3KB'-Pls5"A:]V-Exi*隸.x'M”&EolO4[R67ίق.:?J?,mil Bjs*6Lelc^8'ILDNр(s&hv~tⵣ5/N4RL[Jſ&ͭ7rq3^^n Mf`TZVTgU][U~ w /ЀUڅ*rS2mdu، 6n0QwU].ؕV^AK9rIH^l!21f~&MHNbPi|%BƧt get9nCL8J7bu#Jr9͙[g4ߴt>瓖8g(OӬj<θnSOJX(p64"mD/.;UBe2"EmUfd9Lj/)Z?ز_4L8o{+4j4/BSqnr{]Uh*; ټr>Lӷ]{Jhp(bihKrR~5I9[9u4CPi"8b6:w6vO5?Z\U&\8܍F~g) .I&"G~ )U}w.TAgw: ./UšQg2_#VkXQGX[PS3VZԋm#Ny{U.t|s۪r<;>b@a!T+t~ mT[N653u3X72kjW!yڈ_Pf^|(kH{ej$-!]Xp["PCGg؎7JV=~Ȗs̎\K.ڹ8E}K^ OPd[P]Ei7{ͼgkSUa04@9 Ȭ5t/6Sw$߳HMwD2ҺOޤ>fn1EPZG-h J5>r=@Wp>¯ؾ-v=Ӄw}T^?3y8~O)5;i) }Ph^xs9ႈzaϑRRlA.l&ЌZ|5bvˇ↴x?ۆm>7、NJyuλ 6ǕaLsr; .h?{ eO*(NOiW2{^R!Q?*[pդ#-4)c`U5HR1&MB(U9ţKZ #abLlLiUjօ~^² .ʈQ\vđyh}k_b<^ǢmxGs*1F+pB;# 8gop Fj1 xL*HTH!@|AKT]eؗ-,Hȯ1TPthTsL\v|.&.c^y$J$n[JVJSΤn 7Kȴ%L̮rb<ǚ"u{JmLShbžBHnscqw@rĝ]eHSŸeAO<3ßQӮVEf; XCү]?zOi͙Ee5 NEh{|ؐsԂ|S!Y^ǔHO~}0. ґC-tڳ 0;u,yK exB3sojZmɜU\'2lR.f}͝C12<)qG iIMp_3H\iy|޵RM-̟8GD.qNkV7~UgR)3*4M=d80qՋ&'p8NwB‡3ťZ]c6Vz6)3Z>ΡK#4$&̸ دqnwMtXW8";m 6y]yV*믊gq\rUcǟlDy!1 f)!M6Vp_,T.]'+~Sf0T?P&˹TK%SUwRC;]{!$w$ե=.h$ALG`>v Ųpߴ%^ N RB,&g43ɼ Ǖ4lI( 2̩`?įwXG0"l@L=whC=?tgk KbQZ]ub" .Ƶ4Dn0 5qڃp F)5 \k/2$,V()+hF4F6Vw _@j=0c`2W%Y:t_MxF֛EeΊF- -7 Ӥw˙ 4ώk[.:RSep6r`B ҂7 b_X[f׸/ xmak@UMS>De 1{ѕa NZI.଑ܮP%IAlVbĶ/ djU̙FЊ@P bW.ǩSl+5fU-.,k/"UWQ +B)_.i >ڷᜃC70ab6L.ZAX.QV<^z6Y/Gh5iAw[#mݑr$ȌH\(5ίئYhie2q&ZqEܼQNKo%Q՘%]/~ txf+)A5*#d!-v̜8+Wl]T(h,2趒7~pom'Ff\dY|<{g¯ =2`Lo?bm=`uS#rUg|PbG{<#js?OBok?l$ !@A01QPa?!Z 䀷u@WLUkvË+46}t3Ct %F$tx[x n׃crrGҥNyp6-AN'{~H1 tG>qfm7$ű{k;APiǞ$0='rj.#:1Oȋ,|W f|'"+CjEp/N:j4( /-&l09"2 j};2c5gstًU*et$qL^:A7euXX?VeS'PoƫMbJ-J1B~ -Ȅ_ gPhLgZ"rY: o}Nj8?Aj0"C?@9 ]6EokZ>\oK<&:gWcvͱe߈<6.+|U,YCZ ZL +{^,T3䏶;>N3>2 T^N{1 D)4pH(B^B",+P2Vq,IL\v$)y?,N^ױx  p)qZ@*HA4\*k\09Ev0{/隷Ho Шx hp<_suW6K`o^B^g AhxC.#?)RxgizkM X:h&qj_B)bhYHmWbK'RgCd&:duhCC"t+lԀbUW70W*=&mdn=b)S­aρ b<"4 0&8 !ulU,.Cixϔ:-E[T@ 2-N&B'WỒEa8ĐWd@Kih6N ,YѥX Y|tқ_qbx3CBBdy;Th]~h7&"h]~l~ewlGFT#yc墺qD.>ż3" &Jb{9|xg6Q]"(T}Cb)*GO$ڧX+-Yq~K\*!f}E~*+H{ÝgJf:#rN*y/ x`($8 fkXm1 ,jKOT\z&D[zM{|=NM'^"Dg0$c3ᄍ^(;zqPoh[m8Ck !C=~ng $g6Ƈ- W#YFy@1PJ* _6 wv{*ʎCN7jbq!g 6P0Հ4YB?`xb:"N4 \C `Vk! |H[ PD"kcMReRo LxuP-dH9# ť W5eć\qҪ#*O#Z$M e`UR*@КS6 mc1`@$5ł͂FFyM*C"V6 V^8({:aHgzZ)T>y@.m=N )+ lEtX_o@a@IљkD~TL1" 3-|8 Vj?.uo2u +| -J@I$I 0 A$HH@$H H$A$ IHI $H $I$ HB-!4 I$ !1@AQaq?:\qXn1J@(YiWuq:>A T}u gRפ~KXUV^A );>&6$Xb;96%X`Mmͬi$nWv1tfA +}h2n I]El,׊C}|!cV G% ژnox; Pn(QzϮ/(}F XȫQUaRWȿ4* DO:;$R}Qjq{^nLKUb-ȑ_I8~LlHU-;K82"ʺ@C%q$HN?V*vﴆ-Lsn6Y" ˓G{/LLA"4X+EV RD٬`B'jh^3>PR3U2M;ʰqovKDZbGfMPT_z{`h lPjUNrQ$'@HӌVS(AԾ|?BE؍eU$)Ϣ!@1Aaq?I5QBC=Pb2`e!-ܱI'޶K nrzpyJӃ9E<i|_T\cq֌PbMv'G1]ӊ<}ݦ3N"#;q A=L4)Ļ漍71zQH/*ܙ[_D3FGnT}p{?[Rxmڥ{͡4йCC ٭bPQL㸣g@ qҦ1S]Qkl÷O[(o5 fqkrhz|qNLV-׺֞lcw0)mɃ"g 4>QA^iu:J3c0 RP>΢z ]Ł'x=2΋>9PDN9pqd-(H5>sql҆66[UF`DӸEוXċ_A2uEL}w틖}/E}@/.h'(7Qv4Z3,NeRwPQL@\ 俪 hcԴYLOrpJd 9 1@^3gk$bvߵdnF M46RkJ",/o:ǡTݒJ/8!'`Zbpq`@€].ԎB|rP&aP@z^Cm;?FD0gg!.Ӻ7"C]BJ" J2a%~n%+`:fx܎ƦA>0 l3. t;lYvw \ BEL cёcCm$ :ȂRZVտO .7}:BY &xH4׉pÍ@SkbH֎ۂΓziL~gHV-WΣK!c5UoS$o>Oˊm~ݳB0}>]Ai%q!ҥc"4蓡MSrEi[r#O7RzrAoւAh-pP@DRK]RηWecxs<\ Fc~7<^^rı>PX.kCm,rIt~ / 5`h2q/_DZƬ4듨9q )pJBB' YTAiN@*XL:ЗT~?lK Q.LQg FS" 7P2 H "p# Va 7vt $BRA蘶P\5ߝȂRh҉cuՒ1 Hj:hV\kW4K`+-Ynu&,g" ktNe=¹* V gؤ(, 1; use File::Temp qw(tempfile); our (@EXPORT_OK, %EXPORT_TAGS); my @defaults; @defaults = qw($source $compiler); @EXPORT_OK = (qw($compiler_flags %BUF_SIZE $valgrind_command $write_to_tmpfile), @defaults); %EXPORT_TAGS = ('defaults' => [ @defaults ]); our ($source, $compiler, $compiler_flags, %BUF_SIZE, $valgrind_command, $write_to_tmpfile); #---------------# # START of data # #---------------# $source = 'colorize.c'; $compiler = 'gcc'; $compiler_flags = '-ansi -pedantic -Wall -Wextra -Wformat -Wswitch-default -Wuninitialized -Wunused -Wno-unused-function -Wno-unused-parameter'; %BUF_SIZE = ( normal => 1024, short => 10, ); $valgrind_command = 'valgrind'; $write_to_tmpfile = sub { my ($content) = @_; my ($fh, $tmpfile) = tempfile(UNLINK => true); print {$fh} $content; close($fh); return $tmpfile; }; #-------------# # END of data # #-------------# 1; colorize-0.64/release.sh000077500000000000000000000005561331025647100152600ustar00rootroot00000000000000#!/bin/sh source_file="colorize.c" man_file="colorize.1" printf '%s\n' "Setting version for $source_file" perl -i -pe 's/(?<=#define VERSION ")([^"]+)(?=")/sprintf("%.2f",$1+0.01)/e' $source_file printf '%s\n' "Setting version for $man_file" perl -i -pe 's/(?<=\.TH COLORIZE 1 "\d{4}-\d{2}-\d{2}" "colorize v)([^"]+)(?=")/sprintf("%.2f",$1+0.01)/e' $man_file exit 0 colorize-0.64/t/000077500000000000000000000000001331025647100135365ustar00rootroot00000000000000colorize-0.64/t/fail.t000077500000000000000000000061651331025647100146510ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use lib qw(lib); use constant true => 1; use constant false => 0; use Colorize::Common qw(:defaults $write_to_tmpfile); use File::Temp qw(tempdir tmpnam); use IPC::Open3 qw(open3); use Symbol qw(gensym); use Test::More; my $tests = 25; my $run_program_fail = sub { my ($program, $args, $message) = @_; my @args = split /\s+/, $args; my $err = gensym; my $pid = open3(gensym, gensym, $err, $program, @args); waitpid($pid, 0); my $output = do { local $/; <$err> }; return ($? >> 8 == 1 && $output =~ /$message/) ? true : false; }; plan tests => $tests; SKIP: { my $program = tmpnam(); skip 'compiling failed (failure exit)', $tests unless system("$compiler -DTEST -o $program $source") == 0; my $file = $write_to_tmpfile->('abc'); my $dir = tempdir(CLEANUP => true); my @set = ( [ '--attr=:', 'must be provided a string' ], [ '--attr=bold:underscore', 'must have strings separated by ,' ], [ '--attr=b0ld', 'attribute \'b0ld\' is not valid' ], [ '--attr=b0ld,underscore', 'attribute \'b0ld\' is not valid' ], # handle comma [ '--attr=bold,bold', 'has attribute \'bold\' twice or more' ], [ '--exclude-random=random', 'must be provided a plain color' ], [ '--clean --clean-all', 'mutually exclusive' ], [ '--clean file1 file2', 'more than one file' ], [ '--clean-all file1 file2', 'more than one file' ], [ '- file', 'hyphen cannot be used as color string' ], [ '-', 'hyphen must be preceded by color string' ], [ "$file file", 'cannot be used as color string' ], [ "$file", 'must be preceded by color string' ], [ "$dir", 'is not a valid file type' ], [ '/black', 'foreground color missing' ], [ 'white/', 'background color missing' ], [ 'white/black/yellow', 'one color pair allowed only' ], [ 'y3llow', 'cannot be made of non-alphabetic characters' ], [ 'yEllow', 'cannot be in mixed lower/upper case' ], [ 'None', 'cannot be bold' ], [ 'white/Black', 'cannot be bold' ], [ 'random/none', 'cannot be combined with' ], [ 'random/default', 'cannot be combined with' ], [ 'none/random', 'cannot be combined with' ], [ 'default/random', 'cannot be combined with' ], ); foreach my $set (@set) { ok($run_program_fail->($program, $set->[0], $set->[1]), $set->[1]); } unlink $program; } colorize-0.64/t/merge.t000077500000000000000000000100071331025647100150230ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use lib qw(lib); use constant true => 1; use constant false => 0; use Colorize::Common ':defaults'; use File::Temp qw(tmpnam); use Test::More; # sequence, buffer sizes my @merge_success = ( [ "\e[30m", [ 1..4 ] ], [ "\e[31m", [ 1..4 ] ], [ "\e[32m", [ 1..4 ] ], [ "\e[33m", [ 1..4 ] ], [ "\e[34m", [ 1..4 ] ], [ "\e[35m", [ 1..4 ] ], [ "\e[36m", [ 1..4 ] ], [ "\e[37m", [ 1..4 ] ], [ "\e[39m", [ 1..4 ] ], [ "\e[1;30m", [ 1..6 ] ], [ "\e[1;31m", [ 1..6 ] ], [ "\e[1;32m", [ 1..6 ] ], [ "\e[1;33m", [ 1..6 ] ], [ "\e[1;34m", [ 1..6 ] ], [ "\e[1;35m", [ 1..6 ] ], [ "\e[1;36m", [ 1..6 ] ], [ "\e[1;37m", [ 1..6 ] ], [ "\e[1;39m", [ 1..6 ] ], [ "\e[40m", [ 1..4 ] ], [ "\e[41m", [ 1..4 ] ], [ "\e[42m", [ 1..4 ] ], [ "\e[43m", [ 1..4 ] ], [ "\e[44m", [ 1..4 ] ], [ "\e[45m", [ 1..4 ] ], [ "\e[46m", [ 1..4 ] ], [ "\e[47m", [ 1..4 ] ], [ "\e[49m", [ 1..4 ] ], [ "\e[0m", [ 1..3 ] ], [ "\e[m", [ 1..2 ] ], [ "\e[;;m", [ 1..4 ] ], [ "\e[123456m", [ 1 ] ], # tightly coupled to ALLOC_COMPLETE_PART_LINE ); # sequence, buffer size my @merge_fail = ( [ "\e30m", 1 ], # missing bracket [ "\e[am", 2 ], # not a digit nor ; nor m ); # sequence my @buffer = ( "\e[30mz", "\e[31mz", "\e[32mz", "\e[33mz", "\e[34mz", "\e[35mz", "\e[36mz", "\e[37mz", "\e[39mz", "\e[1;30mz", "\e[1;31mz", "\e[1;32mz", "\e[1;33mz", "\e[1;34mz", "\e[1;35mz", "\e[1;36mz", "\e[1;37mz", "\e[1;39mz", "\e[40mz", "\e[41mz", "\e[42mz", "\e[43mz", "\e[44mz", "\e[45mz", "\e[46mz", "\e[47mz", "\e[49mz", "\e[0mz", "\e[mz", "\e[;;mz", ); # sequence, buffer size my @pushback = ( [ "\ezm", 1 ], [ "\e[z", 2 ], ); my $tests = 0; foreach (@merge_success) { $tests += @{$_->[1]}; } $tests += @merge_fail; $tests += @buffer; $tests += @pushback; my %programs; my $compile = sub { my ($buf_size) = @_; return true if exists $programs{$buf_size}; my $program = tmpnam(); return false unless system("$compiler -DTEST_MERGE_PART_LINE -DBUF_SIZE=$buf_size -o $program $source") == 0; $programs{$buf_size} = $program; return true; # compiling succeeded }; my $test_name = sub { my ($sequence, $buf_size) = @_; my $substr = substr($sequence, 0, $buf_size); $substr =~ s/^\e/ESC/; $sequence =~ s/^\e/ESC/; return "$sequence: $substr"; }; my $compiling_failed_msg = 'compiling failed (merge part line)'; plan tests => $tests; foreach my $test (@merge_success) { foreach my $buf_size (@{$test->[1]}) { SKIP: { skip $compiling_failed_msg, 1 unless $compile->($buf_size); ok(qx(printf %s "$test->[0]" | $programs{$buf_size} --clean) eq $test->[0], 'merge success: ' . $test_name->($test->[0], $buf_size)); } } } foreach my $test (@merge_fail) { my $buf_size = $test->[1]; SKIP: { skip $compiling_failed_msg, 1 unless $compile->($buf_size); ok(qx(printf %s "$test->[0]" | $programs{$buf_size} --clean) eq substr($test->[0], 0, $buf_size), 'merge fail: ' . $test_name->($test->[0], $buf_size)); } } foreach my $test (@buffer) { my $buf_size = length($test) - 1; SKIP: { skip $compiling_failed_msg, 1 unless $compile->($buf_size); ok(qx(printf %s "$test" | $programs{$buf_size} --clean) eq substr($test, 0, $buf_size), 'buffer: ' . $test_name->($test, $buf_size)); } } foreach my $test (@pushback) { my $buf_size = $test->[1]; SKIP: { my $program = tmpnam(); skip $compiling_failed_msg, 1 unless system("$compiler -DBUF_SIZE=$buf_size -o $program $source") == 0; ok(qx(printf %s "$test->[0]" | $program --clean) eq $test->[0], 'pushback: ' . $test_name->($test->[0], $buf_size)); unlink $program; } } unlink $programs{$_} foreach keys %programs; colorize-0.64/test.pl000077500000000000000000000211501331025647100146110ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use lib qw(lib); use constant true => 1; use constant false => 0; use Colorize::Common qw(:defaults $compiler_flags %BUF_SIZE $valgrind_command $write_to_tmpfile); use File::Temp qw(tmpnam); use Getopt::Long qw(:config no_auto_abbrev no_ignore_case); use Test::Harness qw(runtests); use Test::More; my $tests = 30; my $valgrind_cmd = ''; { my ($regular, $valgrind); GetOptions(regular => \$regular, valgrind => \$valgrind) or exit; if (not $regular || $valgrind) { die "$0: neither --regular nor --valgrind specified, exiting\n"; } elsif ($regular && $valgrind) { die "$0: both --regular and --valgrind specified, exiting\n"; } $valgrind_cmd = "$valgrind_command " if $valgrind; } { my @test_files = glob('t/*.t'); eval { runtests(@test_files) } or warn $@; } plan tests => $tests; SKIP: { skip "$source does not exist", $tests unless -e $source; my $binary = tmpnam(); skip 'compiling failed', $tests unless system("$compiler $compiler_flags -o $binary $source") == 0; unlink $binary; my $program = tmpnam(); skip 'compiling failed (normal)', $tests unless system("$compiler -DTEST -DBUF_SIZE=$BUF_SIZE{normal} -o $program $source") == 0; is(system("$valgrind_cmd$program --help >/dev/null"), 0, 'exit value for help screen'); is(system("$valgrind_cmd$program --version >/dev/null"), 0, 'exit value for version data'); is(qx(printf '%s\n' "hello world" | $valgrind_cmd$program none/none), "hello world\n", 'line read from stdin with newline'); is(qx(printf %s "hello world" | $valgrind_cmd$program none/none), "hello world", 'line read from stdin without newline'); my $text = do { local $/; }; my $infile1 = $write_to_tmpfile->($text); is_deeply([split /\n/, qx(cat $infile1 | $valgrind_cmd$program none/none)], [split /\n/, $text], 'text read from stdin'); is_deeply([split /\n/, qx($valgrind_cmd$program none/none $infile1)], [split /\n/, $text], 'text read from file'); { my @fg_colors = (30..37, 39); my @bg_colors = (40..47, 49); my @bold_colors = map "1;$_", @fg_colors; my @values = (@fg_colors, @bg_colors, @bold_colors, 0); my $ok = true; foreach my $value (@values) { $ok &= qx(printf %s "\e[${value}m" | $valgrind_cmd$program --clean) eq ''; } ok($ok, 'clean color sequences'); } my $check_clean = sub { my ($type) = @_; my $switch = "--$type"; is(qx(printf %s "\e[35mhello\e[0m \e[36mworld\e[0m" | $valgrind_cmd$program $switch), 'hello world', "$type colored words"); is(qx(printf %s "hello world" | $program Magenta | $valgrind_cmd$program $switch), 'hello world', "$type colored line"); is_deeply([split /\n/, qx($program cyan $infile1 | $valgrind_cmd$program $switch)], [split /\n/, $text], "$type colored text"); { my @attrs = qw(bold underscore blink reverse concealed); my $ok = true; foreach my $attr (@attrs) { $ok &= qx(printf %s "$attr" | $program green --attr=$attr | $valgrind_cmd$program $switch) eq $attr; } ok($ok, "$type attribute"); my $attrs = join ',', @attrs; is(qx(printf %s "$attrs" | $program green --attr=$attrs | $valgrind_cmd$program $switch), $attrs, "$type attributes"); } ok(qx(printf %s "\e[\e[33m" | $valgrind_cmd$program $switch) eq "\e[", "$type with invalid sequence"); }; $check_clean->($_) foreach qw(clean clean-all); is(qx(printf %s "\e[4munderline\e[24m" | $valgrind_cmd$program --clean-all), 'underline', 'clean-all color sequences'); my $check_clean_buf = sub { my ($program_buf, $type) = @_; my $switch = "--$type"; # Check that line chunks are printed when cleaning text without sequences my $short_text = 'Linux dev 2.6.32-5-openvz-686 #1 SMP Sun Sep 23 11:40:07 UTC 2012 i686 GNU/Linux'; is(qx(printf %s "$short_text" | $valgrind_cmd$program_buf $switch), $short_text, "print ${\length $short_text} bytes (BUF_SIZE=$BUF_SIZE{short}, $type)"); }; SKIP: { my $program_buf = tmpnam(); skip 'compiling failed (short buffer)', 2 unless system("$compiler -DTEST -DBUF_SIZE=$BUF_SIZE{short} -o $program_buf $source") == 0; $check_clean_buf->($program_buf, $_) foreach qw(clean clean-all); unlink $program_buf; } my $repeated = join "\n", ($text) x 7; my $infile2 = $write_to_tmpfile->($repeated); is_deeply([split /\n/, qx(cat $infile2 | $valgrind_cmd$program none/none)], [split /\n/, $repeated], "read ${\length $repeated} bytes (BUF_SIZE=$BUF_SIZE{normal})"); { my $colored_text = qx(printf '%s\n' "foo bar baz" | $valgrind_cmd$program red); my $sequences = 0; $sequences++ while $colored_text =~ /\e\[\d+m/g; is($sequences, 2, 'count of sequences printed'); } { # Check that a 'none' foreground color (with a background color present) # will be substituted by 'default'. my $colored_text = qx(printf %s "foo bar baz" | $valgrind_cmd$program none/black); is($colored_text, "\e[40m\e[39mfoo bar baz\e[0m", 'no color sequences printed'); } is(qx(printf %s "hello\nworld\r\n" | $valgrind_cmd$program none/none), "hello\nworld\r\n", 'stream mode'); is(system(qq(printf '%s\n' "hello world" | $valgrind_cmd$program random --exclude-random=black >/dev/null)), 0, 'switch exclude-random'); { my $infile = $write_to_tmpfile->("foo\n\nbar"); is_deeply([split /\n/, qx($valgrind_cmd$program yellow --omit-color-empty $infile)], [split /\n/, "\e[33mfoo\e[0m\n\n\e[33mbar\e[0m"], 'switch omit-color-empty'); } SKIP: { skip 'valgrind not found', 1 unless system('which valgrind >/dev/null 2>&1') == 0; like(qx(valgrind $program none/none $infile1 2>&1 >/dev/null), qr/no leaks are possible/, 'valgrind memleaks'); } { my $debug = tmpnam(); is(system("$compiler -DDEBUG -o $debug $source"), 0, 'debugging build'); unlink $debug if -e $debug; } print <<'EOT'; Colors ====== EOT foreach my $color (qw(none black red green yellow blue magenta cyan white default random)) { system(qq(printf '%s\n' "$color" | $program $color)); next if $color eq 'none'; my $bold_color = ucfirst $color; system(qq(printf '%s\n' "$bold_color" | $program $bold_color)); } print <<'EOT'; Attributes ========== EOT foreach my $attr (qw(bold underscore blink reverse concealed)) { system(qq(printf '%s\n' "$attr" | $program green --attr=$attr)); } unlink $program; }; __DATA__ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus urna mauris, ultricies faucibus placerat sit amet, rutrum eu nisi. Quisque dictum turpis non augue iaculis tincidunt nec a arcu. Donec euismod sapien ac dui blandit et adipiscing risus semper. Sed ornare ligula magna, vitae molestie eros. Praesent ligula est, euismod a luctus non, porttitor quis nunc. Fusce vel imperdiet turpis. Proin vitae mauris neque, fringilla vestibulum sapien. Pellentesque vitae nibh ipsum, non cursus diam. Cras vitae ligula mauris. Etiam tortor enim, varius nec adipiscing sed, lobortis et quam. Quisque convallis, diam sagittis adipiscing adipiscing, mi nibh fermentum sapien, et iaculis nisi sem sit amet odio. Cras a tortor at nibh tristique vehicula dapibus eu velit. Vivamus porttitor purus eget leo suscipit sed posuere ligula gravida. In mollis velit quis leo pharetra gravida. Ut libero nisi, elementum sed varius tincidunt, hendrerit ut dui. Duis sit amet ante eget velit dictum ultrices. Nulla tempus, lacus eu dignissim feugiat, turpis mauris volutpat urna, quis commodo lorem augue id justo. Aenean consequat interdum sapien, sit amet imperdiet ante dapibus at. Pellentesque viverra sagittis tincidunt. Quisque rhoncus varius magna, sit amet rutrum arcu tincidunt eget. Etiam a lacus nec mauris interdum luctus sed in lacus. Ut pulvinar, augue at dictum blandit, nisl massa pretium ligula, in iaculis nulla nisi iaculis nunc. Vivamus id eros nunc. Cras facilisis iaculis ante sit amet consequat. Nunc vehicula imperdiet sem, ac vehicula neque condimentum sed. Phasellus metus lacus, molestie ullamcorper imperdiet in, condimentum ut tellus. Nullam dignissim dui ut enim ullamcorper in tempus risus posuere. Ut volutpat enim eleifend diam convallis tristique. Proin porttitor augue sed sapien sagittis quis facilisis purus sodales. Integer auctor dolor rhoncus nisl consequat adipiscing. Aliquam eget ante sit amet quam porta eleifend. colorize-0.64/version.pl000077500000000000000000000006601331025647100153220ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; my $version = ''; # git repository if (system('which git >/dev/null 2>&1') == 0 and system('git ls-files colorize.c --error-unmatch >/dev/null 2>&1') == 0) { $version = `git describe --tags --dirty`; $version =~ s/\n$//g; } if (length $version) { print <<"EOT"; const char *const version = "$version"; EOT } else { print <<'EOT'; const char *const version = NULL; EOT }