pax_global_header00006660000000000000000000000064140714037000014506gustar00rootroot0000000000000052 comment=35e433bd5d312b0af379729278bdd0a090f22cb5 awf-extended-2.5.0/000077500000000000000000000000001407140370000140655ustar00rootroot00000000000000awf-extended-2.5.0/FUNDING.yml000066400000000000000000000001701407140370000157000ustar00rootroot00000000000000custom: ["https://www.paypal.me/luigifab", "https://gandi.link/f/4b904048", "https://ekwateur.fr/?parrain=EKW001147103"]awf-extended-2.5.0/LICENSE000066400000000000000000001045131407140370000150760ustar00rootroot00000000000000 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 . awf-extended-2.5.0/Makefile.am000066400000000000000000000000151407140370000161150ustar00rootroot00000000000000SUBDIRS = srcawf-extended-2.5.0/README.md000066400000000000000000000140461407140370000153510ustar00rootroot00000000000000# AWF - A widget factory (extended) A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme. ## Screenshots GTK 2\ [![Preview with GTK 2 - Main window](images/thumbs/gtk2.png?raw=true)](images/gtk2.png?raw=true) [![Preview with GTK 2 - Menu](images/thumbs/gtk2-menu.png?raw=true)](images/gtk2-menu.png?raw=true) [![Preview with GTK 2 - RTL - Main window](images/thumbs/gtk2-rtl.png?raw=true)](images/gtk2-rtl.png?raw=true) [![Preview with GTK 2 - RTL - Menu](images/thumbs/gtk2-rtl-menu.png?raw=true)](images/gtk2-rtl-menu.png?raw=true) GTK 3\ [![Preview with GTK 3 - Main window](images/thumbs/gtk3.png?raw=true)](images/gtk3.png?raw=true) [![Preview with GTK 3 - Menu](images/thumbs/gtk3-menu.png?raw=true)](images/gtk3-menu.png?raw=true) [![Preview with GTK 3 - RTL - Main window](images/thumbs/gtk3-rtl.png?raw=true)](images/gtk3-rtl.png?raw=true) [![Preview with GTK 3 - RTL - Menu](images/thumbs/gtk3-rtl-menu.png?raw=true)](images/gtk3-rtl-menu.png?raw=true) GTK 4\ [![Preview with GTK 4 - Main window](images/thumbs/gtk4.png?raw=true)](images/gtk4.png?raw=true) [![Preview with GTK 4 - Menu](images/thumbs/gtk4-menu.png?raw=true)](images/gtk4-menu.png?raw=true) [![Preview with GTK 4 - RTL - Main window](images/thumbs/gtk4-rtl.png?raw=true)](images/gtk4-rtl.png?raw=true) [![Preview with GTK 4 - RTL - Menu](images/thumbs/gtk4-rtl-menu.png?raw=true)](images/gtk4-rtl-menu.png?raw=true) Theme used for the screenshots is available [here](https://github.com/luigifab/human-theme). Pango 1.42 for screenshots with GTK 2 and 3, Pango 1.48 for screenshots with GTK 4. * Some options are available from command line (read -h). * The options menu allow to run some standard dialogs. * The minus toolbar button allow to switch text direction. * The plus toolbar button allow to show or hide: arrows on notebooks, text and marks on progress bars and scales. * The refresh toolbar button and the refresh menu allow to reload the current theme (like the *sighup* signal). * The menu keyboard shortcuts can be updated on hover (GTK 2.24 and 3.x, *gtk-can-change-accels*). * The tabs of notebooks are scrollable with mouse (GTK 3.x and 4.x, *gtk-scroll-tabs*). * For Ubuntu, the menu keyboard shortcuts can be updated on hover with: `export UBUNTU_MENUPROXY= && awf-gtk3` ## Installation It require **GTK 2.24+** or **GTK 3.0+** *(including 3.24)* or **GTK 4.0+**, and *GLIB 2.28+*. * Debian and Ubuntu: `sudo apt install awf-gtk2 awf-gtk3 awf-gtk4` (coming soon or via [PPA](https://launchpad.net/~luigifab/+archive/ubuntu/packages)) * Fedora: `sudo dnf install awf-gtk2 awf-gtk3 awf-gtk4` * openSUSE: `sudo zypper install awf-gtk2 awf-gtk3 awf-gtk4` * The *build.sh* script will compile the program with all major GTK versions available. * The *debian-gtkx/deb.sh* scripts will compile the program and create packages for Debian and Ubuntu. * The *fedora-gtkx/rpm.sh* scripts will compile the program and create packages for Fedora. * The *opensuse-gtkx/rpm.sh* scripts will compile the program and create packages for openSUSE. ## PPA Installation for Debian and Ubuntu with [PPA](https://launchpad.net/~luigifab/+archive/ubuntu/packages): ```bash sudo add-apt-repository ppa:luigifab/packages sudo apt update sudo apt install awf-gtk2 awf-gtk3 awf-gtk4 # or sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys FFE5BD439356DF7D echo "deb http://ppa.launchpad.net/luigifab/packages/ubuntu impish main" | sudo tee -a /etc/apt/sources.list sudo apt update sudo apt install awf-gtk2 awf-gtk3 awf-gtk4 # or sudo wget -O /etc/apt/trusted.gpg.d/luigifab.gpg https://www.luigifab.fr/apt.gpg echo "deb http://ppa.launchpad.net/luigifab/packages/ubuntu impish main" | sudo tee -a /etc/apt/sources.list sudo apt update sudo apt install awf-gtk2 awf-gtk3 awf-gtk4 ``` ```bash # sha256sum /etc/apt/trusted.gpg.d/luigifab.gpg 578c89a677048e38007462d543686b53587efba9f93814601169253c45ff9213 # apt-key list /etc/apt/trusted.gpg.d/luigifab.gpg pub rsa4096 2020-10-31 [SC] 458B 0C46 D024 FD8C B8BC 99CD FFE5 BD43 9356 DF7D ``` ## Dev To reload theme when source files change, you can use [Entr](https://github.com/eradman/entr) with the *sighup* signal: ``` sudo apt install entr or sudo dnf install entr or sudo zypper install entr or ... ls ~/.themes/yourtheme/gtk-3*/*.css | entr killall -s SIGHUP awf-gtk3 ``` ## Copyright - Current version: 2.5.0 (07/07/2021) - Compatibility: GTK 2.24 / 3.0 / 3.2 / 3.4 / 3.6 / 3.8 / 3.10 / 3.12 / 3.14 / 3.16 / 3.18 / 3.20 / 3.22 / 3.24 / 4.0 / 4.2 - Translations: English (en), French (fr) - Links: [luigifab.fr](https://www.luigifab.fr/gtk/awf-extended) - [github.com](https://github.com/luigifab/awf-extended)\ [Debian awf-gtk2.deb](https://tracker.debian.org/pkg/awf-gtk2) *([ITP](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959434), [RFS](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959897))* ; [Debian awf-gtk3.deb](https://tracker.debian.org/pkg/awf-gtk3) *([ITP](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959436), [RFS](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959892))* ; [Debian awf-gtk4.deb](https://tracker.debian.org/pkg/awf-gtk4) *([ITP](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959433), [RFS](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=986360))*\ [Fedora awf-gtk2.rpm](https://src.fedoraproject.org/rpms/awf-gtk2) ; [Fedora awf-gtk3.rpm](https://src.fedoraproject.org/rpms/awf-gtk3) ; [Fedora awf-gtk4.rpm](https://src.fedoraproject.org/rpms/awf-gtk4)\ [openSUSE awf-gtk2.rpm](https://software.opensuse.org/package/awf-gtk2) ; [openSUSE awf-gtk3.rpm](https://software.opensuse.org/package/awf-gtk3) ; [openSUSE awf-gtk4.rpm](https://software.opensuse.org/package/awf-gtk4)\ [Ubuntu PPA](https://launchpad.net/~luigifab/+archive/ubuntu/packages) This program is provided under the terms of the **GNU GPLv3+** license.\ If you like, take some of your time to improve the translations, go to https://bit.ly/2HyCCEc. ## Credits Forked from [awf](https://github.com/valr/awf) by Valère Monseur (valr). awf-extended-2.5.0/applications/000077500000000000000000000000001407140370000165535ustar00rootroot00000000000000awf-extended-2.5.0/applications/awf-gtk2.desktop000066400000000000000000000004561407140370000215750ustar00rootroot00000000000000[Desktop Entry] Name=AWF GTK 2 Comment=A widget factory is a theme preview application for GTK. Comment[fr]=La fabrique à widgets est une application d'aperçu de thème pour GTK. Exec=awf-gtk2 Icon=awf-gtk2 Terminal=false Type=Application Keywords=gtk; Categories=GTK;Development; StartupNotify=true awf-extended-2.5.0/applications/awf-gtk3.desktop000066400000000000000000000004561407140370000215760ustar00rootroot00000000000000[Desktop Entry] Name=AWF GTK 3 Comment=A widget factory is a theme preview application for GTK. Comment[fr]=La fabrique à widgets est une application d'aperçu de thème pour GTK. Exec=awf-gtk3 Icon=awf-gtk3 Terminal=false Type=Application Keywords=gtk; Categories=GTK;Development; StartupNotify=true awf-extended-2.5.0/applications/awf-gtk4.desktop000066400000000000000000000004561407140370000215770ustar00rootroot00000000000000[Desktop Entry] Name=AWF GTK 4 Comment=A widget factory is a theme preview application for GTK. Comment[fr]=La fabrique à widgets est une application d'aperçu de thème pour GTK. Exec=awf-gtk4 Icon=awf-gtk4 Terminal=false Type=Application Keywords=gtk; Categories=GTK;Development; StartupNotify=true awf-extended-2.5.0/build.sh000066400000000000000000000015021407140370000155160ustar00rootroot00000000000000#!/bin/bash # Debian: sudo apt install build-essential dh-make dh-autoreconf intltool libgtk2.0-dev libgtk-3-dev libgtk-4-dev # Fedora: sudo dnf install autoconf automake gtk2-devel gtk3-devel gtk4-devel desktop-file-utils # openSUSE: sudo zypper install autoconf automake gtk2-devel gtk3-devel gtk4-devel desktop-file-utils # remove old builds rm -f awf-gtk2 awf-gtk3 awf-gtk4 # copy to a tmp directory mkdir builder builder/src touch builder/ChangeLog touch builder/NEWS touch builder/AUTHORS touch builder/README cp /usr/share/common-licenses/GPL-3 builder/COPYING cp configure.ac builder/ cp Makefile.am builder/ cp src/Makefile.am builder/src/ cp src/awf.c builder/src/ # build cd builder/ autoreconf -f -i ./configure make -s # final cp src/awf-gtk* .. cd .. ls -altrh awf-gtk4 awf-gtk3 awf-gtk2 rm -rf builder/awf-extended-2.5.0/configure.ac000066400000000000000000000013111407140370000163470ustar00rootroot00000000000000AC_INIT([A widget factory], [2.5.0]) AC_CONFIG_SRCDIR([src/awf.c]) AM_INIT_AUTOMAKE AC_PROG_CC AM_PROG_CC_C_O PKG_CHECK_MODULES(GTK4, gtk4, GTK4_SUFFIX=4, GTK4_SUFFIX=0) AM_CONDITIONAL([GTK4], [test "$GTK4_SUFFIX" -eq 4]) AC_SUBST(GTK4_CFLAGS) AC_SUBST(GTK4_LIBS) AC_SUBST(GTK4_SUFFIX) PKG_CHECK_MODULES(GTK3, gtk+-3.0, GTK3_SUFFIX=3, GTK3_SUFFIX=0) AM_CONDITIONAL([GTK3], [test "$GTK3_SUFFIX" -eq 3]) AC_SUBST(GTK3_CFLAGS) AC_SUBST(GTK3_LIBS) AC_SUBST(GTK3_SUFFIX) PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.24, GTK2_SUFFIX=2, GTK2_SUFFIX=0) AM_CONDITIONAL([GTK2], [test "$GTK2_SUFFIX" -eq 2]) AC_SUBST(GTK2_CFLAGS) AC_SUBST(GTK2_LIBS) AC_SUBST(GTK2_SUFFIX) AC_CONFIG_FILES([ Makefile src/Makefile ]) AC_OUTPUTawf-extended-2.5.0/debian-gtk2/000077500000000000000000000000001407140370000161545ustar00rootroot00000000000000awf-extended-2.5.0/debian-gtk2/changelog000066400000000000000000000002501407140370000200230ustar00rootroot00000000000000awf-gtk2 (2.5.0-1) unstable; urgency=low * Initial debian package release (Closes: #959434) -- Fabrice Creuzot Wed, 07 Jul 2021 20:00:00 +0000 awf-extended-2.5.0/debian-gtk2/control000066400000000000000000000013161407140370000175600ustar00rootroot00000000000000Source: awf-gtk2 Section: x11 Priority: optional Maintainer: Fabrice Creuzot Build-Depends: debhelper-compat (= 13), libgtk2.0-dev Rules-Requires-Root: no Standards-Version: 4.5.1 Homepage: https://github.com/luigifab/awf-extended Vcs-Browser: https://github.com/luigifab/awf-extended Vcs-Git: https://github.com/luigifab/awf-extended.git Package: awf-gtk2 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Theme preview application for GTK A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme. . This package provides the gtk2 version. awf-extended-2.5.0/debian-gtk2/copyright000066400000000000000000000021311407140370000201040ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://github.com/luigifab/awf-extended Upstream-Contact: Fabrice Creuzot Files: * Copyright: 2011-2016 Valère Monseur (valr) 2020-2021 Fabrice Creuzot (luigifab) License: GPL-3+ License: GPL-3+ This program is free software: you can 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". awf-extended-2.5.0/debian-gtk2/deb.sh000066400000000000000000000066151407140370000172520ustar00rootroot00000000000000#!/bin/bash # debian: sudo apt install dpkg-dev devscripts build-essential dh-make dh-autoreconf intltool libgtk2.0-dev cd "$(dirname "$0")" version="2.5.0" gtk="gtk2" rm -rf builder/ mkdir builder # copy to a tmp directory if [ true ]; then cd builder wget https://github.com/luigifab/awf-extended/archive/v$version/awf-extended-$version.tar.gz tar xzf awf-extended-$version.tar.gz cd .. else temp=awf-extended-$version mkdir /tmp/$temp cp -r ../* /tmp/$temp/ rm -rf /tmp/$temp/*/builder/ mv /tmp/$temp builder/ cp /usr/share/common-licenses/GPL-3 builder/$temp/LICENSE cd builder/ tar czf $temp.tar.gz $temp cd .. fi # create packages for debian and ubuntu for serie in unstable impish hirsute groovy focal bionic xenial trusty precise; do if [ $serie = "unstable" ]; then # for ubuntu cp -a builder/awf-extended-$version/ builder/awf-extended-$version+src/ # debian only cd builder/awf-extended-$version/ else # ubuntu only cp -a builder/awf-extended-$version+src/ builder/awf-extended-$version+$serie/ cd builder/awf-extended-$version+$serie/ fi dh_make -s -y -f ../awf-extended-$version.tar.gz -p awf-$gtk rm -f debian/*ex debian/*EX debian/README* debian/*doc* mkdir debian/upstream cp debian-$gtk/* debian/ mv debian/metadata debian/upstream/metadata if [ $serie = "unstable" ]; then dpkg-buildpackage -us -uc else # debhelper: unstable:13 hirsute:13 groovy:13 focal:12 bionic:9 xenial:9 trusty:9 precise:9 if [ $serie = "focal" ]; then sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 12)/g' debian/control fi if [ $serie = "bionic" ]; then sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 9), dh-autoreconf/g' debian/control fi if [ $serie = "xenial" ]; then sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), dh-autoreconf/g' debian/control sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control echo 9 > debian/compat fi if [ $serie = "trusty" ]; then sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control echo 9 > debian/compat fi if [ $serie = "precise" ]; then sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control echo 9 > debian/compat fi sed -i 's/unstable/'$serie'/g' debian/changelog sed -i 's/-1) /-1+'$serie') /' debian/changelog dpkg-buildpackage -us -uc -ui -d -S fi echo "===========================" cd .. if [ $serie = "unstable" ]; then # debian only debsign awf-$gtk_$version-*.changes echo "===========================" lintian -EviIL +pedantic awf-$gtk_$version-*.deb else # ubuntu only debsign awf-$gtk_$version*+$serie*source.changes fi echo "===========================" cd .. done ls -dltrh builder/*.deb builder/*.changes echo "===========================" # cleanup rm -rf builder/*/awf-extended-2.5.0/debian-gtk2/install000066400000000000000000000002311407140370000175410ustar00rootroot00000000000000applications/awf-gtk2.desktop usr/share/applications icons/* usr/share/icons/hicolor locale/* usr/share/localeawf-extended-2.5.0/debian-gtk2/metadata000066400000000000000000000006101407140370000176540ustar00rootroot00000000000000Bug-Database: https://github.com/luigifab/awf-extended/issues/ Bug-Submit: https://github.com/luigifab/awf-extended/issues/new Documentation: https://github.com/luigifab/awf-extended Repository: https://github.com/luigifab/awf-extended.git Repository-Browse: https://github.com/luigifab/awf-extended Screenshots: https://raw.githubusercontent.com/luigifab/awf-extended/levelup/images/gtk2.pngawf-extended-2.5.0/debian-gtk2/rules000066400000000000000000000011531407140370000172310ustar00rootroot00000000000000#!/usr/bin/make -f export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ override_dh_update_autotools_config: sed -i 's/ -eq 3/ -eq -1/g' configure.ac sed -i 's/ -eq 4/ -eq -1/g' configure.ac touch NEWS touch AUTHORS touch README touch ChangeLog mv LICENSE COPYING for file in icons/*/*/*.png; do mv $$file `dirname $$file`/awf-gtk2.png; done for file in icons/*/*/*.svg; do mv $$file `dirname $$file`/awf-gtk2.svg; done for file in src/po/*.po; do \ code=`basename "$$file" .po`; \ mkdir -p locale/$$code/LC_MESSAGES/; \ msgfmt src/po/$$code.po -o locale/$$code/LC_MESSAGES/awf-gtk2.mo; \ done awf-extended-2.5.0/debian-gtk2/watch000066400000000000000000000001241407140370000172020ustar00rootroot00000000000000version=4 https://github.com/luigifab/awf-extended/releases .*awf-([0-9.]+)\.tar\.gzawf-extended-2.5.0/debian-gtk3/000077500000000000000000000000001407140370000161555ustar00rootroot00000000000000awf-extended-2.5.0/debian-gtk3/changelog000066400000000000000000000002501407140370000200240ustar00rootroot00000000000000awf-gtk3 (2.5.0-1) unstable; urgency=low * Initial debian package release (Closes: #959436) -- Fabrice Creuzot Wed, 07 Jul 2021 20:00:00 +0000 awf-extended-2.5.0/debian-gtk3/control000066400000000000000000000013151407140370000175600ustar00rootroot00000000000000Source: awf-gtk3 Section: x11 Priority: optional Maintainer: Fabrice Creuzot Build-Depends: debhelper-compat (= 13), libgtk-3-dev Rules-Requires-Root: no Standards-Version: 4.5.1 Homepage: https://github.com/luigifab/awf-extended Vcs-Browser: https://github.com/luigifab/awf-extended Vcs-Git: https://github.com/luigifab/awf-extended.git Package: awf-gtk3 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Theme preview application for GTK A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme. . This package provides the gtk3 version. awf-extended-2.5.0/debian-gtk3/copyright000066400000000000000000000021311407140370000201050ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://github.com/luigifab/awf-extended Upstream-Contact: Fabrice Creuzot Files: * Copyright: 2011-2016 Valère Monseur (valr) 2020-2021 Fabrice Creuzot (luigifab) License: GPL-3+ License: GPL-3+ This program is free software: you can 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". awf-extended-2.5.0/debian-gtk3/deb.sh000066400000000000000000000066141407140370000172520ustar00rootroot00000000000000#!/bin/bash # debian: sudo apt install dpkg-dev devscripts build-essential dh-make dh-autoreconf intltool libgtk-3-dev cd "$(dirname "$0")" version="2.5.0" gtk="gtk3" rm -rf builder/ mkdir builder # copy to a tmp directory if [ true ]; then cd builder wget https://github.com/luigifab/awf-extended/archive/v$version/awf-extended-$version.tar.gz tar xzf awf-extended-$version.tar.gz cd .. else temp=awf-extended-$version mkdir /tmp/$temp cp -r ../* /tmp/$temp/ rm -rf /tmp/$temp/*/builder/ mv /tmp/$temp builder/ cp /usr/share/common-licenses/GPL-3 builder/$temp/LICENSE cd builder/ tar czf $temp.tar.gz $temp cd .. fi # create packages for debian and ubuntu for serie in unstable impish hirsute groovy focal bionic xenial trusty precise; do if [ $serie = "unstable" ]; then # for ubuntu cp -a builder/awf-extended-$version/ builder/awf-extended-$version+src/ # debian only cd builder/awf-extended-$version/ else # ubuntu only cp -a builder/awf-extended-$version+src/ builder/awf-extended-$version+$serie/ cd builder/awf-extended-$version+$serie/ fi dh_make -s -y -f ../awf-extended-$version.tar.gz -p awf-$gtk rm -f debian/*ex debian/*EX debian/README* debian/*doc* mkdir debian/upstream cp debian-$gtk/* debian/ mv debian/metadata debian/upstream/metadata if [ $serie = "unstable" ]; then dpkg-buildpackage -us -uc else # debhelper: unstable:13 hirsute:13 groovy:13 focal:12 bionic:9 xenial:9 trusty:9 precise:9 if [ $serie = "focal" ]; then sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 12)/g' debian/control fi if [ $serie = "bionic" ]; then sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 9), dh-autoreconf/g' debian/control fi if [ $serie = "xenial" ]; then sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), dh-autoreconf/g' debian/control sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control echo 9 > debian/compat fi if [ $serie = "trusty" ]; then sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control echo 9 > debian/compat fi if [ $serie = "precise" ]; then sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control echo 9 > debian/compat fi sed -i 's/unstable/'$serie'/g' debian/changelog sed -i 's/-1) /-1+'$serie') /' debian/changelog dpkg-buildpackage -us -uc -ui -d -S fi echo "===========================" cd .. if [ $serie = "unstable" ]; then # debian only debsign awf-$gtk_$version-*.changes echo "===========================" lintian -EviIL +pedantic awf-$gtk_$version-*.deb else # ubuntu only debsign awf-$gtk_$version*+$serie*source.changes fi echo "===========================" cd .. done ls -dltrh builder/*.deb builder/*.changes echo "===========================" # cleanup rm -rf builder/*/awf-extended-2.5.0/debian-gtk3/install000066400000000000000000000002311407140370000175420ustar00rootroot00000000000000applications/awf-gtk3.desktop usr/share/applications icons/* usr/share/icons/hicolor locale/* usr/share/localeawf-extended-2.5.0/debian-gtk3/metadata000066400000000000000000000006101407140370000176550ustar00rootroot00000000000000Bug-Database: https://github.com/luigifab/awf-extended/issues/ Bug-Submit: https://github.com/luigifab/awf-extended/issues/new Documentation: https://github.com/luigifab/awf-extended Repository: https://github.com/luigifab/awf-extended.git Repository-Browse: https://github.com/luigifab/awf-extended Screenshots: https://raw.githubusercontent.com/luigifab/awf-extended/levelup/images/gtk3.pngawf-extended-2.5.0/debian-gtk3/rules000066400000000000000000000011531407140370000172320ustar00rootroot00000000000000#!/usr/bin/make -f export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ override_dh_update_autotools_config: sed -i 's/ -eq 2/ -eq -1/g' configure.ac sed -i 's/ -eq 4/ -eq -1/g' configure.ac touch NEWS touch AUTHORS touch README touch ChangeLog mv LICENSE COPYING for file in icons/*/*/*.png; do mv $$file `dirname $$file`/awf-gtk3.png; done for file in icons/*/*/*.svg; do mv $$file `dirname $$file`/awf-gtk3.svg; done for file in src/po/*.po; do \ code=`basename "$$file" .po`; \ mkdir -p locale/$$code/LC_MESSAGES/; \ msgfmt src/po/$$code.po -o locale/$$code/LC_MESSAGES/awf-gtk3.mo; \ done awf-extended-2.5.0/debian-gtk3/watch000066400000000000000000000001241407140370000172030ustar00rootroot00000000000000version=4 https://github.com/luigifab/awf-extended/releases .*awf-([0-9.]+)\.tar\.gzawf-extended-2.5.0/debian-gtk4/000077500000000000000000000000001407140370000161565ustar00rootroot00000000000000awf-extended-2.5.0/debian-gtk4/changelog000066400000000000000000000002541407140370000200310ustar00rootroot00000000000000awf-gtk4 (2.5.0-1) experimental; urgency=low * Initial debian package release (Closes: #959433) -- Fabrice Creuzot Wed, 07 Jul 2021 20:00:00 +0000 awf-extended-2.5.0/debian-gtk4/control000066400000000000000000000013151407140370000175610ustar00rootroot00000000000000Source: awf-gtk4 Section: x11 Priority: optional Maintainer: Fabrice Creuzot Build-Depends: debhelper-compat (= 13), libgtk-4-dev Rules-Requires-Root: no Standards-Version: 4.5.1 Homepage: https://github.com/luigifab/awf-extended Vcs-Browser: https://github.com/luigifab/awf-extended Vcs-Git: https://github.com/luigifab/awf-extended.git Package: awf-gtk4 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Theme preview application for GTK A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme. . This package provides the gtk4 version. awf-extended-2.5.0/debian-gtk4/copyright000066400000000000000000000021311407140370000201060ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://github.com/luigifab/awf-extended Upstream-Contact: Fabrice Creuzot Files: * Copyright: 2011-2016 Valère Monseur (valr) 2020-2021 Fabrice Creuzot (luigifab) License: GPL-3+ License: GPL-3+ This program is free software: you can 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". awf-extended-2.5.0/debian-gtk4/deb.sh000066400000000000000000000065721407140370000172560ustar00rootroot00000000000000#!/bin/bash # debian: sudo apt install dpkg-dev devscripts build-essential dh-make dh-autoreconf intltool libgtk-4-dev cd "$(dirname "$0")" version="2.5.0" gtk="gtk4" rm -rf builder/ mkdir builder # copy to a tmp directory if [ true ]; then cd builder wget https://github.com/luigifab/awf-extended/archive/v$version/awf-extended-$version.tar.gz tar xzf awf-extended-$version.tar.gz cd .. else temp=awf-extended-$version mkdir /tmp/$temp cp -r ../* /tmp/$temp/ rm -rf /tmp/$temp/*/builder/ mv /tmp/$temp builder/ cp /usr/share/common-licenses/GPL-3 builder/$temp/LICENSE cd builder/ tar czf $temp.tar.gz $temp cd .. fi # create packages for debian and ubuntu for serie in experimental impish hirsute; do if [ $serie = "experimental" ]; then # for ubuntu cp -a builder/awf-extended-$version/ builder/awf-extended-$version+src/ # debian only cd builder/awf-extended-$version/ else # ubuntu only cp -a builder/awf-extended-$version+src/ builder/awf-extended-$version+$serie/ cd builder/awf-extended-$version+$serie/ fi dh_make -s -y -f ../awf-extended-$version.tar.gz -p awf-$gtk rm -f debian/*ex debian/*EX debian/README* debian/*doc* mkdir debian/upstream cp debian-$gtk/* debian/ mv debian/metadata debian/upstream/metadata if [ $serie = "experimental" ]; then dpkg-buildpackage -us -uc else # debhelper: experimental:13 hirsute:13 groovy:13 focal:12 bionic:9 xenial:9 trusty:9 precise:9 if [ $serie = "focal" ]; then sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 12)/g' debian/control fi if [ $serie = "bionic" ]; then sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 9), dh-autoreconf/g' debian/control fi if [ $serie = "xenial" ]; then sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), dh-autoreconf/g' debian/control sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control echo 9 > debian/compat fi if [ $serie = "trusty" ]; then sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control echo 9 > debian/compat fi if [ $serie = "precise" ]; then sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control echo 9 > debian/compat fi sed -i 's/experimental/'$serie'/g' debian/changelog sed -i 's/-1) /-1+'$serie') /' debian/changelog dpkg-buildpackage -us -uc -ui -d -S fi echo "===========================" cd .. if [ $serie = "experimental" ]; then # debian only debsign awf-$gtk_$version-*.changes echo "===========================" lintian -EviIL +pedantic awf-$gtk_$version-*.deb else # ubuntu only debsign awf-$gtk_$version*+$serie*source.changes fi echo "===========================" cd .. done ls -dltrh builder/*.deb builder/*.changes echo "===========================" # cleanup rm -rf builder/*/awf-extended-2.5.0/debian-gtk4/install000066400000000000000000000002311407140370000175430ustar00rootroot00000000000000applications/awf-gtk4.desktop usr/share/applications icons/* usr/share/icons/hicolor locale/* usr/share/localeawf-extended-2.5.0/debian-gtk4/metadata000066400000000000000000000006101407140370000176560ustar00rootroot00000000000000Bug-Database: https://github.com/luigifab/awf-extended/issues/ Bug-Submit: https://github.com/luigifab/awf-extended/issues/new Documentation: https://github.com/luigifab/awf-extended Repository: https://github.com/luigifab/awf-extended.git Repository-Browse: https://github.com/luigifab/awf-extended Screenshots: https://raw.githubusercontent.com/luigifab/awf-extended/levelup/images/gtk4.pngawf-extended-2.5.0/debian-gtk4/rules000066400000000000000000000011531407140370000172330ustar00rootroot00000000000000#!/usr/bin/make -f export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ override_dh_update_autotools_config: sed -i 's/ -eq 2/ -eq -1/g' configure.ac sed -i 's/ -eq 3/ -eq -1/g' configure.ac touch NEWS touch AUTHORS touch README touch ChangeLog mv LICENSE COPYING for file in icons/*/*/*.png; do mv $$file `dirname $$file`/awf-gtk4.png; done for file in icons/*/*/*.svg; do mv $$file `dirname $$file`/awf-gtk4.svg; done for file in src/po/*.po; do \ code=`basename "$$file" .po`; \ mkdir -p locale/$$code/LC_MESSAGES/; \ msgfmt src/po/$$code.po -o locale/$$code/LC_MESSAGES/awf-gtk4.mo; \ done awf-extended-2.5.0/debian-gtk4/watch000066400000000000000000000001241407140370000172040ustar00rootroot00000000000000version=4 https://github.com/luigifab/awf-extended/releases .*awf-([0-9.]+)\.tar\.gzawf-extended-2.5.0/fedora-gtk2/000077500000000000000000000000001407140370000161725ustar00rootroot00000000000000awf-extended-2.5.0/fedora-gtk2/awf-gtk2.spec000066400000000000000000000047001407140370000204710ustar00rootroot00000000000000Name: awf-gtk2 Version: 2.5.0 Release: 1%{?dist} Summary: Theme preview application for GTK Summary(fr): Application d'aperçu de thème pour GTK License: GPLv3+ URL: https://github.com/luigifab/awf-extended Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires: gtk2-devel BuildRequires: gettext BuildRequires: gcc BuildRequires: autoconf BuildRequires: automake BuildRequires: desktop-file-utils BuildRequires: hunspell-fr Requires: gtk2 Requires: hicolor-icon-theme %description %{expand: A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme. This package provides the gtk2 version.} %description -l fr %{expand: La fabrique à widgets est une application d'aperçu de thème pour GTK. Elle affiche les différents types de widgets fournis par GTK dans une seule fenêtre permettant de voir l'effet visuel du thème appliqué. Ce paquet fournit la version gtk2.} %prep %setup -q -n awf-extended-%{version} sed -i 's/ -eq 3/ -eq -1/g' configure.ac sed -i 's/ -eq 4/ -eq -1/g' configure.ac touch {NEWS,AUTHORS,README,ChangeLog} mv LICENSE COPYING %build autoreconf -f -i %configure %make_build %install %make_install mkdir -p %{buildroot}%{_datadir}/applications/ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/ for file in icons/*/*/*; do mv $file ${file/\/awf./\/%{name}.}; done cp -a icons/* %{buildroot}%{_datadir}/icons/hicolor/ for file in src/po/*.po; do code=$(basename "$file" .po) mkdir -p %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/ msgfmt src/po/${code}.po -o %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/%{name}.mo done desktop-file-install --dir=%{buildroot}%{_datadir}/applications/ applications/%{name}.desktop %find_lang %{name} %files -f %{name}.lang %license COPYING %doc README.md %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/*/apps/%{name}.png %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg %changelog * Wed Jul 07 2021 Fabrice Creuzot - 2.5.0-1 - New upstream version * Wed May 05 2021 Fabrice Creuzot - 2.4.0-1 - New upstream version * Sun Apr 04 2021 Fabrice Creuzot - 2.3.0-1 - New upstream version * Wed Nov 11 2020 Fabrice Creuzot - 2.2.0-1 - Initial Fedora package release (Closes: rhbz#1893321) awf-extended-2.5.0/fedora-gtk2/rpm.sh000066400000000000000000000024621407140370000173300ustar00rootroot00000000000000#!/bin/bash # Fedora: sudo dnf install rpmdevtools rpm-sign autoconf automake gtk2-devel desktop-file-utils hunspell-fr # Fedora: configure: error: C compiler cannot create executables? remove and reinstall glibc-devel gcc cd "$(dirname "$0")" version="2.5.0" gtk="gtk2" rm -rf builder/ ~/rpmbuild/ mkdir -p builder ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} # copy to a tmp directory if [ true ]; then chmod 644 awf-$gtk.spec spectool -g -R awf-$gtk.spec else temp=awf-extended-$version mkdir /tmp/$temp cp -r ../* /tmp/$temp/ rm -rf /tmp/$temp/*/builder/ mv /tmp/$temp builder/ cp /usr/share/licenses/linux-firmware/GPL-3 builder/$temp/LICENSE cd builder/ tar czf $temp.tar.gz $temp cd .. cp builder/$temp.tar.gz ~/rpmbuild/SOURCES/awf-$gtk-$version.tar.gz chmod 644 awf-$gtk.spec fi # create package (rpm sign https://access.redhat.com/articles/3359321) rpmbuild -ba awf-$gtk.spec rpm --addsign ~/rpmbuild/RPMS/*/*.rpm rpm --addsign ~/rpmbuild/SRPMS/*.rpm mv ~/rpmbuild/RPMS/*/*.rpm builder/ mv ~/rpmbuild/SRPMS/*.rpm builder/ echo "===========================" rpm --checksig builder/*.rpm echo "===========================" rpmlint awf-$gtk.spec builder/*.rpm echo "===========================" ls -dltrh builder/*.rpm echo "===========================" # cleanup rm -rf builder/*/ ~/rpmbuild/awf-extended-2.5.0/fedora-gtk3/000077500000000000000000000000001407140370000161735ustar00rootroot00000000000000awf-extended-2.5.0/fedora-gtk3/awf-gtk3.spec000066400000000000000000000047001407140370000204730ustar00rootroot00000000000000Name: awf-gtk3 Version: 2.5.0 Release: 1%{?dist} Summary: Theme preview application for GTK Summary(fr): Application d'aperçu de thème pour GTK License: GPLv3+ URL: https://github.com/luigifab/awf-extended Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires: gtk3-devel BuildRequires: gettext BuildRequires: gcc BuildRequires: autoconf BuildRequires: automake BuildRequires: desktop-file-utils BuildRequires: hunspell-fr Requires: gtk3 Requires: hicolor-icon-theme %description %{expand: A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme. This package provides the gtk3 version.} %description -l fr %{expand: La fabrique à widgets est une application d'aperçu de thème pour GTK. Elle affiche les différents types de widgets fournis par GTK dans une seule fenêtre permettant de voir l'effet visuel du thème appliqué. Ce paquet fournit la version gtk3.} %prep %setup -q -n awf-extended-%{version} sed -i 's/ -eq 2/ -eq -1/g' configure.ac sed -i 's/ -eq 4/ -eq -1/g' configure.ac touch {NEWS,AUTHORS,README,ChangeLog} mv LICENSE COPYING %build autoreconf -f -i %configure %make_build %install %make_install mkdir -p %{buildroot}%{_datadir}/applications/ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/ for file in icons/*/*/*; do mv $file ${file/\/awf./\/%{name}.}; done cp -a icons/* %{buildroot}%{_datadir}/icons/hicolor/ for file in src/po/*.po; do code=$(basename "$file" .po) mkdir -p %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/ msgfmt src/po/${code}.po -o %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/%{name}.mo done desktop-file-install --dir=%{buildroot}%{_datadir}/applications/ applications/%{name}.desktop %find_lang %{name} %files -f %{name}.lang %license COPYING %doc README.md %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/*/apps/%{name}.png %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg %changelog * Wed Jul 07 2021 Fabrice Creuzot - 2.5.0-1 - New upstream version * Wed May 05 2021 Fabrice Creuzot - 2.4.0-1 - New upstream version * Sun Apr 04 2021 Fabrice Creuzot - 2.3.0-1 - New upstream version * Wed Nov 11 2020 Fabrice Creuzot - 2.2.0-1 - Initial Fedora package release (Closes: rhbz#1893323) awf-extended-2.5.0/fedora-gtk3/rpm.sh000066400000000000000000000024621407140370000173310ustar00rootroot00000000000000#!/bin/bash # Fedora: sudo dnf install rpmdevtools rpm-sign autoconf automake gtk3-devel desktop-file-utils hunspell-fr # Fedora: configure: error: C compiler cannot create executables? remove and reinstall glibc-devel gcc cd "$(dirname "$0")" version="2.5.0" gtk="gtk3" rm -rf builder/ ~/rpmbuild/ mkdir -p builder ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} # copy to a tmp directory if [ true ]; then chmod 644 awf-$gtk.spec spectool -g -R awf-$gtk.spec else temp=awf-extended-$version mkdir /tmp/$temp cp -r ../* /tmp/$temp/ rm -rf /tmp/$temp/*/builder/ mv /tmp/$temp builder/ cp /usr/share/licenses/linux-firmware/GPL-3 builder/$temp/LICENSE cd builder/ tar czf $temp.tar.gz $temp cd .. cp builder/$temp.tar.gz ~/rpmbuild/SOURCES/awf-$gtk-$version.tar.gz chmod 644 awf-$gtk.spec fi # create package (rpm sign https://access.redhat.com/articles/3359321) rpmbuild -ba awf-$gtk.spec rpm --addsign ~/rpmbuild/RPMS/*/*.rpm rpm --addsign ~/rpmbuild/SRPMS/*.rpm mv ~/rpmbuild/RPMS/*/*.rpm builder/ mv ~/rpmbuild/SRPMS/*.rpm builder/ echo "===========================" rpm --checksig builder/*.rpm echo "===========================" rpmlint awf-$gtk.spec builder/*.rpm echo "===========================" ls -dltrh builder/*.rpm echo "===========================" # cleanup rm -rf builder/*/ ~/rpmbuild/awf-extended-2.5.0/fedora-gtk4/000077500000000000000000000000001407140370000161745ustar00rootroot00000000000000awf-extended-2.5.0/fedora-gtk4/awf-gtk4.spec000066400000000000000000000045511407140370000205010ustar00rootroot00000000000000Name: awf-gtk4 Version: 2.5.0 Release: 1%{?dist} Summary: Theme preview application for GTK Summary(fr): Application d'aperçu de thème pour GTK License: GPLv3+ URL: https://github.com/luigifab/awf-extended Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires: gtk4-devel BuildRequires: gettext BuildRequires: gcc BuildRequires: autoconf BuildRequires: automake BuildRequires: desktop-file-utils BuildRequires: hunspell-fr Requires: gtk4 Requires: hicolor-icon-theme %description %{expand: A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme. This package provides the gtk4 version.} %description -l fr %{expand: La fabrique à widgets est une application d'aperçu de thème pour GTK. Elle affiche les différents types de widgets fournis par GTK dans une seule fenêtre permettant de voir l'effet visuel du thème appliqué. Ce paquet fournit la version gtk4.} %prep %setup -q -n awf-extended-%{version} sed -i 's/ -eq 2/ -eq -1/g' configure.ac sed -i 's/ -eq 3/ -eq -1/g' configure.ac touch {NEWS,AUTHORS,README,ChangeLog} mv LICENSE COPYING %build autoreconf -f -i %configure %make_build %install %make_install mkdir -p %{buildroot}%{_datadir}/applications/ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/ for file in icons/*/*/*; do mv $file ${file/\/awf./\/%{name}.}; done cp -a icons/* %{buildroot}%{_datadir}/icons/hicolor/ for file in src/po/*.po; do code=$(basename "$file" .po) mkdir -p %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/ msgfmt src/po/${code}.po -o %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/%{name}.mo done desktop-file-install --dir=%{buildroot}%{_datadir}/applications/ applications/%{name}.desktop %find_lang %{name} %files -f %{name}.lang %license COPYING %doc README.md %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/*/apps/%{name}.png %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg %changelog * Wed Jul 07 2021 Fabrice Creuzot - 2.5.0-1 - New upstream version * Wed May 05 2021 Fabrice Creuzot - 2.4.0-1 - New upstream version * Sun Apr 04 2021 Fabrice Creuzot - 2.3.0-1 - Initial Fedora package release (Closes: rhbz#1946092) awf-extended-2.5.0/fedora-gtk4/rpm.sh000066400000000000000000000024621407140370000173320ustar00rootroot00000000000000#!/bin/bash # Fedora: sudo dnf install rpmdevtools rpm-sign autoconf automake gtk4-devel desktop-file-utils hunspell-fr # Fedora: configure: error: C compiler cannot create executables? remove and reinstall glibc-devel gcc cd "$(dirname "$0")" version="2.5.0" gtk="gtk4" rm -rf builder/ ~/rpmbuild/ mkdir -p builder ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} # copy to a tmp directory if [ true ]; then chmod 644 awf-$gtk.spec spectool -g -R awf-$gtk.spec else temp=awf-extended-$version mkdir /tmp/$temp cp -r ../* /tmp/$temp/ rm -rf /tmp/$temp/*/builder/ mv /tmp/$temp builder/ cp /usr/share/licenses/linux-firmware/GPL-3 builder/$temp/LICENSE cd builder/ tar czf $temp.tar.gz $temp cd .. cp builder/$temp.tar.gz ~/rpmbuild/SOURCES/awf-$gtk-$version.tar.gz chmod 644 awf-$gtk.spec fi # create package (rpm sign https://access.redhat.com/articles/3359321) rpmbuild -ba awf-$gtk.spec rpm --addsign ~/rpmbuild/RPMS/*/*.rpm rpm --addsign ~/rpmbuild/SRPMS/*.rpm mv ~/rpmbuild/RPMS/*/*.rpm builder/ mv ~/rpmbuild/SRPMS/*.rpm builder/ echo "===========================" rpm --checksig builder/*.rpm echo "===========================" rpmlint awf-$gtk.spec builder/*.rpm echo "===========================" ls -dltrh builder/*.rpm echo "===========================" # cleanup rm -rf builder/*/ ~/rpmbuild/awf-extended-2.5.0/icons/000077500000000000000000000000001407140370000152005ustar00rootroot00000000000000awf-extended-2.5.0/icons/128x128/000077500000000000000000000000001407140370000161355ustar00rootroot00000000000000awf-extended-2.5.0/icons/128x128/apps/000077500000000000000000000000001407140370000171005ustar00rootroot00000000000000awf-extended-2.5.0/icons/128x128/apps/awf.png000066400000000000000000000036621407140370000203720ustar00rootroot00000000000000PNG  IHDRPLTEGpL+UU$II3+9K^s7PZ%tu7PY6MYW$x6NX"v!s7MYu!xz6NY5OY7NY5NZ7NX6NXz{6MY7NY}7NY6NY}6NX6NY6MY6NY6NY7NX6NY⃧6NY6NY6NY|6NY6NY6NY6NY剿{ZjSp gq@y 7N[8Ra9Wh%a$c:]s?< 956{jiD\k=d }?q]w"+0)>;BPzsy葽7P[c,[u"dgqimIasBg|v?ky>l|-'1;An9GEJJLS\ZaeZ삡injhsp}ꌺ둸PRZtRNS "%),,/114CESU\^cflsvxy~xIDATxuXA5PN0QTnQ@Vօ;۝ytw{r044ZҤ۴z\U0nQ?K#,BǫǑI2t06j'hWde}&A"-Wc WY1 q±R.JvSl ޥre{B,AO*{1UE]UģKW{jzI3'~6ṳ.d,:d׃8{h٧po,'Do~&nq 2}Vܓ0bL景,.d L ̗ֈ- H-Un"Ʋlj_Bw CazCPAM_ x%; }Ƽq3uOUS0@ V ]@Z>`Ԙ<υEy8@<_= Y5sh7}E]X;D]̲4~,|t \]y 8D `y%]|3p2mO6BIc/zH2"S9CPT&pGePNI\~ѹ u39!s,\|s ٲC>`t~n:9|*R+#B|z,WQ\x!!H|A@+ P0,?,$,}޹+,@ȩLO&9i5OkS5}So0&5TzB4Bg#Z z*/I޼TVymܵ]P`((1nlVjE8";S+9I.UJ%\ 8Z(U z,`r|HdJZIENDB`awf-extended-2.5.0/icons/16x16/000077500000000000000000000000001407140370000157655ustar00rootroot00000000000000awf-extended-2.5.0/icons/16x16/apps/000077500000000000000000000000001407140370000167305ustar00rootroot00000000000000awf-extended-2.5.0/icons/16x16/apps/awf.png000066400000000000000000000006031407140370000202120ustar00rootroot00000000000000PNG  IHDR(-SPLTEGpL#y pR6OZ6NY7NY o6NY([&퀟?q@u0Xt )S4Exah|LtRNSg]\L~IDATx]0X*ήa{h ܌U,)BِYf gfJ4<X 0[D]vx}=]if]V `K$`x Ұ7IrBIENDB`awf-extended-2.5.0/icons/22x22/000077500000000000000000000000001407140370000157575ustar00rootroot00000000000000awf-extended-2.5.0/icons/22x22/apps/000077500000000000000000000000001407140370000167225ustar00rootroot00000000000000awf-extended-2.5.0/icons/22x22/apps/awf.png000066400000000000000000000011001407140370000201750ustar00rootroot00000000000000PNG  IHDRj PLTEGpL$u6NX5MYzB6NY6NY@w隺6NY6NY6NY)6NYkU;YnBZi@awl=e!lXs   5->KJf^lossxatRNS:;?@Dhjqyz8IDATxڍk[0qJ Ѐ$nj^^j,1EWoٳ 8 n83% r Z*ԥ8׭IENDB`awf-extended-2.5.0/icons/32x32/000077500000000000000000000000001407140370000157615ustar00rootroot00000000000000awf-extended-2.5.0/icons/32x32/apps/000077500000000000000000000000001407140370000167245ustar00rootroot00000000000000awf-extended-2.5.0/icons/32x32/apps/awf.png000066400000000000000000000012631407140370000202110ustar00rootroot00000000000000PNG  IHDR D;PLTEGpL6NY6NY6NY7LZ6NY5NZ6NY!owqՎI_~#v7NY6NY6NY6NY6NY6NY6NYmMa?@y;7N[?q8R`o\R")t4,>mstDqOi}e}7C]Ek)^}mG=us R]7 tRNSL%ḴI.KzAסϝjMDIDAT8˵rPDQea_(_REOTsj k抆jMkktYEV'^V @>2( ,`hzrVץG;yiX/w7:խzCL$s H2IF D@`8@Qdcz@r|^Dd3ۋWBC /{a67%j~qxތIENDB`awf-extended-2.5.0/icons/48x48/000077500000000000000000000000001407140370000157775ustar00rootroot00000000000000awf-extended-2.5.0/icons/48x48/apps/000077500000000000000000000000001407140370000167425ustar00rootroot00000000000000awf-extended-2.5.0/icons/48x48/apps/awf.png000066400000000000000000000020031407140370000202200ustar00rootroot00000000000000PNG  IHDR00` PLTEGpL@#tq6LW8MW7NY6OZ6M[8NX"wx y7NX7NZ5NY}7NZ6NY6NY6NYB6NY6NY6NY5NY6NY6NX6MY6NY 6NY6NY6NY6NY6NYnI5af7OZ7P[7P^f>ivx!t~Ct@yZt ? < 9 20!+400H2r/KQSBGGUUZcZ^beyh~plz}ZH9tRNS"#/2EGLNZbfgvwy} .YIDATxZ@ݡ;L(IRh&iKw'|qv~:8s(s[@(;m4K|$굟3:%IHuoEr;hJ@2(0;,~cn8@E'Y+յ*1Q<0(T+kV}[=*j[ Th.ddP<gk[hqt Ň arIENDB`awf-extended-2.5.0/icons/64x64/000077500000000000000000000000001407140370000157735ustar00rootroot00000000000000awf-extended-2.5.0/icons/64x64/apps/000077500000000000000000000000001407140370000167365ustar00rootroot00000000000000awf-extended-2.5.0/icons/64x64/apps/awf.png000066400000000000000000000024041407140370000202210ustar00rootroot00000000000000PNG  IHDR@@RPLTEGpL6NY6NY7NY7OX3PW6NY6NY6NY6NX6OY7NX6OY6LW5NY6NX6OY!z6NY7NY6MZ)u6NX6NYuϓ{~@рՋ 3!uu+Ձ6NY[4zLw5?<7P[W"@y;[o!7P^4?q=a{39VfAYg=ec}9@\) B璷#eBl i$}pd.Yq+\x*\z%a'^+\y3bpm pdC >tRNSuן#Xdb/<Z@?>W}vw%0偮 FH D#IDATXWA&wDEb;{6$"V`bGEEiv{/0;<<$e峦M)Ϙ )I6:[43FMG @w4x%Ĭ;y<Ps%-XR՝Ӡz>?}`% s,@ov̩[еcX4<J# ;jz9sl%p+cؾa  oΕ~l/~f>d_TU(st:R7,0']a@޾cϣ(S@!$6cœ\w8o^G|rxj$ ܺ}l7E@\. n+:$ T@ܵtX$ B"n=xJ@<{ڽO@l,|J/7o/|AM`\HX~T awf-extended-2.5.0/images/000077500000000000000000000000001407140370000153325ustar00rootroot00000000000000awf-extended-2.5.0/images/gtk2-menu.png000066400000000000000000001351571407140370000176650ustar00rootroot00000000000000PNG  IHDR`gPLTEGpLɴ¶ɹocXeM[H̋]IɾZHἫaKbK̿\E;~›dLyidLݗcK_JͿŵ\H﫞cL^IӟfMȹmPF71]IiL>^JijifdÒ`J̽ʻ_I괢#""Ʒ}eI=µޝeLƻgMWVUGECLKIXF?>=SQOüpnl433ù998ʮ}~zwÄYG--,'&&00/**)xtqǷ^\Zba`M<4չ{UDՖ͐ԢyyyjTI/-,aJ?Ә~6MZsQB͐uxdxdV~k_Ňkc3slWpy`7}ţ,NlQ(`J 8gQ Bnm-ܵƨY{(3\1HSs_j۬Yΰ(صU ֯Z/. }Y\0xLdoN~Pګmǭ@p Ǭ%'jxhT,诶kj۞NѨU/}.\b"٬ J ɇv1I> CO%$JQ]V賺DʚiG:˛Hxk2g%/c^$iIT/kS! %8mJwB4R&kRi(LMl+CQE0  !R  gbiƛi!*1(OI#7JPrDC'q-KVRp,%K89֞nJ3=3NF-2}M!\ j̸t¸o\hZJgN3QLDFAd G.a!daQA=o>uıR4ia砐YzL+Jia4o =I98h*=,hgk'Me96I~5qbKBh, H(eaQGO:^js".]` ,Y3=RBD' {zƅ({ ap;z7!D`K'akۓn*! љ~!ш"'9VoiZfǽxe0$d,:K-֌Hd YP$uƈ`1 ֈPdAg(Ά,ǜӏT+cT0%RVfkD #YۜX{:J,- !O)`5t,ёrP&)-Pd-^'.Fk…~4*͑VGT_4+2( ƔK6b՗, E[D'P`a^dNJ:Y&BBiBv޳iؐ05g+kLJJN)OS;N Ұ1J%!̈6&p `%j6f3bQD:}z,)dA&":G5ïXLj+xy w1UƋ$iN^ h'BBvٽ)`̘+~?8$3QӤ]PXmL ]~}]rWFssC_ؕeN&I&$F 8=S4,H$LΈ5_‰K^QV0E`f7gIl)(b/)FJBTEPKuOգ6W[i*>@;|ބ,L79RҬ֯8, vHq81=sr\G-"Vg%X ̈ӈr [:.KMo ajsSZ D,K8sl\}-n45.aWopG{WYW`kZ^~/_{2^%t-5e7exbf]}nj~A@>Awp l)}Nr`enzO͖Mo˽eQ`C\eAvBF/ S9$ 08slz`'￿L ށRl8rܡ :+!(C!(vN/6u[?r`LNN #헋-^g`Ϟh!XyE2{AP:Cvߛ\ WTa`TeJ%l]D::hGt]lZ/Bt6Y/^hjp>gX0׆w`|^δ`8Œ*D0{*(@z}n#P^(WˁE {@{!c0dC0P˜} Z vgr:8`@rΜ]E+X B!`玨l3Dy& dIB"oL ^8MVWr(xr&xvnzl?@ R[,u𴡧nqfl+L*hh qQLlD=rۄa6C}GM,X%`x'>_0O?M!~z0`l4\/77oS~~Τ*ؖ˘fD1ZTZHZYhK5g]'8ztW$K}FFxP= }%_}ŗMMxen=7 @Gr+1aa?@E*r|&~KJSQMM)]l o/r}€z~Le߽B ) NrL#W׿ /wssr^ Wʼn&R$V'_nA^G{ǀ; e0,*>fcHWH~9BZ;I~}Ovi1a] M9IOn }΍7[ e{<49bz8)NBzo10"W׫ K^6>A$^a*>Վ(\4%Wa2yh}!~ońiJ>Ld*r|&V^!Li/_@홙yp$#33=d1:j7Yatf&` lllofnjѫ못T/&{TiQH~qwAU(FaɣY|sE̲!eo P1"IX sdlHO+资9ist,[k럯NykL "QnÙkVa@,|ݢݚ`BnJd~uF_TbHJ6t:Un."YzNKB1,MJƓh#}AlC_93LEI,o/%5O@s7#ÓCPQdЕ Cj()1UO"wjJgP{0Cm8y)NJ9| K#MtdGc T\'- uUӏtNyN=/Ό>嘆O)`̵eW3ڄW&2Jb9s{ []JgW #pG[\9+7#[x{ 蟵PKc6<; ]iltSyљ{:T `0Wح[+rnI&|I/+ʖ-^R@RsN(s%DYoB'TL%-N> +#Htp咗 `e<y=-Բ޻7I=oπ33''g-|'f{.677_mv?.@f1?!!֝Iʊ3qgAnKBF`Ds9^zGZUBu%0QID^A I%qDNh$i{oR%s@?JQYX ;W/Yv!b"o!kB\e7:]wIXCB0]e۳2Z;[&FfVOck3׮rmZ XlAACcccZ m)ChU^CV$- O߯#vY7D*n7h%E71'3f q"CS!FeWQ-)E;&Rsfkl%-`8I{6Ug.ֈ@e/B[ݜ)sb0mS `Gs?0ʘ`׷uIbo,<-0>NDbm˒?/F*"o 00C[Lm]d-PSK{݀_V)Ss `]^ 2`~ȪuEL^ʼ J%}qJ>Q䨌-[Yf`)e-0E `(0E `(EDƬYRS -LS6:|P ` `X_cjjccznBS-n K\Hi1ILlyo/q蒈s"X3}\館%ׅ7p+oϋ&?C!H^bqPS>ARK)`Uw^5 E ,o6 oVޞljVm\OvM;-ҥA?*, h >>7p+k/Ol@wWL:p򻏸k~ IcO=1 E`G84í(r'̲ XPܺ uԭW_lVqA|[zQ*d#Mh 2Jۋ[:h ,DƂMeH82㲼͔iuWvfO^_E߷?(L.B "bVqRZzQ*dˣچF)`û@ZYb9b "vo"tZjxKX]W#`_2ylP 7m [$&G]Z:Xmjjm?K=ѣAO-`WK#&LXY{^~O>T [jݲXwQ޼MU=Q/cȑyRW _MZ~jY,7١Ddz+kd}otma#U;w)N;{=-o7dg6+V Nқ&cb'./V%+BsKrɍeX6DXdXDlPD؋$@##C 9GI!XV,W*k"|Rɖc3iK`n vO]]4v_7;6T@MA2h M:(vQ 's1t(ZVe9> }I|& `Xo_okEGG`%5K, BH]-H+ڔ"HqG ۃj,Pzzb}*oM}_-_nCot0 ۯOԖcN#Z}&qzr3# C6#:4ARTP+@N8j۫nQ%%rƱ} ik{}Wyy5R6>n0F 4+`7;|0hEG͍8Np5PDDy^ޥ(#ˉ]f"6OgvkJ]zVZ;D mыJhg=FEdl;&OΨR!)jG8X: zHrKuѫ#EFm #`#dtvM}]}͊r ٷoe:hzzD"v 88L,N4>];^0`gGULUU7G&n#iD'E%4fhQ4TD=U7; c"鎆Dlz !b5 +`^A_O@Z1p_0jKcgpfs .i869 v1#ZmW{: R7TUjµ3YYvYbjCiC@pI) +!Kۮ޶]*c0:Qj \T5tB`jpmŦW{X5Ћ*  Rs3] h5d?>7.=u <=Zp NNr$'9nv0p,#X^@(3/G/gP_vI1 HqH,m3')=F[ASMGQՈ`2Hsy "Ec|* n*j:8FoEꑙ12Ow/9\OU̶(~/"퉰dPԑ&pBy2W7 r0?|11 0mj,S3XM?XXxqF{>=@FFŚQQK1"8ROCDmx:`pT{͡f9jgp#X/9p$H5 I|gƈ J}+Zf¿(] t q94j` O^D{H>$`k,4J[Y]C5e0M/lxk]=XzR̜kv VK0vR<bT-q,S9ŏ]6/`~}Ŝk4.|L/]ujɁwr/w^ؘE-{MrkXJr v+g+zECs[(?`6jG4_f0>0`#[89w.w5`K`mZTZErt&m4ftҙ˵MrNP5OߒXPk١5n2τLyUw=3X.ϒK,lnDI:w6;RiKCJhJgaoaaJeRI$UfTY)zF͙y|xv."cA_#L.B `vƕLJc Y0Q YE V`pJeRΕl^#ؑ8[Du}XKX?푩?J3hgrR{?@؊:KvΒ"3-RyS!{;u8_Z;u<~.,f8`\,4ƴ(E:x0 :M[]NVJ#`4{+nF`cPuګ/kQƯE0!T.| 2#`Zz;m5IW[lD`H%A {K  ,ŏr`bH1) '!*^WZ6}j=hF!%-V08dR+ .Hž3bI噽$I<vxr]*`çyv〭YVŞ,- fEK-O3ӶFҒLJ%mb"IbX3`qc01) '[#X֝Oa )_u_Q/~ta_A JƒE@<t4X/=Ȱ`|R@S*i_t&( lh?!lMokbծ`3aŅx2r'*:AMgwϰ!̧xo.mQ"-jQqnӱ+Xdrt*X zqŘc{2K">Mo[8pnL\>97lesǵY|)s0)N: VbhGm#piN)n,*qxi;&̦VC]/mA =v4HeT2 DxٵXb7J]Dzs0(FRZV"nx"e8p뇂ET-vba7 = G OYz`)VQzy#XYAON0x*tǒ&J`N J3X;w$Q|o-}WQz{쮂]Z*Ez=`/_ou?ҋܘKJcn^NmQmeWt:STDX&0 rوu/Xl@5 ؾܤ$|&镩jchKC cۚL>"MDe&XZ}&*N,&Rrwn#v\DC`ņWL}qE˯_TmCT2*''2RysK&fK}ׄ`Zӫ01'/'?W4mCr`T07ҥ ?XF}r8 o ڂM}7`ݹ'LާGƶ^=:p/>[\oӸ9NxlղaYs#=<3+9hWr utLlHc-~>izB$]?]9b6R43C-M$nq09 f1zo`$6`**؁ ^B #3L]HO\q41 HN!/׷xxa<<\mXV 련[ͺTF̏F3Fd+BT/zdñUR-3d`/~`̡Zփȳ>:t+ʖ6˖l9iZ0K -l'ӸJ(S!)ŢFvk8t[5{2.J_߽{fk]V5Hyv]CW 2Ë$SykU{ y.Lu`SI, Ȗ%t$1Mᙗ]yݻ7oΝN0Nnp|e &mfEL㇂?{l)l.O0TkcL ]\2^|tldwj&\slŜO"c˅]{8^xYc:CQWuc*V:VOP[I ([j,K$ر*.(eʎE0VZvN#?:})A^gP V]_3v|Tmɫl%sPl:\`__ `ιT,}[kXi)/Tblٱŋ  أ HxlaeK7;-쯋a΢e'5h669Ɲ؇ q]U+$* X@0oGmbij+k 6b2f뚛f;܄ X]]t}G8y뮓'|gx 51 Ʀ3VC3+|zfU9b!P,Xt2#FMhn-#h~{^(Vr ֶ%-/Eh4 أRw&:LOttϙtHJf˕+FckyڣJv `k ~y+V?3/fXGktAضwΝP6zuض\܂- RAs-[6 ݍۣ4q.TV 9p'3Jf&dgzz7Jǯb36ŏӹL.-^ RՋzk&C-[,QL8#h.zV6]._}q2rQ ET'Xv(vʅڼ!k /W0DNj'/ٗVU Hűm{􌫊mKI1Mƶ%e~:Uc/6Yc7P(Ȱ0PUjh0 /jq B.B Qp̼pgu~&XW|m gYEl.@܂8z;CU]|+neB3x&DE;Nr"8Xtľ!ŢWB,Ւwf6V2Щ,cfjUrUĶ1\l[wJQGB8o4C0F,4 јiB5!pUHFAQB*JZ l(XE!xԳjo[ւuH{uҳBYl۷R6]ciض,&LBhӄk Oƅ˃6('XM$@^Rl<:]@c&A#>mG` SuW鉪N[sbϣߋ`|,g@ΑtZgǡo\*o􄴼A Nl.貣Hm~UTTz?Tn 1T_![a6VmBO^+#X%눬MB!3Bi } dw.uN&t,P|`+6{ա6n(~zUJcۮƢضm(ۖ/8$&M., XOL0Lt9 0m"^WToo_Pkzb<&yJcn=ƊضSX/F! ;|J``K ;# ͰI`Ob !^A+ xvT;cc?{6 33-&n%s_Ox۽Oal۳Z"kҮ7싎pOIc$b0S۶"-"VPvJ$`:Mh{{.3KFLk)OL)nx7--hl3ߑQqĈLiJTԯBzxa Vj:b`u,[*T7mccP_p)!8uʛ.b$Z;xh^Bt&.1(a쎳-D!I9oj-0&ϑ ɀtCR# B o\}6Ez2]+L0X=hX(臂ӯ$D6L[kvuR60ݕ޵4'V ~+Xt0isM^MN`kVpB<`V!R'uEc=1uiu'Ra?m1h__mt-:duC-Q.!s2~qÌyEF E`d 6kɞ=>Bؚ;P~D`Oj.Ά0'CY܈8؍K4t?l"lJn1RCd)6Ҍ XP1Ԙ.Ƙ h `bi$-m|{&f#u;M<E 7v Iǝ(~k]WS^ڞkq炵ۻچu2&9;F4)thF6"L~*XD AŽ:2p,B,63&ٲ{m?.r)T0L-3:v^~AeomM.G56]?2h5b;6zBZҊ<) SlWl̄/m3WG]ނ֫]exF:,-4xeLV0׈is9oB;ɡZ39lUB>XDJ4L ,n!3H(DN&Qȱ-<,Ș(6O wV~QȆIlfZ7Ӎ>sHVFKl`< n# @ t  wd ojsRug &  "DLego96$g$zPp1#?6"DF|$!:s@Mn˿\cV f԰) {-w`X`62hg-}\0ԆL7a)nM%Sgq*bp泈SLp> ^UC$}-؈H-?<OC ?`y~)^U K$*GgOqܞ{la~&KDeE12HJ)3` 7:@1?pC 0810x->)-w֧h^ ЗP&XèbaD`H]"zǶIqjF]=U #nVX~{VD)lV/e/@|5F# puhL=wl[r" Xhč #V5#(P*a7՘ -#%yS)F[qË_}Rlܶ3gW0mDIly=@H#'9}OFO][9h\ :H:DmY\0Ez D;:F1IDՋxȕ)ɯ B2ML>jKd"_V%Xu&Bw L`hP/촵8}CMMC}+Ƕb@. `)ĶC *1MDu22h#s6 6`"$ UpϦH[O~wȆT7 ch$6mB4`YXXxyH%uB&GM݅kvmsK bֺK첱mDݞ`(`x}0>c)\v7!: `@rh . T5> ؿuC>J VLLR6`;o}) ֮#CYخF.g;olQFȴ.me%@0},{!;cnpf O0}``|#X3geiWTc7׭5Jv>mW[^6V7Tmv^@x0ou"{a V9te F v`=sC3J2LLU[mIq4 `(l.]Xc?/(ҁ` f`ӥVNGaEyߏj,;cݮkI'B,7'ybr ۩/-bz8kuж\0aJT mb۞_+ l+{W0bؠ t0p=IEd6JfFJ#jlUeC0UT0&Ի&i19%sYIk^Ol.Em3jG5U}@V0]hwY`ke==k=Bx KijYm'.؝=UhNJt*ƿ`5@arAX 6ےk ± zCI-$]81a|8- 6es^gNŬ,)* Ӿp @c۲^؆^RS3 (b``Ltض'ւ҆ZU@ݻU lS`]|y>jk4w}(1'bo 98wx^j i||ND4T(OxMӸOmJrkV>/ꔋm;#^~`nZTMvd`d,5"s*t(m,̓m`T/OlF|ΜN _xE`i,M/?7Os^|Eom+m˻70ۖs!gϗl[~y cۮ:FĶLּbm@c_õ3:X05V^Y\`í֛֗% *7_e}Amudg[ by{}"ۖp&5j"_`aq<9{ NA#t*Oϼ\zR'/*֒ ĶY@:6xN&PÀ&T|M6),)mT-Usp^b`q%=&ض**ض[T0ضm;Gb@ANw?ï`gjYV[6lSt:*RaXi}\"~w d܁d6O/ĶuKD6Fbۀۦ@x>د:A`Ɏˤs6m?HPBY:;\lho$Ǫc@b Ƕ)̸hXSg𓋸6a, b۲'98L? cۀ$Mʦ]]e筱?~( 6ߞ} yyuJUj9cpRbjm&efcu}=P%XUHOdSIe'yN-m=c4|;R?x F Od$pSZl[c-]Yl_tu58J[ֱ1"l8bضPǶU|dawuZ &wL8̌hm0 g*Y9kݧs82YL$eS`ZlۺC%}tTtsO%k4;]bH clX6 Ŷ+J>q!,ܷ5! UQ%▃ц h4m `DjKdۆ6+E7İZ`f ?j6+ .r& N[{ј7Ԕi?4Dl?ۢ Ķ vHMO_ F9ҼVT) ~~ys/*UwAy`mج: F. RXqPFGO561,ոCZ ,>7yǣq>;iP5l/}FaSokD AlC%ػ?qڠnwD1o~y⾥^WIͳIk V#*/`-[%.=ż]xo1\+;if[#7WmBX !V0C9||K` o^kfpKpU̶FtJyevu\KT F3a[.Xppe;׋KZZZ\|3؟kllk; Ϊ:m1Xh#q& 5si#8iJRKR VKj-W&EAMQ|ǪYQB.Jaܽ` t Z.lda3iLdfO3g&_f(dHr1("$9۪]j5e&""A[6x,㈬!X13 =#c{bF/(^t^1n]r;(77"& &/| %k0ִ\ۂ,R Q]:cpЂ1-w<ܔD6΄`r6PQ)o~(5^`("ˊ@}eo> z݇?`ax%X}]󠂝vycf>ٖ0ttroNX.t3- X*x&֖sTU|0xpC:m`% v͍PR#O4ڑ €m6g,UJs6`僁X2 Sx]| lfN` `#KZe#Fa /0,+&La*k0X؂%4T 0:l[POc=TD(IyCUc +$ F)"K`F[% omk*mkm(e8}pyCOcc ~S_Y7 N`oooW烕-*Ym! rL  ~m_ ڌ+-Wab sbk,`>XWeL0fIN|8 y5X8#L`sljW0 F0C 7b^:}"#X|껗S'"f^6RoQD#nnl f,qfsɭb Vh>ivԜ7yپpuLg$>)p|.jUưUSS(KEu"~Or|_lrqQwT3S/IbJX0>( M0b(?%˛SED.*N["ip)m55t`K0Wrѭ{NW>u+tavr$oz0͚` ㊦"4+di8)%(/qNZ*|0,7ergU"WXl,(C~<= ˏLĹ>NwɝЁcV>X|6&"|0,#ѵCW Xv&XґLve$6F)1ͭ4a :0"m4s!a+ذHV#T-&ح; sƙD$s&AlZDt`*] _t:[k`u5#PEHۜʓF]6/‚W0iUo敚a5k)bIƋO$`i `}k4N;FkJ+Q3Y(d@K lu( ` $9I$n'%Atҙ8Xy#wۊ-U%c|B;d|GHF{n`'1|vDH:s.,ŤJPD#,*cY01lR` Ʃ`O{qXlX0nq)߆YcE%c, ne k>wӤ˰T*X0yj}*/ˢ[Y;`LO>_gL-3[kL׆'k|0Vq%h5Z{~z/Yܫc)` +ʗnXz 4 t~?[U4][to־hw z>XtFZG0/GŲX:;_f(r9( QSNX0q"FdSD5X1Hmr X'JPe}u*Hcϖ.XEЫ w`<;`\v ~|N^%i|WWه`ef2zF )e f|]0!UcET`WΤUL0y*-b_u XǺa) B%P[6`"nϠؠn>V*o vL[YP)9#J_7T0vweaF: CacYRϙ GD!inb¿`{ "Ks,4bR 7#g]P e`~`#eVZ379;@C!.1[67T0:| M]ymtf tIyaK> AsnтgҺρG b=[8V-:XP8Ə`B1QPt[Uኹy\0ZlqB$u0%2I;ը N)څ^Bw}LLT|SB3œū4ȧ`Bys☽>]f`#QP+`  vb .r;Qk b :z5&="]Տ^yoA2)^ًB<~vHBP'#"Z\>ln_ Ah8E-+`P7[as,Z)V*ԛѱyb%Ey@R\s{E_$X@,>~C#nVBy5Q"Kdeqh8 RQ%aJWshɰ`< GlC p|zesӃ`{,il.?=& R0f{Ot >OM넳G*c4ÂPZCwwU`6i4ٺVe놼dV,. ..p|_L{&SZYH'[ǴGQ<$| C55fk@E!i(,ja^X0 (b&q1!,i8 -g>- =."{sm{{ɃЋSKc;]HD˗Vjmn6OlrYgg`D@fdޱs893g9SDI;\ `M% BHx#0T>.lt,nNR,? %,V" f<39.wr`B ` V"\;aKqJ)-8jtz4 BqڶBN&&}-=jcIR(m֛rP:|'6:mkYRl=XAiR*7oJF(2fP;Aۘq676 sӴI )`%['fC Ьө(2fd11Y+]:C6гMLHح3ˍr3o9}4F`X,/gQgIwg*4m`B*( Q"lt[(>`z>1m[x6| X!iRYt=5 0]N.M/3m[]#i 9MQ|y=@\[DSN}oNe#aҶyH0s.t6 0!Um̳('L[MV~lj00tm>'m[!iR3 )k3Z V-c`#5tf+dͦFSLߝ1mճXڶBN&&Gt_20P:u:!**-i.┿ӴI lz m=Z0|Z{0S`0H D!ĕ LiԿthJ[VUl7*%-**n)Ψtv\."FѥlT$]FtRE8e7ɭzdE0Qdxf < B6#\>S# & 0+54(QJexц $>`(X[p}38<$* 0n2L&])`f( `}׌0TWYV^%ؖB<@#AANTJ R{lUvQJP=\U#`Q/^ L;2jAH Xvo `{>Tf&ǝր}{W(39j)eَ׎0@ b7"Xfk==\TȨ{ `d#k}T L VՉ*YBxEkV >G: ^:D#Nu> AYVRQZ*JDLCA Ei v U/`Wɮ04bA'杶P_/y,`ں&q+-mlT؛C71H$2 12 B'} pp@xF'`mp{f觷db" sèC^ ,rr` )dX_keɓ|HiT|wv7`wuXu0:!VʬRo;6~ TQ4*ېCMr2Oiv$i۲AMuݸutvM"=:C^ģu(6gɋh XkFC6% emgS؊f;υ`&o?M9B2*VqP@6:Ӷ899TW\7b^ .@5Ibs鸕 tݤ[DaPJ 6>jm D|H@y `m{dR^q܈yvз U'Ppm刍9gwKPFE؝J 6 }ͼ{y6 x{%!wl?Y -w ' 5 XI%X c4ӶӮ[D+!1O; 眳Es\osdo.^J1 O{s.pGc7iާ^_wγAJ&`781`(c{deazXB7b7ghOI:3sɾ']0PX Q܀q!KXi6 05C80tfy󢙳\ _q>$ol'%&k* @i.*!ˆg 22A%^GE{%۱=}*`NsqVu)^` qǕX usyelGlyZ %1ֿj5`Wݝ 2ޔ2`ZFcaCP>2u`^xeQf{EDU'cvlJ X{XYԀAnzKnr_,`9 `n[;E3un|T\?eդO$} lO21>n,jO?܀#u6Y`e&=>knSƏ`'9IEGܫcH<7-#Q7Owv>ޏzd I\ns̬B݃~ LpZ8%Xuj_q~q{[t *䍌z`:EHPa/~%c rKv+r@r!B,̂v=PN6DuuI'`۟54|vI0y* N+]c&GU O'~Z%=cC-2YGh=d朎çڿຨM-?uN`% dX&(0=tg)֭2VuS 99=;`V/J -}u48_:QToGm YzfE[,DlH"t;$ 9'KfBYT%MۖP2YV-)QSQ1z{la?f03 Ol 4 l`Fp|(Is_ȰH` .B+#"q%T(`_dRAh@Gh&5ͮZ%0%i{ m$C&f `LR`"J,]X`]=eCw \Q/ 0 0a0,HseKH<ůhV$gba+(|)R?G<Ǎ ?577O2MO|=vE'v57N0uE_CT}q^$ۿRbXc<^fXx叱FE"q"4>2v `1 HxeBƨj$/"l` 2䯺$%<4JX$A+|z ]/`+>i, J꒔x%q@Yjڥ  0+ lu J`IY_uIJHO I;'\@]Sl`C`F(]Wo]9(M]9I#+(.IIHg0YrIK;`nHxazVqX8 .Ur[=\o%`ѕ F$f(ǹ9ȒKOr=0\) I 3)hXvqij#6Ƶx_|Mv0%taͤXa+$L/_D^$/_GUJEc5tjS0mO:JkQSšŪ< $"Fo5X`Jm?ѻ?~*JaVDRsVQg0|`]_ I& š5&:VoID[%:dnXoTBR^O(ds#F㟿E@YSc6@om D|H@0Ӏch"aWU{Y>ƿE H ߅5_kUcFi l*FX òѮHf%"U`APaQ#iPk~H4d@l %<$*ɮQ/>9vwܯg;ǕO{2u+ \ml|5$g*%^ɛ~y wv{RU ⿫lRJ`C="qC֖Y;E^Ir OgT)(6 +{01 [ne~|NHx*},=` "Vو/~;f*%)_|vg;/sV+!v13]Y ?yM_>]Hllt'ĿùX|ejvR])ρȺ,Zŷ9 ^7kue'1S>՟^LYREOi a ݜߴg c3LLwT3u;wjfR?3` 1Z"}- s!54f`=aaB)k~Iz=`aF3\"Ή8?~ROY/6Kč-Dd*%7L ,WOo 3I4g`b[ IcL|3L:2ރQlsOۖI%UҜԃ9Uck r0r;v@-#`g4Nj@NNV‰3>+2`\a^n` ]>ա<L~d*M#qrLpHF,m2`DW4- JD}!LAl澈_~ ׵5k@fW&خRZ?%Z~D(3" L{0JDݞ^p4QlξTꈢc$-:rJYɗqV s!5WrIO)R‰ݘ`O()`;[oz,ž-K*žu9;6` 3˪%;7={U8`֥pa t59`$k\d۶iqJ0ɶm8`0kMrm^nl٦El" SL? o8`ٶ-7Гm+gRl|SLLW  n&%s=OڶM[)67(;QKOMږG]L)|}ؾ 6c2ҙ2*cRLLtӸJ »J J|uҶe'eV6m Tte"5 Ê(}K+\ ({S[ UCWWgZ*w XYݥm[u˃Nm+cbF*LKBSxW!%0rٹJ _` FiƜW=|ijP_1lC>OJa|v+9mW4m+cb' `+y漶%QiX Ƕ7_-Bf*P*UJ0mJҦaI$JWfHkFo`1L:[S)}S5,ےb*(%b;XJKBV:Lϊ``(R/!W)I,]0z;buFJM}9w`X#`eIRZ{o][{o]dJ<] ͓) ,9`/l|=H9`y?X9FpvA%e( '=  *S9L>eERm%uw+$` v4x\7.mdɼM2|OrImp,jݭp|~}>ӎ3&MfqIY4bbI9L~ mD[V*۶,ÁFԨn,M߾\C|KqƤ 5.)R3ba&2,w۶ўmE&ݭpYovqƤ 5.C1Ӥfހ:hCyfR7uJ%w9$0Xa,w6ڶ9%N/I/5J,[!KW[#/Q$fqSYL4-RɅfƀTd, &kÀY7WLͶ-6Ȍ nU {mKGp;9J,[!KWib~5!SIL[ J4/b'*u`nGN,#u-Κc Ah :؍d mɶ IwpKvx{2`-4J,[!KWOޑ)q{'MB+]K꧈i^3/l!r6xp:>q;?V'9᷅?wNtZg)`9ٶLDzȶ FYZ7?_Ҟr`1Q-[!EpJbAWrBjĝh+f`%8C-_]f}CB˚iD*bM fTOr&LLDx_@g Xm{0m#FnhOgGStNF;:V]~KvV*C_K i`hu'#C~!6 /Fe"~ pY*6\!UX]_[X}Է"0ؽyb m97ImĈ-=Mԫ7Y?@'˝uw+I&j9TI嚎 3?\BGwCxʈ~kqfP u#u# HlF1l:֠|Q(@6`zdwGtN^,./Oxdn% X`$`nCD^6vE KT{ɀpj- -BLlڶM>)/@68gܒ8bўSއo⺻q عvD_$- `7g&虜1dt.+UxPEҴ# cf%`۶UUu'z"Uy *9V[VFZ=B  rx59os|ٶ0Zj׺=/ )eczL)-˳`t$lQȄSva"FÓzcz8똄ې"ʻrL/ `i1G Xͮ`u䷾G`4ꆶq{rnz܍9 hVB]Sٮ9pUn BL4>`i1Z! -`jΆ57 =j7}.X(Xs 0Qa_0%<*KRUH021?Rƒ8,EC5T5/ QD%!qW!ÄJ|Hur$~K^0"h%ES&f *b8 hvh(s? ar8`Va":ѐƒ8PX0Np8`V |%GR%.j,mcWB=C0/A *ՙHc$f0ꢡQƚMu!L* G]r$OK^0좡˜6F:0ҸD,7q8`y0*00i`Jq0X[y S̉ʦ{ٹJTRފBg.cl@~́OsjsR*;\|5=sql} CW)$]}oU/-Py&r䅄(Y ?f*^T߷{Uvo0H8r|Shs_EЁ0KW)Z]qruBݏNfR8`e q3ʄ?:0Ђ:[R (`}\0)`/~& 0"|,C¡PT@*e 3W)oa8`gvH8|P5#\,"FZ\X(7\|hтĞ\0}ROS|՝~?`uY/;GQT2< XiN/HRٍTXkݶ-?m[۴1`2ŀ}m^zٶm0b$+kM&S S(ŀ)bc1` ŀ0: i- IvtkS X#]dS|Q0P S(im:,ƀ50/6] n mޛdzK1` *m^\#>3` :m 'G*7*^Y^ATFY-ƀ1`rDZm[2U G[ tQ=eƀ l(-0h)$֨ [ݍcdfۆXUHMCZcm`pwc0Y`F`AZ0,] ְN b = 9<mTʠnz\̨pwS K#A3.:ŀ !!Cp.m[KBٶ#nTgVk=Xz0Txh3&;`Sߥ\i(-%bc!EdG`;\i(6` \tU0}EX3a#sOL ѓvj27tn C1vmS(BQIM=L`J>.t0X~dG @ON㬋Nf$H MF8{o"*D6ZHٱq &#r :h)LFu|]HP\j0`Sqѥc'rt(%Lu)Wg0}7L(3Ef/]2d遼f nR1Lm0` Sqѥc'AP >L` `F^V3 |)"Zs\9vy?/@k\ "pGf `#ztÞuRqѥI(3D+ LR \t~ |JLL bIw;L?C":pϛZrsao[WUP<4"~\t@"\j&sZwtruvW(wi+:9b`` ƋKtRFZd-efsܵO0`rn{/a׫*_:$L`b Hڏ|PDtB/⮻L$^:N×<;]>E7`υ KT?"0*V g$X%U-nO"3xm8Q96@: =h)el[Ҥj]ܰ=KS²fa 73OzcH{~7o3#">h[D@0 S`L! A0@0 S`L! A0@0 S`m浆d--" XY h4;L0zEA0E l MfrRПZgI[g `4{ E$J kdN`"=A0e[Gc o0fԜHCgSE.v16NNW YSD 8XY[e'[`e ֱȠ^ubا6[2>|oX->yI./  Ț|Y FC~~rǦL zBdR?Lv`|3ϊ:~qcx'! 1|3k(3[ XW6-btlvжKwuZBSsdžF3W`"r &NQ7heļ}õa vN}:zV\0xx` VZN>.yZ6\9=G t\b &R ߃] X`--,w.i%Z/9k%h_DHu_HA0UMM>i L`W B ` ` )A0 Blllrd]R s`w]A|`mclɍkJ`(;d2]4{ÑejZ,^ G0#lxx9|8, r.fQٚ6&-5mL&m7N:ѯmzM |mV mzM  r/>im߉C1^6&ӧOM\z"Yxm[k L Xleڶg~m[k L lڶ7%Q6&6lڶnuImi`2`mk/Q6&vڶնE ]Mij"^d$ֶE  B ` `) B ` `) B jf `!m].ow`R_M+9)HmɟoU 6ݿl9$([Lo@Qgs[Jn,y*IDVm[: Զɺ,h_6VvMwuH?uQp8)Xܶ°Y5Ffl lڶDjS|T yxʛ[*1F*3iD<^urт1 Ra2e?$'I!Օ2~4m&=m6֛vYH8Oyow# v͙q# TK3lZv&mAzsWEG@[o:ށĈ;9v76`0(K!`L&SM*͏ˋ nb#S|9v7Z{#g6Rm‘޴])Z ?E Cİ`0mDh^Fe#[kDmpblZ`~'-XzJ>S\Id!ɒx1]m[|Zkۄ# n|کR8hw`[H&RX[-{䗮;c~|bTf/xmTFUF6 ni:DCt<"Eow`A>٫~}!/_6 lo&6"`߽M!_i1 ~ao޾߽z|͟nu*}o I< lXе_I03`G_,>L&ᓼ`0y XYW_ճqyWYSCܼ5#Z8uqg Fn?TwX/C,PUx9nddf7\hȳu\{[sWH!mZn뀴a|ڙr%w۴ `9̀-JJ};U*" J,X20{f>ݵэէm,ڥ}Rv*u}HQO jlR vl1f<`<4|k}_^+G{Vz`3 @hæI,OX20e".K 'zq0MFX~qtY6i`Y0,7qByqV9ƣ0KD\"^;RR+,,q+,U,0K4E0OXMf`f,h%X/sSErQ3`e` X} 0L?`3,>*,3`R0m]XWt1--nu̢-IeBiY340 n-H}m0;mlR].ǎL [pw$~Qio++E֟_u_:b&/>-6Umȷfa66Cm0uy\ #a6W"0We|^u)T7j7qJJ1[%"ƴ'K뢵0iy\? m}0#` m` +Gp| ϜM&wk}mqSU"."'7`z&7 ,֕W WSxְ&y*/᳈+d/""1-D&IZО OrXVga_01001,êR`tX.u޽bʎV0q#0%ⵜ1,M+w)mX?C`_o~ b|g'<ؗ=I‚MwAV8 rv4`#a89)~ܙnZ8K]I Uw/ Z]0fAcni;;XV6z~g>n pd;" \ J`RF|qORfrSڸPE8Jy`rlvLnwUDRĥ `f0.y"=fl'y<bG77ÐYVێ,[כL y t)ˎ0uQ3ONT`݌>Hl4@]3I.%`ʖvS%`==הӋO?Kqi 6QRffR3/;teG93LL999t2{5X,ud{ݻX/^e야(cER { `zUt7 E\03RtMEa2pdi;Jw#D`"Sf0ܦ7_>wLS?;5fv>~ЕLib>ςtyuвk[ -ލ}ŋcL>ZhuL 0uQ.➴ܓPlt-~\XH-|bq {r>[>.E]qڜ"XnX9Ӌ;D/rXn!0u` ,X!*%54 3r/w8S~H,u"x(k.vSrq?>%E0+ `&Pnr08` Lp'X0ss9Y+PLKc/MKcu ld8`J`6bOkYlj$S/CBB7MH=zNČQ7Hd]K ퟶyo7jfƘ2߇t7__5'o L`8"SU)ư`ץ`1dojo-bЂyP`1" 3#d̆`uVu4׍$38gӴ`4Q0g0r -Έ`OPȃw=R3FRbKЅ5"۫"DJ+,4`y% ^~%M0ңң܌Br_FeY,jU.[#$YVfFuJ&c,a3/Y,yqӥG&T^U tOPj8bRk<;kǷ9E) X_67`S)b^ްpaxV[ PH $zJR}a 0~ -Ew.E C\Oöl̵B ƆV(40 X.= z8xrt /P]+eSY鳝K{$.8`l> v4KPfL0XUU@!#Ԡ1 IH<4`l```H߃3PΗEonG:JG5{BRFBlYr"*bd4KjWfQ03@ekؕ(/EaRnc͂Gkؕ]0̽wkT0 lo6v%m g07s_{;`K!`m'= flկnd]nᵥ_|~K'Olٱ[\.>&y>v*aݻ[+/kicWrk"VMD?,RwByiXP&LL&># k)p Wtj]xoڕ:}>3q F;jAHrTdNVsW@K3pUCpC.w/<ȵ$2/ו-\!B5,} TL QV8m*^II"rVm59|D.BF5S';?Q I0ee5v{ȃ\0}RPxhKFFLHgyqҫ% JpT0I kíi${vTUqGھ*["r{em?õaKijfM##"µeI=*)(ifd|bK.-,ƷgM`J_JeL221WWUIGENLJXF^I鼭|zwڑüTRPZD:DŽYG~>>=765DBAƿ¸ǽ̍^\Zƺrpn`Jü::9M<4~z{UDŸaa_hNlig{vrż欬ԣvsqpmiiTIfc`{f><:rPAӘ~6NY͐us_:97xdVz~k`u?dmmmţƇl-O khd{e4P w\iO'{;]Z}ڶy[-L(3[l0=5Ht5`kѣ}!oجi0ΰ(طU ޾ /.eYo9w%2/9>?lhiINNzntRNS@fIDATxlWNi $[`-[n{4v8\kXO`,lJr DȍnIe[%'ށZ(;"HGT̳=8x{f>`~pVgvHGŞei/;۴Ĩ&m7'R[kp8f38ܞYZ. We"usTVW~iʊ`u3w^.hDX-&8$,ҢuXZ5p&Lx6tњGP[DA-rCb(t&Itv{T%ڸ{k< FE( )V@X0#A>Iy :ӄzaFL\_Pl_C ̩('']᪏\2;|Ix^82S$UNeT" S3_iiĥ:ٱh2 ub,WfA0(YtB.%f1a<ˢvI>%KBܝNKnLb>]ybP$;Iф- ڸ*\/^,ZWJ$F,ZBDׂ3!"{0T6- EX#*,bP N?02Qj `W\|dHLg%Og ye3XV)RCm'U^?TY6nr a' Zh3+.? 4+5P; )!5q ]I0A -2tm!l%E C:hGtt B#)XrP)9j=:!AeqaD\CBaWng S钣&*HL̞sW'v5Hku"=0ЁH1T +!Nރq>L;:Hs3R9u0oy_Œ8r|[BJ]*=_\z=L?+nӨ f@\̪QURՠ {F%#w'Q'[6;w8xw҈v {WbZK<BVt1w!Wdϩ`ԐtQGl5/ʺrC{iD݈cfX>?&(?f3 ɀd ,˛#T-X%Pa(()CH٧o\eOuCPhsGv'Y"O߉Ž~pt4hZ.r^gwv.s `g#@Hp˅܂eWPW-rgO~!Ҁ v`x_~᮶ߣz?'YVN}owӿሚzΙD}K >!2j+p2@3z.{< R劔%"^J4ˍ/Q+f*›C-ŻwzjVϮcp]pDb=ٜ9NNt[9jt̩*\0Nv5f۴:} ɠ\ |l++Z ȐwכQbHmZi؝p(RPWCF*"Z#t^?LK(q{8}PehEM)n D",e0r^h6>S`%N$AAdشWtQ<=&[,[ e" @AJ(qs郘_{g 6%%;u%JˀW'*+5<]T.'[kY%# ?F':I-6ۖJxA3N~^t0`?A[ا`xO+)ݲnThF`9NO'BknT`9 3&+h5AkNa/nc7~9)MlIoL&wcyT5=LvKӬhڜ`Ë`! Ȳf`Mt}Vkr,xAYhA ]l Lr8N2R {YKKk.g1Lt1^p2 闇Z~ +,XmJsE)ؐ`} ,W..X6հj.e#_Cǯ{Q!'W`%_V?çˇ `?SdFl /~tABhzȦ u͂|[9`:/-T*ؤr)4`MrK,(ضm&x`O`ZKe~~KjLɓI0lp@elxXgc;? [.X654lت˘9m-ռw< NFӼe Yf-ʘ$t. -,Y0lpla$baeA|:# 4~ l:>Y`WW?"W~IoWY9`Y 67;;;F/oki ->dۧ}& l櫟6)cfK1|6H6v"Ey ƿ]ee%gz b qa:/ :n}l}F]iZ`;ag /wa^<s €`[΂ }0wv[{"oÐ`K'C,t';_^k>k!'>l#8\`ݹS֦RvOX0E+,g`ё,Ɛ?7@K6rym-Mz9;=>]Ѿ棾pk?36Ч6)cf(^@ywc4L,؟`jO}9R3z(j `@4Yh !6/*#{|buݹ;vЀVM 1%.CoW__?5FK=? .-"֭^+|o(/L{`XMQlA+G9a6N8ϑ,V*%8jV \D@xHk+lˆ`d}9r(`Ǐ`[D7WkN:)6촂̴ cmf~ɕP!9D;W"a_ mHqRn-yģ`dž@U&$1u@߿;{wqcr<~&ohnlѣ~x}3ؘ 0U;vvkQU0)}-E(T" %83J@ (FKF3D9UpGjO<ѧ{L_)ܽq<*ǯҤsԹk~I{ޣ{[OmRL+}~iG< $`iviXp_rIJăٶe|*F።lP"ir){ݹґڃV@E>$T#K<` shA' Og/^~hVDw\l˂{ƕ/p ؼ)/%@ӄG@ RK&P;JB (郤ۤ7ܪRuVPO̱=qCg9;~|ΘA~!q~S,0,XJLl`_F ^ג` ;PG̭Z@ =̡wyWL̮eqWOly`u,u&uz}26k6|zP`pn!}Ke^^ p]No~_嗉= 18 ~YDݞieɉa#ս7[^~tKAjh9g/w%O5T1=K[`ޏ[v X'13<%Vz?{z[k-J&ssn  } *؇M"OOcxd44ݑβgc6<12LY,X4w_ai({2g2?Rå !a2 t3z,X 3 ǐh&ƩUBF0A#`. 3=}jnG5 $8kފʝj4ŧB^d_ } lO4͞='* ITa-+37t 57 {ۛT"O6>Y774>ibet1Fn(ˣGBiIoǎ~){1Zq\?Y0= ``b`,#`q4!Ʊc b}H[e/q0 t.cڏr oj\^,Hkk&sSfL73lh24Zgvd 7ёk vۘE[fxB[~99IQI0o)B^Y0Aw?}U=dt~Ȇ x NN<0`Jf5v9JNӅe'O/b.).:Rb>2pqEXkg[qU0%o|ʾuL@?߭i-?r1o_?֩;:cmXʚFGG{Խ XpǂZ}@0 Vc V U! LNj>H2LЌx< 8E !$nQ\b:n`mim@) ?۵=kmsb7Q4%#4,klho>1|wbb@c$lo+ an.ԳXLjKՙ׮]ˬ߿u$,$0yVU/ Z1cHcƫGDep0 5h8,uXH_Fhq1L%2 X&bCo.l'ݿ]~mJ٦^Kdz/ .';0dꝲXۧTc*ZT`';'~)ݣ{?kk˂8+0@*f;c Dgt(5jD81 K1l2ő3S(xuIVkR1֬c%~3UD0GߑUHfn7P`},I `ܢi/?~5ŝs Y4[?LiezFh?9ԳXh&+@u$`-d,Fh֣a//QsMN-D7:Ơf 7$9f3J0'^r^^t>SU[!SrîS<}*X={4p1Wii)LLP"0<I0I0I09.W)e>Fl 矂<RJIm0RRfV|1#St%XrGNRl+շQM. y+}0\8t#z@rߨY4I\Z qJ@L7l`Ҏ }:q=S2eK;%S͸`y0|J ),֧4Nj$|F ԡN)]*K*S^ųh E&S5hrje2K9 KY' :)+ْǺLԂ2#1nCtcSkU,'h.fi'JJ0Dv;ɑdC|$XkcDE&qJ0`/#1Y5'/ȮzZ\Gj ,Ari}6`;_Cz8$rw^'v[aH0 GAp^5e&g60hA:VIc0rA(ͥ,6$X=*kHU_!iO'd r`,;l7lH/rn ޮ.%l}6)&w)łrݢgYHjSmu:Fsi}Jʋ+Er r[[#uJ ٹ &F0sUE:C+(9t'n>U6L̈́H,ׂeMCG9{ƮB0TD * XZ!i( rR0 " =&PȖ, `-m`˦O "1 Dtk ORq CaиLI0 `d)2!6H,y)6 LH3Kml@*FR(S(#!l,0Llq |Ȃ (S/J  gJD-;;^pӁ[!f HQd8TBKPVҝ3]L>! _~{hD bŶ`Ƞl&C֢͝i-uJ<PJ"@EOf/J`<9$#I$^ `ߔ=`)sSR* j㩅ma"5Uk QڡA8ɝ8ր18=5  @oej&&t g`0 "uahhM # zځuhAeP.?˸t|*:Ć("--::E:dS ]-Wʧ)FA5% TF7&) W."1J!}l-ϴ"Vroݻw['zcèfPfP-p:"<] ZL s-+:‡abD{$+*`Oȹ (fU/=YɚQXFev̀];;JpHT!@~ׂ ݆* ]s`5> 4NxI q^wߕUv.C {I0trZp6++22̨ $gBqSN+'fMH"l->zE ˜ա) gFaHFa!LgRmv.lLMA:o34sF;}{B( f, x zZA0Da8b䊰~v ؂1**Y (L'-, ~J\[ }*G*$ӵ`I2ٕ+MG-+99kVfwlP?_akyq+L؉̚Efu1n*'0,`'A0  Lv^B)X(J0(PdV*(s.GI02T;GeUG1K@˄u X[O}KgBPb**{prH&k"%;uim&zXKvIty6Y+X9w/[;Cw"Pg:U`@V082MCw]] FA4 P{(Z0EF_ թSwv6%Lo ׯ_m<"+'fQ  #=rX~`)7}[D  Z %5HB:!@y-ƕ0U Fx/d 2DgWmkWcd޽`*Oթ"]ډQJ]o|c_*}[Χ .Z"/37\026B |"&lgQ\Ӎyr`2>s+ um+P{|Hk8'61X/5ܔ| YCc@LԂml`,"Wh::ΉG _&] v~fA ,w6` {ڳMkQ>HY'=[]_4$IN[4syls6Z0 \ٷ^R@ݷ,@D&gV`M%sExI0F̯" & C$(-}[`z 6>0PmfqLLk[qJ!pJ`$<L|-[CxGV F`6ER`#YV’^^8f<5Vw;WT%&#@zE%<,߁OQPd'|qHdeS,Jub9I}11Ni-\ p̡͢r/7,raV0SǏ'ô $#%|"ڞ'j<c)s)X[`Y:Z+ &jVEchb"x>NI Uj$|&2 ݍ-ڂ`/6_v/sܕ`W2pfhAk^1X%_ 4ʣz+6 #)W)S#hv o}cqVN0kq5ˎf Ѫhi,"ͼ+ T!=Cjq:_`/ة )CL}2%y9<pp'=~"1 6t) 5Dx8f>cxfBWʵ|HpT& li.hrzӤnx8Yq-. `K:*!S?y_={|^Dq|l+c,{}a̴ߨu-X 6cj.Lp:iR7}}Xd~ W!]=gi[eԡ?ƾHi|;RGnlJc}49Ї.OЁ))nL&``R& ,d3A3b@*Lr ֋~`*KQnFK;TV0܎ %/ioun۶9-ޡvÇvnݞSs;"t@t["|u q!źk`#Wf-.vZ m.#;8oZ~lJ+nTͻ yN!-XDsts0a,Ii5@',) 6p@+I@\ґENC4!S>?nCg4l@m ~Qh9.:&X2LMͳm-U-Z`o%7~cJg@]`uw`ݙeYe9']mc+!߰Ԁ =" &]Lg="9XT}NU~rU V4T0b3E-ˠcZS>]MbIٚkj`4?mBw?|;`Xh047GL"a6̯sM k#bh 67˜}%e+} :IC8`?|O? {N)t!(ZA̼[h~+Xԡѹpo"'`@HWE {R%e gC8~Ï 'SIrQ#gxM\NS |bZ^)|`%ecg%چ]Hy=~ÇFO` 8!FTs{x zqJ'D`$GKg&.f08=\Km m`gK`l@ئر)`&!T"qhŋ"[_E B&l-l mF7"/bY{=#%e3וA3{~;u6zƦ9ckS<_L9LX0~E- sQAױ 0bØg#F`AІw" *M uMX-k ^H(Eb\ I`:淇QLSsL-L(_B0m+݃`A}>6 s)Msؙ3HMݵ*v`:=3xd#\D0z4j]ID[ϐ@w vة6[30P= ]^Gj }81q3쫛ITWC9!yYZqCry6X[=^vɛ mkLɏ$mctD6+w^ykf7}pG@0߃ V/؎.ݹ3X6@nB1D<<yA<Q0aV LCC+ -VFSrT_t$(Jơz?."iJjӲN$geLۖdQڶkBĽ@=_Zz*`|~ H mD xĨ"(T7朘[s|?k5 K^m TCtY\y;fGbC2c`@ru6F=me`, ajj*-\V5Í`loeL3LGEc}_uցY0Q 6Fy): 2nYiL~6f1ؾlQ>= I6] gRm;ĖQ͘gT4jZZbW$Fv~X̢j݂75!E| bqfLVڶMGz]Siijo ];342V*,W@3iXT}ǹ1:dp%srx-**^ HAa0anm-c=kWW']-۸Ҟ:pO 6#nrxj{~7qڶޑֆkMc=#.ےiۼKjT_ϓ^u$EZW5h!vnm\XiSpSXOd`}0ق<"Ceuubbp>/]0$ּuҶy'-抖'J͆ m*cQ`Yi۶`@xaĿPWhF";-OFdeПۘq@!>X'~ fyAgKdVǂExEy&ĭR{Sy ٩ⳬz ] v 'X;ytS`S3KK3 ʅԚ/]/n9Λ`f(c<{HvHϲ π^00 &7gA6c`̴m@l92v~̚hN\>m f_N3#V53ќEyYwZ֠+ ?دvI^N3ˁ'pQ:99pOFiK\H}|&AVٙVY+&E`  <`aœ$5.X9s`(%;m'OAڶֿJ 6\kuuuW O”N%n`Wuz`^`b@$Rr^4bx+!X V{Uy@ BiFm_.%&.-&,Δʮ}`"#5G0\t /WpNZ3|F#rܜy\^6: m`GX6׭yxX7liy6GsL /pvIG{ ck`_.VkN3RҶMҶݴJ T}썶D#o[ L#J&b_h AbBnPQ^mB3 cZD\rӶ%aa2~m0ð7Kb֦aLgbD`KSbV"XgX=igz!v..@vF#X#Nol$ :NN mnW~gw_rE dl~1=!z1e k+fqsN9.FєmT516 Z(H#S jh3iG.Aܽxvw`)m+̉er.#E{'4q#X#&9n6V|:O n}iY4f,Fl2Cr@3R˙&Jxpf385n`P1Q LlNUqyF{z`V6) c~Yn2HG43:V~Nm 7B9T4 C`|--W/dnד0PZ-UR[,#>%`J”o%n2٩Z;]`Wbۤ ^!S< \نwk0 ƻs0HNMt F 'l;8&+c$xB\3t-q J1ä`Th f0]meТ_g1w#닌F.>5!B, `}-t*S*/j*f~=/&^XNHk 7C34Zæ9.ar0~)@2&a؝¬ԧ섖̙(hiTIݙY))_/% fhxcYIVt)#։gZ\4|Q,IDȗ2 J8J&0 yFZp60/E@K-Ŏ`G)mE0e i0`f$؂3T*.bb56 SICoh TK*eep*m`!?>m Xh}W@K0|;'a(oÿb“'Ol5cdF v}06. _4$C!/h$yB9%'ra4۷ssŜ_Rq*lp[zL"I9c\% F< *Rbۄ1gq9<:vZ*m~m \] bs*  Odl.$Ķ-+صsrG0VSKJ;؁\*! Ff6?Km,+Re`{)w*ɟ@@ BzuJ$.%`Gr &R(Uꈸ6>ՎǶ=$`³A2ɍAN`~V2hXF`ssAz,H6FUBlbD LLn5hn/ I:ָJ-,-m>&J_icۘ`f mX0[k5ǿ75 -Sc+mxi@.y6ԖM7kn;[-.MU H;QT[&"xEEl[>eNR)u/`\*>?X0(.\5A1lBɅE0% 8YL>iV eĶ)mbmRPzLIiyk l/:uPk6uM[Pp;_P q em:v,ll]\ fP{'5}o.^ˋx*Km)XG}Y\մTv6n)XzЖEk4 `u]Gq anŗûs ֯ (A+D6{*Gm&zM=2赥xdEyA1R<@7k|vuk]j$]c)lܺBI \}e硭cr[sJlDơR#҉ #XIA&@toQUQ4Ů6I7,훚t4uX*X? E0)Иe, t F㚵C΍K]㦰:`eM. T0d`^6irp &EAma Ak4 `u&p+rFT59'믋 PZ5A۶Z9&~Ă ?kmaƮ6ՙ`,tI6f2`?0&@W!X&U䠜"LYFrWeq`a؉eB#ضU Z.s#LcP`H.F+ŢV;WDlP}űmSbzvɮ~sMn="mM`r#.1!m#e˖+9IUȰ1 ]ۖ^o:0546]uwln݉Iy6pt"ʎ8"kÆ 0JHy߮5 Fɣb,c4;wT|>??yś; s)7g-)+Wq^6 ,O4F`_|U64m33[-b\Ƕdoi~hu5Z>3U&9Gkg}&U00i9Pn@#ibLd1 m ?Lx`golvӚYb}i-i3>>T_Q|1i%#6_PfMĶteK{ #˴:^gOI޹`co?7j"I͍Զ촼<ѱm_a$Ķu,#؝7 _ο,ĻK{Toe+Z޽+lmt;l>} `|6zeClѱmSD mN|?mģlVdg]p<}5}j= grHe#PT&qmVXql &9Ķxgiuod2T5u(`-\0Rl8Ug1kY-ACهpj7U ĶLlؗ656dnt\Q)(m5,lAG4u v6I+`?iMm>_((m5,lI6]p'Kw Vmk}ޅ>[G5L%@L5XXRB*w䦻Q\6oEkrUضT ݼ l.MP]&i-wF0-j1|"wc{ZM͛3U6#]m %`0gJؤ Ū" J=nMc^l[a!< +ضOZU`6/eK,ضJoh["z,4Y߂VIh""*Y߂atm(f; 5(Yۙkdf`F]hb׺ qXl,! + V<{n>znw]`򃻄LkRER67gÀ},1Xl6DSa\NV콊`#7u$XE|RDǶgbб/صsrG0VSqȇXL;zg/ 5ٿc *"MdHm(MdlFBlTdRT?ql}KXn}k4jUc*#I<{He^}m ص6wA2ɒ~âE >m 6/Xe=D0~v89 JC>6ǶOGR#"Zԭ^߿ DSV0 -{Tr&`y~mMbcPBƶ )m, U[ QN zDg] "X\,c`"Xx~6^^`˾οvd?>i"X)r^J`:8*,Wbb00Lcͤ|o֪d"Xh XfeI ﹊DeuM%oB''ꋏI)*DNoӶ&r¯z& +L`paQ"Tj]R凶9Qvvmr»_e'Q|3Odb$s zpVFK:_0ؼL%1;~_پjRŴ֚YMB"  X[Uit|]-8hqN ma"EFw baiMzobɹ9 9ޜ~Aq_[`ׁ wY+ ";Vnc`>{,1\a@`Rjhۗ#pfREb6ޑz1Qf1`'tM& 4 ,;/ 6jcY\ FZ`5Q#U",e|2]h.^̹ߗCC`{5wby)B(ʮ$XpN+?1|da%'F1) Rku  }4%2/E # -)ͮ: cԂg]c?t{@Vcc?(?ر}Br?İ #nS+b7ӆҋ ^cH#X:P#h4ykb7v#@ T,>L`hh <(Ƚz &̹`,"E̗צ?U{4@3&?1 ZX@:M)5s_(Hd*nD5A]+%Ig $ pM00 vYQ2?y9]%`R?g-]hD(إ/QM4! )=:#Z*l 勣*; wX@t &$Ed+Z_\\*G ߼R0uV"``u ׇQ|| w]s3  ` ǭro9֣İOol%X%P0щEʞ`Wdqy5ٽn%'7X0 QnXX,@=~{yy+ ba >~=2Eۛ+b,:~bWKh' O0AY%Uy)Z|QX0gzHHT~K6?ؘ3"`%`Һ7` KQ 怍qV06r~ss{{{ "r` oԊN$Dqt4@0X-`FSxKK˖G0zC`Gs'JHֶ7."Ke!yrm-趇 p=+Uonb8ᔌR/ޢY-\]`Xq AH60J=yvf<Kԭ_kkX08k\l2KI灂uָN} I1iin\m"a3 0]'`~mj1 HWg\. Na~vdLRfpKV!R:?Fp~xusjq͊յm؊`\pH_$Fu`` j}a[ NHQvt$dߋx4 ?`͠7$M+i+lDy[M_9 !V` LVUʠӪa,m|+r$`09\ampqEQ"B5!,` ^~0,XDMR\6rF 4-gȅ{8T<(P[XLPk59,ɳҐBvEVߚfWdJxƙy%2hP d)FЅP &xvY1ѩq(W#ZBq)dH}*AVV=`<z=Bz)L,YYu#B) txɐ)L%lJ~E,XqKCl`cx#*D&֙rT4Gb*,'K~E.JW?f2crKn &x*CAꜩl"g/ 3UJR0?#ًBauŏ08`3,T (^Zj*TR/~yڅ{gdPkuN?>,XLp `8 ;O+&;=Gs'ð6⢘N ,"Jzj$iX06,Xn9UJ`z{=(oX0:^;^< (J7,`~ͻ:ovc n~0BYzvvc,dO67#UfVuho 㴉7GNn*mIJ[*s`V/lA>˛;G,FyssBI=8 Sƍ6[4bw ] >H)Xh׳nOsьB0ҍW966j_i&!Xw}Ą"d(ǂv_!FRj賂QMjA2P-v`fNb)< v*[Z71%M!6'i!ke6ө`ZBjw "RM v2vBG0-Җ+eE:Lw+)͞kD=3V6XܓWO k5nE*CiCU7VR)xT `SnN 0)+``%PFwrN<`h{浠mLŶt9v-3~n|ާrSv,:!`)vu*"噊8rTqrGx\Ȫ `Mr@QM0&.DV9&c| -C0 3 tc=&o jRq>\_x0lJ/Zx BS0 s0;?29̅}D"uELꢒMc X2?I l<B6}P0xzH$ Ob s>7b;GS&B`wk\KZNZ:CpPŪé&9Ri-%CGasmރ!?e.-"e.|F34YwR]Vr/ G'aKci_ x(>ogwalJOf& wj ˦`եaX;l.>ͼXy4$fu\vƒ̥0y0` $F)a=(N٭j/: CH6,ŤrEZK`*b9/ `ufsC\ fs>.+.:}<S\U\|'Z 0vW$ k0vSiX.^Xu"sAco[.XM `L` M `@p|qLؑ{5!su~y<_ ykw XH05PmpG_j2̦*إ/2*ulS-:~$UYsW3S\#/lS[(:Y||2nD nڱ(3<Q6g=f+up*۸XvD+iPrq|'^38=QDX 6mDb@6)hMT=pY[ [.iZ&?꾱)oc"2b<[ A`.kXދ/3l/τ>,``+6*NkVk[iu_>qϳѫF &"潎 l-hp+EU;[ɡ粧[q%Fg҅Λqj^PՈ3{5I;NRMBf He'h|I9dW,{TW-^{W "`#;v_u`5D2eB/fL^vٲ{ qZ`o\وf Xe=%6VlgSUUOϣY]%3ʈː-`h@HQ8eVD 3{7|:2J J` E} hg喝GrEjhnnN}K#]ģK{ُNN /bp})I>^'?4zXl@|+݌>]Fhpq5W9Ćӏ F@B@(^cL kϤ~E[RpRxx#}]BC;~LJf[GhNP1eXL3߽σ}4HlDB{h]paG9ɒR4dWPpb<ҏ="1ؓ}y >I`z˂F`y%U}iJ>@lhqRxE^qG~ )v,ʯ1\^te)&a9`cw `0TlK=a4`x/p2#,G7q|> d;^2M߃͏JԽpZ!˫YTxP=*4}56ݕacCx%NT -~> 6MYbD+;ɑ {_ÿh~_DHe`<`*9`ebx%NTEq!-oq MSަx?(%6I+ k`i_ы/'M%MN,22`g/Q||%NB\H[-mݗB9Xa B5a;(5p%Kk;r_,±QЫ3"U[`- )7t_oi2C>;]9y닫+?*s `06Ovӧ-7z.>0X2 j7oύ6(I1^mfK0]:Gvཏ( 5k*%Oӓ]oW? ?Z\̑lOEv`洓N{rX JNb^IC(5=awi`ɑ0:Wc_V}@k*i.tNWnֻdk}u R9cEKJEV4h E6S VyC'ͻ|ISu倽?٨* .JUnDUN|m=, R[?\9`N"LZ\ 'l|21CEzhV;$co9`/~/`V3EU8Y-5r]\9Յr,&YJ1i'`x!y%NW0ãW0{xbE*u1K5%*ρ0XV| `p!Ue C8`6< 0{;^rHZ\[f0`j3`Jkn5{k+xMU4Gx|<jٗB-N! ƈHDC' C8.[įL Y ,ֲI[W+f{o*?VvYǷ@a6 Ii!P92vi8-plXA}zGU;U.Rړ0cvn{`{`;Vf_ۄ}푬{.$;7 zrGZ-s4Ѽ`X6nl`0kͶM!`11Jwf)01`Yٸ퍨~qڶ-:lp|ÀN< qoxGh㖥m[X ` ܹ,ƭ昧^ mܬٶ!_[ĬO΀, 6n>LͷU۶(뾋3* 0LPI+弔8)ڜR2&Qi6|iFmwE7m_N/9 UjOvaJiS缔iRN}$CWbH`R^>_`2_`۸5^iC7m:Wk&omu9a Ujee_mH&J\X7P̀aJ,IO˃O`}[D6nb6nVm:{;d>WͮR8JVd1A9*SWb%SK@؟g??}?4j635 m,۶aќUc.\>N؁Ì W2ť+ib3鋱&%i&ƭA1qlm XRsw RD]b.aI 4Y0%Da 4&ˠ/iF[&7nm+]/2ήR9//{HI$SWOG7Ea0Lss& O`yWi6nl$V6JIs?L\`]9Г#js^Ot`d* Rkw>F(|N>!+8%6Wߍ}A.RtL ^S2lsgg$[]*E*xVT;9U\`|%oUJ&,\R&ksQ|ն9`gsTVp*+_^q\h1`RϞ} ܥ_^ l*XS咴;+Ic/`FpI>ѷB=]Ҡɤ9.qܐ{MSoY56Ζ̤.O; 9O:\Ǐؠ9.1cZL.},N`ۖ &KX ;.twq:ӎ L,IS&{ɑ[K_Dnc0l΂`ۖL .kbAGeziM&qssҔ{Iv[c뛻K['ض}8&K*?r18]4d36'MIgt; 0~lőck^fkDu:ҳPMsDUJݶ)jYҙnL:Ǟ:*?4  | g/|0h3dWI=ӧaoA?6efKTs7 A |~7=JmҬ`Fe0OZkC-eS|tԆ:J]VK0E|àIqi c\%LsfɏA~lMٚ-QX_3X {Jm`({wz/X*`{$U\eYr,95;bYQd^K?9xI;9xxgi/5V[=xF.ͫLxFI6>tw]Δf ;G])Q9k}6vO.:xIɏ 3!`fk6DmkUg@ÒՏsLܑa}&JNn6:7˜P>".QȌVjTQ}hQy]i@B;>v(7?kΨ{ ؐ56N53e |v+u6Uv/ K[}Rw_ 0FN\5N_Ӽ_7QmZUUH?AIt wJмr[:Qα=v`Z"/!#s# W gT8o]Lcgضq v%o")>iw逑IiFϡ nw| T2|kiG a0M$EzŧC \^&k6Z ] Yl˅0HGǽa)@8uid4P-_/OS0$0vKVTmuK!ir")֗-Gz:5IӪ'/?t1-b%E6JN/,0 -23`'$)+YLF)W}R<i|iM>Iu_~/VA%G=}ɱ[];Mt]z*6;ƵjC ,9 ј==uO=4>ҭN^#9U}.|qI3deCI^kzZ7-Iy[lTy6ρ>Ky٧ZSX` XwاJ<^qZBA]zMCeuUAV؍gʒ)zMx}~h0 {X^)u= \MS"U #i|18aS^f*ljjeyɌ"L0`Lr|"?M"ؕS%F>H DjؔV!`؊y`L)+$m+`*k*H#r򔗴¦V2rsL)+$ 2 4F>#MyI19,ĘLLk7}AI f|4GIa65bs^lY/9 M .H6~c3i3¦VlKs)fV/Hf-1Obl&mU؊y)#70+؋-E(Lf`[؛*Uh啸*uUJq7`J5̮R>*E;T.m\/*wrs !\B : R9BeKå?'Y;9 J[*Eh@W) OW)2ڶC >m9} VPva\p D˂h#h !G~QW4q[Im2rmJ9C{'GW)Cx͡;%`Ϝ Jr#8J9aYܹ9V2vFSMb|$J?}tܓLd$|LϦ+_)LXq\㖟-ڤT}у$:vuU}]W7.ȪA`)[p B R%*+UUlԞR=Ib1u33Ov2i+,դuc呑eL/1`Xd9XƕҦkU{0F]6R{λJ#@RO/ PW)SwvZ`GFL `M f˜/-oC#H%sU3'0ךcUe;zUʘj:HXXgB!tHg5;.D<%IwȄqRQ^6[ad$ GT 78FIH{KRT񐇏ep&OYW6 g5" RrQWvIRA5KI+`ѠqKx1Yxy r%UOr\c{xq*uXg02e/=A3W#q9IZ$7)*?~侀̗ؐ$`L.+I @ ൸=㢐<+(sğ%< $M)~)2Z`{0L=lb񐃭*E#[{+PotbwzⳒmV c\^N+܃q0JJU~&ˀƔw~%mŢl4SāE(*~7<|QE* %5$`h^56/r_G'&V*5g~JtǧPW)X&\ptUM?PW)^`E NW0p'J]]*e~tƣ-L<`Jxإ2W)YaV-r3]|0,DQJ~l-VMm+yWÎJ:UA-ov86VR;κJuJ Uh-ofmU (Sam\lS*xr=\6.phf .WƓٸAX=:jmh9U*ڸqes2Um4%fmE]Ajm-%fmU]EcضQF9#fmDDض=挼  H6ZU`VMޗhFmucg0gmTD1y` ,#0E`"0A`a`u$*`7ϦJ]#*`ΤQ0D{0E`"0AF6O`V͏M$o"Ƕ=P.z em,y0{~la8TY8`c&?6Ll* zxTɓ#c Χd4_3`ۀ5Ljh4&m%ar|d͆'װ#H4ٶ@@%0Qr0~lt8KD#ٚ W҉ց5gx5_"ny0arj~lHXr `k6 :Xx=<rxVZUDj/@+x0~l񕁩4>G`<92ck (HcP%FJ+xJ&>Vݏmk1.Idž095j|-uD;_4;Լ%B5㱸fV#`6)csRu7:'q,vMW=\3e UfH*|,۞DL2֒TF hlfcR<z(R, j29J[U%/l䃪"p hJI'c<ۀ[{6d@_ݜ1b}PRq=E~tn.'^YBxeg,؇x!<Fz6[=dcq0]L*$a[i콪ks dLǤ_#l$ n, sXr0jмݓN.?r@ä7ѲRuEJ'"YodרL5y(KkXbj1 }/޽_UD4oNBMR0Jc]Tٴovdod|e$@X` =5-5_iջ=͡"&y+5W(;^h*׉tX45  XnO6dߪV4:gQXA]ckje a!75ǟv.,}t(Dmˮ 'aXwk6UזXՈۧ7]*LήBZO ' #`M.tBXBcn16Wo.ݓ`B}L0!YD`J:(0quq]\]=҇PX"a E!ҬA} Bn&"]fe!ly)}?^'j W쇫Mo &0S0S0S0S0S0S0S0S0SKޝ)Q:`_f'g5}~BGsV,HUJrS<.&J8X:o "8o`/7FESj,P[d %:H1*Z'[DZZ0zPn}1V;8s(,X«G:X/ե.0gCԛklWxuLisA@Go`F*wR\qїYru1縇i#A7re,Ht>4؏m2X Y᷈tV<{縇9}SL `X⬾MN'Y] '`{ysg]lQ9t()\0 0vP֡ Sj&`fV+%7n)X;,sCb}-"Qa\_Vc7-.>*VysYhn3+VM-X6~J͖}Mݤ޲硿^A0wn[Y0cCvZ:5/9,H Ԙ(`6}󒽫WZ6͇ KsGswROx%;`2>S/2EMӊlj)^ Ll#w7#%. %)4M!2 OE\`5n3R60-FԸJm@q;\*[ŔW63mӂLƭyոLmqΎi̭q-&Sf;om`~eFI׸EV Qvڶ&[v5ncԶm-02+jj+q5nWm ou |qkԳt5nR60-8F׸)x5nR60-$ks5nR60-ָMmz`!0` `) !0` `) !0$`2}l>m.S lDV;mգjeϏOdۃUm>6qAjbS5H޾ARn*MǓo\R ̛piZQIc>6xҦLmck~5?:ΐ_KT/6w vNvp8(vd6&FccGj6oپA*MMQsq^tֻ7~M8FˁBswnfd[QcKj6o:le+.y)gM_')\X֨Dbygȟ6`7 l5Ң|m^Y+>7kۮؼ|ƯI 0>6=h'D3bVuW<3=Pۦbk9:_s,1:vÀIq>>6lM s2W{A`k 6U4c;Xċ%S #lXio}++KwNvm۵{6(yB #ټÏ#jSiөmv`':K OvEns<0&fhD;͉j6wNѩM~{>;lڵmmɐg}?=WZM`D/-`O^l)cc̯ڶqE:7/Co?--$&k>W}~z -yG?mv';::n 6CC.ߚ/V0Qxy%Kp<k$;v1<.& y>h+pA 5 ml5XXW\zK|̉1:cG̜B̜سۓmh c̦j'P3 GOHlH2,=:^%b760\7փ&Z ozv{ 6tglh" 4oJi}v0C`:H<9k g! ܕCBު { *wzԲ}Y|o|pTJ=fY ? e-g{)MNLG߆37J} 4#SSQ):6 ӃLzC`z(—r&"T^0䁷jOQ?H+sK?{hhܐzwrwA`LuH::RMxuxr[S귰oS 'vr,"hzd6j4rkE`첣0''cVO'L`NLEA`1F,Wک@`\%8NqrS;6_:Wکhf ,Ig]q4fr < FtK{80(&>4AiLP.E|'F2fE`7S7ZSwC`C`LC`# ,*l؇ݝ.g:&t?+{2a+`|~&m 0e` @lJ`;鴐w_5vvZ&^0`[]YۣK};#W}eg,l2.rpےJ00#%q"=E-V-Sw,.ﻐ `K}7ݤ`CH7)=>XpleJ(~2=N LވHCZ=b?ƿ"MH3o-gnx l݃o`|`,#5\YXRT?.T+=SȁSV^1-u./9>s$r"cH#:=Xb\gU1XY7 ]GQ\`EŽlL>s 0bUkw{W/kw!ϲ]2YRRLÇ}YD!041#XYXUJC`.`]&)_~r֭4JR唳۟rG !x۟rG !0DpE G !0!yG`#J28r4>x!Bw؅GX\ h=#0.`C`gj>vG8=H#0v,={ZfUhrDG"+U6K =>::E`Ձ ,=L@`Jһ[\u`V&O]'˥9lbc/!0LR=(pn@Va&Et5]-mipS~l&6'G'4F`%-;.alwx e .u|I6+6!df5/L3`ߏNNhNX-`6Rɛlf kr:B/%$Dx8`h& ֆ J`*1?Oi@`6-;*`ٽCD``ੰ``U 6I{!7apy.rʎ3ezUd|*,!sk'M.?~R S9L60_lmfeG=ms0% *? sב6mob Xnlh;)bӮ XQ {Lgk~=K%_C Egr7CǾ47x,K, ]xi, ]g`B1iF:S- !0 0 J!0 (0F3w h}0jp%ՏȆ*Ccji|Qn2y뼧Wکhq(ǢEƀA̦B`8NFz10}8t=\  )vj4牮c J\`B:>Pq$Tqz{FqFJ!}uҲze20 DdK[I49,5ʢo}ټq&6/L7og>1 (b#h<9WY &  zON F8}Fh զ㟴Z-{H )= s҆[Np zA" 6]"ip6"ꡡ[j@f# ›HЈD>8لgzDKCKBi.&Ctn讎`|QL]XH>[FF`#jTds*`*A[U1h2 "l dSo'_2jɢ!~Z]d:UPAK0PL?-1`5hծ16^!nX>ɂR{3Qެ1S0m]z4—]p\iM=9t{1еLy e+vdCӸ`:i[oڍnFU`|Q~VFF`8 "" s"@wƨvghAuA'i#u7Qc"~qdgg + ] 6`(@PE~'`Ͱÿ5P?(ب]-ؤ?kDP`HͨB3 NR ԗ'ngojѯV=_Mp=RfL&XOR̼|O,4SV磉y_>p7z"AceS zGp11} o~`HC`" A$!DP0 AD"(HCx  5#%"HC`$Ѓn伢ʍ("9Ow|l2SJʍIkq tЍ IRQD+rVT;9( (" "Q`d Ⅲ+p+| lBIp I2 ^zVI30\Eڸ,?9`Nu]#nDɴSnU>oQDmؖ  W%[V=Wv(m?|=^"/Fm|7fKܟ"k6j6C$+Jβ$*xEP R`|O|}#֝D}d*NDpf{q ޘQo*Vjx0fFr;swR4&k^""2!~MQ'Bn2'g) Forp5r or 2!ݛ}+ڻjL[Գi`#`<ﶨ`{+Us-Fo#2!ݛyţ]K_B`[ "]D.c|`T_zʥigDKkQ"AO4Rmօ" ׵v\ AD"(HC`"&؏CD*?IENDB`awf-extended-2.5.0/images/gtk2-rtl.png000066400000000000000000001447661407140370000175300ustar00rootroot00000000000000PNG  IHDR`gPLTEGpL¶ΫͿɹ̿̉\Hӆ[HocX̼aKeM֌]I^IbLw~ȹ_Jɾ]E;µyiЅZHdLdLŵiL?Ĉ\HcLbK̼mPF71_IijȸȼʻƺZD:̾✋}XFŸ~WE߸GECû)('-,+?>=fMǿ$##MKI0//jfd!! {xuRPNƿŹa`^::9ZXWĽVUS}{¸»766M<4ʿpnl̹⤝xtp432ؚ{|gZԢsQBҸȠӘ~͏u7NZfPFdJ8㳳*PÅj6frnVw`nZMNvf6DZ}}3ѿrxZ.ڶ-8cTGR`kBok@A[q<9o*! 뙳(򪫢^'I|eޭaįL߆τ; tRNS@fƶIDATx_lSWBfW0ݐC1rIanvUuuH. ^ZnQUM4v 8nܕ2#Qq?^_;O͹|;~9@ k *Q k Uu;p 8SRMbԀTj'?ٷhfx7l"t[P鬷IiL < LAo"y fx\أy]2v^3h>t7Xw"f3,3_S5(Ti3Xi icf0/ ܽ{f`qT- wC4ջ3]Fgq)Rfܸ0U\$IwӅ˫R"RΔ8c9FixR 4Œ3]&!MJބ;@,:D`K DK ܃~SBPrt'fb>d.pɳD5`@T=-✓u=@[E {99[=!La)gڔO'7.> YYoO: ;`Mʡk=[a*EEmBe0`2Ӵ,. .s9sEa;q?q3Փ%O.ǰ9Tb #t*n܃Zi$#[QSeU|٫rm l4=Dɟ\it).N"]iv=Xރ|>Bș&Dؚ雬3d\ʢ՛3 %rA.*OjLc2Y`K$ծ3%K F᝷Δ`OYW.D!lE%9ol)׳zNJMK\޼t{œ'S1}J.y[MI'52N/<^doh @{3%XIׂJګklhDz lxwU=}DEYE jdDɌYV7̉j| yc*>]2|&X>m>v?2`&i5Ktv=xL<ժ7 V`B> և8W5_?ihs9jvˆ_# ?!yƓȟCѤ[G2x<̆%b6ϋ1jQC47Xl/ Gd+Aօe ȚCuD3OYs4A5G3؏Ys45|Xu2^C :R^SrR5 ]:RVEFuli-gYUJNE!Ƈ=_,!?{4XW3X I{Pk,@M =5|*t7kjnL\Ʋ "nߘ,ZYFyi=8H',5phorChY,bniX>l:)K/i{-cH]]X{[`Ah# r.lf3yj6IlZhƒsy%4NO-rJ`bX빠6,Ox6{011?>xð1xd}hi>$tbi'} -vIEh..=y-ᅓld~;s)`@ f߾=~iȨ.1جlA>:KoQ^>m";^Wb_2>)żWV8y|ғo`x64~6;XK==D`\NdCJy09_nٲgO7羞{{l1d1E Oi36P1620WM<.δtxADm* Q ^Ƙ:朜M&ٟ7yvuu7mzouSUT=ή|֪ u&" c? 3I@KÄ_z2׏lSֳ\ rȀSXwliΞsjm!֭WK.ݵjҥh0VCESXi)YhwNeM+((V-#ZtREKṕPIltlC3 Y{@<#TEP&hLH), >Q zd`n`Z׶`EE6I$sWOtlL!ރ  jwޔ1=&Й[!id7e ~O@Ai@׋ Q [=U' X>DlJE0f0?GlLosolosolosolosolosolosolosolosolosoQU⣐`ϫO3GiA"O*Nɳ`K!XƓ` D QEN}Ǒk|mn6ȜcƜ.rNGV/aH0o{*^%kE%ApW<ܝ;lg|/G~FwaTߘ`XS%ua-<  G[cX)yyyI M9,!(+ADw-;5s1s6 ȟ+V[A,7t(o7w>lztdֿ7c5ɟz.U|k|9=KyWȊPdW(5Q5vɤ<9?lr^0WF]|?_|$XJgV! y In:nP :`R Bӌ\/ JЗ[,_ׯu"#:bE]&ѭ`~+X0@bϡxCa4Q8F9*E(MCFӜF\s/XSLJ%W%.Mt nJq d8cyfֱS?#:a.rhAHVs 5+zUʙ 5MkZ,ҽ`2X/ih $F`[0U0eǬ&;yIغTG,PD!V a,Sđ c@ab؏Y+:%6_Q{`6~Ȏ3Bp Uk0fjX:b m X< t K,K2\}@lс6!o;xI*Qe3J K،q:f SCT(N( ijNf~1R\l%;gŏzV =2%|D: ـ 8`VV*޳t= he8B,8!%jVF-Ljq~$XŨB!sM h>]LP2rUXT2YJnvH|^U{~1$`tʤ| _~b /C֩,ND.d[z̠Zf#,9&,1aSdV޽F ש** uOq#Plw۷g=Y'~͟t$ "\" 'Db$N1f%`kgs2uFn\-N$ەhtqK a-u#Cje"d%bG0`:0Y<=V'+xuC f4Xq wBo_}JlCX3^dɚ|'ǞoZX=ZhJ$TV}VIzN;‘lbv0 V"~@0]*^vQW*І|"D3:oWUށ}/PCB=ͣ".y,) ӍQRT v(Q|xs96E'zs~L tig Ϊiv%>Tunxs/;v0$^k[[5=N#82&Dlɼ3g%T9zL,OLutU/ÂWU`o7:߃cǚ1p"^0/R0{š"F1"m-cx 1_5ChA=D3%ʌH_V S's^ ,now9aBP*&(M+L.4'WT]*pLҌĈMFF02i\LFwj`yAaQzÀ髆a\u$])*L6~+?hie$~G2!`wԎꗬ+&ƣ`tHb$[/6` `"i"2z62iQ]A١G}qvwJo$Ý}]uNwUEՄHhHY5[ck/I8Y>SãP)ͱS^CbTU[qXm#3f`&!_QWeCdfΐ= );S,!;&S!CK?)9 83n_kr}ؙIZ)l%67%P&^PL&OeFҗb[XWԉeaqx^8s`B0"޳rc[EuVMQr_ۻ[f>gϑ^I/ww/*g|jӻ7>s?{) G vC11iSmYѩi8e"IPZ/uR)mHL$ L nGH?Բ/GmDlR3>Sah+EcyN6Ie lY 3Y4U5>;j*N{3N܉"J(X,,V$,k&Ck> XNNx}RxX(~H{}&.j;zc*.26ggz U^İ F3OcAAh[!Lê`=bJko@=%We/ bP&Z(JEhor.}(ÿz~حUܗ/ ɖd;2gJ`Ih팼|A) \'~\ s+R.Q>AHjm8Y 6KcLy9˯s`Ơ7Ā`/ee&$J]464!0yʨh`|x@6e z0`㇁vylXT "lU0X,Ycei^Ϗ8\`a*QG#ug;cξc`#g (x~ sţ`~xoz5JlָN(LD0`&<losoUSLGi~A `{*5-,nH*^e{n0ѣ/\|2xd˧h v~PeL,&{J5AW9ڊb1˹/*j̣`kVj4݃NCq(DSڛ&އ,vAJŏAv~PŔQΪ/"¯#^'[ez4)ٽoEzTk/wsr5[};Rw :)>)z~DUQ̭fy/y/>R_nuwn-+Iir 0`-rD!].u+|7ǂ}C 18qۀex%-)ԵpqE 2~Arejٙa,Aς \Yb9x|s?x*4K&*.VŜ886@ZxĉxP됫Kyʈ qKƯh7ܐ7_ko,KNEFCI4N#D4?&qUHQl/q;uh4VV_Kuѭ`[_h"it-ς >(C-Q{G .6_<et N[:)}o(Vy|H!U-JhFFe!(:w1WmCIJAvAQV/g\Y|-/[YD 1qn5_<Ei<EP2(#'XbÔq#`5!IC!zD E3IӀeK%F֦`e˖z_T-N f}8`(|{De((#xȷ~^N9BD~ у?)>dT(-Qie"9Ti~I0o.XZf,_xOD`mS9r,>ZDWTW {Eb8n8-wk(n=E<dc*1<,6J 68$=dqIt!HFr5HX5ED1&ZI^x}'>Ľ`)"l1"hI(Z7A|/lˣM;]Bz=T}\Dۑudg)x`Co8l,%H*[TK] ń_lE?~Ij&R`PfI\/aTQuAyAfL긣%RuĶ3]]vo3vt}>&&Wnν9sO9&C,i%"$1,T3a.?v``n4`$2fz"`lD4s(dϔZHK07 Q!h% >7ED+9~{q>l2ȥecDù\nqEr; Pȉ g  '&~`%e}H} "467\~@5"D5c  T;[HQ.El?f[| lr`oq f`ڧLR+tF,`6nusCl7Hb+ۀ p4x8`ɂ5t`k@GN8y%p(R+n5JB-I3TżAmD@*vW#Ay[ۨ?jm<6u%L=ͫL+#lbw~OƟ>G>Mg`he  eC yPܥ藛i,X&^@3,H-ކD. 8Ǝt]t8:&ZrA\`$#ZD1 ØXgiksQ?D0{8{Z{S-+3Օ@<.^V(6"ыt:2>7 _A1e`jK ($U)PKhe0$wY޹wp7NG(kn489=QgMDrC0zT(BF)CUA:jtqbqC-D+PRA ddYOp5#֐\O[*ί#^!JjJJT7ˈ`TaQo}u8,{`Fey)8Q2ybwQ։ Xۜ]EkZ݀ 'UH'2t*V.oNK0dclb k\[x|4hg vZ H Pmn [rl:nQ&(R V.؁,R9.D_L9 MbzxED'f6id<4l\䙍&0H9G6sҜ^k46q /EveTT(Cb faeg<[R;Q=Ċ` ܔK^FFF^^X¹adˠx%q|Of.J8⩘x=6h='%ątq@rMۄ,Y.>^FВ]W9/"XN?1_k9r'4T1f_"] Yp0\`20z"!! JxCAt`X`yR`v` lnDWmw?^zEnWO75MW?~A05-bѥ?FNf P#pN D:KR b6$Zb۷W5tU[ݶ/]y;q]}Gdå!2<_̚[@ 'ydҺi$~,W.GARF0}W^G`m-nۘȂO>"XqD'Kg`[wlݴغl}Ք|cBFE{ 6{0 vۆﶍm)t=3"XEWS184nrdd,Ξ}xvH?sA5:{YlUUmCWmuo`RmWʯ\V[/?^`aȬ~ˢxfBw? Xm-n?4[ fNr+=p;[>`tl XjǠ`ojnr ]˪j uۆߗ]5Is V8 Ws`~ vB&#z6{mU[Bݶ3,ENB;Dfuw 4XjǠ`lxyER tam[9Nn7N㏸¾kn W2ɱ̊k|썋8{yL6UPVZ?:tdz!M1z| n<9Esm[ΑEH(wvYޝ5`]j,XmaAB |c9EQöFÜ(߃w6xm.]dǾL/^">_uDgg'^8r/u\tK9 ?f ̍nF"56D%fELɾfq^GX3gu)!XW.=&`.x8Y%BC`6#ѯO9jWF#*X̂ L*A0$0 K.SwD,uvQi;Pw쐞@XYC ]0[tFA|RIS e:}̀`]`cKOGۤ`1֓STR+\)LlӾZ\nB,XVO ::z::CQ3ba%("|cuۆ32~yE[Zc.9UI,i)N1yi6iuy|qHa[Hb >8rɩ@dwek&e*Em\DtEǷֺ%=;قz-zD` ;B%ꈥXlxLЛ-b`"_QQCĆ.K#_5K d k"rːYMĢ ɾKPcI*,5S| V=k0m4&\t <1y`s$%_qvCG[5_j!"28B[Va^h,SXݶII.9kSWo=^?VLO?uuڜ$&3`;OHf &K{"tڽe7Y rlq4dsvDbh&H ŶfWTt!n;rÿo6AZ7V~~ 41$L?.4KI+)Y2HGRLћ@/#[uJ\)^9)C.aPd+`~5ܾdž /9B"X/\여ҖSf}`7% ُNO[aBd2"NTy.\Z8ti Sp_xo~QZ({`r(d=D:ٳ"XE [Dq K\o)K&v%@J^r]dwi>32F\ ɸ q f뫾${]hf E#7/\iKgo?rL+R ݔڊ]V-ES`H0yPSh faԶUimٹ w91tĪv̎;vF;OHș}g{?T/&i8 &zLJcD0*=K߼-СQQO}Ѯ@I/| g~z/>`?Q'Hy?бގ募vtHy=޾{sKXSj{m EְC/BnFKE퇇w} ssO0ap +&C_vV%ZZnm  w1&X;Me/f6pXݶ1_|~d*}j[{% h{/#]9D(.C+bq؂8Y:eY{A .Vʐaa^D5 ɭMr lXiU1)5m_wm5Xi=h"5xd_txf,a5 Ѥfqd°P*,;M!P %fZz,>9.bҪcݶ;tar4nn̏uۦ̀n\xWn az '4XԠYߕ SseLb5I&Tc2`PUS FWJu' 9R Œb aU;k*,D+6ml &y!noBn~xx÷=XLnpM&tcDym !^6$bQV* G$&LLCH$TA7Y &+ 7[/ V+YB,aV"&"uÊQRдJ_r &~=:Ʌg P\N[Pސ $rU IDȼ*86 cȄ62P:b0/\P"?a=388a 5<ހ7f elh&c6i }YPF:,H-F{SdVm[hE<ɩOP0=&% R aaST("#زEޫ@ӳٳo}sZ4R 6iLm`)Vt[[1o.g˥'`e7}K۶%R{Gal\d]e,Hm R{? Dƕ&9|ђla&GA-,EvuȂ'}Vm{n/z,ӳ㚓M%5pqD.ol>,~EY4UY yr# D͛+*%MYRYدl=$["OUK&/L.D̖4܊2xptg"32&P[G(: U:p,l)s%\Ixl-X\`菣ooedv㑙c3GfQ:lo Iv&) Vay/Ă@ GLDB3FnD6_19S9~I4A ?䠬LX'f!SA䈬l,D)bs&bWV0U6u Eݶ/Q_ozi i *+ztϱ;VXVL" _dvV$LT>}00A/ ,bvLQd3Y `&vrP( Γ[.%"(cKBͤ{.^Cφ)!pƞסf60y/ \<ʖwwD1xb 65d%Yӧg,M HZA'rdr.Χ1'm-(%Cil0,MwWD:ehԈ9A6(. 0.X4Q.:6# l0 +3mۺ,&m_><M#<}GB+x=^:35ݩcI%EIK} &,1Z$|HF$b`6crׂ^1XHh+ő\*IuxrҎr˔ՠ^e+%: X 0ZUql-C bVl۶"nn`bǙ=OguK}|Xm^~mn`"XՖ|e!ASw޿[r]M瞐\,&P̈́xhOF"c'F6Ux "t#Pɂ") )W7`SM\pFM^+.~X+[ƻRLWJs6t*<+5m["n NTfNr+=p;[>`tl[ # *_w8$-NLpz}Qq9_!S: n"& &$(h<fR^ŁΘ<(A yXSpqF'RJUan6@mLkb\7iJgo~wx"|Xf|L "Og/nr<>p4x8`) v>`pJPVT!Ԓ06+F dq`<ٙ,b/Bf36i(K|UL3jUS@8mzELE/nye:yڴ< drb¢ cX0X`KlϺI.dd hJ3<Foð@!*EmXgmbun7N>=XcwS`WW;x `>q #u姈<ߝ3a,=kR "N->'}|+egrٯVR\"֩(֑+f p0ЇdeVHo~~8mn;%M!2fm__s EۀԩTa*uL̑C)e@CT0t#5:ur C||5cXχe9%l Ik>̫rڗ`j %\%e@0 R^x"@RAQlXO,Ɓ H[Cy|]YT LEx*|~4p^]2*51ʑCp;}` k۶&\0]JWrO>G?n E bD,ǃnm ĹQ\$.1L0,X7pa $JdQf!3;L"[J=c%cv'nÖֵcv؜%Ecvn]N 7< ze~`nCGҶeRpݦX_TQ %d-݈H۷SnHEkp m^x%eD_2`.7=1kBRM<,BXpGAoz ?fs}}8AVyc^1򯑀vcH0n`وU 8*=չxF7ϸiŖ##."X pR7%ưrɗ̎%L9ydҢ:7Η/Iʽ77ҺXr~czx~>JvSjP];_HۖP njs0ý&\4QA9iZ,`#Ux1snB@RFm2oRqP\0L gs sa {P=K1,(/7whݑݽV]OѮA+?'lh:-mF7䢪88xL2{̅UFK37|Gؘ,'J>nT uK8,J.1Pբ KEI =(ār1_2ǎ 0^xõ_:vbZw˟a]b-NZv[p)5>\=ew `*bvZ0A] 9l r+f[艂 , ,P>ؗ MgOi )e~+a0gQR}W47R@LO-K* IW9>btRJ+ssBt )Ҷe#zo2A t DҦI9R8eZ0 \0[Sݥ4irےKQd4`b? Ggs 0^k>LzҶe#*$e:Q#M3@m* K%i{\R  a 9d 7/kqtҊ!\)!KװLGbWJY <,Lﯪ]sԮz- )\5R Tzrym ֪n;C\ح"q^d0{p`֯R*Ӷr|0;r7;ލȠxroНl23ԦhS&eF#=yZm(f8m/IۦO>> ~cXAwց ذ eNlSj[`yU`ZJ&Vo0mOۖ\§Q ~K`:::aDmSjZ#X`SC}%3k8b"m[~Y \=ͼ2{w{F0/ülr!FטӺerV0ocHJin,m)>eiџ] r5 ]I0`y51F2PHRE mndmc#mc/XsU;,&& /+Pvᳺl e`ާ./@sh8m K?mst޶R DZZP/G,; t; 79NDU)kmo`ڶ_Hv駡/_ѥm"CkuZo֭{}C0T035RjEUKMBj4Ʃ`xK`CC;Y,i}FҶGMm?8 mۃO{rs0)O9ws%̕D+RPcI<F|HnITs%l͜3e/z-)of8m&X5csCb`-oO TjzU*4nB4?{%yX&&oc5"`^mύ G0|A4fuTBB7̐`|\ӌ9'`SҶec/Fy%`6ZN eQVߘ򩁪z-`[Jri V* !X皤yD(`o4PA!Btm18 OA0Bڶc@0jlY&`NU%-y5] 5aY|Y LK!'GI-/̋4^L\rt &wP=1J2☫ L!m[I)XW\C#L!M][XEnQY,D0A!m[1/,H_X&YUC]ǭ>3_(ƈbDh UP~%`EqWZ5dv.p&F*čbEISEҶeƑ"!պ"Ae/KƚO`8ڦX(2&X#|ChxM~${1%%*g[! L 2`*GKUnF)1+N`8:) K_a.Z1|%*bL ֈ *)^DEy \ߖ x2I0հAK ~A0$X6` WGgEqQ߿*bL iۺ i2*;]]EĔU"1"A1N*6}zxYKįR9~U`\({ld3kJ6=:m|jʫw2[K ~uIy1 ` +F1nBʷi.t6EN(×ф`\ђll7}I.ic'N>|G Ҷ[}{Q&46c'vzRvrl}պE*Jx&%Tp.(n2ʗp1,bӢW^}`?TWKIVcJ "'F4mmC5ߞ}xoUrgc}]TWyPE\neaϟ/9VWHde%\@ vS `gw3/ 7EiPN;gOMl7DSGA076ZEğ'ti4.4jO KJS];`Xi| mtz૯m{Ï>ZP;zod>trt?3`cܹs穒i4f` ,Z\lV_d7~=rڶin\0l9UsMӳMg6Y24y82MZex/1MoD%B-Ƽ`M~*rLvO _xڶ!Hg&mHw0`x9y<wiMocgȂ! &4A4Ŵ7+%j=`9)ީ2^xڶ,mNg=`6w\}y&7u'KD-֢(*XJ5杢"XB#T+IH/όmUDi~*bmW7Y+Xgru_ 7ܙ7Im0#XR݄m8" I8%T+z-osr5-p+mx$r!m/ɑ m۽ wlC_pdוr,LOLR0z V&˻3̈́`[׀O۶emѬɬܒ/e:_sMB~)35Kyoz^[NmmOڂ-G07_9n֎-+ZUrt+di~3>XQH6 ᥮Y3eQ1 _K]EcT0눳GeW93$XV/yfOv€# PEa Ro"[4E ifÂT1:^`bf`kn€`O8q;Nڶ`!mcT.1zhvƌm1D3Q,ؕ','._ѦmSN`kW Nk|fBQ-RXi݂>9OBmA%3(E|~ ::]s%J(ǦMsBf`0sKmĈ@ c3Sh+}L^La3 ZbRqZcj`'Pn6  ;9605mLmm{0q}ăuGx>r|0?C~޾/^W9ǩ*D.ejr \l&`5,t`G ٬`vT`|\EضPδz:ƴn}rޒWꋽKo^VEC |xHOukVO&[}ʬ`°jiEo0 9Ok1I2eXK**#.Fm?|qm%RUYJ0Fc̯ +f5fݗyOM(+Vͣ|yYD0eft!@,r(Ucj25'yA´Rm'CI pN$ɕ`X\(%O*XR[`3N?G1/#8 vu)UUXW<;zff g`9[ϜXN~W/C!LTx}\u ȱAϤ`E gy3%fBGN&Ҍ` X\v(n4*j!Ct:=մIuyw]MZ1fҀf01I׬Y k1@gn&RL?[;bKFH^k·m2.& ܱ5߬o\ֿ0j 8)I<)G"ZLWr^>LZuĪ M DU7 cE(*NGRڹ03\2q|tԙ=6&C,/a9BЫ6H/ckg{hFL# rcUxI P%[0`||ſ'-^_>"mт-'g>ѬK ,èqQdO">pD**kIze=˂e}N@|;c܁}Nn I[J1 fXT@Fu1+-1'VVllMnWŰ*e`r ` ۷c>+1ID֓b75`gyv* yf&9a|/ O3Iv Xsu `.NW_ d `P F s`r:;0 )H>ۧX f/2b7ke V'P0Od]0-!0swH8GӥB p+ j& Jco{V|07,26'$a0F;`xQ&N/"b3N?Ɗd2SV؋ras93 9&gM*/z:@%#@&r g Xk~"8 +w$բŞRKMɨeD4Kp ק`!1uy3F;E̯Ĺ` ՘HBaaؗ ЋnKcX ;>xnq]*'9{flTĺžj͟``2;&&6yX*z6 f 1\ǟRmyhVX ;;D0Άǂt. v gf{Fg8zOX?|CqBM{&&go=\t P.)Xwys .;|eh6|M |0,x`NQQ`̿MZ?{4XZ_5[;]:l}xon+k5lїJ1`1l|0F0UTe{>Xq#&XOG3n.ة-UȬB鸨:wwzs H֭ML2/C1ˡ`e5Ƀm`o2lĬ90 R `Bݻwwz.`|ZAXITF0`K`=U~RE-`á o߸sa`|67Aa>JnQș{v]>637h7l&6I\@0"`B>ؙgJFKF `30=v{Ínߞ$Y#u/Fy`T0A  ݌m0if-烙PWqpxX|UEcuL.]n-(VYLzFHXXrnQ_wzs>z-l~}?Y}ciC! `8$8Ft?U~ɰ`im%)) [C1烁`0/`Uswݟ;wo 2Yt]tm oٙ6݇@8WE'%ly>BABsPee@@0oP劼V:k`b[㳷疜OZԈYl;ݿ;' " @uoPcBaX0עX`3 a3+0#J]>$Xp|K5`\_I?ޟ:T00֦S.ިg ox#&^卯ZT>晧wXpC^ a`D*VpحD ALׇe(F- )( $pKj?\:緻`)"_w`F0|_zROj408 ; ̓#W;Xr+ښnU5W`JRCxU7i# j2WXp.z Gd}Z [چojҌߞ `L1/EMffe}S:@S'eT O &*Vyzt;OKNk2 n+>;Q f`!N[TՇUSNភj`?ԕմ .5ם9/VpQ>+lWEn޼y`;$ ˱`ŶW烹9,CuRu/Wơ¯+.hr{#*Ri2_Pe8۲$Bf)((nN(d&EE\`kTNrvUۚZRs5/5*LlmtnI=(U!#>>0pkEObt4N-J5X4僭#,M"v;PA~X@- BA`'Q }NaT9 f̻>`b`uK3`ʨ}PSZ,9;Nhg~s8/"Bi* 69 ۲ed_$|0wC0Au<" kbD0*I'ߖ@7Q^zLwhEBq#l]>!`A qAApU=aݨ qۇ5 >8m惉sa\j z&~Ggg );C<2]EԸ`{>2o41fdGy̾[3#LJ"0';rĿ$̅qsޕj$j$Åq!qLw`mc="-/^w>3velrKG:$^,+[Σ kdvQ b1l#^a f962;hƙK},+[`_>ņ0 , |#McA=7ZxWі*:ӻ {cw79]))plM{Nfhjr"SRȒ^GfJGI,^:;=0KWa1g'ia' V9N4YYldfT~rR323pL#VmB΅Tg˼- ;f:y>Xv/@,qGiKtR_&#r TmdXʲ`3GQʫ3c3 F#p0ZRgx1~l˾Vz3+/-^grN$fX3l|=8~%g/A #lmlwGfB3ru~jX{tپdu=*2PܹdV90l|r@KQqEK:;#M9b߃Y,pr,mڴ ̱5g~h++Ϯ(8m"!'AwzdcX2:Auȣ#5-Ɗ[RL}ǃ,,Rp$z a$s0 ņI, Fj:oT('͠~+ Ov5^aBw%KJI$Gˎ%w|l O_Ʉ;* *o_J拻/,`:8UqLE)qFc2=~Y /^0$;EVX9GB:K6qL?;|!<nS&0_p~B_JL{0Pȭȯ>a#C\b|\BxvJn ~H^RY#%$4=7;JW Eo)QYC%3ef©hkpec1ćp@ |8Et!ݧ%X@~{?FI4EV4WiU3GV[9 r EOE>7u&mM/ڰw~H`$}iY[[[0>c - Zt0|FV E Im X_^iC&>ZݖQ@gbyU${V|hX?z z9sy`W] 0ռj GO!`ypyvƷ#\WE*lWX[kf)+s.0`Z+{Ѽ֦kީq*{M:`=`eY(;逽s^HT!3ȼ}߽8i\ggK8U9( *'Y/mtw>:`(GXBgPRIƚ8lN.߭8i-l{008 2[2e)0\_E L#53>av|tS9&UV'h/rr", Ut]zO h;Vԫy)L{K8I| :Nv:$N`q7O"nr- Y :;`qΆ&xSۺv,`vwy̚ P)F`rMF+5v1`"Yc>Uc0ؐw] Z '`_$!XG5d0TAT˾㗻u-?6Y%g/РJѐY|\Y#_T0 VqMZo`M{Ӄ%`c)txl6*hK/e-lU-?`=Xއm06!I-$ fC !IGs Icl+kӒ(~.23,$ɽuxa俼;V RAYa,`m\lxL+ʿPYiQJFEA$@A 3 D3̞[>ɲemd[ "X4`f^o޻=M,cOF.lavvvaY^/3rPၫ_diE)- H#qE0b1IqTeId  *")jǐM,T `w8~w80N#VmS'n޳uOO'6ԽI+?<`bzgiE){UX<!"ERlm 2G〕ì;ۊɺ (3 %[;/X$˥N/уIo ؇Ճ+`u߃A0Q~o6l{åon++:ppfZ0|P<XDr@a*~Y0|b5&)1SJ+]udMtv=dTek2խ?VZ}=9CTP{؅uǴjjO&4T3-JI % 'E8" ,8@؁ ^`P#c̝a~|t).%}; 1_"_| b9hH+)yFDZ&-5qq^H6ӢL.bma{]Pz ZY[dm*!Ŝ*S!6YgtAh@qo|T<萨3աJG켭>lĦ`EխŕE{Xo6l71`!9`/.̀jE)VPU.O y`No+qLZWҏNucYP $F 7rEj526<34H*H3W/&RE1/=r^ȑG:zt$`oV-"♯ LR6즗O$d,SKT켼YF.PnLX49}A [mnz|r *VMƹF}xhFPVд/뗾8aRMW;@ii}ZkdMH6Ӣ*jt/x0ޟu.'r'ƉGj+2peq_xc$vr l "1k`=wꭢJ5?{<f^56@v:Et0η'C,OKHCE-`yQt0P~LfA,˙2Vs3#qD[#vW6J ʒUꥦ:/N_Yj[0[^ oeESYYVyg[x"ƀᡵYG I'ylB΋)vZDJpi8 O>iz{~JKU mr/Jvx(E:G!P#Elt`^缄.{yޫ< +c̑~#PȠ]FDz//AËTlH|36i؎}\R x7d1bڠQ*XP XPB'&^k=,yVQ{CX㟣1VMKC^ p "ULQ+d_0Tgt7)?켭xRze~ 41C3n8/Um;1f"ʲb8O7J .kʣbc !`k| #|`;vyT/#WVEF ._a,9ʁ+ZP`1Vau2@Y\ `@P Ė66b(RBa:`Y6CCdv*X-O4O)i;z$&3F80ơĽwAxC_H0`β!{LGUGP],!F% XA"YG0.T=m7ru<2zym`[*R6L̾hs7)* fhRH< yw,RI4I*;`L4lgWfiE)SUͶF.>Lcm S4k d%戬^t/38[Go`>1' m7Sxpdd@ͣ<}Lk%KW,u htNZry.[m[y,5R?n|7htlƆYغ4&/:EF}p\`.!+y`]ߙL,àaMߪy{5R[t$msqf6kk[X6l7L=@nʅa:Olqsiᦚ'WXߚ 5%逩.sצ-z^?yO=W=)ك sZ?M?̚zISY^{7Sϕ6 ؓh;jSؿ{2ez'S߅7tDuvߓ`LoFn}FoS{~p&RRߏ|bd$".QnC3Aj:Kz/.W6IJq!/-A`Y(9#9twa'FY&ߜ8s۴;gv`HvLXry0u\@_>};4Td,{x&oGkWNegq^xqsfe0+/r,9;U˓&_7, ܊ %yn``Z N\_z?+RtiE%^ka+&xBjX˚tr( nAmpiձ{\$s<ҵSx`Sz~x}><3JL/9R#S}RRg?|]~ 7&,"_5?WeJ$I / *VMƹF}xhFPVд/뗾8aRM;`1OWE,-: LC+'c\ qѩZm-L44\Y*_kj\5`-v&9 CFc YZ sVȍ?{<f^56@`bG3!(.Jo sM\_}O/DBN >o,):OcAX ̭@XP4{,rJl(gƙQ DWS0. @Kq(h; ۶hT-pU)OaToӋ{]7۳^P[QzB\rΠt{VW,z 8N ;Բ cF$FXx44TKi髎Rх w"6['!r]J]23_ ?ɧ<3׀_yg%H",K.z)iu%PW/0A`}-TW`ė_N&X%;8V%H)q81'eyCzEJ٪RS|}qYVJǡ_kT`#96L[=KjgGU怗`a}َF?!U_YJBgʼn+K` ~+ $xtO%}Vzc,kkY~<6b!?{řl!ˬp wf9zKcϚJ[#%A6z؊YO[SAO$&f<pyv3,;g'WggLrI" d-/^ebjME^= , S:[.<=QhǺncTx3X~i>!Ne7Bt 8@w1PS~"%πxX0@gWE$k3$53vy$# щLT=`NG{inedZtQH&tΨR%zIOM NʨR6 ~"'fBCמ~TןfFҗuEsDu[dw&ϲ4ȟmnuaIܸ -p 5zNrʎ')1_P $B yWAmfVQh2ΨRu's%C0y.U+J \F.n],:fgTu˷wjtlCQ}L݌L _ʗNͣBƤ[Z۶PRu=yd0G $aLկO00K0P512+!J #E-Qh-(E.rtEbѵb!@֖[ @xcC آSR+C`6FzO=01XmaT)DSGJ19'ILJ(=0i9:T;v?t7+Mmd̒OI!\ a V.bM vUK!b[!@"@Q*/2q-`h]T)6Z7%Q:┢JNy%]';vă3q ۞m.}wfe+Kx9 C̊|y ci`@>_oHkdyɱPS"D+]d[T!`JqmRf2u T$X!%_lr%yX v z)N=}WU4Aj~z]If [^(N:L}u tkTwi  =yW7 @96EFF^NiizEIf#`MPa]!o#L[᢬V{ Q["v+YM36^P/ɋWfWԛ`zpI>[n^ۙ:M6\{&L)F98$e+3.|b3\qaυ?{v(vfN9.qO/LS|'[^C ?+`#@?FLf0`3\>B]?3:MD/KޜF=9fLqjBeMKޜ>ءOZH$^N{.ڑ`03g<4D`!뜝ӤyK,4 MJ0)br"xxy\xaf/կP?03fpyy9qC;ӤyK7g3q:L&YA1e?-eɍ $)T ˵PoT҂F9 f_.f+7ɥs]&mZ,,'h6pya4Av(ggpSw0LSU5Qj_ײucqƭ-> h|W0SԱ $юvJdS3?;XT@Z&K3}2N{bÇ?\GÛAu$-=e 9PxqqݾEvr~/9U .s%ADnꨓAu)K܇ŀY^b7,d DOsAl좀;^ŋG}oTm5<VV6!6}E&Wa)KGfyl}TGP ;Ȼn'~l2nN1}ȵ Ts{ÚASl 0So 0ǎ(f*\+_+K pߟGT P ~|9V˼29v]열  gҗ`c|88\0\C-̽*%TxÛJ}WV jPcLZr56słEFRUV*h7:ԗ/5ٝٙ.g,f.+!Q;f ^@|T8;#> |l^T)lC5۟gZ>_Z˜lG\2$UdJL,CRꗼ 4֯IW0;P)wP(+L'We㿰7J{=>㮫wvwsĨR؆j{þн  َ*e'=a`|I툫RgFar&Z\&Pzs͖nKh x frܫ\ V^~URW k-OQtmN}wG_,^Ϟ3\kX-W}c6= YOQd "+g0Xsg~*J{0|3#yT1, u W`0l`VӬ4WX cz6~㈨R|I|3#!1N;r*]}_v0a{jJ!+J{ W0k9̏9*2XwvB.k3Xiu^~ =a4XDvQQr҄JΘ\B)z`0DD nRwyVvaaO9GI vM`CgOEii1n0ɦH6=d0#"ldCs8)SEގ)*ȦR0SM*m*ȦRqBJaR_`G6E&G_ h*D|27C RC0ȦRO?yJOnSJa`Zd0MQ/ `TKaQZmNL=$IlL*a3QL*o#|{`فd0 MQ>bڣJ`F66` "J5]{TL 17oJF6B` "J| FjQX?} "ldCs8)MȦH6=d0#"ldCs8)MȦH6=d0#"ldCs8)MȦH6=d0#" F2 0c l+"A F!@`!2A F!@`!2A F!@`!;:߾wW1{b 3Ez9`ޕz b+^fG6*~caӺx^2Y?0ݩC-l?*C 9yӫԡucZୄ%-l?* <]Udq?+TWW/`#k 1өc-hM~SʶߝQ,fJ$V2|\J^+x8\dVri81q׶m:Ӫ^y`C!Rk[X/aͬ'lͥybSz[kŦfԇ>d;ooNǁyOsh> 6}>_:[ltLtLҽ| 6s<ם+pwǁ5ov्, 0UDUKO%TBCT!`5m6ŕM1u\vK{DĝIo~a|o>7w8;-_%}x^`|hlR >l9T]V(9o1JHI=wJ0iN_ ^`֫ƇKf ̐u6hŌa4]O;˧tI̚uF%"-Wt:gJz;Szl89 ..`Y6D> T6kDADs؏?L )c )]ϴ 6ف`/0]L %Xfrb&xDis eny2V @ AiztU߁`Fp &_`h,ߜ|lW`-^SYF76ҟ/+mTh6Ji'#WM2Hi.fe:I뚅N).$ &, GALX,6&cc_2Ys:LĒ*oeRH!Fs"^%," v1-mgA0_vϞXRgA0v9FF`MKʃ[##Q{B A#RJFFyb#X!{ v J]]C s` sw:EY/bW~H-j  6,m?;ƹ cjQ`I#LU׈p bʣ=B?e6FX>"FPa#U0]kQ C08l`Z;(1*.-1*.-1*& ++`]qK ˙`BqJUX`s$PLhB0p<3X\}XJC0i` z4!Wt"`?O%be jB;z4qs yE' Ƹ?`ӝUJH0٣ WtD6*5 ;gBfċ)X,B0DcQ{N4;YK.gt"Xzh[`Tmz9!\a;:,5Ѻ F'S={)!Vdci T& F!ZB2<"rK̥'9,bw``````````,ƻCļun޼9NRR)R-|ThJ[e:4!N-|3nmD&ļ %5Dt-   :L@0f|G0c`V L@0 )VwsK@0op83XQ`mggiS$2`&Y;J"B0p.^cjGTln7 M0U;JY!J? wtD6I,m#xY# ޜZ"V5QiA!`S jG)yU;J3@0i)kGI0ꎝls7G-B0op.m` &ՎƪxS`Sئ7vuVh<(m=Zm<Ĺ`vETlT`&U۬Yچ`ށg%ʓx[@0nA0VqA0nA0VqA0nA0VqA0nA0VqA0nA0VqU[b P;3G%G~>AhG`΋G'>A %"Y"&S1{RIypkdqȞZDžMfɡ'FFzBh`  }XШ=!`̡`{Ē=Zucw.&h]nddNw>iag˶f54HY=$eSeB(mK 9Xw H< I464BBKh>&3j&3dl輯/呍Dz s`ODz #%s=}`Dʜ Fck*IRQޑ <ԕ vzrVjccW`3L w_ [&BqytTp>0\}G0Qz;EVwԗ GISj-=Пvb 3 hk&Imenoqؽ{|~EC-YG9qEGCEٛHv DQ:#zCj3 =Ycb? m,ȯND-[^అDJǏB?Yvt{TIQ|w M#t4(!pnȡ`MSlkr;?[%2VgRBnyaWO8ң$ؚ(=~MxQlM h7PB@n+DcBa$ى6mS{!|唞DW>߫X?yG0QzX3V0q$C.kF^c /J4ˬ%w`>AWL%ϿңkU``l q P7%aGa$QIJq/KWtJDa3." &J^E`€`( &~h,9l~^0(lkd2N a/^׍iԲ;LG3 EZ&]{füT& v=l`lb@0P0{0o&Xq ؊ A07 =lڀ`W =J7ʄ`l `^[!a4L!êRK96<7ټLb/T擕׶~^qt=ԥOVgS?N _#?y3̿7V츳Eo[K)'۪)ڟ3Xt{..zGH D `H D `H K~|"v@0$$a=FscR .:>e6W* EDs~dq=` E7 7(6n-v-hϟ#lV~PKM-KIV1NSf[s[l(Lul6a X{` :p!1'x~EJ Y9ϠsN# JFCSrd.(T%)!$iYћmv{֑7LPx.ptH6';S BJX,9q%tV*xJewtA#F:;mɅ$|1=%XE5t6\n(X)wǴ%ppZ' =fbœn-|<:2JtF)8kkf5m"8IAgiҫg 0 Qlٱ(1 `#.\+e #+tB." ԬVa ->z|T#!1 'nC%'e֧KSvS|2h$IR'Dg*z me!Oέ4ƥ-k Ӑ{6T* M~A`ɎEw'` n,XރrSłPHN0f1T3%A%rTq FBGItVbtD\<62!:S-\2ʛHq*4ƛ$#+59V0_*0459hTE%bF`FDvDt0A d 1XE%c_'gKg+W&%I1W;iLڰqIi.8gS#8DiE\C` tT4Ff8}aQQG$i3W,8[661,A2rÅcWGGB#RD^:<ph6 =ɛ%;噶JV2u0e[8ɒ>ezKhvӧnsX,L0Y>3X1=5a`pD۔ VbPsMSD \Pr YcKORGdK7gP).xX~"vpKcS'9̨nlva,1tqIyjNyOWreK[tYTinvDۖ63愔'LQƵL?rfb_Q`CEȩ)!QF3|:t5 = I q8&5 ʐ2d&l]7+wO>;\@z MQ&q! gu y4D:цҢ&؈ޯ Md.c냰;R]UR],JYݰ/eML? r0lm}pW8Ú:2S`5Lxw z^?@SC~T],JYݰno"Z ދp&ɚw232SK 6&D &6xsfHȸZc˧RV3҂:d2Um}jݚAY]3S`[4#%w'{i )*uvl6)K3ݼϤNÐadmO~ [;YǝP:)Uj &f+?>X8>nfS)tOoDG2:<'),/#'0::>@5Cp8Ű`ώ\ f`UV;R)6vH?vܤˀWb}g[=z5Cp8% 0NPۼF6af\M0S` W쨂mp8e =_4/>xiSfՒ|{ S!u.!lç`G 1E&[ IpW[D3WE-,XC C}}}"r&X= f $'م X> u}qqb>"ƒҁ`5*U((/~Cخ^,Ms/DN/8 BD$?Y^0zm[-Ul(2zh/,- ,wuDJQ$Q/S ;i}}" 9HP|!_gd9i?O_ Fׯm۶,~{"U%1 _Pp u"^#UI74zOcCb>W[LODR[\`)i~V~4$KZR}%V`lv~loXajb(c!V9{ `I&kbO*sc}KB[wXݥ;nڪ%-ח+NU"7OT׾Ã3Ã2" Xhx%ǖVU@a-` 'R&ڜ&${^}u_ݿྸZk{0<`Þ^k?>[{=` E%S43  賭cե٣ӯOn|]<+bAWr̛dE{=[̞E>ܷ & bԘ(IOꬢ1t߭|t`UgSGg1˄`vCr录2oJD>V 2Nl`o@_?MM$$`~Wύ6T3vG F<7zwpqw#mG$5;~_аþ/JC>gaҪ7/6o dB?/1 ^`Ύ(e Uѷ[(<쬢(Wrɇ`iiVvuva= '`nŤHJcLz mmΞagKISIKo4,`~ʕ.]:YtǏADhn^Cسӣ^w!XR]7_v|rdE /$`؁_Vkڑo/^b jb<5=cc%:{!1H-z~?ʯ~ ~˝ 64:?2X7x5296/T| dq{F3O4.bt.^L/!X AfK0@v 2+ ً4.p+-?(XYy5509 AfFeϹ`B2hfٲjC 3[#XSD1 2(XS}Qg y7HF,=H 3";Aq\,+D?Gj-0mq-`mq-`mq-`mq-`mq-`mq-`mq-`mq-`mq&,?I 4|dޣ l%f4O>|gc\|GJ̞+pɞfǗ6 &omT _<})H}"4%nX5uamk""3Da$j) zs\:{44,#c'#M{OTF=,3hA$4Ƨ`\4wD', Ra<>*22l 3eE%Nj##ٖB=Hw|͚ ٲ6y 2׭ Ϡ}(=s,rH9PA^ec,WReV˼ "P ]<k.Q+ +`? Vo$0h;:Azx_K3.rл ȶ}WIR9MDy(zyzx#(xIȂ%#>ݒ *E)6N )t-$kY>z/L o[4x Gjz)w}<&vN MUNA]I؂50uV~( Unq6`2$1u^K$\N#L0 UK-=tvyL̴젚10hYF| cE`FF` fBD wZZ|tEĄ(Y}5o3w6 pbM!`ZI|Msh B1ů 5Au 􉢓:d,! (QeVUPvRcڿ`T'gR$n bM5u vILe^қBAya9f/_M7LpRe1<&p(Y\#x2tFKRE`ܯCW$X2U|*UQ,wY:tRъ̢Mӛt,\cg&㗔K/XEv)lZB|%L7Puu.pQttVYh݇hΞ~-ቍ-deٲ C@IS0Zo'p`GV=b_GO~1;xN-(`b529K.!tK/K&h}2`4d@v)h2) eұd߂)K*&i _s(Aݻ!SP1m"ƛV%0dQ=<&IhєDB)t VhyJJ'_ό}}_)'%X,9hT>X!<ֻ`ܮ aweR%``#Ǡ `c(`6džrd,}!t JzÇsG>+(ْ }5 ϗغu*"r#q{Ҍ#0\0?8N&̓G/~P|̾鷁%Kv//O;^"o9lh-헗.9aomU1#̙z4S4qhC tiH8~yzչP+F_ Na"K%x'=r뚏x%K!dScf_[s𵃯J5eoL)ZL_Ƞks `|Am }cqA"єZi,a3={Zۏ6mOMi)c2{##Cc,Q)e 3;o݊ ff虲`덜kX#Zg1kr&ХUc]'Meu F zjSK2FffK%!HF&]&$%),lNN " 7H*E=ql@DDL,]8z\ C[l6іaB *Gd90I#,jŠ9B-^̯0wYb[23VN3h$rs$pOFMti؁/رA]/$O>(pV \y|ܚQ;v^J!xD9Ӻ F](?rYws|{r`MQI"ӊ.A8>q"C V1̢5L*֯6*ʃtIhۇ#xٳcH CkZ,l6'$H1q|&Bl_B*%(XŖ"X57,m/eRٳhE5Ubg+J:wk7"tPݼy͚I?2 KQ!!qq1fZlL[.5_}ե~v߃ ZNx^ tiȬ~#8];Mw9f:eI3Ul:g%e fN#sMNNef}wOolX`{F1T*!n W9咫مM +.I%ͪ`z,Ƅ`-U8kaI!,8Jދ,KLb(TiJM D(4j$(Na}91s~:Rʐ$KrR_I!SscGˊI2)J$X VJg+.4 +{/> I0%_/5>qL,온HHc2"!,P(X$Rkt!'EV;;.X)*VL-WH)Ɨ`f FQLqۄq² d$ 0Ynnw> [ ӹ"%XU"txN4h<\)#5f#$ bYؐ?$<NjZ`?4N]0C D$' Uo1L$P<%24҄klbZ1XxXdO($&,+%ޚ޼!11%%$IIILDH]Ն)pD\<ʲx+`/ɋ.q:qĬ`R4ip]QMF6i$+T"Z*FJ-[+ػWht'ڶDM|NGL%JG)JjJLo`ӺD2ޕC4Q `Aee[` EŤ2NZ7y"F!睝ZR7{^C0 go`,4 Xaq~"6lED[#q`aW>\;.s_w] 6/XG-_ Xˢ; ;g.,X* @۟| ؑ` @۟,6f`"ffjڳIOÑw쥳`OOίg4Ϛ64T|Td?M+mnᢧPS;;-Ŏ]-eRǨANgimh Iլ#wԳщkKiEMѾ=ͱP5aYNJbxע̛)_fm.*HU݂w|"aJ a8ֱ:iR&:RWfTEif忱0#9-""7L˦8dVQT. S@^0hV^ TiKY !N⦀} 9_p%`4FY3,%rC2Ђ勵Z/"L,Mdk-4 HQeX&Fʰb_Ε`Boarinϟ ?'-Űv7L)Odb*X:>_[Hѽ Z[f^>`S;ZP"D ۢ l:-~<a&r@Y,[Xf#sDܒPlbI+e՞ɛ+v 6?̠`= !bٽAS;c}v vD- U<6 ]"MYjE{[.6Fh0]DvޤK#Fzy5lĂAyT97TxS-ڏvD4r/V &-)տs4v$KF{EW9N  AKj\'f`cZb]D4V]XT a Q 763L9,ߌ;G܌j~-{9XQQ!x>߃i0JkE߃k/+7 dzZ^ꁱ#F;-ב_`MW_ysV1haZ} Żctu! ZRjFp!+ I6>ɀ\ri5|F)ւMV,1kF"͡`aK bKSTW t\LK&#/@5ˌ *m6 ) ^LO2'̜q49EcX{f!5?O̟~Vwfv>^Bw7j x5hi"XJ9ߞ]w|x55ѤsreW%.^,|AbMRc/.+@`EbO ׆әdܪDQ W~8bZh nY#u{mpEFJEamR,@ AӦ]ĕރ/fys`&G43J[Ex~*z ]Ӟ9:tRL9j*扚 =7D.0 ,ݓwDX@u6i.z[; /gCzshԂdQL_֊ Fu>f᎕ 4LC?4م2&bS3ړyXh8@czjzPmEVx}Ai7`~?`?i-)>aY顠U#|b(VݲHi.{G*YыX`V܄3͚E0 1hL2@ƸEy-Y_{{̣mn>XSrLrNUr/yv\.E#Tf`-e&Ώ&"Ux?NsE#"v"G08d rp2gtDiR;;;y,//˝N2uzyo'5fQs"nq[0oj"6rT-\`֠`ɻ1 v X z4`Gm`c%~1o3hNS)%3Dx-a fϩG7`kVz8fL.JS:=tbELBA #ja7SƠuÕK T (Ĉ9aq*x3G 6[K4`C_9@ؾdpђ2YmwD m7vMXM Äl#2P1P4wSrm `80n`"uSJvl Fhj=Lp-FWl;I3H  &c`+38H89Ub#ځD֢ NfÉl n/v3]힥ۯ~+ `sg/1\z7aLp,wG 6S XJ^p/[<]llm\}b4m8yc+N&Si'#R &"T U/"y뵢:ihuWV|ݭAnaa_omiۮmanyt^)5̽cӶLŐMjӧm`7l v$` ߓ$ͺQ[[@sjQIoVɓ{9Ѵm +OaӧmkFZ%/9L^M$ 91W+B7vJrgG@Iu-w vuO\,Þbv+-`9O8g笐U}[oY~R黈eȂpO%X ,7TE!Tr06y1`z=텧&zV9􎎎,Qzq'%&(P4gL) D y4vp9k.< Le\Ո"Xr*s ȯN/Z4 +Ɏ3i zAtΞ5 #UR)O>RIGm^/#`HazǏ;'"#</%r$*Y vBd6^&Tlq(t-͠`ݍm$' ^Yx#?΂|V`aoL0V§"TGQ@-JU8"P/Jр*TCXܨIriCE n[ljoFla1΂mK%0;Rïd[Ҷ8 v6Q#XT͆#XhPmK-U[:Z$Y-1M %D0e,֊ /0 b;~$i^0陨{ q%'e[faa8luR~fI{04i"\`En.kB4>A!aQPⰴ7{F-C v / 3<:}Ų rxIٴ}D`'SK;)ol?h)ǙԼm"6dVoL0GwJr J. %&9I[v:eNdEDzaO5B`HBn^&5r"9_e!D+N+A D܍`OwR|3?MvX~R(!m8)`+ FA_Ó+_O)vA.l8ZKRIpuHjHh5{+D2cH*vLP*DE(K/?\(]A!ȃu&Dt-[MnO0qdjDϞL`mD0KwU?~7}7r95G+\Zvwx u\;uPV++lԐ]h4L>j m+~=u0eDȡAcW?$viM0\߼y")takNHɓFn$`ir<]"Y 4KyԓOFLJ\W^'F!'L]HMTv曩 8uF[_F 4 YT8`Cf.dX6e%(S[זpD+p_.…dt/w.L}=w wd-[=x !+l Gshwmͯ~+xT WR=D&%&uk&#|rr"7/])/]~yEϊ|#s:?dd|䓂a.wmzGd/Re//㟏g'1 bIˤb RDcsL,DKKtKr`c V[  mn7|Ҷ}ÙӶ 2dyZ0ß:qb#lGL&uEJ$eH^rD27`ퟍ|VTDWΓ5Ԑz*NrŮezmG%JL#`Jf'~Uʡ^.EUxCID&H F]F1wgKMP0?b;TYNlt]SM0pykm;DZm;w.m[aU F9 m[~ϯucIu7` oF\OM_{euW_t?"RQ΢j(<i-`ͪ`,RRϤj,[[<ﱑ?tյe ]o| nH..e?.Zic;%P~ .д mۿĔMVh&@w&/~ bO#v$>MaA=`@#HIBDX=,YVVD@>"ތ"XEEۜv 4 x8A~H9(AxY*SX6ƒ ΝդmA>9&b{C)_gԌ{&E:=dX!H=8,)7Ks @N1$3h?@A(ڱ%bD88(_0,=9iȰKmgfd6MN#h`hˤf̳PѤj AR^"I،\I} lRk*̒j1H-FT+t]Q.vM'Pmc [wH$LuV=Ml ʻɧҶ7gn_xC6s Ҷ F/ǐC x&E!ઑk6&àxGXCKmZo~vKm}ъӶ@m$X ~ x!{'<)ě|5;$ I*2d2$jSՌQ0nCq_qD UjSorT1~ц~4ЈR&HR6L!AR8Vnwd+^/h& f`H+% 3\!!M @6͔S4\!,b^ĸb^' ZW;Favƍ" fM̾W1HW"w[v'0om8$`hFCnD)rӯ r> %XĜˍݻ:`> uM͛%>ISM6K,h"))ή˱O`EkJa};~~֌x X.^X?8HzC; h+܃"X¿x.歈rG4_ڈl;HnwGϊnv_6 HÔma)1~yA2fq\{LJ`yѰpC E)B"(A4hd8q46q&뾨;,\L z\jEvzN->N`.8|N,@qzǏ(rjv0Lv]);#JZ`g3\Eeqqq!=`}-ʻ=KK=_V*!jUUhT專E׌]Xl$ 8r jʱpȈ"Ip(M95|N,ڍHWΊf* V`\ }Q[\im^FVڰzl vqm?`fiG &{i9gQ3Ԑ\ 3:hn\~*I%XULױRB.< 3BջEC=%1tQ=bU/WTBLnw_o`t>|ݭAnaa_omNm/bFMfݻG}l"6`]^+ (ќS!+ih#4ݏF6Q U(%ԢR6#IB`lƀ ( 6V*a܃eL}Qj&R_"OO@,=i~LƐ-9LҶ̾<3><Ň`aGSQxu(^D;5*\\BR,iІrhPkV-aD,;n&h Q'QzL1*|HZHDS%Q(`m *ؾ84g#d8('3 7XEUSȂkZjӗQu)Z辨$%&@bm1m0"mfiJZ=Xx2;?Ss"x+\6 Kx1|9tB;!'mܞfO tM*6f%M0Gl1`݇1k VV6 a / gO29;57,t~ib> G vUGYm9AiJYΛR@L͔rp;֬enfQ<7\i ޷fI 6a;9}kNw@'qs帄hMi:]U0^+`YH" (`2ewc kx3v s0ng:rO@ #dc,XtFT1Aպ[@*%Q \hP0\%R3Pp3v3S|0ݾ3p.ݞHuXf ګl@ų6X$o} 9$Z!w/N*ag&%pMIњVgϓ" ZQueYvrz^'Ɛ''ZaӋz;&} G7)D(_n7HhQT+7x `ZJ{F`eXuuSX{/gֿy'feB y|]yM~_ѺC\#b^j fͺ%5u8_v}85ߪ5*jM?]^[{7ӳ H&@+ne~ڢA/}`z\. 1Ʉ_u`B2:=]4=7 ffC3:8*Q3:ko j;f\.E ˵m:̼`;~O;l l>O2>+vl)n-ƒ\@z7xݫF죬 0q:,]vͫkw77,ߩ9i<#pZChel.*f3XTy==mK~ظ.T[ҘE3pM"ѡF%ZW$NN}zb[WsW7 7C+#dD~\}Wqwki1y`@0íC|' ԈJ%Wq؋s34^Xq5.ŖVxMnd m_\#)xقY}Iq{2YU0'7}y..,El 3J7,6O1-Payd7 3q>‹U_$3V~‚0sQPӦ&PÂgΠ^A M38Aq"la8M`yvN 2Yu{0)!ݍR/3_PHo؇p'\wRA6HCA4 ۽̙n"lK[L &QU- c,5pNzqN<#JxuЛ̀8,Æu'&;AcXáD`2%؞f\` ys8؋(B+j?Y$/wгœ]Pv*γ%:2-gy943\NL 8\hfxy.m vŽCd2 PJhFgЖFT.\4"B I >L +^ f̢OıY(@x \BLN"ԩ`)D&;`(hp ыFcct9d`LfIR 3ҊWJJ`iߓ?4,sC(>mƂz墉AQI~Œ/?Kl m4}%kS}EL>)'V 6~xEL6 ;W A<@<&@6/,$&&@.@m``̸v#+ T xK+Q}46st /!Xdvw]" ~u%``벧 ,>346bUݏG7vX `'Fr[9޹іѹ^mtW\m>%MU&ӂ|OeY>FW_@MօM~q&1 Smb%6mSض߫{H,>V0[pᤂ`4kQ2:c2-mc(mh!XF0`XRϒcw: TzI=x)TLƶm;z#qĶΌDm`~tbN``k܍R9`Ս+дŶ_Oۆ}_V&S]vx v9 {bbQ }ṵ4[V0smėcqĶ-cY0b'[bTJ@2`E;lݓ8瓢*X. K_>ؾmĥ qĶ- c(JV0D\#\bsA $۵Ee,I/w`^"ҤM֠5lgŶemn6Zl[eum빶՚̾Ϸ3 Y*RJţRE@lR®y  uK |pwh7}e6>= Mm$zl[hjCK{SKcLJ]bPC,ҩbZ~EuG 70&ENMߏ6|6Jm"lK9)Uf0)D0M9(ӂ/T@YtmOԓ=AtQ!ހ?lI 5H:/ T0 LĶIDē?+`&^P&X^%N8t(YaO"V股H0t˜`3-l"r|xXAÕg?0CybX8!N`ؓԋvVzʪ:MmC=%r){#ca v2Ŀ5,I6B5JSb#5t+OF ~A/!*Xk fzè$bۆ+Cs c(3 (؞g%vγ/'53 cg?uLÇ3-!J."OT6.X[_(Dlw~>jC0( F6^~`޽P1$XÙ @z%m Ǿ~`f$ZT3@Sja[R/~M4rTZ]q1gtO^Z|W*'B0 gʍ=˱4斬ݓOL䣵 x|@pW`f gm./$":E|t)O]>'ģ[;[xd. |w1ǶGEmk _"/!~_X^~erR2nYcn!r1pN4RLGWowpc%m/3yne bl[@Ŷ-79n>̱6K/Z&Vh5K`j\n8`SMDĤ`>Z98o/4ۆ3Ŷ &c $^gw-^[rjE2fҳf,0K"j5MNrh8;L/^~ض ^8z8bۦF,4m`ۖx=% FHdQz6/1%-,$j v/|~Wc#ˊHf;grIppon;Lƶ]w+qĶ>Fm]+,0#LDmI1 jiX.MĆ}lοPOMƶGmtS6)yX] `Z8%j֪'ޖAz+%j.W2BMDoҦX9;}Mƶ3mm&*[en[$q&ǫq Yki)iՂjD_:]*؎.vl5]jSE;m{Mƶ=cM8bۊX1rl[mkmCm0t{TFXR VKVj ^5`uIGsavm>G;\lؕobm'f"ƶBq6MmC0)t0Z.'X^7e]@֚6?1=tG߳xlĶiY^~ՔዹћufYmZm6=FWy%x}t|UK̺SŶe[NQe*Ғض"G jB$&-}GWI!2-5Mi,1`WUz f>XbRJXJaҾL`L0LTDˤJ%8[]Hiĺ>QïL.&Z#]c4;K?N͂Ui1>e mK[b FfaR E~EJz]ls ʜgQPyŎLToe[RBm-m;㹬s?Zy RhS颈蜢kUUg[ZH0.ƶUzTEFhVpL(U}Ѻ-۳10/XpJZ'|援c4/+6W&c`5eZ0Cssjbh2PQjh6"Geh=sW0ׯ4l[x+G;72=:k"M;Glƶ &rNW\0CvyVAvbFwlP%XJ/C\D}| a Zrpc6m#DmbGumq{rz$+hi4CZ. f 3KJގ  M4mySm:@05̨X1F>Gl=q%blC~ JF,"ǻ>aa`adKbq_~6YCsZCh2&Yyyyx7 !kB c-`zw7m9qĶOhm ~Y3~XCNtH՘8OY=+U-!<"e3QŸc83jBZ LLƶᡸ+60ωr*yTW01K^;+c X.v=T,?xt?o_;G~\0׀&l=KfZ`uq,F\&kTlxxcOØEmcm+3N`Y*#|k2  V^.Qqkw<S zN?~c(LT1)"Q ]?ũp+4~* ͘ma{llSQb۠X5Oz/ ]B׾uq6{RqƷai v2W39:jKPSSe  }+ ?9}xvgt+< \`⼻]Fr! Gv{vhܓ :K=pԮuoX23Sk9,M|!.aR1Նŷt0/_|z4< j8Fc\ %HU,8`{x6oQd1*caYE:GG-rr֪eOcAR2v` ۔vۦer6~쯧/^<xO܂ ,(^/`FT0ɚ5|,Y#xV H5կ 8>}=x^Lee%t+ l҅!ƶ6=lXHy3:5|JO@S~Β,*oUũ51fh 9L6k;~ou|y׋.w?8~#lFJxnzφ h.'r ڂ7RpRZ3-kh9e=#R755* xE8ؖoBaCL)`i|\*j2 pIN`XTe詷_L=XXf*my  5KEUQ99N89xf􏞹gwO%/d|X6&1O> /'(2-aS4CzAB:HE0p%-Vb'%6$lnׂ9Tvs>xk*'GKEK /PAyEνj-RZ~O?u_m^0Dћ7b-IK EFhSUT6bex?{<:ВVSx̾1<-ц+ȱϥbz_DE>`PȦIa [7c"fN"U0|&PZ0pska ?O`%hhh\p Xɢ"/v,\ ƍ`ĖFl^ / }} _76oU0XozׂqC҅sa(F c-ywM)EYvJ0T0l,+"A5cM,nqIW' _5K0lV8 L2biшj.!wg-`NM޶9 Kؗ_~8Ph., $|A/r?lLl ;"apʍ,>hJ9 QK_χcc &|0O`xZoׂf?S=U[I> q㾵Lx`b~DTCĄqհm"`@0rdK݇w'/O߿I &| /X R__m]m9?ؘyLOGƛ`4=#؞>ME/=|Ab..-H4lˬ<X>w8l!Cݔ`[wUWs~;ך_I٭ P ev>_n[`(,<ӷ`Ĕ`R L|ի q*ػϟ>zşn`p dVYÝKd73eݑlCD_^]ge>#Xgr̊U F:wn44\NO;l=f,I̿""N{ٯ2ToɍNeZ޽}m2Dsvv.MNMN`W`{>bF0\1l3{_ ç`@g9^5N__,q!,q r/ NG1Q\8H C|@ +V2 k:|0 %`=iȫR,"fӦ`sDɧ(T/X1F}D1|0`&뢐3{?G Fm];W^9N<9/O f#*`VR)Tj F(ݰq fE5H:J`^y(H AF P%`m3 `HfFpB\e2 دBL`?G>r"تƽ{D6`=ՔRͰK{^(04U܆ B6 5P> ZP" "y>` ֌ccǺG; ;kn |0|)X᳌ek%5cbO;qF_٣˃֨Ty !W_ 1г%=KA`? )`oK`& rM-_۞ʆ-vwhe3E+(<з`Zb!̽qJfp cF,?LJC9-@3Jo*CDq--hPbK|uw |:fR0c1sw +N]I +knnolllnu|f{{/U06sG7Ǡwi(T h l鋑p"h&hpі?p[A( u~McanLsOj ojq!Ƃq0"ت25JWY>ưKPJ6E a79 4^ ,b`!|0"ؚhGYC4?:3*yDނk& hU;[X\~ `Śk#wYD&:+;VjL+mޒ6Q!o`؅FL l;d!|LM̮(un_u&>`(m"JW |0TGt:V[‚ә׀^k!? "zFR8ut62o}!:\+0 ћ>0WZ$h$"IW L͜`B"^4kw,]s {E.ş?50~*H{E,|`c[\?o5,V$`Aརi vzߺGr`|`Txl9-+[դ`xh=ſgLK,]FS@X~Z00D8~;! y.Xzh;Ls]Ju$ 0"], S&I]%m4ӸGƜ`ƕ`OZGw*.@4؈nokf!ˑi#NtMܞp#ʥUQj*`sٴwγp0@5'q.؂k='O^s,5y[pIo(Z(rl0#zBeeGƏLS0 +iZ+5 ˜`S^=|K [l,VmhE?=`:laın[\Ga\x|WV`!8-L8C^pň^)[$-hV I(:ѝ` Ef1,m^H/] 67ܗkZˆdܤʝ`|(sy*؂`'G%j6Ь6~ukbrǝ`l.,'jBaY o:I 36Y"q51*XpJ'}E==,ؐ}vsT0kEk77EY*6 ,GMn*[S{pɯR`_r[3LgNaٺtdcj w|<|_6z*X+lo`q`[$h |lK*W$p2 -U*pރkܫ6_\Utw}cϞrSƓ.`sFZ? `Sq"Xh5I564{hkLG~4Wv̦vw<"|,F+:pZyd[X:V&x&}>@0W9۷oD08 5`5RZJ`c x 2Ck}"Fy. ~1z|6^|tBH۵K=RGE/4>Pj%3k$ I%e/g\Ř*֝m5,Ti+LXeBu-IXx ?{ЧqN {usf`pFJ$~.V` 58VW(Wzv|0kRXO]((.FH1"`Z]wNkpw">Yw0%[} J(QDp |L<n phoPUʪ`1+sTO5Ruts~TZE/\Fάlr5$1hP͵0\J5,E &o(8 zrs o^AU}Ld(%:>~Cm,Jmi`@0`a9*ICZ |0,XZ S9Keʂ\KG' )N0T_XQ]w̙|Q^Ui:]⪖zkkSW!_x=9Bc]0|]*d!1*JcJ@_P&l,u'e4;`7@8$W/v9ꅛS\] Ol!$ IGfrTr̃ykk.0`A(`y PGIrǷk=mJL̔dg\"hgak__ݦ$z6#Av6YT[s+۔X_?5fC:# ;vjǦj,ůn0I5 oAv^0su0u+ `>q y pU@X"`QYFK `ATUTrۅ0k|wUZ.YUU^>__r{eަ `os^YzS`VN=ߢE^ WLbw!.;ٗ-`Cƭrեʵ6Tc&hoz͏ԕl8ȰD `&28+1 0n&\R9\tyKrرBCPEmI*.n@Du(`dS;sϭ"`zRe=|D/vĞlihQ)%Li IœCJmGps"`LIRb3#skkks` /~K` 4hѐ't0 0D(,$OFcT!BA{-HJ#xvE;P^Cف2utRmJ#ˏ/xf<Y#A4{ajթ` JXyںbBC[N()hܛX3fF.aiT%!vIIFi}"IJY,Vrpdlb:0QE\[K~;Lw4,};pݼ8ЕԷ;n39,JXJ|CL$`!S,mv198*w#ŀ dZ̃EZ[G~ˇF=,16'Kӫd7(+`<f/d_[g `^()44|2|ab`VFK% }K'.(4DXɊCY3̂XDP=J<(gM֭FnPV(091p@3t%+zwɜQ=J#˞e`ZxD28L!,NcAl}cyzحx${$U6ӯʒjQ(dԷ ׳g C5l;;]@ccY]AHR5pځ!!`~v\-a% {LHȳ={<#jnjçCr8SyY5+ŢV.G"˝rƀ%l=*ꉫS2aV݅W},w7K:/7&'*w.Yb&pn&YS kd| %2z`[46ˇ\F&Q6{r=-vb%nLJY8okA{̬WlVؔ]qê8΅iӺ4v`(e4>Ѡ>S ލf<Зfڐc/{>:` pt`u_f|MbaXf"̔v/bS` ef̼ê# bW>IUpmJٷtnU:ʗ*/`0k!0@;(b[۽;xx>\w|8 i̻ !0Lv\EWAЛBkTJAXYymsχ].()^Ca٩`-iHAύR pG\Z_ϦWQL]V+b7 }x7_Ϭ FjTqP3upZ0Bn_:2˶XUDdRyrf̈N 3 H05X)RB)l a~;Y^^ZN7ms۟m8wec|ŵ(FV\ oIbL3fQaX݌a 5Vq'GD~ˇ쿡`50/06P Hd{@BPQ?>L q9GW0-ch>im՜W qR.`%U@2W`áf$U\Iݴ_j9]$ sFƬ*"*:GX++K"^i>L&L5T iƗQAռX죮 i9̀% :\FWUO"3HLmV*co x8_tKc*ER}J0rl3`3|"V ?$d6`ca%oV?Kvx^`) %s&PK+JP;z,¸;&vҩˇ쿡-fjUu,:խxHɗ X}}n2 l\4=j"Q؞ 힛S0- 4O.ܼGSkW.t/.yR<kgxoL,`Ҥ:iwW.IʆSldXsqxB0>y-/߉}nJtxvi]<Η$2?|- s;'TOc1sZ"`Xƴ271=⑉%σՌK{%W&7pX46/Mۀ 97&: 4f-k>rc&tL9:pgAERh0`<_|ӋgBֆ}w& q .E_-bJHarͪ>6vS7!_.LKiXyO= X,6v\ʹCI,5}[VH 9H*ÜZ_,#TJq5v #/&`a|+4BfFtr'trk$:0XR,'8ki}\›3_OND{'fE7} 022H;w h/VhM(TJwLtKx:EV.Eb^r/bz,W4O#I'*Ltd:UUv3`t0*hΏ 4W$J\ѬoJ*W]J\[>\쩅=7Xfj uoD֓WPUqgxX!IJ/ MO]!LsMytEfR7d$l$܅IXAREL _Il Ē$]$7xE46QΛ䤱ԃ1& fet4_Pѷ.(4DXɊ f(cɫ.Y"B\JE%I6!+fR7sDGyp\ ck-pM3ܕMjU/ZDG4FswE hyVSSL&C7]^ ~*/񪢣KV5&mXKOOA%rx}赙~/P,P+D! m<]RBtȶx}@kK 42IfRv!ImktU՟X7z8c'NjçCr8SyY5+ŢV.G"˝rƀ%l=*ꉫS2aV݅W},w7K,3dDS>Q;K r ^$k.e/oXxf cj2p"!#ѱZR[_PE̢rXdI6@ƒ:bF w%Թrm5ަйNޞPZe]CN H&Ӿ}U`C;`M󸫔A|kUvh1ͪ#k>(熀,+Ngxsam7. G}t44nX? nbׂ" h̳4ŹY6X)ҞC+om/\?`h+]Jqy" bW]$U )!g߆ӹWTR(_8A"UB_e  E ۢ~hlԆXt7/7!怩"`Aqeދx>ݮR_=ß~_~O(ծR~| ̼6`ak.\A/ȡTdg(F)|#MgSe(`&DڞOtU5wE1?5Qf*.UT>LPxW{L 'o˷r,`4U1Bejo3~6SvSVZJYN ߝ2{f)40w+E P M$,cWh}6}Cu:uZ%ݟnu=Ԅ$0+9{_+/.*E_.S+9U ;v TǖCus|! M[OE@J{+vk͜YL `EQž"קȡ}xMYP]w0M5nezz~+ vF>krf"۾Yzt=ZfR54s9JhIf(W ;a^"L0KEaʃ@-|e )b *S_UJkiR_$zP~Pk!c!&@kgngӚrosKWG]_x,_ :L/W_+7ԕ+Еz|\yYj@V  7`"Ib0FZnj{*W4V\JWD!1wQp}ˊ.la UE'~>j,|7 N'}z[]\K =ҲJQ{Œ:iUl`A'ޏzgX^!`Fxct*+.(LXL\`' '­(u:ӟp c!@Kh#0կ=D;?NIq/dp)y`: JW˗ ~Yg9~oQVV)02л Lf 4 E-лP4hvC%fZUqLPT 8wvX_L_{?}K/,sXH1LNi'8"gMo% &1:H*rO!<䐔U x\ƴ pV \pdw2`Y%̉Ll>,?mY`*,Jpe&lneiqۀ8K઼(Lfkݮ 9RLOOfi1lҝ ӄviV);nc^if&drg *ez\tި楊o=H*`w# |W/A|fi&dZ^.'JP fbm= v=ɀaJ²)5/UlBKu, p%6Gn-]Kf`U D^V:=u"sY[H]O2`Xap%6g:BKL(\ ZXv߭| f"&'WrV1Rez@zf؜qڜPK.\%7=ReYfvdxI 7.,э R<_kn%7*U]}r3~~!5oiIW3 捙nXR 4Z1LeO_} 7^<'x30ڕ !/V7 T I`t: wOgHwD{3`<57{Ja@NvuM So@NrKiȑI9L{:)x;;O*&Za{XT{oFGkb%"#$&i2+`{<~!Gs%,ׄb؄x$UkwJ);-MָmybYLiYӹE|Ea8q g ^ioB&j*`*.OfmϙA ᢝAФIKDs,=a:^0~|>;8lRL}福Nܬ!=7뼓phvM$)#`.{@u%34qQhQ)<Ӣ0&00|_ >E4I#!NX$ wNCئq3p܈gmkuvI̹iQ3Ľի"ia+-q Y{Sk(E[*J3Zc'9U9Ϲiu3&0 =aTj"Q Xh*ho7Zj@~&GDTD0 O>bw0àI̤%W=aطͥM2mo5M&&S}-9$LSz :Jke=`F.g7Οi}h4 -A󄲘iU3-a(5v}K`׵N@K*hOTl8f85 ݮ'3w=Jo1nuU;[;2X9h@N{-T[H ?rOHeh;t"M56Տ=&P|QOuU @qseM9ۺf죣 SVw`u&)Dҿ&/eNZ!E=l[ǢdaS5(! mz>~.%J^lɔ*&3XT { ܀ vXzΆ)58wm|Zwdr=>P(>V@tna`H-bN-bUZ"6q)8kX{оYk0hAI9ڄol(j8`ڒT;m* ] h̵V0M}S=^ {IÅAc=&>w&SGFO{’"+-fk0{\:fCsUi㢞PM+}AEJM`a[ L[mi˩/mqcuj|{%E +`K0hSOQu]V⭀dHڦpESmWdPvv*#"My |Ls J2) H]I%F>H18RK^jf.4j^꼨 fF6 v=f<#XJf؅%zSXv H]I%F>H}Jհ%7.LRue.OB`5 v=&bp$vK^jf˜:];]ncp)D>?qͰ Mʨ03Fۀ\ bp$OK^r3BS2y)Fn 0k@zL.G18'%/v)ZռTMXv H]OVE6 v= Ujnד Y@PV)H]OV}A󈼬R**N};mJE@jM,ί~þPaE{RW *E;70W0PUZZ%JbV)$\;VI*Ql? v=L]J_7Y"3TdjU$pl{ScyYпՀTvlP9L5 `]-2J)JQeO8ȳJͿ pI*-O`GbB63zԵ`P?{Qv;J.Y@Ω"`{V.-r@ 1T`릍 ^)0l?O0pGG=#5T^ecZV)o(H*Axb{XzoΒ%OWUJE& emQ]E}iUiyPT"k0ֵDIdȂRD"?JD}/}Xi=3wew3s9wg=W,5)GU)on/l|oayf$NriGrK )0i_pq-%-ٽdDE:_iU&@<22s檲R~wןlΊlG0dV[Ԥ(VI)X'SZ'gV`\ܼI/ER`ҾiffwX2K*ukHkҪR?;ybUk+wWiM¯2XH?N;RTx ꒳媔v3#<9S6-yշ>+W4Ǝڿ$*/w>>ҪRÅaUpUaU)a Cwo~=;6KE) /0}IgF'gJ)XD>[_/ +ǸR)3Ş& |(CvfYuf$n,3Q`\k\-sG~iYHڏk+ >"..f_Қ6K,0DZ[CVLlXDon/3v!'v>y0S&GiwqݜE=Ǐ- L_j:~f$n3E#bY.S'ɝL;!3+MtނZ Lx g`Kvsuq$ocf}NBhq< [h LxA!bk^'E`C)Q#| x(F- PbD\UʷPbDFJu8%0*ŧ#͈$JiKȪ*3)|7XU)>ň$uJ]NWWUꏷkбR}G-!JU%VBFU)U}Q# RpOeUo?}aT2PXUʰOyC1vϯTVhRUTrJaU)>ňG.\}ԝnUV2S>jPk6U8+J>VWЋCO ,GqU/G;@އʪR}G-!JV WŽUWЋH~U~DuU)mׁsU}G-RZ<#8U x(FU| x(F1 PbD,0C-| x(F1 PbD,0C-| x(F1 PbD,0C-| x(Ft0؟QΡ>dF5a0ca1AX` ,0q8 a0ca1XrQ05(sހK( p9+ Z(N{z!*@_ԍ2sހcUkpoxXTc+=K3o@_~Ǽѷ80|.fײRM`8-'/\P ^!دdF/Uy>\] 9ȵ+b \TޠrCit{{{T<J5Pϋ+GZ 5X+[l?Ba͗+F:W8maʵ\fځ4`M!ݟΪ0 x2Ն׉SWj th٥9Kth3w^kYM̘>HC23ztW%_k gLy>Z?o _[y^}h,g@w~A]`A|4ήQz"j%0\F ׮3k€5N!j.\VoEՊY`U]5f͗U`~ȅY T "1,0X`,0aX`g~^6̉^n M3=ŗrY )8b ^=ҦK=촶Jv Y_W~c)z~?K~^oD`F`L "0#0AF`!Xxx "0#0A|E$0L +" `F`L "0#0AF`& #0D`F`L "0#0AF`& #0D`F`[))=LM_R1[J5޵|?lӫX+[)UKw뾁7V1kϣkJ+WT/@ D`  A"0@ D`r x!!x!!x!!0@ D`  A"0@ 4lk5ƣ.Ze5lT/ZR풤 ])TlšHxWz%oj-Ve2ˋ\ٴ ss 7$uuP+L٥r&QM=XR RuA۫f(wu[+jM qzKO5O&K%[yҚުoH44[+|͓5q V)Iu]3Τn݊LQ :_]`Dy,lnndR&Xš$X!s,sV# >ygs,f. \`fS`] ̻# >9O`qB`C[saV1:Ft9xr(po?91 ڣ'Cq1.,L`q10t^zէor>T㽜?}wnCO͂虜kc~9>,>?K`#?o}xO;wv< gg;f:j df>t`0C`q6yb`>ӣj3i{,3E =&;oSKY֠`U TӋbKAr#6-Ļ؋- I?ZEKPb+L Y KZ /?9'$f&67ELs8wOG"sn^>;Ӟ`wB  _ A3ի;aC!/w c7eHr荷$43_T/{D0E%v|-, 6?/C7h/ggwRի 8X(-/X2#/3e5󄾗Г!˜Al@0> +W)g?yA,V*k҈XlKR0KgM҆i,f +?ڐ8 v;Hi#}Nzkq&f!q&Hb,9)WJg-gO`fg jA0> f?y![{~g O(D%.(IsxI|?k=S'yDO'?$%&`^҉\{)b^ &$ Z"ZSӦS3 EdLEZ O[S3,FG` O5 {v-Ƿ;w#&ib=6\{*M1ˆ`%Rn,syb3C0 qK qK qKmcw[@0VqA0nLhN 6,A0SLhN v![D p`nG +XBmAl UD8H-b~) ,qq9mtjЭ>Zv;L$ՂUA"fSs;M[ļ)nJ FmAl v*+nV훃8Et= z\#KF Vʖp$KVVD /O`GGnbnQl fV3` hlz3rvsۂS][5\N`W")P,A0Лxk@0VqA0nA0VqA0nA0VqA0nA0VqA0n5v`n qK RrN0J9CKm7nJiyG%M^ e:003cHC0hE|x/nޞ:q9[b8Edsp*.-1````kS0U\[b )*w`F &4+'K@0ǰXX!!yKWZ]LC0G)%ުQjG3 jGI嬬% s}-ק+o`si~;QL[ZA0Gic%vUi!!6 ͩ-bޤyJ q;`aS0];J,QZ{8;M`vإL\],`1l kGk+~1L׎֯`-1̬ Ir,WJ~g0 kGk`kW_>3L׎S2">fs?uQ}(kG+3ك(xU\y"v*.-1*.-1*.-1*.-1*.,RrP0R[SG=.(CL-DxP1< ~E+aC99$nYT$q_J9 elX [U( lҞqܪ|@E6E$l8[t b{8nUJ$ 6j HQ;{8nU`$Hv$XVvܩ l`$#^x8G׶~^lKvlETB7<7J?iVW՟i?=WWö9nϫxpFQz||0 |\j<]l9rBҫ34qXE0 <#!CH0 <#!CH0 <# `a Z" FbN0zT^|J&,{# fI<0͐Lq#Cd&f#WMGx X44#a:"rZL=S' 81^ff@rVͥyS;|/{k^'J*߹Re$+B|TO|d1'tp'ZfGzBPaވrpOڸs5~"{+VB3{8ȵ~ /MB$ϭz.?8HD=¼ƇiYǰvspEDBμυ~wpnkUSQQOMna~|pbƿד۸M<4zUDa_]ϒxNLJljg\[YضecagMĊkVKت6NYz`PߴģpZѣ(Lc29hpĨţplR)֟.[ڑ zJ@ KU+5NH;x<Ĕ~~ސ@=)3/-̈qז-8 `9-qnj[Pܳ 0qK]&um.*pc:Vpq%] ruOnzw(5׋hJKg1f_[u[%#0ҞVE䡀ZNK&eƧR1h{$*# p^QBV{qEE(m꥙;,j#(y!WOaՊٍ(3kS3w'#a/(v,HABgQƠ,wD4&I[Hph:QZfJ)3("Ӄ -l{/Ϛ2N?NnrˌšNAB))qJ~|>TE=`⌏ 8ND 2~,ϢA"{ `iF ʿJ)SŠ֗L.&銑"1&B=*14%@)OGtx i պI]>>|)8,ט&C左h#] g$IF PKґIQjׄ )=hDაEgQ0 JtG LܘX0  >C?ӟ#PE1I #L fQcBf^(JTFK ~uBlPFqX:t;N~?$R+`J, *UKDE\1 zX+m } >I7q%LW'%I3gUZp9,FߦT@UGqL4mӶ_)5RiA! M lxeӐAE Z,5i"N{"#p{#<(BSJf:-/&ZQt7HH֌Z1 .b?(} + |FP,@j~v/T*á p8ѝx)6= `pQĆᖨQ0GME)(g.oh=@NR=jQ8OabQwhx̧|}e Q^$F m%S15qOh=܃WH4K0U'+[0 -(3pI)qYrrQm!G?|wVM RC}0 S!k>0K\!PhN\qg5*s5 gn`GFOb;(q]FN;8N0%}\γ+(XTɈs \E"Wtg7s6p3UTp Xp/Ԣ9SaQE yR_pJlYe2)rT6#L.p PIAŶW*j@oq8je"yXe[ M9+@lAe"٪PlH{b)@~ ֟6^"M6Ul0%MqJlq6VsxjǬ+L\f!CMkC^s8RRZdߗUZbOA~al7VK^7^/),#9+Uq83t3Wf=a-ͯڼ:o-H44* ds}ϡѵk=nk>|jWf0CQ(5+P81al$A_{f.–/؄ijEmuGPhc[[X>zQKĵN4,XHC˟?P8ҽx$nm_be. 26Zݳ:|Pw?8 ژ f u`:B^/lKqlZ::BqeG[N[G͆,N ga8WG-$=A[zwtp*c. krĒ!X0W{6,X[. ;n BmCX?5f2|BMd\0NUg`br 3w}Q]=kU NemX=f[cV]YcbU͍6-LW7ua4{wo >ĂUs8(.خ]$uO}zL]R81a}w䢕dmSݽgiЀߺNܴ馽ZiSuyUR˦MUK[e[ym}@)@q~q}S(~VERs6vhO)+=v{j0 B]D]D 7o.dVϛW?OQe!vH6  J9h' /\!9>|pkʐVq8{eXvAT8^1+N&s$u2t.4V&RH 9T` ڐ S`++1?N4V&9X)`Lp@Q.X^^&ޱZ.X^~)G6Yo We2P1b?l]Jim;.쩢 sij ,\D${.X^)Y:\rҍUN;G^>_\uNj;<2Kp@ ܪٮWpK9ÝG`0.g.G?>%vtWus?\4 Dj(͋gM늬s{Yɝ=2`#$^Gb9i~l WŜ2K?;rzk"/rlZ9o\v v! ]͕3!#9H<lc`*\0.%`Gby:DǬĨ*`e,BȕI}v%@"!9z}5==`U2SRÀt~jXg:u`}}- dO#W&"Xx|\4 );wviNi ޣ_DΚ\Sر%۷oO_{aԓ|NuRTn 7/1fl]MA`(yَqF~loKģy kzϒϰ"vѽ߿o6Gsv%C/;.akt#XlK_%̏P#<4ߡ6fiZ+|+Y_Da6pUvo{fl{95+aJ߻w=q~쬩pc?;jucѢONk`w_'2-ed-C%sdq߭+|Op԰`՜2Sd2y:t%X>/`w~cYl{Z5c 6\yp@SS58ֶ/`MnG">#}r>Y;s=bQ4KI'eԳeռ`YGү`޹?5yHH$^0t0hci zV 1 TDP@KQ\;e[[kUWvMWm8S5][2NNNCЀRWFFz ߞ6{'aw= M\T~0~ ݫ{-]uU@D=Űv&a:`,Aq !.6a',zxU,C~jgX l󟊏~-ˎHI[%!jo*ʎL᱙dzs( q=<?`NlC?_ Y$GP^;J2v~YŽʈ05@J~W@,;7")#Jq`iEݞ@0臿 )uw`hxnwhhf0xwiի~D#ބw&l'`۶Qʌo[DV~[|0S=3ڏg#M||I{e$/-*C,+ (\͉m7n.(^B6)Cg!O"T-%0@D+t.MS la7o܇TQn:@Lsޙٻ?ao.ܙ`zCEp254`@e'յ,=E,6#H" [vh*~,]m˥H'ŏ?C\$UIJ䳓(%`/X8D,:""#^_^oJSS ]˴05 `tul8h`g$sEu_a:azOB .Y&vB jR,3-({ \>X>Y3Kd f)aEE-`kZ_8H zݿ_ysBnkZ|A) JXmBE0w/>>erm*.?} 7(D\QwT,X4bh)`͕8EQh{z$iJ `f(Eqp־ĥ-R`ؖ.{~%KES ePBl6T^nD*Oi"isH,*`b ?`V[7lS,- [h]KL*JL*Jlٲf1)iH`Q*<2SX{tME`1X(uͽaNJ"ők|4"XBWo,"f4b$ Zl |x[]ȐZn5[D$5DSakkLj%g—vћUoV4BУQd!R}AfA#X-.\y[y^ilJ,,z,"@=ͅº>Vi.lO0K0R'z[RfM7ǻҭ&[6I})]4n1<|R2"s`==N[ ɛUX7,}_L/Ks06G0Ƨ ӊQELR'u 짫-j%PU6 B!m`XQ(3_.wM_WΧW**ﺅQE`2=倉VޟW%?WmjSF:` TSZiS)iA+BCHJjsݟ#V)lM DٶKYuFȅPɽ 5UCB3ڱ̑1P9% Jr 0ՋeO?݈qc n 2+قgj d4l| Fx78dDCKיdCCg'fX`kxW Y$JWyyט)lτg}'pMް\؍f`6#i ,5QgtV* 7t)ʒ_~9xɤX}jd++ Yw:NO =M8Vbw ޑY;MDKYj-9DP)(y43jT0YӋ+`.OFH}{D^׺}+J,PTM͔'YL[FX3]4-q$Ӂkkq aB(tXSm:*-pOeY L'cco 0|pCĬ~86=ي8q 9[-nDV³ɱˊDȚ)R+ʆҳ&IzMu F'=ѷ)|`f&yMj5l6lO%; vf@ laщN1EYPЋ=do0 b댂nʀQ?i].t-$tjGf nR;8`^o6Nf6ՠQ2ڌlذ%Tb l +q3"~6Al\lzUࢇDz9`RZl4>"XZYM2eTzu'ķ|W Rܿ*Ek*JQ"6UsyL1M<*"6֚j0%ԙ0Hf]JNPWoRL}1WSg&4`= 3Ul?;0X~]%&?![EmorkH<_s}74. 04~h0)z2$`_,+9>_N{˻m~a˝b2% /*`~j|}/$`Y"S0rηH$$UYII.kofԼ 0H3;[np<{)]5/W|E. 0uVp LHQ⤴(J,򽥬&5ƺ;$7HO)q.椴L=k;D,TӒ|.X8SsR s5\Mrl|\(26_Etj!n4%~j N.;DOHߋׇ]) D$3Ul;\5Bj+:_ Oq>%- |&j`>uX&hᡋLkؕXQH[,R~L-O1`l~T+/W,ױB}dUXio 9x{0CD>+ (0r.tlTi(BUI&r6JL!c`N:C,FK#m޷j+9ج|QKO[`(ZUec#$luhwB`ꀭ_]o9 }->6|V@q99THU6GX eO>sʆ*0̡k %J׃ 2skҤ`]羨n4 BFs8+ (N ۈH/K, }WacmD$Ǔ>\7:#n\+ #Xc#"W$CE@Jr\G=^׀֭2"{s! ػ̡8# L2vj:v -H0BND)T*$u3'0K ]?H҇L "} XP_{]]=OQ1`[ 0 %iT"`<3 ={` O U؁u,4:9\ȐPGMJ~BhH dK%Z/.ã5Pat0dXL F-Wl+G")`o>P!jA>wB6ZpH[&)(rvu}+lL+ge̶&3`_CJ/fPSX%9[+qcƫVb\&HC`4^X v+3"cr*$ؐiovJ$ 6lFM KY`5zK Xorƍ%S/lܼm(A%2e`P̔ /Z_}7y`rgeye%rBD;Z!'Ёc<'c >(:@.l$h5`p`JO?CI<݆'{̊eȾXƺ5fKNTc˝F$V8B/h&';lPLqpS*|>><8Aw`iyy]iMyK_Glm}zIlb{8<6`ˎVmVma:elmx0zئ0 [œm@RVW:ݸ*]0"-qqFu={oB춑> =Ck60? Ye3hӳ ر-OvnB:ۧփ9bU"K jX6p?D3b2Y(Ryg=qUjB.a!+`#GGjoR}@9knj̐tMJV脂N dHeʼK; ]333JěXp񏠫\'5ܝE P)6$h7Ykkzb~C AM9rU;'=ؑpIrzʩ:/-:qOs wR|2-/2#E7T i`}h#Cs"S⤰eNHJSM TVSCkVwHXu%x0@EtDAz dž&%hN V|…d; #`á`‡/qvY^.`KRBػ/&b`U~cvkL}T|gǏ{FrBۜrV0fraZr`wbe#̰7cWOfeb$zzR)+1EL)d#_"r=XmAWxɫ/^)}<~lYp~nPYC1ҸD2pY5&JWȳu8ރ%J?WQ}-/m#TM. L&K {>iK՚b0X ~w}[ܨj᫬u:7|Ǩo7JX DIe"X|TBuD/&)VL㠅y4tG M^XM 4O` Aua3mjöj#lB)mzi}0qZa7 a-tmNYkBb5XOfk lfj4[n,DZ)VB'gPBU \X!Yŋ͚im|EĠ`,!68,M vSb6״L1l7}ڃj7 SAz:<a [>T~ wߧεv&FZȂ=BVWSc-.; 1!7̞tELpJy Xr4ۖW_ضsa۸cW@$$cKep4V}Y* >Vh wlX0/M HHtQ $Dklv@(@ 60AtzD<ͮ<&58)"ql.d9mkc ﻔö/&V&rƜ|8_ kل6 oXH FCibLDHNE2sxD]M$~Hc%DemG&kNNИ5l lnkM)H~LvTmhxݘö5U]ܬ t۾Kש̨:6q[>ۘp"Nm!ʍDDIB&O3x+ >S>FKFU-LtgfFC,l`jy,rG{k^ˁSgϞZ&E1r[kKJS "m"/"Q'fH ρ` c ;}ɧ |JGE0nJM5-MyD+3+'OL,PDs4N̐m M=` Wo4њE#pv_)`cvR9O0l(O+٢wji<@WE{}'jR(DnKxmj \ aDT'8Dq"0)ŷJv1*clvr͎-D$Dg%-⵩`\)m[J$ylz)U:/]x7uq|"onL` | DnKxm6,ΘrlUV0ts73Wq_ ^r;p yH䶄צA`J>5? 0*Ŧ4Ԥٵ)f+A(Y !B5Wd?^*e7\>[Wp'`S~ulku0󐇭=;0Xq C-iw,PYSM%݅B,(бa˜QX =8. L&EkD{6S{Jdn: FH OW6?/=IfMdlyx'jy#L<:ah +W`V7*uA6\hHu?;i孽K_G~aQ ZG%ưmP^)*öA8¶^v+)9\jL, d)&d}rO*3UM?K 0I/%Gm>ag4WW9_iH ^\~vK<*1m1lt0c'ꡧ#0&Ht"Rȏ.-qN2`Vtዟ,E}Ճ\a+ox&O+vϾkanhB1m u-l܃i{0Ihb0bS~lEZShf 00bS%EG_ve|վ9JX>z}¶}JaD ۶ ;z4\ *@ Kz*HUșP5np ~H:VyKD:nŧT7)mEۢ׫;}R9lD f p۷3}Tww[d̷ChÆQC iA* jy;0<(u6@QlX .{AE. 4~q@҆N_cu勢o~\ޡ|=lsض;R8&`4Taӳ/%?IU#Bn_CFC ,2*.LƏF-@H%8U"`iK_ߧOjү6]D<'| <%{-l[UaT¶oBmXt/۵rrbC8KU\ PDB PɅFTIWX: qCaG t1UT"`(_7uNU^ Ue&X6<_ysj=>z6Y}6(a (>pw?R٫A`٫Q$S9T6V:Umvv/"^bKu^p\>FL+VXn4٧ yɷnIYlfrGܠZD/ͻiE{aöI6+mvѕѬڃ}XǞ*g|>*:7tX`K/71q>lk("m=;$9 .n%%(YJG:1)h[9;p_"wv |Gndiԣ$~=Sp'ЁGuR:I6׆*% #Y#|/x2{bs>`cV˷ Ǟk=MY~]\xXdc|g{5\(0GXF8_5#f$;vs#,`+aJLw03qaryEf p9J!puarmGeOTy%J9_J)Z47`qUhUx쎆*+5rmvN4=כSHm)7j?pf6h,.Nr:+v6zq,bB2d:466Pi#j e@&6OxʹHA؂syEԆPQ7&s]\YY&&Tm<z[m.T"Q ^@8" UDx,#]_'AZ!CYreWdٱX{̉6%*UTJ 0zJW ΟKRs|@Vv\1L8"rI|#H#",`l{`''GG8yFgLLmD`3 n5 MDv>;5XdH ADY~-=@2AOggIp'۶=عMan! M\"ɰr'J`&~tOa_d}9WᏊ$PI]0맡:`LSFm#g*+r̭f;7`&dj2 F(dQcߐΕc&.llE20逩lw}W 7vB7$'l~&A_ )۶s&Uw*|OfFƭv B0|o9DkPȇBҝ؟ o&Q ?43 {%5p5f@ N٤ƶnEm#mKFTrVidw SV蘭Ow~sﳶ ^7V0C'%נ6Zֶ"ڶ.(&&7}':`-1`r3Q5؂%g:6EkΞoL`-XdJ |L,V2 XO8ٶ^ڶQֳɶPM<ȱKs>TQWR&gۆ='mUK"ٶASVԿꯖi>N& Dmc8mՁae6^*_"nhrSH$ݻU6a$L2ȡ¶ҶVlF_ `֜ܤVU)lz\UUuy~`w< ?`GM|Im>ldԶm UHm< u~;5& XŀU-X-^o<ۜo<[s'3ö '0% mKJ81* Āg.@[1g6q9o8MAc09zjKގ@ķm) tB#0Y6XӆSe8ĀkԺ)`Ԋ:ADu;w Qj5Wl 3(ij9Vqk:`m[̀!GWlԢa3hXJ01` *+^"逅J~F͡:s Z`fӛM6AN!_P;0L,hN`$DqSe]W۲mT4ݪζ-`Xuq,:`OPCPGãGKWm.Em6_;Re3`hж۲eV0{?=[ޱlcmsuڶ%0w` ELygKOWGHzQ}qq[GٶygF磶m+\:m?`-}K +6-Uo[Ǵqkm+~dSevfݹѨmB m, $hNNޥ7'K/~Ko\"m;vGm6Vٶ逅2$rs`#7.w]8;9å  re] XdCm8,j۶`*mb,'+Us|a8tjM˩:r%azaWavD Dm6H.ٶuG1:9,ɱlsuu5"H -3>xCeۖ7C3W]T?4ߺЬʶ QڶAg0ȡҶ-jdE/*e>f`3 7{m۶DZG$uVR/2w$vd"R;M*t@iX nOx8&mmF́ҶM7l֓$m$;7pꪠS`狆/"\`ly62 7lԚ^϶KݓCmS,|07/xxC6`ly](նm'Gm:`*gy'go>yu``{MӊٲaҶM`*Jʹx/ ޖl.펌Dm=9ɑږrD vwrQ0`˦M"۶ sr}h$b;a,LxQ8۲i0mX `5du[fs4^7 F ,ֶs4wfI%-(&ض۶-+ٲ?E"ޠzmV7M.;OR,NmmRRεmp̕*+qke9t4F`=w6#,K:`ZLn6vimf8h_jsV)ycN'"W"`S/t6m[EiFm1(#ErV:u4 k0'CٶQu5۶_?THXI:4TJ;3}&Jdj:`IX-Xr6m|-UQ۶Al> >`,!+[LY&IR 'Qy9XnumoCԶmP C$60"x,T=qF]mǦm۠nllv_R&-KJ'<W^kܘ`KD5mM(m۠|Ad۶{oYIR N[`?F5vW"9$jl۠ mn8"ڶS6eI`cBcĤimSҌ5==nOOO}CځT+5z{mJS};100 {CzB†5=`Q?Ѥm)f21`?ZO+U~f\bX逭ZҭL3 O_>_~`Tc/J=ܣnQ_cIl-`&K9YD, -| ^<}RN0NEg[3Wiz=cISn&:%{g+5l/ӧ_ CkFwm)K= mdc#3E|6S&&yn744O1儮/jeD-bEh^l/=7 rYkV$n_cjO+--e+d޽"m_P8XL&4d>I3L̓=,ɠEs9yrm76VF+޽f[/ɾI5̋ 5E| % "ءsL"?-@3x`$/^|ANq cкl#F,r% +x|Or3#+-P#Ž#X)g,,E q@FšK0]0\LڳdBS^^/7U[*ڡTVhmz`Y+Srx8;T 7X惝4 ~R 쬋]S. \׹vRDjV`.-XWWU<9(sP˱ V;7"gst|ى!A0gThOOEn(,CDA^g4;(i9ɑf q <<ծYUjB^hF{YB&4=իFp;pWp/8w@`@ʎT=u,d*͂=r 4R8r1fٜ :,hm;oT9 vw?x)X|0vB]w`޿{d_^XXx>F l>+z| /?)Tw f^V^sv*|0V _P*Xp`;޾}\J}}Ӳk]0ǯ FuR-vܲ,\ 1ݛO~,qdü]0]j{vu\%;P l}}qɅRmi]0 [K_.s+؁xzckmF E,gw :ɁYX{MnX|8~T-58h|0~ f7,%߂i_.:7^a{{|xއf\87,/޼?64D>.Vw,'4XmрOmmm-_i` *]n{KU ۛ۷Wۤ`8 =` ".~ wMhė`kP&p K=X7nrÂuqsOZOO7`|0SuшW ` ئuak $X6A ~Q$G`XCL*ш% $-X-ٓn,VH惕豥:`%^[u~hć`P-lmkiO;)Jhp^$V3`C~YM'2/p֖~ӳqܺmYx_>XFm<u٢Mj w4{EѧGZ|Mr?2`k6n@#H # 4@>XH^h%"ر=}GTᎽ\~du' t*T`{5b0+jr'@Q1d,yB'o {{f1&ǾwT Y>ˑeB&s QV0Fpfb BueӴ2dsf\sd5w%}urBƳT =D>-{%jryS=,OCNS#dLoetS4W)SeJ <"2a~d `Wi CW ]BT5WR&ʺx91[$KID;ϗp\W(d<+Ez]ćGccTM7o&:`pǯ@BA`ySfTY-A`ɹy)QP|0V0Fpdщ\FZJ'9$gR{ieCcN{t)QPmz|0V %݂)f4" ‰]N)SP͜,1oqMbI0/``ܭ&EoopЈ]dE|"*gAABL0\v"3[Z<e(dbH0/``A6E7pСc)gALʱe!na3,C*cP @͂}g!,l**;J+9 +9&CL#,@Ğ`iP$#NcUB"",Vaw̓8Ka V0 X~v r-7;cB"vx!<%=}raX:`_g;sy0td0tul_ L惱}X fyv }AuB𫢻O!,|0f ?P~Y/G `~~c5` 7ߎL :[XW"&ڃΜ (XyA" na_]pV=X d 0jbM-X0"z,`MfT'k8&xJE= Cfhk*y|O+";Kx`bAܮ@%1*%m g`\ +az,H0,|&`T1}k3>nY{R hTQP]gg+jlz^c>u! Ql++_:xi& f,x@;l%5@"Ǜn{O_XWVx>+MjE{B&;I#!XBף]: ".p%0>[!MS0R)lzY-&>W6,^وP֔rHXVXQs?D$AmouxlF5a,HEķ$Owfw \9 b ݘ0Z,`g0FeސO$ f*+>F0rǑ1!)ux̤BD=5)1.OԜI+ c( P/$|ɨj#. xE$g]:U&OfQ߁-+>wizaN<ë`j8&h/b. Aɥ4a 0gkUC^Xb+{w?`#|4PD"ѨAbQ<̒ G|z/!I>4> |sh. TPYЀU$[Q('G2%GssP ʐdN|a 1Q04ѯRM("(5j= ˛HzzR>?1NYU*-E4bG S!`Jug\רQL~ǒGb z񬋨S9"pre? 1T0t9GHjǖŗUWuӏᇉ@:pbYquLdD#14chf`8E`Thp>& 3lY;sI95| L{J)`Ll ϟR~$,aKW4;IkكK왐 @ }-# &'yeeexIL {%|m.@2?@z}GP9xj*T5(Ʌ (!!2AGc(Ѡ}Z>8= QdVxjǎaK {1S0 x>HuU%# i4}< T[h%kCeI M.Țx~)`+",BJV o pYw/ YĐOϏkb_|fzfΔN;9_>W>g,, Dw3.L[z4k3?YFb< :tYԳ0.Ze ۖ9a ED/"u1(Up)d{aۖllض Ӗ^!\ 2`HbV ޙ9aFi ۖya /G~N?!d¶ظML! 3K".iǬߨsXuǑL6гQ.TƅiSSH &ЛJ}l!* $^_m9 ĖD c Im[/re\60$/uErUs% \ KgNr0)ǬT[ݳhK|jly㝱-$m ۖqaTR,4 v1dTUA b*%{VBaCyGmkk'Im[ ,4´)P/pL 0e! b(bHbܕ3W`N 0ez 6¶e\60<`A&5, fa l3 Sb-Im31a2.L BJ#`hvv8 t@ ߰P1eУ &DLreqXhA@VE ;۟wXC2 q2h]T8-ΐ6}PL8iinZ,yy:cTQ<v8]A<`@0 [K[AL>SD$fp9y7uf pdϰG `kOdd{|g0 J*h(agOb00h{ kskyoL {v>]-LLT u{OtO; 0GkC+9m@|CVlr}TTV]RfND|hDfJ'f8"0occչjiz17`ׯ-L ܯ0C)n~jӊJ 1|ObCP:`pmtnorv6BU=!`׿VKs?* SY"K VS`aΠ XyQ92=dQ6?orJL6Ly[[ɤ]B&VSfR.? tLP;J͈{7Ka"xg` XySom0 0b؄/pJL6Sr6Ms$vF "`р_B($ 7`z@Q@R#)ʠ >3<!#0ΠNS,:uߟҟ(?ɤ݀a/2E M9%&98@N(pWRH89a8C9sٌU@xITM(kQZɤ(apLee4v#ps"+dsbÒ_rjK)R)%*f+la2d٘g4caQ|!I; ϔ n J'02m~Z̐+0 #iI](&kRW mmMt D!X$`(ȀbUp{ҙ `&_Z?"K c>=-f5rV9ŢULBض{aRBt0bVHh>eT0`z@G` D)SqZ̐h Z\ˠ`¶,<|3Æm},XMMMNQ,%*0`Ǐ3GpKǏ3g3&P0Lb6+?lFYK(9á\ j>,`m)> (*sZ@<uhb1uU ;`¶YJHڽE^XyDZAADweqV*.bDT-Yf% ֒G{Eǿ!~?i v4!!`ș!$#&\ 2&%l`1;=EĽ#ꁩo.: L39)ba:ECY>{=ö Bgz0nļ9 5Y]t TضТ&S^cBZyHg̞ez{Ɖ3矉R~ %Yo鵎m#DGp#Y2?7t+A]iLGrWS]DUlL.QS/@oLl\ަIr &`oW dC)X*`JLFpi%x`jSX,C̦NL.EEVK9_T~//6+-]m>m]a.wE1K͜F }pJ0?G7 U6P<, ٯa2\]ì e[.:.T7>l>4Y] qKE@Uq=ܓiȾ-mKtI}%Lȡ&D~l#e}!Hg2S/ x>=iVap=[}$RT~Fv":Xi&{þyWUDW Y \Z>H{?R/ᥨ>m|C{w *0 ;VQ+m_Zi/IiT(`2=JTKyƒ%y*+h]H0qc"un˝;u#^[ SDy;tfC„֢Q\O EוiýRIKl2& `+Xӵp{Յ"2=u DuëH8cHpS@ls!,O;ߘ0OS-#&>s&2hxV[Yrɓ>M0mivAG^=Ak F EOO[ ce Vahh40_LnI|[?N'Ifß܌o~Z[q/-fR\ۆ8#=@-㫀-0 ]`՝cح+z0|0Tn注 - `ȼ npy4 v&20> {5 0C`-BF. NQ;<L=X‑WDl"K0*"\ ,}{$g@‹hj/ ޞ7^=Q`kJ߭*e?6YL{Γ'0`pF|VU 6Dk2(:VBp[E7Mz.o8\zZJr ՠ@+% DJ1 Xem"qhksx֍HAE xXjDŽk7`܊(ӥ0׽c%uIRsϷ5^ofȀ MS8&y̎N<$V]rFg',WӥȫRME@ FMOؗ`7*5Zӥ31vP]$e>ϧ뺸Fu;2 lIv_!,kߦt B8'ʱWn {ݑU]lJ [ s뤟8=^yi*xb4{B]ABSiLU;Y,V`2nȥUexjr25.rx-JpaH. ^)Ib:N9jL7U¨?r@]BlS8˾5IcJ $/%X߿&R/þE*8aC[|ޑ<|Cbx噙+$ "|l]21gHϿ0t" ++_[".X &[eSSߊPi0k..]–h&cدb*EHVXU`g Xbҝ9m苌_<8%aƮR?H~ǃ=vaR$`-eMʏII:"~XmXM2H;h,Կ#EJ(%bU0czL|^VRׇ 4`\H~CZp 'B%`|^`'`R_h CSqEJY;%v#Hn_4o]Z\|^|8*G_"2s" m}YE&=ضm۲L{ҷD td> "tLEL= {0%7W!/,]. I3CVRqX` ;qL?IvR0a$jJ8qg6p#پ Mt[{T,wcz+W)Uj{LXVJ1`+$`TI 08`4Iѯ`XIt;*Ab(afY_4˫ |ѼSJ_4[(/bMLX۽rxرj۶ұi+ZH,Tk'Ax@F+Xi%D ]W=פ0Ͳ2S}U*,X&[U)`tξwM-bMl ٶM[F" -o z0Z)ħX©v>:1rRݒ`[sUmkYHm[ٴ `fzqshwٲm ;/t+m%gcGmۖA5ŶݐlWlJΦx u>sֶh|bVr6m:f؞OZkrm;$f[H6ht@m+56 /ZE\{rm3m+5"UT5i,-q(PFk`]nmڶM[6w&#|yn[rmBm[ٴ`C}O+j̗> *u mz۶RinV&?yMc!`.&t 6U*l`+*E˲rfFPFaJ"祈W3FTzKH۸$sh% ܧ|zWVR;ԵɤuRXRFaJCzdy)0c%Im\ 0#3NBm%ikޗ#Qr_sRr KWe3VJI9`,d-`?tE2WJFo\ l` W hô鵜KU[ƮRA,U=cmP)bJJξIX"`2d8u 0ƮR;غJA~ 0qZJzXb}&0<_\;_a,e`l]5(B6`8I߃Wl_"k`i4&O5,c*%ϤUJ`ld)`9HIYaaM6ёG;ɽ{R;;|A/J_5M_KPM,Ek:VWMWݻVJ _h-  p օzcQWKNtX w@u%?9`lt)r8?`Wx⪝}ao ,3 srg%ۼ!9bֵ0*/H5\sW`B rh;k#LU7RG`䜦9`lTd__ў^* dle'mn`Y{פ""NK] 6\ D;@qַF*G_Ovsبٔ r&oDwEe/}´Yf6 MnჀy<]5 {jj 9sب&io9`=@BA^YDmQ8GnH%;%!!:E"Ec*UjbXK|Ky]hܳ ?pT)Ro I{rw"ֲ{ ȹ0*$`^W%ZV1r!9کEoELmNa'(ڠh &"|Lk}J`dJqi_"2j,c5fþ,XK,4;=5[_#XhzC y<ȃ_4m6w2ءza I_j ">sh5sEi_LRVjyUsV?`"[ZZ`\F^GR-$tKNa.J"6䀱X.IA%|Hmq$[^0u CƘTK)DTG>n@)fnyIDe)DRj+HA$aTK1&BɌ5HL-G}q$]?$ 024rp,틎V\j+őt$f0PR_kY" 9&OH~k3INa(F=/uo dDE\E%`9`UHU>|iK4wYv9ʛJI*O1t"M;7|o|[79sBxl ƙCR߄Ϸ,g:}v._^*|흋M*>nrdO O;Bf g4m`Z5h'9]MbGh)mPv7t74A8: UoW 5W7:ɾb3R[4W)g]ڜwOٿvn<ڂXZDS ނzڰYOrƻ֎+e$jt"KK Lfy/0EUj"*5ًyR5`ýKl詄wW5ЯJ1w5nغeq&.^c'#8(&W)PV{)Q]M?l3]]1_VL#$7`٭8&![q&rw *-_n X=nw  0Iw{[F8\eډc.0fzf#_AlrD2,c5U'^= s؈Z6he{_ͺ~ ]'X0+{[ {^{jՅIFW#ȓY:7A6"H]y lD sKnQ<EԘ-`kQ|o39`7JTmCi`-9 c*]ȊsbKyRF~ko66mvrOO<0pst.UƧS}5!UXmȴmN~h~CA<1>)Uʼn+3.R<@:m+=Zmi6JZ"]=ygTT@W)`t"ba˓c(m0IjXPEJ}rgu t=ضvJPڴ`PWљ'`]0o%"DOmTl(m0Ij(UМsU*K?`^lSh66m$`W;/BW)M"]0n=ضh66m$*iRضmbڶ / }lO۶+v6=nX¬9p;<ϑlv<mۮ<\hs`[{)s;rwx$@thS6+C6 698en_nt(H mjSpp|9mh3q#Ξ:z?i)I5VGQ5`S`ťdZlE0ժA0 (F//]GK}d`ke`pj:[7}f}%Q@<,Hk9|5YŖY6-@0&w bѣEvt \)4 NjY:Y}X.9j=#j<-@0&7m1Ѳ,Mj)xIEZ9|5YԋE)lZ`L`PtYEib9*3Dd͎>=g  IA0@0<A0! A0` y`C `  @ĶVLLllŴA0i@0ٱm.Zy_ĶbLvVa|hŶdL%XY F8TSbf2 I$J#Ķwt+m&c 4 X/Hm .f1 Il3HlvO Vl,ƴY6`c>-8Eю/;mcl֢!X&v\!?Rgk7h}cnr v/;m&c `Cs'kS_{ۖ4رmLLnXX 쇠.b۔˱ml H&bL @0<! @0`yC ` @0<M,mP" Iyۖ$+cA0I@c*XĶ(}U_nLlض=pms'A0I@0Ŷ:bے3:DUk$ߏeJw``FmK[m<+.k/rH]fѧt7& f FmvF7؆" F2>A0I@0`CǶt !bh;hJpJ׈.Ss0|l!{xlp^.%2|b]#ŗ>A0I@0CǶՏ"bۄ#] nvu4ZG rGL_nLlضYM"M8ҕfԪ!ctФ|?VY) IIm36gm7Q6Ȍrc|?>A0I@0deKC+nzBD^)ؘ?t9'tY]+VtC|ޞչg՗#j@"`x)|D5X%rҒuRdþY, Kpc-l7\Nz LZ''A*d2Q9t_V ms!R` "+LH6:!`L A0l,즍h DHE ;*WL@ n-Q.#~]kӳD䛰ׂ)@ nc &B0ac(\gd{M><}) =;O= q#XG *?4уׁNBޜ/N?ʺЦw6>`W1`}H^?W~Y5WoxwG?ily7C7YȺeeC&Lr}!4H@IH4J-h \.>(^A-7"uZkn/M4082C36̜3sf8$BD }cNncR-ӥFĀ=?؟9`F @5G<5qY@`495};2bڍ >?-z]c0tz 34ގ2P^XҔsm5ND"L@N`SIw# `}40՟ T=san>H,&9끹 i`?k툴D`7&("J7&f#,-ekd dy㫞Ex$&ڈHd#B>l'9`iF`B|]=\3v:F`U B3gS 0]ai)[W"uBn`axy3$l<+& n>A:$WV`ECD. "RsXɅtA{?8ԏju-ZE`Vu va@^:ЭB8C&yfMXԽU L;P l޻?JGl<خh `vgtUdrzC*s>N`r`[ ga"#.in#r`}N~ٯG`2H?˼ vd.QVִ곈/C` 5 0!0&O1r`L1evC`W #.C`L`9ӶUQؗ`ty[4G3 !0Yq>RX. ,Ýw>KZ>L X. ot#"^d&S/I :S69vO_|ڙ"7 0ﶉ5t(4 `K b04Gؕqs:"01`K뱓2`5i;TeL}ВoRxH`ׄ˩"ge1|vM|s#LQK\~.D`L+k*}ǧO'\Dh2+b)İag:hp B}o!L!0)|g g.:;B {l.%''[P,W`0vq !0)Mqg"Xc 遍V+ܥ 05e6'O U` ۣ%N%8!*`OώO/-^lAsL/k0\Uf:~~rq E],%c9:#E`|EL, '2`&{z?oeW1+ϕ i&|`Rn`{C``9}۷DHHk<ۻ>d%ew$I+d!dGUJyc>cL$L)Ȓ? D3C` 1+ v0*`ɱ\ C`j#sqKf'2`A`5ˎ56]ksV$3C5 &RV%Xtrf+``imf!Ղћ fn#s@ ؂7k\+VBuK0Sx`khƸGXR0ϲV|?~C` _v#fiƦ>`UtlCk05Dˎz F]}r5XS,X܊y՚~ dYwЉ:H+?z\,tz3z/Xg,X1:[ p&6\i⸗kSg7 FV 6 W0 vZqأGa>R5(&Xԍl$?QP3Qjgl Z`ej=z )Cҭw4͖Jٔ]0eCDM+ǕOF㒨(/3}+( K`.֣td֣aNjn8J:Moc[v$1/а>'KtV/`]2J?^d5e}$H7Ӷ/#u$ =B0;&V0YV[NM?vvVHFGdUx%F>Ă{]`s=`v6$w# *E<`sj=$` &L|Gl?,@0$ `L"챥MP!HVCĎM /+;'~ĢϬ`2^ ]q+}bg3RGї[a$qf||_~͇2_x,>3 hhg#%觋|Qڤ2 _LWOYϫI=^{@0 `H D `H D  8C~. @"#qcel?&UfToR2[\VfCnj B`w#KN;S~F#J: య`L% F5/dJ7饻&_*Ǩ`+еWzG踜ԒkBGb'K$ZLQɅ/|gKZjN D5`L R̉y[UQHNj%}.oD!#1zs#fd"_T'5j)]DkXlff"F^!tPb7/Awo s*]1SS;s*XU߇= #@" @0$gH04睹,IENDB`awf-extended-2.5.0/images/gtk3-rtl-menu.png000066400000000000000000001336461407140370000204660ustar00rootroot00000000000000PNG  IHDR`gPLTEGpL¶ȖbKɹcLocX]IҼɿ\HdL̿aKhL?¶墏~[Hح^Iʾyi]E;ޫͿcLŵZHeMȹF71mPeMʼij_JfPjZǻigdt`]K\K_JhQ/.-Ʒs_x^L**)yfĽ`Jľ332988Ә~KIHſ?>=GDB%%$ZYWiZPNLa`^"""ǿ̶VUSqol㛙w~{w~|~zxvxtpM<4TRPmjg ϑwԧWE!! p`gMpbݨ}jvUFcI>kUK6NYqrtೡpZ(N>j՗7XţڨlR)֟q׭a1oZzڏDWynO v:kǖԴ|ٱh75sXϲ0׼b"ȥpq5k1ɩ/.Au$Y&6jЧβGDB e伎AOi&)tRNS@f]IDATxlW0S6S\IJ^gR׀`h Ud*|, f]t,(.ݰm%̅.S֜ U*",ͼy31X3~;d>yq9e^"$M c_6mf0yE7mJ*~52|bҀ-3@ɛz'7p&C oq3 +h@Lʋ~nqo޼FuOkLS#ERK%E#ᤫh fS7Wm_(H9mʴ>%bV8ϓJn:-MQx$_桙+EԞ ̫mH6\m#y1GҡF(͛jԆ*pܱ`AxFHݯV*2f^GߜJPp{A7 fڍytB97«dc !7ym Q!7 fzuQQL0ù,O}]Ob?E?aPЗ.Z~ңwA]-v]/yc"9gڸA"U G묕Jقɽ z3X< Xc< :pA)F~jB3+{;8IuF/dkjh,ڹWr{\R7u鸔%^7sXFp8ȓWB[TL^t;2$㵔..ڹ^S4'/ jԿ'}4rւdA5{&L]riZ j]LԖJYÂb'G) VtptZOߏyu\S݋zesm>X.F#<2=J8_f)O4 ]6Tǯ^zxbAg(.e8a=sckNSB }(@h* Dc<sh+{nY R/pJu HB>SA'>._ A+ \4|o{s''q}!`4l,w'xjs:6tdzND̈́Ksi9V*E΀/Lz"1Jor(́QstȤB-/"Jq%iC ]{u\q܈pQ.|2#>bWB|.qϺ 22ߏ"EDGо*Y lvZ'Q HrQ\.4nKMF:03$!3 &r1㕸zۀ3CsTz喐 fӥYPqq/R__ߝw!unwG9j;2 mսJEF>9*kb]_.F-:IG(vde PCD*Db&'K''M;W9=oUPKVPTE:C-%tka+Q'o~]=\nO iJR\9 6>(oO9bK҈I[yQѯ.L:xyIJ)i/'Jc&p7cTx=IpQ&Qۀ&X` `0Kvn!V3SEgea 0ArX W!-L`@fK+5o7W&`o2&' xa tEF8D5!" E6_L4`0LzFlKy砗 a~23Դ6TI,}3nj)xJ9`  xrS6HSZgTk]yI[PM oT&4ᮞ_}][9X"jiUQpT V߀iظ˜iqs lwwG/n%jspp%޿gБVC^Y 3y`OklʶϾgJڕV},9<` "3O0&`}m`eVKk`ԲkK]- E"/ENX~a[k|wGa! <}R3xbf/?-<ڡ9@[,?Uj T &TdwU]Eǜ@#+h5Xgc*X};zFe7moT6 >#Kt TfɒGjW*E3(^j;knc/Xaޮ˹_.wn]3H&ج3 ;:/?x9R`g=|yy~˜`&"2>hMc[S8!51LL8ǢoBy!}J}†Xn!,7 F0f&ؔ_S~h<ړJ90̥Nk, HcTX۴ki [g?h?$p__ץ פ{U755%ح_*!|>&5I<È [3k7֬Ef)p7{p ԥD(O eƍi- }A0 fwXP;ߞ 'Z21\4x*h,WHK&URҴqc*o7+5S}<Ωďw+OW@08BjO-125f=LS@] ؆w|{cV\J\YS 8RHO!~Е1S6ؐվ۷Lemz{`5N q) 6 *u19]ݐ>s;:Hwܹq^#.,ԁJ]g ?Wz.?y ɳϘ f@*"XD;4`vlX 6`S=G6R¹"B@b0z.e3M?a+,صkN9yڵV\3TTd}9G}𯏞~88c~_p0_U֦Xv:[v]?_`&w=sbR~,̼[K#%$yuִp )JJ>{hHF}oGTN;PiWN g,ذ&|9 Vh=p s}7!`ޙ=qy@B%a #gl|c TTs6QclVf10f \6ƐU85afR`*;ʼ}4|>:Z!,EuDKݟFlFF3k%޴3 "`iחT`?@Ž;驅Ɍ{Sb2rMޣӧ硡'܇ WP RSi9 |l/ϯ>ϼz&<GHgG.~ #As]e:)EW¤~`R=,}O vQ'{>% zM~KB!Dr!V//Yv{Uͱ٪,ު]x:{wgynSk.׋g$ p&.>!ɐ>GɆ?pϙ L"~rubK2(%bFgbG ^`JY@- Ԕ\grʠ /O:_.A0{s{{{;},yᄍվwMxk~jjs<\C]KQ=o_eϗZZ,2ɲj`3#"K).L~FsDD ,p`ʥb ?Kݰ`_ zyKjB2Avؖ ,H.w?<{ܸD5(@KY ㅃt_ Q2` Yo@ 0?}$OYϺ%4߬B'kbQb_/qWli}.!!o[o\tqgZJ|?iIV-DXII,""Xdi#r߆} ^nex{J~V铷dިؾ[X |ɀYE ɿOK$ߧ`Zvh$dޠddd"(00j 6Wkh5 6Vf_ 2 >*nNˀɀ/9aS)ed67>7&21Rl;+z/ &!q6.=^hixUk$6:f?5Ldw:L9k{x,ӵ Yy4VϚ,ɀɀE\Q7@g0"M:un{`:44I[?k89ɀEGQD&MN8Ft 8xVI܎hRVϚ,NlӀ>[̾6P .k-0]ibx4p+gM `/YtY^muaW }o:T+DE 0u{STg`t2>ߩ[Y?xHw`n?on0V0¾ȼB4u5(0/ Ufgh. A;[ [UǺcdԳ͈` `فّlWO7=̷^iY!)SP_"yiiyυS:m66TYC|>J XlIyxEwzy'k3 %Fx6lK蝬`¢ھQVqU,JR5zmMZJ.ďnWehq!vMo66TᇥLښ|֤VcS~aif ʀŔh!P$K ׂui4rM)hrRGwB^{3&;)HQ|T*R3ZV7b+벒̍zJ&j!}ɯIM]V] ̈́58h,*utUrnn++ebLfU֪*\wyypufEEVɬ1P jErbᇵhP#l%}%J54arSIW_(Z:h&vkMM~yXo2+˳tf^VtTڄҸQ:Y3!K",eBcifp*˶[a%|eɀŖv,ˌ5&VqdNZ3"]>olOv(:ƆxxM٨E4'56+\/ yl4q$ $>B%0` @걙ڈ2:5;Mtl g#htl Xa6sM- <ؐp1dm3s3>UB%0" iNw<ܐHY!VVM a,h~2i AO`hfivFD FdJ XY6SɄ:]FZġѻwS),Q!4`&}J} >,PK, 7LHwcTE@k0?~/b C~C4#on.$۳i~Vi[0ql!%h NXab&l2$[]fM%(`F#Bj ԍhQ/x IE"7X`]-6i!&{Woݺi[0`֠ $1hŒ.`٭cQђ .JD%6 O,0a `>" t?F &>}gEdlhw{6z#miEd%D Xt/X) ^"&&q_RlrFPo0#O`uW?cd=Y[0֗|KFtB_NTlk첼%%C`k‚)62ؖ+SK9Kfdyz);`Y(-DvLZT[̖`8xE-l-n}0~zbt'"4DsX.KdQn5 `[<[̡ _Ωm9 w*Qq[g+cW9`$kW̡=e?D컒`@ C!ޝޚKʀEH2`Ud"$0mмlpzښnuI폔>j 0=F˨/)Prݰ I>'g|t>hφ<_}$&?L 0vjvPKTp'M.o7g}Pwzlf;$ OD3gˀ옷 Av8y.: E 0+8qKuC<u{1d${+AK,8D]Pq'b[Y'ELW)=6gJ{֫94zr|ɀIF/ ha_hmh hQN KE^vcEifMYp1^ge#>O4;Ѽ4`gڰ hXlaܭR?i`Vѳ (aGOY8ivډcsJ_> 9w?Md`[*5 bn(զ5^REV- E3Z˓*+H!,hFq&_հ /M6w㏻_}3sz:}N+`=gL:/?gϹRe{րH Y+ y[ꖾVn`2l`}e ,v&%Sɇ01 j~(f o:uƅL )L+k^G,,ph|'KIB>!5Q?ݥ)Kr&5+̌kb)S7j\ 29 &eoԚL|@@Wҡo9o['M5}4B7B(hZҶ ] ?]|SĘpzDo]j/<$o9uwO2``DDT~@2;\it8W & `XKVSS@q<+:)rskx#[xrhm<@*BnJ;4mkܥAg ~R]Y0s&Uz q̩[Í<2/>8`m))f3 uwY, S`Fط(*rjT#CVFȯN]|X-^Y.p?J&m;خ~pj`;'~1DŽg_9 ĩ< 0*-gF'9"}FOR,2Ji^sUm=lWyzٯ?ް^Qu l܃tv]`!8`ta-:QXb%߃Z02 VWؒ%Z0J?`HG>X}| X&u@} M]j0`k9rM@ ]/hOmx(R} oFȯ.sPJJxVvR)јmOKJw1\|]gz#߃`*8` rİ`߃[pP {b!F6imxX!;E|KQض*Xpزz&ӧhg!BlEnڞ79 (Z8`aFV0%[&ِa %>Դ0`v `qFUv[vf6>;-8`i%B]f,>M"0[4OKNZ+Ǣg}Mhl–*[6҃‚|o; K1Z-޵?8?\Uy='ս/Xiʠ2T4:8`jB~vIzWV@ 6-lm.ow_kkJkkc%q0Xi[*CP Z$T٤])[c8ɸj m'Y|+e`΍ צ/{~T驉AKKL5{CJKԂ)Lm\ :8v+k^mlnMׇ?>O*6ȿбTEF3mM6%9>SaG¦m\ z~; ` W_O>yOdQǀg_s)0w:'.OD)sWmmx5`|*t8`XɕilK!k-.Y&"]6jm۳"L?,p ￾!)`@ɻmHܶ_CC?`.m:*͟D?ӏqdoJv㎺Qm-mz1׏pދ=2on/F/Η ])*6-\mTa_4S/G `í+cIܭ.MHGuz}QnBkq̻y#RI=J4`"AހM,|{z´0鶸{Z >XJq k,G `M܂Fu]m/ȓ{zֿ,!PR&Zc4~Aي^qfYNa > /o`ߓ,`5Y(ҠjzHX|(~jtm?` n!r?`]VMt؍1 )֕N φ-07?x֔Ԅ1m%`+Ym b~-S莀_Vi N?>R)yA /+fӪS3TEɚZؒI*=0c:*V31 wfѴF柍|~V)0K” n&A(4`|#eBKysC[l>X`, Jvk@:Nٚ-)φO B("6X0rݺ xkR[FvQV:Mb6(`:QA'':*N~ddT0Ď!b [^ Y2H"VILL:!a0AaR)`A[b-qV0mBѪvŽ/{)B 4O*0^PIV#o|UZ&9‰t}h`Lq W`+wb՜< COi_;%dC b #G}_(lk`x+n@JҰ#AsMI)bj ٝLHmZ[{g8^x!ͷ'hߑ#Abl64Y'&MGtxδ:n%kmer`t%TT:saU?_%0&X]eSh"腃eAAi?TX&+vuw&2&LE, (.BLD̑#c$r: ^#-t4_XqsluT4b0`i{KD۶m1` F"<н**dzIHr!4"~J'\B532O. ?0vFWn۞wI➀nEipT_4W IC {nݱTaF2D2&%"0Sթj5.fQC"2NaHk"#s0\QvLDzyWF+n{[6sA=0Ee2PRR Id[@ (O-|6& 3,DzE˾Ke0.$mYB2H4+#%胕MR #%Wl!bIեcPf2p\D"TP ^Lbe`YA1fɥ/+4+Ӛ+Hg\]K$]Zo?7mEwF3u_D[RE*2FR?e`.TAMM0 a$gp.>\`g々uƆhbB]1iEI zdn܋wY^ֳ 냥TfT6Hr=SI!BҒoRx$ijԱl0ŀjT 2rn~nۖ>6M s+>DA\ 6DǪkr?؝>9O[Ă`D3-rUݶ]<87ӻw"Z]%,}$)`ҫ6*`1]M,h6F gmr5g麌ہ۶Şwg>Z[ݺq٥9&ԻL^i~_t[pqZns<{oq mYS|}0Y [ݶm. ]]n}8`җ}/8`>t"=vankUi\e'q*AReVSpKˀEqIQf) K,a65`[-!Y|# Tt8`3#hKɑz2Sr$GL iHHz]W' XG\|%T+/&ّCҖ{113%G8lV5PBԌcaÒݶ]C$KmS am/z nkkJkkc%qPނ^W6|8`A3{DlJrH4p E^`Uoه^s ˤKls؎G&$ﶍ) am ,ytz 0k`_Ë3b {G7f;Rd}Y9|X-+ y-٫3lK۶#Ȇ꥞ |e_9Xlcsml>o[}/zk,I'IӮb'U<|hJ;9' vpR궭{ݶ]nON9/9--W}ICuA/;pm5dYڙ;Dzz߃9d AHs)Yu|]H%E%( XB`b|˾dO`9}3f%򛤀qoRޫTW{^J瓃H03u|]:6vu: 0*-g"de뙤 i5AV!S6^Xm#M} j:b)/5UDVVj*,2&vvVPr4}<)Pi|RɄ id4v # 1l6: > ȩH.pK+!Cy'N?'ы'`;3EXzl!(o(`S-6"IBׇxkA3KTcBF3=lA䃌!NHDpNE;t zSUMO 汾>сm `Q$y9؇܈DVDh2H?1H 7H@@K0%r *KCgHw!S'|mFGeض ƄyZJK[H .WvȄve};EwW[.E}6lۘƎ1`R ͹y=¶jS[lg8`NSsDmFmcÑED|'Kc¶XԱC+&la绒mN=mlvq Z^Xc5"`: ?|67;6 L5jFrQ^lW䓭M|uem+SC;}{Pkԅ bu8~SyangXXotXQ& ؇,q|Em{̵\`2qlf/i[kP?7pQ5nd20 ·λ8kh3+7 ?L6 և`[ޒ9.wۼYmuHwkEDmר [h]7J\ f.Wc=a’9ݷX"O6 =00L 1ALq3{Fmר HYE>  flO ذ#œC97, &k0u_IHA5 0㷫nXccD06o*d(}!Kv}k{E``H+j ?.xSVUdOՔhRY1@X{a!l2U*vg;\ X{K3ӴMҊ[ĉ)qM|/ f45lZIi)%m_>˟B\!}'ǡԖXTT$069u0r#|'/?oV! tQ+2nO& 0\6g)z|Lۮqkq^9W?ث^yH*䔓#0Sǚ6gvmN:`3j!Ri}l*[@|z!K[T *oQe4q{fL߳%UBUYw #u:Z%uO2޾Xx[5*))n$"Xx7q)Xm /0:I}N/^.|`IQQ(hlB9ARyP |p]9JN]8w0bkѶa|Ŭd#b¼}( lQ }ó_*qv K.0]E.;7v.Xnnh sL VBV5,fVҢ'!l0W@.Zġ^1m.޽'\t(@n o7 F>'9(}YH9~g>tA=";.m/l`` p"7D0_[b0` b1n+ڄne솥j;D0fgX<7$\NӀdpP@4$SD&tUUՊuU/8 `lu#3F 3X,Or&X!]%;3#p)pŘ?mtfnp:S%ǹZpX}2U_I0h,Gm}X#lqq3Wt>4/%HW2 25z 68YZW__ZzY>loitGFګyyD/,V, T`-l>7n^MZ6 vJs ,3{0t<E9my,x59hz$Rm&d2xljjf!==|>8r KJ;#Uhʞy daayyyN9E bM0"j#eςY&fTWӽfY7E;M?933c}:3>`LfN_v`>Q^ bJ\J`y͝`{[ ׺ɑ!O_כ7DÜHRm"؃ya?{k;]#6Dݛelay>qO)XhvPyG1v.!yɋ僱Z&',7+o拼LϿY_x(EwGΫ` )`{^~eeۼC5" n2` 6NKݑ`17j;j\P" jfv$`+2MIJUQ+![%M`Q) ee M$l>XY|0q Vϩ`KΣK4y |~I0m]"j,!/@M'Or".f(d|ee ɳ?;c4OON;Qߕwk+D0N!  em>z*]YϻwD0N!m+y9OݷL[O6ZB,Qnmms"F vl>xC{.OqVHiWؖV5D Fla6-^X0d%y ZKϟ*_NSlWI`ڂM;op{ˁ٭:ڋwXFY2YaJK:mu*  :)Y~7bfmsK-B FQ znrӋ`L I"Ly@),$ u|n)f疈`"k:h.ki]6=8u(تٲjG0Ӫżv ]bAsO읳.,%vT% \ƃ>J mKH6c=tt%wM꭭=t N$l1(RjCSpDM,L[.^B츠ktI`S^V}PxNne^&9OWէ7džԅ/!/;@(k  Z0E44u0 ?\4} \lme_1M(I)"aGoL".[I0UJ,RA 1&7ǚhlh(\&M`C}0h7äLkίkzhͧYD]YbÀ[ 77xh5pb3TH? dVX3Z&S\L:N 'ԡC{!o^%P@קj#xkhlk(3tGӊ5 K'}_9=tNia[9CҾs̜I.90Denw`թ*`I2&&/låjj/d0`eID=e`W,iAmZ åBP)%1z&aL0ƨxȀ,0no':Gq:3wTJ3CURLLB?wHmxJ}Ci&0niaۀ Q )_@5((YWP;.I ZQm&0n9`RuI R廐|c0n^&'ĺM0=CX-0[| ח}W0Iax0n¶=60oX9ჳHV@&H tBj=`R¸mSg6*/l[ݸ90 0ÈJ$[*@Dd .v&!۔aml;r+@V 3ad c0n,q . f'd1* VY)mWƄiiiyKgɀ!P "GE 47dUv G $J=hg C 2<"jmMT"ڹTƀ1F7Onn]HU>a`,˪\*`}QJ܃Fh|$Y`b"Qf8oV|Tn+u_| UXQ`XVQmy#< 0z[΂UaC`L,`~'GZԀD *`*`i"C89,OEC=$|ƂȃQf>/tHz0e3.W`"3î{;D/wacA2`b.[_4EfqyFeUS$`]pcӚ[[?`~8Z˟}}.??+BUacgL 2+3֏>|tVF_Q(l81[8e޾1' KWlRmHKl0AnmӃ~s†:Ptl~#| 02mC}|6a [PṕcMN0Y[%Xr[{{!%l"dK t/)k0alqf&E0K{% uT/lZR%K+q&)`ĀD b@ ~;(T(;X MZxlm!k" ^Tq C5NGrWjI6-hC6`#Wڶ'pGTqׯ4=!VxlaL `%FX2lA6fkw ENΩS%m ~CH_?,0UENZxpEA,UY[tLb<69"KZBG%I3[Ϣ19č9V%Xp`6n_9}1J5PYTqRKiz ؖWo=iz /4~ XEĉWml᷎#ėv:/+JPY4)Xz=hN<ۓ^KDQFCux&27z=qrPAsK91Cc ,.RcKګRVk+l5*`7k$)Y)LߠPL.@2q=LL]"0ƨ/AIėK, x?Ig쎘9u .e7!~-]R̬.SC_MM03`vx\>GVV;Op)m}=3A\=2R(o?SH&7o9`q=;qlintfgW#[]^NLڕRFd)mfxDqUJ= llEU/W24`NFs".h<+!C?*G6V}]!)m\bzJQ,y}L4YYS,`7=f;-a6 !+T,h飴O;,+lj҈6fhL 0 4:"/$Nrv}.oeQ C v6},]`+Q3;Jh=:WLU$f;k+{0 ,w^tsfn|lc};ը6S8mv0*dN-`߫)V&,"ԑuH0͑[-VdskEtuY@k-ԓ*0vQAM5|M+UEDX8=%vS LqMy:l X_7ޏ璖ӥkf 'qn>akg msN>Mrxl89Rxo1b `+ó+(4ş_7IuY!.IWt.Ue. v.&ٳs'8+; "ѳ.1 [pYc *"^I04xB0}VPW]ҔB'AdJlzxE'RLHz_Oh:+ vF`0y0zkgv|C * J꒦d%=v>C,W4U.tg:u]ӣ~UVY mkxzb`HZ}'פ9H10=ݩ& ^F+' `qWPI|<3z%M,C ;C-s3`c꿝@s-`:* T:*I1cetA,q.5`Qᕓ+('BL{(Ȓ>tRX8e:,ikgWVA7<xmX8 >U&ըzc:JU1ƃᕓ+(gUOz"GF\IUߤ#_k. y@ۀ!bƪxMH(.X X`=|Gޯz tk)ҫO3axu:l:x. ٛ*`Q}Uo8a8(=%DŽ$QMtO,`gZ&zm5" X|0 0As0aʭm i%yМ /4` E~FAd;Fg9MrLLws~A`@e.pMX3*N7 Nc:vT.`E﷉+Jb Iﮚ L";BJ*BIS%qBB(*4P_^I>kU)$Rd`>6OE/&E|Ps0^ӽ/RrTSv D'.MTkKwXL^/\H&QN0Ld3-!`Wv0:w]m^brQ<({r*9]rly3–dN S8;w,c%-`xȡjrP"VRIifq ɸ_,:*|ţ ` X4xuVe!V.fl[΀DR;=;)`0Z-]^Rb ވb XI WD}h]b+_0}FRˬ`\ƭמCUJR˦׼ %)\I;tFʀCG!0S/^635SIS'',V"kR+{ٗ1D<A2jr%v#•ء3<}9H_etkp’XRoN]Y*E`T ]`i*%Q\ٓc i,0p%I8^/:zcoVjq,gUᔄKbJ{Ǔf0,P`lreF_s4M `xbǎMfX`VJU^I xDlU)XkVd4+{r?%vh1L/KW0}3uX`JUU}/EF"f5F+NR2hJJ.>-DR4-I;29J49*%dU)y +;gwɎR f`U2.U"kxX(vJhm\?4f/Oar*Xćbl_*&S2UdžvDKUk،VP*edk 0Vj9˶S`55"Ve옅Yk,QdW=k/0i,)̈K걙Oe۴{mQ|O3qc]SGlF95Xzl=fYHftz3ti  Jhql6`-BLڠa,;=u(V={T7+w ($mz<fESXiV$>$܂gԒ&k\ҼM&hO=aKl` wAGl9]r V(=48ejc `8`i]Tm 1B/e&M׸,K wziN9̵v܃mC=6i6 O %hXE`q4Өpvݽd?=e&MjԸ,˴p%{=Mٿ,=60wQ6#+Fpsw`ZSLDMF-0cO=4^;J() ؞w?xF"'߀e6QWzl+FuݍϩV-e!LDM)"L0 gX:ccw0SKԨqa8`$S.`M零5zXDSB-,E=6dfoDoVJi0tSȶY;XǸ5k\C0 #y@=c&S {2'XUcs֟Hci6t [p^n?eĩ/4 f3<+RBeN]W,k+\xp/y na4 =EӞ"|OrzYjfjȶCpZx4w^t6QO/}Gl99;."\әeor4FO(nf{}m : a26:+:: e Jvuj.K6:g0f`?: VFӷQN՗D GkӞd tfPnt&-` 6oO D6q'#w15R~`6,|޿3 7Q툋#}>%熶xCh28+Z1980aO]cu+zLI0~jF#51}XvkDq[Wp+v `9ݘ p˝v=zn 﫥ZJ 4llm[4m%kp2m=0sG- 9Ĩ ͨ#MƸwJӁEG2t!wtkp3&$Dq'(i ŀV{"E$%b%{X";=U>a6`f 4ɲlLXAYր}@WYtvm|=DsC[nh].:uÖq'gO\Ej6摙"R<>֭p;)Qy/5+B1B$m*A| e=@?0l̫~C9`ElY&n6awW>pxJa±Ş8GasSYY[?45v@I iFM<.GKkLj$د&`.bVBeV|U,K|$ɑK% . MJyBΥ,`깡`j%\GR—ZKF]d\Cf͂ղKWJ^0P0&[09`d&\Ud#ɗZKְ,Ɇ},+&〭lK|d#IͤaEC()ef_Cn0 ilr$?J0j^Чc2qVp&GIè C˜ggSSFRˌR [〵Yq8`R+z34.ۉf.[ˮ*UlS;ʏ%0g#V,R 0;3:UhszZܹ˺;F̛XR`VJԺZ,^j`p!ҝǿюӛhT`J5tBD F.F$c ɎR  [? 7nWs홰'^uE.N}cn\D:1F ~SEU i˒.sUר].*q\9@>0F~h;;7v S30؁' ¥8FVu]aRjG})R]ttl2UU*}v&=,-xYUM&wa{c0E`;;n[uVFQБx CUJLiDSU5Z;].=`pvAwg9qHㆫdSc#\".^g!Rm {YLUb5vfc %+)w"IRCñlf$b3Xfkko~I@p9``SwU+}m#98Vr'(F/QJ GlƸгAA(5Tb:F)¶㜃/`/6b8| ./}}'?Xnjv-?_jwٙ]f?w^_կO0ʹcuEw/wtc ]Fށ[Rwfs4701̉(FLΚlLyspdVqK /IW2,, '`36c|21eBšЅEF]/9vwzOǿx]1j]NT'C5DoGrHH31p3_v_3;3wyXV)EpJāx,0yh'[{\0J93VJ~Bhufp(CMbGRRLDA.kΩ/t3SB[:*WoGJu;4U.]B] &3;gʀU.-ITK(CPeAisqZϢTCm>P2`pzGhzR*%e`Zejq3c&֐m[X \:Ó2`J]20N6ڸaۦ\~q]FWRW) E$q+LqǶM-bRzvKj]2-ƭ6MJQh*eAX]6nWqSgNW)0*%RGs aڸUqj?iL\U` E`F`QFiF`E`F`QFiF`E`F`QPa[0`N~l"X_WnV" jc{=}.:z).mJjcK/}5)ؔlvYeKR Տlk5H=Xs˱$O^NER яPfe5ɚ sYsDmX"*+9aBJI6_ 9QFAdgnL\ُM`QJ|{ɚ ͥ4 ]dž&_D2s7'(j Z(mɜZ)`3=&Ya9eas @]FA"m#0r 0g?t<2"[a\ ̋rD$6m" UvP֋#)F`E`F`QFiF]Y<x"^AMkU)ثdbe6}g`_#+zyuP{/fX16Sh\`|A)WPa卓x_إef 0 *^qˀ9[a!?~pqUy?%` h3Fȫhހ0*2 $29t3uHdao5 I(0[= $+,26{m9ZH}$Z61>s96g!h+HFŬaoH-]alŠD*D 1xMBـ)jIg`<{YbF^\AR O*bǚ_b#g1Ŭ(+-yT՘!@R"D=`3 *jIg`|mM Ԫ&LoyN{z-Q< Wjg.Y_E&|#!D&r1&/0Z^Þc֝t)go }iɌ58y Fҏ ˾H^֊L &P RFfP="zkq,ֺ3#tLʎua/ؒu-i_ZL R$\sVfo3\@zKoގ=)pon(z֟t'*?R4z+ϔۃNb=n :B$ Wq#fVfvlry @#ow=QPA:VW N:)`m[+PdruUU]'3"TI˾7zB=BL0{`\}=%mGmaGޢ:+ qBfzCsFԹ\35#5Zˠ]F{3*$:j}t*q$k};%g9Qiȃn8 Ib4O~|9>4cXj`"հ!K` I~d۰>ʩjL:`z[l;N{ڮӟ]"gpRMM䔕uSK̋}ƛE+?d[[ KzYgoVdFIi4(bUBSs9CoVU,v:?<`,M&V,UL׬Ñ`<ϭ߲V*߇oVΏ< C0&tɮRm `8K\ߤ}t#RlqAt Fj*o4{F0`4O6sNн)|-rtq& 2Jvx4O&ƍռs.M.O9 X*-Aˀ{t Mg_U9A=Z'-V{*߇orxꆣbIʚŴ>P k{* '9Q^9 @λvj A3K`AλB0bA0& D `` IA0& D `` IA0&R(X`j $!X`j fM5n=3'jP0sqGv׸ Ib UF9͒cԶ)֖@0.j8P5nms X ]c>Dyj۶r`AJ#X+fvеm,`)_!]y_8;q3KԸmq!9KnW맞}}ng!ႅq;0[䗨q _T^rK{թesԓ_J,$]GeRYm[^*L&sǏ "!q?q\jے $ &-ڶ"d"A0& D `` IA0& D `` IA0&-׶%!,%-@C}lÞ}lDЧL@m[r``ajACPN&-@G}l}lE15_57h)oҫm`L61 }l8/_WiV+bSޤW lb,mF556_̱U 1>Oyն@016ރ>6/╯N۾GIm`L:Ʃ q7_ƧwSqx/rtq`!;֝.؄#j6>)ئGˏSWۆE& cDU,&WޛC~& L:qjcGDn|'iZ#z8 ?!v))5WAܪC$oyrqT*rӿj.ڲI"Zr!q(2SaA $#CPx%3cL`8A0 F K`KAڈPd`KL`gv`K# L-8at4OAp̯Ɯ t 1QWBO ?3^1a?r? "dj5"?vFGHXruanYoh2Osp=|Q.T&Dm'\qj %3)#)4Y|n_)ii!+;Gj& m$ >(vnB`?ׯ=Nk1j`W[-|xDrUB1VjB`C}{`C/EV"0Fk%/'vGTZܪXq^(f1KH$He v`6яE"jT{ ̑  vȽH| ,?#߹~%}zvbn9lln~8=0bռnXOlvwLOԚ,A8_ i߾i_TR1EA@7`r)oa//B{>˄m6OT[/cH>*=0%#MijQ򺈺I`^=  EAs洷kz cRq/J?E`0H2k%u}@&0a7IJgw#. /8[_aөW&0xm.P?Hդ!g`AB=wڽ! {\Vq!pqӽ0{-ppݫkm*~(^E]VqXBsIU jB`_|(.vC||E0 ª7=V)@) C` =H60C`L!j`T aknƉ F`qs&#[_6] !0Y%/>#k'X_]K0ڠ!^ED`773204>؍-ݙGԔVa{`s0X_307i+Իw yVؾ'_UDc=^`6ҫ_"*,Saƪ,%³]]knS(M7K|\*K} Xj!0ewʜ 7 إkq2Z0UPHؐ lO :!0mؼa舚K L܅R^&l.V|0!0mUbo5G'4$,a g'S X #8(];*zvr|v~~OqU)ŀ)6W Dͱskpeˊ=0x>?S"ufv`WF Ċ5) & O6 sWv-Qi}5M xw3`U : s;]X꫸IOvMU;Z[[==u7çRJ>~A ؗt!/,/r|_`$q@T_ )yoo 0}5[3B` Ո^ptL!Z(C` !0Ն*Q*`ܲNFC`l:>O#0d&,; )nQ)6nƖDؙQ{l`fu‰h)ʳg7!MLXvvfXFB`* &Xa.G~7LҀeGag A`*۟"s9OB?Ӱ 0e-;zya!L1`B 5m2IƖݨp6*fb,pYzv9IƖ-_EoB k'\`ڱCx3F\^&?~8çʅS0!0 !0` !0U0s-`#:u62p&H"0YXĨNa#HCÅGl$Vi)btdy8/!al#0rc(!al#MCB` S X-v-0A|(kFeFa6suʑNg{ךFaCz.I 6,!%ܹ7a`٭ad0du/R;s338U{378Ofɀ` #ne{c!. vac!# AHm c`TZ6j #ب접L4ѿe1Ry] [[u+M<Ňyq%QZ-ACw+fU X׵ F= 4]܎f!Y/Xa{uGy!(XaeGI;1[ѣ&=jקzƗ7͸mѾ IK`5vagym[~CY< ~fc'l>D\Fඋ S9 PՋL<>Dx3Nt5)IJ<Ɔ VGUeA? /Ce (X=z]G;S ֿxU-vĄqJdLK!Z>xd`|[xGcbc>I pPhi|3[<#-Qˤѣv: hq:)4.́`N֟5O0[cP+#={1 `bh=:`bmGLH8d>` L"j+$ދ罈-IűR;[^ `L" A0@0$ XBn'цS Sf`s6\J=QOR:ٯwׂ FS`mM(Xx ~OfBV$j>z.IpUN'3_;ۮj<QA!X(XxP7*}0ȋ|#5NQn ̃)Ipl~hװhQ`{GfOk&-4oKc"?A>X5UdX`01EQ rlq#q#x |Q'WދǍpu I!gE6ͼ(ҟvqf&{CZ ט^2aCSmwd1.}JnT2iT/z9`"B/ӏ~枥t:GD-C0 =PNL100877zvsӘ~zgt_Ľ}{ư'&&jgdb`^hQŽL<5º݈_M盛{VEmOBpooiRgP|`PxfpbcI>ҡnaϑw(Pѓ5e5LZتzg߳mXM՗Itc2ʸozmfeSlR*֟sŠq~=yw]ڍЕ{fJWso⼝̑xR̒xq<9o:Fl+\25ϕ{ة򫻝qǥSdśޭak됭؂^ w7tRNS@f{IDATx]lSז+B9n:mRޏWG' "4 D*AvJ'bi$2`Qq9n"aE':DDj;(?C @5Y}2Pr!ɲF8'WCY8<+:H6@",3ZtnZ^H>}@mBRv1A8Qq$41.ȁ|,J6#V,Ѷ6}"U`MtH>f(E+iBCœ)D% wwNe&Z).h.J9P,9W%( (0Xk ގpo,0QQI+pyHMKB !*ٔ6p°[YԢ\Xs=ϖ.y13/II6[?wML]TW'?-9DZ,ER5!H- r|jj ڤOj g}(;QzcgT֦ʍl ^ZW=TGpcAXNɦ䐾6+ZGƫ:>3 LO>TlڭXHTIڇg8ORmGZ>ؾNﹶoNnퟓJӡR؍c')'؍ɇs!S#ճ/-:\P M`R`P_&Z[Ϟ+D"hSfefxw*WHI)aWGF_ZEth"í lԇ}S#q20[.<6A>4@M`!h{Au &#h{AuGث;GdCawkoV5[M>Qd4`fx}/so_=UWs-kld ly|A<A<+T#MvUc6M͹-?rRd^S]`X|rr2z)4 16 4яJ0Dž)f b?GiAfzVz(_ 7,0Tu<;TŒ㛌#T*RWWW,Ȣ @/I.{_.YU Nn2w\{s_e "D7T`*Ȋ$#1^hMHRнuxQHP/> o lGaqNɹŌȆWJ6]L$n qcqwJRsʝͻmSk"g bq*0T$OPNJ\aS?ƒw>fr*}}e2feIffәK5l&5'w5? ٔTPK9Iٝ,<Ň&Өp@XLBm*9J68;{c.֥欑}~-?5T^0UZ1}YӣH0CXO"ͧӂ?3 7P:)ddy'"$K0**lvڵ 7P`H= Ef֗pK;Z5믓'T<%>޾m([\@:¼'O~xP|MWmRuvwOJ}T}U]+?R x$K6̇[mgn,nA͛~і>w+d{c}++kJ>Z~#-KifG\O>ݷo}qzi4!>O뛭ۺm+^ \ޖK},>mLךDž 8'qBXR^vnÇe+E4%)C0/&PPh A(JV檍vRJTKu/W}3gfǗ#} yO6Op6][y1 vݻo2==)`03?Lo!_}6YkFjJcU ̊N4 o_$/M56`uv쬚xhG/T y\ةɨA˟׫ÅUek]X_[|0ܷjȱA=\^'?|BΓ,Z%fq1aE*`5WU⽰A*&kyyMkC=^-l>\ kCQVsBȪ::8AL}J7E.LgW}s3؜9iI!L-oxUԈ OR4*`<ޖϞ={-SȀ*n^z =[n7mlaq_~<4ևƔDQfDv~|\NkĀ}_4p&XB!V^n \v*`0#z)^Q6#yWQO}xۣx۟`\G? mms$犷=Io{ouwӧ#dlqarآ,))w wV\_BpP9Ng<:=zr5i1{'2&[8=^׀9I`P_vJ܈ Q@-9AX,rú@M PP5PU+я_NL7 ΋[3-T[bg1*plLH[u`^@n$*Fi0b&`&@^N HG$xD!5`/'cG?N &JjG!.HDy~p8 JDLhv#Y(*VJ49TZ" E6hޟ#%pPxX?I}M4.mB8rD-a98v5cn[CVINވ_; W=v9Lԟm ``X͡G7HH"# `Y%9n MC\w!X*D™0=T\|1JnR""@EŠ_[+2'&v|%_a~3oIk>(j qNYtۈ)QnVf>MXưF 2gD)<ʰ/`+gTs܄-$de!$l"Pb,AHG*z7^4C2p%LzL"mK9`t0y˘ΐ*yŦ^:[,B*4".392asQbE$ʪba"D( *fVTp(,aݰY n X6Zw /4 JHr0:VDr)0DYj4shHc7fˡTJ\`)xSB))XU+lnύ@X t=?KdД(]Rm| aU% "P닂T9Ei ڲЀS^QE42JvPQS3q$צHRH(KJNJ))']Qnp{i;]YY{wWFexā!ŎYen8bvb%DVJEPLS lh$\mkI\}x#АZQTt142U2Ux|gLwŮvCUPj- ӃeU`obrh8AtksBmCٙCA*.9BrARb/`^j"{wOv? `l꜔ޛ= Y˴R".H\B$j 9s3uBqL 997q3U|] ` vY[ι`ʫ$S\ DXS=G(;Ǚ3[m4rR)Eթ$Z `RFFP+z}zb뎝,--ƀۦrr&VOVLw]|>'\#9?94>ncfJJme l6u'Ά]bWFk-_,iĨw8N̥ɶBoi0408E>V"bL>1gjЀ? JKCi<==\uu~}"G}j"m'z/Q^ !򶧴9R{vawTmr~d,5{dCbItj+z X<~}L؆S]bwf-2Au5Fz:]|$ 9]yNG`%k]a+P1H}UF!'9?FO9;s!D42I/ IS<Ձ?ag1MTÇS=Ct ""`>NZX4*1 Qa.C=T;}ʹ}bnBBG㺛x$79o3:.Kknv8VSFgAp׊d1ֶTXwFcbrnwv Bluu\>88G#:ttg ~#@ήfg OIɽq An|2 ࠲Q.nh$5FɄZ^횞n_-((95,;4IΉ6DQ$BmkkiuDaR9?!ܾgđpVpL6K+3,t>mI88zgq}`u1g&MΚY\psm>͉s:iwUk(tkW_a ,hVǐb`X|iЃ7 ϔ*0BsRGt6`9籋q$RE ,'m\Y,A0ҺkP0D(mtA.e cfݩJ[{| Ǭq^MPaݻ,␣ o5tZ{M+f,n/x7J'FuSvcCv.a~O`N[ˉ%FZ[-vR:_d6:2j2`Z\śnM.p{cc93}d#"PZ*%GpnuD0ZKZ]+4(D,g]`V=`P|gٻb2=n㔣&qȰ`ZHB3ٙj;>:m4Ѻ-vzU"'V``+c _a3ZD>,vF ߫tuUWw^T|zAbG"`c`8xޢ5+&Yp.f" UD24fi*X\MQh5E8n.h ?E(`Z[`+5:\NozoL\>+0WlnEH> + ;bK˹XPwg P>5٠S5bh~98`M;lIҨ0y*\^V"U "WƤ<ۢN5D?VbmVSeNۻz+,ۗkliy-% lT]Q<:}$#\rSRrs$犷=--V_-sa;?@8;5 2'"= XS67o{E{;,`Ox#fR;n ZENrj7V)#o`}}$)M#54XNɧm[n*,Oy_R3XDɶ>HU.iJ?߸3f 2+}ou2IICħҮZ j3FfRhSZ*̖h_XїGtהa~FtP5ɒtQS%'g<'weX*X>M}ɰ7_xLIy`lo4؈?Q6ᓷ|w(1THN\>IC:6`ۚ&XS+LCB{`NڟPm8c=u<;\w!N=]uI,3Z[ `uJr 0f(`N$lr8m*wu'Hǀm҃ݓt ~4[slofbK̇7nv 0w$@SfFOx+ɊkRgjH0lyd /[\k&2ݺ [Cۃ-҆zq#V|`*O jAm X{_ ݫ>PnJʸ7m|6)Dk,Yg'DL/37c(1TLÔpyT-MUbƂ8)Lȥu!.SkM-\_iFQT%ֈ7Uf\z}}^$GЏJEQJr O׽òV/+/Xe_D.:M{ #`"eh%rӥ:ڗJ& FK6^A#ƬytЈ׉VrbVtn `lc_R6̩%nc R@%!0йp7K˥*Bwxz3hweL:i+ 1[S] xU#[qr_! "a^Ų *lyƻ.y х3x08ƛ7f(.3pH&yseQNΔ9?<>,:Ùs(`pe]&A`ޒġcN0h2QN uT< 2)¦ua`-t6#`0jEi|xoG* `)OB0ZUo -6@(j5dbjT"66KX .D (Zb=2~4f-b]?5ħ.=Ǘa`*:^L5|!ܐ􈍍pllt0ˡJ3\U^Rˏ9l}}F p K ]hMlp4d`pr(,%#xhV19` &oQ˸AAd9h<8qBQ䈿cN.$+9DZ_ S7G3FeՖ-LWHS$RFJ]jd1Y@{ E) q˷=N./|HΊVk'HE[ Xy(u%`OϞ}?m̛}7f Q^Ϛ>q.5.$>m.Jh|)IO42&q%[ }CC%`o]otАƵX]vUϋJK8,E0y%%q"f9DxТZT%cJ}?: XKz)ZDTkxv`!`$+`mSe=moRO*J_<|xhE)ϿϵOx1"'(9"gS&D{Պlƃ$034aeոV4);R?Rl`m.,d?m4p+%`O[ 㡕{d=[^hM^V^(/oTҜױtH|Mt:Ah]Ԋ(Q|K9ifc:̀ٙ Rg?mfI5d_g O |}{L9gnp[h50޻|*do6Lնi>{kr^ys:vKEv`bV̀ٚ Sgڶ+޿܋؎n<KJ i0Uzm˛KK+s{~yl?=tWB6m 5rڶ) ȯ} ݷ>XVn-1D4K&Z_:Հ$-I87U\*qZJ4<y̟̾km`ۗ}꾾rv ͇ġ?L]M<:K|P{ztÿѣ_"(m!yW[+\ڇ<6J6T`XXuCҹ2}wo[|lD+d:2jR)e k_`􌮥4/9A`vp5j&RRG3 LO Ui!V~l:VN@zLo:PJF: `eA1)fk X&Jmi}G"WJzҞbď N`C',Sb㢜[&``?ݹyJ7V݅UرcXUuaw "ZU' ,YXtVgeUC ~aN _!@(zHLˁ(0G\Pe~ VV6`3خ-u R0 uKu3 au鱰eJX[ --0K,Eӣr YQM~{`s0ՃYå7TCw U~O鏡Eds/wg_fe$I&t$2I^lrn:^--nUk@E'Z ў* Ɉ,9͕e[{6٥)uMҚ(ɫ!֚o5984E&TzS LBo.*" Ǫ4*ĩGD&y,/ы 捛Bm ۍCD?x\W]ѫ< v<Q"ufNhl*!i9Gƪ?]| [Qi!-ۀvXy3F˷.5i"-Ӷ M;C2w~@o .^,1`G0ۏ4?>yqb3V{u+d$bܬL6`F ɋ'ܩba. μ;-j40I !;*Dw dhiqD"w9p^e彸n (Aq%aڇE`lN:y?*|b{ٙ1p㬧m {1 m/QlLxiiWvh>6 Q| ,ʮ FKةS3z3؏.Q!SL{֭? DK#&竮 Kn< s{L2g,DiFOt2GمMLB~H]5B.qaj͙qe@ZXx 9D88!cT$ryʕ/\ CU*>tz/)8|ׯ_v8>TӉ7?B+y0׃Tӟj5δmxF+\Ǵmo]L޴d95I " ;Ə`cGfbZ5uglNW,]24sbg(Uk$s]kvpC*bY^ؗam1gF['Uz{Mi/"N}Tt۷{>KK8o)vS^ݸC? z}g>/i ͋? TO6,J3TnIMgggI 4{^rp"k!Cĝpzi%OŸbnJtC5M;UjvLK] Xb`=:7 S ,PR⬩*i ףDݗtNvGZJ~M+gm>n]_evqGLee/,#i`ڃM;N ت?Wyˬ?,_Ts'{56qVbwtEԹ-ypik'ۖ/^V!je<*!礯GJLuڕM{Oh[c ٿ*#`Ώ_PZhcUל0lD42Ӑ֢M/.TQ$'I!!=Mr)CbOԷ>߼IoL|m/`o\9w׾:~ kcJ|QΛ 0y h7E_Iә8o*)凅 61Gf[Qeg*߼izdƴmЅyd9mK鷾PQ};VC;?ژER,_vgLog*Lg=E&)rMC֎QtB *5iN>ԏ)./! ٖy0`)9TG?yI&dg6  |5ѓ'+ss ={uG}k<}oP6X[r*`Noltùp[)nI#>)Gݚ1UKW8g$@3-°]5TA@^ <5ٜ|iYO_.s+x<2S`Ϟg+_Zo*E!LL9i*3 zVCAFXLE#u1o=BH2˜$DfhϾSB?R#Q>N֦mý8~ڶ;) `g{om?YC/<_cߞ}/31mױ A2̂"p̚ x.h2іɃ))һ!)Z3IZ%9ʺ<اв7ךNNAӶ}>Rր_Yglw&'eT2T"bSH^~&'\PLq7G)  Y͋; t;9*P uKW [,KjzuWkBJ ӶihٞMYO69"z~+s[6/_Ԥ]/G qM6A c8t`2444|<4C%I͇3N1ŵRbK 0 GذEJ; SaBkYB8M9md5(Ȳ?m[m^r]Zz!5]f,50 d +\t04 Äq::Pti#"d=阉i93fi鎙fӀ7kB7!О.>5ĕ(eCpdueؐЧxƲ?m8mti۞yM򷱱o}m,7t\AqIHC $p(TTiK:F+:BC޾X95+I  ,`= \d&I`-f`vl4.-,4]D8tzӒ3A~n.=3`lOۦv6q:mOS_/`)Zf*igsXGy~>l**w"|,@j>W~֋ FdmY##sN8v!($WW刖ջPZ)ʢ i5; %TIdI##CΪ:dEK=RhI$.uA^NN"F^2y2-uW'cXvk!"{mgl=-~LL1#~Vۿ_Rd⑗X $E8.T@#9޶H;L> Qm$'X7j*8޿6>yB"V5\"eV4lئvFjB6 :֛*RߐVApS@E$:R8]I C<* _v59`e4)eCP"ڒ>;,f<8潞 ]tFoXbbem:D-(D2]/9N`Ҍ`6;62e-1RC{^hLEKR8Z2e)F0Ɏ-/M1 dh"R"2y waE{Lp #0p$R*\DYKe$l -e9Xǭ"2S,tvJsQ+[!vDG vL~4㐁Et2WUI[g5je!EGyeJW #Cj?y7 Db/=@JvEf#ReN}Xjٞ% 9tHټ踭L'`oSli7|XWf+b򀭳T^miD" bIXFOZ)4Ti@˳jT89`L@K4V<5`!*GJY8,Rx:#> Yp,9`_[ou9AJꄰjLLu)GR<͠fŬdbGtsL0 f s`d` رĀݹ^.!۾aHj2:}LJ@(l,PȦSR_\Ytĥ Db_\CDezη>`w0, "֞ =5'Cl3~;ߍ-kzX.k5ڇW!ex#RC4jlV9Z7,V!f0a3ŐARvPN'{8 K`F7 mGmܶu˙1ld M?a({3O׽79s3V#=xsE%3eM‡>+Dl>:ؠABdK!^ g6fl0t`BLZTS0kÕ[yTv&2ݶ%*RrCq*vXQ^YӝwYVy`zuk;p`e4ϔ_7BUa,%8A\ϰ2-`W`-.v2䶍nRVrΞl1&Q l{0~{}&nbl83RkzWbqrQmMݶ5t |,!`3ⱙ5,{`)ϻw|iv@ XYh9-2Yg / meamO#֟+6Xs \xf(Q XvvF:9mm"&(֜ ¡Ƣ ; (W 2Tcl -,Lݶ`Fݶ>͚ XsJgMAT#S V4~(~Y,R"yW6c9 e`Μ{Ͱ۶ mOJڽOY:0Sw5/> E((RD1GW RU{%ƫ`Ż." ɛS30(G';\ARD㗐D]JQ&Z "R2ʧラӺ;@>9vD`+S:Rj|45fN: `AL;k-gTD)+m>/}`l!j`m}:;)`fs(30Քɑ\;!`S5zkiOWԀ=X-p%*<,18` 3zÜ6 ` LrGO3K4upCE\{w"r6` m@7De؇gF> ;?6|þ=Y8RyV6E}Vk.f|gu_ln43*7([9Ts[y,,?Ά ^\rW"3T+`dSk (1(drwʩԷiݶA+à6.Hԋ?4Su_4Z `gVXvcc#occ:of+c„lL09}f$J\f(BQ q4;@AxXI4}7btF- Hy;0[m-[oٺef6xGY,TLY*0C6!nDFTS< /R"Ґ%wK;?+Ztmcqݨ6)8D6{@?`OΨkn/_4Eث` A ma(Dp#UyN<ܯNtԙ0o z=xݶtmfNuFs`*݀M?{!~}0A1n*Y Q(Fh%"QKb'UWSBa-$=,tljnf4lm*fL[-٫qkmrm#G1AnwA9jh䫑[S|b@, j-1]R]"D!F.aEJE^؈?9K'`fkHBo$?e2l˱Ydpƈ!n@O֟u=z B~z2L~ZX~sbn{Ǒo|~Mjw;E(VUCY&tFBXls `;`fY=HfZX/bJ t}s4禈_^0y2X0!*)L 0`dk+R(~DFT4(7F g|5>1e"oLw]Rv޼uɋ]ҒWvK^G&zs#Kw,٬4m.RUk -,L/n۠ Nn۠.-͹ۏr;/\,/== l ޞ03yt>w^;g[{ ݵO֣#^pGQNzt S[~PB7£W*]Ngloy[X٪*%d !g YZEk eGa֖$vn8b`>Bگq:?=}a KZ%wFGp[xsOXA,ׁo]m)jP$B^xz`oͅb,Y<`XJɌEvK_ 6~pH cQ̀H|`RysoCdO`i/1hl^~TMD[n*K0J\2\Ђ}}Q.ጿPln2W X5&otmS&&+Id!g4adttHK+!`\j/#!: ~|u푺s#7nzΞ2⵰ak^ES4YV'zY1`҉,2 f͍ ؇F;Rv v '" fiticw)"jpvݧ!r|b1 w؃y:.uىK޶/@k\X`>CB;-YLl--m^G>4ؑV-@w134Z}2>=6ߘ HXֆcIr.XE6 <`| U/{L~~PMgc>ue[m1'^6'Z^. BBw b<6&PGxjsor Q15M&7v,̰,w9s̙32a8mnޅOCle&2Kq}#CxlD  6D.oەjlZl kʕ d6Ei7ˡiv# [W(}`dlMLT+!Kq%n|(%Qv_GqWbh28Reu`\ђ`݁|m*V+n#c6iɤl'|Jlf D+&6ԱJEJ\?O`RO.znRo 0^w;$ٮ 7R)u >mRuPv؇8=ik͡|MΚ>D)ȢF$#y_ŀ ! ) fY#c%EZ41:Q€B&t@Q"r(I,!+v)mElQ7S+%I %TLY!X&@T(ڍg%\_稻E\*S:bt!8SBq>Ol"q\hF,s~kg(I% vB'G l* 9 Q y0;rW՗B'r6eKEاz=Hhk2UIc-kv^(`tW|dIej0o)|E3H~HV; `v6x]O-7Z `|zg|ɱ2 ;r͛Ghwra&R鯷 vG###nL;[p/`( ^EBL#N~W;>w`)B66 6;ñoW|w/˯_FRJ `Bl6?͛WO_W>38[ѓ Qna A#`a` 7/\H͑+jn6ln `˧gN_o;~Hke gPߛ.<h0ز!T60v!SCFjP?XSkmc`awB ʁo.g?~+5Q cC}`̾V=С[PDEP00)njڧ}ڗccPSko `O$&`3 )F-u`'jnٯӃAFpr( c cJm2-~2'[?l#vTUy ,!F>ɨklkCp̉z`1G `u,16;>`/)kd֝Z-vZ(ǁ-w2xeV8j-ҞF,W?XmhM6[S +&t 0^:aJ?v%!ZvwZg,`ZK-ܗa/2 0I20uNۨ'`?2osk{N ttMv[6(fP@tMQ^. Z*[V\[!+! `?`eXlyJ͸O8}8Y,&+{ٴ끕 %U.I:':'nm0aL?Dj1KI& `@DHQ-uaM=s2d>w|fGGE_J m22Ɣ566-Wd8Z%嗙mnCrfQ85}ڀcNr`{?t 3Zj'_?t݆( 0@s[?Xe]p0KVc(`<)9m,>C/_$ O+Fru`ozK$GJf`vLyٽ۸c/e\F0X ==a|c1s4ylmjw~~~td.Ŷ`[-6`=6QUVYLӔ63wo]y-d?CHQ^d `ƭ,Z|~wӥt&`qWQ"LV=|kK;`L?؂vW g^|,pH\V{s |M0ne?tm<`m,6_`$; S)S_on/\RIR|[D&LS@4L{'orEa2N!8دTpT5~W".?bEy``P}'lO1 CD!B;f^f'9}H?vvhhDԉΑg3l"i~C%Ǿy1AR ,j*RJ) C ?W kPksB[$tLSn4:Mn Le3]K9 ?`O7; #T |DKVSFH(dDAM(qN!QA7Ӓly,]G?P Ʊ<~(Ѐ( G$@TKD3$d;!$lhR<ۊ4 `eGZ0I:P._>< Px"?J,`SXw!TW#eQ4 w2;XS"@1|wH%wA~@*?}󷛟lƒ-yBiE `uk]P³Tfߦ0^,Z z%n?`059d4<4t)p _Crv)Lb|E,ksSsδ[Z@ _Ÿ6%;v FHR%iU })˕S .]:1`P4?:03bqo}Y,'7sfX-b@ YRVA'P~ K2YE%~{H h87o/K 4%`5Z'.G2 X\ UFfa4`kR_;fXm[ ;jM|VR$D 8,%!BgP=H)?}NtD0ĀװF,ls7ػ&-"]al'U&F9bՂ?e0(b{E in&:ViC3zr$BKׇ_:ybD qR˻w(kzs숕 Xfik,N`qSQ`5f7-UMMU--.4dJ|v--in-AVDdtx;K!tU-Pk_R6`}0iOKf0Vx,{m,av s\Ejp(`ʅt76\o' :6pSJ' >ST՞bti7TklSrH෗RJ01A}uAFR8ѻЗ̜ZP(y옮͑( \*(+$j`0ic/V9Uck-27͂_cEJXc]211=XV4DžTs'RGC߆i'͟?ܥLZ[V_w8]}wVW?Wa%5&-l,# ;vA $EK]r[ qȘ]"pxV55/iVk޶%*kY)N|ِXyO ˒U.,y% q-gP"z͸ɱ{8W{#17SeO(τ]nOE#,+y۶6udIˊ3"1N) D(zUYrmRDKuwqt?4E˱Av6K.b%Sd&$[-a &Q؇e uoC7ƐE~{Y>=+;%ۛ .A*d{ȬI..`vYy᱕$JRB F L?0f2D)/*n_-%5(*Qh:v9)\UVozɒ ~{{Vq=b+̽_PX!%E̚Yޘ ZN RQLN@$";9b٤,pCWA8`x@B9ZӚUfe 'D43oKַx䖓QҊbtwn~}{$$=50X.9)"F0]+r2+@9s]rLp;4@JD$8Mؤz"2GM%NZ[ԉ5ԭZ//@};vɵ*[]׀TW'vz#`fJʮ~. ]I>KT(;n^) $qH"Jr"}y@G!1;;0.[:J$(-iKu7=driC dEQ| |ɀ6pݴ1mLm=A~SB[L6`Xp!54LQ^ISA8XԨ>6|Q]=KW6`6`[KjQ$!I9k0D (`%(h8g=su\q@U1UK) w!3YiT01Qcȱ2hf v`'`,9 ;_Aӣc;re8,U0,r%CB0"*`OI%nX`#Q+dls `B\$[e.zi5 L1DrÀycYZ^^"Q, |Ebnd0#"G\XN TAK/^,M`YYڸ8`Dj]~vV@b .%l孖^^L !mD>`߁9ߖ1r %R6`Y&G!%&3,W`n^zvfp45VstO`>(d[F p$ $aЊ`E Xo<_gN񫻵u|`PS:5,z `l@EUMH"BlZZ~{@R 6`6`+ik3֜M)֚lʆ9_Km׶M'BЅ.b[z ]z˘U`@v ߠw>s," M0Q:_زx cuqL._{%wu\_BzY %+`0 XG嗪-޼yZB$M h69  *_ڪ] L$a/4 G|i+(߽d'\&pz._zTU-I,7!c2_T9Y-52$ 0Jht3  ,u- /D #g+19R\#K%z8 e 1l`^Tpw)_o CC bضrK=k3 $l.bBTָ[Nu6‹9Y"q`0"!*JK}D9lB /x*X;B-x@R k`g2X <FqUְMC18P%Z}6K*4] /&ƻ/hE00LK+s$#0@-2TRRs!VI 0 Q+cU0h}`ح᧪_r3C /%zyg].|Ӻ>p2lGL={,^%z:YD"Q17tEsL&Bu#|c`E,C"?яʨfX`L,aEy 6(+`q! /&)!='cO),3=M h]d1P=ʠBS7تߵ_`Apjفu 6`'ZChfVx1z6 h9sD*!zCUbjǪY<i-VDcg@\> UjlWUGԯn g'r"TK{qPWȠmC& 7 0oYFq }uĢVXh:P5W6w47D*Z#H#Tr5,"5v1]5]=LƻM"z)5O!,dt9Q `B.)"H!B .}E J־ow98)YD3ƸKpg$6@ ƙO?zK0ܩZT/&DVBCîZ `G*fCkJ>" ȞE;{_@ W{Q^T=&+/!U8xOp-VKD8#'@?4+!ukw.`'y:afCNx1Cx&+n0/:dwYI٧[t[l4{1'<&,Gtb"``$ @~HS1Z5<X%~a 6`CpyO41Nj;6QF^Pr r][S %tCuhL?۷398?U/fD CAYi bYދ C6>^t#~elKXгڀ9^*az4X}Ǖ! ̡\G9v.=~+ϽًW Tk_ҭ `EtDߺTw KQLE/uZwɐ'= (F*a _ӢSWi.a0qalOx4gF)58D}KT]buĕ}q *3qeߙE-E;>`/)0qC.%Jsvy>.z yF/kR\QOU2 jIR:j<}2Mx_ `Bk,ZCv#x=}8ahvbO?8v=]"Z|r! LM ݔ0շϧR\|p29<6ڇ3JwJi*E񮩅rIϦ[FOV:}c0fff,"$O\'pxz8o?1c`z9QzBAhFf$Mߘg?I=),lffR3#nlB\4|.NՋ?J< 3|"R>` Bȭ)ꚍvoFT-v7n, w Ѭ{æj0$y}>(zv=喺&3 [w#]N_Q܃0<]b-{XXd݀)t|%uf}<{|fҍ ԓaX,uG|u r"bЊ{0NmVy;X:\'"5ǜ-mrej%s!_I^ICR1t[[`OGc8i_eNjS"?#0I\=uO`عF'GAظ0>L>F\,|̠.EIlD}}!$iftrgS_2 ~ ea9&IMq˃|*kltʞthd$ľhJhulAܐ Jį(ixpo\4yxN84|0[0E!7_%P[]+=\ƬJ޸ mTd?*E`\Q ヤ J1R|Jn#TqKܥ `K_V$/c X ~r#^v2`G`\4fPY[L4D#u Ub%T>ئh.s0~1&De0XOEQezAPRU؀l[F3'`3(# D&ES7iH`dE)?, N",O $̎`:0J4]D9)PA=hu7;`*>*~ 8`,qW$v yMe{{.*mtv+"񙓂12֥RQWټQDrS.g[%"iEkP`M+wӛc!:2`Iyzs)W؀֙~|ͽڬ 0&ULRlW7/j͇Imr;ekwJwGAs0%`~5sc'6`("؉ XWjLcQ0 Fv`XqSud!Q17vJ<sۀvO`t,SBXLRX, Xw+*a@" |! gX9N؀`Gl0Lƚ1GRMVLN&͛CHkE򛣙+2`SUX+zDvsFCL u->l2hnTF*BfG< hT9󻈋tױ//kg`{ן;X²[&3[X̰Hmr$5"?l}`(ΨF!bPE$>9e Xi>`*?Z)Ƿ׿T{|}, y+7H6`! !?)z"y 8J, ^FC ƙO?"z&KYw~M\Y)&$!M‚byDVVm(X@~PbP$[VJ#u>$O*O3w|<7׌1xg|=sFGs}9\6yw%EҎ72\WDY287qiڲW j&rK053, Xd5?,QI ^.T`;tEJ6ceս<`VF<|_PcjT)6iGڋo/%w4~7i<}@1j W043s ap0tEUI#VM[L*%KɕǛW&ԨR8 r6$Pѓˏ4 rH ;bwy|+L;׀rcf;wClÜz0^Fz kesx!8`ƣJ}1'g;ljT1?:,h6$QpZkͶ|х5Ē7`\֩ه64=AfV$*0$b ⎲kT9 %b RRwgJ"̌*c`rv(<0USAJԥH]_ZTNg0wjnm~Ш 2 ªaqW ClF[߂e-vw_ְ *@&F1+ʇÕɽmNjWud4i{}t|Y?UVQ20R_(5EJ<~,9]O; )+3p2zUsĀa߯c#/NTU8I Tp"_ ˔~7))tmRz+ΐ/3U(nJ1h~Ǔ'}:,.-$ୠR F.La؜eHoxo0JzpPi 1Wgw:|w+mEZwRGWq6(ƮVkkZQsVԅNe2}!9GK; -`dN*"p&3~if[IԷX ð^Lb8 ՞pZqe>.޸Uv|?_5ù*orKJuf̽`:"ҹz#5#zrՀ]4wG&)hmtz ]xQS+xFT)}bg0(A%(m0LEHU>%B #h1)Pu< ,d6 k^0*}J}"T:}bQJ<"J*N܄vM/L G4YyA.%3grm?i=ԔEaf0{ YUGw,+t&%'Bˆ2NaWo/L0~t5egQP*l%RΒeBF *RW+x43|KfSBEMYZ`FJm<2>R00qR &vⵅ`X2LˠEo&Oڐ{RpgIAodQp LFef$2(uعC' ,&ä g}Fef1꘲U@*3 Q1L,t.O eglNj`T)Ј+Qp "<=c*KhoL 0#QƾanT&.r䉥*eUٙk#QcLJoM7Ios{?yU Q־2ʟ *;J,:5!32LǵYL0_`[4X zb#Xk;J#} $w_Z"3pϾy>~<^ٳ`}آ^f W zQt`;5V-=:wL\gPT: EPT޾x+ji%SϠآ^f!`&MPa:3@e;V Vd{]6Xl $^QUڬ^ $i0m=V+00"0.ݻAiRRT5i1n:L+00~nd;-,VZESPm_&:-`pyQfp8Ms\֜2Ot30v9U6=#-~)3˴3-XH% $iI09Kr`#^>_x+<``"Rg<:NB=kDNTК3S禎S'P }&uMS҈/6H?ClIJ #Vg/9X": K, g09Ms\`Zsf0u4jƬJE3@Q*mp.W_=Hm(GL~87sWs:yX9~+|cv$4 s\`Zsfiڨ.+l eLټ&=}mo  ddOYkNOƀpp[﷗Í|NP$Ȝ*3t:Y5e2 f#SYʅ#VդeK*Kz7455#:e2Fg{SӑE\%FpY)}Yx#~ 1vK lk,ot,1lR߽j.߸},YQ3\i~noJɕ߫mi'Y5݁?__q4vΡSITYsfm0Kf,T(ZH ᾠ}kgTvri{i?Mj݆91Eђ}Ò4+Wzڨ.`~hJJJ--,1]*;Jf%BBM TlZ*˃mlO`[5g}6ʿ@4\.-L%E[N65.a؞21q JR (`l'W~/4ԻA}}EE袩F?ZS;ـ>!2oL5$`R 7zR6v!`N.~HwX`T9$X[mk.jo- hQYD{Xc 1 =ӱRX=UZLɥ[Vd\GNDb6NǦ;*HmS?V&<8wG1uCҺnwRhi'fWDoK6ݻzfer]ES:8o=eiٴt$[w[C~[,'Uǘ%y>9┗̌UJR ia:Gv}#y_J8S^23VE|bL*@&}d1<?O@)S^23VEZ+YR{ %tv?;\j=yHrΑRͨLJ܄2dzKVN 3nåsd┗hFUdJV2 TUhוC}+#|OHѩIg+^hȕSM@~ 0_N/K?v]#l+`J?k*pUj)_Ӎ 5U@XdkѨR J5DQz(,ʭf"|1XT)YU 4 `r2[opT:1@y]#W,*E4PTC@QclA\ 䔖csoO_\EjĦ7&Ej\a[Qc`=PԴE–lg0|QU*/?_;p\ET)_Y % 4l05v֦`]Ogs&,ϴr6DR#fjT)u[4ӳ<͐\j!1+ѓˏVyFwd AcǏ)c `]g|^88Nl'JhEy1]% y%CJ /^{6DM+u_-bIȊ4r % _Cyy{+tv4ʣ3;;z>ثH3;3}wq晳6r!9"r>W*尴yJ\vRJH,\K&=A&4X9f`0ɋՎ+eS3^]fuW/w0uO`◱䷟Jm}p6~g, UUuեz2U jŠZ.D&mx(8ϾBXU<}iG8ss2Ӽtfp=SnoYCT^0" `DH0 0"F$`# `D̬?dH3+ `0a̬fX# `DH0 0"F$`# `DH{fV:Lʙg'<z|aK:Jni/ļXܬj;;ԇĴmaM'#J]R{U, Fvw . 6zG#,_@`һRr]UT|u҉y?̘n;zcU:.Oz']~?]鎿_Mj`91XQ]?}߼m̘s/maIV[p7Ǔ\zm{т'KY%AM%)$4xK}晱cyuCBg$᫓.k~' cŇ.XMkӤǨ\=1 q&s\0m~%`߷K/O j?C6AQHOŨT]1 >; !d:M"|I0OEˊmWna6ܥH3ipV=(73w0Vm['weU?-YVJϜE}7U䧨.,/sbyήf<^^>G{;&};0mV;y#,QkWNna,j^Vvu.I =ijg|VTۂwNf`o]ĿxRENDtܣneQ]Y)u ECR]D+Ml+Rt`V_Jsa)0 V n30)`+O[0KDV,W0/9mmJ/mQn(HENM&=;S"Q|+3/XmΔ+Lro3Nd(`a#j6Flۖ_!\L0s\.Y~Mq65gXsLdXM0S) 6 0`z5 [ &L ;k;o,p&J&nn`MS,p#Te-V w ص9q#yk7, k091qKzuYe`%%᷈S.9^=T5OW$`۪8E#s4 x6{]De.AFlk 0; `mmzu~lz= 9M~g=vrOE G0nX]n+`w0|00 La`0*O?&L0LRS_$0`ql\SSꀽ[""`xM. 00`` 0ݺ L-`` &.]2` &cG$`ޝ0 `?.i`Qx(71p ǎ9.i`QCo :Z};jܢ{&Kgt)N QBԼREKx߀QRPШ)&n`( Z^l GIQzthS,f&9Z8p؃bOC5ݠ6F0G] —=/y$ؕԞL0hڟA8YIڻ։';&vz4pu,h=J?Ro=jO Zn=ZbouCGٹ=hE;-rk:g'o=&Xhxsl`X֣V)o= 6+,+fCswdSbV]g9!)6{GC``k=ay=hcsɡP4ɶGqvp؛7IB{f}l*gwcGlm -K iS 6 0ʟ5  E\_Y 6KK`Q+[_ طA0R C DhiI`,`OS ]e~{lRJןB%-'o>v۵t`g7_S7=GgfsrwJw;x^W?t;> Aϻ8{߄폹~ B  `(B  `(B~,[vK(5mi c!P %*۲X%Wh 3(`@L:۽BP X4>jUv5E0ŗ*҈gW]2gESҵ7K۱~q 2(w. 1\|)kL$,hnM8EUfΥodvOq'~oLYA)X$x1~Qehfޓy9czd2%XٱG[`hM"s P e6-(]#8eP r -01仩(7d2?[0NFVKDԞ`Ua>pzz7Wf+j:w~%=~`QrYL5LZൠ7f'LԇإͤpZp,Ye4جmR*}Es؋m^nY0.^ͺv:vGR?>Q ȼxhOlhZqk+`nAή򪆀Pe߆ztRNS@fȕIDATxlWۥ;4-dɆVm3q[[j,d7\Fn. Ȉ(H$wʨHb  [d>1AT TN}ơNc~a$a~`0Js*y(1ro #ŀ}Ӌ(D1  }?`03}:\`MqQ 7??~^7 FE~}K~r/}#t-ҸZK%_u#ֈgXZ+}r,u%ÜvieZ_1j%7T>.%hFPNQi`d8ͳ66j6d8-_,9<"ujm|`!Z`7rW[,pˍ\ W%Xßb[:)Fp{1Q>H[sl"{5#T!dq>k˖:u^"8 f햚1`8&2ݛJIt?ua5S ',""*$DZi=:eAS>HQǤ#nΝ5253Z*{naHK1nlL49= +H*9isp )+ ~ RQR$N&уX0,A..MHVE8TNda$e(­\y=I.+咲>h>ݖ<~;gR,Yn:}e"ibv[-fNpdE"qSrYՈ5܀*WF$DAu\ D]= Fy a?sP#cXEBrdDGbE| GёC㚙Zz2ቴ[wY~ːI&z HUeWiĤrZzR>"nܸq@0(vYt[n01ո5\6|VL 9%heYstZNe6!2S'uPWڨ{d4\Lۍx5ɰCE! V+i-["sĵrQ&jm`uH0 t;9Pi j"4+ cD05@-2 r.Yt%@E\x!"3E+̐3a>(B+ج9'.g<1\+h\qE/F]5RJ4*"1q!B4FW0y /iJri&GspNp>]-5|uRnyc)n҆a:fUt)#DV!M03\i,:bi"1J_r@ fA`~Yto"R *4lbg1-Q!AiX f܅G8e$-ypxV3z'3cj8V#(3g-$@ectJ`:" -!Zn ѫx5=Ztaf@L017fjL{ĕ=?1;p(8!DM*zŊ>]+G/f{#fݹS<IH|/)#zx,m/xЖ\? d&}HG|2(Yʖ6SfF.;XMhTϕ`+G*1TE5NϢ6#TB!G7Xʝ׹ER?|tD'oŜ5 N˲d1:!%Ql/U ԔwҸ 4ˏR9+ >У`,wD3!Q1R[\N2eg<;D/%;YbuE$QqYV(GApY2q7** f0kVd0kDs5/ ƚX;`3c0M F{`M-<L ڡ !Zھa,ZaMd+9k%ۤbRd"_^T4e~Xz,|r | C.Z40)RL5Mcsh``sP@hma»ޞS+GO}z7v԰>~f ΀R3V6,mMF6e}w P3P'`C(ڏv}ӎ]rM:4*t;=UQ1t2ﺂꃁ/G3ZәwUnKXG~fT:lSQ1\Q1p>1'Bܞ^T#],JXɰ'NA[ E{/: y3S`0RI1! 1]CZ -JXٰ4f8SgL[ 9p[Y J! YI\ H +',+uڼgR)6|ߤM#/#QÛ7':t&h`,:8.t3i3yTʇ=56`tW=f@.3'C3Eu&X0w:z>?]8|Cǎ6ԷD*a&N^0Ȧ sbd̀)`)4NDy/pQ74^_5c,0` MUfjThJL'Ro<0` M F{`M h`0J&د F(9 2k ?wq[|깪E8׾yԔ`= j>~(5e}7ݶx؀r pnk F"7UŨk F}A.7 5Ö }_a0JL IVdT;&|m۲-9?߶>_jhQWVa,(+ 7<|:?? 6,8 A&t`iU X[r; 1 aڭдhڎ|χaP4ohV9oOO ɂ}z^8aպ \U ι_|;HpۢaU <#F<ѨgdPq;L?a0d+Z _RЗ`,U`ǎ9;r{,ئe,b݄޴\ڎdc#IٰOT@}zvb[H[333v ]6`ފJ[8X껫(? ,غeYŰ;v}{ri8jO7N_"gO5NB p}`د]|8╌(~7u: u F;rXMFͱtٳF+,:O66"fd,/y>NG=Mw3 T-X( c0`l+]YEӳzg+KQc} 651t< Ga(Ţ0Ʊ}zZ ^o^M saRV+Zk+< zW@Qh^S^%lK FyO`p>69/`'+oli鵧iwonjڃkmm[/FQ=z'p][FkWRWW&R?}:`?ޟ$ D0`/9v 3sw3؞]HFftqs5?`~1l/b [W(koD0]=ߦn8jO ?6?ch~#"`3swޝ=xHT>Hn1CwsSl{B|0M0iU~U_|z'@x'{r 0c$<>á{X 7硪;&÷ WA/;^I鹹P` F! N<dw`_"  `Hh~k>6>=MϜp9Ϝ9ggΌ e_~P/hb"OW ?lFڪS7~}~}12ufߚ[&;J[1=;AX~trCӕWWJX^J)E*0 ]v[4>> b}|ryյޣ¤XϦj}%e N#HW;i;q==T\(=R;@0ʕRJ/>+Mw^tKrw-NsY Oޝ5<:>us$gd᧷twߘ}6<>xVStH7b''!7?P$WugKjǥWv' )Hibj/U-[|BuM,6"vFފ977|7G" ATh CSӕ+~6G֯)`wc@ϝŀљRJ~}vV,grRՓg*ZՆGfoGl--GϏM .45?Oa =[gCCCw龃cWQJ)+?wzggoݻN\&>xـVk0]LVa.-EBYX m2⍌jxwô5/80W,b>rA&)}(S‚8$*V9D]wZNsSK WD{-.5a9ؙ@} =g`)Q5XRƼ!Yd`r6x ,625.ֽ}m|NnyQ/(j57 &LAܶƫQY\(ödDxK#KG=|3= 0G]!"VV)x8Fm2KҐԀg6=(9]( ȕIEBnnEBnyCˀGnb##fZ;bG"Z~FʜBRZօ4qP__C]V\,Äb"e1m\U?{?}(K R+͹6cnu^;ROsHL78 ^f[ee5UGX0req!j筣q0gR5|n,\ǭs4#!b#aki~bzҬ78@цmS%|Jyِt9 bRu % ~X;8hDBF(vR%d']G&.#[/v)_ANY}{Iiy#+g)by-M6[I͆),,,1ЙɁEՎ򊊶6%|HotkOB6)XKڮ\E.df:.dPQoE3**w] ڷ!4ux}KCk6PF5 ڪl |%ŐsA!Ug\U0+|~BF+TPr /n7o` m^~ki- `aEfF2ʠAwF'`f`ũf7&`l63qAA9''ۀ„B@ OXE'ZV|ĨVh"v8 `) v?RtQZ BTČ /U/Kt>(Q|`ؚFMF$m%i%r`h z%>LE9 ]>d7(WK \0hxq{>Ō#ijx{01!- ,6EA5܃K-qf1]Y\_9؀(!\`~ sRTJK/ 4ԣx =bA=/XaU2XRpDf>裏^O/Jr"چGWfNzm6e7Il57gKem.N9z/y+;\8mm xoc(݆ց։?E8r?EV͐Qn:ƞv{3ҽaO@`N-8S硸򜊅N΀GkƯ/=X|8K`6BSDCixZc>rNLctċ0uWont咼/$2:ag" ķf6| .me-9",)$>K`_9;EDR3`D&:`E2pq#г/;h/)aaJJ|jg"[~%VX=[.9tf-"YBHLŬ1l%0q0>7hWNa_ .MH!p+ ,=+;W\!T \!DU!wTtLG/)E|}(s%`F;NtFdv1fd @vENm 7fVyz^ ZVҩB:&`n;A@k :-v,%8 ¼+qMBdpM3xEA(N=^CS,KTr/mL>ߜ0}s :(/7g,:Tosչꊊxnܗ'㜯86RgչQFypKM E}f6wtr=E\,ZinKʆU'W dkO daqݜ8JO X7B4pvz}jmDDx=g7:QJO쾿:ohiilZ&y1`~s׻,zJ?h?|ˆSD{6_}rgПn خ3&30hn V&{UdȦ]3L ޽ļUrpknR!PXicQX؁XuCdPOV.ٞHy"=AJOåхI-V8.qYg6;%w\0k˰=xŒ/v/Je0o?|#R9!)4I/Y-&)DV8-qvF\ F<P<( Z`:'[L D{!}Z::rݕھ,Y^ӌ;†y0;ks࡮¤* zq~-iG['`-Ze:T@e`=M7;'LMۇ`RO#J&vk"ޙ 0C@zS6EB$D[4AE2)ikX"eUO \6`ӯLuFrIRZ3'b HpG)BF x bc,N륕b.[U]KDT@ev]c`o)*`{+:ĭ ?S!'cI@1*(BiB1#cD,\.bj  Qr޴JZI`W\-Tj1⩀A+hS஛߃% _P|1OjS9$|Q*$P,C,(@Am7!TX7;{8%tK\ȏCO >(aO>Ti)\p ;;BsYlo-/͕E?SŃb2)bY|3iܫm# E߃U\G,i7'0h g055\G,wE<9N/fBX/` u6 +["Sw5hZ ʖ;blY'TPU -qey\i7va M[m&j-H(U0#a&&Ń1c01;$I3QfYYXɮ'8KuNMWl[UuiVW\Hz|Uj@<^lN >g7 Tpp=x5cnɪ:b P2-6ޙ/O?Ok7H]8-wDž٥tTE{v"w_-/nd/NO6 <؁J&'&&]hj(Q<1⒝ʼ*ѺhtHQ6U8ќ`Ztՠ VLYl+"T?1U -/Okr+9Czɭ#;tk%ng 8ЈX<V+t%WI۾/gPqU؁Lփ.Rnd']fs0j7j!fXfc6 pACߞ-`;kd'j'7Md jf{iX-) l/'ma+ﲰBEiXN܀lZlxxFMJGE .pxGJv =3M<ɳ j1M@vFq+æ*[\&T`ҥVjs/̛մ<h9VTڂވ+ްiKjc݁{pؼcl )%xЃ;lSӗCT!G@.Sne2 6].* ,IRgUB)G7ۀXw:,Rw6¬LRSpYZPJJː"CTG ʔCiC%Q7L^R/=!=v zP[u9`hU_V*L Xa);fք]TIu^Y 2bqv$oUÄvY;"<$SKJ\_vt_/uBl#"(<@TAAA))wԀyŕ'o.\B3) "ωh^h*j}HI]حIJ"E>>s?F>"ٞ+>.٩+򑷔Eh"Gf* wm D:;R^qJ`sxB+oP r Ѭ֨BT(,R-g*Np\zz/"\e^[:omضo_LöPm7 `z@֮€X)$Ra)DV1`zY5١Dl5>ec'Ojkö]7޸z?ad6`+-zX߲f9{* I42˳7=C)FaSҔA=IݓAy`|`᧑ϗ,^d6M6L#s)Fᔍ8/>'-?_?3=m.f2l&qk=XuiuC{L qʆSoOf{jd a|3 C%kd ql{v yR"޽|ضo/mj6[ O鏌lѵ>O@_p<`F9̇m`65TĭݙMlCk}CW}8/czkö2bi&CET2`)J`B?4/?y_)[- Vz;ad c[Dk5G7\-nO6-{D%QLeTW^}DzN<ǒvX NG)y笩rW[m\~R[=؀ڽ$,ɠbJe(;mQUӊpU'LgqNJ: 8u(6dY/W⬔ykE-+k)Z[h߰TNk>zwG[G|q#Y!4^rD$9'eH9|ٝ/5`'9ֿ =ߏSxWzDΈc"*W&T`Ml`M,{MU}13T 0"XGuT d^KV PeZa`i(ɅTE%b8`̕4gjOqNˢd|)X 9^! q=؞&Ezq1` E-0cIFS]*ܘ+QB⭀Cl$*2˧*IB uL=цUD4XSVJҌ|B儁 03ZqDQEaѿipV)` 6#`U"4U՟()7ʶuumXd+*9QW҂2؈(vSQ6j+ ۼ9[1%Щp`dƚXA CR w}a Bn3hm5ؘ=*h[V{=*`Hܮۼh^a8T*Z𚛛5A*wmuPʱ9$7YfYA4na)B*$١m ڤ8 evxvјI]j٠TCN=Xzܻ5w>殡R q%?tx%ss[(4ʒMdAzAX5&{Bz^"H홍t@A_56bGFv@SnVNOBM8;3W`/0A@|oր9^"7TIŏ8Z@'Ձ@FK@YY,C*gfbBV \Phlݸ;;{))`"nˊ-thIC(nӧOk+vZVϗw<]\<+L3`ۇK&eVvzmUe>mj%6?,X2- )uċı:V%r/ݝ7\kXwuUUugމJzGSa?'`sOw>S׏>U$*[*ΐW^L/I6}&Ao$/B`iF0xaD^O%wjcXuzȍ9'{ʉۛ?~_6 mT]-,aݏe $:9D8+/a,[[X\ .nUj{2a!-,v/Xa4rz0o49]~䧁6?pf{jL mcvta?`m8\bbcRxb/0 ZU0 0#GeBD8LOl u<=&9A9zB\$ G /Lܚ]}8Zsi68{m"7zxV ^ū]mwn_i:-ȏpfprPGN;!U j @_8`$>(5`{Ot'B0$cVI ,CTy '3E4m7mWG0׭ֈFZRRoG۰p!5]j0I*ќ?l $Ԭ( jƕGvbxDů)PjE- mt=lcчֆmc&|Aw0l"`99%X^K5"}% Z8: }$E*:VK5'0 ^uĨ4oaR\r],q=A؂xL<4lۧ>W=l{FmN/}}s ZWѵvqmi3q/m_1[6¸u.(ɥC eEZ*K1eʻԀ54ohث ȬőkbQ}28$S»v"B9:a@[3;́ ۗmM_~~<`='"+UP&u -K/ 1g7{TC{ Һ&FeC;Vq N"K(6ݻ+2dy(45PrR/ijR*5977^҇m ' X>LyNy>ǒ_^^M|INI (YRB_hSA[e ;M%J*a#ArP|jKrJخXnr\]*Bٜ#@n %\D"zun>U+|v=ؤJ]ҥݗ˿T[4RWyN>5pN0qD(TP5*!TR3'v+8bq]`5&y\!`WѤ+FU"Rrd/>xQl}J km$nP>;]h]]X ,i?=JTRelD e!yđ2T\*6Ⱦ'`Sm3n990@J*RBr2Tq Z=?&mh.߼yf<0CY~ȱYWl r}o>&~hm! X5TR[]7m,*Ų[W>|9} "=O?<۞(-~cU6u?8,ݼ&!(rd^a5\13ۻ=}ыWd]˒*Fҏrb*g-9/s_IU(c.wV?^7q~2/Ww>X2'kO1쥿egLO/j ٤aW^}뽶;ZN9Wz_||`$JWBphCg(H%M:NڪM/|3{ e4}L'n C4$b%`i2Z^-q2n?ZŊ+xpe)sCtRQφ'#rcũ 8HINQd؞k*fb$O~Ҳ `/_"2PkZ浥m޸Dö HkNmLkgɔ%')o*nmr3SQJ6wC: e!@*y5x˪-/#ovƴH__Kmw#ms9j>lRe؃&7_e$䠍R&_cW{&#/'A瀸[fփIa0Jl ɎE+cN@\\='-?_?3a'_[ m#a$m z}曙LP~&&Gu&.ȉYk Ť2~$6 "/!$ `[9M 7tZ 6"R!2$jG3$B/"ޫ:\Xͽ{5KO_2|ضo/m_P a"n _dԃ9JR7P-TDk >EaU롕 ,gHAlA(*Zov"&U[DBx4cxw&ZH1l"3u ^AHo/&QH:J!٥tTE{vbwm0}n^s^o͇m-%M%LmGfr0̀&FEfT'V-FŔ$7AB$m\Y"E2l+"T?1U -/O۹e bEeRkEN$T(׈-8[[P׺k Àà\8ʎvT Uzr6 !eY)e(' A.Kt4bVLE19u|1)|Ky>լizFzի?V4J*|mEI":3kC^ckLvoFm1 cJX-ֺKMcc-n},cʻ;c`ӅZM0D6LJ/lpxG `,IaXrCď`-INWn!4tuv*on<ԹU1\$OprX (#|+Qspgte0f7!p^1 kFIemgΖ]KTiHs Icnʷ`V*` \GH@VWLI U 1 LanTYłd6- fsн9LxsekNhx h\[6EB'Q* C,^!lF^uVn1.q "7$1Ab9)Y%8 prJ ,` fyXPYHu`ʟΎ?-`৻N&:FF5 U1P]ZE}J;!%C*$)(JX!%VX+J6Ƣ0́P+lQ2'+jy^5fgc$(n!Ȼ8PDR\$dq"8|bQgXPYH֭m|`1>LΖ`#9S'GLdزPRr<,Ytf]dg@aT벋RXyci!jPӲQVBV"X\i\-QG*j)[bBaLWᓙGOÈ)Kl~'ᦐ^)d5öan!b: qNGȠC.aICjdl^A:5X=vzGp ,vr{ u,Wl<=.n{:z4 z&A_im9t`X3&9aBA܈RApP(ɋ1Øp]_jZ,?)kh`n}G_~u0xPC-랴(zGɫjjR_6DMfö.(-Ie<iqZ}P6 oeq}aJ/}}!mޜ#BmmXٕ|du]01l j٧ǫbM3KY -q6m zʿ>ԃ-ir[;:ˣP6V')LEZAB6pPgG>656 -(`CDmR?DMyH;l09D\򀥎wZdT~?%#P5W(+aIVt(_ ;O \!O`9`UjuRW6݁H¶Irö cQ`gj\i X_ipJЈ݊Ckj$e|v hJ\;XG¶eۮSm;^}cla:_=Ĺ= áZCs+pגE 1uc#dp8j^J6p%2(6|.l> :;`5`C؃_4Wͭ¶G"fz06F66f?R=Q `C_ǺՐ=`EIFe#KrV&A \S9)QRs(XA#h_@7{U{UJ -޻0̕.0ļh_:?bSa^݀Ho^_Fԧخh_zSgKaېl]G #7W<l0M BmKمxl91 `lN6% 6v\dl ,ކ`;llwL#&D*`O&0`P<Fj`;K0Rc!46Q R40# ׃59=.,4`C|6ֳ XYH1`%O/ Jz++gx4h>0/ɺ% Pzsn0}/p7?7cXހ'H6 -zXآ0خOӿw=4+/pBVvVZҀ =u{\xuz,K0'x,FaYq)d>ݻPSGmc02.]^?E`ِnLht֏$ a o*\KiCܮ mkK?`{ `lߐ/+^(i#z¶A?u?0lcl\gض7.? 1;0-P<t'B}c19zQz}_Um x= <m˸_><+l[ԀiVx`yyX/`G"B?KDQՏ^zڼ/J_ضQmm^0zim.+@x q tqtb /_y|qELJh+)i{qc}an ; c=5DX+ƂCC_5P `{C|ȡ8lALgضhsw7=u!<`=`S@+PTs-UML Ȁ `;Sh[e Ԅ"Wts({T`_DئE1f=*#¶]!ba&'h/l[4|}9ܜ;-ZleGi dY| QodC3%E[2H AwA+"܂_smh/_x_*oLx%h rD :3ԪmM/`Rѐ&6e;:&$jjJ$ 2$% (#,ǡH]Qj"'Bklm0Š7J5}^^Z@ʰmDiIqq[Pz0cVadWʂ Bxg)DQh\m6}194ökƦ79qv,&`:`{19¶)[L3l,TLw`!¶%[3\`>`2&[;bt6 `{tXҀULggka\չtl>K ۨRXEڗ6'[`EXa2-9M1lo&9;B9x˔)WRAdXLz92`[kضE h6e*KAK ٖʒMBNi?…bY uܧJ oض XNf QX,L͂.g +aK:*p?kjtW^~o|\݀E,ik9 uh<ߵm_H¸En.H*rY..*w ȍܥVr-%.,¸W$ 6,:ö]n?Q nN*FA|6\H,0,%ن'A (LiQم$\4(=h = UcaeZ)~c@Hhj, ۺIyrU)͸p |wXnO^ 0,Vut* ¶H¶ɽC¶ JSodu{? X]QéW2HXWWE^'ça% VJGe~8xי\zvzv򪚫 S蚯/F!2|6uo̻x'wh(.O6C>SJ̭ p`!qWZWGɅR-@5j6,YL5 'S.Jttq [*`C3^JΤW:5Ww\_6݈öA7mΝ|27\5}t᫙Fi  :嶾;ִ4%A5dXD5r0RKfMaSEӺ{KoMJOP 1L0¶q¶2d6$?]-^3Œ6u  xժ!:3 5ՂZF^<ՍSmDJTFjcHh!Lh_3V䡑k>e?Y&'m=NY!~MDإ?lSco`#^R^D].4#_Gķ2w1Q]y uKadn&&SMG}yC6îPT 7ʢ<6RcBZ 1hO*l5Ow0 qsIsz9_'TGq Є^k)cnY,"g-HBMޙ3FhM?6j.Niqvw0bxE6x&?6_Vl٥ZzVy)ݢ 4}a*Q2 xvC NϝKDj.=n.q%N|Rq\0B Ș0FWw !m#$maMQ;6Edn 1:A0: K?#`ٙ#(IQ݆.HF?'m lh*PuPh#wP6ebÍZqM3vW L"♕3b3JN+`ӺE4mt ~;>9` `#9ҥs&i(b شrD}N˺1OY60Lj((Q7#M_geGtx- >b=:戕DV?T8ՐOaIz |͜W͏܋*q֭7$`6> 0@瀭 —}_#ƭ#`!=` j{`b}q_7<ݽ{[=lO{-Upؽ'Q3WeՃ:>G Xy ػ[_`Ke1z5]yg;W Xy ػn]ۈqs Ovjvn+.}w XWh0{sEG<lʀ-Jl/: z(?n_ב=wO,T?b<,2Tlm!eɀ`yx 򱀝8Y:W:[I3`M'C'G?Xs0G`^y.6-9`zjR>|ozFnYآCYIdEkȭ"7;0 3XW.S ǀޢ/kr&lÇ??zl-"gږV{LS_t+ݻgn=nKjr0Vq`Ccp W`c@v o7<l_FM 606ܺ!s߄M򒜮``MǝvR0D 6|`'/A woxػB~Y#5 `k|92x鵎(?c˩_]v,&W.}]v0kZ3!`Fdc0Q#1b9P H+"!XdGSO>K#koAt{c*59Q??e t5 #ic€z\sa̕?XB>\ŝfh.Z ̚1() ([Bo8":enZ1?ؔ{'dM`$}8rF}S\*ses`P{Xo6`3+J%Ơ|⢄Jd"#-`># x:-` 0gzLYW-{+r?Xfr?XQWlmaN2j?aHm?_0Iթm" X4U &RȄխ?D`01klllk;#M5``(1eM"{i+hڠbzZL sk4U esR]H?E0' 9xp]cM59?pQjM΁36E1*YÉ T^6`g; ̖A;翭L[E,o O,WE3cM  #2[Z[Zʛ:y [셨6*J[öP7eJtZ%3qM;YYn]#O)&79U*:5^Cigr9)WM`0a<l˭VoƄS+ZG%|[97/zs J?6WM 1ė'Ţ7RS\XcV"mx5ꣻM0Z^^^1r,k &{*V `/z"5'8ek~{9~;ڱ D}T/J*Aűm˾xP te qO.zCgql yyrX])\wKey&Gv%:eN P}"w[@!=DUCÂ?_}`D^{h5߀ O`+^{LVuޫ"`D^6w2{KJ57w]9yC"`D^ϧ}wߕw{`fJf!mn+;7̻1,l{K S;7N+[Kں <!D~8*(F)NiЩ*\,O h) |uԛ K*;,ZDՇl .jĭRhqp v^*b|Y_Dvz緇 T6i 3q61pʠ0T]pXH(B5B͓i,Zii43X&ޭ!0"\\L4`:'$e=m0 X^JtoΕI?!v<Οr܀A\8RbrKrC)&@GW}X kRf ݆N};ioLݢ6^s%;6;nEV] <5E{FD8 rH6E}HW>L6m<&J~X k2k(z-"gEs!]3Pa5w\s}{. %9 j-dB8Q,"(j \<:27L&øV7|ty >oT"aW\v`bЈLzxA‹Ta/G36 L#HZi5.'9(94w/|9olLO,뮻 |_.+4gIW@ |u4W̒FR!*WCnzv^d l2Gٳ-Su 6H```H\[]]NmE{.Jq̆dyQ2"e>8[1Kvl Ā@WDžz׀%Ľm559ZcAEk+9k(8׸rZsbt6.$m&sX/m/b M74!`MT,UVEw/UKĀ}YDȗAޔ@VDT&W"DdB\֛kA̛ )L,1%ɑmubn{). n k-22`Uu|܄A}>CnM`Ru]\``qPFN%u_[ہL [O|0 #>[|֫|$a&K€o+r r4z5 ʄk듓+jyMt ؛k=,YfݟI*|2+F-`^}:=읲*kոE@zDkstft:0]kfÑy(f|@hIۣ4gHR5潇tNAXJG` =Junl6TUZC]SY;n 8߾ 1)` L䁦t|<ֆJ F-0e"תr+4erKȴL{%if| 0K|M> ؀Ow?^A K!Cq䶛+튽NY8,,v_4k|L#  `pL:'V1lysdWǓAIT"f< 7q2g02k8 1Sǫssfhkg=;33S~ǯ*nQZW1a3!lm4NGa+6%&_Nc"hg%%U 3Y$Q0/3%Pf 7KH9qf$I"mN^W(m--utSEc[cV e"fg9#?s''1R4eptH4uZ_rDbb!+UWP\TR IȄ̑BGG$8`ip1Z*^ ڐpbaxC0XڼUxnmw8mv_Khe_S8{r>r#8bT6+̉cWmAR~jBÑϠվ*-ڬ7cK@0'δAeEl%֖V,,HBʪUPc*XR|rWټ]LPk~-6I#z, l8Iڍ 9ѱ vWFa P[X0iۢ ^~XTN[ x]"< hA4@8FI4vVAT8m,NVB6; KM1H;6_<ޖmcvk`d&C<4MpWjA@F\<KRfYuf88!NKhׂ& Eaɑ Ձx~ C[gSSY;x+e<ŷ -GBP K*N(`E 0Ǩ1Nc#%ۨCHiȿ |9\U @ GIc9{6x؆\~~3gΝhjT}c^^ nܱc_*{>DJVB.Bq kɯHmBphiSa 1v$oK[ J*lgm ,'O\PO4_Vꫛ|'т==KTv} ]bؐ`I!v12U3\. R)SeJ@ЩJUQP&@#_K\FX[ ÀfXC 0BM9u✩YS+=tQSK){K` {!,%E!"&و%L8R@!ƎII$pU6:QalrAvLbJ[M/޳H)X(u|:{?{DqL8N2عCqX#KIV0F/4^>DtqQ3Nd 0 "D=vA6BH3Fst.;u6!q?iw]2 .\VwDe;vp"\Wŋ0?uJk-"\`3KsEXw%utg&}Yާ`#\1"eJ$C"\n `---&]u^_O-0X- dd$=7$0)wR(mF:5߷񀽓g-$:OJi0~}`MI:Hv V7 uDS?K*$To}`Mɀ9N !&1!KGS:i ^$հs\"a1-GDdܖt">e*R K`>C?rEbIgieqT3oz =0v~bLU18!Y8*{amee-fvೳmC睬"bmE kML#\1 i>ΰ3S{;%c_&xxk1Cfr)Yvą`z(` 0 `#9Ȏ 3gXYa%fHŒX{ P kWbLݖy BJf"onKgߦ-ΰ畘ރ-Ń# v!%`y(d~N) nO-ockYkZ.-f~FnH);`&`b-UdgxF>av[UU%YuY/eTQo\|G}kr Np[[Uge^ 7o! `'Gv=ץXDr!ɁܵآY> mwx?( T{>Q00XY$ռy|Y#9tf|m繶JU;*h72Vr2_KFYA{W<ˮ |PD%AX,0=]x-[ѫׯ_rGh? ̀ $RILp3X!ʮ*z|d8`eL0o+X3ʮf90l,!Xf9m~_xm G(‡#|;/cH54 dɾjͫ`lF cc:U%b,*a%:4fyV%Y=Y>z0KGQL:;tsKAi;kd!57qo>z3Tkm\PcD VW_ M~q1Q5fr3G<1)z[KfEaMRz" fP:<̀Nwk@9 /2f_^ReZ/2,fU}2 a@L`̅ xg.½Y%s|` a/q( m> 5!MĎط3 _1#=)`-P`BEP+f,A2aK;`狸*e,'̝#`U,+V%X27G/:|A  HAoA$M;ی=(rHgh/YuX,c| D:"+D͠k}+Y ˊv>А`v ecKXb`i :uq#` L4&03` (m ыnIMRjΕA:r?~E5`g رS;2T4Hg X /iwڹ;AOg0FD 0N/~KRLho^ J tfrtvބ8G5@:CCRX^>a2/m C3?b_zOgzJ SN>b2Y>z`ZIթmwD㴣Cctr:Հ-//ۗvŬܝΠ y0Fym y0i 0vCw`\rdF#Y>z1SʙKSu`ᵃ&쵠c3_.Әec/ "" [D=T@{ӫ:1Ƥ80 T7jL0 >N f59 kh 66&eu bj0Ë;0;&X+ ~~*O L9l|L x,bx㲠 /Z/נ &7'k_ G}ˮSIOqa{0Jqk**ὰ>/ux~}R/b7XLM}90tĉue<迃t3ܡr` wo<܌ ̜mJ5=gU*<ӽ{8`z g;M'e䯑BzW6LR9s(LCMG9&-\gU9pmj60UQ,=jmepkAzI6DVh*qG# qkEKs(#YUv &S'`;ln|(3vyD!ot };~s1'Y1a < 0<]233稑;woko'qk|0~+YׄUd~GyTk~Or(܀ |2>E-##SO5^\, tgU̬`T& 7ڮ޿6;`BLwZjdrCfrTLAtu*c`c_o]yj|&oߚ0qV7'bÜg7ĺިi68}\A`c4k][_WNr]yڮ0A 9=$憦nHPdV)k1zL]dD)6xv|.6ʷ0Ȕg2L?jJ3ѡYIjOyg͡Ɖ谮c#An/.xPBJ#Z]M XW SXU Wn{$wh魓-_KFYA[v!e@_8QIv@R!{kUybXu)Rv 5jCH,L[ɻ,aeO%`S."Mʧ+=0X|CU}`QX"q! F&Rkm`Kw'XA)V]S *FCH,L?]2OlzF|7W oNփj+Q^BA0XU[_LDR.Eʎ'jHtHbu)߇Kum'N<`A&Wb̓3I d#ٴ9u}EsbեH(Fшx}՗X; 8`,r2ÐQb=xZ,>,QK`y2Uɫ.E*|(у`L\}ɻd}@ .!00E\2Q,{r2yեH3h1T=+I,LS|.ٿ)3F>]͉?$/\JwFGd,ߜ8W< )m[9)+(W]x\8ELѧ>f]S XƲ8(X*zg |$RAq0ufD>3`]c0R1ʑwˣ8_bb=IX5`-`U`}/ e^d`v3KepQ_?b_zOgzJG{>h7`7`ȜJ`1Q؀ <<6Łm(g==Oys1<[ t*Ń;UJ\Y+_]`7uKrMSz304}ng1EY(6kQǂ$|~?~u]J)Wm,7]^%y-Oy8QD7gM> Q"q;u*=O2_7*us5r{o7|YۮRrVZ\B{]^2ٳ丙0+[#a"9eLzɃš}QTmNRNeS]L]_:UJ?`1Ƥ80 `@.cu)5`…`mL,p`Vc^7Lx@gwu V;,.0&I]J xT [N1Z-QO+xGblso?yyg}oܙyهN󐺕ّ@z>%*%ݗsw~U '54{Ž,WwL˛JP/\F;vN`2Q[}}zSLf[09Ao}qoYVP;_a 5,iT9aL"`F$`ktkșAr L[vRP "0ӗ_~ve:P}Y `7ezL:?UM|J].UO-S:Te Ħغ5!q-8p"-u"[QQg>MΌu ز6)\v?6/r[6;(Q&Q0n~-/f~P^r? /<-!e10}-tC7o$3ն0nIoU3#U4yPʬkŻXtk>PME*%ggfֿ(J;9髶65>3@%+]i\RXRu_#5+r}gCmKfl=dZY`/R *cy8>Q8ňHreSk^؄2) X2•_iO+7t/-?3E'U*ugUJ~ڊSp(#** LWbs)i Wz$~>sy%5U*1mxg:DܳJu`qlJefHaJxaJJlNwvBSl3Ξ{A_19T5e|Jǘ~(b䅥+A 4'+_R3T߬R5Kz YD[#63XIw0Jlޞ> |,` 4&Ag'sR`\JL:z)Sυe*N22tIp%6.?2n0L3aYc=q*yf̧S(CedyՌ8ں^[M~# .r*E;;XL0|Y(NSC:`O_:/0usVg>% *w `L>1CͲJj4BdsJiX䆅 Ғ`NM?k؆CdR,DglY+{J0=e.E k3}V` 5`p/>{B/>p Qr'8ڳ+rM]fH9HHdȯ,)@r -RlgI~\,v=g#M&)tr| \vFvio?Zl>v{ Xf3va&tK iIGgQuJ"O=`{SJ"=<7+L}GQ١`&(r `f&upqu#I"ƺulp?6,DG790}Kw: ~6`g4i\RD󸲘,Ӳ&`^$`$i`K 0v.TLQ3DGfPi7zN@?'[Z;}ФqKԚ3SiQ.`v':,|c`wA`+,Q-톡& 'jhPEfhM] .twt/AФqKԚ3Sa0F">,ါQinROat,EBrO*"dTW[0}*4G.z.M xHx5vFA5.5g,3y9̅OP7{ -ߍ|T%`y[, 50)=rJhƏt*\|8= A&5.04ǸJj9[Z/o zm۶7-\Y`|_GiO+'jȌTowl8B;]$ ׸D*ig 0XkWȯm@Hݩf::՝jnm7S1pLqf2-rDJlƏt*\;ӳ=fJ 'U;}$j\bxd0V^T 6%;/}ooVR.ޮ~^4qE,["`B3~؋$gw'GeEW$(5IM=+p,m ԗttJLxa)LoNRdfX0`w9xKKȊrM=Ƈw ArA>8D5Vh{Mbmaf4VSk(Hm'"Kl*GFfX0`]9%X).ئzSP(կ 6l Bsn6mT旘W "~]Y'y?CSYw`}9%6ǂ["XP7DCDaCAhN4vjdXkwc㧂Ү(s (`"kO͑GU4,2e?u7K<◢r uEA><2LRfej}{wW7|듌6E@$RxC-ENELR; v? ,,2@$Z)^Q wW"F`/ /ӓ7wEڡK0uK'="Ca4၁6Uێ7ɋVyG8\n1*МvV{VJya_4[Yw[^Z 1RK Ò̌u0&k >vp#(e㒗̌u0&k >vJHvЗdf˜zm a9i14Hԗdf؅heTRַIdlʚ12έAGmp$OK^23BS2yts.`3Y3X#>u0K|Gb%3.4E+rB&S{\ X Y3Fsk/nR4M9{/dg~̉Qe[xq:`.`nV%) `91V.`X|V-,0 XìR/}1T$2qHY% `91v,(90 WlU* *E;g7}eNȑ Eb)$`^gGcV)*WRR3TGDΌ e{kj({Z%Akcmm.ϬRHtڊXV uJ1) )IKTp?x=crkQ55j&ZLڍ`ygkgV)ɷgx|2J8fb̷pLpofM3Fe5ŵ; \JDq*[~ O} P] L_b+*ETiQJmG$4g,6J<>2gBtľ8 ڷ.N:I!B{QphnNrVx?}WYV)?|췫A>W`N]`/9vY)GF08 |[qK 4o? ),#R3uwUaV)?dsM=.?jMC`mƧю8+}d$~g2/>?~v_nc˔U!O =sXIv/nSMv9N͖ gYMa飄qx|n L`mrlSM!d qp&+44iAn^&yr"SXo4g0@>ߟ~~{3dW2ߏ: ,+: coWS~> \`dW2v!CN ,I=9FYQ2 #RuD#VCR#Rs.RUGnrLy(="nxs.0*U |JYύߞ.Q{D\*QBF]bV7f֗eϋ{͟d1+o$J-J*~$UVfV^eUʲu揎$ {UӬR!Y,ZwnXU\ts.0Y,t(hKDY~]R&Jq:wn79$gxJ*}GcܦU VMYeY,t(=Rz֬¬R}O7t\g 6G4}="#X="#X="#X="#X="#X="#X="ѣs%0,\`7Ω@t B#B!$0P B#B!$0P B#B!$0P SoöXFj - ZT˩t+Yuӗ" ZOJzhwV]8(Am#<և4XL-*jM֡z/cнEeop\KD!4qҘPH`jFS F`+hٻ0־̋ ^:h^SSԃ=xs ׎1X2/n82DEn&&Elx1[```& e ` ` ``0  ` ``0  ` ``&00 0L0 ` ` ``&00 0L0 ` `UT_`~c*g4C+ G_lJp-ye+/AMΕj[fë́zo`+6 l`Q ` 4,H`>*X``wd3Z3` `NYK.-ǕzMǡ}wd{703nKwj:t nϪ 6m~U܅zlyX-`7kͯdm"XUkSպ>V;9˻S.C&=)`WZ|`:k:2 󟥏zyY~XL?o잝NY>8_J6{^C;6av:&ɗ2H| Ju^40(,,XPɢ6qCB( 6K.-akzZy4V['O}s^f,o7 ₽t{LIyt۸X0ɦG4?CeĐABol%lm͖`!r; Ɔw=LqI9 :Nr׃|ɑAtZwz^l-=pzMF$țJM)`l ͌ťg$bfqgA;33;b&zzvZiV{tۭ)2G 65. ` 6s['`Mk`Aw:ZmG .wz~]Hu9C݉5cE\0ewS15}xSnxk!SDTjx[N2}JV=pMF!tS?`o*K=qrq8KK fd#3 EE\BRlCyku#d=mDS0lV;K'v!X98`w,v!ItJԖ*AEEL?qT=. fYuh]l mz;Ǎfcmz 澽 Z;₹T~3`FY" K;qzܽPמE5f*ѼɁw*.-1*.-1*.-1*.-`;2Ks\[bhb9*ea^ w4*! =">oe"3<>3Yel#!*.sa Edf0VqA0nA0VqA0n]N0q^0*.-$`v,儂 iTn*3 &`Q1dgw>3`vtl,lU#x jGI=Y Y YS*o`|ƀH0U;J֎m5!YSEr^(} RGq;'Bo ̡'D,lhk@ Q֎`uZ tl@0s jG3V6="v2-LV6YSj ]5"T( 5X֫XFO0U;";؋MC0D[d3J!߀`fśx*``````````'VH'JA0R/+4lţ,ţJ:)y?fKx47LTǑm~GdR'69clrh 6-# X[`YF yɱfADQ]S 56O 殃,G/Gk"v0рVb*GrX6[<swЧa}f97 ~ Q7PؼU *h=b ̪`+*z4KDQ&mq8aP:CդNt9̌HO9FK9`>8KSDj=4_?' _}4<թGNtͮ/S#I5%]}QƖ;Ż7A5[ThYldc3JM9Uw DO9Fd#I3#`r/W!ʠ[I0Q`ڄglE` E[g~@߆` A  \hV9`{3v.`?UIOC*Ϯ˽\q8Un*8=?~vg?<~sIj]89qe:n< dhfEΠxiW ɼdkۮ`ɚV`ih%mZдTL(R0595eh MXv\\ag"ZqG G0yc3RSfh&-Nkx},-N%eڹRǚSD>EY;FyvU_`~3_\b5E6լVrX)N=Q.x˝y`";gFL32{0ٲFd`zcԚb`tuùOQ]6b+=^%:x*bۖyU$A3sG>C6da[CmaA3,⥁Jس*e: `537Hjĝ ! `D B`?DOIENDB`awf-extended-2.5.0/images/thumbs/000077500000000000000000000000001407140370000166345ustar00rootroot00000000000000awf-extended-2.5.0/images/thumbs/gtk2-menu.png000066400000000000000000000225651407140370000211650ustar00rootroot00000000000000PNG  IHDR}(PLTEùü”`JcL̿̔aK[HɾܷÌ]I„YGƻ¶ʻ̽ZHlWXFdL`JsfMŵdL宜xdbK_Jȹij̿cKyi{UDp^IƷ竞eL\HީͿ_I}}eMgMɹꢏ~㭚]IӘ~n~k_xdV阖}^J↴ƨ͐u۬ŇkԢ֯Oxtqܵba`µsifdYصU\0BWVU,NdY{jTI#IDATx}H.m!PIDb  6vܱc{N:N'{2ɤ:zg~߾qzJҩsSeJ;s̍hs6 o?|~>w>:|z~t3}s [_?@y/ߙ<'/_~~PյzZcѫk{{{Kڹ-ܻ~ciUcaU|l~u_|… ?MN&~>qC6Oy][\.^3d 8pXWUˆ|s{¾׮N;w䱫M~7y?9_Lz+D(rW# BS2??7gG߼vO_ ah(wvlhS'h6Zv].Opt/ĩ&λ<"^CDT̲ZdS4KVԇJX\{n|Dȁxh!å4!"$*!ed%JN⊥a4&(iyރȭm!"_,RV@D[X1GX* XxHšT"c 1Dʥ\6G6W 6sXVKbHjšm"xGƮDҊJh(ЩxZA:w-#="J-R)X4fP)}"b$l5H!@&@=HAnE6 3<! pe5<>IP5 )K$Y̕\< "IeII% ="U #2FPG-LL$EPSr09O/ DF$p0# 9(!B #PaB"q֏=T:z2uw(@mZ6{)^hJ4C~ !%}E|8|8A$=_tSMD GȈ-\<ǾMd^!ajl&͆`KX.MLHPMq&*8fE$zs&"X^ .ͽBa7XODIrGVieJ%U=3{..Igr)O'!0^P^wE$+YxD*"XHrIJCDUS=" }x_ R{$ =^ nf,R{Kի`sS3;SJ{5K[}3vC@JHmCIxo"FSN1~69*a <( i[`V: qf&n6)M>p~,f|R>~8<>>??;;a榦nZ&wrr2"qZqjNmEX1YԍDyYLU5]ۊY]͛w]Y9[bd.I@{k ~doEM54Gr/"kw6IC7 pg`"k2@Y=?D`v#zd.#3ܕ*\3-+I-ə|0 d63)@֯I]%D]fTs8eDV?dRɤ})h2t$Tl"=EZfT얔MJ>qwsG7Hf Z3+$9A9EϟhG޻tA&cvAPW55}{M)S4Pa&JrFJ %6Hf^Z@2ݕV|D3i@l#!{ 1 0cA#nDlEbp"ylf "3xf+HI4R TfZp &\4;G$.m!Y|~v~#f={F@o<3ղ}]^#(?ÒًJYGRX+ٳ׮l&RcX1t\0{iAoߞpa" \vЪ96ٲ<ݤaVʡNf+lii)+%]:rZxDHnfD(>峍1Z vv^#F(wh[+9ԕT )WP ;wkիW?8BL'Bx ,&"mdj;{<r!yӑm9ˋM'yIG%bMD x^$'i]sКGޅ[ =[GffO֎^X?H2_ myi&| VW[Nf=Aiq0fAz@]ha2Z1:R{ {9w3)R,%R tʭTr&&?'bu(OcX??'v]4cC9V]Enh;riW!X{jvd#x̙s8z9#?Жj4eCGS]$NQUۡ[q| ;&7>[*pHL$<^]ҞrO (# {Gvn䪹\e'Ct =,='R Z` Gbo/ɲŤ ޜD}3CHm*CFbm{bKVknedRn*ªT^Jh#c<%\~I[,Ȗ)  U|&^zRG6$k!hKh u4h#(7B&aZ yq״%kȈiaXL!$F"5vT<\!Zx4tQNCNF!}pG$ͅZAhTwwGJ`#c="5.3] SDQ;Hyȿ"΢+R]$,F K Lߋ?jfD(787?ܡƠy^f;@Yx~&7y>S~biNa9bo3v [ Ș75?j@Nm"!|Ǥc~/"O^c@&&gj)Yq!~*ƽKjD ˗݉:˴c4'H@LT|pqykG"Lb-Dzə#~Mq] {D}%}tw'D!L!l&‹S-`s]ηz|Cr5R7' vw4H^_TS0KP'r`ݯu,"n'8rg"BnkO-C U:tǓ"_7/8,m]JFG E%*rUҎ Ž5WLϫ{;@2_+  ė(4v[Q8>NglhtB4 Bl-^ #s;Mjn)!l. 1j*Ar K,򓔉D?, qd^ і!i rZ`ɒ\YY.Y*D ˕J#3Dpf(SGUH. u!s6Xx4NV+T*٫ryR~SrUp)"Nlf1Rê.ū|*r]Z,jg"n!Pic#zP7(KyJ~ί(+]A H|QݺfСJViܥE\VlfȕEHCAOzm^ 1޴O #岦%+KjiZ"DK9 ĪTfk x8nhHCP$6Sfo"8tR3ZZ-3d rdUsə>1 b(Pӯ(]=am 瘄N>E"M2BAFplw|eeS c E\\f$xo(?-պ.xIMcB/bV:bH ؾ8J%YdA&iYh\J&UAmq_$*0[o(]i+ăN^0ӂ&B*WUUJVYM {?_IL+] eYD`I9Tar;DYޓi~.T@J1Ύ;)2K$;LycO(nX G1b[;G a<$ `DMgu|A@7)!+.W\%ӌfJTTc%P,6!~㿤A6WH k? H%.vMDEx˴X&'8v&Uԅ"XS[^,=*=,UsY6Z%,g!m&m!bGBNX&Cض1OSD qNd9MFwD 'hR i:M)qrAz1l ;R0FXxif*QA)ζpe]dER 8m~~e>O?^Y9V`ڟ[1jKr1sAQp}Z@;pVt`#sٿR9pofn5˕JȈe=hV+\j-Zm>,5& ALaeOy1 6(YW"|;md*c"d \!#@E^Dbz Z0"O5XImz0"@9 UnT)>ꮁR/tn$0WDŐ4]Lm@"!W(^+$zUSكW$ Kxdxɇ֐\C=AO :]\i}JšppIiP-,َ^4Ct]"\& Q7xCPD)NU<8 !y##m:|턱aPr5xƨ+u i fv,tK`#;8@`ӗn N2OGzD^OED۰5)u`@Bϋ0yXCi 0ө6/o>cS&2Qv給Bػ a"#bD4턱|yo;b&YF6S ςφPC'ybK _Ѹ"Q!bc3B%η_ `4 l!'J9>2 H1BLh3zaL|zj.t(ócXܶ=p`b0 +2);z_/D}D|ۀ=L]gDXIB$!RX3K> T/>m,X͂2!CP(9*UDs18^lab;iZx8omK$b*z!R21[VlZ6_EzBh@ GlQ_>a7)ZaoC'uX\ޑoDLDT"̎DR02Xo3I|&68wkEu8t#^kվyDt-CYQJ)/?U|j;*'F]ˣMzD1Dl0""yߌ1oT"?i\t"8xGDx;}u~T"ˆ DF2R8M'5yV+P5=rS%j_Ei=Dr]ˀ@  m\ب-r=F&j*s}I~[kL E$)f ##>)$$:3RmS[xn=k2GшX ȬeYVq1Sv柞nYO Ls\H\2_f9IeXD. c|/S!zaT] >:så7?族>7__^:G?pgDZ75oō`o~T]zP?z+WO/Q(r.6~ :iWzzo6obˇ^( _$Akp7Mcã]SG0xP߽O666y 0JkZROj,5: ǚIUF`NӒA`"tׯ~Ɨ~ݥ1r/U-VˣpzC(C虋8XE8\( rEq6__e:ofdgL#z~.pjy770Ƒ#@dtX+ok_\2{7՝"cCDHmh$A~lH"<#޵I.'&() Fcx$ 7rVexw;o?i8aY:\`҇/]"?><#S0טxrي:hf> u\3ڙK3gn߸% +dz T ?@-W^j}=ccc6|*[ɹ9$>J3.썆76viglupn֗׿dicvk:%8}wK8AQ3o&P )6|H\:qtKHCԅ^{m^ Y=g>gmV҉~yfg1g(l6SBa l}0LH+wZ"!a(k7>y0s)>Doyz|Vd# atҹ80\{V [i2?AX+g˸ô,7w|"$BRBoy-m.TG [ZD$@GK$+`BLS1KtO=8fڞk躬uOs 6d7@ZEd Ml&~K2r$RO˙)NX2d\L$3bp1|`";rLУMg@i!4khW32~\pfHy=E7I'&_'WJ)JŨ=-R6D4ȨP٪q+ӼDNcyӱ,{Vw} =DomXYBHD'Tt泺G-KG;}CX2.ôDuK)<(vt1B">~bfF, ۺZ2sM", BT)JZR"dSVO9q;$ms\2Njm썈lU 65\ZD~qDH6h/p:D~ Dv݇g:e/"jEYFXLnnSSS6+S.'JD41=MRR>Hh%HrēTHdap"`%2 zQP;E}5]"DMb"q9q>p;Yd [>3݃|:$X,$a`m"'O.GKӵ,+lXesj{wֽS\v!h}PܴSWZDq2=)1u ݪnIW(6Hmt6M"ak_\URC(IDZ-|vIǸIh4Fs؈ژy dqvbYDQTDDDNND[a4FqEBlHdT"rnna!2%Xc ,@#=JdD:'qNDk khJ4Q3[!hvoI>SFN"{'jt:8_K$,;5htb%EyLC !&T/yhˉڪs.Otvk-v%jo~VۛCq'N3wf"uW_a w0^ 1e2=RN14Q[L^,oZolo%S7| t Res:D{umװznX"+&G$]HZU])0X;333'DDqr2NbpܹH\J2b18a,F>zソөR|cHLWB>nZVt("2f@Y__? ض)9ӁOIFC˕KTKVG@TK>zHD#X袆Uk5|BHL,?2vȡ & Z^ΥTPldSOR`Cֻa~NH a7޸$a="<@^yvrhe`imD>s"5 VQ 5@vr4:_JI$mvo'.? 8HU›/MGKPv<M~x;˩"4Ɂh&W" z ^%B S:w^ajbNU~I@@/KhgگS!iP "B8h$D!!gf@hZICv|`l^L8TuDx&f|h [xKu7ڧ^Dv7ibw"Ǧz!if1xmVVݎ߶~ =l+++{jۃ{N{M]|dһa_酈Mc\ml|a@L{xq>zxؕQ J&]4Kdv4ĿM5@<^~'&IovVS?w"ÑL>=zARzḎvu9X6Lz3@Dz)Gnc [_%۠N˺ni,;1c[:F+"0=*@eU-j5;Bٖkγe0xU1ګn;Yv#B.#x!a,+~;)& ζd{&y0ˣ?V&ZDXuȊƴP+FS?8W݈ i":UDgzzZ"2ǙP+=PGG&4Gi+-‰[|AO4xB*zMF2BZ:Ev\'3"HEBN*c51M6hl6O5CnU y=hPQҁPSJ)QW]䊉l-T**Ӊl1ۇHl0dH5nT\a1-PfN rⴉ̿r[zf7hb+kHG}ê> N HU&6/abuɦGafB_tc %8P&ҥUlF``*fRPU<P3LIZ0! L5AQJgtbeP"VByB kE[3G5RѳbB+Ŋ^$=FNRLπȚAD>":dyZ!-"؆g"GF; h-(P "y;9qzm}oݏR(梖CbeֳLh)t\LJY'cJZ3LfĴC!Y;H@Z2)ϓLL3W>u2,ۊ) :G4 ϔ])$_(DըBU'aJbU{vnj*Pj)׋Y9x*kp|}+DAj|,u(Epp C IqRR糇De` Yx9+s%TIXŜ^qp& 3I<18j'mDT#мJЏ%1Qv%lǺ Z0oM/Da:(r(`8Y!o JTw`(WRz%HxĞ^PA`bЦ}K04 3%P&&R/B_f8`$1JL5 30ed}[j;|&a.'p]2! Lu1#~H2`"%C} "pc $ix²*\uXAJ\g^>866qn5.T6!rp둧OD&1ؐG"~ҎER(Br;F#[܎R#E$Ҏj<"՞,Eer{7CH'%܉5̐d[!FJ)}OAKˑ]230Tá3IIx %ɰ*Jw\"-_pRo~ty[Y&m#DKh, Y?9q5CuAf` W"D~$ͯz+qsq67ő{C B';-= =Wa&D~L|dp"`H"+2TW ^#zg/{YL/~c [(ɕ,M5Q}D֠F`6277QDD2'+06LDB+X S=aՋwM7o&rxщ6sd~"W׳uW&B 06XO ' ~8<~s "bl`bۏE=,81 YgLLP8Иi:DRn"֟h͓#xW5pnN<9rrƻy qsxA2LFQ&4Q o[yD`^Wک[`V޲pfT?". 58-ϟ{Fmx^<ܼX6s_"C ƪ~ϟ'Mp (JЗ?"2Q~. Fcb 6 $҉ M+ 5@bO|- !ͤ۽RB;UIdTB!nR24-"2ϕ~IU40*$|P"Kk6L.~h-C_Do]3WVm_|cߍ}7^?NVj7S].-ͦgR_-/_ryu:5^8˯/-.-]_/X[Q$Nϱ|N¦VZP)4*T$NE5\L))Cd2]MUZfa,0 @=_bʥj$STa^D8*vUWQS]a6"c(]1Z3iR=t@Ħ@-gw!?k5a6v #@`rV:'a)Q$,&folNpkeV2k'FWFpʣb`DܝX%ɣ9+y vRIޚ=Wow>_I =yʷ!*NKȀ# 0(|Z]=ϙt*pȑ'19y*S9%#G8×`_w;O9AyIԴ )ȑK> MC>yɅSΝ:J uwӥl0jgPAC/>\Yv78|?wԉ.<8ws\,UDBX,<^q u|bw&E6wE>-iwZ>K/hWB-6>&d*3kU݁-1ʭfH6MZK^/<5feP!ZAblQYr5A𡞡c==lAcfhfzCÄdw޽>H9to߽Aށ hhzz{9`!u$Fbp*;pU*8 շr"_ #cޱ=}}ׯ_ MM]4&P |…Rqg6>rVt:;ӛ@\?9#au|wfFMr>N gЛdt0 eIYI.{HIqjm@@9;yFX!#AFugEԅP" B6[| \-g|>@ytWϔA VTn $Cͫu3 nf‰*#^% 4|a-TsB!/BQg4dBB}CA}~>d pVAul@1t+,s@9vf& >N@ -a)ujC%?sҽw-tBqL9Bgg 6-yqk o |=zYHgYg*igRO'3|F0@: ퟂ;׃AN>H=^fM "X 6Hp*3;MvC%1dMZ(m |K!I~BYH!M8#E903H/E Zc#ay$'.jǑQ25dR /1@&)Js^$o/S>@a QdQ2:a&uPP%o9 i(ZC 9r :xdQx@J|UZ .Y] jvRm܇$ͽiV|fY/n![Jdzh{aj*#c_Tvm'6/tX9VD4@N\_ 3BYNY0|6,P_\ b3b/vov*Iq AhR_! %Cћy(o ;tj AbMY8 Z4zJ$6@ɚ-;9zF=NLmr) }!Z c\ QM=>@ C7!7 )x%3 np7/ ?$"s kEg=aC:<WK /|@-li|3,y*J\8 LB(TXzB!Q_?&vgs%ߠyՅ g~%vI G'!9ƗKŰƦ I +\H޼x}jIr3y筌0/坅0+!@1@C\;׆!rY4474:FG ?"DѥTH$P(y.k b+AB_:}ё#}][j~mR+a@p{r R !qujs9lT'Z64kn pU9 =YYx!WKyd&_#$9?4uyPs5eI6u ߿LY.80㥸^J g"M V[I ͠35݌~aZiz)0SRw70vҒ#uH!^CTo#޾Bw۠s-Rss4wSbd#? >7%tfy]+㬭BؙI=7*RuTof&fKum<+G( <ʎEZMEf$h{bIH2EA5~-׷׌A֦pݸ'=uɇ_B.~jD3L!,eȏZ#ĈQ)N̂N,T&>ՅN1WmA4a_{&WL=t raj# 2vhD[죧曃$9v8Ve& O›A,Lak2{@LOg ֊-q oq7߃y ؒ&.a[?c{$rri$'ёZ%khk @g)z6~7l*]Xkt"Q/. 8H "v؂ہPe3@8U] H||롙:GJYͣHtq,@,?DG0[Axn:#z d۾~xx)G λDGΣH6ù(@3bC4gE@$Z2r3=" lZHs)LH<j df5,([OmسO=2M{f襧gY5=z.ن8 $pP CsGz{$Kon%{AP#ѻu!9ե/NA)H>#yeQB`<-t:Gya@Ʀ?$ɓU8ǙjPa_0zuٝR*%|p^]M(DN.Nb-kdԍ$y: E;lD]55AS^k]i:[5tqm_BAӗ_~OeU6xV/÷!āoz–.}SA薏J Ϟ}5lItj gڂA0rd5t%QկJ4Fw$:{4lo92DuC@lxgp(3)_q 0_7:9\j^C!Ƚ/).\Q&ְ ߿=y?~&FU*N*EE+G+!۶ҷ*os`pD݃Vd2n Ab?uZ?H#`0bې{K  eFO $9k@k-_n]ܞ[Mꞝ:ڧg "7%y}Qߪ!EhEʌ;[gkQۨi$vZ 0^ ;zrX3%GY 6B0}V&w\c5mzUN]}/|Ѫ*PL( Vod84b{A{O ㅹM#ggX$ #O3mȗΐ,pS*ɤ[a<ᥫӾ|ۂFF;6-Rau6#ݴHs<3ϡqL݆/-&6d( 3d̈́~ZS<8-q.ψߪD|=i! $SO/h V 8Ms膓=X>e/ BqFs 1VeUqWV6rl}mѥnMA Bk I ‡StOo 8/2a  ൹un$l%!r;Xf 1w5B+F^;qd#f]FoayLPy%hp6`MΩj$Q %A&9p4R5r37$Y΀rzm^ xF3Έaj8LݔPFGQ*Kw.1p, gJd+-Fhg7&(B4MdFFh e4 evɹ$cFCc_|HԸ:Bu@W:] |yVl%SeӔi=: LcUfy1f+3P=_RRdc@J;T~ R #EypTiAPQyd\ŗsM gV[3D p{TLY:wk#h- ]glTKD pܙPOD%QhV}Zn.]:DQ#jQ%#ɤ( F9oQE;RaT$U k 0.08GOaȎ 0aY>.TvKYhN62A=t&RzAзIDqTLӉ݂9D 9D{C,pjmiA?FDI@РۢCL(/{>!Y# Yy:@"<.W,JG3u!ȣte&^dh@tVg)%Qucqoq +F.0 $~B7R٬.<Ht)/8Kj)-Hm,#{#s C69D8DnC ^,j=%?\U5xlMXU0*)a;+x  .. #>^~pUw3nHj<`q'F/:! 3杕lZ)U`i>[Jf.v05H |Z^*ȃs] i8t;,2<<3T8\FRIRL?  =?j1?4*& gz6rApA6*"(DQUYv+?A SP2??pln9w]-zz6"(4GE*`Ys^SW_-C:j8B:Dq%B+D+l&qolFAicHWA =ْj%3" ?^PM< C0t0@V?M R /E7,e:.,>XA#LQ1J0@ 4}M`<yh1Ó`<찗es4F1dL"MF[W^x:6N.Mh@hVdp̊Э!b7`#ЧJpCtJyh'hQ^5Vһ[|]oO}j-hΝt(= hPhoDiL 0l rޘCds6Mi0v$*Eb랝(GS+l1 c<;,1$3~A`.Cחh0g0/"Tƾ q{yARr3R9I]D(}پ h`Ɨ4>h|4 ۙ;7N^e* d#ᤞ O*<"S08 gE`8]$0ZLkCO4UNPDHMơy* $xUkbϊ (I$L*aQu[/I9DHEO<ȍdD9jdD1nzJNY-A)MݕS5DqҴ4|&a NS*tRf}I7=;x},1̆\Fv^iEӿ=&W/Yߐo}EN)^c9m/GV|7/^G_̾C̞O󳳃n^p"N Sx x ',98x<?w޹7`Dz#@$I͑=d\G.+ï n(,DdE%tċND)]OYZiDLމ1, O9>}m#:mn5t4twQBhH8೿Ey"l=`?CNQgЃo~$ 7tp"G},ѣe%uhu_+b e3=sGKO<8I<Ϯ~F?L&Iд^*vL?M3?>ߟz,ߏ?uD?|a< `8ֵօXMcOz``l,p6qƙćᱱ g928rΝ|p1p@@x?p񉰛ϲ&{k*=D"H4G:wT#xD$&".0c቉NMg˟$ʥZSL&3||p21q-:v]㓊6VeQX[;u|<ֲ( 7t;R'hH%Z0 º'$k὞ ir/̀Sfr O*A$28x {Vn.n^;'$9ei"Y9'kDxU輤g46_ZH /""qA)DB^ iH᰿>V\s$G @U%$^oE~aիWo`H5\HVɠrp?IGr=n?d3ueL;ɀAD o9V6 YՊ9X2Ӏj! 3Ŵ08_kW37MD0k! "NDN/]4'ԍoz狤|qDfiOHCUq3Hķ}\j=Hooۅuۄ$J{Fs<#!Ȍs$J /8bZt8!ނ\ ޛE|Hc^h@] 2K|cp`ڍ/o B3n{]Sñ*tUBOCSá7{ B\pY >{c D.Dnބv±˗/ߺi4Fm̉wD3 #B'y? ,U'$Fn0n5 )R$Di[kns?ioUvKcg&\oȊIT*.x\k ϑtv3""8" zouѧDt[ooE5lkoD"^>_MU2O|B!|4BOq1l;qKD?\O%Rjt&gNM|0y÷xKD؊0)h1eZ'Ph_'2RYj&"ieQʪ2 ֫8kƍkwOYf9& YD,X174f[o NBH7;7?mW uTwkC4 b6إ[A6irA=eG##~}iHJR0 1.ENZmP|ReYaӈ'ݫGmسp8jb7dx*ˆX zzƷ=/?R'avQ(ƫCW:QCKڒF f"P0}r!x1L-"[kz%Qt"iLMwcy~\o 74yah,"<0|oڹHS]&PD '~ oGYyYžd ፏ&k8hyw"BxO7kؽ7ёH:I_"?};W,$rΑD}2#%_|a'KL2f1N߶Ji(cCs[&J*D 8Wc5`v3 ]_*َvD I`n6{AkyY&6aGD1/(bB}Di|EjH1/Mrx5;}´?a][!팈0 r_((F$:ctNjWDYcu"1PmQ̡iL))TN%ÁdkYF3}'cmYX,.CEA4jLZo&.,X/A5S6 m"1*]dw@eVrF2U 6p\-Rk9 %q n?<{AkͷqP=m"xXU"@ۼ)Iq%(Q) KޗѮߖ[#-G+g?i?zVDXh8;یt14XFӛf"/lȰy91\銓 1Iw Axˎ{QÃxӧ-zd I.kb0AiU"Nߠ9$6V5 g Hm`G/oGJODC-A;0=.1Da{&0`x:kWIba?[@lh#; ;L[V<3-"tmbFb;oKsnD+'Jz~n} l/-1$Ok7 a]r`. agf&{}nzkEˮH=SDx4e˲hVT%R5P!FlۈdHE䜝s-PkzD:`D43Y'DMoģVxDP.ltӳ#a#6Ӊqof޿9<37".ꥷ='LdBl&±m#7"מ Dظ Q/cY=>zO5/b9X b-UZL_yIDf"$8v&"o 7 mcoMn~)DKH"2"j "4Tٳ' ep{ufe&86 \#,I9+hARdFɥZbz||R 23Eoy_>9Q -ye،IHT5Q&Y8F`$!HʈzG$N]7-<_!>Z-ʈQ2hP$:&D*eG,<)USVB|jpġ 69zT%Ԍb  ſD,%KиY8,lmVs✋#QC0-[dewК2X!Y&h_E=Ɂa*4)DBT)=wFhd#x\HDP`Hs( O =dX};8\V"Xfl(DB$i$* [+\UqyV$K-30h% T(Z*ĽEq(;HPɞ_$-uju>g Bxs@ɏ -֢$]4!!xcrK0v0IJH2% bä-%tBA3" U cu@~_D$Idab;OAމ0|$I$$( <*ck&ZBK^A09T0 h7/|>I/V@2t 8 ;#-46"#@ToR@UUM*C"aX+i 8sy6ŷpA< ΍'%lGq;6#xj%{ tAsDJ8.UT% ~ހe\~RMVP$B U-UT'xAUw|$`]2||5DFl{kdD&x`6b;;p~Խ|{bʗ]}"҈\#>F4lY'E eai^Zd1eG|yAb-mA84JIDSF/\1(KZZU&[X YìfaÃ%رR6DP) D'aG*Z TArй_HU, %t=Dho{3XYPaO_e!la$8'x#y {H!5!~1 dcnDq2ndQh"v5&CAIOTZaLUkg"D#{!7.\"o0" k{$H'`E9Hum%8|-IP%)NžBq#|;3 g],ew!׵΢Eo'( [++zN+T>OYIxMGV9N}Sr,)OJ>),evłwмZwgBBl[N⻵ gQb(*ȱL6eSP$ ǯup@:lfE)²92kzq)Y'E0JV2LȰa2G=UpsyEͺ;E /bJ׶b\e3~MgXerUw?b;,"o{ЛB!?3VDܻqrt^~GqV;J7hgp$x%D1bJ YD ٫hߖ>NQhXV! EÒ6:Z]bS鈈m9dU-G~ 0I H f;q萕(XD?OKtDd3LٵZ- Wߘ.Hu&ޭgVPgV/C's"_4腭|,+eD)s[OdU^)LgD.e,' EdC,#󁺭Q__e=L. Nд`U&J;~9վ.#SIs&JzDuOwyDqi7S*1+aR}80IDR!b [pi$%'gq4JZќ$ c~z^#52k l^B&3e!D%S"!"6Ľ&%s}s]{m"7OCMr@IENDB`awf-extended-2.5.0/images/thumbs/gtk3-menu.png000066400000000000000000000230771407140370000211650ustar00rootroot00000000000000PNG  IHDR}PLTEýГaKʿξ¶¼ԙcLƿǼ\Hً]IŹZH˼οėcL[HȻڐpbbKpݞs_yŵ_J̿bKɹjZijxffPzUD^K~ƷiYdL]K^IgP麨pѴ~v\JaKnazgyiwڑpZĨϒxbzٱgMda_]z`PӘ~-,+.[WWU5`nvspdضUتB׎5s#IDATx}Vֶ! !94!HEf %$׉uf6i4ii}tξϻ}~'~ϕc;xd:{%lpu9s/%NG?zY!6We3Os?Ǟ=_y%/qx,閺ܺ],xuV;懷-/9t4V-g]8d:vvq/x^?啥cǨc{-C?vhYQhXɏ׬'֭-ُϽo~;'Oⱓ6;#ػgc'O#8yGnOȥ[#;O`0$`"?+ۀG?x>L! ע+Љ?^?MLQz4u$YfhxGyh4o2L0(/3 vKg^BWt(}`Ql謱Y-dca,ښ!+kJ̸ekc0W޷߮Ko&@drRy()iLbGqQ'DLpLQ1,$xh{/]_ZZzpLL.P:Y&ȭ0e`ӕ&vj"G^xq"|)ۥܝohލz/s"\TO>X^G}CBA R-_+vNa?sϞ ϝ܇}O͖i*ҿ (| b]a DFu' nJ\0ŃAT4N {9^L{~/]U[aK=f<8βlVƆQRfK(LV,w-3USzoܹK/^_=_/-}:^[={ϽvE=8=Rܹw92Cuel ONn(Nu 2wŵ?;^1ϯ.][}zgVw`Kx#=pU 6E˲DRsc/]xO?s yew6PKwq@y;[eSPUCh٢(cZNKpӱ= 3bRQ Ydo959S8)QC9Q!09!mA? NU m:Eܑ8"\t*4ӪB3>7g8 4J^72 tN/*CDR yD OHL"jfYl~KZ!?8Z*FW`WU:%ags.\8J{}1DxbEQO'ƚ9 |fe38dht6I3L&Yoff 4ɳAu@( *貨BVuLVUDfGHɕAV*-K  )KӃ$*fy<4 GzDˆfl8o,"k8IfnC*4xl+HcnˣB5d-E ԘwV#mo6abďt6M&Dr&+Ϟ={,H 8¹Dڡ!\kn]$@XX,B )晢fA#aRD$~{D2ˁt ٸ'$|V $끅:!5̀ :+֫9}HR"ّ4]Ad K(xD2&8'3Bt kE fveJGJBJʑBFWU"2R[[Dv\OD^}w}U-qe$楋9NIAEU)%0KRU=2pTJ="pm-]mUUc׀UUv\"?3#D'#Ei(KΉhxs9qBI#@w&o IJ I{σȏDc@X2z=)"ޚ$?|"lDؓLkL}%Z師GADE(c5_ʮlĆ%#Koq赮4d^_W`_T(m mG5;LD 7`oۿu'چieEð-r~28@XZhbH.TLZq_ = ${-bd:V馞lPnkz*k_|^vIX&@h4< #3ʈh>^v$~ K "D\ܬ݌kةZ:P˴2f 'DJwE Ew%~… cv]6Mȇ( c n-vz;SOfD Im 2 \XoNnKtcLK\ ɲ5bk4HDuL{~ͭa#gƇtu!3ސl"d7!I&u[KDFbbh'PN߅HBŽd@Qt$T&Kt4&37`f}f|-fT/aolP#Bh@}~ r$W UPD3tŇ$8Sn&#L$dDݫ 5]ԈU^ء5<8^9_bx$i# h$`/+Dcr<l4r} %;%Ɉov:Ji|GMwt:I{4n[pT]wPĶggKܑxlq>t+WHN@4zo]uxx.0N{3Pj~] Z\"nG$U'_zDɦv#ywر"zl6'엶#xDޚLJf2B#PFkۋr0]eЮ;u?'lYPjwꂊw!wᮞq=d;g L ID?>7LBtoV;>\|ӊvXScTݯ#"kăս j8LvP8~-JVAS;!>q$ Mfv~iLn5FOࢺ;i#xIV @FL$tE:#"YͳqmuI$ S)쌌Gdz2rDdI0͸8t%F '",k,[f4;doH2gcT"n]/}D z~l!Bºfg#QjW4{<2婣$:x6H06碤j'ݣ_TISoo뷯G UmUӱGc9&RG]CND_} <&v4Mq0'gy-Z~A#jbΚ.A$xc$js7;M@ߌ%gb DH}ZKCH"'4-g78f{"G@byD_f-kbb^d;"D?9)6H?"㳎 =7Lo"QfG @G$S9d=D|g{_Ia8=hLl wͶ6FEj5A~v/iU#_a1)8x?="HOR ﲢ{D.DK|߀DhPv5#P@r"ei`ّw"=e$g ǔI |pJ\?a,@`B\! HHܑH<Ҫ"B4Ly1,L/kzK0jKSblȒ-@ MܴfY~ձ)&c%#–UI9"$"aܙH̨aRJR !OWFɈ\ng psLҮ#@dH)&잉Wn @0GZ|3o أyͫjfnvuv|#`5F#D2*8b\Ln2/Q ܜ6 ThA#!J.c BJ=SoT*| 4 fohJkx!'^('d1L2Y+KM*bG )fNu"NsbDvdK~5۷u`h*SH,d!T<ȳ&=ZoskmO.4 zc7y m zJW=rg {Η/ӽIHQ*Hq_dOORIS=ˈ6]r ]6jb%hUU+vqk%|y7ڻZ|+p,rbD3#8D^EF'FvY^zht2gP즛. /vuoa֢1 2YAwiy$4d͌qWiEdgjc8jVT)ä~se1 "Ȗ#pAz@$1g٪.wUWu2b.Y"#Sb#aN!"<:}a.&ؖ/N‘J'71$>D728QSB{_eMl@iUsvxD亓Af 4#&=xvE{<ĺ@4;GK|2{Gy;-hg|/ Si}7ƤQ(zwyRdNJMlFl1K:!rQi #)ue"AY󷈰Y]ag#PuekUH ̫fLhm_0ʕ 8/~Fv D:Iasˁf%^$x-BCq'ɳLd?5(&LYE!{VFZ׊w|$Mt^dJvuk}"v~+d >d>s1{KӼXح0+Ť uRa⮌ ]ɫdZ}i+:JML#Z$7)OJn%/xǁrw;Wk5X}T}q {V+3E kb͗WFMCB!z;D2r9cJta\7(Q<Sb(\tҥK_d&_A@4)D*/͆s !+5 O}iS8Q{2Rlϗw%L"QD xL E-8BF{2ȧX+:$q6B Hn&\QՎƜU]P7+ czy239c\a/`{\aV)RuNjN5j|&x$暮hT21Pa[U jdrO7E9mΑĚ"p9AؽGdx(zxF8P Hq_~ofm,?s%Pt zWAWؗ}q7p+;Wrtvz< Oed ;:% ,Mk]mPiB)^} _qW;I4亜#4; ͎I)TU^rtA!T D?NK\{iW8G+<3Ebj@[aA tW"D>%20Zn $h>\87Y/dF6'&`9 ' ]eXt>LSBxW! 4y2Dtr)`!4w'sD&DD0bv1֚,M,tDYCA2WD#"~MAEB41=Y" r2w"گM7%gn$T㘃&R0ϐcKw""YYT~ـ 77,V/YC7d);" `;BZ9N"YbbAc+oe "zO%`@DԎAZL-n;<ޠk8$בesQ09Y|! `~wGeEoD < aWt3s28 =<"; ;-J0|[Kb"l79» [Zۂ\oi)Eo%ՔGd .D^/"Z R+K}Z+L;Ix"98gTI l"*&11B e@HL& P8EHPBXo0;߉ o ph+b DH QR ;!-\/q#q1YB(IP֊HP1\Qti_H?kS),1qG XfWf|ї_~.y=AbzioƾJ7?Vp&tWN`L_V S 4ˆpȌ"f"̮`fDXVJ+,7mue㳟tiB있mYԒgq8;GSG>ZNaYi#㚲$/Rd`8>wwXYG 0)#Y6J#T5,]HsHLBK~D #a)O0ۂI$-_v$%+c~/ROo"3Q$7w[1a ,p&T=d?\wkDetvAZ$ktyKF=RM3Yb ?Q}Ҋ1\/Gbp4Nk)A5Q tJ,Q:ޢ3i&Bb~ZSRIS&}Ȗ7f$1Z4F>>z{~8l9|q_1nYRDa2's em5V"(zD[?e?!/0^OE677l6Q8q Qbh6쮀fvk]>wV}ÿaկ/4lļj0y ɜ7IYk 'dBˆ%#FEq9d:2MZ71ӬPޑ.T'IqaChrTy1 Պ$Dž}7).p=]nIENDB`awf-extended-2.5.0/images/thumbs/gtk3-rtl-menu.png000066400000000000000000000226361407140370000217640ustar00rootroot00000000000000PNG  IHDR}"PLTE¶Ľľҹн̒`JɿǿaKԙcL\Hǻ]Iʼ܅ZH̿bKʾcL[H¶x李s_jZͿȹoZWEƷŵ^Lpb}jfPyf_JdL~娖ކiZt`|]KyiɹhQ\K^Iij׼ٱЧwϑwqƎ_J枠gMµvUFa`^kǏB򞞝Ә~znڏ/.-7XZYWocXeMxtpWyp`pZ~|k1Oȥp׭YDX_#7IDATx}cw $ IYVKGXum;8:ξo﾿NZ҂;~BB$599]9+׮]9UrJ^'^ԩ +ɩ{#yݭ}{o]xۯy&?"^կ~u WN:Jg' '+'P[76r+_|R?R_ByTYY8O6w7QZR,ScVY! +#hPel7SYe:/X5.- i¿b.4^T@u;:+v: 3C\QkM P V-x"I vpI4P,2|>]>[dw%b"~ft~w߽;1WqAgJ|4˵d_Os[ii"]xwɓz!w~ٳx ÿ16kJFZGF6c4D#ri?.d}Hxx/}÷އĩSLwowͳ~zR^Oafy||[|8  ̎b#t ߽~nxȷg9o_8zKꕩ{ǿz7>'f25gEn*Jv~~k;{ijR"Q2 ͟.dso7O'N_z&m(?~4+&IQ$P/ y@ysxTk@ -81th^̌qP/gTI V'U57t.pXt-ѣG % M*躤ДbsZ]IRUU[DTx0v ˝']^DtŔ4CuzѴL] ӣ SS4]|2$MDP+(gBPF17977gvm+s8 ~etꣷ;0OD$:*x0sx^*0wQK|tY؃GVrDīy'bk l:1!ªq*HCcO*d~*6ړH߶Yj.Uf.,^)~¾6::Y`SFdrM!Q߲3r.:N]v?of_ :D|a?puYQ{Skz9kޤ˩l-/oxyO"azlO?xVӊZ V$:1P;D'o72hgfk@ \*BǴ4{\ɔ$mEY%XW oیGteg@l.D7wbo=GvNlc8 "5&uLPN$L04.Q&^MMK|}m{\,a̿Uδ.PQ%tT"-"Α.Vavzw$fke&sjm"!o~^4 :[˷hj2MD?9~.5_;D~ /ǃgf0*\:Dd?gF_H:mDn&*Tt&*J_DyU3T'¥tKdA%D&Au!X%3>bco02D9WW~[+˕J H%[ɡqRЕ[M֙DSMhmÞhrxt=kQUY```C׭MDE)k5beH9꘏DDHDuH8vǏmȐw""մȉP/E#/G!"L>Y-t{r_H1)UYL>wh'\"o<C9HbQo<^uw]®{IV?ϛfJ:*ܾK$z$y%78Lxxrۘ{9T -= ^}63-_3M2iR&rsEf>zd6czւ -k\M%&դ1F5X23@A THC'"@aw$vl]a~Xdu\|$1UjxmPFȆx&h5X~.G%Uੵnqjvvj̠DZͮ(56 A=zjs1Ąk Pj|T >avqLA>+џUdg>d;0; WāT y7`r_P9;|7efE#.bB̻+=ګv]O1G ߱j!wi< f=2q|֛'lgԼxs"K$L=_:,7`.ԗmryrG4L#?:Cw/HثC~"f9[1m~#^LxBRkGT)?l"7o8DG'pWMbQQKm(84śvΔ`L$ӬJQЕ2M &2{q D'Gf`sh)q[ʗTGdGӲ,M+Y\{7B9IH?γ)ŇANp#Ym}y_ϫȥHꓷkI !$w^N52RL 9{32 6a߫˼Ӫ Cd'L"w>I2 l(*r, scC$"7bX44r" ~$/fKD0s mLDxD¼g(?=N_9qo>w(-` *6G>:FQKFCȈ jM>Dx^]ZZYZYv$?,uCd9ם $RUhfx Ly2Dox#P/"W>:Ϙɉ9/s&" 1sXBƝ!ZFU]7YDŽ>"rTHa{;zoaR3N"%&!2OC='twȜh:UN$ eo?2ӓ@:nL`z"6 Rm'IۚX QR=O/^DFF!qzo$ЍRzy:,EpK@yśɞpI$Fn XT.҃C#;鵄^Mk<$S~e_ -WA$0b pti`$Xqu.vNfނGDX۱(!=ն(|űдG"j#DTiE 3uSC߫kIeGOשXO4/?!Na{a.SQBSWQa7c4+J'8=d_,ڏ:?zhD4-/y5/r^4|N-5>/^aoO]˻Ad(¾FM1qW Jds'B\e!#>QfW!0 -p1 sc]{[&mL.ahoDu+KñЉ뚶n]WW+,i4@(+ZZ%q|Y6BHTv,ND>&^q550Lq>ؚ*KG3V{ I$B7=[DTDůo~dD8nY9 9_e/"j( AKDۖ^Шd>_C`Z+,Uꗈk 5ɔ"Pxu_"pZ{R9r@RQZDnzoa'F}!ha ;arÚ!R7?ŋXLh oMς J+x#nea2κDTgCx(bZEd mJxkޝ] 9pmeU*Pco*u mQ7GG$ӈi2{]B'̔r!R6]bCȄ8H$:hXgRIoaILStz 7J< `oC!јpd"a_ediiXɃf%Xc-HΖ{!v# tʐ#nS`(^(91(AXHǙ3ݑtw?8"QF.'T[JWSsXGjˣ!5B$8+L&HR$Ij2>h&g(Kw9 "iWi$ViiJDITxJ*YP ,Tf)rf;:J!9"JoX:]a+4BNnZCDUe1.R|j{|h<6"}OKUCp$d+ǰz$Yk=qѹ|CD]ȳ*b<(OPG^NPygGpfb>KB)SY8%_eC!3 #n:® b'ԜD/nnZ ؔt+n '4( bM}O"ǬZ'PTvɈ&AEr]_PD3$K9ꋛ?w {#7U^^q=̔1ә$d\tBdONy|s3BDž9qW'ɀhB5%UJ݁gg,%(sCE_ A`OG}vf;z؝oa9_N h`Y1Sr9J<3[N5i{2' ^u x10>3O;DMl ;j5q5wyǗ#87>hO4NBRR[y: ,IPI#Μ"ƢFvlb.+H)CwK cw,J- a eIѾ%gJ&4KI& %mHeE Z?"SMI w9{t"L:(I&3 $}Q!Eo" 4z=eğ4ϫDr2- _UNeː$BQ 'd$k%rgoG+C?=|̉lR:`iϞ=;oQM~"obRRD*knUJKηf\Bv Bvzgo5+R5QU=TK|"s AL @&Bnͤ`q V P r)!\:+!XA3rDG3k-Z]vo)c,nb'eO)DNcHz);eo?D"lcsVl'OX%ţ!2>@&"2V)TOV\9H!vZx"8f<2Ю3cF-IH˼n'R5R0ȑL»Uv 7j³ۇM$=LvUGDT;gf'sHF C$4 fb|""c~Lacr {;2IPQR&MFMIRa@T`!-"|t֊\agcOaϻN)p]dI$󐻐m:aF-&OS%IӪU"lv6>sawErD0MZ<#G GvٴLpL=w_[KJޖ8bkՇ̷~ nRs {uرx;GYFH}7Jp )ƀ~_xPWV\SlLJh'ٙ$% D&H0eagi C!";!;#V{ C?;2!%8 հg؋CȈIQUw!/ȋY;N'u2v7HH$~"b1gQ!iˇh rK'2D_!;eD!&D"XS߃jjODqR؃mHK!0-B^">Į( NA:c=LJ!&HF8>ĀbgpN DWtv,gGvB|v{̼zogyۄ]dm#Ԫo]ti%(sZqp"{,VžF,O{6oqD. =A<IO5Ƥ:~4m:zM^!R8/0x_ToO" Ks|t~>#J_ݹ~~F,ӄ2R3`Cm!.3i՞D .vn$Pt٥|$57^LT}~BLL@GS0b/" ?|h,ԁ ^۞7؋H`D]]}y]2rFDH{gu[I#wAkZn|Pff4, b7'?'Cdfz !?=#%s幻_H J&Bxq< A( x"ܩ r80Ap  [nry Hd-J}vcj0"_zΪ[6v1eiH$/` "!ga2t &e\"̞( "c@<ԋ&/λR+͇.&(lt$›hhiE/LEK gSѩ9Fa^"(DD{ kVۅz^EV|(xUXԴ,6g,PauH7&e.3-bȂZ$k%Y1,B6,oހ )=~w#/7^}y_Y{uikz__{QKsZ|+^>~pmK{#r#s7U5pu=b,k5,?{5~uT}MԞkgy&&:ֿޑ[Ǐ9njufmkd޲4&Y?OSK9J8u z$Ij-}i%x.~A5h ^Pi~N,9s<.eAy<q?_9#nZ.>GC\ܝ3Zn._!EYTx|}օQװ)v9+Y 45:?!~㑪iy]͛r@箽/[WڗȻs9f)i=gj0yDd2jϓuTC!2i~247w{[aޏ1qyWd# Z6#v"b&5FLb5ߤs;4i|gLf?|-ɹr4lD9_bj{r?>|į~;qѱN% Zc^ߨ+m!lXsw|?g=~cdž{|cϹj._y}'AQ0?J2c+l%KxϔL2Dg LuҒsy4ITrz܁q{skʱ7[ V]Z Bg%籱w{4y3 *V)0[a ZRHh D"QLFFVg"K0:: ĺ"#×s8ko50&)P,(Qֈ٬QS/ ^"1b&;i 9MpAkZ<uqg]@Z|WBSڡM:~h$;XIa,K R%.ҕRH̆t] R˭k\Ãj/w2YX˯CK 9! șסgIhq :ksͮA HLD^0`WJ˕XJJ.tJS ~V ("aT&us ;AKWBLFv~RNg*CNS;x.h8r+br6Kbl,]!VrL@XVl ͖5 )JD#ޢ~K6 e?"ݍ Ab/vv+E" 9y R`ϓw<;,ѳY:U cY܋}{ۑ "vk7COtИ *:p|iЍ oxU:\t idt,kӧO&y3}`_ . Lw <.on吻u Ф}EelO1:RZDJNDѾ"ҥ/:!3tuuTA"gȊZ]%4A=[9̮[y\wA>!CnmD8su ѻkv].76ypwH3$ֺ$.'TԻꔃME@ D}( tWWl S׉NAV D;(i,Ȕ%\09oXT& rkd1(dH7C%儢dUĀJ8:wej{a-4翍t7ǥ=%,*<dV!Q6}_Q/W.DE` 4O袙Ot[{j7sb͐` {}qsA8MD"fc!䤕z7Y'_$#ˆk&$bhۈqឳ@RxY9QԭJ0&Htl(ɼZ/[sBDdcf[Uś|ۤ4@V5Qb9{`l_!"/2M'Jlռ)k eۜD\$p&1\,T÷caئ"ۣ)D!hづxn/& AFN0~; (_S5Iυ2t- 8zlu"M,]۟Nѕ4q'az dhw$9_Z[Y[VLEϟ$"1$ LhUo\>0GwA+g.ju5Ag]H . J+ 0=g1x]АGᄈ2vҐ-VG-x^x V-Yb|CUT Ʃv:QD>^aL4uDV"3=9I Df] Dfl?gjXd D0]J2A@AN=xVu06**u/7LC w~zkl$H "]2$՟<e,.^D߅[`LV▓דpqZl9 8^&eBG6Ҧ6qQ.6vOh$*iR,̸d[呆Vm퉩`ȶLA~ܻH~ocǐk(Đ #/hwv;Iȏg UC F(YB]aXƞ.Ad G!YVD7<u PbJ 2Q/Z AreO7Ԋ"ni=A>B,~r miêַT( B 3g|7[ l(?NJ(uĴW~oC0ju3rY~8%CI+SX 08BM))Pfo&:n,nxI݂-R* t ^H#!RDb1⢀X7 ;]lL@N5@,FEAϵϾ.= D0\$#]pgņi6m(v%xفuQq=hB{7v6ș6 ѭ<" o ߼ U\7A7#SV4@ >kNW;G*hZFo$CD5Aj[֭5!;#ʝ,Ho ^@rw/N Cq//KT,] Ϣ4 e*3=3H8m}8'0[u/ZPMke U PԪ 6A }8Q}z{v'~SX@?=u=Nຼf$<;{]5_r몦\n-rƺA|xςۭX ^E#íeA , Y|}3i3sJw;YA nM#-H=%upƆP5;i c+r6țMkjV]Aғ@S`#i䃫 O(J~BbADfGhvw ,DNL0#YZ~ ݕ6|8tcȩ63WA3è@EhK{U'KUE!Rr+с# Ϣٕ[6SMkSA%#4lVC6IB\3\AQ])VС\ޅ+#"y6Iɘ ‡&;{ [@ckZO@Qp2FKZ幸_9bu?%R()vE~;07P`?iŢϴ/] 9$qG2Un7B7y=i9vM2OP mIx Tܳƾx!ٜ*F:Yf\[3Bxk*ZBkyJ9ϜZ)G\0q^+Ѯ%cV>?#c廬}>B9TW;_%H5Х8 R6, v@y:z|AmP@ǶH,yk*!oa!W}ov,V _G3AUk~e*hbd"iΚժ*1'@ ^ t΀gR;H'mW$|ܜLx]f3%\r)45o~lVEc7-='+.VӍAf3ٱ"4hz)yzEeiuʯ@6@6@dMw&ԱoV>ғv9?! Ujo |[[}Dnsb6S?ijrwh-Ț݂S !"hK| L;CBスg@<%͠v\K%bW^nHUW?x($uljfn8\8s>z UPH`,_ށUD2|4@ AcNU䌌@$!BS|W oZ;A8.fUK#ַ .IAY 0y guOS.=vA낕cHا"YQ3XH)o)u $}-A5,ϝxoK0Smia kU^0AD4H$ G$ QBhҜi[! aC7k{(R{6o+qZ^X750< =#Aj/T.1s(a|C"Fc0B6t`#w@4{ç6<{2 B8Uߨxp=(^IJzީ{>Wb$aۖjI2-P[U38wO+ΦJ)jcR)ul8 suP&G@$T%Lh! yVumwgۛB4W xrVB$#D_dR5=↊1tʇjJa'AJg)&6w|u Ȫ밑rz#Fp*VFqq)4|ky}77ՙDc.|6rX;yҖR"GwF_~tŇFe:0]$ob$tKÄ6tE$fC۹$׺"mZ9'Qog !g0?d3l5 pxA%9A dnUQF$.%AuP&H^RR%R:V@_B|$"XAAOECLsLT/Wƍtڛ@uXF OP()4NcatRW!]۽2Sǫ՗_`Z#`Tiio}hƇM٭pģ(L"Vh=Co5:V^f &!2:Hnj k/b|{w:֖jhc7C,NNR/uJ D@y-6M Fj')r'-a5 "28~JB DEJ[ -IU0j9pMw2[+?!Efgjٴ^ 'Of^r=qb ƿ=_@pY+,gl^[ +a2Dd,cP6ݯ)dEKDv90YnIXJ "gv7&fZ3D=(P8abPY6hsFy(RR)`Z()8#&fb9J To6"}(UWm!ITA!βg8أ <{R= =4 pBRvHHՑ#JӰʾ՜[9eUs`yd#gIKUQ d=8h1]xTlǞTUb! d禦^ũ;Zsu7ݖ%#?p([L`'% $X dI."Ra,5a<3lC|jF 1cw""N()ة0Hد5KùIXhEM+1ij g"rE^ *}f.5Mmۋ>k5[nf﷏`O -2+s6|si=2087qT1*uȱ] O#R5uԨDZWk7fp┎#WWU 7(9A 6T& %u *VC%?Ρ"܏Us~B\Deaf' a'Ա~MURz E}:2kzYsǟ }R zF uАS ]>iQ3⮛K,om"y jo/즯 yA@N2/EgrvӡnAC}񌶯e悁aIG9{]Ra1o!HJ Y dA £ַ Z<W m@o;Hh 2n@XԍE_Ht%tq@`#2 q~A`#^Fg"K< \l*<=.(r |ݸ" Z J֎_~و'V wꜺ_ +dbo9{@dR}HiJ@ؙ5b2)9j%lDR__d# XEѕLoHԀ纠-طV0 2+X!X2,j$ }= xͿQc)J>TC b> %q=oLtύk3Q/ ;H`c.pQ9o4y_iXs_Ex4Alɍ-KPE<+;{4&HA)}rO>E{AB~_Em2B+^UF*H:j_[/Ǎ5c$@/ܜ1N1| a5R-dB^E>4)MCiFNЪ~!)'!=2p,| ԯHRƞ_49IENDB`awf-extended-2.5.0/images/thumbs/gtk3.png000066400000000000000000000230631407140370000202160ustar00rootroot00000000000000PNG  IHDR}IPLTEü¶הaK˿cLŹǼ\HɾwļՋ]I̾Ƚެ˼̿Μs_ZH_JõƷȹܘnYȻ޲oayf鎡yipʻfSjZͿk[y]J^KhY}VE¶iZ~eOfOŵ[HgPʂ\Jȼ˿j[~`Qijt`^I̐vɹԶήbLu`؋ƕbKgMzrYL^zgӘ~߆.-,,YWVT_][fca`ngPyuq}Pͺ>vLL~#IDATx흇e" lXU.ܰLp0čwnV:hI4m㙿~ߣ8u'$Л9߳&ϼRwx/_Fℌ?i} X̜}/xľ<2g_yVw_y싱_7f^{Gv?Ï7/e:I+ʂ?XjL rlYrTS|T=|9my_=s~;s7/oVo|8ҝ;/oĜ\A1 tځ6|&@.>avttdQ׊ 7ڪoJx8Nu}ѣG_2nkNᏤdRb!ԣGS], @z=99yV HۮF1֮ȭ>k[4iE2iYV"4@|7.a]Rn}տBu%UML&#4KHz?(HD)t&悊(AZ ŧykBP$}d?Rd:Ԙ?IjRCm?1zt!T*E-\O522 ²r\Q ;%2#~yZ4꾐o-Oy_( %2KJ}Yk~uxi2EݦYEA#b41D-}?`N&OMM~2!cp8^k)<~g 1z $ݣ;喻ׇD2\sW+7xzno2ZQR΄˾D& 0T^[:|gF֋,~]VŶ̍4-9A܂+2f=7Z(A5*$Fv&g6‚no5Ck=7^4Fvrj`Ǘ/_~ 4>gW_}=PɄ}%/G>gM#׊T$1)Y)DӍ;QD1K801[@57sTX#9vd\د|QqlPeML4f Ǻxޥ)bIdP#֐g^$͊JEqr#G0̺6x9aqއ a. |L2y(ȵn\:@d1/X#.Z j`z}k\f,7]Oq,-18 2cQ~TOԏeƺ&Au!-7ZǑgh몸ZNL`ٱoAyq~UՅ}&z}$ ,H9a+`#տBu)Y )B͌|tF~9`(|aΑkzC5J9d쾥lhXʨ>-786!;;Ъx2 @fLs3$3950|e>2 +]:+ڐhľk2A^i9a<\Kί P3NQk2Afy߸!i>*fkT*q Awn6 ި>:7S r9zx[ȥuWnX>ϧl^%Qݬd2M>~ĸD6 W "j-'@.4A>=ȱl9)#Ynxd>rFцHDkJGӫj  3@'y: >Q"#S[ UP >r|#@~[[r?yoCPF kC*GɵL  ǑP|?'HfG0t2V1ߙO4Z<$P cH/e<Zn D>d{/uAwhhyV1MenCӃ4A)h° a.`< `}l&M(yXrנKPr8Œ/Qg8pnbUݵuBŴCzBrzc1I=:.H؍ sr ߢ(*c+moF^][zX}Xga0 l҅#5A2S$5 :V)ڬWM!L7hwz=Κ`qg|;, _["PڍڔGuA`] F 7@%)9V72 tZ?@d(ZPL(IoU gA9r[ j!+v%w_rP(JlਔM}kyCCuWÖ90V\a0A\-cHwjKsTa6W 2Ǵi1;mKұcݓ5O-cgr TP }Z h (~Ye۶}.CЌF%'+@f '70v 2/Q7b ^$1](aSITL\zh]g?<=]a_4ܰ@] 1(h8PsTtGz}.y7<3A\Q $ rC+6"fpwmn#`%6ZgMbcNy;mdW & Vˉ|8 AM@7eJRx>(C4&yb6 ŒLz<^7ewo~zdi¥l\k6b @>W-嫶T>|*ڮlmt"L㬄I:*~s 3c9yHq@IVoy0t+'2\FŗJh|.t ڬ!h*Ʌa\xŪglӘO*0HZb!3aM* hU$ "@6 77tS|P8 }Zt U`& ڡ**M&"*oG=qeKF8Į -Ȥ:CS@[)1Tތu5$0xkW9HʍࡽCn A.X HV+:͡ Q& l0\.0m>:=A޾?u@ ~dhCP"*?riBDV.3D9S˙A9 Ej4<#=zt )cޘ'hF7v3! Nq@tT0q@ a> Vq"d YX Fj:1TaI#bw~NHjLE]=N@Vq"z9Hp7ԮF &yr\.PNr`P3˔°{0=g/nY~BU&ؽ; 3<$eeݯwa!ˆ%6Ws/^H3 R\T-R(2)OBpǗB{ [oӖ|G`!*&+w肦ҊJ GaS ԹhzLfg]k!p+QKj9Ul<3{B_M\8w+ 0N|sLK)?)XiWaOagYsm;3`q'$6-V2UƞϞa*q&e͑O n>pBLfbYP9WyP P(C)B#*`¸T|^zc393qMPqSFH%Zj̠珞Oˆ^W2[P|͖MG FW'@uYˤ\SBq!JAk7,G8!i*& qIHt'/>23F7ϲ@aXADP㚁2+k Z]Rg$J+G&f-Y-4e:6MD֖H}5O_=l,#Bo)b)<d\.={{''Lu]uoȭ|)NV5S䯤*ܭ|(t- Ѝ݅qx Բ!\an@ywN̜3rpm؈z<0%=`<0;\cgdrQ̶5\YOVg7,XMˇl$Ol-cy!ngy}*`T=E^oTW2'2v2oHu4yc(ZS5I1\o֊™ MqX|+ބW|%)]GQE9R&挵POzx6*#ǃ8x3BI0et^azAfhAx ` b@)OdkO;_W'f@fB(E =g v{j6"\O`dtaEpt-\]tAfMW^AvM6dZ bS KAMRiwQTTԤ㖡uLB=4zÃkN{1MӅKɱ_Ϗ5- p i]$l ϶cqj@TAˇ"9t b~%ƨ^$zc@*y~Im^s慺/@ibz* r= u *S9x'6C%B%A06|j;ы/\C}((VoO }s[[m@e?I B:E*Z&~Y`qwnlb,6WzS.ѱ-q)d[2RXVT2E/͍Ln=Htd~TR ^F*OF<- &xL081Z:%)lR~01 ;`ꎦ-qҐi)IO,/,@+U v[kQ]Cfhxz]ݛl1H^vRd`!*bj tv ~1 O9j@ HQ88Ή72Itr9\'tDgNrQE-֗# bEn/d*Ƀ,Vxo2 0׷[򖍨 SFLr5E_7-e 3 TR-EyعWڮx5C!EtQXVo%en(c\( N זx-Qx}yk{~{4a9vMF=ޅh`Csh0RV3"tkJrAs$X悪1Ya%P [t$i06 gDZI% ~Ђ2HUBQ0Es`nx^Rbpg*EZLϰh,I?R?Qy#4IENDB`awf-extended-2.5.0/images/thumbs/gtk4-menu.png000066400000000000000000000232711407140370000211620ustar00rootroot00000000000000PNG  IHDRD+CPLTEŶŽýɶ_Jڑ^H\HcLǿ]IɾaKǻʿ۹򻵱̾ɻ䭧ZHޜs_ķyοּxf˽nŵk[mZܢ~ĸ^K崢eP꩖ȹgUpbhY{VE\JijiZ壑fOyit]JjZr[Hw|gPɹ\IǷ͓wӘ~¤bKn`´^IgMbt`u`ٌ֪֬XWV_]Zaa`{`O߆KIH*VmWMcLtrpeMk[zwt|yjĜd٩W?Ĝx0p$1IDATx}cFھC+!P?%C lsp&vc9I4$mگѽ~}_I\&Ʊ{gf4F3μ@1wuQܒ[ʞ[<}^!uYj_Y=]镳ϼ9ʛo_Y_''>Y;qzWO_#n *_s rkW_]4+™[ BMG볏͟5WᣧNpvɉԉ/oqH*-Ya\BѢ|4W_cE?)Gs9'Xl?z3£z^ɓɓ''>y‰R'^+NZr|xո~YhAG^E~qʑ=Bqbî輲wvppRáUMup gU%^U8 EFDI0V5ƫ7WfϬzf%XK.R(JNZ͂{SJ+^AJ[9sN_#Wy~kXꔪ*[+:bLu+^vi2, Ŭ֧g>zsՅ֯ Bww_d:5DlgP見W:!<1v@ûko[u;>xSzKࠍ#15]$S\UmA'BTכfg'qsaWhAS6&.\¥˱_,/iG N[Wnzd}{"Aq@F4|GH? I4bEя~$[Z'rٵUէ:xuxm9 aZ{6Gח!64eaaURu%)ܹs!|X`lbG.\XxZO--l%P1*eVbgԩ_?5-Zjܲ2aSNg|lḽ(Q`$!Fqc-& >JIG%cbgjDf4o]eɧaA*0JRU E!#I [lD %1Ȓ,eMBVS\A X:ɠXj`؍ϲ\>Jd.'z.4"0&@y'\tSo߿ov݁-+a.qso Kg:/9t)!7@-Kg J拔{ۧǛD[OvK|wdcc;D^rرwMJ*IU8 RrJKdS^*&l34y` Cr^fsB ^d!s&4gAHX6*vxy5noP6wȨg5"VpMn*;z0JH ⟻30 "Cn&'"]\M28pqYh96DFnD&r{>(]JNdW\?=ux]Op3Vm"o5msӔi fш-.ִ#! y"ÆMRx]|ΫkUvIԉL11g6&C`}\Kȿ*AO_OAĵ]wʘF;lɳT,*uTVENTd2vݩ_?Y >^!#rle5g3a\!D.`Y]be#HLDX#)e}A!?ɻxR0,q\,!~ga-"5"Ī 650ElDBM;[FG=NG(YN3 { gH\ 5WRXC`ff!J 0N' ɠ91o6Ix< wdk VLD2s>ً9X. 96g!t!E!x&>+V%Wd)^b/+W@$ݽ8YT"ڋ1E+!RjQk[zKL 50_cEu֓ "2xj%T*`O#ZCB'8AI20da GS'u!@l=eRi/ddD@':"s>E.OCfAr\2& ^Dǎ|Z0lFkhٜa^CD.X;-S֮0)#l*¦0Ri+*XLjF}J8!S'6yE~+MR-_Bke 54{1/S!ؑ6cLH6mE51_H@CT[2R eV&?ّCw]Ce=-ZeֺV_N" 22'<N7n% чUs>b9)ť2/h})Cu8 g`8 `yf$LLLfIdvh@ػ{eyS9Z ELFC_lE7G[-a(Ou)Rpx tvDcX3Z_bݜji w|>$)S0̅Q%T5H{bN%\*4ɥtC.m"ڸ`pڅ !7/Ј8,d|rR>V1T)曃AWJE6r--є58ucbҾWE\ !JZI4Hh|kΐH&SSؘNPŨNQ~@ӖmWo{˜MtxLbl " ;i+FFt!So JZ)Q6Ϝ:'.@;nY&r9Sf}.3Cdh͖ 2?'8X { /"{Gi9̚!P9ǿ4 b g69HI{" |B#rEdM=~ovyQ~U ȤM%*63 ]a*ZD>e^ F;q!#~  捧1꘳5\/^iFAL%|^ N=ѯ80{Ş#m'6=ZA+>".S>Zײkh-;0DM@KwP*Y݁׈,sFRl _/6cDn> eUǝkDwBQH?`Ei{h~DN}_%s 0=d0IeB&숤qz""ҶݷXZ%VF9^^p}{(q__ݙ ]L<r%P4a/Q/\J9oŠ^]'vQ{Ɵ=!! HI_0p @rQS/8F&3:旿m%b? ~t Нq-e^}GeŃYguvJdjiĺ8ujzYuܖ²y~;yu"DkYK4% 9;WJ~O7dAc|$%du9-jD.7$r^|/o/."?s?+G)T' k;4"kD'".j9s۟3O M-rL!zœ:#)W xuܱ[Ț,>G܆5445y~=ّ65C,g\M$IqA1ۆ8|+MoBp”a*H:mn$r6-"H9n1q.2"-Vewr=߰w6Se'P$xxUx~,B V"\IJ>8Bׯ{GF7鎫8υ):CV2x&RDYVb髍2e,ɈXcV;w6N!>^rFn߻ջU^|y/:Dhn'ymjēkIFE"=;OLO0lO$6;~53_,j؉ Ab H)& Q!_hU/eW"B0o><{- SX2>LQ!Kt4mHNQc nyu"˚E@ɚ/A)PفG#3yǝ>DZsyLaNz'GEwbݑ1^"QL_ Tap65-Љi[F;#ԏ9DZHOGlO["|M$vA;gf"坰. iUE3(t+( U_Hydpo@cdo@$[H%m" ,dvAԛvDwL$א\$zuwCm"O3݃]E"!r;b$vbMwQ_HAاLU[#:}=xHZd$hCФa?w{RąrbKasUM[!1栭PR/e ,eT[t"{h/3ALF~||juh!,ek$,>`9.%$1ƒC;6Q(1A":oRAU!TakD X .`SbD]nhCpCj-YMk-]5m@-(Drؠ-܉fHT`~4Q D^?IGIXJl%"5A"E*lNPjLxh(1J{ "7Mp|1E0 DxIrHu"z "ʶDBOP"_dԈC]tFj|$f6Ni-2Ŵ]H2 I$TQ3"#$cn7 .:".+8gtLWL "g",Z%nU#|jRDt.O2N p '֫u"Fd`D\6-?c+ pX aB:O#f.%됹Kz f7` q7n7i:C-EO b?m{v~i)#  R%&DPR"?žS&c\(aJsZ^k5PR/YrV.@%g˥Z²EdO@"9E}%*ԩ~RR^, Ea(I!b W|">=<}J;ِ "K;lvC.()72..":3if"%IR+S8 /=D0# uӷ$~FyZyh =EdG%\&W̢ŜZn]س ļbtelJzؽ"7sX-T짌Dx Gfa3HbY( !b-nf&muFW2NYm4ţ 1>)m 0D4>BO,\[QTPe Z(+v,p8AGnu\t*N 퐑g:[ږzV!6D\nByvXoo)bNAؽK,kPQ[ܾ}nHF-L7kN((fYݜ쏰w񅑤`++VKeщ 7GwMEv$Vkyz%)d1&,1I; {0dl! !J^؁=fTwѢ7Vn*QA51@ASq.E׎\,6EQV R|Se݃;ϟ_ΟߑH@Zt,FdX46#bvE1 N v#n}Z P "n,H UZvc׏>z!GA0"䔀]o Õ vb_l Og<. >L\v,& ; {m>`^D(zX6T6@`PJF( Kt22\b\q3[atfY@v6SpQJdS Vb/IP* )v Mˎ$ŻvK؝[ Ie/Cp"æ0oſ;w n~|eܹ#{pb[FIB"^ m0I(Jy]7fI#pQ,{8 Tzzi!~ˉ^"=| H-k%#u-ꀅ}DH`n&, 'NVo!bVIg1v^[q$f~})Z[F#mj=&1W&#=TT.u^bA=ݦP |\R5H1Nr |LQUXx ݹGΩ^gE$&I$x)<`LYb[̫ TfZWԘ3Jbml JhfoXB!"ŤQWFB#8^BLGP>=|;q[(\ewv^ܰG\v>bc]q-ˆ>+bYę8>ᱳsBDSe~{"\.^ /ypqM@xDԉDF#HqE&D<^"A1a;li=w [N-'ZCܯ9EdLJvA`Z~A[ffFC}}8 vg4mL[ӥ[n)9ĘSج J4ޖ{r<%ZS%&7LΆ'pfű!dn&l"5~HX\LTHUBAE0xVNVrsrdzn~>3 KyAqyRؖDX!3rIZx43Z(֥gbUV+¾뒑5LIqki'#CDq$i .~+#ድc?"3ꙃ _P_Ddz)FQqn^3j2)}'2=]._D< "a̠sY|-7 f $BZُƠ1'O":SF@Lc<(qu?`"NeZa$?8"58`"{Ztp/Zzj|>P"{Zn|2us=(q.Ǘ'P'|yyr6Z$bq_A'q| -2TEYu;!a+B}<.@+b|sE4p6KuL$A(XJx3֕ ; ,JB1f9XM"烦M8ewOiZ=F~u$>{[SAr6v_EDx!t,Ll$.`4p1IÆJ!pJXUT8ɑ}URTd$J6:: |O.pL%>4Fh- ًbRC +1Ċ4DP G7NJpE vsPr\IENDB`awf-extended-2.5.0/images/thumbs/gtk4-rtl-menu.png000066400000000000000000000220071407140370000217550ustar00rootroot00000000000000PNG  IHDRD+FPLTEŶΔaK»Ǽ_J\HĽəcLڹɾ˿܌]Iɻ̾ŷwr^̲ܺ˽y^Kk[ZHgUxfrȹYGs_{Ÿ䤜eOoagPyiοф]JiZ\JߘfOiZzh~¶[G]IjZt`lŵijͿbLgP{_O̒xɹxUEwӘ~b`_^IԧeMu`ŠoۿLKI\ZXpZP֬1`lXN[HigebKeMdޭaWqdg{!|IDATxݝcVE,P#@P,ĉ-1S'N'N:IfiN2sg_}˽o_;X b_5HG>9:ۇ:r_7b^~P}_!Z>)~Sm%X},>^^]vk?|׋#o?+>.ſ ]_]8ޝaTעk33-O^/M{yvWיCO'߼!>9G>p#K#/b}jA(ST2} 7xy4:DS c|V<ܴ8=dLylygݽ0 //~qHx#ΣճG]>:"??{vq^;yg3$E~O+'+[t%Q>j]ƫVG(>jңǏ/CT,>c%x!H Abf%ccI9M8AJ XAX H3cI }|gëό~1>ZF0 <#?Gg!1«i~f ^N)^GW0ʰ>xǫ`0^<3O G|:L~ }` 6g y @LS~>"7px'Gj >+r3装K/=^Z"n+v_U$>u7Gk?<'ٴZc#,߽hvߋ_s _>> r3lFht/ɪ1><}G͓ǎ tq`c}{>#DգlÐ`xsq^^둡}۪0BT^ل-ڕR9y Oơꄵy}T+H3Rb8ʥx>, GHR" Ez@ZA$D>'Q:Ip.DZv&'P$@},^ u=ˡ}&vz]h@,Nv(n奥KERQI=@ ?|NaMt(D֕~AGjhҥ{x $nCBaY<<.or9}VDbSD7]{nAv΁J"tWoܸtǥhۃ{YVs@H (g" nܿ(>J}#Lb'+P K%cYm/ל+N#GO願OKO tuz ;e݄ȁl4EHn@9S&"L2dv"ʾSj!? gg2z<杝|iEgەC q/.u3[ ( K)~m^M퀂+jvNM;v9~wсl| }V$+>Y$^ AאBɰb2H'_k[x0TT`JHjLU9!u,EJHrYЯ( #PF%PQM=Hͣn9I& A$ ;92` GXrc@O$LIy#& 1M[1R\Ҁ_C bXzIй8lU1l8TM gK`))B}6 6R-pDm}ׯWZlP@"eÜ#bbAr%9iD5RCA.ߤt] dz\F($#rYD_'f0i\h$vS(Q,8r1l kq?n*z$dN f-wjR=*&}DRt7V2\ZG7CMuA Gh=QNS\Y?QL$"P$|Iȋ\F'R*[# ? O gcqIY^;TBp%z]|[ܭW\pIad4ЗS9T!>Tz_!=e*Dl*w &mRrd$!?`~-]hXa$ bB{ޗ&Y(~ITK&Iظ*2g5|ӧHo+_-CǯQjQl̰,5%XyaDw;xtyC&\|~2O`ttxɧB<,ɽi=4=) Gd7ӗ (=_;cUzڻۂ`+KIP dm:3S dV&-D"`%}.-ÙguKEIEq o+):R`L)/ ( 䣛 FUnoVYKlPtZaU;u_+GQN qr԰GI,M,RPk2dly.6R6j~y~~F܃=X&λξ٪R2%CHEFCjt.Ȳ=DCUW@Bt"QK]V7|P ]v3a# )kX?6hgA4h9G\r3@^Cٝcxsm7HVn!H }?8F=(%b'4`0 5A /2A:D-;2\)K[*>_8'슮&GfjV/%V@^Nd+l9ƞ6;z#R\>A^sիU$ nAiXu%ս߼PFՉi}c}c~ ap|iݼo?!~5E#Ylh4*F60HLAH'TEK॔80*i|RqGn|QU5"!=se{8HJIаN`q"e:&z*DM)4KTD%k L;)Nï!,=O\Ǒ+2m;ZR eRs ZI_E "jSQ!/ CM *YJ{h|;~2XAy]r"[@Fo>Q@k)ޮغ\E!:LSۃ6@`̕ rp{5I+HshghQÙVn^F3ț|Jd%S >_-@~i]ZUAoVLW\4|G $hS %9:AY%0'oFl [VA7,vܭPY42|lNVUD,lo bܫh)S@0hem5V2h\y .@-EiV K{QM/,+6|Z\7v;'* 9J\hS!XCbN?7!"/B#ѷk>u9 ȗ()_* D8<ҁ6(PW$p Õ vpoNs+s>)|;2UN+9on9\ňgqr J=sR W79'm4hv=%WֺA`<-eu-A߃4r繨Su]T ;C8h۵5a}h wt5A⥴^ ҵ- EABAۋpXE@v]@l?-..> ȹVnxƣ`);#׈S/ڠwNk8~`57pA^,@׌V<r.4#&4@ Kxwr$ L4-p+5{oр4tJC${*)EfOrC8vF;a29c1 tq|\NNo0ImXʉ,Wa:K0rb[wQAmBF9c8bC-DsrTA(4v&! C _ƺxZ{Yk!VX2~ b/Uz5 N~n #{_@~51 ɪMWPh[wDqBRZ͛pʮ4Z;ar^!6>56(@3u6Bx(Ô)%溍ne|Ԟ%_՝kr׉FhQDч(tUyV.F=`c^M;Y, S%/uT*rCNJI$~/R^-[c!zB^.9ۀ x򏜎E"j' ( /A6Uj7\ ݄r~ ]?qL͑AH,KXj]i9xF9*809ǃc[Jb ϧ5soZ CI9as Jʄ 2Hȹ&bb0*v6逪AXG ne[9TXC?[A~O51Gom*:uY5획& ظᙕAaB d_,v vҨG{QԖW -`Vٴ@Xsd5%GB.֥3-bF;$b )V"d2@A_}2-D HRGx-O|X 3HGCfc!!_i3[rBI,_#p t' M0:DX 'Gy'asΦwtʰG5qqUyWt8:Va:9;#x`AZIK0')!" +T"1Y#+a'TЫ۸(7U n@ ʖ7@BA_(p0J6S`Hɇڕ,T/g#AdcwO6WTZq(l/t7C]nhcۀ 1uG><*ig6وJ+ãG􄯒|HFJ2 W˂Z-'qeNU۽vqC8>M. XeTjI/^#p帤G`v 5fgՃnlF.+ YbuV{:1pqRMs8AsM@/C_h [1P|r-6:8l:ޡlmfhCSr\; vHh îP58GL0a@]QMg#V/c_0+ &D8"l]X ,}@/L!J l{X4R@ J%R<$C}yI~/RAuI( ރZA.4 M;)J-~ rGq%[M4]ZVnn^/a'd vl&Ձҽ; V%ЃAJ")Odr;P.Wp;l9Fl1-=hG]@$q"i5Z["cЃM}\D[12Vgh#!]bNP :D HNT!s&*zȍd (L'Dhɠ%giuMia uc' 6tEay#l4͗Vnrq{\ۼb6h|auu[7W36ۈPU@WB^@G7޿ n{C!&G2-o<\Ɉ5@n8!d?\*xzBZ}-Sہ jH%^@UQd EuCD$L<-8}tr6@>f + X'..#W} _RT{"9;d5g!6dn<ة@I%DjpT6 <,d (4 :txX\@އh c Ff;8!>pQ0IfAdR)dI}%rWdkӉtd5+.JC C&d$W@BtÞO)ok˄μ}}B>=L[NF|/p L_H >Wvb6o&@aI(>Dm pW9p\ͱQ*IJ9^D)*cyAEW I.]V=ZZ餃AqipH {lC  {XЃ { co9hnsi;\Us4R҇A` < #5vyIl&Isk3k {e;V4 >N ;'>DPȞwFvOlFSgf m=fdQO +'x=}mCDk6x"͙p4KLDb0:XBT 킾lu& `h61 L<Uf+G MϤa&MF: Q7Fg` *|}lF`ff(碀\")8)N9lə)]-]@a.>DѿVy8%m' 0vdg  ;8 $'ٴ6n0V@5& n fuC v sG|&2m'}䶸p+q,fҿ9g_KsZK4[C?ȑz~Ȯو܇ Čdd/?$#mLP;Z #:@//yoWgʀ[BjϷUm 8C zzZIIǩf0=TT5QsoK@"s{2A$ Ҙn՜1ICx?W`Cln,uYMG{ befF@XDW;2ЂHÜAFG{#V// k(y. 9Ch-!| H vTg+BTWO߂'$>o@ c;ЖAra@O1epFҺ[B{{ bfNѧ0'mAl9;2g Pj ~ZV<[Rd^QS'{#F)2v2my:9̃C`h0`Xs6*S_@NNFgFјjtx()Y@ѯ2ck+655S@N16%N1U/ɤ!5)BThhqI)ϞcEV fOyS4fD6ك}gne@ Yqz\=Fc/INRd͵h|MVΞtֿhq;)Y=Ҹ{_C9’,ƪɦFc?ᆨI fQO؍Q¨XDY4453BCw$1ktN6rS< /NHBh!6c Mic2@v FKڼ #脁-P(6dIENDB`awf-extended-2.5.0/images/thumbs/gtk4-rtl.png000066400000000000000000000231351407140370000210160ustar00rootroot00000000000000PNG  IHDRD+aPLTE·¶aKʹžƻȽ˿cLʾļھϋ]Iι߈\H̾w۴ʻĹĵοr_ǺЏ_Jk[ȹߋZHxf̽^KiZyYGjZŸfO⻼s_~qaqgO]J\Jyit`ڝiRvܚgPݖbKŠq[Hɹij{_Oŵ䘒ΑwըԊnaԙwTEξba_eMgP{g߆heb[H^IgB򭚉Е{ب׭"!!HFD.[VUTkUK][Y\IOvzwtpZ~ǴРSY\q^#IDATx}_vNtNM'th. q\+(288:/w;3w۷_,@`?C~RuN:u!ċ/^ÐFI8BcGk/ W\|ܼ>s W/0w|83>xć߽Nˡ~%nZZ}Nϭ& {.8]^77sE^+䙗V}GG_pO~;k]?L33|vx8/h $9TZ=,rZN'*]ݘMHAï_?9W~=; w|os/?wg.y8|x̋w.\<9t k|x2 ?wg ?k(.:i}n<[ηuBx(n?P)-Mi*t"--݊U96HBSN bQ!;҉JeYFi(! HKRCWPQ0&J4\!<ԏj":+s A̢(e})dWi-fRׅwӏvJoSZ15ӎFDg çj~ # >#Qb vC]K <*=V|yQ@?ojDiv:͝C-fNM  P'[s ]>*o} 0\_  J_ZkvړQ'6sqhl{l4c>=#9l !-k/"_^c(`. $cƃw'΃7?}!j?50vѾG2@hIT*(o\={{Gڟh?`jϞ4ĸCnaڴtv rY?`ھ>s9DA]&FoFN4 k[o`w>àaome"bm BEDӃq(+7Ѝa8TȴAPko\6 5vm?1g_lj{jpĉF c63mIHb[R=y%哀+(2Snݺtm(v-mm(t֭h/yn+%Sud۞f/fQ$H0%Q=4m"IYJLc|KbŤⱘqhd1H.ogDk}11r`Ju b>Wd~'|V ,m33*4NMZ8NOb$79߫}oKk>\bސh̐1@cS6Fd+p>n?6C]5mtO7 D p861+|Jfle ɼaJ#PrGOףּ#GUEaq}?nWoD I"ŝY,zCz4qŐC;| ~u~E& {Ï[y4뷔KXLwD'AM"Y1iMR\Vmd/j!CT2EЉ\;pG8 DOofVL#YzHoorٌ1#G{zQE6:T,*&Dv MMjBk 믾 iPm*Ʒm==>W_ajfw5D|P; U\rZöL@0CDH>W2^DFdUHF߰>SUYUeԎG _X##C#nC-ZZt:y D"L}a(;$r@!'7jLj^PgB;jk`˿:߸ ' *F+A(\zFzX`mSO7@SL{ ( ^8N^m^S3e"߿^3?*C`@~7F-+j5fw^ו;?\Do6Ob0 _$ 2:GG1+@doLUoooG=+ mj؛Hh c7b.[<սy-Zٷu"=aė l%rFvp lX\0Խu"}LD-11h1JEft55 n&2vFdKU"T%B9u".;ZNp5NXFwMQuuDf4\jGo5`ת:^22FZDJ\eNZ"/kDN:Z 7k Eɻ\K 󆘀AQ{:L797 r-'5"D`=Axw0M@!wc[wPuYa "}Dj[]+pM!޹Lue]F۵g?㸟k(~T]?;*aTr)fg\1L`:p?[7ȶ .P!"]ȏ^LGr]/@^ǐ\x(xsVR8ZY{mNI-gRr)Ol7n"7G,O\=y<䱯ASM[xU#=?GޭLt Q, 208+{ *`3|Om܇ D~ya =L#b&ypB#"%X P( 1?`48L u,&m!a N]F"܅_:"#0JelGY'5[xβBtFMv7R'ֱ*K#t0ScyLڕD!‘MZnvD?w7ʸ 3smA2+: l$bdŤ6>-Cp9݌M/տzDfk|tGmt'ї0;u䶆_J 6ku5"w/9NF`q Nr1J3vײm;wI 4gfMD޹ڿ^$+SrbMR(@H[Zkk6{sv ;C="X WajJ ERlKay0s懏_œ`ۈ${Ep`#$5r]E׶X\ryN&B H_D._.9_&r# 8 Ed*b6#xEFpX9:D* 򜿦EDwHJ!7)y2ٲD 5Z<p|x;t6~OGF *~3a H8rg H(ѕ uv?" 0uiԹU#qS^q7ߴD4wP/Q}wБ^;^YBq ^sk߷o~ WJ [iʂB)9ܭu"L5(s ܚݺu 8J (:>I+QKjf["}MVR܂HЫg:QzRѵwPe %BrQR֢S4 ^ 3-Xbsd~t}"=3LN$Nr|foE@E$W821x#7<67 >"ZN$L1D`c-l~Df6F|eLʽ> X!)]G8^*fZC)T> G"l$R5t[_ :=Dv[XGhU*Љi%@*({#wuXu}F+w)s[$O?"~D(尿w/{DT]+{Zį ;]Z#5DTӃ?% nϟ:5&q(O?@V #=|`جFkE'$4 '#ⰚlQ0xTs.NWބdlPu"`f 4w(]:< QxEL-Z6/aGiO#_:|"<"2:ɰR#5['+OMFL:h͏-c9O# 7ALYL1$W9x;(r]i(YPM-2;{h-2qZA#Kx|nr%ڭD}GDNle7*QqWBtM>ME]x ,Dm[kq1E>"aio-s::s T;;4c7Bޠ3`E"9 shbJeHLc)FW r4]}PZRG +VD7Zn!]7ԙn1 jHLӒ\ńBiԖdpDYID' yK⭘ rl8V% @%R%MDv8 {( ыd!!g0IL&X H2"b[jjt:ja@uFZvP DߪetR *YJTɐBR)fR%{,r-g22x L74{+==0KG ȌiF㩌)ۗ!r@omgR4YdiD|UkMfa]ײdKyOFDp_qRTV3v'%C!R@ADTie",} { {  X {=WWCĒ*lvz!ࠄXT.p"ڲK[YXOLdM"aeaDL1fcZAOROD 7K>68Ґg  {?\ e QcȴsEGD1MsfnEA_q킆_Gi;هcɧ v^(^!oK6H TTZA "f9{G23~)XXRdKvȀ\dnO=.UIIӢHCb&/ fDeH!^+ T̾b_6dD~9^%׊-劂jш83_ *ǏvF$! $쉄v[4 F.ˠ6V;F-\kV`ֻNpP$)f݄ak.Jb`m:,Ő| 7iFz? CP!BLjEy3w >YXR?%=e[lԓ @L`g 9n}Vꭷpv%*Ҏp^:`Hz2J5X!X,Jfbl+]T=X*7f&'a5 9Xa .2oet"漜#GUhA"2qAA#ï]H⚐Tn~>'>> +;}*D&M6-h0-J4;ɀ\W+A⇹?'M 23APO)#,O3MDΟ7V9l/ ,Ah@#٭,£@Puv!k/|2 K^05Dr d6Z?sQ@6#J ۞xOy$NЫ"T6!EHE9! WOֈ00 a+A8ձ,crM`q=7N@1@e &Ǵ]+`ﮀS0k/+hƐlS@2ѓP*^sv:ɠt733aA~I?ڣ ;64T BY.X!Ze\DZ…s_ǙMJSDXjbU(*mRՄͲVv$ƪ Cƴc!~/;o\zRam`C-~R2QW$"JnLDx=Zo"b%M(%ᙆdq:x<%Ȟi Dվ7![v'obFBz1DFG?G98G@֝;< 896\>yuKڡ3nIaXZvvDc>=tnfGD,,G[K`+ %8BYMVP9b!(8-Ԗy*73"|`w lZEjhBGSDF1n3+9XW`T*%qH#<<7Q/P"k%lJ,GΚ!GS[%:H>xBN t PH C <3vn$ҫ[,dIMBinBn-i\_nHtH.lk"Y+lOa[PQl.,%ZUݪ" %WaXi͢Il*Ps(LϢYjQ1Rh,UU";oȶxNsӵsNĸsXrOfV.ܰo{87qS}&?E~`" I30v;TRYC$5u | fApgPcLY'UΜQs"+Kç4Iptc>.?.Kq13 ')(0ѥSaaDńu"<0K(͵#i)} Ҝ-$dZo{IV<"tZn:0xBf X:9OKwc _0w%^-ed[dIvj:u@^ԣ,*%8LMM"tM~lk73 :rog=?왅&qFJ"}ioBnQd7j"Һw ֻ{D-QJf2b2wQxppw}F>(NwjE"]-EI6خ0 u"{D.x&i`b!vMϺBD:r LS- wEq5h-b'w!sVkrz#34]u"Js:vsANނ<q [K1-H4ik} jkͺD*ҫqI^M渔N$[K%piIazͦܮrZe"\Jsq9Ոs*pKO9N'<ا5Sngg0ЅxT%ٔ*Z+_.{8noiR.߇ʍi<xZDQBѳ5BZNC^ sY#3D$$?FW= Fܰ T ETaϡPB=X$i#pT"pWeJ?W!N^Kt O >#"Bs!jB,а- iɆG Ajy.KIENDB`awf-extended-2.5.0/images/thumbs/gtk4.png000066400000000000000000000227271407140370000202250ustar00rootroot00000000000000PNG  IHDRD+4PLTEĹʾҔaK¶ṨȼüĽcLЉ\H]Iwض÷οŵŸƺɻ̾ZHмˏ_Jƛr_˼xfiZ߲՗lY̽ᢏ~ꤝ^Kk[yݕeP[IoaȹjZ\JfOs_襓uyiijt`p[HgPpɹ̍^IbLԦ{gӘ~wTE~wЯߕXWUa_]{_O^JeM߆ը˕bKs_aB򭚉ϒxح?>=LKI)UHvtpkyuq|ywkœئ>vֈr#^IDATx}_ֶdK8Ʊd &18$!5B҆IӦm޻˻/߾? ݒ`hl̙sVUǏ6|[yS߾6>F;߼9\\1rj823O/][woD7^~on|Wn~|:oýS~/ץS_9?(ܥb?+\/>T`S\ׯ^:xwURO}\[9gsk Y;֢qo?on5mZ]>\Wi÷Sܺ:os껐som\tiA1VW~|ڃKǯ`ǯ׿V806?>kƱz \2Ι% _ʕ77?Ok^ |15=+̂(:1U)9iHr:8[*@J iMa Jz#">+֋1T(Ju=W KΩ*pQ^i*s8'%"Ng4eNJ)zUdTIZV:y8 F"pr0MNѦX%Ue_@S/]{XAy5D!aQw" { 8"~'pIӏ@¿8Hd, F8~G.]I>b=璤/Ⳑ.%XZ~Ld.+_";@W.?{gaDe ?>H!W>zoԡQ$aŭApAJ (Ȉu"~MQd#.=yr ‘O:蹹-r2E!1sHG{ ϊJ=W@'2uȑfӃK &i^s^|OzEDtc"gRNy11X<=u""`3o4#的lD!bT˿8g&i/"BuetuA΃.O-a"lnvAL[]1$`~~Qyt ݺuӛ7o~z p&`֭77ww /to.wd??ٝBra8fꈄP0ϗBp0OiG:_%1-xagNRvSB=Zq+WF:$ADg:wC,nߟ> DMQ w,/K:"x< %#O&uPkGJ3ݼqcQxoWPwwo_ؘ4]UYdVz{]@$r7.~DxMv5iy蒋JQ02K9-ݏ- r}ʇCp,]Jp( i8.tJ${ j 8QbΈai_Qw%r,S;14H> qH%To Z"x30°4n,I\QCy$x'| |<|v5uO /0J͂B[ "#]G]a9xO/ڸ0 |鱝hz+X1ROwDBPvĒ`(tB8P+JʹcubTNDl vCݽ~Td?Hzw3d*?H;}M+3&iG)@2 MruC`:!$c3\<!E'KpK " }`9dfg8˟}o7NAJ v.LǠir6 Gp^($rJh;Y:E,{Kz(Fz){ 4Т(^&EFQ7=htwF4C'Gk<饜 /<AU EDz.MLd2!)w!7J`)ikWI$FpQ`9ȇy s:v.kkpGbɢ/t}Y'Jt(@DZI*]Ƿ#7sH,ұU VKO4̏ H{6= ?[σt$C8jXáM軗GTknA6 bЅtD¦I)#ЦĎ٘6lSMkv@1k$:,ւg4q6~>1 2gϚX5&T[D.=x.*6?6Ednv54 1J|)t@@MSثD>5+Ʌ,߾,rXA3kd*ThLh.שthTXHWvpQg;,"B;BLrw1C3y~a? >S!⊬4%#+}ZyyyHb FH'`j*}ڣбNM!;vd5l{¾zaz8A a̯t۱:"``5@K@~l S֔ LY9v~GR5e893Ι64'wGTԷW;9&vjF.@PP8`vp~Z".~0/ :n1'N#I![]^(la9DU$ֶaoqֽi;j4yn;H[{7fAPqC!^WGa lHӶ p@m4,mAX2{;pfha{ "f7QٴvyRG;L_o_c1cwUruیcc&0x2c{z &R+jM!c="2xErOfVb7z,C~Fqm3QFd2 . ]X'#7GL#I/` &#=7uvSHEEWM1 sûxHV-yBnx1OB)w[VU!VGy]à˦B&k7NДAċB X+pҀ0(ێPБϧ$=]*+ē=5p GJ捑mȀ `\sQ>#,޶B\V`ܘEwǧ_Ģ0ȕ0#(I54c/6㿪3` `kzޝ)E","V߅>` *9-gMa?S!H7!#菛.Dn]QKfID :Rd83_#D&F @$7a.cAڻGw!8 ƐwyAl<7O$l鍿{U".[DN5A1U><$-&r\ȍ˚U#v 6 #i2 mC#^͆Y:b^Cuȥ2ejq w:[JQ-fH-X^fܔIӕZ"l"OnAdn=ؑ iX(de-kN4 ?fu9ȡ3IJ :'k) W/-XO%oOZ7@lЮ֔5f];F݅ɾIKl" 遙OC= /xLqkL2btj[=CD~ޘ=QхѲR/˔}؜]75 6rU ?cA$pxGl8 /H{xb<*⦾/&܉<>P(~#hr]*֜.՘2#o?u"yHݝ=AEa"B- ",d8ܭeܮ4q/:A[O6[&ڿۉ8턘݉iI&yꁲ*#r 7-"n;00lDe2 j4(f &+5T="*1 _5gE:|ٳfe ꂨ! YڮGDD6. ,o \Nô3L$7؀O4O9zQ 5;; ,8cD^L5"UdSŚ(r)+}GU~^g[eSsl Q{xd0yT̅CP>02Ba?X,QzK3t(S_0XsS={{eW]{/_"ӟ #` =3zβ~Ⰳ22gGGm[Xf<:j Qc絃uhb"b=pD pvQ ќ bYDUK{JYD n?EXD R5zw"-~⑿WSO]Tc؜h:#1W|?,K~ɞ/-A_zao :qY xFM4q #0M"ZDji9g;{l؝SqJiejl9;c+Fx_jhh$ҴpLޮad;Wp][^H+xDyFӳnʢw۝zpvˡG{,$`z' ހKް@Į2ula)T#QS2XyΚ7) Sg߾pa)p-,l]-aG!-t; NVɞ"wM"JnO雜_%WKOMlv\5#FDk)(* 2U@e7@WȝCƳ}&PX?;!}qq`$Q(tgX l8AW ,@wHY XG7.^͛~0itۄ4#>T%"P[#^FhT#ӸI$A6"A-]\CM{l6SD;x;:qb`T9t1CB6S捝Y~Eꓝ0ғ @'zR2buS85$3sD2t<4p2*BS?\ T,'Jʱ,!Su +hI$. :fidkf\FDo(0ax!CCډ$UVPs*d2 6XY:SV~@DlG!VI5ԐjX(DhHjwN/ME`7#wviZFs@'hc:ٴ^K 9E^OI3;.BA-K EsZ&,B~cg^964/"y&a}d:K.R>uQJ-"ՠ7@a.eDa@AmF RXʟ %s`ӕ AߟmD<%Q3D2<|0TBsn9hQ0(Gt֘ ;{`Y)Fx=W-![LBhSd)ac<·(/GR) <M`)Gݰ鵾%ȪdۋFamm8W=3~ԖO;!a CB®-tU(dpKg'd,?BZ> i( ( Wh:TT(}ݯTO\JAR0ERAU-"_܁ŭAÑF y8 IGaa8>zCOWbA$?#KHI&D஌Qr 16ma-ްN_>uQ#vۺ*D}TBUư$6dٖj$)K2u'NB8al#xMa*LtXNj@ĈEBϲ-;YN޻w/?W~v%`%R$1ێT2ٓs[zz+D&=2,g ^R,Ex^)\$<GsT^,±^ȽdG!:@D&@Y/D.U@ @ t>4I)[Aծ}"}@3Zʑ<?eNƌu]9qtt#+?W~MWeN".(uOB4"GH݆fv}!sn\K\{Xe4ƃ?ݬc|Zx: h1nq0iZ)\) *@:Q"z$v#-څ*Lte>Xˤð HA?f$v!NTS7O{N El03 iBFYQD#hg<dՆ`2du ƬpEi!HiCX,A' 4v soO!84^Ò`n!<A0ǓhF[u~`atUA"2){Zeen"<+%<5uM"~0np~<c%yco$Ӌ9(MpJb P/ y ӆx{Ywmr\jNGZh%!"YP.3(Sd (D$QUA`$y@4 ;E,p{ajOvasnl\lljlj]$fqAA؝g? GƑmһA015aAx}-D^"kT#^/"4UjT!v,@ts:922`SCdM=]vN'vUpH&ꡰvP7ICxLd^T]I L8=]„8Dpڃ wi2#Kr9Kg_&&(SI5F2Kef (U"η+D`mךxL++{ *,0H(hҺV($侑0V(*s?L<qz_(? 1xؘH5OLF`UJF t](CWߝȞbdٻ@HiJO&Dp5!4'2 8GL=@~ѸoҾeq3yD^y)0c1y1H FOZBi^t ʸo N<M)%I[n,b1+-ٞQf ^MgG,$oLyL3>{% r"6WK GiJU ( DՈX\D og*D>!');20^*ȱz.7h"s0P"-)@c&€oAD,T&s}226D`y$H{U]y"(ǓO"Y5rZ-MhаxO"<gRGM$7DHU_=xDM>W}$"q"7DffX}!DDfe/Kmۏ^ˮz95W2"!>R/@QwYRs/g"R4#Bz5]R:iuNHq-iֲz/GFZﵼ &ZY鵦^^CXߘ)H 3,U#o5}]#vv6ZP,*3Ł ]r3|D:yβr~(yیd}U:vsy9)7cZ׹bn߉ - 2.5.0-1 - New upstream version * Wed May 05 2021 Fabrice Creuzot - 2.4.0-1 - New upstream version * Sun Apr 04 2021 Fabrice Creuzot - 2.3.0-1 - Initial openSUSE package release awf-extended-2.5.0/opensuse-gtk2/rpm.sh000066400000000000000000000023311407140370000177240ustar00rootroot00000000000000#!/bin/bash # openSUSE: sudo zypper install rpmdevtools rpmlint rpm-build autoconf automake gtk2-devel desktop-file-utils aspell-fr cd "$(dirname "$0")" version="2.5.0" gtk="gtk2" rm -rf builder/ ~/rpmbuild/ mkdir -p builder ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} # copy to a tmp directory if [ true ]; then chmod 644 awf-$gtk.spec spectool -g -R awf-$gtk.spec else temp=awf-extended-$version mkdir /tmp/$temp cp -r ../* /tmp/$temp/ rm -rf /tmp/$temp/*/builder/ mv /tmp/$temp builder/ cp /usr/share/licenses/kernel-firmware/GPL-3 builder/$temp/LICENSE cd builder/ tar czf $temp.tar.gz $temp cd .. cp builder/$temp.tar.gz ~/rpmbuild/SOURCES/awf-$gtk-$version.tar.gz chmod 644 awf-$gtk.spec fi # create package (rpm sign https://access.redhat.com/articles/3359321) rpmbuild -ba awf-$gtk.spec rpm --addsign ~/rpmbuild/RPMS/*/*.rpm rpm --addsign ~/rpmbuild/SRPMS/*.rpm mv ~/rpmbuild/RPMS/*/*.rpm builder/ mv ~/rpmbuild/SRPMS/*.rpm builder/ echo "===========================" rpm --checksig builder/*.rpm echo "===========================" rpmlint awf-$gtk.spec builder/*.rpm echo "===========================" ls -dltrh builder/*.rpm echo "===========================" # cleanup rm -rf builder/*/ ~/rpmbuild/awf-extended-2.5.0/opensuse-gtk3/000077500000000000000000000000001407140370000165745ustar00rootroot00000000000000awf-extended-2.5.0/opensuse-gtk3/awf-gtk3.spec000066400000000000000000000045241407140370000211000ustar00rootroot00000000000000Name: awf-gtk3 Version: 2.5.0 Release: 0 Summary: Theme preview application for GTK Summary(fr): Application d'aperçu de thème pour GTK License: GPL-3.0-or-later URL: https://github.com/luigifab/awf-extended Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires: gtk3-devel BuildRequires: gettext BuildRequires: gcc BuildRequires: autoconf BuildRequires: automake BuildRequires: desktop-file-utils BuildRequires: aspell-fr Requires: gtk3 Requires: hicolor-icon-theme %description %{expand: A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme. This package provides the gtk3 version.} %description -l fr %{expand: La fabrique à widgets est une application d'aperçu de thème pour GTK. Elle affiche les différents types de widgets fournis par GTK dans une seule fenêtre permettant de voir l'effet visuel du thème appliqué. Ce paquet fournit la version gtk3.} %prep %setup -q -n awf-extended-%{version} sed -i 's/ -eq 2/ -eq -1/g' configure.ac sed -i 's/ -eq 4/ -eq -1/g' configure.ac touch {NEWS,AUTHORS,README,ChangeLog} mv LICENSE COPYING %build autoreconf -f -i %configure %make_build %install %make_install mkdir -p %{buildroot}%{_datadir}/applications/ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/ for file in icons/*/*/*; do mv $file ${file/\/awf./\/%{name}.}; done cp -a icons/* %{buildroot}%{_datadir}/icons/hicolor/ for file in src/po/*.po; do code=$(basename "$file" .po) mkdir -p %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/ msgfmt src/po/${code}.po -o %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/%{name}.mo done desktop-file-install --dir=%{buildroot}%{_datadir}/applications/ applications/%{name}.desktop %find_lang %{name} %files -f %{name}.lang %license COPYING %doc README.md %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/*/apps/%{name}.png %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg %changelog * Wed Jul 07 2021 Fabrice Creuzot - 2.5.0-1 - New upstream version * Wed May 05 2021 Fabrice Creuzot - 2.4.0-1 - New upstream version * Sun Apr 04 2021 Fabrice Creuzot - 2.3.0-1 - Initial openSUSE package release awf-extended-2.5.0/opensuse-gtk3/rpm.sh000066400000000000000000000023311407140370000177250ustar00rootroot00000000000000#!/bin/bash # openSUSE: sudo zypper install rpmdevtools rpmlint rpm-build autoconf automake gtk3-devel desktop-file-utils aspell-fr cd "$(dirname "$0")" version="2.5.0" gtk="gtk3" rm -rf builder/ ~/rpmbuild/ mkdir -p builder ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} # copy to a tmp directory if [ true ]; then chmod 644 awf-$gtk.spec spectool -g -R awf-$gtk.spec else temp=awf-extended-$version mkdir /tmp/$temp cp -r ../* /tmp/$temp/ rm -rf /tmp/$temp/*/builder/ mv /tmp/$temp builder/ cp /usr/share/licenses/kernel-firmware/GPL-3 builder/$temp/LICENSE cd builder/ tar czf $temp.tar.gz $temp cd .. cp builder/$temp.tar.gz ~/rpmbuild/SOURCES/awf-$gtk-$version.tar.gz chmod 644 awf-$gtk.spec fi # create package (rpm sign https://access.redhat.com/articles/3359321) rpmbuild -ba awf-$gtk.spec rpm --addsign ~/rpmbuild/RPMS/*/*.rpm rpm --addsign ~/rpmbuild/SRPMS/*.rpm mv ~/rpmbuild/RPMS/*/*.rpm builder/ mv ~/rpmbuild/SRPMS/*.rpm builder/ echo "===========================" rpm --checksig builder/*.rpm echo "===========================" rpmlint awf-$gtk.spec builder/*.rpm echo "===========================" ls -dltrh builder/*.rpm echo "===========================" # cleanup rm -rf builder/*/ ~/rpmbuild/awf-extended-2.5.0/opensuse-gtk4/000077500000000000000000000000001407140370000165755ustar00rootroot00000000000000awf-extended-2.5.0/opensuse-gtk4/awf-gtk4.spec000066400000000000000000000045241407140370000211020ustar00rootroot00000000000000Name: awf-gtk4 Version: 2.5.0 Release: 0 Summary: Theme preview application for GTK Summary(fr): Application d'aperçu de thème pour GTK License: GPL-3.0-or-later URL: https://github.com/luigifab/awf-extended Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires: gtk4-devel BuildRequires: gettext BuildRequires: gcc BuildRequires: autoconf BuildRequires: automake BuildRequires: desktop-file-utils BuildRequires: aspell-fr Requires: gtk4 Requires: hicolor-icon-theme %description %{expand: A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme. This package provides the gtk4 version.} %description -l fr %{expand: La fabrique à widgets est une application d'aperçu de thème pour GTK. Elle affiche les différents types de widgets fournis par GTK dans une seule fenêtre permettant de voir l'effet visuel du thème appliqué. Ce paquet fournit la version gtk4.} %prep %setup -q -n awf-extended-%{version} sed -i 's/ -eq 2/ -eq -1/g' configure.ac sed -i 's/ -eq 3/ -eq -1/g' configure.ac touch {NEWS,AUTHORS,README,ChangeLog} mv LICENSE COPYING %build autoreconf -f -i %configure %make_build %install %make_install mkdir -p %{buildroot}%{_datadir}/applications/ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/ for file in icons/*/*/*; do mv $file ${file/\/awf./\/%{name}.}; done cp -a icons/* %{buildroot}%{_datadir}/icons/hicolor/ for file in src/po/*.po; do code=$(basename "$file" .po) mkdir -p %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/ msgfmt src/po/${code}.po -o %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/%{name}.mo done desktop-file-install --dir=%{buildroot}%{_datadir}/applications/ applications/%{name}.desktop %find_lang %{name} %files -f %{name}.lang %license COPYING %doc README.md %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/*/apps/%{name}.png %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg %changelog * Wed Jul 07 2021 Fabrice Creuzot - 2.5.0-1 - New upstream version * Wed May 05 2021 Fabrice Creuzot - 2.4.0-1 - New upstream version * Sun Apr 04 2021 Fabrice Creuzot - 2.3.0-1 - Initial openSUSE package release awf-extended-2.5.0/opensuse-gtk4/rpm.sh000066400000000000000000000023311407140370000177260ustar00rootroot00000000000000#!/bin/bash # openSUSE: sudo zypper install rpmdevtools rpmlint rpm-build autoconf automake gtk4-devel desktop-file-utils aspell-fr cd "$(dirname "$0")" version="2.5.0" gtk="gtk4" rm -rf builder/ ~/rpmbuild/ mkdir -p builder ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} # copy to a tmp directory if [ true ]; then chmod 644 awf-$gtk.spec spectool -g -R awf-$gtk.spec else temp=awf-extended-$version mkdir /tmp/$temp cp -r ../* /tmp/$temp/ rm -rf /tmp/$temp/*/builder/ mv /tmp/$temp builder/ cp /usr/share/licenses/kernel-firmware/GPL-3 builder/$temp/LICENSE cd builder/ tar czf $temp.tar.gz $temp cd .. cp builder/$temp.tar.gz ~/rpmbuild/SOURCES/awf-$gtk-$version.tar.gz chmod 644 awf-$gtk.spec fi # create package (rpm sign https://access.redhat.com/articles/3359321) rpmbuild -ba awf-$gtk.spec rpm --addsign ~/rpmbuild/RPMS/*/*.rpm rpm --addsign ~/rpmbuild/SRPMS/*.rpm mv ~/rpmbuild/RPMS/*/*.rpm builder/ mv ~/rpmbuild/SRPMS/*.rpm builder/ echo "===========================" rpm --checksig builder/*.rpm echo "===========================" rpmlint awf-$gtk.spec builder/*.rpm echo "===========================" ls -dltrh builder/*.rpm echo "===========================" # cleanup rm -rf builder/*/ ~/rpmbuild/awf-extended-2.5.0/src/000077500000000000000000000000001407140370000146545ustar00rootroot00000000000000awf-extended-2.5.0/src/Makefile.am000066400000000000000000000012121407140370000167040ustar00rootroot00000000000000bin_PROGRAMS = if GTK4 bin_PROGRAMS += awf-gtk@GTK4_SUFFIX@ awf_gtk@GTK4_SUFFIX@_SOURCES = awf.c awf_gtk@GTK4_SUFFIX@_CPPFLAGS = $(GTK4_CFLAGS) -I/usr/include/gtk-4.0/unix-print awf_gtk@GTK4_SUFFIX@_LDADD = $(GTK4_LIBS) endif if GTK3 bin_PROGRAMS += awf-gtk@GTK3_SUFFIX@ awf_gtk@GTK3_SUFFIX@_SOURCES = awf.c awf_gtk@GTK3_SUFFIX@_CPPFLAGS = $(GTK3_CFLAGS) -I/usr/include/gtk-3.0/unix-print awf_gtk@GTK3_SUFFIX@_LDADD = $(GTK3_LIBS) endif if GTK2 bin_PROGRAMS += awf-gtk@GTK2_SUFFIX@ awf_gtk@GTK2_SUFFIX@_SOURCES = awf.c awf_gtk@GTK2_SUFFIX@_CPPFLAGS = $(GTK2_CFLAGS) -I/usr/include/gtk-unix-print-2.0 awf_gtk@GTK2_SUFFIX@_LDADD = $(GTK2_LIBS) endifawf-extended-2.5.0/src/awf.c000066400000000000000000003673431407140370000156150ustar00rootroot00000000000000/** * Forked M/10/03/2020 * Updated D/20/06/2021 * * Copyright 2020-2021 | Fabrice Creuzot (luigifab) * https://github.com/luigifab/awf-extended * https://www.luigifab.fr/gtk/awf-extended * * Forked from * Copyright 2011-2017 | Valère Monseur (valr) * https://github.com/valr/awf * * Forked from * AWF is originally based on the code from The Widget Factory * created by Richard Stellingwerff * * This program is free software, you can redistribute it or modify * it under the terms of the GNU General Public License (GPL) 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 (GPL) for more details. * * * Translations update: * xgettext --keyword=_app -d awf -o src/awf.pot -k_ -s src/awf.c * msgmerge src/po/fr.po src/awf.pot -o src/po/fr.po * msgfmt src/po/fr.po -o src/fr/LC_MESSAGES/awf.mo * * Tested with build.sh (via VirtualBox 6.1) with: * Fedora Rawhide 64 (1536 MB) GTK 2.24/3.24/4.2 + GLIB 2.68 + Pango 1.48 * Debian Testing 64 (1536 MB) GTK 2.24/3.24/4.0 + GLIB 2.66 + Pango 1.48 * Ubuntu 21.04 Hirsute Hippo 64 (1536 MB) GTK 2.24/3.24/4.0 + GLIB 2.68 + Pango 1.48 * Ubuntu 17.04 Zesty Zapus 32 (1536 MB) GTK 2.24/3.22 + GLIB 2.52 + Pango 1.40 * Ubuntu 16.10 Yakkety Yak 32 (1536 MB) GTK 2.24/3.20 + GLIB 2.50 + Pango 1.40 * Ubuntu 16.04 Xenial Xerus 32 (1536 MB) GTK 2.24/3.18 + GLIB 2.48 + Pango 1.38 * Ubuntu 15.10 Wily Werewolf 32 (1024 MB) GTK 2.24/3.16 + GLIB 2.46 + Pango 1.36 * Ubuntu 15.04 Vivid Vervet 32 (1024 MB) GTK 2.24/3.14 + GLIB 2.44 + Pango 1.36 * Ubuntu 14.10 Utopic Unicorn 32 (1024 MB) GTK 2.24/3.12 + GLIB 2.42 + Pango 1.36 * Ubuntu 14.04 Trusty Tahr 32 (1024 MB) GTK 2.24/3.10 + GLIB 2.40 + Pango 1.36 * Ubuntu 13.10 Saucy Salamander 32 (1024 MB) GTK 2.24/3.8 + GLIB 2.38 + Pango 1.32 * Ubuntu 13.04 Raring Ringtail 32 (1024 MB) GTK 2.24/3.6 + GLIB 2.36 + Pango 1.32 * Ubuntu 12.04 Precise Pangolin 32 (1024 MB) GTK 2.24/3.4 + GLIB 2.32 + Pango 1.30 * Ubuntu 11.10 Oneiric Ocelot 32 (1024 MB) GTK 2.24/3.2 + GLIB 2.30 + Pango 1.29 * Ubuntu 11.04 Natty Narwhal 32 (1024 MB) GTK 2.24/3.0 + GLIB 2.28 + Pango 1.28 */ // includes #include #include #include #include #include #include #if GLIB_CHECK_VERSION (2,30,0) #include #endif // defines #if GTK_CHECK_VERSION (3,0,0) #define GETTEXT_PACKAGE g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION) #define gtk_major_version gtk_get_major_version () #define gtk_minor_version gtk_get_minor_version () #define gtk_micro_version gtk_get_micro_version () #define BOXH (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0)) #define BOXV (gtk_box_new (GTK_ORIENTATION_VERTICAL, 0)) #define SEPH (gtk_separator_new (GTK_ORIENTATION_HORIZONTAL)) #define SEPV (gtk_separator_new (GTK_ORIENTATION_VERTICAL)) #define PANEH (gtk_paned_new (GTK_ORIENTATION_HORIZONTAL)) #define PANEV (gtk_paned_new (GTK_ORIENTATION_VERTICAL)) #else #define GETTEXT_PACKAGE "awf-gtk2" #define BOXH (gtk_hbox_new (FALSE, 0)) #define BOXV (gtk_vbox_new (FALSE, 0)) #define SEPH (gtk_hseparator_new ()) #define SEPV (gtk_vseparator_new ()) #define PANEH (gtk_hpaned_new ()) #define PANEV (gtk_vpaned_new ()) #define GDK_KEY_F1 0xffbe #define GDK_KEY_F2 0xffbf #define GDK_KEY_F3 0xffc0 #define GDK_KEY_F4 0xffc1 #define GDK_KEY_F5 0xffc2 #define GDK_KEY_F6 0xffc3 #define GDK_KEY_F7 0xffc4 #define GDK_KEY_F8 0xffc5 #define GDK_KEY_F9 0xffc6 #define GDK_KEY_F10 0xffc7 #define GDK_KEY_F11 0xffc8 #define GDK_KEY_F12 0xffc9 #define GDK_KEY_Delete 0xffff #define GDK_KEY_KP_Delete 0xff9f #define GDK_KEY_BackSpace 0xff08 #endif #define AWF_OPEN "/Test/Open" #define AWF_RECE "/Test/Recent" #define AWF_CALE "/Test/Calendar" #define AWF_SCAL "/Test/Scales" #define AWF_SAVE "/Test/Save" #define AWF_REFR "/Test/Refresh" #define AWF_PROP "/Test/Properties" #define AWF_PRSE "/Test/PrintSetup" #define AWF_PRIN "/Test/Print" #define AWF_ABOU "/Test/About" #define AWF_MCUT "/Test/More/Cut" #define AWF_MCOP "/Test/More/Copy" #define AWF_MPAS "/Test/More/Past" #define AWF_CLOS "/Test/Close" #define AWF_QUIT "/Test/Quit" #define AWF_ACCEL_OPEN "O" #define AWF_ACCEL_RECE NULL #define AWF_ACCEL_CALE NULL #define AWF_ACCEL_SCAL NULL #define AWF_ACCEL_SAVE "S" #define AWF_ACCEL_REFR "F5" #define AWF_ACCEL_PROP "Return" #define AWF_ACCEL_PRSE "P" #define AWF_ACCEL_PRIN "P" #define AWF_ACCEL_ABOU "F1" #define AWF_ACCEL_MCUT "X" #define AWF_ACCEL_MCOP "C" #define AWF_ACCEL_MPAS "V" #define AWF_ACCEL_CLOS "W" #define AWF_ACCEL_QUIT "Q" // https://stackoverflow.com/a/10018581/2980105 #define _app(String) dgettext (GETTEXT_PACKAGE, String) #define _gtk(String) dgettext (g_strdup_printf ("gtk%d0", GTK_MAJOR_VERSION), String) // global variables static gchar *current_theme = ""; static GSList *list_system_theme; static GSList *list_user_theme; static GtkWidget *window, *statusbar; static GtkWidget *volume1, *volume2; static GtkWidget *progressbar1, *progressbar2, *progressbar3, *progressbar4; static GtkWidget *scale1, *scale2, *scale3, *scale4, *scale5, *scale6; static GtkWidget *levelbar1, *levelbar2, *levelbar3, *levelbar4, *levelbar5, *levelbar6, *levelbar7, *levelbar8; static GtkWidget *notebook1, *notebook2, *notebook3, *notebook4; static GtkWidget *current_menuitem; static gchar *opt_screenshot = NULL; static gboolean opt_startspinner = TRUE; static gboolean allow_update_theme = TRUE; static gboolean must_save_accels = FALSE; // global functions static void quit (); static GSList* awf_load_theme (gchar *directory); static int awf_compare_theme (gconstpointer theme1, gconstpointer theme2); static void update_theme (gchar *new_theme); static void update_statusbar (gchar *text); static void update_values (GtkRange *range); static void update_widgets (); static void update_direction (); static gboolean sighup_handler (); static gboolean take_screenshot (); // layout and widgets static void create_window (gpointer app, gchar *theme); static void create_widgets (GtkWidget *root); static void add_to (GtkBox *box, GtkWidget *widget, gboolean fill, gboolean expand, guint padding, guint spacing); static void create_toolbar (GtkWidget *root); static void create_combos_entries (GtkWidget *root); static void create_spinbuttons (GtkWidget *root); static void create_checkbuttons (GtkWidget *root); static void create_radiobuttons (GtkWidget *root); static void create_otherbuttons (GtkWidget *root1, GtkWidget *root2, GtkWidget *root3, GtkWidget *root4, GtkWidget *root5); static void create_progressbars (GtkWidget *root1, GtkWidget *root2, GtkWidget *root3, GtkWidget *root4); static void create_labels (GtkWidget *root); static void create_spinners (GtkWidget *root); static void create_expander (GtkWidget *root); static void create_frames (GtkWidget *root1, GtkWidget *root2); static void create_notebooks (GtkWidget *root1, GtkWidget *root2); static void create_notebook_tab (GtkWidget *notebook, gchar *text); static void create_treview (GtkWidget *root); static GtkWidget* create_horizontal_scale (gint value, gboolean draw, gboolean inverted); static GtkWidget* create_vertical_scale (gint value, gboolean draw, gboolean inverted); // traditional menu #if GTK_CHECK_VERSION (4,0,0) static void gtk40_activate_action (GSimpleAction *action, GVariant *parameter, gpointer user_data); static void create_traditional_menubar (GtkApplication *app, GMenu *root); static GMenuItem* create_menuitem (GtkApplication *app, GMenu *menu, gchar *text, gchar *accel, gchar *keymap, GCallback function); static void accels_change (GtkEventControllerKey *controller, guint keyval, guint keycode, GdkModifierType state); #else static void create_traditional_menubar (GtkWidget *root); static GtkWidget* create_menu (GtkWidget *root, gchar *text); static GtkWidget* create_menuitem_tearoff (GtkWidget *menu); static GtkWidget* create_menuitem_check (GtkWidget *menu, gchar *text, gboolean checked, gboolean inconsistent, gboolean disabled); static GtkWidget* create_menuitem_radio (GtkWidget *menu, gchar *text, gboolean checked, gboolean inconsistent, gboolean disabled, GSList *group); static GtkWidget* create_menuitem (GtkWidget *menu, gchar *text, gboolean disabled, gchar *accel, gchar *keymap, GCallback function); static void accels_load (); static void accels_select (GtkWidget *widget); static void accels_deselect (GtkWidget *widget); static void accels_change (GtkWidget *widget, GdkEventKey *event); static void accels_save (); #endif // dialogs static void dialog_open (); static void dialog_recent (); static void dialog_save (); static void dialog_message (); static void dialog_page_setup (); static void dialog_print (); static void dialog_about (); static void dialog_calendar (); static void dialog_scales (); // gtk 3 and 4 #if GTK_CHECK_VERSION (4,0,0) static void gtk40_closedialog (GtkDialog *dialog); static void gtk40_scrolltabs (GtkEventControllerScroll *event, double dx, double dy, GtkWidget *widget); #elif GTK_CHECK_VERSION (3,4,0) static void gtk34_scrolltabs (GtkWidget *widget, GdkEventScroll *event); #endif // run run run int main (int argc, gchar **argv) { int status = 0, opt; gchar *directory, *theme = "auto"; GSList *iterator; // load available themes // @todo replace GSLists? list_system_theme = awf_load_theme ("/usr/share/themes"); list_system_theme = g_slist_sort (list_system_theme, (GCompareFunc) awf_compare_theme); directory = g_build_path ("/", g_getenv ("HOME"), ".themes", NULL); list_user_theme = awf_load_theme (directory); list_user_theme = g_slist_sort (list_user_theme, (GCompareFunc) awf_compare_theme); g_free (directory); // locale setlocale (LC_ALL, ""); if (g_file_test ("/usr/share/locale", G_FILE_TEST_IS_DIR)) bindtextdomain (GETTEXT_PACKAGE, "/usr/share/locale"); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); // init while ((opt = getopt (argc, argv, "vs:nt:lh")) != -1) { switch (opt) { case 'v': g_printf ("%s\n", VERSION); return status; case 's': opt_screenshot = optarg; break; case 'n': opt_startspinner = FALSE; case 't': if (g_slist_find_custom (list_system_theme, optarg, &awf_compare_theme) || g_slist_find_custom (list_user_theme, optarg, &awf_compare_theme)) theme = (gchar*) optarg; break; case 'l': for (iterator = list_system_theme; iterator; iterator = iterator->next) g_printf ("%s\n", (gchar*) iterator->data); for (iterator = list_user_theme; iterator; iterator = iterator->next) g_printf ("%s\n", (gchar*) iterator->data); return status; case 'h': default: g_printf ("\n%s\n %s\n %s\n\n%s\n %s %s\n %s %s\n %s %s\n%s\n %s %s\n %s %s\n %s %s\n %s %s\n %s %s\n", g_strdup_printf (_app("A widget factory - GTK %d - %s"), GTK_MAJOR_VERSION, VERSION), g_strdup_printf (_app("compiled with gtk %d.%d.%d and glib %d.%d.%d and pango %s"), GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION, GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION, PANGO_VERSION_STRING), g_strdup_printf (_app(" started with gtk %d.%d.%d and glib %d.%d.%d and pango %s"), gtk_major_version, gtk_minor_version, gtk_micro_version, glib_major_version, glib_minor_version, glib_micro_version, pango_version_string ()), _app("Usage:"), "awf-gtk2 ", "(gtk 2.24+)", "awf-gtk3 ", "(gtk 3.00+)", "awf-gtk4 ", "(gtk 4.00+)", _app("Options:"), "-v ", _app("Show version number"), "-l ", _app("List available themes"), "-n ", _app("Don't start spinners"), "-t ", _app("Run with the specified theme"), "-s ", g_strdup_printf (_app("Run and save a png screenshot on %s"), "sighup") ); return status; } } // create and show window #if GLIB_CHECK_VERSION (2,30,0) g_unix_signal_add (SIGHUP, sighup_handler, NULL); // glib >= 2.30 #endif #if GTK_CHECK_VERSION (4,0,0) GtkApplication *app; app = gtk_application_new ("org.gtk.awf4", G_APPLICATION_FLAGS_NONE); g_signal_connect (app, "activate", G_CALLBACK (create_window), theme); g_application_register (G_APPLICATION (app), NULL, NULL); status = g_application_run (G_APPLICATION (app), 0, NULL); // @todo (app, argc, argv) #elif GTK_CHECK_VERSION (3,4,0) GtkApplication *app; app = gtk_application_new ("org.gtk.awf3", G_APPLICATION_FLAGS_NONE); g_signal_connect (app, "activate", G_CALLBACK (create_window), theme); status = g_application_run (G_APPLICATION (app), 0, NULL); // @todo (app, argc, argv) #else gtk_init (&argc, &argv); create_window (NULL, theme); #endif return status; } static void quit () { #if !GTK_CHECK_VERSION (4,0,0) accels_save (); #endif exit (0); } static GSList* awf_load_theme (gchar *directory) { GSList *list = NULL; g_return_val_if_fail (directory != NULL, NULL); if (g_file_test (directory, G_FILE_TEST_IS_DIR)) { GError *error = NULL; GDir *dir = g_dir_open (directory, 0, &error); if (dir) { gchar *theme = g_strdup (g_dir_read_name (dir)); while (theme) { gchar *theme_path = g_build_path ("/", directory, g_strstrip (theme), NULL); if (g_file_test (theme_path, G_FILE_TEST_IS_DIR)) { gchar *theme_subpath = g_build_path ("/", theme_path, g_strdup_printf ("gtk-%d.0", GTK_MAJOR_VERSION), NULL); if (g_file_test (theme_subpath, G_FILE_TEST_IS_DIR)) list = g_slist_prepend (list, theme); g_free (theme_subpath); } g_free (theme_path); // don't free 'theme', it's the data part of GSList elements theme = g_strdup (g_dir_read_name (dir)); } g_dir_close (dir); } if (error) { g_fprintf (stderr, "unable to open directory: %s (%s)\n", directory, error->message); g_error_free (error); error = NULL; } } if (list) list = g_slist_reverse (list); return list; } static int awf_compare_theme (gconstpointer theme1, gconstpointer theme2) { return g_strcmp0 ((gchar*) theme1, (gchar*) theme2); } static void update_theme (gchar *new_theme) { // we must ignore the activate signal when menubar is created if (!allow_update_theme) return; if (strcmp ((gchar*) new_theme, "refresh") == 0) { gchar *default_theme = NULL; if (g_slist_find_custom (list_system_theme, "Default", &awf_compare_theme)) default_theme = "Default"; else if (g_slist_find_custom (list_system_theme, "Raleigh", &awf_compare_theme)) default_theme = "Raleigh"; if (default_theme) { g_object_set (gtk_settings_get_default (), "gtk-theme-name", default_theme, NULL); g_usleep (G_USEC_PER_SEC / 2); g_object_set (gtk_settings_get_default (), "gtk-theme-name", current_theme, NULL); update_statusbar (g_strdup_printf (_app("Theme %s reloaded."), current_theme)); if (opt_screenshot) g_timeout_add_seconds (1, take_screenshot, NULL); } } else if (strcmp ((gchar*) new_theme, "auto") == 0) { g_object_get (gtk_settings_get_default (), "gtk-theme-name", ¤t_theme, NULL); } else if (strcmp ((gchar*) current_theme, (gchar*) new_theme) != 0) { g_object_set (gtk_settings_get_default (), "gtk-theme-name", new_theme, NULL); g_object_get (gtk_settings_get_default (), "gtk-theme-name", ¤t_theme, NULL); //g_settings_set_string (g_settings_new ("org.mate.Marco.general"), "theme", (gchar*) current_theme); #if GTK_CHECK_VERSION (4,0,0) gtk_window_set_default_size (GTK_WINDOW (window), 50, 50); #else gtk_window_resize (GTK_WINDOW (window), 50, 50); #endif update_statusbar (g_strdup_printf (_app("Theme %s loaded."), current_theme)); } } static void update_statusbar (gchar *text) { if (!statusbar) return; // https://developer.gnome.org/gtk3/stable/GtkStatusbar.html char buffer[12]; time_t rawtime; time (&rawtime); strftime (buffer, sizeof buffer, "%T", localtime (&rawtime)); gtk_statusbar_push (GTK_STATUSBAR (statusbar), gtk_statusbar_get_context_id (GTK_STATUSBAR (statusbar), "gné"), g_strdup_printf ("%s (%s)", text, buffer)); } static void update_values (GtkRange *range) { // https://developer.gnome.org/gtk3/stable/GtkProgressBar.html // https://developer.gnome.org/gtk3/stable/GtkLevelBar.html // https://developer.gnome.org/gtk3/stable/GtkScale.html // https://developer.gnome.org/gtk3/stable/GtkScaleButton.html double value = gtk_range_get_value (range); // range (0..1) gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar1), value / 100.0); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar2), value / 100.0); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar3), value / 100.0); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar4), value / 100.0); #if GTK_CHECK_VERSION (3,6,0) // range (0..1) gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar1), value / 100.0); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar2), value / 100.0); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar5), value / 100.0); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar6), value / 100.0); // range (0..5) gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar3), value / 100.0 * gtk_level_bar_get_max_value (GTK_LEVEL_BAR (levelbar3))); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar4), value / 100.0 * gtk_level_bar_get_max_value (GTK_LEVEL_BAR (levelbar4))); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar7), value / 100.0 * gtk_level_bar_get_max_value (GTK_LEVEL_BAR (levelbar7))); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar8), value / 100.0 * gtk_level_bar_get_max_value (GTK_LEVEL_BAR (levelbar8))); #endif // range (0..1) gtk_scale_button_set_value (GTK_SCALE_BUTTON (volume1), value / 100.0); // range (0..100) if (scale1 != (GtkWidget*) range) gtk_range_set_value (GTK_RANGE (scale1), value); if (scale2 != (GtkWidget*) range) gtk_range_set_value (GTK_RANGE (scale2), value); if (scale3 != (GtkWidget*) range) gtk_range_set_value (GTK_RANGE (scale3), value); if (scale4 != (GtkWidget*) range) gtk_range_set_value (GTK_RANGE (scale4), value); if (scale5 != (GtkWidget*) range) gtk_range_set_value (GTK_RANGE (scale5), value); if (scale6 != (GtkWidget*) range) gtk_range_set_value (GTK_RANGE (scale6), value); #if !GTK_CHECK_VERSION (3,0,0) if (gtk_progress_bar_get_text (GTK_PROGRESS_BAR (progressbar1))) { gchar *text = g_strdup_printf ("%i %%", (int) value); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar1), text); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar3), text); g_free (text); } #endif } static void update_widgets () { // https://developer.gnome.org/gtk3/stable/GtkNotebook.html // https://developer.gnome.org/gtk3/stable/GtkProgressBar.html // https://developer.gnome.org/gtk3/stable/GtkScale.html gboolean toggle = gtk_notebook_get_scrollable (GTK_NOTEBOOK (notebook1)); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook1), !toggle); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook2), !toggle); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook3), !toggle); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook4), !toggle); gtk_widget_set_sensitive (scale2, toggle); gtk_widget_set_sensitive (scale4, toggle); gtk_widget_set_sensitive (scale6, toggle); gtk_widget_set_sensitive (progressbar2, toggle); gtk_widget_set_sensitive (progressbar4, toggle); #if GTK_CHECK_VERSION (3,6,0) gtk_widget_set_sensitive (levelbar2, toggle); gtk_widget_set_sensitive (levelbar4, toggle); gtk_widget_set_sensitive (levelbar6, toggle); gtk_widget_set_sensitive (levelbar8, toggle); #endif #if GTK_CHECK_VERSION (3,0,0) gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (progressbar1), !toggle); gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (progressbar2), !toggle); gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (progressbar3), !toggle); gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (progressbar4), !toggle); #else if (toggle) { gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar1), NULL); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar2), NULL); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar3), NULL); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar4), NULL); } else { gchar *text = g_strdup_printf ("%i %%", (int) gtk_range_get_value (GTK_RANGE (scale1))); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar1), text); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar2), text); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar3), text); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar4), text); g_free (text); } #endif gtk_scale_clear_marks (GTK_SCALE (scale5)); if (toggle) { gtk_scale_add_mark (GTK_SCALE (scale5), 25, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale5), 50, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale5), 75, GTK_POS_LEFT, NULL); } else { gtk_scale_add_mark (GTK_SCALE (scale5), 25, GTK_POS_LEFT, "25"); gtk_scale_add_mark (GTK_SCALE (scale5), 50, GTK_POS_LEFT, "50"); gtk_scale_add_mark (GTK_SCALE (scale5), 75, GTK_POS_LEFT, "75"); } gtk_scale_clear_marks (GTK_SCALE (scale6)); if (toggle) { gtk_scale_add_mark (GTK_SCALE (scale6), 25, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale6), 50, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale6), 75, GTK_POS_RIGHT, NULL); } else { gtk_scale_add_mark (GTK_SCALE (scale6), 25, GTK_POS_RIGHT, "25"); gtk_scale_add_mark (GTK_SCALE (scale6), 50, GTK_POS_RIGHT, "50"); gtk_scale_add_mark (GTK_SCALE (scale6), 75, GTK_POS_RIGHT, "75"); } } static void update_direction () { // https://developer.gnome.org/gtk3/stable/GtkWidget.html // https://developer.gnome.org/gtk3/stable/GtkNotebook.html if (gtk_widget_get_default_direction () == gtk_widget_get_direction (window)) { if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL) { gtk_widget_set_default_direction (GTK_TEXT_DIR_LTR); #if GTK_CHECK_VERSION (3,20,0) && !GTK_CHECK_VERSION (4,0,0) gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook3), GTK_POS_LEFT); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook4), GTK_POS_RIGHT); #endif gtk_scale_clear_marks (GTK_SCALE (scale5)); gtk_scale_add_mark (GTK_SCALE (scale5), 25, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale5), 50, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale5), 75, GTK_POS_LEFT, NULL); gtk_scale_clear_marks (GTK_SCALE (scale6)); gtk_scale_add_mark (GTK_SCALE (scale6), 25, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale6), 50, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale6), 75, GTK_POS_RIGHT, NULL); } else { gtk_scale_clear_marks (GTK_SCALE (scale5)); gtk_scale_add_mark (GTK_SCALE (scale5), 25, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale5), 50, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale5), 75, GTK_POS_RIGHT, NULL); gtk_scale_clear_marks (GTK_SCALE (scale6)); gtk_scale_add_mark (GTK_SCALE (scale6), 25, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale6), 50, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale6), 75, GTK_POS_LEFT, NULL); #if GTK_CHECK_VERSION (3,20,0) && !GTK_CHECK_VERSION (4,0,0) gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook3), GTK_POS_RIGHT); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook4), GTK_POS_LEFT); #endif gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL); } } else { gtk_widget_set_default_direction (GTK_TEXT_DIR_NONE); } } static gboolean sighup_handler () { update_theme ("refresh"); #if !defined (G_SOURCE_CONTINUE) return TRUE; // glib < 2.32 #else return G_SOURCE_CONTINUE; #endif } static gboolean take_screenshot () { // https://developer.gnome.org/gdk2/stable/gdk2-Pixbufs.html // https://developer.gnome.org/gdk3/stable/gdk3-Pixbufs.html // https://developer.gnome.org/gdk4/stable/gdk4-Pixbufs.html GdkPixbuf *image; int width, height; #if GTK_CHECK_VERSION (4,0,0) //GdkSurface *root; //cairo_surface_t *cairo_st; //root = gtk_native_get_surface (gtk_widget_get_native (window)); //width = gdk_surface_get_width (root); //height = gdk_surface_get_height (root); //cairo_st = gdk_surface_create_similar_surface (root, CAIRO_CONTENT_COLOR, width, height); //image = gdk_pixbuf_get_from_surface (cairo_st, 0, 0, width, height); //cairo_surface_destroy (cairo_st); // black before, transparent after... //GtkSnapshot *snapshot; //cairo_surface_t *cairo_st; //graphene_rect_t *graphene; //snapshot = gtk_snapshot_new (); //gtk_widget_snapshot_child (window, gtk_widget_get_first_child (window), snapshot); //graphene = graphene_rect_alloc (); //width = gtk_widget_get_width (window); //height = gtk_widget_get_height (window); //graphene = graphene_rect_init (graphene, 0, 0, width, height); //cairo_st = cairo_get_target (gtk_snapshot_append_cairo (snapshot, graphene)); //image = gdk_pixbuf_get_from_surface (cairo_st, 0, 0, width, height); //cairo_surface_destroy (cairo_st); #elif GTK_CHECK_VERSION (3,0,0) GdkWindow *root; root = gtk_widget_get_window (window); gtk_window_get_size (GTK_WINDOW (window), &width, &height); image = gdk_pixbuf_get_from_window (root, 0, 0, width, height); #else GdkWindow *root; root = gtk_widget_get_window (window); gtk_window_get_size (GTK_WINDOW (window), &width, &height); image = gdk_pixbuf_get_from_drawable (NULL, root, gdk_colormap_get_system (), 0, 0, 0, 0, width, height); #endif if (image) { gdk_pixbuf_save (image, opt_screenshot, "png", NULL, "compression", "9", NULL); update_statusbar (g_strdup_printf (_app("Theme reloaded, then screenshot saved (%s)."), opt_screenshot)); g_object_unref (image); } return FALSE; } // layout and widgets static void create_window (gpointer app, gchar *theme) { // https://developer.gnome.org/gtk3/stable/GtkApplication.html // https://developer.gnome.org/gtk4/stable/GtkEventControllerKey.html GtkWidget *vbox_window, *toolbar, *widgets; // window #if GTK_CHECK_VERSION (3,4,0) window = gtk_application_window_new (GTK_APPLICATION (app)); #else window = gtk_window_new (GTK_WINDOW_TOPLEVEL); #endif gtk_window_set_title (GTK_WINDOW (window), g_strdup_printf (_app("A widget factory - GTK %d - %s"), GTK_MAJOR_VERSION, VERSION)); gtk_window_set_icon_name (GTK_WINDOW (window), g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION)); update_theme (theme); allow_update_theme = FALSE; // layout vbox_window = BOXV; #if GTK_CHECK_VERSION (4,0,0) gtk_window_set_child (GTK_WINDOW (window), vbox_window); #else gtk_container_add (GTK_CONTAINER (window), vbox_window); #endif #if GTK_CHECK_VERSION (4,0,0) GMenu *gmm; gmm = g_menu_new (); create_traditional_menubar (app, gmm); gtk_application_set_menubar (app, G_MENU_MODEL (gmm)); gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), TRUE); toolbar = BOXH; add_to (GTK_BOX (vbox_window), toolbar, FALSE, FALSE, 0, 0); create_toolbar (toolbar); #else GtkWidget *menubar; menubar = gtk_menu_bar_new (); create_traditional_menubar (menubar); add_to (GTK_BOX (vbox_window), menubar, FALSE, FALSE, 0, 0); toolbar = gtk_toolbar_new (); add_to (GTK_BOX (vbox_window), toolbar, FALSE, FALSE, 0, 0); create_toolbar (toolbar); #endif widgets = BOXV; add_to (GTK_BOX (vbox_window), widgets, TRUE, TRUE, 0, 0); create_widgets (widgets); statusbar = gtk_statusbar_new (); add_to (GTK_BOX (vbox_window), statusbar, FALSE, FALSE, 0, 0); update_statusbar (g_strdup_printf (_app("Theme %s loaded."), current_theme)); // go allow_update_theme = TRUE; g_signal_connect (window, "destroy", G_CALLBACK (quit), NULL); #if GTK_CHECK_VERSION (4,0,0) // gtk-can-change-accels for GTK 4.0+ GtkEventController *event; event = gtk_event_controller_key_new (); g_signal_connect (event, "key-released", G_CALLBACK (accels_change), window); gtk_widget_add_controller (window, event); gtk_style_context_add_class (gtk_widget_get_style_context (toolbar), "primary-toolbar"); gtk_widget_show (window); #elif GTK_CHECK_VERSION (3,4,0) gtk_style_context_add_class (gtk_widget_get_style_context (toolbar), "primary-toolbar"); gtk_widget_show_all (window); #elif GTK_CHECK_VERSION (3,0,0) gtk_style_context_add_class (gtk_widget_get_style_context (toolbar), "primary-toolbar"); gtk_widget_show_all (window); gtk_main (); #else gtk_widget_show_all (window); gtk_main (); #endif } static void create_widgets (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkContainer.html // https://developer.gnome.org/gtk3/stable/GtkPaned.html GtkWidget *hbox_columns = BOXH; GtkWidget *vbox_column1 = BOXV, *vbox_combo_entry = BOXV, *hbox_spin = BOXH, *hbox_check_radio = BOXH, *vbox_check = BOXV, *vbox_radio = BOXV; GtkWidget *vbox_column2 = BOXV, *vbox_buttons = BOXV, *hbox_btns1 = BOXH, *hbox_btns2 = BOXH, *hbox_btns3 = BOXH, *hbox_btns4 = BOXH; GtkWidget *vbox_column3 = BOXV, *vbox_progressbar1 = BOXV, *vbox_progressbar2 = BOXV, *hbox_progressbar1 = BOXH, *hbox_progressbar2 = BOXH; GtkWidget *vbox_column4 = BOXV, *vbox_others = BOXV, *hbox_label = BOXH, *hbox_spinner = BOXH; GtkWidget *vpane = PANEV, *hpane1 = PANEH, *hpane2 = PANEH; GtkWidget *hbox_frame1 = BOXH, *hbox_frame2 = BOXH, *hbox_notebook1 = BOXH, *hbox_notebook2 = BOXH; // columns layout add_to (GTK_BOX (root), hbox_columns, TRUE, TRUE, 0, 0); // column 1 add_to (GTK_BOX (hbox_columns), vbox_column1, TRUE, TRUE, 5, 0); add_to (GTK_BOX (vbox_column1), vbox_combo_entry, FALSE, TRUE, 5, 3); create_combos_entries (vbox_combo_entry); add_to (GTK_BOX (vbox_column1), hbox_spin, FALSE, FALSE, 5, 0); create_spinbuttons (hbox_spin); add_to (GTK_BOX (vbox_column1), hbox_check_radio, FALSE, TRUE, 5, 0); add_to (GTK_BOX (hbox_check_radio), vbox_check, TRUE, TRUE, 0, 0); create_checkbuttons (vbox_check); add_to (GTK_BOX (hbox_check_radio), vbox_radio, TRUE, TRUE, 0, 0); create_radiobuttons (vbox_radio); add_to (GTK_BOX (hbox_columns), SEPV, FALSE, FALSE, 0, 0); // column 2 add_to (GTK_BOX (hbox_columns), vbox_column2, TRUE, TRUE, 5, 0); add_to (GTK_BOX (vbox_column2), vbox_buttons, FALSE, TRUE, 5, 3); add_to (GTK_BOX (vbox_column2), hbox_btns1, FALSE, FALSE, 5, 3); add_to (GTK_BOX (vbox_column2), hbox_btns2, FALSE, FALSE, 5, 3); add_to (GTK_BOX (vbox_column2), hbox_btns3, FALSE, FALSE, 5, 3); add_to (GTK_BOX (vbox_column2), hbox_btns4, FALSE, FALSE, 5, 3); create_otherbuttons (vbox_buttons, hbox_btns1, hbox_btns2, hbox_btns3, hbox_btns4); add_to (GTK_BOX (hbox_columns), SEPV, FALSE, FALSE, 0, 0); // column 3 add_to (GTK_BOX (hbox_columns), vbox_column3, TRUE, TRUE, 5, 0); add_to (GTK_BOX (vbox_column3), vbox_progressbar1, FALSE, TRUE, 6, 10); add_to (GTK_BOX (vbox_column3), hbox_progressbar1, FALSE, FALSE, 5, 10); add_to (GTK_BOX (vbox_column3), hbox_progressbar2, FALSE, FALSE, 5, 10); add_to (GTK_BOX (vbox_column3), vbox_progressbar2, FALSE, TRUE, 5, 10); create_progressbars (vbox_progressbar1, hbox_progressbar1, hbox_progressbar2, vbox_progressbar2); add_to (GTK_BOX (hbox_columns), SEPV, FALSE, FALSE, 0, 0); // column 4 add_to (GTK_BOX (hbox_columns), vbox_column4, TRUE, TRUE, 5, 0); add_to (GTK_BOX (vbox_column4), vbox_others, FALSE, TRUE, 5, 3); create_treview (vbox_others); add_to (GTK_BOX (vbox_others), hbox_label, FALSE, TRUE, 5, 0); create_labels (hbox_label); add_to (GTK_BOX (vbox_others), hbox_spinner, FALSE, TRUE, 5, 0); create_spinners (hbox_spinner); create_expander (vbox_others); add_to (GTK_BOX (root), SEPH, FALSE, FALSE, 0, 0); // paned layout add_to (GTK_BOX (root), vpane, TRUE, TRUE, 0, 0); #if GTK_CHECK_VERSION (4,0,0) gtk_paned_set_start_child (GTK_PANED (vpane), hpane1); gtk_paned_set_shrink_start_child (GTK_PANED (vpane), FALSE); #else gtk_paned_pack1 (GTK_PANED (vpane), hpane1, TRUE, FALSE); #endif gtk_box_set_homogeneous (GTK_BOX (hbox_frame1), TRUE); gtk_box_set_spacing (GTK_BOX (hbox_frame1), 3); #if GTK_CHECK_VERSION (3,12,0) gtk_widget_set_size_request (hbox_frame1, -1, 50); gtk_widget_set_margin_start (hbox_frame1, 10); gtk_widget_set_margin_end (hbox_frame1, 10); gtk_widget_set_margin_top (hbox_frame1, 10); gtk_widget_set_margin_bottom (hbox_frame1, 10); #else gtk_widget_set_size_request (hbox_frame1, -1, 70); gtk_container_set_border_width (GTK_CONTAINER (hbox_frame1), 10); #endif #if GTK_CHECK_VERSION (4,0,0) gtk_paned_set_start_child (GTK_PANED (hpane1), hbox_frame1); gtk_paned_set_resize_start_child (GTK_PANED (hpane1), FALSE); gtk_paned_set_shrink_start_child (GTK_PANED (hpane1), FALSE); #else gtk_paned_add1 (GTK_PANED (hpane1), hbox_frame1); #endif gtk_box_set_homogeneous (GTK_BOX (hbox_frame2), TRUE); gtk_box_set_spacing (GTK_BOX (hbox_frame2), 3); #if GTK_CHECK_VERSION (3,12,0) gtk_widget_set_size_request (hbox_frame2, -1, 50); gtk_widget_set_margin_start (hbox_frame2, 10); gtk_widget_set_margin_end (hbox_frame2, 10); gtk_widget_set_margin_top (hbox_frame2, 10); gtk_widget_set_margin_bottom (hbox_frame2, 10); #else gtk_widget_set_size_request (hbox_frame2, -1, 70); gtk_container_set_border_width (GTK_CONTAINER (hbox_frame2), 10); #endif #if GTK_CHECK_VERSION (4,0,0) gtk_paned_set_end_child (GTK_PANED (hpane1), hbox_frame2); #else gtk_paned_add2 (GTK_PANED (hpane1), hbox_frame2); #endif create_frames (hbox_frame1, hbox_frame2); #if GTK_CHECK_VERSION (4,0,0) gtk_paned_set_end_child (GTK_PANED (vpane), hpane2); gtk_paned_set_shrink_end_child (GTK_PANED (vpane), FALSE); #else gtk_paned_pack2 (GTK_PANED (vpane), hpane2, TRUE, FALSE); #endif gtk_box_set_homogeneous (GTK_BOX (hbox_notebook1), TRUE); gtk_box_set_spacing (GTK_BOX (hbox_notebook1), 3); #if GTK_CHECK_VERSION (3,12,0) gtk_widget_set_margin_start (hbox_notebook1, 10); gtk_widget_set_margin_end (hbox_notebook1, 10); gtk_widget_set_margin_top (hbox_notebook1, 10); gtk_widget_set_margin_bottom (hbox_notebook1, 10); #else gtk_container_set_border_width (GTK_CONTAINER (hbox_notebook1), 10); #endif #if GTK_CHECK_VERSION (4,0,0) gtk_paned_set_start_child (GTK_PANED (hpane2), hbox_notebook1); gtk_paned_set_resize_start_child (GTK_PANED (hpane2), FALSE); gtk_paned_set_shrink_start_child (GTK_PANED (hpane2), FALSE); #else gtk_paned_add1 (GTK_PANED (hpane2), hbox_notebook1); #endif gtk_box_set_homogeneous (GTK_BOX (hbox_notebook2), TRUE); gtk_box_set_spacing (GTK_BOX (hbox_notebook2), 3); #if GTK_CHECK_VERSION (3,12,0) gtk_widget_set_margin_start (hbox_notebook2, 10); gtk_widget_set_margin_end (hbox_notebook2, 10); gtk_widget_set_margin_top (hbox_notebook2, 10); gtk_widget_set_margin_bottom (hbox_notebook2, 10); #else gtk_container_set_border_width (GTK_CONTAINER (hbox_notebook2), 10); #endif #if GTK_CHECK_VERSION (4,0,0) gtk_paned_set_end_child (GTK_PANED (hpane2), hbox_notebook2); #else gtk_paned_add2 (GTK_PANED (hpane2), hbox_notebook2); #endif create_notebooks (hbox_notebook1, hbox_notebook2); } static void add_to (GtkBox *box, GtkWidget *widget, gboolean fill, gboolean expand, guint padding, guint spacing) { #if GTK_CHECK_VERSION (4,0,0) // https://developer.gnome.org/gtk4/stable/GtkBox.html // https://developer.gnome.org/gtk4/stable/GtkWidget.html if (fill && expand) { gtk_widget_set_halign (widget, GTK_ALIGN_FILL); gtk_widget_set_valign (widget, GTK_ALIGN_FILL); gtk_widget_set_hexpand (widget, TRUE); gtk_widget_set_vexpand (widget, TRUE); } else if (fill) { gtk_widget_set_halign (widget, GTK_ALIGN_FILL); gtk_widget_set_valign (widget, GTK_ALIGN_START); gtk_widget_set_hexpand (widget, FALSE); gtk_widget_set_vexpand (widget, FALSE); } else { gtk_widget_set_hexpand (widget, FALSE); gtk_widget_set_vexpand (widget, FALSE); } if (GTK_IS_BOX (widget) && (padding > 0)) { gtk_widget_set_margin_start (widget, padding); gtk_widget_set_margin_end (widget, padding); gtk_widget_set_margin_top (widget, padding); gtk_widget_set_margin_bottom (widget, padding); } if (GTK_IS_BOX (widget) && (spacing > 0)) { gtk_box_set_spacing (GTK_BOX (widget), spacing); } gtk_box_append (box, widget); #else // https://developer.gnome.org/gtk3/stable/GtkBox.html // https://developer.gnome.org/gtk3/stable/GtkWidget.html if (GTK_IS_INFO_BAR (box)) box = GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (box))); if (GTK_IS_CONTAINER (widget) && (padding > 0)) gtk_container_set_border_width (GTK_CONTAINER (widget), padding); if (GTK_IS_BOX (widget) && (spacing > 0)) gtk_box_set_spacing (GTK_BOX (widget), spacing); gtk_box_pack_start (box, widget, fill, expand, 0); #endif #if GTK_CHECK_VERSION (3,20,0) // https://developer.gnome.org/gtk3/stable/GtkStyleContext.html if (!GTK_IS_BOX (widget)) { GtkStyleContext *style = gtk_widget_get_style_context (widget); gtk_widget_set_tooltip_text (widget, gtk_style_context_to_string (style, GTK_STYLE_CONTEXT_PRINT_RECURSE)); } #endif } static void create_toolbar (GtkWidget *root) { #if GTK_CHECK_VERSION (4,0,0) // https://developer.gnome.org/gtk4/stable/GtkButton.html // https://developer.gnome.org/gtk4/stable/GtkToggleButton.html // https://developer.gnome.org/gtk4/stable/GtkWidget.html GtkWidget *icon1, *icon2, *icon3, *icon4, *icon5, *icon6, *icon7; icon1 = gtk_button_new_from_icon_name ("gtk-open"); gtk_style_context_add_class (gtk_widget_get_style_context (icon1), "flat"); g_signal_connect (icon1, "clicked", G_CALLBACK (dialog_open), NULL); icon2 = gtk_button_new_from_icon_name ("gtk-open"); gtk_widget_set_sensitive (icon2, FALSE); icon3 = gtk_button_new_from_icon_name ("gtk-save"); g_signal_connect (icon3, "clicked", G_CALLBACK (dialog_save), NULL); icon4 = gtk_button_new_from_icon_name ("gtk-refresh"); g_signal_connect_swapped (icon4, "clicked", G_CALLBACK (update_theme), "refresh"); icon5 = gtk_toggle_button_new (); gtk_button_set_icon_name (GTK_BUTTON (icon5), "gtk-add"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (icon5), TRUE); g_signal_connect (icon5, "clicked", G_CALLBACK (update_widgets), NULL); icon6 = gtk_toggle_button_new (); gtk_button_set_icon_name (GTK_BUTTON (icon6), "gtk-remove"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (icon6), FALSE); g_signal_connect (icon6, "clicked", G_CALLBACK (update_direction), NULL); icon7 = gtk_toggle_button_new (); gtk_button_set_icon_name (GTK_BUTTON (icon7), "gtk-close"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (icon7), FALSE); gtk_widget_set_sensitive (icon7, FALSE); add_to (GTK_BOX (root), icon1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), icon2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), SEPV, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), icon3, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), icon4, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), SEPV, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), icon5, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), icon6, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), icon7, FALSE, FALSE, 0, 0); #else // https://developer.gnome.org/gtk3/stable/GtkToolbar.html // https://developer.gnome.org/gtk3/stable/GtkMenuToolButton.html // https://developer.gnome.org/gtk3/stable/GtkToolButton.html // https://developer.gnome.org/gtk3/stable/GtkSeparatorToolItem.html // https://developer.gnome.org/gtk3/stable/GtkToggleToolButton.html // https://developer.gnome.org/gtk3/stable/GtkMenu.html // https://developer.gnome.org/gtk3/stable/GtkMenuItem.html // https://developer.gnome.org/gtk3/stable/GtkWidget.html GtkWidget *icon1, *icon2, *icon3, *icon4, *icon5, *icon6, *icon7, *menu; icon1 = GTK_WIDGET (gtk_menu_tool_button_new (NULL, NULL)); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (icon1), "gtk-open"); g_signal_connect (icon1, "clicked", G_CALLBACK (dialog_open), NULL); menu = gtk_menu_new (); create_menuitem (menu, "Menu item", FALSE, NULL, NULL, NULL); gtk_widget_show_all (menu); // very important gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (icon1), menu); icon2 = GTK_WIDGET (gtk_menu_tool_button_new (NULL, NULL)); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (icon2), "gtk-open"); gtk_widget_set_sensitive (icon2, FALSE); icon3 = GTK_WIDGET (gtk_tool_button_new (NULL, NULL)); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (icon3), "gtk-save"); g_signal_connect (icon3, "clicked", G_CALLBACK (dialog_save), NULL); icon4 = GTK_WIDGET (gtk_tool_button_new (NULL, NULL)); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (icon4), "gtk-refresh"); g_signal_connect_swapped (icon4, "clicked", G_CALLBACK (update_theme), "refresh"); icon5 = GTK_WIDGET (gtk_toggle_tool_button_new ()); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (icon5), "gtk-add"); gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (icon5), TRUE); g_signal_connect (icon5, "clicked", G_CALLBACK (update_widgets), NULL); icon6 = GTK_WIDGET (gtk_toggle_tool_button_new ()); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (icon6), "gtk-remove"); gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (icon6), FALSE); g_signal_connect (icon6, "clicked", G_CALLBACK (update_direction), NULL); icon7 = GTK_WIDGET (gtk_toggle_tool_button_new ()); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (icon7), "gtk-close"); gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (icon7), FALSE); gtk_widget_set_sensitive (icon7, FALSE); gtk_toolbar_insert (GTK_TOOLBAR (root), GTK_TOOL_ITEM (icon1), -1); gtk_toolbar_insert (GTK_TOOLBAR (root), GTK_TOOL_ITEM (icon2), -1); gtk_toolbar_insert (GTK_TOOLBAR (root), gtk_separator_tool_item_new (), -1); gtk_toolbar_insert (GTK_TOOLBAR (root), GTK_TOOL_ITEM (icon3), -1); gtk_toolbar_insert (GTK_TOOLBAR (root), GTK_TOOL_ITEM (icon4), -1); gtk_toolbar_insert (GTK_TOOLBAR (root), gtk_separator_tool_item_new (), -1); gtk_toolbar_insert (GTK_TOOLBAR (root), GTK_TOOL_ITEM (icon5), -1); gtk_toolbar_insert (GTK_TOOLBAR (root), GTK_TOOL_ITEM (icon6), -1); gtk_toolbar_insert (GTK_TOOLBAR (root), GTK_TOOL_ITEM (icon7), -1); #endif } static void create_combos_entries (GtkWidget *root) { GtkWidget *combo1, *combo2, *combo3, *combo4, *entry1, *entry2, *entry3, *entry4; // https://developer.gnome.org/gtk3/stable/GtkComboBox.html // https://developer.gnome.org/gtk3/stable/GtkComboBoxText.html combo1 = gtk_combo_box_text_new_with_entry (); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo1), "Combo box entry 1"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo1), "Combo box entry 2"); gtk_combo_box_set_active (GTK_COMBO_BOX (combo1), 0); combo2 = gtk_combo_box_text_new_with_entry (); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo2), "Combo box entry 1"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo2), "Combo box entry 2"); gtk_combo_box_set_active (GTK_COMBO_BOX (combo2), 0); gtk_widget_set_sensitive (combo2, FALSE); combo3 = gtk_combo_box_text_new (); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo3), "Combo box 1"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo3), "Combo box 2"); gtk_combo_box_set_active (GTK_COMBO_BOX (combo3), 0); combo4 = gtk_combo_box_text_new (); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo4), "Combo box 1"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo4), "Combo box 2"); gtk_combo_box_set_active (GTK_COMBO_BOX (combo4), 0); gtk_widget_set_sensitive (combo4, FALSE); // https://developer.gnome.org/gtk3/stable/GtkEntry.html // https://developer.gnome.org/gtk4/stable/GtkEditable.html entry1 = gtk_entry_new (); #if GTK_CHECK_VERSION (4,0,0) gtk_entry_set_placeholder_text (GTK_ENTRY (entry1), "Placeholder"); gtk_editable_set_text (GTK_EDITABLE (entry1), "Entry"); #elif GTK_CHECK_VERSION (3,2,0) gtk_entry_set_text (GTK_ENTRY (entry1), "Entry"); gtk_entry_set_placeholder_text (GTK_ENTRY (entry1), "Placeholder"); #else gtk_entry_set_text (GTK_ENTRY (entry1), "Entry"); #endif entry2 = gtk_entry_new (); #if GTK_CHECK_VERSION (4,0,0) gtk_editable_set_text (GTK_EDITABLE (entry2), "Entry"); #else gtk_entry_set_text (GTK_ENTRY (entry2), "Entry"); #endif gtk_widget_set_sensitive (entry2, FALSE); entry3 = gtk_entry_new (); #if GTK_CHECK_VERSION (4,0,0) gtk_entry_set_placeholder_text (GTK_ENTRY (entry3), "Placeholder"); gtk_editable_set_text (GTK_EDITABLE (entry3), "Entry"); #elif GTK_CHECK_VERSION (3,2,0) gtk_entry_set_text (GTK_ENTRY (entry3), "Entry"); gtk_entry_set_placeholder_text (GTK_ENTRY (entry3), "Placeholder"); #else gtk_entry_set_text (GTK_ENTRY (entry3), "Entry"); #endif gtk_entry_set_icon_from_icon_name (GTK_ENTRY (entry3), GTK_ENTRY_ICON_PRIMARY, "gtk-clear"); gtk_entry_set_icon_from_icon_name (GTK_ENTRY (entry3), GTK_ENTRY_ICON_SECONDARY, "gtk-find"); entry4 = gtk_entry_new (); #if GTK_CHECK_VERSION (4,0,0) gtk_editable_set_text (GTK_EDITABLE (entry4), "Entry"); #else gtk_entry_set_text (GTK_ENTRY (entry4), "Entry"); #endif gtk_entry_set_icon_from_icon_name (GTK_ENTRY (entry4), GTK_ENTRY_ICON_PRIMARY, "gtk-clear"); gtk_entry_set_icon_from_icon_name (GTK_ENTRY (entry4), GTK_ENTRY_ICON_SECONDARY, "gtk-find"); gtk_widget_set_sensitive (entry4, FALSE); // layout add_to (GTK_BOX (root), combo1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), combo2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), combo3, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), combo4, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), entry1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), entry2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), entry3, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), entry4, FALSE, FALSE, 0, 0); } static void create_spinbuttons (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkSpinButton.html GtkWidget *spinbutton1, *spinbutton2; spinbutton1 = gtk_spin_button_new_with_range (-100, 100, 1); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spinbutton1), 1); spinbutton2 = gtk_spin_button_new_with_range (-100, 100, 1); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spinbutton2), 1); gtk_widget_set_sensitive (spinbutton2, FALSE); add_to (GTK_BOX (root), spinbutton1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), BOXH, TRUE, TRUE, 0, 0); // empty space add_to (GTK_BOX (root), spinbutton2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), BOXH, TRUE, TRUE, 0, 0); // empty space } static void create_checkbuttons (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkCheckButton.html // https://developer.gnome.org/gtk4/stable/GtkCheckButton.html GtkWidget *checkbutton1, *checkbutton2, *checkbutton3, *checkbutton4, *checkbutton5, *checkbutton6; #if GTK_CHECK_VERSION (4,0,0) checkbutton1 = gtk_check_button_new_with_label ("Check btn 1"); checkbutton2 = gtk_check_button_new_with_label ("Check btn 2"); gtk_check_button_set_active (GTK_CHECK_BUTTON (checkbutton2), TRUE); checkbutton3 = gtk_check_button_new_with_label ("Check btn 3"); gtk_check_button_set_inconsistent (GTK_CHECK_BUTTON (checkbutton3), TRUE); checkbutton4 = gtk_check_button_new_with_label ("Check btn 4"); gtk_widget_set_sensitive (checkbutton4, FALSE); checkbutton5 = gtk_check_button_new_with_label ("Check btn 5"); gtk_check_button_set_active (GTK_CHECK_BUTTON (checkbutton5), TRUE); gtk_widget_set_sensitive (checkbutton5, FALSE); checkbutton6 = gtk_check_button_new_with_label ("Check btn 6"); gtk_check_button_set_inconsistent (GTK_CHECK_BUTTON (checkbutton6), TRUE); gtk_widget_set_sensitive (checkbutton6, FALSE); #else checkbutton1 = gtk_check_button_new_with_label ("Check btn 1"); checkbutton2 = gtk_check_button_new_with_label ("Check btn 2"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton2), TRUE); checkbutton3 = gtk_check_button_new_with_label ("Check btn 3"); gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (checkbutton3), TRUE); checkbutton4 = gtk_check_button_new_with_label ("Check btn 4"); gtk_widget_set_sensitive (checkbutton4, FALSE); checkbutton5 = gtk_check_button_new_with_label ("Check btn 5"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton5), TRUE); gtk_widget_set_sensitive (checkbutton5, FALSE); checkbutton6 = gtk_check_button_new_with_label ("Check btn 6"); gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (checkbutton6), TRUE); gtk_widget_set_sensitive (checkbutton6, FALSE); #endif add_to (GTK_BOX (root), checkbutton1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), checkbutton2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), checkbutton3, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), checkbutton4, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), checkbutton5, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), checkbutton6, FALSE, FALSE, 0, 0); } static void create_radiobuttons (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkRadioButton.html // https://developer.gnome.org/gtk4/stable/GtkCheckButton.html GtkWidget *radiobutton1, *radiobutton2, *radiobutton3, *radiobutton4, *radiobutton5, *radiobutton6; #if GTK_CHECK_VERSION (4,0,0) radiobutton1 = gtk_check_button_new_with_label ("Radio btn 1"); gtk_check_button_set_group (GTK_CHECK_BUTTON (radiobutton1), NULL); radiobutton2 = gtk_check_button_new_with_label ("Radio btn 2"); gtk_check_button_set_group (GTK_CHECK_BUTTON (radiobutton2), GTK_CHECK_BUTTON (radiobutton1)); gtk_check_button_set_active (GTK_CHECK_BUTTON (radiobutton2), TRUE); radiobutton3 = gtk_check_button_new_with_label ("Radio btn 3"); gtk_check_button_set_group (GTK_CHECK_BUTTON (radiobutton3), GTK_CHECK_BUTTON (radiobutton1)); gtk_check_button_set_inconsistent (GTK_CHECK_BUTTON (radiobutton3), TRUE); radiobutton4 = gtk_check_button_new_with_label ("Radio btn 4"); gtk_check_button_set_group (GTK_CHECK_BUTTON (radiobutton4), NULL); gtk_widget_set_sensitive (radiobutton4, FALSE); radiobutton5 = gtk_check_button_new_with_label ("Radio btn 5"); gtk_check_button_set_group (GTK_CHECK_BUTTON (radiobutton5), GTK_CHECK_BUTTON (radiobutton4)); gtk_check_button_set_active (GTK_CHECK_BUTTON (radiobutton5), TRUE); gtk_widget_set_sensitive (radiobutton5, FALSE); radiobutton6 = gtk_check_button_new_with_label ("Radio btn 6"); gtk_check_button_set_group (GTK_CHECK_BUTTON (radiobutton6), GTK_CHECK_BUTTON (radiobutton4)); gtk_check_button_set_inconsistent (GTK_CHECK_BUTTON (radiobutton6), TRUE); gtk_widget_set_sensitive (radiobutton6, FALSE); #else radiobutton1 = gtk_radio_button_new_with_label (NULL, "Radio btn 1"); radiobutton2 = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton1)), "Radio btn 2"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radiobutton2), TRUE); radiobutton3 = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton1)), "Radio btn 3"); gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (radiobutton3), TRUE); radiobutton4 = gtk_radio_button_new_with_label (NULL, "Radio btn 4"); gtk_widget_set_sensitive (radiobutton4, FALSE); radiobutton5 = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton4)), "Radio btn 5"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radiobutton5), TRUE); gtk_widget_set_sensitive (radiobutton5, FALSE); radiobutton6 = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton4)), "Radio btn 6"); gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (radiobutton6), TRUE); gtk_widget_set_sensitive (radiobutton6, FALSE); #endif add_to (GTK_BOX (root), radiobutton1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), radiobutton2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), radiobutton3, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), radiobutton4, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), radiobutton5, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), radiobutton6, FALSE, FALSE, 0, 0); } static void create_otherbuttons (GtkWidget *root1, GtkWidget *root2, GtkWidget *root3, GtkWidget *root4, GtkWidget *root5) { GtkWidget *button1, *button2, *button3, *button4, *button5, *button6, *button7, *button8, *button9, *button10, *button11, *button12, *button13, *button14; // https://developer.gnome.org/gtk3/stable/GtkButton.html button1 = gtk_button_new_with_label ("Button 1"); button2 = gtk_button_new_with_label ("Button 2"); gtk_widget_set_sensitive (button2, FALSE); // https://developer.gnome.org/gtk3/stable/GtkToggleButton.html button3 = gtk_toggle_button_new_with_label ("Button 3"); button4 = gtk_toggle_button_new_with_label ("Button 4"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button3), TRUE); gtk_widget_set_sensitive (button4, FALSE); // https://developer.gnome.org/gtk3/stable/GtkColorButton.html #if GTK_CHECK_VERSION (3,0,0) GdkRGBA color; gdk_rgba_parse (&color, "#7796ba"); button5 = gtk_color_button_new_with_rgba (&color); #else GdkColor color; gdk_color_parse ("#7796ba", &color); button5 = gtk_color_button_new_with_color (&color); #endif // https://developer.gnome.org/gtk3/stable/GtkFontButton.html button6 = gtk_font_button_new (); gtk_widget_set_size_request (button6, 186, -1); // https://developer.gnome.org/gtk3/stable/GtkFileChooserButton.html // https://developer.gnome.org/gtk4/stable/ch41s02.html#id-1.7.4.4.85 #if GTK_CHECK_VERSION (4,0,0) button7 = gtk_button_new_with_label ("Button 7"); button8 = gtk_button_new_with_label ("Button 8"); #else button7 = gtk_file_chooser_button_new ("GtkFileChooserDialog", GTK_FILE_CHOOSER_ACTION_OPEN); button8 = gtk_file_chooser_button_new ("GtkFileChooserDialog", GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); #endif // https://developer.gnome.org/gtk2/stable/GtkOptionMenu.html // https://developer.gnome.org/gtk3/stable/GtkSwitch.html #if GTK_CHECK_VERSION (3,0,0) button9 = gtk_switch_new (); gtk_switch_set_active (GTK_SWITCH (button9), TRUE); button10 = gtk_switch_new (); gtk_switch_set_active (GTK_SWITCH (button10), TRUE); gtk_widget_set_sensitive (button10, FALSE); button11 = gtk_switch_new (); gtk_switch_set_active (GTK_SWITCH (button11), FALSE); button12 = gtk_switch_new (); gtk_switch_set_active (GTK_SWITCH (button12), FALSE); gtk_widget_set_sensitive (button12, FALSE); #else GtkWidget *combomenu1, *combomenu2, *combomenu3, *combomenu4; combomenu1 = gtk_menu_new (); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu1), gtk_menu_item_new_with_label ("Option 1")); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu1), gtk_menu_item_new_with_label ("Option 2")); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu1), gtk_menu_item_new_with_label ("Option 3")); combomenu2 = gtk_menu_new (); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu2), gtk_menu_item_new_with_label ("Option 1")); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu2), gtk_menu_item_new_with_label ("Option 2")); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu2), gtk_menu_item_new_with_label ("Option 3")); combomenu3 = gtk_menu_new (); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu3), gtk_menu_item_new_with_label ("Option 1")); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu3), gtk_menu_item_new_with_label ("Option 2")); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu3), gtk_menu_item_new_with_label ("Option 3")); combomenu4 = gtk_menu_new (); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu4), gtk_menu_item_new_with_label ("Option 1")); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu4), gtk_menu_item_new_with_label ("Option 2")); gtk_menu_shell_append (GTK_MENU_SHELL (combomenu4), gtk_menu_item_new_with_label ("Option 3")); button9 = gtk_option_menu_new (); gtk_option_menu_set_menu (GTK_OPTION_MENU (button9), combomenu1); button10 = gtk_option_menu_new (); gtk_option_menu_set_menu (GTK_OPTION_MENU (button10), combomenu2); gtk_widget_set_sensitive (button10, FALSE); button11 = gtk_option_menu_new (); gtk_option_menu_set_menu (GTK_OPTION_MENU (button11), combomenu3); button12 = gtk_option_menu_new (); gtk_option_menu_set_menu (GTK_OPTION_MENU (button12), combomenu4); gtk_widget_set_sensitive (button12, FALSE); #endif // https://developer.gnome.org/gtk3/stable/GtkLinkButton.html button13 = gtk_link_button_new_with_label ("https://github.com/luigifab/awf-extended", "Link button"); button14 = gtk_link_button_new_with_label ("https://github.com/luigifab/awf-extended", "Link button"); gtk_widget_set_sensitive (button14, FALSE); // https://developer.gnome.org/gtk3/stable/GtkVolumeButton.html // https://developer.gnome.org/gtk3/stable/GtkScaleButton.html volume1 = gtk_volume_button_new (); gtk_scale_button_set_value (GTK_SCALE_BUTTON (volume1), 0.5); #if !GTK_CHECK_VERSION (3,12,0) g_object_set ((GObject*) volume1, "size", GTK_ICON_SIZE_BUTTON, NULL); // @todo not working with ubuntu #endif volume2 = gtk_volume_button_new (); gtk_scale_button_set_value (GTK_SCALE_BUTTON (volume2), 0); gtk_widget_set_sensitive (volume2, FALSE); #if !GTK_CHECK_VERSION (3,12,0) g_object_set ((GObject*) volume2, "size", GTK_ICON_SIZE_BUTTON, NULL); // @todo not working with ubuntu #endif // layout add_to (GTK_BOX (root1), button1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root1), button2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root1), button3, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root1), button4, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root1), button5, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root1), button6, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root1), button7, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root1), button8, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root2), button9, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root2), button10, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root3), button11, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root3), button12, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root4), button13, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root4), button14, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root5), volume1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root5), volume2, FALSE, FALSE, 0, 0); } static void create_progressbars (GtkWidget *root1, GtkWidget *root2, GtkWidget *root3, GtkWidget *root4) { // https://developer.gnome.org/gtk3/stable/GtkProgressBar.html // https://developer.gnome.org/gtk3/stable/GtkLevelBar.html // https://developer.gnome.org/gtk3/stable/GtkScale.html // progress bars #if GTK_CHECK_VERSION (3,0,0) progressbar1 = gtk_progress_bar_new (); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar1), 0.5); gtk_orientable_set_orientation (GTK_ORIENTABLE (progressbar1), GTK_ORIENTATION_HORIZONTAL); #else progressbar1 = gtk_progress_bar_new (); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar1), 0.5); gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (progressbar1), GTK_PROGRESS_LEFT_TO_RIGHT); #endif #if GTK_CHECK_VERSION (3,0,0) progressbar2 = gtk_progress_bar_new (); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar2), 0.5); gtk_progress_bar_set_inverted (GTK_PROGRESS_BAR (progressbar2), TRUE); gtk_orientable_set_orientation (GTK_ORIENTABLE (progressbar2), GTK_ORIENTATION_HORIZONTAL); #else progressbar2 = gtk_progress_bar_new (); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar2), 0.5); gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (progressbar2), GTK_PROGRESS_RIGHT_TO_LEFT); #endif #if GTK_CHECK_VERSION (3,0,0) progressbar3 = gtk_progress_bar_new (); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar3), 0.5); gtk_orientable_set_orientation (GTK_ORIENTABLE (progressbar3), GTK_ORIENTATION_VERTICAL); gtk_widget_set_size_request (progressbar3, -1, 100); #else progressbar3 = gtk_progress_bar_new (); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar3), 0.5); gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (progressbar3), GTK_PROGRESS_TOP_TO_BOTTOM); gtk_widget_set_size_request (progressbar3, -1, 100); #endif #if GTK_CHECK_VERSION (3,0,0) progressbar4 = gtk_progress_bar_new (); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar4), 0.5); gtk_progress_bar_set_inverted (GTK_PROGRESS_BAR (progressbar4), TRUE); gtk_orientable_set_orientation (GTK_ORIENTABLE (progressbar4), GTK_ORIENTATION_VERTICAL); #else progressbar4 = gtk_progress_bar_new (); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progressbar4), 0.5); gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (progressbar4), GTK_PROGRESS_BOTTOM_TO_TOP); #endif // scales scale1 = create_horizontal_scale (50, FALSE, FALSE); g_signal_connect (scale1, "value_changed", G_CALLBACK (update_values), NULL); scale2 = create_horizontal_scale (50, FALSE, TRUE); g_signal_connect (scale2, "value_changed", G_CALLBACK (update_values), NULL); scale3 = create_vertical_scale (50, FALSE, FALSE); g_signal_connect (scale3, "value_changed", G_CALLBACK (update_values), NULL); scale4 = create_vertical_scale (50, FALSE, TRUE); g_signal_connect (scale4, "value_changed", G_CALLBACK (update_values), NULL); scale5 = create_vertical_scale (50, FALSE, FALSE); gtk_scale_add_mark (GTK_SCALE (scale5), 25, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale5), 50, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale5), 75, GTK_POS_LEFT, NULL); g_signal_connect (scale5, "value_changed", G_CALLBACK (update_values), NULL); scale6 = create_vertical_scale (50, FALSE, TRUE); gtk_scale_add_mark (GTK_SCALE (scale6), 25, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale6), 50, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale6), 75, GTK_POS_RIGHT, NULL); g_signal_connect (scale6, "value_changed", G_CALLBACK (update_values), NULL); #if GTK_CHECK_VERSION (3,6,0) levelbar1 = gtk_level_bar_new (); gtk_level_bar_set_mode (GTK_LEVEL_BAR (levelbar1), GTK_LEVEL_BAR_MODE_CONTINUOUS); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar1), 0.5); gtk_orientable_set_orientation (GTK_ORIENTABLE (levelbar1), GTK_ORIENTATION_VERTICAL); levelbar2 = gtk_level_bar_new (); gtk_level_bar_set_mode (GTK_LEVEL_BAR (levelbar2), GTK_LEVEL_BAR_MODE_CONTINUOUS); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar2), 0.5); gtk_orientable_set_orientation (GTK_ORIENTABLE (levelbar2), GTK_ORIENTATION_VERTICAL); levelbar3 = gtk_level_bar_new_for_interval (0, 5); gtk_level_bar_set_mode (GTK_LEVEL_BAR (levelbar3), GTK_LEVEL_BAR_MODE_DISCRETE); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar3), 2); // GTK 3.20.9 not work gtk_orientable_set_orientation (GTK_ORIENTABLE (levelbar3), GTK_ORIENTATION_VERTICAL); levelbar4 = gtk_level_bar_new_for_interval (0, 5); gtk_level_bar_set_mode (GTK_LEVEL_BAR (levelbar4), GTK_LEVEL_BAR_MODE_DISCRETE); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar4), 2); // GTK 3.20.9 not work gtk_orientable_set_orientation (GTK_ORIENTABLE (levelbar4), GTK_ORIENTATION_VERTICAL); levelbar5 = gtk_level_bar_new (); gtk_level_bar_set_mode (GTK_LEVEL_BAR (levelbar5), GTK_LEVEL_BAR_MODE_CONTINUOUS); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar5), 0.5); levelbar6 = gtk_level_bar_new (); gtk_level_bar_set_mode (GTK_LEVEL_BAR (levelbar6), GTK_LEVEL_BAR_MODE_CONTINUOUS); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar6), 0.5); levelbar7 = gtk_level_bar_new_for_interval (0, 5); gtk_level_bar_set_mode (GTK_LEVEL_BAR (levelbar7), GTK_LEVEL_BAR_MODE_DISCRETE); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar7), 2); // GTK 3.20.9 not work levelbar8 = gtk_level_bar_new_for_interval (0, 5); gtk_level_bar_set_mode (GTK_LEVEL_BAR (levelbar8), GTK_LEVEL_BAR_MODE_DISCRETE); gtk_level_bar_set_value (GTK_LEVEL_BAR (levelbar8), 2); // GTK 3.20.9 not work #if GTK_CHECK_VERSION (3,8,0) gtk_level_bar_set_inverted (GTK_LEVEL_BAR (levelbar2), TRUE); gtk_level_bar_set_inverted (GTK_LEVEL_BAR (levelbar4), TRUE); gtk_level_bar_set_inverted (GTK_LEVEL_BAR (levelbar6), TRUE); gtk_level_bar_set_inverted (GTK_LEVEL_BAR (levelbar8), TRUE); #endif #endif // layout add_to (GTK_BOX (root1), progressbar1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root1), progressbar2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root1), scale1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root1), scale2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root2), progressbar3, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root2), progressbar4, FALSE, FALSE, 0, 0); #if GTK_CHECK_VERSION (3,6,0) add_to (GTK_BOX (root2), levelbar1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root2), levelbar2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root2), levelbar3, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root2), levelbar4, FALSE, FALSE, 0, 0); #endif add_to (GTK_BOX (root3), scale3, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root3), scale5, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root3), scale6, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root3), scale4, FALSE, FALSE, 0, 0); #if GTK_CHECK_VERSION (3,6,0) add_to (GTK_BOX (root4), levelbar5, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root4), levelbar6, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root4), levelbar7, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root4), levelbar8, FALSE, FALSE, 0, 0); #endif } static void create_labels (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkLabel.html GtkWidget *label1, *label2; label1 = gtk_label_new ("Label 1"); label2 = gtk_label_new ("Label 2"); gtk_widget_set_sensitive (label2, FALSE); add_to (GTK_BOX (root), label1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), BOXH, TRUE, TRUE, 0, 0); // empty space add_to (GTK_BOX (root), label2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), BOXH, TRUE, TRUE, 0, 0); // empty space } static void create_spinners (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkSpinner.html GtkWidget *spinner1, *spinner2; spinner1 = gtk_spinner_new (); gtk_widget_set_size_request (spinner1, 20, 20); if (opt_startspinner) gtk_spinner_start (GTK_SPINNER (spinner1)); spinner2 = gtk_spinner_new (); gtk_widget_set_size_request (spinner2, 20, 20); gtk_widget_set_sensitive (spinner2, FALSE); if (opt_startspinner) gtk_spinner_start (GTK_SPINNER (spinner2)); add_to (GTK_BOX (root), spinner1, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), BOXH, TRUE, TRUE, 0, 0); // empty space add_to (GTK_BOX (root), spinner2, FALSE, FALSE, 0, 0); add_to (GTK_BOX (root), BOXH, TRUE, TRUE, 0, 0); // empty space } static void create_expander (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkExpander.html // https://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html // https://developer.gnome.org/gtk3/stable/GtkTextView.html // https://developer.gnome.org/gtk4/stable/GtkExpander.html // https://developer.gnome.org/gtk4/stable/GtkScrolledWindow.html GtkWidget *expander, *scrolled_window, *tv; GtkTextBuffer *buffer; expander = gtk_expander_new (_app("More...")); gtk_expander_set_expanded (GTK_EXPANDER (expander), TRUE); //#if GTK_CHECK_VERSION (3,20,0) && !GTK_CHECK_VERSION (4,0,0) // how to set label width to 100% ? //#endif #if GTK_CHECK_VERSION (4,0,0) scrolled_window = gtk_scrolled_window_new (); gchar *config = getenv ("GTK_OVERLAY_SCROLLING"); if (strcmp (config, "0") == 0) gtk_scrolled_window_set_overlay_scrolling (GTK_SCROLLED_WINDOW (scrolled_window), FALSE); #else scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_IN); #endif gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_widget_set_size_request (scrolled_window, -1, 120); tv = gtk_text_view_new (); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (tv), GTK_WRAP_WORD); gtk_text_buffer_set_text (GTK_TEXT_BUFFER (buffer), g_strdup_printf ("%s ~ %s", _app("A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme."), _app("A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme.")), -1); #if GTK_CHECK_VERSION (4,0,0) gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled_window), tv); gtk_expander_set_child (GTK_EXPANDER (expander), scrolled_window); #else gtk_container_add (GTK_CONTAINER (scrolled_window), tv); gtk_container_add (GTK_CONTAINER (expander), scrolled_window); #endif add_to (GTK_BOX (root), expander, FALSE, FALSE, 0, 0); } static void create_frames (GtkWidget *root1, GtkWidget *root2) { // https://developer.gnome.org/gtk3/stable/GtkFrame.html // https://developer.gnome.org/gtk4/stable/GtkFrame.html GtkWidget *frame1, *frame2, *frame3, *frame4; #if GTK_CHECK_VERSION (4,0,0) frame1 = gtk_frame_new ("Frame (shadow in)"); gtk_style_context_add_class (gtk_widget_get_style_context (frame1), "border-inset"); frame2 = gtk_frame_new ("Frame (shadow out)"); gtk_style_context_add_class (gtk_widget_get_style_context (frame2), "border-outset"); frame3 = gtk_frame_new ("Frame (shadow etched in)"); gtk_style_context_add_class (gtk_widget_get_style_context (frame3), "border-groove"); frame4 = gtk_frame_new ("Frame (shadow etched out)"); gtk_style_context_add_class (gtk_widget_get_style_context (frame4), "border-ridge"); #elif GTK_CHECK_VERSION (3,0,0) frame1 = gtk_frame_new ("Frame (shadow in)"); gtk_style_context_add_class (gtk_widget_get_style_context (frame1), "border-inset"); gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN); frame2 = gtk_frame_new ("Frame (shadow out)"); gtk_style_context_add_class (gtk_widget_get_style_context (frame2), "border-outset"); gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_OUT); frame3 = gtk_frame_new ("Frame (shadow etched in)"); gtk_style_context_add_class (gtk_widget_get_style_context (frame3), "border-groove"); gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_ETCHED_IN); frame4 = gtk_frame_new ("Frame (shadow etched out)"); gtk_style_context_add_class (gtk_widget_get_style_context (frame4), "border-ridge"); gtk_frame_set_shadow_type (GTK_FRAME (frame4), GTK_SHADOW_ETCHED_OUT); #else frame1 = gtk_frame_new ("Frame (shadow in)"); gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN); frame2 = gtk_frame_new ("Frame (shadow out)"); gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_OUT); frame3 = gtk_frame_new ("Frame (shadow etched in)"); gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_ETCHED_IN); frame4 = gtk_frame_new ("Frame (shadow etched out)"); gtk_frame_set_shadow_type (GTK_FRAME (frame4), GTK_SHADOW_ETCHED_OUT); #endif add_to (GTK_BOX (root1), frame1, TRUE, TRUE, 0, 0); add_to (GTK_BOX (root1), frame2, TRUE, TRUE, 0, 0); add_to (GTK_BOX (root2), frame3, TRUE, TRUE, 0, 0); add_to (GTK_BOX (root2), frame4, TRUE, TRUE, 0, 0); } static void create_notebooks (GtkWidget *root1, GtkWidget *root2) { // https://developer.gnome.org/gtk3/stable/GtkNotebook.html // https://developer.gnome.org/gtk3/stable/GtkEventControllerScroll.html notebook1 = gtk_notebook_new (); notebook2 = gtk_notebook_new (); notebook3 = gtk_notebook_new (); notebook4 = gtk_notebook_new (); #if GTK_CHECK_VERSION (3,4,0) && !GTK_CHECK_VERSION (4,0,0) // gtk-scroll-tabs for GTK 3.4 to 3.24 gtk_widget_add_events (notebook1, GDK_SCROLL_MASK); g_signal_connect (notebook1, "scroll-event", G_CALLBACK (gtk34_scrolltabs), NULL); gtk_widget_add_events (notebook2, GDK_SCROLL_MASK); g_signal_connect (notebook2, "scroll-event", G_CALLBACK (gtk34_scrolltabs), NULL); gtk_widget_add_events (notebook3, GDK_SCROLL_MASK); g_signal_connect (notebook3, "scroll-event", G_CALLBACK (gtk34_scrolltabs), NULL); gtk_widget_add_events (notebook4, GDK_SCROLL_MASK); g_signal_connect (notebook4, "scroll-event", G_CALLBACK (gtk34_scrolltabs), NULL); #endif gtk_notebook_popup_enable (GTK_NOTEBOOK (notebook1)); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook1), FALSE); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook1), GTK_POS_TOP); create_notebook_tab (notebook1, "Tab1"); create_notebook_tab (notebook1, "Tab2"); create_notebook_tab (notebook1, "Tab3!"); create_notebook_tab (notebook1, "Tab4"); gtk_notebook_popup_enable (GTK_NOTEBOOK (notebook2)); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook2), FALSE); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook2), GTK_POS_BOTTOM); create_notebook_tab (notebook2, "Tab1"); create_notebook_tab (notebook2, "Tab2"); create_notebook_tab (notebook2, "Tab3!"); create_notebook_tab (notebook2, "Tab4"); gtk_notebook_popup_enable (GTK_NOTEBOOK (notebook3)); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook3), FALSE); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook3), GTK_POS_LEFT); create_notebook_tab (notebook3, "Tab1"); create_notebook_tab (notebook3, "Tab2"); create_notebook_tab (notebook3, "Tab3!"); create_notebook_tab (notebook3, "Tab4"); gtk_notebook_popup_enable (GTK_NOTEBOOK (notebook4)); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook4), FALSE); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook4), GTK_POS_RIGHT); create_notebook_tab (notebook4, "Tab1"); create_notebook_tab (notebook4, "Tab2"); create_notebook_tab (notebook4, "Tab3!"); create_notebook_tab (notebook4, "Tab4"); add_to (GTK_BOX (root1), notebook1, TRUE, TRUE, 0, 0); add_to (GTK_BOX (root1), notebook2, TRUE, TRUE, 0, 0); add_to (GTK_BOX (root2), notebook3, TRUE, TRUE, 0, 0); add_to (GTK_BOX (root2), notebook4, TRUE, TRUE, 0, 0); } static void create_notebook_tab (GtkWidget *notebook, gchar *text) { // https://developer.gnome.org/gtk3/stable/GtkNotebook.html // https://developer.gnome.org/gtk4/stable/GtkEventControllerScroll.html GtkWidget *head, *content = BOXV; head = gtk_label_new (text); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), content, head); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (notebook), content, TRUE); #if GTK_CHECK_VERSION (4,0,0) // gtk-scroll-tabs for GTK 4.x GtkEventController *event; event = gtk_event_controller_scroll_new (GTK_EVENT_CONTROLLER_SCROLL_BOTH_AXES | GTK_EVENT_CONTROLLER_SCROLL_DISCRETE); g_signal_connect (event, "scroll", G_CALLBACK (gtk40_scrolltabs), notebook); gtk_widget_add_controller (gtk_widget_get_parent (head), event); #endif } static void create_treview (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkTreeStore.html // https://developer.gnome.org/gtk3/stable/GtkTreeView.html // https://developer.gnome.org/gtk3/stable/GtkCellRenderer.html // https://developer.gnome.org/gtk3/stable/GtkCellRendererText.html // https://developer.gnome.org/gtk3/stable/GtkCellRendererToggle.html // https://developer.gnome.org/gtk3/stable/GtkCellRendererProgress.html // https://developer.gnome.org/gtk3/stable/GtkCellRendererPixbuf.html // https://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html // https://developer.gnome.org/gtk4/stable/GtkScrolledWindow.html GtkWidget *scrolled_window, *view; GtkCellRenderer *renderer; GtkTreeStore *store; GtkTreeIter iter; store = gtk_tree_store_new (8, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_DOUBLE, G_TYPE_DOUBLE, G_TYPE_STRING, G_TYPE_STRING); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, FALSE, 1, FALSE, 2, "Text 1.1", 3, "Text 1.2", 4, 0.0, 5, 0.0, 6, "gtk-open", 7, "gtk-open", -1); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, TRUE, 1, TRUE, 2, "Text 2.1", 3, "Text 2.2", 4, 15.0, 5, 15.0, 6, "gtk-save", 7, "gtk-save", -1); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, FALSE, 1, FALSE, 2, "Text 3.1", 3, "Text 3.2", 4, 30.0, 5, 30.0, 6, "gtk-save-as", 7, "gtk-save-as", -1); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, TRUE, 1, TRUE, 2, "Text 4.1", 3, "Text 4.2", 4, 45.0, 5, 45.0, 6, "gtk-refresh", 7, "gtk-refresh", -1); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, FALSE, 1, FALSE, 2, "Text 5.1", 3, "Text 5.2", 4, 50.0, 5, 50.0, 6, "gtk-cut", 7, "gtk-cut", -1); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, TRUE, 1, TRUE, 2, "Text 6.1", 3, "Text 6.2", 4, 55.0, 5, 55.0, 6, "gtk-help", 7, "gtk-help", -1); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, FALSE, 1, FALSE, 2, "Text 7.1", 3, "Text 7.2", 4, 70.0, 5, 70.0, 6, "gtk-about", 7, "gtk-about", -1); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, TRUE, 1, TRUE, 2, "Text 8.1", 3, "Text 8.2", 4, 100.0, 5, 100.0, 6, "gtk-close", 7, "gtk-close", -1); view = gtk_tree_view_new (); gtk_tree_view_set_show_expanders (GTK_TREE_VIEW (view), FALSE); gtk_widget_set_size_request (view, 200, 200); renderer = gtk_cell_renderer_toggle_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), 0, "C", renderer, "active", 0, NULL); renderer = gtk_cell_renderer_toggle_new (); gtk_cell_renderer_toggle_set_radio (GTK_CELL_RENDERER_TOGGLE (renderer), TRUE); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), 1, "R", renderer, "active", 1, NULL); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), 2, "Text", renderer, "text", 2, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_renderer_set_sensitive (renderer, FALSE); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), 3, "Text", renderer, "text", 3, NULL); renderer = gtk_cell_renderer_progress_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), 4, "Progress", renderer, "value", 4, NULL); renderer = gtk_cell_renderer_progress_new (); gtk_cell_renderer_set_sensitive (renderer, FALSE); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), 5, "Progress", renderer, "value", 5, NULL); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), 6, "Icon", renderer, "icon-name", 6, NULL); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_renderer_set_sensitive (renderer, FALSE); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), 7, "Icon", renderer, "icon-name", 7, NULL); gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (store)); g_object_unref (G_OBJECT (store)); #if GTK_CHECK_VERSION (4,0,0) scrolled_window = gtk_scrolled_window_new (); gchar *config = getenv ("GTK_OVERLAY_SCROLLING"); if (strcmp (config, "0") == 0) gtk_scrolled_window_set_overlay_scrolling (GTK_SCROLLED_WINDOW (scrolled_window), FALSE); #else scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_IN); #endif gtk_widget_set_size_request (scrolled_window, 200, 200); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS); #if GTK_CHECK_VERSION (4,0,0) gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled_window), view); #else gtk_container_add (GTK_CONTAINER (scrolled_window), view); #endif add_to (GTK_BOX (root), scrolled_window, FALSE, FALSE, 0, 0); } static GtkWidget* create_horizontal_scale (gint value, gboolean draw, gboolean inverted) { GtkWidget *scale; #if GTK_CHECK_VERSION (3,0,0) scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, 0, 100, 1); #else scale = gtk_hscale_new_with_range (0, 100, 1); #endif gtk_range_set_value (GTK_RANGE (scale), value); gtk_scale_set_draw_value (GTK_SCALE (scale), draw); gtk_range_set_inverted (GTK_RANGE (scale), inverted); gtk_widget_set_size_request (scale, 186, -1); return scale; } static GtkWidget* create_vertical_scale (gint value, gboolean draw, gboolean inverted) { GtkWidget *scale; #if GTK_CHECK_VERSION (3,0,0) scale = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL, 0, 100, 1); #else scale = gtk_vscale_new_with_range (0, 100, 1); #endif gtk_range_set_value (GTK_RANGE (scale), value); gtk_scale_set_draw_value (GTK_SCALE (scale), draw); gtk_range_set_inverted (GTK_RANGE (scale), inverted); gtk_widget_set_size_request (scale, -1, 100); return scale; } // traditional menu #if GTK_CHECK_VERSION (4,0,0) static void gtk40_activate_action (GSimpleAction *action, GVariant *parameter, gpointer user_data) { // https://developer.gnome.org/gio/stable/GSimpleAction.html // https://discourse.gnome.org/t/question-about-the-g-simple-action-new-stateful-function/3865 GVariant *action_state; // radio if (parameter) { g_simple_action_set_state (action, parameter); // update_theme if (strcmp ((gchar*) g_action_get_name (G_ACTION (action)), "set-theme") == 0) update_theme ((gchar*) g_variant_get_string (parameter, NULL)); } // checkbox else { action_state = g_action_get_state (G_ACTION (action)); if (g_variant_get_boolean (action_state) == FALSE) g_simple_action_set_state (action, g_variant_new_boolean (TRUE)); else g_simple_action_set_state (action, g_variant_new_boolean (FALSE)); } } static void create_traditional_menubar (GtkApplication *app, GMenu *root) { // https://developer.gnome.org/gio/stable/GMenu.html // https://developer.gnome.org/gio/stable/GActionMap.html // https://developer.gnome.org/gio/stable/GSimpleAction.html // https://developer.gnome.org/gtk4/stable/GtkApplication.html // https://discourse.gnome.org/t/question-about-the-g-simple-action-new-stateful-function/3865 GMenu *menu, *submenu, *section; GMenuItem *menuitem; GSimpleAction *action; GSList *iterator; action = g_simple_action_new_stateful ("set-theme", G_VARIANT_TYPE_STRING, g_variant_new_string (current_theme)); g_signal_connect (action, "activate", G_CALLBACK (gtk40_activate_action), NULL); g_action_map_add_action (G_ACTION_MAP (g_application_get_default ()), G_ACTION (action)); // system menu = g_menu_new (); g_menu_append_submenu (root, _app("_System theme"), G_MENU_MODEL (menu)); for (iterator = list_system_theme; iterator; iterator = iterator->next) { if (g_slist_find_custom (list_user_theme, iterator->data, &awf_compare_theme)) { menuitem = g_menu_item_new (iterator->data, "disabled"); // @todo? g_menu_append_item (menu, menuitem); } else { menuitem = g_menu_item_new (iterator->data, g_strdup_printf ("app.set-theme::%s", (gchar*) iterator->data)); g_menu_append_item (menu, menuitem); } } if (!list_system_theme) g_menu_append (menu, _app("No themes found"), "disabled"); // @todo // user menu = g_menu_new (); g_menu_append_submenu (root, _app("_User theme"), G_MENU_MODEL (menu)); for (iterator = list_user_theme; iterator; iterator = iterator->next) { menuitem = g_menu_item_new (iterator->data, g_strdup_printf ("app.set-theme::%s", (gchar*) iterator->data)); g_menu_append_item (menu, menuitem); } if (!list_user_theme) g_menu_append (menu, _app("No themes found"), "disabled"); // @todo // options menu = g_menu_new (); g_menu_append_submenu (root, _app("_Options"), G_MENU_MODEL (menu)); create_menuitem (app, menu, _gtk("_Open"), AWF_ACCEL_OPEN, AWF_OPEN, dialog_open); create_menuitem (app, menu, _app("Open recent file"), AWF_ACCEL_RECE, AWF_RECE, dialog_recent); create_menuitem (app, menu, _app("Calendar"), AWF_ACCEL_CALE, AWF_CALE, dialog_calendar); create_menuitem (app, menu, _app("GtkScales"), AWF_ACCEL_SCAL, AWF_SCAL, dialog_scales); create_menuitem (app, menu, _gtk("_Save"), AWF_ACCEL_SAVE, AWF_SAVE, dialog_save); create_menuitem (app, menu, _gtk("_Refresh"), AWF_ACCEL_REFR, AWF_REFR, G_CALLBACK (sighup_handler)); // G_CALLBACK (update_theme) create_menuitem (app, menu, _gtk("_Properties"), AWF_ACCEL_PROP, AWF_PROP, dialog_message); create_menuitem (app, menu, _gtk("Page Set_up"), AWF_ACCEL_PRSE, AWF_PRSE, dialog_page_setup); create_menuitem (app, menu, _gtk("_Print"), AWF_ACCEL_PRIN, AWF_PRIN, dialog_print); create_menuitem (app, menu, _gtk("_About"), AWF_ACCEL_ABOU, AWF_ABOU, dialog_about); submenu = g_menu_new (); g_menu_append_submenu (menu, _app("More..."), G_MENU_MODEL (submenu)); create_menuitem (app, submenu, _gtk("Cu_t"), AWF_ACCEL_MCUT, AWF_MCUT, NULL); create_menuitem (app, submenu, _gtk("_Copy"), AWF_ACCEL_MCOP, AWF_MCOP, NULL); create_menuitem (app, submenu, _gtk("_Paste"), AWF_ACCEL_MPAS, AWF_MPAS, NULL); section = g_menu_new (); g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); action = g_simple_action_new_stateful ("set-check-grp11", NULL, g_variant_new_boolean (FALSE)); g_signal_connect (action, "activate", G_CALLBACK (gtk40_activate_action), NULL); g_action_map_add_action (G_ACTION_MAP (g_application_get_default ()), G_ACTION (action)); menuitem = g_menu_item_new (g_strdup_printf ("Check 1 %s", _app("(unchecked)")), "app.set-check-grp11"); g_menu_append_item (section, menuitem); action = g_simple_action_new_stateful ("set-check-grp12", NULL, g_variant_new_boolean (TRUE)); g_signal_connect (action, "activate", G_CALLBACK (gtk40_activate_action), NULL); g_action_map_add_action (G_ACTION_MAP (g_application_get_default ()), G_ACTION (action)); menuitem = g_menu_item_new (g_strdup_printf ("Check 2 %s", _app("(checked)")), "app.set-check-grp12"); g_menu_append_item (section, menuitem); menuitem = g_menu_item_new ("Empty", NULL); // @todo? g_menu_append_item (section, menuitem); section = g_menu_new (); g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); action = g_simple_action_new_stateful ("set-check-grp21", NULL, g_variant_new_boolean (FALSE)); g_simple_action_set_enabled (action, FALSE); g_signal_connect (action, "activate", G_CALLBACK (gtk40_activate_action), NULL); g_action_map_add_action (G_ACTION_MAP (g_application_get_default ()), G_ACTION (action)); menuitem = g_menu_item_new (g_strdup_printf ("Check 1 %s", _app("(unchecked)")), "app.set-check-grp21"); g_menu_append_item (section, menuitem); action = g_simple_action_new_stateful ("set-check-grp22", NULL, g_variant_new_boolean (TRUE)); g_simple_action_set_enabled (action, FALSE); g_signal_connect (action, "activate", G_CALLBACK (gtk40_activate_action), NULL); g_action_map_add_action (G_ACTION_MAP (g_application_get_default ()), G_ACTION (action)); menuitem = g_menu_item_new (g_strdup_printf ("Check 2 %s", _app("(checked)")), "app.set-check-grp22"); g_menu_append_item (section, menuitem); menuitem = g_menu_item_new ("Empty", "disabled"); // @todo? g_menu_append_item (section, menuitem); section = g_menu_new (); g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); action = g_simple_action_new_stateful ("set-radio-grp1", G_VARIANT_TYPE_STRING, g_variant_new_string ("checked")); g_signal_connect (action, "activate", G_CALLBACK (gtk40_activate_action), NULL); g_action_map_add_action (G_ACTION_MAP (g_application_get_default ()), G_ACTION (action)); menuitem = g_menu_item_new (g_strdup_printf ("Radio 1 %s", _app("(unchecked)")), "app.set-radio-grp1::unchecked"); g_menu_append_item (section, menuitem); menuitem = g_menu_item_new (g_strdup_printf ("Radio 2 %s", _app("(checked)")), "app.set-radio-grp1::checked"); g_menu_append_item (section, menuitem); menuitem = g_menu_item_new ("Empty", NULL); // @todo? g_menu_append_item (section, menuitem); section = g_menu_new (); g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); action = g_simple_action_new_stateful ("set-radio-grp2", G_VARIANT_TYPE_STRING, g_variant_new_string ("checked")); g_simple_action_set_enabled (action, FALSE); g_signal_connect (action, "activate", G_CALLBACK (gtk40_activate_action), NULL); g_action_map_add_action (G_ACTION_MAP (g_application_get_default ()), G_ACTION (action)); menuitem = g_menu_item_new (g_strdup_printf ("Radio 1 %s", _app("(unchecked)")), "app.set-radio-grp2::unchecked"); g_menu_append_item (section, menuitem); menuitem = g_menu_item_new (g_strdup_printf ("Radio 2 %s", _app("(checked)")), "app.set-radio-grp2::checked"); g_menu_append_item (section, menuitem); menuitem = g_menu_item_new ("Empty", "disabled"); // @todo? g_menu_append_item (section, menuitem); section = g_menu_new (); g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); create_menuitem (app, section, _gtk("_Close"), AWF_ACCEL_CLOS, AWF_CLOS, NULL); create_menuitem (app, section, _gtk("_Quit"), AWF_ACCEL_QUIT, AWF_QUIT, quit); } static GMenuItem* create_menuitem (GtkApplication *app, GMenu *menu, gchar *text, gchar *accel, gchar *keymap, GCallback function) { // https://developer.gnome.org/gio/stable/GMenu.html // https://developer.gnome.org/gio/stable/GActionMap.html // https://developer.gnome.org/gio/stable/GSimpleAction.html // https://developer.gnome.org/gtk4/stable/gtk4-Keyboard-Accelerators.html GMenuItem *menuitem; GSimpleAction *action; gchar *acckey[2] = { accel, NULL }; gchar *appkey = g_strdup_printf ("app.%s", keymap); action = g_simple_action_new (keymap, NULL); g_action_map_add_action (G_ACTION_MAP (g_application_get_default ()), G_ACTION (action)); gtk_application_set_accels_for_action (app, appkey, (const char**) acckey); menuitem = g_menu_item_new (text, appkey); if (function) g_signal_connect (action, "activate", function, NULL); if (accel) g_menu_item_set_attribute (menuitem, "accel", "s", accel, NULL); g_menu_append_item (menu, menuitem); return menuitem; } static void accels_change (GtkEventControllerKey *controller, guint keyval, guint keycode, GdkModifierType state) { // gtk-can-change-accels for GTK 4.0+ // https://developer.gnome.org/gtk4/stable/GtkEventControllerKey.html // https://developer.gnome.org/gtk4/stable/gtk4-Keyboard-Accelerators.html // https://developer.gnome.org/gdk4/stable/gdk4-Keyboard-Handling.html // https://gitlab.gnome.org/GNOME/gtk/-/commit/2d79334bb069224966b3dcd8456967c9800e8fd0 const gchar *key = gdk_keyval_name (keyval); if ( (strcmp (key, "Control_L") == 0) || (strcmp (key, "Control_R") == 0) || (strcmp (key, "Shift_L") == 0) || (strcmp (key, "Shift_R") == 0) || (strcmp (key, "Super_L") == 0) || (strcmp (key, "Super_R") == 0) || (strcmp (key, "Meta_L") == 0) || (strcmp (key, "Meta_R") == 0) || (strcmp (key, "Alt_L") == 0) || (strcmp (key, "Alt_R") == 0) ) { return; } if ( (keyval == GDK_KEY_Delete) || (keyval == GDK_KEY_KP_Delete) || (keyval == GDK_KEY_BackSpace) || // f1..12 ((keyval >= GDK_KEY_F1) && (keyval <= GDK_KEY_F12)) || // crtl/shift/super/alt + ? (state & GDK_CONTROL_MASK) || (state & GDK_SHIFT_MASK) || (state & GDK_SUPER_MASK) || (state & GDK_META_MASK) ) { must_save_accels = TRUE; //if ((keyval == GDK_KEY_Delete) || (keyval == GDK_KEY_KP_Delete) || (keyval == GDK_KEY_BackSpace)) // g_printf ("remove\n", key); //else // g_printf ("%s\n", key); } } #else static void create_traditional_menubar (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkMenu.html // https://developer.gnome.org/gtk3/stable/GtkMenuItem.html // https://developer.gnome.org/gtk3/stable/GtkSeparatorMenuItem.html // https://developer.gnome.org/gtk3/stable/GtkRadioMenuItem.html GtkWidget *menu, *submenu, *menuitem; GSList *iterator, *group = NULL; GtkAccelGroup *accels = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), accels); // system menu = create_menu (root, _app("_System theme")); for (iterator = list_system_theme; iterator; iterator = iterator->next) { if (g_slist_find_custom (list_user_theme, iterator->data, &awf_compare_theme)) { menuitem = create_menuitem_radio (menu, iterator->data, FALSE, FALSE, TRUE, group); group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); if (strcmp ((gchar*) current_theme, (gchar*) iterator->data) == 0) gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), TRUE); g_signal_connect_swapped (menuitem, "activate", G_CALLBACK (update_theme), iterator->data); } else { menuitem = create_menuitem_radio (menu, iterator->data, FALSE, FALSE, FALSE, group); group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); if (strcmp ((gchar*) current_theme, (gchar*) iterator->data) == 0) gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), TRUE); g_signal_connect_swapped (menuitem, "activate", G_CALLBACK (update_theme), iterator->data); } } if (!list_system_theme) create_menuitem (menu, _app("No themes found"), TRUE, NULL, NULL, NULL); // user menu = create_menu (root, _app("_User theme")); for (iterator = list_user_theme; iterator; iterator = iterator->next) { menuitem = create_menuitem_radio (menu, iterator->data, FALSE, FALSE, FALSE, group); group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); if (strcmp ((gchar*) current_theme, (gchar*) iterator->data) == 0) gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), TRUE); g_signal_connect_swapped (menuitem, "activate", G_CALLBACK (update_theme), iterator->data); } if (!list_user_theme) create_menuitem (menu, _app("No themes found"), TRUE, NULL, NULL, NULL); // options menu = create_menu (root, _app("_Options")); gtk_menu_set_accel_group (GTK_MENU (menu), accels); // very important create_menuitem_tearoff (menu); create_menuitem (menu, "gtk-open", FALSE, AWF_ACCEL_OPEN, AWF_OPEN, dialog_open); create_menuitem (menu, _app("Open recent file"), FALSE, AWF_ACCEL_RECE, AWF_RECE, dialog_recent); create_menuitem (menu, _app("Calendar"), FALSE, AWF_ACCEL_CALE, AWF_CALE, dialog_calendar); create_menuitem (menu, _app("GtkScales"), FALSE, AWF_ACCEL_SCAL, AWF_SCAL, dialog_scales); create_menuitem (menu, "gtk-save", FALSE, AWF_ACCEL_SAVE, AWF_SAVE, dialog_save); create_menuitem (menu, "gtk-refresh", FALSE, AWF_ACCEL_REFR, AWF_REFR, G_CALLBACK (sighup_handler)); // G_CALLBACK (update_theme) create_menuitem (menu, "gtk-properties", FALSE, AWF_ACCEL_PROP, AWF_PROP, dialog_message); create_menuitem (menu, "gtk-page-setup", FALSE, AWF_ACCEL_PRSE, AWF_PRSE, dialog_page_setup); create_menuitem (menu, "gtk-print", FALSE, AWF_ACCEL_PRIN, AWF_PRIN, dialog_print); create_menuitem (menu, "gtk-about", FALSE, AWF_ACCEL_ABOU, AWF_ABOU, dialog_about); submenu = create_menu (menu, _app("More...")); gtk_menu_set_accel_group (GTK_MENU (submenu), accels); // very important create_menuitem (submenu, "gtk-cut", FALSE, AWF_ACCEL_MCUT, AWF_MCUT, NULL); create_menuitem (submenu, "gtk-copy", FALSE, AWF_ACCEL_MCOP, AWF_MCOP, NULL); create_menuitem (submenu, "gtk-paste", FALSE, AWF_ACCEL_MPAS, AWF_MPAS, NULL); menuitem = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); create_menuitem_check (menu, g_strdup_printf ("Check 1 %s", _app("(unchecked)")), FALSE, FALSE, FALSE); create_menuitem_check (menu, g_strdup_printf ("Check 2 %s", _app("(checked)")), TRUE, FALSE, FALSE); create_menuitem_check (menu, g_strdup_printf ("Check 3 %s", _app("(inconsistent)")), FALSE, TRUE, FALSE); menuitem = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); create_menuitem_check (menu, g_strdup_printf ("Check 1 %s", _app("(unchecked)")), FALSE, FALSE, TRUE); create_menuitem_check (menu, g_strdup_printf ("Check 2 %s", _app("(checked)")), TRUE, FALSE, TRUE); create_menuitem_check (menu, g_strdup_printf ("Check 3 %s", _app("(inconsistent)")), FALSE, TRUE, TRUE); menuitem = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); menuitem = create_menuitem_radio (menu, g_strdup_printf ("Radio 1 %s", _app("(unchecked)")), FALSE, FALSE, FALSE, NULL); group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); create_menuitem_radio (menu, g_strdup_printf ("Radio 2 %s", _app("(checked)")), TRUE, FALSE, FALSE, group); create_menuitem_radio (menu, g_strdup_printf ("Radio 3 %s", _app("(inconsistent)")), FALSE, TRUE, FALSE, NULL); menuitem = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); menuitem = create_menuitem_radio (menu, g_strdup_printf ("Radio 1 %s", _app("(unchecked)")), FALSE, FALSE, TRUE, NULL); group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); create_menuitem_radio (menu, g_strdup_printf ("Radio 2 %s", _app("(checked)")), TRUE, FALSE, TRUE, group); create_menuitem_radio (menu, g_strdup_printf ("Radio 3 %s", _app("(inconsistent)")), FALSE, TRUE, TRUE, NULL); menuitem = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); create_menuitem (menu, "gtk-close", TRUE, AWF_ACCEL_CLOS, AWF_CLOS, NULL); create_menuitem (menu, "gtk-quit", FALSE, AWF_ACCEL_QUIT, AWF_QUIT, quit); // gtk-can-change-accels for GTK 3.x (3.2/3.24) accels_load (); g_object_set (gtk_settings_get_default (), "gtk-can-change-accels", FALSE, NULL); } static GtkWidget* create_menu (GtkWidget *root, gchar *text) { // https://developer.gnome.org/gtk3/stable/GtkMenu.html // https://developer.gnome.org/gtk3/stable/GtkMenuItem.html GtkWidget *menu, *menuitem; menu = gtk_menu_new (); menuitem = gtk_menu_item_new_with_mnemonic (text); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu); gtk_menu_shell_append (GTK_MENU_SHELL (root), menuitem); // gtk-can-change-accels for GTK 3.x (3.2/3.24) gtk_widget_set_events (menu, GDK_KEY_RELEASE_MASK); g_signal_connect (menu, "key-release-event", G_CALLBACK (accels_change), NULL); return menu; } static GtkWidget* create_menuitem_tearoff (GtkWidget *menu) { // https://developer.gnome.org/gtk3/stable/GtkTearoffMenuItem.html GtkWidget *menuitem; #if GTK_CHECK_VERSION (3,0,0) menuitem = gtk_tearoff_menu_item_new (); gtk_style_context_add_class (gtk_widget_get_style_context (menuitem), "tearoff"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); #else menuitem = gtk_tearoff_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); #endif return menuitem; } static GtkWidget* create_menuitem_check (GtkWidget *menu, gchar *text, gboolean checked, gboolean inconsistent, gboolean disabled) { // https://developer.gnome.org/gtk3/stable/GtkCheckMenuItem.html GtkWidget *menuitem; menuitem = gtk_check_menu_item_new_with_mnemonic (text); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), checked); gtk_check_menu_item_set_inconsistent (GTK_CHECK_MENU_ITEM (menuitem), inconsistent); gtk_widget_set_sensitive (menuitem, !disabled); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); return menuitem; } static GtkWidget* create_menuitem_radio (GtkWidget *menu, gchar *text, gboolean checked, gboolean inconsistent, gboolean disabled, GSList *group) { // https://developer.gnome.org/gtk3/stable/GtkRadioMenuItem.html GtkWidget *menuitem; menuitem = gtk_radio_menu_item_new_with_mnemonic (group, text); gtk_check_menu_item_set_inconsistent (GTK_CHECK_MENU_ITEM (menuitem), inconsistent); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), checked); gtk_widget_set_sensitive (menuitem, !disabled); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); return menuitem; } static GtkWidget* create_menuitem (GtkWidget *menu, gchar *text, gboolean disabled, gchar *accel, gchar *keymap, GCallback function) { // https://developer.gnome.org/gtk3/stable/GtkMenuItem.html // https://developer.gnome.org/gtk3/stable/GtkImageMenuItem.html // https://developer.gnome.org/gtk3/stable/gtk3-Keyboard-Accelerators.html GtkWidget *menuitem; GdkModifierType mods; guint key; menuitem = gtk_image_menu_item_new_from_stock (text, NULL); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menuitem), keymap); gtk_widget_set_sensitive (menuitem, !disabled); if (accel) { gtk_accelerator_parse (accel, &key, &mods); gtk_accel_map_add_entry (keymap, key, mods); } if (function) g_signal_connect (menuitem, "activate", function, NULL); // gtk-can-change-accels for GTK 3.x (3.2/3.24) g_signal_connect (menuitem, "select", G_CALLBACK (accels_select), NULL); g_signal_connect (menuitem, "deselect", G_CALLBACK (accels_deselect), NULL); return menuitem; } static void accels_load () { // gtk-can-change-accels for GTK 3.x (3.2/3.24) // https://developer.gnome.org/gtk3/stable/gtk3-Accelerator-Maps.html gchar *path = g_build_filename ("/", g_getenv ("HOME"), ".awf-gtk-accels", NULL); if (g_file_test (path, G_FILE_TEST_IS_REGULAR)) gtk_accel_map_load (path); } static void accels_select (GtkWidget *widget) { // gtk-can-change-accels for GTK 3.x (3.2/3.24) current_menuitem = widget; } static void accels_deselect (GtkWidget *widget) { // gtk-can-change-accels for GTK 3.x (3.2/3.24) if (current_menuitem == widget) current_menuitem = NULL; } static void accels_change (GtkWidget *widget, GdkEventKey *event) { // gtk-can-change-accels for GTK 3.x (3.2/3.24) // https://developer.gnome.org/gtk3/stable/gtk3-Keyboard-Accelerators.html // https://developer.gnome.org/gdk3/stable/gdk3-Keyboard-Handling.html // https://gitlab.gnome.org/GNOME/gtk/-/commit/2d79334bb069224966b3dcd8456967c9800e8fd0 if (!current_menuitem) return; GtkMenuItem *menuitem = GTK_MENU_ITEM (current_menuitem); gchar *key = gdk_keyval_name (event->keyval); if ( !gtk_menu_item_get_accel_path (menuitem) || (strcmp (key, "Control_L") == 0) || (strcmp (key, "Control_R") == 0) || (strcmp (key, "Shift_L") == 0) || (strcmp (key, "Shift_R") == 0) || (strcmp (key, "Super_L") == 0) || (strcmp (key, "Super_R") == 0) || (strcmp (key, "Meta_L") == 0) || (strcmp (key, "Meta_R") == 0) || (strcmp (key, "Alt_L") == 0) || (strcmp (key, "Alt_R") == 0) ) { return; } if ( (event->keyval == GDK_KEY_Delete) || (event->keyval == GDK_KEY_KP_Delete) || (event->keyval == GDK_KEY_BackSpace) || // f1..12 ((event->keyval >= GDK_KEY_F1) && (event->keyval <= GDK_KEY_F12)) || // crtl/shift/super/alt + ? (event->state & GDK_CONTROL_MASK) || (event->state & GDK_SHIFT_MASK) || (event->state & GDK_SUPER_MASK) || (event->state & GDK_META_MASK) ) { must_save_accels = TRUE; if ((event->keyval == GDK_KEY_Delete) || (event->keyval == GDK_KEY_KP_Delete) || (event->keyval == GDK_KEY_BackSpace)) gtk_accel_map_change_entry (gtk_menu_item_get_accel_path (menuitem), 0, 0, TRUE); else gtk_accel_map_change_entry ( gtk_menu_item_get_accel_path (menuitem), gdk_keyval_to_lower (event->keyval), event->state & gtk_accelerator_get_default_mod_mask (), TRUE); } } static void accels_save () { // gtk-can-change-accels for GTK 3.x (3.2/3.24) // https://developer.gnome.org/gtk3/stable/gtk3-Accelerator-Maps.html if (must_save_accels) { gchar *path = g_build_filename ("/", g_getenv ("HOME"), ".awf-gtk-accels", NULL); gtk_accel_map_save (path); } } #endif // dialogs static void dialog_open () { #if GTK_CHECK_VERSION (4,0,0) // https://developer.gnome.org/gtk4/stable/GtkFileChooserDialog.html GtkWidget *dialog = gtk_file_chooser_dialog_new ( "GtkFileChooserDialog", GTK_WINDOW (window), GTK_FILE_CHOOSER_ACTION_OPEN, _gtk("_Cancel"), GTK_RESPONSE_CANCEL, _gtk("_Open"), GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION)); gtk_widget_show (dialog); g_signal_connect (dialog, "response", G_CALLBACK (gtk40_closedialog), NULL); #else // https://developer.gnome.org/gtk3/stable/GtkFileChooserDialog.html GtkWidget *dialog = gtk_file_chooser_dialog_new ( "GtkFileChooserDialog", GTK_WINDOW (window), GTK_FILE_CHOOSER_ACTION_OPEN, "gtk-cancel", GTK_RESPONSE_CANCEL, "gtk-open", GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION)); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); #endif } static void dialog_recent () { #if !GTK_CHECK_VERSION (4,0,0) // https://developer.gnome.org/gtk3/stable/GtkRecentChooserDialog.html GtkWidget *dialog = gtk_recent_chooser_dialog_new ( "GtkRecentChooserDialog", GTK_WINDOW (window), "gtk-cancel", GTK_RESPONSE_CANCEL, "gtk-open", GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION)); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); #endif } static void dialog_save () { #if GTK_CHECK_VERSION (4,0,0) // https://developer.gnome.org/gtk4/stable/GtkFileChooserDialog.html GtkWidget *dialog = gtk_file_chooser_dialog_new ( "GtkFileChooserDialog", GTK_WINDOW (window), GTK_FILE_CHOOSER_ACTION_SAVE, _gtk("_Cancel"), GTK_RESPONSE_CANCEL, _gtk("_Save"), GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION)); gtk_widget_show (dialog); g_signal_connect (dialog, "response", G_CALLBACK (gtk40_closedialog), NULL); #else // https://developer.gnome.org/gtk3/stable/GtkFileChooserDialog.html GtkWidget *dialog = gtk_file_chooser_dialog_new ( "GtkFileChooserDialog", GTK_WINDOW (window), GTK_FILE_CHOOSER_ACTION_SAVE, "gtk-cancel", GTK_RESPONSE_CANCEL, "gtk-save", GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION)); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); #endif } static void dialog_message () { // https://developer.gnome.org/gtk3/stable/GtkMessageDialog.html GtkWidget *dialog = gtk_message_dialog_new ( GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_YES_NO, "GtkMessageDialog"); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), _app("A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme.")); gtk_window_set_title (GTK_WINDOW (dialog), "GtkMessageDialog"); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION)); #if GTK_CHECK_VERSION (4,0,0) gtk_widget_show (dialog); g_signal_connect (dialog, "response", G_CALLBACK (gtk40_closedialog), NULL); #else gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); #endif } static void dialog_page_setup () { // https://developer.gnome.org/gtk3/stable/GtkPageSetupUnixDialog.html GtkWidget *dialog = gtk_page_setup_unix_dialog_new ( "GtkPageSetupUnixDialog", GTK_WINDOW (window)); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION)); #if GTK_CHECK_VERSION (4,0,0) gtk_widget_show (dialog); g_signal_connect (dialog, "response", G_CALLBACK (gtk40_closedialog), NULL); #else gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); #endif } static void dialog_print () { // https://developer.gnome.org/gtk3/stable/GtkPrintUnixDialog.html GtkWidget *dialog = gtk_print_unix_dialog_new ( "GtkPrintUnixDialog", GTK_WINDOW (window)); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION)); #if GTK_CHECK_VERSION (4,0,0) gtk_widget_show (dialog); g_signal_connect (dialog, "response", G_CALLBACK (gtk40_closedialog), NULL); #else gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); #endif } static void dialog_about () { // https://developer.gnome.org/gtk3/stable/GtkAboutDialog.html gtk_show_about_dialog (GTK_WINDOW (window), "version", VERSION, "comments", g_strdup_printf ("%s\n\n%s\n%s\n\n%s\n%s", _app("A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme."), g_strdup_printf (_app("Remove %s file"), "~/.awf-gtk-accels"), _app("to reset keyboard shortcuts."), g_strdup_printf (_app("compiled with gtk %d.%d.%d and glib %d.%d.%d and pango %s"), GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION, GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION, PANGO_VERSION_STRING), g_strdup_printf (_app(" started with gtk %d.%d.%d and glib %d.%d.%d and pango %s"), gtk_major_version, gtk_minor_version, gtk_micro_version, glib_major_version, glib_minor_version, glib_micro_version, pango_version_string ()) ), "website", "https://github.com/luigifab/awf-extended", "copyright", "Copyright © 2020-2021 Fabrice Creuzot (luigifab)\nCopyright © 2011-2017 Valère Monseur (valr)", "icon-name", g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION), "logo-icon-name", g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION), "license", "A widget factory is free software: you can 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.", "wrap-license", TRUE, NULL); } static void dialog_calendar () { // https://developer.gnome.org/gtk3/stable/GtkDialog.html GtkWidget *dialog, *infobar, *label, *calendar, *vbox = BOXV, *area; dialog = gtk_dialog_new_with_buttons ( NULL, GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, NULL, NULL); gtk_widget_set_size_request (dialog, 350, -1); // info bars and calendar #if GTK_CHECK_VERSION (4,0,0) // https://developer.gnome.org/gtk4/stable/GtkInfoBar.html // https://developer.gnome.org/gtk4/stable/GtkCalendar.html infobar = gtk_info_bar_new_with_buttons (_gtk("_OK"), GTK_RESPONSE_OK, NULL); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_INFO); label = gtk_label_new (_app("This is an info bar.")); gtk_info_bar_add_child (GTK_INFO_BAR (infobar), label); add_to (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); infobar = gtk_info_bar_new_with_buttons (_app("Ok"), GTK_RESPONSE_OK, NULL); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_QUESTION); label = gtk_label_new (_app("This is a question bar.")); gtk_info_bar_add_child (GTK_INFO_BAR (infobar), label); add_to (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); infobar = gtk_info_bar_new (); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_WARNING); label = gtk_label_new (_app("This is a warning bar.")); gtk_info_bar_add_child (GTK_INFO_BAR (infobar), label); add_to (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); infobar = gtk_info_bar_new (); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_ERROR); label = gtk_label_new (_app("This is an error bar.")); gtk_info_bar_add_child (GTK_INFO_BAR (infobar), label); add_to (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); calendar = gtk_calendar_new (); gtk_calendar_set_show_day_names (GTK_CALENDAR (calendar), TRUE); gtk_calendar_set_show_week_numbers (GTK_CALENDAR (calendar), TRUE); add_to (GTK_BOX (vbox), calendar, FALSE, FALSE, 0, 0); #else // https://developer.gnome.org/gtk3/stable/GtkInfoBar.html // https://developer.gnome.org/gtk3/stable/GtkCalendar.html infobar = gtk_info_bar_new_with_buttons ("gtk-ok", GTK_RESPONSE_OK, NULL); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_INFO); label = gtk_label_new (_app("This is an info bar.")); add_to (GTK_BOX (infobar), label, FALSE, FALSE, 0, 0); add_to (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); infobar = gtk_info_bar_new_with_buttons (_app("Ok"), GTK_RESPONSE_OK, NULL); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_QUESTION); label = gtk_label_new (_app("This is a question bar.")); add_to (GTK_BOX (infobar), label, FALSE, FALSE, 0, 0); add_to (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); infobar = gtk_info_bar_new (); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_WARNING); label = gtk_label_new (_app("This is a warning bar.")); add_to (GTK_BOX (infobar), label, FALSE, FALSE, 0, 0); add_to (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); infobar = gtk_info_bar_new (); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_ERROR); label = gtk_label_new (_app("This is an error bar.")); add_to (GTK_BOX (infobar), label, FALSE, FALSE, 0, 0); add_to (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); calendar = gtk_calendar_new (); gtk_calendar_set_display_options (GTK_CALENDAR (calendar), GTK_CALENDAR_SHOW_HEADING | GTK_CALENDAR_SHOW_DAY_NAMES | GTK_CALENDAR_SHOW_WEEK_NUMBERS); add_to (GTK_BOX (vbox), calendar, FALSE, FALSE, 0, 0); #endif // dialog area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); add_to (GTK_BOX (area), vbox, TRUE, TRUE, 5, 5); #if GTK_CHECK_VERSION (4,0,0) gtk_dialog_add_button (GTK_DIALOG (dialog), _gtk("_Cancel"), 0); gtk_dialog_add_button (GTK_DIALOG (dialog), _gtk("_OK"), 0); #else gtk_dialog_add_button (GTK_DIALOG (dialog), "gtk-cancel", 0); gtk_dialog_add_button (GTK_DIALOG (dialog), "gtk-ok", 0); gtk_widget_show_all (dialog); #endif gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); gtk_window_set_title (GTK_WINDOW (dialog), "GtkDialog"); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION)); #if GTK_CHECK_VERSION (4,0,0) gtk_widget_show (dialog); g_signal_connect (dialog, "response", G_CALLBACK (gtk40_closedialog), NULL); #else gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); #endif } static void dialog_scales () { // https://developer.gnome.org/gtk3/stable/GtkDialog.html // https://developer.gnome.org/gtk3/stable/GtkScale.html GtkWidget *dialog, *area, *hbox = BOXH; GtkWidget *vbox1 = BOXV, *vbox2 = BOXV, *vbox3 = BOXV, *hboxa = BOXH, *hboxb = BOXH; GtkWidget *scale1v, *scale2v, *scale3v, *scale4v, *scale5v, *scale6v, *scale7v, *scale8v, *scale9v, *scale10v, *scale11v, *scale12v; GtkWidget *scale1h, *scale2h, *scale3h, *scale4h, *scale5h, *scale6h, *scale7h, *scale8h, *scale9h, *scale10h, *scale11h, *scale12h; gint value = gtk_range_get_value (GTK_RANGE (scale1)); dialog = gtk_dialog_new_with_buttons ( NULL, GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, NULL, NULL); // vertical scales scale1v = create_vertical_scale (value, FALSE, FALSE); scale2v = create_vertical_scale (value, FALSE, FALSE); gtk_scale_add_mark (GTK_SCALE (scale2v), 25, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale2v), 50, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale2v), 75, GTK_POS_LEFT, NULL); scale3v = create_vertical_scale (value, FALSE, FALSE); gtk_scale_add_mark (GTK_SCALE (scale3v), 25, GTK_POS_LEFT, "25"); gtk_scale_add_mark (GTK_SCALE (scale3v), 50, GTK_POS_LEFT, "50"); gtk_scale_add_mark (GTK_SCALE (scale3v), 75, GTK_POS_LEFT, "75"); scale4v = create_vertical_scale (value, TRUE, FALSE); scale5v = create_vertical_scale (value, TRUE, FALSE); gtk_scale_add_mark (GTK_SCALE (scale5v), 25, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale5v), 50, GTK_POS_LEFT, NULL); gtk_scale_add_mark (GTK_SCALE (scale5v), 75, GTK_POS_LEFT, NULL); scale6v = create_vertical_scale (value, TRUE, FALSE); gtk_scale_add_mark (GTK_SCALE (scale6v), 25, GTK_POS_LEFT, "25"); gtk_scale_add_mark (GTK_SCALE (scale6v), 50, GTK_POS_LEFT, "50"); gtk_scale_add_mark (GTK_SCALE (scale6v), 75, GTK_POS_LEFT, "75"); scale7v = create_vertical_scale (value, FALSE, TRUE); scale8v = create_vertical_scale (value, FALSE, TRUE); gtk_scale_add_mark (GTK_SCALE (scale8v), 25, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale8v), 50, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale8v), 75, GTK_POS_RIGHT, NULL); scale9v = create_vertical_scale (value, FALSE, TRUE); gtk_scale_add_mark (GTK_SCALE (scale9v), 25, GTK_POS_RIGHT, "25"); gtk_scale_add_mark (GTK_SCALE (scale9v), 50, GTK_POS_RIGHT, "50"); gtk_scale_add_mark (GTK_SCALE (scale9v), 75, GTK_POS_RIGHT, "75"); scale10v = create_vertical_scale (value, TRUE, TRUE); scale11v = create_vertical_scale (value, TRUE, TRUE); gtk_scale_add_mark (GTK_SCALE (scale11v), 25, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale11v), 50, GTK_POS_RIGHT, NULL); gtk_scale_add_mark (GTK_SCALE (scale11v), 75, GTK_POS_RIGHT, NULL); scale12v = create_vertical_scale (value, TRUE, TRUE); gtk_scale_add_mark (GTK_SCALE (scale12v), 25, GTK_POS_RIGHT, "25"); gtk_scale_add_mark (GTK_SCALE (scale12v), 50, GTK_POS_RIGHT, "50"); gtk_scale_add_mark (GTK_SCALE (scale12v), 75, GTK_POS_RIGHT, "75"); // horizontal scales scale1h = create_horizontal_scale (value, FALSE, FALSE); scale2h = create_horizontal_scale (value, FALSE, FALSE); gtk_scale_add_mark (GTK_SCALE (scale2h), 25, GTK_POS_TOP, NULL); gtk_scale_add_mark (GTK_SCALE (scale2h), 50, GTK_POS_TOP, NULL); gtk_scale_add_mark (GTK_SCALE (scale2h), 75, GTK_POS_TOP, NULL); scale3h = create_horizontal_scale (value, FALSE, FALSE); gtk_scale_add_mark (GTK_SCALE (scale3h), 25, GTK_POS_TOP, "25"); gtk_scale_add_mark (GTK_SCALE (scale3h), 50, GTK_POS_TOP, "50"); gtk_scale_add_mark (GTK_SCALE (scale3h), 75, GTK_POS_TOP, "75"); scale4h = create_horizontal_scale (value, TRUE, FALSE); scale5h = create_horizontal_scale (value, TRUE, FALSE); gtk_scale_add_mark (GTK_SCALE (scale5h), 25, GTK_POS_TOP, NULL); gtk_scale_add_mark (GTK_SCALE (scale5h), 50, GTK_POS_TOP, NULL); gtk_scale_add_mark (GTK_SCALE (scale5h), 75, GTK_POS_TOP, NULL); scale6h = create_horizontal_scale (value, TRUE, FALSE); gtk_scale_add_mark (GTK_SCALE (scale6h), 25, GTK_POS_TOP, "25"); gtk_scale_add_mark (GTK_SCALE (scale6h), 50, GTK_POS_TOP, "50"); gtk_scale_add_mark (GTK_SCALE (scale6h), 75, GTK_POS_TOP, "75"); scale7h = create_horizontal_scale (value, FALSE, TRUE); scale8h = create_horizontal_scale (value, FALSE, TRUE); gtk_scale_add_mark (GTK_SCALE (scale8h), 25, GTK_POS_BOTTOM, NULL); gtk_scale_add_mark (GTK_SCALE (scale8h), 50, GTK_POS_BOTTOM, NULL); gtk_scale_add_mark (GTK_SCALE (scale8h), 75, GTK_POS_BOTTOM, NULL); scale9h = create_horizontal_scale (value, FALSE, TRUE); gtk_scale_add_mark (GTK_SCALE (scale9h), 25, GTK_POS_BOTTOM, "25"); gtk_scale_add_mark (GTK_SCALE (scale9h), 50, GTK_POS_BOTTOM, "50"); gtk_scale_add_mark (GTK_SCALE (scale9h), 75, GTK_POS_BOTTOM, "75"); scale10h = create_horizontal_scale (value, TRUE, TRUE); scale11h = create_horizontal_scale (value, TRUE, TRUE); gtk_scale_add_mark (GTK_SCALE (scale11h), 25, GTK_POS_BOTTOM, NULL); gtk_scale_add_mark (GTK_SCALE (scale11h), 50, GTK_POS_BOTTOM, NULL); gtk_scale_add_mark (GTK_SCALE (scale11h), 75, GTK_POS_BOTTOM, NULL); scale12h = create_horizontal_scale (value, TRUE, TRUE); gtk_scale_add_mark (GTK_SCALE (scale12h), 25, GTK_POS_BOTTOM, "25"); gtk_scale_add_mark (GTK_SCALE (scale12h), 50, GTK_POS_BOTTOM, "50"); gtk_scale_add_mark (GTK_SCALE (scale12h), 75, GTK_POS_BOTTOM, "75"); // dialog area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); add_to (GTK_BOX (area), hbox, TRUE, TRUE, 5, 5); add_to (GTK_BOX (hbox), vbox1, TRUE, TRUE, 5, 5); add_to (GTK_BOX (vbox1), scale1h, FALSE, FALSE, 5, 5); add_to (GTK_BOX (vbox1), scale2h, FALSE, FALSE, 5, 5); add_to (GTK_BOX (vbox1), scale3h, FALSE, FALSE, 5, 5); add_to (GTK_BOX (vbox1), scale4h, FALSE, FALSE, 5, 5); add_to (GTK_BOX (vbox1), scale5h, FALSE, FALSE, 5, 5); add_to (GTK_BOX (vbox1), scale6h, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hbox), vbox2, TRUE, TRUE, 5, 5); add_to (GTK_BOX (vbox2), hboxa, TRUE, TRUE, 0, 0); add_to (GTK_BOX (hboxa), scale1v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hboxa), scale2v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hboxa), scale3v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hboxa), scale7v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hboxa), scale8v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hboxa), scale9v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (vbox2), hboxb, TRUE, TRUE, 0, 0); add_to (GTK_BOX (hboxb), scale4v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hboxb), scale5v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hboxb), scale6v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hboxb), scale10v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hboxb), scale11v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hboxb), scale12v, FALSE, FALSE, 5, 5); add_to (GTK_BOX (hbox), vbox3, TRUE, TRUE, 5, 5); add_to (GTK_BOX (vbox3), scale7h, FALSE, FALSE, 5, 5); add_to (GTK_BOX (vbox3), scale8h, FALSE, FALSE, 5, 5); add_to (GTK_BOX (vbox3), scale9h, FALSE, FALSE, 5, 5); add_to (GTK_BOX (vbox3), scale10h, FALSE, FALSE, 5, 5); add_to (GTK_BOX (vbox3), scale11h, FALSE, FALSE, 5, 5); add_to (GTK_BOX (vbox3), scale12h, FALSE, FALSE, 5, 5); #if GTK_CHECK_VERSION (4,0,0) gtk_dialog_add_button (GTK_DIALOG (dialog), _gtk("_Cancel"), 0); gtk_dialog_add_button (GTK_DIALOG (dialog), _gtk("_OK"), 0); #else gtk_dialog_add_button (GTK_DIALOG (dialog), "gtk-cancel", 0); gtk_dialog_add_button (GTK_DIALOG (dialog), "gtk-ok", 0); gtk_widget_show_all (dialog); #endif gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); gtk_window_set_title (GTK_WINDOW (dialog), "GtkDialog"); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", GTK_MAJOR_VERSION)); #if GTK_CHECK_VERSION (4,0,0) gtk_widget_show (dialog); g_signal_connect (dialog, "response", G_CALLBACK (gtk40_closedialog), NULL); #else gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); #endif } // https://github.com/mate-desktop/mate-control-center/blob/master/capplets/common/capplet-util.c // for gtk34_scrolltabs source function is capplet_dialog_page_scroll_event_cb // of mate-appearance-properties from mate-control-center, GNU GPL 2+ #if GTK_CHECK_VERSION (4,0,0) static void gtk40_closedialog (GtkDialog *dialog) { gtk_window_destroy (GTK_WINDOW (dialog)); } static void gtk40_scrolltabs (GtkEventControllerScroll *event, double dx, double dy, GtkWidget *widget) { // gtk-scroll-tabs for GTK 4.x GtkWidget *child, *event_widget, *action_widget; GtkNotebook *notebook; //g_printf ("go\n"); while (!GTK_IS_NOTEBOOK (widget)) widget = gtk_widget_get_parent (widget); notebook = GTK_NOTEBOOK (widget); child = gtk_notebook_get_nth_page (notebook, gtk_notebook_get_current_page (notebook)); if (child == NULL) return; // ignore scroll events from the content of the page event_widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (event)); if (event_widget == NULL || event_widget == child || gtk_widget_is_ancestor (event_widget, child)) return; // and also from the action widgets action_widget = gtk_notebook_get_action_widget (notebook, GTK_PACK_START); if (event_widget == action_widget || (action_widget != NULL && gtk_widget_is_ancestor (event_widget, action_widget))) return; action_widget = gtk_notebook_get_action_widget (notebook, GTK_PACK_END); if (event_widget == action_widget || (action_widget != NULL && gtk_widget_is_ancestor (event_widget, action_widget))) return; if ((dy > 0) || (dx > 0)) gtk_notebook_next_page (notebook); else if ((dy < 0) || (dx < 0)) gtk_notebook_prev_page (notebook); } #elif GTK_CHECK_VERSION (3,4,0) static void gtk34_scrolltabs (GtkWidget *widget, GdkEventScroll *event) { // gtk-scroll-tabs for GTK 3.4 to 3.24 GtkNotebook *notebook = GTK_NOTEBOOK (widget); GtkWidget *child, *event_widget, *action_widget; child = gtk_notebook_get_nth_page (notebook, gtk_notebook_get_current_page (notebook)); if (child == NULL) return; // ignore scroll events from the content of the page event_widget = gtk_get_event_widget ((GdkEvent*) event); if (event_widget == NULL || event_widget == child || gtk_widget_is_ancestor (event_widget, child)) return; // and also from the action widgets action_widget = gtk_notebook_get_action_widget (notebook, GTK_PACK_START); if (event_widget == action_widget || (action_widget != NULL && gtk_widget_is_ancestor (event_widget, action_widget))) return; action_widget = gtk_notebook_get_action_widget (notebook, GTK_PACK_END); if (event_widget == action_widget || (action_widget != NULL && gtk_widget_is_ancestor (event_widget, action_widget))) return; switch (event->direction) { case GDK_SCROLL_RIGHT: case GDK_SCROLL_DOWN: gtk_notebook_next_page (notebook); break; case GDK_SCROLL_LEFT: case GDK_SCROLL_UP: gtk_notebook_prev_page (notebook); break; case GDK_SCROLL_SMOOTH: switch (gtk_notebook_get_tab_pos (notebook)) { case GTK_POS_LEFT: case GTK_POS_RIGHT: if (event->delta_y > 0) gtk_notebook_next_page (notebook); else if (event->delta_y < 0) gtk_notebook_prev_page (notebook); break; case GTK_POS_TOP: case GTK_POS_BOTTOM: if (event->delta_x > 0) gtk_notebook_next_page (notebook); else if (event->delta_x < 0) gtk_notebook_prev_page (notebook); break; } break; } } #endif awf-extended-2.5.0/src/awf.pot000066400000000000000000000074141407140370000161630ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-06-20 18:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: gtk-awf/src/awf.c:280 gtk-awf/src/awf.c:2731 #, c-format msgid " started with gtk %d.%d.%d and glib %d.%d.%d and pango %s" msgstr "" #: gtk-awf/src/awf.c:2138 gtk-awf/src/awf.c:2160 gtk-awf/src/awf.c:2176 #: gtk-awf/src/awf.c:2193 gtk-awf/src/awf.c:2347 gtk-awf/src/awf.c:2354 #: gtk-awf/src/awf.c:2362 gtk-awf/src/awf.c:2370 msgid "(checked)" msgstr "" #: gtk-awf/src/awf.c:2348 gtk-awf/src/awf.c:2355 gtk-awf/src/awf.c:2363 #: gtk-awf/src/awf.c:2371 msgid "(inconsistent)" msgstr "" #: gtk-awf/src/awf.c:2131 gtk-awf/src/awf.c:2152 gtk-awf/src/awf.c:2173 #: gtk-awf/src/awf.c:2190 gtk-awf/src/awf.c:2346 gtk-awf/src/awf.c:2353 #: gtk-awf/src/awf.c:2360 gtk-awf/src/awf.c:2368 msgid "(unchecked)" msgstr "" #: gtk-awf/src/awf.c:275 gtk-awf/src/awf.c:698 #, c-format msgid "A widget factory - GTK %d - %s" msgstr "" #: gtk-awf/src/awf.c:1674 gtk-awf/src/awf.c:2671 gtk-awf/src/awf.c:2724 msgid "" "A widget factory is a theme preview application for GTK. It displays the " "various widget types provided by GTK in a single window allowing to see the " "visual effect of the applied theme." msgstr "" #: gtk-awf/src/awf.c:2108 gtk-awf/src/awf.c:2327 msgid "Calendar" msgstr "" #: gtk-awf/src/awf.c:291 msgid "Don't start spinners" msgstr "" #: gtk-awf/src/awf.c:2109 gtk-awf/src/awf.c:2328 msgid "GtkScales" msgstr "" #: gtk-awf/src/awf.c:290 msgid "List available themes" msgstr "" #: gtk-awf/src/awf.c:1652 gtk-awf/src/awf.c:2118 gtk-awf/src/awf.c:2336 msgid "More..." msgstr "" #: gtk-awf/src/awf.c:2089 gtk-awf/src/awf.c:2100 gtk-awf/src/awf.c:2304 #: gtk-awf/src/awf.c:2317 msgid "No themes found" msgstr "" #: gtk-awf/src/awf.c:2773 gtk-awf/src/awf.c:2805 msgid "Ok" msgstr "" #: gtk-awf/src/awf.c:2107 gtk-awf/src/awf.c:2326 msgid "Open recent file" msgstr "" #: gtk-awf/src/awf.c:288 msgid "Options:" msgstr "" #: gtk-awf/src/awf.c:2725 #, c-format msgid "Remove %s file" msgstr "" #: gtk-awf/src/awf.c:293 #, c-format msgid "Run and save a png screenshot on %s" msgstr "" #: gtk-awf/src/awf.c:292 msgid "Run with the specified theme" msgstr "" #: gtk-awf/src/awf.c:289 msgid "Show version number" msgstr "" #: gtk-awf/src/awf.c:423 gtk-awf/src/awf.c:738 #, c-format msgid "Theme %s loaded." msgstr "" #: gtk-awf/src/awf.c:402 #, c-format msgid "Theme %s reloaded." msgstr "" #: gtk-awf/src/awf.c:674 #, c-format msgid "Theme reloaded, then screenshot saved (%s)." msgstr "" #: gtk-awf/src/awf.c:2775 gtk-awf/src/awf.c:2807 msgid "This is a question bar." msgstr "" #: gtk-awf/src/awf.c:2781 gtk-awf/src/awf.c:2813 msgid "This is a warning bar." msgstr "" #: gtk-awf/src/awf.c:2787 gtk-awf/src/awf.c:2819 msgid "This is an error bar." msgstr "" #: gtk-awf/src/awf.c:2769 gtk-awf/src/awf.c:2801 msgid "This is an info bar." msgstr "" #: gtk-awf/src/awf.c:284 msgid "Usage:" msgstr "" #: gtk-awf/src/awf.c:2104 gtk-awf/src/awf.c:2320 msgid "_Options" msgstr "" #: gtk-awf/src/awf.c:2076 gtk-awf/src/awf.c:2285 msgid "_System theme" msgstr "" #: gtk-awf/src/awf.c:2093 gtk-awf/src/awf.c:2307 msgid "_User theme" msgstr "" #: gtk-awf/src/awf.c:276 gtk-awf/src/awf.c:2727 #, c-format msgid "compiled with gtk %d.%d.%d and glib %d.%d.%d and pango %s" msgstr "" #: gtk-awf/src/awf.c:2726 msgid "to reset keyboard shortcuts." msgstr "" awf-extended-2.5.0/src/po/000077500000000000000000000000001407140370000152725ustar00rootroot00000000000000awf-extended-2.5.0/src/po/fr.po000066400000000000000000000105501407140370000162420ustar00rootroot00000000000000msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-06-20 18:18+0200\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: gtk-awf/src/awf.c:280 gtk-awf/src/awf.c:2731 #, c-format msgid " started with gtk %d.%d.%d and glib %d.%d.%d and pango %s" msgstr " démarré avec gtk %d.%d.%d et glib %d.%d.%d et pango %s" #: gtk-awf/src/awf.c:2138 gtk-awf/src/awf.c:2160 gtk-awf/src/awf.c:2176 #: gtk-awf/src/awf.c:2193 gtk-awf/src/awf.c:2347 gtk-awf/src/awf.c:2354 #: gtk-awf/src/awf.c:2362 gtk-awf/src/awf.c:2370 msgid "(checked)" msgstr "(coché)" #: gtk-awf/src/awf.c:2348 gtk-awf/src/awf.c:2355 gtk-awf/src/awf.c:2363 #: gtk-awf/src/awf.c:2371 msgid "(inconsistent)" msgstr "(inconsistant)" #: gtk-awf/src/awf.c:2131 gtk-awf/src/awf.c:2152 gtk-awf/src/awf.c:2173 #: gtk-awf/src/awf.c:2190 gtk-awf/src/awf.c:2346 gtk-awf/src/awf.c:2353 #: gtk-awf/src/awf.c:2360 gtk-awf/src/awf.c:2368 msgid "(unchecked)" msgstr "(décoché)" #: gtk-awf/src/awf.c:275 gtk-awf/src/awf.c:698 #, c-format msgid "A widget factory - GTK %d - %s" msgstr "La fabrique à widgets - GTK %d - %s" #: gtk-awf/src/awf.c:1674 gtk-awf/src/awf.c:2671 gtk-awf/src/awf.c:2724 msgid "" "A widget factory is a theme preview application for GTK. It displays the " "various widget types provided by GTK in a single window allowing to see the " "visual effect of the applied theme." msgstr "" "La fabrique à widgets est une application d'aperçu de thème pour GTK. Elle " "affiche les différents types de widgets fournis par GTK dans une seule " "fenêtre permettant de voir l'effet visuel du thème appliqué." #: gtk-awf/src/awf.c:2108 gtk-awf/src/awf.c:2327 msgid "Calendar" msgstr "Calendrier" #: gtk-awf/src/awf.c:291 msgid "Don't start spinners" msgstr "Ne pas démarrer les spinners" #: gtk-awf/src/awf.c:2109 gtk-awf/src/awf.c:2328 msgid "GtkScales" msgstr "GtkScales" #: gtk-awf/src/awf.c:290 msgid "List available themes" msgstr "Lister les thèmes disponibles" #: gtk-awf/src/awf.c:1652 gtk-awf/src/awf.c:2118 gtk-awf/src/awf.c:2336 msgid "More..." msgstr "Plus..." #: gtk-awf/src/awf.c:2089 gtk-awf/src/awf.c:2100 gtk-awf/src/awf.c:2304 #: gtk-awf/src/awf.c:2317 msgid "No themes found" msgstr "Aucun thème trouvé" #: gtk-awf/src/awf.c:2773 gtk-awf/src/awf.c:2805 msgid "Ok" msgstr "Ok" #: gtk-awf/src/awf.c:2107 gtk-awf/src/awf.c:2326 msgid "Open recent file" msgstr "Ouvrir un fichier récent" #: gtk-awf/src/awf.c:288 msgid "Options:" msgstr "Options :" #: gtk-awf/src/awf.c:2725 #, c-format msgid "Remove %s file" msgstr "Supprimer le fichier %s" #: gtk-awf/src/awf.c:293 #, c-format msgid "Run and save a png screenshot on %s" msgstr "Démarrer et enregistrer une capture d'écran png lors du %s" #: gtk-awf/src/awf.c:292 msgid "Run with the specified theme" msgstr "Démarrer avec le thème spécifié" #: gtk-awf/src/awf.c:289 msgid "Show version number" msgstr "Afficher le numéro de version" #: gtk-awf/src/awf.c:423 gtk-awf/src/awf.c:738 #, c-format msgid "Theme %s loaded." msgstr "Thème %s chargé." #: gtk-awf/src/awf.c:402 #, c-format msgid "Theme %s reloaded." msgstr "Thème %s rechargé." #: gtk-awf/src/awf.c:674 #, c-format msgid "Theme reloaded, then screenshot saved (%s)." msgstr "Thème rechargé, puis capture d'écran enregistrée (%s)." #: gtk-awf/src/awf.c:2775 gtk-awf/src/awf.c:2807 msgid "This is a question bar." msgstr "Ceci est une barre de question." #: gtk-awf/src/awf.c:2781 gtk-awf/src/awf.c:2813 msgid "This is a warning bar." msgstr "Ceci est une barre d'avertissement." #: gtk-awf/src/awf.c:2787 gtk-awf/src/awf.c:2819 msgid "This is an error bar." msgstr "Ceci est une barre d'erreur." #: gtk-awf/src/awf.c:2769 gtk-awf/src/awf.c:2801 msgid "This is an info bar." msgstr "Ceci est une barre d'information." #: gtk-awf/src/awf.c:284 msgid "Usage:" msgstr "Utilisation :" #: gtk-awf/src/awf.c:2104 gtk-awf/src/awf.c:2320 msgid "_Options" msgstr "_Options" #: gtk-awf/src/awf.c:2076 gtk-awf/src/awf.c:2285 msgid "_System theme" msgstr "Thème _système" #: gtk-awf/src/awf.c:2093 gtk-awf/src/awf.c:2307 msgid "_User theme" msgstr "Thème _utilisateur" #: gtk-awf/src/awf.c:276 gtk-awf/src/awf.c:2727 #, c-format msgid "compiled with gtk %d.%d.%d and glib %d.%d.%d and pango %s" msgstr " compilé avec gtk %d.%d.%d et glib %d.%d.%d et pango %s" #: gtk-awf/src/awf.c:2726 msgid "to reset keyboard shortcuts." msgstr "pour réinitialiser les raccourcis clavier."