pax_global_header00006660000000000000000000000064122106702750014514gustar00rootroot0000000000000052 comment=08b9614c6a65a9371e948d56b6e238eec36d8efb libphone-ui-shr-0.1+git20130901/000077500000000000000000000000001221067027500157605ustar00rootroot00000000000000libphone-ui-shr-0.1+git20130901/.gitignore000066400000000000000000000006061221067027500177520ustar00rootroot00000000000000stamp-h1 Makefile Makefile.in src/*.lo src/*.o src/*.la src/.libs src/.deps src/Makefile src/Makefile.in* configure config.* po/*.gmo po/*.po~ po/POTFILES po/*.pot po/*.sin po/*.sed po/*.header po/stamp-po po/Makefile.in* po/Makefile po/Makevars.template po/Rules-quot po/stamp-po data/*.edj autom4te.cache aclocal.m4 m4 ABOUT-NLS depcomp install-sh libtool ltmain.sh missing mkinstalldirs libphone-ui-shr-0.1+git20130901/AUTHORS000066400000000000000000000005411221067027500170300ustar00rootroot00000000000000#Authors in alphabetical order David Kozub Klaus 'mrmoku' Kurzmann Lukas Märdian Martin Jansa Rui Miguel Silva Seabra Sebastian Krzyszkowiak Thomas Zimmermann Tom 'TAsn' Hacohen libphone-ui-shr-0.1+git20130901/COPYING000066400000000000000000001045131221067027500170170ustar00rootroot00000000000000 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 . libphone-ui-shr-0.1+git20130901/ChangeLog000066400000000000000000000000561221067027500175330ustar00rootroot000000000000002008-09-19 quickdev * Initial setup libphone-ui-shr-0.1+git20130901/INSTALL000066400000000000000000000224501221067027500170140ustar00rootroot00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 6. Often, you can also type `make uninstall' to remove the installed files again. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. libphone-ui-shr-0.1+git20130901/LICENSE000066400000000000000000000636421221067027500170000ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! libphone-ui-shr-0.1+git20130901/Makefile.am000066400000000000000000000003741221067027500200200ustar00rootroot00000000000000SUBDIRS = src data po ACLOCAL_AMFLAGS = -I m4 MAINTAINERCLEANFILES = \ Makefile.in Makefile aclocal.m4 config.guess \ config.h.in config.sub configure install-sh \ ltconfig ltmain.sh missing mkinstalldirs \ stamp-h.in acconfig.h stamp-h depcomp libphone-ui-shr-0.1+git20130901/NEWS000066400000000000000000000000001221067027500164450ustar00rootroot00000000000000libphone-ui-shr-0.1+git20130901/README000066400000000000000000000001071221067027500166360ustar00rootroot00000000000000This is the new openmoko dialer that makes use of frameworkd from FSO. libphone-ui-shr-0.1+git20130901/TODO000066400000000000000000000041551221067027500164550ustar00rootroot00000000000000* convert sim-auth-input-view to ui-utils * convert the call screens to ui-utils * convert the USSD view * convert the dialogs * Change a lot of the mallocs to eina_stringshare_add, better for internal use * Sim Auth * Vibration when wrong PIN or PUK was entered * Incoming Call * Dialer * Make + work * USSD * Messages * Contacts? # Move all the utility functions to phonegui # make a special source for weird string functions # Make a g_value_safe_get_value and put it in the same file with the other gvalue funcs. # Fix the g_value mess, internal design does NOT use g_values and when getting data from dbus function that do, just use a wrapper to modifiy. # Write sfree (i.e- safe free) that checks that the value is not null before freing maybe even a macro that also sets to null afterwards. # Fix the mess with hash tables in call-* and probably everywhere else as well, atm we don't free just allocate, a lot, even when there's no real need. # When calling cross frame functions (i.e contacts from dialer and etc, use phoneui_* functions and *not* frame show functions) #order the mess in the makefile.am's split into dirs #Remove the ugly hack from views.h (and actually drop most of it entirely) KNOWN BUGS Messages: - list does not reload after deleting a message - text wraps badly when writing a message - message display does not scroll when message is too long - no index when adding a contact Contacts: - new contacts don't get into the list (have to restart) Notes from max_posedon: [08:56] max_posedon | 1. it sometimes haven't enough time to register to GSM at phone start [08:57] max_posedon | 2. it doesn't shows incomming sms, I see "1 new message" at home screen, press it -nothing [08:58] max_posedon | 3. shr-messages/shr-contacts empty at first start [09:00] max_posedon | 4. shr-messages in "list" doesn't show contact names, only phone numbers [09:01] max_posedon | 5. shr-messages on "new sms" line-wrap is very small, near 10 I think TODO: * Make caching on boot/on first load configurable sim-manager: * show loading screen when importing all * add index to genlist * sort contacts by Name libphone-ui-shr-0.1+git20130901/autogen.sh000077500000000000000000000001271221067027500177610ustar00rootroot00000000000000#! /bin/sh autoreconf -v --install || exit 1 ./configure --enable-maintainer-mode "$@" libphone-ui-shr-0.1+git20130901/configure.ac000066400000000000000000000022651221067027500202530ustar00rootroot00000000000000AC_PREREQ(2.53) AC_INIT(libphone-ui-shr, 0.0.1, http://www.shr-project.org/) AM_INIT_AUTOMAKE() AM_CONFIG_HEADER(config.h) AM_MAINTAINER_MODE AC_GNU_SOURCE AC_ISC_POSIX AC_PROG_CC AC_STDC_HEADERS AC_PROG_LIBTOOL # base deps PKG_CHECK_MODULES(LIBPHONEUI, libphone-ui) PKG_CHECK_MODULES(LIBPHONE_UTILS, libphone-utils) PKG_CHECK_MODULES(GLIB, glib-2.0) PKG_CHECK_MODULES(FSO_GLIB, fso-glib-1.0) PKG_CHECK_MODULES(FSO_FRAMEWORK, fsoframework-2.0) PKG_CHECK_MODULES(E, [ evas ecore ecore-evas edje elementary ]) AC_SUBST(LIBPHONEUI_CFLAGS) AC_SUBST(LIBPHONEUI_LIBS) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIC_LIBS) AC_SUBST(E_CFLAGS) AC_SUBST(E_LIBS) AC_ARG_WITH(edje-cc, [ --with-edje-cc=PATH specify a specific path to edje_cc], [ v=$withval; edje_cc=$v echo " Enlightenment edje_cc explicitly set to "$edje_cc; ],[ edje_cc=$(pkg-config --variable=prefix edje)/bin/edje_cc ]) AC_SUBST(edje_cc) AC_SUBST(DATADIR, $datadir) ALL_LINGUAS="ar ca de es fi gl pl ru sv cs" AC_SUBST(ALL_LINGUAS) AM_GNU_GETTEXT([external]) AM_GNU_GETTEXT_VERSION([0.12.1]) # output stuff AC_OUTPUT([ Makefile data/Makefile data/idle_screen/Makefile data/widgets/Makefile src/Makefile po/Makefile.in ]) libphone-ui-shr-0.1+git20130901/data/000077500000000000000000000000001221067027500166715ustar00rootroot00000000000000libphone-ui-shr-0.1+git20130901/data/DejaVuSans-Bold.ttf000066400000000000000000021373201221067027500223010ustar00rootroot000000000000000FFTMSH<GDEFNFrX0GPOS͗vdGSUByOS/2J}VcmapL5{X2cvt >1DTfpgm[kgaspD glyf_P8headX6hhea$hmtx4THkern$?4!locaB^VTLmaxpW- namer=5post Hprep|a(eƼHƼH(Y          "##$HIIJLMQRpq|}     "#     ; < < = I J P Q Q R U V W X o p q r        67)*34XYYZ JDFLTzarabarmnbraicanschercyrlgeorgrekhanihebrkana*lao 4latnDmathnko ogamrunrtfngthaiKUR SND URD MKD SRB 4ISM 4KSM 4LSM 4MOL 4NSM 4ROM 4SKS 4SSM 4kern2kern8mark@markNmarkTmkmk\mkmkdmkmkj     (08@JRZbjrzp02  Pd!0136787F]s0&:  sv{sv{ &,28>DJPV\bhntz::::r 4 4 `Iqrtuwxyz|Iqrtuwxyz|JPV\bhntz$ * llN>X  &,G&--G " &,28**`*-|*~*h. $JPV\bhntz tH%   "#   !"# $*06<BHNTZH6 7pv| $*06<BHNTZ`flrx~hhf>fff>=>>jjjff   J P&**-,,..3/YY56  J P%*3,YY678 $*06<BHNTZ`flrx~ &,{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ $6HZl~ q^j q^j q^j q^j q^ q^ q^j q^j#sv{>DJPV\bhpx~x  "*2:BJRZbjrz "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\dlrx&.6<DLRX^djpv|     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z     " ( . 4 : @ F L R X ^ d j p v |     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z  "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~0_R * tx"l} __q_R_Xjjj,,,&j&jXXvjj,,8 8 >?R>XjqRRj jjkjj,,,,,,,XXXX888jj >R>,qRRXjd01edx3\QQQ*N~}}0" W tx"l}_"!jjjjjj8888,,,,,,,,XXXXjjjjjjjjR>RqqRR\\^^^,^^^^^^^^^^^ ____qq__RR__\\Xj&jjjjj,,\\,,,,&j&j&j&jXXXXjjjjjjjjjjjjjjjjBB88 88jj > >??jjR>RXj&jjqqRRRR\\j8kj,J,,,XX >R\\X&jddd000111eeedddxxx333\\\QQQQQQQQQ$ALegp8BDc |:DsFW~t|~~#sv{BHNTZ`flt| 'PX`hpx $*08@HPX`fn000 0 0 0 000>010m01 #m000 t0 wt00E00K00tt 0p0 #  $*,022 45 78:>    26"0 $6HZl~ qr : qr : qr  qr  qr  qr  qr  qr Iqrtuwxyz| V^djpv|2```H  nv~ $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz     " ( . 4 : @ F L R X ^ d j p v |     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z     " ( . 4 : @ F L R X ^ d j p v |     $ * 0 6 < B H N T Z ` f l r x ~ b`_`` `L__4qF_r&_r      rr&~& LL RRq&R&RLJ@ n     L L L&x&x4 q&&Rd01e3[_3 \QQQ`b`` ` L L L L P P n n&x&x^^&x&x^^qq&R^^^:,^^^^:^:^^^^^:^:L___4_4qFqF_r_r&FF_r_rtXtBBFF                  BBrrrrrrrr&~&~B&&B L LnnL&Rnn  ^^rrRRRRRzBBRXRLqq&R&R LLL&RLLBBBBxxJ@   444 XRddd000111eee333[[[___333   \\\QQQQQQQQQ%%))//88Legp(*Igh&&i,,j7|k:D5FW@t|R~~[\Iqrtuwxyz| v~ 2``{{{{{{{{` <BHNTZ`flrx~Q@`(&@E\U  -.0 >DJPV\bhntzQ`````````````````(`&``@``EJ  ++-.   !" 28>DJPV\bhnt````````````&. [ $*06<BHNTZ`flrx~ &,28>DJPV\bhntz $=D]4689=IUZ D6L  $^- {{f $*06<BHNT^^^55R LX-*[  F X g $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z     " ( . 4  |WzzRqof|f>fR^_Rd/RR^ZRT'R^^j qfz~RRd_R >zR_RR^RR=F_RRRRRR5^6>c^RR//R/RRRG1RUUU^R^R6ZZZRcRRR{R6RRTRRRRRRRfZy_RTRZZRZ`7R!Rdd=fz^^ffb#DaT6R"Y$R6fiR#>R}~Rsk|WqTRfWUWRR"R~RrVbe@`\`\`\R'+%CmJ^RRRzV >R+fQTR~ZSR5_Rd RN$= D]$>@ABCDEFG--HJJILLJZZKaaLddMnpNvvQRST V m]II33|}336;>>@FMNRTWW S S [ ^ ` b e e h m t t x x | }    &2z{7}9KMNQSY[`[\assc}}def   !"# $*06<BHNTZ Hp 0bhntz "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z     " ( . 4 : @ F L R X ^ d j p v |     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z  "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz $*06<BHNTZ`flrx~  Wzzq|of"f>f{d{Z{{d^/_/dd/{{{{{U{Z{{{{{{T{L'{{{{^{{j{dm]{ {zzdyYofmZ{~z{T{{{Zd_{ >{z_/ZU{{{{{d{{ZZ{{{={{{F{_{{{{{{dd5/^{6{>cdd/{/{/{{{{{G{{19{99{U{U{'{{Z{Z{Z{_{{A{{{{{{{T{T{T{T{fZ{y{{_/{j{ZZZ`{7{!ddv{{={{P{{{{{{{{{{({{({z{(z{L{{V{{{_/f{={{zzY  YfWfY"Y0$ P{{E{U{{{{{{[{D{{{{{{`{{{{{9{9{[{{{E{{{{Z{^/^/_z{GD{{T{f{f{G{{{f{f{fd{WW{D{f{E{{[{4{V{{[{{{'{{{{{b{#{{D{{{{{{{`{{{{T{{[{{6{5Y${6f iD>R}1{~{sd|y|"{WdqdT{{f{{W{({9{{{>{{U{[{D{f{&z{m{`{`{Wd"~={b{e@{{{`\{`\{`\{|'%C{m{J^{{zV >+fQT{{{{{{Z{*{S{{{{{o5{_{d^{^{^{ {y$= D]$>?ABCDFGHBCIHJKLLNOPORRQTURX]T__Zaa[ff\ij]mp_txc{{hijkl n muEUW]deijlmooww )?CK M##S*+T.6V@@_[[`^^abbb|}cefhijmn33o5;p>>w@FxMNRTWW[[ S S [ ^ ` b e e h m t t x x | }       ~ ~z{} %Z\&ss)}}*+,./ !#$) J P/*36YY@AB "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~{{{{{{{{{{{{{{{{{{pprpr{pr{{{{r{{{{{{{{A{O{{{{{{{{{{{{{{{{{{{{{{{{{{{{{@%8kY&&&au<aa<DrDr/&&KK&kk}}&N}&&au)&D&9a&a&&&a/ \<,@a=akuDYYY&&N<DDDkDDDDDkDVV&YY}}aD&&&&au<aa<DrDr aua/ kanaPlao \latnhmathnko ogamrunrtfng thaiKUR SND (URD (  MKD SRB  4ISM FKSM FLSM FMOL ZNSM FROM ZSKS FSSM F    aaltaaltaaltccmpccmpccmpccmpdligdligdligfinafinahlighliginitinit ligaligalocl locl&locl,medi2medi8rlig>rligHsaltPsaltVsalt\     'PX`hpx "*2:BJRZbjrzJ \(t 4<f ^ b  f     P     ( f hxptx2hpx !$%BBB B6##6689LM *_ J K L M h$=EEGGIIKKLMNOWW      ""$$&&((**,,..0022446688:;==??AAHHRRTTVV  **__  J M &   &$$4F!!$$4F""$$4F##$$4F$$$$4F%%(0&.6&.6&.6   &(0 &b4N`jt~",FP 3  2!"#$% 4&'()*+ 5,-./0 1  $*,022 45 78:>007N D :@LD8FI<H@LO\XR`dj|th=PTlpvtUvzy~Megp#%l3 x<BNF:HK>JBNQ^ZTbf?RVnrxDW|{ QQSSUY^egmop)1l3 w;AME9GJ=IAMP]YSae>QUmqwCV{z QQSSUY^egmop)12  ww vssvw~&8Jlww zw zw utrq utqrtuwz > $J 8 "(IOILOLI OLIRl$*06<xwvutsrqP{NzMy &,xwvutqOzQzRfnp60$B 8  WVWA(:FPZfr "   " $; <V p0 q(/ QF WX VR")567DF  gfhdeji#9?FLTZgfhdeji#9?FLTZs}Z,-DO *"&s}Z,-DO\  6 -+.,01*2/3Y  ![\ LM *_ QV[`e33f . `)PfEd m`,(, p~OSXZbw~%V_  :UZot?5JR>PjGv#.[jx{EMWY[]} ' d q ! !I!K!N!###!#(#,#u#z#}######$#$i&&'' '''K'M'R'V'^''''''()) )A))))***/***++$+T,o,w,}-e-o..%..MGMQWn+?KO6<>ADO#t QWZ\pz 1Ya  !@Z`ty? 7LT@RtFn&0]w{ HPY[]_ * j t !! !K!N!S!###$#+#s#z#}######$"$`%&''' ')'M'O'V'X'a'''''')) )@))))** */*}**+++S,`,q,y-0-o.."..MDLPTb&0FN8>@CFR pv^\TO>=<4/,+&" mljiga`_^][ZYWVUSQ~}|zyqpofbY+)320/." zvsoQPOMI>8642\ K 2%@7/ÞkZkVkTkRkHk-k'jjjjjjjojji7}}m! % ~bOQSWXZZ\bpwz~"#7 %1VY_a "$?D  F  HIJK!:L@UfZZ|`o}tty??#-/U 57JLRT:e>@PRjt  FG nv 3#H&.V0[_]jwx{{ d   E HM PW YY [[ ]] _}  2 g v    ' * d j q t  / 4 J L N P!! Q! !I [!K!K !N!N !S! !# ## P##! R#$#( X#+#, ]#s#u _#z#z b#}#} c## d## e## f## z## |## }$"$# ~$`$i %& &&'''' ' ''')'K'M'M'O'R'V'V 'X'^ 'a'''H''`''n''p''q'(w))) ) )@)A))))))))*** **/*/*}*****++++$+S+T,`,o,q,w,y,}-0-e!-o-oW..X.".%Y....]MM^DGLMPQTWbn&+0?FKNO6 8<#>>(@A)CD+FO-R7gsuwy} #ptvV#89z;>|@DFFJPRkV׏   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a rdei xpk rvj \s gw @ O MT il|=cn XT Dm} b : @  y qzf3f=ffTbfTfmf3bq%fHZfm99Xm=fuff9{{X3fLfLJ#DDf?;Pw /X#/553X sf+j-j!f#^`3B3\fy```{j\{`bXP1L`%!JJ7{'}3Xy9bs&, %Id@QX Y!-,%Id@QX Y!-,  P y PXY%%# P y PXY%-,KPX (EDY!-,%E`D-,KSX%%EDY!!-,ED-,%%I%%I` ch #:e:-ff&&/10!%!!fsr) @ <2991/0!!!!h33h^h@1<20###h++)K@1     91/<2<<22<<220!3!!!!#!#!5!!5!!!`aaE````HFR`PF#*1s@? %$ + ,#,, (/($ +/ 2<<991/99999990#.''.546?3.'>54&}osy!dede GUNWWP-.);?7* "*/(BE5;CBBDCB '3c@5  % ."( 41+  1 +%49912<0KSXY""32654&'2#"&546#3!2#"&546"32654&3GNMHHLMGֺ%պպHNNHHMNh{rs{{sr{ؽ۽ ٽڽ٨|rs}}sr|{&06@Y     ,-./+0()'%0' - -! '*$ 0$*$  *  199999991/99990KSX999Y"']@   ' 0   0%/ / %&? ? @K K K/K0ZZUZ Z U(\.\0X2_2dig`i i d&2, ' '* 9 5005@J I'I(WW\ ['ggl ]] >7!!'# 5467.54632.#"3267577oc%Xbi*([k^PMU1ABwCt2>FnkmFDےj5j:0.;6"W/wGs))@ 10#+ @ 29910!&547!י);: @   29910654'!)?C)9F@(      <2<29912290 %#'-73%JLLNLNMXX "@   <<1/<<0!!#!5!    m9@ 10!#hduo10!!ot91/0!!h}B/99103#mb/ #@  10&#"326! ! i||jj|{j@'&@mstm (@  1/20!%!!!T[nT HH5@)% K TX8Y9991/2990KSX9Y"@&**"""555BJFF]]!!>54&#">3 N!IFuZzz )~B~DiMLH+-zӱ(L@+  #)& )999190!"&'32654&+532654&#">3 sqlg~]^rl#!%'%%)67jcfi[]V^*) \3 C@ !  ! %    <291/<290KSXY" !!3#!!Z@jRJ=@"  " 190!!>3 !"&'32654&#"v,Y00{zaSl 12/FFuv+-# $7@ "% %$%190"32654&.#">32! !2eeeefeev_PB[uEgჃ-+11ir E@%91/0KSXY"]@ &5F]!!!e'1} #/G@( '-0 $*& '&!$0991990"32654&%.54$! ! $54632654&#"lttlkrr|כc\ZbbZ\cvnnuunou)ž)*ސUY``YY_`j$7@  %%" $%19073267#"54! !"&2654&#"\RDZ9$@ieffeeff!++22 "vYN`@<21/0!!!!ii`}}N` %@  <210!#!!idiu}=@29190 5<'@ <210!!!!=@<91905511J!H@'    "<299991/9990!546?>54&#">32!!Bj@95`VQfy]N^@D*i1Rb:4\.FOCB:*(ǿbY9>K-o Ml@: 40LM3 30 07$CN34L **)(I(*)4=N<991299999032654&#"#"&5463253>54&'&$#"3267#"$'&5476$32!#?iZYjkZXiYثY|:;_tZked~Yk}٘~~On{KM'{zyZGOPGKɝdIz=;bɵdbg^Pag}}IJ}|b~ ' @@     %    Բ]91/<90KSXY"@ / V f  t   %* IFGH XYVWhifg` t{zu{t      /]]!!!!!F_}))}+%R P@%    !299991/90@ ""/"P"]2654&+2654&+)! [^^[tutuH|B7fPNMQsbcaay$ռmf\;@    - +21990/_]%# !2.#"3267\j}Lu}jksskR78ef87IDDI9.@  -. 99991/0P]32654&#! )=TMwiffixjq#ateeta 0@   21/0 P p ]!!!!!!rg +@ 21/0 P p ]!!!!!rgfK@%    1 3/-+19990_]%# !2.#"3267#!ʥLy}|@   221/<<0@P ` p ]!!!!!!89+y=,KTKT[X@8Y1/0@P]!!+f= A@   KTKT[X@8Y991990 @ P ]!!#3265N3IO@UZfi ]]!!!!mR+ff 2@  -7-+10@ /?]"3254 ! f°±hhgddjk 1@   - 299991/0]! !#!32654&#1pzzp_mddlffb@   - 7-+999190@,  '/V S f ` w w p  Y Y YXj i x ]]# ! !"3254fgk-¾lkh\@2%       29991/<9990KSX9Y"]@66EEVVPee`]2654&+!! !.#yiiyL'O}@f7q^?ZgfX֔-XspR-'@*% %( "(999919990@Tp)9999 JJJ X ]\^^ Z!joooh o n!t t t || |!  !  !(]].#"!"$'32654&/.54$!2{hYuӎ⏏ |~[ {78LP3 pq[QeiH"ӆsUst/ LJDMm)f]ˢŸUO..^ 8@ B@ 221/0O`]%2654&#">32#"&'!!syyss{{{Ju uJf稠b]]bX5{7@ B ;210_].#"3267# !25IOT@TWV/X=202177\8@ @B ;221/0O`]!!5#"322654&#"hJu tsyysryyXc\II]ɨX {C@!    D ;9190/?]!3267# ! 4&#" q}K"=w`h3f~~CD015:“f}un'Q@    E K TKT[X @8Y<<991/22990@]#"!!!#35463L<27DN`N\Fy(K@& #& @ B;)221/990O*`*]%#"54325!!"&'3265"32654&Ju uJhic^[o|xsp||b\CA\c !655@   G 21/<9990`]!54&'.#"!!>32 H.pfQnVon#'b])@ <21/0@ P ` p ]!!!!ff`F =@    <2991990@ P`p]!+53265!!fͱ>fLf`\y @   291/<90@`;IIZ]X_ogvv{:DGJV]g`ewpv|]]!! !!fNNK- 1/0@ P`p]!!f{%i@)   #  H H &KTX@8Y<991/<<<29990@'0'P'p'''']>32!>54&#"!4&#"!!>32DpFNfo@RgphBgthmVH wkHk`_`p{5@   G 21/<9990`]!54&'.#"!!>32 H.pfQnVon#'`b]X'{ -@  BLB;107?G]"32654& ! w}}wu||u!EG{88V^{;@B @ 2210O`]%!!>32#"&"32654&fJu us{{ssyy b]]7\Vy ;@  @B;2210O`]"32654&#"325!!ryyrsyyyJu uJhw+c\IG\c{7@     KTX8Y21/990.#"!!>32/]/fE}*(/`nejb{'@@  6  6% %( SRP"M(9999190KSX99Y" ]@^ #  ,. . . . . ) 9; ; ; : : K J J J H w w  %  7 ?)_) ]].#"!"&'32654&/.54632s_fcKa?o}ktijIm?c=0035+. ###44:90/ m@    TKTKT[KT[KT[X@8Y<<991/<2990@??PPP`` ]]!!;!"&5#33q>\Ա%N7>`;@  G 291/29990`]!3265!!5#"&hG.pfQmp[.w#&)b]`@'%Դ]91/290KSXY"@| 0@Vf  &$+)64990FFII`x$]]! !!fgGw`H` @J 4  4 4 4   %     K TK T[K T[X@8Y91/<2290KSXY"@ 550 G @ @ _ l        &$+)*+ $ % /554;::78 ?GIFHGH YVV[ T Y _f`b```d ` upspppt p      []]!!!! !H\+\yy` ` y@F    %    K TKT[KT[KT[X @8Y91/<290KSXY"@  / 3< CL R\ bl sz         2     $++$ 4;;4 0 DKKD o       :]] !! ! !l{{l=#LbF`6@C %    K TKT[KT[X@8Y9129990KSX9Y"@ @Pet $$$5586699EEJJEEge    9]]! !+5326?f-f)Gp[S `6:K\F` @% Դ]2991/0KSXY"@DYVifyv &)/ 9? J_ ]]!!!5!uNN`f$^@1 %   ! % $  %<<29999999199999990#"&=4&+5326=46;#"3l==lEUZnoYUmutWW10#$`@2%   #%# %<2<9999999199999990326=467.=4&+532;#"+FUZooZUFl==lmWW͖tuR#@  1990#"'&'&'&#"5>32326j`k^Xbk`k^VRPE:=MSPE:=K @ <2991/0!!!33h=^qd#W@.    !$   B$<<222991<9990.+>7+#$4%3NMMNJAY9S: GZ,lm*902i2/  (.##}@@!   <<1/222990.#"!!!!3#5356!2FMvqu\'&} FJ=#/@ ! ! $A !* @&00   '}|~-} |022999999122999990'7.5467'7>327'#"&72654&#"ϙљ0l=6l9ϘϚ.j?:l[\[~ Ϛ1k??l.͚Ϛ7n6?i/ϙ\\\]~y@B  %     nm n m<2<2999991/2<<<290KSXY"]@, $+6:FI   0@ ]]!!!5!5'!5!! !!!!N9:1k$! %j1`BV3VB@ <210##  =3?k@8@1:4 %+1@ =!+%74:!=\.!\=[.7[(@9999991999990.#"#"&'532654'&'.5467.54632>54&uc9KL ҟquMKUfs9AN$ˠoqKATDC{AF''1/CO Y}u0)qI)+2(FJWh33oKL2CbBO4Cj;;1\@1<20K TK T[KT[KT[X@878YK TX@878Y3#%3#11IH@(  2&>f,X c8e XhDJ21/990.#"3267#"&54632'"3267>54&'.'2#"$'&5476$+9o9q~r@s.A>EyWWWWWVy{WWWWWXymmllmmmmllmmf%#rs~$#WWWzyWVVUWWyzWXVnmmmmnnmmmmnu)@$' # A # @'*# s#s*999991999990@??;;;? ?;;;???;]!!"326=%#5#"&546;54&#"5>32-ӅhB:Yr 7^YUWO\K=4>3:rWT@LHt8;##j' 5  @  y y<2991<2990 5 5%$'qsq@ 10!#!o10!!ot 4Lb@8-*+'0!5 2+A'*,$0-+$!1g3f$cX;eX3cGM299991/29990"3267>54&'.#32654&'2#'.+#2#"$'&5476$yWWWWWVy{WWWWWXϲ##NOM+i`)Gok&: 1mmllmmmmllmm3WWWzyWVVUWWyzWXV5442wyVpP:NAD7nmmmmnnmmmmnX;E10K TKT[X@878YKTX@878Y!!vdL @  XYX10"32654&'2#"&546HdcIHdeGBz0/11-0|D\dHHbcGHd3/0xDCy-03 .@   l l <2<21/<<0!!#!5!!!  bbm]@%   "@99919990KSX9Y"!!5>54&#"5>32r_9=4I;>TWKGeD 5P(2>-/oHyVZ(W@ #  ""#@#)& )99919990#"&'532654&+532654&#"5>32P\fQDB<_hkrJTbZNP4{FAWZ`nQ$%@;@=/3--piE`mf710K TKT[X@878Y]!#fT` B@!  !   !2912<990""]!3265!3267#"&'#"&'idfgdh!'!5]-Yq#/YJhT utqqtG8 KSOO/0;d &@ ^^9120!###.54$\fN۲910!!h}o5@   991/0K TX@878Y!#"&/32654&'Z:7{0f42S!:A+->j/_[ .(R<{ 7  @   129035733!9 41Zuu 9A  @  uu 99102#"&546!!"32654&B7T[[TS[[޾ܾM~tt||tt~' 5  @ yy <<991<2990 5-5-%!$'d' zd' {d' 'td{h' zd' u!M@*   "  "<2999919990!3267#"$546?>5%!!iAm@84`VQew\N^@D*ii1Q~d:3\/FPDB*(ǾcX:=L-d 'k&$-u 'k&$+u 'k&$.u <1 's&$,{&+@0?&]1 'k&$*u +@p@O / ]1 'm!{@S!! ! !%! !  UU "9999999991/<9990KSXY"K TX"""@878Y@/!/!:!o! !! # ///  /// "+ #EKUZ` ` ` ooo``ooo`fi `#tuyz{t    D]] !!!.54632%32654&#"!}^_}vtwM66MN56MJH"K+uu/L{6MM66MMR@7%     /<291/<90KSXY"K TK T[X@878Y@&W ] !!!!!!!!!{y}sfb^fo\&&zsk&(-uk&(+uk&(.uk&(*u @@@]1=k&,-du@@]1k&,+du@@]1k&,.|u  Ic:1Ak&,*|u +KQX @88Y1!L @   -. <291/<20@X!P!`!////////OOOOOOOO________(]]3#32654&#! )#3PULxhgghyk#ateetamm&1,5uffk&2-Nuffk&2+Nuffk&2.Nuffm&2,gu3"+@@"O3]1ffk&2*fu$+@pP_ / ]1) /@   <291<290  ' 7 NNNN3NPPN- +@> +,   )*&& &,+,* # )-#7-+,99999999199999990@p- -*'&!/-976!9)?-GYVT!Y(Y)jege!j%j($'))68)KFE I)Z^SVV T!V"[(j ejlaf c!k(x ]]3254&/.#".5!27!"&''\4SM3RJJgfqMLhfqs>;Du1:9@q.dkKMscdOOqk&8-'uk&8+'uk&8.@u<1k&8*@u +@p`o0? ]1k&<+u @ p o _  ]1 @  - 2299991/0K TK T[KT[KT[KT[X@878Y@,0000PPPP]]!!3 !32654&#=1pzzp]mcenh0j@4.(" !++/"!(%  a%.(a_ . 199991/990@ /2O2p22]4$! #"&'532654&/.5467.#"! 1]EtkAJ8s6HX7bFXT`[efZG NJ%94%@uH9/D7'1Zt2UYnmXf&DCXf&DvXf&DX9&D ?0+1X1&DjX&D@ &2O&O2?&?2]1X{>@B8>66'&# 6-*>;0*? - 6 & 7 3;?<9999912<<<9990@N>>?@MMO@^^_@nno@@@2=0>B=@>R=P>b=`>=>=>=>=>]]4&#""326=>32>3 !3267#"$'#"&54$!354&#"w`gpq[Qe^waGMz =q}~Heߋ"ӆsUf}unLJDMm)JMOMOf~~CD01kdkdŨŸUO..Xo5{&FzX f&HCX f&HvX f&HX 1&Hj @pp ]1f&Cw @p@]1f&vw@p]1f&^  Ic:1#1&j^ +KQX @88Y1X'(@Y&'('%$%(('"#" ! "! 5((5(%('&%"! ## #)'& !#(%" BB;)999919990KSX92Y"KTKT[X)@))878Y@6f!/*76"?*O*oooooooooo]].#"32654&! 4!2''%'!%7l4uru| uj-.N$%3`ox#y-\8 watr`9&QX'f&RCX'f&RvX'f&R <1X'9&R 1"+1X'1&Rj +1V 0@  z{z <<10!!!!!!33XˁN) +@> )+ *& &&++, #* #)B#LB;,999999991/9999990@@:5 ;75!8)?-IF KGD!H)[VT!U(ikfe!e(5:)EJ)U^(i em( ]].#"32654&'.5!27!"&''XK/w}HO0u|;CDG"jKmFElMpD)A+CN{8,,eP~--^f&XC@@]1f&Xvf&X  Ic:11&Xj +1Ff&\vV^;@B @ 2210O`]%!!>32#"&"32654&fJu us{{ssyyb]]7F1&\j 'O'q;$ +@ p/ ]1@]0X'qD@O]1 'z'4$ +@ p]1@o]0X='D@O]1 o''$Xo{'Df\k&&+fuXuf&Fvf\k'.u&XVf'Ff\k'1u&X51'Ff\k&&/fuXLf&F9k&'/ u\&G) @ O?]1!L\$K%@"      @"B;%<<1/<20O&]!5!5!3#!5#"322654&#"FhJu tsyysryyrr+c\II]ɨO'q;(+@ O@/ ]1@]0X 'qH+@ O@/ ]1k'0u(X F'H@O]1k'1u(X 1'Ho'(Xo {'Hk&(/u  Ic:1X f&Hfk'.u*\Ff'Jfk&*01u\FF&Jfk'1u*\F1'Jf6'_*\F'JJk'.Yu+  Ic:1k'.fuK&+1K QX88Y@ ]<@      2222221/<<22220!!5!3#!!!#53!5H88ջyX¼<@   G  2221/<229990!54&'.#"!#535!!!>32 H.pfkQnVon#'kkb] m',|u,% $+19'_  +1AO'q|;,+1@]0$'q_+1,k'0|u,+1F'_+1o&,o&L=k&,1u+1` 1/0@ P`p]!!f`f6'-,@1F'ML@1fk'.|u-  Ic:1Ff'_  Ic:1Sq'f<.Sy'<Ny` @   291/<290@`;IIZ]X_ogvv{:DGJV]g`ewpv|]]!! !!fNNK`e-l'+v/@ pP`@0]1l'+vO#@ p`@]1K QX@8Y@]0S'</ @]0S/'/<O')o/')OK QX@8Y@]1'y/'yO `@2 %    <<.9991/90KSXY"!7!!'%s۔#` j ~@-   %    T <2.991/90KSXY" ]@ut@ P ` ` tp p  ]]!7!'7ho}o XVl'++v1m&v}QS')<1S{'<Qk&1/quf&Qi!'Q~f+@  21@ /0%!#3265'&#"!!>32؄N3 %"32654&w`hA q}~~HRՂG"QRLJBcw}}wu||f}unwf~~CD01QWTT88RVWQ:l'+v5m&v}US'.<5S{'/<Uk&5/uf&UU-l'+v6jbm&v}V-k'.u6jbf&ZVo-&6zjob{&Vzb-k&6/ujbf&Vb oj'z7o&zW jq&7/{ +@ ]1&W)7 j.@   8 8 <<1/2<20!!3#!#53! `:@  T<<2<<1/<<<20!!3#;!"'&=#535#33q\XYNXYԍ>m',?u8. $+@ / ]19'XO'q@;8+@ p]1@]0'qX+@ O@/ ]1k'0@u8+@ p]1F'Xn&8DS &X@&``&PP&??&]1k'2'u8f'X @??]0_&84o`&X=r'.h|:<1Hf'Z<1r'.|< <1Ff'\k&<*u +1\ql'+v=\Fm&v}]\qo'1y=\F&P]\qk&=/u\Ff&]T'#@   E<1/0)#35463!#"?L`NC^ $H@#!$ B@"! %<2221/220O&`&]%2654&#">32#"&'!#535!!!syyss{{{Ju uJfH稠b]]brrt,Z@* & *  '* "&-<299991/290@ ../.P.]2654&+2654&+)#"!54763! v[^^[tutuH|O* c^B7fPNMQsbcaay$32#"&'!!!syyss{{{Ju uJa稠b]]bQ 27654'&+!'3 py6::5z=-1][0-ujju4 67632#"'&'!'276'&"FJZZuυuZZJ{=<<==>>b.//.bTT@TTUTTf\/@  - <10>3 !"&'3254#"fj}uL}jkssk78__875IDDIfd"Q@&   " # -+#299199990/$_$]%# !2676!3#".#"3267\j}Lu0/"b3NfL202177Tv\!Lt#8@  -.  $<99991/20P%]32654&#! )#"!5476TMwiffixjO* c^q#ateeta k}lk~#+hSsR\?@ @B ;221/0O`]!!5#"322654&#" Ju tJsyysryy#c\II]b5X:({)B@%BBK%B ;*991@ (" *990?+]!254'&'&! ! '67654&#"z@錪HJ4@6*Bqqb.Fb]##p9С2 OFn8W  +@    21@ /0!!!!!gr+#V##hfI@ -7-+91@  90@  / ? ]4'&#"6$3 ! '&!3276z}|}yh`;9aa:=~FG578bdrMM(?@# )) #)* --&)190.54$!2.#";#"3267# $546!#lr^]~glqs%" )*^V][ifcj76%%ޕfC@ 2991@ 990Pp]!!!!!#3265rgN7, 7%J22J%72`K/,WK:7Y^&/55/&^Y\_PDI}X254&'.#"!!>32;27654'&'52+"'& H.pfQn7vRK9*TvRF;mn:n#'b]ܔ4aXlrTH]Alvxl 5@  KTKT[X@8Y991/990!;# {x@    KTKT[X@8Y<<1/<20 @ P ]!3#!#3mq !!!632#54'&#"^[\)L]]^qy ! !!4763!#"NNKnldP-Fyv\  0@    <<1/<20@ P ` p ]!3#!#3f]m3''%'!%! =]M%5Kf&H#eaeca-%#"'&5!32767!32765!!5#"&D^]ppeh##Nf87h Rh78hBVUgth67wkC w65TTC65UU+_00pf@(66% 11  99991/299990KSXY"]@4 8GJVYPgh`>3IO@UZfi ]]!!!!#3265mR:>uw}}L\ 88p-74tE@-   99299991@   /2990]! !#!#"#54632654&#1"P;qpzzp3JM_mddlV^$H@ "B@ %221@  % %990O&`&]%!463!#">32#"&"32654&L3232767# $546%767654'&#"jc?m$%jitpqk}wvo?a&%12f_s=  09:4## +5007D|$323#;!"'&5# &'&+"30q~iLff &f+]jxdDXW7@.AJF!!;+532767&'&5#33q\glͱ>f&#MY%Nrv.+w MY>B@ 8 K TKT[X@8Y991/2990@]!!!#"!547601``N&&i1RQy@&      TKTKT[KT[KT[X@8Y<<291/<299990@PPP`` ]!!;!"&5#35463!#"3q>\ԱL<N%N7N7 fjA@ 8 8 K TKT[X @8Y99120@]!!;# ! `{xxU&X`&/>V&Xe&->U&XaX { 'R&$]nXO&q; 'U&$_fXP&q<O'q:;X'qfU*# '&!2&'&#"327675#535#!3ʥy}|{|}|<34)X[FFei7G##kJmJ\Fey 6"32654&6=#"'&5476325!3#!"&'3275o|<54.#"57>54.#"632XLqKF_38@Qv;!2QP(vzS"$yhv@.5NSk7@])U_!OBN-6O'8Xqj1eOZ{05>54&#"57>54.#"563232!'&#"!to1Bw]6E\&\f;%2'4#"%276'&#"632"''67&'#"'&7632!pK*%es=<<=sr<==<Lj^3@BM[G$. -FXυtYZJhY3/TT@TTTTTT\8EWiJPH7qD#,/.bX}@"327654'&5! '&54767&'&5476%&327654'&>WXXWUUUUfST]]]]NSt;p6RR@aQQO;;:;;:no;:YcUU)*_^rqqrސ^_*V\PldE %8L[G$& YU5/`4EWlJPH>Z Y>F` 1@    991990@ P ` p ]!+53265fͱ>fL`\\X @%276'&#" 276'&"367632#"'&'#!5#"'&7632s=<<=sr<==<?=<<==3 3>IYZuυuZYIJuυtYZJTT@TTTTTTTT@TTUEwnwE`-//-`c\/.bX\VX{ ?"3276'& "276'#!#"'&76325!367632#"'&r<===zpCk76l~X (w@."  *&  #&  !)<2299991/<290@ **/*P*]@p p!pp !]2654&+2654&+3#)#53! [^^[tutuH|B7fPNMQsbcaacb$hm0PO@ 9  <2<21@  2<<2290@p]326=!!!3#! 5#53=yyzŒbb[b6=b '0B33#3!!!#7!!#!9HTg99fSݾNVyXB  '+/!3267#"'#7&'&!2737&#"7#34' r?Wq}i_{4,K"`S\z7/m $h"@fxU3fCD01(:!. unK(C2fU@   KTKT[X@8Y<299199<20@P]!3#!#3265#3NfLf`^\cfj $%2654&#"# !25!;# Vb_bm{xPNyTUz\Ff{ )%276'&#" &'5#"'&76325!;s=<<=sr<==<VJuυtYZJhLfTT@TTTTTT_Shc\/.b\  @   !<29991@   /<<29990@ %KSX9Y" ]@ 66EEVVP"ee`"]2654&+!#3! !.#yiiyL'O}@f7q^?ZgfX5֔-XspR{D@   KTX 8Y<291@  /<290.#"3#!#53!>32/]/q fE}*(/lvJne!!7!3#!#53#xx{pqaջu—F?`!3!3!+53276?!53#ffH]_p[*) ^3`JJJJK€ { %U@#  = &229991@   # #&99902654&#"!>32!#3267# $pq[QeiHӆsUstfLJDMm)f]ˢŸUO..\{8@ @B ;221/0O`]5!!5#"322654&#"hJu tsyysryyc\II]ɨ^{ 8@ B@ 221/0O`]%2654&#">32#"&'!!syyss{{{Ju uJf稠b]]b`^ $M@!$B@$ %22991@$ ! /990O&`&]%2654&#">32#"&'!463!#"syyss{{{Ju uJfL稠b]]bF\X5{/@ ;B <10>3 !"&'326&#"XUX/VWT@TOI=%12:02Xs5{&L@ ## B ;'991@ %!'0_((].#"63%"''47&'&!232'&#"5IO3f!HnPV/X::S=20{PrWD&I79K\F$F@'  % %  @"B;%22991990!;#"&=#"322654&#"hLf@Ju tsyysryyX\c\II]ɨ\h$C@%     @"B;%22991/9905463!#"!5#"322654&#"fLJu tsyysryy\c\II]ɨX {"76! !"'&'3267!%!&'&#"X"}vwq pAAh`;<3 際0D"!~~n:;?>X {G@  D ;91@  90/?]5!.#">3 ! %3267XE q}0Qpw`h+f~~CD01>f}uny{ 432767! '&'&'&#"6763 ?;#"'&5W ;`hAA]U("Nqwv}0&&i+`OA ?;:n,Q`Vv)?!"D087o[n{In{1!"'&'5327654'&+5327654'&#"567632y~\]\ZG^UMtABC>v|u2987_;<[ZYWtt87\p$'(:<'%",*$#  HGa@?n'{?!"'&'5327654'&+5327654'&#"567632?;#"'&75y~\]\ZG^UMtABC>v|u2987_;v|u2987_cSSWtt87ly~'(:<'%",*$#dR]`囜*HGa@?pF`53!3#+53265$fllͱ>fL^wv\\Fh$0`@. @(B;122991@  $!% +/99990O2`2]%#"54325463!#"!"&'3265"32654&Ju uJfLic^[o|xsp||b\CA\c\+ !65\F`)%#"'&54763)!"&'3265"3265Ju͆qhic^ZZ[o|<@  G 29129990`]!3265!!#"&hG.pfQmp[.w#&)Xb]%!54'&'&'&#"!4763!#"67632$$.p@@nlfLPZ[nedVo77#WVFyv\a-/wwF167632#!5326=4'&'&'&#"!4763!#"PZ[nedilfL$$.p@@nlfLa-/wwFtv\[77#WVFyv\<@      <<<<1/<20@ P`p]!!!3#!#53ffܐJ` %@   991@ /990!;#"&5fLf`n\` %!53#5!#v!676=3!#4767f;9g;;i 9JH;JI!3#!# !2&#";&fXjB6.YyjX77"BKTFn !;!"'&5h&%gln/.vyHY&!!!"'&'327654'&+5!!f^V}VOstsqljkgQRTSrLN !qfst%)655cf54^,%#"&5!32767!32765!!5#"&D^]ph##Nf87h Rg88hBVUgth67 w65TT&65UT'_00pT^,%#"&5!32767!32765!!#"&D^]ph##Nf87h Rg88hBVUgth67 w65TT&65UT'N_00pF{167632#!532654'&#"!4'&#"!!67632D^]pnlfL##Nf87 Rg88hBVUgth67jyv\sw65TTH65UT`_00pF{G@"   G  9921/999990`!!]!54&'.#"+53265!>32 H.pͱ>fLfQnVon#'\Lb]Fj{#&'&'&#"!!67632;!"'&5$&,gI@fSYZofd&%glt2"WK`d,/wxj/.v` <@%    991/<2990KSX@ 44Y!!!!4mR`uuX'{ >@ BLB ;221@  9/07?G] ! "!&'&!3276!EGu>$%>y# />uw>0{88U2LL2UkmAUUAXa "#";!!!!!!"# !22oVVoEN_|  dKUV$"h $303265'"32'5 #"&'#"'&7'1!!7-cgWX/TliajDg*r{Vi`32765!!5#"'&'//./KJfEYZ}(1 XYn2332765!!5#"'&'//./KJfEYZ}(1 XXn23FE`32765!;!"'&=#"'&'//./KJfLflnEXZ}(1 XY\vyߢl23V{&'&#"!!67632//./NJfEYZ}(/ XVR n23F{K@!   KTX8Y299199990.#";!"&5!>32/]/LffE}*(/\Lne=`%!534763!#"nlh$&yv.1Y=`%34'&+5!23!8&$hln1.vyYj` "27654'&+!!2!&'&#['(('[Onn99s?223%+-Kv IH g`JKoHG!0/aGj` "#327654'&'32767!#!!OO['(('%K-+%k322?s99nnf HI Ga/0!GHoKJ`jFb{7.#"!"';!"'&=32654'&/.54632s_f12&%a?79&flnkpqtij$%m?c=005+ #b&.vyI4:90 Fr:@   99991@   90%+53265463!#"ͱ>fL!fL\2\F"535#354763!#"3#+53265 ϲffLglͱ>fLNWXCJrv\FP{!2;#"'&54'&+ffLf>llL{XW\vwDD|$ !34763!#"3##0#";2767ffLi~:j]+f&D7WXDԜdxxJA.`!!4'&+!23#q\3YX>NXY%Fu@    TKTKT[KT[KT[X@8Y<<991<2990@??PPP`` ]]!!;#"&5#33qLf>ز\L>`C@ G  <2<221@   /29/<<22053!!!3#!5#"&5)3276hfQmyG.p@"Jb]Z!#&V.`L@  BL B; 99// 991@  22990 5467#5!32654&'!#]$NTooTN$]$CBAL~yl78tt`]Rd#$*,"%'<:('殭p?@aGH֜X-%# '&76!236763!#"3.#"32767'!5!\hopwglfLZZZY,%%e2rv\710YX `F!!!3'+ !30#";276ff8si}7j]+f&ܐ0cv6K@.Ly` !! !!yd`#fLOe^-`!!!j`\Vh)%#"'&7632536763!#"!"3276'&JuυuJhlfLr<==%276'&#"!!367632+'47!#!5#"'&76323276'&s=<<=sr<==<^h#k@  JuυtYZv'% /61TT@TTTTTTXLu78878c\/.9GHh-F.#"!"'&'!"'&5#3!!67632532654'&/.547!3s_f12&%a?Y_owt{XYfq*zckpqtij$#o?\=005+ (KP"(XY>‚)V94:90# %NF8$,!54763!#"+532767!"'&5#3!33QffLllͱ>f&#XY\NWXDRwv.+vXY>b`%Ns 2:E!676!2&'&#"63 !"'#65&'&'!"'&5#33254#"!;&543q/XUVUIJIOTS!g7h]G2$XY1CS\E»2WXcG99^H%@.9XY>_9K%N'F:#"!3!67632#!532654'&'&'&#"!!!#354763L/cQ[[nednlfL$$.p@@ffDNb./wwjyv\77#WV``NWX#4.#"!"'&'!!6763232654'&/&'&s_o(2&%a?Y_owtzfFzcimqtij$#o?`2=000+ (KP"(P1V53:90Q* !!!!#!fN7!f-L`D. 333# #333# #.xyyy޼yxxyyy޼yxsPTQ PTQ. 7#!#!#!#!>)>)JJ$4&+5!232765!!#"'&5Lfln$$.p@@fQ[[nedF\vy77#WV'Xb./wwJF`-%#"'&54&+5!232765!;!"'&5Ff[nedLfln$$.p@@fLflnY5/ww\vy77#WV'\vyn?#=4'&'.#"#367632? .H))4:;F|@A>S01Ug7BCn?%#=4'&'.#"#476;#"67632? .H))FFkA49:G|@A>S01Ue}CBKL6BCS 3+5327653#nEEr(A~BCK\n&'&#"#3676322X00,:9P  d 12\sg>n327653#5#"'&'nX0/,rP G 12\!g>8n_327653;#"'&=#"'"'nY/0BjEG,8:P  G 12\!LBD}[= !#32764'&'3276?3#!3322:l0]j! (I%$FGR|(6')>Z*)s. 333# #.xyyy޼yxPTQ?33+53276?-=32#<8$%?s33221htTcAy8@+'6%@ vJyQ5/#&'&547632.#"31xAdUt4312d4r@$%78d5QyJv @%6'+@ "% % E "5-5Eʳ|Nf# #ZfD|Nf33|Fyf6@ 91290K TKT[X@878Y3#'#Dzfyf6@ 91<90K TKT[X@878Y 373Dzx#+X;qmf!#f^f #yfx[#+;Cq/^#ykxm!#k]`!!*f|]`!*|& `L& `L!533> 5!## ‡oj 533##5#5Po1!5!1>մPF i@  1<0K TKT[KT[X@878YK TX@878Y@]332673#"& cSSc FFJJFw;1*10K TX@878Y!!w1 C @ : 10K TKT[X@878Y32654&#"4632#"&}M67LM67Lvvvv7LM66MM6vvvVo@   991/0!33267#"&546ō2&;1'M(7^)s{6CI'1 \V5m\9@  @  999919999990K TKT[X@878Y@T              ( ]]'&'&#"#4632326=3#"&7/$&g]$I)=%$(g]$CT%>;+@9f%@0_O]]1<203#3#-fx2%7;#"'&7:&&i+`NBs87o[f '#7'373QRSȵSRȶWWVV  3 5473254'xx !TWW*1')*&1nS3#nD1&'&#"#"'&'5327654'&/&'&54632JDD=B 0>(==TUGKLPDHHJD"!F(>=@EF -,`d32  .-\d`: 373 #'##2/#&'&547632.#"31xAdUt4312d4r@$%78d5QyJv @%6'+@;@ 1/0!!5!Fvмt;'@??//21/]0!!5!3F4t;@ 21/0!!5!3Fhht;'@pp  21/]0!!5!3F4t;@ 1/0%3!5tPp;&qqXo N3o\T$'&'&#"#476323276=3#"'&7/$&43]$$%)=$43]$"!2/l;< " .m;; \fCefvwfT9X9qM  ZF {;1;?1j "#5476?67674'&#"5>32Y7 ,&A$XWPg11  1%+&#t^Y.$'$ fwf\#\D'C 4f###r£׮fxxZ' ZF #."#>  cc 8FJJFXr@10!3X*!527#xyz#3$5yxzJf!#ff\BCeBvO#5353#!33## 5C`n!5!#]+4+532654&'3#"&CI'1 \V5m2&;1'M(7^)s{6[F"30"&5463F&22&cc2%&2cb53533귽#5!##+˽  #53533##b5!+bF^ '#!5326=nlfLyv\Ff %!;!"'&5hLfln܇\vywMCM?Cj 4&#"3267"&5462X3%&22&%3ƈƈ$32%&23$ccbbA@10!#DozVo\#\`t9#5##Ǽovg@#"'#"'&'3274732767jy0@k=>j. NONG@FF0:mw& <0w& <0Z@ Z= #."#>  cc 8FJJF!T?9CB Ra(;@x5!;MOx5!M'2pnm^^ef'qqJqs 2#52654&#cc%33%bc3%$393353üvX8!5# T g@67632632#&'"#&'"gy0Aj>=k. MPMG@FF0:m '7'771!#532654'&/&'&5463#"# 9@ + ;>'RRz .!RSz#: '  \fCkfvZ9;'jlV #"=3;X3Vh:I#5!#!ƴtxx,2!5!5!5!>>2Z 3#3#@`tt!#!*>\f+#7&#"#4654763273327653#"'& :a (56W%%Bi%56W&# J\ <2jAA h9j@A \#'+'&'&#"#465463232653#"&3#3#8- (kW%J';'%'kW&FҴN#<2j'<9jC\#,,T( 7!#'73!'3awQwww(͌$#557'Aܛp#";#"&46;7LM6vvM67L Z& '7'77tyttyttyttyuytuxttxutyp532+532654&#pvv6ML7짚L76M ;1q64&""'"&462664&"33K22̈BCˆCB33K223I32K2Aʼn??ň??3I32K2_ k Pp`!!p pA!!p ࿼ '#'&'&#"#67632327673#"'&],$V5Hqpo?x],$P;Iqpo?@# $0)JI# $,-JIp&j h(5!'3#7hfww͌`q !!!!!!N !!#!#!8Ntf3AntVH%#AnH`V #"=3;X3VhX5{X5{&FyfX5{&yfN`[f710K TKT[X@878Y]!#uf;'lj5Wf&&09y+f'*JtRf',\f'.\zf&4Kf'9nf&=Zh/&Mj '$% '@ Բ]91/90@%KSXY"@/ IFXYVWhifg`zu]@/Vft ])!!')HNT(\q=+ff N@  -7-+1@  0@ /?]@ ]"3254 ! !!f°±hhghddjk=,q. '@ Բ]91/<90@%KSXY"@/ IFXYVWhifg`zu]@/Vft ]! !!ut}))w+901b ;  <<1@  /0@p P 0 ]!!!!!!29igg\qff23 b@     <9991@   /99990@  P p ]!! !!$a#A4l j7<ff'N@' %') -!%-+(ԴpP]<<<<Դp!P!]1/<2<20)]!67654'&'&'&7675!!.#aa"//"aa!0̓̒SO[W rr rq!';s\B@   ܶ _ o ]<<ܶ_o]1@   /22<<0!"!3!2765!#+S67R,6eP9ǗP^g\7b@ -7-+ 99//991@ /<2990@ !!/!?! ]  ] !!67654#"!!$fg3S&°­&S3d8#\6Fk&.*uk&9*uc)f'Enf&IPVf&Kf'CM &Yc)y$d@   B;%99KSX$<3#"'8?O[mN{sbv@rMM sP7Cd\W>UsN)U+xwC X\Sf(TʲVU`@   91@  /<<990%KS KQZX@Y@=yZ^______GFDJJ77499%*+  ]@vVPA2$]!!&'&+5326g6"6%DDBPVXJ Y($)T@%%B L B;*991@(**" *990?+D4]&!"! 4767&5! 32654&'&z茪3@ 5*Brqc.Fb]##p9С2 ODF8W n{1J@" 22'(#,23 '  /;21Բ]033]&'&547632.#";#"32767# $546el78ttWYZ[<;_7892u|v>CBAtMU^GZ\]\~\?@aGH  #$*,"%'<:('$pYVUF@  B;Բ]91@   /<0@  @]#52654&# !!&}F0;;Z{};&&B< V{6@   G 21/9990`]!4&'.#"!!>32 H.pfQnn#'`b]X($B@ BLB;221@ @ `?]0?]767&'&#" ! 6[XY\6 1LghK2 OTW^aLWoo`" 10`0]327#"'&'&5!198 >CAhfj@[+Xw=` k@    291@  /<290%KSX@  <<@  Y@ ]!!! !fbRWR`Au+=@    Դ/  ]91@  /<90%KSX@    << 9Y@   ]@ ]'.+532! !>K^p϶DM8뚶<LT`w`O@   B 99991/20%KSX@CAh ` ?[+Xw`V^~ 2@ B @ !21@   !0O"`"]67632#"&'!%"32654&A{~y&%ÑuJTs{{ssyyĀ]bBXV5{8@  B;<1@/0_  ]&#"#52654&# '&!25F0;;V/b ;&&B~7>X` 6@  BLB;1@ 90 ]"32654&#! 76)v}}vv||B>{8+`'  1@  20!!327#"'&'&5+V189 >CAh ` @[-Vw `:@  B  Բp ]991 20@ p_/?]4'&'!! '&5!3764RuG*h~fJ`t\-RG_^PaJB@VjY@!B B ; ܶ_o]<<ܶ_o]991@  /<2<<0!]2!$763676&U62j@V@}dxa4V`@ <Բ]<91@  <<90%KSX@    99 999999Y@  ]@  ]!;#"&/!.+532{V G6pK!J0pσNwO6땻-R3V`R@   ܶo_]<<ܶo_]1@   <2<<0 ]65!!$!!ڋffdd @V@ d`X`V@  B B;999991@  2<29/90/]!!76'!%$z"F3sfs3FT(798'1'jbM 1'jYX'f&S} f'YXf'y]Vq !! ! !+1:y!=Vup$ # 76'&! '&76! 03276!Kws6FP,^n #3A7Tg1F-m~`zUt]i$ #6'&#"'$%$! '&3676'\MRjе 鞏PJq9GR³#G BlO}վU*!4'&'&6%6'&µ=**+tx9CWsVV"}ddd}"VVc.Am+ny }a}yY+mA.`#! ! 47#!32!324_c d<+ -g9[HQW(8]P(oPDl$.8aPm(oPDlj"[<fVf "3254!&'&76! f°wgh̋^-jkdΌXV'{ "3276'&!&'&76! w>??>wu>>>>Uwd"!d{UVVUUVBVUZ#`(؜`fVl""#52764'&# '&76%!Svvp}U][TF";ڤ]zZb[TL&eFXVT`!"#52764'&#"'&76) :SSZ*}U][TF";Mw`_ff  :<|+3 '&76'&# |`)& k9V+ "Gk{W RS;fKX<"'&'# '&467!3276=!32764''!'676 x0/yzxGp@Ag479gh46{lel473hA?vBx=F޼ەu^U^^ FkmimmsAF褊b23GxU4`%%&'4!!764!'676Rj~=jr&nj=~8yܦob B@d6@ل|1+ &WfV" 765!!# '&76/RRRQ0RRJi~~vI<UX\V{"32765!!#"'&76r<==BC*J&#"327676#"'&'&'&547676763267!"'&#"'632327654fet1 *'1.&[s]-Z@I:1$#%7Hc}mD)DZwZ@NaerjQhVF"e  D8( $O:HAAC4D&0M`ds.#AL.#YIX^WV!3 %! 654'&#"!676! M|=[SL}xZ:\J2 eǾLlxVP|Dnӻ^V{!327! 654'&#"!676!  eNGAjs?1O}DznTQUQ:6F.Slll/!'27&#"6763267632&'&#";!Q:!3!N#"''+:Y#"`;*&(%N!3!:=#1b0> N&K(N 0<1#d{/%3'27&#"567632767632&'&#";!54z1-A " $2@@2$ " A-1jɞ9Y%33%9f"167632! '&7676!2767#"276'&#"4lz*&Yˋ(wrgDCCDDEEFD8/ߤ27x _VTTTTTUVTU]"067632! '&7676!2767#"276'&"/uanr¤&"}uP{cqlg]s=<<==>>?D8/ߤ27x _TTTTTTUVTU9V<!5#!#!!!<`[u7V#5#!##!!ƭse`p ppuoc,!"5476764&#"63 7!2327# 47d<+ -g9[>c d <+ -g9[>cH `(oPDl$.8aPm(oPDl.z1F^~76! #"&'3!! "26FuJxx"{{y! ]b1©@X5{FFMffag{!%# '&76!2&'&#"%32767g^{Щ0|^@|lLN n usN. !?@qr~! {!73267%5&'&#"54763 !"'Nsu n NLl|@^|0{ !~rq@?! ҚV^f\&9 ! !!#!TVW+DQV2` '!!!!,N DV^~ "26%6!2#"&'!!!5#53s{{yUKuJwhhw©@]bpp D:73254#">3 !"&Dksskj}u}R5IDDI5788f\&y3D:&yck'-7uk'*u fb#%!#3276=4'&'&'&#!!!!!!2bN=$$. fe銊#CC77##wul'+vf\A@ - +21@990327# !2&#"!LuXxofeoˍx-6=,Akf=-^2654&+!!$!3 gypoz~d'3^][]\8#/(Az4&+326!!!3 )!!oz~~yp3,[]^q9y b2!=4'&'&'&#!!!!!fe$$.wu5o77##ll&+9vk&-pu;k&0u !!!!!!8AN+ '$ '@   21/027654'&+!!!3 y6::5zi-1][0-ujju%@ 1/03!!%\N{0@    1@   /2220!!>!3!!!h:E#[ENAd( @  <2991@ %   /<<2290KSX@        <<Y  <<<<@     I:I:I:I:I:I:3 !!! !!'c22cXSSVhhuN((L@+  #)& )999190!"&'32654&+532654&#"6$3 llՙEC'^GM%'&$)67jcfi[]V^1") =@6  6% 11 991/<2990KSXY"!!!Rm+k&08ul Y@   2991@ %  /<290KSX@    <<Y!! !!ZrX?h|N^  1 /<036!!!^f'#K1+[90+ff2@1/<0!!!+N3f\& j7;= 1@% /20KSX@   Y%!#32767! !(;xFj!KBU6m#EOXf :@- -+ <<<<1@  /<2<204&'>!!5$%<oaboUr'; $@   1/2<0)!!!3!8NN  21 /20!!"&5!3!!:J^l:yx+ % %@    1/2<<0!!!!!!#+N -@    1/22<<03!!!!!!! %#ANNd2654&+!!3 )ypozn3^][]#&Q +@  - 299991/027654'&+%)!3 y6::5zL-1][0-juujy3267!!.#"63 !"'_uLx#x5o_5_o 6@! !--!2<1/0676! ! '&'#!!"3254ghh°{dd^m:@ - 21@ % /<0KSX  Y;#" .54$)!#Jiyyi9tL'jgZXz+ו+5X{DX>W*:@ (BL"B ;+1@ +%+990'&547676%6763 ! 4"32654&n:kv29PLzFt !Ehv}}vv||mCCĀ0)' "0O[8&&` -@    !21@   /02654&+2654&+!2#!>@@>OPPORMcm3222&??>>Rsj`@  1/03!!Q`}s`0@     1@   /2220>5!3!!!#!r`ȺppSO&i`X {H`@   <2991@ %   /<<2290KSX@        <<Y@  ]@ ]  <<<<@     I:I:I:I:I:I:3 !!! !!',{f{,ZZqq9gWsW6d${ <@ PP !1@  ! !!032654#"632!"'32654!# kzٴ@,gE03=᭮8^O2` <@%     991/<2990KSX@ 4 4Y!!!fi`T`T&P` p@    2991@ %  /<290KSX@    <<Y@  ] ]!! !!f"e`{9g`q0` @   1/<036765!!#q(E$uY`%I` J@%      1/<290KSX@4 44 4 Y!!!#!`0{\` $@      221/<20!!!!!!fcf`V'X'{R`@  1/<0!!!```V^{SX5{F`@  1/20!!!!ji`}F`\qV $/K@-B$$ ' B;022221@*% $" 02222220"327&!632#"'!#"32"32654&AyyAk===fj ϑjj ϑjk==kAyywJJII*IIIIJJ `[` $@     1/220!!!!3fcf```  21 /20!!"&5!;!0f:LfPDzY` %@     1/2<<0!!!!!!tfftf````-@     1/22<<0)!!!!!3!,ftftf```(`%2654&+!5!32#OPOP??>>W`'` !@   21/04'&+3276!32#!f('PO((Ffz{{z^? AWSTRRf{!. 63 !"'3267!  Ώ/VѰ $Kb$>>%cUl{ >@B LB !<21@   /990!3676! ! '&'#!"32654&f"!EޖZw}}wu||`?ȏ>{?z`M@  B 21@ % /<0KSX  Y@];#" .5463!!#O[[OV%U~!~H@>1jgX m&CX 1&j(FZ53!!!6325>54&#"!(f|x]xSLٿ#ֹ~(m&vX5{W@ B ;221@  IIPX@8Y0_]!327# !2&#"!$ V/ Uc>77>bKjb{VL#1FMZ`!32#!#!6762654&+QșEt(KOPPO`W`%I$uY7??>>L`%2654&+!!!!!!32^OPSLfcf??>>'`VW(@53!!!>32!54&#"!(fQnTTr~Lb]pPm&vm&C F&` !!!!!!Dhfcfi``fX23276=!32764''!#"&'# '&467!09gh46{lel473hA?vBx./yzxGp@Ag4tmiqmw AFf^^ FX`]dS3 )!!5!!2654&+3""@ypozu$^][](32#!!!!!!2654&+Xf>OPPOBI??>>'3267# '&#!!3676!2.#"!6Xxskj}۷ir+u}jksvDybDI78ѯ87IDLm{*!!32767# '&'#!!3676!2.#"o1TTLK@TWVWѫ.f0/XUVUINT-L4W1yF`Mw20W1 )#!#!!   Lc3u` )#!#!! uБ'dd` )#!#!!!!!!  F%  y9Lc`)#!#!!!!!! Бf'dd>`=ff)4'&'!!767!!fk>^U:kqIJqM& Hkr3 3rX'`!!767!!4'&'#uQooPK+A>*LM'<'MU1:/U !!!!!!!!4'&'!!76KJqk>^U:k#9 3rM& Hl#` !!!!!!!4'&'#!7OrfoPK+A>*Lʋ>`='MU1:/UoVM#"&#"32632&'&#"#"'&5476;27654'43 54!"673767632&#"4&Qc6C..|d^.F!'uFL]?FHZUI \P '/E_OT$(7d n:; }d&y+-3={'&#"!!!!3!367632{:Z"wwGgĨHESb6V6`E=JV_'&#"!!!!3!367632_:Z"wwGgdĨHESb6zVV`G=JffaX'{7 !632.#"! nw;@r*r54 rr{!>32'&#"!gPb6:Z"w`qV l'31vrf'L `F $;! &7! 4'&#"32765 +5223276767!6Ӈ퟈v'qr'q')BQd"! [(1'&!f;{$%ތH}|Gfm"|H6KZ!jdWnXF4{ 4#"'&76324'&#"3276 +5223276767!6gߗ!]^!!^]!B)BRc"! ['2'&!f;{&ڬgFqqFEqqE6KZ!jdWnf2"B203 !#"'&'# '&76!367"&'#";6762327654'&+#R""ZiZ$ !N! $ZiZ""pP@$Zaaa`[# T #[`aaaZ$!""ON!"wxxv!!vxxw"X{'N#";676762327654'&+"'&'73 !#"'&'&'# '&5476!3767625x=??>w2$B$6u>>>=v9 %B%94; %B 6ʏ55 %B%wTVVU   UVVT Պ윉  霊 t m&'F'` &'2XYfXG&X'fV\!!# '&76!2.#"/wu}jks#3[f87IDXV5{%!! '&76!2&'&#")؜/XUVUIJIOTSIL\2WXRT7*'''7'77'77_x_xjix_x_[~}}|}}~}1Q/"'&'&'&547676763!67676762#] > ^ > f    F #&#"56763 Jg_RX$[ 0L&G 05!#3$ez&G527#5!&z M 365%$# ӂ\ q\t{rl #/;GS_#."#> #."#> #."#> #."#> #."#> #."#> #."#> %#."#>  cc 8 cc 8  cc 8Y cc 8b cc 8 cc 8b cc 8؏ cc 8FJJFIFJJFFJJFFJJFFJJFFJJFFJJFFJJFr- #)/!53!#'7%'%'77#%53%RR:zV!z9yo`yoJ@>@A@¬@yoyo zV!zRRVvk&08uVB&03 )#535!327654'&+=Vy6::5zXujjuX»-1][0-3#32#!#3!27654'&+uufO((('P`XOOX`>B ?;!  654&+327'7+!! zpL7uj`vj dl_c~:L~vc~V^{)6'4'&"37'7"'&'!!67632<==>>=s*%DTuZZJfJZZuυpHcTTUTTU}/.b b./}@ 1/03!!!#\2N@  1/03!3!t`:}: !!!!#3!\B%n#D*'` !!!!#53!'TQ?f!!2!#3276=4'&'&'&#!!!!= feN=$$.%\wu銊#CC77#F`!2+5326=4&+!!!llllͳ>fLLfQvwwv\\S` 3 !!! 3!#!'c22(SSVhhAuN`3 !!! 3!#!',{f{,S ZZqq9DWsW6o('zdo${&z'l!! 3!#!Z(?hA|NP`!! 3!#!f"Y e`{9D`l!73! !#!{IrX{~CQc}NP`!7537! !#'!ffn"ne`a耲9g@~`0l!3#! !!#53ZrX?Sh|NP!!!! !!#53fF"er{9g`2!! !!!QZrX?h|N#(~`!5)! !!Nf"e{9g`t!!!!!!!!8#Ay9D`%!!!!!!!!gfcf'`V !!!!!!8%Ny9` !!!!!!fcQ}'`Vf #!2!#3276=4'&'&'&#!!!!! feN=$$.:wu銊#CC77#NF`!2+5326=4&+!!!!llllͳ>fLLf/vwwv\\S}`se?S.54>323267#"&'#"$&54>7326%>54.#"68aH)9UqSN}aF-6V?K/>e3.x=P[Tفq[9kR25aVNf( - ) #-+0qXBtW22Tp{:E>+<9.t{ EwqcL(_fi37pZ99Xl3D|iQqz?N4>73267.54>323267#".'#".>54.#"qP9V8*LmDJ'D25jiap=hw(b*6W&%-8%9d_[0-]hvEuա`) %&7(؜X5WuCK|W0 JYh;]sA9hY{K    &% TJBFG0D*`Wfo\'zsXo5{'z j !!!!!!x`#A#` %!!!!5!!gij<F` ! !0!f-f `uq 3#!5#535! TT`F` !!!5!5!5!   f-`u??'3!# ! ! !=$$.+wu銊#CC77#!F`32+5326=4&+!!!llllͳ>fLLffbvwwv\\S`A6Vi!!!!676!g|wBW'#V[7-+V?`%!#!#6765!g@Im`*1FpVB"wff%!#32765!!!!!N=8銊#CC9F`%+53265!!!!!llͳ>fLfcfwv\'`VVv)!!!!!!!8y9NVVB`)!!!!!!#fcfg@'`V}V!"'&5!3!!!!:he$$.l#Vwsoe@7#9+d`%5!"'&5!;!!!0UQf $f[V(TKh0+V)#!! !!!9TVD%NVVD`)#!!!!#g@{\`0}VO 'z'4+@p]1@]0X='@O] 'k&*u +@p@O / ]1X1&jX{k'0uX F'@O]1hfQX {hfk'**ulX 1'jm k'*u1'j(k'*ud$0&j,yYH`TO'q8;'qk'*8u1'jffk&*fu$+@pP_ / ]1X'1&j+1ffaX'{7ffk'*fu|X'1'j}yk'*uf1&jL;O'q;F'q;k'*uF1'j;k'2uFf'k'*Lu1'j !!!!!=%\#A` %!!!!!gQ`k&*u1&j:E!!!!+532765!#3!\Bfjnͱ>i(!%sx5,on#D*C'`!!!!+532765'!#53!'Tgjnͱ>i(!Qsx5,o'f!!#27# ! ! !IN1mGFf#w%F`!+52767 ! !!gmѳ+0l{{l;Isz"'a=#LPG' ! !!!! !!_GF_Womqdm ` !!3#! !#5v{{TULJ3b] 3#"%476!3!! '&z5::6塒s-0[]1-ju9+ujZ1` %035#"%476;!!"'&HP'(((aufu !;? zOXXO!/"'&476!3!32765!! '&'#"32765Ӕ<=kl<=ٟ, Tjiz5::8sj@<sj ju9OPPP ʛ+7==-0[_/.TQZ` 0#"32765"'&'#"'&5476;!32765!˃P'(((EC%%߇%CKHq^kuR6(QP)6R~ !;? 89k'u )a/.XdOXkS==Pm̎w824'&+5327654&#">3 32765!! '&mSTGG~]^rl#EEON=G`fB=f45-.]V^*) `aTS"'`_B08PL ʛ{532765!#"'&54'&+5327654'&#"567632B0IR)6R~噄C>v|u2987_;<[ZYWtt87l7?p5'=Pm̎wzh<'%",*$#  HGa@??HVn')4'&+5327654&#">3 !!STGG~]^rl#EEONf45-.]V^*) `aTS"'`_3VY{()4'&+5327654'&#"567632!!C>v|u2987_;<[ZYWtt87ly~gR<'%",*$#  HGa@?pay6 3!676!32765!! h|wBW'<=kgA=[7-OPPL 6=+v` 32765! '&5#67656)PR)6R~(~m`*1F`mP==Pm̎wwB"wf |`32765!#"'&=!!!!6+NR)6H~~fc`mP==Pm̎ww%'`Vf! 76! &#"3265!|Sx+rx>{Vctoˍ恈UX[_325!# 76!2&# w[Hɢװ!3ˏw0Pa 32765!! !!{<=kl<=`OPPQ 6=\#`32765!#"'&5!5!6+NR)6H~~inpM==Pm̎wwRn{I^f36!!#3265!^f'Nf&&E$uY.%L%I^ 36! ! ! ! !^f)GFom$#K1%[ql`36765!! ! !!q({l|E$uYLb=#%I]3264&#! ! !!#!=pzzp|1o_mlf%}wV{"26 '!!6 ! !s{{yNf?!{l!w©@ Mb9Im;#"4$)!!!!!#!.Jiyyi'rgۃftgZXU5z.?{(/3.5463!63 !3267# '&'#;#"4&#"?%U~?cx= q}Щx"~MO[[O_w`h1jf~~CD01ngH@>f}unff4\VyT=:H`Z^f ~)36!!2!#3276=4'&'&'&#!!!^f' feN=$$.#K1wu銊#CC77#[qF`%36765!!2+5326=4&+!#q(llllͳ>fLLfE$uY8vwwv\\S`%If '!!!!2!#3276=4'&'&'&#!!!!8 feN=$$.9wu銊#CC77#yF`!!!!!2+5326=4&+!!!fcfllllͳ>fLLf`V8vwwv\\S'v !!!!!!:#ANB` !!!!!g`}``#%! !32765!32!54'&#t)'=<=< t`01_B&6=OPPO&Jn[F1i&&")! !54'&#"!2!54'&#!=>EC<=<=t`01_:=6POOPn[F1i&& *54'&#"3! '&54! 32!54'&+!B<=<==<>EDt`01_ POOPWTOP6n[F1i&&!32!54'&+!4'&#"!5! 2t`01_ <=<=>EF[`n[F1i&&POOQ=6Y"3276=!! !!2!54'&#!==<=<t`01_:VOPPO*6=n[F1i&&x"067#"'&5476! 6!54'&#!!27654'&"X WMZ匍$@s`09WP[=>>3f33XvLp^F1o &BAtPBAB!2!54'&#!!!2!54'&#!=nt`01_t`01_:n[F1i&&n[F1i&& 3! !54'&#"!2!54'&#>EC<=<=t`01_=6POOPn[F1i&&r*3&'&#"!76! 2!54'&#'&'&54763#"3276 =<=DEh(t`01]OwGNxapchZ9E4 `OOP?en[F1i&&yf`iF8ADc*! 476)!32!54'&#)"32765ߟQt`01_r<==<=<`6!un[F1i&&POOPPO!63 !54'&#"!C<=<= &&POOO_!2!54'&#!=nt`01_+n[F1i&&72765!!"!!!<'YP0=`b?>N 6= 2#/! '&7#"'&=!3!2!54'&#%"3254h͎3t`01_>t`01_g°dj n[F1i&&n[F1i&&)# '&!3276=!=<:< :OPPS_ 32!54'&#! !t`01_s}n[F1i&&ofo)1?67#"'&5476! 327#"'#"'&54%2&#"3227654'&"gR WMZ㎍$@\R(%r^fLGuge59$%$[=>>3f331Yvh3 pSI2 #"/&&hBAtPBAB!4'&#"!5! 32!54'&#B<=9=>EF>t`01_POOT=6n[F1i&&FG,3276=4'&#54763!!"!2!5# '&#=<:<07Q2`_2Q7 )_`H`OPPSCl*1[[1,[[%B: #! !32765!2!54'& =<=<t`016=OPPOn[F1i&&{34$! ! '&'!327654'&#!!27654'&#"usFEMNz~z{17JLL*pCDD1CFmbcUU)*_^rqq[53;;:n[O+00YGA0001F 6=! #"'&=!3yxut`a_g6=n[F1iL 3276=!! '&76%7%=?(=<ӷPCVxPPOR$Dr<iK3! !4'&#">EF><=<==6POOP 6'&#"!576! %676B>)<=C-PPyOOP?Dr<iK!!576! !4'&C*kѢj)gɛo$x,&'&476! 6!54'&#!!!6676'&'&"{ܝ$@s`09WP+2,&3f0mdvLp^F1o &2BKo!32!54'&+!4'&#"!! 2t`01_ <=<=>EF[`n[F1i&&POOO=6Y8!32!54'&#!# '&5!32765!t`01_r=<><n[F1i&& 7OPPN-63! !54'&#">EC<=<==6POOP{/?6767.54$! ! '&'!327654'&#"327654'&#" 'KusFEMNz~z{17JLL9L F1CDD1CF@4^+)bcUU)*_^rqq[53;;:n[O:;FC000YGA00054'&#"!!63 %B<=<=D`(,&POOO \ff:F(8)"'&=!34$! %&'!2!54'&#!327654'&#"t`01_XUt}t`01_sFC}xFDDLryGFpn[F1i&&bcchn[F1i&&1000.37*00.ff2- (154!"$'&'&54763267654'&>7, biӎ⏏P:egLd C-S$Y/. T2`fxy65EL' m2fi׀x^fC^7#47! !"33254#"1(mD@/Щ3cNGNZ%03!Zu4`,%#"&5!32767!32765!!5#"&D^]ph##Nf87h Rg88hBVUgth67 w65TT&65UT'_00pV{!!!67632!54'&'&'&#"!fQ[[ned$$.pV b./wwH77#\Vy #"3276'&!#"'&76325!!!r<==fJZZuυmiqMr^|"):-+.$9%`;TUT' b.//RԞbP,*:D _?\:!# '&763!!!!#"32765e0oqh,l&=={!!4'&'&'&#"!!67632,l$$.p@@fQ[[ned77#WX`b./ww1!5#"'&=47&'676%3276/&'&1TK6Q[Zmef=J32! H.pfQnon#'`b]V`XV2 !!#"'&5!3265!,nQ[Zmefh#$.pfLb./wwp[.;<#{7)5#"'&5!3265!67632!54'&'&'&#"F7Zmefh#$.Af@?Xqed$$.C@@u/wwp[.;<#)m#/wwVo77#WVV{!54'&'&'&#"!!67632$$.pfQ[[nedVo77#/ b./ww\FyJ8`!!!&tf`V7!#"'&5!3265!67632!54'&'&'&#"F7Zmefh#$.AfA>Vsed$$.C@@VLu/wwp[.;<#o!/wwVo77#WVV{'!67632#"'&'!!!5!5"276',fJZZuυuZZJ=>>==<<~ޤb.//.bddUTTUTT@TX'{RV-( 54#"67654'&'!&'&'&'&547632H#!$B^C./EEMGhg?;cigC'&+sY24 *Nz i 50L& 1ii}zD?o2`fxU !!5#"'&5!3265! Q[Zmefh#$.pfb./ww`[.;<#)N!!!!ii}}`z|327#"'&'dh0oJU@D!"vO_*'3#3#_2.*'L* 5!73#3#K2*3#3#'#5#5!'Ȗ2_'j3#_Ȗj'j* 3#3#73#_}e!!!eD^^~C#5#5!'`3#2dȠ`~:'&ti13#7idd_C'3#_-poNq!!otq~`!!~vEȇ8/(!!f(3#3#/`!!!!ff``0!!76!#"fdF77^z|KJ~*#5#5!'o`!676=!!!767'{j :fkMm\[ :kQc#<`) MԛwS;$ M uTH`4'&#!!323)!77~FJK0K`4'&+!2!'!77>̒<^mJK<"0H` +!!2|```)!!4'&#!!2f77vJK.`!+;`H` !"+7H^nY` K`)4'&+!!277JK`^`!327654'&+3 ! '&f+:)#nttsޛ[`F[{rHzN^0`!! fAHV` !4'&#!!277[3VJK0`3! 7654'&#!!3 +`4BBBUxccU9H;9x_0H476=!!!+f J[Tuzl0`!2)!4'&+f77`JK|a !#!5!"!67!6T@JNJ]F>F^f3ak4ATݏCDV`!!fV HZ`4'&+!)!77F_f[JKyz0H`#3) ! '&327654'&#f8sޛf+:)#nC`0/[{rHzN^DO`%676765!67!c^;1fACu[f 5NAuxL&V`!4'&+3#"'&5!277=p@p VJK6U' Yi`"#3!27654&+3#".5!3 +4Bp/?7V`S33IxccI29Hr6T<-Fga;-x_ WV{`!!676=!f,:fkO`;MԛsU%o`!676=!)!{j :fkMm\T>`) MԛsS;0Vj`!+7>54&#!!2!&Zuz@ZXdBvVڿGi&4ZH` )4'&#!!277(3JK.`6765!%%676!)!<$iT\f^fyf]8k.%v8`Hb`#!2!4'&++2765h77RQj&&W`JK6a`020`'))`')-`'--`!#``!#!#`| "#.#4'&'327653327653#"'"%'##5 b  2 8^e Dh%w`12j{.8+>\VD&&{7F .*57"32767#"'&54767&'&'476'##5i$V/!LT9F"@>8O6.N@yF?C)8."dsh%w`.$$-*  F>]MF*!#^C'q{7F| !!!!!!3#db !!!!!!!!3#b)30d1u 327654+53362!2(&1u9Yb(*BCOF.\4:bR1d(76767&'&767632&'&754Jx%E#pth@GQ6:v{ۭ(A}sOQ<,*.>\#EKO?'y_R'z_^R `'zq>n '{_R$'z&>o!!f^'4bR'5,m^R'5^L'6 f'4#X f$3 7!$'&54767&$3 gZ-ΤKȜfT_`"@yj\ƚ޳}N)?& '4q X}R%676'&'!'I>qOJ.QWy3˽.7=}'4 Z &!6'4'!! 76eI4f2X75gytbeDA '4\ `?654/!765!325!#"'&'#"'#"'$47!3276 :@f$SG%f$B}f\HCqQ: #HFVDNx`iifl&5nNY(htz@J<;6T2_&qY Ha$Zv@$eUĴΪ) :C `'6 ^ 0=%4'!67632!#"'&'#"'$47!327676%327654'&#G3J $hw縮n=DNx`iifl&5nNY':D~v;51KnCZ(--{i3c`[ v@$eUĴΪ) :CDh2/7O2 '4_` 327654'&#)!!67632D~v;51KnC tOPfw縮2/7O2Vei3c`['4oCb *(67&'&7676&76%7 7!$'&54,0.20YwN]0.~xgZ-Τ'a78U&-P1/73QvgYN 7'4d#!'4rokH'5~!=&#"'5327654'&'&767665!'$'$547!32761;5P&#fWRB8D-U "&462k?./>>/.?柟-@?./?@栠y72767"'&'yj/N$!'!32765!32765!#"'"& %1r3#(' .# 'Y31l5WY9!nRe6L2o'*#6yCD>**7"2767#"'&54767&'&'4%6:J5yZp6fcX~VI|epdkAXH,7* @'"% 3@Q.$J!+%}p}L 0:?yE`$ $2765&'&"  '&477t 34'b'43 Zh}}hZBiixx2K!'#"'3 %bQ#`3\S22677!!''!q2]9rR;;Rr9]2ze:^e!66!!&&q2]9R;f;R9]2ze^:eA#"'&'&'&76!'&'&">[caI[ %Z]"!5U)% &O%MM \^Z[B/GXqgkH8654'&"3227$#"'&54767672!$'&547!$2+/#04ٝ1JrbbmgQ=!h!7&'&567632&#"?pN650B>F:*?m !"(j+(} 04M^'I^'8 ^'8^R'5'E^'7 ^'7^'9 ^'9 'z8X '8lPX f'5 2X f'8X '6VX f'7 X f'9 X (/'I >\ Ur'| >\ &'|\ '6X \8654'&"32#&'&54767672!'$47!32%6 $2+/#047C^bmgQ=!q_ &?fI.O&;1(RT4,9*9-Y}i&; Mpv1f/'J'6J'91-! '$&7!32767654'&54767|ϒ@f3UgN2 %bDe+$?.\^Zc:#=$$d|?O#! 6. *Z2]1G'X '|j~<#"'$47!32767654'!<e}걌(f*7N8=8!efg8-",ckJ6_wޤ '4q &X7 `r'|q>n$o$r'|&>obRm#}r~3'&547632&767#"'!'!)l\TXZFY$1iS %1u %'fG=#" & QOG-!nHX8>$&327654'&"327 #"'#"'&57* >>>> *B_5C**C5_||R6JﲱJ6R|ڱee&) 36767"'&547676&#"767"Fj7b[ A-B74_cZ.rK,mXv!#AM311DvAb/ &"326! ! ijj|{j@'&@mstm !!!%Tn[  HH; !!!!l!l"3M )!!!!!l !!!!l!CT!!!!!la)!!!!l)n!!TlXh !!!4Zl=qR)&'.46$ 264&"~52425nnn 7oo7 ٜnnn!!f+X264&"  :R::RQzCꋋ*T; !!;Y|Q 3!! dB)!!!fcfd!!!7d^b !2>4."!!&'.4> ":F:"":F:_O%#s煅s$%ZK--KZK--( 6ظllظ6 V !3!!`d{/` X!!!!#"&7676! 54&#"3vR['F4o;)9t:d)Ģyn~}w>Qc !!!!!UUd !!!!UU+9#3264&2#!!WKGfkG gdpv!!4'&'5n'-  >tC7a3![+-TB"34$!2>324&#"!%4'&#"! f-3)YQRH#CBRs-kx&"r¼v;_c~ !!!!!!45fDD}!!!!!!!!!!5f)f4DDoo!!!c/dd! !oY}GwH-+ #2654&+!!2+or~gGXH,dRNGRd9dX !#!!3Xf+DX3#"!!!"$543!!KGfkSh29pv9d!!!+ !!oQ-X@'!!&'.467675!2>4."d&"uACC4."%!&'.46767!":F:"":F:&"uACC?w'!)ss*fZK--KZK-- 7[\\X:t 6ظ6uX@)!&'.467675!!2>4."&"uACCW ܲQ_Q% !! 47&543 %e9\A &=y~]y %>5>! sؠjpnx{6!4! &4%6b ,Q |)${!325&6!4#"! 67&'&8\]TNVU{Ŋ`޺k㕕RiIKr{7276=$5725!%&'jd##IWh9 zC$nCphTUMP|&5! !$5!! 6t4;_68izA*haqMP%$5!% 67&5! 68it4;C A*ha{H("''$325!765$7%6'%QD7M&ү}9y V!#5HKjjjoiArGs}&''$32=!325!hp}fN#Ѐ|:q8/{ !325!%&''$67&'! 28o8Pr~es6;~Sfno(?Bkf?nBk/ %'$67&'! 25!325!!"l~es6;~8o8P#Bkf?tJkkfnV?2,`325!!#&''.5432325recλ!&`6RV~uЕMQ% !! 47&5! e9\@;h~=j pDy~\xox;2  2Ab$$&%6&%$! '&77$54'&v )ߦyǸ`"sh_ ,S#">6R,2?9J,Ri`T c&T{%%$35&#"%7! ! z6nZYJ*>_"VӺ,2rwe!;GX<C|#3$54%676%$'&7 ̌-(*+]|DbZ*KXR_T i& 4'$6'%! '%$ s#UzHGnNNVa %!ifƊX=,2r Zz(67&5%$5'&746!4#"%${l4: /9DPM"\Z@D0Xj *MS PTtlL%$4! 5'$4lV*rk{hs[; h^B^Eb+&%$!632'&'&%$'&5 7$y %l9A's`VYt/(al1S Ee<,QV0*"%Z<i7/ X-/! 6'&! ! ! 32?632l$p3)vwאr֌3)'"ixFIC'  ^,"'&76'&'67'ҟ, W`k^H5)F2.eWsP!4#"! ȆN=| 1  > *&" %$ 5 '& [_0~9e}%$ 3!5 54 [`f G~9fP3}%$ 5 '&#'57 [_&&&&0~9e}####%$ 3!5 54#'57 [`f &&&&G~9fP3}####&7'6'&762'6r3217*9{[l僐,.--Tbڂf8x&7'5667&763253% 2AKA |ۺ f@TwdD:0;QF, &'676'&76'k`W r,sWf-2G)4G^254&'&''&7767r! }tc0~sa^:",SVO>62%&'&= %'765&%&!2?'&'&w ? f8@:m{]E&NWO+Nߠ_a?)sP/k7hmu~Sq| &5! &'"66xF#6'poy^eD(<|'}! 54'&547632&f p:]ieejdjixz;kS04#"5! $! 4[jGKj4g\?zN.i.x&'7%!#$'CO%7Xђt(bS.%! '&'%! 54'&'&'&#" ! 3232763 Ssa`Y9>',+.6H5)+*9=sY4a]kh]jHjiwE#|X!567&76$7673 7jy %.Z?^O476763676'3!#5676'&'&'&3&76'$CM=!JXY[x5?Gb*gW/A67 *ut7.,U 3533##5#zۺP*Y* !#&54567'6&,=DAA566"327654'&' ! '&4760S<:NV17!!!"32>54&'7;kutԸk:AcENgNPnoQ$/rѵi99irB3YjqœUTr2S:sk_n##".54>7!32>5!3<:sȕU+F[/TCiH&%AW3/YF*,K65Ro]n0F;6^E($AY6%n| !4.#".54>2!]w*49-52QXN{Hy4'&5V%#".4>7!!!9Pbr|qbP8Ew\`vB0sgb6=kWppVk=A|o]C&&C]o|A`zFDzbp3]̺00n$4.#".54>32}#>U14YB&<@>bD%VspĒTKk7Z@")F_lE>z7oTMpn$"5#!4.".54>32!!-6.#.-Y[Cu]ZtC <.'5S9gJXq@GxY nn%4.#"2>%".5!!>32:'BX1p|#?WfXBYVƓTE7{:uɔTn]E'y7_G((GpÑSSp4PP'7454&=45"#!".546$3!!>ŇĀ>.뾑a1o@ hÕY :EEAZu 9ir(~nV!!!-!K n+4.#"32>#".5!>32t#?V35W?#%@W23V?#8t?MxaD%-8w?pőT6_E(&D_96[C&$B\ T%D`vK-Tnnn,4.#"32>%#".5#!!>32>#@X46YA#'BX25X?#0StrɕV?u?vǑQ6_F)%E`:8^C&&C^8qŽRRqJ.!Rn+"32>5##".54>;!!!5ZB%%BZ53W?#(TqsɖWVtd'E_76^E((E^6oTTorP!$4."!4>3!!">3 $@VbVA&SrJ3W@$<=> K5^F)5U<ApĒT*Ha7%1 P\D4."32>2>53#".'#"$&54>2TؽQNorP2!8( EhIHlG+s:kոk;A?wXP "qƒTTqɊHP*;#_j98`Fs-rҶj::jr^+oHF%-(n#".5!!327>5!RpMybF&%AX3b?!3oT'GcxJ+7aH*K$_<=n&#".54>7!!32>5!R:@Av‹M&3AR.9T60WB'0K%Rq!CB@0F[96aI*%BY4#n###".546732>5!!UqtȕUdb?5%AX43XA$1oTRq^vKo/6^E((E^6F5#".5!2>54&'7TptŐR-$@WfV?#E:9\A#oTRqF6^E((E^6.|E;{ys 4.+32>%#!!!2&BX11XB&/RNO힎AqǓU7`F)%B[6lMNJ[TPMD4.#"32>#52>54."#".54>32QolQPnvŠK-E|d*L;# )*(!O^qBtԸk:;lrv׷h9MYqŒTTqrŒTPn]g8=5 %  9isrҶi99ir8P 24.+32>#";+!#".54>3!27^II^7^J^66^JdffWdLd:&9b9cb8jb]b釈bdnp5#!!33!!33 $4.#"!4>32&BX12T?#QrqǓUKZ6]E((E]6Zn‘TTnn#".5!32>5!t7|=#".5!32>5!Tsj\ /)?R.1XB&8w32#?U1*VE,-5;oÑTK5^F):\CZ[03RoiP$5#"$&546$32.# !27!HLN%ss2w5h^S!3s/!o..pOW2$^^n)"32>5!#".54>;!!5ZB&&BZ53W?#HTqtɖVVt2'E_76^E((E^6FoTTorP35 4.#!!26%#!!#5!!!2  f%/:dKfKd:!, 4D]e52n[6dZ$B#".'!32>54&'.'.54>32!4.#"Splŗ[.)DY01U?#CGXZEgC!SsFxdI)4Qb.3Y@%;[qkZ4hT5~ƉH^߁HzZ2>bE(S/ HW`1~ƊI-QqSL|Y1>bE 90* G[h#"&'!!!32>5!Tp?z5A-%@W21V@$/nR.3[6S9'D\6n !! ! #!xN6we0n#".5#!!32>5!StrɕV4'BX24W>"4qRRq6=6^E((E^6na7.'.#"!!>323  1#.!/?!YrB@S '5[i#BrXn$I2#".54>72>54.#".5467>32.#"|Òf@d툆g %H?*06^}]55]}IK^60;0xNBgH "$!!m/RoD`b>][gG.://#M`65_NL{W/>eDGu0,)$O|W76 !,%n#".=#!32>5!O #((ZwE363(0K! CsX>jO-(6n!.'.5!;26765!C;cK1>B-W9O`0Y)M('JfnH"32>=4.#"32>%+!!#".54>;5!5!54>25C ,&!.-"}.!0Bs[}W:eNOe::eO>=DvsBA3."".t6('5%3Zc4MLa88aLKzV/WrCDtdc! 47324'$5!(4GU3IGms_/W>)d#"36! %56'&5!ҙ52-gz2I?<>$a^"$d+hdi^)%4'"32%! %674#"&5! '7E([B'mSHC7|YSԸ+M, $ndSdj)%!4732'#"&5! /.C\rm[:I@=Iwdk)&!4732=6+53254#"&5! ?8&}@@{#t9^[6Rw<6v]C`d4#"36&32! 7&5! Ip~q5+1auV% , wfzUsd:(#"3256#! !263hG>4S[=`uT)d)'6#"$! FTPKoŽ Fi%! 4732=4+53654!5 )5: JJcrahB)&Gkgd4)/7$!263263 654#"#'4#"#'4#"!&%MjTXOq[ !8뒅e_糽{u7fq d#"32! !54#"!! 杭 C坳rS"$SМgz#"7! )!"7 藴6-1SYe 6A$Jy`d)56#"#'4#"$!263 | ~HWJG 2溺Nd!! 47324#53274'$!'*3E6Hd2Zsa>m!e>W0Vr2jBO%! !3255 '6%5%B;3P}UZd0B#56#"#'6#"$76$% 263 0 fb?B^4*@:APX.zvx! !324&54%5'i5ۈo$>:dk"A ! ##%!! ), ""?!/I1di2) %! 47325&#"#'4+53263 2 -*[w k:Epfz2d~yǢ滻Sdj)-#"2!!32=4+5356#"$!263 ܥ/4uu.j0Ttȶ/7QZ%RmWdi%! 4732'#&!!!*3OfTv?P;"M&d(%67$!263 66'"#'4#!&'&2VPZC /ҭO&w0Z 0 ֺ_ؓidjJ! !32=%325!)373*sy k2B܆d"4#"32! 4#"#54#53263 枭 BV]pAWY "$j#ţOPFx4#"7%'6'!! yz,Yi-XdjO ! 5325&+53'4&'!LV}FSEf[%mzxXd#"32! !!(4Ⱥ ?7,P(y"32'!26;'"#5&#7! YNCp`_!;+ pFPOn dh,3'6#! 473254'&5$%!3#jv./G sq+^#9 :fbjxw%Hdt:TXMD"4+dvx&32! !7杮51+#5?%\dh! 47754'7%!%(5Rj({&Slk_aT#}5y <~Hd'! 5!3254+5354+53254$53+17(((*J򉓎pxך[PdN]3{F$7Wdj]8! 4!3654+53254+53254+53254'&!]&KX9>3>>;;=="iċ]e3tp[b\UFB$]#>tU>KHEed)6&7.5! $'jkomnq5 Y#ݒX!RWdh+% 732=&+536!%+4 -hh}c mUm%dj"%! !32=4+532 32%./8|y-/d43 ҘVds'#&3257354#! 35# ! 3#3ӦȒl*3ɥ7lllt5|`omvktvdjk)##"32'!525#"3$!263 1:,៙^J.HRHxӳ%. di)%! %$54#"'! 327&'%d Ri 8uP~gN{|g(5QYJ9CkyjJ!32'4'7%'327!! y4es*373)ܢ54#"! 6=!! 467$be[gRx.]yONedst^.c{fAxxD^3qd)%&#"'67.5! %74#"]PP;XXT$%r"N׎PWmf.=) !!!^OJpJ Jn$4.#"32>2 43!%  _HlG#!. 0!$6#&71>gL?;܏ ' !'&5T#+ 'r'W '! !!M)#T 'l'1v%=5l'1vk'*u'   +l'1v' f'' f&l' fl&'r'l'rl&l'1u'w'ul'wl&l'1~!!{!!3"|CNC@'Xǔ@7@3{#"&5332653짚L76M@vvp6MM6p{]#4&#"#462M67L@p6MM6pv{#]!5!2#!5!264&vv7LMÚ짚MlM{#] 3264&#"462"M67LM67L짧@7LMlMM짧@%''MOOOO{P3#3#jCnd!!d{5!{:{#] 53533##5{ККК{#!###{:К1 W'O '~ ]'U ' '!!!5+ 'r'W '! !!ut}))w+ 'l'1vk w+pzsx5kl'1vkk'*uk'kk+pkl'1v' f&' f&l' fl&_'r&_l'rl&_'w&_l'wl&kk'*u{(5(S0g{a3#{!3265!! yy6=r'DW3! !4&#">EF>yy=6l'1@v3!2654&#!! ! TMwiffix##ateetal'1@vk'*@u's) $'&5476$)!"3!jxiffiwMT ate etasl'1@v'''&l'l&''l'l&'s'l'sl&&{j#"&'.5467676;#";jzLB@@BKizË\RRQ5@8]b8@!H@xCC'6&6'\s'NT6 !# $5! "3264&6gL, _^ztlz zsltmzr'@W 4! !"'!"32654&_ ,Lgj_zltz zmtlszl'1@vT6 ! 4$!2!264&#"61Gg_zltz%zmtlszT6l'1ovTk'*ou !63 ! %2654&#"gG1j^ztlz zsltmzl'1yv'IT 'R' &Rl' l&R'IT &Rl'IT l&R' &Rl& l&R&{ 3632#"&2654&#"{p/ѽ7e]@EYf6GC?D@C@I{ #"&546323>54&#"ި/p{9fYE@]e>@I@C@D?CGT ' &T & &T6!! !4&#"L, __dszr'@W4&#"!4! d__ ,Lnzs l'1@vT63265!! Փd_nzsT6l'1|v Tk'*|u !! 5!326_d szl'1yv 'IT &R'I &Rl'I l&R' IT & Rl' IT l& R' I & Rl' I l& R& I{3#"&53326ѽi6?j6@JJ{32653#"&5aj?6iި@JJ@6ʉ8G!!!r#+r'W!)!!=rl'1v!8G!!!+#8Gl'1v#8k'*u#!!=Nl'1}v&Q& 8*'\'!Q'!l'"Ql&"Q'# 8Q&#Ql'$ 8Ql&$'&Q&&l''Ql&'&&{ !!aqZC{!"&'.54676763!!"3!LB@@BKiZRRQI5@8]b8@!H@xCC{ 3!5!$q$264&"  $547!zzz7t'lmmXyt]#T;J'/<T;$264&"!! $5476[zzzp'tϘlmmX]tyT;U'1_<8"264!!&54$ zzz '11lmm#]ty8U'1_>8U'*_>T;"264 '&54$ !;zzzɨ11' lmmyt]T;U'1_A &: N': a'A&T ''YA aU'B&T 'U&BYT;U'*_A{"327654'&"'&54632!C-**+EF,)).Di`W\ :8 8: uIBC3{"&53>53f99g6@II@6ʉ{"327654'&!5!&54632GD.)),FE+**-C4W`i\ :8 8: u3CBI! !2654&#p7@fzp##WPdmT;J'/OT;!"3 $54$);pzf@7pmdPWT;U'1_O8!2654&# )8ppzfZ#mdPW#8U'1_Q8U'*_QT;! $54$!"3;[fzp#WPdmT;U'1_T 'M N&M 'O]T '&OY U'P]T 'U&PY 'Q`8 &Q= U'R`8 U'=R 'T]T '&TY U'U]T 'U&UY{!"&5463"34ɳVDQInw0.7?k %- k+2ydd܃T !3!5!;*vpr'Wh 7!%!3 *;v_jl'1vhT %!5!# B__pTl'1SvjTk'*Suj %!#!$!B_?jl'1yvm?'f$T'1fh'h>'phhl'i>l&ip?'j$T&j1?l'k$Tl&k1h'm>&mphl'n>l&nph&m{~ 4&+3#q9г`{;'.#"#"&'532654&/.54632I>SN5Fb~UUUJKP6QY|JDZ+,"& si++/,'+ud}{~ 0#5473#"g9r4`):T3265!# 54&#"!$3 rY.c2Y.c2Nn Nn'T4!2!4&#"!"$!3262c.Y2c.Y nN'nNTl'1vT-.#"3 $576!2327654&# !"$'&sL`>f䠱%WW#iGf=f[ݠP3 !2654'&#".VPݴ[f=fGi#WW%f>`Ls~WP}+FS~#WP}-DTU'1h_ X'IT'# X'IT&# Xl'ITl&# ']T ' U']T U& ']T & U']T U&{-#"'&5463"326767>32#52654'&#"a30`l`O<$=*?W44j`O=%9.DXwMQPFz0-F(T.sGWNGz0-F'[y!!!!FfKHr'W !!!KfHl'1vy!!!!FfLHyl'1vk'*u)!!!~Ll'1{vJ'['n'K'}nl'Kl&}J'[&Jl'[l&n'K&}nl'Kl&}nl&{#!3!!}ם{#]{ 33 # #EgV265!! $5=zz dlld! $=!!265zz # dlld8!4&"!!54$ zzz++dlld # J'/)4$ !!4&"=++zzzdlldU'1_3!264&#!! !#Vpzzp1mll'1@v!3 )!264&#!1VpzzplmT!)# $54$)!"3!!1pzzpVlmT!l'1@vT!!"3!! $54$!3!pzzpV1mlJl')Tl'2{##"&63!!"3!歳KPMNy:57<k -5- yy2+#$h'264&"&546 0!!%ppp :pTm5(`DD`D!gI7\w+h'r'Wh'264&"!! &54%ppp)}umTp `DD`D7+w\7IВg!h'l'1vN#"&4632264&""pߝ`O+wpppKВ5pz`DD`Dl'1vN632#"$4&"2Kw+O`ߝ_pppcВ`DD`Dl'1vl'wl&{|^f 5%632#"64&"2S2EF>yy `DD`DHIВh=6 $4&"24&#"!!  &476pppTyy>FE>pm`DD`Dn=6^hIHl'1@vl'1@vn&264&" &46; )!2654'&ppp0LoGTMwiffixj |FgD`DD`@2IВateeta#tAnl'1@vs&264&"3!! $'&5476$!32 '&MpppiF| jxiffiwMTGoLgD`DD`Atate etaВI2sl'1@v l'sl&{ *32"'&'3!!"&'.5467676"3264&9cF3I6RRQILB@@BKi1GG13GGPrQ(&+BxCC5@8]b8@!I&4&&4&T%!# $5! "3264&6gL, _^ztlz] zsltmz}4! !"'!%"32654&_ ,Lgj_zltz Yzmtlsz}l'1vT%! 4$!2!264&#"61Gg^_zltz]zmtlszT%l'1ov}%!63 ! %2654&#"^gG1j^ztlzl zsltmz}l'1Xv{~'!632#"&2654&#"jWp/ѽ7e]@EYfLGC?D@C@I+{{ r'{ &{ l&{ +&{ +l&{ &{ l&{'T%!4&#"!! 6_dL, _]szn}4! !4&#"!%_ ,Le^l nzsT%! !3265!6d_^Snzs}%!3265!! 5^^eSszn { fr'{ f'{ fl'{ ' j{ l' j{ f' { fl' {U -"32654&5!"'&547672326=3#"'&GSPJKOOi``o_2MMYYYYV;75><75=^6IBc<75=;75><75=9Sc%#"&'# 5!.#"6$32>32!#3267%3267%2654&#"waGMzFq}~ HeߋӆsU+w`gpq[QeMOMO> f~~CD01kdkdŨŸUO..f}unLJDMm)(` %24+3#24+2)#53qqw~~wiߟcm(&:jX5{Fa326&#%'%#wJv}ZNMMNZ{kB"%WK}LW$&(a'%#53326&+3JU[f##qaFRWJB` !!!!!! 3`n{1#"'&'5327654'&+5327654'&#"56763 l78ttWYZ[<;_7892u|v>CBAtMU^GZ\]\~?@aGH  #$*,"%'<:('$pL`!!!!fff`L$ZT`!#"&'3265hKG6f4e]` !"!y`` !7!!'7jobo`iC``X'{RX5{X4&    B8(~~|DDFX@%!>54& !.5 20Ư217*7@JPT@TV0VX: +>54&#"3267>3 '# 467'7)A+CN{8,,eP~--^K/w}HO0u|CDjKmFEE!lMpX^{&/=5!.#"676326763 !"&'# %32767276'&#"XE qwv}~~kkHRjk"ކQRdcp<;`hAA\w>??>wu>>>>+f~~!"D0)(WT**؜RVW():f>?;:nUVBVUUVVUX/'{ 4&#"!! |uw}G"!E/8[*/ 3265!! |uw}u/8h` !2+!32654&#hze[MTTM`MFGL+z` #03#"#"!6767&'&54763!!OO['(('%K-+%322?s99nnv HI G>a/0!GHoKJ+z` "";5!!"'&54767&'&'!3['(('[Ofnn99s?223k%+-K IH JKoHG!0/a>G``!3265! $5fS^_Sg``vddv`+{%!323267>54&#!!#ZTp[.w#&`b]hF.pfPl|!5353!323267>54&#!!#Tp[.w#&`b]|hH.pfRn'5{$#!!2764'#!!2764'!!08%9? 7w6515ۺ6555!&UgtY;(88]pf##3h 4h`YH`Z\F`]t`%2654&+57!!!"&'q~X7T94|z},)*+SLi--:;`3!!Q``N`!!!!/`}h`J`!!6765!!5&'&5f? f ?fll`au2 X 2uavRRvq0` !#!#!<]!\4D3M3'!!!!!!5!#1d}d\QVv} &27654'&+27654'&+#!!2::I%%$%JpNV\\mmWX@,+76,lOy<;D54t=Vv 327654&#%!2#!iWNNKB !! BK=AB}|6A9JJ]_JJ9A6v !!!!!!vd}cࣜv !5!5!5!5!5c}d@$#"'&54$32&'&#"327675#5![abh뉊^VVLOMNNONLK&! z'ut(HHHH v 3!3#!#vf?bvi3#vi 3+532765v_`1%L'& MN&%Iv 3! !#v^;1tHIv3!!vc_v !!###v54ٚAd=v !3!#vV==v #!3V=D=@ "32654&'2#"$76$ozzopzzp、SstjsstsO ?"27654'5#"'&54767&'&54767&327654'&q6886655vaj45gs;:oppp:;sj15kIF"44(jT=332!!>=!!!!=?!a27kG/064Q|@??@|Q4604,=8'W !'!C<v} !2+#32764'&#vG&''&Gpv !27654'&+#!2!'&'&#L!!!!LfsVWZ[2'((r#$#;m9:וD78xSj $#I>i!!#!c_v3327653 '&5v&&WV'&ddfde h,--,h VWWV&g 333! !&颢颢誩``|m7 +"3276=7#5#"'&5476;54&#"5>32FH3?,+-98RmEDUVTZH>?5HI**&)(=L]998[n440, m7 /27654'&#"367632+32767#"'&F$#3@+,.89QnDEVU+*YI>?5HIJITU*&)(=Lf]998[n430 CCmb53#5#"&632264&".88JI89LLL\[8"3^^^m@6>L#"'&'#"&=!&'&#"56763267632+32767%3267%27654'&#"K>^DE,1M 11XHJKOPQPOqTS.?FGWzHGVU+*YI>?5S&%=AP VF$#3@+,,+,9F$#' 8<77^n430 K9##B=d*&)(=mb 264&#">32#"&'#3ILLIH'&&'M.rISTTSIr.^^0//074\\\\47[gmb3#5#"&632264&".88JI89LLLP[8"3^^^mb#!32767#"'&5476324'&#"b11YGJKOPPPPjjhicd%&mb 5!&'&#"567632#"&73267m11XHJKOPPPPjjз%&
=?<899o43NN&%IF''64Z[ZZ8]̗PP ++\\TV-,.-mO3##53mms 3%! !#ms&m*67632#65654&#"#4&#"#367632+;;Fz@?,2@F(4A##)66AIp:BCGB<^YGhm2#+532654'&'&'&#"#3>322EDhA0 G((3rFz??}CC4KR 10Us\74BCmu "32764'&'2#"&6K(''(KI'(('Ifggf00000000WWWW6m67632#"'&'532764'&#"m6568kllk7765(0/5_4554_1/.. WWWW 1111 mu4'&#"#4632('IK('ηfgZ0000ZWWmu327653#"'&50XNJK'(ηgfZ`00ZWWmb#3>32#"&"3264&O.rISTTSIrgH'&&'HILLb\74\\\\40//0^^m3#;#"'&5#535:t…88pp,21w m23327653#5#"'&m F)(3rEz@@?2MMLB 00V5[74BCmA!53233276767654&#!5!#QG9WVU&% laf= ?H.23=mrm(#"'&5332673327653#5#"&M+;;Fz?@,1@F(4A##)lAIp:BC~C<^Y4hm33#m⯯Olb5654'&#"327654'&'5647>32#"'(9E'&IPJ(ogtWH01I2"*@^:[OO[1#/! /0YY/0&'P0PB&H1e4.9/HqdJIk\3#5&'&+532ef!*f+`)S1 *8@ +&#"#"'&54767&54!232764&'&MkXlhghhg!(]LZ"*)*GH)*Z>`'74?KXWWXuZ,Y' 1XW2122TS 2#5$47635676&_YggUjX"T HS$$WH/0F9v6KN! 73;#"&/#'&'&+532c"Fisx/  dFS=>19H-Ti.'(mmOg dnudm2sdmsdlbwd\sdlb67632#"&'#4%"32654&UNOLz\TJq/xIMMIHMMH TN47%_^^YZ^Syd! sdF^y(>32#"&'!32.#"2654&#"Ju uJUc^[o|xsp||b\\c !65vc`%!535#535#5!#3#Fy!!+532765'!fgllͱ>f&&wv..tmb#367632#"'&"2764'P.89ISTTSI89LL&''\s[8\\\\^^///m&'&#"32767#"'&7632../1_4554_5/0(5677kllk866 1111 WW6WW mM1;2'&#"&'&#"63+0#0#"#"''45&'&7632$"]R4./.1_54 @j,~E2llk857 * 11XE-c@0&)W6XV mu/&'&#"327654'&7#"&547632''7'37y"#" JPRHI'(gJ!"gf__xvF<JDS^00ZLHHSWWKJzBH6qA@H6m1#"'&'5327654'&+532764&#"567632M'(VU:::9-;51I)*+'QJNJ$F<%65&9987##((?a10  "~0( PT7#$m#"3###5354763}0pp@A&,,f11mV33#+532767#53ppADp'@v?CBmb,#"'&5476;#"'&'532765"3276=.pJUTTUklB>=?<899o43FN&%IF''64Z[~ZZ̗PP ++\\TV-,.-Tm23327653##"'&m .F)(3:9Ez@?~>R>01V4P7BCmT3#33##5#53ᇇQmmm 3?'&5m<W~GELDC~mT !53#5!#T~ lmT!535#535#5!#3#T~~~ qmmqm%3#33"+01"+5&7637&#"3276j#I 9DG „W(B;AQvX7Cw*!m) 3;#"'&5mAiDEKCCrm133+53265#mCDo'@0(sBC4Am3!!n40m067632+5327654&#"#4&#"#367632+;;Fz@?FDi@,2@F(4A##)66AIp:BC}CCAmB<^YGhm(#"'&5332673327653##"&M+;;Fz?@,1@F(4A##)lAIp:BC~C<^Y4hm '#=4'&'&'&#"+5326=3>32  G((BDi?23rFz??>R 01U{ u@C4K{\74BCm "&'&'&#"#367632;#"'&5L A.(488Gy@?0AhDI0 1*[s\9BCK4CGnm$ !3!#mlmmu 2#"&6"!3&'&+3276fggfηK('H0 (KI'WWWW60$==$0*00m#+!535&'&7675#5!#'6764'&MggM~LffL('' %''1`AW6WAghAWWAaZ 00M 00m=&'&#"#"';#"'&=327654'&/&'&54632ICCG%nl332653 '&5l4;<4TSSTB88BxBBBBm(#'&53?27654'&/2.%`aW~GE J40$5!J=XXXDC~q_71P<@/(fm# #3ⰯOsm !!!5!}gstXm!!;#"'&'!5!}gt  RiDBktF C@uXmMO!3676#'5!5!25&#"}geNiQ~t\R<mONX-m2 7!5!#"&'532654'&+gf6O62kkHGDCCAaf45gv؏ ?:P|A@<79m !32767&'&#"2#"&76C$(DB)$#'DA*"VWWVVVG?DD<8ivw^wwwvCf!73!CCf3!!CfCf!#'!CvfCf!!#Cv⦲ff 373#'xf #'#373DzDzx ''$X{'Dl'1v%^k&Ef:M'%M^'E'%^'Efo\k'+uXo5f&v 9l'1v'\k&G\:M9''\M'G9''\'Gw9'z'\o&zG9&'&\&G&u&(c'X k&H&Hcu&(bX k&Hba'M(Xa {'MHp'(Xp {'Hok'0u'z(Xo F&z'Hl'1v)'k'>:If6'm"*\F'Jl'1tv+k&Kf:M'k+M'Kk'jB:+/k&Kf:\o'zV+No'zHK'O+'K p'|,p'^LRu&,`!V'`qk'+qu.y&NduMq'\.My'Nq'm.y'NM'/M'_OBM&/'u$MO'q_;'/)'dO&/&&O^&9k'+u0f'vP9l'1v01&P|M9'0M{'/Pl&11Yv1&QM&1kM{'Q'X1{'Q'T&1{&Q&ffu&2hX'S&RhffY&2fX'3&Rfffu&2cX'k&Rcffu&2bX'k&Rbk'+"u3V^f'vSl'1v3V^1&S:l'1v50&fUM'5M{'_UMO'q; "M&qU #'F5D{'U-l'1v6jb1&VZM-&6jMb{'bV-l'+u'1v6jb'v&VV-m&6gjbc&#d2M-l'1v *jMb0&a + jk':7k':W Mj'7M'W j'7&W j&7&&W&M'>8M`'EXo'8p`'Xa'6M8a`'MXu&8',NS+S&X',1+]Y&8^&X'qj 'm',u9:'Y M''9M`'Y=r&:-h|Hm&ZC=r&:+h|Hm&Zv=k&:jh:H1&Zj=k'd::H0'Z=M'x:HM`'Z'l'1;v; 0'['k'j0:; 1'j[l'1v<F1'\\qk'.u=\Fc&v]\Mq'=\MF`'9]\q'=\F`&>]'Kk'j:WH'ZF'\X'D'k'L:A@#"&'32>54./.54>3.# !4632@hpi?lZ`PnG+9\=,@7,Bda( 5e}tDxk-KP_.Z?:HRGnf&I }<nf&I #n@f&I ~nn!f&I 7G'* pG'* 6f'*U }/f'*N f'* ~f'* VG&K pVG&K Vf&K }Vf&K Vf&K ~Vf&K Vm&K Vm&K G', pG',  Ef',O } Df',N f', ~f', m', dm', cG&M pQG&M [Bf&M }f&M 8@f&M ~f&M m&M Xm&M R!G'. p-G'. zf'.= }f'.N f'. ~+f'. m'. dm'. cX'G&S pX'G&S X'f&S }X'f&S X'f&S ~X'f&S G&4U pG'4  ^f'4 } cf'4 f'4 ~Af'4  G&Y p G&Y  f&Y } f&Y  f&Y ~ f&Y  m&Y  m&Y G'9  f'9  f'9 xm'9 cXG&] ptXG&] oXf&] }jXf&] `Xf&] ~Xf&] Xm&] Xm&] } G&=x psG'=  f'=+ } f'=6 cf'= ~f'=  m'=l dcm'= cc)f&E c)f@nf&I FnfAVf&K VfBf&M lfCX'f&S X'f` f&Y  faXf&] yXfbcV)G& pcV)G& pcV)f& pcV)f& pcV)f& pcV)f& pcV)m& pcV)m& p V'G&  o V'G&  oVJf&  o;VOf&  o@Vqf&  obVf&  oVm&  oVm&  oVG& VG& Vf& Vf& Vf& Vf& Vm& Vm& VG&  o6VG&  oBV Ef&  oV Df&  oVf&  oVf&  oLVm&  oVm&  o&XVG& oXVG& oXVf& oXVf& oXVf& oXVf& oXVm& oXVm& oV G&  oVsG&  oDV f&  oV f&  oVcf&  o4Vf& ! opVm& " oVcm& # o4c)F&Ec)&EqcV)f& $pcV)y&EpcV)f&@pc)9&E qcV)9& gp 'k&&0u 'O&&q;f'& 5Wf V'&& owG pVwG!527#wGez\9;\m',ujVf& (V{&KVf&BV9&K qV9& vf'* +ff', Rf V&, oXEf' p ,f' p  0\m',u pF&MV)&Mqd&M X/%9&M qdm&M rP,k&.0|uAO&.q|;;f'. f!Qf'  8]f'  H\m',u  F&Y &Yq &Y  DV^G&U pV^G&U  9&Y q m&Y rk&90uO&9q;=f'9^ f#aG'6 ^;;&j l;^fCXVf& 0oXV`&]oXVf&boX9&] qwXV9& of'4 f"uf'= f$7V&= ofmfvwG#3$5Gzeo10!!oto n#/10!!nKn/10!!n$n/10!!n$/10!!1&__J&BBX@ 10!3'dX`X9@ 10!#Td`L@ 10!#Te`X9#d`X +@    1<20!3!3!ddXb`Xo + @  1<20!#!#!TeTe`^F + @  1<20!#!#TeTe`^Xo ### ee`^5; *@  WV W <<1220!!!!!5!VJ#!/3;?@!   W VW <<<<2912<220!!!!!!!5!!5!VJ###!<}'` ]10467>32#"&'.'535II245633JI326J235624IJ336633'AF'AoH !!h}!!!!hh}}^ #@   1/<<220!!!!!!hhh}}}yB V #/3?K|@C3 2211 003%@ *$F4 :02$L3IC1!  C=!'= I7' -L9912<<2220KSXY""32654&'2#"&546"32654&'2#"&546#32#"&546"32654& HNNHGLLGֹHNNHHMNGպֺ׺GNMHHLMh{rs{{sr{ؽ۽8|rs}}sr|ٽڽ ؽ۽٨{rs{{sr{ B "-8@DMW"32654&'2#"&546"32654&'2#"&546"2654&$  &#3  &54$"2654 ZHNNHGLLGֹ(HNNHGLLGֹHNNMNt\t؎NMLh{rs{{sr{۽٨{rs{{sr{۽8|rs}}sr|z ۽1{rs{{sr(`!(`u(`b&  w(`' w&  (`#!`u(`g&  |(`& ' | <#%##'y29190 5%'q'y<91905-$'3'}''Y'Yw'n!5>32!3# ^fy]N^@D*h1"B:*(ǿbY9>K-dM B0_  $'5 $CJ?ơSPPSEFE&j &$ 56$ :F;&FEFESPPS_#3 #ۊ@ v#")' {' { ;!!vh+@55%10KSXY"#3  !!!!!mT"^ !5!!5!!5m^F&""&"'n"d_ 327!#"'ddp_{C; 2###̾農fS3'#"&'.467>3،I326535IR2633235fS'372+r،I535623I532336) ` #!>diu1}j&  la# %#'-73% %#'-73%== =  === =  oqqp qqp=B<''ldR#"'&'&'&#"5>32326搬 錄ܔ吙錂RPE:=MSPE:=KX 8| #'7!5!'737!!؍1؍؍1׍1؎؎1َ׎) !!!^^^OJpJ J(`P' e' w&  + !!!!!,,,,T,,*,,B !!!!!,,,d,,T,>,,,p,=!!!!hh}1}d0 !!!!!!!!diiiitpD %!!!!#!5!3!,,d,,rr,,,p,\rs9w !!!!!!hhh}}}}}9w !!!!!!!!hhhha</ 4&"32767#"'&547632B@! !LK! bcabbccb@@@AAAAoppqpqqpmO3#3#mQ8. 333##5!5ya$!!>32#"'&'5327654'&#"Lq6^]efNLLLKCC32#"&547632>>?:431j;; )^8``rs?;<9$%IJ$%%$JI%$ 56i{PQuv T!#!TSFy6M ,:"32654&'&'&547632#"'&54673264'&#"C#$$#CAFFT**WVWV*.Q_.0[Z[[^97<79!!>=!!B=>BF00Gi8777jL+/45P|@??@|Pj26dA)532767#"'&54632#"'&2764&#"~8h2i;; */07UVrsA;;>>>?>56iJK|vv $%JJ%$k !!#!5!hHIkۅ%%F!!'FA!!!!''ń{o#&'&47673`....`P)(P}|}~g6764'&'3gQ())(Q`./..a~}|}n?#=4'&'.#"#367632? .H))4:;F|@A>R01Us\7BC</T d{C{dmTtdZTud8.C daC dN'T dTC dMT dAT d d% d) doif dgif dm7rdmbxdmud:sdmbydM"%!!!!!!# !2.#"3267 3P^F^PPVVP`**9  9*)73Ʈ27f9)06&'#7&'&76%7373&'6767#"'#&'B=!72,Ϳ@76 0<:d[bdcuTR!Fi+<V,6767# !2.#"!>32.#"1.bedue`udelo1@0;k$")N)u~ "I77ef87ID: ̦c[M!!!!3#!#5>rgz[X"X}#676!2.#"!!!!!!35#535#5`z\YFMv84uuw|'&>:r B0#4'&#"!!676323632!754'&#"!. Rh78hCUThtYV/X21##Ne9(75UU``/085cs VH)v75TRXZ#5#535#53!3!3#3#!#!3'aLZmRmaLxJJJJ P3264&##532654&/.54%!#!! 3!!632.#"!"'&'!"&5=pzzpUFItijIm?"fqffqhcڀs_fcKa?ov""Ա_ml%N9"/:90/ # U~^> 0035+. # BF2654&+!.+!! 32654&/.54632.#"!"'&yiiyf7q^mL'O}@:djptijIm?cڀs_fcKa?ov(?ZgfXspR֔-v/:90/  0035+. #"&)-1'#53'!!7!!7!3#3#!#!#5!73'!!7{X6q66s66n6XzD̅D˺ijzjiK@vvVVBvvBvvvvO ! !4&#!!% !3!!PN+$ooaY*5=Y>&1r@;.*(1.!2*("%!) 2 +) )% 2229999999999122<2990%# '#73.5467#736!2.#"!!!!3267_pKXbXMep_Qc-VY2~cTR78 87NO{v$$ zzOO<!!!!!!#5J|ibn`u!8LȘ j!'75'7!!!77{d,d,`c,c,<^:MS:MS#9MR9M7 (_t'6767632#"'&'327654'&#"67'6767632#"'&'&/#"'&5476323276767654&'&&#"32Nע%;7OKkJ?O+A03'&q++S38=D !?9DL_K>.136> QORJBJ(Q(30`DG4%63x>$ #7+Уc]97#9Xzav24?Le;&2ELyP)+'+>AHJB @@=kbq~Es/4 %UAB`_KBjoD7=AiK}f^[@ 0)5'32327&547632#527654'#"'&#"654'&#"ѦwJw,PYaTkzI5Et|S@,3Z8$)DlX``S㫣lm@.jVBthP#lH+990CF *1!3276%!64'5#53! 3#3#!#!#5%!&'&+g9mmN^qq^mo9g_B7P*PPgX~Ug(gT_g6f[$x$-#5!#5&'&76753&'&'67679}h{ei񘺼d^tgiVoo$*T?pcBuqDeTKF#eiϥ"7?& 6#PU" 5!!!#3#!!!#537!!/3'3 { 3R{{/{{R3[3K3_/UÕeeÕÊX60!!32$7# '&7#5367670!5!654&#"6$3 3#~| Ӓ)6^8 h{{ "LNTML56yx8)5'PL87<%% #L )%#&'$%6753&'&'6767_g9:Эݢ:7h_Q\DGHCZT%;0,R7r~or 7N'(OQ"z!3!w=!5!'3:w=z!#'73!5Fww͌=z5!'3#7=ww͌;1 3#%3#%3#1>;1 3#%3#%3#%3#!_1=z #'73!'3#7wwww͌͌) %)A"326=%!5#"&546;54&#">32!!.#"3267#"$$32LD62?[A hScSciY']f6eppe:hWPDD..,-_K y EL61!657@!vv#B) *EI%!"'5 54&/.5!2'& "326=%!5#"&546;54&#">32!! c˫6)O/'I0ؕLD62?[A hScSciY'9 LD 3 G< }K..,-_K y EL61!65f\!.#"3267# !2\jႹsmj}Lu}@C?k??D78ef84կ -'&r#$/%/ܸܸ$ и /A&6FVfv ]A] и ии /+015!&'67!!&'&76TT.--.0+-.҃tXWe>W ! xw)'1.#"3267#"$$32!!"32654&'2#"$$A]f6eppe:hWPDD KSSKISSI@!vv#B5qtsrrstqT)15!3265!!5#"&.#"3267#"$$32!!p@ )FU?Y]f6eppe:hWPDD GhD"dUrmJI@!vv#B5Ry&r):In!7632#"'&'&'&#"32767#"'&'&'&!#"'&54763232767676"#"'&54767632D2ᐤL#.$3!.)%!'!!/&7/F+,WP"-tI1(5+,!,AD!#j[R.D)*6*!8U+De %%0!, !%LDt˃*>%+'&%G8@N/ϭ@)49$'H::9U*9<==#;#%3buL/, y^ &'&#"'6767632654'&5476767327#"'6%6"#"'?3276767654'&'&#"9<9%$,,=M,,HG,pc:@Bw9OIF5O9.Q%(HB'( Iq(9.w^$)*&0B%/^y5\Gnu85#.,M)(21tDOTʍ>ZZl5{D&%7{IF9Xau !X3!!5`_IH|je#O@FeM3!3%!!!!!!!p8\\]x}+ ?;!>54&#"!!>32)q GAol.hucm VH9O@Fa^ N63 !676#"!'7!%5Ze gkԯ%=f&P#p/V7D6K:h|JD7#"'&54763232765"#"'&54767632DH)EXّXF+I/4$%BH>>@e)&0B-%2Z>MYҞiOP>>9&+T2"86/Y&] /A"= + -]yM)(jF2632327#"&#"7632327654'&547%#"'&#"^v{x}}ȋo֏z,\l/v~jX>6FF PP5ʷ05^:11::b:~"FLxUBnb_Xċykb[OPLKJ'&7676%2#"'&'&'&#"23276767657#"'&'.#"'676767676 %QPN# 6F &8S$-+s2'nK"??|m-]+%!; X L)+oyV?=[4$ PA(Zkxv1/zgcD9;TXy$)D02.(^ B),\A6%273#"'#67&5477632654#732#"&'!#!#53276'&#"ff9ItυtI=<<=sq?>>rrra^^a+ETT@TTUTV 3%!3!#eWx 4x]xK+CE <%)"264!46!"!!5265  &!!5r>>r>I,W RW *֪~oqqȎ>;VȎ>;T^ '9!2+!3264&#"32>54&'&$  $&546Dz OUUOAЮWWWVy{ήWWWX 0llllBx@9WzyWVVUyzWXnnnn;C0<67632"'67327654'&#"#"'&57&547327654It2݂DIzdM&dmU>"9yEY:?.m((6UE?LPק=+<$~\oA7n=B Ũhb)<(,QB3%! !#!327&+67654'&41\=66=E1mm1]x~#g)ZZ)ff'%!# ! % 7& 676'&-fgk{@{{{}L%lkh4334a@<$ [27654'&'&'#"'&546323276765"#"'&5476!7232767#"'&̏hX&MM])zL5F,D! 3;1X00[Z.9'379GeϟHQrl}\IM=!&'E)TAhOM,2:pZϘM#B.97>#3*M*3D!!9!K.@_u20#"?Gc_3䂈/#>!8Z%,SlJY&54'&#"#"'&5327654'&#"3"'&547632763227767654'&#"HL^eZZfgr82ED2881VN2884@Bfggf\n/$~AB}:1$ $3CAA9Ya+.vuuvjVMMWWMMV[^SMpuvuuk# XW1W{|^1$h{r^Co(BP>;[Yj )Y%-13&'&7!.+!! !27&#676'&%3cT:[E5q>4>x\u1E:PO"m=s@1F~h|hb)tL  %    ji i ji91<<2<<9990KSXY"73#######5ww㪉LqKBM%7!! ' !E4₰|`E \ 3%!!!5!.d#=&]x'x5)R7# 7654&#!5!5!5!!2!#"/j VTjrkY^H-u00rpL7=7s]N'72767654'&#"'67632 !"'&'&'&#"'6763232767654'&'&'&'*#ZMG!MIQnR 'ynMy'ѰTX!<0K ra]?X3%;fX^@#!73*BZ@D^@ 7v_>ne} rwΪIF#2I'&*!DB>2Q5ecrRX.,*4&"5632!1q >CAh@[+Xq. 'mT.<N]232#!727676765#"'&5476%27654'&'&32767654'&'&KBha`pcy!))23I@F0$wtTS(0ch !#E2):|HBSfTi1'&05Q>M:nn.7#!B:yZX$ ^]yk!!25>PHIX1%.!(Ivy0@7H] MQ#;T99#%c% gTrh870@2!.IO!@#7>!7,2@FMVy32._T{w<Y}Y-)% 7673 $54$32!"53!25&'&#"C]JjMo_zggJF__DM3TT<`xGZAEIpP3RQ4OSD6'&"132673# !2Up3Fs*Nghz"?K9U n"Gzt#(DaXI7&'&5476!2#"'&547654'&#"3"32767267!"'&'&5476`Gej,sNV+E2//6' '\oSh]-liōFf|ekA)+>-!>Z`'9QT(+" #)"H[|T$?9]pX`88$6}yoK/S76?#"'$#!!#"'&547632327676=7!&#"#"'&5476!27Q73P1!L,#%(JpR02W^Z91"@1(#>mx6!!}H;m,Ud 0A7+6M?R  cBb8WkLSF?Q.J;$!!J?f/hi v&LWSH 3+"P H )!!!!g##yM ?m%&'&'#"'&5476363276765&'&#"'47632767632#"'&'&#"32767#"'&'&'+19012YqU4/ ,3. &6&< !!"bc:)J4wWgZUPP.\a0.)0>' 4?''Chyo=+uz.2L1ǂde6Pb.,:-$ .48ny"!V"FrjNpZۙ-(".*87`aA?06 "C?Y6%nn;}\ 4&#"322#"&54ID`IFa~ﳶr|tx g6 4'#!5654/&54?'&5477'&5474/c2-i>Bd=VE/b5c2Bc2c2Cc1NS2j?Bdjl,>8?]/c6gUc1NS2Bc1MS2c1MS2'(32#!"54?>3!4'&#!"&476323!2k+"E!$:@ϨD!*Y[A''# I q#= X?*#"/#!"54?>3!!"&54623!2 1= i$ c*tD!$ZkF,(Jib' 2!Q<_c'oA<#".5!"&54623!2< EVkF-)A *|2!Q'Ho{m<z\F 4632#"&3!53#5!pQOooOQpoTQooQOonuyy5yZu! !232$54$#"ehdol\Pfgk-¾ `  ! ! !!!#!#!!!!!! zVV  s?m.mt 372!#Ie%F` 53&5!#3#32767#"'&'&'&5#!#"#463!d.4U"_'165Ic@;6 ^7V)"xfQLW,3$p G x &#T+Ka~=2{ƜV}3>3 3!#"F{!nDFvFuV;c; 3!!4H\]x+3!3%!!!C\\]x+]w ! ! !!5 5-ExwcS46$3 !"$'3254#"3!46uD~y}|^#%,>f]&9UGs\T}&0 !67!>3 #"&'32654&>54&#"g57ocbiE*([k^PMU1ABwCt2FnkBmFDےj5j:0.;6"W-/wGs))p` !!5!!N`#{#d' &{udm'ud' td' &{ dm' &t dZ' ' du8' ' d d' &{ da' ' d d' &{ dZ' &u da' &  dT' &  dd' {=,&,,K&,',K,&,9 '9 &9, Y&9',, &9',',',', g, g&,;';'9',;' &;',,G/f\&9'90L0'LLN&L'LL<&LYy`Y&YL $'L'LY B'L 0'L'LY'[L `['L[ 2'L'L [OX5{F\G{Pk !*3 ) '&'&'&54767676!32654&+#"3Txi3333ixUxi3333ixT10tfet1001teft01Nq9 / !+ +(+( A]A)9IYiy ]A&6FVfv ]A] и(1.+" +"0132654&+'67654'&'! )=l=R;4334;S>jc7>=7dTMwiffixjzWV:2ST2:4:on:3 ateetak  BZc32654&#67654'&! '&'&'&54767676) 5&'&'.546767675#"3l=R;4334;S>jc7>=7OUxi3333ixTTxi3333ixj>S;4334;R=ld7=>7cV:2ST2:W>4:on:3901teft0110tfet10#W:2TS2:V3:no:4f\HX5{d?Q   2@ @@ 00 ]1@   990@   <<@ <<KSX << Y5!!dyƑ<Ƒ* @   991  2@ OO ?? ]0@   <<@ <<KSX << Y3'#'ƑwxƑuPQ   2@ OO __ ]1@  990@   <<@ <<KSX << Y'7!5!'7PwyƑȌwƑ* @  991  2@ @@ PP ]0@   <<@ <<KSX << Y#737wƑxƑdPQڶ 22@ PP_ _O O]1@    9220@   <<@ <<@ <<@ <<KSX <<<< Y5!'7'7!dDƑwƑ<ƑwwƑ*@    9221 22@__P POO@ @]0@   <<@ <<@ <<@ <<KSX <<<< Y3'7#7'ƑwwƒvƑw;Ɛ3 7!!#c,4c̪43 #'!5_c̪43c̪43 %!5!73c̪4c43 %'3!zc4c,4d?Q5!!!'7!dyYyrƑ<JxxƑuPQ'7!'7!5!!'7PwyyƑȌwxJxƑs/&'."#"'&/#7!!267676767632 NZN !D:[P_cLW>bc,a NZN $A?VMbdKX=AW\)""!&OG='""'=`,c_""!&V@>&""(WLc_P[:D! NZN WUA<(""&>@V&!""_c`='""'=GO&!"")d?Q53!!#dƾWYƑƑ<WƑWƑ!3''#'5' WƑWƑwƾXƑWƑuPQ'7#'7!5!'73'7PwƾYƑWƑȌwƑƑ+#757377wƑƑƾWXƑƑdXQ5! !dW>HƑ<W‘WƑ\PQ'7!' 7!'7PwH>‘WƑȌw>>Ƒd?Q !5!3#OiƑw Ƒ6* %'3'!!5Ƒ6ƑwhuPQ !'7'7!#3eƑwiƑww\* 7#7!5!Ƒww\hƑw*%7'3'7!!5wƑƑwhDƑwƑwd?(5!276767654'&'&'4#ƑwJ    E4;,-0+,;5D Ƒ  +,x>@9>*+uP(!"'&'&'&54676763"3!'7'D5;,+0-,;4E    JƑw +*>9@>x,+  Ƒwwd?;3276767654'&'&'&"#5!5!54676762#M     Ƒw 0-,;45;,+0-,;4E   ƑM>x,++*>9A=x,+uP;54'&'&'&"3#"'&'.547676762!'7'7!#     MME4;,-0+,;54;,-0 ƑwM   +,x=A9>*++,x>MƑwwdPQM2676767676322676767'7'7"'&'&'&'&'&"#"'&'5#$   "%'-0$+  ' בw 'Z&(%   "(&-0$ w $ -#% $, ' בww"*&  *&"dPS%'!5!!'7'7!r?ƑwAI?Ƒw2'ƑY2Ƒww 7'7v9j#Pu]W)9Z, !#!5!,rƑw~Ƒ[ !!'7'7!~ƑwrƑww<Z, !5!,ƑwLƑ[ 3!'7'7!Ƒw<Ƒww- !7#7!ƑwwVƑwdb 5!3Ƒw Ƒ z%#4'&'&'&"7#74767676 >Ƒww12^YzoozY^21VJG@9!!9@GJVƑwƆvx]Y6006Y]xv.z%4767676 7#74'&'&'&".12^YzoozY^21Ƒww>vx]Y6006Y]xvƑwVJG@9!!9@GJVM 7!!#7!3c,4B[cc̪4'wwd#P '73#'7!5#3! Ƒwi3ƑwjƑwhhw0Ƒ\]"4276767654'&'#7!! '&'&'&54767< <>7ODHL:< >c,a/11/a_trrt_a/11/a;LJVS=7# :;LJSVJL;,cepvvpeZ5005Zepvvpe]47 '&'&'&54767!5!#2767>54'&a/11/a_trrt_a/11/a,c> <:LHDO7>< epvvpeZ5005Zepvvpec;LJVSJL;: #7=SVJLd ?Q5!d d?!!dyƑwƑ*3'#wx#'Ƒ$Ƒu PQ!5!'7P%Ƒ ƑwuP'7!5Pwyw*!37ƑwxƑw!#73ӾwdP}' , `V'  ,dP}' , d?}'5!!!!5JyyƑwƑ_U73'#'#'3ZƑwxxƑuP}'7!5!'7!5!'7jwyyƑwƑw_U%#73737#ZwƑwxxƑwdP'  BdP'  Bd?Q%'7#5!7!!!!!!~@SwS r@?dVKKWoSSWo6KKdPQ!7'!#5#53533'7'7#'5!)KKSwSخSwSخKK7KKSSSwwSKKuPQ3'7'7!'7!5!7!5!!7'!6@SwSr@VOOKK3WoSwwSWoKKd?Q!!5!!SwSLK7SSK)#'3'#'RTKLRvRKuPQ7'!5!'7'7!5)KKLSwS7KKSwwS)737#73KKTxvR!KKRvRdPQ7'!!5!'7')KKbKKSwS^Sw7KKKKSSSww)7''3'7#7KKKKSSSwwKKKK^SwSSw  #7!##Sqc,vqjqu+cqS '#5!#5'5yrt*dpRpdvpTj! 753!5373pdvpTjYRrtdp! %3!'3FRrtdpRpd,vpjd?Q!!!5!!!?Qv9iwiv2viivuPQ!'!5!7'!5!7!uviwi9vQviwwivZ5Q''#5!773›Ƒwcc ƑccuPQ#5377!'7'7#'sccƑw ccƑwwƛ*!#!5!5!5!'3'!!!!Ƒ,҂6Ƒw҂*3!!!!7#7!5!5!5!Ƒww҂Ƒw6҂d?Q5!35!%5!!%5Ƒ 2Ƒ*3#3#3'#'2Ƒw6ƑuPQ#5##5'7!5!'7w5Ƒ2wƑ*#535#3#7372wƑ-$6Ƒd?Q #3!Ƒw Ƒ\uPQ '73#'7!5 ƑwiƑwhhw7^? 5!5! !!$T_i$$6~ '33 !!,_i$$p$H^P 7'!! !!$_%6~ 7##% !!_%e$6~!!!'33 !!YK_i$$zzbJ$J6~ #!5#3'3!3! !v_r$$pllx|`$6~ #!5#7'3!3! !v_r$$ll|`$6~ 3!3! !%#!%!5#3mr$$M2|`$܌lzlx6~ ! !!!!%'33'37Z$$$__^tt$@@$tt6~ %3'3#!5'3!3!! !!'37__vc̪4<\wrc4bw^+6~ 3'3#?! !! !___-%%$$e Ҍ$$uPQ)5A '7#"'&'&'&'#53676767623'7$"!&'&'!27676Pw?>KJJK>?|{ ?>KJJK>? Ƒf\(( ~ (g  ((\(( @?=wBC3"*c/+ + +ܸ иии!и#и*и*/01%&'&54$3!73!!!!!!##!!a[g"uu C"5N"BwCH3cdh[[[>x>@?=wB%v'% '&76)! !!)P])7KyK1&vo{ o%2lc<'%#!5!276767!5!&'&'&#!5!2}wB""Cw{Ųfe_cCBw=?@>xAAdZx3"*k/ + +++  иии!и#и*и*/01#!#7!5!!5!!5!733>767!7!&'&'&'ba\pu4uW\C"N"BwCH3c[[xx[x>@?=wB%v' )5! 765!5!4'&)5P) 7KyK1)o{o%2ld<'Ol //013!lw@pp120!!!!)u@pp1<0!!!XlXuJ))w O@    91990@ &#)  ) ( ) 8 ]]!! !!5 Bl_{N 10!! !#!5!3!!5!  bbd-W+ии и /++ и 013#!!#!5!QABR>. //013`em%73% %#'mvzzvzvvKJ36r910!!h}LZ n@*      %  @  9190KSXY"3##'%`w͑%hN7LZv& XuDIZe& X  #.%"&'&'#"'&547632676;#";%27&#"Mq7;J;Nw^ccWMq7<K:NwQJmnJkmZ-1c@DU36IqtĻo@DU36I?FZb| !,767632#"&'&'#"'&54763227&#""327654&TJ;Nw]ccXMq7;J;Nw]ccXMq7;ʊkmZ-1bkmZ-1b6Iqwo@DU36Iqwo@DUR?FZb|?FZb|%!3!%!!!3&5/ + ܸк 9и01 !!!#4'!&'7!&'&fX32jO\-*u N#Q(H?vq-..-xy)q//901 5'7%%' 6^w=<P Fp37; B<>b_kyPRPX/3#/)bX/ ;+и//9 901#'%3%:F ;EdeeXW/3#3#/))bX/{//и/ܸи ܸܸ и и// // 9 9 9 9013737##'I;J:\,Y{ *eLX+e5J!!! 5EG^5J!!!5fgw^5J76! !4'&#"!5o{ o.8& i' i i/c9EP'&'7767'&'&'&54767676767676&67>54'&'&'m; }J " mDK6>>?J " mDK6?JKVXKK>? 'U5O9:["$S13(*# b11S$ N/Yeit%'&'776?!'&'7767'&'&'&54767676767676&!67676&67>54'&'&!' mDK6>>?J " mDK6?JKVXKK>? 'U5O9:[U5O9:[":;PLKJ} Tn$S13(*# `%/b11S$ // Qy}%'&'7767'&'&'&54767676767676&!67676&!67676&'&'776?!'&'776?%!)!67>54'&'& mDK6>>?J " mDK6?JKVXKK>? 'U5O9:[U5O9:[U5O9:[":;PLKJ} ՜U5O9:[U5O9:[%Tb11S$ rn$S13(*# /?#4767676767676&7%7&'&'&''&'7767U%#B<\  mDK6&U5O9:[ %AAYw8'~2:)+U5O9:[01</;CPY676?67676&7'&'7767&'.'&4767676776'&'&X', mDK6FT<;Om3F  U5O9:[ &?ǐ,@FF-'q9:80/n2/z-' WC' W Wz-' W' W WCy-' W Wz-' W' W' W W  & P W]g !!!!!!hhQ}} ' W' W' W' W PH& z' W WR#"'&'&'&#"5>32326j`k^Xbian ^VRPE:=MSNE;=KR3276767632.#"#"&'gV^ naibX^k`jRUK=;ENSM=:EP .).#"3".54>3232654H#"&&YH32T;Vgj`VnsuU32326!!j`k^Xbk`k^VePE: =LTPE: >K'##"'&/&#"5>32326!!j`k^Xbian^Ve#PE: =MSNE;=KF%6767#"'!!'7!5!7&'&5>32-]q{@iaBLjuƩZvQ]Seian-9@;OEi0(#VNE;gK##"'&/&#"5>32326!!!!j`k^Xbian^VePE: =MSNE;=KF/#"'&/&#"5>32326!5!7!5!7!!!!'j`k^Xbian^Vj`U>aPE: =MSNE;=K튄튄P3%#5!7!5!7/&#"5676326767!!!!'HrF9edXVVbiZYan)@Ă$TgjYVeHrʉK ='&SN#";Qk&UP#!l#;C@!.9* 1 "9*1<-<<219999990#"'&'&'&#"5>32326#"'&'&'&#"5>32326j`k^Xbian ^Vgj`k ^Xbk`k^V#PE:=MSNE;=KPE:=LTPE:>K3&#"5>323267#"'3267#"''&#"5>32RXbian^[,#Vgj`;L3RVgj`m^^,$Xbk`;L.MSNE;E KUPE/KUPE=E# LTPEK7;#"'&/&#"5>32326#"'&/&#"5>32326!!j`k^Xbian^Vgj`k^Xbian^VeFPE: =MSNE;=KPE: =MSNE;=K7S#"'&/&#"5>32326#"'&/&#"5>32326#"'&/&#"5>32326j`k^Xbian^Vgj`k^Xbian^Vgj`k^Xbian^VPE: =MSNE;=KPE: =MSNE;=KPE: =MSNE;=KK#3276?632.#"#"&'!5!5gV^naibX^k`jUK=;ENSM= :EP@  %5 % $%5$[g&Y%Zh6@976767!!"'&'&'!5!!5!676762!!&'&'&[6/07VYYW6 0%AA%0M 6WYYV7 N0/%'H:f<0[2332[39a?H'N'H?a93[2332[00773;0>>0'#!!!!"32654&'2#"&6HdcIHdeGBz0/11-0|DdbcGHd3/0xDCy-03'!!!! &!56z'!!!! 3# $ׅcK'!!!!33#$ށKc'!!!!!!%fpqeqp2TT' !!!!!3!,րMYz'!6=Q!!!!53#5#"&4632264&#"%!3267#"&546324&#"#"3###535463fuu9&CWWC%:4%''%%''2.$M()R)cmk^Vgx&"*DAcct99BF/4 kj6h66h6k!))Yd[Yeg/!(&#LSS;9'J-!!!!>32#4654&#"#4&#"#3>32![6]b"&16(26 S28V35uo :5SN[5SM%Q//7':%)!!!!#546?>54&#"5>323#!5 0+)^2orv8Or?Aftgsi !!!!!!!! '@    <2291/90%!5 5PN '@   <<291/907!!55%&!!5!5 56PN&3!!!!55%!!!!'7!5!7!5!7 5"3I>~H~6\ڠ\ڟPN!!!!'7!5!7!5!755%"3I>~H~6\ڠ\ڟH 5 59696N33QQ33QQH 555569869NP#+#&'#67&'&'&767&'36736'&DD59gi;5FDDD59gi;5FGAGWedYVedۘۘ&%5%67$%'5$7d0wL,ƦvS)^o'oS*[n&%57%'\Z-VpR̩wSXT~ %'7'75%%5XEZVwopR̩SX_'T(%%!!'7!5!7%5%<lSUCBu;L6S]5-XdsEE(7'7!!'7#5!75%7%5ֶDXFL62.B =^2*ςE\fuES$%#"'&'&'&#"5>32326 5j`k^Xbian ^VfPE:=MSNE;=KPNS$%#"'&'&'&#"5>3232655%j`k^Xbian ^VdPE:=MSNE;=K(14%3267#"'&'&'&''75>32%5%%%P ^Vgj`s;3QOVbia Z^0Q[Fl¢=KUPE: E$&SNEEXbrf5-(143267#"'&'&'&''75676?5%7%57'WR9? ^Vgj`s\GE)VbiY13:D ?\ָ̼܂=KUPE:$Ex&SN# ]euE2, l 55% 5wPN l  5 55%PN<<!%7'%%'75%7%57%5%e\i4"*PW<2."W94 Z_k󆑐3^am􇑓g3;5<<!%7/%5%%'%5%75%F??8]] ' o_\\q'V 13{f네􊇑3i놣s %5$dos===||s %$sod=6||6==y%5%5$>V|}0USx|y%%$V>}|0B|SUy(%#"'&'&'&#"5>32326%5$j`k^Xbian ^Vg|}PE:=MSNE;=K USx|y(%#"'&'&'&#"5>32326%$j`k^Xbian ^Ve}|PE:=MSNE;=K |SUJ?67%'&%5$%ސmUΠ< STIGynʳlqB[,=qB J?67&''67&'֐mUBΠ4PSTIGn6m r6B \,|mݴnLNl e>moKM3#!#!5!!5!3 32654'&#,|ppmݴnLNlg le]moKM%!!!!"3!!"'&766nLNl6ΌmoKM᎐%!52#!5!27654&#!56̌6lNLnClMKom&%!!'7!5!7&'&763!7!!!!#";>Q=Z&zQ<Kl<{nLNlBw|BmoKM &327654'&/!5!7+!!'7!5!7!5!XlNLL0<[RCnVΝ%vFQ<&L&MKomM0 B"WlsBs9 %!!'7!5!7!"'&763!!"3!!P@jPhΌ6nLNl6v2HumoKM-9!!'7!5!7!5!27654&#!5!2)3@@jPhH6lNLn6̌}G.HHtMKom᎐l5J!32765!! '&57!!5/<8.o{o%Hb"bHw+=OOC+8FIcxcI5J& h W5J!!32765!! '&3##5#5355/<8.o{oMw+=OOC+)!!!!*!5!!5TU !!!!5!U*lU !5!!5!5!UT#!#*33!3$3?"2767>54&'&'$  &'&'&547676!!#!5!TSEFDDFESTTSEFDDFESbc1111cbbc1111cb88\##EFc`FE####EF`cFE#dbcwvwvcbddbcvwvwcb88$37"2767>54&'&'$  &'&'&5476765!TSEFDDFESTTSEFDDFESbc1111cbbc1111cb$8\##EFc`FE####EF`cFE#dbcwvwvcbddbcvwvwcb^$3?"2767>54&'&'$  &'&'&547676''7'77TSEFDDFESTTSEFDDFESbc1111cbbc1111cbݍݍݍ\##EFc`FE####EF`cFE#dbcwvwvcbddbcvwvwcbݍݍݍ"=A32767>54'&'&'&#"'67632#"'&'&'&5476' ED"#FDSRcbSUDED"#DFSRcbSUbxwvwc`2111abxwvw`c1211aGEacSSFC##"#DEacSSCF##"#Ib0111cawvxwbb0111acvwxwF$7!!"2767>54&'&'$  &'&'&547676hTSEFDDFESTTSEFDDFESbc1111cbbc1111cbE}##EFc`FE####EF`cFE#dbcwvwvcbddbcvwvwcb$ 5O"32654&'2#"&>"2767>54&'&'$  &'&'&547676[HdcIHdeGBz0/11-0|DTSEFDDFESTTSEFDDFESbc1111cbbc1111cb.dbcGHd3/0xDCy-03##EFc`FE####EF`cFE#dbcwvwvcbddbcvwvwcb$+E %#'-73%&"2767>54&'&'$  &'&'&547676== =  TSEFDDFESTTSEFDDFESbc1111cbbc1111cbqqp##EFc`FE####EF`cFE#dbcwvwvcbddbcvwvwcb$!;//3ް2"/#///0/01!!!!"2767>54&'&'$  &'&'&547676TSEFDDFESTTSEFDDFESbc1111cbbc1111cbfp##EFc`FE####EF`cFE#dbcwvwvcbddbcvwvwcb$37"2767>54&'&'$  &'&'&5476765!TSEFDDFESTTSEFDDFESbc1111cbbc1111cbCj\##EFc`FE####EF`cFE#dbcwvwvcbddbcvwvwcb^B /3  ް222   ް2/3   ް2 2 2ް201!!#!5!%!%!!88oNz88WB c / 3ް2ް2 / 3ް2  015!!%!!8oNzWB N/3  ް2/3   ް201   ' '!%!! NNNNNz]NNNNB !!!%!!hNzE}3!!#3?3/3///33301#!5!\ff!5!!#rr N?3/3ް2 / //3 01!!!#3!>rr #!3!!#j\#!#!3!!#F\\#!!!#3!jj\rr3q!!'!#3!RNEqY&Y3q!!!!'!#3!7!`:`&qYYrrP3q !!'7#3!##g94|;qY&Ytf\+3q3!!!'7#3!##?!`4ww`qYYtr\ r,#"'732654'&'$%5$%67654&#"'632aVn,@1>1Je@J1>1@,nVa;lhXNm1.'0&:6Y((Y6:&0'.1mNXhlr,$'&547632&#"327#"'&5476.aVn,@1>1J@eJ1>1@,nVa;lhXNm1.'0&:6Y((Y6:&0'.1mNXhl 5' <{ ] 7!! 5'G] %!5 <G{ z6'22#"'&'!#"&632!676"32654&:Bz0.22,0|D_4.0|DŒBz005`9PO::PQ3/0xDCy-03`4B <-033/0<B6`PsOO9:Pz6 2"32654&'2#"'&'!#"&632!676::PO;9PQ8Bz0.22,0|D_4.0|DŒBz005` PsOO9:P3/0xDCy-03`4B <-033/0<B6`z6:5!6767>32#"&'&/"3264&z:/0zBD|0/79QP::OP <0/330/: P:9OOsPY[ 3!5#%5!v x  !5!!#W4 !!!!!5fgwX&^ !!! !!5EG7&^ !!!!!5fgwX&^ )3!!&'.'&MI P5 ?֔$OJL $#? !53"w ! !!Jw ! !8!>>!7wJ!cw[@ 1@ <0"!! !4$_lgiHRPcw[@ 1@ <02$5!! !_4pk/PRHi#u 9 WXd !!%fpqeqpTTv!!!!!5!7 !! '33ͅbŨb763!!"3!"'.'&7>763!!"3!nA;9XX9;Amm{4664{m_XS#%%#SX_mDX9;;9X(64{{46%#SXXS#%2?!5!27>764'.'&#!5!2!5!27>764'.'&#!5!2FmmA;9XX9;Am_XS#%%#SX_m{4664{D(X9;;9X%#SXXS#%64{{46 <47>762#4'.'&"#47>76 #4'.'&"#X853 '.'&5327>7653X8-*HM.DX!6%'6%7$%7$%ሗX,tLjrfOM Y%7R/VY(`q:}݂\*[x3!!!!!'#5!7!!! MЫ=Mv0'`@`U@x3!!!'#5!7!5!!5!!MЫ=Mv<0 `j`@!!!!!!'7!5!7!)iԻikG9@莊!!!'7!5!7!5!!5)iԻikG9j莊"%3267#"''7&#"5>327 5T;Vgj`VnNPU32755%T;Vgj`VnNPU327%5$T;Vgj`VnNPU327%$T;Vgj`VnNPU@?=wBC3#5!3!!"$$3!!"!5}wy9geCclAbv'% $76)! !53#5!)Pٛ])7KWK1&v5o%2lc<'& F WVZ"%&76763!!"!!3!!"!5efſ{wC""Bw}B_cdZdAAx>@?=wBC^v'% '&76)! !!)!5P])7KyK1&vo{ o%2lc<'xX"%&76763!!"!!3!!"!5efſ{wC""Bw}B_cdZdAAx>@?=wBC!!!!3!!"'&'&76763!!"L@g}ֲbcefſ{izb9CcdZdA9#!!#!5!276767!5!&'&'&#!5!2bC#DgſzxC""Bw}udxzZdAAx>@?=wBC#3!&'&#!5!2#!5!2767!5}fy9meCxAbv' )5! 765!#3!4'&)5P') 7KWK1)ˇo%2ld<'Z"%#!5!276767!5!&'&'&#!5!2!5}wB""Cw{ŲfeƁB_cCBw=?@>xAAdZxv' )5! 765!5!4'&)5!5P) 7KyK1)No{o%2ld<'cS !!!!!!Sz@&'27#"''7&5476&#"327654'hwwweݰwwwgV[lk7wUZlk5hwwxݞfwwwߞ7kkkUw5kkkTr8R5:zJB6 3 %! XZ9(dT*'3'w*37#7ww"w*b' A&r*k' A&'A{c%64'&764'&?DDDDQ33HDHP@\I HUI^;9ONISN!!!m!!5A!!T"!5!!TAb3#5!Wldb!53#l5!%#3WXd!5%#3DX!#nI,$%%$nn!"nn 8ʸ'+6@KV#"&6 3546 +32 &=# &6;5#'54&#"3!3264&#"32654&#!#"3265˭ʏʭʏeHGeeGHefGHefGHefGMGeeGHe`ʏʭʏ˭GffGHefffGMGeeHGeeHGeeG!3!ng:!!!:xUg!!S:!!!:vU3!!!vS6732#"&54&#"iRA@Aee5 jT@OMJ&e<\-( #"&546323267iRA@Ae(]e54jT@OMJ&<  '3%!5)!V@QQ@tFDx@Q2 !!!!%!!CFDDV O 3! 3 ) ! 3  xXL&&XXbPXX&*VZ )!3 ) ! # xXL&&MyXPXX&*&+x  #/;GS_kw+7CO[gs!2#!"543!254#!"+"=4;2+"=4;2%+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2%+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2'+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2'+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;2+"=4;22+"=4#"=43+"=4;2+"=4;2"=43!2#UݓJIIJ%J%%J%%K$$K%J%J%%J%F%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%%%%C%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%$%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%$%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%%%%%%%*$%%%J%%J%%K$$K%%%%%JJJI%%I&%J%%J%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%J%%%% %I%HJ%%J%%J%%J%%J%%J%  ) !# 3  # 3 W xXx&&XX  &P&XFf    7'3#vvr&999"9"rr5kk\SSAcc\cc`MV^~UX`]c)yE. !!!!!5!NQ !!5!!'7'5!yFCƑwVƑwo# ! ! ! !ll([Rvv !5!ݠΐ0_T*!!#*- !5-T_0 5!]]*!0*.- !!]#ΐ-!!!#*!!#*,!!, !!]##]*!0*.,!!!]#,#sX !4763!!"{|a0!0*,!4'&/32765!<(en:==@ne(!< |AEy <sX> 3!!"'&5!0a|{>ܜ*0s>!!J 4'&#!!2s!0a|{$*0sX,&'&!;!76<<(en@==:ne(!< yEA| <> !#!!2765s{|a0!>0*(!(7^?% !!!%#!55[$X^$$T:__! !! $<Ff +   276764'&'&">  &vvrn66\]]\6666\]]\65kk\SS]\6666\]]\6666\! [^>32#"&'!'%5!%26&"Ju uJ%Qf#{yy{b]]b`jRP[@.6!3!3oNdxN &ۺ+#+#+A&6FVfv ]A]A]A)9IYiy ]+ + $%+$01! 4$32"! 4$357!3!NKKgg L7h׬z@+/ xN 4+$++A&6FVfv ]A]A]A)9IYiy ]*91и1/+ + +.'+.01! 4$32"! 4$!!5>54&#"5>32NKKggo.*OC6uhSXL7h׬z@'%D%7A,C NlxN D+B5+B+A&6FVfv ]A]A]A)9IYiy ]A55]A5)595I5Y5i5y5555555 ]5B9,5B9,/A,,]A,),9,I,Y,i,y,,,,,,, ]ܺ&9;9+ + )"+)?8+?2/+2/2901! 4$32"! 4$#"&'532654&+532654&#"5>32NKKgg|rN^j@][]dXMKJ;x_^IeL7h׬z@_0 6135-.)/%|}UpxN )+!+!+A&6FVfv ]A]A]A)9IYiy ]!$и&+ + "#+"и#'01! 4$32"! 4$ 3!3#!5!5NKKgg BKL7h׬z@Y5УxN 9I+&3+&+A&6FVfv ]A]A]A)9IYiy ]-9A33]A3)393I3Y3i3y3333333 ]99+ + 0)+0+#6+#01! 4$32"! 4$!!"632#"&'532654&#"NKKggS?!Wcu;S[[S3wiL7h׬z@\$=(F>?F(xN '@+;+5%+5+A&6FVfv ]A]A]A)9IYiy ]A&6FVfv ]A]A%%]A%)%9%I%Y%i%y%%%%%%% ])%59+ + "8+"2+201! 4$32"! 4$"32654&.#">32#"&5432NKKgg6666677ai1gqn@޹GL7h׬z@u@II@@II@*g;  xN "#/$/ܸ#и/A&6FVfv ]A]A]A)9IYiy ] 9!9+ + !+01! 4$32"! 4$!!!NKKggxl1L7h׬z@xN '?K!+=+1F+1+A&6FVfv ]A]A]A)9IYiy ]A&6FVfv ]A]AFF]AF)F9FIFYFiFyFFFFFFF ]%F19%/A%%]A%)%9%I%Y%i%y%%%%%%% ](=9+=9+/4F19%7ܸ+@+ + ":+".I+.C+C(C94C901! 4$32"! 4$"32654&%.54632#"&546732654&#"NKKgg=;==e˽f$pq32033023L7h׬z@L:;;99;;:apS{{Sp |]]|-.-..--xN 4@+>)+>/8+/+A&6FVfv ]A]A]A)9IYiy ]A>&>6>F>V>f>v>>>>>>> ]A>>])>9A88]A8)898I8Y8i8y8888888 ]+ + ,;+,5&+501! 4$32"! 4$53267#"&54632#"&2654&#"NKKgg_i3frn?ݸG5885677L7h׬z@)f;!AHHBBHHAxN &2>+#+#-9+-3'+3+A&6FVfv ]A]A]A)9IYiy ]#ܸи/A99]A9)999I9Y9i9y9999999 ]9$и$/A'']A')'9'I'Y'i'y''''''' ]+ + $%+$01! 4$32"! 4$35733!4&#"3267#"&54632NKKgg|'D')*''*)'ÏL7h׬z@&*jmmnn;( ;!O;!O ;!O;!O;!O;!O;#!O#;(!O(q(!((!((!((!'(I(!]((!((3(:( ' q( #'+/3!33!33!33!33!33!3mnmnm;(%8K#!1!!!!!!!#!1!!!!!!!#!1!!!!!!!#!1!!!!!!qlllllllllmmm((((;(!%)-13#3#3!3!##!#3#3#3#3#3#3#^^(ll(lm#;( #q:( !&9 '( 9(& &  9(&  9(& &  9(& &  9( '9(&  9(& &  %! %!!!,7r+uv ))xxp) )$7632#"'327$%&#"%632#"'~~~~eMM>yJJJJJ6````qq|qq#uv@A%91990KSXY"  9%-p) 327$%&#"%632#"'MM>y````qq|qqr' '/7?G%&'&'6767&'&'7%'676727"'64'7&"'62&47\+;.81F9K58.42d;E9G,:.80G9J6&8.;+d1O9FLL&_`JnLL'`_n<1& j(0=Ju &,A=N:0('<1& j(0=Ju &1<>EB0(n_II'[[JnII'[[p) %/36%632#"'327&#"6767&'&6py AAAA,+-,,-+A@@Rqq|qq%%mܱ[0$ %@%|"p) )73276'&#"7632#"'327$%&#"%632#"'r99:9rr9:99XWXXXXWXMM>yB!!BB!!oe33eje33````qq|qqp $  $pkk]Ak^p $  $27$%&#pkk]<MAk^a``p $  $"3pkk]<MAk^``p $  $327$pkk]\MMAk^>``p $  $%&#"pkk]Ak^>``p $  $"327$!pkk]<MMgAk^```p $  $"!pkk]<Ak^`p})6%63"'pRqq)#2y|q*q(32>54&'."!623IJf654253ED3366fJI426532&< ( $%632#"'327$%&#"!IMM>y_O````|qqqqH( ( !#%&#")%632OyyMMqq>~``  3327$3!#"'$@1>qq``) %63"æqv`) 2#%&#u)q>` 527$3Muyv`>q "'$33yuMq`!)%632#%&#"uqq>``!03327$3#"'$uMMuyy``>qq!% !% !%! !%!$'`)32>54&'."467>2#"&'&o+()h:;iR+**(iuh*)r5352456fJI325wh))++Rh<:g*(+*)(픂235624IJf6633%!%!!d r<%!%!!We r<%!%!W7 r<%!%!W7 r<% !%!!!!+c,b r<<!% 4632"&! W>>VV}V2 j>VV>>VVJ !%! c  !%! b  p(  7& $  %;<*X֖% !!!!!!,7,rWb<)) Ie% !!!!%!!,crWbM)MM^??@7`d?\gOOOOy>*<?v^h"3263#!5276;'4?'4?26u'6"gP39.4! '*C0.xV#m14He '1l1 Z+dd?33 #&'&+"'&#"/573;2?"#'57#&'#"#5676!5:+#9,p!j[%+ > 7VCCc":8}V .e3B=Se` e9*=9 3@=}k !=Z4^ 5_gow!M73&'37&'67&'67&'67'32654'&'7654&#"3672 $54767&'&47'&327632#"/#"57#"54?'&5432'&27632#"/#"57#"54?'&5432'&327632#"/#"57#"54?'&5432'&27632#"/#"57#"54?'&5432'&327632#"/#"57#"54?'&5432'&27632#"/"57#"54?'&5432'4327632#"/#"57#"54?'&5432'&27632#"/#"57#"54?'&5432'&27632#"/#"57#"54?'&5432'&27632#"/#"57#"4?'&54327'4327632#"/#"57#"54?'&54327'&27632#"/"57#"54?'&5432&'67&'67&'67'&327632#"/#"57#"54?'&5432'&27632#"/"57#"54?'&5432'&27632#"/"57#"54?'&5432'&27632#"/"57#"54?'&5432'&327632#"/#"57#"54?'&5432O~ )*+')+(@&'$||e?/A}]\B-71SLoWj\vLL)(0/ (( .1(%%,* # $ )*f$% +) $ #*+f%%,* $ $ )*  \o  [ %)#&'%&)#`#$ *) $ #+,U  Q  0 E%% +) $ $*+*EC*Z*,)-)-*,%&%&fБfU 5HhfeefhH2pu^QFs棥sKQGh!99!  !77!  4 4 22 K44 22 22  11                   7        %&%&%'%&%'%&22  //  g               44 22  !2CTev+&'&54?6?6/&2#"/54762#"/54762#"/54762#"/54762#"/54762#"/54762#"/547672#"/54762#"/54762#"/5476%2#"/5476%2#"/5476%2#"/5476DQ=2`{4&/<) g>i#@3e E $   $   #  #  #  $   #  $   $  U $   # " $   #  aG<s-8PZy9} KW2{0R^j ,: . 4 . = ,  ,   -  -  -  -   .  .   ,   -   !! WV9`8 !! 7 ! !WVDu9`8N I 7%7&54769 }V&7A 6$ 8'^4? !2 7%7&547!&'6I@Y%14HFS"="l-2DC[9 &! 4$32 4$ #"&54>2JJhhq0^mNMn2Z^Z2K7iwBNmmN1Z00Z} C"32654%"32654&%#"&54767654$ #"&767&54! ggJIhIhhIJgg[ZQoy y}WZ[zADgJIggIJggJIhhIJgU\\Q srW\\^} A4&#"26%4&#"326! 547&'&632 $54'&'&632hIJgggMgJIhhIJg#@@z[ZW}yOOyoQZ[sIhhIJggJJggJIgg ][[Xrq Q\\} "32654&7#"32ɏǾ/`T_ȐɎ;P12Y}1"264&"3264#"54327&5432#"'&'3xyx& کZTdIU  k)5AMYdp{3'%&76'!'4%$53!76=332654&#"#"&54632'#"&54632#"&54632&'&676&'&676'.7>'.76$6&'&%6&'&6>'.>'. [&riX(tRSu(Yiq'LW쥨驧r^]]^ !! !! .- . *)X,),*))+. .- . OyyO vKK9__9KKݧꧦ]]_""""s!!""W&. - . - a),**)))) / . - . p%-5AMYdp|5#!4'&'5#2#"&546"264"264"2647>'.7>'.676&'&>&'&7>'.%7>'.676&'&676&'&53!76=3%'676%27'%&76'77&'$%'#7%6'&718楣. . . .  - -Y - -))G))))U*)>- - ~- - VFwDcD C0B DcDwETc==F\J $06# J\F==cS@@1AeA1@@H磤椣筁 . . . .E - -- ,1))),(9)())u- , - - G77W6 W77Gl^ ee ^l(q,&$pp$&,q(u !!'!Pn8hv "!!'!##+572367676MoL)>u eI3?ba8hA:F;/Itxv !!'!  ##' Mo_h[ei[i8hi[ef[l[@36273 ##'5) U.WW1@ US Vdv#,5>~3+&=43+&=4%3+&=43+&=43+&=43+&=43+&=4%33 #&'&+"'&#"/573;2?"#'57#&'#"#5676!5\:V\9\:\:]:&]9[\::+#9,p!j[%+ > 7VCCc":8 #8d#7$6$8;$7i$7 #9pPL  )Z. ;6ZV Z3%Y63 .87p  />Eqw!674#!!6?676'&#'323276767654#3#&'&'&6%67!672!&=75$/563&43!32+'!67#>54&53# ? I :W0 96;E,Q 2:&l6x0 bm! ras"\>%Ef~e2U6g!6V#p5C+ C ? P9 B;Q4XmM;YV /M(=H: ,qLUD)8Wqke-Pm{NW =$ U  /0c)H?2@[nDF8T$.L !' !T4XKGwL5_K !'7W4Z~wDB&547632632%6#"'&'# #"'&'&6&'&547676xJX%&XWX:\8 [Ez##FM !9@!#jL)_(Mi#"?8" MF##y4hok@mmr*%te2' BB90tU%) "ft(f" )%Ut09CB '29>3#"'43727$'#"$4727%6725676&5&oJ7.b;7!"&546767!7!"&54>3!6763!26P+=6/2D>R+>2,+v*>>+2  ,2 =,2  =,3>,2463!2!2#!!#!32#3#!>*v+,1>+R=D206=+P#,>3,=  2,= 2,  2+>{!C%4&#!"!&3!!"3!#";#"3&'6737#&'6737!"'67!7!&'63!67!2I0!6SS SS: SS>SS]]J]]]]h\\, Bv*>K%39KILKIOKHLKIhghghghgE?-L!D72654'6#"'4#"'54#"'54#"'675674767#%$4:JILLHOKHLKIhghgighgD>-sJ1 b6'SS cRR SS?SS\\K\\;\\]]!A*>K{!C%254+'3254+'!254#!'!254!&#!"463!!2!!#!3#3SS?SS *vA!,]]j\\\\K\\IKLHKOIKLIK93%N-?EghghghgiL!C32=732=7325732'654&#'%2&'&5&'5&'IKLHKOHLLIJ:4$N->DghgighghSS=SS SSb SS'6a!0J)K>*B \\]]:]]J]]}O!%)-15 3656;2#'7+"/#"'+"5&54775%"'5476;25'7&56%635&56;374765'75'76=4'&+ '"'4!#"'&3$365&5&#%#754'&5&&547'5367&7+&'&'735&2?"5%75537'7'3533553535'32767&5%2?&#%55'5757757751:e,$?F?Y>F_LA3ELH3,8LYLlEF'!0< k#gF  EeY!! Gp&iq9 :^N$%`BCf F4"4._?ee3&{E(1-+!$Kt8 -   $Gs sM rEF"2 >_plTErf^5.>=9|5"-l)d ,&>vv]cccWpC-+ d8 Bpp>W]oaxvuPp82,D ^8, ^B$K+ "1R[+e*;GW QU I&? gpo% w ^SA$ 2 9i-5n02D|&IY^Pw^%\??\OWC ,,1 /211/=;7777=321811{908hN%b\Dh,)h?17I21!122223 21&2%2#"'&=477654'#"'5473Bq4|l anN ilm b 9 b؍MOb>YaYƮ58l7P P@ $0<FX + &=6&# 3 6=%&#"';27!5%67%!&'&'2+"'&=476r cR~UY082.ԍ_W_V"+}IR8D).P9H'S]ٱZYHYoX(I_ ;.2lOP%.G6R%&I8d 8Pi>'67&&&'6.7#"'&'#"'$76'773.#'6'5676&&5476'&'%&&8DN$$ UE>!]J([Fhy *m.2\=w\`|:S?ED:@@]?]1fix pFFTD'yr,48eL @v(Nr%&&&+F 7!N &".\S$XE/KC\a*0/'rSCٟ C (RKpF|bphc'R"J$d1F[q7&&'7'6&'$#&7'&#"'5&767#&''5$'67'6'6'5$'67'656$'67&'6'&'''5$7676'&&'$'63&7"7&'7&'7&'7&'6'6%676767&77&77&''5& '6%35&'.54>23#67!&W= y /_I[l*O F_VhB" "@.,<9tJ4Vt1P QJqMi vhpHI!:JJJ B7m\J_/ ?o v!"t,`s&*_~P1>5='g=@24<1 -s[,*&sd1PT>5J@=)j<42JCYT_Y)*)X^TY{ #m7 "J}>  "H1 $ &b5 4CUE '(!`9 !,(MTE + }r}A" 7,)f[4f AD <@0&9c?"V+GoMK~aG g9s &0@k"?c*GEKX Gjt9hN&\6 '''' 6\%N$&'6&'67327&#!65#&3yyys~w ccޱqZre[c7 7 c ,35'533#3!'#'5!5!5#53!5!5#!!-ʷ}} ckvG G @<<3ffX苜qXGccGJ 326&#!2+73 ### 3(ttvgnؐB(33#!!#'!'57!5#'5735׫$"q~q+!#!573#'5!3!'573!#'73!#'5;jjŠJss<wѡIjj8/w{,32#' 3%+ &5%6323'#57'53^VQ6>ѨABؒ6ʞG2k >Y3~||~Obs32732753"'#"'4323$4'5;+"'#"'53275'&'&5?5572%#&'&5%634%476=%@.!%,BE,#!-Q2" $nL/PuHED832#"&546324&"26%! !  Őb{=&*<<*(;E;R::R;KJ67Ϛ{ɬ)::)*<<**<<*):<'L67I&' &' &' &' &' &' &' &'  <BHNTZ`fl3264'&#"&7367'67675673#''5&'&'7&'677&'67'%%&'&'%6767%&'0/CB^0/AC/88pkTcR|NOOfUip88pqUfONNQaQh!$ b)dLQk KRt!% c'd&//^000NN|P_Pfp88poQ`QyNNP\ Qgp88pmQ \Py,  M N>&`7" bK*V&"g{ M M '/! !  54 &#%#7&'67&'6767KJ]_VNEWMCe2ntjnti7IL6a] ]pu otpu ot '/! !  54 3$3&'67&'6767KJ]_TNEAgntjnti7IL6a] Uypu otpu ot %! ! #$''&'6%&'667KJOR`7IL0c Z    "*2:AIX3#''%#&'52#"'&5476!!'5%!!'53'5%3'5%3#'32765'&#"sNN99=>-1\ H0e%FKSwZGr=;=NN$E| 1 ?'_>?@7`d@\hPPPPy?+<>w_VG{?,rCA+ +"'5$76%&'547327676=&#~jt1/Q}](+VRxbO P >nS]] =fP+! &56;2'5$%75#"3ui1.P~N](7P,VSZycOpO >S\^ f0:1>7#'#53'&'&54767&'&=33676=3#326'&i($lm$(($[Uu&tU[$&uU[[UV$|ddb e|$% ZSSZ %_TYYT* $4&#"326&5432!!##53&w衤礡PP䤣L~||* $32654&#"%#"54767!5!33#b衤礡7䤣L~|| $&$76+"'&5'476!7!ttsstEus pid5s qttrtt<֤ꧦg\ulS5264&#"#43233#!5 z{ym㗗y{(|j#53533#632#4654&#"#*jjoon}mZyH{zF2 1"32654'#"&4767!!53#5!!3!!#3!!pOO87O:=0LmkL/>Λ2  1O79NN970LؙL1KӘJJ-'<%#5#535&'&'5'73'3#'73'676=35'73'33◰zhNgeMjzzTThOʍ7NjYYӖy?! #!!!'!27674'&#.d ;6zFH%QM_\ǃ$P<] !#"#&5463 67!2#6#"V⩁9k]ts]k8X1((1Eu." 6&'67>3"#"54767&'&#52&͕LVa{.+ؔ)0zHUM\&ϖ=Bll)'ҕ*l8lB=j&'5 %$ 56?6'[W4ZZ//[[5 @Eo$8"3264,'5'&54632264&" &$#"&547>B_^^- ͓hI^9l ͓hI (+|T!%lgMLx)+{T!&lϔgMM  <>'.463227#"&5454&#"&'&5476766&IAKK@ߴGdAoc.%&3tu/3u]o:JKAKLݰ |XHwyo†<>bQs-.cx68<32>32#&'567''#&&#4'3>$4&"?w(K>R0D32>32gYYYD,1:?$)v$E?w(K>Ro}vvxJv<aAktAO]ƀwϧ!5!3##'!5!~2k<@i8080k<j'/27632#"'#576&#"4'5267>327&'"SkQmyz,~zi2@:$(.-)zW] ݾgvxaX[&ŝ9{ A3276327632"'&#"'&#'327627632#"'&#"'&#'Es- 1V865+)|m^aVp5W7805Dt,1Wn6+)}m^aW784V8705(GG$3LKGHb 'HH#2MLGHaA!5!37!!' 3(ͦ '3_76`S@ʬARc $Td67&'&"!3!67>54.#"!&'.54>325467675#53533#63232>54.#"P#3JTRJWVJQSOMJ4"?*&ElnhPL$ llill %LOhnlD')----+)QPQ((QPQ)+/ 6klj$?6FWWF6?$jlk6 }++--JHNRh|&'4>32"'4>32&'4>32&54>32&54>32#!5!'!567>54.#"32767>4.#"327732>4.#"327>54.#"732>54.#"M_ 6694S55.+C55C&.66 V\+55 c$M##$ 6$#$s`%#$d0"%)h #"#_33@]22-"40446/*33UJ"+33^1/K=0T* ####  #&$$&##&$$&#  B #### *"$$" U!'-2!35!#3!53573#'5#5!35!75!!5'57!s\\ss]]s JRRIJ~֛E77__vtt4!v7CQ^&54767&'&'5676767&'&54>32! 535#5##3654."!2>4.#"  <$))+N-N*)N-M,**%:  @ v<-MTM-?K5:66459<5&?HPPIK* ')+K**K+)' *KIPPH>&5<:6uN|l||l|-I+N))N+@6:55:5Q*3V6&7!&54''&''67.76;+"'5#"=6&'76767%25#6&' 3Z(-6  Z8. ,Z0H &h6%`+EH )#M+=;,Zga#iR6U k''M.+`xo8:.@s.P mz "x?.#1p#41`&jD"acLHJ ~447| JlL"0 P[32>4.#"32>54.#"!5&54767&'&546767&'&4>32'&'.#":e79e89f76e`[S &(*UM,N)(N-KV)&& \@ECApd88dpg669:%N&KRS* 'TM**MT' *SRK&N۠:9}qyyq}c $Tdhy67&'&"!3!67>54.#"!&'.54>325467675#53533#63232>54.#"!57!&'.54>3234'67632!P#3JTRJWVJQSOMJ4"?*&ElnhPL$ llill %LOhnlD')----s=BDw@>=))==AwDB=+)QPQ((QPQ)+/ 6klj$?6FWWF6?$jlk6 }++-- !yCB{C!$$!C{BCy! JHLP&'4>32"'4>32&'4>32&54>32&54>32#!5!5!M_ 6694S55.+C55C&.66 V\+55 c$))_33@]22-"40446/*33UJ"+33^1/NNOOU%)5!5!!35!#3!53573#'5#5!35!s\\ss]]s ^^/oo#E77v4@4767&'&'5676767&'&54>32!&535#5##3  <$))+N-N*)N-M,**%:  @%v<5&?HPPIK* ')+K**K+)' *KIPPH>&5<:6n5|l||l|L".7=6&73#!&54'''7&''676&7;2547#";65'"3=QUU+-6 E|]k0krd0c G&h8E+`%s H>4wM-',Qo8:$whPSmh**z1"0@)5"@YR0.&54767&'&546767&'&4>32; &(*UM,N)(N-KV)&& 9:%N&KRS* 'TM**MT' *SRK&N۠:9C##"'##56'##"/547?^'5@_*SU&/UL ;Yԧ9UP(` XI.s222732#&547636=4'&# #4'&#"*t pz&=<xQ>hG:V Hek%PF5NP B|-&pA&NFX &&5 <F:^;" V gdG7236;2"##'65##"'&5476;235&'&=476e x<JT`(GeRUdfB3 VNTMT,P$ 66$0_ u3dUdt_}s*$"Rt0XX__/ik=ZG8*F 1 . ъf)MC =g9EkO 9!(-);&  ]t!y" & 2| ba$ U+  2E35733!&54?'7'7!!"'&%#'73676'77'7'&'676ի,&T>=c$(wK9.U:Cʈ%`T??5̈'8/a\MOHK$k$823!a IF 7=c`O]BA6$k#- kNA! 1DW!!5>7>54&#"5>32&54?'7'7!!"'&%#'73676'77'7'&'676]T@1$J=c$(wK9.U:Cʈ%`T??5̈'8/]U1)8(3&ncQ&D- mMOHK$k$823!a IF 7=c`O]BA6$k#- kNA! (=Pc#"&'532654&+532654&#"5>32&54?'7'7!!"'&%#'73676'77'7'&'676Z _3lFHe5^\VOosHGJI)`VKm1Sj,&T>=c$(wK9.U:Cʈ%`T??5̈'8/S<\el23-2['&')b YK4JMOHK$k$823!a IF 7=c`O]BA6$k#- kNA!  "5H333##5!5&54?'7'7!!"'&%#'73676'77'7'&'676yy,&T>=c$(wK9.U:Cʈ%`T??5̈'8/Rv_`MOHK$k$823!a IF 7=c`O]BA6$k#- kNA! 2EX!!632#"&'532654&#"&54?'7'7!!"'&%#'73676'77'7'&'67612hFL]5R]]R'PF ,&T>=c$(wK9.U:Cʈ%`T??5̈'8/_ptcdrr@89@ SMOHK$k$823!a IF 7=c`O]BA6$k#- kNA!  "7J]"3264&.#"632#"&54632&54?'7'7!!"'&%#'73676'77'7'&'6767DD7:BB=F"W\]8uu&M,&T>=c$(wK9.U:Cʈ%`T??5̈'8/Av@@vAf`5(sa_t MOHK$k$823!a IF 7=c`O]BA6$k#- kNA! .A!#!&54?'7'7!!"'&%#'73676'77'7'&'676&,&T>=c$(wK9.U:Cʈ%`T??5̈'8/2{MOHK$k$823!a IF 7=c`O]BA6$k#- kNA! ':7&54?'7'7!!"'&%#'73676'77'7'&'676,&T>=c$(wK9.U:Cʈ%`T??5̈'8/MOHK$k$823!a IF 7=c`O]BA6$k#- kNA!'9HR!273!567&#2$'76+&67'#'6765'533!273+#'!"/47*:!Jca# fi*11Za(}ypPd!^t/TT}75 b\V/V'f::p ?)\ ) 9s s%00%2<J\e3 + &=%62!67#&'&#36&#&#"3274/"34?3'35732?5##!'53aoPS<&3y: SO B2_5N vbe)PK  L$=j"AjOL5_k, ߋ~y}/M<4{1;C,[_ei' [)$ /:BR`j # &5%6; 65%&# !27!57&/#2#&'676+%!#'#&'47'3!27##'%!#"/6g^_b0h\{\[:5:QmMM[-w,ldN VNG+Q'XYtTpXYSmEb,#4' FV ! Y1 1_ Ug,17H27&' # &5%6367&#'.7&67263'#%; 65%&# aWg^_Wa+{|<b0h\{\&XYtTͿWzzWapXYS1.2!2!!7&!"4#".54767267   0# Uq{|}@!/(S*E.َer(Y$h?}}|r<.32#"&e|e(<X<ħñ"32#"&$2#".46e|e(<X<ħñ"@<#"4.#"e|e:<#"< !<"#;zch =B4.#"$32>4."e|e:<#"< !<"#;"< !<"#<@;zch =B54.#"##"'5##"$'&'0!5!5&'.4>32!!676767'%''H&(G()G'%H(%'V W3WImuw>DE}AB|GE=md^JW4W Vs'H''H'(H''H`XAK|@X1(ԁ3"|}DD}|" 2/ "1X@|AX1# / 673&/'67 &'"&'6?&'3 ' K[]><+Gg['fBBe&\h?(K?]\K !;32TD$ #@F,MMMv E8p_Lc1  M**+ B@0"AR/0?wA%od/D&3.YaQ/5#3$"uI' @3/u= =#n- .... y3% % 32+#".7!"&'&'#&=4;7337_8)0/_^aM`1/ 9534?GG~F6F~GG?>D9/C}"632&'.'#!#!#Ҹ62K#+~~R!Nx_TV_T 'NQ9;:;PHi?CD|))Z) 132>4.#"367#&7&$735&'.4>22[02[24Z1/[)'5*.XA323#67#&#"/&'&547&"'6%676V n*[n%'ZxL0<{2;&b;>/2:.m*nW)'$o`0LP;2F<;(e:2/"7LL75MLZ'&4)PNPUQ74(4 3(4:XUPNR ("@Dv>0&8a>!U*~EmLK}`G f7r &0>j!>a)E~CKW Gis7g:M57LL75M-Z '*''*' Y (5[J5( \d (5J [4 ''&.FR2#".54>&'767&%76'&''67&'&'&'6767654676'&7>326'##"'&'&'&54767&'&547676&'&#"6&%6767&'&'&676&5467&'&6732767&$$$$OG362ecce74GL944m/122102/.303112.OF}68ge"w?>v"rt #87! ":;@A<:" !66# sr*./13/.UVT\<>"$!! !"#">kcg86|FO 93399 <>#"#><  "$ZTU./43..V5$##$59gTVV9Z^^Z9++VTg9'(''&()I8:9889: Z_59eUV-, <8.>euvc>-7=bccb>7-?cwud?/8MWZZW **D@@D+8,-VTe95^&)(&''(DA:AD.*!Y[[Y!& )p~67&'67&'4&6%67.'4'6&&'6767&54?67&'&#&'#&'5&'"'67&'&47632>4.#"%2#".4>'7,3 3%/0),7=*'0*+3.22'Q YfT,1'').UfY Z98 "2 B2;F_ XB?2C 3" 894ihgikce"S[XVWXZ#ejpMcNTvJKr?VlLWW7p jk%n^*V{ww[11[ ww{V)\#fd-#JM 7B/""0C7 NK",df#νhhοggQUXXUd %3!'#!52#"62#".54>" h9|M463%&$$5 O Dn; $$$$33'554#$/[QwGSGUW GJGX .5CK&5432632!!#!##53&4&#"326!&&#"327&54654'XP}}P~C;7?_Xej;A>7'sssLFF~||ב-  䤣lrrr)-5DL&'&6767&'"'&'&'&5'476!7!! 76'&'&'6'&utss-5 l&kpid=pDi/tEust,2}ts5sqtt-ԛ1 k&iꧦ g\}ul  An?\27/rtts,͓}qt)8GO'"'!!##53&'&54326!7!&'&36'&&5'47&#"327674'U`P}zpidu>7;C˂;C>xtsK) ||LGD g\uls螝՞䤣hkrr .4&#"326&54762!7!!!##53&w衤礡ᩨhn&䤣羚 o[tꝇ|| /M#"'&'&'&54767676327'7'%'276767654'&'&'&"(F3"D"&%#C:bV`ZZ^;D"&&$AB[X]:3G9:]:F=~=<.,/*??z?<.+.(!$HS\[Y[VF=*%%'>HS]ZY^XAA&% iiD^29i..=+../:9CG5>+../:9 \2:a(EVUb_UVE@( %CEVU_bUTG(Hij:ο\ij+.<;BA;<./+.<;AB;<./4/O!!#"'&'&'&5476767675!5!' 276767654'&'&'&#"<-Z@E$##$EDVRbfNZ@E$##$EDV18kbbjC9:/..+>5GC9:/..+>5疑 (@EVU_bUVEC%##(@EVUb_UVEC% kajP/.<;BA;<.+/.<;AB;<.+ /O####"'&'&'&5476767632333'7 '%3276767654'&'&'&#"ܖU (@EVU_bUVEC%##(@EVUb_UVEC% Uܭkaj/.<;BA;<.+/.<;AB;<.+<-Z@E$##$EDVRbfNZ@E$##$EDV18kjC9:/..+>5GC9:/..+>54;2"'&'&'&5476767"327>7654'&'&'&RUEG"##"GEURRUEG"##"GEUC9;\.+>6FC9;\.+>6#&BIRUb_URIB&##&BIRU_bURIB&s\<;BA;<.+\<;AB;<.+42"'&'&'&5476767RUEG"##"GEURRUEG"##"GEU#&BIRUb_URIB&##&BIRU_bURIB&J;"276767654'&'&'&2"'&'&'&5476767R#$$#R#$$=>3443>==>3443>"$)($##$()$"06"@21.2@?FI?@21.5="$)($##$()$""$)($&#$()$'R 5%%%xr6׊eMM^xxV)7654'&'575#!&54767'5!s_vR$N::N$Rv_{aT,X@X,Ta{4b\)1%==%1)\b4ߴ:`\KDDK\`* 4&#"326&'&5432#w衤礡$PP䤣L~{Y,326& '6 !!#!5!(+~uP.Gjt ~||, # !!#!5!L>>0oJ;||,'!5!737!!!!##53z{{{z{|zhz|{||WxT% ! !5! #3 35!'T??LLwLLJ|A|JZt|J|,$264&"&7673% %&uuu>hH]%VgVYFhݦuuv#gGέҔEgEY$&'&5%6;2#"'!!##53uN)$#<^tfFp!E&J <ԩ;  ||lZy'#"'&#"'&'&'&547676763232767676'&'&'&/&'&'&547676762!2!%3276767654'&'&'&#"&#"3276767654'&'&s* $+$$$ #*#%>aZ% NT>%  #HH  ")mROeb     0         $&$  ' D"&%  $ #  mR )Ky           V!Er26767654'&'."#"'%"'&'&'&54767676;27>764'.'&+"'&'&'&547676762%632$"26767654'&'&.&&.&m,mQjP (!N!"(!'CVf& &bZC'!("!N!( PjoQm,.&&.&q    l?W,># "#" "  " "#" #>,W?~    lOYx3!#!"'&'&'&547676?6767676'&'&'&#"#"'&'&'&547>763276;%326767654'&'&'&#"6767654'&'&'&#"32eOuRd2  HH#   %>TN  +Za>%#+$ 4$$$+$ 's   *    * OK) Rd# !#& "*"D '  ""! 2   T   :      IZx-4H67&'&'&+"'&'&'&476767632%632 #"'%#"'&'&'&54767676;276276767654'&'&'&"276767654'&'&'&""'&'&'&547676762"'&'&'&547676762'&'&'&547654'&'&'&";276-&#"+"276767654'&5476%327%&"'&'&476762I  Q\C--%("(/*0.,+"( /X]\9<\X/"$)0*3')"* %1*0CR[        22 2 2 2 %'   &J  &%C\d#_*]OhXC%&  J&   O]*       ")&`&"'$"/' <%ZS  % SZ%< /'* "%5"-($# ;8\= !  !  " /VC "  !  !  [uV/+    V^n3276767654'&'&'&#"&'&5476767632#"'.54767&54732#"#"676767'&#"'67654 ozwbd011.f_zx|wbd011,k9995ulsp:995un*D$lQ$" 6*D?"5'K(2- #%>   :7 331cdvwwqi`4331cdvwxD>mwn<;;8rowp:;;BV0/+"8:D@*|sa  -F(7 "*=8&0!2   1-5$& 6:B4V^,Ji&'&'%&'&"632%676767654$2"'&'&'&5476767"3276767654'&'&'&'2#"'&'&'&54767676?!*$ 1$-+h+-$F3782* !?1 $> > 9|wbd0111c`zwbd011.f_zxsp:995unsp:995ulwIP"2-.$  "" PI $.-2!v   31cdvwzwcaf31cdvwwqi`43d;8rowp:;;8rown<;x,A-57'36%33#3#!2#!3#3##$'#7$@d5{sVd]F0 0F]dVs{5⒒d@( jPP,PP` 0 ")- !676762!"'&'&'&54!X$#R#+/RFF$#R#$1Sh,  k-"s!|K476?6763&'&'&547632676767654'&7632!54'&'&76'&&#"'&/&'&'&#"#"'&'&/&'&#"&'&'&?6'&'#"'&'&#"!'476/654'&76'327654'&'&327654'&/%4&)"$0JK&  $)7    %1'# #6 +-L __^/s4* 1( .266 |/(1   \   #:7  lS&   x71]% /~[#<$  o_%?,: *(;Y)$X$+|=L!6CX&PY89Do6 b'n2  83eF] 4T&  &  /50$?- 1@& 3l K  C"P1 :07@D:5XI6.D3[+-1:   q/A8   g+jl9Lp{7654'"'&#"+"'&54?67676763276323273#5%6767'&#"6"/67#"27632327654'73654'676547&p/l0&J!cS%YE]{@C"$4>-;% ,(6Y>m!N$X6"/,(4sS?X$U>"sJ?K(`./4+2K2.0>S Zp0+1^' ;cs  /^"|Y/ 428ۇϕl%%ot5oA='Y$ aT* ''G+- %_kj~r}jL`І|\gK@/.85c($")3SZ67654/##3276?%%54'654'36767632#"'&54767632'%;66I   }g A6qn       -> 9@  H67; zh| 9 >6!q     B5> '-EL4'&'&/767675'7! !'!654'!4'!!$4767>2"&'&'!654' 33 ^^^RXI#J2VlP# ~!88!~ Uppph,p<((zd")3SZ&'&#"227654'&'''%'654.#"65&'&'&547632#"'&'&6#"%  I66;o |>A%6!q       9  ;76H    |h> 96qm      BX{[#C'%%.'&"27>7%$6%"'&'&'&47676762%'2&%k      Aڙ> >dIID`qS   SqGYq > q)&%$64'%%&'&'&"27676&22"k**!q``q!3W 2327632#"'&'&5476'( > !~GH ".4F+@xH )0$'*' 27277632#"'&'&5476'( e` }{*279HFb@yJL 1 -A  ' 7 Ɏ877Ɏ77ɍ8ɍ? tt7tt7t7tt7uB2632#"'&'#"'&54767'&54763267632676 Q   x L$3 z(   6X3  6*=P*> "#  Q26#"'#"'&'#'&'#"'&547&'&54767&&5476326763276T 디% $$YyX$ zc0 + j :  (̢1#: _& #- Խ =1 '2ĺ pD #!!!!!%!!!!!!!!#!5!36HVBBXBBUHVPBXyBpD !!!!!!""p"p"#pD35#7!!#!5!3rrsrspD!!%!!!!!!r"p"#p"#Rb !!#!5!3ppEU l3!!'#'!!#!!3!5@,r,,_ r,,_>v #!!!!!'!!!!!!!!#!5!3hm_|P_H_pDQ#"#3;54'&'&'!"3276767653#4'&'&'&+3!52767>5{dZYIB,$22$*DE]Vh{%'GC_Rl|lR_CIJ{hV]ED*$22$,BF\Zd{%'GC_RllR_CIJ&%IB`Oo|oO\FG'$zdZ\GB+%22%+BIdz$'GF\OooO`BH&&{dZ\GB+%22%+BId  #!! !!! 373#'7#ZAA:Llحmllmzlmllm|}}|d d}cT`C54'&54762327632#"'&+"'&5476=#"#"'&476323(L,68x86,L zFvd0000dvFz L,68x86,L zFvd0000dvFz zFvd0000dvFz L,68x86,L yFvd0110dvFy L,68x86,LV^&'##"&'&'&4767>32367675&'&'.5467676236767>32#"&'&'&'#"'&'.546767675&   R.-R  R-.R "  *!""! ((\(( !""!#%   " R.-R  R-.R    %#!""! ((\(( !""!**!""! ((\(( !""!#%    R.-R  R-.R "   %#!""! ((\(( !""!*  " R.-R  R-.R   Sa4'&'&'&'.54767676322767676767632#"'&'&'&'&'&#"'&'&'&5476767676765"#"'&'&'&5476767632($ ((& :.:806$&& )D+:!  '228:/3&$$&3/:822'  )2/@!  '&$6/r/6$&'  '?03'  &d8:02&!$&20:=-2& (20C,7"  &d8:02& $&20:=-2& (10?!  '&$6/r/6$&'  'D+:!  '228:/3&$$&3/:822'  )2/@' ((& :.:806$&& (T`0267632#"'&'&'!&'&'&54676763267632#"'&'#"'&'&'&5476767!6767632#"'&'"'&'&'&54767#"'&'&'&5476767632!#"'&'&'&54767#"'&'&'&476767632&'&5476767632!#"'.'&5476767632&'&54767676Z   ( &            <   4          % (      (   2     6           %    <    %  (   W_276767653"4'&'&'&Wsp:995ullu599:ps;8rown<;;j>-'O^__^Oq44H4"hdd0!% %!-@jjjk**37'7 #'xxxx.xx.x..x  pD #'!5!73!GFdFGrEGdGErFGqFGdGFqGEd@L     - FOFc,OO,cFd,PO,dGOP T` '!%%%!%% % -wD{wwf#w%f{wwy||y{xxf#w%f{wwxEy||y % %  Zp/AppA/}}ET`     - Zq NqqN  NrqN qrT`% % -ZyllylyyT`%% %% -ZtGcVGttGVcGGstGWcGtsGcpD/3%!!%#'''%!5!%777xo:U.cF.d;UǩoxoU:e.Ec.U9oE.f:UūoxoU9g.Ff.U:oxo9U. 54'&5476276767632#"#"#"323232#"'&'&/"'&5476=&'&'#"'&'&547676323232?&547'&#"#"#"'&'&54767632676'K,68x86,L qA'C<4GW>L d  f L>WG4L d  d L>WG4L d  f L>WG4L d  d L>WG4 +F$H$F+ > ;<5 AcJ2QD++DQ2J (5H,'9,J&0f) T|\`j4OO7g`\|T 'g/& H,9',I4( (3J,&9-H &0f) T|\`j4OO4j`\|T 'g/&J,9',H5(""'!$(:UJJU:($!'""nF"276767654'&'&'767632#"'#"'&'&'&'#"'&'&'&5476767#"'&'&'&5476767632&'&5476767632=>3443>==>3443>x>%85670-)-%8/>0!-)-02;>/8%0 )-02;>/8%-'&$>/:#-)-02;>/;))-02;>/8%- 06:4/.&"./4;=16'+&1,"%&!6'+&./4:>1:#"$./4:>16'+,4:>16'+&./4;=1nFn%#"'&'&'&5476767#"'&'&'&5476767632&'&54767676267632#"'#"'&'&'&27654'&'&'&"67&'&'&'276767&54767'&'&#"276767654'&/7676767654'&'&'&#"Z 0%8/>;20-)-!0>/8%-)0-<1:3%>-%8/|/8%->%85670-)-%8/>0!-)-02;>/8%0 M=  H  C# B/g  H *x#$   -7 H  g/B    $#x*%",1&+'61=;4/."&./4:>16'.5 1=;4/.&&./4;=1 5+'61>:4/.&"./4;=16'+&1,"8_/$   $/_c.,b" $#  !I?30C !'#  x!  #$ "b,.$  #'! C03?I T`-[3b &'#"'&'&'&547676763267'&#"327%327676764'&'.#"7632#"'&'&54767676324676762676322##"'&'"'&'.5#"'&'&'&54767"'&'&'&54767676&'&'&'&'&'67676?&'32767677676765&'&'.#"7676767&'&'&/326767674'&'&'67'&'&'&#"67'&'&'&'67676767"276767654'&'&'"'&'&'&54?&'276767654'7654'&'&'&"67'&547676762:   $4 $$ 4$   % !()-+,)$"! ((\(( !"&',+-)(!'7'&"# ,*2% !()-.))$"! ((\(( !"(%*-,*(! #2*&"# "&'     !  4  !   4  g       i 4  !g  4   !     oR#$$#R#$$  8 < c7 < 7    8 < d8 < 6   %),++*) !$3R  R3&!-(-%2(&"#%(.2$( &',+,)) !$3R  R3'! )),,+)$"#%(.2$( "   i !xg   !      %     !  !   g    "$)($##$()$"$  % %% %  V^<\l"276767654'&'&/2#"'&'&'&47676762#"'&'&'&54767676% %-z35++++53z35++++5pWDM69 ;9JHSWDM69 ;9JHSsp:995unsp:995ul}}(.35<;53.((.35;<53.("68MITNLJ;9"68MILJ;9m;8rowp:;;8rown<;}}"327632#"'&'&/#"'&5476=#"'&'&5476763232?'&#"#"'&'&5476763254'&5476276767632#"'&#"27654'&%&'&#"327676%327632 654'&'&#"#"Z*1%85e %ZF\ +m8BS/?JV@6RTXN6@VGB1QB8n* \FZ% e53e!&ZFZ *n8BS/?JV@6RR6@VGB1QB8m+ \FZ&!e3*1%8~> +F$$> +F$H ;<5 A~ ;<5 A+DQ2J (5H,'9,J&0f) T|\`j4OO7g`\|T 'g/& H,9',I4( (3J,&9-H &0f) T|\`j4OO4j`\|T 'g/&J,9',H5(G+DQ2J$(:U$(:U3!'""!'""A''7'753'75377537'7'#5''#5'7#5'7'7<B-OS2#"327676765!"'&54$3!57!##"'&'&'&54767676#   ?>I-7އv3T%+>CPNHiDG-2/&D9  . !-8=DD_o2{jTc@F'%.36<@M137+4V52&'&547676762"'&'&'&5476767Zy*,&&%1]~|45,--,54|45,--,5(+&014|d΃fz410&$(F*.46=<64.**.46<=64.*Nf%C&%&547676762476767622"'&'&'&5476767Z{&%1-l./&%%&/.l-1%&|45,--,54|45,--,5ġS410&$%%1/66/1%%$&014R*.46=<64.**.46<=64.*nF(%%&%&54767676247676762Z_75EAAD6556DAAE57_qKFD6454FCNNCF4546DFKoX'#"'&'&'&547676763"'&'&'&5476767632rJFD6464FBNNBF4646DFJp`84F@NLBD6466D@NLBD66^~* i654'&#"632327632!"'&5!267&'&#"#"'&54763247632327654'&547632#" 6+Jo.^V|;-˙it36?̺fQMeEJS?(*$ s]vh2K)*NL13^v:Mc*ZeC03N35%&-Kt\K%9S >BWN=!$?$8(F!5{^?ZN676 547&'&327#"'#536767&'&'&5432&5476323254'&5432?-BO>Bv06('K`dC+(k$'eM?$#=Hb B=)+8=.m9eb PB>$3g:=TEB7WPfG+1KHP<Ff#&T'0P+A'<}DC/'"05276767654'&'4rceNS((((`hm@DDF/CD}>C/GFCG !&547>2;0!!676PJKBA<! !$ ! "#{! !{54&#">32!5!NKKggɈXԺShu6CO*.qL7hlN C,A7%D%xN 6Ÿ7/8/ܸ7и/9*ܸ1A11]A1)191I1Y1i1y1111111 ]49.+. + !'+!+9*'!901! 4$32%4&#">32+32#"&'32654&'>NKKggI^_x;JKMXd][]@j^NreL7hA}|%/).-5316 0_pxN S//ܸи/99ܸ+ + 01! 4$32#!!535#!NKKggK"L7hߣ5xN *+!+A!!]A!)!9!I!Y!i!y!!!!!!! ]+ *+ +'$+'901! 4$32>32#"&'32654&#"5!5!NKKggiw3S[[S;ucW׿!=VL7h(F?>F(=$\xN 21++#+A]A)9IYiy ]A&6FVfv ]A]A##]A#)#9#I#Y#i#y####### ])9/9 +  + +01! 4$32#"&54632"32654&#">325.NKKgg766666676̹Ȣ@nqg1iaQL7hI@@II@@= ;g*xN + + 01! 4$32%!!5!NKKgg.L7h*xN 1=++ +A]A)9IYiy ]A&6FVfv ]A]A ]A ) 9 I Y i y ]#9/9;9;/A;;]A;);9;I;Y;i;y;;;;;;; ]5+ )+ +28+201! 4$32#"&5463232654&'>54&#"2#"&546NKKgg=;=>?<;=p$f˻e#q0330233L7h;99;;::G]| pS{{Sp |-..-.-.-xN &21+-'+-+A]A)9IYiy ]A&6FVfv ]A]9#9A'']A')'9'I'Y'i'y''''''' ]+ + *0+*01! 4$32254&#"3267#"&'4632#"&NKKgg͸Ȣ?nrf3i_O76588567L7h !;f)HBBHHAAxN $0+(+("+".+и/A]A)9IYiy ]A..]A.).9.I.Y.i.y....... ] /++01! 4$32!5##7#"&54632"32654&NKKggِ&*''*)'')L7h*& nmmn =(F  76767654'&'&'!5%3!!  '&'&'&5476767̆mo5885om4mo5885omP\|~}~~}>@@>}~~}> =A_  76767654'&'&'!!5676767654'&#"5>32  '&'&'&5476767̆mo5885om4mo5885om)4 \)NBCkPQT`aFnoIkl\|~}~~}>@@>}~~}> =Om  76767654'&'&'#"'&'5327654'&+5327654&#"567632  '&'&'&5476767̆mo5885om4mo5885omttBAzyLOPUDWOPJJx??zBLL\R[PGjkr=\|~}~~}>@@>}~~}> = +I  76767654'&'&'!33##!5  '&'&'&5476767̆mo5885om4mo5885omh*˪+\|~}~~}>@@>}~~}> =?]  76767654'&'&'!!67632#"&'532654&#"  '&'&'&5476767̆mo5885om4mo5885omz##$#utKSLHMVA@AC\|~}~~}>@@>}~~}> =,Jh  76767654'&'&'"327654'&.#"67632#"'&7632  '&'&'&5476767̆mo5885om4mo5885oml@@lm@??@=|}~~}>@@>}~~}> =$B  76767654'&'&'!#!  '&'&'&5476767̆mo5885om4mo5885om\N\|~}~~}>@@>}~~}> =+BNl  76767654'&'&'"27654'&%.546  &54632654&#"  '&'&'&5476767̆mo5885om4mo5885omsBBBBCBBBhtdthuABtԄ9tihvvhit0\|~=>>>kl>=EggOOss\hh\]hh@>}~~}>@@>}~~}> =<Lj  76767654'&'&'532767#"'&54632#"'&27654'&#"  '&'&'&5476767̆mo5885om4mo5885om=|m@??@ml@@@@J\|~}~~}>@@>}~~}> =+8Ca  76767654'&'&'"32654'.  735733!  '&'&'&5476767̆mo5885om4mo5885omT,+VUVV++2QPPQΠP3p\|~-,g%&݈@>}~~}>@@>}~~}> = (!5!#%  '&'&'&5476767{\|~}~~}>@@>}~~}> =#A676767654'&#"67632!5  '&'&'&5476767lkIonFa`TULkCBN)\\|~}~~}>@@>}~~}> =1O>54'&#"67632+32#"&'327654'&  '&'&'&5476767irklGPQ\\LLBz??xJJPOWDUPOLyzAB2\|~}~~}>@@>}~~}> = +! !335#$  '&'&'&5476767hno\|~}~~}>@@>}~~}> =!?67632#"'&'32654'&#"!5  '&'&'&5476767CA@AVMLHSKtu#$##\|~}~~}>@@>}~~}> =,J2#"&5476.#"32654'&#"67632  '&'&'&5476767Pm@??@ml@@C|=⇆nmϵihVGG/ TU<|=\|~}~~}>@@>}~~}> =$!35$  '&'&'&5476767>h\|~}~~}>@@>}~~}> = $0N2"'&476' 654'&'>54& 74632#"&  '&'&'&5476767YtBBBCBBBB/tBAuhtt-tihvvhit0\|~lk>>>=>=EssOOgg]hh]\hh@>}~~}>@@>}~~}> =.L%3276'&#"32767#"&'"'&547632  '&'&'&5476767!C>?=ↆmmдhiVHG. TU<|=Al@@@@lm@??@\|~}~~}>@@>}~~}> = %C2#"&5476$  '!5##7  '&'&'&5476767e22dedd22TUUTBU¡\|~-/g#&%q @>}~~}>@@>}~~}>uPj !!5!!Pp#@pppt 7%FN4NGuP85 zD<22pJJt '-ZKFGNuP!!u\lE>~~>uu2"&'&'&5476?!".'&47>3!'&'&54767>2 p4, ,$ $, ,42p "2" puP8!5! %JZPJJuP8!5! %JHJJuP8 #3#3#3!!5 xx<<oJpppJJuP8 55!#3#3#3oPxx<<΄ΊXXXXuP8!!5 %JJJPD! 6>l>>PD ! DR>l>>P  BlvvuPb3!5 5!"'&'&'&u##+*15J1*+##0+*%!JJ!%*+uP847676763!5 5!"u##+*15J1*+##0+*%!JJ!%*+0!! ^r{VXeoouP855!Dq΄Ξ0uj%5!!53  !<9h9>uj%5!!53  !<9h9>+Z !73#57!!+ Id&+ъ2&+Z 5!'53#'!!!+dI|&22 !'!'!53 !Odcndh 2 3#5!7!!! ndnd;ch dd !53#'5!'! !]n2n22r-hJdc;dJdd 7!573#5!! !2+2n2nr-hLJd;cdJ<!6767632#"'&'&'! <'CZmo~yti^Z...*^Vqo~yti^?)X6nGCZ.//+]Yonzqi_X0//+]>Iʞ BP "&*.37#37#37#37#5!!!!3'#3'#3'#3'#<<< 7&#"7'7 !%*BF8WU{FC*9oX:WubP 55!5!!'!XXddPRt '327'' !!iFB*8X:*CF9XUpt>2%&#"6767&'&"67632&'&547676767tBEHY'#&N'$X$)./,0+""" /%Hp*G&/$##*0,0.+"W!'&'&#'ZGGCuaP/4767!"!47676763"'&'&'&5!3!&'&5P%T)#$"/*11*/"X$#)%eeZ'&$(0+.!"-+0($&'Zet2&'&'&'&54767#"'&'2767&'&'32t)H% X"""+0,0-+"$'N&#/'YHEBCGGZ'!&'&'$W"+.0,0*##"/&GsPX+B6%"'&'&'&547676$47676762"'&'&'&'&'&547676762$/+z > _$#R#af#R#) >xbQu R$'68"   vc<.676767632#"'&'&'&%&'&54767&'&5476A ''+/54<3o8n23'9%%bb%&:?$ fLLf#&#/:&'+-23-+'rr'+-32-+V2e"'&'.54?654'&'&'&#!"#!".4?64/&4676763!23!276767654/&546767622 Z rrd Z   c     c  2g"'&'.54?654'&'&'&+"#!".4764'&4676763!2;276767654/&546767622pW\xj  \W    4  uP^+#76767&'&/3#6767!5!!5!&'&'PSJl R&GG&R lHSi*n: :n**OUä'66'U=;JHd)))dHJ;=n>&*'$&76#"'6767> 7>{J<p1 GM+ SR-PAdmR j:&567$'&76&#""j+MG 1p7 mdAP-KS #u ! ! j.u-1[ 3%!!!!(U2xxx[ #3!5!!5㢢xUx2x! !pp ! !p &ss&ttT` '#'#'##'RKKR@R"~KKLRVb#73373737@RKKRRLKK~"R]z?3276767654'&'&'&#"7#7676767632#"'&'9! ww "3\^wvlyZ^2103\^wvox[9! <:LHUYGK<9!>9MwWOw\^2106Y^wvow\^2104[.]z?#"'&'&'&54767676327#7&'&'&'&#"3276[xovw^\3012^Zylvw^\3" ˑww !9>IJVUHL:< !9!9 !'7$"!3!&'&'&'!#!2767676w 1cbbc1 1cbbc1 -ƑTSEF" ee "FES "FESTTSEF" ȌwGAvcbddbcvAGHBwcbddbcwBHƑ ##EFS $ SFE#$SFE####EFSd Q   2@ @@ 00 ]1@   990@   <<@ <<KSX << Y5!!d KƑ<Ƒu Q   2@ OO __ ]1@  990@   <<@ <<KSX << Y'7!5!'7 w KƑȌwƑd Qڶ 22@ PP_ _O O]1@    9220@   <<@ <<@ <<@ <<KSX <<<< Y5!'7'7!dƑwƑ<ƑwwƑd Q!!5!! x(SwSK7SSKu Q7'!5!'7'7!5 KKSwS(7KKSwwSd Q7'!!5!'7' KKKKSwS"Sw7KKKKSSSwwd Q !5!3# Ƒw[ Ƒ6u Q !'7'7!#3e[ƑwƑww\d Q!!!5!53# xKKSwSKKSSu Q!7'#3!'7'7eKKxSwS͖KK\SwwSu Q#5377777!'7'7#'''QcyAcƑwmccƑwwƛ,@r,,+r,,@'r,r,,r,,@'r,r,,+'r,r,,@'r,'r,r,@r,@'r,r,@'r,r,@'r,'r,r,@'r,r,@'r,'r,r,@'r,'r,r,@'r,'r,'r,r+r,@'r,r,+'r,r,@'r,'r,r,+'r,r,@'r,'r,r,+'r,'r,r,@'r,'r,'r,r@'rr,@'r,'rr,@'r,'rr,@'r,'r,'rr,@'r,'rr,@'r,'r,'rr,@'r,'r,'rr,@'r,'r,'r,'rrr,@'r,r,+'r,r,@'r,'r,r,'r,r,@'r,'r,r,+'r,'r,r,@'r,'r,'r,r@'rr,@'r,'rr,@'r,'rr,@'r,'r,'rr,@'r,'rr,@'r,'r,'rr,@'r,'r,'rr,@'r,'r,'r,'rr+'rr,@'r,'rr,+'r,'rr,@'r,'r,'rr,+'r,'rr,@'r,'r,'rr,+'r,'r,'rr,@'r,'r,'r,'rr@'r'rr,@'r,'r'rr,@'r,'r'rr,@'r,'r,'r'rr,@'r,'r'rr,@'r,'r,'r'rr,@'r,'r,'r'rr,@'r,'r,'r,'r'rr,pr,p,p@'r,r,p,p+'r,r,p,p@'r,'r,r,p,p'r,r,p,p@'r,'r,r,p,p+'r,'r,r,p,p@'r,'r,'r,r,p,p@'rr,p,p@'r,'rr,p,p@'r,'rr,p,p@'r,'r,'rr,p,p@'r,'rr,p,p@'r,'r,'rr,p,p@'r,'r,'rr,p,p@'r,'r,'r,'rr,p,p+'rr,p,p@'r,'rr,p,p+'r,'rr,p,p@'r,'r,'rr,p,p+'r,'rr,p,p@'r,'r,'rr,p,p+'r,'r,'rr,p,p@'r,'r,'r,'rr,p,p@'r'rr,p,p@'r,'r'rr,p,p@'r,'r'rr,p,p@'r,'r,'r'rr,p,p@'r,'r'rr,p,p@'r,'r,'r'rr,p,p@'r,'r,'r'rr,p,p@'r,'r,'r,'r'rr,p,p'rr,p,p@'r,'rr,p,p+'r,'rr,p,p@'r,'r,'rr,p,p'r,'rr,p,p@'r,'r,'rr,p,p+'r,'r,'rr,p,p@'r,'r,'r,'rr,p,p@'r'rr,p,p@'r,'r'rr,p,p@'r,'r'rr,p,p@'r,'r,'r'rr,p,p@'r,'r'rr,p,p@'r,'r,'r'rr,p,p@'r,'r,'r'rr,p,p@'r,'r,'r,'r'rr,p,p+'r'rr,p,p@'r,'r'rr,p,p+'r,'r'rr,p,p@'r,'r,'r'rr,p,p+'r,'r'rr,p,p@'r,'r,'r'rr,p,p+'r,'r,'r'rr,p,p@'r,'r,'r,'r'rr,p,p@'r'r'rr,p,p@'r,'r'r'rr,p,p@'r,'r'r'rr,p,p@'r,'r,'r'r'rr,p,p@'r,'r'r'rr,p,p@'r,'r,'r'r'rr,p,p@'r,'r,'r'r'rr,p,p@'r,'r,'r,'r'r'rr,pprp,p@'r,rp,p+'r,rp,p@'r,'r,rp,p'r,rp,p@'r,'r,rp,p+'r,'r,rp,p@'r,'r,'r,rpp@'rrp,p@'r,'rrp,p@'r,'rrp,p@'r,'r,'rrp,p@'r,'rrp,p@'r,'r,'rrp,p@'r,'r,'rrp,p@'r,'r,'r,'rrpp+'rrp,p@'r,'rrp,p+'r,'rrp,p@'r,'r,'rrp,p+'r,'rrp,p@'r,'r,'rrp,p+'r,'r,'rrp,p@'r,'r,'r,'rrpp@'r'rrp,p@'r,'r'rrp,p@'r,'r'rrp,p@'r,'r,'r'rrp,p@'r,'r'rrp,p@'r,'r,'r'rrp,p@'r,'r,'r'rrp,p@'r,'r,'r,'r'rrpp'rrp,p@'r,'rrp,p+'r,'rrp,p@'r,'r,'rrp,p'r,'rrp,p@'r,'r,'rrp,p+'r,'r,'rrp,p@'r,'r,'r,'rrpp@'r'rrp,p@'r,'r'rrp,p@'r,'r'rrp,p@'r,'r,'r'rrp,p@'r,'r'rrp,p@'r,'r,'r'rrp,p@'r,'r,'r'rrp,p@'r,'r,'r,'r'rrpp+'r'rrp,p@'r,'r'rrp,p+'r,'r'rrp,p@'r,'r,'r'rrp,p+'r,'r'rrp,p@'r,'r,'r'rrp,p+'r,'r,'r'rrp,p@'r,'r,'r,'r'rrpp@'r'r'rrp,p@'r,'r'r'rrp,p@'r,'r'r'rrp,p@'r,'r,'r'r'rrp,p@'r,'r'r'rrp,p@'r,'r,'r'r'rrp,p@'r,'r,'r'r'rrp,p@'r,'r,'r,'r'r'rrp,p'r,prp,p@'r,'r,prp,p+'r,'r,prp,p@'r,'r,'r,prp,p'r,'r,prp,p@'r,'r,'r,prp,p+'r,'r,'r,prp,p@'r,'r,'r,'r,prp,p@'r'r,prp,p@'r,'r'r,prp,p@'r,'r'r,prp,p@'r,'r,'r'r,prp,p@'r,'r'r,prp,p@'r,'r,'r'r,prp,p@'r,'r,'r'r,prp,p@'r,'r,'r,'r'r,prp,p+'r'r,prp,p@'r,'r'r,prp,p+'r,'r'r,prp,p@'r,'r,'r'r,prp,p+'r,'r'r,prp,p@'r,'r,'r'r,prp,p+'r,'r,'r'r,prp,p@'r,'r,'r,'r'r,prp,p@'r'r'r,prp,p@'r,'r'r'r,prp,p@'r,'r'r'r,prp,p@'r,'r,'r'r'r,prp,p@'r,'r'r'r,prp,p@'r,'r,'r'r'r,prp,p@'r,'r,'r'r'r,prp,p@'r,'r,'r,'r'r'r,prp,p'r'r,prp,p@'r,'r'r,prp,p+'r,'r'r,prp,p@'r,'r,'r'r,prp,p'r,'r'r,prp,p@'r,'r,'r'r,prp,p+'r,'r,'r'r,prp,p@'r,'r,'r,'r'r,prp,p@'r'r'r,prp,p@'r,'r'r'r,prp,p@'r,'r'r'r,prp,p@'r,'r,'r'r'r,prp,p@'r,'r'r'r,prp,p@'r,'r,'r'r'r,prp,p@'r,'r,'r'r'r,prp,p@'r,'r,'r,'r'r'r,prp,p+'r'r'r,prp,p@'r,'r'r'r,prp,p+'r,'r'r'r,prp,p@'r,'r,'r'r'r,prp,p+'r,'r'r'r,prp,p@'r,'r,'r'r'r,prp,p+'r,'r,'r'r'r,prp,p@'r,'r,'r,'r'r'r,prp,p@'r'r'r'r,prp,p@'r,'r'r'r'r,prp,p@'r,'r'r'r'r,prp,p@'r,'r,'r'r'r'r,prp,p@'r,'r'r'r'r,prp,p@'r,'r,'r'r'r'r,prp,p@'r,'r,'r'r'r'r,prp,p@'r,'r,'r,'r'r'r'r,prpd?Q!!!5!53#O9MG89!03\^wZMw\^2106Y^wvow\^21YGK<9! <:LHUVJI>9! 5 9:LHUow\^2 !3\^wvlyZ^2103\^wv] A4'&'&''7327676767#"'&'&'&547676767'7!98GˑM9>!9IJVUHL:< !9>l<D:8INxWXXxtsݓ.7&54&'>7!2;#"#!532654&+W o" /O /l>>l5UU5NI8:XD<stݔxXWg % 5<' 3 5j'  #3 < { 'e   ''6UU'e  '''cUU'e  '''cUU'f   'fU::U'f   'fU8U#u  u-3!3!!#!#!5    333333#######5Szzz      :O :!!" 767>54'&'&'&$  $'&'&547676zeig44hi}&eig44hlzVGFFGrGFFG.48fj~fh4666fj}fk34ūʪ:O6B" 767>54'&'&'&$  $'&'&547676!!#!5!zeig44hi}&eig44hlzVGFFGrGFFG  48fj~fh4666fj}fk34ūʪ  :O6B" 767>54'&'&'&$  $'&'&547676   ' zeig44hi}&eig44hlzVGFFGrGFFGsqrq48fj~fh4666fj}fk34ūʪqrqs/ ,& i' i' i i/c#5!67676&!!'&'7767:# mDK6I%'&'7767'&'&'&54767676767676&&'&'67k?J " mDK6>>?J " mDK6 ՜U5O9:[>?JKVXKK>? 'U5O9:[":;PG*# nb11S$ /D65'67673''&'776?&'&'&'&5367676&] ,:dh^##B<\  mDK6'%*-6H mCK6;B5>\/h[aUTE>&U5O9:[ $A<]Y]7<7*,U5O9:[/c'!!!!67676&!!'&'776 ] lDK654'.'&"67676&!!4. mDK654'.'&&767676&'&'776?&'&'&'&4767676!!A8+.N&N//44//N&N./( mDK632326#"'&'&'&#"5>32326 5j`k^Xbian ^Vgj`k ^Xbk`k^VfUPE:=MSNE;=KPE:=LTPE:>KPNC ;B#"'&'&'&#"5>32326#"'&'&'&#"5>3232655%j`k^Xbian ^Vgj`k ^Xbk`k^VdUPE:=MSNE;=KPE:=LTPE:>K %!!'7!5!7%5O’OK>uMc u̵N5!!'7!5!75%O’OK>;ju 3:3267#"'3267#"''7&#"5>327&#"5>32 5C2'Vgj`@L&zOVgj`kFF2'Xbk`?M&zOXbiajE KUPEq,KUPE:E LTPEs+MSNE8PN 3:3267#"'3267#"''7&#"5>327&#"5>3255%C2'Vgj`@L&zOVgj`kFF2'Xbk`?M&zOXbiajE KUPEq,KUPE:E LTPEs+MSNE85!5!-5 %%\ri!5!!5!%%55%\iw:&#"'&/&#"5>32326!! 5j`k^Xbian^VePE: =MSNE;=KFPN:&#"'&/&#"5>32326!!55%j`k^Xbian^VePE: =MSNE;=KF ")#"'&/&#"5>32326-5 %%j`k^Xbian^VePE: =MSNE;=Ko i ")#"'&/&#"5>32326%%55%j`k^Xbian^VgPE: =MSNE;=KoiB!!!!55% %%|3WiB!5!5 %%55%Ei,55%-5 %%vi,5%%5%%55%QTi{ 55<1 5 5<1LJ11  55%3#<1 5 53#<1LJ11m!5!!5!5`NPm5!5!-5:[ 555PPNP[55-5#;p$.#"#"&'532767676325gV^ naibX^k`jUK=;ENSM=:EPKNPp$.#"#"&'53276767632-5gV^ naibX^k`jUK=;ENSM=:EPK%,!!!!.#"#"&'532767676325gV^ naibX^k`j|UK=;ENSM=:EP[NP%,!!!!.#"#"&'53276767632-5gV^ naibX^k`j|UK=;ENSM=:EP[-@ $!!!5!676762!!&'&'&!!A%0M 6WYYV7 N0/H7'H?a93[2332[0~~K|}CMuuUSx|y 7!!!'7!%$>~~K}|CMuu|SU]a!5!5%5$-&obn%$ffuW]a!5!5%$bo&-nuf$%a %5$!!!'7!5!7!5!7-&ob,JXv2Jv2D%$ffuWXuWuWa %$!!!'7!5!7!5!7bo&-,JXv2Jv2Duf$%tuWuW;F#"'&'&'&#"5>32326#"'&'&'&#"5>32326%5$j`k^Xbian ^Vgj`s ^Xbk`k^Vg-&ob PE:=MSNE;=KPE:=LTPE:>KR%$ffuW;F#"'&'&'&#"5>32326#"'&'&'&#"5>32326%$j`k^Xbian ^Vgj`s ^Xbk`k^Vebo&- PE:=MSNE;=KPE:=LTPE:>KRuf$%y3>3267#"'3267#"''7&#"5>327&#"5>32%5$C2'Vgj`@L&zOVgj`kFF2'Xbk`?M&zOXbiaj-&obE KUPEq,KUPE:E LTPEs+MSNE8%$ffuWy3>3267#"'3267#"''7&#"5>327&#"5>32%$C2'Vgj`@L&zOVgj`kFF2'Xbk`?M&zOXbiajbo&-E KUPEq,KUPE:E LTPEs+MSNE8uf$%q5%5 5P#PPNq55%PfP ! !' hC@?)C?r@h 777!% LC@C{?C@C? !7 7hC?C)@hC?Ch@ !'' ! L)C?8h@C@?7^P % ! !%7'!55![$$/]^$$%%-___7^?% !![$^$$6~ !!6$$$6~ !!~%$!' ?@h ??7 7@h0h@! h@0?7^P % ! ![$$/^$$%%6~ ! !! !Y%%$$$$ug #75!5!7ތwUƑ4&Ƒu g8 '!5!5'eƑ8w&ƑM? 7!!7wUƑw4ƑwM ?8 3'!!'֌eƑ8wƑ%!%!!W7 r%!!!W7 %!!,7r=zp~lO76lNf$@ $!  %2999991@ ! /9990@#"$! %KSX9Y"$]@ !"#$66EEVVP&ee`&]2654&+;# ! !.#yiiy{x3 326=mEHrVepcM"UhCsUst -Peetf]+l^j^Ÿo'..[%m)B333!;!"'#&5#33_>\oMA^;3ÞN7:[>t6y )54'&'&'&#"!!67632!!$$.p@@fQ[[nedgo77#WVb./ww3q!!#!!!K&b+1#AL!=y!! 3!#!fwKK-\% !!!!5!s!7A\` !!!!5!uN`fb'5!!5# !226&#"mb_+ނyzf9%!#3265#!! !9NQx{TV#% ' !!!!!Z_5Xg+:{0!!!2#54.#"twHf]ee/'A` df LfDXZ}(1 XP|\k23X'{&"26  454&"6MQsPPtP GCEkU|}j}PPsOO988b \  q` !!!!!!3`Sgtd33!iq !4676  '&%2>54."q_OO__OO-;IRI55IRI5 %6vv66ww6?.*9 9**9f"%6$  $!327676!&'&#"?`?扉!J_UK !K_VJ .;zzzz P'N"P'Nf" #>7!!6$  $!.!Et!t!??`?扉p?!! $]$;zzzzgm[id ) ! 5!7!dSSffڗ:kKid !! !5!i\ٖ-:ksZ %!5 5!7!!ZddؗӖ- ,c !!!)!$~$R}+ '0 '9(P"4EI4676  '.%2>4."4676  '.%2>4."!kY.YkkYYkP%dpdJ++JdpdJ+rkY.YkkYYkP%dpdJ++JdpdJ+y:l'UU'l:B9qy# ) !! xS qge !!!W}X$Y$O$ !! !(} mRqNgf" 6$  $67654'&|:NN9?`?扉H%:Fg?%%;zzzzM}O[ȇ>fS" )&""''7&6$327267654J:U>±ݜs?ñoU>|'NC.Kۭh;zLgz 0&NC͍? !!!!}}}$$$O$,) !!3xS{*I !!!!!!dy!! ! ! !0AD= !!!!F}}$O$$O$ !!!}7g  !!!!!!K$o$!$ }}7; 3!!!!!/#)&#"327# /!"'32#"63 76!2#cllcr||rcllcr|ww|r1!#35#3!3!3#3#!35##HH"#JJH 3!!!%\q=,!!!!!5!!!!#hH"#J?3!!!}}$Wx 4'! $5%!!hB>dU=#mq 1A2>4."4676  '&2>4."4676  '&9IPI44IPI4q_OO__OO09IPI44IPI4q_OO__OO;+'5:4''4f0hh00ii0;*'5:5&&5f0hh00ii0f"#46$  $&%2>54."f?`?扉>|JJ|}Izz❞zz͑CNNedNNf>".327767654."46$ ' $&>_^UF%J|}Ir?`?D>d͑CN&^#([edNNczz❞b =z )!!!!!~$8$9yd? !!!}}X$Y$O$ !!!!!p|}Wmhhmhh6hf"#'46$  $&%2>54."!f?`?扉>|JJ|}Izz❞zzΑBNNedNN$f".47>32".% $654'&'7'&'& >_^UF%J|}Ir?`?D>d͑CN&^#([edNNczzb =zf(1 "&547"3&5462264&#3264&L|T%%T|p32H33#%23$#33fejvvO??OvvjMmMMlN5!#3i ^fy]N^@D*i1^!B*(ǿbY9>K-%d:!!!m:!5!!m3&!!!T-!5!!TK'6'6'6'6'6&6'6&6'6&6&6'6&6'6&6&6'6'6'6&6'6&6&6'6'6&6&6&6&6&6&6&6'6&6'6&6&6&6&6'6&6&6&6&6&6&6'6&6&6&6&6&6&6&6&6&6&6&6&6&6&6&6&6'65i{jlX`+t <5"'0'&#"0# '&54767!32767632324&'!aayTQ|@NOTysjiÑjjsyQNQ?|QTx@v@@v@܍U0,-00-,0Y` `3#"'&'&"#"'&54767!32767632324'&'FV42epPvlmwPpe24V36*&9E]VW\F5&*6`『KEEKKK㠱dŸ~JR QJ~dd #&(`&q03!!#! ! %"3254hhhgt%±{Z+Xjkc[{!#! ! 3"326&E!", u||uw}}`8(8B!!!!!!!!!-_})}%RXZ+ {"-!5#"&547#!!!6;54&#">3 "326= HfoӆsUst/ pq[Qef]ˢ>4>`?.UO..lLJDMm){v!!3!!!3>!!\ph:]qAdE[s4`5!!3!!!3>#p?oddjkX{!!!!"326& ! Bh/xYW3B8(8f 'yT'yX{'yj'y:j:Wv '/7?GO%3#%3#3#%3#3#%3#"264"264$"264"264$"264"264$"2642+ '&' &547"#"&546;&546 676 3#Fޓhhhiig޲hhhiigRhhgwiig޲hhhc9]]ź87;]]:9sIFP뇇݈ꇇꈈꇇ2뇇뇇뇇0뇇뇇뇇X̬\dfʬ\ʫZee̫ZҜ f#!!!2!#3276=4'&'&'&#!!! ` feN=$$.wu銊#CC77#F`!!!2+5326=4&+!!jllllͳ>fLLfi`vwwv\\S j!!;# ! `{x32#!53265H.pfQnilfL 77#'b]Vtv\ F*!!!!"'&'327654'&+5!!! `R~VNRQST1TN !pgts="J&&55cf45^Hz)1!!!"'&'327654'&+!"&5#;5f^W|WOzmsqjfQRTS*Ա>\'r`>N !qgst%)5855cf54%N7Rnc{3%&'&547632.#";#"32767# $546,9l78WYZ[<;_7892u|v>CBAtMU^GZ\]\~ !SUge 0:?ALO=6AEifFE#'?%啿` !!!!! Q`%jb{V !!!! !!!!!L-_})hg)}^_}B%R5+%RX{ 2=H"326=%!5#"'#5#"&54$!354&#">326763 "326=6;54&#"pq[QemH]JH"ӆsUstiktt/ pq[Qe;!Yqӆ^LJDMm)f]f]ˢŸUO..5 lLJDMm)QnUO  ! !!!!%"3254hhI_})c ư°dd-'5RbX+{ +5 ! #"&54$!354&#">3 6"326="326&!EIo"ӆsUst%pq[Qeiw}}wu||{6(ˢŸUO..oo}LJDMm)B   !!!3265!.=_})6y%R-zX{(3%# '#"&54$!354&#">3 265!!"326=]^ <ށ"ӆsUst/ K̀fEpq[QeVOˢŸUO..+z)LJDMm)  !!! !!!F_})5=+%RXB{ ("326=5#"&54$!354&#">3 !pq[QeH"ӆsUst/ gGLJDMm)f]ˢŸUO.. !!!!!!!3!L!^3 3!3#"326=!#\H"ӆsUst/sgpq[Qe9f]ˢŸUO..wfmLJDMm) F>!!!! !+3276?L-_})dYG[*$%R>#OXFA{)4!5#"&54$!354&#">3 !+5326?"326=\H"ӆsUst1f)H^^p[SWpq[Qef]ˢŸUO..wz 6JJ:KJLJDMm)D:X5{ %!!!oMl_^!%!ffhS> !3#!!#32x !3#!#3mf!7' 3#! '&#376"!&'&!3276h̤ ͨ gaCCa+FaaFΦΩ ZZ]] y{' 3#! '&'#53676"!&'&!3276C!}ޣ~"w>$$>u)*>wu>*{wݾwU2JJ2UR[:UU:f + 6! ! '! "3254!"3254fnmhhgg°°°ddjkX{ %"326& ! '! ! 6"326&w}}wu||!EG" w}}wu||{Bȇ8(8B8])!!]\%#V`!!f`V!>32!'&#"!to1Bwy6E\|V{63 !4&'&"!! *΀f/V nE/ N`!l=!5!5!5!l>>!#@ 991@ ]0!!h33^@ 10#+ !!!!gr+y##T! !# $54$!#";!1pzzp+lm9 3!3!! mXXl%D+=m!!m@ Z! !! ! !!wsnD`=+o=X' ""326&!"3 ! 7.5463w}}wu||_`>s!Ey4{B##%R8>e)m''F@ ) !E#T(<2<<1@ ! '!/<22<2220#"!54763!#"!!!!!#354763LffL2fffDNNWXDN``NWX+B^@   ET<2<<991@    /<2<2990@p`@]!!#"!!!!#35463iJK:k$7DN``N'B@@    ET<2991@  /<22990!!!"!!!#3546{L<)7DN`N'@*.V@+ 0,  $E"&T/<2<<<<1@#.$+ *$!/<<22<<2220#"!54763!#"!!!#!!!#354763)!LffKkfff\iDNNWXDN```NWX'B)M@ +  #E!%T*<2<<1@"# )# /<<22<2220#"!54763!!!"!!!!!#354763LffLfffDNNWX)DN``NWX'H-#"!#35476;2!!;!"'&5#354'&"Lffֺffq\XY)DR`NWXXWN%NXYNDjU&547632!!;!"'&5#354'&#".#"!"'&'32654'&/.54632~Ƈr\XY+(E;2-'s_f12&%a?Y_ownkpqtij$ r?@u_]_\L%NXY?0&$)&80%005+ (KP%4:90 fU!"'&7676;#"3!'&763!#&!3265!!5#"'&5#!5#"'&5!32654ihls44)Q,7<&G.pfQmefQmcfhG.p`^]RWS`8bz,!Jp[.w#&)b]wvТb]wy|*<#& hD!&!5#"&5!32654/&763!!!3276=!!5#"&5<-0QmhG.pOQ,7_G.p@@fQm,"X\Тb]p[.w#&7bzL69#&VW0b]V f?!&!5#"&5!32654/&763!>32!54&'.#"!<-0QmhG.pOQ,7]Qn H.p,"X\Тb]p[.w#&7bzb]Von#'/V f@G!!#"'&5!3265#"'&76763!!3265!!5#"'&55#"3,nQmbfhG.pihls4bG.pfQmef΃`Lb]w{|*<#&)^]RWLp[.w#&)b]wvS`V V!&!5#"&5!32654/&763!676323265!!5#"&=4'&'.#"!<-0QmhG.pOQ,7]l[nG.AfF6[mH.C@@,"X\Тb]p[.w#&7bzZ6/V*<#&)u/VH1 #'WX/`&-u= 32673 &u cc Ȯ=FJJF`&AN*`676765!#% 9!\Y!fyLvf 8Dc]-Bf`3` !!47!>=!' btP!if;&!tv)f`!!!S```)!!4'&#!!20f77vJK`3! 7654'&#!! #p4BBBixcc9H;9x_476=!!!!&f[Tuzl`!2!!4'&#!f77m`JK` )4'&#!!277JK`#!2!4'&#!+2765N77!RQj&&`JK6a`02 5!3!    &=&= &0&0 o`&$Co`&$o`&$H`&%K`&&H`&' `&(p`')6`&* ^`&,p`'-HV`&.`&/H&0|a&2HZ`&4H`&5V`&7`&8#o`&:Vj`&;H`&< `&=Hb`&>&)H&%&/@&8o !3676=!!!767'#!j :fkMm\[ :kNf[f<`) MԛsS;$ M rSvuگ ^&8 '8: UX'8R; XX'8R< ^&7 '7: jX'7; XX'7< ^&9 '9: jX'9; XX'9<^&8'8:U'8R;X'8R<^&9'9:j'9;X'9<^&I'I:a'Ip;Xa'Ip<J&6 J'6=J'6>J'6?J&9 J'9=J'9>J'9? f&X8 f&8 ='8l ='8l f&X5 2 f&5='5='5 f&X7 f&7v< ='7 ='7 f&X9 f&9i ='9 ='9 &\6X\ '6X\ (/&\I > /'I >1E2%! '$&7!32767654'&54767;#"ѽϒ@f3QgN2 %bD$0#7AK]$?.\^Zc:#=$$d|?O#! 6. )0$1G&X EG'X lG'XG'X~<~ GL&;#&'#"'$47!32767654'!( i0?+]豌(f*7N8=7!ef a ;b-",ckJ8_w- `r'|q>n r'|q>UX #!3276=!UD@bD,1fsa\,1jXX!#"'+3276=!;XnMMnbD,1f1,Dbmm,1jj1,$o,SjX'5wXX'5x  #4%$3o brIG?.Z 52#&$b or.?GI '/&'&#"#67632],$V5Hqpo?t?# $0)JI '327673#"'&'],$P;Iqpo?t# $,-JI:q^'q^f: r^ik ;# '&=!1)fKrsfT(LL":s^:t^'t^f: u^ 'u^f:v^'v^fw^'w^fJnx^'x^f(L&Ry_'y_&Rz_^&z_^ `'zq>n 'zq> &R{_ &{_$&oz&>,'zDU'zpwX'zpxR !;!"'&f1,Db@Dsj1,\a^&4'4:UX'4W;XX'4W<bR&m5,'5 ^R&5R'5:j'5R;X'5R<^L&6L'6:j'6R;X'6R< f&X4# f&4='4q='4q fX f/;#"'&'&'3 7!$'&54767&$3 &#&I=TBVyG<2mSgZ-ΤKȜfT_`" Bq.o?,ii7=-RWy3R}&Z4 }'4  &\ &%! 7676'4'!;#"&75OI4f ":,IKVQ9beDCmey" };, &\4 '4 `^ cF%765!325!;!"'#"'&'#"'#"'$47!32767654/!J%f$B}f1,DbP1XO=wQ: #HFVDNx`iifl&5nNY':@f$8b2_&j1,47 Ha$Zv@$eUĴΪ) :CDhtz@J<95-%#!3276/!765!325!#"'&'#"JWbD,2f-SG%f$B}f\HCqQ: #HFNN,2i$b;6T2_&qY Ha$84#"'&'#"'#!3276/!765!325!;!"'CqQ: #HFSJWbD,2f-SG%f$B}f1,DbP1X Ha$`N,2i$b;6T2_&j1,47 `'6 ^ c'6 5'6* 8'6*  ` 9F!"'&'#"'$47!32767654'!67632;#"'!327654'&#-=DNx`iifl&5nNY':3J $hwG-*BVXcCD~v;51KnC v@$eUĴΪ) :CDhtZ(--{i3c29#x [2/7O2+%#!3276/!67632)"'&%327654'&#ldbD,2fChw縮ng_LD~v;51KnCrr,2ie5{i3c`[2/7O2'4%)"'&'#!3276/!67632;#"'%327654'&#^gg_L0ldbD,2fChwG-*BVXiD~v;51KnC[['4o?kH&5~k J'59@'5~A'5~Bi!D&#"'5327654'&'&7676'$'$547!3276765!;!"1;5P&#fWRB8D-U 7.)!(`X?$U50EUC0&q|!3%#"'&'+3276767632;#"'%654'&'&32x|@hu>7.$lMK/0|K$"& (<;'%UC0&?`X?$Dei#";)!(~<&4~ G'4{tU&w4WCX&x4WCbRm %&'&'32&5!;#"'&''"'&5476_)-Daf#)D K\GBl8:j=(3 #60!ȎR,"#A0D +9654'&#"&'#"'+327&'&5476327654'&%c'.W:B^zikON6 $x.m"*<z$J<-&!-#9Һ49Wqg$ >HEpb&>2=8C!$= \$/6763$!!%"'&'#!327654#"3254'&#xWxWx؈-IT_dH-66-Hd_TIĢU@hxxh@UDM419GvG914MD `n !0!"'&'&547676763#!7676&'&;4 c]bm_Y5 ?_אַWe=/'*#$"zQT4,8*:79Q[eJS6@)'-'$o,S3#'$'&7!32765&'&'&5476763 ;#"'&#"ľT@fF36 0J2LgV5=nZD-9B)i[eD*#("% %Tb/I#&,x &o5 ,S'5 jX'5wXX'5x$'y ,''y ,D$'z D''z T $&{^T ''{^T$!"'5767!6765!$;IVjhjO j%fB[A*%,yA+7T'%!"'5767!6765!;!"'&qjhjO j%f1,Dbr6%*%,yA+7j1,?*2h!% 546?>54$#">32!tB*D@^N]yfQV`59@jBihB--K>9Yb(*BCOF.\4:bR1d !5!5!)5!S2SR7'F#X: ':#b= 'C#]; '#b<= '#b#]H''&H&''H'''# H''&H&''H'# ''H''&#H''&#H&#''# H'&'H&''H'''# H'''H'''H'''# H&''#H''&#H'# ''#H'&'# H'# ''H'''# # H'# &'H''&# H'''# # H&&#'# H&&#'# H'# '&## H&''H''&H'# ''H&''H''&H'''# H&&#'H&&#'H'# '&#H''&H''&H'# ''H&''H&''H'# ''H&#'&H&#&'H&#''# H'# '&H&''# H'# '# 'H'&'# H'# &'H'# '# 'H'# &#&H'# &#&H'# &#'# H''&#H&''#H'''# #H''&#H&''#H'# ''#H'&#&#H'&#&#H&#''# #H&''#H&''#H'''# #H''&#H''&#H'''# #H&'&##H'&&##H'# '&##H&''# #H'# '&#H''# '# #H'# &'#H'&'# #H''# '# #H&&#'# #H&&#'# #H'# &#'# # 3 !#!!"\xw9:4]xi+"+33%! )327&#'327&+67654'&676'&4`7fa|cF<]SC. -fxxCC#3!3 #贴&r]xo@; %3#'!!!4xxxx !#!! !3!3_Gb\}Դ!]>+]ff%% 7& 676'& ! K{@{{{}LLhhg4334Ь01ddjk-@654&/&'&54.#"!"$'532654&/.54$!2~sLL;;Ѥ:'R{hZtӎ⏏ |~Z {Ux]\3(5TUQ:O舼3(1kH5DD]b{T(<65[\e]Z%(=%%  !!!)#3 \x]#%&5#676#!3265!! 6~-?-~rplx**x V޹"6=  %! ! 3!0Xx]A+=h%#!# ! ! 3! !*5*>{YZx]==+o2@%#! # ! 3Uy(6xxz[! 3!3#\x uX{#,4%34'&'!5#"&54$!354&#"5>3 5#"676Դd+H#,\H"ӆsUzz@\G;q:4C*SH0xT%32#"&36a\Jt u[Gb]\]$?hDGX6{ .#"3267# !26]Mx]]xL\TWV/XU\ %!!%7*7l zy[I #%267.#"%#"32!!#3C{Ju tJ\,Ŵ[\Gc\II]bXcehX { %# ! !32%!&'&#"K"=Zrx~i~fD015:9|c|w|x97Fx$xZTV\FJy (4<6765#'!!"'&'5326=#"54323276'&#"2 B1xogkf^[Ju uJebjjbw/'jj'a'jwx!65b\CA\cvu3.b/nN%)!4&'.#"!!>32%34'&'3 H.p\WvԴMB  Ĵnn#'ub]Vx2TH%!A1.$1 3%!!!!\hpxF16765#!+73265!!Z4Mx>fKh9UGs\<3!!3 #$x\tHѼg$du(%&5#3#"&5'N3LfT 2U9~\sFn{!M334'&'34'&'4&'.#"!!>3267>32!4&'.#"MB  32%34'&'3 H.p\WvԴMB  Ĵnn#'u`b]Vx2TH%!A1zpX'{ # ! 327&#"676'&!EG$~~RgeQQegR%~~{8(8(x>xH|1xx[VI{ #"327&>32#"&'!!3#6'aJu tJ\Դ;Gc\]bpeGDh\VH{ %"3267.05!!#"32#0D^Jt uty\GLb]II\Xi*{3.#"!!>32$R/]/\E}*(p-p`nejb{B>54&/&'&5432654'&/&'&54632.#"!"&'7U?~3k>5>|4bktij$%m?c`cڀs_fcKa?^_o}2 &:/*[E% &Es%->?FD: "daƲ ::=@47 ,_`γ##7 #&'4'!!;!"&5#53?2j$x{KsXբ&K#D\OxsNxkxJdD`%)3265!!5#"&5#&'&'&'&5# H.p\Wv,MB  <`n#'b]xεTH%!A1p` %# ! 3!ZmxpH`#3#3!!3! !'yp(\` 3%! 3 ! #\d(^pxe9geF`6?'#%3+532767! D1)H]_q> k|!qx6JJx1 Y\` #3!!!5! NNxxxp '$%f\&9'()f*+f=-q./901ff23ff45-6 j78 '9=:';<\q=X{D^EX5{F\GX {H'I\FyJKLFMyN}{P{QX'{RV^{S\VyT{Ujb{VW`X`YH`Z `[F`\\F`] '&'( ')*\q+,ff-=.q/ '0912b3ff456ff7 j89ff:';s\<7= Ec)yEV_0FVU`GY($Hn{IYVUJV{KX($L`M=`N=OT`P`QYVURX'{SV`TV^~UXV5{VX`W+`X `YVjZ4V`[V`\X`];e @g{i$eoc{ViF^~.`jb/'%'&'676! ! &#"320&&1&00&x@'&@/DQRDDRQ"//!J/"y"/Imstm %3#!5%!!!r6R[TxHxHx%%367654'&'"5$ %!5654&5<|>Ic6\D%$XŹSB-yxtY]3neclԵcw| w!&.!"'5327&#!5!27&#"563 65467>4&4%tU0480,C[ DϹ&d8XqEPJ~ D {x < }@+E Dt\3 !#3!3#!!5,\/6]RxQ# !!63  '527&'#6676'&!#0W?0mm0]Hx^VY0k{'W-W&# )632# !2'& 676'&'&#"2PYkuEʾ&7-xi/D}!mVHNp7@ :jX)oac.!0 3%!!!y>+Q]xx]}'/8BJ.54$! ! $546'&'67%6764'&'&#"27&#"32%כm,CD,d#44#D5#dd#7AC8789BA79BAD,lm,)ž)*ސFQ!">F)$FF(}V"QS!n )%#"3 !"'5 76'%327&"AYk:4?ʾ&: 7-xi/D}!mVH !v&Y@ :j)oc.!b/\3#}jmf@10!#f;@ 1<203#%3#mN810K TX@878Y@ //]!#3\#@  @! $  $999991<29990K TX$$$@878Y@\             ##+]]'&'&#"#465463232653#"&8- (kW%J';'%'kW&F#<2j'<9j810K TX@878Y@ //]#yE@ 91<90K TX@878Y@/// ]!#'#f4߲DzyK@ 91290K TX@878Y@//// ]373f߲DzP S@  120K TX@878Y@///// / ]332673#"&`LL`=<<=w*10K TX@878Y!!w @O?]1<20!#!#ı`#!##53#73#'3# 3#3#'3#}}d 3#3#'3#}}d3#3#d 3#3#3#3#dd"%'$&7!327676'!;# +~@f3HT͜1@"f62kK4)MM \^Z[B/IVqgK-MEUXwXXx ,:;#"'&''$&7!! 7&'&54767632654'&#"P}/k@:Gd7k@f3HY@ 1shƍW4$c{xx--@:b@RQT4,8*:79Q>?U'4WCwX'4WCx %4'&"27>"'&47623J22J?@?@@?@$2%&2@@@@@??R'5&:E}'E'5R;X'E'5R<'7:j'7;X'7< 'z8h'zh'z '8lP'8'8 '6V'6&'6& '4q &7v< ='4q'7 ='4q'7<&G 5&&YP #."#> ``(=<<=FB@%  11221/2990KSX@ 66Y!!#!53265!Z`[nlfL<?yv\<` !3#!#53f`JD`!!3#+"'#5$%3"'"3276f8sZlq 3@h^+f&`0cvL9.XR'q>*XXY'*cqXR'1Xq>X6u'+*X4Xu'-*Xdu'+lq du'- q aAR',Sq>BX5v'/*XaAY',S*cBb5m'1w/taAu'+x,SCcpo'.u+"yCco'.u-QyCc5'.u,a>'0P,l>6u'0P+N> u'0P-l> '<0PCct'n.us'Z!!pp53265!!"&ITc\_JrX\t 4 &'|u &%! 7676'4'!;#"&75OI4f ":,IVQ9beDCmey" };,8'|'|X'|,'|v@'| &w5X@'| &x5 r'| > 5  KSKQZX8Y1/0@ P ` p ]!;#"&5fLf{\ }X+o`&`3%!!X\pxF`6767#!+732675]>^#%,>f]&9UGs\p`'^M`&_G!!!! !#3!3#q# %!5 K&wqXK e&wrXK&qwK &wtXK e&wuXK &tw,$&zt$ &zu3!3f+#3!3f+#3!f+Xt264&"#" 3:R::RNY'Cꋋ2r\t264&"!"'!3&54 3:R::RmcNNc''Cꋋ2\rr\264&"3&54 #"':R::R'YNCꋋ2\rTm !!!!yYYQ |m #!!!!YYQ |; #!!!YYQ |K! !!3?BdK ! !3!3g>?Bd#3!! >dB 3!!!3fcfdd #3!!!3fcfdd #3!!!fcfdd 3!!!37/d #!!!37/d!!!7dl 2>4."!&'.4> !":F:"":F:%#s煅s$%ZK--KZK--( 6ظllظ6  !2>4."!!&'.4> ":F:"":F:%#s煅s$%ZK--KZK--( 6ظllظ6 T 2>4."!&'.4> ":F:"":F:%#s煅s$%ZK--KZK--( 6ظllظ6 V !3!!`d;` V !3!!`d;Q` V !3!!`d{` XP !!!#"&7676! !354&#"3,R['Fv4o;)9t)Ģydn~}w>QcP"#!!!#"&7676! !354&#"3@R['Fv4o;)9t)Ģydn~}w>Qc #!!!#"&7676! !54&#"3@R['FvC4o;)9t)Ģydn~}w>Qc} 3!!!!!UUkd} #3!!!!!UUkd #3!!!!UUd} !!!!!3WUU9+}I !!!!!3kUUH9+ )!!!!!/kUU9#3264&!!23WKGfkg %dpvdq] #3!!23#3264&g %?KGfkq]dpv#3264&3!!2#WKGfkg dpvd!4'&'5!!! >(n'-7a3tC#!&'5!!!5(n'-Wr3tC#!&'5!!5(n'- Wr3tC!!3{[g-T+ #!!3[g-T+#!![g-T+BB$34$!2>3234&#"!%4'&#"! f-3)YQRH#CBRs-kx&"r¼v;_c~BB&#354$!2>3234&#"!%4'&#"! f-3)YQRH#CBRs-kx&"r¼v;_c~B$#354$!2>324&#"!%4'&#"! f-3)YQRH#CBRs-kx&"r¼v;_c~! !!!!!!!T5f4gDo!#!!!!!!!h5f4gDo #!!!!!!h5f4Do)!!!!!!!)!5f)f4g3DooD#!!!!!!!!!!h5f)f4g3DooD}!!!!!!!!!!T5f)f4DooD !!!3c/dd !!!3!cQ/dd !!3!c/ddK!!!oYHX+K !!!!oYPX+!!!oYPGX+` #2654&+!!2+!or~gGXH,dRNGRd9d` #2654&+3!!2+!or~gGH,dRNGRd9d #2654&+3!!2+or~gGH,dRNGRd9d !#!!3!3ffD+#!#!!3!3ffD+X #!#!!3!ffD+X3#"!"$543!!!!KGfkh2d9pv9d3#"!!"$543!!!!KGfkh2d9pv9d3#"!!"$543!!!KGfkh29pv9d! !!!!!Tg+! #!!!!!hg+ #!!!!h+K  !3oWm~-+K  3!3o$~mm~-+ 3!o$~m-+X)!&'.467675!!!2>4.")ss*&"uACC4.")ss*&"uACC4.")ss*&"uACC4."&'.46767!!":F:"":F:V)ss*f&"uACC?w'!ZK--KZK--t 6ظ6u 7[\\X:t )2>4."!5&'.46767!!":F:"":F:)ss*f&"uACC?w'!ZK--KZK--t 6ظ6u 7[\\X:t@ '2>4."!5&'.46767!":F:"":F:)ss*f&"uACC?w'!ZK--KZK--t 6ظ6u 7[\\X:X+!&'.467675!!!!2>4.")ss*&"uACC4.")ss*&"uACC4.")ss*&"uACCb#76cPXbhX64X#X6h3#hbhXh$b4$6$#43#%}d62Vb4$4dbd3#30>#X6$bd033żtL_<r em!r2f+B{s/) mRo b\}j331 fwwf3ff)u 1 =+'\^fXX\mX{'\RVX\j7dH)7\}J+RomZm {u+HdHdHh1 1 1 1 1 1 fwwwwA!fffff-fXfXfXfXfXfXbXXmXmXmXmX#XXXXXXN771 fX1 fX1 fXfXfXfXfX\!\wmXwmXwmXwmXwmXf\f\f\f\R A$,|3RRt#ifXfXfX VfX)))jjjju u u =dH7\\\\\\{'}tQ4ffX!t\Xwhw{fX\| 3R Vfl_fLXAt)5wju 7a:\\..T Lu.T LJEZ  q L b\| pp1 fXfXmX1 fX1 fXbXf\f\3RfXfX.Y q L b\f\ OL1 fXbX-N1 fX1 fXwmXwmX/fXfX)w)ju e\y}EX\\1 fXwmXfXfXfXfX7\\1uj\AQV 01 wmXcT\) 7f\XX\V\mXmXytn\nnnV\\X&33]]xVVVXXEXsh_{NN3#j#jjR{j].\7dH7\x\ Y uJJJJfnzXPV\JJ ?\ \ =\&o6'V=.R.jJPJnnnnnI.Vj+   //  sm^s^m]] ToowVK n DM/B\e{ K\e5[ wbVg;MfXg\kT$pp qppph-jjXfXeX3[a5  '/1 1 w\f31 fwu f+'s7FctngcsYtnYX=sYXTVX;X+gB)4ZX'gXgX35pIi**_{.ofXfXw|GZr-fxf\l*W4^Ol^dfu97oXf('fDDfDww fA <^  +;1  {w ^ffu +;f+'lw dJ d)fXX.vsmXdnqXX7q)~(<#?mXmX(.Xj#Z(n7fXd(3 fX otQ}fX   0`YXfX >t b`fXfX871XrXt0.S:X*wZ d3nn0n2(v 0#sqfXu 77+') w~w~w6z 6z  3 6q+tw~v1 fX1 fXbXwmXhmXhmX d. YfXfXfX+;7+;7+;7w~.J<S:X*+')+')Z F%Z\ 6"+ OfX ltn^q I^q?f\=dH #^xq 0#t8x 2FY{F8xY{(f}Ff fxfx ^^^*ZV\\:|\$\\2xxxVxxV\V:X3`_._e~~i_Ro~~bHLK<HH1H3nH4|H0HmD~W1HHPPNVV B 3U b  }} OOww K'kU~bUUy;=KA \W 'kVh        s K K K11~UUb>Ab`XY7^<Xii. 7LX 7XXX{CCw  RQXXX*VQQWW)KMM`{2Q(b&TCi@ZlEbxXIP*8\O !30*,,4@2ccQXGv Z ZYnnnn2n0nnP>nnn4n%:Pnnn%%PPn9%n,n%QP8nZ%:n"nnnnnnldkdddddlddldXFddz~dkd2dxdddddddxddykdxdvddkdkdlddddydUdxn1 1 1 1 ======% % % 1  1 = 1 # 1 #=z<{f@f@({({({({@{z({({({  a1 1 1 1 % % % 1  1  1 # 1 #{{sssbsbsbzozozjszjsz{  0"sTTTT;T;T;T{{TTTTTT;T;;;T;T;;;{{8888 8 8 8}{c{}{TTTs8s8s8sTsT T TsTG{{G{TTTs8s8s8sTsT D T D T 8 8 D T D TG{TTTTTTT{{{cTcTcT T T T T T T T s \T s \T s \T s \T{555555555{({{CC8TTTT{1h1h1h1hmmmm a #{nnsszjsc{TTT{{ { { { { { { {{TT { { { \{ \{ { {{ /{TTs8s8sTsTG{55 5 555 5 k{{M { {!{!{ { l{!{!{Y  |  y  u qO yq7bX(Xii(xtnZRPXXHXHXHXX[rh#+#+'7dH\*tP7rh?qwv/vqvqv#@7vvv6vv7v7vH@Ovvpv&mmmmmmmmmmmmmOmmmOmmmmmmmOmmlnv8S@!mnmmlnlS@!7v]mOmOmmmmmmmm@mmmsmmmmPmOmm~mmmVm`m+mmmm2lmmWm0mmmgmCCCC1 fXfX\\\\\wmXwmXwmXwmXwmXw{'f\/\N R!3R3R3RB$)VVVfXfXfXfX))))Djjjjju u u u 1 71 7=dH=dH=dH=dH=dH+')+')7\\\\\\dH7fX{'+Y1 fX1 fX1 fX1 fX1 fX1 fX1 fX1 fX1 fX1 fX1 fX1 fXwmXwmXwmXwmXwmXwmXwmXwmXkfXfXfXfXfXfXfXl_l_l_l_l_7777cccccccc1 1 TY{tntntntntntnU[/k   p n@7HXXXXXX"w  lggggggggq y dXXXXXXXXE  9cctntnXXggXXcccccccc1 1 TY{   p nXXXXXXXXE  9ccccccc1 1 a51 wwoE)/,AQ]gggggg)^^XXXXX '7mwV RoRonnn    BBBB53''V BB(( ((( (LL/)Vh>Fd/)3/ls=d8x( dp  <m8aNTMA999NoNgn<{mZ8aNTMA999NoNgmmmMmoMf<}VX $ <O><u "Ff X===>=) ])f +) ')IN ?JjL Enf@Si,L( ?'  \57731 lT}SvKw yM;Zg'?y FZ QF<34uX*FmCTapHdHmHdHmHZH8HdHaHdHZHaHTdE1   a +'' A'f7  ) X\V Ok OkfXduddu dud\dudududdZZd.ddduud`dd_u_ddddududduZududu76H6666666Hzz6u`ududdud7u71 bZ;ww`,,,,LL)dR3 VLVLVI,,bb5555n \N /zzZyz``555^^PPPPWWPPPPPPPPzzzYWcc ~d~d| a aL C,,,,, C,,,@rxxdxxdOl- 8 8 P 8 x PXc 8#]]ssss7'\xxxxxxxxxx''''''''''''''''''''''q''''''''''llgg'''''''''''''''''pprppppppppp7p7''''''''''ppppp'''',h,d,,,,+,}}_}} ,,,B,d,,,,,,,,,,},,,dZd2E\,,,,,,,,,,,,,,,,,,,,,,,S,,,,,],,,,,m,,E,,,,A,,,U,,Q,0,,,U,,L,0,C,,X,,B,,X,,,x, ,,,,,,,,,,,,,,1,,,,,,,,,,,X,X,j,, T},y,},),,,,,d %6  gT YxEVIVVx+5X3ppppR >pTVSTWW0V000002p@TTTTpnnTVaaTT,f,z,z,z,z,xx>NnX~#9Uwlfxxxxxxxxxx                    uuuuuuuuuuuuuu++<uusunjTV. Bu xd xu xd xd xu xd xd xu xd xu xu@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,du__::: J776676uuMM''''$$"pMM   )fB3R\\b1 : =sH7NBNXxqffiishc1 1 wwjff,O`qwP9w9Wqfffff+'fw1 wff,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5| >t b` d8( dq[{es^Lq fXLfX @fX: Lu w3v3vLLL@ tnxj jX F X oX `X `XH `XDeXVvS@xX! @fX83swT @X{'+'''w'(j     uNNfbHLK<Hp6p1H3nH4|H0H~1HHbH3~ xD xD xD xD xD xD K = K =1111~3~DUD::i::::JUUD xDb xD xD}}}} O$ O$  OOwwuwwwuw K ='k6k=Us$DF]~3~DbHUUDDDTTTT2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,||fV<Wf ( =r2X[X[mX /\nnnX[\-j7d<H(7\1 fwwf3ff)u 1 =+'\fXX\mX{'\RVX\j7dH)7\1 1 w\f31 ffwu f+'s7csYtnYX=sYXTVX;X+gB)4ZXZ;(Iio_{.b\}nb\}jmmwxD =6k=DxDxD&]xxxxx4xxxaxBxaxBxaxCxCxCxaxlxNxlxCs=ss$DDy}EXz`X``YYY777l<X<<iiiiii...   777LLLX   777XXX,,,,,,,,Jtb"67#Bbb"67#"6bb"67#"6bbB7#"6bB! 79k:;Y<&:$&$&$&$&$7a$8$9u$:$<<$Y$\$$$$$<$$$$a$&a$*$,$.$0$2$6$8<$9$:<$a$<$$ H$ J$ L$ <$ D$ r$ D$ r%9%:%<%%6%8%:%% H% J% L% &/&6&&&&&& &&"&&&& K& K'&'l>?$?4@8@AHA`B BhBCDCTCCCCDDEEXEF FxFFGLGHTHI I$IIJPJ`JpJJJKTKKKKL(LLM8MNNNO(OOPLPQ0QRSlST4TDTTTTTU UV|WDX,XLXlXXXY\YZ@ZtZZ[\0\] ]$]]^P^__\__`<``ada|aab$btbc c\ccd(dhddeTefgtgggh hhPhhi(ipiijLjkkhkkl\lmxnnn(n@noohoppPppq4qqr$r4rhrrrrrss8sHsXspsssssstt t8tPthttttuuu4uLudu|uuuuuv v<vhvvvwHwwxPxxyHyzt{{|$|}}|}}~P~Xhxx<xh8 |xTD<4hT8HP\l ,Ll<XXD0@@thxl8HT 4\@Xt$Dd@`4X<hLX(<((@`( |,0H`x x4L $d| <Tl,0,,p$T,´dôĈHŨXư0H`xǐǨ 8PhȀ4Ld,ʐʰ 0@@̬̼<p͠$Lxΰ (pϤ Д0`ѐHҼ<hӘ,ԀԨ\Մհh`|נ8Tx؜$@<$ۀl$ݘlpd@x$@<XlL804DH hX<dp|LpDp@(<DlPD    <  0   D    0$|T$L( p\@ hH`Ld| $<Tl,Ll d@Xp(Tl  ( @ X p     !!!0!H!p!!!"0"H""""#8#P#h######$$($@$X$p$$$% %$%<%T%l%%&<&T&&&'<'T'l''''''((,(D(\(t((())h))))** *`*x***+(+@+X+p+++++,,,0,H,`,x,,,--8-P-p----...0.H.`.x.....// /8/P/h///00l0001<1T1l11122242L2d2|23 33344,4h444455545L5d5|555556 6$6<6t667 7H7`77788 888P8h88888899(9@9X9p99:4:h:;$;<;;`>>>>? ?8?P?|?????@ @$@<@T@l@@@@@@A(A8AtAAB<BTBBBCCLCCCDD D`DDEEpEEEFPFhFFFG\GH<HHHI\ItIJ J$J<JK(KKLL(LLMMM(M@MXMpMMMMMN4NNOO0OHO`OxOOOPHQ QXQpQQRR0RxRRSSTSlSSTT\TUU@UUUVVV4VLVdV|VVVW WLWWXXDXXY YXYZZ[@[t[\ \]$]t]^^_|__``H`aPaab bbcDcpcccddd(d8ddelf0flffgdggh(h|hiditiiijj$jLj\jjkkLkl$lTllm$m@mtmmnn4ndnotop(pPppqTqr8ss|stHtu@uv`vvw<wxxhxxy@yyz<zz{{|L|} }4}H}\}p}}}~~$~~~4$8H\xhpXLLl@`4Ld| $<Tl4Ld4Ld| $<Tl4Ld| $<Tl,D\t4Ld| $<\| $<Tl,Ll4Ld| $<Tl,D\t\l,D\t4Ld| $<\t4Ld| $<Tl,D\t4Ld| $<Tl,D\t4Lh0H`x 8Pl 8Ph0H`x(@Xt4Ld|,D\t 8Pl(@Phx0H`x 8Ph(@Xp0H`x 8Ph 8HX 8H`p,D\t0HXp,DTd|,DT|||||||||||||||||L|,l`XD`|p|Üô ,PĘ0ŐŤ@dƀ0H`|ǰ(h|ȰTx@|ʤLx4l̰̰̰̰̰̰̰̰̰̰̰̰̰4lhΐ<ϼ 4pЬ,@Th|ѐѤѸ0DXlҀҔ\Ԝ ՠؔ$pH݀ބ$߰Dx 4h,hL\0h40D DTd|H@ 8||$0``ph8Xx  8 X x       0 @ X x       0 @ P ` x       8 H `      h(8H<lD$L$l \4x4,<t  !!\!"l##4#\####$ $D$`$|$$%(%p%%%&T&'0'p''(0(()()h))*,*l*++\+,,H,,--L--. .L../T/0001$1h1223 3P334H45 5@5t5667x78899H9:;;h>,>h>? ?8???@l@@A(AABBC0CLCCDDEEPEFFF8G@HJKLMNN$N@NlNNNOOpOPLPPQTQR(RSSTTULUVWX XdY YYYYZ Z0ZPZ[$[l[[\@\]p]^__<__`<``aaab0btccxcd ddehefgDgghPhiiPiijkkkl@llm`mnnoopopHp`ppqqPqqqrsTt$tuvwxty(zz{`{{||D|||}l}}~ ~d~8pX(x40t<tt<tPThP`\<ll(@h$0@l ,Pp 4T @4l<`H4l$@d\@x 8`|`tÐì8TpČĨ,xnjǠǼ4Pd|Șȴ4Lɤ@P,XtΠμ<XπϜ (TpМи,HtѐѼ$XҜ,<4֤8אDج$L٤pHxۼ8PhDlݔHp\ߜ\\,T h `t@H<t`0dL  ( ,( <0Pp\p hP0  !4!"<"#T$$%P%&<&'(()P+|,-4.L/`012l344455567\7799:,::;L;;<|=<>$@0AB(CTDDEXF|G\H I,JdKLMLMNtOpPR4STUXUVLVhVVVVVWTWXYYZ[\\]_bcdLdefghi j8k0l$lmDnoXprPrsstst$ttuduwy4z~X<P\h\L  \$@ Hl,pD8h,|@`@\4ŜhƄƠƼ4ǜɰʄˀ̠̈́`Μ0XτϬ0ДѰ҈Դ׼4ڌd<(D\lX LxLtDl@8$pp((hHHDHp t<`\  l      0 L h       < `       < `      @ l    <X| 0\ (LpLp(\<X| 0\ (LpLp(\ 0\ 0\P<h 8lL<X| 0\  ( L p   !!L!p!!!"("\"""# #0#\###$ $0$\$$$%%P%%%&&<&h&&' '8'l''((L((() )0)\)))* *0*\***++P+++,,<,h,,- -8-l--..L...//H/|//00L0x0011P112 282l2233L3344<4x445<5566d66789$99:8:t::;;H;;;<@==>>?p@@A|B\BCDEF0GGHLHIhIIJ$J\JJK0KtKLLMMN@NOP PhPQtRRRSTSTTTTTU UdUUV<VW8WXhXY4Y|YZ@ZZ[d[\]^l_4_|_` `T``a8a`aaabb4b`bbcc<ctccdd,dTdddeeef fdfffggTggh@hij<jjkk\kkllplmmXmn(nnnoTop$pTphpqqr$rhrrs0s@sPs`sptXttu u`uv|vvw,w|wwx8xHx|yyly|yyzz,z{X{|t||}@}~l<L P`Ht@(8Ph(@Xp0H`x 8Ph(@Xp0H`x 8HXhxXPTl HXDl0X|(T8(tdp T0( H<` (t<l <|@4(|8L\(@Xp0H`x 8Ph,D\t4Ld| $<Tl,D\t4Ld| DTd|0x,@Xl4Ld| Tl,D\t¬Üô lĄĜĬ 8HƤ@XpLjǠǰȄ ɬ ʜˈˠ˸̌d|͔ͬ $<Tl΄ΔdL\DT҄$<TlӄӔ\lִ,D\t׌פdddddd8Tpٌ٨$Ltڠ@h۔ۼ8`܈ܰ,T݀ݨ Htޜ@hߐ߸ 4`(T| Hp@h4\(Px HpPPt(|lddP8(8D`P<(8HXhx(8HXhx(8HXhx(8HXhx(8HXhx(8HXhx(8HXhxPxLD ,<L\l|Ht 8  0 x    4 d    d t  < X$4Ld,D\t4Ttl$@\x <Xt8Pl4Ld|8HXh0X4Ldx@t 8hhp L   !!\!!"("t"# #P#|##$T$%H%%%&L&&'0'h''( (@())t))* *x*+4+`+++,0,d,-x..,.\.../ /\//0\01p223 343X3|3334 404T445555566 6D6X6l66666677,7@7T7h7|777778N+x @!>2  S ~ - (4; ;; 0      1 d  " : %:K h;% ; ;Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain DejaVu SansDejaVu SansBoldBoldDejaVu Sans BoldDejaVu Sans BoldDejaVu Sans BoldDejaVu Sans BoldVersion 2.30Version 2.30DejaVuSans-BoldDejaVuSans-BoldDejaVu fonts teamDejaVu fonts teamhttp://dejavu.sourceforge.nethttp://dejavu.sourceforge.netFonts are (c) Bitstream (see below). DejaVu changes are in public domain. Glyphs imported from Arev fonts are (c) Tavmjung Bah (see below) Bitstream Vera Fonts Copyright ------------------------------ Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org. Arev Fonts Copyright ------------------------------ Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the modifications to the Bitstream Vera Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Tavmjong Bah" or the word "Arev". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Tavmjong Bah Arev" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the name of Tavmjong Bah shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from Tavmjong Bah. For further information, contact: tavmjong @ free . fr.Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. Glyphs imported from Arev fonts are (c) Tavmjung Bah (see below) Bitstream Vera Fonts Copyright ------------------------------ Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org. Arev Fonts Copyright ------------------------------ Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the modifications to the Bitstream Vera Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Tavmjong Bah" or the word "Arev". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Tavmjong Bah Arev" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the name of Tavmjong Bah shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from Tavmjong Bah. For further information, contact: tavmjong @ free . fr.http://dejavu.sourceforge.net/wiki/index.php/Licensehttp://dejavu.sourceforge.net/wiki/index.php/LicenseDejaVu SansDejaVu SansBoldBold~Z  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      sfthyphenAmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflex Tcommaaccent tcommaaccentTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentlongsuni0180uni0181uni0182uni0183uni0184uni0185uni0186uni0187uni0188uni0189uni018Auni018Buni018Cuni018Duni018Euni018Funi0190uni0191uni0193uni0194uni0195uni0196uni0197uni0198uni0199uni019Auni019Buni019Cuni019Duni019Euni019FOhornohornuni01A2uni01A3uni01A4uni01A5uni01A6uni01A7uni01A8uni01A9uni01AAuni01ABuni01ACuni01ADuni01AEUhornuhornuni01B1uni01B2uni01B3uni01B4uni01B5uni01B6uni01B7uni01B8uni01B9uni01BAuni01BBuni01BCuni01BDuni01BEuni01BFuni01C0uni01C1uni01C2uni01C3uni01C4uni01C5uni01C6uni01C7uni01C8uni01C9uni01CAuni01CBuni01CCuni01CDuni01CEuni01CFuni01D0uni01D1uni01D2uni01D3uni01D4uni01D5uni01D6uni01D7uni01D8uni01D9uni01DAuni01DBuni01DCuni01DDuni01DEuni01DFuni01E0uni01E1uni01E2uni01E3uni01E4uni01E5Gcarongcaronuni01E8uni01E9uni01EAuni01EBuni01ECuni01EDuni01EEuni01EFuni01F0uni01F1uni01F2uni01F3uni01F4uni01F5uni01F6uni01F7uni01F8uni01F9 Aringacute aringacuteAEacuteaeacute Oslashacute oslashacuteuni0200uni0201uni0202uni0203uni0204uni0205uni0206uni0207uni0208uni0209uni020Auni020Buni020Cuni020Duni020Euni020Funi0210uni0211uni0212uni0213uni0214uni0215uni0216uni0217 Scommaaccent scommaaccentuni021Auni021Buni021Cuni021Duni021Euni021Funi0220uni0221uni0222uni0223uni0224uni0225uni0226uni0227uni0228uni0229uni022Auni022Buni022Cuni022Duni022Euni022Funi0230uni0231uni0232uni0233uni0234uni0235uni0236dotlessjuni0238uni0239uni023Auni023Buni023Cuni023Duni023Euni023Funi0240uni0241uni0242uni0243uni0244uni0245uni0246uni0247uni0248uni0249uni024Auni024Buni024Cuni024Duni024Euni024Funi0250uni0251uni0252uni0253uni0254uni0255uni0256uni0257uni0258uni0259uni025Auni025Buni025Cuni025Duni025Euni025Funi0260uni0261uni0262uni0263uni0264uni0265uni0266uni0267uni0268uni0269uni026Auni026Buni026Cuni026Duni026Euni026Funi0270uni0271uni0272uni0273uni0274uni0275uni0276uni0277uni0278uni0279uni027Auni027Buni027Cuni027Duni027Euni027Funi0280uni0281uni0282uni0283uni0284uni0285uni0286uni0287uni0288uni0289uni028Auni028Buni028Cuni028Duni028Euni028Funi0290uni0291uni0292uni0293uni0294uni0295uni0296uni0297uni0298uni0299uni029Auni029Buni029Cuni029Duni029Euni029Funi02A0uni02A1uni02A2uni02A3uni02A4uni02A5uni02A6uni02A7uni02A8uni02A9uni02AAuni02ABuni02ACuni02ADuni02AEuni02AFuni02B0uni02B1uni02B2uni02B3uni02B4uni02B5uni02B6uni02B7uni02B8uni02B9uni02BAuni02BBuni02BCuni02BDuni02BEuni02BFuni02C0uni02C1uni02C2uni02C3uni02C4uni02C5uni02C8uni02C9uni02CAuni02CBuni02CCuni02CDuni02CEuni02CFuni02D0uni02D1uni02D2uni02D3uni02D4uni02D5uni02D6uni02D7uni02DEuni02DFuni02E0uni02E1uni02E2uni02E3uni02E4uni02E5uni02E6uni02E7uni02E8uni02E9uni02ECuni02EDuni02EEuni02F3uni02F7 gravecomb acutecombuni0302 tildecombuni0304uni0305uni0306uni0307uni0308 hookabovecombuni030Auni030Buni030Cuni030Duni030Euni030Funi0310uni0311uni0312uni0313uni0314uni0315uni0316uni0317uni0318uni0319uni031Auni031Buni031Cuni031Duni031Euni031Funi0320uni0321uni0322 dotbelowcombuni0324uni0325uni0326uni0327uni0328uni0329uni032Auni032Buni032Cuni032Duni032Euni032Funi0330uni0331uni0332uni0333uni0334uni0335uni0336uni0337uni0338uni0339uni033Auni033Buni033Cuni033Duni033Euni033Funi0340uni0341uni0342uni0343uni0344uni0345uni0346uni0347uni0348uni0349uni034Auni034Buni034Cuni034Duni034Euni034Funi0351uni0352uni0353uni0357uni0358uni035Auni035Cuni035Duni035Euni035Funi0360uni0361uni0362uni0370uni0371uni0372uni0373uni0374uni0375uni0376uni0377uni037Auni037Buni037Cuni037Duni037Etonos dieresistonos Alphatonos anoteleia EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos OmegatonosiotadieresistonosAlphaBetaGammauni0394EpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsi IotadieresisUpsilondieresis alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdauni03BCnuxiomicronrhosigma1sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos omegatonosuni03CFuni03D0theta1Upsilon1uni03D3uni03D4phi1omega1uni03D7uni03D8uni03D9uni03DAuni03DBuni03DCuni03DDuni03DEuni03DFuni03E0uni03E1uni03E2uni03E3uni03E4uni03E5uni03E6uni03E7uni03E8uni03E9uni03EAuni03EBuni03ECuni03EDuni03EEuni03EFuni03F0uni03F1uni03F2uni03F3uni03F4uni03F5uni03F6uni03F7uni03F8uni03F9uni03FAuni03FBuni03FCuni03FDuni03FEuni03FFuni0400uni0401uni0402uni0403uni0404uni0405uni0406uni0407uni0408uni0409uni040Auni040Buni040Cuni040Duni040Euni040Funi0410uni0411uni0412uni0413uni0414uni0415uni0416uni0417uni0418uni0419uni041Auni041Buni041Cuni041Duni041Euni041Funi0420uni0421uni0422uni0423uni0424uni0425uni0426uni0427uni0428uni0429uni042Auni042Buni042Cuni042Duni042Euni042Funi0430uni0431uni0432uni0433uni0434uni0435uni0436uni0437uni0438uni0439uni043Auni043Buni043Cuni043Duni043Euni043Funi0440uni0441uni0442uni0443uni0444uni0445uni0446uni0447uni0448uni0449uni044Auni044Buni044Cuni044Duni044Euni044Funi0450uni0451uni0452uni0453uni0454uni0455uni0456uni0457uni0458uni0459uni045Auni045Buni045Cuni045Duni045Euni045Funi0460uni0461uni0462uni0463uni0464uni0465uni0466uni0467uni0468uni0469uni046Auni046Buni046Cuni046Duni046Euni046Funi0470uni0471uni0472uni0473uni0474uni0475uni0476uni0477uni0478uni0479uni047Auni047Buni047Cuni047Duni047Euni047Funi0480uni0481uni0482uni0483uni0484uni0485uni0486uni0487uni0488uni0489uni048Auni048Buni048Cuni048Duni048Euni048Funi0490uni0491uni0492uni0493uni0494uni0495uni0496uni0497uni0498uni0499uni049Auni049Buni049Cuni049Duni049Euni049Funi04A0uni04A1uni04A2uni04A3uni04A4uni04A5uni04A6uni04A7uni04A8uni04A9uni04AAuni04ABuni04ACuni04ADuni04AEuni04AFuni04B0uni04B1uni04B2uni04B3uni04B4uni04B5uni04B6uni04B7uni04B8uni04B9uni04BAuni04BBuni04BCuni04BDuni04BEuni04BFuni04C0uni04C1uni04C2uni04C3uni04C4uni04C5uni04C6uni04C7uni04C8uni04C9uni04CAuni04CBuni04CCuni04CDuni04CEuni04CFuni04D0uni04D1uni04D2uni04D3uni04D4uni04D5uni04D6uni04D7uni04D8uni04D9uni04DAuni04DBuni04DCuni04DDuni04DEuni04DFuni04E0uni04E1uni04E2uni04E3uni04E4uni04E5uni04E6uni04E7uni04E8uni04E9uni04EAuni04EBuni04ECuni04EDuni04EEuni04EFuni04F0uni04F1uni04F2uni04F3uni04F4uni04F5uni04F6uni04F7uni04F8uni04F9uni04FAuni04FBuni04FCuni04FDuni04FEuni04FFuni0500uni0501uni0502uni0503uni0504uni0505uni0506uni0507uni0508uni0509uni050Auni050Buni050Cuni050Duni050Euni050Funi0510uni0511uni0512uni0513uni0514uni0515uni0516uni0517uni0518uni0519uni051Auni051Buni051Cuni051Duni0520uni0521uni0522uni0523uni0524uni0525uni0531uni0532uni0533uni0534uni0535uni0536uni0537uni0538uni0539uni053Auni053Buni053Cuni053Duni053Euni053Funi0540uni0541uni0542uni0543uni0544uni0545uni0546uni0547uni0548uni0549uni054Auni054Buni054Cuni054Duni054Euni054Funi0550uni0551uni0552uni0553uni0554uni0555uni0556uni0559uni055Auni055Buni055Cuni055Duni055Euni055Funi0561uni0562uni0563uni0564uni0565uni0566uni0567uni0568uni0569uni056Auni056Buni056Cuni056Duni056Euni056Funi0570uni0571uni0572uni0573uni0574uni0575uni0576uni0577uni0578uni0579uni057Auni057Buni057Cuni057Duni057Euni057Funi0580uni0581uni0582uni0583uni0584uni0585uni0586uni0587uni0589uni058Auni05B0uni05B1uni05B2uni05B3uni05B4uni05B5uni05B6uni05B7uni05B8uni05B9uni05BAuni05BBuni05BCuni05BDuni05BEuni05BFuni05C0uni05C1uni05C2uni05C3uni05C6uni05C7uni05D0uni05D1uni05D2uni05D3uni05D4uni05D5uni05D6uni05D7uni05D8uni05D9uni05DAuni05DBuni05DCuni05DDuni05DEuni05DFuni05E0uni05E1uni05E2uni05E3uni05E4uni05E5uni05E6uni05E7uni05E8uni05E9uni05EAuni05F0uni05F1uni05F2uni05F3uni05F4uni0606uni0607uni0609uni060Auni060Cuni0615uni061Buni061Funi0621uni0622uni0623uni0624uni0625uni0626uni0627uni0628uni0629uni062Auni062Buni062Cuni062Duni062Euni062Funi0630uni0631uni0632uni0633uni0634uni0635uni0636uni0637uni0638uni0639uni063Auni0640uni0641uni0642uni0643uni0644uni0645uni0646uni0647uni0648uni0649uni064Auni064Buni064Cuni064Duni064Euni064Funi0650uni0651uni0652uni0653uni0654uni0655uni065Auni0660uni0661uni0662uni0663uni0664uni0665uni0666uni0667uni0668uni0669uni066Auni066Buni066Cuni066Duni066Euni066Funi0674uni0679uni067Auni067Buni067Cuni067Duni067Euni067Funi0680uni0681uni0682uni0683uni0684uni0685uni0686uni0687uni0691uni0692uni0695uni0698uni06A1uni06A4uni06A6uni06A9uni06AFuni06B5uni06BAuni06BFuni06C6uni06CCuni06CEuni06D5uni06F0uni06F1uni06F2uni06F3uni06F4uni06F5uni06F6uni06F7uni06F8uni06F9uni07C0uni07C1uni07C2uni07C3uni07C4uni07C5uni07C6uni07C7uni07C8uni07C9uni07CAuni07CBuni07CCuni07CDuni07CEuni07CFuni07D0uni07D1uni07D2uni07D3uni07D4uni07D5uni07D6uni07D7uni07D8uni07D9uni07DAuni07DBuni07DCuni07DDuni07DEuni07DFuni07E0uni07E1uni07E2uni07E3uni07E4uni07E5uni07E6uni07E7uni07EBuni07ECuni07EDuni07EEuni07EFuni07F0uni07F1uni07F2uni07F3uni07F4uni07F5uni07F8uni07F9uni07FAuni0E3Funi0E81uni0E82uni0E84uni0E87uni0E88uni0E8Auni0E8Duni0E94uni0E95uni0E96uni0E97uni0E99uni0E9Auni0E9Buni0E9Cuni0E9Duni0E9Euni0E9Funi0EA1uni0EA2uni0EA3uni0EA5uni0EA7uni0EAAuni0EABuni0EADuni0EAEuni0EAFuni0EB0uni0EB1uni0EB2uni0EB3uni0EB4uni0EB5uni0EB6uni0EB7uni0EB8uni0EB9uni0EBBuni0EBCuni0EBDuni0EC0uni0EC1uni0EC2uni0EC3uni0EC4uni0EC6uni0EC8uni0EC9uni0ECAuni0ECBuni0ECCuni0ECDuni0ED0uni0ED1uni0ED2uni0ED3uni0ED4uni0ED5uni0ED6uni0ED7uni0ED8uni0ED9uni0EDCuni0EDDuni10A0uni10A1uni10A2uni10A3uni10A4uni10A5uni10A6uni10A7uni10A8uni10A9uni10AAuni10ABuni10ACuni10ADuni10AEuni10AFuni10B0uni10B1uni10B2uni10B3uni10B4uni10B5uni10B6uni10B7uni10B8uni10B9uni10BAuni10BBuni10BCuni10BDuni10BEuni10BFuni10C0uni10C1uni10C2uni10C3uni10C4uni10C5uni10D0uni10D1uni10D2uni10D3uni10D4uni10D5uni10D6uni10D7uni10D8uni10D9uni10DAuni10DBuni10DCuni10DDuni10DEuni10DFuni10E0uni10E1uni10E2uni10E3uni10E4uni10E5uni10E6uni10E7uni10E8uni10E9uni10EAuni10EBuni10ECuni10EDuni10EEuni10EFuni10F0uni10F1uni10F2uni10F3uni10F4uni10F5uni10F6uni10F7uni10F8uni10F9uni10FAuni10FBuni10FCuni1401uni1402uni1403uni1404uni1405uni1406uni1407uni1409uni140Auni140Buni140Cuni140Duni140Euni140Funi1410uni1411uni1412uni1413uni1414uni1415uni1416uni1417uni1418uni1419uni141Auni141Buni141Duni141Euni141Funi1420uni1421uni1422uni1423uni1424uni1425uni1426uni1427uni1428uni1429uni142Auni142Buni142Cuni142Duni142Euni142Funi1430uni1431uni1432uni1433uni1434uni1435uni1437uni1438uni1439uni143Auni143Buni143Cuni143Duni143Euni143Funi1440uni1441uni1442uni1443uni1444uni1445uni1446uni1447uni1448uni1449uni144Auni144Cuni144Duni144Euni144Funi1450uni1451uni1452uni1454uni1455uni1456uni1457uni1458uni1459uni145Auni145Buni145Cuni145Duni145Euni145Funi1460uni1461uni1462uni1463uni1464uni1465uni1466uni1467uni1468uni1469uni146Auni146Buni146Cuni146Duni146Euni146Funi1470uni1471uni1472uni1473uni1474uni1475uni1476uni1477uni1478uni1479uni147Auni147Buni147Cuni147Duni147Euni147Funi1480uni1481uni1482uni1483uni1484uni1485uni1486uni1487uni1488uni1489uni148Auni148Buni148Cuni148Duni148Euni148Funi1490uni1491uni1492uni1493uni1494uni1495uni1496uni1497uni1498uni1499uni149Auni149Buni149Cuni149Duni149Euni149Funi14A0uni14A1uni14A2uni14A3uni14A4uni14A5uni14A6uni14A7uni14A8uni14A9uni14AAuni14ABuni14ACuni14ADuni14AEuni14AFuni14B0uni14B1uni14B2uni14B3uni14B4uni14B5uni14B6uni14B7uni14B8uni14B9uni14BAuni14BBuni14BCuni14BDuni14C0uni14C1uni14C2uni14C3uni14C4uni14C5uni14C6uni14C7uni14C8uni14C9uni14CAuni14CBuni14CCuni14CDuni14CEuni14CFuni14D0uni14D1uni14D2uni14D3uni14D4uni14D5uni14D6uni14D7uni14D8uni14D9uni14DAuni14DBuni14DCuni14DDuni14DEuni14DFuni14E0uni14E1uni14E2uni14E3uni14E4uni14E5uni14E6uni14E7uni14E8uni14E9uni14EAuni14ECuni14EDuni14EEuni14EFuni14F0uni14F1uni14F2uni14F3uni14F4uni14F5uni14F6uni14F7uni14F8uni14F9uni14FAuni14FBuni14FCuni14FDuni14FEuni14FFuni1500uni1501uni1502uni1503uni1504uni1505uni1506uni1507uni1510uni1511uni1512uni1513uni1514uni1515uni1516uni1517uni1518uni1519uni151Auni151Buni151Cuni151Duni151Euni151Funi1520uni1521uni1522uni1523uni1524uni1525uni1526uni1527uni1528uni1529uni152Auni152Buni152Cuni152Duni152Euni152Funi1530uni1531uni1532uni1533uni1534uni1535uni1536uni1537uni1538uni1539uni153Auni153Buni153Cuni153Duni153Euni1540uni1541uni1542uni1543uni1544uni1545uni1546uni1547uni1548uni1549uni154Auni154Buni154Cuni154Duni154Euni154Funi1550uni1552uni1553uni1554uni1555uni1556uni1557uni1558uni1559uni155Auni155Buni155Cuni155Duni155Euni155Funi1560uni1561uni1562uni1563uni1564uni1565uni1566uni1567uni1568uni1569uni156Auni1574uni1575uni1576uni1577uni1578uni1579uni157Auni157Buni157Cuni157Duni157Euni157Funi1580uni1581uni1582uni1583uni1584uni1585uni158Auni158Buni158Cuni158Duni158Euni158Funi1590uni1591uni1592uni1593uni1594uni1595uni1596uni15A0uni15A1uni15A2uni15A3uni15A4uni15A5uni15A6uni15A7uni15A8uni15A9uni15AAuni15ABuni15ACuni15ADuni15AEuni15AFuni15DEuni15E1uni1646uni1647uni166Euni166Funi1670uni1671uni1672uni1673uni1674uni1675uni1676uni1680uni1681uni1682uni1683uni1684uni1685uni1686uni1687uni1688uni1689uni168Auni168Buni168Cuni168Duni168Euni168Funi1690uni1691uni1692uni1693uni1694uni1695uni1696uni1697uni1698uni1699uni169Auni169Buni169Cuni1D00uni1D01uni1D02uni1D03uni1D04uni1D05uni1D06uni1D07uni1D08uni1D09uni1D0Auni1D0Buni1D0Cuni1D0Duni1D0Euni1D0Funi1D10uni1D11uni1D12uni1D13uni1D14uni1D16uni1D17uni1D18uni1D19uni1D1Auni1D1Buni1D1Cuni1D1Duni1D1Euni1D1Funi1D20uni1D21uni1D22uni1D23uni1D26uni1D27uni1D28uni1D29uni1D2Auni1D2Buni1D2Cuni1D2Duni1D2Euni1D30uni1D31uni1D32uni1D33uni1D34uni1D35uni1D36uni1D37uni1D38uni1D39uni1D3Auni1D3Buni1D3Cuni1D3Duni1D3Euni1D3Funi1D40uni1D41uni1D42uni1D43uni1D44uni1D45uni1D46uni1D47uni1D48uni1D49uni1D4Auni1D4Buni1D4Cuni1D4Duni1D4Euni1D4Funi1D50uni1D51uni1D52uni1D53uni1D54uni1D55uni1D56uni1D57uni1D58uni1D59uni1D5Auni1D5Buni1D5Duni1D5Euni1D5Funi1D60uni1D61uni1D62uni1D63uni1D64uni1D65uni1D66uni1D67uni1D68uni1D69uni1D6Auni1D77uni1D78uni1D7Buni1D85uni1D9Buni1D9Cuni1D9Duni1D9Euni1D9Funi1DA0uni1DA1uni1DA2uni1DA3uni1DA4uni1DA5uni1DA6uni1DA7uni1DA8uni1DA9uni1DAAuni1DABuni1DACuni1DADuni1DAEuni1DAFuni1DB0uni1DB1uni1DB2uni1DB3uni1DB4uni1DB5uni1DB6uni1DB7uni1DB8uni1DB9uni1DBAuni1DBBuni1DBCuni1DBDuni1DBEuni1DBFuni1DC4uni1DC5uni1DC6uni1DC7uni1DC8uni1DC9uni1E00uni1E01uni1E02uni1E03uni1E04uni1E05uni1E06uni1E07uni1E08uni1E09uni1E0Auni1E0Buni1E0Cuni1E0Duni1E0Euni1E0Funi1E10uni1E11uni1E12uni1E13uni1E14uni1E15uni1E16uni1E17uni1E18uni1E19uni1E1Auni1E1Buni1E1Cuni1E1Duni1E1Euni1E1Funi1E20uni1E21uni1E22uni1E23uni1E24uni1E25uni1E26uni1E27uni1E28uni1E29uni1E2Auni1E2Buni1E2Cuni1E2Duni1E2Euni1E2Funi1E30uni1E31uni1E32uni1E33uni1E34uni1E35uni1E36uni1E37uni1E38uni1E39uni1E3Auni1E3Buni1E3Cuni1E3Duni1E3Euni1E3Funi1E40uni1E41uni1E42uni1E43uni1E44uni1E45uni1E46uni1E47uni1E48uni1E49uni1E4Auni1E4Buni1E4Cuni1E4Duni1E4Euni1E4Funi1E50uni1E51uni1E52uni1E53uni1E54uni1E55uni1E56uni1E57uni1E58uni1E59uni1E5Auni1E5Buni1E5Cuni1E5Duni1E5Euni1E5Funi1E60uni1E61uni1E62uni1E63uni1E64uni1E65uni1E66uni1E67uni1E68uni1E69uni1E6Auni1E6Buni1E6Cuni1E6Duni1E6Euni1E6Funi1E70uni1E71uni1E72uni1E73uni1E74uni1E75uni1E76uni1E77uni1E78uni1E79uni1E7Auni1E7Buni1E7Cuni1E7Duni1E7Euni1E7FWgravewgraveWacutewacute Wdieresis wdieresisuni1E86uni1E87uni1E88uni1E89uni1E8Auni1E8Buni1E8Cuni1E8Duni1E8Euni1E8Funi1E90uni1E91uni1E92uni1E93uni1E94uni1E95uni1E96uni1E97uni1E98uni1E99uni1E9Auni1E9Buni1E9Euni1E9Funi1EA0uni1EA1uni1EA2uni1EA3uni1EA4uni1EA5uni1EA6uni1EA7uni1EA8uni1EA9uni1EAAuni1EABuni1EACuni1EADuni1EAEuni1EAFuni1EB0uni1EB1uni1EB2uni1EB3uni1EB4uni1EB5uni1EB6uni1EB7uni1EB8uni1EB9uni1EBAuni1EBBuni1EBCuni1EBDuni1EBEuni1EBFuni1EC0uni1EC1uni1EC2uni1EC3uni1EC4uni1EC5uni1EC6uni1EC7uni1EC8uni1EC9uni1ECAuni1ECBuni1ECCuni1ECDuni1ECEuni1ECFuni1ED0uni1ED1uni1ED2uni1ED3uni1ED4uni1ED5uni1ED6uni1ED7uni1ED8uni1ED9uni1EDAuni1EDBuni1EDCuni1EDDuni1EDEuni1EDFuni1EE0uni1EE1uni1EE2uni1EE3uni1EE4uni1EE5uni1EE6uni1EE7uni1EE8uni1EE9uni1EEAuni1EEBuni1EECuni1EEDuni1EEEuni1EEFuni1EF0uni1EF1Ygraveygraveuni1EF4uni1EF5uni1EF6uni1EF7uni1EF8uni1EF9uni1F00uni1F01uni1F02uni1F03uni1F04uni1F05uni1F06uni1F07uni1F08uni1F09uni1F0Auni1F0Buni1F0Cuni1F0Duni1F0Euni1F0Funi1F10uni1F11uni1F12uni1F13uni1F14uni1F15uni1F18uni1F19uni1F1Auni1F1Buni1F1Cuni1F1Duni1F20uni1F21uni1F22uni1F23uni1F24uni1F25uni1F26uni1F27uni1F28uni1F29uni1F2Auni1F2Buni1F2Cuni1F2Duni1F2Euni1F2Funi1F30uni1F31uni1F32uni1F33uni1F34uni1F35uni1F36uni1F37uni1F38uni1F39uni1F3Auni1F3Buni1F3Cuni1F3Duni1F3Euni1F3Funi1F40uni1F41uni1F42uni1F43uni1F44uni1F45uni1F48uni1F49uni1F4Auni1F4Buni1F4Cuni1F4Duni1F50uni1F51uni1F52uni1F53uni1F54uni1F55uni1F56uni1F57uni1F59uni1F5Buni1F5Duni1F5Funi1F60uni1F61uni1F62uni1F63uni1F64uni1F65uni1F66uni1F67uni1F68uni1F69uni1F6Auni1F6Buni1F6Cuni1F6Duni1F6Euni1F6Funi1F70uni1F71uni1F72uni1F73uni1F74uni1F75uni1F76uni1F77uni1F78uni1F79uni1F7Auni1F7Buni1F7Cuni1F7Duni1F80uni1F81uni1F82uni1F83uni1F84uni1F85uni1F86uni1F87uni1F88uni1F89uni1F8Auni1F8Buni1F8Cuni1F8Duni1F8Euni1F8Funi1F90uni1F91uni1F92uni1F93uni1F94uni1F95uni1F96uni1F97uni1F98uni1F99uni1F9Auni1F9Buni1F9Cuni1F9Duni1F9Euni1F9Funi1FA0uni1FA1uni1FA2uni1FA3uni1FA4uni1FA5uni1FA6uni1FA7uni1FA8uni1FA9uni1FAAuni1FABuni1FACuni1FADuni1FAEuni1FAFuni1FB0uni1FB1uni1FB2uni1FB3uni1FB4uni1FB6uni1FB7uni1FB8uni1FB9uni1FBAuni1FBBuni1FBCuni1FBDuni1FBEuni1FBFuni1FC0uni1FC1uni1FC2uni1FC3uni1FC4uni1FC6uni1FC7uni1FC8uni1FC9uni1FCAuni1FCBuni1FCCuni1FCDuni1FCEuni1FCFuni1FD0uni1FD1uni1FD2uni1FD3uni1FD6uni1FD7uni1FD8uni1FD9uni1FDAuni1FDBuni1FDDuni1FDEuni1FDFuni1FE0uni1FE1uni1FE2uni1FE3uni1FE4uni1FE5uni1FE6uni1FE7uni1FE8uni1FE9uni1FEAuni1FEBuni1FECuni1FEDuni1FEEuni1FEFuni1FF2uni1FF3uni1FF4uni1FF6uni1FF7uni1FF8uni1FF9uni1FFAuni1FFBuni1FFCuni1FFDuni1FFEuni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni200Buni200Cuni200Duni200Euni200Funi2010uni2011 figuredashuni2015uni2016 underscoredbl quotereverseduni201Funi2023onedotenleadertwodotenleaderuni2027uni202Auni202Buni202Cuni202Duni202Euni202Funi2031minuteseconduni2034uni2035uni2036uni2037uni2038uni203B exclamdbluni203Duni203Euni203Funi2040uni2041uni2042uni2043uni2045uni2046uni2047uni2048uni2049uni204Auni204Buni204Cuni204Duni204Euni204Funi2050uni2051uni2052uni2053uni2054uni2055uni2056uni2057uni2058uni2059uni205Auni205Buni205Cuni205Duni205Euni205Funi2060uni2061uni2062uni2063uni2064uni206Auni206Buni206Cuni206Duni206Euni206Funi2070uni2071uni2074uni2075uni2076uni2077uni2078uni2079uni207Auni207Buni207Cuni207Duni207Euni207Funi2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089uni208Auni208Buni208Cuni208Duni208Euni2090uni2091uni2092uni2093uni2094uni20A0 colonmonetaryuni20A2lirauni20A5uni20A6pesetauni20A8uni20A9uni20AAdongEurouni20ADuni20AEuni20AFuni20B0uni20B1uni20B2uni20B3uni20B4uni20B5uni20D0uni20D1uni20D6uni20D7uni20DBuni20DCuni20E1uni2100uni2101uni2102uni2103uni2104uni2105uni2106uni2107uni2108uni2109uni210Buni210Cuni210Duni210Euni210Funi2110Ifrakturuni2112uni2113uni2114uni2115uni2116uni2117 weierstrassuni2119uni211Auni211BRfrakturuni211D prescriptionuni211Funi2120uni2121uni2123uni2124uni2125uni2126uni2127uni2128uni2129uni212Auni212Buni212Cuni212D estimateduni212Funi2130uni2131uni2132uni2133uni2134alephuni2136uni2137uni2138uni2139uni213Auni213Buni213Cuni213Duni213Euni213Funi2140uni2141uni2142uni2143uni2144uni2145uni2146uni2147uni2148uni2149uni214Buni214Eonethird twothirdsuni2155uni2156uni2157uni2158uni2159uni215A oneeighth threeeighths fiveeighths seveneighthsuni215Funi2160uni2161uni2162uni2163uni2164uni2165uni2166uni2167uni2168uni2169uni216Auni216Buni216Cuni216Duni216Euni216Funi2170uni2171uni2172uni2173uni2174uni2175uni2176uni2177uni2178uni2179uni217Auni217Buni217Cuni217Duni217Euni217Funi2180uni2181uni2182uni2183uni2184 arrowleftarrowup arrowright arrowdown arrowboth arrowupdnuni2196uni2197uni2198uni2199uni219Auni219Buni219Cuni219Duni219Euni219Funi21A0uni21A1uni21A2uni21A3uni21A4uni21A5uni21A6uni21A7 arrowupdnbseuni21A9uni21AAuni21ABuni21ACuni21ADuni21AEuni21AFuni21B0uni21B1uni21B2uni21B3uni21B4carriagereturnuni21B6uni21B7uni21B8uni21B9uni21BAuni21BBuni21BCuni21BDuni21BEuni21BFuni21C0uni21C1uni21C2uni21C3uni21C4uni21C5uni21C6uni21C7uni21C8uni21C9uni21CAuni21CBuni21CCuni21CDuni21CEuni21CF arrowdblleft arrowdblup arrowdblright arrowdbldown arrowdblbothuni21D5uni21D6uni21D7uni21D8uni21D9uni21DAuni21DBuni21DCuni21DDuni21DEuni21DFuni21E0uni21E1uni21E2uni21E3uni21E4uni21E5uni21E6uni21E7uni21E8uni21E9uni21EAuni21EBuni21ECuni21EDuni21EEuni21EFuni21F0uni21F1uni21F2uni21F3uni21F4uni21F5uni21F6uni21F7uni21F8uni21F9uni21FAuni21FBuni21FCuni21FDuni21FEuni21FF universaluni2201 existentialuni2204emptysetgradientelement notelementuni220Asuchthatuni220Cuni220Duni220Euni2210uni2213uni2214uni2215uni2216 asteriskmathuni2218uni2219uni221Buni221C proportional orthogonalangleuni2221uni2222uni2223uni2224uni2225uni2226 logicaland logicalor intersectionunionuni222Cuni222Duni222Euni222Funi2230uni2231uni2232uni2233 thereforeuni2235uni2236uni2237uni2238uni2239uni223Auni223Bsimilaruni223Duni223Euni223Funi2240uni2241uni2242uni2243uni2244 congruentuni2246uni2247uni2249uni224Auni224Buni224Cuni224Duni224Euni224Funi2250uni2251uni2252uni2253uni2254uni2255uni2256uni2257uni2258uni2259uni225Auni225Buni225Cuni225Duni225Euni225F equivalenceuni2262uni2263uni2266uni2267uni2268uni2269uni226Auni226Buni226Cuni226Duni226Euni226Funi2270uni2271uni2272uni2273uni2274uni2275uni2276uni2277uni2278uni2279uni227Auni227Buni227Cuni227Duni227Euni227Funi2280uni2281 propersubsetpropersuperset notsubsetuni2285 reflexsubsetreflexsupersetuni2288uni2289uni228Auni228Buni228Cuni228Duni228Euni228Funi2290uni2291uni2292uni2293uni2294 circleplusuni2296circlemultiplyuni2298uni2299uni229Auni229Buni229Cuni229Duni229Euni229Funi22A0uni22A1uni22A2uni22A3uni22A4 perpendicularuni22A6uni22A7uni22A8uni22A9uni22AAuni22ABuni22ACuni22ADuni22AEuni22AFuni22B0uni22B1uni22B2uni22B3uni22B4uni22B5uni22B6uni22B7uni22B8uni22B9uni22BAuni22BBuni22BCuni22BDuni22BEuni22BFuni22C0uni22C1uni22C2uni22C3uni22C4dotmathuni22C6uni22C7uni22C8uni22C9uni22CAuni22CBuni22CCuni22CDuni22CEuni22CFuni22D0uni22D1uni22D2uni22D3uni22D4uni22D5uni22D6uni22D7uni22D8uni22D9uni22DAuni22DBuni22DCuni22DDuni22DEuni22DFuni22E0uni22E1uni22E2uni22E3uni22E4uni22E5uni22E6uni22E7uni22E8uni22E9uni22EAuni22EBuni22ECuni22EDuni22EEuni22EFuni22F0uni22F1uni22F2uni22F3uni22F4uni22F5uni22F6uni22F7uni22F8uni22F9uni22FAuni22FBuni22FCuni22FDuni22FEuni22FFuni2300uni2301houseuni2303uni2304uni2305uni2306uni2307uni2308uni2309uni230Auni230Buni230Cuni230Duni230Euni230F revlogicalnotuni2311uni2318uni2319uni231Cuni231Duni231Euni231F integraltp integralbtuni2324uni2325uni2326uni2327uni2328uni232Buni232Cuni2373uni2374uni2375uni237Auni237Duni2387uni2394uni239Buni239Cuni239Duni239Euni239Funi23A0uni23A1uni23A2uni23A3uni23A4uni23A5uni23A6uni23A7uni23A8uni23A9uni23AAuni23ABuni23ACuni23ADuni23AEuni23CEuni23CFuni23E3uni23E5uni2422uni2423uni2460uni2461uni2462uni2463uni2464uni2465uni2466uni2467uni2468uni2469upblockuni2581uni2582uni2583dnblockuni2585uni2586uni2587blockuni2589uni258Auni258Blfblockuni258Duni258Euni258Frtblockltshadeshadedkshadeuni2594uni2595uni2596uni2597uni2598uni2599uni259Auni259Buni259Cuni259Duni259Euni259F filledboxH22073uni25A2uni25A3uni25A4uni25A5uni25A6uni25A7uni25A8uni25A9H18543H18551 filledrectuni25ADuni25AEuni25AFuni25B0uni25B1triagupuni25B3uni25B4uni25B5uni25B6uni25B7uni25B8uni25B9triagrtuni25BBtriagdnuni25BDuni25BEuni25BFuni25C0uni25C1uni25C2uni25C3triaglfuni25C5uni25C6uni25C7uni25C8uni25C9circleuni25CCuni25CDuni25CEH18533uni25D0uni25D1uni25D2uni25D3uni25D4uni25D5uni25D6uni25D7 invbullet invcircleuni25DAuni25DBuni25DCuni25DDuni25DEuni25DFuni25E0uni25E1uni25E2uni25E3uni25E4uni25E5 openbulletuni25E7uni25E8uni25E9uni25EAuni25EBuni25ECuni25EDuni25EEuni25EFuni25F0uni25F1uni25F2uni25F3uni25F4uni25F5uni25F6uni25F7uni25F8uni25F9uni25FAuni25FBuni25FCuni25FDuni25FEuni25FFuni2600uni2601uni2602uni2603uni2604uni2605uni2606uni2607uni2608uni2609uni260Auni260Buni260Cuni260Duni260Euni260Funi2610uni2611uni2612uni2613uni2614uni2615uni2616uni2617uni2618uni2619uni261Auni261Buni261Cuni261Duni261Euni261Funi2620uni2621uni2622uni2623uni2624uni2625uni2626uni2627uni2628uni2629uni262Auni262Buni262Cuni262Duni262Euni262Funi2630uni2631uni2632uni2633uni2634uni2635uni2636uni2637uni2638uni2639 smileface invsmilefacesununi263Duni263Euni263Ffemaleuni2641maleuni2643uni2644uni2645uni2646uni2647uni2648uni2649uni264Auni264Buni264Cuni264Duni264Euni264Funi2650uni2651uni2652uni2653uni2654uni2655uni2656uni2657uni2658uni2659uni265Auni265Buni265Cuni265Duni265Euni265Fspadeuni2661uni2662clubuni2664heartdiamonduni2667uni2668uni2669 musicalnotemusicalnotedbluni266Cuni266Duni266Euni266Funi2670uni2671uni2672uni2673uni2674uni2675uni2676uni2677uni2678uni2679uni267Auni267Buni267Cuni267Duni267Euni267Funi2680uni2681uni2682uni2683uni2684uni2685uni2686uni2687uni2688uni2689uni268Auni268Buni268Cuni268Duni268Euni268Funi2690uni2691uni2692uni2693uni2694uni2695uni2696uni2697uni2698uni2699uni269Auni269Buni269Cuni26A0uni26A1uni26A2uni26A3uni26A4uni26A5uni26A6uni26A7uni26A8uni26A9uni26AAuni26ABuni26ACuni26ADuni26AEuni26AFuni26B0uni26B1uni26B2uni26B3uni26B4uni26B5uni26B6uni26B7uni26B8uni2701uni2702uni2703uni2704uni2706uni2707uni2708uni2709uni270Cuni270Duni270Euni270Funi2710uni2711uni2712uni2713uni2714uni2715uni2716uni2717uni2718uni2719uni271Auni271Buni271Cuni271Duni271Euni271Funi2720uni2721uni2722uni2723uni2724uni2725uni2726uni2727uni2729uni272Auni272Buni272Cuni272Duni272Euni272Funi2730uni2731uni2732uni2733uni2734uni2735uni2736uni2737uni2738uni2739uni273Auni273Buni273Cuni273Duni273Euni273Funi2740uni2741uni2742uni2743uni2744uni2745uni2746uni2747uni2748uni2749uni274Auni274Buni274Duni274Funi2750uni2751uni2752uni2756uni2758uni2759uni275Auni275Buni275Cuni275Duni275Euni2761uni2762uni2763uni2764uni2765uni2766uni2767uni2768uni2769uni276Auni276Buni276Cuni276Duni276Euni276Funi2770uni2771uni2772uni2773uni2774uni2775uni2776uni2777uni2778uni2779uni277Auni277Buni277Cuni277Duni277Euni277Funi2780uni2781uni2782uni2783uni2784uni2785uni2786uni2787uni2788uni2789uni278Auni278Buni278Cuni278Duni278Euni278Funi2790uni2791uni2792uni2793uni2794uni2798uni2799uni279Auni279Buni279Cuni279Duni279Euni279Funi27A0uni27A1uni27A2uni27A3uni27A4uni27A5uni27A6uni27A7uni27A8uni27A9uni27AAuni27ABuni27ACuni27ADuni27AEuni27AFuni27B1uni27B2uni27B3uni27B4uni27B5uni27B6uni27B7uni27B8uni27B9uni27BAuni27BBuni27BCuni27BDuni27BEuni27C5uni27C6uni27E0uni27E6uni27E7uni27E8uni27E9uni27EAuni27EBuni27F0uni27F1uni27F2uni27F3uni27F4uni27F5uni27F6uni27F7uni27F8uni27F9uni27FAuni27FBuni27FCuni27FDuni27FEuni27FFuni2800uni2801uni2802uni2803uni2804uni2805uni2806uni2807uni2808uni2809uni280Auni280Buni280Cuni280Duni280Euni280Funi2810uni2811uni2812uni2813uni2814uni2815uni2816uni2817uni2818uni2819uni281Auni281Buni281Cuni281Duni281Euni281Funi2820uni2821uni2822uni2823uni2824uni2825uni2826uni2827uni2828uni2829uni282Auni282Buni282Cuni282Duni282Euni282Funi2830uni2831uni2832uni2833uni2834uni2835uni2836uni2837uni2838uni2839uni283Auni283Buni283Cuni283Duni283Euni283Funi2840uni2841uni2842uni2843uni2844uni2845uni2846uni2847uni2848uni2849uni284Auni284Buni284Cuni284Duni284Euni284Funi2850uni2851uni2852uni2853uni2854uni2855uni2856uni2857uni2858uni2859uni285Auni285Buni285Cuni285Duni285Euni285Funi2860uni2861uni2862uni2863uni2864uni2865uni2866uni2867uni2868uni2869uni286Auni286Buni286Cuni286Duni286Euni286Funi2870uni2871uni2872uni2873uni2874uni2875uni2876uni2877uni2878uni2879uni287Auni287Buni287Cuni287Duni287Euni287Funi2880uni2881uni2882uni2883uni2884uni2885uni2886uni2887uni2888uni2889uni288Auni288Buni288Cuni288Duni288Euni288Funi2890uni2891uni2892uni2893uni2894uni2895uni2896uni2897uni2898uni2899uni289Auni289Buni289Cuni289Duni289Euni289Funi28A0uni28A1uni28A2uni28A3uni28A4uni28A5uni28A6uni28A7uni28A8uni28A9uni28AAuni28ABuni28ACuni28ADuni28AEuni28AFuni28B0uni28B1uni28B2uni28B3uni28B4uni28B5uni28B6uni28B7uni28B8uni28B9uni28BAuni28BBuni28BCuni28BDuni28BEuni28BFuni28C0uni28C1uni28C2uni28C3uni28C4uni28C5uni28C6uni28C7uni28C8uni28C9uni28CAuni28CBuni28CCuni28CDuni28CEuni28CFuni28D0uni28D1uni28D2uni28D3uni28D4uni28D5uni28D6uni28D7uni28D8uni28D9uni28DAuni28DBuni28DCuni28DDuni28DEuni28DFuni28E0uni28E1uni28E2uni28E3uni28E4uni28E5uni28E6uni28E7uni28E8uni28E9uni28EAuni28EBuni28ECuni28EDuni28EEuni28EFuni28F0uni28F1uni28F2uni28F3uni28F4uni28F5uni28F6uni28F7uni28F8uni28F9uni28FAuni28FBuni28FCuni28FDuni28FEuni28FFuni2906uni2907uni290Auni290Buni2940uni2941uni2983uni2984uni29CEuni29CFuni29D0uni29D1uni29D2uni29D3uni29D4uni29D5uni29EBuni29FAuni29FBuni2A00uni2A01uni2A02uni2A0Cuni2A0Duni2A0Euni2A0Funi2A10uni2A11uni2A12uni2A13uni2A14uni2A15uni2A16uni2A17uni2A18uni2A19uni2A1Auni2A1Buni2A1Cuni2A2Funi2A7Duni2A7Euni2A7Funi2A80uni2A81uni2A82uni2A83uni2A84uni2A85uni2A86uni2A87uni2A88uni2A89uni2A8Auni2A8Buni2A8Cuni2A8Duni2A8Euni2A8Funi2A90uni2A91uni2A92uni2A93uni2A94uni2A95uni2A96uni2A97uni2A98uni2A99uni2A9Auni2A9Buni2A9Cuni2A9Duni2A9Euni2A9Funi2AA0uni2AAEuni2AAFuni2AB0uni2AB1uni2AB2uni2AB3uni2AB4uni2AB5uni2AB6uni2AB7uni2AB8uni2AB9uni2ABAuni2AF9uni2AFAuni2B00uni2B01uni2B02uni2B03uni2B04uni2B05uni2B06uni2B07uni2B08uni2B09uni2B0Auni2B0Buni2B0Cuni2B0Duni2B0Euni2B0Funi2B10uni2B11uni2B12uni2B13uni2B14uni2B15uni2B16uni2B17uni2B18uni2B19uni2B1Auni2B1Funi2B20uni2B21uni2B22uni2B23uni2B24uni2B53uni2B54uni2C60uni2C61uni2C62uni2C63uni2C64uni2C65uni2C66uni2C67uni2C68uni2C69uni2C6Auni2C6Buni2C6Cuni2C6Duni2C6Euni2C6Funi2C71uni2C72uni2C73uni2C74uni2C75uni2C76uni2C77uni2C79uni2C7Auni2C7Buni2C7Cuni2C7Duni2D30uni2D31uni2D32uni2D33uni2D34uni2D35uni2D36uni2D37uni2D38uni2D39uni2D3Auni2D3Buni2D3Cuni2D3Duni2D3Euni2D3Funi2D40uni2D41uni2D42uni2D43uni2D44uni2D45uni2D46uni2D47uni2D48uni2D49uni2D4Auni2D4Buni2D4Cuni2D4Duni2D4Euni2D4Funi2D50uni2D51uni2D52uni2D53uni2D54uni2D55uni2D56uni2D57uni2D58uni2D59uni2D5Auni2D5Buni2D5Cuni2D5Duni2D5Euni2D5Funi2D60uni2D61uni2D62uni2D63uni2D64uni2D65uni2D6Funi2E18uni2E22uni2E23uni2E24uni2E25uni2E2Euni4DC0uni4DC1uni4DC2uni4DC3uni4DC4uni4DC5uni4DC6uni4DC7uni4DC8uni4DC9uni4DCAuni4DCBuni4DCCuni4DCDuni4DCEuni4DCFuni4DD0uni4DD1uni4DD2uni4DD3uni4DD4uni4DD5uni4DD6uni4DD7uni4DD8uni4DD9uni4DDAuni4DDBuni4DDCuni4DDDuni4DDEuni4DDFuni4DE0uni4DE1uni4DE2uni4DE3uni4DE4uni4DE5uni4DE6uni4DE7uni4DE8uni4DE9uni4DEAuni4DEBuni4DECuni4DEDuni4DEEuni4DEFuni4DF0uni4DF1uni4DF2uni4DF3uni4DF4uni4DF5uni4DF6uni4DF7uni4DF8uni4DF9uni4DFAuni4DFBuni4DFCuni4DFDuni4DFEuni4DFFuniA644uniA645uniA646uniA647uniA64CuniA64DuniA650uniA651uniA654uniA655uniA656uniA657uniA662uniA663uniA664uniA665uniA666uniA667uniA668uniA669uniA66AuniA66BuniA66CuniA66DuniA66EuniA68AuniA68BuniA68CuniA68DuniA694uniA695uniA708uniA709uniA70AuniA70BuniA70CuniA70DuniA70EuniA70FuniA710uniA711uniA712uniA713uniA714uniA715uniA716uniA71BuniA71CuniA71DuniA71EuniA71FuniA726uniA727uniA728uniA729uniA72AuniA72BuniA730uniA731uniA732uniA733uniA734uniA735uniA736uniA737uniA738uniA739uniA73AuniA73BuniA73CuniA73DuniA73EuniA73FuniA746uniA747uniA748uniA749uniA74AuniA74BuniA74EuniA74FuniA780uniA781uniA782uniA783uniA789uniA78AuniA78BuniA78CuniA7FBuniA7FCuniA7FDuniA7FEuniA7FFuniF6C5uniFB00uniFB03uniFB04uniFB05uniFB06uniFB13uniFB14uniFB15uniFB16uniFB17uniFB1DuniFB1EuniFB1FuniFB20uniFB21uniFB22uniFB23uniFB24uniFB25uniFB26uniFB27uniFB28uniFB29uniFB2AuniFB2BuniFB2CuniFB2DuniFB2EuniFB2FuniFB30uniFB31uniFB32uniFB33uniFB34uniFB35uniFB36uniFB38uniFB39uniFB3AuniFB3BuniFB3CuniFB3EuniFB40uniFB41uniFB43uniFB44uniFB46uniFB47uniFB48uniFB49uniFB4AuniFB4BuniFB4CuniFB4DuniFB4EuniFB4FuniFB52uniFB53uniFB54uniFB55uniFB56uniFB57uniFB58uniFB59uniFB5AuniFB5BuniFB5CuniFB5DuniFB5EuniFB5FuniFB60uniFB61uniFB62uniFB63uniFB64uniFB65uniFB66uniFB67uniFB68uniFB69uniFB6AuniFB6BuniFB6CuniFB6DuniFB6EuniFB6FuniFB70uniFB71uniFB72uniFB73uniFB74uniFB75uniFB76uniFB77uniFB78uniFB79uniFB7AuniFB7BuniFB7CuniFB7DuniFB7EuniFB7FuniFB80uniFB81uniFB8AuniFB8BuniFB8CuniFB8DuniFB8EuniFB8FuniFB90uniFB91uniFB92uniFB93uniFB94uniFB95uniFB9EuniFB9FuniFBD9uniFBDAuniFBE8uniFBE9uniFBFCuniFBFDuniFBFEuniFBFFuniFE00uniFE01uniFE02uniFE03uniFE04uniFE05uniFE06uniFE07uniFE08uniFE09uniFE0AuniFE0BuniFE0CuniFE0DuniFE0EuniFE0FuniFE20uniFE21uniFE22uniFE23uniFE70uniFE71uniFE72uniFE73uniFE74uniFE76uniFE77uniFE78uniFE79uniFE7AuniFE7BuniFE7CuniFE7DuniFE7EuniFE7FuniFE80uniFE81uniFE82uniFE83uniFE84uniFE85uniFE86uniFE87uniFE88uniFE89uniFE8AuniFE8BuniFE8CuniFE8DuniFE8EuniFE8FuniFE90uniFE91uniFE92uniFE93uniFE94uniFE95uniFE96uniFE97uniFE98uniFE99uniFE9AuniFE9BuniFE9CuniFE9DuniFE9EuniFE9FuniFEA0uniFEA1uniFEA2uniFEA3uniFEA4uniFEA5uniFEA6uniFEA7uniFEA8uniFEA9uniFEAAuniFEABuniFEACuniFEADuniFEAEuniFEAFuniFEB0uniFEB1uniFEB2uniFEB3uniFEB4uniFEB5uniFEB6uniFEB7uniFEB8uniFEB9uniFEBAuniFEBBuniFEBCuniFEBDuniFEBEuniFEBFuniFEC0uniFEC1uniFEC2uniFEC3uniFEC4uniFEC5uniFEC6uniFEC7uniFEC8uniFEC9uniFECAuniFECBuniFECCuniFECDuniFECEuniFECFuniFED0uniFED1uniFED2uniFED3uniFED4uniFED5uniFED6uniFED7uniFED8uniFED9uniFEDAuniFEDBuniFEDCuniFEDDuniFEDEuniFEDFuniFEE0uniFEE1uniFEE2uniFEE3uniFEE4uniFEE5uniFEE6uniFEE7uniFEE8uniFEE9uniFEEAuniFEEBuniFEECuniFEEDuniFEEEuniFEEFuniFEF0uniFEF1uniFEF2uniFEF3uniFEF4uniFEF5uniFEF6uniFEF7uniFEF8uniFEF9uniFEFAuniFEFBuniFEFCuniFEFFuniFFF9uniFFFAuniFFFBuniFFFCuniFFFDu1D300u1D301u1D302u1D303u1D304u1D305u1D306u1D307u1D308u1D309u1D30Au1D30Bu1D30Cu1D30Du1D30Eu1D30Fu1D310u1D311u1D312u1D313u1D314u1D315u1D316u1D317u1D318u1D319u1D31Au1D31Bu1D31Cu1D31Du1D31Eu1D31Fu1D320u1D321u1D322u1D323u1D324u1D325u1D326u1D327u1D328u1D329u1D32Au1D32Bu1D32Cu1D32Du1D32Eu1D32Fu1D330u1D331u1D332u1D333u1D334u1D335u1D336u1D337u1D338u1D339u1D33Au1D33Bu1D33Cu1D33Du1D33Eu1D33Fu1D340u1D341u1D342u1D343u1D344u1D345u1D346u1D347u1D348u1D349u1D34Au1D34Bu1D34Cu1D34Du1D34Eu1D34Fu1D350u1D351u1D352u1D353u1D354u1D355u1D356u1D538u1D539u1D53Bu1D53Cu1D53Du1D53Eu1D540u1D541u1D542u1D543u1D544u1D546u1D54Au1D54Bu1D54Cu1D54Du1D54Eu1D54Fu1D550u1D552u1D553u1D554u1D555u1D556u1D557u1D558u1D559u1D55Au1D55Bu1D55Cu1D55Du1D55Eu1D55Fu1D560u1D561u1D562u1D563u1D564u1D565u1D566u1D567u1D568u1D569u1D56Au1D56Bu1D5D4u1D5D5u1D5D6u1D5D7u1D5D8u1D5D9u1D5DAu1D5DBu1D5DCu1D5DDu1D5DEu1D5DFu1D5E0u1D5E1u1D5E2u1D5E3u1D5E4u1D5E5u1D5E6u1D5E7u1D5E8u1D5E9u1D5EAu1D5EBu1D5ECu1D5EDu1D5EEu1D5EFu1D5F0u1D5F1u1D5F2u1D5F3u1D5F4u1D5F5u1D5F6u1D5F7u1D5F8u1D5F9u1D5FAu1D5FBu1D5FCu1D5FDu1D5FEu1D5FFu1D600u1D601u1D602u1D603u1D604u1D605u1D606u1D607u1D756u1D757u1D758u1D759u1D75Au1D75Bu1D75Cu1D75Du1D75Eu1D75Fu1D760u1D761u1D762u1D763u1D764u1D765u1D766u1D767u1D768u1D769u1D76Au1D76Bu1D76Cu1D76Du1D76Eu1D76Fu1D770u1D771u1D772u1D773u1D774u1D775u1D776u1D777u1D778u1D779u1D77Au1D77Bu1D77Cu1D77Du1D77Eu1D77Fu1D780u1D781u1D782u1D783u1D784u1D785u1D786u1D787u1D788u1D789u1D78Au1D78Bu1D78Cu1D78Du1D78Eu1D78Fu1D7D8u1D7D9u1D7DAu1D7DBu1D7DCu1D7DDu1D7DEu1D7DFu1D7E0u1D7E1u1D7ECu1D7EDu1D7EEu1D7EFu1D7F0u1D7F1u1D7F2u1D7F3u1D7F4u1D7F5 dlLtcaronDieresisAcuteTildeGrave CircumflexCaronBreve Dotaccent Hungarumlaut Doublegrave arabic_dot arabic_2dots arabic_3dotsarabic_3dots_aarabic_2dots_a arabic_4dots uni066E.fina uni066E.init uni066E.medi uni06A1.fina uni06A1.init uni06A1.medi uni066F.fina uni066F.init uni066F.medi uni06BA.init uni06BA.medi arabic_ring uni067C.fina uni067C.init uni067C.medi uni067D.fina uni067D.init uni067D.medi uni0681.fina uni0681.init uni0681.medi uni0682.fina uni0682.init uni0682.medi uni0685.fina uni0685.init uni0685.medi uni06BF.fina uni06BF.init uni06BF.mediarabic_gaf_bar uni0311.caseEng.altuni0268.dotlessuni029D.dotless uni03080304 uni03040308 uni03070304 uni03080301 uni03080300 uni03040301 uni03040300 uni03030304 uni0308030C uni03030308 uni030C0307 uni03030301 uni03020301 uni03020300 uni03020303 uni03060303 uni03060301 uni03060300 uni03060309 uni03020309 uni03010307 brailledotJ.alt uni0695.finauniFEAE.fina.longstart uni06B5.fina uni06B5.init uni06B5.medi uni06CE.fina uni06CE.init uni06CE.medi uni0692.final.alt uni06D5.finauni0478.monographuni0479.monographiogonek.dotlessuni2148.dotlessuni2149.dotlessuni1E2D.dotlessuni1ECB.dotlesscdoI.alt arrow.base uni0651064B uni0651064C uni064B0651 uni0651064E uni0651064F uni064E0651 uni0654064E uni0654064F uni07CA.fina uni07CA.medi uni07CA.init uni07CB.fina uni07CB.medi uni07CB.init uni07CC.fina uni07CC.medi uni07CC.init uni07CD.fina uni07CD.medi uni07CD.init uni07CE.fina uni07CE.medi uni07CE.init uni07CF.fina uni07CF.medi uni07CF.init uni07D0.fina uni07D0.medi uni07D0.init uni07D1.fina uni07D1.medi uni07D1.init uni07D2.fina uni07D2.medi uni07D2.init uni07D3.fina uni07D3.medi uni07D3.init uni07D4.fina uni07D4.medi uni07D4.init uni07D5.fina uni07D5.medi uni07D5.init uni07D6.fina uni07D6.medi uni07D6.init uni07D7.fina uni07D7.medi uni07D7.init uni07D8.fina uni07D8.medi uni07D8.init uni07D9.fina uni07D9.medi uni07D9.init uni07DA.fina uni07DA.medi uni07DA.init uni07DB.fina uni07DB.medi uni07DB.init uni07DC.fina uni07DC.medi uni07DC.init uni07DD.fina uni07DD.medi uni07DD.init uni07DE.fina uni07DE.medi uni07DE.init uni07DF.fina uni07DF.medi uni07DF.init uni07E0.fina uni07E0.medi uni07E0.init uni07E1.fina uni07E1.medi uni07E1.init uni07E2.fina uni07E2.medi uni07E2.init uni07E3.fina uni07E3.medi uni07E3.init uni07E4.fina uni07E4.medi uni07E4.init uni07E5.fina uni07E5.medi uni07E5.init uni07E6.fina uni07E6.medi uni07E6.init uni07E7.fina uni07E7.medi uni07E7.init Ringabove uni2630.alt uni2631.alt uni2632.alt uni2633.alt uni2634.alt uni2635.alt uni2636.alt uni2637.alt uni047E.diacuni048a.brevelessuni048B.brevelessy.alt uni02E5.5 uni02E6.5 uni02E7.5 uni02E8.5 uni02E9.5 uni02E5.4 uni02E6.4 uni02E7.4 uni02E8.4 uni02E9.4 uni02E5.3 uni02E6.3 uni02E7.3 uni02E8.3 uni02E9.3 uni02E5.2 uni02E6.2 uni02E7.2 uni02E8.2 uni02E9.2 uni02E5.1 uni02E6.1 uni02E7.1 uni02E8.1 uni02E9.1stemA&%$!:$#"!:"!: d}}      Y    & Y @ &  .A@}>,,G}G  @ 2 d۠d%%%   %ё%Д #&̑ɻ]ɻɀ@%]@%dĐ::2  }& @ ]%]@..@   K%%%2 ~}|{zywvwvututsr}qpo,o,nmlkjihc h2gf2ed ed d@cb c b a`a``_ ^]\\[Z[ZZYXWV@VUTSRQRQQPOPONONMLKLKJKJIJIHGFGFEDCDCBA%BAA%@?@?>?>=< =< ;d:987656%54554 4432 33@2 10100/ .-,:-,%,:+d*d)(''& %$#@+$#" "!!@  %@ K}K%%dd   2     @   @d  d++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++libphone-ui-shr-0.1+git20130901/data/DejaVuSans.ttf000066400000000000000000022773101221067027500214270ustar00rootroot000000000000000FFTMSH<GDEF]XXGPOS/GSUBN֘LOS/2!r Vcmap .cvt i9<fpgmq4vj<gasp glyfCĀheadt6hhea $hmtxv~Uhkernk/6i8<~locaJfUlmaxpqj$ namehMjD=postL3Lprep; y`heƼHƼH$W           "##$HIIJLMQRpq|}     "#     ; < < = I J P Q Q R U V W X o p q r   ~!"qr|}2334Y \DFLTzarabarmnbraicanschercyrlgeorgrekhanihebrkana*lao 6latnFmathnko ogamrunrtfngthaiKUR SND URD MKD SRB 4ISM 4KSM 4LSM 4MOL 4NSM 4ROM 4SKS 4SSM 4 kern8kern>markFmarkTmark\markdmkmkjmkmkrmkmkx    "*2:BLT\dlt|x8  8 >/024<7j7:I`j0&:  sv{sv{ &,28>DJPV\bhntz::::r 4 4 `Iqrtuwxyz|Iqrtuwxyz|JPV\bhntz$ l N>X  &,lwlwlwfn " &,28l`l~l~l`l~l`Z& #HNTZ`flrx~tt;888  !"    ! "(.4:@FB :v| $*06<BHNTZ`flrx~hhh=DhhhDhh=DDnnnnhh   !# J P)rr0tt1v|2339  J P%r|,3378 $*06<BHNTZ`flrx~ &,{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ $6HZl~ cj cj cj cj c c cj cj#sv{>DJPV\bhntz*  &,28>DJPV\bhntz "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z     " ( . 4 : @ F L R X ^ d j p v |     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z  "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~{U:t!N8'Qn ppjjj,v,,vjj  XXXXD[j[j, 8 8>>j pjjj^jj,,,,,,,     8 8 8 j j>>, ppjI^`k/#eYYYcP`{U:tii!NQnU!Q{++++++jj++jj++jj++ 8 8jj 8 8jj,,X X ,,XX,,X X ,,X X      j j,j,j j j,j,j>  ++pp++,,,, ,,,,,,,,,,2  pp++pp++jjjj++jj++,,XX,,XX,,XXjjjj    XXjjXXjjXX&j&jXX&j&j[j[jSjSj[j[jSjSjXX 8 8jjjj 8 8,j,j>>SS&j&j>++jjj  pp++j++ 8jjjj++^++j++,XX,XX,XX,X X   >SSp++ jIII^^^```kkk///###eeeYYYYYYYYY$AMpBDcs~2#sv{BHNTZ`flrx~F 'PV\bhntz "(.4U0+0008q00800i00E0 0100000P=i0v00v00d000UU8000U $*,022 45 78:> "0 $6HZl~ cr cr cr cr cr cr cr crIqrtuwxyz|RX^djpv|``& b lrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z     " ( . 4 : @ F L R X ^ d j p v |     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z R``S`4rrLRLX X X X [r[r~x,LLRLLRLxLLLxx4RI^`n#YYY`R``S`++++++LL++LL++++LL@LL@XXXXXXXXxxxxxx++XV++,,,:,,,,:,:,,,,,:,:LrrX+F+Frr++L&LRR++LL++XXXXX~X~X X X X RRX X & & X X &&[r[rSrSr[r[rSrSr~~x~x~LLFLRFSrSrR&R&R++R&RL XVX++++LLRL++R++++XXXxXxXxXxX~X~4S4S4++&RIII^^^```nnn###YYYYYYYYY%%//88Mp')Hfghij4?QZ2[Iqrtuwxyz|rx~`{{{{{{{{` <BHNTZ`flrx~]xx@[")@>E"~~x2x::-."> @FLRX^djpv|]kxyyyxyz[f"w)h>yEy`P["~[~t`zxy2{`uxJJ::++-.   !" 28>DJPV\bhnttbbbbt`~~`~` Z R   !"# $*06<BHNTZ Y &,28>DJPV\bhntz "(.4:@FLRX^djpv| $=D]468QT9Zd=grHw{T D6L  $Js}- {{8> 7pv| $*06<BHNTZ`flrx~L/'s.}////////s}/////s{y5D;/}R7$&(,268DFHLRVX-* [\]^klz?   $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z     " ( . 4 : @ F L R X ^ d j p v | L\/.Rs''}srJf;RRsRR%}^Gb`R////}}J////Rs}f7R/'z`RR///.RR'}r`RTTRTcRRJ@@RjRjRbRb}RRRRRRRR}R555RRaRt;Q'RRRRRRR}}^G^dRRR::R'aHRR_R:RGR R~RJ}'/'}'}^TTT@X}Tg^GX^//LBRRf,4$R'_zRf4L}`ReT'sR^G^5s/RRwRRJV1vvvR;nR RRL5s/<\R&Rx9\wR}RO$= D]$>BCHIJKRT  UV--WEEXNNYTTZYY[aa\ll]vv^{{_`bf iJqLmFFIILL""3366|}346;>FJNRW S S [ ^ ` b e e h m t t x x | }      ~ ~ "36QT7VW;Yd=grIw{UZ&&m((n]foy{|}??~   !"# $*06<BHNTZn 6ntz "(.4:@FNT\bjpv| $*06<BHNTZ`flrx~ &,28>DJPV\bhntz &,28>DJPV\bhntz     " ( . 4 : @ F L R X ^ d j p v |      & , 2 8 > D J P V \ b h n t z     " ( . 4 : @ F L R X ^ d j p v |     $ * 0 6 < B H N T Z ` f l r x ~      & , 2 8 > D J P V \ b h n t z  "*06<BHNTZ`fntz "(.4:@FLRX^djpv|  &,28>DJPV\bhntz &,28>DJPV\bhntzL\/.*s''}srJ{#{{;j{//{{s{ {o{{'{}{^{G{b{`{{'{{}}{Q{{{{}{\LX;\//''{ssr`{{{'{{{./'}{r`{{T{{{{c{R{R{J|@{@{{{jj{{b{b{}{/{{{{{{{{}{{{3{33{^{a{p{{;{Q{'{{{}{}{^{G{^d{{{{{::'a{H{{/{{j:{G{ J{~^{}J|E{}{{{{E}{p{{t{}{j{{{b{{^{~~{}{t{^{{{{/'{{{H/rtOs}s'LsoqGGYNsT{a{E{{{{@{{t{{{{}{{{{T{`{kb{{K{{{{{{{{t{{'{///{{4{^{c{s{"{O{,s{O{%'}{{{O{t{t{e{sK{{{{'}{E{b{{{{^{{{T{{TT{{@{{{{{}{{{{{{{{{T{g{b{^{G{{{{^{{LBRf,4${' _zf4DL}1{`{e**}T{{'s^{G{^{{{3s{{/ {0{{{{'l{n{T{T{wJ{{{1{{v{vqv{*\;{n{{{L5s/<\&Rx9{\{w{{{{{}{m$= D]$>?ABCDFG  HI55JBBKEELHIMNNOPPPRVQXYV[]X__[aa\ff]ij^lp`txe{{jkl pJxLmE]deiikkmmooww.DL ["#a*+c.6e@@nMMoXXp^^qbbr|}suvxyz3;{>GJNQW[[ S S [ ^ ` b e e h m t t x x | }      ~ ~$'*02588::QTVWYdgrw{ && ((!]f",/0124??5  "#( J P.r|533@A$*06>FLRX`flrx~ &,28>FNTZ`flrx~{{{{{{{{{{{{{{{{{{orr{r{{{{{{{{{{{{{{A{{{{{{{{{{{{{{ {{{{{{{{{{{{{{&!0#5PKr9KD &&K9a}au9aauaau/&DaDDkkDDDDkDD)ak}/DDa9}D}&&9}k}k}&D aDY}aaauNaaau}}k}ka aakkAk&k}}DHVaD)kkDN9a}au9aau/9a}au9aau/9a}au9aau/&kD&9a}au9aau/9a}a9aa/D?}DVD aDKr9KD &&Kk}k&/<&O$$%%&&''))**++-- .. // 22 33 445566778899::;;<<==HHIINNQQRRUUYYZZ[[ \\!mm"}}#$%&%'( )*+!!,,-((. /  0  ""&&100::?? 2 3 4$$%%&&''))** ++-- ./22 3344 5566 778899::;;<<==DDFFGGHHIIJKLLOOPPQQRRTTUUVV WW!XX"YY#ZZ$[[%\\&mm'}}()* ++,,-../"/&&010101234352678888393:;;  3<3<=<;    !! "" ## $$>%%5&&''!((?++@--@//@0011"33@55@66A77B88C99D::??4EFEF G43H4IJ H HA I IK J JL K KB L LA M MB C D M N O^$%&')*+-./23456789:;<=HINQRUYZ[\m}  "&0:? `$XAYAEGKMQ SW .DFLTzarabarmnbraicanschercyrlgeorgrek"hani2hebr>kanaPlao \latnhmathnko ogamrunrtfng thaiKUR SND (URD (  MKD SRB  4ISM FKSM FLSM FMOL ZNSM FROM ZSKS FSSM F    aaltaaltaaltccmpccmpccmpccmpdligdligdligfinafinahlighliginitinit ligaligalocl locl&locl,medi2medi8rlig>rligHsaltPsaltVsalt\     'PX`h "*2:BJRZbjrzJ\ nvX               p   *  H   R !$% B6##66>9LM *_ J K L M i$=EEGGIIKKLMNOWW      ""$$&&((**,,..0022446688:;==??AAHHRRTTVV  **__  J M &   &$$4F!!$$4F""$$4F##$$4F$$$$4F%%(0AD&.6EEGI&.6JKMN&.6OQSS&(0TW&v6Pblv",6PZd        $%&'()*,-./024578:;<=>A B  !$'*-0D$&(*,0268<@DHLNPRTX\`dhlptx|Megp#%B  "%(+.1l3.4:>BFJVZ^bfjnrvz~ QQSSUY^egmop)1B  #&),/2l3-39=AEIUY]aeimquy} QQSSUY^egmop)12  ww vssvw~&8Jlww zw zw utrq utqrtuwz 00> $*&$*&$J 8 "(IOILOLI OLIRl$*06< xwvutsrqP{NzMy &,!xwvutqOzQzRfnp0$B 8  WVWA(:FPZfr "   " $; <V p0 q(/ QF WX VR")567DF o ogfhdeji#9?FLTZgfhdeji#9?FLTZ,-DO *"&?,-DO\  X6 usvtyzr3{w|x  ! LM *_ YYYYY33f . `)PfEd@ m`,$, x~OSXZbw~%V_  :UZot?5JR>PjGv#.[jx{EMWY[]} ' d q ! !I!K!N!###!#(#,#u#z#}######$#$i&&'' '''K'M'R'V'^''''''()) )A))))***/***++$+T,o,w,}-e-o..%..MGMQWn+?KO6<>ADO#t QWZ\pz 1Ya  !@Z`ty? 7LT@RtFn&0]w{ HPY[]_ * j t !! !K!N!S!###$#+#s#z#}######$"$`%&''' ')'M'O'V'X'a'''''')) )@))))** */*}**+++S,`,q,y-0-o.."..MDLPTb&0FN8>@CFR pv^\TO>=<4/,+&" mljiga`_^][ZYWVUSQ~}|zyqpofbY+)320/." zvsoQPOMI>8642\ ?><;:96530/) A,gb^0%$#qhkkkkkkkk5k1k+k'k!kjjj|"|snmlkjig_W ~bOQSWXZZ\bpwz~"#7 %1VY_a "$?D  F  HIJK!:L@UfZZ|`o}tty??#-/U 57JLRT:e>@PRjt  FG nv 3#H&.V0[_]jwx{{ d   E HM PW YY [[ ]] _}  2 g v    ' * d j q t  / 4 J L N P!! Q! !I [!K!K !N!N !S! !# ## P##! R#$#( X#+#, ]#s#u _#z#z b#}#} c## d## e## f## z## |## }$"$# ~$`$i %& &&'''@'' D' ''H')'Kd'M'M'O'R'V'V'X'^'a''''''''''''())) )  )@)A )) ))))))*** **/*/.*}*/**S**`++b++$}+S+T,`,o,q,w,y,}-0-e-o-o...".%....MMDGLM"PQ$TW&bn*7;=L&+Q0?WFKgNOmosw|~68<>>@ACDFOR #ptvV89;>@DFFJPRkՠ)]   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a rdei xpk rvj \s gw @ O MT il|=cn XT Dm} b T: @  y qz5fqu-J3T99NR7s`s3VV9s3D{o{RoHT3fs +b-{T#\q#H99`#fy```{w``b{{Rffw;{J/}oo5jo{-{T7fD)fs, %Id@QX Y!-,%Id@QX Y!-,  P y PXY%%# P y PXY%-,KPX EDY!-,%E`D-,KSX%%EDY!!-,ED-,%%I%%I` ch #:e:-ff@ /10!%!!fsr)5 5@ K TX8Y<2991/0 P ]%3#3#5qeB@KTKT[X8Y1<20@0 @ P ` p ]#!#o$++`@1      91/<<<<<<<2220@   ]!! !3!!!!#!#!5!!5!T%Dh$ig8R>hggh`TifaabbNm!(/@U" '&( /)/))/B" ) *!#*- ) " & 0K TX8YK TKT[KT[X@8Y<<<1/299990KSX99Y"#.'5.546753.'>54&dijfod]SS\dtzq{---@A$*.U# jXV`OnZXhq) #'3@6$%&%&'$'B .$ &($4'!%   ! + 1 4K TK T[K T[KT[KT[K T[X18Y9912<0KSXY""32654&'2#"&546"32654&%3#2#"&546WccWUccUVcbWWcd1Zܻۻa ۻۼ 0@      !         B  (('+'$ .  .'.'!!199999991/9990KSX99999999Y"2]@ " ) **&:4D ^YZ UZZY0g{ "-  ' (   2'') #**(/2; 49?2J LKFO2VZ Y UY\_2j i`2uy z 2229]]3267 >73#'#"5467.54632.#"[UԠ_I{;B h]hΆ02޸SUWDi;#QX?@Yr~YW׀c?}<$$/1oX3go7@ KTKT[X8Y10@ @P`p]#o+{ 7@  KTX 8YKTX @8Y29910#&547{>;o @ <99103#654<:=JN@,       <2<2991<22990 %#'-73%g:r:g:PrPbybcy #@   <<1/<<0!!#!5!-Ө-Ӫ--@ 1073#ӤR@d10!!d1/073#B-@B/9910KSXY"3#m #@  10"32'2#"  P3343ssyzZ @@B  KTX@8Y1/20KSXY"]7!5%3!!JeJsHHժJ@'B   KTKT[KT[X8Y91/20KSX9Y"@2UVVzzvtvust]]%!!567>54&#"5>32Ls3aM_xzXE[w:mIwBC12\ps(p@.    #)&  )KTKT[X 8Y99190@ daa d!]!"&'532654&+532654&#"5>32?^jTmǹSrsY %Đ%%12wps{$& Ѳ|d @   B    K TK T[X 8Y<291/<290KSXY"@* *HYiw+&+6NO O Vfuz ]] !33##!55^%3`d^@#    KTKT[X8YKTX@8Y190!!>32!"&'532654&#",X,$^hZkʭQTժ 10$& $X@$  "% " !%190@]]"32654&.#">32# !2 LL;kPL;y$&W]ybhc@B991/0KSXY"KTX@878Y@X9Hg]]!#!3V+ #/C@% '-'0 $*$ !0991990"32654&%.54$32#"$54632654&#"HŚV г "Əُattt$X@# %!"" %190@]]7532#"543 !"&2654&#"LK:lL>$& V\s[#@<21/073#3### %@  <2103#3#ӤR#٬@^M@*B$#29190KSXY" 5Ѧ`@ #<210!!!!^O@+B$#<9190KSXY"55//m$e@+$     &%K TX8Y99991/9990y z z ]%3##546?>54&#"5>32ſ8ZZ93lOa^gHZX/'eVY5^1YnFC98ŸLVV/5<4q L@2  L4307$7CM34( (+(I+*(I,=M<9912990K TK T[KT[KT[KT[XMMM@878Y@ NN/N?N]32654&#"#"&5463253>54&'&$#"3267#"$'&5476$32|{zy!orqp ˘s'6@   0210].# !267# !2'ffjzSb_^^_HHghG.@   2 99991/0`]3 !%! )5BhPa/w.,~ .@   21/0 ]!!!!!!9>ժF# )@ 21/0 ]!!!!#ZpPժH7s9@ 43 1990%!5!# !2.# !26uu^opkSUmnHF_`%; ,@ 8  221/<20P ]3!3#!#"d+9.KTX@8Y1/0@ 0@P`]3#+f B@  9 KTX@8Y991990@ 0 @ P ` ]3+53265M?nj @(B  291/<290KSXY"]@ ((764GFCUgvw    (+*66650 A@E@@@ b`hgwp  ,]q]q3! !#3wH1j%@ :1/0@ 0P]3!!_ժ @4  B    >  91/<290KSXY"p]@V   && & 45 i|{y   #,'( 4<VY ej vy ]]! !###-}-+3 y@B6 991/<2990KSXY" ]@068HGif FIWXeiy ]]!3!#j+s #@  310"32' ! ':xyLHH[[bb:@   ? 291/0@ ?_]32654&#%!2+#8/ϒs R@*  B     39991990KSX9Y""32#'# ! '? !#y;:xLHHab[T@5  B    ?  299991/<9990KSX9Y"@]@Bz%%%&'&&& 66FFhuuw]]#.+#! 32654&#A{>ٿJx~hb؍O'~@<    B %( "-"(9999190KSX99Y")])/)O)].#"!"&'532654&/.54$32Hs_wzj{r{i76vce+ٶ0/EF~n|-&J@@@1/20K TX@878Y@  @ p ]!!#!ժ+)@@   8AKTX8Y1299990]332653! ˮ®u\*$h@'B91/290KSXY"P]@b*GGZ} *&&))% 833<<7HEEIIGYVfiizvvyyu)]]!3 3J+D {@I      B     91/<2290KSXY"]@  ($ >>4 0 LMB @ Yjkg ` {|      !   # $ %  <:5306 9 ? 0FFJ@E@BBB@@ D M @@XVY Pfgab```d d d wv{xwtyywpx   []]3 3 3# #D:9:9+=; f@  1 ]@ /<20KBPX@   @    Y3 3 # #su \Y+3{@(B@@ 91/290KSXY" ]@<5000F@@@QQQe &)78@ ghxp ]]3 3#f9\ @BB K TK T[X8Y991/0KSXY"@@ )&8HGH    / 59? GJO UYfio wx ]]!!!5!sP=g՚oX;@CK TX@8YKTKT[X8Y210!#3!XB-@B/9910KSXY"#mo0@CKTKT[X@8Y<10!53#5oXޏ@ 91290 # #HHu-10!5f1@ D10K TKT[X@878Y #ofv{-{ %@'   #   E&22991/9990@n0000 0!0"?'@@@@ @!@"PPPP P!P"P'p' !"'''000 0!@@@ @!PPP P!``` `!ppp p! !]]"326=7#5#"&5463!54&#"5>32߬o?`TeZ3f{bsٴ)Lfa..'' 8@  G F221/0`]4&#"326>32#"&'#3姒:{{:/Rdaadq{?@  HE210@ ].#"3267#"!2NPƳPNM]-U5++++$$>:#qZ8@G E221/0`]3#5#"3232654&#":||ǧ^daDDaq{p@$   KE9190@)?p?????,// , ooooo ]q]!3267# 32.#" ͷjbck)^Z44*,8 Cė/Y@     LK TX @8YKTX 8Y<<991/22990@P]#"!!##535463cM/ѹPhc/яNqVZ{ (J@#  &#' & G E)221/990`***]4&#"326!"&'5326=#"3253aQQR9||9=,*[cb::bcd4@  N  F21/<90`]#4&#"#3>32d||Bu\edy+@F<21/0@  @ P ` p ]3#3#`Vy D@   O  F<2991990@ @P`p]3+532653#F1iL`a( @)B F 291/<90KSXY" ]@_ ')+Vfgsw    ('(++@ h` ]q]33 ##%kǹi#y"F1/0@ @P`p]3#{"Z@&   PPF#291/<<<290@0$P$p$$$$$$$ ]>32#4&#"#4&#"#3>32)Erurw?yz|v\`gb|d{6@  N  F21/<90`]#4&#"#3>32d||Bu\`edqu{ J@  QE10@#?{{   {  {]"32654&'2#"s98V{>@ GF2210@ `]%#3>32#"&4&#"326s:{{8 daaqVZ{ >@   GE2210@ `]32654&#"#"3253#/s:||:/daDDadJ{0@    F21/90P].#"#3>32JI,:.˾`fco{'@<  S  SB %( R"E(9999190KSX99Y"']@m   . , , , ; ; ; ; $( ( *//*(() )!$'      '/)?)_))))))]]q.#"#"&'532654&/.54632NZb?ĥZlfae@f?((TT@I!*##55YQKP%$78@  F<<2991/<2990]!!;#"&5#53w{KsբN`>X{;@    NF921/290o]332653#5#"&||Cua{fc=`@'BK TX@8YKTKT[X8Y91/290KSXY"@Hj{  &&)) 55::0FFIIFH@VVYYPffiigh`ut{{uz>]]3 3#=^^\`TV5` @IU U U U   B     K TKT[KT[KT[K T[X@8YK TK T[KT[X8Y91/<2290KSXY"@" 5 IIF @ [[U P nnf yy          %%#'!%""%' $ ! # 9669 0FHF@B@@@D D D @@VVVPQRRPS T U cdejejjjn a g ouuy}x}zzxy  { v } @/   y]]333# #V`jjj;y` C@F      B   K TKT[KT[KT[X@8YKTX8Y91/<290KSXY"@   & =1 UWX f vzvt        )&% * :9746 9 0 IFE J @ YVYYWVYVV Y P o x  /]] # # 3 dkr))`HJq=V`@C        B     K TKT[X @8YKTX 8Y9129990KSX2Y"@     # 5 I O N Z Z j        '$$  )( % $ $ ' ** 755008 6 6 8 990A@@@@@@@@B E G II@TQQUPPVUVW W U U YYPffh ii`{xx   e]]+5326?3 3N|lLT3!;^^hzHTNlX` @B K TK T[X8YKTX@8Y2991/0KSXY"@B&GI  + 690 @@E@@CWY_ ``f``b ]]!!!5!qjL}e`ۓ%$w@4 %   !  % $  C %K TX@8Y<<29999999199999990&]#"&=4&+5326=46;#"3>l==k>DV[noZVtsݓXX10#$@6%   #%#C %K TX8YKTX@8Y<2<9999999199999990&]326=467.=4&+532;#"+FUZooZUF?l>>l?VWstݔ1#@  1990#"'&'&'&#"5>32326ian ^Xbian ^V1OD;>MSOE<>L5 b@ <2991/0K TX @ 878YKTKT[KT[X  @878Y P ]#53#3+e#!Q@+     "  "<<<221<9990%.'>7#&73JDFHAMf fIX⸹)**'# 32!b`@!    <<1/2<2990K TX@878Y66].#"!!!!53#535632NL=ty-=))׏/я^R#/@I -'! - -'!0 *$0* $ $(st*(s099999999919999999907'#"&''7.5467'7>324&#"326{r%$&(r;t=:x=q%%&&s7t@?s9q(&%%s>v:@t8s'%$|pprR@F  B     fe f e<2299991/2<2<290KSXY"K TX@878Y@(' ' ')((79  ]]!#!5!5'!5!3 3!!!c`Tþ{yT9{3{JD{3@ <210##  \= >@54&.#"#"&'532654/.5467.54632{?>?>S8alӃ\]>9̭IXW:fqր][;;ȦI.Z.L-[.K''PGZsweZ54m@''TLf{xf[1,pEF)@dd1<20K TK T[X@878YK TK T[KT[KT[X@878YKTKT[X@878Y@````pppp]3#%3#^y/IC@&=>:A$104G$ 7aD=0^* D^ J21/02#"$'&5476$"3267>54&'..#"3267#"&54632mmllmmmmllmm^^``^^⃄^]]^\^BB@zBCFInmmmmnnmmmmng^^^傁^^__^]⃅]^^! "s;)_@3(%%  * "(kl"k *22999199990!!#5#"&546;54&#"5>32"326=P,]uu>DIE~bRhP{@p?Dq[[""CO@Mr%# @I    B   o o n<2991<2990KSXY" 5 5%-+#-+#RR^@ 10!#!^d10!!d/8L`@6EBC?2H09JC 9 $HE301B54&'.'2#"$'&5476$#32654&'2#'.+#^^``^^⃄^]]^\^ㄘmmllmmmmllmm}{{nWXfi`C.;I6Bf^^^傁^^__^]⃅]^^gnmmmmnnmmmmnb>KL?gwyVpMI`3Db+/10K TKT[X@878Y!!Vu=  @  Z[Z10"32654&'2#"&546PnnPPnoO@v+..ooPOmmOOp1.-rB .@     <2<21/<<0!!#!5!!!-Ө-}}^J@$}}B ~9190KSX2Y"!!56754&#"5>32 "?XhU4zHM98rn81^BQ##{l0b(H@'    #)~&~ )999190#"&'532654&+532654&#"5>32 \e9}F4wCmxolV^^ad_(fQI7Z`mR|yOFJLl?<:=svcE`sRf1@ D10K TKT[X@878Y3#fV` M@%  !   NF!2912<990"`""]3326533267#"&'#"&'#% )I#ER2bf*V H<9 NPOONN;9 %@]] 91290!###.54$yfNݸHF103#F#u@  ' 1/90!#"&'532654&'T76xv.W+"J/;<+->i0Y[ 0.W= ,@   |]|| 12035733! c)t'+n`d.@  klk 9910!!2#"&546"32654&PXγгi~hi}|P{ݿܾsH# @I  B   o op<<991<2990KSXY"5 %5 +-+-#^R^  ^R^  &{' d 5?&{'td 5b&u' d 5 $@/  !# #%" " "!& %999919990KTKT[KT[X%%%@878Y@ ttttv]33267#"&546?>7>5#537ZZ:3mN`^gIYX0&DeWX5^1YnFC98ŸLVV/5<6hk&$uuhk&$suhm&$vu  +@ ]1h^&$tu #+@ @O# /#]1hN&$ru  +@ 0?  ]1hm !@T   !!  ! !!!B     !  VV!"2299999991/<9990KSXY" #]@  s P#f iu {yyv v!# ]]4&#"326!.54632#!#TY?@WX??Y!X=>sr?<҈_Z?YWA?XXN)sIsrFv)H@9  B     <291/<0KSXY"]@gww  ]!!!!!!#!59=qժF՞su'&&z-k&(uuk&(sum&(vu@@ ]1N&(ru @@ @]1;k&,u/uk&,s/u`m&,v/u +1XN&,r/u +1  g@    2  y<291/220@(   ]]! )#53!!3 !iP`P5~.,3^&1tu"+@ 0?""]1sk&2u'usk&2s'usm&2v'u+@]1s^&2t'u!0 +@ 0!?0 !/0!0]1sN&2r'u +@ @O]1? @M    B   <291<290KSXY"  ' 7 7w55v8vL57y5yy5f +@< +,  )&  *&& &,+,* # )#3,99999999199999990@*WZWU!je!{vu! FYVjddj(|svz( ]] 324&'.#"&5!27!"&''3>_'y=_''NOy;WfNPƀ[gX@CHp@CpDfbMKYg[KKX)k&8uu)k&8su)m&8vu +@ / ]1)N&8ru +@P_@O /]1k&<ssu =@   ? 2291/0@ ?_]332+#32654&#'ђ/@0-'!  **.  !' $'$-F099991/990@@'(     ! "&  : :!MM I!I"jj  ]]4632#"&'532654&/.5467.#"#:A9`@IPAtx;e\`Wqqs`/Q*%jd_[?T>7;[gp{-f&DCR @?&/&&]1{-f&DvR @?&/&&]1{-f&DR (,+1{-7&DR.< +@ ./<.<]1{-&DjR -( +@(o(P-_(@-O(0-?(-( ]1{-&DR%@&,,& 2882 ++1@ ?5?/5/]0{o{3>@C'-%= 4%:.-*1 %?47&%7& =&-7"E?<9999912<<29990@0+0,0-0.0/00@+@,@-@.@/@0P+P,P-P.P/P0+0@@@@@@@@@??? ??0,0-0.0/@,@-@.@/P,P-P.P/ooo oo`,`-`.`/p,p-p.p/,-./]q].#">32!3267#"&'#"&5463!54&#"5>32"326=DJԄ ̷hddjMI؏`TeZ߬o0Z^Z55*,ywxx..''`f{bsٴ)qu{&Fzqf&HCqf&Hvqf&H"+1q&Hj@@ ]1f'Cof'v\f& +1F&j +1qu('@^%{&%#${##{#({'(#&'('%$%(('"#" ! B('&%"! ## #)&' ! (%#" QE)999999919990KSXY"?*]@v%+("/#/$)%-&-'*(6%F%X X!` `!f"u u!u"%#%$&&&''(6$6%F$E%Z Z!b b!z{     {zzv v!x"**']].#"32654&#"432''%'3%F2X)6 ~r4*!M!ü޼z&77kc\̑oabd7&Qquf&RCsquf&Rvsquf&Rs+1qu7&Rs .+@ /. .]1qu&Rjs +@ @O0?]1o )@ r <<103#3#!!oAH +@<+,&  )&  *&& &,+,* # #Q)E,22999999199999990@p(?-YVUV jf!{    { z{ {!"#$%{&%--&YVUZ(ifej(ztvz($$]] 32654&'.#".5327#"&'')gA\*g>}66]C_56`?`!*(Ou))Hn.Mw834OMx43NXf&XC{Xf&Xv{Xf&X{ +1X&Xj{ +@ @O0?]1=Vf&\v^V>@ GF2210@ `]%#3>32#"&4&#"326s:{{8daa=V&\j^+@ 0? /]1h1'q;$ +@@O]1{-&qJD+@o]1h'J$+1@oo]0{-&OD"+1u&${u{&Ds'k&&s-uqf&Fvs'm'vLu& <=/1qf&Fs'P&&zLuq&Fs'm&&w-u@]1qf&F&'wq&Gq @_?]1 q$J@$ "    GE%<<1/<20`&&&]!5!533##5#"3232654&#"F:||ǧN}}daDDa3&(q=q'qH@p]1m'yu(@@]1qH'H@p]1P&(zuq&Hu&(qu{&Hxg&(wo@@ ]1qa&H!+@!]1sm'v\u* <=/1qVZf&hJ  <=/1sm&*yuqVZH&JsP'z\u*@?]0qVZ&hJs'^*qVZ4' J;m'vu+ +@ / ]1dm'vuK*+1KQX88Y@ @@]:@    8 22221/<2222203!533##!##53!5qʨ"ʨ9Qx>@!   N  2221/<2290#4&#"##5353!!>32||}}`Bu\zzedx^'t.u, +1g7'+1Y1'q.;,+1H'q+1gm'y.u,+1VH'+1u%'d,u 'JLP&,z/u<<1??]0y{,@ F91/0@4D@P`p]3#\`{f'-\,@1V'M8L@F1f_m'v.u-+1V\f'+1j' .' N` @(B F 291/<290KSXY" ]@_ ')+Vfgsw    ('(++@ h` ]q]33 ##%kǹ`!jl'snv/Jl'sZvO<1KQX@8Y@O]0j' /' O@@]1j'q/'q9O @]1j'y1w/'ysOK QKSKQZ[X@8Y1u ?@   : y<<991/900P]3%!!'79Pw^Mo;jnH ^@  z z <<991/90KTX @ 878Y@ @ P ` sz p ]37#'7Ǹ}Lɸ{JZjXj3l'sv1@O]1dm&vBQ @?O]13' 1d{' Q3_&1wg +@ /  ]1df&Q +@]1'QU~V;@  AKTX8Y21@ /0!"#367632+53265PͳNijQRW1fOCCoa`ZVd{;@  NF 21/90`!!]+5327654&#"#367632dRQi&&||BYZuccH``01`e22wxs1'q';2 +@]1qu&qsR+1sm'y'u2+@]1quH&sR#+1sk'{'u2quf'Rs ;@   299991/220!!!!! !# !39OAg@AժF|pm|q{'3@1 . ("%4"1 K1 Q+E499912<2290@%?5_5p55555????? ooooo ]q].#"!3267#"&'#"32>32%"32654& H ̷jbdjQGьBN5Z44*,nmnm98olkp݇Tl'sv5m&vBUT' 5J{' UT_&5w}g@_]0Zf&U +@]1l'sv6om&vBVm'vu6  ))Ic:1of&%V  ))Ic:1u&6zou{&Vzm&6wu + ""Ic:1of&V + ""Ic:1u&zP77u&zW_&7wsg +1@_]07&Wq7p@]1F@   @ @ <<1/2<20@@p ]!!!!#!5!!  ժA@7C@  F<<2<<2991/<<<20]!!3#;#"'&=#535#53w{%&sQQ''PO>)^'tu8 '+@ ]1X7'X&+1)1'q;8 +@ / ]1X'qX+1)m'yu8+@]1XH'X+1)o&8iX&X| @@@!]1)k'{u8^f'Xe)&8u{&X'Dt'v|:+1V5m'EZ+1t'vr|< +1=Vm&^\+1N&<rsu +1\l'sv=Xm&vB]\N'zs=X&]\m&=wuXf&] +@ ]1/#@  L<1/0!##53546;#"c'&яN()g ,D@% ")%,$'".EG* ,(%#'F-<2221/<204'&#"327667632#"'&'##5353!!STTSSTTS:YX{{XY:E/tssttsstRd0110d}}P)C@#   . *29991/90"]!2654&#!2654&#%!2#!"#546D+ |v݇f>orqp ˘0_i1F&8@# (EGF'221/067632#"'&'#!%4'&#"3276s:YX{{XY:NkrSTTSSTTSd0110dtssttsst 3@  . /21@  / 9/04'&#!!276!2#!#ONDNO|N8DCDCD>@  G /221@  /ij9/0>32#"&'##34&#"326s:{{:"QrdaadDs'0@  0 <10>3 !"&'53 !"shSzjffbGGaaHH_^9'(9^_sZd$D@"! %  %  0%210&&].# !267# !2676;#"'ffjzS` SfM?nb_^^_HHgh$bzq"N@$ ## HE#210@ $$$$$].#"3267#"!2546;#"NPƳPNM]-GFE0iL~++++$$>: a .@   2 99991/0`]3 !%! )"#5465BhPav/w.,~0_i1F.@  .21@   /0)!"!!"$54$3!!@DNN|#+qZ?@G E221/0` ]5!#5#"3232654&#" M:||:ndaDDadqVtc'T@ )E Q E(]99@   (99@%S 910%!"'53254%&'&326&#">kGxfu'~@3cnBOFFu\0%p9 *E +@    21@ /0!5!!5!!5E>9+uD@& 39190!!"56$3 ! 7327upo^   2`_FHg[{(@@$ )) #)* &)190.54$32.#";#"3267# $546؃ YsrSǾmTj^У%!| &${spw21%%ݐf#A@  2991990 ]!!!!+53265ZpPM?nժHVe@#   LK TX@8YKTX8Y<<9912299990@P]#"!!+53265#535463cM/ѮcMPhc뻫Ph*Nsd&I@43! F'1@'$$'990%!5!# !246;#".# !26uu^[DM?npkSUmnꪖ_`%Rv%@ 'P $&]ĵ 91@ %$&222990@ #%$$<<$#$%#@$"! #9927654'&'3#"'&5476736,3,,3,6hC.KddK.Ch B9Iy\\yI9B z^ȮwBAWWABw1G*O@, *&NF+291@ '&&  #/<<9990%27654'&'5+"&54&#"#3>323LTWJ>ymoF||BuLibep_!edg .@  KTX@8Y991/9903;#"&n?M-– R E@   >f3@)B 6  999991/299990KSXY" ]@068HGif FIWXeiy]]!3!+53265jG?n+Vd{Ks 1@ 3221@   0! ! "!&32sy:;x Vb[[z=g&24v'X Rs3@ !  <1/0!4&#! !2!2"327&nzy;pa'Xܯ–bb-LgFqVY{!:@ """# E"9104'&##"3232"327&&&idRصRQ@TVt1098``:6:@   ? 291/0@ ?_]32654&#%!2+#"#5468ʄv/ϒ0_i1FV$O@$#% %G  F%22991990@ `&&&&]%#46;#">32#"&4&#"326siL:{{8(adaaTV@  ?  2299991@  /9990@ @u|]#.+#33 326&#A{>ٿJx~hb؍Oђ r!d@ -" "99991@B!  "90KSX@ Y6 327# '&546?6764'& {璑z<;YZL-|숋_ppٶ+23@@md{'@  !! RE(99991@ '$$(90@S !S BKSX99Y"]@/)?)_))))))]@% '$&((*//*( ( ))$]@.,,,;;;; q>323267#"&546?>54&#"Lf@eaflZ?bZN?$%PKQY55##*!I@TT((7V6@   O 221@   <20;#"&5# 54!23%&'&#"3wMc/R5!n|wj=hP`@o,0A37V?@ F<<291@/<2990!!;+53276="&5#53w{KsF0j&&էN01`>X@ @  991/2990K TX@878Y@@p ]!!##"#546;^vժ+Zi1F7I@  F<<2291@  /<299990]!!;#"&5#53546;#"w{KsբcMcN`NQfT@ @@ 120K TX@878Y@@p ]!!;#"&!n?Nժ=–_&84i' XN:@!3   1@   <2220!! 47!5!3254'5!X ƱXw>*a"Lav-@   /<91@ 0%254'&'5!'&'&33cAnMagn"ʦmWDtz–d@  @ @99/1@  /9990@        BKSXY""#3 632#54&9%NZUUIG9\[ny6P=V{j@  K TKT[X @8YKTX 8Y9991@:        B    9990KSX2Y"@      '$$  )( % $ $ ' 755008 6 6 8 A@@@@@@@@B E G TQQUPPVUVW W U U ffh { F]@%     # 5 I O N Z Z j ]+5326?3 67632#54&#"N|lLT3!;^0XQ99) hzHTN43`rr:T*\@5    B  B K TK T[X 8Y9991/<20KSX<<<323#L:s_%'ST_ijxzX"Jh0@umHLIwKK!!C12\RI`1]5@ F1@  0 4&#!!!%$ $5& )sQ;-%,%hV)$yhL?`3@  F1@ 203 4&#!!!32!"'hi;-ԧc%,&cV)$yJX$!"'&'5327674'&+#5333!plnUQQLITNPc9:V>}ws}#(rAbLrV{@@  F221@ B 0KSXY#36763254'&#"s4QҸMNr98xܭz BR1pqWBAV&@ F10@ @P`p]3#V''V:@    <<2<<219/<2<203!!!!#!5!5!5!s____,Ԫ m'?' f'@'qf'@Gf$'-/V'Me/V'MvOf'-_1V'M>1V'MeQhm&$wu<1{-f&DZ +'+1`m&,w/u  Ic:1^f&  Ic:1sm&2w'uquf&Rv <1)m&8wu<1Xf&Xv  Ic:1)3&08X1'q{;)Z&86X"&X)Z&80X"&X)`&80X"&Xq{h3&${-1&qR;h3&${-&DH4'q>{o'qs%T@!$"43 &<1@"#%&99ܰ KTX"@8Y<203## !2.# !2675#535!5yyuu^opkC XSUmnHF_`%'XqV{ 4X@"2% G,E5221@ #% ) 2/3 &)/99<20`666]4&#"3263#!"&'532767!5!6=#"3253:aQQRZ9||9=nXF]@,*_EG^[cb::bcsm&*wJu!<@!T!$!]1qVZc&JJjm'wu.m&Nwu* +1KQX88Y@ @@]se'42qeu{'Rse1'q';qeu&qsm'wuyXL/f&TVdf'%  Ic:1 '=' ']'q']Gsl'sv*qVZc&Jv-5@8221@ /203!327653! '&5!#>=B>d`gd"dPNOKZ߀xxv 9V@@  221@ B 0KSXY%#3676324'&#"8WST=<HW5xz7 GF3k'uu1dd&QChs&s\}{s&s}Hl's\v{oc&vefl'svHc&vhp&$|z{-d'Dh6&$x>{-H'eDp&(|zqc'H6&(x>qH'Hsp&,|Yzc'fw6&,x>>UH'$sp&2|Azqud'Rs6&2x>quH'RTp&5|yzJc'%UT6&5x>^H'-U)p&8|zXd'X)6&8x>XH'X'v6o{',V'S77'WRs. 56$>54&#"57>54.#"5632?4o1\}p_s54&#"57>54.#"5$32Fp>!BlJc(v];?"AW?-1CA#E ptgDZX%KlaF='.`[b[3XpVU 2#PQ̝qpD(4%3254'"632!"'#67&5#"'&76323 76'& %44nI5"C0:XY|ˀ|YX:ST$TTTTT- H:E<$d0110d^jtssttssq% ;W@$3=E (B!8;7B/E<̲ ;]91@$3< ;<,<990" 7654&327654'&'52 '&54767&'&5476!˸jkkjpkk_;̨_`Lm䖋_``aCUtMMMMMN'|OEH-AA+Mdha "ccttttُcc"FYXSJqq 4C@6E B42()+&BE5221@4)".559920" 7654'& '&5467&'&5473327654'qSRRS SSSR:4HRQ;4?+IHIJ,MMMMMNMMJ@b@Y "ccttttُ"#VKYIAAAAAtw>\V@ B  K TK T[X 8Y991@ B  /0KSX@ Y@@ )&8HGH  /59?GJOUYfiowx]]+53276=!5!5!!Hri&&gPP%01oXV`@   K TK T[X 8YKTX @8YĴ@`]99Դ@`]1@ B  /0KSX@ Y@2&GI + 690EIWY_fh]]+53276=!5!5!!۞Hri&&5ejLP%01%hP&$@{-&D_u&(zqu{&Hz{s3&2bqu1&qs;s3&2iqu&RsO'z't2qu&sRs3&2jqu1&qs;1'qr;<=V&q^\p\%3254'"632!"'#67&73%44nI5"C1- H:EVy` 8@   OF 991990@  @ P ` p ]3+53265F1iL`aq #/A@1E%G +G!E0<<<<1@( . /22220 6& 23632#"'#5#"'&76'&  7/ST$Trrrrˀ]STTSST$Tjtss ^ŨŢtsstjtssqV{ %/D@1E$G+G'E0<<<<1@ *.! 02<220'&  7"'##"'&763253632 6& STTSST$TrrˀrrST$TdtsstjtssRŢŪjtss|3 #!#'#7'7 3!Jafp|҈2F;R/o]jY'FF8O ",'&76!27&'!2767# '#&# rfuSv=:efc.1 tsfjwv9tFXh$xYv+!f //_H$$\/ح ]"+'7&576!27&'32767#"'&#"i`UUQ.-Y_vcPNONMRS]7GGcc^N lOU ^q+$Vqrg j ;@   : <<1/<20@ 0P]33#!!#53ʿ_w1##'!5!7 !4" gZ8f,i> XRBY bo{=4'&/&'&54632.#"3#"'&/&'&'&'53276 23@LLfLNZDE11?PS{W*L'TrGY$alfccaFF'K((%$JK((**T@%$!,KL[@~$=&[#5-,X3`!;#"'&/&+=!qjN\1*LlTrGY=Z^e`1~$=&[? %P6@ 9991@  /0##32654&+"56;2'񍚚EOZ*,FP{7@   991@  /032654'&#"5632##/dLUIVVN}AH+Fnt  (\@ #  . &%)<229991@(% #/99/<20*]!!!2654&#!2654&#%!2#!#53[D+ |迿ɐʇf>orqp ˘p _@ 8AKTX8Y<2<21@   29/<<2299990]3!33#! 5#53!3265˥ߦ®j*$}h0B33#!!!!#7#!#!AX .AA<VF㪾FqB&-1&'&'!3267#"'#&'&3273&#"#So+Jajbck{cPm!)81G\9/Zo Z 6Z44*,!  C "2JcfRY@    9 KTX@8Y<2991<2990@ 0@P`]#+53265#5333RM?nʿwHVS@$   OF<<22991<2990@ @P`p]33#+53265#533#F1iL`(aؤsf$C@$  %" %  %2299199053;#"&5# !232#"nEMMT–\\xEEqV@{$H@"%"%G E%229910`&&&]#"&=#"3253;32654&#"@F:||:Li1戮VּdaDDada= T @  ?  !<299991@!  B  /<229990KSX9Y"@"]@Bz%%%&'&&& "66FFhuuw]]#.+##53! 32654&#A{>ٿJxʿ~hbw؍OJ{=@ F<<<1@  /<20P]###533>32.#":.I,h<ĤfcΡ3!733!#!53!ٗ ٗwјv9 V`+5326?!533!33!+N|lLT3!øLùmhzHT33`{ ,@ .% F-22991@-&%"*-%  9990@1?$?%?&?'O$O%O&O'_$_%_&_'o$o%o&o'$%&'$%&']@+?#?$?%?&?'?(?)O#O$O%O&O'O(O)_#_$_%_&_'_(_)]2654'&#"367632#!3267#"&߬A@o\]?^^fe~ST`Te__Z+f{b:9ml)Lf01a```FE..'qZ{8@G E221/0`]53#5#"3232654&#":||ǧdaDDa{ 8@  G F221/0`]4&#"326>32#"&'#3姒:||:/Rdaad` $C@  !G! F%22991/0`&&&]4&#"326>32#"&'#46;#"姒:{{:Z[/Rdaad~Ӝ}}{ 0@ ! !"EH!<106763 #"'&'5327654'&#"LQQU]SRMNONPccccPNON5#$+qrrq+qs{'/O@( ,,H"E02991@.*%00@ 11111].#"67632#"'#47&'&!23254#"NPc'>IjJ?_SPI 9/-U:Me5++rQ,3H=Y}/)9DhQ#3 :#:9KqV@$K@$%"%OG E%221990`]#"&=#"323;32654&#"@F:||:Li1戮VּdaDDad^ؙa=q$=@" %%  GE%2210`]546;#"#5#"3232654&#"iL:||ǧadaDDaq{"r@ KE#91@  #90@)?$p$$$$?????,//,ooooo ]q]47632!"&'532767!7&'&#"qkcbdcjfg ]\RS^,*4cdWWZZq{A@$  KE91905!.#"5>3 #"73267qN ͷjbck 9Z44*,#ė|{ 4w@6.('4 KE5<Ķ&  91@/.'""5 5@  &"90@ 4 &'<<<<<%6'6'32#"'&'&'&5>3 73;#"'&5Nf  R`\Lladbck $˸&&i+@WR֊>8E#Z`vg'#d4*,#)u10`Z|I|*|>i@@603273;#"'&5|PUTZGUU]UTNHtCDFEwGQPabLq_&&i+@WR@\l%88ZX83,-F@.. NBj10`ZȦFq|/;@ 1 &,E01@00)0#90"327654'&+5327654'&'2# 76`cchҗUTNHtCDFEhqr<V`K@   OF<<22991<2990@ @P`p]33#+53265#53F1iL`(aؤqV 0U@)  &#-* *-+& G E122991/990`222]4&#"326!"&'5326=#"32546;#"aQQR9||9iL=,*[cb::bcaqVZ` #C@ # GE$21/990`%%%]!"326!"&'5326=#"43!aQQR9|=ͻ,*[cb:*qO{8@4 E1990%#5!#"!2.#"326Ae{-h]_cƳO|$$>:77>>`Rd`#y@ %  $ĵ 91@  $222  990<<<<< 3#"&54767327654'&'bB_j&;;&j_BC(::(xܱSccS$-EIdccdIE-`d`#y@ %  $ĵ 91@  $222  990<<<<< 3#"&54767327654'&'b)rG,EE,Gr)C'88'bLx>>xLb-!@2FF2@!-VX`9@     NF21290`]332653##"&||Cua{VfcdC@!   N  F2991/<9990`]#4&#"#46;#">32d||iMBu\~aedVd!J@%  " NF"2991/9990`#]+53265#"#46;#"632diLiMHa=~a >@    F<<<2221/<20@ @P`p]33###533#¸`<Ĥn`Mt` '@   221@   /2205!#3!53t褤K#<@ % V V$<<1@#! !//2<903327673#"'#&'&#"#67632= &}33[ &}33[ %$RIJ %$RIJMT5@  <2<1@ /9/<2033##4'# 7632&#"3=5*7M\TK9V_ (@  F 1@   990;#"&5y=x1F|t(L6$@#&#" F%<̲#91@B""  " /9/ 990@$#@  **8;ILT[q ]@$$%$$5$7E$FT$\ ]@    ]2!"'&'5327654'&+5!#3!CicUQ^cdjTmcd\[je8+lh%12KKKJ3Lb&^@PP F'<91@  #''<<<290@0(P(p((((((( ]%#"&5332765332653#5#"'&Cb`ruSSrw=ZXyzVUy=<b`^zbze32>>Vb&a@PP F'<91@  #''<<<290@0(P(p((((((( ]%#"&5332765332653##"'&Cb`ruSSrw=ZXyzVUy=<b`^zbzZe32>>V{0c@PP)%'F1291@ %*!*-(&/<<290@02P2p2222222 ]>32+5327654&#"#4'&#"#3>32)E__RQi&&ru99wSS?yzUV|v{zH``01NM_``gb>>Vk{Q@N O F2991@ /9@   990`]#4&#"+532653>32k||F1iLBu\satedVJ{;@ N  F21@   /  90&54&#"#3>32;#"R||Bu&&i1F``edH10d` y@BNF 991/<2990KSXY" ]@068HGif FIWXeiy ]]!3!##`ylqu{ ,@  Q E2210"!.265!2#"qt蔔98q$`I@  E2ij 991@   /<<@ 9/0!!!!! '&76!#";:E*%xxxx%`ݛlklm>|$2@ &E E%1@ #%<202765 26= "&'"&H`k&InI&k`B"F:.aע ģ0[1[0T\l6puypVi`/@   /2991@  /90%!"/32653#r%832JI,:.˾ fcVJ{:@  F2190P].#";#"&53>32JI,Li:.˾atfc~{%@ 21@  /29903!5346;#"iLAat~{%@ 1@  /29903!534&+532ʴLiAa`@4  B      F299991/<9990KSX9Y"@]@Bz%%%&'&&& 66FFhuuw]]#.+#!232654&#0s2âJ{Qpwu t]:'`iVNM``E@  F299991@  /29990332673#!32654&#Q{Jî2s0jp|Ɓuw`':]t i`MNVoV{0@C  S('  S'('B1 '(!.1' ($R$+E19999190KSX99Y"0].#"#"/;#"&=32654&/.54632NZb?ĥdXLie@f?((TT@I!* ajYQKP%$V4@ O F<22991@  99046;#"+5326cMF1iK»Ph)aV O@ !O F!<<229921@! ! !99<20546;#"3#+53265#53#5cMF1iK`NPh(aؤi7V5e"O 1@ 04&+532;#"&McKi1F(hPaV2@   O 221@  /<20!3## 54!346;#"#"3276w5RcMów|n!o@`Ph3A07^3@   /<<2991@  /<2990]!5!4&+5323#{Ksբ>`N7V=@   F<<2991<2990]!!;#"&5#53w{Liൣa>`C@     NF2221/222220` ]3!33##5#"&=#5!326:CuȮ||h=$#^lfk`8@   91/20@ 3 3#f%.]`8XV`@"B  OK TK T[X8YKTX@8Y2991/0KSXY"@B&GI + 690@@E@@CWY_``f``b]]!!;#"&=!5!qjLLi/F7e`ۧa%X`!@  "KTK T[X8YKTX@8Y299<21@  /<0@ BKSXY"@:&GI #+ #690#@@ECWY_#``fb###]]!367632+#47!5!3254qjL"TA`:&>R~ie8FX`ۢG7W9W`/=3<;4%6]XL/` @ "!̲91@B!  !9/ 990@ @  **8;ILT[q ]@  %$ 5 7E FT \ ]@    ]2!"'&'5327654'&+5!5!`q|/=@1 %,%E01@0 0"0( 90";#"327654'&% !"$5467&'&5476EwEFDCtHNTUhcc`a|p<:!a>>`V.9@ F<<991@   /<203#33## 54!3#"32767Ku_+xG`͋BA0 L` ## 33R9L T#`@ F1/03!!`3qV $C@  #%% "GE%2210@ `&&&&]32654&#"#"32546;#"#/s:||:iM/daDDadaX$L@ & %<<ij#1@  $! /<2KPXY032765&'&#"56763 3###53T?V:9cPONNLQQUmlprLbAr+#}swԤX$M@ &"#E%<<ij "#1@ $!# ##/<2KPXY0535&'&5476!2&'&#";3##plnUQQLNONPc9:V>ws}#+rAbLrq &) 76'& %3!!!+5#"'&7632/ST$TTTTT iL:XY|ˀ|YXjtssttssH^Lۓd0110MqL4@#5#"'&76323!2!"'&'5327654'&+5 76'& Z:XY|ˀ|YX:jejbVQ^cdjTmcd\]:ST$TTTTT3d0110d^L$8*mh%12KKKJjtssttssq 3: 76'& %%!332!##47!#5#"'&763233254#/ST$TTTTTghL<):XY|ˀ|YX:FXjtssttss_ 3<;4d0110d^6[7@F.#"#"'&'#"'&5#533!!;5327654'&/&'&54632NZED11?QR|{Za]gQQ{%&sfccaFF3,@LLf?((**T@%$!,KL[[!&PO`>''M5-,QK($)$JK7V&/!05476;#"+53276=#"'&5#53!3wxWQîc&'QRF1i&&QQ3%&sN[V((h)``01PO`>''7p-9D!6!2&'&#"63 #"'47!"'&5#533276'&#"&57!3w{UQQLNONPcccO+eKTIQQ;BS_r(ր%&sz#+qrfr v)2LOAPO`> 'KV ''/Vo5+5327654&#"#!##535476;#"!;67632oRQi&&||ӹWWc'&-BYZuccH``01/яNUV((hce22wx#5.#"#"'&'#34632327654'&/&'&NZDE11?PS{|Zb]hf8b_caFF2-@LL?((**T@%$!,KL[[!&2-,QK($)$JK @   F<2991@ B /0KSX@  Y@B &GI   + 09 @@@@@C EWY `````b f]]3!!!+iLLۓ6 333# #333# #6ttttU=63@    <2<21@  220!#!#!#!#6kkUXrXJ3@ NF 21@ 0%#"&54&+53232653#׃Li1FęaBþyVv!:@ #NF "21@" ""0%#"&54&+53232653;#"&'׃Li1FPh2FęaBþyfu0@ 32tNN^luu)qJy}wYYk\g88u:KSX@ 32tNN^lugrB0)qJy}wYYk\xkW6Vr88 #@<<1@03+5327653#zt43r,Bttx66XVru@ 1@ /0.#"#3>32.biuu$uT  qksa97H <1 /032653#5#"&'H.bitt$uT  qkJa97Hu' <1@  /<032653;#"&=#"&'H.bit0B,rg$uT  qkJ V6Xlx a97 !+33276?3327654'&+CFCDtk=%%(f{n!!"}K'))'K}N;[--s?5/.6 333# #6tt&+53276?331/.N]D0 {{bp"#WK/itftf&t  @ 10#5Rڬ@u1 ܴ? O ]ܶ ]<1ܲ]90526544u@XX@sPOOP{X@?X{POPPu1 @    ]<1 Բ]90"'&4763"3sPOOPs@XX@PPOP{X?@Xu+@ 91@   032765&'&#"567632#'y7$#?q22110335WDDFk[@*7K$@ ` XFh_@Cu-@ 91@   0#&'&547632&'&#"3kGDEW53301212q>$%6y[AmC@_hFX ` @$K7*@ 2% % g 25-5g'|?f=u912]90K TKT[X@878Y3# #fg|?fLu91<Բ]90K TKT[X@878Y@ 5:5:3]]33|g?f7@ u91290K TKT[X@878Y3#'#f?f7@ u91<90K TKT[X@878Y373x^@1@/0#^+b+qsRf3#ff #ofv^@1@/0%#^++Tq^#onvsR3#lo#E@ j,5!##–,dU 533##5#5Dud&u!5!&>ߖ)9H W@ VV1<0K TX@878YKTKT[KT[X@878Y332673#"&v aWV` v HKKJLDfN@ d10K TK T[X@878Y KTKT[X@878Y3#  @ V xV104&#"3267#"&54632X@AWWA@Xzssss?XW@AWX@sssLu @   '1/90!33267#"&546w-+76 >&Dzs5=X.. W]0iJ7c@$   VwVv99991<<99990K TK T[X@878Y'.#"#>3232673#"&9! &$}f[&@%9! &$}f[&@Z7IR!7IRfB@991<20K TKT[X@878Y3#3#߉fx%3;#"'&5&&i+@WRd10`ZȢf '#7'373\\]]\aa``u # 5473733254/MMz /1/03#zttu/2&'&#"#"'&'532654'&/&'&547632j1549W++](}24NM9>=D@?>=RX o(l00GF@99 a /$*+MW33 k2-*)*IX01 u! #'#37 ͉H+uX@ 1/0!!5!AGЈX'@??//21/]0!!5!3A4X@ 21/0!!5!3AhhX'@pp0021/]0!!5!3A4X@ 1/0%3!5?p+v'qqm 93vJ!_@ Vw V v"99991@   "<<99990K TX@878Y'&'&#"#67632327673#"&9 &}33[&@%9 &}33[&@7 %$RIJ!7 %$RIJ{f6@ D910K TKT[X@878Y # mXfvq{Pf6@ D910K TKT[X@878Y3#fs{?f<@u991290K TKT[X@878Y3#'#?fsH7b/q|  )1H{d%@ 910@4D]3#h{)I@ dd 91<20@#4D`````````ppppp]3#%3#^y)7{"@ V@ V /1@@ /0632#546?654&#"7pihX,#w3-.>GZdH3UC=A   (6%""($4f{Cf<@u991<90K TKT[X@878Y373NxsD/1/0#DD'4]fB@991<20K TKT[X@878Y#!#͇fxx)1')1H VV/1 /<0#.#"#> v aWV` v ")KKJLD( @0#3Ӥ?#55#53pp{53#7"op{y3#@uUCqPUv$<#5353#ĠxxxF33##xx2xU?p!5!#Ik{1@V/K TK T[KT[X@8Y21@ /0532654&'3#"&=X.. W]0iw-+76 >&Dzs5V @  V21@ /0"&5463"3VZ||Z(55(}ZY|x5'(5 M3!5353D M#5!##걈ň$ #53533##Ġxxxx 5! zV '+53276=0RQi&&``01wV %3;#"'&5w&&iQR10``fSC'SjC( @V xV1@ /04&#"3267#"&54632[6'(55('6y|ZZ||ZZ|&65'(56&Z}}ZY||jT @03#Ӥ#uzLuD/1/0#D`tP#5!#fJc9X#"4533273273" v aWV` v "6KKJL9HS/TB  #"'&'.#"5>32326SKOZq Mg3OINS5dJ t]F ;73 !;?<6 7=xh!5xhh5!Ĥh'`_^NO'ygfFXY @  V21@ /02#52654&#Z||Z(55(B}ZY|x5'(5[3!53[J!!5#>J*>c9X632#&#"#&'"#72;tv gfv ifvtR+ '7'77}`}}`}}`}}`p}`}}`}}`}}` .54675>54'&'C!RI 7!RI 0PQn +0PQn : '  fCqPfvH7FbV+I#5!#!Ֆ֖V,2!5!5!5!>>2xx3#3#@`tt!#!–*>,Jf'73327673#"'&'#7&'&#"#67632Bmk  &}33[& !Bnk  &}33[& g  $%RJI g $%RJI J!%'.#"#4632326=3#"&3#3#9 $(}gV$=09" (}gT";薖Җh! 2-ev 3)dw.CJ"ttc( 7!#'73!'3p~(͛3#557'2d͛~~x&'&4767@*,,*@rNPPNr*,@A++{OPPN`1'+!x050567654'&xrNPPNr@*,,*{NPPO{++A@,*.Do2>&"762"'"&46264&" 5O57O5>||=>||66O5555M75m?|}A@}|6M65O5p pk Ppk!!p kpT!!p ଔ* '#'&'&#"#67632327673#"'&O,$e5Fqp[?9ZO,$a9Gqp[?9J7  $0GJI "7  $,KJI pn w(5!'3#7ws~~d͛q` !#!#!#Sb+e !#####b+tf@103AntVH@10%#AnH3y`V #"'&=3; #V!. {q{'yOF{'y#sRf1@ D10K TKT[X@878Y3#fFR&jl@_]@_q0hf'&HFyuf't*f',}f'z.f'4(f'n9f'h=6'.Mh$%j@ 1/03!!)ժh=@ B1/0KSX@Y !3f5:9+(\=;+s!2@"" "#3"10!!"3276'&' ! '&76>b܁܁:xżp[bb,j.h<@ B1/<0KSX@Y3#3#:9&+031b *@    <<1/0!!!!!!29iggqs2;3 F@B   <<1/220KSX@   Y%!!5 5!!>!8ߪp7<s'<@) !%(<<<<1@' %'/<<<<0367654'&'&'&76753#–bbʖbbWssWWssW=;;s.@ <<1/22<20!6'"'&336763#ּՂnʊnhg椌gHN&3@ &("3'1/<2220%!567654'&#"!5!&'&576! cccd?IH1/GGaʦa>”XN'r/u. +1N'rqu9 +1qf&Enf&PIVdf'Kf&MF*&Yqy *@ ,%E+99@ ?/]q@ ) !/99@<<10@  ]@IIIJN LNIK ]@:9:88? <>]@ + +*))]@  ]@++]'&#"3273;#"'&'#"'&763 N,-=MKLyHc( #) Xn^T).^,ru7 nik%1)0T*XoW)&V!7@E F21@  90%#! !"3 5 4# yYo 0kEdZ&J:@ V`@@ 1@ /<20@ 993#&+532i^;,_1FLdVD~qu-T@(/E( Q!E. ]99@%%.99@S910&#"#"'&4767&5!232654'&'&fu5KxD7VUV[a~@Fu\0%p̥@$OF(Iqrs`g |2=@" 33'(#,34 '0E310&'&547632&'&#";#"32767#"'&546p<@ KQX@8Y1@ 20%#457654'&# !5!ʄOTJPE* :;f,KOxsPWKL,#%5,*3Y'iVd{1@  FN  F21/0@]#4&#"#367632d||BYZuccH`e22wxqu$!O@ """#E QE"2]21@?]0@ w##]!3276'&#"2#"'&76EVSI 6VQ@=񈉉d~uvn` @ F1@ /0;#"'&5c"$lYoRR`+.0`b` I@   F 21@ /<20@    <<33 ##Gb`/ZFB?= F@ 1@ /<0@  # #'&+5z~J/k`ue<2~V`wJ`B@1@ /20@ 99!367676'&'31!xdLjE.*{`T|p5dwY|rNįtkR&@@ (" %'1@ '#"'<90%#457654'&# %$47#5! $ڄOTJPE* :MKOxsPWKL,#%5,*,X$Rݿ qu{RJ`/@  1@ /220!#3267#"&5!##J117,#J%x\c`PH? XV{1@ EQ F]1067632#"&'#44&#"326=;{:+fZ#adqR{$6@ !& HE%1@% %0 !2.#"32#457654'&-ULNPƯPTJPE* >:##++LOxsPWKL,#%5,*q` 1@  QE]1@ 0"32654'&'!##"'&76sRVVOcm񈉉qnsȷzn휝dm`#@  1@ /20%;#"'&5!5!!$lYoRR\ W0`b*`+@ E F@?? ?]1@ /<0327676'&'31'"'&5R27ki;jF-*eb`+@EvfwZ{sxvpVh )=@+E(#E*<<1@ *'*<2<20"27654'&'2##"'&7673=A__UVF6˷džfB:VVMpˑRh]p[nmNssg.;Uda@    <<91@  <<90%KSX@   99  9 9Y#&+53;'$ܕ11FA3N11F~0)~pV`6@   <<1@  <2<<0&'&53367653#EkUJ|CUvܷ%aw~LB,BTxnc#n'`8@E  E1@  /<2<0 433233243! &aƏ˪ޏƛa!)R@O@+}&Mj.*&jYquf&}S*f&"Y'f&]YVj 3! # # wHV1M$ 'G@)E& F(2Բ?]1@ ("((Զ?]990267656#" '&76#327>&iPDyz]6;~oxҤ]Y:PWp=l޺lǧ_ը,嶖ꀰ-ўqu$ 7@ !EE <1@  04'&#" '&4632  1BSxyJ̃Я#/p~ZZ7Ai6deBWQ I@ "!9Ĵ?@]1@ /<99@ o]0#4''&"562%62#"FR**RMw(oUCHk&_*SKHv H# 0r{C @[)/Bf'nfPWQN'rufpV'A@)   $E(<<<<1@ (  (<<<<02##"'&76327676'&#"DžǷdžǷqMTVMqqLWULc휙owgsugHgusgAm`E@ EE91@ <22205!#%$! 47)323764A,Ma")aM:GϤ*RѧOp[g9&'&47#"54654'&#"563277632327"'532! `7"7$>9[@[`7"7>9[&F]_I I5l|"O z:6hl0'[Ml |"Oz:6hlf$11sXD@!  ܶ0]9ܶ0]1@   <0#&'&76!   76';:{HpҳI椤qVu{ <@!E E ܲ0]9991@   <0"32654'&#&'&7632sVVUVVV9kjstntstu n}{R$.@ & #%1@ %"%0 32#457654'&# '&76)F`{[mzYTJPE* :xe+wTOxsPWKL,#%5,*eNqRQ` 4@ " E!IJ]1@ ! !0")!"32#457654'&g-[oPTJPE* >LOxsPWKL,#%5,*#)@VF'6  (<1@ ( $(0347632&'&#"!!#"'&'53276`1213$)),x:KAb933.1220W@Rd >Qoɏ?s K_7"'&76'&526n 'BQ_'BQ_[~,`*l#FR`*l#FRB@ 91B/0KSX@Y #!3&pM]rV`!#56! #'#64?!"QhRR_@0:IKiXL}/M4!wx#&'#&' #'nd2Fb.-t`4#M!P^sK=W@< 9:?5 +,">99KSX +9> &1>29<90'6767&'&'#"'&46733276=332764''3=D۴vayͤgDd''dey{d;]TCHI}rHGFFtAGCT_8d榈d*0QA^^^Fkmihhimw'AFU'`%S@!'E  E&99KSX"Pe^Ґ8*7D ! ! 12԰.#AL.#^Yq4+& "H4B;;=/?"+VhPOV !! 7654'&#"#676! 3 7llc^#,V)ۄe]6?fضdVj{ # 7654'&#"#67632327\B\\TP%I/yYk}oSKu,2R¤ຐs5%! &'&#"567632 67632'&#" ;!53276n"?E! rK,/ 4'Kr !D<&tEGGH h=" C(FK#C "&E !!6{5%! &'&#"56763267632'&#";!53276[96:@%((%@:6-:IkI:8=3553gs%+$67632! '&76!2767&#"327*W8QU{2Τ|sK^lȺhiieb-sJV"1Pһ '$Astxssq[/&67632#"'&76!27674'&#"3276I,)e[xtgO_\SG]EZSTVXXTRS7xJF61𢢜Pһ ''rsstxsst,V4@  <<1@   <220#5!#!#!3`d`du7U3@  <<1@   <220#5####!3_pzpppg3#"54654'&#"563277632327#"'$47(`7"7$>9[@[`7"7>9[@[|"O z:6hl0%[Ml |"Oz:6hl0%?[MV{$:@&E QF% ]1@%" %04767632#"'&')! $'&  7Z6;x[Y: +STTSST$T%Уb^#10dX4tsstjtssq{FVyMsaq{!&'&#"!!32?# '&76!2%%cjf_[_fMJOhk en(' c\\c( +{!56763 !"/532767!5!&'&#"'(ne khOJMf_[_fjc% ؜c\\c Vs'& @  >  91@ B  /<290KSX@  Yp]@ 6II YY @  &)5:EJ ]]! !###-}-!+V` O@ F  1@ B   /290KSX@   Y!!###`{`UV{'4767632#"'&'!!#5#5'&  7Z=;{XY:eSTTSST$TfZ#10dȪpptsstjtsss'Hs'&y3s''yk&uuN&ruBBBB|#I#IabhFaF`C`#BC`CUXC`C85YBB#Ih;5#I@PX@855Yf4@  <1@/20%+532654&#!#!5!!!2L>o||Rh"9+Fjk&sus'N@  2<1@  IIPX@8Y0! ! &! !!! 'zOFӐhgս6,XNf-T/3@   <1@  /<20!565!32#!% 4&+pٕxL@+8/Xڦ5@ 2<21@   /<2<20!!#3!332#4&+326 z6࡟9d݇,@   <1@    /<202#4&#!#!5!!||Rqf9+Fk&su3k&uu#m'yru; )@   1  /<20)3!3!#++h$.@  . 21@  /04&#!!26!!2)DlN݇@%j@ 1/03!!)ժe4@ <1@  /2220%!!67!3#!#p&axު D+?x4&A((v@   <2991@B   /<<2290KSX@    <<Y@ I:I:I:I:I:I:@  <<<<33 # # # 3DDxM(?@ * %)21@  %&" )02#"$'532654&+532654&#"5>I8z,|йԳƆ\qѲ|!ĐBY+wps{M("3 y@ B  6 991/<2990KSXY" ]@068HGif  FI WX ei y   ]]#!33j+3m&yu# + KT KT[KT[X@ 88Y1 Y@   2991@ B  /<290KSX@    <<Y3! # #_yT:%@   1@  /<035675!#!T>Wxfb/X++0;+s2;@ 1/<0#!#;"++3s'&7#> 1B /20KSX@   Y%+53276?3 3 OM?w.-!suٵ2&]*jklyj =@!   <<<<1@ /<2<203>54&'$%53# W==U+  -=;; )@  <1@ /2<0)3!33#;ʪ+$@  21 /20!!"&533!3_||xdv+ *@    1@ /2<<0%!3!3!3OOʪ+++o2@  <1@   /22<<0)3!3!33#OOʪ++< *@  21/0!!5!!2#4'&#!!276GN6ONDPO+DCDCF&, $@   21/04'&#!!2763!2#!ONDNONDCDCo#N@ <21@   IIPX@8Y0! 7!5!&! 56! ! 'oOzFՎaa0&8@''!&$#(  !%$'2<1/0"3276'&76! ! '&!#3~܂܀s;:ŴL椤kj@@  21@ B  /<0KSX  Y3!!" &$54$)#!:ƒdv'V+w{-{Dp7):@+E'Q! E*21@*$ *9902#"'&5476$%676"32654&}:[;z631-~LӔ{0w)v ,u8w>` /@ " F!21@  /0!2654&#32654&#%!2#!r~~hhVlj9_ZZ^SJJOgyr`F1/03!!`3k`4@  <1@  /2220%!!6765!3#!#}v[(bt:d6(U3Rq{HF`@   <2991@B   /<<2290KSX@    <<Y@ I:I:I:I:I:I:@  <<<<33 ##'# 3?nn`QO6m|(N@ &* )1@ #)) ) KQXY KQXY0#"&'532654&+532654&#"5>32|PZG]twGabLx\l%%pZXkYF@\]y` ?@B  F F 991/<2990KSX@  Y##3y`}`y&# +KTKT[KT[X@ 88Y1` Y@  F 2991@ B  /<290KSX@    <<Y33 ##Tsŷ`OQ5Ls`$@ F  1  /<0356765!#!L8D{X^~ŷoPO` M@B   F F 1/<290KSX@   Y! !### >? ˸ʹ`'P` '@  F F 221/<203!3#!#U`7qu{R`@ FF1/<0#!#`3`V{Sq{F<m` 1/20!!#!<1BB`3=V`\pVg (3B@5E)! '.E4<<<<1@,41$ 4<2<20327&#"#"323>32#"&'4&#"326/{brrb{9SS99SS9{brrb{/Ǩ<9^N5=L^^LN^Ǩ;y`[` (@ F <1 /2<0)3!33#9U`33R`;@ F21/2#I #IRX 8Y0!!"'&533!3Hf\45h)_Vu;;` )@ F  F 1 /2<<0%!3!3!3ڹ"ٹ`3+`2@  F<1@   /22<<0)3!3!33#"ٹڹ`333R>.` ,@ E  21@   /02#!!5!!!2654&q8$~͓7_ZZ^{'">`%@ E  F21 /04&#!!263!2#!z~~@9LZ^_n7q{M@ H<21@   IIPX@8Y073267!5!.#"563 !"'q2 ǚ-VړiVFHL{ :@ E  F2<1@/0"32654&632#"'##3Jq и¾.`At"`<@  21@ B  /<0KSX  Y;#" .5463!##zwwVtS^a\'qk&CZq&jBBBB|#I##Iabh#FaF`C`#BC`CUXC`C85YBB##Ih;#5##I@PX#@8#55Y/V?@N F <221@ /<20#533!!>325654&#"#߰Bvz||яLmedY).ПĞm&vq{N@ HE221@  I IPX @8Y02&#"!!327# ǟ 2ғ-{FViګVH>=o{VyLFVyML`6@!E  <1@ /<0356765!32#!!%2654&+L8DثX^x~~~ŷ7oPv_ZZ^`8@E   F2<21@    /<2<2032#!!#3!2654&+N޹"\~~`7`73_ZZ^/:@N F<221@ /<<20#533!!>32#4&#"#߰Buʸ||яLmed*m&voyk&C]=V&^` )@ F F 1  /<20)3!3!#TfUf`3s48@$%6 )  51@ $-/<2<0"'&46733276=332764''3#"'&':y{d;]TCHI}rHGFFtAGCT_8d{{ђed''deFkmihhimw'AFf^^^^'`]:@  <<<1@    /<20!2#!!5!53!4'&#!!276XNpqONDNOQQfDCDC:@E  <<<1@    /<20$4&#!!2!5!3!!!2##~~EW^͓Lʣ+#3376!2&'&# !!!2767# '&SvwhfstgFtsfjwvú 9$#G_//wƪ//_H$$O{#2&#"!!327# '&'##33676>\" , Ux{ z{FVAW^3VH`3ʀ !#!#!#3 73` !#####3 Ñkk`_ !#!#!#!#3!3  o_<9d7`!#####!#3!3 kÑkk`_s@   9ܴO]9ܶ@@]9991@B  /<<9<20KSX@  Y@]##767!#'&'!ʓdսxQPtՀ`>YY~b҆12z(k{`~@   9ܲ]9ܲ0]9991@B  /<<9<20KSX@Yp]! #4'&'##767E]kKV:VS8V‰Jl&VtO\KtU'4! !#'&'##767!#3!PtՀ`ʓdսUn>qd2z Y~b_49n(.`! !#4'&'##767!#3!7kKV:VS8V‰]w&VtO\Kt`?sVszS#"&#"3276&#"#"'&54763!27654'4327654!"567376767632'&#"ssD#`At bTDt;<}J5?u_hFAXVRuťޠsj#B#' "2ZbrRUgr %',azQ^XRj7&6J- @' WoWdE\`[tO#"&#"32632&#"#"'&53!2654'&'"#5223 54'&#"5673767632&#"vmDPb!',-cX;b12i?,ZnN .rr. >._- > ^ >‘  tӪ ҫ q{&P%327654'&+"&'&'#";67>2# '&5476!36767623 !#"'&'&r-HVV?- ,4, -GVUH- ,4 .xt. 4 .wt. 4 `ta  _tp_   颈   袉   vt&"'0'&#'s3'<cS'&<sV'9@  0Դ/?]1@   /0]!# '&76!2&'&# 3!#SvwhfstkSh$#G_//ӂqV{9@  HE1@ /0@ ]! '&576!2&'&#";#UQQLNONPccccɖ#+qr͹rq;'''7'77'77did}}didii}}}d}}}}dBz/!"'&'&'&547676763!476767623 8  8 g    ) M #&#"56763 v][Jw}$)/K'*Ca"53#7 a#55#53g M 365%$# ʭf'rQ q\t{F` &3@MZg#.#"#> #.#"#> #.#"#> #.#"#> #.#"#> #.#"#> #.#"#> #.#"#> v aWV` v "8v aWV` v "v aWV` v "fv aWV` v "v aWV` v "v aWV` v " v aWV` v "v aWV` v "AKKJLQKKJLKKJLKKJLKKJL)KKJLKKJLKKJLX- #)/'7'7'7%'%53-#%5#53 3#kyo\wyo\zV\Ly[`@¬@_ӤRӤRZy\yW\zn[wyo\ԤRԤR߬@¬@Vm&=yuV8&>!:@  <<<1@    /<20!2#!#535334'&#!!276N訨ʨONDNOQQfDCDC&E 9@ E <<<1@  /<204'&#!!276!2#!#5333>CB>ytts9L^*..+URRRя>'+#!2'674&+327'7Uj~ rGj#u~{Sqrے-,9/~V{)%'7654'& 32'#"'&'#367632*nOSTTSSTFoWl{XY::YX{ ]ststsjts].01d d01j@ 1/03!3!)2$ F1/03!3!`:33G )@  <<1/<20!!5!!!!!N)#l8U` +@  <<1@  /<20!!5!!!!!?`۪ f3@  <1@/0#!!!2+5327654&#)qmL>87||9ժFwrKK"V `3@  F<1@/0#!!3 +5327654'&#rFRRQn!&&1`GQ``07 )(33 3## # # 3׈)D"AMF`33 3###'# 3?nfz!n`QL6mu&z9u|&z3! 3## #E#A`33 3###Tw8sŷ`OL5373! ###ʭd_dTy%u`37533 ##5#`eBTse``avFOQ5a!33#! # ##53ʨ_ʨye=3!!3 ###53dTsŷ}}z}5OQ5}2 _@   2991@B   /<290KSX@    <<Y!! # #!2_=y+*` _@   2991@B   /<290KSX@    <<Y!3 ##!*8Tsŷ`OQ56@    8 22<1/<20P]3!33##!#"dA9@`1@  F   F2<21/<203!33##!#W`39L -@   8 221/<203!!!#!#)"d9` +@    F221/<203!!!#!#W`3ͪJft8@<1@ /<0#!#!!2+5327654&#;"rqmL>87||9+wrKK"V!`3@!F <1@  /<0#!#!3 +5327654'&FRRQn!&&1:`GQ``07&.sAY%.54>323267#".'#"$&54>73267>54.#"+9lR2*DaSN}aF-?jQ&h;>e3.x=&QUW+Byc[sp8<{R?S0 $0>&1H3!(BT1kBtW22Tp{:SJ#&4t}f|}ާbm:E/fcYC(+G[`_&bnqxz?P4>73267.54>3232>7#"&'#".>54.#"qKц][-2`X'V$?/(PtMBpP-\_#D-)*%-8%7CFIGԑLV"- !(,!(؜XFrXbr> %gx@]sA9hY^    , Tָ&^dc+KiB&HiCsu''z-qu{'z ,@ @ @ <1@  /20%3##!5!!A+<m` (@   <1@ /20%3##!5!!B1BL<=V`o@  K TKT[X @8YKTX 8YI:9120@BKSXY"%#3 3;^^DNl!#!5!53 3!ssf=V` !!#5!5!53 F;^^`XXNl=;%3## # 3 3p\Y/su A{+3;y`%3## # 3 3q!r))kLHJqG5@ @ @ <1@    /2<20%!33#!!5!!+A+B`3@  <1@    /2<20%!33#!!5!!xZ9B1B9L|.@   <221@  /20%3##!"'&533!3_qm||x˪Awr7ٟd`F@ F  <221@  /2#I#IRX8Y0%3##!"'&=33!3f\45h)L _Vu;;#"'&53;333###;qm||֐wr7ٟ9d+`5333###5#"'&=3f\4+ _Vu;0$@  21 /<0!2#4&#!#z||f9dK"*I@#$ $3 +291@ $ (+<2076! !!267# '&'&=3%!&'& ":Cppoż vzKB@bHam `_F$$UgkL>A9||f{%.i@.&&K /2@ p000]91@& &"*"/o]2</]90"'&=33676!2!32767# '&&'&#"XY`09Jt⃄ fgjdcbhcneNRS]\RZF1!&łZdc4,ZZWW-!&'& 76! !!267#$'&'&=3bHa":Cppomw vzKBm|| `_F$c TgkL>A9f{1&'&#""'&=33676!2!32767#&'&RS]\ƐY`09Jt⃄ fgjdcbhcOJ{ZZWWRZF1!&łZdc4,3{,(vm'y[uFH'f532+5327654&#!#3!qmL>87||qwrKK"9wV`3 +5327654'&#!#33^HRRQn!&&,%wGQ``07$)`6V!#!567!3#:bCux+8.%5ժV.V+`%3##!56765!s{{v^̳;bVdžf;1@ 82<1@  /20%!#3!3+53276q"L>87h_9dKKV`/@ F F2<1@  /<0!#3!3+53276WRQn!&`3``07V!#!#3!33#;"9dժVV@`!#!#3!33#W{`39V/@ 221@  /20%!"'&533!3##_qm||xɪwr7ٟd+`G@ F221@  /2#I #IRX 8Y0%!"'&=33!3##Hf\45h)p_Vu;;V%3####! !+-}-VV`%3####! !H{˸ʲ>?V'P`yOh'J+1@oo]0{-&O"+1hN&ru  +@ 0?  ]1{-&jR -( +@(o(P-_(@-O(0-?(-( ]1H{o{m'yu@@]1qH'@p]1uQq{uN'r ulq&jTm(vN'rQuF'jN'ru&j:yXL/`T31'q;y'q3N'ruy'jsN&r'u +@ @O]1qu&js +@ @O0?]1saqu{7sN&|r'uqu&}jso#N'rguq&j#1'qr;=V&q^#N'rru=V&j^#k'{ru=Vf&^N'ru&j^j #@   <1/03!!3#)ժA` #@  F <1/03!!3#`LFN&ru&jGV9@  <<<1@ /<20!!5!!!!!!+53265N)#iGRiL`na8VU`;@  <<1@ /<<0!!5!!!!!!+53265?`nFRjK۪`na=f*%+532767 # 3 3*SfL>7( ^Y/su bzK5sx+3;Vd` +527>5 # 3 dkkCQO5r))`&9as mHJq=;3 3!!# #!5!suNt\Y+wD{;y` 3 3!!# #!5)) ~q4H &@  21@   /03!!"!"$54$3!fONDNONNCD#CD+fq` %@ F E21  /03!!"!"'&763!5>BC>9sttyLZ+.i.*RRPRUC 09@2&)  1291@"-(1220!"32765#"'&54$3!3327653#"'&NOO_KV! 3j^nN?4pi;?nhf1CDP_m}`61f[JJOZxx9qs` 08@2F&) E1291@" 1-(1220!"32765#"'&54763!3327653#"'&=C>A@j\-1C]^fety>dhd.*^\:9m4l01a`RUaPOORAsxx%7@@9., ,#81@'2-28904'&+5327654'&#"567632327653#"'&'&\]OOQRSrsdeY憆GGRQ?4pi;?nhf0!JK;$& hi|UV!bb[JJOZxx8PaF|5G@7., ,#61@66'2,6 KQXY04'&+5327654'&#"5>32327653#"'&NHtCDFEwGQPabLqr<=ih<>dhpb8f83,-F@.. NO]@AHOHXDEORAsxueV<):@  '+%*1@!'(/90!#4'&+5327654'&#"5676323#s\]OOQRSrsdeY憆GGRQJK;$& hi|UV!baV|)?@ !+) *1@ / KQXY0%3##4'&+5327654'&#"5>32ȻNHtCDFEwGQPabLqr<dhpb{v^̳;b`WORAsxue{-`6@F  F221@  /20327653#"'&=!#3!zgh<>dhpbW`WORAsxue{`3s0@  1@ 0# '&76! &! !2653d-|e'%{9!Ҏ׿qF{0@ E E1@ 076!2&#"3253# '&q кĽbZZb/n||r|r|>禞f/@  @@1@  20327653#"'&5!5!?4oi;?nhin+[JJOZxx}q`2@  1@  2 ]0327653#"'&5!5!x>=ih<>dhpbB1VFEORAsxue{~{R|ITf:/@ 1@ 20356765!+532765!T:WxM?77fb0dKLøLVs`/@ F1@ 20356765!+532765!L3DF1a.&{X^}з0)oPT 35675! 3 # # !T>Wysu \Yfb/X+3{L` # # !56765! k0X^̶8D')`HJoP~ŷt32654&#!##!23 #h /ϒ0*3V{ ##"&'#3>32&  k\{::{T%+ܧ$`tad dakj3&$54$)!!!!!!3!!"d;>v78ȒFwtw{&/!3267# '&'##.5463!632.#"%;#"w ͷjbckVteVgKww^Z44*,'ėS^a\s4qVZ{TD:V5`ZTfs%9@' !&<1@!/<035675!!2+5327654&#!#!T>WxqmL>87||fb/XwrKK"9+LV `'9@)"#(<1@#!/<0356765!3 +5327654'&#!#!L8DFRRQn!&&,{X^~ŷGQa`07$)oPft!?@ #8"2<21@ /<2<203!3!2+5327654&#!#!#qmL>87||"dwrKK"99V`#@@ % !F$2<21@!#/<203!33 +5327654'&#!#!#UFRRQn!&&,`7GQa`07$) !!#!3#q"r+A9` 3##!#`9L3` F@   8A!p] 991@  /2  9033265332#54&+! '&ˮ® ,gQ]*-呐u\GCF1l[R.$)K@  8Ap]2<991@  /Ĵ`]0 ]376! #54&#"!2#54&#!$ˮîXgQ$9 𝶫F1l[%D@   8!&p]<2991@    /<<0O']32#54&+#!"'&54! 4&#"3)GgQG*ɟn(!ˮî5ZrF1l[=ó|#ӢI|H@   8Ap] 91@   /90O ]32#54&+#4&#"#576! YgQGˮîːZ`F1l[O 9$\)$30!2#54'&#!3276=3! '&X_`07QWWWWˑ呐1[[F1l*1jiij 9㒕$2%!67#"'&543 2#54'&#!3 7654'& f<0I|q4_`07Q5˧OPPOOPP'.ƪV][[F1l*1LL]]]^^]])D@8 :  2]99991@  /0%!2#54&#!3!2#54&#!}gQXgQF1l[F1l[)@@  8Ap]<991@  /0]376! #54&#"!2#54&#(ˮìXgQ$9 $F1l[-:#'&'&763!&'&#"#76! 32#54'&!#"327654:gimINK(*WWWː\!%_`05л9:E5:. rs TfLQR2jjiu$[[[F1j,1i--Q@+#! '&4763!332#54'&)"32765pG혐nG_`07TZ5WWWWܕ.|n[[F1l*1}Hijji):@ 8Ap]21@ /09]363 #54&#"#ˠ(ˮ;dK2V 3@ : ]991@ /0@0P]!2#54&#!}gQڶF1l[327653#"'&!#3|%3x*%qXdq`>WWK7}bbpiOA$3! '&7#'&=33!2#54'&#%" 76'&ɼżg``07Q_`07Q|y&bc\[F1l*1[[F1l*1 椤)!## '&33276=3)ˠ혐WWYWd+&jiih) !2#54'&#!5 uw _`07Q1k,[[F1l*1f'1?%#"'&543267#"'&543 327%&#"32 7654'& oUIeβr0I|q9I9~dX/? 9.YOPPOOPP@$2iw'.ƪdkWM( ]]]^^]]?@  8Ap]1@    /90O]%32#54&#!4&#"#576! )GgQìː!F1l[ 9$\,3276=4'&#!#5354763!!"!2#5# '&WWYW07Q `_# Q70X_`ˠ璐ijjgl*1[[1*k[[Fd%!! '&332765!2#54'&#)呐WWWW_`07Q& ܕ$ujiij[[F1l*1S" $53 6&#!5!2654& #4$ 5JRS覥A ++.WHNMItYa[J\n@@  81@   9/0326=3! #"&=33®ìGœgQm 9-!F2lZ) 3276=3! '&576%7%5zZ[WWˑz=s9W/hiik 9ψ&dAU)7@  8Ap]1@   /<90]376! #4&#"!ˮî$\uB)4'&#"#576! %5%$76aZ[îː 1y=\gW/ίgj 92dAU##576! #4'&ˈKuˮ9)uBGlP| 9\̍P0%&'&43 2#54'&#!3!767654'&'& Eq4_`07Q5e, 7OOPܪƪV][[F1l*1L,@B@^^]t~H@   8Ap] 91@   /<90O ]32#54&+#4&#"#76! YgQGˮîːZ`F1l[Ou$\)8!!# '&5332765332#54'&#^혐WWYWG_`07Qd)jiih [[F1l*16).@  8Ap]1@ /0]376! #54&#"(ˮî$9 uS0@ '&53 7654'&#""#6767&'&5476! "327654'&RQJRSSSSRefg#RHJIIPacIJIJcaW"ccttstNMMNMMM *c" Y[`XX^[Y01YtAAAAtY10 =@ 8  Ap]21@  /0 9]54&#"#363 3^ˠu2;dss:\,<47632#"'!2#54'&#!##"'&=337654'&В􄑑I_`07Q _`07Q*]WW]_WW_rsppzzpS[[F1l*1=[[F1l*1A>T]=BD=[V>Cs2167654'&4'"!"'&'5&'&547632qG^CC95+<&0kljxw{vEB[eK[ 4D~n>=>@%c3A +mlpp/E# ,,W`aru~^#33vx%"#476327653[RBhj[RBhjTDDjlTDDjl}fC^7#47! !"33254'&'#" q3U7a\ "9S A5z\&NZ%03!Z}4b`&^@PP F'<91@  #/<<<290@0(P(p((((((( ]%#"&5332765332653#5#"'&E``ruSSrw?XXyzVU|:<b`^zbzh02>>Vd{?@    N  F22<1/90`]54&#"!!#3>32||Buܟ6V edqV{ <@" GE!<221@  !032654&#"##"3253!!/+:||:Z/\RdaDDadOV{=@ N  F2<1@   /<  90!#4&#"#3>32!d||BuZVH`ed X?@ NF2<21/90`]3!!3276=3#5#"'&>>|TVCuddZL PO_bvfcxxqV/{<@ G E221@ 03!#"325332654&#"Zs:||:էRdaDDad,@ F<1@  /0)3!!32#54'&S[zM`01LI[F1i&&Vd{>@   N  F2<1/90`]!4&#"!!3>32||VBu ed\V6{ )u@ +G  F*2ij$!!$ISX $<323#'&5476#"3276#§:{5`4xBdBJ4/' daZ+h|{Nvqq<q/ 4@ ! GE <21@  <<0!"32765#"4763!33ƈbOMSK}<zaksC+D߫LVd5@  N  F21/90`]#4&#"#3>32d||Bu\edV` @F1@0!!3y^ VI@  NF221@  /< 90@]32653#5#"&5!#3||Cu`a{fcLq0\@ 2 $G,E1Ĵ,1@ 011(1<<0!""<<!<<#"327676''&5476;#&!!'&'&4763[AS].SD81N/Vɮ!qZsIR\++(VL-%)$?뮘VX:@     NF2190`]332653##"&||CuZ{VfcdKqZ 4e@ GE5<@ (''*%%*39/ 91@. '/ 90@ `6666]32654&#"#5#"325&+"'&5473;2/nD:|WCv>!%7)/kPըdaDE<6pG5P0,!K7V9{;@ N  F21@   /  90!4&#"#3>329s||BuH`edTX-b@ (N  F.<<2 -9   /1@%/<<! (90#5#"'&=47#5367$732%326=4'&#XCubdzzp>BiO>AycW fcx{Iʪ`&$%8vJMO;) +?@-% $NF,21@ &$&)$/90332654'&/&7676;#"#5#"&|| M.=<(`Cua p0.- */(fcVy`2Z#G@%  N!$21@  !   /<90;32653#5#"&5#"'&5476;#"||Cu;^PZl}YYa{fc^PzKWV{!<@ #E F"<2<1@ ""0!  3!!"'&547654'&#"#4632/Q@'$C#@l;qsDE E+G56dZY0Y^cԫeed{QFV;`%X@##'  &9/1@#&&990%   ! 3!!"'&547676/&5476;#&(3W:'$F[L2se`6g+! E/>A/(32||BuƯ`ed X{XV-=@    NF21@   903326533!#"&||sCua/Vfc{%i@  PPF&<<1@ "  /<<9  90@0'P'p''''''' ]3>32#4&#"#5#"&533276BYƸ||zUVCdȸ||XW{ed\_`fca_\Vd{7@  N  F21/90`]#4&#"#3>32d||Bu\ edqVZ{J`@F1@/0%!!3y&"`V%k@  PPF&<<1@ "  /9  90@0'P'p''''''' ]3>32#4&#"##"&533276BYƸ||vYVCdȸ||XW/ed\_\Vfca_\V{$U@&E  G/<2221@"%%<<IPX32#"&'!!#54&#"326չ:{{:+Īdaad)qu{RzV*"-6u@83 .# *E7<<<<<1@&7/  "7<2#99#93.  90#,<<. #"'&'53&'&547632##4#"27654'&,Dd%Kcfep_{5S#al~EU@<%I]7_E8BQ-a`ta2N-bliZn!vFDs:#+IJ>8@    NF21@   /90332653!!5#"&||^CuZ{OfcR@<21@//073#3#R` 27#"'&'3U oo,rrONcAUUWDC <21I:03#3#D-dC'KRX@8<1YC %  <<1@  <5G.i=dB]Gg`":T)yX`!  1  /204&#!5!23!5!&nZͦy–1CZ`G 1B /<0KSX@      Y4&+532##n̒[^ޕ<S"Xh`$1/20@]1#!5!t/яd`4@ FN F<1 /<0@ @P`p]!#3#4&#!5!2snvy–t`FF1/0]!#3t`X` #  1/20@ ]5!"#7XNrXGяy Kd` (@ F N F1 /<0@]!#4&#!#!2dny–/``*@ E F1@  <0332654&+532! w`ҏ/t`FF10]#3tXV` , FN 1 0@  ]#4&#!5!2nV#–X` @ EN <1 /035!26&#!5! #Xt뒦X&@ F N1 /04=!3!#T[CLzld` )@ F N F1 /0@]3!2%!4&#!6n`–X`^@ F E991@  /<990BKSX@     99Y"#673632!5!4&WWHFdaxѧȠ˨Vt`FF10]#3tV X` %F  1 /0@]4&+532!5!ny–X(` *@ E 1@  20#5! !"264&+" я0D_ЍNO`U@ F 991B/2990KSX@  9999Y%67676535673VGu",:pΈLƒ4U}*p>1=!"$Vd`1@ FN F1@ 0@]#4&#!;#"&5!2dn\pTQV#–U;zdd`,@ E N F<1@  /0! )5!2676&+;#"&5*4{\Lwuq`U;zCVp`D@ F  91@ B 290KSX@  Y#3>=3#q_V`}՛C!`J@ F  991B /<0KSX@      <=3!5!CcMgXC"`ԛ:V`,@F F<1 /0!#76654&#!5!2#3l)WzB'*˺u,/HVv.4X` ) FN 1/0@  ]!#4&#!5!2ny–`/@F F21@   /<<033$763 76763) :0nLaT`Sl+7`+@ F 1@  /<20!#4&#!+53265#5!2ndDrL~y–a; `')) `')- `'--`@ D103#`n`@DD1<203#3#`|"%0#4'&'37676537653#"'% '##5 rb{ .q & q-aT !}Bs12j{@E#$]} q!<"ibP-F`)*5"2767#"'&54767&'&5&76 '##5M@V:118UF%/>7P6.N@?^G?D)7-#F}Bs)^ &# \*$@.") n F>]KH*!#TH#bP-F`z %3#%3#3#%3#ƴ>^< %3#%3#%3#3#%3#>>^!#53ӤR@ 327654'&+5336767N5G4pQf$h?FA@6b ! eI(R[2* #53 3#ӤR%@-$%#5754&'./.54632.#"'/XZH߸g^aOl39ZZ8{4<5/VVL89CFnY1^5YVeU"756767&'&54767632&767/SD435gcbnZdF31`9:H:ZU!LOTAKv?=0ps2#nl '{R'z>oy3#&}9&m~ &~& (f&X} (f$3  !27# '&5767"$JKԖ^`e~h'?6`vc–e4- (&X}?}R%67654'&'3#"'532# b&\}q  ?%#&'$473327676'&/3327653323#"'&'TPxmil_Qb_y^@@$;sR,%@n\Kf% I01_2F,k>GHܳ&%0l}=J"5^.327654'&'&#"&#4763&547632#bzL,5;(.;Dn2KxAZM\MObxX'*9:X DD(NOf7*(?$S-8APH&}? "327654'&'2#"'&5476B!799[]KB{ƶ`Q%T*WE{R,,9.UMAx|KU#JN @ &"34'&!5 767"'&'&547632?,3/V%._]g>v-(tYhYH9!$3/,;̠X*VL_ !"bWg3ZfJ6%#"'$47376767654'&'&'&'4762#&'&'&VfxH?Ba=~T;~BrC:@_` B(EN><}9M I&huqc- !P85J.39sJ%*==!'&"7*S@UYD J&o~ $5%5%HHnnnn$&567&'&54763233"/#"'&5332767654&#" %!lE?I(7 /4KU^r8Z #08 " -d$* 9^W4'6O'&n=NV)qaK" %$5%%5%HHnnnnn$5%Hnn$-&'&5476323"'&'#5276767654&#") lE?I(7$# +EȓV " - 8_W4'6O -n=*{nmp" %$5%Hnn8(#"'&54737676533254'3'&!9EO)"a 2=`YG g -SGL(E?4mmb}8T"RY$6îs9It6Y ! 4&#"32>"&462X@AWWA@Xz柟?XW@AWX栠h732767#"'&'gC*6:)kXZZC5"LMD6{S )L}@FOwO  4373ËF3# !#'3%1yI !nR#'337673#" %1BR{6)coajr!nUPymL%#'37676537653#"' %1/(/H/; 'G 44.5WY9!nr|> @2%,*;l>3  *"2767#"'&54767&'&'&76#zf\MOYp0;JcX~VI|eepdkAXH,7p 4C@#90L@rRiUZhsBBsǮuu5aU#'#"'532N%bU`DK*22<!&'3673b~ĚZ00ZĥxU:Ũ ;6I<3#&'#6̴UxĚZ00Z~bI6; :d#"'&'&547632#54'&#"=:i_{\ %Z[,,G\O98<SGU37e{a}UwnWl42@B^!x$%-`+-!d! M fM&I&9 &9 &'~& && & (&Xz8 (&X? (f&X~ (f&X (&X (f&X (f&X /'I>\ r'|>\ &'|\ &\ :654'&32! '$&73! 76767#"'&54767632)B,4((7(*Hnق@AZAd#?zKbNLZB`.+M;3*)3P&ڴF=)d \^tL"9;l&NKCW4,E$2Hf6&x~&xx)-%2767654'&54767#"'$473$62 #dGf>5?AhXPA7.EB|=Q#!w*6(  %{{qeVUI&b \^~B")+&&j|H#"'$47332767654'3HdnaPm/1]]LGL"fh8D%jdQ45b`ޜ ('&X}? @r'|>nJor&o|>m}~RLR%'&547632&767#"'#'3X\lTX\D8/0E= %1Bx:=$!"4'Qjr!n8j$(327654'&#"327#"'&5732#"-2!WZWXZV%2-Z(.5__52ZJkV0B7,g`p5oU%mao3/AbM3))I<<d (@  1@  0"32$  h P3343ssyzZ (@  1@  /20%!5!3%=Je+HH=  21 /203!#3ulh=   221 /0)5!!5!3=lȪ=   21/0%!!!3!l =21 /0!#3!=l*=1/0!#!3!=lcr8A'91/0#3ASuNA (  < /<10%!3!#N{ 2@ EEܲ@]91@   /<02>4."#&'.4>329[ZZ_PGr䆇䄄rEMp`77`p_88 1ŧbbŧ1 y@ 1/03#+q!/@ E  EԶ 0 ]1@  0 6&    z>z='+@  2291@ /2903#36Q*=q33# =qCq @ 1/<0)3!39Uq"q @ <1/0!5!!59qKqO!>@#E E"ܲ@]ܲ@]1@  /2<0%!!5!&'.4> 2>4.":RJr 惃sKRQ[ZZ{ 1ũbbŨ1 p`88`p`88 %@    21 /03"3#!5!p9 fq2@ E<21@  /<20!#!##"&6 54'&"3qvCf^]8mr^:<UfɃ]8ƃD '@   <<1@  /0#!!!y5!Փ/= '@   <<1@  /03!!!}5!Փ/ %@ <1 /0!!27654'&'2#!3,R4,,=iXXXlι]Oz}I__ҭ$;@   ܲ_]9@   /999@ 10#4'&'5!4B 5McAq_9V= 491@ /̲]촍]0 53#T9+!-@ #"1@  !/203432>324&#"!4&#"!}x5%^ZHZlK--Xh&|ŕnc= &@   <<1  /<<0!5!3!!#KK?=9@  <<<<1@    /<<<<<<0!!5!3!3!!#!KøL=??q!@ 1/0!!9UqqK==1B/0KSX@Y! #tFC00B~+n 4@ <<1@    /<20327654'&+!!2/!!m]%i ;@ED\TqQE=4."XErrJSRJrCEoJ[ZZO{ 2Ʀ1 { 1SV/p_88_p`88} @ 1/0#!#}+B} #@   <1/0#!#3}Om +@   <<1@   /0!%!!5!!z;  TKѓ+qO $=@&E "E%ܲ@]<<ܲ@]1@  "#/<<02>4."%#&'.4767673 [ZZTXErrJSRJrCEoJR"p_88_p`88 2Ʀ1 { 1SV/ qO(#&'.4767675!5!!2>4."XErrJSRJrCEoJRNQ[ZZP 2Ʀ1 { 1SV/ p_88_p`88b/1/0!!VBf#"&/#332?E=9Qct2 %xf" %/x $Dp/1/03#=f7u91290K TKT[X@878Y3#'#f[fE9190@ Ueu@ )9IUe]]!5'3{Bf3326?3#'#"&'Bx% 2tcQ9=Ef$ /% "[fC9190@Ueu&6FZj]]5%3%[{fS/1/03#̭F'/1/<<03#%3#\yu  <1/0#527#53gu  <1/03"3#  gd 1/03#!!Mdd '@  <<1@ /03#3#!!Mޒ1/0'!! '(033!!3'#67654'&67654&udruxtNMddx>DD>xIIv! RTxXY`aw,0dc1-!:;z{t{*L@$% E+<<<<@!#91@$+<@ (+0%"3254"3254#"54!#"543263 #4#"h??AA??A'+,LW@@@@@@@@pطQQ9/@@1(. #E0<<1@!0%* 00"3254"54$3  !2632&#"# 54-654!"`@@@CvBըiUv˫:knL?o@@@@N;Ejfae:.88U8327&'"254"%47&5476! #4'&# 63 #"'632# i60IKhh*)7!o^RX;*:9u`/'"6OfqAtqLI $\9.ȶmQ!6@   E"1@"  "0463 #"&'7325#'&&7'6met "xCBCquЍ h! ACBB )2@  #&E*<1@  *%/0"32654& 4''&5432#5476$ % U%|{e6Lj` %"%:yx~)RhKK>  65@$- 3 (E7<<<1@ 5/7&7"32654&4763  !27632! 54-654!"#"`$ % 琺By#xJi:OknLIo %"%0yKpjNdfDQcwiC|85ss *;@&%   E+<1@")+&+02654&'&47&7'73%$$!% l݁6ZA| $! $Vm-G4 p?{1@ F1@ <@0%"32544!  #"54$32@@@)@@@@Pvv .<@- " 'E/<1@ $/-)/<20%"32654&672#4#"#"'&#" #"53232l$ % L 7*>(z*M#6&8"$ %"%3|0ۯqiPWu{+?@-$'+ ,<1@ )!,&,<0%"3254"3254 #"5#&767663 #4!" @@@@@@!Ӣ7y-^@@@@@@@@edm%W ,9@. $  )E-<1@ '-+"<0"32654&4323254#4#"%$7"@$ % 쐋'(uj %"%@կ̰Xsgh\_"9@ $ E#1@# #<0254#"53265$54767653!"'#W@@>z]U]iTrs@@@@pegu/ssIs|2@  E<1@  0"325447&763! 3%$5@@@ԶMg@@@@R&Ѩ'LBIs2@  E<1@  0"325447&76! 3%$5@@@ԶMg@@@@<%Ҩ'hBY E"32654&!"32654&&''"&5623253765$7465&'7$ % $ % Kfg饤IJ %"% %"%IKbv4ˋ42@7-]fn9h%A@'$ F&1@&<<@" &0!"'# 432!32533253"3254hfg襤>@@@ JJ=|\@@@@@h} -?@, (,$ E.<1@"&. .<<0"32654&2533253!"'# 47&5432d$ % AfgB %"%4˩/JJ=%܉Mh -?@, (,$ E.<1@"&. .<<0"32654&2533253!"'# 47&5432d$ % AfgB %"%4˩JJ=%܋L@`$@1@  <<03!23! '#"543225O)3Ɯ)`,88{s *;@&%   E+<1@")+&+02654&'&47&7'73%$$!% l݁6ZA| $! $Vm-G4 p& ,7@  '#E-<1@+.%.0"32654&4! ! &# ! ! '&54323 c$ $ 6buUKX $ $8${nE{N%O 0@@2, %&E1<1@%/1!*<0%"32654&&'&'&5! 765! '676%&4% $  ,D )@ ' 1#-E5<<1@ )6/%!60"32654& 4%$54!232#"'&#"! '&5432h$ % ${ajjh@MqKy)LJm_ %"%1EYl0xP^b8Rsu_|]F'"2''&'$!32'&547"32?6AS2;9’hhNU~ +;9jq!Bao' u ` +@   /991@ /0! &7623$'4'74"Y#!A[VB8?<kP$U.FM?>={{+@  E1@   <0 ##"2#"53254#"n=;C>@{jVR777r&" @ji  /1  /<20! ! !5 74! %&?%~?>~@i$@  /1 /<220! ! 3!5 76! %&>%~?>wJ~~@ji*@   /1@   /<20! ! !5 74! #5%&?%~?>~N@i.@  /1@  /<220! ! 3!5 76! #5%&>%~?>wJ~~T3"36654'#"5432AA\(DeN[̼o[$N[u%@ /1@ /0"3254"547&54323253r>Juum@s> [yu?{EBXF` '656%"'&76! 4"3YVA!. {x9322674&#"CCjFPH OQ$!%!p'(FnJv-O!3] $ $z{&00, ("32654&&3 #"4/&5432N$ % s $ˌeqɘzm %"%82y,v\#"6@ E#@! 1@ ##04$54%&&5! $#"57"3254ix@@@X4|`Pٳ ?@@@@ ""32654&5&'7!$#"47#$ % dt.; %"%Ȉ_p 8>u%t/;4#"#"'&#"$#&532327632! '&57"32654&"3C2z7J,"/IN\=0BWTO3H$ % Xt\DD\t] 5<\UCfwpv  gH %"%V@/1/03#V '@ /1@  /<0'6"%)56574 65+*+UGm++),}݅.p\(>.4"!27676327673!#5654#"'&'&#";&543.%2~*&IHHܝBOg(LBC]i%>e>.`h>3A?~= h\$kb8:;-F_Zkf2)N !@ /<<1@ /<<053533##5N؎؎؎ P>r@ /1@ /0432#"73254#"ЄLTPPHHH` " 7654&' ! '&476^L:NbX1coqoh`WĒcg&24764'&#"676'&'&5476  pHgc/5pIu upHECle\gUܚsuϨcy\$24"27#&5432# '&5?$5+r%3]f́|pHFPfouTapH/%24'$5432327#"'&#"%$'#"54322533]L/|tkZ1AQf(3Ɯ)DjR:jTh8KOpt$68{cW%24"$'&5?$532&'&32!r|T9lc ~x?LvTamY<KcW-224"7&5&326532&'&32$'&324!B}b$|T9lc ~xr=Ch(筭 ?fXmY<KLvttY4@'&''"&54323253765'$543227#"$#""32654&fg饤u ^|uISL\>$ % ,IKbv4ˋjEaTW8ҋ %"%{ &%"324"324#"54!#"543263 #4#"h??AA??A'+,LWpطQQ%Rpt MU"32654&254"#&76767%4#"#"'&#"$#&3232763276'767$ % nnvp+-"2D2z7J,"0IN\=0J%.3?5xv'Q %"%933hk//3wt\DD\t 5<\UCrTF-2bG;"b,i $5354#" #"524"m~ŶejsX\|9 LX"327$"3273253!"''&76324%$7&76%$5#0#&76262654&'&A?A?fxԅ$8$+Rb,7Hu Ӣ5r$!% @@@@@@@mӔJce$3- /ԋu cd $! $ I"327$"3273653%"'%5254%$7&76%$5#0#&7626A?A? Tcb*@RX6&$Hu Ӣ5r@@@@@@@mo6J,/7'- /ԋu cdPi.".54>7!5!!"32>54&'7i7eȬd7&KlGqǔVXxyӚYlūc66clJ7^sz֟\[{6yEr2b\TZ@#!#".54>7332>53!w!KNM#hN&?Q*nq-Nj=8kT3$ KfWxc*s@nQ/+Lk?Z 5!4.#".54>2!/A%'B/+(=B=if:y'D33D( R0oCEOc88cO'MP.4.#"32>7#".54>7!5!!"@YmEgLLfjJkoX؁q؝XGxdI(YjiMKkii۫uuZ8!4.#".54>32i+Kg<>lP-7:p0M6NifL>@kK*0Rp?>?1ill3eMF}gZ,#!#4.#".54>32!|/@%&@0&%BE;hRPg;(C03F(#P/MCOe96`PFZ(4.#"32>7".5!5!>32&/Oj=kOOδMEHHjMoP.)NpF@pR00RfLLfan0/IP- %#"3!!"$&546$3!!J׉@@ט`a( ]wxԟ\Fww2P:G!!3!n!.x1Z+(4.#"32>#".53>32`+Li=?jM*,Ni=>hL+iJEMfLK{W06\xCKxT.4XwA_bKr62NpZ+4.#"32>#".5##!>32*+Lk?AlM+/Pj<@jM*KihNIHk?pR0,PpEBnO--OnβKKgcBvj12KZ+"32>5!#".54>3!!5!!Q@lO--Ol@>iL+MghONiL.QoA@nQ//Qn@/eMMehJ{PS$!4.#"#4>3!!"632,Mh<>e-PKhr>iM,fL?nR0*'R} gM1Tr@aKfPc K4.#"32>2>73#".5#".54>2*LjOwϙYVz|՚X0/':Yr?DsU0 E nǬc67dȭe7><qU'!RkL)[z{֝[W.>#K]59_|D 6clkǬd77dk{Z'kE"1%P#".5!5!2>53KeiL*-Nj|fH'eMOfXAqT12Vq>P&!#"&'.5467!5!32>534JEp=AB7D4+! )#$+e;:iP/05IGHeLJ )RpEn),/,Nj=Z""!#".54672>53!`NgiMNL6--Nk|jN,+eMKgV[@n6@nQ//Qn@]S#".5332>54&'7SLfiJ,Mi>=iL+>5{-H3eMKg@nQ//Qn@6|>/dfdS 4.#!!2>7##!!!2/Oj;;jO/JGHܓ.gM@qR0,Nl?dEHCMPbF4.#"32>5>54.#"#".4>32YywКYXxԗR6aO"?/$/ .@KZj>mȬd78ekoɭc5[])D0z֞[[z{֞[WwAoV5'//!6cǫc66clv?GOPb 14.+32>#";+##".4>3!2>mTEETmFUl>>lUFk\܀EFޥ^^ހWܢ\YqA@n@oWVn?~ٟ[][ڟ[]F!#!3!3!3FS!4.#"#4>32/Oj;53`EIgJ,Mg<:iO/02Kf>mQ0,Mi=nB-#".'332>=#".533267653BLi`R0Lc8;jO/FIiJ,Ni=:c'YgKSkFzZ40Sm>1/Jg@mQ.+(P|S!4.#"#3632+Kh<7g4QɑeL|?nR0++N|uaKfPk*!5#".54>32.#"32673YUlǬd77dlps[.\YS$wЛYXy^Pr2@6clkƫc6JH,Z՞Z;;xXZ)"32>5!#".54>3!3!Q@mO--Om@>iL+MgiNNi.QoA@nQ//Qn@/eMMehJ35S !4.#!!2>7#!!#!#!2 )4)2VsA4(AsV2*=&$;,S~U+ 9/XZ.?#".'332>54.'.'.54>32#6.#".KfbT1Ng:jN-VU^]4R8eMRlHzY3/Qn@72*63UeMTkH|Z4/Rn@)D BFRZS#"'!!332>53SLf,Ni=53 KihN/Pj732>54.'.54>32#.#"]~|ۤ_-H3K7>kTSj==jS8mV4/Rn@8gQ6';#w٥aL~מY[{:omn:vQNVl=53 ,T,Pf:l #D;%?.a=4.#"32>7+!!#".4>;5!5!54>2-  -)//?%&@.%?/:fPW2WvCDwX22XwDp=  @xY9lY|PW!%! %674#"&5! % %1,lշ._z+,S.+RLo ۤTn8d`'675$!2363 ! ##&!"#"32CxuM6sc*rE) PlaؕyZeY!&732#"&5 ][*8F e]N/I3^@[7rr2eY'!&732=6+537#&5! nN ggGVzkB3L.ķ@JKW~Xq\,d!$75&7! &324'"6Z^,CH!IJ:QU,X\$d56#"! !2363#"32UTcD>0R^<]te'6#"$! +.!TueudY! 473254+5365!5 Wb 퇇2mNEIJ(bC+d`3675$%2363363 565&#'#"#'#&#4%"fDjPQUOR Tg@! 5y<O-6d! !234#"#!#"2mLC{%  }>e~! )!363#"7Y`PlB   ry_d56#"#'#"$!2363 H LDVza!t#rd!! 4732+53274'$53X`4"gzҶ/c7Qib6ȕ!6G))=HdY2! 3325 '%5%Uc| CGko 4Y_nd9$5$#"#'#"$%7367 > B)oQT7-ngDP5kn1w5! 3324&547cTɜW\wؠ?c-'9dY: %3! ! %#d6*Q&q)QGFޕd$! %35#$ 3#3%#" 5;54 X`dHrrr44OfkQؔcdX1&!"'#!525#"3$%2363 #"321ZG\KVOvBppdY_!! %$54#"'! ! 4'7_GD `U6I@bYsrg8A:ԃM){6\lY(3324'7%#"'#723! ߫fB߻cV̿0?7YpeW $!6=3! 47$$5! eڞòkHuLL8TWJ&)*dr54&#"'675&%'%"t_CCt?h]|KytJfqI8=ۣ&*2 5#5#5#d 2"4;%"4#"32;ѹF|pux$LRQ´h=@ B1/0KSX@Y %##.d+hK'Eh)hO'zt@1B/990KSX@Y sNO'z)tN'r)u'ew^?1B/990KSX@Y 5](&xyw^O'z1t'56'&56'O'56O&E'E'EO'EO&O'z0'wE&O'wEO&w^O'z?0 3#!38Ygg`nC^^n7]^7nn7]]0d"&533265453zWA@XzCss!AWX@+!U#454&#"#462zX@AWzB+@XWA!s0U!5!2654&#!5!2@XX@s0{X@?X{0U 4&#"32>"&4623X@AWWA@Xz柟C?XW@AWX栠H> %'111 ]]1<203!3CC~K3#K!5!${1V #5#53533zz{{1##5!z$ %{{:'U'"'=wq'h9hK'Eh0hO'ztw^:<1B/0KSX@Y7 5wM40w^O'z)tw^N'r)uw^'w^:21B/0KSX@Y%5^xyw^O'z1t'56&9'56&O'56O&'wE&O'wEO&O'wE&O'wEO&w^N'r1u<291B0KSX@}}}}Y5`sbbs]103C)8)K'E)*@ 8AKTX8Y1  /<03! #4&#"!!ˮî$*\u)O'ztw^ 2 <1 /07! )5! )w5BhPa.,~w^O'ztw^N'ruw^'y` 2<1 /0%! )! !`aPhB5jiy`O'z"t&''&O'O&'w'(O'wO&('y'(O'yO&(' ~21@  0# $54$!3#"3nn͙ nn{'|'|w}'dy'F> %@ 21@  /90"32654&"$54$32#Bz_̀#R3IK'E %@  21@  /90"32654&#4$32#&f̲_ȭT#R3{O'ztF> (@  21@  90%2654&#"3#"$54$3Bf̲_ȭ벃F>O'ztFN'ru (@  21@  90%2654&#"672#"$53z_̀ʃIO'z5t'F'?'~'|?O&~O&|'F&O'FO&?'~&|?O'~O&|?&~  $~ ]21@ 02654&#"632#"&53XP^J\TaaQ_VFTHUGQK})~J8 2654&#"03#"&54632xOaT\J^P_KQGUHTFV}i~F'x'F'x'F> 1 /0#4$32#4&#"#fK'E 1 /04&#"#4$32f#O'ztF> 1 032653#"$5fF>O'zt FN'ru  1 03#"$53326f餗O'z5t 'F&?'~&|?O'~O&|' F& O' FO& ?' ~& |?O' ~O& |?& ~ ] ]1 03#"&53326yaO\T~JPML 32653#"&5T\OaQLMPJ~w:1/0!#!5!)+jK'E!j@ :1/03!!)ժjO'zt!w:1/0!5!_++wO'zt#wN'ru#j/jO'z5t&5&w'&!'!O'"O&"5'#w&#6O'$wO&$'&&&O''O&'&&]10!!3 nC ~21@  0! $54$)!"3͙ nn{3!5 nw} (@  91@  20"32654&'2#"$547!5__ȘLӦnjFY 'i<FY} )@  91@  20"32654&'!!#"$54$C`^ȋMӑnj 'zi<<w "@  91 /20%2654&#"!5!&54$32__ȋfLnjw'z<>w'r<>FY #@  91 /20%2654&#""$54$32!C^`șMgnjFY'zT<AH}':w}';:3'AFY'yA3'BFY&ByFY'rT<A\ 2654&#""&546 !j>_IEcI_(0MJBSKFXCIn~|Q;n."&5332653ܨabaaJPMMPJ\ 2654&#"0!5!&546 _IcEI_>jm0(MICXFKSBJnn;Q|~w 1 /0%2654&#!5!2#bŘ쥒FY 'OFY 1 /0%"$54$3!!"Cꏙƥ᪑FY'z<Ow  1 /052#!5!2654&᪑w'z<Qw'r<QFY 1 /0"3!!"$54$3CbƙFY'z<TH'Mw&M;3'OF&O13'PF&P1H'Qw&Q;H'Rw&R;3'TF&T13'UF&U1\"3!!"&5463RiPYnvDZHCn~}w^ %5-5 ^j22F  ? 1 /0!3#$53TCc Xon2K' Eh @ ? 1 /053#3  cCT-ncCO'z thF   ? 1 /0%#5%3# c--noXF O'ztjFN'ruj @  ? 1 /0%!#3#c-gCcnO'z3tm'fF'f'h'hO'iO&i'jF&jO'kFO&k'm&mO'nO&n&m  ] ] 1  04&+3#XHǜV+.#"#"&'532654'&/&'&54632Cw7Bh#-8GC>=JGBAm'./G?;=~ÇH)@@V\`RʺªV\`RʺªhZ·%XhZ·Fl632#4&#"#"&3326tҪºR`\VҪºR`\VX%Zh۷ZhFlO'ztF'32654 !"/.#"3"54!2!rz|K٬42 swUҤ'4X˧|`í~pX˧|`J3~F'z<F'763 #52654&#"# '4!"326(24׬'Uvr!24֭٣K|zsp~ȕ`|Xp~8=`|F'z<&F&'F&O'FO&'FU''FU&'FU&'FU&'>72#52654&#"#"&'463"326[*'sobI=J>",BR\*$jt_UV) '2654&"#"'&54632! 33265,B:d:B0<~JIjˮîB,">>",BVU_tjN*$u) '"2654&'632#"&5! #4&#",B:d:B0<~JIj!!ˮîUB,">>",BVU_tj$*\) '"2654&74&#"#! #"&547632(B:d:BB®!!jIJ~<UB,">>",Bu$*Njt_UV)O'zt)O'ztS^$264&"&546; )5! '&Vhf# fw_:@ 91@ B /90KSXY%4$32#4&#"!7g#ʲfhXdfF.=@ 1@ B 90KSXY#"$533265!>ʲf"fw_?@  91@ B 90KSXY '!32653#"$5g"ffd餗 K'  '  O' ;' ;O'  '   O'  ( (2654&""&546323326=3#"&=bFntnPX/Q,CEmaZT:KMMKFHn|ppX;oBGj9$ 3>2654&"!&546323326=3#"&=!"&54632!2654&"bFntnP?+/Q,CEmaʔ/bFntnPZT:KMMKFH;XppX;oBGj9|ppX;T:KMMKFHFY<@   91B /0KSX@ Y!"3"$54$3!7YꏙbXhUFY'z<w8  91B /0KSX@ Y!26544#!wb gXw'z\<FY:@  91B /0KSX@ Y'!"$54$3"3!YhbƙXiU𥒥FY'zi<\'%!"&5463"3!\=.̞RiPYB~}nDZHCw%#535!53!3##q=ԭ-!%#5#53!3!3=~0Ԥ!O'ztw533#!#5!5#5q=-ЭԤwO'zt!3#!#!#5353=ԭ0~!O'zVt 33#!#!5#53m unfy~n ,@  221@  /990%2654&#"672#"'"#3z_̀ٷ{O{ʃIH+'sZ@  21  /0# !3! !5aPh//+jiN !!!5!;VnVN#5!5!5!53!!75$i2$i*mւVxnVnՆu!s #'#37 ͉sH+'Y &s & O& 7&  7O&  &  O& !!!!#!YX  !!###!YX  !!#####!YX    H!!#######! \YX     !!#########! YX     !3!!  !333!!&  !33333!!e    G!3333333!!     !333333333!!      !3!!#!?r !333!!###!?r   !33333!!#####!?r      Y#!3333333!!#######!?r        +!333333333!!#########!?r         SC !3!!#!YX\\SC!333!!###!XX\\\\SC!33333!!#####!\X\\\\\\S FC#!3333333!!#######!ZX\\\\\\\\S C+!333333333!!#########!YX\\\\\\\\\\!33!!# #!՚rՙr %!3!!#!!2^DD^ Wc !!!5!5!!!wsX #5!! !!'!%'! !7%!77'7!  ww u||||||||||||u  G7+/37;?CGKO!5#535#535#53533533533533#3#3#!!#3%#3%#3#3%#3%#3#3%#3%#3??????𨨨!!!!aOq:#[!' 7#}CrarCrrD:[! !rarC}rbar=` !#!#3!ff`G [`3!!!!!!!! j /t`Ӕ&{o{4=J%#"'&=!.#"5>32>32#!3267#"'&32767%2654'&#"JԄ℄N ̷hddddj||MI؏ii~ST`Te__ZjkSR\]i߬A@o\]Z^Z5*,=>` #% 54)3#4+327#!5#53!2x9||ԙf_ڪrĐq{Fg`32654&#%! )s7F0Ǔ$g` ! )#53!#32654&+7F0ɖzٍ`` !!!!!! /`Ӕ|1#"&'5327654'&+5327654'&#"567632p<54& #.54! ì++f++$$>:#tNPƳPNM]*U3MY + 3267>54&#"'>3 '# 5467'7*(Ou))Hn.Mw834OMx43N)gA\*g>}66]C_56`?`q{&/=5!&'&#"5>3267632#"'&'#"'&732767276'&#"qN ffjbdjQGhi񈉉ijBN℄RR\]VVUVVVZdc44*,nmn67윜78lkpĘZYWWsttstuq/u{ 4&#"#32/8qu/ 32653#"4/8`!264&#%!2#!#N[cc[H^^>2`!.54763!##"#676#";jpkla;;?î545w?@@?w iQP%$q2^66**TS++2`!&'&'3;3!"'&546#"37545â?;;a|lkp w?@@?wS66^2q$%PQicQ++ST**<m``$ 653 &53sXٹ};ML+%!5!2654&#!5!#TZ`fcL||BtN5353!5!2654&#!5!#Z`fcxzʤ||Dv/{&#!5!2654&#!5!27654'&#!5!#|vz{\MN`_`gb>> E__ru99wSS?yzVU=`YV5`ZX`]x`73264&+5%5!2 'Ӏ{n Fo}ɽBdd>Jm7{3!!I{/=`N`#!#`I``JZ^`367653#5&'&3U9VˆmmV9S`1Ms,}},uMLs` h !3#'!#ZgVXVq`!!!!!5!#!.AeW"___DXI &327654'&#327654'&#%!2#!g1221g̼^-..-^EOO)(N^h+&&MO%%X@? ]65dL.- rUpz 327654'&#%! )[ZZ[vNONN]eefe !!!!!!R-@___S !5!!5!5!5@-_/__H~$5#5!#"'&547632&'&#"326NJYXe|}}|\SRFFPOWWVVWCj]/rssr'y5UVVUL 3!3#!#΀2Wr3# 3+53265A@1(TFDE`Tli 33 ##-<azBm3!!_ 33###|{9="G 33##|_{EEG ##3G|_{EDEH"327654'&$  '&RQQRQQQQwvvwtww[\\[[\\[\vvvvuvG>@"327654'&327654'&'52#"&54767&'&54763sCDDCstDCCBR65<%j<=0ER^X65`l<=ca==ll*6RI)++LK,++,KL++5##,&)$%LY+8:6iG2278PyAAyP87'21I.* 32764'&#%!2+#Y0110YQQQQ))))]?@@?[ #'&'&+#!232654&#=)&''y.,,LPO)*s\^^\$ )(GTD<32#"&'#3t4554455$pMPPPPMp$uuc@AA@@AA86Z[[Z68^gG3#5#"'&76322764'&"Jtt%78NPQQPN874555555S^8Z[([Z@AA@@AAG#!32767#"'&547632&'&#"@AsC?>>>BADbc^]SSt44Va:: 2j88a WW[ZQRmT3210YGMK SX@ 2KSKQZKT[X888Y1@   /0Y5!.#"5>32#"&73267GsC}>?CŻthVau2koamTebXTb2&'&547632.#";#"32767#"&5476G&%HG{065>=f,K,,+*Ib]W-155_;65-9553+,$$4O,, ^$'U13 `fa<))R`1#"'&'532654'&+5327654'&#"5>32FLHG{065>=23-KX+*Ib]V.156_:65-9j2RQ,+ H4O-+]4$'U 12  `33a<))G 14'&#"327#"'&'53276=#"'&763253J44^]4444]^4PP=7633223r99$88NOPPON88$tm=>>==>>FNO e 45k37XX"XX7_z3#53ztttu 33 ##uuZu2u{"4@ $ #32>32#4&#"tHKYhuu'oMLl+yRowtHJZiw[Wk\sa97EBEB~wZXku4@ zx66X6VYYk\sa8BDG 6@ KSKQZKT[X 88Y1@ /0"32654&'2#"&546]ml^]ll]ǁqqpoWGu 67632#"'&'532764'&#"G0336^_]^:5311213p?>>?p3121 XXYY _ ?@@? G4'&"#46320T6667zWVoBAA@qWWG27653#"'&506667zVWoBAA@qWWu#3>32#"&$4'&"27uu$pMPPPPMpf4554455b_86Z[[Z6@AA@@AA#3#;#"'&5#5350Hww33UUPM,V-,vTPn3327653#5#"&nt''N^67tt+78Jy~{Y,-65\c`9nA!5!27654'&#!5!#Ue22<KLg#"FS10gg%dAl88u{(#"&53327653327653#5#"&Q+<=Rnxu$$IZ54t$$KY45tt(78LMlE!"z[+,64\c[+,66Zcb;F&33#&{{y #! !&'3254554#"t nυ9F}攥^ؙ83a _{3#5&+532{t<,||GXG+&#" '&54767&54!232654'&'&yAJZVWVWW!/bL+"766^]l9=P(r(B4?KWXXWr]$,O'(@?Ajp69G  )"27654'&'2##5"'&5476734 )=;67-!XQVVQs~SVV@h)%661FQ:5}t?3XJOZUUXR=\ ,Ajq@:%'#&+53;'&^sa,(^ra,GX]:DFYzg duudnsd&sdyodsdy67632#"&'#44&#"326&_%sNo%ti\[jj[\i92ض78"{qqrG xd%tdV{(!2.#">32#"&'#32654&#"aQQR9||9F,*[cbbc#Lct`5!#3#3!53#53t𰰰त TV/%+53276'7#3/F0j&*06G#367632#"'&$4'&"27tt%87NPQQPN78f5455554_s^8Z[[ZA@@AA@@Gu&'&#"32767#"&54632u1122q>??>q22110h;533` @??@ _ GKu+325&#"47&'&54632&'&#"632#"Z%0\R@5`$^4412/412q>??5{3 * &;/Z ` ?@@biG.&'&#"32654'&7#"&54632''7'37 i:;n\[nO$$ZY drP =67Tb1#"'&'5327654'&+532654'&#"5>32N+,QR2658-56:_651.V]aIV-+K-32==l/|GHL ))unn77wU:8P#P,i/0\+53276=#533343r,Brrtn x66XU P#PG ,5#"3276#"'&'53276=#"'&54763J]4444]^44tPP=7633223r99$88NOPPO>==>>=۠NO e 45k37XXXXn3327653##"&nt''N^67tt+87Jy~{Y,-65\cO9I 5333##53#Irtggttt\\jz~ ;#"&5C,rfpUWlwI 5!#3!53IMjjo\\E\\I5!#3#3!535#535IMjjjjooo\\\\\\V`3#"54;33#'#"3276ztteztry "3rKNB ,|ssW?#5$ z~3;#"&5ztC,rfSVXlx[`+53276'7#3`34r,Bttax66XS gq3!!q_u{467632+53265&7454&#"#4'&#"#367632+=32#4'&#"43r,B0t*pJz>?t'(N^66x66X6V~a88BDwY,-56\uU 4'&#"#367632;#"'&5P''N^66uu)89Jy?>0B,r34Y,-56\sa8BDzV6X66xq 33##q-{{~G 2#"'&5476"!&'!3276WVVWUWWU6//1w &6^]6&WWWXXWWWW@9\[8E-AA.G&.#5!#3!535&'&5476767654'&OpFVVFp^nCWWCnt6%66%4#76$\\FWWG\\FWWE[*,ApoA-9*A@+Fa:.#"#"/;#"'&=32654'&/.547632;1j8W*,]({44MN9> 0Br34@?>=RX l)k`GF@rb/$+*MW33 V6X66x"j2-*TIX00476;#"+5326z73zno>43r,B0]Me30U:Jx66X6#3#;+5326=#"'&5#5350Hw43r,B033UUPM,ax66X6V -,vTP^!533!33##5#"&=)3276^ntgtuut+87Jy~''N^61\\`9Y,-6/G&5!327654'&'5!# '&54767GE()78Z[78*,?G$"ZYYZ!"J\{':?KY7667YR8>#{\8?>LRRQRR<=:u2653#"'&53QHuDEEDuHPZs{>??>{}ZPz3+"&53?27654'&'&gH#"YZ,rftA Z87)2:08?>LRRlwpU67YQ8C&# #3{{ s7n !!!5!G'L\^=R^7!!#;#"&=!5!G'LC,rf>\^=R VXlx ^7^n#47#5!5!3632#'3254#|`\'Ln& m,7!!^R^=jR37!2#"'&'5327654'&+5!5!hCQ>63``;??C5~Ex>?::hn\& =;M|CD m**PJ*)]R^G !32767&'&"2#"&76So/6^]6/ +66,ǗWVVWVV*MWXMmGYXFovw^wwwv[f!5!73[f3!Px[f#'!5f[f!!#PU騋fBf 3#'#35fxBf 73#'#˴fxh'${-{'TDN'zs%N'>E&%&E&%&Esu'l'sLvquf&vCO'zt'qbN'>G''qZ'zG&'qZ&GOw&'z[quZ&Gz'&'qZ'^&GZ&(q^'HZ&(q^&HK&(7qK{&H7v&(qv{&Hum'yu&(zquH&H'zK#O'zvt)/P&I @s&*2"qVZ&JI;N'zs+dN'>K;'+d'K;P&+j@dN'>Kt;&+ztd&Kz9;&+ 9d&Kv&,Jvg'LYZ&,tF&ajl'sv.l'sZvNj&.&Nj&. &Nvj'/''O jk'*u'/S1'q(;j&/J'Oj'&/\'&Ol'ssv0f&PvO'zwt0'FP't0{'P3N'zs1d'Q3'1d{'Q3&1d{&Q3'&1d{'&QsZ&2fqu &RsV&2lqu&R'jotrsZ&2jqu^&RsZ&2hqu^'Rl'sv3Vf&Sv2O'zt3V'STN'zs5J&UT'}5J{' UT1'q}; "J&q #T&5TJ{&UO'zt6o&%V'6o{'Vm'sv'z6of&V&VvW&6o&#"O'zt *o& +*O'zrt77N&W#>'q77'W&7b7&W'r&77''&W)'8X{'{Xv)&8vX{&XK)&87KX{&Xu7)Z&.8X&+v)4&28X'Xh}&9F=7&Ymh&9=`&Y^Dr'u|:V5k'C ZDr's|:V5m'vZDN'j>:V5'jEZDN'zs:V5&ZGD&:V5`&ZJ=;O'zs;;y&[g=;N&;j>;y&[jfO'zps<=V&\f\m'vu=Xf&]\&=X`&]1\&=X`&]d&KfN&Wj->V5&ZB=V&\{a&D/P&A@7&#"#4>32"#"'532654.546m@f_@&9dc07CjjCӴmob)F[dd[F)Z@hoϋ\(Ž}_-C-->T\_EFvX5P3) $2BgCquHh'${-{'!Dh&$u{-{&DTh:&${'Dh:&${-&Dh[&${'Dhu&${-'Dhm&{-f&"hZ&${-'DhZ&${-'Dh&${-5'DhY&${-&Dh&{-&3&(q{&H&(uq{&H^'tu(q7'H:&(q'H:&(q'H[&(q&Hu&(q'Hm&qf'& Z&,#uD|& &,.&Ls&2'qu{&Rss&2'uqu{&R}s:&2lq'Rs:&2jqu'Rs[&2jq'Rsu&2equ'Rsm&'quf's& sgk's'ubvf&vscgk'u'ubvf&Cscg&b'uv{&c}g^'t'ubv7&scg&b'v&cs)&8X{&X{)&8uX{&X}_k'suqif&v{r_k'uuqif&C{r_&qui{&r}_^'tuqi7'r_&qi&r{r&<ur|=Vk&\C!'v<=V`'t\&<r|=V&\`^'tru<=V7&w\qa&E ppqa&E Hqf&E }qf&E qf&E ~qf&E qm&E vqm&E Dha&& p#ha&& f'& }|f'& f'& ~SXf'& om&&1 Qm&&x Na&I pDa&I 9f&I } f&I %f&I ~Of&I R-a'* p-a'* 7f'* }|If'* f'*" ~Sf'*^ oVda&K pVda&K Vdf&K }Vdf&K pVdf&K ~Vdf&K Vdm&K Vdm&K a', pa', f', }|f', nf',3 ~Sf',d om',t Qm', Nna&M pna&M f&M }'f&M <f&M ~Qf&M =nm&M nm&M Aa'. p5a'. Kf'. }|Kf'. f'.4 ~Sf'.p o"m'. Q)m'. Nqua&S pxqua&S nquf&S }equf&S Tquf&S ~quf&S a&4# pVa&4} Of'4v }|Yf'4 f'46 ~SPf'4w o*a&Y p=*a&Y *f&Y }'*f&Y !*f&Y ~`*f&Y W*m&Y 8*m&Y Ia'9b f'9 f'96 o3m'9L N'a&] p^'a&] T'f&] }Y'f&] ^'f&] ~'f&] 'm&] c'm&] ^a&=N pqa'= if'= }|uf'= Cf'=t ~Syf'= om'=B QPm'= Nqf&E tqf@f&I TfAVdf&K VdfBnf&M fCquf&S {quf`*f&Y 0*fa'f&] M'fbqVa& HqVa& HqVf& HqVf& HqVf& HqVf& HqVm& HqVm& HVha&  oVha&  oVf&  oFVf&  oFVf&  ohVXf&  oVm&  oVm&  o2Vda& 8Vda& 8Vdf& 8Vdf& 8Vdf& 8Vdf& 8Vdm& 8Vdm& 8Va&  oVa&  oVf&  oVf&  oVnf&  o#Vf&  oTVm&  odVm&  oV'a& YV'a& YV'f& YV'f& YV'f& YV'f& YV'm& YV'm& YVa&  o\Vqa&  oVif&  oVuf&  oVCf&  oVyf& ! oVm& " oPVPm& # oqH&Ezq&EqyqVf& $HqVy&EHqVf&@Hq7&E qnqV7& gHhm&&yuh1&&q;f&&B RhfVh&& oxa pVxaH <ܲ?]1 Դ?_]KPXY̲?]90IIPX@@88Y#55#53xgJ7FJm'tjVdf& (8Vd{&K8Vdf&B8Vd7&K qVd7& v8f'*b Ruff',n Rf V;&, of' p  f' p. BJm't pnH&M$n&Mqn&M .%x7&M q.zm&M r0gm&.y.uY1&.q.;f'.q R}f!~f'  f'  _Jm't *H&Y'*&Yq$*&Y *DVa&U pVa&U *7&Y q'*m&Y rm&9yvu1&9q;f'9 Rf#5a'6 F)&j lFRfCV'f& 0YV'`&]YV'f&bY'7&] qOV'7& Yf'4; Rf"f'=D Rf$NV&= osRfvxaH ܲ?]<1 Դ?_]KPXY̲?]90IIPX@@88Y53#7"͔gd10!!dd dy/10!!dOydy/10!!d8ydy/10!!d8yy/10!!y&__J&BBB@ 10#53ӤR?@ 103#ӤR՘?@ 10%3#ӤR@#5R՘?m '@   1<20#53#53ӤRӤR??m '@   1<203#%3#ӤRӤRլ@@m '@    1<20%3#%3#ӤRfӤR@@m #5!#5RmRխ??9; '@  YW Y <<1<203!!#!5!oo\]9;>@   Y W Y <<2<<2122220%!#!5!!5!3!!!oooo\\3!   \ 104632#"&3~|}}||}3q31/073#k1/<20%3#%3#V #@   1/<<220%3#%3#%3#ki3#iq L #'3?K@D$%&%&'$'B@ .(F4 :&$L%IC'1+C =  1 =I 7+ ! L9912<<2220KSXY"KTK T[K T[K T[K T[KT[XL@LL878Y"32654&'2#"&5462#"&546!3#"32654&2#"&546"32654&WddWUccUt%ZVcbWWcdWccWUccܻۻۻۼܻۻ q r "-7;EP\"32654&'2#"&546"32654&'2#"&546  &54%3#"26542#"&546"32654& WddWUccUyWddWUccU<¹ߠZucbcNWccWUccۻۻۻۼ5ۻ(`3(`u(`&  ,(`' ,&  X(`#3W`u(`&  ,(`& ' X , #'#Rs#G@%Bon29190KSXY" 5s-+#R#I@&Bop<9190KSXY"5 +-#^R^  &K'N''=NO'^O$#5>323#7>54'&L Za^gHZX/'-93A% #C98ŸLVV/5<4BR-5^1Y7| B_ % ij991@  <202$7#"$'56:<hh~vvuw~ign % ij991@  <202&$#"56$6;>nvv~hhgi~wuI3 # #bbc$$v=' {' { 3_!!V_+@B10KSXY"3#-\X 3!!#3hX^#"#JX 53#5!!53X^JݏޏJ&""gJ&"JJ'^"d] 7 91@ B  <20KSXY327# 'du](; 2###׎辸( 3+"&5463yv}~}|( ';2+v~}O|}=k {B# #5#5R#۬@n&  =o'  BC''Hd1#"'&'&'&#"5>32326撔 錄ܔ撰 錂1OD;>MSOE<>L~ 8| #'7!5!'737!!qaqqaq)`rrbqr2 535353,(`$' ,& '  XfN 53!535353fXp fN 5353535353,p  3#3#'d 3#%3#3#3#dipD %53535353#!5!3!,|f  feP> 3#3#3#>w 3#3#3#3#W "27654/2#"&5462332233VVVVVVVz@ <<1@03#3#zttttg? @   ] <291<290KTKT[KT[KT[K T[K T[X@878YKTKT[X@878Y@T /9IFYi       "5GK S[ e]] !33##5!55bf]myf !!67632#"&'53264&#"y^^a`<~B9>>Eoo4h6_ MLKJq ff\/"327654'&&'&#"67632#"&547632X3333XW33331221DD &9:DTTXWll122m45[Z4554Z[54bg KL1LMONuv l!#!liH30Y *:"32764'%&'&546 #"'&54767327654'&#"55j]\655T./RQ./SZ85UVUV56-/.UQ100/SS0/*,+KLV,++]12Hdt::dJ01:7PyAAAAyN98?&%%$A?&%%$S.532767#"&547632#"'&2654'&#"1220DC #<9EWXWXkl122Xf33XU5443g KK/MNoouv rh\Z4554Z\44k !!#!5!Q_i_k_8_83!!'3_a!!!!''^_o #&'&4767TRRTe^///._~g3#676'&ge_/../_eT)**)~~~u0@ 32tNN^luu)qJy}wYYk\sa88WT dC{d^TtdbTud?C dfC d\T dlC dYT dST d d8 d  doif dgif dMrdGxdGdu!sdGydV##"32.#"3267!!!!!!Oc%eNLbbL:/667756GFDFG ks9'.473&'3267#"'#7&'#7&'&76%73&'hA>/(%:@w]ayA9&AX}R4>C5Ai<)^_HH?WghйKp(`,%6767# !2.#"3>32.#".aXj]aye6{_]w|^0n&<$'/_HGghGG_^ٜu]\Y!!!!3###5qZpP~WHE9Eb#!!53#535#535632.#"!!!5-쿿=OL=tyB_))HB+#&'&#"#3676323632#4&#"#̪m49wSS>YXyzU6%X\xruxGM_a`f21>&>E3\u"&)''#!333#3#!###535#53355KO8~8~OO4&{{&&{{{ P32654&#+#!233!!;532654&/.54632.#"#"&'5#"&5qzzWQeGl`[z_<`HJU];Ufɘ/ϒjqqR>N#55YQKP%$((TT@I!*##`3E326&##.+#! 32654&/.54632.#"#"'&ٿJx}A{>[b`cae@fLNZb?ĥZa,/b؍$~3YQKP%$((TT@I!*;"&)-1'#53'3!73!733#3#####5!73'!!7]:1000019]zu }Luuguuguuuu_ % #4&#!#)"33!3_SV*$oN&1@: "+ /) 2+"!)#&  , & &*!/<29999999999122<20K TK T[K T[KT[KT[KT[X222@878Y@z  1Ti lnooooiko o!o"o#n$l%i'i-  !"#$%&'()*+,-2   USjg ]].#"!!!!3267#"#734&5465#7332[f A78 ʝf[Y`(77(6bbiZȻ{.# .{ZiHH"{/ #/{"G(33!!###5uX_Tws1s!5!!77#'%5'&PPM4Mo؈onوn9 -bw'67>32#"'&'"326767654'&'&67'>7632#"'.'&/#"'&54632326767654'&'&&#"32">1aJ{%A01Q[W7>/W1   >$<  . #dCw-^URB$`>DL_K>.3b @N\uLMiI(S395l9,8G(/&  -9)ЗiRm:3Xwdg7? 2j7#=5(6$ 629T/ (2M !:5S}$@{mbq~Es/4 -& "TAB`]|@8nRkcd]aC".)5'632327&547632#527654'#"'&#"%654'&#"o|@X"07PYtaTk~j[IwmqJ2530D#24!`NkBX``S㫣†qJ323!!!3267# $547#5\J5 ;_srigCS1r{jJ,{ +kv67&&UB{\* {;^~FE/0K?{w!,&'&#2767#&'&576753w[TUeeUT[Y\Y[dsye]Y\[CvlCi----iH$"u9Bt"#BuflC3!~d=!5!'3 G~d=z!#'73!5~~͛=z5!'3#7=~~d͛{ 3#%3#%3#yfP{ 3#%3#%3#%3#ky)=z #'73!'3#7~~<~~͛͛C $(B"326=7#5#"&54634&#"5>32%3#.#"3267#"&54632pSHfmƩogDc\GD^o8yy8o^IICBRCI M >OW\ 7$44"C +EI.46'&#"#&'53254&'"326=7#5#"&54634&#"5>32%3#VNz$p;i0ʪ%={pSHfmƩogDc\GD}|49d$, !5Lf,1BRCI M >OW\ 7$s'!.#"3267# !2'Y藣yyYjzS #bvAZ4-4ZBuHHghG[!!m&r&F+,/-/ܸܸ,(и(/A&6FVfv ]A] и ии# /!"+!0153&'&'6767!!5&'&76wI3cc3I86QLNN7887NNMR48_ki:rq;zn #++$ * rn<(2.#"3267#"&54632%3#"326&$  &54^o8yy8o^IICDkavva`ww~44"K <M-1332653#5#"&.#"3267#"&54632%3#\QPcu`^o8yy8o^IICDLriuD P44"K{Ro#&&r)Io!6767632#"'&#"32767#"'&'&547!#"'&54632327676"#"'&'&54767632l(9BKc{=&%%03!((!,739%7`lG;7 25]hB4,'5  'B[QF$%]c'G  %! }Kr~,1ьIg)*!&!(D;w},75;!_']7:y}[Ϟ\@4>#,!, 'QFj(JG4$$,*)/9yK#%P73276767654'&'&#"&'&"'632654'&'&54767767#"'&'672#"*i(X%# 1FSE/ O.55FuPU[QF[00rl~"KI}!;IFs;n;_T^͌Q79}w^l.Gyr\[4O9%#i#^MX;yv@c}e.ID\7I;>2V秉uӰ3!3%!!!!!!nnq  dx+%H#>54&#"#3>32u j_ y/wFx \/HT^Ȧ^m$RZ3%632##"#'7-P4-> {|a\=BcL;t9#"'&5476323276765"#"'&54767632thn<7# ;KQ>!|Za,4(XM!},‚<7D9#7.M=.1?@ '(MXI(' jF!2?632327654'&54?#"'&#"632327#"&#"jou9!ydG>PPPP5ʺ68^nm{z}}ȋo֏zZ'PVaK~pmdykb^OP681/::b:DnJ327654'7#"'&'$#5"'47676766767632#"'&'&'&#"32nZS_n0VBRny#HB?X!$9BMw>7l. ;7%,;(ӧuy,D0&3273#"'#67&5477632654#0)W:K32#"&'####53&  O:{{:ܧ$}daad}j %# !3!# dX0dd q+6+/BB/,/<-ݰ.<-ް#? < # 9 FhH)##Ii;BB=#IbiF`FaC`#BC`CUXC`C8Y& <BB00<İ< 6< <9 FhH #Ih; < ְ ݰ,9, FhH &ְ& #Ii;/,#Ih:1#IC`#BC`CPX& ,/C`C8K RX #IC`#BC`C@PXC`C@aC`#B C`C8YYYBB=#IbiF`FaC`#BC`CUXC`C8Y#)<BB1#IRX   <  < Y3525!463"!4632#"&732654&#"5!6jgggg92299229k̀k@4nNggNNggD{{ "-! ! ! ! '32654&#%!2+# JR12)uyӲckkc?L00ey wXQPXdn;C0<67632#"'67327654'&#"#"'&57&547276545[ۄFIyeL )qz]E& JEYq:?.蔁0.A ƂMkeLPק<+(h|H=y|n=B {u.F/4_NT 33!27&#%!2+!67654'&,d.@nX<-]\,q jdZ)VV)s!)%#'# ! % 7& 676'&B 3y;:x+lllli$ #ab[ 2222jT%%5$c$B2 _327654'&'&'#"'&5476323276765""'&5476!6?232767#"'&B=]iS\ZV30Fn7;#FfS9!!< #5,h";<2XngZR{,##9>;K!QIag£S D5@7*'S:y}*7H0 5#!,Il @3Xnh0{(2r:=OSlIX&54'&#"#"'&527654'&#"3"'&547632763227767654'&#"R(O*\xggfg-.@@?@@?\QA@@@S6fggfeӻp/$~AB}:1$ -*MJJ@f[+8vuuv zVWWWXWWVVW\uvuuu# bW1W{|^1$h{vC[SK\GChfy /2 &.2&'&+3!.+!! !27&#676'&%3LDEx-Me5q>HJxnu1EA+ZY*01/O~hbb)j)V>U)-  /!/ и/ ܸи!ܸA]A)9IYiy ] и /9 ///+ +0132654&#+#!273 # #s sNCI/ϒ_6۬kk%T$+.3&##&'&''7#!27%7 67654#?\A>:AٿKE6ToF^~_ ,8~|T3Jۏ/HDh0& ,ok؍]-Dbg('4.#"#"&'532654&/.54632733###UW'AG/E8pi4sG[d/EK7?8pc|3iиY"*/( VAO[`*,2,* M=H\T(l0`!!#!!!!!!!3!!rso+` `ffff'F >@!    b b cbc91<<2<<903#######5Jq7rqr/B^^"h %73# ' 3,o-MoF+,\ %#!!!5!8kO8d qddd XL/ 654&#!5!5!5!!2!"'X $''ߦԧc̆eeaԊfJN=NsDU767654'&#"#"'&5733272632632!"'4'&'&#"'6763232767654'&'&#"_}yj#1Q\$####,TGG\n#?QY>kDM4giMqE#"'&'&5476?&'&547632#"'&547654'&#"3"32767'_ilE_ml=Oc{T3-2") %+fa@aP/Z_|{w:maZu> IhA"%@_l$=PczS2VN-2!$+%$+@e}N069na[u>_T M#"'&'!#!"'&547632327676=!7!&#"#"'&5476!27327#X':'7?<=**M_4. B^l{>!'Ba>nG#&#w4$B00!K=DcK_4B( 03B{>ceDInFT=I,Fw7K. 0# )5!!5!3#Pʪ9Bk32767"'&'&47'&'&'#"'&547632326765&#"6767632377632#"'&'&'&#",5(.'*'E`97y{7a;f7;>F3.^PeMD*#7@,j!HhH<=.%_yipp3 T}B',$ *5܀/,,@!;Da97TVM;nwF^O?/,%!;>jytX<;}f?E'_n H''#  .hJ) 4&#"322#"&54WOmVPm˜ݢt}t{أأg4 4'+5654/&4?'&547 '&5474/c2>Bd=VE/b5c2ltc2c2uc1LS2?Bd,>8?]/c6c1LS2tc1LS2c1LS2903#!".54?>3!4'.#!".54>323!2O,""$%@;5H *Y[#$"x2 1[G(  WA,!2#"&/#!"54?>3!!"&5462TPl 0%= -d,mF"$mG- .7#*(/ $"Sae(!q~B;V&!"&54>323!2#"&'&5 mG * 5G 0%9 . q~( 0 (/ &Js!S'DQIF 4632#"&3!53#5!pQOooOQpoTQooQOonuyy5yZR; ! ! ! ! HH#[[breH !#y;:x L`  !!!!#!3#'!#33 # #DjwZDZ֏R``C5MR.}$z`-1%5"'&'&5#2327#"'&5#!#"#463!#3#, 9Yl(Ht*=Z2dr!Z4@'!8 ֦zEB bLs{dYsZ{3#"#4763 3׮UEEl4FũdGQnCF\xB*WbOZ=0 3%!!,:*nq dd3!3!!!! nn8q  qwS ! ! !!5 5Y*dccS!!6$3 !"$'53 !"kJu^uopkoSUggHF_`2/.2%!#!5!)+!5!_++!# #3bef9WJ " )327&#!3676654'&|tK"P"coAfյ|cv~dAA xPfUmZ #2!7#"547632!3 32767654'&#"* 6B8wx!Nbb|˞"#>|OO'vN 2wx87tKsO=  =d01 PD10d^dTd6Jthi[{ (232767# '&5477632!7!654'&#" N&#G_yZ\klmk}Z5fF 9NJC0<7h:J(u*oDMcFPZd82vRsO 3#3#!!ɸ.Ԇ$N9`V 3##676#732767!ɸ.fʆ#5H2K1i0/N)deеT0Hd01``;&0 #473>32#"&'532654&7>54&#";Ht]h202޸SUWDi;2[UԠ_I@Yr~YW׀c?}<$$/1oX3gQX?@Q` $@   F 21@/0!5!!5!`oX&{' 5ud^X&t' 5ud^&{' 5 d^^&t' 5 db^&u' 5 d?^& ' 5 d~&{' 5 df~& ' 5 dw&{' 5 dbw&u' 5 dfw& ' 5 dlw& ' 5 d&{ 5,'&,,&,',,(Q&,9h9&9,,&9',, &9',',,-&,;=;;=&;,=B&;',,j/s'&'0yL&LLpY&L'LpLA&LY=`Y=&YLD=-&Y'LDL=&Y'LD'LL$J&L[;y`[;&[L[;D&['L[LyOq{FqZG{Py }  ) !3 !## !5hPPh55~ji.,w# + ++ A]A)9IYiy ] A]A)9IYiy ]%"+++ + 013 !#3 #32654&#! )5HHNhPaY.,职~y }(1C3 +3 !32654&+! ) #"35# !35#"&546!`HH5NNPhthNN5H/ó., ji~s'H{d?8   2@ @@ 00 ]1@   990@   <<@ <<KSX << Y5!!dx=xUZxx @   991  2@ OO ?? ]0@   <<@ <<KSX << Y3'#'-Zxxvx<xuP8   2@ OO __ ]1@  990@   <<@ <<KSX << Y'7!5!'7Pwx=xZwxx @  991  2@ @@ PP ]0@   <<@ <<KSX << Y#737Zvxxx76767632&'&'&#"#"'&/#7!#/)85,0F"<;NJX[GR7<"#!2)85,/$#?2WG[XJN;?,!F0O<:" %7xxUZxaxxaxuP8 '7!' 7!'7Pwxx>xaxUwxx>>xxwd?8 !5!3#xwx-xZxY %'3'!!5xZxZxvx檪uP8 22@ O O _ _ ]1@   990@   <<@ <<KSX  <<  Y!#3!'7'8窪xwx-\xwZwx !5!!7#7\xxZxx+xvx7!!5!7'3'xxxxxZxxvxxvxd>%52#!5! 767>54&'&'&>42/+-+-':1 Hxwxܪ-)o=  xwZwx(.46<=69)-d>>3276767654'&'&'&"5476767632+#5!5 6 +/24>A1:'-+/24>xwx  =69)-(.46=<69)-xZxvP>54'&'&'&"3)'7'7!#5#"'&'&'&5476767632# 6 +lxwx>42/+-':1A>42/+ׂ  xwZwx-)96<=64.(-)96=dP8X#532267676767632267676;'7'7#""'&'&'&'&'&""'&'&'& xwx 0$#$   "%'-0$' !  ' '- xwx  ('Z&("  "(&Z'( -xZx$ -#%"&* 'xwZwx ""&*  *&"" dPF%'!5!!'7'7!pxwxpdxwx^:5xZxo:xwZwx* %'7 !^ b9YXxbZ  #!5 xwxoxZx[ !'7'7!#xwxxwZwxZ  !5!3 ixwxDxZx[ 3!'7'7xwxDxwZwx 7#7!5xwZwx=xwxd? !5!3?=xwx-xZx,-eX&7#754767676 #4&'&'&"9xxZvx.-\ZnllnZ\-.BB54'&/#7!!#"'&'&'&54767D !BB54'&x\-..0YXplgtTY0../Z#,@#B"!BB@RNJV]xwx]TQ>]xwx]xLii `iiT4]xZx]4]xwZwx]JiiiiuP8!7'!7!5!7!'7'7!'7!5giiyYuI0]xwx]uIiixK]xwZwx]Kxd?8!!5!!]xwx]7Qix]xZx]xi#'3'#'x\xZx^xhP8^xvx^huP87'!5!'7'7!5$iiQ7]xwx]iix]xwZwx]x737#73jhx^xvZxx\x%hh^xvx^8dP8!7'!!5!'7'iili\]xwx]]xwxiii]xZx]]xwZwx7''3'7#7iii]xZx]]xwZwxliii{]xwx]\]xwx  #7!##PU?,UvU,?UP5#'#5!#5'U,?UvU?ԄU4 753!5373U?ԃUPqPU?U 433!'3ɕPU?UqPU?,Ud?8!!!!5!!c$R&xwxxxxZxxuP8!5!'!5!7'!5!Q$܊xwx&RFxxxwZwxxd?8#''''#53777?(FncxwxFn-FnxZxFnuP8577773'7'7#'''unFxwxcnF-nFxwZwxnF3'!!!!#!5!5!5!'-Zx((ت&&xvxTrx#7!5!5!5!3!!!!7Zxx((&&xxrTxd?8 5!!5!35!dxqxUZxxa 3'#'3#3#-ZxxbvxrxVuP8  '7!5!'7%!#'#5PwxqxUwxxw( 737533-vxxvxrxv4k?9 !#3?xvxתx~\xuI9 !'73#'7!uxvxxvvx7?~ 5!! !!  d }*^V 3! !!d}*p  d HP~ !! !!    ^V #!# !!!d e n ^V !! !3 3!!!E*dr*r$| \d^V )3! !3#!5#3 3 ȃ\Pdx @t %#!5#3'!3!3! !33'ȡdxd:tZdd\nt^V%#!3!3! !3!5#3ĹtIt\Px^V%3 3!!! !!3 37r*kd d| ^V %#!5#3 3!3!! !!33 37ȃ:͊` \h u}~ 7!! !5#35! u\Pdx f:bȃ  zM!#7!!#Mc"?,^xc?x^zM35!3!5!73zpc?Jx^cr+a?^xJ^V 3 3# '! !! !  e   dCuP8)5A '7!"'&'&'&'#5367676762!'7$"!&'&'!27676Pwx 21@=:C.2  21@=:C.2 _x_R#)l$h$#R#$Uwx@21.2@@21.2@xw#w;' , utP'7!5!'7!5!'7!5!'7Pwx===xUZwxתתxwZd?D5!3!!#!dx3xUZxmmxuPD '7!#!5!3!'7Pwxͪ3xUwxmmxwdPD3!'7'7!#!5xwxwwxwxmxwZwxmxZxd?D5!333!!###!dx⪪YxUZxmmmmxuPD '7!###!5!333!'7PwxYxUwxmmmmxwdPD333!'7'7!###!5d xwxdxwxmmxwZwxmmxZx7?@  !JBJAu}@ 7'!5! PJBł}BB7}@7'! ! 6BB A}BBh %!3!3۠ՈR+nm+A&6FVfv ]A]+ +0132#&'&#"327673#" B!OO!BzcI7͙7Ic_L 0"'&547632654'&#"563 3276767&#"\m`cu\6% GGnth r5?,/H@3H5,Y:$UeI+HQ\N,tqzSd69->eSY׮l !5!!5!!5>+5!#7#53!5!!5!733!Kcd04+^^``k](673#"'&'#7&'&$32 '&#" 32$767&'&YjiEd80~i?/c`RQQ$g'-"SRR:;nSz_'BTc_ N@DROg`8@91/90@cmpxyvn]] !3!^DC?`%! !3f<?I!!"$54$3!!!W?JGcGK@ sJxNL``ȟMOx]I&/!!!!3!!"''&'&54$;7#"ؖI$$$GA?d`,,cFU;}YI7ʟ 7c``JxH NGx]g% $54$)!!3!+*(FiNv%FrO:0QI&'&'&'!5!2#!5!676767!5?JGcGK@ 'JxNLȟMOx]I&/'7!5!!5!&#!5!2+4'&'&'3276765 I^Q$$GA?d`,,#FT;}YI7ʟ 7c;JxH HNGx]g )5%2767!5&'&!5(*FiNv%FtFgP:1R, //01!!,wq@gg120!#!# }wq@gg1<03!3wJ}w; ]@    91990@0QVPZ spvupz  Z pp{ t  ]]!! !!5 7AJI3!-10!!ת !#!5!3!!5!--+}ת W+и и и / + +и 01!!#!5!3#-Ө-5B<%?P%73% %#'TUUTUTTUDGrXY %=} *@    91903##'%\sB}}`s-Pb;=v& Xus=e& X s 127#"#"'&'&'#"'&547632676;#"3cd3668+MI6641C;ItY^^SI6?+((C;ItK@tkHMfpEF?$Tx5@ejre!93Ex5@#/;&'#"'&54763267632#"'&%27#""327654'&1C;JsY^^TI6?+((C;JsY^^TI666cd3778s~d3778]$Tx5@ejre!93Ex5@ejreMHMfpEFHMfpEFI%!3!~,I%!3IfIA//+к99к901%&'&'3!!#4'!&'7`'JAW`LqR]+X* Pʋs^(Rs57756u5 +  // 9 9 901 7&'7%%'6 676r{EG%y44RW!L!$Ҿ &!L {JP+3#+fJ+ 7+и//9 90137#'PMVo)gnJ+3#3#@+fJ+{//и/ܸи ܸܸ и и// // 9 9 9 9013737##'[P]ME+qd @oxpAn!3# ih^T3 3##"T^32#4&#"#P(*7332653#"RP7*uM>2&#""&'7327~9GA~9G⧅}}uM& i i%uM& i' i% iJuM-6?67632&#"#"'&'7327&'&5476767654'&'SOJMG79GcBnnVsSOJMG79G]InoSu=,EG%,=,HK%DAF7K|oUDAF71IosV/HgjG$4.JhgH$uMMQZc67632&#"!67632&#"#"'&'7327!#"'&'7327&'&54767!!67654'&SOJMG79G~SOJMG79GcBnnVsSOJMG79GSOJMG79G]InoSu~=,HK% =,EG%DAF77DAF7K|oUDAF7$çDAF70IosV!.JhgH$+/HgjG$uMmqu~67632&#"!67632&#"!67632&#"#"'&'7327!#"'&'7327!#"'&'7327&'&54767!)!67654'&SOJMG79G~SOJMG79G~SOJMG79GcBnnVsSOJMG79GSOJMG79GSOJMG79G]InoSu,~=,HK%2=,EG%DAF77DAF77DAF7K|oUDAF7$çDAF7$çDAF70IosV!.JhgH$+/HgjG$uL.3&#"7#'754'&'#"&'7327#4767>32";EY?w^H6H\O3,,HO;E+@/VfmVmHO?u]HH]sM3 gz.VrmV_zuM<%4'>7'7&#"7"&'7327&'&54767>2=,HK%=Q Hl;EYLmHH7'&#"'"&'7327&'&54767>2=,HK%m#6,=iSH;EcHKs;E]InoSuJ.JghH$6B0+@TH?HK|z1IosV32326ian ^Xbian ^V2NE;=LTNE;=K23276767632.#"#"&'gV^ naibX^ nai2UK=;ENTL=;EN1).#"3".54>323265.#72#"&:QHRdhNi\dnx>@HRdhNi\dnx.ttlH=YOHL\}X[lH=YOHL\}W#"'"#322{dfftX{dfftX#*$0!#.5476767654&'30ND:323267#"''cDXbia]yeEVgia`yS LTNE+~F KUNE,F #"/&'&#"5>32326!!ian^Xbian ^VeoNE;=LTNE;=K`#"/&'&#"5>32326!!ian^Xbian^VeOE;=LSNE; =Kkb%&32767#"'!!'7!5!7&#"5>32%H\ iaBP﹉lZXbian3}o -X"OEd8LSNE;I"#"/&'&#"5>32326!!!!ian^Xbian^VeOE;=LSNE;?Kk˪.#"/&'&#"5>32326#5!7!5!7!!!!'ian^Xbian^VLoKɦoOE;=LSNE;?KL˪s˪sB.32767#"'!!!!'7#5!7!5!7'&#"5>327b K`Jqia'+\+zlh>Tm?u2^Xbianc"%]OE˪Nt˪=LSNE;%N;?@.9*-" *19" <-<<219999990#"'&'&'&#"5>32326#"'&'&'&#"5>32326ian ^Xbian ^Vgian ^Xbian ^VoNE;=LTNE;=KڲOE;=LSNE;=K43267#"'3267#"/'&#"5>327&#"5>29+Vgia@LJZVgia}9+Xbia@MHZXbi a KUOE8KUNE; @^ LTNE8LSNE;f@59#"/&'&#"5>32326#"/&'&#"5>32326!!ian^Xbian^Vgiaq^Xbian3VeLOE;=LSNE;?KҲOE;=LSNE;?Ky5P#"/&'&#"5>32326#"/&'&#"5>32326#"/&'&#"5>32326ian^Xbian^Vgian^Xbian^Vgiaq^Xbian3VײOE;=LSNE;?KҲOE;=LSNE;?KҲOE;=LSNE;?K"32?632.#"#"&'!5!5gV^naibX^naiUK?;ENSL=;EOȪ+  %5 % $%5$[g&Y%ZhӦ69%676767!!"'&'&'!5!!5!676762!!&'&'&[C-87VYYW6 8.CC.8d 6WYYV7 e8-,CE[<0[2332[39\DD+N+DD\93[2332[0<[EC,` !5!676762!!&'&'&!![C.8d 6WYYV7 e8-;++DD\93[2332[0<[EC,`'  ' &  ' &  0' &  .62' '  W63& '  ` 3654'!!5!&547!5!!4434w~0IG00GG2?8>;_8` !!!!"264&'2#"&546HdddeH;k'**z{DbFE``bq+((d:svv`K!!!! &!56뗲`!!!! 3# $c'`!!!!33#$'c`!!!!!!'+]^*^]N䰰` !!!!!3!Np!NNf`07GO!!!!#"3###535463!3267#"&546324&#"'53#5#"&4632264&"?$mmC???DNB&H#$J'`qk[Q_C<17HBB@,I\\I,@p`ctiG6B?9i=$#tu#gSSS`*!!!!>32#4&#"#4&#"#3>32!]?U\Z79EPZ7:DPZZV:;S==:xoHOM]QHPL^P%U20=` ,!!!!3#7#546?>54&#"5>324eeb_--B6'Z0/`4\o$-,N2A+,/-7#!^aO&E++ '>@"     <291<2<<990!!!!!'7!5!7!}/H{};fըfӪL !@  <<<<10!!!!!!ת4!5!7!!!!!!'7!5!7!5!DQ"rn遙RoLT˪˪T˪  )@    <<10!!!!!!!!K T@.B $# <2291/90KSXY" 5 !!@po V@/B$ # <<291/90KSXY"55 !5AǪV 3!! 5 !!@poV !!555 !5BkǪ!5!7!5!7!!!!' 5'`ȉ)P"_=6@ss1stFpo!5!7!5!7!!!!'55'`ȉ)P"_=6ss1stF. 5 5:6:6pr pr . 55556:86:'!67&'&54767&'676'&'{)#Y4JJ4Y#))#Y4JJ4Y#)AAAAGF㞢GGGG➣FG2;;;<<;2;5$?$%5%67$'W eĔd?NĔ])]o& bR)`q% Rd%'%5% >zmzF<˶@6 o@hGp%5'75%7-孈m%˶C@ʴ@hGp/V !5!%5%%%!!'/xvH-rf5LOlUrC@=Vlь=/V%'!5!75%7%5!!' GWb[mmNL>ߪwe=ت=$%#"'&'&'&#"5>32326 5jbn ^Xbh`n ^Vg@ND:3232655jbn ^Xbh`n ^VfNF<>LTNF<>L>)P14%&#"5>32%5%%%3267#"'&'&/' k Xbh`'+kuE%sk ^Vhjbn "Pv1-LTND9ATj͊LTNF<= &TN#wf=J;N} 55 58@'poN} 5 55@'pom`!-%5%%%'5%%5 MM`ZDOA@FZDt@m*_TW&o}䎲w&-r~bUm`!7/%5%%'%5%75%Jvad",,V`bL"_D2,/*/&O{¸[&}P %5$r osaa^~||P 55%$so a||^a)W!%5%5$gV$}]]x|)W3%55%$Vg}$BW|]]RW(%#"'&'&'&#"5>32326%5$ian ^Xbian ^Vg$}NE;=LTNE;=K$]]x|RW(%#"'&'&'&#"5>3232655%$ian ^Xbian ^Ve}$NE;=LTNE;=K$|]]&%5$%67%'Et֋$k}uU)?eKtuu" K 9''567$'567&'%=⃹t֋~}uRU)?Kuu,ަK9'_%!"54763!!"3!슊@^`@ƍ^`_75!27654&#!5!2#@`^@Ȋʣ`^; #";3!!!!#"54763^`0rrndflppꊊ^`&pphƍ3 32654'&+ #!5!!5!32#^`0rrpp9^`phƍ7!!!"'&54763!!"3!Ɋ@_`@,ƍ^`7!!5!27654&#!5!2#@`_@Ȋɖ,`^ȋ '!";!!!!'7!5!7&'&54763!7!!ʉ_`'}E=aLT>scL0R^`5ƍ7 '327654'&/!5!7+!!'7!5!7!5!^`__BV 5cTpX?bLm>U`^`C 7 Xȋ5j )5!7!!'!"'&54763!!"3!.Bqx-qxDɊ@_`@Z54&'&'$  &'&'&547676!!#!5!]\LMLLML\]]\LMLLML\bc1111cbbc1111cbdd''LMmjML''''LMjmML'dbcwvwvcbddbcvwvwcbee$7!!"2767>54&'&'$  &'&'&547676r$]\LMLLML\]]\LMLLML\bc1111cbbc1111cbתa''LMmjML''''LMjmML'dbcwvwvcbddbcvwvwcb$3?"2767>54&'&'$  &'&'&547676''7'77]\LMLLML\]]\LMLLML\bc1111cbbc1111cbxyx''LMmjML''''LMjmML'dbcwvwvcbddbcvwvwcbxyx$7 "2767>54&'&'$  &'&'&547676pxg]\LMLLML\]]\LMLLML\bc1111cbbc1111cbpx''LMmjML''''LMjmML'dbcwvwvcbddbcvwvwcb$73#"2767>54&'&'$  &'&'&547676]\LMLLML\]]\LMLLML\bc1111cbbc1111cb''LMmjML''''LMjmML'dbcwvwvcbddbcvwvwcb$ 2L"264&'2#"&54>"2767>54&'&'$  &'&'&547676ZPnnnoO@v+..]\LMLLML\]]\LMLLML\bc1111cbbc1111cbAoPOmmp1.-rB''LMmjML''''LMjmML'dbcwvwvcbddbcvwvwcb$+E %#'-73%"2767>54&'&'$  &'&'&547676C4f4C4/f/]\LMLLML\]]\LMLLML\bc1111cbbc1111cb1XSXYS''LMmjML''''LMjmML'dbcwvwvcbddbcvwvwcb$!;!!!!"2767>54&'&'$  &'&'&547676]\LMLLML\]]\LMLLML\bc1111cbbc1111cbj''LMmjML''''LMjmML'dbcwvwvcbddbcvwvwcb$37"2767>54&'&'$  &'&'&547676!!]\LMLLML\]]\LMLLML\bc1111cbbc1111cb8''LMmjML''''LMjmML'dbcwvwvcbddbcvwvwcb$!%!!!!#!5!QX>ddYee$ !!!%!!rPX>ת\$   ' 7 %!%!!=kyykyjjX>xjyjjyk$$ 3#!%!!aX>J@ <1<033!!upJ!#!5!3JI!#!5IssI35!3!|33!!Nup| !#3!!!!.NN$J !#3!!!!.$J !3!!!#3GupJ !#33!!!#3.GVfupJ!#3#3!!!!.cGGf$J33!!!'!'Ssj\s=u5Y6pJ!!!!'!#3!7!sjshxj56$$J!!'!#3!#3s6s=5Y6puJ!#3!!!!!'!#37!s:jsjG$-56$]*5$%67654&#"'632#"'732654'&'$@e=M>P7sZw㔰Zs7P>M=e.(Y7O0<0:>~jy[<<[yj~>:0<0O7Y]*327#"&5476%$'&54632&#"ee=M>P7sZw㔰Zs7P>M=e@.(Y7O0<0:>~jy[<<[yj~>:0<0O7Y( 51  ^ bb:d 5! 5bd 5! ^bbb:yg62"'&'!"&462!6"264S몧Q3Q3TW4drOOsOOSQ3CB3RU4CDPrOOqyg"&462!6762"'&'!$264&"aS몧Q33TW4QrOOsOSQ3CB3RU4CDPrOOqbgR 7!6762"'&'$&"26b1[륢S4OsPOtO.D/YR3BPQqOOy;d 3#!!#3%!5!( 󀨨 ds <!##5!#T~N 35!3 3#K#"T^ !!3# K@ih^T !!3 3#K@#"쪠T^~ )3!!&'.'&ZVF%,E=Ώ?~%FVZDA?=~ !53*,Ԫ֪w # #}}wJw 3 3!#wJww@ 1@ 0"# #4$H̭9B( w@ 1@ 02$53 3H4CC1 (B9#uTHF103#F1  !!'+]^*^]䰰3#3#!5!7 !! 'RLxxLux66x<ux6xx6x'B  ' ''ٛ>PNq^D^'B %  !'''tNP^D'B 5  5!''6bNP'B5 5tN>]P'B 5 'Nt>P`32?632.#"#"&'!5gV^naibX^naiUK= ;ENSL=;EOȪcy 33#cu?Ik8ff%q#cy 33#cffI?#q% )!"3!!"'&5463!! '&76)!"3!k:((P:jZYk񼽽jȊ ()9:PZXD  ȋ )5!2#!5!2654'&#5!27654'&#!5! !YZj:P((:kɊj XZP:9)(ƍN$!4&"#47632! #4'& PtPZXD|p:PP::ȀZX8x8Ȋ:1$2653#"&5! '&3 765PtPZX1::PP:8ZX:8Ȋ|84'&'##47673#Z:KK:ZllY:::ZaȌlala4###!5!5!5!333!!!!'5#Y~~~~,,33ͨ^ 3# 57Ѧ^ 3#55=d//m.   5 5 5 :6:6:6pr pr pr .  5555556:86::6:.  5 !5! 5?@Npo. 5 5!55?ްop9 %5 5!@op9 7 5 !5!?)W5$%5$Ti}$_|x]])W5$%$5iT$}B!]]|!&!%'&'57&%5$%67&%7*?;i@]0qw^%KA6#(AF+3273267#"'' 5cCXbh`^xnieEVhjb_zl]@LTND*F JVND+Fpo"%&#"5>3273267#"''55cCXbh`^xnieEVhjb_zl[LTND*F JVND+FͰW&&#"5>3273267#"''%5$cDXbia]ymieEVgia`yl]$}. LTNE+F KUNE,F]]x|W&&#"5>3273267#"''55%$cDXbia]ymieEVgia`yl[}$3 LTNE+F KUNE,F|]] 7%'%5 '瞃۞L О  @Y8@\9@a ' 7%͞G۞О@?Y@<9@}5!%57%!!'71|Iv\' :qߦ[@Z8@_}7!!'7#5!7%%%9Jpv\]FGjq8@ǹ@ 3!!"'&5]9Deo>ܚVf]>#3]J] 4'&#!5!29Deo$VfX,&'&3!3#76l<(enP==Kne(!< _EA_ <]> 3#!5!2765oeD9>יfVu(3(7@% !!!5 5!!37d  hrv! !! $<Ff +   276764'&'&">  &vvrn66\]]\6666\]]\65kk\SS]\6666\]]\6666\!;>32#"&'#'%53%&  s:{{:!8#!rܧ$daad]chaam@j.!3!3:^ &ۺ+#+#+A&6FVfv ]A]A]A)9IYiy ]+ + $%+$01! 4$32! 4$#"35%33!??qqW|A?rpG~+/ 8?+3&+3+A&6FVfv ]A]A]A)9IYiy ]3и/A&&]A&)&9&I&Y&i&y&&&&&&& ],9+ + +0)+001! 4$32! 4$#"!!56$7>54&#"5>32??qqWO\R!>/_N;sa=0>A?rpGM"?U(?N&:$}:iF D+B5+B+A&6FVfv ]A]A]A)9IYiy ]A55]A5)595I5Y5i5y5555555 ]5B9,5B9,/A,,]A,),9,I,Y,i,y,,,,,,, ]ܺ&9;9+ + )"+)?8+?2/+2/2901! 4$32! 4$#"#"&'532654&+532654&#"5>32??qqW v@X[}DuskcZX\[4yk_=hA?rpG]0OLGN<:,+>2+201! 4$32! 4$#""32654&.#"632#"&5432??qqWN\\NN\\Ta/w N 5jA?rpGb[ZbbZ[b#P =  "#/$/ܸ#и/A&6FVfv ]A]A]A)9IYiy ] 9!9+ + !+01! 4$32! 4$#"!#!??qqWkQ1A?rpGK '?K +=+1F+1+A&6FVfv ]A]A]A)9IYiy ]A&6FVfv ]A]AFF]AF)F9FIFYFiFyFFFFFFF ]%F19%/A%%]A%)%9%I%Y%i%y%%%%%%% ]+=9+/4F19%7ܸ+@+ + ":+".I+.C+C4C901! 4$32! 4$#""32654&%.54632#"&546732654&#"??qqWT__TT__jivvWQMKRRKMQA?rpGPIIPQHIPIvSttSv\\=BB=>BB 4@+>)+>+/8+/A&6FVfv ]A]A]A)9IYiy ]A>&>6>F>V>f>v>>>>>>> ]A>>])>9A88]A8)898I8Y8i8y8888888 ]+ +  2+ ,;+,5&+501! 4$32! 4$#"532676#"&54632#"&2654&#"??qqWUa.w O 5kN[[NN\\A?rpG$O <b[[bb[[b &2>+#+#*<+*60+6+A&6FVfv ]A]A]A)9IYiy ]A00]A0)090I0Y0i0y0000000 ]A<<]A<)<9<I<Y<i<y<<<<<<< ]+ + -9+-$%+$3'+3$01! 4$32! 4$#"35733!"32654&'2#"&546??qqW͞u>@EE@?FF?A?rpG>>'*6ޗ{5!!X3 2!@ 2 5!!5!!5!4)4𬬬 !!!!!4)4XXX 333 Nf  !!!@@@ Nf  53353353353𬬬 3333333XXXX 333322s's' !!!!@@@@22s's'!!!!\!!#!!#\!5!Z!!X!5!$Z!!$X3!-Ԭ3!-.*!!@Ԭ!!@.*5!3,,(!3,X5!!@,(!!@X3!!- 2Ԭ3!!- 2* #!!!P@ZԬ 33!!P-#,Ԭ!!!@# 2Ԭ #!!!P@.* 33!!P-#\*!!!@# 2*!5!3,Z,!!3,X !5!!#@PZ,( !5!33$,PZ,!5!!$@Z, !!!#@PX !!33$,PX*!!!$@X!5!!Z !!!!-XV !5!5!!,ZV!!!X!5!!$#Z !!!!$#XV !5!5!!$#ZV!!!$#X5!3!,-,Ԭ !3!!,-XԬV 5!3!!5,-3,*V!3!,-X*5!!!@,Ԭ !!!!@#XԬV 5!!!!5@,*V!!!@X* #!5!3!,-Z,Ԭ !!3!!,-XԬ !5!3!!,-Z,* !!3!!,-X* !5!!!!@Z,Ԭ !5!3!!$,-#Z,Ԭ !5!!!!$@#Z,Ԭ !!!!!#@#PXԬV #5!5!!!!P$@V,* !!33!!$,P#X*V !5!533!!$P-#ZV* !!!!!@X* !!3!!$,-#X* !!!!!$@#XԬ !5!!!!$@#Z,* !!!!!$@#X*5!35!,-𬬬!!!-,XX33*!!@@*DH5!5!xX333x 2 2H !!!!-Rx !!##xmsZxH !!3!!xm3-sZRH !5!5!5!,NX 5!###lZZXH !5!!!5!4l t,ND 3!!!--Dx 333!x,ԬxD 3!3!,(D 5!5!5!3,,D|X 5!333,,(DX 5!35!3̠| 3!!!!-- 2Rx 333!!xs 2 2Ԭx 3!33!!-s, 2ZR !5!5!5!3,,X !5!333xtZ, 2X 5!3!5!33t, 2H !5!!5!4R 5!!###sZZH 5!!5!3!!t,-sZRD 5!5!3!,-DX 5!333!,,ԬD 5!5!333!DX,!5!5!5!3!!!!,,--R5!333!!###s,,ԬZZ !!!!5!5!333!-s t,ZR, 4763!!"Q[yY[`~| 4'&#!5!2.-Yx[Q`~=?x 5!2653#xY[Q[~|2Ψx !"'&533![Q[Yyx2|~>3m 2>#3> 2> # # 3 3>ݲ}#$cc|5!F3F~|5!|iF3P|!XF!@F~|!|iXF!@P5!5!!5iVV333PP~P!!!iXVV#!#P@P~P;(;!O;!O ;!O;!O;!O;!O;#!O#;(!O(q(!((!((!((!'(I(!]((!((3(:(' q( #'+/3!33!33!33!33!33!3mnmnm 4('/7?GOW_gow#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573#'573(;(!%)-13#3#3!3!##!#3#3#3#3#3#3#^^(ll(lm#;( #q:(!&9 '( 9(& &!"9(&!"9(& &"'9(&!&"'9( '9(& '9(& &!'$! $!!!,7r+uv ))xxp) )$7632#"'327$%&#"%632#"'~~~~eMM>yJJJJJ6````qq|qq#u"@91990  9%-p) 327$%&#"%632#"'MM>y````qq|qqr' '/7?G%&'&'6767&'&'7%'676727"'64'7&"'62&47\+;.81F9K58.42d;E9G,:.80G9J6&8.;+d1O9FLL&_`JnLL'`_n<1& j(0=Ju &,A=N:0('<1& j(0=Ju &1<>EB0(n_II'[[JnII'[[p) %/36%632#"'327&#"6767&'&6py AAAA,+-,,-+A@@Rqq|qq%%mܱ[0$ %@%|"p) )73276'&#"7632#"'327$%&#"%632#"'r99:9rr9:99XWXXXXWXMM>yB!!BB!!oe33eje33````qq|qqp @ 104767632#"'&'&pihѵhiihҵhiѶiiiiѶiiiip $32#"$27$%&#pkk<MAk^a``p $32#"$"3pkk<MAk^``p $32#"$327$pkk\MMAk^>``p $32#"$%&#"pkkAk^>``p $  $"327$!pkk]<MMgAk^```p $  $"!pkk]<Ak^`p})6%63"'pRqq)#2y|q*q( 2654&#"!|~}}|v< ( $%632#"'327$%&#"!IMM>y_O````|qqqqH( ( !#%&#")%632OyyMMqq>~``  3327$3!#"'$@1>qq``) %63"æqv`) 2#%&#u)q>` 527$3Muyv`>q "'$33yuMq`p)%632#%&#"puqq>``p03327$3#"'$puMMuyy``>qq!$ !$ !$! !$!$3! 2654&#"4632"&nȊce;~|ddcc||}$!%!!d r<$!%!!We r<$!%!W7 r<$!%!W7 r<$ !%!!!!+c,b r<<!$ 462"! W|VV} ,|VV|V !$! c  !$! b  p(  7& $  %;<*X֖$ !!!!!!,7,rWb<)) Ie$ !!!!%!!,crWbM)MM^??@7`d?\gOOOOy>*<?v^h"3263#!5276;'4?'4?26u'6"gP39.4! '*C0.xV#m14He '1l1 Z+dd?33 #&'&+"'&#"/573;2?"#'57#&'#"#5676!5:+#9,p!j[%+ > 7VCCc":8}V .e3B=Se` e9*=9 3@=}k %C`:d;emu}'S3273&'3327&'67&'67&'67'32654'&'2327654&#"3672 $54767&'&47'&327632#"/#"57#"54?'&5432'&27632#"/#"57#"54?'&5432'&327632#"/#"57#"54?'&5432'&27632#"/#"57#"54?'&5432'&327632#"/#"57#"54?'&5432'&27632#"/"57#"54?'&5432'4327632#"/#"57#"54?'&5432'&27632#"/#"57#"54?'&5432'&27632#"/#"57#"54?'&5432'&27632#"/#"57#"4?'&54327'4327632#"/#"57#"54?'&54327'&27632#"/"57#"54?'&5432&'67&'67&'67'&327632#"/#"57#"54?'&5432'&27632#"/"57#"54?'&5432'&27632#"/"57#"54?'&5432'&27632#"/"57#"54?'&5432'&327632#"/#"57#"54?'&5432B~ %<z*+')+(@&'$||e<-A}]\B-71SLoWj\vLL)(0/ (( .1(%%,* # $ )*f$% +) $ #*+f%%,* $ $ )*  \o  [ %)#&'%&)#`#$ *) $ #+,U  Q  0 E%% +) $ $*+&EC&V*,)-)-*,%&%&fБfU 3HhfeefhH2pu^QFs棥sKQGh!99!  !77!  4 4 22 K44 22 22  11                   7        %&%&%'%&%'%&22  //  g               44 22  ->O`q +&'&54?632332?654/&#"2#"/54762#"/54762#"/54762#"/54762#"/54762#"/54762#"/547672#"/54762#"/54762#"/5476%2#"/5476%2#"/5476%2#"/5476D.2`{4&/<) e>O ,4H3R 07K $   $   #  #  #  $   #  $   $  U $   # " $   #  7Q=KG<s-8PZy9z _e""#/2dt0&2j ,: . 4 . = ,  ,   -  -  -  -   .  .   ,   -   !! WV9`8 !! 7 ! !WVDu9`8N I 7%7&54769 }V&7A 6$ 8'^4? !2 7%7&547!&'6I@Y%14HFS"="l-2DC[9 &! 4$32 4$ #"&54>2JJhhq0^mNMn2Z^Z2K7iwBNmmN1Z00Z} C"32654%"32654&%#"&54767654$ #"&767&54! ggJIhIhhIJgg[ZQoy y}WZ[zADgJIggIJggJIhhIJgU\\Q srW\\^} A4&#"26%4&#"326! 547&'&632 $54'&'&632hIJgggMgJIhhIJg#@@z[ZW}yOOyoQZ[sIhhIJggJJggJIgg ][[Xrq Q\\} "32654&7#"32ɏǾ/`T_ȐɎ;P12Y}1"264&"3264#"54327&5432#"'&'3xyx& کZTdIU  k#5AMYer3#"'%&547654'!#"'4%$53!76=332654&#"#"&54632'#"&54632#"&54632&'&67632#"&'&676'.547>'.76$6&'&54%6&'&6>#"'.54>32#"'.54 [$gi< D""D =if%LW쥨驧r^]]^ !! !! . . *)X,),*))+. } +G  G+vKK9__9KKݧꧦ]]_""""s!!""W&. - . - a)," "  ))    !) /     p%-5AMYdp|5#!4'&'5#2#"&546"264"264"2647>'.7>'.676&'&>&'&7>'.%7>'.676&'&676&'&53!76=3%#"'676%27+%&547654'7327&'$%'#327%654'&54718楣. . . .  - -Y - -))G))))U*)>- - ~- - VK; yA C0B Ax ;K'6FJ> $06# >JF6&@@1AeA1@@H磤椣筁 . . . .E - -- ,1))),(9)())u- , - - G77W6 W77G D&& ee˥ &&D "(=pp=("u !!'!Pn8hv "!!'!##+572367676MoL)>u eI3?ba8hA:F;/Itxv !!'!  ##' Mo_h[ei[i8hi[ef[l[@36273 ##'5) U.WW1@ US Vdv#,5>~3+&=43+&=4%3+&=43+&=43+&=43+&=43+&=4%33 #&'&+"'&#"/573;2?"#'57#&'#"#5676!5\:V\9\:\:]:&]9[\::+#9,p!j[%+ > 7VCCc":8 #8d#7$6$8;$7i$7 #9pPL  )Z. ;6ZV Z3%Y63 .87p  3DMy!674#!!6?676545&#'323276767654#3#&'&'454632767!672!&=75$/563&43!32+'!67#>54&53# ? I :W0 96;E,Q 2:&l6x0 bm! o۸"\>%Ef~e2U6g!6V#p5C+ C ? P9 @7H4XmM7RV /M(=H: ,qLUD)8Wqke-Pex NW =$ U  /0c)H?2@[nDF8T$.J? !' !T4XKGwL5_K !'7W4Z~wDS&5476322632%632#"'&'#64'#"'&'&54654&'&54767632xJX%&XA,B:\8 [EMH95##Fl% !9@!#jL p_Mi#"?8" %lF##58HN4hok@RRr*%te BB9'7*$%) "fXS5EIf" )%#,7'9CB >E3#"'4332327$'#"$4727%672567654&5&oJ7.b9M D ,B3 qY 5**]d=HN9% sW$,J ]T-MMm@ed: ,'Z M'cM&T)$$ < I2%!"&54676737#&'&54>;7!"&546767!7!"&54>3!6763!26P+=6/2D>R+>2,+v*>>+2  ,2 =,2  =,3>,2463!2!2#!!#!32#3#!>*v+,1>+R=D206=+P#,>3,=  2,= 2,  2+>{"D%4&#!"!0#"3!!"3!#";#"3&'6737#&'6737!"'67!7!&'63!67!2I0!6OS SS: SS>SS]]J]]]]h\\, Bv*>K%39LKIOKHLKIhghghghgE?-L!D72654'6#"'4#"'54#"'54#"'675674767#%$4:JILLHOKHLKIhghgighgD>-sJ1 b6'SS cRR SS?SS\\K\\;\\]]!A*>K{!C%254+'3254+'!254#!'!24+!&#!"463!!2!!#!3#3SS?SS *vA!,]]j\\\\K\\IKLHKOIKL93%N-?EghghghgiL!C32=732=7325732'654&#'%2&'&5&'5&'IKLHKOHLLIJ:4$N->DghgighghSS=SS SSb SS'6a!0J)K>*B \\]]:]]J]]}O &*.26:> 3656;2#'7+"/#"'+"5&54775%"'5476;25'7&56%635&56;374765'75'76=4'&+ +"'4!#"'4543$365&5&#%#754'&5&&547'5367&547+&'&'735&2?"5%75537'7'3533553535'32767&5%2?&#%55'5757757751:e,$?F?Y>F_LA3ELH3,8LYLlEF'!0< k#gF  EeY!! Gp&iq.8ZN$%`BCf F4"4._?ee3&{E(1-+$Kt8 -  $Gs sM rEF"2 >_plTErf^5.>=9|5"-l)d ,&>vv]cccWpC-+ d8 Bpp>W]oaxvuPp82,D ^8, ^B$K+ "1R[+e*; 2 W QP I&? gpo% w ^SA$ 2 9i-5n02 Ai&IY^P]D%\??\OWC ,,1 /211/=;7777=321811{908hN%b\Dh,)h?17I21!122223 21&2%2#"'&=477654'#"'5473Bq4|l anN ilm b 9 b؍MOb>YaYƮ58l7P P@ $0<FX + &=6&# 3 6=%&#"';27!5%67%!&'&'2+"'&=476r cR~UY082.ԍ_W_V"+}IR8D).P9H'S]ٱZYHYoX(I_ ;.2lOP%.G6R%&I8d)Nl>54'67&54&#"&'632.547#"'&'#"'3267654'7327323.#'654'567654&&5476;'&'%&+"#"8DH$$yU ?L[>!WtJ([Fho*m.2\=w\`|UP7:/E" @7?EP]Eix pF@T5ym,"&eB@q(A _% #+B7!N &".OS$XE/K(Aa]dLP*'FCaYr=C44mo C (FKWYFvbph'UD'R< $d#+?Vm#327&"#"'7'632&'$54#&73254'&#"'5&567#&''5$'67'654'6'5$'67'654$'67&'654'''5$56732#"'&#"&'$'63&47"7&'7&'7&'7&'54'6546767675477&545?&''5&#" '6%35&'.54>23#67!&#"W  OB7[l#> F_Vh " "@.,=6tJ4Vp1EQJqMi vhpHI!:JJJ =4m\8B*?o v!"t,`s&*_~P1>5='g=>24<+-s[,*&sd1PT>3J@='h<42J-H#*YT_Y)*)X^TY*$D  ?>}>  *0t"J.  &b54CUE ''!`9 !,(MTE *! }q~=/+)f[4f !B" <@0&9c?"V+GoMK~a? }b9e\ P&0@k"?c*GEJX ?e}9 \4 \6 '''' 6\ N(&'65&'67327&+!65+"3yyys{w ccޱqXeXc6 6 c ,35'533#3!'#'5!5!5#53!5!5#!!-ʷ}} ckvG G @<<3ffX苜qXGccGJ 326&#!2+73 ### 3(ttvgnؐB(33#!!#'!'57!5#'5735׫$"q~q+!#!573#'5!3!'573!#'73!#'5;jjŠJss<wѡIjj8/w{,32#' 3%+ &5%6323'#57'53^VQ6>ѨABؒ6ʞG2k >Y3~||~Obs32732753"'#"'4323$4'5;+"'#"'53275'&'&5?5572%#&'&5%634%476=%@.!%,BE,#!-Q2" $nL/PuHED832#"&546324&"26%! !  Őb{=&*<<*(;E;R::R;KJ67Ϛ{ɬ)::)*<<**<<*):<'L67I&' &' &' &' &' &' &' &'  @FLRX^djp3264'&#"&47367'676756273#'#'5&'&'7&'677&'67'%%&'&'%6767%&'0/CB^0/AC/pkTcR|'N(OfUippqUfO''NQaQh!$ b)dLQk KRt!% c'd&//^000'N'|P_PfppoQ`Qy'N'P\ QgppmQ \Py,  M N>&`7" bK*V&"g{ M M %1=! !  54 #&'&#"#46324632#"&%4632#"&67KJ]_EASvwSAF͒D10EE01DD10EE01D7IL6a]U@SS@U1DD10EE01DD10EE %1=! !  54 3327673#"&4632#"&%4632#"&67KJ]_F@SwvT@E͑D10EE01DD10EE01D7IL6a]U@SS@U1DD10EE01DD10EE %1! !  5# '&'32654&#"32654&#"67KJ;lWPihQV<=UU=-1\ H0e%FKSwZGr=;=NN$E| 1 ?'_>?@7`d@\hPPPPy?+<>w_VG{?,rCA+ +"'5$76%&'547327676=&#~jt1/Q}](+VRxbO P >nS]] =fP+! &56;2'5$%75#"3ui1.P~N](7P,VSZycOpO >S\^ f0:1>7#'#53'&'&54767&'&=33676=3#326'&i($lm$(($[Uu&tU[$&uU[[UV$|ddb e|$% ZSSZ %_TYYT* $4&#"326&5432!!##53&w衤礡PP䤣L~||* $32654&#"%#"54767!5!33#b衤礡7䤣L~|| $&$76+"'&5'476!7!ttsstEus pid5s qttrtt<֤ꧦg\ulS5264&#"#43233#!5 z{ym㗗y{(|j#53533#632#4654&#"#*jjoon}mZyH{zF2 1"32654'#"&4767!!53#5!!3!!#3!!pOO87O:=0LmkL/>Λ2  1O79NN970LؙL1KӘJJ-'<%#5#535&'&'5'73'3#'73'676=35'73'33◰zhNgeMjzzTThOʍ7NjYYӖy?! #!!!'!27674'&#.d ;6zFH%QM_\ǃ$P<]$!#"#&5463 67!2#654&#"V⩁"T]ts]U"X"1((1"u." 6&'67>3"#"54767&'&#52&͕LVa{.+ؔ)0zHUM\&ϖ=Bll)'ҕ*l8lB=j&'5 %$ 56?63#'[Wtutu4ZZ//[[5  @Eo&<"3264,'532'&54632264&" &$#"#"&547>B_^^l;͓hI^9l:͓hI (+|TlgMLx)+{TlϔgMM M>54'.#"32463227#"&5454&#"#"&'&54767632254&K2q'$#K1o'#0ߴGdAoc.% 3t88bWDs-Kx68<32>32#&'567'45'#&+"#4'3>$4&+"?w(K>R0D32>32gYYYD,.:?#)v$E?w(K>Ro}vvxJvaAjtAO]ƀwϧ!5!3##'!5!~2k<@i8080k<j)127632#"'#576&#"4'5267>327&'"SkQmyz,~zi2@:$(.-)zW] ݾgvx-aX[&ŝ9{'Q32263227632&#""'&#"#"'&#"#'3232762327632&#"#"'&#"#"'&"#'Es- p86rV+)|m^?_354.#"!&'.54>325467675#53533#63232>54.#"P#3JTRJWVJQSOMJ4"?*&ElnhPL$ llill %LOhnlD')----+)QPQ((QPQ)+/ 6klj$?6FWWF6?$jlk6 }++--JHNRh|&'4>32"'4>32&'4>32&54>32&54>32#!5!'!567>54.#"32767>4.#"327732>4.#"327>54.#"732>54.#"M_ 6694S55.+C55C&.66 V\+55 c$M##$ 6$#$s`%#$d0"%)h #"#_33@]22-"40446/*33UJ"+33^1/K=0T* ####  #&$$&##&$$&#  B #### *"$$" U!'-2!35!#3!53573#'5#5!35!75!!5'57!s\\ss]]s JRRIJ~֛E77__vtt4!v7CQ^&54767&'&'5676767&'&54>32! 535#5##3654."!2>4.#"  <$))+N-N*)N-M,**%:  @ v<-MTM-?K5:66459<5&?HPPIK* ')+K**K+)' *KIPPH>&5<:6uN|l||l|-I+N))N+@6:55:5Q)5>o654&547!&54='&'654'67.5476;+"'5#"=6&'76767%25#654&'Fz-6 Z8. ,N0H!h6%`+EH )#M ;,Jga#iR k' M +1^hgo8:(@s.Pmz nx?.#1p#41`&>%!ac,,LHJ x}647| + OJJ)!0 P[32>4.#"32>54.#"!5&54767&'&546767&'&4>32'&'.#":e79e89f76e`[S &(*UM,N)(N-KV)&& \@ECApd88dpg669:%N&KRS* 'TM**MT' *SRK&N۠:9}qyyq}c $Tdhy67&'&"!3!67>54.#"!&'.54>325467675#53533#63232>54.#"!57!&'.54>3234'67632!P#3JTRJWVJQSOMJ4"?*&ElnhPL$ llill %LOhnlD')----s=BDw@>=))==AwDB=+)QPQ((QPQ)+/ 6klj$?6FWWF6?$jlk6 }++-- !yCB{C!$$!C{BCy! JHLP&'4>32"'4>32&'4>32&54>32&54>32#!5!5!M_ 6694S55.+C55C&.66 V\+55 c$))_33@]22-"40446/*33UJ"+33^1/NNOOU%)5!5!!35!#3!53573#'5#5!35!s\\ss]]s ^^/oo#E77v4@4767&'&'5676767&'&54>32!&535#5##3  <$))+N-N*)N-M,**%:  @%v<5&?HPPIK* ')+K**K+)' *KIPPH>&5<:6n5|l||l|L3?HN654&5473#!&5454'+#"#7&'654'67654&547;2547#";65'"3%:U"-6 Bu Zg0krX0c-h8E+`%s H>4wM-'9.QY / o8:qhPSmh #%Bz1"0@)5"@YR0.&54767&'&546767&'&4>32; &(*UM,N)(N-KV)&& 9:%N&KRS* 'TM**MT' *SRK&N۠:9C##"'##56'##"/547?^'5@_*SU&/UL ;Yԧ9UP(` XI.s222732#&547636=4'&# #4'&#"*t pz&=<xQ>hG:V Hek%PF5NP B|-&pA&NFX &&5 <F:^;" V gdG7236;2"##'65##"'&5476;235&'&=476e x<JT`(GeRUdfB3 VNTMT,P$ 66$0_ u3dUdt_}s*$"Rt0XX__/ik=ZG8*F 1 . ъf)MC =g9EkO 9!(-);&  ]t!y" & 2| ba$ U+  #8M35733!&54?'7'327!!"'&%#'7367654'77'7'&#"'676ի,&T>=c#]K9.U:1ʈ%`T?7>54&#"5>32&54?'7'327!!"'&%#'7367654'77'7'&#"'676]T@1$J=c#]K9.U:1ʈ%`T?32&54?'7'327!!"'&%#'7367654'77'7'&#"'676Z _3lFHe5^\VOosHGJI)`VKm1Sj,&T>=c#]K9.U:1ʈ%`T?=c#]K9.U:1ʈ%`T?=c#]K9.U:1ʈ%`T?=c#]K9.U:1ʈ%`T?=c#]K9.U:1ʈ%`T?=c#]K9.U:1ʈ%`T?32#"&e|e(<X<ħñ"32#"&$2#".46e|e(<X<ħñ"@<#"4.#"e|e:<#"< !<"#;zch =B4.#"$32>4."e|e:<#"< !<"#;"< !<"#<@;zch =B54.#"##"'5##"$'&'0!5!5&'.4>32!!676767'%''H&(G()G'%H(%'V W3WImuw>DE}AB|GE=md^JW4W Vs'H''H'(H''H`XAK|@X1(ԁ3"|}DD}|" 2/ "1X@|AX1# / 673&/'67 &'"&'6?&'3 ' K[]><+Gg['fBBe&\h?(K?]\K !;32T $ #AC,MMMv A5p_9D-M**  B@0"@R//>wA&oc/D&3.YaQ/5"1'"uE62/u= =!m- .... y 7%  %  32+#".=!"&'&'#&=4;7337_% 8)0/_^^M^1/ 9534<&&<&*(D>?GGzB6C{GG?>D9/C}&632#"&'.#"'#!#!#Ҹ62K#+~KF0R!9'/Nx_TV_T 'NQ9;:#8HL"CD|))Z) 532>4.#";267#&=&$32735&'.4>22[02[24Z1/[)'5*+X A323#67#&"#"/&'&547&#""'6%676V n*[n%'ZxL0<{2;&b;0&8a>!U*~EmLK}`? {a7c[ O&0>j!>a)E~CKW ={d{7 [+M57LL75M-Z '*''*' Y (5[ J5( \d (5J [4 ''/7O_2#".54>&'32367&%2327654'&''67&'&'&'676765467654'&#"7>326323#"'##"'&'#"&'&54767&'&54767232&'&#"6&%6767&'&'&#"676&5467&'&6732767&$$$$OG3%V cc V%4GL944m/122102/.303112.OF}6&V e"w?>v"pt #87! vn":;@A<:"nx !66# sp%./13/.UVT\<>"$!! !"#">kc V &6|FO 93399 <>#"#><  "$ZTU./43..V5$##$59gT;&'9Z^^Z9'':Tg9'(''&()I8:9889: Z_59eU;'( :8.>euvc>-7:bccb;7-?cwud?/8KWZZW **D@@D+8(':Te95^&)(&''(DA:AD.*!Y[[Y!& !-x67&'67&'4&6%67.'%4'6&#"&'6767&54?67&'&#"#&'#&'5&'"'67&'&47632>4.#"%2#".4>'7,3 3%/0),7=*#0*+3.22'8  YfT,1'').UfY >98 "2 B2;F_ XB?2C 3" 894ihgikce"S[XVWXZ#ejpMcNTvJKrZ1VlLWMI p jk%nA V{ww[11[ ww{V @#fd-#JM 7B/""0C7 NK",df#νhhοggQUXXUd %3!'#!52#"62#".54>" h9|M463%&$$5 O Dn; $$$$33'554#$/[QwGSGUW GJGX .5CK&5432632!!#!##53&4&#"326!&&#"327&54654'XP}}P~C;7?_Xej;A>7'sssLFF~||ב-  䤣lrrr)-5DL&'&6767&'"'&'&'&5'476!7!! 76'&'&'6'&utss-5 l&kpid=pDi/tEust,2}ts5sqtt-ԛ1 k&iꧦ g\}ul  An?\27/rtts,͓}qt)8GO'"'!!##53&'&54326!7!&'&36'&&5'47&#"327674'U`P}zpidu>7;C˂;C>xtsK) ||LGD g\uls螝՞䤣hkrr .4&#"326&54762!7!!!##53&w衤礡ᩨhn&䤣羚 o[tꝇ|| +D#"'&'&'&47>76327'7'%'27>764'&'."(F3"D"&%#}bV`ZZ^;D"&&$[X]:3G9:]:F=~=HS]^X&% iiD^29i\=<<92-1X?:<91*=X62'%'!!#5!5!5&'&'.546767''7'''7"2767>54&'&'&4p69].(EGGE@Z-<81VDEGFF'19T]9T:G5>+.11./:95>+.11./:9 \2:a(Eb_E@( %CE_bG(Hij:ο\ij+.wBAw./+.wABw./4+F!!#"'&'.546767675!5!' 2767>54&'&'&"<-Z@EGGEDVRbfNZ@EGGEDV18kbbjC9:/.11.+>59:/.11.+>5疑 (@E_bEC%##(@Eb_EC% kajP/.wBAw.+/.wABw.+ +F####"&'&'&54767>32333'7 '%32676764'&'.#"ܖU (@E_bEC%##(@Eb_EC% Uܭkaj/.wBAw.+/.wABw.+<-Z@EGGEDVRbfNZ@EGGEDV18kjC9:/.11.+>59:/.11.+>55 @  10432#"732654&#"陽…5 @  10432#"K +@kk k kKTX8Y104632#"&732654&#"ϑϑϘuSSuuSSu͒ΐSuuSSvvdPK!)7eK RX@ *.,&"($ k3,k($kk8991@&"6k0k 8<2<299990Y4632632#"'#"&7323&547&#"%6547232654&#"dϑRDDRϑRDDRϘuS?>Su^222Z>?SuuS ͒!!ΐSuXqpWv28ML88LM{WpqXuSSvTZ`z8Rm3#"2767>54&'&/2"'&'.5467676"2767>54&'&/2"'&'.5467676R#)$#R#$ $LK:C.25521@=:C.25521@=R#)$#R#$ $LK:C.25521@=:C.25521@=zZF)(JG()K.2IF21.2FI21F)(JG()K.2IF21.2FI21 J7Qk>767632"'&'.'!"'&'.546767632$"2767>54&'&'$"2767>54&'&'#61@=HK:C.25521@=:C.5%'21@=:C.25521@=HK:C.6#R#$$#R#$$R#)$#R#$ $5[51.2IF21.4`]21.2FI21.5[F)(GG()FF)(JG()KR 5%%%xr6׊eMM^xxV)7654'&'575#!&54767'5!s_vR$N::N$Rv_{aT,X@X,Ta{4b\)1%==%1)\b4ߴ:`\KDDK\`* 4&#"326&'&5432#w衤礡$PP䤣L~{Y,326& '6 !!#!5!(+~uP.Gjt ~||, # !!#!5!L>>0oJ;||,'!5!737!!!!##53z{{{z{|zhz|{||WxT% ! !5! #3 35!'T??LLwLLJ|A|JZt|J|,$264&"&7673% %&uuu>hH]%VgVYFhݦuuv#gGέҔEgEY$&'&5%6;2#"'!!##53uN)$#<^tfFp!E&J <ԩ;  ||lPj'#"'&#"'&'&'&47>7632327>76&'&'&/&'&'&47>762!2!%327>764'&'.#"&#"327>764'&'&s* 0$+$$$ 1#*# ZaZ%% NT12 4 #HH  ")mROeb  , 0  +   ) . $J . %'.D"&B 1 $C mR )Ky    !   V!Edz267>54&'."#"'%"'&'.5467676;27>4.'&+"'&'.54676762%632$"267>54&'&.&&.&m,mQjP(!N!"(! aVf&&bZ55!("!N!(PjoQm,.&&.&q    l?W,>&#< A#"< " (( " <"#A <#&>,W?~    lOOj3!#!"'.'&47676?6767>'.'&#"#"'.'&47>763276;%32676764'.'&#"676764'.'&#"32eOuRd2!  HH# 7   ZTN +Za21#+$0 4$$$+$0 's  *   * OK) Rd#!>& 3"9*$"D. ' - D! 2 . , T% #: & (  IZx-4H67&'&'&+"'&'&'&476767632%632 #"'%#"'&'&'&54767676;276276767654'&'&'&"276767654'&'&'&""'&'&'&547676762"'&'&'&547676762'&'&'&547654'&'&'&";276-&#"+"276767654'&5476%327%&"'&'&476762I  Q\C--%("(/*0.,+"( /X]\9<\X/"$)0*3')"* %1*0CR[        22 2 2 2 %'   &J  &%C\d#_*]OhXC%&  J&   O]*       ")&`&"'$"/' <%ZS  % SZ%< /'* "%5"-($# ;8\= !  !  " /VC "  !  !  [uV/+    V^au 767>54&'&'&#"&54767632 '.5467&54732#"#"676767#"'&#"'67654 ozwbda_f_zx|wbdaM,krnulspsnunNJ*D$ lQ$" 6*D?"5'K(2- # >   :72 331cd툍i`4331cd퍇>mwn<;;8ro졘wp:;;BV0/M8:D@*|sa  -F(7 "*=8&0!2  1-5$& 6:B4V^ (B\w.'%&'&"632%6767>54$2"'&'.546767" 767>54&'&'&'2 '&'&547676?'*&$ 1$-+h+-$F3782**?1 $&>>9|wbdabc`zwbda_f_zxspsnunˎspsnulwI_"2[$  "" gI $[2!v 55 55 31cd퍅caf31cd툍i`43d;8ro졘wp:;;8rown<;x,A-57'36%33#3#!2#!3#3##$'#7$@d5{sVd]F0 0F]dVs{5⒒d@( jPP,PP` 0 ")- !676762!"'&'&'&54!X$#R#+/RFF$#R#$1Sh,  k-"s!|P476?6763&'&'&547632676767654'&547632!54'&'&54'&&#"'&/&'&'&#"#"'&'&/&'&#"&'&'&?6'&'#"'&'&#"!'476='654'&545454'327654'&'&327654'&/%4-)"$0JK&  )7    %0'# #6 +-L __^/s4* 1( .266 |/(1   \   #:7  lS&   x71]/~[#<$  o_%@,: $";vR $X$+|!5DX&PY;9Do6 b'n2  83eF] 4T&  &  /50$?- 1@& 3l K  C"P1 :03<D:5XI.)D&[+-1:   q/A8   g+jl9Lp{7654'"'&#"+"'&54?67676763276323273#5%6767'&#"6"/67#"27632327654'73654'676547&p/l0&J!cS%YE]{@C"$4>-;% ,(6Y>m!N$X6"/,(4sS?X$U>"sJ?K(`./4+2K2.0>S Zp0+1^' ;cs  /^"|Y/ 428ۇϕl%%ot5oA='Y$ aT* ''G+- %_kj~r}jL`І|\gK@/.85c($ (2LS>54/##326?%%3254'654'3>7632#"&547>32'% ;66I   }g ?6qn   -> 9@ H67;  zh| 8 >6!q    B5>%+?F4&'&/76765'7! !'!654'!4'!!$467>2"&'&!654' 33 ^^^RXI#J2VlP# ~!88!~ Kppph,p<(##(#id (2LS.#"227654&'''%'654+.#"65.'&54632#"'.6#"%  I66; o |>?%6!q   9  ;76H   |h> 86qm    BX{[%G'23 %%.'&"27>7%$!"#232%"'&'.4676762%#"#2%k      A>>dIID`nS   SnGYn 5>5 n)(%$#"#64'232%%&'&'&"27676&22k**!n``n!##3W 2327632#"'&'&5476'( > !~GH ".4F+@xH )0$'*' 23277632#"'&'&54763'( e` }{*279HF`0@xJL 1 ,A  ' 7 Ɏ877Ɏ77ɍ8ɍ? tt7tt7t7tt7uB2632#"'&'#"'&54767'&54763267632676 Q   x L$3 z(   6X3  6*=P*> "#  R26#"'#"'&'+"'&'#"'&547&'&54767&&5476326763276T 디% $$YyX$ zc0 + j :  (̢1#: _$ #- Խ =1 '2ĺ pD #!!!!!%!!!!!!!!#!5!36HVBBXBBUHVPBXyBpD !!!!!!""p"p"#pD35#7!!#!5!3rrsrspD!!%!!!!!!r"p"#p"#Rb !!#!5!3ppEU l3!!'#'!!#!!3!5@,r,,_ r,,_>v #!!!!!'!!!!!!!!#!5!3hm_|P_H_pDK#";54&'&'&#'!326767657'&'&'.+3!76767>5{dIB,$2$*DEh{LGC_RQ|66R_CIJ{hED*$2$,BFd{LGC_RQ66R_CIJKIB`OT|87O\FGKzdGB+%2%+BIdzKGF\OT87O`BHL{dGB+%2%+BId  #!! !!! 373#'7#ZAA:Llحmllmzlmllm|}}|d d}cT`C54'&54762327632#"'&+"'&5476=#"#"'&476323(L,68x86,L zFvd0000dvFz L,68x86,L zFvd0000dvFz zFvd0000dvFz L,68x86,L yFvd0110dvFy L,68x86,LV^&'##"&'&'&4767>32367675&'&'.5467676236767>32#"&'&'&'#"'&'.546767675&   R.-R  R-.R "  *!""! ((\(( !""!#%   " R.-R  R-.R    %#!""! ((\(( !""!**!""! ((\(( !""!#%    R.-R  R-.R "   %#!""! ((\(( !""!*  " R.-R  R-.R   Sa4&'&'&'.546767622676767>32#"&'&'&'.#"'&'.54676767>5"#"&'&'&4767>32(,$ ((*& :.r06$&**& )'De!  'd8:b&$$&b:8d'  )a@/!  ')*&$6/r/6$&*)'  ')?c'  &d8:b&!$&b:=_& (bCc"  &d8:b& $&b:=_& (a?/!  ')*&$6/r/6$&*)'  ')De!  'd8:b&$$&b:8d'  )a@)' ((*& :.r06$&**& ((T`0267632#"'&'&'!&'&'&54676763267632#"'&'#"'&'&'&5476767!6767632#"'&'"'&'&'&54767#"'&'&'&5476767632!#"'&'&'&54767#"'&'&'&476767632&'&5476767632!#"'.'&5476767632&'&54767676Z   ( &            <   4          % (      (   2     6           %    <    %  (   W_2767653"4'&'&Wspsnullunsps;8rown<;;j>-'O^__^Oq44H4"hdd0!% %!-@jjjk**37'73 #'xxxx.xx.x..x  pD #'!5!73!GFdFGrEGdGErFGqFGdGFqGEd@L     - FOFc,OO,cFd,PO,dGOP T` '%%%%%% % -wD{wwe#w%f{wwy||y{xxe#w%f{wwxEy||y % %  Zp/AppA/}}ET`     - Zq NqqN  NrqN qrT`% % -ZyllylyyT`%% %% -ZtGcVGttGVcGGstGWcGtsGcpD/3%!!%#'''%!5!%777xo:U.cF.d;UǩoxoU:e.Ec.U9oE.f:UūoxoU9g.Ff.U:oxo9U. 54'&5476276767632+"#"32;2#"'&'&/"'&5476=&'&'#"'&'&547676;232?&547'&#"+"'&'&54767632676'K,68x86,L qA'C<4GW>L d  f L>WG4L d  d L>WG454&'&/54'&5476276767632+"#"32;2#"'&'&/"'&5476=&'&'#"'&'&547676;232?&547'&#"+"'&'&54767632676o**YK,68x86,L qA'C<4GW>L d  f L>WG4L d  d L>WG42#'"372"'&'&/"'&476="'&547>Q!//VZ *nN+G80j@6RR6@j0/P1N TP#00VZ ,lO@W+G80j@6RN6@j03L/N  ]H,`,H Yc!77\4OO4VA7gU3',H^ ]H,`,L&3c!77\4OO7VA7fV4&,H^67654'&"327632#"'&'&/#"'&5476=#"'&'&5476763232?'&#"#"'&'&5476763254'&5476276767632#"'&#"#"'&#"327676%32767654'&'&#"#"Z8%1T1%85e %ZF\ +m8BS/?JV@6RTXN6@VGB1QB8n* \FZ% e53e!&ZFZ *n8BS/?JV@6RR6@VGB1QB8m+ \FZ&!e3DA 5<; > +F$H$F+ > ;<5 AcJ2QD++DQ2J (5H,'9,J&0f) T|\`j4OO7g`\|T 'g/& H,9',I4( (3J,&9-H &0f) T|\`j4OO4j`\|T 'g/&J,9',H5(""'!$(:UJJU:($!'""nFw"2767>54&'&'767632"'"'&'.'"'&'.546767"'&'.546767632.546767632=>343343>==>343343>x>%85670-),(-%8/[0!-(,)-02y/8%0%)-02y/8%-(.'&$W/:#-(,)-02;>/;),)-02;>/8%-( 06{IF{6006{FI{605+'g>:c.&".c;=g'+&1N%&W'+&.c:>k#"$.c:>g'+,B:>g'+&.c;=?nF\v%"'&'.546767"'&'.546767632.5467676267632"'"'&'.27654&'&'&"67&'&'&'276767&5467'&'&#"32767>54&/76767>54&'&'&#"Z0%8/y20-),(-!0[/8%-(,)0-<1:3%>(-%8/|/8%-(>%85670-),(-%8/[0!-(,)-02y/8%0M=  H C# B/g H /*x#$  8## H g/B PP  $#x*/%N1&+'g=;c."&.c:>g'.5 ?=;c.&&.c;=? 5+'g>:c.&".c;=g'+&1N8GG$> >$ c.,bB$#>  Ir0C >'#> LM >#$Bb,.$ >#'> C0rI T`)T:e&'#"&'&'&4767>3267'&#"327%32676764'&'.#"7632#"#.4767676324676762>322##"&'"'&'.5#"'.'&467"&'&'&4767>&'&'.'&'>76?&'326767767>5&'&'.#"767>7.'&/32>7674&'&'67'&'.#"67'&'.'67676767"2767>54&'&'"'&'.54?&'2767>54'7654&'&'&"67'&54676762:    $4 4$ww4 4 xy   %" !()-+U$"! ((\(( !"&S+-)(! '7M"# V2% A()-.R$"! ((\(( !"(O-,*(A"#2P"# "M    ! *4 2 kk  4 2 uKK        i2 4* !== 2 4  `_  wR#$$#R#$$  8 < c !<>     8 < d!!<>   "%UV*) !!$3R  R3&!-(-%Z& "#%(.2$( &&S+,))A!$3R  R3'A))XT$""#%(`$( "      i3+!x== 3 _`        !+3 kk 3 uKJ   F)(GG()F$    %3 3%ww3 3 xy   V^3N^"2767>54&'&/2"'&'.4676762 '&'&547676% %-z35++++++53z35++++++5pWDM69?=;9JHDM69?=;9JHSspsnunˎspsnul}}(.h<;h.((.h; +F$$> +F$H ;<5 A~ ;<5 A+DQ2J (5H,'9,J&0f) T|\`j4OO7g`\|T 'g/& H,9',I4( (3J,&9-H &0f) T|\`j4OO4j`\|T 'g/&J,9',H5(G+DQ2J$(:U$(:U3!'""!'""A''7'753'75377537'7'#5''#5'7#5'7'7<B-DH2#"2767>5!"&54$3!57!#"'&'.5467676#_>I-743TP>CPNDG-2.1/&D9 88 '.* !-8D_2{j@F'%.3r@Md7+4V/2&'&54676762"'&'.546767Zy*,&''&%1]~|45,-++-,54|45,-++-,5(+&a4|d΃fz4a&$(F*.j=3"&'&'&54767>32rJ6464NN4646Jp`684F@NLBD64:866D@NLBD668^~* i654'&#"632327632!"'&5!267&'&#"#"'&54763247632327654'&547632#" 6+Jo.^V|;-˙it36?̺fQMeEJS?(*$ s]vh2K)*NL13^v:Mc*ZeC03N35%&-Kt\K%9S >BWN=!$?$8(F!5{^?Z Q67654 547&'&+327#"'#536767&'&'&5432&5476323254'&5432?-BO>=v06&%K`dC+(k$'eM?$#=Hb B=)+8=.m9eb PB>$3g:84!EB7WPfG+1KHP<Ff#&T'0P+A'<}DC/'"05276767654'&'4rceNS((((`hm@DDF/CD}>C/GFCG !&547>2; 0!!6P<:! !$ ! "#{! !{54&#">32!5!>??qq>0ţ=as;N_/>!RL}A?rFi:}$:&N?(U?"Mt 6+A]A)9IYiy ]1.+. + !'+!+9*'!901! 4$32%4&#">32+32#"&'32654&'26??qq|=_ky4[\XZcksuD}[X@v hA?rs ?<:32#"&'32654&#"75!5!??qqYe2hvvhDw_X@ϰ?A?r%aVUa/  23/4/3и/4ܸA]A)9IYiy ]A&6FVfv ]A] +  + +,&+,/&,901! 4$32#"&54632"32654&#"7>325.??qq\NN\\NN\qºN w/aTJjA?rZbbZ[bb*= P# + + 01! 4$32%!35!??qqlUA?rv]K 1=++ +A]A)9IYiy ]A&6FVfv ]A]A ]A ) 9 I Y i y ]/9;9;/A;;]A;);9;I;Y;i;y;;;;;;; ]5+ )+ +28+201! 4$32#"&5463232654&'>54&#"2#"&546??qq_TT__TT_⾭vijvkKRRKMQQA?rlHQPIIPPI\vSttSvB>=BB=>B &23/4/ܸA]A)9IYiy ]3'и'/-A-&-6-F-V-f-v------- ]A--]+ +  +*0+*# 901! 4$32254&#"326#"&'4632#"&??qq鿹ºO w.aUJk<\NN[[NN\A?rK < O$[bb[[bb $0Ӻ%+%+++A]A)9IYiy ]A++]A+)+9+I+Y+i+y+++++++ ]+ .+ (01! 4$32!5##7##"&5463232654&#"??qq$ŸuF?@EE@?FpA?r*'$ =$>  767654'&'!5%3!!  '&'&54767̆mommom4mommomP\|~{{~||~{{~|96oooo6996oo  oo6}9:݈@>}~Ա~}>@@>}~,,~}> =6P  767654'&'!!567>54&#"5>32  '&'&54767̆mommom4mommom)4 \=)N=kP`aF7I׺\|~{{~||~{{~|96oooo6996oo  oo6_A.Xx;_x55'(IZV@>}~Ա~}>@@>}~,,~}> =B\  767654'&'#"&'532654&+532654&#"5>32  '&'&54767̆mommom4mommomttLUDWx~zB\RGr=\|~{{~||~{{~|96oooo6996oo  oo6yt'(xrjw_Z\bd @>}~Ա~}>@@>}~,,~}> ='A  767654'&'!33##!5  '&'&54767̆mommom4mommomh*˪+\|~{{~||~{{~|96oooo6996oo  oo6 @>}~Ա~}>@@>}~,,~}> =7Q  767654'&'!!>32#"&'532654&#"  '&'&54767̆mommom4mommomz#G#KSLVAC\|~{{~||~{{~|96oooo6996oo  oo6c ۻ)%}|X@>}~Ա~}>@@>}~,,~}> =%>X  767654'&'"32654&.#">32#"32  '&'&54767̆mommom4mommomllm=|< /Vڵ =|^\|~{{~||~{{~|96oooo6996oo  oo6EKۼ>-O@>}~Ա~}>@@>}~,,~}> = :  767654'&'!#!  '&'&54767̆mommom4mommom\N\|~{{~||~{{~|96oooo6996oo  oo6`E#@>}~Ա~}>@@>}~,,~}> =#9E_  767654'&'"2654&%.546  &54632654&#"  '&'&54767̆mommom4mommoms慄htdthutԄ9tihvvhit0\|~{{~||~{{~|96oooo6996oo  oo6,{{|kl{Eggss\hh\]hh@>}~Ա~}>@@>}~,,~}> =2>X  767654'&'53267#"&54632#"&2654&#"  '&'&54767̆mommom4mommom=|< .Vڴ=}mmlJ\|~{{~||~{{~|96oooo6996oo  oo6DJټ@>}~Ա~}>@@>}~,,~}> =+8Ca  76767654'&'&'"32654'.  735733!  '&'&'&5476767̆mo5885om4mo5885omT,+VUVV++2QPPQΠP3p\|~-,g%&݈@>}~~}>@@>}~~}> = $!5!#%  '&'&54767{\|~{{~||~{{~|#:9q @>}~Ա~}>@@>}~,,~}> =6>7>54&#">32!5  '&'&54767I7ݺFa`Lk=N)\\|~{{~||~{{~| ZI('55x_;xX._@>}~Ա~}>@@>}~,,~}> =(B>54&#">32+32#"&'32654&  '&'&54767ir׸G\\Bz~xWDUL2\|~{{~||~{{~|db\Z_wjrx('°t=@>}~Ա~}>@@>}~,,~}> = '! !335#$  '&'&54767hno\|~{{~||~{{~|  @>}~Ա~}>@@>}~,,~}> =7>32#"&'32654&#"!5  '&'&54767CAVHSK#G#\|~{{~||~{{~|=|}'' %@>}~Ա~}>@@>}~,,~}> = $>2#"&546.#"32654&#">32  '&'&54767PmmlC|=ϵѴV/ <|=\|~{{~||~{{~|+޸KE@>}~Ա~}>@@>}~,,~}> = !35$  '&'&54767>h\|~{{~||~{{~|@fE@>}~Ա~}>@@>}~,,~}> = +E2"&46' 654&'>54& 74632#"&  '&'&54767Yt愄/tԃuhtt-tihvvhit0\|~{{~||~{{~|{lk|{{Essgg]hh]\hh@>}~Ա~}>@@>}~,,~}> =$>%32#"3267#"&'"&54632  '&'&54767!C}= дѳV. <|=Allm\|~{{~||~{{~|Q/=޸JDg@>}~Ա~}>@@>}~,,~}> =  :2#"&546$  !5##7  '&'&54767eddedddB¡\|~{{~||~{{~|>-/#&%q @>}~Ա~}>@@>}~,,~}>uPj !!5!!Pp#@pppt 7%FN4NGuP85 zD<22pJJt '-ZKFGNuP!!u\lE>~~>uu+"&'.546?!".4>3!'.5467>2p4,,$$,,42.p ,.".2."., puP8!5! %JZPJJuP8!5! %JHJJuP8 #3#3#3!!5 xx<<oJpppJJuP8 55!#3#3#3oPxx<<΄ΊXXXXuP8!!5 %JJJPD! 6>l>>PD ! DR>l>>P  BlvvuPb3!5 5! '&'.u$##+* ZJMM*+##$0U%!JJ!%UuP84676763!5 5! u$##+* ZJMM*+##$0U%!JJ!%U0!! ^r{VXeoouP855!Dq΄Ξ0uj%5!!53  !<9h9>uj%5!!53  !<9h9>+Z !73#57!!+ Id&+ъ2&+Z 5!'53#'!!!+dI|&22 !'!'!53 !Odcndh 2 3#5!7!!! ndnd;ch dd !53#'5!'! !]n2n22r-hJdc;dJdd 7!573#5!! !2+2n2nr-hLJd;cdJ<6767632"'&'&'! <'CZmo~yti^Z\X^Vqoti^?)X6nGCZ.//+]Y݀z_X0//+]>Iʞ BP "&*.37#37#37#37#5!!!!3'#3'#3'#3'#<<< 7&#"7'7 !%*BF8WU{FC*9oX:WubP 55!5!!'!XXddPRt '327'' !!iFB*8X:*CF9XUpt>*%&#">7'&'&">327&5467>7tBEH#&NKX$W/,0$" D5Hp*G6$"!0,0Y"W!F&'&#GGCuaP'467#"!4676?'&'.5!3!.5P5#$%"//"%X$# 5eeJ(0Y! "X0(Jet*.'.54?'#"&'2767.'32t)H5 X"$ #0,0X"KN&#EHEBCGG&'&KW"Y0,0$"E6GsPX'<6%"'&'.54676$4676762"'&'&&'.54676762$/+z >_ $#R#af#R#)>xbQu 88RK68# 88  vc<*676767632#"'&'&'&%.5467.546A ''+/54<3o8n23'9%%%%bb%%%&:?$ fLLf#&#/:&'X23X'rr'X32XV2c"'&'.54?654&'&'&#!"#!".4?64/&4676763!23!2767>54/&546767622 Z ;:td Z   c   uu  c  2c"'&'.54?654&'&'&+"#!".4?64'&4676763!2;2767>54/&546767622pW\xj IJ \W   8  uP^'#76767&'&/3#>7!5!!5!.'PSJl..&GG&GlHSi7*nK Kn**7OUnm'66'1U=Hd)dH=n&*'$&'&#"'67667 h7Hm^:-3 RE SRQO1̡LHO&57$'&54&#""OER 3-:^mH7hH܏1OQ S #u ! ! j.u-10 3%!#3!Zddd/ #3!53#5ddZd{3 #pph # 3hp&T&T[[ '#'#'##'x\xxjjxx\x,x\ehhP8\xYY73373737+.x\xxjjxx\x.x\8Phhe\x,OlD=072767>54'&'&'&"7#7676767632#"'&ew@RNJV !'7$"!3!&'&'&'!#!2767676wx !1cbbc1! "1cbbc1" `x]\LM&  &ML\;RR &ML\]]\LM&ZwxZQvcbddbcvQZ[RwcbddbcwR[xV''LM\7=e=7\ML'e;6\ML''''LM\6d 8   2@ @@ 00 ]1@   990@   <<@ <<KSX << Y5!!dx yxUZxxu 8   2@ OO __ ]1@  990@   <<@ <<KSX << Y'7!5!'7 wxy xZwxxd 8ڶ 22@ PP_ _O O]1@    9220@   <<@ <<@ <<@ <<KSX <<<< Y5!'7'7!dxxwxxUZxxwZwxxd 8!!5!! s]xwx]ix]xZx]xiu 87'!5!'7'7!5 ii]xwx]iix]xwZwx]xd 8!7'!!5!'7'XiiiI]xwx]h]xwxiii]xZx]]xwZwxd 8 !5!3# Y#xwxݪ-xZxYu 8 #3!'7'7xwx-\xwZwxd 8 !5!53#5! Y]xwx]Q7ii]xZx]Eiiu 8 !'7'7!#3!7'Q]xwx]iic]xwZwx]\iiu 8%77777773'7'7#'''''''uFFxwxcnFFFxwZwxnF,X@,,X ,,X@',,,X,,X@',,,X ',,,X@',',,@,@',,@',,@',',,@',,@',',,@',',,@',',', ,@',, ',,@',',, ',,@',',, ',',,@',',',@',@',',@',',@',',',@',',@',',',@',',',@',',',',@',, ',,@',',,',,@',',, ',',,@',',',@',@',',@',',@',',',@',',@',',',@',',',@',',',' ',@',', ',',@',',', ',',@',',', ',',',@',',','@'',@','',@','',@',','',@','',@',','',@',','',@',',','',pX,p,pX@',,p,pX ',,p,pX@',',,p,pX',,p,pX@',',,p,pX ',',,p,pX@',',',,p,p@',p,p@',',p,p@',',p,p@',',',p,p@',',p,p@',',',p,p@',',',p,p@',',',',p,p ',p,p@',',p,p ',',p,p@',',',p,p ',',p,p@',',',p,p ',',',p,p@',',',',p,p@'',p,p@','',p,p@','',p,p@',','',p,p@','',p,p@',','',p,p@',','',p,p@',',','',p,p',p,p@',',p,p ',',p,p@',',',p,p',',p,p@',',',p,p ',',',p,p@',',',',p,p@'',p,p@','',p,p@','',p,p@',','',p,p@','',p,p@',','',p,p@',','',p,p@',',','',p,p '',p,p@','',p,p ','',p,p@',','',p,p ','',p,p@',','',p,p ',','',p,p@',',','',p,p@''',p,p@',''',p,p@',''',p,p@',',''',p,p@',''',p,p@',',''',p,p@',',''',p,p@',',',''',ppp,p@',p,p ',p,p@',',p,p',p,p@',',p,p ',',p,p@',',',pp@'p,p@','p,p@','p,p@',','p,p@','p,p@',','p,p@',','p,p@',',','pp 'p,p@','p,p ','p,p@',','p,p ','p,p@',','p,p ',','p,p@',',','pp@''p,p@',''p,p@',''p,p@',',''p,p@',''p,p@',',''p,p@',',''p,p@',',',''pp'p,p@','p,p ','p,p@',','p,p','p,p@',','p,p ',','p,p@',',','pp@''p,p@',''p,p@',''p,p@',',''p,p@',''p,p@',',''p,p@',',''p,p@',',',''pp ''p,p@',''p,p ',''p,p@',',''p,p ',''p,p@',',''p,p ',',''p,p@',',',''pp@'''p,p@','''p,p@','''p,p@',','''p,p@','''p,p@',','''p,p@',','''p,p@',',','''p,p',pp,p@',',pp,p ',',pp,p@',',',pp,p',',pp,p@',',',pp,p ',',',pp,p@',',',',pp,p@'',pp,p@','',pp,p@','',pp,p@',','',pp,p@','',pp,p@',','',pp,p@',','',pp,p@',',','',pp,p '',pp,p@','',pp,p ','',pp,p@',','',pp,p ','',pp,p@',','',pp,p ',','',pp,p@',',','',pp,p@''',pp,p@',''',pp,p@',''',pp,p@',',''',pp,p@',''',pp,p@',',''',pp,p@',',''',pp,p@',',',''',pp,p'',pp,p@','',pp,p ','',pp,p@',','',pp,p','',pp,p@',','',pp,p ',','',pp,p@',',','',pp,p@''',pp,p@',''',pp,p@',''',pp,p@',',''',pp,p@',''',pp,p@',',''',pp,p@',',''',pp,p@',',',''',pp,p ''',pp,p@',''',pp,p ',''',pp,p@',',''',pp,p ',''',pp,p@',',''',pp,p ',',''',pp,p@',',',''',pp,p@'''',pp,p@','''',pp,p@','''',pp,p@',','''',pp,p@','''',pp,p@',','''',pp,p@',','''',pp,p@',',','''',ppd?8 !5!53#5!s]xwx]ii]xZx]EiiuP8 !'7'7!#3!7']xwx]siic]xwZwx]\ii 3'#'##-Z-x\xxx\.x\n #\733737#x\xxx\xZ'x\# n\xO'=%"'&'&'&767670327676764'&'&'&pk_V1..1Vbrx`Xk_V1..1V_kpIxXE?#!!';B]YQS@?#!!';BQ9.-\ZnllnZ_.x$-\ZnllnZ\-.)xF!F@RNJV>lmGСBk>DdW0Xdtsݓ.W@#.  -&.%)/K TX)8Y299ܴ]<<999991@ &$-/22907&54&'>5!2;#"#!532654&+CI02Kl>>l5UU5D>kB0GmstݔdXЎW2  5 1Vd22h' %#3 5' :' 73 ٪L^8bb:'B 7''ٛ>PNq'B '''ٛ>PNq^D'B ''>PN'B%  '''tNP'B5  5''bNP#u  u-3!3!!#!#!5 L3ͨ--Ӫ--333333#######5Ϩ---Ӫ---:k7!!  767654'&'$  $'&'&547676h08rtrrtr@rtrrtr VGFFGrGFFG;:rs죟sr:;;:rssr:Ŭɪ:k3?  767654'&'$  $'&'&547676!!#!5!rtrrtr@rtrrtr VGFFGrGFFGssB;:rs죟sr:;;:rssr:ŬɪKss:k3?  767654'&'$  $'&'&547676   ' rtrrtr@rtrrtr VGFFGrGFFG]x3w32x3B;:rs죟sr:;;:rssr:Ŭɪ3x23w3xuM %' io& i' i% iJuM327!5!>2&#"!!"&' ;E 2&#"!!!!"&' ;E $;E Ϊ@z٨zuM&#"%"&'73275%>2";EC;EJ綠mzzuM*3&#"&'67"&'7327&'&54767>2";EIq(P >6D;E]InoSu=,HK%)AH!+p$ z1IosV2";E+@/V]H6H\nUm;D [>wfP3,,I6x/Ur]HH]lVzM>wrN3 F4uM!3#!!>2&#"!!"&'732w~9F 9 }9Gr0}}uM+3#>2&#""&'73273264&c)~9GcBnnVs~9F (6o~ç|K|oU}uMp.3#327264&#">2&#"632#"'"&'z;E-8pƖqS;E;DܛWI3>6я]z!zuM 13#64&"327&'&767>2&#""&'˔֐;E]InoSu;EcBnnVszяϐ-1Io7sV2&#"!!"&'73273!#3;~9G9G ūI}ޭ{ tMm-&#"!2#567&'!"&'7327!5!>2";Ed_``!;D ܻ`;`*I6ƌebIz`:H:`*F4uM#&#"7'"&'7327'7'7>2";Exx;EzxXyxzyxإzuM*327#467>2&#"#4'"&' ;E-A 4yy;E Z>Vy|-2PIϼ+zEa82JzuM'&#"63"&'7327&'&53>2";E*y;E\?Vy~+&8'zLFaI1zuM>32&#"#"&'7327!5KL~9GALK~9G⧅}}gkb>32&#"#"&'73275!KL~9GALK~9G⧅}}Р? 5 5FѶeѦ 55FѶ///m' //& 0'' /'' 0' // ' 0N:A%#"'&'&'&#"5>32326#"'&'&'&#"5>32326 5jbn ^Xbh`n ^Vhjbn ^Xbh`n ^Vg@PNE;=LTNE;=KPD:32326#"'&'&'&#"5>3232655jbn ^Xbh`n ^Vhjbn ^Xbh`n ^VePNE;=LTNE;=KPD:327&#"56767326 5jbDS4WVhjbm\Y@/Xbh`ES3VXbhZmMp[Y@1Vg@PD4KUNE;@LTNE4LRN"*,@J^po_N5<#"'3267#"/'7&#"5>327&#"5>32732655jbDS4WVhjbm\Y@/Xbh`ES3VXbh`n[Y@1VePD4KUNE;@LTNE4LRND:@J^T 5!5!-5 !5!uu/0\^ҲЪ~T -55!55!usҲЪ᪪/0N%#"/&'&#"5>32326!! 5jan^Xbh`n^Vf@PD:32326!!55jan^Xbh`n^VfPD:323265-5ian^Xbian^VgsuOE;=LSNE; =KJ/0:ҲЪ !(#"/&'&#"5>32326-5 5ian^Xbian^VeuOE;=LSNE; =KJҲЪ/0, -55!55!us%ҲЪ᪪(/0٪, 5!5!-5 !5!uu%/0\~ҲЪ^6 5 5 -55uu/0V/ҲЪа/6 -555 5uuҲЪ۰/'/0K/& 55p/ѦѶ& 5 5p/om//&' /G&' H{ 5!5 5!@Ѫop9{ !5! 5 !5!@Ѫ555@pNpop 55 5@p pU(".#"#"&'5327>76325hV^ n`hbX^ nbj@TL>7632 5hV^ n`hbX^ nbj?TL>֪VJ<:DNTL<:DNDop$+5!5!.#"#"&'53276767632 5hV^ n`hbX^ nbj@>֪VJ<:DNTL<:DNDf $!!!5!676762!!&'&'&!!C.8d 6WYYV7 e8-;Z{+DD\93[2332[0<[EC,W7!!%5$$}y]]x|W%!5505%$}$y|]]W !!'7!5!%5$ZZ N$}qPP]]x|W !!'7!5!55%$ZZ N}$qPP|]] K75!5!%5$!:[]3֪k-QtXVv K75!5!55$%$][:!3֪kVXQ-qK!5!7!5!7!!!!'%5$&`ȉ)P"_=6!:[]ss1st-QtXVvqK!5!7!5!7!!!!'55$%$&`ȉ)P"_=6][:!ss1stVXQ-y:E#"'&'&'&#"5>76326#"'&'&'&#"5>32>%5$ian ^Xbib` ^Vgian ^Xbian g!:[](NE;=LTN9 A=KOE;=LSNE;C E-QtXVvy:E#"'&'&'&#"5>76326#"'&'&'&#"5>32>55$%$ian ^Xbib` ^Vgian ^Xbian e][:!(NE;=LTN9 A=KOE;=LSNE;C EVXQ-6A#"'3267#"/'7&#"5>327&#"56767326%5$jbDS4WVhjbm\Y@/Xbh`ES3VXbhZmMp[Y@1Vg!:[]$PD4KUNE;@LTNE4LRN"*,@J-QtXVv6A#"'3267#"/'7&#"5>327&#"5676732655$%$jbDS4WVhjbm\Y@/Xbh`ES3VXbhZmMp[Y@1Ve][:!$PD4KUNE;@LTNE4LRN"*,@JVXQ-7 5@pppo%5555òi ' '!]#\e#N\#]x#L   !77 ! \ݿ##N]##4 !7 7:\#]x#L]ݿ#\eL#1 4  %''' !]ݿ#\eL#1\ݿ#]j#7P~ % ! !!5 5!3!   7?~% !!3 *^V !!^*  ^V!!!^ ' '!##L  !  ##4%7 7#L4L#1 4  ! L#1#7P~ % ! !3!߆^V ! !! !ECuR #7!5!7Zxx/{xx:xu-R '!5!'xx vx:xH% 7!!7vx{/xxxƪxvH-% 3'!!'Zxx vxx$!%!!W7 r$!!!W7 $!!,7r32 &}f[_ &}f[, %$R/ %$R !2+##5332654&+!ʿ[qrqqϐђАfT$@  $ !? %29999991@&  B  $/999990KSX9Y"@&]@Bz%%%&'&&& &66FFhuuw]]#.+;#"&! 32654&#A{>ٿJxn?M~hb–m؍OH#(07#5#"''7&546;7&'&#"5>327354326=-?\g`n;) T`TeZx_958>cc3Vfa<}NV{ E..''rOs+Ax.ٴ) 3{ B333#;#"'&'##53w1ѪKsQ fև3͏oNP r>6!#4&#"#3676323#d||BYZucce22wxLj%3###3!E3A1wH33 3###%̟8ǹiEL#\ !!#!5!sP=g՚oAX` !!#!5!qjLl}e`R%sw-@ 221/053#5# !232#"MT+焀\\xEEf! !+53265##-}-MDnh %!#3!3҈R={0#3 632#54&"$\^TރQr)m`Tῆrr:T*D  # #3 3 67632#54&#"f:9:54'&'&s~&&~~ڢ~.]=@N\N\.]=zz❞zz}qa !SM!R}|pas?#-n@.  '&$ /$ .9999991@ .'& ) )./9999999046$327#"''7&7&#"4'32>s~&Ġn~ڢĠnՑꏧw֜\w֜\zvijޝzwkj!^`|g^` .@   <<<2221/03#3#3#3#):@  1/<0@22 # #3.]F; -@    1@  /<<03!#!#!"9q><@  9/1 ]@ /<220KBPX@     @     @ Y333 # # \Xds3{ 1@   <2<2??]1/<2<20%3#3#3#3#\ 7@  91/0@ BKSXY" !!!!&TdD՚ohh $@    1/<<2203#3#3#hhh7o !@  /221/220!!!!5!!o&.-ժo1/,@! ',01*$ 022122<20!"'53 !"563 676!2&# !27# '&%4rmyymrO4%%4Trmyymr4*B6!*:'(8) 6AB6 )*!6oP@   <<222<<<<21@   /<2<<22<<2203!3!!!!#!#!5!!5!!n""xxyyrr3@21/03!!!ժ,o7@   /<<2<<21@ /<2<203!!!!#!5!!5!CCPPxyr7@ KTX@8Y221/0@ 0 @ P ` ]73#3#>@ 10@ BKSXY"47!5!32654'3! $x˿ßwNetwc #/9@1E- !'E0<2<21@ 0*$002654&#""$54$322654&#""$54$32,,,,PIIPPIIPPIIPPIIPs'(@ ) (1@ #(046$32#"$&732>54.#"s~&&~~ڢ~\ww֜\\ww֜\zz❞zz}``}|``s,P@  ! #.# -9991@ ! ((-99046$32'#"$&73277654.#"s~&&~l~\wj\ww֜\zz➞ikwz|`^jI|``; -@   1@   /2203!3!#,dq9d (@   <<<<1/03#3#3#QIh ?@     <2<2??? ]1/<2<20#53#533#3#3#h+Is'+>@- )(( ,9//)]1@+(#,046$32#"$&732>54.#"3#s~&&~~ڢ~\ww֜\\ww֜\zz❞zz}``}|``s>,P@  %$#& !.! -9991@ #&$%((-99046$327#"$&732>54''&#"s~&Ġn~ڢ~\ww֜\pw֜\zvikzz|``|?l^`sr%1=G@8&,20><2<21@/; 5 )##>9//0! #"&547 !&54632! 32654&#"4&#"326sS_  _mz,,,,,,,,gs'O;H66H;O'sz<11<;22<11<;//d #@   <<1/<203!!#!5!IIjk=;;sr3?Kf@F4%+6:0L2<2<29/<<1@=(I C (7##11L9///<20! #"&547"333###3&54632! 32654&#"4&#"326sS_ ̻A;z,,,,,,,,gs'O;H6ߊ6H;OO4z<11<;22<11<;//;@   2<21/220]!!!33##!!!>ժFh);@ 1/<0)3!3;+y=@ B <1/20KSX@Y!# 5!!!8ks#O@%$!  /<<22<2<21@  /<<<2<<<2032653#2#4&##"#3"3ʊyʊy+VVF%F.@ KTX@8Y1/0!##u-s+f@- ,&'  #+ /<<<222<2<21@+*   #*'"/<<<2<<<29/<205!5"3332653#!!2#4&##"#35ʊAyʊy>FV>=VF=6-@ 1/20!3!3M-$36767#"&546?>7>5#53!Ya^gHZX/'-93B$BS #C98ŸLVV/5<4,5^1Y7:X!##:o#5!#&X3!3hXo!533oXKK'464';6;'769'96:'469&496'96;&9;6'468&456&;46';64&466'466&;:6&7;6'765'86:'56;&8;6'766&:66&:;6'76;'764&:46&:76&586&996&666&5:6&786':64&746';66&;66&866&656&9:6'967&:56&876&546&486&5;6&;86'965&986&566&686&776&::6&8:6&756&766&6:6&886&556&896&956&856&7:6&966'966rid{jXn`+v)4>@01, *$6E591@ $ *052220#"'&'&#"#"'&547673!27676323 4'&'3ft[na`zxz{n[tfCGo~[U]LKfdKJ]U[~oFCD@@DDDk63366336Fk!<@!  # E"91@  ! "2220!"$"# 33276762324rTRrƒ>IxddyI?ВP8[ 77 [8G<r&,>{&s   !3#!! ! H0x:;hLH+fabgp{ "326&33###" rhո  983#!#!#3! !9҈_:o%+kj{"-#5#"&547!#3!63!54&#"5>32"326=?/j`TeZ߬ofasP`A"..''f{bsٴ)e767!!3##!#!!&aO)p(?x4&A D+k`76765!!3##!#!![(bR-f}v(UԓR:d6T356765!!#!T:WO)fb0d+L`356765!!+!L3DS{X^}з3oP! !!+##-}) `! !!### >?h˸ʹ`3'Ps'y2qu{&Ry.se3#%3# '&76   1L  F<HqC{3#%3#"32654&' ! hJ IHn98s j&m'yryq{'yo'y.n:W '/7?GO%3#%3#3#%3#3#%3#"264"264$"264"264$"264"264$"2642+ '&' &547"#"&546;&546 676 3#J"{iihiihiihiihiihiihiihG4UU32UU4IF]97R̬\dfʬ\ʫZee̫ZҜf!!!2+5327654&#!#!qmL>87||ժFwrKK"9+32+532765||BuƣF1n!&edH08L*!!!2!"'&'5327654'&+5!#!^eicUQsj~cd\]ժ˚8+lhzy$1KKIJJ+7L402!"'&'5327654'&+5!;#"&5#533!AicUQ^cdjTmcd\[jKsբe8+lh%12KKKJN`>¨{Rg|1&'&547632&'&#";#"32767#"$546p<HmmFEMUUU8%~` !!!!#+`Ӕo{V 3 3#!+!# ! !J9҈_҈_%s%>+{'{ 5@M"326=%#5#"'#5#"&5463!54&#"5>3205>32"326=63!54&#"߬o?nQ?`TeZxeZ߬o5y`[A3f{bsٴ)Lfa' fa..''~D''f{bsٴ)hn< - 3676! ! '&'!# !  J-p;:xżP.g%H}[[Xr%H{{{"-82 '&'#"&5463!54&#"5>3 6"326="32654&y7!``TeZ*qO߬o{ǝ>REa..''f{bsٴ)nq !3!2653! '!#%{J®sv%_r\4h{{(3%#"&5463!54&#"5>3232653#5# "326=H`TeZ||Cu߬oߍo..''{fcPf{bsٴ) !!#3 3%Lj_:+{N{ ("326=5#"&5463!54&#"5>323߬o?`TeZ^\3f{bsٴ)ͪfa..''5 )!#!#333#%~gY_:gci5R{N{"-0!5#"&5463!54&#"5>32333#"326=!#u?`TeZxgƚÛ߬oGfa..''~mc3f{bsٴ)V !+53276?!#3 3%lKMJ|ثL*+2_:q?=$%2@{VN{'2!5#"&5463!54&#"5>323+5326?"326=u?`TeZ^N|lLT3߬ofa..''wj8zHB3f{bsٴ)s'{f 37!!_(^M*c37#xIS 33#!!#53ʨ_YQx 33###53YR j% 3#! '&#5376 !&'! 76;:~ ż ~HjiF wvҵCҤֆ {'23##"'&'#53676"!&'&!3276o ~~ oV?s?VLVVM{~͐~sUUu%gstgs j$. 676! ! '&'!     ':/##.;:xŽ.$#.yHH5==5[[4=<4HHHq{ 1"32654&!"32654&'267632#"'&'#",nn霜ǝ98 !#!5!)+Vy{3#\{V4&#"#367632#PQfeCBVd{#4&#"#3>32d||Bu\ ed#Ib !5!5!5!b>>I5:@ K TX8Y991@ _]0 P]3#5qeo7@ KTKT[X8Y10@ @P`p]#o+w #!5!!5Pp+ɪF #";##"$54$3@/+X 3333! +m3#mD U%3 3# # #3>:9w+: #'+/37ڷ/$0(7,48<<<<<#+ 3'<<<<< <<<<< <<<<<9̰XKRX8K bf TX30<32#4&#"#9`M1Cuȸ||MM 7BuƸ||e,'"xMfca?'Gzed\V5<!"'&76763!!32653#5#"&5#3!#"&5332765!"3ە^SWsv||CusCuȸ||WVۃ^SBWLa{fcBVfcf__{{V H!&#5#"&5332654/&763!6763232653#5#"'&=4&#"#9`M1Cuȸ||MM 7c%Zk>8nClbd||xe,'"xMfca?'Gz2XO{fcx{䟞[t`&-V 332673 &Vv aWV` v ޞKKJL[`&ASN~`6@  F991B /2<0KSXY%2767653)5!3$Wq2!dj±/8s4tVg` ##4673>=3|u˷d7<T "yX`#!5!e/я`!#3#4&#!5!2snJvy–X`35!26&#!5! #X-뒦yX4=!3!#T\[CLzl` 3!2%!4&#!Wn`–X` !#4&#!5!2nKy–X`!#4&#!+5265#5!2nã rLy–a;- 1 <05!3!----Ӫ&=&= && `&$u`&$`&$\X`&%BCZ`&&Xh`&'d`&(Q`')ZX`&*`&,&Q`&-ZXV`&.X`&/:X&0X`&2%X`&4X(`&5Vd`&7Id`&8{C!`&:nV`&;X`&<I`&=`&><t&)X&%X&/d&8X3>=3##67'#3x]GgG.i=dB`ԛ":T)C '9 '9 X& ~X' ' ' X&c ~X&c ' ' X&c ~X&c'9'9&L~&L'&&cL~&cL'I&I0a&I+p~a&I+p'x~\F&x?&,~ x&>'xx\F&x?&,x x&> (f'X >f'}D>\/&E 8>>/&F 8 (f'~X >f'~&D8\/&E~88>/&F~8 (f'X >f'2D>\/&E8>>/&F8 (f'X >f'2D>\/&E8>>/&F8 ' \ ~&P /&\I> ~/&PI>)7%#"'$47332767654'&54767;#"'&/cͷ?Ahž#62 #dGG&+@XA:g!axLn 6r'|>X %+53276=3+HZ#c,1VV,1jٻ~X%+53276=3;#"+MZ#c,11,c7nVV,1jj1,JoX&~c~X&~cpn"56$3=gi~wun52&$=Ԛuw~ig* '/&'&#"#67632O,$e5Fqp[?8WH7  $0GJI  '327673#"'&'O,$a9Gqp[?8W7  $,KJI Pq,l&fq,Pr,i,k ;#"'&=3!1,cK\WL71,\W+Ps,Pt,l't,fPu,l'u,fPv,l'v,fdw,l'w,f<x,l&fx,UL'yR&0yl9'zRl9&0z @'z>n 6&z>l '{Rl &0{'z>o&zXD&z+p~&z+pyR 3;#"'&1,cKPWskj1,\e'}9&}9X&}~X&}'~m^&~^ '~ &~&~cR~&~cR'&&cR~&cR (f'}X >f&D}\/&E} >/&F} (fX >f0%3#"'&'&'!27# '&5767"#"5$3 "(1{R=IrbJIԖ^` __&m3HZdP^vc–e4)?6 [_w\/&'&'&5672+5327676SSgURHKLXJKݣdht^#4b4bBPH:jV>/);#"'&'+53276767&'&'&5672~AI2hrBV~(;E)Kݣdht^eSgURHK 4b)N"w6a.%PH:jV# ('}?X >&D}?\L&E} >L&F} }RZ}GR &'3;#"'#"'532767654"9aRQS,cKa].-fgsT!"#?zNuIS,!&* 1p*D}'}EZ}G&L}E b&\ ~&3;#"'!5 767654x I*eK2D0# &pgM,>ꅗ:H~ b'}q \ ~&P}q ^ GF%7653323;#"'#"'&''&'#&'$473327676'&/3N0%@nS,cKvDm% I01_@8'TPxmil_Qb_y^@@$:|_2&aS,`[ F{GHܳ&%0l}=J<~ 1%+53276=3327653763#"'&'#"'&+8LcKc,P,+hm,%@n\Kf%#?70`DAbH<;!.,Pd@dczg2&q\ =!1(78#"'&'#"'&'+53276=3327653763;#"'%#?70`DAbH<)+8LcKc,P,+hm,%@nS,cKvD =!1(I;!.,Pd@dczg2&aS,`Z ' ^ G&T  &U 7&V ` <I)"'&5#&'$47332767654'367676;#"/"3276'&'&u&4-JXPxmil_Qf[+!' (s{lHX}a*=RKgL~큻%MGHܳ&%Dl7(2l^F"%GMF ,\v7Ql?[F2 .327654'&#"!"'&'+53276=36767632Ш큺%0LJNA'fKc,P-e_KUskl?[F*#=,PdrNP2T?!'Dmx+8)"'&'+53276=36767632;#"/327654'&#"JNA'fKc,P-e_KUqm*=RKg਑큺%0L*#=,PdrNP2T?!'DKH ,\vl?[F '} ` &\} 2&]} &^} b))5!3%632;#"/%3276'&'&#"@o\Dui*=RKg큻%0Pz\?c!'EMF ,\v?]DQx %3276'&'&#")5!3%6329큻%0Pzu \Duiʸ?]DQx\?c!'Emx))5!3%632;#"/%3276'&'&#"8 \Dui*=RKg큻%0Pz\?c!'EMF ,\v?]DQx'}Rb&d}R&e}R&f}Ru *du %+! '&7.54762;# '!2764"[b=D}a_[9^DU)k_1ocz2t*n@00@p[C+ @Mkl=v8`3$*727&'&5763"327%+5SF7J \X];d}M4F!Ť$/%+532767&'&5476762;#""654'v`kB;(aD hYYh MXD=p`vʨ4/gg/($'UZ'-)74--47)-'bM,(U __ u F'}wdu L&l}F&m}wL&n}'}~\L&}?&}~ ~&}kH'~R~k &~k?&~,~ ~&~8i!D#"'5327654'&'&7676'&'$54733276763;#"'J&P DfXRNB8D-<9_h$$EB|=Q#!v+6(  %{{qe))5!27654'&54767;#"'&/66-62 hGG&+@XA:g!a_h$$EB|=Q#!v+6(  %?+)x.j#$%653;#"'#"'$&733276N1,cKpNyUcE@A(IPmI~jkj1,3.(B"[\ss~B"5 +5327653WPKc,1se\,1j%+5327653;#"SMKc,11,cKVV,1jkj1,^kgt5%327654'&'&#"#"'&#4763&547632;#"bzL,5;(.;D K2KxAZM\HT((&iK*9:X DD(PNNOmf7*(?$GC,,m$%#"'+5326767632%327654'&#"dan@ht4W^Q[a>/4(*X.[4fb0G1P8TYNE5EK&)/4:''5)24fb0$#1P8S1>,E5EX !a%H'}?  +&}?&'}R~'}Rm^ $&'&'&'3;#"'&'#"'&5476 xRot$8pKZI-&8:m*12e CY>)2'+eO,3;I0D-=67654'&#"27&'&5476&'5#"'+5327654'&$"':A4N--0M,Q@(Jxb 41}! @H=.%4-+#%v iEN@TSZ 'D49g=ql)D%'i.C!v-3j  ;AWE L9P)8K6(S/VL_+Y9K1\SJo765&'&'&54767632;#"'&#"#"'$4733276L[/,4PT*uW ##rpl$-AIqYhu?AB[M!3!+ (;=A<^ĸ#0{bV` )gZZrN J'~ o '~ X&~c~X&~c.&y,.&y,&z,&z, &{ &{T#"'53273676537M͞jK`Uq%BUG FA+7T#"'5327367653;#"'&4;IʡjK`Uq%"@Pif<[A FA+7DT)TL* 35'5467676?67654&#">32,X\"$߸g^aOl39ZZ8L{4<+VZ@EL89CFnY1^5YVe !5!5!)5!S2SR7'XF: 'b:= ']C; '<b= ']bH'&'H'''H' ''H'&'H'''H''' H&&'H&&'H' ''H''&H'''H' ''H&''H&''H' ''H&''H&&'H&'' H' '&H&'' H' ' 'H''& H' &'H' ' 'H' '&H' '&H' &' H'''H'&'H''' H'''H'&'H'' 'H''&H''&H'&' H'&'H'&'H''' H'''H'''H''' H'&'H''&H'' 'H'&' H'' 'H'''  H'' &H''& H'''  H'&& H'&& H'' & H'&'H'''H'' 'H'&'H'''H''' H'&&H'&&H'' 'H'''H'''H'' 'H'&'H'&'H'' 'H'&'H'&&H'&' H'' 'H'&' H'' ' H''& H'' &H'' ' H'' &H'' &H'' &  #3 !!#!]W:\w98qq+_N  %*!2#!327&#363&#!3654/654'f;33;$ $#>]a{w DD663! )327&#!36'hPcp~qAA k{qS3%!!!!!!-x9vq dddsd !!!!!#3#oQn.ddqs&&$#"32767!5!# !2deVRuu^oRaG@;@&5dSUmnHFcIf3%!#3!53#.nXddddq dddd fY6765%!#!53265-V?O?nqd J^ dd0 !3 #!3pdw@1q 2 !!!3ddo o !#!! !3!3_Gbn}qR+q  r'( ! '&76 7& 676'&&:żGlllli$ #ab2222jT%%5$c$-6&/.4%&  %5 64&/.$ Pdo&nŢmngzoʷ-[ʚ)'NXd''pui$2Xf| / 3%!!!!rpq ddq $!&%! 65! X!!Y fqba@`|gd5\*$ 3%! 3!dq d+D 3!3%! ! 3! !D5D:9:9d|q  d+l 3%! 3 ! #(\~vbL:H|dq d22{ 3!! #3ndp29V{{",34&'3!5#"&546;54&#"5>3 5#">76/=Kd?Vu`Tw86/^b;:gCzӆ]YfaH..t''UNHGgwt-!>32#"&'!4'&'676763&#"327N:||:^,<<,9RKM_]daadt= z =OsKTdihtJq{#%#"!2&'&#"3276%M]-ULEmGJXHCQRHV,${z$d$$>:##dWS%&-!!5#"323327654'&'&#"N:||v9,<<,^(]_MK^daDDaZKsO=  =Td6Jthio}{!327# 32!.#"}K_mk)#i̩J@b]u-)8 CqzӾ/ 3476%#"!!!#5354763g.9:9|WX -8J_D8d97ddddTVqV{#.=65326=#"325!!"&32767654'&#"jlQR:||:Nry^,<<,9/KM_]=ʌo,*qdaDDad-w=  =OsKihtJH "34'&3'!>32!4&#"! GS5‡OIƁkk h@[:Lded\ПU5 33#!!JKOhV #676#532765!3#%G(=1l$%OQRaеT0Hd01``2 !3 #!3OHіmdi#L&5#"'&5!3J=(G%RQOLiH0T0Z``~J^d{"&1<!>32>32!4&#"!4&#"!3%34'&%34'&OIƁԝTށkkkkd[ GS5 GS5`edJv\П\ПUh h@[: h@[:H{ "34'&%3'!>32!4&#"! GS5‡OIƁkk h@[:hded\ПUqu{ #2#"27&"676'&s3x33x3d4'pp'3(pp({98  kp-$-R-ۀ-qV{-%!!>32#"&4'&'&'676#&#"32N:||9,<<,^؆]_MKdaaKsO= z =oHJthiqV{-%#"325!!3#32767654'&#":||:N<^,<<,9(KM_]daDDad=  =OsK2HHihtJ{3'!>32.#"!N:4I,hdfc˾zo{E67654'&/&'&5432654&/.54632.#"#"&'i'K&'q4=B%%U+.39GSOjqL4vfLJ\_opPx3Zl=vf03"3;@{R?Bsl37'*7CoT78^UNO,, z1$YXDL#/%%7%&7#!!;!"&5#53*\{KsբjU|7N(dUNdudTD` "%&'&5##!5#"&5!3265! GS5CIƁTkkTS hl[:hded0=` 3%! 3!YT^^d\hdTV`3!3%!!3! !bTNdhhdjjjL` 3%! 3 ! #U|p|[hd-s=V`7%! 3+53267>^]_lP|XQ+ۙdi8{dCYXb` 3%!!!5!\vwhddhddh$%s'&'(#)s*;+f-j.j/031s23s4T567)8h9D:=;;<\={-{DEq{FqZGq{H/IqVZ{JdKyLVyMN9{Pd{Qqu{RV{SqVZ{TJ{Uo{V7WX{X=`YV5`Z;y`[=V`\X`]   6/&"27 d3{44{3s s#Տ0,-k37!!5!5%6bJJgq ddd HdH(7!676'&'$32!!7676&#")`"LlDbZE0Q](=ymd͕@9\9pd9hbiddAbs$*0"'5327&+5327&#"56325654&'>54+!ĪeO6?;2:L uWEdJj D d <h@Ѳ|!ŐUl$yXZ#3 !!3#!!5Qpq3d\#66'&#"!! !"'532gd1jKEн܁\`I Kd# F32v cSRav 6978w{z9 j@ VV120K TX@878YKTX@878YKTKT[X@878Y332673#"&v cSRav 6978w{zfGd10KTKT[X@878YKTX@878Y3#@1<203#3#䙋N#!#ęę53#73#'3# 3#3#'3#}}d 3#3#'3#}}d3#3#d 3#3#3#3#dd&;#"'&'#"'$&733$767654'3F??7KX~X\,>%!$'$&73!2%7&'&547676323!!"'654'&'&#"xhn}@AQ+"R:4RQP ioh4"(=)1$+<'g\^sM6,|y$K2S%jAzG' <8BN?0654'&323276767'&54767632#!V)B,4((7(*HTO<?aNbNLZB`.NJ|m+M;3*)3P& ]027EW4,E$2Hf3Џ,' !5;#"'+5327&'&54767632"67654'&'&f$'و'$A??8 D?$ 9P2*I1C299(M.L,0W 5+5DE2.4! k .@%&'&'&547676323!!#'$'&5473!2766'&'&#"B.y9()Wp8c20-=^E>><l/"'"3 9Ld/  #+m=E2X:zFNV}`kL:DbZzWK# :<,; ? &}R~&}R %4'&"2>"'&4762<R8R8z?@?@@?@(8)*8@@@@@?? '~'&'~cRP~&'~cRP' &cL~&cL >&Dz8\K&EzX>K&FzX >&D?\F&E >F&F  >&D\F&E>F&F >&D'}?>\L&E'8} >>L&F'8} 3_+ 5__bV'J@!B  6991/<2990KSXY"]33+532765#ոRQi&&}``01}` 2@  F <<221/<20@  @ P ` p ]33###53ø`<ĤV.` 54!333##"3276!5R w{i&V`p?`3A0c3'q=rUa4'qr[^3'zPq=cZ'sdrUcZ'udrUaZ'sdqaZ'udqvj 3't\q=cZ'wbrUvj V'r}t\cW'wuz|vj0Z's@dt\c:'vus(Dcm:'uDvuvc u'vutvV Y'yPtpVZ'yPsdVZ'yPudV'yPc['vu{Pj&Z,,!!,,O=32653#"&[hq`=QQ, &&| &3;#"'!5 767654x I*e2D0# &pgM,>ꅗ:H~#'|`'|S'|SF'|8@'|+ '~c~@'|+ '~c ~r'|>P9 9F KSKQZX8Y1/0@  @ P ` p ]3;#"&5Li a^q%qqu {&JOw`73#!!dž$Nd`Vw`#676#732767!5ʆ#5H2K1i0/N)deеT0Hd01``vg{'{&3#3## +@     22221/220!#3!53#^ժ ?!5 ?8'qXw8 U'rXw8'wq8'tXw8 U'uXw8 'w,t$'tz$'uzN@ T1/0333N@T 1/20%3!533yոBy@ T1/0)533ysոBq8@ E EԶ0]991@  /0 6& #" 3 *NYh> éA@E E Զ0]91@    /<20 6& "'!53&54 3 *NNJhh> é!8@ E EԶ0]991@  /0 6& &54 #"'!5 hYNJ>z=x 4@   2291@  /290)33!x³j*]Qix 6@   2291@    /2290%!5!33xtj³瓓]Qi' 4@     2291@    /290#5!33j³]Q=q) #33mCq"q )5333!mm"q)533#mOq $@  1/2<0)3!33OkUq""Oq (@   1 /22<0)533!33OιUΓ""q $@  1/2<0)533!3kιU"Oq $@   <1/2035!!5!3ΓK"Oq $@   1/20#5!!5!3ΓK"q @ 1/0!5!!5kqKq:@!E E ܲ@]ܲ@ ]1@  /<0!&'.4> !2>4."RJr 惃sKR9[ZZ 1ũbbŨ1 p`88`p`88!>@#E E"ܲ@]ܲ@]1@  /2<0%!!5!&'.4> 2>4."RJr 惃sKRQ[ZZ{ 1ũbbŨ1 p`88`p`88O:@!EE ܲ@]ܲ@]1@  /<0#5!&'.4> 2>4."RJr 惃sKRQ[ZZ{ 1ũbbŨ1 p`88`p`88O &@    21 /03"3#!5!>k fO "  21 /03"3#!5!>c f $@   21 /03"3#!5!pk fq7@ E<21@  /<20!!##"&6 !354'&"3.Cf^v ]8mr^<Uf"qɃ]8ƃ;@! E <21@ /2<20%!##"&6 !3!554'&"3.Cf^v7]8mr^K<Uf"Ƀ]8ƃ7@ E<21@  /<20%!##"&6 !!554'&"3.Cf^v]8mr^K<UfɃ]8ƃ ,@   <<1@  /03!!!!!55Փ/ 0@   <<1@   /20#53!!!!!55B/D ,@    <<1@  /0)53!!!!ys55B/= ,@  <<1@  /0!!5!!5!355ߒѓ 0@  <<1@  /20#5!!5!!5!355ՓLѓ ,@    <<1@  /0)5!!5!!5!,55Lѓ *@  <1@   20!!27654'&3!23,R4,,=ٹUiXO]Oz}I_"_Ҥ.@  <1@  /220#533!23!!27654'&ιUiXO,R4,,=B_Ҥ]Oz}I_ *@  <1@   /20!!27654'&533!2#,R4,,= ιUiXXXl]Oz}I_"B_ҭ@@  ܲ_]9@  /999@  10!4'&'5!!5Mc4B_9V@9D@   ܲ_]9@  /2999@  10#5!&'&'&'5!! 5Mc4BX]9V@9$@@   ܲ_]9@  /999@  10#5!&'&'&'5! 5Mc4B X]9Vq=:@   91@ /̲]촍]0!533T9 >@  91@ /2̲]촍]0#5!533hՓL9 :@  91@ /̲]촍]0#5!53hL9+#1@%!$1@  #/2203432>3234&#"!4&#"!}x5%^qZHZlK--Xh|ŕnc%5@'#&1@  $/2220#53432>3234&#"!4&#"!}x5%^qZHZl[K--Xh|ŕnc#1@%!$1@  "/220#53432>324&#"!4&#"!}x5%^ZHZl[K--Xh&|ŕnc= -@   <<1@  /<<0!!5!3!!!KK?1@   <<1@  /2<<0#5!!5!3!!!KK? -@   <<1@  /<<0)5!!5!3!!@KK?=X>@ <<<<1@  /2<<<220%!!5!3!3!!!=KøL??XB@  <<<<1@  /22<<<220#5!!5!3!3!!!%!KøL=??>@  <<<<1@  /2<<<<<0)5!!5!3!3!!!0KøL=??Oq %@   1/203!3!$Uq"KOq *@    1@  /220#53!3!$U"Kq %@  1 /20)53!!kUޓK=C  1@ B/0KSX@Y!!!tFs0hB~ F  1@ B /20KSX@Y!5!!!tFlhhB~BC  1@ B/0KSX@Y!5!!tFlh0B~B+ 8@!  <<1@    /2<20327654'&+!!!2/!m]%i ; @ED\qQE=4."RJrCEoJRXErrJS9[ZZ 1SV/ { 2Ʀ1 "p_88_p`88*#5!5&'.4767675!5!!2>4."RJrCEoJRXErrJS9[ZZ 1SV/ { 2Ʀ1 "p_88_p`88O(#5!5&'.4767675!5!2>4."RJrCEoJRXErrJSQ[ZZ 1SV/ { 2Ʀ1 {"p_88_p`88Q %@   1/0!!#!3BQ *@  1@  /20#5!!#!3ԓ} %@   1/0#5!!#!+Q (@   <1 /0!!#3!3OQ -@   <1@   /20#5!!#3!3ԓ} (@    <1 /0#5!!#3!B /@   <<1@   /20!!!5!3z;  K"qѓB3@   <<1@  /220!53!!5!3z;7 K"ѓm /@    <<1@  /20!53!!5!z;7 K"ѓ+q &B@%(E# E'ܲ@ ]<<ܲ@]1@ # $ /<<02>4."&'.4767673! [ZZRJrCEoJRXErrJS"p_88_p`88~ 1SV/ { 2Ʀ1  (F@ *E#'E)ܲ@]<<ܲ@#]1@' (/2<<02>4."!5!5&'.4767673 [ZZlRJrCEoJRXErrJS"p_88_p`88 1SV/ { 2Ʀ1 O &B@(E# E&'ܲ@ ]<<ܲ@]1@ #  %/<<02>4."5&'.4767673!5 [ZZRJrCEoJRXErrJS0"p_88_p`88 1SV/ { 2Ʀ1 {q*!&'.4767675!5!!!2>4."RJrCEoJRNXErrJS9[ZZ 1SV/ 2Ʀ1 "p_88_p`88 ,%!5!5&'.4767675!5!!2>4."RJrCEoJRNXErrJSQ[ZZ 1SV/ 2Ʀ1 p_88_p`88O*)5!5&'.4767675!5!!2>4."0RJrCEoJRNXErrJSQ[ZZ 1SV/ 2Ʀ1 p_88_p`88 '' '' '' '' '' '' '' ''  :@   @ ? o ]9999991 2<0#'##'##'d2222222dddddV!#!3!3#3jժVV8`!##333#{}`9VVX{ %5#"&5332653!"&'5326Cuȸ||aQQRjBfca{+,*X10!5!-ЈX'3I(sInhX#'3h'OW`4X#'3v5]dDZX#'3 |;d07!X#(ẌI$@h$An4$B`$CnhX#7OhWh$Eh@4AnB`4X#7]vDdn4$J4E4@dAdZX%#7d|!70`$OnJEd@0<0^X133ֈXLth._<3 r Um Q rZf55q=3=dd?y}s)3s\\?uLsLsyD{={\{fqqq/q999qqJ+o#7=V;=3X55^R\sd5^5bs#5`b?yyyyyys\;\\\3 LsLsLsLsLsLf {{{{{{{fqqqqq9999qqqqqqH==y{y{y{sfqsfqsfqsfq)q3 qqqqqq3sq3sq3sq3sqTx\9\9\9\9\9r\9?u9u9uuFLsqLsqLsqs/qJJJ+o+o+o+o#7#7#7DV={\3X{\3X{\3X/ }}ssfq3 }qqLu3s~\ 9 =LsNgvsq7r+d#7#7N={\3XTT\h3qT]hX\] ` d <qKsday{\9Lsqqy{y{{3sq3sq?LsqLsqTX9 ` d <q3squy{{LfHy{y{qq\9\9LsqLsqJJ+o#7,Gqqq{\3Xy{qLsqLsqLsqLsq=79qqy f u +o3XPP}  yq\9@sq J qefqqqqq|SA4Pq9qq q``9t*KM:+#qqGpPPOJI>>t+o7#7#7q=V=f3X3XXmXXXXLsPqq;VVqXXqvqq77:7/ <66JO<u1ufu]H^H 6&:uuuuuu  3s3soouuuuddLhuTzuuu%q7]yq$U $ zw(j#Lcxh!c+qc3x+x.pppp*pw<.::3efqesDy}uy{\Ls\?yLsLs{=LsN\FqSFq qSZkq=xJvkqJqqdGp;Gpq?qWWGpAOpLsq0q@GGrwxssFqU-~Od$s6sq,J7Opfq9Lsqs5UsssJs\\\T\J#y}}@e(!TLss#y{=6|<}o{p4kq5FA33L ;q;fq<=p;rR>Qdqtqq/4dq+o9998L07/3=;xs*` D3 GLsk7sS[2Lsq@R2@R2s<qsq pv9xssfq;XXX.j}!&4fG8=(5F!A!=2*ISsqsfq<=={=;yt|||\(5F?56].I6r|29y{y{{qLuqLuq(5F!ATX33LsqLsqLsqodq#=#=#=|4QfG8{=;{=;}q -qn6.3sGq/STL ZTL'AtLsqDVT>LLXv&tuA&7\\S&eLsR\Lsuu^x"6^Zq"qDq;' qqF92 F &q/qzw`DDcc/NDdc\\fcXCX.X0.XsXXEX.XXN*CCMXwBS(?99l9lC91***}} ffuuXK5k1CCOOLLLRLLLLLUL<L<LdL\W5kVz*******KKK))*CC1LLLRLLLRLjLL<L<Ld9qd==;;q;q=x==D=;==p==q==.qqB[B[{d{d7]xmxs[")>WE_IIY"~h~h@sx2OsOsxMo`P{P@@@@`NzBza\d>N c c]ccY]dji::PZ"ZPZ|ZPZ}PPZPZXZPPP|ZPP*FZnP\ZZZFdZWPPWFZdZddDPGd.e#edade%dvd-d/Cd$d/dWd/?d1<Nd/dBd/d-d-d/d/F.Z#d{ddddddd.nemdndyyyy'''''w'w'ww'w Xc^c^%H Ewyyyywwwwwwywwwwwwwwwyy^^^l4wl4w4y4yywyFFFF*F*F*FAA8F3F3FFFF*F*F*Fzzwuuuwwwuu&w&w&wwFF wwwFFGwyFyFFwFFFwwwFFGwy=Fy=FGwGw=F=FwFFFFFV+V+FFV+V+VY]YFFF"F"F"F"FGFGFGF F F F F wwww?w?w?wYSSwSwSSSFFFFYwyyyyMMwwdwSSyy4yFwwFFww```````FwFw     FFwwFF%w%!%!%w%w%!%!Y )#su` z    s 4 s 3  E p 2 O 3wq= {>fq$S9( 3qfyqyqy3/qqq222</=V3X5x=2ZLr u//SH||NYHG p+"M"M>G/Mmu>GVGVGTR>GnzhuuEuOGGOGOGmu\#=nnuV&7yGSG%nzu=nV&7yKySG%t9>GGGOGT_>G=nIzIIVz[quuIuEqOGOGFK\#^YGu@zV&7~77#7OG[[[[BBy{}}}sfq)q)q)q)q)qqqqqq/3sq\9\9???uMuMu9u9LsqLsqLsqLsqJJJJT+o+o+o+o+o#7#7#7#7y=y=DVDVDVDVDV{=;{=;={\3X{\3X{\3X#V={/&qy{y{y{y{y{y{y{y{y{y{y{y{qqqqqqqq\Z9D\9LsqLsqLsqLsqLsqLsqLsqNgvNgvNgvNgvNgv====FqFqFqFqFqFqFqFqyy'iSSSSSS0l7hx qqqqqqoE.k_FqFqSc<qqFqFqFqFqFqFqFqFqyy'i7hxk_FqFqFqFqFqFqFqyyy<pr\\D~{aNsVddddd%%%%9933W q q(()((()( 33?nn=V`Jd=n=dn8N(ffadp5Wnz5?5f5\5l5Y5S999og0u5W55^5b5?5f5\5l5Y5S999og"MVGOGuVGVs`u .;F_( ..D]1u!===P=&C&Cs#&<<oI HZ;jDN hR6nLsbBSV,y('y\XNND?yJ\}WJT9hgd(V FhZ $<|3uuWZ[O=;6Q^^b?fbfl\bya W{=w= =us)9~=}== ]=;;;9fqq y) ysedud    du,dudududvdvdd*ZZd-Opdduudwddxvxddddudud  dududuku7^H^^^@^^^uzz^uwududdud7u7y#_ZZ,dDX===,,ff+uPuuu+uPuuu+u+u+uyyy``>>**yyby*cc| a aXXJr;xxdxxd++* 8 8 P 8 x PFq 8#+7',,,,,,,,,,xxxxxxx||''''''''''''''''''''''q''''''''''llgg'''''''''''''''''pprppppppppp7p7Tpp''''3'''ppppp'''',h,d,,,,+,}}_}} ,,,B,d,,,,,,,,,,},,,dZd2E\,,,,,,,,,,,,,,,,,,,,,,,S,,,,,],,,,,m,,E,,,,A,,,U,,Q,0,,,U,,L,0,C,,X,,B,,X,,,x, ,,,,,,,,,,,,,,1,,,,,,,,,,,X,X,j,, T},y,},),,,,,d %6  dT YxEVIVVx+5X3ppppR >pTVSTWW/V0/0002p@TTTTpnnTVaaTT,f,z,z,z,z,xNNx>NnX~#9Uwlf,,,,,,,,,,                    uuuuuuuuuuuuuu++<uusunOss[YOO Bu xd xu xd xd xu xd xd xu xd xu xu,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,duwOwO::: u+u+u+u+u+u+u+u+u+u+u++u+u+u+u+k  77^^  7^uuHH''''$$"pMMu 9 u H#?{\3X@sy= DVh<GpPqbfr ,qssu@xC@~yyv{\{\ssg)?>8{\(oo:o\:o\csssss$d{=syNsNs6??,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,r+d pv9;<@>speKkT5L mLsqsq s&q:Bz<<|ff7S+o { { #{{{{seq#Sjxt  s&qu 9553wF\ Dq/ / ///}/o } <.VN1X?,XXuXXwwwwXCX.QX0QXsXXEXXXCMXwB.XsXX:j:j:j:j:j:jKH KH ************jj))k))k":jC:jp*XXXiXXXXXXXXXXX9p9lpl"9lplC:j9p:j1J:j:j*********}3}}3}jj 3# 3#  f^f^uBuuBu/KH 5kk kpSI:j1J8"CC:j..TT4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,c3s$f"=3LrDrlK{fqo/q5 "qqq+o7=HVhL=Xy}s)3s\?uLsLsyD{={\{fqqq/q999qqJ+o#7=V;=3XkZqAjds N:jH k :j:j:j********_9xxxxxxxxvxxvxxvxxxvxvxxxx,p:jj9Jqq9O99:::qd=dd=;;;;;;q;;;q=xxx==D=DD;;;====p==q======...qq,,,,,,,,.jn`#Zn`nn`n#Z`n3>?@<@<@ABPChDDFFGHIIJKPKLLM$MN0NO@OlOP$PQ|QQQRRSS0S`STUUUUVV8VPVhVVW|WWWXX<XlY4ZlZZZ[[[\\]]4]`]]____``$`<`T`x`bLbdb|bbbc chdde e,e\etffDfpffffgg,gDghggggghh,h<hii4iXi|iiiijj,jPjtjjjjjkk@kl lllm m0mTmxmmmn$nHnlnnnnoop$p<p`pxpppqdqrr<rTrlrrrsxtt@t`ttttu|vvvvww(wPwhwwwwwx$xHx`xxxxyLyzz4zdzzzz{{,{D{\{t{{{||$|<|T|l|||}}~~t8X|T`P0\t(@XD L@  8Ph0Pt4D\t<Tl $<Tl,D\t4Ld| $<Tl4xld| $<TlX8$ t,l,<äPňH,ȸhʤ<̌(x\ 0@\(԰ՔLLڐhܜX(ddL`lt` 0THX \hX, 0  T   < L d t   $      T $,@`|8L`|PpHT\,T(<Pd Lh@h<\ Dh$8  <    !!!,!@!T!!!""("t""##<#####$$$,$P$x$$%<%%&&(&(&h&&&&'L'`'t''( (4(\(l(|(() )<)L)\)))))*0*`*x*****++(+@+P+`+,,,$,4,,--h-x---...../t/00011(1@1X1p123t3456L6778`889:@:P:;`< <==>L?X?@@@@@@A8BBChCCDdEEFxG$GHdHtI$IIJhJKLMHMNOpOPXQ QRPRSXST`UU(U8UHUV$V4VDVTW$WX0X@XXXpXY(YYZxZZZZ[P[\P\h\\\]]]]^T^d_X```aabbb bhbxbbcccd8dde\eefhgghphiHijjjklhlmmnnnno@oPo`ooppqqqrHrrsLstu$u<uvvw<wLw\wlw|xxy<yTylyyzz{d{||}<}|}~0x<Tlxh4\,TXt8Ph<\8, ,`$pl<8(d@P|$Hl|,<Tl0H`x 8x(xl<<$<HXhh4 x 0@PT0`l|ìDx\ƸXǠȨ@0ʤ@˰,̘̈́,<Πΰ hx(8TdҸӬ8h֠ה،(٠|p݀l,<hx`tLd P0X@hx0LxLl(\ |@0 ,4<  T0PL4Ph0H0H(DP|`0L  T h |    H  H   H   D   @D\t $<Tl$D\lT8HXhD$hT `XDd@4  l!!`!"0"##d#$$%X%%%&P&''l''((X(()$)*+\,,-`.<//0X1123 345<6678889:L;;<=l=>>??4?@@AALAB,BC@CCDpEEF<FdFGGGH4HIIJJKDLLtMxMNOP`PQ,QRRRSlST TUUVPVWWWXLY YYZ,Z|[[P[\H\]h]^^`^_t_`(`aDab$bccd dxde$ef,ffg`gh<hhiPijLjk,klllmDmn(noop(pqq|qrhrs8sstttttu4uLudu|uvvv4vLvdv|vvvvvw w$w<wTwlwwwwxxDxxyy4y|yyyzzz0zHz`zpzzz{{,{D{\{{{|| |8|P|h||||||}}(}@}}}}~h~~0(@XptPh|,D\t4Ld|$x,D $< $<Tll,D|4Ld| $<xt $D\tT<T,D(@Xp8t8P,D\t4Ld| d| 8Phl8P8Ph(@Xp(d<40Xp(@ $<$D\ $h`x(@Xp8< $<Tl $8P $`x <4Ld|D0l4`$h,LPÄü TdŬ4$4l|njǜǬ\ɨ\<Lˈ(̜̬̼<Lẗ́$p<lϜ <XЈмDtҐHpӴl\4֘tذ@,\H܄ܼ `ݬtޜ4߼8dx \`tH`00$$tT$Th<\0H`x 8Ph(@Xx(@Xp0H`x(@Xp0H`x 8Xp0H`x 8Xx 8Ph(@Xp0H`x 8Ph(@Xp 0H`x 8Ph(@Xp0H`x(@Xp0H`x(@Xp0H`x 8Ph  ( @ X p       $ < T l        8 T p        0 L h       $ < T l      8Tp 8Ph4Ld|0H`x(D`|(8P`x(@Xp0H`x 8Ph(@Xp0H`x 0HXh0H`x4Ld|4Ld|4Lhx,D`p00000000000000000\l  0 H   !!x!"0"d"#@###$$X$p$p$p$p$p$p$p%' ','D'd''''(L(() )))*\***++@+p+++,(,`,,,---8-\--.$.X../ /0/l/00<0<0<0<0<0<0<0<0<0<0<0<0<0012D223484l4445$55555566$686L6`6t666666777(78L899::;p<@<=P=h??d?AHAB|CC|DDDDEEDE|EEFGHH IHIJ|JJJKLM8MMNO4PPQQTSTUXUVhWX|Y,ZDZ[[\x\] ]x]]^^^^_`a$abhcHctde ef@fgDghhiiijjTjjkk4klhmm@mn@nnnnoo0oPopoooopp(p8pPpppppppqq q8qXqhqxqqqqqqrr r@rhrrrrrrrssuuuvvwhxxy{ {<{l{{||d} }~~L~~,xDPL<th$8P<Xt hP8x80p0p( h<x@8d8|t\8tH|<4,488<P`@`0dP|$txX0dt8dLTx( $Dd$\Ph Ōƨ0ǘDȈ|$ʐ|̨\͠t8pФ0ѠTҘpԐ|H`Dx׬xH۸ܠ݄DH߄ \ P@\h4 \0d@@t$ddXT(`l0|l84hT4lDxT@`8`8Xx(tx 0    0 @ P    H d    ( H d      t  X(T| #\%%&&&8&l&&''P''($(H(l(((() )D)d))))**0*T*|***+$+T++++,$,P,x,,,-$-P-|---.$.L.p...//D/p///000d001181p1122H2|223343`3334444h4445 5L5556 6<6p6677X777808`889,999:$:X:x:::; ;(;D;`;|;;;<<$>>ABBBBBBCC(CDC`CtCCCCDDD\DEFPFG`I I<IhIIIIJJLJhJJJJKK8KdKKKKLL<LXLLLLMM4MhMN<NNOPQ`QRRtRS,SST T4TpTU<UUUVVDVVVWWW4W|WWWX$X`XXXYdYYZ$ZdZ[d[\d\\\]]$]P]l]^^_hkpkl l\lmTn noPorxuXuvv|vx4yz(z\{P|$|}T~~hl0x4(Hh\,XhXlx|LdL8   ,pp8 h,` ,hhŒİńƐ $0όLҨӜӸ(@Ք֌8\٠DL4<p|t(p8|<P(@D8`,p | t  ( d   8  4pTdX40\ x8 "#%'P)/0T23h405689h:<==>X>?(????@ @l@@AxBBC<CDEF$FFG G4G`GGGHH4H`HI(IJPKLM0NO8QSTUXV\WtXPYPZh[4\`]x^_(_`a,abccdeeeff4fdfgg@gghh@hphhi0i\iijjpjk k\kl lxmmtmnno op|q r4s`stLttuuPuxuuuv(v|w@xxyz\{|{{|X||}}h}}~~~0~D~`~|~~~~,Pt,Pt0T,Pl Dp <`,`<p,Pl Dp <`,`<p Dp Dp0dP| L$`,Pl Dp <`,`<p Dp Dp0dP| L$` Dp Dp0dP| L$`0\$`0d L$`P P,x|\ T8lPx\tPlpT8PhdDHh(Đ0lńŜ(p8ǴHdɬTʴ\H(Ϩ<Є\Ѹ0\҈ҴPӄӼ(TԀԬ4dՔ@d֠ 8tט\(dpۀP܄ܸPݠ$ޔT|ߤ$p 4`(   LH t<HX4H,l8 t@PD @Ph(@Xp0H`x 8Ph(@Xp0H`x 8P`pl4L,|d  @     h      h  Xh0X8\$Pd$T0hXxl$Px\<\|@d "%d%&','()L)*+,8,-.L.d../(///0$0d0011X1p1111122202H2`2x2222233 383P3h33333344(4@4X44455505H5`5x5555566 686P6h66666677(7@7X7p7777788808H8`8x8888899 989P9h999:T:d:t:::::;\;t;;;< <<4 > >8>L>d>x>>>>>???0?H?`?x????@@@4@L@d@|@@@@@A A$A<ATAlAAAABXBCDC\CtCCCDD0DHDXDDDDEFPFGG G8GPG`H<HIlIIIIIJ`JKPKhKKKKLHLM0MHM`MxMMMMMNN N8NPN`O,OP P0PPQQ,QR<RRRSS,S<STpUUUUVXVpVVVVVWWW0WHWXXXXXXXXXYYY8YTY|YYYZ ZLZtZZZ[[@[h[[[\ \4\\\\\]],]T]|]]]^ ^H^p^^^__<_d___` `4`\```aa(aPa|aaabbDbpbbbcc<cdcccdd0d\dddde$ePexeeeffDfg gghhhii`iijk$k\kl ltlmmnPnodopDq qqrrXrs`st`tuuvw wwxxpxyyy$y4yDyTydytyyyyyyyyzzz$z4zDzTzdztzzzzzzzz{{{${4{D{T{d{t{{{{{{{{|||$|4|D||}~~`~\t 0@P`p,@  \$H x0(@Xp @`p0Lh,Hd$\t(Hh,X\x 8pxHthHDP(D`dt hp$PlxHltTT xX4H\4X|$`<`„¤¸,@ThÌàô(<XĀZT+h >2   : `   (Z4;b ;; 0    " F m " : %: h: ; ;Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain DejaVu SansDejaVu SansBookBookDejaVu SansDejaVu SansDejaVu SansDejaVu SansVersion 2.30Version 2.30DejaVuSansDejaVuSansDejaVu fonts teamDejaVu fonts teamhttp://dejavu.sourceforge.nethttp://dejavu.sourceforge.netFonts are (c) Bitstream (see below). DejaVu changes are in public domain. Glyphs imported from Arev fonts are (c) Tavmjung Bah (see below) Bitstream Vera Fonts Copyright ------------------------------ Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org. Arev Fonts Copyright ------------------------------ Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the modifications to the Bitstream Vera Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Tavmjong Bah" or the word "Arev". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Tavmjong Bah Arev" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the name of Tavmjong Bah shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from Tavmjong Bah. For further information, contact: tavmjong @ free . fr.Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. Glyphs imported from Arev fonts are (c) Tavmjung Bah (see below) Bitstream Vera Fonts Copyright ------------------------------ Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org. Arev Fonts Copyright ------------------------------ Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the modifications to the Bitstream Vera Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Tavmjong Bah" or the word "Arev". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Tavmjong Bah Arev" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the name of Tavmjong Bah shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from Tavmjong Bah. For further information, contact: tavmjong @ free . fr.http://dejavu.sourceforge.net/wiki/index.php/Licensehttp://dejavu.sourceforge.net/wiki/index.php/LicenseDejaVu SansDejaVu SansBookBook~ZZ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ sfthyphenAmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccent Gcommaaccent gcommaaccent Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflex Kcommaaccent kcommaaccent kgreenlandicLacutelacute Lcommaaccent lcommaaccentLcaronlcaronLdotldotNacutenacute Ncommaaccent ncommaaccentNcaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracute Rcommaaccent rcommaaccentRcaronrcaronSacutesacute Scircumflex scircumflex Tcommaaccent tcommaaccentTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentlongsuni0180uni0181uni0182uni0183uni0184uni0185uni0186uni0187uni0188uni0189uni018Auni018Buni018Cuni018Duni018Euni018Funi0190uni0191uni0193uni0194uni0195uni0196uni0197uni0198uni0199uni019Auni019Buni019Cuni019Duni019Euni019FOhornohornuni01A2uni01A3uni01A4uni01A5uni01A6uni01A7uni01A8uni01A9uni01AAuni01ABuni01ACuni01ADuni01AEUhornuhornuni01B1uni01B2uni01B3uni01B4uni01B5uni01B6uni01B7uni01B8uni01B9uni01BAuni01BBuni01BCuni01BDuni01BEuni01BFuni01C0uni01C1uni01C2uni01C3uni01C4uni01C5uni01C6uni01C7uni01C8uni01C9uni01CAuni01CBuni01CCuni01CDuni01CEuni01CFuni01D0uni01D1uni01D2uni01D3uni01D4uni01D5uni01D6uni01D7uni01D8uni01D9uni01DAuni01DBuni01DCuni01DDuni01DEuni01DFuni01E0uni01E1uni01E2uni01E3uni01E4uni01E5Gcarongcaronuni01E8uni01E9uni01EAuni01EBuni01ECuni01EDuni01EEuni01EFuni01F0uni01F1uni01F2uni01F3uni01F4uni01F5uni01F6uni01F7uni01F8uni01F9 Aringacute aringacuteAEacuteaeacute Oslashacute oslashacuteuni0200uni0201uni0202uni0203uni0204uni0205uni0206uni0207uni0208uni0209uni020Auni020Buni020Cuni020Duni020Euni020Funi0210uni0211uni0212uni0213uni0214uni0215uni0216uni0217 Scommaaccent scommaaccentuni021Auni021Buni021Cuni021Duni021Euni021Funi0220uni0221uni0222uni0223uni0224uni0225uni0226uni0227uni0228uni0229uni022Auni022Buni022Cuni022Duni022Euni022Funi0230uni0231uni0232uni0233uni0234uni0235uni0236dotlessjuni0238uni0239uni023Auni023Buni023Cuni023Duni023Euni023Funi0240uni0241uni0242uni0243uni0244uni0245uni0246uni0247uni0248uni0249uni024Auni024Buni024Cuni024Duni024Euni024Funi0250uni0251uni0252uni0253uni0254uni0255uni0256uni0257uni0258uni0259uni025Auni025Buni025Cuni025Duni025Euni025Funi0260uni0261uni0262uni0263uni0264uni0265uni0266uni0267uni0268uni0269uni026Auni026Buni026Cuni026Duni026Euni026Funi0270uni0271uni0272uni0273uni0274uni0275uni0276uni0277uni0278uni0279uni027Auni027Buni027Cuni027Duni027Euni027Funi0280uni0281uni0282uni0283uni0284uni0285uni0286uni0287uni0288uni0289uni028Auni028Buni028Cuni028Duni028Euni028Funi0290uni0291uni0292uni0293uni0294uni0295uni0296uni0297uni0298uni0299uni029Auni029Buni029Cuni029Duni029Euni029Funi02A0uni02A1uni02A2uni02A3uni02A4uni02A5uni02A6uni02A7uni02A8uni02A9uni02AAuni02ABuni02ACuni02ADuni02AEuni02AFuni02B0uni02B1uni02B2uni02B3uni02B4uni02B5uni02B6uni02B7uni02B8uni02B9uni02BAuni02BBuni02BCuni02BDuni02BEuni02BFuni02C0uni02C1uni02C2uni02C3uni02C4uni02C5uni02C8uni02C9uni02CAuni02CBuni02CCuni02CDuni02CEuni02CFuni02D0uni02D1uni02D2uni02D3uni02D4uni02D5uni02D6uni02D7uni02DEuni02DFuni02E0uni02E1uni02E2uni02E3uni02E4uni02E5uni02E6uni02E7uni02E8uni02E9uni02ECuni02EDuni02EEuni02F3uni02F7 gravecomb acutecombuni0302 tildecombuni0304uni0305uni0306uni0307uni0308 hookabovecombuni030Auni030Buni030Cuni030Duni030Euni030Funi0310uni0311uni0312uni0313uni0314uni0315uni0316uni0317uni0318uni0319uni031Auni031Buni031Cuni031Duni031Euni031Funi0320uni0321uni0322 dotbelowcombuni0324uni0325uni0326uni0327uni0328uni0329uni032Auni032Buni032Cuni032Duni032Euni032Funi0330uni0331uni0332uni0333uni0334uni0335uni0336uni0337uni0338uni0339uni033Auni033Buni033Cuni033Duni033Euni033Funi0340uni0341uni0342uni0343uni0344uni0345uni0346uni0347uni0348uni0349uni034Auni034Buni034Cuni034Duni034Euni034Funi0351uni0352uni0353uni0357uni0358uni035Auni035Cuni035Duni035Euni035Funi0360uni0361uni0362uni0370uni0371uni0372uni0373uni0374uni0375uni0376uni0377uni037Auni037Buni037Cuni037Duni037Etonos dieresistonos Alphatonos anoteleia EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos OmegatonosiotadieresistonosAlphaBetaGammauni0394EpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsi IotadieresisUpsilondieresis alphatonos epsilontonosetatonos iotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdauni03BCnuxiomicronrhosigma1sigmatauupsilonphichipsiomega iotadieresisupsilondieresis omicrontonos upsilontonos omegatonosuni03CFuni03D0theta1Upsilon1uni03D3uni03D4phi1omega1uni03D7uni03D8uni03D9uni03DAuni03DBuni03DCuni03DDuni03DEuni03DFuni03E0uni03E1uni03E2uni03E3uni03E4uni03E5uni03E6uni03E7uni03E8uni03E9uni03EAuni03EBuni03ECuni03EDuni03EEuni03EFuni03F0uni03F1uni03F2uni03F3uni03F4uni03F5uni03F6uni03F7uni03F8uni03F9uni03FAuni03FBuni03FCuni03FDuni03FEuni03FFuni0400uni0401uni0402uni0403uni0404uni0405uni0406uni0407uni0408uni0409uni040Auni040Buni040Cuni040Duni040Euni040Funi0410uni0411uni0412uni0413uni0414uni0415uni0416uni0417uni0418uni0419uni041Auni041Buni041Cuni041Duni041Euni041Funi0420uni0421uni0422uni0423uni0424uni0425uni0426uni0427uni0428uni0429uni042Auni042Buni042Cuni042Duni042Euni042Funi0430uni0431uni0432uni0433uni0434uni0435uni0436uni0437uni0438uni0439uni043Auni043Buni043Cuni043Duni043Euni043Funi0440uni0441uni0442uni0443uni0444uni0445uni0446uni0447uni0448uni0449uni044Auni044Buni044Cuni044Duni044Euni044Funi0450uni0451uni0452uni0453uni0454uni0455uni0456uni0457uni0458uni0459uni045Auni045Buni045Cuni045Duni045Euni045Funi0460uni0461uni0462uni0463uni0464uni0465uni0466uni0467uni0468uni0469uni046Auni046Buni046Cuni046Duni046Euni046Funi0470uni0471uni0472uni0473uni0474uni0475uni0476uni0477uni0478uni0479uni047Auni047Buni047Cuni047Duni047Euni047Funi0480uni0481uni0482uni0483uni0484uni0485uni0486uni0487uni0488uni0489uni048Auni048Buni048Cuni048Duni048Euni048Funi0490uni0491uni0492uni0493uni0494uni0495uni0496uni0497uni0498uni0499uni049Auni049Buni049Cuni049Duni049Euni049Funi04A0uni04A1uni04A2uni04A3uni04A4uni04A5uni04A6uni04A7uni04A8uni04A9uni04AAuni04ABuni04ACuni04ADuni04AEuni04AFuni04B0uni04B1uni04B2uni04B3uni04B4uni04B5uni04B6uni04B7uni04B8uni04B9uni04BAuni04BBuni04BCuni04BDuni04BEuni04BFuni04C0uni04C1uni04C2uni04C3uni04C4uni04C5uni04C6uni04C7uni04C8uni04C9uni04CAuni04CBuni04CCuni04CDuni04CEuni04CFuni04D0uni04D1uni04D2uni04D3uni04D4uni04D5uni04D6uni04D7uni04D8uni04D9uni04DAuni04DBuni04DCuni04DDuni04DEuni04DFuni04E0uni04E1uni04E2uni04E3uni04E4uni04E5uni04E6uni04E7uni04E8uni04E9uni04EAuni04EBuni04ECuni04EDuni04EEuni04EFuni04F0uni04F1uni04F2uni04F3uni04F4uni04F5uni04F6uni04F7uni04F8uni04F9uni04FAuni04FBuni04FCuni04FDuni04FEuni04FFuni0500uni0501uni0502uni0503uni0504uni0505uni0506uni0507uni0508uni0509uni050Auni050Buni050Cuni050Duni050Euni050Funi0510uni0511uni0512uni0513uni0514uni0515uni0516uni0517uni0518uni0519uni051Auni051Buni051Cuni051Duni0520uni0521uni0522uni0523uni0524uni0525uni0531uni0532uni0533uni0534uni0535uni0536uni0537uni0538uni0539uni053Auni053Buni053Cuni053Duni053Euni053Funi0540uni0541uni0542uni0543uni0544uni0545uni0546uni0547uni0548uni0549uni054Auni054Buni054Cuni054Duni054Euni054Funi0550uni0551uni0552uni0553uni0554uni0555uni0556uni0559uni055Auni055Buni055Cuni055Duni055Euni055Funi0561uni0562uni0563uni0564uni0565uni0566uni0567uni0568uni0569uni056Auni056Buni056Cuni056Duni056Euni056Funi0570uni0571uni0572uni0573uni0574uni0575uni0576uni0577uni0578uni0579uni057Auni057Buni057Cuni057Duni057Euni057Funi0580uni0581uni0582uni0583uni0584uni0585uni0586uni0587uni0589uni058Auni05B0uni05B1uni05B2uni05B3uni05B4uni05B5uni05B6uni05B7uni05B8uni05B9uni05BAuni05BBuni05BCuni05BDuni05BEuni05BFuni05C0uni05C1uni05C2uni05C3uni05C6uni05C7uni05D0uni05D1uni05D2uni05D3uni05D4uni05D5uni05D6uni05D7uni05D8uni05D9uni05DAuni05DBuni05DCuni05DDuni05DEuni05DFuni05E0uni05E1uni05E2uni05E3uni05E4uni05E5uni05E6uni05E7uni05E8uni05E9uni05EAuni05F0uni05F1uni05F2uni05F3uni05F4uni0606uni0607uni0609uni060Auni060Cuni0615uni061Buni061Funi0621uni0622uni0623uni0624uni0625uni0626uni0627uni0628uni0629uni062Auni062Buni062Cuni062Duni062Euni062Funi0630uni0631uni0632uni0633uni0634uni0635uni0636uni0637uni0638uni0639uni063Auni0640uni0641uni0642uni0643uni0644uni0645uni0646uni0647uni0648uni0649uni064Auni064Buni064Cuni064Duni064Euni064Funi0650uni0651uni0652uni0653uni0654uni0655uni065Auni0660uni0661uni0662uni0663uni0664uni0665uni0666uni0667uni0668uni0669uni066Auni066Buni066Cuni066Duni066Euni066Funi0674uni0679uni067Auni067Buni067Cuni067Duni067Euni067Funi0680uni0681uni0682uni0683uni0684uni0685uni0686uni0687uni0691uni0692uni0695uni0698uni06A1uni06A4uni06A6uni06A9uni06AFuni06B5uni06BAuni06BFuni06C6uni06CCuni06CEuni06D5uni06F0uni06F1uni06F2uni06F3uni06F4uni06F5uni06F6uni06F7uni06F8uni06F9uni07C0uni07C1uni07C2uni07C3uni07C4uni07C5uni07C6uni07C7uni07C8uni07C9uni07CAuni07CBuni07CCuni07CDuni07CEuni07CFuni07D0uni07D1uni07D2uni07D3uni07D4uni07D5uni07D6uni07D7uni07D8uni07D9uni07DAuni07DBuni07DCuni07DDuni07DEuni07DFuni07E0uni07E1uni07E2uni07E3uni07E4uni07E5uni07E6uni07E7uni07EBuni07ECuni07EDuni07EEuni07EFuni07F0uni07F1uni07F2uni07F3uni07F4uni07F5uni07F8uni07F9uni07FAuni0E3Funi0E81uni0E82uni0E84uni0E87uni0E88uni0E8Auni0E8Duni0E94uni0E95uni0E96uni0E97uni0E99uni0E9Auni0E9Buni0E9Cuni0E9Duni0E9Euni0E9Funi0EA1uni0EA2uni0EA3uni0EA5uni0EA7uni0EAAuni0EABuni0EADuni0EAEuni0EAFuni0EB0uni0EB1uni0EB2uni0EB3uni0EB4uni0EB5uni0EB6uni0EB7uni0EB8uni0EB9uni0EBBuni0EBCuni0EBDuni0EC0uni0EC1uni0EC2uni0EC3uni0EC4uni0EC6uni0EC8uni0EC9uni0ECAuni0ECBuni0ECCuni0ECDuni0ED0uni0ED1uni0ED2uni0ED3uni0ED4uni0ED5uni0ED6uni0ED7uni0ED8uni0ED9uni0EDCuni0EDDuni10A0uni10A1uni10A2uni10A3uni10A4uni10A5uni10A6uni10A7uni10A8uni10A9uni10AAuni10ABuni10ACuni10ADuni10AEuni10AFuni10B0uni10B1uni10B2uni10B3uni10B4uni10B5uni10B6uni10B7uni10B8uni10B9uni10BAuni10BBuni10BCuni10BDuni10BEuni10BFuni10C0uni10C1uni10C2uni10C3uni10C4uni10C5uni10D0uni10D1uni10D2uni10D3uni10D4uni10D5uni10D6uni10D7uni10D8uni10D9uni10DAuni10DBuni10DCuni10DDuni10DEuni10DFuni10E0uni10E1uni10E2uni10E3uni10E4uni10E5uni10E6uni10E7uni10E8uni10E9uni10EAuni10EBuni10ECuni10EDuni10EEuni10EFuni10F0uni10F1uni10F2uni10F3uni10F4uni10F5uni10F6uni10F7uni10F8uni10F9uni10FAuni10FBuni10FCuni1401uni1402uni1403uni1404uni1405uni1406uni1407uni1409uni140Auni140Buni140Cuni140Duni140Euni140Funi1410uni1411uni1412uni1413uni1414uni1415uni1416uni1417uni1418uni1419uni141Auni141Buni141Duni141Euni141Funi1420uni1421uni1422uni1423uni1424uni1425uni1426uni1427uni1428uni1429uni142Auni142Buni142Cuni142Duni142Euni142Funi1430uni1431uni1432uni1433uni1434uni1435uni1437uni1438uni1439uni143Auni143Buni143Cuni143Duni143Euni143Funi1440uni1441uni1442uni1443uni1444uni1445uni1446uni1447uni1448uni1449uni144Auni144Cuni144Duni144Euni144Funi1450uni1451uni1452uni1454uni1455uni1456uni1457uni1458uni1459uni145Auni145Buni145Cuni145Duni145Euni145Funi1460uni1461uni1462uni1463uni1464uni1465uni1466uni1467uni1468uni1469uni146Auni146Buni146Cuni146Duni146Euni146Funi1470uni1471uni1472uni1473uni1474uni1475uni1476uni1477uni1478uni1479uni147Auni147Buni147Cuni147Duni147Euni147Funi1480uni1481uni1482uni1483uni1484uni1485uni1486uni1487uni1488uni1489uni148Auni148Buni148Cuni148Duni148Euni148Funi1490uni1491uni1492uni1493uni1494uni1495uni1496uni1497uni1498uni1499uni149Auni149Buni149Cuni149Duni149Euni149Funi14A0uni14A1uni14A2uni14A3uni14A4uni14A5uni14A6uni14A7uni14A8uni14A9uni14AAuni14ABuni14ACuni14ADuni14AEuni14AFuni14B0uni14B1uni14B2uni14B3uni14B4uni14B5uni14B6uni14B7uni14B8uni14B9uni14BAuni14BBuni14BCuni14BDuni14C0uni14C1uni14C2uni14C3uni14C4uni14C5uni14C6uni14C7uni14C8uni14C9uni14CAuni14CBuni14CCuni14CDuni14CEuni14CFuni14D0uni14D1uni14D2uni14D3uni14D4uni14D5uni14D6uni14D7uni14D8uni14D9uni14DAuni14DBuni14DCuni14DDuni14DEuni14DFuni14E0uni14E1uni14E2uni14E3uni14E4uni14E5uni14E6uni14E7uni14E8uni14E9uni14EAuni14ECuni14EDuni14EEuni14EFuni14F0uni14F1uni14F2uni14F3uni14F4uni14F5uni14F6uni14F7uni14F8uni14F9uni14FAuni14FBuni14FCuni14FDuni14FEuni14FFuni1500uni1501uni1502uni1503uni1504uni1505uni1506uni1507uni1510uni1511uni1512uni1513uni1514uni1515uni1516uni1517uni1518uni1519uni151Auni151Buni151Cuni151Duni151Euni151Funi1520uni1521uni1522uni1523uni1524uni1525uni1526uni1527uni1528uni1529uni152Auni152Buni152Cuni152Duni152Euni152Funi1530uni1531uni1532uni1533uni1534uni1535uni1536uni1537uni1538uni1539uni153Auni153Buni153Cuni153Duni153Euni1540uni1541uni1542uni1543uni1544uni1545uni1546uni1547uni1548uni1549uni154Auni154Buni154Cuni154Duni154Euni154Funi1550uni1552uni1553uni1554uni1555uni1556uni1557uni1558uni1559uni155Auni155Buni155Cuni155Duni155Euni155Funi1560uni1561uni1562uni1563uni1564uni1565uni1566uni1567uni1568uni1569uni156Auni1574uni1575uni1576uni1577uni1578uni1579uni157Auni157Buni157Cuni157Duni157Euni157Funi1580uni1581uni1582uni1583uni1584uni1585uni158Auni158Buni158Cuni158Duni158Euni158Funi1590uni1591uni1592uni1593uni1594uni1595uni1596uni15A0uni15A1uni15A2uni15A3uni15A4uni15A5uni15A6uni15A7uni15A8uni15A9uni15AAuni15ABuni15ACuni15ADuni15AEuni15AFuni15DEuni15E1uni1646uni1647uni166Euni166Funi1670uni1671uni1672uni1673uni1674uni1675uni1676uni1680uni1681uni1682uni1683uni1684uni1685uni1686uni1687uni1688uni1689uni168Auni168Buni168Cuni168Duni168Euni168Funi1690uni1691uni1692uni1693uni1694uni1695uni1696uni1697uni1698uni1699uni169Auni169Buni169Cuni1D00uni1D01uni1D02uni1D03uni1D04uni1D05uni1D06uni1D07uni1D08uni1D09uni1D0Auni1D0Buni1D0Cuni1D0Duni1D0Euni1D0Funi1D10uni1D11uni1D12uni1D13uni1D14uni1D16uni1D17uni1D18uni1D19uni1D1Auni1D1Buni1D1Cuni1D1Duni1D1Euni1D1Funi1D20uni1D21uni1D22uni1D23uni1D26uni1D27uni1D28uni1D29uni1D2Auni1D2Buni1D2Cuni1D2Duni1D2Euni1D30uni1D31uni1D32uni1D33uni1D34uni1D35uni1D36uni1D37uni1D38uni1D39uni1D3Auni1D3Buni1D3Cuni1D3Duni1D3Euni1D3Funi1D40uni1D41uni1D42uni1D43uni1D44uni1D45uni1D46uni1D47uni1D48uni1D49uni1D4Auni1D4Buni1D4Cuni1D4Duni1D4Euni1D4Funi1D50uni1D51uni1D52uni1D53uni1D54uni1D55uni1D56uni1D57uni1D58uni1D59uni1D5Auni1D5Buni1D5Duni1D5Euni1D5Funi1D60uni1D61uni1D62uni1D63uni1D64uni1D65uni1D66uni1D67uni1D68uni1D69uni1D6Auni1D77uni1D78uni1D7Buni1D85uni1D9Buni1D9Cuni1D9Duni1D9Euni1D9Funi1DA0uni1DA1uni1DA2uni1DA3uni1DA4uni1DA5uni1DA6uni1DA7uni1DA8uni1DA9uni1DAAuni1DABuni1DACuni1DADuni1DAEuni1DAFuni1DB0uni1DB1uni1DB2uni1DB3uni1DB4uni1DB5uni1DB6uni1DB7uni1DB8uni1DB9uni1DBAuni1DBBuni1DBCuni1DBDuni1DBEuni1DBFuni1DC4uni1DC5uni1DC6uni1DC7uni1DC8uni1DC9uni1E00uni1E01uni1E02uni1E03uni1E04uni1E05uni1E06uni1E07uni1E08uni1E09uni1E0Auni1E0Buni1E0Cuni1E0Duni1E0Euni1E0Funi1E10uni1E11uni1E12uni1E13uni1E14uni1E15uni1E16uni1E17uni1E18uni1E19uni1E1Auni1E1Buni1E1Cuni1E1Duni1E1Euni1E1Funi1E20uni1E21uni1E22uni1E23uni1E24uni1E25uni1E26uni1E27uni1E28uni1E29uni1E2Auni1E2Buni1E2Cuni1E2Duni1E2Euni1E2Funi1E30uni1E31uni1E32uni1E33uni1E34uni1E35uni1E36uni1E37uni1E38uni1E39uni1E3Auni1E3Buni1E3Cuni1E3Duni1E3Euni1E3Funi1E40uni1E41uni1E42uni1E43uni1E44uni1E45uni1E46uni1E47uni1E48uni1E49uni1E4Auni1E4Buni1E4Cuni1E4Duni1E4Euni1E4Funi1E50uni1E51uni1E52uni1E53uni1E54uni1E55uni1E56uni1E57uni1E58uni1E59uni1E5Auni1E5Buni1E5Cuni1E5Duni1E5Euni1E5Funi1E60uni1E61uni1E62uni1E63uni1E64uni1E65uni1E66uni1E67uni1E68uni1E69uni1E6Auni1E6Buni1E6Cuni1E6Duni1E6Euni1E6Funi1E70uni1E71uni1E72uni1E73uni1E74uni1E75uni1E76uni1E77uni1E78uni1E79uni1E7Auni1E7Buni1E7Cuni1E7Duni1E7Euni1E7FWgravewgraveWacutewacute Wdieresis wdieresisuni1E86uni1E87uni1E88uni1E89uni1E8Auni1E8Buni1E8Cuni1E8Duni1E8Euni1E8Funi1E90uni1E91uni1E92uni1E93uni1E94uni1E95uni1E96uni1E97uni1E98uni1E99uni1E9Auni1E9Buni1E9Euni1E9Funi1EA0uni1EA1uni1EA2uni1EA3uni1EA4uni1EA5uni1EA6uni1EA7uni1EA8uni1EA9uni1EAAuni1EABuni1EACuni1EADuni1EAEuni1EAFuni1EB0uni1EB1uni1EB2uni1EB3uni1EB4uni1EB5uni1EB6uni1EB7uni1EB8uni1EB9uni1EBAuni1EBBuni1EBCuni1EBDuni1EBEuni1EBFuni1EC0uni1EC1uni1EC2uni1EC3uni1EC4uni1EC5uni1EC6uni1EC7uni1EC8uni1EC9uni1ECAuni1ECBuni1ECCuni1ECDuni1ECEuni1ECFuni1ED0uni1ED1uni1ED2uni1ED3uni1ED4uni1ED5uni1ED6uni1ED7uni1ED8uni1ED9uni1EDAuni1EDBuni1EDCuni1EDDuni1EDEuni1EDFuni1EE0uni1EE1uni1EE2uni1EE3uni1EE4uni1EE5uni1EE6uni1EE7uni1EE8uni1EE9uni1EEAuni1EEBuni1EECuni1EEDuni1EEEuni1EEFuni1EF0uni1EF1Ygraveygraveuni1EF4uni1EF5uni1EF6uni1EF7uni1EF8uni1EF9uni1F00uni1F01uni1F02uni1F03uni1F04uni1F05uni1F06uni1F07uni1F08uni1F09uni1F0Auni1F0Buni1F0Cuni1F0Duni1F0Euni1F0Funi1F10uni1F11uni1F12uni1F13uni1F14uni1F15uni1F18uni1F19uni1F1Auni1F1Buni1F1Cuni1F1Duni1F20uni1F21uni1F22uni1F23uni1F24uni1F25uni1F26uni1F27uni1F28uni1F29uni1F2Auni1F2Buni1F2Cuni1F2Duni1F2Euni1F2Funi1F30uni1F31uni1F32uni1F33uni1F34uni1F35uni1F36uni1F37uni1F38uni1F39uni1F3Auni1F3Buni1F3Cuni1F3Duni1F3Euni1F3Funi1F40uni1F41uni1F42uni1F43uni1F44uni1F45uni1F48uni1F49uni1F4Auni1F4Buni1F4Cuni1F4Duni1F50uni1F51uni1F52uni1F53uni1F54uni1F55uni1F56uni1F57uni1F59uni1F5Buni1F5Duni1F5Funi1F60uni1F61uni1F62uni1F63uni1F64uni1F65uni1F66uni1F67uni1F68uni1F69uni1F6Auni1F6Buni1F6Cuni1F6Duni1F6Euni1F6Funi1F70uni1F71uni1F72uni1F73uni1F74uni1F75uni1F76uni1F77uni1F78uni1F79uni1F7Auni1F7Buni1F7Cuni1F7Duni1F80uni1F81uni1F82uni1F83uni1F84uni1F85uni1F86uni1F87uni1F88uni1F89uni1F8Auni1F8Buni1F8Cuni1F8Duni1F8Euni1F8Funi1F90uni1F91uni1F92uni1F93uni1F94uni1F95uni1F96uni1F97uni1F98uni1F99uni1F9Auni1F9Buni1F9Cuni1F9Duni1F9Euni1F9Funi1FA0uni1FA1uni1FA2uni1FA3uni1FA4uni1FA5uni1FA6uni1FA7uni1FA8uni1FA9uni1FAAuni1FABuni1FACuni1FADuni1FAEuni1FAFuni1FB0uni1FB1uni1FB2uni1FB3uni1FB4uni1FB6uni1FB7uni1FB8uni1FB9uni1FBAuni1FBBuni1FBCuni1FBDuni1FBEuni1FBFuni1FC0uni1FC1uni1FC2uni1FC3uni1FC4uni1FC6uni1FC7uni1FC8uni1FC9uni1FCAuni1FCBuni1FCCuni1FCDuni1FCEuni1FCFuni1FD0uni1FD1uni1FD2uni1FD3uni1FD6uni1FD7uni1FD8uni1FD9uni1FDAuni1FDBuni1FDDuni1FDEuni1FDFuni1FE0uni1FE1uni1FE2uni1FE3uni1FE4uni1FE5uni1FE6uni1FE7uni1FE8uni1FE9uni1FEAuni1FEBuni1FECuni1FEDuni1FEEuni1FEFuni1FF2uni1FF3uni1FF4uni1FF6uni1FF7uni1FF8uni1FF9uni1FFAuni1FFBuni1FFCuni1FFDuni1FFEuni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni200Buni200Cuni200Duni200Euni200Funi2010uni2011 figuredashuni2015uni2016 underscoredbl quotereverseduni201Funi2023onedotenleadertwodotenleaderuni2027uni202Auni202Buni202Cuni202Duni202Euni202Funi2031minuteseconduni2034uni2035uni2036uni2037uni2038uni203B exclamdbluni203Duni203Euni203Funi2040uni2041uni2042uni2043uni2045uni2046uni2047uni2048uni2049uni204Auni204Buni204Cuni204Duni204Euni204Funi2050uni2051uni2052uni2053uni2054uni2055uni2056uni2057uni2058uni2059uni205Auni205Buni205Cuni205Duni205Euni205Funi2060uni2061uni2062uni2063uni2064uni206Auni206Buni206Cuni206Duni206Euni206Funi2070uni2071uni2074uni2075uni2076uni2077uni2078uni2079uni207Auni207Buni207Cuni207Duni207Euni207Funi2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089uni208Auni208Buni208Cuni208Duni208Euni2090uni2091uni2092uni2093uni2094uni20A0 colonmonetaryuni20A2lirauni20A5uni20A6pesetauni20A8uni20A9uni20AAdongEurouni20ADuni20AEuni20AFuni20B0uni20B1uni20B2uni20B3uni20B4uni20B5uni20D0uni20D1uni20D6uni20D7uni20DBuni20DCuni20E1uni2100uni2101uni2102uni2103uni2104uni2105uni2106uni2107uni2108uni2109uni210Buni210Cuni210Duni210Euni210Funi2110Ifrakturuni2112uni2113uni2114uni2115uni2116uni2117 weierstrassuni2119uni211Auni211BRfrakturuni211D prescriptionuni211Funi2120uni2121uni2123uni2124uni2125uni2126uni2127uni2128uni2129uni212Auni212Buni212Cuni212D estimateduni212Funi2130uni2131uni2132uni2133uni2134alephuni2136uni2137uni2138uni2139uni213Auni213Buni213Cuni213Duni213Euni213Funi2140uni2141uni2142uni2143uni2144uni2145uni2146uni2147uni2148uni2149uni214Buni214Eonethird twothirdsuni2155uni2156uni2157uni2158uni2159uni215A oneeighth threeeighths fiveeighths seveneighthsuni215Funi2160uni2161uni2162uni2163uni2164uni2165uni2166uni2167uni2168uni2169uni216Auni216Buni216Cuni216Duni216Euni216Funi2170uni2171uni2172uni2173uni2174uni2175uni2176uni2177uni2178uni2179uni217Auni217Buni217Cuni217Duni217Euni217Funi2180uni2181uni2182uni2183uni2184 arrowleftarrowup arrowright arrowdown arrowboth arrowupdnuni2196uni2197uni2198uni2199uni219Auni219Buni219Cuni219Duni219Euni219Funi21A0uni21A1uni21A2uni21A3uni21A4uni21A5uni21A6uni21A7 arrowupdnbseuni21A9uni21AAuni21ABuni21ACuni21ADuni21AEuni21AFuni21B0uni21B1uni21B2uni21B3uni21B4carriagereturnuni21B6uni21B7uni21B8uni21B9uni21BAuni21BBuni21BCuni21BDuni21BEuni21BFuni21C0uni21C1uni21C2uni21C3uni21C4uni21C5uni21C6uni21C7uni21C8uni21C9uni21CAuni21CBuni21CCuni21CDuni21CEuni21CF arrowdblleft arrowdblup arrowdblright arrowdbldown arrowdblbothuni21D5uni21D6uni21D7uni21D8uni21D9uni21DAuni21DBuni21DCuni21DDuni21DEuni21DFuni21E0uni21E1uni21E2uni21E3uni21E4uni21E5uni21E6uni21E7uni21E8uni21E9uni21EAuni21EBuni21ECuni21EDuni21EEuni21EFuni21F0uni21F1uni21F2uni21F3uni21F4uni21F5uni21F6uni21F7uni21F8uni21F9uni21FAuni21FBuni21FCuni21FDuni21FEuni21FF universaluni2201 existentialuni2204emptysetgradientelement notelementuni220Asuchthatuni220Cuni220Duni220Euni2210uni2213uni2214uni2215uni2216 asteriskmathuni2218uni2219uni221Buni221C proportional orthogonalangleuni2221uni2222uni2223uni2224uni2225uni2226 logicaland logicalor intersectionunionuni222Cuni222Duni222Euni222Funi2230uni2231uni2232uni2233 thereforeuni2235uni2236uni2237uni2238uni2239uni223Auni223Bsimilaruni223Duni223Euni223Funi2240uni2241uni2242uni2243uni2244 congruentuni2246uni2247uni2249uni224Auni224Buni224Cuni224Duni224Euni224Funi2250uni2251uni2252uni2253uni2254uni2255uni2256uni2257uni2258uni2259uni225Auni225Buni225Cuni225Duni225Euni225F equivalenceuni2262uni2263uni2266uni2267uni2268uni2269uni226Auni226Buni226Cuni226Duni226Euni226Funi2270uni2271uni2272uni2273uni2274uni2275uni2276uni2277uni2278uni2279uni227Auni227Buni227Cuni227Duni227Euni227Funi2280uni2281 propersubsetpropersuperset notsubsetuni2285 reflexsubsetreflexsupersetuni2288uni2289uni228Auni228Buni228Cuni228Duni228Euni228Funi2290uni2291uni2292uni2293uni2294 circleplusuni2296circlemultiplyuni2298uni2299uni229Auni229Buni229Cuni229Duni229Euni229Funi22A0uni22A1uni22A2uni22A3uni22A4 perpendicularuni22A6uni22A7uni22A8uni22A9uni22AAuni22ABuni22ACuni22ADuni22AEuni22AFuni22B0uni22B1uni22B2uni22B3uni22B4uni22B5uni22B6uni22B7uni22B8uni22B9uni22BAuni22BBuni22BCuni22BDuni22BEuni22BFuni22C0uni22C1uni22C2uni22C3uni22C4dotmathuni22C6uni22C7uni22C8uni22C9uni22CAuni22CBuni22CCuni22CDuni22CEuni22CFuni22D0uni22D1uni22D2uni22D3uni22D4uni22D5uni22D6uni22D7uni22D8uni22D9uni22DAuni22DBuni22DCuni22DDuni22DEuni22DFuni22E0uni22E1uni22E2uni22E3uni22E4uni22E5uni22E6uni22E7uni22E8uni22E9uni22EAuni22EBuni22ECuni22EDuni22EEuni22EFuni22F0uni22F1uni22F2uni22F3uni22F4uni22F5uni22F6uni22F7uni22F8uni22F9uni22FAuni22FBuni22FCuni22FDuni22FEuni22FFuni2300uni2301houseuni2303uni2304uni2305uni2306uni2307uni2308uni2309uni230Auni230Buni230Cuni230Duni230Euni230F revlogicalnotuni2311uni2318uni2319uni231Cuni231Duni231Euni231F integraltp integralbtuni2324uni2325uni2326uni2327uni2328uni232Buni232Cuni2373uni2374uni2375uni237Auni237Duni2387uni2394uni239Buni239Cuni239Duni239Euni239Funi23A0uni23A1uni23A2uni23A3uni23A4uni23A5uni23A6uni23A7uni23A8uni23A9uni23AAuni23ABuni23ACuni23ADuni23AEuni23CEuni23CFuni23E3uni23E5uni2422uni2423uni2460uni2461uni2462uni2463uni2464uni2465uni2466uni2467uni2468uni2469SF100000uni2501SF110000uni2503uni2504uni2505uni2506uni2507uni2508uni2509uni250Auni250BSF010000uni250Duni250Euni250FSF030000uni2511uni2512uni2513SF020000uni2515uni2516uni2517SF040000uni2519uni251Auni251BSF080000uni251Duni251Euni251Funi2520uni2521uni2522uni2523SF090000uni2525uni2526uni2527uni2528uni2529uni252Auni252BSF060000uni252Duni252Euni252Funi2530uni2531uni2532uni2533SF070000uni2535uni2536uni2537uni2538uni2539uni253Auni253BSF050000uni253Duni253Euni253Funi2540uni2541uni2542uni2543uni2544uni2545uni2546uni2547uni2548uni2549uni254Auni254Buni254Cuni254Duni254Euni254FSF430000SF240000SF510000SF520000SF390000SF220000SF210000SF250000SF500000SF490000SF380000SF280000SF270000SF260000SF360000SF370000SF420000SF190000SF200000SF230000SF470000SF480000SF410000SF450000SF460000SF400000SF540000SF530000SF440000uni256Duni256Euni256Funi2570uni2571uni2572uni2573uni2574uni2575uni2576uni2577uni2578uni2579uni257Auni257Buni257Cuni257Duni257Euni257Fupblockuni2581uni2582uni2583dnblockuni2585uni2586uni2587blockuni2589uni258Auni258Blfblockuni258Duni258Euni258Frtblockltshadeshadedkshadeuni2594uni2595uni2596uni2597uni2598uni2599uni259Auni259Buni259Cuni259Duni259Euni259F filledboxH22073uni25A2uni25A3uni25A4uni25A5uni25A6uni25A7uni25A8uni25A9H18543H18551 filledrectuni25ADuni25AEuni25AFuni25B0uni25B1triagupuni25B3uni25B4uni25B5uni25B6uni25B7uni25B8uni25B9triagrtuni25BBtriagdnuni25BDuni25BEuni25BFuni25C0uni25C1uni25C2uni25C3triaglfuni25C5uni25C6uni25C7uni25C8uni25C9circleuni25CCuni25CDuni25CEH18533uni25D0uni25D1uni25D2uni25D3uni25D4uni25D5uni25D6uni25D7 invbullet invcircleuni25DAuni25DBuni25DCuni25DDuni25DEuni25DFuni25E0uni25E1uni25E2uni25E3uni25E4uni25E5 openbulletuni25E7uni25E8uni25E9uni25EAuni25EBuni25ECuni25EDuni25EEuni25EFuni25F0uni25F1uni25F2uni25F3uni25F4uni25F5uni25F6uni25F7uni25F8uni25F9uni25FAuni25FBuni25FCuni25FDuni25FEuni25FFuni2600uni2601uni2602uni2603uni2604uni2605uni2606uni2607uni2608uni2609uni260Auni260Buni260Cuni260Duni260Euni260Funi2610uni2611uni2612uni2613uni2614uni2615uni2616uni2617uni2618uni2619uni261Auni261Buni261Cuni261Duni261Euni261Funi2620uni2621uni2622uni2623uni2624uni2625uni2626uni2627uni2628uni2629uni262Auni262Buni262Cuni262Duni262Euni262Funi2630uni2631uni2632uni2633uni2634uni2635uni2636uni2637uni2638uni2639 smileface invsmilefacesununi263Duni263Euni263Ffemaleuni2641maleuni2643uni2644uni2645uni2646uni2647uni2648uni2649uni264Auni264Buni264Cuni264Duni264Euni264Funi2650uni2651uni2652uni2653uni2654uni2655uni2656uni2657uni2658uni2659uni265Auni265Buni265Cuni265Duni265Euni265Fspadeuni2661uni2662clubuni2664heartdiamonduni2667uni2668uni2669 musicalnotemusicalnotedbluni266Cuni266Duni266Euni266Funi2670uni2671uni2672uni2673uni2674uni2675uni2676uni2677uni2678uni2679uni267Auni267Buni267Cuni267Duni267Euni267Funi2680uni2681uni2682uni2683uni2684uni2685uni2686uni2687uni2688uni2689uni268Auni268Buni268Cuni268Duni268Euni268Funi2690uni2691uni2692uni2693uni2694uni2695uni2696uni2697uni2698uni2699uni269Auni269Buni269Cuni26A0uni26A1uni26A2uni26A3uni26A4uni26A5uni26A6uni26A7uni26A8uni26A9uni26AAuni26ABuni26ACuni26ADuni26AEuni26AFuni26B0uni26B1uni26B2uni26B3uni26B4uni26B5uni26B6uni26B7uni26B8uni2701uni2702uni2703uni2704uni2706uni2707uni2708uni2709uni270Cuni270Duni270Euni270Funi2710uni2711uni2712uni2713uni2714uni2715uni2716uni2717uni2718uni2719uni271Auni271Buni271Cuni271Duni271Euni271Funi2720uni2721uni2722uni2723uni2724uni2725uni2726uni2727uni2729uni272Auni272Buni272Cuni272Duni272Euni272Funi2730uni2731uni2732uni2733uni2734uni2735uni2736uni2737uni2738uni2739uni273Auni273Buni273Cuni273Duni273Euni273Funi2740uni2741uni2742uni2743uni2744uni2745uni2746uni2747uni2748uni2749uni274Auni274Buni274Duni274Funi2750uni2751uni2752uni2756uni2758uni2759uni275Auni275Buni275Cuni275Duni275Euni2761uni2762uni2763uni2764uni2765uni2766uni2767uni2768uni2769uni276Auni276Buni276Cuni276Duni276Euni276Funi2770uni2771uni2772uni2773uni2774uni2775uni2776uni2777uni2778uni2779uni277Auni277Buni277Cuni277Duni277Euni277Funi2780uni2781uni2782uni2783uni2784uni2785uni2786uni2787uni2788uni2789uni278Auni278Buni278Cuni278Duni278Euni278Funi2790uni2791uni2792uni2793uni2794uni2798uni2799uni279Auni279Buni279Cuni279Duni279Euni279Funi27A0uni27A1uni27A2uni27A3uni27A4uni27A5uni27A6uni27A7uni27A8uni27A9uni27AAuni27ABuni27ACuni27ADuni27AEuni27AFuni27B1uni27B2uni27B3uni27B4uni27B5uni27B6uni27B7uni27B8uni27B9uni27BAuni27BBuni27BCuni27BDuni27BEuni27C5uni27C6uni27E0uni27E6uni27E7uni27E8uni27E9uni27EAuni27EBuni27F0uni27F1uni27F2uni27F3uni27F4uni27F5uni27F6uni27F7uni27F8uni27F9uni27FAuni27FBuni27FCuni27FDuni27FEuni27FFuni2800uni2801uni2802uni2803uni2804uni2805uni2806uni2807uni2808uni2809uni280Auni280Buni280Cuni280Duni280Euni280Funi2810uni2811uni2812uni2813uni2814uni2815uni2816uni2817uni2818uni2819uni281Auni281Buni281Cuni281Duni281Euni281Funi2820uni2821uni2822uni2823uni2824uni2825uni2826uni2827uni2828uni2829uni282Auni282Buni282Cuni282Duni282Euni282Funi2830uni2831uni2832uni2833uni2834uni2835uni2836uni2837uni2838uni2839uni283Auni283Buni283Cuni283Duni283Euni283Funi2840uni2841uni2842uni2843uni2844uni2845uni2846uni2847uni2848uni2849uni284Auni284Buni284Cuni284Duni284Euni284Funi2850uni2851uni2852uni2853uni2854uni2855uni2856uni2857uni2858uni2859uni285Auni285Buni285Cuni285Duni285Euni285Funi2860uni2861uni2862uni2863uni2864uni2865uni2866uni2867uni2868uni2869uni286Auni286Buni286Cuni286Duni286Euni286Funi2870uni2871uni2872uni2873uni2874uni2875uni2876uni2877uni2878uni2879uni287Auni287Buni287Cuni287Duni287Euni287Funi2880uni2881uni2882uni2883uni2884uni2885uni2886uni2887uni2888uni2889uni288Auni288Buni288Cuni288Duni288Euni288Funi2890uni2891uni2892uni2893uni2894uni2895uni2896uni2897uni2898uni2899uni289Auni289Buni289Cuni289Duni289Euni289Funi28A0uni28A1uni28A2uni28A3uni28A4uni28A5uni28A6uni28A7uni28A8uni28A9uni28AAuni28ABuni28ACuni28ADuni28AEuni28AFuni28B0uni28B1uni28B2uni28B3uni28B4uni28B5uni28B6uni28B7uni28B8uni28B9uni28BAuni28BBuni28BCuni28BDuni28BEuni28BFuni28C0uni28C1uni28C2uni28C3uni28C4uni28C5uni28C6uni28C7uni28C8uni28C9uni28CAuni28CBuni28CCuni28CDuni28CEuni28CFuni28D0uni28D1uni28D2uni28D3uni28D4uni28D5uni28D6uni28D7uni28D8uni28D9uni28DAuni28DBuni28DCuni28DDuni28DEuni28DFuni28E0uni28E1uni28E2uni28E3uni28E4uni28E5uni28E6uni28E7uni28E8uni28E9uni28EAuni28EBuni28ECuni28EDuni28EEuni28EFuni28F0uni28F1uni28F2uni28F3uni28F4uni28F5uni28F6uni28F7uni28F8uni28F9uni28FAuni28FBuni28FCuni28FDuni28FEuni28FFuni2906uni2907uni290Auni290Buni2940uni2941uni2983uni2984uni29CEuni29CFuni29D0uni29D1uni29D2uni29D3uni29D4uni29D5uni29EBuni29FAuni29FBuni2A00uni2A01uni2A02uni2A0Cuni2A0Duni2A0Euni2A0Funi2A10uni2A11uni2A12uni2A13uni2A14uni2A15uni2A16uni2A17uni2A18uni2A19uni2A1Auni2A1Buni2A1Cuni2A2Funi2A7Duni2A7Euni2A7Funi2A80uni2A81uni2A82uni2A83uni2A84uni2A85uni2A86uni2A87uni2A88uni2A89uni2A8Auni2A8Buni2A8Cuni2A8Duni2A8Euni2A8Funi2A90uni2A91uni2A92uni2A93uni2A94uni2A95uni2A96uni2A97uni2A98uni2A99uni2A9Auni2A9Buni2A9Cuni2A9Duni2A9Euni2A9Funi2AA0uni2AAEuni2AAFuni2AB0uni2AB1uni2AB2uni2AB3uni2AB4uni2AB5uni2AB6uni2AB7uni2AB8uni2AB9uni2ABAuni2AF9uni2AFAuni2B00uni2B01uni2B02uni2B03uni2B04uni2B05uni2B06uni2B07uni2B08uni2B09uni2B0Auni2B0Buni2B0Cuni2B0Duni2B0Euni2B0Funi2B10uni2B11uni2B12uni2B13uni2B14uni2B15uni2B16uni2B17uni2B18uni2B19uni2B1Auni2B1Funi2B20uni2B21uni2B22uni2B23uni2B24uni2B53uni2B54uni2C60uni2C61uni2C62uni2C63uni2C64uni2C65uni2C66uni2C67uni2C68uni2C69uni2C6Auni2C6Buni2C6Cuni2C6Duni2C6Euni2C6Funi2C71uni2C72uni2C73uni2C74uni2C75uni2C76uni2C77uni2C79uni2C7Auni2C7Buni2C7Cuni2C7Duni2D30uni2D31uni2D32uni2D33uni2D34uni2D35uni2D36uni2D37uni2D38uni2D39uni2D3Auni2D3Buni2D3Cuni2D3Duni2D3Euni2D3Funi2D40uni2D41uni2D42uni2D43uni2D44uni2D45uni2D46uni2D47uni2D48uni2D49uni2D4Auni2D4Buni2D4Cuni2D4Duni2D4Euni2D4Funi2D50uni2D51uni2D52uni2D53uni2D54uni2D55uni2D56uni2D57uni2D58uni2D59uni2D5Auni2D5Buni2D5Cuni2D5Duni2D5Euni2D5Funi2D60uni2D61uni2D62uni2D63uni2D64uni2D65uni2D6Funi2E18uni2E22uni2E23uni2E24uni2E25uni2E2Euni4DC0uni4DC1uni4DC2uni4DC3uni4DC4uni4DC5uni4DC6uni4DC7uni4DC8uni4DC9uni4DCAuni4DCBuni4DCCuni4DCDuni4DCEuni4DCFuni4DD0uni4DD1uni4DD2uni4DD3uni4DD4uni4DD5uni4DD6uni4DD7uni4DD8uni4DD9uni4DDAuni4DDBuni4DDCuni4DDDuni4DDEuni4DDFuni4DE0uni4DE1uni4DE2uni4DE3uni4DE4uni4DE5uni4DE6uni4DE7uni4DE8uni4DE9uni4DEAuni4DEBuni4DECuni4DEDuni4DEEuni4DEFuni4DF0uni4DF1uni4DF2uni4DF3uni4DF4uni4DF5uni4DF6uni4DF7uni4DF8uni4DF9uni4DFAuni4DFBuni4DFCuni4DFDuni4DFEuni4DFFuniA644uniA645uniA646uniA647uniA64CuniA64DuniA650uniA651uniA654uniA655uniA656uniA657uniA662uniA663uniA664uniA665uniA666uniA667uniA668uniA669uniA66AuniA66BuniA66CuniA66DuniA66EuniA68AuniA68BuniA68CuniA68DuniA694uniA695uniA708uniA709uniA70AuniA70BuniA70CuniA70DuniA70EuniA70FuniA710uniA711uniA712uniA713uniA714uniA715uniA716uniA71BuniA71CuniA71DuniA71EuniA71FuniA726uniA727uniA728uniA729uniA72AuniA72BuniA730uniA731uniA732uniA733uniA734uniA735uniA736uniA737uniA738uniA739uniA73AuniA73BuniA73CuniA73DuniA73EuniA73FuniA746uniA747uniA748uniA749uniA74AuniA74BuniA74EuniA74FuniA780uniA781uniA782uniA783uniA789uniA78AuniA78BuniA78CuniA7FBuniA7FCuniA7FDuniA7FEuniA7FFuniF000uniF001uniF6C5uniFB00uniFB03uniFB04uniFB05uniFB06uniFB13uniFB14uniFB15uniFB16uniFB17uniFB1DuniFB1EuniFB1FuniFB20uniFB21uniFB22uniFB23uniFB24uniFB25uniFB26uniFB27uniFB28uniFB29uniFB2AuniFB2BuniFB2CuniFB2DuniFB2EuniFB2FuniFB30uniFB31uniFB32uniFB33uniFB34uniFB35uniFB36uniFB38uniFB39uniFB3AuniFB3BuniFB3CuniFB3EuniFB40uniFB41uniFB43uniFB44uniFB46uniFB47uniFB48uniFB49uniFB4AuniFB4BuniFB4CuniFB4DuniFB4EuniFB4FuniFB52uniFB53uniFB54uniFB55uniFB56uniFB57uniFB58uniFB59uniFB5AuniFB5BuniFB5CuniFB5DuniFB5EuniFB5FuniFB60uniFB61uniFB62uniFB63uniFB64uniFB65uniFB66uniFB67uniFB68uniFB69uniFB6AuniFB6BuniFB6CuniFB6DuniFB6EuniFB6FuniFB70uniFB71uniFB72uniFB73uniFB74uniFB75uniFB76uniFB77uniFB78uniFB79uniFB7AuniFB7BuniFB7CuniFB7DuniFB7EuniFB7FuniFB80uniFB81uniFB8AuniFB8BuniFB8CuniFB8DuniFB8EuniFB8FuniFB90uniFB91uniFB92uniFB93uniFB94uniFB95uniFB9EuniFB9FuniFBD9uniFBDAuniFBE8uniFBE9uniFBFCuniFBFDuniFBFEuniFBFFuniFE00uniFE01uniFE02uniFE03uniFE04uniFE05uniFE06uniFE07uniFE08uniFE09uniFE0AuniFE0BuniFE0CuniFE0DuniFE0EuniFE0FuniFE20uniFE21uniFE22uniFE23uniFE70uniFE71uniFE72uniFE73uniFE74uniFE76uniFE77uniFE78uniFE79uniFE7AuniFE7BuniFE7CuniFE7DuniFE7EuniFE7FuniFE80uniFE81uniFE82uniFE83uniFE84uniFE85uniFE86uniFE87uniFE88uniFE89uniFE8AuniFE8BuniFE8CuniFE8DuniFE8EuniFE8FuniFE90uniFE91uniFE92uniFE93uniFE94uniFE95uniFE96uniFE97uniFE98uniFE99uniFE9AuniFE9BuniFE9CuniFE9DuniFE9EuniFE9FuniFEA0uniFEA1uniFEA2uniFEA3uniFEA4uniFEA5uniFEA6uniFEA7uniFEA8uniFEA9uniFEAAuniFEABuniFEACuniFEADuniFEAEuniFEAFuniFEB0uniFEB1uniFEB2uniFEB3uniFEB4uniFEB5uniFEB6uniFEB7uniFEB8uniFEB9uniFEBAuniFEBBuniFEBCuniFEBDuniFEBEuniFEBFuniFEC0uniFEC1uniFEC2uniFEC3uniFEC4uniFEC5uniFEC6uniFEC7uniFEC8uniFEC9uniFECAuniFECBuniFECCuniFECDuniFECEuniFECFuniFED0uniFED1uniFED2uniFED3uniFED4uniFED5uniFED6uniFED7uniFED8uniFED9uniFEDAuniFEDBuniFEDCuniFEDDuniFEDEuniFEDFuniFEE0uniFEE1uniFEE2uniFEE3uniFEE4uniFEE5uniFEE6uniFEE7uniFEE8uniFEE9uniFEEAuniFEEBuniFEECuniFEEDuniFEEEuniFEEFuniFEF0uniFEF1uniFEF2uniFEF3uniFEF4uniFEF5uniFEF6uniFEF7uniFEF8uniFEF9uniFEFAuniFEFBuniFEFCuniFEFFuniFFF9uniFFFAuniFFFBuniFFFCuniFFFDu1D300u1D301u1D302u1D303u1D304u1D305u1D306u1D307u1D308u1D309u1D30Au1D30Bu1D30Cu1D30Du1D30Eu1D30Fu1D310u1D311u1D312u1D313u1D314u1D315u1D316u1D317u1D318u1D319u1D31Au1D31Bu1D31Cu1D31Du1D31Eu1D31Fu1D320u1D321u1D322u1D323u1D324u1D325u1D326u1D327u1D328u1D329u1D32Au1D32Bu1D32Cu1D32Du1D32Eu1D32Fu1D330u1D331u1D332u1D333u1D334u1D335u1D336u1D337u1D338u1D339u1D33Au1D33Bu1D33Cu1D33Du1D33Eu1D33Fu1D340u1D341u1D342u1D343u1D344u1D345u1D346u1D347u1D348u1D349u1D34Au1D34Bu1D34Cu1D34Du1D34Eu1D34Fu1D350u1D351u1D352u1D353u1D354u1D355u1D356u1D538u1D539u1D53Bu1D53Cu1D53Du1D53Eu1D540u1D541u1D542u1D543u1D544u1D546u1D54Au1D54Bu1D54Cu1D54Du1D54Eu1D54Fu1D550u1D552u1D553u1D554u1D555u1D556u1D557u1D558u1D559u1D55Au1D55Bu1D55Cu1D55Du1D55Eu1D55Fu1D560u1D561u1D562u1D563u1D564u1D565u1D566u1D567u1D568u1D569u1D56Au1D56Bu1D5A0u1D5A1u1D5A2u1D5A3u1D5A4u1D5A5u1D5A6u1D5A7u1D5A8u1D5A9u1D5AAu1D5ABu1D5ACu1D5ADu1D5AEu1D5AFu1D5B0u1D5B1u1D5B2u1D5B3u1D5B4u1D5B5u1D5B6u1D5B7u1D5B8u1D5B9u1D5BAu1D5BBu1D5BCu1D5BDu1D5BEu1D5BFu1D5C0u1D5C1u1D5C2u1D5C3u1D5C4u1D5C5u1D5C6u1D5C7u1D5C8u1D5C9u1D5CAu1D5CBu1D5CCu1D5CDu1D5CEu1D5CFu1D5D0u1D5D1u1D5D2u1D5D3u1D7D8u1D7D9u1D7DAu1D7DBu1D7DCu1D7DDu1D7DEu1D7DFu1D7E0u1D7E1u1D7E2u1D7E3u1D7E4u1D7E5u1D7E6u1D7E7u1D7E8u1D7E9u1D7EAu1D7EB dlLtcaronDieresisAcuteTildeGrave CircumflexCaron uni0311.caseBreve Dotaccent Hungarumlaut Doubleacute arabic_dot arabic_2dots arabic_3dotsarabic_3dots_aarabic_2dots_a arabic_4dots uni066E.fina uni066E.init uni066E.medi uni06A1.fina uni06A1.init uni06A1.medi uni066F.fina uni066F.init uni066F.medi uni06BA.init uni06BA.medi arabic_ring uni067C.fina uni067C.init uni067C.medi uni067D.fina uni067D.init uni067D.medi uni0681.fina uni0681.init uni0681.medi uni0682.fina uni0682.init uni0682.medi uni0685.fina uni0685.init uni0685.medi uni06BF.fina uni06BF.init uni06BF.mediarabic_gaf_barEng.altuni0268.dotlessuni029D.dotless uni03080304 uni03040308 uni03070304 uni03080301 uni03080300 uni03040301 uni03040300 uni03030304 uni0308030C uni03030308 uni030C0307 uni03030301 uni03020301 uni03020300 uni03020303 uni03060303 uni03060301 uni03060300 uni03060309 uni03020309 uni03010307 brailledotJ.alt uni0695.finauniFEAE.fina.longstart uni06B5.fina uni06B5.init uni06B5.medi uni06CE.fina uni06CE.init uni06CE.medi uni0692.final.alt uni06D5.finauni0478.monographuni0479.monographiogonek.dotlessuni2148.dotlessuni2149.dotlessuni1E2D.dotlessuni1ECB.dotlessdcoI.alt arrow.base uni0651064B uni0651064C uni064B0651 uni0651064E uni0651064F uni064E0651 uni0654064E uni0654064F uni07CA.fina uni07CA.medi uni07CA.init uni07CB.fina uni07CB.medi uni07CB.init uni07CC.fina uni07CC.medi uni07CC.init uni07CD.fina uni07CD.medi uni07CD.init uni07CE.fina uni07CE.medi uni07CE.init uni07CF.fina uni07CF.medi uni07CF.init uni07D0.fina uni07D0.medi uni07D0.init uni07D1.fina uni07D1.medi uni07D1.init uni07D2.fina uni07D2.medi uni07D2.init uni07D3.fina uni07D3.medi uni07D3.init uni07D4.fina uni07D4.medi uni07D4.init uni07D5.fina uni07D5.medi uni07D5.init uni07D6.fina uni07D6.medi uni07D6.init uni07D7.fina uni07D7.medi uni07D7.init uni07D8.fina uni07D8.medi uni07D8.init uni07D9.fina uni07D9.medi uni07D9.init uni07DA.fina uni07DA.medi uni07DA.init uni07DB.fina uni07DB.medi uni07DB.init uni07DC.fina uni07DC.medi uni07DC.init uni07DD.fina uni07DD.medi uni07DD.init uni07DE.fina uni07DE.medi uni07DE.init uni07DF.fina uni07DF.medi uni07DF.init uni07E0.fina uni07E0.medi uni07E0.init uni07E1.fina uni07E1.medi uni07E1.init uni07E2.fina uni07E2.medi uni07E2.init uni07E3.fina uni07E3.medi uni07E3.init uni07E4.fina uni07E4.medi uni07E4.init uni07E5.fina uni07E5.medi uni07E5.init uni07E6.fina uni07E6.medi uni07E6.init uni07E7.fina uni07E7.medi uni07E7.init Ringabove uni2630.alt uni2631.alt uni2632.alt uni2633.alt uni2634.alt uni2635.alt uni2636.alt uni2637.alt uni047E.diacuni048A.brevelessuni048B.brevelessy.alt uni02E5.5 uni02E6.5 uni02E7.5 uni02E8.5 uni02E9.5 uni02E5.4 uni02E6.4 uni02E7.4 uni02E8.4 uni02E9.4 uni02E5.3 uni02E6.3 uni02E7.3 uni02E8.3 uni02E9.3 uni02E5.2 uni02E6.2 uni02E7.2 uni02E8.2 uni02E9.2 uni02E5.1 uni02E6.1 uni02E7.1 uni02E8.1 uni02E9.1stem@%2%%A:B2SAS//2ݖ}ٻ֊A}G}G͖2ƅ%]%]@@%d%d%A2dA  d   A(]%]@%..%A  %d%@~}}~}}|d{T{%zyxw v utsrqponl!kjBjSih}gBfedcba:`^ ][ZYX YX WW2VUTUBTSSRQJQP ONMNMLKJKJIJI IH GFEDC-CBAK@?>=>=<=<; <@; :987876765 65 43 21 21 0/ 0 / .- .- ,2+*%+d*)*%)('%(A'%&% &% $#"!! d d BBBdB-B}d       -d@--d++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++libphone-ui-shr-0.1+git20130901/data/Makefile.am000066400000000000000000000020401221067027500207210ustar00rootroot00000000000000SUBDIRS = idle_screen widgets MAINTAINERCLEANFILES = Makefile.in filesdir = $(datadir)/libphone-ui-shr/ files_DATA = default.edj \ call-start.png call-stop.png \ contact.png \ edit-undo.png \ ilist_1.png ilist_2.png ilist_item_shadow.png \ number-icon.png \ phone-openmoko-freerunner.png \ pl-all.png pl-in.png pl-missed.png pl-out.png EXTRA_DIST = \ default.edc \ call-management.edc \ keypad.edc \ phonelog.edc \ colors.edc \ dialer.edc \ messages.edc \ quick-settings.edc \ contacts.edc \ icons.edc \ notification.edc \ sim-manager.edc \ styles.edc \ DejaVuSans-Bold.ttf \ DejaVuSans.ttf \ call-start.png call-stop.png \ contact.png \ edit-undo.png \ ilist_1.png ilist_2.png ilist_item_shadow.png \ number-icon.png \ phone-openmoko-freerunner.png \ pl-all.png pl-in.png pl-missed.png pl-out.png clean-local: rm -f *.edj default.edj: default.edc call-management.edc keypad.edc phonelog.edc colors.edc dialer.edc messages.edc quick-settings.edc contacts.edc icons.edc notification.edc styles.edc @edje_cc@ default.edc libphone-ui-shr-0.1+git20130901/data/call-management.edc000066400000000000000000000111751221067027500224000ustar00rootroot00000000000000 group { name: "phoneui/call_management/incoming_call"; parts { part { name: "photo"; type: SWALLOW; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.2 0.0; offset: 0 5; } rel2 { relative: 0.8 0.35; offset: 0 0; } } } part { name: "name"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.0 0.35; offset: 0 5; } rel2 { relative: 1.0 0.5; } text { font: "redensek:style=bold"; size: 24; align: 0.5 0.5; } } } part { name: "number"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.0 0.5; offset: 0 5; } rel2 { relative: 1.0 0.65; offset: 0 0; } text { font: "redensek:style=bold"; size: 20; align: 0.5 0.0; } } } part { name: "button_accept"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 0.0 0.85; } rel2 { relative: 0.5 1.0; } } } part { name: "button_release"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 0.5 0.85; } rel2 { relative: 1.0 1.0; } } } } } /* phoneui/call_management/incoming_call */ /////////////////////////////////////////////////////////////////////////////// group { name: "phoneui/call_management/active_call"; parts { part { name: "photo"; type: SWALLOW; mouse_events: 0; description { state: "default" 0.0; rel1.relative: 0.3 0.0; rel1.offset: 0 5; rel2.relative: 0.7 0.3; } } part { name: "name"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1.relative: 0.2 0.3; rel1.offset: 0 5; rel2.relative: 0.8 0.35; text { font: "redensek:style=bold"; size: 24; align: 0.5 0.5; } } } part { name: "number"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1.relative: 0.2 0.35; rel1.offset: 0 5; rel2.relative: 0.8 0.4; text { font: "redensek:style=bold"; size: 20; align: 0.5 0.5; } } } //part { name: "hangup_toggle"; // type: SWALLOW; // mouse_events: 1; // description { // state: "default" 0.0; // align: 0.0 0.0; // rel1.relative: 0.1 0.25; // rel1.offset: 0 0; // rel2.relative: 0.3 0.70; // rel2.offset: 0 0; // } //} //part { name: "hangup_icon1"; // mouse_events: 0; // description { // state: "default" 0.0; // image.normal: "call-start.png"; // aspect: 1.0 1.0; // align: 0.5 0.0; // aspect_preference: HORIZONTAL; // max: 45 45; // rel1.to: "hangup_toggle"; // rel1.relative: 0.0 0.0; // rel1.offset: 0 -50; // } //} //part { name: "hangup_icon2"; // mouse_events: 0; // description { // state: "default" 0.0; // image.normal: "call-stop.png"; // aspect: 1.0 1.0; // align: 0.5 1.0; // max: 45 45; // rel1.to: "hangup_toggle"; // rel1.relative: 0.0 1.0; // rel1.offset: 0 5; // } //} part { name: "volume_slider"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; align: 0.5 1.0; rel1.relative: 0.2 0.5; rel2.relative: 0.8 0.57; } } part { name: "mic_slider"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; align: 0.5 1.0; rel1.relative: 0.2 0.57; rel2.relative: 0.8 0.64; } } part { name: "speaker_toggle"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; align: 1.0 0.5; rel1.relative: 0.1 0.64; rel2.relative: 0.9 0.72; } } part { name: "mute_toggle"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; align: 1.0 0.5; rel1.relative: 0.1 0.72; rel2.relative: 0.9 0.8; rel2.offset: 0 10; } } part { name: "keypad"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 0.0 0.2; } rel2 { relative: 1.0 0.84; } } } part { name: "button_release"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 0.0 0.85; } rel2 { relative: 0.5 1.0; } } } part { name: "button_dtmf"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 0.5 0.85; } rel2 { relative: 1.0 1.0; } } } } } /* phoneui/call_management/active_call */ libphone-ui-shr-0.1+git20130901/data/call-start.png000066400000000000000000000017201221067027500214450ustar00rootroot00000000000000PNG  IHDRĴl;bKGDtIME :Z{rIDAT8[hUggNf2$.jEknK5RPhወ>*F-ZAŧłQb[5]Ґ&miwͤ[ٹe7%0s}G"/hho1f9{VkSK`h𕝟(5S7n%Ǧ~)8I{;[">zѺ ۺnMh}0h胿>pǶCx'`?},\}"{p8[DskNF :JZJ-jIX G\Q7{O[3?Ϛ :Q+E(V};ia/GJKMu 8U !ruۼ`.=nSeY-ff˦iȑG"rJB&AʚWmY5 3[+`v Tbp2<ċڗ.^Eܰw0VqZ~Hmc%2- ,%9z9:qܜ`O` @,m6nZCZ=6+-"{ h\>`UlVOGc`dWpIENDB`libphone-ui-shr-0.1+git20130901/data/call-stop.png000066400000000000000000000013741221067027500213020ustar00rootroot00000000000000PNG  IHDRĴl;bKGDtIME : 4IDAT8MHaںh Za t %EǮ%A`"K[v}Q‹^RFf513;3eŤ>†6%:-=lC~4/NB -ںX"kMC- \f2r.qi!\QTu{pPmj ةLaP2!G"--&Mu0ni5<vS)*d*'`?ۀ(HqPM#};DX+ঘݡ@`jHԚ*p=|م6\8?G*ܑ` š >LOmTM>9J,v>_;k-׿Cȵ8bc~Φ/䘢Jґ +e*z?o}:{zt1T77 ø Gd<Ԙ _~t҅Xնn:M'|ɓ'z'Rjac1fM|<3tڕPo\g8q"#F !!a/}R;5a;&jWtX}]ڵk`9sxشiSSJ=`a7ba<'44gy_|p􊌌 &L/Đ+qb 01߰ED";<E58ggϞ7dĈ{T_GaxI6 u -rߧw.\Hǎ=HZ+~t(,00Вy#D1nVMFʕ+8|0۷gٲe shZPXac.1tGeڵ92-ZE1x`OH92 7,pӗ#F0p@ʾf͚E=8s!uRG0 $" ?t|`n(R/vMvظq!6 RAa\$í}+}sŌ3hٲqe 6$m`ŬJ\ʼn'8{,ɗINI&r2RΡPDDR&_Q&~Gw<+]t޽{3i$C,QJ8a$- Ə?HÆ #][K9sqt܁;P!G% +##:0}tCdLa/l~AAA|״nN_:͘5cz$/xm}})))4oޜE鮀FJ%e_2߸.v5ݻ{4 rz4.AS4|{ظgϞaÆlذN@U92 /o\  ѫn1l0ƭDž qJ˲-~pǔwd$֭kqJ 0 eqM"R ~:ubɶPu^6)l[P@O$*yz<ޮ]WǎӽRjAL7IDZ'ʖ-ɝ;|GN,ܻP/Fx ^k׮qƜ;(oNaI?HGK>ZnM{_B8reSD=tCLƙ7o[&55U Mn2}`\%| >\;+o/{Ɵ5?˩I]8sC %a-7FDӧiӦ̟?_kӗN.5W_vS0 uۋn{ 6lh2!JmOl2+݄i&ʗ~>%=fdxe=<8Һ TVtUJ=a~lW0x`9&\HSgڱ(S n\K'5 olݺps ^]n [_~*]6k֬v(:mkR0YH4/6lVr9:<=iV\aYښ0 eV"2 |n غu+"bhyS._MXd1?moӦ ~NR*քa7p>>&r"u. ,ZY''0 #{3?b@k\?֮4`u埚j'_@o ĵRj7&1 #1?m@O,ӭUִ_]'OΜ{K"xR)ed4"RWDF~7ui8|v&[hѢ]6Pv0I>$"Ed $&&ᶝI]Hgʔ)ݻ7xҥK{!*fsR)I Z&I)C|7Tܶ3ߺEm+Y$/2 ,^=zpt&"ycp0I^t'+8pm+GE 駟ĤIhڴӏY"X. eFg䤤ݿgu%wN䭕?)QQFuV^'拈#5D)1ܴD0yéUK&66XJ*Ell,%J (ﵚR$''sIN:ũS8y$[laլ^SNiPNVXoIQZc`xâ}>ٳ8pn*&9a>fM"0 Euִiӆ&M8m l߾9s0}t֯_O%,% Ȱ"=ԉPsu]M`` /_H۬nLdVJ Uj?E}:oFٵk'(R+2 L "e[3O<իWrJN\pG;TgLK.ѤIKaR!G1 Q?f⏎f?$Ls&oeu~atсjU82fXXs!..Nv"ё@ pY_ADZ[@,YBŊ KiXz`)돬㜸p9s # R*K'_W+\gEc3},.^!MpW<kԩSǵwORG<0 ǘ)9} ˗EQjUQ(~;g,;KiޞCs+Yϫ]Ϲs>v]j{Xƒ=ۍZbM4%?SRf03Dnk{~z[_=ϊ~)O4:ǭ?sӪU+ΝmRa&6 1~E$/;PD_xx8?wyGzWZsAߋh6J|8b>++*ɠ:X ,v;Ú cp9rʕ+sIn l{b0c$@ 0[6mj{>NWZz}ԌT_nsZtX4+[,޷v~ǜs8x`GA{{_NJǎڏVJ=h{R0_DLFM~lϻ`Ƒstp@0O~s)/-|.uw*[g2l0^"LGmѾ}{+. WJm=a/"5u7n̂ lMH奅/wdߪu\׏ܾed>o a}Xj0l0]YF[Aʖ-˗u}jckB0 Uw622͛7=4Sbk\??LrJOsZRLh:5vΤMlȐH=]Z9p@FERؚ0 Ge (oܸqv^sbt!r{?䉚Od I{9|'9u|vg }^,c"n+|z"40ToRReʔ… :SJ}=aL͛7σ?@߹}~O溭m鵆*><ЦCqlj\g| @mH=)\0O>n7oYV"l,+f˖-+Wo%ܒ Zl%@Xs-m[S?>Ŧ|6En* J6>|SGf}w J.Mr6sa4?ȑ#UM2T 4*Ո{?$x~NtX4/lZ(Yo:~&+k\mмA\N:@LL ]h-4ў0 UtԩSnݺiͳz꿖G|:gD'HP@OR i2OFo/W>۩J'VZ-yo|NcmV7,W"кoUVo;6ek!l﷝Edɇu:ӶLcU*W"{{+(%$$Ptis'KxGDk. Eh˗ɟ??Y{(ad#~^i\J^2C:w~K돬$&D"#կ_˗t)گ5ag"nVѢE޽~L)))… |-[:~\|_|:uXJt҅{r0f O_:g>צ!~s0_$)bq׮] VtM[v)M4Vk]δiӨQM6姟~4,j*Wΐ!C#~)~/ %dZiRvZ=J /ɿV֛j?SNir-?3sL:tk4k֌:uuyغu+wynлz48ՉTP8Z Eķ 0jQQQԭ[Rg{uvw;g 6бcGʖ-|ŋ򦴴4&OL||<͚5c})7o-\g0c_m}4W@=I HO"R(a}&M,~5fNۦj{_~/rJKLLdĈ)S.]awy$&&ҼysN2HrJ,sw'֭[v=ah>.;}rv+;v!CPn] *Dnݘ6 IDATmO5U,Z{URD ~i8yu֖v=. V[[o,ׯ_yn:ך0 WDd`PszM-p<;?jp'((zQV-ʕ+Gr([,E9w{!!!/_?sSWmۖYfẖ.]˜ ?[s[gZ}Zh?h>Tz0-wb6TįPZ=ʣnv\_OZZK,aɒ%-[rʑ7o^ $ _+=z؜2gƏDXPgwaN ߬ ÇL򿲱Ƥ$d "*Tkelj'Isx(zE)-f-رcݶ\<>'vjLEĹ ø!3EDDK= (' [AbR)_Rj Mw1cƸ-tEtvsaIly%mrJRSJ}Lՙh޽|}ơ?0|$'VZ=$Hx.mK RR+lzѣGmSX-b#M+V$,,Lyo>ӓg֞&_6[w0kꯔtTN }D|o{uM;jD*Z_@0|$'Y9島IjɓNLp[`w蝖>)+F)v9\iA.` "4+(.ZwD[z|OW2$LV/Z.GSA6Zj t*f|us65|ǶߤtO6W`/n_-""aÆvZj֬PTfxq(_d )))7lSX-BC= /ɿpˆN7 ѕR*'UpfϪUxɝ;#c= "rS| .| "._AIu` (Ŭ rz|:ԩSn9fԨT#x 8[ҦM+,'o)g;%$s8Vͭ7 Nuֹmɿ2n%3g3gδsHZp]3GD81,CKݻݶ)'sΓ缒YV_7癲e 4-<۶m'$ ?"Rɉ-Կv7EbM&FRj`Yn:DG|{Ř1cX|9;j- ,Wqvil}Fde_DBC< ('xt#~y/ '6dQ U-kflj"i"nfErzNu3HqaC8z KSj|\sjo[رc;w. rbgDDY^gύo(W`Vu&_sζɉU:!eG_?$Ce8>G˖-ټy3m۶ubƸJ;VdaZmv>oX^\<7 /oytۦu֎rOwn_j@̞=[Jz1Bsڍrâms5/o8c䯔:/p4,(+ih9ֆ 4_:ݙCɇgϞlذڵJ(0ADFHvoreJV2Oso;|FfpE7Y?}ֿ{_n c*IIqZ]qqq,[^{͉;: ]?Թ䯻 > kjhK_x5){Υㅟ_UY~ƥhuꫯ2|p"qR'l;M"BPEPu2IV/^mAǶo7;Nr>c7jԈuQF Oj@I򔣗Re\55o^_)uЪH'mSPU1nX~'Ce0j(*̂= dɒ,[ݻ{:ԭJq{,?ʕ?hoo^?l~>4^o:%J;'Mozj0&NѣuWW+ ,EDxMu^>]٬ #{?H8))ѣGmop͎o_~,\Ӣ@Q"ѡtj} _dPK9GsoMWJyWHLLtۮmtvsKܾpaNmK8~c֯_{:`0YDq(,/寐73N&;0I>i|9 `'m?}juaK-1-dc)[Pil%%sl̢Edz0+"C oe埚qt#gUWJ5k~v|A[ /K< - wHn‚x'=`7Ztti?hE c*$$q; " /yˑz߬ #{I@pWAALypMQ/:, m&B'p7P]Z:6>_|a̕^7 ZmDddv'32Lм8ek1i-4^Qd}6>n}^;۞Ɨ~ӝ5Q<~ؘ:u'*ʣ{^7:,͟? 7 J~Ru1%K ff{XUg@ ՆŔcMбrG~w^Y|3:^\Hժx{]M4_~sܕ^ ,'u,,<7?Rj10QOZZ[fՖJ }-}ЬL3 $U]~;WP.l쳑 &og[Zj\+z2̫"#mą"r ?ӳOdZhƍ-)]y]_P \v3J tbsj?[1E?MǶRk|->#,Y˗S~}Oy]D^r$jv{+ڪ10Ok["?ǟgy|nax(W; Fl2*UK,dIf2o<= {j/@ $_|T*XfeѬL3x._w?dr17)XJ)G}0=2P&"A@ X۷ $$5ģ7&:,SϟS`A;f J3 2OnloLL 'NUVœ28|}x6'x~brŐ7W,OףP[U2+m)"c)ӧ!RJ)WHa_}=tW6N%7ʹ]\1NsDDZ(̅6H0}ů{&W, B&" X ԲٟAo{z\Uotىc,l n6}㱔R<7gJv:.\HFnfeJ~RN8T }CҾ}{6lHɗ/>(`=yN%p$F%aAaZ5yM"r<&"cEd"6㺰l Knh`5pVD֊"xsf)ÛoI޽ u.8/IJJbĈ|G={ݿgqwhsU{%Moi&2}QJѻwo&L`w J)D\ݮ{u¸ 믻=z… LZ)v`9e~|s6SJYR;3g0`ʕ+'|BZZ^z=vO>.]wy熉`ǎԫW_|T3LypO*.سFy|]D7n=!n<ʿ|?f77W2+D$@D`%0MՀ"LD˯ُIWQJszɭʔ)S;,̝;-ZP|y>#+ 2zꑐ5wqr醭mݑuǏG;DsC>2z [m 2i"rsg)mY5 PE8:&_Rj/G=k׮]tԉ[o7|S8N<ɻK\\Zڵk/"?t-y+vMOk&L@׮]j @cgnCGD:[hW.iul{FDBDQw[, a%E,ps#իJ>7PlYR_ҥKk^wiYr%-bѢE$%%y#k*S ӧO'>ݟo'`=ٳ4hЀM6鞂k "pܶw?gz x|sb(y&Gh `7 ߮JyYO&[ "yOg^GDDqqqΝpÉ <<0N8Ç9t)՘MƽkϮhyS9\%ILcHڵ9t萝Jk&P9+qyW:}`tr?ݻL?</k*p ݓ~I)u _D}ϟ׺90;8(iܐy!h`wVǒӷo_}Y K)Grk6t:=jժ̘1n5ǖ WjmU'A#ZE|ʋDn\sG`L | 0+MJ"Rl96l?',}5B1HWtى w͸qѣoJԢ+^U4V궍7N_3;[D40="S`` ˗'>>xJ.Mdd$Ν_GFFYf_M6imNu`wg@ͬa@:?lS?s[iWFN z+pGkvRGD̟?Mްͮ(7nhۓۨwuKX9{RywVZ%*U+/_~cڵY˗Tq\-?3|$TX<LT'6nܘr[if'sӶ|[ѣ'Nu D)."SV:ri_q $ Eܾ|ܹjROf"N׊j⡇TRޚ/+SLaڴivX QJ9HŸ&JY_v{r;NC8#JJ} .cǎ[jߡr^5O,5#zy S& 2]jUZM}yy/""!0/$~N: >}j*PfM{=8ŋyljt "Nf+a'|}A$f3,IƵ= ׫:|GO-/ugDFT*`?$&&zj~1z'wͩOYn""RJپMWD`]K߿?<ŋg OL2ٳg)dA\s1bH̏_o2 b^NL /GR*kz@xc̛7-[BԩSidz!-U`e6l}BBqqZ7¶?3ܿ ˕+֭YԩS5#Gr/F)<۸&EJJRq=x#FKmCCa6Ky7LNs91^z%;]ss['GDmT̶"RXN:|l۶޽{ o޼߿!CP/1[e0gRR/)Ặ3?48z;v ] ͅa.7==W_u{ %Kۑ߼քn|iǁ 8u,[+Vp[9;_cĈ-ZkEaXúOMN)M)R_JJb@\7 > t;g\^ԿLbmn*8M_ҷ7&OXY,ڷ}#Ejܤ$ Op'ƬV/oy3穧bϞ=;XTL";IلRRjRjRjR TwJ| m&##ݻ[j IDAT"krT/3c ,ȴi r;'RiZx~ߞbbb;v,֭aÆN -ҧOvȑ#rl'VD_䟍H/"{WY#RSSi׮˖-~H!T'n_mQ~} `T.wu6ii,=٦4<+00~k.铕u}*88}v~a #_IPf+/_-ȁW/^ c MEii3 gm3жgTT)*Ur:⯇\9潒nOHHi-ȓYdt5bÆ =y#Eaڴi̛72e9|""dމa`jg3"r {ޤxe(RW+^bTȹ#҆.%"^O?ʕ+9-Z[A?kTח,#"a#ݻq2}r76F6ĥKBp@_ |Zj ݝC͚5c˖- 2Cr7k2JH{T!6!"uwѨv3.\hiJ*e͡5 p_ٳgs!7кukMj==j{ٳgɓG+K)5T;0HA\k=>_n]>sV׵&&n?(]%Ӧ|ȐH;wҷo_~g'ۈ>m:?drVdu,Իwo>c[}wI\Hݵ{mǎ:u!!![n^9#ӧ_|'CEEdRjCXf߇D$x *DƍiҤ 5k$..NRJ{n֮]/^a{}Cɇ2 .y5W Ol <^xYfiۺu++ձg;_FoZnߡCMfn\(,,qѵkW^>j$fȿObɗ+W8q"s  DPO" v}H_H_sDD:#pUs\TTwuM4qT\PZZ+V`ԩ̘1cǎ˗m۶Q`A朲e fvrl<+1GꛔDJ8y>Jb޽n]NL^) 0tf{k||<6XXhR4ȿqRi[%5k5jp(*G2a^>ظN=S%FoNٴiCMfQIJqح8Vg~*_ƵhР{]vB4.\ԩS9s $;ﰨC,ްXED-j&QSFcػb`*6lϨww)>&9s\=wΜBert]R=.m/SN[< j.&5vlު* OEQi6N%B'VW!ˌ M>~*š>cke̙3 U |(Jf(q+Mz@1̓Ǡ*EQ4Foɐ!;wG,DFFrAj׮m^&̝>7g\߸qclQ'o&{](3Z{mgjFKQm*Bt믿fҤIn~!fəH>|ZWZnYf_m\QK R9!7F.\F* {/RÆ ?^Oɞ>[0 ٻlonnBᇄPH\gooϣGTkTO'?ϭؽ{tÚڥ!Du`'`Eޞ3fеkWmd걩g"''x5aFduwՎ;hժ4U%ᤤTD)B}3]+t#i:~fܹs ]v Fe%oyr&~~d===0aBV~űclQC~7\T'".񻺺sN](4.E9~7R";=OWСC lBɬdOvBG!ėB k闲qvvիt- тC 1 6vӜս{w֭ ҵ/hc^kC 2Z/YLQ B[MgVAv= ΢:| n}pg}睞Ƕk4̙t;\rJQbXɸ]q7V7@#PV-ߏ\W֦ϖ>FyPcA BCt䄯/ 0DM9??$ /H' RٙiӦqAUc[-|;P:KiccFhxػwoWlP~B_&dɨ !Wm#M۶mٶm. ӎOŌ79pJ,[ʊɓ'8q9C̭ Re2F&Mp}*I<%[M4!! خ4"`޼y]uk/մ 2aׯ+ !qՔTm f,Weښh{q8ob,YRuͅ5R0\IL[2XQ&+֭[quUbqϏv7iL ̯_ gk۶-iӆ(M|;VB+X xޟ0ڻ&HIoBqѿ>YB6mJ)ZQE… rJΝKx-?Ç׽IOdL$[lalը Q"~]{6_,-k^;3͛iٲ%FA\E1nNGĵ֭K&MuZ,.\`Ŋ\gŊ3g.^`ɬZs1pMJ2=&A;5ѯ|?46R<66VU;')7GibT͡>Ç.(ך {!Do@:ӻwoxYc.>(-kcoV+5x;wҬYDNj7*b ečՍ|ѻwov)Tgl_VZŦM޽;5܃s7@X kZjZcen$&חɕ>{IO<%Ǐ!CEɰ7!<;I%дjՊUVI4 s3즴)Y6hx???7nl@B_EQ6FsB/{%meeEÆ ۷/3#p?Ʋ:eL-}?>6[ێ疛|N%:B/0W+1&p@G .;̛?dǯ !dd?ZnSj)E9疏56l@˖- Q ZWŴw(EBĵ7k֌6mDSz+Sjf)^\?@TlN&89 d1də%=og1(zd?XB.B,B|+(>!!Xrն8~#r5*ͫ;' մiS,XTz E=!!DNs" hov}ǏW׌EYXi}sClCY KY*d)Cw36J,?(^4~c0;⺯u&ǁBB>B+9>eJB_R{Qm<2 j,k վ}{OU ! !U7&`p݆{aǎ+gȑG(56[8s T`qz\iz 7pQ@r=4U+\BBB(*P_=΢:\ %gA;/^܇.0XW^❟aflY!¤Ѻ8! d[[[~GY%;~Nm2J4YބG}FI׫Cuwe]'|Njt N>]6,2ƙgd` ѱtЕ_jaä[@ 4#!65hms)~g ۯmEv|ZדMW6QbF 7>޺FI;uӷjt%kWrS-իCJ۶mSG㺎{HYPð_iև76Ԙn]@S6669rbŊ`N#:6~҆|($<:RӱxG]ʈ0l0r6,EObȆ]Z/...Sfa֑LNtic FK`ʔ)tdP4 !dbO^1U>s̬ZU[q«WE1wfM<` QQt\ב;wwF#M(QFџbͅ5* =n0I?ȇ/]d$K $s̪_|xA;S%'r/D( H@AiS|OP=_J2Qaa-\!?>Ϟ=c}\\\&,,gϞ:E%Z!(wq\/h CcRJY,Yh_ g넄p'! CHxȻxV '<=O7_wLUwh=^Pa+4CrLa, saw_nG'柦Хd'Mķߚj%!&mZu_Ǽ {_#[f\ӸҦhByz1of]켾譤0_EFFrҥKGt9O vٳgq=Ν;ٳg9wgΜ!44 [Tp(~whto4bիSLVx(1yߋ^-.,OBi^926(Ve7&z3'gXrYh]SYdQh4^e{tODFF}v,Y^ ]Q*rBn\-M0A Oy!G1,kI'FM2=%0lN. :q%HAXUߕGWfHƞK>;wc8u£., 0ͿP!U0$4)3O䷃7^Y>QIי0a , ""Pu@WEQ *Q!> $|SL_??EDt_³g2& G?h!O"ٷs-2> ocXrNguөrpc SM{˟d`Ł&C>}޽{OS. |4dp`֫i_S<|F3LZ23h .59(fETM7 aSM4.X%r4mHb1uֻݻwsH֬tznS0ը8:ݦ$K/ݮ|e֬o^{ܬ[^zZ)tPeaο?Mn:S.>HgΜsB3':W}gLF6z0Cۢj֫[i̴G?ͤ{pwٓ3gB$..lm+)à^:heM`bXoenh{ŋ߿?Oj RES?.~2eɓd˖MF3NΠ-99mf2x?C~# |ȍ7LR&_-5E>b.dZe(N8ˇxiSO65}%^DDD&MUkC_kr.^F4U1gKknJLL ˗/g„ ={XuE2gL"Eر#-[|{K nAz"[~w;LFnjFCon߾M׮]\6y((rlyf5S(1|["-k!~2xѳlO䨂W/\]>\reg1$uToT`=&Ǥfp[ u/nSG2hi.Kxcҷ\_5I6&&K?5G'b ڎ=OSؽj.iԓHB,|9m%f08mQ?_}iF<%IzzuTη~vJ``v͛Ν;W_)S&M:>Jg}DghVk[5JpcE-ؼYSQe:!D)qU;wnΜ9[ÂYcהHRW{)uk]~?$ټ9ANϣF!UC:]?ef1=š?<7:o =fċS!sΥo߾~m뢴i?0h OٱJ,O`Fڊ/jͰqWOn~viI&Ӥ'}WF/yFݕV"##i֬۷o" S%Ċ6@㿕DRt-hOw݆Gϰ02OLD7Vtj(?\\qs״vin5RR̒0j+::oSɪO-[6ƍGǎ5] 9FU-w:}"ίbͅ5\ H"DUkR $_Q 5~̛7OFX%K)9 ʆAރOFz/7|Ɋs$遳37iխXsaNV1<>W]\~xssc9FJ6ÀWF/ d(@L  &\6#^{H#RQh4i¶mیhY”*U'Rˇ]VYQ,l6+ z~%5_xCEQEOTLʕ+ȑC:s6YI)dr6멘o$3QFlngX# 7lE3,ʚؤ1OOll !Ymrl 'pbke˩(QLJo߾nC ]vL6 WWW)X%{G_p%0PhP[ /^F &=o$KLYj.I/F7ȣ(';v}BIj`x×i@v.?&&SNqeiن2XmЃ Xa:5dPP޿L:: >F{(;I.[?v%I( SLtҜ:uJJ6k~yj9:r.s տW)L>+++Ȟ]}UuuOHMt+ՍM4MUٳg8qr=ʋ/cǎ59sJ4gds~W5((+eSڎ ;.2۠ 9WB}pu"p@ NSÇg8]N@~@uƆ#G2l0G"c"鰮CJ2=\Ae7nܠxͱHg@O}xoD],oꆕ|HLL ԩSQF{n^x ,@/ѩiﳠ$cpm 틵" z:5n`̾1XP?<辱;iJ KjoUy&'NԺu+NQʊP(H@ `%ufȑTRE۠=+[xIYf=ϛki֑;wn&L +B ܜrfOssp#p@ $1? L;Сx f,J܊ 9fde d(z}۶mYBS `(!\v=(qٙ.!ɮ-Ӥ@(YGzعsHOQ_V-K,4n~v3-_#y]iNҥ?՘ԩS3ae˕dW?~oy/ f܁q^s3TB_&<#ݐӗ?{V_Q>j?(OE(JYI:wc^ޟԪl]*p%*W̐!C;qM4!""wuaxҋǧ@PPnd6kژӟ9q'Ĭ,aU,bJKY3wihn( EQjM ;?q`rso߿TO?ѶɆQxꑴ\˖-e8󷷷WݫЭCI2&9M'Tq(Qj,9{GCaB|XP6)`dت(~?!VŅ/Gl)U\?x(Qr666/ۿuJ)S''u%g/o_RT?'&,ă1wF$0&MJ:Yfx:xhBJB̙3[ȟ#J}K9椪dh/L.+PPP]k_zxշp?Z"(9rP݇A ˖-K4ʆ%: ;UZ/(rOj!'xyyn]DtEiɖW6ni5j,woT7]Rֲ dqp⇊-XHU&I$F(Ӕf}~WM-$? [YJX[[SĖ HM73菛_Dʣ+\zx?<짰 ٓ֬Y ٮZZQ׆(!1VvuV{RQQlWJ+W;;;^Vu3&WXx2:f2KKըrע{ъ2TV*\r Þ{RȞ ‹/gÉk- |%XOm|epi󷵵͍{TWv?\\\T8 I&'PȽo,M<=k7VŠn{p9vf ڧyyrJqcbccèQn !Z(O#**P (M5)K/I˸87t8T-SNgϞe-[/VŠyҹdgz5 k.b(Qo*~Ctl4of Yi}ۚaO0|p[76!)NF)+ugRFR4ZO>G7'ݹ(MR=IEƌYf իWPBt.ٙ;$6V6[zy,ίbaBqv֥ O#2zDdh0ɿhѢlܸQc_At\]PKtgysc\]^;Kw'I 1=*ְ~ f!Dc]պ?$5![>eS"XBÜοiӦ9rD _i\]c43?$kFיd.y]$ݹz` bɆB$v3fTۧdC &6N7"^ذa6mZ:,'9o fdR5) [+[~Y|12J"I҄Eq3z i y5$=Ԫ?$QvǏhI2e˖1n8t=|rYToAC,s`-PcUUϤ|,s=o߾̘1Ði{@mAndDŽEv8;K}VZԔdu60k̎;h۶Az̒$DHc158 o*~,2́UV_XB&'mJ$7[7]={dΜ9[~B*֩P-'pwT/PRVW]1IDdS@ٵkUV$q]K4&ǹ>Qm6'Y /֞K__wޚj.o媖Xu@5ZX93#N?1*˜93p. #]~y0:ۇ}S)|$ATlv枺Dڴi˵>-Ue^|.%y7қ46iHgNHUB JZNX'OOOGڧzWnJt*TG84U4))l.ezknS41lZj4VZ1w\iB+e9Z| ߺuKU){ܴH$4p9r`߾}o|X%3l0MkaͯeSMRXace&uR'K멻.O"K.?^x`"{D$6zS!\Εd JQTS5'?G>a%Ȟ.{ #1'OO޼ڒ^ǼڶL=>U|j sVvː*C,]@9Go~v`]}!m]M@իW]c HEu 5οN::t×ؿ?9sj{P{K*MZkqi^2ippt/ܦHs>}Zfy@_pOdrʔjz >2%)R}iT{jO |Q ߆fK4èm4ݢ*u =BΝg޴VСC&泼YütwY("cbbس'2./Ϳ`>S'%JOJk=;v: ##cǎD4-4N rj"p8%!q7npڵDYBu|UΝ;IN[ӢE4YބQ/4ɧtllX|* 0)$>~Ò IDATpM#5 5IOқX%Ȓ% ;wCS^J~~~N͒6 ٽؒb^mT0&&իWl nݺDXBbB4 !]6۶m#mڴt}obiޓ}fӡxsaAټ~ 6RQ$̓3鰮Ac۶m`bڵK͡yTU {Co9OkjaGn |7͛qt\y~%CQkt-fX0lެl2YY~n97HGҥٰaƝ(rD(CzmJaDXH,\Pvw(tNp=5{mooO4Rѹw E'N*R:Ǫ? :SY>m&np@͚5Yt1jO k6 InOB:4c "##eD)5xD@QV3w)uXNH2X +zPԣI2UWd'@UqilEU,$mn'6X +V\A­4눍ql۶MGHnKJޒ+ټ9)SrΝhý(ʢ񟓿(gٲe7y͒t(?$xE%A|3ؐp`uҧ:p`S5RGmY}TkI-GpT=+[Lac%Xl!2)ҼyM9uf[T@L81Q0 p kaʖ+'޿)SnJQO9ޫWf͚Du/ݝ|nԪM.ۤN|^|(QB\JwQhdXCRkjik%x{>}M6%_P){%թh:W/7|֫[M_r%W\k2fX0+ TzD%x!u7&NHW=|QFZ;X7IEC˖;kr×&+9Ṣ/@ {M\yt(j穭I>GO^wKիZ{{Zi͹ Jf4cjaRIZHѶm[UZQx;Bf֮];.]jW2x6urG v# 46~!!YR˯]P%Gsa!ytnNR?_}::t]-BlBr+~?; 0o:vi?<+W&,,LVP\Q$vYH]/[Lfi -up]stl4mִ8~t*-'49QPۑnk1{l)U( ;wV=N Re{5YT %2f=5j NC"_QH@k׮"Mcp^w%zvR3KUјNL%8Tntt3mfM6(#M.\۷_!GXh[np!ˇ M [~t]tuSEUY* X|!cEڴi9y$^^^GDmC77$`ke32cOTP;VZ6BNI 77NW_Qdzn<JO{aoЂJ*rZ+Nmd̓3xIoJ*_SrԨQC*P[.;vYf8:JUY`/zQE[r:psscҥԯ}[^Eb^eӕM<~`oEBi^9<%kˏ.S|Fq^$>>fXH9<~,?MK.d{ܹs5H%δhт/5j`}]֭[Yx1'O4;6` ֣1ʊ#F0rHFDFs?NHxw,;{~?6duJVxx}uZ"s e,] q=V\I>}kQgQvm$R&977܃I-kn3tѝK__MZ644\rqmԨQ ҠAկʣGسgvb׮]b7vBZj̚5 bSB*q02̈́kW)bbbضmse˖-oߞ HX~n9jZe(fXH!^6C7*$7_lad͚ERX1+FBpuuٙin@DDᄇ.^ȹs8wgϞ͛0qPB h}WUl{Mz􄄒FB"=((ł^ *~ޫد "JD{(&BHHy$ 93svfz̞=KxW/l RRR7oŅ _tD}lKٮ|$}N5|n`` ,633oui...n yކW-Bc80뽗?A>}qEnx4SUUe˖aшٳ(#F*SW@*DUjG}Tv-~F#ʴ.y/c,Y?p`ީ ;w~a=zvgϞU㲪?33g ~9sԡG -¯': cXaZʪΝ;qFHMM+233ϭTq EE6)j~>^"{K[^: mg BۭY'OVs1lܚ!ŋ?0:X baĈ>|8F;ERRn݊M6af?o}fgO~R4H;?k?-BıGVISQq4/c;Y߄@;|9oجR?w<{N:a Chh(BBBΝ;ɩu%%%(**Baa!Ο?NRu5(c ޽Phy)u-Du2pJ6`GȌ17~&`K|<~;#ﺭpYI0j(M_u c&@ ]a{dqη$9}N"dggܹsHIIA~~U ?P*fu$~bq:(.g?Svx駕4mq缐s>s~ CnZ^um圇skͅ`EFJΡ%=zɓ¯.^zlNlڷ{>uۙ : rY&ݶ}QxιT c, =>CcZP$s ݷMϢg] ao2k{' TUcs#:),µ/Huvv_ѣG<9OA4|#Ƙ-P> P)l@&ݼrr1wxX'233Ϟe-/Ϊ;{)!Mx牢"Ӱ?W?J#s{1|2M8uH3᜗rCBdje=…ţTU` :~G幘hdAqVS9@8%;m f^em}Vt{}z1(j^~l0NQgYs^9s>@8-UL8]vMKOI?Y8#}h#1UEG7iKj8vi#Zmuy(k| W9oJ؏XS{٨3*{c&Li FQg6Q/9?gBZ pԯ ֯_?1B(lY|{%yfi]0Ӕ^6˯˸q3wFf0+ `V@ա6?r$o:dF|nMڳD)#XǤ3}믿^4S;!=qγ|isA ~-P's^cPq___L6M(68^P) !J-8%f#7bcc ^XwiUy 5+|]wQlcvZcOUpwt:#puP"-0wS'N)@NS=#]*I݁?.̝=5k8Qz&U@_ ؎gϞkbjCҼUȟX~څ#::ZƘH#*IM`IdizyKZ=mOێYQGc^n3bweBJa@"Ιv#ViXzl ?3QWf{ุ8tI(V[_I롷;_111isU@_[dW AU]V\(!2[S :7st;nYj& ׿YKb9Bt)777L%g~G^Et3T,RѻqQE qz%-Z8B7 : h@"l")nE,F֡)XrppЌ5W TԑQ h|LL M?!0p[fNjDPaU) ? ./V#}U2J&Xtsfde+ɇH:FH i&$&&"%%χ ѭ[7cРA5jZ:g j'.ƻcߕjӿ8;;Rk/Q7J&x$izNMFFVX+V 77j{wwwxxx <<w&M:X3m!Ni[qa'1p@$$$64/nh`hh(za2 Xf99 ˸iW_}G56XO IDATŅ -WZZ,l߾>(z_BmtiS\Vien+U}cҝ Ə3F(@T(̊Ȣ3Ϡ_~Xr%.^:[TVV"++ >"""_h4rTm=Ud*bF5J(N? \Ny9.^[ _UUL<5jʴŎfYԿ$*bF=Z(.\\ YapYZ2ٳGZZ1X"oMvݻwiB#ITŌ @NLUUawnsr" Կ-XӦMŋ_]]Ξ=X:$Y ]w 'Nr߃1)݉Q71@hwnTյJzp<)JBB^}UojlL4j7;{}f򳜒şB4<)mlKۦu iӦҥK吙cǢڪٕh_Cߴ!2_01ߑ#(.:v7pNgΜn>8UkeCEmThtQ  TMF4022RhKߒpЬ2n;Nsi;wۭ_ny.N^:iڊC vjСR3cq *-`#?x` J"fQecVjoIaa!}QESͳԿ ҝEJH~h_[Qgy999ZDVV/_n~yJ9)x)݉NQoYb?m%^LDAeiKشiSer%%%x,,5paMbbbi"9Qo~Ƙ?<^y7VB~~i\UYYeٴUQߝо)/˄G0G[kjBxbg<,]b_bn|EFJ?LӔSO>/(++Cffisk-wn,%_r_ /^si4֔bݩuZѮl߾ŭR8RB[vp"+ I1t ?ĊU]R S'DE4u>}rh_wٱe_=:+?@!T.Z&X)8#o}jٍңrugΜ:!p]rlldDJ*B_]h`׮]i@):Qu5b剕Zn?^#==]k܋gUf{,{{{&O  3WZeiV-asg)8okk0@#!TNȿٝIyIZ.899i0WWWծUQ['VvN Wf0 J|Oڅ`SbkkfO;FJ8Wts$3mh߶-; ,$$D!((HkjU^gH]?p;FſySX)ϡs[:c>iy VekIvثZrl 2KZF BCCMѨu[xx!rsNMӧ[/ZEn̾鑑BO+M<,ЉnuxZѦY4Lҥ*y8S66hmdCBg\F&Po|wGfàANE?ʵIxG葒Cɩ. bi\nVSOHIT!#}R2*HKfcǢcG.,, >>RQ[g6>RFTR]l6IZQƘ-$}}}Mjp9i+6Tߟ:6Jbf_gvlz5TSTEſ)Dm8?%um? =1k=z0:g У!> ,wߔj~??ONV Ƭ P^[um-̙/s5:OtyB%շs~+ض&$oxK4ڬ)Skyzz70{cƆTʊ~/JT:Cſ)H/)U ·?C̰dDGGFWWWL<>YשV)+/*@S#x{{+k11hJdoo 6sΚogg޽{cf_ O"?~/RWG^^^B]/hF-[ 44VC͛_5$T[@ſ)/[O_N Ç1d养۶m3TEſ) E73wߚ63t;viӄoe1{_|k jz*JKTʐ\kS+iW`cccӦMu\\\ЩS'!!!V2uv7|Ny26˟zŵb4ףv~q[mZ=?ŋ#;;sTWW 55oZAdd$xL0u"4\+pwnLoT[@ſ)2r#f4u x'O.\h;wڵ+ЩS'[́ [:EUE>RiMt@ſTۯ7hՆjL~K@/^KoЭ[7t}T%7 4}Uiu)]ρ,N 3̿)asa]Y"[:%X^e]%n^q3heߍ2:TR}da Ƅ޴JYYt  7wbwnSYѺ:p Tזȍf%Dy3lg?yOܲ:x:S%ّmmTuSJ"ş[ϔSo?L߉_I7%ZLq:9֩d 7%­tLboݕk0>3X$.Er^$ * 0vXlL٨u*'HCſ)$-qsA&)YCfY5 f\8`~̒L _4{3j #MSwGzl0fQokV'2cM)/iYR^ZyOS! di_=TR;P񷴱ca;~3e7o60x`k #Cſ).`[)[{ߏ;zalƥ7""P'~SWOŷ_?[@ſ)UG=$[f["o17 BFMmLو_Md|y f>֩gڡߔş-gDq1~&oXKfI&F~;@fkhe+giSТ?K5I8|1 fӲ:c<&,@gXHYM n^~3 * N`4oJKŞ!rnI*޾[(1ϬGh|CI-?'xǴȲngTh`AȂF9nFwmĕՔMaLiEiy͘r ͨ!JC_=Tޠ=?_,Fqcč9:b8@9a C. 7%UEV_}7+[w5N0cUC~e>^*?䕓sϨ1oGѦpp8>}kZE,#*ι%YF\ֱ׵etܧx+ZI^5k;{݉{ދS3ۙ3XK-AZQ+3 R!*MI-暌 R iJ)QBO$\]-Cg "9/y8{Ӷ#򉒊.*KW(PwAsw;Vmob;Nk3`ƛx9{pspk;\\QUWR֔6>0, &̈VUU oր T'VEzSWC_{2U10<u',V\eQ lNݬu:D܃&O^kp/((@qq8[y}_Ė{O ?@$*.?-S# C⣉xF/z^P7󤊿?աr6x.9y zM:B 9=7/ Q4Xdݻ;)g;gDxEh:w[c?_/!M ,yֵCW+Dſ ?8?m"ޕ61SoްaGvdב8#X6e :BZ5ّ4/u~?m'Oi [bgcz߅žazpu:-BZ{t wRoJK]\_]h`bb"8&dvɕ:a1A1X:e):7FS"U}zEizZ;!XZZJ,7Gc锥B!;:tl  >z7O[}a՝ i-Tt5̑#h\[ :8v: U E!\q5dB:h!V!;,ٜltUp pDdߥC89nyxkl-FuoO"Dgvp!Zu˄EF ^a>u| 2ܛ`ocuj =|ŷV؏Qovv6rssMƍ cVBzu V=MwoByN|x=vtEQ$s,myЩ~-Zwp -ą턷JJuը6TpsSm(nwo|c=F.|&]GF(XGS_YY}a->"Ե5#-nspTU7j`pEqaLZ: iYx*m ޶di:8v@qu9yJym)f0089j}W㫃_aPJǶq_G_g>«on2Ɩbd;4'IyIxGxuTogob?I47s^`HݻŞaݩuj 54ףjC5Vǎ;N(4:dI~صkL_1!X+++~ 68G%)/ -wߡ@td~7 R|_ITl ޶d )1'/H+J:baUuU!*-Iϊnmw_^H<߰aPŝ-8 7>pwSog܃N򫩩ƍe[6//s^!{_vqpΦK-ňE#=7)AR&9$*ⶉF/&h/fFl=(_'0O+/nLڵkMƄt Ag6ri _@ nq]DptDvSdtjRH=Z'n/D7oތr7Tk^yڊ̒L,?K-ZC424x(:{t?r222dsN)@#As饪*E+ǜtti(u",:qxqˋTuNs LGD!&(FqBz3w\S 5ӿ`[mum1T6 3X`9&兜ٵteL2l\]L!7 |~<ZDZۢoΝ89F:1FR^{@AALfםpmy;`R.: )-OI?5}?n4G\씿B?B_~0}썛"nR|q pЌbᑅe-[W݊ʼn}|b/n Q =.ߔDvv6[[WNV!C}ǵN9SpkbMC"O ~ D8 >>>m9zF@DI1ƶzyk֬ԩ-/|)&x;{4g7>α_T4Y&y ֞Z?/uJߺuLhh_U~[NNSm@ C 6lģEG`*D=}{@ux4o}4c,@gNlllg~.,L4Z57ţ؞Ҷaƾ}A8h4"00P<e|`h_EFEF#/^_~ŸDD!9/Y4ua8 }FTZ 7pb3}'N >3޽[&*ܷ,@Կ?+{%3ҟg7= _վS) IDATۣ:ceէm8hblXtr$톦U@ 1dmk.ƶQntU wFo֩XT/l,2v7'[:e).&,, sZm&*f`}@}z77vXğ7'5rwhWg&T(3v\;.>w..mѯ_?nqGK'Go@Dܐ[ޚv鱥MOFuySzLXv9HS3i!-z<#ꫯd* i31N){Z^ [kE‘^nnzѩ#yU PPY;c9 }Ny֩"͆c'çp"Byl~)*fb=}`;wa?vjS{MEO""jY#7"4 ))H)LikQUE%D GߎUj矗irsz8*fjx?he˖ᮻj1POB]mfj:wppDxE +AAa-}UkEaU! * ), !a`8+h4",, iii2]9[6?<**`}@&>9BEf&ڵk1i$&pΥ6 WGCCaǎ&|]|'E!ץ9xm**;e|G&c\]ЧE!u}iT~$eѴJc$occSN!<<Ÿt MBTep|mm-z联ns_=koSe4駦_Wp4'/BQȮ# ?|嗲QE_E'o@ .յ 㮴_;!|f +_ZZ0\tI] _]~˖>c<61s" "U`Μ9ޥoTU9/@_|a2Ɔ &8FjlBF&-o'ۈ⯾o~Qݻd\EMn~9yBo6@>5**gX#Fd[mHK!ld,\PV6"[Ɨ2VBAAA1NvN}JB{LjK/`EN-elpZ4 -2GY G;B>ߵk֮]+&FD hc0uQQ]G_ !uG;p}Rm$OEFD@hٳge]bm|سglW8GeyT-s^`Lú C:Қb=otr$_YY^xAjr bT-Kjݺu2''D!2q3g222d9?/ۈ(C߂87 XAzM9BI σ-n9svU@_3= =JBL+_Tϻw&},1 6?#LbLfI&B> AQx3ABSOp={ 6VfyQ*نD9[b6" =1.|Ҵ!E]T㩧R TuH-Ӧ-6 Bvjxb8p@U[$x|W&&FN9Bl N~eeexe2P4U@Gz-Z-tt(}6!O6es~XQ%BܹdMBT4|G]xEQ+i8Z\כ5v6vJ"F nYww69ϑmDCYc,YtEFF"99dKffGѳpRmN:hFf9tBhoEs?WȩSb2 !Z2et?¯=*'u$ 2 =|zHINN/Vϲ[߯2"#P!Dߞt~EP2y۷oGYYɸIQȊW}T$\)ub9|9?&ۈXmeqC!D&tG[G6gϖT'ĢkC}i?B4yyydY9ϐmD,6>Rdh눞~=ɉ3}Z_ `T'ksnhQ^^n2n@s"l,/z,g6"E_;pΑd2n`f%D)x={VI h*Q!'M 0 !bqSMRmRtr1clcb9TgaBD>"d\8ڻ gggcZ=ʀ?+3Ǝ3ƞc^F޸HwuD/^Eщ[o_`d0~g]g2T%OnnP\gd!#k0`50&ό12*>ҲX(Iq2}psBgpu됙i{1&JEBçly, +N3ƆZ3B_31D㋊BLYti[0+tc:+*`(1mjjjPUUe2?!@www fDGcTo[cl4cl?U"dۋBL{Ǯ]o"66vvv`3c;+*agm %qqqGşbb?Cll,x ڵ Xf qDDHcDu1oozp?G{9sd\AyAʯ7&N'?dӦMشin݊վ"P:(yZ%kCp_wPe~uaƍ`Bک=ȵF#<7bHNˬ% תq1Ba2ƞp CPw .*Fv,4b׶ALL ^u$%%a߾}xбcGs.;*H@_X@5駟sB%4O1)rbbb0w\`̙Uzk 1[`'UKŗ_~{WыGLN?e>g!11!!AXsS95]P<@lN^V^ReS3 BH;q&}[lA`|rJD_7 ^oBxL4I]e]%V BH;efbVA-j7T%4lɻwj^sop1?֚h>rN#[;Ҭ={bÆ Jw\S;'=W1:XZ5兗_~3g΄j 54Ԣ+x !Ӵ^{'M߾};:J7s.l4 {b !\cn:x;+z)))B]]LuSocA)mO#!!" 0~BH;c7b"Pc0}t VԡNockLmgooӦMS=l{ۿQB\˴_$9558KwST/*v?~xU).Ɯ]sOPQ[ !|]|qunoirsnYzAſc#$2\\\~z5J\ ՘.f'F~ej%k-6pΝ;ݻˎ{rL{1%KV܈CϺMR'y\U''T{GttFh!«J/ǿ'T!>.>8Iʝųo> 2DIPN$כ wRdE#p󊛩Bڥ<&C/ [Βiy HKƔS0 f]BZ%K=ʜ>]z&_W!ڍm`qa ?'TUbf̘!:NtHc oISVS O=B.!mVlʞ9ϕDgt=guD7|Sd Z0| ?!DJDgt]L 3f?%1HKjG!s\MIw3z/Rg;uխ()jG! /ӄ -1o/vcǎOI?WF!햑)etaä51NtD@?L4x'^WIN~w6`NtDſL*WZS+'LQRmL7$? m'Txxx 6VlӨtiIBH{[ه2M¤:*L?!w!D6(oggR茞OŎH)LQ!őGۄ˄So.?c B+6IϕD!r2t1[NtBԃ#}܈ͩ'D!zr j 5RmBCvHu#T~]4,u: BpTɑ?@SWE_$X`izqd!DdZz-2&cB䊿Le|:LȱT !D=QdMt`2&,Gq2Gyym$GUP 6wz@!_!w 2TH@w1BQPY ݆F/@dَ-B *ڡ/L#BQ]iM)jRmCP2"ٞF"P*^?}1_^? !(.] *?!XT|iiLxuH0 !"lbRT !D)_*XOZ !qp铧h!shUsΫ)ND!d?eo |Ӧ%=c`O#z.Im ¼hB% UUU2MU /]"q^f%D!z٣T|~A@'鄞A"o*"*3D*>/OK B_x=?!ֱT<>QFr#TBşsn*O#BQ?5U+?M :)xI1AApwAEmy-/g/..pwWfcma+>ɟ5Zc-JKP\U_5r7I; 28\{~q\t Wa`i vߡJrqs/|\|{}\|{|`,7Agl,z}Qe5eW1)AzqʺJ&f``ҳǎ ?!uq{?+9G||<B_ХC+>=:7)Z*10;jWt/> 89e9ࠁ_k7/::uũSd26m2Y'EM¬ J.6;5)h{gq񁏋 ٿ6T#8=ޘ1Rɨ^ RF(\~"[l1ӵCW CهLXS[""ݻ;¼®(AA?^ jLfI&^'åKJTUUV]] [[[8885~~~_MͦUq~S%u ›"nK2d'n9~FGT0Cp&1GO>-ƝtOwͰeb4/NjF# K.!77߫{7 a^EۊsOGJa)YՆpC IIIZCs>X:1߀1͢'NĚ5kLƽUNmNjm^ߧ~$P{] ddd… -FA$AFTTu&5l=99Zd1Q>Q?ĖXf͚O?T9I'3T0&0]/sA 0Ř*K7w~~ Neh8s|Ґ:$ o.Vu<8S.ӶTT3xlc񕕕 Ba<#8 1;馛~gW.[kF@LP bb0(hvuZf+,,lR/}e% 988 ""MAdd$ݵNQ7 ܃Ci)Op?d9 1ecs<,+a΅ ,7)v΅ J c~pBjjj0ٮ.6@/=G>gd£ژ李K.p8p8 }pNbbbHNN&##Պje<}-i~7K9p_8?:<1w^3>(kEg[oŮ]fGَ)?%L? 4 MIDATn[esUZ`ZIKK#,ar٥hibT^eww7III\vMRJ)_`B875,,2ƼNFTaOu{L'$f>+Yd)e}o}6TTTpYЫ-zE0#l2w0}>Oڃtvup6uUc˖-z[%W@ Q? Byĉ̝;WZN䫺C>w|}1'bHNZܠ[fZEz][[[>n)1Ldffe˖1m*SvP!Vc~m bwn^N{Y׸7n`Xho׵{̓R1Ӂ@ױD=Wz뭮[L9Ҭ]#̘#IHKq xib:L+**hhh[ OBrrrHHHMM|TjhutٓgSR'~I^^Gջ䟤(Bzs1}3g @5Ѹt='@8 F1o? ӣ>&11 dgg5O5b_>>>1wz}u1'O}㱏cnݪwX-!DQZZJFF8{,OvPF;p[ v7#L n `$$;w.6 1L>[~%K_W\ёѼ+EtdXVOdJ)?ӽ`7B,)d2Q\\͛466EJzzzV0 |RJ bBKу%#U7؉%??FAAO wurڟk4ncKٸd#Rdgg{X&zh!7,ς *ttt?P^^[!5:\&!DZh%zg0ANN6իWoJSGGD n"*<(L&NZZRfx΍7B+B% x9)..7 &f칮@oo/Ν-8Qx uUJt| ``~>ڹqŋYf v8Pŋ=r> Jǀb3}t6měoɌ3q@ܹCuu5UUUnj$p{xy W_ tv;ׯםn(n޼ʕ+9'Û':(Q?FOߢ{ ̫ƍYdy? < \CVJ'(FE1`) ~DANNv_|1h[/ٳ!::mf.Z[[ikkuoG!vES+twr:5L~~>k׮eժU6NbΝtuyՂ6G\ i{wA@2PB^0, GQQQ<QXXhh{w^y~'o򤔧 pMBb`3!T .R+uIB CX,_ق RRR—_~IG!;礔LY~`T1.+RzثPLDe+ &$, -l6tr5멯>CkZuR2#'U(7 !D s} ~dPO=O !&@SRDD!VG; aK)~P(FQJUj(BV /оHp/bA)A֡U%|R~>DB<!H=.ဝRzSP@%`N1 Jj%~U``W3(B E`@;*(Bh^-4_%l GҏhgV46I)C/x P`Ӏ@*dޏVm^ΫP(BX`5n@>`~$EJ} E!  fED+y9`mk3pN) p"yRCȣ_P(B!$WEh;Sl/ o_>>>>铞7S\]gj|q@d ?X一/ pIE@罆d)K- S7SV3qHw=~t1F"\ʕ9>~w`Ԕ;ν:}@z"yV ~LZ[ paz8~<OoW2"قׁɞL g(90p8"fHF`djλ0CQ҇+>Ro.A6T&\0ҷ Y [MƥX)Dθvޝ t#ǣ{\>c pŷ3 ATd74C!OC*MBW4`lݤ*vwp 2XdiH\emL+ wD@"Ÿglz5`dR@&. ⾢7]H^2efl}VJu/mAqٰ[C/%$ Ma,nx9cfyAiԽyXۖ~8>Yhsՙ}0Bs7PFhC-m8|;([ '<"<6}63%L4^Fa ExeF 9IiSuX/̓~'B"TmCI oɄC5 35s(c߃neSEi}́gce. |@&0}Gzć4lڊZv(iX !gOQ E8SoN Naלd{La8OA茘|;B@gO y!))>jپ>U +m>1UٵEI?f(M5gH( r+cxANmt~sГKe7aZ&J0sR z$mMaE x=>4Rs]Q ᰴ0fd`5T(,y\s/:Yo}Hr-5%kQ T/> hXp`~'|1R*09u.e ! %x1c;ѵ:RG8QcE֕Ctk4BbRhf5#i ѴtYRv9\SK^fCiHcXĿ)8gTC&-#C U>oS:+vB>/>c+@ ̤~/drBO (a3 4 )%\{LxLZ.~}LƠQdOё)صc6w|jX\CZ>~{8 ٗP&gߺjD_I8Pߦ3խs]Fǹ) ş-4>> ۱mWUrJINnDO:=dx/JܕSញRTJؾd%6_˘)9vr* U<[lm\z#'7{hkb@,sQ\Mi䌙ʀsgY„WkKlʸ=B'<_ȼCڕ@cP<® <3peS̚=3f5(HHŨL%tW4!EMjaYuNj7[ e S0b(;'LhH?~%lˍj\11hIY@~#FO2]g<OFf%׿1YsYtBppJ^]4ҌH5c:dΌ4B RgJ<0W JJ&«H7؄ Yh1Q'k 5#(ՇSwV:S`V4f\uNzZ9 tA n2dûR q')3iLSN$ À>`X.^h($-NZ?̔+z:R(۱(E9_a>U{tFg!v o&M0ȝ朱EkV"" Qɗ"w@AH9so5R7ڣUFrBdq%@1@i =@(' JSx/d8.hHg P !VrOvY^F'_(d+ }ܲ #b93u(DI%Z3X1'M_Oqx*C,ظvt"Mjِbf}>@zB(g(WTX$k8xr!$h$qX*(I-+F:Fx:FPFC|F<F:(p::H:F`8P7+&EA58/6>`x:8`8x:x:x:x:Fx:'p:F>>>>qFp:p:K:p:````Fq8:DpDpDpDpD8iT88888<<<<D''e:e':t/s1t/`@.1.@6/6/@.;,;,  8D~0@8L888<89&HM55CZ#"!--}&Q&"::*(I*X*w Ft VT)4(31616L (D)"L;LLDLDD3/;L+/D                                                                                                                                                                                                                                          !!                         !    %%                  %!   **    !   *&  ..      #   !!     .*   22 #    &   !$$     2-  66 &    )   ! $''     60  " :: ( #   ,  ! $#'**   ! :3"$## CC / # $'   3  $% )(-11   '"""""""""C"!<' "*(($KK "4 $' !  (-: ) +$. - !366+&&&&&&&&&K&%C-"$& /--)B TF>456789:;<=?  3210/.-,+*)('&%$#"! CBqplDcdbEa@^_]\QOPNMKHIGAJVWXYer|`USus{wgftnvmokihjxzy}~Rb6 /9PZ~1BSax~    " & 0 : !" 0:Q[1AR`x}    & 0 9 !"! 6sc6R|xzztvz~~TF>? 3210/.-,+*)('&%$#"! SuvtsCBrqopnmjkihlyxz{D|~}edcbaE@`^]_\QPONMLKIHGJAUWVXYZ[fwgb6 /9PZ~1BSax~    " & 0 : !" 0:Q[1AR`x}    & 0 9 !"! 6sc6R|xzztvz~~TF>? 3210/.-,+*)('&%$#"! SuvtsCBrqopnmjkihlyxz{D|~}edcbaE@`^]_\QPONMLKIHGJAUWVXYZ[fwg,K PXYD _^-, EiD`-,*!-, F%FRX#Y Id F had%F hadRX#eY/ SXi TX!@Yi TX!@eYY:-, F%FRX#Y F jad%F jadRX#Y/-,K &PXQXD@DY!! EPXD!YY-, EiD` E}iD`-,*-,K &SX@Y &SX#!#Y &SX#!#Y &SX#!@#Y &SX%EPX#!#!%E#!#!Y!YD- ,KSXED!!Y-+8h%G&/'/&и/'ܸܸ + + 01".54>32"32654. 7))7 8))8%33%$4 )7 T8))8 7)D4$%33%T 8k.W//0//и/0 ܸи/ +ܸи/$+(+(014>32&/#".5"32654&8)7 8). -  7) 4$%338))8":O  O)7  %33%T$4Dw|)c*/+/ܸи/"ܸ и /*и/ ܸи '&+ +(01&'##"&546;226=4&+3t4*\ `R  x8)%33%XX0L  @)88X3%8$4*W77676&/.7>7>&'&'&'.'&676" @ 4 ''  B!!7  )O*&> !9%  "('?"";'  `|'+ /+012+#"&5#"&5463@b b  | <l C!/"/!и/ܸ"ܸܸ //+01732654632#".54632|3%$4 *7 7) %33%4 7))7 4!/01&676>767>#"&'"     W  \W%OLFFLO%W\  #I 1/E/01&676>767>32>767>#"&'&'.'#"&'&        X UR#KKFFKK#RU UR#KKFFKK#RU  TS#LKFFKL#ST D.7&6767>&//  oo  yy     x+9/01&6767>#"&5 oo @   (X|)%+ +0174767>7#"&546;232+"'&(5-'! 6-&"  l.\P= l.]O< D)2*/+/'ܸܸи/*и/ ܸи/01&'&'.'#"&546764632 *(%$! )(%$" VS#LKFHD  VS#LKF D5I6/7/6и/3ܸ и /7ܺ9#ܸи// /01"&54676>767>#"&5#"'&'.'d ,   # $D  84-_)-048  &K#!!#K&KDL' + / + 013"&5463232+d   @D + 01%&'#"&54632> 8   *  )ND   +//01%#"'.7>327>54632 )##))#   )G  *4D  + //01"&54632d  DDt O!/"/ܸܸ и!и/ܸи// //+014632#"&5##"&54632354    ` D8h3G4/5/4и/ܸ5(ܸܸ2-+$+$014676&'.326=#"&546;2#".58?22-&  7%4$%3D  d)8 7)4Q!  /%33% 7))7 TDL|/+/++013"&546;2+32+d  <DL| 7 + + + + 0146;2+32+32+"&5D\Dt|K/ /ܸи/ܸܸ ++012+"&54634&+32658))8x3%XX%3|)8 7)<$43%L8Z)+017.54676&'.67>3>>32-&  7$$7  &-2Q4T4Q!  //   Dt|(56/7/6и/7ܸ иܸ и /и/ܸ"и'и)и4$+$.+1!+10146;2+"&54.+326=4.+326=Dx8)  )8x XX$4 XX$4\)8$%>>%8 7)32.'      0  $  **  D `%OLEELO%>BC//и/ ܸܸ //+017".54632;4632+/$ )F  d$/(  )n  t !R/01&676>767>#"&'$   x   87/i**i/78  p $: )/8/01&676>767632>767>#"'&'.'#"''         d       11*c,,c*11 11*c,,c*11  p 11*b--b*11 $E7.?'&6767>&/6 hd QR dh VU    6Q/01"&546326?&676>2  %$u [\ x&!# x  1  p+*.* &+  +0174767>7#"&546;232+"'&*(#  (#   OE<6,  OE=6+   (_+ܸии& /!++ии'01"&546;5463232+32#".5#8  2 F  F)  /$2    ) $/ -576'&/.'&67>&'&'&'.'&676]4- ]5. KB/2  A03  F+/+01"&546;2'&+d  d"  F    :6>#_$/%/$и/%ܸܸܸ!/ +  + и"017".=4>;2#"&=#";#/$$/d  F))FF$//$  ))LF6J"[#/$/#и/$ ܸܸ ܸи!/++01"&546;2+4&+326=d  d/##/F)FF) T $//$ )):>#G$/%/$и/%ܸܸ + + 01".=4>32"326=4&/$$//##/))))$//$$//$))))FJ?//и/ܸܸ//+01"&546;2#"&54&+d  d/# )F  $/  () F%&/и/ܸ$A$]A$]A@$]A$]A]A]A@]A]ܸ$ܸ'//!/ + 01#"&5463!2#"&54&+#"&5  ,/# )F    $/  ()  nC + /017.54632z  3   F` + /01%&/#"&546327>Z s0   z*  5  X   6j !+/ +01"&54632"&54632654632lu  ) $/ )  /$<j  + //01"&54632#"&54632d       pFJ C!/"/!и/ܸ и"ܸ/// + 01"&5463232#"&54&+d  F/$ )F X  $/  () :1>&1c2/3/2и/3ܸ+ܸи/$ܸ/ '+ .+.%и'0017".=4>;2&'&5476327>=#";#/$$/d +%%L )F))FF$//$ (A  $J))L ([+ܸии&#/ + +ии'01"&546;54>32#"32+#"&5#8  2$/  )F  F 2 J/$ )J   n:>$-S.///.и//ܸܸ*ܸи( %+ *+*017.=4>32+67632"354&%+$//$ ) M ))A(/$$/d F$  )FF):>#_$/%/$и/%ܸ ܸܸ !/ +  + и"017".=4>;54632+";#/$$/F  d))FF$//$  ))L: )+017.=4676#"'.67632%++%%L )) LA((A $$  FJ"O#/$/#и/ܸ и$ܸ/+ + 017"&5463232+326=4&#d  F/##/dF)) T  $//$))"$-.///ܸܸ.и/%A%%&%6%F%V%f%v%%%%%% ]A%%] и /))+*+0154&'&#"'&547>+".54>3;5#"( L$$+ d/$$/F)FF)D" @' $//$))8h%G&/'/&и/'ܸܸ + + 01".54>32"32654. 7))7 7**7%33%$4 )7 T8))8 7)D4$%33%T P+/01#"'&54?>#"&5 x  B xB7g-+01.767632+"'&76'.'&L <;&*$     # 7.;8OF=7-  "  +N=3-+-и-%и-? + 017>=4&#"&546326=4&'&'.7>.'&676$4$$4$7  &-23>  >32-&  7?/<$43%(/  !Q4(%>>%<4Q   &-O+ и /$и+(/+и#и,017"'&7>35463232+#"&=#J   |00  ^P"E=/ llllEg|3[4/5/4и/ܸ5ܸи/$и$/*ܸ1и1/+01.546;2+6.'&6767>=4&'&_ 4;3>>32-&  7$$7 Q4n4Q   /n/ Aq'7W8/9/8и/.ܸи9#ܺ#941+1(+(901".54676&'.632"326=4& 7)?22-&  8$'18))8 4$%33)7 T4Q!  /t)8d 7)T d%33%d$45h|!++01"&=46;2'.546567>7#U      P   n/^P< 08h#4EF/G/Fи/>ܸ и / иGܸ*ܸи/и>$и>3и*5и*DA+A.+'8+'01".=467.=4>32326=4&#"4&#"326=7*  *78)  )8w4$%33% 3% 4$%3)7 <%>>%(8))8(%>>%< 7)%33%($4 ($4 <%33%</_%5U6/7/6и/7ܸ#ܸ,ܸ#2 &+ /+/$/9017".=4>32&'&6767>="326=4&7**78)>23^ 7$%3 4$%33)7 d8))84Q(-  /tT d%33%d$46P / /0174632#"&6&>J~Zc=Q+=[+[*+*/+A[[&[6[F[V[f[v[[[[[[ ]A[[]_иeDJ+DX6+X, +,`+,^01+".54>;54&'&#"'&547>326=4&'.#";2+"&'.=467>32;5#"a-0$//##/F)  L$%,F)'%%^54^%&''&%^4n  n@t.-11-.t@At)FF) .t@/$$//#D" A')4^%&''&%^45^%%' 0-.tA@t.-117))" <E=7+=-+-A==&=6=F=V=f=v====== ]A==]=ܸ=и/Aи-GA1+A + B+01#"&5463232654&#"54&'&#"'&547>+".54>3;5#"1##11##1xV)  L$$+ d/$$/F)FF)L#11##11#D" @' $//$)):>j .<g=/>/ܸ="и"/-и2ܸ":/+/ + (6+(и 01#"&54632#"&54632#".=4>3226=4&#" $//$$//$))))B-/$$//$$/F))))i:E +A ]A  ) 9 I Y i y ]; 9@ 9E 9;'+; + 01#".5463232654&#"&'&'.'#'.7>32.'.  2#$2x      0  #22#  **  D `%OLEELO%4 6A++7#+7 и01"&54632'2#"&546&'&'.'#'.7>32.'(       0  T  **  D `%OLEELO%8h4&2>g?/@/ܸ? и /иܸ $+0*+0 +*6и0<01%#".54>322654.#"#"&54632#"&54632h*7 7))7 7*$4 %33 7))7 T8))8X3%T 4$%3,j$-9EF/G/ܸܸFи/%A%%&%6%F%V%f%v%%%%%% ]A%%] и /))+17+1*+7:и1@0154&'&#"'&547>+".54>3;5#"4632#"&"&54632( L$$+ d/$$/F)FF)xD" @' $//$))8h@  + 01+"&546;2h   :>/=O>/?/>и/3ܸи/?%ܸ:ܸи/7*+70+01&'&6?6'&'.'4>32#".5"326=4&s  ZZ     H$//$$//$)))) F F   /$$//$$/)))):> #1_2/3/2и/(ܸи/(и3ܸ/ܸи// +++$+01&6?6&".=4>32"326=4&t d  d @/$$//$$/)))) Z Z$//$$//$)))):> #1_2/3/2и//ܸи/и/3#ܸ(ܸи( и /$+$++01.7>'#".=4>3226=4&#"v   d  d$//$$//$))))^ Z |/$$//$$/)))):>r3AOB/C/B(и(/?ܸи/Cܸ7ܸи/4#+4.;+.01'.7676767>/&#".=4>3226=4&#"z %&  %& $//$$//$))))&     M/$$//$$/))))FJr:G;//&'.767676"&54&+#"&546;2  %&  &$   * )F  d/#^      ()   $/ :>5CkD/E/ܸD и / 9Aܸи/9ܸ.и./46+6=+=901%#".=4>32&'&'&6?.'.7>7626=4&#">$//$$/+  #  "   .))))/$$//$ -'     VbF))))j &7+%"/+ и01"&546323"&546324632#"&5  n  p  |)"+////01&6?632'&'.'&#"&54632  Z Z         FF       '+ /014632#"&57&'&6?6F  z d  d   p   Z Z +/01/.7>4632#"&5 d  d [   Z Zc  p  :>j%.:FwG/H/Gи/H ܸ)ܸи +ܸи/$82+8+++&+2;и8A014>32+67632'.=7"354&'#"&54632"&54632:#//$ )  M$%,))ExH/$$/d F$  A(F)FF)9F +/ /014632#"&5F    p  k$+2O3/4/3и/4ܸ#и(ܸ/%+%,+014>327>#"''.?&=26="7&?$/0#  - $/0#  - )z!)zH/$6  M/$6  L)T)>B+S,/-/,и/ܸи/и-'ܸ!ܸ и /! +01&'&6?6".54632;4632#  d  d/# )F   Z Z$/(  )n  t >B *S+/,/+и/ܸи/,&ܸ ܸи и/ +01>/.".54632;4632#x d   d P/# )F   Z Z$/(  )n  t >B|9W:/;/:и/"ܸи/;/ܸ'ܸи/8/ / /'2+'01&'&6?632'&'.'4632;4632+".5x  Z Z    I )F  d/# FF   b  )n  t $/(>Bj 5S6/7/6и/%ܸ71ܸ)(+( +и и4014632#"&74632#"&".54632;4632+H(/# )F  dB$/(  )n  t 6Q ,/01&6?6&>#"&546326?&676p d  d A[ x& ##+  %$u  Z Z1  p* x  F6J&_'/(/'и/ܸ и(ܸии"/ /++01#"&5463232+326=4&#  F/$$/FF))    $//$:)):>|$-I{J/K/Jи/Kܸܸ*ܸи/(и.и./*@и@/5/7/9/*+* %+ 017.=4>32+67632"354&'&'&6?632'&'.'%,#//$ )  M ))e  Z Z    A(/$$/d F$  )FF)u FF   :>$-;{32+67632"354&7/.7>M%$,#//$ * e)))   d  $A(/$$/d F$  a)FF) Z :y!;8+016#"'.;27632&'&67>=&'.=46%M *  %  $,, $$   "4 "A((A:>$-<{=/>/=и/>ܸܸ*ܸи(и*1и1/*4и8и8/;*+* %+ 017.=4>32+67632"354&76&'&6?%,#//$ * M ))   d  dA(/$$/d F$  )FF) Z Z@IWcX/Y/X и /Y)ܸ Aܸ-и)Bܸ6и P#F+#B,+B и,Q01%&'.7>;54&'&#"'&547>>32+67632'&7354&#"7>=#"$MA(F* M$4/# ) L% ))*F#- M%$,F$  $/d F$   F))$F),r%/MٸN/O/Nи/O ܸ ܸ)A))&)6)F)V)f)v)))))) ]A))]и/ -и 0и0/ 3и3/ 5и5/ IиI/,+, &+ $и&.017".54>;54&'&#"'&547>+5";5#/&'.7676767>/$$/F( L$$+ d))FF~ %&  %& $//$D" @' ))     ,$-HI/J/ܸܸIи/%A%%&%6%F%V%f%v%%%%%% ]A%%] и /)и1и1/4и4/9и9/)+)*+0154&'&#"'&547>+".54>3;5#"6'&'.'&'&6?( L$$+ d/$$/F)FF)HZ       ZD" @' $//$)) F    F"%.=>/?/$ܸи> и /$ܸ &A&&&&6&F&V&f&v&&&&&& ]A&&]и/**+++01%+".54>;54&'&#"'&547>';5#"&'&6?6" d/$$/F( L$$+)FF)<   d  d $//$D" @'d))c Z Z"%/=>/?/>и/? ܸ ܸ)A))&)6)F)V)f)v)))))) ]A))]и/ -,+, &+ $и&.017".54>;54&'&#"'&547>+5";5#/.7>/$$/F( L$$+ d))FFZ  d  $//$D" @' ))f Z Fr>??/@/ܸܸ?,и,/&ܸ= + )01%#"&546326=4&#"&'&6?>76&'.#"&54676r(7  &44&  & % G"*7( 4&&4 "    $>: - D*6Qj 7#/ +  и 01#"&54632"&54632#"&546326?&676>15 ##+  %$u \[ x&B9y* x  1  p:1:HI/и/>A>]A>]A@>]7A7]A7]A@7]ܸ>ܸ7'и5иFܸJ;+;2+7+7и2B01%#".=4>32>32+67632'&"354&26=4&#" 4/$$/44/# ) L%P))))))-$//$$/d F$   z)FF)))))4 %C#+#и/и// +  и 01#"&54632"&54632"&54632? ;DG*'"+")///&/01'&'.'&'&6?6324632#"&5     Z Z     FFzD]+/01/.7>#"&54632   d   d'   Z   Z"D]+ /014632#"&5'&6?6&D*  d   d `Dm  Z   Z D9)HZI/J/I&и&/ ܸи/Jܸ ܸи/ *и*/ -и-/ :и:/0164632&'&'.'#"&5467.7676767>/&] *($$"  )(%$" 3 (%  &'  VS#LKF  VS#LKFHD h !   ! DL4 ,8S +  + $*+$++$0и*60132+32+"&546;2#'4632#"&'4632#"&><<DLG <C+%/'/)/+ + +01%+"&546;2+32+32&6?632'&'.'&L     Z Z       < FF   DL] /7++ + +01%+"&546;2+32+32.7>/L       d   d <   Z   ZDL] .7 +  + ++0132+32+"&546;2#6&'&67     H   d   <<   Z   8ud=+017.54676&/.6?>&'&67>=&#"2>>22-&   7$$7   4  Q4T4Q!  //  %"4  "D|,3K + и- + %+%-+-+0132+32+"&=#'.76;2#|     #*/<h,  @\N_h09=H>*+>01'.7676767>/&&'&'.'#'.7>32.' &%  &'       0    !   !,  **  D `%OLEELO%G;F///<(+<01632'&'.'&'&6?&'&'.'#'.7>32.' Z       Z      0  @F    F  **  D `%OLEELO%] ,7-+-01>/.&'&'.'#'.7>32.'  d   d       0  Q  Z   Z   **  D `%OLEELO%]-8.+.016&'&6?&'&'.'#'.7>32.'   d   d      0  T   Z   Z  **  D `%OLEELO%802DE/F/Eи/F$ܸ>ܸи/$и$и>0и0/7ܸ>@ ///,/+"+9,&ܺ0,&93и3/&:и:/01".54>32>;2+32+32+"&'"326=54. 7))7 -    -%33%$4 )7 T8) hlh D4$%33%, 8h]'5S6/7/ܸ6 и /и ܸܸ&+!+01%#".54>32#32654&#"&6?6&h)87**78)4$%33%   d   d  7))7 T8))8%33%T$4 9  Z   Z 8h]%3C4/5/ܸ4 и /ܸ #++01%#".54>322654&#">/.h)8 7))7 8)%33% 4&  d   d  7))7 T8))8T3%T$4 %3  Z   Z 8hG'C_D/E/ܸD и /и ܸܸ&//1/3/+!+01%#".54>32#32654&#"&'&6?632'&'.'h)87**78)4$%33%   Z Z     7))7 T8))8%33%T$4 6 FF   8h<&EKF/G/ܸF и /иܸ $+ +01%#".54>322654.#"676767>&/&'.h*7 7))7 7*$4 %33O&'  &%   7))7 T8))8X3%T 4$%3!  !  %-56/7/ܸи/6и/*ܺ*9и/и/1ܺ"19#и#/. +.&+ .9"&901#"&''.?&54>327>".265 <)8";( ;)7 ":(%3 *$4 * l 7)J  lT8)J i4$33% <l] /;0/1/ܸ0 и /ܸܸ+01%#".5463232654632&'&6?6l)8 7)3%$4   d   d 7))7 4%33%46   Z   Z<l]-3.///.и/ ܸ/ܸ+01".5463232654632/.7> 7)3%$4)8(   d   )7 4%33%4 7)   Z   <lG;?767>#"&5&676&'&6?6%   o   d   dL#(,  $  :   Z   Zw4'3M+9и/1и1/ /%+%(и.01>#"&5&676>?'4632#"&"&546328   o'*Jvn  $  L#T|1{2/3/2и/3 ܸии ܸ"ܸ+и0-+-!++#и*0146;2+"&5#"&546;54&+32+3265Q x8))8x 0  03%XD  DX%3\)8 7)  x$4 3%LDt|)_*/+/ܸ*и/ ܸи ܸ '// +&+и(012+#"&54632326=4.+37**7X  X$4 XX)8< 7)v@^3%< `1HUF5+F&,+&+59J/)/2/=7+=7D01>7676#"&=#"'&'.'#"&54676"&5#"&546;2+          F   Er$$     ,      '~%=UϺP2+P+&D+&ADD]A DD)D9DIDYDiDyDDDDDD ]APP&P6PFPVPfPvPPPPPP ]APP]W>,+>8J+80167>'.=4676&'.#"&'.5467>32267>54&'.#"[ E$$..$$E =0.-uA@u-.00.-u@Au-.05^%%''%%^54^%%''%%^  ! ;&&;   {At.-11-.tAAt.-00-.t'%%_44^%%''%%^44_%%''~%=U9D&+D+ + 2P+2A]A )9IYiy ]!ADD&D6DFDVDfDvDDDDDD ]ADD]APP]A PP)P9PIPYPiPyPPPPPP ]2WJ8+J,>+, +01%"&546;2&/#74&+326467>32#"&'."3267>54&'.!  P(": E"u110.-u@Au-.00.-uA@u-.0@4^%%''%%^45^%%''%%^ ( (!4f  xi c.At.-00-.tAAt.-11-.tD'%%^44_%%''%%_44^%%'>)5 +-/01&'.7>76#"&=46?6'.#"&54632 '' 4 @ 2 3."  %: !>3$PP73(":l  +//01"&546324632#"&5d1  Pp'DK 56/7/6и/#A##&#6#F#V#f#v###### ]A##] и /7ܸܸ3и3//014632#"&.'&6?6=46327>7>&23 2 '  5 @: !>3#PP73((  &:\ +//012#"&5462#"&546d p}e +A ]A  ) 9 I Y i y ]+012#"&54>2654&#"$9*)9$}$*99*$/BN/ /"/01&'&676=#"&546;276=#"&546;2&'&6\         L   0).  0)  1D/ /"/0132+"&=467632+"&=4676/         D   0)     0)  /Cz/ //016=#"&546;2&'&6746;2&'&676=#"&D          0)  I  0)  @  C//ܸ ܸи/ܸ+и012#"&=464632#"&=dd dd.N //0172&'&676=#"&546;p     N 0)   1 /0132+"&=4676{     D   0)  .z /016=#"&546;2&'&6D       0)  @+ / /01#"&=4632  dd6Z / /014632#"&6/$m"+"и/A]A )9IYiy ]и//0172&'&676=#"&546;"&54632p     N 0)   *6 e+A&6FVfv ]A]и/ /017#"&546322#"&546*&/N /016=#"&546;2&'&6D      0)  .P #++иии!0172#"&546#"&546324632#"&XtP*;x774767>7.'&'&5476'&'4767>7.'&'&5476'&   @ D    @ D  % "  t{   % "  t{  ,h7&/&?>&/&?>d   D@  D@    " %  {t   {t   " %;'&54767>7.'&'&5476 D    @3{   % "  t,&/&?>   D@  " %  {t  07 +ܸи и )и//&/01747&=4&#"&5463232#"#"&546326=`!!)  )11))7 +ܸ ++012+"&546;#"&546;  dDDd$P+A]A )9IYiy ]01'.7>7654'.'&676"#B -- C""HjbfT  &T-X_^Y-T&  Wcb8T+A&6FVfv ]A]01&'&'&547>7>-- C!""2! &T-Y^_X-T&  Uebjjb3\+ D;+ܸ ++01"&546;2+32+ddDDdPd2;+и ܸ"и +и1/(/0132#".=4&#"&546326=4>32#"))**))w<+/0174632&'&676=  =4 =~wv6767>/&'.7>(  ((   p    tl  +и 014632#"&'4632#"& Bv/ / /01&'&6?632'&'.'  Z Z      FF   M/.7>B   d   d2   Z   ZM6&'&6?   d   d   Z   Z07` !%/&54?6X  /)$!!$)/ C     '""'  @7p !74767>7.'&'&547>&'&@ 0)$   $)0    X '""'      8h'++ и01%2+"&546;52+"&546;H    LT' // /&/01#"/#"'&54?'&5476327632K NN MM NN MM  MM NN MM NN 8th %y+A&6FVfv ]A]и/ /#+#0174632#"&7"&54632+"&546;2*  X8h/[+&и-*/++ ии%и.01%2+"&546;2+#"&=#"&546;546323H  X X  X X@XXXX8h@' +/ +012#"&=#"&546;H   @xX</01.?632&'&'.'G     - ,     33 8h K+и/ /+ии012+#"&=#"&546;546323H  X XX X@XXXX&}˸ /!/ܸ  и /A&6FVfv ]A]A]A )9IYiy ]++01#".54>3232654&#" ,+  +, ####+  +,  ,####H4\ # +и //012#"&5462#"&546hpXpM4\  +//012#"&546m\5k &'&676f      5k '.7>S   l    + 012#!"&5463!   p+ 012#!"&5463!  P@+ 01"&5463!2#!  @+ 012#!"&5463!  @C[P /5/01#"&=.'&67632;2765./.5&676754632&'&'&#"+"% 1 &}# / %~';! ; 34$  "'! g8 :44"  $%gZDDOE/F/ܸܸи/E%и%/ܸи/,и3/0/01;27632#"&=&'.=467>754632#"'&+"    %,,%    "" 44A))A44 #|9U6+6и6,к869++-и4и801%2#!"&'&67>=#"&546;54676&'.32+3\   0  07+,R  +XX@  --G "'  %,%"~?MN/O/Nи/HAHH&H6HFHVHfHvHHHHHH ]AHH]и/Hи/O0ܸ@A@@]A @@)@9@I@Y@i@y@@@@@@ ]#и#/@=и=//&//:/K+K E+ 017"&'#"'&54?.5467'&547632>327632#"/74.#"326*%  $ $  %**%  $ $  %*A %33%$4 $  %**%  $ $  %**%  $  4$%33!~9a2+2к292)6/+ +!и (и*и1017#"&546;5#"&546;'&6767>32+32+#"&5TTT@u oo uH\\\`   `lMc*+и и*3и*<+ ++и2и 4и;0132+32+6?>'.=#"&546;5#"&546;54676&/.$  X  X$7   ^32>0000>23^   7=/:`:/  -(Q4:`:4Q(-  -0>K%&'&'&6?/5#5.7>7>&'7>'.'&/767]2=6 PD@&&=@L ,O 5    )AF&$d# %A ;hXI !%(""IRc!3  He  {E&%5UZ% !-s~/c+и//9999 9(901#"&=&'&6?'.7>5463276' U  TT  U T  TT  a  a0 11 0a  a0 11 &W3?S_mCTJ+T@Z+@=/+=%7+%++A]A )9IYiy ]A]A )9IYiy ]A77]A 77)797I7Y7i7y777777 ]A==&=6=F=V=f=v====== ]A==]A@@&@6@F@V@f@v@@@@@@ ]A@@]ATT&T6TFTVTfTvTTTTTT ]ATT]o +O]+O+WE+W и *и4и:01%2#".54>2654&#"%2#".54>2654&#"#".54>3232654&#"%'.7>+  ++  +$$$$+  ++  +$$$$ ++  ++ $$$$d   ,+  +, #### ,+  +, ####+  +,  ,####]  D &,3?M4*+4 :+ ++A]A )9IYiy ]A]A )9IYiy ]A  & 6 F V f v ]A ]A44&464F4V4f4v444444 ]A44]O +/=+/+7%+701%2#".54>2654&#"#".54>3232654&#"%'.7>,  ,+  +#### ,+  +, ####c   ,+  +, ####+  +,  ,####]  D ~CG˸H/I/ ܸи ܸHи/ܸ"и+и2и4и ;иDиE//8/ //+<+<ии!и#и<*и<3иDиF0132+#"&=##"&=#"&546;5#"&546;5463235463232+3TE  E c F  FF  F c E  ccyc     c     c"z$-)+)++%A))&)6)F)V)f)v)))))) ]A))]/ //+-+-и#и%012+#"&5##"&5#".54>;#";  ' O  7((7 %44% z   q  )77(=4%%5;+0и7016#"'.32+&'&5476327>7#"&546;7>]#I  % >H<0#$H $:?  I0   R&8   v\&8:j K+и/ /+ии012+#"&5#"&546;546323JX X  X XD:j1k + ии"и ) /&/+*+*иии*!0132+#"&=#"&546;5#"&546;5463232#XX X  XX  X X*XH8T'.'&6767>76&/.7>7>&'.'&6#"/.7>>76* B!!7 (*!@ 5  &   Z Z    ?"";'  $ #&> !9%  '( FF   (XH)E + &+&0132+"'&54767>7#"&546;2'6#"/.7>>76X6-'! 5.'! Q  Z Z    \l.]O< l.\P=  FF   * ~6P7'.'&67676'&/.'&67>&'&'&6/.7>>765. ]4- ]  ZZ     03  B/2  A F F   *.~)C + &+&0132+"'&54767>7#"&546;2'>>7676/..)#   )#         ZZ OE=6+   OE<6,      F F[%3$ +$ и$/+$01%2+"&=&'&6?4632763;  >8  X@ #! 3 &#+и$!/016'.=&'&6?46327  ?  !  ? ! $ 3 $  F6J&c'/(/ܸ#ܸ и /'и/ܸ/// +  к 9 9012#"&'#"'#"&54632326546,   ''  )) p    X  )),  S:guv/w/vи/ܸи/ и /2и9иwCܸIܸSк]C9I^иCeиIkиk/oиo/;A+;AJи;]и;f01&'&6767>=4&#"&5463276'&#"'.7>322+#"&=#"'&?>3546323'.7>) !>      ..  W   d Y  : b  z"5       $ 3  3  %!=    D 5FTU/V/Uи/ܸV"ܸ(ܸ2к<"9(=и"Dи(JиJ/KиQ + )и<иE01#"'&54?6#"&52+#"&=#"'&?>3546323'.7>s Y     d Y  : b   X   3  3  %!=    D 9CQ+ &+ 01#"'&54?6#"&532+"'&54?6'&'&'.7676'.7>s Y   N  x   ()#$   X  g1    $ *)  D  +/01#"&=#"'&54?6  Y {   X4) +0132+"'&54?6'&'&'.7676 N  x   ()#$ 1    $ *)3}9+6и;1/01&'&6767>=4&#"&5463276'&#"'.7>32) !>      .. $"5       6+ )7 +ܸ%и+%+%&+01+"&54>;54&'&'.7>;5#" ) F*9$) >"))y5" 9*$)  R6+}!3"/#/ܸ"и/ܸ //012#"&=4>26=4&#"$$*9$}$$9*$LU@L'.'&6767>'4/#.767&'467>&'&'&>76&/",8,  p5, p,  P?!#!,2%    Y?!* -2  Z  @#(*f%0;327>&#">54&'32)0#!!T/-* )0$?U0-* #=.F _8/T!!#4  4 _80T?%4  4&B .=="&B Dt|%[&/'/&и/' ܸܸии ܸ$/+!+!0146;2+#"&54.+326=Dx8))8X XX$4\)88 7)@x 3%8)x</&'.7676767>h *3*  41 /     ,   "~?KL/M/Lи/FAFF&F6FFFVFfFvFFFFFF ]AFF]и/Fи/M0ܸ@A@@]A @@)@9@I@Y@i@y@@@@@@ ]#и#/@=и=//&//:/I+I C+ 017"&'#"'&54?.5467'&547632>327632#"/74&#"326*%  $ $  %**%  $ $  %*A3%%33%%3 $  %**%  $ $  %**%  $ $44$%33\>$`Hb 06H  V b Z . f 0dlH@&\Rrpt4rNrrrV D ! !p""##$V%6%&'V'(8()N))*"*+4+,,p,-H-.F.//0@01D12t23:34*4~45x56v7`8z89 99:2:|:;;b;;;<<$<<==`=>>F>v>??p?@@r@@A ADAdAAAB0BvBCXCCDDDEE,EJElEEEFPFGRHBHI`IJXLMHNNOObOP`PQVQRRlRSTU UTUVV^VW$XXdXY@2  "%+/3>@AEF%/3>@AEF%/3>F      ! $ % & ' + - / 3 > F  %/A>"%+/3>@AE  %/3>@AE!%/3>%/3>%/!""" "%"1"3">"@"A"E"F"$%%%)%)/)A..///122333@AE!0%/3>@AE<<@Gdhy*}   x X ` :n  "  T $. $R *vCopyright (c) Mrten Nettelbladt, 2006. All rights reserved.MisoRegularMartenNettelbladt: Miso: 2006MisoVersion 1.01 2007MisoMiso is a trademark of Mrten Nettelbladt.Mrten NettelbladtMrten Nettelbladthttp://www.omkrets.seCopyright (c) Mrten Nettelbladt, 2006. All rights reserved.MisoRegularMartenNettelbladt: Miso: 2006MisoVersion 1.01 2007MisoMiso is a trademark of Mrten Nettelbladt.Mrten NettelbladtMrten Nettelbladthttp://www.omkrets.se 0`2456789:;<=10/.-,+*)('&%$XYZ[\]WVUTSRQPONMLKJIHGFED#n|cbgl{yz}xwvtus~rqopmkijfedh" `@ >^C! A_?B    3auni0020uni00DFperiodcentereduni02DCuni02C6uni00AFuni20ACuni0192uni00B5phi     !"#$ %!&"'#(#)$*%+&,'-(.)/*0*1+2,3-4.5/60718192:3;4<5=6>7?7@8A9B:C;D<E=F>G>H?I@JAKBLCMDNEOEPFQGRHSITJUKVLWLXMYNZO[P\Q]R^S_S`TaUbVcWdXeYfZgZh[i\j]k^l_m`naoapbqcrdsetfugvhwhxiyjzk{l|m}n~nopqrstuuvwxyz{||}~libphone-ui-shr-0.1+git20130901/data/idle_screen/VeraBd.ttf000066400000000000000000001625341221067027500230420ustar00rootroot00000000000000OS/2=@VPCLT,eϘ6cmapXcvt >-Rfpgmp9)gasp glyf4h)&hdmxEHheadO$6hhea. $hmtxy,kernlocaXz[maxp} nameYͿpostx<prep|a!\::N:: R^0p   t t  &   ; 0  0   C , [ `   0 & Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved.Bitstream Vera Sans BoldRelease 1.10BitstreamVeraSans-BoldCopyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org.http://www.bitstream.comCopyright (c) 2003 by Bitstream, Inc. All Rights Reserved.Bitstream Vera Sans BoldRelease 1.10BitstreamVeraSans-BoldCopyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org.http://www.bitstream.comf3f=ffTbfTfmf3bq%fHZfm99Xm=fuff9{{X3fLfLJ#DDf?;Pw /X#/553X sf+j-j!f#^`3B3\fy```{j\{`bXP1L`%!JJ7{'}3Xy9bsA&%$!:$#"!:"!: d}}      Y    & Y @ &  .A@}>,,G}G  @ 2 d۠d%%%   %ё%Д #&̑ɻ]ɻɀ@%]@%dĐ::2  }& @ ]%]@..@   K%%%2 ~}|{zywvwvututsr}qpo,o,nmlkjihc h2gf2ed ed d@cb c b a`a``_ ^]\\[Z[ZZYXWV@VUTSRQRQQPOPONONMLKLKJKJIJIHGFGFEDCDCBA%BAA%@?@?>?>=< =< ;d:987656%54554 4432 33@2 10100/ .-,:-,%,:+d*d)(''& %$#@+$#" "!!@  %@ K}K%%dd   2     @   @d  d++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++, %Id@QX Y!-,%Id@QX Y!-,  P y PXY%%# P y PXY%-,KPX (EDY!-,%E`D-,KSX%%EDY!!-,ED-ff&&/10!%!!fsr) @ <2991/0!!!!h33h^h@1<20###h++)K@1     91/<2<<22<<220!3!!!!#!#!5!!5!!!`aaE````HFR`PF#*1s@? %$ + ,#,, (/($ +/ 2<<991/99999990#&&''&&546773&&'6654&}osy!dede GUNWWP-.);?7* "*/(BE5;CBBDCB '3c@5  % ."( 41+  1 +%49912<0KSXY""32654&'2#"&546#3!2#"&546"32654&3GNMHHLMGֺ%պպHNNHHMNh{rs{{sr{ؽ۽ ٽڽ٨|rs}}sr|{&06@Y     ,-./+0()'%0' - -! '*$ 0$*$  *  199999991/99990KSX999Y"']@   ' 0   0%/ / %&? ? @K K K/K0ZZUZ Z U(\.\0X2_2dig`i i d&2, ' '* 9 5005@J I'I(WW\ ['ggl ]] >7!!'# 5467.54632.#"3267577oc%Xbi*([k^PMU1ABwCt2>FnkmFDےj5j:0.;6"W/wGs))@ 10#+ @ 29910!&547!י);: @   29910654'!)?C)9F@(      <2<29912290%#'%%73%JLLNLNMXX "@   <<1/<<0!!#!5!    m9@ 10!#hduo10!!ot91/0!!h}B/99103#mb/ #@  10&#"326! ! i||jj|{j@'&@mstm (@  1/20!%!!!T[nT HH5@)% 9991/2990KSX9Y"K TX@878Y@&**"""555BJFF]]!!>54&#">3 N!IFuZzz )~B~DiMLH+-zӱ(L@+  #)& )999190!"&'32654&##532654&#"663 sqlg~]^rl#!%'%%)67jcfi[]V^*) \3 C@ !  ! %    <291/<290KSXY"!!3#!!Z@jRJ=@"  " 190!!663 !"&'32654&#"v,Y00{zaSl 12/FFuv+-# $7@ "% %$%190"32654&&&#"6632! !2eeeefeev_PB[uEgჃ-+11ir E@%91/0KSXY"]@ &5F]!!!e'1} #/G@( '-0 $*& '&!$0991990"32654&%&&54$! ! $54632654&#"lttlkrr|כc\ZbbZ\cvnnuunou)ž)*ސUY``YY_`j$7@  %%" $%19073267#"54! !"&2654&#"\RDZ9$@ieffeeff!++22 "vYN`@<21/0!!!!ii`}}N` %@  <210!#!!idiu}=@29190 5<'@ <210!!!!=@<91905511J!H@'    "<299991/9990!546776654&#"6632!!Bj@95`VQfy]N^@D*i1Rb:4\.FOCB:*(ǿbY9>K-o Ml@: 40LM3 30 07$CN34L **)(I(*)4=N<991299999032654&#"#"&54632536654&'&$#"3267#"$'&5476$32!#?iZYjkZXiYثY|:;_tZked~Yk}٘~~On{KM'{zyZGOPGKɝdIz=;bɵdbg^Pag}}IJ}|b~ ' @@     %    91/<90KSXY"K TX  @878Y@ / V f  t   %* IFGH XYVWhifg` t{zu{t      /]]!!!!!F_}))}+%R P@%    !299991/90@ ""/"P"]2654&+2654&+)! [^^[tutuH|B7fPNMQsbcaay$ռmf\;@    - +21990/_]%# !2.#"3267\j}Lu}jksskR78ef87IDDI9.@  -. 99991/0P]32654&#! )=TMwiffixjq#ateeta 0@   21/0 P p ]!!!!!!rg +@ 21/0 P p ]!!!!!rgfK@%    1 3/-+19990_]%# !2.#"3267#!ʥLy}|@   221/<<0@P ` p ]!!!!!!89+y=71/0KTKT[X@878Y@P]!!+f= L@   991990KTKT[X  @878Y @ P ]!!#3265N3IO@UZfi ]]!!!!mR+ff 2@  -7-+10@ /?]"3254 ! f°±hhgddjk 1@   - 299991/0]! !#!32654&#1pzzp_mddlffb@   - 7-+999190@,  '/V S f ` w w p  Y Y YXj i x ]]# ! !"3254fgk-¾lkh\@2%       29991/<9990KSX9Y"]@66EEVVPee`]2654&+!! !.#yiiyL'O}@f7q^?ZgfX֔-XspR-'@*% %( "(999919990@Tp)9999 JJJ X ]\^^ Z!joooh o n!t t t || |!  !  !(]].#"!"$'32654&/.54$!2{hYuӎ⏏ |~[ {78LP@881/20K TKT[X@878Y@ ]!!!! `N3@   91290@p]!3265!! yy6= '@'%91/290KSXY"K TKT[X@878Y@,  GGHHEJWX]]! !! 5N+= x@J 6  6 6 6   %     91/<2290KSXY"K TK T[K T[K T[X  @878Y@  % :?:?3 0 0 @ @ @ ^^a          '('(%* /66220002 4 6 ?IFHE J ]]ZZUURRRZ U ] ooonhheh k n i o wwx v x   K]]! ! !! !=qsnDD==+o' @E    %     91/<290KSXY"K TKT[KT[X  @878Y@X  /& <3 _P      ++%$%+ :55: P ejo  ]] ! ! ! !omGF@(%:: 91/290KSXY"K TK T[KT[X  @878Y@, %%0@P` %*5:0 O o ]]! !!TTu\q w@% 991/0KSXY"K TK T[X  @878Y@ %)69? FHO V_ o ]!!!5!s8!7@210!!!!mB/99103m@210!5!!5!m`@ 91290##fg--/10!5۾^fN10K TKT[X@878YK TX@878Y] #yfxX{ %@*   # # = ;&229991/9990@L/'= =!?'M M!] ]!n n!~ ~!p' ! ! ! !20C@SPc`]]"326=%!5#"&54$!354&#">3 pq[QeiH"ӆsUst/ LJDMm)f]ˢŸUO..^ 8@ B@ 221/0O`]%2654&#">32#"&'!!syyss{{{Ju uJf稠b]]bX5{7@ B ;210_].#"3267# !25IOT@TWV/X=202177\8@ @B ;221/0O`]!!5#"322654&#"hJu tsyysryyXc\II]ɨX {C@!    D ;9190/?]!3267# ! 4&#" q}K"=w`h3f~~CD015:“f}un'`@    E <<991/22990K TKT[X@878Y@ ]#"!!!#35463L<27DN`N\Fy(K@& #& @ B;)221/990O*`*]%#"54325!!"&'3265"32654&Ju uJhic^[o|xsp||b\CA\c !655@   G 21/<9990`]!54&'.#"!!>32 H.pfQnVon#'b])@ <21/0@ P ` p ]!!!!ff`F =@    <2991990@ P`p]!+53265!!fͱ>fLf`\y @   291/<90@`;IIZ]X_ogvv{:DGJV]g`ewpv|]]!! !!fNNK- 1/0@ P`p]!!f{%t@)   #  H H &<991/<<<29990KTX&&&@878Y@'0'P'p'''']>32!>54&#"!4&#"!!>32DpFNfo@RgphBgthmVH wkHk`_`p{5@   G 21/<9990`]!54&'.#"!!>32 H.pfQnVon#'`b]X'{ -@  BLB;107?G]"32654& ! w}}wu||u!EG{88V^{;@B @ 2210O`]%!!>32#"&"32654&fJu us{{ssyy b]]7\Vy ;@  @B;2210O`]"32654&#"325!!ryyrsyyyJu uJhw+c\IG\c{C@     21/990KTX@878Y.#"!!>32/]/fE}*(/`nejb{'@@  6  6% %( SRP"M(9999190KSX99Y" ]@^ #  ,. . . . . ) 9; ; ; : : K J J J H w w  %  7 ?)_) ]].#"!"&'32654&/.54632s_fcKa?o}ktijIm?c=0035+. ###44:90/ x@    T<<991/<2990KTKT[KT[KT[X@878Y@??PPP`` ]]!!;!"&5#33q>\Ա%N7>`;@  G 291/29990`]!3265!!5#"&hG.pfQmp[.w#&)b]`@'%91/290KSXY"K TKT[X@878Y@| 0@Vf  &$+)64990FFII`x$]]! !!fgGw`H` @J 4  4 4 4   %     91/<2290KSXY"K TK T[K T[X  @878Y@ 550 G @ @ _ l        &$+)*+ $ % /554;::78 ?GIFHGH YVV[ T Y _f`b```d ` upspppt p      []]!!!! !H\+\yy` ` @F    %    91/<290KSXY"K TKT[KT[KT[X  @878Y@  / 3< CL R\ bl sz         2     $++$ 4;;4 0 DKKD o       :]] !! ! !l{{l=#LbF`A@C %    9129990KSX9Y"K TKT[KT[X@878Y@ @Pet $$$5586699EEJJEEge    9]]! !+5326?f-f)Gp[S `6:K\F` @% 2991/0KSXY"K TK T[X  @878Y@DYVifyv &)/ 9? J_ ]]!!!5!uNN`f$^@1 %   ! % $  %<<29999999199999990#"&554&##5326554633#"3l==lEUZnoYUmutWW10#$`@2%   #%# %<2<999999919999999032655467&&554&##53233#"##FUZooZUFl==lmWW͖tuR#@  1990#"'&'&'&#"56632326j`k^Xbk`k^VRPE:=MSPE:=K 'k'$u 'm!{@S!! ! !%! !  UU "9999999991/<9990KSXY"K TX"""@878Y@/!/!:!o! !! # ///  /// "+ #EKUZ` ` ` ooo``ooo`fi `#tuyz{t    D]] !!!.54632%32654&#"!}^_}vtwM66MN56MJH"K+uu/L{6MM66MMRfo\'&sk'(um'15uffk'2Nuk'8'uXf'DXf'DCXf'DX1'DX9'DX'DXo5{'FX f'HX f'HCX f'HX 1'Hf'wf'Cwf'w<1'w9'QX'f'RX'f'RCX'f'RX'1'RX'9'Rf'Xf'XCf'X1'X5; *@  WV W <<1220!!!!!5!VJ#!/dL @  XYX10"32654&'2#"&546HdcIHdeGBz0/11-0|D\dHHbcGHd3/0xDCy-03#W@.    !$   B$<<222991<9990&&##667###$4%3NMMNJAY9S: GZ,lm*902i2/  (.##}@@!   <<1/222990&&#"!!!!3#5356!2FMvqu\'&} F=3?k@8@1:4 %+1@ =!+%74:!=\.!\=[.7[(@9999991999990&&#"#"&'532654'&'&&5467&&546326654&uc9KL ҟquMKUfs9AN$ˠoqKATDC{AF''1/CO Y}u0)qI)+2(FJWh33oKL2CbBO4Cj'` ]104676632#"&'&&'535II245633JI326J235624IJ336633;d &@ ^^9120!###&&54$\fN۲h0j@4.(" !++/"!(%  a%.(a_ . 199991/990@ /2O2p22]4$! #"&'532654&/.5467.#"! 1]EtkAJ8s6HX7bFXT`[efZG NJ%94%@uH9/D7'1Zt2UYnm 4Lb@8-*+'0!5 2+A'*,$0-+$!1g3f$cX;eX3cGM299991/29990"32676654&'&&#32654&'2#'&&###2#"$'&5476$yWWWWWVy{WWWWWXϲ##NOM+i`)Gok&: 1mmllmmmmllmm3WWWzyWVVUWWyzWXV5442wyVpP:NAD7nmmmmnnmmmmn1IH@(  2&>f,X c8e XhDJ21/990&&#"3267#"&54632'"32676654&'&&'2#"$'&5476$+9o9q~r@s.A>EyWWWWWVy{WWWWWXymmllmmmmllmmf%#rs~$#WWWzyWVVUWWyzWXVnmmmmnnmmmmn'R v@>  %    ji i ji91<<2<<9990KSXY"73#######5ww㪉LqKBMmf710K TKT[X@878Y]!#f;;1\@1<20K TK T[KT[KT[X@878YK TX@878Y3#%3#1 =@!      <291<2<2.990!3!!!'7#5!7!^P1}@7%     /<291/<90KSXY"K TK T[X@878Y@&W ] !!!!!!!!!{y}sfb^- +@> +,   )*&& &,+,* # )-#7-+,99999999199999990@p- -*'&!/-976!9)?-GYVT!Y(Y)jege!j%j($'))68)KFE I)Z^SVV T!V"[(j ejlaf c!k(x ]]3254&/.#".5!27!"&''\4SM3RJJgfqMLhfqs>;Du1:9@q.dkKMscdOOq /B@#  $'!-!0 $k*k099991<999032654&#"&&#"326#"&546326632#"&+vIZqgLHw+tKZqfMGzDaƯZcG_ů[1CDeOMeeCCdOMeia~q~n .@   l l <2<21/<<0!!#!5!!!  bb '@    <2291/90%!55PN '@   <<291/907!!55%y@B  %     nm n m<2<2999991/2<<<290KSXY"]@, $+6:FI   0@ ]]!!!5!5'!5!! !!!!N9:1k$! %j1`BV3VBT` :@!  !   !2912<990!3265!3267#"&'#"&'idfgdh!'!5]-Yq#/YJhT utqqtG8 KSOO/0;R)8@'! '!* $$*99919906654&#"#"&54632#"&54324&#"32;'#S0@eID`IFa~q9WzC2EqG Ur|tx)w O@    91990@ &#)  ) ( ) 8 ]]!! !!5 Bl_{Nw@pp120!!!!)JD/@    991/<22990#!#!#"663J'7: Ddd>Dǜ3,B*# @- *(&  qr q-9919026732#"&54&#"#"&54632jciRA@Ae '&>ÄkTF32-ӅhB:Yr 7^YUWO\K=4>3:rWT@LHt8;##uu 9A  @  uu 99102#"&546!!"32654&B7T[[TS[[޾ܾM~tt||tt~7F   @  xwx w 9991/<2990!!654&#"!!&5! #~˲˄~#~zx89xz#VˤUy9yǤX{>@B8>66'&# 6-*>;0*? - 6 & 7 3;?<9999912<<<9990@N>>?@MMO@^^_@nno@@@2=0>B=@>R=P>b=`>=>=>=>=>]]4&#""326=>32>3 !3267#"$'#"&54$!354&#"w`gpq[Qe^waGMz =q}~Heߋ"ӆsUf}unLJDMm)JMOMOf~~CD01kdkdŨŸUO..N) +@> )+ *& &&++, #* #)B#LB;,999999991/9999990@@:5 ;75!8)?-IF KGD!H)[VT!U(ikfe!e(5:)EJ)U^(i em( ]].#"32654&'.5!27!"&''XK/w}HO0u|;CDG"jKmFElMpD)A+CN{8,,eP~--^!M@*   "  "<2999919990!3267#"$54677665%!!iAm@84`VQew\N^@D*ii1Q~d:3\/FPDB*(ǾcX:=L-d @ <2991/0!!!33h=^qd@ 10!#!LZ n@*      %  @  9190KSXY"3##'%`w͑%hN7V7#w@I #"!   %   !$2299990KSX92Y"&&#"!!#"&'53267#5!766327.T*Zd!)AD.U)Ycu!3*Bs_sM#;C@!.9* 1 "9*1<-<<219999990#"'&'&'&#"56632326#"'&'&'&#"56632326j`k^Xbian ^Vgj`k ^Xbk`k^V#PE:=MSNE;=KPE:=LTPE:>K  @ /91/90!!!#-3mV?j' 5  @  y y<2991<299055%$'qsq' 5  @ yy <<991<29905-5%%%!$'^ #@   1/<<220!!!!!!hhh}}} 'k'$u 'm'$uffm'2NufP@"     -+ 299991/220@ !!?!O!_!]# !3!!!!!!"# !2i iZhsf / F& 0ihX^{'3t@2"  .(%4"1 1 +B;499912<9990@/5?5O5O5_5o5o55F"]]4&#"!3267#"&'# !2>3 %"32654&w`hA q}~~HRՂG"QRLJBcw}}wu||f}unwf~~CD01QWTT88RVWQ:/10!!/10!!X +@    1<20!3!3!ddXb`Xo + @  1<20!#!#!TeTe`^X@ 10!3'dX`X9@ 10!#Td`V 0@  z{z <<10!!!!!!33Xˁ#uv@A%91990KSXY"  9%-F1'\k'<uh+@55%10KSXY"#3 J=#/@ ! ! $A !* @&00   '}|~-} |022999999122999990'7&&5467'766327'#"&72654&#"ϙљ0l=6l9ϘϚ.j?:l[\[~ Ϛ1k??l.͚Ϛ7n6?i/ϙ\\\]~'y291905%'q'y<91905%%$'+Bu@&       ET<2<<991/<2<2990KTKT[KT[KT[X@878Y@]!!#"!!!!#35463iJK:k$7DN``N'Bl@!      ET<2991/<22990KTKT[KT[KT[X@878Y@]!!!"!!!#3546{L<)7DN`N3;?@!   W VW <<<<2912<220!!!!!!!5!!5!VJ###!<}910!!h}L@ 10!#Te`F + @  1<20!#!#TeTe`^B V #/3?K|@C3 2211 003%@ *$F4 :02$L3IC1!  C=!'= I7' -L9912<<2220KSXY""32654&'2#"&546"32654&'2#"&546#32#"&546"32654& HNNHGLLGֹHNNHHMNGպֺ׺GNMHHLMh{rs{{sr{ؽ۽8|rs}}sr|ٽڽ ؽ۽٨{rs{{sr{ 'k'$uk'(u 'k'$uk'(uk'(uk',duk',du)k',du=k',duffk'2Nuffk'2Nuffk'2Nuk'8'uk'8'uk'8'u` 1/0@ P`p]!!f`yf6@ 91290K TKT[X@878Y3#'#Dzf\9@  @  999919999990K TKT[X@878Y@T              ( ]]'&'&#"#4632326=3#"&7/$&g]$I)=%$(g]$CT%>;+@9X;E10K TKT[X@878YKTX@878Y!!vPF i@  1<0K TKT[KT[X@878YK TX@878Y@]332673#"& cSSc FFJJFw;1*10K TX@878Y!!w1 C @ : 10K TKT[X@878Y32654&#"4632#"&}M67LM67Lvvvv7LM66MM6vvvo5@   991/0K TX@878Y!#"&/32654&'Z:7{0f42S!:A+->j/_[ .(R<fE@991<20K TKT[X@878Y3#3#-fxVo@   991/0!33267#"&546ō2&;1'M(7^)s{6CI'1 \V5myf6@ 91<90K TKT[X@878Y 373Dzx `@2 %    <<.9991/90KSXY"!7!!'%s۔#` j ~@-   %    T <2.991/90KSXY" ]@ut@ P ` ` tp p  ]]!7!'7ho}o XV-k'6ujbf'Vb\qk'=u\Ff']T@ <210##  !L @   -. <291/<20@X!P!`!////////OOOOOOOO________(]]3#32654&#! )#3PULxhgghyk#ateetamX'(@Y&'('%$%(('"#" ! "! 5((5(%('&%"! ## #)'& !#(%" BB;)999919990KSX92Y"KTKT[X)@))878Y@6f!/*76"?*O*oooooooooo]].#"32654&! 4!2''%'!%7l4uru| uj-.N$%3`ox#y-\8 watr`k'<uFf'\ @  - 2299991/0K TK T[KT[KT[KT[X@878Y@,0000PPPP]]!!3 !32654&#=1pzzp]mcenV^;@B @ 2210O`]%!!>32#"&"32654&fJu us{{ssyyb]]7 10!!) /@   <291<290 '7NNNN3NPPN{ 7  @   129035733!9 41Zm]@%   "@99919990KSX9Y"!!56654&#"56632r_9=4I;>TWKGeD 5P(2>-/oHyVZ(W@ #  ""#@#)& )99919990#"&'532654&##532654&#"56632P\fQDB<_hkrJTbZNP4{FAWZ`nQ$%@;@=/3--piE`d @     % @    229991/222990KSXY"333##5!5#335733!9y+ I 41Zd'@   %!   $$& !&"@ #%# (9991/299990KSX9Y"%!!56654&#"56632#335733!qt];>3J<>UXJIc 5N'2?-0oH|T I 41Zh 6:@ : 9988 77: %.1* #! #!$-*$!#917@$$8'" :!'"4  '4-";229999991/2<299990KSXY"33##5!53#"&'532654&##532654&#"56632#3'y%]fQDB<_hjsJTb[OO5zGAVZ-D7#nQ$%@;@=/3--piE`q fk'* 1u\FF'J=k', duo-'6job{'Vbf\k'&fuXuf'Ff\k'&fuXLf'F\$K%@"      @"B;%<<1/<20O&]!5!5!3#!5#"322654&#"FhJu tsyysryyrr+c\II]ɨo10!!ot910!!h}1r@;.*(1.!2*("%!) 2 +) )% 2229999999999122<2990%# '#73&&5467#736!2&&#"!!!!3267_pKXbXMep_Qc-VY2~cTR78 87NO{v$$ zzOO;@ 1<203#%3#mN810K TX@878Y@ //]!#3\#@  @! $  $999991<29990K TX$$$@878Y@\             ##+]]'&'&#"#465463232653#"&8- (kW%J';'%'kW&F#<2j'<9j810K TX@878Y@ //]#yE@ 91<90K TX@878Y@/// ]!#'#f4߲DzyK@ 91290K TX@878Y@//// ]373f߲DzP S@  120K TX@878Y@///// / ]332673#"&`LL`=<<=w*10K TX@878Y!!w  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~>: ~1BSax~ & 0 : !""""+"H"e%  0AR^x}  0 9 !""""+"H"`%^ChVjq_8 (Bbcdefghjikmlnoqprsutvwxzy{}|~f+B{s/) mRo b\}j331 fwwf3ff)u 1 =+'\^fXX\mX{'\RVX\j7dH)7\1 1 fwffXfXfXfXfXfXXmXmXmXmX<XXXXX5}''m-Z;)L'3u'7bXNVL++1 1 f VfXBB  7VhJLL+'3  B B1 w1 ww)fffwV#j\\!X7{mZHdHdHhf\jfXfX\Ro mw   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    sfthyphenperiodcenteredEuroc6459c6460c6461c6462c6463c6466c6467c6468%%%%Nq] 6 N{U?u<_O K G E a > *2e:\u#p|$Z<~*Z@!I"dqjw   - : G T a n { !!]!"""##$.$%!%K%%&H''n''((()6){))*<*++p,5,-8-a-}-.B..//\/////00001161U1t112 2292233v344-4L4~5*575D5Q5^5k5x5555555556 67667H7k778'8W889-9:9G9T9a9::::;O;;;<>>>>>>??????@4@T@AA@AuAAB 79k:;Y<$&$&$&$&$7a$8$9u$:$<<$Y$\$h$D$D$$<$r$r$$$$<$%9%:%<%%&/&6&&K&K&&&&'&'v&!ZpdĦT'܅`;W/WWb9re}ݲ` x5{u SIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/background.png000066400000000000000000006057461221067027500240140ustar00rootroot00000000000000PNG  IHDR tEXtSoftwareAdobe ImageReadyqe< IDATxڌ[ksGm̐Ӗ8V]ުڎD4Pt*8/4pm  }F71@Ģ_1,B|{ܼ_Wo(6b&n!K@#cxxvN *oT)zq)4,^ B₃i?S4lfMkc峮 `7 <7!4[K{/s0~g7 cI f-7}Yb.l?LECwW?._?=  LWgBWIYS?FWNMP+6뗆?ea1_ 6n;:Ho!!t8l={0nP|>iՂ)FHTC*`$Be!*ilՃ{eJ^ xZ3zQ_}Գk-ʑe~nCӮ:n8]!'|yu~,d%wwC1mD)e@b.m`Y{!ԊJCk<?GYGov14 #)q`ŽW79pA|qfիWhmN{7G5!wDh4M?U,Bk3J=^= X>'˵G q˩Oo/QPp(eCCZd2s"\/!:C+.Y-'LP:hс~}Gqir3"ï\(C4bAKy2zfIyמMꞫy X'K{|q׆V , h̉]`9Q`I-HZ VԜ,Ѵ&PmnQC)[hn({\)Z'O }Ѩ\&}M4"Uk1ĎQ%h 8,9OFO:=wBTHT8?(vĩf u$T*՛urr,{xwd9>w US/*F+"hD1oW6c'V9Z/7Cd}U:@ˀw##t^@O3b>>\^]XT*LE/ލ N#b&\(sPP2\]_z");.3Z\7Ph=!%="@0 Li ~A'q',=ӡ1xT} S*v?o~#Xfa}7rPA׺"Y%1e%YJn#D4 ֣(&^弎HnnP[ Xf:>LWf>g^t/ةN6wPL}=.0t2׹f 5('z;I+&FY*;<C(?7'^:Y^h![ 2͌*MfeZӚ̜:TZab(c.k;+WPFxJULXSӎY܃CA'7m|,ѤF:q H<Ԉ }.7e͇v & uow$!H*:V3kݚ ɔ rqAHg$?T'P :KBo˸ t* sJM>۫ ˆvO7)Gxo\0v ܝ'g'TeTQSϘ,M'~&s:Tbg)!&.F%6 WоDOw VPDpx0Y' *E|VQ #RMGk@4UUGc8zHWwa+Z)s*Sb_ڽPӚoArzsq hܾv`UR32ܼV-jlC~S u6)̀ṑnj$($ntn^g_5컍KզGSzf {|ȓ%nHSC͡afhaós]3`"yó3J: /97F˭cPYl< :D0vn4'n~ 7=r5*V{D 4XJ_V'؎ +NgEx*flz{#UUapWEf$l-&jH"a=Xnjj!0M'}VL4%B~7 ZӖp@?vuڂŕgs='r gNmh)0`Ko2`XO+. ̀i#3MŢ O_ `y/`lf'W C;(áY@6x)T"O7pu7r7Qϰu0tSeFJN iXP[b H=MAg#Ǔu0ުSIVbjq#= L yI 罴m>w ǨHb:-G{!ACj]OXV'E/0Vn;ym!.;0B @VIǐZBc;@!NAX E3E:x72O #:a{~N#;2+٦mjSR#g  6##[(?QI&AC䆪/YHC=h1ǰ;8Ҵn2 !,+Iح5ao$B&*GFT.7_nX;Z2:wQ\c5[V7;3N`VQJoF9֍DАiVLݥcx=Ag?R.TFg洞3KY';5=ê }8-8 eH3$_#7Xj*/!;PE!}BӉÏS,֖U6n;>P{U>ivT"Fb;MA L8xo@qCGa\V}3 ?4U+S$1 Fh/[0[0"^tB/K̮*C^Ϗ}LDIF-8T&o1'[yoML葽2LNUY-}p,j쑝 'ao%Y /)/LGA%wl5'5C]?,`L80<=4g|pT僓o)|ȶ,J"1= P%VD؝}o'iȌ IώOu4CŘ ab<=F{_RwWX IG/v;1K 8Ztؚ?U2,+frH:L3xV)`h;.P4gHjoO"[ؚќe{uX$ wKi({2$v0e*⠺O]`Ҵb Q MA0Ӏp`"kOyG e@|ͬl]/_ i4wWZsmSYIc]˜9j!^;V[Idy۫뛟'/b[V_}WPox?#Gt.hg HV;o֒Elo\} |K.J\*N~F3lac2 |90~ns^ؚ$2ZU%}b^~rh@;akB #)*BhrϺIxzk^rE|ӪLe^a?0^m7.R\oqy{8QpsY/7No/i#Oq LHcۃ_u6 ÈRt̖e\~14DŽk)x.Y SH,;?otkJ͔hF8_Ç49img70D:p/ E޸pz!b,n֏zhjQ F͓ vu,h-3GkIh_Rհ4Gc%QX /"W3*Qr^XWh+}}3;>ώXIcffЛ 5^\5wkT *:QYoj }^oް3keڤnH.tתO\?p5zA=Wgl8#-a1>*o_E ~@:#ٹ\75Z5ClF℁# [hQSFk9!xW7~_GSLMk<`~@,BSg02i@e&H͵G|8TH8˿3TVD Ij͐<  `(L&Cy[I1rSvu uVx(PT ڼN70_1 tnŅ0'hz|Oj.(~@(}kJgGrwcEHd C7T)Tyթh]Pv2^th#`Qh.zA}(1AJXbüQ$ƼfiC\S'v;cZXAqC)p(_g}p1XІTm[E[HGcerxѠ>̈́@0m(4<ՙZ-!]AV.//y&ex)0U\{l S\bښ尢rs:\," B܅q&8:GiY&O )? 9atD"ǐ[)ǻR*yYkQq쨩֣|&b'#5pXst9Cmw ˈ*`)CrŹRW Yj%ytc2i е@k?ȯ NSUDA},_=b:wҶ XBNo'' s!8l:EBb{6ѩUr*f}_KfiRҾ7yRBwUcҔrv~6|k:$4c Si $zkD.b5llj򪲻ގσaVʼn*]E*j(UO}\ˌtf0$U]H̩<|ZD!xa2NYE]EFPq\M<@ |f_;g&G^n)Q2~T +N31׀@N'qnQFх,f]m0]J-rVZ(Bf5@g7\ET:HD Icq.9cA9Ww妥wk,;I^x TАlHVE6 )*iu,Y8N@1~uY(>i|276i28e֒+i}Aj㢨`ʛ?tkL}) ?c_a(a* gGr 3kR1 }/mgЮ:9Wq; ФcNpEBg ̛G;*@$ s $Hz]K@ٷkC9!$cR#(J+ďҥUy,8FV[zGUßI>1#I9nFCֲ-YbW0 ȍQw('/gUQ;'--X3Amelmf]QQr 〟#\iU'#*ƛj~y!v[0~{$pw$)I ?Umz"ďsH5`'&GD<Fj03)A8q(GED?Ej8.z14U>O,b,)*1'FhcLn^eN>YL4?F|]M9 0Ei-F>DˆlaBsV| IEE# :@&>e 7g9ήDX1c}YX~  A8| ͼ8jA*1A)"EFQ*Jݗ4qW!k>4M}RݼGfXV{y>YŴ!kjK"M9n4Kc1tiDήާUtNl0QJ{ (ހ - OESB~\2ɴ {Ge"U9(@C-V!JQ*N8>v mCgCNu'CCbFkc)i N~Ƕ-_v "ctrW* OYR/U%'}KCтfڛ@q! X T6҇yo) [/4YրsέcNtίK׷/< r*KV_/  b:"=[YJrZ1d[%.PZQ({_^SGO+-g_߅aKҌ_j)-P Ч >Wjp0!gY{8p9v oс HAf X TҜ+MGMI͝/Cn@D/ɍ_~I@N2:.<;9 7`@:jD5OB7ߛqyj/5^u#m8w^8} \~zMGc5m P}%?*g|Efy pfbzr!&FB)uaǟ]am-hQʒ^<~+ OS92;(%iRΞvj.o:zu(~ids$ژ>07b?},N=rweS#6=^-7+|սK*9(ɡ U0r#ǩǜ$(J2ߕ|ͺ0g7qOߠi;|eYlKtB^o~ns67'U c|= ŋ{I`wSܝ?>'?nŧ&yet$NS/ynyOz rfh I]$do?g(e#!^ x]9s6@:7?nn&uFoA]AL:,έa+ÄQ9#NO0 M*tVyz\}R9-\~uh*_]ޏ_<}xt[񂐫2Ƃqȁ"1519bIGGςxI-h.[=9#[~yu:W ݽ]]qW7-J,Ku9G?[DA8oL{`m68NOM}ef_\7[ <Fm +e<wI/ ZND?'M$u)eťvsJLp6smY9`4Kdd\njM~Mt+SwzOѭbcznˇF_xԿ8!pdK$! _1*{ItڏprR3O`1`)c0)(jR(z/kDzwߕKrΓ>哓v)󘰜 7vc'w[ wQt]ʨPǵJ>堀nA72 \K)h@ 4N-)ASdt6ţ,pN7/0rH6^U"Nz<d[|4*PA|#LB0Ё?GttqJ~83GRگfiu|UūcU'bBs*9{e8x<b]4Dx:xSmYa g;}bbϾP}#}xKo 7I( _dc$QOk*fá7GNΆ} yWzl-Ρ/Ϝ{o4a1]ki@Q$aNoR#>j9|9S{s><&{}Z^C1ETP(L+t Uu`xD@=l06e>F77/ ŠlhZt(׫L@#T謜y".@@)+G[!:n%S>8|Ü;-LW;!0;Ӈ6h ;G}sb;mOH㴣oA%UzW:`1EHD~ tD֥YmJ6j" b!ǛOGXE F߱5AN BLɀPx~?bPy!M .zcWN&i Ubi4f6j N_ x{jxvCeS:Sյ3λm%7 YoVWi/gX'9a^{Bj )F Xb:Fۋa(7gӚ svQd78 7kΔz'Tͩe 7mX4Sop|rc|Pxy49,P)⠊ITtl p,V8mXH H5HL K/LbQ@mhQ9mv/%\YcTy= rf:pU BS܅o#c#6E{ڹfp(aޅ}`kZ`3o;Z% 4àCY3`t.]l",ɝEf3s5Q( y48e? hK̇qaOw3):OiHXnBP=<4$F3韖'lUɾ<$,&|aPմK5{v5QW𪡿g)d`hWi5bN$_>%R+uS&]Sy_ApzF닯VG7]&޷ V1]I7ThygӴwA~WKQ_>tGcSnɎ02 F;r~)wA #NT D84@4ۉMyonK uB5󒚰Hڀ-{1a6w/p0 Et] ]9RBL-jK2"Ξ u"RAkՀ1@s"y[Y/q"`!YoIw JR”5$#͉r@|xf2~,VrX 1vvy: SvxIyW$ n]t͘4(0&g"W.XH)2Vtn.ϝ(4 &20ԔPUNxToƩ4LL.}8vU,Ca$sҌ.F* }Iшp.]ӫK1ÖR3'ah:5(4848A97AO0z6RSZS/M[J:25S;aWKc佖pzS)zC~Š3 ۦOqB=\d~wJ[?gZ%""SO6N%*񉂪. 6[,lȐYgOɕ(GLRwXjlg G?cLBULmZ]Eb2aopy.ןTlnOMt##WW_3Na& l;X 7F*2P8h eS]&HQI,CIYG8A2w8`Lŋ$69MӽA ᡒɩE;aPIxCʮc tAdPN*Osg2AwP5%,ʗ8faGm*$ PRyZ̦٦:-V>&R;K/"\]NBiIKZZE'Ɠy‰Nvը"57$"W]$5IR1G G8>ݺlw6װQqI,4 0#vK^!d੦LO)i[+c뢭 | ԾcUs |ۅcVhYav-tN䤠ȇ D#*gv+e 68\sS"DG ;o0UcWL:h1b$DPD[Qw!ck$)\.*3݈cS,< NxmxKew6b0MT[wYtH){u&xW.0(r:/3ؗ!F^,M렕˽1 AyH`4tR_6RϴV|znFR&y`֨kwpYrgI ̼z̘UJ4J@IY}^,|L77MVl<6pEdd&"mĮW$:_v'^yE)D4:$]U* S6Jv S{'43Z֑p1 GGڪᎧ@u8Sdruyj9ja [?`}$JY!,nrVZx#FQFުA$$тBWII $&HG*~Fc}C8L66ѹr9BJ^[Yx?Yf\Es ~a .=V" a,߇KH"!D4 qoXԊ.ZYHLz/f~9ԙ|O -jgZ`^M#X]ǶmDڹTJw4<2arK"݈,Ԯ쎙:e@,8-O DֶnudϏ*ow1!kSfF뿩8%'M!,~YЦ.j VpIB CW ,qD(UKR{:cTWc;%"#FRg/;UhSc\ǬWaC /m!`7룓*:"zw; rl,9&k_]zS`bx+G2Θ.FyZv'RܴJs,h|IB -scA>MICj⨽#y{ۏj-]k6xhMn JoyΪևZEfȥRdTE_߬oOk?U ֫- ͻdK9+{71w jo"Z!/c^6Mzx;>H矖H @{<Ұߨ}[q*@Yp y#kVIM}Vz:)4yz<~Y4`!?l6DzgݖjUjIdn7{= ]˘Fz=R_ =7ѳ5V:2V'*YS_~\V'nxV_7k,]MvBc@}}ah|L&(/QwA>biH%AʛY^]D{4;sY?Gu]_~ڟHnLk-Q3HG;5 inX?zkjRѯ |Jܐ$0x,Ю>KwpKV/Dy4U Ԅepe~fȀQ=hڈvtfm ,+ԋcTWq)VB pIC*e.ʋ"6 =+jv =YXZ^! {uA +4"bPga~Uo7G.Bz+!Q+rjܟ'%w_\b-&IsF)z2eIq+tHhs4 n nwOYn^HC6?te#\ N\3 %2] Hwá 2æ5LLX\3ׄ[;+|"|2]O=FytmƔ_?`J_rjʒgߝ_tB'gTk"[+g!)$21ǔѱuS/jkI7[3P: pzv||}'I>Wk'Kr8hַa"',TZOɬvr\C_'S߭H0=rj ܼ>P n{gsaC8*]w:@y D x815%'yse#t!F@LǦ{M"ddc)>SO'wlCB­ek4 @ۓ&r1mJ,uv>ޫ|3ce|C0P3艐4/ ,,!wu">O xi;N!tZ=\H)BܚazwrFnǝΖ*V?|D lg;Ra=3 q{6^ 1XZtzs~^C |3pΏ^?2vaaӬ,rm/dl(yuRw-\#zC&"3 ^J"~*9vcѠy{KX) g͋sӏnn_lVo~ďXǐfeta-HceLb@L֨Dt%&Ime?fekj fr{IGyןDzmV Qaf?N?ǚ/1}rƝH9rjMX 2ȈY'[0^!?u~H7K}1Gyqlͦ~~8=~Zn^=k~u#O$8ym,g{,)DlƎyB]4 "Gm/gS}V|Q*۱×~e q|Qalo+kɀ/xp6vU*w_&ӢKrnő6<=,lEwcnBHeǾ{Ϻb"(ɜw0!9ax0b+{ NC&),IiFI] $;\-6|lr~Mڥ8Oߞnsj7-^+KgE3++~e 6)O^{s޿=xlrٶ9Y_O.>rIZGz5+R0mC!ט5irJe haE z.WAA^s2-<|ȉӭܼBF?ۖ,`pjb?hLMr{SktGܕMeح[ljR.TG*w˿vq"cIK+6T30Rgלݾy:Uq.o6#??=0D($Qx`}ŌM'Q{68k /C0}?E7{+[nv+yc?8f|'1޽2re8.!yNۂon|M?,L.<_2PMsaGϸ{)2^n_{NJ{#Λw) U+Z jg'cT1 P>۵T|Z+F^\(m?.f9v9?˱:$WÕ!b>d/n0pЋ%gE[ɝXʫJ+Xq!Thza[HGjq:r_ha{[ӗ|ێte}y\퓉/^DDkSf13ŃĂb5ۄ#4_ح?wcc{%5qԒc&Ow W)-{@xD˱& zQ{GGK˿'&y4{x1xğLt-bpЙO w~cmz-k?6vg:-5W? k $51v?@*a')d:iB]L >k±뗭sۗZ/s/tߎ=Eh'o{d3n[ˤ%dK ԏ֛$Y`XSpeU%@<ݸӺq".W_܈r&'iJH!}lxwqwe|icxjbY%O. OrsϦgy͏$]G)sNp,BݞONv#ZMyJL3Eg^Yp $ Q1ũ3ϡ_rXGlI?a_OLuwxfSf2,䤀ml)* rA!v 2ǟR}p60 G興Ė,һZcqб?e;M{@~Iҽ'ZDCަ~)LY+ֺto{^紐IwMsnǾ;)|riIմH7K*NzN%ǖ&g6KV0ӆ&%hzVk&|vmtg !!qӏ!C3R ˓3q`6FRr,DXVn:n뿓xe!B_^ճZl[f3 լ}h:eW8 i҃Trz{X$Kؖ^hѰB%ɓ)uPq7EǕ kI,r,^|#"U)abBHĒ=NSw{%Lj %ErѠީ?_&խ;O-A\fE= g2$np*MdM)xRڝfƴgb<>hvdh~aP 'pzp/#8W;BY]f9z禭Tm,hBZV:8m;鍳Br悱"VǺow#81Pa'>,3)>d>6F]8$G=6g,it1{%>jVNIbrN:d<DW=\u⺰FH|{ Z! m#Iլ7bm_s:kMϢ$#*VBw &*Q*Szg9^rQvditS|力(S ]t#k^3sv'vQbfOk1&/ kht7mT'4Ùvub `5e$I ?pDR,uԶ8z!=^+zu#]XMx P1U(䅚E]^&!~J矲eAa_n1(:T+tDHbW/V|&NeEa.[w++D񨬳2)KcGX@P3LL%?KKg.!mn8~Ic5v+3d6LT<}l 1ٴ$j j~CxFwܻ?ž`>LփƏʤA>LaCcߎq8lE 0Lohg(D"765귈[u}3|YH*_`7u2¨5 Bw^[ײ!(X }GQs5/4ւUcF:t$⯾a(,Y.W? l0qPV@_UC֕@ʻʐd* e7c 3zUFF* X)ffoNDMi"xúTozuo@njO rgU1è~q(!m͆" j Q[Ҟh灒g̍W vydafb_M:@sGC{ocqE5'!a2=:)mkZz,WDH+rL#{*H⩙ [c%o]ѕD&iȼ`-\`eƺ߼~ $s^LmSk 1'8Z+sg)^ky_0O<7\s-DrՂ-$MV8&EKhtcZ~*aW) m-8B\^㾘]r BеMp@7m\?U-CIW/ޕ olؠJӮ`D,u3NCq4koEFFVP2Gu$.$%콧ge-ޝEjoֹ^ߖXyd'=1JN%&C ^ne-2+kO\4lN 5G. à Ɠ>e( r\7J9,CQvz]$ꍪ7MV;bmo(I`λ /W~Vɟ6?DԮ"p#|ڈ `(I/Nzv%K^Z}_f(Us10[SG)Ckq-^K9ާݻeh-5Ǻ,8!>16rB4Wq83߿~&i<O܂im„QqYpї~`5't%v:s; N)w4}䲶4@$Oz.X-X1Lj',YFds@81Cؽ|UXryD7x#X mHn|s>2QWF >OKlLztfq\_V?1_ Z*$cA7WeofIpMl7]Ԯb\S܌ٟ$0h#f",-[_WDu>mILxux+ÑXY"GzsKŽKD# Vl>,« '[a 2Ńpz9 L3!{~#1UCE&%xj:x(Ta0\;kC1jsTdR$nEߵމ.@NMY3,ӫ'.)*=3AC쨛w{sǛS1v#K `32kbnaA1Bߖ\B5&0Dn dhPCȿB)Ƙgey.uV[Wpίl0G`I5'G btr؂W_iH[ڥ`ʌC-B&I G|bO֊#fܩZֆi3Jn4WLIҌQߨΥ5w<<Qެ jNSaĉDX4 ~8Yk]3oヒni Wr NS*@ug`?C XN1DžPt,PJ5Ku-kZK1]#6J&'pg/ٛ[?gnut,(HF YD[i˼sBSЖ5kS,J4A~jgJG踩_#JMM#R72r= [P**3= R|FLrL &\>0$z0 47/n/ҐMuctR1H}&/\Ac)9zTYX;p,0o#yqFi'hb8˴]يڕ.{;^}lԝ<Ę*@y.׮aˋRiTM@PNo M&1ESڵb_B.@b tx*V}|C:4"A5rK[Z #eᾯ(_E 1\=µ_H2"=۶f%ahV9^hLwbߨQ!0I*5[_J#a7)%}k:duċL!ھ4Q#ލpk#*܆*hjxEѭysX(u{+,C[Ċ4лst]Ɍhʱ7$FGM<^.6ba)7v,h9ߗ:tJ0G"'%G%:`ФBznJ!ZZx <*$ɗHS%$fHC\Vְ+cij׺KcK C/11L+VNPI-4|=jFlI-'#nO= ?tj,Px ]fB P-zygz@M$3x׫Dib<m5t&a|sղךWHkf&A˩E;]AjBL%ڭ2, ̻M1D߮,t_MC+}bcBEmM;IfuW-tydPY]7~m-k)Wk/uAHTG eHBn\0kpkgxMꎞ7pHdɍ)-gcfښd ibZ7J~^7 2R@^;erzwu2CYUz.(*aoc׷i1j@ɈFq#[ MNmTǽL!0 d aQ]°Jr5KNvً?Ns:i#/h:BY#Zߛ8e/ o r|:zE' &VqWSߥka˥8YQ$ R?O +Fګғu3,272w-Gc51N>:/'t;tt礋0aBvFcLL6( L\˕,iujywt~8DD.NE>!wBwq(.}$)MTs;,/W˯M0ژȳ0RK/70{KJR YriXQvQV23e^l5UJ&Rue H؏5KX˫k:&q l盶IZ) [zp\kӲVPqt\ki"jS&q&”, ĭ}cY8 '$W׮A Xv,")Y:&Pىv*9n&.hE`2{UN%w S^9&&%i)ŮA5t-KF//Ǔ:;k)7+½ɍ,=X`K1!0=揺k~~Ve3v^F(ll}8eb /Wh]& IRZny^B|NvtiX`])UG7h:8H"UDŽ2Iҁi}Y岝O²2|ċoƕjs?[\CftnN!K[>d`4B_Hd(DF΀nVU^O-J/s,ҲhȘ) ڙFo='Sh'7qzG%+F\h{UbnS܃躥Fu^ lº$-4j?˶WxX&Fl%C{|qvϱyPh7ܢqcsoXJ6a/4} -{_3^rUO!S쎸=&[.S9:>A;ʶHub2~btK&9sƫXC@\ξzi=}"SG6:+6x 1+lAzri1'7[(81ISñs#A}imw PkAm}A0/B6B`(9[8"d˵_>)A7U>s^}]FlL] RP*C5jXRE)돍,$Bږ2ܑ:2n,#29zP l^J֬= |i` =47HOg#ƩضD\9lä50*?KOjwMb>~imIe~k69_x\]Rh`s U괇: y%nuuɭ9F:dAiPb^4wT!H BȂjhSTA :KNYtr!.Pb"l @ۛq$ׂv" Ulf4z$ [U݌p7c P3Z2#=͎/:lu%1Z9q*KI҆A5 i~' ;\dAp3D^mO_m#C#~ko?Ȇ37OM&+"?'%}٫6zp}_|1/7WNj53]fIPqvpxLDfi6G%- ]N!`f\GQ>)}9-.PzW8.~ @f`OCQRZZZ@&"'㶚rܐdNH¿}7D|%LgU S ޾"fѣpNVr$.4a'Sس'Dtcs$r!>$uHo-~g\ҞM?sD*j: t*YxQĕD}]ݡ(9A=f%,vwWrpQ_$|S{-5R( S0m[cB d ď Fv3"Ek4i/h_hLFt.g q!b8~sK9~<'+oSj3kR各>sďhw/v~"ҥqG9. iP4tv[=\F%Jg (c U.6,Biϧ %.AmrD!7@^P6hV .y \|Ǩf4?B4ж>Pow_mt_~|5pX7.KqR%=Z -)o as76Fǔ BVxihsF&0+Q͜SRR2 EuaTJf{ѠmPZ h j G(9Q@"JU3w^r߻<=R(=Uu@Zii 9B(oWGYpIs;UZ; InӎKmO|4幱N) ^S&udi<%4!cB[I5i~=(cM8g7&:==J”s> Nc]LvU-E=KoM6[9IxW$鴯a,<(?OվQq j)Sܖn> %iwaVȆBȪL.[AߠY-N-h)qaj ٥ t>ɀ4F_Ft5oBkL>ՂZ8V}a('3xÚ\ʏ{AaQkMG\l%B&=N_wnNB)^A㣽 @%5[ M7GXK{2 9\2liԾ#J#We|X5zT6EbE{bM%:AsߤeF53r{BoQf[Y&)}gzw;@OK.8we p^;xxNH]% h,Me=ac3K U$LUȓ )RQ/H4v~ EAyB] s'ؑm{GJzÌdOf>71(ǚx3}ѲHUpt6";B9"ֆ0A g%OIj>\<ƅ4勄)i܇Nj,?dqפ<Ė>^ia+_ I:-6l Ľ7euL&Pⅾ%Or7<gG$ȴ?]7DvןTKUNDХJVAlRO3 <3/4# Žc\GTlme(F1{&[+RԡR^k8rWgceJ* aEzq%=5˧gjKohoky}`_y\H*^Ǟ ~Z: *=y $UJXùx[N| d .?sZB=zg6?jZ8$8t~zyuF]VP!]7~3$oivZ7}wSv|z,Ŷ7r a = K w'&dwmjxeԠ,F}N9SꅖYJUb=%^:6X!4u4miY=ѵhzIMHw"K}}1l䩎1z?]I>w g ˓MoP?~:bozĘMAxs>>[Vf y*_IfAwMˡ9Q]⩤)oqfAQ?IS!J"e3K:s 4C]I2r C H~ɉ*f$8C.C/%sdUB=wǰJ7t_ȡYo붙1aڞ=-:߯8VFK?6w8~DTq22ʘ})%9Z=<%6"LD Uuh^ZN=C4_FGsiݢcGh嗟V_*Co7e( c37~Ya*w9ӿ,c~qoܔ٫Ǘ߯͗wPK*˦c/hu%$n:j(hnO ^բJH]H)*:Ugo9U eR. {<{MMn1S?><}r<}W,j'[\*(\R=/%9uzҭr<$n^E@dHVAJvG{B]bhyqJ(5k(%'G`9CV],iAuyG=絲d^ad@VMI TY.l~$̷ t`ч_OLI/g׺'~Mtԟ>/??^:K}X%}͆K[,rt{p{>~3mᠧswϷ^8N2kvA>wIazdڥE[j`8&[^R@.iꚑQUPcf@вuHN*bA(2g Z,㖅Êa8=sd̬.^u͂l Ґ#ˇmɭ.7J.ߗE>ÓOOF.W*}Pql['#såyZ9n}f>`jJ oT $aa(U@` #GEI9G^en%y:k *l6@ "8}Dҡ`d,M^鱦w?wzekpcv-!8B@:.kiN<Ƿe9Vps2]^}ef>|@Q롬r@+GSm iÀ-EÕnT00~W7/y])̭hѥ9ϝr62S'͙_77v?۪c}z)B7O|U+vYw_C fMGu.(l_4yC7ˇi[5cOTZ=ȸuC̶c暔 L%{Ԩ6ΪR 贈0N"}4b"`Um>}-m}w|ZOMM'8ٗu.FV_6-3v8B_=jhߑHln-TTQMfd^Gp1f4mrҗtRK=%az\.5eD=Q~O3Zu}=|\+ݳ^O)fqmR~5ϟ&Z.dZ/PDV54iIdC ̷} #o7ThGڦCa@3!pzlZ"fW{A]IpgXgk"u ZϘʢZj/xDU?Oth_!QqόviL(*#ޯ>0Խn wDJXR s^^~pXjUj/lEb@z=veݸ3헾c=#4n`,VZ?H *ayШ#\tIITRT K"9|c5ئ,[Q7R.[+U܏H=[dvri?e&'EFc龬oX6Qow oi(E ĪE5Apd<#\5 b\ExKqP Ҩt[f^:PڋؿnrB ~#5mJ (,tѹ+D&*/MpQ7@+HC2̝0ģ1<|ҬQW)~@uj_ْ8aKjrwo\ܛ\Cs=קw_4d@hڸA/ET"+1gZձ\F dv0"B:ĚJy2W^!uUiDMgix#Ial6FQPv8yҀEm"m?$_ԇ/}Shc5z*١(_ED̤ +=p6 )-Wp:+g !j24<C.t$)03Cl24 @ VgOf}ri ' B.Qᩯҳ" h0\Fc BXapVt.˳i%Pg)x;~H8~XQFv4[) .o,1MSYzgdw^$;اO4zGGG,x n$ ^uiO[ ѓpi(7z\$I>^3Ug%}P9MoD .(әJ/PEb@đ 9 ГLZ^Q+E"7?1q2Spbv3pdj0';?>7ZN`5"⠼A1rkOm&5qmLɸ[r,RaC- 3%;ҫ%P5ZTq¥0k7Eg B'UE3I:̼*>9COݞq38FJr%߾^}[78D;*lk\iyT#xia񰛥"nv/lqBKlznC*JU=4ٜs)9m(DI/DG }Tsz?/oƕ:l'J7ͱW/y[cmO.ŨFik pWxI# Ru2%P%p5sT "̵>Y5ITD!ќgO\{$I-Dӡ7Hx_m )5Tcαo-n<;9%Magsd[aYIlj}{:c[ kÅ>Gi؞U1\fH4͌n5"P #sZ 6!ZmUsT -f+UDda;Iq.tqGla*4HG>m-~]nz/Tc'Y#۵ģ2ٶco]S޾?ӭXmi[0/ :(ĈU44VqcVt s G=japDEALOw-p")4n"H{y䐀>LH JINa3Ԅ+bc1o Ab@\QќUߛS79W'VҚHc^{*X[Q|"4%mͅgpʰObF \*93A_#VB ?"9Os*#N 57UNX1!y"l$VݪJ y@aO~g@3uW|Kqm v=l4Ґ\Ҭ<+)&9  d,VykSobj s S(08ZJ2ZAẦmsүMC*92k'Uuʬ 3=XXwD_֋oFGK~t>aԚEg|M$"E);8)g*$(x%/(z/e =%Yr*vHvg#B f^zR 'ވ rs:eQ~>U1Zzq $riDL-7ws`)f@'j\LHeL%N4Ԃ;:h"wxt.j5N4>hҷ]D+hM2#㛰ycb1쏝]yy"вJa|ߏyy`p_c-ט:4'o@ kۿuY{LpǽnaBğc9W6LL\WAz1{O2 pPq"4 A9ɷ?R/WAA5`@%"8aN5ŵ:m}C#6}o  qXarI@V'҃G@Ɓ:5(c@N`^]$e(Nf=jw 0[E/SsAKuDDD$2,,2M$ʰT??vZ!(GuۦPmG--qnHƅ<M/ [:rh.0MNW66}E ejz2@iF5QHe"9WYlYk"JKFSRF /;M|m0D:4-uěa"c/_'lUG{41ܤ}pfF:`Kvc.[/rtsAI;Wʤ>-pnPvEy쳶 gv,.|WOM^(K~:M}+zl@gl.]Lv0@Ȳ5h[Y+:xѠBnmhmk##$Ƭ9UNhL9$*eb4') lɻ=m!IB'łPΞSlƹWD/I C񣃋[ vcioefҍS`ywSc@}h55y'bhcנ$7q~ky}3`" ҮLIGj{yNAOLw1j'E^~fI+ ah7BE- &M-\5j,*!88ɧk%u}+Z_| l b_OG*866LmmR(/pC%}G6׀SF޼Yo3#yJC@9$Bh&3,Y9JitN>m:-j)2I6jpČk 2 i;_X8G0pu!(LqDx{ſc;[i:IH͝f}& T:)e'I2 EUrBl[rX8\i3YCGfj;y~ƒ$PBқu-/^7#GM^&a=j)n_?j۹3da@?ы X~?n`FOmwJ3YȘl'ó 8e`T%)-9aCJ՟ F<Ǿyݷ nムtqɅ m 4w6p0 4E"Ĥpm6lW7  E904͛#jR R,8$1qv<IF%QK(F'u V?KPfz!H=-'IMp~;2˿NWv̾WAF߆@&r2,7я>P鍼W^M:^VdxH !gʼn6afLVa{( H%NxZl wUc]~]y´űV"mGfKbKѹSEI׸|@ذ9 Lv_i-o%8roD}aԹu3Hw3t4'H?&{x2=j[T0=hN _-;OBIIܽ>!h/~>X@%4݂toBe{ႤdjndB\.03lf䷎MܙUп(({KSL+Ԕ0IWq({絀= 8` 5W╫䡤~4cMpuA'eA? m%%vT#E7i5w(VúmlCҺ8%]k$01ak@.&8^B3tάh dV07`i<犖D@$toBDd;v (TƬqAs!SfPtF>CXْ7mʇR vU1|XM.vuN[kxB+I;qBgSךB4k4YIf~ƻxP%#z\/y}扙s SRYX`e| U\f]`49@j2pa :׏ q‘@z̉x!T ޿A!Pd4C)k:PGዟA"i ip$umƼо;Ljh$[59䠄y nT@̓LMj.Ge0cx,Rhf MS"*Y̱y6DTxD9E5g*2 Pavvw,tC8wd(!Q`:6?]"Ucd]]R$d_#68 Us0,b(;mcbFSM.x2u T"G *rO2c}Z|vE}6hBk\-x| ^~F7tW*/곯 3>˸~Wmx$";iVIHg@xqHws$hGn&hfZ7in Ә3N7%rn6c9 -Dɉ^inBDfr`+dx"Q%UfH&V# 1P NrnŋgM7OT)H9 m5r.@B G$8i0 lJB޷\K:]SM(iW~# uVfzpn!_.{_"V.]Zy@'C?[^4Аh= "]!vW> :A|@TӉ\`OrLX>{-f4 6W 6gaT뚷 Ir4nct1~`1DK|EƤt&$#? N!\ /9?U0Z/ &^C,g%Wc}Ci)ږz\]%B3$ٳ5gqTjMiև8gV`-) c:Iuj֑l1]߱{G6aEWũ{aw<5Е@R$N{tPj|g!{{,1jJmqU$-Eh(0l" IɄ,2>7.Pf\BGɶV9r~j}v)9lVR_Lڶb4P FS $9!Rs&(ͣfLIQ'QhgXU]dQdPWUslDѫjQ! 8jA5I,. i cuͲZ#mIgM$Д,@qհott8y!Xy|OH7-ş  :Լ3V*l{Q#Ah9h-}?@fڕYGl{J 0PA2Y zPV""FxꅈMl\,r_GhBkFI:"X" RC?;lOz3nR5Fx^λuNYN\nPl]c'=($:kAOe۶q@9Ebe[Ͽz&'fqXGXJKڰSV#.GhZdv+}V"pk'iyvIW=adYF;30hv9&˱*L# 0L>ɽL%Tuyƻ6K؛1LPI6DA82TfvAMW6s$2y8b=͂F^@ UwvN``>9⿳/9,G4taO) 6[KAtyD9w%/uZ=2eKbA@SBwːN1c{dfX\9,-|I\KAY0Kاz"& ê[GAm94@½6E+P(Dy ~gw$ѳ>d'@cioVvmlџPOZl(p(]rfǪlz]/?rmHBtn慥UJb֙,uKӂA1Lzs?`0,A&Ng\gTG W/a~3aR "zZ5h$x_ٛ + yv䳡! |ߛg ;:m S{t)gNBǵX34Z5QRH{aax; P?4l5 cFHLVP" /rj#'%uJB5D,5\WhF֊n,i@z$=3Jd1kA!w"6궽V 7*ʶ]dCcXk>ðjv0V?g1 I#4zʽI@EPDdiw /$tLNzlP{z}^srw$3ˆwmZLNv[,l=oPW0bĠ&T;I!|W HӬUN9ӽt3NX Rx}# )5E܆-m^'ew.Qu3qm(_&~٢LWa418] % "%)O [XW%%} }kkX[fAqY 1h}M㪘5A';8d"!{Kijm \>II dChroH虓r33kNQʜ $'\bw*̧x0n]yMa6aPt`pb~\ 7꒑e` .rC;\4Sl D&ШSҰ(% )u)g_xT[Cل3)s\di/"i!DGA?T}7Y6 pf?PkG:z9Aoh٢KhVpoݸq M'V 4#CL-9Uْ3:hl.M^fS6i1%Xani1v]ւ_,vϸpŇ2qDM k)|SE5d)&VGo I)43mrh\@rE_Ayi#"΍>H;hu/c(mJmwRG+!TfUDQVUK hw4~ rKCI#$h8uꕟ[&0p$AN^g9VnxLePbimdrIyZY{e!s LQ&G|0{E.W 2GΈ"P $vh4R)]P'T-)xBėT߾= pH;z3JXXA@)I&+ԯr)'e?ɍ&%:{9گgd9I(XW,ŋ(a x)Ӕ]LtloJF̩G*]_d%Cf,]!WLckW0B0AϖóZoo#5[-{yɏU#ҠJ+6(./3UA? ^V:7ˁߥBͽv2gxPăכFy`e q4=X̓w* u~Wz1J PCI bZd,FñlKF4^on)[!*:qt&U,.uاR,t6wQ40g8z?6v4FI^ѓ|5U&QnBRu*$<D/bZN9W*aJΝDR.n9[g)0JzMpŎ bO [@J{gTK _3`iR ]=rO,u@!In Ja LQXSc5[NCF?gw3|4F=Hk]3:(IF763ț/$kɓ Լ|9KK(l `t2I r ј00UVܫ s4OC祆aIɜZQq@ n7i)*ӥ*Y٩ g+gLH~}ѓRx2@g Z=y ,P.P^z^J^"#b&W4kr4[Hm֣Kb+(NNRi2 6A2XŸᩱѬzҍ#%S _u@:ei@(W8MQZ؂ _2>4>W DZ'1)9<έMí\nHDi@5AB) 0Jy\![SM1YƆgt>>!ʊf /-OJ4z˦51g:1PʚڲMȳتY=fY*a#c)I01&;;IO2 )[/ t< ե:TzsNjF⛛/Rbq(SÖ4ŭ8|W ;|]XTDU]9 bֽ-9ڛek#v' 8{MJ pldDB!)1J؄48eV##GBaղP/Dy+BψIw?Awخf)8z',w}[qe 9CI/n+Į|jf9!)K.|8+SC_tm .#0m mP%v)³ĭX0A*)0Rh F2MUPP—W$߄op$j,(LQÀSnM8|J5| Hٔ)yJYQl2z&e?C4O@`q <0PS ހ0q )W~Yl1r\A 8$_+iq @Czf`H-sdr e϶ L0NtJoqy=wηVY >j+fzs+el$6|%:Ҫ"e&I=1d-s~)5}37㽕{!w&Jn]ωt[=YoY\[kbd.i{uOq50@(q0AWsrKl(<NEi*B}Lȇo\hv{qcJo`mV S{ Xffᤖ U'tZ^aڶ7p:#-grжBaS2M>aC%c F_ 9N?ExO~/7=}^8 sh?a  UM{?N~3ZaL\SuJ$~~D<K)qK|n>J9&%9_@^8ĝRjrȖ$Gj=ϲE7^0*(c뛖ZikJɣ8{ B* թ[$P EgIjz4=*n3HYV6ۄ886Zo@OtU»AFPْD w\S"C ܃T(nwiajȵEЄN8Ξ&KH*?]NG$K}R]L.zO(2M9g6yތA) r$1& 8ti0j!#K4 p!U =MpP8O&_3(:/ ePՕ}:iap HI6&^k]ͦy) 1**Ñ e?p(kn%j5DUY#"c4kQo.{qY9L(3s[Pk bf c5ϻ1yF0+0=V&IQSKGaيKmYU}6da}>cdY**ۘQ*|X,}~F$8z5lɥŏwi7J4 o@܍@0h (qZG\{f+P`ߡ"jd+EbAq)*TIn]/7!^=g{;z%&$G 喻86q43 }'t c-]M[2fr:M?\R{ȫY;(DHfޓV?X:#0F㒾YDOITl23u* uUR! 0"Ie"k_ 0e_F_ R+"N F9--ӕg7P2N)0c]Gr5DȾ31g/_Zc Ecd6;:8`..rJ,KO\[OC2VU.=]{K]LEV{It6M0dk{AZmdDB;DqZΜ\ L1#ѧG*QL"UG q`j{ R||M֋ 'q 74@^PtIHjcaaFkL7G譠v ӤQh1XKCq$ g X+xLtx*n+P +!|eo$72Gآ TU!~NFf'~!Qr0fB5=='GQ~Cw|Ů_.4TL8݋cAN"pkORs~\ۆ]:=jQD,n x~8p%Dg#Lr N\6j!o!˿,OL!nɅBYau+;".(LQ5N%vd#>}XiJKr~)1, #Z9@L1h"%)FBթViJA$8)^;} %|6jФ]8wC$5*p8s i}0,;'{;y 8ث.UJb=je뜱P2cͩ.ȇq¹j @K邟AG޶栏"S^0ېVPܔ/_ɤ]Y5PiGF90TNIBva/{ݲS}$1XNRХv1 鍻8=ym8ܲ | .wQ9iƃ?"e61ۮ4ōd%ܯrT4zv[|Y"yc{RICcá욹Q#Q%d*D V7'Q׉9j1 Pyr{?Y˨URDp hvuݓAq>?4r!DFe|H)1uBV$8;MJ\.#=,i+Glo x>* nU(J#/02ܵ-K LEzPBأ|Tw@i-oT)Q{Zve"k$BYQWcذLpʜKOrv p g,tOzUBtDpHeIBY٧>&6oϱ9SLҏ7!멀3OT|sL&.(%N{.V8WDڑ.dU%kHDūS9 pT eA4d+ N`mcїvfҕIX>3SMY1D< H*K(!?Uһӄɯ:3 Pp)GASLn_08TDÌw):6uh[Mٳb:t1|{2Qg-+t;B)* Yw<Ӕ|DJDz3 b5hu֠9N=^̫ [$B,H1w V4*G]Ņ\d Hw/4Dr'o XBV9Rw#/dޤ=o6 ls(6\zٜvhFBAI2ƀ#˝Fu)31Nbltbszp1e <r$uINv67q3\{m)ج[7ѫK>ZDive@`iBmJ\J}&v#Rܺf8Dc?jǓ+5D$(_2-9 b&VdYNӰ1Jʈ1`LX M<}>aH[7  B!/Ƣ/F:zSAM7n;A[ lq*V&75+I-7#u/('NFn@=;paٖWr7q]͋ >L]Oz9E0[G쟫*L$VӌĮ NFEu2 l`u3$UaG6L=b-Q'IVx= /0%@>!n]ƫR3gS;iQ7$!Ϛ l87T\s,SCYc Iv07n9LY '|ܱgzw)(2Gϼs ]xo$~P Ts IoܻC- 6Q*pIF":՘ɔu~Y6SPzf"sT%pZj …3s7,$ml^pƑ7 9bn`rtWi/ܰj۸:ѷ=|%TA{FpMhb[KGϰiD ]L 9-yɦtg"#4FnF]&t҅ VwR{ʕbY|JpDUXu7eVBZȑT< #fE_PlF#9Hb}xPARNgxkah-X|?s\L`zq}^C^,[PMb `B9,٬aZdĒ ┲ 3h ~j?MCPP^o ^Pl4ȱT ұh-A/jO:h>@#ηaA.A>O\ {L^h\4l. *(|ф $5 䠶"(c8ībTUkt9iZZIAPAq.Q]EPBIܼ3lz@wcFM%vrDg3#K 1H E {nnHbqV(tB|S6ɰ;) )`+fN_†מ:eT&GϟiYƽ84-݆I IyKgڵNM@,m)=_Y;Ŕ±?#4EŘg`*-֏={HSRuR__]r$IrGdF9p?qsuw  pLE}Wqxʁ`}m5RG 81k/IW An`2)t]F&' Wkl]48ypX4߽O =ሿDwɯȝNT _qKkfPv6H&P&wq`X`DÚ(]tDzdBڞy`9oQc`<LWWtzo=:HȢ'Aw;q,a,jRH.CdQG>wߐ&f G_HW|.?v!+9Yn_>”`.΋3Z*W_ܪFTQO UN0a^ vGND2Pw`b!m':.Ous!r?; !ݑh٨6e*i(#9rUlo$7aVȝ4DNvϣmu5T:|E%gg &, ~_e]`wC]=r(p}[ uO!ig!)K樶B{~,?y[ƞAI#np[9TPi&J)'UZQ#T5ĻV꽡6+ԫxGɰR)9JEMצfFڬ,;ax~Jj'q1j-Myf6<3-4Lg? jhA;P'"$)wZi`M7dPdlYR]\tf) V^p\Y1'DQovzb'Ķ7*s7:Q̏qe#k3U4RFz|/Sc @n,jPۅ`'OP5$ؔMLS0܉I`tHPq]lNJi$ ;{ |ȈlGT:U }Ң[&@X ۜ0T- !*q}z̅:4p2Y;ɡTUQ*~,ok*@N"mmMl(6bUGӧC}|X'mT `$9Ȑbv![v i_N΢9E^)ͦ!pk5JLEK1(mfam=eֽ(ۭF<}PZfPwFmjຂNb̅8kwJK΂`7C.ַ(jd)bGϔ۴7o ''q_ )? )3iKmZz5Fr6V=ӶZGDn;-qLNmaUb03͂s'&la hZoSx!*Q}@\ %OM HB@U -g9("[ XGYS\RuLCֱ;d V1*ؾۤ/*qZ :F'%L+ἉLM7YzώƯ[O>>`;6o=VKO j b@t$(2SX &Xv!jܚɌ( ͯP:PEP MtٜcK2jh?ΰ'=56n.c D {!2A ntc#ivAsR cY>P8N6g4ClB肛@ÆuG޺ @aP_DF3L#}mEdӏ O\0&:7"#@e[j ;_r{n(duL(?×+5Rr3f6 D[~)ӠA\}d2i#um}4I`ifNέx L&)i;uhz̴R!A@j"$9 qx%U&݋Kh`TrP.O'˧cDTDLA%OIȲ6EAh܎fk5@Rk{v)T6B@eRxTZ<(u%U/>z@t;Nbr0 sl)oy_t6+ oNztaqt-g^.6x/Qa@z{vÏJtx$&YYZJZ6H$)n\؇3hj" ߍ ᳡䌽t h5h̪]Е֋ 66W$a)6L!\8tX?ne3MT:аÙIӦ^lN5TBA 5FF"K9-Mg+)fQ~,R~|9;l{D]sYVbw ̘7a<|h7BX)nsS*y48FWdn#] ]uk>ZI0NxQ [qgRpg7}r`ƂT gl:Tl/K遟~ʟz9"1EZ-4$jԛc0G4>E^u?[c|]=*Ɯ#0=ےT:Y1"m2hǃ\\d^#{t0o`A)U$>SIεdiL,1|˃wfE)[e\%u6 w;Zù`6*L"dGF4Vt'VȂP{dl4`  vm_~f{~⢵%hFVPB1ֆj4OjB<V%z'HS Ѵ2J}5f?|_6jnxu+>}F">QN!~ ЅΐbS-ձ3t y_[Xeȭ:_Pn{>YhҁNo,;zI bin>έdd4\b5pB%ax,O,@ƴ(VYr!I8LI *8AE'nk!Iwktɦb`*cD^P It>~}tḆ)ۜ,LC/)Su*RH;LsD̢\؊3ɸm2vtL/Z#V.{NP4McPK/f M,>r|HL\%ɯcL_6dUMLX|&X4u]_?M=VdbEUCX!kQ81( f|i) NB( 5${h?vy8DU9PIYeʌPvL#V$UM@#]˯NrjLXmW"UZ@l2rH#K Y,M dO;Uy)Sďbu5ֱM40~ݏu! Rˇx{Fc sU()0KcC_ $ߗ!/^QM|T{SX Sh5kT)ZLuuRK}Jz0,)r5zA5ZpI%O AdADEKCtkb#`+@_L7P7+3C6f6{R򩙱5Ds1Nۘm8]\Cy%:!jQ6׺ QkȞw@\QzKƠ S= ҜhfNOP2O̴7@60Slg\M k4m+ƨV*`^nǥ|/A ˫wUSޞTQ?H9?]a0mo}Ow2W]Ң0)g02QL:0STsP 淗A2۱0yG T(J)ו[?c<5eeu@9=Rťv_ _?N6Dd5?/\ /̽v?i##RFi_f۵?OAUYi_aKE{FIkBE(K[}Im&YMJšhԭ|.<]Tb[FS&@AQ3uSE&(1Lf($dkVO_S.HӸ4 lyɿm}E=u*sbn7O5oy;j .<_DC6r=hvGe+Ӄ]I2VWb87iyz;y6Jr6["h@rxYsp}g9ڍl(cmG\$ԓwLeO S Sa~( ޤ<95^nRYNb& wq(,-Xͤ4-v:cI]md i~it Z $ҚDb8h e6]Tf5t[[ڌ۹G_yaFPkղ>e<}d=c]TۚoM5eys;<`IE_2G#OFLԥ"9nD?K(}敆p`8Z( |e]Gj'.̔ydğgxiG&SV:;!5ds*r+%?n*n'Qvq}qo~zn*2 &LfJp~8fz2+PzoIJҖ8{{]Bc[x7M%M-ajKِќRx՗. ~}EH}{7 v5k 5=W1HķV{b(5U2@8eOP@~/oS"UӅ$MiPMx5e)kO_}4 - ͖l0RZ_> 鋹$Q,7s()|8fBM&t思.yQU3߆SъyNŖ;0fl'BxFH TJ'm(>TFKz5}X,Eצ*l#RFa=g7ՔK'Q£Ҹ~ӹEmNI^@*ݬ`&/vT=BUH8RW(SFΔ) F;LF8  E]~ [Y5hZAQ.4s]a_7oӟNtLJj[36 |)/= !: LR&~7ϖY–'%J6X'!ʨ&YJC] `raM 6ShR&Nr D/D2Lo̷Z2GsNr2)ܘ{Y^ 2Zz=~ۯqYtrs0Zn|8Ͳ+糨 Y麦o~fҟI2@L4є#PRhۙE& QgxB1 d],-H< _d M}YUChfBh孩 &03ԈiX loSowћiͼ!KH)]g/f>~]//錝R~~Q#B6I.9[)3Hrb]~T=CK0^ķ!)&ݑI ͠Ac@b F:3|l Qfyn_ER6ӟ7~e4W <֧Y9lnD'ݺe;~:=m*Ĕw󇿹lE2'ZFw5U/v³P9i2lzȌװRY<۬:x I,لn1,G(db ] IZ(=w\2<|g*"yId|06mZ_$/Ogw}<\i=z;9Q:'i(JJԒab$"P#n<8A &*27-QꀏAqNNMӊ?OE{&-aOz}I.gbhBx~9k24鄜t|ǟmvdj"z=JiR{NoM lNJV5Rq㣑2F Sem7*pB a/*8]5[))ÎHy?c,9䳽ExksD9f,8_7i*lxo x3C:fN_/?O;uْڭՈ`eKo6$~eLzYYG> l4ETkԖR貐M(FnOj"zk(7Yy. ^CG= jJC؟?=|>|7T0wj Kks~SndNEkIB(ڇ{.xzċmb=LgD־U_3Y30$\ DȴʹOǍ;C$G PI\]7w{ 84 <UR_mN*n=רppE<C=XO]0>{1c}+!Kp1Hf|:?ouC#p4y.R+O[@$ j,{OOE@_ppN9;޿y3 ٦Ӄ'd|q=grZphvv7e9N5eCx](]v.K3H򴐂8IJYfln(uBzқIEYJKP{mVo?Tv=bb'mqݤn1LAU~RA?W/ҥzoa?~ӴJ (Y-)vy)!C7 C8OQ;`븊5?ZLL ;$$ NA0]ݦ$"膮cI8P4\ ~:r y_TzIˮ~a8ˎ$>!39,Xzm1ZXEjAg<-he&h" ]J)gL6 515gs+8{T^Q2CwW^8o2,:3S`#{ xv#UY=b7l ~6(_&tPMwt~4qqNҧ;2b,p_:9w Cf~GMP}HjR1ɨjGmĶi"R= 5X[|Zz[ `$RU"ȧSw˥ܿᚄO'IKx~<_faGbr% M'>?Mb |V_q_FP:_7w>}duAB,>;E:NzeY f4=T+J(:HgBvDzФGc$W{ . )},!mp~īfg^&NRAƯ/ຠ絉&]o;ET hR;. %S^Cw7d5Rc F|.4u]=N߳p^ՊWN#Ig%,)9YH;6t᫣3kgŧo\ϫX9Pr .B㻗|~j;s=U~S o2c4(K|KzCV~8Ԙw8U]S.U" rE4NUǸj&tc=.F@XD:] vZZׯz7o,Fr-^<ȘMMrQzJs2uc>17Z,aIUAhMٱ?ya[>|C įuŅ`72>q~cڈ^}X5@=ok˿35[~9_0 likt?Ï|{JpydEZ2C jC"D*{ba4Dpb $A[bzY$WD|HPifú R9 ddC٪{2yy8I*"YG/.qޮ&/ܿӗI>OOon(*&^,܌ө<~ՎiCkD@!K(BxћyFMdzcG} phWЙzz{ NBIƌwlBts 8z!@yn66Bf20Dyz/yڗG=s~^_z"]ͪ,L'[n_y.w)J8x/A:g7yau<ǟ$Cw$wOi[ƋƒFz2*d).T۞91oxյYś\P$eqeAq⺦N1gDh=˞#^[-*ʡE8kT^]F uR0ml dLi;tѳ (Kb an1x`|e0z!M/|&둌f}Zv+/ N1ݫe.iCGL5qSF\:`ƛ_k72\!Ǟ?YƺV7S9#N? ^ې*XtFSk# FZ(+6y!ʗOwiϞ]9}Ѿ8\eJ#⳶|}1f3s>VM;SPTnf'hv„0ƿ4i(t(6Rz4f: ѽD@p7a$̵u94ʪyJy_%K<W ]3ނkUQ`%I-k* khq3vm`,sȪbmG/e.GuȽY˙[=C;Ziٺo/jqbCc*C%J8iWT@g;tb{0Bbe Q3Ųۼo\{3dٞ  ~tsF sOߣ B#; pm|%En dJTQC 2tIKBȢ⍠sF-O^FX5-su|dY(tthiR mjf9as sičJ&1ܲ<~O/6U5Bl l21DHa3 fY Hc&SvAAg50M(9dfn_ }ˀZq@s6+U@s&4sW|8}8-sο_{:WT_~WmlnզL-J]ʐFP  P=K%3t qUC bDk)&mU/d"]^t~yI07rb^2뿿kqPa$hew] SX[/R"Ye_ob"MգFץO>Yn7Fe+ .R'L[2"`Іoj\%d~b0h [w٪DuN{T4C?ߝjFX^})@Ž֭_n-P7杲A%xa cbv*;-ͨz݋C_Ạ[ x>:P |'%}T\\ 8z-kZ-\P;/BW-hFYnNyr,Cl 4@nЉsSYܶ"y~j]7?{; 4`_MQ/s0_ kKdywnOa޸Ÿ@&LKQm ^vJ>d2E(oa&>!5Yegשzv n/t~5}_k)Kꮛӗ鱼xW^槯XN:gEGf?䷘IYZ-H.CZ:ykV:%$ɣe$seMEddx(Z;yz~cU֕0G_,oϲxu]IЃ]@(y*uѯQ B] +唤х҆7xtk\< dvfY6P ֊?}P-o'R$ \||E@pZ$'R{n,Xį~t%M 462~}^hasg-7aR&l߯i17ͭRUOFij%;OD2F &K]/e_ZO'kjIa5Y(Ѻq~B2\'j{> 2IqRє&{myGp}|mVw'Á5v H u]iAm@`$wmȋ۝tR ,@WE_Gq0!aȽ.Z-˫{~s*A@*[w {L=NU^w԰\ ){Ls][ihfTyVؖzC!E_0"0vDF^]JLd  */^)辸>yz蓧w-zK2Ube[?/eϛjf~} `עҪ?FX=ech#η2(*`t7F`7MTE#KJF!6]Kt= r`aqw'zs <ۮҧ;̌(hWcߛ Fz9"Snǥ1h2d o /׀3ndhydK~`drtB/t}uc"1I֎T)8R|b˝4,Ͷ?/ s ?.˒40m:Ygq݀䂄L;PlǠjbeсz70TN\t J,5)B)S e6yrz1]"af>#nziFgX\:|t[OVv!wɤpoj?Xʗ'xSЕgXʼ kŘSӣ#FG2 ;IDWhzDG)R3E% qsA s }/U,N.$Dh@mIA==LcO/4-+uJYEBP? NE^_ghF d4tm~ϗ2/2Y jO OE]W=-DNwi"X5o'4D ݾcHd 翦r 4)4P.=qq&;eZtCOwm l5.pًM`XwOX%q=e͕Rt_y EP>^P:EgkN2bx+*eH5.ym}kbZAU e()0}a ;HHv(6aCThde?wi0!Q)L0O_?-M˷BCyoՎeƫ&84HR47n!B1+lur˴6.KY##y"@sJTe\rDMam4Ha|`ȾL[?ܶ^9.gwD-)@zg%(./QKp([ 8∼e,8^zs+dܵėwv!zɠpfbZ? ;ZkC;J(hNaS N~^`ow?& ٕ:>қ|^yz~Zr|2\m<-exv*8`QdA{C]YUD}ٍާ0S \!^F5ɑLfD,bh0&cf>MFnb'%F? PC_%04k0~,>--__"~`v=r5k]\Ǹ'>=.1B_[d^kt+bP}駿.1hg7!c9=Lfv]qkc8}-\wHnFWI^#G#EmuWd]xhDIϪH1VLJI!] Y|,ė_g_=mqAS^>؉vq 'FT@XJxcm`)8 "\0&jγ k'q2\1._ TWMhKD({QD&U 1 fk]D5Im(5(û懅K]ut>mᲾfWwmB'pQ3c#1 p UZ&T$`@'Ĉ#zpd`RKم-9L/vJV~bbeQ>E(EatG.h΂n(S8,//jd5ȜtU ri|Ju3_k1oTp)5ʋ g"2J d6'E:*=Fj r<%E{1pq4<.ܹF,OrDZ}kAPT]?INXlPhZƟqĂ$EuxAe7_(Irv<})?A_˷r{! Lӛ=ݴuZjk2& {y}$v*S+H4>4/kE\cusf!B:0{wguOd a6CтT{ 9[ct*]ᇖR!TNDA)o H|:o܏Q=cN| 16sy٪9cZ_kllʯ[ĵw%Z\!S,(D\YDRgVM5v27mIdH#1반5 J/?H/ON%H['|AV 8K36T$ܣ8;d8arLaau}N{,yӵ/+|iAT&@fβ:&A-8fj@sBhDZC~El{W q,Y5S F޳L )1I{` fJtܕ?4#m#z)⴬X'>qT5TBaMhT ,!@r.%tђa_5/hyvJ5tU\HmEN]ZCs)$-u{M-0kr.+-Uwݶ.EA@RDÃ$M{;EtBLiF\X2X+u0g+aW<qI|b+#l|f-$2yػKrxs2F# U;I9/m?+Ah)L K֏(׻qB9FOΪ$#.b˰Mbeo J,=QLJKR&PY}r˨sruY9Pk( ݌eC}TܫXq{6t"2T~uw+V h5H(c`ϕB~~68,؏bDcO?+{aq<\yCE6Xdڇb"wuL;DjҞNAG3[^I#˜h&)z$d ZBfZXVH5h^ٻ0OIm$F^M YQ0D<{Uc} `%AC DP`h0݄l]nO06$ 3u)vi 6`L)":^M7 NS 8k[ywH.33D2}4!lihM $C8ԱO)&&r0{Np*Ms7M3'xM#M[;[w{O]1}jW7!RoGJ .*Qdty_@6Et p@20xmZ:|] ~s{9d܅kGW̝CsSSK4fU,6#Q0cvkT% TVz*4`^t?xk H1ɋC <Qre}Y_ۿnbV2Z{<|<4X': >^ٵxRB/gnu]J~r^ ;9՚eEr?e oJ2{JGʴfbpV1Oƨd*OT2QIќǒTRv6tNV(òDηR^-4d["早phǡG[CUUU092``_h/oHk@`PJ4}ය6toнi] >WD*nFIh6E@xlkBi6(~VHj_^)"\( *ZvM@u3)݊%g@rom\[ ~CR͆٬u5Im2nBhɂr% 6 CB r RoԽ`\Vd8c/^%f `'b X^2:GZt6FhA4ʇj%<҈M5Rt j|00Ob)ˆ|b$V=|M_z<4>ч D I ޘP,]ہ긌R|fnYqJdн[rmv!: kÔlٖ;ɔ=^0%p4 'erFIYEF^wf~)N.PZ$ dy{ AU*ykLouOr%Dxox[U6`,FYJ{%]Ѐ2P& kw(Z+Lu e{iw|jg,4n+W@LeY}ydE|.$kS ~d2DJg:Yltj뽶`wv| lNkT+0[ӝY5Y tz4fp6zI<̍6`gz",-Y`TKZp|p#IU7wht* u]WsHPف꾵|A0 ulr- Hd^ݞ"#m(Q}bAq#-k ;Oj'iŔBn|eTa#lK.8k>)}gMF|=rΙ>ywnOR4[i}0xsO߾T ,Ve)ڴ%п`F@e"Pt͈Qsc{$[4Ɣ|7ʨfNɉrXz 2VEID(jEbם GT7޷3#qwJp5F7fKӕzo{i X clCLoٳ}$n*?" AQqȵs[0&t8]eNp#_CL+7=4|[3q eZrJ*Vqp#rR|_M9\oafs0YwQ8L涐DRun MLen&2-1՛SK!.'JrNYYs|u"ufRȋf,xg,AH W1 Y0ƅuc$<$MR##NlFuz cKϫҼnzmJXOfqw ^<zn<ص ͹zs^̆Ԭz]f_|82$P:gJvآ ArnȆPS 3\fQ0d5p3ˉ.MElcOR2l(jjʱ [єPr5\j|4i@ af" }[2ψ,f/otR4JTiQ%&!jФEX>R*nG \ÂA btQ',56w a=cx;"3v (ÊL\iY#k+`m}1ʗN@,Z^ e[#F0#:d֕O1=tC] a$]jC7 6Dim@O]@(@x"ra )a´'ϩZQ[0хͅPscIkYU 1pPPu7j, :~3"߀~tf%E%6)s`;d`D(wN!T8@7Sf%.hCcR YMi?q0%5=YbC9b< 8dT01V9`F"C1]k Vս3`͡Pe1YQvGvlk^ws+1:kias&&R|1ޝ/Zv>Ʀx '6 >Uu ;fY8gR*f`5SltHCC j@;(*gVKg8I͞ c^B Z477=N Rzpd1v5ʴ)J́q'm5iIM@PÝ\[/<^3vjuFjNބpXVue{Ǹz{n- k{F_φH;Q nEH ;5ޭޛxIzlS8Tbipv\>dHV,a# {qst,O3 f; .aBS_44=A>{AprɬÈp6ixH l BUi5?wKWimFl vr3״}9"VJ19 dz (c2")/`ALQ!^sd :0JfhY%FRw똢tcKB3]?vlZEu!wq|#Pz!B x iG#^ Z󞯛S@h{>(˧S?Б{j02aģE[{ Q7=FryPԃwy#̤6<.Lӻo>󩳝S6 ye{ƌU=L~Av󽴂@#ZLSc8D; os__+/:_lJx,Ni$>:Q]:n8v޼>*-wXw. B>wDyjDc;`.&7QjJ^2߯-$֐eD:k {J3npv?馕m Kŀ2u tOC/D5t?sd3ᣝ1U;?;%b¦*A>~mʑ\FoL!qϽ5(pOI+~zƛjJ:1q@N<ͷq7 v(/BMF T N=Z8;2-8uOo\讃+s:&zuAW.իt,n$" iBIDwn{x@e69aS=r m$b9(%#dzɃ>I4Bfl8>o9TX>o5OrcWŌ*sKdG>c- UN:}ji1UI23J䅞g'IgItZ?z/X:mW||0 v%&-V0~ a^3-Wst{nnUjCA!3Odn|3kZ +D*ևt6pD)=''t dg# ޻(voYBaIDb cȥ lU=|1\i]\kZͺֵd2uD34iћYYZx\*dv۬v,FGꝛ!4Œ:di 獈h@CO!.L儧 /|NX RVqj ik罱/,scިN@Mg>1&RfDXL@, kk!$,B4%pFp{&z5PFHΦ =]Dj}K mr>_F-Wd{ Tz,Oʺ*u_;azϰDz)湁?яPݡv "בN%Ezd:qӄ0Y ?5 n05@yHt+s5nzX@4Bz0J*c܋c܇جN? p}^2\Jdzਣݴ〄ld} לcyvlX BjzڎcF.F =K@v$H5j+ίG&M ;\񃤅 : AZцq8`mZ/fRCHeq0%{XC0<$칁S+T/_B rZ,86j%ӆK<[?6^|,&8[K0 PBrGofdOV)pXbx,Ƌ`0P>!0W$gdu b۷#fL1)b+b\Sha3#Fd΍XCBztw('V hSςEAab)JG97 |C"Hx{N7'ׂCl x =Y1ֻu;%1?.h}q:.SE6a$:Xhw>7gV!mǞ:ׄ+tIH2i',4KWO֎BIu&o7]̐;ֹaOhuYdඉB~{ΒwcM%2K 4%95O>/O,f +5>; qs52yYM:/mr̻.ʸFR÷׌;eNn)EsQ@!jtMp.. 4:z7BPL:`c J(4J1x Ǫ$\:'Rm(k+*k_ޗ%i}EK/%z L- :-onӵt6O  5 ;vZX-yp*X]lѩ0$(z 6"hgH[UΣ4kҊK-4*\K%+h0xdb!rͽ2}~VJ9hjnad|2Sy;V4}jc>Tӷf@%cXɎ.(dNQj*%&bf A߁~SNOwpLxyoF}% ZD Ap`  ShNwY>hS^'N?k~sIb8tY.Ru*%F9 =U薂 ,Qz$+Q: 刅g6ϭ{2@o0lA vǙb uu p2hkTpʉSkE+:ZGc~S)@r9}k=J* N#@bjAc< J.IɅpЭ:rK爷>$ECi]3A0|ˇnh?)uW$ŸLykM'/HχYaK$zĬ(yrE}nXswgaͯHu n6i8xoxY9}ëm8otD#ٍʍǍfRP e +35Vg oH S2'xtR ZP.{ $FHP[G#x`֋Uw޵^#S F3zo]ƑDdK=U% zNV&qF_ozz!u|byѴw@6Z30nX)A{bg;ɠKh_a7 ՗ZrF gHSC5)}0qyWμ,2 ׽P d*ITx5 sQP'ǪF\@5َ{&(,jGY[^ >{?RT m>*(%U1Տ$z{-63j;Wo6qA"eANMHlJɩ/ y3%Óɧé{K֨(R"dxtNmbH7)2a|XJ-TcDWIn*)~ٮ*kks:$1DUAh a(U8Rmpx%E]wJQSZ+yQ̻24E|]˰-a&da'߮UF5_?ko߿ad&0ĆΗtN&2&pH2N}\>5dj 8Κ@t*E!(o\AQWGh \9kI[0y@RZPs'MQ0| m߂ DSB\Mw7>R$$<\gk=ΏOa)c '%@*nO Tj!cps^,0*:Xj E%U=S,W?$"^o ;^"'кq d$Px Ҋ4Ykm<`}W**z9,ff*XM$mh'Ux hxhvN1yNBQVmF(5x̌yPaw ۝Hf56EvR`R$_LSK- 8Xzzж-o5Fx(ӈUx+_88Ft`;7w:Q:#V.IJAW|w(<7'&A:4}PWڋܡ AbA|IQ~@ֲ0W𞃐GFX3-޴f?ņ$DAiUo7ݬtƬ7]xx.:XtRP Q 35!}=Ib J|U+quP\5M$8][|Y?[2+A|0-8N$#HBQ&;j\FPƬ2~oshS 0A^Yfxe=NM+@~ƕo/3cި%$brb/\]DA <$%]]k2MZU|U4[ѹ>#fBP**ZF>B1n=M F~^^~8UBDHB5 u,w"Pn[+l|5 -&gv k8#-4Ahd"Mpk|b/Y5a+z=)T>?=MfA.!gx_;qۿ6A]Pj^S\\4eN[FܷFtSs4ƭ\,gzrwKٓJ%ȱY/ HS{d@*DQBԈu{cE@W g3;\C&n*e?sAÊH8H;T&{i X L|_3p2v /5woXfN)QR2M\gJ4 22cLRD12F {GGBf7AOvO_QhXi6ұF#Լ$:5Dže(XQ ٲSp>}Vll'y}ת *1"~l/_afݢUc+>#Ԅ;0ɋ9jJ]{GD= {?܌FO"ԱfXА?EHot2]8V?޹݆mY:B7(J#ebY\BPtְ,*%om@"- 0-W7ZF8t[O $.?~r:o V%A!; 0 $ڤ`[2<<+Q&,r؛_Fn{9hՍiA=~qH9j]C]=c*n]V Dfn-o>}0b)p*G:E5{~c?~$-`h#di1 ?ٔŮ[Μ4>˛T.[)̣`A8/I&~PlT%'Abc 0M B3`| qlAî 0GI3Un$%5B)+~vж| FaWBo?^Y\__KOLQe2TgxEO.9=!bF #Q)quܞհ",3jnL?yZ᫡+m .OIpx<__W/yh.,(sKj#nL4BTC~iwE+֜'+CNōŦ[U Z,"'Q& %8J̶2B'd 7K!Sh"HBiRzoASu)l=4𛢷΂ڱ?4+Tv(Fʾ![d*^6^+Do[%`%Sq3=1σA?)۪MQ<хiKȄ.w?ǴLs a!\S1/_uGSČm.nsA*p]Y 5'&QLEB=X$e6$zc|]|V)֌6' YI깏CuE a~OvZQv?%ʣZ qдJE826%1FO+&|Pҳ '?eb4T$ICWl0Yyf]CIXI!CTaQU@B`4dZj.BbXd%dY{˽9I.'VU0i$+5\~}JH+"5(f6`6$(v b׿7`u0PU!YQJ]fN pݝN2$u@6qmX,*R>#lߌWQbkMk&Zq,q&# {扨O'.Bxpfܡ뿿&,cmJY㇆T@M&ΚU"[L5aDUCCg]LI1!h?)0{%$y'])ճj›¯+sǖmhO}n UԎ [_~m^lL$:Te妨l=F]5m/̝-aVZwn(ڽ/wVaǗPPʥ֩2R^ja:w"d.5sSQ1()`ER#Us,.Qh`NƔz]M92rG9cY [^GD7(6I'C49L 7& 2% L_pjxHԞhϐ8) l6,$W|.h jfs( BDX&V\?e԰LeP¿Qn9k9?F'|>,iMHqZWw"enWG-=YEc꽉LQZX^\\I!3amib_H'2>K&۷b9 Ӛ_z\FoKص P_ %kTN/Ub(IW\>u%08Œ" H CHQI*iv` \&Txx)geL 몿C!Euhc_+ebv/Q+_U(D#nrbx8/E^5"q;5߫Vm&`e6Ő){1{zGǙTh1I1ATޛSB. N)PCkUU#;fjUǒYA8xHiax^q;u(oJ+ga~} [篲}Kc"J .uKERxlM XV86ɤUӉ-jo*R)z]0?kO*jY C·׎7C w4'*ApB=<+lŒ& rΊg!cX(\nih%h \MPLJX.PZ%ѶQB dP2M{#"2fE[ dY;Aey`4ͣnxA3ǑP(6BsT }4-+Re$[_b~R\{kZj'lޣ OtntROH/X4ދ8vEm'Q_Qs 7=yAd 2:1&*cwl<q&Y,%ܕ 1@'/ i9HN[Rv~=v*wސϯo ƾ(Yg#gn.S6>OZDoV]sh͘,a-/eS8Ioh?_ensZ>+?߹br)WԀ€͙mҿ 6~r0*q >75yy>>7;wcZ ={m=fzG~_kk/y`46QTɾ'9 sg qLf5DY"CEFփz&2ќB3]5,y-FOӅl!(prtWEkR@#0TQ(._Q9LҟWv5`[E(iSI>MczÔϞ,'N=n$#(6Dnm 4ha;3x@kLZK(f]H;:1r;*T@3Ou#6G#)\|9"ɋ~^UHiS@ dj'yBVc$:@΁jyovNz(VZkaGy 1JtT32d GMĠ/ʎh{\V%=Mе4 R]|tg Ɠ7t;e!r>ѪDLb+ش[PmM"p _zd)qb!xF6_3l,U(tyKQr3eTG'i?0;w0GN+||w5B\PqxW,GQI4̫Xc'Z^_?3\b4H/M=<- ~0/1$xJek%KТ rΨ~ru$k P~%UK`<o1t :&ۗ#R]~ QC+_@:/}EOuԴM_0m)'xN_YBc٪b UUJ=Dg=[S>Ne,z2 aXyI,z/\^K\`%0 oEgV"IK)y&,=ZnɠU> y80!~ =&ʵOrՠ-<5JX`y\ݿ=h1ovoNmTUtC%.yz20;meRI(lK-Yxn?x<_VG=+͝]hGYnMQ7E=r&wF_aFмX7ߏ'q<31ڄ紒IkBK#ig#.݊`}DYKQ/z {Y1sKBe `6iZ钢]&VS7z?|ُ}bR(ܜn UDM5Xcx1 $[ vj^Tmӕ;$ g<ǸYء(dRݔyۨYƀF0AZ_ab81"o}]&S!Hj'2MdAŭ9|6\SB|I5 LœUi45o0F^> c9[1XU Kqv}Qh7zC#jWe1_ȵmy^۫O> WFbg2x۰{o-,b!xXEuy (J͐FtP? S45x)&HR,3FLr7C۽=oBH<U4AQ1s;?L﹌IˀRV.,`"hS 'ce}D=A%icm mw,qΒG67 O8wx"D=?3?'{X^'cv!%PTEt]@֣x*Gꉹde`٭7pvZǁ%vv 0ŠyQճF皾&m_,_4%n<0W $?x|yd0/̊BQK8)2z&\-/H`K.V^ȉtNӚި>Hp 5a}Sw 1J3Uh`caQBi Cm֓e܎gorCC2/ԲXSS~FRPJy0Rf$5GETYQv ~ĨħrU!rT'6$|6_\Dw_7iHu`G>窂 i:P,~0( ˛+_xѣMX!nOA@hQm!ܣAEVb2q{ ;nqTެ|!mJZ ;\xCQ/έۂmDĉ] ֔:uBf}!ekI2%.'9m4BVK -8!I*|zb"5Fĥ+9}x+ZC/Kάv-N W`H^߾gQ'O4_YPRqbUsWԶ2uT5eɗvF~K ˒fռsq a)\TůBd rRA-zo=v WG(+sB~vHYh>V:N&yPz1 Vo+X7wĨI䱄;)7kK&tpPFD$:C Pale5oftmn5!"űICت*dbu{u5&Lo?a0Q*znTn0.@z#gc2iPihlէj|j;txՒ(k}|0B2aXi7D9JQu5E[X:.E!SFAO_z|*y "EzgjS4VӇ>(ӆ$e&M9Np_xA e' Soͽ(_L H;aQ3 $OHt =5m%#ʪ@/Mi2)wsLb&rb$o,WA68Ժ5K;\$eqz.rkz܏{9ʔ$IxxGgh !NA˗pLԱHP'_}TT%Ua6|-|5G2 WS׃2 X?Y;?>痄o<0/ԧـQE!?(JRaԃUB1WWSC!z`a?^Mw_ȯ`}ՍsߞXjYXج6eb!B!'wm n`mUث 0_!f̋+z94y\g /4;)!Z=R Sh]iTIYtIfL[.`,Ck(:Qfeob\(:􌛯֐05OgKcٳ%\;5b*S©RvĴE}X uz!cEc,})b;3u,Fg]LtjDi}5GkNFG2zTKSQ: AMdַu]`O9Y}P(D&t=6; @7vB_E!羢S“!4\!xQtAR,=-QCsI_j\9㾌ǟZ<椨Y)niG k<*u`g(Ix@#<0xg7mif -cjZ䫮#Y 96xöO F% X{:%%+ ,i9@}?L;Dz]+SîE ,u+6v5#ТޠFoSwxsUctl,6ShuyIʾ7B "ޑәr=˪ԇ,#);xLZGԚźxtJt[Θ x7=C+lI 3dOfUl&I#F< ])f/$U]i`עM49SFXpB⪺E7frTKҖZ)j,j1nZi 5wgq񳕰 :P2U< 3'J18El,(8x p H:OɃ&ZSMdRсyHb_f8&L켼'T'5c#$JS?Ygá<}K Bm,2MV׀S뜝 A$2iY]C/ *>‚.ݖ8HD)[C,>.3PR6ZBꭹ"Kgp85'TN*v0Ģ0O 9鲴W^6|pHb w77 ?gu9J 1JEi~Pd+1=s(Fk@ Bvkh3';H9(ۇ;[KּG#vvz ^縴.t k,x9QF~$32ct4K~xV.%aJre'nW0FֱW—|zϏ0\xȪC 4"s鷋KH\X~?et,Tb4ZY2(6DTr;ܞ3l[(l*L&-k$ `xdBxbt<Bd/p@D>YD2@9 ΫdcAӶ#2+^@VMMELO XLN2g5=u1:,M"uKknx)v{S8^lpVHaNՕdI0\|%. Ǝ̾zHsb:$MH h:j>x"]مNbRMCd֌ˇҬ>ѿ{G4Yǟrx,_,(y( hpKd(nX߁kO k>+_WFex҉J,Ӓ*jjT9h;>ֳQz5̕Yav3(\Jn7.z ^Я>.9WP0n&0XG|֍qRe&35qʩ6$w=,^-ME_~DZOcVI4r`7~IOa1)h!eU0BgMeĺ4F㺂_Ld98!TնZ,m*1X?|+DZSyR0T"" :f&q m0Gd)hpc%~ЏMjŨ`M $aݠ ] ja}Kc ۣ-N~5ԝ \,fxR/9\ Y{&O +:H\ju^u+D.b 1ߨ{+aH86p]6HМldD^F(s"Գ=+nC6MG"H`[#!M#a>=6-=VDBMcDA QMWJ01 ØBVȾYȘ%~%>;nX}:(rc~nbL Q7CYǹ V\tLC?F!=)WՑLMxWە0 x _W Ti ?'8Yɺ2-S桧톀aY`]m T56.K3G&s\P0S_Q]h8e* N ?rgÎӚ?eE_}o,Uuیw*&\EU(t`V-πU\dGrlO/?u*VW闰Wt^?.Ѻڮ"7M>ɉ?Wj#?F{xgD]T#6K~'he + fho|; MG3af_Hp֒)/F0ۂRzS*ʁ!7ŧ6Z5)wp 8HSDaYj|.9hE?,tғi$}`^2W;K!%u_``.ద+m ȯfwu%ىĪ~.O~CXYQhh=1$PTt#, FboDa\wk>BWI)(&+nŒ@<"!3ZWr (FP*DvYyMb M'u{ ѕ1,7XgMhL@媧@(#Sy |iD4Y5NR$]r }iM}bU:Ga+ F 9A[޸q\ȉQ$5\=j}a"X1d-y yN $Ec_a[SE֝`i3lV0ݡhE(2S׺=q]kVESK7>:}} iRa1'ୡIUꙘ?b?]R&1@.3:Ṟ)3N+kt_nRxOϤ4w=/.·]Id>G"5%!L͇XڥxS5k h%3fGx/R# #[]]=̗֠jژG :bq E*^TYҹVF,2Y;_uTZWuũ2q4`u@O{ޖ KlAu)/^[;Ƀ7fJBӖ š1]LKHT&o6ڈT/$ %Iv3&-98#TNhrM]/\G%*=W`f?˞1DAe5g'+[gs$O< !G_i;ǖ40CAvwiFq ݄q kFz<Qr׶gU\eGn;J>FVpo<.Kݝv%UOACh5˲/'c![2BJI[`IhS}tcW\D$ET;L*q'ٻ>?0? zn@#ä[_6v7iy2C/nGMWc%:ˀq_aԬg@e9d&ЕKxBn@-mɝ:`qoBde |>b/Ш8ŏu_ðK#̫?rY9<5,]͛4)tjRghyC_37#_vh.`Q^r_s6%ށ ɍ[o0ۓ:\J ?ag˯G+E!gTۈLo7OP^-)@%_6V@^,[˗$QY ױ(r1kA\߼ubgvY" %Zd\-S5L+oEd2?8$33N4L¤$Q~1t}|n[rb+ t ʘc&b> @HׂdbsBxp ms~@)XE#͙L-.s _36SJ,dJRXdZ[iEDf!2o\wür(2V0KJ P ݀t 8[6c<{O750rLA gHlLc1236sSgt,!RuŞ-A-,EX$,bH|2]ƹ,>DxCp,#Ȇ\^뽺O NNnP#fU+uٴ-jCM;ɠ5!T!*g@O>֘ T]>÷4[(qցA|LMNyJ 2eĽ0{3/Lbt[.yVd@džl1XZw9X3qH_\Su\,̙t+' K;̌.TKa ȊP21 H7Sn3Q9׳.DIĥOzRlQ3{ EΠNds ES1?='|5t;:+^W< Kn4 7jtO< ]1ozsY_"nGYZ%xe|nbZx:FV]ؐ|qVW@2VR$UuU[>nJGKnY۫_e͈ & w+H(H*=M40}x]fe.#,PpM'^ ('uZ̪tvWkْs$YM,Tԣq`y`2u)VSH]㦫a25T& KV f2QPl!L@\MT%5!Գ # MT&Z#kߕ[X൨&"E}cerΨcH44#ce_4❹;nw_F/Tenh/C}${)Z:0'vSGt2%*EHL^ɀ*3p}|,\Dz=ҺGuhš1=/-(su%sl(efCKF2òzMaldط}|^hNΪ`粮' 1[uREcC4ԧN_\a/\!|hFSh)|rD }zSek6yyוWr_IΏc}[ɪ~ˊ]|=E#ִJS|wũ~;:n>LKfr3Dai!]+'hڐ(G)9oS@M8X'7I ydH1h;A lI;YYQ*[gk=1syX +1Xl5E9eWM։,sz;&í}~!Sߡfȝ:v} ݸǹۋni J3]9_-IjL$'W C- Wùn+mVwDm.#~X"k"T@f5kִdoExze#(E-'%7'Sz[x䛨 b96vt=YHMeDckOoQw& BsfME&J[XR`dxB/)|֫BV1s^0uw1\Юy е>:1ށ$;nFζl-1ڨh*m"c)S5ZKɊW*; ,_h@V}Տ9qBʔf/X@Mx_,=g=ӡpNlf%K1:Y{KFsiGF&Ϻro<\2-\R>OKj1/u- >=E~1yNoJ>ᗑQk󜨇yC37h,^|^ƓZ:fAEp!1bM  Y6& o !4+Ȫ ^݇w%<5(jBm=o P?Ai^sü#rf:6kS"uZ0ӃvE^;qJ2UJt`,K$I55D!lbM=\"La7nj&&/`TIQJ\f74صCV2CA0=Ȇ12hB=T&>Ʋ,ki{@5>ULR o;bS hى3~<2+fV5yHjY}1|T\݂tU!Ct_Ԭ-h4B!QsŰ1'aQX}w0ܢܩsSceRjpk"cV鿯ck2weZ',c4vu=I~9 ǩ!er2Q/5yT,ĕy7mgQp?n=YTKlR?B3Oo&ns C=[29b38FŀvBE 扁 gK9ŀ&۹-d4 =4`nfR “ie';t#`. 4g@X:poonu{*J(83/t%w}u=/.|oRIZiԒE^@sr-)0݀WhG%)5&kx.g] vǙU`5$-'~JGaa@AqVPR0غbl@'OK;ǰ}g݀aTm1=ܗ{<qi >̐ϙ}^z=lA[jݵ7/fa}#H2yg8TVv7czlZ}3{҉3#iO޴ˑ+4s HVuUϑzV}Jd23c6?IPd02pgϖd/DWi AخnRpve`GNmI|ΥWg| ~%JZ^6'LsRzڨie ~<7U|LQ"c:*QƂ&bIP IM><ך;-u扤h|㱋<`?w͝&:H=`݄]Z_A 7r龵]u/nygLHr~>ߖ݅[<Vu[O`nt+mmd5+Cla+n̎:!\/lƕRzPq/X އ)k0d~9Z#TplvH:> B-eX ĝ-Pώ5<:Nsl6,獲Ћ2 RT8@pH7;68:# oA1AI<=No(< ק|AR+~: 2!Aa|~='zK3cOg4c- eL^KeaD Sޑ>?ly2Gj y3l}#1 +klsWcLAASpB[ꠊs7ޥB&y:I鼇87P7?ch"ԇ ͈ɧ5GYEV=6 Mbf65y :7צS&ޞmͿr ./JSp*_F߁SOWf1Wt7Ԏt44aX=`ۗraʨ;7ձJTfJ ^1D|| "@}um-ofqQI|SE{GXdCep /e}w."0%nWʼ%9.q<"@CNS0E9J_'4s);ݺ;}Q󙴣̤k%+Uok) rZЕX}\&׺*}X;#unZG~ <4]O-#ZJܪ$Y )F.{;1ܣ=̏56(AqzXsfLOAml4ӫΰ.R0j*ȕ.N%]HBNXprЎdƎJf z}hӧFJ*3[/*ݎ1:vP~s>mmǭuWBu XG:uA֝q<ޝ2V1J:V?0r12\ܼ5D)/@7.,h *᠔ٌB/3n"H%]g ĕ<^HlP\uڍ&f$ +1xx]8΢~h`L4&D=s9s&H1p"+]s;Z#4eГ 2@e^B+3΅CO.Zl1PSRgy]=<YB Mˮwl6elvfq^B)X;yl@ؑRkNDdLh>I)́Aq x@s8Q\+[~2ca;h I5F\oJ{q(OB:a+5BΫlup: u$CEޭ/ǐ'Q݇oNcd-ptx T`pwV3 .'hXUJ1I1No"pA$ :iLKX N2!IW{B9D]XI#_"2bsPQ1nMh#U $^ia[ H4'c!wׇ}x)=7ϻu+I\$"]Ű( -."Z>'!UUJn%h:YO㈁UOF|AKW1lm3+IPx0Q&jJ+4ē$>RPJ9C,k (dΡ`JJ}ֶYS;)>W0XjrY}*Y3J#X'/%"ン";#9GyBШ RRfK9"ghv׾\ FDiΗ:RE$ ׅx W)s2MY{Z䐘kw3N[#6cw7ώؤ̲f__6&a;."9JYq͇녕8a{ I{xQ*`T-Dȉ b4yu+U2o<-Yhd_AmHO%A#BKqmdmЩhš37TG"e@PO3C'8XW?+Bib%a$ʉq .Q%\ x`0!"D,V chN,'xذK h"[>Z%,*s*][8+auҰ.f%ƊH=K(U S Spժ 6  ?=& :}qoЌcZ|ىKBx_N0i,3:uG&.i=nn'+"O¯K~vDM=L#q+jN-,,@>AbM*[V\*p9 9 = IaFDX,iW2,Z#~zGr=i0`uM\rAg\I:ga Je4| <>FzPV1# \NQ]n*[,\rE *)D*~ǡƣJSrs䓮gvR%m1Ґʙ_U]6 "&\g#Q "-j1z.Cr)#(eOa@6"Pxo(Aك 8E;,*YHeN4򲹗z 8/H)Ș,ؘN\3cx`dR#%& AE i$ϣ"k e0mdagc+c 8^9H3/6pvdƎ RCB`ނ(5'BX1.16ֆX<NNz"8ܴ2S6Bo耔k ih ٱJiVMNgTq5]^jHlsPVUנqYZ9S&&!W$G&c :G1e pj[Ҧ,蹎MK'<9!Sz&Cx%ĵ au<:| 9OkYI&I{N]D͠vi~859M!mC-+[FK^,(~+p46o<WFI0n`*'#m?q$'3pWTjYP[/pv1D I2My/CA\A'7DmV%Dx2O(2StT?OC3$T4 qվ8K#l4avv]qB.]0(zxM1%#1TCl1oi)var~`" rRjA-6z:ZEfdHt-z!ҫsݻEw*sCâư-!af):5Ii+K\7_|a&Z?ͪ Cs@o{67 9$:ZդJP6)VC0't%"|D)Ne~YR 'W7$,~pP5䨭W~t"^c,k<Y@aMYRp[ 4u:O%Lн}94!~zDuv`Н.L)!zlhO 4) bMJ i#q]aǝcѳ7<7!\):Em!\=L:Lt+:<(G' M"py?jQ1˃x{.6q`Փ \;no  hA/{^.Ys2+UX$՝UC N8-(㝤gA"Mӱҙ3uȢ#=7azF_0R"`\IK+TIkQƔ0<c Ɖ6c0hKecx1=OE2 6) 3? e0RN\}&)OzDp9-$p26szp-W޶O\k <1L։r(ͩ5uiIS ѥ"v=)W~#ذ.qu#rYVʕN P h\%C,Xmkiqe rE-LCJ*Z`_7{>cXHc R^j> 1 ,bb/47p_sXT 5a { FcbtXE9~qkϽaVb_Bֲs 4ŝ9 Dp8E>kD*b8WK[?kLtWE^YUYƦI_ƹ`>7)NdcVa}=Ւ$38 a :ȣmeƚV?EM`dqT됵3&LwdQȐ\dBMl#CXx:IL /)$>H@GF 瘊/%IJWhnԕ,Q{EpVMÙ1WFfy\}0C:^.oΑ:&FCn!]t>i|ݕ< y y<"azy٥r꽀&ˑ5hyv]&/ߦVݏSo/畄71Wpz+$A%#UUp ɜC2v_Gʥ4"WWMh٩d7 kxGSc }my Jf<2$9q;M+6:_ :a8DԒ7-cĞ5Hvt~f2&0菮;J :ׅQ[:{Me8j^\1#ѐ0YGs/e !POb4BAQx f5rȰ6GmĮjvT@^GN%zPo]88 E#*3x%.<aN,,6q79$b\nϣ(m^ ]Bs ʔiY`K)v7Z2IHd8u3ƺ>gm}k(R2Kqo6v,q*H"zWO[,)v貸| ~?>3ia, /S# Eb: 0ќWqFld;$p{Kѵ4yxMGUމ[Vd05 ELME 1!u쏔fXjt}Yp`+:oļ`D6Pڷ^_-(NwWsH`^_n>2Z[lygئh~]Zu#qnׄPA]bg!6okf6/U8g+ m2ddONtʡ2e3:S :!fUAmziIew^r[P%.h\g5qvԳ|!t_]B9V~Gu$@{3D&E& llfT*(@"4 *+x{&* f4*V4e^`D/1?\\c2mfWA 9խ hzUy8 Ih?/{}R!Hc1)f]T*Ɠ{REUtP!U*OP5M'>X,^ZbB~HsvH4z[fyUv%xKQ\B*{--@! DOSG/K$tu-7L<+pO+sLOA0RGv%c1~xY4ZwRSS\>XxkHYj\C²YRSvNd;GsfHL=/y/sT8Ys%2E+-n9/}1ASEu:Wj7:XQGvd׺EȨhZ+#E 4B\6F{f=y`0jfH2;7Ou}]DoV#NgCDe|y~'_!iOgť˱?P׋%MT)zO6W oa+hOi`w<1ErhU%'â?6"GC?u A8<$"0d9`zCygNm'˙eLY{OyҺ!#0pmd7ڱ'&X6. 0 :9t,VC9K4g 5v2F R_rPfW68!hVN"WdXge!HP)q8s|L b=bl{YfKwjd̈́W}*#ETN:"!soִ~M+?RshA1F0,'N, ] }th,*"^zu6|Ey5w̤KVa6Wިg Z^ ~8R0Mx;QwkīҎ9e88D*7"qJz6(:Ԭ7/ 0( bwEdR+ fh ]'kH1Gո((N?8{v{v~YhT{rF0HAj Dp葓9RKUiht ' LZe_\SD!'wQjy!J@HuYzҷ2d)UR/P rK+|0 LUW`Iϵ={*+a]V%)1L%}R"o&oU29Ҫu[䶷YrG·y^q iKs%cjVg!g‰X{q2dQ-L/? {b˿/tsAu<ݥ;Fp:pr^TR 6JAf-N<ҽ3=<d񏭝n\TMHh[$c1sw_NjƁEQIAӷ đ?oҁo~Loo_7:7  +n~j/;K < k ,v!v,2i 7oS^=[G vmo?e~;~<{罼|v4иi Բo }u\") 6&--^/=Oe`,G̾Sd>P_ۛfy=f:GWӑ޾ݥ)"?|Uҕԭ^rh.b)U"ƅra.a*=9L_E B L ֊l"5žmD(T(@oWeQA-a(ǔѐS(E+ub(V׻RY5h_܁f%5vz*~x+)Jy](1H(ԟw%Hq~v:ѶGZD3~VabRvIa)07ۯ OU6| C]{`%N;s'tC\ẜ<:{a"n "Ʌ"-\ M$ +~SA@*7EyP ugS+6vH3 *Fhx2aKكKyY>f9=B@U{LU^!׶=t4KM#0QIs͘$aSIP>+9[RʩwxsM^fCuG"Y6&[ݩ`)$\ CLS#]GvA u).tFWV #Ʒ})1O_˿o_g/a O]w|۽~ۇlИ[A< ]&| rӺ2CjBàHQ;EkCk>s#‹<;YNTt͇witA 'e|GGF3H >xM42z&#ux:yS P)ά?VPQKQk~ׯ`*:sx+_%vwB] vA< "& cPTxBF&נՁg*ϭ;2]?S3"4 M$PڝJjLL(}:Y4աbG4$q˺m;4םDnV dG-YAKQ8LelDFMN󪢇 9)ݼ:v /f x؋:)ͻKD=|-o|_7&r] &{񸒡o]XuDv. M&iY.KdC:v׷NGE'8 bI\r!ϊLxfèp+Kӏuh@21m&Eo:@bₓP˒Nyxi@qbR{|Lӝэ ɢrV>wA-V+g0\s*-sdgDĩiqrl76$Ym:u 8m`K9#X ?~1xga1tppouvUb>8Il|>N?024Q^wt =U)FHأJڀ'e A{=m> YAGy*J$Ǝv8M_pQ(z?2(51ȞS]>f8]n2M2#H1ʩUH?Ģq>} "3`闻p_%-H_rTqo\E\+MTTڸk͔iN*>-Cz%˺n{Ž29ÇZx Ň.\(x*HqrN: =.F|gxqm"60vCWϬF} x|v{,TG8Jȫ=䣱z~>dߝ,6v+֯?8bґU %3sTD@"nJ{qpSeF s(#xpZxqŜd"+-0LDWo@kpZt^Y!]c VNKVVm. /x|t6+Ndp]KӞ*RQo!Zuѻ$R:Mv=ps?zT(x]v8.#%L[.m5*0o)nX7 Ke݀ XT<[RS,1' ٔN<0љkEpw$oiF1>$8 &b굓c :(2FﱚQnLdhY m|'|l cIi؅T{H(G*ro|ikSX'>q)0F("O$+?'ǧ?Jq…3>4IxZtn^م~jiyoJd{ZN=xP5Ψy`vWzp7x+uUܒ9iױ,ʝdpܯzESOiV53WϓezG ҭ!pLgeޫlkU $,3C%!ތ1A̛'AxC"!z/eYtvjd檪xQ'tuQߐ:ߧw=(/xsGI5y7oeϞ^]Н̞CЧ?@L,,.q7ʞG]K)\wm6FZK,p*NWDܷCFj_A#Yf}ᑛ)%G |h~kϭh~!T A CnU WL( KΨ6HܛD;2 Y$Bw˓E2 Y.c S\^+q@$\2ENOf;ECP(XItק"\#\w?&Zp$9m碘﫽3\ע焭 Tuet㗖P:quZ K۳= 1aӴF,F6y`Pbn4$8\آI./o]FɌd _H6ykZfI2,aruN!'<Κ6, AuxbFəG'-ڏc "#0duA8ՉnnwK؅qT y7bTPs18ڗ8·ǜ8jgɺh6vYDvOy4fB˩<<ҧ?Hh;_z54NF<o~{(rEy"nH5F݅mM,pKx˛8JbI Ѐ:BOPsK`BzbXw Mu,k41!>@ē.G(G :J9h=-l.!)@Ui̤ .*CpklZs8-H.uFl6L_OM2Wos;)Nؽ6fU_mɣ} UB: |Vb ; p)uKSp6UXe?[{tN<|8M]=E8f, %N5o`E[̠ iW}Oۨ m }/IekPݩi )7M+kTV~O'Ջ^.06݃h[yϟz Щd~..C=>L͕ʊ4c``*>iBx@8QgtS\(H`xBrAl dYXvS6!ESuݷ\Bnټ>_#`zq\{;o58Xby>V^݌sj叅xCy'H+BC&?:2´0݉ҿG^hNxe䞡xp )6tfx?$Pzà}Ob1N2NsF/%K>Gv&TVXY!g>+bI_UvpfHU#;()zgd`8JS`W5.*T%x1׽ X  Xƅc1@|\vI8J ^[u[kL6~~H+DM?K IY 骔MlnT\ _U,` UWܑN]*? ^%]Ic-nhN1?oY|Sky^9EhJl׉z"geg wBۇEnNZR-+8Ӽv|N0慴)XflEpON3节3p9O4\Zk#GqϟwKu%ˆ9ќ FGȸ L,\|!AOC ] i)@_YCMw5ql@4X4i+$`(0:X,ؖZyH8eYJ8DG5QvJIccJWHzE}AꓹLytlڕ  rv衭Dn(3.5M4 32pUvZOt\KӴdt ,6n;g`Lco{CTΣ-_Ri Qz|{_ge_sdRX/q~{L"B36y/r/Âؽ%/)v캨.rlw1`bY|8&mF'%rnmY%y{ 1#v<}K[(-%N^KZ9 2nBl/?8ӄ+rcMc7*˩]HWAbSz@đŮk[(=rXPg4~SZQEB0wL#8ؼ4?+u_} ׇ+V~_BʒJ<Jxuk_~Yӏm{IufbΫOتw -5۫O{Ûs/V6+sASv*o#|ϊBr95^.:Ȁm1HBӑVtf G& ܳ 歌zǹ4f梌rȩ˞|)ZR^OlXާ5=.e[{CmLS=5yvb,VHV=k:J<ervҔ5 V%@%`2]bը[x6 d UHB`тh(l!H>0݂}\(%_}#I3"7\$ !"/@2FU.QBZKA;W |1HU;X -L6e3TdXk9._Vt]=6 e^}ߦYN^i+J{%~:` .(aWe@#i'l.@!aEO6$M:xvh/`ߤLh?Dz@ ;w|3O^a=t؋XV{InX'TuP<`5Xx:Ik#h)۩3nZ4ꘙ缼ܢ:ƨN̞|x-nQrC _\$! \R@~݋z̼!v_Q~,ZV£0~% 4nUF.iw Lb x|P8PPLi$V:u: قyVqni& 3cv}^qf:w4rǰ -R6`$kț"->x;/ZS~N420ִۍo VkSޡK]/od`M <6у2qJ)7DFr8Sr"BU0u0kۛe`a0 hdQ)( "!@ d$8qN0- +ksN;^>λ?򄗯ک4%6YY8VjvKI].̇EժGݒ`v=F;F=~O?KcU .4CV@Px^&c_ $虺 ܁hBIe·HGEi$(wD~3+ ~FFh 'n'O8"@HaO_Ȣ tLd3"M^EQŝAkMQ奓л b~hLFC|J qzcDc)h$6|MGKuϯP!hÁ<(RH;ZQD!ABht7}A&)`Vt_(hmT\ +Fp.~ġ{SO tEqzvc gY̗;ѯdi>?˗]3ң'0;vD$-l Ax]vq舌;4]bZ*1A *gc)YQZD[5HRp)uJUӉ@4bz (9=*`IIM5,U#Qẁ-C% zr.ČjKH \`Kw8/vAD,< FdRӍ &8#Qg ʇSo|F09!~~ }K %͏/kaPF*X(?@kGd=zY]oe'}S/#E-[묍jvmG28֋JyϿN/6h T DPMu#xB6wQVZ׿ͷtp$2CRz|1$dT@"p JzrĒuV9SѠI룘ݲXխHG4A³ԃ0 q:|u VD;_( yqJ/p0aB )aS~Ϊ—gy!ZaPۀZٙmޞM?"NˈQIz0{yo]䫬,V^NjYk:س%@-<{B !w@EPUʄ7ض7!9`mvA=`H"m԰Z/h۶}nB Ko{y3_yʧm[n ˝ YL;AR"r7uu j̐{ZyeO 1T_Y6\xc6N=$/ڝ `${4yR wg0I{p7`Xx(: FN,uC+.Nq.6*4(ϡc+4\L\ ƁcO)5\?Z~ L}\oȿ]/QfW_B^>iKJ2Qռjuosrn6zsEŸgrc}l=OBπ4`}[Td3&j92i3N + &_WKe >ʬNbm ?O_0@[= =3:sngJ A̍Q'ĺ h^h)G"5a\d3B"ـ!f^%^dwܱs>U`9I}w9M^(04qHc@E_" ӯ>MꥈcXИїNz/XKK ٭J/Izb"xSo_ KWȩUtwNj ?I/F1mۛZeJI7Ƒ!X2.vGzO92MekJP*Cxnpe24d67:N3J޲Sΰye SC3¼%˓ͦ Zbxwe{wk=_e2&m=>/.$ 9iOm7S >]gٷ=,dY>Ǹ9b?i(j˜nRGs(xDmHh熿=Pzp_b)Y 9-KJtLZ<9ifswqKx֟ H6n'm"[]",%lyc!oC݀`֏} n.y乫Y6ω6:WuҩLx9DlֻPwϱݻE=n'eS]n۵?k{iVյ}OskҚF&jڠJ)+Qd9Vjxfk le`C>@it1tK{EKvhE:Bas4x:eزZOIxwA'@B54Չ/n*mi>d'WZ~lMMu<کɃ8-r/Z5%Z==8?άaťt̋6Se_pW['wUӌJ֞kyaqñ|6;Ķ?[@BR-Zy=u_k6Jʢ#D^ܽZeWx%DvrgRRyqi)3z_ե+t7K%#J4n̵ngd.0:6$ yTGd#Qvܳx6c2e 6%L:!;\+|fw? uZ5 /zLў~oAmul;vq,L \G AA6xF]ҵ۲pq6O~0'+3. M͓W%2-AǶB Մa/}ޗYjpHGkzTF,m% Myia1&:˙zӭZ1Mp Y֔(i+WQl[ZɆXݻaf$@RwazwP72[i_OXVG"fĻBS7g]Bo/KZ=͎3~1|Ni]t*|OKdڝoԐKjI?`Wz85yZ7yMh̋ i#hMGBu@!JΧN"JKLX)FR"Dh})`2@ǰUk** X8 ьOگL:v:"`7OAIzv#r+$j gLpv,^Bu`8)C2YD|(d"mHԽ(ExR.ɷ(ZgtN*ݎب 70>RM)z Kv&Tf!)dpr&ZRP,wYk7љu$w֮Zd^&l:UvdJo҅Dœ}|];zNaVTZ'MM|klX:8>~YBv)qmޕnsݔlRMQw.idn튦39BH:!fBJ剀2`Sfml PL[!y#+$ HYs.76`W =Hܺ|mP}]L잩}V֞;bYsCW,k{`OytC^4ؾB2|xƂd-M9-OLJ j ܡhoOۀa@&o~F{Ѻ=E8Tn7_ϰ8"zs1Kagp\ Y4+ALPZ͠yKipZjadEFDY(Ji/=SpF _Dg*ZW᳽u~S>TNѻLo%'9e*14۳i i8YhZG"y)}ìHjF [ !ż)6=(x҉ y;ax_&ᮁȼ2Ԇ֑ea~Y88QZL-+5PTnt f^uA+ǥȤ\D?3)[qV9G%KS'x_rlF$(.YQcy^I to`eM$V BЎr`[0 !@= pDڪ+)5uW40DFcM3WtH3QQlq-y{ŷQfdi; PglJ:~ M&4ڦvG yTs8 YQ͙K{zݙ(b 43j# ُQ ;+OSFa3/Y|Dm8`&‹&&SMe-Qo3[ >t%@}m~+4(X:%D~< u6̚Q 70d}mr*[De2 4OR!iNC:}@ȂٓЗBdFߒIur_kTKZb4c!VV8❧@g0s ؙ|BFuls|Zg 'O뇙M9>*4UQ%:$?vo>-gʊ4n츦;ͮo4V8'O>'^H4dd-? RWq-S>Q.|aC͗\!G*h 2@gge'4f4Ѩ>\!*T7Aӈt0cf wy`=+bʞˡjn,T梥 [mJ..Bv!,c5'$ d˚O;SDܬ 8S# !N^-3)qa E,t@HG sn\=ݶ@{ hΤ4.kӮ·i%~Ƞb2p=)@)h)Ky,P 'Udh+(lDLqm$&l桊FM'rW]x#=xjQ116B$,(;+c澴5lxod3XB o(64Kk!i"82S7ckkd񔑓&XcK$^R x'&U3㇜sBLIt6xzMy.'b@FMI3ZTWVyx?߽G\_R%|oPi^ICgj/"gc!k9 稷,Z%$~pHE)Q OyXr121 U*N,G I;ʜnЪI 'ÚjБ>ICf,X4HH$怡 5#J1e$?HHl8OHv"IP(`O"a[ E%5MN}yuy윲(&dPP$ځI\ٿͲ͖%2_5K.]>oF,nFe&Vfsoq-cͭ֍m;U?m0l8ھUc7л-h}1os9w%ʺUo7 loWw5[FH_U[jPu|gw?ouMՃ02؏/ݕD>V"q0ufcnY=UYyp7wsY QaߏvU>0ٸ|iuE T+lVQTb.LdaG@)pz&;8:XnSхѳ~mw!T*?K(( T{wWΐNL=FZ\h|d,oQCΞƮ /%L 7hP|=8o@=}}㋯MjX 4SO=|*%`F6s\jAװ: Q~`_|qA#}^z8Ψ,l8X,興(iZl;Zl qM ڰ50J_i]z{ns},20YbQq >Nj'B^J]閄 ̊z0xS:>-%",R@m)7լbѰ6u೘O_~걧~tүeNԺA-&6 =N!@?n(-ONPv:~~x ,Ћ늭aq .r$Й0.( OxېVc-wj¯ 8=\a֜ԍCJX& ו(bk^)vL`{d`Xɠv)A$m&I8ſЫmYZn[Bgm֐ Z E?@Kw6j5yF3VE=$D6v!4>|i?ɵ!}|d(`x"׏E?~YUo@ڸˣƳUX.{ZSD'__I8P܋A@v ##50 |*F $FpȆe(2'N/ʹ04K+ & 0fP:*dt~PFp*/Zz; #m\aȩ6J<2؂p Z P&7h6lT:@5Fa>rP7"V9ҙ p@⒉o_52%.|[S"]6OKD;zē&:PSAQf', vp;?PSjJ1wGP ,TQ j9IGf\ rT$5bIa-໗my]^EB2Ri;Z5qǥ t^2aŨiFNFLQ%mY]ֈG!w SnzS:KKKW?4+Gj[+VmneRH}1fMYr D?cX]aJd1}ӣ@/&j"&n?:b5RPD*{!?mW-R_p5g8fSX!xW)NR:t \ B/v:{rˎoX}u7Gn36Bw=mN)St=x_9޳6QzuգnSSmH/'{z. "[BPN3{gMv|[{!6AqE[`Cq;ʭ]]8]Nud]3mSy4%jE'G̽o Bu)xdҡ":%7x+nߪn3$*98Pբ}&ʷYM=c2쎭>mX]99xˢQ׋PV)7A]tR:J_YYk%aYv׿5vZ&/u`ݪuiYƝou"&nqӐ$`q.S9U+26rg:V֟ -Ɩ` GT" Ȃw,FJblAH6!T8i^M 41Vxݚg=coe $FH.rj%lҪ6FT'\Jyza _Ju -}μ_յu-7+KZ"a%e{Vm0Y,qETލf]ۋPR`Ubv/d'"T^uÛ3F_Iՙ+Pmtc=:0/>e%xj YR ^ \Hl Bnl1sb+EcDZ0{Ll8ˁ`xKWN9B _|ѕ|L!㌻Vx BC0\완DD1uPe)Xs}żn$LG}J%zIj/F?P51J" 8't M1Vs9w=~OzdbÉtAc?$SjE7{3mO+K:b“,sp׭fL#ڱ١41SsצE YJTO2FEsA.,I E$G1j3\SRl2eFD^%{W*kQr>2$JUk8dV\ًlKg* [?+]'$RfK7|_‘*_ˆƶ9DP!z$HHXat|/_؎76焙Vibru"es1G~6(([(epJo< c~}&wGN|%d+rHY|&ڣk:XRbvkESjBZ$5h-y)?{__xG`M2: zN-UڕDA4p0dMi1ӕLsSy޲J/]Tc޲,m12}J?Y]r]5Ah R ̥ej3fu7ZO#2cOj6LJ?g-V KZ{;pS(<&(ۉ2akc2.UTWnZڏ QU]s:(ރ(Ʃ'?Vaن*}ChFYg˽'»(vPIs;/{qdw(ݳ*nAxt}G83Y)x|>| ӣǣl?E3ʕ}BC'C0@ҫ-#Rʔr|Թ/J@Ck چcŸuAɫ'@Ug=u֬ V0B@*L_{,wQ5~׉a.:zӵ 5'Ĺ3 ^M n5ջW\,zٟQepވ)ix\ jhD/d=|:c w??er:7)8lx7nо]F1G^=E^IJsX"R~xu61151elb:Gx&Wep"\vVs$) 慏 ,(ƅEM JDՠj9s6hYD[[y/Dr3%T,‹!qKu?;!]#@Y<.Nh ze *V3[`Z15<ң9$#P Rs>'|?ןهnOV8zuspr":D7)NN DTЗLe3jkmX^ȢӊiDzGg&6&8!!0:9 U,=hU=0˽ܘ<(*m\#bM01([u.6ȲK z9uMcdO n/ć|6{l~+U;E5Q}\wI{^ٷ#74Tz$X>3&)^ؤ8<F's, W4dD~U/ OHŞ,cQA?EcZ1B^A?}T}Ibq%Q'~k SF+ ٯqY_K[a~zDCY3sRݘ8{8Q' „ &U%لԔri Dv Ud!&)ܙAVnKlb`<SeQ'H,qtCkP J x5z >,S{k;]?C :9\;E9Œ1>jPZ 3;3U`A!5m/"PPf-|` Ⱦ O3~ #" t$3bBUlOj\ ,^K{JpY^I[16lkƤ 򖖳F);oͧ^b&ٰ+n>z چc(ym.q5#Fu迈gÀ:*GþT &rh ݐQbi᛺\+fiF h;=䭾K}NʀWՍUTI#֊RQd6H\hIP+$QδEϏPa:S`of$X>|)0,oYJY(~:p&KGy9Zy1]3-x~s%wb1B7S$H,CcV"I6f"d5Ŷ,u5*J<ϙ~ }mτ5;yJuKҗYo 1pKmSD& 4Ǡgr > (-c˙˜Ⱥ?ϸ8cr+9fB+$\0 p`Z n>Y،鰴|p3.]]K*àe >%< j,{T51ˎHR6-æF08G T5TwO?~M-X7;epX7 %)XB5.U"N2g2; ž["n, lI(K|7$Ѝ|8qt4Ѧ0'3PVD_p0Swɤ|~.FUZUuedϪz eg8ɐ099޾*m 24ӤQis㴖Tt(1^YMǡjSjeD 79 FWng%jP c-)|Q]0AX XJL8kNfDQ%l8|yDOd>7Kmhs'?Z/_( ?$ P'\f2 ZsFJM5p7 @\]g^;7a"33HBG/˿_q^n:i1=myFCƄt3A+{E +K}fpoa}Luԉ^#Q؆q{vI;}x lX;{;}ZbvGۗ-6eX2Y_̲:k6N27_ dHxʎ=%kAl1Z/S4ѡhs5L:c{=C][ٛ:bllΦ"`3YAװ}(JUۍ5ukЫ=C &K^/*րŻXDؠ1j`ҤmkΖ tx4wa;sPռUqCʸ+2~|gJv|tmI o[~zAڊdɪM$r eka``(Q8)hkYhپ1ܻ֮2aPtAc(z.1ѣvvvi3O\YOM~k<ùT II_&zQ<{p74Pg1}nl\9:K7$)pӏ޵MX(Z$]<9.{X+uҙQy3Ll9:J7{7URn+l*oH2)ʥÅ`MUY@hFiK6=X 0 vCLXYqDvtz?eg|_QnJH5Ƚ@ @j/LKXR%D>up[4TV*;"f]}*qoq>v=Ě?}뜨Ņ8+(z~28GƖm2A%nRN8haMt 66hg'k?;$֘4"h&gid;Ԯ*^P+aPi?;\>Z.NB;Y4ƒtR+ pc-ih 2Or;V>5wWhJsuº\%t,*NS.>t}=A}BiB_D\Y?ơF Rj;ì!E4 ul>}-71Ǥ_ .`(gSe~1N'?$uҗm5 ,Fv{uaQ@b[^ # i?#Xzz4lV@HQ_ w뜀x] ,?0 /ra kv7>SD%#oֱ%7(ޟHxB\=+St-?D: dZ'K96Ⱦ{mEA;IwHu~K8 # ku%0 !Q7ҧ|sۃyTX{ځQ]=MAŎt:\FXχ)t PrLN"1Cs\?~ <'E5a[g,Mv: 0ّàJ(:f@굠3bN,)*G ,B,`Q| Grx36 ?_K8}\j̐,7j|X2ii "\EJa;f819#yB+ǃ.% Lje(qP=o6G}C9r?N剦v UAw"'5|=7 s}ܻ+88݈ *{YvE3_04^2Ms*^>;}[sHyQ#ּk.t+˫]'l- qgLWo>^Sn}8R3^Cs/ ŭBZ^w 2! NZE\O?/7;.txpABM 7_y,9v8_/w[0}qbrDO^h'mBx}3!7ĥ5[<'ёj'۬96轭J>pY\mn5{ 'R_uz{LV0PX>ٚTz8f {jؾ!}EZ` bqc3t"RNM)"pv(|a&{_\lir2C^\&*'죻9;rrLjaz}st.,JbVǦhlDu(qL[-m>bf別,6m~dń>ޠBSC|XO\˝ *5nj"vѷ,&\M"zsiChJ+`8IP0/d;֔0&aYj~}𫦳#-|t޾6Bc;$Ml. d9y#1ErWE[ƕ5o>"SvGAuPc :5'ָL=ЙdvzW9!JK˱PQɤmLi۫YύTp)aSW*5d՞rtQIe{u IP3X vs[xeNRהFTVĠr>2* B eevT W-/QȗIM1Ϸ'O>s#W)Э |%x2G͑ฌq^N4YHDPZ,t/ZՌIw\oh~#'< AsOsڏkO~<H[D[?F VFmT~0Bi}<*ۈLOB%Fܭ!#]s%:AW?O zNHrȦs Ҥ{2kVϧ;q^~cb$-E '$0W9Ab"ΕK@[>,, ; r842$%e%T b'[6^>YoD[3`Juĥx|p)Te:G=h]8N$&he[\9E;!?Ybm<;у16UrQC6*,zG}&3|*:n{_ߪ:.Z^\[7̔HY'4=c."va8t3QwjNO52ƾ:xA`%|F0 /5@4?E-"+ICt,+vwhpZ]Ch)8)nU$ٳ %z|3J*:NZs&*࿹Uߥ; *\Y9Ѭaݜڹi\ +XVnMN8~tC:A0u0yނT1,;#V##Xv/_l;sv"P$'Z]r݉}ܞ uǘ"'ɑx|sAQlG M0*-(ܪJu# %# ۱N0~;+-u5@J$_.N-{=TcVjTJU[)Ud$⛼9ih#@=!gF xω)M, 㿌y6a񹘔RtdUy.ejTӨWeg?cD8K"rxH00n9,PPp5Ǒ sP|KQTlLh{&x{{|dA'0R<7!ǑȊٙ6V@?꺚N^]SPmHhbm`0}5!{jf3$&MEg\' d1cY暑.83݈!HA/A\H>Q[2 (04ed0$oxћ'#)\X|IeA&-m pvx3=uC]4A,8!T0▒VNΦ&^rsYiM4C9g_}M3<>!g^iRZO߹8ic!CT@.i<*,$3:P1|K .<)҃v7pA;H@!)w,}!Bia>BHtQl .P*4:_T~ :\/MD؜kVkE52 wS\ieÄ+Ga:p6~3 F!օi{DEv{:qYqYj[G <}|1!:눒tJ v r gz1+,udCm;@"jvfu=Qɗ5$YAZ" /ˡBw5<ɞ31;ŌN[PH|V0^́iUp]"72qy6d-{ڟe% ?]nEUZ ^>uLv[`}܄Fj:@C󚩷~5t\j;le|.s$Z~[#:~BQʷ.qc2fc\r.KVW9(1eqKT#`vgUb >7D]n*YU&wgh)U4ڌmCLW ni<{_q_8wYg^Q .G3Ȃ4vQ4s-@%>Y}u)LJeW\-W M~6)ez l Z)W;m hzcui AuV)e"^\aA֕خ!ŀ:(9XԎzMLBY'Lw1 Hߜ9-ienDvawͱ olʼXއjþ[U420j|ݯ|^8dX;z5͘1:qÁXc/~H f5C"ɟ)7v# BXmUDdF$5b<ʯg?o~B~P*#d8L;]wrZi};1?l [}ĸGCO-#sr6`KpBr`jb̕@U) [QJTO"A'u.nN/jLI QfSSӋ [t #q bF}]o׿5yOT0q:uH7"psN0l:r~ ^>iVLI:r atm$'I*0hYsrR 0iQfs*T=Ĕ7r_B̃&!磼!:iލe|u6Zv>Z9 ɹU=cXFh햨a䦸b? |Ueyo م/ 8-cKDtCa7 $#3gY!t<ynJϊL'ھ+ l͓=Xb2DC@IuјADEk0%9߾;+[|0JUKi9'Ǽ㉳!tIeoRWUa^_h©}y KqO?rga,E!+[]ȿ\ x"*4" RDՔLuH^c=^ k*܇kC847Z"lS~lJBdǕHyo(/zݯihHܥe"[8wd:,֔tDږ ʲ\H6 Rp ?/.^f2<@˞UUpY+dUMc[ߙwXXQ\U%hL ] Y*_pvxFF^,gtOc~`q_4{4I]p]@Љ+w3MV( eృz>MVKٌ2-5p洹cfM*F%2a]w3˧m9̣'nځpI`6C1^f@pOt4m: o4mḢ2Z9#oIj֎ |9-!.:WA:(K*Z8ɂ4/I`RD86-'&da ,2cgZ5w 6=)(xgyrSZj&Wl%>k۠zw!=$h{hڹU6V3V9SGjin몹T irgEi r"pt&yfiQ?X+Ƙ/HkfΦ Hvמ$!@4EaPӱœ8IS8M}u"pHzsyJ],L iԡۊVGHDw0iH.mBlA ǃk$IRA5mIm8#oyEE2-d9nU][c;+Z2vW3{5cF\e@ax~CL*B$ xAC-1#hdf<|8y\a*PF_t/*B,Sg&7sZLci3:j.rwCi]]+)J :gB/=xnVJb/Ql Mm'a-q >ͭ)%X^̹΅tM[ pd&.c_ʪ3@<߹կ%[P>Nad$p\' tB,UN!e_w744TCM  y>?8@1~2d*g&6>7>cZЛIS19g'^N_ QDKߎZ((ج`beL nizd<0]) 1<5L)s*)\\Lݗ-,3SE@1#!b)!>-t~}frfC`ސ90wQ %Nثˋ۟(q~m-/H #(6Ч)j\X!wNg͛xq=b@PA3P/i)+t D4m+E}h"͢L[M&ЪSW(jRqM5pk&ޓ/ZYK8r,%[: fn >AkF:$PAmǎIݖU1_Ej*x@hnae!5gxVHEQ*jTn>ᔚK jg`~ liI b- qV&ZW_|GrEX4(BaѴ7ڸs߱5Jˬ:f=fmiڢ)FђY6oMr3= ;N-IQތ;! b?2oxM$xy۳s|H / I6+:B5+ǻ+alLgH79'9B-G.a4 u:Nd [Q\q캐 dL]LkfLOїۂ1kޏ@0$*0S%m壣 R6r[r]i"D$ 8{ºɚL?&9fY5]QgfDZm!ڂL3b}j.rAnsb!WwT]Y!:=@|IoXvYu;ʢ=I]MGUy\Z6$MrM61~pB3.g|=Ǐ_̏{^냦-c=])ȕ;9_S^*u^5 _8Cy:F F\N 5U LGezqQnTR=5ăjypƮ !abni>EP(kF=BxI,uO N!"cxqAo{MCR݄ry"AsX;yPsV3A@kKKGOx~2ƀ{ů4&B>QŽxuy~cB:$( z$h;s\aNcʽy?Έ¯nxY3c*j4;"=Noʦ*E`9"qtu*t]P/N7+!4;"8j[ca/2Ȋ"I/Ě ~ uaP7Zp $1ZJV+`o^,Ԉ[ppRhc#2.oW ESbXgH0£cphcC[`?!5 $۴isu)l%cd*gxM,۾܅cw&듗+)˶ܵfH.?77pK(W( m y qX/2vDɏ`m@ke8ɩA k7w? U#)zlwwvATgu\oA Fs#bV)C7iFEp^hNE'f{'Ϫ=šW>Ż*B}~%}= v*I-5H>YozR  F|ߝΐ`K]њJi|ĚEO~'<ֽy-~at]33k۳s(je;hes{:sz W'AV( |&~4/օ8ʟ~`,D|h!|N#IGLcFt!=ctBeҪOR+3|%XVj};!~[n5/\ɨ~xds"; ۃL6vc#r7eIj[x?.qC6<){)f(V܀-̩']L1enyve~U@k0>$l\9ҿQOj_PX{6 :YD>BjH#]1䱄aL07OKOW㐡EyB =t5vƭ7VR/0tnO7nFVVY= .;&Q Ҋv=K]%4$D$t1 bFHFѪiP * el&g!BF3ː&cٳPICL,!MPmfi1z,0K' {t*\*akb @؞н  R:МTI(4 VtLM&}.EL@xTwCɎ6ySOm((jVΧCfnE (it>ChS OFT8TLjɵx||lWb]':0.xnK3޻(2(KMm>(q(WYVg "d S7/'\Omz1pDz1}p= HxuXN@Orw :,j+.4lՒsc֭dTW艏ങ9d0 ׀f$R8DW(NS>O8**S%&vh.Bc9ZXn}N4Sn_Hz="FZQM+!IMUv=̖00MxT͋Y&OwvE)>&@ѧfZN2!a5пǟ]QI\-,"N,`}~H|AiSlq}O޼{q|*r]_wf:N߃}Skxʸ7up@7~990ri_w{WI;*nFp;R =8d;-+~*f'Er TνhLJFcڻ&Zurjzg<}ύ~Os">2' Mq R2>ր:kCR3o~d$_W$~ `Ԋ؂.ȶųh._9vW3 #h;-MvKaF|K5{Q;hxlS]Qۻ(5~noߕ/IdE={u4bZPo  $ӿw]X;LSxDAxXArwpOu>sιou*<~nsiN,9ߑBQ7%1w4;=1AA>|/X6&lYVS3=b:F"Sv[NQ T[Rd̏Fhk Yt"Z˻f[ ]ތ ,ٞ5Dq{xB/xKӋ, kZ_ύ$&z,PI_yy#f{t}*N9 H} "m }@ <>'EbRbYt!+<ܕcG֒1&p8'"xׯN]LSL4Fd"z=)ȮĪĥ?S2qJ“9*K>E 4oe5I,5gtD~R5#JL'8|`\F2&%Ia9qE&tU2N gȤoym؎T汁\ʭI$JK8·SC~aq%,d<G\i)Y$S YaGy$>TǨF^dz?*x[ic 8my0? ?AUȑDԑ?zEΝd=ț_xS C7,))  ~5Nj-bbJ SnKss{^ÈjTD*eeyPXkw5[b W?mI~.f rExX"ƍl\=$%_E>}Np8nBvmLtnF4Ԃ_ !5 !D.mf\S2-.ڎ$D 1X@hBU]ƚS:h@~|aᯐ1w*.hVQb/!l0++_XCO*!:N5v,ye$Lb AnL6ZXd^)0?ʪ[4`̸ ! B&ˉm;$ s:sX'j]aP}k7x/Xݐhms>\3thy d}p]H|A2;:OTE٨-dw.<]HӽX_> +r! Ih L\߾{vPe^pVW{{LVh-\Rnr:Wm1cS: 'BN$$/ >)(AL7}q` : Blv_ЌsO41>$K$2$Р` +lࡂ$ědh{xW[}[ ^ثU^+GkūuuMX" V#aʫP}|M}7|*%c1m ѕ'jL>/O(L%j:!<ũmx{Վ6H TMQyxnD84~4A$KsZ"ܾf pIax갯|\ӺmpJwiVk,WG!9TYUn:X$6A( Z#/{AVEޕ@a $Y\@crCnFSL&'H'zk@ѬTi^ v%(g2#%ԹShd8SJqeѱp1>B\Z:CM n8shX vgM 9|T,i/σT9y/!uwk`~"[_~)FKy%Pt2OlB4c 63fhD+$'% #D>I>T%Fc:,\R{8-h/* #҂d- ^s~2"Ć &q”'0O'93HUo?צPh⼴}0n%@-SEy e5ȃtf QD8T\Zh}GMuv-6H]q_ 3)N`x8Ġ(~c RCakɳkW>wz'K 4ad,Me 턲 w*2L~!#л1t%iՈJ U8ikEo䜘:.5 ָE n c|@/-|%Bu/sAدc)!9%bҧvtR[ MCa4B1dޫqѿCA' ϦQPPXr4XU?` " $n*Kb5"Z.fA* OG@,V%SuPvԖ*-Bտ8ɷSoI">rwleH[ʫizX҅wiYEp4:o vuxX߾A[(_9ީ}kObgpHpVK:=[qưpz|{1r_[NLXZV{/]/F02ÆA[]tuS"琿^a/Wέ4p_:}r6èVZ $ 5+5?u+W$}_MPQ!dt*Fҧܮx5ƭVsef~KK;6IR}N 3CTd#`{/wx H?~<\GRL4i6.eg,c5Ow(Lܕqaņi+[692l&| ~zg(efٌ DtE`;K}=ߑEBJ   bINu'DNFEEp1iW3Bs\*!cOF_aHb5Ai<l){)/-+Wu׍H%p )$G9N9.FXox9*SE$q<8lBhg*z*a &>PFa~*>!D@1K& >TCP3:54zǻy?jsdg̴1KyJ,W[4_+0h-UY iGjMR7tԠe/Gn{1õcUɡpb8Hp24K mk¾.\6".=Z+Cc66z-AP`\*hM<-ᅯK91&$CVxiwtV,5/5toUчk'qfmgXFO+a)Ru3Iȓ{eZ緧U,J%B-)ڷk)pҀ`LL+wFZV,3o"[N&Ap@FmP:t=U)Y8aFGF &=\SXk__  (gN`ħ9wA : 3&: S^5씗 Eb_'n1ƷJͷtCwBnA6t>g]oL7 x+OûLDOz8uނNf < ˘XjǰS6R]ȇ DF/3ډ=5~pŧ Ua9/1"gb OQD=Jzv6-MWn `3LɥqagOkeWBCW,E¤Ӭ݀`}9򥞭rg䪃e2yrfA;0o:{C5F( δ͜c`S?c\M)Qr(_p㌝O_+16i=ĥpO=.~a=޲l./7Ҁ66@2i-bLv0tɮ"Y1"h2tEH*d.=y}HNdI:DKt_4$e?C3EnL& 7Yä$)ys &_dn`gW}p$85/X CnE3U mAj:QGF;<&qQGƙ\.zLr\DC,$ gp;~9ts<rOT+qc6"OY9BBr1V^~߬_iW"ZVktsBհ rŏB/" o6=RΡ@zqfTtl UZsT"'@K{d,+tcT=9vekd@i];xc;Ӝ87 }ǤWf\޾`[U^!1\rgĔ?KE$hG,&tŠJyh2`l=Dc nG@8;)``m||l22zWh]zJxj.-*/X/>8/*So>#X#a<pYa+(ˊ0E"Hi+ )oՕfNKK9\'i+%Ȇ=IIoXXrv@#O oX腈bU ,}EwC42>o\&-ZMh&1s};H;k:%8b\8\;uE/b Fn]bw;rl>r< V B<#cVĜPwr%@,|B?;NjHm֭U4HK;`#b Y2IwyُWOفJjD"xrJr{vWMczW w*e~!/\q:5.Qs̖9Z?[0HEX[=4d)=*_M[Kk׍!6WTDX3]>:*O &4'neR71=d?V6ΔV]mS|UDv J ǠYF0ݡE?aƆ3L`Kj&=VG\LF˧ E&Ɋ.)WlS:d%KS`9LO_@F@^ ˣȃZv"2{!:q۟a[5X膩\. *շ<#ۦ;(+DGrD`;1uUK㍥8tTX4xKCpZ tLP/YQD,6) ɽln 9c(?ȔKIMS#s:mz<@!G:0" {-t.g(W,POj[LTm7@'?[}9*կv'6 (MODOB XK|{ĎY~urhS,*5vhvӇ\Z 0:ym'We7X ?9 ^ ~&^{UB gqo>uswݤ@y>zy42G=ts=Ds?L#ֈ\H]~~{18W iWXC/s* E笀y@{Fb8cXo;?8#H,P=Ӳy=(vA9N'U(Nz~3ġ!zx8EJAB`bxH7 c1I7?DÈhnsF چBܕtG`ymHw&߈I+v> /l5PRŮ|ZTKVJt5nD8&qB/Ц1?m%! 8Y/VI5!Ž<)y6E~>]!y0_ܼqTŸ-r%B]\QISnH9̠ 4ްCa⼳8YH_0z=O`Sj4 r}8xc+qĵ?[W&<8ՐwUd\ڸUQ,dPlw1{^hZrjM=#-YUAsY=٥zTG7W#6D{-9)ЅjU[ 'Ń'`P>,M*&ZdE3L#8w#Ӟ֭xcy6XO99?#񝌗'ռ5#.ar'(Ϛ' ~z\/v[9&ezP2+r..ݑ]k|}sxr=Kȁst.ώ|ThϿ >H}>K8?a4I"sg 2V~p)[+zNmIBa0A,q5K/,$ژ=Y]NY @*Ǿ)!@{PͫADis"Ci:I˔K.R r̎VDJgvgy Pũ-o;_fI[!YAE/J M׭5޾Ha 5BAmfP[ _Chjz1 Mp8qgc]\"o6LYq04 C š81IH>3Z墩#iP!&Q-l(Р8h<o(>aT5C<" @YwQxuF8΁auլk ^Uxf-SERPb2<, J懤^/Nr6$JƳˀZ/Ww㚭#AXNKyKl>X[? !^Ren~Oeݽv}@M])=2 R5&*>>rv Y %RӠÝ  y1M4ȴץ!ut ģ@M苭ړm:z u3y<:יx>C~f1r G܎$61go\&O5n*Fm*Z┥O0.cwoKٮyw^ Ck'CQ2%If߀/Qk>'-Hѩ?xLu:F ~Hb eTat2g:{#aU0^>zs+b|=]s*ē{@"㲝H|œB\)f%R2s8q9.8&3=,γ@&>y"|>Ip+sOz=ug'ͣu6X17B.zo=emؿ=gS(Rb=w3qԭgʐDU`|nC % eBN,R9e2M}p鮑qЬ; Ӣ>1a?gݼ*TܨI@ #O{܃02j/UjϧLPܰ0aHII< ռ=l 3@|kS9tAs_֔OL#חLs$PY XGx7[qL89M5t)\x%E$J_θ8զdd j)>b$dT*NVOKX[sx]KB#ASQaPUa\ धD'95^reːl){9BCâІ8\O~ sLP,F&Hdl_g t'Z<ۏ%`no&YnJ>v+p+p7s re7Znۈ!$ΉtycHWɍ|vWv*G6f|A}w{z0Ycejj$!`  nNt!tQq8rLfo*:`d#t,}Jrxn>c8FG`G]''UK !<((|ј̷c8OhDʇ lfm"7sHԒ#igA½ E`'4G&b/IT$ PiZYLbul3O(-)="cS n^7?)hf)v\/`g&޽N}w۶feaI'|6MNQezBS.:R{zaJv.ܒ jâ(Tˈ{i*6!RvEn뎪?7?zBOW\>k\4jCuNz[:s-᳻f"q_UY`[M0C5uo4Lp6|2֨;x٨;Põ˧!7V`a@F&%lnN Ebo~ 6urS'f4qLaq@ļYNڽ,7pCxgg]s?`}b}㸑p}~_$u"ᅰ:?!uPL b 0!Z|R^SR[}.] u9"C.ӆ"t=|:Ɩ8/oYdȀtM32BTKx1.DӨskr3or 5F MtJxHX䨌OR~ ǔvۋp1{)s]#Pg2kV8_g‘_K"qDӫ~e=C-M?* FWAidϧ&9R Poگ #b RxTHXLQuGJYǷ p:>z'c1y EeI/Q/"N}r:gV_=gt1h\AK{c$&2dͮb>d 0/x BuǓ[R+C-bwZ JZ|K|}bLƒ@=kWnm Oq撤'*5zc=wxQ8^"hWb&EStO1! Xq6/˳:+vK:}Qj(jid DH :bvQ,Z_T}RG!CҗzUj!,F]ش==DH"~SarWt{]+i؍Ze< jU1/vx̳:*Hg:4;& :_ע|Ei'^Yy>}#'Oܪn˕'g>K~@&XꀊFao65 J{` eFk~_B w5Pu=Ek$ Lf8jY"9z '/Ո0&xVj9`)Ti[aCl^(<_**8XZT\*,B/=y&93ծ\:(&T-{SDR6bƯv m iMN17qHhTwAedkjoɂ5p\__ GG(2`:4Vh5Cֵ7+y2=2 M\M? k vE r;3/ԕMLME] &kA}.<.>XaF74O8>I߆)EޭM jҖشbgmGn2e! :!JQrq G+'0|EJm2Ap.z{'&K꽉<33Nxooט&ZzQAꪍLby[f.A$:Hk)nq|eBz/#K;ُjި,~Tf<oďildij_/wE12:k_i߰ paڕΝvo CxL]TP:o\6|r}k" {|%A\+d>Y=NXDWVbS#V $E6}A.)aϱgqbgӼH!78ond[H‰sdlovZ9@S`)KV^u{+ 6Vng~BWP&Ds2Ŕe›X"'@ʡ%]k78r'w1Z}™x2rUVDjYi`̯6KuPI@ Xqzx1- SbLfcZ1h⿬K!KiPHe PCaRs$'|O(`{SC2y9ej]ɝd M{?S;?hzl;Vh^zf`A|Ǝq%~5k*P.k)$^I8ZT o:#XvlH>~[ן^ 1ˏ\%3`*KZ!3YSA}.o; ŷ 4\A EJ4WWHҚ^/Ub&3!y%_idoEd~گ0 v|^ṟ-d(lIU@FEOۖ.INQ'$RY,,>(;ъ\\\W$G^8PmeHlC|IA./[3 bLشk)0UZy&-l9LP_xK&Zu!æMc!CEm9q(~ "-IfVTXQAz[3n Og6=*T/kSCŕiF+e,Afԩrm@~ѐٚ5 d3WPB-3FR˭u 6>:_2`&}NŝԀTdygȕ3i128є(Ԓx"oU-кf3wQǬLΐHUTi)JP +}5 UTPUjEPPA;=lN`E%Gs^\R daqhᶆ:6tVmPs:Sv3RSI߻a,Uvq?Oу!+u{!YbyYE'+v؄nD*&h/񽡍#$ "NZ~Sl5C bz]?{Usu 8gv Y(qF3W_/ "AJ^J "֞"P=ߦdZeݶ0n?6>b' mW,LQaeŎ&9f{X}|t [n|BM19R‡ܣbz<"-iv#laqP,FiVƶ!}='7r$>/wO_qr'(lbo'?yO}1Kr,sǵ@)T@9CR75D:2&-\ߏeoR}5@!ca²F yݧ 9\qYaԍ!noL%r\d$&0]CdٻW0/ƪal|ǟ.L|\NqstwԿg$ǟ(PLO-4/m/V"*$BWg{*5iJ.JcQ1N F=%u QNJ2jٰibϗu)L>_r2_78?p_9*Yl/TM[9iV!R.Ҍt-笉9O> ,M`Bk\k$kD5qud^ʳ://x5Gh҉c`k12j}>=~gm_*1KJ U#[qgN+B7\x MooỎ=U(Qrr_36Wsb_$Kӆ/1)J-o^r RY nuC9:<ҷLJk5yכ^{,4akؐh]::ٚn#SY֞;-3kV13mKXC1#ˀ*e~R@J8i%oD/.~s^O7ɒ,EƿJ Zs6 %{ڿ ߯H^Z)הBW;{=?KVaЃ:ʼ`$袐y}j T]-"]mh.ndGsdЮh=J0]׋I)-H^}U$j4'(j=e>{lTda"\CKZhs(EYuS[YDת$@s 然4Y\~$6V<'£Z +4fh4 tx lބeȈ{*/Cʿ 4dN-#+3by.!LRFC Dr8] (eW[Es 24tFե|DiGĤKܰ) 17,Q DFV(r.ߠ;S~NO7 !ƛoAbtl2uQTR+M8,K>j. qQbte_0ݽxTZ|ăӵF}%g WHUSrpfxA𷔑BT~weЬHlq/՛i3sL %jJkNp:2ąpCqT&_.)^$h\ާ0r?v6PȔb4FS;+B FD}+׋yWhG}89TYߣL-6H 嚟ޜoVl77yUAC4A:go7ԡ.N: }.I T;~hFj&TJBqWg']G@[6^C?وJ,B͕S XaI)LgD!`TJN.kT8Q JDblZH9+Ekא`(GD2Hw>^͙J| D+?R.4Xք`2VG_CNR#aXCl(#3d,FAy!,< 9TK*Tu )Ju}SjWJ6Vm6!s9ke`/=nWj\Si_w=S-K+Whie9syO_IFzc#yyPBkZ+>[u~aӈ)vJ!%J*OHhI Hw 2$ k'l­`:BN_yEU@ vZXDȭOb 1&v-Ƽe7/*/NF'<K1J˱a9`1ms5(@h&ܜ\a8>J~,Sΐ.GSؒ_ h"\}ۨ(D,H&,$m'hp{,waFrGִO3*!UDlc&Ṯl4>c[J:t}X?Tu\t65S^-׾hVc,uYcmsHTAI4{BC4RFItm6kOJ\$/I*&ᬓCHGoZ8(`e*j,eN_5 uqS72pjm>t*l%;),J/A(n\;PAex.a66oȣ:Ƭ+mqл'q}P,/W;XƈibEI*l739F(Wf{Nq;2W!H|@c|Wag뚆F G :p7{ yN!3c$8GgcW+;; c=Ɔl:.O#lMJ ;q(n*D$o V8lks mR柞3  ~IKZFG TX{Ylʳol=qi`'A2yܾ 6:[,qݴ<'y_r'ƪBŮ+<\/͸46vۆZS̨BxKE 4MAzM{-շ|5V>p995c?CpA#ĩ(:?~8Tȡ/_S>`+[}Jc60 K)o? zDF{=)% :bcW-6".npE~^m&KB>L3?n7Gx?{o]+/|&}!i$]u~=1XN-F#M>-! +w%Tfq3Cvͣa%!q]²jw&:3HáPF;L蓕Z}61XTE/_wI^J@[H.Ǣmsvc!AO?X Od4c $wM6J^c@& H? w$%֩ctz1ellˍłA&؂7L3)vDbGM5Ҩ4l\ hQoa 9VN:=(6E6*VH믢.{U$:ڳ-8Sy?GQ:3,떊KlDŽ@Jp@q2st. k:xz^{ DT_։p dv43.WS-VuSط`:͑%w7L7U/97׻(cRRKzO.sV%4tBM1?g5t9uk㾦z+ $ا,}rW`zQɺS<' .a76f"9h4*+*pek]R_FVx# $(IAH@K$:BzPu aRS6(j9v(sTXsDg@IW/N JmQѩNÜSt`ry'zAԞV"P8L;WϩF{bi$1l%Ɍ,dQM-PKD6˃*3 RNGq^{ /6ʔJeGRL1ڈ`ø"YA/CrP;K;b3§P=@D_Q2:p^( Nz GR6CKR4*}Y$~ >t\; d?*e:2!t6%>% XeB즖Kj(dwOθemx盹1D_J:zbA%-bPKHm3IM $́:{Ol}Ș=l&3$!Rv8H@2lLH%.NM)Е1%Vy(CV ˔$Fc#M+'߱"91l: `,TVK/ULXHB&BsY*+tTz*.+&j릕C `Z#Y5j 4oh [I87e'$-sIue A7oф"]_M̼ϩ[R4̺KF9.̧":MFj5i{͓[HDXжIPIυi%ld^95o 3@:3K4F1TYxEbUgc(,b^jL2B+J# GI6R \#D>ahl }Fgs"j%ѥkN[+ZPڌ++qr [MdA )xMKR,D[sM 逄(~ \*$O/ cuAD" V.jI!#0)F)KG'.}G$5@@H+x/J^b $w"TYMZ~B1sDNCmMHfּ%q)…smm;Ji희,0T9tӳcsƦpzK5ugИ5%e5٩6%VT,eAst G)S!^8;>cP C|'Y ʚ04.4Ν*h}$_:t0SA~$@TYxImm]6p8H|BrjŞUZڰڦy :߁}v_o%NBz2_76Vie_jc)L\ZE w,ܥ>0U,z`k5l<1 [+?T#H:}p Fuz~8z̆8( ehCNZLh]Ӂ.J8Fzz16E[~Ϯ!Cʤ V͙rot [|MmǒDEB R<}Bkt՝m]=seΎsxwF'o|^Gc0>y;HuECyc5cyJoljuӪcw8?V8-dZX#;wn['diܤ},˹"*ɞ8^Cb}FP'|4x:\rx£k6"H[T Ɲȁ%^X@; $@ΉƝgju }V+`}'HNh@~ڷxh}.s@(s4?y 0MlW?Kz4ʕ7zc#ݕr& @C2ąZY-1de'X+"@s.]!6nkGYqM elW>$L.|(NXIR&Cu?́"#Rr185*k/)zŦy9vl9(/B]MymmNf*X vuG649˫1f/Y(q&>HJuEhW3zNd^K_8&(^6F#[Qаj[?ܺlfoV1-"ÒUdvEh%o8kio/|$K%=lIr%`ȯ3ȩCLbtN hJ ye+Oo*՘rȢ'gʞ+*hNR#sȂ ecR?Ԟ$m!E (שxќ.Y'?TJ}AY#:TZA@lo |K_/J_'\eR$ Jc6PBZ"a"IgqdBhj_C‡ ,} Bqߘ>Blm_~{vqo7B >29equHML<'RwCfdk֠RѱM6}N1(!kd;uja) cdG6%svk³p!z^~[Lj -BȤ$PJ[F %ƝjV<ُQVluBóMt\_~.3ڻ訛;w!"~67N7.ωh˅nٗoeN3i)xah+N 3z ދs_JWZP >@8,dYgdC'3oueP˜-Jk0"ބDL^a MJoߩ]qwlb FK@%G?'} 6NM/U <~P %2?n +-&Ie1ka[iN6Į{]z)f 'puâ f>MM:=Y?(řy HEkJ07/RDwωp6D|:}vO_t8Iܖё`RRأDڮ\݊wi#hׯu3m2uDu.3duP6V]ۢTt`4 I ɠذ^]8vLկ 9 q!mѾ糒'@*{R}Dc, et-Gh:GM(A,qL6J9@R ' 4#mQE\s[I},kC)HE[yKlpdI8ù, '\ގ]fI m"C*h󚂵h,K+ zֻF>a!Z_n};pvߪY &kb“|/%J&d&<(I'\w4x'jV$| h_נ /&pvϟ/@Qؒ/G'2vXHEދ4=+׽g1b lU$eݭ- YLT%:!F7e B07%HS0vIjfB Wt1R Nl4J~Iz\M;Ny.! {}vCw%?c)JRqz<$Nk37L`tަwz \5 Jrv 7·l?/+* k1or:ҨpuNqIƬKs^2-\nEU܁05{ci˪եh <.jyPD R6]WͩT/*|qRPbOZV>F\l@U%v-pC!~TA"VڑrkYNzcid {ѩTp:ae $Ac[Y#X9(5,AX4O6S_P*A33M8kmg"NhH#YޕjHw$Bn֤Dk:9*x)ש9x!:vN]ib9}~0Uڶh}.h&PlC-rU:4A,dt  $;'Eݣa|M HJ(Vv4pe!^ p"wB+ G5HݭG"d `6&Vu2#!3JUct=/$1.h(h1gnnز8jO"h yu=g|SRE<{;^D\O>xBYBaY#~ fi!9¢1%FTme:{LqS<گX& ]/V>>Yaꨑ@P~ͫt5dd ȋ'1,d䷦mˤQ>J\dI­qe}~2A# dy1`]CT+AWu$O,\槠[e5U`e6#yb(|2$s*ĩ^@/J׫]`0kqbUڐ9h!3/ִvsanV=0EzfJBßٺlkae&Kj&= ǭo{]Ad}Rc!@bYSXǩh ܯPãqblu{Y$)e߲\9B(u)Ltl2S^2@J*Z?Yݖub,נ4wVK#]^Ҙd>ՄÊӿDC2!O 3Z-~8|Q}qT2˶zl>|(AbxWx'dd5:\D1 ~XV(ycܩ~P Ѹ4" "r\>?Dăk͢jPQe^omV ??9(\pp㨿i-(lh|l\g.Ϩθ~nY[tvwM!aZ,hB?MICs/'A~~"j=@8i"ӯl[% ;)- KƽRO9T`9 Deǖ KĦ_4Y/2⤨*=D:/&*/ MXN$n)DfҔq p#Jw]r"3UqKn [K`2'Ww7}+1`yepM|R"i7wF!a7;VW#LRfQh!9ub)^29#*"rM%ژK*'Fs@}EL@Ô0⎥nT>eb,mF.})/,$MmT&8dP4\%/F1wZsĶ%R=RF6{4`hJB*3Elбf$WTn"JM4fcmbJ_t(> jB\_Lwa-hYS!t!fZ-ht(؈k3vr~*ir'Bo1lJm1(Hk&-+6]f  G 5R45Ϊ `}Y0m1hpa}fք1HN8(sɨ0`OCl+X %0G]q֩ /Q[u"+y*($ҤDv:FW׾ Ue#0l?PI5XU"BC&b#eB(椓LÂ, V_~qëG^T{pD&gMT{;IX4QxMӇb^/H2*"6Mj :J|"V *TtT{=+Mh1]yp-|:GVbj M!VVr;` /TofFiv XIIjk# ^aX]QټQOo& \ 31sK:ՃұI[d*߆V>LVQ2)@x7Aʋ!,IˬHW ުfzQx됀1=w៵v'ҲKzɫu.A+qf)gm m>q W\ia1pيU zFj%z16'Rà +oQP0 'LO]!i1ɶT*4VO4X:̇+G$t=AX2sGj'AJ̥o,LFՑkM*#ϴ4~d/&bԁsyTauhd_H$M4kMWF84҈o?Ji]#ʨV8 ̾hyg~QV>%Cpe f;Xh_e׋C84?*&NQwPm9B񟏈ˤ6,mW=Sl}:G6>Q¥)4d%x^%*ݪmװg-kv:Ɏy\͍xee@< _ԀWlx] E:"ƍpg$y걗Qp lU+impbRţ~s mU}%/* p}}:ԯ>.#Nj-jB7#4I)# U]%"pa~YR۲ /XFfJ:TׄVpYѲ& dHM%USJ/@]R}A\miAJc3 uwF$^cL֨pDBUC̜ģ>BlI]#aWMcvizLk)jh|fLƥoL+eW^ħ\-F+'J@{eng.@H7F!Rs&t&BV`W`UK3Sl2ge 4?c{P(eh rsR+C  LSjZ4}!Yh#\Zjjbk0槸?0ûn˸eSnZ4 xVZ mU"N{97#ѳ$r!nѵҼ _BU!nn8:WUGKӻzKN+flFjCcʑfdIEg! nq~G-6 D[_rRfMpIS5e@+en+Z4P/:7dw4M:(8 N=; d\QtzT F qT74_|Y "S4I/Z5t p8{ .۴I m] AjYL<2PS;INmiZ^ݣA_'U:V$Qk u)9'Z34"4-(1X3`"&*6k!BN`-ǺÖ.*jt\Gu*wڝ"݃H0jC hC )-cF5]Ϯlh.H;Rx+K|oS_*ׯ%v2}m E!z Wc1rNon6TH%RDEpC[  Bia 4E/ouzd˥ף10gx9 yJl偢~^9i.:[dحeަMC=MkqCMњUI!bŏc6F>^k0KrT ԆV>DP3!0[5<(93KuP1 Fu'{[PTg`ʲKӷbb*cikf/+̂AжA sYoJ/bRMhM=褞wv;x#/3aK Kt?8}f-Pj"n&u)[My2w]*:R<AVFTW]%rRsٯo[z07wʹ!2C`vST'ECЁGZd+P?)HCa:/V 5L6N Խ88$o/ϻ}Wr39 p&2qJij75©_7L{l|6:hX^=7سn=>:a%1}u#+U+Z}?CRno;RME:9g귢V;qÏ\ҍ\fydR+ʦnw'a[ҼڈGDK|li#) ۃw/کU,?}yWy=Kqؗp[K;ͳ?C1w?] g?‘P8drXwCMߜr<)c@f➳+5:1T1 ) gt\ˮ?M(7KΩOBRQoQ7~Gm Jdpy&lU:r6zx2xƫ4&w)e&OE)Cxs7SD?- uu;8Dwkz^^ _=OD4+CoJ.qREiBVVn!?gc[֐[#B5I mngO-$˹3Z5=d wQx,peV;q⏿!&0J>GKUlf fK+<h )Rr!$뜺Z8Y_!瓫.udLwj3Ӂr_1QC GPM!Fl,\b0*rkKYKSo_]D;* XH,Y|¦k?T^65?=ټ20TJ)s.#yZ1lY:YT iaSJAaZȱv]2MA",DŽ6mWŘ!T*JCM+dԂ"A PB%zm![+o}߿ KGNic-`J.O".އR1XZCH˖>ۅ`P*/7i}.Hn@`uL7J 'J-k4no 0Ѭy4kRd Y I BѺPв/Ug%ԭPrdǷ lmk ZcYquL؍(^^N-V^RΏXeWL[+>vߊH{YiNfnSkͫ>QifF=Е!4YwX]YN$#hR ƩG H`@5E>q!@KZFv8奢`=`S2Ҡjy>uÄ 6]tnXxS琺 _~""p:.375)3EKDE5-J2ك4}w"媷f|u6bb]"E npW@5Fi1YFM{4u7VD.DvxpϸolɓNkbZX\  c+3w}X2\U"o6`4{ndiJXCZsO/TprtCRz%iF'X!Ѽ{nnm[<[[DEŏQvߊg"BH}dq2'~$Y5 .4 $}'DyM%{oWFCAl7HF ^QgyuݢueBXB[F3᷶[rY}ڲZQ@㻧AjQjxc>~<@S?ʼn4">c][Ы~w~oyrġ@]''ml[~\V`n9 dM>Pѣ:h#RQȏYNnU%LLhG|!.Gw~O9|t =oNخKX&a\t+'j?}DϛZ4j3TY9˹j7MOZn 4LfW)ƐdآriTo[1=:!l,dOiqwPGcX@ q=Ǣ,z^6w33+CFr 6e*{~Skj{XTsoتE>kdOcFOA ޳$확JgƋn1w៾ո(==-a wbÁ Hk½w,)QJhصR @Q6H~[A#?J1Jo/ l6+ԔHTfCPbw]TKɼ_ȍXKM;.%nD5H=ذrׇ4.(3AVVӦcU9\fvQtA*g?+Oa;"ކ % OKH:5wix*ZQ*{2WLt, =Ŕ*K}aPp*sUAbSc7Ѳ K1%%օ?US+G"!a_KKfUw2_1ӢnQ$ʿkRI[jA-s%dlKj$ [VBG*+]qM04g]򑂚rZq2Y+8Z=2sKVΚ3SJǍ)+ԑCT2#{Jm׳?: y\vjJ/l9Z`_I*hFY lANH>\^cIIF{ ٩'b,DC\Tjei<q6>UKW,;GH0&Mҫu3о",@/[E*T@LOVDÄ'W=`ƺj\f؍fFI0dCq*=%KXZ6#w8 (5LДJӴ An֚PЭb5supr} ce&):k)6q(3H}&^&q#ځet[ 6b{`yсŬҒ8omʥ2G2ݸ|4jy5kagXORd9oaG8,Om(?EѡJ#V/B ׋* ckqM/&VZ#rS1Q ; l( 3C0f|,41&F .(JB =d@$Zצr:ԡ*<^̵Ұ Ӡqm)+>㊇ΓȞ^]aLd0݌DL6[M& ;rD'P؅ iP'4)xuYuQ$e C,Ol!,˞ZkXՙb !!4,Py)TcˑKE~0F'dAUasNH%\\]c7&@ϕKT @x-e&>{~xƅעD3 qBܢ6hgNZuV*H58׉2d{] x͋61$rGO(EM+i3Jn\kzÖ}R7NBxEn1˖*sScVAMi J/ZNZ^ok~^@]قP_dMx /%*(H)VB)xmEg]7(e&] R-xL6Wv/qwS{d th)Ȭr~+t$rsS^ӯM >jƜM~ks},ZBrdU m?X+N[e 8|Uc9SWz $:A?rJՊ8lCmORCa9tk۪*Q%5fBo.7Jhe8|}SwʝL|z>c[?5} q'ϣyen $ڶs Lnv=Y?Ѵ~o Z3/CG*?jo;늜6VaCx8:Am `mjOkc9+$>[C:ͮԇ&26G" F(eP νxp?q{}:y??8gd7NR^l5_2AgoG ^81TPʪgZjsԊK9t1v>o-EԫR\/)[2G$>8qqTblswҮcoqI7~-Y-;~U~ȏamؾZ֬B!VͲn*z޾ Ijkj%"p:uΈeq$cxkCAyhS7GöDθԹ5 2 bQ@9*DV{MJiU}u) c{["C%d=jKf0pP:,QsbC8#,h7g\[/٣k3A6ǵ&Yo~Q"*lSBgy4 ŊQMt;VPW\W=ilΈhnSܢ>qR%dl$Ѓ56˒nʼnڝ:C sm8⴩j ŠyF&C ț6xff DǛ7BPn)=\<1{A c+N#'̌0"ޕ q%uRAeJg!%#/ KcJ\u&;n7.n\}u/i/\;#D?u -qmR`9^ֽ;[4QХf0/@˫-Zq2IW$h>!v?X_=@GtlJs(X_0הq.#:/5_cC j@Y.ZЌ}ExK?[D+KiWz9T=hy$ Vf o״ns uDj>kct*J:JҬi?9wH_3 \u[,Fe)3"ϽS(ZH#Ђ|vYmRDrv in0FG*fyn |p~Fm}-D9Ez(A'j(Tvl)',%Qr" Ip?Pv,řL`@g@/q:W+?%%ia rs)<zt]Ro|E%ϸr(4ќ2oJHjL TȲf풻5YǼ/_)hٗ=syCojAܙ+VxJ7.zJ+k|څV)/"P][* Idw $DfJ!]&HDAA~n5f9.Y l X]FHqh^*oTRg+ 94bMLe=EJ*(&T +m~R!}:x,;(."}D};S4!9aDGP!7aEcpPbueEJ3Ȃ`+bH㍞sgD|S X] 2Q*9KPHY$ur*.<$&Cz93樦;C8#4@j!_Mx+q=9ۉiYy:*ufg0`fWᑇ% SćLZIѹ# Tث[&H@MG a9f9ϴ<&ݕ$@d_fZ,(t$UĚ $8%P<1.rDu[+snɍTh~ 6hxO~_Q},hHݢjȮ,nn|Ȉ&J=rt,Ty쪌ϣ/ڼ%u=-k% ,Di5qƏqK =鷬`Y6AI:bxg^!,E5 DFj>N bu6 2*kN _#$j$Lz**bFOblcCNOQWOSs2ηxK! oq1ь̥Kdz E_ rлZ`qsT'mtMV5[(uʣKv$af63kw q ZfDH ʱt7`pȿ %.:7bª| s/kH~WB=Hв|FQhIh @]8t.3 )[@tAڰIm4u [1-/JќIO}j@&腃=/HUhoOFde9 ƃUCKjXW~e~SR?94xxwK\|iW FC Q&2x ĥĦ܍86Rf ߈IHPA0RX9}=Dqf0lpNqQu T}_A&e/+DF$'2 ^}u-►SRfz@@RvmWUso 3I;L\i{+&'f⡓.I:(y&bJ*Ud+m#NF؅#{kcXE&S$!(e$t7!5Y I֖Tc->H@k@ y1[,_j<º7Ncϡ"m01S #GbD5#(մz]Zg$"'D_QS#UNCnh=:Ԉ!B0z2Rɀ"Pwi޲V\uBX*x:+99~Hr@);=ڠ*'T`% )SJ叁4w<迹dq@*`vd(.lZ?FJ\^dKU6fXnM_#U,VD_efLjfƾ* . ++UE?3tBySW׃*OCKĪO_z`O"'xK?!"j¹Kq-~D} kiK";mz =C=Үۧj .̅sl|j<).xMx "wGWUPT@l%4Ya[E i(u9H㢘syogUN|T&d(Zb:H9I J3|W1bY~YėIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/bat_10.png000066400000000000000000000003401221067027500227160ustar00rootroot00000000000000PNG  IHDRsRGBbKGD pHYs  tIME  Ī`IDAT8 0C_٥+=lC7E$Q0Q1IҒᕱZ<4!{~K"6'i倭+LszA1xA|/c%IENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/bat_100.png000066400000000000000000000003271221067027500230030ustar00rootroot00000000000000PNG  IHDRsRGBbKGDC pHYs  tIME  0WIDAT8A 0grJMBGGU0X1IRJP-^2%Grsvj`Y4g]* +)N")-IENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/bat_20.png000066400000000000000000000003361221067027500227240ustar00rootroot00000000000000PNG  IHDRsRGBbKGD6 pHYs  tIME  % 'V^IDAT8 0K)lC70 `b%+cx(B6ytsv倭+LqzA1xA|/(%bIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/bat_40.png000066400000000000000000000003351221067027500227250ustar00rootroot00000000000000PNG  IHDRsRGBbKGDC pHYs  tIME  \Ȣ]IDAT8 C_ b<9 &[ B(i  `p1bP#cX4!i'I7E{5rN~ ,Ӝ]nШo~ +"=\ZIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/bat_60.png000066400000000000000000000003351221067027500227270ustar00rootroot00000000000000PNG  IHDRsRGBbKGDC pHYs  tIME >1]IDAT8 0C_٥ 1oQ0h$iI`-3c`5`d R_vШ7V~BrIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/bat_80.png000066400000000000000000000003341221067027500227300ustar00rootroot00000000000000PNG  IHDRsRGBbKGDC pHYs  tIME 0m\IDAT8 0C_٥ XFY"FcTL2 $M)^kIpy<,ݝd9dl,Ӝ^ IE-xg~ݸIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/bat_no.png000066400000000000000000000003421221067027500231140ustar00rootroot00000000000000PNG  IHDRsRGBbKGD pHYs  tIME  -x[!bIDAT8 0C_J]JC6rS` 6IFa!$'I!ͻbCzQ6&2d9dQEi/X+7f~W&#akIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/bluetooth.png000066400000000000000000000005311221067027500236570ustar00rootroot00000000000000PNG  IHDR 6 sRGBbKGD3'| pHYs  tIME /mtEXtCommentCreated with GIMPWIDAT(}0 ?,,!͐4UUOXZl{sSΉ"c%HsTMKZp)ټ(j'UsaUcJ1l{(P}J.45ʙ{4PIY k7pԾM$2X.ϬbU2H 7TEGpb?I~edj)0dw>dwuQ#YVP f h}Q'*9/:Xk;ø^|0u lqKfza#+kmLb#5wd4.cK/H04[^][bĺMaJ$ >_D\S\8[ltTchQU/ +U݃Zyщ*BfhAVNrYu+@Z9,({qupzQ\c!+UQghr G|~h2fapd)LT6N "J3 $]8:5\P?l;D/Z8~7.mRq$hI<%[QS24E"g {ֺ!I-^.2XxlJAcpi wQPs[ދr[*d79 &PoiR%2[\7)aO gǻE-&,63 xBKM %gf9h:u܃#pLp~lՄ-X^8 iAČbbOy8x#8 wA9dSXM2ڧʼ-hDAe8և-|CβMj[Ճb" C{pJ_J/ebkmN O3iYVSZ>ߎHLj71ѳ=TGٓƶwo'Gf#u%i"¾Yo! 蜪vvS{_%Mhz٫*x.Vc )[a5"(?x} :e2/W"Zxiw5;Cڜ4: LHmwPZn}KkQhƐߊ|ؒ Sƫjonq炸c|Y E#RZT +Ejp:5X-[bp(cQ4΀`y < %!̛;`# {J8y‘>P`F۷FGW`6z7e]F ˧U`.YjXFH tQ$(km{#0wD;Fe}30#oBp3‘$^G(It]EnO1'+k:S%$mqL;I+_%q/xkw3)H`/ ƊXV>ZV^KtFJ;e+3]˴3u@Sc/ML3 @ܻ=+-7Ӣ\ҷ0 o֑μ|rCjƈzmetj s]8kqnUϮfo^F+zIVi }r&Kj[C}o7}\6 qN>T~0|'nrn]lC`}=rjYdV]rqM(`\7cFRȆˮ:i-F||Dx`!׬@nDʔJ1FqW6mxVbܷsaU|Cu Mpu6Nxz|OEq@tK@>ohttrt"Caº]\{#:aMh Sf'IfPhJ"a_^$z4oVxS~9kEt͓nt;>McmtwʷHי5.axa~Fp*bm$"iY?3*yf |K^G{Y$. 4b_`s1'@h9ĸol =9"܁hG @-槊MTG>)qD\x&сP]?٫͌Eڮ' '\8k{gR#?B!tV=!'y\-ۿSS+ u;1ʐJM6S3K[tTxيcFgzlL{cl (MҡDݜILfwȡLa!@l-v|p|+VEt[czHIn{Z΄/^1ƣfhXivۆ6niudF݄ă,{7)?@|{Gvl5qK?C i\lxCK05vx› M;4^x78[* Ws=a"^ 6Õ9(mTHO֓g35Fbm?X!4> lg19eZx!Zy\vT wcXMa|K^S~V^0iwf~ۅ6.,bZeGT(Sv򔦳:olpRg-8;XwU?/E/v۸IENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/clock.png000066400000000000000000000114471221067027500227550ustar00rootroot00000000000000PNG  IHDR`sRGBbKGD pHYs  tIME '_tEXtCommentCreated with GIMPWIDATxڽ|ٖݰ+O>/D]}ORU{ qA/{#"@~1"_?y|-s8yIC_5'"9S8+.`Bd~>hN vY ||c9rYSKp^#@WIƪ@/e~{8s kre>-7"/ `g:/V A^vnk%%Óh3`c|ζ+?xX{cbڤXҲ@k.cu|SFqbYP-9ia Mk-WV%1 $(腡dv7YCc?k+?(qNnݧ=neD^<,!8n&'$dZ1 UaB"Z{Ty"Nn;2gB>W>'/ )ZX5 9X$"dN!^婙"U!'Kd ᱕E?vp>Vp Kq@ټwB`ʹ|/5oB`&x%F8?|c̱mrL2#Cmyں=yڝ ID2* g~  2C 'dH^_}z7G"wS~}~mw?|.F|ԧ(0v ry_˟N*Bܥ\+o?!V\rkE.L L$PcX0W-We _{8qxUhB/F*?V\*:2B]9hت:p}gQ:Oʊ1@Dh X穀O 4?9$ Юa5RVE^ee `}y*TfF6' kJamR-7F'gUV~;rYQ6Ec.Sg(!*5_WFtbYP422>*PEzm֤iiGO1Y%!UDkPw T4Pބ!=O($q Aj@ |ah/C!M o֗흤\Ph ael*Ӗ,{tVN, نJ6y #A_% t¢7M(?>οJIĻV2僿R6H 69DbӑeD{. BZpCjwj^" EЌP5{8\] ^+xJERN Gj/ټp)@rt3,td30JZ ʏnEhJxBinbUzN y*Hbk6o~ RR{1êm3 ~EWCPqy: .yrF}Q<8"W'(Z' ~E@cqRɿbr5:AK㪶TŗvdS+7Ncjw=Ա0##M?t"?KIAoXEY=Zj2 gSB80A ˪*Ne֔mf걮Tח\UPAOsHىG%wfD!DZt-IB"]dQC#~qqzBM;A;Pr6FI1yx\z%2p- tO/@!-D+jRZݽOtCݘ7"z 臭4.%$aū'F A de`'cvTGcDPؒI|#i UD!Kґ_._$%^_W%Z |0~/+SJ %$u߉1(dhI ;"vo%t"Wme>Gw+#\l\'L?dzsjIȠA-SER3' - PU2:D,-0V_V uʫjUJY&rkmV>2QeJR#@*:)jx*LDPl`p5WwQCL4i) ܝƱp|39 IN(}љF'#w!$kY8ϡZG(6.\%ւfy.CIS1A߹(^5LCxFꋦ mQᾂ6,Vze J8.^HޝGL( RSM%=&ܢ 0 !q>z TCK`+؏W@4 aؗ.VN^M]U{1FvQS:ŦP>Zxe>q7HOވ c+?i N,? $39Ձlj+M $t֤C5'QsmҢņ]o9)⓾4-T [K)a6~P#kXȂrOJ7]C}3 n.xA.H+-dtϞhu (:Do=S(lV2PkMcsoeݕxUkmjWR&)L"麚 /[SU9{ TN%[XY [o_*)txRfSpQ"ӳg[{m+-\Q QĞ~k|6FϤ=b@l. 1HƐNkG"PqS\ʻ-n]Ś5.LRP1-|)=w}coNq5=/z>S!9 _~q0Ywa`"tIM]5n|4jf@<eFp$|BWNן.,tI,4YI6E:aUsmүIx@BhOCrq>+If^p2y[G&ĥ)/$>b=+ΐFb`"r(ILJ^o|f ܃Dݏ8hi3{MKAO}U7w&5DSv+lH&jSVXB^od<]GTB5f1w]pVjoa"S75R#ŽaF́{]nJ _@ϳh&ٝu5m$xbQ74]ķ#D1~!wR$6)g\MC(_6tH.D@y=4c:=MoָS{[~Wƺ)U0||dbi0=JqCz CQ<`K6J)"UBi) xy~?i. | ٽ$2!_B ʟE]QTZkն2:.?wu IENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/cpu.png000066400000000000000000000006651221067027500224510ustar00rootroot00000000000000PNG  IHDR;֕JsRGBbKGD pHYs  tIME  ,5NtEXtCommentCreated with GIMPWIDAT(ύ-vAV] "#@ DD,kBГ7~RfzzjAD,|ƶ#b/Z~Onۿv=%~PJ@\@ aݧ~EF_@.I>Z$$GUsʗ]>&OI@|g#Ik@ҏ탤UR[-\+"6ٰx5@֌dWu^:9gYuL+`Xl/sno#bݶ=ʦh_eOoiIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/display.png000066400000000000000000000004531221067027500233220ustar00rootroot00000000000000PNG  IHDR;֕JsRGBbKGDC pHYs  tIME  yitEXtCommentCreated with GIMPWIDAT(ϵRA kbB&k mZ&$3㱖mT kF%U19{\%e yF2uR!Dk r9\|q5G}; )1JYtIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/gps.png000066400000000000000000000004041221067027500224420ustar00rootroot00000000000000PNG  IHDR;֕JsRGBbKGDC pHYs  tIME  5dtEXtCommentCreated with GIMPW_IDAT(ϥRA ,]dHAP29Ļ$#E4fh06enf%u0n{}DcG|rR$SM b '/NIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/gsm_0.png000066400000000000000000000003031221067027500226540ustar00rootroot00000000000000PNG  IHDRfdsRGBbKGD pHYs  tIME%EY CIDAT8ݓ 00N,U 'lLRIwxXT0.^ueZ#׵3?OfIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/gsm_1.png000066400000000000000000000003171221067027500226620ustar00rootroot00000000000000PNG  IHDRfdsRGBbKGD pHYs  tIME' pOIDAT8ݓQ Bu+ӗJmxC;)Z@-EUvuE(k@tr.g7aǷ.>[Pk! IENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/gsm_2.png000066400000000000000000000003301221067027500226560ustar00rootroot00000000000000PNG  IHDRfdsRGBbKGD pHYs  tIME& mXIDAT8ݓ CN]ĠBڹ|D;ɒz"@D 7:#SN4z4+{Gwn5!gIJ{jj&$F IENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/gsm_3.png000066400000000000000000000003311221067027500226600ustar00rootroot00000000000000PNG  IHDRfdsRGBbKGD pHYs  tIME&5YIDAT8ݓ0Ci5`ɜ hgc;Eg t`j4ar6F@M(³,Vkѽͳ$#" p.F:IENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/gsm_4.png000066400000000000000000000003351221067027500226650ustar00rootroot00000000000000PNG  IHDRfdsRGBbKGD pHYs  tIME&s{]IDAT8œA ! =HA$4#" Z#.d,dIhLRmۜ=x³ ~FgRY+,2[IENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/gsm_no.png000066400000000000000000000005211221067027500231330ustar00rootroot00000000000000PNG  IHDRfdsRGBbKGD pHYs  tIME%&pTIDAT8˽0wr : mP0ܬ+^>/0.$xIvE0sv@+{@:z^+"H,RMQ#w`81^wT- ;dW}I`nU)'!KR&" Uf9Dz 2rHo6Wٿ >?Wp*%'#eevr ?('(IENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/idle_screen.edc000066400000000000000000000547141221067027500241110ustar00rootroot00000000000000collections { images { image: "background.png" COMP; image: "logo.png" COMP; image: "clock.png" COMP; image: "bottom.png" COMP; image: "slider.png" COMP; image: "sliderbackground_left.png" COMP; image: "sliderbackground_middle.png" COMP; image: "sliderbackground_right.png" COMP; image: "gsm_no.png" COMP; image: "gsm_0.png" COMP; image: "gsm_1.png" COMP; image: "gsm_2.png" COMP; image: "gsm_3.png" COMP; image: "gsm_4.png" COMP; image: "cpu.png" COMP; image: "display.png" COMP; image: "bluetooth.png" COMP; image: "wifi.png" COMP; image: "gps.png" COMP; image: "alarm.png" COMP; image: "bat_no.png" COMP; image: "bat_10.png" COMP; image: "bat_20.png" COMP; image: "bat_40.png" COMP; image: "bat_60.png" COMP; image: "bat_80.png" COMP; image: "bat_100.png" COMP; image: "unfinishedTasks.png" COMP; image: "unreadMessages.png" COMP; image: "missedCalls.png" COMP; } fonts { font: "VeraBd.ttf" "VeraBd"; font: "Miso.ttf" "Miso"; } group { name: "phoneui/idle_screen/idle_screen"; script { public clock_cb(val) { new buf[11]; new date_buf[12]; new year, month, day, yearday, weekday, hour, minute; new Float:second; new Float:s; date(year, month, day, yearday, weekday, hour, minute, second); s = 60.0 - second; while (s < 0.0) s = s + 5.0; timer(60.0 - second, "clock_cb", 1); if ((hour < 10) && (minute < 10)) { snprintf(buf, 10, "0%i:0%i", hour, minute); } else if ((hour < 10) && (minute >= 10)) { snprintf(buf, 10, "0%i:%i", hour, minute); } else if ((hour >= 10) && (minute < 10)) { snprintf(buf, 10, "%i:0%i", hour, minute); } else if ((hour >= 10) && (minute >= 10)) { snprintf(buf, 10, "%i:%i", hour, minute); } snprintf(date_buf, 11, "%i.%i.%i", day, month, year); set_text(PART:"time", buf); set_text(PART:"date", date_buf); } } parts { part { name: "background-image"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; } rel2 { relative: 1.0 1.0; } image { normal: "background.png"; } } } part { name: "background-logo"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; aspect: 1 1; rel1 { relative: 0.82 0.6; } rel2 { relative: 0.82 0.78; } image { normal, "logo.png"; } } } part { name: "background-text"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; rel1 { relative: 0.1 0.25; } rel2 { relative: 0.5 0.5; } text { text: "SHR"; font: "Miso"; size: 40; fit: 1 1; } } } /////////////////////////////////// TOPBAR ///////////////////////////////////// part { name: "topbarContainer"; type: GROUP; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 -150; } rel2 { relative: 1.0 0.0; offset: 0 -120; } } description { state: "hvga" 0.0; rel1 { relative: 0.0 0.0; offset: 0 -115; } rel2 { relative: 1.0 0.0; offset: 0 -90; } } } part { name: "topbar"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.0 0.0; } rel2 { relative: 1.0 0.0; offset: 0 30; } } description { state: "hvga" 0.0; color: 0 0 0 255; rel1 { relative: 0.0 0.0; } rel2 { relative: 1.0 0.0; offset: 0 25; } } description { state: "hidden" 0.0; inherit: "default" 0.0; rel1 { to: "topbarContainer"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "topbarContainer"; relative: 1.0 1.0; offset: 0 0; } } } part { name: "gsmContainer"; type: GROUP; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "topbar"; relative: 0.0 0.0; offset: 5 5; } rel2 { to: "topbar"; relative: 0.0 1.0; offset: 38 -5; } } description { state: "hvga" 0.0; rel1 { to: "topbar"; relative: 0.0 0.0; offset: 5 5; } rel2 { to: "topbar"; relative: 0.0 1.0; offset: 32 -5; } } } part { name: "gsmStrength"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image { normal: "gsm_no.png"; } rel1 { to: "gsmContainer"; } rel2 { to: "gsmContainer"; } } description { state: "0" 0.0; inherit: "default" 0.0; image { normal: "gsm_0.png"; } } description { state: "1" 0.0; inherit: "default" 0.0; image { normal: "gsm_1.png"; } } description { state: "2" 0.0; inherit: "default" 0.0; image { normal: "gsm_2.png"; } } description { state: "3" 0.0; inherit: "default" 0.0; image { normal: "gsm_3.png"; } } description { state: "4" 0.0; inherit: "default" 0.0; image { normal: "gsm_4.png"; } } } program { name: "gsmSignalChange"; signal: "*"; source: "gsmSignalChange"; script { new val; val = atoi(sig); if(val > 0 && val <=20) { set_state(PART:"gsmStrength", "0", 0.0); } else if(val > 20 && val <= 40) { set_state(PART:"gsmStrength", "1", 0.0); } else if(val > 40 && val <= 60) { set_state(PART:"gsmStrength", "2", 0.0); } else if(val > 60 && val <= 80) { set_state(PART:"gsmStrength", "3", 0.0); } else if(val > 80) { set_state(PART:"gsmStrength", "4", 0.0); } else { set_state(PART:"gsmStrength", "default", 0.0); } } } part { name: "gsmProvider"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; text { text: ""; font: "VeraBd"; align: 0.0 0.5; fit: 0 1; } rel1 { to: "gsmStrength"; relative: 1.0 0.0; offset: 5 1; } rel2 { to: "gsmStrength"; relative: 1.0 1.0; offset: 170 -1; } } } part { name: "pdpStatus"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; text { text: ""; font: "Sans"; size: 1; fit: 1 1; align: 0.0 0.5; } rel1 { to: "topbar"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "topbar"; relative: 0.0 0.0; offset: 22 22; } } } part { name: "batteryContainer"; type: GROUP; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "topbar"; relative: 1.0 0.0; offset: -37 5; } rel2 { to: "topbar"; relative: 1.0 1.0; offset: -5 -5; } } description { state: "hvga" 0.0; rel1 { to: "topbar"; relative: 1.0 0.0; offset: -31 5; } rel2 { to: "topbar"; relative: 1.0 1.0; offset: -5 -5; } } } part { name: "batteryPower"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image { normal: "bat_no.png"; } rel1 { to: "batteryContainer"; } rel2 { to: "batteryContainer"; } } description { state: "10" 0.0; inherit: "default" 0.0; image { normal: "bat_10.png"; } } description { state: "20" 0.0; inherit: "default" 0.0; image { normal: "bat_20.png"; } } description { state: "40" 0.0; inherit: "default" 0.0; image { normal: "bat_40.png"; } } description { state: "60" 0.0; inherit: "default" 0.0; image { normal: "bat_60.png"; } } description { state: "80" 0.0; inherit: "default" 0.0; image { normal: "bat_80.png"; } } description { state: "100" 0.0; inherit: "default" 0.0; image { normal: "bat_100.png"; } } } program { name: "batteryPowerChange"; signal: "*"; source: "batteryPowerChange"; script { new val; val = atoi(sig); if(val > 0 && val <=10) { set_state(PART:"batteryPower", "10", 0.0); } else if(val > 10 && val <= 20) { set_state(PART:"batteryPower", "20", 0.0); } else if(val > 20 && val <= 40) { set_state(PART:"batteryPower", "40", 0.0); } else if(val > 40 && val <= 60) { set_state(PART:"batteryPower", "60", 0.0); } else if(val > 60 && val <= 80) { set_state(PART:"batteryPower", "80", 0.0); } else if(val > 80 && val <= 100) { set_state(PART:"batteryPower", "100", 0.0); } else { set_state(PART:"batteryPower", "default", 0.0); } } } #define RESOURCE(__name, __image, __relTo, __distance) \ part { \ name: __name; \ type: IMAGE; \ mouse_events: 0; \ description { \ state: "default" 0.0; \ aspect: 0 0; \ image { normal: __image; } \ rel1 { to: __relTo; relative: __distance 0.0; } \ rel2 { to: __relTo; relative: __distance 1.0; } \ } \ description { \ state: "active" 0.0; \ inherit: "default" 0.0; \ aspect: 1 1; \ } \ } \ program { \ name: __name",active"; \ signal: __name",active"; \ source: "resourceStateChange"; \ action: STATE_SET "active" 0.0; \ target: __name; \ } \ program { \ name: __name",default"; \ signal: __name",default"; \ source: "resourceStateChange"; \ action: STATE_SET "default" 0.0; \ target: __name; \ } RESOURCE("CPU", "cpu.png", "batteryPower", -0.5); RESOURCE("Display", "display.png", "CPU", -0.6); RESOURCE("Bluetooth", "bluetooth.png", "Display", -0.6); RESOURCE("WiFi", "wifi.png", "Bluetooth", -0.6); RESOURCE("GPS", "gps.png", "WiFi", -0.6); RESOURCE("alarm", "alarm.png", "GPS", -0.6); ///////////////////////////////// CLOCK //////////////////////////////////////// part { name: "clockContainer"; type: GROUP; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 -120; } rel2 { relative: 1.0 0.0; offset: 0 0; } } description { state: "hvga" 0.0; rel1 { relative: 0.0 0.0; offset: 0 -90; } rel2 { relative: 1.0 0.0; offset: 0 0; } } } part { name: "clock"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image { normal: "clock.png"; } rel1 { to: "topbar"; relative: 0.0 1.0; } rel2 { to: "topbar"; relative: 1.0 1.0; offset: 0 120; } } description { state: "hvga" 0.0; image { normal: "clock.png"; } rel1 { to: "topbar"; relative: 0.0 1.0; } rel2 { to: "topbar"; relative: 1.0 1.0; offset: 0 90; } } description { state: "hidden" 0.0; inherit: "default" 0.0; rel1 { to: "clockContainer"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "clockContainer"; relative: 1.0 1.0; offset: 0 0; } } } part { name: "time"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; rel1 { to: "clock"; relative: 0.0 -0.15; } rel2 { to: "clock"; relative: 1.0 0.7; } text { text: "00:00"; font: "Sans"; fit: 0 1; } } } part { name: "date"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; rel1 { to: "clock"; relative: 0.0 0.50; } rel2 { to: "clock"; relative: 1.0 0.75; } text { text: "DD.MM.YYYY"; font: "Sans"; fit: 0 1; } } } part { name: "profile"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; rel1 { to: "clock"; relative: 0.0 0.75; } rel2 { to: "clock"; relative: 1.0 0.9; } text { text: ""; font: "Sans"; fit: 0 1; } } } //////////////////////////////// MIDDLE TOP //////////////////////////////////// #define NOTIFICATION(__name, __icon, __heading, __line1, __line2, __relTo) \ part { \ name: __name"Notification"; \ type: RECT; \ mouse_events: 0; \ description { \ state: "default" 0.0; \ color: 20 20 20 255; \ rel1 { to: __relTo; relative: 0.0 1.0; } \ rel2 { to: __relTo; relative: 0.0 1.8; } \ } \ description { \ state: "active" 0.0; \ inherit: "default" 0.0; \ rel1 { relative: 0.0 1.0; } \ rel2 { relative: 1.0 1.8; } \ } \ } \ part { \ name: __name"HeadingBg"; \ type: RECT; \ mouse_events: 0; \ description { \ state: "default" 0.0; \ color: 85 85 85 255; \ rel1 { to: __name"Notification"; relative: 0.01 0.01; } \ rel2 { to: __name"Notification"; relative: 0.99 0.4; } \ } \ } \ part { \ name: __name"Heading"; \ type: TEXT; \ mouse_events: 0; \ description { \ state: "default" 0.0; \ color: 255 255 255 255; \ rel1 { to: __name"HeadingBg"; relative: 0.02 -0.1; } \ rel2 { to: __name"HeadingBg"; relative: 0.98 1.1; } \ text { text: __heading; font: "Sans"; fit: 0 1; align: 0.0 0.0; } \ } \ } \ part { \ name: __name"Line1"; \ type: TEXT; \ mouse_events: 0; \ description { \ state: "default" 0.0; \ color: 255 255 255 255; \ rel1 { to: __name"Notification"; relative: 0.02 0.4; } \ rel2 { to: __name"Notification"; relative: 0.98 0.7; } \ text { text: __line1; font: "Sans"; fit: 0 1; align: 0.0 0.0; } \ } \ } \ part { \ name: __name"Line2"; \ type: TEXT; \ mouse_events: 0; \ description { \ state: "default" 0.0; \ color: 255 255 255 255; \ rel1 { to: __name"Notification"; relative: 0.02 0.7; } \ rel2 { to: __name"Notification"; relative: 0.98 1.0; } \ text { text: __line2; font: "Sans"; fit: 0 1; align: 0.0 0.0; } \ } \ } \ program { \ name: "activate_"__name; \ signal: "*"; \ source: "activate_"__name; \ action: STATE_SET "active" 0.0; \ target: __name"Notification"; \ transition: LINEAR 0.5; \ } \ program { \ name: "deactivate_"__name; \ signal: "*"; \ source: "deactivate_"__name; \ action: STATE_SET "default" 0.0; \ target: __name"Notification"; \ transition: LINEAR 0.5; \ } //name, icon, heading, line1, line2, relative_to NOTIFICATION("incomingCall", "incomingCall.png", "", "", "", "clock"); //////////////////////////////// MIDDLE BOTTOM ///////////////////////////////// part { name: "unfinishedTasks"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image { normal: "unfinishedTasks.png"; } rel1 { to: "bottomContainer"; relative: 0.9 -1.6; } rel2 { to: "bottomContainer"; relative: 0.9 -1.05; } } description { state: "active" 0.0; inherit: "default" 0.0; aspect: 1 1; } } part { name: "unfinishedTasksLabel"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; rel1 { to: "unfinishedTasks"; relative: 0.0 -0.1; } rel2 { to: "unfinishedTasks"; relative: 1.0 0.6; } text { text: "0"; font: "Sans"; fit: 0 1; } } } program { name: "showUnfinishedTasks"; signal: "show"; source: "unfinishedTasks"; action: STATE_SET "active" 0.0; transition: LINEAR 0.5; target: "unfinishedTasks"; } program { name: "hideUnfinishedTasks"; signal: "hide"; source: "unfinishedTasks"; action: STATE_SET "default" 0.0; transition: LINEAR 0.5; target: "unfinishedTasks"; } part { name: "unreadMessages"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image { normal: "unreadMessages.png"; } rel1 { to: "unfinishedTasks"; relative: -0.6 0.0; } rel2 { to: "unfinishedTasks"; relative: -0.6 1.0; } } description { state: "active" 0.0; inherit: "default" 0.0; aspect: 1 1; } } part { name: "unreadMessagesLabel"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; rel1 { to: "unreadMessages"; relative: 0.0 -0.1; } rel2 { to: "unreadMessages"; relative: 1.0 0.6; } text { text: "0"; font: "Sans"; fit: 0 1; } } } program { name: "showUnreadMessages"; signal: "show"; source: "unreadMessages"; action: STATE_SET "active" 0.0; transition: LINEAR 0.5; target: "unreadMessages"; } program { name: "hideUnreadMessages"; signal: "hide"; source: "unreadMessages"; action: STATE_SET "default" 0.0; transition: LINEAR 0.5; target: "unreadMessages"; } part { name: "missedCalls"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image { normal: "missedCalls.png"; } rel1 { to: "unreadMessages"; relative: -0.6 0.0; } rel2 { to: "unreadMessages"; relative: -0.6 1.0; } } description { state: "active" 0.0; inherit: "default" 0.0; aspect: 1 1; } } part { name: "missedCallsLabel"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; rel1 { to: "missedCalls"; relative: 0.0 -0.1; } rel2 { to: "missedCalls"; relative: 1.0 0.6; } text { text: "0"; font: "Sans"; fit: 0 1; } } } program { name: "showMissedCalls"; signal: "show"; source: "missedCalls"; action: STATE_SET "active" 0.0; transition: LINEAR 0.5; target: "missedCalls"; } program { name: "hideMissedCalls"; signal: "hide"; source: "missedCalls"; action: STATE_SET "default" 0.0; transition: LINEAR 0.5; target: "missedCalls"; } //////////////////////////////// BOTTOM //////////////////////////////////////// part { name: "bottomContainer"; type: GROUP; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; } rel2 { relative: 1.0 1.0; offset: 0 120; } } description { state: "hvga" 0.0; rel1 { relative: 0.0 1.0; } rel2 { relative: 1.0 1.0; offset: 0 90; } } } part { name: "bottom"; type: IMAGE; mouse_events: 0; description { state: "default" 0.0; image { normal: "bottom.png"; } rel1 { relative: 0.0 1.0; offset: 0 -120; } rel2 { relative: 1.0 1.0; } } description { state: "hidden" 0.0; inherit: "default" 0.0; rel1 { to: "bottomContainer"; relative: 0.0 0.0; offset: 0 0; } rel2 { to: "bottomContainer"; relative: 1.0 1.0; offset: 0 0; } } description { state: "hvga" 0.0; image { normal: "bottom.png"; } rel1 { relative: 0.0 1.0; offset: 0 -90; } rel2 { relative: 1.0 1.0; } } } part { name: "slider-bg"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 0; rel1 { to: "bottom"; relative: 0.07 0.2; offset: 0 0; } rel2 { to: "bottom"; relative: 0.93 0.8; offset: 0 0; } } } part { name: "clipper"; type: "RECT"; mouse_events: 0; description { state: "default" 0.0; rel1.to: "slider-bg"; rel2.to: "slider-bg"; color: 255 255 255 255; } } part { name: "slider"; type: RECT; mouse_events: 1; description { state: "default" 0.0; fixed: 1 1; min: 121 72; color: 0 0 0 0; rel1 { to: "slider-bg"; relative: 0.0 0.0; } rel2 { to: "slider-bg"; relative: 1.0 1.0; } } description { state: "hvga" 0.0; fixed: 1 1; min: 95 55; color: 0 0 0 0; rel1 { to: "slider-bg"; relative: 0.0 0.0; } rel2 { to: "slider-bg"; relative: 1.0 1.0; } } dragable { confine: "slider-bg"; events: "slider"; x: 1 7 100; y: 0 0 0; } } part { name: "sliderbackground-middle"; type: "IMAGE"; mouse_events: 0; description { state: "default" 0.0; image.normal: "sliderbackground_middle.png"; rel1 { to: "slider-bg"; relative: 0.0 0.0; offset: 25 0; } rel2 { to: "slider-bg"; relative: 1.0 1.0; offset: -25 0; } } } part { name: "sliderbackground-left"; type: "IMAGE"; mouse_events: 0; description { state: "default" 0.0; image.normal: "sliderbackground_left.png"; rel1.to: "slider-bg"; rel2.to: "slider-bg"; rel2.relative: 0.0 1.0; rel2.offset: 25 0; } } part { name: "sliderbackground-right"; type: "IMAGE"; mouse_events: 0; description { state: "default" 0.0; image.normal: "sliderbackground_right.png"; rel1.to: "slider-bg"; rel1.relative: 1.0 0.0; rel1.offset: -25 0; rel2.to: "slider-bg"; } } part { name: "arrow"; type: "IMAGE"; mouse_events: 0; clip_to: "clipper"; description { state: "default" 0.0; image.normal: "slider.png"; rel1.to: "slider"; rel2.to: "slider"; } } } programs { program { name: "set_hvga"; signal: "set"; source: "hvga"; action: STATE_SET "hvga" 0.0; target: "topbarContainer"; target: "topbar"; target: "gsmContainer"; target: "batteryContainer"; target: "clockContainer"; target: "clock"; target: "bottomContainer"; target: "bottom"; target: "slider"; } program { name: "set_default"; signal: "set"; source: "default"; action: STATE_SET "default" 0.0; target: "topbarContainer"; target: "topbar"; target: "gsmContainer"; target: "batteryContainer"; target: "clockContainer"; target: "clock"; target: "bottomContainer"; target: "bottom"; target: "slider"; } program { name: "clock_init"; signal: "clock_init"; source: ""; script { clock_cb(0); } } program { name: "unlock"; signal: "preUnlockScreen"; source: "slider"; action: STATE_SET "hidden" 0.0; transition: ACCELERATE 0.5; target: "bottom"; target: "topbar"; target: "clock"; after: "unlock2"; } program { name: "unlock2"; action: SIGNAL_EMIT "unlockScreen" "slider"; } program { name: "drag_end"; signal: "mouse,up,1"; source: "slider"; script { new Float:dx, Float:dy; get_drag(PART:"slider", dx, dy); if (dx >= 0.9) { set_drag(PART:"slider", 0.0, 0.0); emit("preUnlockScreen", "slider"); } else { set_drag(PART:"slider", 0.0, 0.0); } } } } } } libphone-ui-shr-0.1+git20130901/data/idle_screen/logo.png000066400000000000000000000356231221067027500226240ustar00rootroot00000000000000PNG  IHDR>asRGBbKGD pHYs B(xtIMEs IDATx]wxwvh*"tn*` zQbWī6` %,ݠBHG@vw9x{fggfi?5 h& 4PAH`.PBN;^GSMƚ6+k5Q1< 5_.k ̀ ּGk^M2HrMc#A` 6 5,Ii`{h}lp֡W| WyTHu˷NKO&=cjvTkQzo&trC QpVXI2 ZɄMm.ٺ0w0Rh]jjuJèꀹfnŚ[iVZs]N*c1,q}ےc*VNaIGp5nZ-e@2¡>~(OڞYDgqR%&`6# ;(Nwa  ;7hQnWv<_h j_#cf;F&e fWe JyxY${6W3@`I$[nU_0蝺5ɟN9V5M]YHdFf~׽1+^U_uG!`̈Oi њ5ױI`5a kWW0GgA_3h y\QjN׮s$a :62M4MhR"ĩ" `.bR{y+Vi˕V+#_kYtt܌Fb eᛣFN^ .U ×w ~M5)-=OM18 @2[Yc6ک.YQodovqmN+} ܛ͟\c!Q/8؀ L3BϢe)C16CMSߣ5R\R|O vnf$tSL4V0jt=p!F3Q=eSn]=x '53'$eoKy|"V'Ǫ ,][m|ǚFgCDy.{ Jm+Za˸L6\@V$ߊAL_oeCOWx7lg@E`2@M:\(S3U&`:ij5Ff:UkM>2Q 30 Xߛ=藼9&5.~˓;c2/fN9vw[ g(|~O}ֹnO_cY3 Z"Mc0k~_C#L=ghM3斬]x^zIA0@IK7p+rOq'Rk ]5KAi}ti_*Y&nԚrtּM+uWӗelcC'G42ѷ5JTcD coHߑ |@jZp6M)&֚Oz cX]+]K6\6ۥQ,_h߆}OQ'? aKΕhkҬ&5-ddyC&;gGxJ6hLoG[!=~`Zfcb)A?S03h2Nn S:S6&p-LM lh-DKm9jix< 懴ɍ E qs -1@NЛED[dBA{}^!FU\~/65'?VI]JnAx@Tk^,bF?l_yS᧵mdeР㲷Lw3@ž!YUC/HNy{مӊJij_a~~)jb|7Y:kz53@VuV8{xAhu4?wގ|+)=wF6(<> ܙ YNf9Lmgu_׈yweUf!egIڕ6pP ۵+}n|Y⦏ %uM'D+@tz !0^t/3P}:\YNi< pC pFaaW\rS5DD8+/=8W~S< LGۯFc3=李X$9Tr\GsSDp<{ XM$`f*"h@@p=@LM ja9%Q.y>u;-s,N(Z34uێ k y maI$-^Js #g֞tX z{4Gx dgX \&q*^USCyǔYͳ8h+ԁz@6Oq[RR\B]RwD go25ꞼgbDP:bn g0? =bfͬpF N&`+xkuʌK6iaU6L3IG Y-B}¨{RwL5Z3S\ /k7y~oZn,f p `?˛?UIyr4A &7j#3[+QtT1d`MOJ4|,Pk&tFyOaAR=H@_"Q1Ac@ӂHP\/x맕:D Щo!&YL-UP=:{tm=Iiɓ3G_+l>t4#r$f2 TZ2ܦ|DK1 %}6=U=/3@܈Px2}iX7d{dyJM,bOHb&'t-X1WѹR1Y]JЭ% hQy/tlcQ MɥXKopãlakCQ ̓/~-lqZP)*tg[35{I]/k^-kܼ^WK)Vަʎ+Jg:VZٍ`|i95݃kdL[б%l>hT=pnp]NŻIeBX^\|)1݆DcLowuUFekg;/Mg7Vj6BSf[g'doeu4vnWѾM@ۣۦve{e\{pevQm s p3H"V=P}%{J(*4GP=y ;,o6L2MV*0Q4YwAʰjwǎZ.f df]>^7EjKJ <SR(y3w.G3sof0\±70fO0|tU|~ŕ`ΚKR*85(}qkvV~h H.sexк ZJ  -sͼKFqbg&?㮱~'VA_ A3o`2+)` zMڡi}`g\)2@NaIQ7Kliе" yma`AKJOfb #3_%}koc 0 vbE5!nVdϟ0Y5.-.]/^;ss,~4ܛ}7 0 ,)I2NfHR&aE(w 0(^0@uA]SF~d;Zcly@IƝ'l[izA uPsEaH0ڨєŒ66qda[%?2L$[fn~$1=ӗ@xb*0Dt>KD/$"JDoыDt+ A1> יyVwcy 墟Nk[\jI>%|&ˈZV|icB B3fkȠ (*l<'Yq@D<_9b8{>eD%Fv("֠z#` c%&hf'A0@j`X(ܡ_ ĸ# )+s > ;7=4`C Nml'l%7'daYo0ԁ8hGDODt3elm5O>Qz$ %\dùOdL@hZf`+19r% U}'A 1mcwvۥE8gxفn$2"DkkWk]ȑ\$r?1]I6)s ,ݨxHr7ANqJP6m–pkt '$O9`O A_t`o?>z" L/[nhhfTiIcp\jK?Fn>G%og wQAZ;ID&;,I @Chv܃lsR/ 禖eēD{n=U}+J_@k`vw ;R _Tc%c4%h.Dшh̩q !KD:lř:6.h74pE3T0_ Ne=9 1ŋ36^bY6]A!O}d1#繟o#\Xbu"Z÷v_+H UWk*_h-v PgjK [1Z1]磭;:>EbCN^Zk%/7.-֟;Ρ83Z]HLTI|V9S=35b{ $j\O ]v-`&B@A-C1\8Ғo֜yf>A*"Z*A_ O; ;57ǰK鸄ò*>V#Z;␷ogԒS$d׭ܕH[b93p J`]2ZA_7j\ (+M*P,[a.#ecƵ^PZ -iJDj~FD[Ps1ȱo!3h7 $T^ Q%ɗ&mvfqoTNT(%3'jpH*m~VDeh;dl!#=Ff[hq5Ҿn#LClm[e )N "igb-r!sq+80MYA).MJG~!|_.nKIj/F# S@5"fT*[ RU K!jA6 b {ɷ7#>@ H*iQ]>MEnARuPIa9hE{2huApZ(\*Y`)m4oW(=5$ *6nvH--jm,;0n7\4̙a3I,l?`ɦm{ RKKD8#,ft+bn3b6ʪusL.#CVbl/6 vKnb_c/%|^Ā'0: %.=zvueoT"%'`qmY]KjX$EnaST %Ŀ",GKcpGW&/Hog-u#Cm1T38-ZTQhn1D}cr-6Y#j-)$@ tH z)g3i|M1T ,k nv-CNmoJ<®.a#=pxd^1P:YvG :5Heԝbo75M X4H`SLE6ԩ,yl8\&3V)" >) ^jCO@><&a]HA4"@&= MƠ`u nw"OusM]1 @<=Pr]'ߚש1t-61uAY?`l{ xZ,<]!XMRX7wM_S{.X 1(())D)6ʦ| BpyT̄iVe]+IDATAAJ jt`..Zmz*M l:*P^p[h`]6ɒh- ]ݼ1Cw(E?**1W jBi50;5MH/\fDD$lxEZ6Gy&%qC\kTZcϲ^]b[ؗ?lZ;I(-IbӊzfԪT 93̇d0fvMY ie8{sMy:.dbT1Ob{J9vɞ){eKYR{S#]pfEDD1 5&(l RRi *93xp^튌 .5QVjT7X+7(.JXPu`l$^1~qI š|` I%itܽhOd%gBX;^|h:" {F R XUBʺK-Ɣ́/͏oG[@fQ.na-&ϵK "z`#j,G]šK8.^A't}@\ڷ`!**V|%!̱u o:Լ-\j"\(o:^0Zn=7B?4zmc@aby&ۥ6-bﶨnlj6~^3534% FԴ]k>$EKE6*pʉNL@Dw V̹ B,_/0a7,'\f".2(ѽz-*v&ԧë}RojOCié%^ 3ۘ/H=?rp.y}Ig.^\t+WФxrxJ@h*b)cg9̗Ԅ"aVVL .3"O^e0>K ބ;dζ:-NcNL.y61zB.PoSA)LҶZᷬLJ"{gR %R^2sJ5Lyф64æ'\f~a}*NLK+}V WC>N1Es6L (:ǎ%^5a=9VS#"l (tVP0p2(zöjXEP]L 6ch[ {~sHXw;oǶj#|ta/tXq`[A +S< 6S mdd͛$=Oq5$m8@|Et0DB9jD?1sa¨yPm ,# {xY),DŽ"ֽavyяr]P/(f |EDE%RS[,Ai Sjb"4pl'g7Q&YĚ<=TK]\55'(YM&J{{w<'V5%HR-w͂ z>اm(f %QyKHad!X% o Ti/pG -py~yNۚH  < ĺ`]\JE2(͈u>79ʡNi : sQs nXsg&ٌACEߕ@wЉa1DXNqKH'oii37P #ɭ}[Oq鈨"VcpBLj 8d,v:7a>b+ql>R~ᎎxANCʄRP7̾~V ONzmA Ь>۶ns)y^aܷ/( Ԉ^ieCjiSLJD c T00}JwBՀ^k Z BzW1wA&] L$SĶ7Ge_@_Q/|"Koe(~ sm.Y5RI3׏QB?fM1L[=R*GBbB/^pb 7}o0끳|p// /8Bs$a?סʶauӱv7i ,CLbm V1%5xi$׳"~ &fzűqS ocEf̓L =BrcCW3:9̆j-74FsA CAMIj7fj=V XAʥFQ~H銟gNq\ĥp ^`d5 &KSj.b ҜLofO z{d3idJX/?/$iJmXq2K -_#&hf8SPz_7FlZ@źRKpf$F)sur)_uxRn{ǖs=wD[a@*xae_ƟђQ2vǓM ~*r(@~/OK1̣SSxRԹLn-Ф[d ڪ{<ZuVL\vb[xWJNZ>$#>6"@A|d8A=M7L$Bib;x:| 1Cl vh^`Ke4eTDӭa R{iNd J| #-5b.aZ-st,=+3(PVY:9]\JڛpuqqʙG_*`Ump_Cn~}]Ja"^◞MҽX]vGnQJZ0ρ-ˇq=pU:Jol_|Ըss n%*D MX|Ƿ:#v?󛭻}5()qͤ#׭xo}T\A`=}7ӈR.<5s^:IfwdzB/$HBa5b-h|`pAC}{L_&m m2r?ݰ1Rf6VN:lU;ʥ&* e$ @\%Ce#-k7Xs2lCv9#Tv0J%_a#x%2@O!2&`#\m]jsZ$8OAߥu1p&ӈ-~ {+5_^(.zAJm5 Q+糓"e fcj߶?0AaBkvt1vQ < T%98п*SS\J^k@i0}g `M/xgc>A~>0sLl-rD)`*b>1@ ΅|wũjI&T@ц.ׇAF9 ^@C֊#G,3 E*Ԁ% ګ zq^I?FjKЉc}y(F,]>>u'η*TDVe}/$RƋvIJG'OWa V0ͫDmsi=U):O >wϠJg/KOAgk6hDqfaF-%^4PyHcAQQ AKo~|:}1GN n0NW_*;Hk# UņAa7ӽQec Xa3fIρ >:h_ ypk'8SBn&- V`=/4}P$Be7?|2;ΆA-DIP43q/C;B 0l(2lvu 5q oG|=׍كJnR1"Vb<ͣNkۧH;A I e U{5"V_` u/ %Pq6@,䏓g2UDƼW2#oo栿 cOzpѠ1h0蓔4pĻth`SE}0WJy{0V Km׹{- pbcI"z<k|}P~i4HM%(3_ n}.lƼKמADwF  )CAv ^V@p0aZd:`rA&]u3&:N p}h2Qfa%KJT='eƛQX]umЖ*EfO+qCoRGT;3@m.F+Z*/IJȇɐ+{.x5)X*@Yߕ-Xter?X#<0~QDTޙpURqX_PZM#63@U5ݏ0FCw N[*4fDwP1Ԓiw̑v PE \%-B͔ XWff>@_ʾB!;>4BC4_ ;X$qp\p UN+jXsYXEA&W/ Tg#c|j%V@Qj"n}t O/2Du{1MX1?)w, &L,j "PR."F@_6 e'1@abF!Dk$Pع)5e8:/H De%)mkgN0u}-acCG,4{z `XX9wlY;@_76goO~w/@Zw)-5̖dr:y31钙x NkyDGIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/missedCalls.png000066400000000000000000000130561221067027500241230ustar00rootroot00000000000000PNG  IHDRFFq.sRGBbKGDh pHYs  tIME 2&KIDATx\ۯguǎ8 5J4BE1*$Mx?H,ؤRI"QDx. T!N >g_0e}3sL"PN3|uZ{C(p@f鼮Gw-zy@Tu2^pnF7maǧЏF #~0OOA_- TusC 5(ܦ)t'@0pnod*l0z$<  ~zO +;}xfN\!OO=k f_&xPTIv*tpOoƱE5ѿwׇYtJFBxv:ڟ gO$4{m&8;1Y߈8?qA}a1" D|N&7C1jӎ{{'|C mTePi,Ɵߧ#ڙo~x%Oπ(9(-SO 5@Gꌦ?x}ft{:ZcmW)uTgl N]}R-HIܣA3MT"([!Q zv =b\[,VbpwU,xEr -5RD>LN|1#M<ӄ{XVp9F !Թ񱙹7}[aHm;ƺ1R_8zk#Dmѱ;acl(0Sdwg[oЄW VK t`9:H(&JH#oUѼa$ZiPFIHnPԳQ=36QP f1c:gGiG!'tπsى8؉8wxq2L;`T iq)O= `.?۠NQE|jXPK=ϛ "Lbv x8F*"7cvaԚ)c-u"]y$4ze)C Mz -z9(1< &͙UMc Q5zC)y Ml]¡qҔnTLPCNLƽ$GV$NpVvy!CY :DEXoZ &t4{N-3ð;(]Ii7gJ|Naœ`0pk T#EɎGT-!P4`pF"z#P#fL$':0 l}T.0Z{:gׯ_?|:ydX,._QQ1]x5;Y5Me#N+E3N{Il6ݔכo)'N84M\.9R=isK%z }13Z8 rf2nۻ?O&K/zȑ#c$-,X[3 F -ˢnGMUgӱ ]R'ެ t?2p^$Ikkx<;m7nrٞ={>;b1b4t&u6m$k6 U9j2oY^OfԴseDXT̀g]i^<3INfkNlSxnޢ'lgg?ΖdFy%" IE:oqS*)Jܭ6qI@.k(P14lܼ'Қ.٩f٩k׮;v NXVh-UY-T-Rvv|&E>xy)5QQٔu$*mD失Tj5jb3r&D+||xF:TEq|3p@}ϵ*j*3p2[f*NW|gf|6[^;Qo~1"Nt&u&Y$4׃P!uTHh+ylmYmdLpYT#YA’rL 4^0niFȃFΤ@|$e̋Y^I2*J2otUfb2/fe^,/*)R5YV3+ KHtZ51 6V`͇jxIZtj1EZS&H,eǫLD\fedYE@D)Q6M$dI 7t?Vkc4r~7JLߎKQ*cT%TE[4i2C@4/BMH $+V+Gl S*B)o;)M5%?MYYViruUUhY*Gv;Vy\fRi뼩\:Sm2fFU i nRX[T)XjVXL@'O ?NcF曗gmEЕͦ뢩QSUfʹ^vb^NLvMY5U]4u+|䵳IQ7y4ѿIm-4(n)a3RأG,Vu뢩BI祈4.*Qɛm9j6iLm9iJS׹z5PΥ#dZ:4)Ih;M7LXoجחƼ+P[mPׅl%V[ v.:Ӳ5e9YYϪfRo6ӺM(hb%19hC )BLsZ$L}{>DZ~sH"^{@ _~t<RHbիnZΫj^-bq?\.oi].Cr[j׫nN$Hzzxxz9ZXiHm]/;vպrZ-aU^rZ.MX,p?\/Cj[VJ\Dh䠥 vk:H!b9s_ْ .F7ܠ$q\ّv֪jVը)6[ɺ4:ת.ae5j6IM>=2s&t6 9_糹1urI-4-8&i T(eYuΛ.Nx Lx\nzHSGK9gy~}-Z6y6d)%/d7JD4}D-0HWe|ĉ#DZa^ǧ)! &OK&39-%ӯbTdG&щtTeDs {| k`X4ͪv3?]~ޝ%ԍfidZH}6 O~E3%}wpG>u]+6M,99ZU4HSw$9s桞KIK1nkeUlfS9Ӯww?IO&S|>Ň ,SnUo1td?=2 Ο?;oI*-dA*˲!O-Tw=qcW L Ɏ☸xs;vxVRāB0y{d]L<%q~$2>|u/l6k^}Ѩ#+4u2aĺix.&H={@K+Nsr~`#i" Hؼls?W_L% %4}ԛ%7xטksKvQDDm{BCw?M/q~*9<7־eCL8(oRDi,KBGEp3I#yh B$ d:/^x i1ߝlM]ou"H8c)x{В$yC  9?fwl!1"~8}tuDR`Z`` S}G>\d䒖^yUu;IUci#~>r-^o^oT hCS ?>0׿o&N28tt$OMlYj\UjCUM(7ELMsGQ6nB@ ܑp]مa]4/w4_aX%iVs(d/(2dTR/,JssDFHR\6C6E$3Fwf]N΄42l  8zZjG4~ꕷK4(d%i ,tjO@s9u禄( ,b؊(J7,ȱxť߿x|3/R ˲mۄ`'xA<3J!X DJ|pQsJJ8R)Dѡf̃lFrE  OY=gt9HaflRPD] I|cAY 2[*t]G\FTE˃5H}Lko@PAlH$t: I|GИĜ!@/>,4Q$IzMӠ:t]GP@<(ڨ5aqνBxF/8I( E;1<9 ~ٷ(PUC\$́5Ms:P*fqŸ=MH_bC1& ;ఃmas\_q@#Y i*4M<.RbG{E6Fi'<mqя[XEajPUrKKKE,isTp?UP %(=CӁav0M d27wFo=rq]du: , NZ b#۽=g##w/bpA ٣ybXZZs=Yt]YՆ*bt~-f;J[5,ss dbq"d*#/Ɩ9kJA=^b 0`BgvMA<N:\.l6nak0W(AN2`1D7\R((@*~ՀQ^Av=N<q̼V 9C$<Ξ=yBP.뺯O/ﰫ;ƽ?ު]^̑xzpz,˘ٳgq b1K10]S`=svf|xyylQ'MAp0 ܻwi \9C& D"vZ4;<~ԉ@S1M,W^A"'iϮT*WfGšjT gΜ fff:666|v^ $bAگ_qPIX^^, $ L:DgzN]}jeBJlh ilt#u]j]}͔JUU}Ӎ߶m|>ǏӘvw4zܱyC,$!L6b7 mo:OR<4VVVAl6vBuO5F T26iܣҪ1뺰, (brr'N2fggFh4jXk?03˅v<-(ͦeBgΜq1wBu_n'^cdCVR.qi2 .\ .P(qCuD~,Pq@`DhQhs^0t~E㜄j@<^Ӑ㚈dYƹs簴'OB$Z-_>Hʤy>)mٰmKyqXx1 d-VAuvB@Ai?0~1 Ft(m@)t݈N,ˢ,lj]_v??^AL?{aqujm0v pqAIXjUUjلEdY&7QvXI9b㵁Êm۴Mrmܸq[nqP,`7M㭍 j8)QqVcXrУ8b[,+޼|TkyEii}Yo:i4Ae"28 ӸEO~ 5~UeYh4t}}\rׯ_vyiEj48=lZFQ,Ky~4v8v]i* p5{7WUMN?ZODZQ*Axn${Tՙ811d2 EQ,KDQ"~ɝG_JXu?0JnV Fr[rtK!(d*Þ61C^8'JI7sܹB>D"N$V)@iՊ5 zveaWV D{Ez8cĽG < xPUUݎڱLޭT*Gj?G>fRD"z5^z d.W@Z-ƤXL(F"ʋ,OI I"@xxW__Q[sx:X~#7*†kzF d#D`P>л}C,\eW-˺g ۶o~C5Mv-3 U?zkZIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/sliderbackground_left.png000066400000000000000000000027531221067027500262160ustar00rootroot00000000000000PNG  IHDRMSςsRGBbKGD pHYs+tIME (!BtEXtCommentCreated with GIMPWFIDATXýYrG FxI'QT'tC"W|4JNI03rfJ`h4zĉ7OOOc&͇9vA}>{Ccρj_tȒQP ~Q\v}w \l} (Êb.o/.PMvok^wZ6ă^T.SU_$}Wi \^]ڪAr]f\pWb Th}M|٬;pyhnwq}}큵 Uz5'\\-C}hyT(B-'n{:tA@DrEhޖ>vF WB\#MЄesw1p\ΌռRm U>N=7Tr س뉑Qv?B3^}7d`0~v0ޮu. *%T*JUl<ܢyұX7;!7+2d*5uP2HU35[;}RXAx0Q'@ea``DzWeEĢJmeN~0OQ⸄3[tZIcIqDv72}2NEFx.!q+axCc3K FC8pKk#SɟAr̘ Ht?Y`⨾Y + crM^uU8þCWh itp'$4A$(TIФe/yŵىxy5ħRJS,}dp N5PJ"`vuB$UuN2tIuVv>W&h-8j"7&:mBϤl*R!)RV~'EQeDbH=dֽц'zP80DM$荐Ex2P|b]SM'I"!~ +}]![DIgra0T1m]?LpHLS'bl$B0١݁R45ӸeDItIuf6.TϮUq\Z4i`ij׺7.0/)VV4U[| >=][p=V/ʒ*'D x=^#&k!kJQrs#vVIBgx@?k$w=Ϗ#1+9> OK>~\&`9JtPG"ڇz'\ ݻJd+\X\C7ATT,iec?!TCTc'c %+ IENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/sliderbackground_middle.png000066400000000000000000000027431221067027500265210ustar00rootroot00000000000000PNG  IHDRMSςsRGBbKGD pHYs+tIME '.U9tEXtCommentCreated with GIMPW>IDATXY[#9 #\c9·]n`wN-,[_+<~G B(H(@5 I =H .JͿ}ܵ(0ˈ?I8vOHtܮ_|+c]^OFPO_>Y |Hj/GZu Id@B³.hGXM-&o9xvG^\5ufL :)Ul%,vByBydL@=I/sƀ/G#Nrb$obtS97[GkI^7ُ+i S'h 5Bᓾa[8$$hn !!Y 0xY\;y"'vhr|A00'2 =Ln!<_=(Ta&H# x sF77|6DQy9,h! IoH 줎0q5_ow%6;?fݏGKEl)c#ڕm@aˇysJP! ¹1mҶ\hu橍tvtBBoQ"7PI'G f`+͐\gO@ i̒N-\(h>{E|nÿզpѠeٵt6סcQՁ!}=[bh7}n4xHBhϣLJS3G]}b?R&w L\=tĔ=ؐ'e{✦? ]ʌ?~{AI$wZZ}\L%`yEhX=[,襘Yjr9 ?T+aU Lf%МVV yi6gPN溊5TT=M?|> nuDQ&zVu_Toh AUl- 1_2Ό5ȗLņWY)G2dMh/Yh\u?5$KU`[owf[nGdM[ qs!Uj?tק6]\4WNV'^-k͝AD):rYG dl0Ma#`xrp/C.򘐬ѫa׆,|e=׬4L #{:{0&|~xp Jp\%NNN# (A ;HBDKJd3rYYyB>?==m ~˝,̴.V@Y|ACPzb "+IR!Ged45Cog5KD`XGSW,NB A,geuZjer2$Ҿ/*k ["ז$Ӝfl5 q2nf46G)Hs98qXg":s2(`pNC[ae0eC Rm:7v PF'+4EGl ֚Cؠs=.. KŌߕϪ|&#xlkVhY`DV >Ul lZYq8[qIE%LI!Cו [˔SX"[%4@lXגfiY$R:(K|8b?srQ}rȑMب2$.Mܠޭlң&3}ˋUPoIsܢ0|W0ml#"jd+g<1AfŮf]EI0f)˅mХZMj7,yz^k%p)X9Exwff<\M]""4,KidThkx?KKHƙz80'wƔ!:0x! DV~AilP.C=ca-jMvKc4{r(Hj;1"3zO<+= |ZTvR] #gD&q-cWqİWTu%NmIhܒi%ğc~o-tIV;b;ްUǔKsMl%Gue8*R]޵AS,W;uRNӧf&aG|qc/׻ 9MA~n> ~E@`H !@"HD!ݒ;Ѐ\>{eeU[KuoU֚5/c9&64ՌG gQF@Ci oL֛| EVD8^i8޿P3$"\. SmE#($?4W޹qƭ`z^E_lٳK:gF Q1- K$Hd{*JsN7y8u28Ij(ODHRWwҚ 4QBN$noH r 8f*=2bB$Q`/@_6" zv̇_QƌbN䈩2ϼ@pԫiPK7٫;~KoG *c\rl0n0hlV]2e\vbԖ?@ '}F$ Ec %CjQMJ;An"0K!ڈڱKÚj4fOCiatP sfa{lh|njֳ4;ǎ@}#PD}L6HB|/DdKDI'^daE]&dTCԞ+|ը05"HZ$DI8Y4@9j t8fnd*(r$pHbؼ$d4%TRvL3f T0X#ϡ`s8\=ET04i&`1_bF/ޅl–SSA*8H ȯGJ> QR<[fD@X E<˧bQ =aV14O?KIŀ'1\& tleAӲvcv.de93cMCL9NXBd \I.""$zrЛb^6F5PS{r| ÌA,12I$wibB(pJ`5"p CAW9Ήs%њBI8si*Ԕ*ar:;ĮWTUUU-IE׊Ӧvz%/ϵY-Dz$Fhl5yLTGו5Pk;*Zm]Stڡ:hm*uʝ^|jжDjS'ˋ'˝zuL5-)\@T䣒xCϙԨڡ%ҊS-p>_lmmMR=1]ſm_S==gMSHBvu쎏{{/Ç׋NQPX7JEK,Ô!tr/NyXjιj@??~@XC'[Bpq>dR[W.#4gp4!_5 ,ؙ펊]L6N<[iVbڶ|>mi7T 0sBoTApaR%'3inݟVv])XX`>1!ӱ&+/HI& `.d&q;6?@xD^Q O'XקSM=xMO0#ͳ+#rPATUH.6Ȩ@ 5\:D%GTU Ё\rbkkiY.g>q|Ͳ`Y;r@i1,{޶eHEu]ŅZx=<#Ҡ% O%gA%)={VٴqY-J~vOaKİ.r-X^#: ݐ9SDQ'1b@ʊY\AN‘+9 QU5ZV$"iYkcRBLPjb<ҚEAFEc =M/ՉkMBUFYpBjqH;؎25%2%>jʘj +SNZC!w A@:mJuz<_1 P~ѻ0=n"UVQURP8gcל)](6*]ݟ=X\Bo;mkiZbP mOt>#P5 jK{f;;;tĖp PېGk6w\CvXn׋n\tzԅ%-bcC(Kj8(cEg/68ߪ\.q-\v 3JyiGHY?תCZOZl._ZN̐GGPGI=C,i޸dUSԶm5{{{x3-Vtk@W:S@w<m>ŷAvWOO~̈&|;h( 7:TaQO3m`!Q웒UUEɿ `+@@ 'Na*{X?˫->xBA[s22{UPwa)J9^>6iJ{U PC~I/tXĤjdBWE-c5P6b{dV)|8oAtETڄS g8¹iG޼ϰ\mOϟg3[p-G:|Y AkN Y#m5fSZ0&3hՏ}t؏)tm4BwRqSg zպLOF`ܑ(((6@}vhrƮ2_/tT+:b&l貎lStVLUa((L ̌4 4}gnmTn*QG)YCb 3rͷmxn$coA@DY#"ۜehN|yE <ոf^Sdيfybn>FU4͙s^X<&$;ܴ B_hd/)myn:,'`_ƞ QU_FF/{C|10I_P+!=! f免ulFeCXwwwW^B9;OygR{&gՔcC/-ͻ }uk|0+dJdB_6fD^{4s LQ;)"MӃ9Lb|΄rP ScG6!ny"Ra/XkG#EE^}L 3`(.M-ۖ~SjLh=yytKƒv A ?~|ᇿ()6gm^KUUd2˗cu^{3lltQDvͧ:_+xv-zdhmX\,ŋ'~ \Fqq֣*vwV$N=]\G34k G}w [kXۆSyΝ;rjUI:@s߿t{aufoof](D|❗|͛7_K,k.㿝ZON^nvm˦i7Ѹt6.\hy+"#=ZfV㗯_?o/(pāʀr7;iZ6u^85n]6j5[t@N&N+W&i;gEIm~M U|vߏxY%rIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/unreadMessages.png000066400000000000000000000135571221067027500246340ustar00rootroot00000000000000PNG  IHDRFFq.sRGBbKGD pHYs  tIME 45L2IDATx\Kuypf8ÑDip$A  ,ɐl-,l/>DFH,Y&Er3sEwUΈ{޾U;9us~^ym,Λoyw^|W^M aZB sԗy~y.e%( @$ԵB6 G,8fDXx7Cꫯ^=BPoI\HǤ}i3}M؅(5nKo|*8ZC%cɾ7?'Z#[~|Ow;gڏЀ4A4$E/i&HQe kF01z 5}54sA/܀ 秓k w9@tbz?s#Pޏטlck^ LEL?(4(laAnܸa}ݟ^o nIjyM_j6:$;jt/8lAz>볺hRҺ[fPu  tD'Dk7PiNf0a>znr?4c3Z{QW`Q\ KYDߘڮV"?M$uH4 jk %a[ P5m|IUkX&">kI^zաDT{@P&5uKPꉄݗfC)Z">A_ՙzВe}ltńϠM ގIP\U6LshvدIjuCT5 ૾Q(XE@*/6!h%((ERmEَLOXSlwMR Yr6D 6Q?Icz jxYma֑ MИ단=fEٸ`ޢ(yE (eMG+i[IFEnhECi42#:eMpm'؂ Əap4d¤I}l=QePccJf`IJE;Mgi8ќIiɇO{6 HOm|P/AFl0zw#+*sw$n&FhXE yO4S>*6CZg聬W"NjA4@'2mD1D1/QGmA%z+mglDuI%TphửmmIZxR[hL焙oIj{[SG5v7MR|Re}cN4/05mpl"RCx!/Tf#KZ2<*Z#`t t_Ϥ |NQŒh&T`b]&2qhEnͶ61yXcZӭVZ-IJCGcaΞ {hT EQm(%] dE HLumoE oQ^t*k֙v>)CfECfڿ௱!?Iag⫨ -ociȪR1JA4-ٸD+MHIRI42lG)[!nF"mHoϡh")'^H$vlE(sFgcM2/*7Qʄ:)/2EctΪμ%jjDG0]0$ĚN-7UK=RK!sQ8WNEE ""N>X[dYɍZ[UN@|T-Ӫ&x~kl@;e oP52n_:|+,K*sSakw}rh:pb.#eimXx !wly1vT QU&J|R`؁f Jk-5 tx~*f5ʲ s#,nŵ/-p5';VUfMv%eQ|RX[ˤx#`$S0OU8xu]wYdٹիט9%J5#} ؼeN6?d;B,dd'/6,/|:#K1LF2C242E%+Yƍ G7~ )/ 9FfN` \߰?} &]c Agr*E1u1٥ɒb[.JTXA9ڐ c 7!i_lz=SO}'''592x<3K_BrOXYYa4s}Y%fYpm-I5X|68@\ 79*)➡,˪ʤ2W֭Ks,y$uȸ΀cH]IKʭ i66_tݎc'!a^uᐯą! 2yR_x49Wsz5|XZ,6J и*֢LÕmy^ΔO"7x13_F1NOOyyUU(EQP10ǰV`21eGT(F~>8oAXMj\{.Sj;vYVǤo/UX$}-ȌtssDK^c6a0`ǰ݄T m@>A> qϲt_M]cU.C)NJ+EY`sk{{u(n^r\G=[\ bpg8=;|h;8Oe<5d̪a唄r@V˺DAo.6,{;{>d<,|a]z=Gjh UaP;6JR G`HOs@aj˸&=בds\z?q~עz&oaggidrsL8{)u vVE}栞6WIL'S<p6?=,f,11,sZ% 8PYzXIJu})B1T1/l~,J\ڿ !6*9Z崽I I'S6^GI/ e1fyȲ _~}|vzRM,f Xktжτ6f!ڶJClCmzpF^&&]!;LUU 'eU|zS,WKX&If ۸5wº 7 dI\jN&:Q+i ۻEPkE**q==4.?zEQ,Ke7Eqܹw'\/돒Ujb@&`kҜSG &y<_c`0I*A8qM:*k1mE/ |ǾKoGo4CHGMEYQ ضC8 y0¨TwDG{ӯBq|PEtQ-iZy|_<K/޺Ija`(pu97eQ־qu] h:(,X,(ˊ. hLfi}J'g ^aMvD(:?yQPgr <79En˅RVu" k+n&85E\S'"66|Ȳ,C#$0$-FCށIw1(&LVUji]׃jŪr".A[0$酂F/,d8[[[f5O*1twYr\+ƿo­s?|8ՏaUVq,eY9PVH/і`T1 c2@@2d:4 o *D8?]ݓ ԩ3|Q6yNc$S8M /?syIENDB`libphone-ui-shr-0.1+git20130901/data/idle_screen/wifi.png000066400000000000000000000010731221067027500226120ustar00rootroot00000000000000PNG  IHDR;֕JsRGBbKGDC pHYs  tIME 9LstEXtCommentCreated with GIMPWIDAT(u͋a^ L`BeiJKYZ*R?XdžDz"#b}D:R@.w3U`>xLǀŔ6Rt:T?xQQ cQy-p7-9= y`V۶dLM,u4ʡ6u> G1{EAe 8x+uoR>e"Rł.=گ~Y8od~9_3\m6oWw?̯QyǢ%u70/ %$_g}M9 \EbmQ"a{3L)s-PpѥyމHo0f`D*Dɲ d 줩ѱ&rp}@rߵM:? cPENE%`)GxL])<6hҒȄj- LgcA@ZWBX('j!׈,G(E-D#-!EHg]d*iB:eA9!4Fu,SzySeIKEߒڬ%WQ l*ભ{~|/?dj+҇`7kLL|~O'g)+VD@Ek2%Ҧq+XHֳ vTRա S+[FVWFw1iSsW`S\k.nF8Y(%֙]6E[9h4"J6:ݫ+qcljbߓW7U;-|J})Tᇌa#ZzC .mLt4< S9ZP\g@!V*6%<&B;j+r]\u@ݘuD7=bKʶr'ErŬOw~Njr ~$ph ."c^$ŶbTTVkbH ,t$`_[*-'ήz7 { ` bo+`mkU,Š_JD5A{Kޢ*NILv⛀b H]vx^*orT i͉wrxV`KuqwvHh9b1A&MnyҺKS9 *ؠU_3pb:d CBKq{wRJFG&8XLgJC'2T-0#}6}M?+}φuaOoH*VYnp|=Z-V6Xظesϫ0A[ZtзS Bi[R2 mh]cO)5}UνGA,f*ְʂWPҔ@( #VwI 3yQ³ӖIC<˜ǎHz^1$Nux!׊dKg'us,x"W]&%[Bv67߶lmXڧόyB]. EisLk3vɑb ZD⥮fuP˳2TJJd*yoR]hͤ${}JǻtAv8asBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDATxyUz5LfI2$i@DBrYBE_^rEHtPvvYdt!LLf3kwOwy8ճd3!|3U]Ns9yR2}ڞ,^ȇ!OO{oRv~uB.DtC޽&ٖ9ނTb P.+iR\Sy'R>ܱ/@*ѩ .=+By'@w_OE]-ul}3EOwb1W,>;t@\bcH=@綷rRSCqKnU!}=XF@)&Sy#@Z$ _k9神]Ks~_w^zv,0/($a8Xz@ŀ6{c}4G*kA^NkA`Jt Zδe9y|'_ˀӁ#.nP18컖8 ޹ Y6m;]։D +Q_$$w{%ا #2J%v?콼>r! %%w)ټnԇ, %Lbj׀Jݑ]R&>M_oV,(9Nّvh/ޟ7GX0p c o_鍮Ф^1u(^\ (ب$ۆ&y{$$x% ĘyY_wc+wL{ 1t"lX?sU\EłSr~Keu)ČDn~כ)]ûtPbLv> aWݫ1!-B31e=詸y~z :"RWoRN.ěl1Fu5 E6pѰ le IE%]jy/EǫIEOV^Nz|#L@D+6@UY\@~Ɨoص R0̹PJ8~k$'NtP6'HwK/$|K =Ҵ\ޢhGIw6Sbl}~󜷶>+|e5~DV@=^p/J)#٦^KSuc3)`-DQ%*Q~V"8ˉ+X0Z]/&3(NV=-,^~Nh~7S>پ3Eup;=,S݅? .S4d{V/9^X3a8 8Sj.uU픺"C`s!l6oCQ@~wt7%ڀ}`4^AU';_|qmͣy{p =tI++ %  mUmM/ұ ×,6M#nv]UOlnZ S )oVV4G*"i8!Ziv$Gc4Uw*@6R]HlN4۴Th)h..eޭVn%kX'NwMtYx'#b-*2 9LѸX]Od V\F Qgu=Fn XLb߳Jc}̎ζ"+ uROH%{8<^ꎺ)sHHy[+=(e5-UDf`-?Pa$L{ϊqV_@c}ua3I+2M0jqv`QV0]Bs0+2Ia m*!?JZZCS;p N-ki<ixD@@'nyna6/sZo_eRĤ0"lwK .~e֥iI/zBRv]iK:z\fe?'"V,.ُn 1s\xFTL wdP Y".lCW>_vVsǺa]2:*pxfPy1ә )9q[hR2\b=,c@Rt|K̽(7G_MUY8g ¨.!nJMբ4KN\UF {1y 1?-+="-)!N[Y-@R X.!X9}QcĹo=~#>N<Yb u-_z@1ٓ:5P@A:}[F̓1V=+IKy7%LK]ʴ0ABd:)S־v<=w3_&xe~0&G[]"x$u-% 3PlcHIY4{{{"?D ̾Ynw/ZdGs-cP.B=e Cʲ2p>rtm>i~xP)E@-S pQc}# wa۟6:f@tu40}b b6 > 4Mk_M[54X;(l)-k%0kd$- _(X;%pJ ? 4 ߝe-sh[(` X&/,F PBXޏHlہ\=\l?}:q4[xF˴M,: '/D +%V⛶۸7m,}sn  4c1w>@3T}ɕ)h7(D.F#0( PnsFsmm$l#e1CzbfbMiyY*&\rMpOk?T':;P?+ gؒ:Pf`]/,F)dG?qCyGodphfX_65_1_w-*ް(\ Ken5-J k'~M Ky3MĚ6ۼ7e=\3 266Pq ,M~'uM7 K0'u pͰ)hAg9Lu, {(p>@}DR[~)oEẀ~!A[N|z5ѳnY̲KY"FqM&a[(k5V_>Xc) R%pk5t!M}5FlKa+.&twRZ6u/9,{ej-3qFJ'u Kn:WGSzpUY5We u\Ycӳv=YZ{iͺ/s X 4- l?LYBp-f臰!G?6expUS WM%*s<.o:D)'2ecHaH'&$(l}okV $uJ iA\gW]k];mU}cmiw.;fW#!c30& W}טn6`R$.XCiSu)a}S;w,ftǜn*jW4G7]a5'3ȖF-al[Q&cĈ(삍B7%&A ! OrlF{iN7 gPH{5=tGխYTnh3\}ao%*j9-D *!I 1 7ޛ;J[AA tњIesBYLq- (,oNmA=_Iũ'ᩝVVTs l__ ./~W!a 9ŸE&Fq[i<5?@nN$ 2] .ZV{w萑%2v%`-!@1JuvtoIbC^@1Pe~: xClq?;j:ü`z\l$:ɝdNM'*͵1q .H)pϷQy+e0Գ hMa:3$B̟G1fd[勞} @&}eœKKм-~@$Wd[Tly7W/z\oIlIlNآجYuD c=&IA4/%=gd>BwV^~PP77 0. %i]kzvz~ 2|4?wsJˌoЉKߐVMi8A)Va+juRo=7ÆLHټ Q4m>ij2B}1Bҽ1n=kGXKha"1O 2 M7dzIJ᪵oV3~usqAW{ < g}+pLؽj9 R(W(nJӦ3ufBEHF;p74X@OP{i RlEd.~hXjhUlӉ>xtWR{,O 5W&z]@>s'ꕁ/ !$GAqŁ9)SΧ_  U]IOCМN\Օ+8D*-O y;:r5GUឫrpϷa+Q:ʶ߁avۍQ XS} ~(%aZCxH+3 bz.`ƉR}YV{T', Q|EE Gꔃ.瘡Q~R6\m aG؈ X]zZ ?/w sg*v׭z/eر|ĎxPu橸ks& n:`?xJU!8:6d2pDM ֒N0V b`6 1? =^E+beGgZ3&x^E_(x0*K>h*܆O8i=86NdA.Do,2^sw$px5GtA$/_FM 4LD޻{m5F)MgX 3 5 hHӽu_(Ot{i 7+sWpMFwef DC4ev3ަ Q>1E)>2e'2L`pփhQs~,OL`pmp T,6GAPlft3}Ɗ) ӹiK0E)L*WUpQSfpu7 TaL@#?L`p, d dɢ'-08jڳ9"3kEWE ç 0E~ $X(kG _4 2)){;0fv:#E pU&ˑ@&>Pp&j@Cޣl|b :0}Z^>&-/ *9 > y 5Rhy9/?#[40I N~D͗|P+ر^1OTwV{MH@{jePpTnG _(4JYyH#qaPt |5Әt8 IS>ĚYc5MkQIz|;gHa/L:e+x7lפY.C| e~k3F.^V9D$%2F&m%'u|ygQhe?nf9n+M'r9` |.FxJ徇i)l:tf~a h'0VpL+9'u6sŖT# z|9y?~_k_S:4WD 1dl@E;NķlS7TVCP9 ځO;KI]ٗر)v;t.OH yIJ&S7jiM|ke@e9x)錼ǞIe̛k-}XRX 0#sT-9l a't4f/feKH၉zɌI99X0z;No~?gXT\U3\Pogxs5]wdqbο/h֟7gG #e*`R >큕RwLh.2$MtZw,*O?AL.{Z?O9s %h+Q|BfiJ7"'{&m |gh}e=#\-Z0iGNY=zz!kpeIDAT\uz֬w}3.d [I1"ӽ-S7gY=Xz+/aRL{یq &=2>"b8o5t: H;K _(x0 lE ^I)L&` )">)">)">)">)">)">)">i* ldIENDB`libphone-ui-shr-0.1+git20130901/data/phone-openmoko-freerunner.png000066400000000000000000000010711221067027500245050ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxڥSPE# FlK ;A dc!Yd +a  Hnrw b&9;W`7ZLfl&&wV*~ӱ!41v6y7 D+ϫ3 @рbZx<^H5T*%.K88*)Ep)xc^CVw] b~KF`Y΅Z0䞸CظK$LOੂH$S \.?&RӉx!N?'P9_}Yal[1dGF$@ @oJ㑉\.G:Zo2q6ʉ e@VjY" KueZ0Ms:NQ 1;}L'2u)IENDB`libphone-ui-shr-0.1+git20130901/data/phonelog.edc000066400000000000000000000140271221067027500211650ustar00rootroot00000000000000 group { name: "phoneui/phonelog/phonelog"; parts { part { name: "toolbar"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 0.15; } } part { name: "pager"; type: SWALLOW; mouse_events: 1; description { fixed: 1 1; state: "default" 0.0; rel1.relative: 0.0 0.15; rel2.relative: 1.0 1.0; } } } } /* phoneui/phonelog/phonelog */ group { name: "elm/genlist/item/phonelog/default"; alias: "elm/genlist/item_odd/phonelog/default"; data.item: "stacking" "above"; data.item: "selectraise" "on"; data.item: "texts" "elm.text elm.text.2 elm.text.sub elm.text.sub.2"; data.item: "contents" "elm.swallow.icon elm.swallow.end"; parts { part { name: "half"; clip_to: "disclip"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1 { to_x: "elm.swallow.icon"; relative: 1.0 0.0; } rel2 { to_x: "elm.swallow.end"; relative: 0.0 1.0; } } } part { name: "event"; type: RECT; repeat_events: 1; description { state: "default" 0.0; color: 0 0 0 0; } } part { name: "bg"; clip_to: "disclip"; mouse_events: 0; type: RECT; description { state: "default" 0.0; visible: 1; color: COLOR_LIGHT_GRAY; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: 0 0; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: COLOR_ORANGE_SOLID; } } part { name: "seperator"; mouse_events: 0; type: RECT; description { state: "default" 0.0; visible: 1; color: COLOR_DARK_GRAY; rel1 { to: "bg"; relative: 0.0 1.0; offset: 0 -3; }rel2 { to: "bg"; relative: 1.0 1.0; offset: 0 -2; } } } part { name: "elm.swallow.pad"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 0; align: 0.0 0.5; rel1 { relative: 0.0 0.0; offset: 4 4; } rel2 { relative: 0.0 1.0; offset: 4 -5; } } } part { name: "elm.swallow.icon"; clip_to: "disclip"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 0; align: 0.0 0.5; rel1 { to_x: "elm.swallow.pad"; relative: 1.0 0.0; offset: -1 4; } rel2 { to_x: "elm.swallow.pad"; relative: 1.0 1.0; offset: -1 -5; } } } part { name: "elm.swallow.end"; clip_to: "disclip"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 0; align: 1.0 0.5; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel1 { relative: 1.0 0.0; offset: -5 4; } rel2 { relative: 1.0 1.0; offset: -5 -5; } } } part { name: "elm.text"; clip_to: "disclip"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1 { to_x: "half"; relative: 0.0 0.0; offset: 0 4; } rel2 { to_x: "half"; relative: 0.5 0.5; offset: -1 -5; } color: 0 0 0 255; color3: 0 0 0 0; text { font: "redensek"; size: 10; elipsis: 0.0; min: 0 1; align: 0.0 0.5; } } } part { name: "elm.text.2"; clip_to: "disclip"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1 { to_x: "half"; relative: 0.5 0.0; offset: 0 4; } rel2 { to_x: "half"; relative: 1.0 0.5; offset: -1 -5; } color: 0 0 0 255; color3: 0 0 0 0; text { font: "redensek"; size: 10; elipsis: 0.0; min: 0 1; align: 0.0 0.5; } } } part { name: "elm.text.sub"; clip_to: "disclip"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; // min: 16 16; rel1 { to_x: "half"; relative: 0.0 0.5; offset: 0 4; } rel2 { to_x: "half"; relative: 0.5 1.0; offset: -1 -5; } color: 0 0 0 255; color3: 0 0 0 0; text { font: "redensek"; size: 9; elipsis: 0.0; min: 0 1; align: 0.0 0.5; } } } part { name: "elm.text.sub.2"; clip_to: "disclip"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; // min: 16 16; rel1 { to_x: "half"; relative: 0.5 0.5; offset: 0 4; } rel2 { to_x: "half"; relative: 1.0 1.0; offset: -1 -5; } color: 0 0 0 255; color3: 0 0 0 0; text { font: "redensek"; size: 9; elipsis: 0.0; min: 0 1; align: 0.0 0.5; } } } part { name: "disclip"; type: RECT; description { state: "default" 0.0; rel1.to: "bg"; rel2.to: "bg"; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 64; } } } programs { // signal: elm,state,%s,active // a "check" item named %s went active // signal: elm,state,%s,passive // a "check" item named %s went passive // default is passive program { name: "go_active"; signal: "elm,state,selected"; source: "elm"; action: STATE_SET "selected" 0.0; target: "bg"; target: "elm.text"; target: "elm.text.2"; target: "elm.text.sub"; target: "elm.text.sub.2"; } program { name: "go_passive"; signal: "elm,state,unselected"; source: "elm"; action: STATE_SET "default" 0.0; target: "bg"; target: "elm.text"; target: "elm.text.2"; target: "elm.text.sub"; target: "elm.text.sub.2"; transition: LINEAR 0.1; } program { name: "go_disabled"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled" 0.0; target: "disclip"; } program { name: "go_enabled"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default" 0.0; target: "disclip"; } } } /* elm/genlist/item/phonelog/default */ libphone-ui-shr-0.1+git20130901/data/pl-all.png000066400000000000000000000153561221067027500205720ustar00rootroot00000000000000PNG  IHDR(7~~# =iCCPiccxڝSgTS=BKKoR RBTi@숨"q"Ay((6T}7o9g}>F`DdJ<6.'w T @- m@n8P $ B2r22 t%[j;eOv$(S*@@&X`(ʑs`̔`)d` SGE3(xW\!Sd咔Tn!\]x87CP؄ ee3FvD9;:;8:|?E񋖴e /B_TBfgk+ m_ _׃  2r<[&q?.wL'bPGKĹi ˒$ IHk`~B[P. %w߂1w0hْ 4P6h>؀#;x̆P8XBHLC.,UP%BZF8-p<^0 o`A2DX6b"ֈ#Ef!~H0!H "ERd5R#U^9E.!==F~C>@٨jڡ\ Bh G h%ZBѳڋ>G03l0.Bx,c˱b6b#{";!0 $,",'̈́ Ba$nD>1B%+uc[!\H8Ri D:C!d6ٚA% ry;4:yBP)xR@\ RƩjTS5*.Qkmԫ8MfNEhhFyC+:nDw%JaEz=Ca1J~=+&ib3 z9c; _EBZY U| գWUGԨjfj<5rjjwY/i544D4i01VjYYlۜgK߱٣34545Ojr0qpns>Lћ=Ejkh4km8ndn4ר1͘klŸx$dI}S)4ti[3sf-fCZ||L OE57-I\t˝׬P+'Tj֨zu44ii50lmrlll9-/L6u}wϰ0ۡ7G+GcWLor ]3:B:;}rvq;7:$pesø܋DW'\߻9)܎n~}hLڙFY4xx>2yy z[zy~c#9[;vi{o?$L 10(pS_ȯvlvG#(2*IU<- 999-(yr`GryPGTԊ OR%y;mzh􉌘LJfbq4]ڑ#z-ںhT$Fg* Ki\˙S.7:hz4k]BX"\Ҿp骥}˼],OZ޾xEኁ+J_S}Ay1 W XPR$/}uuu맯߾sr}IERaofbC2]Ioot\<s--.zbFmmmMo*VOuw)y}׮zKv#swo}}9Fv~N~:],k@ Ç]FƽMpXy>t(h?8:V܌4/nmImmk9>x{{۱mDI͓eh OM?=vFvflŞ}> uzwq%K/s/\qu'u;w7_uzZ[̞S={M+=; wz˸~+?R{TXqϖ?7:zA?q)iŠ`Љak=x.{>>R/;^XW_FcG^_NVJ3^=~fm;wsw~08姶ANdNL%c3 cHRMz%u0`:o_FbKGDԂ pHYs."."ݒ vpAg(7n*fIDATh޵{]UyZkCfȅ!K (X@PoER榟ɞ9üəTӋF5F`&)(d1>y)r-KUKo"3y}yy@]sR.Mdwq <1$Ay'ss<Ɗ]2E_hS3f .H<-/~+K)"+k/Sy7==CD"iD yBvdֻ.?G{y]6J.볔tjE ʶ6hX?N0pmwug4^?&H$4 <[yyŽxxb㓇 ȶJ^ѸScgҵ8p y4!D~x 9 /ioO@ "Ѡgyqn # kAʍ7SʷqJKO/#A"v+ARU!!1|W|`K℟r(jJCcTSa4A=ih~޶o{ګiz h Q4D\h)#vN1qssYR^ƟwiM"0X1UbQGSfpOg68cgnpƝ&V4v`󾶾1ZV B wͥ77?NIGϜ W0XZeV-i3ױO9!]0=QU`dҁWt<ףH^Y-f;z:ۛfv2ExnZƲK$έ`& *V,) P>Kdu\ x`;кpO$G]:5AJt}ד-hC92 '> RHj[T7>BH~ 3n2PqSԟOxWAP])I+A' %PCOcQ HSO9C SdR0܏±/aؼC%]B DP' REcƯ 1DO"vTq4kx EOKU d%]~=/CZDꕒpo"+?9rsʇP* ]mgIoz̠qǦjJh|9%34CGA).c̙X~֖JWŞ2i"Yjs'-|ϼܣ3OrnhQQuEZnً.!JP%5s_hY! Nm}.tu]*YI1n}iG} ?tイy E tFI''[ r;Z顼j7tϦ+.!nR75ňHW]^1UF9~E3~O ]h.v76ɴf: nb5%k6ZUkc<#rKGad"ҥŪ%Qя=J]]3ta2 t@tA)wOu2ir/vVG_U!yɬhI+\\e.~.˺7z+P@ 2RچvcP1F{`F{.leZz H~J:0-84}iB\8g?;u讻RILiʺ YHMB no̓4z:!ͳɧmlxf\/9֝Fs$lk.lp#(VetjD|w 9H;8u5#';Y yeK[K^{#ΝUBhhug0B PD(-%A40A%'9 94Z%LUexxcFF ;Li Ѣ*Q`AC.9Zbvg#1T1mޛT[t 3972}3:1IB$\֙INlQ"*yYYU!!j<,n/cB@V@-F+hb;Xp"8k m*,rݻBb9b''-{MKֱJCe/YVpV@,bvR,$`IJaٱV%˪,|]o;e斖Y' @[o/Dv|D"vJ k1mG08\aLYV1?p{i V$ֲnr:mWfeG: $u::ͦC6B._K:?bUGcī6)Ucj $#d>v-C<ʳsN\8kXLFwcwh$8޿l GpȢU11b~|dFU֭Cs;u¢=ev~0R 'BTZ.S{q{2`-rqzMnD0q4O0#bDclF9K 2ܩ"f 휶6eާ`„W:8v^oGJ09j1xf^{eEF0d"خc.7"GRElWMs63fV˄eƽ3 BZrƔ_K+ ~]hWT 2) d=:< u~xŇ{Sfv}ݸ q,r.^ ){tZ/"7`s #"1dQ<ۙx+Ï< }lH)$9!*,8~7m˫X=JXkխİAv Jõ6_Ŝ\|kO??gr6okV:N|P_D[(dWNTcA Ԓ.VsWg9e&{)RGnN<Ī[o _ WGBn<ٓOSe[wY glD"~;|ĉƑtOS7U7ևs, FHP%r5u5+ q TᲛO|Ӭ㾑 od]"JЇcd"B1oY7o\:KAה;Eu.T R/9keS{ўE} ,Qșo&VkxWlOQ Yƪ鉰V朠F`DdJ<6.'w T @- m@n8P $ B2r22 t%[j;eOv$(S*@@&X`(ʑs`̔`)d` SGE3(xW\!Sd咔Tn!\]x87CP؄ ee3FvD9;:;8:|?E񋖴e /B_TBfgk+ m_ _׃  2r<[&q?.wL'bPGKĹi ˒$ IHk`~B[P. %w߂1w0hْ 4P6h>؀#;x̆P8XBHLC.,UP%BZF8-p<^0 o`A2DX6b"ֈ#Ef!~H0!H "ERd5R#U^9E.!==F~C>@٨jڡ\ Bh G h%ZBѳڋ>G03l0.Bx,c˱b6b#{";!0 $,",'̈́ Ba$nD>1B%+uc[!\H8Ri D:C!d6ٚA% ry;4:yBP)xR@\ RƩjTS5*.Qkmԫ8MfNEhhFyC+:nDw%JaEz=Ca1J~=+&ib3 z9c; _EBZY U| գWUGԨjfj<5rjjwY/i544D4i01VjYYlۜgK߱٣34545Ojr0qpns>Lћ=Ejkh4km8ndn4ר1͘klŸx$dI}S)4ti[3sf-fCZ||L OE57-I\t˝׬P+'Tj֨zu44ii50lmrlll9-/L6u}wϰ0ۡ7G+GcWLor ]3:B:;}rvq;7:$pesø܋DW'\߻9)܎n~}hLڙFY4xx>2yy z[zy~c#9[;vi{o?$L 10(pS_ȯvlvG#(2*IU<- 999-(yr`GryPGTԊ OR%y;mzh􉌘LJfbq4]ڑ#z-ںhT$Fg* Ki\˙S.7:hz4k]BX"\Ҿp骥}˼],OZ޾xEኁ+J_S}Ay1 W XPR$/}uuu맯߾sr}IERaofbC2]Ioot\<s--.zbFmmmMo*VOuw)y}׮zKv#swo}}9Fv~N~:],k@ Ç]FƽMpXy>t(h?8:V܌4/nmImmk9>x{{۱mDI͓eh OM?=vFvflŞ}> uzwq%K/s/\qu'u;w7_uzZ[̞S={M+=; wz˸~+?R{TXqϖ?7:zA?q)iŠ`Љak=x.{>>R/;^XW_FcG^_NVJ3^=~fm;wsw~08姶ANdNL%c3 cHRMz%u0`:o_FbKGDԂ pHYs."."ݒ vpAg(,Q\IDATXÝo%G}=G{LƓd]H#K6B 6B ,A   ̓#=w|,kG(:_}Q/ƒGSltHguKU RI9S@1IYW/HB> \7}\ -nu2֘V5 4 IDJ53l&MfR;fBQOoqfhXR2^z4yR,\x ğ;ypBp2@j%^9^Zd֓љ1vC$DǐU(."IKeMT."" O\@"l=bb(\Gnl!: dowodD0a6tɞE0څ\9c˰*_.DNL5 ckT]2T 2ʹȅ%VBY2 ܪ:2{}ʵ\q5:}x_C:?.ׯ{ǹfJ$W}f?ٛ,9TY(GrͻI| tS7X'"6ȝ61xE$T}յ]eD#}(@#E^G^YZ9ڵkԒ%^2=v擃}ffKǏBiԡ5ww,EZ[_m$}gKg]FC݂Naf(ʻ{ wj;m.Č ^+dK+kWn~*IV\"V/6[6h3ct{\ UɾӥO%9kmn?pɡŃtv yr7 ss=BQ>~J&,B_/oL wZWZ` T` ?*E.-vms&^~'>v7s6J:N9r{<Hݡ{[Ky:9N^F`DdJ<6.'w T @- m@n8P $ B2r22 t%[j;eOv$(S*@@&X`(ʑs`̔`)d` SGE3(xW\!Sd咔Tn!\]x87CP؄ ee3FvD9;:;8:|?E񋖴e /B_TBfgk+ m_ _׃  2r<[&q?.wL'bPGKĹi ˒$ IHk`~B[P. %w߂1w0hْ 4P6h>؀#;x̆P8XBHLC.,UP%BZF8-p<^0 o`A2DX6b"ֈ#Ef!~H0!H "ERd5R#U^9E.!==F~C>@٨jڡ\ Bh G h%ZBѳڋ>G03l0.Bx,c˱b6b#{";!0 $,",'̈́ Ba$nD>1B%+uc[!\H8Ri D:C!d6ٚA% ry;4:yBP)xR@\ RƩjTS5*.Qkmԫ8MfNEhhFyC+:nDw%JaEz=Ca1J~=+&ib3 z9c; _EBZY U| գWUGԨjfj<5rjjwY/i544D4i01VjYYlۜgK߱٣34545Ojr0qpns>Lћ=Ejkh4km8ndn4ר1͘klŸx$dI}S)4ti[3sf-fCZ||L OE57-I\t˝׬P+'Tj֨zu44ii50lmrlll9-/L6u}wϰ0ۡ7G+GcWLor ]3:B:;}rvq;7:$pesø܋DW'\߻9)܎n~}hLڙFY4xx>2yy z[zy~c#9[;vi{o?$L 10(pS_ȯvlvG#(2*IU<- 999-(yr`GryPGTԊ OR%y;mzh􉌘LJfbq4]ڑ#z-ںhT$Fg* Ki\˙S.7:hz4k]BX"\Ҿp骥}˼],OZ޾xEኁ+J_S}Ay1 W XPR$/}uuu맯߾sr}IERaofbC2]Ioot\<s--.zbFmmmMo*VOuw)y}׮zKv#swo}}9Fv~N~:],k@ Ç]FƽMpXy>t(h?8:V܌4/nmImmk9>x{{۱mDI͓eh OM?=vFvflŞ}> uzwq%K/s/\qu'u;w7_uzZ[̞S={M+=; wz˸~+?R{TXqϖ?7:zA?q)iŠ`Љak=x.{>>R/;^XW_FcG^_NVJ3^=~fm;wsw~08姶ANdNL%c3 cHRMz%u0`:o_FbKGDԂ pHYs."."ݒ vpAg(3w4wIDATX͘[S=3ulb L/p(A"%yE"R" H[~0cpnDB`$IxYLOwUl`JU99U=$".4ױț@Hە("("P&Ӂ*@A7HD ̑/x#:9y@7M:u:DPsS(ܚ>iӥnW1bu./RY4sx-|&>xu'>=m^mn+nگ<߇^Zn6fP.JtUW rcn.MOT?R/4 ;lգGoN^saÏ.rW}r[-9zZ ɓ!"p\|ѣڇ}$xEeǎ?=a2k޹Z~9T]06zN Мuu/ھkKSSk}DG;P"yX| ppy|w;6R>պcDZC0l A5D JAξ6 V*y$Yh XܷCw5'&Jw";SJE.-@Zk40it&'"p8Jaij }aQn'9Zc@#.<$m+{AH pAi Qni XJ;3Buwxzm~~ZZ!"n>?288x摑ヒ@A[YAX*2rbAkTWc5ƤJ 1\{-o _ѫ2#l[.g*>3.b/ u3[XkP+no7y{qhRjVD}_2:Ck #/:hiSl-ZX&~)W"`j ?v܂ÇT=} .$P亿8}˛ҹ2Rh"mW#1hfEl_~Z.Rj̰hcWQz``Z8DS@k l;ֶ%+Jx|X2G h3y/3V6>`8Px! Du;= Z#flq* p}.޺~$>8;`#|kw֎Pu7k4PP %Śh,͝8AD5{ޤ{m"` 1&#\AУrD0&H4觝B1Oҗ<9>.)k'.oc.FQw|W`1 ~(`#3flf%uf.4'X3-fdUc֯̏zDnjPԬ#r`?]?\%tEXtcreate-date2008-12-16T16:51:39+02:00d%tEXtmodify-date2008-12-16T07:25:49+02:00ʖIENDB`libphone-ui-shr-0.1+git20130901/data/pl-out.png000066400000000000000000000115201221067027500206160ustar00rootroot00000000000000PNG  IHDR(,o{ =iCCPiccxڝSgTS=BKKoR RBTi@숨"q"Ay((6T}7o9g}>F`DdJ<6.'w T @- m@n8P $ B2r22 t%[j;eOv$(S*@@&X`(ʑs`̔`)d` SGE3(xW\!Sd咔Tn!\]x87CP؄ ee3FvD9;:;8:|?E񋖴e /B_TBfgk+ m_ _׃  2r<[&q?.wL'bPGKĹi ˒$ IHk`~B[P. %w߂1w0hْ 4P6h>؀#;x̆P8XBHLC.,UP%BZF8-p<^0 o`A2DX6b"ֈ#Ef!~H0!H "ERd5R#U^9E.!==F~C>@٨jڡ\ Bh G h%ZBѳڋ>G03l0.Bx,c˱b6b#{";!0 $,",'̈́ Ba$nD>1B%+uc[!\H8Ri D:C!d6ٚA% ry;4:yBP)xR@\ RƩjTS5*.Qkmԫ8MfNEhhFyC+:nDw%JaEz=Ca1J~=+&ib3 z9c; _EBZY U| գWUGԨjfj<5rjjwY/i544D4i01VjYYlۜgK߱٣34545Ojr0qpns>Lћ=Ejkh4km8ndn4ר1͘klŸx$dI}S)4ti[3sf-fCZ||L OE57-I\t˝׬P+'Tj֨zu44ii50lmrlll9-/L6u}wϰ0ۡ7G+GcWLor ]3:B:;}rvq;7:$pesø܋DW'\߻9)܎n~}hLڙFY4xx>2yy z[zy~c#9[;vi{o?$L 10(pS_ȯvlvG#(2*IU<- 999-(yr`GryPGTԊ OR%y;mzh􉌘LJfbq4]ڑ#z-ںhT$Fg* Ki\˙S.7:hz4k]BX"\Ҿp骥}˼],OZ޾xEኁ+J_S}Ay1 W XPR$/}uuu맯߾sr}IERaofbC2]Ioot\<s--.zbFmmmMo*VOuw)y}׮zKv#swo}}9Fv~N~:],k@ Ç]FƽMpXy>t(h?8:V܌4/nmImmk9>x{{۱mDI͓eh OM?=vFvflŞ}> uzwq%K/s/\qu'u;w7_uzZ[̞S={M+=; wz˸~+?R{TXqϖ?7:zA?q)iŠ`Љak=x.{>>R/;^XW_FcG^_NVJ3^=~fm;wsw~08姶ANdNL%c3 cHRMz%u0`:o_FbKGDԂ pHYs."."ݒ vpAg(,QIDATXåy]U?;K e0 S:%lM AD%Q(!QP\L\ &XJId5J)am]gLg潙=7fyIޛw9q 8BBBs"2fha(0y</a(Q#!Bƺ6AÀ rru (D"ߐ,Ywkm y~]!pIxh]=@мFy0r`g#c:]r,ZV齋M=^Q-1PTݛ~SSxn>\Gw욗'Jz_Wki-9G@sn‚ 6^wYec6l֙vϜضHʰ'J$O֏Mׂywθӭm7 o#9k#y!+rglR:mYD %mJBN2+q[׭Usཱ}% .9 >H8T:L =ЅySE7vO\_߹N n88P<#)$ye!~qsrz{/&}Fw@l6 m-lR۝C{ƕݗsbDnྟ.{b-jay*"E@o~(`g݃lA-ݓeV 4 ?̹8+ac_lYkJX(Ն}.. +NHFlZ _ qJlZ\Su3XX )Mxj\9,+i,6f驲81FE&tW&QTU{B)d-@+V(Uѝ=T^œXeBK`U_͕h­|5X; !{1a~kP.=iVx)t7MHe1Fe#ᰌ.DI~ +ybt$z6E`IdW@1|ccIvqtJ  rJ,# .\WzC PP@ |x$]#;HJYQ#,4jf^ğ>9_%tEXtcreate-date2008-12-16T16:51:33+02:00H;%tEXtmodify-date2008-12-16T07:28:53+02:00DBIENDB`libphone-ui-shr-0.1+git20130901/data/quick-settings.edc000066400000000000000000000243561221067027500223320ustar00rootroot00000000000000 group { name: "phoneui/settings/quick-settings"; parts { part { name: "toolbar"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 0.0; rel2.offset: 0 30; fixed: 1 1; } } part { name: "pager"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { to_y: "toolbar"; relative: 0.0 1.0; offset: 0 2; } rel2.relative: 1.0 1.0; } } } } group { name: "phoneui/settings/quick-settings/profile-power"; parts { part { name: "frame"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: 0 0; } } } part { name: "profiles-frame"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; rel1 { relative: 0.0 0.0; offset: 1 1; to: "frame"; } rel2 { relative: 1.0 0.4; offset: -2 -2; to: "frame"; } } } part { name: "profiles-frame-headline"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 150 150 150 255; rel1 { relative: 0.0 0.0; offset: 3 3; to: "profiles-frame"; } rel2 { relative: 1.0 0.2; offset: 0 0; to: "profiles-frame"; } text { text: "Phone profiles"; font: "redensek:style=bold"; size: 1; fit: 1 1; align: 0.0 0.5; } } } part { name: "profiles-frame-airplane-frame"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 10 220 120 0; rel1 { relative: 0.0 1.0; offset: 0 0; to: "profiles-frame-headline"; } rel2 { relative: 0.5 1.0; offset: -2 -2; to: "profiles-frame"; } } } part { name: "profiles-frame-airplane-frame-headline"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 30 30 30 255; rel1 { relative: 0.0 0.0; offset: 0 0; to: "profiles-frame-airplane-frame"; } rel2 { relative: 1.0 0.3; offset: -3 0; to: "profiles-frame-airplane-frame"; } text { text: "Airplane mode:"; font: "redensek"; size: 20; fit: 1 1; align: 0.0 1.0; } } } part { name: "profiles-frame-airplane-slide"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 0.0 1.0; offset: 5 5; to: "profiles-frame-airplane-frame-headline"; } rel2 { relative: 1.0 1.0; offset: -10 -10; to: "profiles-frame-airplane-frame"; } } } part { name: "profiles-frame-profiles-combo"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 1.0 0.2; offset: 10 0; to: "profiles-frame-airplane-frame"; } rel2 { relative: 1.0 0.8; offset: -10 -10; to: "profiles-frame"; } } } part { name: "power-frame"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; rel1 { relative: 0.0 1.0; offset: 0 1; to: "profiles-frame"; } rel2 { relative: 1.0 1.0; offset: -2 -2; to: "frame"; } } } part { name: "power-frame-headline"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 150 150 150 255; rel1 { relative: 0.0 0.0; offset: 3 3; to: "power-frame"; } rel2 { relative: 1.0 0.133; offset: 0 0; to: "power-frame"; } text { text: "Power settings"; font: "redensek:style=bold"; size: 1; fit: 1 1; align: 0.0 0.5; } } } part { name: "power-frame-auto-frame"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 0.0 1.0; offset: 0 0; to: "power-frame-headline"; } rel2 { relative: 1.0 0.7; offset: 0 0; to: "power-frame"; } } } part { name: "power-frame-auto-frame-dimming-label"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.0 0.1; offset: 0 0; to: "power-frame-auto-frame"; } rel2 { relative: 0.4 0.4; offset: 0 0; to: "power-frame-auto-frame"; } text { text: "Auto-dimming:"; font: "redensek"; size: 20; fit: 1 1; align: 0.0 0.5; } } } part { name: "power-frame-auto-frame-dimming-slide"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; fixed: 1 1; rel1 { relative: 1.0 0.0; offset: 20 0; to: "power-frame-auto-frame-dimming-label"; } rel2 { relative: 0.8 1.0; offset: 0 0; to_y: "power-frame-auto-frame-dimming-label"; } } } part { name: "power-frame-auto-frame-suspend-label"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.0 0.6; offset: 0 0; to_x: "power-frame-auto-frame-dimming-label"; to_y: "power-frame-auto-frame"; } rel2 { relative: 1.0 0.9; offset: 0 0; to_x: "power-frame-auto-frame-dimming-label"; to_y: "power-frame-auto-frame"; } text { text: "Auto-suspend:"; font: "redensek"; size: 20; fit: 1 1; align: 0.0 0.5; } } } part { name: "power-frame-auto-frame-suspend-slide"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; fixed: 1 1; rel1 { relative: 1.0 0.0; offset: 20 0; to: "power-frame-auto-frame-suspend-label"; } rel2 { relative: 0.8 1.0; offset: 0 0; to_y: "power-frame-auto-frame-suspend-label"; } } } part { name: "power-frame-suspend-button"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 0.0 1.0; offset: 1 1; to: "power-frame-auto-frame"; } rel2 { relative: 0.33 1.0; offset: -1 -6; to: "power-frame"; } } } part { name: "power-frame-lock-button"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 0.33 1.0; offset: 1 1; to: "power-frame-auto-frame"; } rel2 { relative: 0.66 1.0; offset: -1 -6; to: "power-frame"; } } } part { name: "power-frame-shutdown-button"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 0.66 1.0; offset: 1 1; to: "power-frame-auto-frame"; } rel2 { relative: 1.0 1.0; offset: -5 -6; to: "power-frame"; } } } } } group { name: "phoneui/settings/quick-settings/network"; parts { part { name: "frame"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: 0 0; } } } part { name: "network-frame"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; rel1 { relative: 0.0 0.0; offset: 1 1; to: "frame"; } rel2 { relative: 1.0 1.0; offset: -2 -2; to: "frame"; } } } part { name: "network-frame-headline"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 150 150 150 255; rel1 { relative: 0.0 0.0; offset: 3 3; to: "network-frame"; } rel2 { relative: 1.0 0.08; offset: 0 0; to: "network-frame"; } text { text: "Networking"; font: "redensek:style=bold"; size: 1; fit: 1 1; align: 0.0 0.5; } } } part { name: "network-frame-auto-frame"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 0; rel1 { relative: 0.0 1.0; offset: 0 0; to: "network-frame-headline"; } rel2 { relative: 1.0 0.4; offset: 0 0; to: "network-frame"; } } } part { name: "network-frame-auto-frame-gprs-label"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.0 0.1; offset: 0 0; to: "network-frame-auto-frame"; } rel2 { relative: 0.4 0.3; offset: 0 0; to: "network-frame-auto-frame"; } text { text: "GPRS:"; font: "redensek"; size: 20; fit: 1 1; align: 0.0 0.5; } } } part { name: "network-frame-auto-frame-gprs-slide"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; fixed: 1 1; rel1 { relative: 1.0 0.0; offset: 20 0; to: "network-frame-auto-frame-gprs-label"; } rel2 { relative: 0.8 1.0; offset: 0 0; to_x: "network-frame-auto-frame"; to_y: "network-frame-auto-frame-gprs-label"; } } } part { name: "network-frame-auto-frame-sharing-label"; type: TEXT; mouse_events: 0; description { state: "default" 0.0; color: 0 0 0 255; rel1 { relative: 0.0 0.5; offset: 0 0; to_x: "network-frame-auto-frame-gprs-label"; to_y: "network-frame-auto-frame"; } rel2 { relative: 1.0 0.7; offset: 0 0; to_x: "network-frame-auto-frame-gprs-label"; to_y: "network-frame-auto-frame"; } text { text: "Share:"; font: "redensek"; size: 1; fit: 1 1; align: 0.0 0.5; } } } part { name: "network-frame-auto-frame-sharing-slide"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; color: 0 0 0 0; fixed: 1 1; rel1 { relative: 1.0 0.0; offset: 20 0; to: "network-frame-auto-frame-sharing-label"; } rel2 { relative: 0.8 1.0; offset: 0 0; to_x: "network-frame-auto-frame"; to_y: "network-frame-auto-frame-sharing-label"; } } } } }libphone-ui-shr-0.1+git20130901/data/sim-manager.edc000066400000000000000000000137511221067027500215550ustar00rootroot00000000000000group { name: "phoneui/settings/sim-manager"; parts { part { name: "contacts_list"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 0.85; offset: 0 0; } } } part { name: "button_import_all"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 0.0 0.85; } rel2 { relative: 0.33 1.0; } } } part { name: "button_new"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 0.33 0.85; } rel2 { relative: 0.66 1.0; } } } part { name: "button_options"; type: SWALLOW; mouse_events: 1; description { state: "default" 0.0; rel1 { relative: 0.66 0.85; } rel2 { relative: 1.0 1.0; } } } part { name: "loading_bg"; mouse_events: 1; type: RECT; description { state: "default" 0.0; visible: 0; color: 0 0 0 63; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: 0 0; } } description { state: "loading" 0.0; visible: 1; color: 0 0 0 63; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: 0 0; } } } part { name: "loading_indicator"; type: SWALLOW; mouse_events: 0; description { state: "default" 0.0; visible: 0; rel1 { relative: 0.4 0.4; } rel2 { relative: 0.6 0.6; } } description { state: "loading" 0.0; visible: 1; rel1 { relative: 0.4 0.4; } rel2 { relative: 0.6 0.6; } } } } programs { program { name: "start_loading"; signal: "start_loading"; source: ""; action: STATE_SET "loading" 0.0; target: "loading_indicator"; target: "loading_bg"; } program { name: "stop_loading"; signal: "stop_loading"; source: ""; action: STATE_SET "default" 0.0; target: "loading_indicator"; target: "loading_bg"; } } } /* phoneui/settings/sim-manager */ group { name: "elm/genlist/item/sim-contact/default"; alias: "elm/genlist/item_odd/sim-contact/default"; data.item: "stacking" "above"; data.item: "selectraise" "on"; data.item: "texts" "elm.text elm.text.sub"; //data.item: "treesize" "20"; // data.item: "states" ""; parts { part { name: "event"; type: RECT; repeat_events: 1; description { state: "default" 0.0; color: 0 0 0 0; } } part { name: "bg"; clip_to: "disclip"; mouse_events: 0; type: RECT; description { state: "default" 0.0; visible: 1; color: COLOR_LIGHT_GRAY; rel1 { relative: 0.0 0.0; offset: 0 0; } rel2 { relative: 1.0 1.0; offset: 0 0; } } description { state: "selected" 0.0; inherit: "default" 0.0; visible: 1; color: COLOR_ORANGE_SOLID; } } part { name: "seperator"; mouse_events: 0; type: RECT; description { state: "default" 0.0; visible: 1; color: COLOR_DARK_GRAY; rel1 { to: "bg"; relative: 0.0 1.0; offset: 0 -3; }rel2 { to: "bg"; relative: 1.0 1.0; offset: 0 -2; } } } part { name: "elm.swallow.icon"; clip_to: "disclip"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 0; align: 0.0 0.5; rel1 { relative: 0.0 0.0; offset: -1 4; to: "disclip"; } rel2 { relative: 0.2 1.0; offset: -1 -5; to: "disclip"; } } } part { name: "elm.swallow.end"; clip_to: "disclip"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 0; align: 1.0 0.5; rel1 { relative: 0.8 0.0; offset: -1 4; to: "disclip"; } rel2 { relative: 1.0 1.0; offset: -1 -5; to: "disclip"; } } } part { name: "elm.text"; clip_to: "disclip"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; //min: 16 16; rel1 { relative: 1.0 0.0; to: "elm.swallow.icon"; } rel2 { relative: 1.0 0.5; to: "disclip"; } color: 0 0 0 255; color3: 0 0 0 0; text { font: "content"; size: 9; elipsis: 0.0; min: 0 1; align: 0.0 0.0; } } } part { name: "elm.text.sub"; clip_to: "disclip"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; rel1 { to: "elm.text"; relative: 0.0 1.0; } rel2 { to: "disclip"; relative: 1.0 1.0; } color: 0 0 0 255; color3: 0 0 0 0; text { font: "content"; size: 9; elipsis: 0.0; min: 0 1; align: 0.0 0.5; } } } part { name: "disclip"; type: RECT; description { state: "default" 0.0; rel1.to: "bg"; rel2.to: "bg"; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 64; } } } programs { // signal: elm,state,%s,active // a "check" item named %s went active // signal: elm,state,%s,passive // a "check" item named %s went passive // default is passive program { name: "go_active"; signal: "elm,state,selected"; source: "elm"; action: STATE_SET "selected" 0.0; target: "bg"; target: "elm.text"; target: "elm.text.sub"; } program { name: "go_passive"; signal: "elm,state,unselected"; source: "elm"; action: STATE_SET "default" 0.0; target: "bg"; target: "elm.text"; target: "elm.text.sub"; transition: LINEAR 0.1; } program { name: "go_disabled"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled" 0.0; target: "disclip"; } program { name: "go_enabled"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default" 0.0; target: "disclip"; } } } /* elm/genlist/item/sim-contact/default */ libphone-ui-shr-0.1+git20130901/data/styles.edc000066400000000000000000000004061221067027500206710ustar00rootroot00000000000000 styles { style { name: "content_style"; base: "font=Edje-Vera font_size=20 align=left valign=bottom color=#000 wrap=word"; tag: "br" "+ \n"; } } fonts { font: "DejaVuSans.ttf" "content"; font: "DejaVuSans-Bold.ttf" "content-bold"; }libphone-ui-shr-0.1+git20130901/data/widgets/000077500000000000000000000000001221067027500203375ustar00rootroot00000000000000libphone-ui-shr-0.1+git20130901/data/widgets/Makefile.am000066400000000000000000000004561221067027500224000ustar00rootroot00000000000000MAINTAINERCLEANFILES = Makefile.in filesdir = $(datadir)/libphone-ui-shr/ files_DATA = widgets.edj EXTRA_DIST = \ widgets.edc \ contacts_slide_call.png \ contacts_slide_message.png \ contacts_slide_open.png clean-local: rm -f *.edj widgets.edj: widgets.edc @edje_cc@ widgets.edc widgets.edj libphone-ui-shr-0.1+git20130901/data/widgets/contacts_slide_call.png000066400000000000000000000017201221067027500250360ustar00rootroot00000000000000PNG  IHDRĴl;bKGDtIME :Z{rIDAT8[hUggNf2$.jEknK5RPhወ>*F-ZAŧłQb[5]Ґ&miwͤ[ٹe7%0s}G"/hho1f9{VkSK`h𕝟(5S7n%Ǧ~)8I{;[">zѺ ۺnMh}0h胿>pǶCx'`?},\}"{p8[DskNF :JZJ-jIX G\Q7{O[3?Ϛ :Q+E(V};ia/GJKMu 8U !ruۼ`.=nSeY-ff˦iȑG"rJB&AʚWmY5 3[+`v Tbp2<ċڗ.^Eܰw0VqZ~Hmc%2- ,%9z9:qܜ`O` @,m6nZCZ=6+-"{ h\>`UlVOGc`dWpIENDB`libphone-ui-shr-0.1+git20130901/data/widgets/contacts_slide_message.png000066400000000000000000000023761221067027500255570ustar00rootroot00000000000000PNG  IHDRĴl;sRGBbKGD pHYs  tIME 2-~IDAT8˵IeWUCLO 400,K$& :2-jJFUi{1­?I:KV'?j*a/ z猎^|Mf;5c#"8}Bd#8Nf ;,&&JI3671o-[ar%Z{D^2*`3&Uw cfIԝ+O?`ܨchkw{T-"hYT&TNJ/YTu!яD#$} ujjxQUרpӍu r)JB|]vu8-sq1=Z+V Fr[Aǐdg.NJ, pRDTX,R,l6K8i$)T7brzy;2m0 gÆ Ӵx$IUy,V1A/zO._ך**1va @D=!G\RS,.Atw]nl.ME4MYx)Ξ7( m֬T*fffy1Vf$.;Z W !"mk4ml\L_'ZRc4(6DQ:aK8U\Y|Iӊ^H}\L_yn]s0xCL$Ӥ$3)yWV`t\ǐQ3D- pH F:_mx8ج~Q~_LjrRCIENDB`libphone-ui-shr-0.1+git20130901/data/widgets/widgets.edc000066400000000000000000000117561221067027500224740ustar00rootroot00000000000000images { image: "contacts_slide_call.png" COMP; image: "contacts_slide_message.png" COMP; image: "contacts_slide_open.png" COMP; } collections { group { name: "zoomed_icon"; min: 64 64; parts { part { name: "bg"; type: RECT; description { state: "default" 0; color: 255 255 255 0; min: 32 32; rel1 { relative: 0 0; } rel2 { relative: 1 1; } } description { state: "zoomed" 0; color: 255 255 255 255; min: 256 256; rel1.offset: 386 0; } } part { name: "base"; type: SWALLOW; mouse_events: 1; description { state: "default" 0; min: 32 32; rel1 { relative: 0 0; } rel2 { relative: 1 1; } } description { state: "zoomed" 0; min: 256 256; rel1.offset: 386 0; } } } programs { program { name: "zoom"; signal: "mouse,down,1"; source: "base"; action: STATE_SET "zoomed" 0.0; target: "bg"; target: "base"; transition: DECELERATE 0.5; } program { name: "return"; signal: "mouse,up,1"; source: "base"; action: STATE_SET "default" 0.0; target: "bg"; target: "base"; transition: ACCELERATE 0.5; } } } group { name: "contacts_slide_buttons"; min: 40 32; max: 40 32; parts { /* part { name: "base"; type: RECT; mouse_events: 0; description { state: "default" 0; color: 255 255 255 0; rel1 { relative: 0 0; } rel2 { relative: 1 1; } } } */ part { name: "clipper"; type: RECT; mouse_events: 1; scale: 0; description { state: "default" 0.0; /* aspect: 0.0 1.0; aspect_preference: HORIZONTAL; */ min: 104 32; max: 104 32; rel1 { relative: -2 0; } rel2 { relative: 1 1; } align: 1.0 0.5; color: 255 255 255 255; } } part { name: "call"; type: IMAGE; clip_to: "clipper"; mouse_events: 1; repeat_events: 0; scale: 0; dragable { confine: "clipper"; x: 1 1 0; y: 0 0 0; } description { state: "default" 0; color: 255 255 255 150; min: 32 32; max: 32 32; // fixed: 1 1; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; rel1.offset: 8 0; rel2.offset: 8 0; image { normal: "contacts_slide_call.png"; } } description { state: "expanded" 0; inherit: "default" 0; color: 255 255 255 200; } description { state: "hover" 0; inherit: "default" 0; color: 255 255 255 255; } } part { name: "message"; type: IMAGE; repeat_events: 0; clip_to: "clipper"; description { state: "default" 0; fixed: 1 1; color: 255 255 255 200; rel1 { relative: 1 0; to: "call"; offset: 8 0; } rel2 { relative: 2 1; to: "call"; offset: 8 0; } image { normal: "contacts_slide_message.png"; middle: DEFAULT; } } description { state: "hover" 0; inherit: "default" 0; color: 255 255 255 255; } } part { name: "open"; type: IMAGE; clip_to: "clipper"; repeat_events: 0; description { state: "default" 0; color: 255 255 255 200; rel1 { relative: 2 0; to: "call"; offset: 8 0; } rel2 { relative: 3 1; to: "call"; offset: 8 0; } image { normal: "contacts_slide_open.png"; middle: DEFAULT; } } description { state: "hover" 0; inherit: "default" 0; color: 255 255 255 255; } } } programs { program { name: "drag_end"; signal: "mouse,up,1"; source: "call"; script { new Float:dx, Float:dy; get_drag(PART:"call", dx, dy); if (dx > 0.4) { emit("hide", "call") } else { emit("expand", "call") } } } program { name: "firsthover"; signal: "mouse,down,1"; source: "call"; action: STATE_SET "hover" 0.0; target: "call"; } program { name: "secondhover"; signal: "mouse,down,1"; source: "message"; action: STATE_SET "hover" 0.0; target: "message"; } program { name: "secondnormal"; signal: "mouse,up,1"; source: "message"; action: STATE_SET "default" 0.0; target: "message"; } program { name: "thirdhover"; signal: "mouse,down,1"; source: "open"; action: STATE_SET "hover" 0.0; target: "open"; } program { name: "thirdnormal"; signal: "mouse,up,1"; source: "open"; action: STATE_SET "default" 0.0; target: "open"; } program { name: "hide"; signal: "hide"; source: "*"; script { set_drag(PART:"call", 0.95, 0.0); set_state(PART:"call", "default", 0.0); emit("return", "contacts_slide_buttons") } } program { name: "expand"; signal: "expand"; source: "*"; script { set_drag(PART:"call", 0.0, 0.0); set_state(PART:"call", "expanded", 0.0); emit("expanded", "contacts_slide_buttons") } } } } } libphone-ui-shr-0.1+git20130901/po/000077500000000000000000000000001221067027500163765ustar00rootroot00000000000000libphone-ui-shr-0.1+git20130901/po/Makevars000066400000000000000000000034041221067027500200730ustar00rootroot00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=D_ --from-code=UTF-8 --foreign-user # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = libphone-ui-shr-0.1+git20130901/po/POTFILES.in000066400000000000000000000010351221067027500201520ustar00rootroot00000000000000# List of source files containing translatable strings. # Package source files src/phoneui-call.c src/phoneui-contacts.c src/phoneui-dialer.c src/phoneui-dialog.c src/phoneui-messages.c src/phoneui-sim-auth.c src/phoneui-ussd.c src/view/call-active-view.c src/view/call-common.c src/view/contact-list-view.c src/view/contact-view.c src/view/dialer-view.c src/view/dialog-view.c src/view/message-list-view.c src/view/message-new-view.c src/view/message-show-view.c src/view/sim-auth-input-view.c src/view/ussd-view.c src/widget/elm_keypad.c libphone-ui-shr-0.1+git20130901/po/ar.po000066400000000000000000000271551221067027500173520ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # This file is put in the public domain. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-24 22:45+0000\n" "PO-Revision-Date: 2009-04-11 17:06+0200\n" "Last-Translator: gfather \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/phoneui-call.c:140 src/view/contact-list-view.c:91 #: src/view/contact-view.c:205 src/view/dialer-view.c:133 #: src/view/message-list-view.c:140 src/view/message-show-view.c:235 msgid "Call" msgstr "مكالمة" #: src/phoneui-dialog.c:34 msgid "Information" msgstr "معلومات" #: src/phoneui-ussd.c:35 msgid "Service Data" msgstr "بيانات الخدمة" #: src/view/call-active-view.c:160 src/view/call-common.c:144 msgid "Speaker" msgstr "سماعات" #: src/view/call-active-view.c:171 msgid "Mute" msgstr "" #: src/view/call-active-view.c:181 msgid "Volume" msgstr "" #: src/view/call-active-view.c:194 msgid "Mic" msgstr "" #: src/view/call-active-view.c:205 src/view/call-common.c:205 msgid "Release" msgstr "اطلاق" #: src/view/call-active-view.c:212 src/view/call-active-view.c:261 msgid "Keypad" msgstr "لوخة المفاتيح" #: src/view/call-active-view.c:266 msgid "Hide Keypad" msgstr "اخفاء لوحة المفاتيح" #: src/view/call-common.c:129 msgid "Bluetooth" msgstr "" #: src/view/call-common.c:132 msgid "Handset" msgstr "" #: src/view/call-common.c:135 msgid "Headset" msgstr "" #: src/view/call-common.c:183 msgid "Pickup" msgstr "" #: src/view/contact-list-view.c:73 msgid "Contacts" msgstr "الاسماء" #: src/view/contact-list-view.c:98 src/view/contact-view.c:212 msgid "SMS" msgstr "رسائل" #: src/view/contact-list-view.c:105 src/view/message-list-view.c:109 msgid "New" msgstr "جديد" #: src/view/contact-list-view.c:210 src/view/message-list-view.c:518 #: src/view/message-list-view.c:523 msgid "Edit" msgstr "حرر" #: src/view/contact-list-view.c:212 src/view/contact-list-view.c:224 #: src/view/contact-view.c:219 src/view/message-list-view.c:156 #: src/view/message-show-view.c:226 src/view/sim-auth-input-view.c:101 msgid "Delete" msgstr "حذف " #: src/view/contact-list-view.c:213 msgid "Unselect" msgstr "" #: src/view/contact-list-view.c:227 msgid "Unselect all" msgstr "" #: src/view/contact-list-view.c:361 msgid "Really delete contact details?" msgstr "" #: src/view/contact-list-view.c:397 msgid "Failed adding contact." msgstr "" #: src/view/contact-view.c:110 src/view/message-new-view.c:337 #, fuzzy msgid "Contact" msgstr "الاسماء" #: src/view/contact-view.c:191 src/view/contact-view.c:806 #: src/view/dialer-view.c:155 msgid "Save" msgstr "حفظ" #: src/view/contact-view.c:198 msgid "Cancel" msgstr "" #: src/view/contact-view.c:227 msgid "Add Field" msgstr "" #: src/view/contact-view.c:379 #, fuzzy msgid "Deleting the contact failed!" msgstr "حذف اسم" #: src/view/contact-view.c:408 msgid "Really delete this contact?" msgstr "" #: src/view/contact-view.c:719 msgid "Updating contact failed." msgstr "" #: src/view/contact-view.c:734 msgid "Adding the contact failed." msgstr "" #: src/view/contact-view.c:752 msgid "Failed loading data of saved contact." msgstr "" #: src/view/contact-view.c:813 src/view/message-new-view.c:329 #: src/view/message-new-view.c:385 src/view/message-new-view.c:421 msgid "Back" msgstr "رجوع" #: src/view/contact-view.c:820 msgid "Remove" msgstr "حذف" #: src/view/dialer-view.c:70 msgid "Dialer" msgstr "الهاتف" #: src/view/dialer-view.c:92 msgid "Click to open contactlist." msgstr "انقر لاظهار لائحة الاسماء" #: src/view/dialer-view.c:119 src/view/dialog-view.c:73 #: src/view/message-new-view.c:277 src/view/message-show-view.c:201 #: src/view/ussd-view.c:92 msgid "Close" msgstr "اغلاق" #: src/view/dialer-view.c:126 msgid "More" msgstr "اضافى " #: src/view/dialer-view.c:163 msgid "Send SMS" msgstr "ارسال رسالة" #: src/view/dialer-view.c:409 msgid "Cannot initiate call." msgstr "" #: src/view/dialog-view.c:65 #, fuzzy msgid "" "Your SIM storage is full. Please delete some messages or you may not receive " "them anymore!" msgstr "" "لقد امتلأ بريدك . ارجو حذف بعض الرسائل او لن تستطيع من استلام اي رسائل اخرى!" #: src/view/dialog-view.c:68 msgid "GSM is not available, because no SIM card is present." msgstr "لا يوجد اشارة , السبب عدم وجود شريحة المحمول" #: src/view/dialog-view.c:70 msgid "Unknown message." msgstr "رسالة غير معروفة" #: src/view/message-list-view.c:95 msgid "Messages" msgstr "رسائل" #: src/view/message-list-view.c:118 src/view/message-show-view.c:211 msgid "Options" msgstr "\tخيارات" #: src/view/message-list-view.c:132 src/view/message-show-view.c:264 msgid "Answer" msgstr "اجابة" #: src/view/message-list-view.c:148 src/view/message-list-view.c:534 #: src/view/message-show-view.c:254 msgid "Forward" msgstr "" #: src/view/message-list-view.c:165 src/view/message-list-view.c:529 msgid "Show" msgstr "أظهر " #: src/view/message-list-view.c:187 src/view/message-list-view.c:198 #, fuzzy msgid "Loading..." msgstr "تحميل..." #: src/view/message-list-view.c:381 src/view/message-show-view.c:428 #, fuzzy msgid "Deleting the message failed!" msgstr "حذف رسالة" #: src/view/message-list-view.c:423 src/view/message-show-view.c:457 msgid "Really delete this message?" msgstr "" #: src/view/message-list-view.c:551 msgid "Error while trying to resolve the number" msgstr "" #: src/view/message-list-view.c:583 msgid "Error while retrieving messages" msgstr "" #: src/view/message-list-view.c:591 msgid "There are no messages" msgstr "" #: src/view/message-list-view.c:623 msgid "Error while retrieving a message" msgstr "" #: src/view/message-new-view.c:104 msgid "New Message" msgstr "رسالة جديدية" #: src/view/message-new-view.c:263 msgid "Enter your message" msgstr "" #: src/view/message-new-view.c:285 msgid "Continue" msgstr "اكمال" #: src/view/message-new-view.c:309 msgid "Define Recipients" msgstr "حدد المرسل اليه" #: src/view/message-new-view.c:346 #, fuzzy msgid "Number" msgstr "رقم:" #: src/view/message-new-view.c:355 msgid "Send" msgstr "ارسال" #: src/view/message-new-view.c:379 src/view/message-show-view.c:244 msgid "Add Contact" msgstr "اضافة اسم" #: src/view/message-new-view.c:392 src/view/message-new-view.c:428 msgid "Add" msgstr "اضافة" #: src/view/message-new-view.c:418 msgid "Add Number" msgstr "اضافة رقم" #: src/view/message-new-view.c:653 msgid "You have entered
an invalid number." msgstr "" #: src/view/message-new-view.c:700 src/view/message-new-view.c:745 #, c-format msgid "%d characters left [%d]" msgstr "%d حرف متبقي [%d]" #: src/view/message-new-view.c:790 msgid "Error will trying to resolve number." msgstr "" #: src/view/message-new-view.c:823 msgid "Sending the message failed" msgstr "" #: src/view/message-new-view.c:859 #, fuzzy msgid "Do you really want to quit writing this message?" msgstr "هل تريد الخروج ؟ " #: src/view/message-show-view.c:81 #, fuzzy msgid "Message" msgstr "رسائل" #: src/view/sim-auth-input-view.c:87 msgid "SIM Auth" msgstr "تفعل الشريحة" #: src/view/sim-auth-input-view.c:108 msgid "OK" msgstr "تم" #: src/view/sim-auth-input-view.c:162 msgid "Please enter your PIN" msgstr "الرجاء ادخال كلمة السر" #: src/view/sim-auth-input-view.c:167 #, fuzzy msgid "Please enter your PIN2" msgstr "الرجاء ادخال كلمة السر" #: src/view/sim-auth-input-view.c:172 msgid "Please enter your PUK" msgstr "الرجاء ادخال PUK" #: src/view/sim-auth-input-view.c:177 #, fuzzy msgid "Please enter your PUK2" msgstr "الرجاء ادخال PUK" #: src/view/sim-auth-input-view.c:183 msgid "SIM unlocked" msgstr "" #: src/view/sim-auth-input-view.c:190 #, fuzzy msgid "Unknown error" msgstr "رسالة غير معروفة" #: src/view/sim-auth-input-view.c:228 msgid "PIN wrong" msgstr "الكلمة السرية خطاء" #: src/view/sim-auth-input-view.c:234 msgid "PIN Ok" msgstr "" #: src/view/sim-auth-input-view.c:251 msgid "PUK wrong" msgstr "puk خطأ" #: src/view/sim-auth-input-view.c:257 msgid "PUK Ok" msgstr "" #: src/view/sim-auth-input-view.c:273 src/view/sim-auth-input-view.c:292 #, fuzzy msgid "Checking..." msgstr "فحص" #: src/view/sim-auth-input-view.c:281 #, fuzzy msgid "Please enter a new PIN" msgstr "الرجاء ادخال كلمة السر" #: src/view/sim-auth-input-view.c:287 #, fuzzy msgid "Please confirm the new PIN" msgstr "الرجاء ادخال كلمة السر" #: src/view/ussd-view.c:88 msgid "Data:" msgstr "بيانات: " #: src/widget/elm_keypad.c:145 msgid "ABC" msgstr "ﺏﺕﺓ‎ﺙ‎" #: src/widget/elm_keypad.c:146 msgid "DEF" msgstr "اء" #: src/widget/elm_keypad.c:147 msgid "GHI" msgstr "ﺱﺵﺹﺽ‎" #: src/widget/elm_keypad.c:148 msgid "JKL" msgstr "ﺩ‎ﺫ‎ﺭﺯ" #: src/widget/elm_keypad.c:149 msgid "MNO" msgstr "ﺝﺡﺥ" #: src/widget/elm_keypad.c:150 msgid "PQRS" msgstr "نﻩ‎ﻭ‎ﻱ" #: src/widget/elm_keypad.c:151 msgid "TUV" msgstr "ف‎ﻕﻙ‎ﻝﻡ" #: src/widget/elm_keypad.c:152 msgid "WXYZ" msgstr "" #~ msgid "New Contact" #~ msgstr "اسم جديد" #~ msgid "Accept" #~ msgstr "موافق" #~ msgid "Do you really want to delete it?" #~ msgstr "هل تريد حذفها ؟" #~ msgid "Yes" #~ msgstr "نعم" #~ msgid "No" #~ msgstr "لا" #~ msgid "Compose SMS" #~ msgstr "رسالة جديدة" #, fuzzy #~ msgid "Show Contact" #~ msgstr "اسم جديد" #, fuzzy #~ msgid "Actions" #~ msgstr "\tخيارات" #, fuzzy #~ msgid "Value: " #~ msgstr "اسم:" #~ msgid "Deleting.." #~ msgstr "حذف..." #~ msgid "Inbox" #~ msgstr "صندوق الوارد" #~ msgid "Show Message" #~ msgstr "اظهار الرسالة" #~ msgid "SMS Answer" #~ msgstr "اجابة رسالة نصية" #~ msgid "Add a Contact" #~ msgstr "اضافة اسم" #~ msgid "Add a Number" #~ msgstr "اضافة رقم" #~ msgid "Sending.." #~ msgstr "ارسال..." #~ msgid "From:" #~ msgstr "من:" #~ msgid "Date:" #~ msgstr "التاريخ:" #~ msgid "Status:" #~ msgstr "الحالة:" #~ msgid "PIN correct" #~ msgstr "الكلمة السرية صحيحة" #~ msgid "Enter a NEW PIN" #~ msgstr "ادخل كلمة سر جديدة " #~ msgid "Confirm your NEW PIN" #~ msgstr "اعادة تاكيد كلمة السر" #~ msgid "PIN must be 4-8 chars long" #~ msgstr "يجب ان تكون كلمة السر من 4 - 8 مفاتيح" #~ msgid "PIN confirmation wrong" #~ msgstr "تاكيد كلمة السر خطأ" #~ msgid "XYZ" #~ msgstr "ﻁ‎ﻅ‎ﻉﻍ‎" #~ msgid "Edit Contact" #~ msgstr "تعديل الاسماء" #~ msgid "Active call" #~ msgstr "المكالمة الفعالة" #~ msgid "No Speaker" #~ msgstr "لا يوجد سماعة" #~ msgid "Show Keypad" #~ msgstr "اظهار لوحة المفاتيح" #~ msgid "Loading.." #~ msgstr "تحميل..." #~ msgid "Folders" #~ msgstr "مجلدات" #~ msgid "%d messages" #~ msgstr "%d رسائل" #~ msgid "Modify" #~ msgstr "تعديل" #~ msgid "Modify Contact" #~ msgstr "تعديل الاسماء" #~ msgid "" #~ "Your storage is full. Before adding new contacts, you have to delete some " #~ "old ones." #~ msgstr "امتلا خزين الذاكرة. قبل اضافة اسماء جديدة, عليك حذف اسماء قديمة" #~ msgid "New PIN saved" #~ msgstr "تم حفظ كلمة السر" #~ msgid "Incoming call" #~ msgstr "مكالمة واردة" libphone-ui-shr-0.1+git20130901/po/ca.po000066400000000000000000000257641221067027500173370ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: libframeworkd-phoneui-efl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-24 22:45+0000\n" "PO-Revision-Date: 2009-04-07 14:55+0100\n" "Last-Translator: Pau Espin Pedrol \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Catalan\n" "X-Poedit-Country: SPAIN\n" #: src/phoneui-call.c:140 src/view/contact-list-view.c:91 #: src/view/contact-view.c:205 src/view/dialer-view.c:133 #: src/view/message-list-view.c:140 src/view/message-show-view.c:235 msgid "Call" msgstr "Trucar" #: src/phoneui-dialog.c:34 msgid "Information" msgstr "Informació" #: src/phoneui-ussd.c:35 msgid "Service Data" msgstr "Service Data" #: src/view/call-active-view.c:160 src/view/call-common.c:144 msgid "Speaker" msgstr "Altaveus" #: src/view/call-active-view.c:171 msgid "Mute" msgstr "" #: src/view/call-active-view.c:181 msgid "Volume" msgstr "" #: src/view/call-active-view.c:194 msgid "Mic" msgstr "" #: src/view/call-active-view.c:205 src/view/call-common.c:205 msgid "Release" msgstr "Despenja" #: src/view/call-active-view.c:212 src/view/call-active-view.c:261 msgid "Keypad" msgstr "Teclat Numèric" #: src/view/call-active-view.c:266 msgid "Hide Keypad" msgstr "Amaga el Teclat Numèric" #: src/view/call-common.c:129 msgid "Bluetooth" msgstr "" #: src/view/call-common.c:132 msgid "Handset" msgstr "" #: src/view/call-common.c:135 msgid "Headset" msgstr "" #: src/view/call-common.c:183 msgid "Pickup" msgstr "" #: src/view/contact-list-view.c:73 msgid "Contacts" msgstr "Contactes" #: src/view/contact-list-view.c:98 src/view/contact-view.c:212 msgid "SMS" msgstr "SMS" #: src/view/contact-list-view.c:105 src/view/message-list-view.c:109 msgid "New" msgstr "Nou" #: src/view/contact-list-view.c:210 src/view/message-list-view.c:518 #: src/view/message-list-view.c:523 msgid "Edit" msgstr "Edita" #: src/view/contact-list-view.c:212 src/view/contact-list-view.c:224 #: src/view/contact-view.c:219 src/view/message-list-view.c:156 #: src/view/message-show-view.c:226 src/view/sim-auth-input-view.c:101 msgid "Delete" msgstr "Elimina" #: src/view/contact-list-view.c:213 msgid "Unselect" msgstr "" #: src/view/contact-list-view.c:227 msgid "Unselect all" msgstr "" #: src/view/contact-list-view.c:361 msgid "Really delete contact details?" msgstr "" #: src/view/contact-list-view.c:397 msgid "Failed adding contact." msgstr "" #: src/view/contact-view.c:110 src/view/message-new-view.c:337 #, fuzzy msgid "Contact" msgstr "Contactes" #: src/view/contact-view.c:191 src/view/contact-view.c:806 #: src/view/dialer-view.c:155 msgid "Save" msgstr "Desa" #: src/view/contact-view.c:198 msgid "Cancel" msgstr "" #: src/view/contact-view.c:227 msgid "Add Field" msgstr "" #: src/view/contact-view.c:379 #, fuzzy msgid "Deleting the contact failed!" msgstr "Eliminar Contacte" #: src/view/contact-view.c:408 msgid "Really delete this contact?" msgstr "" #: src/view/contact-view.c:719 msgid "Updating contact failed." msgstr "" #: src/view/contact-view.c:734 msgid "Adding the contact failed." msgstr "" #: src/view/contact-view.c:752 msgid "Failed loading data of saved contact." msgstr "" #: src/view/contact-view.c:813 src/view/message-new-view.c:329 #: src/view/message-new-view.c:385 src/view/message-new-view.c:421 msgid "Back" msgstr "Enrere" #: src/view/contact-view.c:820 msgid "Remove" msgstr "Suprimeix" #: src/view/dialer-view.c:70 msgid "Dialer" msgstr "Marcador" #: src/view/dialer-view.c:92 msgid "Click to open contactlist." msgstr "Clic per a obrir la llista de contactes." #: src/view/dialer-view.c:119 src/view/dialog-view.c:73 #: src/view/message-new-view.c:277 src/view/message-show-view.c:201 #: src/view/ussd-view.c:92 msgid "Close" msgstr "Tancar" #: src/view/dialer-view.c:126 msgid "More" msgstr "Més" #: src/view/dialer-view.c:163 msgid "Send SMS" msgstr "Envia SMS" #: src/view/dialer-view.c:409 msgid "Cannot initiate call." msgstr "" #: src/view/dialog-view.c:65 #, fuzzy msgid "" "Your SIM storage is full. Please delete some messages or you may not receive " "them anymore!" msgstr "" "L'emmagatzematge està ple. Si us plau, elimina alguns missatges o no podràs " "rebre'n més!" #: src/view/dialog-view.c:68 msgid "GSM is not available, because no SIM card is present." msgstr "El GSM no està disponible perquè no hi ha cap targeta SIM." #: src/view/dialog-view.c:70 msgid "Unknown message." msgstr "Missatge desconegut." #: src/view/message-list-view.c:95 msgid "Messages" msgstr "Missatges" #: src/view/message-list-view.c:118 src/view/message-show-view.c:211 msgid "Options" msgstr "Opcions" #: src/view/message-list-view.c:132 src/view/message-show-view.c:264 msgid "Answer" msgstr "Respondre" #: src/view/message-list-view.c:148 src/view/message-list-view.c:534 #: src/view/message-show-view.c:254 msgid "Forward" msgstr "" #: src/view/message-list-view.c:165 src/view/message-list-view.c:529 msgid "Show" msgstr "Mostra" #: src/view/message-list-view.c:187 src/view/message-list-view.c:198 #, fuzzy msgid "Loading..." msgstr "Carregant..." #: src/view/message-list-view.c:381 src/view/message-show-view.c:428 #, fuzzy msgid "Deleting the message failed!" msgstr "Elimina el Missatge" #: src/view/message-list-view.c:423 src/view/message-show-view.c:457 msgid "Really delete this message?" msgstr "" #: src/view/message-list-view.c:551 msgid "Error while trying to resolve the number" msgstr "" #: src/view/message-list-view.c:583 msgid "Error while retrieving messages" msgstr "" #: src/view/message-list-view.c:591 msgid "There are no messages" msgstr "" #: src/view/message-list-view.c:623 msgid "Error while retrieving a message" msgstr "" #: src/view/message-new-view.c:104 msgid "New Message" msgstr "Missatge Nou" #: src/view/message-new-view.c:263 msgid "Enter your message" msgstr "" #: src/view/message-new-view.c:285 msgid "Continue" msgstr "Continuar" #: src/view/message-new-view.c:309 msgid "Define Recipients" msgstr "Defineix Destinataris" #: src/view/message-new-view.c:346 #, fuzzy msgid "Number" msgstr "Número: " #: src/view/message-new-view.c:355 msgid "Send" msgstr "Envia" #: src/view/message-new-view.c:379 src/view/message-show-view.c:244 msgid "Add Contact" msgstr "Afegir Contacte" #: src/view/message-new-view.c:392 src/view/message-new-view.c:428 msgid "Add" msgstr "Afegir" #: src/view/message-new-view.c:418 msgid "Add Number" msgstr "Afegir Número" #: src/view/message-new-view.c:653 msgid "You have entered
an invalid number." msgstr "" #: src/view/message-new-view.c:700 src/view/message-new-view.c:745 #, c-format msgid "%d characters left [%d]" msgstr "%d caràcters restants [%d]" #: src/view/message-new-view.c:790 msgid "Error will trying to resolve number." msgstr "" #: src/view/message-new-view.c:823 msgid "Sending the message failed" msgstr "" #: src/view/message-new-view.c:859 #, fuzzy msgid "Do you really want to quit writing this message?" msgstr "Estàs segur que vols sortir?" #: src/view/message-show-view.c:81 #, fuzzy msgid "Message" msgstr "Missatges" #: src/view/sim-auth-input-view.c:87 msgid "SIM Auth" msgstr "Identificació SIM" #: src/view/sim-auth-input-view.c:108 msgid "OK" msgstr "D'acord" #: src/view/sim-auth-input-view.c:162 msgid "Please enter your PIN" msgstr "Si us plau, introdueix el teu PIN" #: src/view/sim-auth-input-view.c:167 #, fuzzy msgid "Please enter your PIN2" msgstr "Si us plau, introdueix el teu PIN" #: src/view/sim-auth-input-view.c:172 msgid "Please enter your PUK" msgstr "Si us plau, introdueix el teu PUK" #: src/view/sim-auth-input-view.c:177 #, fuzzy msgid "Please enter your PUK2" msgstr "Si us plau, introdueix el teu PUK" #: src/view/sim-auth-input-view.c:183 msgid "SIM unlocked" msgstr "" #: src/view/sim-auth-input-view.c:190 #, fuzzy msgid "Unknown error" msgstr "Missatge desconegut." #: src/view/sim-auth-input-view.c:228 msgid "PIN wrong" msgstr "PIN incorrecte" #: src/view/sim-auth-input-view.c:234 msgid "PIN Ok" msgstr "" #: src/view/sim-auth-input-view.c:251 msgid "PUK wrong" msgstr "PUK incorrecte" #: src/view/sim-auth-input-view.c:257 msgid "PUK Ok" msgstr "" #: src/view/sim-auth-input-view.c:273 src/view/sim-auth-input-view.c:292 #, fuzzy msgid "Checking..." msgstr "Verificant" #: src/view/sim-auth-input-view.c:281 #, fuzzy msgid "Please enter a new PIN" msgstr "Si us plau, introdueix el teu PIN" #: src/view/sim-auth-input-view.c:287 #, fuzzy msgid "Please confirm the new PIN" msgstr "Si us plau, introdueix el teu PIN" #: src/view/ussd-view.c:88 msgid "Data:" msgstr "Data:" #: src/widget/elm_keypad.c:145 msgid "ABC" msgstr "ABC" #: src/widget/elm_keypad.c:146 msgid "DEF" msgstr "DEF" #: src/widget/elm_keypad.c:147 msgid "GHI" msgstr "GHI" #: src/widget/elm_keypad.c:148 msgid "JKL" msgstr "JKL" #: src/widget/elm_keypad.c:149 msgid "MNO" msgstr "MNO" #: src/widget/elm_keypad.c:150 msgid "PQRS" msgstr "PQRS" #: src/widget/elm_keypad.c:151 msgid "TUV" msgstr "TUV" #: src/widget/elm_keypad.c:152 msgid "WXYZ" msgstr "" #~ msgid "New Contact" #~ msgstr "Contacte Nou" #~ msgid "Accept" #~ msgstr "Accepta" #~ msgid "Do you really want to delete it?" #~ msgstr "Estàs segur que vols eliminar-lo?" #~ msgid "Yes" #~ msgstr "Sí" #~ msgid "No" #~ msgstr "No" #~ msgid "Compose SMS" #~ msgstr "Escriu SMS" #, fuzzy #~ msgid "Show Contact" #~ msgstr "Contacte Nou" #, fuzzy #~ msgid "Actions" #~ msgstr "Opcions" #, fuzzy #~ msgid "Value: " #~ msgstr "Nom: " #~ msgid "Deleting.." #~ msgstr "Eliminant.." #~ msgid "Inbox" #~ msgstr "Safata d'entrada" #~ msgid "Show Message" #~ msgstr "Mostra el Missatge" #~ msgid "SMS Answer" #~ msgstr "Respon SMS" #~ msgid "Add a Contact" #~ msgstr "Afegir un Contacte" #~ msgid "Add a Number" #~ msgstr "Afegir un Número" #~ msgid "Sending.." #~ msgstr "Enviant.." #~ msgid "From:" #~ msgstr "De:" #~ msgid "Date:" #~ msgstr "Data:" #~ msgid "Status:" #~ msgstr "Estat:" #~ msgid "PIN correct" #~ msgstr "PIN correcte" #~ msgid "Enter a NEW PIN" #~ msgstr "Introdueix un nou PIN" #~ msgid "Confirm your NEW PIN" #~ msgstr "Confirma el nou PIN" #~ msgid "PIN must be 4-8 chars long" #~ msgstr "el PIN ha de tenir una longitud d'entre 4 i 8 caràcters." #~ msgid "PIN confirmation wrong" #~ msgstr "Confirmació del PIN incorrecta" #~ msgid "XYZ" #~ msgstr "XYZ" #~ msgid "Edit Contact" #~ msgstr "Editar Contacte" #~ msgid "Incoming call" #~ msgstr "Trucada entrant" #~ msgid "New PIN saved" #~ msgstr "Nou PIN desat" #~ msgid "Active call" #~ msgstr "Trucada activa" #~ msgid "Loading.." #~ msgstr "Carregant.." #~ msgid "Folders" #~ msgstr "Directoris" #~ msgid "%d messages" #~ msgstr "%d missatges" #~ msgid "No Speaker" #~ msgstr "No Altaveus" #~ msgid "Show Keypad" #~ msgstr "Mostra el Teclat Numèric" #~ msgid "Modify" #~ msgstr "Modificar" #~ msgid "Modify Contact" #~ msgstr "Modificar Contacte" #~ msgid "" #~ "Your storage is full. Before adding new contacts, you have to delete some " #~ "old ones." #~ msgstr "" #~ "L'emmagatzematge està ple. Abans d'afegir nous missatges has de eliminar-" #~ "ne algun d'antic." libphone-ui-shr-0.1+git20130901/po/cs.po000066400000000000000000000267471221067027500173630ustar00rootroot00000000000000# Czech translations for libphone-ui-shr # This file is put in the public domain. # Jakob Simeth , 2009. # msgid "" msgstr "" "Project-Id-Version: libphone-ui-shr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-08-13 19:05+0000\n" "PO-Revision-Date: \n" "Last-Translator: Krystof Celba \n" "Language-Team: Czech\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/phoneui-call.c:140 src/view/contact-list-view.c:91 #: src/view/contact-view.c:205 src/view/dialer-view.c:133 #: src/view/message-list-view.c:140 src/view/message-show-view.c:235 msgid "Call" msgstr "Volat" #: src/phoneui-dialog.c:34 msgid "Information" msgstr "Informace" #: src/phoneui-ussd.c:35 msgid "Service Data" msgstr "Servisní Data" #: src/view/call-active-view.c:160 src/view/call-common.c:144 msgid "Speaker" msgstr "Reproduktor" #: src/view/call-active-view.c:171 msgid "Mute" msgstr "Ztlumit" #: src/view/call-active-view.c:181 msgid "Volume" msgstr "Hlasitost" #: src/view/call-active-view.c:194 msgid "Mic" msgstr "Mikrofon" #: src/view/call-active-view.c:205 src/view/call-common.c:205 msgid "Release" msgstr "Zavěsit" #: src/view/call-active-view.c:212 src/view/call-active-view.c:261 msgid "Keypad" msgstr "Klávesnice" #: src/view/call-active-view.c:266 msgid "Hide Keypad" msgstr "Skrýt klávesnici" #: src/view/call-common.c:129 msgid "Bluetooth" msgstr "" #: src/view/call-common.c:132 msgid "Handset" msgstr "" #: src/view/call-common.c:135 msgid "Headset" msgstr "" #: src/view/call-common.c:183 msgid "Pickup" msgstr "" #: src/view/contact-list-view.c:73 msgid "Contacts" msgstr "Kontakty" #: src/view/contact-list-view.c:98 src/view/contact-view.c:212 msgid "SMS" msgstr "SMS" #: src/view/contact-list-view.c:105 src/view/message-list-view.c:109 msgid "New" msgstr "Nový" #: src/view/contact-list-view.c:210 src/view/message-list-view.c:518 #: src/view/message-list-view.c:523 msgid "Edit" msgstr "Upravit" #: src/view/contact-list-view.c:212 src/view/contact-list-view.c:224 #: src/view/contact-view.c:219 src/view/message-list-view.c:156 #: src/view/message-show-view.c:226 src/view/sim-auth-input-view.c:101 msgid "Delete" msgstr "Smazat" #: src/view/contact-list-view.c:213 msgid "Unselect" msgstr "Odznačit" #: src/view/contact-list-view.c:227 msgid "Unselect all" msgstr "Odznačit všechny" #: src/view/contact-list-view.c:361 msgid "Really delete contact details?" msgstr "Opravdu smazat údaje kontaktu?" #: src/view/contact-list-view.c:397 msgid "Failed adding contact." msgstr "Selhalo přidání kontaktu." #: src/view/contact-view.c:110 src/view/message-new-view.c:337 #, fuzzy msgid "Contact" msgstr "Kontakt" #: src/view/contact-view.c:191 src/view/contact-view.c:806 #: src/view/dialer-view.c:155 msgid "Save" msgstr "Uložit" #: src/view/contact-view.c:198 msgid "Cancel" msgstr "Zrušit" #: src/view/contact-view.c:227 msgid "Add Field" msgstr "Přidat pole" #: src/view/contact-view.c:379 #, fuzzy msgid "Deleting the contact failed!" msgstr "Odstranění kontaktu se nezdařilo!" #: src/view/contact-view.c:408 msgid "Really delete this contact?" msgstr "Opravdu smazat tento kontakt?" #: src/view/contact-view.c:719 msgid "Updating contact failed." msgstr "Aktualizace kontaktu se nezdařila." #: src/view/contact-view.c:734 msgid "Adding the contact failed." msgstr "Přidání kontaktu se nezdařilo." #: src/view/contact-view.c:752 msgid "Failed loading data of saved contact." msgstr "Selhalo načítání dat uloženého kontaktu." #: src/view/contact-view.c:813 src/view/message-new-view.c:329 #: src/view/message-new-view.c:385 src/view/message-new-view.c:421 msgid "Back" msgstr "Zpět" #: src/view/contact-view.c:820 msgid "Remove" msgstr "Smazat" #: src/view/dialer-view.c:70 msgid "Dialer" msgstr "" #: src/view/dialer-view.c:92 msgid "Click to open contactlist." msgstr "Kliknutím otevřete seznam kontaktů." #: src/view/dialer-view.c:119 src/view/dialog-view.c:73 #: src/view/message-new-view.c:277 src/view/message-show-view.c:201 #: src/view/ussd-view.c:92 msgid "Close" msgstr "Zavřít" #: src/view/dialer-view.c:126 msgid "More" msgstr "Více" #: src/view/dialer-view.c:163 msgid "Send SMS" msgstr "Odeslat SMS" #: src/view/dialer-view.c:409 msgid "Cannot initiate call." msgstr "Nemůžu zahájit hovor." #: src/view/dialog-view.c:65 #, fuzzy msgid "" "Your SIM storage is full. Please delete some messages or you may not receive " "them anymore!" msgstr "Paměť Vaší SIM karty je plná. Prosím smažte nějak zprávy nebo nebude možné přijmout nové zprávy!." #: src/view/dialog-view.c:68 msgid "GSM is not available, because no SIM card is present." msgstr "GSM není k dispozici, protože SIM karta není k dispozici." #: src/view/dialog-view.c:70 msgid "Unknown message." msgstr "Neznámá zpráva." #: src/view/message-list-view.c:95 msgid "Messages" msgstr "Zprávy" #: src/view/message-list-view.c:118 src/view/message-show-view.c:211 msgid "Options" msgstr "Možnosti" #: src/view/message-list-view.c:132 src/view/message-show-view.c:264 msgid "Answer" msgstr "Odpověď" #: src/view/message-list-view.c:148 src/view/message-list-view.c:534 #: src/view/message-show-view.c:254 msgid "Forward" msgstr "Přeposlat" #: src/view/message-list-view.c:165 src/view/message-list-view.c:529 msgid "Show" msgstr "Zobrazit" #: src/view/message-list-view.c:187 src/view/message-list-view.c:198 #, fuzzy msgid "Loading..." msgstr "Načítání... " #: src/view/message-list-view.c:381 src/view/message-show-view.c:428 #, fuzzy msgid "Deleting the message failed!" msgstr "Odstranění zprávy selhalo!" #: src/view/message-list-view.c:423 src/view/message-show-view.c:457 msgid "Really delete this message?" msgstr "Opravdu smazat tuto zprávu?" #: src/view/message-list-view.c:551 msgid "Error while trying to resolve the number" msgstr "Chyba při pokusu o vyřešení čísla" #: src/view/message-list-view.c:583 msgid "Error while retrieving messages" msgstr "Chyba při načítání zpráv" #: src/view/message-list-view.c:591 msgid "There are no messages" msgstr "Nejsou zde žádné zprávy" #: src/view/message-list-view.c:623 msgid "Error while retrieving a message" msgstr "Chyba při načítání zprávy" #: src/view/message-new-view.c:104 msgid "New Message" msgstr "Nová zpráva" #: src/view/message-new-view.c:263 msgid "Enter your message" msgstr "Napište vaši zprávu" #: src/view/message-new-view.c:285 msgid "Continue" msgstr "Pokračovat" #: src/view/message-new-view.c:309 msgid "Define Recipients" msgstr "Definovat příjemce" #: src/view/message-new-view.c:346 #, fuzzy msgid "Number" msgstr "Číslo" #: src/view/message-new-view.c:355 msgid "Send" msgstr "Odeslat" #: src/view/message-new-view.c:379 src/view/message-show-view.c:244 msgid "Add Contact" msgstr "Přidat kontakt" #: src/view/message-new-view.c:392 src/view/message-new-view.c:428 msgid "Add" msgstr "Přidat" #: src/view/message-new-view.c:418 msgid "Add Number" msgstr "Přidat číslo" #: src/view/message-new-view.c:653 msgid "You have entered
an invalid number." msgstr "Zadal jste neplatné číslo." #: src/view/message-new-view.c:700 src/view/message-new-view.c:745 #, c-format msgid "%d characters left [%d]" msgstr "%d znaků zbývá [%d]" #: src/view/message-new-view.c:790 msgid "Error will trying to resolve number." msgstr "Chyba při pokusu o vyřešení čísla" #: src/view/message-new-view.c:823 msgid "Sending the message failed" msgstr "Odesílání zprávy se nezdařilo" #: src/view/message-new-view.c:859 #, fuzzy msgid "Do you really want to quit writing this message?" msgstr "Opravdu chcete opustit psaní zprávy?" #: src/view/message-show-view.c:81 #, fuzzy msgid "Message" msgstr "Zpráva" #: src/view/sim-auth-input-view.c:87 msgid "SIM Auth" msgstr "" #: src/view/sim-auth-input-view.c:108 msgid "OK" msgstr "OK" #: src/view/sim-auth-input-view.c:162 msgid "Please enter your PIN" msgstr "Prosím zadejte Váš PIN" #: src/view/sim-auth-input-view.c:167 #, fuzzy msgid "Please enter your PIN2" msgstr "Prosím zadejte Váš PIN2" #: src/view/sim-auth-input-view.c:172 msgid "Please enter your PUK" msgstr "Prosím zadejte Váš PUK" #: src/view/sim-auth-input-view.c:177 #, fuzzy msgid "Please enter your PUK2" msgstr "Prosím zadejte Váš PUK2" #: src/view/sim-auth-input-view.c:183 msgid "SIM unlocked" msgstr "SIM odemčena" #: src/view/sim-auth-input-view.c:190 #, fuzzy msgid "Unknown error" msgstr "Neznámá chyba" #: src/view/sim-auth-input-view.c:228 msgid "PIN wrong" msgstr "Nesprávné PIN" #: src/view/sim-auth-input-view.c:234 msgid "PIN Ok" msgstr "" #: src/view/sim-auth-input-view.c:251 msgid "PUK wrong" msgstr "Nesprávné PUK" #: src/view/sim-auth-input-view.c:257 msgid "PUK Ok" msgstr "" #: src/view/sim-auth-input-view.c:273 src/view/sim-auth-input-view.c:292 #, fuzzy msgid "Checking..." msgstr "Ověřování" #: src/view/sim-auth-input-view.c:281 #, fuzzy msgid "Please enter a new PIN" msgstr "Prosím zadejte nový PIN" #: src/view/sim-auth-input-view.c:287 #, fuzzy msgid "Please confirm the new PIN" msgstr "Prosím zadejte Váš nový PIN znovu" #: src/view/ussd-view.c:88 #, fuzzy msgid "Data:" msgstr "Datum:" #: src/widget/elm_keypad.c:145 msgid "ABC" msgstr "" #: src/widget/elm_keypad.c:146 msgid "DEF" msgstr "" #: src/widget/elm_keypad.c:147 msgid "GHI" msgstr "" #: src/widget/elm_keypad.c:148 msgid "JKL" msgstr "" #: src/widget/elm_keypad.c:149 msgid "MNO" msgstr "" #: src/widget/elm_keypad.c:150 msgid "PQRS" msgstr "" #: src/widget/elm_keypad.c:151 msgid "TUV" msgstr "" #: src/widget/elm_keypad.c:152 msgid "WXYZ" msgstr "" #~ msgid "New Contact" #~ msgstr "Neuer Kontakt" #~ msgid "Accept" #~ msgstr "Annehmen" #~ msgid "Do you really want to delete it?" #~ msgstr "Wirklich löschen?" #~ msgid "Yes" #~ msgstr "Ja" #~ msgid "No" #~ msgstr "Nein" #~ msgid "Compose SMS" #~ msgstr "SMS erstellen" #, fuzzy #~ msgid "Show Contact" #~ msgstr "Neuer Kontakt" #, fuzzy #~ msgid "Actions" #~ msgstr "Optionen" #, fuzzy #~ msgid "Value: " #~ msgstr "Name: " #~ msgid "Deleting.." #~ msgstr "Löschen..." #~ msgid "Inbox" #~ msgstr "Eingang" #~ msgid "Show Message" #~ msgstr "Nachricht anzeigen" #~ msgid "SMS Answer" #~ msgstr "SMS beantworten" #~ msgid "Add a Contact" #~ msgstr "Kontakt hinzufügen" #~ msgid "Add a Number" #~ msgstr "Nummer hinzufügen" #~ msgid "Sending.." #~ msgstr "Sende..." #~ msgid "From:" #~ msgstr "Von:" #~ msgid "Date:" #~ msgstr "Datum:" #~ msgid "Status:" #~ msgstr "Status:" #~ msgid "PIN correct" #~ msgstr "PIN korrekt" #~ msgid "Enter a NEW PIN" #~ msgstr "Neue PIN eingeben" #~ msgid "Confirm your NEW PIN" #~ msgstr "Neue PIN bestätigen" #~ msgid "PIN must be 4-8 chars long" #~ msgstr "PIN muss 4-8 Zeichen lang sein" #~ msgid "PIN confirmation wrong" #~ msgstr "PIN-Bestätigung falsch" #~ msgid "Modify" #~ msgstr "Ändern" #~ msgid "Modify Contact" #~ msgstr "Kontakt ändern" #~ msgid "" #~ "Your storage is full. Before adding new contacts, you have to delete some " #~ "old ones." #~ msgstr "" #~ "Speicher voll. Um neue Kontakte hinzuzufügen, müssen erst alte gelöscht " #~ "werden." #~ msgid "No Speaker" #~ msgstr "Lautsprecher aus" #~ msgid "Show Keypad" #~ msgstr "Tastatur anzeigen" #~ msgid "Edit Contact" #~ msgstr "Kontakt bearbeiten" #~ msgid "Active call" #~ msgstr "Aktives Gespräch" #~ msgid "Incoming call" #~ msgstr "Eingehender Anruf" #~ msgid "Loading.." #~ msgstr "Lade..." #~ msgid "Folders" #~ msgstr "Ordner" #~ msgid "%d messages" #~ msgstr "%d Nachrichten" #~ msgid "New PIN saved" #~ msgstr "Neue PIN gespeichert" libphone-ui-shr-0.1+git20130901/po/de.po000066400000000000000000000253551221067027500173400ustar00rootroot00000000000000# German translations for libframeworkd-phoneui-efl # This file is put in the public domain. # Jakob Simeth , 2009. # msgid "" msgstr "" "Project-Id-Version: libframeworkd-phoneui-efl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-24 22:45+0000\n" "PO-Revision-Date: \n" "Last-Translator: Jakob Simeth \n" "Language-Team: German\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/phoneui-call.c:140 src/view/contact-list-view.c:91 #: src/view/contact-view.c:205 src/view/dialer-view.c:133 #: src/view/message-list-view.c:140 src/view/message-show-view.c:235 msgid "Call" msgstr "Anrufen" #: src/phoneui-dialog.c:34 msgid "Information" msgstr "Informationen" #: src/phoneui-ussd.c:35 msgid "Service Data" msgstr "" #: src/view/call-active-view.c:160 src/view/call-common.c:144 msgid "Speaker" msgstr "Lautsprecher" #: src/view/call-active-view.c:171 msgid "Mute" msgstr "" #: src/view/call-active-view.c:181 msgid "Volume" msgstr "" #: src/view/call-active-view.c:194 msgid "Mic" msgstr "" #: src/view/call-active-view.c:205 src/view/call-common.c:205 msgid "Release" msgstr "Auflegen" #: src/view/call-active-view.c:212 src/view/call-active-view.c:261 msgid "Keypad" msgstr "Tastatur" #: src/view/call-active-view.c:266 msgid "Hide Keypad" msgstr "Tastatur ausblenden" #: src/view/call-common.c:129 msgid "Bluetooth" msgstr "" #: src/view/call-common.c:132 msgid "Handset" msgstr "" #: src/view/call-common.c:135 msgid "Headset" msgstr "" #: src/view/call-common.c:183 msgid "Pickup" msgstr "" #: src/view/contact-list-view.c:73 msgid "Contacts" msgstr "Kontakte" #: src/view/contact-list-view.c:98 src/view/contact-view.c:212 msgid "SMS" msgstr "SMS" #: src/view/contact-list-view.c:105 src/view/message-list-view.c:109 msgid "New" msgstr "Neu" #: src/view/contact-list-view.c:210 src/view/message-list-view.c:518 #: src/view/message-list-view.c:523 msgid "Edit" msgstr "Bearbeiten" #: src/view/contact-list-view.c:212 src/view/contact-list-view.c:224 #: src/view/contact-view.c:219 src/view/message-list-view.c:156 #: src/view/message-show-view.c:226 src/view/sim-auth-input-view.c:101 msgid "Delete" msgstr "Löschen" #: src/view/contact-list-view.c:213 msgid "Unselect" msgstr "" #: src/view/contact-list-view.c:227 msgid "Unselect all" msgstr "" #: src/view/contact-list-view.c:361 msgid "Really delete contact details?" msgstr "" #: src/view/contact-list-view.c:397 msgid "Failed adding contact." msgstr "" #: src/view/contact-view.c:110 src/view/message-new-view.c:337 #, fuzzy msgid "Contact" msgstr "Kontakte" #: src/view/contact-view.c:191 src/view/contact-view.c:806 #: src/view/dialer-view.c:155 msgid "Save" msgstr "Speichern" #: src/view/contact-view.c:198 msgid "Cancel" msgstr "" #: src/view/contact-view.c:227 msgid "Add Field" msgstr "" #: src/view/contact-view.c:379 #, fuzzy msgid "Deleting the contact failed!" msgstr "Kontakt löschen?" #: src/view/contact-view.c:408 msgid "Really delete this contact?" msgstr "" #: src/view/contact-view.c:719 msgid "Updating contact failed." msgstr "" #: src/view/contact-view.c:734 msgid "Adding the contact failed." msgstr "" #: src/view/contact-view.c:752 msgid "Failed loading data of saved contact." msgstr "" #: src/view/contact-view.c:813 src/view/message-new-view.c:329 #: src/view/message-new-view.c:385 src/view/message-new-view.c:421 msgid "Back" msgstr "Zurück" #: src/view/contact-view.c:820 msgid "Remove" msgstr "Entfernen" #: src/view/dialer-view.c:70 msgid "Dialer" msgstr "" #: src/view/dialer-view.c:92 msgid "Click to open contactlist." msgstr "Klicken um Kontaktliste zu öffnen" #: src/view/dialer-view.c:119 src/view/dialog-view.c:73 #: src/view/message-new-view.c:277 src/view/message-show-view.c:201 #: src/view/ussd-view.c:92 msgid "Close" msgstr "Schließen" #: src/view/dialer-view.c:126 msgid "More" msgstr "Mehr" #: src/view/dialer-view.c:163 msgid "Send SMS" msgstr "Nachricht senden" #: src/view/dialer-view.c:409 msgid "Cannot initiate call." msgstr "" #: src/view/dialog-view.c:65 #, fuzzy msgid "" "Your SIM storage is full. Please delete some messages or you may not receive " "them anymore!" msgstr "Speicher voll. Bitte Nachrichten löschen, um neue empfangen zu können." #: src/view/dialog-view.c:68 msgid "GSM is not available, because no SIM card is present." msgstr "GSM nicht verfügbar, weil keine SIM-Karte eingelegt ist." #: src/view/dialog-view.c:70 msgid "Unknown message." msgstr "Unbekannte Nachricht" #: src/view/message-list-view.c:95 msgid "Messages" msgstr "Nachrichten" #: src/view/message-list-view.c:118 src/view/message-show-view.c:211 msgid "Options" msgstr "Optionen" #: src/view/message-list-view.c:132 src/view/message-show-view.c:264 msgid "Answer" msgstr "Antworten" #: src/view/message-list-view.c:148 src/view/message-list-view.c:534 #: src/view/message-show-view.c:254 msgid "Forward" msgstr "" #: src/view/message-list-view.c:165 src/view/message-list-view.c:529 msgid "Show" msgstr "Zeigen" #: src/view/message-list-view.c:187 src/view/message-list-view.c:198 #, fuzzy msgid "Loading..." msgstr "Laden... " #: src/view/message-list-view.c:381 src/view/message-show-view.c:428 #, fuzzy msgid "Deleting the message failed!" msgstr "Nachricht löschen" #: src/view/message-list-view.c:423 src/view/message-show-view.c:457 msgid "Really delete this message?" msgstr "" #: src/view/message-list-view.c:551 msgid "Error while trying to resolve the number" msgstr "" #: src/view/message-list-view.c:583 msgid "Error while retrieving messages" msgstr "" #: src/view/message-list-view.c:591 msgid "There are no messages" msgstr "" #: src/view/message-list-view.c:623 msgid "Error while retrieving a message" msgstr "" #: src/view/message-new-view.c:104 msgid "New Message" msgstr "Nachricht" #: src/view/message-new-view.c:263 msgid "Enter your message" msgstr "" #: src/view/message-new-view.c:285 msgid "Continue" msgstr "Weiter" #: src/view/message-new-view.c:309 msgid "Define Recipients" msgstr "Empfänger hinzufügen" #: src/view/message-new-view.c:346 #, fuzzy msgid "Number" msgstr "Nummer: " #: src/view/message-new-view.c:355 msgid "Send" msgstr "Senden" #: src/view/message-new-view.c:379 src/view/message-show-view.c:244 msgid "Add Contact" msgstr "Kontakt hinzufügen" #: src/view/message-new-view.c:392 src/view/message-new-view.c:428 msgid "Add" msgstr "Hinzufügen" #: src/view/message-new-view.c:418 msgid "Add Number" msgstr "Nummer hinzufügen" #: src/view/message-new-view.c:653 msgid "You have entered
an invalid number." msgstr "" #: src/view/message-new-view.c:700 src/view/message-new-view.c:745 #, c-format msgid "%d characters left [%d]" msgstr "%d Zeichen übrig [%d]" #: src/view/message-new-view.c:790 msgid "Error will trying to resolve number." msgstr "" #: src/view/message-new-view.c:823 msgid "Sending the message failed" msgstr "" #: src/view/message-new-view.c:859 #, fuzzy msgid "Do you really want to quit writing this message?" msgstr "Wirklich beenden?" #: src/view/message-show-view.c:81 #, fuzzy msgid "Message" msgstr "Nachrichten" #: src/view/sim-auth-input-view.c:87 msgid "SIM Auth" msgstr "" #: src/view/sim-auth-input-view.c:108 msgid "OK" msgstr "OK" #: src/view/sim-auth-input-view.c:162 msgid "Please enter your PIN" msgstr "PIN eingeben" #: src/view/sim-auth-input-view.c:167 #, fuzzy msgid "Please enter your PIN2" msgstr "PIN eingeben" #: src/view/sim-auth-input-view.c:172 msgid "Please enter your PUK" msgstr "PUK eingeben" #: src/view/sim-auth-input-view.c:177 #, fuzzy msgid "Please enter your PUK2" msgstr "PUK eingeben" #: src/view/sim-auth-input-view.c:183 msgid "SIM unlocked" msgstr "" #: src/view/sim-auth-input-view.c:190 #, fuzzy msgid "Unknown error" msgstr "Unbekannte Nachricht" #: src/view/sim-auth-input-view.c:228 msgid "PIN wrong" msgstr "PIN falsch" #: src/view/sim-auth-input-view.c:234 msgid "PIN Ok" msgstr "" #: src/view/sim-auth-input-view.c:251 msgid "PUK wrong" msgstr "PUK falsch" #: src/view/sim-auth-input-view.c:257 msgid "PUK Ok" msgstr "" #: src/view/sim-auth-input-view.c:273 src/view/sim-auth-input-view.c:292 #, fuzzy msgid "Checking..." msgstr "Überprüfe" #: src/view/sim-auth-input-view.c:281 #, fuzzy msgid "Please enter a new PIN" msgstr "PIN eingeben" #: src/view/sim-auth-input-view.c:287 #, fuzzy msgid "Please confirm the new PIN" msgstr "PIN eingeben" #: src/view/ussd-view.c:88 #, fuzzy msgid "Data:" msgstr "Datum:" #: src/widget/elm_keypad.c:145 msgid "ABC" msgstr "" #: src/widget/elm_keypad.c:146 msgid "DEF" msgstr "" #: src/widget/elm_keypad.c:147 msgid "GHI" msgstr "" #: src/widget/elm_keypad.c:148 msgid "JKL" msgstr "" #: src/widget/elm_keypad.c:149 msgid "MNO" msgstr "" #: src/widget/elm_keypad.c:150 msgid "PQRS" msgstr "" #: src/widget/elm_keypad.c:151 msgid "TUV" msgstr "" #: src/widget/elm_keypad.c:152 msgid "WXYZ" msgstr "" #~ msgid "New Contact" #~ msgstr "Neuer Kontakt" #~ msgid "Accept" #~ msgstr "Annehmen" #~ msgid "Do you really want to delete it?" #~ msgstr "Wirklich löschen?" #~ msgid "Yes" #~ msgstr "Ja" #~ msgid "No" #~ msgstr "Nein" #~ msgid "Compose SMS" #~ msgstr "SMS erstellen" #, fuzzy #~ msgid "Show Contact" #~ msgstr "Neuer Kontakt" #, fuzzy #~ msgid "Actions" #~ msgstr "Optionen" #, fuzzy #~ msgid "Value: " #~ msgstr "Name: " #~ msgid "Deleting.." #~ msgstr "Löschen..." #~ msgid "Inbox" #~ msgstr "Eingang" #~ msgid "Show Message" #~ msgstr "Nachricht anzeigen" #~ msgid "SMS Answer" #~ msgstr "SMS beantworten" #~ msgid "Add a Contact" #~ msgstr "Kontakt hinzufügen" #~ msgid "Add a Number" #~ msgstr "Nummer hinzufügen" #~ msgid "Sending.." #~ msgstr "Sende..." #~ msgid "From:" #~ msgstr "Von:" #~ msgid "Date:" #~ msgstr "Datum:" #~ msgid "Status:" #~ msgstr "Status:" #~ msgid "PIN correct" #~ msgstr "PIN korrekt" #~ msgid "Enter a NEW PIN" #~ msgstr "Neue PIN eingeben" #~ msgid "Confirm your NEW PIN" #~ msgstr "Neue PIN bestätigen" #~ msgid "PIN must be 4-8 chars long" #~ msgstr "PIN muss 4-8 Zeichen lang sein" #~ msgid "PIN confirmation wrong" #~ msgstr "PIN-Bestätigung falsch" #~ msgid "Modify" #~ msgstr "Ändern" #~ msgid "Modify Contact" #~ msgstr "Kontakt ändern" #~ msgid "" #~ "Your storage is full. Before adding new contacts, you have to delete some " #~ "old ones." #~ msgstr "" #~ "Speicher voll. Um neue Kontakte hinzuzufügen, müssen erst alte gelöscht " #~ "werden." #~ msgid "No Speaker" #~ msgstr "Lautsprecher aus" #~ msgid "Show Keypad" #~ msgstr "Tastatur anzeigen" #~ msgid "Edit Contact" #~ msgstr "Kontakt bearbeiten" #~ msgid "Active call" #~ msgstr "Aktives Gespräch" #~ msgid "Incoming call" #~ msgstr "Eingehender Anruf" #~ msgid "Loading.." #~ msgstr "Lade..." #~ msgid "Folders" #~ msgstr "Ordner" #~ msgid "%d messages" #~ msgstr "%d Nachrichten" #~ msgid "New PIN saved" #~ msgstr "Neue PIN gespeichert" libphone-ui-shr-0.1+git20130901/po/es.po000066400000000000000000000267271221067027500173630ustar00rootroot00000000000000# David Garabana Barro , 2009. msgid "" msgstr "" "Project-Id-Version: libphone-ui-shr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-24 22:45+0000\n" "PO-Revision-Date: 2009-12-19 14:06+0100\n" "Last-Translator: David Garabana Barro \n" "Language-Team: Galician <>\n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: src/phoneui-call.c:140 src/view/contact-list-view.c:91 #: src/view/contact-view.c:205 src/view/dialer-view.c:133 #: src/view/message-list-view.c:140 src/view/message-show-view.c:235 msgid "Call" msgstr "Llamar" #: src/phoneui-dialog.c:34 msgid "Information" msgstr "Información" #: src/phoneui-ussd.c:35 msgid "Service Data" msgstr "Datos del servicio" #: src/view/call-active-view.c:160 src/view/call-common.c:144 msgid "Speaker" msgstr "Altavoz" #: src/view/call-active-view.c:171 msgid "Mute" msgstr "Silenciar" #: src/view/call-active-view.c:181 msgid "Volume" msgstr "Volúmen" #: src/view/call-active-view.c:194 msgid "Mic" msgstr "Micrófono" #: src/view/call-active-view.c:205 src/view/call-common.c:205 msgid "Release" msgstr "Colgar" #: src/view/call-active-view.c:212 src/view/call-active-view.c:261 msgid "Keypad" msgstr "Teclado" #: src/view/call-active-view.c:266 msgid "Hide Keypad" msgstr "Ocultar" #: src/view/call-common.c:129 msgid "Bluetooth" msgstr "" #: src/view/call-common.c:132 msgid "Handset" msgstr "Normal" #: src/view/call-common.c:135 #, fuzzy msgid "Headset" msgstr "Normal" #: src/view/call-common.c:183 msgid "Pickup" msgstr "Descolgar" #: src/view/contact-list-view.c:73 msgid "Contacts" msgstr "Contactos" #: src/view/contact-list-view.c:98 src/view/contact-view.c:212 msgid "SMS" msgstr "SMS" #: src/view/contact-list-view.c:105 src/view/message-list-view.c:109 msgid "New" msgstr "Nuevo" #: src/view/contact-list-view.c:210 src/view/message-list-view.c:518 #: src/view/message-list-view.c:523 msgid "Edit" msgstr "Editar" #: src/view/contact-list-view.c:212 src/view/contact-list-view.c:224 #: src/view/contact-view.c:219 src/view/message-list-view.c:156 #: src/view/message-show-view.c:226 src/view/sim-auth-input-view.c:101 msgid "Delete" msgstr "Borrar" #: src/view/contact-list-view.c:213 msgid "Unselect" msgstr "" #: src/view/contact-list-view.c:227 msgid "Unselect all" msgstr "" #: src/view/contact-list-view.c:361 #, fuzzy msgid "Really delete contact details?" msgstr "¿Borrar este contacto?" #: src/view/contact-list-view.c:397 msgid "Failed adding contact." msgstr "" #: src/view/contact-view.c:110 src/view/message-new-view.c:337 msgid "Contact" msgstr "Contacto" #: src/view/contact-view.c:191 src/view/contact-view.c:806 #: src/view/dialer-view.c:155 msgid "Save" msgstr "Guardar" #: src/view/contact-view.c:198 msgid "Cancel" msgstr "" #: src/view/contact-view.c:227 msgid "Add Field" msgstr "Añadir campo" #: src/view/contact-view.c:379 #, fuzzy msgid "Deleting the contact failed!" msgstr "Borrar contacto" #: src/view/contact-view.c:408 msgid "Really delete this contact?" msgstr "¿Borrar este contacto?" #: src/view/contact-view.c:719 msgid "Updating contact failed." msgstr "" #: src/view/contact-view.c:734 msgid "Adding the contact failed." msgstr "" #: src/view/contact-view.c:752 msgid "Failed loading data of saved contact." msgstr "" #: src/view/contact-view.c:813 src/view/message-new-view.c:329 #: src/view/message-new-view.c:385 src/view/message-new-view.c:421 msgid "Back" msgstr "Atrás" #: src/view/contact-view.c:820 msgid "Remove" msgstr "Suprimir" #: src/view/dialer-view.c:70 msgid "Dialer" msgstr "Marcador" #: src/view/dialer-view.c:92 msgid "Click to open contactlist." msgstr " Pulse para abrir la lista de contactos." #: src/view/dialer-view.c:119 src/view/dialog-view.c:73 #: src/view/message-new-view.c:277 src/view/message-show-view.c:201 #: src/view/ussd-view.c:92 msgid "Close" msgstr "Cerrar" #: src/view/dialer-view.c:126 msgid "More" msgstr "Más" #: src/view/dialer-view.c:163 msgid "Send SMS" msgstr "Enviar SMS" #: src/view/dialer-view.c:409 msgid "Cannot initiate call." msgstr "" #: src/view/dialog-view.c:65 #, fuzzy msgid "" "Your SIM storage is full. Please delete some messages or you may not receive " "them anymore!" msgstr "" "La memoria de mensajes SMS está llena. No podrá recibir mensajes hasta que " "no libere espacio." #: src/view/dialog-view.c:68 msgid "GSM is not available, because no SIM card is present." msgstr "" "La tarjeta SIM no está insertada o es incorrecta. La telefonía GSM no estará " "disponible." #: src/view/dialog-view.c:70 msgid "Unknown message." msgstr "Mensaje desconocido." #: src/view/message-list-view.c:95 msgid "Messages" msgstr "Mensajes" #: src/view/message-list-view.c:118 src/view/message-show-view.c:211 msgid "Options" msgstr "Opciones" #: src/view/message-list-view.c:132 src/view/message-show-view.c:264 msgid "Answer" msgstr "Responder" #: src/view/message-list-view.c:148 src/view/message-list-view.c:534 #: src/view/message-show-view.c:254 msgid "Forward" msgstr "" #: src/view/message-list-view.c:165 src/view/message-list-view.c:529 msgid "Show" msgstr "Mostrar" #: src/view/message-list-view.c:187 src/view/message-list-view.c:198 #, fuzzy msgid "Loading..." msgstr "Cargando... " #: src/view/message-list-view.c:381 src/view/message-show-view.c:428 #, fuzzy msgid "Deleting the message failed!" msgstr "Borrar el mensaje" #: src/view/message-list-view.c:423 src/view/message-show-view.c:457 #, fuzzy msgid "Really delete this message?" msgstr "¿Borrar este contacto?" #: src/view/message-list-view.c:551 msgid "Error while trying to resolve the number" msgstr "" #: src/view/message-list-view.c:583 msgid "Error while retrieving messages" msgstr "" #: src/view/message-list-view.c:591 msgid "There are no messages" msgstr "" #: src/view/message-list-view.c:623 msgid "Error while retrieving a message" msgstr "" #: src/view/message-new-view.c:104 msgid "New Message" msgstr "Mensaje nuevo" #: src/view/message-new-view.c:263 msgid "Enter your message" msgstr "" #: src/view/message-new-view.c:285 msgid "Continue" msgstr "Continuar" #: src/view/message-new-view.c:309 msgid "Define Recipients" msgstr "Escoja destinatarios" #: src/view/message-new-view.c:346 #, fuzzy msgid "Number" msgstr "Número: " #: src/view/message-new-view.c:355 msgid "Send" msgstr "Enviar" #: src/view/message-new-view.c:379 src/view/message-show-view.c:244 msgid "Add Contact" msgstr "Añadir contacto" #: src/view/message-new-view.c:392 src/view/message-new-view.c:428 msgid "Add" msgstr "Añadir" #: src/view/message-new-view.c:418 msgid "Add Number" msgstr "Añadir número" #: src/view/message-new-view.c:653 msgid "You have entered
an invalid number." msgstr "" #: src/view/message-new-view.c:700 src/view/message-new-view.c:745 #, c-format msgid "%d characters left [%d]" msgstr "Disponibles %d caracteres [%d]" #: src/view/message-new-view.c:790 msgid "Error will trying to resolve number." msgstr "" #: src/view/message-new-view.c:823 msgid "Sending the message failed" msgstr "" #: src/view/message-new-view.c:859 #, fuzzy msgid "Do you really want to quit writing this message?" msgstr "" "Si sale ahora, perderá todos los cambios.
¿Está seguro de que quiere " "salir?" #: src/view/message-show-view.c:81 msgid "Message" msgstr "Mensaje" #: src/view/sim-auth-input-view.c:87 msgid "SIM Auth" msgstr "Identificación SIM" #: src/view/sim-auth-input-view.c:108 msgid "OK" msgstr "Aceptar" #: src/view/sim-auth-input-view.c:162 msgid "Please enter your PIN" msgstr "Introduzca el PIN" #: src/view/sim-auth-input-view.c:167 msgid "Please enter your PIN2" msgstr "Introduzca el PIN2" #: src/view/sim-auth-input-view.c:172 msgid "Please enter your PUK" msgstr "Introduzca el PUK" #: src/view/sim-auth-input-view.c:177 msgid "Please enter your PUK2" msgstr "Introduzca el PUK2" #: src/view/sim-auth-input-view.c:183 msgid "SIM unlocked" msgstr "" #: src/view/sim-auth-input-view.c:190 msgid "Unknown error" msgstr "Error desconocido" #: src/view/sim-auth-input-view.c:228 msgid "PIN wrong" msgstr "PIN incorrecto" #: src/view/sim-auth-input-view.c:234 msgid "PIN Ok" msgstr "" #: src/view/sim-auth-input-view.c:251 msgid "PUK wrong" msgstr "PUK incorrecto" #: src/view/sim-auth-input-view.c:257 msgid "PUK Ok" msgstr "" #: src/view/sim-auth-input-view.c:273 src/view/sim-auth-input-view.c:292 #, fuzzy msgid "Checking..." msgstr "Comprobando" #: src/view/sim-auth-input-view.c:281 #, fuzzy msgid "Please enter a new PIN" msgstr "Introduzca el PIN" #: src/view/sim-auth-input-view.c:287 #, fuzzy msgid "Please confirm the new PIN" msgstr "Introduzca el PIN" #: src/view/ussd-view.c:88 msgid "Data:" msgstr "Datos:" #: src/widget/elm_keypad.c:145 msgid "ABC" msgstr "ABC" #: src/widget/elm_keypad.c:146 msgid "DEF" msgstr "DEF" #: src/widget/elm_keypad.c:147 msgid "GHI" msgstr "GHI" #: src/widget/elm_keypad.c:148 msgid "JKL" msgstr "JKL" #: src/widget/elm_keypad.c:149 msgid "MNO" msgstr "MNO" #: src/widget/elm_keypad.c:150 msgid "PQRS" msgstr "PQRS" #: src/widget/elm_keypad.c:151 msgid "TUV" msgstr "TUV" #: src/widget/elm_keypad.c:152 msgid "WXYZ" msgstr "" #, fuzzy #~ msgid "Really delete all of %s's details?" #~ msgstr "¿Borrar este contacto?" #~ msgid "New Contact" #~ msgstr "Contacto nuevo" #~ msgid "Accept" #~ msgstr "Responder" #~ msgid "Reject" #~ msgstr "Rechazar" #~ msgid "Do you really want to delete it?" #~ msgstr "¿Está seguro de que quiere eliminarlo?" #~ msgid "Yes" #~ msgstr "Sí" #~ msgid "No" #~ msgstr "No" #~ msgid "Compose SMS" #~ msgstr "Escribir SMS" #~ msgid "Show Contact" #~ msgstr "Mostrar el contacto" #~ msgid "Actions" #~ msgstr "Acciones" #~ msgid "Really discard all changes?" #~ msgstr "¿Descartar los cambios?" #~ msgid "Edit Field" #~ msgstr "Editar campo" #~ msgid "Field: " #~ msgstr "Campo: " #~ msgid "Value: " #~ msgstr "Valor: " #~ msgid "Deleting.." #~ msgstr "Borrando.." #~ msgid "Inbox" #~ msgstr "Bandeja de entrada" #~ msgid "Show Message" #~ msgstr "Mostrar el mensaje" #~ msgid "SMS Answer" #~ msgstr "Respuesta al SMS" #~ msgid "Add a Contact" #~ msgstr "Añadir un contacto" #~ msgid "Add a Number" #~ msgstr "Añadir un número" #~ msgid "Sending.." #~ msgstr "Enviando.." #~ msgid "From:" #~ msgstr "De:" #~ msgid "Date:" #~ msgstr "Fecha:" #~ msgid "Status:" #~ msgstr "Estado:" #~ msgid "PIN correct" #~ msgstr "PIN correcto" #~ msgid "Failed" #~ msgstr "Falló" #~ msgid "Enter a NEW PIN" #~ msgstr "Introduzca el nuevo PIN" #~ msgid "Confirm your NEW PIN" #~ msgstr "Confirme el nuevo PIN" #~ msgid "PIN must be 4-8 chars long" #~ msgstr "El PIN debe tener de 4 a 8 caracteres" #~ msgid "PIN confirmation wrong" #~ msgstr "Los PIN no son iguales" #~ msgid "XYZ" #~ msgstr "WXYZ" #~ msgid "Edit Contact" #~ msgstr "Editar contacto" #~ msgid "Incoming call" #~ msgstr "Llamada entrante" #~ msgid "New PIN saved" #~ msgstr "Se ha guardado el nuevo PIN" #~ msgid "Active call" #~ msgstr "Llamada activa" #~ msgid "Loading.." #~ msgstr "Cargando.." #~ msgid "Folders" #~ msgstr "Carpetas" #~ msgid "%d messages" #~ msgstr "%d mensajes" #~ msgid "No Speaker" #~ msgstr "No Altavoz" #~ msgid "Show Keypad" #~ msgstr "Mostrar el Teclado Numérico" #~ msgid "Modify" #~ msgstr "Modificar" #~ msgid "Modify Contact" #~ msgstr "Modificar contacto" #~ msgid "" #~ "Your storage is full. Before adding new contacts, you have to delete some " #~ "old ones." #~ msgstr "" #~ "Almacenamiento lleno. Antes de añadir nuevos mensajes debes eliminar " #~ "algún contacto antiguo." libphone-ui-shr-0.1+git20130901/po/fi.po000066400000000000000000000260031221067027500173350ustar00rootroot00000000000000# Finnish translations for libframeworkd-phoneui-efl # This file is put in the public domain. # Jussi Timperi , 2009. # Timo Jyrinki , 2009. # msgid "" msgstr "" "Project-Id-Version: libframeworkd-phoneui-efl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-24 22:45+0000\n" "PO-Revision-Date: 2009-03-10 15:49+0200\n" "Last-Translator: Timo Jyrinki \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/phoneui-call.c:140 src/view/contact-list-view.c:91 #: src/view/contact-view.c:205 src/view/dialer-view.c:133 #: src/view/message-list-view.c:140 src/view/message-show-view.c:235 msgid "Call" msgstr "Soita" #: src/phoneui-dialog.c:34 msgid "Information" msgstr "Tietoja" #: src/phoneui-ussd.c:35 msgid "Service Data" msgstr "Palveludata" #: src/view/call-active-view.c:160 src/view/call-common.c:144 msgid "Speaker" msgstr "Kaiutin" #: src/view/call-active-view.c:171 msgid "Mute" msgstr "" #: src/view/call-active-view.c:181 msgid "Volume" msgstr "" #: src/view/call-active-view.c:194 msgid "Mic" msgstr "" #: src/view/call-active-view.c:205 src/view/call-common.c:205 msgid "Release" msgstr "Lopeta" #: src/view/call-active-view.c:212 src/view/call-active-view.c:261 msgid "Keypad" msgstr "Näppäimistö" #: src/view/call-active-view.c:266 msgid "Hide Keypad" msgstr "Piilota näppäimistö" #: src/view/call-common.c:129 msgid "Bluetooth" msgstr "" #: src/view/call-common.c:132 msgid "Handset" msgstr "" #: src/view/call-common.c:135 msgid "Headset" msgstr "" #: src/view/call-common.c:183 msgid "Pickup" msgstr "" #: src/view/contact-list-view.c:73 msgid "Contacts" msgstr "Yhteystiedot" #: src/view/contact-list-view.c:98 src/view/contact-view.c:212 msgid "SMS" msgstr "SMS" #: src/view/contact-list-view.c:105 src/view/message-list-view.c:109 msgid "New" msgstr "Uusi" #: src/view/contact-list-view.c:210 src/view/message-list-view.c:518 #: src/view/message-list-view.c:523 msgid "Edit" msgstr "Muokkaa" #: src/view/contact-list-view.c:212 src/view/contact-list-view.c:224 #: src/view/contact-view.c:219 src/view/message-list-view.c:156 #: src/view/message-show-view.c:226 src/view/sim-auth-input-view.c:101 msgid "Delete" msgstr "Poista" #: src/view/contact-list-view.c:213 msgid "Unselect" msgstr "" #: src/view/contact-list-view.c:227 msgid "Unselect all" msgstr "" #: src/view/contact-list-view.c:361 msgid "Really delete contact details?" msgstr "" #: src/view/contact-list-view.c:397 msgid "Failed adding contact." msgstr "" #: src/view/contact-view.c:110 src/view/message-new-view.c:337 #, fuzzy msgid "Contact" msgstr "Yhteystiedot" #: src/view/contact-view.c:191 src/view/contact-view.c:806 #: src/view/dialer-view.c:155 msgid "Save" msgstr "Tallenna" #: src/view/contact-view.c:198 msgid "Cancel" msgstr "" #: src/view/contact-view.c:227 msgid "Add Field" msgstr "" #: src/view/contact-view.c:379 #, fuzzy msgid "Deleting the contact failed!" msgstr "Poista yhteystieto" #: src/view/contact-view.c:408 msgid "Really delete this contact?" msgstr "" #: src/view/contact-view.c:719 msgid "Updating contact failed." msgstr "" #: src/view/contact-view.c:734 msgid "Adding the contact failed." msgstr "" #: src/view/contact-view.c:752 msgid "Failed loading data of saved contact." msgstr "" #: src/view/contact-view.c:813 src/view/message-new-view.c:329 #: src/view/message-new-view.c:385 src/view/message-new-view.c:421 msgid "Back" msgstr "Takaisin" #: src/view/contact-view.c:820 msgid "Remove" msgstr "Poista" #: src/view/dialer-view.c:70 msgid "Dialer" msgstr "Soitto" #: src/view/dialer-view.c:92 msgid "Click to open contactlist." msgstr "Paina avataksesi yhteystietoluettelon." #: src/view/dialer-view.c:119 src/view/dialog-view.c:73 #: src/view/message-new-view.c:277 src/view/message-show-view.c:201 #: src/view/ussd-view.c:92 msgid "Close" msgstr "Sulje" #: src/view/dialer-view.c:126 msgid "More" msgstr "Lisää" #: src/view/dialer-view.c:163 msgid "Send SMS" msgstr "Lähetä tekstiviesti" #: src/view/dialer-view.c:409 msgid "Cannot initiate call." msgstr "" #: src/view/dialog-view.c:65 #, fuzzy msgid "" "Your SIM storage is full. Please delete some messages or you may not receive " "them anymore!" msgstr "" "Tila on loppu. Poista vanhoja viestejä tai et voi vastaanottaa viestejä enää." #: src/view/dialog-view.c:68 msgid "GSM is not available, because no SIM card is present." msgstr "GSM ei ole saatavilla, koska SIM-korttia ei löytynyt." #: src/view/dialog-view.c:70 msgid "Unknown message." msgstr "Tuntematon viesti." #: src/view/message-list-view.c:95 msgid "Messages" msgstr "Viestit" #: src/view/message-list-view.c:118 src/view/message-show-view.c:211 msgid "Options" msgstr "Valinnat" #: src/view/message-list-view.c:132 src/view/message-show-view.c:264 msgid "Answer" msgstr "Vastaa" #: src/view/message-list-view.c:148 src/view/message-list-view.c:534 #: src/view/message-show-view.c:254 msgid "Forward" msgstr "" #: src/view/message-list-view.c:165 src/view/message-list-view.c:529 msgid "Show" msgstr "Näytä" #: src/view/message-list-view.c:187 src/view/message-list-view.c:198 #, fuzzy msgid "Loading..." msgstr "Ladataan... " #: src/view/message-list-view.c:381 src/view/message-show-view.c:428 #, fuzzy msgid "Deleting the message failed!" msgstr "Poista viesti" #: src/view/message-list-view.c:423 src/view/message-show-view.c:457 msgid "Really delete this message?" msgstr "" #: src/view/message-list-view.c:551 msgid "Error while trying to resolve the number" msgstr "" #: src/view/message-list-view.c:583 msgid "Error while retrieving messages" msgstr "" #: src/view/message-list-view.c:591 msgid "There are no messages" msgstr "" #: src/view/message-list-view.c:623 msgid "Error while retrieving a message" msgstr "" #: src/view/message-new-view.c:104 msgid "New Message" msgstr "Uusi viesti" #: src/view/message-new-view.c:263 msgid "Enter your message" msgstr "" #: src/view/message-new-view.c:285 msgid "Continue" msgstr "Jatka" #: src/view/message-new-view.c:309 msgid "Define Recipients" msgstr "Määritä vastaanottajat" #: src/view/message-new-view.c:346 #, fuzzy msgid "Number" msgstr "Numero: " #: src/view/message-new-view.c:355 msgid "Send" msgstr "Lähetä" #: src/view/message-new-view.c:379 src/view/message-show-view.c:244 msgid "Add Contact" msgstr "Lisää yhteystieto" #: src/view/message-new-view.c:392 src/view/message-new-view.c:428 msgid "Add" msgstr "Lisää" #: src/view/message-new-view.c:418 msgid "Add Number" msgstr "Lisää numero" #: src/view/message-new-view.c:653 msgid "You have entered
an invalid number." msgstr "" #: src/view/message-new-view.c:700 src/view/message-new-view.c:745 #, c-format msgid "%d characters left [%d]" msgstr "%d merkkiä jäljellä [%d]" #: src/view/message-new-view.c:790 msgid "Error will trying to resolve number." msgstr "" #: src/view/message-new-view.c:823 msgid "Sending the message failed" msgstr "" #: src/view/message-new-view.c:859 #, fuzzy msgid "Do you really want to quit writing this message?" msgstr "Haluatko varmasti lopettaa?" #: src/view/message-show-view.c:81 #, fuzzy msgid "Message" msgstr "Viestit" #: src/view/sim-auth-input-view.c:87 msgid "SIM Auth" msgstr "SIM-todentaminen" #: src/view/sim-auth-input-view.c:108 msgid "OK" msgstr "OK" #: src/view/sim-auth-input-view.c:162 msgid "Please enter your PIN" msgstr "Anna PIN-koodi" #: src/view/sim-auth-input-view.c:167 #, fuzzy msgid "Please enter your PIN2" msgstr "Anna PIN-koodi" #: src/view/sim-auth-input-view.c:172 msgid "Please enter your PUK" msgstr "Anna PUK-koodi" #: src/view/sim-auth-input-view.c:177 #, fuzzy msgid "Please enter your PUK2" msgstr "Anna PUK-koodi" #: src/view/sim-auth-input-view.c:183 msgid "SIM unlocked" msgstr "" #: src/view/sim-auth-input-view.c:190 #, fuzzy msgid "Unknown error" msgstr "Tuntematon viesti." #: src/view/sim-auth-input-view.c:228 msgid "PIN wrong" msgstr "PIN-koodi väärin" #: src/view/sim-auth-input-view.c:234 msgid "PIN Ok" msgstr "" #: src/view/sim-auth-input-view.c:251 msgid "PUK wrong" msgstr "PUK-koodi väärin" #: src/view/sim-auth-input-view.c:257 msgid "PUK Ok" msgstr "" #: src/view/sim-auth-input-view.c:273 src/view/sim-auth-input-view.c:292 #, fuzzy msgid "Checking..." msgstr "Tarkistetaan" #: src/view/sim-auth-input-view.c:281 #, fuzzy msgid "Please enter a new PIN" msgstr "Anna PIN-koodi" #: src/view/sim-auth-input-view.c:287 #, fuzzy msgid "Please confirm the new PIN" msgstr "Anna PIN-koodi" #: src/view/ussd-view.c:88 msgid "Data:" msgstr "Data:" #: src/widget/elm_keypad.c:145 msgid "ABC" msgstr "ABC" #: src/widget/elm_keypad.c:146 msgid "DEF" msgstr "DEF" #: src/widget/elm_keypad.c:147 msgid "GHI" msgstr "GHI" #: src/widget/elm_keypad.c:148 msgid "JKL" msgstr "JKL" #: src/widget/elm_keypad.c:149 msgid "MNO" msgstr "MNO" #: src/widget/elm_keypad.c:150 msgid "PQRS" msgstr "PQRS" #: src/widget/elm_keypad.c:151 msgid "TUV" msgstr "TUV" #: src/widget/elm_keypad.c:152 msgid "WXYZ" msgstr "" #~ msgid "New Contact" #~ msgstr "Uusi yhteystieto" #~ msgid "Accept" #~ msgstr "Hyväksy" #~ msgid "Do you really want to delete it?" #~ msgstr "Haluatko varmasti poistaa sen?" #~ msgid "Yes" #~ msgstr "Kyllä" #~ msgid "No" #~ msgstr "Ei" #~ msgid "Compose SMS" #~ msgstr "Luo viesti" #, fuzzy #~ msgid "Show Contact" #~ msgstr "Uusi yhteystieto" #, fuzzy #~ msgid "Actions" #~ msgstr "Valinnat" #, fuzzy #~ msgid "Value: " #~ msgstr "Nimi: " #~ msgid "Deleting.." #~ msgstr "Poistetaan.." #~ msgid "Inbox" #~ msgstr "Saapuneet" #~ msgid "Show Message" #~ msgstr "Näytä viesti" #~ msgid "SMS Answer" #~ msgstr "Vastaa tekstiviestiin" #~ msgid "Add a Contact" #~ msgstr "Lisää yhteystieto" #~ msgid "Add a Number" #~ msgstr "Lisää numero" #~ msgid "Sending.." #~ msgstr "Lähetetään.." #~ msgid "From:" #~ msgstr "Lähettäjä:" #~ msgid "Date:" #~ msgstr "Päivämäärä:" #~ msgid "Status:" #~ msgstr "Tila:" #~ msgid "PIN correct" #~ msgstr "PIN-koodi oikein" #~ msgid "Enter a NEW PIN" #~ msgstr "Anna uusi PIN-koodi" #~ msgid "Confirm your NEW PIN" #~ msgstr "Vahvista uusi PIN-koodi" #~ msgid "PIN must be 4-8 chars long" #~ msgstr "PIN-koodin täytyy olla 4-8 merkkiä pitkä" #~ msgid "PIN confirmation wrong" #~ msgstr "PIN-koodin varmennus väärin" #~ msgid "XYZ" #~ msgstr "XYZ" #~ msgid "No Speaker" #~ msgstr "Kaiutin pois" #~ msgid "Show Keypad" #~ msgstr "Näytä näppäimistö" #~ msgid "Loading.." #~ msgstr "Ladataan.." #~ msgid "Folders" #~ msgstr "Kansiot" #~ msgid "%d messages" #~ msgstr "%d viestiä" #~ msgid "Edit Contact" #~ msgstr "Muokkaa yhteystietoa" #~ msgid "Active call" #~ msgstr "Aktiivinen puhelu" #~ msgid "Incoming call" #~ msgstr "Saapuva puhelu" #~ msgid "Modify" #~ msgstr "Muokkaa" #~ msgid "Modify Contact" #~ msgstr "Muokkaa yhteystietoa" #~ msgid "" #~ "Your storage is full. Before adding new contacts, you have to delete some " #~ "old ones." #~ msgstr "" #~ "Tila on loppu. Poista vanhoja yhteystietoja ennen uusien lisäämistä." #~ msgid "New PIN saved" #~ msgstr "Uusi PIN-koodi tallennettu" libphone-ui-shr-0.1+git20130901/po/gl.po000066400000000000000000000267661221067027500173610ustar00rootroot00000000000000# This file is put in the public domain. # # David Garabana Barro , 2009. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-24 22:45+0000\n" "PO-Revision-Date: 2009-12-19 13:58+0100\n" "Last-Translator: David Garabana Barro \n" "Language-Team: Galician <>\n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: src/phoneui-call.c:140 src/view/contact-list-view.c:91 #: src/view/contact-view.c:205 src/view/dialer-view.c:133 #: src/view/message-list-view.c:140 src/view/message-show-view.c:235 msgid "Call" msgstr "Chamar" #: src/phoneui-dialog.c:34 msgid "Information" msgstr "Información" #: src/phoneui-ussd.c:35 msgid "Service Data" msgstr "Datos do servizo" #: src/view/call-active-view.c:160 src/view/call-common.c:144 msgid "Speaker" msgstr "Altofalante" #: src/view/call-active-view.c:171 msgid "Mute" msgstr "Silenciar" #: src/view/call-active-view.c:181 msgid "Volume" msgstr "Volume" #: src/view/call-active-view.c:194 msgid "Mic" msgstr "Micrófono" #: src/view/call-active-view.c:205 src/view/call-common.c:205 msgid "Release" msgstr "Colgar" #: src/view/call-active-view.c:212 src/view/call-active-view.c:261 msgid "Keypad" msgstr "Teclado" #: src/view/call-active-view.c:266 msgid "Hide Keypad" msgstr "Agochar" #: src/view/call-common.c:129 msgid "Bluetooth" msgstr "" #: src/view/call-common.c:132 msgid "Handset" msgstr "Normal" #: src/view/call-common.c:135 #, fuzzy msgid "Headset" msgstr "Normal" #: src/view/call-common.c:183 msgid "Pickup" msgstr "Descolgar" #: src/view/contact-list-view.c:73 msgid "Contacts" msgstr "Contactos" #: src/view/contact-list-view.c:98 src/view/contact-view.c:212 msgid "SMS" msgstr "SMS" #: src/view/contact-list-view.c:105 src/view/message-list-view.c:109 msgid "New" msgstr "Novo" #: src/view/contact-list-view.c:210 src/view/message-list-view.c:518 #: src/view/message-list-view.c:523 msgid "Edit" msgstr "Editar" #: src/view/contact-list-view.c:212 src/view/contact-list-view.c:224 #: src/view/contact-view.c:219 src/view/message-list-view.c:156 #: src/view/message-show-view.c:226 src/view/sim-auth-input-view.c:101 msgid "Delete" msgstr "Borrar" #: src/view/contact-list-view.c:213 msgid "Unselect" msgstr "" #: src/view/contact-list-view.c:227 msgid "Unselect all" msgstr "" #: src/view/contact-list-view.c:361 #, fuzzy msgid "Really delete contact details?" msgstr "Borrar o contacto?" #: src/view/contact-list-view.c:397 msgid "Failed adding contact." msgstr "" #: src/view/contact-view.c:110 src/view/message-new-view.c:337 msgid "Contact" msgstr "Contacto" #: src/view/contact-view.c:191 src/view/contact-view.c:806 #: src/view/dialer-view.c:155 msgid "Save" msgstr "Gardar" #: src/view/contact-view.c:198 msgid "Cancel" msgstr "" #: src/view/contact-view.c:227 msgid "Add Field" msgstr "Engadir campo" #: src/view/contact-view.c:379 #, fuzzy msgid "Deleting the contact failed!" msgstr "Borrar contacto" #: src/view/contact-view.c:408 msgid "Really delete this contact?" msgstr "Borrar o contacto?" #: src/view/contact-view.c:719 msgid "Updating contact failed." msgstr "" #: src/view/contact-view.c:734 msgid "Adding the contact failed." msgstr "" #: src/view/contact-view.c:752 msgid "Failed loading data of saved contact." msgstr "" #: src/view/contact-view.c:813 src/view/message-new-view.c:329 #: src/view/message-new-view.c:385 src/view/message-new-view.c:421 msgid "Back" msgstr "Atrás" #: src/view/contact-view.c:820 msgid "Remove" msgstr "Borrar" #: src/view/dialer-view.c:70 msgid "Dialer" msgstr "Marcador" #: src/view/dialer-view.c:92 msgid "Click to open contactlist." msgstr " Prema para abrir a lista de contactos" #: src/view/dialer-view.c:119 src/view/dialog-view.c:73 #: src/view/message-new-view.c:277 src/view/message-show-view.c:201 #: src/view/ussd-view.c:92 msgid "Close" msgstr "Pechar" #: src/view/dialer-view.c:126 msgid "More" msgstr "Máis" #: src/view/dialer-view.c:163 msgid "Send SMS" msgstr "Enviar SMS" #: src/view/dialer-view.c:409 msgid "Cannot initiate call." msgstr "" #: src/view/dialog-view.c:65 #, fuzzy msgid "" "Your SIM storage is full. Please delete some messages or you may not receive " "them anymore!" msgstr "" "A memoria de mensaxes SMS está chea. Ten que liberar espacio para poder " "receber mensaxes novas" #: src/view/dialog-view.c:68 msgid "GSM is not available, because no SIM card is present." msgstr "" "Non se inseriu a tarxeta SIM ou é incorrecta. Non vai estar dispoñible a " "telefonía GSM." #: src/view/dialog-view.c:70 msgid "Unknown message." msgstr "Mensaxe descoñecida." #: src/view/message-list-view.c:95 msgid "Messages" msgstr "Mensaxes" #: src/view/message-list-view.c:118 src/view/message-show-view.c:211 msgid "Options" msgstr "Opcións" #: src/view/message-list-view.c:132 src/view/message-show-view.c:264 msgid "Answer" msgstr "Respostar" #: src/view/message-list-view.c:148 src/view/message-list-view.c:534 #: src/view/message-show-view.c:254 msgid "Forward" msgstr "" #: src/view/message-list-view.c:165 src/view/message-list-view.c:529 msgid "Show" msgstr "Amosar" #: src/view/message-list-view.c:187 src/view/message-list-view.c:198 #, fuzzy msgid "Loading..." msgstr "Cargando... " #: src/view/message-list-view.c:381 src/view/message-show-view.c:428 #, fuzzy msgid "Deleting the message failed!" msgstr "Borrar a mensaxe" #: src/view/message-list-view.c:423 src/view/message-show-view.c:457 #, fuzzy msgid "Really delete this message?" msgstr "Borrar o contacto?" #: src/view/message-list-view.c:551 msgid "Error while trying to resolve the number" msgstr "" #: src/view/message-list-view.c:583 msgid "Error while retrieving messages" msgstr "" #: src/view/message-list-view.c:591 msgid "There are no messages" msgstr "" #: src/view/message-list-view.c:623 msgid "Error while retrieving a message" msgstr "" #: src/view/message-new-view.c:104 msgid "New Message" msgstr "Nova Mensaxe" #: src/view/message-new-view.c:263 msgid "Enter your message" msgstr "" #: src/view/message-new-view.c:285 msgid "Continue" msgstr "Continuar" #: src/view/message-new-view.c:309 msgid "Define Recipients" msgstr "Escolla de destinatarios" #: src/view/message-new-view.c:346 #, fuzzy msgid "Number" msgstr "Número: " #: src/view/message-new-view.c:355 msgid "Send" msgstr "Enviar" #: src/view/message-new-view.c:379 src/view/message-show-view.c:244 msgid "Add Contact" msgstr "Engadir contacto" #: src/view/message-new-view.c:392 src/view/message-new-view.c:428 msgid "Add" msgstr "Engadir" #: src/view/message-new-view.c:418 msgid "Add Number" msgstr "Engadir número" #: src/view/message-new-view.c:653 msgid "You have entered
an invalid number." msgstr "" #: src/view/message-new-view.c:700 src/view/message-new-view.c:745 #, c-format msgid "%d characters left [%d]" msgstr "Dispoñibles %d caracteres [%d]" #: src/view/message-new-view.c:790 msgid "Error will trying to resolve number." msgstr "" #: src/view/message-new-view.c:823 msgid "Sending the message failed" msgstr "" #: src/view/message-new-view.c:859 #, fuzzy msgid "Do you really want to quit writing this message?" msgstr "Se sae agora perderá tódolos cambios.
Seguro que quere saír?" #: src/view/message-show-view.c:81 msgid "Message" msgstr "Mensaxe" #: src/view/sim-auth-input-view.c:87 msgid "SIM Auth" msgstr "Identificación SIM" #: src/view/sim-auth-input-view.c:108 msgid "OK" msgstr "Aceptar" #: src/view/sim-auth-input-view.c:162 msgid "Please enter your PIN" msgstr "Introduza o PIN" #: src/view/sim-auth-input-view.c:167 msgid "Please enter your PIN2" msgstr "Introduza o PIN2" #: src/view/sim-auth-input-view.c:172 msgid "Please enter your PUK" msgstr "Introduza o PUK" #: src/view/sim-auth-input-view.c:177 msgid "Please enter your PUK2" msgstr "Introduza o PUK2" #: src/view/sim-auth-input-view.c:183 msgid "SIM unlocked" msgstr "" #: src/view/sim-auth-input-view.c:190 msgid "Unknown error" msgstr "Erro descoñecido." #: src/view/sim-auth-input-view.c:228 msgid "PIN wrong" msgstr "PIN incorrecto" #: src/view/sim-auth-input-view.c:234 msgid "PIN Ok" msgstr "" #: src/view/sim-auth-input-view.c:251 msgid "PUK wrong" msgstr "PUK incorrecto" #: src/view/sim-auth-input-view.c:257 msgid "PUK Ok" msgstr "" #: src/view/sim-auth-input-view.c:273 src/view/sim-auth-input-view.c:292 #, fuzzy msgid "Checking..." msgstr "Comprobando" #: src/view/sim-auth-input-view.c:281 #, fuzzy msgid "Please enter a new PIN" msgstr "Introduza o PIN" #: src/view/sim-auth-input-view.c:287 #, fuzzy msgid "Please confirm the new PIN" msgstr "Introduza o PIN" #: src/view/ussd-view.c:88 msgid "Data:" msgstr "Datos:" #: src/widget/elm_keypad.c:145 msgid "ABC" msgstr "ABC" #: src/widget/elm_keypad.c:146 msgid "DEF" msgstr "DEF" #: src/widget/elm_keypad.c:147 msgid "GHI" msgstr "GHI" #: src/widget/elm_keypad.c:148 msgid "JKL" msgstr "JKL" #: src/widget/elm_keypad.c:149 msgid "MNO" msgstr "MNO" #: src/widget/elm_keypad.c:150 msgid "PQRS" msgstr "PQRS" #: src/widget/elm_keypad.c:151 msgid "TUV" msgstr "TUV" #: src/widget/elm_keypad.c:152 msgid "WXYZ" msgstr "" #, fuzzy #~ msgid "Really delete all of %s's details?" #~ msgstr "Borrar o contacto?" #~ msgid "New Contact" #~ msgstr "Novo contacto" #~ msgid "Accept" #~ msgstr "Coller" #~ msgid "Reject" #~ msgstr "Rexeitar" #~ msgid "Do you really want to delete it?" #~ msgstr "Está certo de que quere borrar o contacto?" #~ msgid "Yes" #~ msgstr "Sí" #~ msgid "No" #~ msgstr "Non" #~ msgid "Compose SMS" #~ msgstr "Redactar unha mensaxe" #~ msgid "Show Contact" #~ msgstr "Amosar contacto" #~ msgid "Actions" #~ msgstr "Accións" #~ msgid "Really discard all changes?" #~ msgstr "Descartar tódolos cambios?" #~ msgid "Edit Field" #~ msgstr "Editar campo" #~ msgid "Field: " #~ msgstr "Campo: " #~ msgid "Value: " #~ msgstr "Valor: " #~ msgid "Deleting.." #~ msgstr "A borrar.." #~ msgid "Inbox" #~ msgstr "Caixa de entrada" #~ msgid "Show Message" #~ msgstr "Amosar a mensaxe" #~ msgid "SMS Answer" #~ msgstr "Resposta ao SMS" #~ msgid "Add a Contact" #~ msgstr "Engadir un contacto" #~ msgid "Add a Number" #~ msgstr "Engadir un número" #~ msgid "Sending.." #~ msgstr "Enviando.." #~ msgid "From:" #~ msgstr "De:" #~ msgid "Date:" #~ msgstr "Data:" #~ msgid "Status:" #~ msgstr "Estado:" #~ msgid "PIN correct" #~ msgstr "PIN correcto" #~ msgid "Failed" #~ msgstr "Fallou" #~ msgid "Enter a NEW PIN" #~ msgstr "Introduza o novo PIN" #~ msgid "Confirm your NEW PIN" #~ msgstr "Confirme o novo PIN" #~ msgid "PIN must be 4-8 chars long" #~ msgstr "O PIN debe ter de 4 a 8 caracteres" #~ msgid "PIN confirmation wrong" #~ msgstr "Os PIN non son iguais" #~ msgid "XYZ" #~ msgstr "WXYZ" #~ msgid "Modify" #~ msgstr "Modificar" #~ msgid "Modify Contact" #~ msgstr "Modificar contacto" #~ msgid "" #~ "Your storage is full. Before adding new contacts, you have to delete some " #~ "old ones." #~ msgstr "" #~ "A memoria está chea. Para engadir novos contactos, ten que borrar algún " #~ "contacto antigo." #, fuzzy #~ msgid "No Speaker" #~ msgstr "Altofalante" #, fuzzy #~ msgid "Show Keypad" #~ msgstr "Teclado" #~ msgid "Edit Contact" #~ msgstr "Editar contacto" #~ msgid "Active call" #~ msgstr "Chamada activa" #~ msgid "Incoming call" #~ msgstr "Chamada entrante" #~ msgid "Loading.." #~ msgstr "Cargando.." #~ msgid "Folders" #~ msgstr "Cartafois" #~ msgid "%d messages" #~ msgstr "%d mensaxes" #~ msgid "New PIN saved" #~ msgstr "Gardouse o novo PIN" #~ msgid "Ringtone" #~ msgstr "Ton" #~ msgid "Silent" #~ msgstr "Silenciar" libphone-ui-shr-0.1+git20130901/po/pl.po000066400000000000000000000261241221067027500173560ustar00rootroot00000000000000# Polish translations for libframeworkd-phoneui-efl # This file is put in the same licence, as libframeworkd-phoneui-efl package. # Sebastian Krzyszkowiak , 2009. # msgid "" msgstr "" "Project-Id-Version: libframeworkd-phoneui-efl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-24 22:45+0000\n" "PO-Revision-Date: 2009-06-13 16:55+0100\n" "Last-Translator: Sebastian Krzyszkowiak \n" "Language-Team: Polish\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/phoneui-call.c:140 src/view/contact-list-view.c:91 #: src/view/contact-view.c:205 src/view/dialer-view.c:133 #: src/view/message-list-view.c:140 src/view/message-show-view.c:235 msgid "Call" msgstr "Zadzwoń" #: src/phoneui-dialog.c:34 msgid "Information" msgstr "Informacje" #: src/phoneui-ussd.c:35 msgid "Service Data" msgstr "Wiadomość sieciowa" #: src/view/call-active-view.c:160 src/view/call-common.c:144 msgid "Speaker" msgstr "Głośnik" #: src/view/call-active-view.c:171 msgid "Mute" msgstr "" #: src/view/call-active-view.c:181 msgid "Volume" msgstr "" #: src/view/call-active-view.c:194 msgid "Mic" msgstr "" #: src/view/call-active-view.c:205 src/view/call-common.c:205 msgid "Release" msgstr "Rozłącz" #: src/view/call-active-view.c:212 src/view/call-active-view.c:261 msgid "Keypad" msgstr "Klawiatura" #: src/view/call-active-view.c:266 msgid "Hide Keypad" msgstr "Ukryj klawiaturę" #: src/view/call-common.c:129 msgid "Bluetooth" msgstr "" #: src/view/call-common.c:132 msgid "Handset" msgstr "Słuchawka" #: src/view/call-common.c:135 #, fuzzy msgid "Headset" msgstr "Słuchawka" #: src/view/call-common.c:183 msgid "Pickup" msgstr "" #: src/view/contact-list-view.c:73 msgid "Contacts" msgstr "Kontakty" #: src/view/contact-list-view.c:98 src/view/contact-view.c:212 msgid "SMS" msgstr "SMS" #: src/view/contact-list-view.c:105 src/view/message-list-view.c:109 msgid "New" msgstr "Nowy" #: src/view/contact-list-view.c:210 src/view/message-list-view.c:518 #: src/view/message-list-view.c:523 msgid "Edit" msgstr "Edytuj" #: src/view/contact-list-view.c:212 src/view/contact-list-view.c:224 #: src/view/contact-view.c:219 src/view/message-list-view.c:156 #: src/view/message-show-view.c:226 src/view/sim-auth-input-view.c:101 msgid "Delete" msgstr "Usuń" #: src/view/contact-list-view.c:213 msgid "Unselect" msgstr "" #: src/view/contact-list-view.c:227 msgid "Unselect all" msgstr "" #: src/view/contact-list-view.c:361 msgid "Really delete contact details?" msgstr "" #: src/view/contact-list-view.c:397 msgid "Failed adding contact." msgstr "" #: src/view/contact-view.c:110 src/view/message-new-view.c:337 #, fuzzy msgid "Contact" msgstr "Kontakty" #: src/view/contact-view.c:191 src/view/contact-view.c:806 #: src/view/dialer-view.c:155 msgid "Save" msgstr "Zapisz" #: src/view/contact-view.c:198 msgid "Cancel" msgstr "" #: src/view/contact-view.c:227 msgid "Add Field" msgstr "" #: src/view/contact-view.c:379 #, fuzzy msgid "Deleting the contact failed!" msgstr "Usuń kontakt" #: src/view/contact-view.c:408 msgid "Really delete this contact?" msgstr "" #: src/view/contact-view.c:719 msgid "Updating contact failed." msgstr "" #: src/view/contact-view.c:734 msgid "Adding the contact failed." msgstr "" #: src/view/contact-view.c:752 msgid "Failed loading data of saved contact." msgstr "" #: src/view/contact-view.c:813 src/view/message-new-view.c:329 #: src/view/message-new-view.c:385 src/view/message-new-view.c:421 msgid "Back" msgstr "Wstecz" #: src/view/contact-view.c:820 msgid "Remove" msgstr "Usuń" #: src/view/dialer-view.c:70 msgid "Dialer" msgstr "Zadzwoń" #: src/view/dialer-view.c:92 msgid "Click to open contactlist." msgstr "Kliknij, aby pokazać listę kontaktów." #: src/view/dialer-view.c:119 src/view/dialog-view.c:73 #: src/view/message-new-view.c:277 src/view/message-show-view.c:201 #: src/view/ussd-view.c:92 msgid "Close" msgstr "Zamknij" #: src/view/dialer-view.c:126 msgid "More" msgstr "Więcej" #: src/view/dialer-view.c:163 msgid "Send SMS" msgstr "Wyślij SMS" #: src/view/dialer-view.c:409 msgid "Cannot initiate call." msgstr "" #: src/view/dialog-view.c:65 #, fuzzy msgid "" "Your SIM storage is full. Please delete some messages or you may not receive " "them anymore!" msgstr "" "Twoja skrzynka jest pełna. Usuń jakieś wiadomości - w przeciwnym wypadku " "żadne nowe wiadomości nie bedą przyjmowane!" #: src/view/dialog-view.c:68 msgid "GSM is not available, because no SIM card is present." msgstr "GSM jest niedostępne, ponieważ karta SIM jest nieobecna" #: src/view/dialog-view.c:70 msgid "Unknown message." msgstr "Nieznana wiadomość." #: src/view/message-list-view.c:95 msgid "Messages" msgstr "Wiadomości" #: src/view/message-list-view.c:118 src/view/message-show-view.c:211 msgid "Options" msgstr "Opcje" #: src/view/message-list-view.c:132 src/view/message-show-view.c:264 msgid "Answer" msgstr "Odpowiedz" #: src/view/message-list-view.c:148 src/view/message-list-view.c:534 #: src/view/message-show-view.c:254 msgid "Forward" msgstr "" #: src/view/message-list-view.c:165 src/view/message-list-view.c:529 msgid "Show" msgstr "Pokaż" #: src/view/message-list-view.c:187 src/view/message-list-view.c:198 #, fuzzy msgid "Loading..." msgstr "Ładowanie..." #: src/view/message-list-view.c:381 src/view/message-show-view.c:428 #, fuzzy msgid "Deleting the message failed!" msgstr "Usuń wiadomość" #: src/view/message-list-view.c:423 src/view/message-show-view.c:457 msgid "Really delete this message?" msgstr "" #: src/view/message-list-view.c:551 msgid "Error while trying to resolve the number" msgstr "" #: src/view/message-list-view.c:583 msgid "Error while retrieving messages" msgstr "" #: src/view/message-list-view.c:591 msgid "There are no messages" msgstr "" #: src/view/message-list-view.c:623 msgid "Error while retrieving a message" msgstr "" #: src/view/message-new-view.c:104 msgid "New Message" msgstr "Nowa wiadomość" #: src/view/message-new-view.c:263 msgid "Enter your message" msgstr "" #: src/view/message-new-view.c:285 msgid "Continue" msgstr "Kontynuuj" #: src/view/message-new-view.c:309 msgid "Define Recipients" msgstr "Określ odbiorców" #: src/view/message-new-view.c:346 #, fuzzy msgid "Number" msgstr "Numer: " #: src/view/message-new-view.c:355 msgid "Send" msgstr "Wyślij" #: src/view/message-new-view.c:379 src/view/message-show-view.c:244 msgid "Add Contact" msgstr "Dodaj kontakt" #: src/view/message-new-view.c:392 src/view/message-new-view.c:428 msgid "Add" msgstr "Dodaj" #: src/view/message-new-view.c:418 msgid "Add Number" msgstr "Dodaj numer" #: src/view/message-new-view.c:653 msgid "You have entered
an invalid number." msgstr "" #: src/view/message-new-view.c:700 src/view/message-new-view.c:745 #, c-format msgid "%d characters left [%d]" msgstr "Pozostało %d znaków [%d]" #: src/view/message-new-view.c:790 msgid "Error will trying to resolve number." msgstr "" #: src/view/message-new-view.c:823 msgid "Sending the message failed" msgstr "" #: src/view/message-new-view.c:859 #, fuzzy msgid "Do you really want to quit writing this message?" msgstr "Czy na pewno chcesz wyjść?" #: src/view/message-show-view.c:81 #, fuzzy msgid "Message" msgstr "Wiadomości" #: src/view/sim-auth-input-view.c:87 msgid "SIM Auth" msgstr "Autoryzacja SIM" #: src/view/sim-auth-input-view.c:108 msgid "OK" msgstr "OK" #: src/view/sim-auth-input-view.c:162 msgid "Please enter your PIN" msgstr "Wprowadź swój kod PIN" #: src/view/sim-auth-input-view.c:167 #, fuzzy msgid "Please enter your PIN2" msgstr "Wprowadź swój kod PIN" #: src/view/sim-auth-input-view.c:172 msgid "Please enter your PUK" msgstr "Podaj PUK" #: src/view/sim-auth-input-view.c:177 #, fuzzy msgid "Please enter your PUK2" msgstr "Podaj PUK" #: src/view/sim-auth-input-view.c:183 msgid "SIM unlocked" msgstr "" #: src/view/sim-auth-input-view.c:190 #, fuzzy msgid "Unknown error" msgstr "Nieznana wiadomość." #: src/view/sim-auth-input-view.c:228 msgid "PIN wrong" msgstr "Bledny PIN" #: src/view/sim-auth-input-view.c:234 msgid "PIN Ok" msgstr "" #: src/view/sim-auth-input-view.c:251 msgid "PUK wrong" msgstr "Błędny PUK" #: src/view/sim-auth-input-view.c:257 msgid "PUK Ok" msgstr "" #: src/view/sim-auth-input-view.c:273 src/view/sim-auth-input-view.c:292 #, fuzzy msgid "Checking..." msgstr "Sprawdzanie..." #: src/view/sim-auth-input-view.c:281 #, fuzzy msgid "Please enter a new PIN" msgstr "Wprowadź swój kod PIN" #: src/view/sim-auth-input-view.c:287 #, fuzzy msgid "Please confirm the new PIN" msgstr "Wprowadź swój kod PIN" #: src/view/ussd-view.c:88 msgid "Data:" msgstr "Dane:" #: src/widget/elm_keypad.c:145 msgid "ABC" msgstr "ABC" #: src/widget/elm_keypad.c:146 msgid "DEF" msgstr "DEF" #: src/widget/elm_keypad.c:147 msgid "GHI" msgstr "GHI" #: src/widget/elm_keypad.c:148 msgid "JKL" msgstr "JKL" #: src/widget/elm_keypad.c:149 msgid "MNO" msgstr "MNO" #: src/widget/elm_keypad.c:150 msgid "PQRS" msgstr "PQRS" #: src/widget/elm_keypad.c:151 msgid "TUV" msgstr "TUV" #: src/widget/elm_keypad.c:152 msgid "WXYZ" msgstr "" #~ msgid "New Contact" #~ msgstr "Nowy kontakt" #~ msgid "Accept" #~ msgstr "Odbierz" #~ msgid "Reject" #~ msgstr "Odrzuć" #~ msgid "Do you really want to delete it?" #~ msgstr "Czy na pewno chcesz usunąć?" #~ msgid "Yes" #~ msgstr "Tak" #~ msgid "No" #~ msgstr "Nie" #~ msgid "Compose SMS" #~ msgstr "Utwórz SMS" #, fuzzy #~ msgid "Show Contact" #~ msgstr "Nowy kontakt" #, fuzzy #~ msgid "Actions" #~ msgstr "Opcje" #, fuzzy #~ msgid "Value: " #~ msgstr "Nazwa: " #~ msgid "Deleting.." #~ msgstr "Usuwanie..." #~ msgid "Inbox" #~ msgstr "Skrzynka odbiorcza" #~ msgid "Show Message" #~ msgstr "Wyświetl wiadomość" #~ msgid "SMS Answer" #~ msgstr "Odpowiedź SMS" #~ msgid "Add a Contact" #~ msgstr "Dodaj kontakt" #~ msgid "Add a Number" #~ msgstr "Dodaj numer" #~ msgid "Sending.." #~ msgstr "Wysyłanie..." #~ msgid "From:" #~ msgstr "Od:" #~ msgid "Date:" #~ msgstr "Data:" #~ msgid "Status:" #~ msgstr "Status:" #~ msgid "PIN correct" #~ msgstr "PIN prawidłowy" #~ msgid "Enter a NEW PIN" #~ msgstr "Podaj NOWY PIN" #~ msgid "Confirm your NEW PIN" #~ msgstr "Potwierdź NOWY PIN" #~ msgid "PIN must be 4-8 chars long" #~ msgstr "Kod PIN musi mieć od 4 do 8 znaków" #~ msgid "PIN confirmation wrong" #~ msgstr "Niepoprawne potwierdzenie PINu" #~ msgid "XYZ" #~ msgstr "XYZ" #~ msgid "Edit Contact" #~ msgstr "Edytuj kontakt" #~ msgid "Loading.." #~ msgstr "Ładowanie..." #~ msgid "Folders" #~ msgstr "Foldery" #~ msgid "%d messages" #~ msgstr "%d wiadomości" #~ msgid "Modify" #~ msgstr "Edytuj" #~ msgid "Modify Contact" #~ msgstr "Edytuj kontakt" #~ msgid "" #~ "Your storage is full. Before adding new contacts, you have to delete some " #~ "old ones." #~ msgstr "" #~ "Twoja książka kontkatów jest pełna. Przed dodaniem nowego kontaktu, " #~ "musisz usunąć któryś ze starych." #~ msgid "New PIN saved" #~ msgstr "Nowy PIN zachowany" #~ msgid "Active call" #~ msgstr "Aktywna rozmowa" #~ msgid "Incoming call" #~ msgstr "Rozmowa przychodzaca" #~ msgid "No Speaker" #~ msgstr "Bez głośnika" #~ msgid "Show Keypad" #~ msgstr "Pokaż klawiaturę" libphone-ui-shr-0.1+git20130901/po/ru.po000066400000000000000000000317561221067027500174000ustar00rootroot00000000000000# Russian translation for libframeworkd-phoneui-efl # This file is put in the public domain. # Maksim 'max_posedon' Melnikau , 2009. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: libframework-phoneui-efl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-24 22:45+0000\n" "PO-Revision-Date: 2009-12-29 17:06+0300\n" "Last-Translator: Vladimir Berezenko \n" "Language-Team: Russian\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: src/phoneui-call.c:140 src/view/contact-list-view.c:91 #: src/view/contact-view.c:205 src/view/dialer-view.c:133 #: src/view/message-list-view.c:140 src/view/message-show-view.c:235 msgid "Call" msgstr "Вызвать" #: src/phoneui-dialog.c:34 msgid "Information" msgstr "Информация" #: src/phoneui-ussd.c:35 msgid "Service Data" msgstr "Данные Сервиса" #: src/view/call-active-view.c:160 src/view/call-common.c:144 msgid "Speaker" msgstr "Спикер" #: src/view/call-active-view.c:171 msgid "Mute" msgstr "Откл.звук" #: src/view/call-active-view.c:181 msgid "Volume" msgstr "Громкость" #: src/view/call-active-view.c:194 msgid "Mic" msgstr "Микрофон" #: src/view/call-active-view.c:205 src/view/call-common.c:205 msgid "Release" msgstr "Закончить" #: src/view/call-active-view.c:212 src/view/call-active-view.c:261 msgid "Keypad" msgstr "Клавиатура" #: src/view/call-active-view.c:266 msgid "Hide Keypad" msgstr "Спрятать Клавиатуру" #: src/view/call-common.c:129 msgid "Bluetooth" msgstr "" #: src/view/call-common.c:132 msgid "Handset" msgstr "Телефон" #: src/view/call-common.c:135 #, fuzzy msgid "Headset" msgstr "Телефон" #: src/view/call-common.c:183 msgid "Pickup" msgstr "Принять" #: src/view/contact-list-view.c:73 msgid "Contacts" msgstr "Контакты" #: src/view/contact-list-view.c:98 src/view/contact-view.c:212 msgid "SMS" msgstr "SMS" #: src/view/contact-list-view.c:105 src/view/message-list-view.c:109 msgid "New" msgstr "Новый" #: src/view/contact-list-view.c:210 src/view/message-list-view.c:518 #: src/view/message-list-view.c:523 msgid "Edit" msgstr "Редактировать" #: src/view/contact-list-view.c:212 src/view/contact-list-view.c:224 #: src/view/contact-view.c:219 src/view/message-list-view.c:156 #: src/view/message-show-view.c:226 src/view/sim-auth-input-view.c:101 msgid "Delete" msgstr "Удалить" #: src/view/contact-list-view.c:213 msgid "Unselect" msgstr "" #: src/view/contact-list-view.c:227 msgid "Unselect all" msgstr "" #: src/view/contact-list-view.c:361 #, fuzzy msgid "Really delete contact details?" msgstr "Удалить данный контакт?" #: src/view/contact-list-view.c:397 msgid "Failed adding contact." msgstr "" #: src/view/contact-view.c:110 src/view/message-new-view.c:337 #, fuzzy msgid "Contact" msgstr "Контакт" #: src/view/contact-view.c:191 src/view/contact-view.c:806 #: src/view/dialer-view.c:155 msgid "Save" msgstr "Сохранить" #: src/view/contact-view.c:198 msgid "Cancel" msgstr "" #: src/view/contact-view.c:227 msgid "Add Field" msgstr "Добавить Поле" #: src/view/contact-view.c:379 #, fuzzy msgid "Deleting the contact failed!" msgstr "Удалить Контакт" #: src/view/contact-view.c:408 msgid "Really delete this contact?" msgstr "Удалить данный контакт?" #: src/view/contact-view.c:719 msgid "Updating contact failed." msgstr "" #: src/view/contact-view.c:734 msgid "Adding the contact failed." msgstr "" #: src/view/contact-view.c:752 msgid "Failed loading data of saved contact." msgstr "" #: src/view/contact-view.c:813 src/view/message-new-view.c:329 #: src/view/message-new-view.c:385 src/view/message-new-view.c:421 msgid "Back" msgstr "Назад" #: src/view/contact-view.c:820 msgid "Remove" msgstr "Удалить" #: src/view/dialer-view.c:70 msgid "Dialer" msgstr "Номеронабиратель" #: src/view/dialer-view.c:92 msgid "Click to open contactlist." msgstr "Нажмите для открытия списка контактов." #: src/view/dialer-view.c:119 src/view/dialog-view.c:73 #: src/view/message-new-view.c:277 src/view/message-show-view.c:201 #: src/view/ussd-view.c:92 msgid "Close" msgstr "Закрыть" #: src/view/dialer-view.c:126 msgid "More" msgstr "Еще" #: src/view/dialer-view.c:163 msgid "Send SMS" msgstr "Отправить SMS" #: src/view/dialer-view.c:409 msgid "Cannot initiate call." msgstr "" #: src/view/dialog-view.c:65 #, fuzzy msgid "" "Your SIM storage is full. Please delete some messages or you may not receive " "them anymore!" msgstr "" "Нет места. Пожалуйста удалите старые сообщения, иначе вы не будете получать " "новые!" #: src/view/dialog-view.c:68 msgid "GSM is not available, because no SIM card is present." msgstr "GSM не доступен, поскольку отсутствует SIM-карта." #: src/view/dialog-view.c:70 msgid "Unknown message." msgstr "Неизвестное сообщение." #: src/view/message-list-view.c:95 msgid "Messages" msgstr "Сообщения" #: src/view/message-list-view.c:118 src/view/message-show-view.c:211 msgid "Options" msgstr "Дополнительно" #: src/view/message-list-view.c:132 src/view/message-show-view.c:264 msgid "Answer" msgstr "Ответить" #: src/view/message-list-view.c:148 src/view/message-list-view.c:534 #: src/view/message-show-view.c:254 msgid "Forward" msgstr "" #: src/view/message-list-view.c:165 src/view/message-list-view.c:529 msgid "Show" msgstr "Показать" #: src/view/message-list-view.c:187 src/view/message-list-view.c:198 #, fuzzy msgid "Loading..." msgstr "Загрузка... " #: src/view/message-list-view.c:381 src/view/message-show-view.c:428 #, fuzzy msgid "Deleting the message failed!" msgstr "Удалить Сообщение" #: src/view/message-list-view.c:423 src/view/message-show-view.c:457 #, fuzzy msgid "Really delete this message?" msgstr "Удалить данный контакт?" #: src/view/message-list-view.c:551 msgid "Error while trying to resolve the number" msgstr "" #: src/view/message-list-view.c:583 msgid "Error while retrieving messages" msgstr "" #: src/view/message-list-view.c:591 msgid "There are no messages" msgstr "" #: src/view/message-list-view.c:623 msgid "Error while retrieving a message" msgstr "" #: src/view/message-new-view.c:104 msgid "New Message" msgstr "Новое Cообщение" #: src/view/message-new-view.c:263 msgid "Enter your message" msgstr "" #: src/view/message-new-view.c:285 msgid "Continue" msgstr "Продолжить" #: src/view/message-new-view.c:309 msgid "Define Recipients" msgstr "Получатели" #: src/view/message-new-view.c:346 #, fuzzy msgid "Number" msgstr "Номер:" #: src/view/message-new-view.c:355 msgid "Send" msgstr "Отправить" #: src/view/message-new-view.c:379 src/view/message-show-view.c:244 msgid "Add Contact" msgstr "Добавить Контакт" #: src/view/message-new-view.c:392 src/view/message-new-view.c:428 msgid "Add" msgstr "Добавить" #: src/view/message-new-view.c:418 msgid "Add Number" msgstr "Добавить Номер" #: src/view/message-new-view.c:653 msgid "You have entered
an invalid number." msgstr "" #: src/view/message-new-view.c:700 src/view/message-new-view.c:745 #, c-format msgid "%d characters left [%d]" msgstr "%d символов осталось [%d]" #: src/view/message-new-view.c:790 msgid "Error will trying to resolve number." msgstr "" #: src/view/message-new-view.c:823 msgid "Sending the message failed" msgstr "" #: src/view/message-new-view.c:859 #, fuzzy msgid "Do you really want to quit writing this message?" msgstr "Вы действительно хотите выйти?" #: src/view/message-show-view.c:81 #, fuzzy msgid "Message" msgstr "Сообщение" #: src/view/sim-auth-input-view.c:87 msgid "SIM Auth" msgstr "SIM-Авторизация" #: src/view/sim-auth-input-view.c:108 msgid "OK" msgstr "OK" #: src/view/sim-auth-input-view.c:162 msgid "Please enter your PIN" msgstr "Пожалуйста введите новый PIN" #: src/view/sim-auth-input-view.c:167 #, fuzzy msgid "Please enter your PIN2" msgstr "Пожалуйста введите новый PIN2" #: src/view/sim-auth-input-view.c:172 msgid "Please enter your PUK" msgstr "Пожалуйста введите PUK" #: src/view/sim-auth-input-view.c:177 #, fuzzy msgid "Please enter your PUK2" msgstr "Пожалуйста введите PUK2" #: src/view/sim-auth-input-view.c:183 msgid "SIM unlocked" msgstr "" #: src/view/sim-auth-input-view.c:190 #, fuzzy msgid "Unknown error" msgstr "Неизвестная ошибка" #: src/view/sim-auth-input-view.c:228 msgid "PIN wrong" msgstr "PIN введен неверно" #: src/view/sim-auth-input-view.c:234 msgid "PIN Ok" msgstr "" #: src/view/sim-auth-input-view.c:251 msgid "PUK wrong" msgstr "Неверный PUK" #: src/view/sim-auth-input-view.c:257 msgid "PUK Ok" msgstr "" #: src/view/sim-auth-input-view.c:273 src/view/sim-auth-input-view.c:292 #, fuzzy msgid "Checking..." msgstr "Проверяется" #: src/view/sim-auth-input-view.c:281 #, fuzzy msgid "Please enter a new PIN" msgstr "Пожалуйста введите новый PIN" #: src/view/sim-auth-input-view.c:287 #, fuzzy msgid "Please confirm the new PIN" msgstr "Пожалуйста введите новый PIN" #: src/view/ussd-view.c:88 msgid "Data:" msgstr "Данные:" #: src/widget/elm_keypad.c:145 msgid "ABC" msgstr "АБВГ" #: src/widget/elm_keypad.c:146 msgid "DEF" msgstr "ДЕЁЖЗ" #: src/widget/elm_keypad.c:147 msgid "GHI" msgstr "ИЙКЛ" #: src/widget/elm_keypad.c:148 msgid "JKL" msgstr "МНОП" #: src/widget/elm_keypad.c:149 msgid "MNO" msgstr "РСТУ" #: src/widget/elm_keypad.c:150 msgid "PQRS" msgstr "ФХЦЧ" #: src/widget/elm_keypad.c:151 msgid "TUV" msgstr "ШЩЪЫ" #: src/widget/elm_keypad.c:152 msgid "WXYZ" msgstr "" #, fuzzy #~ msgid "Really delete all of %s's details?" #~ msgstr "Удалить данный контакт?" #~ msgid "New Contact" #~ msgstr "Новый Контакт" #~ msgid "Accept" #~ msgstr "Принять" #~ msgid "Reject" #~ msgstr "Отказать" #~ msgid "Do you really want to delete it?" #~ msgstr "Вы действительно хотите удалить?" #~ msgid "Yes" #~ msgstr "Да" #~ msgid "No" #~ msgstr "Нет" #~ msgid "Compose SMS" #~ msgstr "Написать SMS" #, fuzzy #~ msgid "Show Contact" #~ msgstr "Показать Контакт" #, fuzzy #~ msgid "Actions" #~ msgstr "Дополнительно" #~ msgid "Really discard all changes?" #~ msgstr "Отменить все изменения?" #~ msgid "Edit Field" #~ msgstr "Редактировать Поле" #~ msgid "Field: " #~ msgstr "Поле: " #, fuzzy #~ msgid "Value: " #~ msgstr "Значение: " #~ msgid "Deleting.." #~ msgstr "Удаление.." #~ msgid "Inbox" #~ msgstr "Входящие" #~ msgid "Show Message" #~ msgstr "Показать Сообщение" #~ msgid "SMS Answer" #~ msgstr "Ответить на SMS" #~ msgid "Add a Contact" #~ msgstr "Добавить Контакт" #~ msgid "Add a Number" #~ msgstr "Добавить Номер" #~ msgid "Sending.." #~ msgstr "Отправляется.." #~ msgid "From:" #~ msgstr "От:" #~ msgid "Date:" #~ msgstr "Дата:" #~ msgid "Status:" #~ msgstr "Статус:" #~ msgid "PIN correct" #~ msgstr "PIN введен верно" #~ msgid "Failed" #~ msgstr "Ошибка" #~ msgid "Enter a NEW PIN" #~ msgstr "Введите НОВЫЙ PIN" #~ msgid "Confirm your NEW PIN" #~ msgstr "Подтвердите НОВЫЙ PIN" #~ msgid "PIN must be 4-8 chars long" #~ msgstr "PIN должен быть длиной 4-8 символов" #~ msgid "PIN confirmation wrong" #~ msgstr "PIN не подтверждeн" #~ msgid "XYZ" #~ msgstr "ЬЭЮЯ" #~ msgid "No Speaker" #~ msgstr "Выключить Спикер" #~ msgid "Show Keypad" #~ msgstr "Клавиатура" #~ msgid "Loading.." #~ msgstr "Загружается.." #~ msgid "Folders" #~ msgstr "Директории" #~ msgid "%d messages" #~ msgstr "%d сообщений" #~ msgid "Edit Contact" #~ msgstr "Изменить Контакт" #~ msgid "Active call" #~ msgstr "Текущий звонок" #~ msgid "Incoming call" #~ msgstr "Входящий звонок" #~ msgid "Modify" #~ msgstr "Изменить" #~ msgid "Modify Contact" #~ msgstr "Изменить Контакт" #~ msgid "" #~ "Your storage is full. Before adding new contacts, you have to delete some " #~ "old ones." #~ msgstr "" #~ "Нет места. Для добавления новых контактов, вам нужно удалить другие, " #~ "более старые." #~ msgid "New PIN saved" #~ msgstr "Новый PIN сохранен" libphone-ui-shr-0.1+git20130901/po/sv.po000066400000000000000000000347061221067027500174000ustar00rootroot00000000000000# Swedish translation for libphone-ui-shr. # This file is put in the public domain. # John Gustafsson , 2011. # msgid "" msgstr "" "Project-Id-Version: libphone-ui-shr\n" "Report-Msgid-Bugs-To: shr-devel@lists.shr-project.org\n" "POT-Creation-Date: 2011-03-22 21:31+0100\n" "PO-Revision-Date: 2011-03-23 00:25+0100\n" "Last-Translator: John Gustafsson \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/phoneui-dialog.c:34 msgid "Information" msgstr "Information" #: src/phoneui-call.c:140 #: src/view/message-list-view.c:140 #: src/view/dialer-view.c:133 #: src/view/message-show-view.c:235 #: src/view/contact-view.c:205 #: src/view/contact-list-view.c:91 msgid "Call" msgstr "Ring" #: src/util/ui-utils-contacts.c:232 #: src/util/ui-utils.c:433 #: src/util/ui-utils.c:543 #: src/view/contact-view.c:198 #: src/view/sim-manager-view.c:198 #: src/view/sim-manager-view.c:504 msgid "Cancel" msgstr "Avbryt" #: src/util/ui-utils.c:400 #: src/util/ui-utils.c:669 msgid "Ok" msgstr "Ok" #: src/util/ui-utils.c:411 msgid "Yes" msgstr "Ja" #: src/util/ui-utils.c:422 msgid "No" msgstr "Nej" #: src/view/quick-settings-view.c:90 msgid "Quick-settings" msgstr "Snabbinställningar" #: src/view/quick-settings-view.c:119 msgid "Profile/Power" msgstr "Profil/Ström" #: src/view/quick-settings-view.c:121 msgid "Network" msgstr "Nätverk" #: src/view/quick-settings-view.c:183 #: src/view/quick-settings-view.c:184 msgid "Forbid" msgstr "Förbjud" #: src/view/quick-settings-view.c:183 #: src/view/quick-settings-view.c:184 msgid "Allow" msgstr "Tillåt" #: src/view/quick-settings-view.c:193 msgid "Lock" msgstr "Lås" #: src/view/quick-settings-view.c:200 msgid "Suspend" msgstr "Vänteläge" #: src/view/quick-settings-view.c:207 msgid "Shutdown" msgstr "Stäng av" #: src/view/quick-settings-view.c:243 msgid "Connected" msgstr "Ansluten" #: src/view/quick-settings-view.c:243 msgid "Disconnected" msgstr "Frånkopplad" #: src/view/quick-settings-view.c:249 msgid "Sharing" msgstr "Delar" #: src/view/quick-settings-view.c:249 msgid "Not sharing" msgstr "Delar inte" #: src/view/quick-settings-view.c:277 msgid "Failed setting the profile." msgstr "Misslyckades med att ställa in profil." #: src/view/quick-settings-view.c:357 msgid "Failed to retrieve the current profile." msgstr "Misslyckades med att hämta nuvarande profil." #: src/view/quick-settings-view.c:403 msgid "Do you really want to
shutdown the phone?" msgstr "Vill du verkligen
stänga av telefonen?" #: src/view/quick-settings-view.c:589 msgid "Activating PDP failed." msgstr "Misslyckades med att aktivera PDP." #: src/view/quick-settings-view.c:603 msgid "De-Activating PDP failed." msgstr "Misslyckades med att inaktivera PDP." #: src/view/ussd-view.c:88 msgid "Data:" msgstr "Data:" #: src/view/ussd-view.c:92 #: src/view/message-new-view.c:277 #: src/view/dialer-view.c:119 #: src/view/dialog-view.c:73 #: src/view/message-show-view.c:201 msgid "Close" msgstr "Stäng" #: src/view/message-new-view.c:104 msgid "New Message" msgstr "Nytt meddelande" #: src/view/message-new-view.c:263 msgid "Enter your message" msgstr "Skriv ditt meddelande" #: src/view/message-new-view.c:285 msgid "Continue" msgstr "Fortsätt" #: src/view/message-new-view.c:309 msgid "Define Recipients" msgstr "Ange mottagare" #: src/view/message-new-view.c:329 #: src/view/message-new-view.c:385 #: src/view/message-new-view.c:421 #: src/view/contact-view.c:813 msgid "Back" msgstr "Tillbaka" #: src/view/message-new-view.c:337 #: src/view/contact-view.c:110 msgid "Contact" msgstr "Kontakt" #: src/view/message-new-view.c:346 msgid "Number" msgstr "Nummer" #: src/view/message-new-view.c:355 msgid "Send" msgstr "Skicka" #: src/view/message-new-view.c:379 #: src/view/message-show-view.c:244 msgid "Add Contact" msgstr "Lägg till kontakt" #: src/view/message-new-view.c:392 #: src/view/message-new-view.c:428 msgid "Add" msgstr "Lägg till" #: src/view/message-new-view.c:418 msgid "Add Number" msgstr "Lägg till nummer" #: src/view/message-new-view.c:653 msgid "You have entered
an invalid number." msgstr "Du har angett
ett ogiltigt nummer." #: src/view/message-new-view.c:700 #: src/view/message-new-view.c:745 #, c-format msgid "%d characters left [%d]" msgstr "%d tecken kvar [%d]" #: src/view/message-new-view.c:790 msgid "Error will trying to resolve number." msgstr "Fel vid försök att slå upp nummer." #: src/view/message-new-view.c:823 msgid "Sending the message failed" msgstr "Misslyckades med att skicka meddelandet" #: src/view/message-new-view.c:859 msgid "Do you really want to quit writing this message?" msgstr "Vill du verkligen avsluta skrivandet av detta meddelande?" #: src/view/sim-auth-input-view.c:87 msgid "SIM Auth" msgstr "SIM-autentisering" #: src/view/sim-auth-input-view.c:101 #: src/view/message-list-view.c:156 #: src/view/message-show-view.c:226 #: src/view/contact-view.c:219 #: src/view/sim-manager-view.c:870 #: src/view/contact-list-view.c:212 #: src/view/contact-list-view.c:224 msgid "Delete" msgstr "Ta bort" #: src/view/sim-auth-input-view.c:108 msgid "OK" msgstr "Ok" #: src/view/sim-auth-input-view.c:162 msgid "Please enter your PIN" msgstr "Ange PIN" #: src/view/sim-auth-input-view.c:167 msgid "Please enter your PIN2" msgstr "Ange din PIN2" #: src/view/sim-auth-input-view.c:172 msgid "Please enter your PUK" msgstr "Ange PUK" #: src/view/sim-auth-input-view.c:177 msgid "Please enter your PUK2" msgstr "Ange din PUK2" #: src/view/sim-auth-input-view.c:183 msgid "SIM unlocked" msgstr "SIM upplåst" #: src/view/sim-auth-input-view.c:190 msgid "Unknown error" msgstr "Okänt fel" #: src/view/sim-auth-input-view.c:228 msgid "PIN wrong" msgstr "Felaktig PIN" #: src/view/sim-auth-input-view.c:234 msgid "PIN Ok" msgstr "PIN ok" #: src/view/sim-auth-input-view.c:251 msgid "PUK wrong" msgstr "Felaktig PUK" #: src/view/sim-auth-input-view.c:257 msgid "PUK Ok" msgstr "PUK ok" #: src/view/sim-auth-input-view.c:273 #: src/view/sim-auth-input-view.c:292 msgid "Checking..." msgstr "Kontrollerar..." #: src/view/sim-auth-input-view.c:281 msgid "Please enter a new PIN" msgstr "Ange en ny PIN" #: src/view/sim-auth-input-view.c:287 msgid "Please confirm the new PIN" msgstr "Bekräfta den nya PIN-koden" #: src/view/contact-list-common.c:294 #: src/view/message-list-view.c:187 #: src/view/message-list-view.c:198 #: src/view/sim-manager-view.c:882 msgid "Loading..." msgstr "Hämtar..." #: src/view/message-list-view.c:95 msgid "Messages" msgstr "Meddelanden" #: src/view/message-list-view.c:109 #: src/view/contact-list-view.c:105 msgid "New" msgstr "Ny" #: src/view/message-list-view.c:118 #: src/view/message-show-view.c:211 #: src/view/sim-manager-view.c:836 msgid "Options" msgstr "Alternativ" #: src/view/message-list-view.c:132 #: src/view/message-show-view.c:264 msgid "Answer" msgstr "Svara" #: src/view/message-list-view.c:148 #: src/view/message-list-view.c:534 #: src/view/message-show-view.c:254 msgid "Forward" msgstr "Vidarebefodra" #: src/view/message-list-view.c:165 #: src/view/message-list-view.c:529 msgid "Show" msgstr "Visa" #: src/view/message-list-view.c:381 #: src/view/message-show-view.c:428 msgid "Deleting the message failed!" msgstr "Misslyckades med att ta bort meddelandet!" #: src/view/message-list-view.c:423 #: src/view/message-show-view.c:457 msgid "Really delete this message?" msgstr "Verkligen ta bort detta meddelande?" #: src/view/message-list-view.c:518 #: src/view/message-list-view.c:523 #: src/view/sim-manager-view.c:862 #: src/view/contact-list-view.c:210 msgid "Edit" msgstr "Redigera" #: src/view/message-list-view.c:551 msgid "Error while trying to resolve the number" msgstr "Fel vid försök att slå upp numret" #: src/view/message-list-view.c:583 msgid "Error while retrieving messages" msgstr "Fel vid hämtning av meddelanden" #: src/view/message-list-view.c:591 msgid "There are no messages" msgstr "Det finns inga meddelanden" #: src/view/message-list-view.c:623 msgid "Error while retrieving a message" msgstr "Fel vid hämtning av ett meddelande" #: src/view/call-incoming-view.c:72 msgid "Accept" msgstr "Ta emot" #: src/view/call-incoming-view.c:84 msgid "Reject" msgstr "Avvisa" #: src/view/idle-view.c:98 msgid "Idle_Screen" msgstr "Skärm vid inaktivitet" #: src/view/views.h:39 msgid "(unknown)" msgstr "(okänd)" #: src/view/views.h:40 msgid "(no number)" msgstr "(inget nummer)" #: src/view/call-common.c:129 msgid "Bluetooth" msgstr "Blåtand" #: src/view/call-common.c:132 msgid "Handset" msgstr "Handenhet" # http://www.datatermgruppen.se/fragor-och-svar.html#f152 #: src/view/call-common.c:135 msgid "Headset" msgstr "Mikrofonlur" #: src/view/call-common.c:144 #: src/view/call-active-view.c:160 msgid "Speaker" msgstr "Högtalare" #: src/view/call-common.c:183 msgid "Pickup" msgstr "Ta upp" #: src/view/call-common.c:205 #: src/view/call-active-view.c:205 msgid "Release" msgstr "Lägg på" #: src/view/phone-log-view.c:81 msgid "Phonelog" msgstr "Samtalslista" #: src/view/phone-log-view.c:124 msgid "received" msgstr "mottagna" #: src/view/phone-log-view.c:127 msgid "outgoing" msgstr "utgående" #: src/view/phone-log-view.c:131 msgid "missed" msgstr "missade" #: src/view/phone-log-view.c:135 msgid "all" msgstr "alla" #: src/view/phone-log-view.c:292 msgid "Contact lookup error." msgstr "Fel vid uppslagning av kontakt." #: src/view/phone-log-view.c:328 msgid "Cannot retrieve calls list." msgstr "Kan inte hämta samtalslista." #: src/view/dialer-view.c:70 msgid "Dialer" msgstr "Telefon" #: src/view/dialer-view.c:92 msgid "Click to open contactlist." msgstr "Klicka för att öppna kontaktlista." #: src/view/dialer-view.c:126 msgid "More" msgstr "Mer" #: src/view/dialer-view.c:155 #: src/view/contact-view.c:191 #: src/view/contact-view.c:806 #: src/view/sim-manager-view.c:494 msgid "Save" msgstr "Spara" #: src/view/dialer-view.c:163 msgid "Send SMS" msgstr "Skicka SMS" #: src/view/dialer-view.c:409 msgid "Cannot initiate call." msgstr "Kan inte initiera samtal." #: src/view/dialog-view.c:65 msgid "Your SIM storage is full. Please delete some messages or you may not receive them anymore!" msgstr "Ditt SIM-minne är fullt. Ta bort ett par meddelanden för annars kan du inte ta emot några längre!" #: src/view/dialog-view.c:68 msgid "GSM is not available, because no SIM card is present." msgstr "GSM är inte tillgängligt, eftersom inget SIM-kort finnns." #: src/view/dialog-view.c:70 msgid "Unknown message." msgstr "Okänt meddelande." #: src/view/message-show-view.c:81 msgid "Message" msgstr "Meddelande" #: src/view/contact-view.c:212 #: src/view/contact-list-view.c:98 msgid "SMS" msgstr "SMS" #: src/view/contact-view.c:227 msgid "Add Field" msgstr "Lägg till fält" #: src/view/contact-view.c:379 msgid "Deleting the contact failed!" msgstr "Misslyckades med att ta bort kontakt!" #: src/view/contact-view.c:408 #: src/view/sim-manager-view.c:699 msgid "Really delete this contact?" msgstr "Verkligen ta bort denna kontakt?" #: src/view/contact-view.c:719 msgid "Updating contact failed." msgstr "Misslyckades med att uppdatera kontakt." #: src/view/contact-view.c:734 msgid "Adding the contact failed." msgstr "Misslyckades med att lägga till kontakt." #: src/view/contact-view.c:752 msgid "Failed loading data of saved contact." msgstr "Misslyckades med att hämta data för sparad kontakt." #: src/view/contact-view.c:820 msgid "Remove" msgstr "Radera" #: src/view/call-active-view.c:171 msgid "Mute" msgstr "Tyst" #: src/view/call-active-view.c:181 msgid "Volume" msgstr "Volym" #: src/view/call-active-view.c:194 msgid "Mic" msgstr "Mikrofon" #: src/view/call-active-view.c:212 #: src/view/call-active-view.c:261 msgid "Keypad" msgstr "Knappsats" #: src/view/call-active-view.c:266 msgid "Hide Keypad" msgstr "Dölj knappsats" #: src/view/sim-manager-view.c:179 msgid "Select Contact" msgstr "Välj kontakt" #: src/view/sim-manager-view.c:206 msgid "Select" msgstr "Välj" #: src/view/sim-manager-view.c:296 msgid "Failed to write to SIM." msgstr "Misslyckades med att skriva till SIM." #: src/view/sim-manager-view.c:357 msgid "Failed retrieving Phonebook Info." msgstr "Misslyckades med att hämta telefonboksinformation." #: src/view/sim-manager-view.c:412 msgid "Failed to retrieve contact." msgstr "Misslyckades med att hämta kontakt." #: src/view/sim-manager-view.c:435 msgid "Name:" msgstr "Namn:" #: src/view/sim-manager-view.c:461 msgid "Number:" msgstr "Nummer:" #: src/view/sim-manager-view.c:556 msgid "Importing contact failed" msgstr "Misslyckades med att importera kontakt." #: src/view/sim-manager-view.c:563 msgid "Contact successfully imported" msgstr "Kontakt har importerats" #: src/view/sim-manager-view.c:590 msgid "Import had errors! Failed entries are marked." msgstr "Fel vid import! Misslyckade poster är markerade." #: src/view/sim-manager-view.c:596 msgid "All contacts added succesfully" msgstr "Lyckades lägga till alla kontakter" #: src/view/sim-manager-view.c:663 msgid "Error while deleting entry!" msgstr "Fel vid borttagning av post!" #: src/view/sim-manager-view.c:761 msgid "Failed retrieving SIM Phonebook." msgstr "Misslyckades med att hämta SIM-telefonbok." #: src/view/sim-manager-view.c:802 msgid "SIM Manager" msgstr "SIM-hanterare" #: src/view/sim-manager-view.c:820 msgid "Import all" msgstr "Importera alla" #: src/view/sim-manager-view.c:828 msgid "Copy to SIM" msgstr "Kopiera till SIM" #: src/view/sim-manager-view.c:854 msgid "Import" msgstr "Importera" #: src/view/contact-list-view.c:73 msgid "Contacts" msgstr "Kontakter" #: src/view/contact-list-view.c:213 msgid "Unselect" msgstr "Avmarkera" #: src/view/contact-list-view.c:227 msgid "Unselect all" msgstr "Avmarkera allt" #: src/view/contact-list-view.c:361 msgid "Really delete contact details?" msgstr "Verkligen ta bort kontaktdetaljer?" #: src/view/contact-list-view.c:397 msgid "Failed adding contact." msgstr "Misslyckades med att lägga till kontakt." #: src/widget/elm_keypad.c:145 msgid "ABC" msgstr "ABC" #: src/widget/elm_keypad.c:146 msgid "DEF" msgstr "DEF" #: src/widget/elm_keypad.c:147 msgid "GHI" msgstr "GHI" #: src/widget/elm_keypad.c:148 msgid "JKL" msgstr "JKL" #: src/widget/elm_keypad.c:149 msgid "MNO" msgstr "MNO" #: src/widget/elm_keypad.c:150 msgid "PQRS" msgstr "PQRS" #: src/widget/elm_keypad.c:151 msgid "TUV" msgstr "TUV" #: src/widget/elm_keypad.c:152 msgid "WXYZ" msgstr "WXYZ" #: src/phoneui-ussd.c:35 msgid "Service Data" msgstr "Tjänstedata" libphone-ui-shr-0.1+git20130901/src/000077500000000000000000000000001221067027500165475ustar00rootroot00000000000000libphone-ui-shr-0.1+git20130901/src/Makefile.am000066400000000000000000000041631221067027500206070ustar00rootroot00000000000000MAINTAINERCLEANFILES = Makefile.in AM_CFLAGS = -I$(top_srcdir)/src/util -I$(top_srcdir)/src/widget -I$(top_srcdir)/src/view \ -DDATADIR=\"$(datadir)\" -DPKGDATADIR=\"$(pkgdatadir)\" -DPACKAGE=\"$(PACKAGE)\" \ -DLOCALEDIR=\"$(localedir)\" -DG_LOG_DOMAIN=\"libphone-ui-shr\" \ @E_CFLAGS@ @LIBPHONEUI_CFLAGS@ @FSO_GLIB_CFLAGS@ @FSO_FRAMEWORK_CFLAGS@ \ @GLIB_CFLAGS@ @LIBPHONE_UTILS_CFLAGS@ -g3 -Wall -Wextra -Werror pkgdir = $(libdir)/phoneui/modules pkg_LTLIBRARIES = shr.la shr_la_LIBADD = @LIBPHONEUI_LIBS@ @LIBPHONE_UTILS_LIBS@ @GLIB_LIBS@ @FSO_GLIB_LIBS@ @E_LIBS@ @LTLIBINTL@ -lpthread shr_la_LDFLAGS = -module -avoid-version shr_la_SOURCES = \ phoneui-init.h phoneui-init.c \ phoneui-dialer.h phoneui-dialer.c \ phoneui-idle.h phoneui-idle.c \ phoneui-dialog.h phoneui-dialog.c \ phoneui-messages.h phoneui-messages.c \ phoneui-sim-auth.h phoneui-sim-auth.c \ phoneui-call.h phoneui-call.c \ phoneui-contacts.h phoneui-contacts.c \ phoneui-ussd.h phoneui-ussd.c \ phoneui-quick-settings.h phoneui-quick-settings.c \ phoneui-phone-log.h phoneui-phone-log.c \ phoneui-sim-manager.h phoneui-sim-manager.c \ widget/elm_keypad.h widget/elm_keypad.c \ util/window.h util/window.c \ util/ui-utils.h util/ui-utils.c \ util/ui-utils-contacts.h util/ui-utils-contacts.c \ view/views.h \ view/dialer-view.h \ view/dialer-view.c \ view/idle-view.h \ view/idle-view.c \ view/dialog-view.c \ view/contact-list-common.h \ view/contact-list-common.c \ view/contact-view.c \ view/contact-view.h \ view/contact-list-view.h \ view/contact-list-view.c \ view/message-new-view.h \ view/message-new-view.c \ view/message-show-view.h \ view/message-show-view.c \ view/message-list-view.h \ view/message-list-view.c \ view/call-common.h view/call-common.c \ view/call-incoming-view.c \ view/call-active-view.c \ view/sim-auth-input-view.h \ view/sim-auth-input-view.c \ util/common-utils.h util/common-utils.c \ view/ussd-view.c \ view/quick-settings-view.h \ view/quick-settings-view.c \ view/phone-log-view.h \ view/phone-log-view.c \ view/sim-manager-view.h \ view/sim-manager-view.c \ phoneui-shr.h libphone-ui-shr-0.1+git20130901/src/phoneui-call.c000066400000000000000000000107641221067027500213030ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include "phoneui-call.h" #include "call-common.h" #include "phoneui-shr.h" #include "window.h" #include "views.h" /* HACK UNTIL WE REMOVE THIS INSTANCE THING COMPLETELY*/ #include #include struct Instance { int id; struct Window *win; }; static int instances_size = 0; static struct Instance *instances; void instance_manager_add(int id, struct Window *win) { instances_size++; if (instances_size == 1) { instances = malloc(sizeof(struct Instance)); g_debug("malloc'ed"); } else { instances = realloc(instances, sizeof(struct Instance) * instances_size); g_debug("realloc'ed"); } instances[instances_size - 1].id = id; instances[instances_size - 1].win = win; g_debug("done"); } struct Window * instance_manager_remove(int id) { struct Window *win = NULL; int i, j; for (i = 0; i < instances_size; i++) { if (instances[i].id == id) { win = instances[i].win; break; } } for (j = i + 1 ; j < instances_size ; j++) { instances[j - 1].id = instances[j].id; instances[j - 1].win = instances[j].win; } if (win) { instances_size--; /*FIXME: handle if can't allocate */ instances = realloc(instances, sizeof(struct Instance) * instances_size); } return win; } /* ADDED THE INSTANCE THING BACK JUST HERE AS i HAVE NO TIME TO REMOVE IT * COMPLETELY ATM */ enum CallTypes { CALL_INCOMING, CALL_ACTIVE }; struct Call { int id; struct Window *win; }; static void _show(const int id, const int status, const char *number, int type); static void _hide(const int id); static void _delete(void *_data, Evas_Object * win, void *event_info); void phoneui_backend_incoming_call_show(const int id, const int status, const char *number) { _show(id, status, number, CALL_INCOMING); } void phoneui_backend_incoming_call_hide(const int id) { _hide(id); } void phoneui_backend_outgoing_call_show(const int id, const int status, const char *number) { _show(id, status, number, CALL_ACTIVE); } void phoneui_backend_outgoing_call_hide(const int id) { _hide(id); } static void _show(const int id, const int status, const char *number, int type) { struct Window *win = window_new(D_("Call")); instance_manager_add(id, win); GHashTable *options = g_hash_table_new(g_str_hash, g_str_equal); g_hash_table_insert(options, "id", GINT_TO_POINTER(id)); g_hash_table_insert(options, "status", GINT_TO_POINTER(status)); g_hash_table_insert(options, "number", g_strdup(number)); g_hash_table_insert(options, "number_state", GINT_TO_POINTER(CALL_NUMBER_NUMBER)); window_init(win); window_delete_callback_set(win, _delete); if (type == CALL_INCOMING) { window_view_show(win, options, (void * (*)(struct Window *, void *)) call_incoming_view_show, (void (*)(void *)) call_incoming_view_hide, NULL); } else if (type == CALL_ACTIVE) { window_view_show(win, options,(void * (*)(struct Window *, void *)) call_active_view_show, (void (*)(void *)) call_active_view_hide, NULL); } else { g_critical("Unknown call type: %d", type); g_hash_table_destroy(options); } } static void _hide(const int id) { g_debug("call_hide(id=%d)", id); call_common_active_call_remove(id); struct Window *win = instance_manager_remove(id); if (win) { window_destroy(win, NULL); } else { g_critical("Tried to hide a unitinialized window"); } } static void _delete(void *_data, Evas_Object * win, void *event_info) { (void) win; (void) event_info; struct CallActiveViewData *data; g_debug("call_delete(), release call!"); data = ((struct Window *)_data)->view_data; phoneui_utils_call_release(data->parent.id, NULL, NULL); } libphone-ui-shr-0.1+git20130901/src/phoneui-call.h000066400000000000000000000022741221067027500213050ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef PHONEUI_CALL_H #define PHONEUI_CALL_H void phoneui_backend_incoming_call_show(const int id, const int status, const char *number); void phoneui_backend_incoming_call_hide(const int id); void phoneui_backend_outgoing_call_show(const int id, const int status, const char *number); void phoneui_backend_outgoing_call_hide(const int id); #endif libphone-ui-shr-0.1+git20130901/src/phoneui-contacts.c000066400000000000000000000045521221067027500222040ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include "phoneui-contacts.h" #include "view/contact-list-view.h" #include "view/contact-view.h" #include "view/views.h" void phoneui_backend_contacts_show() { if (!contact_list_view_is_init()) { if (contact_list_view_init()) { return; } } contact_list_view_show(); } static void _contact_get_cb(GError *error, GHashTable *content, gpointer data) { char *path = (char *)data; if (error || !content) { g_warning("Failed aquiring data for contact %s", path); // TODO: show some message dialog showing it did not work free (path); return; } if (contact_view_init(path, content)) return; contact_view_show(path); } void phoneui_backend_contacts_contact_show(const char *contact_path) { if (!contact_path) return; g_debug("showing contact %s", contact_path); if (!contact_view_is_init(contact_path)) { phoneui_utils_contact_get(contact_path, _contact_get_cb, strdup(contact_path)); return; } contact_view_show(contact_path); } void phoneui_backend_contacts_contact_new(GHashTable *options) { g_debug("phoneui_backend_contacts_contact_new()"); if (!contact_view_is_init("")) { if (contact_view_init(strdup(""), options)) { return; } } contact_view_show(""); } void phoneui_backend_contacts_contact_edit(const char *path) { phoneui_backend_contacts_contact_show(path); } void phoneui_backend_contacts_deinit() { /*FIXME: also clean all the contact screens*/ contact_list_view_deinit(); } libphone-ui-shr-0.1+git20130901/src/phoneui-contacts.h000066400000000000000000000023341221067027500222050ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _PHONEUI_CONTACTS_H #define _PHONEUI_CONTACTS_H #include void phoneui_backend_contacts_show(); void phoneui_backend_contacts_deinit(); void phoneui_backend_contacts_contact_show(const char *path); void phoneui_backend_contacts_contact_new(GHashTable *values); void phoneui_backend_contacts_contact_edit(const char *path); #endif libphone-ui-shr-0.1+git20130901/src/phoneui-dialer.c000066400000000000000000000021271221067027500216220ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "phoneui-dialer.h" #include "view/dialer-view.h" void phoneui_backend_dialer_show() { if (!dialer_view_is_init()) { if (dialer_view_init()) { return; } } dialer_view_show(); } void phoneui_backend_dialer_deinit() { dialer_view_deinit(); } libphone-ui-shr-0.1+git20130901/src/phoneui-dialer.h000066400000000000000000000017301221067027500216260ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _PHONEUI_DIALER_H #define _PHONEUI_DIALER_H void phoneui_backend_dialer_show(); void phoneui_backend_dialer_deinit(); #endif libphone-ui-shr-0.1+git20130901/src/phoneui-dialog.c000066400000000000000000000024731221067027500216250ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "phoneui-dialog.h" #include #include "phoneui-shr.h" #include "window.h" #include "views.h" void phoneui_backend_dialog_show(const int type) { struct Window *win = window_new(D_("Information")); GHashTable *options = g_hash_table_new(g_str_hash, g_str_equal); g_hash_table_insert(options, "type", GINT_TO_POINTER(type)); window_init(win); window_view_show(win, options, dialog_view_show, dialog_view_hide, NULL); } libphone-ui-shr-0.1+git20130901/src/phoneui-dialog.h000066400000000000000000000017561221067027500216350ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _PHONEUI_DIALOG_H #define _PHONEUI_DIALOG_H void phoneui_backend_dialog_show(const int type); #endif libphone-ui-shr-0.1+git20130901/src/phoneui-idle.c000066400000000000000000000026501221067027500213000ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include "phoneui-idle.h" #include "view/idle-view.h" void phoneui_backend_idle_screen_show() { if (!idle_screen_view_is_init()) { if (idle_screen_view_init()) { return; } } idle_screen_view_show(); } void phoneui_backend_idle_screen_deinit() { idle_screen_view_deinit(); } void phoneui_backend_idle_screen_hide() { idle_screen_view_hide(); } void phoneui_backend_idle_screen_toggle() { if (!idle_screen_view_is_init()) { if (idle_screen_view_init()) { return; } } idle_screen_view_toggle(); } libphone-ui-shr-0.1+git20130901/src/phoneui-idle.h000066400000000000000000000022141221067027500213010ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _PHONEUI_IDLE_SCREEN_H #define _PHONEUI_IDLE_SCREEN_H #include void phoneui_backend_idle_screen_show(); void phoneui_backend_idle_screen_deinit(); void phoneui_backend_idle_screen_hide(); void phoneui_backend_idle_screen_toggle(); #endif libphone-ui-shr-0.1+git20130901/src/phoneui-init.c000066400000000000000000000065411221067027500213310ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "phoneui-shr.h" #include "phoneui-init.h" #include #include #include #include #include #include // FIXME: move stuff to phoneui-shr so that this is not needed #include "views.h" #include "phoneui-contacts.h" #include "phoneui-messages.h" #include "phoneui-dialer.h" #include "phoneui-idle.h" #include "phoneui-quick-settings.h" /*FIXME: what are they used for?!*/ int phoneui_argc; char **phoneui_argv; void phoneui_backend_init(int argc, char **argv, int (*idle_cb) (void *)) { (void) idle_cb; GKeyFile *keyfile; GKeyFileFlags flags; GError *error = NULL; char *theme = NULL; int theme_len; // Initialize gettext setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); bind_textdomain_codeset(PACKAGE, "UTF-8"); phoneui_argc = argc; phoneui_argv = argv; // g_type_init will be deprecated in 2.36. 2.35 is the development // version for 2.36, hence do not call g_type_init starting 2.35. // http://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#g-type-init #if !GLIB_CHECK_VERSION(2, 35, 0) g_type_init(); #endif keyfile = g_key_file_new(); flags = G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS; if (g_key_file_load_from_file (keyfile, PHONEUI_SHR_CONFIG, flags, &error)) { theme = g_key_file_get_string(keyfile, "global", "theme", NULL); g_key_file_free(keyfile); } if (!theme) theme = strdup("default"); /* FIXME: possible overflow in line 51 */ /* +6 for /, .edj and ending 0 */ theme_len = strlen(PKGDATADIR) + strlen(theme) + 6; phoneui_theme = malloc(theme_len); if (!phoneui_theme) { g_critical("Out of memory allocating theme path"); } else { snprintf(phoneui_theme, theme_len, "%s/%s.edj", PKGDATADIR, theme); g_debug("setting theme to (%d) %s", theme_len, phoneui_theme); } free(theme); } void phoneui_backend_deinit() { phoneui_backend_contacts_deinit(); phoneui_backend_dialer_deinit(); phoneui_backend_messages_deinit(); phoneui_backend_idle_screen_deinit(); phoneui_backend_quick_settings_deinit(); if (phoneui_theme) { free(phoneui_theme); } } void phoneui_backend_loop() { /* Initialize glib main loop */ GMainLoop *mainloop = g_main_loop_new(NULL, FALSE); // Initializations elm_init(phoneui_argc, phoneui_argv); g_debug("Initiated elementary"); if (!ecore_main_loop_glib_integrate()) { g_critical("failed integrating the glib mainloop"); return; } elm_run(); elm_shutdown(); g_main_loop_unref(mainloop); } libphone-ui-shr-0.1+git20130901/src/phoneui-init.h000066400000000000000000000017601221067027500213340ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef PHONEUI_INIT_H #define PHONEUI_INIT_H void phoneui_backend_init(int argc, char **argv, int (*idle_cb) (void *)); void phoneui_backend_loop(); #endif libphone-ui-shr-0.1+git20130901/src/phoneui-messages.c000066400000000000000000000046641221067027500222010ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include "phoneui-messages.h" #include "view/message-list-view.h" #include "view/message-show-view.h" #include "view/message-new-view.h" #include "view/views.h" void phoneui_backend_messages_show() { if (!message_list_view_is_init()) { if (message_list_view_init()) { return; } } message_list_view_show(); } void phoneui_backend_messages_deinit() { /*Also free open messages*/ message_list_view_deinit(); } static void _message_get_cb(GError *error, GHashTable *content, gpointer data) { char *path = (char *)data; if (error || !content) { g_warning("Failed aquiring data for message %s", path); free (path); return; } g_debug("Got data for message %s", path); if (message_show_view_init(path, content)) { g_warning("Init of view for message %s failed", path); return; } g_debug("Showing message %s", path); message_show_view_show(path); } void phoneui_backend_messages_message_show(const char *path) { if (!message_show_view_is_init(path)) { g_debug("View for message %s is not yet inited...", path); phoneui_utils_message_get(path, _message_get_cb, strdup(path)); return; } g_debug("View for message %s is inited - showing", path); message_show_view_show(path); } void phoneui_backend_messages_message_new(GHashTable *options) { struct MessageNewViewData *view; g_debug("Initing new message view"); view = message_new_view_init(options); if (!view) { return; } g_debug("Showing new message view"); message_new_view_show(view); } libphone-ui-shr-0.1+git20130901/src/phoneui-messages.h000066400000000000000000000021601221067027500221730ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _PHONEUI_MESSAGES_H #define _PHONEUI_MESSAGES_H #include void phoneui_backend_messages_show(); void phoneui_backend_messages_deinit(); void phoneui_backend_messages_message_show(const char *path); void phoneui_backend_messages_message_new(GHashTable *options); #endif libphone-ui-shr-0.1+git20130901/src/phoneui-phone-log.c000066400000000000000000000021541221067027500222520ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "phoneui-phone-log.h" #include "phone-log-view.h" void phoneui_backend_phone_log_show() { if (!phone_log_view_is_init()) { if (phone_log_view_init()) { return; } } phone_log_view_show(); } void phoneui_backend_phone_log_hide() { phone_log_view_hide(); } libphone-ui-shr-0.1+git20130901/src/phoneui-phone-log.h000066400000000000000000000020371221067027500222570ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _PHONEUI_PHONELOG_H #define _PHONEUI_PNONELOG_H void phoneui_backend_phone_log_show(); void phoneui_backend_phone_log_hide(); void phoneui_backend_phone_log_new_call(char *path); #endif libphone-ui-shr-0.1+git20130901/src/phoneui-quick-settings.c000066400000000000000000000025501221067027500233340ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Rui Miguel Silva Seabra * Tom "TAsn" Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "phoneui-quick-settings.h" #include "view/quick-settings-view.h" void phoneui_backend_quick_settings_show() { if (!quick_settings_view_is_init()) { if (quick_settings_view_init()) { return; } } quick_settings_view_show(); } void phoneui_backend_quick_settings_deinit() { quick_settings_view_deinit(); } void phoneui_backend_quick_settings_hide() { quick_settings_view_hide(); } libphone-ui-shr-0.1+git20130901/src/phoneui-quick-settings.h000066400000000000000000000021171221067027500233400ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Rui Miguel Silva Seabra * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _PHONEUI_QUICK_SETTINGS_H #define _PHONEUI_QUICK_SETTINGS_H void phoneui_backend_quick_settings_show(); void phoneui_backend_quick_settings_hide(); void phoneui_backend_quick_settings_deinit(); #endif libphone-ui-shr-0.1+git20130901/src/phoneui-shr.h000066400000000000000000000021001221067027500211520ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * Lukas Märdian * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _PHONEUI_SHR_H #define _PHONEUI_SHR_H #define PHONEUI_SHR_CONFIG DATADIR"/libphone-ui-shr/config" #define D_(String) dgettext(PACKAGE, String) char *phoneui_theme; #endif libphone-ui-shr-0.1+git20130901/src/phoneui-sim-auth.c000066400000000000000000000026171221067027500221150ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include "phoneui-shr.h" #include "ui-utils.h" #include "views.h" #include "phoneui-sim-auth.h" #include void phoneui_backend_sim_auth_show(const int status) { // FIXME: remove status from the specs (void) status; if (!sim_auth_input_view_is_init()) { if (sim_auth_input_view_init()) { return; } } sim_auth_input_view_show(); } void phoneui_backend_sim_auth_hide(const int status) { // FIXME: remove status from the specs (void) status; sim_auth_input_view_hide(); } libphone-ui-shr-0.1+git20130901/src/phoneui-sim-auth.h000066400000000000000000000017761221067027500221270ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _PHONEUI_SIM_AUTH_H #define _PHONEUI_SIM_AUTH_H void phoneui_backend_sim_auth_show(const int status); void phoneui_backend_sim_auth_hide(const int status); #endif libphone-ui-shr-0.1+git20130901/src/phoneui-sim-manager.c000066400000000000000000000022621221067027500225620ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Thomas Zimmermann * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "phoneui-sim-manager.h" #include "sim-manager-view.h" void phoneui_backend_sim_manager_show() { if (!sim_manager_view_is_init()) { if (sim_manager_view_init()) { return; } } sim_manager_view_show(); } void phoneui_backend_sim_manager_hide() { sim_manager_view_hide(); } libphone-ui-shr-0.1+git20130901/src/phoneui-sim-manager.h000066400000000000000000000017611221067027500225720ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _PHONEUI_SIM_MANAGER_H #define _PHONEUI_SIM_MANAGER_H void phoneui_backend_sim_manager_show(); void phoneui_backend_sim_manager_hide(); #endif libphone-ui-shr-0.1+git20130901/src/phoneui-ussd.c000066400000000000000000000027611221067027500213440ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "phoneui-ussd.h" #include #include "phoneui-shr.h" #include "window.h" #include "views.h" void phoneui_backend_ussd_show(int mode, const char *message) { g_debug("phoneui_backend_ussd_show(mode=%d, message=%s)", mode, message); struct Window *win = window_new(D_("Service Data")); GHashTable *options = g_hash_table_new(g_str_hash, g_str_equal); g_hash_table_insert(options, "mode", GINT_TO_POINTER(mode)); g_hash_table_insert(options, "message", g_strdup((char *) message)); /* we lose the const here */ window_init(win); window_view_show(win, options, ussd_view_show, ussd_view_hide, NULL); } libphone-ui-shr-0.1+git20130901/src/phoneui-ussd.h000066400000000000000000000017071221067027500213500ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef PHONEUI_USSD_H #define PHONEUI_USSD_H void phoneui_backend_ussd_show(int mode, const char *message); #endif libphone-ui-shr-0.1+git20130901/src/util/000077500000000000000000000000001221067027500175245ustar00rootroot00000000000000libphone-ui-shr-0.1+git20130901/src/util/Makefile.am000066400000000000000000000000441221067027500215560ustar00rootroot00000000000000MAINTAINERCLEANFILES = Makefile.in libphone-ui-shr-0.1+git20130901/src/util/common-utils.c000066400000000000000000000075671221067027500223350ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include #include #include "common-utils.h" static GHashTable *ref_counter = NULL; void * common_utils_object_ref(void *object) { void *ret; int count; if (!ref_counter) { ref_counter = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, NULL); } ret = g_hash_table_lookup(ref_counter, object); if (ret) { count = GPOINTER_TO_INT(ret); count++; } else { count = 1; } g_hash_table_replace(ref_counter, object, GINT_TO_POINTER(count)); return object; } int common_utils_object_unref(void *object) { void *ret; int count; ret = g_hash_table_lookup(ref_counter, object); if (!ret) { return -1; } count = GPOINTER_TO_INT(ret); if (count <= 1) { g_hash_table_remove(ref_counter, object); return 0; } else { g_hash_table_replace(ref_counter, object, GINT_TO_POINTER(count - 1)); } return count; } void common_utils_object_unref_free(void *object) { if (common_utils_object_unref(object) <= 1) { free(object); } } int common_utils_object_get_ref(void *object) { void *ret; int count; ret = g_hash_table_lookup(ref_counter, object); if (!ret) { return 0; } count = GPOINTER_TO_INT(ret); return count; } GVariant* common_utils_new_variant_from_pointer(void* val) { gint i; i = GPOINTER_TO_INT(val); if (sizeof(gint) == sizeof(gint64)) { return g_variant_new_int64(i); } else if (sizeof(gint) == sizeof(gint32)) { return g_variant_new_int32(i); } return g_variant_new_int16(i); } void* common_utils_pointer_from_variant(GVariant* val) { gint i; if (sizeof(gint) == sizeof(gint64)) { i = g_variant_get_int64(val); } else if (sizeof(gint) == sizeof(gint32)) { i = g_variant_get_int32(val); } else { i = g_variant_get_int16(val); } return GINT_TO_POINTER(i); } void common_utils_variant_unref(void* value) { g_variant_unref(value); } int common_utils_is_pin(const char *string) { if (strlen(string) < 4 || strlen(string) > 8) return 0; const char *p; for (p = string ; *p ; p++) { if (!isdigit(*p)) { return 0; } } return 1; } int common_utils_is_puk(const char *string) { if (strlen(string) != 8) return 0; const char *p; for (p = string ; *p ; p++) { if (!isdigit(*p)) { return 0; } } return 1; } char * common_utils_string_strip_newline(char *string) { char *p; for (p = string; *p; p++) { if (isspace(*p)) { *p = ' '; } } return string; } char * common_utils_timestamp_to_date(long timestamp) { char *ret = malloc(35); strftime(ret, 31, "%d.%m.%Y %H:%M" LTR_STRING, localtime(×tamp)); return ret; } void common_utils_debug_dump_hashtable(GHashTable* hasht) { GHashTableIter iter; gpointer _key, _val; g_debug("Debug Dump of HashTable"); if (!hasht) { g_debug("--| hashtable is NULL"); return; } g_hash_table_iter_init(&iter, hasht); while (g_hash_table_iter_next(&iter, &_key, &_val)) { const char *key = (const char *)_key; GVariant *val = _val; g_debug("--| %s: %s", key, g_variant_print(val, TRUE)); } } libphone-ui-shr-0.1+git20130901/src/util/common-utils.h000066400000000000000000000031621221067027500223250ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _COMMON_UTILS_H #define _COMMON_UTILS_H #include #include #define LTR_STRING "\xE2\x80\x8E" void * common_utils_object_ref(void *object); int common_utils_object_unref(void *object); void common_utils_object_unref_free(void *object); int common_utils_object_get_ref(void *object); GVariant * common_utils_new_variant_from_pointer(void *val); void * common_utils_pointer_from_variant(GVariant *val); void common_utils_variant_unref(void *value); int common_utils_is_pin(const char *string); int common_utils_is_puk(const char *string); char * common_utils_string_strip_newline(char *string); char * common_utils_timestamp_to_date(long timestamp); void common_utils_debug_dump_hashtable(GHashTable *hasht); #endif libphone-ui-shr-0.1+git20130901/src/util/ui-utils-contacts.c000066400000000000000000000166501221067027500232670ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include #include "phoneui-shr.h" #include "common-utils.h" #include "ui-utils.h" #include "ui-utils-contacts.h" struct _field_select_pack { void (*callback)(const char *, void *); void *data; struct View *view; }; static void _field_select_cb(GError *error, GHashTable *fields, gpointer data) { GList *keys; struct _field_select_pack *pack = (struct _field_select_pack *)data; if (error || !fields) { g_warning("No fields for contacts?"); // TODO: show a user visible message return; } /* ref the fields hashtable - otherwise it will be gone in the middle of the road ;) */ keys = g_hash_table_get_keys(fields); keys = g_list_sort(keys, (GCompareFunc) strcmp); g_debug("Showing inwin with fields to select"); ui_utils_view_inwin_list(pack->view, keys, pack->callback, pack->data); free(pack); } void ui_utils_contacts_field_select(struct View *view, void (*callback)(const char *, void *), void *data) { struct _field_select_pack *pack = malloc(sizeof(struct _field_select_pack)); pack->callback = callback; pack->data = data; pack->view = view; phoneui_utils_contacts_fields_get(_field_select_cb, pack); } struct _number_select_pack { void (*callback)(const char *, void *); void *data; const char *path; struct View* view; Evas_Object *inwin; Evas_Object *list; GList *numbers; }; struct _number_entry { char *field; char *number; }; static gboolean _number_select_destruct(gpointer data) { struct _number_select_pack *pack = data; g_debug("Destructing number selection inwin"); evas_object_del(pack->inwin); free (pack); return FALSE; } static void _number_select_cancel(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct _number_select_pack *pack = data; pack->callback(NULL, pack->data); g_timeout_add(0, _number_select_destruct, pack); } static void _number_select_select(void *data, Evas_Object *obj, void *event_info) { (void) event_info; struct _number_entry *entry = NULL; struct _number_select_pack *pack = data; Elm_Object_Item *it = (Elm_Object_Item *) elm_list_selected_item_get(obj); if (it) { entry = elm_object_item_data_get(it); } if (entry) { g_debug("Calling callback with number %s", entry->number); if (pack) { pack->callback(entry->number, pack->data); } else { g_warning("NO pack... NO callback!!!"); } g_debug("callback done"); } g_debug("Scheduling inwin destruction"); g_timeout_add(0, _number_select_destruct, pack); } static void _add_number_to_list_real(struct _number_select_pack *pack, const char *field, const char *number) { Evas_Object *ico; Elm_Object_Item *it; struct _number_entry *entry = malloc(sizeof(struct _number_entry)); entry->field = strdup(field); entry->number = strdup(number); g_debug("Adding %s=%s", entry->field, entry->number); ico = elm_icon_add(ui_utils_view_window_get(pack->view)); elm_image_resizable_set(ico, EINA_TRUE, EINA_TRUE); elm_image_file_set(ico, phoneui_theme, "icon/phone"); it = (Elm_Object_Item *) elm_list_item_append(pack->list, entry->number, ico, NULL, NULL, entry); if (!it) { g_warning("Adding number to list failed!!!"); } } static void _add_number_to_list(gpointer _key, gpointer _value, gpointer data) { struct _number_select_pack *pack = data; if (g_variant_is_of_type(_value, G_VARIANT_TYPE_STRING)) { _add_number_to_list_real(pack, _key, g_variant_get_string(_value, NULL)); return; } if (g_variant_is_of_type(_value, G_VARIANT_TYPE_STRING_ARRAY)) { const gchar **vl = g_variant_get_strv(_value, NULL); int i = 0; while (vl[i]) { _add_number_to_list_real(pack, _key, vl[i]); i++; } return; } g_warning("Ignoring number as it's neither string nor boxed!"); } static void _fields_get_cb(GError *error, GHashTable *contact, gpointer data) { Evas_Object *win, *box, *btn; struct _number_select_pack *pack = data; const char *number; /* there is no number - pass the callback a NULL for notification */ if (error || !contact) { g_message("No phonenumber fields defined for contact %s!!!", pack->path); // TODO: show some notification pack->callback(NULL, pack->data); return; } common_utils_debug_dump_hashtable(contact); /* if there is just one phonenumber field return it directly */ if (g_hash_table_size(contact) == 1) { GList *l; l = g_hash_table_get_values(contact); if (l && l->data && g_variant_is_of_type(l->data, G_VARIANT_TYPE_STRING)) { g_debug("Contact has exactly one phone number... passing"); number = g_variant_get_string(l->data, NULL); g_debug("Calling callback with number=%s", number); pack->callback(number, pack->data); g_hash_table_unref(contact); free(pack); return; } } g_debug("There is more numbers... pop up the dialog"); /* there are more numbers... show them in a dialog */ win = ui_utils_view_window_get(pack->view); g_debug("add the inwin"); pack->inwin = elm_win_inwin_add(win); g_debug("add the box"); box = elm_box_add(win); evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, box); evas_object_show(box); g_debug("add the list"); pack->list = elm_list_add(win); evas_object_size_hint_weight_set(pack->list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(pack->list, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_list_mode_set(pack->list, ELM_LIST_LIMIT); evas_object_smart_callback_add(pack->list, "selected", _number_select_select, pack); // elm_object_scale_set(pack->list, 1.0); g_hash_table_foreach(contact, _add_number_to_list, pack); elm_list_go(pack->list); evas_object_show(pack->list); elm_box_pack_end(box, pack->list); g_debug("add the button"); btn = elm_button_add(win); elm_win_resize_object_add(win, btn); evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.0); evas_object_smart_callback_add(btn, "clicked", _number_select_cancel, pack); elm_object_text_set(btn, D_("Cancel")); evas_object_show(btn); elm_box_pack_end(box, btn); elm_win_inwin_content_set(pack->inwin, box); elm_win_inwin_activate(pack->inwin); } void ui_utils_contacts_contact_number_select(struct View *view, const char* path, void (*cb)(const char *, void *), void *data) { struct _number_select_pack *pack = malloc(sizeof(struct _number_select_pack)); g_debug("Starting phone number selection"); pack->callback = cb; pack->data = data; pack->path = path; pack->view = view; phoneui_utils_contact_get_fields_for_type(path, "phonenumber", _fields_get_cb, pack); } libphone-ui-shr-0.1+git20130901/src/util/ui-utils-contacts.h000066400000000000000000000022431221067027500232650ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _UI_UTILS_CONTACTS_H #define _UI_UTILS_CONTACTS_H #include "ui-utils.h" void ui_utils_contacts_field_select(struct View *view, void (*callback)(const char *, void *), void *data); void ui_utils_contacts_contact_number_select(struct View* view, const char* path, void (*callback)(const char*, void*), void* data); #endif libphone-ui-shr-0.1+git20130901/src/util/ui-utils.c000066400000000000000000000444351221067027500214550ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Martin Jansa * David Kozub * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include "ui-utils.h" #include "views.h" /* FIXME: hackish, remove */ #include "phoneui-shr.h" /* already defined in window.h - reactivate when that beast got finally removed */ // struct InwinButton { // char *label; // void (*callback) (void *, Evas_Object *, void *); // }; struct View * ui_utils_view_new(const char *title) { (void) title; struct View *view; view = calloc(1, sizeof(struct View)); if (!view) { g_critical("Failed to allocate memory (%s:%d)", __FUNCTION__, __LINE__); return NULL; } return view; } int ui_utils_view_init(struct View *view, Elm_Win_Type type, const char *title, void (*show_cb) (struct View *view), void (*hide_cb) (struct View *view), void (*destroy_cb)(struct View *view)) { int ret = 0; g_debug("Initializing window with title: %s", title); if (!view) { g_critical("struct View is NULL (%s:%d)", __FUNCTION__, __LINE__); ret = 1; goto end; } /* Window */ view->win = elm_win_add(NULL, "main", type); if (!view->win) { g_critical("Wasn't able to create a window (%s:%d)", __FUNCTION__, __LINE__); ret = 1; goto end; } elm_win_title_set(view->win, title); elm_win_autodel_set(view->win, 0); if (phoneui_theme) { elm_theme_overlay_add(NULL, phoneui_theme); } /* Background */ view->background = elm_bg_add(view->win); if (!view->background) { g_critical("elm_bg_add failed (%s:%d)", __FUNCTION__, __LINE__); ret = 1; goto free_win; } evas_object_size_hint_weight_set(view->background, 1.0, 1.0); elm_win_resize_object_add(view->win, view->background); evas_object_show(view->background); /* Layout */ view->layout = elm_layout_add(view->win); if (!view->layout) { g_critical("elm_layout_add failed (%s:%d)", __FUNCTION__, __LINE__); ret = 1; goto free_bg; } evas_object_size_hint_weight_set(view->layout, 1.0, 1.0); elm_win_resize_object_add(view->win, view->layout); evas_object_show(view->layout); /* FIXME: Not perfect, should probably be set from a config wether we want max or resize */ evas_object_size_hint_min_set(view->win, 100, 200); elm_win_maximized_set(view->win, EINA_TRUE); view->show_cb = show_cb; view->hide_cb = hide_cb; view->destroy_cb = destroy_cb; /* END of wtf */ end: return ret; /* Error handling */ free_bg: evas_object_del(view->background); free_win: evas_object_del(view->win); goto end; } int ui_utils_view_is_visible(struct View *view) { return evas_object_visible_get(view->win); } void ui_utils_view_show(struct View *view) { if (view->win) { if (view->show_cb) { view->show_cb(view); } evas_object_show(view->win); elm_win_activate(view->win); } else { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); } } void ui_utils_view_hide(struct View *view) { if (!view->win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } if (view->hide_cb) { view->hide_cb(view); } evas_object_hide(view->win); } void ui_utils_view_toggle(struct View *view) { if (ui_utils_view_is_visible(view)) { ui_utils_view_hide(view); } else { ui_utils_view_show(view); } } void ui_utils_view_layout_set(struct View *view, const char *file, const char *part) { if (!view) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } g_debug("setting layout from file '%s' (%s)", file, part); elm_layout_file_set(view->layout, file, part); } Evas_Object * ui_utils_view_layout_get(struct View *view) { if (!view) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return NULL; } return elm_layout_edje_get(view->layout); } Evas_Object * ui_utils_view_window_get(struct View *view) { if (!view) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return NULL; } return view->win; } void ui_utils_view_delete_callback_set(struct View *view, void (*cb) (struct View *viewdow, Evas_Object *view, void *event_info)) { if (!view) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } if (!cb) { g_critical("Tried to set cb to NULL (%s:%d)", __FUNCTION__, __LINE__); return; } evas_object_smart_callback_add(view->win, "delete,request", (Evas_Smart_Cb) cb, view); } void ui_utils_view_text_set(struct View *view, const char *key, const char *value) { if (!view) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } edje_object_part_text_set(elm_layout_edje_get(view->layout), key, value); } void ui_utils_view_swallow(struct View *view, const char *key, Evas_Object * object) { if (!view) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } /* What's this: ? * edje_object_part_swallow(elm_layout_edje_get(view->layout), key, object); */ elm_object_part_content_set(view->layout, key, object); } void ui_utils_view_unswallow(struct View *view, Evas_Object * object) { if (!view) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } edje_object_part_unswallow(elm_layout_edje_get(view->layout), object); } void ui_utils_view_deinit(struct View *view) { if (!view) { g_critical("struct View is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } g_debug("Calling view destroy callback"); if (view->destroy_cb) view->destroy_cb(view); g_debug("View destroy callback DONE"); ui_utils_view_hide(view); evas_object_del(view->win); /* This is enough to mark it's empty. */ view->win = NULL; view->show_cb = NULL; view->hide_cb = NULL; view->destroy_cb = NULL; g_debug("Deinit of View done"); } /* Think about this a bit more... Looks sane */ Evas_Object * ui_utils_view_inwin_dialog(struct View *view, const char *label, GList *buttons, void *data) { Evas_Object *inwin = elm_win_inwin_add(ui_utils_view_window_get(view)); Evas_Object *bx = elm_box_add(ui_utils_view_window_get(view)); elm_box_homogeneous_set(bx, 1); Evas_Object *e = elm_label_add(ui_utils_view_window_get(view)); elm_object_text_set(e, label); evas_object_show(e); elm_box_pack_end(bx, e); Evas_Object *bx2 = elm_box_add(ui_utils_view_window_get(view)); elm_box_horizontal_set(bx2, 1); elm_box_homogeneous_set(bx2, 1); for (buttons = g_list_first(buttons); buttons; buttons = g_list_next(buttons)) { e = elm_button_add(ui_utils_view_window_get(view)); elm_object_text_set(e, ((struct InwinButton *) buttons->data)-> label); evas_object_smart_callback_add(e, "clicked", ((struct InwinButton *) buttons->data)->callback, data); evas_object_show(e); elm_box_pack_end(bx2, e); g_free(buttons->data); } g_list_free(buttons); evas_object_show(bx2); elm_box_pack_end(bx, bx2); evas_object_show(bx); elm_win_inwin_content_set(inwin, bx); evas_object_show(inwin); return (inwin); } struct _dialog_pack { void (*callback)(int, void *); void *data; Evas_Object *inwin; }; /*FIXME: clean all the _dialog_pack */ static void _inwin_dialog_cb(void *data, Evas_Object *obj, void *event_info) { (void) event_info; struct _dialog_pack *pack = (struct _dialog_pack *)data; int *tmp; int cb_type = 0; if ((tmp = evas_object_data_get(obj, "type"))) cb_type = GPOINTER_TO_INT(tmp); if (pack->callback) pack->callback(cb_type, pack->data); evas_object_del(pack->inwin); } void ui_utils_dialog(struct View *view, const char *label, int buttonflags, void (*callback)(int, void *), void *data) { ui_utils_dialog_check(view, label, NULL, NULL, buttonflags, callback, data); } void ui_utils_dialog_check(struct View *view, const char *label, const char *check_label, Eina_Bool *check_value, int buttonflags, void (*callback)(int, void *), void *data) { Evas_Object *win, *box, *box2, *lbl, *btn, *check; char *tmp; struct _dialog_pack *pack = malloc(sizeof(struct _dialog_pack)); win = ui_utils_view_window_get(view); pack->callback = callback; pack->data = data; pack->inwin = elm_win_inwin_add(win); box = elm_box_add(win); evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); tmp = g_strdup_printf("%s", label); lbl = elm_label_add(win); elm_object_text_set(lbl, tmp); elm_label_line_wrap_set(lbl, EINA_TRUE); evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); g_free(tmp); evas_object_show(lbl); elm_box_pack_end(box, lbl); if (check_label && strlen(check_label) && check_value) { check = elm_check_add(win); elm_object_text_set(check, check_label); elm_check_state_set(check, *check_value); elm_check_state_pointer_set(check, check_value); elm_box_pack_end(box, check); evas_object_show(check); } box2 = elm_box_add(win); elm_box_horizontal_set(box2, EINA_TRUE); elm_box_homogeneous_set(box2, EINA_TRUE); evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, 0); /* ok - yes - no - cancel */ if (buttonflags & DIALOG_OK) { btn = elm_button_add(win); elm_object_text_set(btn, D_("Ok")); evas_object_data_set(btn, "type", GINT_TO_POINTER(DIALOG_OK)); evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0); evas_object_smart_callback_add(btn, "clicked", _inwin_dialog_cb, pack); evas_object_show(btn); elm_box_pack_end(box2, btn); } if (buttonflags & DIALOG_YES) { btn = elm_button_add(win); elm_object_text_set(btn, D_("Yes")); evas_object_data_set(btn, "type", GINT_TO_POINTER(DIALOG_YES)); evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0); evas_object_smart_callback_add(btn, "clicked", _inwin_dialog_cb, pack); evas_object_show(btn); elm_box_pack_end(box2, btn); } if (buttonflags & DIALOG_NO) { btn = elm_button_add(win); elm_object_text_set(btn, D_("No")); evas_object_data_set(btn, "type", GINT_TO_POINTER(DIALOG_NO)); evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0); evas_object_smart_callback_add(btn, "clicked", _inwin_dialog_cb, pack); evas_object_show(btn); elm_box_pack_end(box2, btn); } if (buttonflags & DIALOG_CANCEL) { btn = elm_button_add(win); elm_object_text_set(btn, D_("Cancel")); evas_object_data_set(btn, "type", GINT_TO_POINTER(DIALOG_CANCEL)); evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0); evas_object_smart_callback_add(btn, "clicked", _inwin_dialog_cb, pack); evas_object_show(btn); elm_box_pack_end(box2, btn); } evas_object_show(box2); elm_box_pack_end(box, box2); elm_win_resize_object_add(win, box); evas_object_show(box); elm_win_inwin_content_set(pack->inwin, box); elm_win_inwin_activate(pack->inwin); } struct _inwin_list_pack { void (*callback)(const char *, void *); void *data; Evas_Object *inwin; Evas_Object *list; }; static gboolean _inwin_list_destruct(gpointer data) { struct _inwin_list_pack *pack = (struct _inwin_list_pack *)data; evas_object_del(pack->inwin); free (pack); return FALSE; } static void _inwin_list_selected_cb(void *data, Evas_Object *obj, void *event_info) { (void) event_info; char *sel = NULL; struct _inwin_list_pack *pack = (struct _inwin_list_pack *)data; g_debug("Get the selected one"); Elm_Object_Item *it = (Elm_Object_Item *) elm_list_selected_item_get(obj); if (it) { // FIXME: either remove this strdup... or the const from the cb sel = strdup(elm_object_item_text_get(it)); g_debug("Which is '%s'", sel); } if (pack->callback) { pack->callback(sel, pack->data); } g_timeout_add(0, _inwin_list_destruct, pack); } static void _inwin_list_cancel_cb(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct _inwin_list_pack *pack = (struct _inwin_list_pack *)data; g_debug("Cancelled selection"); if (pack->callback) { pack->callback(NULL, pack->data); } g_timeout_add(0, _inwin_list_destruct, pack); } Evas_Object * ui_utils_view_inwin_list(struct View *view, GList *list, void (*callback) (const char *, void *), void *userdata) { Evas_Object *win, *btn, *box; GList *l; g_debug("ui_utils_view_inwin_list"); struct _inwin_list_pack *pack = malloc(sizeof(struct _inwin_list_pack)); pack->callback = callback; pack->data = userdata; win = ui_utils_view_window_get(view); pack->inwin = elm_win_inwin_add(win); box = elm_box_add(win); // elm_box_homogeneous_set(box, EINA_TRUE); evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); pack->list = elm_list_add(win); elm_object_style_set(pack->list, "fieldlist"); elm_win_resize_object_add(win, pack->list); evas_object_size_hint_align_set(pack->list, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(pack->list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); // evas_object_size_hint_align_set(pack->list, 0.5, 0.5); elm_list_mode_set(pack->list, ELM_LIST_COMPRESS); for (l = g_list_first(list); l; l = g_list_next(l)) { g_debug("Adding item '%s' to list", (char *)l->data); elm_list_item_append(pack->list, strdup(l->data), NULL, NULL, NULL, NULL); } g_list_free(list); evas_object_smart_callback_add(pack->list, "selected", _inwin_list_selected_cb, pack); elm_list_go(pack->list); evas_object_show(pack->list); elm_box_pack_end(box, pack->list); btn = elm_button_add(win); elm_object_text_set(btn, D_("Cancel")); evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, 0); evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0); evas_object_smart_callback_add(btn, "clicked", _inwin_list_cancel_cb, pack); evas_object_show(btn); elm_box_pack_end(box, btn); elm_win_resize_object_add(win, box); evas_object_show(box); elm_win_inwin_content_set(pack->inwin, box); elm_win_inwin_activate(pack->inwin); return pack->inwin; } static void _notify_button_close_cb(void *data, Evas_Object *obj, void *event_info) { Evas_Object *notify = data; (void) obj; (void) event_info; evas_object_hide(notify); } Evas_Object * ui_utils_notify(Evas_Object *parent, const char *label, int timeout) { Evas_Object *notify, *bx, *bt, *lb; notify = elm_notify_add(parent); evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_CENTER); elm_notify_timeout_set(notify, timeout); bx = elm_box_add(parent); elm_object_content_set(notify, bx); elm_box_horizontal_set(bx, 1); evas_object_show(bx); lb = elm_label_add(parent); elm_object_text_set(lb, label); elm_box_pack_end(bx, lb); evas_object_show(lb); bt = elm_button_add(parent); elm_object_text_set(bt, "Close"); evas_object_smart_callback_add(bt, "clicked", _notify_button_close_cb, notify); elm_box_pack_end(bx, bt); evas_object_show(bt); return notify; } int ui_utils_view_is_init(struct View *view) { return (view->win) ? 1 : 0; } char * ui_utils_entry_utf8_get(Evas_Object *entry) { if (!entry) return NULL; /* this allocates a new char * */ char *s = elm_entry_markup_to_utf8(elm_entry_entry_get(entry)); if (s) { return g_strstrip(s); } else { /* Get around the buggy elm_entry_markup_to_utf8 */ return strdup(""); } } static void error_message_ok_cb(void *data, Evas_Object *obj, void *event_info) { (void)obj; (void)event_info; Evas_Object *inwin = (Evas_Object*)data; evas_object_del(inwin); } void ui_utils_error_message_show(struct View *parent, const char *error_msg, const char *detail_msg) { Evas_Object *win = ui_utils_view_window_get(parent); Evas_Object *inwin = elm_win_inwin_add(win); //evas_object_event_callback_add(inwin, EVAS_CALLBACK_DEL, error_message_del, NULL); Evas_Object *box = elm_box_add(win); elm_box_homogeneous_set(box, EINA_FALSE); evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); Evas_Object *heading = elm_label_add(win); //elm_label_line_wrap_set(heading, EINA_TRUE); elm_object_text_set(heading, error_msg); evas_object_size_hint_weight_set(heading, 1.0, 1.0); evas_object_size_hint_align_set(heading, 0.5, 0.5); evas_object_show(heading); elm_box_pack_end(box, heading); if (detail_msg) { Evas_Object *lb = elm_label_add(win); elm_label_line_wrap_set(lb, EINA_TRUE); elm_object_text_set(lb, detail_msg); evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(lb); Evas_Object *scroller = elm_scroller_add(win); evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, 1.0); evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_content_set(scroller, lb); evas_object_show(scroller); elm_box_pack_end(box, scroller); } Evas_Object *bt = elm_button_add(win); elm_object_text_set(bt, D_("Ok")); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 1.0); evas_object_smart_callback_add(bt, "clicked", error_message_ok_cb, inwin); evas_object_show(bt); elm_box_pack_end(box, bt); elm_win_inwin_content_set(inwin, box); elm_win_inwin_activate(inwin); } void ui_utils_error_message_from_gerror_show(struct View *parent, const char *msg, const GError *err) { if (err) { gchar *detail_msg = g_strdup_printf("(%d) %s", err->code, err->message); ui_utils_error_message_show(parent, msg, detail_msg); g_free(detail_msg); } else ui_utils_error_message_show(parent, msg, NULL); } libphone-ui-shr-0.1+git20130901/src/util/ui-utils.h000066400000000000000000000065601221067027500214570ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * David Kozub * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _UI_UTILS_H #define _UI_UTILS_H #include #include #include #define VIEW_PTR(x) ((struct View *) &(x)) struct View { Evas_Object *win, *background, *layout; void (*show_cb) (struct View *view); void (*hide_cb) (struct View *view); void (*destroy_cb)(struct View *view); }; enum { DIALOG_OK = 1, DIALOG_YES = 2, DIALOG_NO = 4, DIALOG_CANCEL = 8 }; struct View * ui_utils_view_new(const char *title); int ui_utils_view_init(struct View *view, Elm_Win_Type type, const char *title, void (*show_cb) (struct View *view), void (*hide_cb) (struct View *view), void (*destroy_cb)(struct View *view)); int ui_utils_view_is_init(struct View *view); int ui_utils_view_is_visible(struct View *view); void ui_utils_view_show(struct View *view); void ui_utils_view_hide(struct View *view); void ui_utils_view_toggle(struct View *view); void ui_utils_view_layout_set(struct View *view, const char *file, const char *part); Evas_Object * ui_utils_view_layout_get(struct View *view); Evas_Object * ui_utils_view_window_get(struct View *view); void ui_utils_view_delete_callback_set(struct View *view, void (*cb) (struct View *viewdow, Evas_Object *view, void *event_info)); void ui_utils_view_text_set(struct View *view, const char *key, const char *value); void ui_utils_view_swallow(struct View *view, const char *key, Evas_Object * object); void ui_utils_view_unswallow(struct View *view, Evas_Object *object); void ui_utils_view_deinit(struct View *view); /* Think about this a bit more... Looks sane */ Evas_Object * ui_utils_view_inwin_dialog(struct View *view, const char *label, GList *buttons, void *data); void ui_utils_dialog(struct View *view, const char *label, int buttonflags, void (*callback)(int, void *), void *data); void ui_utils_dialog_check(struct View *view, const char *label, const char *check_label, Eina_Bool *check_value, int buttonflags, void (*callback)(int, void *), void *data); Evas_Object * ui_utils_notify(Evas_Object *parent, const char *label, int timeout); Evas_Object * ui_utils_view_inwin_list(struct View *view, GList *list, void (*callback)(const char *, void *), void *data); char * ui_utils_entry_utf8_get(Evas_Object *entry); void ui_utils_error_message_show(struct View *parent, const char *error_msg, const char *detail_msg); void ui_utils_error_message_from_gerror_show(struct View *parent, const char *msg, const GError *err); #endif libphone-ui-shr-0.1+git20130901/src/util/window.c000066400000000000000000000175341221067027500212110ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Martin Jansa * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "phoneui-shr.h" #include "window.h" #include #include #include #include #include #include // TODO: Remove this: #include "phoneui-init.h" static void _window_delete_callback(void *data, Evas_Object * win, void *event_info); struct Window * window_new(char *title) { g_debug("window_new"); struct Window *win; win = calloc(1, sizeof(struct Window)); win->title = strdup(title); return (win); } void window_init(struct Window *win) { if (phoneui_theme) elm_theme_overlay_add(NULL, phoneui_theme); // Window win->win = elm_win_add(NULL, "main", ELM_WIN_BASIC); if (!win->win) { g_critical("Wasn't able to create a window for idle_screen"); return; } elm_win_title_set(win->win, win->title); elm_win_autodel_set(win->win, 1); // Disable it? evas_object_smart_callback_add(win->win, "delete,request", _window_delete_callback, win); // Background win->bg = elm_bg_add(win->win); evas_object_size_hint_weight_set(win->bg, 1.0, 1.0); elm_win_resize_object_add(win->win, win->bg); evas_object_show(win->bg); // Layout win->layout = elm_layout_add(win->win); elm_win_resize_object_add(win->win, win->layout); evas_object_show(win->layout); evas_object_resize(win->win, 480, 600); } void window_show(struct Window *win) { if (win) { evas_object_show(win->win); elm_win_activate(win->win); } else { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); } } void window_layout_set(struct Window *win, const char *file, const char *part) { if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } g_debug("setting layout from file '%s' (%s)", file, part); elm_layout_file_set(win->layout, file, part); } Evas_Object * window_layout_get(struct Window *win) { if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return NULL; } return elm_layout_edje_get(win->layout); } Evas_Object * window_evas_object_get(struct Window * win) { if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return NULL; } return win->win; } void window_delete_callback_set(struct Window *win, void (*cb) (void *data, Evas_Object * win, void *event_info)) { if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } if (!cb) { g_warning("Tried to set cb to NULL (%s:%d)", __FUNCTION__, __LINE__); return; } evas_object_smart_callback_add(win->win, "delete,request", cb, win); } void window_text_set(struct Window *win, const char *key, const char *value) { if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } edje_object_part_text_set(elm_layout_edje_get(win->layout), key, value); } void window_swallow(struct Window *win, const char *key, Evas_Object * object) { if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } //edje_object_part_swallow(elm_layout_edje_get(win->layout), key, object); elm_object_part_content_set(win->layout, key, object); } void window_unswallow(struct Window *win, Evas_Object * object) { if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } edje_object_part_unswallow(elm_layout_edje_get(win->layout), object); } void window_view_show(struct Window *win, void *options, void *(*show_cb) (struct Window * win, void *options), void (*hide_cb) (void *data), void (*exit_cb)()) { g_debug("window_view_show()"); if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } if (!show_cb) { g_warning("Tried to set cb to NULL (%s:%d)", __FUNCTION__, __LINE__); return; } // Clear old view window_view_hide(win, NULL); if (show_cb != NULL) win->view_data = show_cb(win, options); win->view_hide_cb = hide_cb; win->exit_cb = exit_cb; } void window_view_hide(struct Window *win, void *options) { (void) options; g_debug("window_view_hide()"); if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } // Hide last frame window_frame_hide(win, win->view_data); if (win->view_hide_cb != NULL) { win->view_hide_cb(win->view_data); win->view_hide_cb = NULL; } evas_object_hide(win->win); win->view_data = NULL; } void window_frame_show(struct Window *win, void *data, void (*show_cb) (void *data), void (*hide_cb) (void *data)) { if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } if (win->frame_hide_cb != NULL) win->frame_hide_cb(data); else g_debug("No frame to hide"); // hide_cb could be NULL! win->frame_hide_cb = hide_cb; show_cb(data); } void window_frame_hide(struct Window *win, void *data) { if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } if (win->frame_hide_cb != NULL) { win->frame_hide_cb(data); win->frame_hide_cb = NULL; } } void window_kbd_show(struct Window *win, KeyboardMode mode) { ecore_x_e_virtual_keyboard_state_set(ecore_evas_software_x11_window_get (ecore_evas_ecore_evas_get (evas_object_evas_get(win->win))), mode); } void window_kbd_hide(struct Window *win) { ecore_x_e_virtual_keyboard_state_set(ecore_evas_software_x11_window_get (ecore_evas_ecore_evas_get (evas_object_evas_get(win->win))), KEYBOARD_OFF); } void window_destroy(struct Window *win, void *options) { if (!win) { g_critical("Window is NULL (%s:%d)", __FUNCTION__, __LINE__); return; } window_view_hide(win, options); evas_object_del(win->layout); evas_object_del(win->bg); evas_object_del(win->win); if (win->exit_cb) win->exit_cb(); free(win); } Evas_Object * window_inwin_dialog(struct Window *win, const char *label, GList * buttons, void *data) { Evas_Object *inwin = elm_win_inwin_add(window_evas_object_get(win)); Evas_Object *bx = elm_box_add(window_evas_object_get(win)); elm_box_homogeneous_set(bx, 1); Evas_Object *e = elm_label_add(window_evas_object_get(win)); elm_object_text_set(e, label); evas_object_show(e); elm_box_pack_end(bx, e); Evas_Object *bx2 = elm_box_add(window_evas_object_get(win)); elm_box_horizontal_set(bx2, 1); elm_box_homogeneous_set(bx2, 1); for (buttons = g_list_first(buttons); buttons; buttons = g_list_next(buttons)) { e = elm_button_add(window_evas_object_get(win)); elm_object_text_set(e, ((struct InwinButton *) buttons->data)-> label); evas_object_smart_callback_add(e, "clicked", ((struct InwinButton *) buttons->data)->callback, data); evas_object_show(e); elm_box_pack_end(bx2, e); g_free(buttons->data); } g_list_free(buttons); evas_object_show(bx2); elm_box_pack_end(bx, bx2); evas_object_show(bx); elm_win_inwin_content_set(inwin, bx); evas_object_show(inwin); return (inwin); } static void _window_delete_callback(void *data, Evas_Object * win, void *event_info) { (void) win; (void) event_info; g_debug("_window_delete_callback"); window_destroy(data, NULL); } libphone-ui-shr-0.1+git20130901/src/util/window.h000066400000000000000000000055661221067027500212200ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _WINDOW_H #define _WINDOW_H #include #include #include #include // TODO: Make the Window structure private! struct Window { Evas_Object *win, *bg, *layout; char *title; void *view_data; void (*view_hide_cb) (void *data); void (*frame_hide_cb) (); void (*exit_cb)(); }; struct InwinButton { char *label; void (*callback) (void *, Evas_Object *, void *); }; typedef enum { KEYBOARD_OFF = ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF, KEYBOARD_PIN = ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN, KEYBOARD_ALPHA = ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA, KEYBOARD_NUMERIC = ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC } KeyboardMode; struct Window *window_new(char *title); void window_init(struct Window *win); void window_show(struct Window *win); void window_layout_set(struct Window *win, const char *file, const char *part); Evas_Object *window_evas_object_get(struct Window *win); Evas_Object *window_layout_get(struct Window *win); void window_delete_callback_set(struct Window *win, void (*cb) (void *data, Evas_Object * win, void *event_info)); void window_text_set(struct Window *win, const char *key, const char *value); void window_swallow(struct Window *win, const char *key, Evas_Object * object); void window_unswallow(struct Window *win, Evas_Object * object); void window_view_show(struct Window *win, void *options, void *(*show_cb) (struct Window * win, void *options), void (*hide_cb) (void *data), void (*exit_cb) ()); void window_view_hide(struct Window *win, void *options); void window_frame_show(struct Window *win, void *data, void (*show_cb) (void *data), void (*hide_cb) (void *data)); void window_frame_hide(struct Window *win, void *data); void window_kbd_show(struct Window *win, KeyboardMode mode); void window_kbd_hide(struct Window *win); void window_destroy(struct Window *win, void *data); Evas_Object *window_inwin_dialog(struct Window *win, const char *label, GList * buttons, void *data); #endif libphone-ui-shr-0.1+git20130901/src/view/000077500000000000000000000000001221067027500175215ustar00rootroot00000000000000libphone-ui-shr-0.1+git20130901/src/view/Makefile.am000066400000000000000000000000431221067027500215520ustar00rootroot00000000000000MAINTAINERCLEANFILES = Makefile.in libphone-ui-shr-0.1+git20130901/src/view/call-active-view.c000066400000000000000000000235031221067027500230240ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Thomas 'Thamos' Munker * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "views.h" #include "call-common.h" #include "common-utils.h" #include #include #include #include "phoneui-shr.h" static void call_button_dtmf_clicked(struct CallActiveViewData *data, Evas_Object * obj, void *event_info); static void call_button_state_clicked(struct CallActiveViewData *data, Evas_Object * obj, void *event_info); static void _speaker_toggle_change(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; if (elm_check_state_get(obj)) call_common_set_sound_state(SOUND_STATE_SPEAKER, SOUND_STATE_TYPE_NULL); else call_common_set_sound_state(SOUND_STATE_CALL, SOUND_STATE_TYPE_NULL); } static void _mute_toggle_change(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; phoneui_utils_sound_volume_mute_set(CONTROL_MICROPHONE, elm_check_state_get(obj)); } static void _volume_slider_change(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; int vol = (int)round(elm_slider_value_get(obj)); g_debug("volume changed to %f, -> %d %%", elm_slider_value_get(obj), vol); phoneui_utils_sound_volume_set(CONTROL_SPEAKER, vol); } static void _mic_slider_change(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; int vol = (int)round(elm_slider_value_get(obj)); g_debug("mic changed to %f -> %d %%", elm_slider_value_get(obj), vol); phoneui_utils_sound_volume_set(CONTROL_MICROPHONE, vol); } static void _volume_changed(enum SoundControlType type, int value, void *_data) { struct CallActiveViewData *data = (struct CallActiveViewData *)_data; switch (type) { case CONTROL_SPEAKER: g_debug("new speaker volume is %d", value); elm_slider_value_set(data->volume_slider, (double)value); break; case CONTROL_MICROPHONE: g_debug("new mic sensitivity is %d", value); elm_slider_value_set(data->mic_slider, (double)value); break; case CONTROL_END: break; } } static void _mute_changed(enum SoundControlType type, int mute, void *_data) { struct CallActiveViewData *data = (struct CallActiveViewData *)_data; g_debug("Mute changed: type %d value %d", type, mute); if (type == CONTROL_MICROPHONE) { elm_check_state_set(data->mute_toggle, mute); } } struct CallActiveViewData * call_active_view_show(struct Window *win, GHashTable * options) { g_debug("call_active_show()"); struct CallActiveViewData *data = common_utils_object_ref(calloc(1, sizeof(struct CallActiveViewData))); data->parent.options = options; data->parent.win = win; data->parent.id = GPOINTER_TO_INT(g_hash_table_lookup(options, "id")); data->parent.number = g_hash_table_lookup(options, "number"); data->parent.name = g_hash_table_lookup(options, "name"); data->parent.photo = g_hash_table_lookup(options, "photo"); data->parent.dtmf_active = FALSE; data->state = CALL_STATE_ACTIVE; data->parent.number_state = GPOINTER_TO_INT(g_hash_table_lookup(options, "number_state")); /* INIT a call */ call_common_active_call_add(data); g_debug("active call: id=%d, number_state=%d, number='%s'", data->parent.id, data->parent.number_state, data->parent.number); window_layout_set(win, phoneui_theme, "phoneui/call_management/active_call"); data->parent.elmphoto = elm_icon_add(window_evas_object_get(win)); window_swallow(win, "photo", data->parent.elmphoto); evas_object_show(data->parent.elmphoto); window_text_set(win, "number", data->parent.number); if (data->parent.number_state == CALL_NUMBER_NUMBER) { phoneui_utils_contact_lookup(data->parent.number, call_common_contact_callback, common_utils_object_ref( (struct CallViewData *) data)); } else { window_text_set(win, "name", data->parent.name); elm_image_file_set(data->parent.elmphoto, data->parent.photo, NULL); } //g_debug("adding the hangup toggle..."); //data->hangup_toggle = elm_toggle_add(window_evas_object_get(win)); //evas_object_smart_callback_add(data->hangup_toggle, "changed", // _hangup_toggle_change, data); //elm_object_style_set(data->hangup_toggle, "hangup"); //window_swallow(win, "hangup_toggle", data->hangup_toggle); //evas_object_show(data->hangup_toggle); //Evas_Object *ico = elm_icon_add(window_evas_object_get(win)); //elm_image_file_set(ico, "speaker.png", "phoneui/images"); //evas_object_show(ico); g_debug("adding the speaker toggle..."); data->speaker_toggle = elm_check_add(window_evas_object_get(win)); elm_object_style_set(data->speaker_toggle, "toggle"); elm_object_part_text_set(data->speaker_toggle, "on", D_("Speaker")); elm_check_state_set(data->speaker_toggle, EINA_FALSE); elm_object_scale_set(data->speaker_toggle, 1.2); evas_object_smart_callback_add(data->speaker_toggle, "changed", _speaker_toggle_change, data); window_swallow(win, "speaker_toggle", data->speaker_toggle); evas_object_show(data->speaker_toggle); g_debug("adding the mute toggle..."); data->mute_toggle = elm_check_add(window_evas_object_get(win)); elm_object_style_set(data->mute_toggle, "toggle"); elm_object_part_text_set(data->mute_toggle, "on", D_("Mute")); elm_check_state_set(data->mute_toggle, EINA_FALSE); elm_object_scale_set(data->mute_toggle, 1.2); evas_object_smart_callback_add(data->mute_toggle, "changed", _mute_toggle_change, data); window_swallow(win, "mute_toggle", data->mute_toggle); evas_object_show(data->mute_toggle); g_debug("adding the volume slider..."); data->volume_slider = elm_slider_add(window_evas_object_get(win)); elm_object_text_set(data->volume_slider, D_("Volume")); elm_slider_min_max_set(data->volume_slider, 0.0, 100.0); elm_slider_value_set(data->volume_slider, (double)phoneui_utils_sound_volume_get( CONTROL_SPEAKER)); //elm_slider_horizontal_set(data->volume_slider, EINA_FALSE); evas_object_smart_callback_add(data->volume_slider, "delay,changed", _volume_slider_change, data); window_swallow(win, "volume_slider", data->volume_slider); evas_object_show(data->volume_slider); g_debug("adding the mic slider..."); data->mic_slider = elm_slider_add(window_evas_object_get(win)); elm_object_text_set(data->mic_slider, D_("Mic")); elm_slider_min_max_set(data->mic_slider, 0.0, 100.0); elm_slider_value_set(data->mic_slider, (double)phoneui_utils_sound_volume_get( CONTROL_MICROPHONE)); evas_object_smart_callback_add(data->mic_slider, "delay,changed", _mic_slider_change, data); window_swallow(win, "mic_slider", data->mic_slider); evas_object_show(data->mic_slider); data->bt_call_state = elm_button_add(window_evas_object_get(win)); elm_object_text_set(data->bt_call_state, D_("Release")); evas_object_smart_callback_add(data->bt_call_state, "clicked", (Evas_Smart_Cb) call_button_state_clicked, data); window_swallow(win, "button_release", data->bt_call_state); evas_object_show(data->bt_call_state); data->bt_keypad = elm_button_add(window_evas_object_get(win)); elm_object_text_set(data->bt_keypad, D_("Keypad")); evas_object_smart_callback_add(data->bt_keypad, "clicked", (Evas_Smart_Cb) call_button_dtmf_clicked, data); window_swallow(win, "button_dtmf", data->bt_keypad); evas_object_show(data->bt_keypad); window_show(win); phoneui_utils_sound_volume_change_callback_set( _volume_changed, data); phoneui_utils_sound_volume_mute_change_callback_set( _mute_changed, data); return data; } void call_active_view_hide(struct CallActiveViewData *data) { g_debug("call_active_hide()"); if (data->parent.dtmf_active) { call_dtmf_disable(&(data->parent)); } phoneui_utils_sound_volume_change_callback_set(NULL, NULL); phoneui_utils_sound_volume_mute_change_callback_set(NULL, NULL); data->parent.number_state = CALL_NUMBER_NULL; evas_object_del(data->parent.elmphoto); evas_object_del(data->mute_toggle); evas_object_del(data->speaker_toggle); evas_object_del(data->volume_slider); evas_object_del(data->bt_call_state); evas_object_del(data->bt_keypad); common_utils_object_unref_free(data); } static void call_button_dtmf_clicked(struct CallActiveViewData *data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; g_debug("dtmf_clicked()"); if (data->parent.dtmf_active) { data->parent.dtmf_active = FALSE; call_dtmf_disable((struct CallViewData *) data); elm_object_text_set(data->bt_keypad, D_("Keypad")); } else { data->parent.dtmf_active = TRUE; call_dtmf_enable((struct CallViewData *) data); elm_object_text_set(data->bt_keypad, D_("Hide Keypad")); } } void call_button_state_clicked(struct CallActiveViewData *data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; g_debug("state_clicked(id=%d,state=%d)", data->parent.id, data->state); if (data->state == CALL_STATE_ACTIVE) { phoneui_utils_call_release(data->parent.id, NULL, NULL); } else if (data->state == CALL_STATE_PENDING) { phoneui_utils_call_activate(data->parent.id, NULL, NULL); call_common_window_new_active(data->parent.id); } else { g_debug("bad state, BUG! shouldn't have gotten here"); } } libphone-ui-shr-0.1+git20130901/src/view/call-common.c000066400000000000000000000201301221067027500220620ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "phoneui-shr.h" #include "views.h" #include "call-common.h" #include "common-utils.h" #include "widget/elm_keypad.h" #include #include static GQueue *active_calls_list = NULL; static void _call_activate_callback(GError * error, struct CallActiveViewData *win) { if (!error) { g_debug("%s:%d activated call (id=%d)", __FILE__, __LINE__, win->parent.id); call_common_window_to_active(win); } else { g_prefix_error(&error, " activating call failed (id=%d)", win->parent.id); g_error_free(error); } } void call_common_activate_call(struct CallActiveViewData *win) { g_debug("%s:%d attempting to set last call as active (id=%d)", __FILE__, __LINE__, win->parent.id); #if 0 phoneui_utils_call_activate(win->parent.id, _call_activate_callback, win); #else (void) _call_activate_callback; phoneui_utils_call_activate(win->parent.id, NULL, NULL); call_common_window_to_active(win); #endif } void call_common_contact_callback(GError *error, GHashTable *contact, void *_data) { (void) error; // FIXME: show notification on error struct CallViewData *data = (struct CallViewData *) _data; if (data->number_state == CALL_NUMBER_NULL) { common_utils_object_unref_free(data); return; } if (contact) { g_debug("call_common_contact_callback... got a contact"); GVariant *tmp; const char *s; char *s2; tmp = g_hash_table_lookup(contact, "Photo"); if (tmp) { s = g_variant_get_string(tmp, NULL); if (!strncmp(s, "file://", 7)) s += 7; } else { s = CONTACT_DEFAULT_PHOTO; } data->photo = g_strdup(s); s2 = phoneui_utils_contact_display_name_get(contact); if (s2) { window_text_set(data->win, "name", s2); data->name = s2; } else { data->name = strdup(CONTACT_NAME_UNDEFINED_STRING); } } else { g_debug("call_common_contact_callback... got NO contact"); data->photo = g_strdup(CONTACT_DEFAULT_PHOTO); data->name = g_strdup(CONTACT_NAME_UNDEFINED_STRING); } elm_image_file_set(data->elmphoto, data->photo, NULL); window_text_set(data->win, "name", data->name); data->number_state = CALL_NUMBER_CONTACT; common_utils_object_unref_free(data); } void call_common_window_update_state(struct CallActiveViewData *win, enum SoundState state, enum SoundStateType type) { int speaker_state = 0; switch (state) { case SOUND_STATE_SPEAKER: speaker_state = 1; switch (type) { case SOUND_STATE_TYPE_BLUETOOTH: break; case SOUND_STATE_TYPE_HANDSET: break; case SOUND_STATE_TYPE_HEADSET: break; default: speaker_state = 0; /*rollback*/ break; } break; case SOUND_STATE_IDLE: case SOUND_STATE_CALL: speaker_state = 0; break; default: break; } elm_check_state_set(win->speaker_toggle, speaker_state); } static void _foreach_new_active(struct CallActiveViewData *win, int id) { if (id != win->parent.id) { call_common_window_to_pending(win); } else { call_common_window_to_active(win); g_queue_remove(active_calls_list, win); g_queue_push_head(active_calls_list, win); } } void call_common_window_new_active(int id) { g_debug("%s:%d setting new active call (id=%d)", __FILE__, __LINE__, id); if (active_calls_list) { g_queue_foreach(active_calls_list, (GFunc) _foreach_new_active, GINT_TO_POINTER(id)); } } void call_common_window_to_pending(struct CallActiveViewData *win) { if (win->state == CALL_STATE_ACTIVE) { elm_object_text_set(win->bt_call_state, D_("Pickup")); } else if (win->state == CALL_STATE_PENDING) { /*Do nothing as we want it to be pending */ g_debug("Found a pending call while expecting none! (%d)", win->parent.id); } else { g_debug("Bad state (%d) for an active call!", win->state); } win->state = CALL_STATE_PENDING; } void call_common_window_to_active(struct CallActiveViewData *win) { if (win->state == CALL_STATE_ACTIVE) { /*Do nothing as we want it to be active */ g_debug("Found an active call while expecting none! (%d)", win->parent.id); } else if (win->state == CALL_STATE_PENDING) { elm_object_text_set(win->bt_call_state, D_("Release")); } else { g_debug("Bad state (%d) for an active call!", win->state); } win->state = CALL_STATE_ACTIVE; } int call_common_active_call_get_last_id() { struct CallActiveViewData *win; if (active_calls_list) { win = g_queue_peek_head(active_calls_list); return win->parent.id; } else { return 0; } } int call_common_set_sound_state(enum SoundState state, enum SoundStateType type) { phoneui_utils_sound_state_set(state, type); if (active_calls_list) { g_queue_foreach(active_calls_list, (GFunc) call_common_window_update_state, GINT_TO_POINTER(state)); } return 0; } int call_common_active_call_add(struct CallActiveViewData *win) { /* if it's not the first call, update all the windows */ if (active_calls_list) { g_queue_foreach(active_calls_list, (GFunc) _foreach_new_active, GINT_TO_POINTER(-1)); } /*init */ /* if first, init state */ else { call_common_set_sound_state(SOUND_STATE_CALL, SOUND_STATE_TYPE_NULL); g_debug("Initialized active calls list"); active_calls_list = g_queue_new(); } g_queue_push_head(active_calls_list, win); g_debug("%s:%d adding a call to active list (id=%d)", __FILE__, __LINE__, win->parent.id); return 0; } static int _queue_find_by_id(struct CallActiveViewData *win, int id) { return !(win->parent.id == id); } int call_common_active_call_remove(int id) { struct CallActiveViewData *win = NULL; if (active_calls_list) { /*FIXME: cast id - bad */ GList *link = g_queue_find_custom(active_calls_list, GINT_TO_POINTER(id), (GCompareFunc) _queue_find_by_id); win = g_queue_peek_nth(active_calls_list, g_queue_link_index(active_calls_list, link)); g_queue_delete_link(active_calls_list, link); } /* if we haven't found abort */ if (!win) { g_debug("%s:%d no such id! was it active? (id=%d)", __FILE__, __LINE__, id); return 1; } g_debug("%s:%d removing a call from active list (id=%d)", __FILE__, __LINE__, win->parent.id); /* if was active, get a new active */ if (win->state == CALL_STATE_ACTIVE) { win = g_queue_peek_head(active_calls_list); if (win) { call_common_activate_call(win); } } if (g_queue_get_length(active_calls_list) == 0) { g_debug("Freed active calls list"); g_queue_free(active_calls_list); active_calls_list = NULL; call_common_set_sound_state(SOUND_STATE_IDLE, SOUND_STATE_TYPE_NULL); } return 0; } void call_button_keypad_clicked(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; char string[2]; string[0] = ((char *) event_info)[0]; string[1] = '\0'; g_debug("call_button_keypad_clicked(): %s", string); phoneui_utils_call_send_dtmf(string, NULL, NULL); } void call_dtmf_enable(struct CallViewData *data) { g_debug("call_dtmf_enable()"); data->keypad = elm_keypad_add(window_evas_object_get(data->win)); evas_object_smart_callback_add(data->keypad, "clicked", call_button_keypad_clicked, data); window_swallow(data->win, "keypad", data->keypad); evas_object_show(data->keypad); } void call_dtmf_disable(struct CallViewData *data) { g_debug("call_dtmf_disable()"); evas_object_smart_callback_del(data->keypad, "clicked", call_button_keypad_clicked); evas_object_del(data->keypad); } libphone-ui-shr-0.1+git20130901/src/view/call-common.h000066400000000000000000000050501221067027500220730ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _CALL_COMMON_H #define _CALL_COMMON_H #include #include enum ActiveCallState { CALL_STATE_ACTIVE, CALL_STATE_PENDING }; enum CallNumberState { CALL_NUMBER_NULL, CALL_NUMBER_CONTACT, CALL_NUMBER_NUMBER }; struct CallViewData { struct Window *win; GHashTable *options; int id; char *number; char *name; char *photo; enum CallNumberState number_state; gboolean dtmf_active; Evas_Object *keypad; Evas_Object *elmphoto; }; struct CallActiveViewData { struct CallViewData parent; Evas_Object *bt_call_state, *bt_keypad; Evas_Object *mute_toggle, *speaker_toggle; Evas_Object *volume_slider, *mic_slider; enum ActiveCallState state; }; struct CallIncomingViewData { struct CallViewData parent; Evas_Object *bt_accept, *bt_reject; Evas_Object *number, *name, *photo; }; void call_common_contact_callback( GError* error, GHashTable* contact, void* _data); void call_common_contact_callback2(void *_data); int call_common_set_sound_state(enum SoundState state, enum SoundStateType type); int call_common_active_call_add(struct CallActiveViewData *win); int call_common_active_call_remove(int id); int call_common_active_call_get_last_id(); void call_common_window_to_pending(struct CallActiveViewData *win); void call_common_window_to_active(struct CallActiveViewData *win); void call_common_window_new_active(int id); void call_common_window_update_state(struct CallActiveViewData *win, enum SoundState state, enum SoundStateType type); void call_button_keypad_clicked(void *data, Evas_Object * obj, void *event_info); void call_dtmf_enable(struct CallViewData *data); void call_dtmf_disable(struct CallViewData *data); #endif libphone-ui-shr-0.1+git20130901/src/view/call-incoming-view.c000066400000000000000000000126161221067027500233570ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "phoneui-shr.h" #include "views.h" #include "call-common.h" #include "common-utils.h" #include #include static void call_button_accept_clicked(void *_data, Evas_Object * obj, void *event_info); static void call_button_release_clicked(struct CallIncomingViewData *data, Evas_Object * obj, void *event_info); struct CallIncomingViewData * call_incoming_view_show(struct Window *win, GHashTable * options) { g_debug("call_incoming_view_show()"); struct CallIncomingViewData *data = common_utils_object_ref(calloc(1, sizeof(struct CallIncomingViewData))); data->parent.options = options; data->parent.win = win; data->parent.id = GPOINTER_TO_INT(g_hash_table_lookup(options, "id")); data->parent.number = g_hash_table_lookup(options, "number"); data->parent.name = NULL; data->parent.photo = NULL; data->parent.dtmf_active = FALSE; data->parent.number_state = GPOINTER_TO_INT(g_hash_table_lookup(options, "number_state")); window_layout_set(win, phoneui_theme, "phoneui/call_management/incoming_call"); data->parent.elmphoto = elm_icon_add(window_evas_object_get(win)); window_swallow(win, "photo", data->parent.elmphoto); evas_object_show(data->parent.elmphoto); window_text_set(win, "number", data->parent.number); phoneui_utils_contact_lookup(data->parent.number, call_common_contact_callback, common_utils_object_ref( (struct CallViewData *) data)); Evas_Object *ic = elm_icon_add(win->win); elm_image_file_set(ic, ICON_CALL_ACCEPT, NULL); evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); data->bt_accept = elm_button_add(window_evas_object_get(win)); elm_object_text_set(data->bt_accept, D_("Accept")); elm_object_content_set(data->bt_accept, ic); evas_object_smart_callback_add(data->bt_accept, "clicked", call_button_accept_clicked, data); window_swallow(win, "button_accept", data->bt_accept); evas_object_show(data->bt_accept); evas_object_show(ic); ic = elm_icon_add(win->win); elm_image_file_set(ic, ICON_CALL_REJECT, NULL); evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); data->bt_reject = elm_button_add(window_evas_object_get(win)); elm_object_text_set(data->bt_reject, D_("Reject")); elm_object_content_set(data->bt_reject, ic); evas_object_smart_callback_add(data->bt_reject, "clicked", (Evas_Smart_Cb) call_button_release_clicked, data); window_swallow(win, "button_release", data->bt_reject); evas_object_show(data->bt_reject); evas_object_show(ic); /* make the window uncloseable - replace that with some nice elm_ when implemented in elementary */ ecore_x_icccm_hints_set(elm_win_xwindow_get(win->win), 0, 0, 0, 0, 0, 0, 0); window_show(win); return data; } void call_incoming_view_hide(struct CallIncomingViewData *data) { g_debug("call_incoming_view_hide()"); evas_object_del(data->number); evas_object_del(data->name); evas_object_del(data->photo); evas_object_del(data->bt_accept); evas_object_del(data->bt_reject); data->parent.number_state = CALL_NUMBER_NULL; if (data->parent.dtmf_active) { call_dtmf_disable(&data->parent); } common_utils_object_unref_free(data); } static void call_button_accept_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; struct CallIncomingViewData *data = (struct CallIncomingViewData *)_data; g_debug("accept_clicked(call_id=%d)", data->parent.id); phoneui_utils_call_activate(data->parent.id, NULL, NULL); /* call to enable closing of the win again */ ecore_x_icccm_hints_set( elm_win_xwindow_get(data->parent.win->win), 1, 0, 0, 0, 0, 0, 0); GHashTable *options = g_hash_table_new(g_str_hash, g_str_equal); g_hash_table_insert(options, "id", GINT_TO_POINTER(data->parent.id)); g_hash_table_insert(options, "number", strdup(data->parent.number)); g_hash_table_insert(options, "number_state", GINT_TO_POINTER(data->parent.number_state)); if (data->parent.name) g_hash_table_insert(options, "name", strdup(data->parent.name)); if (data->parent.photo) g_hash_table_insert(options, "photo", strdup(data->parent.photo)); window_view_show(data->parent.win, options, (void * (*)(struct Window *, void *)) call_active_view_show, (void (*)(void *)) call_active_view_hide, NULL); } static void call_button_release_clicked(struct CallIncomingViewData *data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; g_debug("release_clicked(call_id=%d)", data->parent.id); phoneui_utils_call_release(data->parent.id, NULL, NULL); } libphone-ui-shr-0.1+git20130901/src/view/contact-list-common.c000066400000000000000000000205161221067027500235630ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include "phoneui-shr.h" #include "views.h" #include "common-utils.h" static Elm_Genlist_Item_Class itc; /* --- genlist callbacks --- */ static char * gl_text_get(void *data, Evas_Object * obj, const char *part) { (void) obj; GHashTable *parameters = (GHashTable *) data; char *s = NULL; if (!strcmp(part, "elm.text")) { s = phoneui_utils_contact_display_name_get(parameters); if (s && *s) { return s; } else { s = strdup(CONTACT_NAME_UNDEFINED_STRING); } } else if (!strcmp(part, "elm.text.sub")) { s = phoneui_utils_contact_display_phone_get(parameters); if (s && *s) { return s; } else { s = strdup(CONTACT_PHONE_UNDEFINED_STRING); } } return s; } static Evas_Object * gl_content_get(void *data, Evas_Object * obj, const char *part) { GHashTable *parameters = (GHashTable *) data; if (!strcmp(part, "elm.swallow.icon")) { const char *photo_file = NULL; GVariant *tmp = g_hash_table_lookup(parameters, "Photo"); if (tmp) { photo_file = g_variant_get_string(tmp, NULL); } if (!photo_file || !ecore_file_exists(photo_file)) photo_file = CONTACT_DEFAULT_PHOTO; Evas_Object *photo = elm_icon_add(obj); elm_image_file_set(photo, photo_file, NULL); evas_object_size_hint_aspect_set(photo, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); return (photo); } return (NULL); } static void gl_del(void *data, Evas_Object * obj) { (void) obj; g_hash_table_unref((GHashTable *)data); } static void gl_index_changed(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; elm_genlist_item_bring_in(elm_object_item_data_get(event_info), ELM_GENLIST_ITEM_SCROLLTO_TOP); } static void gl_index_selected(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; elm_genlist_item_bring_in(event_info, ELM_GENLIST_ITEM_SCROLLTO_TOP); } /* allocates space and returns the index part of a string */ static char * _new_get_index(const char *_string) { if (!_string) return NULL; size_t size; gunichar u; char *string = NULL; if (g_ascii_isalnum(_string[0])) { size = sizeof(char); string = malloc(size+1); string[0] = g_ascii_toupper(_string[0]); } else { u = g_utf8_get_char_validated(_string, -1); if ((u != (gunichar)-1 || u != (gunichar)-2) && g_unichar_isalnum(u)) { u = g_unichar_toupper(u); size = g_unichar_to_utf8(u, NULL); string = malloc(size+1); g_unichar_to_utf8(u, string); } } if (string) string[size] = '\0'; return string; } Elm_Object_Item * contact_list_item_add(struct ContactListData *list_data, GHashTable *entry, int sortin) { GHashTable *other; Elm_Object_Item *glit; if (sortin) { /* find the correct position to insert the new one */ glit = elm_genlist_first_item_get(list_data->list); while (glit) { other = (GHashTable *)elm_object_item_data_get(glit); if (phoneui_utils_contact_compare(entry, other) < 0) break; glit = elm_genlist_item_next_get(glit); } if (glit) { return elm_genlist_item_insert_before(list_data->list, &itc, g_hash_table_ref(entry), NULL, glit, ELM_GENLIST_ITEM_NONE, NULL, NULL); } } return elm_genlist_item_append(list_data->list, &itc, g_hash_table_ref(entry) /*item data */ , NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); } void contact_list_fill_index(struct ContactListData *list_data) { static const int index_button_height = 25; /*FIXME: get actual size*/ int limit = 1; Evas_Object *win; Elm_Object_Item *glit, *current_index_item = NULL; GHashTable *entry; char *idx, *current_index = NULL; char *name; int init_index_count, index_count; Eina_Bool new_index; int height; win = ui_utils_view_window_get(list_data->view); if (list_data->index) { evas_object_del(list_data->index); } list_data->index = elm_index_add(win); elm_win_resize_object_add(win, list_data->index); evas_object_size_hint_weight_set(list_data->index, 1.0, 0.0); evas_object_smart_callback_add(list_data->index, "delay,changed", gl_index_changed, NULL); evas_object_smart_callback_add(list_data->index, "selected", gl_index_selected, NULL); evas_object_geometry_get(list_data->index, NULL, NULL, NULL, &height); limit = height / index_button_height; init_index_count = list_data->count / (limit - 1); /* The number of indexes excluding the first */ index_count = 0; /* Add the first as well */ glit = elm_genlist_first_item_get(list_data->list); while (glit) { entry = (GHashTable *)elm_object_item_data_get(glit); name = phoneui_utils_contact_display_name_get(entry); idx = _new_get_index(name); if (idx) { if (!current_index || strcmp(idx, current_index)) { if (current_index) { free(current_index); } current_index = idx; current_index_item = glit; new_index = TRUE; } else { new_index = FALSE; free(idx); } if (index_count < 1 && new_index) { g_debug("Adding index %s", current_index); elm_index_item_append(list_data->index, current_index, NULL, current_index_item); index_count = init_index_count; } index_count--; } glit = elm_genlist_item_next_get(glit); } if (list_data->layout) { elm_object_part_content_set(list_data->layout, "contacts_index", list_data->index); } evas_object_show(list_data->index); } static void _process_entry(void *_entry, void *_data) { Elm_Object_Item *glit; GHashTable *entry = (GHashTable *)_entry; struct ContactListData *list_data = (struct ContactListData *) _data; glit = contact_list_item_add(list_data, entry, 0); if (!glit) { g_warning("Failed adding a contact to the list"); return; } list_data->current++; if (list_data->count == list_data->current) { contact_list_fill_index(list_data); edje_object_signal_emit(elm_layout_edje_get(list_data->layout), "stop_loading",""); elm_progressbar_pulse(list_data->progress, EINA_FALSE); } } void contact_list_fill(struct ContactListData *list_data) { g_debug("contact_list_fill()"); list_data->current = 0; elm_progressbar_pulse(list_data->progress, EINA_TRUE); edje_object_signal_emit(elm_layout_edje_get(list_data->layout), "start_loading",""); phoneui_utils_contacts_get(&list_data->count, _process_entry, list_data); } void contact_list_add(struct ContactListData *list_data) { Evas_Object *win; win = ui_utils_view_window_get(list_data->view); list_data->index = NULL; list_data->list = elm_genlist_add(win); elm_genlist_mode_set(list_data->list, ELM_LIST_LIMIT); elm_genlist_longpress_timeout_set(list_data->list, 0.5); //elm_genlist_multi_select_set(list_data->list, EINA_TRUE); evas_object_size_hint_align_set(list_data->list, 0.0, 0.0); elm_object_scale_set(list_data->list, 1.0); itc.item_style = "contact"; itc.func.text_get = gl_text_get; itc.func.content_get = gl_content_get; itc.func.state_get = NULL; itc.func.del = gl_del; evas_object_show(list_data->list); if (list_data->layout) { elm_object_part_content_set(list_data->layout, "contacts_list", list_data->list); } list_data->progress = elm_progressbar_add(win); elm_object_style_set(list_data->progress, "wheel"); elm_object_text_set(list_data->progress, D_("Loading...")); evas_object_size_hint_align_set(list_data->progress, EVAS_HINT_FILL, 0.5); evas_object_size_hint_weight_set(list_data->progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_object_part_content_set(list_data->layout, "loading_indicator", list_data->progress); evas_object_show(list_data->progress); } libphone-ui-shr-0.1+git20130901/src/view/contact-list-common.h000066400000000000000000000025701221067027500235700ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _CONTACTLIST_COMMON_H #define _CONTACTLIST_COMMON_H #include "ui-utils.h" struct ContactListData { struct View *view; Evas_Object *layout; Evas_Object *list; Evas_Object *index; Evas_Object *progress; int count; int current; }; void contact_list_fill_index(struct ContactListData *list_data); void contact_list_fill(struct ContactListData *list_data); void contact_list_add(struct ContactListData *list_data); Elm_Object_Item *contact_list_item_add(struct ContactListData *list_data, GHashTable *entry, int sortin); #endif libphone-ui-shr-0.1+git20130901/src/view/contact-list-view.c000066400000000000000000000272351221067027500232520ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Martin Jansa * David Kozub * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include #include #include #include #include "views.h" #include "common-utils.h" #include "ui-utils.h" #include "ui-utils-contacts.h" #include "contact-list-common.h" #include "phoneui-shr.h" struct ContactListViewData { struct View view; struct ContactListData list_data; Evas_Object *bt1, *bt2, *bt_options, *bt_message, *bt_edit, *bt_delete; Evas_Object *inwin; }; static struct ContactListViewData view; static void _list_new_clicked(void *data, Evas_Object *obj, void *event_info); static void _list_call_number_callback(const char *number, void *data); static void _list_call_clicked(void *data, Evas_Object *obj, void *event_info); static void _list_list_longpressed(void *data, Evas_Object *obj, void *event_info); static void _list_message_number_callback(const char *number, void *data); static void _list_message_clicked(void *data, Evas_Object *obj, void *event_info); static void _list_edit_clicked(void *data, Evas_Object *obj, void *event_info); static void _list_delete_clicked(void *data, Evas_Object *obj, void *event_info); static void _ctx_dismissed(void *data, Evas_Object *obj, void *event_info); static void _contact_changed_cb(void *data, const char *path, enum PhoneuiInfoChangeType type); static void _hide_cb(struct View *view); static void _delete_cb(struct View *data, Evas_Object *obj, void *event_info); int contact_list_view_init() { Evas_Object *win; int ret; g_debug("Initializing the contact list view"); ret = ui_utils_view_init(VIEW_PTR(view), ELM_WIN_BASIC, D_("Contacts"), NULL, _hide_cb, NULL); if (ret) { g_critical("Failed to init the contact list view"); return ret; } view.list_data.view = VIEW_PTR(view); win = ui_utils_view_window_get(VIEW_PTR(view)); ui_utils_view_delete_callback_set(VIEW_PTR(view), _delete_cb); ui_utils_view_layout_set(VIEW_PTR(view), phoneui_theme, "phoneui/contacts/list"); elm_theme_extension_add(NULL, phoneui_theme); view.list_data.layout = view.view.layout; contact_list_add(&view.list_data); evas_object_smart_callback_add(view.list_data.list, "longpressed", _list_list_longpressed, win); view.bt1 = elm_button_add(win); elm_object_text_set(view.bt1, D_("Call")); evas_object_smart_callback_add(view.bt1, "clicked", _list_call_clicked, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_new", view.bt1); evas_object_show(view.bt1); view.bt2 = elm_button_add(win); elm_object_text_set(view.bt2, D_("SMS")); evas_object_smart_callback_add(view.bt2, "clicked", _list_message_clicked, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_call", view.bt2); evas_object_show(view.bt2); view.bt_options = elm_button_add(win); elm_object_text_set(view.bt_options, D_("New")); evas_object_smart_callback_add(view.bt_options, "clicked", _list_new_clicked, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_options", view.bt_options); evas_object_show(view.bt_options); contact_list_fill(&view.list_data); phoneui_info_register_contact_changes(_contact_changed_cb, NULL); return 0; } int contact_list_view_is_init() { return ui_utils_view_is_init(VIEW_PTR(view)); } void contact_list_view_deinit() { ui_utils_view_deinit(VIEW_PTR(view)); } void contact_list_view_show() { ui_utils_view_show(VIEW_PTR(view)); } void contact_list_view_hide() { ui_utils_view_hide(VIEW_PTR(view)); } static void _list_new_clicked(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; phoneui_contacts_contact_new(NULL); } static void _list_call_number_callback(const char *number, void *data) { (void) data; g_debug("_list_call_number_callback: %s", number ? number : "NO NUMBER"); if (number) { phoneui_utils_dial(number, NULL, NULL); } } static void _list_call_clicked(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; Elm_Object_Item *glit; GHashTable *properties; const Eina_List *contacts; contacts = elm_genlist_selected_items_get(view.list_data.list); if( !contacts || eina_list_count(contacts) > 1 ) return; glit = eina_list_data_get(contacts); properties = glit ? (GHashTable *) elm_object_item_data_get(glit) : NULL; if (properties) { GVariant *tmp; tmp = g_hash_table_lookup(properties, "Path"); if (tmp) { const char *path = g_variant_get_string(tmp, NULL); ui_utils_contacts_contact_number_select(VIEW_PTR(view), path, _list_call_number_callback, NULL); } } } static void _list_list_longpressed(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) obj; (void) event_info; Evas_Object *ctx; Evas_Coord x, y; ctx = elm_ctxpopup_add(view.list_data.list); evas_object_smart_callback_add(ctx, "dismissed", _ctx_dismissed, NULL); elm_ctxpopup_item_append(ctx, D_("Edit"), NULL, _list_edit_clicked, event_info); elm_ctxpopup_item_append(ctx, D_("Delete"), NULL, _list_delete_clicked, event_info); evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y); elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_TRUE); evas_object_move(ctx, x, y); evas_object_show(ctx); } static void _list_message_number_callback(const char *number, void *data) { (void) data; GVariant *tmp; char *str; GHashTable *properties = data; if (!number) return; GHashTable *options = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); g_hash_table_insert(options, "Phone", g_variant_ref_sink(g_variant_new_string(number))); str = phoneui_utils_contact_display_name_get(properties); if (str) { g_hash_table_insert(options, "Name", g_variant_ref_sink(g_variant_new_string(str))); free(str); } /*FIXME: make sure it works */ tmp = g_hash_table_lookup(properties, "Photo"); if (tmp) { g_hash_table_insert(options, "Photo", g_variant_ref(tmp)); } phoneui_messages_message_new(options); g_hash_table_unref(options); } static void _list_message_clicked(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; Elm_Object_Item *glit; GHashTable *properties; const Eina_List *contacts; // FIXME: messages should support multiple destinations, but for now, they don't contacts = elm_genlist_selected_items_get(view.list_data.list); if( !contacts || eina_list_count(contacts) > 1 ) return; glit = eina_list_data_get(contacts); properties = glit ? (GHashTable *) elm_object_item_data_get(glit) : NULL; if (properties) { GVariant *tmp; tmp = g_hash_table_lookup(properties, "Path"); if (tmp) { const char *path = g_variant_get_string(tmp, NULL); ui_utils_contacts_contact_number_select(VIEW_PTR(view), path, _list_message_number_callback, properties); } } } static void _list_edit_clicked(void *data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; GHashTable *properties; g_debug("editing selected contact"); evas_object_del(obj); if (!data) return; properties = elm_object_item_data_get(data); if (properties) { GVariant *tmp; tmp = g_hash_table_lookup(properties, "Path"); if (tmp) { g_debug("with path %s", g_variant_get_string(tmp, NULL)); phoneui_contacts_contact_show(g_variant_get_string(tmp, NULL)); } else g_warning("NO PATH for selected contact?!"); } } static void _contact_delete_confirm_cb(int result, void *data) { GHashTable *properties=NULL; Elm_Object_Item *contact = (Elm_Object_Item *)data; if (result != DIALOG_YES) return; properties = (GHashTable *) elm_object_item_data_get(contact); if (properties) { GVariant *tmp; tmp = g_hash_table_lookup(properties, "Path"); if(tmp) { g_debug("with path %s", g_variant_get_string(tmp, NULL)); phoneui_utils_contact_delete(g_variant_get_string(tmp, NULL), NULL, NULL); } else g_warning("NO PATH for selected contact?!"); // TODO: use a callback to show success/failure } } static void _list_delete_clicked(void *data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; evas_object_del(obj); if (!data) return; ui_utils_dialog(VIEW_PTR(view), D_("Really delete contact details?"), DIALOG_YES|DIALOG_NO, _contact_delete_confirm_cb, data); // FIXME: this should say what contact is being deleted, now... //EINA_LIST_FOREACH(contacts, c, contact) // ui_utils_dialog(VIEW_PTR(view), D_("Really delete contact details?"), // DIALOG_YES|DIALOG_NO, _contact_delete_confirm_cb, contact); } static void _ctx_dismissed(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) obj; (void) event_info; g_debug("ctx popup dismissed"); evas_object_del(obj); } static void _add_contact_cb(GError *error, GHashTable *properties, gpointer data) { (void) data; Elm_Object_Item *glit; if (error || !properties) { if (error) g_warning("Failed adding contact: (%d) %s", error->code, error->message); else g_warning("Failed adding contact: call succeeded, " "but no properties were returned"); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Failed adding contact."), error); return; } g_debug("Adding contact to the list"); glit = contact_list_item_add(&view.list_data, properties, 1); if (glit) { elm_genlist_item_bring_in(glit, ELM_GENLIST_ITEM_SCROLLTO_IN); } } static void _add_contact(const char *path) { phoneui_utils_contact_get(path, _add_contact_cb, NULL); } static void _remove_contact(const char *path) { Elm_Object_Item *glit; GHashTable *properties; GVariant *tmp; g_debug("Removing contact %s from list", path); glit = elm_genlist_first_item_get(view.list_data.list); while (glit) { properties = (GHashTable *)elm_object_item_data_get(glit); tmp = g_hash_table_lookup(properties, "Path"); if (tmp) { if (!strcmp(path, g_variant_get_string(tmp, NULL))) { g_debug("found him - removing"); elm_object_item_del(glit); break; } } glit = elm_genlist_item_next_get(glit); } } static void _contact_changed_cb(void *data, const char *path, enum PhoneuiInfoChangeType type) { g_debug("contact %s got changed", path); (void)data; switch (type) { case PHONEUI_INFO_CHANGE_UPDATE: _remove_contact(path); _add_contact(path); break; case PHONEUI_INFO_CHANGE_NEW: _add_contact(path); break; case PHONEUI_INFO_CHANGE_DELETE: _remove_contact(path); break; } contact_list_fill_index(&view.list_data); ui_utils_view_swallow(VIEW_PTR(view), "index", view.list_data.index); } static void _hide_cb(struct View *view) { elm_genlist_item_bring_in(elm_genlist_first_item_get( ((struct ContactListViewData *)view)->list_data.list), ELM_GENLIST_ITEM_SCROLLTO_IN); } static void _delete_cb(struct View *view, Evas_Object *obj, void *event_info) { (void)view; (void)obj; (void)event_info; contact_list_view_hide(); } libphone-ui-shr-0.1+git20130901/src/view/contact-list-view.h000066400000000000000000000021211221067027500232420ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _CONTACT_LIST_VIEW_H #define _CONTACT_LIST_VIEW_H int contact_list_view_init(); int contact_list_view_is_init(); void contact_list_view_deinit(); void contact_list_view_show(); void contact_list_view_hide(); #endif // _CONTACT_LIST_VIEW_H libphone-ui-shr-0.1+git20130901/src/view/contact-view.c000066400000000000000000001005311221067027500222700ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * David Kozub * Martin Jansa * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include #include #include #include #include #include #include #include "views.h" #include "common-utils.h" #include "ui-utils.h" #include "ui-utils-contacts.h" #include "contact-view.h" #include "phoneui-shr.h" static Elm_Genlist_Item_Class itc; /* keep a list of open contact views - to open only one view per contact */ static GHashTable *contactviews = NULL; static void _contact_delete_clicked(void *_data, Evas_Object * obj, void *event_info); static void _contact_add_field_clicked(void *_data, Evas_Object * obj, void *event_info); static void _contact_photo_clicked(void *_data, Evas_Object * obj, void *event_info); static void _contact_call_clicked(void *_data, Evas_Object * obj, void *event_info); static void _contact_call_number_callback(const char *number, void *data); static void _contact_sms_clicked(void *_data, Evas_Object * obj, void *event_info); static void _contact_sms_number_callback(const char *number, void *data); static void _contact_save_clicked(void *_data, Evas_Object *obj, void *event_info); static void _contact_cancel_clicked(void *_data, Evas_Object *obj, void *event_info); static void _field_clicked(void *_data, Evas_Object *obj, void *event_info); static void _field_remove_clicked(void *_data, Evas_Object *obj, void *event_info); static void _change_value(struct ContactFieldData *fd, const char *value); static void _load_name(struct ContactViewData *view); static void _load_number(struct ContactViewData *view); static void _load_photo(struct ContactViewData *view); static void _load_fields(struct ContactViewData *view); static void _add_field(struct ContactViewData *view, const char *key, const char *value, int isnew); static Evas_Object *gl_field_content_get(void *_data, Evas_Object * obj, const char *part); static void gl_field_del(void *_data, Evas_Object * obj); static void _delete_cb(struct View *view, Evas_Object * win, void *event_info); static void _destroy_cb(struct View *_view); static void _contact_changed_handler(void *data, int entryid, enum PhoneuiInfoChangeType type); static void _set_modify(struct ContactViewData *view, int dirty); static void _update_cb(GError *error, gpointer data); static void _add_cb(GError *error, char *path, gpointer data); static void _load_cb(GError *error, GHashTable *content, gpointer data); static void _field_unselected_cb(void *userdata, Evas_Object *obj, void *event_info); static Evas_Object *_start_file_selector(Evas_Object *parent, const char *path); int contact_view_init(char *path, GHashTable *properties) { struct ContactViewData *view; Evas_Object *win; int ret; GVariant *tmp; /* path MUST always be set! For new contacts to "" and it will be freed by destroying the contactviews hashtable in here, thus must be a copy */ if (!path) { g_warning("Trying to initialize a contact view without path!"); return 1; } g_debug("Initializing the contact view for '%s'", path); view = malloc(sizeof(struct ContactViewData)); if (!view) { g_critical("Failed to allocate contact view for '%s'", path); if (properties) { g_hash_table_unref(properties); } free(path); return 1; } ret = ui_utils_view_init(VIEW_PTR(*view), ELM_WIN_BASIC, D_("Contact"), NULL, NULL, _destroy_cb); if (ret) { g_critical("Failed to init contact view for '%s'", path); if (properties) { g_hash_table_unref(properties); } free(view); free(path); return ret; } /* cache the views to open only one view per contact */ if (contactviews == NULL) { contactviews = g_hash_table_new_full(g_str_hash, g_str_equal, free, NULL); } g_hash_table_insert(contactviews, path, view); view->path = path; view->entryid = -1; if (properties) { view->properties = g_hash_table_ref(properties); tmp = g_hash_table_lookup(properties, "EntryId"); if (tmp) { view->entryid = g_variant_get_int32(tmp); phoneui_info_register_single_contact_changes (view->entryid, _contact_changed_handler, view); } } else { view->properties = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); g_hash_table_insert(view->properties, "Phone", g_variant_ref_sink(g_variant_new_string(""))); g_hash_table_insert(view->properties, "Name", g_variant_ref_sink(g_variant_new_string(""))); } view->changes = NULL; elm_theme_extension_add(NULL, phoneui_theme); win = ui_utils_view_window_get(VIEW_PTR(*view)); ui_utils_view_delete_callback_set(VIEW_PTR(*view), _delete_cb); ui_utils_view_layout_set(VIEW_PTR(*view), phoneui_theme, "phoneui/contacts/view"); view->photo = elm_icon_add(win); evas_object_smart_callback_add(view->photo, "clicked", _contact_photo_clicked, view); ui_utils_view_swallow(VIEW_PTR(*view), "photo", view->photo); evas_object_show(view->photo); view->pager = elm_naviframe_add(win); ui_utils_view_swallow(VIEW_PTR(*view), "main", view->pager); view->pager_layout = elm_layout_add(win); elm_layout_file_set(view->pager_layout, phoneui_theme, "phoneui/contacts/fieldedit"); evas_object_size_hint_min_set(view->pager_layout, 1, 1); view->fields = elm_genlist_add(win); elm_scroller_policy_set(view->fields, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); elm_genlist_mode_set(view->fields, ELM_LIST_LIMIT); evas_object_size_hint_align_set(view->fields, 0.0, 0.0); elm_object_part_content_set(view->pager_layout, "fields", view->fields); itc.item_style = "contactfield"; itc.func.text_get = NULL; itc.func.content_get = gl_field_content_get; itc.func.state_get = NULL; itc.func.del = gl_field_del; /*FIXME: Shouldn't be these signals,but the start_edit or whatever signa l contacts.edc emits*/ evas_object_smart_callback_add(view->fields, "unselected", _field_unselected_cb, NULL); evas_object_show(view->fields); view->btn_save = elm_button_add(win); elm_object_text_set(view->btn_save, D_("Save")); evas_object_smart_callback_add(view->btn_save, "clicked", _contact_save_clicked, view); elm_object_part_content_set(view->pager_layout, "button_save", view->btn_save); evas_object_show(view->btn_save); view->btn_cancel = elm_button_add(win); elm_object_text_set(view->btn_cancel, D_("Cancel")); evas_object_smart_callback_add(view->btn_cancel, "clicked", _contact_cancel_clicked, view); elm_object_part_content_set(view->pager_layout, "button_cancel", view->btn_cancel); evas_object_show(view->btn_cancel); view->btn_call = elm_button_add(win); elm_object_text_set(view->btn_call, D_("Call")); evas_object_smart_callback_add(view->btn_call, "clicked", _contact_call_clicked, view); elm_object_part_content_set(view->pager_layout, "button_call", view->btn_call); evas_object_show(view->btn_call); view->btn_sms = elm_button_add(win); elm_object_text_set(view->btn_sms, D_("SMS")); evas_object_smart_callback_add(view->btn_sms, "clicked", _contact_sms_clicked, view); elm_object_part_content_set(view->pager_layout, "button_sms", view->btn_sms); evas_object_show(view->btn_sms); view->btn_delete = elm_button_add(win); elm_object_text_set(view->btn_delete, D_("Delete")); evas_object_smart_callback_add(view->btn_delete, "clicked", _contact_delete_clicked, view); evas_object_show(view->btn_delete); elm_object_part_content_set(view->pager_layout, "button_delete", view->btn_delete); view->btn_addfield = elm_button_add(win); elm_object_text_set(view->btn_addfield, D_("Add Field")); evas_object_smart_callback_add(view->btn_addfield, "clicked", _contact_add_field_clicked, view); evas_object_show(view->btn_addfield); elm_object_part_content_set(view->pager_layout, "button_addfield", view->btn_addfield); _load_name(view); _load_number(view); _load_photo(view); _load_fields(view); elm_naviframe_item_simple_push(view->pager, view->pager_layout); /* show save and cancel buttons when this is a new one */ if (!*view->path) _set_modify(view, 1); return 0; } int contact_view_is_init(const char *path) { struct ContactViewData *view; if (contactviews == NULL) { return 0; } view = (struct ContactViewData *) g_hash_table_lookup(contactviews, path); if (view && ui_utils_view_is_init(VIEW_PTR(*view))) { return 1; } return 0; } void contact_view_deinit(struct ContactViewData *view) { if (view) { g_debug("Deiniting view for contact"); ui_utils_view_deinit(VIEW_PTR(*view)); } else { g_warning("contact_view_deinit without a view!"); } } void contact_view_show(const char *path) { struct ContactViewData *view; g_debug("looking up contact view for '%s'", path); if (contactviews == NULL) { g_debug("No contact views loaded yet"); return; } view = (struct ContactViewData *) g_hash_table_lookup(contactviews, path); if (view) { ui_utils_view_show(VIEW_PTR(*view)); } else { g_warning("Could not find view for contact '%s'", path); } g_debug("contact view show done"); } static void _update_changes_of_field(struct ContactViewData *view, const char *field, const char *old_value, const char *new_value) { /*FIXME: make generic so it'll be good for all the field types */ char **value; if (!view->changes) { view->changes = g_hash_table_new_full(g_str_hash, g_str_equal, free, (void (*) (void *)) g_strfreev); } value = g_hash_table_lookup(view->changes, field); if (!value) { GVariant *prop; /* If we haven't already changed this field, we should first check the * the property hash to keep the values of the same field */ prop = g_hash_table_lookup(view->properties, field); if (!prop) { /* New field */ value = calloc(1, sizeof(char *)); value[0] = NULL; } else { if (g_variant_is_of_type(prop, G_VARIANT_TYPE_STRING)) { value = calloc(2, sizeof(char *)); value[0] = g_variant_dup_string(prop, NULL); value[1] = NULL; } else if (g_variant_is_of_type(prop, G_VARIANT_TYPE_STRING_ARRAY)) { value = g_variant_dup_strv(prop, NULL); } else { g_debug("We don't handle gvalues that are not boxed/strings yet"); return; } } } else { value = g_strdupv(value); /*Copy it to our own, the old one will be erased by the hash table */ } char **cur; /* try to find the value we want to remove */ for (cur = value ; *cur ; cur++) { if (!strcmp(old_value, *cur)) { break; } } /* If we found what we wanted to remove, replace */ if (*cur) { free(*cur); /*If we need to replace, just allocate, otherwise remove that field from list */ if (strcmp(new_value, "")) { *cur = strdup(new_value); } else { /* We removed a field, we should reallocate -1 */ for ( ; *cur ; cur++) { *cur = *(cur + 1); } value = realloc(value, (g_strv_length(value) + 1) * sizeof (char *)); } } else { /* We need to add another one */ /* We added a field, we should reallocate +1 */ int size = g_strv_length(value) + 2; value = realloc(value, size * sizeof (char *)); /*One for the NULL as well */ value[size - 2] = strdup(new_value); value[size - 1] = NULL; } /* This also removes the old value */ g_hash_table_replace(view->changes, strdup(field), value); } static void _contact_delete_cb(GError *error, gpointer data) { struct ContactViewData *view = (struct ContactViewData *)data; if (error) { ui_utils_dialog(VIEW_PTR(*view), D_("Deleting the contact failed!"), DIALOG_OK, NULL, NULL); g_warning("Deleting the contact failed: %s", error->message); return; } contact_view_deinit(view); } static void _contact_delete_confirm_cb(int result, void *data) { struct ContactViewData *view = (struct ContactViewData *)data; if (result == DIALOG_YES) { if (*view->path) { phoneui_utils_contact_delete(view->path, _contact_delete_cb, view); return; } contact_view_deinit(view); } } static void _contact_delete_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; struct ContactViewData *view = (struct ContactViewData *)_data; ui_utils_dialog(VIEW_PTR(*view), D_("Really delete this contact?"), DIALOG_YES|DIALOG_NO, _contact_delete_confirm_cb, view); } static void _add_field_cb(const char *field, void *data) { struct ContactViewData *view = (struct ContactViewData *)data; g_debug("selected field '%s'", field); if (field) { _add_field(view, field, "", 1); } } static void _contact_add_field_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; struct ContactViewData *view = (struct ContactViewData *)_data; ui_utils_contacts_field_select(VIEW_PTR(*view), _add_field_cb, view); } static Evas_Object * _start_file_selector(Evas_Object *parent, const char *path) { Evas_Object *content; /*layout = elm_layout_add(view->pager); elm_layout_file_set(view->pager_layout, phoneui_theme, "phoneui/contacts/fileselect"); */ content = elm_fileselector_add(parent); elm_fileselector_is_save_set(content, EINA_FALSE); elm_fileselector_expandable_set(content, EINA_FALSE); elm_fileselector_buttons_ok_cancel_set(content, EINA_FALSE); elm_fileselector_path_set(content, path); evas_object_size_hint_weight_set(content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(content, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(content); return content; } static void _contact_photo_clicked(void *_data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct ContactViewData *view = _data; (void) view; //_start_file_selector(view, getenv("HOME")); } static void _contact_call_number_callback(const char *number, void *data) { (void) data; // struct ContactViewData *view = data; if (!number) { g_debug("got NO number to dial"); return; } g_debug("got number %s to dial", number); phoneui_utils_dial(number, NULL, NULL); } static void _contact_call_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; struct ContactViewData *view = (struct ContactViewData *)_data; if (view->properties == NULL) return; g_debug("Triggering phone number selection"); ui_utils_contacts_contact_number_select(VIEW_PTR(*view), view->path, _contact_call_number_callback, view); } static void _contact_sms_number_callback(const char *number, void *data) { GVariant *tmp; char *str; const char *cstr; struct ContactViewData *view = data; if (!number) return; GHashTable *options = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); g_hash_table_insert(options, "Phone", g_variant_ref_sink(g_variant_new_string(number))); str = phoneui_utils_contact_display_name_get(view->properties); if (str) { g_hash_table_insert(options, "Name", g_variant_ref_sink(g_variant_new_string(str))); free(str); } tmp = g_hash_table_lookup(view->properties, "Photo"); if (tmp) { cstr = g_variant_get_string(tmp, NULL); g_hash_table_insert(options, "Photo", g_variant_ref_sink(g_variant_new_string(cstr))); } phoneui_messages_message_new(options); g_hash_table_unref(options); } static void _contact_sms_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; struct ContactViewData *view = _data; if (view->properties == NULL) return; ui_utils_contacts_contact_number_select(VIEW_PTR(*view), view->path, _contact_sms_number_callback, view); } static void _change_field_type_cb(GError *error, char *type, gpointer data) { struct ContactFieldData *fd = (struct ContactFieldData *)data; if (error || !type) { type = strdup("generic"); } if (fd->type) { free(fd->type); } fd->type = strdup(type); /*FIXME: free type*/ } static void _change_field_cb(const char *field, void *data) { g_debug("_change_field_cb"); struct ContactFieldData *fd = (struct ContactFieldData *)data; if (field) { _update_changes_of_field(fd->view, fd->name, fd->value, ""); _update_changes_of_field(fd->view, field, "", fd->value); fd->name = strdup(field); elm_object_text_set(fd->field_button, field); _set_modify(fd->view, 1); phoneui_utils_contacts_field_type_get(fd->name, _change_field_type_cb, fd); } } static void _field_clicked(void *_data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct ContactFieldData *fd = (struct ContactFieldData *)_data; ui_utils_contacts_field_select(VIEW_PTR(*fd->view), _change_field_cb, fd); } static void _field_remove_clicked(void *_data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; g_debug("_field_remove_clicked"); struct ContactFieldData *fd = (struct ContactFieldData *)_data; _change_value(fd, ""); elm_object_item_del(fd->item); } static void _change_value(struct ContactFieldData *fd, const char *value) { g_debug("_value_changed"); if (value) { _update_changes_of_field(fd->view, fd->name, fd->value, value); if (fd->value) { free(fd->value); } fd->value = strdup(value); } else { g_error("Got NULL from edit field %s", fd->name); } } static void _sanitize_changes_hash_foreach(void *key, void *value, void *data) { GHashTable *target = data; char **tmp = value; GVariant *gtmp; if (!tmp) { g_warning("%s:%d - Got an empty value in the hash table (key = %s), shouldn't have happend", __FILE__, __LINE__, (char *) key); } if (!tmp || !*tmp || !**tmp) { /*If the only one we have is empty, don't put in a list */ gtmp = g_variant_new_string(value); } else if (g_strv_length(tmp) == 1) { gtmp = g_variant_new_string(tmp[0]); } else { gtmp = g_variant_new_strv(value, g_strv_length(value)); } g_hash_table_insert(target, strdup((char *)key), g_variant_ref_sink(gtmp)); } static GHashTable * _sanitize_changes_hash(GHashTable *source) { GHashTable *target; target = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); g_hash_table_foreach(source, _sanitize_changes_hash_foreach,target); return target; } static void _contact_save_clicked(void *_data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct ContactViewData *view = (struct ContactViewData *)_data; GHashTable *formatted_changes; Elm_Object_Item *glit; struct ContactFieldData *fd; char *s; /* check if the selected field is still in edit mode */ glit = elm_genlist_selected_item_get(view->fields); if (glit) { fd = (struct ContactFieldData *)elm_object_item_data_get(glit); if (fd->edit_on) { s = ui_utils_entry_utf8_get(fd->value_entry); _change_value(fd, s); free(s); elm_entry_editable_set(fd->value_entry, EINA_FALSE); fd->edit_on = 0; } } if (!view->changes) { /* should not happen ? */ g_warning("No changes found ?"); return; } formatted_changes = _sanitize_changes_hash(view->changes); common_utils_debug_dump_hashtable(view->properties); common_utils_debug_dump_hashtable(formatted_changes); if (*view->path) { g_debug("Updating contact '%s'", view->path); phoneui_utils_contact_update(view->path, formatted_changes, _update_cb, view); } else { g_debug("Saving a new contact"); phoneui_utils_contact_add(formatted_changes, _add_cb, view); } g_hash_table_unref(formatted_changes); } static void _contact_cancel_clicked(void *_data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct ContactViewData *view = (struct ContactViewData *)_data; _set_modify(view, 0); if (*view->path) { _load_fields(view); return; } /* for new contacts cancel means closing the view */ contact_view_deinit(view); free(view); } static void _set_modify(struct ContactViewData *view, int dirty) { g_debug("modify is %s now", dirty ? "ON" : "OFF"); if (dirty) { edje_object_signal_emit( elm_layout_edje_get(view->pager_layout), "elm,state,dirty", ""); } else { edje_object_signal_emit( elm_layout_edje_get(view->pager_layout), "elm,state,default", ""); } } static void _update_cb(GError *error, gpointer data) { struct ContactViewData *view = data; if (error) { g_warning("Updating contact %s failed: (%d) %s", view->path, error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Updating contact failed."), error); } else { _set_modify(view, 0); } } static void _add_cb(GError *error, char *path, gpointer data) { struct ContactViewData *view = data; if (error) { g_warning("Adding the contact failed: (%d) %s", error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Adding the contact failed."), error); } else { view->path = path; phoneui_utils_contact_get(view->path, _load_cb, view); _set_modify(view, 0); } } static void _load_cb(GError *error, GHashTable *content, gpointer data) { struct ContactViewData *view = (struct ContactViewData *)data; g_debug("_load_cb called"); if (error || !content) { g_critical("Failed loading data of saved contact: (%d) %s", (error)? error->code : 0, (error)? error->message : "NULL"); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Failed loading data of saved contact."), error); return; } /* cleanup up the old data of the contact */ if (view->properties) { g_hash_table_unref(view->properties); } if (view->changes) { g_hash_table_destroy(view->changes); view->changes = NULL; } view->properties = g_hash_table_ref(content); _load_name(view); _load_number(view); _load_photo(view); _load_fields(view); } static void _field_edit_button_back_clicked_cb(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct ContactFieldData *fd = data; elm_naviframe_item_pop(fd->view->pager); } static void _field_edit_button_remove_clicked_cb(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct ContactFieldData *fd = data; elm_naviframe_item_pop(fd->view->pager); _change_value(fd, ""); elm_object_item_del(fd->item); } static void _field_edit_add_edit_page(struct ContactFieldData *fd, Evas_Object *content, void (*save_cb) (void *, Evas_Object *, void *)) { Evas_Object *layout; Evas_Object *btn_back, *btn_remove, *btn_save; layout = elm_layout_add(fd->view->pager); elm_layout_file_set(layout, phoneui_theme, "phoneui/contacts/edit_field"); /*Used for callbacks*/ fd->edit_widget = content; elm_object_part_content_set(layout, "main", content); btn_save = elm_button_add(fd->view->pager); elm_object_text_set(btn_save, D_("Save")); evas_object_smart_callback_add(btn_save, "clicked", save_cb, fd); elm_object_part_content_set(layout, "button_save", btn_save); evas_object_show(btn_save); btn_back = elm_button_add(fd->view->pager); elm_object_text_set(btn_back, D_("Back")); evas_object_smart_callback_add(btn_back, "clicked", _field_edit_button_back_clicked_cb, fd); elm_object_part_content_set(layout, "button_back", btn_back); evas_object_show(btn_back); btn_remove = elm_button_add(fd->view->pager); elm_object_text_set(btn_remove, D_("Remove")); evas_object_smart_callback_add(btn_remove, "clicked", _field_edit_button_remove_clicked_cb, fd); elm_object_part_content_set(layout, "button_remove", btn_remove); evas_object_show(btn_remove); elm_naviframe_item_simple_push(fd->view->pager, layout); } static void _field_edit_fileselector_save_cb(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; const char *selected; struct ContactFieldData *fd = data; elm_naviframe_item_pop(fd->view->pager); selected = elm_fileselector_selected_get(fd->edit_widget); if (selected) { elm_entry_entry_set(fd->value_entry, selected); _change_value(fd, selected); } } /* genlist callbacks */ static void _field_edit_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct ContactFieldData *fd = data; if (!strcmp(fd->type, "photo")) { Evas_Object *content; content = _start_file_selector(fd->view->pager, getenv("HOME")); _field_edit_add_edit_page(fd, content, _field_edit_fileselector_save_cb); } else { edje_object_signal_emit((Evas_Object *) elm_object_item_widget_get(fd->item), "start_edit", "elm"); elm_entry_editable_set(fd->value_entry, EINA_TRUE); elm_object_focus_set(fd->value_entry, EINA_FALSE); } fd->edit_on = 1; _set_modify(fd->view, 1); } static Evas_Object * gl_field_content_get(void *_data, Evas_Object * obj, const char *part) { g_debug("gl_field_content_get (part=%s)", part); struct ContactFieldData *fd = (struct ContactFieldData *) _data; if (strcmp(part, "elm.swallow.field_button") == 0) { Evas_Object *btn = elm_button_add(obj); elm_object_text_set(btn, fd->name); evas_object_smart_callback_add(btn, "clicked", _field_clicked, fd); fd->field_button = btn; return btn; } else if (strcmp(part, "elm.swallow.value_entry") == 0) { Evas_Object *entry = elm_entry_add(obj); elm_entry_entry_set(entry, fd->value); evas_object_size_hint_align_set(entry, 0.5, 0.5); evas_object_size_hint_align_set(entry, 0.5, 0.5); fd->value_entry = entry; elm_entry_editable_set(fd->value_entry, EINA_FALSE); return entry; } else if (strcmp(part, "elm.swallow.button_delfield") == 0) { Evas_Object *btn = elm_button_add(obj); Evas_Object *ico = elm_icon_add(obj); elm_object_part_content_set(btn, "icon", ico); elm_icon_standard_set(ico, "delete"); evas_object_smart_callback_add(btn, "clicked", _field_remove_clicked, fd); return btn; } else if (strcmp(part, "elm.swallow.button_actions") == 0) { Evas_Object *btn = elm_button_add(obj); Evas_Object *ico = elm_icon_add(obj); elm_icon_standard_set(ico, "edit"); elm_object_part_content_set(btn, "icon", ico); evas_object_smart_callback_add(btn, "clicked", _field_edit_clicked, fd); fd->slide_buttons = btn; return btn; } return NULL; } static void gl_field_del(void *_data, Evas_Object * obj) { (void) obj; g_debug("gl_field_del"); struct ContactFieldData *fd = (struct ContactFieldData *) _data; if (fd) { if (fd->name) free(fd->name); if (fd->type) free(fd->type); if (fd->value) free(fd->value); free(fd); } g_debug("gl_field_del DONE"); } static void _load_name(struct ContactViewData *view) { char *s = NULL; g_debug("Loading name"); if (view->properties) { s = phoneui_utils_contact_display_name_get(view->properties); } if (s) { g_debug("Found name '%s'", s); ui_utils_view_text_set(&view->parent, "name", s); elm_win_title_set(ui_utils_view_window_get(VIEW_PTR(*view)), s); free(s); } else { g_debug("No name found"); ui_utils_view_text_set(&view->parent, "name", ""); } } static void _load_number(struct ContactViewData *view) { char *s = NULL; g_debug("Loading number"); if (view->properties) { s = phoneui_utils_contact_display_phone_get(view->properties); } if (s) { g_debug("Found number '%s'", s); elm_object_disabled_set(view->btn_call, EINA_FALSE); elm_object_disabled_set(view->btn_sms, EINA_FALSE); ui_utils_view_text_set(VIEW_PTR(*view), "number", s); free(s); } else { g_debug("No number found"); elm_object_disabled_set(view->btn_call, EINA_TRUE); elm_object_disabled_set(view->btn_sms, EINA_TRUE); ui_utils_view_text_set(VIEW_PTR(*view), "number", ""); } } static void _load_photo(struct ContactViewData *view) { const char *s; GVariant *tmp = NULL; g_debug("Loading photo"); if (view->properties) { tmp = g_hash_table_lookup(view->properties, "Photo"); } if (tmp) { s = g_variant_get_string(tmp, NULL); g_debug("Found photo %s", s); } else { g_debug("No photo found"); s = CONTACT_DEFAULT_PHOTO; } elm_image_file_set(view->photo, s, NULL); } static void _load_fields(struct ContactViewData *view) { GHashTableIter iter; gpointer _key, _val; int isnew = 0; g_debug("Loading field list"); /* mark all fields as new when the contact is new */ if (!*view->path) isnew = 1; common_utils_debug_dump_hashtable(view->properties); elm_genlist_clear(view->fields); if (view->properties) { g_hash_table_iter_init(&iter, view->properties); while (g_hash_table_iter_next(&iter, &_key, &_val)) { const char *key = (const char *)_key; GVariant *val = (GVariant *) _val; if (!strcmp(key, "Path") || !strcmp(key, "EntryId")) continue; if (g_variant_is_of_type(val, G_VARIANT_TYPE_STRING_ARRAY)) { const gchar **vl = g_variant_get_strv(val, NULL); int i = 0; while (vl[i]) { g_debug("--- %s", vl[i]); _add_field(view, key, vl[i], isnew); if (isnew) { _update_changes_of_field(view, key, "", vl[i]); } i++; } } else if (g_variant_is_of_type(val, G_VARIANT_TYPE_STRING)) { _add_field(view, key, g_variant_get_string(val, NULL), isnew); if (isnew) { _update_changes_of_field(view, key, "", g_variant_get_string(val, NULL)); } } else { g_warning("Value is neither string nor boxed!"); } } } g_debug("Adding fields done"); } struct _add_field_pack { struct ContactViewData *view; const char *name; const char *value; int isnew; }; static void _add_field_type_cb(GError *error, char *type, gpointer data) { struct _add_field_pack *pack = data; struct ContactFieldData *fd = malloc(sizeof(struct ContactFieldData)); if (error || !type) { type = strdup("generic"); } if (!fd) { g_critical("Failed allocating field data!"); return; } fd->name = strdup(pack->name); fd->value = strdup(pack->value); fd->field_button = NULL; fd->value_entry = NULL; fd->slide_buttons = NULL; fd->view = pack->view; fd->isnew = pack->isnew; fd->type = strdup(type); fd->edit_on = 0; if (fd->isnew) { fd->item = elm_genlist_item_prepend(pack->view->fields, &itc, fd, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_bring_in(fd->item, ELM_GENLIST_ITEM_SCROLLTO_IN); } else { fd->item = elm_genlist_item_append(pack->view->fields, &itc, fd, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); } free(data); /*FIXME: free type */ } static void _add_field(struct ContactViewData *view, const char *name, const char *value, int isnew) { struct _add_field_pack *pack; /*FIXME: check success*/ pack = malloc(sizeof (*pack)); pack->view = view; pack->name = name; pack->value = value; pack->isnew = isnew; g_debug("Adding field <%s> with value '%s' to list", name, value); phoneui_utils_contacts_field_type_get(name, _add_field_type_cb, pack); } static void _delete_cb(struct View *view, Evas_Object * win, void *event_info) { (void)win; (void)event_info; g_debug("_delete_cb"); contact_view_deinit((struct ContactViewData *)view); free(view); g_debug("_delete_cb DONE"); } static void _destroy_cb(struct View *_view) { struct ContactViewData *view = (struct ContactViewData *)_view; g_debug("_destroy_cb"); phoneui_info_unregister_single_contact_changes(view->entryid, _contact_changed_handler); if (view->properties) g_hash_table_destroy(view->properties); if (view->changes) g_hash_table_destroy(view->changes); g_hash_table_remove(contactviews, view->path); g_debug("_destroy_cb DONE"); } static void _contact_changed_handler(void *data, int entryid, enum PhoneuiInfoChangeType type) { (void) entryid; struct ContactViewData *view; view = data; if (type == PHONEUI_INFO_CHANGE_DELETE) { contact_view_deinit(view); } else if (type == PHONEUI_INFO_CHANGE_UPDATE) { phoneui_utils_contact_get(view->path, _load_cb, view); } } static void _field_unselected_cb(void *data, Evas_Object *obj, void *event_info) { struct ContactFieldData *fd = (struct ContactFieldData *) elm_object_item_data_get(event_info); (void) obj; (void) data; if (!fd->edit_on) { return; } char *s = ui_utils_entry_utf8_get(fd->value_entry); _change_value(fd, s); free(s); elm_entry_editable_set(fd->value_entry, EINA_FALSE); fd->edit_on = 0; } libphone-ui-shr-0.1+git20130901/src/view/contact-view.h000066400000000000000000000034451221067027500223030ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _CONTACT_VIEW_H #define _CONTACT_VIEW_H #include #include "ui-utils.h" struct ContactViewData { struct View parent; Evas_Object *pager, *pager_layout; Evas_Object *fields, *name, *number, *photo; Evas_Object *btn_call, *btn_sms, *btn_delete, *btn_addfield; Evas_Object *btn_save, *btn_cancel; char *path; int entryid; GHashTable *properties, *changes; }; struct ContactFieldData { char *type; char *name; char *value; Evas_Object *field_button, *value_entry, *slide_buttons; Elm_Object_Item *item; struct ContactViewData *view; /*temporary*/ Evas_Object *edit_widget; int isnew; /* hack because the signals from edje don't work */ int edit_on; }; int contact_view_init(char *path, GHashTable *options); int contact_view_is_init(const char *path); void contact_view_deinit(struct ContactViewData *view); void contact_view_show(const char *path); void contact_view_hide(const char *path); #endif libphone-ui-shr-0.1+git20130901/src/view/dialer-view.c000066400000000000000000000366401221067027500221060ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * David Kozub * Christ van Willegen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include #include #include "views.h" #include "widget/elm_keypad.h" #include "common-utils.h" #include "util/ui-utils.h" #include "contact-list-common.h" /*TODO: remove the many hacks here * Fix the scale hack, shouldn't exist :| */ #include "phoneui-shr.h" void fill_suggest(int *contacts, GList *suggest_data); static void _process_entry(void *_entry, void *_data); #define MAX_SUGGEST 7 struct DialerViewData { struct View parent; GList *suggest_data; int contacts; char number[65]; /*FIXME this hackish copy */ char suggestions[MAX_SUGGEST][65]; int length; /*At least while this hack exists, cache length */ Evas_Object *keypad, *bt_options, *bt_suggest, *bt_call, *bt_exit, *hv, *hv2, *bx, *bx2, *bt_save, *bt_message, *bt_suggest_contact[MAX_SUGGEST]; Evas_Object *text_number, *text_number_info, *delete_text_icon, *delete_text_button; }; static struct DialerViewData view; static void _dialer_number_update(); static int _dialer_number_clear(); static void _dialer_delete_clicked_cb(void *_data, Evas_Object * o, void *event_info); static void _dialer_keypad_clicked_cb(void *data, Evas_Object * obj, void *event_info); static void _dialer_exit_clicked_cb(void *data, Evas_Object * obj, void *event_info); static void _dialer_number_clicked_cb(void *_data, Evas_Object * o, const char *emission, const char *source); static void _dialer_suggest_clicked_cb(void *data, Evas_Object * obj, void *event_info); static void _dialer_options_clicked_cb(void *data, Evas_Object * obj, void *event_info); static void _dialer_call_clicked_cb(void *data, Evas_Object * obj, void *event_info); static void _dialer_suggest_contact_clicked_cb(void *data, Evas_Object * obj, void *event_info); static void _dialer_contact_add_clicked_cb(void *data, Evas_Object * obj, void *event_info); static void _dialer_message_clicked_cb(void *data, Evas_Object * obj, void *event_info); static void _dialer_call_initiated_cb(GError *error, int call_id, void *userdata); static void _delete_cb(struct View *view, Evas_Object * win, void *event_info); int dialer_view_init() { g_debug("Initializing the dialer view"); Evas_Object *win; int ret; ret = ui_utils_view_init(VIEW_PTR(view), ELM_WIN_BASIC, D_("Dialer"), NULL, NULL, NULL); if (ret) { g_critical("Failed to init dialer view"); return ret; } win = ui_utils_view_window_get(VIEW_PTR(view)); ui_utils_view_delete_callback_set(VIEW_PTR(view), _delete_cb); ui_utils_view_layout_set(VIEW_PTR(view), phoneui_theme, "phoneui/dialer/dialer"); view.text_number = elm_label_add(win); elm_object_text_set(view.text_number, ""); evas_object_size_hint_align_set(view.text_number, 0.0, 0.5); ui_utils_view_swallow(VIEW_PTR(view), "text_number", view.text_number); evas_object_show(view.text_number); view.text_number_info = elm_label_add(win); elm_object_text_set(view.text_number_info, D_("Click to open contact list.")); ui_utils_view_swallow(VIEW_PTR(view), "text_number_info", view.text_number_info); evas_object_show(view.text_number_info); view.delete_text_icon = elm_icon_add(win); evas_object_size_hint_aspect_set(view.delete_text_icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); elm_image_file_set(view.delete_text_icon, DELETE_TEXT_ICON, NULL); view.delete_text_button = elm_button_add(win); elm_object_content_set(view.delete_text_button, view.delete_text_icon); evas_object_smart_callback_add(view.delete_text_button, "clicked", _dialer_delete_clicked_cb, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_delete", view.delete_text_button); evas_object_show(view.delete_text_button); evas_object_show(view.delete_text_icon); view.keypad = (Evas_Object *) elm_keypad_add(win); evas_object_smart_callback_add(view.keypad, "clicked", _dialer_keypad_clicked_cb, NULL); ui_utils_view_swallow(VIEW_PTR(view), "keypad", view.keypad); evas_object_show(view.keypad); view.bt_exit = elm_button_add(win); elm_object_text_set(view.bt_exit, D_("Close")); evas_object_smart_callback_add(view.bt_exit, "clicked", _dialer_exit_clicked_cb, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_exit", view.bt_exit); evas_object_show(view.bt_exit); view.bt_suggest = elm_button_add(win); elm_object_text_set(view.bt_suggest, D_("Suggest")); evas_object_smart_callback_add(view.bt_suggest, "clicked", _dialer_suggest_clicked_cb, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_suggest", view.bt_suggest); evas_object_show(view.bt_suggest); view.bt_options = elm_button_add(win); elm_object_text_set(view.bt_options, D_("More")); evas_object_smart_callback_add(view.bt_options, "clicked", _dialer_options_clicked_cb, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_options", view.bt_options); evas_object_show(view.bt_options); view.bt_call = elm_button_add(win); elm_object_text_set(view.bt_call, D_("Call")); evas_object_smart_callback_add(view.bt_call, "clicked", _dialer_call_clicked_cb, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_call", view.bt_call); evas_object_show(view.bt_call); edje_object_signal_callback_add(ui_utils_view_layout_get(VIEW_PTR(view)), "click", "number", _dialer_number_clicked_cb, NULL); view.contacts = 0; view.suggest_data = NULL; fill_suggest(&view.contacts, view.suggest_data); /* Suggest */ view.hv2 = elm_hover_add(win); elm_hover_parent_set(view.hv2, win); elm_hover_target_set(view.hv2, view.bt_suggest); view.bx2 = elm_box_add(win); elm_box_horizontal_set(view.bx2, 0); elm_box_homogeneous_set(view.bx2, 1); evas_object_show(view.bx2); int iSuggest; for (iSuggest = MAX_SUGGEST - 1; iSuggest >= 0; --iSuggest) { view.bt_suggest_contact[iSuggest] = elm_button_add(win); elm_object_text_set(view.bt_suggest_contact[iSuggest], D_("Contact")); evas_object_size_hint_min_set(view.bt_suggest_contact[iSuggest], 130, 80); evas_object_smart_callback_add(view.bt_suggest_contact[iSuggest], "clicked", _dialer_suggest_contact_clicked_cb, GINT_TO_POINTER(iSuggest)); evas_object_show(view.bt_suggest_contact[iSuggest]); elm_box_pack_end(view.bx2, view.bt_suggest_contact[iSuggest]); } elm_object_part_content_set(view.hv2, "top", view.bx2); /* Options */ view.hv = elm_hover_add(win); elm_hover_parent_set(view.hv, win); elm_hover_target_set(view.hv, view.bt_options); view.bx = elm_box_add(win); elm_box_horizontal_set(view.bx, 0); elm_box_homogeneous_set(view.bx, 1); evas_object_show(view.bx); view.bt_save = elm_button_add(win); elm_object_text_set(view.bt_save, D_("Save")); evas_object_size_hint_min_set(view.bt_save, 130, 80); evas_object_smart_callback_add(view.bt_save, "clicked", _dialer_contact_add_clicked_cb, NULL); evas_object_show(view.bt_save); elm_box_pack_end(view.bx, view.bt_save); view.bt_message = elm_button_add(win); elm_object_text_set(view.bt_message, D_("Send SMS")); evas_object_size_hint_min_set(view.bt_message, 130, 80); evas_object_smart_callback_add(view.bt_message, "clicked", _dialer_message_clicked_cb, NULL); evas_object_show(view.bt_message); elm_box_pack_end(view.bx, view.bt_message); elm_object_part_content_set(view.hv, "top", view.bx); view.number[0] = '\0'; view.length = 0; return 0; } int dialer_view_is_init() { return ui_utils_view_is_init(VIEW_PTR(view)); } void fill_suggest(int *contacts, GList *suggest_data) { phoneui_utils_contacts_get(contacts, _process_entry, suggest_data); } static void _process_entry(void *_entry, void *_data) { (void) _data; GHashTable *entry = (GHashTable *)_entry; view.suggest_data = g_list_prepend(view.suggest_data, entry); } void dialer_view_deinit() { ui_utils_view_deinit(VIEW_PTR(view)); evas_object_smart_callback_del(view.keypad, "clicked", _dialer_keypad_clicked_cb); evas_object_del(view.keypad); evas_object_del(view.bt_suggest); evas_object_del(view.bt_options); evas_object_del(view.bt_call); evas_object_del(view.bt_exit); evas_object_del(view.bt_message); evas_object_del(view.bt_save); int iSuggest; for (iSuggest = 0; iSuggest < MAX_SUGGEST; ++iSuggest) { evas_object_del(view.bt_suggest_contact[iSuggest]); } evas_object_del(view.bx); evas_object_del(view.bx2); evas_object_del(view.hv); evas_object_del(view.hv2); evas_object_del(view.text_number); evas_object_del(view.text_number_info); evas_object_del(view.delete_text_button); g_list_free(view.suggest_data); } void dialer_view_show() { evas_object_hide(view.hv); evas_object_hide(view.hv2); ui_utils_view_show(VIEW_PTR(view)); } void dialer_view_hide() { _dialer_number_clear(); ui_utils_view_hide(VIEW_PTR(view)); } static void _delete_cb(struct View *view, Evas_Object * win, void *event_info) { (void)win; (void)event_info; (void)view; dialer_view_hide(); } static void _dialer_suggest_clicked_cb(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; int iSuggest; for (iSuggest = 0; iSuggest < MAX_SUGGEST; ++iSuggest) { elm_object_text_set(view.bt_suggest_contact[iSuggest], D_("")); evas_object_hide(view.bt_suggest_contact[iSuggest]); } GList *it = g_list_first(view.suggest_data); int cSuggest = 0; while (it && cSuggest < MAX_SUGGEST) { GHashTable *properties = (GHashTable *) it->data; if (properties) { GVariant *tmp; const gchar *sPhone = NULL; const gchar *sName = NULL; tmp = g_hash_table_lookup(properties, "Phone"); if(tmp) { sPhone = g_variant_get_string(tmp, NULL); } else { tmp = g_hash_table_lookup(properties, "Mobile phone"); if(tmp) { sPhone = g_variant_get_string(tmp, NULL); } else { tmp = g_hash_table_lookup(properties, "Home phone"); if(tmp) { sPhone = g_variant_get_string(tmp, NULL); } else { tmp = g_hash_table_lookup(properties, "Work phone"); if(tmp) { sPhone = g_variant_get_string(tmp, NULL); } } } } if (sPhone) { if (strstr(sPhone, view.number) != NULL) { strcpy(view.suggestions[cSuggest], sPhone); tmp = g_hash_table_lookup(properties, "Name"); if(tmp) { sName = g_variant_get_string(tmp, NULL); } } } if (sName) { elm_object_text_set(view.bt_suggest_contact[cSuggest], sName); evas_object_show(view.bt_suggest_contact[cSuggest]); ++cSuggest; } } it = g_list_next(it); } if (cSuggest) { evas_object_show(view.hv2); } } static void _dialer_options_clicked_cb(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; evas_object_show(view.hv); } static void _dialer_exit_clicked_cb(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; dialer_view_hide(); } static void _dialer_suggest_contact_clicked_cb(void *data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; int contact = GPOINTER_TO_INT(data); strcpy(view.number, view.suggestions[contact]); view.length = strlen(view.number); _dialer_number_update(); evas_object_hide(view.hv2); } static void _dialer_contact_add_clicked_cb(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; GHashTable *contact = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); g_hash_table_insert(contact, "Phone", g_variant_ref_sink(g_variant_new_string(view.number))); phoneui_contacts_contact_new(contact); g_hash_table_destroy(contact); dialer_view_hide(); } static void _dialer_call_clicked_cb(void *data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; if (*view.number) { phoneui_utils_dial(view.number, _dialer_call_initiated_cb, data); } } static void _dialer_message_clicked_cb(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; GHashTable *options = g_hash_table_new(g_str_hash, g_str_equal); g_hash_table_insert(options, "Phone", g_variant_ref_sink(g_variant_new_string(view.number))); phoneui_messages_message_new(options); //g_hash_table_destroy(options); dialer_view_hide(); } static void _dialer_keypad_clicked_cb(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; char input = ((char *) event_info)[0]; if (view.length < 64) { view.number[view.length] = input; view.number[view.length + 1] = '\0'; view.length++; _dialer_number_update(); } } static void _dialer_delete_clicked_cb(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; int length = view.length; if (length) { view.number[length - 1] = '\0'; view.length--; _dialer_number_update(); } } static void _dialer_number_clicked_cb(void *data, Evas_Object * obj, const char *emission, const char *source) { (void) data; (void) obj; (void) emission; (void) source; if (!*view.number) { phoneui_contacts_show(); dialer_view_hide(); } } /* FIXME: haven't reviewd this yet, though looks too hackish to believe */ static void _dialer_number_update() { int length = view.length; char *number = view.number; static char tmp[73]; if (length < 7) elm_object_scale_set(view.text_number, 4.0); else if (length < 9) elm_object_scale_set(view.text_number, 3.0); else if (length < 24) { elm_object_scale_set(view.text_number, 2.0); if (length > 12) { tmp[0] = 0; strncat(tmp, number, 12); strcat(tmp, "
"); strcat(tmp, number + 12); number = tmp; } } else { elm_object_scale_set(view.text_number, 1.0); if (length > 52) { tmp[0] = 0; strncat(tmp, number, 26); strcat(tmp, "
"); strncat(tmp, number + 26, 26); strcat(tmp, "
"); strcat(tmp, number + 52); number = tmp; } else if (length > 26) { tmp[0] = 0; strncat(tmp, number, 26); strcat(tmp, "
"); strcat(tmp, number + 26); number = tmp; } } elm_object_text_set(view.text_number, number); if (length == 0) { edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "number_empty", "elm"); } else { edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "number_available", "elm"); } } static int _dialer_number_clear() { view.number[0] = '\0'; view.length = 0; _dialer_number_update(); return 0; } static void _dialer_call_initiated_cb(GError * error, int call_id, void *userdata) { (void) userdata; (void) call_id; if (error) { g_warning("Cannot initiate call: (%d) %s", error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Cannot initiate call."), error); } else dialer_view_hide(); } libphone-ui-shr-0.1+git20130901/src/view/dialer-view.h000066400000000000000000000020101221067027500220730ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _DIALER_VIEW_H #define _DIALER_VIEW_H void dialer_view_show(); void dialer_view_hide(); int dialer_view_init(); void dialer_view_deinit(); int dialer_view_is_init(); #endif libphone-ui-shr-0.1+git20130901/src/view/dialog-view.c000066400000000000000000000056161221067027500221040ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Sebastian Krzyszkowiak * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "views.h" #include #include #include "phoneui-shr.h" struct DialogViewData { struct Window *win; Evas_Object *bt_close; int type; }; static void dialog_view_close_clicked(void *_data, Evas_Object * obj, void *event_info); void * dialog_view_show(struct Window *win, void *_options) { GHashTable *options = (GHashTable *) _options; struct DialogViewData *data; g_debug("dialog_view_show()"); // Check if type was provided gboolean type_exists = g_hash_table_lookup_extended(options, "type", NULL, NULL); if (!type_exists) { g_critical("Tried to pass a non-exisiting type (%s:%d)", __FUNCTION__, __LINE__); return NULL; } data = calloc(1, sizeof(struct DialogViewData)); data->win = win; data->type = GPOINTER_TO_INT(g_hash_table_lookup(options, "type")); window_layout_set(win, phoneui_theme, "phoneui/notification/dialog"); if (data->type == PHONEUI_DIALOG_MESSAGE_STORAGE_FULL) window_text_set(win, "content", D_ ("Your SIM storage is full. Please delete some messages or you may not receive them anymore!")); else if (data->type == PHONEUI_DIALOG_SIM_NOT_PRESENT) window_text_set(win, "content", D_ ("GSM is not available, because no SIM card is present.")); else window_text_set(win, "content", D_("Unknown message.")); data->bt_close = elm_button_add(win->win); elm_object_text_set(data->bt_close, D_("Close")); evas_object_smart_callback_add(data->bt_close, "clicked", dialog_view_close_clicked, data); window_swallow(win, "button_close", data->bt_close); evas_object_show(data->bt_close); window_show(win); return data; } void dialog_view_hide(void *_data) { struct DialogViewData *data = (struct DialogViewData *) _data; evas_object_del(data->bt_close); } static void dialog_view_close_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; struct DialogViewData *data = (struct DialogViewData *) _data; window_destroy(data->win, NULL); } libphone-ui-shr-0.1+git20130901/src/view/idle-view.c000066400000000000000000000270561221067027500215640ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Lukas Märdian * Sebastian Krzyszkowiak * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include #include #include #include #include #include "phoneui-shr.h" #include "views.h" #include "idle-view.h" #include "util/ui-utils.h" /*FIXME: no need to pass the screen handle all the time since we only allow * one idle screen at a time */ struct IdleScreenViewData { struct View parent; Evas_Object *wallpaper; }; /* No need to pass the active window everywhere, as we don't allow multiple windows. */ static struct IdleScreenViewData view; static void _set_edje_size(); static void _resource_status(void *data, const char *resource, gboolean state, GHashTable *properties); static void _capacity_change(void *data, int capacity); static void _network_status(void *data, GHashTable *properties); static void _pdp_context_status(void *data, FreeSmartphoneGSMContextStatus status, GHashTable *properties); static void _signal_strength(void *data, int strength); static void _backlight_power(void *data, int state); static void _profile_change(void *data, const char *profile); static void _missed_calls(void *data, int amount); static void _unread_messages(void *data, int amount); static void _unfinished_tasks(void *data, int amount); static void _update_counter(const char *name, const char *label_name, int count); static void _update_signal_strength(int strength); static void _delete_cb(struct View *view, Evas_Object * win, void *event_info) { (void) view; (void) win; (void) event_info; idle_screen_view_hide(); } void idle_screen_view_show() { ui_utils_view_show(VIEW_PTR(view)); phoneui_info_request_backlight_power(_backlight_power, NULL); } void idle_screen_view_hide() { ui_utils_view_hide(VIEW_PTR(view)); edje_object_animation_set(ui_utils_view_layout_get(VIEW_PTR(view)), EINA_FALSE); edje_object_play_set(ui_utils_view_layout_get(VIEW_PTR(view)), EINA_FALSE); _set_edje_size(); } void idle_screen_view_toggle() { if (ui_utils_view_is_visible(VIEW_PTR(view))) { idle_screen_view_hide(); } else { idle_screen_view_show(); } } int idle_screen_view_init() { Evas_Object *win; int ret; ret = ui_utils_view_init(VIEW_PTR(view), ELM_WIN_BASIC, D_("Idle_Screen"), NULL, NULL, NULL); if (ret) { g_critical("Failed to init idle screen"); return ret; } ui_utils_view_delete_callback_set(VIEW_PTR(view), _delete_cb); ui_utils_view_layout_set(VIEW_PTR(view), IDLE_SCREEN_THEME, "phoneui/idle_screen/idle_screen"); edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "clock_init", ""); win = ui_utils_view_window_get(VIEW_PTR(view)); _set_edje_size(); elm_win_fullscreen_set(win, 1); elm_win_layer_set(win, 200); elm_win_keyboard_mode_set(win, ELM_WIN_KEYBOARD_OFF); evas_object_show(view.wallpaper); edje_object_signal_callback_add(ui_utils_view_layout_get(VIEW_PTR(view)), "unlockScreen", "slider", idle_screen_view_hide, NULL); phoneui_info_register_and_request_resource_status(_resource_status, NULL); phoneui_info_register_and_request_network_status(_network_status, NULL); phoneui_info_register_and_request_signal_strength(_signal_strength, NULL); phoneui_info_register_backlight_power(_backlight_power, NULL); phoneui_info_register_and_request_pdp_context_status(_pdp_context_status, NULL); phoneui_info_register_and_request_profile_changes(_profile_change, NULL); phoneui_info_register_and_request_capacity_changes(_capacity_change, NULL); phoneui_info_register_and_request_missed_calls(_missed_calls, NULL); phoneui_info_register_and_request_unread_messages(_unread_messages, NULL); phoneui_info_register_and_request_unfinished_tasks(_unfinished_tasks, NULL); return 0; } void idle_screen_view_deinit() { evas_object_del(view.wallpaper); ui_utils_view_deinit(VIEW_PTR(view)); } int idle_screen_view_is_init() { return ui_utils_view_is_init(VIEW_PTR(view)); } void idle_screen_view_update_call(enum PhoneuiCallState state, const char *name, const char *number) { if (!idle_screen_view_is_init()) return; switch (state) { case PHONEUI_CALL_STATE_INCOMING: edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "", "activate_incomingCall"); ui_utils_view_text_set(VIEW_PTR(view), "incomingCallHeading", "Incoming Call:"); ui_utils_view_text_set(VIEW_PTR(view), "incomingCallLine1", name); ui_utils_view_text_set(VIEW_PTR(view), "incomingCallLine2", number); break; case PHONEUI_CALL_STATE_ACTIVE: edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "", "activate_incomingCall"); ui_utils_view_text_set(VIEW_PTR(view), "incomingCallHeading", "Active Call:"); ui_utils_view_text_set(VIEW_PTR(view), "incomingCallLine1", name); ui_utils_view_text_set(VIEW_PTR(view), "incomingCallLine2", number); break; case PHONEUI_CALL_STATE_RELEASE: edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "", "deactivate_incomingCall"); ui_utils_view_text_set(VIEW_PTR(view), "incomingCallHeading", ""); ui_utils_view_text_set(VIEW_PTR(view), "incomingCallLine1", ""); ui_utils_view_text_set(VIEW_PTR(view), "incomingCallLine2", ""); break; case PHONEUI_CALL_STATE_HELD: case PHONEUI_CALL_STATE_OUTGOING: /*FIXME: implement */ break; } } void idle_screen_view_update_alarm(const int alarm) { if (idle_screen_view_is_init()) { if (alarm > 0) { edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "alarm,active", "resourceStateChange"); } else { edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "alarm,default", "resourceStateChange"); } } } static void _set_edje_size() { Evas_Object *win; Ecore_X_Window root_window; int width, height; win = ui_utils_view_window_get(VIEW_PTR(view)); /* get screensize */ root_window = ecore_x_window_root_get (elm_win_xwindow_get (win)); ecore_x_window_size_get (root_window, &width, &height); if (height <= 480) { edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "set", "hvga"); } else { edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "set", "default"); } } static void _resource_status(void *data, const char *resource, gboolean state, GHashTable *properties) { (void) properties; (void) data; const char *edje_state; g_debug("Resource Status: %s --> %s", resource, state ? "ON" : "OFF"); if (state) { edje_state = "active"; } else { edje_state = "default"; if (strcmp(resource, "GSM") == 0) { ui_utils_view_text_set(VIEW_PTR(view), "gsmProvider", ""); _update_signal_strength(0); } } char resource_state[32]; snprintf(resource_state, 32, "%s,%s", resource, edje_state); edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), resource_state, "resourceStateChange"); } static void _capacity_change(void *data, int capacity) { (void) data; char buf[16]; g_debug("Capacity is now %d", capacity); snprintf(buf, 16, "%d", capacity); edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), buf, "batteryPowerChange"); } static void _profile_change(void *data, const char *profile) { (void) data; g_debug("Profile changed to '%s'", profile); ui_utils_view_text_set(VIEW_PTR(view), "profile", profile); } static void _signal_strength(void *data, int strength) { (void) data; _update_signal_strength(strength); } static void _pdp_context_status(void *data, FreeSmartphoneGSMContextStatus status, GHashTable *properties) { (void) data; (void) properties; g_debug("PDP ContextStatus: %s", free_smartphone_gsm_context_status_to_string(status)); } static void _network_status(void *data, GHashTable *properties) { (void) data; GVariant *v; const char *s = ""; const char *sig = ""; /* special case when ogsmd disappears from the bus (NameOwnerChange) */ if (properties == NULL) { _update_signal_strength(0); ui_utils_view_text_set(VIEW_PTR(view), "gsmProvider", s); ui_utils_view_text_set(VIEW_PTR(view), "pdpStatus", sig); return; } v = g_hash_table_lookup(properties, "display"); if (v) { s = g_variant_get_string(v, NULL); } if (!s || !*s) { v = g_hash_table_lookup(properties, "provider"); if (v) { s = g_variant_get_string(v, NULL); } } g_debug("provider is '%s'", s); ui_utils_view_text_set(VIEW_PTR(view), "gsmProvider", s); v = g_hash_table_lookup(properties, "strength"); if (v) { if (g_variant_is_of_type(v, G_VARIANT_TYPE_INT32)) { _update_signal_strength(g_variant_get_int32(v)); } else { g_warning("ignoring signal strength which is not int32"); } } v = g_hash_table_lookup(properties, "pdp.registration"); if (v) { s = g_variant_get_string(v, NULL); if (!strcmp(s, "home") || !strcmp(s, "roaming")) { v = g_hash_table_lookup(properties, "act"); if (v) { s = g_variant_get_string(v, NULL); g_debug("PDP Status: %s", s); if (strcmp(s, "EDGE") == 0) { sig = "E"; } else if (strcmp(s, "UMTS") == 0) { sig = "3G"; } else if (strcmp(s, "HSDPA") == 0 || strcmp(s, "HSUPA") == 0 || strcmp(s, "HSDPA/HSUPA") == 0) { sig = "H"; } else { sig = "G"; } } } } ui_utils_view_text_set(VIEW_PTR(view), "pdpStatus", sig); } static void _missed_calls(void *data, int amount) { (void) data; _update_counter("missedCalls", "missedCallsLabel", amount); } static void _unread_messages(void *data, int amount) { (void) data; _update_counter("unreadMessages", "unreadMessagesLabel", amount); } static void _unfinished_tasks(void *data, int amount) { (void) data; _update_counter("unfinishedTasks", "unfinishedTasksLabel", amount); } static void _backlight_power(void *data, int state) { (void) data; g_debug("Backlight power %d", state); if (ui_utils_view_is_visible(VIEW_PTR(view))) { if (state) { edje_object_play_set(ui_utils_view_layout_get(VIEW_PTR(view)), EINA_TRUE); edje_object_animation_set(ui_utils_view_layout_get(VIEW_PTR(view)), EINA_TRUE); } else { edje_object_animation_set(ui_utils_view_layout_get(VIEW_PTR(view)), EINA_FALSE); edje_object_play_set(ui_utils_view_layout_get(VIEW_PTR(view)), EINA_FALSE); } } } static void _update_signal_strength(int strength) { char buf[16]; g_debug("signal strength is %d", strength); snprintf(buf, 16, "%d", strength); edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), buf, "gsmSignalChange"); } static void _update_counter(const char *name, const char *label_name, int count) { char buf[16]; snprintf(buf, 16, "%d", count); if (count > 0) { edje_object_signal_emit (ui_utils_view_layout_get(VIEW_PTR(view)), "show", name); } else { edje_object_signal_emit (ui_utils_view_layout_get(VIEW_PTR(view)), "hide", name); } ui_utils_view_text_set(VIEW_PTR(view), label_name, buf); } libphone-ui-shr-0.1+git20130901/src/view/idle-view.h000066400000000000000000000025511221067027500215620ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _IDLE_VIEW_H #define _IDLE_VIEW_H #include void idle_screen_view_show(); void idle_screen_view_hide(); void idle_screen_view_toggle(); int idle_screen_view_is_init(); int idle_screen_view_init(); void idle_screen_view_deinit(); void idle_screen_view_update_unfinished_tasks(const int amount); void idle_screen_view_update_call(enum PhoneuiCallState state, const char *name, const char *number); void idle_screen_view_update_alarm(const int alarm); #endif libphone-ui-shr-0.1+git20130901/src/view/loading-view.c000066400000000000000000000020011221067027500222430ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ void messages_loading_show(struct MessagesWindow *win) { window_layout_set(win, phoneui_theme, "phoneui/messages/loading"); } libphone-ui-shr-0.1+git20130901/src/view/message-list-view.c000066400000000000000000000670311221067027500232410ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Martin Jansa * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include #include #include #include #include #include "phoneui-shr.h" #include "views.h" #include "common-utils.h" #include "ui-utils.h" #include "message-list-view.h" #define MSG_PER_UPDATE 6 #define MSG_PAGE_SIZE MSG_PER_UPDATE*5 struct MessageListViewData { struct View view; char *path; unsigned int msg_start; unsigned int msg_end; Evas_Object *list, *hv, *bx, *call_bt, *answer_bt, *top_pb, *bottom_pb, *forward_bt, *right_bt; Elm_Object_Item *latest_it; Eina_Bool scroll_lock; }; static struct MessageListViewData view; static Elm_Genlist_Item_Class itc; typedef enum _InsertMode { LIST_INSERT_APPEND, LIST_INSERT_PREPEND, LIST_INSERT_SORTED } InsertMode; static void _process_messages(GError *error, GHashTable **messages, int count, gpointer data); static void _process_message_get(GError* error, GHashTable* message, gpointer data); static void _process_message(gpointer _message, gpointer _data); static void _remove_message(const char *path); static void _add_message(const char *path); static void _message_changed_cb(void *data, const char *path, enum PhoneuiInfoChangeType type); static void _hide_cb(struct View *view); static void _delete_cb(struct View *data, Evas_Object *obj, void *event_info); static void _new_clicked(void *_data, Evas_Object * obj, void *event_info); static void _show_clicked(void *_data, Evas_Object * obj, void *event_info); static void _answer_clicked(void *_data, Evas_Object * obj, void *event_info); static void _call_clicked(void *_data, Evas_Object *obj, void *event_info); static void _forward_clicked(void *_data, Evas_Object *obj, void *event_info); static void _edit_clicked(void *_data, Evas_Object *obj, void *event_info); static void _delete_clicked(void *_data, Evas_Object * obj, void *event_info); static void _hover_bt_1(void *_data, Evas_Object * obj, void *event_info); static Eina_Bool _release_scroll_lock(void *_data); static void _scroll_bottom(void *_data, Evas_Object * obj, void *event_info); static void _scroll_top(void *_data, Evas_Object * obj, void *event_info); static void _selected_changed(void *_data, Evas_Object * obj, void *event_info); static char *gl_text_get(void *data, Evas_Object * obj, const char *part); static Evas_Object * gl_content_get(void *data, Evas_Object * obj, const char *part); static Eina_Bool gl_state_get(void *data, Evas_Object *obj, const char *part); static void gl_del(void *data, Evas_Object * obj); int message_list_view_init() { Evas_Object *win, *box, *obj; int ret; g_debug("Initing message list view"); ret = ui_utils_view_init(VIEW_PTR(view), ELM_WIN_BASIC, D_("Messages"), NULL, _hide_cb, NULL); if (ret) { g_critical("Failed to init the message list view"); return ret; } win = ui_utils_view_window_get(VIEW_PTR(view)); ui_utils_view_delete_callback_set(VIEW_PTR(view), _delete_cb); ui_utils_view_layout_set(VIEW_PTR(view), phoneui_theme, "phoneui/messages/list"); elm_theme_extension_add(NULL, phoneui_theme); obj = elm_button_add(win); elm_object_text_set(obj, D_("New")); evas_object_smart_callback_add(obj, "clicked", _new_clicked, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_new", obj); evas_object_show(obj); // Options button with hover view.hv = elm_hover_add(win); obj = elm_button_add(win); elm_object_text_set(obj, D_("Options")); evas_object_smart_callback_add(obj, "clicked", _hover_bt_1, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_options", obj); evas_object_show(obj); elm_hover_parent_set(view.hv, win); elm_hover_target_set(view.hv, obj); box = elm_box_add(win); elm_box_horizontal_set(box, 0); elm_box_homogeneous_set(box, 1); evas_object_show(box); obj = elm_button_add(win); elm_object_text_set(obj, D_("Answer")); evas_object_size_hint_min_set(obj, 130, 80); evas_object_smart_callback_add(obj, "clicked", _answer_clicked, NULL); evas_object_show(obj); elm_box_pack_end(box, obj); view.answer_bt = obj; obj = elm_button_add(win); elm_object_text_set(obj, D_("Call")); evas_object_size_hint_min_set(obj, 130, 80); evas_object_smart_callback_add(obj, "clicked", _call_clicked, NULL); evas_object_show(obj); elm_box_pack_end(box, obj); view.call_bt = obj; obj = elm_button_add(win); elm_object_text_set(obj, D_("Forward")); evas_object_size_hint_min_set(obj, 130, 80); evas_object_smart_callback_add(obj, "clicked", _forward_clicked, NULL); evas_object_show(obj); elm_box_pack_end(box, obj); view.forward_bt = obj; obj = elm_button_add(win); elm_object_text_set(obj, D_("Delete")); evas_object_size_hint_min_set(obj, 130, 80); evas_object_smart_callback_add(obj, "clicked", _delete_clicked, NULL); evas_object_show(obj); elm_box_pack_end(box, obj); elm_object_part_content_set(view.hv, "top", box); obj = elm_button_add(win); elm_object_text_set(obj, D_("Show")); evas_object_smart_callback_add(obj, "clicked", _show_clicked, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_show", obj); evas_object_show(obj); view.right_bt = obj; view.list = elm_genlist_add(win); ui_utils_view_swallow(VIEW_PTR(view), "list", view.list); itc.item_style = "message"; itc.func.text_get = gl_text_get; itc.func.content_get = gl_content_get; itc.func.state_get = gl_state_get; itc.func.del = gl_del; evas_object_show(view.list); view.scroll_lock = FALSE; evas_object_smart_callback_add(view.list, "scroll,edge,bottom", _scroll_bottom, NULL); evas_object_smart_callback_add(view.list, "scroll,edge,top", _scroll_top, NULL); evas_object_smart_callback_add(view.list, "selected", _selected_changed, NULL); view.top_pb = elm_progressbar_add(win); elm_object_style_set(view.top_pb, "wheel"); elm_object_text_set(view.top_pb, D_("Loading...")); elm_progressbar_pulse(view.top_pb, EINA_TRUE); evas_object_size_hint_align_set(view.top_pb, EVAS_HINT_FILL, 0.5); evas_object_size_hint_weight_set(view.top_pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); ui_utils_view_swallow(VIEW_PTR(view), "loading_top_indicator", view.top_pb); evas_object_show(view.top_pb); view.bottom_pb = elm_progressbar_add(win); elm_object_style_set(view.bottom_pb, "wheel"); elm_object_text_set(view.bottom_pb, D_("Loading...")); elm_progressbar_pulse(view.bottom_pb, EINA_TRUE); evas_object_size_hint_align_set(view.bottom_pb, EVAS_HINT_FILL, 0.5); evas_object_size_hint_weight_set(view.bottom_pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); ui_utils_view_swallow(VIEW_PTR(view), "loading_bottom_indicator", view.bottom_pb); evas_object_show(view.bottom_pb); view.msg_start = 0; view.msg_end = 0; view.latest_it = NULL; edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "start_bottom_loading",""); phoneui_utils_messages_get_full("Timestamp", TRUE, 0, MSG_PAGE_SIZE, TRUE, NULL, _process_messages, GINT_TO_POINTER(LIST_INSERT_APPEND)); phoneui_info_register_message_changes(_message_changed_cb, NULL); return 0; } int message_list_view_is_init() { return ui_utils_view_is_init(VIEW_PTR(view)); } void message_list_view_deinit() { ui_utils_view_deinit(VIEW_PTR(view)); } void message_list_view_show() { evas_object_hide(view.hv); ui_utils_view_show(VIEW_PTR(view)); } void message_list_view_hide() { ui_utils_view_hide(VIEW_PTR(view)); } /* --- evas callbacks ------------------------------------------------------- */ static void _new_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) _data; (void) obj; (void) event_info; phoneui_messages_message_new(NULL); } static void _show_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) _data; (void) obj; (void) event_info; Elm_Object_Item *glit; GHashTable *message; GVariant *tmp; glit = elm_genlist_selected_item_get(view.list); if (glit) { g_debug("found the selected item"); message = (GHashTable *)elm_object_item_data_get(glit); if (!message) { g_warning("message has NO PROPERTIES!!!!"); return; } tmp = g_hash_table_lookup(message, "Path"); if (tmp) { phoneui_messages_message_show (g_variant_get_string(tmp, NULL)); } else { g_warning("No path for message found!!!"); } } } static void _answer_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) _data; (void) obj; (void) event_info; Elm_Object_Item *glit; GVariant *tmp; GHashTable *options, *message; evas_object_hide(view.hv); glit = elm_genlist_selected_item_get(view.list); if (glit) { message = (GHashTable *)elm_object_item_data_get(glit); options = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); tmp = g_hash_table_lookup(message, "Name"); if (tmp) { g_hash_table_insert(options, "Name", g_variant_ref(tmp)); } tmp = g_hash_table_lookup(message, "Phone"); if (tmp) { g_hash_table_insert(options, "Phone", g_variant_ref(tmp)); } phoneui_messages_message_new(options); } } static void _call_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; (void) _data; const char *number; GVariant *tmp; GHashTable *message; Elm_Object_Item *glit; evas_object_hide(view.hv); glit = elm_genlist_selected_item_get(view.list); if (glit) { message = (GHashTable *)elm_object_item_data_get(glit); tmp = g_hash_table_lookup(message, "Phone"); if (tmp) { number = g_variant_get_string(tmp, NULL); phoneui_utils_dial(number, NULL, NULL); } } } static void _forward_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) _data; (void) obj; (void) event_info; Elm_Object_Item *glit; GVariant *tmp; GHashTable *options, *message; evas_object_hide(view.hv); glit = elm_genlist_selected_item_get(view.list); if (glit) { message = (GHashTable *)elm_object_item_data_get(glit); options = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); tmp = g_hash_table_lookup(message, "Content"); if (tmp) { g_hash_table_insert(options, "Content", g_variant_ref(tmp)); } phoneui_messages_message_new(options); } } static void _edit_clicked(void *_data, Evas_Object * obj, void *event_info) { _forward_clicked(_data, obj, event_info); } static void _delete_result_cb(GError *error, gpointer data) { (void)data; if (error) { ui_utils_dialog(VIEW_PTR(view), D_("Deleting the message failed!"), DIALOG_OK, NULL, NULL); g_warning("Deleting the message failed: %s", error->message); return; } } static void _delete_confirm_cb(int result, void *data) { Elm_Object_Item *glit; GHashTable *message; GVariant *tmp; glit = (Elm_Object_Item *)data; if (result == DIALOG_YES) { message = (GHashTable *)elm_object_item_data_get(glit); tmp = g_hash_table_lookup(message, "Path"); if (tmp) { phoneui_utils_message_delete (g_variant_get_string(tmp, NULL), _delete_result_cb, NULL); } } } static void _delete_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) _data; (void) obj; (void) event_info; Elm_Object_Item *glit; g_debug("_delete_clicked()"); evas_object_hide(view.hv); glit = elm_genlist_selected_item_get(view.list); if (glit != NULL) { g_debug("found a selected row to delete..."); ui_utils_dialog(VIEW_PTR(view), D_("Really delete this message?"), DIALOG_YES|DIALOG_NO, _delete_confirm_cb, glit); } } static void _hover_bt_1(void *_data, Evas_Object * obj, void *event_info) { (void) _data; (void) obj; (void) event_info; evas_object_show(view.hv); } static Eina_Bool _release_scroll_lock(void *_data) { (void) _data; view.scroll_lock = FALSE; return ECORE_CALLBACK_CANCEL; } static void _scroll_bottom(void *_data, Evas_Object * obj, void *event_info) { (void) _data; (void) obj; (void) event_info; if (view.scroll_lock) return; view.scroll_lock = TRUE; elm_progressbar_pulse(view.bottom_pb, EINA_TRUE); edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "start_bottom_loading",""); view.latest_it = elm_genlist_last_item_get(view.list); phoneui_utils_messages_get_full("Timestamp", TRUE, view.msg_end, MSG_PER_UPDATE, TRUE, NULL, _process_messages, GINT_TO_POINTER(LIST_INSERT_APPEND)); } static void _scroll_top(void *_data, Evas_Object * obj, void *event_info) { (void) _data; (void) obj; (void) event_info; if (view.msg_start == 0) return; if (view.scroll_lock) return; view.scroll_lock = TRUE; elm_progressbar_pulse(view.top_pb, EINA_TRUE); edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "start_top_loading",""); unsigned int start = view.msg_start > MSG_PER_UPDATE ? view.msg_start-MSG_PER_UPDATE : 0; view.latest_it = elm_genlist_first_item_get(view.list); phoneui_utils_messages_get_full("Timestamp", TRUE, start, MSG_PER_UPDATE, TRUE, NULL, _process_messages, GINT_TO_POINTER(LIST_INSERT_SORTED)); } static void _selected_changed(void *_data, Evas_Object * obj, void *event_info) { (void)_data; (void)obj; GVariant *tmp; Eina_Bool new = EINA_FALSE; Eina_Bool out = EINA_FALSE; Elm_Object_Item *glit = (Elm_Object_Item *)event_info; if (!glit) return; GHashTable *message = (GHashTable *)elm_object_item_data_get(glit); if (!message) return; if ((tmp = g_hash_table_lookup(message, "Direction"))) { if (!strcmp(g_variant_get_string(tmp, NULL), "out")) { out = EINA_TRUE; evas_object_hide(view.answer_bt); evas_object_hide(view.call_bt); } else { evas_object_show(view.answer_bt); evas_object_show(view.call_bt); } } if ((tmp = g_hash_table_lookup(message, "New"))) { // FIXME: shouldn't this be boolean ? if (g_variant_get_int32(tmp) == 1) { new = EINA_TRUE; } } if (new && out) { elm_object_text_set(view.right_bt, D_("Edit")); evas_object_smart_callback_del(view.right_bt, "clicked", _edit_clicked); evas_object_smart_callback_del(view.right_bt, "clicked", _show_clicked); evas_object_smart_callback_add(view.right_bt, "clicked", _edit_clicked, NULL); elm_object_text_set(view.forward_bt, D_("Edit")); evas_object_size_hint_min_set(view.forward_bt, 130, 80); evas_object_smart_callback_del(view.forward_bt, "clicked", _edit_clicked); evas_object_smart_callback_del(view.forward_bt, "clicked", _forward_clicked); evas_object_smart_callback_add(view.forward_bt, "clicked", _edit_clicked, NULL); } else { elm_object_text_set(view.right_bt, D_("Show")); evas_object_smart_callback_del(view.right_bt, "clicked", _edit_clicked); evas_object_smart_callback_del(view.right_bt, "clicked", _show_clicked); evas_object_smart_callback_add(view.right_bt, "clicked", _show_clicked, NULL); elm_object_text_set(view.forward_bt, D_("Forward")); evas_object_size_hint_min_set(view.forward_bt, 130, 80); evas_object_smart_callback_del(view.forward_bt, "clicked", _edit_clicked); evas_object_smart_callback_del(view.forward_bt, "clicked", _forward_clicked); evas_object_smart_callback_add(view.forward_bt, "clicked", _forward_clicked, NULL); } } static void _contact_lookup(GError *error, GHashTable *contact, gpointer data) { Elm_Object_Item *glit; GHashTable *message; char *tmp; if (error) { ui_utils_notify(ui_utils_view_window_get(VIEW_PTR(view)), D_("Error while trying to resolve the number"), 10); g_warning("Error resolving number: (%d) %s", error->code, error->message); return; } if (!contact) { return; } glit = (Elm_Object_Item *)data; tmp = phoneui_utils_contact_display_name_get(contact); if (tmp) { message = (GHashTable *)elm_object_item_data_get(glit); g_hash_table_insert(message, "Name", g_variant_ref_sink(g_variant_new_string(tmp))); Evas_Object *obj = (Evas_Object *)elm_object_item_widget_get(glit); edje_object_part_text_set(obj, "elm.name", tmp); free(tmp); } } static void _process_messages(GError* error, GHashTable** messages, int count, gpointer data) { int i; g_debug("got %d messages", count); if (error) { ui_utils_notify(ui_utils_view_window_get(VIEW_PTR(view)), D_("Error while retrieving messages"), 10); g_warning("Error retrieving messages: (%d) %s", error->code, error->message); goto close; return; } if (!messages) { ui_utils_notify(ui_utils_view_window_get(VIEW_PTR(view)), D_("There are no messages"), 5); g_debug("No messages to load"); return; } for (i = 0; i < count; i++) { g_debug("processing message %d", i); _process_message(messages[i], data); } if (view.latest_it) { elm_genlist_item_show(view.latest_it, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE); view.latest_it = NULL; } close: ecore_timer_add(0.75, _release_scroll_lock, NULL); edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "stop_loading",""); elm_progressbar_pulse(view.top_pb, EINA_FALSE); elm_progressbar_pulse(view.bottom_pb, EINA_FALSE); } static void _process_message_get(GError *error, GHashTable *message, gpointer data) { Elm_Object_Item *glit; GHashTable *it_data; GVariant *tmp; if (error) { ui_utils_notify(ui_utils_view_window_get(VIEW_PTR(view)), D_("Error while retrieving a message"), 10); g_warning("Error retrieving a message: (%d) %s", error->code, error->message); return; } if (!message) { return; } long new_timestamp = 0; long first_timestamp = 0; long last_timestamp = 0; if ((tmp = g_hash_table_lookup(message, "Timestamp"))) { new_timestamp = (long) g_variant_get_int32(tmp); } glit = elm_genlist_first_item_get(view.list); if (glit) { it_data = elm_object_item_data_get(glit); if (it_data && (tmp = g_hash_table_lookup(it_data, "Timestamp"))) { first_timestamp = (long) g_variant_get_int32(tmp); } } glit = elm_genlist_last_item_get(view.list); if (glit) { it_data = elm_object_item_data_get(glit); if (it_data && (tmp = g_hash_table_lookup(it_data, "Timestamp"))) { last_timestamp = (long) g_variant_get_int32(tmp); } } if ((view.msg_start == 0 && new_timestamp >= first_timestamp) || (new_timestamp > last_timestamp && new_timestamp <= first_timestamp)) { _process_message(message, data); } } static void _process_message(gpointer _message, gpointer _data) { GHashTable *message, *rowdata, *other; GVariant *tmp; long timestamp = 0, other_timestamp = 0; char datestr[35]; Elm_Object_Item *glit = NULL; InsertMode insert_mode; if (!_message) { return; } message = (GHashTable *)_message; tmp = g_hash_table_lookup(message, "Path"); if (!tmp) { g_critical("Message without Path?!?"); return; } insert_mode = GPOINTER_TO_INT(_data); rowdata = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); g_hash_table_insert(rowdata, "Path", g_variant_ref(tmp)); tmp = g_hash_table_lookup(message, "Timestamp"); if (tmp) { timestamp = (long) g_variant_get_int32(tmp); } strftime(datestr, 31, "%d.%m.%Y %H:%M" LTR_STRING, localtime(×tamp)); g_hash_table_insert(rowdata, "Date", g_variant_ref_sink(g_variant_new_string(datestr))); g_hash_table_insert(rowdata, "Timestamp", g_variant_ref_sink(g_variant_new_int32(timestamp))); tmp = g_hash_table_lookup(message, "Direction"); if (tmp) { g_hash_table_insert(rowdata, "Direction", g_variant_ref(tmp)); } tmp = g_hash_table_lookup(message, "Peer"); if (!tmp) { tmp = g_hash_table_lookup(message, "Sender"); } if (!tmp) { tmp = g_hash_table_lookup(message, "Recipient"); } if (tmp) { g_hash_table_insert(rowdata, "Phone", g_variant_ref(tmp)); } tmp = g_hash_table_lookup(message, "Content"); if (tmp) { g_hash_table_insert(rowdata, "Content", g_variant_ref(tmp)); } tmp = g_hash_table_lookup(message, "New"); if (tmp) { g_hash_table_insert(rowdata, "New", g_variant_ref(tmp)); } if (insert_mode == LIST_INSERT_SORTED) { glit = elm_genlist_first_item_get(view.list); while (glit) { other = (GHashTable *)elm_object_item_data_get(glit); tmp = g_hash_table_lookup(other, "Timestamp"); if (tmp) { other_timestamp = (long)g_variant_get_int32(tmp); } if (timestamp > other_timestamp) break; glit = elm_genlist_item_next_get(glit); } if (glit) { if (glit == elm_genlist_first_item_get(view.list)) insert_mode = LIST_INSERT_PREPEND; else if (glit == elm_genlist_last_item_get(view.list)) insert_mode = LIST_INSERT_APPEND; glit = elm_genlist_item_insert_before(view.list, &itc, rowdata, NULL, glit, ELM_GENLIST_ITEM_NONE, NULL, NULL); } } if (!glit) { if (insert_mode == LIST_INSERT_PREPEND) { glit = elm_genlist_item_prepend(view.list, &itc, rowdata, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); } else { glit = elm_genlist_item_append(view.list, &itc, rowdata, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); } } /* Save also the genlist item pointer in the messsage data, to get them dobule-linked */ g_hash_table_insert(rowdata, "_GenlistItem", common_utils_new_variant_from_pointer(glit)); tmp = g_hash_table_lookup(message, "@Contacts"); if (tmp) { if (g_variant_type_is_array(g_variant_get_type(tmp))) { /*use last the last contact*/ char *path = phoneui_utils_contact_get_dbus_path (g_variant_get_int32 (g_variant_get_child_value (tmp,g_variant_n_children(tmp)-1))); phoneui_utils_contact_get(path, _contact_lookup, glit); free(path); } else if (g_variant_is_of_type(tmp,G_VARIANT_TYPE_INT32)) { char *path = phoneui_utils_contact_get_dbus_path (g_variant_get_int32(tmp)); phoneui_utils_contact_get(path, _contact_lookup, glit); free(path); } } g_hash_table_destroy(message); view.msg_end++; if ((view.msg_end - view.msg_start) > MSG_PAGE_SIZE) { if (insert_mode == LIST_INSERT_APPEND) { glit = elm_genlist_first_item_get(view.list); view.msg_start++; } else { glit = elm_genlist_last_item_get(view.list); view.msg_start = view.msg_start > 1 ? view.msg_start-1 : 0; view.msg_end = view.msg_end > 2 ? view.msg_end-2 : 0; } if (glit) { elm_object_item_del(glit); } } } static char * gl_text_get(void *data, Evas_Object * obj, const char *part) { (void) obj; GHashTable *message = (GHashTable *)data; GVariant *tmp; if (!strcmp(part, "elm.name")) { tmp = g_hash_table_lookup(message, "Name"); if (tmp) { return g_variant_dup_string(tmp, NULL); } else { tmp = g_hash_table_lookup(message, "Phone"); if (tmp) { char *number = g_variant_dup_string(tmp, NULL); /* FIXME this is a bad workaround needed for reloading the * message contact name when the user has showed the message. * It seems to be a genlist bug, which cause to use different data */ if ((tmp = g_hash_table_lookup(message, "_GenlistItem"))) { Elm_Object_Item *glit; glit = (Elm_Object_Item *) common_utils_pointer_from_variant(tmp); phoneui_utils_contact_lookup(number, _contact_lookup, glit); } return number; } } } else if (!strcmp(part, "elm.date")) { tmp = g_hash_table_lookup(message, "Date"); if (tmp) { return g_variant_dup_string(tmp, NULL); } } else if (!strcmp(part, "elm.content")) { tmp = g_hash_table_lookup(message, "Content"); if (tmp) { return common_utils_string_strip_newline (g_variant_dup_string(tmp, NULL)); } } return NULL; } static Evas_Object * gl_content_get(void *data, Evas_Object * obj, const char *part) { (void) obj; GVariant *tmp; GHashTable *message = (GHashTable *)data; return NULL; if (!strcmp(part, "elm.photo")) { // TODO return NULL; } else if (!strcmp(part, "elm.content")) { tmp = g_hash_table_lookup(message, "Content"); if (tmp) { Evas_Object *win = ui_utils_view_window_get(VIEW_PTR(view)); Evas_Object *txt = elm_entry_add(win); elm_entry_anchor_hover_style_set(txt, "popout"); elm_entry_anchor_hover_parent_set(txt, win); elm_object_text_set(txt, g_variant_get_string(tmp, NULL)); evas_object_show(txt); Evas_Object *bubble = elm_bubble_add(win); elm_object_content_set(bubble, txt); tmp = g_hash_table_lookup(message, "Date"); if (tmp) { elm_object_text_set(bubble, g_variant_get_string(tmp, NULL)); } tmp = g_hash_table_lookup(message, "Phone"); if (tmp) { elm_object_part_text_set(bubble, "info", g_variant_get_string(tmp, NULL)); } return bubble; } } return NULL; } static Eina_Bool gl_state_get(void *data, Evas_Object *obj, const char *part) { (void) part; (void) obj; GHashTable *message; GVariant *tmp; Eina_Bool msg_out; Eina_Bool new; Eina_Bool unconfirmed; message = (GHashTable *)data; msg_out = EINA_FALSE; new = EINA_FALSE; unconfirmed = EINA_FALSE; if ((tmp = g_hash_table_lookup(message, "Direction"))) { msg_out = !strcmp(g_variant_get_string(tmp, NULL), "out"); } if ((tmp = g_hash_table_lookup(message, "New"))) { // FIXME: shouldn't be boolean? new = (g_variant_get_int32(tmp) == 1); } if ((tmp = g_hash_table_lookup(message, "SMS-delivered"))) { unconfirmed = (g_variant_get_int32(tmp) == 0); } if (new && !msg_out && !unconfirmed && !strcmp(part, "new_incoming")) { return EINA_TRUE; } else if (new && msg_out && unconfirmed && !strcmp(part, "new_outgoing")) { return EINA_TRUE; } else if (new && msg_out && !strcmp(part, "new_outgoing_unconfirmed")) { return EINA_TRUE; } else if (!strcmp(part, "direction_out")) { return msg_out; } return EINA_FALSE; } static void gl_del(void *data, Evas_Object * obj) { (void)obj; g_hash_table_destroy((GHashTable *)data); } static void _add_message(const char *path) { // insert sorted phoneui_utils_message_get(path, _process_message_get, GINT_TO_POINTER(LIST_INSERT_SORTED)); } static void _remove_message(const char *path) { Elm_Object_Item *glit; GHashTable *properties; GVariant *tmp; g_debug("Removing message %s from list", path); glit = elm_genlist_first_item_get(view.list); while (glit) { properties = (GHashTable *)elm_object_item_data_get(glit); tmp = g_hash_table_lookup(properties, "Path"); if (tmp) { if (!strcmp(path, g_variant_get_string(tmp, NULL))) { g_debug("found him - removing"); elm_object_item_del(glit); view.msg_end = view.msg_end > 1 ? view.msg_end-1 : 0; break; } } glit = elm_genlist_item_next_get(glit); } } static void _message_changed_cb(void *data, const char *path, enum PhoneuiInfoChangeType type) { g_debug("contact %s got changed", path); (void)data; switch (type) { case PHONEUI_INFO_CHANGE_UPDATE: _remove_message(path); _add_message(path); break; case PHONEUI_INFO_CHANGE_NEW: _add_message(path); break; case PHONEUI_INFO_CHANGE_DELETE: _remove_message(path); break; } } static void _hide_cb(struct View *view) { g_debug("_hide_cb"); elm_genlist_item_bring_in(elm_genlist_first_item_get( ((struct MessageListViewData *)view)->list), ELM_GENLIST_ITEM_SCROLLTO_IN); } static void _delete_cb(struct View *data, Evas_Object *obj, void *event_info) { (void)data; (void)obj; (void)event_info; g_debug("_delete_cb"); message_list_view_hide(); } libphone-ui-shr-0.1+git20130901/src/view/message-list-view.h000066400000000000000000000020711221067027500232370ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _MESSAGE_LIST_VIEW_H #define _MESSAGE_LIST_VIEW_H int message_list_view_init(); int message_list_view_is_init(); void message_list_view_deinit(); void message_list_view_show(); void message_list_view_hide(); #endif libphone-ui-shr-0.1+git20130901/src/view/message-new-view.c000066400000000000000000000744531221067027500230650ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * David Kozub * Martin Jansa * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include "ui-utils.h" #include "ui-utils-contacts.h" #include "common-utils.h" #include "widget/elm_keypad.h" #include "message-new-view.h" #include "views.h" #include "phoneui-shr.h" enum MessageNewModes { MODE_CONTENT, MODE_RECIPIENT, MODE_RECIPIENT_NUMBER, MODE_RECIPIENT_CONTACT, MODE_CLOSE }; struct _recipient_pack { struct MessageNewViewData *view; GHashTable *recipient; Elm_Object_Item *glit; }; static Elm_Genlist_Item_Class itc; static void _init_content_page(struct MessageNewViewData *view); static void _init_recipient_page(struct MessageNewViewData *view); static void _init_contacts_page(struct MessageNewViewData *view); static void _init_number_page(struct MessageNewViewData *view); static void _content_button_insert_clicked(void *data, Evas_Object *obj, void *event_info); static void _content_button_close_clicked(void *data, Evas_Object *obj, void *event_info); static void _content_button_continue_clicked(void *data, Evas_Object *obj, void *event_info); static void _content_changed(void *_data, Evas_Object * obj, void *event_info); static void _recipients_button_back_clicked(void *data, Evas_Object *obj, void *event_info); static void _recipients_button_add_contact_clicked(void *data, Evas_Object *obj, void *event_info); static void _recipients_button_add_number_clicked(void *data, Evas_Object *obj, void *event_info); static void _recipients_button_send_clicked(void *data, Evas_Object *obj, void *event_info); static void _recipients_button_remove_clicked(void *data, Evas_Object *obj, void *event_info); // static void _recipients_button_delete_clicked(void *_data, Evas_Object * obj, void *event_info); static void _insert_contacts_button_back_clicked(void *data, Evas_Object *obj, void *event_info); static void _insert_contacts_button_add_clicked(void *data, Evas_Object *obj, void *event_info); static void _insert_contacts_add_number_callback(const char *number, void *data); static void _contacts_button_back_clicked(void *data, Evas_Object *obj, void *event_info); static void _contacts_add_number_callback(const char *number, void *data); static void _contacts_button_add_clicked(void *data, Evas_Object *obj, void *event_info); static void _number_keypad_clicked(void *data, Evas_Object *obj, void *event_info); static void _number_button_back_clicked(void *data, Evas_Object *obj, void *event_info); static void _number_button_add_clicked(void *data, Evas_Object *obj, void *event_info); static void _number_button_delete_clicked(void *data, Evas_Object *obj, void *event_info); static void _number_update_number(struct MessageNewViewData* view); static void _process_recipient(gpointer _properties, gpointer _data); static void _contact_lookup(GError *error, GHashTable *contact, gpointer data); static void _message_send_callback(GError *error, int reference, const char *timestamp, gpointer data); static char *gl_text_get(void *data, Evas_Object * obj, const char *part); static Evas_Object *gl_content_get(void *data, Evas_Object * obj, const char *part); static void gl_del(void *data, Evas_Object *obj); static void _delete_cb(struct View *view, Evas_Object * win, void *event_info); static void _destroy_cb(struct View *view); struct MessageNewViewData * message_new_view_init(GHashTable *options) { struct MessageNewViewData *view; int ret; GVariant *tmp; Evas_Object *win; view = malloc(sizeof(struct MessageNewViewData)); if (!view) { g_critical("Failed to allocate new message view"); if (options) { g_hash_table_unref(options); } return NULL; } ret = ui_utils_view_init(VIEW_PTR(*view), ELM_WIN_BASIC, D_("New Message"), NULL, NULL, _destroy_cb); if (ret) { g_critical("Failed to init new message view"); if (options) { g_hash_table_unref(options); } free(view); return NULL; } view->mode = MODE_CONTENT; view->content = NULL; view->recipients = g_ptr_array_new(); view->messages_sent = 0; view->contact_list_data.view = VIEW_PTR(*view); view->layout_content = NULL; view->layout_recipients = NULL; view->layout_contacts = NULL; view->layout_number = NULL; view->notify = NULL; if (options) { tmp = g_hash_table_lookup(options, "Content"); if (tmp) { view->content = g_variant_dup_string(tmp, NULL); g_hash_table_unref(options); } else { // FIXME: do we have to ref? or is that done by dbus for us? g_hash_table_ref(options); g_ptr_array_add(view->recipients, options); } } elm_theme_extension_add(NULL, phoneui_theme); win = ui_utils_view_window_get(VIEW_PTR(*view)); ui_utils_view_delete_callback_set(VIEW_PTR(*view), _delete_cb); view->pager = elm_naviframe_add(win); elm_win_resize_object_add(win, view->pager); evas_object_show(view->pager); _init_content_page(view); return view; } static void _deinit_recipients_list(gpointer _properties, gpointer _data) { GHashTable *properties; (void) _data; properties = (GHashTable *) _properties; g_hash_table_unref(properties); } void message_new_view_deinit(struct MessageNewViewData *view) { if (view) { ui_utils_view_deinit(VIEW_PTR(*view)); g_ptr_array_foreach(view->recipients, _deinit_recipients_list, NULL); g_ptr_array_unref(view->recipients); } else { g_warning("Deiniting a new message view without view?"); } } void message_new_view_show(struct MessageNewViewData *view) { if (view) { ui_utils_view_show(VIEW_PTR(*view)); } } static char * gl_text_get(void *data, Evas_Object * obj, const char *part) { (void) obj; char *label = NULL; struct _recipient_pack *pack = (struct _recipient_pack *)data; if (!strcmp(part, "elm.text")) { label = phoneui_utils_contact_display_name_get(pack->recipient); if (!label) { return strdup("Number"); } } else if (!strcmp(part, "elm.text.sub")) { label = phoneui_utils_contact_display_phone_get(pack->recipient); } return label; } static Evas_Object * gl_content_get(void *data, Evas_Object * obj, const char *part) { struct _recipient_pack *pack = (struct _recipient_pack *)data; if (!strcmp(part, "elm.swallow.icon")) { const char *photo_file = NULL; GVariant *tmp = g_hash_table_lookup(pack->recipient, "Photo"); if (tmp) { photo_file = g_variant_get_string(tmp, NULL); } if (!photo_file || !ecore_file_exists(photo_file)) photo_file = CONTACT_DEFAULT_PHOTO; Evas_Object *photo = elm_icon_add(obj); elm_image_file_set(photo, photo_file, NULL); evas_object_size_hint_aspect_set(photo, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); return (photo); } if (!strcmp(part, "elm.swallow.end")) { Evas_Object *ico = elm_icon_add(obj); elm_icon_standard_set(ico, "delete"); evas_object_smart_callback_add(ico, "clicked", _recipients_button_remove_clicked, pack); return ico; } return (NULL); } static void gl_del(void *data, Evas_Object *obj) { (void) obj; struct _recipient_pack *pack = (struct _recipient_pack *)data; /* content of the pack will be freed by deinit */ free(pack); } //static void message_send_callback(GError *error, int transaction_index, struct MessageNewViewData *data); static void _init_content_page(struct MessageNewViewData *view) { Evas_Object *win, *btn; win = ui_utils_view_window_get(VIEW_PTR(*view)); view->layout_content = elm_layout_add(win); elm_win_resize_object_add(win, view->layout_content); evas_object_size_hint_weight_set(view->layout_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_layout_file_set(view->layout_content, phoneui_theme, "phoneui/messages/new/content"); evas_object_show(view->layout_content); edje_object_part_text_set(elm_layout_edje_get(view->layout_content), "content_title", D_("Enter your message")); view->content_entry = elm_entry_add(win); elm_entry_scrollable_set(view->content_entry, EINA_TRUE); evas_object_smart_callback_add(view->content_entry, "changed", _content_changed, view); if (view->content != NULL) { elm_entry_entry_set(view->content_entry, elm_entry_utf8_to_markup(view->content)); } evas_object_show(view->content_entry); elm_object_part_content_set(view->layout_content, "content_entry", view->content_entry); elm_object_focus_set(view->content_entry, EINA_TRUE); btn = elm_button_add(win); elm_object_text_set(btn, D_("Insert")); evas_object_smart_callback_add(btn, "clicked", _content_button_insert_clicked, view); elm_object_part_content_set(view->layout_content, "content_button_insert", btn); evas_object_show(btn); btn = elm_button_add(win); elm_object_text_set(btn, D_("Close")); evas_object_smart_callback_add(btn, "clicked", _content_button_close_clicked, view); elm_object_part_content_set(view->layout_content, "content_button_close", btn); evas_object_show(btn); btn = elm_button_add(win); elm_object_text_set(btn, D_("Continue")); evas_object_smart_callback_add(btn, "clicked", _content_button_continue_clicked, view); elm_object_part_content_set(view->layout_content, "content_button_continue", btn); evas_object_show(btn); elm_naviframe_item_simple_push(view->pager, view->layout_content); } static void _init_recipient_page(struct MessageNewViewData *view) { Evas_Object *win, *btn; win = ui_utils_view_window_get(VIEW_PTR(*view)); view->layout_recipients = elm_layout_add(view->pager); elm_win_resize_object_add(win, view->layout_recipients); elm_layout_file_set(view->layout_recipients, phoneui_theme, "phoneui/messages/new/recipients"); evas_object_show(view->layout_recipients); edje_object_part_text_set(elm_layout_edje_get(view->layout_recipients), "recipients_title", D_("Define Recipients")); view->list_recipients = elm_genlist_add(win); elm_genlist_mode_set(view->list_recipients, ELM_LIST_LIMIT); evas_object_size_hint_align_set(view->list_recipients, 0.0, 0.0); evas_object_size_hint_weight_set(view->list_recipients, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_object_scale_set(view->list_recipients, 1.0); elm_object_part_content_set(view->layout_recipients, "recipients_list", view->list_recipients); itc.item_style = "contact"; itc.func.text_get = gl_text_get; itc.func.content_get = gl_content_get; itc.func.state_get = NULL; itc.func.del = gl_del; evas_object_show(view->list_recipients); g_ptr_array_foreach(view->recipients, _process_recipient, view); btn = elm_button_add(win); elm_object_text_set(btn, D_("Back")); evas_object_smart_callback_add(btn, "clicked", _recipients_button_back_clicked, view); elm_object_part_content_set(view->layout_recipients, "recipients_button_back", btn); evas_object_show(btn); btn = elm_button_add(win); elm_object_text_set(btn, D_("Contact")); evas_object_smart_callback_add(btn, "clicked", _recipients_button_add_contact_clicked, view); elm_object_part_content_set(view->layout_recipients, "recipients_button_add_contact", btn); evas_object_show(btn); btn = elm_button_add(win); elm_object_text_set(btn, D_("Number")); evas_object_smart_callback_add(btn, "clicked", _recipients_button_add_number_clicked, view); elm_object_part_content_set(view->layout_recipients, "recipients_button_add_number", btn); evas_object_show(btn); btn = elm_button_add(win); elm_object_text_set(btn, D_("Send")); evas_object_smart_callback_add(btn, "clicked", _recipients_button_send_clicked, view); elm_object_part_content_set(view->layout_recipients, "recipients_button_send", btn); evas_object_show(btn); elm_naviframe_item_simple_push(view->pager, view->layout_recipients); } static void _init_contacts_page(struct MessageNewViewData *view) { Evas_Object *win, *btn; win = ui_utils_view_window_get(VIEW_PTR(*view)); view->layout_contacts = elm_layout_add(view->pager); elm_win_resize_object_add(win, view->layout_contacts); elm_layout_file_set(view->layout_contacts, phoneui_theme, "phoneui/messages/new/contacts"); evas_object_show(view->layout_contacts); edje_object_part_text_set(elm_layout_edje_get(view->layout_contacts), "contacts_title", D_("Add Contact")); view->contact_list_data.layout = view->layout_contacts; contact_list_add(&view->contact_list_data); btn = elm_button_add(win); elm_object_text_set(btn, D_("Back")); evas_object_smart_callback_add(btn, "clicked", _contacts_button_back_clicked, view); elm_object_part_content_set(view->layout_contacts, "contacts_button_back", btn); evas_object_show(btn); btn = elm_button_add(win); elm_object_text_set(btn, D_("Add")); evas_object_smart_callback_add(btn, "clicked", _contacts_button_add_clicked, view); elm_object_part_content_set(view->layout_contacts, "contacts_button_add", btn); evas_object_show(btn); contact_list_fill(&view->contact_list_data); elm_naviframe_item_simple_push(view->pager, view->layout_contacts); } static void _init_number_page(struct MessageNewViewData *view) { Evas_Object *win, *btn, *ico; win = ui_utils_view_window_get(VIEW_PTR(*view)); view->number[0] = '\0'; view->number_length = 0; view->layout_number = elm_layout_add(view->pager); elm_win_resize_object_add(win, view->layout_number); elm_layout_file_set(view->layout_number, phoneui_theme, "phoneui/messages/new/number"); evas_object_show(view->layout_number); edje_object_part_text_set(elm_layout_edje_get(view->layout_number), "number_title", D_("Add Number")); btn = elm_button_add(win); elm_object_text_set(btn, D_("Back")); evas_object_smart_callback_add(btn, "clicked", _number_button_back_clicked, view); elm_object_part_content_set(view->layout_number, "number_button_back", btn); evas_object_show(btn); btn = elm_button_add(win); elm_object_text_set(btn, D_("Add")); evas_object_smart_callback_add(btn, "clicked", _number_button_add_clicked, view); elm_object_part_content_set(view->layout_number, "number_button_add", btn); evas_object_show(btn); ico = elm_icon_add(win); evas_object_size_hint_aspect_set(ico, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); elm_image_file_set(ico, phoneui_theme, "icon/edit-undo"); evas_object_show(ico); btn = elm_button_add(win); elm_object_content_set(btn, ico); elm_object_part_content_set(view->layout_number, "number_button_delete", btn); evas_object_smart_callback_add(btn, "clicked", _number_button_delete_clicked, view); evas_object_show(btn); view->number_keypad = (Evas_Object *) elm_keypad_add(win); evas_object_smart_callback_add(view->number_keypad, "clicked", _number_keypad_clicked, view); elm_object_part_content_set(view->layout_number, "number_keypad", view->number_keypad); evas_object_show(view->number_keypad); elm_naviframe_item_simple_push(view->pager, view->layout_number); } static void _content_button_insert_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; Evas_Object *win, *btn; struct MessageNewViewData *view = (struct MessageNewViewData *)data; win = ui_utils_view_window_get(VIEW_PTR(*view)); if (view->layout_contacts) { // elm_naviframe_item_simple_promote(view->pager, view->layout_contacts); } else { _init_contacts_page(view); } view->contact_list_data.layout = view->layout_contacts; contact_list_add(&view->contact_list_data); btn = elm_button_add(win); elm_object_text_set(btn, D_("Back")); evas_object_smart_callback_add(btn, "clicked", _insert_contacts_button_back_clicked, view); elm_object_part_content_set(view->layout_contacts, "contacts_button_back", btn); evas_object_show(btn); btn = elm_button_add(win); elm_object_text_set(btn, D_("Add")); evas_object_smart_callback_add(btn, "clicked", _insert_contacts_button_add_clicked, view); elm_object_part_content_set(view->layout_contacts, "contacts_button_add", btn); evas_object_show(btn); contact_list_fill(&view->contact_list_data); elm_naviframe_item_simple_push(view->pager, view->layout_contacts); } static void _insert_contacts_button_back_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; elm_naviframe_item_simple_promote(view->pager, view->layout_content); } static void _insert_contacts_button_add_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; Elm_Object_Item *glit; GHashTable *properties; glit = elm_genlist_selected_item_get(view->contact_list_data.list); properties = glit ? (GHashTable *) elm_object_item_data_get(glit) : NULL; if (properties) { GVariant *tmp; tmp = g_hash_table_lookup(properties, "Path"); if (!tmp) { g_warning("Can't add contact without Path in properties !?!"); return; } const char *path = g_variant_get_string(tmp, NULL); ui_utils_contacts_contact_number_select(VIEW_PTR(*view), path, _insert_contacts_add_number_callback, view); } elm_naviframe_item_simple_promote(view->pager, view->layout_recipients); } static void _insert_contacts_add_number_callback(const char *number, void *data) { char *content; struct MessageNewViewData *view; int len; view = (struct MessageNewViewData *)data; content = elm_entry_markup_to_utf8(elm_entry_entry_get(view->content_entry)); len = phone_utils_gsm_sms_strlen(content); // Make space for text, number and ending null character content = realloc(content, len + strlen(number) + 1); // Add the number to the end of the content sprintf(content + len, "%s ", number); if (view->content) { free(view->content); } view->content = content; if (view->content != NULL) { elm_entry_entry_set(view->content_entry, elm_entry_utf8_to_markup(view->content)); } } static void _content_button_close_clicked(void *data, Evas_Object *obj, void *event_info) { _delete_cb((struct View *)data, obj, event_info); } static void _content_button_continue_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; if (view->layout_recipients) { elm_naviframe_item_simple_promote(view->pager, view->layout_recipients); } else { _init_recipient_page(view); } } static void _recipients_button_back_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; elm_naviframe_item_simple_promote(view->pager, view->layout_content); elm_object_focus_set(view->content_entry, EINA_TRUE); } static void _recipients_button_add_contact_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; if (view->layout_contacts) { elm_naviframe_item_simple_promote(view->pager, view->layout_contacts); } else { _init_contacts_page(view); } } static void _recipients_button_add_number_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; if (view->layout_number) { elm_naviframe_item_simple_promote(view->pager, view->layout_number); } else { _init_number_page(view); } } static void _recipients_button_remove_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct _recipient_pack *pack = (struct _recipient_pack *)data; g_ptr_array_remove(pack->view->recipients, pack->recipient); elm_object_item_del(pack->glit); } // static void // _recipients_button_delete_clicked(void *_data, Evas_Object * obj, void *event_info) // { // (void) obj; // (void) event_info; // struct MessageNewViewData *data = (struct MessageNewViewData *) _data; // // Elm_Object_Item *glit = // elm_genlist_selected_item_get(data->list_recipients); // if (glit) { // GHashTable *parameters = (GHashTable *) elm_object_item_data_get(glit); // g_ptr_array_remove(data->recipients, parameters); // elm_object_item_del(glit); // } // } static void _recipients_button_send_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; if (view->recipients->len) { phoneui_utils_sms_send(view->content, view->recipients, _message_send_callback, view); } } static void _contacts_button_back_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; elm_naviframe_item_simple_promote(view->pager, view->layout_recipients); } static void _contacts_add_number_callback(const char *number, void *data) { GHashTable *options; struct MessageNewViewData *view = data; if (number) { options = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); g_hash_table_insert(options, "Phone", g_variant_ref_sink(g_variant_new_string(number))); g_ptr_array_add(view->recipients, options); _process_recipient(options, view); } } static void _contacts_button_add_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; Elm_Object_Item *glit; GHashTable *properties; glit = elm_genlist_selected_item_get(view->contact_list_data.list); properties = glit ? (GHashTable *) elm_object_item_data_get(glit) : NULL; if (properties) { GVariant *tmp; tmp = g_hash_table_lookup(properties, "Path"); if (!tmp) { g_warning("Can't add contact without Path in properties !?!"); return; } const char *path = g_variant_get_string(tmp, NULL); ui_utils_contacts_contact_number_select(VIEW_PTR(*view), path, _contacts_add_number_callback, view); } elm_naviframe_item_simple_promote(view->pager, view->layout_recipients); } static void _number_keypad_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; struct MessageNewViewData *view = (struct MessageNewViewData *)data; char input = ((char *) event_info)[0]; if (view->number_length < 64) { view->number[view->number_length] = input; view->number[view->number_length+1] = '\0'; view->number_length++; _number_update_number(view); } } static void _number_button_back_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; elm_naviframe_item_simple_promote(view->pager, view->layout_recipients); } static void _number_button_add_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; if (phone_utils_sms_is_valid_number(view->number)) { GHashTable *properties = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); g_hash_table_insert(properties, "Name", g_variant_ref_sink(g_variant_new_string("Number"))); g_hash_table_insert(properties, "Phone", g_variant_ref_sink(g_variant_new_string(view->number))); g_hash_table_insert(properties, "Photo", g_variant_ref_sink(g_variant_new_string(CONTACT_NUMBER_PHOTO))); g_ptr_array_add(view->recipients, properties); _process_recipient(properties, view); view->number[0] = '\0'; view->number_length = 0; _number_update_number(view); elm_naviframe_item_simple_promote(view->pager, view->layout_recipients); } else { if (!view->notify) { view->notify = ui_utils_notify(ui_utils_view_window_get(VIEW_PTR(*view)), D_("You have entered
an invalid number."), 5); } evas_object_show(view->notify); } } static void _number_button_delete_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *)data; if (view->number_length > 0) { view->number_length--; view->number[view->number_length] = '\0'; _number_update_number(view); } } static void _number_update_number(struct MessageNewViewData *view) { g_debug("Updating number to %s", view->number); edje_object_part_text_set(elm_layout_edje_get(view->layout_number), "number_number", view->number); } static void _content_changed(void *_data, Evas_Object * obj, void *event_info) { (void) event_info; struct MessageNewViewData *view = (struct MessageNewViewData *) _data; GRegex *rgx; char *content; int limit; /* the limit of the sms */ int len; /* the number of characters in the sms */ char text[64]; /*FIXME: consider changing to an iterative way by using get_size (emulating what's * being done in phone_utils) as calculating for all the string on every keystroke is a bit sluggish. */ content = elm_entry_markup_to_utf8(elm_entry_entry_get(obj)); /* if the entry is still empty elm_entry_markup_to_utf8 will return * NULL - which makes g_strstrip segfault :| * and we don't have to do all the fancy calculation * if it is empty */ if (!content) { sprintf(text, D_("%d characters left [%d]"), PHONE_UTILS_GSM_SMS_TEXT_LIMIT, PHONE_UTILS_GSM_SMS_TEXT_LIMIT); edje_object_part_text_set(elm_layout_edje_get (view->layout_content), "characters_left", text); return; } /* Elementary uses the tag as paragraph separator, this get converted to * the Unicode paragraph separator "\xE2\x80\xA9" causing the sms to grow in size; * let's replace it with the standard "\n" separator avoiding to send multiple * SMSs messages */ char *tmp = content; rgx = g_regex_new("\xE2\x80\xA9", 0, 0, NULL); content = g_regex_replace_literal(rgx, tmp, -1, 0, "\n", 0, NULL); g_regex_unref(rgx); free(tmp); len = phone_utils_gsm_sms_strlen(content); /* if it includes chars that can't be represented * with 7bit encoding, this sms will be sent as ucs-2 treat * it this way! */ if (phone_utils_gsm_is_ucs(content)) { limit = PHONE_UTILS_GSM_SMS_UCS_LIMIT; /* ucs-2 number of chars limit */ if (len > limit) { limit = PHONE_UTILS_GSM_SMS_UCS_SPLIT_LIMIT; } } else { limit = PHONE_UTILS_GSM_SMS_TEXT_LIMIT; /* regular number of chars limit */ if (len > limit) { limit = PHONE_UTILS_GSM_SMS_TEXT_SPLIT_LIMIT; } } int left = limit - (len % limit); int msg_count = (len / limit) + 1; if (left == limit && (len / limit) + 1 > 1) { left = 0; msg_count--; } /*FIXME: BAD! will cause a string-cut when using a long translation!!! */ snprintf(text, sizeof(text), D_("%d characters left [%d]"), left, msg_count); ui_utils_view_text_set(VIEW_PTR(*view), "characters_left", text); edje_object_part_text_set(elm_layout_edje_get(view->layout_content), "characters_left", text); if (view->content) { free(view->content); } view->content = content; } static void _process_recipient(gpointer _properties, gpointer _data) { GHashTable *properties; struct MessageNewViewData *view; struct _recipient_pack *pack; GVariant *tmp; properties = (GHashTable *) _properties; view = (struct MessageNewViewData *) _data; pack = malloc(sizeof(struct _recipient_pack)); pack->recipient = properties; pack->view = view; pack->glit = elm_genlist_item_append(view->list_recipients, &itc, pack, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); /* try to resolve the number to a contact */ tmp = g_hash_table_lookup(properties, "Phone"); if (tmp) { phoneui_utils_contact_lookup(g_variant_get_string(tmp, NULL), _contact_lookup, pack); } } static void _contact_lookup(GError *error, GHashTable *contact, gpointer data) { char *tmp; GVariant *gtmp; struct _recipient_pack *pack = (struct _recipient_pack *)data; if (error) { g_warning("Error will trying to resolve number: (%d) %s", error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(*pack->view), D_("Error will trying to resolve number."), error); return; } if (!contact ) { g_debug("No contact found"); return; } tmp = phoneui_utils_contact_display_name_get(contact); if (tmp) { g_hash_table_insert(pack->recipient, "Name", g_variant_ref_sink(g_variant_new_string(tmp))); free(tmp); } gtmp = g_hash_table_lookup(contact, "Photo"); if (gtmp) { g_hash_table_insert(pack->recipient, "Photo", g_variant_ref(gtmp)); } if (pack->view->layout_recipients) { elm_genlist_item_update(pack->glit); } } static void _message_send_callback(GError *error, int reference, const char *timestamp, gpointer data) { (void) reference; (void) timestamp; struct MessageNewViewData *view = data; if (error) { ui_utils_error_message_from_gerror_show(VIEW_PTR(view->view), D_("Sending the message failed"), error); return; } message_new_view_deinit(view); free(view); } static void _deinit_message_new_view(struct MessageNewViewData *view) { message_new_view_deinit(view); free(view); } static void _delete_confirm_cb(int res, void *data) { struct MessageNewViewData *view = data; if (res == DIALOG_YES) { _deinit_message_new_view(view); } else if (((Evas_Object *)elm_naviframe_top_item_get(view->pager)) == view->layout_content) { elm_object_focus_set(view->content_entry, EINA_TRUE); } } static void _delete_cb(struct View *view, Evas_Object * win, void *event_info) { (void)win; (void)event_info; struct MessageNewViewData *mw = (struct MessageNewViewData *)view; if (mw && (!mw->content || !strlen(mw->content))) { _deinit_message_new_view(mw); } else { ui_utils_dialog(VIEW_PTR(*view), D_("Do you really want to quit writing this message?"), DIALOG_YES | DIALOG_NO, _delete_confirm_cb, view); } } static void _destroy_cb(struct View *_view) { struct MessageNewViewData *view = (struct MessageNewViewData *)_view; g_debug("_destroy_cb"); if (view->content) { free(view->content); } // TODO: properly free recipients g_debug("_destroy_cb DONE"); } libphone-ui-shr-0.1+git20130901/src/view/message-new-view.h000066400000000000000000000032401221067027500230540ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _MESSAGE_NEW_VIEW_H #define _MESSAGE_NEW_VIEW_H #include #include #include "contact-list-common.h" struct MessageNewViewData { struct View view; int mode; char *content; char number[65]; int number_length; Evas_Object *pager, *left_button, *right_button; Evas_Object *layout_content, *layout_recipients; Evas_Object *layout_contacts, *layout_number; Evas_Object *content_entry, *number_keypad, *number_label, *hv; Evas_Object *list_recipients; Evas_Object *notify; GPtrArray *recipients; struct ContactListData contact_list_data; int messages_sent; }; struct MessageNewViewData *message_new_view_init(GHashTable *options); void message_new_view_deinit(struct MessageNewViewData *view); void message_new_view_show(struct MessageNewViewData *view); #endif libphone-ui-shr-0.1+git20130901/src/view/message-show-view.c000066400000000000000000000351251221067027500232450ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Martin Jansa * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include #include #include #include #include "common-utils.h" #include "ui-utils.h" #include "views.h" #include "message-show-view.h" #include "phoneui-shr.h" static GHashTable *messageviews = NULL; static void _close_clicked(void *_data, Evas_Object * obj, void *event_info); static void _answer_clicked(void *_data, Evas_Object * obj, void *event_info); static void _delete_clicked(void *_data, Evas_Object * obj, void *event_info); static void _call_clicked(void *_data, Evas_Object * obj, void *event_info); static void _forward_clicked(void *_data, Evas_Object * obj, void *event_info); static void _new_contact_clicked(void *_data, Evas_Object * obj, void *event_info); static void _hover_bt_1(void *_data, Evas_Object * obj, void *event_info); static void _common_name_callback(GError *error, GHashTable *contact, void *_data); static void _delete_cb(struct View *view, Evas_Object * win, void *event_info); static void _destroy_cb(struct View *_view); int message_show_view_init(char* path, GHashTable *properties) { struct MessageShowViewData *view; Evas_Object *win, *ico, *box, *obj; int ret; GVariant *tmp; const char *direction = NULL; Eina_Bool in_msg = EINA_FALSE; /* path MUST always be set! It will be freed by destroying the messageviews hashtable in here, thus must be a copy */ if (!path) { g_warning("Trying to initialize a message view without path!"); return 1; } g_debug("Initializing the contact view for '%s'", path); view = malloc(sizeof(struct MessageShowViewData)); if (!view) { g_critical("Failed to allocate message view for '%s'", path); if (properties) { g_hash_table_unref(properties); } free(path); return 1; } ret = ui_utils_view_init(VIEW_PTR(*view), ELM_WIN_BASIC, D_("Message"), NULL, NULL, _destroy_cb); if (ret) { g_critical("Failed to init message view for '%s'", path); if (properties) { g_hash_table_unref(properties); } free(view); free(path); return ret; } /* cache the views to open only one view per message */ if (messageviews == NULL) { messageviews = g_hash_table_new_full(g_str_hash, g_str_equal, free, NULL); } g_hash_table_insert(messageviews, path, view); view->path = path; view->number = NULL; view->name = NULL; view->photopath = NULL; elm_theme_extension_add(NULL, phoneui_theme); win = ui_utils_view_window_get(VIEW_PTR(*view)); ui_utils_view_delete_callback_set(VIEW_PTR(*view), _delete_cb); ui_utils_view_layout_set(VIEW_PTR(*view), phoneui_theme, "phoneui/messages/show"); GList *keys = g_hash_table_get_keys(properties); for (; keys; keys = keys->next) { tmp = g_hash_table_lookup(properties, keys->data); if (tmp) { g_debug("--- %s: %s", (char *)keys->data, g_variant_print(tmp, TRUE)); } } tmp = g_hash_table_lookup(properties, "Peer"); if (!tmp) { tmp = g_hash_table_lookup(properties, "Sender"); } if (!tmp) { tmp = g_hash_table_lookup(properties, "Recipient"); } if (tmp) { view->number = g_variant_dup_string(tmp, NULL); g_debug("Found number %s - starting lookup", view->number); // FIXME: use new @Contacts feature from opimd whenever it is // clear how to do that :P phoneui_utils_contact_lookup(view->number, _common_name_callback, common_utils_object_ref(view)); ui_utils_view_text_set(VIEW_PTR(*view), "text_number", view->number); } tmp = g_hash_table_lookup(properties, "Timestamp"); if (tmp) { char *date = common_utils_timestamp_to_date( (long)g_variant_get_int32(tmp)); if (date) { g_debug("Found date %s", date); ui_utils_view_text_set(VIEW_PTR(*view), "text_date", date); free(date); } } view->photo = elm_icon_add(win); evas_object_size_hint_aspect_set(view->photo, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); elm_image_file_set(view->photo, phoneui_theme, "icon/contact"); ui_utils_view_swallow(VIEW_PTR(*view), "photo", view->photo); evas_object_show(view->photo); ico = elm_icon_add(win); tmp = g_hash_table_lookup(properties, "Direction"); if (tmp) { direction = g_variant_get_string(tmp, NULL); if (strcmp(direction, "in") == 0) { g_debug("Setting status icon for an incoming message"); in_msg = EINA_TRUE; elm_image_file_set(ico, phoneui_theme, "icon/phonelog-incoming"); } else { g_debug("Setting status icon for a sent message"); in_msg = EINA_FALSE; elm_image_file_set(ico, phoneui_theme, "icon/phonelog-outgoing"); } } ui_utils_view_swallow(VIEW_PTR(*view), "icon_status", ico); evas_object_show(ico); const char *content = NULL; tmp = g_hash_table_lookup(properties, "Content"); if (tmp) { content = elm_entry_utf8_to_markup(g_variant_get_string(tmp, NULL)); } view->sc_content = elm_scroller_add(win); elm_scroller_bounce_set(view->sc_content, EINA_FALSE, EINA_FALSE); view->content = elm_entry_add(win); elm_entry_anchor_hover_style_set(view->content, "popout"); elm_entry_anchor_hover_parent_set(view->content, win); evas_object_size_hint_weight_set(view->content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); if (content) { elm_object_text_set(view->content, content); } elm_object_content_set(view->sc_content, view->content); evas_object_show(view->content); ui_utils_view_swallow(VIEW_PTR(*view), "text_content", view->sc_content); evas_object_show(view->sc_content); obj = elm_button_add(win); elm_object_text_set(obj, D_("Close")); evas_object_smart_callback_add(obj, "clicked", _close_clicked, view); ui_utils_view_swallow(VIEW_PTR(*view), "button_close", obj); evas_object_show(obj); // Options button with hover view->hv = elm_hover_add(win); obj = elm_button_add(win); elm_object_text_set(obj, D_("Options")); evas_object_smart_callback_add(obj, "clicked", _hover_bt_1, view->hv); ui_utils_view_swallow(VIEW_PTR(*view), "button_options", obj); evas_object_show(obj); elm_hover_parent_set(view->hv, win); elm_hover_target_set(view->hv, obj); box = elm_box_add(win); elm_box_horizontal_set(box, 0); elm_box_homogeneous_set(box, 1); evas_object_show(box); obj = elm_button_add(win); elm_object_text_set(obj, D_("Delete")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _delete_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); if (in_msg) { obj = elm_button_add(win); elm_object_text_set(obj, D_("Call")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _call_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); } obj = elm_button_add(win); elm_object_text_set(obj, D_("Add Contact")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _new_contact_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); view->add_contact_bt = obj; obj = elm_button_add(win); elm_object_text_set(obj, D_("Forward")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _forward_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); elm_object_part_content_set(view->hv, "top", box); obj = elm_button_add(win); elm_object_text_set(obj, D_("Answer")); evas_object_smart_callback_add(obj, "clicked", _answer_clicked, view); ui_utils_view_swallow(VIEW_PTR(*view), "button_answer", obj); evas_object_show(obj); if (in_msg) { g_debug("going to set read status for the message"); phoneui_utils_message_set_read_status(view->path, 1, NULL, NULL); g_debug("done - destroying properties now"); } g_hash_table_destroy(properties); g_debug("done"); return 0; } int message_show_view_is_init(const char* path) { struct MessageShowViewData *view; if (messageviews == NULL) { return 0; } view = (struct MessageShowViewData *) g_hash_table_lookup(messageviews, path); if (view && ui_utils_view_is_init(VIEW_PTR(*view))) { return 1; } return 0; } void message_show_view_deinit(struct MessageShowViewData *view) { if (view) { g_debug("Deiniting view for message"); ui_utils_view_deinit(VIEW_PTR(*view)); } else { g_warning("Deiniting a message view without view?"); } } void message_show_view_show(const char* path) { struct MessageShowViewData *view; g_debug("looking up message view for '%s'", path); if (messageviews == NULL) { g_debug("No message views loaded yet"); return; } view = (struct MessageShowViewData *) g_hash_table_lookup(messageviews, path); if (view) { ui_utils_view_show(VIEW_PTR(*view)); } else { g_warning("Could not find view for message '%s'", path); } g_debug("message view show done"); } void message_show_view_hide(const char* path) { (void) path; } /* --- evas callbacks ------------------------------------------------------- */ static void _close_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; struct MessageShowViewData *view = (struct MessageShowViewData *) _data; message_show_view_deinit(view); free(view); } static void _answer_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; GHashTable *options; struct MessageShowViewData *view = (struct MessageShowViewData *) _data; g_debug("message_show_view_answer_clicked()"); options = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); if (!view->number) { g_warning("Trying to answer a message without number?!"); return; } g_hash_table_insert(options, "Phone", g_variant_ref_sink(g_variant_new_string(view->number))); if (view->name) { g_hash_table_insert(options, "Name", g_variant_ref_sink(g_variant_new_string(view->name))); } if (view->photopath) { g_hash_table_insert(options, "Photo", g_variant_ref_sink(g_variant_new_string(view->photopath))); } phoneui_messages_message_new(options); //g_hash_table_destroy(options); } static void _call_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; struct MessageShowViewData *view = (struct MessageShowViewData *) _data; char *number = view->number; g_debug("_call_clicked()"); evas_object_hide(view->hv); phoneui_utils_dial(number, NULL, NULL); } static void _forward_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; char *content; GHashTable *options; struct MessageShowViewData *view = (struct MessageShowViewData *) _data; evas_object_hide(view->hv); options = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); content = elm_entry_markup_to_utf8(elm_object_text_get(view->content)); if (content) { g_hash_table_insert(options, "Content", g_variant_ref_sink(g_variant_new_string(content))); free(content); } phoneui_messages_message_new(options); } static void _delete_result_cb(GError *error, gpointer data) { struct MessageShowViewData *view = (struct MessageShowViewData *)data; if (error) { ui_utils_dialog(VIEW_PTR(view), D_("Deleting the message failed!"), DIALOG_OK, NULL, NULL); g_warning("Deleting the message failed: %s", error->message); return; } message_show_view_deinit(view); } static void _delete_confirm_cb(int result, void *data) { struct MessageShowViewData *view = (struct MessageShowViewData *)data; if (result == DIALOG_YES && view->path) { phoneui_utils_message_delete(view->path, _delete_result_cb, view); } } static void _delete_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; struct MessageShowViewData *view = (struct MessageShowViewData *) _data; g_debug("_delete_clicked()"); evas_object_hide(view->hv); ui_utils_dialog(VIEW_PTR(*view), D_("Really delete this message?"), DIALOG_YES|DIALOG_NO, _delete_confirm_cb, view); } static void _hover_bt_1(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; Evas_Object *hv = (Evas_Object *) _data; evas_object_show(hv); } /* callbacks */ static void _common_name_callback(GError *error, GHashTable *contact, void *_data) { struct MessageShowViewData *view = (struct MessageShowViewData *) _data; char *tmp; GVariant *gtmp; // FIXME: show some nice notification if (error || !contact) return; if (!ui_utils_view_is_init(VIEW_PTR(*view))) { return; } tmp = phoneui_utils_contact_display_name_get(contact); if (tmp) { ui_utils_view_text_set(VIEW_PTR(*view), "text_number", tmp); free(tmp); if (view->add_contact_bt) { evas_object_del(view->add_contact_bt); view->add_contact_bt = NULL; } } gtmp = g_hash_table_lookup(contact, "Photo"); if (gtmp) { elm_image_file_set(view->photo, g_variant_get_string(gtmp, NULL), NULL); } } static void _new_contact_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; struct MessageShowViewData *view; view = (struct MessageShowViewData *)_data; evas_object_hide(view->hv); GHashTable *options = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, common_utils_variant_unref); g_hash_table_insert(options, "Phone", g_variant_ref_sink(g_variant_new_string(view->number))); phoneui_contacts_contact_new(options); } static void _delete_cb(struct View *view, Evas_Object * win, void *event_info) { (void)win; (void)event_info; g_debug("_delete_cb"); message_show_view_deinit((struct MessageShowViewData *)view); free(view); g_debug("_delete_cb DONE"); } static void _destroy_cb(struct View *_view) { struct MessageShowViewData *view = (struct MessageShowViewData *)_view; g_debug("_destroy_cb"); g_hash_table_remove(messageviews, view->path); g_debug("_destroy_cb DONE"); } libphone-ui-shr-0.1+git20130901/src/view/message-show-view.h000066400000000000000000000027231221067027500232500ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _MESSAGE_SHOW_VIEW_H #define _MESSAGE_SHOW_VIEW_H #include #include #include "ui-utils.h" struct MessageShowViewData { struct View parent; char *path, *number, *name, *photopath; GHashTable *properties; Evas_Object *content, *photo, *sc_content, *hv, *add_contact_bt; void (*callback) (); void *callback_data; }; int message_show_view_init(char *path, GHashTable *properties); int message_show_view_is_init(const char *path); void message_show_view_deinit(struct MessageShowViewData *view); void message_show_view_show(const char *path); void message_show_view_hide(const char *path); #endif libphone-ui-shr-0.1+git20130901/src/view/phone-log-view.c000066400000000000000000000301131221067027500225230ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Martin Jansa * David Kozub * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include #include "views.h" #include "ui-utils.h" #include "common-utils.h" #include "phoneui-shr.h" struct PhoneLogViewData { struct View parent; Evas_Object *toolbar, *pager; Evas_Object *list_in, *list_out, *list_missed, *list_all; Elm_Object_Item *toolbar_missed; int count; GPtrArray *calls; }; static struct PhoneLogViewData view; static Elm_Genlist_Item_Class itc; static void _toolbar_changed(void *data, Evas_Object *obj, void *event_info); static Evas_Object *_add_genlist(Evas_Object *win); static void _add_entry(GHashTable *entry); static void _contact_lookup(GError *error, GHashTable *contact, gpointer data); static void _get_one_callback(GError *error, GHashTable *entry, gpointer data); static void _get_callback(GError *error, GHashTable **entry, int count, gpointer data); static void _hide_cb(struct View *view); static void _delete_cb(struct View *data, Evas_Object *obj, void *event_info); static void _call_changed_handler(void * data, const char *path, enum PhoneuiInfoChangeType); static void _contact_changed_handler(void *data, const char *path, enum PhoneuiInfoChangeType); static char *gl_text_get(void *data, Evas_Object * obj, const char *part); static Evas_Object *gl_content_get(void *data, Evas_Object * obj, const char *part); static Eina_Bool gl_state_get(void *data, Evas_Object * obj, const char *part); static void gl_del(void *data, Evas_Object * obj); void phone_log_view_show() { ui_utils_view_show(VIEW_PTR(view)); } void phone_log_view_hide() { ui_utils_view_hide(VIEW_PTR(view)); } int phone_log_view_init() { g_debug("Initializing the phonelog screen"); Evas_Object *win; int ret; //char buf[PATH_MAX]; ret = ui_utils_view_init(VIEW_PTR(view), ELM_WIN_BASIC, D_("Phonelog"), NULL, _hide_cb, NULL); if (ret) { g_critical("Failed to init phonelog view"); return ret; } win = ui_utils_view_window_get(VIEW_PTR(view)); ui_utils_view_delete_callback_set(VIEW_PTR(view), _delete_cb); ui_utils_view_layout_set(VIEW_PTR(view), phoneui_theme, "phoneui/phonelog/phonelog"); elm_theme_extension_add(NULL, phoneui_theme); view.pager = elm_naviframe_add(win); ui_utils_view_swallow(VIEW_PTR(view), "pager", view.pager); evas_object_show(view.pager); view.list_in = _add_genlist(win); elm_naviframe_item_simple_push(view.pager, view.list_in); view.list_out = _add_genlist(win); elm_naviframe_item_simple_push(view.pager, view.list_out); view.list_all = _add_genlist(win); elm_naviframe_item_simple_push(view.pager, view.list_all); view.list_missed = _add_genlist(win); elm_naviframe_item_simple_push(view.pager, view.list_missed); itc.item_style = "phonelog"; itc.func.text_get = gl_text_get; itc.func.content_get = gl_content_get; itc.func.state_get = gl_state_get; itc.func.del = gl_del; view.toolbar = elm_toolbar_add(win); ui_utils_view_swallow(VIEW_PTR(view), "toolbar", view.toolbar); elm_toolbar_homogeneous_set(view.toolbar, 1); elm_toolbar_shrink_mode_set(view.toolbar, ELM_TOOLBAR_SHRINK_NONE); elm_toolbar_align_set(view.toolbar, 0.0); elm_toolbar_icon_size_set(view.toolbar, 16); evas_object_size_hint_weight_set(view.toolbar, 0.0, 0.0); evas_object_size_hint_align_set(view.toolbar, EVAS_HINT_FILL, 0.0); elm_toolbar_item_append(view.toolbar, "icon/phonelog-incoming", D_("received"), _toolbar_changed, view.list_in); elm_toolbar_item_append(view.toolbar, "icon/phonelog-outgoing", D_("outgoing"), _toolbar_changed, view.list_out); view.toolbar_missed = elm_toolbar_item_append(view.toolbar, "icon/phonelog-missed", D_("missed"), _toolbar_changed, view.list_missed); elm_toolbar_item_append(view.toolbar, "icon/phonelog-all", D_("all"), _toolbar_changed, view.list_all); evas_object_show(view.toolbar); elm_toolbar_item_selected_set(view.toolbar_missed, EINA_TRUE); view.calls = g_ptr_array_new(); view.count = 25; // FIXME: make the limit configurable !!! */ phoneui_utils_calls_get(&view.count,_get_callback, NULL); phoneui_info_register_call_changes(_call_changed_handler, NULL); phoneui_info_register_contact_changes(_contact_changed_handler, NULL); return 0; } void phone_log_view_deinit() { ui_utils_view_deinit(VIEW_PTR(view)); } int phone_log_view_is_init() { return ui_utils_view_is_init(VIEW_PTR(view)); } static void _call_changed_handler(void *data, const char *path, enum PhoneuiInfoChangeType type) { (void) type; (void) data; g_debug("New call: %s", path); phoneui_utils_call_get(path, _get_one_callback, NULL); } static void _contact_changed_handler(void *data, const char *path, enum PhoneuiInfoChangeType type) { (void) path; (void) type; (void) data; } static void _toolbar_changed(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; elm_naviframe_item_simple_promote(view.pager, data); } static Evas_Object * _add_genlist(Evas_Object *win) { Evas_Object *list = elm_genlist_add(win); elm_genlist_mode_set(list, ELM_LIST_LIMIT); evas_object_size_hint_align_set(list, 0.0, 0.0); evas_object_show(list); return list; } static void _add_entry(GHashTable *entry) { Elm_Object_Item *glit; GVariant *val; int received = 0, answered = 0; val = g_hash_table_lookup(entry, "Direction"); if (val) { const char *dir = g_variant_get_string(val, NULL); if (!strcmp(dir, "in")) { received = 1; } } else { g_warning("ignoring call without Direction field!!"); return; } val = g_hash_table_lookup(entry, "Answered"); if (val) { if (g_variant_get_boolean(val)) { answered = 1; } } glit = elm_genlist_item_append(view.list_all, &itc, g_hash_table_ref(entry), NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); val = g_variant_new_int32(GPOINTER_TO_INT(glit)); g_hash_table_insert(entry, "_item_all", g_variant_ref_sink(val)); if (received) { if (answered) { glit = elm_genlist_item_append(view.list_in, &itc, g_hash_table_ref(entry), NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); val = g_variant_new_int32(GPOINTER_TO_INT(glit)); g_hash_table_insert(entry, "_item_in", g_variant_ref_sink(val)); } else { glit = elm_genlist_item_append(view.list_missed, &itc, g_hash_table_ref(entry), NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); val = g_variant_new_int32(GPOINTER_TO_INT(glit)); g_hash_table_insert(entry, "_item_missed", g_variant_ref_sink(val)); } } else { glit = elm_genlist_item_append(view.list_out, &itc, g_hash_table_ref(entry), NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); val = g_variant_new_int32(GPOINTER_TO_INT(glit)); g_hash_table_insert(entry, "_item_out", g_variant_ref_sink(val)); } } static void _update_entry(GHashTable *entry) { Elm_Object_Item *glit; GVariant *val; val = g_hash_table_lookup(entry, "_item_all"); if (val) { glit = (Elm_Object_Item *)GINT_TO_POINTER(g_variant_get_int32(val)); elm_genlist_item_update(glit); } val = g_hash_table_lookup(entry, "_item_missed"); if (val) { glit = (Elm_Object_Item *)GINT_TO_POINTER(g_variant_get_int32(val)); elm_genlist_item_update(glit); } val = g_hash_table_lookup(entry, "_item_in"); if (val) { glit = (Elm_Object_Item *)GINT_TO_POINTER(g_variant_get_int32(val)); elm_genlist_item_update(glit); } val = g_hash_table_lookup(entry, "_item_out"); if (val) { glit = (Elm_Object_Item *)GINT_TO_POINTER(g_variant_get_int32(val)); elm_genlist_item_update(glit); } } static void _contact_lookup(GError *error, GHashTable *contact, gpointer data) { if (error) { g_warning("Contact lookup error: (%d) %s", error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Contact lookup error."), error); return; } GHashTable *entry = data; if (contact) { char *s = phoneui_utils_contact_display_name_get(contact); g_hash_table_insert(entry, "Name", g_variant_ref_sink(g_variant_new_string(s))); free(s); } else { g_hash_table_insert(entry, "Name", g_variant_ref_sink(g_variant_new_string(CONTACT_NAME_UNDEFINED_STRING))); } _update_entry(entry); } static void _get_one_callback(GError *error, GHashTable *entry, gpointer data) { (void) error; (void) data; // FIXME: !!!!!!!!!!!!1 g_ptr_array_add(view.calls, entry); } static void _get_callback(GError* error, GHashTable** entry, int count, gpointer data) { (void) data; GVariant *val; int i; if (error) { g_warning("Cannot retrieve calls list: (%d) %s", error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Cannot retrieve calls list."), error); return; } for (i = 0; i < count; i++) { g_ptr_array_add(view.calls, entry[i]); val = g_hash_table_lookup(entry[i], "Peer"); if (val) { _add_entry(entry[i]); phoneui_utils_contact_lookup(g_variant_get_string(val, NULL), _contact_lookup, entry[i]); } else { g_message("ignoring call without Peer attribute"); } } } /* --- genlist callbacks --- */ static char * gl_text_get(void *data, Evas_Object * obj, const char *part) { (void) obj; GHashTable *entry = (GHashTable *) data; GVariant *val; g_debug("gl_text_get: %s", part); if (!strcmp(part, "elm.text")) { val = g_hash_table_lookup(entry, "Name"); if (val) { return g_variant_dup_string(val, NULL); } return strdup(""); } if (!strcmp(part, "elm.text.sub")) { val = g_hash_table_lookup(entry, "Peer"); if (val) { return g_variant_dup_string(val, NULL); } return strdup(CONTACT_PHONE_UNDEFINED_STRING); } if (!strcmp(part, "elm.text.2")) { val = g_hash_table_lookup(entry, "Timestamp"); if (val) { return common_utils_timestamp_to_date (g_variant_get_int32(val)); } } if (!strcmp(part, "elm.text.sub.2")) { val = g_hash_table_lookup(entry, "Duration"); if (val) { float duration = strtof(g_variant_get_string(val, NULL), NULL); int h = duration / 3600; int m = duration / 60 - h * 60; int s = duration - h * 3600 - m * 60; char durstr[10]; if (h > 0) { snprintf(durstr, 10, "%02d:%02d:%02d", h, m, s); } else { snprintf(durstr, 10, "%02d:%02d", m, s); } return strdup(durstr); } return strdup("00:00"); } return strdup(""); } static Evas_Object * gl_content_get(void *data, Evas_Object * obj, const char *part) { (void) data; if (!strcmp(part,"elm.swallow.end")) { Evas_Object *btn = elm_button_add(obj); elm_object_text_set(btn, "Action"); return (btn); } return (NULL); } static Eina_Bool gl_state_get(void *data, Evas_Object * obj, const char *part) { (void) obj; (void) part; GHashTable *entry = (GHashTable *) data; GVariant *tmp = g_hash_table_lookup(entry, "Direction"); if (tmp && g_variant_get_int32(tmp)) return (EINA_TRUE); return (EINA_FALSE); } static void gl_del(void *data, Evas_Object * obj) { (void) obj; if (data) g_hash_table_destroy((GHashTable *)data); } static void _hide_cb(struct View *_view) { struct PhoneLogViewData *view = (struct PhoneLogViewData *)_view; elm_naviframe_item_simple_promote(view->pager, view->list_missed); elm_toolbar_item_selected_set(view->toolbar_missed, EINA_TRUE); } static void _delete_cb(struct View *data, Evas_Object *obj, void *event_info) { (void)data; (void)obj; (void)event_info; phone_log_view_hide(); } libphone-ui-shr-0.1+git20130901/src/view/phone-log-view.h000066400000000000000000000020451221067027500225330ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _PHONE_LOG_VIEW_H #define _PHONE_LOG_VIEW_H void phone_log_view_show(); void phone_log_view_hide(); int phone_log_view_init(); void phone_log_view_deinit(); int phone_log_view_is_init(); #endif libphone-ui-shr-0.1+git20130901/src/view/quick-settings-view.c000066400000000000000000000504431221067027500236150ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Rui Miguel Silva Seabra * David Kozub * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include #include #include #include #include #include #include #include #include "util/common-utils.h" #include "util/ui-utils.h" #include "phoneui-shr.h" #include "views.h" #include "quick-settings-view.h" /* How long do we wait before retrying retrieving sound profile list * after a failure. */ static const int PROFILE_RETRY_DELAY = 2000; /*ms*/ struct QuickSettingsViewData { struct View parent; char *profile_str; Evas_Object *toolbar, *pager, *layout1, *layout2; Evas_Object *airplane_slide, *profiles_combo, *dimming_slide, *suspend_slide; Evas_Object *gprs_slide, *sharing_slide; Evas_Object *button_lock, *button_suspend, *button_shutdown; }; static struct QuickSettingsViewData view; static void _init_profiles_power_page(); static void _init_network_page(); static void _delete_cb(struct View *view, Evas_Object * win, void *event_info); static gboolean _profiles_list_retry(gpointer data); static void _profiles_list_cb(GError *error, char **list, int count, gpointer userdata); static void _profile_get_current_cb(GError *error, char *profile, gpointer userdata); static void _profile_selected_cb(void *data, Evas_Object *obj, void *event_info); static void _get_offline_mode_cb(GError *error, gboolean offline, gpointer data); static void _button_lock_clicked_cb(void *data, Evas_Object *obj, void *event_info); static void _button_shutdown_clicked_cb(void *data, Evas_Object *obj, void *event_info); static void _button_suspend_clicked_cb(void *data, Evas_Object *obj, void *event_info); static void _airplane_slide_changed_cb(void *data, Evas_Object *obj, void *event_info); static void _dimming_slide_changed_cb(void *data, Evas_Object *obj, void *event_info); static void _suspend_slide_changed_cb(void *data, Evas_Object *obj, void *event_info); static void _gprs_slide_changed_cb(void *data, Evas_Object *obj, void *event_info); static void _sharing_slide_changed_cb(void *data, Evas_Object *obj, void *event_info); static void _profile_changed_signal_cb(void *userdata, const char *profile); static void _resource_changed_signal_cb(void *userdata, const char *resource, gboolean state, GHashTable *attributes); static void _pdp_context_status_signal_cb(void* data, FreeSmartphoneGSMContextStatus status, GHashTable* attributes); static void _cpu_get_policy_cb(GError *error, FreeSmartphoneUsageResourcePolicy policy, gpointer userdata); static void _display_get_policy_cb(GError *error, FreeSmartphoneUsageResourcePolicy policy, gpointer userdata); static void _toolbar_clicked(void *data, Evas_Object *obj, void *event_info); int quick_settings_view_init() { g_debug("Initializing the quick-settings screen"); Evas_Object *win; int ret; ret = ui_utils_view_init(VIEW_PTR(view), ELM_WIN_BASIC, D_("Quick-settings"), NULL, NULL, NULL); if (ret) { g_critical("Failed to init quick-settings view"); return ret; } win = ui_utils_view_window_get(VIEW_PTR(view)); ui_utils_view_delete_callback_set(VIEW_PTR(view), _delete_cb); ui_utils_view_layout_set(VIEW_PTR(view), phoneui_theme, "phoneui/settings/quick-settings"); view.pager = elm_naviframe_add(win); ui_utils_view_swallow(VIEW_PTR(view), "pager", view.pager); _init_network_page(); _init_profiles_power_page(); evas_object_show(view.pager); view.toolbar = elm_toolbar_add(win); ui_utils_view_swallow(VIEW_PTR(view), "toolbar", view.toolbar); elm_toolbar_homogeneous_set(view.toolbar, EINA_TRUE); elm_toolbar_shrink_mode_set(view.toolbar, ELM_TOOLBAR_SHRINK_NONE); elm_toolbar_align_set(view.toolbar, 0.0); elm_toolbar_icon_size_set(view.toolbar, 16); evas_object_size_hint_weight_set(view.toolbar, 0.0, 0.0); evas_object_size_hint_align_set(view.toolbar, EVAS_HINT_FILL, 0.0); Elm_Object_Item *tbitem = elm_toolbar_item_append(view.toolbar, "icon/profile", D_("Profile/Power"), _toolbar_clicked, view.layout1); elm_toolbar_item_append(view.toolbar, "icon/network", D_("Network"), _toolbar_clicked, view.layout2); evas_object_show(view.toolbar); elm_toolbar_item_selected_set(tbitem, EINA_TRUE); return 0; } void quick_settings_view_deinit() { ui_utils_view_deinit(VIEW_PTR(view)); } int quick_settings_view_is_init() { return ui_utils_view_is_init(VIEW_PTR(view)); } void quick_settings_view_show() { ui_utils_view_show(VIEW_PTR(view)); } void quick_settings_view_hide() { ui_utils_view_hide(VIEW_PTR(view)); } static void _init_profiles_power_page() { Evas_Object *win = ui_utils_view_window_get(VIEW_PTR(view)); view.layout1 = elm_layout_add(win); elm_win_resize_object_add(win, view.layout1); evas_object_size_hint_weight_set(view.layout1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_layout_file_set(view.layout1, phoneui_theme, "phoneui/settings/quick-settings/profile-power"); evas_object_show(view.layout1); view.airplane_slide = elm_check_add(win); elm_object_style_set(view.airplane_slide, "toggle"); elm_object_part_content_set(view.layout1, "profiles-frame-airplane-slide", view.airplane_slide); evas_object_smart_callback_add(view.airplane_slide, "changed", _airplane_slide_changed_cb, NULL); evas_object_show(view.airplane_slide); view.dimming_slide = elm_check_add(win); elm_object_style_set(view.dimming_slide, "toggle"); elm_object_part_content_set(view.layout1, "power-frame-auto-frame-dimming-slide", view.dimming_slide); evas_object_smart_callback_add(view.dimming_slide, "changed", _dimming_slide_changed_cb, NULL); evas_object_show(view.dimming_slide); view.suspend_slide = elm_check_add(win); elm_object_style_set(view.suspend_slide, "toggle"); elm_object_part_content_set(view.layout1, "power-frame-auto-frame-suspend-slide", view.suspend_slide); evas_object_smart_callback_add(view.suspend_slide, "changed", _suspend_slide_changed_cb, NULL); evas_object_show(view.suspend_slide); elm_object_part_text_set(view.suspend_slide, "on", D_("Forbid")); elm_object_part_text_set(view.suspend_slide, "off", D_("Allow")); elm_object_part_text_set(view.dimming_slide, "on", D_("Forbid")); elm_object_part_text_set(view.dimming_slide, "off", D_("Allow")); view.profiles_combo = elm_hoversel_add(win); elm_object_part_content_set(view.layout1, "profiles-frame-profiles-combo", view.profiles_combo); elm_hoversel_hover_parent_set(view.profiles_combo, win); evas_object_show(view.profiles_combo); evas_object_smart_callback_add(view.profiles_combo, "selected", _profile_selected_cb, NULL); view.button_lock = elm_button_add(win); elm_object_text_set(view.button_lock, D_("Lock")); elm_object_part_content_set(view.layout1, "power-frame-lock-button", view.button_lock); evas_object_smart_callback_add(view.button_lock, "clicked", _button_lock_clicked_cb, NULL); evas_object_show(view.button_lock); view.button_suspend = elm_button_add(win); elm_object_text_set(view.button_suspend, D_("Suspend")); elm_object_part_content_set(view.layout1, "power-frame-suspend-button", view.button_suspend); evas_object_smart_callback_add(view.button_suspend, "clicked", _button_suspend_clicked_cb, NULL); evas_object_show(view.button_suspend); view.button_shutdown = elm_button_add(win); elm_object_text_set(view.button_shutdown, D_("Shutdown")); elm_object_part_content_set(view.layout1, "power-frame-shutdown-button", view.button_shutdown); evas_object_smart_callback_add(view.button_shutdown, "clicked", _button_shutdown_clicked_cb, NULL); evas_object_show(view.button_shutdown); elm_naviframe_item_simple_push(view.pager, view.layout1); /* Disabled until we get the list + current profile. */ elm_object_disabled_set(view.profiles_combo, EINA_TRUE); phoneui_utils_sound_profile_list(_profiles_list_cb, NULL); phoneui_utils_resources_get_resource_policy("CPU", _cpu_get_policy_cb, NULL); phoneui_utils_resources_get_resource_policy("Display", _display_get_policy_cb, NULL); phoneui_utils_get_offline_mode(_get_offline_mode_cb, NULL); /*Register to all signals*/ phoneui_info_register_and_request_profile_changes(_profile_changed_signal_cb, NULL); phoneui_info_register_and_request_resource_status(_resource_changed_signal_cb, NULL); } static void _init_network_page() { Evas_Object *win = ui_utils_view_window_get(VIEW_PTR(view)); view.layout2 = elm_layout_add(win); elm_win_resize_object_add(win, view.layout2); evas_object_size_hint_weight_set(view.layout2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_layout_file_set(view.layout2, phoneui_theme, "phoneui/settings/quick-settings/network"); evas_object_show(view.layout2); view.gprs_slide = elm_check_add(win); elm_object_style_set(view.gprs_slide, "toggle"); elm_object_part_content_set(view.layout2, "network-frame-auto-frame-gprs-slide", view.gprs_slide); evas_object_smart_callback_add(view.gprs_slide, "changed", _gprs_slide_changed_cb, NULL); elm_object_part_text_set(view.gprs_slide, "on", D_("Connected")); elm_object_part_text_set(view.gprs_slide, "off", D_("Disconnected")); evas_object_show(view.gprs_slide); view.sharing_slide = elm_check_add(win); elm_object_style_set(view.sharing_slide, "toggle"); elm_object_part_content_set(view.layout2, "network-frame-auto-frame-sharing-slide", view.sharing_slide); evas_object_smart_callback_add(view.sharing_slide, "changed", _sharing_slide_changed_cb, NULL); elm_object_part_text_set(view.sharing_slide, "on", D_("Sharing")); elm_object_part_text_set(view.sharing_slide, "off", D_("Not sharing")); evas_object_show(view.sharing_slide); // FIXME: until we implement it elm_object_disabled_set(view.sharing_slide, 1); elm_naviframe_item_simple_push(view.pager, view.layout2); phoneui_info_register_and_request_pdp_context_status(_pdp_context_status_signal_cb, NULL); } static void _delete_cb(struct View *view, Evas_Object * win, void *event_info) { (void) view; (void) win; (void) event_info; quick_settings_view_hide(); } static void _set_profile_cb(GError *error, gpointer data) { (void) data; if (error) { g_warning("Failed setting the profile: (%d) %s", error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Failed setting the profile."), error); } } static void _profile_selected_cb(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) obj; const char *profile; profile = elm_object_item_text_get(event_info); phoneui_utils_sound_profile_set(profile, _set_profile_cb, NULL); } static void _get_offline_mode_cb(GError *error, gboolean offline, gpointer data) { (void) data; if (error) { g_warning("Failed with GetOfflineMode: (%d) %s", error->code, error->message); g_error_free(error); return; } elm_check_state_set(view.airplane_slide, offline); } static gboolean _profiles_list_retry(gpointer data) { (void)data; phoneui_utils_sound_profile_list(_profiles_list_cb, NULL); return FALSE; } static void _profiles_list_cb(GError *error, char **list, int count, gpointer userdata) { /*FIXME: I should probably free this list, but how?, CHECK DBUS*/ (void) userdata; int i; if (error || !list) { if (error) g_warning("Failed to retrieve profile list: (%d) %s; retrying later", error->code, error->message); else g_warning("Failed to retrieve profile list: call succeeded, " "but no data was received; retrying later"); /* Schedule a retry later */ g_timeout_add(PROFILE_RETRY_DELAY, _profiles_list_retry, NULL); return; } for (i = 0; i < count; i++) { elm_hoversel_item_add(view.profiles_combo, list[i], NULL, ELM_ICON_NONE, NULL, NULL); } /* Determine the current profile. */ phoneui_utils_sound_profile_get(_profile_get_current_cb, NULL); } static void _profile_get_current_cb(GError *error, char *profile, gpointer userdata) { (void)userdata; if (error || !profile) { if (error) g_warning("Failed to retrieve the current profile: (%d) %s", error->code, error->message); else g_warning("Failed to retrieve the current profile: call succeeded, " "but no data was received"); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Failed to retrieve the current profile."), error); } else elm_object_text_set(view.profiles_combo, profile); /* Whether we got the profile or not, enable it now. */ elm_object_disabled_set(view.profiles_combo, EINA_FALSE); } static void _profile_changed_signal_cb(void *userdata, const char *profile) { /*FIXME: I should probably free this profile, but how?, CHECK DBUS*/ (void) userdata; elm_object_text_set(view.profiles_combo, profile); } static void _button_lock_clicked_cb(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; (void) obj; /*FIXME: Add error handling */ phoneui_utils_idle_set_state(FREE_SMARTPHONE_DEVICE_IDLE_STATE_LOCK, NULL, NULL); quick_settings_view_hide(); } static void _shutdown_confirm_cb(int result, void *data) { (void) data; if (result == DIALOG_YES) { /*FIXME: Add error handling */ phoneui_utils_usage_shutdown(NULL, NULL); quick_settings_view_hide(); } } static void _button_shutdown_clicked_cb(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; (void) obj; ui_utils_dialog(VIEW_PTR(view), D_("Do you really want to
shutdown the phone?"), DIALOG_YES|DIALOG_NO, _shutdown_confirm_cb, NULL); } static void _button_suspend_clicked_cb(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; (void) obj; /*FIXME: Add error handling */ phoneui_utils_usage_suspend(NULL, NULL); quick_settings_view_hide(); } static void _airplane_slide_changed_cb(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; int state = elm_check_state_get(obj); // FIXME: Add callback with error handling phoneui_utils_set_offline_mode(state, NULL, NULL); } static void _resource_changed_signal_cb(void *userdata, const char *resource, gboolean state, GHashTable *attributes) { GVariant *tmp; FreeSmartphoneUsageResourcePolicy policy; Evas_Object *toggle = NULL; (void) userdata; (void) state; if (!strcmp(resource, "Display")) { toggle = view.dimming_slide; } else if (!strcmp(resource, "CPU")) { toggle = view.suspend_slide; } else { goto clean; } if (!attributes) goto clean; tmp = g_hash_table_lookup(attributes, "policy"); if (!tmp) { goto clean; } /* FIXME: Should rather honor the error instead of passing NULL */ policy = free_smartphone_usage_resource_policy_from_string (g_variant_get_string(tmp, NULL), NULL); /* policy enabled = 2 auto = 0 */ if (policy == FREE_SMARTPHONE_USAGE_RESOURCE_POLICY_ENABLED) { elm_check_state_set(toggle, 1); } else if (policy == FREE_SMARTPHONE_USAGE_RESOURCE_POLICY_AUTO) { elm_check_state_set(toggle, 0); } clean: /*FIXME: how should I clean it?! */ return; // g_free(resource); if (attributes) g_hash_table_unref(attributes); } static void _pdp_context_status_signal_cb(void* data, FreeSmartphoneGSMContextStatus status, GHashTable* attributes) { (void) data; (void) attributes; switch (status) { case FREE_SMARTPHONE_GSM_CONTEXT_STATUS_ACTIVE: elm_object_disabled_set(view.sharing_slide, EINA_FALSE); case FREE_SMARTPHONE_GSM_CONTEXT_STATUS_OUTGOING: elm_check_state_set(view.gprs_slide, EINA_TRUE); break; default: elm_check_state_set(view.gprs_slide, EINA_FALSE); elm_object_disabled_set(view.sharing_slide, EINA_TRUE); break; } elm_check_state_set(view.sharing_slide, EINA_FALSE); } static void _cpu_get_policy_cb(GError* error, FreeSmartphoneUsageResourcePolicy policy, gpointer userdata) { /*FIXME: I should probably free this profile, but how?, CHECK DBUS*/ (void) userdata; if (error) { g_warning("Failed to get CPU policy"); elm_object_disabled_set(view.suspend_slide, 1); return; } else { elm_object_disabled_set(view.suspend_slide, 0); } if (policy == FREE_SMARTPHONE_USAGE_RESOURCE_POLICY_ENABLED) { elm_check_state_set(view.suspend_slide, 1); } else if (policy == FREE_SMARTPHONE_USAGE_RESOURCE_POLICY_AUTO) { elm_check_state_set(view.suspend_slide, 0); } } static void _display_get_policy_cb(GError* error, FreeSmartphoneUsageResourcePolicy policy, gpointer userdata) { /*FIXME: I should probably free this profile, but how?, CHECK DBUS*/ (void) userdata; if (error) { g_warning("Failed to get Display policy"); elm_object_disabled_set(view.dimming_slide, 1); return; } else { elm_object_disabled_set(view.dimming_slide, 0); } if (policy == FREE_SMARTPHONE_USAGE_RESOURCE_POLICY_ENABLED) { elm_check_state_set(view.dimming_slide, 1); } else if (policy == FREE_SMARTPHONE_USAGE_RESOURCE_POLICY_AUTO) { elm_check_state_set(view.dimming_slide, 0); } } static void _dimming_slide_changed_cb(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; int state = elm_check_state_get(obj); /*FIXME: Add error handling */ if (state) { phoneui_utils_resources_set_resource_policy("Display", FREE_SMARTPHONE_USAGE_RESOURCE_POLICY_ENABLED, NULL, NULL); } else { phoneui_utils_resources_set_resource_policy("Display", FREE_SMARTPHONE_USAGE_RESOURCE_POLICY_AUTO, NULL, NULL); } } static void _suspend_slide_changed_cb(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; int state = elm_check_state_get(obj); /*FIXME: Add error handling */ if (state) { phoneui_utils_resources_set_resource_policy("CPU", FREE_SMARTPHONE_USAGE_RESOURCE_POLICY_ENABLED, NULL, NULL); } else { phoneui_utils_resources_set_resource_policy("CPU", FREE_SMARTPHONE_USAGE_RESOURCE_POLICY_AUTO, NULL, NULL); } } static void _pdp_activate_cb(GError *error, gpointer data) { (void) data; elm_object_disabled_set(view.gprs_slide, EINA_FALSE); if (error) { g_warning("Activating PDP failed: (%d) %s", error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Activating PDP failed."), error); elm_check_state_set(view.gprs_slide, EINA_FALSE); } } static void _pdp_deactivate_cb(GError *error, gpointer data) { (void) data; elm_object_disabled_set(view.gprs_slide, EINA_FALSE); if (error) { g_warning("De-Activating PDP failed: (%d) %s", error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("De-Activating PDP failed."), error); /* FIXME: think about if this is right for the deactivate does not work case !!! */ elm_check_state_set(view.gprs_slide, EINA_TRUE); } } static void _gprs_slide_changed_cb(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; int state = elm_check_state_get(obj); /* disable the toggler until we get hit by the signal that the PDP context actually really changed */ elm_object_disabled_set(obj, EINA_TRUE); if (state) { phoneui_utils_pdp_activate_context(_pdp_activate_cb, NULL); } else { phoneui_utils_pdp_deactivate_context(_pdp_deactivate_cb, NULL); } } static void _sharing_slide_changed_cb(void *data, Evas_Object *obj, void *event_info) { (void) data; (void) event_info; (void) obj; int state = elm_check_state_get(obj); if (state) { phoneui_utils_network_start_connection_sharing("usb0", NULL, NULL); } else { phoneui_utils_network_stop_connection_sharing("usb0", NULL, NULL); } } static void _toolbar_clicked(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; Evas_Object *ly = data; elm_naviframe_item_simple_promote(view.pager, ly); } libphone-ui-shr-0.1+git20130901/src/view/quick-settings-view.h000066400000000000000000000021621221067027500236150ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Rui Miguel Silva Seabra * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _QUICK_SETTINGS_VIEW_H #define _QUICK_SETTINGS_VIEW_H void quick_settings_view_show(); void quick_settings_view_hide(); int quick_settings_view_init(); void quick_settings_view_deinit(); int quick_settings_view_is_init(); #endif libphone-ui-shr-0.1+git20130901/src/view/sim-auth-input-view.c000066400000000000000000000231761221067027500235320ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include /* for sleep */ #include #include #include #include #include #include "common-utils.h" #include "ui-utils.h" #include "views.h" #include "widget/elm_keypad.h" #include "sim-auth-input-view.h" #define _MAX_PIN_LENGTH 9 #include "phoneui-shr.h" struct SimAuthInputViewData { struct View parent; int mode; const char *msg; char stars[_MAX_PIN_LENGTH]; char pin[_MAX_PIN_LENGTH]; int pin_length; char puk[_MAX_PIN_LENGTH]; int puk_length; char pin_confirm[_MAX_PIN_LENGTH]; int pin_confirm_length; Evas_Object *bt1, *bt2, *keypad; Evas_Object *notify; }; static struct SimAuthInputViewData view; enum SimAuthModes { MODE_ERROR, MODE_PIN, MODE_PUK, MODE_PUK_NEW_PIN, MODE_PUK_NEW_PIN_CONFIRM }; static void _sim_auth_keypad_clicked(void *data, Evas_Object *obj, void *event_info); static void _sim_auth_ok_clicked(void *data, Evas_Object *obj, void *event_info); static void _sim_auth_delete_clicked(void *data, Evas_Object *obj, void *event_info); static void _evaluate_status(const int status); static void _sim_auth_update(); static gboolean _sim_auth_close(gpointer data); static void _auth_status_cb(GError *error, FreeSmartphoneGSMSIMAuthStatus status, gpointer data); int sim_auth_input_view_init() { g_debug("Initializing the sim-auth-input view"); Evas_Object *win; int ret; ret = ui_utils_view_init(VIEW_PTR(view), ELM_WIN_BASIC, D_("SIM Auth"), NULL, NULL, NULL); if (ret) { g_critical("Failed to init sim-auth-input view"); return ret; } view.notify = NULL; win = ui_utils_view_window_get(VIEW_PTR(view)); ui_utils_view_layout_set(VIEW_PTR(view), phoneui_theme, "phoneui/notification/sim_auth_input"); view.bt1 = elm_button_add(win); elm_object_text_set(view.bt1, D_("Delete")); evas_object_smart_callback_add(view.bt1, "clicked", _sim_auth_delete_clicked, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_delete", view.bt1); evas_object_show(view.bt1); view.bt2 = elm_button_add(win); elm_object_text_set(view.bt2, D_("OK")); evas_object_smart_callback_add(view.bt2, "clicked", _sim_auth_ok_clicked, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_ok", view.bt2); elm_object_disabled_set(view.bt2, EINA_TRUE); evas_object_show(view.bt2); view.keypad = (Evas_Object *)elm_keypad_add(win); evas_object_smart_callback_add(view.keypad, "clicked", _sim_auth_keypad_clicked, NULL); ui_utils_view_swallow(VIEW_PTR(view), "keypad", view.keypad); evas_object_show(view.keypad); return 0; } int sim_auth_input_view_is_init() { return ui_utils_view_is_init(VIEW_PTR(view)); } void sim_auth_input_view_deinit() { ui_utils_view_deinit(VIEW_PTR(view)); evas_object_smart_callback_del(view.keypad, "clicked", _sim_auth_keypad_clicked); } void sim_auth_input_view_show() { phoneui_utils_sim_auth_status_get(_auth_status_cb, NULL); ui_utils_view_show(VIEW_PTR(view)); } void sim_auth_input_view_hide() { ui_utils_view_hide(VIEW_PTR(view)); } static void _evaluate_status(const int status) { const char *msg; switch (status) { case FREE_SMARTPHONE_GSM_SIM_AUTH_STATUS_PIN_REQUIRED: g_debug("PHONEUI_SIM_PIN_REQUIRED"); view.mode = MODE_PIN; msg = D_("Please enter your PIN"); break; case FREE_SMARTPHONE_GSM_SIM_AUTH_STATUS_PIN2_REQUIRED: g_debug("PHONEUI_SIM_PIN2_REQUIRED"); view.mode = MODE_PIN; msg = D_("Please enter your PIN2"); break; case FREE_SMARTPHONE_GSM_SIM_AUTH_STATUS_PUK_REQUIRED: g_debug("PHONEUI_SIM_PUK_REQUIRED"); view.mode = MODE_PUK; msg = D_("Please enter your PUK"); break; case FREE_SMARTPHONE_GSM_SIM_AUTH_STATUS_PUK2_REQUIRED: g_debug("PHONEUI_SIM_PUK2_REQUIRED"); view.mode = MODE_PUK; msg = D_("Please enter your PUK2"); break; case FREE_SMARTPHONE_GSM_SIM_AUTH_STATUS_READY: g_debug("PHONEUI_SIM_READY"); sim_auth_input_view_hide(); view.notify = ui_utils_notify(ui_utils_view_window_get(VIEW_PTR(view)), D_("SIM unlocked"), 5); evas_object_show(view.notify); return; default: g_debug("Unknown status %d", status); view.mode = MODE_ERROR; view.notify = ui_utils_notify(ui_utils_view_window_get(VIEW_PTR(view)), D_("Unknown error"), 10); evas_object_show(view.notify); return; } ui_utils_view_text_set(VIEW_PTR(view), "instruction", msg); } static void _auth_status_cb(GError *error, FreeSmartphoneGSMSIMAuthStatus status, gpointer data) { (void) error; (void) data; if (view.notify) { evas_object_del(view.notify); } _evaluate_status(status); view.pin[0] = 0; view.pin_length = 0; view.pin_confirm[0] = 0; view.pin_confirm_length = 0; view.puk[0] = 0; view.puk_length = 0; _sim_auth_update(); } static void _pin_send_cb(GError *error, gpointer data) { (void) data; if (view.notify) { evas_object_del(view.notify); } if (error) { g_warning("Sending PIN failed"); view.notify = ui_utils_notify (ui_utils_view_window_get(VIEW_PTR(view)), D_("PIN wrong"), 0); phoneui_utils_sim_auth_status_get(_auth_status_cb, NULL); return; } g_debug("PIN worked out"); view.notify = ui_utils_notify (ui_utils_view_window_get(VIEW_PTR(view)), D_("PIN Ok"), 0); g_timeout_add(5, _sim_auth_close, NULL); } static void _puk_send_cb(GError *error, gpointer data) { (void) data; if (view.notify) { evas_object_hide(view.notify); } if (error) { g_critical("Sending PUK failed"); view.notify = ui_utils_notify (ui_utils_view_window_get(VIEW_PTR(view)), D_("PUK wrong"), 0); phoneui_utils_sim_auth_status_get(_auth_status_cb, NULL); } else { view.notify = ui_utils_notify (ui_utils_view_window_get(VIEW_PTR(view)), D_("PUK Ok"), 0); g_timeout_add(5, _sim_auth_close, NULL); } } static void _sim_auth_ok_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; (void) _data; switch (view.mode) { case MODE_PIN: view.notify = ui_utils_notify(ui_utils_view_window_get(VIEW_PTR(view)), D_("Checking..."), 0); evas_object_show(view.notify); phoneui_utils_sim_pin_send(view.pin, _pin_send_cb, NULL); break; case MODE_PUK: view.mode = MODE_PUK_NEW_PIN; _sim_auth_update(); ui_utils_view_text_set(VIEW_PTR(view), "instruction", D_("Please enter a new PIN")); break; case MODE_PUK_NEW_PIN: view.mode = MODE_PUK_NEW_PIN_CONFIRM; _sim_auth_update(); ui_utils_view_text_set(VIEW_PTR(view), "instruction", D_("Please confirm the new PIN")); break; case MODE_PUK_NEW_PIN_CONFIRM: view.notify = ui_utils_notify(ui_utils_view_window_get(VIEW_PTR(view)), D_("Checking..."), 0); evas_object_show(view.notify); phoneui_utils_sim_puk_send(view.puk, view.pin, _puk_send_cb, NULL); break; } } static void _sim_auth_keypad_clicked(void *data, Evas_Object * obj, void *event_info) { (void) obj; (void) data; char *string; int *length; char input = ((char *) event_info)[0]; if (view.mode == MODE_PIN || view.mode == MODE_PUK_NEW_PIN) { string = view.pin; length = &(view.pin_length); } else if (view.mode == MODE_PUK) { string = view.puk; length = &(view.puk_length); } else { string = view.pin_confirm; length = &(view.pin_confirm_length); } if (*length < _MAX_PIN_LENGTH) { string[*length] = input; (*length)++; string[*length] = 0; _sim_auth_update(); } } void _sim_auth_delete_clicked(void *data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; (void) data; char *string; int *length; if (view.mode == MODE_PIN || view.mode == MODE_PUK_NEW_PIN) { string = view.pin; length = &(view.pin_length); } else if (view.mode == MODE_PUK) { string = view.puk; length = &(view.puk_length); } else { string = view.pin_confirm; length = &(view.pin_confirm_length); } if (*length > 0) { (*length)--; string[*length] = 0; _sim_auth_update(); } } static void _sim_auth_update() { Eina_Bool disabled = EINA_TRUE; int i, length = 0; if (view.mode == MODE_PIN || view.mode == MODE_PUK_NEW_PIN) { if (common_utils_is_pin(view.pin)) { disabled = EINA_FALSE; } length = view.pin_length; } else if (view.mode == MODE_PUK_NEW_PIN_CONFIRM) { if (common_utils_is_pin(view.pin_confirm) && !strcmp(view.pin, view.pin_confirm)) { disabled = EINA_FALSE; } length = view.pin_confirm_length; } else if (view.mode == MODE_PUK) { if (common_utils_is_puk(view.puk)) { disabled = EINA_FALSE; } length = view.puk_length; } else { g_warning("Invalid sim auth mode %d", view.mode); } elm_object_disabled_set(view.bt2, disabled); for (i = 0; i < length && i < _MAX_PIN_LENGTH; i++) { view.stars[i] = '*'; } view.stars[i] = 0; ui_utils_view_text_set(VIEW_PTR(view), "input_text", view.stars); } static gboolean _sim_auth_close(gpointer data) { (void) data; sim_auth_input_view_deinit(); return FALSE; } libphone-ui-shr-0.1+git20130901/src/view/sim-auth-input-view.h000066400000000000000000000021431221067027500235260ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _SIM_AUTH_INPUT_VIEW_H #define _SIM_AUTH_INPUT_VIEW_H #include void sim_auth_input_view_show(); void sim_auth_input_view_hide(); int sim_auth_input_view_init(); void sim_auth_input_view_deinit(); int sim_auth_input_view_is_init(); #endif libphone-ui-shr-0.1+git20130901/src/view/sim-manager-view.c000066400000000000000000000611761221067027500230500ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Martin Jansa * David Kozub * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include #include #include #include #include #include "common-utils.h" #include "contact-list-common.h" #include "sim-manager-view.h" #include "ui-utils.h" #include "ui-utils-contacts.h" #include "phoneui-shr.h" #include "views.h" struct SimManagerListData { Evas_Object *layout; Evas_Object *list; Evas_Object *index; int count; int current; }; struct SimManagerViewData { struct View view; struct SimManagerListData list_data; Evas_Object *bx, *hv; Evas_Object *bt_import_all, *bt_options, *bt_message, *bt_edit; Evas_Object *bt_delete, *bt_copy_to_sim, *pb; Evas_Object *notify; Eina_Bool pb_run; Ecore_Timer *pb_timer; Eina_Bool import_error; }; static struct SimManagerViewData view; struct SimContactData { FreeSmartphoneGSMSIMEntry *entry; int state; }; static Elm_Genlist_Item_Class itc; void sim_manager_list_fill(struct SimManagerListData *list_data); /* progressbar functions taken from elementary_test*/ static Eina_Bool _loading_indicator_value_set (void *data) { (void) data; double progress; progress = elm_progressbar_value_get (view.pb); if (progress < 1.0) progress += 0.0123; else progress = 0.0; elm_progressbar_value_set(view.pb, progress); if (progress < 1.0) return ECORE_CALLBACK_RENEW; view.pb_run = 0; return ECORE_CALLBACK_CANCEL; } static void loading_indicator_start() { edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "start_loading",""); elm_progressbar_pulse(view.pb, EINA_TRUE); if (!view.pb_run) { view.pb_timer = ecore_timer_add(0.1, _loading_indicator_value_set, NULL); view.pb_run = EINA_TRUE; } } static void loading_indicator_stop() { edje_object_signal_emit(elm_layout_edje_get(view.view.layout), "stop_loading",""); elm_progressbar_pulse(view.pb, EINA_FALSE); if (view.pb_run) { ecore_timer_del(view.pb_timer); view.pb_run = EINA_FALSE; } } /* --- select contact functions --- */ typedef struct { struct View view; void (*callback)(const char *, void *); void *data; Evas_Object *inwin; Evas_Object *list, *layout, *cbutton, *sbutton; struct ContactListData contact_list_data; GList *numbers; } _contact_select_pack; static void _contact_select_delete_cb(struct View *selview, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; ui_utils_view_deinit(selview); } static void _contact_select_cancel(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; _contact_select_pack *pack = data; pack->callback(NULL, pack->data); ui_utils_view_deinit(&pack->view); } static void _contact_select_add(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; _contact_select_pack *pack = data; Elm_Object_Item *glit; GHashTable *properties; char *path = NULL; GVariant *p; glit = elm_genlist_selected_item_get(pack->contact_list_data.list); properties = glit ? (GHashTable *) elm_object_item_data_get(glit) : NULL; if (properties) { p = g_hash_table_lookup(properties, "Path"); if (p) { path = g_variant_dup_string(p, NULL); } } pack->callback(path, pack->data); ui_utils_view_deinit(&pack->view); } static void contact_select_view(void (*cb)(const char *, void *), void *data) { Evas_Object *win; int ret; _contact_select_pack *pack = g_malloc(sizeof(_contact_select_pack)); pack->callback = cb; pack->data = data; ret = ui_utils_view_init(VIEW_PTR(*pack), ELM_WIN_BASIC, D_("Select Contact"), NULL, NULL, NULL); if (ret) { g_critical("Failed to init sim manager view"); return; } win = ui_utils_view_window_get(VIEW_PTR(*pack)); ui_utils_view_delete_callback_set(VIEW_PTR(*pack), _contact_select_delete_cb); pack->view.win = win; ui_utils_view_layout_set(VIEW_PTR(*pack), phoneui_theme, "phoneui/messages/new/contacts"); elm_theme_extension_add(NULL, phoneui_theme); pack->contact_list_data.view = &pack->view; pack->contact_list_data.layout = pack->view.layout; contact_list_add(&pack->contact_list_data); pack->cbutton = elm_button_add(win); elm_object_text_set(pack->cbutton, D_("Cancel")); evas_object_smart_callback_add(pack->cbutton, "clicked", _contact_select_cancel, pack); ui_utils_view_swallow(VIEW_PTR(pack), "contacts_button_back", pack->cbutton); evas_object_show(pack->cbutton); pack->sbutton = elm_button_add(win); elm_object_text_set(pack->sbutton, D_("Select")); evas_object_smart_callback_add(pack->sbutton, "clicked", _contact_select_add, pack); ui_utils_view_swallow(VIEW_PTR(*pack), "contacts_button_add", pack->sbutton); evas_object_show(pack->sbutton); g_debug("fill contact list"); contact_list_fill(&pack->contact_list_data); ui_utils_view_show(VIEW_PTR(*pack)); } /* --- genlist callbacks --- */ static char * gl_text_get(void *data, Evas_Object * obj, const char *part) { (void) obj; const struct SimContactData *cdata = data; if (!strcmp(part, "elm.text")) { if (cdata->entry->name && *cdata->entry->name) { return strdup(cdata->entry->name); } } else if (!strcmp(part, "elm.text.sub")) { if (cdata->entry->number && *cdata->entry->number) { return strdup(cdata->entry->number); } } return NULL; } static Eina_Bool gl_state_get(void *data, Evas_Object * obj, const char *part) { (void) obj; (void) data; (void) part; return 0; } static void gl_del(void *data, Evas_Object * obj) { (void) obj; (void) data; // FIXME: how to free if it is const? // FreeSmartphoneGSMSIMEntry *entry = data; // free_smartphone_gsm_sim_entry_free(entry); } static void _list_edit_clicked(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; evas_object_hide(view.hv); } /* add contact functions */ typedef struct { struct View* view; const char *path; const char *name; const char *number; int index; Evas_Object *inwin; Evas_Object *name_entry; Evas_Object *number_entry; } _number_add_pack; static gboolean _number_add_destruct(gpointer data) { _number_add_pack *pack = (_number_add_pack *) data; g_debug("Destructing number add inwin"); evas_object_del(pack->inwin); free (pack); return FALSE; } void _number_add_add_to_sim(GError *error, gpointer pack) { if (error) { g_warning("Failed to write to SIM: (%d) %s", error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Failed to write to SIM."), error); } else { /* elm_genlist_clear(view.list_data.list); sim_manager_list_fill(&view.list_data); */ _number_add_pack *cpack = (_number_add_pack *) pack; FreeSmartphoneGSMSIMEntry *entry; entry = malloc(sizeof(FreeSmartphoneGSMSIMEntry)); entry->index = cpack->index; entry->name = g_strdup(cpack->name); entry->number = g_strdup(cpack->number); struct SimContactData *data; data = malloc(sizeof(*data)); data->entry = entry; data->state = 0; elm_genlist_item_append(view.list_data.list, &itc, data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); } g_timeout_add(0, _number_add_destruct, pack); } int _find_next_free_index(int max_index) { int i, found; Elm_Object_Item *glit; const struct SimContactData *entry; for (i = 1; i <= max_index; i++) { found = 0; glit = elm_genlist_first_item_get(view.list_data.list); entry = elm_object_item_data_get(glit); while (entry) { if (entry->entry->index == i) found = 1; glit = elm_genlist_item_next_get(glit); entry = elm_object_item_data_get(glit); } if (found == 0) { return i; } } return -1; } void _number_add_find_index_cb(GError *error, int max_index, int number_length, int name_length, gpointer data) { (void)number_length; (void)name_length; int min_index; _number_add_pack *pack = (_number_add_pack *) data; if (error) { g_warning("Failed retrieving Phonebook Info: (%d) %s", error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Failed retrieving Phonebook Info."), error); g_timeout_add(0, _number_add_destruct, pack); return; } min_index = _find_next_free_index(max_index); if (min_index > 0) { pack->index = min_index; g_debug("Save contact: %s (%s) to index %d", pack->name, pack->number, min_index); phoneui_utils_sim_contact_store(SIM_CONTACTS_CATEGORY, min_index, pack->name, pack->number, _number_add_add_to_sim, pack); } else { // FIXME: show notification g_warning("Failed to find an empty index on SIM!"); g_timeout_add(0, _number_add_destruct, pack); } } static void _number_add_save(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; _number_add_pack *pack = (_number_add_pack *) data; pack->name = elm_entry_markup_to_utf8( elm_entry_entry_get(pack->name_entry)); pack->number = elm_entry_markup_to_utf8( elm_entry_entry_get(pack->number_entry)); phoneui_utils_sim_phonebook_info_get(SIM_CONTACTS_CATEGORY, _number_add_find_index_cb, pack); } static void _number_add_cancel(void *data, Evas_Object *obj, void *event_info) { (void) obj; (void) event_info; _number_add_pack *pack = (_number_add_pack *) data; g_timeout_add(0, _number_add_destruct, pack); } void _number_add_contact_get_cb(GError *error, GHashTable *properties, gpointer data) { _number_add_pack *pack = (_number_add_pack *) data; pack->name = phoneui_utils_contact_display_name_get(properties); if (error || !properties) { g_warning("Failed to retrieve contact: %s [error (%d) %s]", pack->path, (error)? error->code : 0, (error)? error->message : "NULL"); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Failed to retrieve contact."), error); g_timeout_add(0, _number_add_destruct, pack); return; } Evas_Object *name_lb, *sbtn, *win, *box, *number_lb, *fr0, *fr1; Evas_Object *cbtn, *box0; win = ui_utils_view_window_get(VIEW_PTR(view)); g_debug("add the inwin"); pack->inwin = elm_win_inwin_add(win); g_debug("add the box"); box = elm_box_add(win); evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0.0); elm_win_resize_object_add(win, box); evas_object_show(box); g_debug("add name label"); name_lb = elm_label_add(win); elm_win_resize_object_add(win, name_lb); evas_object_size_hint_weight_set(name_lb, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(name_lb, EVAS_HINT_FILL, 0.0); elm_object_text_set(name_lb, D_("Name:")); evas_object_show(name_lb); elm_box_pack_end(box, name_lb); fr0 = elm_frame_add(win); elm_object_style_set(fr0, "outdent_bottom"); evas_object_size_hint_weight_set(fr0, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(fr0, EVAS_HINT_FILL, 0.0); elm_box_pack_end(box, fr0); evas_object_show(fr0); // FIXME: entry expands too much on focus g_debug("add name entry: %s", pack->name); pack->name_entry = elm_entry_add(win); elm_entry_single_line_set(pack->name_entry, EINA_TRUE); elm_entry_editable_set(pack->name_entry, EINA_TRUE); elm_entry_entry_set(pack->name_entry, elm_entry_utf8_to_markup(pack->name)); elm_object_content_set(fr0, pack->name_entry); evas_object_show(pack->name_entry); g_debug("add number label"); number_lb = elm_label_add(win); elm_win_resize_object_add(win, number_lb); evas_object_size_hint_weight_set(number_lb, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(number_lb, EVAS_HINT_FILL, 0.0); elm_object_text_set(number_lb, D_("Number:")); evas_object_show(number_lb); elm_box_pack_end(box, number_lb); fr1 = elm_frame_add(win); elm_object_style_set(fr1, "outdent_bottom"); evas_object_size_hint_weight_set(fr1, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(fr1, EVAS_HINT_FILL, 0.0); elm_box_pack_end(box, fr1); evas_object_show(fr1); g_debug("add number entry: %s", pack->number); pack->number_entry = elm_entry_add(win); elm_entry_single_line_set(pack->number_entry, EINA_TRUE); elm_entry_editable_set(pack->number_entry, EINA_TRUE); elm_entry_entry_set(pack->number_entry, elm_entry_utf8_to_markup(pack->number)); elm_object_content_set(fr1, pack->number_entry); evas_object_show(pack->number_entry); g_debug("add the bottom box"); box0 = elm_box_add(win); elm_box_horizontal_set(box0, EINA_TRUE); evas_object_size_hint_weight_set(box0, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(box, box0); evas_object_show(box0); sbtn = elm_button_add(win); elm_win_resize_object_add(win, sbtn); evas_object_size_hint_weight_set(sbtn, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(sbtn, EVAS_HINT_FILL, 0.0); evas_object_smart_callback_add(sbtn, "clicked", _number_add_save, pack); elm_object_text_set(sbtn, D_("Save")); evas_object_show(sbtn); elm_box_pack_start(box0, sbtn); cbtn = elm_button_add(win); elm_win_resize_object_add(win, cbtn); evas_object_size_hint_weight_set(cbtn, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(cbtn, EVAS_HINT_FILL, 0.0); evas_object_smart_callback_add(cbtn, "clicked", _number_add_cancel, pack); elm_object_text_set(cbtn, D_("Cancel")); evas_object_show(cbtn); elm_box_pack_end(box0, cbtn); elm_win_inwin_content_set(pack->inwin, box); elm_win_inwin_activate(pack->inwin); } void _number_add_cb(const char *number, void *data) { g_debug("sim-manager: selected number: %s", number); _number_add_pack *pack = (_number_add_pack *) data; pack->number = g_strdup(number); phoneui_utils_contact_get(pack->path, _number_add_contact_get_cb, pack); } void _list_copy_to_sim_cb(const char *path, void *data) { g_debug("sim-manager: selected contact: %s", path); _number_add_pack *pack = (_number_add_pack *) data; pack->path = g_strdup(path); ui_utils_contacts_contact_number_select(VIEW_PTR(view), path, _number_add_cb, data); } static void _list_copy_to_sim_clicked(void *data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; (void) data; _number_add_pack *pack = g_malloc(sizeof(_number_add_pack)); contact_select_view( _list_copy_to_sim_cb, pack); } /* import functions */ static void _import_one_contact_cb(GError *error, char *path, void *data) { (void) path; (void) data; loading_indicator_stop(); Elm_Object_Item *glit = data; struct SimContactData *cdata = (struct SimContactData *)elm_object_item_data_get(glit); if (error) { g_warning("importing one contact failed: (%d) %s", error->code, error->message); view.notify = ui_utils_notify( ui_utils_view_window_get(VIEW_PTR(view)), D_("Importing contact failed"), 10); cdata->state = 1; } else { g_debug("contact imported ok"); view.notify = ui_utils_notify(ui_utils_view_window_get(VIEW_PTR(view)), D_("Contact successfully imported"), 10); cdata->state = 0; } evas_object_show(view.notify); } static void _import_all_contacts_cb(GError *error, char *path, void *data) { (void) path; Elm_Object_Item *glit = data; struct SimContactData *cdata = (struct SimContactData *)elm_object_item_data_get(glit); if (error) { cdata->state = 1; view.import_error = EINA_TRUE; g_warning("Adding the contact failed: (%d) %s", error->code, error->message); } else { cdata->state = 0; } if (glit == elm_genlist_last_item_get(view.list_data.list)) { g_debug("import finished"); loading_indicator_stop(); if (view.import_error) { ui_utils_dialog(VIEW_PTR(view), D_("Import had errors! Failed entries are marked."), DIALOG_OK, NULL, NULL); } else { view.notify = ui_utils_notify(ui_utils_view_window_get (VIEW_PTR(view)), D_("All contacts added succesfully"), 10); evas_object_show(view.notify); } } free(cdata); } static void _import_contact(Elm_Object_Item *glit, void (*callback)(GError *, char *, gpointer)) { g_debug("_import_contact()"); GVariant *tmp; if (!glit) { return; } const struct SimContactData *cdata = elm_object_item_data_get(glit); if (cdata->entry) { GHashTable *qry = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, common_utils_variant_unref); tmp = g_variant_new_string(cdata->entry->name); g_hash_table_insert(qry, "Name", g_variant_ref_sink(tmp)); tmp = g_variant_new_string(cdata->entry->number); g_hash_table_insert(qry, "Phone", g_variant_ref_sink(tmp)); phoneui_utils_contact_add(qry, callback, glit); g_hash_table_unref(qry); } } static void _list_import_clicked(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; evas_object_hide(view.hv); loading_indicator_start(); _import_contact(elm_genlist_selected_item_get(view.list_data.list), _import_one_contact_cb); } static void _list_import_all_clicked(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; Elm_Object_Item *glit; loading_indicator_start(); view.import_error = EINA_FALSE; glit = elm_genlist_first_item_get(view.list_data.list); while (glit) { _import_contact(glit, _import_all_contacts_cb); glit = elm_genlist_item_next_get(glit); } } /* delete functions */ static void _contact_delete_confirmiation_cb(GError *error, gpointer data) { if (error) { g_warning("Error while deleting entry!"); ui_utils_dialog(VIEW_PTR(view), D_("Error while deleting entry!"), DIALOG_OK, NULL, NULL); } else { Elm_Object_Item *glit = data; elm_object_item_del(glit); } } static void _contact_delete_confirm_cb(int result, void *data) { if (!data || result != DIALOG_YES) return; Elm_Object_Item *glit = data; const struct SimContactData *cdata = elm_object_item_data_get(glit); if (cdata->entry) { phoneui_utils_sim_contact_delete(SIM_CONTACTS_CATEGORY, cdata->entry->index, _contact_delete_confirmiation_cb, glit); } } static void _list_delete_clicked(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; Elm_Object_Item *glit; evas_object_hide(view.hv); glit = elm_genlist_selected_item_get(view.list_data.list); if (glit) { ui_utils_dialog(VIEW_PTR(view), D_("Really delete this contact?"), DIALOG_YES|DIALOG_NO, _contact_delete_confirm_cb, glit); } } /* main ui functions */ static void _list_options_clicked(void *data, Evas_Object * obj, void *event_info) { (void) data; (void) obj; (void) event_info; evas_object_show(view.hv); } void sim_manager_list_add(struct SimManagerListData *list_data) { Evas_Object *win; win = ui_utils_view_window_get(VIEW_PTR(view)); list_data->index = NULL; list_data->list = elm_genlist_add(win); elm_genlist_mode_set(list_data->list, ELM_LIST_LIMIT); evas_object_size_hint_align_set(list_data->list, 0.0, 0.0); elm_object_scale_set(list_data->list, 1.0); itc.item_style = "sim-contact"; itc.func.text_get = gl_text_get; itc.func.state_get = gl_state_get; itc.func.del = gl_del; evas_object_show(list_data->list); if (list_data->layout) { elm_object_part_content_set(list_data->layout, "contacts_list", list_data->list); } } Elm_Object_Item * sim_manager_list_item_add(struct SimManagerListData *list_data, FreeSmartphoneGSMSIMEntry *entry) { struct SimContactData *data; data = malloc(sizeof(*data)); data->entry = entry; data->state = 0; g_debug("sim_manager_list_item_add(%s)", entry ? entry->name : "NULL"); return elm_genlist_item_append(list_data->list, &itc, data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); } static void _sim_contacts_get_callback(GError *error, FreeSmartphoneGSMSIMEntry *entry, int count, gpointer data) { int i; struct SimManagerListData *list_data = data; if (error) { g_warning("Failed retrieving SIM Phonebook: (%d) %s", error->code, error->message); ui_utils_error_message_from_gerror_show(VIEW_PTR(view), D_("Failed retrieving SIM Phonebook."), error); // FIXME: destroy SIM Manager return; } for (i = 0; i < count; i++) { g_debug("%d [%d]: %s / %s", i, entry->index, entry->name, entry->number); sim_manager_list_item_add(list_data, free_smartphone_gsm_sim_entry_dup(entry)); entry++; } loading_indicator_stop(); } void sim_manager_list_fill(struct SimManagerListData *list_data) { loading_indicator_start(); g_debug("sim_manager_list_fill()"); list_data->current = 0; phoneui_utils_sim_contacts_get(SIM_CONTACTS_CATEGORY, _sim_contacts_get_callback, list_data); } static void _delete_cb(struct View *view, Evas_Object *obj, void *event_info) { (void)view; (void)obj; (void)event_info; loading_indicator_stop(); sim_manager_view_deinit(); } int sim_manager_view_init() { Evas_Object *win; int ret; ret = ui_utils_view_init(VIEW_PTR(view), ELM_WIN_BASIC, D_("SIM Manager"), NULL, NULL, NULL); if (ret) { g_critical("Failed to init sim manager view"); return ret; } win = ui_utils_view_window_get(VIEW_PTR(view)); ui_utils_view_delete_callback_set(VIEW_PTR(view), _delete_cb); view.view.win = win; ui_utils_view_layout_set(VIEW_PTR(view), phoneui_theme, "phoneui/settings/sim-manager"); elm_theme_extension_add(NULL, phoneui_theme); view.list_data.layout = view.view.layout; sim_manager_list_add(&view.list_data); view.bt_import_all = elm_button_add(win); elm_object_text_set(view.bt_import_all, D_("Import all")); evas_object_smart_callback_add(view.bt_import_all, "clicked", _list_import_all_clicked, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_import_all", view.bt_import_all); evas_object_show(view.bt_import_all); view.bt_copy_to_sim = elm_button_add(win); elm_object_text_set(view.bt_copy_to_sim, D_("Copy to SIM")); evas_object_smart_callback_add(view.bt_copy_to_sim, "clicked", _list_copy_to_sim_clicked, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_new", view.bt_copy_to_sim); evas_object_show(view.bt_copy_to_sim); view.bt_options = elm_button_add(win); elm_object_text_set(view.bt_options, D_("Options")); evas_object_smart_callback_add(view.bt_options, "clicked", _list_options_clicked, NULL); ui_utils_view_swallow(VIEW_PTR(view), "button_options", view.bt_options); evas_object_show(view.bt_options); /* Options */ view.hv = elm_hover_add(win); elm_hover_parent_set(view.hv, win); elm_hover_target_set(view.hv, view.bt_options); view.bx = elm_box_add(win); elm_box_horizontal_set(view.bx, 0); elm_box_homogeneous_set(view.bx, 1); evas_object_show(view.bx); view.bt_message = elm_button_add(win); elm_object_text_set(view.bt_message, D_("Import")); evas_object_size_hint_min_set(view.bt_message, 130, 80); evas_object_smart_callback_add(view.bt_message, "clicked", _list_import_clicked, NULL); evas_object_show(view.bt_message); elm_box_pack_end(view.bx, view.bt_message); view.bt_edit = elm_button_add(win); elm_object_text_set(view.bt_edit, D_("Edit")); evas_object_size_hint_min_set(view.bt_edit, 130, 80); evas_object_smart_callback_add(view.bt_edit, "clicked", _list_edit_clicked, NULL); evas_object_show(view.bt_edit); elm_box_pack_end(view.bx, view.bt_edit); view.bt_delete = elm_button_add(win); elm_object_text_set(view.bt_delete, D_("Delete")); evas_object_size_hint_min_set(view.bt_delete, 130, 80); evas_object_smart_callback_add(view.bt_delete, "clicked", _list_delete_clicked, NULL); evas_object_show(view.bt_delete); elm_box_pack_end(view.bx, view.bt_delete); elm_object_part_content_set(view.hv, "top", view.bx); /* loading indicator */ view.pb = elm_progressbar_add(win); elm_object_style_set(view.pb, "wheel"); elm_object_text_set(view.pb, D_("Loading...")); evas_object_size_hint_align_set(view.pb, EVAS_HINT_FILL, 0.5); evas_object_size_hint_weight_set(view.pb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); ui_utils_view_swallow(VIEW_PTR(view), "loading_indicator", view.pb); evas_object_show(view.pb); sim_manager_list_fill(&view.list_data); return 0; } int sim_manager_view_is_init() { return ui_utils_view_is_init(VIEW_PTR(view)); } void sim_manager_view_deinit() { ui_utils_view_deinit(VIEW_PTR(view)); } void sim_manager_view_show() { evas_object_hide(view.hv); ui_utils_view_show(VIEW_PTR(view)); } void sim_manager_view_hide() { ui_utils_view_hide(VIEW_PTR(view)); } libphone-ui-shr-0.1+git20130901/src/view/sim-manager-view.h000066400000000000000000000020621221067027500230420ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _SIM_MANAGER_VIEW_H #define _SIM_MANAGER_VIEW_H int sim_manager_view_init(); int sim_manager_view_is_init(); void sim_manager_view_deinit(); void sim_manager_view_show(); void sim_manager_view_hide(); #endif libphone-ui-shr-0.1+git20130901/src/view/ussd-view.c000066400000000000000000000076731221067027500216300ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include "views.h" #include "phoneui-shr.h" struct UssdViewData { struct Window *win; int mode; char *message; Evas_Object *bt_close; }; static void frame_ussd_show(void *data); static void frame_ussd_hide(void *data); static void frame_ussd_close_clicked(void *data, Evas_Object * obj, void *event_info); //static void frame_ussd_keypad_clicked(struct UssdViewData *data, Evas_Object *obj, void *event_info); /* --- ussd view ------------------------------------------------------------ */ void * ussd_view_show(struct Window *win, void *_options) { GHashTable *options = (GHashTable *) _options; g_debug("ussd_view_show()"); if (!options) { g_critical("'options' is NULL (%s:%d)", __FUNCTION__, __LINE__); return NULL; } struct UssdViewData *data = calloc(1, sizeof(struct UssdViewData)); data->win = win; data->mode = GPOINTER_TO_INT(g_hash_table_lookup(options, "mode")); data->message = elm_entry_utf8_to_markup(g_hash_table_lookup (options, "message")); window_frame_show(win, data, frame_ussd_show, frame_ussd_hide); window_show(win); return data; } void ussd_view_hide(void *_data) { struct UssdViewData *data = (struct UssdViewData *) _data; free(data->message); free(data); } /* --- frame "ussd" --------------------------------------------------------- */ static void frame_ussd_show(void *_data) { struct UssdViewData *data = (struct UssdViewData *) _data; struct Window *win = data->win; window_layout_set(win, phoneui_theme, "phoneui/notification/ussd"); window_text_set(win, "mode", D_("Data:")); window_text_set(win, "message", data->message); data->bt_close = elm_button_add(window_evas_object_get(win)); elm_object_text_set(data->bt_close, D_("Close")); evas_object_smart_callback_add(data->bt_close, "clicked", frame_ussd_close_clicked, data); window_swallow(win, "button_close", data->bt_close); evas_object_show(data->bt_close); /* * data->keypad = elm_keypad_add(window_evas_object_get(win)); * evas_object_smart_callback_add(data->keypad, "clicked", frame_ussd_keypad_clicked, data); * window_swallow(win, "keypad", data->keypad); * evas_object_show(data->keypad); */ } static void frame_ussd_hide(void *_data) { struct UssdViewData *data = (struct UssdViewData *) _data; evas_object_del(data->bt_close); /* * window_unswallow(win, data->keypad); * evas_object_smart_callback_del(data->keypad, "clicked", frame_ussd_keypad_clicked); * evas_object_del(data->keypad); */ } static void frame_ussd_close_clicked(void *_data, Evas_Object * obj, void *event_info) { (void) obj; (void) event_info; struct UssdViewData *data = (struct UssdViewData *) _data; window_destroy(data->win, NULL); } /* static void frame_ussd_keypad_clicked(struct UssdViewData *data, Evas_Object *obj, void *event_info) { char input = (char) event_info; if(data->number_length < 64) { strncat(data->number, &input, 1); data->number_length++; frame_ussd_number_update(data); } if(data->number_length == 1) { edje_object_signal_emit(window_layout_get(data->win), "number_available", "elm"); } } */ libphone-ui-shr-0.1+git20130901/src/view/views.h000066400000000000000000000046701221067027500210360ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Lukas Märdian * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _VIEWS_H #define _VIEWS_H #include #include #include #include #include #include #include "window.h" #include "call-common.h" #include "contact-list-common.h" #define CONTACT_NAME_UNDEFINED_STRING D_("(unknown)") #define CONTACT_PHONE_UNDEFINED_STRING D_("(no number)") #define APP_DATA_DIR DATADIR"/libphone-ui-shr" #define EDJE_DIR APP_DATA_DIR #define IDLE_SCREEN_THEME EDJE_DIR"/idle_screen.edj" #define WIDGETS_EDJE EDJE_DIR "/widgets.edj" #define DELETE_TEXT_ICON APP_DATA_DIR"/edit-undo.png" #define CONTACT_DEFAULT_PHOTO APP_DATA_DIR"/contact.png" #define CONTACT_NUMBER_PHOTO APP_DATA_DIR"/number-icon.png" #define ICON_CALL APP_DATA_DIR"/icon-call.png" #define ICON_SMS APP_DATA_DIR"/icon-sms.png" #define ICON_CALL_ACCEPT APP_DATA_DIR"/call-start.png" #define ICON_CALL_REJECT APP_DATA_DIR"/call-stop.png" void *dialog_view_show(struct Window *win, void *_options); void dialog_view_hide(void *_data); void call_incoming_view_hide(struct CallIncomingViewData *data); struct CallActiveViewData *call_active_view_show(struct Window *win, GHashTable * options); struct CallIncomingViewData *call_incoming_view_show(struct Window *win, GHashTable * options); void call_active_view_hide(struct CallActiveViewData *data); void *contact_delete_view_show(struct Window *win, void *_options); void contact_delete_view_hide(void *_data); void *ussd_view_show(struct Window *win, void *_options); void ussd_view_hide(void *_data); #endif libphone-ui-shr-0.1+git20130901/src/widget/000077500000000000000000000000001221067027500200325ustar00rootroot00000000000000libphone-ui-shr-0.1+git20130901/src/widget/Makefile.am000066400000000000000000000000431221067027500220630ustar00rootroot00000000000000MAINTAINERCLEANFILES = Makefile.in libphone-ui-shr-0.1+git20130901/src/widget/elm_keypad.c000066400000000000000000000116551221067027500223200ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * Martin Jansa * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #include #include #include "phoneui-shr.h" #include "views.h" /* HACKS FROM elm_priv.h that should be removed */ #if 1 void elm_widget_data_set(Evas_Object *obj, void *data); void *elm_widget_data_get(const Evas_Object *obj); void elm_widget_del_hook_set(Evas_Object *obj, void (*func) (Evas_Object *obj)); void elm_widget_resize_object_set(Evas_Object *obj, Evas_Object *sobj); EAPI Evas_Object *elm_widget_compat_add(Evas *evas); #endif typedef struct _Widget_Data Widget_Data; struct _Widget_Data { Evas_Object *widget, *keypad; Ecore_Timer *plus_timer; }; static void _del_hook(Evas_Object * obj); static void _sizing_eval(Evas_Object * obj); static void _signal_clicked(void *data, Evas_Object * o, const char *emission, const char *source); static void _zero_mouse_down(void *data, Evas_Object * o, const char *emission, const char *source); static void _zero_mouse_up(void *data, Evas_Object * o, const char *emission, const char *source); static Eina_Bool _plus_trigered(void *data); static void _del_hook(Evas_Object * obj) { Widget_Data *wd = elm_widget_data_get(obj); evas_object_del(wd->keypad); free(wd); } static void _sizing_eval(Evas_Object * obj) { Widget_Data *wd = elm_widget_data_get(obj); Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1; edje_object_size_min_calc(wd->keypad, &minw, &minh); evas_object_size_hint_min_set(obj, minw, minh); evas_object_size_hint_max_set(obj, maxw, maxh); } static void _signal_clicked(void *data, Evas_Object * o, const char *emission, const char *source) { (void) o; (void) source; Widget_Data *wd = elm_widget_data_get(data); /* FIXME: may leak */ evas_object_smart_callback_call(wd->widget, "clicked", strdup(emission)); } static void _zero_mouse_down(void *data, Evas_Object * o, const char *emission, const char *source) { (void) o; (void) emission; (void) source; Widget_Data *wd = elm_widget_data_get(data); if (wd->plus_timer == NULL) wd->plus_timer = ecore_timer_add(0.5, _plus_trigered, data); } static void _zero_mouse_up(void *data, Evas_Object * o, const char *emission, const char *source) { (void) o; (void) emission; (void) source; Widget_Data *wd = elm_widget_data_get(data); if (wd->plus_timer != NULL) { ecore_timer_del(wd->plus_timer); wd->plus_timer = NULL; evas_object_smart_callback_call(wd->widget, "clicked", "0"); } } static Eina_Bool _plus_trigered(void *data) { Widget_Data *wd = elm_widget_data_get(data); wd->plus_timer = NULL; evas_object_smart_callback_call(wd->widget, "clicked", "+"); return (0); } EAPI Evas_Object * elm_keypad_add(Evas_Object * parent) { // Evas_Object *obj; Instead I'm using the wd->widget variable Evas *e; Widget_Data *wd; wd = calloc(1, sizeof(Widget_Data)); e = evas_object_evas_get(parent); wd->widget = elm_widget_compat_add(e); elm_widget_data_set(wd->widget, wd); elm_widget_del_hook_set(wd->widget, _del_hook); wd->keypad = edje_object_add(e); edje_object_file_set(wd->keypad, phoneui_theme, "phoneui/keypad"); edje_object_signal_callback_add(wd->keypad, "*", "input", _signal_clicked, wd->widget); edje_object_signal_callback_add(wd->keypad, "0", "mouse_up", _zero_mouse_up, wd->widget); edje_object_signal_callback_add(wd->keypad, "0", "mouse_down", _zero_mouse_down, wd->widget); edje_object_part_text_set(wd->keypad, "text2_desc", D_("ABC")); edje_object_part_text_set(wd->keypad, "text3_desc", D_("DEF")); edje_object_part_text_set(wd->keypad, "text4_desc", D_("GHI")); edje_object_part_text_set(wd->keypad, "text5_desc", D_("JKL")); edje_object_part_text_set(wd->keypad, "text6_desc", D_("MNO")); edje_object_part_text_set(wd->keypad, "text7_desc", D_("PQRS")); edje_object_part_text_set(wd->keypad, "text8_desc", D_("TUV")); edje_object_part_text_set(wd->keypad, "text9_desc", D_("WXYZ")); elm_widget_resize_object_set(wd->widget, wd->keypad); //evas_object_smart_callback_add(wd->widget, "sub-object-del", _sub_del, wd->widget); _sizing_eval(wd->widget); return wd->widget; } libphone-ui-shr-0.1+git20130901/src/widget/elm_keypad.h000066400000000000000000000020001221067027500223050ustar00rootroot00000000000000/* * Copyright (C) 2009, 2010 * Authors (alphabetical) : * Tom "TAsn" Hacohen * Klaus 'mrmoku' Kurzmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ #ifndef _ELM_KEYPAD_H #define _ELM_KEYPAD_H #include Evas_Object *elm_keypad_add(Evas_Object * parent); #endif