pax_global_header00006660000000000000000000000064122371157630014521gustar00rootroot0000000000000052 comment=90bb28675a3b908f54165c87127b6f80c06aada3 libgdf-release-0.1.3/000077500000000000000000000000001223711576300143675ustar00rootroot00000000000000libgdf-release-0.1.3/CMakeLists.txt000066400000000000000000000022021223711576300171230ustar00rootroot00000000000000cmake_minimum_required( VERSION 2.8 ) #project( GDF ) option( BUILD_TESTING "Build tests" OFF ) if( WIN32 ) set( BUILD_SHARED_LIBS false CACHE BOOL "Whether we shall build shared or dynamic libraries." ) option( BUILD_PYTHON_MODULES "Build python modules" OFF ) else( WIN32 ) set( BUILD_SHARED_LIBS true CACHE BOOL "Whether we shall build shared or dynamic libraries." ) option( BUILD_PYTHON_MODULES "Build python modules" OFF ) endif( WIN32 ) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) set( GDF_SOURCE_ROOT ${Project_SOURCE_DIR} ) add_subdirectory( libgdf ) add_subdirectory( tools ) # Make sure the version is in sync with # libgdf/include/GDF/Version.h set(GDF_VERSION "0.1.3") # shared library API versioning (soversion) -- NOT the same as the release version # it follows first number string( REGEX MATCH "^[0-9]+" GDF_SHAREDLIB_SOVERSION ${GDF_VERSION}) set_target_properties(GDF PROPERTIES VERSION ${GDF_VERSION} SOVERSION ${GDF_SHAREDLIB_SOVERSION}) if (BUILD_TESTING) include( CTest ) enable_testing( ) add_subdirectory( test ) endif() if( BUILD_PYTHON_MODULES ) add_subdirectory( python ) endif() libgdf-release-0.1.3/COPYING.LESSER.txt000066400000000000000000000167431223711576300172470ustar00rootroot00000000000000 GNU LESSER 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. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. 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 that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU 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 as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. libgdf-release-0.1.3/COPYING.txt000066400000000000000000001045131223711576300162440ustar00rootroot00000000000000 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 . libgdf-release-0.1.3/README000066400000000000000000000016611223711576300152530ustar00rootroot00000000000000# # This file is part of libGDF. # # libGDF 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 3 of # the License, or (at your option) any later version. # # libGDF is distributed in the hope that 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 libGDF. If not, see . # # Copyright 2010 Martin Billinger A. Build Instructions (out of source build) replace $GDF_ROOT with the (relative or absolute) path to the source tree (e.g. ~/SVN/GDF/trunk). > mkdir build > cd build > cmake $GDF_ROOT > make > make check libgdf-release-0.1.3/changelog.txt000066400000000000000000000012621223711576300170600ustar00rootroot00000000000000 Development Head =================== Version 0.1.3 =================== * Features - Support for non-equidistant sampling - Support for Header 3 (TLV) - Improved Windows builds - Arch Linux PKGBUILD * API - Matlab: gdf_quicksave - Header files now use *.h instead of GDF/*.h - Experimental and incomplete Python wrapper * Bugfixes - numeric overflow in event header - include errors - recordbuffer corruption Version 0.1.2 =================== * Support for Big-Endian architecture * Improved Matlab wrapper * Changelog Version 0.1.1 =================== Version 0.1.0 =================== libgdf-release-0.1.3/cmake/000077500000000000000000000000001223711576300154475ustar00rootroot00000000000000libgdf-release-0.1.3/cmake/FindCython.cmake000066400000000000000000000020521223711576300205150ustar00rootroot00000000000000# Find the Cython compiler. # # This code sets the following variables: # # CYTHON_EXECUTABLE # # See also UseCython.cmake #============================================================================= # Copyright 2011 Kitware, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #============================================================================= find_program( CYTHON_EXECUTABLE NAMES cython ) include( FindPackageHandleStandardArgs ) FIND_PACKAGE_HANDLE_STANDARD_ARGS( Cython REQUIRED_VARS CYTHON_EXECUTABLE ) mark_as_advanced( CYTHON_EXECUTABLE ) libgdf-release-0.1.3/distro/000077500000000000000000000000001223711576300156735ustar00rootroot00000000000000libgdf-release-0.1.3/distro/arch/000077500000000000000000000000001223711576300166105ustar00rootroot00000000000000libgdf-release-0.1.3/distro/arch/PKGBUILD000066400000000000000000000024621223711576300177400ustar00rootroot00000000000000# This is an example PKGBUILD file. Use this as a start to creating your own, # and remove these comments. For more information, see 'man PKGBUILD'. # NOTE: Please fill out the license field for your package! If it is unknown, # then please put 'unknown'. # Maintainer: Martin Billinger pkgname=libgdf-git pkgver=20121129 pkgrel=1 epoch= pkgdesc="C++ implementation of GDF, the general dataformat for biosignals" arch=('i686' 'x86_64') url="http://sourceforge.net/projects/libgdf/" license=('LGPL') groups=() depends=(boost-libs) makedepends=('cmake' 'boost') checkdepends=() optdepends=() provides=() conflicts=() replaces=() backup=() options=() install= changelog= source=() noextract=() md5sums=() #generate with 'makepkg -g' _gitroot='git://libgdf.git.sourceforge.net/gitroot/libgdf/libgdf' _gitname='libgdf' build() { cd "$srcdir" msg "Connecting to git server..." if [[ -d $_gitname ]]; then cd $_gitname && git pull origin msg "The local files are up-to-date" else git clone $_gitroot $_gitname --depth=1 cd $_gitname fi mkdir -p build cd build cmake .. -DBUILD_TESTING:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr make } check() { cd "$srcdir/$_gitname/build" make -k test } package() { cd "$srcdir/$_gitname/build" make DESTDIR="$pkgdir/" install } libgdf-release-0.1.3/doc/000077500000000000000000000000001223711576300151345ustar00rootroot00000000000000libgdf-release-0.1.3/doc/README000066400000000000000000000043301223711576300160140ustar00rootroot00000000000000 Introduction ============== libGDF is an implementation of "GDF - A General Dataformat for Biosignals Version V2.20" (See GDF Specification below). It consists of a library, tools and MATLAB bindings, all written in C++. License ========= libGDF is licensed under the GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007. Building libGDF ================= a. General libGDF is using cmake as build system. Out-of-Source builds are recommended. Libraries are built as shared by default. This can be changed at build time. The default installation prefix is /usr/local. For advanced configuration of the build process, please refer to the cmake documentation. b. Linux: >> set BOOST_ROOT=/usr/include/boost >> cd path/to/toplevel/sourcedir >> mkdir build >> cd build dynamic build: >> cmake .. static build: >> cmake .. -DBUILD_SHARED_LIBS=OFF >> make >> make install c. Windows: The following must be installed on the system: Microsoft Visual C++ 2008 Express Edition (or some other MSC version) Boost libraries www.boost.org libGDF Open a Command Prompt, then... > set BOOST_ROOT=C:\path\to\toplevel\of\boost > cd path/to/toplevel/sourcedir > mkdir build > cd build > cmake .. > GDF.sln The last command (or double-clicking the build/GDF.sln file) will launch the MSC development environment. In MSC, for Solution Configuration, select Release or Debug. In MSC, in Solution Explorer, right-click on ALL_BUILD, and select Build. If the build succeeds, in Solution Explorer, right-click on INSTALL, and select Build. The last step copies the new GDF library file(s) into sourcedir/lib . Building the MATLAB functions =============================== a. libGDF was installed into the system At the MATLAB prompt: >> mex gdf_writer.cpp -lGDF >> mex gdf_reader.cpp -lGDF b. libGDF was not installed First build libGDF as described above. At the MATLAB prompt: >> mex gdf_writer.cpp -Ipath/to/toplevel/sourcedir/libgdf/include -Lpath/to/build/dir/libgdf -lGDF >> mex gdf_reader.cpp -Ipath/to/toplevel/sourcedir/libgdf/include -Lpath/to/build/dir/libgdf -lGDF GDF Specification =================== The specification of the GDF file format can be found at http://arxiv.org/pdf/cs/0608052 libgdf-release-0.1.3/doc/compatibility.txt000066400000000000000000000027251223711576300205540ustar00rootroot00000000000000 libGDF is an implementation of "GDF - A General Dataformat for Biosignals Version V2.20", http://arxiv.org/pdf/cs/0608052 1. Major deviations from the specification ====================================== * The tag header (header3) is not supported. Writing: It's not possible to create files that contain this header. Reading: Header3 is ignored when reading a file that contains such a header. * Non-equidistant (sparse) sampling is not supported. The specification defines sparsely sampled signals with a signal's samples_per_record set to 0. Writing: Setting a signals sampling rate to 0 results in undefined behaviour. Reading: Opening a file that contains sparsely sampled signals will result in undefined behaviour. 2. General GDF related issues =============================== * Although the version of the specification is 2.20, files are required to start with the string "GDF 2.10". * MainHeader.recording_start and MainHeader.patient_birthday are specified as uint32[2], but time conversion treats these dates as int64. Implemented as uint64. * MainHeader.patient_ICD is defined as byte[6]. Implemented as a string of length 6. * SignalHeader.physical_dimension is specified as a 6 byte long char[8]. Implemented as a string of length 6. * Digital minimum and maximum range are 64 bit floating point numbers. Thus making storage of 64 bit integers at full precision impossible. Only integers up to 52 bit can be stored in full precision, according to the spec. libgdf-release-0.1.3/doc/doxygen/000077500000000000000000000000001223711576300166115ustar00rootroot00000000000000libgdf-release-0.1.3/doc/doxygen/Doxyfile000066400000000000000000002277171223711576300203370ustar00rootroot00000000000000# Doxyfile 1.7.6.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or sequence of words) that should # identify the project. Note that if you do not use Doxywizard you need # to put quotes around the project name if it contains spaces. PROJECT_NAME = libGDF # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer # a quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify an logo or icon that is # included in the documentation. The maximum height of the logo should not # exceed 55 pixels and the maximum width should not exceed 200 pixels. # Doxygen will copy the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful if your file system # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding # "class=itcl::class" will allow you to use the command class in the # itcl::class meaning. TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also makes the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and # unions are shown inside the group in which they are included (e.g. using # @ingroup) instead of on a separate page (for HTML and Man pages) or # section (for LaTeX and RTF). INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and # unions with only public data fields will be shown inline in the documentation # of the scope in which they are defined (i.e. file, namespace, or group # documentation), provided this scope is documented. If set to NO (the default), # structs, classes, and unions are shown on a separate page (for HTML and Man # pages) or section (for LaTeX and RTF). INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penalty. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will roughly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols. SYMBOL_CACHE_SIZE = 0 # Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be # set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given # their name and scope. Since this can be an expensive process and often the # same symbol appear multiple times in the code, doxygen keeps a cache of # pre-resolved symbols. If the cache is too small doxygen will become slower. # If the cache is too large, memory is wasted. The cache size is given by this # formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespaces are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to # do proper type resolution of all parameters of a function it will reject a # match between the prototype and the implementation of a member function even # if there is only one candidate or it is obvious which candidate to choose # by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen # will still accept a match between prototype and implementation in such cases. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or macro consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and macros in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files # containing the references data. This must be a list of .bib files. The # .bib extension is automatically appended if omitted. Using this command # requires the bibtex tool to be installed. See also # http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style # of the bibliography can be controlled using LATEX_BIB_STYLE. To use this # feature you need bibtex and perl available in the search path. CITE_BIB_FILES = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_NO_PARAMDOC option can be enabled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ../../libgdf # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py # *.f90 *.f *.for *.vhd *.vhdl FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.d \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ *.idl \ *.odl \ *.cs \ *.php \ *.php3 \ *.inc \ *.m \ *.mm \ *.dox \ *.py \ *.f90 \ *.f \ *.vhd \ *.vhdl # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = *.git \ *~ \ *.bak # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = * # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty or if # non of the patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) # and it is also possible to disable source filtering for a specific pattern # using *.ext= (so without naming a filter). This option only has effect when # FILTER_SOURCE_FILES is enabled. FILTER_SOURCE_PATTERNS = #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = libgdf_doxygen # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. Note that when using a custom header you are responsible # for the proper inclusion of any scripts and style sheets that doxygen # needs, which is dependent on the configuration options used. # It is advised to generate a default header using "doxygen -w html # header.html footer.html stylesheet.css YourConfigFile" and then modify # that header. Note that the header is subject to change so you typically # have to redo this when upgrading to a newer version of doxygen or when # changing the value of configuration settings such as GENERATE_TREEVIEW! HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # style sheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that # the files will be copied as-is; there are no commands or markers available. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the style sheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = YES # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) # at top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. Since the tabs have the same information as the # navigation tree you can set this option to NO if you already set # GENERATE_TREEVIEW to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. # Since the tree basically has the same information as the tab index you # could consider to set DISABLE_INDEX to NO when enabling this option. GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values # (range [0,1..20]) that doxygen will group on one line in the generated HTML # documentation. Note that a value of 0 will completely suppress the enum # values from appearing in the overview section. ENUM_VALUES_PER_LINE = 4 # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax # (see http://www.mathjax.org) which uses client side Javascript for the # rendering instead of using prerendered bitmaps. Use this if you do not # have LaTeX installed or if you want to formulas look prettier in the HTML # output. When enabled you also need to install MathJax separately and # configure the path to it using the MATHJAX_RELPATH option. USE_MATHJAX = NO # When MathJax is enabled you need to specify the location relative to the # HTML output directory using the MATHJAX_RELPATH option. The destination # directory should contain the MathJax.js script. For instance, if the mathjax # directory is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the # mathjax.org site, so you can quickly see the result without installing # MathJax, but it is strongly recommended to install a local copy of MathJax # before deployment. MATHJAX_RELPATH = http://www.mathjax.org/mathjax # The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension # names that should be enabled during MathJax rendering. MATHJAX_EXTENSIONS = # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvantages are that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for # the generated latex document. The footer should contain everything after # the last chapter. If it is left blank doxygen will generate a # standard footer. Notice: only use this tag if you know what you are doing! LATEX_FOOTER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See # http://en.wikipedia.org/wiki/BibTeX for more info. LATEX_BIB_STYLE = plain #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load style sheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # pointed to by INCLUDE_PATH will be searched when a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition that # overrules the definition found in the source code. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all references to function-like macros # that are alone on a line, have an all uppercase name, and do not end with a # semicolon, because these will confuse the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option also works with HAVE_DOT disabled, but it is recommended to # install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 2 # By default doxygen will use the Helvetica font for all dot files that # doxygen generates. When you want a differently looking font you can specify # the font name using DOT_FONTNAME. You need to make sure dot is able to find # the font, which can be done by putting it in a standard location or by setting # the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the # directory containing the font. DOT_FONTNAME = FreeSans.ttf # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the Helvetica font. # If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to # set the path where dot can find it. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = YES # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = YES # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will generate a graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are svg, png, jpg, or gif. # If left blank png will be used. If you choose svg you need to set # HTML_FILE_EXTENSION to xhtml in order to make the SVG files # visible in IE 9+ (other browsers do not have this requirement). DOT_IMAGE_FORMAT = png # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to # enable generation of interactive SVG images that allow zooming and panning. # Note that this requires a modern browser other than Internet Explorer. # Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you # need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files # visible. Older versions of IE do not have SVG support. INTERACTIVE_SVG = NO # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the # \mscfile command). MSCFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = YES # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = YES # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES libgdf-release-0.1.3/libgdf/000077500000000000000000000000001223711576300156165ustar00rootroot00000000000000libgdf-release-0.1.3/libgdf/CMakeLists.txt000066400000000000000000000040361223711576300203610ustar00rootroot00000000000000cmake_minimum_required( VERSION 2.8 ) project( GDF ) if( UNIX ) add_definitions( -Wall -Wextra -pedantic -Werror -fPIC ) elseif( MINGW ) add_definitions( -Wall -Wextra -pedantic -Werror ) elseif( WIN32 ) add_definitions( -W3 ) # Default Windows installs go to "C:\Program files" which may fail # if user has insufficient privelege. This if-clause puts the # compile results under GDF project folder. set( CMAKE_INSTALL_PREFIX ${GDF_SOURCE_DIR} ) endif( UNIX ) #set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${GDF_SOURCE_DIR}/lib ) #set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${GDF_SOURCE_DIR}/lib ) #set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${GDF_SOURCE_DIR}/bin ) find_package( Boost REQUIRED ) include_directories( ${GDF_SOURCE_DIR}/include ${Boost_INCLUDE_DIR} ) set( HEADERS include/GDF/ChannelDataBase.h include/GDF/ChannelData.h include/GDF/Channel.h include/GDF/EventConverter.h include/GDF/EventHeader.h include/GDF/EventDescriptor.h include/GDF/Exceptions.h include/GDF/GDFHeaderAccess.h include/GDF/HeaderItem.h include/GDF/MainHeader.h include/GDF/Modifier.h include/GDF/pointerpool.h include/GDF/Reader.h include/GDF/RecordBuffer.h include/GDF/RecordFullHandler.h include/GDF/Record.h include/GDF/SignalHeader.h include/GDF/TagHeader.h include/GDF/tools.h include/GDF/Types.h include/GDF/Version.h include/GDF/Writer.h ) set( SOURCES src/Channel.cpp src/EventHeader.cpp src/EventDescriptor.cpp src/GDFHeaderAccess.cpp src/MainHeader.cpp src/Modifier.cpp src/Reader.cpp src/RecordBuffer.cpp src/Record.cpp src/SignalHeader.cpp src/TagHeader.cpp src/Types.cpp src/Writer.cpp src/EventConverter.cpp ) add_library( GDF ${HEADERS} ${SOURCES} ${Boost_LIBRARIES} ) install( FILES ${HEADERS} DESTINATION include/GDF ) if( MSVC ) install( FILES ${PROJECT_BINARY_DIR}/Debug/gdf.pdb DESTINATION lib CONFIGURATIONS Debug ) endif( MSVC ) install( TARGETS GDF RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) libgdf-release-0.1.3/libgdf/eventcodes.txt000066400000000000000000000175661223711576300205350ustar00rootroot00000000000000### Table of event codes. # This table is also part of the specification of # GDF v2.x http://arxiv.org/abs/cs.DB/0608052 and # GDF v1.x http://pub.ist.ac.at/~schloegl/matlab/eeg/gdf4/TR_GDF.pdf # and part of the BioSig project http://biosig.sf.net/ # Copyright (C) 2004,2005,2006,2008,2009,2010,2011 Alois Schloegl # $Id: eventcodes.txt,v 1.15 2009-01-20 16:09:46 schloegl Exp $ # # The latest version is available from here: # http://biosig.svn.sourceforge.net/viewvc/biosig/trunk/biosig/doc/eventcodes.txt # # BioSig 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. # # Alternative license: # This table of event codes can be used in any application # (without the restrictions of GPL) under the condition that this table # is not modified, changed, converted or transformed. No # derivative of any kind are allowed. Suggestions for improvement # and changes should be addressed to the author. # ### table of event codes: lines starting with # are omitted ### add 0x8000 to indicate the end (i.e. offset) of an event # ### 0x010_ EEG artifacts 0x0101 artifact:EOG (blinks, fast, large amplitude) 0x0102 artifact:ECG 0x0103 artifact:EMG/Muscle 0x0104 artifact:Movement 0x0105 artifact:Failing Electrode 0x0106 artifact:Sweat 0x0107 artifact:50/60 Hz mains interference 0x0108 artifact:breathing 0x0109 artifact:pulse 0x010a artifact:EOG (slow, small amplitudes) #0x010f calibration ### 0x011_ EEG patterns 0x0111 eeg:Sleep spindles 0x0112 eeg:K-complexes 0x0113 eeg:Saw-tooth waves 0x0114 eeg:Idling EEG - eyes open 0x0115 eeg:Idling EEG - eyes closed 0x0116 eeg:spike 0x0117 eeg:seizure #0x0118 eeg:Electrographic seizure #0x0119 eeg:Clinical seizure #0x011a eeg:Subclinical seizure #0x011b eeg:Stimulating for seizure ### 0x012_ Stimulus for Evoked potentials 0x0121 VEP: visual EP 0x0122 AEP: auditory EP 0x0123 SEP: somato-sensory EP 0x012F TMS: transcranial magnetic stimulation ### 0x013_ Stimulus for Steady State Evoked potentials 0x0131 SSVEP 0x0132 SSAEP 0x0133 SSSEP ### 0x014_ Response code 0x0140 response code 0, or no response or false 0x0141 response code 1, or correct response 0x0142 response code 2 0x0143 response code 3 0x0144 Go, or response code 4 0x0145 NoGo, or response code 5 ### 0x02__ Neural spikes, and spike trains 0x0201 Spike onset, action potential 0x0202 Burst ### 0x03__ BCI: Trigger, cues, classlabels 0x0300 Start of Trial, Trigger at t=0s 0x0301 class1, Left hand - cue onset (BCI experiment) 0x0302 class2, Right hand - cue onset (BCI experiment) 0x0303 class3, Foot, towards Right - cue onset (BCI experiment) 0x0304 class4, Tongue - cue onset (BCI experiment) 0x0305 class5 - cue onset 0x0306 class6, towards Down - cue onset (BCI experiment) 0x0307 class7 - cue onset 0x0308 class8 - cue onset 0x0309 class9, towards Left - cue onset 0x030A class10 - cue onset 0x030B class11 - cue onset 0x030C class12, towards Up - cue onset (BCI experiment) 0x030D Feedback (continuous) - onset (BCI experiment) 0x030E Feedback (discrete) - onset (BCI experiment) 0x030F cue unknown/undefined (used for BCI competition) 0x0311 Beep (accustic stimulus, BCI experiment) 0x0312 Cross on screen (BCI experiment) 0x0313 Flashing light #0x031b - 0x037f reserved for ASCII characters #27-#127 0x0381 target hit, task successful, correct classification 0x0382 target missed, task not reached, incorrect classification 0x03ff Rejection of whole trial ### 0x040_ Respiratory Events 0x0401 Obstructive apnea/Hypopnea event (OAHE) 0x0402 RERA #(Respiratory Effort Related Arousal) 0x0403 Central Apnea/Hypopnea Event (CAHE) 0x0404 CS Breathing #(Cheyne-Stokes Breathing) 0x0405 Hypoventilation 0x0406 Apnea 0x0407 Obstructive apnea 0x0408 Central apnea 0x0409 Mixed apnea 0x040A Hypopnea 0x040B Periodic Breathing 0x040C Limb movement 0x040D PLMS 0x040E (time of) maximum inspiration 0x040F Start of inspiration, (end of expiration) ### 0x041_ Sleep stages according to Rechtschaffen&Kales and AASM'07 0x0410 Sleep stage Wake 0x0411 Sleep stage 1 0x0412 Sleep stage 2 0x0413 Sleep stage 3 0x0414 Sleep stage 4 0x0415 Sleep stage REM 0x0416 Sleep stage ? 0x0417 Movement time 0x0418 Bruxism 0x0419 RBD #(Rapid eye movement sleep behaviour disorder) 0x041A RMD #(Sleep related rhythmic movement disorder) 0x041B Sleep stage N 0x041C Sleep stage N1 0x041D Sleep stage N2 0x041E Sleep stage N3 ### 0x042_ Sleep 0x0420 Lights on #0x8420 Lights off ### 0x043_ Eye movements #0x0430 [obsolete] merged with 0x0115 0x0431 eyes left 0x0432 eyes right 0x0433 eyes up 0x0434 eyes down 0x0435 horizontal eye movement 0x0436 vertical eye movement 0x0437 eye rotation (clockwise) 0x0438 eye rotation (counterclockwise) 0x0439 eye blinks #0x043f [obsolete] merged with 0x0114 ### 0x044_ muscle activity (for checking on EEG artifacts) 0x0441 left hand movement 0x0442 right hand movement 0x0443 head movement 0x0444 tongue movement 0x0445 swallowing 0x0446 biting, chewing, teeth griding 0x0447 foot movement #0x0448 foot (right) movement 0x0449 arm movement 0x044a arm (right) movement ### 0x050_ ECG events 0x0501 ecg:Fiducial point of QRS complex 0x0502 ecg:P-wave-onset #0x8502 ecg:P-wave-end 0x0503 ecg:Q-wave-onset, QRS-onset #0x8503 ecg:Q-wave-peak, Q-wave-end 0x0504 ecg:R-point 0x0505 ecg:S-wave-onset, S-wave-peak #0x8505 ecg:S-wave-end, J-point, QRS-end 0x0506 ecg:T-wave-onset #0x8506 ecg:T-wave-end 0x0507 ecg:U-wave-onset #0x8507 ecg:U-wave-end # # related but non-concordant defintions can be found in # - WFDB/MIT-BIH http://www.physionet.org/physiotools/wfdb/lib/ecgcodes.h # - SCP-ECG http://www.centc251.org/TCmeet/doclist/TCdoc02/N02-015-prEN1064.pdf # - FEF/Vital/11073 p.83 # Unification is desired # # see also 0x2000-0x22ff: # # ### 0x058_ ergometric events 0x0580 start 0x0581 25 Watt 0x0582 50 Watt 0x0583 75 Watt 0x0584 100 Watt 0x0585 125 Watt 0x0586 150 Watt 0x0587 175 Watt 0x0588 200 Watt 0x0589 225 Watt 0x058a 250 Watt 0x058b 275 Watt 0x058c 300 Watt 0x058d 325 Watt 0x058e 350 Watt #0x8580 end ### 0x100_ neural spikes # ### 0x2000-22ff reserved for ECG events (see HL7 10102 Annotated ECG) # ### 0x00__ user specific events # Often, 1-127 are used for stimulus codes, and 129-255 for response code. # the use of the following types is discouraged, because of possible ambiguities. #0x0000 empty event, reserved for special use 0x0001 condition 1 0x0002 condition 2 0x0003 condition 3 0x0004 condition 4 0x0005 condition 5 0x0006 condition 6 0x0007 condition 7 0x0008 condition 8 0x0009 condition 9 0x000a condition 10 0x000b condition 11 0x000c condition 12 0x000d condition 13 0x000e condition 14 0x000f condition 15 0x0010 condition 16 0x0011 condition 17 0x0012 condition 18 0x0013 condition 19 0x0014 condition 20 0x0015 condition 21 0x0016 condition 22 0x0017 condition 23 0x0018 condition 24 0x0019 condition 25 0x001a condition 26 0x0020 condition 32 # 0x002f condition 47 0x0030 condition 48 0x0031 condition 49 0x0032 condition 50 0x0033 condition 51 0x0034 condition 52 0x0035 condition 53 0x0036 condition 54 0x0037 condition 55 0x0038 condition 56 0x0039 condition 57 0x003a condition 58 0x003b condition 59 0x003c condition 60 0x003d condition 61 0x003e condition 62 0x003f condition 63 0x0040 condition 64 0x0041 condition 65 0x0042 condition 66 0x0046 condition 70 0x0051 condition 81 0x0052 condition 82 0x0053 condition 83 0x005b condition 91 0x005c condition 92 0x005d condition 93 0x0060 condition 96 0x0063 condition 99 0x0080 condition 128 0x0081 condition 129 0x0082 condition 130 0x0084 condition 131 0x0085 condition 132 0x0086 condition 133 0x0087 condition 134 0x00a6 condition 166 0x00a7 condition 167 0x00a8 condition 168 0x00a9 condition 169 ### 0x4___ up to 4096 different stimuli ### 0x7f__ special codes 0x7ffe start of a new segment (after a break) 0x7fff non-equidistant sampling value # libgdf-release-0.1.3/libgdf/include/000077500000000000000000000000001223711576300172415ustar00rootroot00000000000000libgdf-release-0.1.3/libgdf/include/GDF/000077500000000000000000000000001223711576300176415ustar00rootroot00000000000000libgdf-release-0.1.3/libgdf/include/GDF/Channel.h000066400000000000000000000133071223711576300213660ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __CHANNEL_H_INCLUDED__ #define __CHANNEL_H_INCLUDED__ #include "SignalHeader.h" #include "ChannelDataBase.h" #include "Types.h" #include #include namespace gdf { class SignalHeader; /// Representation of a channel (signal in GDF) /** */ class Channel { public: /// Constructor Channel( const SignalHeader *sig_hdr, const size_t length ); /// Constructor /** Channel length is initialized to channel's samples_per_record. */ Channel( const SignalHeader *sig_hdr ); /// Copy Constructor Channel( const Channel &other ); /// Destructor virtual ~Channel( ); /// Reset read and write positions void clear( ); /// Add a physical sample to the channel. /** value is scaled from [phys_min..phys_max] to [dig_min..dig_max] and converted to the channel's data type */ void addSamplePhys( const double value ); /// Add a raw sample to the channel. /** value is converted to the channel's data type. but otherwise remains unmodified */ template void addSampleRaw( const T rawval ); /// Blit a number of physical samples into channel. /** values are scaled from [phys_min..phys_max] to [dig_min..dig_max] and converted to the channel's data type */ void blitSamplesPhys( const double *values, size_t num ); /// Blit a number of raw samples into channel. /** values are converted to the channel's data type but otherwise remains unmodified */ template void blitSamplesRaw( const T *values, size_t num ); /// Fill a number of samples with the same physical value. /** value is scaled from [phys_min..phys_max] to [dig_min..dig_max] and converted to the channel's data type */ void fillPhys( const double value, size_t num ); /// Fill a number of samples with the same raw value. /** value is converted to the channel's data type but otherwise remains unmodified */ template void fillRaw( const T value, size_t num ); /// set sample value void setSamplePhys( size_t pos, double value ); /// get sample value double getSamplePhys( size_t pos ); /// Blit a number of physical samples from channel to buffer. /** values are scaled from [dig_min..dig_max] to [phys_min..phys_max] and converted to double */ void deblitSamplesPhys( double *values, size_t start, size_t num ); /// Blit a number of raw samples from channel to buffer. template void deblitSamplesRaw( T *values, size_t start, size_t num ); /// Get number of free samples size_t getFree( ); /// Get number of written samples size_t getWritten( ); /// Get type of channel uint32 getTypeID( ); friend std::ostream &operator<<( std::ostream &out, const Channel &c ); friend std::istream &operator>>( std::istream &in, Channel &c ); private: const SignalHeader *m_signalheader; ChannelDataBase *m_data; }; /// Channel Serializer std::ostream &operator<<( std::ostream &out, const Channel &c ); /// Channel Deserializer std::istream &operator>>( std::istream &in, Channel &c ); //=================================================================================================== //=================================================================================================== template void Channel::addSampleRaw( const T rawval ) { using boost::numeric_cast; switch( m_signalheader->get_datatype( ) ) { case INT8: m_data->addSample( numeric_cast(rawval) ); break; case UINT8: m_data->addSample( numeric_cast(rawval) ); break; case INT16: m_data->addSample( numeric_cast(rawval) ); break; case UINT16: m_data->addSample( numeric_cast(rawval) ); break; case INT32: m_data->addSample( numeric_cast(rawval) ); break; case UINT32: m_data->addSample( numeric_cast(rawval) ); break; case INT64: m_data->addSample( numeric_cast(rawval) ); break; case UINT64: m_data->addSample( numeric_cast(rawval) ); break; case FLOAT32: m_data->addSample( numeric_cast(rawval) ); break; case FLOAT64: m_data->addSample( numeric_cast(rawval) ); break; default: throw exception::invalid_type_id( boost::lexical_cast(m_signalheader->get_datatype( )) ); break; }; } //=================================================================================================== //=================================================================================================== template void Channel::blitSamplesRaw( const T *values, size_t num ) { for( size_t i=0; i. // // Copyright 2010 Martin Billinger #ifndef __CHANNELDATA_H_INCLUDED #define __CHANNELDATA_H_INCLUDED #include "ChannelDataBase.h" #include #include #include //#include namespace gdf { /// Contains data samples for a channel of given type and length /** Only access functions of type T are reimplemented from ChannelDataBase. Calling addSample(), blitSamples() or fill() with the wrong data type throws an exception. */ template class ChannelData : public ChannelDataBase { public: /// Constructor ChannelData( size_t length ) { m_data.resize( length ); m_writepos = 0; } /// Copy Constructor ChannelData( ChannelDataBase *base ) { ChannelData* other = reinterpret_cast*>( base ); m_data.resize( other->m_data.size( ) ); size_t N = m_data.size(); for( size_t i=0; im_data[i]; m_writepos = other->m_writepos; } /// Destructor virtual ~ChannelData( ) { //std::cout << "~ChannelData( )" << std::endl; } /// Add a single sample to the channel. Channel must not be full. void addSample( const T value ) { assert( getFree( ) > 0 ); m_data[m_writepos++] = value; } /// Blit a given number of samples into channel. That number of samples must be free. void blitSamples( const T *values, const size_t num ) { assert( getFree( ) >= num ); for( size_t i=0; i= num ); for( size_t i=0; i Stream" << std::endl; //out.write( reinterpret_cast(&m_data[0]), sizeof(T)*m_data.size() ); for( size_t i=0; i Channel" << std::endl; //in.read( reinterpret_cast(&m_data[0]), sizeof(T)*m_data.size() ); for( size_t i=0; i &getData( ) { return m_data; } /// Get pointer to data std::vector *getDataPtr( ) { return &m_data; } private: std::vector m_data; size_t m_writepos; }; } #endif libgdf-release-0.1.3/libgdf/include/GDF/ChannelDataBase.h000066400000000000000000000160211223711576300227470ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __CHANNELDATABASE_H_INCLUDED #define __CHANNELDATABASE_H_INCLUDED #include "Types.h" #include "Exceptions.h" #include namespace gdf { /// Base class that provides access to channels of different types /** Meant only for internal use. This class provides overloaded access functions for each data type supported in gdf. The actual implementation of ChannelData must reimplement access functions for it's data type. */ class ChannelDataBase { public: ChannelDataBase( ) { } virtual ~ChannelDataBase( ) { } virtual void addSample( const int8 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void addSample( const uint8 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void addSample( const int16 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void addSample( const uint16 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void addSample( const int32 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void addSample( const uint32 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void addSample( const int64 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void addSample( const uint64 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void addSample( const float32 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void addSample( const float64 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void blitSamples( const int8*, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void blitSamples( const uint8*, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void blitSamples( const int16*, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void blitSamples( const uint16*, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void blitSamples( const int32*, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void blitSamples( const uint32*, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void blitSamples( const int64*, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void blitSamples( const uint64*, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void blitSamples( const float32*, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void blitSamples( const float64*, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void fill( const int8, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void fill( const uint8, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void fill( const int16, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void fill( const uint16, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void fill( const int32, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void fill( const uint32, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void fill( const int64, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void fill( const uint64, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void fill( const float32, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void fill( const float64, const size_t ) { throw exception::bad_type_assigned_to_channel( ); } virtual void setSample( size_t, int8 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void setSample( size_t, uint8 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void setSample( size_t, int16 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void setSample( size_t, uint16 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void setSample( size_t, int32 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void setSample( size_t, uint32 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void setSample( size_t, int64 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void setSample( size_t, uint64 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void setSample( size_t, float32 ) { throw exception::bad_type_assigned_to_channel( ); } virtual void setSample( size_t, float64 ) { throw exception::bad_type_assigned_to_channel( ); } virtual int8 getSample( size_t, int8 /*dummy*/ ) { throw exception::bad_type_assigned_to_channel( ); } virtual uint8 getSample( size_t, uint8 /*dummy*/ ) { throw exception::bad_type_assigned_to_channel( ); } virtual int16 getSample( size_t, int16 /*dummy*/ ) { throw exception::bad_type_assigned_to_channel( ); } virtual uint16 getSample( size_t, uint16 /*dummy*/ ) { throw exception::bad_type_assigned_to_channel( ); } virtual int32 getSample( size_t, int32 /*dummy*/ ) { throw exception::bad_type_assigned_to_channel( ); } virtual uint32 getSample( size_t, uint32 /*dummy*/ ) { throw exception::bad_type_assigned_to_channel( ); } virtual int64 getSample( size_t, int64 /*dummy*/ ) { throw exception::bad_type_assigned_to_channel( ); } virtual uint64 getSample( size_t, uint64 /*dummy*/ ) { throw exception::bad_type_assigned_to_channel( ); } virtual float32 getSample( size_t, float32 /*dummy*/ ) { throw exception::bad_type_assigned_to_channel( ); } virtual float64 getSample( size_t, float64 /*dummy*/ ) { throw exception::bad_type_assigned_to_channel( ); } /// Reset read and write positions virtual void clear( ) = 0; /// Get number of free samples. virtual size_t getFree( ) = 0; /// Get number of written samples. virtual size_t getWritten( ) = 0; /// Serializer virtual void tostream( std::ostream &out ) = 0; /// Deserializer virtual void fromstream( std::istream &in ) = 0; }; } #endif libgdf-release-0.1.3/libgdf/include/GDF/EventConverter.h000066400000000000000000000025571223711576300227740ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Christoph Eibel #ifndef __EVENTCONVERTER_H_INCLUDED__ #define __EVENTCONVERTER_H_INCLUDED__ #include "EventHeader.h" #include "Exceptions.h" #include namespace gdf { //------------------------------------------------------------------------- /// @brief converts a vector of mode 1 events into mode 3 events /// using the flag 0x8000 which marks the type of mode 1 stop events /// @throws general if events could not be converted std::vector convertMode1EventsIntoMode3Events (std::vector const& mode_1_events) throw (exception::general); } #endif libgdf-release-0.1.3/libgdf/include/GDF/EventDescriptor.h000066400000000000000000000067421223711576300231430ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2013 Owen Kelly #ifndef __EVENTDESCRIPTOR_H_INCLUDED__ #define __EVENTDESCRIPTOR_H_INCLUDED__ //#include "GDF/TagHeader.h" // for TagField and TagHeader #include "Types.h" #include namespace gdf { class TagField; /// Manages standard and user-specified text-descriptions of event codes. // Stores user-specified text in Header 3 (see GDF 2.20 Table 10 Tag=1). // Standard descriptions can be loaded from eventcodes.txt. class EventDescriptor { public: /// Constructor EventDescriptor( ); /// Destructor virtual ~EventDescriptor( ); /// Serializer void toStream( std::ostream &stream ); /// Deserializer void fromStream( std::istream &stream ); /// Includes string str in the user-specific event description table. // Returns event-type (1..255) corresponding to text description of event. // Repeated additions of the same string have no effect. uint16 addUserSpecificDesc( const std::string str ); /// Returns event-type (1..255) corresponding to text description of event. uint16 getUserDescEventType( const std::string str ); /// Set the description of a particular event type (1..65535). void setEventDesc( uint16 typ, const std::string str ); /// Get the description of a particular event type. // Supports both user-defined events and standard events. // Returns "" if event is has no description. const std::string &getEventDesc( uint16 typ ); /// Fill event description table from file. // In particular using GDF eventcodes.txt under the alternate license decribed therein. void loadEventDescriptions( const std::string &eventfilepath ); /// Clear event description table and user-event table. void clear( ); /// Copy the event-desc table onto the user-event-desc table. // This utility is helpful if you want control exactly which // codes are associates to which strings. // First use setEventDesc() as many times as needed, then call // copyEventDescToUserDesc, then getUserDescEventType will function correctly. void copyEventDescToUserDesc( ); /// Returns the count of user-specified descriptions that are stored. int getNumUserDesc( ) {return m_userdesc.size();} // Populates class instance from a T-L-V triple. void fromTagField( TagField &tf ); // Copies table of user-specified descriptions into a T-L-V triple. TagField toTagField( ); std::map m_desc; // description of all events 1..65535 private: std::map m_userdesc; // description of user events 1..255 }; } #endif // EVENTDESCRIPTOR_H libgdf-release-0.1.3/libgdf/include/GDF/EventHeader.h000066400000000000000000000076011223711576300222100ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010, 2013 Martin Billinger, Christoph Eibel, Owen Kelly #ifndef __EVENTHEADER_H_INCLUDED__ #define __EVENTHEADER_H_INCLUDED__ #include "Types.h" #include #define GDF_MAXNUM_EVENTS 16777215 namespace gdf { struct Mode1Event { bool operator<( const Mode1Event &e ) const { return position < e.position; } uint32 position; uint16 type; }; struct Mode3Event { bool operator<( const Mode3Event &e ) const { return position < e.position; } uint32 position; uint16 type; uint16 channel; union { uint32 duration; float32 value; }; }; /// Class that provides access to GDF events class EventHeader { public: /// Constructor EventHeader( ); /// Destructor virtual ~EventHeader( ); /// Serializer void toStream( std::ostream &stream ); /// Deserializer void fromStream( std::istream &stream ); /// Set Event Mode /** mode can be 1 or 3 1: (default) Events are stored as position,type pairs 3: Events are stored with position and type, associated to a channel and have a duration or value. */ void setMode( uint8 mode ); /// Set Sampling Rate associated with event positions /** Events are not actually sampled, but their position is stored in samples rather than seconds. In order to convert event positions between time and sample, this sampling rate is used. */ void setSamplingRate( float32 fs ); // converts seconds to event position using event sampling rate uint32 secToPos( const double sample_time_sec ); // converts event position to time in seconds (0.0 sec corresponds to the main header start time) double posToSec( const uint32 event_pos ) const; /// returns event mode uint8 getMode( ) { return m_mode; } /// returns sampling rate float32 getSamplingRate( ) { return m_efs; } /// Number of events uint32 getNumEvents( ); /// Returns a Mode 1 Event void getEvent( uint32 index, Mode1Event &ev ); /// Returns all Mode 1 Events std::vector getMode1Events () const; /// Returns all Mode 3 Events std::vector getMode3Events () const; /// Returns indices of sparse samples associated with a channel // chan_idx is event.CHN from GDF spec (a 1-based index) std::vector getSparseSamples (const size_t chan_idx); /// Returns a Mode 3 Event void getEvent( uint32 index, Mode3Event &ev ); /// Add a Mode 1 Event void addEvent( const Mode1Event &ev ); /// Add a Mode 3 Event void addEvent( const Mode3Event &ev ); /// Sort Events by position void sort( ); /// Clears all Events void clear( ); private: uint8 m_mode; //uint32 m_num_ev; /// only 3 bytes are used. Maximum is 16777215 float32 m_efs; /// sampling rate associated with event positions std::vector m_mode1; std::vector m_mode3; }; } #endif // EVENTHEADER_H libgdf-release-0.1.3/libgdf/include/GDF/Exceptions.h000066400000000000000000000206461223711576300221430ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __EXCEPTIONS_H_INCLUDED__ #define __EXCEPTIONS_H_INCLUDED__ #include #include #include #include #include namespace gdf { namespace exception { /// A general exception class general : public std::exception { public: general( const std::string str ) { msg = str; } virtual ~general( ) throw() { } const char *what( ) const throw() { return msg.c_str(); } private: std::string msg; }; /// An index exceeds it's valid range. class index_out_of_range : public std::range_error { public: index_out_of_range( std::string str ) : range_error("Index out of range: "+str) { } }; /// Preconditions for operation are not met. class invalid_operation : public std::runtime_error { public: invalid_operation( std::string str ) : runtime_error("Invalid operation: "+str) { } }; /// A container of some sort (list, vector, array, ... ) is empty class empty_container : public std::runtime_error { public: empty_container( std::string str ) : runtime_error("Empty container: "+str) { } }; /// A member function from ChannelDataBase was called. This should not happen and is usually caused by providing an argument with the wrong datatype to a data access function. class bad_type_assigned_to_channel : public std::domain_error { public: bad_type_assigned_to_channel( std::string str = "" ) : domain_error("Bad datatype access to channel: "+str) { } }; /// Type ID used is not defined in Types.h class invalid_type_id : public std::domain_error { public: invalid_type_id( std::string str ) : domain_error("Invalid type ID: "+str) { } }; /// Channels of different types were used where it's not allowed class mixed_types_not_allowed : public std::domain_error { public: mixed_types_not_allowed( std::string str ) : domain_error("Invalid type mix: "+str) { } }; /// Channel does not exist class signal_exists_not : public std::domain_error { public: signal_exists_not( std::string str ) : domain_error("Signal does not exist: "+str) { } }; /// Channel does exist class signal_exists : public std::domain_error { public: signal_exists( std::string str ) : domain_error("Signal does exist: "+str) { } }; /// Channel does not exist class nonexistent_channel_access : public std::out_of_range { public: nonexistent_channel_access( std::string str ) : out_of_range("Channel does not exist: "+str) { } }; /// Number of channels does not match. class mismatch_channel_number : public std::domain_error { public: mismatch_channel_number( std::string str ) : domain_error("Number of channels mismatch: "+str) { } }; /// Data for event does not satisfy event representation constraints specified in GDF standard. class event_conversion_error : public std::domain_error { public: event_conversion_error( std::string str ) : domain_error("Event conversion error: "+str) { } }; /// Record Buffer is corrupt. This likely indicates an internal programming error. class corrupt_recordbuffer : public std::runtime_error { public: corrupt_recordbuffer( std::string str ) : runtime_error("Record buffer corrupted: "+str) { } }; /// Feature is not implemented yet. class feature_not_implemented : public std::logic_error { public: feature_not_implemented( std::string str ) : logic_error("Feature not implemented: "+str) { } }; /// File is not open class file_not_open : public std::invalid_argument { public: file_not_open( std::string str ) : invalid_argument("File is not open: "+str) { } }; /// File is not open class file_open : public std::invalid_argument { public: file_open( std::string str ) : invalid_argument("File is open: "+str) { } }; /// File exists class file_exists : public std::invalid_argument { public: file_exists( std::string str ) : invalid_argument("File exists: "+str) { } }; /// File dos not exist class file_exists_not : public std::invalid_argument { public: file_exists_not( std::string str ) : invalid_argument("File does not exists: "+str) { } }; /// File exists class serialization_error : public std::logic_error { public: serialization_error( std::string str ) : logic_error("Serialization error: "+str) { } }; /// Illegal attempt to change event mode class illegal_eventmode_change : public std::domain_error { public: illegal_eventmode_change( std::string str ) : domain_error("Illegal attempt to change event mode: "+str) { } }; /// Invalid event mode class invalid_eventmode : public std::domain_error { public: invalid_eventmode( std::string str ) : domain_error("Invalid event mode: "+str) { } }; /// Operation on wrong event mode class wrong_eventmode : public std::domain_error { public: wrong_eventmode( std::string str ) : domain_error("Wrong event mode: "+str) { } }; /// class incompatible_gdf_version : public general { public: incompatible_gdf_version (std::string version_of_file) : general ("Version \""+version_of_file+"\" not supported!"), version_of_file_ (version_of_file) {} virtual ~incompatible_gdf_version () throw () {} std::string getVersionOfFile () {return version_of_file_;} private: std::string version_of_file_; }; /// Header Issues class header_issues : public std::exception { public: header_issues( std::list< std::string > w, std::list< std::string > e ) : warnings(w), errors(e) { generate_message(); } header_issues( std::list< std::string > w ) : warnings(w), errors() { generate_message(); } std::list< std::string > warnings, errors; virtual ~header_issues( ) throw() { } void generate_message( ) { std::stringstream ss; ss << std::endl; std::list< std::string >::const_iterator it; if( warnings.size( ) > 0 ) ss << std::string("Warnings: ") << std::endl; for( it=warnings.begin(); it!=warnings.end(); it++ ) ss << " -> " << *it << std::endl; if( errors.size( ) > 0 ) { ss << "Errors: " << std::endl; for( it=errors.begin(); it!=errors.end(); it++ ) ss << " -> " << *it << std::endl; } str = ss.str( ); } const char *what( ) const throw() { return str.c_str( ); } size_t num_warnings( ) { return warnings.size(); } size_t num_errors( ) { return errors.size(); } private: std::string str; }; } } #endif libgdf-release-0.1.3/libgdf/include/GDF/GDFHeaderAccess.h000066400000000000000000000062771223711576300226610ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __GDFHEADERACCESS_H_INCLUDED__ #define __GDFHEADERACCESS_H_INCLUDED__ #include "EventHeader.h" #include "SignalHeader.h" #include "MainHeader.h" #include "EventDescriptor.h" #include "TagHeader.h" #include #include namespace gdf { //class TagHeader; class GDFHeaderAccess { public: /// Constructor GDFHeaderAccess( ); /// Destructor virtual ~GDFHeaderAccess( ); /// Reset header to initial state void clear( ); /// perform sanity check on header and normalize header information. /** If there are issues with the configuration an exception with detailed information is thrown.*/ void sanitize( ); /// set record duration /** Normally record duration is automatically set to the smallest possible value. This functionality is overriden when manually setting the record duration. */ void setRecordDuration( uint32 num, uint32 den ); /// enable automatic record duration void enableAutoRecordDuration( ); const MainHeader &getMainHeader_readonly( ) const; MainHeader &getMainHeader( ); const SignalHeader &getSignalHeader_readonly( size_t idx ) const; SignalHeader &getSignalHeader( size_t idx ); std::vector getSignalIndices( ) const; bool createSignal( size_t index, bool throwexc = false ); size_t getFirstFreeSignalIndex( ); size_t getNumSignals( ) const; void swapSignals( size_t a, size_t b ); void relocateSignal( size_t src, size_t dst ); EventHeader &getEventHeader( ); TagHeader &getTagHeader( ); const TagHeader &getTagHeader_readonly( ) const; friend std::ostream& operator<< (std::ostream& out, const GDFHeaderAccess& hdr); friend std::istream& operator>> (std::istream& in, GDFHeaderAccess& hdr); /// Lock write access to headers void setLock( bool b) { m_lock = b; } // Utility functions size_t getNumberOfSamplesInSignal( size_t signal_index ) const; private: MainHeader m_mainhdr; std::map m_sighdr; EventHeader m_events; TagHeader m_taghdr; uint32 drd_num, drd_den; bool m_lock; }; /// Header Serializer std::ostream& operator<< (std::ostream& out, const GDFHeaderAccess& hdr); /// Header Deserializer std::istream& operator>> (std::istream& in, GDFHeaderAccess& hdr); } #endif libgdf-release-0.1.3/libgdf/include/GDF/HeaderItem.h000066400000000000000000000133311223711576300220220ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __HEADERITEM_H_INCLUDED__ #define __HEADERITEM_H_INCLUDED__ #include "Types.h" #include "Exceptions.h" #include #include #include #include #define GDF_DECLARE_HEADERITEM( NAME, TYPE, POS ) \ public: \ const TYPE &get_##NAME( ) const { return NAME.item; }; \ void set_##NAME( const TYPE &val ) { NAME.item = val; }; \ private: \ HeaderItem NAME; #define GDF_DECLARE_HEADERITEM_PRIVATE( NAME, TYPE, POS ) \ public: \ const TYPE &get_##NAME( ) const { return NAME.item; }; \ private: \ void set_##NAME( const TYPE &val ) { NAME.item = val; }; \ HeaderItem NAME; #define GDF_DECLARE_HEADERARRAY( NAME, TYPE, POS, LEN ) \ public: \ const TYPE *get_##NAME( ) const { return NAME.item; } \ TYPE *get_##NAME( ) { return NAME.item; } \ TYPE get_##NAME( size_t i ) const { return NAME.item[i]; } \ void set_##NAME( const TYPE val, size_t i ) { NAME.item[i] = val; } \ void set_##NAME( const TYPE *val, const size_t len=LEN ) { for( size_t i=0; i NAME; #define GDF_DECLARE_HEADERSTRING( NAME, POS, LEN ) \ public: \ const std::string get_##NAME( ) const { return std::string( NAME.item, LEN ); }; \ void set_##NAME( const std::string str ) { for( size_t i=0; i NAME; #define GDF_DECLARE_RESERVED( NAME, POS, LEN ) \ public: \ const char *get_##NAME( ) const { return NAME.item; }; \ private: \ void set_##NAME( const char *val, const size_t len ) { for( size_t i=0; i NAME; #define GDF_BEGIN_HEADERMAP( ) \ public: \ const std::map< size_t, HeaderRef > &getposmap() const {return posmap;} \ const std::map< std::string, HeaderRef > &getstrmap() const {return strmap;} \ private: \ std::map< size_t, HeaderRef > posmap; \ std::map< std::string, HeaderRef > strmap; \ void initHeaderMap( ) { #define GDF_END_HEADERMAP( ) \ } #define GDF_ASSIGN_HEADERARRAY( NAME ) \ posmap[NAME.pos] = HeaderRef( #NAME, NAME.item, NAME.pos, sizeof(NAME.item) ); \ strmap[#NAME] = HeaderRef( #NAME, NAME.item, NAME.pos, sizeof(NAME.item) ); #define GDF_ASSIGN_RESERVED( NAME ) \ posmap[NAME.pos] = HeaderRef( #NAME, NAME.item, NAME.pos, sizeof(NAME.item) ); \ strmap[#NAME] = HeaderRef( #NAME, NAME.item, NAME.pos, sizeof(NAME.item) ); #define GDF_ASSIGN_HEADERITEM( NAME ) \ posmap[NAME.pos] = HeaderRef( #NAME, &NAME.item, NAME.pos, sizeof(NAME.item) ); \ strmap[#NAME] = HeaderRef( #NAME, &NAME.item, NAME.pos, sizeof(NAME.item) ); namespace gdf { struct HeaderItemBase { virtual void tostream( std::ostream &out ) const = 0; }; /// Store header variable of type T at offset P template struct HeaderItem : public HeaderItemBase { HeaderItem( ) : item(), pos(P) { } //void tostream( std::ostream & out ) const { out.write( reinterpret_cast(&item), sizeof(item) ); } //void fromstream( std::istream &in ) { in.read( reinterpret_cast(&item), sizeof(item) ); } void tostream( std::ostream & out ) const { writeLittleEndian( out, item ); } void fromstream( std::istream &in ) { readLittleEndian( in, item ); } T item; size_t pos; }; /// Store array-style header variable of length L and type T at offset P template struct HeaderArray : public HeaderItemBase { HeaderArray( ) : pos(P), len(L) { } T &operator[]( size_t idx ) { return item[idx]; } const T &operator[]( size_t idx ) const { return item[idx]; } //void tostream( std::ostream & out ) const { out.write( reinterpret_cast(item), sizeof(item) ); } //void fromstream( std::istream &in ) { in.read( reinterpret_cast(item), sizeof(item) ); } void tostream( std::ostream & out ) const { for(size_t i=0; i. // // Copyright 2010, 2013 Martin Billinger, Owen Kelly #ifndef __MAINHEADER_H_INCLUDED__ #define __MAINHEADER_H_INCLUDED__ #include "HeaderItem.h" #include #include ///////////////////////////////////////////////// // A brief history of GDF versions from 2.10 to 2.22 // // Comments describe changes since the previous version. // Notation "v3" is a version at http://arxiv.org/abs/cs/0608052 ; // "2.10" is a GDF version. // // History // // v3 2.10 Version 2.10 introduces the Tag-Length-Value structure to // Header 3 in place of free header. // v4 2.11 IP address moved from Header 1 to Header 3. // Patient Classification (patient_ICD) introduced at Header 1 byte 186. // Technician ID, Lab ID, Device info and MEG info added to Header 3. // v5 2.12 Adds heart impairment interpretation Header 1 patient_flags. // v6 2.20 In Header 2, Replaces Electrode impedance with // Electrode impedance OR Probe Frequency depending on units. // Both are stored float32, therefore this is an interpretation difference only. // v7 2.22 Header1.Duration changed to float64 (this breaks compatibility with <= 2.20). // Adds TOffset field to Header 2. // v8 2.23 No format change. // ///////////////////////////////////////////////// namespace gdf { class GDFHeaderAccess; /// Contains all information required to construct the GDF fixed header class MainHeader { GDF_DECLARE_HEADERSTRING( version_id, 0, 8 ) GDF_DECLARE_HEADERSTRING( patient_id, 8, 66 ) GDF_DECLARE_RESERVED( reserved_1, 74, 10 ) GDF_DECLARE_HEADERITEM( patient_drugs, uint8, 84 ) GDF_DECLARE_HEADERITEM( patient_weight, uint8, 85 ) GDF_DECLARE_HEADERITEM( patient_height, uint8, 86 ) GDF_DECLARE_HEADERITEM( patient_flags, uint8, 87 ) GDF_DECLARE_HEADERSTRING( recording_id, 88, 64 ) GDF_DECLARE_HEADERARRAY( recording_location, uint32, 152, 4 ) GDF_DECLARE_HEADERITEM( recording_start, uint64, 168 ) // defined as uint32[2] in the spec GDF_DECLARE_HEADERITEM( patient_birthday, uint64, 176 ) // defined as uint32[2] in the spec GDF_DECLARE_HEADERITEM( header_length, uint16, 184 ) GDF_DECLARE_HEADERSTRING( patient_ICD, 186, 6 ) // defined as byte[6] in the spec GDF_DECLARE_HEADERITEM( equipment_provider_classification, uint64, 192 ) GDF_DECLARE_RESERVED( reserved_2, 200, 6 ) // GDF 2.11 and later (to 2.23 at least) //GDF_DECLARE_HEADERARRAY( ip_address, uint8, 200, 6 ) // GDF 2.10 GDF_DECLARE_HEADERARRAY( patient_headsize, uint16, 206, 3 ) GDF_DECLARE_HEADERARRAY( pos_reference, float32, 212, 3 ) GDF_DECLARE_HEADERARRAY( pos_ground, float32, 224, 3 ) GDF_DECLARE_HEADERITEM( num_datarecords, int64, 236 ) GDF_DECLARE_HEADERARRAY( datarecord_duration, uint32, 244, 2 ) // GDF 2.20 and earlier // GDF_DECLARE_HEADERITEM( datarecord_duration, float64, 244 ) // GDF 2.22 and later GDF_DECLARE_HEADERITEM_PRIVATE( num_signals, uint16, 252 ) GDF_DECLARE_RESERVED( reserved_3, 254, 2 ) /*GDF_BEGIN_HEADERMAP( ) GDF_ASSIGN_HEADERARRAY( version_id ) GDF_ASSIGN_HEADERARRAY( patient_id ) GDF_ASSIGN_RESERVED( reserved_1 ) GDF_ASSIGN_HEADERITEM( patient_drugs ) GDF_ASSIGN_HEADERITEM( patient_weight ) GDF_ASSIGN_HEADERITEM( patient_height ) GDF_ASSIGN_HEADERITEM( patient_flags ) GDF_ASSIGN_HEADERARRAY( recording_id ) GDF_ASSIGN_HEADERARRAY( recording_location ) GDF_ASSIGN_HEADERITEM( recording_start ) GDF_ASSIGN_HEADERITEM( patient_birthday ) GDF_ASSIGN_HEADERITEM( header_length ) GDF_ASSIGN_HEADERARRAY( patient_ICD ) GDF_ASSIGN_HEADERITEM( equipment_provider_classification ) GDF_ASSIGN_RESERVED( reserved_2 ) GDF_ASSIGN_HEADERARRAY( patient_headsize ) GDF_ASSIGN_HEADERARRAY( pos_reference ) GDF_ASSIGN_HEADERARRAY( pos_ground ) GDF_ASSIGN_HEADERITEM( num_datarecords ) GDF_ASSIGN_HEADERARRAY( datarecord_duration ) GDF_ASSIGN_HEADERITEM( num_signals ) GDF_ASSIGN_RESERVED( reserved_3 ) GDF_END_HEADERMAP( )*/ public: /// Constructor MainHeader( ); /// set header items to default values void setDefaultValues( ); /// copy another Main Header void copyFrom( const MainHeader &other ); /// Assign a string valued item void setString( std::string item, std::string value ) { if( item == "version_id" ) set_version_id( value ); else if( item == "patient_id" ) set_patient_id( value ); else if( item == "recording_id" ) set_recording_id( value ); else if( item == "patient_ICD" ) set_patient_ICD( value ); else throw exception::general( "Bad assignment of a string to " + item ); } /// get value of a string item std::string getString( std::string item ) { if( item == "version_id" ) return get_version_id( ); else if( item == "patient_id" ) return get_patient_id( ); else if( item == "recording_id" ) return get_recording_id( ); else if( item == "patient_ICD" ) return get_patient_ICD( ); else throw exception::general( "Bad attempt to read "+item+" as string" ); } /// Assign a numeric item template void setNumeric( std::string item, T value ) { using boost::numeric_cast; if( item == "patient_drugs" ) set_patient_drugs( numeric_cast(value) ); else if( item == "patient_weight" ) set_patient_weight( numeric_cast(value) ); else if( item == "patient_height" ) set_patient_height( numeric_cast(value) ); else if( item == "patient_flags" ) set_patient_flags( numeric_cast(value) ); else if( item == "recording_start" ) set_recording_start( numeric_cast(value) ); else if( item == "patient_birthday" ) set_patient_birthday( numeric_cast(value) ); else if( item == "header_length" ) set_header_length( numeric_cast(value) ); else if( item == "equipment_provider_classification" ) set_equipment_provider_classification( numeric_cast(value) ); else if( item == "num_datarecords" ) set_num_datarecords( numeric_cast(value) ); else throw exception::general( "Bad assignment to " + item ); } /// get value of a numeric item template T getNumeric( std::string item, T ) { using boost::numeric_cast; if( item == "patient_drugs" ) return numeric_cast(get_patient_drugs( )); else if( item == "patient_weight" ) return numeric_cast(get_patient_weight( )); else if( item == "patient_height" ) return numeric_cast(get_patient_height( )); else if( item == "patient_flags" ) return numeric_cast(get_patient_flags( )); else if( item == "recording_start" ) return numeric_cast(get_recording_start( )); else if( item == "patient_birthday" ) return numeric_cast(get_patient_birthday( )); else if( item == "header_length" ) return numeric_cast(get_header_length( )); else if( item == "equipment_provider_classification" ) return numeric_cast(get_equipment_provider_classification( )); else if( item == "num_datarecords" ) return numeric_cast(get_num_datarecords( )); else throw exception::general( item + " is not known as a numeric item" ); } /// Assign a numeric array item template void setArray( std::string item, size_t array_index, T value ) { using boost::numeric_cast; if( item == "recording_location" ) recording_location[array_index] = numeric_cast(value); else if( item == "patient_headsize" ) patient_headsize[array_index] = numeric_cast(value); else if( item == "pos_reference" ) pos_reference[array_index] = numeric_cast(value); else if( item == "pos_ground" ) pos_ground[array_index] = numeric_cast(value); else if( item == "datarecord_duration" ) datarecord_duration[array_index] = numeric_cast(value); else throw exception::general( "Bad array access to " + item ); } /// get a numeric array item template T getArray( std::string item, size_t array_index, T ) { using boost::numeric_cast; if( item == "recording_location" ) return numeric_cast(recording_location[array_index]); else if( item == "patient_headsize" ) return numeric_cast(patient_headsize[array_index]); else if( item == "pos_reference" ) return numeric_cast(pos_reference[array_index]); else if( item == "pos_ground" ) return numeric_cast(pos_ground[array_index]); else if( item == "datarecord_duration" ) return numeric_cast(datarecord_duration[array_index]); else throw exception::general( "Bad array access to " + item ); } // Converts version numbers so that "GDF 2.20" returns the integer 220. int getGdfVersionInt(); friend class GDFHeaderAccess; friend class Writer; friend class Reader; friend std::ostream& operator<< (std::ostream& out, const GDFHeaderAccess& hdr); friend std::istream& operator>> (std::istream& in, GDFHeaderAccess& hdr); }; } #endif libgdf-release-0.1.3/libgdf/include/GDF/Modifier.h000066400000000000000000000047541223711576300215620ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __MODIFIER_H_INCLUDED__ #define __MODIFIER_H_INCLUDED__ #include "Reader.h" #include #include #include namespace gdf { /// Class for reading, modifying and saving changes to GDF files. /** It is not possible to change the number of signals or their length. When a sample is set, the entire record is marked for rewriting. If the Event Header is retrieved using the non-const get function, it is marked for rewriting. */ class Modifier : private Reader { public: /// Constructor Modifier( ); /// Destructor virtual ~Modifier( ); /// Opens file for modification void open( const std::string filename ); /// Close file void close( ); /// Write changes to disk void saveChanges( ); /// Get a single Sample (physical units) /** @param[in] channel_idx channel index @param[in] sample_idx sample index */ double getSample( uint16 channel_idx, size_t sample_idx ); /// Set a single Sample (physical units) /** @param[in] channel_idx channel index @param[in] sample_idx sample index @param[in] value */ void setSample( uint16 channel_idx, size_t sample_idx, double value ); /// get writable reference to event header EventHeader *getEventHeader( ); /// get const reference to event header const EventHeader *getEventHeader_readonly( ); private: /// Initialize cache to correct size void initCache( ); /// Reset cache to empty state void resetCache( ); std::vector< bool > m_record_changed; bool m_events_changed; }; } #endif // __READER_H_INCLUDED__ libgdf-release-0.1.3/libgdf/include/GDF/Reader.h000066400000000000000000000117471223711576300212260ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __READER_H_INCLUDED__ #define __READER_H_INCLUDED__ #include "Record.h" #include "EventHeader.h" #include "GDFHeaderAccess.h" #include "Types.h" #include "tools.h" #include #include #include namespace gdf { /// Class for reading GDF files to disc. /** Data Records are only read on demand and stay in memory until another file is opened or the Reader object is destroyed. This cache can be disabled. Then each data record is loaded from disk everytime it is accessed. This saves memory, but may severly decrease performance. */ class Reader { public: /// Constructor Reader( ); /// Destructor virtual ~Reader( ); /// Opens file for reading void open( const std::string filename ); /// Close file void close( ); /// Enable or disable cache void enableCache( bool b ); /// Set cache to the correct size virtual void initCache( ); /// Reset cache to empty state virtual void resetCache( ); /// Find Record index to which a sample belongs size_t findRecord( uint16 channel_idx, size_t sample_idx ); /// Read Signals from file into buffer (physical units) /** Sample values are converted to physical units. @param[out] buffer vector; each element is a channel. @param[in] start_time samples with n >= start_time*fs are loaded. @param[in] end_time samples with n < end_time*fs are loaded. end_time = -1 loads the complete signal. @param[in] signal_indices vector with signal indices that should be loaded. If empty, all signals are loaded. */ void getSignals( std::vector< std::vector > &buffer, double start_time = 0, double end_time = -1, std::vector signal_indices = std::vector() ); /// Read a single channel from file into buffer. /** The buffer must be allocated by the user, who is also responsible that enough memory is allocated. @param[in] channel_idx index of channel to read @param[out] buffer pointer to double array @param[in] start_time samples with n >= start are loaded. @param[in] end_time samples with n < end are loaded. end <= start loads the complete signal. */ void getSignal( uint16 channel_idx, double *buffer, size_t start = 0, size_t end = 0 ); /// Read a single Sample (physical units) /** @param[in] channel_idx channel index @param[in] sample_idx sample index */ double getSample( uint16 channel_idx, size_t sample_idx ); /// Returns a reference to Record Record *getRecordPtr( size_t index ); /// Read directly into Record rec void readRecord( size_t index, Record *rec ); /// Precache a range of Records void precacheRecords( size_t start, size_t end ); /// get reference to event header EventHeader *getEventHeader( ); /// get Constant reference to header access const GDFHeaderAccess &getHeaderAccess_readonly( ) const { return m_header; } /// get Constant reference to main header const MainHeader &getMainHeader_readonly( ) const { return m_header.getMainHeader_readonly( ); } /// get constant reference to a signal's header const SignalHeader &getSignalHeader_readonly( size_t idx ) const { return m_header.getSignalHeader_readonly(idx); } /// Converts from event to sample /** @throws exception::event_conversion_error @throws exception::invalid_operation */ void eventToSample( double& sample_time_sec, double& sample_physical_value, const Mode3Event& ev ) ; protected: void readEvents( ); std::string m_filename; GDFHeaderAccess m_header; EventHeader *m_events; std::vector< Record* > m_record_cache; Record* m_record_nocache; std::list m_cache_entries; std::ifstream m_file; bool m_cache_enabled; size_t m_record_length; /// Record length in bytes size_t m_record_offset; /// Where data records start in the file size_t m_event_offset; /// Where the event table starts in the file }; } #endif // __READER_H_INCLUDED__ libgdf-release-0.1.3/libgdf/include/GDF/Record.h000066400000000000000000000051621223711576300212340ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __RECORD_H_INCLUDED__ #define __RECORD_H_INCLUDED__ #include "Channel.h" #include "pointerpool.h" #include #include namespace gdf { class GDFHeaderAccess; /// A Record is a block of data that contains a short time period of samples from all channels. class Record { private: /// Constructor Record( const GDFHeaderAccess *hdr ); public: /// Copy Constructor Record( const Record &other ); /// Destructor virtual ~Record( ); /// clear Record (revert to initial state) void clear( ); /// copy from another Record void operator=( const Record &other ); /// Fills free samples in all channels with defined values. /** This function is used to fill unfinished records before writing them to disc. For now we fill with NaNs if supported by the channel's data type and (physical) 0 otherwise. @todo What values should we fill in? NaN would be nice for floating point, but what about other data types? */ void fill( ); /// Returns true if all channels in the record have no free samples. bool isFull( ) const; /// Returns true if all channels in the record are empty. bool isEmpty( ) const; /// Returns reference to channel chan_idx. Channel *getChannel( const size_t chan_idx ); friend std::ostream &operator<<( std::ostream &out, const Record &c ); friend std::istream &operator>>( std::istream &in, Record &c ); friend class RecordBuffer; friend class Reader; //friend class PointerPool; private: std::vector< Channel* > channels; }; /// Record Serializer std::ostream &operator<<( std::ostream &out, const Record &r ); /// Record Deserializer std::istream &operator>>( std::istream &in, Record &r ); } #endif libgdf-release-0.1.3/libgdf/include/GDF/RecordBuffer.h000066400000000000000000000132421223711576300223640ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __RECORDBUFFER_H_INCLUDED__ #define __RECORDBUFFER_H_INCLUDED__ #include "Channel.h" #include "pointerpool.h" //#include "GDF/RecordFullHandler.h" #include #include namespace gdf { class Record; class GDFHeaderAccess; class RecordFullHandler; /// Buffers incomplete records before they are written to disk. /** When saving data, one or more channels can be ahead of the others, and may even extend over multiple records. RecordBuffer takes care of this by creating a new record as soon a channel exceeds it's capacity. */ class RecordBuffer { public: /// Constructor RecordBuffer( const GDFHeaderAccess *gdfh ); /// Destructor virtual ~RecordBuffer( ); /// Clear all buffers void clearBuffers( ); /// Resets the buffer to a valid initial state void reset( ); /// Called when a channel becomes full /** This function advances the write pointer m_channelhead for this channel to the next record. If there is no next record, a new one is created. Also checks if the current record is full and performs calls the respective handler. */ void handleChannelFull( const size_t channel_idx ); /// Called when a record becomes full /** */ void handleRecordFull( ); /// Register Callback for record full event void registerRecordFullCallback( RecordFullHandler *h ); /// Unegister Callback for record full event void unregisterRecordFullCallback( RecordFullHandler *h ); /// Add a physical sample to the channel specified by channel_idx. void addSamplePhys( const size_t channel_idx, const double value ); /// Add a raw sample to the channel specified by channel_idx. template void addSampleRaw( const size_t channel_idx, const T rawval ) { Channel *ch = getValidChannel( channel_idx ); ch->addSampleRaw( rawval ); if( ch->getFree( ) == 0 ) handleChannelFull( channel_idx ); } /// Blit a number of physical samples into channel specified by channel_idx. void blitSamplesPhys( const size_t channel_idx, const double *values, size_t num ); /// Blit a number of raw samples into channel specified by channel_idx. template void blitSamplesRaw( const size_t channel_idx, const T *values, size_t num ) { size_t i = 0; while( igetFree( ) ); ch->blitSamplesRaw( &values[i], n ); if( ch->getFree( ) == 0 ) handleChannelFull( channel_idx ); i += n; } } /// Fill a number of samples with the same physical value. void fillPhys( const size_t channel_idx, const double value, size_t num ); /// Fill a number of samples with the same raw value. template void fillRaw( const size_t channel_idx, const T value, size_t num ); /// Add a complete Record /** There may not be any partial records in the buffer in order to add a complete record. */ void addRecord( Record *r ); /// Returns a reference to a free record. /** Use this instead of 'new Record()'. **/ Record *acquireRecord( ); /// Put a new record to the end of the list. std::list< Record* >::iterator createNewRecord( ); /// Reference to first (oldest) full record in list. This is also the first record that gets filled. Record *getFirstFullRecord( ); /// Remove first full record in list. void removeFirstFullRecord( ); /// Get number of full records in the buffer. inline size_t getNumFullRecords( ) const { return m_num_full; } /// Get number of partially filled records currently in the list. inline size_t getNumPartialRecords( ) const { return m_records.size( ); } /// Returns reference to channel specified by channel_idx /** If channel does not exist gdf::nonexistent_channel_access::nonexistent_channel_access is thrown. A new record is created if the channelhead points to the end of the record list.*/ Channel *getValidChannel( const size_t channel_idx ); /// Gets number of free samples currently allocated for this channel size_t getNumFreeAlloc( const size_t channel_idx ); /// Fills all partial records with default values void flood( ); protected: private: const GDFHeaderAccess *m_gdfh; PointerPool *m_pool; std::list< Record* > m_records; std::list< Record* > m_records_full; size_t m_num_full; std::vector< std::list< Record* >::iterator > m_channelhead; std::list m_recfull_callbacks; }; } #endif libgdf-release-0.1.3/libgdf/include/GDF/RecordFullHandler.h000066400000000000000000000005461223711576300233560ustar00rootroot00000000000000 #ifndef __RECORDFULLHANDLER_H_INCLUDED__ #define __RECORDFULLHANDLER_H_INCLUDED__ namespace gdf { class Record; class RecordFullHandler { public: /// Constructor RecordFullHandler( ) { } /// Destructor virtual ~RecordFullHandler( ) { } virtual void triggerRecordFull( Record *rec ) = 0; }; } #endif libgdf-release-0.1.3/libgdf/include/GDF/SignalHeader.h000066400000000000000000000161541223711576300223470ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __SIGNALHEADER_H_INCLUDED__ #define __SIGNALHEADER_H_INCLUDED__ #include "HeaderItem.h" #include namespace gdf { class GDFHeaderAccess; /// Contains all information required to construct the GDF signal header class SignalHeader { GDF_DECLARE_HEADERSTRING( label, 0, 16 ) GDF_DECLARE_HEADERSTRING( transducer_type, 16, 80) GDF_DECLARE_HEADERSTRING( physical_dimension, 96, 6) // the spec defines this as a 6 byte long char[8] GDF_DECLARE_HEADERITEM( physical_dimension_code, uint16, 102 ) GDF_DECLARE_HEADERITEM( physmin, float64, 104 ) GDF_DECLARE_HEADERITEM( physmax, float64, 112 ) GDF_DECLARE_HEADERITEM( digmin, float64, 120 ) GDF_DECLARE_HEADERITEM( digmax, float64, 128 ) GDF_DECLARE_RESERVED( reserved_1, 136, 68 ) GDF_DECLARE_HEADERITEM( lowpass, float32, 204 ) GDF_DECLARE_HEADERITEM( highpass, float32, 208 ) GDF_DECLARE_HEADERITEM( notch, float32, 212 ) GDF_DECLARE_HEADERITEM_PRIVATE( samples_per_record, uint32, 216 ) GDF_DECLARE_HEADERITEM( datatype, uint32, 220 ) GDF_DECLARE_HEADERARRAY( sensor_pos, float32, 224, 3 ) GDF_DECLARE_HEADERITEM( sensor_info, float32, 236 ) GDF_DECLARE_RESERVED( reserved_2, 240, 16 ) /* GDF_BEGIN_HEADERMAP( ) GDF_ASSIGN_HEADERARRAY( label ) GDF_ASSIGN_HEADERARRAY( transducer_type ) GDF_ASSIGN_HEADERARRAY( physical_dimension ) GDF_ASSIGN_HEADERITEM( physical_dimension_code ) GDF_ASSIGN_HEADERITEM( physmin ) GDF_ASSIGN_HEADERITEM( physmax ) GDF_ASSIGN_HEADERITEM( digmin ) GDF_ASSIGN_HEADERITEM( digmax ) GDF_ASSIGN_RESERVED( reserved_1 ) GDF_ASSIGN_HEADERITEM( lowpass ) GDF_ASSIGN_HEADERITEM( highpass ) GDF_ASSIGN_HEADERITEM( notch ) GDF_ASSIGN_HEADERITEM( samples_per_record ) GDF_ASSIGN_HEADERITEM( datatype ) GDF_ASSIGN_HEADERARRAY( sensor_pos ) GDF_ASSIGN_HEADERITEM( sensor_info ) GDF_END_HEADERMAP( )*/ public: /// Constructor SignalHeader( ); /// Destructor virtual ~SignalHeader( ); /// Assign a string valued item void setString( std::string item, std::string value ) { if( item == "label" ) set_label( value ); else if( item == "transducer_type" ) set_transducer_type( value ); else if( item == "physical_dimension" ) set_physical_dimension( value ); else throw exception::general( "Bad assignment of a string to " + item ); } /// get value of a string item std::string getString( std::string item ) const { if( item == "label" ) return get_label( ); else if( item == "transducer_type" ) return get_transducer_type( ); else if( item == "physical_dimension" ) return get_physical_dimension( ); else throw exception::general( "Bad attempt to read "+item+" as string" ); } /// Assign a numeric item template void setNumeric( std::string item, T value ) { using boost::numeric_cast; if( item == "physical_dimension_code" ) set_physical_dimension_code( numeric_cast(value) ); else if( item == "physmin" ) set_physmin( numeric_cast(value) ); else if( item == "physmax" ) set_physmax( numeric_cast(value) ); else if( item == "digmin" ) set_digmin( numeric_cast(value) ); else if( item == "digmax" ) set_digmax( numeric_cast(value) ); else if( item == "lowpass" ) set_lowpass( numeric_cast(value) ); else if( item == "highpass" ) set_highpass( numeric_cast(value) ); else if( item == "notch" ) set_notch( numeric_cast(value) ); else if( item == "datatype" ) set_datatype( numeric_cast(value) ); else if( item == "sensor_info" ) set_sensor_info( numeric_cast(value) ); else throw exception::general( "Bad assignment to " + item ); } /// get value of a numeric item template T getNumeric( std::string item ) const { using boost::numeric_cast; if( item == "physical_dimension_code" ) return numeric_cast(get_physical_dimension_code( )); else if( item == "physmin" ) return numeric_cast(get_physmin( )); else if( item == "physmax" ) return numeric_cast(get_physmax( )); else if( item == "digmin" ) return numeric_cast(get_digmin( )); else if( item == "digmax" ) return numeric_cast(get_digmax( )); else if( item == "lowpass" ) return numeric_cast(get_lowpass( )); else if( item == "highpass" ) return numeric_cast(get_highpass( )); else if( item == "notch" ) return numeric_cast(get_notch( )); else if( item == "datatype" ) return numeric_cast(get_datatype( )); else if( item == "sensor_info" ) return numeric_cast(get_sensor_info( )); else throw exception::general( item + " is not known as a numeric item" ); } /// Assign a numeric array item template void setArray( std::string item, size_t array_index, T value ) { using boost::numeric_cast; if( item == "sensor_pos" ) sensor_pos[array_index] = numeric_cast(value); else throw exception::general( "Bad array access to " + item ); } /// set header items to default values void setDefaultValues( ); /// copy another Signal Header void copyFrom( const SignalHeader &other ); /// Converts from physical units to raw digital representation double phys_to_raw( const double phy ) const; /// Converts from raw digital representation to physical units double raw_to_phys( const double raw ) const; void set_samplerate( uint32 fs ) { samplerate = fs; } uint32 get_samplerate( ) const { return samplerate; } private: uint32 samplerate; friend class GDFHeaderAccess; friend std::ostream& operator<< (std::ostream& out, const GDFHeaderAccess& hdr); friend std::istream& operator>> (std::istream& in, GDFHeaderAccess& hdr); }; } #endif libgdf-release-0.1.3/libgdf/include/GDF/TagHeader.h000066400000000000000000000073601223711576300216440ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010, 2013 Martin Billinger, Owen Kelly #ifndef __TAGHEADER_H_INCLUDED__ #define __TAGHEADER_H_INCLUDED__ #include "Types.h" #include "EventHeader.h" #include "EventDescriptor.h" //#include "GDFHeaderAccess.h" #include #include #include namespace gdf { class GDFHeaderAccess; /// Contains all information required to construct a T-L-V item in GDF tag header class TagField { public: /// Constructor TagField( uint8 tag ); /// Destructor virtual ~TagField( ); /// Serializer virtual void toStream( std::ostream &stream ) const; /// Deserializer virtual void fromStream( std::istream &stream ); /// Returns number the length of the header (number of bytes) size_t getLength() const { return m_value.size(); } /// Set the value explicitly. void setValue( std::vector value ){ m_value = value; } /// Get the value std::vector & getValue() { return m_value; } /// Update the output representation of the T-L-V field. virtual void finalize(){;} // Return the tag number int getTagNumber(){return int(m_tag);} private: std::vector m_value; uint8 m_tag; }; /// Contains all information required to construct the optional GDF tag header class TagHeader { public: /// Constructor TagHeader( ); /// Destructor virtual ~TagHeader( ); /// Serializer void toStream( std::ostream &stream ) const; /// Deserializer void fromStream( std::istream &stream , GDFHeaderAccess& hdr); /// Returns number the length of the header (number of 256 byte blocks) size_t getLength( ) {return m_hdr3SizeBlocks;} /// Calculates number of 256 byte blocks required to hold the tags that have been stored. // Useful when writing GDF files. void setLength( ); /// Update the output representation of the T-L-V field. void finalize(); /// Sets the number of 256 byte blocks to reserve for header3 data. // Useful when reading GDF files. void setLength( uint16 len ){m_hdr3SizeBlocks = len;} // stores a tag into the tagheader void addTagField( TagField & tagfield ); // Accessors void setEventDescriptor( EventDescriptor evd ){m_eventdesc = evd;} EventDescriptor & getEventDescriptor( ){return m_eventdesc;} void clear(); void copyFrom( const TagHeader &other ); // Container for the array of T-L-V sets. See Table 10 of GDF standard. std::map m_tags; private: // Minimum dumber of bytes to store the Header3 info (without padding) . uint16 m_header3ByteSizeUnpadded; // Number of 256 byte blocks required to store Header3. uint16 m_hdr3SizeBlocks; //std::map> m_tags; EventDescriptor m_eventdesc; }; } #endif libgdf-release-0.1.3/libgdf/include/GDF/Types.h000066400000000000000000000053011223711576300211150ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __TYPES_H_INCLUDED__ #define __TYPES_H_INCLUDED__ #include "Exceptions.h" #include #include #include namespace gdf { typedef boost::int8_t int8; typedef boost::uint8_t uint8; typedef boost::int16_t int16; typedef boost::uint16_t uint16; typedef boost::int32_t int32; typedef boost::uint32_t uint32; typedef boost::int64_t int64; typedef boost::uint64_t uint64; typedef float float32; typedef double float64; enum type_id { INVALID_TYPE = 0, INT8 = 1, UINT8 = 2, INT16 = 3, UINT16 = 4, INT32 = 5, UINT32 = 6, INT64 = 7, UINT64 = 8, FLOAT32 = 16, FLOAT64 = 17 }; size_t datatype_size( uint32 t ); template T switch_endian( const T &source ) { T dest; const char *A = reinterpret_cast(&source); char *B = reinterpret_cast(&dest); int a = 0; int b = sizeof(T)-1; while( b >= 0 ) { B[b] = A[a]; } } template void writeLittleEndian( std::ostream &out, T item ) { #if defined(BOOST_LITTLE_ENDIAN) out.write( reinterpret_cast(&item), sizeof(item) ); #elif defined(BOOST_BIG_ENDIAN) const char* p = reinterpret_cast(&item) + sizeof(item)-1; for( size_t i=0; i void readLittleEndian( std::istream &in, T &item ) { #if defined(BOOST_LITTLE_ENDIAN) in.read( reinterpret_cast(&item), sizeof(item) ); #elif defined(BOOST_BIG_ENDIAN) char* p = reinterpret_cast(&item) + sizeof(item)-1; for( size_t i=0; i. // // Copyright 2010 Martin Billinger #ifndef __VERSION_H_INCLUDED__ #define __VERSION_H_INCLUDED__ // Current library version // Must be the same as in the top level CMakeLists.txt #define GDF_VERSION "0.1.3" #endif libgdf-release-0.1.3/libgdf/include/GDF/Writer.h000066400000000000000000000272441223711576300212770ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010, 2013 Martin Billinger, Owen Kelly #ifndef __WRITER_H_INCLUDED__ #define __WRITER_H_INCLUDED__ #include "RecordBuffer.h" #include "RecordFullHandler.h" #include "EventHeader.h" #include "GDFHeaderAccess.h" #include #include #include #include namespace gdf { enum WriterFlags { writer_ev_file = 0, writer_ev_memory = 1, writer_overwrite = 2 }; /// Class for writing GDF files to disc. /** Events are buffered and appended to the file when calling close( ). By default events are buffered in a separate file named \e filename.events. Thus, information may be recovered after computer crashes during long online recordings. The user may chose to buffer events in memory instead (see open()). */ class Writer : public RecordFullHandler { public: /// Constructor Writer( ); /// Destructor virtual ~Writer( ); /// Opens file for writing and writes Header /** Prior to opening the file, GDFHeaderAccess::sanitize() is called. Exceptions thrown by GDFHeaderAccess::sanitize() are checked if there are errors and/or warnings. In the presence of errors the exception is forwarded immediately, and in case of warnings the file is opened but the exception is still forwarded. If the file exists, it is not opened unless the file_overwrite flag is set. @param[in] flags Flags... @throws exception::header_issues @throws exception::file_exists */ void open( const int flags = writer_ev_file ); /// Opens file for writing and writes Header /** Convenience function. Calls setFilename prior to opening the file @param[in] filename Full path name to the file. @param[in] flags Flags... @throws exception::header_issues @throws exception::file_exists */ void open( const std::string filename, const int flags = writer_ev_file ); /// Close file. /** File is closed if open. Prior to closing, events are written to the file. */ void close( ); /// Check if file is open bool isOpen( ); /// set filename for later opening /** @param[in] filename Full path name to the file */ void setFilename( std::string filename ); /// Set number of full records that are kept in memory before the buffer is flushed. /** @param[in] num number of records */ void setMaxFullRecords( size_t num ); /// Create a signal. /** Signals have to be created before they can be configured and stored. @param[in] index index of the signal @param[in] throwexc if true, exception::signal_exists may be thrown @returns true on success */ bool createSignal( size_t index, bool throwexc = false ); /// Swap to signals /** Both signals must exist. @param[in] a index of first signal @param[in] b index of second signal */ void swapSignals( size_t a, size_t b ); /// Change signal index /** The new index must not exist @param[in] src old index of first signal @param[in] dst new index of second signal */ void relocateSignal( size_t src, size_t dst ); /// get lowest signal index that can be created size_t getFirstFreeSignalIndex( ); /// Blit data from a serial buffer /** Instead of streaming samples as they come, the complete data is provided in an array of type double. In the buffer channels have to be arranged sequentially. I.e. all samples from channel 1 are followed by all samles from channel 2, and so on. This function attempts to keep memory overhead low by filling record by record whenever possible. @param[in] buf Buffer @param[in] samples_per_channel A vector containing the number of samples in each channel. */ void blitFromSerialBufferPhys( const double *buf, const std::vector &samples_per_channel ); /// Add sample in physical units to a channel /** The sample value is converted from the channels [physmin,physmax] to the range of [digmin,digmax] and then cast to the correct data type. @param[in] channel_idx index of the channel written to @param[in] value sample value in physical units */ void addSamplePhys( const size_t channel_idx, const float64 value ); /// Add a raw sample to channel /** The sample value is cast to the correct data type, but no range checking is performed @param[in] channel_idx index of the channel written to @param[in] value raw sample value in physical units */ template void addSampleRaw( const size_t channel_idx, const T value ) { m_recbuf.addSampleRaw( channel_idx, value ); } /// Blit a number of samples in physical units to channel /** The sample values are converted from the channels [physmin,physmax] to the range of [digmin,digmax] and then cast to the correct data type. @param[in] channel_idx index of the channel written to @param[in] values array of sample values in physical units @param[in] num number of samples to blit */ void blitSamplesPhys( const size_t channel_idx, const float64 *values, size_t num ); /// Blit a number of samples in physical units to channel /** The sample values are converted from the channels [physmin,physmax] to the range of [digmin,digmax] and then cast to the correct data type. @param[in] channel_idx index of the channel written to @param[in] values vector of sample values in physical units */ void blitSamplesPhys( const size_t channel_idx, const std::vector &values ); /// Blit a number of raw samples to channel /** The sample values are cast to the correct data type, but no range checking is performed @param[in] channel_idx index of the channel written to @param[in] values array of raw sample value @param[in] num number of samples to blit */ template void blitSamplesRaw( const size_t channel_idx, const T *values, size_t num ) { m_recbuf.blitSamplesRaw( channel_idx, values, num ); } /// Blit a number of raw samples to channel /** The sample values are cast to the correct data type, but no range checking is performed @param[in] channel_idx index of the channel written to @param[in] values vector of raw sample value */ template void blitSamplesRaw( const size_t channel_idx, const std::vector &values ) { m_recbuf.blitSamplesRaw( channel_idx, &values[0], values.size() ); } /// Add a complete Record void addRecord( Record *r ); /// Get pointer to a fresh Record Record *acquireRecord( ); /// writes record to disc void writeRecordDirect( Record *r ); /// writes all full records from buffer to disc void flush( ); /// Set Event Mode /** mode can be 1 or 3 1: (default) Events are stored as position,type pairs 3: Events are stored with position and type, associated to a channel and have a duration or value. @param[in] mode event mode */ void setEventMode( uint8 mode ); /// Set Sampling Rate associated with event positions /** Events are not actually sampled, but their position is stored in samples rather than seconds. In order to convert event positions between time and sample, this sampling rate is used. If Sampling rate is not set (or set to <= 0 ), fs is set to the highest signal sampling rate. @param[in] fs sampling rate */ void setEventSamplingRate( float32 fs = -1 ); /// Add a Mode 1 Event void addEvent( const Mode1Event &ev ); /// Add a Mode 1 Event void addEvent( uint32 position, uint16 type ); /// Add a Mode 3 Event void addEvent( const Mode3Event &ev ); /// Add a Mode 3 Event void addEvent( uint32 position, uint16 type, uint16 channel, uint32 duration ); /// Add a Mode 3 Event void addEvent( uint32 position, uint16 type, uint16 channel, float32 value ); /// get Constant reference to header access const GDFHeaderAccess &getHeaderAccess_readonly( ) const { return m_header; } /// get reference to main header GDFHeaderAccess &getHeaderAccess( ) { return m_header; } /// get Constant reference to main header const MainHeader &getMainHeader_readonly( ) const { return m_header.getMainHeader_readonly( ); } /// get reference to main header MainHeader &getMainHeader( ) { return m_header.getMainHeader( ); } /// get constant reference to a signal's header const SignalHeader &getSignalHeader_readonly( size_t idx ) const { return m_header.getSignalHeader_readonly(idx); } inline size_t getNumSignals( ) const { return m_header.getNumSignals( ); } /// get reference to a signal's header SignalHeader &getSignalHeader( size_t idx ) { return m_header.getSignalHeader(idx); } /// Converts from sample to event /** @throws exception::event_conversion_error */ void sampleToEvent( const double sample_time_sec, const double sample_physical_value, const uint16 channel, Mode3Event& ev ); /// Format an existing Mode 1 event (TYP, POS) to represent the given string (TYP) at the given time (POS). void makeFreeTextEvent( double noteTimeSec, const std::string str, EventDescriptor & ev_desc, Mode1Event & e ); /// Format an existing Mode 3 event (TYP, POS, CHN, DUR) to represent the given string (TYP) at the given time (POS). // Separately, the string may be associated to a particular channel using event.CHN. void makeFreeTextEvent( double noteTimeSec, const std::string str, EventDescriptor & ev_desc, Mode3Event & e ); private: /// write first full record from record buffer to disk void writeRecord( ); /// write events from buffer to file void writeEvents( ); /// record full handler virtual void triggerRecordFull( Record *rec ); RecordBuffer m_recbuf; GDFHeaderAccess m_header; std::fstream m_file; std::iostream m_eventbuffer; std::fstream m_evbuf_file; std::stringstream m_evbuf_memory; int m_eventbuffermemory; std::string m_filename; int64 m_num_datarecords; size_t max_full_records; }; } #endif // __WRITER_H_INCLUDED__ libgdf-release-0.1.3/libgdf/include/GDF/pointerpool.h000066400000000000000000000052651223711576300223740ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef POINTERPOOL_H #define POINTERPOOL_H #include #include template class PointerPool { public: /// Constructor PointerPool( T type_template, size_t num_el = 1000 ) { if( num_el == 0 ) throw std::invalid_argument( "PointerPool must not be empty." ); m_size_increment = num_el; m_avail = num_el; m_instances.resize( num_el, type_template ); typename std::list::iterator it = m_instances.begin( ); for( ; it != m_instances.end(); it++ ) m_free_pointers.push_back( &(*it) ); //std::cout << "PointerPool::PointerPool( )" << std::endl; } /// Destructor virtual ~PointerPool( ) { //std::cout << "PointerPool::~PointerPool( )" << std::endl; } /// Add new elements to pool void expand( size_t num_el ) { //std::cout << "PointerPool::expand( )" << std::endl; for( size_t i=0; i m_instances; std::list m_free_pointers; }; #endif // POINTERPOOL_H libgdf-release-0.1.3/libgdf/include/GDF/tools.h000066400000000000000000000044461223711576300211620ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __TOOLS_H_INCLUDED__ #define __TOOLS_H_INCLUDED__ #include namespace gdf { template T gcd( T a, T b) { if( a == 0 ) return b; if( b == 0 ) return a; while( 1 ) { a = a % b; if( a == 0 ) return b; b = b % a; if( b == 0 ) return a; } } template T gcd( const std::vector &v, size_t p, size_t r ) { if( v.size() == 0 ) throw exception::empty_container( "calculating GCD" ); if( p>=v.size() || r>= v.size() ) throw exception::index_out_of_range( "calculating GCD" ); if( r == p+1 ) return gcd( v[p], v[r] ); if( r == p ) return v[p]; int q = (p+r)/2; return gcd( gcd( v, p, q ), gcd( v, q+1, r ) ); } template T gcd( const std::vector &v ) { return gcd( v, size_t(0), v.size()-1 ); } template T max( const std::vector &v ) { T m = v[0]; for( size_t i=1; i T min( const std::vector &v ) { T m = v[0]; for( size_t i=1; i T sum( const std::vector &v ) { T m = v[0]; for( size_t i=1; i. // // Copyright 2010 Martin Billinger #include "GDF/Channel.h" #include "GDF/ChannelData.h" #include #include //#include namespace gdf { Channel::Channel( const SignalHeader *sig_hdr, const size_t length ) { m_signalheader = sig_hdr; switch( m_signalheader->get_datatype( ) ) { case INT8: { m_data = new ChannelData( length ); } break; case UINT8: { m_data = new ChannelData( length ); } break; case INT16: { m_data = new ChannelData( length ); } break; case UINT16: { m_data = new ChannelData( length ); } break; case INT32: { m_data = new ChannelData( length ); } break; case UINT32: { m_data = new ChannelData( length ); } break; case INT64: { m_data = new ChannelData( length ); } break; case UINT64: { m_data = new ChannelData( length ); } break; case FLOAT32: { m_data = new ChannelData( length ); } break; case FLOAT64: { m_data = new ChannelData( length ); } break; default: throw exception::invalid_type_id( boost::lexical_cast(m_signalheader->get_datatype( )) ); break; } } //=================================================================================================== //=================================================================================================== Channel::Channel( const SignalHeader *sig_hdr ) { m_signalheader = sig_hdr; size_t length = sig_hdr->get_samples_per_record( ); switch( m_signalheader->get_datatype( ) ) { case INT8: { m_data = new ChannelData( length ); } break; case UINT8: { m_data = new ChannelData( length ); } break; case INT16: { m_data = new ChannelData( length ); } break; case UINT16: { m_data = new ChannelData( length ); } break; case INT32: { m_data = new ChannelData( length ); } break; case UINT32: { m_data = new ChannelData( length ); } break; case INT64: { m_data = new ChannelData( length ); } break; case UINT64: { m_data = new ChannelData( length ); } break; case FLOAT32: { m_data = new ChannelData( length ); } break; case FLOAT64: { m_data = new ChannelData( length ); } break; default: throw exception::invalid_type_id( boost::lexical_cast(m_signalheader->get_datatype( )) ); break; } } //=================================================================================================== //=================================================================================================== Channel::Channel( const Channel &other ) { m_signalheader = other.m_signalheader; //size_t length = m_signalheader->get_samples_per_record( ); switch( m_signalheader->get_datatype( ) ) { case INT8: { m_data = new ChannelData( other.m_data ); } break; case UINT8: { m_data = new ChannelData( other.m_data ); } break; case INT16: { m_data = new ChannelData( other.m_data ); } break; case UINT16: { m_data = new ChannelData( other.m_data ); } break; case INT32: { m_data = new ChannelData( other.m_data ); } break; case UINT32: { m_data = new ChannelData( other.m_data ); } break; case INT64: { m_data = new ChannelData( other.m_data ); } break; case UINT64: { m_data = new ChannelData( other.m_data ); } break; case FLOAT32: { m_data = new ChannelData( other.m_data ); } break; case FLOAT64: { m_data = new ChannelData( other.m_data ); } break; default: throw exception::invalid_type_id( boost::lexical_cast(m_signalheader->get_datatype( )) ); break; } } //=================================================================================================== //=================================================================================================== Channel::~Channel( ) { delete m_data; } //=================================================================================================== //=================================================================================================== void Channel::clear( ) { m_data->clear( ); } //=================================================================================================== //=================================================================================================== void Channel::addSamplePhys( const double value ) { using boost::numeric_cast; double rawval = m_signalheader->phys_to_raw( value ); switch( m_signalheader->get_datatype( ) ) { case INT8: m_data->addSample( numeric_cast(rawval) ); break; case UINT8: m_data->addSample( numeric_cast(rawval) ); break; case INT16: m_data->addSample( numeric_cast(rawval) ); break; case UINT16: m_data->addSample( numeric_cast(rawval) ); break; case INT32: m_data->addSample( numeric_cast(rawval) ); break; case UINT32: m_data->addSample( numeric_cast(rawval) ); break; case INT64: m_data->addSample( numeric_cast(rawval) ); break; case UINT64: m_data->addSample( numeric_cast(rawval) ); break; case FLOAT32: m_data->addSample( numeric_cast(rawval) ); break; case FLOAT64: m_data->addSample( numeric_cast(rawval) ); break; default: throw exception::invalid_type_id( boost::lexical_cast(m_signalheader->get_datatype( )) ); break; }; } //=================================================================================================== //=================================================================================================== void Channel::blitSamplesPhys( const double *values, size_t num ) { for( size_t i=0; iphys_to_raw( value ); switch( m_signalheader->get_datatype( ) ) { case INT8: m_data->fill( numeric_cast(rawval), num ); break; case UINT8: m_data->fill( numeric_cast(rawval), num ); break; case INT16: m_data->fill( numeric_cast(rawval), num ); break; case UINT16: m_data->fill( numeric_cast(rawval), num ); break; case INT32: m_data->fill( numeric_cast(rawval), num ); break; case UINT32: m_data->fill( numeric_cast(rawval), num ); break; case INT64: m_data->fill( numeric_cast(rawval), num ); break; case UINT64: m_data->fill( numeric_cast(rawval), num ); break; case FLOAT32: m_data->fill( numeric_cast(rawval), num ); break; case FLOAT64: m_data->fill( numeric_cast(rawval), num ); break; default: throw exception::invalid_type_id( boost::lexical_cast(m_signalheader->get_datatype( )) ); break; }; } //=================================================================================================== //=================================================================================================== template void Channel::fillRaw( const T rawval, size_t num ) { using boost::numeric_cast; switch( m_signalheader->get_datatype( ) ) { case INT8: m_data->fill( numeric_cast(rawval), num ); break; case UINT8: m_data->fill( numeric_cast(rawval), num ); break; case INT16: m_data->fill( numeric_cast(rawval), num ); break; case UINT16: m_data->fill( numeric_cast(rawval), num ); break; case INT32: m_data->fill( numeric_cast(rawval), num ); break; case UINT32: m_data->fill( numeric_cast(rawval), num ); break; case INT64: m_data->fill( numeric_cast(rawval), num ); break; case UINT64: m_data->fill( numeric_cast(rawval), num ); break; case FLOAT32: m_data->fill( numeric_cast(rawval), num ); break; case FLOAT64: m_data->fill( numeric_cast(rawval), num ); break; default: throw exception::invalid_type_id( boost::lexical_cast(m_signalheader->get_datatype( )) ); break; }; } //=================================================================================================== //=================================================================================================== void Channel::setSamplePhys( size_t pos, double value ) { using boost::numeric_cast; double rawval = m_signalheader->phys_to_raw( value ); switch( m_signalheader->get_datatype() ) { case INT8: m_data->setSample( pos, numeric_cast( rawval ) ); break; case UINT8: m_data->setSample( pos, numeric_cast( rawval ) ); break; case INT16: m_data->setSample( pos, numeric_cast( rawval ) ); break; case UINT16: m_data->setSample( pos, numeric_cast( rawval ) ); break; case INT32: m_data->setSample( pos, numeric_cast( rawval ) ); break; case UINT32: m_data->setSample( pos, numeric_cast( rawval ) ); break; case INT64: m_data->setSample( pos, numeric_cast( rawval ) ); break; case UINT64: m_data->setSample( pos, numeric_cast( rawval ) ); break; case FLOAT32: m_data->setSample( pos, numeric_cast( rawval ) ); break; case FLOAT64: m_data->setSample( pos, numeric_cast( rawval ) ); break; default: throw exception::invalid_type_id( boost::lexical_cast(m_signalheader->get_datatype( )) ); break; } } //=================================================================================================== //=================================================================================================== double Channel::getSamplePhys( size_t pos ) { using boost::numeric_cast; switch( m_signalheader->get_datatype() ) { case INT8: return m_signalheader->raw_to_phys( numeric_cast( m_data->getSample( pos, int8() ) ) ); case UINT8: return m_signalheader->raw_to_phys( numeric_cast( m_data->getSample( pos, uint8() ) ) ); case INT16: return m_signalheader->raw_to_phys( numeric_cast( m_data->getSample( pos, int16() ) ) ); case UINT16: return m_signalheader->raw_to_phys( numeric_cast( m_data->getSample( pos, uint16() ) ) ); case INT32: return m_signalheader->raw_to_phys( numeric_cast( m_data->getSample( pos, int32() ) ) ); case UINT32: return m_signalheader->raw_to_phys( numeric_cast( m_data->getSample( pos, uint32() ) ) ); case INT64: return m_signalheader->raw_to_phys( numeric_cast( m_data->getSample( pos, int64() ) ) ); case UINT64: return m_signalheader->raw_to_phys( numeric_cast( m_data->getSample( pos, uint64() ) ) ); case FLOAT32: return m_signalheader->raw_to_phys( numeric_cast( m_data->getSample( pos, float32() ) ) ); case FLOAT64: return m_signalheader->raw_to_phys( numeric_cast( m_data->getSample( pos, float64() ) ) ); default: throw exception::invalid_type_id( boost::lexical_cast(m_signalheader->get_datatype( )) ); break; } } //=================================================================================================== //=================================================================================================== void Channel::deblitSamplesPhys( double *values, size_t start, size_t num ) { for( size_t i=0; igetFree( ); } //=================================================================================================== //=================================================================================================== size_t Channel::getWritten( ) { return m_data->getWritten( ); } //=================================================================================================== //=================================================================================================== uint32 Channel::getTypeID( ) { return m_signalheader->get_datatype( ); } //=================================================================================================== //=================================================================================================== std::ostream &operator<<( std::ostream &out, const Channel &c ) { c.m_data->tostream( out ); return out; } //=================================================================================================== //=================================================================================================== std::istream &operator>>( std::istream &in, Channel &c ) { c.m_data->fromstream( in ); return in; } } libgdf-release-0.1.3/libgdf/src/EventConverter.cpp000066400000000000000000000053021223711576300220620ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Christoph Eibel #include "GDF/EventConverter.h" #include "GDF/Types.h" #include #include #include using namespace std; namespace gdf { typedef map > TypeEventMap; uint16 const STOP_FLAG = 0x8000; uint16 const NOT_STOP_FLAG = 0x7FFF; //------------------------------------------------------------------------- vector convertMode1EventsIntoMode3Events (vector const& mode_1_events) throw (exception::general) { vector mode_3_events; TypeEventMap type_event_map; for (size_t index = 0; index < mode_1_events.size (); index++) { Mode1Event const& event_1 = mode_1_events[index]; type_event_map[event_1.type & NOT_STOP_FLAG].push_back (event_1); } for (TypeEventMap::iterator iter = type_event_map.begin (); iter != type_event_map.end (); ++iter) { sort (iter->second.begin (), iter->second.end ()); for (unsigned index = 0; index < iter->second.size (); index++) { if (iter->second[index].type & STOP_FLAG) throw exception::general ("events could not be converted from mode 1 to mode 3"); // throw exception::general ("events of same type are overlapping, not supported for mode 1 events"); Mode3Event event_3; event_3.channel = 0; // ALL CHANNELS event_3.type = iter->first; event_3.position = iter->second[index].position; if (iter->second[index+1].type == (iter->first | STOP_FLAG)) { event_3.duration = iter->second[index + 1].position - event_3.position; index++; } else event_3.duration = 0; mode_3_events.push_back (event_3); } } return mode_3_events; } } libgdf-release-0.1.3/libgdf/src/EventDescriptor.cpp000066400000000000000000000246041223711576300222370ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2013 Owen Kelly #include "GDF/EventDescriptor.h" #include "GDF/TagHeader.h" #include "GDF/Exceptions.h" #include #include #include #include #include namespace gdf { //=================================================================================================== //=================================================================================================== EventDescriptor::EventDescriptor( ) { ; } //=================================================================================================== //=================================================================================================== EventDescriptor::~EventDescriptor( ) { } //=================================================================================================== //=================================================================================================== uint16 EventDescriptor::addUserSpecificDesc( const std::string str ) { uint16 eventType; if( str.length() == 0 ) { throw exception::event_conversion_error("Cannot store empty user event description."); } if( m_userdesc.count( str ) ) { // case: the string is already known, just return the corresponding event type eventType = m_userdesc[str]; } else { // case: the string has not been seen before const int max_user_events_allowed = 255; uint16 num_user_events = m_userdesc.size(); if(num_user_events < max_user_events_allowed) { // assign an event type to this string; use the next available event number eventType = 1 + num_user_events; m_userdesc[str] = eventType; //add the pair to the global list setEventDesc( eventType, str ); } else { throw exception::event_conversion_error("Maximum of number of user event descriptions exceeded."); } } return eventType; } //=================================================================================================== //=================================================================================================== uint16 EventDescriptor::getUserDescEventType( const std::string str ) { uint16 eventType = 0; if( m_userdesc.count( str ) ) { // case: the string is already known, just return the corresponding event type eventType = m_userdesc[str]; } else { throw exception::event_conversion_error("No Event TYP stored for this annotation: " + str); } return eventType; } //=================================================================================================== //=================================================================================================== void EventDescriptor::setEventDesc( uint16 typ, const std::string str ) { m_desc[typ] = str; } //=================================================================================================== //=================================================================================================== const std::string &EventDescriptor::getEventDesc( uint16 typ ) { std::string &result = m_desc[typ]; return result; } //=================================================================================================== //=================================================================================================== void EventDescriptor::copyEventDescToUserDesc( ) { for( size_t k=1; k<256; k++ ) { if( this->m_desc.count(k) == 1 ) m_userdesc[m_desc[k]] = k; } } //=================================================================================================== //=================================================================================================== void EventDescriptor::loadEventDescriptions( const std::string &eventfilepath ) { std::ifstream infile(eventfilepath.c_str()); std::string line = ""; std::string token; uint16 eventType; std::string eventDesc; size_t lineNum = 0; while (getline(infile, line)){ lineNum++; if( (line.length() > 0) && (line.c_str()[0] != '#') ) { std::stringstream strstr(line); std::getline(strstr, token, '\t'); std::stringstream sstok(token); sstok >> std::hex >> eventType; if( sstok.fail()==true ) { throw exception::event_conversion_error("Failed to parse event type from eventcode file."); } std::getline(strstr, eventDesc); if( strstr.fail()==true ) { throw exception::event_conversion_error("Failed to parse event description from eventcode file."); } // For events from file, do not load events from the // user-defined section, just the standardized events. if (eventType > 255) { // store the parsed event and description in main table setEventDesc( eventType, eventDesc ); } } } } //=================================================================================================== //=================================================================================================== void EventDescriptor::clear( ) { m_desc.clear(); m_userdesc.clear(); } //=================================================================================================== //=================================================================================================== void EventDescriptor::fromStream( std::istream &stream ) { // First call the TagField deserializer to load a tag-length-value instance. gdf::TagField tf(0); tf.fromStream(stream); // Populate this object according to contents of the T-L-V this->clear(); this->fromTagField(tf); } //=================================================================================================== //=================================================================================================== void EventDescriptor::fromTagField( TagField &tf ) { // Format the m_value info into the other data structures size_t tagfieldlength = tf.getLength();//m_value.size(); // taglength is length of the string array // size_t taglength = tagfieldlength - 4; //1 char for tag, 3 chars for uint24 length. // pos is position where next string begins size_t pos = 4; // first string begins after T-L-V header std::string desc; std::vector value = tf.getValue(); // the byte array from the tag field for( uint16 eventtyp = 0; eventtyp <= 255 && pos < tagfieldlength; eventtyp++ ) { desc = ""; int i =0; while( value[pos+i] != 0 && (pos+i < tagfieldlength)) { desc.push_back(value[pos+i]); i++; } size_t desclength = desc.length(); if( desc.length() > 0 ) { this->setEventDesc(eventtyp, desc); } pos += 1 + desclength; } this->copyEventDescToUserDesc(); } //=================================================================================================== //=================================================================================================== gdf::TagField EventDescriptor::toTagField( ) { gdf::TagField tagfield(1); // init with Tag==1 which is reserved in GDF 220 for Event Descriptions std::vector buf; // total memory required is // 1 (tag) + 3 (length) + totalStringLen (stored strings) + // (highestStringIndex+1)(zero terminator for each string incl empty) size_t highestStringIndex = 0; int totalStringLen = 0; for( size_t k=1; k<256; k++ ) { if( this->m_desc.count(k) == 1 ) { int len = m_desc[k].length(); if( len > 0 ) { highestStringIndex = k; totalStringLen += len; } } } // GDF 220 Table 10: "last entry is identified by an additional empty // string". Therefore increase highestStringIndex by 1. highestStringIndex ++ ; if( totalStringLen > 0 ) { int count = 1 + 3 + highestStringIndex + 1 + totalStringLen; buf.resize(count,'x'); buf[0] = 1; // tag == 1 for serialized annotations. uint32 len = count - 4; // len needs to be stored as a U24 buf[1] = len & 0x000000ff; buf[2] = (len >> 8) & 0x000000ff; buf[3] = (len >> 16) & 0x000000ff; size_t pos = 4; for( size_t k=0; k<=highestStringIndex; k++ ) { if( this->m_desc.count(k) == 1 ) { size_t len = m_desc[k].length(); for( size_t i = 0; i < len ; i++ ) { buf[pos] = m_desc[k][i]; pos++; } } buf[pos] = 0; pos++; } } else { buf.resize(0,0); } tagfield.setValue( buf ); return tagfield; } } libgdf-release-0.1.3/libgdf/src/EventHeader.cpp000066400000000000000000000204751223711576300213130ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010, 2013 Martin Billinger, Christoph Eibel, Owen Kelly #include "GDF/EventHeader.h" #include "GDF/Exceptions.h" #include #include #include #include #include namespace gdf { EventHeader::EventHeader( ) : m_mode1(), m_mode3() { m_mode = 1; m_efs = -1; } EventHeader::~EventHeader( ) { } void EventHeader::toStream( std::ostream &stream ) { stream.write( reinterpret_cast(&m_mode), 1 ); // convert number of events to 24bit little endian representation uint32 numev = getNumEvents( ); uint8 tmp[3]; tmp[0] = numev % 256; tmp[1] = (numev / 256) % 256; tmp[2] = (numev / 65536) % 256; stream.write( reinterpret_cast(tmp), 3 ); writeLittleEndian( stream, getSamplingRate( ) ); if( getMode() == 1 ) { Mode1Event e; // write event positions for( size_t i=0; i(&mode), sizeof(mode) ); setMode( mode ); uint8 tmp[3]; stream.read( reinterpret_cast(tmp), 3 ); uint32 nev = tmp[0] + tmp[1]*256 + tmp[2]*65536; float32 efs; readLittleEndian( stream, efs ); setSamplingRate( efs ); std::vector positions; std::vector types; positions.resize( nev ); types.resize( nev ); for( size_t i=0; i channels; std::vector durations; channels.resize( nev ); durations.resize( nev ); for( size_t i=0; i( getMode() ) ); } void EventHeader::setMode( uint8 mode ) { if( m_mode1.size() > 0 || m_mode3.size() > 0 ) throw exception::illegal_eventmode_change( "EventHeader::setMode called, but header already contains events" ); m_mode = mode; } void EventHeader::setSamplingRate( float32 fs ) { m_efs = fs; } uint32 EventHeader::getNumEvents( ) { switch( m_mode ) { case 1: return m_mode1.size( ); break; case 3: return m_mode3.size( ); break; default: throw exception::invalid_eventmode( boost::lexical_cast( m_mode ) ); } } //------------------------------------------------------------------------- std::vector EventHeader::getMode1Events () const { return m_mode1; } //------------------------------------------------------------------------- std::vector EventHeader::getMode3Events () const { return m_mode3; } //------------------------------------------------------------------------- std::vector EventHeader::getSparseSamples (const size_t chan_idx) { std::vector index_list; unsigned int num_events = this->getNumEvents(); // loop over all mode 3 events for(unsigned int m = 0; m < num_events; m++) { if( (m_mode3[m].channel == chan_idx) && (m_mode3[m].type == 0x7fff) ) { index_list.push_back( m ); } } return index_list; } //------------------------------------------------------------------------- void EventHeader::getEvent( uint32 index, Mode1Event &ev ) { if( m_mode != 1 ) throw exception::wrong_eventmode( "Expecting mode 1" ); ev = m_mode1[index]; } void EventHeader::getEvent( uint32 index, Mode3Event &ev ) { if( m_mode != 3 ) throw exception::wrong_eventmode( "Expecting mode 3" ); ev = m_mode3[index]; } void EventHeader::addEvent( const Mode1Event &ev ) { if( m_mode != 1 ) throw exception::wrong_eventmode( "Expecting mode 1" ); m_mode1.push_back( ev ); } void EventHeader::addEvent( const Mode3Event &ev ) { if( m_mode != 3 ) throw exception::wrong_eventmode( "Expecting mode 3" ); m_mode3.push_back( ev ); } uint32 EventHeader::secToPos( const double sample_time_sec ) { if( m_efs <= 0 ) throw exception::invalid_operation( "Event table m_efs not set or not valid." ); int32 raw_pos = (int32) ceil(sample_time_sec * m_efs); if( raw_pos < 0 ) { throw exception::invalid_operation( "Event time < 0 [sec] not allowed." ); } // GDF 2.20 item 32: "Then the position of all events is saved in // 32-bit integers using a one-based indexing (position of first sample // is 1, not 0)" uint32 pos = 1 + raw_pos; return pos; } double EventHeader::posToSec( const uint32 event_pos ) const { if( m_efs <= 0 ) throw exception::invalid_operation( "Event table m_efs not set or not valid." ); int32 raw_pos = event_pos - 1; // "-1" is for "one-based indexing" see EventHeader::secToPos if( raw_pos < 0 ) throw exception::invalid_operation( "Event time < 0 [sec] not allowed." ); double event_time_sec = raw_pos * 1.0 / m_efs; return event_time_sec; } void EventHeader::sort( ) { std::sort( m_mode1.begin(), m_mode1.end() ); std::sort( m_mode3.begin(), m_mode3.end() ); } void EventHeader::clear( ) { m_mode1.clear( ); m_mode3.clear( ); } } libgdf-release-0.1.3/libgdf/src/GDFHeaderAccess.cpp000066400000000000000000000530711223711576300217520ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010, 2013 Martin Billinger, Owen Kelly #include "GDF/GDFHeaderAccess.h" #include "GDF/tools.h" #include "GDF/Exceptions.h" #include #include #include #include //#include const double epsilon_d = 1e-15; const double epsilon_f = 1e-15; const double epsilon_i = 1; namespace gdf { GDFHeaderAccess::GDFHeaderAccess( ) { enableAutoRecordDuration( ); setLock( false ); } //=================================================================================================== //=================================================================================================== GDFHeaderAccess::~GDFHeaderAccess( ) { //std::cout << "~GDFHeaderAccess( )" << std::endl; } //=================================================================================================== //=================================================================================================== void GDFHeaderAccess::clear( ) { assert( !m_lock ); m_mainhdr.setDefaultValues( ); m_sighdr.clear( ); m_events.clear( ); m_taghdr.clear(); enableAutoRecordDuration( ); } //=================================================================================================== //=================================================================================================== void GDFHeaderAccess::sanitize( ) { using boost::lexical_cast; std::list< std::string > warnings, errors; // ------------ Check number of signals ------------------ if( m_sighdr.size() == 0 ) warnings.push_back( "GDF will contain no signals." ); m_mainhdr.set_num_signals( m_sighdr.size() ); // ------------ Check signal indices ------------------ std::map::iterator it = m_sighdr.begin( ); std::string tmp; for( size_t i=0; it != m_sighdr.end(); it++, i++ ) while( it->first != i ) tmp = tmp + lexical_cast(i++)+','; if( tmp.length() > 0 ) { tmp = tmp.substr(0,tmp.length()-1); errors.push_back( "Signal indices not contiguous (Missing signals number "+tmp+")." ); } // ------------ Gather Sampling rates ------------------ std::vector fs; for( it=m_sighdr.begin( ); it!=m_sighdr.end(); it++ ) { uint32 rate = it->second.get_samplerate( ); fs.push_back( rate ); } uint32 ddur[2]; if( fs.size() == 0 ) { // ------------ No Signals: set record duration to 0 ------------------ ddur[0] = 0; ddur[1] = 1; } else if( drd_den == 0 ) { // ------------ Automatically Set datarecord duration ------------------ ddur[0] = 1; ddur[1] =gcd( fs ); if( ddur[1] == 0 ) // invalid sampling rates, set record duration to 0 { ddur[0] = 0; ddur[1] = 1; } } else { // ------------ Manually Set datarecord duration ------------------ if( (gcd(fs) * drd_num) % drd_den != 0 ) errors.push_back( "(Manually set) record duration does not fit sample rates." ); ddur[0] = drd_num; ddur[1] = drd_den; } m_mainhdr.set_datarecord_duration( ddur, 2 ); // ------------ Signal specific information ------------------ for( it=m_sighdr.begin( ); it!=m_sighdr.end(); it++ ) { // ------------ Check data type ------------------ if( it->second.get_datatype() == INVALID_TYPE ) errors.push_back( "Signal "+lexical_cast(it->first)+" has no valid data type." ); // ------------ Check sampling rate ------------------ // Resetting samples_per_record is necessary in case sanitize had adjusted // the record duration it->second.set_samples_per_record( it->second.get_samplerate() * ddur[0] / ddur[1] ); // Zero samples_per_record is permitted for sparse sampling, // however it requires that the associated data type fits // within sizeof(gdf::Mode3Event::duration) == 4 bytes. if( it->second.get_samples_per_record() == 0 && gdf::datatype_size(it->second.get_datatype()) > 4 ) errors.push_back( "Signal "+lexical_cast(it->first)+" has sample rate set to 0 and datatype not for sparse sampling." ); // ------------ Check ranges ------------------ if( it->second.get_digmin() > it->second.get_digmax() ) errors.push_back( "Signal "+lexical_cast(it->first)+" has digmin > digmax." ); if( it->second.get_digmin() == it->second.get_digmax() ) errors.push_back( "Signal "+lexical_cast(it->first)+" has digmin = digmax." ); if( it->second.get_physmin() == it->second.get_physmax() ) errors.push_back( "Signal "+lexical_cast(it->first)+" has physmin = physmax." ); } m_mainhdr.set_header_length( 1 + m_sighdr.size() + m_taghdr.getLength() ); if( m_events.getMode() != 1 && m_events.getMode() != 3 ) errors.push_back( "Event Mode "+lexical_cast(m_events.getMode())+" is not valid."); if( m_events.getSamplingRate() < 0 ) { if( fs.size() > 0) m_events.setSamplingRate( boost::numeric_cast( max(fs) ) ); else errors.push_back( "Could not determine event sampling rate." ); } if( warnings.size() > 0 || errors.size() > 0 ) throw exception::header_issues( warnings, errors ); } //=================================================================================================== //=================================================================================================== void GDFHeaderAccess::setRecordDuration( uint32 num, uint32 den ) { uint32 ddur[2]; drd_num = num; drd_den = den; ddur[0] = num; ddur[1] = den; m_mainhdr.set_datarecord_duration( ddur, 2 ); } //=================================================================================================== //=================================================================================================== void GDFHeaderAccess::enableAutoRecordDuration( ) { drd_num = 0; drd_den = 0; } //=================================================================================================== //=================================================================================================== const MainHeader &GDFHeaderAccess::getMainHeader_readonly( ) const { return m_mainhdr; } //=================================================================================================== //=================================================================================================== MainHeader &GDFHeaderAccess::getMainHeader( ) { assert( !m_lock ); return m_mainhdr; } //=================================================================================================== //=================================================================================================== const SignalHeader &GDFHeaderAccess::getSignalHeader_readonly( size_t idx ) const { std::map::const_iterator it = m_sighdr.find( idx ); if( it == m_sighdr.end() ) throw exception::signal_exists_not( boost::lexical_cast( idx ) ); return it->second; } //=================================================================================================== //=================================================================================================== SignalHeader &GDFHeaderAccess::getSignalHeader( size_t idx ) { //throw exception::signal_exists_not( boost::lexical_cast( idx ) ); assert( !m_lock ); std::map::iterator it = m_sighdr.find( idx ); if( it == m_sighdr.end() ) //return m_sighdr.begin()->second; throw exception::signal_exists_not( boost::lexical_cast( idx ) ); return it->second; } //=================================================================================================== //=================================================================================================== bool GDFHeaderAccess::createSignal( size_t index, bool throwexc ) { assert( !m_lock ); std::map::iterator it = m_sighdr.find( index ); if( it != m_sighdr.end() ) { if( throwexc ) throw exception::signal_exists( boost::lexical_cast( index ) ); else return false; } m_sighdr[index]; return true; } //=================================================================================================== //=================================================================================================== std::vector GDFHeaderAccess::getSignalIndices( ) const { std::vector vec; vec.resize( m_sighdr.size() ); std::map::const_iterator it = m_sighdr.begin( ); for( size_t i=0 ; it!=m_sighdr.end(); it++, i++ ) { vec[i] = it->first; } return vec; } //=================================================================================================== //=================================================================================================== size_t GDFHeaderAccess::getFirstFreeSignalIndex( ) { size_t index = 0; std::map::const_iterator it = m_sighdr.begin( ); for( ; it!=m_sighdr.end(); it++ ) { if( it->first != index ) return index; index++; } return index; } //=================================================================================================== //=================================================================================================== size_t GDFHeaderAccess::getNumSignals( ) const { return m_sighdr.size( ); } //=================================================================================================== //=================================================================================================== void GDFHeaderAccess::swapSignals( size_t a, size_t b ) { assert( !m_lock ); std::map::iterator ita = m_sighdr.find( a ); std::map::iterator itb = m_sighdr.find( b ); if( ita == m_sighdr.end() ) throw exception::signal_exists_not( boost::lexical_cast( a ) ); if( itb == m_sighdr.end() ) throw exception::signal_exists_not( boost::lexical_cast( b ) ); std::swap( ita->second, itb->second ); } //=================================================================================================== //=================================================================================================== void GDFHeaderAccess::relocateSignal( size_t src, size_t dst ) { assert( !m_lock ); std::map::iterator ita = m_sighdr.find( src ); std::map::iterator itb = m_sighdr.find( dst ); if( ita == m_sighdr.end() ) throw exception::signal_exists_not( boost::lexical_cast( src ) ); if( itb != m_sighdr.end() ) throw exception::signal_exists( boost::lexical_cast( dst ) ); m_sighdr[dst] = ita->second; m_sighdr.erase( ita ); } //=================================================================================================== //=================================================================================================== EventHeader &GDFHeaderAccess::getEventHeader( ) { return m_events; } //=================================================================================================== //=================================================================================================== const TagHeader &GDFHeaderAccess::getTagHeader_readonly( ) const { return m_taghdr; } TagHeader &GDFHeaderAccess::getTagHeader( ) { return m_taghdr; } //=================================================================================================== //=================================================================================================== std::ostream& operator<< (std::ostream& out, const GDFHeaderAccess& hdr) { const MainHeader *mh = &hdr.m_mainhdr; mh->version_id.tostream( out ); mh->patient_id.tostream( out ); mh->reserved_1.tostream( out ); mh->patient_drugs.tostream( out ); mh->patient_weight.tostream( out ); mh->patient_height.tostream( out ); mh->patient_flags.tostream( out ); mh->recording_id.tostream( out ); mh->recording_location.tostream( out ); mh->recording_start.tostream( out ); mh->patient_birthday.tostream( out ); mh->header_length.tostream( out ); mh->patient_ICD.tostream( out ); mh->equipment_provider_classification.tostream( out ); mh->reserved_2.tostream( out ); mh->patient_headsize.tostream( out ); mh->pos_reference.tostream( out ); mh->pos_ground.tostream( out ); mh->num_datarecords.tostream( out ); mh->datarecord_duration.tostream( out ); mh->num_signals.tostream( out ); mh->reserved_3.tostream( out ); assert( out.tellp() == std::streampos(256) ); size_t ns = mh->get_num_signals( ); for( uint16 i=0; iget_header_length() - (1+ns); assert( out.tellp() == std::streampos(256+256*ns+256*header3LenBlocks)); return out; } //=================================================================================================== //=================================================================================================== std::istream& operator>> (std::istream& in, GDFHeaderAccess& hdr) { hdr.clear( ); MainHeader *mh = &hdr.m_mainhdr; mh->version_id.fromstream( in ); int gdf_version_int = mh->getGdfVersionInt(); if (gdf_version_int < 210 || gdf_version_int > 220) throw exception::incompatible_gdf_version (mh->get_version_id ()); mh->patient_id.fromstream( in ); mh->reserved_1.fromstream( in ); mh->patient_drugs.fromstream( in ); mh->patient_weight.fromstream( in ); mh->patient_height.fromstream( in ); mh->patient_flags.fromstream( in ); mh->recording_id.fromstream( in ); mh->recording_location.fromstream( in ); mh->recording_start.fromstream( in ); mh->patient_birthday.fromstream( in ); mh->header_length.fromstream( in ); mh->patient_ICD.fromstream( in ); mh->equipment_provider_classification.fromstream( in ); mh->reserved_2.fromstream( in ); mh->patient_headsize.fromstream( in ); mh->pos_reference.fromstream( in ); mh->pos_ground.fromstream( in ); mh->num_datarecords.fromstream( in ); mh->datarecord_duration.fromstream( in ); mh->num_signals.fromstream( in ); mh->reserved_3.fromstream( in ); assert( in.tellg() == std::streampos(256) ); size_t ns = mh->get_num_signals( ); for( uint16 i=0; iget_header_length() - (1+ns); if( header3LenBlocks>0 ) { TagHeader & taghdr = hdr.getTagHeader(); taghdr.fromStream( in, hdr); std::map::iterator it = taghdr.m_tags.begin(); gdf::EventDescriptor evd; for( ; it != taghdr.m_tags.end(); ++it) { // copy each tag to the stream TagField tagfield = (*it).second; int tagnum = tagfield.getTagNumber(); switch( tagnum ) { case 0: break; case 1: evd.fromTagField(tagfield); taghdr.setEventDescriptor(evd); break; default: throw exception::feature_not_implemented("Only tag==1 is supported in this build"); break; } } taghdr.setLength(); } assert( in.tellg() == std::streampos(256+256*ns+256*header3LenBlocks)); return in; } //=================================================================================================== //=================================================================================================== size_t GDFHeaderAccess::getNumberOfSamplesInSignal( size_t signal_index ) const { std::map::const_iterator it = m_sighdr.find( signal_index ); if( it == m_sighdr.end() ) return 0; return boost::numeric_cast(m_mainhdr.get_num_datarecords()) * boost::numeric_cast(it->second.get_samples_per_record()); } } libgdf-release-0.1.3/libgdf/src/MainHeader.cpp000066400000000000000000000117521223711576300211140ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010, 2013 Martin Billinger, Owen Kelly #include "GDF/MainHeader.h" #include namespace gdf { MainHeader::MainHeader( ) { setDefaultValues( ); } //=================================================================================================== //=================================================================================================== void MainHeader::setDefaultValues( ) { set_version_id( "GDF 2.10" ); memset( patient_id.item, ' ', patient_id.len ); set_patient_id( "X X X" ); memset( reserved_1.item, ' ', reserved_1.len ); set_patient_drugs( 0 ); set_patient_weight( 0 ); set_patient_height( 0 ); set_patient_flags( 0 ); memset( recording_id.item, 0, recording_id.len ); recording_location[0] = 0; recording_location[1] = 0; recording_location[2] = 0; recording_location[3] = 0; set_recording_start( 0 ); set_patient_birthday( 0 ); set_header_length( 0 ); memset( patient_ICD.item, ' ', patient_ICD.len ); set_equipment_provider_classification( 0 ); memset( reserved_2.item, 0, reserved_2.len ); patient_headsize[0] = 0; patient_headsize[1] = 0; patient_headsize[2] = 0; pos_reference[0] = 0; pos_reference[1] = 0; pos_reference[2] = 0; pos_ground[0] = 0; pos_ground[1] = 0; pos_ground[2] = 0; set_num_datarecords( -1 ); datarecord_duration[0] = 0; datarecord_duration[1] = 1; set_num_signals( 0 ); memset( reserved_3.item, 0, reserved_3.len ); } //=================================================================================================== //=================================================================================================== void MainHeader::copyFrom( const MainHeader &other ) { set_version_id( other.get_version_id() ); memcpy( patient_id.item, other.patient_id.item, patient_id.len ); memset( reserved_1.item, ' ', reserved_1.len ); set_patient_drugs( other.get_patient_drugs() ); set_patient_weight( other.get_patient_weight() ); set_patient_height( other.get_patient_height() ); set_patient_flags( other.get_patient_flags() ); memcpy( recording_id.item, other.recording_id.item, recording_id.len ); recording_location[0] = other.recording_location[0]; recording_location[1] = other.recording_location[1]; recording_location[2] = other.recording_location[2]; recording_location[3] = other.recording_location[3]; set_recording_start( other.get_recording_start() ); set_patient_birthday( other.get_patient_birthday() ); set_header_length( other.get_header_length() ); memcpy( patient_ICD.item, other.patient_ICD.item, patient_ICD.len ); set_equipment_provider_classification( other.get_equipment_provider_classification() ); memset( reserved_2.item, 0, reserved_2.len ); patient_headsize[0] = other.patient_headsize[0]; patient_headsize[1] = other.patient_headsize[1]; patient_headsize[2] = other.patient_headsize[2]; pos_reference[0] = other.pos_reference[0]; pos_reference[1] = other.pos_reference[1]; pos_reference[2] = other.pos_reference[2]; pos_ground[0] = other.pos_ground[0]; pos_ground[1] = other.pos_ground[1]; pos_ground[2] = other.pos_ground[2]; set_num_datarecords( other.get_num_datarecords() ); datarecord_duration[0] = other.datarecord_duration[0]; datarecord_duration[1] = other.datarecord_duration[0]; set_num_signals( other.get_num_signals() ); memset( reserved_3.item, 0, reserved_3.len ); } //=================================================================================================== //=================================================================================================== int MainHeader::getGdfVersionInt( void ) { std::string ver_id = this->get_version_id(); int gdf_version_int = 0; gdf_version_int += 1*int(ver_id[7]-'0'); gdf_version_int += 10*int(ver_id[6]-'0'); gdf_version_int += 100*int(ver_id[4]-'0'); return gdf_version_int; } } libgdf-release-0.1.3/libgdf/src/Modifier.cpp000066400000000000000000000140771223711576300206600ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #include "GDF/Modifier.h" #include "GDF/Record.h" #include "GDF/tools.h" #include #include #include namespace gdf { Modifier::Modifier( ) { m_cache_enabled = true; m_events_changed = false; } //=================================================================================================== //=================================================================================================== Modifier::~Modifier( ) { } //=================================================================================================== //=================================================================================================== void Modifier::open( std::string filename ) { Reader::open( filename ); initCache( ); } //=================================================================================================== //=================================================================================================== void Modifier::close( ) { m_file.close( ); } //=================================================================================================== //=================================================================================================== void Modifier::saveChanges( ) { std::fstream ofile( m_filename.c_str(), std::ios_base::out | std::ios_base::in | std::ios::binary ); size_t R = boost::numeric_cast( m_header.getMainHeader_readonly().get_num_datarecords( ) ); for( size_t i=0; itoStream( ofile ); } ofile.close( ); } //=================================================================================================== //=================================================================================================== void Modifier::initCache( ) { Reader::initCache( ); m_record_changed.resize( boost::numeric_cast( m_header.getMainHeader_readonly().get_num_datarecords() ), false ); } //=================================================================================================== //=================================================================================================== void Modifier::resetCache( ) { for( size_t i=0; igetChannel( channel_idx )->getSamplePhys( sample_idx % spr ); } //=================================================================================================== //=================================================================================================== void Modifier::setSample( uint16 channel_idx, size_t sample_idx, double value ) { size_t record = findRecord( channel_idx, sample_idx ); Record *r = getRecordPtr( record ); size_t spr = m_header.getSignalHeader_readonly( channel_idx ).get_samples_per_record( ); r->getChannel( channel_idx )->setSamplePhys( sample_idx % spr, value ); m_record_changed[record] = true; } //=================================================================================================== //=================================================================================================== EventHeader *Modifier::getEventHeader( ) { if( m_events == NULL ) { if( m_file.is_open() ) { m_events = new EventHeader( ); m_file.seekg( m_event_offset ); readEvents( ); } else throw exception::file_not_open( "when attempting to read events" ); } m_events_changed = true; return m_events; } //=================================================================================================== //=================================================================================================== const EventHeader *Modifier::getEventHeader_readonly( ) { if( m_events == NULL ) { if( m_file.is_open() ) { m_events = new EventHeader( ); m_file.seekg( m_event_offset ); readEvents( ); } else throw exception::file_not_open( "when attempting to read events" ); } return m_events; } } libgdf-release-0.1.3/libgdf/src/Reader.cpp000066400000000000000000000354511223711576300203230ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010, 2013 Martin Billinger, Owen Kelly #include "GDF/Reader.h" #include "GDF/tools.h" #include #include //#include namespace gdf { Reader::Reader( ) { m_record_nocache = NULL; m_cache_enabled = true; m_events = NULL; m_filename = ""; } //=================================================================================================== //=================================================================================================== Reader::~Reader( ) { resetCache( ); if( m_record_nocache ) delete m_record_nocache; if( m_events ) delete m_events; } //=================================================================================================== //=================================================================================================== void Reader::open( std::string filename ) { assert( !m_file.is_open() ); m_file.open( filename.c_str(), std::ios_base::in | std::ios::binary ); if( m_file.fail() ) throw exception::file_exists_not( filename ); m_filename = filename; if( m_record_nocache ) delete m_record_nocache; m_record_nocache = NULL; if( m_events ) delete m_events; m_events = NULL; m_file >> m_header; // determine record length m_record_length = 0; for( size_t i=0; i(fs) ); } m_record_offset = m_header.getMainHeader_readonly().get_header_length( ) * 256; m_event_offset = boost::numeric_cast( m_record_offset + m_header.getMainHeader_readonly().get_num_datarecords() * m_record_length ); initCache( ); } //=================================================================================================== //=================================================================================================== void Reader::close( ) { m_file.close( ); } //=================================================================================================== //=================================================================================================== void Reader::enableCache( bool b ) { m_cache_enabled = b; resetCache( ); } //=================================================================================================== //=================================================================================================== void Reader::initCache( ) { resetCache( ); m_record_cache.clear( ); size_t num_records = boost::numeric_cast( m_header.getMainHeader_readonly().get_num_datarecords() ); m_record_cache.resize( num_records, NULL ); } //=================================================================================================== //=================================================================================================== void Reader::resetCache( ) { for( std::list::iterator it = m_cache_entries.begin(); it != m_cache_entries.end(); it++ ) { delete m_record_cache[*it]; m_record_cache[*it] = NULL; } m_cache_entries.clear( ); if( m_record_nocache ) delete m_record_nocache; m_record_nocache = new Record( &m_header ); } //=================================================================================================== //=================================================================================================== size_t Reader::findRecord( uint16 channel_idx, size_t sample_idx ) { return boost::numeric_cast( floor( ((double)sample_idx) / ((double)m_header.getSignalHeader_readonly( channel_idx ).get_samples_per_record( )) ) ); } //=================================================================================================== //=================================================================================================== void Reader::getSignals( std::vector< std::vector > &buffer, double start_time, double end_time, std::vector signal_indices ) { using boost::numeric_cast; if( signal_indices.size() == 0 ) { signal_indices.resize( m_header.getMainHeader_readonly().get_num_signals() ); for( size_t i=0; i( floor( start_time * record_rate ) ); std::vector start, samples_to_go, readpos, writepos; start.resize( signal_indices.size() ); samples_to_go.resize( signal_indices.size() ); readpos.resize( signal_indices.size() ); writepos.resize( signal_indices.size() ); for( size_t i=0; iget_samplerate( ); start[i] = boost::numeric_cast( floor( start_time * fs ) ); samples_to_go[i] = boost::numeric_cast( m_header.getMainHeader_readonly().get_num_datarecords() * sh->get_samples_per_record() ); if( end_time > 0 ) samples_to_go[i] = std::min( samples_to_go[i], boost::numeric_cast( floor( end_time * fs ) ) ); samples_to_go[i] -= start[i]; buffer[i].resize( boost::numeric_cast( samples_to_go[i] ) ); readpos[i] = start[i] % sh->get_samples_per_record(); } while( sum(samples_to_go) > 0 ) { Record *r = getRecordPtr( record ); for( size_t i=0; i(sh->get_samples_per_record( )) - readpos[i], samples_to_go[i] ); r->getChannel( signal_indices[i] )->deblitSamplesPhys( &buffer[i][writepos[i]], readpos[i], n ); samples_to_go[i] -= n; writepos[i] += n; readpos[i] = 0; } record++; } } //=================================================================================================== //=================================================================================================== void Reader::getSignal( uint16 channel_idx, double *buffer, size_t start, size_t end ) { using boost::numeric_cast; SignalHeader *sh = &m_header.getSignalHeader( channel_idx ); if( end <= start ) end = boost::numeric_cast( sh->get_samples_per_record( ) * m_header.getMainHeader_readonly().get_num_datarecords( ) ); size_t record = boost::numeric_cast( floor( ((double)start)/((double)sh->get_samples_per_record()) ) ); size_t readpos = start % sh->get_samples_per_record(); size_t writepos = 0; size_t samples_to_go = end - start; while( samples_to_go > 0 ) { Record *r = getRecordPtr( record ); size_t n = std::min( (size_t)sh->get_samples_per_record( ) - readpos, samples_to_go ); r->getChannel( channel_idx )->deblitSamplesPhys( &buffer[writepos], readpos, n ); samples_to_go -= n; writepos += n; readpos = 0; record++; } } //=================================================================================================== //=================================================================================================== double Reader::getSample( uint16 channel_idx, size_t sample_idx ) { Record *r = getRecordPtr( findRecord( channel_idx, sample_idx ) ); size_t spr = m_header.getSignalHeader_readonly( channel_idx ).get_samples_per_record( ); return r->getChannel( channel_idx )->getSamplePhys( sample_idx % spr ); } //=================================================================================================== //=================================================================================================== Record *Reader::getRecordPtr( size_t index ) { assert( index < boost::numeric_cast(m_header.getMainHeader_readonly().get_num_datarecords()) ); Record *r = m_record_cache[index]; if( r == NULL ) { size_t pos = m_record_offset + m_record_length*index; m_file.seekg( pos ); if( m_cache_enabled ) { r = new Record( &m_header ); m_file >> *r; m_record_cache[index] = r; m_cache_entries.push_back( index ); } else { m_file >> *m_record_nocache; r = m_record_nocache; } } return r; } //=================================================================================================== //=================================================================================================== void Reader::readRecord( size_t index, Record *rec ) { assert( index < boost::numeric_cast(m_header.getMainHeader_readonly().get_num_datarecords()) ); Record *r = m_record_cache[index]; if( r == NULL ) { size_t pos = m_record_offset + m_record_length*index; m_file.seekg( pos ); if( m_cache_enabled ) { r = new Record( &m_header ); m_file >> *r; m_record_cache[index] = r; m_cache_entries.push_back( index ); } else { m_file >> *rec; // read directly return; } } *rec = *r; // copy from cache } //=================================================================================================== //=================================================================================================== void Reader::precacheRecords( size_t start, size_t end ) { for( size_t i=start; igetSignalHeader_readonly( chan_idx ).raw_to_phys((double)ev.duration); } else if( datatype==16 ) { // float32 from GDF table Table 7 sample_physical_value = this->getSignalHeader_readonly( chan_idx ).raw_to_phys((double)ev.value); } else { // invalid data type while reading sparse sample throw exception::event_conversion_error("Invalid data type for NEQS sample; event not converted to sample."); } sample_time_sec = this->getEventHeader()->posToSec(ev.position); } else { // error: event has type 0x7fff and non-zero sampling, discard the event throw exception::event_conversion_error("NEQS sample event associated to CHN with spr > 0; event not converted to sample."); } } //=================================================================================================== //=================================================================================================== void Reader::readEvents( ) { m_events->fromStream( m_file ); } } libgdf-release-0.1.3/libgdf/src/Record.cpp000066400000000000000000000131321223711576300203270ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #include "GDF/Record.h" #include "GDF/GDFHeaderAccess.h" #include "GDF/SignalHeader.h" #include //#include namespace gdf { Record::Record( const GDFHeaderAccess *hdr ) { size_t M = hdr->getMainHeader_readonly( ).get_num_signals( ); for( size_t i=0; igetSignalHeader_readonly(i) ) ); } } //=================================================================================================== //=================================================================================================== Record::Record( const Record &other ) { size_t M = other.channels.size( ); for( size_t i=0; iclear( ); } } //=================================================================================================== //=================================================================================================== void Record::operator=( const Record &other ) { size_t M = channels.size(); for( size_t i=0; igetTypeID() ) { default: channels[i]->fillPhys( 0.0, channels[i]->getFree() ); break; case FLOAT32: channels[i]->fillPhys( std::numeric_limits::quiet_NaN(), channels[i]->getFree() ); break; case FLOAT64: channels[i]->fillPhys( std::numeric_limits::quiet_NaN(), channels[i]->getFree() ); break; } } } //=================================================================================================== //=================================================================================================== bool Record::isFull( ) const { for( size_t i=0; igetFree( ) > 0 ) return false; } return true; } //=================================================================================================== //=================================================================================================== bool Record::isEmpty( ) const { for( size_t i=0; igetWritten( ) > 0 ) return false; } return true; } //=================================================================================================== //=================================================================================================== Channel *Record::getChannel( const size_t chan_idx ) { return channels[chan_idx]; } //=================================================================================================== //=================================================================================================== std::ostream &operator<<( std::ostream &out, const Record &r ) { size_t M = r.channels.size(); for( size_t i=0; i>( std::istream &in, Record &r ) { size_t M = r.channels.size(); for( size_t i=0; i> *r.channels[i]; return in; } } libgdf-release-0.1.3/libgdf/src/RecordBuffer.cpp000066400000000000000000000270201223711576300214620ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010, 2013 Martin Billinger, Owen Kelly #include "GDF/RecordFullHandler.h" #include "GDF/RecordBuffer.h" #include "GDF/Record.h" #include "GDF/GDFHeaderAccess.h" #include "GDF/tools.h" //#include namespace gdf { RecordBuffer::RecordBuffer( const GDFHeaderAccess *gdfh ) : m_gdfh(gdfh) { m_pool = NULL; } //=================================================================================================== //=================================================================================================== RecordBuffer::~RecordBuffer( ) { clearBuffers( ); if( m_pool ) delete m_pool; } //=================================================================================================== //=================================================================================================== void RecordBuffer::clearBuffers( ) { if( m_pool ) { std::list::iterator it = m_records.begin( ); for( ; it != m_records.end(); it++ ) m_pool->push( *it ); it = m_records_full.begin( ); for( ; it != m_records_full.end(); it++ ) m_pool->push( *it ); } m_records.clear( ); m_records_full.clear( ); m_num_full = 0; } //=================================================================================================== //=================================================================================================== void RecordBuffer::reset( ) { size_t M = m_gdfh->getMainHeader_readonly( ).get_num_signals( ); clearBuffers( ); m_channelhead.resize( M ); for( size_t i=0; i( Record(m_gdfh) ); } //=================================================================================================== //=================================================================================================== void RecordBuffer::handleChannelFull( const size_t channel_idx ) { //std::cout << "Channel Full" << std::endl; Record *r = *m_channelhead[channel_idx]; m_channelhead[channel_idx]++; if( r->isFull() ) handleRecordFull( ); } //=================================================================================================== //=================================================================================================== void RecordBuffer::handleRecordFull( ) { //std::cout << "Record Full" << std::endl; m_records_full.push_back( m_records.front() ); m_records.pop_front( ); m_num_full++; // Sparse channels do not need m_channelhead[i] mechanism, but the mechanism // for non-sparse channels breaks if not all m_channelhead[i] are valid. // Specifically, m_records.pop_front (above) makes stored iterators // that pointed to the pop'd element no longer valid. // This loop forces m_channelhead[i] to be valid for sparse channels. for( size_t i=0; igetSignalHeader_readonly( i ).get_samples_per_record( ); // Change only elements associated to sparse channels, i.e. with spr==0. if( spr == 0 ) { m_channelhead[i] = m_records.begin(); // assign any valid iterator, e.g. list.begin() } } std::list::iterator it = m_recfull_callbacks.begin( ); for( ; it != m_recfull_callbacks.end(); it++ ) (*it)->triggerRecordFull( m_records_full.back() ); } //=================================================================================================== //=================================================================================================== void RecordBuffer::registerRecordFullCallback( RecordFullHandler *h ) { m_recfull_callbacks.push_back( h ); } //=================================================================================================== //=================================================================================================== void RecordBuffer::unregisterRecordFullCallback( RecordFullHandler *h ) { m_recfull_callbacks.remove( h ); } //=================================================================================================== //=================================================================================================== void RecordBuffer::addSamplePhys( const size_t channel_idx, const double value ) { Channel *ch = getValidChannel( channel_idx ); ch->addSamplePhys( value ); if( ch->getFree( ) == 0 ) handleChannelFull( channel_idx ); } //=================================================================================================== //=================================================================================================== void RecordBuffer::blitSamplesPhys( const size_t channel_idx, const double *values, size_t num ) { size_t i = 0; while( igetFree( ) ); ch->blitSamplesPhys( &values[i], n ); if( ch->getFree( ) == 0 ) handleChannelFull( channel_idx ); i += n; } } //=================================================================================================== //=================================================================================================== void RecordBuffer::addRecord( Record *r ) { if( getNumPartialRecords( ) > 0 ) throw exception::invalid_operation( "RecordBuffer::addRecord called, but buffer contains partial records." ); m_records_full.push_back( r ); m_num_full++; std::list::iterator it = m_recfull_callbacks.begin( ); for( ; it != m_recfull_callbacks.end(); it++ ) (*it)->triggerRecordFull( m_records_full.back() ); } //=================================================================================================== //=================================================================================================== Record *RecordBuffer::acquireRecord( ) { return m_pool->pop( ); } //=================================================================================================== //=================================================================================================== std::list< Record* >::iterator RecordBuffer::createNewRecord( ) { Record *r = m_pool->pop( ); r->clear( ); m_records.push_back( r ); std::list< Record* >::iterator it = m_records.end( ); it--; return it; } //=================================================================================================== //=================================================================================================== Record *RecordBuffer::getFirstFullRecord( ) { if( m_num_full > 0 ) return m_records_full.front( ); else return NULL; } //=================================================================================================== //=================================================================================================== void RecordBuffer::removeFirstFullRecord( ) { m_pool->push( m_records_full.front() ); m_records_full.pop_front( ); m_num_full--; } //=================================================================================================== //=================================================================================================== Channel *RecordBuffer::getValidChannel( const size_t channel_idx ) { if( channel_idx >= m_channelhead.size( ) ) throw exception::nonexistent_channel_access( "channel "+boost::lexical_cast(channel_idx) +"does not exist" ); if( m_channelhead[channel_idx] == m_records.end() ) { if( m_records.size() > 0 ) { if( m_records.back()->getChannel(channel_idx)->getFree( ) == 0 ) { // Create a new record in m_records and inform all // channels that are pointing beyond the end m_records. // capture the iter value that flags m_channelhead's that have no free space std::list< Record* >::iterator end_iter = m_records.end(); // get a clean record from m_pool, enlist it on m_records, and return an iterator std::list< Record* >::iterator newrec_iter = createNewRecord( ); // broadcast the new record among all channels that need it for( size_t i=0; i::iterator r = createNewRecord( ); for( size_t i=0; igetChannel( channel_idx ); } //=================================================================================================== //=================================================================================================== size_t RecordBuffer::getNumFreeAlloc( const size_t channel_idx ) { size_t num = 0; getValidChannel( channel_idx ); std::list< Record* >::iterator it = m_channelhead[channel_idx]; while( it != m_records.end() ) { num += (*it)->getChannel( channel_idx )->getFree( ); it ++; } return num; } //=================================================================================================== //=================================================================================================== void RecordBuffer::flood( ) { while( getNumPartialRecords( ) > 0 ) { m_records.front( )->fill( ); handleRecordFull( ); } for( size_t i=0; i. // // Copyright 2010 Martin Billinger #include "GDF/SignalHeader.h" #include #include //#include namespace gdf { SignalHeader::SignalHeader( ) { setDefaultValues( ); } //=================================================================================================== //=================================================================================================== SignalHeader::~SignalHeader( ) { //std::cout << "~SignalHeader( )" << std::endl; } //=================================================================================================== //=================================================================================================== void SignalHeader::setDefaultValues( ) { set_label( " " ); memset( transducer_type.item, 32, transducer_type.len ); set_physical_dimension( " " ); set_physical_dimension_code( 0x0000 ); set_physmin( 0.0 ); set_physmax( 0.0 ); set_digmin( 0.0 ); set_digmax( 0.0 ); memset( reserved_1.item, 0, reserved_1.len ); set_lowpass( std::numeric_limits::quiet_NaN() ); set_highpass( std::numeric_limits::quiet_NaN() ); set_notch( std::numeric_limits::quiet_NaN() ); set_samples_per_record( 0 ); set_datatype( INVALID_TYPE ); sensor_pos[0] = 0; sensor_pos[1] = 0; sensor_pos[2] = 0; set_sensor_info( 0 ); memset( reserved_2.item, 0, reserved_2.len ); samplerate = 0; } //=================================================================================================== //=================================================================================================== double SignalHeader::phys_to_raw( const double phy ) const { double digmin = get_digmin( ); double digmax = get_digmax( ); double physmin = get_physmin( ); double physmax = get_physmax( ); return (phy-physmin)*(digmax-digmin)/(physmax-physmin)+digmin; } //=================================================================================================== //=================================================================================================== double SignalHeader::raw_to_phys( const double raw ) const { double digmin = get_digmin( ); double digmax = get_digmax( ); double physmin = get_physmin( ); double physmax = get_physmax( ); return (raw-digmin)*(physmax-physmin)/(digmax-digmin)+physmin; } //=================================================================================================== //=================================================================================================== void SignalHeader::copyFrom( const SignalHeader &other ) { set_label( other.get_label() ); memcpy( transducer_type.item, other.transducer_type.item, transducer_type.len ); set_physical_dimension( other.get_physical_dimension() ); set_physical_dimension_code( other.get_physical_dimension_code() ); set_physmin( other.get_physmin() ); set_physmax( other.get_physmax() ); set_digmin( other.get_digmin() ); set_digmax( other.get_digmax() ); set_lowpass( other.get_lowpass() ); set_highpass( other.get_highpass() ); set_notch( other.get_notch() ); set_samples_per_record( other.get_samples_per_record() ); set_datatype( other.get_datatype() ); sensor_pos[0] = other.sensor_pos[0]; sensor_pos[1] = other.sensor_pos[1]; sensor_pos[2] = other.sensor_pos[2]; set_sensor_info( other.get_sensor_info() ); set_samplerate( other.get_samplerate() ); } } libgdf-release-0.1.3/libgdf/src/TagHeader.cpp000066400000000000000000000222121223711576300207340ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2013 Owen Kelly #include "GDF/Exceptions.h" #include "GDF/TagHeader.h" #include "GDF/EventDescriptor.h" #include "GDF/GDFHeaderAccess.h" //#include //#include #include #include //#include namespace gdf { //=================================================================================================== //=================================================================================================== TagHeader::TagHeader( ) : m_header3ByteSizeUnpadded(0), m_hdr3SizeBlocks(0) { } //=================================================================================================== //=================================================================================================== TagHeader::~TagHeader( ) { } //=================================================================================================== //=================================================================================================== void TagHeader::fromStream( std::istream &stream , gdf::GDFHeaderAccess& hdr) { unsigned char tag = 1; size_t header3unpaddedsize = 0; while( tag != 0 ) { //std::streampos pos = stream.tellg(); gdf::TagField tagfield(0); tagfield.fromStream(stream); tag = tagfield.getTagNumber(); switch( tag ) { case 0: // Zero tag value indicates end of Header 3. See first row of Table 10 in GDF standard. header3unpaddedsize += 1; break; case 1: header3unpaddedsize += tagfield.getLength(); this->addTagField( tagfield ); break; default: throw exception::feature_not_implemented("Only tag==1 is supported in this build"); break; } } // consume the padding bytes that make Header 3 a multiple of 256 bytes size_t ns = hdr.getMainHeader_readonly().get_num_signals( ); size_t nhdrblocks = hdr.getMainHeader_readonly().get_header_length( ); int padbytecount = (nhdrblocks - (ns+1))*256 - header3unpaddedsize; if( padbytecount < 0 ) { throw exception::serialization_error("problem reading GDF Header 3"); } stream.seekg(std::streamoff(padbytecount), std::ios_base::cur); } //=================================================================================================== //=================================================================================================== /// Serializer void TagHeader::toStream( std::ostream &stream ) const { if( m_hdr3SizeBlocks > 0) { int bytesRemaining = 256*m_hdr3SizeBlocks; //std::map>::const_iterator it = m_tags.begin(); std::map::const_iterator it = m_tags.begin(); for( ; it != m_tags.end(); ++it) { // copy each tag to the stream const TagField atagf = (*it).second; atagf.toStream(stream); bytesRemaining -= atagf.getLength(); } // Send a single zero after the tags to indicate the end of the tag list. // See GDF 2.20 Table 10 first row regarding Tag == 0. unsigned char terminatingTag = 0; stream << terminatingTag; bytesRemaining --; if( bytesRemaining < 0 ) { throw exception::serialization_error("problem writing GDF Header 3"); } // Fill out the stream so that header 3 is a multiple of 256. unsigned char padByte = 0; while( bytesRemaining > 0 ) { stream << padByte; bytesRemaining --; } } } //=================================================================================================== //=================================================================================================== void TagHeader::clear() { m_tags.clear(); m_header3ByteSizeUnpadded = 0; m_hdr3SizeBlocks = 0; m_eventdesc.clear(); } //=================================================================================================== //=================================================================================================== void TagHeader::finalize( ) { /// Copy each specialized Tag field to its corresponsing TagField instance. // According to GDF 220 Table 10: // Tag = 0, there is no instance. // Tag == 1, user defined if( this->getEventDescriptor().getNumUserDesc() > 0 ) this->m_tags[1] = this->getEventDescriptor().toTagField(); // Tag == 2..8 are defined in GDF but not yet implemented here // update m_hdr3SizeBlocks based on changes to supporting arrays this->setLength(); } //=================================================================================================== //=================================================================================================== void TagHeader::setLength( ) { size_t bytecount = 0; std::map::iterator it = m_tags.begin(); for( ; it != m_tags.end(); ++it) { bytecount += (*it).second.getLength(); } if( bytecount > 0 ) { bytecount += 1; // Allow one character for the terminating zero of the T-L-V table. } // GDF calculates header sizes in terms of 256-byte blocks. size_t blockcount = (bytecount + 255)/256; this->m_header3ByteSizeUnpadded = bytecount; this->m_hdr3SizeBlocks = blockcount; } //=================================================================================================== //=================================================================================================== void TagHeader::addTagField( TagField & tagfield ) { m_tags[tagfield.getTagNumber()] = tagfield; } //=================================================================================================== //=================================================================================================== void TagHeader::copyFrom( const TagHeader &other ) { (*this) = other; } //=================================================================================================== //=================================================================================================== TagField::TagField( uint8 tag=0 ) : m_tag(tag) { ; } //=================================================================================================== //=================================================================================================== TagField::~TagField( ) { ; } //=================================================================================================== //=================================================================================================== /// Serializer void TagField::toStream( std::ostream &stream ) const { std::copy(m_value.begin(),m_value.end(),std::ostream_iterator(stream)); } //=================================================================================================== //=================================================================================================== /// Deserializer void TagField::fromStream( std::istream &stream ) { m_value.clear(); stream.read( reinterpret_cast(&m_tag), 1 ); if( m_tag == 0 ) { // Zero tag value indicates end of Header 3. See first row of Table 10 in GDF standard. return; } uint8 tmp[3]; stream.read( reinterpret_cast(tmp), 3 ); uint32 taglength = tmp[0] + tmp[1]*256 + tmp[2]*65536; // length of the value-only field m_value.resize( taglength + 4 ); // +4 to include the leading header // copy header elements m_value[0] = m_tag; m_value[1] = tmp[0]; m_value[2] = tmp[1]; m_value[3] = tmp[2]; // read the value field from stream for( size_t i=0; i(&m_value[i+4]), 1 ); } }libgdf-release-0.1.3/libgdf/src/Types.cpp000066400000000000000000000027531223711576300202240ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #include "GDF/Types.h" #include namespace gdf { size_t datatype_size( uint32 t ) { switch( t ) { case INT8: return sizeof( int8 ); break; case INT16: return sizeof( int16 ); break; case INT32: return sizeof( int32 ); break; case INT64: return sizeof( int64 ); break; case UINT8: return sizeof( uint8 ); break; case UINT16: return sizeof( uint16 ); break; case UINT32: return sizeof( uint32 ); break; case UINT64: return sizeof( uint64 ); break; case FLOAT32: return sizeof( float32 ); break; case FLOAT64: return sizeof( float64 ); break; default: throw exception::invalid_type_id( boost::lexical_cast(t) ); } } } libgdf-release-0.1.3/libgdf/src/Writer.cpp000066400000000000000000000451231223711576300203720ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010, 2013 Martin Billinger, Owen Kelly #include "GDF/Writer.h" #include "GDF/Exceptions.h" #include "GDF/Record.h" #include "GDF/tools.h" #include namespace gdf { Writer::Writer( ) : m_recbuf( &m_header ), m_eventbuffer( NULL ) { m_eventbuffermemory = writer_ev_file; setMaxFullRecords( 0 ); m_recbuf.registerRecordFullCallback( this ); } //=================================================================================================== //=================================================================================================== Writer::~Writer( ) { //std::cout << "~Writer( )" << std::endl; if( m_file.is_open( ) ) close( ); } //=================================================================================================== //=================================================================================================== void Writer::open(const int flags ) { if( m_file.is_open() ) throw exception::file_open( "" ); assert( !m_file.is_open() ); m_header.setLock( true ); bool warn = false; std::list< std::string > wmsg; try { m_header.sanitize( ); } catch( exception::header_issues &e ) { wmsg = e.warnings; if( e.errors.size() != 0 ) throw e; if( e.warnings.size() != 0 ) warn = true; } if( !(flags & writer_overwrite) ) { m_file.open( m_filename.c_str(), std::ios_base::in ); if( !m_file.fail() ) { m_header.setLock( false ); m_file.close( ); throw exception::file_exists( m_filename ); } } m_file.clear( ); m_file.open( m_filename.c_str(), std::ios_base::out | std::ios_base::binary | std::ios_base::trunc ); if( m_file.fail() ) { throw std::invalid_argument( "Error opening file for writing." ); } m_eventbuffermemory = flags & writer_ev_memory; if( m_eventbuffermemory ) { m_eventbuffer.rdbuf( m_evbuf_memory.rdbuf() ); m_evbuf_memory.clear( ); } else { m_evbuf_file.open( (m_filename+".events").c_str(), std::ios_base::out | std::ios_base::binary | std::ios_base::trunc ); m_eventbuffer.rdbuf( m_evbuf_file.rdbuf() ); } m_recbuf.reset( ); m_num_datarecords = 0; m_file << m_header; m_file.flush( ); if( warn ) throw exception::header_issues( wmsg ); } //=================================================================================================== //=================================================================================================== void Writer::open( const std::string filename, const int flags ) { setFilename( filename ); open( flags ); } //=================================================================================================== //=================================================================================================== void Writer::close( ) { if( !m_file.is_open() ) return; //throw exception::file_not_open( "" ); if( !m_eventbuffermemory ) m_evbuf_file.close( ); m_recbuf.flood( ); flush( ); if( !m_eventbuffermemory ) { m_evbuf_file.open( (m_filename+".events").c_str(), std::ios_base::in | std::ios_base::binary ); m_eventbuffer.rdbuf( m_evbuf_file.rdbuf() ); } writeEvents( ); if( !m_eventbuffermemory ) { m_evbuf_file.close( ); remove( (m_filename+".events").c_str() ); } m_header.setLock( false ); getMainHeader().set_num_datarecords( m_num_datarecords ); m_file.seekp( getMainHeader_readonly().num_datarecords.pos ); getMainHeader().num_datarecords.tostream( m_file ); m_file.close( ); } //=================================================================================================== //=================================================================================================== bool Writer::isOpen( ) { return m_file.is_open( ); } //=================================================================================================== //=================================================================================================== void Writer::setFilename( std::string filename ) { m_filename = filename; } //=================================================================================================== //=================================================================================================== void Writer::setMaxFullRecords( size_t num ) { max_full_records = num; } //=================================================================================================== //=================================================================================================== bool Writer::createSignal( size_t index, bool throwexc ) { return m_header.createSignal( index, throwexc ); } //=================================================================================================== //=================================================================================================== void Writer::swapSignals( size_t a, size_t b ) { m_header.swapSignals( a, b ); } //=================================================================================================== //=================================================================================================== void Writer::relocateSignal( size_t src, size_t dst ) { m_header.swapSignals( src, dst ); } //=================================================================================================== //=================================================================================================== size_t Writer::getFirstFreeSignalIndex( ) { return m_header.getFirstFreeSignalIndex( ); } //=================================================================================================== //=================================================================================================== void Writer::blitFromSerialBufferPhys( const double *buf, const std::vector &samples_per_channel ) { if( !m_file.is_open() ) throw exception::file_not_open( "" ); size_t M = samples_per_channel.size( ); std::vector samples_remaining = samples_per_channel; size_t total_samples_remaining = sum( samples_remaining ); std::vector readpos; readpos.resize( M ); readpos[0] = 0; for( size_t i=1; i 0 ) { for( size_t i=0; i &values ) { if( !m_file.is_open() ) throw exception::file_not_open( "" ); m_recbuf.blitSamplesPhys( channel_idx, &values[0], values.size() ); } //=================================================================================================== //=================================================================================================== void Writer::addRecord( Record *r ) { m_recbuf.addRecord( r ); } //=================================================================================================== //=================================================================================================== Record *Writer::acquireRecord( ) { return m_recbuf.acquireRecord( ); } //=================================================================================================== //=================================================================================================== void Writer::writeRecord( ) { if( !m_file.is_open() ) throw exception::file_not_open( "" ); Record *r = m_recbuf.getFirstFullRecord( ); if( r != NULL ) { m_file << *r; m_recbuf.removeFirstFullRecord( ); m_num_datarecords++; } } //=================================================================================================== //=================================================================================================== void Writer::writeRecordDirect( Record *r ) { m_file << *r; m_num_datarecords++; } //=================================================================================================== //=================================================================================================== void Writer::flush( ) { //std::cout << "Writer::flush( )" << std::endl; if( !m_file.is_open() ) throw exception::file_not_open( "" ); size_t R = m_recbuf.getNumFullRecords(); for( size_t r=0; r(&ev), sizeof(ev) ); } //=================================================================================================== //=================================================================================================== void Writer::addEvent( uint32 position, uint16 type ) { if( !m_file.is_open() ) throw exception::file_not_open( "" ); Mode1Event ev; ev.position = position; ev.type = type; addEvent( ev ); } //=================================================================================================== //=================================================================================================== void Writer::addEvent( const Mode3Event &ev ) { if( !m_file.is_open() ) throw exception::file_not_open( "" ); if( m_header.getEventHeader( ).getMode() != 3 ) throw exception::wrong_eventmode( "Expected mode 3" ); m_eventbuffer.write( reinterpret_cast(&ev), sizeof(ev) ); } //=================================================================================================== //=================================================================================================== void Writer::addEvent( uint32 position, uint16 type, uint16 channel, uint32 duration ) { Mode3Event ev; ev.position = position; ev.type = type; ev.channel = channel; ev.duration = duration; addEvent( ev ); } //=================================================================================================== //=================================================================================================== void Writer::sampleToEvent( const double sample_time_sec, const double sample_physical_value, const uint16 channel, Mode3Event& ev ) { // channel is 1-based index as defined in GDF spec // chan_idx is 0-based index in signal header gdf::uint16 chan_idx = channel - 1; gdf::uint32 datatype = this->getSignalHeader_readonly( chan_idx ).get_datatype( ); // format the event ev.position = this->getHeaderAccess( ).getEventHeader( ).secToPos(sample_time_sec); ev.type = 0x7fff; // specific GDF flag for sparse sampling ev.channel = channel; // event uses 1-based channel indexing double raw_value = this->getSignalHeader_readonly( chan_idx ).phys_to_raw(sample_physical_value); if( datatype <= 6 ) { // small integer gdftype's as defined in GDF spec ev.duration = boost::numeric_cast(raw_value); } else if( datatype==16 ) { // float32 from GDF spec ev.value = boost::numeric_cast(raw_value); } else { // invalid data type while writing sparse sample throw exception::event_conversion_error("Invalid data type for NEQS sample; sample not converted to event."); } } //=================================================================================================== //=================================================================================================== void Writer::addEvent( uint32 position, uint16 type, uint16 channel, float32 value ) { Mode3Event ev; ev.position = position; ev.type = type; ev.channel = channel; ev.value = value; addEvent( ev ); } //=================================================================================================== //=================================================================================================== void Writer::writeEvents( ) { m_header.getEventHeader( ).clear( ); while( !m_eventbuffer.eof() ) { switch( m_header.getEventHeader( ).getMode() ) { case 1: { Mode1Event ev; m_eventbuffer.read( reinterpret_cast(&ev), sizeof(ev) ); if( !m_eventbuffer.eof( ) ) m_header.getEventHeader( ).addEvent( ev ); } break; case 3: { Mode3Event ev; m_eventbuffer.read( reinterpret_cast(&ev), sizeof(ev) ); if( !m_eventbuffer.eof( ) ) m_header.getEventHeader( ).addEvent( ev ); } break; default: throw exception::invalid_eventmode( boost::lexical_cast(m_header.getEventHeader( ).getMode()) ); break; } } m_header.getEventHeader( ).toStream( m_file ); } //=================================================================================================== //=================================================================================================== void Writer::triggerRecordFull( Record* /*rec*/ ) { if( m_recbuf.getNumFullRecords() > max_full_records ) { flush( ); } } //=================================================================================================== //=================================================================================================== void Writer::makeFreeTextEvent( double noteTimeSec, const std::string str, EventDescriptor & ev_desc, Mode1Event & e ) { gdf::EventHeader & evh = m_header.getEventHeader( ); e.position = evh.secToPos(noteTimeSec); e.type = ev_desc.getUserDescEventType(str); } //=================================================================================================== //=================================================================================================== void Writer::makeFreeTextEvent( double noteTimeSec, const std::string str, EventDescriptor & ev_desc, Mode3Event & e ) { gdf::EventHeader & evh = m_header.getEventHeader( ); e.position = evh.secToPos(noteTimeSec); e.type = ev_desc.getUserDescEventType(str); } } libgdf-release-0.1.3/matlab/000077500000000000000000000000001223711576300156275ustar00rootroot00000000000000libgdf-release-0.1.3/matlab/Makefile000066400000000000000000000031741223711576300172740ustar00rootroot00000000000000# # build matlab functions using matlab's mex tool # # issues: # * MEX automatically appends the arch dependent suffix (.mexglx, .mexa64, etc.) # How can we make the Makefile aware of the correct suffix? (Hardcoded for now) # # * The libGDF binaries are put where the user chooses to build the library with cmake. # Putting the binaries into a specific location inside the source tree would probably # be the easiest solution, but is not pretty. (For now the search path is hardcoded to # ../build) # # * Location of matlab installation: How can this be determined? # SOURCEDIR = . OUTDIR = . OBJDIR = build MEXSUFFIX = mexa64 GDF_INCLUDE_DIR = -I../libgdf/include GDF_LIB_DIR = -L../build/libgdf GDF_LIBS = -lGDF MATLABROOT = /opt/matlab/R2010b MATLAB_INCLUDE_DIR = -I$(MATLABROOT)/extern/include MEXTOOL = $(MATLABROOT)/bin/mex CXXFLAGS = -c -cxx -O -DNDEBUG LDFLAGS = all: $(OUTDIR)/gdf_reader.$(MEXSUFFIX) $(OUTDIR)/gdf_writer.$(MEXSUFFIX) clean: rm -rf $(OBJDIR) $(OUTDIR)/gdf_reader.$(MEXSUFFIX) $(OUTDIR)/gdf_writer.$(MEXSUFFIX) buildclean: rm -rf $(OBJDIR) $(OUTDIR)/gdf_reader.$(MEXSUFFIX): $(OBJDIR)/gdf_reader.o $(MEXTOOL) -cxx $(LDFLAGS) $(GDF_LIB_DIR) $(GDF_LIBS) -outdir $(OUTDIR) -output $@ $^ $(OUTDIR)/gdf_writer.$(MEXSUFFIX): $(OBJDIR)/gdf_writer.o $(MEXTOOL) -cxx $(LDFLAGS) $(GDF_LIB_DIR) $(GDF_LIBS) -outdir $(OUTDIR) -output $@ $^ $(OBJDIR)/gdf_reader.o: $(SOURCEDIR)/gdf_reader.cpp $(MEXTOOL) $(CXXFLAGS) $(MATLAB_INCLUDE_DIR) $(GDF_INCLUDE_DIR) -outdir $(OBJDIR) $^ $(OBJDIR)/gdf_writer.o: $(SOURCEDIR)/gdf_writer.cpp $(MEXTOOL) $(CXXFLAGS) $(MATLAB_INCLUDE_DIR) $(GDF_INCLUDE_DIR) -outdir $(OBJDIR) $^ libgdf-release-0.1.3/matlab/examples/000077500000000000000000000000001223711576300174455ustar00rootroot00000000000000libgdf-release-0.1.3/matlab/examples/gdf_quicksave.m000066400000000000000000000033421223711576300224400ustar00rootroot00000000000000function gdf_quicksave( filename, s, h, e ) % gdf_quicksave( filename, data, header, events ) % % Quickly save a GDF file % % Inputs: % filename : output filename % data : signal data % header : GDF header structure % events : Events if ~iscell(s) error 'Only cell input data is supported so far. Input 2 must be a cell array.' end s = s(:); num_signals = length(s); handle = gdf_writer( 'init' ); for c = 1 : num_signals gdf_writer( 'createsignal', handle, c ); end gdf_writer( 'setheader', handle, h ); gdf_writer( 'recordduration', handle, 0 ); % automatic record duration gdf_writer( 'eventconfig', handle, e.mode, e.sample_rate ); gdf_writer( 'open', handle, filename ); chunksize = 1; % seconds num_chunks = ceil( length(s{1}) / (chunksize*h.signals(1).sampling_rate) ); datapos = ones(1,h.file.num_signals); for d = 1 : num_chunks for c = 1 : h.file.num_signals datalen = chunksize * h.signals(c).sampling_rate; datalen = min( datalen, length(s{c}) - datapos(c) + 1 ); data = s{c}( datapos(c) + (1:datalen) - 1 ); gdf_writer( 'blitsamples', handle, c, data ); datapos(c) = datapos(c) + datalen; end end if e.mode == 1 for i = 1 : length( e.position ) gdf_writer( 'mode1ev', handle, e.position(i), e.event_code(i) ); end elseif e.mode == 3 for i = 1 : length( e.position ) gdf_writer( 'mode3ev', handle, e.position(i), e.event_code(i), e.channel(i), e.duration(i) ); end end gdf_writer( 'close', handle ); gdf_writer( 'clear', handle ); end libgdf-release-0.1.3/matlab/examples/gdf_remove_eog.m000066400000000000000000000052201223711576300225710ustar00rootroot00000000000000function gdf_remove_eog( inputfile, outputfile, reffile, eegchan, eogchan ) % gdf_remove_eog( inputfile, outputfile, reffile ) % % Remove eog artifacts by regression. % % Inputs: % inputfile : filename of the original raw data % outputfile : output filename % reffile : file that contains eog reference data % eegchan : EEG channel numbers % eogchan : EOG channel numbers % apply spatial filter matrix to a gdf % load gdf files [s, h, e] = gdf_reader( inputfile, 'dataformat', 'single' ); input.s = s; input.h = h; input.e = e; [s, h, e] = gdf_reader( reffile, 'dataformat', 'single' ); ref.s = s; ref.h = h; ref.e = e; % calculate eog regression refeeg = [ref.s{eegchan}]; refeog = [ref.s{eogchan}]; refeeg( any( isnan( refeeg ), 2 ), : ) = []; refeog( any( isnan( refeog ), 2 ), : ) = []; Y = refeeg; U = refeog; CNN = U'*U/size(U,1); CNY = U'*Y/size(U,1); eog_weights = CNN\CNY; % apply eog correction eeg = [input.s{eegchan}]; eog = [input.s{eogchan}]; eeg = eeg - eog * eog_weights; % 4. save new gdf handle = gdf_writer( 'init' ); for c = 1 : input.h.file.num_signals gdf_writer( 'createsignal', handle, c ); end gdf_writer( 'setheader', handle, input.h ); gdf_writer( 'recordduration', handle, 0 ); % automatic record duration gdf_writer( 'eventconfig', handle, input.e.mode, input.e.sample_rate ); gdf_writer( 'open', handle, outputfile ); chunksize = 1; % seconds num_chunks = ceil( length(input.s{1}) / (chunksize*input.h.signals(1).sampling_rate) ); datapos = ones(1,input.h.file.num_signals); for d = 1 : num_chunks for c = 1 : input.h.file.num_signals datalen = chunksize * input.h.signals(c).sampling_rate; if find( eegchan==c ) data = input.s{c}( datapos(c) + (1:datalen) - 1 ); else data = input.s{c}( datapos(c) + (1:datalen) - 1 ); end gdf_writer( 'blitsamples', handle, c, data ); datapos(c) = datapos(c) + datalen; end end if input.e.mode == 1 for e = 1 : length( input.e.position ) gdf_writer( 'mode1ev', handle, input.e.position(e), input.e.event_code(e) ); end elseif input.e.mode == 3 for e = 1 : length( input.e.position ) gdf_writer( 'mode3ev', handle, input.e.position(e), input.e.event_code(e), input.e.channel(e), input.e.duration(e) ); end end gdf_writer( 'close', handle ); gdf_writer( 'clear', handle ); end libgdf-release-0.1.3/matlab/examples/gdf_resample.m000066400000000000000000000066341223711576300222640ustar00rootroot00000000000000function gdf_resample( fs_new, inputfile, outputfile, datatype ) % 1. load gdf file [signals, header, events] = gdf_reader( inputfile, 'multiratesignals', 'single', 'dataorientation', 'row' ); num_channels = length( signals ); % 2. resample for c = 1 : num_channels fs_old = header.signals(c).sampling_rate; div = gcd( fs_new, fs_old ); P = fs_new / div; Q = fs_old /div; signals{c} = resample( signals{c}, P, Q ); header.signals(c).sampling_rate = fs_new; % better adjust physmin and physmax, as the signal may locally % increase in amplitude due to the anti aliasing filter. header.signals(c).physmin = min(signals{c}); header.signals(c).physmax = max(signals{c}); if exist( 'datatype', 'var' ) header.signals(c).datatype = datatype; switch datatype case 1, header.signals(c).digmin=-128; header.signals(c).digmax=127; case 2, header.signals(c).digmin=0; header.signals(c).digmax=256; case 3, header.signals(c).digmin=-32768; header.signals(c).digmax=32767; case 4, header.signals(c).digmin=0; header.signals(c).digmax=65536; case 5, header.signals(c).digmin=-2147483648; header.signals(c).digmax=2147483647; case 6, header.signals(c).digmin=0; header.signals(c).digmax=4294967295; case 7, header.signals(c).digmin=-9223372036854775808; header.signals(c).digmax=9223372036854775807; case 8, header.signals(c).digmin=0; header.signals(c).digmax=18446744073709551615; case 16, header.signals(c).digmin=-1; header.signals(c).digmax=1; case 17, header.signals(c).digmin=-1; header.signals(c).digmax=1; end end end % 3. fix event positions if events.mode == 3 events.duration = events.duration * double(fs_new / events.sample_rate); end events.position = events.position * double(fs_new / events.sample_rate); events.sample_rate = fs_new; % 4. save new gdf handle = gdf_writer( 'init' ); for c = 1 : num_channels gdf_writer( 'createsignal', handle, c ); end gdf_writer( 'setheader', handle, header ); gdf_writer( 'recordduration', handle, 0 ); % automatic record duration gdf_writer( 'eventconfig', handle, events.mode, events.sample_rate ); gdf_writer( 'open', handle, outputfile ); % for c = 1 : num_channels % gdf_writer( 'blitsamples', handle, c, signals{c} ); % end chunksize = 512; num_chunks = ceil(size(signals{1},2) / chunksize); for d = 1 : num_chunks for c = 1 : num_channels start = (d-1)*chunksize + 1; ende = min( d*chunksize, size(signals{1},2) ); gdf_writer( 'blitsamples', handle, c, signals{c}(start:ende) ); end end if events.mode == 1 for e = 1 : length( events.position ) gdf_writer( 'mode1ev', handle, events.position(e), events.event_code(e) ); end elseif events.mode == 3 for e = 1 : length( events.position ) gdf_writer( 'mode3ev', handle, events.position(e), events.event_code(e), events.channel(e), events.duration(e) ); end end gdf_writer( 'close', handle ); gdf_writer( 'clear', handle ); end libgdf-release-0.1.3/matlab/examples/gdf_spatial.m000066400000000000000000000032331223711576300221010ustar00rootroot00000000000000function gdf_spatial( filtermatrix, inputfile, outputfile, labels ) % apply spatial filter matrix to a gdf % load gdf file [signals, header, events] = gdf_reader( inputfile, 'dataformat', 'matrix' ); num_channels = size( filtermatrix, 1 ); % apply filter signals = filtermatrix * signals; header.signals( num_channels+1 : end ) = []; for c = 1 : num_channels header.signals( c ).label = labels{c}; end % 4. save new gdf handle = gdf_writer( 'init' ); for c = 1 : num_channels gdf_writer( 'createsignal', handle, c ); end gdf_writer( 'setheader', handle, header ); gdf_writer( 'recordduration', handle, 0 ); % automatic record duration gdf_writer( 'eventconfig', handle, events.mode, events.sample_rate ); gdf_writer( 'open', handle, outputfile ); chunksize = 512; num_chunks = ceil(size(signals,2) / chunksize); for d = 1 : num_chunks for c = 1 : num_channels start = (d-1)*chunksize + 1; ende = min( d*chunksize, size(signals,2) ); gdf_writer( 'blitsamples', handle, c, signals(c,start:ende) ); end end if events.mode == 1 for e = 1 : length( events.position ) gdf_writer( 'mode1ev', handle, events.position(e), events.event_code(e) ); end elseif events.mode == 3 for e = 1 : length( events.position ) gdf_writer( 'mode3ev', handle, events.position(e), events.event_code(e), events.channel(e), events.duration(e) ); end end gdf_writer( 'close', handle ); gdf_writer( 'clear', handle ); endlibgdf-release-0.1.3/matlab/gdf_headerstruct.h000066400000000000000000000122311223711576300213140ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef GDF_HEADERSTRUCT_INCLUDED #define GDF_HEADERSTRUCT_INCLUDED #define GDFH_STRUCT_FILE_VersionID "file.version_id" #define GDFH_LENGTH_FILE_VersionID 8 #define GDFH_STRUCT_FILE_HeaderLength "file.header_length" #define GDFH_STRUCT_FILE_NumDatarecords "file.num_datarecords" #define GDFH_STRUCT_FILE_DatarecordsDuration "file.datarecord_duration" #define GDFH_STRUCT_FILE_NumSignals "file.num_signals" #define GDFH_STRUCT_PATIENT_IdentificationCode "patient.identification_code" #define GDFH_STRUCT_PATIENT_Name "patient.name" #define GDFH_STRUCT_PATIENT_Classification "patient.classification" #define GDFH_STRUCT_PATIENT_Drugs "patient.drugs" #define GDFH_STRUCT_PATIENT_Drugs_Smoking "patient.drugs.smoking" #define GDFH_STRUCT_PATIENT_Drugs_Alcohol "patient.drugs.alcohol_abuse" #define GDFH_STRUCT_PATIENT_Drugs_Drugs "patient.drugs.drug_abuse" #define GDFH_STRUCT_PATIENT_Drugs_Medics "patient.drugs.medication" #define GDFH_STRUCT_PATIENT_Weight "patient.weight" #define GDFH_STRUCT_PATIENT_Height "patient.height" #define GDFH_STRUCT_PATIENT_Flags "patient.flags" #define GDFH_STRUCT_PATIENT_Flags_Gender "patient.flags.gender" #define GDFH_STRUCT_PATIENT_Flags_Handed "patient.flags.handedness" #define GDFH_STRUCT_PATIENT_Flags_Visual "patient.flags.visual_impairment" #define GDFH_STRUCT_PATIENT_Flags_Hearty "patient.flags.heart_impairment" #define GDFH_STRUCT_PATIENT_Birthdate "patient.birthday" #define GDFH_STRUCT_PATIENT_ICD "patient.ICD" #define GDFH_LENGTH_PATIENT_ICD 6 #define GDFH_STRUCT_PATIENT_HeadSize "patient.headsize" #define GDFH_STRUCT_REC_ID "recording.id" #define GDFH_LENGTH_REC_ID 64 #define GDFH_STRUCT_REC_LOC "recording.location" #define GDFH_STRUCT_REC_LOC_VER "recording.location.version" #define GDFH_STRUCT_REC_LOC_SIZE "recording.location.size" #define GDFH_STRUCT_REC_LOC_HRPEC "recording.location.horizontal_precision" #define GDFH_STRUCT_REC_LOC_VRPEC "recording.location.vertical_precision" #define GDFH_STRUCT_REC_LOC_LAT "recording.location.latitude" #define GDFH_STRUCT_REC_LOC_LON "recording.location.longitude" #define GDFH_STRUCT_REC_LOC_ALT "recording.location.altitude" #define GDFH_STRUCT_REC_START "recording.start" #define GDFH_STRUCT_REC_EQUIPMENT "recording.equipment_provider_classification" #define GDFH_STRUCT_REC_PosRef "recording.pos_reference" #define GDFH_STRUCT_REC_PosGND "recording.pos_ground" // signal and tlv headers work slightly differently, due to their array-ish nature. #define GDFH_STRUCT_SIGNAL "signals" #define GDFH_STRUCT_SIGNAL_Label "label" #define GDFH_LENGTH_SIGNAL_Label 16 #define GDFH_STRUCT_SIGNAL_Transducer "transducer_type" #define GDFH_LENGTH_SIGNAL_Transducer 80 #define GDFH_STRUCT_SIGNAL_PhysDim "physical_dimension" #define GDFH_LENGTH_SIGNAL_PhysDim 6 #define GDFH_STRUCT_SIGNAL_PhysCode "physical_dimension_code" #define GDFH_STRUCT_SIGNAL_PhysMin "physmin" #define GDFH_STRUCT_SIGNAL_PhysMax "physmax" #define GDFH_STRUCT_SIGNAL_DigMin "digmin" #define GDFH_STRUCT_SIGNAL_DigMax "digmax" #define GDFH_STRUCT_SIGNAL_Lowpass "lowpass" #define GDFH_STRUCT_SIGNAL_Highpass "highpass" #define GDFH_STRUCT_SIGNAL_Notch "notch" #define GDFH_STRUCT_SIGNAL_RecSamples "samples_per_record" #define GDFH_STRUCT_SIGNAL_SampleRate "sampling_rate" #define GDFH_STRUCT_SIGNAL_Datatype "datatype" #define GDFH_STRUCT_SIGNAL_SensorPos "sensor_pos" #define GDFH_STRUCT_SIGNAL_Sensinf "sensor_info" #define GDFH_STRUCT_SIGNAL_Sensinf_Info "sensor_info.information" #define GDFH_STRUCT_SIGNAL_Sensinf_Value "sensor_info.value" #define GDFH_STRUCT_TLV "TLV" #define GDFH_STRUCT_TLV_Tag "tag" #define GDFH_STRUCT_TLV_Val "value" #define GDFE_MODE "mode" #define GDFE_FS "sample_rate" #define GDFE_POS "position" #define GDFE_TYP "event_code" #define GDFE_3_CHA "channel" #define GDFE_3_DUR "duration" #endif libgdf-release-0.1.3/matlab/gdf_mex.h000066400000000000000000001125241223711576300174160ustar00rootroot00000000000000#ifndef __GDF_MEX_H__ #define __GDF_MEX_H__ #include "gdf_headerstruct.h" #include "matlab_tools/mxStructAccess.h" #include #include #include #include #include "mex.h" #define STR_DRUGS_00 "UNKNOWN" #define STR_DRUGS_01 "NO" #define STR_DRUGS_10 "YES" #define STR_DRUGS_11 "INVALID" #define STR_GENDR_00 "UNKNOWN" #define STR_GENDR_01 "MALE" #define STR_GENDR_10 "FEMALE" #define STR_GENDR_11 "INVALID" #define STR_HANDS_00 "UNKNOWN" #define STR_HANDS_01 "RIGHT" #define STR_HANDS_10 "LEFT" #define STR_HANDS_11 "EQUAL" #define STR_VIS_00 "UNKNOWN" #define STR_VIS_01 "NO" #define STR_VIS_10 "YES" #define STR_VIS_11 "YES (CORRECTED)" #define STR_HEART_00 "UNKNOWN" #define STR_HEART_01 "NO" #define STR_HEART_10 "YES" #define STR_HEART_11 "PACEMAKER" #define DATE_CORRECTION_FACTOR 4294967296.0 // ================================================================================================= // ================================================================================================= void warn( const std::string &str ) { mexPrintf( (str+"\n").c_str() ); } // ================================================================================================= // ================================================================================================= void bitDecode( char *dest, gdf::uint8 data, int bit1, int bit2, const char *str1, const char *str2, const char *str3, const char *str4 ) { bit1 = 1 << bit1; bit2 = 1 << bit2; bool b1 = data & bit1; bool b2 = data & bit2; if( !b1 && !b2 ) strcpy( dest, str1 ); if( b1 && !b2 ) strcpy( dest, str2 ); if( !b1 && b2 ) strcpy( dest, str3 ); if( b1 && b2 ) strcpy( dest, str4 ); } // ================================================================================================= // ================================================================================================= void bitEncode( gdf::uint8 &data, const char *src, int bit1, int bit2, const char *str1, const char *str2, const char *str3, const char *str4 ) { bit1 = 1 << bit1; bit2 = 1 << bit2; if( strcmp( src, str1 ) == 0 ) { data = data & ~bit1; data = data & ~bit2; } else if( strcmp( src, str2 ) == 0 ) { data = data | bit1; data = data & ~bit2; } else if( strcmp( src, str3 ) == 0 ) { data = data & ~bit1; data = data | bit2; } else if( strcmp( src, str4 ) == 0 ) { data = data | bit1; data = data | bit2; } else throw std::invalid_argument( "Unknown value: " + std::string( src ) ); } // ================================================================================================= // ================================================================================================= // encoding of location as described in http://www.faqs.org/rfcs/rfc1876.html void uint32_to_RFC( const gdf::uint32 loc, gdf::uint8 &version, double &size, double &hprec, double &vprec ) { version = ((char*)&loc)[0]; if( version != 0 ) throw std::invalid_argument( "RFC1876 expects 'version' to be set to 0." ); gdf::uint8 mantissa = ((char*)&loc)[1]; gdf::uint8 exponent = ((char*)&loc)[1]; mantissa = mantissa >> 4; exponent = exponent << 4; exponent = exponent >> 4; size = mantissa * pow( 10.0, exponent ); mantissa = ((char*)&loc)[2]; exponent = ((char*)&loc)[2]; mantissa = mantissa >> 4; exponent = exponent << 4; exponent = exponent >> 4; hprec = mantissa * pow( 10.0, exponent ); mantissa = ((char*)&loc)[3]; exponent = ((char*)&loc)[3]; mantissa = mantissa >> 4; exponent = exponent << 4; exponent = exponent >> 4; vprec = mantissa * pow( 10.0, exponent ); } // ================================================================================================= // ================================================================================================= void RFC_to_uint32( const gdf::uint32 &loc, gdf::uint8 version, double size, double hprec, double vprec ) { using boost::numeric_cast; try { ((char*)&loc)[0] = version; if( version != 0 ) throw std::invalid_argument( "RFC1876 expects 'version' to be set to 0." ); if( size < 1 ) ((char*)&loc)[1] = 0; else { gdf::uint8 exponent = numeric_cast( floor( log10( size ) ) ); gdf::uint8 mantissa = numeric_cast( floor( size/pow( 10.0, exponent ) ) ); mantissa = mantissa << 4; ((char*)&loc)[1] = mantissa | exponent; } if( hprec < 1 ) ((char*)&loc)[2] = 0; else { gdf::uint8 exponent = numeric_cast( floor( log10( hprec ) ) ); gdf::uint8 mantissa = numeric_cast( floor( hprec/pow( 10.0, exponent ) ) ); mantissa = mantissa << 4; ((char*)&loc)[2] = mantissa | exponent; } if( vprec < 1 ) ((char*)&loc)[3] = 0; else { gdf::uint8 exponent = numeric_cast( floor( log10( vprec ) ) ); gdf::uint8 mantissa = numeric_cast( floor( vprec/pow( 10.0, exponent ) ) ); mantissa = mantissa << 4; ((char*)&loc)[3] = mantissa | exponent; } } catch( boost::bad_numeric_cast &e ) { throw std::invalid_argument( std::string("Converting Location: ")+e.what() ); } } // ================================================================================================= // ================================================================================================= mxArray *constructHeaderStruct( size_t num_signals ) { mxArray *h; // most of the following commands are not really neccessary // but pre-creating the structure allows to determine the order // of elements in one place. h = mxCreateStructMatrix( 1, 1, 0, NULL ); mx::setField( h, NULL, GDFH_STRUCT_FILE_VersionID ); mx::setField( h, NULL, GDFH_STRUCT_FILE_HeaderLength ); mx::setField( h, NULL, GDFH_STRUCT_FILE_NumDatarecords ); mx::setField( h, NULL, GDFH_STRUCT_FILE_DatarecordsDuration ); mx::setField( h, NULL, GDFH_STRUCT_FILE_NumSignals ); mx::setField( h, NULL, GDFH_STRUCT_REC_ID ); mx::setField( h, NULL, GDFH_STRUCT_REC_LOC ); mx::setField( h, NULL, GDFH_STRUCT_REC_START ); mx::setField( h, NULL, GDFH_STRUCT_REC_EQUIPMENT ); mx::setField( h, NULL, GDFH_STRUCT_REC_PosRef ); mx::setField( h, NULL, GDFH_STRUCT_REC_PosGND ); mx::setField( h, NULL, GDFH_STRUCT_PATIENT_IdentificationCode ); mx::setField( h, NULL, GDFH_STRUCT_PATIENT_Name ); mx::setField( h, NULL, GDFH_STRUCT_PATIENT_Classification ); mx::setField( h, NULL, GDFH_STRUCT_PATIENT_Weight ); mx::setField( h, NULL, GDFH_STRUCT_PATIENT_Height ); mx::setField( h, NULL, GDFH_STRUCT_PATIENT_Flags ); mx::setField( h, NULL, GDFH_STRUCT_PATIENT_Drugs ); mx::setField( h, NULL, GDFH_STRUCT_PATIENT_Birthdate ); mx::setField( h, NULL, GDFH_STRUCT_PATIENT_ICD ); mx::setField( h, NULL, GDFH_STRUCT_PATIENT_HeadSize ); if( num_signals > 0 ) { mx::setField( h, mxCreateStructMatrix( num_signals, 1 , 0, NULL ), GDFH_STRUCT_SIGNAL ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_Label ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_Transducer ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_PhysDim ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_PhysCode ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_PhysMin ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_PhysMax ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_DigMin ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_DigMax ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_Lowpass ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_Highpass ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_Notch ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_RecSamples ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_SampleRate ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_Datatype ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_SensorPos ); mx::setField( h, NULL, GDFH_STRUCT_SIGNAL+std::string(".")+GDFH_STRUCT_SIGNAL_Sensinf ); } mx::setField( h, NULL, GDFH_STRUCT_TLV ); return h; } // ================================================================================================= // ================================================================================================= void MainHeader2Struct( mxArray *h, const gdf::MainHeader *mainhdr ) { mx::setFieldString( h, mainhdr->get_version_id(), GDFH_STRUCT_FILE_VersionID ); mx::setFieldNumeric( h, mainhdr->get_header_length(), GDFH_STRUCT_FILE_HeaderLength ); mx::setFieldNumeric( h, mainhdr->get_num_datarecords(), GDFH_STRUCT_FILE_NumDatarecords ); mx::setFieldNumeric( h, static_cast(mainhdr->get_datarecord_duration(0)) / static_cast(mainhdr->get_datarecord_duration(1)), GDFH_STRUCT_FILE_DatarecordsDuration ); mx::setFieldNumeric( h, mainhdr->get_num_signals(), GDFH_STRUCT_FILE_NumSignals ); std::stringstream ss( mainhdr->get_patient_id() ); std::string str; ss >> str; mx::setFieldString( h, str, GDFH_STRUCT_PATIENT_IdentificationCode ); ss >> str; mx::setFieldString( h, str, GDFH_STRUCT_PATIENT_Name ); ss >> str; mx::setFieldString( h, str, GDFH_STRUCT_PATIENT_Classification ); char tmp[128]; bitDecode( tmp, mainhdr->get_patient_drugs(), 0, 1, STR_DRUGS_00, STR_DRUGS_01, STR_DRUGS_10, STR_DRUGS_11 ); mx::setFieldString( h, tmp, GDFH_STRUCT_PATIENT_Drugs_Smoking ); bitDecode( tmp, mainhdr->get_patient_drugs(), 2, 3, STR_DRUGS_00, STR_DRUGS_01, STR_DRUGS_10, STR_DRUGS_11 ); mx::setFieldString( h, tmp, GDFH_STRUCT_PATIENT_Drugs_Alcohol ); bitDecode( tmp, mainhdr->get_patient_drugs(), 4, 5, STR_DRUGS_00, STR_DRUGS_01, STR_DRUGS_10, STR_DRUGS_11 ); mx::setFieldString( h, tmp, GDFH_STRUCT_PATIENT_Drugs_Drugs ); bitDecode( tmp, mainhdr->get_patient_drugs(), 6, 7, STR_DRUGS_00, STR_DRUGS_01, STR_DRUGS_10, STR_DRUGS_11 ); mx::setFieldString( h, tmp, GDFH_STRUCT_PATIENT_Drugs_Medics ); mx::setFieldNumeric( h, mainhdr->get_patient_weight(), GDFH_STRUCT_PATIENT_Weight ); mx::setFieldNumeric( h, mainhdr->get_patient_height(), GDFH_STRUCT_PATIENT_Height ); bitDecode( tmp, mainhdr->get_patient_flags(), 0, 1, STR_GENDR_00, STR_GENDR_01, STR_GENDR_10, STR_GENDR_11 ); mx::setFieldString( h, tmp, GDFH_STRUCT_PATIENT_Flags_Gender ); bitDecode( tmp, mainhdr->get_patient_flags(), 2, 3, STR_HANDS_00, STR_HANDS_01, STR_HANDS_10, STR_HANDS_11 ); mx::setFieldString( h, tmp, GDFH_STRUCT_PATIENT_Flags_Handed ); bitDecode( tmp, mainhdr->get_patient_flags(), 4, 5, STR_VIS_00, STR_VIS_01, STR_VIS_10, STR_VIS_11 ); mx::setFieldString( h, tmp, GDFH_STRUCT_PATIENT_Flags_Visual ); bitDecode( tmp, mainhdr->get_patient_flags(), 6, 7, STR_HEART_00, STR_HEART_01, STR_HEART_10, STR_HEART_11 ); mx::setFieldString( h, tmp, GDFH_STRUCT_PATIENT_Flags_Hearty ); mx::setFieldNumeric( h, boost::numeric_cast(mainhdr->get_patient_birthday()) / DATE_CORRECTION_FACTOR, GDFH_STRUCT_PATIENT_Birthdate ); mx::setFieldString( h, mainhdr->get_patient_ICD(), GDFH_STRUCT_PATIENT_ICD ); mxArray *mx_headsize = mxCreateNumericMatrix( 1, 3, mxUINT16_CLASS, mxREAL ); reinterpret_cast( mxGetData(mx_headsize) )[0] = mainhdr->get_patient_headsize(0); reinterpret_cast( mxGetData(mx_headsize) )[1] = mainhdr->get_patient_headsize(1); reinterpret_cast( mxGetData(mx_headsize) )[2] = mainhdr->get_patient_headsize(2); mx::setField( h, mx_headsize, GDFH_STRUCT_PATIENT_HeadSize ); mx::setFieldString( h, mainhdr->get_recording_id(), GDFH_STRUCT_REC_ID ); gdf::uint8 loc_version; double loc_size; double loc_hp, loc_vp; uint32_to_RFC( mainhdr->get_recording_location(0), loc_version, loc_size, loc_hp, loc_vp ); mx::setFieldNumeric( h, loc_version, GDFH_STRUCT_REC_LOC_VER ); mx::setFieldNumeric( h, loc_size, GDFH_STRUCT_REC_LOC_SIZE ); mx::setFieldNumeric( h, loc_hp, GDFH_STRUCT_REC_LOC_HRPEC ); mx::setFieldNumeric( h, loc_vp, GDFH_STRUCT_REC_LOC_VRPEC ); mx::setFieldNumeric( h, mainhdr->get_recording_location(1), GDFH_STRUCT_REC_LOC_LAT ); mx::setFieldNumeric( h, mainhdr->get_recording_location(2), GDFH_STRUCT_REC_LOC_LON ); mx::setFieldNumeric( h, mainhdr->get_recording_location(3), GDFH_STRUCT_REC_LOC_ALT ); mx::setFieldNumeric( h, boost::numeric_cast(mainhdr->get_recording_start()) / DATE_CORRECTION_FACTOR, GDFH_STRUCT_REC_START ); mx::setFieldNumeric( h, mainhdr->get_equipment_provider_classification(), GDFH_STRUCT_REC_EQUIPMENT ); mxArray *mx_pos = mxCreateNumericMatrix( 1, 3, mxDOUBLE_CLASS, mxREAL ); mxGetPr(mx_pos)[0] = mainhdr->get_pos_reference(0); mxGetPr(mx_pos)[1] = mainhdr->get_pos_reference(1); mxGetPr(mx_pos)[2] = mainhdr->get_pos_reference(2); mx::setField( h, mx_pos, GDFH_STRUCT_REC_PosRef ); mx_pos = mxCreateNumericMatrix( 1, 3, mxDOUBLE_CLASS, mxREAL ); mxGetPr(mx_pos)[0] = mainhdr->get_pos_ground(0); mxGetPr(mx_pos)[1] = mainhdr->get_pos_ground(1); mxGetPr(mx_pos)[2] = mainhdr->get_pos_ground(2); mx::setField( h, mx_pos, GDFH_STRUCT_REC_PosGND ); } // ================================================================================================= // ================================================================================================= void SignalHeader2Struct( mxArray *h, const gdf::GDFHeaderAccess *headers ) { using boost::numeric_cast; size_t num_signals = headers->getNumSignals( ); if( num_signals == 0 ) return; mxArray *sh = mx::getField( h, GDFH_STRUCT_SIGNAL ); for( size_t i=0; igetSignalHeader_readonly( i ); mx::setFieldString( sh, signal_header->get_label(), GDFH_STRUCT_SIGNAL_Label, i+1 ); mx::setFieldString( sh, signal_header->get_transducer_type(), GDFH_STRUCT_SIGNAL_Transducer, i+1 ); mx::setFieldString( sh, signal_header->get_physical_dimension(), GDFH_STRUCT_SIGNAL_PhysDim, i+1 ); mx::setFieldNumeric( sh, signal_header->get_physical_dimension_code(), GDFH_STRUCT_SIGNAL_PhysCode, i+1 ); mx::setFieldNumeric( sh, signal_header->get_physmin(), GDFH_STRUCT_SIGNAL_PhysMin, i+1 ); mx::setFieldNumeric( sh, signal_header->get_physmax(), GDFH_STRUCT_SIGNAL_PhysMax, i+1 ); mx::setFieldNumeric( sh, signal_header->get_digmin(), GDFH_STRUCT_SIGNAL_DigMin, i+1 ); mx::setFieldNumeric( sh, signal_header->get_digmax(), GDFH_STRUCT_SIGNAL_DigMax, i+1 ); mx::setFieldNumeric( sh, signal_header->get_lowpass(), GDFH_STRUCT_SIGNAL_Lowpass, i+1 ); mx::setFieldNumeric( sh, signal_header->get_highpass(), GDFH_STRUCT_SIGNAL_Highpass, i+1 ); mx::setFieldNumeric( sh, signal_header->get_notch(), GDFH_STRUCT_SIGNAL_Notch, i+1 ); mx::setFieldNumeric( sh, signal_header->get_samples_per_record(), GDFH_STRUCT_SIGNAL_RecSamples, i+1 ); double fs = numeric_cast(signal_header->get_samples_per_record()) * numeric_cast(headers->getMainHeader_readonly().get_datarecord_duration(1)) / numeric_cast(headers->getMainHeader_readonly().get_datarecord_duration(0)); mx::setFieldNumeric( sh, fs, GDFH_STRUCT_SIGNAL_SampleRate, i+1 ); mx::setFieldNumeric( sh, signal_header->get_datatype(), GDFH_STRUCT_SIGNAL_Datatype, i+1 ); mxArray *mx_pos = mxCreateNumericMatrix( 1, 3, mxDOUBLE_CLASS, mxREAL ); mxGetPr(mx_pos)[0] = signal_header->get_sensor_pos(0); mxGetPr(mx_pos)[1] = signal_header->get_sensor_pos(1); mxGetPr(mx_pos)[2] = signal_header->get_sensor_pos(2); mx::setField( sh, mx_pos, GDFH_STRUCT_SIGNAL_SensorPos, i+1 ); switch( signal_header->get_physical_dimension_code() & 0xFFE0 ) { default : mx::setFieldString( sh, "Unknown", GDFH_STRUCT_SIGNAL_Sensinf_Info, i+1 ); break; case 4256 : mx::setFieldString( sh, "Electrode impedance [Ohm]", GDFH_STRUCT_SIGNAL_Sensinf_Info, i+1 ); break; case 4288 : mx::setFieldString( sh, "Probe frequency [Hertz]", GDFH_STRUCT_SIGNAL_Sensinf_Info, i+1 ); break; } mx::setFieldNumeric( sh, signal_header->get_sensor_info(), GDFH_STRUCT_SIGNAL_Sensinf_Value, i+1 ); } } // ================================================================================================= // ================================================================================================= void Header2Struct( mxArray *h, const gdf::GDFHeaderAccess *headers ) { MainHeader2Struct( h, &headers->getMainHeader_readonly( ) ); SignalHeader2Struct( h, headers ); } // ================================================================================================= // ================================================================================================= void Struct2MainHeader( std::map &elements, gdf::GDFHeaderAccess *headers ) { using boost::numeric_cast; try { gdf::MainHeader *mainhdr = &headers->getMainHeader( ); std::map::iterator it; /*it = elements.begin( ); for( ; it!=elements.end(); it++ ) { std::cout << it->first << std::endl; }*/ it = elements.find( GDFH_STRUCT_FILE_VersionID ); if( it != elements.end() ) { warn( "Warning: Only GDF 2.10 is supported. ('"+it->first+"' ignored)" ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_FILE_HeaderLength ); if( it != elements.end() ) { warn( "Warning: '"+it->first+"' ignored." ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_FILE_NumDatarecords ); if( it != elements.end() ) { warn( "Warning: '"+it->first+"' ignored." ); elements.erase( it ); } it = elements.find(GDFH_STRUCT_FILE_DatarecordsDuration); if( it != elements.end() ) { // convert datarecord duration from double to fraction double recduration = mx::getNumeric( it->second ); elements.erase( it ); if( recduration != 0 ) { gdf::uint32 num = numeric_cast(recduration*1e6); gdf::uint32 den = 1e6; gdf::uint32 gcd = gdf::gcd( num, den ); headers->setRecordDuration( num/gcd, den/gcd ); } else headers->enableAutoRecordDuration( ); } it = elements.find( GDFH_STRUCT_FILE_NumSignals ); if( it != elements.end() ) { warn( "Warning: '"+it->first+"' ignored." ); elements.erase( it ); } { // *** Patient ID std::string idc, nam, cla; std::stringstream ss( mainhdr->get_patient_id() ); std::string str; ss >> idc >> nam >> cla; it = elements.find( GDFH_STRUCT_PATIENT_IdentificationCode ); if( it != elements.end() ) { idc = mx::getString( it->second ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_PATIENT_Name ); if( it != elements.end() ) { nam = mx::getString( it->second ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_PATIENT_Classification ); if( it != elements.end() ) { cla = mx::getString( it->second ); elements.erase( it ); } ss.str( "" ); ss << idc << " " << nam << " " << cla; mainhdr->set_patient_id( ss.str() ); if( ss.str().length() > mainhdr->getLength_patient_id() ) warn( "Warning: Total length of patient identification_code, name and classification is longer than " + boost::lexical_cast(mainhdr->getLength_patient_id()-3)+". (truncating)" ); } { // *** Patient Drugs gdf::uint8 bits = mainhdr->get_patient_drugs( ); it = elements.find( GDFH_STRUCT_PATIENT_Drugs_Smoking ); if( it != elements.end() ) { bitEncode( bits, mx::getString(it->second, mx::TOUPPER).c_str(), 0, 1, STR_DRUGS_00, STR_DRUGS_01, STR_DRUGS_10, STR_DRUGS_11 ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_PATIENT_Drugs_Alcohol ); if( it != elements.end() ) { bitEncode( bits, mx::getString(it->second, mx::TOUPPER).c_str(), 2, 3, STR_DRUGS_00, STR_DRUGS_01, STR_DRUGS_10, STR_DRUGS_11 ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_PATIENT_Drugs_Drugs ); if( it != elements.end() ) { bitEncode( bits, mx::getString(it->second, mx::TOUPPER).c_str(), 4, 5, STR_DRUGS_00, STR_DRUGS_01, STR_DRUGS_10, STR_DRUGS_11 ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_PATIENT_Drugs_Medics ); if( it != elements.end() ) { bitEncode( bits, mx::getString(it->second, mx::TOUPPER).c_str(), 6, 7, STR_DRUGS_00, STR_DRUGS_01, STR_DRUGS_10, STR_DRUGS_11 ); elements.erase( it ); } mainhdr->set_patient_drugs( bits ); } it = elements.find( GDFH_STRUCT_PATIENT_Weight ); if( it != elements.end() ) { mainhdr->set_patient_weight( mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_PATIENT_Height ); if( it != elements.end() ) { mainhdr->set_patient_height( mx::getNumeric( it->second ) ); elements.erase( it ); } { // *** Patient Flags gdf::uint8 bits = mainhdr->get_patient_flags( ); it = elements.find( GDFH_STRUCT_PATIENT_Flags_Gender ); if( it != elements.end() ) { bitEncode( bits, mx::getString(it->second, mx::TOUPPER).c_str(), 0, 1, STR_GENDR_00, STR_GENDR_00, STR_GENDR_10, STR_GENDR_11 ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_PATIENT_Flags_Handed ); if( it != elements.end() ) { bitEncode( bits, mx::getString(it->second, mx::TOUPPER).c_str(), 2, 3, STR_HANDS_00, STR_HANDS_01, STR_HANDS_10, STR_HANDS_11 ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_PATIENT_Flags_Visual ); if( it != elements.end() ) { bitEncode( bits, mx::getString(it->second, mx::TOUPPER).c_str(), 4, 5, STR_VIS_00, STR_VIS_01, STR_VIS_10, STR_VIS_11 ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_PATIENT_Flags_Hearty ); if( it != elements.end() ) { bitEncode( bits, mx::getString(it->second, mx::TOUPPER).c_str(), 6, 7, STR_HEART_00, STR_HEART_01, STR_HEART_10, STR_HEART_11 ); elements.erase( it ); } mainhdr->set_patient_flags( bits ); } it = elements.find( GDFH_STRUCT_PATIENT_Birthdate ); if( it != elements.end() ) { mainhdr->set_patient_birthday( boost::numeric_cast( mx::getNumeric( it->second ) * DATE_CORRECTION_FACTOR ) ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_PATIENT_ICD ); if( it != elements.end() ) { mainhdr->set_patient_ICD( mx::getString( it->second ) ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_PATIENT_HeadSize ); if( it != elements.end() ) { gdf::uint16 headsize[3]; mx::getNumericArray( headsize, 3, it->second ); mainhdr->set_patient_headsize( headsize, 3 ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_REC_ID ); if( it != elements.end() ) { mainhdr->set_recording_id( mx::getString( it->second ) ); elements.erase( it ); } { // Recording Location gdf::uint8 loc_version; double loc_size; double loc_hp, loc_vp; uint32_to_RFC( mainhdr->get_recording_location(0), loc_version, loc_size, loc_hp, loc_vp ); it = elements.find( GDFH_STRUCT_REC_LOC_VER ); if( it != elements.end() ) { loc_version = mx::getNumeric( it->second ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_REC_LOC_SIZE ); if( it != elements.end() ) { loc_size = mx::getNumeric( it->second ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_REC_LOC_HRPEC ); if( it != elements.end() ) { loc_hp = mx::getNumeric( it->second ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_REC_LOC_VRPEC ); if( it != elements.end() ) { loc_vp = mx::getNumeric( it->second ); elements.erase( it ); } gdf::uint32 loc; RFC_to_uint32( loc, loc_version, loc_size, loc_hp, loc_vp ); mainhdr->set_recording_location( loc, 0 ); it = elements.find( GDFH_STRUCT_REC_LOC_LAT ); if( it != elements.end() ) { mainhdr->set_recording_location( mx::getNumeric( it->second ), 1 ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_REC_LOC_LON ); if( it != elements.end() ) { mainhdr->set_recording_location( mx::getNumeric( it->second ), 2 ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_REC_LOC_ALT ); if( it != elements.end() ) { mainhdr->set_recording_location( mx::getNumeric( it->second ), 3 ); elements.erase( it ); } } it = elements.find( GDFH_STRUCT_REC_START ); if( it != elements.end() ) { mainhdr->set_recording_start( boost::numeric_cast( mx::getNumeric( it->second ) * DATE_CORRECTION_FACTOR ) ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_REC_EQUIPMENT ); if( it != elements.end() ) { mainhdr->set_equipment_provider_classification( mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_REC_PosRef ); if( it != elements.end() ) { gdf::float32 pos[3]; mx::getNumericArray( pos, 3, it->second ); mainhdr->set_pos_reference( pos, 3 ); elements.erase( it ); } it = elements.find( GDFH_STRUCT_REC_PosGND ); if( it != elements.end() ) { gdf::float32 pos[3]; mx::getNumericArray( pos, 3, it->second ); mainhdr->set_pos_ground( pos, 3 ); elements.erase( it ); } } catch( ... ) { // that's weird. if we don't catch and throw again here, matlab crashes. throw; } } // ================================================================================================= // ================================================================================================= void Struct2SignalHeader( std::map &elements, gdf::GDFHeaderAccess *headers ) { using boost::numeric_cast; using boost::lexical_cast; try { size_t pre_len = std::string(GDFH_STRUCT_SIGNAL).length(); std::map indexstrings; // find all x, in elements starting with signal(x) std::map::iterator it; it = elements.begin( ); for( ; it!=elements.end(); it++ ) { if( it->first.substr( 0, pre_len ) == GDFH_STRUCT_SIGNAL ) { size_t index_begin = it->first.find('(')+1; size_t index_len = it->first.find(')') - index_begin; if( index_begin == 0 ) indexstrings[0] = it->first.substr( 0, pre_len+1 ); else { size_t index = lexical_cast( it->first.substr(index_begin, index_len) ); indexstrings[index] = it->first.substr( 0, pre_len+index_len+3 ); } } } std::map::iterator pre_it = indexstrings.begin( ); for( ; pre_it!=indexstrings.end(); pre_it++ ) { size_t index = pre_it->first; it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_Label ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_label( mx::getString( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_Transducer ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_transducer_type( mx::getString( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_PhysDim ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_physical_dimension( mx::getString( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_PhysCode ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_physical_dimension_code( mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_PhysMin ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_physmin( mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_PhysMax ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_physmax( mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_DigMin ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_digmin( mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_DigMax ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_digmax( mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_Lowpass ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_lowpass( mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_Highpass ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_highpass( mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_Notch ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_notch( mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_RecSamples ); if( it != elements.end() ) { warn( "Warning: '"+pre_it->second + GDFH_STRUCT_SIGNAL_RecSamples+"' ignored." ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_SampleRate ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_samplerate(mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_Datatype ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_datatype( mx::getNumeric( it->second ) ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_SensorPos ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); gdf::float32 pos[3]; mx::getNumericArray( pos, 3, it->second ); h->set_sensor_pos( pos, 3 ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_Sensinf_Info ); if( it != elements.end() ) { warn( "Warning: '"+pre_it->second + GDFH_STRUCT_SIGNAL_Sensinf_Info+"' ignored." ); elements.erase( it ); } it = elements.find( pre_it->second + GDFH_STRUCT_SIGNAL_Sensinf_Value ); if( it != elements.end() ) { gdf::SignalHeader *h = &headers->getSignalHeader( index ); h->set_sensor_info( mx::getNumeric( it->second ) ); elements.erase( it ); } } } catch( ... ) { // that's weird. if we don't catch and throw again here, matlab crashes. throw; } } // ================================================================================================= // ================================================================================================= void Struct2Header( const mxArray *h, gdf::GDFHeaderAccess *headers ) { try { std::map elements = mx::getFieldRecursive( h ); /*std::map::iterator it; it = elements.begin( ); for( ; it!=elements.end(); it++ ) { std::cout << it->first << std::endl; }*/ Struct2MainHeader( elements, headers ); Struct2SignalHeader( elements, headers ); // If there are any elements left, they were not recognized. if( elements.size() > 0 ) { std::stringstream ss; ss << "Warning: " << boost::lexical_cast( elements.size() ) << " invalid header elements:" << std::endl; std::map::iterator it = elements.begin( ); for( ; it!=elements.end(); it++ ) { ss << " " << it->first << std::endl; } mexPrintf( ss.str().c_str() ); } } catch( ... ) { // that's weird. if we don't catch and throw again here, matlab crashes. throw; } } #endif // GDF_MEX_H libgdf-release-0.1.3/matlab/gdf_reader.cpp000066400000000000000000000573621223711576300204320ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #include "gdf_mex.h" #include "matlab_tools/mxStructAccess.h" #include #include #include #include #define VERBOSE using namespace std; // Calling options: // [s,h,e] = mex_reader( 'file.gdf', 'option', value, ... ); #define OPTION_MULTIRATESIGNALS "DATAFORMAT" #define OPTION_MULTIRATESIGNALS_UPSAMPLE "MATRIX" #define OPTION_MULTIRATESIGNALS_GROUOP "GROUP" #define OPTION_MULTIRATESIGNALS_SINGLE "SINGLE" #define OPTION_UPSAMPLEMODE "UPSAMPLEMODE" #define OPTION_UPSAMPLEMODE_NEAREST "NEAREST" #define OPTION_UPSAMPLEMODE_LINEAR "LINEAR" #define OPTION_DATAFORMAT "DATAORIENTATION" #define OPTION_DATAFORMAT_ROW "ROW" #define OPTION_DATAFORMAT_COL1 "COL" #define OPTION_DATAFORMAT_COL2 "COLUMN" #define OPTION_CONVERTEVENTS "FORCEMODE3EVENTS" enum eMultirateMode { MR_UPSAMPLE, MR_GROUP, MR_SINGLE }; enum eDataOrientation { DO_ROW, DO_COL }; enum eVerboseLevels { V_NONE = 0, V_CONSTRUCTOR_CALLS, V_FUNCTION_CALLS, V_FUNCTION_DETAILS, V_FUNCTION_LOOPS, V_ALL }; // =========================================================================== // =========================================================================== class Interpolator { public: void expand( double *data, size_t stride, size_t num_src_samples, size_t num_dst_samples ); virtual double interpolate( double d1, double d2, double ratio ) = 0; }; class InterpolatorNearest : public Interpolator { public: virtual double interpolate( double d1, double d2, double ratio ); }; class InterpolatorLinear : public Interpolator { public: virtual double interpolate( double d1, double d2, double ratio ); }; class InterpolatorDummy : public Interpolator { public: virtual double interpolate( double, double, double ) { throw std::invalid_argument( "Attempting to load multirate data in a matrix without upsampling. Either set UPSAMPLEMODE, or choose GROUP or SINGLE data output." ); } }; // =========================================================================== // =========================================================================== class CmexObject { public: CmexObject( size_t nlhs, mxArray *plhs[], size_t nrhs, const mxArray *prhs[] ); ~CmexObject( ); void execute( ); void getUpsampleData( gdf::Reader &reader ); void getGroupData( gdf::Reader &reader ); void getSingleData( gdf::Reader &reader ); void loadEvents( gdf::Reader &reader ); void constructHeader( gdf::Reader &reader ); void parseInputArguments( ); void verboseMessage( int level, std::string message ); private: size_t nlhs_, nrhs_; mxArray **plhs_; const mxArray **prhs_; string filename; eMultirateMode multirate_mode; Interpolator *interpolator; eDataOrientation data_orientation; bool convert_events; gdf::uint16 num_signals; gdf::uint64 num_records; gdf::uint32 max_rate; size_t num_samplerates; map< gdf::uint32, vector > signals_by_samplerate; vector samples_per_record; int verbose_level; }; // =========================================================================== // =========================================================================== void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { CmexObject mxo( nlhs, plhs, nrhs, prhs ); mxo.execute(); } // =========================================================================== // =========================================================================== CmexObject::CmexObject( size_t nlhs, mxArray *plhs[], size_t nrhs, const mxArray *prhs[] ) : verbose_level( V_NONE ) { using boost::numeric_cast; verboseMessage( V_CONSTRUCTOR_CALLS, "entering CmexObject::CmexObject( );"); interpolator = NULL; if (nrhs == 0) throw invalid_argument( "No input argument supplied :(" ); if( nlhs == 0 ) throw invalid_argument( "Nothing to do (no output arguments)" ); if( nlhs > 3 ) throw invalid_argument( "Don't know what to do (too many output arguments)" ); if( !mxIsChar(prhs[0]) ) throw invalid_argument( "Please supply a valid file name as first argument." ); // set defaults multirate_mode = MR_SINGLE; interpolator = new InterpolatorDummy( ); data_orientation = DO_COL; convert_events = false; nlhs_ = nlhs; plhs_ = plhs; nrhs_ = nrhs; prhs_ = prhs; parseInputArguments( ); verboseMessage( V_CONSTRUCTOR_CALLS, "leaving CmexObject::CmexObject( );"); } // =========================================================================== CmexObject::~CmexObject( ) { verboseMessage( V_CONSTRUCTOR_CALLS, "entering CmexObject::~CmexObject( );"); if( interpolator ) delete interpolator; verboseMessage( V_CONSTRUCTOR_CALLS, "leaving CmexObject::~CmexObject( );"); } // =========================================================================== void CmexObject::execute( ) { verboseMessage( V_FUNCTION_CALLS, "entering CmexObject::execute( );"); gdf::Reader reader; reader.enableCache( false ); reader.open( filename ); num_signals = reader.getMainHeader_readonly().get_num_signals(); num_records = reader.getMainHeader_readonly().get_num_datarecords(); verboseMessage( V_FUNCTION_DETAILS, "Number of data records: "+boost::lexical_cast( num_records ) ); if( num_signals > 0 ) { // === order signals by samplerate === samples_per_record.resize( num_signals ); for( gdf::uint16 i = 0; i < num_signals; i++ ) { gdf::uint32 sr = reader.getSignalHeader_readonly( i ).get_samples_per_record( ); samples_per_record[i] = sr; signals_by_samplerate[sr].push_back( i ); } num_samplerates = signals_by_samplerate.size( ); max_rate = (signals_by_samplerate.rbegin())->first; // map is supposed to be ordered //if( num_samplerates == 1 ) // multirate_mode = MR_UPSAMPLE; // override mode for unirate data // === get data === switch( multirate_mode ) { default: throw invalid_argument( " invalid multirate mode" ); break; case MR_UPSAMPLE: getUpsampleData( reader ); break; case MR_GROUP: getGroupData( reader ); break; case MR_SINGLE: getSingleData( reader ); break; } } else { plhs_[0] = mxCreateNumericMatrix( 0, 0, mxDOUBLE_CLASS, mxREAL ); } // === load events === if( nlhs_ > 2 ) { loadEvents( reader ); } // === construct header === if( nlhs_ > 1 ) { try { constructHeader( reader ); } catch( std::exception &e ) { mexPrintf( "Exception while constructing the header:\n%s\nThe header structure may be incomplete!\n", e.what() ); } } reader.close( ); verboseMessage( V_FUNCTION_CALLS, "leaving CmexObject::execute( );"); } // =========================================================================== void CmexObject::getUpsampleData( gdf::Reader &reader ) { verboseMessage( V_FUNCTION_CALLS, "entering CmexObject::getUpsampleData( );"); // construct output structure if( data_orientation == DO_ROW ) plhs_[0] = mxCreateNumericMatrix( num_signals, num_records*max_rate, mxDOUBLE_CLASS, mxREAL ); else if( data_orientation == DO_COL ) plhs_[0] = mxCreateNumericMatrix( num_records*max_rate, num_signals, mxDOUBLE_CLASS, mxREAL ); else throw invalid_argument( "Invalid data orientation in CmexObject::getUpsampleData()." ); double *data = mxGetPr( plhs_[0] ); // fill output structure with data for( gdf::uint64 r=0; rgetChannel( s )->getSamplePhys( n ); } else { size_t row = n + r * samples_per_record[s]; data[row+s*num_records*max_rate] = rec->getChannel( s )->getSamplePhys( n ); } } } } // interpolate signals with lower sampling rate by expanding partially // filled channels to the entire length for( gdf::uint16 s=0; sexpand( &data[s], num_signals, samples_per_record[s]*num_records, max_rate*num_records ); else interpolator->expand( &data[s*num_records*max_rate], 1, samples_per_record[s]*num_records, max_rate*num_records ); } } verboseMessage( V_FUNCTION_CALLS, "leaving CmexObject::getUpsampleData( );"); } // =========================================================================== void CmexObject::getGroupData( gdf::Reader &reader ) { verboseMessage( V_FUNCTION_CALLS, "entering CmexObject::getGroupData( );"); // construct output structure verboseMessage( V_FUNCTION_DETAILS, " constructing output structure."); plhs_[0] = mxCreateStructMatrix( num_samplerates, 1, 0, NULL ); mxAddField( plhs_[0], "channels" ); mxAddField( plhs_[0], "data" ); map< gdf::uint32, vector >::iterator it = signals_by_samplerate.begin( ); for( gdf::uint16 g=0; gsecond.front( ); // just one of the signals in this group size_t num_samples = samples_per_record[signal] * num_records; mxArray *datablock, *channel_table; if( data_orientation == DO_ROW ) { datablock = mxCreateNumericMatrix( it->second.size(), num_samples, mxDOUBLE_CLASS, mxREAL ); channel_table = mxCreateNumericMatrix( 1, it->second.size(), mxDOUBLE_CLASS, mxREAL ); } else if( data_orientation == DO_COL) { datablock = mxCreateNumericMatrix( num_samples, it->second.size(), mxDOUBLE_CLASS, mxREAL ); channel_table = mxCreateNumericMatrix( it->second.size(), 1, mxDOUBLE_CLASS, mxREAL ); } else throw invalid_argument( "Invalid data orientation in CmexObject::getGroupData()." ); mx::setField( plhs_[0], datablock, "data", g+1 ); mx::setField( plhs_[0], channel_table, "channels", g+1 ); for( size_t c=0; csecond.size(); c++ ) mxGetPr( channel_table )[c] = it->second[c] + 1; } // fill output structure with data verboseMessage( V_FUNCTION_DETAILS, " filling output structure." ); for( gdf::uint64 r=0; rfirst == 0 ) continue; double *data = mxGetPr( mx::getField( plhs_[0], "data", g+1 ) ); size_t sing = it->second.size( ); // signals in group for( size_t s=0; ssecond[s]; for( gdf::uint32 n=0; ngetChannel(signal)->getSamplePhys( n ); } else { size_t column = s; size_t row = n + r * samples_per_record[signal]; size_t rows = num_records * samples_per_record[signal]; data[row+column*rows] = rec->getChannel(signal)->getSamplePhys( n ); } } } } } verboseMessage( V_FUNCTION_CALLS, "leaving CmexObject::getGroupData( );"); } // =========================================================================== void CmexObject::getSingleData( gdf::Reader &reader ) { verboseMessage( V_FUNCTION_CALLS, "entering CmexObject::getSingleData( );"); // construct output structure plhs_[0] = mxCreateCellMatrix( num_signals, 1 ); for( gdf::uint16 s=0; sgetChannel(s)->getSamplePhys( n ); } } } verboseMessage( V_FUNCTION_CALLS, "leaving CmexObject::getSingleData( );"); } // =========================================================================== void CmexObject::loadEvents( gdf::Reader &reader ) { verboseMessage( V_FUNCTION_CALLS, "entering CmexObject::loadEvents( );"); plhs_[2] = mxCreateStructMatrix( 1, 1, 0, NULL ); gdf::EventHeader *evh = reader.getEventHeader( ); gdf::uint32 num_ev = evh->getNumEvents( ); std::vector ev3; gdf::uint8 mode = evh->getMode( ); if( convert_events && mode == 1 ) { ev3 = gdf::convertMode1EventsIntoMode3Events( evh->getMode1Events() ); mode = 3; num_ev = ev3.size( ); } switch( mode ) { default: throw invalid_argument( " Invalid Event Mode." ); case 1: { mx::setField( plhs_[2], NULL, GDFE_MODE ); mx::setField( plhs_[2], NULL, GDFE_FS ); mx::setField( plhs_[2], NULL, GDFE_POS ); mx::setField( plhs_[2], NULL, GDFE_TYP ); mx::setFieldNumeric( plhs_[2], evh->getSamplingRate( ), GDFE_FS ); mx::setFieldNumeric( plhs_[2], mode, GDFE_MODE ); mxArray *mxpos = mxCreateNumericMatrix( 1, num_ev, mxUINT32_CLASS, mxREAL ); mx::setField( plhs_[2], mxpos, GDFE_POS ); gdf::uint32 *positions= reinterpret_cast( mxGetData( mxpos ) ); mxArray *mxtyp = mxCreateNumericMatrix( 1, num_ev, mxUINT16_CLASS, mxREAL ); mx::setField( plhs_[2], mxtyp, GDFE_TYP ); gdf::uint16 *types= reinterpret_cast( mxGetData( mxtyp ) ); for( gdf::uint32 e=0; egetEvent( e, event ); positions[e] = event.position; types[e] = event.type; } } break; case 3: { if( !convert_events ) ev3 = evh->getMode3Events( ); mx::setField( plhs_[2], NULL, GDFE_MODE ); mx::setField( plhs_[2], NULL, GDFE_FS ); mx::setField( plhs_[2], NULL, GDFE_POS ); mx::setField( plhs_[2], NULL, GDFE_TYP ); mx::setField( plhs_[2], NULL, GDFE_3_CHA ); mx::setField( plhs_[2], NULL, GDFE_3_DUR ); mx::setFieldNumeric( plhs_[2], evh->getSamplingRate( ), GDFE_FS ); mx::setFieldNumeric( plhs_[2], mode, GDFE_MODE ); mxArray *mxpos = mxCreateNumericMatrix( 1, num_ev, mxUINT32_CLASS, mxREAL ); mx::setField( plhs_[2], mxpos, GDFE_POS ); gdf::uint32 *positions= reinterpret_cast( mxGetData( mxpos ) ); mxArray *mxtyp = mxCreateNumericMatrix( 1, num_ev, mxUINT16_CLASS, mxREAL ); mx::setField( plhs_[2], mxtyp, GDFE_TYP ); gdf::uint16 *types= reinterpret_cast( mxGetData( mxtyp ) ); mxArray *mxcha = mxCreateNumericMatrix( 1, num_ev, mxUINT16_CLASS, mxREAL ); mx::setField( plhs_[2], mxcha, GDFE_3_CHA ); gdf::uint16 *channels= reinterpret_cast( mxGetData( mxcha ) ); mxArray *mxdur = mxCreateNumericMatrix( 1, num_ev, mxUINT32_CLASS, mxREAL ); mx::setField( plhs_[2], mxdur, GDFE_3_DUR ); gdf::uint32 *durations= reinterpret_cast( mxGetData( mxdur ) ); for( gdf::uint32 e=0; egetEvent( e, event ); event = ev3[e]; positions[e] = event.position; types[e] = event.type; channels[e] = event.channel; durations[e] = event.duration; } } break; } verboseMessage( V_FUNCTION_CALLS, "leaving CmexObject::loadEvents( );"); } // =========================================================================== void CmexObject::constructHeader( gdf::Reader &reader ) { verboseMessage( V_FUNCTION_CALLS, "entering CmexObject::constructHeader( );"); plhs_[1] = constructHeaderStruct( num_signals ); Header2Struct( plhs_[1], &reader.getHeaderAccess_readonly() ); verboseMessage( V_FUNCTION_CALLS, "leaving CmexObject::constructHeader( );"); } // =========================================================================== void CmexObject::parseInputArguments( ) { verboseMessage( V_FUNCTION_CALLS, "entering CmexObject::parseInputArguments( );"); using boost::lexical_cast; filename = mx::getString( prhs_[0] ); size_t n = 0; while( ++n < nrhs_ ) // yes, it's meant to start with 1 { try { string opt = mx::getString( prhs_[n], mx::TOUPPER ); if( opt == OPTION_UPSAMPLEMODE ) { n++; if( n >= nrhs_ ) throw invalid_argument( " No Upsamplemode specified." ); string arg = mx::getString( prhs_[n], mx::TOUPPER ); if( arg == OPTION_UPSAMPLEMODE_NEAREST ) { delete interpolator; interpolator = new InterpolatorNearest( ); } else if( arg == OPTION_UPSAMPLEMODE_LINEAR ) { delete interpolator; interpolator = new InterpolatorLinear( ); } else throw invalid_argument( " Unknown Upsamplemode: '"+arg+"'" ); } else if( opt == OPTION_MULTIRATESIGNALS ) { n++; if( n >= nrhs_ ) throw invalid_argument( " No Multirate mode specified." ); string arg = mx::getString( prhs_[n], mx::TOUPPER ); if( arg == OPTION_MULTIRATESIGNALS_UPSAMPLE ) multirate_mode = MR_UPSAMPLE; else if( arg == OPTION_MULTIRATESIGNALS_GROUOP ) multirate_mode = MR_GROUP; else if( arg == OPTION_MULTIRATESIGNALS_SINGLE ) multirate_mode = MR_SINGLE; else throw invalid_argument( " Unknown Multirate mode: '"+arg+"'" ); } else if( opt == OPTION_DATAFORMAT ) { n++; if( n >= nrhs_ ) throw invalid_argument( " No Data Orientation specified." ); string arg = mx::getString( prhs_[n], mx::TOUPPER ); if( arg == OPTION_DATAFORMAT_COL1 ) data_orientation = DO_COL; else if( arg == OPTION_DATAFORMAT_COL2 ) data_orientation = DO_COL; else if( arg == OPTION_DATAFORMAT_ROW ) data_orientation = DO_ROW; else throw invalid_argument( " Unknown Data Orientation: '"+arg+"'" ); } else if( opt == OPTION_CONVERTEVENTS ) { convert_events = true; } } catch( mx::Exception &e ) { throw invalid_argument( " While parsing argument "+lexical_cast(n+1)+": "+e.what() ); } } verboseMessage( V_FUNCTION_CALLS, "leaving CmexObject::parseInputArguments( );"); } // =========================================================================== void CmexObject::verboseMessage( int level, std::string message ) { #ifdef VERBOSE if( level <= verbose_level ) mexPrintf( ( "%d : " + message + "\n").c_str(), level ); #endif //VERBOSE } // =========================================================================== // =========================================================================== void Interpolator::expand( double *data, size_t stride, size_t num_src_samples, size_t num_dst_samples ) { using boost::numeric_cast; cout << "expanding: " << num_src_samples << " ==> " << num_dst_samples << endl; if( num_dst_samples == 0 ) throw invalid_argument( "num_dst_samples is 0." ); size_t pwrite = (num_dst_samples-1)*stride; size_t n=num_dst_samples; do { n--; double src = numeric_cast(n)*numeric_cast(num_src_samples)/numeric_cast(num_dst_samples); if( src > n ) throw logic_error( "Interpolation algorithm does not work!" ); size_t m = numeric_cast(floor(src)); double ratio = src-m; double d1 = data[m*stride]; double d2; if( m >= num_src_samples-1 ) d2 = d1; // boundary condition: assuming last sample repeats at the end of the signal else d2 = data[(m+1)*stride]; data[pwrite] = interpolate( d1, d2, ratio ); pwrite-=stride; } while( n>0 ); } // =========================================================================== double InterpolatorNearest::interpolate( double d1, double d2, double ratio ) { if( ratio >= 0.5 ) return d2; return d1; } // =========================================================================== double InterpolatorLinear::interpolate( double d1, double d2, double ratio ) { return d1+(d2-d1)*ratio; } // =========================================================================== // =========================================================================== libgdf-release-0.1.3/matlab/gdf_reader.m000066400000000000000000000031101223711576300200620ustar00rootroot00000000000000 % function [SIGNALS, HEADER, EVENTS] = gdf_reader( FILENAME, OPTION, VALUE, ... ) % % Load GDF files. % % Input Arguments: % % FILENAME: Full pathname of the file to load (including extension) % % Output Arguments: % % SIGNALS: Contains all signals (channels) stored in the GDF file. % The output format (cell array, matrix) can be changed % with the "MULTIRATESIGNALS" option. % % HEADER: Header Structure that contains all Meta-Information % % EVENTS: Event Structure % % OPTIONS: Options are provided as Option-Value pairs. % "DATAFORMAT" possible values: % "MATRIX" Signals are arranged in a matrix. To use this format with multirate % data, "UPSAMPLEMODE" must be specified. This causes all signals to % be upsampled to the highest sampling rate in the file. % "SINGLE" (default) A cell array is returned, that contains each signal % as a separate vector. % "GROUP" All signals with the same sampling rates are grouped % into matrices, which are returned in a cell array. % % "UPSAMPLEMODE" determines how upsampling of multirate data is performed % when "DATAFORMAT" is set to "MATRIX". % "NEAREST" Nearest Neighbor interpolation % "LINEAR" Linear Interpolation % % "DATAORIENTATION" wether channels should be arranged in rows or columns % "COL" (default) each signal is a column vector. % "ROW" each signal is a row vector. % % "FORCEMODE3EVENTS" events are converted to mode 3. libgdf-release-0.1.3/matlab/gdf_writer.cpp000066400000000000000000000316061223711576300204750ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #include "gdf_mex.h" #include "matlab_tools/InstanceManager.h" #include "matlab_tools/Commands.h" #include "matlab_tools/mxStructAccess.h" #include #include #include "math.h" using namespace std; #ifndef trunc inline double trunc( const double a ) { return floor( a ); } #endif #ifdef _WIN32 inline bool isfinite( const double a ) { return _finite( a ); } #endif // =================================================================================================== // Object Interface to mex // =================================================================================================== class CmexObject { public: CmexObject( ); ~CmexObject( ); void execute( size_t nlhs, mxArray *plhs[], size_t nrhs, const mxArray *prhs[] ); static CmexObject &getInstance( ) { return instance; } InstanceManager writers; CommandManager commands; private: static CmexObject instance; }; // =================================================================================================== // Commands // =================================================================================================== class CMD_init : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_clear : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_clearall : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_getheader : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_setheader : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_createsignal : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_newsignal : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_recduration : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_eventconfig : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_addsample : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_addrawsample : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_addsamplevector : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_blitsamples : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_blitrawsamples : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_mode1event : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_mode3event : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_open : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; class CMD_close : public Command { void execute( mxArray *plhs[], const mxArray *prhs[] ); }; // =================================================================================================== // mexFunction // =================================================================================================== CmexObject CmexObject::instance; void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { CmexObject::getInstance( ).execute( nlhs, plhs, nrhs, prhs ); } // =================================================================================================== // CmexObject Definition // =================================================================================================== CmexObject::CmexObject( ) { commands.registerCommand( "Init", new CMD_init( ), 1, 0 ); commands.registerCommand( "Clear", new CMD_clear( ), 0, 1 ); commands.registerCommand( "Clear All", new CMD_clearall( ), 0, 0 ); commands.registerCommand( "CreateSignal", new CMD_createsignal( ), 0, 2 ); commands.registerCommand( "NewSignal", new CMD_newsignal( ), 1, 3 ); commands.registerCommand( "Open", new CMD_open( ), 0, 2 ); commands.registerCommand( "Close", new CMD_close( ), 0, 1 ); commands.registerCommand( "GetHeader", new CMD_getheader( ), 1, 1 ); commands.registerCommand( "SetHeader", new CMD_setheader( ), 0, 2 ); commands.registerCommand( "RecordDuration", new CMD_recduration( ), 0, 2 ); commands.registerCommand( "EventConfig", new CMD_eventconfig( ), 0, 3 ); commands.registerCommand( "AddSample", new CMD_addsample( ), 0, 3 ); commands.registerCommand( "AddRawSample", new CMD_addrawsample( ), 0, 3 ); commands.registerCommand( "AddVecSample", new CMD_addsamplevector( ), 0, 3 ); commands.registerCommand( "BlitSamples", new CMD_blitsamples( ), 0, 3 ); commands.registerCommand( "BlitRawSamples", new CMD_blitrawsamples( ), 0, 3 ); commands.registerCommand( "Mode1Ev", new CMD_mode1event( ), 0, 3 ); commands.registerCommand( "Mode3Ev", new CMD_mode3event( ), 0, 5 ); } CmexObject::~CmexObject( ) { } void CmexObject::execute( size_t nlhs, mxArray *plhs[], size_t nrhs, const mxArray *prhs[] ) { if( nrhs < 1 ) throw std::invalid_argument( "Expecting at least one argument." ); if( !mxIsChar(prhs[0]) ) throw std::invalid_argument( "First argument must be a command (string)." ); char *command; command = new char[32]; if( mxGetString( prhs[0], command, 32 ) != 0 ) throw std::invalid_argument( "Unknown problem with command string." ); commands.execute( command, nlhs, plhs, nrhs-1, prhs+1 ); delete[] command; } // =================================================================================================== // Command Definitions // =================================================================================================== void CMD_init::execute( mxArray *plhs[], const mxArray ** /*prhs*/ ) { size_t handle = CmexObject::getInstance().writers.newInstance( ); plhs[0] = mxCreateNumericMatrix( 1, 1, mxUINT64_CLASS, mxREAL ); *reinterpret_cast(mxGetData( plhs[0] )) = handle; } void CMD_clear::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); CmexObject::getInstance().writers.remove( handle ); } void CMD_clearall::execute( mxArray ** /*plhs*/, const mxArray ** /*prhs*/ ) { CmexObject::getInstance().writers.clear( ); } void CMD_getheader::execute( mxArray *plhs[], const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); plhs[0] = constructHeaderStruct( w->getNumSignals( ) ); Header2Struct( plhs[0], &w->getHeaderAccess_readonly() ); } void CMD_setheader::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); Struct2Header( prhs[1], &w->getHeaderAccess( ) ); } void CMD_createsignal::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); size_t channel = mx::getNumeric( prhs[1] ); if( channel < 1 ) throw std::invalid_argument( "Channel index must be >= 1." ); w->createSignal( channel - 1, true ); } void CMD_newsignal::execute( mxArray *plhs[], const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::uint32 type = mx::getNumeric( prhs[1] ); gdf::uint32 fs = mx::getNumeric( prhs[2] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); size_t channel = w->getFirstFreeSignalIndex( ); w->createSignal( channel, true ); plhs[0] = mxCreateNumericMatrix( 1, 1, mxUINT64_CLASS, mxREAL ); *reinterpret_cast(mxGetData( plhs[0] )) = channel + 1; w->getSignalHeader(channel).set_datatype( type ); w->getSignalHeader(channel).set_samplerate( fs ); } void CMD_recduration::execute( mxArray ** /*plhs[]*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); double recdur = mx::getNumeric( prhs[1] ); if( recdur == 0 || !isfinite(recdur) ) w->getHeaderAccess( ).enableAutoRecordDuration( ); else { gdf::uint32 num = boost::numeric_cast( trunc(recdur) ); gdf::uint32 den = 1; while( recdur*den - num != 0 ) { cout << num << "/" << den << endl; den *= 10; num = boost::numeric_cast( trunc(recdur*den) ); } w->getHeaderAccess( ).setRecordDuration( num, den ); } } void CMD_eventconfig::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); gdf::uint8 mode = mx::getNumeric( prhs[1] ); gdf::float32 fs = mx::getNumeric( prhs[2] ); w->setEventMode( mode ); w->setEventSamplingRate( fs ); } void CMD_addsample::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); size_t channel_idx = mx::getNumeric( prhs[1] ); double value = mx::getNumeric( prhs[2] ); w->addSamplePhys( channel_idx-1, value ); } void CMD_addrawsample::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); size_t channel_idx = mx::getNumeric( prhs[1] ); double value = mx::getNumeric( prhs[2] ); w->addSampleRaw( channel_idx-1, value ); } void CMD_addsamplevector::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); size_t first_channel = mx::getNumeric( prhs[1] ) - 1; std::vector vals = mx::getNumericArray( prhs[2] ); for( size_t i=0; iaddSamplePhys( first_channel+i, vals[i] ); } void CMD_blitsamples::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); size_t channel_idx = mx::getNumeric( prhs[1] ); std::vector vals = mx::getNumericArray( prhs[2] ); w->blitSamplesPhys( channel_idx-1, vals ); } void CMD_blitrawsamples::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); size_t channel_idx = mx::getNumeric( prhs[1] ); std::vector vals = mx::getNumericArray( prhs[2] ); w->blitSamplesRaw( channel_idx-1, vals ); } void CMD_mode1event::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); gdf::uint32 pos = mx::getNumeric( prhs[1] ); gdf::uint16 type = mx::getNumeric( prhs[2] ); w->addEvent( pos, type ); } void CMD_mode3event::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); gdf::uint32 pos = mx::getNumeric( prhs[1] ); gdf::uint16 type = mx::getNumeric( prhs[2] ); gdf::uint16 chan = mx::getNumeric( prhs[3] ); gdf::uint32 dur = mx::getNumeric( prhs[4] ); w->addEvent( pos, type, chan, dur ); } void CMD_open::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); std::string filename = mx::getString( prhs[1] ); w->open( filename ); } void CMD_close::execute( mxArray ** /*plhs*/, const mxArray *prhs[] ) { size_t handle = mx::getNumeric( prhs[0] ); gdf::Writer *w = CmexObject::getInstance().writers.get( handle ); w->close( ); } libgdf-release-0.1.3/matlab/gdf_writer.m000066400000000000000000000040631223711576300201440ustar00rootroot00000000000000% function [VAROUT] = gdf_writer( COMMAND, VARIN ) % % Create GDF files. % Number of Inputs and Outputs depends on the Command. % % Commands: % % INIT: create a new writer instance % handle = gdf_writer( 'Init' ); % % CLEAR: remove writer instance % handle = gdf_writer( 'Clear', handle ); % % CLEAR ALL: remove all writer instances % handle = gdf_writer( 'Clear All' ); % % OPEN: create a new writer instance % handle = gdf_writer( 'Open', handle, filename ); % % CLOSE: create a new writer instance % handle = gdf_writer( 'Close', handle ); % % GETHEADER: returns current header struct % header = gdf_writer( 'GetHeader', handle ); % % SETHEADER: set header struct % gdf_writer( 'SetHeader', handle, header ); % % CREATESIGNAL: create a new signal (with specified index) % gdf_writer( 'CreateSignal', handle, index ); % % NEWSIGNAL: create a new signal (with first free index, which is returned) % index = gdf_writer( 'NewSignal', handle, datatype, samplerate ); % % RECORDDURATION: set record duration % gdf_writer( 'RecordDuration', handle, seconds ); % % EVENTCONFIG: set event configuration % gdf_writer( 'EventConfig', handle, mode, samplerate ); % % ADDSAMPLE: write a sample (physical units) % gdf_writer( 'AddSample', handle, channel, value ); % % ADDRAWSAMPLE: write a sample (raw) % gdf_writer( 'AddRawSample', handle, channel, value ); % % ADDVECSAMPLE: write a sample vector (physical units, multiple channels) % gdf_writer( 'AddVecSample', handle, first_channel, values[] ); % % BLITSAMPLES: write multiple samples (physical units, one channel) % gdf_writer( 'BlitSamples', handle, channel, values[] ); % % BLITRAWSAMPLES: write multiple samples (physical units, one channel) % gdf_writer( 'BlitRawSamples', handle, channel, values[] ); % % MODE1EV: write a mode 1 event % gdf_writer( 'Mode1Ev', handle, timestamp, eventcode ); % % MODE3EV: write a mode 3 event % gdf_writer( 'Mode3Ev', handle, timestamp, eventcode, channel, duration ); % libgdf-release-0.1.3/matlab/matlab_tools/000077500000000000000000000000001223711576300203075ustar00rootroot00000000000000libgdf-release-0.1.3/matlab/matlab_tools/Commands.h000066400000000000000000000050241223711576300222220ustar00rootroot00000000000000// This file 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 3 of // the License, or (at your option) any later version. // // This file is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __COMMANDS_H_INCLUDED__ #define __COMMANDS_H_INCLUDED__ #include #include #include "mex.h" class Command { public: virtual void execute( mxArray *plhs[], const mxArray *prhs[] ) = 0; void operator()( size_t nlhs, mxArray *plhs[], size_t nrhs, const mxArray *prhs[] ) { if( m_nlhs != nlhs ) throw std::invalid_argument( "Invalid number of output arguments." ); if( m_nrhs != nrhs ) throw std::invalid_argument( "Invalid number of input arguments." ); execute( plhs, prhs ); } private: friend class CommandManager; void setNP( size_t nlhs, size_t nrhs) { m_nlhs = nlhs; m_nrhs = nrhs; } size_t m_nlhs, m_nrhs; }; class CommandManager { public: CommandManager( ) { } virtual ~CommandManager( ) { std::map< std::string, Command* >::iterator it = commands.begin( ); for( ; it != commands.end(); it++ ) delete it->second; } void registerCommand( const std::string cmdstr, Command * cmd, size_t nlhs, size_t nrhs ) { cmd->setNP( nlhs, nrhs ); commands[toUpper( cmdstr )] = cmd; } void execute( const std::string cmdstr, int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { std::map< std::string, Command* >::iterator it = commands.find( toUpper( cmdstr ) ); if( it == commands.end() ) throw std::invalid_argument( "Invalid command: "+toUpper( cmdstr ) ); (*it->second)( nlhs, plhs, nrhs, prhs ); } static std::string toUpper( const std::string str ) { std::string out( str ); for( size_t i=0; i commands; }; #endif // COMMANDS_H libgdf-release-0.1.3/matlab/matlab_tools/InstanceManager.h000066400000000000000000000036301223711576300235210ustar00rootroot00000000000000// This file 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 3 of // the License, or (at your option) any later version. // // This file is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __INSTANCEMANAGER_H_INCLUDED__ #define __INSTANCEMANAGER_H_INCLUDED__ #include #include #include template class InstanceManager { public: InstanceManager( ) { instances.clear( ); } virtual ~InstanceManager( ) { while( instances.size() > 0 ) { delete instances.begin()->second; instances.erase( instances.begin() ); } } bool checkHandle( size_t id ) { if( instances.find(id) == instances.end() ) return false; return true; } C *get( size_t i ) { if( !checkHandle(i) ) throw std::invalid_argument( "Invalid Handle." ); return instances[i]; } size_t newInstance( ) { size_t handle = rand( ); while( instances.find(handle) != instances.end() ) { handle = rand( ); } instances[handle] = new C( ); // accessing creates a new element in the map return handle; } void remove( size_t id ) { instances.erase( id ); } void clear( ) { instances.clear( ); } private: std::map instances; }; #endif // INSTANCEMANAGER_H libgdf-release-0.1.3/matlab/matlab_tools/String.h000066400000000000000000000057451223711576300217410ustar00rootroot00000000000000// This file 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 3 of // the License, or (at your option) any later version. // // This file is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef __STRING_H_INCLUDED__ #define __STRING_H_INCLUDED__ #include class String { public: String( ) { len = 0; str = new char[1]; str[0] = 0; } String( const char *ch ) { len = 0; while( ch[len] != 0 ) { len++; } str = new char[len+1]; for( size_t i=0; i other[n] ) return false; n++; } return len < other.len; } String substr( size_t start, size_t length ) { return String( &str[start], length ); } private: char *str; size_t len; }; String operator+( const String &a, const String &b ) { return String( a, b ); } String operator+( const char c[], const String &s ) { return String(c) + s; } std::ostream& operator<<( std::ostream& out, const String &s ) { return out << s.c_str(); } #endif // STRING_H libgdf-release-0.1.3/matlab/matlab_tools/mxStructAccess.h000066400000000000000000000553111223711576300234400ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #ifndef MXSTRUCTACCESS_H_INCLUDED #define MXSTRUCTACCESS_H_INCLUDED #include #include #include #include #include #include #include #include #include #include namespace mx { using namespace boost; enum StringConversion { TONORMAL, TOUPPER, TOLOWER }; std::string toUpper( const std::string str ) { std::string out( str ); for( size_t i=0; i( mxGetData(tmp) ) = value; setField( struc, tmp, access, index ); } void setFieldNumeric( mxArray *struc, double value, std::string access, size_t index = 1 ) { mxArray *tmp = mxCreateNumericMatrix( 1, 1, mxDOUBLE_CLASS, mxREAL ); *reinterpret_cast( mxGetData(tmp) ) = value; setField( struc, tmp, access, index ); } void setFieldNumeric( mxArray *struc, uint8_t value, std::string access, size_t index = 1 ) { mxArray *tmp = mxCreateNumericMatrix( 1, 1, mxUINT8_CLASS, mxREAL ); *reinterpret_cast( mxGetData(tmp) ) = value; setField( struc, tmp, access, index ); } void setFieldNumeric( mxArray *struc, uint16_t value, std::string access, size_t index = 1 ) { mxArray *tmp = mxCreateNumericMatrix( 1, 1, mxUINT16_CLASS, mxREAL ); *reinterpret_cast( mxGetData(tmp) ) = value; setField( struc, tmp, access, index ); } void setFieldNumeric( mxArray *struc, uint32_t value, std::string access, size_t index = 1 ) { mxArray *tmp = mxCreateNumericMatrix( 1, 1, mxUINT32_CLASS, mxREAL ); *reinterpret_cast( mxGetData(tmp) ) = value; setField( struc, tmp, access, index ); } void setFieldNumeric( mxArray *struc, int64_t value, std::string access, size_t index = 1 ) { mxArray *tmp = mxCreateNumericMatrix( 1, 1, mxINT64_CLASS, mxREAL ); *reinterpret_cast( mxGetData(tmp) ) = value; setField( struc, tmp, access, index ); } void setFieldNumeric( mxArray *struc, uint64_t value, std::string access, size_t index = 1 ) { mxArray *tmp = mxCreateNumericMatrix( 1, 1, mxUINT64_CLASS, mxREAL ); *reinterpret_cast( mxGetData(tmp) ) = value; setField( struc, tmp, access, index ); } std::string getString( const mxArray *field, StringConversion conv = TONORMAL ) { if( mxGetClassID(field) != mxCHAR_CLASS ) throw mx::Exception( "MATLAB Class is no character/string type" ); char *ch; ch = new char[2048]; if( mxGetString( field, ch, 2047 ) ) throw mx::Exception( "Error converting MATLAB string '"+std::string(ch)+"' (maybe too long?)." ); std::string str( ch ); delete[] ch; switch( conv ) { default: break; case TOUPPER: str = toUpper( str ); break; case TOLOWER: str = toLower( str ); break; } return str; } std::string getFieldString( const mxArray *struc, std::string access, size_t index = 1, StringConversion conv = TONORMAL ) { mxArray *field = getField( struc, access, index ); if( !field ) throw mx::Exception( "Field '"+access+"' does not exist." ); if( mxGetClassID(field) != mxCHAR_CLASS ) throw mx::Exception( "MATLAB Class is no character type" ); char *ch; ch = new char[2048]; if( mxGetString( field, ch, 2047 ) ) throw mx::Exception( "Error converting MATLAB string '"+std::string(ch)+"' (maybe too long?)." ); std::string str( ch ); delete[] ch; switch( conv ) { default: break; case TOUPPER: str = toUpper( str ); break; case TOLOWER: str = toLower( str ); break; } return str; } void getFieldString( char *dst, size_t maxN, const mxArray *struc, std::string access, size_t index = 1 ) { mxArray *field = getField( struc, access, index ); if( !field ) throw mx::Exception( "Field '"+access+"' does not exist." ); if( mxGetClassID(field) != mxCHAR_CLASS ) throw mx::Exception( "MATLAB Class is no character type" ); char *ch = new char[maxN+1]; if( mxGetString( field, ch, maxN+1 ) ) throw mx::Exception( "Error converting MATLAB string '"+std::string(ch)+"' (maybe too long?)." ); memcpy( dst, ch, maxN ); delete[] ch; } template T getFieldNumeric( const mxArray *struc, std::string access, size_t index = 1 ) { using boost::numeric_cast; using boost::numeric::bad_numeric_cast; using boost::numeric::negative_overflow; using boost::numeric::positive_overflow; mxArray *field = getField( struc, access, index ); if( !field ) throw mx::Exception( "Field '"+access+"' does not exist." ); try { switch( mxGetClassID( field ) ) { default : throw mx::Exception( "Unknown MATLAB class." ); break; case mxFUNCTION_CLASS: case mxCELL_CLASS : case mxSTRUCT_CLASS: case mxLOGICAL_CLASS: case mxCHAR_CLASS: throw mx::Exception( "MATLAB class is not numeric." ); break; case mxDOUBLE_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxSINGLE_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxINT8_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxUINT8_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxINT16_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxUINT16_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxINT32_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxUINT32_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxINT64_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxUINT64_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; } } catch(bad_numeric_cast& e) { throw mx::Exception( std::string(e.what()) + " while converting '"+access+"'." ); } } template void getFieldNumericArray( T *dst, size_t num_el, const mxArray *struc, std::string access, size_t index = 1 ) { using boost::numeric_cast; using boost::numeric::bad_numeric_cast; using boost::numeric::negative_overflow; using boost::numeric::positive_overflow; mxArray *field = getField( struc, access, index ); if( !field ) throw mx::Exception( "Field '"+access+"' does not exist." ); if( mxGetM(field) * mxGetN(field) != num_el ) throw mx::Exception( "'"+access+"' wrong number of elements." ); try { for( size_t n=0; n( reinterpret_cast(mxGetData(field))[n] ); break; case mxSINGLE_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxINT8_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxUINT8_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxINT16_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxUINT16_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxINT32_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxUINT32_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxINT64_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxUINT64_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; } } } catch(bad_numeric_cast& e) { throw mx::Exception( std::string(e.what()) + " while converting '"+access+"'." ); } } template T getNumeric( const mxArray *field ) { using boost::numeric_cast; using boost::numeric::bad_numeric_cast; try { switch( mxGetClassID( field ) ) { default : throw mx::Exception( "Unknown MATLAB class: "+std::string(mxGetClassName(field)) ); break; case mxFUNCTION_CLASS: case mxCELL_CLASS : case mxSTRUCT_CLASS: case mxLOGICAL_CLASS: case mxCHAR_CLASS: throw mx::Exception( "MATLAB class is not numeric." ); break; case mxDOUBLE_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxSINGLE_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxINT8_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxUINT8_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxINT16_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxUINT16_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxINT32_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxUINT32_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxINT64_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; case mxUINT64_CLASS: return numeric_cast( *reinterpret_cast(mxGetData(field)) ); break; } } catch(bad_numeric_cast& e) { throw mx::Exception( e.what() ); } } template void getNumericArray( T *dst, size_t num_el, const mxArray *field ) { using boost::numeric_cast; using boost::numeric::bad_numeric_cast; if( mxGetM(field) * mxGetN(field) != num_el ) throw mx::Exception( "wrong number of elements." ); try { for( size_t n=0; n( reinterpret_cast(mxGetData(field))[n] ); break; case mxSINGLE_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxINT8_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxUINT8_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxINT16_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxUINT16_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxINT32_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxUINT32_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxINT64_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; case mxUINT64_CLASS: dst[n] = numeric_cast( reinterpret_cast(mxGetData(field))[n] ); break; } } } catch(bad_numeric_cast& e) { throw mx::Exception( e.what() ); } } template std::vector getNumericArray( const mxArray *field ) { size_t N = mxGetNumberOfElements( field ); std::vector vec; vec.resize( N ); getNumericArray( &vec[0], N, field ); return vec; } std::map getFieldRecursive( const mxArray *struc, std::string prefix = "" ) { std::map elements; if( !mxIsStruct( struc ) ) return elements; size_t num_el = mxGetNumberOfElements( struc ); size_t num_fl = mxGetNumberOfFields( struc ); for( size_t el=0; el 1 ) fullname = fullname + "(" + lexical_cast(el) + ")"; if( prefix != "" || num_el > 1 ) fullname = fullname + "."; fullname = fullname + mxGetFieldNameByNumber( struc, fl ); mxArray *field = mxGetFieldByNumber( struc, el, fl ); if( field ) { if( mxIsStruct(field) ) { std::map tmp = getFieldRecursive( field, fullname ); elements.insert( tmp.begin(), tmp.end() ); } else elements[fullname] = field; } } } return elements; } } void mx::setField( mxArray *struc, mxArray *value, std::string access, size_t index ) { using boost::lexical_cast; if( !mxIsStruct( struc ) ) throw mx::Exception( "setField: mxArray is not a struct." ); if( index > mxGetNumberOfElements( struc ) || index < 1 ) throw mx::Exception( "setField: index out of bounds." ); std::string fieldname; size_t field_index; bool have_subfields; // first test if there are any subfields to process size_t punkt = access.find( '.' ); if( punkt == std::string::npos ) { fieldname = access; have_subfields = false; } else { fieldname = access.substr( 0, punkt ); have_subfields = true; } // now test if we want to access an array element size_t ar1 = fieldname.find( '(' ); size_t ar2 = fieldname.find( ')' ); if( ar1 != std::string::npos && ar2 != std::string::npos ) { field_index = lexical_cast( fieldname.substr( ar1+1, ar2-ar1-1 ) ); if( field_index < 1 ) throw mx::Exception( "setField: "+fieldname+" index out of bounds." ); fieldname = fieldname.substr( 0, ar1 ); } else if( ar1 == std::string::npos && ar2 == std::string::npos ) field_index = 1; else throw mx::Exception( "setField: bracket error." ); mxArray *field = mxGetField( struc, index-1, fieldname.c_str() ); if( have_subfields ) { // if field does not exist, add and initialize as new substruct if( !field ) { mxAddField( struc, fieldname.c_str() ); mxSetField( struc, index-1, fieldname.c_str(), mxCreateStructMatrix( field_index, 1, 0, NULL ) ); field = mxGetField( struc, index-1, fieldname.c_str() ); //std::cout << " creating subfield " << fieldname << " with " << field_index << " elements." << std::endl; } // do some error checking if( !mxIsStruct( field ) ) throw mx::Exception( "setField: "+fieldname+" is no structure." ); if( field_index > mxGetNumberOfElements( field ) ) throw mx::Exception( "setField: "+fieldname+"("+lexical_cast(field_index)+") index out of bounds." ); // recurse into subfield setField( field, value, access.substr( punkt+1, access.length( ) ), field_index ); } else { // add field if it does not exist if( !field ) { mxAddField( struc, fieldname.c_str() ); //std::cout << " creating field " << fieldname << "." << std::endl; } // set value of field mxSetField( struc, index-1, fieldname.c_str(), value ); } } mxArray *mx::getField( const mxArray *struc, std::string access, size_t index ) { using boost::lexical_cast; if( !mxIsStruct( struc ) ) throw mx::Exception( "getField: mxArray is not a struct." ); if( index > mxGetNumberOfElements( struc ) || index < 1 ) throw mx::Exception( "getField: index out of bounds." ); std::string fieldname; size_t field_index; bool have_subfields; // first test if there are any subfields to process size_t punkt = access.find( '.' ); if( punkt == std::string::npos ) { fieldname = access; have_subfields = false; } else { fieldname = access.substr( 0, punkt ); have_subfields = true; } // now test if we want to access an array element size_t ar1 = fieldname.find( '(' ); size_t ar2 = fieldname.find( ')' ); if( ar1 != std::string::npos && ar2 != std::string::npos ) { field_index = lexical_cast( fieldname.substr( ar1+1, ar2-ar1-1 ) ); if( field_index < 1 ) throw mx::Exception( "getField: "+fieldname+" index out of bounds." ); fieldname = fieldname.substr( 0, ar1 ); } else if( ar1 == std::string::npos && ar2 == std::string::npos ) field_index = 1; else throw mx::Exception( "getField: bracket error." ); mxArray *field = mxGetField( struc, index-1, fieldname.c_str() ); if( !field ) throw mx::Exception_nofield( "getField: field " + fieldname + " does not exist." ); if( have_subfields ) { // do some error checking if( !mxIsStruct( field ) ) throw mx::Exception( "getField: "+fieldname+" is no structure." ); if( field_index > mxGetNumberOfElements( field ) ) throw mx::Exception( "getField: "+fieldname+"("+lexical_cast(field_index)+") index out of bounds." ); //std::cout << "recursing into " << fieldname << "(" << lexical_cast(field_index) << ")" << std::endl; // recurse into subfield return getField( field, access.substr( punkt+1, access.length( ) ), field_index ); } else { //std::cout << "returning " << fieldname << std::endl; return mxGetField( struc, index-1, fieldname.c_str() ); } } #endif libgdf-release-0.1.3/python/000077500000000000000000000000001223711576300157105ustar00rootroot00000000000000libgdf-release-0.1.3/python/CMakeLists.txt000066400000000000000000000015271223711576300204550ustar00rootroot00000000000000 #set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/cmake ) find_package( Cython REQUIRED ) find_package( PythonLibs REQUIRED ) #find_package( Boost REQUIRED COMPONENTS system thread ) set( cython_source_path ${CMAKE_CURRENT_SOURCE_DIR} ) set( cython_target_path ${CMAKE_CURRENT_BINARY_DIR} ) set( cython_libname pylibgdf ) set( cython_pyx ${cython_source_path}/${cython_libname}.pyx ) set( cython_cpp ${cython_target_path}/${cython_libname}.cpp ) add_custom_command( OUTPUT ${cython_cpp} COMMAND ${CYTHON_EXECUTABLE} --cplus -o ${cython_cpp} ${cython_pyx} DEPENDS ${cython_pyx} ) include_directories( ../libgdf/include ${PYTHON_INCLUDE_DIRS} ) add_library( ${cython_libname} MODULE ${cython_cpp} ) target_link_libraries( ${cython_libname} GDF ) set_target_properties( ${cython_libname} PROPERTIES PREFIX "" ) libgdf-release-0.1.3/python/pylibgdf.pyx000066400000000000000000000164251223711576300202620ustar00rootroot00000000000000# distutils: language = c++ # distutils: libraries = tid tobicore tobiid boost_thread SDL from libcpp.vector cimport vector from libcpp.string cimport string from libcpp cimport bool import cython class WriterFlags: writer_ev_file = 0 writer_ev_memory = 1 writer_overwrite = 2 class Datatypes: s2n = {'invalid':0, 'int8':1, 'uint8':2, 'int16':3, 'uint16':4, 'int32':5, 'uint32':6, 'int64':7, 'uint64':8, 'float32':16, 'float64':17} n2s = dict((v,k) for k,v in Datatypes.s2n.iteritems()) string_encoding = 'ascii' ctypedef fused numeric: cython.int cython.uint # ================================================================================= # GDF::SignalHeader - C++ Interface cdef extern from "GDF/SignalHeader.h" namespace "gdf": cdef cppclass SignalHeader: SignalHeader( ) void set_label( string ) string get_label( ) void set_transducer_type( string ) string get_transducer_type( ) void set_physical_dimension( string ) string get_physical_dimension( ) void set_physical_dimension_code( unsigned short ) unsigned short get_physical_dimension_code( ) void set_physmin( double ) double get_physmin( ) void set_physmax( double ) double get_physmax( ) void set_digmin( double ) double get_digmin( ) void set_digmax( double ) double get_digmax( ) void set_lowpass( float ) float get_lowpass( ) void set_highpass( float ) float get_highpass( ) void set_notch( float ) float get_notch( ) void set_datatype( unsigned int ) unsigned int get_datatype( ) void set_sensor_pos( float ) float get_sensor_pos( ) void set_sensor_info( float ) float get_sensor_info( ) void set_samplerate( float ) float get_samplerate( ) # ================================================================================= # GDF::GDFHeaderAccess - C++ Interface cdef extern from "GDF/GDFHeaderAccess.h" namespace "gdf": ctypedef GDFHeaderAccess* const_GDFHeaderAccess_ptr "const gdf::GDFHeaderAccess*" cdef cppclass GDFHeaderAccess: size_t getNumSignals() SignalHeader& getSignalHeader( size_t ) SignalHeader& getSignalHeader_readonly( size_t ) SignalHeader& getMainHeader( size_t ) SignalHeader& getMainHeader_readonly( size_t ) vector[unsigned short] getSignalIndices( ) # HeaderWrapper - Python Class cdef class HeaderWrapper: '''class that provides access to GDF header information''' cdef GDFHeaderAccess *header_w # for writing cdef const_GDFHeaderAccess_ptr header_r # for reading def get_num_signals(self): return self.header_r.getNumSignals() def set_label(self, idx, label): self.header_w.getSignalHeader(idx).set_label( label.encode(string_encoding) ) def get_label(self, idx): return self.header_r.getSignalHeader_readonly(idx).get_label( ).strip().decode(string_encoding) def get_labels(self): indices = self.header_r.getSignalIndices() return [self.get_label(i) for i in indices] def set_datatype(self, idx, type): self.header_w.getSignalHeader(idx).set_datatype( Datatypes.s2n[type] ) def get_datatype(self, idx): return Datatypes.n2s[self.header_r.getSignalHeader_readonly(idx).get_datatype()] def get_datatypes(self): indices = self.header_r.getSignalIndices() return [self.get_datatype(i) for i in indices] # ================================================================================= # GDF::Writer - C++ interface cdef extern from "GDF/Writer.h" namespace "gdf": cdef cppclass Writer: Writer( ) except + void open( int ) except + #void open( string, int ) except + void close( ) except + bool isOpen( ) void setFilename( string ) except + void setMaxFullRecords( size_t ) except + bool createSignal( size_t, bool throwexc ) except + #void swapSignals( size_t, size_t ) #void relocateSignal( size_t, size_t ) size_t getFirstFreeSignalIndex( ) except + #void blitFromSerialBufferPhys( double*, vector[size_t] ) void addSamplePhys( size_t, double ) #template void addSampleRaw( const size_t channel_idx, const T value ) #void blitSamplesPhys( const size_t channel_idx, const float64 *values, size_t num ) void blitSamplesPhys( size_t, vector[double] values ) #template void blitSamplesRaw( const size_t channel_idx, const T *values, size_t num ) #template void blitSamplesRaw( const size_t channel_idx, const std::vector &values ) #void addRecord( Record *r ) #Record *acquireRecord( ) #void writeRecordDirect( Record *r ) void flush( ) void setEventMode( unsigned char mode ) except + void setEventSamplingRate( float ) except + #void addEvent( const Mode1Event &ev ); void addEvent( unsigned int, unsigned short ) #void addEvent( const Mode3Event &ev ); void addEvent( unsigned int, unsigned short, unsigned short, unsigned int ) #void addEvent( uint32 position, uint16 type, uint16 channel, float32 value ); GDFHeaderAccess &getHeaderAccess_readonly( ) GDFHeaderAccess &getHeaderAccess( ) #const MainHeader &getMainHeader_readonly( ) const #MainHeader &getMainHeader( ) #const SignalHeader &getSignalHeader_readonly( size_t idx ) const #inline size_t getNumSignals( ) const #SignalHeader &getSignalHeader( size_t ) # GDF::Writer - Python wrapper cdef class GDFWriter(HeaderWrapper): cdef Writer *thisptr def __cinit__( self ): self.thisptr = new Writer( ) self.header_w = &self.thisptr.getHeaderAccess() self.header_r = &self.thisptr.getHeaderAccess_readonly() def __dealloc__( self ): del self.thisptr def open( self, flags=WriterFlags.writer_ev_file ): self.thisptr.open( flags ) def isOpen(self): return self.thisptr.isOpen( ) def setFilename(self, filename): self.thisptr.setFilename( filename.encode(string_encoding) ) def setMaxFullRecords(self, number): self.thisptr.setMaxFullRecords( number ) def createSignal(self, index, throwexc = True): self.thisptr.createSignal( index, throwexc ) def getFirstFreeSignalIndex(self): return self.thisptr.getFirstFreeSignalIndex( ) def addSample( self, channel_idx, value ): self.thisptr.addSamplePhys( channel_idx, value ) def blitSamples( self, channel_idx, values ): self.thisptr.blitSamplesPhys( channel_idx, values ) def flush(self): self.thisptr.flush() def setEventMode( self, mode ): self.thisptr.setEventMode( mode ) def setEventSamplingRate( self, fs = -1 ): self.thisptr.setEventSamplingRate( fs ) def addEvent1(self, position, code): self.thisptr.addEvent( position, code ) def addEvent3( self, position, type, channel, duration ): self.thisptr.addEvent( position, type, channel, duration ) # ================================================================================= #EOF libgdf-release-0.1.3/sampledata/000077500000000000000000000000001223711576300165025ustar00rootroot00000000000000libgdf-release-0.1.3/sampledata/Header3Tag1.gdf000066400000000000000000000600321223711576300211550ustar00rootroot00000000000000GDF 2.10X X X  uint8 int8 uint16 int16 uint32 int32 uint64 int64 float32 float64 ào@ào@ào@ào@ào@ào@ào@ào@ào@ào@`ÀàÀàÁàÿÿÿÿÁào@À_@àÿï@Àÿß@àÿÿÿïAÀÿÿÿßAàÿÿÿÿAàÿÿÿÿAä›@ä›@ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀqfree text annotation at time 4.5 secfree text annotation at time 6.5 secfree text annotation at time 2.2 secLÌLLLÌLLLLLLL̘˜˜˜2111ÿÿÿÿD €@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@      @@@@‚€€€þÿÿÿ`Cl@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@SÓSSSÓSSSSSSSÓ¦¦¦¦NMMMÿÿÿÿ@D(‚@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@vövvvövvvvvvvöììììÚÙÙÙÿÿÿÿ€NDЉ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@      @@@@‚€€€þÿÿÿ`Cl@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@DÄDDDÄDDDDDDDĈˆˆˆÿÿÿÿîCÀ}@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@qñqqqñqqqqqqqñââââÆÅÅÅÿÿÿÿÀED¸ˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@PÐPPPÐPPPPPPPР   BAAAÿÿÿÿ D€@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@      @@@@‚€€€þÿÿÿ`Cl@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@      @@@@‚€€€þÿÿÿ`Cl@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@vövvvövvvvvvvöììììÚÙÙÙÿÿÿÿ€NDЉ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@PÐPPPÐPPPPPPPР   BAAAÿÿÿÿ D€@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@hèhhhèhhhhhhhèÐÐÐТ¡¡¡ÿÿÿÿ6DÀ†@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@      @@@@‚€€€þÿÿÿ`Cl@fæfffæfffffffæÌÌÌÌš™™™ÿÿÿÿ€2DP†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@IÉIIIÉIIIIIIIÉ’’’’&%%%ÿÿÿÿ€ÿCð@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@      @@@@‚€€€þÿÿÿ`Cl@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@      @@@@‚€€€þÿÿÿ`Cl@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@      @@@@‚€€€þÿÿÿ`Cl@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@fæfffæfffffffæÌÌÌÌš™™™ÿÿÿÿ€2DP†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@EÅEEEÅEEEEEEEÅŠŠŠŠÿÿÿÿ€ñC0~@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@      @@@@‚€€€þÿÿÿ`Cl@jêjjjêjjjjjjjêÔÔÔÔª©©©ÿÿÿÿ€9D0‡@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@LÌLLLÌLLLLLLL̘˜˜˜2111ÿÿÿÿD €@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@      @@@@‚€€€þÿÿÿ`Cl@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@QÑQQQÑQQQQQQQÑ¢¢¢¢FEEEÿÿÿÿÀ D¸@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@qñqqqñqqqqqqqñââââÆÅÅÅÿÿÿÿÀED¸ˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@      @@@@‚€€€þÿÿÿ`Cl@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@fæfffæfffffffæÌÌÌÌš™™™ÿÿÿÿ€2DP†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@EÅEEEÅEEEEEEEÅŠŠŠŠÿÿÿÿ€ñC0~@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@      @@@@‚€€€þÿÿÿ`Cl@vövvvövvvvvvvöììììÚÙÙÙÿÿÿÿ€NDЉ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@      @@@@‚€€€þÿÿÿ`Cl@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@      @@@@‚€€€þÿÿÿ`Cl@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@AÁAAAÁAAAAAAAÁ‚‚‚‚ÿÿÿÿ€ãCp|@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@qñqqqñqqqqqqqñââââÆÅÅÅÿÿÿÿÀED¸ˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@      @@@@‚€€€þÿÿÿ`Cl@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@vövvvövvvvvvvöììììÚÙÙÙÿÿÿÿ€NDЉ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@MÍMMMÍMMMMMMMÍšššš6555ÿÿÿÿÀDØ€@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@bâbbbâbbbbbbbâÄÄÄÄŠ‰‰‰ÿÿÿÿ€+Dp…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@      @@@@‚€€€þÿÿÿ`Cl@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@€?libgdf-release-0.1.3/sampledata/MI128.gdf000066400000000000000000011147161223711576300177370ustar00rootroot00000000000000GDF 2.10X X X gdf by Simulink gdf_saver €eeg:C3 eeg:Cz eeg:C4 eog:L eog:R eog:C I¢­Ïo¦dÀ±ãÔÛXÀ¡ÙO£µaÀ-¶Eù2wdÀÌ$w‹œpaÀUýÜHó/lÀ/oÝñŸ`@v6¬^¤4a@•|6 g˜o@Ò{„ßõi@¿W‘ó€7d@¢¥¤›p@`À`À`À`À`À`ÀÀ_@À_@À_@À_@À_@À_@ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ éÝñøøêÛðô÷çãûû ïãþ îÖüùú ãÖôö åÖüñùßÖþûãÎûÿÖÐñúÚÈùûÑÕøþöàÓöë÷ÜÓëêñýÚÓìøõÞ×üûûÝÚûüÿêÖôæú àäéä÷òÝóêûåßôßúéËñåøÔÞåæóêÎóäø ÝÞúç÷ ãÏìèôÝÐíÞòüÙÐèàìùÖÔëáíã×çàê æÞëßì èáäÜêãÓæÒéáßèÕë ïáêåê ñÏîäëáÒëÛéäÓæÏèÿëãåÏå ÞëÜêÛçÖî ðÜçÔéèÖäÏé æÜãÜéñæèÈíûÓéÏðÞËÃÃãøÔÐÍãõáÖÕñ èÒÒûÕèÁþâɽùÏÆ® ôËȪ ëÅè¢ þÜä  þß̨Ûàž Ùܤøú ßð»úþîå¿èöüçÔù4ÒáûïàÛûó"ýüÝìî"ÿÏÕÝáð× ØÕ×ìÂÑÀËöÕëè»Ë3ö¨Î¸Ãÿ½ñϽ¹øãõÃÍôÕÁð±¸ÇÈΖ¯õÆåî°º1ðÐñ¯Â͡ʘ¯Ý¬»çž«ô¼ºï¡°é±Ûí—­ ×ÁЉ®ĺâ¦ä³ÕÖ“®ÖÃõµÇ´øæ­b¹è•ºß»±æ•°¶–Ö’©ˆŠð™µhÿ‘Ø¢¹Ì”Æð™µ³±ßß›¶AÖ˜Ò€³³œÊ覶1ÝØ°ºÆ¦'æÁÂH €áÆÍ¸„ÆâÛÌíðÕïÌÂâäìÖÝÐÓüÎä÷ÕúИ°åãõÓÖšÖôÑò·áßôÕÞÒ¶æàÓÝíýäØè¶ëéß(ÒäðÙáô¥úëæä¾ÑúîåâÐÎðØÞ5êèæÙá ø’øñ郆ÜèÃÙ ããìÓåDéÉïÏäè¾Úòâááàªìºæ(ÇÕ־߻ÎàÞñ+ãÇèÇêÙ¥ôÉì©«æøËð߯ò¾ì ÑÔîºíÑÏãüËôìäáÓõå¦ýÈõ×¼ÖöÀð&æçËôôîº ÕýîÐÛÎúëÜßþ"øÝåýâÍÿÁù5ì³ Û¤Åê â "óÎ ÝãíÝìÿÙ"÷ñëÜ Íì ñôêûúÜÒ$èï*ö(ø?.ý"ïIQÑÚVñ2!Ä_LEØ.ÈsùÊ¡d %¨v) ì'«wEÝ!—p7 ö*›m:ñ)¥f0å.¢` 0©Z?%×4¾V0þñ)¼C$ó5ÎGDÍ&Å3ð #Í&5ù:ñ,8 #ð$ä0ü(ý¼/ü ãê þ&" Ðàé#öóæ&/ø%ýÓ!6ÿó%1 ä/ñ ?ÿ ,D%ï .'ÿêþ$+ÿû0Ç$ðï )ñ ü- è.öþæDè$ÿðLÝ ùÁRÏ ÏÝ\ÇëÖ\Áïìm¿þäs¼öè¸ðâ n¬àÇc£ÌÒ]¢ ÜÏl¤Õåk¢ðØj© çÚø`¥æâúb¨Ý×÷f¨ùÉ×ð`§þÉÖíU§ ÒÞêR© äáçU­ëðêT¸ïåà]¹èôãF» þýèNà Òå[Ç âÞÚLà îáâJË åèÕCÊäçÓ:É ãåÒ=ÌáßËAÍÞäÈ1ÎìëÍ'ÒõÞÒ@ÛçìÇ/ÙöâÆ.à ìçÅ(âôíÇ,çûäÈ+ìóäÇ*í ñäÆ)ð ðéÂóøëÁ"÷öì¾õûâÁõ ìá¾öèç»øñéÁóä íè¿öê½ úí½ üí¹þïÁ ÿë¹ úç¶üôå¸ óëµ÷ ùçºü ùçºþ ÷æ¾öõâ±ð ëÛ¾ì æá¼à íÝÅã åÔÇàÙÜÉèáÙËãÝßÄè áÖËÝàÛÅßçØÉÞßäÂÓ êàÄâîàÅÜñàÉ×ðÞÃÛïä¾Ï ñÙÄÓêÝÅÛ èÓÄÖÛÜÆ× êßÈÜ òÝÆÕ íÚÉÌåÞÉÚ èÝÍÛï×ÏÝ çØÐÝ çÙÐÒäÚÏÕ èØÒÖãÙÒã äÐÖÞÜÓÍÒÚÔÖÐÞÚÖÜèÛØâ îÝÖÜ ëÖÖÐáÐÓÎý×ÑÕ×ùÛÔÖÝæÚ×Ù ìÙÖÈìÙÙØêÚÝÝ êÖÜÝ áÕÛÓ åÚÞÒ ëÔÞÚ ìØÜÖ é×âÜ èÕçÖ äÐãÔ ÛÓäÛàÌåÝÛÏå×àÙéÕ êØìß íÔíÛåØêÝäÓíÚÞÍîÛàÏñäæÊêÛøÙÕçàÿãØðäçÛó ðÛî îÜï îÜî ïÕÿâêÝäëØûë èÝýæóÙêìÕ ôîÕ ïêÏ ôÖÐ÷üÔÊâúõÒÖêü çÕîÿãÕâùÞÚôøÜÖçøãÙéøìÞ õúõ× óú çÖ ÜöâÖîô âß÷øïÛçòìØõò áÌ5õÒÒ?ëÜÒ>èâÒBèÜÒAþçüÕÑ<üäÛÐ?þèáÒ3öãíÝ-÷ãúã+ûæ ä$üå÷à#ôåðçøæûéöéüáíëõêóçûáüíîÝóê äØìé âß óééÝ ñêåà ïéåÝ íê âÕìèÚÝïé âÛòìÝ×òéÛÛïéÝÛüðé àÜùëçàÓõçãÕ×ûéå åáøãàïßëëóßüëàïèûéâ é÷ãã!æýñëàðååôßëÝãìÝíçäèÜñæååÜöëêèÙõôëêÞñòéëÜóóë åáëíæéØïïê âÞçãæåÚíðëßÚîýì äÝðüîèÙðøð ßÛï÷ñ àÒòññ×ÐèøîÓÕéïÙÛéöï à×èõòâÒìô ÝØíûôâ×ðú÷ÝÓì÷ÖÎëýóÖÓèýôÚÒê÷ô ØÔëòõ Û×ëöæÓè÷ àÙãõ ßÒìü÷ ßÓçýôàÝçúöó×ßòõ éØËêé æàÒýù ìàÖ ïÝÓ  ïãÐ  ôãÔóÜÉ÷ ìáÈþ ñÛÊõ íÙÈþ ëßÔÿñäÓúðâØúòÜÛ ðáÙÿûøÜàþðàÜùúñäâùòåã÷÷ãéöóÙçýó ê×êÿôçÚí óéßìÿô èàìþð îåñ ó îÛñ ñçÙòðéÞðïéßøñ ëã÷þí òáùìíãóì óÙø ííÚøì æ×øíàÝøíæÝú ëçáúêèÜüëâØüêàÛëìßøìçßùèàÝÿêáÝþëçàÿë ïãì ìãí êÞûúé éàýìíçýéùáî ðÜýë êáÿýíìàþÿèëÙêèÛúëñÞ ûôöãúôñàøõìÜ ü÷ âàüõãÞ ôõçÚ÷ó ìÞ ÷ôÞýõòàóìßýñ âÓùð ××÷ð ßÜóîç×ýðìÛýòðâÿôóàýöëÜþõçáôîÚüó èÞüò êÙóó í×õîÚûöòÚù÷ìÚôßßýùñ ááùöî éáýøñïÜúúòðÛøþôôÝûýóæÝûûòåÞõíòçàùüóðßùüõõÜóýõîÜùùôòâúûöõëøû÷ ÿéóðöûâïñó÷êëìóþàóôøöÞó÷ôâðù÷óåïôøùçñúûùåòôùøäîøûñÞêñùíäìõøöàíìøõéîùúûçîýüèæïøýæêéöòæðü÷÷æïõ÷ííñóûÛñüøæâò÷ ðãðõô îàëûóä×äôïýÚÙêöðþÜÙëøóÞÔëóñÛÜëíï áÖèðòÝØäôïÞÓâäîÞÕãðñäÛëíõ êØêø÷éÝæðùêÚíðþçÚçüûëÚéùýïßìðü îÕíóÿà׿íûäÓïñÚËéøþÖÊéù×Òé÷ßÐíøÚÉèóÿÎÈêíÿÏÊêòýÐÒé÷ÙÏëÿÕÕéôÛÑêíÖÕëû áÖìò åØçù âÔæõÞÔííÜÙçë ÜÔåìÿÖÞâ÷ýå׿çäÓèí ßÔèîÙ×çôßÕçíæÛçíñÞéëó׿ííÚèìñßæòìèãì ôíç÷ùåáìöèâð÷Þäéþ ëÚæçþ éÑãïþÿß×äîãÙçïãÞçí èáäïÿïÝéàðßèìõÞéø íãèòñÜìóãÚæëÝÙêí äÙîûÿãÞæóìàêî ðÛàßüæÛÑåôèÞçüðàê ðÜñ åÞäýàâìîÜäøéÛçñ éÜçñáÝßòûáÝèúÜÞãñüäÝéëìÛçîÿíâè÷üòàëöÿ ìãæíû îéèðûüâìíýñâìðúóÞíüüñÜðîû ëÜîèûìäîóúôâïöýñáñ÷øñäððùóâòñøîåííöòåòíö÷áòï÷ñÜòñöíÓööø ãÔñíó à×îñòìÕõóö èØõðôëÕôçóæØ÷óõïàúû÷øæøúö÷âûð÷íáõôô ëØòëô ç×õíôíÑúýø èÍøõ÷ æÐüòøèÞüö÷öàúÿ÷óäöèòøâúíõõÞñèñìÞìçðóÚôöôôÜþðööàüöõøâûïöùÝùóöóÞùðòôßöùóöÜ÷ñõòÚüóõ íÜüùö íÛùõõäàõìò çäôøó ïÝóôôïÛÿøðâ÷øõðáúýøêßöõó åãõøóòÞòøóôàõõõöæöüùùæïñôóæøÿ÷ ôâûúùÞýúüûßùøøýãøñõùãôýô ñâôöñïßûýôò×öôóëÜóòñõßøöòôáöýðêàóþòêâôùð ðÝñôð é×øõðß×ööïãÜôÿñéÜòþðàÛõóíØÝôöìÝÛôöì ãÛöûðèàõúñ ïäøúõïÞòýò âÝóýðÚØôøðÚÙðññ âÙöô àÙøÿôÜÙòüñÚ×úùôÖÙõöñÜÜïüï âÚóûð ÞÖöûõÝÚñÿóèÚùöåÛõü÷ãÚö÷ æØøö÷áØô÷àÙñößÖ÷ÿøÚ×ôüöÝÚô÷ àÕöõõÛÖïúóÜÙùùèØïó÷ àÒßóìÙÕíûàÓô ÙÖò ××í àÚð éÛêûþéÝïÿìÙñüäØèñö ßÖîüáÛèùùëÞêþúðÞïôûîÜëö÷êÛëòø êØëì÷ æ×îñü åÜûð ëÜüø íÝøè"ôÙèÕ4íÙáÇFæÛâÍTíÙåÆWçØÜ½IçÖ߯AãÙîÇ7äÛæÆ#áßìÒì×èÔ äØéì áÕìûøØÔòóÔÓòìÔÔúç××ø àÞ×ûÜßÙùÕäØý Óã×ÓâÐÑþÙÌûÏúÒÍÐüÓÏû ÉþÓÏÿÉ×ÐýÈý×ÖüÈàÛþ ÍçÚþÍéÚøË ëÜúÍìÛþÏæÕùÎûÚÒöÍÛÔöÍ ÞÚúÿÐ åÝ÷Ñ éàôÒéÜõÕßÛõýÕßÙòØ ÜÖöÿÝ àÙòþÜãÕøßþÙØôùÝÜØóÿàÞÜõã áÚ÷þçÛÜðúä áÝòè âÜòúë æÜîöéàÛäéæÝÙæïèØÛñíààóÿññáðûòöâïùôøßòþø óÜñùø òÞòþùöêîõú êïÿéñÿ èñûÿæîùþ éíøüëíýÿèñ ëìýý éìõþæêóûèïþêîÿëëýæìûÿüàîþóßêøýðäëþýôâëùþìÞïù ëàìûïÛîü åÛìùåÝïýëÜìøîÞñíÚò ãÛðÿåØð âÝíø åÝíù æáé÷îÜïüèÚëùâÝíöæßêòÿêàêùÿ ðÜëü èàê÷ý ðßîûïßêú ôáêòÿ õßëüþ õàê÷ü öÞìùþ ñáëòþñÜíøý ëÝåò÷îßèòù íàæñøñáèêøïâéêøòåèïøùäêòùúáìïü÷ÝèåøíÚïñüæÜóóîÝóôôÜïðþðáñêþõàíçýóÝîòÿ êÜðïÿïÜðïñßñôòáîñðáñéðÚññ çÚïç çÛîèÿìÝðéíÛðëæÞëîÿåÝíë æÞñå êÜðòëÚòñëÞôéêÜóîêáîòöÝñíìßïéíÛòó ãÝñïêÙóöëÚñðèÜñê ãÛïä àÝôñ êßñðîÛðííÚïëéÙòèèÛîììÝïðñßïç ïßçàÿ èáïíòßíêöÞôñ öÞôó òßôì îÞéáëßíæêÝðíåàíêéÞñïæÚîã ÞÛîé âÝòö çÙñæÿãÛñï á×ììûØÒêéøÔÐëçøÛÏìíøÚÒìê÷ÜÐïçøØÑíêôØÔñãöÚÚðéø ßÛïëö ÞÜêçñ ÞÞèåôãØíæö àØòñøÜ×óööÝØíìóáÙòñö áÙíëõâÚòôö ßáîòòëßõôô çÛñìò äÙôñôåÝñøò åÚñ÷ôÝÝïðï àÛôïó çÚòòñ êßôóóöàóòô íÞâíëßÝßûï èßçùðàéþ éáì åàí çßäýý éáâûúñâçÿîâæûûëßéýûëÝêüøíÜèøöíÛéøõìâìýõðãìüôñßîóññÜîÿðîÛðÿñ êÚðýñåÞðÿðìÝôóéÞòòïêÞóîçÚñþëßÒòíÜÖõîç×öÿïì×÷öí èÜ÷úíêÜøÿë èÛùì ìàôìôÚòúêüëÔóôåàØüôìáÝúïè çà ûñêÝñëëÜöí èÕïèÝÝ÷îåàöïíâüïñåþýëüÝûõêêØþõêÝØûóêÝÚÿûîÞØÿøïàÜüøíæÞþøðçÙôðßÝüþïäÛóæÛþþñ äÙýöñÞÙù÷î áÚýòê×ûþñîÛúûò÷ßöýòõäùøô ðâú÷õ èãÿüüïÞýïãõýçùèûãôé6óæîàD ùæãÞM#ãÙÜI$ÝÛâJ$ÜÏØ:üÛÏÙ2ðßËí$ ìÞÑý îÛÔðÖâ çØåø è×èí çÜïåôØó ÞìÙú ÙçÔõÎæÔùÎçÖù ÊêÕûÊ娸ÆàÚù ÄâÝûÅ êâú Æ îàûÈâÞýÈáÙû ÈßÚúÈæßøÈ òÞýÍ ïÛþ Î åÜü Î åàúÏçÝ÷ ÏãÜöÏâÛú ÓâØùÔÿàÚøÕçÚùÙæÛüÜ ëÛúÝ íÜý à ìÝú áéÝøãðÞùåîÝøãéØúæ àÒ÷æÔÓ÷æ×ÔõèÜÓø ìÜØ÷úì áÖøð ÝÔõîØÔõîÛ×öþñ éÚü ú åÙûø ßÖõüöÕÎðûóùËÒéìðþÕÎðûõÿÖÎ÷ùÕÏõüøÔÏñü÷ÖÒòõøÚÐðöûÿÚÖìüúìÛõÿñÚâîöåÙÔþõæÔÞÿÛÑÜ%ûÖÏÓ0îÇÖÊ-÷ÑÕÑ>ôÒÛÅ9ýâÛÄ(åÜÄâßÅ æÚÌ þßÙÇ æÝÍîÝÏêâÌþ ëåÕþ ëåÒð íãØ÷ïáÖòõÛÝùôÝàïóßãíìâäïíäåëðáåæèÜçëâÜëâçßïáðãíâóÜñà çÙðÝý áÖôåãÙ÷àèÙøÞæÚüß àØùÖÞÚúÞ ãàùÜÿìØþÚ ãÙÿØèØà åÚüÔþ èÙÿØ ãÞÛîÚÝèÜ×ñàÜ÷ßÕýóßÙþðáÒüòÞ ÜóÜá íàãøÜ ÖôãÙüã ÔóáÎÿìâ ØóÝ ÒñáÕ÷Ý ÚîÞÒìÞ Ðïæ×ýçÖýçÖ üçÕ$ÿåÚ ýæÒøäÚÿõàÝÿóàÜÿõÞÙëáýÚÿïàþÛÿõààôáÝøãå÷åæ üãéøÝþáðÝýéíÜùÞÿçÝùÜýðàüèÿ!ûáýç!üâúåÿøàøæôÝøäÿóÙýìöáùáÿ#ãûåûäõêÿøäöêþøÞõãþóÚõèýïÛðëýíØòçÿ äØñïþ äÛðãü åÚîçüãáïõüñáïñüöáïðþóßóòðàïïý÷äíüýýåèðø÷ßáåó èÝÙëó íãåüþýÜéúñÜéü íâè óææýùäãùûãéúÿßå÷õÜäøÿóÖâíú íØâüú òÝäûùñâäø÷îäâøôñâãöõèàäúóéáâýò óßäýô ùßæö õßéø ðÜéÿôæÚæþðà×âûìÚÕäþíÚÛåýì ëåëñ ôéçúí óäåìæÞÜ÷çáØäùëßÔêìãÒíñÞÓîñÝ×íðâÕéíþÙ׿êÚÛçèÔÞêþèúÕÝåæüØÙééÝÕêë åÕðî ãÔííÚÑîìýÐÏëèûÎÎìêØÏíêÞÕìéãÞêè íàìèìáêçíàìéòÝì é øÜðìúÝòîúÝñ î÷Ùó ï ëÙóî çØòìÜÙïèÞÝíçéãïè ðæïêóçëé ñâïë íÝóë çÚñì ëÙï ì èÚõ îãØ÷ ïÜÚô ïáÛðíåÙâýæáÝâêãÞåôãáçùäÞíãàçþ îßä ýìßâ û ðÜë þíÓæúÚÓçöÖØëöÝÚçóÞÚëõØÜéóàÚïöâÙò÷ÜÛðõßÜïô åÜîôæØðõçÓùúåÓ÷ øåØôõåØðÿóߨñòüÙÙì÷íÜØíöïÜÝëöî êÜîýñîÛô÷ô çÙòøõ ãØòûõâ×÷ÿù ß×öþ÷ßÙø÷ùéÚôýùèßùþüîáôõ÷ îàÿöùëáûíß"ûùíÜ3þùéØCúøáØN÷ùçÖAéð ê×?êñêÛ9ëíîÜ7îïæÛ+ëëäà#àèñßàéñÞãèîáêç"ôãçæ"øè Þä"ýæâèþáãçößÿæéôÞþäí!öÜþïòòÜøîîòÜôëíòÙðéîëÛòîñìÙïðóêÛìíôòÛèóõ ëÜèðöéÝåõ÷ îÛãïõðÚâóöïØàõõçÜÜóõìØÔñïßÜÕðíåÞÓôïëß×øô ìÝÜúú åÚØý÷ ßÝÖý÷ðÛØüø ôÚÕûù ñÔÑýøýÞÒÔø÷ÔÔÒõùÔØÓúûÛÛÓþæÜÒýüßÜÑýþýÕÜÎúûúÒàÌûüãßÈïûåØªçéýØÖ©üõÿÕÚµ ÞÒµ'üÒÍ®#ðÉÔ¯("ùÓÙ®!!üÚÞ£ÝܬØß¨ ÿÝä­ ìâ¬îÙ« ÞÔ«üÙÑ´ýýÖÏÁ ØÌÄ ÕÎÆü ÜÔÊ ÞÜÇáÞÉóÛÛÎ÷ÚÞËùÿåÚÔõߨÐåþÿÜÕÚÿÛÖÖíÿ âÓÜ÷ àÖÛñÿâ×áñ æÕãêý äØåøþåÜæëéáéò ïáëôòáðèéàðæÿ æÞíîú éÚóãýçßõÛúóØëìÔ æãÙÚíÙÜ îÔÕü âÚÞÿêÝÚôÞÜöÛßÿóÜÝþôÞãýõÝÜûð×ÝÿâÕ ßùã×áùêÙ Ý÷ èÕäøèÙ êùìÜ á÷ îà àô îà äõðà ÞöôÞïøòßêõ ðã ã÷õÝÝóëâ ÞöóÛåñìÛ ðóìÞîôïáÙóöãçý!ùäòûüãøüþßêûøã ðúãïøøæôö æóù!åðøþäñøúãðôûä ñõì ìö! éôöæô÷þäòöúã ø÷øàóøóãõùòâôùòãýûøåôøüåüøøéùôôýäüûöøàùûòùãøüõýäöøôúåøñõ÷äõõòùäöùòùâ÷ûõøáõýöõá÷ÿöîáõúöêàóøôìàõþõ îàñÿôñßó÷ôìáðùò êäëùñ ðåìóðäëýò ðãíûóöàïõòæîûöúçðöùáîúôëÝí÷òæàëùòóãòõæäóôêÂßåÿëÖþÿþéÝèÛ#ãÔ&üâÛ +ùäËìóâÎòðáÎòíÞÇê æßÎó åßÏñ ëÝÑíñÜØîíÜÔîý èâÙòýñÜÞõý æÙÙì÷ çÔßüùæÓæÿûåÜéÿû éÜéÿ÷ ãÜåùñÛÛéõñ××äñíÿÒ×âóêÔÖëþëÓ×òÿëÖÓòëÔÙïùëÛÕõ ï×ÖñêÖ×ôéÙÔôÿçÑÓ÷éÐÒøçÎÑøæÊÎùçÆÊùÿæþÀËùåÇËëÿÂÎüûçÿÆÐÿ éÇÏüçÊÎûçÌÏÿèÐÏéÓÒþè×ÒþæÖÔýä ØØþç ßÙÿè àÙûæ æØýéæÜé ïÛê ïÜýùéòÜÿìñßüêöÝí íÛþÿééÙýê êÛþêðÙÿí ë×üê çÕþþì ä×î è×ÿð ìÖþþïåÕýðâÒûðÝÒüïÜÓýûïÞÕýðâÛúúñ éÖæìéÜÕèûîÜÓïùþØÑøþÿØÑïúÔÑòýúýÖÔíøøÿßÖí÷öâØóùûâÔðø÷ßÕñø÷æÚíòôíÜñööëßó÷öñÝñ÷÷ðÜ÷öøòÞóïöôÜõõø ïÜóóöðÝõó÷ ïáóôöõÝø÷ø îßóéôðÝøúùêÛ÷õö åÛ÷ó÷çÜ÷ñö çÛùóø äÙöñö ãØøñöçÜöïõíáøíõôßøò÷ óàõìóûãòéõýá÷ôøûã÷õ÷ûã÷ïöüßôñõòÛôóõ èßöðôñáôðõöâ÷ðôÿâöñôþâôîóûâóíóöáôîô÷àôðôúßôîööÞôìõðÜøô÷íÝõñõïÛòíóêÜôéôïÜõðöêÙõîõàÕûôúÜÖýõûàÔöî÷ àÔõïôßÙøõ÷ èÖõðö äØùóùæÜ÷ðùíáøïúöã÷óúóãõóùíâõòùðÞôñûíÞòí÷ìßîïøìßïð÷éÞïð÷ æÜðñù çÙïð÷ âÜíî÷çáïñøìâïõûïâïòúôàîôú ïßíòùëáîôüëåëîúóçîöûøéîôþÿèîùþúçëöýöåíòþùßéèúñßçíúðÞêóü èÞîöý åÞïùþ æÞíøÿ èÞêöý åÜëöýáÝéõý âàîø èáêóþîÛíù êÛêö ëàîùôãïúøåñý÷ßðú îÜéõþçÚçöüãÛæòûãàéóý ìãçõþóãìüñÜêùÿ æ×éúþßÖæóüàÔëõþÚÖåôû ß×éøþ ßÜçôýæÛëùÿ åßéöý ìÝêö ê×êù âØéú ßÛéõþéáçòýøáéøÿúáí÷ôâì÷òàëû ïßéùþ ðÛéûý íÛé÷ûïÞæõùôßåöúïÚãøúåÖåñ÷Þ×å÷÷ áØë÷ù äÖæôö ãÒåóõÚÐèóõÓÒçòõÕÖèòõÛÙçôõãÙêó÷æÛíøû éÞíøúðáîøûîäèôøñãëõúõÞèúùîÚíøüçßìôúêâî÷ûíàêõø êÞé÷ùèÚéøùàÕé÷úÓÔéôùÕÚìùú ÝÜéøù ãÛìôûÝÛê÷úÞÖë÷üÖØéòøÖÛèõ÷ÙÞêöùÛÞëöú Þ×íöùÕÖèõöÖ×ìóùÕÛëóø×ÜíøùØàí÷ú ààîõû åâíõúëßïõúêÙî÷û ãÛëøú ãßðùû èàïõúíÞíöøòÜîùû ìØðøúÞ×îúøÛØìóõØÛíóöÞÙëöößÖí÷øÜÙèñòßÚíôôáÜëöô éßî÷øðßîö÷ößï÷ø÷ÞóúúõÜôûúñÞðõùîàñ÷øõãóøûõâñüùóàóýüóâòùúýäóúûþåóüüãò÷úûáôôùößöüùößóøøøÞòù÷ûÞöóù÷Ýö÷ûõÜøúùïÚøþûëÙ÷öú äÖúùûâÜ÷ùø íÞøúúñãöüøúàúüüòàøûùõßùøù÷à÷þûøà÷úüðáôüùóßûýïÜúýû èßùüúðÞøùúîáø÷úõÛóòøëÚïñôëØóö÷æ×öú÷ãÚ÷ÿøéÜòôô éÜòôô íÙïïôëÙåäïë×ìïó æÚ÷úûëÙö÷ûèÔïóùÜÖðôøèÖõõü åÚïí÷ åÛðóø èÜììõ éÜìîó ëÞèçóöÛòíö÷ÚöóùóÝñïõóÞðìôóàóóõøÚõñöôÚôô÷òÜõîôóáóóôúåñðòåòïôãñóôßôööýáõóöþâõõõüÝôøôòÝñóó ðßñòòôÞòõñòÚóöñîÜò÷ñ íàóúóïÜõúõêÛöýõëÜõøóïÞùõòÜôøó èØòóñ ÜÞöøõìÚôõóæÙô÷ô âàúÿúñåþÿôæöûøòßõøöìÝóúøëÝöù÷ ëàôùöïÝóôôëÚö÷ô âÚ÷ûõ àÙóöò ÞÜõ÷ô äÞøùô âÙ÷úóÝ×ôúòßÓöúóØÕöûòÞ×óùòáÖôúñÝÙôùñäÕôüòà×÷ô ä×÷üôáÚ÷ûöæÚ÷ü÷ä×øÿøß×ô÷óßÔóûóÛØñùòÞÖóùôÛÙò÷òáÕøÿöÖÓôüòÿÕÒööÕÕõþõÙÛø÷áÚíñðÛÕìùðþÔÒ÷øÕÓø ùÙÐøúÒÑ÷ùÓÕöùÓØóüõ××ôùÖÕóöÕÔò÷ÚÔôøÕ×ñûôÔØñýóÚØóýöÞÜïüôâÛôûøÞØóú÷Û×öÿùÜÞñû÷ æÝøýüáÝõûúåÖ÷ûß×òûøãÚ÷ýû çßôúû ìÞ÷þüéÙôûü ä×ñúúß×ðøùÜØóöúßÙñ÷ú åÛòùû æÚòùú äÚðøú èÝñùúîÜøýþ éàôöúñáõûýòáóôúðàòùúòáóôúðàòóúíßòòøîåñøùõãîñúòàïíøöáôõüùàìäõíÛô÷ý åßøýðÞöøðÝëíøíÞôûÿíßìîøîÜññúéßïðøïáòîúñèñöûüéïñûüßíè÷ íÙèçöæØçéöãÚîòøåÙïôøâØïòùãÔïóûâÓñõû äÙòõû èÛñôú åÙìðö åÙëîõ ãÙíñ÷ äØîñø å×ðôùæÕîòùåÖñôúæØñòù ç×îòø äÙíòøëßðõûñÝíóûìÞîóøìáïôùîæíò÷óçíóøôâïòúïßíòøðÙîóúíÛïðúïÚñöìÝéðùñÚíòûðÜîóýòßñöþõæëòùêïðûéïôûÿéíöùùçë÷ú÷äïøü ñäí÷ùöáòøû ñáëô÷õßîøøôàíõ÷ôÞî÷÷ îâéòó òâíôõ îâêòôïßèòò ëßîóôñÜíóö êãíñôòãíóöõáíïô òáêôò îáêñò ìâéòóôáîóõøãíñóÿßñôøôèæððæõýúááçñ ñä×ïîøåêüûè÷ÿêïÿüìç÷ö æï÷úèêö÷éñþûåî÷ùüãîõ÷÷âñøùîáçïòðâïö÷õâï÷÷òäéñóòáíöõ ëãçíðñäêóòöéëóôþäëòòôáêðñöáëñðõàíñòïÝíññ êÝêðððÛñùöëÛòóöåØóõø âÔïðòÝÓóõõ ÜØõôö Þ×÷ýý âÛôøù æÚôøö äÓôôö×ÑóööÖÖñöö ØÚ÷öøÝÚòóõ ÝØõúøØØñø÷ ÞÕòõ÷ ÜÒõûú ÚÖöøû ÞÜøýý åÛ÷ýþßÙõøüß×óöúßÔôùûÚÒôøûÖÔöôù ××öòüÝØòòößÒûüýÔÎûþþÕÔøùýâÙööý èÜùøþäÝóõúãÚôóøáØóòúÞÖòòø ÞÖûùþ ÞÖõöúÚÓ÷öûÐÐôøûÎÎõ÷ûÿÐÍöøüÕÉøùýþÎÍõúûÔÕøøúáÚôøùêÙó÷ù è×ñôùáÜñóöãÜîô÷ çÜòöø îÚðõ÷éÙïñ÷ éÚïøöߨíóóÿÙÚîñõÜÞíðõíßñö÷óàïòöóàîð÷ðÞÞÞðèÝâàòéÜõöÿ èÞõøÿ ëÝùô îÛòïìÚñíü äÚéç÷ÜßïñüåÝëðûßÛïîûÜÔó÷ÿÕÔêîø ßÖóøüáÛïïøæÝóýü çÛòùýäÜðñù êÙóôø ëÛò÷øôáóúùöß÷ýü êÜîúöèØðø÷ âÕò÷öÞÓóü÷ßÛòùöñÝõû ðÞñýøïÚòý÷ ëÛòýöíÚñùöéÞòüöñâñú÷÷àÝòí íÛãõåÖîÿßÙ÷êÕìÿ åØé ýéØìüäÛè÷ ëÜëú ëÜçõ ìÚî ú îÚìöîáìöúåê÷åñùâðùþàôùýåóùëôú!íòú"ïóù#íöûéöùèôý÷êô÷åôþ÷öäòüõøßúþùõÜöýö÷áùú÷ûèùþúåöõùôåççñ òçðÿÿôá÷ÿïáùðàòðéßîôêÜáÝ ãÝäç( éáÓÍ%ôÜÓÛ*ðÞÑÚ'òßÐÕ òäÊÒúßÐÕíÙÐÛ äÖÓåÛ×ßìÛÚßðý âÝæÿú èÚèýó ãÕìíÛÏôéØÏñÿàûÑÑ÷Ù÷ËÕþ ØýרöÏáÖþ Ìã×ÎãÕÈÛÕÆ×Ò ËÓÉ É÷ÂÈ ÇüÁÌ ÆüÊÍ ÄýËÍ ÄÿÍËÄúÅÍ ¿ÉÐ ÄÌÏ ÆÐÑ Ê Ö× ËÞÖÎÙÔ ÎÐÑÍüÉÐ þÌøÊÎÿÑúÏÓ Öü××ÙÚÙØ ßÙÙ â×þÜ æÖþß åÙýà éÜüáíÚúäåÚÿûæ èÛÿùèçÚþôæãÙÿøéåßÿ÷ë÷âùóùç÷ôúæûöóäó÷ðãöùôâüøúóáüôûòÞüñüïßûñ ðßøóéÞúóáÜúïàÝóë åÝóë æÙ÷î àÙóê áÚôì ßÙòåÚÚôêàÜòè åÜôêãÞïæêÚðâ áÖéÞÚÖéàÜÖðé ß×òè à×îå ÜÚìæäßëâ ðãêãûßìæ óáêäößéàðáèÞ îÞèá îâäÞöâçâóÝæÞêÝæâ èßãâñàåâ õÝßÚóáâÝûâáÜúàäáôßàãõßäã ÷Þâß öÜäá öÞãå üáåå âãå þáäæ øãâä øäåèýëàå ëãè éâä!çåå çäå þæäé ùåäê üèãéâåì Üäñ þÞæî ùÝæî îßåð íàãî ïÞãðñÝâíñàäíòáæñóßåëñàãï÷áäòøáâðøÞéö ø×èô ð×êö ñÝëøøæíþþåêôùäéûýáìúùàéøøáïþüãðöøâðþ ôãíößîýòÔç÷üçÒåúìÐíÿæÕñäáó óäïýñãçõïáêöçáë ÷ åàëöæåë ù ïçí ù íçèô íæìöíÞçÿô çÚëõëÛí÷ îÙðúçÞí÷ìãïøïæêûöðäëÿô ïÞêùò íÝíøô êßîøõ êáòÿø êáëýôíâêõñóáîûöñÛñú÷ éÙð÷öçÚñøø èÛöýûèÝòüøäÛïôõâÜíõòåÜñöô çÞì÷ôíÞì÷ôíÛí÷ôãØð÷õÜÓïóò ÔÒñöôÕÔñõöÛ×ïùõúÞÝîøôÿáÜñùöÝØðùõ ×Ôïøó ××îðñ áÖøööÞÖúú÷ß×ýûùÞ×øùöÚ×ôõóרòùñÔÜðöñÙÞöûõ äÝþü åÚüûû àÓöô÷ÕÔíìð ÑÜóôñ×á÷÷ñßßúýõäÝõøò éÜôùôëÙóõóå×÷øóÜÕõôñ ÒÜóöíãÜóñëáÚãóâß×àûè àÒèïÛÍî!÷ÿÐÎå$õ÷ÍÐè(øõÑÌà òûÑÌç õÚÐçò ߨçòÜÜåðÿÔÕãëøÇÓâêÿÐÒêíÓÒìîÙÔïðáÕòðÿÜÑòïýÕÐïüíøÓÒíúèÿàÓèòä ãÙêïå åâíîèíäññêðáôóíðâòñì ôÙôöîéÔôóíûßÔõôíõÙÛóïìýãàöðð õå÷îðäüñò!àýïóøßùðòìßöíî çâôïìóäøëîùãüïñöâùîñøãüñôøÜûêò íÚüïóëÛùìñòÛñöúÜþìõõáóöðæìôòåòûôçðûøäöýðä÷û ìàòúéÛñøåÝïù ìÚõûñÔíøíÐïøêÒþï÷ëØî÷óØûæôðÚûÝò!õÜäù!õãÛüô䨸ðæÜýïãÞéߨû áÜþ×÷âÔÿÛûÞÓþÜùÝÕçüæØäýì׿ûëÚÿåùëÞâùíãÿêøòÞÿéù ì×ùéóãÚøèóçÜûëö éÖüíöãÓùðôÜÑùïòÙÖ÷ìñåÛúñôðßúîöôàùñõôß÷óó óÚõôó ôÛ÷øöûÜüûûöÝùöøîÚööõç×ôôóâØòõòçÙðôóíÝòüôóáò÷ó÷äòúôüâòûööáñÿö÷ÙõùðÜðýø÷áòùùÞñø éØñ÷ÚÕìüõüÔÚêþñàÜéûñäÛéüðãØèïàÖéþðüàÝæûðéâéþò òäéÿóüÞìö íØãüðãØèþóäâåûð ïèæóôçèÿóñãèùòóÝëùóðÝéùóöÛæöóíÝàóï êäßòïî×áîëúÑÌ÷þòóÁËûúïýÌÏøðÛÑ ôó ÝÔ òòáÖéíâÙ ôô íßõ÷ÿãöøì÷ø! íýü éþûøçüøùâôóöçùýûêøüúìõüùìóýúèóþüåïþúüäíþùúâïÿû÷ßïú íÞèýö êÜèõåÛçÿõÝÝäùôüÛÞáüôãßãõæààþöèâßþ÷ íãàúðãßúòáãýòÙã íÓåáØâ çÜááßßÿâàâ âØÛüÕÑèûÌÕÞû×Ùè ÞÚåúÿÖØæ ûùÐ×áøùÓÕåúØÔàùá×äûßÚæüÙÛßùØÚá÷ÛÙßÿöÜØÝöÜÜâúÞÝßýøÝÖãýÕÎãþöÈÎÞú÷ÉÐÛÿúþÎÔâþÎÖáÿüÎÛßý ÜÔÖøõüÏÖËðøÑÔÑûôÊÔÎ!ýÿÓÓÝ1üÒÖÔ1Ú×Õ(üØÓÍÿöÐÌÓ"ðÍÌÏýòÊÖÒýØØÒýÛ×ÕþÜ×Ù ÛÑÙúÙÒÙûÜÖÜ ÿà×ÛáÜÝÿéÜÝþäÛá èÛâÿ åÝßúêÝá÷ÿ çâáõýíãâêüñßãîþ îáãïüöâæîÿúÝéêöáåíý þáìéÿ'çìè)åòðüäðìúÞóëòÝðæþïàòæÿïäóçôãöå÷âøäúâùãùàöäóâûäóäöâýõÜøÚýçÝúÚýíã×õå ÕõäÖ óéÔ ÿèÊ !þèÈ "ã Ì$ÿä Ð'åÔ "å ÒáÏüÛÒöÝÑþàÓåÙÿæÖý èÓù'åÚû* àØø&ÝØø$ÞÝûâäúþãÛ÷ûæáöÿäÿÝ÷ýßúÛôñßöØîôÞöØîòÛçóëÛêôçÜþçðçÖîõäÓëóåÓìðæÑûæìß×ÿëîäÜúçë éßþïí îâúìë îßûêêèÙüïê âÓùëêãÖ÷òèëÝúñêøâûîëúæûôîùÞüøîìÚùöì ë×ùùî îàûùðöäú÷ïöä÷ùìõáùøðòáúüñõÝöõïôÛèîåñÛóòíÚû ÷ ãÕ÷ ø××ïóÚÙô ÷ÿÜÝñüóûßâïóåàññþÝØðñùÓÐòóùÌÍðñýÅÐñðËÔõóÙÒñîÓÐñïýÌÏõðýÏÒõ ôþÙØîñáÝííéßòþîîÝòðêÙïîáßöòøÝôñõÜëëîàò,ð óÜõ7ðýèÓþIóîÕÕøDìôÙÖ÷7ìüÜÓó2éöÒ×÷6íýÞØï*èûÞØè'æÞÜé"é á×íëÓÙòì Ý×óñ ÛÖðï ÜÒôó ÜÓñ ð Þ×ñ ôåÞðñëäëüî ðãäæë ëååãïíåöèÿ!òéýÛ *çúÎ&ùæýÐôçýË ýå÷ÈöåîÂõäð¿òäñÄ òåíà òêïÅ þëîÅÿçìÄüâëÈòÝëÎéÜëÎë×íÏàÔìÐÕÐîÐýýÊÐèÊöþÌÒìÒøÒØì×ûØÚïÞÙ×ðÚþ Ù×ñáüÙ×ðßúÙ×ñåù ÛÒðçù ÚÒðçùØ×ïé÷ ãÕõòûÝ×íë÷ ßÚóïøæÝðï÷ ëÛðîö äÛðïóéÝóõôðÛïóóñÝðõóñÝð÷õ ìÝïöó êßï÷ò ïâòûó ôäòúó õäóûô õäôýö òãïþóöèõöÿèóüõüàóüõ ïÛëöñìÙíøóíÙóõéØ÷÷ éÜôö ïßõ÷ ôßôöóÚñô íÛðó íÝòõóâïôãôößðôøÛðóõÚîðöÚïò ïÞíð ñâðñ ôãìð õåðñùâìÿìöÞìïõÚïïòÛñòòÙóô é×òñ çÚòó ëÙÞ÷èæÞÉøãëàÑ ÷þìàÖ$ ýèÝÉþãâÂ# ôáÄ$%ôܹ!#ìÞ¹ %÷Û¾#ñÝ·îâ½óã½ òâ¾ ñâÁïâÅðâÄþñåÉüþùàÐþýñÝÔþüëÜÖøøèÜÙøõ çÜÙöó ëááûô ïäãüó òÞåûóêÖèûðÛÔèøëöÖÕèñèú×ÔìôçÖÕïòå ØÚöóçäÛûõé çÜøöæ ãÚøðå âÜüñäîÚÿôåçÝòåçÝöèêÝ÷è ìÛ÷èæØ õé çØ öçëÚ öèêÚ ôççÜ ôåëÚ óåíØ ïååÙóççÞ ïäòÝðçòÞ îåòàïéðâõêïÞöìçÝìèêØñêßÛðèäÙóëãÜóíäÙòíÝÔçìÙÒîòØÒ'îö×Ô3êúÚÒ8éúÔÖ0ÝöÔÒ+ØóÏÖ,ÜóÜÙ%áôßÖ%âõÛÕ$åôÚÔäòáÝæõíáæ÷ñàæôíàâñîÝäòêÛãñ áÛèïäßáëìÛæîêÙçïçÜèïìÛèîè×ìòáÕìð ÜÕÿëîÚÔþêîØÑýîðùÏÑúîïÿÒÍúïñþËÍùððÍÓùëð ßÕúñõçÑûðøÝÎñìó ÚÑïìóÞÐóøøÚÕöúùÚ×ñùøÜÖíö÷üØÖíöøûÛ×îöùàÑíöúÙÔè÷÷ÞÚìúúêÜëýýñÚêüÿ êÛæùüñßéýþ÷âèýþ ðàèýýääá÷÷ïàãüûïÞäýúîÚæý ïÝäüôÝâÿýòÜãýíÞâüû÷ÞãþüôßáúúöÜáÿþòáàÿýóáÝÿýðàßýðàÞüýøÞàþ÷àâààþâßûüßßÿýùÞàþôÞßþøÚä  íÝàþ íãàÿ òââðàãïßàÿ îÜàÿ ìÚáäÛããÝäêÜâ ëáàôÜÒùþàßÄú÷ãÝÏàßÑ êÝÍøàÜÇ#öÞâÎ*éâÊ íàÆùÛÇõÛÇ ìÝÍ æáÈ çãÌ íâÎþëâÍìäÏýÿðâÒÿûìâÑûíßÔûÿäáÐòù îßÕöúïÚÖóùèÛÜôþ áÞÚïù åÝÝñúáßÚìôãáÛðö éßàîõäÜßëõÿàÝÞåóæÝáìöþáßáéõäÝèìø æÔççöÞÑééö ßÔëîøæÚòóü êàñæø äßðë÷ Þàïçõ æâôíú ðáõëû îäôíúôàøíüïàüñýòÞùïüóÙýîýðÖûïüèØùêø䨸ì÷ àÚøêößßøë÷èßøçöçÞúéöçÞüêùæÝþðüáÞöæöäÜûìøæÙúé÷èÙøé÷í×ýéùïÙýêúê×þêùÞÛ÷ãõàÞùæöãßýìùæàÿëù èáýíøèßëúëÙîûç×ýê÷ëÔðûëÓñûëÔýëøêÙê÷íÞìøïÞüìöæáúéòéãýëóìãÿìöïæûäòôÞýçõìØøßóêØ÷áóîÚîùðÜîøòÜìùìÚüêöÙ×ÿí÷øÊÙûëóúÐÔþðöúÍÚÿìõ×ÞÿíöçÝúíóâ×öêï ÖÔøäí ×Ó÷ìðÝÒùèïæÏþðôæÓûëòêÙùðõåÞúíóáä÷íñÿéèôïñ öçøíóúæùôõüâõòôûâñëðýâöìñà÷ïôÝúñõþÙõòóúØóñõòÚ÷ô÷ðÞóòô÷âñôöùéóóôúçòöôöäòñõôÛ÷÷÷òÚôöõõßöù÷úÜõø÷îÜõûöóÝøüúòÞøùîÝöûö æàøþø êÜ÷þùäÜöýø ëÝ÷þ÷ðÛõüøï×õûøéÓöüøêÕðüõóÙôþøùÚõþúóÙóÿ÷ëÚñúöèàñý÷êâðúöêâïúõêáîûö ìäñü÷ùâõýûûÞòüùôÛñþøñÝîþø÷ÞóüõØïýùåØðüõ äÛíú÷ åÛñÿùæßí÷ ïßïþ÷ðßìüöïßîþøíãòýôàôõßïüõßòÿüñàïûúáðûüåìùüéñüúéïûóèñû õìñüìôþ âîþùõáêÿõÿßñúäíþøäîúãëþöûÞèûòîÛæùðááæöíÿâçáñëìéàöë÷æãõíõáåöîòàèùòóåéúóûåëúõüÝñúòÚêýõñÙïþøéÙïþ÷ åÝëûö æáéøòêãíýö åâîøöçãñÿøëáîü÷îàðþøîßòýùìÚôú åÛòøåÛóþøëÜïö íÙìýöáÛëùôÝÚëûõÛØîÿõÛÜëûõ çØîýøâÖíý÷ÝÔíÿ÷ÜÔìù÷ßÕïýùÜÙîþøáÙèöøâÓÛëñûÓÏèúûóÊÙïÿÙÚíöÛÙáïüßÙëúàÛæòáÕêøÞÖåó æÓéóÞÎáêþùÏÐàëúõÏÑäðûóÔÎïüïÍÎèöûñÈÒçôøôÉÕèõ÷ûÏ×éóöÿÎÔëöôÊÒîö÷ÿÏÏîöõÖËðøöÿÎËíòòûÊËëððúËÇðöó÷ÇÊï÷ñúÉÏðõóûÌÒðøñüËØò÷ðÏ×ñöðÒÓóôðÍÓôöïÓÓõúñ ÕÏ÷ûõ ÔÌõùóÎÎúýôÒÑöúô×Ôõ÷òÝÓûý÷Ü×ùøõÞÙ÷úõ àÛöùôàÞøû÷éà÷øõðà÷ü÷öÝ÷ûöïÙöûø ìÛùÿø îÞøÿú îÞøù íÝõýúëÙôúöÝÚøÿøÝÝöýøâáóüõ èáöþöæâøÿ÷ïßùþùñÞûüôÝûüóÛüúðÜüûðÝúÿúòÝùùòÛüúêÛøýøíÞ÷ý÷ñãùý÷øãõøòãøù÷ãúüüàùüýÞùüúÜüýøÝøýú óÛ÷ûúâÞ÷ú÷ êÞøüù êßóøöêÜöùùèÛõú÷èáöõøïå÷öøùâ÷÷ùøßôò÷÷ãöõúÿã÷ôúãöõüáöòúöäúøýüääáôúæèæöåòóÿ!þåõð%ãðè!ÿáöð÷àòî ÷àëàûáðéÞìäôàîèÿòÞðê ëÞèãú ðÞîçúôßïéúòßíéûøáïðúáñëùôäòðûõêòñûÿçôôþýãíïøõâòòù ñäîïö ðãðñö êäòóõ íßðòô ëÜïõóï×ôóô âØññòâÜóôô íÙ÷öö êØóõõæÛòòñãÞõõôåÜñóòßàíñïíâõ÷óúæö÷ôãùø÷ûáó÷õ÷ßòöõöàòóõûßòøöøÜñôõóÛõôõïÝôòó íäñðò ñàïòñèàìïí çàêðíïÛîïñòÚðóôîÚóô÷ìÞîñóñÙòóô çÚóòôãÕòðõÝÖññò åÚòôô çÝîéïâÙìêîÙÙâãçÝáäèëðáðòñõßóöóïÛîôò åÕîôñÝÕíôðäÙêêôçÑâîíùÓÒçùóÿÏÖñù××ôþØÙí÷öÛÙîþøÝ×ê÷ôÛÙëøöÝØêöõÛÕéùòÚÖìõóáÒîööÙÑíûøÙÓîóöü×Òê÷óôÑØçöñýרíöõÚÚëõò áÚñøù äÜîôõ æÜðùø áÞïõöãÛîôõ ãØîòõäÕîóõãÓïóöåÖòøøèÛóôøÝßïñôÜáîñò äßìóòéÜñøõåÙñóôåÛòøöîÙïö÷ðÙòööóÖõöü çØõûûåÛïö÷ êÚñôø æÚñ÷øÝÚëîóÚÞëõô ßÚïôôÕÜíôó ÛÜòùú åÙïóöåÙñúùâØîõøæÛïøù çÙðõùÞÙóöúÙÚîõ÷ÝÛðô÷ äßñ÷ùêÝôöûçØõüü ßÙòôûêÙóöûî×õúþðÕõúýìÖ÷ù äØöûÿâÚöýÿ èÛòøýïÜöûÿêßöùÿîâõ÷ýóèò÷üþçóùÿ ûàö÷ÿóãòòþùâõøýúâóöþøâôøÿýâöùùâóùþøäôøÿ÷èõøüéõöý÷èòöý÷äñõüôäôöüôèóòüùåõúýóâñóüïàôôúéäñôù÷àó÷ýñÞñôúéÝîõùíÛòöúèÜöúþæÝôöü æÞòöúìÚñõø èÚíôø êÛòøûêÞöùþøØîñú ìÙÕðò ëÝÞúéßçüéÜæ þßàÛ êåÝ öêÒþüèÎ%ÿßÄ3ñà¹þ:öä°þ?ûã¨@óã¢ÿ@úíâþ7ýæâ™ý0ïÚ›ý/êÝù% ñã¨$ öè°%ñë¯òä·ðÚ»ÿìÙºôÚ¿ü ø×Àø ò×½òêÙÊñìÔÒóßÔÌæ×ÚÑÜ ÝãÏÚ ìãØáñáÞØ ãßãÚüâÞõãùíÖáð ãÑúØß àËÚÕßËéÏ âÑ%õÏ çÍ*éÃ×Ð.ì¸ÕÎ=ø³ÐÒ9î§ÕÏKý¨ÑËMÿ ÕËRŸÖËM—ÓÅXš÷ÇÅR “ýÆÂQú¾ÀV’üºÀS þÀÈR‘ÎÈT“ÿÆÈL ‘ÿÃËI “ËËF ”ûÊÐE˜ÿÒÏD›ÖÏ=žÙÐ<¡ÛÒ6¥ÚÐ4¨ÙÌ3­ÚÑ2²ãÔ1¹àÚ(¹ãÛ'ÁéÖ$à ãÕ ÿÈ áÚËé×ÿÑáÙÿÔ àÚÿÖèÚûÛêÙýÝçÚà èÛúâ äÜ üç åàøê ëàùì íàûñ óáøõÿèÿõú%âèêôôåßòúýãê üèßå×"ðìÏ$òêÊ&÷èÂ"èÎ&äÇ!øåÊ!úäÎ"úæÉúüèÍüæÏ÷úãÌöõåËñöêÎñûèÏðúèÓïõêÎêþçÓîÿäÐëýéÓéëÔéæ×ëõéØåùìÖæëÔäëÔàí×ä&ëÜé#ëÙÜìÝäèÚÝùæÙßùéÚÝ!ìÜã#ìÝßìßåýéßàûëßä ûèÝéöèÜÜúéÝà êåá!#èåå!ÿçäâûâãæ!÷áâàùçæä!çäß !åâÞ ýçàá þèãá#çàá$åáß%üåßÞ)úãàâ-úâÞÖ.øÝ×Ù2êáÓÚ<ñåÕÔKûçϼZ'çɸj%üé¼¢r&éÈ¢$æ¼–y$ÿéȘz2 èÁŽp-åÉšh ÿâÌ¢]÷ÞÙ²UòÝݽFðÚáÃ5ôÛíÑ+öÛðáñØôîçÔûúÚÔþüÜÕôæÒé ÜÏãÒÍÙôÑÌÏîÍÎ ÎõÐÎ ÇÿÐÏ ÅÒÙ½ÝÖ ½÷ÐÔ¸öÐÒ "¸þ×Ô ·àÐ ¸ÕͲúḬ̈÷ÊË®øÍÏ ²ýÒбûÉÒ´öÄ×°ÔÔµþÔÓù¯øÑÔú²øÍÓ¸÷ÎÒºýØÏÿ¼þÙÓú¼þ×Ñø»ôÉ×ó¹÷ÌÓù¿üÏÒúÃÚÕ÷ÅßÖôÆþÚÖöÉÔÓúÌþÐÐõËÖÐõÍÛÍ÷ÒýÔÑôÑ×Ðò ÑøÌÎî ÐôÇËíÐöÆËîÔöÅÏï ÚüÍÔï ÚþÕÖòÜþÕÑñÞüÎÏðßýÎÓîÞØÔðâÝÕîãÿÙÓìæÿØØëçãÖëèÚÒèÿæþÒÕéèÚ×èúèâÙìÿîà×ëîÙÖéïÙÛëò çØëúñãÚö÷ æßøùöïÝÿúø ëÛûôõ åÙûüãÙúöøèÛúùøîÜúûúòÚø÷ø äàòôö ìâòô÷ óÝð÷ùôàñûû÷áðôûñßïöý çäìöúêâíøú íÞëùûðÛìùþñÝìùþðÜìûÿæÛçõúÝÜèüþÝÞëþçßïùîÝïüñÞíÿðâç÷þ íçéùïåèùòãéøõÜëüñÛíúôÝíööàêþúãçø÷àíý íÝëûèÜæöäÜç÷ãÝåö ãßçôåÜèø àÜçø áÜæóߨäóÿàÕàóÿ æÖäñðÕèñòâêøøåèôïáâíÿÝàÜéúÞÝÞîû àáÜåüðßßçÿîäÞìÿûäØÜùøÚßÝô æÒòÿ ÚÕöýçÕ*öüíÕ1õÿçÜ3óíÜ'ì÷òÝ0öøä(óý&å ïú&áìû÷âç÷öåëù ýêêý%éäù"èêúáêüüßûêøâøçùæöèøêñäõìîâõùçíçùíéèé÷òçéêùïäåïö éßåï÷ àßâë÷ âÞáìùÞÛßêøÞÚâòüÞÙàñû àààõýëãÞòýîãà÷ÿæáÚíüãÙÝôÚÚÚîþ âÚÚí éÏÑäúýÕÑßîüþÕÒâìö×ÒòöúØËöîúÐÍñÙÍöéúÒÒóæôÓÔðè÷ÕÕëëöÿÕ×íðúáÖéìú ãÐíòÿØÔçôüÜÔçñÿÿØØåóýÞÖâóüÛÕÙïùÛØÝôüàÚÝòû ëâßùÿòåÚõü êãÙöú çßÖñø êÞ×ñúðãÙöü ûæÜøþåÛúäÖõýáÚøþùáØ÷ý÷ÛÖôû ñÞÜùþ ôãÝôûùäâ÷þûåáóûÿåçÿÿäãÿýàáúüþßâûûÿÝáýû÷Ùßûùíßßù÷ôßáüø óçàÿøèäüèäþûäãþùõãáüøúßâÿùúÝßýõúÚáûø óØâ÷ íÜãúðßåúðÝåùîÞäýöîääøüãåùþâåùüâäùö÷àç÷ïÝãýõ ìÚåúõíÝåÿõûÞç÷õßÏôéìàÔóêàáþåàáåàß éáâ îßÚ üåÞÖùèÜÜýáÜÜùæÝß üòÞâüõßåü ôàèý ôäæûìãêû åãëøëáåþó ïàèûôôàê÷ðßíü÷ ëÝðü÷æÙñÿõæÙð÷ô ãÕòûôáÚñýò îßùýöðäúøööã÷úôñãóõïöáù÷õûáûõõäøùßûòóúÝòöñÜïõðÚ ðôóØøüîÞñøñßïôíÙèóâÖðõëÏïó åÑôôãÕóóæÙôôîÞöüðÝõùîÛöõãØðò×Ý èìâÞóòéß îóñÛðô éÛîñ èØöñ Þ× íï ÝÕ ñð áÖíïáÑ ïï ÚÓïí ØÖðîÑÚïíÖÜïðßÚññàÜôó äØôõ ßÔ öõ ÙÖ û÷éÖ÷÷èÖýìïÚÔþöôÑÖøöÖÙöøÝÛÿü âÚ þÿÜÖøûØÙö÷çÚøýëÚõúïÙùúñÙùùñÔûüáÏùùØÐÿïôÜÔÿðôßÙ÷õØØýñòÏÕüôóüÇÕýòòýÉÜÿôõ åÖøñîÚÒòéÓÏ÷êÑÊ+îüÎÍ2êúÐÍ;íýÕÑý,èÙÏû%çýËÒö åÍÒú èüÊ×öçØÛøê á×÷ é Ù×ñç ÞÖóëåØóìçÕðþí ßÝïüêêâôýïðãïóí îáïõïåâíõîåãîóïíäíóðøáñóô ïÜêïñçÛìïò éÖîëò éÕîìö ê×ðìõåÚììõäáëçô ëÞïëøßÝìäõÜÛìèøÜÙëäùÛØñçü××îâû××ïâûÔ×êßùÕÙïáýÙ×ìàüÓÔèÑ÷É×çÆ÷ÏÙùÉ ÔàÉåÞ½ãÞ¹#éݹ(ëß´)ðä±$ôâú³ëçô¯ôãõ¶ðäì²öçî¶ùéë¹öçç¶òéæ¶÷æíÁ öäëà ôâçÆ÷àéÊðÝèÌèàäÍîàéÒïàêÕõÝíÝòÞëßñäîà÷çéäýèíæåíçþåïòæíðÿýåëìý÷çéôûýèëôûãíóúûåêóöþéêø÷þçëû÷úèìüöéêÿôçìôÿçëòæéþòçìó ßéîüÚâ èî×ìíèÛïíó×ö óèÞìê òåîê øãèç öãîìÞéè ÷ÛêèñÛêêõÙëëóÛîì òÜíëðÚîî éØòð èØðî éÛñð çÜïîãàîí çÜíî èÜïðëÕññêÓïðìÒìïèÓíîäÖïï é×êî íÙëïîÙìðòÜê íóÞë îïßê ìíÞé ìðáçìöàéíùÚÜùê ðØÌîÞ ìØæ ñ èÙóø ëÚë ö ïÙàïìÚæõ ëáßúðúâèô üáåô ÷âßÿïûÞçôýÝåþôüÝäýôüÛé÷õÝäÿò òãáýð ôâäüð òÞåþñ ìÞåüñêàæúððãêõûÙèÿñ äÖÞéßÑè$ìþÒÑç4èüÓÏë=è÷ÍÎìJäùÎÐïEãúÐÕé8ÞÙØì5âþ××ë0ßõÎØå)ÝýÕ×é#áÿÙ×çâàØíç ç×êåãØëæåÒìéÝÐïíÿÛÒë ìâÕï ïâØììäÕïïÜÖíÿîÜÛíþðßÞïùñ åÝïúó éÝïóô ëÜíòö æÖîð÷àØïï÷èÔôðúÝ×óéúßÚñèú âÝòèû åÞðåúìÜóèþìÜ÷çðÖûêçØ÷äåÙöà èÜöäñÛùæíÙùåéØõÝéÙøÝâáôÔÿðäöÜñäóÚóåüÛïâùØíÝüÜ ëßùÚëÞúÛ êáøÕñßúÙ ìÝù× áàôÕ ãâñÒåáöÖáßõÕ ßßôØ áàõÕ áß÷Ô áÝ÷Ú ßÝúÛ éàúÛ íàø× ëß÷× éÜøÝ èÛúÚ çÝôÐêáüÖðæöÕõå÷ÕïãýÞ êèëöéþæãþâúÞûÚ ðØöÛ ãÓöÖÛØõØåÛóÙëãùÜ÷äöÞúÜøáëÔ÷ÝÛÔôÞÚ×öá ç×øãêÚõãíÙúç êÖõäáÔöæÜÑõäÿÙÕõãþ ÝÖïãû ÛÚòãü ãÝõêÿíÝøêïÜ÷íîáôíùáõï÷Ýòîþ îÜñíü ìßðêú óÜòîûìÚîìø çÚðíùçÛíéöåáðï÷ïáñì÷ìãòñùïãððùößîï÷öãòîùáíæö÷âòðøöáúôþòâüúùÚöøÿèÝòîùäÚñìùÝ×äåïÚ×íìò Þ×óõõ ÜÖøÿùÜÙñùöçÔòûøÞÕðû÷ÝÕðù÷ÝÕñþö àÖïûõ ÝÖïùôßÖïúó ÞÖíöï×ÔìøïÑÓîûðÐÖðüòÜÚïþóáÚïôâÚïôëÛó÷óÙêýò çßÛüê êÝãòêÝðûïÚöðÝìúðÞîüíßêþùñÞíÿúòÚëú÷ êÝèüõ÷àîÿø÷âíÿ÷öæíý÷ÿçí÷üèð÷ùäëÿõøâëóùáò ÷ôßïóîãíñ õßìð ïÛíìëÙìíâÚìëâÚîî èàìíóâîîñáñ ðìÝô ò äÛððãÞñï ëßõ ò éÚôðߨï ïÚ×ò ðþØÓîìýÑÙð íÜÛõ ñßÜó ñäÝó òæÜù÷ßÚõ õߨô óäÙõò êÖö ôÜÕö òÐÕô òÔÖî íßÕòïÛÕóðýÎÚòðÖÙô óרôôÖØö ôØØôõÞÙõ ôß×ðõÚÙÔìæߨÞÿó âÛê æÚç åàÝúêßßù íßßô ìß×ê ñÛÞî êÛ׿ îÜáï îÞÙæïÞÙêïÜÛçêÛÛæûçÞÜëú éÞàéú ëßáå÷ðâéòüâÓÛöúàØçýôãßð÷âåóóâàìõåÚëüäÚæ!öåÔåøâÝï!öæÑÝöåÚæñëÕãåÕå äÞéþèÝèåãêþçáéúåáéôþãçïòûàêîðûâïöïÿàïõí÷Þòöé ðáóøê÷Þ÷üçóÝöøâðÛúûâ í×üýáèÙøýÞéÜÿÝ ìÛÝ ëÜýüÙó×ÝêØþÙ æÚÞãÚÚéØÙçÙÖàÛÚ áØÚÜÜÚçÝ ÚìÜáîÞ áîÛ ÞæÙÚ âÛ Û äÝ ß ìãßùàãúÞÝõÕ ÚåÚ ÙïØàìÙ ÝíÚ ÛòÛ àòÖýÚ çÔóøÕéÖ è îÙ ï ðØ ö çÛúðîÜöëÖ÷õîåÙûðë×üþð ðÙüüîîÝüüí ïàþûí ñÝûíêØüûìäÚùøçèÙüë ëÚú÷è æØÿüë àÖÿüë àÙÿùê äÛúëâØþúêüÖÔüíýÔÓÿúëÝÐþíÙÏþýëÕÑýí ÜÔþîÞÔüïÖÔùîÕÑðÑÐûøìÐÑþýîÿÒÓÿþðÖÔóáÓþöÖÕüòûÊÖüùðÿÏØøõð ÝÓþÿôÕÓúûõ×ÔùøõÛ×ýþøá×üüù ãÕÿþûÜÚø÷÷ÛÛøûùÕÙööõÕØøúöÛÜûùú ßÜøùúÞà÷ùùèÜûýý äÒøûüÿÐÒôò÷ÕÑøöûÓÖõñùÝ×öôû àÖôïúçØôïüîãóðþþäùñøåôíýñâòíýìßëìû çâëîýôàÙ×ø êáÛäýææáééèÞè éá×â äÞáïåÜßäíÞÚàîÞßéíÝÜâ áßáé àààäíÛÛä íÚáåëÞáã éæäæ íæãæ èæââóââä üåèå $çèæ %çìîáîî ñßæçìÞæçíßÞÞûìäààýòääâðìßßüúèãåþõããåþîåááûðæáæýöåãçý÷äèìûåäéþüãéí÷åâæþúåìî÷àçëìÝìí éÛçìÿïÜçî ëßãæû åÛéìýÙÚçêû ä×êîý ãÙèêû éÙíñþ æÜéìûéÜéðûïÛèíú îÝééø îßëðüóåîñÿæòõàïòø×ççú êÕâãöèÙèïøîßñúü÷àîóûùàéñùöØìôû æÙíòûêÞïøýõåï÷üßïôþøÝêëù ñÞïòýïÛíîüîÚöùðàðôúÞùþ ñÜòöëÙõü éÜñ÷ðÞòüùÜò÷îØðøæÚòûìÛðúÿíÛíõùëÜíöøëÛðùùëØòùú æÛìóôðÛíõô íÝìôóíÞëòòðáîõóöâíóôýãðöøùâíúø ïäíùõøáòûøøâòþ÷úãôý÷ûäñþöúäìøõúáñÿö÷áñüôüÞòøïßíûóéÜìüòâÝéùî çÜïüòèàðÿó åâòýôåßïòãØëýóÙ×ðýöÔÕïö×ÚíóáÜíÿöàÛëüôÖÚéúóÖÙîøÝØïúÚÖïþ÷ÓÓñøÊÒíþ÷ÍÒòúËÔðþùÎÖñúÏÖïû÷ÒÖëùöØÒðþù×Óîü÷ ÚÒíøù ÔØðøöäÕ÷ýãÔóúûàÎòþûÛÎïü÷ÝÐîùøÜÏí÷öÚÓëúöÜØéøõã×êýõåÓéùõàØíûøåÚîüû ã×ñþûÜÚïùø á×ôûûàÙï÷ù äÙ÷þÿè×ñûý èÜð÷ù ïßðõöòßóõøñØòø÷êÝîóóùÛóó÷ôÛòóõðßóøùóßóöùõâñöùøãñùúôæñùùûäôøûüâôûýüáïøúùäñùúüçóþýÿãúÿ÷äóøùöäô÷ú÷âóúú÷ãîøùûâîô÷ þßôüüøÝôøúðÜïõö íÛðõö íÜïóöñÔèîóáÙâðòæÝîþúèÙôþýâÖóúú ÞÜïøúìÙõüü äÚôüû èÛöþú æÙöÿúâØøûö ã×ùûô äÔùþóÜÓóôíýØÓïïêúÒÒñüìúËÔúïýÔÒúþíÿÔÏôÿìÓÌòúìÑÐûùëÚÖüÿíâ×÷ýïßÙöùíßÚûñâØûùîãÕûüñÞ×øýòÝÚùûóâÛõ÷ïãØ÷ôñáÖõñîÜÖêüìÿÙÖíüî èÜðö ñÜø øëßðöüáÜï öÞÛæóÜØëðæàëõïîàåíêâåïêìÞãëæßêòé íãòðêûãèýíûåæôíðÝîòëêÞôíïñÛòöðïáõïïÖøôðááééíïàòíïìÛí÷íêÞñáî çÙñìí âÚ÷ùò äÞ÷éóëäðéðéÚìîîâáôíî éÚïôïçÛêâî éæúïóðÙôëóãÔõêò ÞÛîëðâÚøëõáÖéò÷ãÞÿìùïåòòûùÞøòúïÛöçù ÜÖõñø ÛÞôéüìáøíüöåùï÷áùêÿìÚúöéèþëøâôøøìòíøÜüùðÝ÷çñÚúåîçøüöäðßòêõþûæñùâéæÿúâõèûåòôýéõ#áëðúÖî÷ïØþüïâöøäýôêî ñØàËíûöÕàùêùéßõþöÜóúû ôØþ÷ùóåèãôôäï ûëÝöûùéÙòúûöàíðûüæèåúÿà÷éüñéýòëãÙüþêýüÿ#åðï öôõãóãïÜêïþ æÛòæüñçØëû÷æòèùùÍÞæÿÝØùýØÔêïûÎöòéû õÝîáýôèäâú÷äïìýñêðäöÚóåþòé ý ýÝ÷ê÷ÞÖ÷ßóíòåäýÓúèðíùìýÙçøÿ áæó×÷òâüÜÿðÜóùúðæùèþøßîëöÓñí äÑô ßåØÿóØï  ãÒèáüâãîÛú æÛíèùâàëþü âÖÿÿÿÜàèÞö îÚëþüæÙïùâÖãùø×ÈîéøÑÞòï÷âÝçñ÷ßÔôóùáØêèð ãÝñ õåÝäÝïåßôøéÖõäö äÕâ×õûâÛôïùàÈþÙÔó÷ 䯸 úÜÔí×ñïÙüúìÙ ýãÌòçøÖÚæÿó èâûýö íÝýûöÞÛðýõàÜéõóðÜýú ïááùô ðÛðý÷ å×úûõßÐàöÛÖëýô êÔôÿö æÎß÷ÛÔçíñ×Üì óØàëóåÙå öçàèÿö íÙö ú äÜÚöÞÓï÷ÑÒêìóùÎÓÜôÙÌáúó×Ðá ð âÎóøûÓÙÚòôáßü úÞÛ¿ýìÚÛ×ûò áàÜ$èßáäßå2ýÜç¿êÚÕ8÷ÖãÀçß×7å×Ë*àÝËúåâÑ ùìàÀóîçÖú ïãÖúêÝÚô îáÉ óôÞ×ï êâÛò êäÞòñäâøõö×ãóíÝßñîéÙßð áçéöðöèà ïòàÿìîíïïáê÷òòáâõïýêéóï$ îòüò$ ìîùòí÷ðòäèöñùã÷ôúâøòôÚòåóûíýëïåéöðùãóÚêéßîäï áÛÿáõçÕèýëÞ ÛüøâåòÕþÝÿ×àÔúàÙÖù ÝÓÐö ßÓèô ä×þÈôæÚõ÷ ÜÖ Ñï ÖÖëðÖÖþÖìÜÐÿìòÝÔ æòÞÑæóÖÑÜï ÕÎÿðòÑÖîó àÙöõßÛþíñåÙ ôõàÍæòÒÊ õòÍÉûíïÐÐñðÝÔðùáÓäñûãÑüþôäÙ ýöïÕúõêÞþôíâúîñêÜùïòþâÞýäí ëÛóäÝúöñêÖïõïØ÷íðÔñåïæÔùì äÖþó ã× òó ää àñôÞäíîÞô íÞ êï êÜ ð éÚíìóÜùÜëÛüóÐ÷òîËúëíâÇ÷üë ÞÉìê äØîãè é×ðîÝÝëøé áâìåèíÝôï éÞüàêìÞïüð éÖòöòáÙðîï æÕùõ çÖíúñ åÝ÷íñ îáèúõöÛïýõ íãì÷ó ðáìýóíåéñò ÷äë÷òøâåóüÚôõ ðÜèóóôÜëøñÜì ÷òÞæ÷÷ óÔäèì åÖû áÙðÝÚ øí âÔ%íÖØ)ìí ß×9ìâÓ1í ÞÖ(ñèàÑ-÷ë ÜÓ&ñ àØûí äÛýò äÙ õÝÚ ðð â×ûõæßúñïíÜûøðæßúÿõ áÜúôô àáøòôëàíôõìàé÷ù ãÜéûÛÝïåù ÞÝ×ñùâÖæíþ ×ÚßýÓßäüÿØæÒ ýçÝÞóÜÙÏçþÙÙß ߨßÿÝÓÀðýÐÓ²üûÏÖÁýÔÒÊùÏϯ,úÄÙ½&ûËܼúÎÝ« üÒ׳ üÒܤøÛØ© ÞØ­ âݾøäÚ¯þÞÚ»õä×®êÚ·ÿ ìÜÂñ æà»âé óíÁíÿûèÂûùèÁüèÄ÷úêà ÿäÏûäÆÛöâÑõèÑ÷åÑúá¹öýôè¼Þþ óç»öëìÁä øë¿ïúèÁé)äÄ1üâºâ'ôà¾Õ$ïÜÂâéÝÅÛùáÊæå¿ïèÐàûêÌÕ ûìÔãþêáèþïÓÚòÞï!êÞêþìÜØüýéÞðûéìÝù$äíõüçöçú åôûøèøó÷ ñðïñ&ãøàîùä ïîôßúéêß&øåèÜ@çîß>åãúÚ;â&÷ØVçãôÜBßõÙCãïÛEæòÜ?ðâõÖ5ûáèÜ/üáãÛ0òß Ùß,âáÚ'æà ãÙðÜè×$üãí×éÝìÚ!ÿâìÚæàñÞýãòÚëçîÛêæéÛ÷èíÜøêñÛäçôÝþéòàûëéÛìæåÖ÷èÜÛçäìÑýâäØÓøþåÛÑüîÛÉöòÕÇûóÿÌÎÿúìÔÓúìÙÖíøëàÙôùí æ×öîïÝ×þ÷òÙÕëïìÞÐýóÜÑîíïßÌòüóÕÍöõôÖÐöîóÚÐðþôÜÒêøôÜÙöúøãÞôþù åÛðúûäÞøïû íÞðòü ïÚëü íØñ÷ýéâéóû ôÚéþèÜçé÷ îÙèüîÑÖèðåØâöú ìÝÞ îÞï ìàç êàé ìÚÙ éØä ëØãõ éÜåí çåáïÞàßÝåàûçÝâðßåïßíò çàæùþ éÝæøæÚÈÔòÞÛÍêáá×ýòßß,ñ×Ûì- áßÏâ'ïÚ×è$éÚËäæßÛåêáÌàêãÛèêãÖîéÞ×ÕæÛÝä ÞÛÓÚ àÛßè àÜÞà áâÞåü æ×æòÖ×ÞØøÛ×ÛîüÜÙãáöãÛîå÷äÛáæõäÛììù ê×ó÷ù æ×íïõ äÔìæóà×ôòó ä×üðó ã×ôòò âÜ÷âí æÛöð äÙ÷éë æÜú÷îéÙüð ãáúäçóÞð êÜþôë åÚøìåàôèðÜ ì èæÿóéýäïéúâôøßðß÷è íÝ îñÛ÷ñØ ñïÛ îòÜ ðóÞóôÝ ôíîÙì ãÙñç åØèÞÛé âØ ê âÜ ÿèâÜ ûèåÙüæåÚ è èÖçáÜ çá íÞ æ íÝøãïÚ ãïÚ ãóá äàãûåþá þåùåäûåñåüâ åöá óãõßé ðÞòåïÜåïÝýãîÚã çÞõâîÜæ éÛøäêßþýã òàûçòÛýèäØÿöéâÞûôåìÛî éÞÿùêîÛïíÙüëéîÞúëæïÝüöë çÙýþí èÙÿüï îØÿò çØýúñäÞôíìòÛûûôñÛùöóïÞü÷òÞûûøïãøòòôâõóôóßûõöóÛö÷øéÜòù çÝóàõ êÛõøø ëØïóö åÕïöø ßÙíâõ çÞëóõîßìîöóØðóú çÔçþ÷ âÙèÝõìàïýûßóëøÝðéÿ î×ðüáÜïòéÚïõ èÛéîêÛìö ãØæçýÜÛñþ àÝêòêáëðöÝïû íÚðýè×ñù âÚëúãÛíü åÝê÷ èÓîÛÑèôØÏéýÕÔêñÝÕèúÞ×çìþáØèùߨçðÙßêñæÚêú äÕêÚÑçîÔÕæØÕåäÿÖÙäòþßÚâôûãÚåøÿÚÚßãüØÝàõÿÝÙàøÿÖÓÞðþøÃÖ×ó÷öÂÚÝïøøÎÞØíôÙá×èó äáÙìö èàÜùúõãßêüóêÛçúùæÞÿïæÜàþðàáòÿ æáÞòû åßá÷ü âßÞîýèåâýþ÷ëÝôýûêÞôüçáýêäíüéáòþûèèúþçæûýåëøçèóõååÿíãåû èÛéÜÞáçù èÚæÿ çàæþ èáçîÿ åßèôþ ãÛíÿßÜçÿçÞëíîããôóãßëýòßæþ ëÜêú ëØìò áÛì÷ éàïð óÙäö æØÝçÿ åÓãéãÒíùäÖñÿäàíð÷ÙòþëØéø ëÖæî èÒíßÖåöüàÙèíúãÒïþÖÒèò÷ÙÕæî÷ äÔïý æÓîÿý ç×ñùýðÝôúýøßôÿòäïø÷âñë÷õÞìôô ðØïýóæÒêòïÝÔéïïæÛðþôöàðíô ÿáôöøÞõ÷÷ñÝõüöñáõøøçñóõÿâôøõóßñûôìÞñòôëÝóøöêàööôÜûüóÕùúæÓ÷þö áØóúóæÝôôêàôó éáôó íäó÷ðöÞòþñôÛöÿñôÞøõ÷ÞûõõÜûÿñð×ùïï æÍöüïÛÍòùîÙÔðïÜÝîõîáããóæ ëäêùè ìØîúìØÔîóéøÐÖêùçÙ×ðþé æàèíæøãíïëøãñùññÜñüñâßð÷í çáðóíïàòöð êæïòíðæïóíìãîùï îÝî÷î îßïïí íÝíïëäÞðîíãßñýïéàðíï íÝòüðíÜòõðëÞñ÷ð çÞðöïåãñìî îâóóñ ïâóõò íÜöúõ êÝóòó îÚøùõæßòññ òáô÷õóáö÷õðÜý÷ø íØøôö æÝ÷ðó çß÷òñåâõòò ìâõîñðä÷÷óñáøñõêâòìòðßõôô íàôøõìàùóù ëàöôø ìÙùöúá×ö÷úÝÝøøýçÛûøþ å×úýýàÔõùüÜÓööûßÕôø÷ âÖöòúàØ÷øýåÖûÿÿâ×õöùèÕöðûßÙôñøáÛøõý ëßøöþøÝüÿóÛúùïÛûýîÚøôÿêÕüö æÙøùïÚýþ ëØùù äÛö èÙùôïÚù÷òÛ÷öÿïÛîðù æØñèü 䨸ûè×ùó æÖõòäÛôðéÜõòæÚñíþæÚóðýîÙòìýìÔðéü àÖëãù ÞØæßôãÙîïúîÔõðûáÐôðû ÑÍòíúÍÐíêöÕÒëíõÚÑòòøÚÕïîöÞÔðôøÜÖíîöÝÕìñôÛÕíôôßÔëíôÝÔéòòÛÖìñòÜÚéîïçÜêïñ ìØì÷óåÙêòòãÝìðòîÝò÷÷ñßóôø îßöÿú íÝ÷õú êÚóûù èÛóùøéÛðöö æÞðùöìÞ÷üùóÞ÷üúöÝóûúóßó÷øðäôÿú÷åôúúúáôÿûóàóû ëåïú÷óâöúðãõþúùàöý÷àòýùòÞóûìÛóüùèÚóþ÷èØðøô æØòûö çÙòöãáóûøñàûþîÚúý åØõÿú äÔöþú áÖ÷ú àÒõüùÔ×öúáÛõüüêØæóó æÕìúâÛô èÞú ìßðòãòý÷àíùú ðàêû÷ñÞïÿýôÞé÷øõãðþüúæíøø÷æéøõöãìôøôÞíøø ïÜèøõ ìàíòô éÞïóôäÞìöõéÛìôôíÕòûø ãÛíôò äßð÷õ çàðøõ ðÚñûö ïÜðõòôâîøñöãïöô ñçïøò õæîüó÷èíòòüåò÷öóäðýõôßñøõòÜòúôñàóúôñÞôøöêß÷øìÚóø äßöý÷éÝöúø äàôù÷ åßóøõæÜ÷üø äØòùõ âÑôûöÙÖðõô ãÚ÷ùø åßóùöìÝó÷÷ëÝîëóìáùùûìÞóóú åàøöûåÛøûÿ âÝööÿ çÚòôüàÜîðùáÝïòûçÚïòùåßóôûçâëñöçáìïö èâïõø íãëíóôáíèóîßééð êâëëïñßðóôòÞêëññÝîéðïáíëð÷Þóó÷ðÜîîôíØñîöåÝîíò îÞòðöñßîíôïÞïñôëßñðöôáóóùûäìîôÿâóòøùÝñôø îÙòô÷çÙíñõ ëÙñö÷ ìÝðóõöÝóúøóß÷ùúìáó÷úðßðñùôâéìóøáíðöòßóùøðÝñú÷éÜïóõåØòöö áÙöøú äÛðñöè×óùø ß×òúø ßÔíõöÜÐòüùþÕÒî÷÷ýÔ×ïøøÙÛìü÷àÙñûùß×íõ÷ÝÒñúøÙÒðööÖÑóüùþÓ×ëõôÝÜñúøêÝõüý èØúÿÿÒØð÷öÖÕòþùØÜíôõêÞðúøìÞòùùîÞðùùôßðóüó×ÝëõæÔäñø àÚò æÞî÷ ìâæñúßê÷ò×åîÝÔäõÿ×Úëú áÜîúêÝðýï×éùßÔêöÿÜÒòùÙÔíöüÛÖëôøÜÛìöùßÜêòöãÛêøõ ëØîúø çÛéðò ëÜòøö ìÛî÷ô çßìóñðâòõöòàïùõ îßïøòìÛïþóçÛíõñãÜîõñâàîõðèÝñûñèáïøðôÜõûóåÞðúð éàðùð íÞðúï íßô÷ñ ðáô÷ñðßùÿô çÜ÷øòãÙòôïãÛïñí íÛõùò çÜõûó åÝõóñ êáöóò÷àôúôôÚôúô äàîïííßõ÷óïÛ÷÷õíØ÷úö åÝõùôèÜ÷ü÷æÜö÷ôæÜõöõ ìÛ÷ø÷æà÷÷÷îèô÷ùûãäçôóáãðôòàêûðãéû÷Ûåö çÝà÷ ìßå÷òÝãóòÜæôîÞÞìëßÝéìÜàéæÞÞìÿìßæðíâäèýóåæêýúæçóúäëñþ÷àîìþôãìðüÿæðõÿèðöýåíòûöÞíôöæÛìðñäÜîñðèØðòïâÖóõðÛÙòðî âÖõ÷ïÞÖóòí á×÷óíéÕ÷óìî×÷õíìÛ÷ôíëÙùöìåÙõ÷êäÕúùéâÐõñèßÕöõéäÜøöé ìÞûùëéÝùøêçØù÷êâÖù÷ê æÖýúî çÔñ çÚýýîõÜóôÙüñì×öéÚöìÖø ãÕýô âÙÿôéÞüöìÚù äÛ÷äÚúçàúößûûøÜýö÷ïÞù÷ôðßþöðÝùíÚøäàüûöïÝüû÷åÜüúõãÝþú÷èÚýû÷ éÛúõöëÜÿüùìÚúöõ äÞøøöðÛõñôêÙåôð åÞðù æÞóÿáÜòßÙî ÜÚò áÖêþ ÞÙèýæÝïÿêÛîþþ èÞìýüíÕêúùàÚêÿúêÛóÿýçÝìøùæÞìþø ìÛëõ÷ éØíõø àÙîø÷ ãÜìø÷ éÝñø÷ëÚñù÷ äÛîùöçÚòó÷ãÛòù÷ äÙõøøáàòÿùîßõúúìØæøïÝÚè ö ä×ëúÝÖï&Ü×â!üÙÛâ0ÞÙÞ/þû×Ùà:þÚÑÞ0üÐÌÚ-ýôÉÖÕ÷úØÙØóûÝÚÝöß×ÛõØØÜóÜÖÞò áÕä ò ãÛáï êàäôëáæûñæãçüñíßçóñëáê÷ñ ìÝèýñäÝêñð äÚîèò ÞÛðôô ãÜïíó ëÜñêõëÞðçõîÞòéøîÞôÞõîÞðÞøêáíÞõðäñÓûòàîÚüñåíÞõàêÔíßæÕ êäéÑ÷èíá(üæàÁ2úëÞ¯;'íæ¦H.ìÛ¤H(îÞ˜J ëæ©K!éáA#êå:#þèë±4ùëï¯(ÿéô·þæÊûßÊ $ýå ×'ß óÿúç ÕïþàîíùÚõçòÙöÞóâøÙöÛ Öñ×èÎ êÕûË娯 ëÝ ÇêÝÅ íÖýÅ ãÓ ôÂéÞÇ ëÚÅ êØóà ëÔ úÆ ç×òÅ æ× ÇåÖýÈçÝ øËê×ûÍåÒ Ð ßÍ ïÐ ÚÕ÷ÒàÖÿþÔàÙø× åÜØîÓ÷Û ÜÖÿôÜÜØúá àÝûàíÝÿçëØöç â×ùþèÞÜòéâØíäÚôñìéÚûëîèÞêõð æÖîõìÝ×èõÝ×éùøàÔ÷ ÿØØÞöþÚÑñóÖÔáîüØÏäõþøÐÒåþüÓÓäçûÔÙâû Ú×çøàÚäðþ ëÞâÿìØä÷å×ßí×ÜÝæýãÖòüÿåÙÏëßâáíßâúçÛÞçàØÛ áÞÝâïçÛûöááç îââì îãÚñ ñäÜ  òçÜá ðæÓàÿõáÛýöàßòýßÙìæáóæåúüè×å÷åÏ÷ñëçêõâÐîïÞßï ëàÙúóåÝóûìâíæè úî×ïûæßðûâáûüÛÞûãߨßí ûâáö÷Ûê çâéöëÛçõãäçúñçæó÷Üä ñàÞúéßò çßê ìÚâ÷ëÛééþëÕâæØåÿêÚÚöÿ çÙíìÿ âÞó çØýüâÝéñ êåõû ðãôû íáìøÿñÞòóðÕúõæÕíóè×ñþ çÑõÿàØìôúêÙòóüææéòúïàúõý ëäîþîÞðýüëáèöûõÛùþýðÝí÷ûôÔòåÑòöû àÒî ûÝÒïöö ÞÏóþúÙÙäûö àÙõöøÖ×ò úÿÒßìö÷àßêø ãØôöú ßÔö û áÏí ü âÖì÷èÕëÿú æÛóùúéÔõýÝÑä÷öÔÙùöãßêïõíáìÿõ íÚéö âÞðöäÒõ úÔÓùüõÙÕôÿ÷äÑéûõ áÕñùäÐøù Ý×ôý÷äÝóöåáêö åãø÷ íääùî íäìòåáñ÷ÛàìýøÙÜñûßÛòùçÚé÷ëÜèöòëáô÷ñåëóæçèð áæóó äêãôîîñïÿñüñêõ÷ëù÷îéõ öóÞòõðÜëõòíØòö àØøòÜÓêîÓØ÷òíÚÛñï àßïõëåßõï âáïì êáîõì ðáòüðíÝúððêØñ ðäÏûùñÝÌô ïÛÊóðïÛÖøúí æ×ñ ðÜÜúôï ×ÝòõîÚ×ëåçÙ×éèæýÚÛðëßÙøüïÞÍñüðüÑÑ÷÷ñáÏëíìíÎûìííÒñòíÑõóçÜ çñôÞ÷ùìáÎòèâéî èâ ñöëáëò òÞòó òãÚïüÙêðñÖýãêðØîð(øÙëð)þ×ò"ûÙÿÙíóáüäïòäøùñ óêôõì úìôèîþãûüò ôá÷öðóÜøéñðÛýòòîÒôøð ߨéììáØðöïäÕùññäÎîîð áÑ÷÷òç×îóéàòêòìÞòõæÖîûóýÙØãèíÜÓñ÷ï ßÙå÷ððÝï÷õóäôîõ#þÞïù"÷âëøôÚò þëÙíîøíÛêõú óÞðþûùßêùøÞçäøúñÝçøüîãÜõöõåé÷ùöççìó!÷áêõíèçæð'úäéý÷!ùãåóó#ûÞêôø#øâéÿø ýàîýúøåéëöýâé ù ûÞßéó÷Úïü÷ðÝàîòïÖïîö ÞÛìéõ ãÞöîö æÕíû ãÒõèø âÙåû ìÚçýðÒøâÙöîö ëÒþåøÞÖêîôæÕûæöåÙõíùêÚëð÷ æÛ÷ÿõ èÙñÜô êÛîìô îÚñý÷ òÚôìõ ôÓîòö êØòö íÙéæõ éÞëëòìÙò ÷ äÜããôì×îúúâÙêòö äÛðúâØîïøýÝØìû÷ýÞÞë ÷êÙìøûÿáÔç÷öÿÚÔëüùÖ×èúØ×íûÔÒðúÍÒèïøûËÐæøüÉÚê÷ØØíðú×Õæ÷ÖÔíøù÷ÏÐêúöñÊÏìúøÌÔäùõÕÛåúùááîÿû ìãóþ ò×ãîôßÔìúøÝØå úÜÎùÿÐÑïþÖÚúáÙîÞÙíýÛÜñýÝ×í ÿÿÓØîþúÚÚïÿ Üàé÷÷íäçûõêëøüèôþöãòþîÝíøûêÚç þæÕìõüâÔíïùáÒãìôâØêúù íÛêõøóÞëëôôæ üéôõè*ööýæ1÷ûì7öûÿâ+íùêã3ôúêç&õüòÜ%÷øäÝßôìáúù!÷æèû#ëøûê ïõþêàõ"ëàõ#ììô$èí÷êúàòåþðõùáóéñôãîØòûàðæö#âñì÷"üäíêöòêñèõ÷ëãÒôöìåèöùèèã÷üæãæûùãåïþøßååþóÛäòýíÙÜáûíÙæ÷òÒßÿ êÖÜéîÙØÝúë×åòýÜÙê÷ù ÞØãöøÜÙíóùßÒèøüÑØóþø ãÕõû ßÑíñö ÚÌîþõÑÎäôøÒÎéòûÑÑâöÖ×îý áÖÝïúÚ×èùýÕÝâíøÛÝÝûßÛÖáñÝ×çÿüÔ×åîõ ÚÚìòõåÛê÷ú âÝðúþâßæ÷ýäÛëìü ßÙîøàÛãñùæÞæöÿ íàãþ êàèëÿêâáö êãáõýíÞäû ìÙÜîñÛãñùÝëþüÜßïõÞå æåÞïçìà÷ òêÙîæáïëäÙñðâÛøóàßùãàûøáÕíïßÕð ìÜÜù îÝÛû ôÜÛñôÝäÿ óßÞü òßÜæÿïáãýÿýääÔéøõÜãÕòùóØÝÜúûöØ×ÛöùûÝ×ÚïøßÜÝõúðÜâíùòÜÊéñ çàÏþøïàÙ  ïÞß èÜÙêÜØ îØÖåßÐøûëßÚãÛÏûõßÛÛúøäÙÜçø àÔÝý àÙâöøîàÙæóöÝãúòßÝ÷øòáèôøñàãñõðßç÷óëÜãôô ëÙòîõìÙí÷øíÛìíôñÙí÷÷êØóööéÖóõ÷íÕ÷öðÛòçñ÷ÚóîöòÜùóõöÜñîõïÜùõñïÛ÷ð÷î× þéÔõþ åÖ÷øêÕóúãÔ ïõ ÛÛþ÷éà óõðØéöçØäð çÚäð èÝúô éÛëðîØ ÷õëÔñò âÑëî×ÓïðàÓ åô ì×ùóøÛòò ñÜöñ êÜöîÝøøëÞóóääßë ìã ôñã éòõãòöÞìðïÚÝììÚ÷ðí×úóçÙÿîñêØößÛúôí Ýáàìææûæììåûòïçûàëõßýñãßúéêæåüçíöâóïóâýêñêáþùñãâùèðýåèù÷ðöçöïûæõãæýæôë ÿÞüìïØ÷ê äÙúãÝÖ;èÙÒýãÔÏú åÖÖãÛßøáâÝñßýáÜì ßöÜáïáöæàðáåæëöÞðæòãòßñã"ñÝóþç%õáüòë%øàóðñâòùòòÞûþôïÚÿúúèÞ÷ðôäàöùóààóõñÞâðîñ ââñøðêáööôïÛòëõèÛöæöêÖ÷ïùäÒýßûÞÕôßûÝÛààÜ âÝ× àÜÔ É ÛÕ» ÚÚÕäÔÓÜÓ¼ÚÖøÚáÓÎßÕþÄéÔØïÕØêÞø×îãúÊ óßùéòá÷ÌôÜ÷÷éØòÖåÕøÛäÔïÚèÖûíëÙ÷ãòÙçðÔûõéÎðÜÑóçüÝØùíåÙûÿåÕõøþãÒñøü áÒûçú áÖöú æÔöúû æÓøûüãÏõ ûÜÐùûÛÍñðöØÐñõõØÒö ùûÕØøûõäÛïöëÝ÷÷ îßôöõôÙö÷ êÝóöó óÛñó ñÙèþðòÙìòöÙðòûÛð ô õÜîñëÞíïìÜìïïÞî ð óÞíììàäéíßæþê òÜå ì ôØæÿêòÓåìë×åêïÒìòäÖåëüÞÜæìúÝáèìýäâïíÿäàêíæàéðìßæýîðãâýíöÛëñ ì׿î èÔò óâØéðêÚæñïÝé óùáî ôþäæñùáïóèÝçÿíçÛáî çÚéð ìÚìöòØäóñÙæõêÛæöñéÞã óé×ãðøßÕáúïøÛ×ÞúëÿäÛßìíãàÿíöçàîþèæôâÕðì÷ÙÙøðîÔÛþïÔåÿòÖÞÿ ïÜÙñ ðäÚü ðêÒêõîØè ùëÒæýíÕðìÏãþ" åÕáøáÙèûÜÖßôùߨÞöüÞßõûõÜÞå÷ òãáòùùëèò÷þîâðõìâæõÿêäùöýáëë÷îáåöôîäçñôõæéñòúåìõöæðòõ ðæîùòðäìõòñâîùðôçðññýãúôøäôóò÷äøý÷íãùùíãùüúðã÷ úñÞùúèÚû ûæÖüû ßÕúû ÛÕõúøÕÙõûøÑÙþüÎÚüûûÓÛøý÷ÓÞýòü Øßûöû ÜàûóûàÝöøÛØúùÿÏÙöðôÕÝúøþÕØôøô÷ÇÓóýñóºÔñôîÊÕôüðÐÕøôñÐÛøþô ÛÜøùóâÖÿ÷ ØÑüûôÏÑþþöØ×þ÷ÝÛüÿôÙÚùòÿÌÙ÷ýïÉÙõùïÐà÷öðåàøêÞùüòêÜüûòåÚûýóàÞùô äáíííâáíðíÝàñýôÞåõøâÛûøüÑÜõøöÞå÷úúôáøÿýñâó÷úòãóøûïÞõùú éÝ÷ÿþ æßöûúæÛùþÞÖòùøÜØòõöâÛðõ ßÜòòô ÛÜóõóáÚõüôêØóý÷îÕ÷õùëÚ÷úûóÜÿ ÿöÙú÷þò×üÿþíÓüøÿ ç×ûúüê×ûõüæÓøì÷Ý×ííóãàéëð÷ãýþÚëåõ ìÔÛëïãÖåùéÕé âÚÜ÷ ë×éè×ã÷èÕÚõ ßÞÖëîáÛãòå×èýããîýåÝåÿåáõÿàâò õÛàâú ðÛàæø îÝåéøðÞåê÷îåæìõôçèïóôæçæðöáéëðóâéãì÷æìííûàïîïòßìéé ìÚïêê èÕïêëéÕ÷ïë ìÖ÷øì èÕøðí æÕû÷ì áÛùôêæÜüýìèÛþñììÛþùêñÜþùìðÙúîíØÿýîìÖóì èÔþí ÞÑýïØ×ôíêÖùðíØöðìÜøóãÝÿôï äÜûðàÛÿïïÞÚÿ÷ð áÖýóï ãÖüðð éÕÿüõ éÓýø äÓñö ÞÔôø Ý×ýñöâØøø âØþòö ß×ýóù ßÜóú æÝÿôúçÚûùúÞÖûñùÚÑÿóû×Ðúóû ÝÉþðý×ÉûîùÖÌüôüÜÔúðüâÖü÷ÝÚøïý ßÜùñ àÖùôÿÝÚ÷òÿåÜùíåÙúõãÖýúßÕøï æÜöúôÝû÷òáùïñßøøóàöðòâôöòæïìûäù÷ÿàêèóÛÜäþ éÝçöëÜæó òÛçúõ×êþ é×äö äÛÚã ãÝÜæ ãàÞë àÜØçÝßàîåàÜæ äßáí æßáï äÜáé åÜäï æÝáðîÝèñïÛêõç×èöÜßáíøçàæïûäáâîöèßéñùéßèðúïÛñóýéÙéñøäÛèïöæÛêñöèÚïðùéØïòúâÝíóú èàï÷ø çäéðô íäëóõ îäëðõîàðò÷çâéîôðæìðõûäïôöøáîîöøÞåèóõÞèêôöÞðöõïÝðóôïÝëíð ìÜêðòðàíñö÷ßÞáð ðÜåîö ìÛîùêÜéðïÚçêîÝðô ùáîí àééûâéðýäæèüåéðùêêìþþêèìúçííúÿåíóøûåæêñàëôõûäêëðüãîòòùåíðïýäíñíüâëïê òæîöë ýçñøî êîõêç÷ÿïöçîöè ÷äðùêõåôûéùãûíûß÷üë÷Þ÷ûæöâùþèÿåùëýêùêÿçþíûáûë õßÿì ñÝüéðÞûéøÝùçúÜýé÷ÚÿëðÙêëÞüçðÛýé æßøæðÜûå éØñûÞÿÝÔø ç÷ØÓþê÷ØÑîû×ÍþéÖÐþêÜÊþèûÍËö ãÍÐú åÒÑúåüÏÕû éÕØúçÚÖû êÚÖüéÞÛ÷éߨùêüØÛùïÛÛüòÝÛüòç×úñçÕþóãÒþôÑÖûòúÍÚôþðúÒ×üôü×ÔõýñÙÖöóß×øøßÛôþø çÜõÿùèØøû ãØðöôà×ðûöàÝóûøçÝøúü äáòø÷ æÝ÷ûüÞàóúûäßóûüæÚóüþÝÙî÷üàØòôþâÛ÷úîÚõùñÛñúøÚó÷þÛõûñßðôìâðû ìèìðÿõäîñÿïßóøéßîôëÜòùåØîóÿÝ×ëïþà×ëïÿ ã×êïÿ æØíñê×ïõ åÛìô æÜêðàÜåðþþÚÛäìýþÕÙäìýÖ×êôÕØãëþÕÝéó àÙêñÚÛèî âÒèï×ÍäíÌËåíÉÔçñÕÛéñÞßåëÜáßæÿÜÝâáÚÝÙÙüÜÚÎÝú ÝÙÞùáØç ßÚÚ÷äÝÚýäàÝøìÞÙö åÚÔð àÜØïâÞÙîÞæÕïÿðçÚíðçÛèõäå÷òàÞîöÝæóóÝçñûßìòûâëòûåéóüüåêòûøèìïüúíîòü!íóø&íîôû$ëóñþ!êõóý&ìöòþ( ëõñý# èòðù"çöôú%èöõû$êôñ÷#ëõï÷!èøõø ã÷ðöáûõöáøóöàùùöýâüö÷áÿýøÿÞüôöüÝýúøùÞúúôøá÷òðùäüöóÿÝýøô õÛùôï õßúõðùàùùðüÜþùòöÚüòïôÛøô í×ûöñåÖûôîäÔýõíáÔöôéÝØõïêÛÙúöëÞ×úøíûÙÔøôìüÙÖøøíßÓýûïÜÐ÷öëÒÏõõìýÒÌüþðÔÐ÷óíÕÑíóèõÉÔðíöÌÓñîòË×ïíùÕØðòñÑÜð ôüÜÛìóáÝïðåÛíüò êÔðÿòàÑó÷ÙÓîøðþ×ÖïþðÛÖðüïþ×ÔîüïýÔÑðûðûÏÎòþðôÄÒóùïûÏÖ÷ýòÝØòûï åÛóùðëØõûð âÔôûðÝÒóøð áÒøûó ãÑúýôØ×õûðÛÙ÷öïÜÚñóëÜÜõõíÞÝôõîâØù÷ñ åÔøöóåÑ÷õðÞÐøõñÜÔöñï ߨöòñà×ûúôÝ×øõòßÔóìñÖØòñðÚØúûöÙÜø÷ô ãÚü÷ùàÜú÷ø ãÚ÷÷øãÚöóõæ×ù÷ùæÒù÷÷ÞÔ÷ñõäÔùñùåÚøöùçáõð÷êâõñúêàõñøìàõñùðÝöôûîÜôöüðÜóôúøÝòðüþàõîúüáõôý÷ÜòóûðÛõúýóÜøøñÞôóüìáôòúìáòôùêáòõúéà÷úþêåõ÷þøäôíüúàòôÿôÞðïýðÞöõþðÜõùþêÙõôý åÝõöýæãï÷ü ðêëìöþçòöüüæìöùÿÞîõûøÚíðùöÛõ÷ÿþÞõóýàö÷ÿþßïñü÷ÝùûÿóÞêéùðâèëõ õàôôÿôäõôüåùïÿ"ãöêÿýãõêÿùáìåû ôåìëüÿÞòðú×õòñ×ðêÿõÚðìüûßòîþôãîëü éäèñùëâçèøêäêëùíàïðÿçáèí ïäéïùÝéñëÝáõ ìÛêÿêÜíü êÛê÷ ðÚñòÜë ìÞçö äâæüìâßñ ìâÜú ðÞáüãÝÛòû×ÞÒíüÝÜÝýçÜÑò ëÚÔú ãÝÙõ åãØôîàÙòëÚÛô áØÛôÒÝßù×ÜáýÿÖÙÝüÔÙâùØÙçøØÖáôÒÕäïØÔêð ßÎåìÒÓæÿçÐÙáûã ÙÜèûèÙáåë áãæòéÞÜôöÞÚØôüÞÛÚë äÝÖæ èßÐÝéàÓáðÞÙÝôÜÙå ñÚÛãèÚÝèô àÜåôë çÚð÷âÝØôþÖØ×öÍØÕ ÌÚÔÅÜÕ ¿þÖØ·þÒÕ¸ÒÒ¶ÒвÒÖ&± âÛ%³ìÜ$#´ êÚ³éØ#³äÚ³ äÚ(¸ ê×&¹æÖ0»äÞ.¸îãÁôå&Èôå(1Ðõéÿ@Ó ê)Üë93ãäA<ëâ4é"á%*ëùâ1îûâðèñ5 á0'ùöÝ ï çèßüäðû ë+ ø!õÌâþíÞÓ¹ï ãÜú ÷êäá÷ ëÄþÞîù×ÈéºñÙÝÅÊé êõñÝó ÆüÇñØÐÁÀçøÎ¸È Þí¹É³µßìÈáÈ’ææÝäµðìÏ·Åôâ⻸ìïë¸úžß¼ýÁáï¿ùëÖÊÅ÷íØÄþîíÜ*þ³íÍâÙÌøêõýôÓê½öû Þóùû üòá õáþ 0ÿ•úýø¹éòúëñ#ÿâöþïÏø ñÒéò îÚÿü5úùú.(Y( #G)+#XO»*3ùÜöú?Êú ûÜØÜë&ûÖÙåç@æô ZBÌøé¸âßå×ìÙöîòçUÖØæëò àÛ T*ÞêàöÐÚÑöª×ÞÏÎɬÕÏìÄöÖÑ"æÞÚ 'ú¿ÅÊïÔ×ÍÀÿ êËÍÈõÛñÔÖè¸ÊÌîÎï¾Ëþø”ËÊóºÿÀÃýåê§Ï× #ÅÖÈÑÿ4àÄÆÒгÒÊÍä¶ËÐæÄçÁÔþ ÛÂÅÍüáɹ×àÙµñ¯ÊòõÞ²ÌßýÀßÏõèÛÝÆäÖÃ)óÅÔ­³Â%æ³Á*ë´õÆ-÷éßÄ.ÚÓÅÄÔº'ùø¹ÒSؾ¹ÉȾòïíÎ üõÕÌ ä¾ÁýÿÒÓ»ÿßÏëÊüþàÛÁóùÇ͸ÇèøÑåÚýþè¾ÈîõÞ½ä¿ÛîðÙØñüשÒèõΨæÅÛíøÛÑáó4¨ìñ˜±ßæìùßÚ«ÞÞôÑ«àßôÄþãÜó,òÊîìûûÙûãÞòñÿÄùéúìÛïâöóãîùëý óËçòà¼çüÙÒêü÷ÖàæüòÆìâÜÛõêääù÷äçúàÚõü4åÔóö䨸ùúýÐ$çÞÿÿ ïçøûôÆþ êìüúþÀ üúÞÃûöÞåøôðÕøòßÓ÷ï ÙâñìÞïóî)öÎöñüÛôòë0îûð5þÒûñðßïøï-ó"ô$Æ$üõãÓ÷îöæøî öÃòîüÔÙóëçÿ!ô*é üö)üÞûô(öø÷ó(äýõ*øÔììæßííëì æñïÒóô äÞñûðì-ó +ùÑáæÏ&Ì àß*À,íÛ4µ0èí-¯/6ÿã5œ.7÷ã?Ÿ.Aé?©+Gß?­"<úã2©<þë3¹6ÿî&½< õÌ1 ßÑ ,úÛÏ.÷èÙ1àûÎ(ëíº.7íé¶E+ìÚ®D)îå¶A-êâ±4*éà¶%,ûïã¿4õÖCâðØ÷+ùýîëæ4âûà!õàþÕóèþ$ÊøÜ2ÅïÏ:»èÙ JµëÑH® æÙ J¨ìÑG¢ëâIœõÕL› çëG˜éèK– ããúC’ çò÷F”÷ÄöB–ü×Öï>•àÓ÷>œìÌÜò<›ëÑÊï=žéÌÍê6ŸþÙàì7¥ ìÖë1¬âÖê5­ýÓÅÝ'§ðÌâÜ%©âëá-²éÔà)µýÐÍÛ µýÐè×#¶éß×(¼ûå¼Ú)ÃðÆáÙ&ÄìÓÒà(ÏåóÙ"ÏáµÉ×&ÏôÍÏÔÒûÖ¾Ô×îÃØÑÕÜã×ÞóáÚ%æóêÔä÷ãÕéìîÎãùüÒçþÕÑì çÖÓïÿÜèÒóøéëÒõÿöëÏöõêàÍ&÷õìÚÔ+ÿöëãÒ8ðàÔ8âáÕ9 ìøÐ0ûßÉ'ðæÈ+üÞË"ôïÎ÷áÉÿêêÉîÜÌôçÕÎ ëâÛÄòåÙËçÜôÆúìÑÍÿñÒÛÇòåÚÌü çÑÑ÷çÚÓñ ñáÈ÷ôÛÕþ îàÏîòû×é üöÕî ÚÕê òáÌàïéþôïÙï èãêïÆ2æÝÎ@ÖéÉ5Îäß6Í øÒ8Öíá+Ðøë%ÛÿàÏõêËÿåÏûñ Ç ØÔöÖÖóàÌ ú×ÇòÞùÓôêØûàøÙóßõÏúèðÕüÝ÷ØõâêÙðàîÔîØæÔéÑåØ åßåÙ êÛÞáèÔâØäØÜÒãËÙÕ ûÑÇÔÔ üÓÛÝÛ ÝåÓãìÉÝßÿÑÖÒÞ ÛÅØàøÉÍÖéöÉÈÖß÷ÅÐÓçúÑÊÓäþÕâÓã ÝÆÖéùÇÍÔî úÐÜÔè èÜØç ëðÔíöè×ñíÔÓìáÕÒì ßÖ×î üÞÛ×í áÌÑî ýÙâÐçûÚÖÖï ÜÎÏíÙÐÖ÷ ÞØÑíÿÜØ×ðáÌ×ñÚÛÛôéߨòüáäÖõáÞØóßÚÜñÝÑÛ÷ áÉÛóôÒáÖôçÑÜøÝÆÞôÑáÞóþÿàÚÞ÷ÿàØàñùÖßÞöþáÕáùþæÜê÷åÕæñÿàÛàþú èÏê÷þÞÜäñøá×âñöãÙèôöïÛêøööÖæïöéäêóõõäìóö ïÚçøò äÝçóñêÈìñò àîëñóðËôòóâæêòìøÝìñïèßñïïëÙïòíìÞôôððáòðî óØ÷÷ðíßôüîêãòíì ïÛóòîð×ôöíêÙõïê ëÛôïíëÜùûí çÝöîéåðõôéùÓý÷íìâøöìýÕûðõÚðíäôåõùìõÛ ö êÖò âÈþþíÚÜþüîðÙÿï îÚýùìî×ì çáùñãîéüöçùÞúóçïßöìâ÷ÚúøåôÔþóæéÚûðå íÖøçêãöæ÷Ý÷çðêþêâõåýóâìÚûæìè÷êøä÷èøãùéùÒ ðêç÷íúÑüìëÕôëâÚ÷éæÞ÷ìéÚ ûíóÖøíñÞôëðÙ ýî ÛÝõíÙÜõêãà÷ëìÝøë ïÜøîôÙ ùñðÝ ûññÙöï$õ× úðîÝôìêÝõíð×ïëçãôëêÝðê ßÛýìæáÝôì áÚ õ äÚ ûñåÞöî çÝ÷ðæÚùðîÖùðìÔöòáäöïìáóñ äÔ÷ð ßãøïéäõòíãñðëáþñîòëÿøò÷àýóñõæþöóÚùöøàú÷ýâúúúæõøäÿúøùàúùóôÞù÷õ éÜúðó éÝýöö ìÝøñô éåùû÷äÖùô÷ àÙùòø âÞ÷ôøåÛþúü ááú÷ùáÜùõúàÛóöø áÝúùû àå÷÷øåá÷òúæî÷÷ùìßôôøèéóîöóíö÷÷ñÜöô÷ìàòó÷îåóôùõÚôöúèÞðôöíæõöùòåð÷ùöåïöøóäñöùõÚîíùéÙìêõ ãÖêéøåÛïéüïÛîêþî×ôêãåóîíáïéóåðè÷àíêðÝëèÿëáêçþïâëåýòÛîíÿãßëíüá×ñîÔÚìëý ÞÕóñßÜíñüäØíóýÔäïôüáÙóúÿÛÓíóüרíóúÚÎðöùÑÓìö÷ÑËêöõþÇÎêöõþÇÕé÷ôÒÒîø÷ ÕÖìõùÑÌïûúÐ×ïûø ØÖíÿö×ÑìûõáÕíûôåÚìýô ðÝîùöõØñ÷îßì÷÷èÖíøæ×îÿö ìÛðúîÙñü íäðýòØìýúâÑäóôý×ÜäüóþÛÒìúÛÒëùãÚëú òáìüöàíý ïßëýðØëýäÙãÿ÷èäëý÷ ïÔêùÿÝÖäÿ÷ý×Ôæ÷úÕÞåúõêÞéöîÛåúöìÜåþõ îàéþ÷ñäëÿúïßíüéÜêû éÚëûíßíýôÞïþ éÛëû åßêÿúòáðýõåíýüßðýõÖØíõéßåñÝè óèå ùàÖ  óéäúçÛ úëÙÿåØýáÕ÷ ÿæÕü ÕØõ îãÜû÷ÙÝù ìÚÞô êÜáþïÜæüÿðØß÷û éÞâûøêæéüùéÚäïö ãäã÷ó îÞè÷ôòÔéùóêÚâôïñßîþñô×ðòðìÏëøîæÝñùï ìÛêöïóáñùðÿåëðìèñôëûàì÷í ûæùþïÝ÷ýï ôÝòñìîöõï åøùñ×øþðôÙ÷÷ëôÐõõè êâöòêôæøõìõÝúî òäþ÷îôàúïîØúõíð×ÿ÷ðôãþïúÛüïùéüöîÐùð éÒþíì åØüùíãØûúëåÚüòêÝâüñì æÖýõí áÝüòîîÜüùð ìÓýùðä×ûóïÜÒøöíþÔÑüðìÿÕØôêê ßÔ÷ð ãÇýôðÖØòðîßÚ÷ñ æâöóòåúõùàôöîÖùõéâøîôøÖöïóÞÓîíîØÖûøûâØûñý äÒ÷øÛ×úø àÚøóãßðåüîèõòÿ÷ãóðü æ×òóûÔÍôåýÒÔóëûàÒõïüÝÜóêûàÔóäùÚÓøíúÙÑðïöÐÝñãóÛÚôð÷ ÚÜðìôæÝôïùèÝðëôéàõð÷ äÖõ÷øÔÐîìõÒÒîîóàÔòõø ãÙðñ÷çä÷÷ûðèõöüëéôùø äíìòõîäôôúêÜëô÷ ààíñ÷ æàôùûóØýú éßøÿîÞùùìÞàíô ãÝâøùàÝé âÜê àßÞ Ýàæ  âßààæÖûïéßÿ ñãÚôîÜÜõ éØÝ÷ ãÕá÷ØÜáûÚØÞíüØáßòù âÞáôø áãÞðö æÜè÷ú áÛéõúáÞëùú æÛêöøÝÔêõõ×ÑêðóÐÜîööÛÙîõôØÚìïñÕÚêöðÔÚìôñÔÛèíìÙØîóïØÖðñòÙØï÷ñÜäòóòîÚåçñåâèôóïÚóúèÙôþ åÓðùÜç÷ü ñëòóöèéíúåïíþÞîë÷Ýðóûáôïêíòüêóñÿ âõôýàñóúþßòìû!çöïûêö÷÷æúòøÿåóïôûæõ÷ñûã÷ôòöÛú÷ô îÝøôñôÙú÷óôÛûõñëÜúøñ îâúÿðïÛúóðéáû÷îîæýýðôßûøñ ëÝûôðïÛüùñõÜýöòöÛüøòíÝûüò ëÛûùðíÜûúð êÙøùíêÕúõí èÛüýð ë×ÿòéÞÿùõ ïÞþô ìÚõâÞüúñëÚôêÙù÷ðêÚÿó ìÞüøñòÚýðïÞùóíïÜûûìéÜù÷ëéÛþöðæÙûøñëÖþþóçÖ÷ùî è×óâÚûúñèØýóëÜíôêçÚëï îÐñ ôßÔõúÚØîøÿÐßë ûâÚëüàÙåöß×èøÝÙç÷ÞÕéõÿÝÏé÷üÙËæõþÞÎçõáÕêûöÞÙâüòߨäøðÚÚèúòÛáçúòääéøóíåîÿ÷ðáéúöíâìõ÷ìØîõú áÐëïöÙÎåéòýÒÏðøöûÒÍôöøÖÊôóù ÜÑîòôäÙòõöàØîçôÙáòïõ çÞóï÷ æÝðñôäÜîíôâÙòìõá×óíöãÚóò÷çÛñèõåÔñîô ÝÖíçñàÓòëõ ÛÒóêô Þ×ðìôçÖðèöéØ÷ì÷íÙòêø êÚòé÷æÝðäöçÔòæöÜÛñçõàÝöèúéäøïýòäöîþíåõçþêãôèý ëÝúîÿ åÛôéü æØúðåÖ÷îÿçÕôíýàÝñêüúâáñëüìçóéý óêóìüößôéüêÞïìûìåöìïâóñþñáöíýõâôòõà÷îóÚöõ ìÖóíÿãÒôóýßÔòóÿ éÛõòõÝ÷úôá÷ôõâõíòãóïþôäóñüëòóî÷÷êôûýåòìöáðñÿ ïßîìÿ ïÝñõÿøßïóøàñí%üàõñ ùéñðþ"ýåíñþöÞèçùîâëòþ÷æéèýÿèôù$áóùøßêíÿðÞéðûðÜéòýòÖçîúõÝééüüãïôÿ#çðö þêîîÿäòøýÛêòÿòÞîôþ÷àìñþ õèëöýýãîôÿùÛíïýîÚñõþïÞìõþôÛòøÿóßïó÷âðøÿóäíûüôÞñùûñÞîôùðÜëöù êàìúù òÝîðøìÛïðöðáðôúóàúüÿíäùøýöÝøøÜù÷ýðÚðò÷ïÚðóøéÙíöõåØòøøæÛìøöïÙñü÷èÙëóóߨçõðÞÜêõïÞ×è÷ñÜÙìøô âÚïüõ êÙéöó ê×ëüóæÝéúòçÖëøòÿÞÝê÷ïäÚìòúÕÝéøíÛäçñîñÝêññëÝçîîê×ìõï ßÖðúñàÓòõáÝòÿö òØí÷çÚïùóãØîõÝÖìôØÑîûñÏÏç÷ìþËÕèúë ×ÖéùïÝÙìñçÝíôïÖôø ãÍíÿô×ÓêòÜØèûðûÚØçþí÷××äøëüÒÔéïÿËÙìñÓÕîóÖÔïþôàÖìô àÒïöÙÑðÿöÑÓëôüÖÔéõúØÔëõÿÙÖëýóÿÖÛêòþ×ÜçûðÛÛäþðÝÚëüñå×ìÿö àÙéûõ ãØëÿôÜ×çûîÞÑãÿòÛÔäûïÝÑëóØÖèüóÚÑðöÕÖíüôÚØõøßÞðùèÙòüêßôüïÛ÷üçÝóú çÚòüäØìøåÚòüäÖðûÞÒðúØÙëöØàïü÷ÜÞî÷ß×ðþ÷ ÞÚïÿ÷ëÙñýûïÜõþìÙóýúèÚôúïÜóüùôÚöû÷ÜõûûöÝóûùñØòûú ï×ð÷÷éáîø÷îéóûùõèðö÷ñéìõõõçõöúøã÷ûüïäðôùíÞõúýìÝöøûôÞóùüùæôùþúâôûûíéïñ÷ ôçóûúôæîòöøìð÷ø éðñøîðúøëîôöçðö÷ÿáðíôøãíñôùÜòõöôÝðñóõãóñôýãïòõüâññõõàñ÷õìãðìôïâöð÷ïßöøøðáøöùøâûùýÞùøüþÝüÿÿûÜýúðÚ÷õüáÞööø çàúúúðáöò÷ìâòêóïâù÷ùñßùøûêÜöóø ä×ùúùãÕõò÷çÙøøù ëÛôñøíÕúöüÝÎõôöýØÓñôôÿàÜðìò éàóíõíáôòõíáöóøóÛôêøîÛíêõéÚðì÷ à×öó÷ÝÖõñøÛÔòîöØ×ôòøÜÛêçôáßèêôåÝððü äØôúãÕôôáÙîîüçÜîêûëÛìëú èÚëçøç×îêø äÑíìößÔðéø æ×ïí÷áÙïíöÛÝîêôÞÜòðöæÞñðöçÝððöäÝõó÷çÔú÷þäÖõñúíÙùùýîÙô÷ùèØöïø âÙòòö æÛöî÷ åàùó÷æãôòôòßööøóßôö÷óÙ÷÷ù åÕùúøÝÔù÷ø âØúúùèØûúú æÚùý÷ßÙøööÙ×õòòÙÕøúöÛÞùøô æáýú çâýúïÝüûîßúùøôÞüü÷ ñàù÷÷öÙüø÷ ïÙûû÷ðÛúüøíáöðõ éäùù÷ ëèòóôøéôõöüëõõ÷ç÷ùøüßóöøôâôùøûàõ÷üöáõôûóâøùú ðâòö÷ îÝñïõèÛòù÷ äÞôòõ ãâóïõïãïööøãòò÷ýÝóöúíÝóùù éÚóõø èÛïòöíÙôùûçÝïö÷ êÜóõøíØòúøÝáêðñ ëâìñóòåò÷øþãñúøùäñøøùáñùøôßðóöîÞïñöñÞñö÷çâíõö ðÜìööìÞíõ÷ëèëóö îßñ÷ø çßíñù åÞïòø èðñúúýÕúúýãÖùõúéáçïõçÎÖúðþ×ÚÞøóçÊð&úÙð'ùÒø+óÈ¼Ü öì¹¶È îêµãÔðÝÛð øýׯçòùÍÚãóþÚ¿ÜÿòíÁáÓï íØæôãÚëòßÑå òØâÕãçâËÝòíØæÙõë æÚâýñãÚåùùÞÈÌÚéÒÛøè˾)ûíÄÙ9ýÝØÔEé××ÓBðÝåÄ<ñÖ¦¬/úÑøñ; âêÐÐ'óèáÈìÓ¬·ÔÍèìÖëÚæ õÒéðÚ¿þÝúÆÎìòú ßÂàæòÐÁçØçÎëïòã òáé éµèßÅÚãâË ëÌÕ ×÷ÎÎäÐÅÿØçùÊçîâËÖö$Ððêéà úÇ ùÉ ÝÉñÙ¿ ÚÑÇãÅùð¾ÕÞòÿ¾ôëúùÉ#òÅÉÅÒÙö¼ åãÊìÛðóÅæÏçáÄûÒèþÛÃëâÑèÞüöÎêÈ üÛÍÞó÷ÍäÃÙÿÍÔîÈÏßæ3ß éÖ ÞäÓéàØÿà÷ â5 ìùêøÑþùäøòí#Þ ô!þì÷×ë ìó(ì#÷8çûúõóÚ êõ'Ôÿüûôàúøã+ðÜÒüïÕ×ÿøîæ"áú üæø ÿ(ñáÿ!ßþöÿûÞø)æ& óÓçÝõêçøøùãü)öÜ %óâÙ îÝ üôëø æößêðèàòëåúùÞý òñÞ(ÜÚ éæþíîÿ ðÞôíëÑ ü ëíëòäüÜûü ùî÷ý" Ýýþ öÏí âæ÷ÓøàëÝéëèôóéõáó äèñßð×ê éáá øáÑóñÜø äÚòô åÏìù ãÜÙ êáøø ðâ×õ *óäÿíßéì ìðòú ØñÝ êãïÔïÍ  âáíþïææðÏíîÒ"ÿîØþíÍ#âßÌúùåúòëèæý øãýìüìãûðýéáüÐùäßýýåÏéøÿýÓäÞäú æÜûÝûå×õ àÐéßúÛÐÞÎúÕàî æÔçáÝ×ïêþåÛáüÙÝæ ÓÔå»ýÕÑå÷ÊÜÑØøâÚûÜÑÝöÕÚÝàÿÛØÜæàÛØõáÙÚðßêäÚíÛò èׯÔü æÛãééãþ õ×èéìÑóããÙûÿ åÕñêÛöþ íÖþØëÖû àÐéíúÕ×ñôù ÝÚßÒõáàñïû ðÒÚîúá×âìö âÓõøÜÒÐÜóèÖâäöîâÝüò×íþ æÕÛéõ äÒÒÝöàÌßößÙÑóöÿÛÞÚòôþåàÑõóíØÝøöáÚÉ÷ýØØÔóøùÚØÞÞòåÙÄõèÒÝýúáãÑöúèÛÎø ãäÌ öìØßþö ÚÝÕêôýßÓÅòðýââÕöôôäÆùóÜÜìù ïÝÈ ÷êÓÓï÷âÜã÷èÕÈòò äÝÁáòëÙÜø êåÕøêßÏíö 俯ãðïÞÞùåâ¿ùïæêÒâñõãÝ ûèÖÒïó ÛÜÝöØÜÌóäÞÔõõæÞÎêñèçãôåÊßùøÌßÉÙéèÝæ ÷ààÓéíÜØÙòðÝâÑîçÝáò çØè÷ñÞÛÐ÷ì àÞäëðÚãÕýîïÖâ øãÕÓñçÞÞÐð ëÞÛüéÛÍ ÿçáÈ5ÿêÞÀK þãå¿êè¸1 åÆMþÛ² ëÛ¼ýüãá´#ûæ×¸ óú××ÍòüÚѵíúÓÕÌÿîÝÛÏñíÚÊïîàÂçè ÷ãáëóçÎúëùèç ó÷æèóîûßáñòÙàÔâ çì ìöÒõéàã0ÜâõÓXÞêæ×dâî%ïÔwÎí óÑyæõ"îË}Ìñ!ëÍcªãëÜu¾è"÷ÔiÛéëÚN ß÷ÝSÌç"öÝGÏá'ôÞ=¿ÝõÒBÎãâÜ?·Þõê)Ââ"ä+Ñå!× Ñåõá)Ëä$Ýßä!úÔºæëÓÙçåÜÏæéÔÖðäÞæôõÙèçÔ¬ðâû¢&(áóÇC!àó¼F!þáÖ­<õÞäÂA êáà³;óר³+éâËÞ$ìÏåß ÔÖÐÇ ÒÐÜúÍÚÙïðÚÏëðÐÊäîôËÔåæÜÔä àÖÉó4ÞüÕÉàÑýÕãò+Ò äÊï$ÓûËÑìÅõÌÒï ÅüÒÕó1ÆûÓÛêÄÿÑçàø½ÞÛü6Ç÷ÑÞß ¼ÿÛÛî!Ä×ÒóÂùÑÈé(ÄøÆÎéÅùÒÂðÉìÍÊñËÿãÄó<ÓöÕÑêÌÔÕñÎúÓØà Îâçú:× òäéÕ ïåñÖîåöÚîÝáÝåÚê(ÝÝÎå ÞÌÉÿ"àíÁÏéáðÆÉñçúËËë&ëýÔÑí èààïé íçóï øì%ðÿí×ïëïïððå õüëôñöâéòðùèìôàöýôçÞü öáÿ ïîëúûþéÿæäõûîêý( èóóëÝ÷ûïä ïæÛ îß÷ñ óÚí ñàùøûØñ ãÛáæèÙñæìì×þýììéíîçõîàé öèõòÿãøþâï ýÞï÷ #Þ÷î"öÓù éÚÞâðéýü öáóëÞþò éÖéþ åÙþí æØåÿûÛùùýÝùÙâÜð ñöò)ðõö øïãæòåõ éãéÎ êÝó ëÝéó óâîü×òöãüÔ óàìíöâøøçüú#þê÷íùíüèæá úì÷Üèïýáû× ôÞ÷ïòÞùÕ ñÜóù êÜïá ïÝîì öØïÙã îàÛßçäòá áàùô Öß÷Ùÿ ÚØãôÙÙñ×üÕÓñïûÏâßüþÙßþÖÙñû þÏÏð ÌÑÛôÓÇ÷á×Êæø×ÊìåüÍÔðõÿÓÐêîþÍÏïôþûËÔâÞüûÛ×òÛûçÔ÷û ÛÜðíþÜåÜøßæáêúçßïéøâáíðúòÛíÍ÷óÓåïñàÔ ø èÞûøçâ %øèÞ5ùèÝþôÿëÜ÷ïèÚõ åÖóòèßíîëéõ ÿâøôøìû øëøøþçîáïúáóõøàóûòóèñÍíòôõ èöûô÷ßéÎí òåëíñ÷ßóîòòÕúäñãÜåçïæÖòáñÝãæØíìåüãñîêòåó ðßìÚöèÚðÚóéÞóØñç×éÝñäÕñÕó ÛÓóíóÝÓîâóÛËõºñ Ø×çØðÝÛáÞî äÜöÓóìÙöë÷îÚîÞøòÐ÷ÌõæÐòÜó ãÎàÑíÙÒñÅëÚÓäòöÙÒüÑ ÛÓ÷Á ÛÕóÓ àÔñÕ ØÝû´ ä×ûÓÝÚëºÚÒó¿þÓ×å·ßÓçÓרâ²âØú× ã×â¸àÙèÌäÍïÐÿ××öÛÜÚêÈþáÔëéÜØõÃü äÓéðåÖðÓüâÐùðߨ÷ÓùïÔÿ éÚâØôîÙõÙó éÙçéð íßüàôùá×ëïøãÞãèðàéõÿ ïæÏç òÚÖôçÙÄì ñâÐ/øæ¾ï(âÍü+æÌñ$ ûâ´ì ùâÄù æ¼ïêÎðÍñþ ãÓýæÚîù ÿâÙ ö þÝÞþðüÜÝûèàíçØñ æáéýàÞëþâùäçöÜûßôÞ÷Þùú×õ×ñÔ çáû ÔñÕóÑýÝÚîÊýàßø ÐåÞùüÔéØú× êÖúÒ êØÑåÑÐàÎÎþßÖÎèÒÿÐ åÑÔè×Õ ëÕÔíÞ Ò ïãþ Ñò×(ÛãÕÙÙÍ !ÛÐÆÚÌÏ ÔÝÚ,Ý åÚ ÙßÞØçÜØ ëÜÝ ìØ ÞåÑ $ÝãÐÞþÜØùÛåÒäâÖãàÔ ä ߨ"ç âÛ ç äãýå êå éöèëûß éóâýçôÜ %î óãÿêüÜ ðøÝüí÷Ü îùá ñõÞ ó èäñêã ôêÞ!ó èãüøðñÛ ôßâÿï ìÝì ìãà÷ðäÔþûÛÔÿâØ éÜ!éÜü  âÞóýøÞÝ÷ú ã×îøÜÝþõ éáóóö ì×õùÙÞþîõßÖîõÕÔèöï×Ôø÷õâÑøù ÛØôñ÷ àÛúøæÚþÿûäÛô ø àÜþæõë×÷ ú ßÜîðò æÝõôô åÚñòó áÛø øØÐòäó ØÑôõÝÓðçö ÝÙøýùÞáëðùáâñðúÝÞîöú ÛßñÿùàßïïüãÛôñüâÜòûÿ äÙôîâÔìæü ÚÔéþ ÜÒóÞÿ ÛØëÿÿ àÖïçýÚÕìòØØðíÞÜìéêàéåñâðùðáïêòâîùòÞìô çÞåØîÜçïîÕêó àã×ÐÿîëãêóäèæîÞ×Þ çäÞãòáíé õçÝä úãæúùÛæçöÞÖÝ ÷àÝî óÞâð çרÚ ÝÙàÛ ÖÜÛäÚáÖáÿâß×ßäáÞî éÞßíèáàÙôâáé èÝâëêØäâ è×ÝëÿäÖâäÙÓÝêþ ÎÕâàþ Ôßãçü âÝáñÜÙâäûßÙÞáüãÜâàû åÝäîþåÜåæý ìÞââûõÝåöþòÛèéÿ êÚßïüéÚãæû èÜáñû ßßêêþ Ýäçòþ éßëðåâäðüëâë÷íâîñ êãåöÿïàèòëßìðÿîÚîýéÞìñðæðôùìïþüìì÷þìðñýæíúöäîîôåñùóâêûïäðíúäëý!þåôðüäðøýáõûóÞìïÿðÞñúíÞïÿòÝíîýóåîêüûçï÷äìëûóéíôû&åêòûüäßìô÷âèøþðæíùôèïùõæèöãëõïÚäöþàÙåòûãÚçêüàÛãïøäÝæñùñÚéöüóÚççøðÙçòøïØêíøíÜìõø îßçèô íäë÷÷ðçìïõöâêðôòÞêëóëÜêìóèßììòõÚïþ÷õÝêæôößïø÷ðÙîöõ æØíïòßÚêðîÜßîñðæÞííïäàîíðæÜñöò ãÖïûòàÔïíðãÑò÷õæÒöööé×ôøöîÜöó÷òØô÷ô åÜ÷ëñ èäùñõñáûöô ëÜþîöäßÿô÷ïÜÿøù éÚõìò æÓüýøÜËøðóþÑÇùôòùÍÄûôôýÑÆùóòßÍûúö áÒòòïÕÚîúðàßøõ íãÿùôÞ÷üõêàñüõ îÕîíðçÓêïï æÌðõòØË÷þóýÓÌñùñÿÖÃôúó÷ÆÇñðíýÎÒïöï âÞðöñ îÝñùòæÝìóîåÞêòí æÜîöî çÕïôîÜÖïòíàÔõûñàÔõúñáÔôúñ ãÔôøóÜ×ðùïÜ×ò÷î Þ×òøïâÝñþðíàïÿññàóüóóÝôýõïÛõüôìÛöÿöíâôùõöÚúüù騸û÷äÙóþ÷å×ôÿ÷áÞôý÷ëçõöøøçóúùúäõùøâòûøõâôÿú ÷âñÿùüäòýûà÷ý÷ÝùýñÛöþúëàòþøöåùþüùâøüôáôþüðà÷ûü îáøûýñßøÿûñÜùüòÝ÷üüôÙùþýîÞùÿúõÝöþù éÝôòö çÞôùö äßðøôòßôüõ÷åøúûþâû ÷ßøøûòÝùöû ëÚôúúäÖóúø éÛñôõõß÷ýûóäõûóâöýú íâôø÷ðãøùúóã÷ùûöà÷ûõâôïùúáùýõÚ÷üýèÖøüçÚö÷û ìÞ÷ùü ìÚôùåÚóúøåâñööìà÷ú éÛ÷þù äÝñ÷ö äÝóú÷ èÝñöõíÜñööíØòúöéÖ÷üù åÝñý÷ íÝîõöêßóïõ ìÝ÷ôõ æÜúõ÷ã×úõù ÝÜúúù âÜôï÷ äÛóòöåÛùüãÖóõù ÜÔøùùÛÔòôöØÖðòóüÑÜîøñÞßòôóáÞíõóåßïóò çÜõøõ äÖõÿöÝØêïð ãÝòûõéÚôúö æÙòöôåÖñôó ÚÔðÿóÝÔðôòßÕïõòÚÔòüõÒÙñóñÕÝðôï ÞÞëôïߨïùóØÑðôÎÕíïðÖ×ðòôÚÔõÿùØÌíúöÓÙñ÷ö æÙïúõ æÔ÷õòר ôÚÓêÐÌ.àÿÆÎFÚ ÒÔ]Ù ÚÌYÒÏÊ_ÒÍÉTÏÿËÊQ ÓûÌËNÚÏÉA×ÐË6×ÏÓ1 ÛØ×( ÛáÞ ýÛ íÞùÝî×÷áçÛýãìÜõåðÚýéïÙõìêÛùìëîáööíøÛ÷ñññÞíçîôáæëíúçæèðýèÞåñýêÝçóÿêÙãôæÎ×óéÌà÷"çÑã éÝà î×ë!ìÐàçÌÛ äÆÜ êÅà  îÇÜ  íÇæ ò¾ß  ìÅã ëÁá þé¿åÿê¾ß á¾ê öãÀè öãÃæòàºæ ïãºã ôä¶éóá¼æ óá¼â öá½å òâ»æ òå½ë ÷çÁêýè¾ê ýêÁìûäÁïóÝÄîëݼí ìß¿ï èåÀñ õëÇì øéÂï õêÁð ûæÂì ÷á·Ú ïß·è íÞÄô òÞÅô! óß¼ì# óâÁó+ñàÁü0íà»å#îã»ç ñç·á÷ä¾âõäµ×òåºçóäÁè÷æÅé üâÂïýàÎäûÛÎï ù×Óô õÖ×ó ïÝÔïîÝÔòçßÔñäãÙï êàÝõÿ êäâøþ òáßùý íÚäõûåÞáöø ëÛè÷øå×åùõáÒèöôÜ×êõòåÚñú÷éÝðþô éÛòþóßÛïóîÞØ÷þóÔÕõîÐÚùüïÞ×éïæÙÕëüìÔÕï ÷ ÛÙöæÕî àÛç ïÛç ëåéøèéùéáüäå ñãåñßæþþ ìÕìùûÝÓéýõÿÙÒêýñ×Õóÿñ×ÛñÿîÜÞóìãÞøõêÝÜüüê ÙØýêÙÒþéÚÐ÷çÛÊæÿÏÉüàôÆËýß÷ÇËßûÊË ýÞÍÍûÞËÓßÓÔûÞØÏúÞüÏÔöÛþÕ× õÚØÔ ýÙÖÏæÏÓ éØÓ ðÍÐ ìüÍÑèþÑÒ ùßÓÒã ×ÓâØÙùÝáÛýáäÙÿâ äÙ äéÖ#æêÖã èÕ âåÑ â ßÓÿÞäÒ!øà áØ"áæÜ"ãæÙùÞäÙÞèÙþÞñÚ&âòÕ$þáéÚ"áóÚ"âîàýÝøÞ"úÞ÷ØýáìÙ àõÛ#ýã!üà"ýäùå&ýçûé"è#åéùßçïÛêíÛíðÞ"íôßìîÜúéìÝëóÚíðÞùíðÝìåáøæçßúèèáõéíßùëîÜôéëÚøé åÛøê ëÛ ñèëÚêç äØ úîæÓüôéÒ ïï åÖùó äÚùô åØôíâßìëïÙôñ æÛêî ìÙùòêÖïðçÒóîàÔýõí äÓþëí áÔþññ åÖþòòêÓûíóåÕøêñ ãÛôëñçÝôíó çáöí÷ íßøôüí×öíýáÚößåâôîïâíÜòÙèÕ*åÛéÐ3ì×çÊ6âÛæÁ1íàèË1ùäçÂ*þáîÅ'ïáèÌîÝõÚíÞõäõßþõ úàóèúíáøö÷ ãáúò éàþñóÝüíöÞöãñÜù âîÛöÝíÚøüÚ éÜù Üçáô Ù ëÞõ ÚåãïÖïäñÙ ñÜðÚçÖðØÞÔí×þ×ÛéØÿÖÜæ ØÚàæÙçÜè ßÜØåÝØÏâÞÿÔÍÝüßßÓáãå×ßâüãáÝãéâ×ÿåèÙØûâßÔßüçÞ×ëñé äàùêí éãðòíäéûöáäýîáçÿìÛãÿ æÔâüߨûçþèÒ÷ãúâ×ñâúåÛòèü éÞéçü ìÞåáùîàåíûðäàéùñëÜæûøíÛèû éÝëÿèÔîÿæÕëüÞÎìîÝÇëÿõÝÇð ýßËòùßÍù ùáÅ÷ùåÂðöã¼òîå¾÷ðë¶èúð¸ìî·ïþè¼ô òá¸ð ìÛ·õêÙ´ë ìܶö ìݳó æÜ°æàã²î îâ½ø çáÂúäà¹üâä¹òíàºò ìá½÷îÛ¼õäÚ¹ôÞÚ¹ý ýàÛ¹õ áÚ½üàÞ¸õ êÞ¼ø éà¼û éâ½ø ïá¾ø óá¼ý ùÞÄÿóãÁû õäÅôæÈý ÷ÜÆ ëÚÇ èÖÇý ßÛÊ ÞäÇü ëåÉ ëáÉ èÛÎÿ æØÏÿ âßÊ åáÑ îäÓ õáÖ òâÕ õØÚ  æÓÖÿßÒÖÿÝÕß â×Óüú×ÛÅ ÚàÌ ÿÚÞÏ;üâÜÁC ôÞß½Yüåâ»cþäà²b ü×Û·eþ×Ó°[øÖÒ´X÷ÖÔµDÿôÕ×¹EøÜÙÂ>õ×ÛÆ4õÔÞÈ+ýýÜßÇ%ùÿÚãÍ÷æãÐø ìàØù åßÚ ùåâÜ÷îàåüïÝèÿùêÝíüø éÔñ÷ æÏïìòÝÕúôøÝÞùìøååýòøôåüæôøäåôõåÞðûäÛñ#þß ãõöß ÚõóâÙö÷Ý×õöÚÕôòÕÐóìÕÏöëÝÑø÷åÒùåÒøûéÒù+äÇñ#ôÝÓñïßÜô÷ä"äóûÞ&íõíÞ&ìòóÝ%ëò÷×%áð ìÔ#ãïèÔ!ÛêãÖÎçÞÙ!ÖéÞØÓç ÜÚ#ÒèëÛ$ÌæóÚ'ÒéñÚ$ËæïÛ(Ïêõß(ÎëøÙ&ÇéìÕ&ÍçéÒ,ÍìçÓ-ËîèÙ(ÎíîÜ*ÉíóÞ+ÒîñÞ,Êìñà(Äì!úÚ&ÁêòÕ"Àéê× ¿çðØ,ÍíöÙ.ÏïöÙ+ËðùØ,ÑòöÜ*Ññúß+Íóüß+Óóñä(Ñò÷å#Íïøä!Ïïôã!Ðîúã#Óñ"â"Õò%Ý"ÖóúÙ!ÑñóÕ"Úó âÓÆé âÚÎï ìã#Ðõûæ,Ôþûá&Ëíã-Ôóå%Ì%þâ%Ë!ùÞÑóÛÎýë×ÏùèÓÕúæÒÕøãÔÛùáÔÖó áÛÙð èÝ ØïéÚ ÜïæÜ ÝïêÜÝïëØàîèÔáîåÏúÞìäÐöàë èÒùÚî æÞùâðúâðáøúèñãêíä þèêÔ÷æãÚ+öâØÓ5òáÍÇ:òÝÊÀ<ëâÞÔB õàäÎ;êÚçË7ßâ¹Ð äÞåÛÝÙÝòØÝÍÙ àéÝõþñÚ, ÞÚÜýÙèèòìá<ý âáÿMóÞÚPòúÓÖ[ëüÚÝ Tçýãæ PåèÙgáØ×WÕúÓÍZÔñÊÙ6ËúÏÌðAÄíÅÅüHÃî¿ÊÒ1ºéÁÞê'¸ÿÖÀÿ'¿á°Ñâ²óÂÐá2¸óÈÌÞ)¹ãÀÈåµä¿ÊÔ²êÃßâ¶üÔÒÔ·ïÆÍ׳Ϲعç·ÇÖ¶èÀ½Ý¹î¿ÊäÁîÂÉçÄôÉÍäÊùÎÛëÌøÖÂäÑíÁÔêÓúÖÔÛÊÜÒõÓßÛ÷ÒðÒ Ï çÏÕè× Øô××ôÛ Õóë*àþâ Üùã "àüäàåùÛýãûáþííÝ$ Ûùåø×ô ä éÞèâìÕñ åàÛã ãàÏßåÏààæý×ÕÖüåüÐÜÐæÚÞÏæ áÝÐùë ãØÍñÝÖÏõÝØÏø àÚÒÿÜÑÑÿÖÒÌýÚÓÍýý×ÖÇöÖÕÍðÕáÉç.çêËÖEôäÇËTîèÃÑ\òÞ¼ÁVíØÂÍZéÞ³ÅIçÚ®Í>ß×Àä> áÞÂð4íáÂð(óܸóêá¹òä» îàÇìäÊïÞÆýîàËûíÚÎõæÜÔôâÛÐñßÑÑïáÓÙóåÔ×ïýÝØÕìàØÖ ëéáÕêëÞÕëêØÒ éýä×ÔëþåÚÕ éèØÕèçØÔçâÔ×ìßÔÙïæÝÚî ÷áÚðýáÛò÷èÚ ôûìÙÿöÚÛÿöòÛÚøêàÛýøîçÝýúûçâ ÿäÞõþ þèÞþíãÞç÷÷æÞûÿóáþ äáóäàü# òâ÷1 åèò! âÑóûýáØúàÜ ôÙé$ùèëß ÿêÝ ýèÑ ïæÖöáØúôãÜùöáßøÿäÞûÿéáöâæôùßßï ðÞãììæãííáçîïÞáèèèåáñäéêðíéâüëîãúâëßûçíà àóå öà÷ã ùÜ÷â ñàôÝ ìÝóàíÝøã îãöâõäùÔòòõÖ%çøÓôäñÍïéÿÛ $üäæùèÞ!ûá ÒûäÙ â Î èÙ þåÐ ôá׿äÖ!ñçÌ$ûçÕ+êÏ/ê Ó&ã Õ !ùÞ ÙôâÔûÚ ØôÙ ØîÝÒðæÙûê Û!üäÕóåÙýíëÕþ$üåÝöåÖþôá×ýëÚÜÿäÚçèÖÛåÙéïÝ ÞþèÞ ßþëØØùçÚ ãü ç×Ýù êÙàú èÜè÷ çÛà÷ äÛß÷ èÝàö çÕèó ßÐÝó ÛÏåôÛ×ëõÝÞÿÞïìÙäòæÕîßæ×ÒìêìÜÞõøøëÝ éÞû ãâ÷ îÛòý æÙåð÷ æßéë÷ñàíóö éÛñþ÷ãÞñõõ âØóûõâäííðóãôóòñçïðïúâõõñûâïïîúÞõñïðáóóíðÜöñí ìÕòîíâÒÜÎâÜÒêäðÚØôã ÞÛùà âÓ÷Þ!ÒÝð× ÝÜçÑÝÙéÕ ÜÛìÝàØéÕÖÕëßÑÓë×ûÌ×êÚûÏÐçÛùÎÎèÜôÑÏìãòÒÖðãòÖÑðäñþÎÏóèîüÄÎíâéúÄËðæèùÄÉöñêöÃÊñõç÷ÅÇ÷íæòÀÉöóäøÄÎùüäþÏËúüâûÏÎýþäýÕÏøâßÎüãßÖúÿâþàÑüâþÚÎúýßúÕÖüÞßÚúÝäÕû ÞüàÕû ÜßÔûÜÿÜÓüÝÞÑü àÚÒúÝàÕý ÞߨûÜâÖßáÕ àãÓßâÔàâÒáçÐãäËãÙÏâÝÐà âÑååÖå ì×ç ëØä ìÖãéÜþâ òÜÿäíÚýãåÕäÞÓÿå à×è çÚéäÝé äÙççÖìéÚììÖýëä×ûç æÚÿììÚîîÖï á×þ ë ÝÓîÜÑþëØÐù êÕÏù éÔÒùìÚÕ÷ìãÖùîâÒø ïÞÒø íáÐùíÝÙùï éØõïâÕã èÜÓïñÿÔÓôõÖÔúùÛÖòùÝáõúçàï ôåÞï÷ïÛòù íÝìõñâñ÷ñâñ ÷ òßíôòÞïö ìÞíôîàñøõäî÷ûæïöüåìöýäë÷áðùâñøëìøö æñûÿãòûöåïûþâðúûûåíúüåë÷ùþæðÿûèóýéôÿÿæóýþÿåóýýûèíóû"äîõüúåâéöøßåèõ ëß÷ûüèÝîòõ æàîñ÷ îäò÷üúçûÿõáíñû ëßîôû èâìîú ìàæèõëáèñùïãëêûòæëîûùåêîûõçèíùôâíôþðáèåùñâæìúõáéïûðÞåæù æâãç÷êáçìú ëßäçúêáäéùíßâç÷îâßÞõòâÞæôòãàæöîßÞæ÷éáÞæ÷ðãáå÷òåßáöøêãêùüãââø÷áâêýöâãèþúãæëÿõääëýñÞéíäÜâéý áÚçìþ àßãåû æÚçïãáãäüíáæèÿ êßèëþ éÞãéýäàãÞûëàæé ëßæìñßãâÿõÞâäÿïÝåê çßáåÿ çáäâÿðääëõÞçç ëàäç èÝâæÿ äßäêëàäë èÝäì áÜãÜý áÙáæÿÜÞàëßÞæëáãåç èßåìßâßè äâäéèßæêãßæéåÞäê áÜèîàÝäë èÞèï íÛéðãßçîßáãé êâêñðàãæïáàåìáåëïàëï ìÞëì ëÜëõ ìÛêì ïÚëé ùßïëûßêêóÞëì êÛïîåÖíïáÕìîä×ííçÖêìÿàÕîôÿÜÕñô ãÓñðá×ííû êÚîóüìÙð÷þéØïöú âÙðóùæÑðí÷ ÞÎîìö ÛÒòïúÚØññ÷ äÜïò÷ñßôòøõÜ÷ýýìßðõöïáòõøïäðíóñÝïóô ïÚððóçÝñõò çÛñõó âÝóðòêßôöòóÛôôòìßòôñîâöûòùæö÷ó àûýøùÝøúôñ×õúô æÛõúòìÕûõ äÔ÷÷óåÖùüõãÐúÿ÷ÜÑ÷ÿöÚÒùüöÙÖúþõàÙúþ÷âÝûÿù äÓþÿûÝÔýü÷ßÖý÷Ù×ùúõ×Úÿ÷èÑùõø ÜÑêçðÜÔóðõ ãÛüþíØûÿæÕÿã× í×úû çÚóùøìØôúúäÛñ÷õ ãÖôÿö áÔò÷ó ä×ññðáÓô÷òÚÔòüñÜÔòùïÛÕôùð ãÑöúòÛ×òôíßÚöûð ãÝôùñ äÝöúñ ãÛ÷úòëÜûÿôîÜûôïÙ÷õð íÙõûï èÛ÷ûð ëÚöúï îÞò÷ïðÜóüîñÝøøðïÝøüðìà÷úðóâõúðûáøþóøàõúï÷ßó÷íòàõþðñÞùóñãöûñ÷äúõùÛúõ è×üõ ÞØúö àÛû÷ ìÙûô èÙýõéÛûõêÜûÿõíßúõïÜû÷ éÛüõëÛÿÿöïâúýõúäû÷ùßúö ðÞøüôñäúöþæúæû÷þçõýò÷âøøìßöøõìâøöõâûøòä÷øñã÷ÿøïàùû éß÷ùçáô÷ íÝöø êß÷ÿ÷çÚ÷ùÝÛôúö ãÚôüö äÝ÷ÿøêàõûöìâôþôìáòþöëØôùß×ííò ßÚöô÷ìÞòö÷ñßöýéáöÿ ìâ÷ýþ îÛòøû ãÙïòöáÖñùú àØëñ÷äãíóö÷æëðöñàìðöåÞìñöèÜéñõ êÞïñøìÜíóö äÜêóóç×íðöãÙéìò çÖìòõ ßÖéðô ÝÛíñõ ãÜìóöæßïó÷ ëáëôö çáìõø äßìôù ßßîöùæÝìôö ãØìóøÜÙèôôÜÙíðöߨëôö âÚìðö èÜçìô çÞêðöåÜëóøâÝéëö çÝïùûêàíöùðãëïù îàëõûìÙíòúáÖçóöÜÕéò÷Û×éïøå×ìôû ëÙîôü ìØêðù ç×êñùÜÕéóøÖÚåçôãÞèðøñàêñúñàéóûîßçñú êáëñú ëÝìòü æÛëöü éÝéòú íàíöýíãìóþñÜëõüèÙâç÷áÙäç÷äßçï÷ôáìóûõàéóúôáêöûôÝíöüîÜîõûîÞìôúîäéò÷÷äîóùúâêðõúâèòõûÝìööòäìò÷ýâìï÷ÿáðõ÷ýâëïõøÝîøùòÜî÷ùòßðóø÷ÞðõøñØòøøèÚòóöëØðùøêÚíòõïÚðóöìØðõöæØñúùãØóöùäÕñõù áÖîó÷ âÒòó÷ÛÖîöôÛÖòó÷ÝÓõûùÕÔï÷öÖÔðõôÓÑôþ÷ÔÔïôô ß×óúù ãÜò÷öëÜóúõêÜòóö ìÛôü÷ èÚõýø è×õùøä×öýúÞØòù÷Þ×óûùÜØôû÷àØöùøáØõûúãÛôûûæßôýù òÞ÷þþöÚ÷ü ïÖúþâÓõüû×ÔõùùÛÞóþø ðÝøþýñÝøûúîÜ÷üìÝùÿýìÜøöü åÚôüùáÖøýûÿÛØõ÷øãÖù÷úâ×÷üù âÝ÷úùêÚôüú æ×ôõøÞÕõ÷÷ÜÖôõöÜÕóóôÝÕñ÷ôÝØïöõáÝóñóéäïóò òäð÷õöæðõö õâíñôòÝìôôëÛëóó íÜïïóîäìêïöåïîòôäíñòôâðõöøäîòóýæîòóÿéíëñäðöóûãìíðóãïïò ñèíïòõáóùõ ìÞïôô èÞðõô æÝíöôãÛïõôÛÜí÷ñáÛíóñà×ïóòâÖòôöÛÖîôô×ÕðùõÙÒòöõÜ×ñ÷õ èÞñû÷ ìäóù÷óçòùøõäðøøïàôýû ëáñôùóâóúûüÝöüÿôÙùðÙøüêØöúÿ ÞÝøü ãÛøü åÙùýÿêØøìØùüþã×øýÓÛõúýÙÚöþÿßÚöûÿçÑùü ÝÓõûüàÑøöýØ×ìïö âÕðñùÜÑí÷øÿÕÕöûþÚÔðõüÜÔð÷üÙÔïôùØÖîòúàÚïëù éÖîñú ãØíç÷åÛçæõòÝøøüûßóùûûâìðøüæìòùþÝñùûìàèïô óâëóø öâîòøóàñüúñâïô÷øáóöùøäôñøæõúüæòõþûçöøþþéòøþ!çõû ãòúýýèöúü#äøü!æùòäîñýýäíëú÷èðúû ßòöêìôúøíêõ÷ýà öÜæÝñéáþêóèÝø åÖúõÞÓÞ×â ßÓüöìÚÔôöëþÑ×îñèÐÍìþèÐÙèèèÛÏðêëÓÎííéüËÐåîèÍÍèåçÓÚíðìäÔõüõ ßÐëùïàÛåòë ì×ïüñæÛïöïïåïöñâõýøýÞîùòøâó÷óÿäûùþâñùþëíûöáü÷ùùåèõõâúóøýãùñ÷äúüøúáë øðßûöù ìåóóøúÜôþù çàñûöâÚðüøßÝîúõ éÖðö÷ÖÏòóöûËÖðõôÖ×óüöÓÔðùøËÕñþûÍÖ÷úÍÖöûûÿËÜõþùÕØúúÙØñô÷Üàïùù éÞúûúëäøûõè÷ûùûåúøûúãõùúüßöøüðàøóúðèúû÷çÙàóñáæù ëñçýðê÷ÞÐ ìóÂ#í»û(÷Ð,æÃ3üµ(çŸý)úþ¹ (&ÙÌê*îûì¯)ýæé« óÝ´ ìõöê¦$èï˜õíÚ¯"æÉ¯.Û™ù67à¾ñAíÕ£Ô@áþ¯ò<$ÿÈö>[ÅÇí7èÍ Ö)<ò.Küú. Sà ð:úf=¦_ô寺òèÁÕ¹.ÉC ÂxÒéÄñî²G æbÑ9 jÁ×Õ‚8ó¦ËŸ£ ñÄ»"ÐÎí 6ÞÉ5÷«ÊœA䨀±Û”#É W©ôìHï¢Vø¦ÿçžÐ´¦+æ©á³Â'Á—Ñ´“ÿà¡I¼æ'ÚžòÒËAä°ëÔ”+ç¹õ¥×ìΠùѵ,ɯ'تùÁ§¬Ò Ï·ÐÂÖ±.Þª"áÈÿ±×ëØºùÝ¢ÓDZª¼áÄÙ¶ ßÇVâÓî¿Ää×§ýËÆÇØú½ÇÜÔÏõÛÕÍ«øÇÊ ÀÛõÌÍÝÒÁðÐÛý×Íßâá¸çÆÚváÛÈÝä›ðøéÌÂÞíóÓóèÉæUîäãÍèÿôµãüÚ¸ãèøõÐÉðÎîåÞ'ùâý‹âÄâåÍôÙÕñí%Ì äãÁûÕüìÕ ÜÈÏùÖû ÕÛ÷Ú²ÙüÏŹåÎ÷áÕøôÅõ$êõ ÄØ˜ëØüËûíÝýîÖùã êÛÏù2°æßíÛÅÞÕ°×ôäß8¸àæËÒóÑÑýÜéç æÒÕàÂÉ»ÊÖüùà&çò U-’ëú¡Ÿæ¼ÍúàåéÜí ÙçÛèúÿÍÚéúå Ñê ÔâäýçÚèïúóùë#çé(ä÷Û'üþøé;Ï Ô6êòþÏ*8ïüÒ0ÿìÔ/+ Ûá/öéäîÔ#9Ýþä(ïçúñ'ýóéûõ%0üðûö$ûûöý"Üù!þæÛúåüóA àú ÷íå÷üèû'ûçî *ìü!Jê+ýàÿ*ðåô)öèñ 3Iÿï÷AûåýB&÷ÜüE"îàQ1õÜÿS4 îÏ÷NýúÚUSøÔO úÚ M;õÖ G!øÛ D3óÒ9$óÕ4C êß4úùà/0ñÞ)/ ÷ÏýÜ >éß$%òÚ2èå'1 óØçä%)õåÙ !ïç× ñòÙ :éßîÚÔÜâÝßâàÿ'ïäàñ"ðÚê)ìéÐê)äàØä%ÔäÚú>ÓåáJÍíàG¿åÚÿE°ÐËM©ò¼Ñ W ÃÆV™ð±ÂV÷±¿ TŠö·È[‹ñ½ÃZ‰ýÆÆZ‡ÎØ W†äØZ‹ ßÙ S‡ ßÕ O‡ ÖßH„ÔÊ@ƒýÀÏú;€õÄËú6…ôÂÐö1ˆüÉÁó*ýÂÔõ+’ÏÑõ)˜×÷ö#›úÍú(§ ÕÕéŸ ÔÛê¤ÖÝç ¤ÜÞæ® æØã ±æÓæµ ÙÚß¶ ÜëÞ»ïÉäÿÄÛÔÞûÄèÚäÍëÖÝþÌ àüÛóÎøÛâÿÙÜÅÚïÕÙÖÛóÜàÒÚíÞ ÞÛÜñá âßßíçßÖØëçÞÑØëìý×ÞÖåíÞÂÚêôøÆÙÎÛì çâÛãöðÓÔßø ïåÒÕ÷ùÕÓ×ûáäÑØú íÛÓÚéÝÓÑðÑÖÚ ñé×× ñÖÔ ÿØ×Ó ÜÐÓÐÏÍÒÑÏåÐÊ ç×ÕÔ ßÒÐÀ äÝÙÐôÜÝÐùÜÆµ íÔÊÍ ìêÑß* ûâÖé7 ôìÅÆ7ùèÎèB õØÄÑCàáÃÜ=æá¾Ë6 ìÝÂÖ2æâÁÎ/ñæÊÈ,ÜÎÑ-÷êÏÇ'þåÐÏ(õÒÙÏ$òñÏÃáÛÎ"ùâÚÐ!öëÛÒ"òãÜÃîÕêá æÑâÍåÖåÍáÓäÉøÕßäÐüàØæËåÓçÍáÞçÌìÖòÌéÖéÎ çÝíÕîÛöÊ èÚòÒ âÖ÷Î ãå÷×ðÑõÌãÜõÚ èßûÝëàóÉ éá Ø ïßÖ çÒØ åÉ Ï äØ2î ùÓ0ÞóÚ)ÞìÜ(âð×"àè׿ãÚÝèÖåæÞâîÜæ îÑÖáÙ ëåÓÞ áÓâÚÎáÿÛÐ ÝüØÚ ãýßÔÞüáÓåìÖãìÖê êÌÙý åÛàþ îíäüú×ÿäÿïäÝþöÝûáü îÝüéüöØýåþõãæãúäÿýÏöæù çæõæ÷ ïÎþøßÑúúÿÜÚìÔþìÖû ãÔõ÷üÝÙóöúÿÜÏñø÷áàðú÷öÖóôùîâòúõôßó÷÷ õÜùüûìß÷üð×úóüñßò÷ùùÞôûøßòóøó×ôø ìæôöøöáúûýúåóòøÿêïùõüåøóø ïÚøø ê×óûù çêúý ÷äõýû íÞïìíØÛ üòÜÖíÛÅ"óðÎ×#õð àÒ/ýöâ×ðñäß&ÿøóì!ø áúöðæöùäýõùê÷ þàúö ùòùð"ã õò ûßøïùÜûñôëÿñýåïüæùñìÿçýöïúäýýíøèòûëþêøþîÝùðöåñíøÞìÿîñéèýêùìîðúçæëéßôïÜØèìâÚêë ÞÓëëÕÕïòÚÚî òÜÑç íýÌÌåíÌËæ íÌÑæ ïÐÌâìØØâëÛÕèîÖÖãìÚÔãí âáã îîÕãîâÐÚëÙÌÔ÷çÚÑÜëß×á ì äÏãðßÛÜ ì æÕßîÜçÛêôäÜ í ïÒÖýçÞÔÝëßÍä ð à×ç ñ äÕáíßÜáñáÐãîØ×á ë àØÞ ì â×ß íÝãàï ââÞ ìáÝÜë ßâÜ ìéæâ ðíÙàð ÞÔâ ïØÍÝî×ÚÜìßÙÞîâäÝíìãÛìêæÞí íðÞíóçÝî îîÜì ùìàòûëÜðää ÷ÛÓøð ñØÆöíìÜØ ñÜà çáØ çêÕ óïÔ õäÌõñãÒýñÙ×øäßÔÿûíàÖùý ïÝÕôúåÙÛûùäÔÛ÷ö èÓÚõôëÖÞ÷õ ìáÝ÷ôîçßñòòåáûó ëçâôïèåäñíèååòîéÖåóíûßàéöïî×êôï ëÛäìëðÝèöòõÙöÿúîÚû ïÜöûûè÷÷üá÷ùùðäóôóçØóðñèß÷ñò íëøúôöåúòòïã÷ñòñéõôïôÛûúóëÞ÷òððáýñò èÞúôîðØüõïëÛþòðè×÷ô ÝÕþôÝÞúðíâÝ÷ôìÝÙþùóßßû åØù æÕø äÕü÷çØúöèÖ÷ô èÝÿüô ìÙþøó æÐûõÕÛøðïÜÙøòÝÝþóð è×öô ä×õòäÒóóÙÇ÷òÎÓññØÓõó áÕôó áÕóóäÞöõèã÷õëà÷öåàõõêáñõìãôõöÙûíòëßûòôòÜóüéÒ÷äÞÿïýéÛóÿëÝöþ åÛôü æÞñü æÚóü âÙþíû æ×ÿöûæ×þðùåÑõû ßÎüí÷ ÞÓÿì÷ åÐòøåÓÿðùäØþñøêÚôü æÝýðù èÚðúæÚüï÷ ãàüñøæÜýì÷ æÜýðùåÜúðõéåîùûãíåóöéçäôýãýûôÝþý êâø÷ öåôó ùáñí ôãëëöæôðùÞñîòàðí÷Ýôò úáïëüàòêúâððøâñîýéöðßóñöÞõôõßòëñÜññêÛóï åÚóòþáßðêû ßÛóìûÞÚñëøÛÜíè÷ÛÞðíú ãØöñý áÚñíùÝÏôòûÓÑïñùÚ×óêûàØñíú ãÙêíøáàðïú æàñðùê×îïù äÝìå÷ìàîî÷îØðîùçØéäõæÚðìú èÞììú ðÙïîý íÝíðý îàííüïáìäý ëÚÜéøàÖäñþæÚëöîÚòù ëÕéòã×êîåÕçî éÚçðÿñ×êêêØçóü èÝéôü ðÚìôýáÙçí÷äÛìòú ìÜëó÷ ëÜíñöèÞêõóëÜéõòæÕëôòäÜðòó èÒòóõ ãÐðùñÝÔïóïÝÚìöî äÙï÷ñåÚðþñ ëØò÷ò è×÷ùòéßöüô éÛõúðåÚòûðäÕôùñßÛôÿïëÙõûðéØòøíè×õúð æØõûî ãÙöó ãØõòéÛùõïÙ÷óîßöÿòðÛøþõ ìÚøýõ ê×ôóçÜôúñ ìÚ÷ûñ ìÛ÷ýò êÐöõóØØöúï ã×úûô áÖòùðÝ×üû äÜþýíÞþýïÝöüøëÛûýàÚóõöÞÖðøöÜ×ñöôÞÙööÚØ÷õÛÔóÿò ÞÖñúñéÚóýõ åÞíýïêäðüñöàðÿó óâïùðùäòþòãôôûàòþóúæðúóãõõûäòÿóúàñúòøæðÿñçñôæòþóåõöáõþ÷ùÞõöôÞóôøãôúöãòÿöûæöøõåòúöðáôü÷ìæïþõ÷âòýù ìâïúó ëãðûöìÜïüõìÚòü÷ïÛóüùëÝð÷÷ éâðû÷ñåòýùòäóú ìçñýú ïâíú÷çáìûôäåéýôïàðøñÞíõö îÞðøö ìÞðý÷ îÚñúöíÚïýöéÜéýó ëäëûô óãêûö ðçðû÷òæìúùõáïù ðßëùõòÚïø÷ ëÙíöõ ëÞïûø ïãêõöòãìø÷óæìôõ ñèî÷÷ òçèóõ ðæíùø îäìýù îíéööþìçù÷ûæëõùðáêúúäØâñöøÖÕáíñÖÓåïóÙÜåïó âØèö÷ÙÞæìö ãâëøüÞäéôûÝàéýýüÓàåöûþ×ÛêöýÙÚéøüÛÙçñû×Ñê÷úÎÐçóùÒÐëóúÐÑéïùÒÕêôùÙÛëøü àØñõ ÙÜñóÿÜÜñø ØÚîú ÚÖðøÕÖìôþ àÔòý ÚÔìïþÔ×ïôÎÖîôÿÈÓì÷ÿüÇØêðüÿÒÙëõý àÔíôÿ àÐí÷×ÓîòÿØÓñ÷ØÖíûÙÖìóÿÙÛæðûîßðõôÜîóíãñóöàìõëÞçæüì×ìò ßÖïîÿ ßÓððÛÒííþâ×ìñçÙæêý çÛêñþ åÖçïü ãÚçòü íÝçëùñÝçéú ïÞçéù íÜèðú èÙåèõ åÐèò÷ÚËæèóØÐéë÷Ø×ëëöÞÚïñøäÝêðõ íßçìô ïÝêåö ïÜçíøñÜîîúóàòðüöÞôøý ñÝíòøïÚêðõéÓìô÷âÒìë÷âÒïïõæÖïôöéÙòòù êÜðòú ëØïøù ìÕôòù ê×òó÷íÞï÷öõâòøø÷ãó÷øýØêéó éÔâõïàÒìøôØÎ÷þùØÊ÷ø ßÒôú÷îÜòö÷üßõùûøãòöøûâíéñøÝìîññÙñïôðØóóõúÞöøù% ßùýþßöûúûÛòô÷ íÒðìòáÒóöñçÕóóóëÞôøôýéù÷÷óö÷õìõöôøæóôòôÞóññíÙôõññÕööóô×üõøôÝûúúèÿÿ" êü÷ýêüý!çü÷û!æüùûþèú÷úúî÷ø÷ð÷ôøïù÷ù ïûûü%èÿèýüþàþÿõÝøûý íÞúý ïá÷ûøóáø÷øôä÷ö÷ôäøüùõãöùöôßôóöñÝôòôóÛöù÷ìáøúøîÞùùúäÜíïóåÝõóøæ×ô÷øÜÒùõüÓÓùØÙ÷÷ýßÜñöúêßôóúñáñõúôÛóöù çØöôûâÙñö÷æÙóð÷èÛôôõçÚîðò ÛÜðñóÝÜñõóàáíöñëÝóøö çØóóòÜÓôøòÔÔðñðÑÐîöòûÍÖëòïØÙòõó ÞàñôòíâóöñßòøõíÛðþöãÝîûô ãÜðýöß×ïøóÝÔîýôÕÏïýôúÈÑïýòýÎÕìûñÿØÛîûòâØïøòÞÛïûòäØñýôåÛñùõ êÚñûõèØñöóá×óüóÜÖïûôÙ×ôúö äÙôùøëÝõûø éæôúúìæ÷ûúíåúÿýîäùýõäùûÿøÝñïúèßïð÷ âäñûùëÞ÷ûû æÝòüù âÜðúößÛòûùÕÛðóöØÛðõôÿÖÜìñôÚØïüöØÔðõõÕÖîùôÚÙð÷öàÚóýøåÚñúø ãÚðó÷ áÛîóõ äÜñù÷ éÚõþû ã×óøøÝÞðûö èÞöûúîÜôùüñÛðõùòÖñûúçÓîúø ç×ðúùñÛôüüôßòü îÞðøø éßíö÷ éÙïøøäÙð÷ö é×î÷ö èÛî÷÷íàñùùõäñþøûãîù÷üßð÷øöÛì÷õñÛðúøóÛïøøõáóýúùßóúùñÞóùö îÛíøõéÛñöö éÝíõó êÜèñðáÜæöðãÞò÷ åÚúþ ãÙòÿ÷ÝÜéóðââê÷ò êÜíùôäàêûò ëÝëðó ãÛìöòéÝîøóêÛëöó êÜîöôîÝêïôðÞì÷õóÚîù÷ ê×òúùãØïü÷ãÙòú÷çÙíõôäÖïõôß×ðóô ã×ó÷øáÒóùøÞÔñ÷÷ ã×ó÷÷çØôú÷çÔñîôßÓðõô ÝÕóóø áÚôõú åÞî÷ø ëÞóö÷ïÞðñ÷ðÙñ÷ø æÕðö÷áØóóøëÚïô÷óßñô÷þÞòôø÷ÝòõûóÜóöúíßôòùñÞñòøôáîóøøÜôøüìÚñïøåÚôöùßÖîîö ÜÔóòù ÙÕîóø Þ×óöû ãÜòöúèáöþüíÝöùüèÚòõú ãÝïôøéàöüýðãóöü÷äóüýùÝùÿÿïÛôøýêÝóüýêßõùþíåöùþøäôøýùßóúúòØîôú ìÛñ÷úéÝõûûèßîñùñÝæìöñÔëùüäÜïþìÚÿ àÛïó ÞÛóûáØðôßÛòö éÞðóíâòøóÞïñ çØéíûßÖèçøÝÚéïøåãïøüòÛööÿèÚëìøçÚìñù åÞíóùèßððø éâêïó ñàïóùôÞîïøòÞìõøóàîîöóàîð÷ñâîíööáíòöößìòõóÝòöùðÞçèõïÞÛßï ëßåòù èÚíûæâêïõßçìðåì÷ ðçåðóãåìóáâèîâçìóååéøãáíýõäçñÿôáèìüõÞæèùòáåîù÷åêóüùèëðüõåìóùòáó÷üïãïôøößõûúîßõ÷÷îÞôû÷ åâìõïìäôõðõáôøñ÷Üõô ïÚôùñçÛô÷ï éÙøÿñ æÛ÷þñçÙõóåÜøüó éÝøüòêá÷þò ðÞùóêßúÿóìÜûÿõ èÜûòçÛúñ ßÜûüðâÜøûï äÜøþïèÕö ßÝüñéàþôëäüÿññÞüóìáüòñÛö çÞùñêàüóïàþóðãþôòÛõç×üòä×÷þñ åÙüôêÝüÿòôÝþô óÝùõõßÿ÷úãþõüãÿõúèøýñÿäýþóôÜûôãÛùó áÙýôÞÛøüðæà÷ÿòîáùûôñã÷üôôáõûóõÞ÷ÿöòâôøñøáôõòîäóöò ñãõ÷ô òÞó÷óíÔéïìÞÚéúï éÚò÷âÛïøâÚñ úÞÚñ üáÚíùàÙêþöàÙí÷á׿ùóá×ìþ÷ÝØíüøØ×îýø×Óðùö×Ïî÷õØÐíòòÞÓïõóß×êòïà×îöôÜÔð÷óÙÐðõôÖÌîëðÿÎÒêèëÖÒîîíÚÓéïïÝÐîîóØÎëîïÜÑðéóÚÒçæîüÕÒïòöþÕÓ÷öþÛÔõë àÙëÓ äàïÛ% åÛÛ¾. ÙÙßÁ= ÛÚϪ>äÝÒ°DèãϧD üäÛ¶F#äϰ9%à׺/þàÙÂ#üÙÕÇ íÜèã ì×ñùâÙïùûâÔðóÜÑïéüÕÒô äýÐËøáöÂÊó ÖùÇÍùÔÿÓÎüÔ×ÍýÔØ×ÿ Ñ ãÜÔâÙÏÜØÿÌÝÕÌÓÒýÍùÊÒûËüÍÒþ ÍýÍÓþ ÌýÎÐý ÎûÎÔÿ ÏÚÔÔÞÛÿÓ éÞÖ çÜþÔ áÙú ÔÛØúÔÚÖ÷ÕÚÚóýÕäßúÛìÜûÝ äÙ÷Û àÜöúÜ âÙüÿááÚøá çÜöüáîÜöþâ ëÛ÷æäÛøýçèÝùýêèÛöÿêéßôþëñâ÷ùîöäõúî÷åôúíüåùøñúãõúóúãôûòüæøúõà÷úöôäôþõãíðñüÝíüõóãìöùæúÿüçú åö þêðýþåõüæðÿüÜðþðÜóùþðÚóþÿ êßêõù ïÞï÷üñáìðúôàî÷ýðÜñûÿðÚððý ãÓåõúÛÙííûâÚíîþ åØïðæÑîòÚÚéï ãÚíï à×ìõáÜóî æÖéð âÖïçÜäçåðäòí öÍßäÓÎÞñþÐÑáþÛÏç ÞÓá ÿÜÞå æßÜ æÞÜ çÕÜ þÜØÚøàÝÚö íâáÿ ÷åàñ ùåÜó ôáÙéæÜÝñãâßèõÞæõ÷àåäøÛåêð×àèíÖéêçÔèä áÚéïàÞåßéççäñáãæêçàÓþõêå׿èì ëåÜ îçã % ðãß ò×á&ëäÞ4'êÔÉB% æÌ²O&ë̾]#èÅœ](ñÀŠZ+ æÐ˜Y)ñОO&õ̪G* òÔª<'èѹ.ëÞÃ%ñèÏ!êóÝæüó÷ëöüõäýÿíÓ úáÚñôÞíùÝ éóÜàíÙÜåÚýÑ ëÛÔ ðÞ ÒóÕ ÏíÙ Ë ïÜÉëÝÆìÕýÄ æÓÊûÖÐ ÂýÚÑÌõÍÐ ÃôÅÒÄÑÔÆ×Ð ÍÝÒ Í ãÕÌ çá Ëí× ÏçÚÑ èØÒ é×ÔêÛÙäÔÿÒ íÜ ÙëÙÜßÝÛÞÒÛ ßÐÞ áÛýþÝôÞ äòå çòåÿæùãüê÷àí ðÖìâØûüêÛ×êÔÑôúçØÒùéàÖúï ãÞûîîÜôçè÷÷ðôèúó÷Þó÷ó ðÖûö íÔöóõèÕýúúâ×îüøùÞÕÿøÚÐùùÍÔèèòÕÙûþ÷ßÛóøéÞôêøóäìýüùÙûëÙóñüèØòôþ åÎôøüÝËëó÷ÓÑø÷ÔÕïöÝÙéðÿâåùïèäçôûíãêóüïäèðþõÛöíÙéí èáíòåÖëõáÎôþÞÑíîáÈîøÔÓëûÛÜõîëåìîêíîììî÷ééãïûîäåÿ êÜãø æâëæ ðßë êÖéúßÑîþÙÜçåãÒðûØÔáòÚÜïòÞÞîýÞáßìûêÛßóüãçÜçúéãéù äÝæíþ èçìõÞçúêããÞêÝîûâÜíñçàãíÞîçÜê÷á×ìèÛáÛëýäÙãùþ âäèñý ñØåú ëÚçéÿèæÜÿýóÛòçÛëèûêÝæñýíÛæèü éÚßøúéÛçôù îÖá çÚñöþ èßêêúäÞãéöåâØöø íäáúù õßíþ ïÝëóÿóàäþòàéøÿîÝéúþëÖìøþÜÔäìúÿÚÙæúûâÜêöþÿæäéþý ôéñÿöñèöüâæóú æØìß÷àÞóèöðÞ þþ÷ÛòÚþïÙ âøèÖøûßÕéùæØúþàÕæôüÖäìïåàîïêÖûæñêÕøííçÔ÷óïçÚèð ìÐñðòãÚöùñ êÔ÷óòäÜíêï êÚï÷ñãáéðíßÜçñêÝáæêçéãëìëôäã÷ìúÙïôïóåééíþÝéôùÜëøõÿßêòôÞîøôøåùüöúäîçìíâôòáÜùððÝÙóíð ß×òÿí àÜôûñ êÙðïîæÑñîûÛÕêïê׿ìïðÑìóèÕèòì ëÙáúìäßæõíçÜâôè çÙàòé äßàþëë×àøîãÖæúïêÖàîíêÒàüð ëÏæûò æÏäöõ ãÙåõòÑÜûò ÝÐØïÒÔ× ñþÑÜáø×Ñá9úïÅÚÛöúÓØÜ)÷û×ÔÒ óöÒËØ&ôøÒÐÒ ïýÛÑÑ.ôãØÚóñÙÛ÷ éÝÜöäÞÚóÝÜÜõàßÖô忨þð õáâ ÷ ðÝáöèÚâ÷àØÞõáÏáõÛÒÞ÷ó ëÖâþøóÏåûçÓèúúãÛäüùæßèõ÷êçâëöñëåý÷øææó÷ðëãèó øîëøü þãáéõ òÝìêø è׿ë÷äÒùùÿëÎúïëÒúïÖëïÚäÿçä÷óþçðöàøõëöîû öéùõýðéôãúòáòý ìß÷Ú÷ðáþôü$õÔúèû ìÐúÙøéÒüóýîÖÿíþõÖîÿï×üãýæÞùïúãéòÞõ ííÿòûïðõòø õñöà÷ÿíùóûúçýßùôãúéú óßòþíåõëû#þäùíÿ#éûáÿ(ÝâößÓõâÎóà#×ðÜ0È& åÜ"¾"áÔÇßÔÍãÞÐ#ñÛÞ %ôåÚ+åá( ãêü àèýöã å÷öÛíøêå äð!øæ æïóâøíìßìíéäéêïåõííãýêéðæûîèöäüñç îéõõåöãøòåóßóõãíáöêãñàñíäíâíûáîßììáèâëóâéâïüåìæìöåóßîüë íÝëôçëÞëëîÒïíÜÒëþêÙÔäýéÖÑëèÒÓèùéÑÐèìÿÏÌå ëûÉÌåôæõÄ×äêüÒÓëíüËÌêíóÂÏïðòÈÌøôôÏÍéôöÎËì óõËÐêñùÐÅëñï½Äçÿîð½Æê îîÀÎâðõÏÐð÷øÐÒêóúÎÑè÷úÌÐèóþÑÏéõØØë ùãÜé ù ñÝìüöÚÙþóì×Ü ÷àÚÚâÞÛ- ëÚÕ!æäÌ* ÷åÑ$ ùèËþâÍ* ñàÃôÙÍ öÙÅ õÛÎ ðÝÑîÝÍ êØÐ ýßÛÔöøåßÑ÷ëâÒøõ ðáÛÿ÷ ïÝÖ÷éØáýõ éÚÛùòëÜÝøôïÔÛïíéÐéðô ìÐð÷óïØÿÿùôØýùöìå÷øôçÿîòúáûø÷åûëòãÿôõÿÝþÿ÷ôÞûêóöáýèôôÞóõë×øðòæ×þéõìÚûëòóâööüãöãðùâüæðíäùëíìá ý÷ìã ôøòãúöõÚîõ îÙæðîØ ÷øäÜÿëïéÙíñåÞþìîïÞéñóßëôúÞêõóàóôíÞçóíÝñõêâì÷÷Üûêò êÕ÷ñó åÜüèôíáïúìæóù"òçíú"÷éðù(æýæø$æúìø$âùÞõúãûêùôäûé÷óãüðõ ðåùæõøãöíõùãùêøøæùèûøæùéú!úçùøý#ýàûìüðÚõàøçÞôóýñÛøêÜüêàþæÿíßûûðåøâúðåøöûêàñë÷ æÝóå÷çßùëÿèÛùðþ èÚöòþäÛôîüáÖõõý áÙòéûìØøïþèÙ÷ðý ááóðúåçóíúìåîæùïßõôûæÞòèûéÚóòüêØëêøç×óçü êÓúôâÒùàÕøìÿ æÑý÷àÕþôßÚüñáßóøü åÜóíùÜßôêú ãÜðìøàÜôôûàÙóðüÞÖïûùÝÓôêûÜÔóóúáÒðúùÞÏñòøÖÔîð÷áÝãçòïáßìõöææûùãæ ÷âè  øçèüýæàþõàÜèäß÷ ëÞáø åÜÕë è×àø âÚÝí çÛÜùêåÚòÿõâæö îåàò ñçáõöèâúäçûõäåðÿóâçõÜéöþîØêúþìÝêþüíâç÷øïççö÷éèåóôëèéö÷îä×áíæäà÷ø çáçóÿåÞòýàÚäõÚÐçìÿÖÌãîûýÌÍãóúÿÆÐäê÷þÄÏáìóúÁÐâìóûÇÔãôõÓÓäíóÒÕéòõÒÔãéïÓÑäïíÓËâèíýÏÈìõòýÍÇéôðüËËêôíúÉÒëñïûÓÖêððÿÜÔîöòÿÜÐòúóØÏòûòÙÖñýòßÚóñäÜôüó ëØòýóãÙöýò äÕóð å×ôýï æÚöûñãÜóõïæßôï ìÙ÷ïã×ôÿëáÒùÿíþÞØõì îÙýñôÛýòöÝý ñ ñÛóõêéÛðÿêïØù òÞùõÿÚùñÝö öõáýÿù÷àðñôàøûòðÞõúñ ðÜõðîÒóÿïßÒíñè áÕøÿî èÛýñ ñÛýÿñ ò×ûñëÚúð ïÜûîôÜûïõÞúýïöÞöþîõÞþðößüîöÝþï ñ×ýïåÔýðßÑñÚÓÿðãÙñ ëßþðïÛÿóêÞúúîðÞþóôçûþðèýòüäûûð õäøñúÝûó ðÕùóðãÙöìí éÛ÷úò éáøñøâù÷ñÿèèèèæèôïúîùüù íúÿëéðúþëðûèñèõæëöðâíîîãêçñßîðëÞòôêãëéñæíæóãò÷ïãîìÿ ðÚðõþ åßñåù íáòþùïâòñóðâóïñ ïÞò÷îìÛ÷öðéÓöôë ÞÖ÷ïéåÓùûêæÓúÿê áÖö÷æÙÚ÷öä ÞÜõõâ åÙ÷÷á æÚôýàçÝøúâíÜ÷ýâîÞûøäéÚúùâ䨸úãå×ûþçåÖýþçÞÙøñåãÏüí ×Òüúì ÛÙùþéäÞöùéìàû÷íîàõþìíáøøïòÝøðöãöüòüåúúôûàú÷ ìÜõûõ áÕõüóÙÕõüõÝÔõ÷ ÜÖôòößÚóø÷ èÚóÿú æâñøîàïî÷ðàðöùóÞóúýôÝðüýîäðúýøàòôÿ ïßîöü ìÙîòû äÖðúüÞÔìîüØÖëýþÛÚì÷ý åØíôý áÝìñûêàñó ìâéùý íãéöý ïÚìò åÚëóþ çÔëõüÝÐêñûþÔÚâêø ãØäõúà×áöü áÖé ãØî ç×ôàÝìþ åÛïüÿåØêúþßÞéûþéÜíäÖçþýÙÕêüÿÔÓæñûÐÐíùþÎÖêöþÕßìöþßæäëùéááçû êäâçùñáæîý ìÝíòÿèØéöþâ×åíûâÚëñÿæÙëïâÝèñüçÜêíþ ãÝêíý ãÛêïýßàèïü àäêóþéåëñÿ îåììýñàéòÿëáëóëáíí ñàîïòÚíö ëÚëñÿ æÞééïÞíøðâìëþòåíü÷áîîõÝíúíßïôÿìäìçýûåêíüþÞíöòØîëþéÑóó ÞÑìõÿ ØÌïìÿÐÐêëüÔ×ëîýßÙëêþáÜéðþ äÞçïû ìãëïýñæéæýøåéïþöäëìýõãìõòÝìë êÚíî åÚîöæÚîð âÚïï ãáëïïâóùõäèäüæÜÛüãèð þæíñçëôåááæâôäæêúèÞàüìÜæïßè ïàã! ðÔÞ#íÒÔëÏÓ îØÚ$ ðÚÜ(ïÛÚ" íÖØ$ èâÝç×ÜæãçùâÜÞ îãàè íááê çâåêòáëìöàáëüòÝåïûòÙêòû ðßïñù öáòòøúÝöúø ó×ôûñè×òüîèÖùðâÓøýéÝÐ÷öâÓÒ÷àÖÑúýÜþÖÐûüÚÛÑþÛÞÒÿÚæÓý×éÐÕâÕþÒèÔÔá×ÏáÏÏØÌÿýË×Ñ ÏÝ×ÐáÖÔÙÑÐÑÏÏÒÖ Ð ãÙ Ó ëÖ Õ ãÔ ØÔÔ ÖýÓÔ ×üÔÒÖ×ÛÒêÕÖëØ ×íÜ ÜíÜ ÞåØ ÞÜØÚߨ ÝáÙÛ äÝ ß êÝßïÚ à ì×ÿÜ ãÙýÛ æÙßê×åæ×æ ä×è ãÜæ æàêïàýêîÛðçÝðóÞ ôôÛ ôðÜ÷ëÜûóë×ýüñçÔ÷ûð åØ÷öïéÜúþóëÖú ãÙøéÙýëÜþþïÜûûñÚûüìÔøþýàÒ÷öüÞÐõ÷þÚÍõøýüÎÔñôûÙÔõøþÕÖñöýþÕÓðûýýÑÔïùÿÕÕñù×ÙìñÛÞðøþÜÚð÷üÓ×îöþÔÐîõÿÔÒîöÔÎëóüÌÔéõüÎÒêòþÏÏéíûÊÏçîÑÎéóÓÑåòÙØêñßÛæòÞÖëîØÔçóÜÒçêØÑæïÐÖëòÖÚèøßÚêñá×èóàØåó ãÕÚäÚÖÞíþÚØáöÝÛåù âÜçò åÙêý ãÚãõ åáãî òßìðóÝäõ åßáò çÞâêçÛâê ãâàëòââìößÖàÿìÞàôé×áí âÞâó ëàÚíêåçóýáãôôßÛì ñâ×é ðäáñ ôæÚé ýçÚèýäàñ ùãÚõ òèÛð÷çãøûåÛóúåÛôýàáöðàâôêçàýÿóçèûúéãõûûäæú÷óåêóõöçéôòöåçñðöåè÷î÷àêóîñãëîîõæóõðûãñøí ôàêòè ðÛïòçÞÜëòæþÞÞíîæéÞòõè ñÜðôç íÜôøè ëá÷úê÷Þýýð ñÞööêïÙþþîäÛõõè éÞùúê îßþîòãýÿï÷äñôßþþï íàÿïôàûùíùãîâñúãñûâþïöÞðóÛððÞþîòáüíñÞüðëÛîëÝüíñÜýöêðÛùëìÝûìõÛññÛïêÚþ÷ìéÝóëïØüïèÙýõëëÙüöî éÛüõì çÙúõë ãÙýôíäØüüï áÞúöîëàùóíìÝüúòéßúðñòßþøõïáýùóñáûøôîßøòòëàõñòñãû÷öùåúúùþäúûúøéúñù!ßûúüðÜðíôêáìëòðàõø÷íàö÷øòÞóõø êÞïóõ ìÜôóù êÛôòöëÙòõ÷éÛó÷ø çÝòóù èÜðîøâÛñóú çÚó÷û äÚñóúâßëì÷ êÛððù åÜêï÷êÝíöû ìÙðîü äØððûßÛìòù ßÕìíùÚÓíëùÚ×òóûâ×ðïûçÙï÷üçÞðóýîÝóíîÜððÿïÛñóÿðÞîïþôäîïþùãõõûáíïüÝðööÝìïþòåëèûúâíìþòßíïþñâìíü÷ßñóþöàíðý÷ßëïüòâçê÷óÛëòû èÞåïøðÛíîüîÛçîùîÜêòüîÜëðú çÝçíúèÞéîüíßæëûìÜÜäù ãÚæêæÛìðëØêðåÞÞá èáçîéÞáë æÞÝá îáàä ôäâæ øèæã üäåî ÷àäç öãâåúææïûååê÷âéìóáèñöáêôóÙéöþßÖæòûÕÙæðùÝÜðùý ã×ë÷úÞÙçûø ãÚíøù ãÛñùû ãÙðûùâ×óùáÝíûó îÜñýõëßðüò íßðÿòîàóòòÝðüñ ìÞðï êÜñïåÞñþî èãñ ïîÞøó âÜñÿí àÚôð âÝóîéÜôïâÛðüëߨôìÚÙòëÞØôëÞÖñéÛÖóëÙ×öíÛÖõìÝ×öìÜ×÷íÚÙõìÞØø îáÚùþïåÚ÷ïãÜ÷ìäÚ÷íÞÕóÿëÿÚØôìåÛöíéÛû ðãÙøîßÖ÷ðßÖöïÞÚôÿíâÞúðèßùñ ìÝúóéÛ÷ïèÚúò éà÷òòÙ÷úò ç×õüðåÖ÷òãÖ÷ó äØöùò äÒ÷óØØõýñãÚôýò åÛøò éØ÷ÿñãÖøúôâÕòùñàÚòûñ èÜôûò éÔùùôÚØôöñßÙóóãÚîúñç×òúòáÙðøóäÜöÿø éÜöþ÷êÜïôõïÙòð÷äÔòýøÙÏììôþÔÕîò÷ÝÔøþÜÍîò÷ýÒÕëüøÛÝî ÿÚÌþú×ÉöúÎÎäýýÖÎçõÖÐó÷ØÐý" ÔÍëùÿÒÌäý×ÎÕý ùÓÑçÞàåæÊÚóÃÇ×ü üÇÕÊýÖÐÑúØÑÀøüÞÕÆáÕ¶ÞÙÌéâÊ"ðܯø"ãÞºî áÚ¶û ÝÛ¶ó áÚÃû!Þ×ÀÞÒØ±øÚÝÂæáËüðãÅñûáÔ ôäÒ÷øéÑ úÞÝçßÙ ãÜÕûû ãÑ×íóÓÙÓþô ßÙñöðâÝõöê ðäöûèõéàèéöåèýùàùàô÷× ìÝü÷ÎçÞïÉéÛ ÞÅàÓ ÷ÄÜÎßÀÖÏüÒºÖÍ ð½ÍÑÒ·ÕÙ)¼¶ äé$à·!ÿÚ/õÂðè*ܽ(ÿè%ý¿$ÿò0ßÃAÕNñÄáÈOù ÛÒ2í¹íÜEϼëÝ)ú¸äÌë½&ß5¸(ØSóÈóÁ$ÙºÿÛæâº/3ßÇJ×MîÏ5ïÞÅÅïÿ&ÏÈNâ&ÙÒR&âÕýè,ÜÖô½+רåï×Ù+úêä þ äè6¾)èêè!öæ4 8óó,µ+üõ2åâêBïù-èîõ+Ï)øùööø:Ðöþõîõÿ*ý( ŸûÉèþôöøÎõéöñù6"Âú ãÿôô,åò #èôø- ãùø/ ýýI$ê&ú <(.,å%#þ%òõ_GÑ'&îÆã׿ÙÏÑ;.ÙúüêÓå ,÷ ÔÓ:&ûñß{9¬ö$пÝåÓ í×ýÓéàäÌ ýÙüÒ<ìÖµÌüã«áÃBëÏÅËÊÅïÌÌ÷Ä×Ç åä×FŒÙéܮͬ¯ùèðªÇøá´´ËÎÃÚËÞ ,ëäºú ìÀ¥Åàÿ§³ýÞÒû Øù‹¿Ë À¡Ìÿ»ãÊŸß,õ·¨Õ#ݱ§ä ¤«Ë€Ìʵ´¢õÅ šñ"èíÈ¢4Ú­ï,Á®Šö*R Õ¥9ÓÔÕ”ï%ëò”þ(òÒ½2嘧ÿ&²¬Ú£ïÊØè¿ $#ö»· ³Êá¦îÙ ¼Ù¡ºþݯÀ¥ðÔÓÆ Óû¦üò¸Î÷»Æ³ùÃÆ¸¿ ­ºÏÄþÏÐÜÐêÉÆ ñȱµóú‰ŸÑÚNöæÉ ØëÊùûââüó+ àñ¶î èĶÔü÷æ¹ÀÐõåËÜñúä°ÿ+ –¦ßó6 ¦ñ¾®ÌêöìÌÂ&ÿíÃðä ïúòÄ #ýÌäÿ ûôݾøøäÑõ $ óâýèÎüùéÛÒ2þâÓ þîäÛ!ÿìÓúüèÜþìÛûóáòû&üÙ áß úãîýøÕ" ðà ëó ü"ýÙ íá* îÛ1êí5 ðÏ/éÞ3ô =þÞAü%ñó0ì-Þ6éñð*Ý;í.Õ*÷Ü-É04óó'À4ûÞ)¿7íì ¿2$õê'Á-îà/Ð.#èïÇ1úâ$Ù8ñÕ!â 'ñÜ0ï ù+÷EÛ1ý"êâ$ýëëã(å!îé+áîä+!ÜöÙ.$Ù áÖ!Åßé .Ãòê5Á'÷ð3º$ùÞ#?¿(íâ?º#óÛ3³çÕ 4¯æâ0®ñÔ3®Þç-« èÏ 1¯ ÒÓ)ªÓÏý%ª Ìåú ¨ãàÿ$®Ûâù!¬ÞÝù°ØÕó¯ÔÞð±äÙî²ãÙíµæÞè µèØì¹äÖä¹ÖÜåºáØã¾ßäÛº!êãØþ½èãÜÄ!ïÝÜúÉëíÅöÃíãÒÒêÛÍÛëÞÉãíØÉ ëåÖÑ õ äÙ¿øìâì¾öééñÃòçóó½ìä+ýìÃææ'üæ»çåùç¾çå!ÿíËîë#ÚÍíëîÞÈìèëÑÇêçãÖÄãæòÝÍéìûÚÒîòòçÍäìôäÑîîéãÊÝêæáÊâéòæÌáìòÙÍàì çâÌÜìïÝÑåïèÐÐàñÖÛÎÝï áÕÔÞò ß×ÐàóíÞÙçöòßÕÜõêæ×ØôëïØäöòàÚâøêèÕÚ÷õçÛâûöàÜÜýïåÝÞöåæçøÛßãñÙàÖÿêßíåùÞñÖÿæõÛüà÷ß ðÝþë ôÙòÛ îà÷ÞðÙíßã×îÑÿâÕæÙþâ×ìÚÿ éàïÜôÝìÛóÑéÝߨèÔþåÎçÒÿëÑêáó×îßõàìÝ òÜêÜöÛíÝ óÖéÚéÓìÚåÒíáäÏêãâÞéØîàêßïÛçÛçÝèÖòÖõß ìØðæ ïÚìì óØîà îãîà íÝïê æÞîæ ìßïßëÚîã çØïè æÑñä åØêäæÚìà êâàÓæÓýìØÕ æþàÔääÎê åÑæ ïÑäðÒê ëÜîîÞê òãî áòæ è Þóß ë ýæô ýâí þÚøðÖÿéðÜúæóÙÿéôÝÿóîåøíîåöïç×õïþÚÚîíýàØóøàÛïïÿäØóößÔôõýÖÓíúøÏ×èôýØÕòøÚÏîôÓÑëûÙÓêüÚÔòùÝÙîåÑîüÚÖëüÝÝíü åÚëý ãÖëÿ ßÏé ÙÓæþÙØêþÞØêÝØéç×éý åÒâÿüûÎÒáûûÓÜë þ æÒüÚÍóÿøÍÒôÿ àÌò þÚËôþÿ×Íï ùÿÖÌõûûÒÐï÷ÿØÖêôàÛñ öãÚëóýÜÎî õüØÔëõçÝð ù ïßðöòÝïøðãì÷ïÔìõÜÕêñàÓëöèØì÷ îàî ø éáîõ èßíô èâìÿò êåîøüàêõüèæøüèéûøäññÛñéÙô îÚî ñÛìýðÛðóÝí üëßìúëãîù åàíöÞëé ÷ óçîøùáôúûâîöüßîöíÝïô èéïÿòíãóõèÞðþñíáñðøåíøïúéòÿóøèëõîòãõýòéæòýîðàüöëØÿþóè×õìØüøñèßøóãåûþòâÛûúñ ÙÛúðî ßÛøøïáÛùóð ãÞûøò äÚûúó ÚÕúòóÕÙ÷óñØÖùõñ ÜÔúüóÛÍôíî ÕØöóð ÜÝüúóáâùçÞýöâàùóóãàüúóáÛý÷ô àÛüøóäÕûðñÞÛùóñã×ù÷ñÖØôïìØÞöìîãâðêí éàøòñ èÞóïî çÜ÷ñòãßöïñæßøòò ëåóêïðáôìðôäöéñ÷ã÷óòôÛìèìð×ñìñíà÷óõîêýö÷øçøïöôãóæðøâòêò ôÜóîò ñßóëòóßõëòñÛôìó êÕôêñæÛôìïêÞöîòìâóìðíåõêïêâñëíêßòéíäßôïðçáòíðëÝøóó ëßôñðïß÷ðòõàðåðíÙîèñßÙêÞîâÝùñøæàýøùòàüóúóáøî÷ýåùôúçúóúåúðûÿç÷öú&ßýóüúÞúóû ýÞüóý$ÿÙûõü*Øþöû!üãõóø!þåøõúûëõó÷íõó÷çóîöêôõ÷! éôôù"èöôø+çóò÷ éòô÷æóö÷çôð÷çööúýçòòöõæóøùøÝÙÞðïߨå÷ ïåèô ôäìõøäêï&÷èèï)þâàã!üÜØÚøáàæúãÙÝ÷à×Þ òãÛâ öè×ÛþâÞäüåÙÞþâÜÝúùàáåþ íØâæý éÐåæû âÏêðüÝËçëøÿÔÏèì÷ÿÙÑêðö÷ÒÊéñôòÊËêêñùÎÎíôñþÖÕíóíâØïöíâÜí÷ï äÖî÷ïÜÕðøï×ÐñùïÿÒÎïýîþÑÒîøêúÌÕï÷èöËÒîûçõÏÕêøçúØÖëøæÛØéöåÝÖèðäÕÛèôåàÝìøèåÜñúèéÛìóèÞÞìöçÕ×îûéÌØðéÖ×êÿêßÝðíçÛòÿîãØðîþ××ïëûÓÒíéöÊÎðê÷ÇËñëÍÍôíÐØù ïÜÛøîâÝûî èØûïÞÕú îÛÒ÷ìÝØûí éÛû ï îÞöì éÙù í âÒøë ØÐúëÖÑùêÞÔþ îäÖú ì ãÙüîÝÚýïÛÞÿ ï æ×ü ðæÙôíÚ÷ æØü ôàÚóáÕ ôÛÔ÷ÚÓüÚÒ û ÞÐûÔÑ÷ ÚÔùÖÕõØØö×ÓöòÓÙüòàÝþ ÷ìâÿøôáûóÞþùìÚùøëÞûûóà ÿöàùþýøàïúù÷ßøôÞüóâÿþ ùßû ôä÷þ ûà÷ñ úáõï Ûöî ôØéæ èÜîé ëÜñêïÝðõòÖëð èÞéòîÝêëðÞäíþïàèòôßðööÝêõþïáèðùøâê÷úõÛåùöåÜÚìí çáãôïôÜéõñóÚçîîóàåðìûáèóîúàð÷ñþÛîùïòÞìôìúÝéîëöÙïûììÞæñæòÜêóç ðÞäòä ïÞéøç ðàíñéîÛê÷éäÝæóã ðßéøè ñßëôæ ñÜêôæ îÝñøé êÙñöêãÙë÷æ äÓóýéÝÚïõèààñþëæàðýíæÞôýðéÝóöíêÛõñæÝóûðæàóüñ êÞõñ êÜòøñäÞôúòâßó÷ó çáöÿ÷îâô÷õòáõõ÷îåóýø ñåôúúõâöýüðâöûüîäøøþðàòôú èäíò÷îÝóøú âÞîîöÞÞìöõßßðò÷ äÛ÷õþÙÙïöúÙÓñòü×ÎòöþÓÒò÷ÖÙïõþßÚòó âÙñõä×òò çÚîðÿ åÛïïþ ßáîíýåàìïýïÝñôóÜððïÚñîèÔòï ÛÒïðÖÓòñ ÞØïïçÚóòëàñðìÞòëïàðíïàðð÷äóñóÜíîêÝîïïßêíðãëêñàêéìÜêéåÙééÿ à×çëÞÚéêàÛéìàØåçýàØæäþßÝççÿ äÜìðåÞçåÿïàíëðÞìíéÜïëæáèéñÜìí ëàæåþïàêé ìÚìïêÚéèîÝëðóÝïòñÞíïôÞêìïØëëäßëêíØð÷ åØëë âÖéí àÚëêçÛëë äãèæýñÛêé çÜèé êâêëóáçïöãéíøãëìõãìëöåéðøåíð÷åêéùæêòåààýüáßåýîßÜåþ íßçåîßëí ïÚçðæÚåë èÜêì æØäïãÙÝåÿäÜãëÿ êÚâéþìÞâïþ ðáãìý ðßãçúëÞãîùèßåöúìßé÷ý èßéñûçÜçòùãáåôõ êÝèøö çáèîõ îáíùú ïåìúù÷àäëõïàâ÷ôðáíöýîç÷þûçôöôäðüðáîõîàëõôàì÷ðàðøÿìáê÷ûõâòøþõàñòúõàñ÷÷öâîíóóáóöõðÝöüõ ìÞóûò ñÞøþò ðÝôûïîßûò ñÜøð ïÛùýì ïØ÷þëäÔøýêãÒýíåÖúÿêëØûêíÙþì éÜý ï êÛþ ïçØùéçØþëáÚûéãÚëáÝüç èÞþé êÜýé éØýë äÖþì áÒþêÞÜþéíÛî éÛû êäÙýçàÛüëãßÿì ëßýë ëÜýëäÐüêÿÔ×ûé àÛÿìäÝþíçÜÿëåØúÿé ߨýëØÓÿíÓÔ÷êÖÔþÿî ÚÚþ ò áÜüïãÙûüíÙØøëÝÓûñÜÖüþðâÕûñÞÕ÷ïÝØúýïâØøþî â×ýóàØûÿñÛÙüòÛÔûòÔÖûñÝÕ÷úïàØüþòåÜùóçØü÷ÝÚ÷üñ áÚúýóßÚöÿôߨøõÜÔùÿõûÓÓôøñûÖÖõýñÿÙÖõùòØÒöûôØÓñ÷òÚÑø÷ÝÓ÷ú÷ÞÝöþøëØõùøâÙöù÷áÖõýùØÏøüûÎÎóûùÓÒôóøÝÖóööêØõÿúèÛöö÷ ëÙôõùïÙðñù÷ßðøûßööý!àóõüöÛòôúâÙïñ÷áÙîõùëØñóüçØëîøâ×ëíöæ×ëæôî×êõúëÝèëõòáðøüõàéèõòåêñõäíìø!Üìîû$üÙëîúéÛìéùçáèã÷ðåáæõñèåëùöãìïüñÝðôþðÛëóüðàèîøúãçëø÷ãçêøòææìøøëèðùìêôüéêóüèèðûÿåêíûýæèîùüãêïúøåèïúûæÝä÷ ëÜáõ$åîÿ÷æäïûâêõïççòûèêïÿåâéýáèðúÜâéÿòÖæëÿ éÞåëüôéåçýèëïäíò þãèíýùÞéïÿïàäæû ïÝéïýæÜæëø êßêòýíÚñõÿ áÖêïùÜÙèñöâÚîöúãÛñøûãÝî÷ù èàï÷÷ ìÞêëõìÝïù÷ïÞïó÷ ðÛíøöéÞìóô ëÜñúöìàíöóöÚòööïÙñõô çØòúöáÝñùõæàïõô éÜñôõ çÙöûø æÙõûõ ä×õÿ÷ÜÚòôò Ýàöýôäáõù÷éÛõùøåßôùöðØúøù äÝôù÷èßùûûêÛäìó æÛçú÷ ëÜñúïÙøþ êÛòú èàòöïÝòñ æÛìðý åÛìéüæÙçëùâÞïóû æßîïúåÞëìöçãìôù ïÝðñû íÛêôöíØñóøèÙîí÷ áÝðòö äÞìòôæÜñöù åÖòöø ãÚö÷úìÚ÷üü éà÷ûú òßöÿûöÛúüüîÕøýùß×ø÷ø åÛùûúðÝýûüôàüüòßùø÷çÙýú×Öû÷ÛÜûûöðÖúêÛþÿøéÚýþ÷ Ýàúüó èÛüþõ éÚþüöðÖûøóêÚþòòìÝûøëÛ÷åÕó ÝÖ þôÝÜþó åÞûïåÛò ãÝÿöï ëÙÿüòáÜþþò åÛùùî çÞüúñ ëÝûýñè×øúïàÙøýñ äÛùüñ êÙøõð é×ïóîâÚêììÝÖï÷îÚØõûðàÛôÿñåÛð÷ð çÜöþôæÖñüöÛÖï÷òÚÖîöòÙÕëÿòàÓíøóâÕðöôæØòû÷ æÙìûõ è×ìõóáÚçûô âÙïý÷ åÚíóö éÚíøù èßêøø èØíøùÛÛéú÷âÕíýúÚØéïõà×éõ÷ êÚëö÷ ôßë÷û÷àéõúðÞêûùîßê÷÷ïÝêðùïàèòøóßèùûíÞéõù ëàæì÷òáêöú÷Üíüý ìÛæñ÷ëÛëòü éÚëøù çÝè÷úîÜéöü çÛîûþ áÚíøüÞØæîøÝÕèõøÚÛæòøàÜìùüâÛéöüâÞîüý ëàñúìàïüïßñûéàîú êØðüàÚòù åÝíÿÿìàìúèäëøÿ òÞðý êÚêýÿáàìóûæáîõü êÝìøý ëÞçûû íÞéïüëàíóü èáî÷ü ìØîøýߨëõúåÜìðüèàíôúëêèòúøáßìöåÚáòû×ÞåõÿäßêýâÚåúÿÜÜæþäÛãíàÕåöýÖ×ßïüþØÝàèùãßåñü èÜç÷ý çÙçôû áÚêôúéÜéóù êÝêùù ëÛêïö êØêìõãÙëíòåÔïõõÜÕêíðãÛïõòïÚóôõ ë×óøõéØõù÷æÖ÷öõ ÞÛñóòäÛ÷ú÷èØùúùéÚ÷ÿøêßñöóëâõùõëäúøøòÞûúùíÝ÷ýøîÝûûúïßúóøëÛ÷ùõæÛø÷éÖúõùæÙúù÷éÛúù÷îÛùøöðÞú÷õôÝÿýøôÞüøøòÞüýöòàýõôýßþú÷äýø÷æú åüø÷ÿÝóðð îÜíñìñÛúöñõÚþùòõàôñîüâ÷ûñùäúøñøàôóîûÞòôîùß÷óðøÞøöòïßøôñòßøøñôàöññøÜøùòñÞõúñðàö÷ñðàúøôíÜùôôçÚüû÷æÕü÷õàÙùöõáÙúø÷ áÚúú÷ âÚøñòæØùøö åÛúüøãÛ÷ïõâàõõôíÙøùø ä×õöõ ãÛ÷ø÷éß÷öøíâùøùðâöúùðÞûôúêÚöôø ÞÜöôöâÝô÷øåÝøùûåÛôúøáÙ÷õúãÝöûû íßõþüêßöôùçáôüúæäôúù éßóüøéÝó÷÷ êáñ÷ôôßðüöèÛíñò à×îõô àÔððó æ×íôóìÔòóöåÝíôôîÚïúøààîöö éÞïô÷æÞëîô åâìõõ éÝîõ÷åÖìïôåÔíñöàÖëïõ ÜÔñ÷ù ÚØîîöçÜï÷ùëÝðñùëÙòõüæÚðõøéÖñøû æÚêîöëÕëñ÷ÛÝëñôéØìó÷ÝÖÞíðÒÙäùö×Ùåÿú áÛðÿ âÙåúúÜÙçüúÜÔçùùÙÒèùú àØëûú éÝéõùðÚíýþíÝêòùñäìüûûãïùûúãíüü÷âïüûòÝíôø êÛíñôæØëîôÝÜëøõâàîôõ êáêóö ïßðú÷ íæíùö÷çïöõõàîôô íßîöôêàîöóïáêíñöæíôôøâñýö ðßðöó ïßææì íáéîì îÛïýóèÙöûôæÜóúòæÖóöðßÛñññ çÚóíî çÜïõô ëÚñòõ èÛûÿíàóæóçÚÔ)þïÒÓD" ñÖÀW,òϲc1êÀ¥a&éÁ´`üî¼£U$éÊÃO!åÑÐCûäÓÏ2øÞÚå!ìÚâïãÛçþéÚó ûê×ùòä×ûéàÔåÞÔÞÿÞÖ!×äÔÑÝ× $Î àÙ Ê çÙ$ÈêÙ ÃéÙ #ÂæÖ ¿ãÕ ¾äÙ"¼êØ ¸åÚµüãÔ¶ûÝѸßÑ ¼ãÓ ºâÓºÝÚ¼çÝ ÀêØ ¾çÖÁåÔÂæÔÆåÖÈãÛ Ìä× ÏÝØÐþÛÒÿÏþØÒýÒÝÑúýÓÛÕùýÖá×øØâÚöûÛåÝ÷øÞ èÕûåßÙøëãìÙüüêðÜúúìôÜûýïïÚùìíëØóòï èÚôñò éÛõðõ ëÛò÷÷ åÞóëùíÚòìù çÚíôùãÚóßÔôýýÓÔö×ÑúØÔöÞÕïçÔ÷æÖîò âØîý ÛÚëõ ãÞè÷ æâç÷ åãêç ááèï àáìñ åÞèèçßçñïÙîö ìÚîÜ íÞëññßìöðãëèñàêä íçêëóáîàîáçðëßéÜ åßåá çÛêèèÔåê áÓèà åÖéÝ æàëß æçåä ççãçéåæâëáãßæÞã׿ÙäßåÛæèîßäÝ÷Ûêê ñÚçã ëÔêááÛáÙõåãæýñëã$ôÝÑ)îÙÏ'îäå+äèà#úÞêÚ$"÷×íÞ(÷Ùëè&ÏèÓ#úÍìá#óÎäÙëØáÖ îæáÞüïáÙ#ôàÛ* ôâÛ *êäß ïâç× áãæà êâêí òßè× óÚàßôÒâäòÑæäôØìæ ñÞéêìéÞç÷êæêíêäàþèçáàúáÞæðü Ûââå÷ããçåûêÚé÷þäÕçóúÿÚÙäæõàÑìöüÛÍìïý àÏìõüäÓóûýäÙæôø ââèñö èäðöù èåéóóéäìûöêçëü÷ ðãóüûéâíþ÷æàïúößÚíûôÝÓðôàÔïõóñÜñûôåõ úçùÿùýçó÷øêðõûåøö ñæòüð òàóó íâõýóéàø õ àÙòï ÚÕóîÝÍõïÚÍòîÚÏ÷íÞ×õìãÜóìàãñíâåñë ëå÷îöã÷îôáøíéà÷ìáÛõíáÖòêâÔ÷íÝÌ÷íØÌüïÞÒýðãÙÿóßßø îàßôìØÞï íÜÞõðßÛõôÜÕòôÔÚúøÞÜö!øÜÚñõÝØô ñÝÖò ðÝÖñïëÑ÷ ï òÔõï úÓ÷ ðíÕõìäÙóé äÞóèêÛôýæ æàðã êâõæèçôèóèõêüä÷ÿêôß÷éîàõÿå òÝùþé öÔõýè ðÑõæíËöÿçÙÎõ÷äÓÖïõâÝßõóæóãðóèøÛ÷ìäçÕñß×, êä×7ææÔBæè×EúãõÏ7òÛéÊ>åßË;ÿç âÐ+ýáì×0êìÜ&úèìà$÷éîáýéðâöæñÝõæêÝïá èàæßîâéà÷áòåùÜñçôÝõéöàïéøàþëéõæ÷êèúâòëèðæêèå îæîëê íæîõìíäðñðíßèðíéØëôñâ×çõò ÞÏæôò×ÍáíðÏÏäïòÊÏßéñËÏáôóûÉÒÜòñÓÎÝôôÿÌÏ×çðÐÓÚôôÓÐÝò÷ûÏÍÖëôöÆÑØó÷ýÐÐÔïöÏÏÖêôûÄÖáúÿÒÚåüÜÜíùüáÕïûÕÜóü àÖëúöרíýùÜÔìþúúÒÙäü÷ÚÚãûø××ßñöÙØßñõßÖÚøó ç×àôù è×âöúÿàÚÚïôüßÙÚð÷ÿâÕÙñùæÕÜöúæÏÜøúâÑÚòûåÒÝöþáÚÚøýêÛÝíÿêÜ×óüèÙÛõþ åØÙòýíÛØï òÞØúõáØò ÷ßÛ÷íà×ñïÛÙ÷ôÔÚóòØÚôñâÕðòç×ñïæ×ð ðêÚñûåÞý üãÞöùê×ôëÜö èÚòäÛü ûçÛõçÞøêÚòîÝûðÙõëÖê êØø üåÛóöææþýæèþ ûäêúßæóûãäüÝéûüÜæ÷ðâéö ìáâüèæâòýóèäúüçæîüêèóêêýâð÷ùÛè÷ï×ëðíÐëó ñ×îøûàóõüæñõûåìòíãíùþæåêìý êèíôþ ûéïðäùúþáô÷õßõôéßñúíÛíóüëÜâî÷îÔîüëÔóðÖøøÛóõßòú íäìõüçèîöüùéåðûüñçáîöú÷áãîô÷ èâîñöççòööïìðíó!óåòî÷æÚêæóØÚìëòæÔöö÷íØúûüöÚú÷ûíÛöï÷èßôòôëÜïíðàÛîëîÙÝöõãáþúúïßþøùéâùîóïÞüøøèÚøïôæÚüøöë×ýôõéÛüôõñÞþõ÷ëÞøóõäÞùðó àÞüðôáÜõöÝÝýôóâáûèðèâúïñí×óííÔ×îñìÕÑüöÕ×ýþøãÙúøöçßûÿù íãþûû êåõóóèÝøõòáÛóìíàßöõïîÜþôôíÚüôóéÚøïóêØøïðêßùóïúãüöò$áöùÿáãâìöæèðöûèõù ýç÷ÿùßñû îàòññÜëíêÛäß èÒïíÙÐçâ ÖÏîç þÖÏëàÕØêäáÛñâëßóäîÞôåèÞôìý çÚñäùàØõèùÝØùñúâÕøêöÞÔúìôÛÕôëðÚØøìïÞÚøííåÙüììæÚüðëãÒììÕÕüîê×Ûÿóë ÝÙõíÜÕôíØ×÷ì ÝÛöìãÛõèéÝöè êÚüôç çÕøë çÔúç æÙóåíÞ÷ç íÜøè éßúè ìÙýê èÚúèëÙÿëé×ê àÓøåØÓÿèÔÔéÒÔýèÙÖýè ßÙêßÙÿêàØíã×ëáÖýéåØþë îÚïö× ð òÕî ò×ñóÖ ó ð×ñ ïØ÷õì êÖøþðã×üéÙÿýó× ïÖýÿýèÎüúþÚÐõö÷ÚÑûüùÝÜôõò ìäõ÷ôùæøÿùþâüûóàøøñÝõ÷ô èÔóóÕÎñ÷ïûÈÐðñìÑËóõîÎÄõïüÃÄôøïû¾ÏõýñÔ×÷òàÜôýðÞßõüïÛØòøìÞÔõþîÜÒñùìÿÛÙíøéáÙõüîÚÝóøîä×ôýóÝÒìôìÞÏñõì×ÐòøìÖÐ÷ðÕØóúð æÞóóîäðúïñèíýíøäïÿïùäðýïþâîþòúáïýòöÝòñïßðñïÞìÿð÷ÝíõïùÙïýñ ïÜìüîèàëõí åàìøï èßêùîîáðþòóâîó îàíüóæáîÿó ðàìýô ôÝìÿô îÝíýõ êßïÿ÷ëàîÿöïáïøöÝîøõÞìûù ðäìýöïçïÿù îæíû÷ãïýýØóþðÒïüú çÐìùÛÓìû÷ÙÝìþùæáðþ ðæíþùåñ õàîþ éÞñâààôöäãæø÷çéêðýóãïùæÝéõ âÕëùÜÛçõéââêü÷àê÷ùÜéùðÚíï éßëõ ìÜê÷ßßãêý ãÝåòÿ âáßîùìäãðýòÞçïÿéÞäöýëßâìù çàßñùìÝáòûïÜèóñâäîýùäç÷ýäæ÷ÿûåçóÿûäåóþøåçóþùèçóþæèößçö÷ÞäôýïÞåòýëÞç÷ýìÜèõþìÞæîýìàêõþïâíúðáéôÿñßçõüñäæóúõãéòüîåé÷ýôàíýýóåèñùüçêðûæèôùöáçóùîÞêôùðâëóú÷áì÷ûýäíôýßïüýôÞèòù ïàèñù öÚë÷û íØïóüíÕðöýéÔöúâÖñøþâÕñúÿÚÒîüüÔÔëôùÙÓëõúÓÓéòúÑÙëñøØÝêòùÞÙëóú àÙïôûåÚï÷ýçØîöþæÚïòþäÝîöÿ åßïòþ åßîôþæàìóýëßïúñàóø÷ãòöýÝõûòÙöôãàìóý çáíóý êÜðôýæÚðëüåÚîòý ÛÙìðúÙÛëîøßÝìîú æÛðñü áÞëóù äåëîûóãìñú÷ÝîïûòØìñùèÙëîù àÚéëø ßÜêï÷âàëìøìâíóûòáñîûõâîêýñßëæü æÞæê÷ ëÚíêú é×ñõýàÖîñú××èëö ÝØìóøÝØëíõàÙëîù äÕïòùÜÖíîø âÚïêùëÝïúûïÚñïû æÛññúéÖôóüÙÖïì÷ÞØìïöàØò÷úÝ×ñðúÚÕòóûÛÖîïøåÖôöü èÛñóùðÛòðø éÞíñõíßñ÷ùïÜîõø îÜïïùìØôñúÝÛííö ãØèéó è×ïç÷ ì×íðû íØôôþ ìÙóðÿ ìÜôõ òßîìúáðëüßîñüøÝîíù êÙìðùàÚìòøãÙñóöäÖïô÷áÎóõùÑÏëéñÓÓð÷ó áØóôõ ëÜòöõ ðáðùõúâöùùüäôþöùâñôõðâñóó ñâòøó òÞ÷þ÷ éÙõ÷õ ãÜóùóéÙùýõ ãÙóûñå×ûûö âÜõ÷òçÝøþõ ëà÷ÿõ ñàùüö ðâôýõðßúø åÚ÷öÛÛóüô ÞÝ÷øó äÙöüôßÚõþóÛÚøúö ÞÚøö àÞöøôîßù÷ íàöÿõíãôüõòèõýôøæ÷þ÷ òæòûòñáøýöñÜöúõìÛöÿô éÝóúòéÛ÷üò áÚòøñ âÖ÷õáÙ÷ûö æÜ÷ýö åßøþô åáöþô íÝøýõîÜùÿ÷ðÙúýöéØ÷õíÞöüòôÚúõîÛõùòî×ù÷ æá÷öóôßùõïÜøõ åÛùú÷ÝØóùóßÚôÿô äá÷þóõâ÷úô÷ßóüóòÞöùôñÛóÿóïÚöùôíàìíïõÝãðííÚìûøâÜíúú êØóÿÞÚðüÝÜôÿãàéñþ ëàîòÿ ñàçóüøâéðûáëòýýåæï÷çéðöãíñùùßçñõõÝîøùïÛîíøêÛìêôêÛëêò ãÚìñóÝÙíñòßÚíîïäÚìïð çÛðõóåßîôïêàïîñðáðïñöÝìîðîßãåëíÝìîïïÜñòð íÞõóòñÞõøô ò×ñíð èÓóöóÝÔóóðÙÔïïîÝÕïïìâØôôò åÚóøó äÝòóò çÞðöïíÜôòô êÚöüõçÝúøö éß÷ö÷ñàùúùõÝùøø ëÙöüõ åÔ÷òö ÜÑùúö ÕØ÷úõÛÞñÿôàÜôúõßÜõûöç×ù÷÷êØùüúèÙøüüáÝ÷ûýãßöùúìÝöûúðÙ÷üüìÛ÷ûþ îàöÿþõâõÿû÷Þ÷ùû ðÚöùúêÜ÷üù ìÝôýùìÜòùö êÝõÿøòÝìíôõÛëéô÷ÝúöþúÝüûôá÷öøãøïýåûøàõìøãöõ÷âõõóåôóþøäóðúùåíðôüàöõùøÝòøúôáïëõöÞ÷øý ïÚõþûæÚðøù îÚôöù åÜóþùßàñ÷øâÝôøùáÞôø çßôúùíßóûùîâõúõîâñøó ëÙñÿóÛÔí÷óÙÑô÷ÔÒóúõÒÚðúò ÛßôþöáÛïöóÞØñûõߨðýõá×ò÷ âÛôøåÛöû ãÝóøøêØ÷üâÔõúÖÙð÷óÚ×ñùõ××ôüöÔÙñúôÙßðöô äßñüö æÛóþù æÚ÷ù æÙõø èÝóú÷ï×õýúä×ñý÷ã×òÿ÷ âÕîúößÏð÷õÕÓìôòØáíóôåÞöýßàòúöêßôøîÙõúéÔ÷þúæÙöúùêÛùüåÙôõ÷ à×ïùö âÖòû÷ ÛØóý÷ ÞÖóû÷ÜÖòûØÝòùùߨóúúûÒÙëôôØ×óþú ÝÔñüúÞÖîø÷ÝÜïû÷ åßðùùë×äõ÷áÓèþû ÞÐíþÿ×ÔóÕÓíùÐ×ç÷üÛÒæóü×Îé÷ûØÖåõù çÙåïùïÜéöüôÞë÷üõÝéíú ôÙçñúìßæóøòàêöúñßêôùñáïøýôÝñöþïàéíøõÞéïúîàçðùðÛî÷ý êÙòþü ì×ðùù ëÔêóõ åÕëîö äÚëîö äáêïöëÝìñôåÙîòô àÚêïòãÛïöøæáîíõîâíø÷ïáëõöñÝðîõ éÙëìò çÜéóôîÜñóù íàíò÷ñßòöúçÙóøúàÒòõù ÝÕñóù áØôôù ãÝïòöïâóñ÷ýãóôùüÞòôùõàïñøõäðõúÿáöøýüæõðýÿâõöþúßòôûòÜïñù çßëîöîÞôøûîâò÷úúäñðùüäñî÷úçòôúþçò÷üüåòòùúâñõú óßôøû ìâïñù îäñðûôáïñúõêîëö êôýþ!ãó÷ýûáñ÷ûöäìïøùáðóûðÞíð÷ìÝïð÷ êÚîöø èÚìð÷îÞñöúöæïòúýííóø éðñúüçðò÷üãìî÷ùÞíòùðÜñóû êÝññû èÜïïøëßï÷úñÞïëøéßïóùéàëôùéàìíùêÝíð÷ åÞíö÷äÞîïö åßîòù ìÞðùúðÚòñü æØôôýåÕööüêÔñùúðÚîñ÷ôÝòôø ëæîéòõæîò÷ïáðõø èÞëìõ èßðñ÷ æÛóöøÝÛîñôÞØëîòרéíîØÖíñïß×ëðïìÝòðò÷åíïðèñòôûäìòóòàô÷öëÜóøõ ãØñóô á×óõóãÓõõòÿÞÚéìíæÜðøòäÜîïðåÛñüõ çÚñüõîÜóúöóâñùõ óåñþõ ñäòöõ îäð÷õöáöùôÝöýüðáóúûä÷þúÿàûýóÞõù÷ éÜóøøçØïô÷ ÞÕìøù×ÓîÔ×ôáØìîäÜÚá*æÞÙ×=éâÐÈIïèξL üæÓÌS ýéÎÉI$äÏÚHóäÇÙ<ðÝÌß5 èßÐè*éÛÕñ!çÕ×óáÒÚýÖÏåúÍÒãôõÊÏììõÉÎõéøÊÉôÜøÄÍÛûÅÌ ÕøÁÎ&ÒõÅÓÊüÎÕÇØÎÃøÑͽýÕÒºáÕ ºÝÑ ºýÕѶûÕÒµüØÑ¶ÿ×Ð ¹ÛÓ » ÞÒ ¾×È ¹ùÊÊ »÷ÎѼüÛÓÄÝÑ Å×Î ÅþÐÍ ÃûÐÒ ÆÙÑ ÈÙÓÉ×ÎËÐÎ ÏÒÍûÏÐÒ ÑØÑÿÓÔÑ×ÐÓØÖÖþÜÜÕþßÝÕüâÝÚýâåÜÿ÷å èÝþùæìÞüøèñÜÿóìëÜüõíìÞÿ÷ðòßýùòøÞóöóÜýö÷ïÚûïöïÞúó÷ðÜöñö íÜöñøòÞùïûõâùïþûà÷òõÞöòþóâóëþøåóïûàóìòáìæ þâíèûÞêñÿ èÜëñã×êýæÙë íâêÿ ûàñôãà÷ õâåÿ õáäïøÙåò ÷åçô æíúæéøãìòùÚëñ êÜåì ðÜéë óâììûæéîùççð÷çéèõåæîóæêé÷æéæûèéçüêèéýçêëøéèãùèæãþâçÝûãæäüæçãøéæéøëãßöëæÞòåéàìáèà èáäàñâêç ÷ãîåùãíâóâíçñáíçðàíæíßëéêÝîìæâìäòçíäöâêåîáëèóâêâúßìåóßêì õÝëà òÞìã ÷àðë úßìå ðäèåìãéçëßìç çàèä æßìæåáéæ èâìííâëì÷ãíéüäíïþâëèùæäâÿééíëèêðìï ëíëáêòñáæáüîâêäý ðâéíôæîøåòóþãíò÷àíððáìíÿðåëòþõæíöþõçëôþóãíöþðáðõýïÝîôûíÚíôù ìÚëõù îáîóúôÞòùüîÞïöøìáïñöîáîî÷îÛéóôæÚèîñí×îðôêÛòþõïÜõ÷õðÛòöõéÖñõòáØî÷ðåØïóò é×ðóâÖìøîßÓïøïÜ×îöïÛÓòñøÑÖíùðûÕÎñýòüÓÒíðÝÓîþñÜÙïûñàÕòüò×ÓôôÕ×ôúóÝ×öóÝ×òïÖÜîþíÛßñóàÛõ÷àÛðÿòåØðþôÿãÕïóßÑòôÛÓóþô äÓõöâ×òòÞÕïúëÿÌÛñøìýÕÛóýêÞ×ýïàÓöýéÜÔîüÛÖüíýàÔü íÝÍôèÙÈõúçÕÉñÿé×ÌðçØÒòéØßíæçà÷êéÜôìçÖùìàÞõýèíÝøêëÚôêáÕóêÞÔõë àÑôé ßÒóÿç ÞÕôÿéßÑùêÔÖô÷äÕÛõæÙÞóþçÜÝñýçÞÙóüçÝÖöéþÛÕõèÜ×öêâ×óé ìÙòÿçñÕîýâæÑòøä×ÕïÿãÔÙïäüÕÝð÷ãþÝÙòüæÜÝîúäãÜóÿèãÚíúäüáÚéøàèÙèôà ëÖî÷åéÙéþãïÛðûåó×óûç çÙñ÷åáßñúåæÝò÷æßÞîöãàÝïùå ÞÝñ÷ç âÜ÷ÿìåÝóýíëÜðûêíÚñÿëåÙóùëÜÖôûëÓ×òúëÚÛùýî ãß÷ð èàøÿò èàôóêÛ÷ó âÛõûîçÛøóëØúôêÝûöóÜü÷ôÚýöïÙùúôêÝùô ìÝùö êäõûóöáøøïÜûùìÜùüöîÚø÷ 騸ùô ãÚøý÷çÜøÿ÷ çÚ÷ü÷ßÝôúõãÚôûöàáíöñ èáô÷õ êà÷ýøìÙøù äÚôö÷çØøøûçÒóöù ßÒììó ÛÕíóõØÓïõõÖ×ôúø â×ö÷úæ×ñ÷úߨîð÷ÝÛïõø çÙò÷ûìÕôöûêÕïôúèÓòñû ä×îòùçÚôõýåÝêò÷åÞïòû åÜíñùéÝòïüìàîòúîàîîû îÞííû èÛíðü çÚíïü çØêïù êÙëïú íÝëñûìàïèûóáíõüúàïñûýàìéù÷àìëùúàíòüýÞðîýöÝííúòáêîúöäéíøÿçêïüåïóÿýäðó øáëñÿ ðàïú îÞìù íáðõõáð÷õÝóéÝðö éÝïöïÛîõþ ìÜïõÿ êÚð÷ çáíô÷ßôüôàñóòÚóü âÜð÷ éâò÷øæõ÷þåôÿúáðùïäïêóåòõûìîò$ ëñõéðõûèíõùåðö÷èðñìñõ#éöõ ÿãóôúæïöüÞîòðãëìþôçðìùçïïüåñöûáîñòØñ÷åØíñëÛîðìàìåþñàìîòßõðñÙùõêÞñôîâðóïæéãüõçîïÿùãêëýúæðòüæðñüéñùÿêôéììíÿëñò ëðíêñóÿãí÷ÿöàîéýóäìîýøâñúóàîîýîÝîîý ëÝïõþéÞñòþîãîùýôãô÷þñàìïú ïàìðù ïÜíòø çÚëï÷äØëìöß×ìñ÷ÜÖìï÷ÚÑìõûÒÒëë÷ØÒìõùÞÓðõúÞÓòõûÜØòøû áÚòúû àÝíõøèßóüüêàõõûëáõþûïâóöûðÞòøüëÞôýûêÝïû÷ çÚðò÷ áÖòöõàÐóüõ ÛÓïõô ߨõúø âÞôùõ äÚóøóÜÝñ÷òÝÛôôöâÒóù÷ ÝÌñõó ÙÎïðôÞÌùþùÖÎöþõûÐÏðüòüÎÎîôðýÎÍñôðüÍÉñûòõÇÍìøðöËÑîôñöÓÒìôîû×ÏîôîÔËüøñÒÉýóÓÉøðÑÍøíØÏÿðÞÖóéãÓøíùÖÑúìùÍÔüìýÓÒÿöëþÔÓúëÕÐÿ÷îÏÏúöéüËÕûôêüÖÖíìâÛÐýùêÕÑ÷ìÕÏøåÿÍÎôäýÌÒúçýÓ×õäÝÖ ÷àÙÓûåÕÌ ñãÿÏÍ ÷åØÑûèØÓøåþÓÕóèûÓÖúôåÿ×Öü÷çÜÜöôèåÞõïç éßôöé êâóúî õÝóùðëÛîóïæÚêøïæÞìùóéàêýô ðâéý÷ ïáèüö îßêûùêàãø÷ ñàæûú ñáäýúóâáüúôäà÷ûøâáþýöãäúþúèà÷ýçàûæÜüüäÞøÿùàÝûþóÞÜùÿôàÝõÿ ùâÞù öåÛöýñáÛûè×ÚþÿßÒØõü ãÒ×óý ãÝÜüéæÚû ðêÝûúçÜþûãÛý÷áÜûìäÝøðâÜüøãÝÿèàúæãöäßûíçÞýöáÙøòàØõÝá óßê ðàç íæáúäáûáÝõøááþÝßþúæÛùÿéÝûìàüîÝøý äÚùûýÜÛóúñÝßøûõÞàöüöáãúþ÷ææýÿäàôþôßÖøùêßáþ éâåïßèÿ ìâæýðÞäõìÜáøûìÝäõüðÜáïúèÝáñùêÞçøûíáæî÷ñáæòøðãåî÷íåçïöòÝéôöêÜéçôå×çëóà×ìëóáØêòôãÛììõ äÝíìõæÛñõøáÝìðóëáõóùôßììó ðÛéõóäÜõùú åÝýîÚõûú ìÚööùíÜùøüòÛþøü î×øñùàÒòîóÝÕíèð ãÓûõõÞÖøøõÝ×ûòõÞÔùïóàÑ÷óð ßÕøñðä×ûðôãØúõôæ×úïðçÙûîñ èØþ÷õãØüíó èÝýòóîÛñôãÞûðñ èÜòóæÞýòôñÛôöêÛöííåÛûòæÕóßÖôÜÙîýÜÞ"ïéÝëåßþè ðÝí òÜÿìðßýíðáÿ ìöáýìòáýþìðÝûüìêÚýîêÚþÿîêÚþþð âãø÷ëïáüûîéÝþúï äØÿöðÙÛûôî âÜúõîä×úõîÞÓûôî ÛÏüöñÑÖþêíÛÚýïï àãúððïâûóóëÚõáíàÚúßò äÝÜùæÝÞæØÎ áÚ ÏâÙ ÐáÕ ÓÙÖÏ ØÝÁ ßäûÇìàÿÑåÛýË áßøÊ ëÛùÕ åÙúÓãÖøÏ ߨú× ÝÖøÖ רøÒ ÜÕ÷Óÿ ØÕôÔýÙÚõßþ æÛ÷×ÿëÝöáýîâõÜüøÝùçðÞõßûñäôáûåñáüàèÝøòáîíþëãöõ òäîî÷áåèôßéô ïàêôñßåí ëàâìîàÞæóáâîòááíýôååíþüçäõýþéèöûêæð÷ëçðõæè÷ôåîùõåïûôçìûï!Þíþîúâì÷êùÞïì÷ÜñÿêõÙñé íÜñçíßòç ñÚöèìÚôçæÛïâþçÛòâíÙñàëÖöâå×ö âåÛý ä ëØöãäØúä äÚúä èàû å ñÜëúàçÝíåçÙò ðèÙù ü êØø éØûêÛ÷òÛôÿñÜòþùðáëúóôåðÿõüßñþ÷ ÷ßåöð úÞìñ öÙòóì×ò òìÙîïê×ïýìèÕìë êÚòëíØôë åÙõëäÖöêèÖòçì×óèìØû íëÚûî öÚû î øÒÿ ðéÕúì ëØïì×ý ë ê×ýìéÙñ äÙñ ÜÕþîÔØÿîÖ× ïÓØðþÒÔñýÎ×ü ðÓÚû ïÜÜõâß õçÝÿöäàÿóãÝùï ßÛøñÙØú óüÖÙøóÿÝ×ûôüÚÖõ ðüÕÑõïùÍ×ôìßÚøñ æ×öñ äÔöï ÛÕñüë ßÔóÿìÞÕóìÝÛðøë æÚñï æÝí÷ê êÝîùì êØîúí ä×óñ ÞØíýð ÞÕðúòÚÕëôïÚ×ëòÜÔéñïÕØì÷ñÝÞïüó ãÙòþö Ü×ïüõØÚðýöÞÙðøø Þ×î÷ô ÞÕêúô ÚÓîöö ÔÔìó÷ Ö×í÷ù ÚÖïñøÕÙòûýÜÚâèöÛÛêìüÛØíí ÖÕòå×ÔãÜÙÔìè ÝÓëç ßÖçà ßÚäß ßÛäãÜÛèåÞåâàêãèêçßåæâÚçã Ø×ää ÕÓäçÿÒ×çà ÙÝéê äÞéë åÜçç áÜäìÿ àÜäíÿÝÜâèüÝàåëý èÞçëþçàêðêßìðíàïòîÝìôêàèìÿñÞîñìáí÷ðäëóöàéò îåèôþñåéïýøáêôþóãêóýõâçêþòÞÜãø ìàåðÿóäñü !åóó "æíð ÿçñ÷ÿäî÷÷ååéôáçêïâãæñäåæøäåðþåääþçæïèçç èéí éíôãððÝïíöàìî ñàêì íßêâñÛíí îÝîïþðßåæùöÜìëùôÜíìùòÞñðúôÚíñû æÖâáðâÚçéñ êÛïõóïÝñùôóÞòòõ÷Ûôôô ìÜëîìðÛíòíóÜð÷ï ôßðóðôÞëöð òÞñ÷ñòÚòøï íÙñóíëÙìõëêÞîóì óßðõîøàòøð÷âóúñûßòþñúäð÷ïæóóæñ÷ñÿãñòöÞòûò íÞíúï ïÜîýðêßðùðíÞòüïçâñýñíáóÿóîâðúð÷àóûóöâ÷ÿõþà÷û÷ø×á÷ë×ÚåðþÕÚíøÝÜïüãÕæùøÕÛìýâáèüîæå úùéæúüáèùðàç÷òÖêøãÙåÿòç×ëüõßÔå÷ñÿ×ÙëùñàØïúôÞÝìûóäàìûõïßñûù íØîùöàÛêúðäáòðó÷Úâëï äØÚðêßÛèù èÙí éÙæüã×êýÞÞæü èÜâúø äÝèÿûéàçúøïàê÷úïàñûþíÛîûûàÝîïö ßÞïòöâÞðöõåÜôïöàÚôîöÝÝîìñ äÛôñóäßõêóèÜøõùç×ûöúâØúï÷æ×ûìø æ×ùð÷ çÕùê÷àÕþðùÙÔûðöרÿìõ ÝÙþèõÙÖîù ÚÔðùßÓòúâÏîúØÒîú ÞÓñúÜÕñûÞÓïúÿÖ×üêõÚÔïøýÏ×úêòØÖýæô ÚØüèóÞ×í÷ÚÕóáñÙÒýùý ÛÕüöáÕûäÕó âÖÿö áÚþê ßÛþó àßúíéßøâéÞùëíÝóéôáýïÝÿê ûÞùæúÞýíúÙþîñÚ÷æóáýèýàúî ðäòåøõëöãùÿåøíûúãûíüøäùéûûâúòüøàüñûóáûñùóßøìøìÞøíöîÚøï÷ éÝöïõåâøñõæàùïöâà÷óó êäôéððâùñòëÝúðó åÞöññëÚ÷óò åÜôððçÚ÷öó éÙúñô ìÛöõòíÚûõô ìÜûùõ ìÝþ÷øíâ÷÷ôõÞý÷÷õÝöóôóÙôñô êÖöññ æØûýõêÛûü÷ëÜöýõ ãÝõúòãÝùüõçÜêêîáÙíñðâÙîõöíÜþü÷ÙöïíÞóìöÚûð ôßîí üÝðìùãçä åíèçèêöåää õéãçÿèààçâã!ÿêæé æâéãáê ÿæáèêçðçÞòêãöåãóüúáßúüùßèü ÷áäýø ÷æçÿöùçéôùãêôõáìóïÝêî èÖêêàÖèåãÛë ççßïå éßîä êÞðäïÚðæç×ñ âþß×ð âÞÙð âäÚð àã×ñá×Óöã×ÏöäÕÓó â áÔûçÞÕ÷åÙÔùåýÔÚ÷ãáÕúåÙÖö ãÜÒú åÝÐù äÝÑö ãÜÕö ã áÕù çßÖ÷ ç åÔø è ãÖö çàØ÷ éâÛ÷ éæÕ÷ ëùÔÕõéüÒÕûïÓÕø ðÕ×÷ï ÚÓù ñÍÓóïÐËðìÿÍÒïüéÕØíùéÿÖßíúéÞÚïìÚÚìùéÝÙíøëâØïûíáÚëøë çÚîúí èÖïýî àÙëóë èÕê÷íÛÛèôéàÙìöíßÛíóìàÝéòì åàêöí çâìñïéáëñï åáëôðçÚìôòáØíõòäÐñöøáÌôüù ÛÒíôõ ßÙóùøÝßíòôàÛïù÷ÙÛëôö àÞñöùçàóóúæÜôùüãÙïôûãÙóøÿêÛõüìØó÷æÓñô àÕîòýã×òöÿÝÜðóþáÞðóþ æÖíðýÙÖí÷þÛÖìôýá×ðò êÔïôÞÕîô âÕðîÿ ã×ñ÷ éÞìîÿ ñÞîóòáëñýøåìôûêêîþÿæêíýøæäçøþìæìü! êëí åëïàéíúÞííùâììûåëðýâîéÿñâèêüíáéíüëâåéúøßêìý ôåäîúùâéçûñâåèü÷ÝìðúÞîðúÚêðîÝëòæãæìüèèèîüôçìðÿõãæãý ðãáãüòàãëü òÚìòìÛîïÿñÜïòóÙêðñÛïóùÝïñýáëóúãìö ïáêïÿåßèìûäßêñþëÜðó ëÚòö êÝïí íÛëô íÛêðôÙîöôÛìñÿóÜìîóÝìóÿðßììýîßëîý ìáïðÿ ðáïöóßóóõÛðñÿñÚòòÿïØðëýñÜïôþ÷Ýô÷úÛðîþöÞðôþüßñôýõÛîõú äâêùùìà÷ êÙöþ ßÚô úåÞõ úïÙ÷ù æ×õø àØöõÜÖñòÕÔñòüÖÖìÿîÚØñóàÝôõíàú÷ êßóþô éÜöý÷ èØóú÷ ëÚøúìÔùÿ÷ÝÖòøòÞÔøöÛÒöûöý×ÔôõóýÕÏòòóÎÔñøòÖ×ðøñ ÝÚòòô àÙôö÷ÚÛñöõÜÙîøöÛ×õõùÝÜóò÷ çÛøùý áßðòùèÞ÷ûýê×ø÷ý ÞØ÷óüÙ×õ÷û×Ûöñüàáøðþìæ÷ô÷âüÿöÜûúíÔùðàÒú÷ÞÕöôþÿàÚõøâÞ÷ïýàãõöþâåóøýèçõòýòêôïý$êîìú&åîüùáôñßíðÚëûæÜã æÞå éåàìêØ ðîÏòìÈþøëÀþ" ûè»"ñäÁ'ëè¼ ÷á ð×Ä××à ××ÏüÿÙ×Ù ÷×ÝÞýøÙãäûôàãëúïàßõì áÝøëéÛøåèÙ úâæÏúà ÙÊûÚÓÈö×ÓÉ#ûÖÒÐ!îÐÒÔúÍÖÓóÊýÌÕçÇÎÚíÌàÓÑÙÎ åËüÊÍûìÇÐÎ ÿÎÚÒçÏ ãÖØÌéÖìÏ éÐëÐÚÐÐÏÕÔúÚÌØÙûéÑÕÝæèÐàêõÓÖ!øè'ÙãüÛÝâîçæÚÛßþðêûÞÿÞæõÙâêáíÚâÙßêÊîÙäÞíóÍà"ðåë ïçìß"ì ïë)çôªâùÄÞ.× áæîÙûØÛèÝó×ß êøõæåã.Èë,Ôù·ß óãêãßøÈ»ÊÓéøÕÛ@ à Úì â)àÊÝ,'ÊÎôØÝúÒæöäøóùãèø+þáÿòþ âÓ÷ÿßùú$ö³ð¿ýíû*Õ êöò*Ú ûã÷ý3 öö>íú  ¿ø ÝÜúùáä 1øØ)%ê÷#$ S >L0ST-U>Ø4J.ù <(õ#%õë0ZÐùäéÚ üÉ÷ Ú±Þõü1ãâ=M2.÷‹ãîý ¼¾êíùÝÌ&å , Àíü ãòÏàþÁÞìÖÍÑÜòáÔØó÷x.žòü ¿¯´²èíë¸ÞË×òùàëÎøߤÔêöҹ߽áú*ïµÑçüÅÈ®×õØÙÉâÜÀ»Üú¨¸¼Èä ¾³ÐζÒÏßÚεÙû×­¿EÛê¸Ó&«Ê©½Ù/ÌÙÃÖ'ëÚÀ»À н¥Ä±ÂüÇä"­ÀÓòÇÍ»×ñàÇÁá;è Ëèçö½Êæ÷×¶ÏóôÚäÊí èÜÄç ñòâûþ¨Ìì ÚºÖÉï ñÍí ~!äÙý ๿çý±ÉÑÉìÿäÉÇñýÔÄ¿çùu ÒÏöûÇÅš¿áð¡Á¹ßçëлêîÎðåéäÏšÀíï÷²ÂÞê" è§¥÷Ëóîýîàø«Èå턪ëéõ ô±Úÿôí¹ÖÎíæõÜæî òôýêó!ù¯êò£­ÑØùå ëö ÷Ãò øûãìåìøÒñ"ôëÛÅí#óÁÌéö2úôÒõ8ü)éÕø7ÿ®Ððô.ùPøæð,õìãæ3ûýëÔîîìâÚ(ôìþõðË#÷ò×èÿíùÑ!ôïàè"ñýÛòääßì ãâé ãû íëð ë ëÃçÓð éìâîòÝÞ è èöìõÆîîÊËéþÏÕ èôÙÑïàÎéÒñé óÓ òþÖð ýì-óàù$ñäòøðâïü1öèçýûú ç: Û#ã+îÖ$Ö(øÓËìÒ!Èäã#Ä(íâ#Â9îñÀ(ûâ!Ä.õßÂ÷âËú'úâ×ú.üæú5 Ù ñ÷$ôí èå/ ×ùè ïä þä"òé âðÜá ðÞ ×#ñä Ð&ùâ Ïïè Ì!óâ Ë,øæ Í!öëÍ)õßÊëßÌ âÒ Ç ÚÝýÅåÖûÃàåüÃéäýÆ#ìåûÇ îôüÈ'÷ÓûÌ"éÛùÍíÓ÷ýËâçóÿÌíÜ÷Ñè×ùÕëáôüÓñØôÕïÒö×ßÓñýÕÕãê÷ÓãåðÿÛãèíþÜóèòã øÕÞöÙ Ù×éâËÛçæ ÕÑîí×áðïéÒðóåÌçîÐÕãê ÖÓêò ÛÕâýì áãé ññçê ôôÝåñ çáåóçÖé÷Ú×åòÚ×äùõ ãéâ÷ôÿÚæùûòÜâöùìÔã÷ù åâáïøðÛßñúñÚäñÿåÞáòþ êèáì ðßâðëàÞæþàäÜæþëáàåîáÝèòñÛå çãã îáâ+íâåàÞå÷èáåüààåòÝááëâßå ïÜèê æÖãÙÞÙßÙå×áÝ ëÜâÛñéäßäÜØüéèàçîä àöåõÖõèæÖôç îÐðå óÔôá öÖõèðÔðÞ ææìÝ îÙìÛäàçÜòàëâòíéÞþÕíàéÛæÛýåÛæÝåÒäß èÐâÜðÒæÞ ïÜççôáåÛðäéâèàåâåáçç ïäçÞ ùäçá ûÝãàíØàÛäØÞÙãÜâÝó×ìë îÓçà ìÖæÚçÐãÞúÔÓáÜÕÑåÞÿØÙßÙßÓéÚØÔøî ÛÏÿè ùÖÃíõÇËýâÐÎÿï ÙÕùç çÛí ïçõëûêþï úòøíòõêé÷í èøóäôî øÚóô ìÜïïëÛôò ïÖðéèØï÷ ëÓîïÞ×îëýÕÙæíùרêîüØáçåø æàëòüêØéõüÿçàëòúôßê÷üùÛîúÜí÷ãíúÚñÿ óßíø ÷ÕçïøæÓïú÷ýØÚò÷÷çØðñò æÑûøöÙÐøúÔÌúùÒÒôõðþÙÐþý÷ÙÏî÷ðûÛÌùüõÛÏíöñåÖõÿö åØõøáßðúô ãÞðøó çÙñþõ æÚðüõÚÙîöüÔÛêùñÜÑíþõÿÓËðôÊÏìÿôúÈÊéÿôÊÎëüóÇÏêôúÊÖèüóÕ×éÿõÙÓëùáÜðþëÕàôÙÚÛõÿÕÏãÿóÌÔáøÎÖàþÒÌç ÿÑÑÙüÑÔ×úÙÞÖú æäÙù èà×ößÞÜûóáÒÚóÛÝâþô ñàãø üÜéþûÖéüçØëûàáèõñßéýô éçä÷íôæéùòïÚêûðåáèûî íåìùíüèðýðûØñï éÙñ÷ïçÜóþòèÛóñ í×òùíøØõÿñôÜöñ èà÷ð ÜéòùëðòðùëèöúïûáúñîØõýîîÞüôôÝû öñÜüüñîÞüðîèøúìõê÷üëõßùúî åáöùìâãö÷éðçüïôîöõêøïûøíÿðúüñäïõëòãîüêøáôõÞûìÜ öæá÷ñ çé÷ÿîíßúñêÞùñëÝùýïîßüóùÛþÿòó×þýóíÕþþôèÛýüððØúüïñÙû÷î çØúóìãÛþöïçÕÿøñæÛûõîçÞýóî çäûùðæÛüøð Û×öïí ààúóðñÙõïí éÝøþñ ðÜø êÝù âÖûó ÜâöôÜÿõòßûýðôâû÷ððØþüò çáúõïñÙþþò æÕøôìêØùùïôÜûöñöáü÷ñöé÷ñîùåûøïòßöôîñâùóïøåõíïéúîò"êøôôâùòõùÝûñöîÙúðöèÛùïöíÜ÷îõôÙýòøøçûöù$ìóûûâõéõñßóíõðàùóùìèûÿõßûêÜüòûçÛ÷çøçÙùðøâØûîøÝÐöí÷ùÉÖïèñ×ÑõéõäÔóçõôÒùðüìÝöçùòçúñüùíöñú"ìøíú! ç÷ïüþêøðüøìõïûîíôíúñíöòýöæ÷öþíÚöðü âÔðôû ÞÓÿöèÓéãüçÚâáþëÛõóòÝüù' ôÖôð-åÛïê*íÚîÝ' éÞäàæãçÞïÚãÛ çÕâÝÞØçäæßã× ïÛëÜ æàåÞñÚèá ãÙää ãÙßáâÚãæÿäÜéåÿæÛèæþæØðëäÐëæûÞÒæëõàÏëëöãÒêòõ ç×îóøéÛëëõéÙïõöâÙëðóÖÓèõíÔÓçíêÓ×éöíàÙðúòíÚîüóõàôøõóäñù÷ñßðöêÜóþöèÞñÿôîÛû û êßòýõ îÜøø ãÜîúòáÒêúï×ÒëÿîÚØòòàØé÷íàÝßøêæÚìõæÔö ÙÑòÿÙÕöáÝöæ×õýÿÞÛïõæÖïñàÕììßÛêÿêêÚíë íÝìéòÞñëõâðþéúáöê÷Úóÿè ìÙìüã íÙòûæïÛñåìÜìûÞåÙìøÛÜÔêòÙ×ÒïùÛÚÚñûÞ åß÷ýã çáïûàêÝõãåØöåá×ùçãÒõçãÒøèÜØùæ äØëäÕûçàÑùçÖÑùçÍÑöèûÉ×÷çûÕÝ÷ êæÜû îäàðýê ìÝÿôíÙ÷ åÜòäàöýãßýõÿâÜûöáÜúô êØ ùßÓòüðûÓÔ÷òöÎØ÷òø×ÜøôàÜüùáÖüø ÛÕ÷ôÛÒõýõÓÛ÷õÝØùøúÛÛô÷àÜõùáÛöû ãØôù ÞØñüöÜÝìøôçßòü ìßõüóßöþýïßðøïÛòüèØðüùäÚîû÷ÿèÞì÷õêßìö÷ ðáëöõñàìýöîáêõõ ïàîö÷ëßé÷öçáé÷÷ëàð÷üòæîüýýãñýÿåòøþûáôøþóãëöýõäïúþãóø%Ûñú÷ÙîôüèßëðøîÞìñûíÜëôûíßëóüòÞëóýóÛèíøðÛîñüðàêïùõåêòøúèëêøúàòùÿñÝéëûöÝîöþúàìðûèñóþçíóýùãïðþñÛìóüèÛêïûíÕèìùêßíèùúßîïþöàèìùòàèêùòÚíîûèÔèëúß×éñú áÚëîù æÜêéúçæéèùõáììýòÛðòþìÚçíùðÙéìýïáèéûóëëñÿþìêìÿ çïìÜéç êÖããúÜÔäâýÕÒàí÷ûÏÕÞðúýÖÝàíýéßêúñÞêòëäâêøÚéõ èÑãîÞÒçí àÖàåý ÞÝäî àÝÞæû àÝáãúãÙâåüÝÛßçùÛÛàæùÚÚÛàõáßÞç÷óßæéüõÜéíëÖéìýÞÙææú âÙëîýåÙéêüáÞåçù åÞçêùãâèêø éÝêîü æßéíû ïÛîïýìáìðûóÝíîýðÝíìûõÙððþéÕïîûÚÑðòûùÓ×ëéøàÖññýÞÖîîúÝÜðóøàßðíùèÛóôþèÝðòü íáóøý îßóøÿíáòñüðâóôüòßöúÿ îáóøýòàõ÷ÿîäñöü ñäøø òãòøþ ÷àøþõàöúÿøáùüóäôùòá÷úþíáõøýîÞöüý åãõøýîàöøþëÝôöù æßïöù éØõøüßÚðø÷ âÛòõù áàéèõéáûõþïâöñüóÝøðþêÚýü ãäüøòßüïíåõïýøÞûúîÚóîýåÞòíøìÞòðøìßóîùðâûüÿüâ÷òûþÝùöüóÝôõùéÚöô÷ äÜùõöçÛ÷óöìÙûþùëÙøöøéÖøúøãÑúöõßÔû÷öåÙöûõéÝýû÷ðÞÿúøößüúùõÙûþöëÝùûôäÜûûö Ûàøþôé×ýú÷ äÕùýöãÖûÿõèÝùöîäøþõöáø÷ôÞøóñÔþøßÔøôûÙØúôõÔßôýñßÞû÷ çÖûö ÞÎøòÑÏøüïÕ×úñéÞöýñ ößóûïñßîþì îÛïúì ëØò÷êéÚðöë ëÚñùí éÙòùíáÞóþï êÝôòíÜòûïëÖïúïãÕðïéÓðüñ åÙðûð èÝïøï êÝñüï éãð÷ð!üÙòûöëÔßôì ÚÖèýóÙÝë ùãßøéáô þñâòüùÛèùõòÙéúôðÓèøóåÕåøï êÜêùñøÝñÿøøâòøÿàôûýÜñýøëÙñüößÚì÷ñߨïüóÿÞÚïùóþàÝì÷ïæÝê÷ï çÝíöðïÙíóñé×ëöï åÕí÷ð ÝÖíöî ÞÝîòî çãìõï ðÞîôðçÞéöïþãÛëõðþáÝèïíãØî÷òÝ×ëñðÜÑïöòþÒÖíòñÛ×òúôÞÝìûô ëÜòúø ëÚòúøåÝñû÷éÞñýøÿéßóøøìãòú÷÷àóüøñßóöø ìßôýû ìßöþ ëßõþý çÜöüý æßôüúîÛùÿ ëÙùýÿïÔùþéÝøýÿîÜúþÿ ìÞõúû ðÞ÷ûý ñÛó÷üñÛõ÷úïÛòöùêßòóùïåðóúóäùú ìãôôû ëáðóù íáòôû îÜòõý êÞñõú ïÜóùû ëÞòðû êàõóý êäòóúðåðñúòäïñùôæóöýüæòöþûéóòþûéóôþúçôöþöçôôý÷ãðöüóâïðûôàïõüïÜóõüçÕòóû ÚØññùÙÚîð÷ ÞÞïôøä×ñôú ÛØìñöÙØíëõÛ×ïõ÷àÕòóøÜÙëîò ãÖïíô âÔïîóÞÕîîòÚ×ïóô ÜØñïôÝØïðóÛ×ðñóÙ×ïñõÛØïôóáÛíòò éßêðòñàïööòßîóöðÝðòö ë×ñ÷÷ áØóôøåÚôðùæÝ÷óøãÚðò÷ÙØððöÞØõõúæØõòù æÛòñø çÝðòö èÚññøâÖòîùÜÙóïøãÛòóøêÙóòù â×îïöÝ×ðôøÿÝÔîõ÷þÚÙêðõ éÜñôùîÚóòúðÝïðùñÛôöúñ×íð÷ çÐèæó ÞÙôõýíàþö"óáøðôÜôñïÝ÷ëóßïèøÜõóöÜñôóàïíþ÷ÝîôÿòÞìæùîäíìùôÛïóúîØíëøèÚìîöêàíóøøÛòóùïßïñ÷óÝóûøòÞìòõôßîôöôÞñøùóÜóúøêØë÷òàÚíóòèÛòúóîÚðùõ è×îôòâ×ð÷ðÝÕîøî ÞÛîõï èÚíöð ìÚïûñ éÜðúò æØíñÝÖëöï ÚÙñùñ äÜïÿòìÛòûôíÛòùôïÒõÿöÝÙîüðãÛñõãÞñûóêÝòõîÜôþöîØó÷íÕóüö åÏôø ÙÑ÷ÿø ØÚìýñ å×í÷ÿßÚñøåÚõùçßöùéáô÷ðâôø ñÝô øåáô øïÛ÷÷ æÙñõßÚô÷×ÚñôØØóõßÙðùñãØòó íÞìøðýáïûñâñúôûåïõòþéíøñåóþøõáëöóïäî÷öôãñøööáòÿúíáîõõ éãíööêãïøö ïßíööèÞíòö ëâïò÷òæñùùúêóôüÿãøþÿñáõ÷ýéÙñöüÛÞóøü æâôöý íèðôú÷åóøþõÝòñú éÜðôúðßòñúóâñôýïàôòûðÚòñüçØæÜôäÕðíÿßÞñçíäþé òäôä íáÿî èÜöëçßñæ òÜìã êßîßêáîåîàëåñÜòçíÙñêéÚìçÿèÞìíÿëáïéðâñêþ÷ãîìýöÞóéýôÙóòý ïÜíèù ìàïîú êÜñìù åÝòõúãÓõïúÜÎñîöÚÐïóõÝÔñóõàÚíñòàÝîõñààìïïæÚððñÛ×éììßÙíððìÛîöñïÛôõôëÚòøóìâñõñúáóüõÿáòûõûåôùõùåöööýàôöùöãíõóùéðôôýèõýùýâùù÷âòù÷ôÞñúô åäëôï éâéñì ãÛèðëÛÛåõéßÜêûìááçñëìâîùð òÝèöíæ×Ý÷èþÛßçðæÚîúÝØìùÚÔêù ÛÓíúÚÓè öØÙç öß×ê÷××çóÙÜëõäØéõÝÚçòáÖëôÞÓçüïúÕ×èïßÙèýíâØîúñâ×ñþñäÕðôßÛí÷ñ èÝðüó ìÝñôêÙòýõãÜðýõ íÙöõ æÓôùòÚÑïþïÓÔðúïØÛñöïäÛóýóàÚóûó á×÷ýôâ×íùïßÝôûô æàö÷öóÜüúðáòøõûáôùûüåöûûåüúÿÜ÷ÿòÜñ÷âüýÿàûøâûöóæñúøçþãúçôê÷èóî"þâöû#õæêÞþäïíðåèòñèãïòáîìØÜËÚÿÜÒòúæÐä àÚûæÏòØÖû ßÓÜôõ ÝØùóàÛÿðáÏïéÏÏïíæúÏÈêæïÆÈëäïÁÃãøÀÈÞôáÐÐàøàÚÐ ÎàÜÚòìà èØèæ áÓ ãÛÎòÍÜÚÓÀ¾ÖÜ×ñâäâÓðêöÙØí× âÙçÒðÝÎÄóâæÀ,üâÍŸ2üáʬ4÷ãÕ‚0öåäÔ6ýÜØŒ'÷áá½ñÜäÀíßßÁíØèèûçÛÞï éÕü&ë éÕâãÐý ÒùÙÕýÅâÙ /Å èÌ(ÂÿÙÔ·àØ/¹çÜ,¸ îÕ ¶ãÕ #±àÑ ´äÏ8·ÿÝεýØÕù³ÞÖ¹áÓ$ºÝÓ¼ÜÊ) ÂÿÕÈ"Â××ÁæÔÈÛÏ!ÊÔÒüËÔÔËÙÙÍ àß ÒîâØøÛÝîÖôìØâÕ ùÜÝàôàìÕìÙÐùøà××õæ àÝõèæÞéøìæäöïêðà òìÞûøîðÜãùñôáýó÷óâêæùúêå÷"øâìÔü üÝóÿòÝ÷ëåäéóïíóèûëîüÿìèçìêñæî÷üæéÚúåëç öèÜñ ýññå óäÙ íðòÿäæèõëÕÕ ýìôßîÜíëÝÙ ðÜï"âñæôäßÊôãÞôàöâóáÓÝ÷ãâÑ÷æÑöøçôèóäÔÌ ìàäíëâãßôâÚûöæàçùèÜäúäéáôäÝôúêàÑìÜ ïôØðãåëÝÞâ×ñáåÖòåéýóãäËúææþôåßî ôÞëõ èàÝê ç×ïúàÕêå ×ÖÜõ×ÖÝ騨øîÛÕáÒÚÞÍ ØÚôÛÛèØÙçÞ ÛÕëð ÔÚæð ØÜåÝÚòø ÿÚÛÔáûàÑêéýÑØîéÛÑìð þÏßæòàÒÐÜñë áÚðï íÛóü ëÛþä èÕê÷ àßæþêÚïì èßçóÿîáñæþíáÞöéÝîîåÝîóþ íØðèÞçç òâéÿþ óáøð ðØÝ æØôèúëÕíþ áÙööûàâáò÷ çÞêù äÝôßôä×ÝóõèÖòøúæÖâôߨíáñäßæ õ ôØðòôñÙçõóØèéõñÚòòõìÝùüíØ ú àÛçæòßÜçòò èãôú÷÷×õø êÙêýööÔúöéÕîÚð æÚèñï îÞéûî ðÜíöîîÞîîêÛùí ÝÝöçë àßåî ëßìîîÝñõïéÛïì éØìïäÖðíí ç×úó çÖæýë éÝúðíòÞíí äãíêæôåòî÷åÜåòáãîåÛÝñþáàè÷ÿæÝÕ*÷þäßÙ&ûêÖÙ0ùÙÖáñÙÒÛô×Ù×ð éÜèôðàßïóÜÞ î çÖåíÚÓÞöçïÎÕìèîÖÛÝçûéÞäéûëÙíûçöàÕØåöÔÔãåØÒèàÓäýäéÔæè èÑóöã ßÔíýâÛÓñ÷ãÔÕõúâÿØÜåÿãáãô÷ãüíáðýæìÞéüæÞòëêàøêêîÜóððØýâæçÖîüçåØþõéëÛýêíîÛð ÷æßûëáúô îìÜæûîØÌ6çáÇNûåÛ¢SýèÚ M åê¦L(âüÀ@7àü§2&ûã½#/àÖ$üØÆñÖùïÎç÷ÞÏýìÑÐèÖÚýÝáÓÚ ÓÖÍßÔÉ áÏÆ àÙÀîÛ"ÃçݾèÙ¾ äÔ¼ø×Óû»ýÚÐ# ¾ÿÙÕ»ÞÖ¾Üß÷½àÜÂÛÖ þÁÛØýà ãÔ à âÔÈÞÓÅþÓÏÇðÊÊÇðÉÌþÍþÓÌ ÑÓÔÿÑÚÞÿöÐçá ØíÝþíÓ çÚýÓãÛðíØ ìÛ,ç êÜàæÝ÷ßæÙøüäùÝ×òãúÚÖþçÜÞþîäéÚñê ãàñîäìâøíïèóþì÷íîïëèòòûääæï÷äæÛëýàîó ÷Ýëöðàûæùïãìì÷öàâøöÞîìø÷åæçüàø ÷äæ×ü÷âëòýôãáîÿöáê ôßíÊõÙÝøïÚðãêáÚáþñãâ÷óàÜÞ ðçâóÿãÚ×úÞï÷ðÛç ðÖü èÖúî âÙùâÚ ïãÙùíåØêÜðîÝ÷ï îêóõ &åþîûãøã ôåî øÞîÞóÞìì õâéô òÜêÞòÖóãðÕàç ø×Üêöáïà!þãÞòüäåö üäñì ûéÞé ÿçÙà éèûüèÒß ýçßîúáÚì òÙÙä êÕÝî êÔÙé èÌãëÌÏê ÊÐãçÌÑêîÿÍËôøöÁÍõúþÉÌöõÇÊþ÷½ÏîóÀÏéïõÄÌæ÷ÄÏðæúÈÛéîÿÔÞâðÚßáñ áàãò æØç á×í÷ àÞáÜ éáåü íÛÚý åáÜäñÛãñ ñáÛô ôçàæ üäëø ôãÖ ÷èØõ ÿããæúàÜû îå×Ù òãß ìäÜõìáß ñÜØÞé×ÛÿàÙÌéçÖëãÖæúáÛèò ùäßÊÿéÜáüâÚÏîþÞàÙæý âÜÞþáÜÓóþãÙå áÛÙîçÚÝéÜàôãÜàßßÞåßäâíÝëÿîãá õçäðõèâúþúãÝýôÜÝáö êØÛ ýæÛÝ  ñÜï öàë øãìùåØòþ õèåü ÷ëáóü úëä üúãéùýïäÝáõòÚñöúíÚâ÷ îÖèýû æÜÞóø îàñôùîßæöëÝñô÷èÛèêðçÜæøðýéÛãñîëÜëäí íÛîóíÝößñ÷ßïôøÝôéñ ïØçýìëØïñï ëÙðæð ïßöõôãöòúâàðõÞíðîòÛôòñÔýçñçÌúíì âÐûõíæÓúïëáÙøèéæÞ÷ñê èàþééçàóøå éçÿóèøã÷õêóÝûÝåößúðçÿÞðýÚôæíýÕòðóÙý÷êõÖùìôÛóìõßú÷í ïäèíóßñùèçÝóä àÞûúîàÛ ó Þ× óÞÙ÷ñçÖ õ äÔöùíÛÒýìÜÑðîêÛÕùíÜÛüðèßáïä æãüõçîäöîêëáòëéÝöùé âÙëÝÖý÷éÙàö÷êäÙùøéÜÐ÷ïåÔÐöéÞÕõ áÙø âàûÿ÷èåþùêäøêÛ ÷ÜÙüö ßÙøöñåÚúüöåÙôÙÔýñÐÓîòÙ×ýóâÞýûóêÝúõàæþöëèùðáÿóöèÜöýóâÚ÷õåáôúõÜù÷ðè×ðæ× ò æÒ'ñÚÔêÖÞ ç ääþ#åìß å ßá ë äÜÿçÙÙþçÝÞëéÛîçÛÿûêì×õíëÜôëðÞþíïáùöëòåøøìñæöíêïéýèêñêîèèôä÷ñî èçøçíðéðãîõéïêìýâùïðöäòÞï÷çñÚïúçïððýåðÒð ÿàïËôùàüß÷àß ðß ÇòÝÉí×Åà×û­åÖÔáÕü»ÜÛð¶ âØòË âÖòºäÖñ¾çÜïÇñÜ÷Ô ñØóËëÙõÌñÜí×÷ÞóÌøÚñåòÚôÒìÞëÝïâñÙÿøÚèÙþ îÖðÙü ãÏíãýÓÐëïüØËóàþÑÏÛÔ÷ÔÒæà ×ÙæÛæ×àäéÖÛÙ çÛÎÖ' îÝÊé4ëßÀó:êáÂÕ@ ñß³Î>ðݼÞA ôضØ7éà±Î.öß¿ï-÷á¼Ð$÷éÁØ!íÁÞèÉòûèÎäýáÈï øÞÒò÷ä×óþåØìàÝûýøáÙôöøßàùö òÛäóñÞéñúÜåìôßìüéöâêçúàë æ øÝëáóØðßìÖöß ëÓñÚçÒöØæ×ñØÿæÝù×åØ÷ÖÛÖþÕÛÔ ÖÛÎüÕýØÐúÓûÛ×ýÔã× #ÙÿâÓ$ÖþÞÒ#ÕùÙÏ$Ôø×ÓÐõÖÔ.ÔóרÐÝÔ$ÒØÓÒÚÒ(ÕÙÑ"ÒÜÎ$ÓÚÓ ÒäÕÓèÒ*Öã×ÕçÛ0ÖëÚ ÖæØÔäØ&ØàØ×ßÚÕ å×!ÝêÒ -â ã× àæÕàéÕààÜ!âêäæ ñãæ ëàä ëÞ å ìÙ æ ìÝç îÝëïÜëðÖîíÛþüéòâüë ðäÿêíéüçíãøë çäüþìêÜî äÙúï áÓ÷îÖÕüþï ÞÏö×ÓþúóÛÓøÜÓþ úÝÚøüõäßõó æâõþö éãùù÷ëáö úèÛ÷øùæßíôõîØõûåÖó÷ú ãÖóòú èÔôýüéÕóïú äÚõÿû âØñòýÙÞìíúßäêøúçÞïðýßÛòôÝÒëôûÊÎçýýÏÏì ×ÏíÖÍì ýÎÕëþÛÚíÞ×âÓÛãüÿ ÜÝæïÿäãçýêåäøèããàÿçÜßîþßÕÛàüÓÒÝÝüÓÒãîÿØÓâð×ÖåæÐÜàáÿ×ßãÝþØáâãÿ ÜÝäçÜÞãääÝåØâÛäßàÛæÞáÛéæ àÜäØ æÛèä äÖêãäÚåãéâäÙìêçÚöëçÞûèéÞüäçÞöæèÜûæëìùäçÙöêäÚþééà øæëÛ úàéßðâèÛùåîä ãíÜúçèã!çêÛ !åîÞ üàìÞ ðàìàøÛíð ìÝçÜëÚéáçÙêÝäàçØðäèÞüææá æêÝêéÜ èêåçêãåê×éêÝ" åíßÞïñößçÜ öÞìÞ ñßçÙüðãîâõäðí#úèïß&éïß%åóêüÝîéîáêßôæñîöåðéôåëèõæïçîæêêìãéåíÞêëîÝîåóáïì úæïîãññòßéðìßìç ïÚëíçÞëîÿèâèçüìåêìý ïæêìý÷äîí ûàíó$ûÞïò"ýàîêýþÚïîÿòØêóû ÷×îïÿøÖäëûìßèõûïèç÷ÿùåëöÞèôìÞçõ êÙâîüæØåöýæÚîóÿèØæôýæÖñüãÏðúÝÎíýýÚÖìñûÝÞíôúäßóöûÞàï÷ößÞìòó âÜéðò àÜíòôäÝðùöêÜò÷öçØòòôâÔíòñÞÕô÷öÜÒõûõÔÙñ÷ñÜÝòúòãÜùöãÚöøòãÚöõð ÞÞöôðæßúþòíßöûñóÖþýöêÖüÿõíÐýÿö âÎúòØÏúþòÓÒøþîÕ×÷øîÞÝøîáÞõüíÜÞñóèØÝòøéØ×÷ÿêÏÑñ÷éüÈÒôúêþÏÓöüëÖÔõ÷êÞÜóõëòÕûüò ëÖðõì éÙñôì çÜõÿííÛûðäÜôüì åÚ÷îâ×ñùìàØõÿíä×öþðå×øñäÙðûì ëÒùóàÒöñßÕøþðáÛôýð ìßúôïÝøñ ìÜ÷üñïÚúô êÛøò ëÜøòíÚ÷ôìÝöþóíÚùõäßøó êÕöûóÚÙðüðãÚññ èÖòôÜÖôûñÚØóýô ßÚôÿõèØøùåÚñúòèÖõÿôáÙóþõûÙÚòôßÙõýõáÛõóçØñøòäÖóöçÔøøá×øÿö ÞÔöþô ÝØôõ äÕøõßÕõûôÜ×óûóÝÞòÿò êáôóîÞ÷ÿõêÛõöîÖõýõ æÚñûôéÛ÷ýöëÞõ÷óÜöÿøìáî÷òïãòþôöâö÷ ÷áðý÷÷áöùùæõùäøÿüúâò÷ùâ÷úùáõûøã÷üãõøúúâäýô ðàêüêÜîä×íØÚåâÝæçÚéüÛÜâãÝá çáÞþïäæ óãå þ ïÜêûáØæþ÷ûØÜÝþóäâä÷ó ñää÷óößçöôïßîýöîÝëøö çÖè÷óáÖèïîáÜåíìëÛëóðçÝìòð êàìòîíÛìðïèØíðîâÞçïë îÝñíï îãîîìöàïñïôÞïïîôÝðõñìÝïìîêÚóêðéÜñéî îÜõïðñÜóëïòßõïòùÛøìò òÚöîóóÛùñóõÚûñóóÜ÷èñ÷âúëô÷ã÷êòôäûðôõÜúîöïÛüêôöÙóøìÖöæñ Ü×þ÷÷ÜÜþðöìÝõúðØþîößÖôøÜÓýóö ÚÙûíó åßÿòõ ëáûïõçàùñõìÞûðöëØúïõæÕþðõåÖ÷ìòéÔúïõç×õçñæÞûòöíßöò÷éÞ÷îöçáùîø êäøðø ðßøñö ìØùò÷ÞÚøòùáÞúôüìÝõðúèÛôí÷çÖöïùäÖõïûîÒùðýòØõïû÷Üõìûíßñãù èÞíáöæßïêø æßõïû èÝóìûåáòïúëßóñüèäííøõáòìûðÜôîüåÞîçúçßòïúðÝîêø îÝíïù éÝïîúçÞñðüäâëí÷ðãïôýúâîïû÷ãñðüõæîóú äîïüúæëïùûáïõûôàíòúýãïîûþèíóûÿãòöþòßïðýêÙðõüáÔïòû ÜÙëñøæÜïõüêÙïøý âÚð÷þÜÙðøþÚÚíôüàÜëîúçÜìøû çØíúýâÝîùý èßñþ ìÞôìÛóûÿ æÑôýÿÙÒíùüÝÕóùèÜñýþíÛöæàôû çÞòúèÝìûÿñÜïý ÷Üñý ôÞöý îØïýãÖíüþá×ê÷ûåØëõüäÚèûúçÜëöúåÙëôúÞÑçð÷ûÐÑæ÷õ÷ÎÖçôõýÖÛèõöàßå÷÷ èàîûýêÝòý æØíü áØì ÜØñýÙÛìùûÛÜëö÷ÜÜçôóÞÛéóôçÝçöô ðàçôô÷âéñõýäíõøýéçñøçñþÿþåîùýûçíúûýçî÷úûáïûúñßïôùóÛñúû ïØí÷öìÓíöö äÙëøôìßêøôöâìùõÿßí÷÷ùáðõøøàóûüòäïûúóæíýùôàñüúéÛîþúèÕñýü ãÒïýú áÓðöù ãÕôü èÙóþüëÚòþûèÜïû âÚîûÛÖç÷÷ÕÖåû÷üÑÚèÿþýÓàîùÙÝï ÚÜë÷ÞÝêðåÚêìßÞçðâßêð èßëî æÝìö æØëø×ÔéøúÐÔéøüöËÜëûøúÓßìöþÙâíüñåáïúðìÜîøïäÞîÿîæÙõòáØôÿïáÙóî ã×òýíÞÔíéÝÓøûëÚ×öìßÚóúåáÝðúãëÜóûæì×öÿêåÕòþçßÕûìÝØøìÜØùíá×õþëå×ûïäÓóûéýÞ×ìïäùáÝïöåêÛúìéÝõûè ëßôûç ìÖôûæÞÑïøçûÙÖóþêýÞÓöþëýÙÕóõèÚÕõüë ÜÖúøí ÞØ÷ûëÞÙôùêãÛöòë æÛõüîïáøúïþß÷ùðöâööíùÜúùñòßóòíøß÷úòðàø÷òóçòñïüåóöðþãõøòôåôôñïçòòòùåõ÷õøãöôôóâñïôõÝõô÷ðß÷û÷öáîêô÷ßèõöõÝõÿþïÝõùþëÝöüÿéßëöûìÞïöûìØïíú ãÕñ÷úã×êóøäÖñøû ߨðòú æÛêï÷ ðàóôûõÛðõù çÙêîô çÜîëöëàïôöòáêïôûÝíïöóÝêéõõáðòøþãôõûýßôöûõÚñïùõÙöôüöÜõóüôßôñûòâñòùöàööûùãóðùýßööýöâóóúùÜõõýíàïîøóáóôûøÞôõýùÞêçöòÜæï÷íæí ïâë ìâÞ  ìâÛ# íßß( åØÐ!ãÚÔèá×íâÕ íãÙþ ìáØüëâàòâä ÿîÞâû ìáàö ñâáöõÚæù åÚæû÷ßàèü÷íãæúøïàëù÷îÙïúø æÚç÷ò éÜìòò åÞêçñæÜòøö ãÙìðñáÕîðñâ×ññïæÔúóóàÓ÷ñòÞÑøðñùÒÐøðïÒËúéïÏÌúíï××þóò àÝòô áäÿæîíàÿêð çäùãííßéòé×ëô äÑêõâÐÿâõçÏäùßÒýâöÝÓøàõ×ÔôéøþÔØüïßÙ÷íåÛúåäÞóâæãöå òÞïÝ íáòç ðÜóÞ æ×óÔéÓüÕ éÑÐ ßÖØ çÜþÒ êÜýÔéßúÆ ïãòØ &ûéêÛ!ÿêèÑ ëêÌ'ìçÎ$+àèÆ)äâ¶' åç¹( çôÍ*ßòÇ øÝñÈóáúÕ óÜ×éÜÿßùïÜâóíá õì÷à øçùÜûßðßßïà ý×ûëÙ ÕýÜÔÐþÔÔ ÊÙ× ÇâØÊßß Æ æÝ Ì äÚËãÝ ÊêÚ ÇçÒ ÌâÑÊ àÓ ÍÛÒÎûÖÍÌÔÒ ÒÛÒÿÐØÖ ÓÝÚÿþÔæØØá×üÿ×äÚþÛèØýÞéÙáêÚü âîÖüã æÓùþâÝÖ÷ã áÛõüãèÛûèåÝ÷ûæçÙíäÛÚóìßÖöïÛÚó î ãÛù óâÝù÷çÞôóêÛò óãØòö ß×íòÚÙï÷ÜÝëûô èàìùíâñûíÝêû âÖêöúÚØêÿÜÛçæçã÷ýúåæÿóãçîâãþîäãóðãæñèâøûíàùååöôèâùûâàúøÝçú òàåõ ôßâô ìâã÷ ñâäõ ïãàò ëÝäûæàçõ òÞæýôßæýïÛçø àÝáõâßáõ åÝàõ æÞáò íÚâò ê×ãóáÛâóÚâßö ßäâíåÚáõßÔåù ÝÖâøâàåð ðÞæö æáßñ éÝÞñ èÙÚî æààîóâÜëõÞçç ñÛöêôÚè÷ÛèöÜØòÝÜ÷ÚØøÔ Ò ìÔÎèÝÜ öâ Õ ÿßÐ÷à×ýØáò×úÚ êâõÖþðã÷Þ éãóáþ æâíÞû êÝìâüéÚììûäáåçõíáçå÷éÛæéö ÙÛáëôÙÜÜéñ ßÜÞñó åØßðõäÜÝôôèÛÞööþàÛÞüöüáÙá÷üÜâÝõõãÞÞþø ßÖÖóòØÖÍõí ×ÚÖýñÛÞÙðÜÚ×ñØÙ×ñ áÕÙö ãÛØûó ëØÚ öÿâÚÕñúâÙÕÿñøàÜÓóþæÝÖõ íÝÎô ëãÊúïðé× úøæÜÿðáÕ ýëáÓùïÞÖ øóâÑóúáÕþôõäÒóîÝÐñüãÛÓïþæÞÒð ïäÖó÷æÚòòèÕÿíöèÜôàÞ õùßá ôôÞß òîáãôðââ óöÞç ôíÙá îãÖâíÞÕçïÝ×å ðßÛâ îâÙäîàÕç íþÔÔç ìÝÓêðãÓìðá×ðñàÕïïþÙÑð îøÑÓóñýÕÔöóÞÝôðéÜñ ì çÛ÷ ðå×þóßÖ÷ ä×øíßú øÚ þïÙù ìÝõòÜ÷éÙö ÞÜ ñåÝóðæ÷èùÿâ÷ïÚõÙØüñß×üòèÑþõïÓýø÷×ÿùûÞùöåüôøêûúñçûúñüâúøñïÙúúò âÝýý÷íâýø÷Üùïë æÕõÛÒ* í ØÊ= éÎÁIãÃÄ\âÎÆUØ ÒËWÙÕÕQÝ Þ×IÝà×@ýÞ ãÕ8ûÝ ßÔ.ëÛÛÕ-÷ãÜØ"ðß ÞÚ"îååÕéå ÝÙéæäßéèêãåçñäáèõâûàçöæøàèûäúâìôåïÜéøáïßëðÜíÜì ëÚèÜî ìÙèâñ éÚáÞï âÝÚ×ë æàÛÚð êãÙÙô ëâÖÜôêßÙÚ÷äÚØÞúÚÙÓÜúßÝÓØý ãàÏÕêØÌÒ ÝÔÌÖ Ø×ÁÈáÐÅÊ ÒÕ¿ÉÒÜÈÉ*ÜÝ´5 ßÜ»³Dâ㽯Tòå·¨Zö䱟Wö൩XìÕ´­MÞׯ½?ëÙ½Ê8õÝ»Ñ+÷ݼßøÝ¿ßéãÈóèéÐûõçÑóõ øàÐûñ ðßÕþì êãÙéõãÚýã õßÙýÞ íÙßÝ åÖßÙ çÖâÿÙêÚâ×÷ÝèÛüáäØ ùæãÕ õãäÔêßåÿÔþäßåÕÿêáçÕ ÷ÛêÙ óÛë× òÙçÕ ëÙèÿÖ æØì× äÑìÚãÔíÛñÔõà ëÜòßìáòáëêðßúãêÞîèÞéßìàÙóçöÝÛúë íÝ÷êðÛöæéÚóå âÞñã êÚóæ ç×óä ãÖôæéÖõèôØõÿè ÷Ýùíïâöýêëæùì úä÷üïß÷ùïàöýîûàöüïúà÷öïùâ÷÷ñöÛ÷÷óÞÙñõïÙÙóõðßÙõ÷óèÜñôò íÞüøùëÜõð÷åÜöõ÷äßõðù ïÞû÷þòáôïûôáøõýøßûöõÛçõù çÚççÜìêÛæ$èÚß#èÞâ%#õÜÝ!ìØØ âÚÛ áÛØ ááÞ îâäóÞã ìÖçßÖèüÜÙìüÞÚì÷ äÜìòçÞêöèáïïææóî ïäüóðãõíôá÷îðÞûð èØýñ âØüì âÚýèâØýåþãÙìýåÙèûãÜþæøãàýàóêâá÷ôÝçûñÜãúïâßùòàçûóÝ æûóÜ áúöÞ åùûß çúûÝ àù÷ä èù(ÿç Ýõ*ûéâ÷#úä åô÷ãëõúÝøøêàõõíßñöñÙîóï×ñôêØ éò åÚëöçÞ éñëä äîíæ èîìß æïæã éðïæêïøéáðüå ìöøæ ê÷äìüàüÔôÝß ÿÝÞ&ç×&ãÍ øéÎ"$þè Éúæ¾ùåËøã½òãÅ ïßÉ ìÜÎäØÿÉ ÛÖÿÕ×ÒþÖÜÔýÙßßùÔþçãýÜéâûÜþðßüæþìÞúãúìßúéøíÙûêö âÔüïö ÛÐûìõÓÊùóóÌÎøõïÑÓõñîÓÖøûðØÔýüò×Ö÷ñÜÚøòáÚúôÞØùóÜØøóÞÓü õÙÔöñÙÖùôáÒïîÓÏç íûËÊí òþÊÌñôÐÓé ñÛÙç ñãÚì õâÖè ñÝÑéôÿÙÊçïöÏÉè î÷ÍÎæíùÐÛèïÿÛßç òâÚëòãÜçðÿãÚèòüÛ×åíýÕÏëîøÍÊä íùÐÉäîøÑÈçìðÇÈæ ìê»Ñá çøÊ×çêÙÚâè âââææÜæèûØÕáäðÏÓÝáòÓÑãå÷ÕÍåêýØÏäçßÔèêåÓêìþÜÖèëüÚÞãéæâåêïâëïïàëîåæå êïâëï õßéî ôÛê ï ëÔêðÿÚÏæíøÓÊç êöÏÈæ ìùÉÑä éÑÚçé âÝêí ìÛç ìíßãê óÞå í öâå îüçè ðàéòûÝé ñú×ï õ êÜçïëÝäí ìßäðñáæòòæâþîöçåþð öæéóïåäò óäãñ ÷äãýòãåýôüâëøõàçÿöóäêøúåâüôþæèøõøèèøöùèíýúöêêÿûÿãôþùçëÿúûáçó÷ðããæòôßãïò óßâòôûÜìþùýàéö÷åîÿü!àîýüúáóöùôÞïÿü êÝëöúãÛæõôÛ×çèñÙÐåëðÖÒäçïàÓíòô ãÒìï÷ãØïòúìÚñôüðÝñóüðßëñøéàêë÷äáðòú áâëíøèäéêöóåìòøüáííøôÝêèö îÞêæöòßòóüùßñìüýâóöÿ!ýÞóðÿîÜñðþæâîòüæèðêüõìîìûëñðüæðïýþãîíúùßïöûóÛôîý ìÙóòûîÙöñüñÖóîüí×óïùìÚø÷üêàòîû êàóñûäæñóùñâôóü ïàðöø ïàõðü ïàóðü òÝõôû ëÝïïø èÚõóþߨôôýßÕôóû ãÓîçùÛØóïùÞåííù ðæóìü òåíãùóéíèùùèòïýýçöòþæðîþûæõòöäïïÿóãôòóÛìíþßÕëîüÿÓÖðöÿÏÙõù××òðÝßèçü ìáòèïæêéýöæíèÿùãëìþðæêàûöäîìôåîéÿóâðëþîÝíñÿãÕíñþÔÓïçüÒÒìãùÒ×îìúÙÞêå÷äÞìåøçÛóäù èÜïêùîÙïéùîÙíâ÷ðÜñãúñØñëþîÙòìþôÓ÷î éÖñêüëÎøï ÞÔñéû èÜ÷òÿòÜöòÿñÜ÷õèÛöñþ åØ÷õ ãÒ÷ù×Öó÷ýàÙõñþäÜùõ ãÜùùÜÕõôýÿÒÔòñùÖ×óüûߨôñü ëÞòôúóãôóýõßòñü çÛïóú ÞÛðôû ßÜ÷úý ç×ó÷ý æÙôûý çØöóýèÓýçÖõúÿðØûúîÞù÷þñÚ÷ùÿ èÚíîùßÝïóú ãàöüûëáùùûîÜñø÷åÜòïõèÚóøùìÝòòúôàòöúùßô÷üòãïúúùáïõúôãóñú îßðùü çÞôöþ åßçîößÝåìôßÝìöûãÚî÷þäÓîîÚÑëôýÕÓíìþÖÐîïýÔÑíïýÜÓîðý äÖîèü ãØîëûÝàäéö åÝïôü ãßéèö ëÜíôùíÝïð÷ñÜîõ÷ò×ïëõðÚîòô îÙìíñíÚíöòîÙðôó éÝîôñ îÞïõó ïÝãæìèÛèøò ìÜô÷ùòÙöòû îÛòíú íÚúþÿñÜóôü÷ÚïóöôÜóóùòÜôòøìÞõúøðßöø÷õß÷÷øõáùýøøÜõ÷ôîßóüòôÞ÷ûôðÜ÷ûô êÙôùð ä×øð ÛÕóíØ×óöìØ×òûëÚÕóì×Õ÷îÚÒ÷îÙÔöþëÚ×òþéÿÚ×ôìÙÔõíØÐúïÕÒùð×ÓøìÖÕôûëØÕ÷í×Ñ÷íÒÒôÿëÕÖôíÜÚøïáÚöî åÞøñ騸ñÜÔùó Þ×öðàÚîïßÙôõÔØ÷ùÕØýûÙÔöú×ÕõõÚ×ï ñÙÛññáØô öÚÛðñæÚôòçÚðî ëÚóòíßóó ïäôõ òåñó óäôþòöÞòóòßññ÷æñþóþé÷øëóÿ÷ãùúóàôýôòÝòûõèßöþ÷ èâõ÷íåó÷õûÞò÷óðØùûöåÜðñîèÞûøòíàöúð ôÚúöó èÑ÷öñÖ×ûøóÜãööóîßöþó èÛõðóáÜòññ åÜõöõ êáõ÷õòåôóôöÞõøöëÛðòò èÞôòô ïáöüøûç÷øûæððøõßíåö åàêäò ëÞñöø ìÙø÷ú éÕòòøë×ñîøëÞïðúóáçìö óâíëûöàôðõâ÷ðñÝùô äáùí çäïêìáïç êáíê ëÝçéþ æÝèåü çÜêæþ ìÝèäþóáêíýäíìüåééþøßêìÿìØíî àÚëòÿßãééüíéëîý÷åçíü÷äãìûøàèëú÷ãëñüÿâéìûÿæéíüäïóþßî÷ÿõÛëìúêÚéðüåÝñõêãìõûùæò÷þàåíú óÝåóûðÝìø ñßî þßì÷ úÝë÷öÞîùòâæî÷ãêòøäåí øçæî ùàèïéàåêîâèìïããîýôâèôÿñäæîûõàìòýîÞêòûðÝî÷ÿìÜç÷û èáéô÷ïãêùùöàìøûðãêù÷ôæîú÷÷èìùöúåîùöøàìûó òÝê÷ðñãìûóößñýõïßñýóìÞóûòíÜöòíÝ÷þòîÞòüñëÞóúðçÙøò á×ùñ ßÕ÷úð âÚöùî êÚúïæÛõûì äÕûýïÚÒ÷ýëÛÕ÷ÿëßÚ÷üì æÞùüì êÞøüíêÚ÷ûë éÒøýì ßÔøûì âÞøûìíãöüìïà÷üìîØøüð ãØùüð ß×úúð áÜöûïîÔüþó ÞÌùÿòþÊÎõùìÐÐñóëÕÔöþíÙÔö÷îÖÒ÷úïÕÍùüñÎÑòøíÒÔòñí×Õô÷îÙÕøòÔ×ñöïÕÙóöðÖÓðöîÑÐöýõÿÏÓóþóÚÖøøôÝÛðõñßÙõ÷õÿÜÚìöòä×ðúõäÙîöôéÚñòó íÚðüöçÛðúõæÚïôôæÖìüôâÒðùõÞÕó÷øÞØòöößÚðüõâÞìôñ íÙôõ÷ çÙðòõëÖòðõêÔóü÷ äÙóóö èÚîõõ éÜñòöðÙñî÷êÖìëöèØóóúìÙôöùë×öóúãÕðô÷ßÔðô÷ÛÕðîöÞÕðüùßÚêíõãÝíñ÷ åßñóù ëÛò÷úìÞðîøðäòûùùâåçöõäßàõ÷Ýîóÿíáíö÷âæéüÞðíòÜíï êÛâç âÝäêÿ åÛâëþ èßâäýôÞìïöÜêíóßçðýþÞíîþûÞçìüøßìñýñÝîíýæßèì÷çÜéìö çÚîóø éÔéì÷ß×ìð÷ãÜïøù êÚòùù ëÞîòöðÙîö÷ãÙêõñßÓìùôÿÓ×èïðÝÛìöð åÛîôñéÞôøõòÛôýõðàöø÷öâøúùøãüýûùæùúúþèûýúçõûúèøú!æùúûåúüûùãúüõåýýúàûþüïàøùùêßùþúéÞøùèÝùþùèÚüÿü ßÚ÷ú ÝØ÷üö ÛÕùúøØÕùúÛØúúâØýüüÝØúýÚØøýûÚÙùÿú ßÞõúøèÝïòö ÞÛöýÖÛú ×ÝýÝÚýÙÙùþØÚøÿ×Üôàáøÿ ëÜõüÿ 䨸üÙÕðûøýÔØðú÷ÚÜôù÷ßÙôùø àÜöÿû êãöúõâøûûñßôúöõáõ÷öùàõö÷ùÞòøöùá÷üúüàûüüûÞøüúïÜøþúëÜó÷ö íÜôü÷ëØõùø â×öúøàÝïôôíÜõøìÝòöôñÛð÷õìØòôõ éÜñôôïàñõõõáóøõõáòùóïÞôöõçàêðð íãîòñöàòñõôßóòõòãòòõôäòøöóäñ÷öòäîóõöãóúùñâïóø ëæíõô ðâçññ ðääëïôßì÷ö èáæüõîâëûòçéüüçèþüâáÿþ îàâ ïßâìãÖÿñæÙùäÒ ÷çÉ ýãÆ ùå¾ýüç´ô"þèµû,üç´ó:úç¬ô@ýë°ðEäµïLðà¶ôJèÞ´êC âÜ´ï= ââ¶ó4òã¼û2òà¸î) í߸öëßÀÿêÙÇüäÕÀþ÷ÔØÌöÖÖÒôÓÕÖÿö×ÔÕ÷üÚÙÞûöâÕâößÐéøÛÏåûõßÕèûòæÐæñíý×ÓíõîöÖØìììùÜ×ëêçúÖÑçÝßôËÑôçäúÏÓõÚÝ ÜÐ÷ßÜÚÑçâ âÒæß àרÜëÜàÝîÝëÚïÜß×ðØÚÙëÖ!áÚèÑ'Û× ÝÏ,ÓÔÚÆ,àÐËÇ-ÎÌ ÏÇ5ÕÉÏÇ<ÞÅÒÈNã ÔÐZí¼ÜÏaó¶ ÙÍ`ø«×Êj¤ÎÄpžüÂÂq –ú¼ÂtŒÿ¾ÄwŠÀÅx‡ÆÊyŠËËqˆþÈËmŠýËÐ`…ÒÒ_‰ÔÑU‰ÿÒÍP ûÌÍG ÿÐÏD“ÕÓ:–ÜÑ4šÙÓ.ßÕ0¦â×+ÿ¬æØ&°çÝø²íÜø¸íßø¾óâùÅöäóÉøãõÍùæ÷ÔèøÛ"èýîÞéöðä æöòëüåöìðûäññ÷öåîéøøàìóþòâçîöãçôøãßîöãÒñ ÷äéêøæâíÿëÛî& éÄâ çÆãýçÁý!ûéËó)ýéÄñ0üé¶ 5éµ:þë²ú4þê¸ç4þæ·ì5øå°é2ñéªö0ùâ´ê1 ïäˆê+òà¹æ1 éÞÂÖ.áØ»à+ÜØâ%Þܰä(äá¦×(îÞ´ã+ çܸÙ)ãÜ â%ãÛ¯Ü'áÛ¯Þ&ãÚ¦Û%çפã%äÙªÝ$èܶØ$êÕ¶Õ$àÝ Û!òßµâ'÷à³Ñ$÷â¶Ö$üâ¸á)ùá°ä'ùãÃÔ%üäÀØ&à¿Ý&ûæºØ"çÄä%ãÉÓ$èÄè" æÃÓ ê½Þ çÈê ëÅÞ èËáæÆÝýäÅìþàÖáùãÎæùßÎë÷âÔçÿß×ô÷ÝÒâîàÚ÷òÞØÝöåÚãàÔíûçÔæúßæó îàãûéÝáêãÛõùäÞíôÖëâÞàÎå ìâæîïâÞçØïãÞÞæð èÔóâ ÝÔýá àØÎéçÓ÷ìÝÒíÜØÛìêäÙíõ ãÚÕöþ äÚÿùÛÛïéýÝÎÙùÎÏÜìôþÐÊò÷õöÈÔì×ôÿØÛõýèÍúþßßõÝ÷ôð ÷ÙäúëÛüþïà òæ ÿûê ûÑýÚ×÷ îî)6ò"0 Û%ÿïå"$îîþ&ñ*"ã"ÿ ñÿ ú,ó)AØ!û äâ!*üüàê!ö öè&û:þé'ùòÛ&öëå+ùìã!$ø ñã0ù%ùå "õúë #õúñ-÷ÿðÚîâî -ðêâ (íí÷LúBß2S÷7RòFCâHûð¼>øä¾é !é÷Û¦ éì©ðñÕðÇèÖñí Úÿè à=!é½ æ2ÛÁïÒØÿ àVéØŒ–ÆÖíÄàúÖåéûÛäèêôÎ4ñ…÷åÑÆ•ÿÐæ¿ ôäùÛ9 ±óòÖý¼¿ÝæËÿÞÚñíÑ=éÅÔÊ úŸÓÜÆ€”àÖéÉkû¯ÞÚÒØ²È¼×¾¥Çò×ÓÊCñÊÌÔÉ̼ÝäÒÕ»”îî×ö§ôÀÊÅÞ¶ÒÛÔ°ªÑâíÔܶ¦ÚßÖë³åÞéÖâ“ÞòàÖ¡ìÒåԞ£ííàXÊæëݳñ÷í²§ÂÝæâ´Ä§øòî#ÑÕôüïôÛöøéÏñðïÑðú÷î˜ãïíü¹ÙãìçÜÕòæ÷ïèïðãáê*þ«éåð¹½#õðñB.íý¼Êè×ìåÁÆúÞóëÒÅìËíÍØÛùß÷DßóåßíÂÛÒóØðêÈ«ðèïÇÑâÚéÛ¼ÝÔèÁÃÍóõñÞÕïçÜë"ûÉþìô×ÑÃóçï.ä±èãì×ȶüðóáÐêöíñ5äòåòíï×ôøæ×ÐõøðêÕõìòïæôîôóÛþõøîå÷íôôðµ ØÛÿ÷üõéÞùý ñÑüïúçüòñô8Îõýðãûöùë ÙþïûýæÕüðõçÜþûþÞÉùüÓãóûèÔúæÌûàÙüéÞäÑ ûûÜê ûù ôå'øäûÿ ñàõÛ úü"ùë ÿûÞ þðÕ ÿäÜúìáûïÖÿúñÛú âí÷öñ&ïÞü÷)ãâøüõÞíÿùîØüúæÜóý÷ äÐøüüÚåõû#ñÏöý åéìþù òåøýããîýø êäðýíÖòÿëîïÿ"õæôíãòÿêÛíû åæéûòçëýûûÜòþúØçýûîèìüõïíü4þòæûùöíå÷ö-ïëþý/ ðéüû5ùëþþ*ïÝñ÷(Ûáûûðææ õåé(ùÖèûíÛíÿ (òìçö%÷áàï"íçßïþóôÜîû(ûàÞñúíßÛð÷ðáÛï÷ñæáõû óÛàñúêÝÝîöïÑãòüçÖÝóø êÝàóúôçâøü÷âãòûðèßôø øçáõú÷óáñù&ÿéçõü÷âàôüïèåøýúèãôú"ÿâäõú$ýßãôøòäåõùôçåõúúåæôûþêäõù!îæòûïçõûêêøý öëßì÷ûëåêøüèîòþõâïðÿðÝòõ ìâó÷ôßòúðØæä÷ æêíðü íåèì÷ëäëîø éæèêöîåêìøíçëðúêßêîù çÙæîóçÑìðöæÖèíõæÑéëõçÙíêõëØîï÷âåçìñòèìñôôìééó"ëîíø úáâíóôßèùü øÝêÿþôÙ÷ëÚïÿÿ ï×ëùýõÙâï÷óÔçñùçÜÜåñ ãÚÞãïÝããìð ëÝâîïãâãéïèçåíðñÔãìñèÛßâí ò×çîòéØãêî íÏèîóáÑäåîáÕçêðÛÔãçíÞÜâéïåÞèéñâÚëíñÝäáåìçàÖçéæàê÷ø ãÝîüüûÜÒìõüÿÕÔåõ÷Þ×éòúí×çñøçÓèðöãÜêî÷äÜçî÷ÿäÛêïøûááåðõûãßçíöèäîð÷ìÚåèóàÐåðõÔÖñøýÛ×öýàÕø÷ÜÉðíúüÓ×ïïøåÙñòüøèØõóüüèÕòñúõÛÛíïõÜÐöñúûÒÒñîõß×õõù çÔõñøêÎùöúÝÍõëö×Ð÷ëö×ËúíöÞÑ÷ô÷áÚõíõèÝ÷íõÿá×ìèðâÕîïôæÑûþãØäÑüôÿáÒøñúëÏþòüé×û÷ü æÑûõú×Ú÷òöùÙØùñöøÜÔøðõüÞÔúõøÿÝÜùôõ æÔúóôåÞôðñ÷ÚüðöúØþ÷û÷ÝûýüÚÿøú óÚüôøèàùóøáñûûú óâÿõûûéÝüøûøâäýøùäÙûö÷üÛÙúõôñÙìéñíæèíó#þØý òÚý òçýùåð÷ õßôö èãìíêèøû ðÙñöýßÚïú áÚöõéÕîñüâÓóñû á×òíù äÏóï÷ ÛÔóîõÜÜóôöØÝòòóÞÍõðôØÒðìñáÔóïóáÖù÷öàÓúõôßÑóöô àÕüõ÷ ßÔù÷ö ÜÏöõóØÐùøòߨÿööÜÖüóô×ÒþøõÕÕýúö ÛÒÿúúØØøúäÎÿýÒÒú÷÷ÒÖýûøÞÐûúù ßÕúúù åÝúÿùèÝúùû ßà÷ûúáÛúüû åÎúüýÚÍ÷øúÞÑûý áÒûþÖÛ÷ûú äÜÿÿ ìÜþçÛýýåÝüýìÜýüý"øÝýÿùÞøüûýåüùüùêýûúÝøþø êÔî÷ñ àÒüùÔÈùúÌÈöøù ÑÔôùøÛà÷ÿúëÞîõõ ëäöø ëàòøõ èÛñ÷õåäîøó ðÝôýöñÙûÿ÷ ìâñýóêçòúôïæù÷øâ÷ýøøÝõùöôÞöûöíèöõùêùøûäöüôúìööàøþøþãøþ÷ûâõýõ÷ßøùôÚ÷öùÞúùöäôö$ìúù" çïøôêëùòéùûüæûýüèðûø ùäöûáúþøâñûö íãòõõéØõø âÝñüð êãòþïòãí÷ïõÞøÿõíáóþòôæðúïþçôñâõúõûãñðýØóþðôàðïúãöúóùêòÿñ äõôüäùõ*åôÿñüßòÿò÷ëôúð(ê÷ýóáõúòúäùõõßõþòöÜõóòäóÿñýêôòúßô÷ñòâòÿòîâðúñêÜñüô çäðûòôãðôñÝñüôéãðøòëÚðýô ââîüôéÜíûö åæãííóãàøñ ëáéüõäâïþû çàéúû äÞçôúçÛëóúçåèó÷ôÛåù÷ èÛçïõæàãðòëÛéòöãÛåôó çÝæñóæ×âîîâÜæññâáâòï æÒèòñÕÎäëíÓÉåëï÷ÉÐäííøÍÛçøîØÒäîïÒÕéòòÔ×ìóô ãØñüùùÜÐé÷òùÕÚéññ ãÓèîò äØéóôãÓìøôÝÏñ÷÷úÓÓíôôÝØíú÷ߨðýù ãÜï÷ù åÚìöøäÜïùøîãòúúôÚóõúëØì÷öèÞíñõïÝìõöèàìööëØð÷ùÜÛëòôâÚìùõêâéñóóÜíöøæÞæïòéÞìõôêâéïóüæñøúùÝïú÷ïâïõùóæíñøôÚëð÷éÛáèñçÝëôø éÝíùùæ×í÷ø åÛæðõäÕêóùàÛìôøâÓíøûÜØìõùÿßÑêöúùÑÚèñùáÞïûÿëÕïóýâÑìõùûÖÖëùùÛßêïø éÚéóýýßßêòúêÔìøüÿÛÙëíú ßàñúØÕòðÕ×ïøþÚÜëôü ßÒêñûÿÖÕëîúôÑÙêøý×ÞêòýâÚíõÿáÕçëú ãÚéñû éÙëòü âÖðìÿØ×ìóü áàïõìÖðð ãàêìýñáììþõÞòòöçñïûåú ýäúù ä÷ù þåîìùãòó÷àìòëØïð åÛíñþëÚîòýïÝòñÿôßòôõàðòéßîôþïØñõêÛðñÿßÛðôþ àãíôýíÔóýßÛïðûäØðñü ãåïðû óàôúòÝðòý ðáòóþîãóøÿòßóý íßôúìàñõþ èáôôþìÛøû çäöõÿïÛõú íàóöþ ëäñöüéÖô÷ýáØòöú à×ñøû áÙòùû áÏñòúÕâïôøßÜõüû êÜðó÷ðßòúùôÙñõøëäíôõóàð÷÷óàóüú ôßðó÷ôÞïú÷òÙð÷ø æÝñùøéäôýüðÚóøü çÛïó÷ êÖðöø äßòôøéÝøúüìÛóöùóÓùøþâÓ÷üâÕõ÷ú áÒêò÷ÝÑòþüÖÕû ÝØÿäÓöûüáÍõùøáÑò÷ô ãÔìõð âÒñòñÝÜîóííÚôøòïØöóôîÜöýöñØôñóåÚðññ ÜÓïöñ×ÚìëîÛÚíõñàÝïöñåÞïííóãòðñÿãóõóþÛûúù þáøó÷"Þûúú!ÿàóîññâôòðä×òõïÔÝíïîÞÓñôðâØîíîáàëñëçâíôî ìæñîðÿäöôô( àø÷öÿâö÷õýã÷ù÷÷Þ÷üöóßöùõ ååðôðñÛñòñåÒèéëþÖ×àäåßâêöìîÝññððÝïõí óçëíìàôúôúß÷ùøùÙøùøîÛøúù ëäôüõößõüøçÔëðïÝÚîôð äáîòï éÕñøñûÛÜíîîãÕðùðáÖïîïæÕ÷÷óéÙôùõìÝ÷õöéØöõõ æÞ÷ÿõñàöûö ôßëìóìäéöôñãõ îåõÿòÛóùý çÞðôøãÛïøúâÜëîöíêðõûüëîôûÿíîõúæìõøøçìîóüãïõ÷ûçïõõúëï÷õûáíòõ ìéê÷ô óæïôõ ñâîû÷ ðåêõôûéïûõèîôõ øàðù÷ïãïôô îáïùô ïàíôóòäò÷ôáðõö òæòùùöäõþùïÜîõôêÞíõô çÛôø÷ÿßÞïùô äÞïøäÕóùÙÑñõõÿ×Úóü÷ áÙõÿûßÖôúÝÚôýûÜÍüÍÍùýÍ×÷üûÚÓøü×Î÷üûÎÑùýüÔËúüþÿÌÍöüÍÊûÌÏöýüÔ×øþ ÝÏöùüüÏÏôüùüËÑóûùÏÖøýýàÓûüäÛ÷þþ ê×ûüþã×ôöùÛÖöûÚÓööûÿÙÖôñùæÖô÷ûéÖúýÿìÚûúÿëÕù÷þâÖ÷öûæÙùøÿâÖ÷üý âÕôõûèÕ÷÷ûê×÷óù äÒôõùÚØóõø ÞÓòôõÚÖìîðæÓòðôàÓôúö àÕïóò áÝìíòíÞñõ÷ íØðôõåÑìíóÙÔïõõ ÜÝíõõèãðõöôÝïóõéÚïñô ãÓíîóÚÕìòôàÚñöù ëáõøü ëÝðöùâÞìò÷é×ñøù ãÕñøø âÖëôõ çäðùùúæòúüúéò÷üÞîñúîÚëíõîàï÷û÷ãñòþùêøøåööüâîïüöÞììûóßõ÷ñäîîüõéîðüþëïóüæðòþûäñôýýåòöýúåîî÷øçñð÷ ýåðóøûåðï÷þâðôù"ÿàïêù&þâæêôúÞóñøðåòù÷üÞøúú÷Üïó÷òÖðöúêÚïø÷ëÞñúöóãðòöüâôúüõÝñöøìÝìõõëßîòóðÝðù÷ëÞìøõðâï÷ôøæìöóÿãðøöößï÷ö ëÛéøïäÝêòîåÝìöïåÚìöïàÞéöíæàïøòðáïýôîßóûõîÛòüõ åÝïúó éßîöòôÝðýô îÝñúó îÝîúõ îãíûô õäôüö ñâïö ïÞëùôêÝîüô ëÝðû÷ ëÞñøëáôúöõÝöÿøñÞóûùðÛöþúíÝôÿù ïáóû÷ ðàñúö ïåíúôúèñú÷äøÿüþåõüùýáòúúùáðù÷÷áðöõöàîþöóÝñþøêÛîôõßÙîôóÝÛîúôá×ðýùÛÖìõ÷ØÙðùùÚÝòùùáÚóý áÛðöú åÚóûúàÔòúúÚÓñùúØÑòùû×ÕôûúØÖòøûÛÓùýÿ×ÔñûüâÓòñýØÙæõúÚÝò áÛø ßÚúþ ÞÛíôÞÞïúéÙñõßÚíñ âÔíïÚÒêòÿÛÒïòþÝÖëìú ãÞìõûðÛðòýèÙìïúÝÜìî÷ßÝîëø âÛðñù åÛïñùêÛôöýìØòôüéÚð÷úåÛîôøâÕíô÷××îìôÛÕêïôÙÔìïòÕÓëóòÒÓíóôÿÑÓìóó×ÖðñòÚÙðòô àØâäîÚÕÞêîØÒçõüÚÐð÷ÜÔåìÙÝêû ãÜëî ã×âìÞÒäêÞÓáé äÕçíæÛéëíÜëñÿ êÛéëûçàçïüïÜííüéÜéî÷ èÞëòø êßëðõ æÚðòõ áÒîìóÖÔìòïØØíïíÞÜîòî åØï÷îâÖñ÷îá×êòëàØðõïÞÜìòëââðöë èáôôêîäýüðòÝøòííçò÷êüèõîéýæìîçõÛí÷íçÙîùëéÜüòìßùóïÝøòçÜóõìäßôøì êßóúì éÝôøê ëãôûìñáõùìôå÷ýîøåùýïøàúîôÝüýðôÞúþïóÛýò éß÷üí éÜøí èâøúîðäûüðòãüóëæýóñêùÿòþçõýåûùðýáüþó÷àýóøâýÿôúâüôýáýõûèÿõþãýýöøåòîóüçõùû!çüó!âöìøãíë ûãùìÿãõîæîçÿÝîìòßåÝ ïáòó õàæßñãÕÚñçáï÷çÜóúãÓëðäÉäôãÊä"öæÄë%øèÇê%öâ¿Ú îßÃÞéÜÇà åØÇÞãÛÏßÿêØÚîäÞÔâô îßÞîõõÙãôô æÓåñîÛÏëûî×ÐêøçØÐðýæÙÖõþå äÕùæ äÕýåà×üà áÕáÛØÝèÖ ß çÙßäÜÝ éÛÞ èÒá âÑ ãÝÒ äÚ× äÚÜ ã äÚ åéÕüþà ÜÕ å àÒñ ÞÕùõéÝøöýíßøìñãïäöäìÙùâäÒ.!ûáßÃ6ýæáÅ= çÕ¶9 çܺ9#èàÃ4%åáË,úâé×$õÝîÝîßñãíÝùöòàþõþóÙýþöäÓ òÑÏåúÊ× ã áÖãâÏ ØÚÌ ÓÙÓÐà×ÒàÔ ÍßÔÈÜÐÄØÕ&ÄÛ× ÂÙÙ¿ýÖÕ(ÃõÏË.ÂðÄÉ)ÁýÊÌ)ÂþÑÒ"ÃÕÐ%ÃÒÑ%ÅÐÓ"ÅÕÏ%ÈÔÔ!ÅÞÑÇÜÓÇÚÏËÑÎ ÈùÌÐÌ÷ÍÊ ÌüÑÕÏßÐ ÕÝÕ×áØÙ å× Û ãÙ á åØã åÛ åî׿ åØýæäØéçÓÿì àÒ ïÝÌÿîØ×þùìáÓöñùÝÜøþñäÎõýôÛÙ÷ô ãÔöýùááöòù ñßö÷òßóÿíÚòòþáÙéìû áãð÷î×êíÿ êØëõü äÛóø çÞÿ èÝþ âÚþû âäüïÞõñíäïõòäòôõÝòôìÖñïïÑíð ãÒîñ ÔÙäç ÚÞèëâææêùìàäæåç "áåá èàï ßáÚ ùãàå ñèÔÖïäÜâ ìà×ÚóßÙâôÔÚÞëÛÚÜ ãáÔÝ æåÕÜ ñæÒÚ üæ×Ùüé×ÜùÑØë×ÚûåÍâïâÎÍ èÞÐÝ èáÍÓ õ×ÐÑ òÐÓØ âÓÝÝèßäâøçèåñìßÝ íëäÙ ðæââ ïëáäþëãÜ éâñÝÝÖ óØÖÞ êÕØÚ äØÞá ߨÛà æàÚæ ý×ßà öåÝÚ&ìÛã úøÔÚ #÷×ß é׿ ÷àÖÖ íÚØá ëÝàâòßÙäîÝØã æÙØê ãÖÖÚ éåØÜ öäßêöîØëýõØç"õØàåÔá ïáàýæÜéÿßÓøþÚÏ-øýÖÎ,÷ÙË0ïôÉÈ;îòÃÌ-çüÌÙ#ãøÏè!ã èàçååéçßþîÜàô êåÝóîæÙóîÝÎïÿíýÔÎêûëøÓÖç÷ï æåìûö÷èìúôâæìöïãàîñíéÝèïüîÝæñýçßêôïæñ÷øíã÷÷õñÚüôòêÒøóíàÑùîì áÖöëïâÛúòó æàòìñêÚòêôäÛóêö æ×èâôèáêäö ñáèáöîÝâÜóåÝÞÝóïÛåßùñßßÙùüãßâþ&ãáÖþöçÝÖ÷éÑÐö øÛáßþêÚàÛù èÜçáúêáéÞüïÞîäóàãÜÿýÞäàöååäùåßÜü÷èÝØûöìÜáüúåÞ×÷ëâèäßâúåàãûâÜá òÚÜâé×ÞáòÚØàóÛÞæîäÝÝôâÜãðáßæêâÜë÷äÙâÝÎÜýøáÑò ûâÕòàÊÿ ðÞÁ ìá¿ùÙÇ $öÕ½öÙ¾øïãºí ñæÀø ñåÁ÷íâÁêîÙËöâÝË÷íÛÑñïØÕì ëßÓöýíÝÙóüèߨìøêÜÙðôóÜàïô÷×àîõðÛáóóòÜèó÷ëØéôôßÖëôó÷ÚÊðóðëÏÈêïêéÇÊëïéüÎÖñéè áÙøüíëÚùîëæØûòë ãàùóéõÙýìåñØöêóÝ6íñÛIèë×VÿæéÖaüåêÜcñåóÝaîåïÐcûë äÎQïáàÑRúæÝÚDêÞæÛBïàìß>ðãóÞ6ìâñÝ4ðãïá+öáñÚ)ïàçÛ!ðß æØìÞãÒõáÜÕöáÝÐ÷ãÝÚúàìÜûäëà õãòÝýæíÝ þåïàùåõÚüêîÛêè×ýçâÓüþå ÜÐýç ×ÑûüåÕ×÷æÚÔúéÛÓûìØÑõèÔÕöëýÖÜéçüÞ×õíüÞÕïé åÒïë ÞÓó îÝÕú ï ÝÑôïÓÑøóýÍÒûø×ÖôõÞØööÛÓòöÕÑìñþÕÍñòúÏÒé ìúÑÓìðöÌÎì ïøÊÔæ îÔÐíóÖ×îõÛÒïöþÒÛæïüÙØçòòÐÚã ï÷רæ òþÞÖèõ èÖê÷äÛëöæÞé÷æàäóçÝâñýÝÚÙíáØâ ð çÓå òãÚå ðëÛæõ ðÛêûèÖéúþÚØæöþØÜäõ ãÝãô éàÜ ï éâÝõæéÞøïáä*ôàäá*þæãå,ìÙÜüæÚÞù éÙßø êÙÛöì×Þ÷éááø ôáãù÷åáöçä ÷øååöòèâõ îæÜüïëêàýïòáãýðìÛàúî îÕáûïçÙäøñåÙâ÷ðߨä÷ì ßÔàòê ØÚáïê ß×çñîÜÛéõïâÝíóñ äßëùõ åÜéùôÞÔêóõþÜÐé÷ôù×ÎëòõØÕî÷öàÚï÷øèäëñôöåìïôôãíîôòãìëóõäîîõõäððöùèòð÷åóïùåóêúÿåøîüÿßöðýûæ÷ìúèõòüãæëòøìéìù"íôþäú üæòþ üèýÿáö÷ ïâòðëÞðòç×ñëíÔòì óØ÷ññâõðôè÷íóãòãûèæìãø æàðäûæÞôíüéÝóæû ëÚöîýæØúîýâØ÷íúé×ôà÷çÒúêúåÐûéúâÏúëûæÓþêý íÞñúßþåýðãõêù ìàóþ æÞù ÜÜúßâðýéßíýáØýæ÷ÜÜûìøäÝîúèàðüñàóýñÝîÿòàðþúâðþôâíûîÚïùéÛÿè÷íØÿìø çÛþìøôÙïýñÛüß÷êãõã÷õèüîþþêô æþí öàþì óÙïéÛûí îÞøåôÖûè àÓûáÛÔôåÔÛùäÿÙÞñÞýÙÛóÛü ÞØôÞÿÜÖëÝû ßÖóãüèÚøêò×úçëÖøïèÖøãëÜçÖùòÝëÜçæõç ìäúìéâðÜêàòÚ íÞëÙêâèØïæåÕñääÖüîßêÞÿíÙæÝýêÒçÜûÚÜâÔõ ßãçÜöèäéà÷îãëáùõÚìçùìÙêæú çØèàõçÕæçö ßÖæäõÜØæâóÜÑéêôØÐäæò ÝÓçæðÝÛæäï ãÞæëï çØçèï äÖëðð âÜêîðîÜñûóïÙòøò çÛðùñ éØóøòäÖõüóãÑïùíßÖúò ãÚóð âÕõïÚÚôíâÚø ð âÔ÷ðàÖúñ ßÜøòå×ý óÞÜ÷ ï åØúóÞÕôî àØý ñ çÝþõ çÛü òãÞöî áÓûñ×ÐøîÚØ÷ïâÛüó æÛùñáÞþòéØóí âØôëí×ü ÷éÞÿîÝöùðÛú ûí×÷õìÜôüôùÛøøûáúöúâõõøãõòøçõðûÜôîòßðîùßöÿòýáôñÿßôñúâíê øàïþë ÷âïêüáñìÿÞñìýâòêÿåðýéûãñé õæïêöãïþê ðàñé ðÙñêäÕîéâ×ñìèÝðìîäðí ðâõð êÝïíâÛìþéýÝÚíÿéßÝðìáÝïÿìááñÿîäÝðïáÖðïÜÏðÿîÒÐðïÿÓÛñÿï äßõô íÝòó ðÙñúô äÖíûðáÑðÿòØÖïþó ÞÜòõçÝðûôêÙóúöèØôþøêÑíúõáÎîøòÙÔðøö áÜñù÷éâóøíÛóùø éÛìôöåÛíöõ åÙñýù çÜìó÷ïæîøøêóþþ âòýþúÜìñúì×åéõ ãÔíõùà×ñøûÜÐôüÿÿÏ×í÷ùÙÛíòú åÞéòø æØëõúÜßåê÷îßæïúñÞàðù ëÝéýåÞéü ñÙñÿ ëÛèöîÚíüëÕèêÿÙÙãêû×ÚãíüÙ×çíýÝØèðÿßÝßçøêáåîý÷âéïþöÜçìþ íÛâéü êÝäêúîßçïþòßçëþ ñÜåêý êØäëüáÚæîüÜ׿êûúÐááã÷áÞåîû åàææúçÞéìý êÜæíÿ íÜèòý ñáçîüõâêëÿñáèîÿðâéòòàëóóÜïö ìÚëõçÚèìÿ æ×ìïÿ èÓíòþäÙëïÿ èÝéìÿêãëî ðìëðÿÿñéëÿ éíòëëñ äïôòæëòôÞïìêÞêíÿëØíïàÔòûÚÖñð ÚÜìòÿ èâîïíèíìúéìí÷çåçÿ÷êçíþïô÷ èôö úàñí ëÚêìâÔöó ÚÙïë ãÙðëÝÚìíØÙñòØÞïí äÝððåàìôíæîòÿóæîïþõåñöòßëôûòßïôýößóõÿóáôõüòÛïõú åØðôøÜÚðô÷ áàîõ÷óãõùýúÚöýÿ êÙòöù åÜôôúèÜùýú íàòùøòÞøüìÝóûúêÝõýøéÝôûö ìßóùô îÞòôôïáõø÷øÜøûðÜôú÷ðÞøýøñá÷úòßôøõðÞöüøîãúý÷ùÞûùîÞúü÷îÝøþ÷íßöüõôàùøõàýþùûÙ÷ø÷ñÛð÷ ìÚø ÿêÝøÿêÝùýåÛòûÿ äÚõóÿçÓòñýÞÔñîøÜÔññù××ïò÷ÙÖïóö ÜÛðô÷ æÜôûùî×ôñ÷çÐóòõÚÏóöôÑÔðñòÔØôîñØØðöóÞÜóöó ëàôóô ôàòòñ÷Ùðíð î×êëíæÜìéí îØòóï éÕ÷ýòäÒôôñÜÐóõîÓÕîóìÕ×ñ÷ïÚØöøðÞÛóúîàÝò÷îèÚøøò éâòóîøÞ÷üóíÞôõíòÚ÷ôðñÑ÷ûðÛÍô÷îýÐÕïóéÞÛòöíìÚ÷üïîÚøöïêÚúùòìáúüôóåøþòôèøýðúåôõðüÝõøï î×óùîêÙùýòíßôôñòâöõïôâóúï îÛðõíæÖñðì åÕòòì à×õøïÞßñõïíãõüñôßó÷ïóÙøýóéÖ÷üó ëÑ÷÷ êÓöýôèØõýô ëÔ÷öÞÐôûó÷ÎËîòì÷ÈÆíñêúÉÌîøìÓÓñôìÛÝðýïåßñ÷ðéÝóøð çÔòöðÜØîõîã×ïóñêÏùÿù ãÑòøó æÕôüõ êÞõúø íâòþùìéïý÷ùæøûøåôüúôæôýûôê÷ý÷íóþüõíñüúôéïùø ðßìóõâÚêóòáÓèíòàÐîöø ÙÔñóù ÞÙðûù áÜîùú âÞñùûçâñöüëãñ÷þçêïöý êìðüý ðèë÷úëçìõù ìÚí÷úâÖê÷øûÛÑèð÷÷ÓÓïôùùÑÓêõøüÑÓëò÷ûÑÙíýûÛÖîøüþÕÚêóö áàíô÷ðÝï÷úëßìóùíàï÷ü ðàîúýíØðùýâÜîøû æÕñùüÜÔî÷úÙÐëñúÕÑòðú ÞÚñóý éÚôø çØøÿáßôôðÛö÷òÞöø÷ß÷üòâðõôäóòõÝ÷øèÙóóäÚóöý æàðòüóÜòôüñßðñúûßóôüüÛ÷úþöáïóúüæóùûêôóüßôôúîÞðõøìÚñòö ßÚðñôàáíöõëáñõöíÝîõôìØïöô åÚîöô çÚñôôéÞìöó ëßîôö éÝïõõ çÝîø÷ åÛêòò æÛì÷õ èÝîôö éáðöøéÚñõöÞÙí÷öÜÜðø÷ëÛôúûïÝòüúïâó÷úôâøúþõÚïðùçÙçéó æÓðõøÝ×òúö ãÛðõö éÞñõ÷ìÝòõøêÜòú÷çÛñ÷öä×ëôó ãàêðòòßñù÷ðÛïôö êàñ÷ùðäñúøýß÷þþâóöúæôýúÿäðôøøãôùùòàñööóÝñöùòÞõöúôãôöùøåðúøöæññ÷ùäóúøøåíîöúäíòôùåóøùäóóýúèíõ÷éïï÷èòõù ßðõûüÜïöùúÝñöûýàòûýùãóÿþýæò÷üèïøùãðõûáïøøýæíðõçð÷øëîõõãìðööáìôóñßðóô îßéññòßëòóòßêñðóäîõòùæïúôõãðñóîÝìïï èßîôñ êÝðñòçßëùò ëÛðýôâÚðóòàÙðøôåÚöú æÒøüùÝÒñøöÿÜÕõÿ÷ßÒôüøýÛØôÿ÷âÔêôöøØÙìõôâ×÷àÕýýÙÕõÿÛÔõýÙÕó÷Ú×ïðýàÙõûäÓðøÿÙÕíñûÜÕóïßÕðôý áÖôùÿ âÔõ÷þÜØò÷ü áÙð÷ûáÔöøûÖÓõýûÕÓô÷úÕÓïôõÚÒôøöÖ×ðõôÜÔõö÷Ö×ïõóÙÙõ÷øÚØôóô ÚÒõù÷ÒÏïóòÿÐÑñõôÖÔõøõÒØññóÕÔöü÷ÑÌõõöÏËêéðûÊÍåöïûËÒïøýÏ×ðþøÕØöüÔÛïûÝÚðøúàÙêóõÚØðôöרìòøÛÙðùù âÛñ÷ù ãØíôôÛÙïöö ßÖð÷÷Ü×íöò á×ðñó çÙïíó ëÙôù÷ èàòðóóÚóö÷ ëÚðôó éÜò÷õïÚóôõ ìÛòõõðÜôüøòÚöûù æÛóöõ àÚñðôÜÜïôòçÞóùõ ìÚóøöíÜòú÷ïàöù÷óâô÷÷ îãòõ÷÷ßôöø÷×ôó÷ ëÙêéòîÖïóö ìÔöüøæØòùöêÜðõöïÛò÷ö êÜðõ÷îÜóõø ìÛñôõ åÝñöõëÛô÷øíÞóùúíÜóõù åàòøúìãöûýõæóùþüåøúÿÞçïúóâåñøøàôÿ ïÝïúèÝîü ääéüóáì÷ðàãëü ìàæïüìååîùõâèðü ðáãìøñçåî÷þçíñûüëîôûêèðøèìôúýâëôøíàéîóìÙëðô áÝçïð âäìôòïÝðóö àÞï÷ñ åÛíõñá×êòìßÙíóïãÚïôñ çÝðõðëÝñóð íÜôõññÝõúóïäó÷ñùâøüø ñßôüõðÝõþôíÜöúôìàùúõìÞúÿø èÝ÷ûõ êàóõñõßøýôöÛô÷ò íØ÷öô ìÜúþõïÜûùñÝöûöôØù÷ëÛùý÷ïàüý÷÷àüüúîãûùíäøùíáøùìÖøù÷àÚôùõðØûûîáúþûùáúûóâôþöðÙöù÷ äÙóøõéäòøõ!ßûÿüùßõùøñáô÷öîáõöö ìÙ÷÷ö áØõ÷õ çÖ÷ù÷êÍùýúÚÞññóõÝøúúéÛéíðâÛíõö äÜðþàÞì ãßî ëÝñ îÖìúÞÛæöæÚêöÿçÚéõþèÚíõþ éÛì÷ý ìàçòûïßïøþëÚì÷û æÙîõø éßñòùñßïõøìèïö÷ôÞò÷ù êÙíðóéÛñóô æ×ôøõÝØìïñßÙïðòßÜîòïèÖòõòß×ìíî ãÓôôòÙØïðï ãÚ÷öõäÕñòñ áÙô÷ñêÙøùöäÚóóòÜÚóìðÛÖôöóÜ×õöñÚÛ÷õó ãáøøõ êàøùöêßöõõìØúöùåÕòðô âÜííñ éâ÷øöðÚüöûâÚôõôåÜñíòäÛøôô âÕöôõ ÞÖñóò âÕøù÷àÚúõ÷áÛöûóäÙôôñãÛôîòäÖ÷óôØÒíòîþÏÒñóÖÕõóÜÚñ öÝÛî öÜÖöúרìÿñàáêõôäëöûÜéùêÞãûýîäæþ ÷äÎéðëËØ%õñÍÊ9ñÈÐMð¾ÁR ê¿¶O 仾Iá¾Ë@óèÁÕ1ýìÉê&îÐñèÚû öØàâÓéõÝÓð íâÚúæ íÙáäÙ Ú âÔ#ÕÙÏ%ÏûÓÕ*ÎÞ×ÉæØ"ÇçÜÂíÙÂêØ ¿èÕÅçÕÄçÔÆã× ÄãÓ ÆÝÐ ÅÛÕÉâÔÉ ãÚ ÐêØ ÑáÛÑ ç×ÔãÙþÖ æØÚ ãÓûÜàÒùÝäØþ÷Þ æàüóàóçþöäþæðæüáýðèòáøèèöãùëëüÞöçìñãðÞéöèóçï÷èôáðùçõìõüäôåõúáõëùûãñÜ÷ÿÚåëö éâéõý îßéÿ éÛåäÒà) ü×ÙÖ!ãÝØ+áÜÕ,ÜÜÎ!ÿÛÔÍûÓÔÕ#ýÒÖÍ ÕÖÒ ×ÙØÚÖÕ×ÔÓÕÖÖûÚÛÖø ãÞÞýìÞàõìáàð ñàáí ðÜàê éÚäë æÒæë Ú×ãâãÙäß ãÚåÙßÕäÚÚÐæ×ÕÕç× ÛÜêØäâìÑîàêÑíàçÒ èÙïÕ ÜÔðÐ ÞÙðÕ ðØòÑ ôâôÕøåõÒ öÞöÐ ç×òÏàÙóÏ âßôÎ òçöÐ!ç÷ÑãúÔøßöÍ ëÜòÉéÞøÔ ðÝùÙ ñ×øÑ ê×ùÖ ëÐùÒ àÒöÏá×ôÌéÚîÀÿðÚüÅðæÄáÃ$å ¼.æÃ!- ç²,å·ßÿ¸ñßú³ ôßÁ÷àÁ öãùÂýåúËåúÇéøÌÿ#æ÷Ìýåù×ýçøÕþ' äúÛÿ#áúÞüúâùáúôßøàùíÙøâ÷ æØòæòæÚøéôðÜ÷îô éÛøñó åÚ÷ëò àÓÿôöØÔ÷ñó ÝÛøõòêÜýûôçà÷üò äàûþóëÞ÷ùó êâôÿï ñâóþîíàôð éßõî ìÛøðéÜòÿî íÜú õ ëÛö ï êÜñî ëÚôî êÛô íäÝðëã×ï êÿØØí èýØÚï êáÕ÷ñÙØöïרöïÚÜ÷ïáÝ÷ñ æßøñ ëÝôî åáõî ìÜøñ èÙòïßÚñíàÛöï çÚôïäÙä çßÞëìëãôøóäéùñâÞù ðáé!õäàúìâþìèþããû ïÞßöéÛæ÷êØáô çÛäó çÞâð çÞäñ äáãîçàåîâÝá ëäØèðÙ׿íÚÕêïÚØçîÛÚæíØÚçíÕÚçë×ÚèìÛÛíîÿÛßèíÝßìïáÙëïýÜÔëîØÙïð åØôôçÞïò òÝëéð×ý ìÝÕëÓÖïÛÑ#ñßÙ0ôìá9öóÜ2ýîè×*÷ìÜÑ õçýÎÏ ùæúÒÎöäþÞËùçáËùèâÕ óä ãÔ ùèÜ×øä ÜÖøæ áÖûæäÙþøéëÛûüëéÙüûëßÔùÿë ØÔùùë×Ñòûè×ÒñûéÿÕÓñûë×ÕðÿïÿØÒëüîÛ×ïò ߨãöì ÝØàöéÜ×èð áÚñúö éÛëóöëÝîøùìÞñýýïÛð÷ýìÛéúû ìÑåùúáÏàôöýÞÎãûùüÜÖáô÷àÚáûø æÜÞýöèÖáøôáÛÜöòéÛÛóôïàÚñôùÝÕìòöÝÚ÷õíàÖùòëàÛÿö ðÚØü÷ïÙÙü÷üîãÓõôüãÊòòïäÆöéÜÊýÿÚÕÂ×Ò¼ÜÙ³íãµ# ûæ¥úܰ æÐªùÎÒ±úÖѳ ô×Ù· þíݾôà¼ïáÄþÛÞ»ûõÕÚ½þò ÙàÄùòëãÇùóõçÇ÷ñýåËõñùãÍøïòÝËïï ëÝÒóñìÜÙûõìäÔññþáß÷÷øÞÜïñìßÝóïáäÛèìêëßíîÿðãîïçãéðùàæéï ÷×éóôñÌëïö âÍòïø ãÓöòûèÑöîù äàñæô òáëÝîíÞîÑçßàíöçç.ëñ øéAéñæMîòäVî÷ÞHÝí&ØPí÷'ÕKäö"ôØ>Þñ óÞ<èô!ûã3Ûðÿì2ãõñ+å÷%ô'âö&ð"Ûõ ìÞòÿæØïóçÑíøäÚòûäÙ÷!à Ûù&æ Üø,ê âû%î ãþ%ïÛü'ÿèãÿïéÿßûîèþãýèèýáêäúäîæùâñáõåêÞðáÿäÖïßÝÖëÝþÞÛîæäâéßìáíçéßêèåÝëêæÕáâÿÞÔçæÿ ×ßñëêâùîïßðçÖëÚÐå ÙÉêÒÎëÛÒíØØýèÛÛûð àÙöì áÝõí çÙóì áÚìêýàÙðéßÚééþ ßÕíîÖÓçìøÕØãèýÝÛçñþàáãçý èæâï îéåôôàâõñÞÞóóÛÞîôÙãòêßàóÿîáâþìàÜòï×Ú÷èÖàúìÚÞýèàÛóÿæåØ÷ý ìãÚü ìÞÝøöÜÞýüâä!æâýÞßüñÛØ÷èàÚöêãàíßÝèÝÙùþíÙÜÿêÛãíââôàâ óÛäÿðÔèèÏçþåÐéäÛäüäÝäøÝÜçþÿÞÒäþúÌÐÜûøþÊÔàüùØÔãÿû áÙãü êÖåýåÓèþáÓäþúä×åû êÞáø÷ðàæùèÞåû÷àÚäüöÜÛãýõ êÜèÿù ìÝçüø ìÞåþø ëØçþöäÙâùóíÐë÷êÊíúÿâÉíýøÝÉí÷ßÑñöìÕñõëÕîûó äÔíýðÞ×ëýñÝØðüñÿÝÝíþòíÞíûò óÙáúí îÚçô óØï ñÖîéÔí å×é ëØåîÞæôÝí éßåþý æÞéýáÜéýúÞàåþõâäé÷åßïýøàÕîõÚÕê÷ïæØìøðñÙ÷üöñàõõîÜõüò ãàðõî áÜñ÷ëÝÜòòéåßõóë ðâúøð òâûúðéâøóí æÝóíç ßÜñïÞÞ÷í ãØøóåÐøóâÖøôéÛñðëÛöð áá ðëàÚ õí÷ÜÞ óíþçßòë îÞ óëôß ñëõäîéôç ðìðâ øìèä ñêïáíêí×ñëçÕðêêÖñìöÐ ïî ìÛòî îáõðîäûëèêçúøêìêñìæôéèÿôïêÿõûæýüóóéùþñ÷ÞÿþõîÕüôà×ÿúôàÕüüò ßÖûõï ãÖþøñæÛùõîíÛøòïðáýòðîáùõî æÝõóêÜÜõêèÜÞñìé äÞö÷ïèÚòêêúߨìòåôÐÝ÷ éÚÜþéÝÔæ ÕÕã ÔÑ!æÏÏâÿÊÍåÿÈÏÿãÒÉù áúÉÍúäóÊÎôáðÆÖ÷äúÓÚóþæÖØõçÔÝöøæáßõôçâàö÷éàæõöêíçõñïïáôìïèÛîæìáÕêãî ÜÐìâîÐ×éÝñ Ý×óäþÛÝñáåàëÒ ëæáÌñèíÐ"õåéÉ&!÷âçÆ)÷ßèÄ)óÜå¾&ìØä½èÓá½ç×á¿#õØéÉòàâ½öãçÃùèãÆ çíÏ%äÙ¹ùæØÎ ÞâÜ÷åàÜ!áÝ×&ùÝÑÚ( òÝÔÕ+÷áÍÓ*ýçÓß0ÿêÌØ)þíÌÒ!åËÓøçÊÓüåÑÚøãÐ×îâÕß óÞÜä êãÕÚóäÝçúâáëöÞäìû ìãßèôõäéôøúâèðò øÜíöò òÛíôîôÚõÿð óÜõëñßöþëôÞõé ô×ùèéÜúâóÛýãòÞüáúßûââñÞÛüè øÚùéüØò ùÛýó öÝõ ÷Üõê ðÙü êìÚùçñÜöãõÝêôÝÿ çôÝü ãøßþ ãüÚ äõÚâ ùØ ä ûÙ âöÙã êÛÝ èÜÙíÞÚóÜ àòÛßóØ ã íÕàêÔ âäØÞçÙ Þ ì×ÞàÖÞÝÖ Ü ÞÞ ßìÛá äÚ ÞåÖàáÖ áæÒ åæÔæéÖ âìØäè× åà× âàØàáÝ ã èÞ ç ïâçôÜ çéÜý ãçÛ æè×çäÚ ë ìÝ îïÜí æÙê ÛÚþèÝÞþéæàùê êÜûëá×ûìÝÞùí íÝ÷ëæÚ ñâÔ ëÚÐíÙ×ê åØçá׿ØÓ'çÐ× âÖÐÙùÆÓ&äýÍ×àÚ×áþÚÔÞûÓÑàùÇÐ âöÂÊÝðºÎþÛýÆÒÞÌÓüâÎ×üæ ÖÖúýê××úüëÙÞóöë áÛïõìÛØèïîØÚçìî×ÙîóôÕØéöô ÚÕèóõ ÙÚÜåñ ÜÜßïù àÝÝéû áÞÚæú ãáÜïÿ èáÛì ïÞÛç ðÞÆÚìÝÂßèàÆè îåÆï$üå½é2òð¶ç7êºëDûå§Ö:ùå­Ó:øè©Ð4üè¬Ò4öæªÎ/÷æ®Ñ- ôæ²Ï,÷âµÒ,òÝ·Ñ&îÞ³Ï"#òàºÑ íã¸Ðéâ½ÔææºÏòâÂÖçã½ÖìÝÄÖãÝ¿Î çØÆ×æÕÇ× áØÉÚ äØÍÞ äÛÊÛæßÎÚêáÔÝëáÓØïÝÖàêÝÓá èÛßæ äáÜëóßâì øÛàæòÚàë òÝßçôßàéóäâíöâåïùãçïùèæéýêëëÿäëðöÞêò ìÛìï èÛîòïäìíýæïí þäñóõéîëýûìîòþýãåèýìÜçêýäÜèøäÛíô äÜëò æàíñ ïÞîò êÜíê ñÛïõ õØíðêÝììçèêèþöëñïþîóõæñôùãòöüøÜøöþ ðÙøóù îØõøø îÚøñøôÞûøøúàýþùùãúùöúâÿö÷øçþýöýçþýôüæüöýáþõ õÞýõ ïßÿññàÿñóßýïòÝüîîÝ÷ëëÜúèèÙýê ÞÚ÷çØáüå ääûç êÝêâÝÿê çØìâÙÿêçÖì äÑé ÞÒæßÑõäÞÒõä ØÓôáÕ׿ ÜÔè××úä áÓÿäÞÑüãØÎùãþÓÉÿùãûÎÆåúÅÊþåÌÍæÐËÿçþÍÏÿúèÓÑëýË×ÿþèÔ×íØÙîàÙï äÖñèÏÿÿïÞÏûûëýÖÏüÿêØÑÿìØÒÿì ÞÓÿí áÐï ÞÒÿðäÒô áÓ ÷áØýóæØöåÙö êØøìÕôèÔÿôãÖýÿóåÓûûñßÕûþòäØüýóêÛüôïÝûýô ïáöûñøàùûò õâõ÷ï öàõùï ñÜôöì êàòöì÷Þ÷ùîøàöøðùã÷ùñòâôøðíâöøðïçõõòùèõøôûâñõò îäðöñíàòüõçàóþöêàñøôëÝôüõæÜëñïäáíóîñãìñóõêïõöëò÷ùÿèîúùöãëòôêæçðòíãçõóíÞêóôéÚé÷óçÝéùôÿåæâñðîéÜîððê×îïôæçøùñâçýíÜëû ãÞçøìÜêù èÜæõçàäíÿéÝâðþÿâÛàòûþæÚÞïùéÜàñúçààðø êàáíøíÝåîûêÙäîùç×áí÷ âÔåò÷ÕÖçíøØÒìòûÖÔìøûÔÓëõüúÑÏíôüüÌÑïöýÑØðùý áÛóùÿêÜñúÿêÜîöþéÕóýäÚî÷ýëØõùçØöþæ×öúêÝùúñÚûýæÛñõùëÝó÷ùóÜóýûöß÷ûüûßóøûþÜùþþôÖðüû åÛõüýìÚôþ ëÚðùùìàïõ÷ïâñùùñáóüûòáñýüöã÷ÿùãøýýáøþøÞòüúðÙôÿûèàñöøóÙüÿîØ÷üû èÜõøú åàñ÷öëâôûùõÞóýúòÞôúùòÛøüîÙôúú èÝôûúîàúþóâøýöä÷ýüöãôùúîàôûú êâñòõñåóøùûãóúùýáö÷úôÛõøù ìØóûú ìÙõüýïØöüûðÝñó÷ûÛôýùõÙðôöçàëíñ íÝïöõéÛòõôëÓæíîÜÔêùôÛÕóùÚ×òÿù äÔõÿú ÝÓîô÷ ÜÒéóôÖÓäóïÚØëöòäÑèñò×ÔéðñÛÔéïðÜÙèõñäÙêðóã×éïñÝØèòñàÖëôóàÐíóôÜÏðöõÜÓèðòå×êòó ëÙíóõãÛìôôÜÚêêòÙâéëò ìâìó÷ íÝîôöìÜîîöîàðòøñßòôù íàñøúòÞóõüîÜðñú êÞíòøðâíó÷õáïòøñãíîøõéïóúúèññû ôèíðøøáñóûïÜîïøêàíñ÷ñÝòõý ïÝòùþñÙ÷÷ëÜñûþ çàñöú çãéêô êßìòø ãâíð÷ æÜññùæÝïîúîÝòöûïÙðîùïÒïðúæÔðñúçØööýèØóòû ãÝðë÷ åÞïî÷áâîõ÷ ãàïòø æàïðøëàñòø éÞïöøçÝõñû ìØõðýêØòñúóÛññûüâõùþøìñôûüïíòùùìïð÷ùæñòúõàóôûìãïíù ïçïóøöäó÷ü ñàòíûëÛïöú éÙïñúí×óùýëÚððúñ×öüþçÚóóûêàñûý êäñ÷û èæíñøïáðöúåáóòùáäñõøæãóôûëáñõú ïÜóöû çØòýúàÕòùù Ý×ðòùëÕöøüëÚôúûðßòõú óçòøú÷êòøøÿåðùûöÞõúú îÚðõøëÛðòùíÛõ÷úñßòôùôÙöøüåÝñüùçÜùùüìÞñùùðÜûÿüñÛò÷ù íàðôøìàóõøîÜó÷øìÚðúø çÛðô÷èÚõ÷úìâõúû ÿèôúú#äõöû ÿåð÷ø÷éòøùüåðøùôÞðõ÷ íÛîøô éÖòü÷ÝØïøõàÚïöö åÝð÷öíÞòö÷ìáíòöðãî÷÷ôàîõöïæëóõ÷æðûøöäêñô ðâèôõ êâìòöëÜðúüêÓçïô ãÓãôóã×ìòøßÛíõý ÞÞíóû Ûáëôü áàíõêáíòöåéë úÞæê èÞ×ß çÛÚè çØØàáÔÝìØÖ×ä àÎÛÝ ÖËÜåÐÐßíÒÐãìÕÔæóÿÛÓçÿû×ÕçöõØÔèøðÔÒïóÔÓêìØÕïèßÎñ ëûÒÍí áýËËôãøÂÎôÜýÊÐ÷ ßüÒÑö ÝýÕÐùßØÙøÝ âÙþ Þ åÙþ ßåÚü ÜéÛý ÜèÖûÜÿÝÖôÖÜÒüÛÿÓÏøûÔÐÒýÙÖÓýÛÝØûÛÞÖûÛþ×Ô÷ûØüÓÐúýÛýÒÐýúÜûÔÓýÞÿØÓüÿߨÚúüÝäãüã ìåúûå íàè éÞüýå éÛûúçäÛúþéåßúêìàþïìßû÷í ï×ýøï ìÓÿüó êØöëÙøúï åßöðêãÿô êá ö êàÿô ëçúûäúõãþ ÷óá÷êÖýôâÜõÿððÞþûõðÞü÷éÝúùïÝûúóãþùû ðåøõøéßöô÷ÜÝïóöÞáöúþ êâõñýíãö÷òÕöò äÑñìý áÕöëý ãÔù÷ÛÕöïÿÒÚîèýÛØðîØÙïèÿýÚßïê ç×òí ä×ðäêÜñè÷Ûóëöãóå ÿáóì ÝðêöÝñèøàîâøäðé !ýã÷ë %ÿãôç %ÞóçüÙóè ÷Þôì âõëýçôê #ãôîþÜõå ïØòìì×ïæ ïÜôè ýÝôì ÿäòå äíé úãòé "üãêâþÙéáæßòð ìÞòî íÛòîõÒòô çÕòêàØéäçáïñ÷æîê ÷àìêçßçåàÞæèæßéåïÞçãÿòÜäíþñÛéáÿïÛæçý ïÔççþåØéëþ ïÚçæÿ ïàçîÿôÞéæþ éåãèùòåèòþ÷äéèý!øáêðÿ"ýÞëðÿ!úàïíþùÖìïþíÚêðþòÑëòþ æÔååúêÔäêúëÙíóýþæâîôüæèëïûíåçòùðãèñùòäæï÷óßæîöåàåèôéÝéõøðÝíöúüÝìðúõÜíöû ëãìûùæêéîöðæëôù óéäîñõéäðñóàíôö áÛëóõäÝëø÷ðÛêôõîÚíööí×ëøõð×íû÷ïØñø÷ ëßíúõ õæëúôþèìõôþåìúöôãðûõñáî÷óóßðþôñÝìùôîÜöþùëÙñÿö ëàóô ñÛòÿôåÜíþðþàáëûðêäíð öãîþò õàôôîâíñèÝòñÝÛìüìþÛÛêþí÷ÚØêíôÖØéýìúÖÔîíøÏÛçýëþÙÝíîßâéí ïÛóôçÛóóêÓïðþ×ÐãêöÊÓéñòÊÛåòÙÔäúýÔÕàúûÕÖèÿÿÜÔÝ ø×ÒæýþÑÏå öýÎÏè öÑÒè ó×ÒêôÙÒåñÕÓåîÙÝåíçÝëðåÚäøçÝÜâçãØêÿëßÓïüîÛÖïûì äÜðð èÚóþïäØðùíÞÕõòØÎ÷òÏÔ÷ýð ÞÙôþîê×øýòãÜôûï æÝ÷ÿò çáùþóëÜÿõ äÜÿõäßþüô áßþöñ ÝÝÿôÚÞþüñßÜúôáÛýô ãÜýö äÞþþô ìÜùôøäûóòäþ÷úáþööâþýõôßýúö èßÿýö ãáý÷ôëåüöõæýõöûãÿøûßÿùøóÜ÷øëØúëÖùøí×ööîÔù÷äÖööçàýøöõà÷÷ñçûúöüæýô÷äþ÷øûçóøýäøóóøÞìòòÛîòñÚø÷óÑóõíÖ ÷ùöÛù÷ûØõôëØ ìðçÜåì éàïîìßòïíÛñï àÞðï ãÙóòàÖÿðñèÕýòò ìÔò÷ åÖýôõã×þòõߨüóöâÛõñòëÝõòòòÝóïóîÜõôöëßññõ éÛïîôäÛéîñï×ïööô×ìíõôÞíð÷ïßçóõíâíñøõáêñ÷øàéñöôßèíôñâèì÷òãëöûîãèôùíâêñûæÞçôûááäðøíÞèñûëßåîúéÜçöý ãããñúðäæîýòãáñûðàéúèàáõü ëÚßóýâÛÝñùãÛá÷üáÝã÷ûÞÙâ÷ýÚÚÜòøâÜâõý çßçùÿæáäõþëáèùìÜæùæÙãûÿáÚâôû äÚâõý èÛåóþâÝäõüáÕç÷ÿÕÚáúûáÛâöþãÕâúþáÜáõüçÞæüÿ åÜä÷þ áØæøþßÖâõýà×êüáÝæùÿ êÙçû åØçõþ èÚæöþìÙçõýæÚäñüåÛäïú êØåôü éßßïøñÝéú í×èöþâÒêôÿÿÚÐèöÿýÕÍç÷ýùÍÏãóûÔÏéúÕÒèøþ ÝÖåõû ÞÔæøûÝÕåùü×ÏçôüÐÔé÷þßÙì æÝìü êÜìùäÞæøýêÞêü ïáëõÿûåîüýÞìøþ ãÝë÷û àÚêøú äØïýåÙõÿäÛôúÿ èÚðóûéÛðóøêÝìùø êßïöúéãï÷ù ôÝòùú ï×ïôø æÕïõø å×ìóö çÝíøùïÙîð÷ ëØêõó èÒíóôÜÓëðòßÙîñóéÛîòôìÙíõô åØîóô àÙñõöáÜóò÷éÝõõøíÝïõöêÜîïõ èÞæèð íÜîð÷ðÞôòýøãù÷ÿãõíøàõî ðÞñçýîàòïýôÞòíüóßñíû ìáòïúëáõòúòèïîöþæòíúùÞëæó ìâéåñõßîëôôßððôîâðôóôãñðòæñôôçððóúæñòñóçïíîôèðòïýæðñïýêðóòÿèóùôñçòôòñéïîðøáõúõøß÷úõ÷à÷ûöòà÷ôòïáôúñ íàïñîïÛñôë æÝôñíåßùûñìâ÷úòûç÷øðá÷öñýß÷õïùÞõùðùãùýòäþüöþåúüõàûûô÷ÝøõòñÜö÷ððÞòöîóÞú÷òòÞøüóýäùôáýùþÜûõ ð×øüóåÒøýïØÔõ÷ìÚÛôùí äãôûïóÝúÿó êÚøûñ âÒýýôÖÏùóÓÒúÿôØÛ÷õäÞüù ìÞýû íÛýûêàüýîàÿòà îäüý ðâûû ëØýûáÕüûßÓüÝÕüúþÚÛúùÜÝùöÞÙøüøÚÛéñðàÙóý ãßûïå øåú íæõ ëåïù îâîüöàòýôáìúýôãîúüõäíóûñãìöøîßìöøêÙîõù àÖíð÷ÝÓîó÷ ÜÑï÷øÛÓòúüàÚñ÷ú ÞÚñóúÙÖïö÷ÖÏòô÷ÍÔìòôÔ×ï÷õÚÓðñõÒÍíòôùÀÑíòñüÆÓîòôÿÍÙèíï àÛñùöìØò÷øäÑçèôþÓÒèóôÑ×óûûÜÕøÖÓñþþüÔ×íøúÞÛíðø àÙîôùÛÞïó÷ßÛíò÷ÞÜêôõãÜìïõ çÙòôù éÚõýþ çÝóöý ãâò÷ù çâðõ÷ ìßïñö ëÙòöøè×ôøúæÝôó÷ïÜõûùìÛññóâÛñòóã×îïòá×ðóô çÛïðóîáøûøõÞíìòîÞïíñíÝòøù èÖþâØþÿí×úþÿ êÜøôú ëÜõôø ëà÷õøõÞöóøôÛúõúï×ñò÷ äÙëêñ ãÛõðõåÕùýøßÑùøùÑÔñòõ ÜØùøøíÓïìò èÓó÷ô äÖøó÷ÝÙúõö áÙøùöçßõòòõÝ÷ñõêÛôøô äÚøøöéÙòéòìÛöøõôÝõô÷ñÛøñøèÚùüù ê×ö÷øæÖïíóçÝôõø ìÝóø÷ æâöòøðãòôöößôò÷õàòí÷ôÝþÿó×ÿüêÓ÷òúæØ÷íøñÙ÷øü êà÷ñüóßòöùïßïêôïàîíôîáíððîæîïòùãíïó øßîñô ÷àëïôøÝñòøòÜôüüößò÷ùüÞñóøúâíóõöãìôôôäêòòðåëòòïãêññößíðóòÝò÷øñàëðô ìÚîø÷ ãÕñüàÓïüùÞÓóûåØïù÷ëãï÷òéêïñ÷æíøøùåéöõùâê÷õöâêôóúÛéôõïØïþø éÖïûù â×ì÷÷ åØëöö éÛäíò âÜéôõÚàåïó äæêùö ðäè÷öøâéñöúãíùûøáèòøõßëõù ñÛèöø÷ÕìøûñÔëóüå×éôùÜàêð÷ääìõù êæèó÷éäêôùååëóùååëôúíãçïõêàê÷úëÞê÷ûêÚïöüçÛêôúðÝì÷üïßíöþíßëøýìáèðøèåë÷úççæòûïìíùþ÷èñÿñåòúêÞñù ãÝíøÿåØî÷ÜØì÷þ ÙÜñøý ÝÝîøý Ùàìóú Üâëöú ããîñû êæíõüðãìöÿ èßíúý çÝëóü äàçòøëæèòüóáéöûñáêòûèäêòúèäíõû çÞëöüàÞëôý éàïøÿìáïýîãðöþìÞîôýçÙêíùÝÙäå÷ÚÖæê÷ÛÖëõùßÒìõûÚÏçíøýÓ×èì÷ßÔèîøþØÒæí÷ÛÍìòû×ÓêðùßÑî÷üÚÏìòùÙÎíîùÛÓìóø àÕíöùáÓíï÷àÔéñõáÕñõú æÔðûú ã×óõú ç×ïöøçÛñ÷úíÙñöú éÖîõø éØõúù íÙùûû îÜõùù îÚôû÷äÞðòó ðÝ÷ö÷÷Ùöüø òÞóõõßùüùÝ÷ýú øÚõøõøÜô÷×üùùýÖöùõ÷Ôööõ òÏöúôþãØîõï ïÚùô ðÙõýò ïÖõ÷ñìÙô÷ïñÙôúò ïÓìññäÕîþ÷ ëÚö óÝó÷Úò ðÞô óßêø óßìúôÜïúõßêôàëøÞêðüÿßæì÷ÛíõûüÙñÿüøÞíò÷ýÞóøúûáïõ÷øãìüõóãóôöõßõø÷õãñ÷òþáóøòýÞøùõ÷Ûùüó ðÛúûõ ëÕõûò èÓõùí çÒ÷ùï ç×øúî éÚùÿïåÞ÷ÿî ëÜùúí æÜùüì çÞþýïëÛöîÕõ äÕ÷ÝÕôßÔ ÷ßÔõÛØóáÖôÚÛðÝÝüýíßßÿî àßíßÜýüì à×ÿîÛÔðÛÕñßÓþñÜÖþÿðãÒô ÛÙÿÿñ ßÛô×Þú÷îßâüÿîêÞÿñèÙüò ÝÝüùïäÝþò æÙýó àÕýùòãÔþôäÔü÷ðéÐýùðæÎøøïÚÖøõí àÜùöï ãâ÷ôíèåöôíêã÷øï äãô÷î ãâõ÷ðááôòïáÝñûñÜßò÷ï âÛõóôÛÜóòñÖÚñúòÿÒÚñôòÔàõûõ ÞÛùüø Ùßôüõ ÜÜøüø Þáøÿ÷êâøõùéÜêíöÔÙäóöÒÖçøùÑÔíþüúÊÕðúÏ×ðØÛè÷þ ßàãòú åãèòûçßæñùÝãåðøáÚêñúÙÙéðùØßäðöåàâíö áÛæòøÙÚçòøÙÚäîõ ÙÛæëõ ÜÞèðø âáêñøìÝìñúãÛêìöÞÛéñõáÜêîô â×êðóÚÖçæðÿÚ×åéïäÔíðöÞ×íòõÝÞèéòëäìòöúáïöúùÝîóùóàììöùÝ÷óýúÞòòúÿÛóôýüáòúüÝõóûõàñòùîãíñ÷ïåðôøöâòñùõãïô÷öæïôúùçðöû÷éñôûüçñøûýåóùÿàö÷þøßïôû óëðøûéðôûåóöýóáìöùîâîðùõàñöý÷äõùøçóôþáñûùåõõþýÞöøóÜòòýõÞóùøâð÷ÿúãôúöåîðý øäóûôàðùíàðøëáîõîáííýîàíóÿ æÝîõ ç×óø æÙîõêÖìúäàçòúôâíõþöçíøþèçéú!âÝïúúäâöÿýâæýûâæû ôÝäü êÝß÷ êߨîëÜàõíâÛëùáÜí ïäÜìýòæáîÿ÷çàõÿþãæòüááòý÷áäòý÷Ýéñþ ðáæíû÷àèïú ñÞæðøêáèíõîÝêó÷èáçëõöâëöùõãëñöõãíòöôàíóô ñÚèíñ íÛìðñêàíìïìÙîóðþÚØëïðÛÛñîóåàííðîÝóôñæÙïôòÝ×óõô âÖöøõäÕø÷õüßÛòôòâÏóûóúÑÐìðíÖÌ÷ùñÓÍöðïÕÐ÷÷ñÖÓú÷ô ØÓúûò ÝÔúüõ áÓÿÿúÞÌýùúØÌöùôûÜÎöùòáÑ÷ññÝØùöïâ×÷ôïÿÞÝðóëìÛúöò òÚõ÷ðøß÷úóÿàúüõüàøöóùÝòïñ ëÛïëïìÙòóòêÙöõðèÔýþõ ÞØõñð àÙ÷òò èÙõöñêÚùûõ éØüù÷ âÓúùõ ÝÓõøô àÓöùôÛÑòïñÔÐõôðüÐÖñòîàÔööÖ×õöóÚÛùú÷ ÛÛôõòÛØùû÷ÛÛõöô äÚúý÷èÛøúöèÜøø÷æàøüøëÞüüîÛöûü ïÚùý íÞúü ìÜúûâØõû÷ àÞòõöìÞùÿûìâøúøðáþþîáôúúõÛùýîÛó÷ùëÞùÿúêÛ÷ýÞÙöûþØÕñÿ÷þÖÔóýöÙÙñûõ àÝõüù ãÝñú÷ êÙ÷ü è×óÿù çÏöüÙÎïùõÛÏôùøÜÏñüöúÐÖéùðüÕßíöóàÝï÷öáÒñüöÒÒðúõÖÙïõö ãÜôü ãÜòõøäÚ÷úý ä×åê÷àÙçê÷ äÜïøåÜíöâÝçò æáéõ ôãîøùáåê ôâçò ûßäîöâèòøáçðùäçìýæêïåêöýãåíü÷âæòúñâéîûøßìòýøãí÷ýõáíõû ëàêñ÷ñßíùúõàíõúøãòûüûàîùùóâîóöõßêñòñãïúõúåòúøþâôøøùáîöó÷åðõòãóúõûßñóóîáñøóóÝóüõ íÞñøñôâòøóþáõüööáóüôòâöûõòÛ÷úó êÜóùòìÚöúòêßöùóñÝùûô îÞ÷ûó ìÝøþòïØøüòèØõùîçÜöûï çÙ÷üñÝÐ÷üñÿÓÓóúïÝØúô åÖøôÛÔùýðÔÒöùîûÑÕôûìÛØõüïãØôúðÞÚôüñâÜöþó åÛùþõ æÝõþõ ìàõýôìÞúö íÛöüõ ëß÷ÿöóÛúþ÷èÙòùòáÛñøòä×õûô ÞÔùûöÚÖòôñßÔú÷ ÝÔõøôØÚóùóâÚò÷òâÙñúòÞØò÷ñãÛññôå×õø÷ ÙÎîïñÍÒìòî ÖÔöüõ ÚÖøý÷ ÞÛñûôâØñôôßÎóø÷ÎÓïóò××òùößÛöüù êÙöùúèÖóúù âÙñó÷æÜóûøêÓîööÖÏæøôÖÖîþ çÔðý áÚñþ ãàð èâïüðßîÿþ êßèóú ëÛèõû èàçõùôàî÷üõâêðúòáîùüïßéôúòÛèìøôâéò÷ûäìïùùèìïøÿèí÷üþãêîøõßèïùéáæíö îàçð÷õÛêïø ìÜæéõïáéï÷öáêë÷õçèëôúãëïöòàéêô ëÝéíôæÞæîò ïÞððø òäëêôýáìòú÷ßçìõðßëíõêäìñ÷ôãðôú÷Ýð÷üíÝìõúéâîñúìäðöúðÞî÷ú æÞìôøáÜððù ãáíõùðÞòóúðÜïïúëØõ÷üêÝïñúíÝøóýçáóóøêÞòöûèâððùóÝöýý éÚôõúàáíóú êÜñùü æÞíð÷èÜòòûå×ï÷ûÛÙðóû ÞßóúþçâòúýîÞðúý çÞñòùèÚòõü æÞóúÿ ëãóøþ íãõþÿîäóõúóÞò÷üíàðñùïÛôûý ãàñõûèßõ÷ýêÝóõû èÜòóúçáñõúîáöøû ïãñõúòãõýýõàó÷úñáñõùøÞòõøñÜñó÷íâïôööâôûúôäôûûùäóöûùãïõû÷ÞùþÿìÝôóû éäõûúõâöúû÷ÛöøùçØðïõ áØõ÷ùéÖ÷òø éØñõõ ç×ô÷øàÕñðöÜÛôö÷íÛöúøðÜóúù ðÛò÷÷ ëÜò÷÷ãÚõûùáàóõùðßòõúõÜòûúïÚóùûìÛùøýçÜøüýíßûýüøäöóùå÷úüûÞðóù éØêó÷êØðîùðÚôøûñÚóùøí×óòø æÔöóúâÐðøøÿÛÙîòöëÝñõùéÜí÷ûãÜïôùêÚóûû ñÔóùúëÔðøøßÙôõ÷âÕöûùÛÙìôùãÚðûûåÕî÷øüÚÔïùõûרíòöâ×òýúâ×íøôÜÙîïòÖÖîôòýÑÎíöóüÉÏëòïÎÌëñíÉÒãíèÑÓëôíÔÓëðíþ×ÕêðîÿÝ×éïíÜÕíñðüÒØêïíÝÜêôðäÙí÷òã×èóíÜÚåðëß×éñíáØéùïç×ïøóåÛìíðæÛîöñïÜïûòñàîõóòßîüô îàêøó ïÜñøëØñúøã×ôüúßÕôû ß×õøúæÛööúïàñû÷ïÞõüúêÚöùúæÚóúú åÚóýú æßóõ÷ìÝøýìÛ÷üüêÙôùûïØõûûíÛøüÿìÚúíáùùþõãøþöãöüýôâõøü÷âóøûøçñôøþåòûúüãôö÷ûãòööýáóõ÷ýáäíòøãìùöûäñýþ÷åò ôâí÷ îßñùñàó÷øæëôþàíùöÞíõý íÛíùüìÙïõü æÚìöù åÝìñøçÜêñõâÛëõôßÛêîòàÛîñõáÙî÷öàÖîöõàÛðóõ æÞðúöåÜíöö åÞðûù ëÝñüú ìÙòýü äÝóûú ãâõýýìâôýúïÝòø÷ çáò÷÷ìãò÷÷óãõýûóßúûîÞûéÛùâÚýþ÷æÝúùíÚùÿùëÞöþøíãöûùòÝøþý äÜøåØúú Ü×òõÿÛÜðùìßðøñàìïòßèñëáåîóßäððáàðúáåó÷áä÷öáàòöÜãôþ íßãøþùÞéöýûÝðóû óÛïøøíÚêóðéÛêùìíÜëóéíÛöùãëÜòñáïâöòá÷ÔñõáÜÊóôÛøÇÇðÜò¼Éò×ñ¿ÊðÑëÃÙüéËáÙóùÏÞÙçÜÇÚÕòñÈÕÏæôÊÎÐáÍÇüÍÕÛïÉüÒæôÕ äå ûÞîæúãðÝ÷#âóáüæñéëå!ÿâùðùãÿñõãòòðýòþß ùîäÒþññØ óñ ã×óâÙôîï àûõùð7Øì÷÷ÖËÞÛæÝîáãêãäî óÝàïêä¼æÔæ ËçáÑç êßïêó#ëø éñ6¿ÝõêËÐáØéöÐ÷ñïò9ûÄõçûúÕÜùþïùþ=Îôü ÝÊõÈÎòôÙÌ þæÏ øâíþóìù,þÝ!ðÞ ý ñõýíæ õË ìÅ$ ï75=sIÉ %é Z-ë>êý øêÚ÷üíØ îÊùéõ-é$óþ$*ÞaÉùýÛÔýÒËÛèíûðÇü äòùñ÷æþïËÌâ÷`û ú—áâÿÙ´ðâßù2 Ù×ßýÞµáÚû ʽÍÕ÷óÜíããþéÜÏØô.ç¼ßÚÿúǬÁÒù²ÏÑ÷: ØÚß Ý¾ºÆùÓ˸ÉÚü ßïËÏûþìßÊ×ÿ@üÔÃÖ'ï×¹ÈûªÀ´ÍÒüÔáÏâúçÙËÕ[ûÓÊâ8éËÆÚçÎÎÖáËËÖé  ¥ëôÒñÍæ ´äñåõ_ ÒÁò ÜâÐÞõqâÎ%ÃÚàÈù)ÜåÇá=jíâ½ø4ØéÇò2 Ñ×8 ôÛºã(óỸäêçÃã ^)á¿æ!,è°áÞÿýÐö#0º´Ñ ïßÐÀêÝ©´ÜŸ°ÉüªÐê ׿µÝþÌçñÅÞRÒÄáÿôÞçÁãüÁØÇÑäÿç‹ÁÜõ×íf"óÚ÷êÍàëüÁÅÛéôÒÇÀÜòõ)ß³áñö×ÊÝÚàðÔàýíøùøÆìíùùàíôö&Ÿú Ö°õßïõ ýð4 ÍýÛÙÇñ÷ØÙð  îÙôþþçÞÚ5ú ² ëÝéûòÍýöìÕøöúÈþõãÖï ó"ü· ùÓé óéâùúë±õÕö/ýÖñÛÐÍí×ÓèÝöê òÉëÖÚ ããñè0þ¿êÿÎèâéÐéçÌ ãýÚØåÙËáÐàà×Ý ÝúØê ýÞ!íÏä Öß àáë àîàäíÑç%ñÍ âëæä íÓ âáÜ áÝñ áëÛ áåë àñãåîÝÿàìèå(ôÜ ãêÜ âëæ åøÝé0úÙæ.øì éøî æöèäîóÿã1ùæèðæç-ñðêñÞõä áóè,øäì(ïÂýíÔÚôçäâþïêÒùìÛØ öç Õç øäçÐñæÚÝùåÞà úçÞÜ ûæåÐûéÙÐúèÔÒúç×ÞþéàÇÿé ÑÕü÷æ×ÑýûèÔÒýýêÕÜûûèÜãüýêåÕúýéÝÞúþëëÚýð êàøðíØøððâùþðð×øÿðìé÷ó"ÿáöÿò(Úïþñüäïüñþëóôüììüð üëëýñÿçéøñ#ñìûò"Úíûõ íâçþòîÜëöçæèýöíÔæýôäÕëøëâìüìÜçýûçáàü÷ìÙàÿùåãäü äØåûÝÚàú àÞÝù éÕâüãÝÜùðÞäÿ êÞÛÿù ïÔÛûúêÝØ÷ø ðÚÞýúîñÚøø"ãàúýýõÙôø! ëáúþúðÔíöýåÖðùüÕÖðøõÝÚ÷ú øÕÝõûïÞÙíùõâØîø êïÓíö÷éÜîûöáØìû÷à×ìü÷ÝÔíù êâ×íùèÙ×ìûäÖ×äûìÔÝêýïÍØíýéÖØçú êÞÜêüïÛÛæü ìâÚëý ðÔÞéýãáÞìü ðÓÜéÿæØÙåùÞÕëðÜÐëßøâÐóéùèÒìýåÒûéù åÑ÷àøÜÛøåöèäóãöðééÚðöãðå÷ëàèÞñìäçáôðÛìáøëÛãäôëÔéå÷ëØççöô×ååõ ñÛêèù ðÛäâöëëêìøôâèéûòØãåù ïÝãæùîÙäìúýãÜäëûêÔäïý íßçïþöÙçíÿ òÛêì ñÏèòäÒåïçØçõ娿öäßåïð×èóæÜâíëÚé÷þßÐçôÛÒæùÝÝäóìÜéùãÙäöþÛÖàòõÖÏãõïÍ×ÛïûùÞÛâ÷ÿýáÔáöþàÜáðýçÞãñÿåÚäóÿüæàâñþíßåõ ëÝæö èèàóü ñáäïÿêßäóþ ëÖéñàÛæôþÞÚäòý àÙçõþÜÛàðùáÖçøÿß×éùÿßÚçîþÛÙæóþ àÜîøãÜëù çâð÷ðÙó åÚîúéÛóõëÛóüíåò÷øÞôóàóúò×öýëÙôõéÛ÷ýçÝïöãâðóÿëãôõ äÝò÷ÿ ç×ðùêàñùÿîßôõþîÕòüÿ àÕñôúçÛõöþçÝôùþêÝóûýçæñøüíÙîôù ÛßòûøâÜõôøêÖþþ åÓúþ áÕÿäÝ ý çØ üúåÓ ùüäÍ÷õÚÚÿëñÛâÿðñæßûõæáùéÖûöô åÖýöêÝû÷ðÖýûéÙøö çÕø÷ó ÞÖôôïáÓøúòÛÎüöó×ÙýúñàÝÿ÷ôÝÝöùóßàóùîéçò÷ìúÝõõïò×õûñíØùüö çÞüÿø éÙúüôãâïùí êÝòùíÜãêöë ààîúîèëíöíôÝùþòèÚýûõ êÞýöçÖ÷ù ÞÔ þüáÓ þúÞÔ÷÷ÝÓþø äßþüöîÛÿõóëÝ÷õîæùùðþçÿúþæúýöúÝøüóõíùùóâýùöãûýøôÚüùòÝúúñÙûù éÝùýö ëÞ÷ö ðâõüõúæûþ÷ÿåúøåúùøæõþõúæôÿöüâòúõ÷ãöõôÛõöìäõøôßóûöÚõüòÝôúíÖøû âÖöùßÛóû÷åàòù íáóÿúïÙçÿóÝ×á òÛÍåûþÕåä)ýõßå/ìßÖ,ûçàÔ,þãÖÖ*ãÕÝ,âÑÓáä×!ø×Ý âÜ×ûþÑÝÙ øõÏàÖ øöÔÔ× øöÐÖ×öÛßÞùàâå üáØãøáßßúô èÛàøóããåûõïÝêøûêßê÷÷íßêøöíèíñ÷òßñùúéßëíöíæïïøøÞóíù÷àöñûüçøïú#ÿàøéøüÛõïøöÜøëøøÙ÷æõôàóäóòäòâññáöãòìäóâðòã÷åñöàõÝîóÞøåòîÜøàò ðÚüäóòáûáñúÞáó÷ÝüáñöÙàò'úÜäõ$úÞÿåððàýÝìíßþÕíçÙö×ìåÓóÑê éØàðìÓÿßîåÍâîâÐâïàÏàïÚÏäô ÚÐ àô ÜØßïëâÜíòãâðïãýàíòßåòóâßó ïÜÜð èáþåðòÚäòòÕáñéÖþãïæÑâôÜ×þãóâàÿèõ ìçýãóøãúèóøßùâòðßüçó îÝüãòíß÷äòòÝùìô ðÛöäñ éØ÷èòÞÑúæóûÎÐôëðúÓÝöæóéßöìö èÚúïøáÚõëõßßôéö èÙøòùãÖõîøåÙöð÷ ê×ôíô èÖöõøãßóëöèß÷îøôå÷ñùöáööúòäóñøñÝôòúíáïøø ïßñóù ìÝîìõçÛðööæÚíïôÛÝîïö×ßñøöÖ×îõ÷ÎÕñôõÌÓìðöÇÔïùöÈÒòõùÉØïúúÐÙóúý ÖÜîùú ÞÙòøû Ý×ïýü×áîùù ßàìðùÜáéö÷åâèù÷îäîöùùÞóÿÿôáððßéõÿæàÝäùçÝèôå×ëò àÙÝå å×Ôá( æÙÛë:ìàÊØ9õäÐÜ>ùâÎÜ>ôÝÉÖ6ðÝÅÓ.ôÞÈÕ)ôßÊÝ%ñßÌá! ìÝÇÚàÛÄ× ÛÜÉÚߨËÛ åÐÑáâÒÒæçÜÔìõäÛïäàø#ýàçõïÚåûýäÝãö÷éàãøò éÙì÷ ÝÙäùî ÚÒêíÿÏÓéûèüÐÖêúäúÖáëæ éßóçíÔøéãÖòä ãÔúéÜÚøãâä÷ ã ñÜü äíÜúáêÕùá èØúáì×ÿãçÚýàèâú ÝíáüÞìàüàè×ÿãèÑäàÈã×ÑÿÞàÖýÛ éÚÿÞèáýÜóèþÞýÝâ ëààëÖà éÙÿß ó×ýà óÛù ÞóÝáôÞå÷Ùä ëÙâ íÕâêÛÿâ ôÛç ÷ÞäýåäÝèó×åèÕåúÞØþâûÞÕþãâ×ýâ í×èç×úäãÞý æñÞéïâöäóèúäüâý é÷Ü÷çóÚùéõÝû íô×þ ðëÑùíéÓý ïïÝûðþÝúîüÚøïøà÷îûâ÷þðùßóüîùàóûíúàóîöÚóüî ïÛôüñï×öõæÕöõãÒ÷ýõãÖõþö ñßòýõçðûõüÞ÷ûù çÞîüõ æßòý÷éÞñùöîßõ÷ø÷àòüûúáòþøßòûþ ìàî÷ûæÝðýüèÞñùþëäñ÷ýðáïûÿ åèðøÿ êèóüëèïõ îåì÷ïâëøôäïóóéíïõîëðÿéÞæÿ÷ìãêûéëó èïòßççñÚèîéÜããíÛÞãîßâæïßßá éÚäèåÜÛØëàäá íâãà ðâáßêßàÞçÜåãåÞäãëÙéè æ×èãâÖåãéÎéâÛÕçáÝÖæâÔÖëêÐÛæßû×ÛåãüÜÜéæ àÞëé ãÙêç ãÔëè ÚÒìçÿÕÒéçþØÏìíÿÙÐèæüÜÑëçýØÓéèú ÙØêæø ÛÚçæø ÛÚíìù ÛØòíÿÕÜðëýÞÜïìüåÛðíûåÛïïû çÔó÷ÿ å×ñëü êÚõñþ éÙöôþ ãßóñû ããíîöèêîíøóêïìúõçòùýïäòñýìàõùþéÞòòý çÙøü áÕöõý ÛÒõðúÛÓõñúÜÚöõûáÞöôüâãøòýïàóòýéàë÷ùæÞó ãÝò àÞî ãØì åÚïîßï òÙíéÜá÷ûåÚçûßÙéþùÙÞçûøÛàä÷ôàßåööãàãóôèàæòõêÚæôóäÙèõóãÓèìòâÒèððçÖéðòîÖìðôìÝííôïãêðòðßëòñ ãÝéîï áÞèèï çÛìëò èÚíïñêÙíìðæÝïðóìÝòïôéßìæïïÜîéðïßîíòôàòòôîâñëó çèíìòôèïîôóÞñï÷ ìßðìöìÚòí÷æÓõïùáÒóèõ æÒôìõäÙîâïìÞõöøðßöñ÷ îÝùí÷ëãîèñ òÝõñõéÛíêñæÝõëôïÖõñ÷åÔúñõãÖóéõç×öô÷êÞ÷ïöúâùôøùâûõúõÝþôûîÞúïú îß÷õüçÜ÷õùáÜ÷ëõÞØúðöÞáòíôòäùõúöÜüóúìØúòøìÓùúúçÒúøûãØùìøççóïóóä÷óøìæðòõ òæùôú ïâûúüçßùóúæÝúòûäÚøóøâÙøóú èÝ÷óúíÖüùþÜÚôõ÷åÙ÷÷ùêÙøõøêÙöôúëßöòùðßöüû ëÛ÷øûâÝöôûèØöûüãÚóøú çÚ÷óü êÖüøþ â×õûûßÝøýü ãßòöúëßñôöðáòøöùàúùúóÝù÷ûîÞöýûòÞúþü÷ÙøõùòÜôù÷öÖõùøèÓñöôâÏòõôØÖñöôÿÚÜõù÷ßßôúöãÝóø÷ äßñû÷ìàñù÷ îÛôøù é×îøöæ×ðø÷ïÕïòôèßïúôðäðõôòæðöôößóÿ÷óÜóùóÛ÷þ ðÜöþîÝ÷þýìÜõþåÝøþ áÞõüíÚõüïÝõüóÜôýûêÞéöõ äàçñò çãëöðìáòõëÛîýõáÝìúôéÝïþö îàïùíÜïûøéÔòú÷åÔõÿøæÐóùàÖìøõçØðÿö ãâéùðìàïý÷ èÝì÷óæßìûô îÝìþ÷çÜîü÷ãÛëûõäØïÿ÷éÔïøöèÏìýôãÏïøõáÔð÷öàÞêñð ïßìúô ñÚîôô ïÛîùõìÝê÷õòßïüöúàòüøÞòøøöÜîøøðÞïû÷ðÚï÷ö êÔéôñãÖéöð çÖëúòìØïúõ ïØðý÷çÛïþôÿâÝëöôæÛíüøáÝïü÷ åáîýöïäñú÷úÞòûïãíøõñÞëüøçÝéûôàÝìúöâÙîøåÖïþúæØïýùüáÙòüùøÝÙìùôßÚì÷óçÝìøôéÙíøõêÖéöòèÓîúòë×îïñðàïúôõéó÷÷üîòûùêôÿü ûáïüøêÙïúöùÜÔìøôûÕÔìøñ××êïðàÞìöòêßïóôïàíóôõàòûùïàòùúìãïùø ïæïöö ÷ëîôø÷èóüýïèðøú õèöýþ÷ãóúþ÷Þöóãôÿþ!ùêö#þìóøû úêõöü÷çôúýöáòøüòäòõøôçöùüõæôûúóâöÿûóÜõúü ïÚ÷ÿýìÜôõøòÜôúõÛñúøîáòôõøèôöøüèñúõúãñõõõáïóó òáðøóìÞðòòæÝíññçÛïõò çÞîòñëÙñõóã×ïôñ Ý×íóðØÛíîðÙÜìïïÞ×ñùóÙÝêòðàÝòú÷þßÚòöóûÜÐôþõõÏÌêëðýÍÏíöñÓÌòöòÑÏóüöÎÏñøôÉÔóôóÍÙëðñÜÔìðôÕÒêîóüÐÖïñôÿØÖòú÷àÓòöùÜÒó÷ùÕÑï÷øØÖíóøäÛðô÷ìÚñöøé×òðø âÚñôùàÜðõû äàïøú æÛðòø áÖòóùÞÙîðù èÛñöùêÚìðøçÙïðøâØïðø ߨìî÷ Ü×íð÷ØÙííöÞÖìîöß×íðøàØìí÷ æÙïõú æÙðñû é×åèø äÕèòü âØêùêØîòíØêí åÜî÷ êáéè îåèïößììòÖìí äÕèëýáÙååûçÛèìüëÝîïþòâêëüÿèíëü!çïîýçìðûäìîøýæììøäïðùûéðòûþæïðú÷ßðôúñÞïö÷ôÜóñøòÝïóöô×òôöðÚôòøôÝ÷üúòàôõøóÝöõùðßöøøöÙøûøë×ô÷ôêÙö÷ö æÛõøö çÛõþ÷ëÙôóôíÜùø÷ùÚüüúöÚûþùñØùû÷ êÜõú÷ïá÷úøõÝúüúóÞüüú ôÚüÿû îåùýùãüüûüßõü÷ îàòùóñÝõùóðÝøüõíÞøÿøðèûÿøúäþüìáó÷óàÞõüóÞÝ÷üóâÞöúöêÛ÷ÿùé×úúßÙùýôáÕøø ãÕûú÷çÝùþööáùýùúÞýûõÛ÷þ÷ ë×úøâ×öü÷Üáõúõ ìáúú îàöüùçÛøùäÕôú÷áÔ÷þøåÝôùîâõû÷ëéôüõðåöûöëáñ÷ò êàðõñ ðâñúó÷åîöñ÷åï÷ñôàõùòðØôöó ç×óúòìÚùùôóÙõ÷òðÚöõñïÛðóñçßô÷ï èàïöð èÞïïïæÞð÷ðæ×ïñòÞÚíôðßÓô÷óÖÒôúòÔÐòôóÔÚóýö âÜöú÷æÝøûùêÞôöùéáìîôìÞñö÷ ãßõûûäÛöýýß×ðøøÝÓòýúÙÒìøöØÔðø÷ÖÕïú÷ÜÛðû÷ë×öýü æÖõüúÜ×ðýöÛÚïöôâÝîõôíÛïööþèÚêôóþÞÛì÷õåÚëóö æÚòöù èÜîõø ãßîüú àßëò÷áßðôøáßíöùáãíùû éâñùý îÞôëàëõûèãñ÷üæÞçòúáÞééøìÝôùëÚôþ åÝõþ ãåòôñàôû îßìîÿ èáóü ìÝìôÿ êÛîóãÙíúÿ äÕñùþ æÕòøÿìÖðùþ éÓîõúÛÑêó÷ÛÕíø÷áÖïõøÿÛÛëðößÙïûøàÜïõø äÙîõû çÙð÷ýéÔõýþ âÓïôø ßÒóùûáÓïöøäÚïùûêÝðöø ëáîóöðßîõöïÚïõöæÙíñóéÛï÷öóÛõòúøÖô÷üòÖðòùîÙóüûíÛìòöêÞóøøïÞññö çàïôö éÝïðö æÚñó÷ ãàîñô éáîòöêÔð÷ùÖÖéòô ÚÕóöùäÓóöùèÐóøúíÕòùúíÙòøù æàíòóåãëõòêàëóóëßíôõâäìñòïêïõõÿèìø÷ÝóùùîÛñöö é×õ÷û åÕïôõèÓëòóïËìôõ àÊññóÞÑðñôãÞíôõ óåíñôöèðúõñçðñ÷çÝððõàÚíôô åÜñø÷ èáðõõåÝëðòûÝÛëôóûßÞéðòçáêõô éÜñò÷âÖèóðàÕìöðåØ÷ôæÚúüðÜÚþîØ×ýîÝØúÿë åÐüûëßÑüëÞÞó÷åïèöûèùìóúéÿëñôëýãóýðõßôýðíÜóûñ ëÝùüöòÝòúóúØùú÷÷Ôóø÷îÓúÿù áÛðñõÞæìõñìëìñòøæñõõñãòô÷çÜíïó ãÒðí÷ÞÑàÝîÜÎàèðØÖðùû äÕúý äÏóöþ×ÏñüÿÔÝðïÿ æåêóþóíìôý"îñú!ýìêìýøéîñýåìòþÜïö ìÜíñü íÙêíý æÑíøüÛÏíñü ØØìîûæãïîýîæîòüóçñìþòæòòüòçððúöâëóýöáìòþöåïïçèðþäêçýüßóúøÛú÷ôÝòöôàòóüåíï#åéðþýáééüòçìîý ñæìëþ óçìøÿ úãëîüøàëóû îÖïöûÖÔêíøÓ×ðíùáÛóñùðãîîõ#çñðû"äëðú÷ßôýþëßîóúëâóõù íåîð÷ ðãíòöõåòôøäòùÿÿâòöÿïÛñøü âÜñúù éåðòúôëõùúþçòøüøÝíêöçÚúÿþëßüýü÷äúüãüýúß ÿìÛÿóù áÕúü ÙÔüùù ÜÖüò÷ÛÞúùøçàû÷ûëãûüûíßúùúëØøøúâ×õùúãÒôøøÿÝÖðòô çÖó÷ùæßóõöóÛóùûðâóøùûáõúüøÝóúú îÝõøùëØðõø åÞõúúî×î÷÷ÞÔåøòÖÖéþöÞÚëú äÛî ü àÚò ÿâàïþÿìÚïÞØëýÜÏèøøüÐÌäóõÖÓîÿú åØíúüåßîûíÛðýߨçôõÔÓèùôÿÑÛáññààéü÷ æÞêüö ä×êøôÝÛéøòàÚçøõÞÕíôóÖ×ëôò àØëùõßÙîùõáÜíùô æÛñÿúà×ïù÷Øàêüó åçìöôóáêîñ æáêúñ ëâïøõîàöú÷î×ô÷øþÜÜìðóåÚòôöå×óûöáÒôý÷Ý×ìóðåÓòøôþ×ÜêñíãÝêùðäÝðöòïÙñöôðÛóúöòÙó÷÷ñÛññôíÞóù÷ëàîõõíâðôõûãùÿþøâåôúñâìú ìçåòïèÙë&ôóÊÊ8îÍÒR" îIJ[/æÉ°e, àÆ¦d)áÇ©[!ýëÍ®KïÑ·=çÙÁ,ßçÐ# òØåß ï×êê ñÛñóóÛòþôèáòèíÞûäêÛþÝ çÔÿÓìÏ"ÑçË ÎÝÖÁûÞÞ¼øãÛ»ùÝÒ¼ûØÔ¼áÑ ¾ßÏ !¼åÎ » éÍ»áмÚÖ»ÙÚ¼ àÚ¿ æØ¾èÓÂÝÎÄûÓÉ ËòÊÉ ÆîÉÇ ÅçÀÊøÁêÀÈÉì¼ÄþÉóÁÍþÐ×ÑÿÐ ÚÐýÒÐ×ÿÔ ÞÞÔç× Ý ÞÕ Þ ÞÓ â ÞËáüÌÌâ÷ÌÊÿÜòËÇþàëÅÇú áñËÊøÿß÷ÌÚõþà ããþçïéòýäõáôþçéãï÷åïß÷ðõäõûò#àùþ÷Úùýøò×òûöêÑòô÷æÐö÷úæÐñ÷ú æÝïïøòäïòùòäóóüíåìïûìàîîÿ çáèçú êÞêçÿ ìâïí÷ßíéóÜîìîÝôó õØøìëØñ åØô ßÝüõ ïäöçõâüôìáôï èÞñìçáðä òÝñé ðßñä ÷ÛíèðÙëèêßéã çãéàäãçã éÞêäêÙëæ éÚíêëÚëÞ ëÝëã ðØçå ïÞèè ÷ÚìêïÛéßìÜÞØéãàÛîàçãëáæã îÞæä ñÚäÞ ëÚàÞåàãá íàÜÕòáìà õÚðß òÙûãîåöß úêùãýëøëþîùá%ïûæ* ñöç*ñûò' ïñæ!ìôêûíòç$ÿëîê !æñé üçíæ ûäëéöäìê õéçæöèéíðåçéðâèéîäãçïâêê èâæëìßéòêÜæñèÛêõ äÝåð çâéòîãçô÷àìù öãäò õáê÷ôÝãöþêÖæíüÿâ×íöÿèÕôëýèÖóç×ð äÕõ ßÚ÷âù ááþñïäóòÿñáñêøêãîî÷ìßìïø îàðõýóâîúûöáìîùóáîòøöâêðöôáíÿüðàéôøíÞðÿþæàêúú êÞëÿüäÜèø÷âàçû÷ßàéøßÙèÿøÿÒ×éþ÷ÚØäÿôÚÖ×ïÕÖÜùüÏÔÚÿ÷Å××+ôÊØÉ(øÎÖÉ. õÈÙÅ/øËÛÃ$ÿØØÃýØÖÂÿûÐÔÅýüÍÕÂ÷üÌÜËûÚÙÎ ÷ÿÚÙÐóýÙÜÏ ðÜÛÓñ×ÚÔ ñØÝÖï æÞÜð ñÜÜï íÚßÿìå×ÝÿéáÖáÿêÜØáþêäÙßùåå×åÿæþáÕäõäþÙ×èóãßÖçöá äÕìöåãÖíúâå×îôãåÕîôãäÖñûä å×÷üæíÖùõæï×ûöè ëÚýûçèÛúõç éÖ÷ïááÓüðâáÔüíää× òì êÚñì ì× ÷ñ ëÕèìçÔïë âÔîèãÒñéÞÔîæàÖðæ àÖîç ä×óç êÒïççÍñèÞÇðäÿÓÒëâåÕòçêÙ ÷êôÛ òèóÞìåøßóêûà óìùáóîûß ÷ïúáúïþÞúïùßïêþÞñéûßòèúÞôíùßòëûÞñëÝõíüÜóê ðÝñèñÚ÷ìõßôì ãîéþàôìöÞþïõ×öîÙ øõñÝ÷óõáùñöáûóðâ÷ïûÞøòõÚõñ íÙøò ê×óð éÞøô÷Ô÷ç×ý÷íÜöööàööûÝòõóáÿöô!ÿÜüóö!üÚùõôóÞüøòÚûù èÛýú çØüøôéÚýöõî×úòôåÚýýõ èàøõóëâùòôíâúøõèÛúõõ àÜúø÷æÛÿüüèÜûþüäàöø÷ ääñòôçåò÷ö çäñôöïÙíëñ äÚðôõâßóúúéâüÿðãøúÿóíòöûüèôúÿùçò÷ýûëöýúçóõðåôý îãëóûïáïúÿíâíûõÝðöíÜìóþçÞíôþèàî÷äßîù ßâëö Üâëø×ÝìïÕáèúÿ áåéóìæéöêãçô éæçò êåæñðéâóÿûêåòýåéïöãèôðâæïðßé÷ìßæöêÛäíàÙäòÕØäï ÜÜçïäÛèïÝÝãñ ×ÙáíÓÙèóÓØàëÏÕÌÝþÌÑÝñ þÃÕ×îÏÑ×÷ùÄÓÎäýÉÓÕê$üÏÚÇâ âÛÐççÚÔçåÛÌÝ çÛÔåäáÐà ìÝÙíâÚÓâäÕÔèãÕÛëâÓÞêÙ×ÛêÜÜÞí çÜäô ã×ßïÿÔÜÝëúàØåöýÞÖçøüßÎïúÿÝÐéóùâÐêô÷ÛÐêùöÛ×éøó çÐîüôàÒêðïçØñúö íÞòõ ïæòüóøäûùúãûøÿßõþôüÝñüòö×÷õèØøþñçÔÿõâÌúòÛÜôøìù×øèÝôþìéß÷îíßüððÝùüì ñàõùé÷ÞûïýÝùîûÙúì øÑýïéÓøÿêëÚ÷ìñ×þïèÙýýééÛúçêàõ÷äóÝûýêòÛúýèðÝúéõàûé÷àûéþáöûæ ßùéþÜ÷úèýÞúþéøÝøýé èÚöûç æàúýèóã÷üéøäööèøÞõûé ïâó÷æöÝô÷è ðØôüèçÙðùæçáóõæ ÷áõÿê ôÞùüì îâõýêøáõüì÷ãôöëúà÷øíôâòøìúÜûóôÜøûðóÛøòñàùûóýÞÿùùãøüôúãúûõ÷ß÷øòõÛ÷øðïÛóúñêÜóúòåÚöüó áÞõýó èÛøú÷ èÛø÷çØöùõáÛ÷ûôáÝòóóüÝÜñûôúÕÝî÷ð×ÚðôðØßëñîãßôôóæÜöþ÷èÛóööèÛö÷ö åàíòó éàòû÷ ìßòöõíÛó÷ùàâíòñèììòóöçðôöóßðõ÷èÛïïöçßîò÷ïÚõöûåØòõû áÚñöüæÝöúÿîàöøþòÞúüñØäëøàÝâ÷üÚÛêÿ ×ßáùàÞÝø ÝáÞÿâßàüéÛÙ÷ èØÞ÷î×Ùñ ðÜÞó ñØßéáÛØåàÞàò âÞàåÿ àààäþëÝÜäüéáÚßõîÝâèüäÙäëûÚÔãæúþÐÐåêûþÒÊêóþÖÃëðüÊÌëóúÏÙçìøÙàîïúÝßíðùÝàìî÷ÞÜééòæÙíîòâÚìêñ áÙïñö ãØòóø çÙõùü åÖûüþÞÙýúýàÛû÷üàäúõùçåöíõåäôìõçÞöðõãßýúù äÝøú÷ éÛøö÷ èÔûööÿßÔ÷÷õàØøúõ èÕûøõ ÜØ÷üñ àÜøøð àáôîî æÞôñíáåôñîîâüõïàúõóîßù÷óðáøõöôàÿûúúØþ ðÚþúüíÖÿÝÚÿõùÜäýúùèëùù÷ñéÿþûôèýúüøãÿùãÿøýÿàüýùÞþýý÷Üý öÛ÷ÿúÙÿÿôÝþþýöäüõûûåûüúùçùûöþçøüøÿçøýøþßýûû÷ÖùóöïÔýõ÷ ëÓýú÷æÕöòòìÞñôðøÜùýö êÝõõôçÚøüôä×öóò äÙóññ èÖõøòáÒ÷þöÞÒñòñãÖôöôêØóûøàÚóûúãÙõø÷ æÔòü÷ áÔîññÛÑñôñÐÔï÷ñÔØòøõßÜîôõ íàñö÷õäï÷öýßõùûôÛòöúóÛõøû ñÝóøøêÙîõõÜÙìòó ÜßéóóèÛòöøáÞìóõíâíöúôãðúüôäìõûóÝîýü çÕîøüÚÑëùüþÔÐïûüýÙÓïøüà×ï÷ýÙâæïõ áÜîÿûÛáæïô æÜíûü ãÝëøø îÛí÷ûíÛéôùë×îöý èÓíýþâ×óøß×ñùÿáÓðùþÝ×ëùû ãØóøþáÙíõúßÜéô÷ãàëðøëÛðøüåÖðúü ß×ëðøìØïöúîÙîôùèÛíùú èßìùúíÝðøúãßèïóãÞéñõßÝëöøâÚëñ÷ äÙíò÷ å×ñøú ãÑíòùÝ×ìôøê×ïùû íÝïöûöÚñõúëÜòøùèÚêòõ ãÚèëòãÜêõôã×íõö ãÝìòõ îØêò÷éÜêõøèÜîúûãØéóôüßÕçõôýâÚçóõ îÙïþûèÖèñôäÛéñóãÝêïó ßÞç÷óèâîó÷ôâòõúüæñ÷ýáð÷þõÔìðûàÔãêõäÝìôùöâôüÿùãð÷ûûåìôûöáïùûçâêõøìäïóûóçíôúÿæïúþüèêóú ýßëùýðÚëóúèØéöøêÝèôõòÞëñùðâéñöóæéõõ÷äèôôôÜæêñæàãêðíÞîöù íÚí÷ùèÕìóùà×êñôãÕî÷øþßÜçìôéàëòôõàñûööåîñôûäëíôüäíñóþäïõ÷ûäìíõüàì÷ö÷åìôõâòüúßîú÷ôàîöô ïâðñô îßíõòéàëøïðàðùóöåîöóýèðöô èñüöâñùöõàîûõóÝòúù êâòùùïãùûûñÞöøùèàñùøìãõþûòã÷ýðâóõøñãñÿù÷ÞøþòÜõÿýóÜúÿñÝöýëÞ÷ü íÝõüüïÝùýîÚùý åÞôýú ëà÷þú ëÞøü çÚøüâÚ÷üÞàöüû ä×üþÚ×øÿúüÚÓ÷üûÑÚñøöÝÕøüÙÙôùÜÜ÷û ÞßöûøäÞ÷þü çÚøûâÚ÷ýúãÙõþúåÛ÷ýúåØõþùüáÖôööáØóù÷ãÙóùöëÕøùåÓùùùàÕö÷÷ ÜÙ÷ø÷ ßÛøûù âÛûþüãÞöûùâÜóúøÿáØöúùúÜÕôþùûÛÕóþøþÜÔòúöàÚöû÷êØõõöéÔôúö ÜÓõùôÙÙòúôáàòöó ñßøùø óÙõù÷ð×îóóíÛîóñôßõø÷÷àòùö õÞò÷ô îÛëèïéÕíìî çÕéêìéÛïðïêáîêïïÞìïñåàçìîëÞëòñêÙìïòâÙíëñ çÜðïôíÛðôõéÛíëðå×êêïá×êíïáØïìîàÚêìï ÙÚìëðÚÛïôòäØîìó çÓóíõÞÒóõõÛÕðôõãÜîñóôàòñõúåïïõûßó÷øîÕîóõ ãÕðõù àÝî÷÷ éÝò÷û éßñïøìÞò÷ú ëßóöúïßõóûñãôöüöÜñïû ðÚêéôôÙîòöòáòúøðàôùù áÝìðòÙßéïñ àÛïõöÜÜïóöÚÚõüúÛÕðùúþÛÏñûûôÒÑðøùòÓÔï÷ùßÖð÷ûíÖóùýîßò÷ûðáòûüæçñ÷øíÞñúû ááíöößÝíïöÜÚíòöÛÔðõùÖ×ðõùÛÖòôúã×óöúñÖ÷ùý%ùØôûþ%üÝøûõæðôú÷ãøýÿ êßóôûááôùý åäõøýìâô÷ýóÙùûÿñÒñôúéÒòøùêÙðô÷òâòõ÷ÿÝðôôøÙî÷óñÞìîðóâîðõõÞñõõ íâìîñõèñööýãøüüñàò÷øíÝñüùïÜòòøòÖõöùíÖòóùìÜöýüìâõøúîäðúùìãñô÷ íâöøû ñãöúý ñåöùý óàôýýíÛóýý ìÚøÿÿîÚøþïÜ÷úýõÚûûþëÙñõøåÚòûúäÚóüúÞÛò÷ùÝàñôöâÜôüúÜãìóöæëîô÷ üçøÿúßöüÿóÚúëßïøú æãóûûíãíô÷ìàïö÷êéîõöøçøÿþûæóýüúæñúú÷éñöù÷íòûüçìôúþçåôúæðéì áéóçåüöéæô÷êÞòøìâñ øæàñ çßÔçßÝÛíÝÙØâÿÙØÜðþÙÛàðýàßãõýãßäøþåÚãñúâÖãô÷àÔãïõÙÙäëñÞ×éòôÓÕêöòüÎÑíóòüÓÊëôð÷ÌÌíõïüÎÎíõìÐÔîñé ß×ó÷îã×ó÷í éÓúÿòàÑóõìÙÍùýíÔÏöùèàÏúîéÔüþîðÖýûí èÛ÷ùéèØôùæàÙôöãáßòôä ëÚûúêãÜúùéâßøÿéäâþüëíäÿîôØýúðçÑõðéßÉö÷éÑÎûüëÛÖüúìê×þïëÖûüí ãÐÿÿïÕÉûúìþÎÃïöÉÏú÷éþÖÑîøÑÔüûìöÓ×úüèýÖÔóñæÖÓùóç ÞÕøõééÔùýíñÛù÷íþÛüöñýÛÿþõüÛýþ÷ ôÚøôóéÝýøõæàûûô èßúûõèçòóñöâú÷ö íâ÷÷õðâøø÷óã÷üùöäöúù üäúýü ýÞ÷úüøÚúýýõÜùúþòÜûûÿ ìåöþýòèùúþøêõöûüèòðùûæíõøûåöÿõÜòò â×îòþØÛçöèÛïúêßäêêàäá(ëÝßÔ3éàÚÈ9öæØÆ>'éâ½A*éÞ»8&àåÂ7ôÚêÏ0íØíÖ)éÛðä"ìÛïçäàîò åÛíûäÙñûçÜî ô êÝóðêÛôê êÜòáê×÷âåÒöÙÛÏôÕúÒÐôÐþÕÏúÑØÔüÓßÖ÷ÏÜÔúÎðÒ×ó Éï×ÚöÊ÷ÜÜùÍâÛ÷ ÏèÕý ÐäÏýÒ ÜÏþ ÑÚÎý ÔØÓý ÔÝÔû ÖáÍüÕ×ÈúÔôÉÐõÿÓöÒÖùÖ÷ÞßôþÔíàôÙ ó×øÿÞëÓûýáíÙåôÝÿçôÞøõãòÞúüçñÕùýêäÍõöæ ØÎöòèÕÕõòèߨòòéáâðòé ìçõøïôàñðîõÜñïðôÚôôôöÚðíñõÛïêòïßìïó îáðìöìáñøúðÚñóûè×îìù âÑìæø ÜÐíóü áÛçå÷ëãììüëçìíûìæëðþðæëèùÝììõÛíçöÚéç íßçâæâéëàÜéíÿÔÝâàþØ×ãéÿÕÔáæÜÖçðêáêëþãíì &æëï )æôó"Ýïô çÚãä áãáå ñãèê îêåîôîéê ñëçî íççé éäæå îáëï ïÜçî ñÝêé ÷Ýëí ìææêòèæéõèèï øåçéôäèì óäèð ñäëò íìçëöèéí òæàèñâåï îßéï ëâéí îìæíüðçó ïéðïéï!éíù þæîó ÷æíóúèìò úéèð úëæëúèéíõæäìèÞßáþ ÞÞæñåÛéðàáåëÿ éæäíþòëæîÿçéï÷æëïõãìúóãèëþöÞíõðâéîûöãíðýñãìñûíäîïûíâî÷û ëãëòü éàèñù çÚéîùáÛìõüúßÜéôúöÞÚìøûûßÛî÷úäÞíóùèÙìø÷ØÚèñóØÜêóôáÙìö÷àÜïù÷ çÙòúùãÙðøöå×ñûøüÝÕðú÷òÚÓðüøõÜÕíúõçÓõýø äÓóþ÷ áÙó÷øâ×ñúöÔÔðøóÑÏñ÷ýÐÏïùôùÏÔñøõÿÓÓ÷ýøÔÔôþ÷ÜØóüõçÖ÷ý÷çÐùú ÜÔúþùÜÚúþù äÜøøêà÷ý÷ñÙùüùæÐöü÷ÓÍõýöþÍÐ÷þøÿרûùäÚúùâ×úûö á×ó÷óâÑùÿôÙÑøþôÝ×ùüõäâöüòúãüõáûûôÚû÷ù×üöùÕúóòÍøûñãÏ÷ýñ äÖúñ åÞùñíãøúñöàýòôâöÿîôéõýïùæöüðöåùï ûæõûîä÷üðûÜúòõÕ÷ÿñ îËûóÛÅ÷üñÊÌûñÒÐüóÚÝöþï ïáøýïúéøýðüãûôíÞóúíëáùþïùÜöýïõÙññéïÖüúóðÖøõòÑ ïÎ÷ÿìÆ÷ÝÆøæô ÞÔùïõëÚü÷øðÛüú ëÞ÷îôîÝðçì íÙïëéçØòïêêÜòïííÞùøóîßöúñìÛôôñèÙôüóçÓøúõäÕøöóìÙôöï óÚòüï îßîõí íÜñøî äØñÿí ÞÙëòéáßíòèíÝòûíçÜïùí ãÖì÷êØÓñúíØÒ÷ñûßÔ÷ÿðýëÔöüñûéÜñî íÕôÿîàÖðüêßÙóõìáÜõíçÛðúïéÛñþíêÜñúîæØðýî âÙòÿð äØòüñéØñóïÖôöíÞñÿôëçñöéêòô îêòôðèíþóõæñöôåïõôæðýôøàòöíÞðþôêÙñþöä×ìÿõáÕìüóüÚÕïöüÚÖîÿøáàîùïæîüøóëðÿùùêíý÷þçïüøüåðûùùáñüðÞïú éÛñûú åØïùùáÔîø÷ÙØíöõÜßîúøéåïþùôçíöøøæñúü÷åñúýýäôüþöãñúý õäïùý÷ÜñüëÙëöùëÓðóûæØëùùïÞó÷þñÞîöûéäëõûêéíøûóåïüýêâëïúýâãêùüãáïøÿâÝéöùäÚëôúäÓêùüÙÑêòúÙÔéïøâØïýçÝîôþ éÚìôû äÚèðø âØíòüüÔÚçëøúØÝëóüßÚðùÿߨìîûßÖèìøßÍìñøÕÐìî÷ ÙÔîíùßÔïôûàÜìñøèÝììøåÛððúÚÛïïüØÝîïùàØïñýãÙïïüê×óôþæ×ïñûåÚððü éÔñðû æÒðòúÚÓññú ÓÖññú ÕÜïî÷ÙÝìë÷ßÜòöûßÜïñüèØïðüçÔîóýÿå×íòúåÚñóü àÛïòú áÜïóù ááèîøéåñ÷þèÝìíúáÙæãó ßÚæéóáÜëòøîÜïôû ôßðñüùâïøþûßëíú÷àîïùøÝðïúòàðîûðàíïùêßëïùëÜñóü æÙðñûâÜîðøæ×íîøßÚòóúþèÜîïùÿíáìð÷ õßîðöòáíìõðãïìöôååèïûßíìôñÝìéóìÚîèóëÚîêòîÝîîôöáïëòáîîôâïô÷âòòùÿâõòùûèñðõ"þèññø%úä÷øýðáóôúêâ÷õûíâ÷õüîà÷ýþîßøùýïÞøùü ôàóöúöàö÷ûóæó÷ùúÞïìòîÝõõîÞ üñòÙ,ñëÐAëÚÑUìÞÐUã ÛÍ^ åÖÑTä ßÒOæÞÒEüäÛÐ?ç ÕÌ5úæÍÐ-öåÒÕ$òäÜØ öçââíåôáïéñÚñê ãÚêç âÙÿéæéÔþêééÔ÷çèêÜõçíóáõíòñãëèí ëçãåìðãçêññáèïöñßäïøîâãîøóßÝê÷èÝÚìù ãÝÙîûßÞÙòý áÛÔðý ßÖÓîû Ý×Òîý ÛÕÒñ Ú×Ðñ ãÜÖô êÜÓ÷èÝÑøåàÍ÷ éßÔýâÚËûÙÓÍøûÉÔÆóýÊ×ËûØÚÊöáÙË÷áÚÉúã×ÉûÞØÇößÛÈøãÞÌþéáÊ÷îåË ãÆúûÛºçá¾ ðíÃ-ï¿6 ÿé®7öä«>#óܤ6 úçÚž-úáÝ "ýäÞœúãã íå¢ ôä¨ öè© þã² ûà³ øÞ¹ìâµíã¹ïà¼ûþîâÂûþ ðÞÈöþäàÈôûááÈôùååËñöïâÑôøìÙÐëõßÝÔëóåÚÛñ÷ßàÜîõìéãêöèèìùÜææôíÔßÛîÛØåæî áßñêñòéòèñäõîóàðßíûÝôæí ðÚôâì ãØüëïÝâøäí òâëóüâêóÿßèðûÞþæíößæîôßåíòáäíöÛ êóðÔ çñ ßÔ ãïàØ éñçÓ æðãÒ äî âÕ æîêÛçñõàëôûâìôâçñ ßîôøÜåïíØèïèãæïûÝîõîÒëõÜÓìóÝ×îôéÝèïüÝëòåíó' çô÷#éîò"çõõýàïóïßðïë×ðï ãØëî ëÔòòëÔñòê×ðð äÓðð ÞØðïä×òò ãÜöñïÝõõõáòò$úâ÷ôòßñðæÝñïÞÔ ïî ÚÓóòèÓööêÜ ññ ìâ òò éä öó çßöö ÞÙöõÒØóóÚÛ õõðÚ÷÷òÜ òõðß ÷óéßðð äÛðð âÓññàÔîî æÞññ÷Û ûïÞùøìçøúøìøùÿìùúìô÷&ëÿý"åöæôÿäûæ÷øæ îõè ðùå ä÷ß ãìá åìÝá ááÞêÞþÞ æàùâíßýæ îÝøæïßøëïÝõì äÚ÷ë ßß÷ìåßöíäÙ÷ñÚÚñòüÝÕôõüØÑðì÷ÔÐó÷úÖÏïö÷ÔÇðøùÉÎëóóÈÎïûóûÁÒèõïýËÒé÷îþÐÒçõïØÕèøðßÖêôáÙéô æÕä÷òãÔÕìë âÔåÿøÚØìÚ×ëØÝÝøüÞãÝùø ìÙÛûøåÛØ÷óïÕàûúãÔÛùõã×ÝöäÙà÷ ê×ÝõçÖÛöà×ÞöÜÒâ÷üÔØØþíáÖßôà×ßóÞÕÞñýÕÑÝðúÐÒß ñÒÐáðÿÏÓâðüÒÕÞîÚÒâ ðØÑáðøÎÖÝîýÖÙÛìÞÖà íßÍáïþÖÆå ïúÍÌã ïþÔÚàï éØàîêØçó ëØèô ëÕê ÷áÒé öþ×ÛæôæÕê ÷âÑâòàÎâðýÚÓÛêÝÑå ïþØÖâëßÙàëæàâ í ñàáëðäàë õàäí òÜæ íòÛç ïóÚçï îÜäí çâäííáå í òàáëóåãëúèæìûéçîýèæíÿâæíùàåëùßìî÷ßëî÷çíñàðòøäéíúæêìûåéÿéøæãûéôåæùê÷ãçþîùÝìôïãïýùôäñýÿôâé ðÜêú çÜéùäÞæû ãÝéüÞáâ÷èââø îâäù öååÿûçæùååþôßæìÚç éÖëþáÕìüÞÖíýúÜØðþøâØôý÷âÛõù åÝööëÚ÷÷ èØöüôèÚñùïîÚôøðíÜõùòíÚöüñ éÜö÷ï ëáòõíñÝôóííÚôóîêÖøùò âÙõöî ãÔô÷ïþÔÝñðéåáõõììàøöíêàööíïã÷ôîøëüõòêýøÿëúøõþéù÷ñÿáøòñ÷Úûñòëàúíîòåûññûæúïïûãùîîöàùïïìßüõô æÝøðóãàøñõëäûò÷÷åüöøúáûð÷ëáûòõìâôïòöäûíõøåùéôùåúîöùàïåôðÜîåöêÛûôæÚÿõç×ýò âÚóçþéÞüëíÞòáþíÝøëÿíÞößýî×öáü åÖ÷àüãÕ÷äý ß×÷æü áÒöãúØÔõæøÓØòã÷ÚÚñæ÷ äÖóêùàÔðå÷ßÚòèúçØôèû åÚôåü æÙòæú ã×óêúÛÖóçùÔÛôçù ÝÚõíþ ß×ùïÜ×öíÛ×÷òÿ ÝÚúïâÚùï ÞØøëýÛÕõðý ÜØöñÿ àÝõòâÛ÷ðÿ ÚØñçûÖÓðéúÒÐðéýÓÌøïÍÓ÷õÖÚ÷÷ áÛùô âÔêåüÒÕçåüÕÖõô ÝÖ÷øà×òñÜÜïî åÜñë èÛëêç×ôö âÙêàéÝïçïäëèöåíéñçëçþôäèíÿòßëðÿêàêìþïÞìðþôàíïþûÝñ÷øÞïñþúâñðýùäóøþôàíóý ëÝìòü êßîñú ëáñõúñãðóúñáñôú íÝóúêàïõû÷Úòúý ï×óöú ëØõûûñÙðòøöÛøüôßõúýôÞóûü ìàðõ÷ïßòöø êãéòóñáïùø ïßòþúéÝïúøçÞñöù ëÝ÷ûû ïÛøü íßõöúõâóúúûåòýøûæïùõùäî÷÷ùæìúõÿàïüøôàíøôôßîýöñÜíôõ çÝï÷ôèÜñ÷óéÛóûøëÚòúú éÚñýù èÛóüûçßöþûëÜøúüèØõøû åØóùûçÚöüýèÚøÿþéÝðøúñßòþüóÝôþþîÜñûû êÛò÷úêàò÷ùòÝóøûíÚöùû åÛñûøâÛðüøëÜêñöîÚéöö éÜïùûåÝñûçáïú ðÞðú îÜíðü êâçê÷ôäòõüøãíôûöãêñùøßìòùóÞìóø íàéööïáëòøòÜê÷ø îÛëõø ëáçööïßîõøîàíø÷ðßìóöðÜêöóðÙîóô æßêóòïÚóþùêÕðö÷ ãÕñø äÙñ÷öêÞõüøðÙò÷÷èÕðüõåØï÷óéÞñ÷õîÞð÷óèåëöðõÞòúóïÓðóñ äÑíöïßÕíøðá×îöðâ×ì÷ïàÖíøïàÕîõîßÕîúðã×èóìãÚíöí èÝíóî é×îùïáÒìûïÜÍðúðÔÑïúî ÛÐóô ÚÓòþóÖÚóöòÞ×ôüóßÕô÷ôÞÓççêÚÒçëêÚÙëôì çÜñüðëÞîùï îÚäóìæÙâôìéÓïöàÔøûÚÙîü÷Ýàêûò éàñüö êáíüõðäòýøöäóþùôß÷ûìàóøïåôÿøóãñûø ìßðÿõ çßïøô åàñýö æáðý÷ êãîùô ðâíûõ îæêûôñåðþøðäï÷öòâõúõèî÷ôæôþùùåí÷õñâóýøéâñûøïãõþü÷Ýøûüïßñùøòãöþü÷àùþýòßùýøÞøü÷ÜùýûðÚùüüçÝöùøéÛúþû åÙõüø áÚöùø è×òúöäÖéõñãÚéñðäÚðúôåÚîöòä×ëñïÿÞÜêðîêÜðõóéàðòõ ïÞðúô íÞñ÷ôëàïóô ðÜóúùêÛíôö êØôöùæÛñ÷÷ëÚ÷ý èÛøöùëÛ÷÷øéÚõ÷ø áÛñù÷ áßðó÷èÜñöú æÛñ÷ú æÝòþû éàëòöñáïõøñáï÷úòâñøúôÞïïøðÚõöüèØ÷÷üáÜöôúàÚôöùÙÓêéôÐÒòè÷ ×ÐøõÿÖÔùñþÛÜöëþéÚ÷îÿæØïïü èÙñêüéÛóìýéÖððûÝÙïíø ÛÕññûÖÒðïøÓ×óôú ÞÚóòüâØù÷þ Ý×øøü ÜÜöòúàÜö÷ûäàóôúîäõöüõâõöü ìãóóúíåõùü íãöøý èÚõøü âÛóò÷ä×óô÷ ÝÚïîô ãÜôòóæÜöóö çÚñïô èÜôöô íÝõ÷ø êÙô÷÷àÜóõõáÚòóöáÞð÷ö èÝóú÷ëÝóúøíßñù÷ñáñòôóäôö÷öâñööùÝöþûôÙïõõïÚð÷öìÚð÷öèÛóûù çàðú÷òÛöùû îàîõ÷òàó÷ù÷ÞöÿûóÛòù÷îÛòøõóÛóõõðÙìôò èÚðûùíÙõþþïÚöúêÜëïú íÜîøý ëÚéôø èÙïøúêÓòùü åÔñ÷ûæÞíð÷ëàêòõ îÜïøøçÙèòôá×í÷öáÙêîó æÛñðóìßðîò êÞóóôíÜ÷ööîÜ÷ø÷òäííðüáïõñöàíóñøáîôñÿÛï÷ñõÝîïï ñßìïîõÞð÷ñúßíôòûäôúôÿãñûôüàïùò ôàíùñùÜñøôóÞñöôñåðöóøéíøñþãòûööÞñûõ íÚêóïçÙéùíâÚíøîæÚëøï êØïùò èÕïüóæÚîüñëÕóÿôâÕñüôâÔöùâÙöùåÖñüöàÙðúõ ãÙ÷ù æÚôþø éØðýöã×ðûöÚÓôøÿÑÔôùÕÕôúúâ×òýúéÙôúáÕóúÑÖòøøÔÓñúøÕ×ôû â×ñûú ãÚñÿúßÞñùùáàôüüæßñúüéÙóüüæÖóÿý åÚñûû ãÝñúý ãßñúû æáðþý æàïùú åØðøûÛÜíüûÞÝñýüÞÝíûùÝÞêõöÜàîûúÞÞðúüàÜêõùæÛðýýçÞñúü åãð÷û êàïöû èàðöü êáíõøìÝõúýéÞòùýîÝ÷ôÞçèøòÝîòýêâñùðàù òâñø øèñú åíñôâçííßïøîÚêïïÚîóïÚñòãÛðïÿ áÙòô Þ×ððÿ ØÓïñþÍÓìñüÓÐðôü ÏÓïíúÒÞìëö ßÜìïøÛÞêêö àáîôøêÜïñù æâðõú íäïõùðßðöù êÜîò÷æÙñùú âØòó÷çÛôõ÷îÛòõöïÙðòö æÜðòô æÝïñõéÜôø÷ìÝôøöìÜñõö äÞîñóêÝñöô äßñõóëåñõñ÷áö÷õõÝôñôòàñôó÷àòóóöãñòòúÜööõìÜïîîëÙðõðïÜðððöâóòòùæñïð!ÿáòíñóÛîèïèÛëéííØðððìÝòññõÞôòóîÙïòðç×ïñð å×òðò éÛñìðñâðððúßõõôôÝùöôîÝòôò÷ß÷óöûáøùùùãö÷öøâôòõõäûúûüÞòòøòßèúôöáóüôàôüõÝû îÞòýñÛòüñØìúõíÚðù îÕîøõãÔíúõáÚëõó êÖëöôàÚîüõäÛëóóæÛèóñçÓñùôá×êîïè×îòóçÙñõôçÕò÷õâÓïöôÞÏññòÙÎóôóÙÒõù÷ÕÔóúõØÓôôõ×ÒóùõÖÔóõôÖÓô÷ôÚÖôøóãÚô÷ô æÛ÷ý÷ßÝôõöáÜôùöáÜõýù çàòøöùåôüù éùûüí÷úùëõúùãõüøøàõûúõß÷ýýóáöúûñâ÷úú òâ÷ûü ìáô÷úëâóõùñâõûüòåñôøõãí÷÷ îáìôùéßöüÿ äßï÷ýéàòõ çÜðö ßÙðð ÛÞêííåõñþêðèãçÞïâáÖêäâÚòàçÝóÞåÝëßåáêâáàïããåòãææñÛçíçÙéò æÞéïíÙîöéÚìøíÛî ëßæùü íßëþþ îÝìü æÜéùùßÝëüöÝÞçúñäÜîôãßîð êÛøóéÙòëåÖûìÞÒ÷æÙÓþçä×å ñÐ ãäÏýÝþ×ÑþÜÙÒýÜÝÒ ÜÛÓÿÛÞÒÝâÐ àáÎÝßÕÿÙä×ÛÝÓÚÕÓûûÔÙ×üÖ âÖØÝÓÿÙØÕýÿÚÜÖþÚßÙúÿÛ æ×ÞÞ×üÛÜÕýþÚÿÙÕ÷üÛ àØÿá âÙûÿà áØûùà âÚ÷üã äÕüèÞÙúþæêÙýþèîÝøþéñáûþîðãýûîíßûöîåÚöõîÞÜóîî ãÝôõð áà÷ûò çÞöøóãÝõöõæÛõ÷÷ åÛôùøêÝñô÷óÜöùûðåïñùõåðòúïáíðùìàëîøôâô÷ÿûÜêìûðÝáøû éßæ íÝì êÜäèÛàçàáÿòÛßû ðÜáüíÝãüëàáûïåàòöæßïñãáõîäàðïçâðôåâîòæßèýñåßêýëåáëÿïæäì÷àãëòÙãêÿèÙéïçÜèéïÝççîÛéæ ìàäãý íâååþíßìé äÝèíèÝçåîÞêäëÛéáèÜçæ éßæåïÞîéîÞíéðÚïë éàêçóÝðêíßñèîÝòï çÝîéæÞñëíÙïîäÞéå êâïëíáõñ ëÞðî çÚïìäÙîí äØîí àÞõï êÚíä áÙôã âØûé âÚí çãé óáìñÜè ïÜþãòÝí ñÞüé ôáÿè ÷ÝûèïÛ÷ç èÚøé çÜóåíàõìõÝõíðÝóíðßóíóâøî÷ãóðùàôîö×ðìîÔòìíÜíîüðáôôîáðòýíàêëúîÞðôýîáóùúßòúúáñøûàïúýùäóøÿúãçðö ôáøûû óâÿ÷øÿáûùÞûêâ!ùîáô çÛûðÛÞóáÞ ûîéÖó äØ ýò èÜþðìÜùîèÛúôéãÛúøê äÝøõìðáöøìöæúùï ôç÷þñíèóûîñæñøíôäïûìüÞðþð òáïûï õÛêöîíÐåðêÚÕéñê Ý×èùéØÛóíÞØôí×Ùíûê ßÙêýêãÕîþîãÒéÿìÝÎæûê×ÑåÿëÿÙÎãüéôÎÔãüëö×ÖßüìßÔâï ÚÓåï Ô×ßøì ÙÝÝûê áãÜýíòÝáòíÝàþòóØãõ ïÙàóíÞàóïàã÷ôßá÷ ôàß÷ôÙÚóêÕÓ ñ âÙÙø çßÕ!ú íÛÎ+ýâÚÅ2üûâÔÃ=ÿô×Õ¼DýïÔݹFþùßÛ»OþôßÛ¶NÿîØÚ±=ùóÖ×¶>ø÷Õ×·5õÝÓº+÷ÚÓ¼+ôÜØÃ*÷ä×ÁóÿãØÄóþæÝÉõðÜÍôêÝÎöçÝÒ õãÚÔôàÙÕòÝÙØÿòâ×Úüó æÒÞóâÔÜòð æÕã÷òâÚâòðçØåòðâØåêïãÚèêïàÜìçð åÙæáíßÚÙáéáÞÞìóêÞâóðÛÛó ìâÒìÿãÖíæÏèâÑëöÜÏÛ èßÏÕ ìåÔÕ òå×ÕíåÚÔëåáÕîáäÕþëÜçÑüëÖî×ýëÛñÕúóá÷ÖúõáøÔöðßúÒóìÞÿÕò æÞÔîçßÿÏêïÚÏëç×ÑìÝÔÑíÔØÔí ÛÖ ×ïâÛÖëðÔÝïâÕÛíáÙàðæÚÛìæÚãîæÝÝêéàâìñÝÚìïá$èññáÝíîÙ&ØêçÙAæòëÙPßñë×aàñé×sßóìØtÛñðÕiÎëîÕlÚðæØ`ÑìçÚZÑçãÝT×çêÜIÑåî×HÙêíÝ@ÒçðÝ@×çèÝ=ÛéæÛ7Üè ã×3ÚçáÚ-Ýé íÚ-ÝìóÖ+àíïÖ)éðæÛãëíÕèï ãÔçì ÜÓàèØÚåêäÙÛã âÔææÚÎ,òê ÚÓ:ôæ äÕNþéêÌV÷çßÈXõäàÅKíÝÚÇYêÛÇLùç ÖÌBûæÔÔ0ñâÙ×'ëâ Ü×$ñæÝÖïäÜÖôê ßÕïè ßÖñéßÖÿöìæØýõðíÙ÷õòòÕñùóéÓêõò áØæùó çÞÞøòìâàþ÷ ëâØ÷õëá×ûø äåÐüø çéÒü õåÑôáÍñáÇ ñßÈðÛÄëÛ¿ ëã·þ ðã»íêµÿôð±þ ûï¯þüë¯ÿùç°õè° üç±  üé±á°ýᬠûåª óæ¨ êì£þ õêª ñéªïå¥ íç¨  øâ± óâ« ñâ¬óܬ éݰ  ìß® èç« ðé®  óé± ùì² ÿë¶ùæµõç¶ üã³  óÞ«ë߯ïã±ö߯"!èè« #ïì§&öì¤$øî¨ î­!ê¬ë® í¬è³ ÿåµúá³ øÞ» ðá¹ðê¾öê¿ öéÂÿ õâÈìâÇÿÿ ðáÎ îáÍÿìßÔíß×ïÙÞ ãÕÖøÜÖÝùäÙßúéÜÞÿøéÜàÿöäÝäþ÷ãÜçÿø åÝîûè×òü â×ïþ÷ ÞÕñþ÷ØÓóüöÓÑõöÓÕõûòßÚöýô éØó÷ïÞÚíüíþÛÙ÷ õýÛÙù öüÝØùôßÖÿø àÑÿ õ ÛÎûð×ÎûðØÐüìÝÓùüëáØÿÿíâØþöéÛßü÷æâßþõè æâ÷ëòá÷íñÝúî æÜñééÝóëìÕ ÷îáÔ îí ãÕ óë éÕ õî äÚ òí ãÛ îé áØ ëç Ý×ìéÙ×ëëÚØìéÖ×ìíÖÐïíËÎèëÎ×êïâÖõô ãÛðôïÝèñðâæïûãÐçöâ ÝòöáìóÞèëÛéèÛÜèÚÛ ìÕ ÏéØÙñÖ ÑðÔÜëÚÒïÞÑýéã Ñøñæ ÓøöãÞÿðÝàüéÝ ×÷éÜÜ÷éÚß÷åÞ ÛóðÔßõàÓÝò ÜÕáóÚÝáòãÝâòÞÛäðÚÙâïØÙäîÜÝäïåÖìòÝÖ êðâÒíó àÏïó äÌ ïðàÎòóÞÓòð äÕôòèÔ òíêÓòðåÓôìçÒ ñí ãÕîëæØ ðíèÖ öñê× öñìÙïî çÞòííâîïôßîïñÜþìíêÝþëîêáùéíòáþðñòáþïîðäùìíöâ÷îðõßùóóðÝøóð çÜöõð äÔûõðÙÕù÷ñßÓú÷ôÞØøôïàÖóøïÚÐóöîÑÓòðìÔÕóôí×ÔöùïúÔÖíôéý×ÖíôëüÕÑîôîþÓÑòöîþÕÒíòëÿØÑï÷ìÿ×Óîòë×Ïî÷ìÔÒíñëßÔñûðã×íôîäÕîöîÚØïùð ãÔööÝÙñûó ëÚóõèÞðôëÜðüóçÛîøò éÞëûòñÝòõ ïÚêùóîÚêõòóßíø÷ýàöýáôøàõóäõùäíøÿøÞêôúðÜç÷ùðÞçóùôÜéöú ðÝæó÷óàìúúûàîûüÿàðþüÿäéùùýäçùùûäç÷ùþáëùúùßêÿûöÞæøùòáèüùïâéÿù ïÞåû÷ ñØêø ï×êùîÛëúñÛèÿö íâçõ ðÜçþöçÜåúóèÛæÿö ëáéþ÷ðàèöëãæùò òæìøèîú*ãó'ØíÿýïÜáðö íßåû÷îßë÷ òâåüõüãíúøåîûöäìúúåìýúÜðþýúÜéúùòÝêþúòÝëúñáîýôåéúðéæþùîãêúáâçøçâãùöòàçýûóáèýûòàëÿýíÚï âÖêþ åÐéü áÖçýúéÜíÿþðæíÿôéðøêñäòýßó÷ÞíþÿùÛëýþëÝëûýèßêûþíÚìþäÜæúúæÚèüáÞäüùâÛëýääçûôéëþöæéýïßéÿÿ æÝäøúéÛêüüæÛåûùãÝåúøàÜåûøÜÛå÷÷àÜâñôãßäó÷ãâåõ÷çåãðô óîãîôíåñøþêåøúõåéöû éÞäóö ã×åõõß×äñ÷ÛÑëøûÿÎÑêúûÿÅ×éõøÎÏëôøþÈÔâçð××åíò ÞÙéïõ ßÞéîõäåãëô îäìïúðåèñúôâìôýôÛï÷ éÑòøÙÑéøÿÿ×Ôí÷ÿÙÕáëùþÑ׿óý×Üìûâäõêãíúçãìø êáîöìãïöóçìôüäìðñÝíîÿäÜèíý áÜçìú áÛèðú äÙçéøåßçè÷ðàçëùîåæçöòåêëøùàêç÷óÚëé÷ äÚåâðãÚéëòêÚíêöëÛñðø åßëæó äàíèôæÜîïõäÝîêôëßîëôëäòñùïäòñûíâôõüìæðòùóæúñþöåóòüùÝôõþéÜôñúèÝúøýëÛùøûèÚöõú à×ñëô àÚóîö äÞôó÷ êßóôø ëØòñ÷áÙ÷õø ãÛôõùæÜõøúåÔõùúÚÒôóõÖÔóö÷ÚÔïôô ÛÑôó÷ÖÒïïòÓÑðõóØÓïïñÝÔô÷ößÕ÷ö÷áÕ÷õøâÞøò÷ñ×ù÷ûëÔòì÷çÑíìõÜÕñíô àÚ÷õöèÚúöø çÕ÷úø äÒôïô â×óóôéØõôö êÚõ÷÷ íÜóøöòÚõõö ïÖõóö êÚõõõñÛ÷õøðÝóòö êÚôôôäÔòöñßÒñóòÝÓðññã×ó÷ó ïÙõ÷õ òáö÷öýäùöúùàëø÷ ïÜóü ìØø ê×ú æÔøý×ÖõþÛÕõöþ ÚÙóøû åÜöýôßôýÿüáþÿßóöýüãôöûÿâ÷üüùÞõûûõÛóñ÷óØøöøìÕõõõëÖöøö éØöøö ëÚöøö ëÙ÷ùõ çÕøûö âÒøø÷Ü×÷õô æØøúõ ãÚóóñ çÙöùô èØöóóç×ö÷ò áØóôïâÚöòò èÛøûö çÞôõóñÞôóñïÚôòðâÙõùðäØôùðáßìóêíãó÷ìñäòòîöáôþòòÚòòïéÖùùó æÓóòñÝÔþý÷ÚÐüýùþÍÑ÷õõÿËÙòðò ØÚúüø âÛõöó èÞíëí ëåñðñýâ÷õ÷úäôòôþëòõõ åùüøáøúøúÛ÷ùùîÝûùùìÝûüçàøùúçÝøûúâäõ÷öêåúýúìåøúùôäùúôäõüøôâúûùðâøûùößùÿüóÜõüùïÜúþûí×ýýã×ùýáÜøú ßÜöþúáàñöö ëæ÷úúóäùþúìçî÷ô óäòû÷õÛõûù çÜòùö êÜóüø éÛõøøåÚòøöçÙóýøàÙôþúÜÞóù èÞöÿüðÞóüû ðàóþû ñàòýúòàñúøôßòþùôÜóü íÜóþüëÛíý÷ëÚñûø ëÖñýùæÒïúÚ×îóöáÕñùúÝÜìôöáÜïÿùàÙêöôàÜéóõíàìöù÷Üíøù íÞèõõêÞíøøæÙîúúãÙòøüæßðüÿôÛðúÿòØíõü èÙéöøßÛêôöÛÞïø÷ ãàìñ÷ëêèî÷äêðûúæßéõ øáäíôíÙíõöÞÑìôõ ÖÑéîô ÙÚíò÷èßíôùïÛìøûæÖèñ÷ÔÝèñõ ÜÙçö÷ØØÙïôÞÜæýèÜìæÛäøáÖáøüÜ׿ûüÚØÛîÝÕßïàÏãíÝÎÞìúÛÎâñúÒÓáð÷ØÛæñú äáéóþîçéôýóëáîøýéàò÷ÿçáëõýàçò÷óßäæòöáêïøÝîøüøÚëõùî×èíò âÙæëïåÝèéïëåêððõåíóõøäíòôöãôø÷òâðüõïÞòøöëÜïõó âÜðöñâÝëñí çßñôïíàò÷òñßòøôìáòúòðÞô÷ñ íáñøï òáóöññâôöðõäôøð÷âóøñöäöøòøåùþõ÷ëöþôüéöüòýçøûôâûþ÷úàöúõóáøûõòâ÷öó÷å÷ùôüãùøõÜúû÷ éØõùô äÓ÷úôÜ×òñïÞØôöòÛÛóöð ä×÷øòÞÓõóðÚÑüû÷ØÏøøõØÐùúöÚ×ø÷õÛØ÷õóÙÖõúôÚÔøöõÝÒöõõÕÓòóòÝÓø÷öâÓùûø âÖ÷ùö ßÖöôöÚÔðõòÞÔö÷÷çÙçðô æØóýÛßñþààñàãêÿëÝñ ìÓèûáÓâú áÐíû àÐéõÝÍêöþÓÑèñüÔÒèóûÖÙëóøåßéôùòÛìõúëÕò÷ýßÔðóøÚÚíóöèàðó÷öâòõùàôõøáóòõÝöùøùÓûüúêØõôööÞøùøþàùùøöäùúùóç÷ùùòæüþûðèøôõúäüùõôàöóòíßõóôîâûûööâÿûùñÞú÷õëâúõóñâýøö÷áúúøûØþýûîÙöôõðÝ÷ñôðäõôðõäøøóõáöõòòÜ÷óò ëÕññð ãÚôòïçÝüýõ äàúöõ èá÷ôó åÜóïò ߨîéðÞ×óíòàÜùõóêÛûûõ éÛ÷õõ å×ø÷ö ÞÛöðóä×üúùÞØõòõßãøòõðàüùøëÝùùúåÜôô÷ àØóôõÚÕñõôÚÜòõõíÝøøùðÝöøùèÜ÷úú ãÚõöù ä×øöù âÚóô÷äÚô÷÷ èãôóø÷ã÷üý÷ÞõûûòÜôõø ëâö÷øòãëíõòäæõööàóþÿòßñþïÜï áÚí àÚñý æÙåóä×äöýÞÒáë÷ûÜÏãôúúØÓåõúÙØçöúרæõ÷ÒÚçïõרéñõÚÔìòöÝÑêîö ÝÖìó÷ ãÖìöøÞÚéîôäÚêðô éÚíðöïÛíó÷ôÞìóöôáðùûðåïðøðÞñ÷ûàÚéîòÜÖïñõ âÛïõøçßñöù åæìñõðéõúüüçî÷ü òáé÷ùóØóíÙóëÝð æåêþ îêìùÿôåéûþòÜéûþïØìøÿíÙîúüòâëóú÷çéóø öäí÷ùîÞéô÷ëÙêóù èÖëùø éÜèðòòàîôöõçîöúûéôùýöàïøù êÜíòõ èÚïôôìÙòðôèÚïðôçÜïðö çÙïñ÷âØïñõèÕõøöêÙðõõîçóñõüìúöøùäòööéáòö÷èÞ÷ýû èÞóùø çàóùöðá÷õ÷øÞöõõùÜøù÷öáõøøöãøûú÷åøûúüå÷ýøùâó÷ôõãóòóöä÷÷õúè÷ú÷âô÷öóÖô÷÷ ßÕùøô ßÜýþùïÚÿþûñÛúùðßûüúíØõúößÛõôñ ãÜøöõ ßÝúù÷åàøõöîßõôôðÛñóõêÕ÷ôó âÔóøùàÒòøú ÙÚìíáÜéó æàãäóàáã+óÞØÔ2 ëÝØÐ9 æÚÚÆ< æÜÕÈ;êÞØÄ4ìãâÈ4öâäÏ-òÝéÕ%éÕçÜ×Õãã þ×ÔéðùÔÒïÿúýÛÏòñûÚÔñíáÚ÷êäØ÷áüÝÕ÷ÛùÕÐý*ÚòÌÑû!ÑûÖ×%ÑæÙþÏêÖ'Ïä×ÌáÏÿÈûÒÍüÃöÎÓþÂôÓÚþÁøÞØýÃøßÔÿÄùÙÑÅûÖ×ÊâÝÿÍ óäÿ Ñäü ÑÞü ÓòÙöÏàÓ÷ÍóÒÑïÿÉñÒÔóÎýÞØòÒêáîýÔ÷äòÙøá÷ùÜíßøùÞéÝýüåéÜüèêÜýþçñÛúúæîÚõûçé×ó÷é äÑôýïÛÓð÷îÝÖíóíß×ïøìÜØïõîÝÙðøïáÚïôïåßóôòîÞòòöîÝööýëáóòþôßõöïáðòîÚñöäÖïî ßÕñô âØëëÿìÝîéðÞîïìßïîíÝîëêßîíîÞíòñÜîìïÜìïéÝêé áâëççÞìí ãÙçéÞ×çã àÖççåÜëåñÞñïöÜòñëÞñðçÚëâ äÙôçéÛøèìÞîêÙé ÜÕë××üé ÞÙøèãÝ÷åèÝ÷èåÞõäêßòã óßóä õàòå õàëâôæíäôãëäëßçâîßèçõÞéé ñâæäôâçæõâèæôèìíìîñ  éëë$ çåè%èæêåæçüçäæþìåíèêòþååîýàãï ìàßèìÝäíçàåî ìÜèòéáæóóåäïüàåò îÛáîæÚãóæÜâëýæàèõòÝéó êØåöäÛê ëßíòàìóãçþúâåüôÛãýýèÚâûúðØãûû ñÝäúûïàèÿþêáèùûäÞåþùéÜäûöôÜçýúòÚéÿûéÙèúø ãÝêû÷ëßë÷÷ñßìúöòÛî÷îØêùöëØêõó êßòþù ïàïúùìáéñõ êÞêõô èÚïö âÖìúô ÚÖìúóÞßëóïïäïýñúâòûöóÛóûöåÕîúó ÝÐíýóÜÓîøóþßÙïöóùäÛîýõüßáíúóßâì÷ñÞÞíúò ààêòïðãîöõýàëöõ÷ÜëïûéÖãê ÞÕéæ äØàÓ*ôÞàÆBÜØºRãÛ¦W"åß§\!ûêã¦R#ùìì¨H$ùéô±>%þçô´-!þåÿÃ$ çÌ%åß%ßæúÕòùëÏþðÞÌ çõÕÍßó×ÓÒûߨ *ÒæÚ*Çâá1Ãææ.½êâ /¹úàÞ,±ô×Ú&®ðÕÓ#­ðÔÊ%®òÊÍ%®úÐÈ,³ïÄË#­îÅÏ#­ñÈÐ&®ðËÔ%°òÒÖ$±÷ÔÑ%³ùÎÑþ°ûËÔü±ÿÑÒþµþÏÐü¶üÐÎüºøÍ×ü¾û×ÚýÄÞÙÿÅÝ×þÉÙÙùÈÝ×üËÛÑ÷ ËøÍÐ÷ÐøÌÓóÑÛÙó ÔëÓõ Ø áÒò ØÖØðÜÛÜô àßáðß çáîàåÞðãçÞîåèÚñéÿäÚíêæÔñïäÕðÿïîÙòó$÷ÚæöïíÛÞûìàßè ùëàåþëÙá ÜÙßâÚáçØÝæÔáâÓÜÿÿÿÛÒÜýüÛÓÝûü ßÕÚòùáßÝóýçãÝñþäãÚìú ãÞáðÿáÛãñÝ×ãñÿ×Öè÷ûÚÕæîáÐí÷ çÑíô ìÙèñ îßîñ ïâìðïåèäôåîìôåíéöèìæùåñï ôáîí óÝíé öØòëø×îç üÝòéßôíÿãòí÷èðç "õìíâ#ûéìãöêíßõêñè øçñã òãðç èßïã íÝòé øÙôéüÕõçðØóã çãòå ñìñæ#ðöã &ôðÜ'ðôßåáÊûõÛàæÕðàÏ#ôÿÞÅ,èÿû×Å6ðþßÌ,åùæÍ+ëþáÐ/óÝÛ ìýèåãù!óæçþîîâú'ýëè#ÿê çÿ!þß éëáÞýôÝãÿõÓéðÎâþíÙÿßþ õäüâÿ#ÿèúßÿúìóàû÷éöäÿîèëÝúôäîãýïèéßüòîêåýûìçâüüäåæýôãêîøÜóôîÝñîìâõõðäðîóâêì éÚæð ÞÒæíÿÕÑàíûÐÒãóþüÌÚÚäöרàòüýÕÑßôýûÐÎÜëúþÒÐÜðúÔ×ÛòúÚÞÙòüÞâÜñÿçáÛòÿêàÚñþ ðáÝô íÛÛñÿáÛÙñýâàÙóý èáÝùìÞÝú çàÍñüáäÌýüèÚÒ ÿÛÜÌãÒÆùØÕÁ!úàØÆ#ùâÙÁ%âØ¾ýÚÚ· üØÞ» þáÛ¼ ùáÛ¿èÙÃèß ëàÆÿ éáÉéàÈüýëáÑñÜÖêÕÚàÕÕüú æÓ×üø æ×ØøùäÝÜøúåÛÞúúÿÜ×ÝûöÞ×áöõæÚäöóðÞèõôòåèúõ÷âîþû ìâëöø îâðúùøßñ÷öûàô÷øõßõõöôÝö÷öùàùôôüâúòóúãùöòóßûõó çÞÿøõéàýóòöâÿóò!þÛøõóØýóðìÚ÷óé×ûæéìØõðùÜ$õî$â2ñî, à:ññ%Ý?íïñá6çêíß1áçïÚ3ëíðÖ'áæíØ)æê ô×"èêûÚ åè#ûÜ$ëëóÜåæðàâæôãäçøâèä%áéè%àèèÞ ëéûÞ òëþÚ ïì÷Öïë ñØëèïÓýäåßÓóÝß àÙøèãæáþôèðâõîðÞÿ÷ï ëÞûóíëÛýûñðâúöïÙó÷ìîÙéúêìÔòòáÒ÷ õ×ÓñôÙÖîñæØîòí×îóåÜêýòçÙíóàÚéóãÝéþôðÞêþóõäéô÷äêôóÜæüð åÙäûë äÛãúìäÚçüðâÜæþðæããöíôÝÛöéåÛÐûéãÖÙõýÛ×Ö þÿߨÙááÓòáÏðåÉþõàÒåÝÏþüÞÜÓûãÛÕþüäÙÕûßÛØùáÚØû÷ÛÖÖüôùÒØ×öñþØÙÚüñà×Û÷ñ äØáþóãÜäóæÜæýõåÜãúóßÛäúó÷ÙÜãüòòÛÛåùñøÙØëÿôØÎäöîüÈÑã÷îþÍÔïÿòÔØöùÙàïýóëäöøúèöøþåôý÷õæöùóâõüö æâõøãßöúöÿÞÛùÿöÙÚ÷÷ñ ÛÐúùòÏÏöõï ÕÏý÷ó ÔØýüô ßãÿýûîäèçð ïâòöûëâÿÿ îãÿûðÞøó êàôïñÜñë ëÛëèï×ôï êÙìáéÝòìåæíäÿîæíæþîæîåýíÞîæþàÜíêüáÙõëÿßÓòëüÕÑðêúÔÎðéûÒÌöðýÑÏõïüÖÖøðþÝØ÷ðý ààùòýìÞñãøêÚíäùÜÚíìÿ ßÛõðáÝòëå×ïç×ÓòèÕÔðèÕØóêýÚÕíæûÝÐõêûÜÑõîùß×õîùåáóîø òèôóøûàûôùï×ùõöäÒùôóÜÓûøôÙÙøñïÛÜûöðÛÝùõïâÖþüòÿÙ×úùïç×þúð ìÜýþð÷Þõøá÷ûäõÙóñÖïçÞî åàñéÝñ çÚòäØîèÜÿîôâýðåÿôéÿóäýøûßý÷÷ÚÿýöðÝùñáûóãüüÞþú÷×üþõíÖ÷ùòîÔûéÖøéÖøûñæÔýòßÖüüí äÕüýîåÞöüêñÝüï íàôÿìóâöûíúäûðÿåöýíÿÞóñÙöþíî×÷í ìÖ÷ÿí åÒùïÜÒôþé áÙöúéòÛùìùØöûé ðØõ÷çëÜòùæ íÙøê ìÞõùéùãõýëáùîÞùî ôàòûê ïÚ÷íàØðûèâÛóì ïÚöííßðüê õÞóýì ïÚðýë éÝñÿê êÜïüê éáíùç÷Ýïêòâîùêòãíûííäêÿíôãðò òáêúî ôãðýòãó÷ßóùõáðöóãïûõòàôùêÜòÿ÷çâïþöðâðüøñàñÿù ìÞïù÷ êÙðûáÝîùø éØñü åÖìûúê×ïúûðÛîøúðÞòþþèÞíøú àÜìõúãÞéõû æÚìüýàÚçõûÜÞæñú çÝìúçÙíþàØèøþÙØèóüÙÞè÷ÿ ãÞíøéÚëûçÙîú çØëøÝÚçòÝ×çõÜÛèó çÛèî çßæðÿîÙëôãàáìþäáàêüáÝâìüÝÛâëýÛÜâëþÝØäïÿÚÙÞçüàÙàëüãÜáêüäàÞæûçßàæü èÝâéýåâÞçû ëèàæûðåâæýìæßåüõáàçýñâÞèüóãÞèùòáäêÿìâáèüíããëýðâãëþòÝèí æããëýìèåìþóåæðôÜçð ìâáäýøãíôñæëòñâìîïåëï÷ÞïöïàêïòÞíðãÝêî àÜéíÿêÔëô áÖêïÿçÖñóêÚéñïÙìð êØíñâØíòÚÝèìý ÞØïò àØéíüéÛíóÿíÛñð çÛïñþ ããìïýõßïòñÖéçü êÕäåù é×ëìýäØðõþ×ÚìñúýÕÖêîùÓÔìïûÖÖíóýáÚíòýíÜððþðáìíúõâñòýõÝðóþòÛððóÖñù çØíñüÞÙðñþÛÚïóüÕÜïïúÙÝíñúàÞòøÿ éßñõÿíÛõúìßíòûöÞíóúùßïòùþØôúÿ ôÖïòüíØðôû ãÜïòù ÝØóöûÌÓïó÷øÀÔïòöúÉÒòóùÿ×Ûðíöðäóõøþâ÷þüùßöôû ûÞôöû øÛóùù õØôùø ïÙð÷õ ëâòðõóßùùú èÛóù÷ ÛÞòõ÷ ÝÞøøùäÙ÷ýû çÞòù÷òâõ÷ùößòú÷ óßö÷øöÜôü÷÷Ùöþú òÝóöö ÷Ûøÿú êÜóúöëÛûýúçÚûúû áÝøþú ãÞúü äÝ÷ýûèÚùý äßçëóíäðÿüôçõõäñïÞó èÝøêÙðú æÚêôéÙôü âØìò ÛÖèô ÞÖíó âÙíóèÞóùñäñõôãìñüñàíóúïÝîìúïØñóúîÚïóúóßöóü÷åòóøûèïô÷ûáðùúîÜðõõê×ôúøî×óùøóÙùúø ëáîðð ëáóõðëÝñøï ëÚóóîêÖ÷øñîÔþÿõè×øúñ àÜôñê âßõõê êåóöèöáñúèòÜõýëñÜøýí÷ÛþðôÛüîíÙúþëæÚõôåæÛúüééßö÷èõßýÿëõãüÿíúéüÿíçþïÿêûîçýïâþîÿÛþî ñ×÷ýë äÔüþì ØÖüþëÛÛúþêáÜùüê ÜÝúëáÝ÷ùè ìÕúìæ×øýìéÚýðéÝùüíëÞöÿìòÚúï íÔüðìÖýòóÕöìÒÿôÝÑùþôÔÕóôïÙÔõüïÙ×÷ðâÕüóÚÝòùíèÝ÷ÿòæÚõýñýâØöùñá×öúòßÕøô×ÒðøíÕÐóúíÔÏøüòÑÐùûõ ÐÏôûó ×Õðöî àÜôúð æßòõñ êàòýó íÝíòð éÞïõïæäëîí ïáóûõêÚîøòàÔíóñØÓêñïÔÒñõò ÕÙïòò âÛíïñ áÞêñï äãèñí êäéïñ ðãêïñòáíóõôßìñöóßìòöðàìñö ïÝéðó éÙêïó äÕëöôßÙìôöæÛìô÷ ëÛìó÷ èÞìó÷ îßï÷ùôÝñõû ðÝëðùìÛíñùä×éîõã×ëõ÷âØéñöß×îòõàØêîõãÑàæð×ÎæñöÿÓÖë÷ äÜëõ ìÛê÷æÞïù ðÚêïíÙæîïÝæôóáäéÿöãäéþöáæëôàèìþöàñôðÞéïêÛëôäÞçíûêÛìíüæ×ëîüÚÜèíúãßîñüëÞíðûèÜíôû ãØíòùÝÙîòø ã×ñòùàÜïóù æÞðôù êÛîôù äÜñöú åØïõøà×íóõÝÙïñõßÝò÷ù æßôøû èáöýý éá÷ûþ åÝöÿýäÝóúûæÞôûû ãÜõùú âÚõöùæ×ùýãÚõúøâß÷þûèÛûý ãÛ÷þúëÙøúúêÛúüúëÜýüëáøûú ðà÷ýùñÜöýù èÖóüö æÜòüõîáóö÷ íãêõõêãîû ëâòóàù õàñúáôûâòúüöãðøùûàðöùûßíôöýàôúý÷ÞïøùóàôúùøâñùúýÝôùûôÝòõøïÙïïôìÚíòñóÚïñòûÚòòóþÙñóòöÕòòòðÕïëïøÒöóõòØòðòðÜöõöìäñïññåðïòñäïôñêæôõóëéòîóðåñîô ìäêïò îäèïðêßîñòÛÖñóðÐÖðëì ÚÓðôñ ÜÔñíòãÕôòõèÔñòôê×÷õøíÙøôùõÚüüýìÚ÷úûáÚûúû ÝÚôöößßîñôæÝõûûýßÝòûûÙßðûùÛÝñö÷ØÛôúøÕÚòõ÷þÕÞðû÷ÞÝôüøàÝñùù çàñøú îáóøüíàíôöíÛìö÷ýÝÜäòðûÛÛìùõøÝÝêöóþäÞñõ÷ëÔõùüãÙõôüïåööý þíüùÿ!çûþùáõøû ëâñ÷úçàïö÷ìãëõôôåëöõûèòûúáõýüûàñùùùáîô÷õÛìö÷ ïÛìôøïÞëúúôâïþûðçí÷ù÷èïýüöèîüûñåíúúòãñüüíãðøüïáòùýëÝñýüãÞòþû äÛòûû âÞóüëáïùúïáíôúîáèðöìßïùü æßëòúêáðüþìâðúýñâõýôèóýå÷þáôþôßðùï×ïùÿßÖéöúÚÕèôõÙ×éíòßÛêìóêäï÷û÷æôõþÿçóõþãøøýßòúÿ÷áòüõáðõþðßï÷ý êÚïöý æÔðöüà×ðòûéÝóýñáõþõÞéñþñÙò÷æÑùý ÙÐ÷ú ÞÖôöéÔôô áÓðñØÔìîû ×ÐñòþÒÎìêöÕÎîî÷ ÚËïíø ×Ñðë÷Ý×ðòúåßîòøíÜóùü çÛóøý æÐõùÿÚÎîô÷ÕÍïö÷ýÑÏîóôûÒÒìôóÔÑìõõÓÔï÷÷ ÛÕõûùãÐùþý ÜÊúÿýÏÉóö÷ÈÐõû÷ÌÔõþ÷ÕÔð÷óÕÐîòîÑØïòîàÜóüòîàðòñõÜè÷ï éàìýóïàôûðàòûøáòûøÜôúðÞé÷òòÝíúòëÜìõóèÙéôðæÚé÷î ìÜèôíéØêøïâÚêôíÞÕêõíüÖÖéøëÙÖëôëÛØñùí ãÜîöë íÛïöê ë×ðøì éßôõîõãõ÷ñúãôòðûåîóíÿãòùî÷ÜôùíëÛôûî åÞñ÷í çâñ÷ìñãó÷ìõÞøúï îÜõ÷î ëÚöõî èÔ÷ûîâÔôûíãÝñùîîéùþôúë÷ÿõùéùõøèöûóäü÷üâöûòöêôöðÿèô÷ïýâóóïôÝïòìñÜ÷öóøØòóð ïÜïÿïïÝõø ìâò ö ïÞôúäÜïö åÞñôíÚì ð ëØíô ìÔèýïàÖìðÛÔíñÝ×íïçÝìúíôßñýñòØðüñ åÕïöñ âÙí÷ïãÚíöðçÝìôð ïÞïöòôÝóøõóÙôúö ëÝíõóêÝòôõæäììð ðãòõõ ìßíîóìàððõìÙïí÷ àÞðê÷äâôîø çåñëù îÝëåõãÛæ×ñ âÜôèú âÝôì æÞùç éãðÖöàóÐ'÷ßé¼/"÷àñ»<#ùáé¬;!ôÞö¯Bòàó§:öàò°7 úßø¶3!úÜù½*ñàö¿ùÚùÕðÜøßó×úì äÞùõîÛùû ëÙöû ïÒûúãÛóï èäõìíÛú&ìÿàÛö"äáÙ÷ ßßÊü%ÞõÅÊ÷×øÇÏùÖþÔÎ÷ÒÿÓÌôÎüÌÍóÌøÊÒñ ËøÑÓò Ìü×Õõ ÎÝÖô ÑÝÚö ÔßÙö ÕÝØðÑàÓðÔÕÕëÑÙÚñþÔ âÙí÷Ö ãßñýØîÜñýÚ äÒõÝÓÓñøÜÔØôýáÜÙõúãßÞðõáìÛôøå éÐòøåàÐôùéâÕ÷ýîåÝöýïåæïðêìâó÷ð æÔô÷ðØÒóôñÙÖòøòàáí÷ó îèðòôøçóô÷úãòôøóãóòøùßôóûøßóôýáõöÿßøööâõúóæôöùæóôùäòïúàíí÷ØéæýêÙæáýõÜññÿãñð çóóßëëðÛêìéÝçéÿêáìëîáìñêèëé÷äëêöÜèêëÙæìèÒìóàÔëè çÜìëòÛìïõÚïïíáìèêìèëñêëðñíêîýâîò ðáëð ðÛîð èáèé óàðô ÷ÝðöøÚîõ ñâìð üàíô ÷àíó ðåïõ ðèï÷ ïéìð ëãíòàÙæëûØÛåêãÚðö æÜîò ëÝóù éÙòõ áÓðû ÖÛéïæßðö ñáî÷ òèëïùãí÷ ñáìð ñÜêò çØâèáØçïÞâÞì îáèííãâíøãæåõåØèõçäéøêäæÿ÷âÜïø èÜìïøáÛêôòæÕÿõóÞØðèáàÿê éÞå åÚþøáåÛñáæÜðÿßîÞúøäðÙøöåçÙýèâØÿûèãÛúëæÜî ñãÿðùàñ ëàøÿëçáíøç êÜôüê çÜïúçíáôþëòáïûëðèìúêùáóÿïòßïúî ïßðóçÜñõãØóôáÜñúðîÞööòÚ÷øç×õö ÝÖñòÙÖñþóÛÕ÷óÕÕùÿõÑÖö õÏÕö÷ÑÖó÷ØØü ý ØÜ÷üãÜûçÖóÿ âÕ÷äÖúáÖø ÚÖúÙ×ý ÚÖþþØÕñ÷ ÕÓ÷ü ×ÓñõÛØñù ãÛïöéÙñüå×òú åÓôøÞÕíóúßÙíúû äÞñõúñÛ÷ýñÚøýýð×ôúûìØôúúéÖõúø æÖïôòê×ïøôêÖñÿö çÒîóôàÐáóìÖÐêôÞÔêøåÝèúëÙí þáÚïæØðý äÚêø ì×îú îÙèúø éÔìùþÜÔáìïÙÔåôïÙÑëûòÛÕìóàÙìýñáßêüðæßìøîíÛí÷îìÙê÷ë êÚë÷í éÝîþð ñÞñó÷ãïöñúãñþô ðáîúïçäìôëóãðùðößóùñóÞôùð ñßð÷ïõÝòøìõÚôùîòÝï÷ìóÝõùðóÝò÷ìõàõûð óáóüîùçôöìâïûéôãõûëößöÿììÚõýêáÜñ÷åäÛóüçæ×óùæáÛõûæ íÞóôäðßîöâìßïòá ñÜòóáðÙúûèïßõñèöÝúùííÞûýí éÞùõìäÙõõèàÙôôç çÚõòê éÜôöì èßóôëíß÷öî ìßõõíëÞö÷íðß÷ðíñâööñ îæõöñ îæö÷òíãñôïêáóóð èãðííêæôòó ñãìëðîÞñåì èÝõëí æàþëðëÞòø íÜîù ëÞðýíßéúìÜóþîÜîúîÙÿíúéØýíûåÙùêû êÝûíúêßùîùèÞôçöåÞøîøèßóé÷ìÞ÷íúìáõêúñÞõðýðÝôîýöÜöðýñÝóîûñÛñðûîÙóíþéÝòíýëÞñïûèßíì÷éÛëéöìßíèöú×ííúóÕìíûèÕìïûãÙëëüæÝêèüíàèéûõãìíüÿåñóèìñÿäìõæîï ìïô!òïõ%ññô#ïóû%ëðùåðûýìèïþÿíì÷ÿüîçîùýêéóüùæåðúùåëôþöâêñüñãçðøñäæïøøäæñù÷âæñø÷âèóùïâçöúçÞæòø àßèóúâÖçñú×ÒâõøÐÏåöûüÌÑãõúÒÕå÷üÕÒéõüÿÐÒãñ÷ÖÔãðùÜÖéúÿÞÖèøýÚÙçõùÚ׿÷úÖÐÝñôùÍÐâûùþÎÐèýüÑÎðËËìýûÃÐò ÑÐëþ×Ðëöû ÝÍÞëõÖÌâô÷úÏÑäø÷úÓÕìüÿÚØèýúáÝêûú åÙíûüÜÖìùûÿÔÓêøúøÑÒìþüöÒÓëúùÝÒéô÷ÞÔëôøߨìøù éÖêùùåÕæóõßÚêöøàÜêûúßÙíûûÿߨí÷øãÑëöøÚÐêóõÖÑì÷öÚÔíöößÖòûùæÓðûûàØêôõæÛïøøñØ÷ýüêØ÷øûåÝõôúíÜî÷ø ñÜèòù õÜù ñÛý éàúñßöþóÞôüÿìÝðùý éÙòúýçÖóúú ÝÖñôø ÜÙ÷ýý ãÙõýüåØõþüä×òöúâØöþüÿÝÚôþûâÖøÿý âÙôúø æÜñü÷ èáôþù îÞ÷ýý îÜóýü ìßñúù éâòþúîæõûøôàøüìÛóûøåÝôýúèáôû÷èßõûößÞò÷ó ßÜöüö æàñû÷ôÞûþôáùýóÜûýãÙ÷öøÕØõ÷ôÓ×õøõ ÝÚõøõ ëÝûûúðáûüüíÞöù÷æãòöôòãø÷øößûùù÷âö÷÷üáüÿüüàôó÷úÙðýö çÛòþõâÞøø ßâôõæäñô íäòô÷ßôöçÜòõ äÞôõòÞðÿó÷ØðûïîØð÷ï äÔïûðØÑ÷ýöÿØÖíôîä×ïöïßÜê÷ì ßÙõ÷ò ÞÖøùö ÞÙôöõ äÜô÷õçÜôøõåÛôûõ äÞðòóêÙöõõáÚïõñ äØóôó âÙôóôèÝòññíßñóñòÞîòòïÛïòó æÛïñô åÚôùö äÞïðò çÝôööäßïõöéÝóö÷éáîïô íßíòôëÚðîô åØíîòâ×óõöæÚõð÷ êÚøõøíßñîóðã÷ó÷ùåïïõúèïúù úíôõýìþéùþÿçïóÿüåëêùåöøý ÷è÷üèøøåõ÷ÿåûûç÷ôÿæööýôæôóùóàøõûòÝùñüìÜõòøãÝôð÷åÚóð÷ äÜñïõ ëÝöí÷ ëÚøòú âÚóëõ ÞÜîëó Üàñëóäæöñ÷êæóîõêåõì÷ëáòêôëàòìöíÞõîøêÛ÷ñû èÝöóù ëÝ÷òú åÚôìøâÜïëóéßòìôîÜ÷ðøàÝñëô ãßññõêÞóë÷ïÛøóûòÛöòû òØ÷÷þîÙöðûçÕöñùá×ñïö ãÝïëòîÞìíñ êäéëîòáíóô óßíïó òÞîïó òâðîôýßóõ÷úàñðöûáðîóýãîîòäïóôäïóöýçò÷÷ùäñôõùåòñ÷ýåñõõÿäñóöàïðòàîíóÿÝòù÷õÛòõöïÞîïôõÚñô÷íÙñõ÷åÖòõø ÞÕëòôÛÖîööÞ×ñõøàÖòõúßÓòýûÞÏðöýÕÏÞãó ÚØêðþéØîó è×éë âÖàâã×ìðæÔâé ÛÜÚÝáÝÝÜáÖ×ÛãÒÞäãÙÛß î×åéèØÝâ åÙÛß êØÞæð×åéì׿è ìÜåëôàéîúáéôöÙïüîÐåêûàÉæñú×ÊíùÙ×îúãÜïü ãàîýìÙîú êÙçñÿ êØñü æÐðüÖÑì÷øÜÎîüöÜÔï÷ôçØòüóêÜíöð îÜñùíïâðøìúäòÿìüÞóì ôÜðüè óÙóéåÝôç ëáöç öÛõçìÜòüáêÙöâäÙôàæØùãäÚ÷áæÚùãßÚùâÜÞþçæàýç íçéúè éÿåéýåýèúÞ÷ä ìÝ÷ã êÞü å ðßÿè ñ×éÜÛû äàáú æêÞÿèåÚþ èÞÛû èâÞ êçÛëáÜü çäÜþéêÖ éãÕþ ëáÜÿ ëèÞ îâß ìãÝ í åÝ ïíÝ òîÚôýé æÙò ßßÿõìàúóÝûùïÞüûïÛøøùçÚøùõåÞóôôìÝò÷ó äáòøò íáôøóëáóúò éâôüò ëÞôøò èÙ÷üóàÙôöðäÞñúïèÜöûòÙÜò÷ð àØõúòÜ×ôýòÛÚöþôààóúóçàòýóæÛôúòÿÝÖòýóûØÝñøóáÞôýôáÝóûó áÞòøóèÛôûõíØ÷ÿùæÛòùø ãÝ÷ÿúÞÛòþöÙØñüõÙÚñúõÛÕóýùÔ×ïøôÖÞí÷ó ÝáñýöåÙðüö ÛØëõô à×ðùø ÞÖïûøÜÚôþû âÕñþûÞÓðøøÓØé÷öûÒ×íüùýÓÕíøùÐÖí÷ù ÚÙðùûäÚíóùèÝíõúëâí÷øïÞïöý éÖóúãÑñú áÏõú ÛÍõÿÙÕïõü âØñòþ ÞÙïóý ÜßñóýèàíïûõÝòõðâîôÿøæôõüäñôøàõô ðÞðòýïØîðüîØëêúñØëìúîÔéìûåÔìíû ãÜíïüïßæñüëàèõþòÜéù çÙåôüÜÝåñüÝáäóýúåÙãïûóÓÚÛåóØÝáçöåÛãìùäÚåìùèÜæëùìÞäé÷òãèëúøæçéüÿãìîþ÷äèçú öåâè÷÷çäæùùåèíü÷æëçý ÷äéíýöáëéüñÝêêýìÚæéûðÚëêüñÛêéýîßëíþ êßéèû êàëéýïßììþ ìáìïþ îæçëûóéêîýûêìëýÿæììãíòÿÛòõößîëþüâëçýÝïëüàççüúåìèþûäæíýïâìþ îÝîúïÚîüïÙïý ìÕìøåÒëõÞÒëõþàÐóøÞÏëóþ àÕìõþëÒòóßÚëôýàÞòðÿåÛíîû èÞìñûõßôöøÝùùðÛõó ëÜððþ íÝóôÿ ìÜò÷þ îÚðîüïÜðñû÷ÜõñýìàõîûìäñíøòáóìùïàôîúëáôóûïàôïúñÜöñúðÛôêùñÙòíù êÞõîùîßóîøïØõðø ÞÝïéñæÜ÷ôù çÙôñöÛÚó÷öáØîêòàÔîúöÙÓóüùÚÑõüÞÎøÿÚÓõþÿÝØößÓóûÒÜîý÷ ãáòûù çàöþüäÝñúúæØñýùçÚôûú îÛõúüéÛñúù èÕòûùÝÔñ÷ùÜÔïùøÞÖõ÷ûâØòöøàÜïõ÷Øßïó÷Ûáîõù äÞñöüæÝíóøåØòöûáÔñïøæØïîúíÜô÷ûîÚóôýäÕòíúÝÖìèôáÓîëô ÚÕêçñ ÞÜîíô çßôôüçáñòúæáðôúêÛððøç×ðñùáÕóòûã×öõýàÙóñûÞßóñùâÞðòø äÝðì÷èâííõðÛôðù æÙïîöà×ííõÞ×ðòöÝÜîìõ çãóõúïâððøèÞðöùèÝòï÷ï×õõûéÝòñøîâõöûóå÷ùûôå÷øüòåôüúòàõõúéáï÷õ îäïõõòæîòôõàôõ÷ñâó÷÷#÷ßùüùóÚõöõìÛô÷ôïßöòõóæóõõøíó÷öþìøüûýãëðô óàíïöøßõûþ ÿÚùüý×ñõýõÚóòý÷ÚõôþñÝñòýñÛðñûíÛðòù íáóôø÷èîóöéðñöüéôö÷üå÷üöýäñòñ!áñ÷òÿÝìïïøÚëñïóÛðñîôáó÷îõäò÷íîçñøíòçóöí ôïîøëéóÿïúçïôëùãñ÷ìöÝ÷ññÝ÷ÿòïàóûîôáõïöß÷ñðÝõïåØðûìÿÝÛìõèæÜôüíçâòì ðäúôûÙïí ìÚíï ðÚô óôÚûùöÛø ÷ ðáôõúÞòôîÝîð ëÜóÿò ïÞëüí òÞïþïìãñÿï íßôóëáññòÝôó ìßêûíïÜððëÙìûïæÚòÿñâÙðþïÞÜíúìáÙïýíÿÞÒòÿïøÒÎíýíýÕÍíýîÜÎôýñÛÎóûðüÕÓíúíäÖñýòåÒôÿóüÑÖíùëûÐÖïùìüÑÜëòèÝÛîùìÝÚïøìÛÙðüðÙÙìúî âÕóúñáÓñûòàÒòúóæÎøÿ÷ÿÛÐôþõúÕÕïúóýÕÜõüöÿØÞóþößâñüõéàõþøçÝôüùàÛòüøá×õûù ã×ðüø çÕöýàÑìíõÓÔõñúáÎü÷ÖÌýÕÒ÷ôþÖÔúûûÍØòòûûÎÚôöü×ÝóòþæÔñïüÝÕíóú ßÖñ çÛðûñÝõñÖõ Þßñýíßõþêßñû éÞóú äÝïõþæÞóýìÞîöýñÝôû ìÛôù çÛóôþçÞðôþðâøû÷åô÷þèïóþÿèóúüåõûôæòñýñáóõýñßô÷ÿõÝðôþõÜñöþ ðÛóôý ãáðõú æÜïñü áÞëéöêäõñýòàòòý êÚøùàÝñðûãßðôý äÚïóúâ×òòûãÜííùñÝôõþñÞ÷õÿðàñóüóÞøùòßòôüõàóõþðáîìùêÜêéö åÙåèñ èÒòøú àÐïðøâØïòùëØîð÷ ãØîòøÞÙëïö çÕïñøãÜèëó ëÝïóøäßíóö çÞéðôêÛëíóîÔïô÷ìÓîô÷ìÓíñ÷ìÔïóø èØìñ÷ éÙíòö äÙíñôÞÞêðòéÛïõøäàïõùèäïôøîßóóúéÛðóù èÓòöúáÑíóø ÞÕïñø àÜñôùéÚóùûáÞíôöéâðõ÷ òâòúúöäðóùçñùúãðùüôßïúûîÛõüþ èÚìõø èÚñûû íØòþý èÛñýü ëßïúù ëâñùøêæëõõîèíöööèì÷õ÷åïôõõæîú÷÷äòùùöäíøøøßðüû ñàìöøøáïúúûàòûý óàñúû îáóùø êãð÷öåßð÷ùÝßëôö âàïùø æãìöôêáðú÷íàðòõïãöýúôãéõõõáêô÷ öàïüü÷ßôÿñãôþþìêïöú÷íñùûìî÷ûþêñøûûäêñ÷ôÝëò÷çÛëóöåÛèïõãÚìùúáÖìó÷ãÓðø÷ÿÝÒî÷øüÑÕîööÕØìòôÞÙð÷öäÛðú÷çÛñõ÷èÚîõõ åÓðòôÜÐðôôÖÐñöõþÓÏñöôüÒÎìõïÑÐïòðÕÕïôðÙØðóðåÙïõñèÖñöóåØïóó åØöøö çÕóõö ãÖôùõ åØóöõ æÔøÿøßÔôùöÞØ÷öö æÜõùõ éÝöö÷ìÝôøöìÜõú÷íßõýøòâøýûúàûýõáøüúõâôøööáôúöïÛöûøçÛòúõ éÞøýúñäôú÷øäô÷ö÷àôù÷ìÞòõõîÞóõööÚõüùó×õùùîÚôø÷ìÞô÷øíÜöúøëÛòóõðßóðôôâñõõòáõ÷÷ ïÞïñòìãëéî!üÜðîóòÕìðóíÖìêñî×ôôöëÏñ÷÷ èÐñôø îØòùú îÞóøûçäéêó ìÜììôßÜêóóÝÚëîòáÜëíòêÜêóóçÜìëó âÕðõõÖÒòø÷ÖÑðôõÜÍóó÷þÒÍïõóÒËôüöùÉÓíîñÖÓóõöÔÕîòò áÒôôöÚÖðôöÛÛôö÷àáñø÷ íâôõøöáòòöïÝîðôæÞïóòãÞóúöâ×óóõÜÕòñôäÚöøøîÚõÿý ðÜôýúÚþøÿùÙýñÛýúÿ èáãþýðÞ íáóå õæõùûñèý ÿ îæíìÛ÷âøéðåíñëüÝîüýóÜðû ðÜüùèìáòýÔóãóÿÝäÑÕéíåÛÑé ëöëðïóåÖÔèïÎÛÎå âÐÞÛÚüÝÏÓåá×ÐßÑáàÞìáàìÕëÚâÖÒóúàúÍÀïýÝèÂÏîòÔàÔöùÝáïøß îÛäõÒÁýôßæÂ¶ñúÛ÷ÆÞø÷á ãä ê ìÒÿçäé êóåðìÚððêö+õ,#4 75 L0%:^4O9AME½H,7þÍñÙÉ ùàäúüôîÔúù5è üý L7Ü"ö,p9Ö; MÑÚûùÿß÷ £é ëÆ5 81³óÔØæúÿBöÇæóúñÈúåæöA†öøÑ©Ûâêô×øêì÷I ØÞü°¢ÿÖäì-ýãêþ2 ÎÏá?øÍðô?éÓÂÐô×È£ÅØóǵÜÍÐôþçØÖãÿbÿÓÃÓø®ÈÎÔ×ü,åíÌÕúá«ÇÒøáµÑÏãûâÝÐÞÝÓÎÊÐúZúÌÝãÎÑßÑãÿñæÎÓâÿöÉÕÌÜüݯäí#ËØßÞÅéôصéÓæû—ÁßâùAö½ð ÚÒÖóÿçÍÄ×ò³Àì×çþéíÒçõåæÜýJþÆÛêÕÎúÍéúÌèúá®ÕÚûòºøÅÈï üòêôê¤ÍÜøÅÒÂÎÕÝàúëÛÈÒÔôúØÒÒåø1æÔÈÑô»ÈÑØãùÜÁÄÃÅìÀÐÝåèîÖÍ×õÛ ÷ÇÕíéè¦ÙÙù ÂÚÞõôÐö÷ ÿÓÚÆÒñ"æÌàâû¼ØÕîìÁÍîáçûüÌêè1éÜèìÛàŸíäú¶ÜâæúæâÞ÷ñ éòñî$þÅöèÌÒÏñíÿ4ôñïí Üóã5ô¡éëÿÞ¿ýæë äùüâðé÷àüû þñóõ!Ùüü) úêîî&þâîí*)þèï-ýèé,%Øãé)-îëÚå&éì*0Øðö.ùÞéø(òóÜë& éðö"ùÖæñéïóû(êÿüøßÿ!ðÝøõãåüìîú!ôÞÿèÖ ôããð íÙ ñ âÛêìæèíÛèÛë à+îÉ àËí Ý0òäÞë× à ãËßÜû Û%úÛããÚ Úêè Ù,ÙÛóò ×0 ×Ù!îáÙëßÑ!íÖÕåã Õñ× ×êßÒ"ñê×%þé ×÷â Öñâ ×)õÞ Ñ&ëÜ ÑêàÏèØ ÒåáÿÿÍêÜÓã×ÑÛæüÍ#ïÞÔ$íâØæÜØáØÛãäÚëÞýÙ çÓÛàÕýÜáßúÝäè÷ÿÜ#ðÞúßåãöàñÞóâ éßðÞá×ÿé ×ÓùàÑÊãËÏ÷ß×Úþ äåÔùþàãàúá#ñßôâ÷âôäôèóåøÝñæìãðé ðèîæùàñéòáìÿëòßâúçéâäòçìéæüéñêéýìñçèÿðøééÿòùëæóýáæúõóèäýôûÞçù ñààòõóêãüø þÛåúúôßåüü÷äßýûðêâýýùáÛóúîæÓ÷÷ôåàïãÞþóãÞ÷æÝý ýàâü òàÐð ôÝØöøÝÔòõÞÔî íäÔìÿñãØðíÜÑèÿéÚÔíèãÕêþñáÙîïØÒèÿÿã×ÔçèÙÔçÿéÖÔêüéÖ×éõÒÚìêÙ×îêÛØçþãÜÔäþæ×ÙëýâÙØë÷áØØç÷ÜÜ×ëøáÕÞðüÞÖÔæýàÔØåüâØÛëýäÛÚêÿêÊáëãÐÚæ èØÞééØàêé×àìé䨿 øÞæó ëààìúéêäíýÞáéöãÝÔíÞÜÚôåÖßú éßÝùôßã òÜáúôßÔî ðß׿ øÚÚæ èàÖçíâßï íØÙæïàßÚêøâÝÞê÷ßÞáåíÑåê à×ãë èØæëèßëî æÛëîãàèåêÜóíêÝîê éáóñöÕöï ì×õòíÛôíôÞúñõÚ÷ìÿïß÷ïþòçöîþôäóíüõÛøïý èÛûïþêÙøìÿãäþóôÚýïÿèØóü æÏùþçÍöö ÚÈ,òóÍÓ<óñÕÝNúõåÙKõñãØLòòæ×HóïßÐBîñÓÖ9ìðÞÑ0éì ÞÕ-îëàÐ%ìê×Í!çé ÕÍéì ÓÓçëÚÒëëáÜëìäÞ éìáØ æîÏÒäìþÈÙêë×Ñîï äÑôò äØþíîçÖýæï ÚÓùòñÒÓ÷íïÔÖ÷òð×Ýðëíäàõõó ëßðñóçßóûøÛÛê÷òÛÐìóòþÖÔæòð ãÔìûöêÒèùôëÕêøö éØçûø çÞäû÷åèá÷ô äßáóóâßÞ÷ó ìÝâÿ÷áÔÜþôüØÝàöèÕæ ü èÕæý çÐâü åÞâûýÔèþ ðäßûùäâý öìßùÿêÝøüáÝ÷ ìâßûìÞàû ñÛÞûùÒßûôÓÞùòÒßú àÚÞùÙâÛø éÝÝ÷çÞÛýõ èåÜýõôäâú èßÞÿø ççáü õâäýóßæýü×ÜøúóØÖ ûìÕà äÝÚ ïÚÕ# ÝÞÉ$àäË)éáÁ îãÇ ðÝÄæÕÂÿàÖÅÜÕÆþÙÑÌ ýßÏÏüÞÓÏúÝÎÑùÔÖÏüôÚâÑøñ æå×þôìàØñò ãÞåüø åÙæûõ äÜòúëÚñø÷ëßóùíÚïõö ãÚñõõ àÜìññ âÛïóðßàðõî èâóðïïäö÷ó õäöôó öæøïñúÞõõòâ÷óñøàûõòòäÿññöÛþîïïÛüðíðÚüììïâôñöãóóöçññûçÿëîûÝóðïÝöññÕ÷ôîÐ öóæÓ öñèÛ õóìàóðèÙ óîÞ×îê×ÞèéàßõðåÞ òòçÞòòëß ññêØ óñæÜîð òÜ ôö ùá ïôåóö úé öõ#÷ðéôûíßîúïüãëúàýëíåâõðíÞõõ íä ðõ!ÿâñöüßðó÷ÚðòëÝêïðÜìñëâýâîçèþïðïçýêîôâíò ïáüèð ðÝüæññÝûçïôàÿïòûÛêôóÞúçðöåýêò ßëõ÷ãûãñûåûîôöçùéòúßçÖë ïãîÞõõäûé õàüçôÞõá óÞóæ÷ÔïÖ íØèÔ íÑôßÞÓåÏ ÝÖëÙÞÖîááØìß é×ïÞäÙîä äÕóã×Þîáþã×ðëÝÚêæùâÖíêûÞØîæùäáïò÷îàïæôéÚðéô ãàïñôìÛõôùåÚìïòåÚíòó èÛîóñ æÖóõôàÖðùóþÛÙðõòãÙïõòã×óýöÜ×ñùôÛÜóþ÷äÛæëñäÖïùøáÕô ÞÕøߨðûæØðû æÔëôÿÝÜäîøìÞíûýñßëøûòÜîúýóçíöû$àöÿùåñüüýßôüýôÜîú÷ðØîýø âÞëúô çÚð÷ äÖìÿòÞÖîýòßÕñòÛÖïþñØÙñóÞÔóòÜÏòóÙÑîð×ÓòòÒÒõ óþÐÐ÷ôÿÒÏòïÓÐóïýÌÎóïúÇÎòíþÌÒ÷ òØÒù òÛÑôïÙÑôîÝÖø ò âÔó ñáØñðáÕðÿíÿÛÕò ñßÓû öãÔö öâÚö ÷ èÓù ÷ÝÚôóìÞ÷ ôõÛ÷ öñÛô ñðÛóñìÝöðîßòïðæñîàû õýÜô ôñÜöòîÛô ó êÛö ò ïÜîîïÜôñìÞó ðìÞïíéßðíëÝôñêÛôðìâñïõãô óöãññòßïð æáíí ìßòñíÝòîìâïÿïóàòñïÛíûî ç×èòêØÙëõêÜÜôñçÝõò ìâîûïóçóýòóáòþó åàïýñ çÜîüð æáëóîêÝðúóäÞïúò ääîúò ëÚñûõßßìøò ëÝóø êßñú÷êÜðþø æäì÷óòáòúùîàí÷öèàèøô êßðùø éâêõöóâêôöúãèòõùæêô÷üãîõù óàèóõòãêøöùãèî÷ùçæíõúææõøùáéñøòÚìõú éÞåîõòàë÷ùóÝëóù êÝíïøíâåéôùåèôøÿäêõúýäíòüûâìöüôãìõü ôßêúý îßêóýõÞïôýòÛíöý èÚíôþëÜñõíÖòø åÜëïúëàðñþéÝðöâÜñòæÝðõ ëßðõïÞò÷îâòøôÝóö ðÙòôïÛðòíßïððâòòíÛïòãÛéëýÞÝíñÿßÞêðþäáèçû ïàéíýóÞííÿðÛîðïÚìë êÝëìþñÜíê íßëêþ ëÜëëÿßÜéèýÞÞîïߨëñ××êîþÙ×çåüÛßëìþæÛíî âÜííþèáëëÿñÝìï êÝæèúãßéìþ åßìêýéÛíêýèÞééû íßëêýïÚâáú åÙâéú áÙïò çÙñë éÙîìéÚèêæÙíëÚÝãäýÞÛèì äÙçæÿäÚëêÿãÙèìÿ ÞØææþ áÜëîÿêÞìíþíÜéîþ åÙêìý ÝÙìêúÝÚëéøáÙèíùàÒïïüÏÖëêøÕØííøÙØïîúÜÙîðú åÚíñù èÛîì÷æÛðòù äßîòù êàòóùåáòòùæÛôóû áÜïðö èÙñö÷ çÞíîõðáðîöõàòôøóÞïñöøãîð÷ÿçñó÷æ÷úûüãôóùùâõøúôãôóûúâô÷úþÝ÷øú÷âõôøùâ÷þúùæóúøæöøùÿá÷öùöáóùùòáðîöóàñøøëßòö÷ èâ÷ûú éàñúö äàòü÷æÛóû÷ ä×ôø÷áÙïðô èÜôõ÷èÛöú÷èÛòóõíÕùøùìØòö÷ïÕ÷ùú àÕóû÷ ÛØöó÷ÝÓêðôÙÒìöôÒÖôüøÚÕûýý ÚÓòø÷ÙØõùù åØôñøãØóöö æÚïöô èÕø÷ø âÕðñðåÙóôñ êÞñõïòÛôóñ èÖô÷óàÕòôñÞÛïôî ëÚóúð ìÖó÷ðäØôúðâÕõúòãÐøòßÔôûðãÚõÿñäÖ÷óþÜÓñþïÿÛÔóýíãÓõðâ×óíãÜðúì ïÜ÷ÿï îÙ÷ïëÖõþîäÖöòâ×ùô ä×üõ âÛùõ èÕý ÷ÞÙûõ èÒýøßÐùöáÔüú çØÿ û çÙüø åÙÿø äÖüø ßÐýùÔÖùÿõÞ×þùßÖø÷þÙÛ÷õ æÛýù éØýùæÛû÷ îØöþôâØëÿòþÚÔõ úÿÒÓö ûÒÔúþþÒØòûÜÜòû÷ßÙéøôÛÚñÿøÜÖòüùØÖíøôÝÖðú÷ßßëøô êÞöýûêÜñ÷ø äÚñú÷ àÚî÷öÞÛòûùÝáèðò íÞñùøðãñóöùåõúûüåðöùèòôúéõöüåööüùáñöûîãìðöôëñöùüêøúþýëïñûèòõüìñòú& ãúýÿøæîîøÿáîïöøâêìó÷ãñôöòÞõôúêàïò÷òÛöðúèÝîð÷îáðôøôæð÷ùÿìñïö' æùùýæðð÷âðóöüãëìôßïò÷÷ßíòõõÜíêòíÜîðô éâéîôúàõøýúÝïõúïÛïòö ëØëêôðÜñòøøØöóüóÕööûîÜòòööÖùúýëÙóôøíØôõûãØòñùÜØñðùÝÚèéõ ç×ëíø çÑõúþÛÔòôøâÜôõúîÙõùý çÑòôüÙÐéíöÝÕíòøèÒóüþ ßÖñóúÚÙóòúÿ×ÔííøûÒÐååñÙÐôíú ãØðëúìÜöïþîáôîÿðßööëÞçæøéÙíìúåÜëëùëÝììøïçîîøþéëéùéîîù" çóòý( âïîúÿáíêùöÜîìøèÝåêñâáãâí äãèçïèåæçïðçéïóøêîë÷ûçîòû÷äìó÷ ðåëïõðàíôö íßéîó íÜêóó çàêðôñßðþúíâðùúìßíö÷ èÞêõóâãèòð íÛïø÷åÙëõôâÝíúöåÝõûãÜïúøÞàí÷âÝïûøäÛóúÞßëóôãáåõõãàêýùæÚö áÛòþ ãàìöêßðú çåêû òãîøôßî÷ ìÚéòæÝèùíáóþ ñéîû øêíýýâñý øäéñûÙîøâÚèðÿáÛêñü äàéîùîäèõùñäè÷ù ëæëúú íæðÿþòàíÿú ðÛïúëàðú÷òÛï÷õáÞêñðâäïýøïÛóÿúâØíøò ßÖñûò ÝÖòôñÙÕòõðÜØó÷òäÛõüôíâøû÷ôßùû ëÝóÿøæÜïøöäÛíúõá×ìòñßÛîôó ëÛòù÷êàíöóëßëöðéÜêñî ïÖì÷ð ìÕìôïäÚîùíàÞñùì îÞøð ñØöí ëÐúýë àÒüÿêßÜêåßûçèÞüûå í×úúãà×ðóÜ æÕùüá ãÔûþãÞØùúãâßøüã èÞùúãæÚúûä ÞØóøßÜÛöüãáåóøâòâúèñÞ÷úåðÛùýæ ìÖôùããÖôøãäÕöùä âÔúçÝÙøýéåßþíîâþïôßññÜúýîçÕúøîÚÝöýí èÝó èÜÿó éØüò åÑüñÛ×ùþð ãÔøÞÓûöÛÙûóâ×üö ÝÔû×Óù÷Ú×ÿúßÕûú ÝÓýù ÝÐúöÙÑøûõÛØöúöçÕþýáÔùÿúÙØøþøàßõû÷çÞøú䨸ÿûä×úýæÖùüûåÖøþüç×öýû æ×ôùú ëÔøýý èÑøüüáÍøýÖÐôöüÚÐõ÷üÓÓñøûÕØðùû äÙõúþ æÙñøý æÖó÷þ âÕòøþãÞìòûðÚòø ëÙðöþêÕðøãØïòþçØôõÿç×ðô ãÚîôëÞîïñäððÿâñøààäþþßäðþäèûþçâûããùûéßðâãóôÜÒæ ðÙÜñêÚ×è êÝÞì ìåÚéõäßê ÷Þáè ïÚàâêßÜèïãÝä÷áäèõáâèøÜåèìÜåçèàãæìàãè ëßæçðàåãïâåìÿíÞåçý æãåçüíÞæëû éßåçùñÜèéúðÝííüíâëìûôâïïýñäîïüðÝðóý åÜíêù çÙðñû æÜïé÷ åãíó÷ êæîîø îäïñú ìàðñùíßóòú éÜôóù åÛóôûߨ÷ûýÝÖóöùÚÙöùúßÞõöù éÞúúý ëÞöúû ëÞöúùíÜøüûîÙûÿûê×úúøêÞöùöïæú÷÷óëýúøüåüúøúÚûùöíÚõóòêÜúù÷æÙøúõ âàô÷ñïâ÷÷õ ïâööóöâùúøùÝùúõêÖðùóÖ×ìóýÑÝíöØÙì÷úÐÚá öÖàáúãâãþèààÿãÛÚþüÚ×Ô þùÓÕÐûöÌÖÎ&ýùÏÜÇ ûÙÞÆ ßÜÀ)ÿÛݾû×ä´! ÿÞá¯Þã® çå®ö' îæ§æ-òâ®Ý0 ìç½ê;÷áºà8íܽÚ0ãá¿Ø( îáÆÜ"ðáÎ×îßÜÜääÝ×ìÜðåûßÝ÷àñ èÜåê èÚ ëåáÙ èÞßÚèÔ ãÕñÒàÐîÌÛÎ øÉØÌñ¿ýÓÐ#ñ¼ÙË$ö¼ØÌ&ö¹ÞÍ(ø¸áÐ+þ¸àÏ'ø´ÞÔ)øµ èÐ-÷¶äÕ+ö´ðÑ-ø¹ãÐ!û´Ý×'ÿ¹ åÒ%üº æÐ$þ½ äÓ$¿çÔ(ÃèÖö¿ïÚ$ÇùÚ#ùÊóÖùÈêÒ ÷ËàÏîÊÙÓìÈâÖëÌ éÖêÐ åÚñÖäÙìÔ ãÜçÔ îÜîÚ óØéÝ÷ÜëàûÕëãðØ èáíØáâëÙìå æÛ áçéÝ æëíÛçì æØßëÚ×ÿáëÙÛàîèäèõøÛøÔìïÛÛðìÕæúßÚéøèÕãøæÞæøùßãú÷ÞàûñâäîáâúòÞãþíÝüÜüðæúÛÿ êýâ#ê÷ß íðÛ"æôá!üãëÖ$üæñÝ ,êðã2éóä(êëß% èëåèáß!áèãÿãæßæàÞ"ëÞâ&îßå* äßâþìÚá#èÞå êÜé$ äÛé çÜìãÛðüãÔæ÷âÕé÷áØêòâÙð êìÓîóçÖðîèÏéõãÆêñäÍü!ûåÎ'ýçË+þêÉ -áÈ,õØÁü&åܼ÷"íçÂý" ûç¾ú øçÆü òêÁö îâÅúåáÇýïàÊý÷ÝÊþøØÌú ó×Îÿ ðÒÔåÑÐÿÛØÎüýØÝÓÿÝßÍú áÞÍ÷ àÞÑûáÞÕü ÛãÖý åÞÔüçÜÆ ï×Ñ îÕÑðÓÌãÞÄ ðÞÏ%éæ» îåÀáÝÀ ÒÜÇ ÍÜÍ ÏàËöÕçÍ îäÑ ýÔÕ  îÑ× èÑÚ àÓÝ×ÝÜùãéÞù óåâø êãâõãßâñ ÙÜåñÓÝæðÞÙéòçÙëñìÔòòûáÜîî èÝó îæàðéçäñéìÞöëçÞöýêâáöÿççâøÿçêÝúé çÙýëþäÕøèúâÎùûæþÙÍúûã×ÚúùàäàÿÿåèÞöòÝâÙÿ÷ß×ÚþæÜÖîÖÏôãþÏÔôáÜÍüäþÕÌùãûÖÎøáøÖÑøâÿÜÑûâÿÛÙóàãÞôáêÛúäèàöâôÜ üèéØ ýçßÙ úè áÖ üê åÕ ëåÔ øæâÑöåÝÒ üèÚÞ÷äëÝíæÝ÷æåß ýéäáøèëÜîßÞ øê å× í äÙúëïØ úí îÕ úêåÏûëÞÙóçìÛ ûììÜüëæàóëëßõë çÞüí æÞùîåÞøíèÚúìèÝÿóëðÜûî ðÜùî òÚõìôÚ÷íõÖÿò ëÞþöìñá÷ïðàõïîÙøðßßüõì çÜ÷ñæÜÿúð èÞÿøñêÛ÷ò ãÕôçç Ý×ûçè ãÙìïèÖ íôâÖ1êößÔAéúàÑAáøáÒHâþ ÛØAÙø ÜÚ6Øõ àÕ-ÚóÚÔ'Ûñ ÛÕÓî ÝÕÛðØÓÙïØÛ ÔêéÚßï æÑÚêÒÐÚìÑÓßëÙÜýÜê éÛýáí åÜúãí ÞÝõêîâÜôéï çÞîãì ñÞòêòíÝçãìáÕßäìרÞåëáÚè÷ò çÕæõóâÜàíð ðÙà÷ôíÜßøôðÙØðð ãÝÒûðâà×ùèÛÖûåÖÕûÿßÕÐøäÓÒûâÓÇóÿÜÖÌ÷þÞÕÈòÞÓÌôãÕÆî êÎÇñÞÐÈñÝ×ÃíéâÇð üåÇóåÈôþáÌ úôàËöóÛÎùîÜÅÿô õÒÓô äÈò û ÖÌ ó Ú× óçÛ*ôëà0 ÷ñÜôîëãöóõá!ùôáýõ÷âøôóá÷ôðÜöõéÕùø ãÜòïðïÚõøõêßíòñèâë÷óççãíóóäéö÷îåâõ÷ëæÞóö íäÛò÷ééÕõ÷ñéØöùòåÓøûñâÒøûóÕÕû äÕÐúþæÛÑùîÞÏûÿîàÌùÿ ëáËûþ ëáÌþþæÛÃðøÝÚÅ÷ùÛÝÌûú àÜÑþÿà×ÑýÿþÔÚÒß×ÎÿßÔÌÞÓÍýØÚÈúÿàÝËæâËïáÉúíåÉþ ëçËü ìæÉîäÊþ òÞÍ ëÛÎçâÍû ñßÎçâËíâÌðæÌþöàÓ òÞÍú ðâÏüùãÔýà× ùßÊ÷òÜË  ïÓË éÕÉôÙÊ%òßÀ)÷Þ¾+ ñá¸&îÝ»!æáµï㺠ðé»óäÁ  éç½ îãÅ ñÙÀÿêÛÆúñØÌüüìÛÒþ íÝÐøìåÍñý÷ãÖðþîãÙòýçÞÙòúèÜÛêûìßãíúôâæòþôÞçïý íØêèùçÜèêõôãðîøãòèúýêñæúæùåüøèóâöùêöâõ þäè÷ôáþäòöãÿåôÿâå÷öåçöôçæõøßàïòâ Üðúæßïæ ßö#â'ã÷)á.æü#Þ(Ü÷#ûâ+æù%ÿá%àô#ýÛ#ÚðñÖ"ÚðäÖ!àðáÝÛí ëÝ"áî ëÛáìåÙÖìæ×ÛìèÖÞëíØßíðÚàð!öØ$åó öÔ#åòãÕÙêÓÚÜéÛÞàë 騿ð ãÛæïäÜæðâÛçòäØêñãÔéî ßÓåï áÙîó÷×ô÷úÖïõõÜëóïÜíðà×éî÷×ß æëççðïüäððùß îíìÖ íî ÞÕôðÚØöóæ×øñ ì×õóôÖñòïÕ õó çÛìî éà õñÿáßîîÜÛ ôî Ù× óñ Ô×óî ÑØïì×Ûïì àÒòñÖÔ ùõ ÙÖ õõÙÜ÷õ ãß÷öëÜ÷ö åÝïð äØúõ××òñÚÚïð âÞýòïéÞÿõñêÝýíðèÖÿóóâÒþõô ßÞüöòìßúðõæßìòîãÝöó æÝý÷ëÖÿ û áÔùñÜÚÿ óìÞúñôÞý õóÕ÷ ñêÔóïéÑõð ãÚõñïßóóôâôôðåïò ïâìüð îåëöðöãïÿõñÞíõïÞîþ÷õßíü÷úÜïûûñàêþøòåëúøîäì÷ù çåçöøåçéöø æßëúûÝÜíûüØØèüûÓØêôúÖÖêøûÓÏéöûÿËÍâïõÿÊÊãôõÊÑãíôÓÕéóú ÒÒæðùÿÈÐâîøþÆÔáéôÐÓäõúÍÒàðùÐÖãíú×ÞßìùæÞæóÿìáàæûñÛßïþ æÜÜîüæßáõþ îÝäöèÛäø èÛæô èØÚäûàáÛêýìååî õææîüäßãùæØç !èÖâ+"çÎÜ-ÿíÇÚ5æÇÞ9 úê¿Ø4á¿Ø1üå¾Ô)þåÆ×&ýéÁÓýÞÂ×ëÚÃ×áÛÅÙ èÜÌâ îÚÑâ èàÏáîÚÒçãÚÍàüâØÕäúÿßÛÔâòêÚÛçòéÔÛèïáÖÝêïéÙàññ ñÚçøóïÐãòíûÜÔâòéæÏáòçûÞÑÝçþßÓé ðûÜÔëòßÒë òÿÚÎã îúÕÏçìý×Òè ëûØÖñðß×ì êÝØìèàÕñèýÕÑìäüÓÑöè×Óó åÜ×ô ä ÞÚö ä ãÖú æÚÚùãß×þæáÞý âôâåûâåûâÿ âùÞã óã áþÜ æõâ áýÚæïßþÝõÖã èÞÝ÷àã ôá Þóá áóâ ßüå âäåýã ã ôßâñáäùÜ èðÝë ëÝ ëëÙ êéà èõáêóæ éüã ïóß ì ðÚ ê êÞ ìðÚ î èÙé åÜæïÞëóÝìèÞçèÝëëÞíößîÿÛñùÝóôßó ôÛòìØòèÕþðèÜðíãùöíòäøòìòãýùòøäýööøäýôú÷Úùòú éÙ÷ñøêÖõðøé×öò÷êØôïøäåñíô ìê÷öøòæóò÷éäôìôêáôóõîÞòñöíàõðùôâòì÷ùÛðñø ìÛèèñ ìÓïñõÜÔëõôÿÛ×ðïõßÙòô÷ ãÛòö÷ãÜîòõ âÞíëôæØðòøàÐíîöÝÔìð÷ åÓòôû ãÓòùûäÒîïúàÛëïù éÙòøÿáÚíõúáÜìðú åÚéòúãØðôûãÕíòûãÔïøþâÓîùþ×ÓìïûØÕëôþã×éïþåÙê÷ÿäàêñÿèäëòýëëåðûîæçîëäéðìåìôñåî÷ñàëïïÞçî íÜéò íÙëõñÖïõ ëÕëð ãÔêóÜÔæñþÕÕçîý ÕÔéðþ ××ìó ÜÖèîÿÙ×èíþÛÖèòÿÙÕéóÜÔêñßÐêñÝÔìò á×ìõ ßàäíçãéðéåêñÿéÝéõ ÛÝæïâßëñêÛêó åÖëùØÒèòÖÛãðÿ çÝëøãáãíü åâåïý ãåàîúçáåñý âäâìû ççåóþóååòÿ óßêóíÜäñÿïÛéóëÕéûÿÝ×êõÛãåòïáðùèáæîÿíâåóòâèóðáêû íåéñôßïüðàëïôÙíôë×êòéÖëôáÖíóá×íò ââçðþëåêñíãëóïêæêúöçêòþ ìäçðü íáãèú ñáæéú ÷åéìüäêñý ýßíóþîÞßÜõëâÛàôñåí÷øåôû ÷àïíîßçë êÞçèìâãåþ úãæéþÿÞìíùÜåêü òáêìþöâãèö÷äèìøõßêëùîÞêìùôÜëìøïßêì÷ðÛôóû éÛîóù éÙìðø äÛçêö éÝéêõëÛîòö ãÞòö÷ìÝóúùëÞðòöéâïòöîàòø÷îÙõú÷ åÔóø÷ÙÓó÷õØÙó÷öãÙ÷úø ãÝõúö åÜô÷ò àÙôýõÞÚñõó ãÙö÷ô åÙóúô ãÙõüö â×ôøô ÞÔóýóÚÕðöñÞØñöñ éÜ÷üô éä÷üõôà÷ûöóÚøþõ ïÙôùó ïÛò÷ó ïÞñõñòßöüôõÝ÷üõñÛöøòìßñ÷ïðäòöñ ôáõþò íäóöïïáòùðîÝö÷òíØùÿõâÚöõñë×úþôïÚÿù÷ÒõøõãÕíþõÝÛòü âØö ÝØó ÞÚðàÚëýãÛèüø ãÛñû çÝê÷÷îÚðûïÚïúøðÓïþ÷äÔîõõáÓíúóüÝ×éöñáÙëùñâÕîùòýÕÖñüòôÑØíñìõÙÕñüîüÜÕñøðâÓõùó äÖóõî íÕô÷ï íÕòøï íÜôôð õã÷õñ õãðòì óàóôêíäôòíõå÷÷ðõåø÷ðøáõôî ñÝõúî ðÖùöð ïÞü÷òÜøóïöÜòìâìëçþäëá(è ãß,à èÞ3ãòÕ,ßçÕ3 å àÔ)áÝÐ+ çþÙÏàÿÚÌãÕÑäàÛþãïÞüæëÜ ûæââóãêã ùìîÝôê ãÞýïæéÜúïèÚðïíÞûôðõÞöïïñÝ÷öó êãóîóïà÷÷öäÜïíò ÚÚëéñ ÞàèçðíÚíïõ ãÙêæóàÓêëõÝÓãåòÚÔèíöáÖãèõ íÜäìõ÷ÙãèùæØàçö ß×Þåù ÝÝÅÔíçãÍêúóàÏô èâÊùñâÃó íáÂù# òàºð! óâºð!úá¼é ûÛ¹ì ñÛ»éîà¿èòè½á(èÇçÿâ»Ö ïáÁä ëãÉë ïàÓó ìàÏî ïàÑï ïâÏïíàÔíæßÐêàãÓî èã×ñêâØöëß×ïçáÞóîßèøíÛíý æàëýðÖð Þ׿õþâÕìôÿÞÚòÿàÛðþÿ ßàêøøëÞïýûêÚòúü ãÚñýûçÕõûûâÚïöö èÙ÷üù æÐùüÚÔôöôéÙûÿúõÖþþëÕûÿúäÜûýøîÚû÷ êÝùûõíÝþÿù ëÕùàÔýýöâÑýÿõûÖÖûþòßÔüóÞÔúüñ ßÑÿôÜÕõåÒ÷ áÚÿÿóí×ûæÕ÷â×ø æÑùÚÐøüÓÐ÷ÙÑ÷ÚÖÿô ßÙÿóåØÿô âÝòëÞöñà÷õäõýâ÷òáýñðÞô ìÚò ïØòèáüüîòÞóéâÿïòÞþñòáÿüïòàýï ðáþï óâÿüïúâñýæýûîÿåýûíþãúöìýäýýîæüýïÿêúûïþé÷õêüçööíûãùøïûäúüñýåÿüôýÛÿÿôòÛüùòîÛúöðíÛúûïçÛøñíæáõîííãùôðóã÷÷ðæáùøðâßö÷ñìÜ÷öóïáñîðøÝõùó ìÞñïï éÑóóðØÎîîïâÔôòóéÙõ÷óâÙöóôÒÞóïñßáóóòçßîððäÛîññßÙòñóÿçÛíðó ñáðñõüäîðôøæòòõ÷ãîðõ÷àñõøôáðò÷óßòúùíßïñ÷æßìõôãÛíðòÜÞìîòçÝîðöäÝèíòäÙéîð ãØèïòéÛéîóíÛìõ÷ êÝî÷öçÚëîóßÜîóöàÙñøù÷ÖÞëîôÞ×íõöÿÖÛêíôàØòõøÞØíóö ÞÖð÷øâÙñôùïÞò÷üøßõøþîÛòõû ÝÚéì÷ÕÝåêóãØïøüâÜïøûãáîõû æÛíùü ãÓêôùÞÔêñøâÔëõûåÕíôüèÔëôýäÒëôþØÕèñùØ×çñùØ×éóüþÕÖéõüøÍÙæòûþ×àçóý èÛëóþçÛéóÿíÕéôæÚéóþêÝíóéàíöðæèôÿöåè÷ößíöìáèóÿñäçó ôãâòûøãæñüûåéõÙïûòàéóþýãåóÿûäÜìü÷èáóýæãû úèäø üæåù öåæû óäÞñ ñçÝñõåãø öâàôóßåóíÞßñíäâîüåè÷ôáåôîâåòÿôßåõÿ îÜåðýêÙèõü æÙèóý ãÛçîû æØæìú â×èñù ãÖäíõçÒíñùâÐíöøÚÔîòøáÖìðöâÛëðô åÞïòõëáîòõïØñ÷øáâëðóöãòøùöâêôõôßõýñÚòÿýìØôü éÛîýûèÛñý ëÖîööÛÙéñîááåóëîÙíøñ åÜíõí ëÙïúñ èßñ÷ññÜø÷ìÚòùò êÛóÿóèÝðøïìâõ÷ñ õÜùýõ íáöÿñøêùþôäùùâúòôÞöûð ïÞüô ñÙþÿô í×ÿóçÖýòâÓóÚÕýþðþÕÕýþìûÑÛøõèØ×øýëØÙüýëÜÛúøêå×üýíÝ×þîàÓÿïãÑÿðãÐýüìÜÑïþÒÑüýíýÐÕýýìÙÛ÷÷èãáû÷ê êÝüúíàÛýýîæÛüïïÙúññÜüöïôÝÿóîÙÿýóëÖûóçÛýùðòáþôöâþúóðàûôîÝýôññÛõöìð× ù ä× ô ÝÒ òÐÐ ë ÏÐ íÜÐê ÛÐëØÓüýäÎÙùûâÒßÿæâÛêàÔì×ÕîØÓúûëÕÓþüïÖ×ôõì âÕúÿðÜÕøøîÜÖôóí âÖóôî ãÙôòï æÜõóñ éÙóõóß×ïñðþÛÛíïòàÜðòôÝØíôõÖÖííôþÖ×íìõߨïñøäÓïðùÛÛéèö èßëîùíàðóýïßðíýìäîíþúçòðãóñÿæíîüâíêöâêïûÙïïòÙèæÿ ôÝêëöâììùáïððÝçìÿçÞæéþíåçêÿøêëñüéçêúæìô÷áäãþðÖåèþâÚèñîàåú ÷ÝêüîÙéþáÞêûåÚãòàÝâôåÛâïàÚæößÛåòçÙåïæÝäòþ ëÛåñÿ âÖãïýÙÔåðÿÞ×çòÿ èÙâòû êßâêùóÞãëùïÙçíû àÚâéø áÝçêúãØçôúüÜÖäêøýÚÒíñýØÔìõýÖ×íòû âÕëîú ÞÙéïû ãÜçìø áÛçëõâÖóïû Ý×÷îù áÙùÿ ãØöþ áØñû âØÿõû àØöÿàßüóþ îåýöÿüäýöõáùòüìâúñüìèöòý÷çøðþöèôôþûãôöÿõãóñÿùâ÷õüá÷ûøåñöüæòò!üãò÷ðãíòþëåíòþòæñóÿøÝïøêáêîýóÞîñÿòàìõ õàèòþ÷Þóö÷ÚûôîÜüñûñàïýõÞò!öâî#ùßî!öàëøäí!äÿïßøíýùßóçûõáùóþôàñìûôâñïøúÞïç÷"õÝìíöòâìèöðàèíõæãæìòðäëóúöæíöúýáìóûòâìòøõâï÷ûõäì÷ûüäçð÷ûÙäðøéÛÝèïêâæóô"ôßèûôîáâôòôåáòóûÞäö ëâØô óàÜ öôßÜ û óÞÛÿíãÙ ôßÚ îÜÕûêÙÒúæÜÑôâßÔöèÙÖõÞÞÒñçæÕòùßÚ÷ìßÑñ ìÛÙóãÕÙòýÞÖÜýðÞÚÛþïãÚàõ åØáô èÝÞøïñØâüð åÜÞ÷íæáâüñíÞãóîÜæþó ñØéõï×íþùç×çþôøÛÚêþòßÓî÷ÜÐìýô ÝÑëþô ÝÛîó æÝðöãÝñùæÙïÿøáÕï÷ßÕðýñàØõõäÞòÿõêÙ÷ÿöýá×òþòßÐôúôØÏéöíÙÕìÿòâÜí÷ìÜð ÿ ìÔé ÿßÖêàÙêãÖêýÛÔâþùÚÒãýöØÕãûøÜáæûëáíÿ îÞîû ìÛëÿøäÙìûøÙÒíüôûÎÓêôðüÒÛêñð åÛñúõáÔòøõ××ðìðÞÙöùöå×öø÷äÚùöø æÛöñôä×üò÷ Ý×ûîñãÕüñó Þ×üìðÞ×ýíñßÓÿïóØ×üêð âÚôö åÛóõ âßíóíÛîïíÏæìÿÙ×äëïÛïò#üãéî+ çêí( æíôýß ó÷ çÚñ÷ßÖïóùØÙêíõÒßþéëÛãýëëæå÷àå óçúåèÿæéï&àîðûÜìððßïïôÛòñêàìï ëÜõñãÝíîâßîñääëñïãëñðÝðóåÜíðèÚòõéÛòòèÚòñ äÞìôéÝ ÷ûæß úûêæ ÷ûîäöøéáÿïñ æÞíñ éÝðñ èàÿôôòàõöõØùú ç×ööæÓùúâÞô÷óàýûïâôõ ëßûóôåãûñòòáýòô÷àýõ÷úßúøõßþúòàúûôãþýûåýôùûÛýòú åàôìôìàÿûüéÛÿùú åØýûù ãÝúøøìØýýü çÙ÷ô÷çÜøøø äØùöøÜÙ÷ùùÞÑûþû×ÈøüüÌÌö÷øÏÑûøùÐÐ÷üùÍÖð÷öÙÕóø÷ ÜÙñôöèÙóøùéØòøù è×òö÷ èØôöù çÜð÷÷íÙñøø äÜñôù ê×ðöùåÝìö÷óÝñõûöØðöüñÖîóùñÞîòúùÞïùþ öàíøýýàïòûÝóûþúÝëöú ôåéôúêïäéôúøàú÷ûùÚ ÿþ!ùÞúþþÝ$÷ý÷Þ/ýòß#ìúñÚìùêÔ#øÿå×ñõ æßëõëâìôçåçðìàêð éÝúæï æá÷ëñòåøíõ ýÚúõú çÝëìó éÞíîõæÜëêô åÚëöøáÝåïó æÝçõ÷âÜâñóßÜÞóóÚ×Ûïò×ÝÚïò çÚÛõô ãØÚøöÝ×Û÷ùÙÙÖöøÜÖ×õøÖÕÔöùÙÚÔøøàáÕùû éá×úý éâÓöûîÜÓøûîÚÒùüñÚÒÿþêÚÍð÷ âÞÕôü èÝÜ÷ýæØÝôýÜÐàõÿÐÏäüüÎ××ïúÚàÙöû ìÛÖöúìÝÙôýëßÖôúòÝØøü ñâÕüþ õãÓøû ñÝØþýæâÍí÷öæ×ùýüÜ×þèÛÒøù åÚÏô÷êÜÓöúñÞÖùûñßÓ÷ù ìÝÙÿþ éÙÔûý éàÕùúöãÙþùáÚÿþñÞØýý æàÓúüòߨþõâÙýöéÙþüþì×ûûûÝÙþûÞÜÛû æÞÞúòÞàø îÛà ûÞßßô èÚÞôàÕßôþÙÖÜóþØ×ÜòÚØßõãÜÞÿô ìàá÷ ëæáø ìââø æÛâøÙÙà÷ÿ×ÛáüöÝÝæ û áÝçúæÝêüéÝçýú ç×áûøÛ×ÞôõÞÖéú åØêùëÎä÷×ÎØôÚÓãÿ åÖèâÖàÿØÔÝØÒÜ þ×ÖÚ ýâØØýèÛÛý íÚÝý ìÝÞùðßàû ôãßÿ÷ýàäÿù ôßà÷ô÷ÙêúóÚçüø õáêöö òâåõô íáéõõìàéöô ðÝîõõïÜîöö ëáíñóñäóðõðãôò÷ ìáöö÷ ìàõî÷íá÷ðöðâùó÷ùäõéôùåððôõáùùü éÜûûý æÜýú äáüþÿòãýöôâúóüòßýöþñÜúí÷ éÜùîúãÜþñú åÞþïøñÜíûóÝÿè÷ìÙìöÜØíöÛÒëøÙÙÿãò èÝèö èÞê÷ ãÞîù æßìùðÞìùôáñøóäíøðçæöûá íüõâ ê÷ôà ëøïàçôñÞóùîä èøúßùôÜóþéÜïüéÙ îüéÙ ïûèÙçößÜæô âÝ éô äÜèôè× ì÷æÓñúßÑêø ÙÓ íöëÚ î÷õÚïúêÙ ï÷ ßÝæô ãÙ íõ âÝ ëóìå îöøç ìùýä íúûÜòûòÜ íöðÙçõëØí÷ïÛð÷õß õýóçîù÷ã ñüóåîø÷áðøôäÿçò÷äðúöâõûòãì÷÷ßì÷ôàÿêôöÝÿéóóÜÿîóõßüîñûçþìóçüìôûãúìòîÝúëò ãÕüòõÚÒûíô×ÙõëðçÚúêòæ×üíóÛß÷èñ çÞúïóÞÝ÷ìðÚÚóíîÙÙïçëÜÛòíî ãÙõñó ߨõ÷õÜÔ÷òôÓ×ñððÙÕõòôÙÙáÝé ä×íîö èàììÿøèëé äÞÙ ÷æÛÛúáÙÛìÜ×Þ!ÛáÒÝ$ÞÝÖã)ÿÑÕÌÖþÉÕÈÓÒÖÈÖØÐÕäÕÓËÕ ßÔÒâ âÒÔáüÚÚÑÜâÛÚèáàÜåìÝÚèý íÝÙêúñÖßîúëÏãï÷ÛÅáìðôÃÀàììî¶ÇÝéäüÂÇæôèúÁËåïäÏÓåôå âÙèøê èÒñîÙÑãõçÖÍíúèÓËù ñÖÑûóâ×û ùçÜøó íÛú óäÜôì èÝÿñîÛù îòÙû ìô×ü ë òÛûèîÜýééÝúçìØúæäØûå èÚüäôÜæùßúáøÞÿæ ìÜç èÓþäÛàúàðÖ è ã×å åÖæåØççÖç åÜèëÚçèÙçíáÿæÛê ÷ßüåùØê è×é åÙü ãðÞü äûÖÿèíÛø ãôÝúéøãýëàÿïúàú éûâûêùÜú ë íÕ÷ éçÖ÷ éëÝõè òÝùì ìÞõ ê íÞñéðÚõëïØõìæãõ ïñÞ÷ñêÞìýéëÞìë ìØôï ßÑôïÕÕðíáÚóò ñÜôóíáïòíÙ÷ ÷þØÚëüïÜÝïñ æáñô òãïüô÷àò÷ëÞðÿøæßëøó éâé÷ò îßîõåÝçùôæÝì÷õ èÞì÷öåÝèøôäáéüõ ïåêûúøãëûøôàêõ÷ïÞêóøîÝïúÿìßê÷ü çàæóú êäåóøñÞë÷ýêàäïöìãëóüíçëóüïãëöÿëàê÷þêÜíù ÞÝéðÿ äÝëõ çãçíþïßé÷ åßêôâáèñëæçðôäçðêçáèýïäãñîàåî èáâëýéßãìêßçëÿíßæíéàäìÿëßçð ìÝæì èÞëõêçæì ÿäíôþêåééçéþèâéâíïøáìòóÜéï åÛæééÞçî ìÛêì äàæìòáíïñåêï÷åêì÷çëì!üãïêöâêîòÞìîêÛïì æÚéè éàëëðÜïïåÝéêàâäèÿ ãåååýéàçéþéâãäüôäçæþôáàæû íáåæýõÜëëñÙçêþ ìÞàäùðÝèæý ìâçæû óáìëÿîãâÜöóßèäûïáâäúòÝìíïÝêëñÚëí é׿ìÿ âÛìð åÖòôÛÑçéýþÎØçìûÚÝìñþ ãßêíüêâìíþñÝñöìÚñóêØììþêÜñóïÙöû äÝôó íÞõöðÙóõ æØòö âÕïñý ÜÕò÷ÿ ÞØòîÿâÙöö âßïïýñÞúúîÖööÞÑôöØÚïñýêÕ÷ù ÝÔòíüØÙóóüÛØðíùØÙîëùâÚñð÷éÓôöû ߨìéöéÛ÷ôþíßòìøìØñïùä×ðíù ä×ñðöáÝîêôäÛììòéÙóðøíÛñôùòÚõ÷ûëÞóñøíØèêö âÕäëöÞÏöù××îîäØóñæ×ïíáÓõó ØÛêå ç×öóÝÙãåúÙ×ëìûÛÕîêüÜØíëúà×îîøâ×ïñúæØïóø îØ÷öü ñÙòñ÷ëÙñööç×îòôæÒïòòßÔñññßÒóöôÛÔõùõàÒ÷öâÕööõ åÕùúôáÕõ÷ñåÑòúíßÕðõêèÒôúìߨñôè äÛ÷üëéÞ÷öìñÙúûñèÞûþòòßöóÜôïØúýï æ×÷ýïÝàúûî èßôãÚøüíýÞØùÿîÚØöûìÛÓøíÔÞõúêæÝüðãÞøï èá÷ýîñØþòäÏýòÚÎùðÛÓ÷òßÚöîææ÷ùíùàüòîâóüëóÞ÷ýìóÞøîÿáúñßûñøã÷ûðöÜøùñèÜïðìêØôýïæÕüõãÑûõÛØóüïßÜöþð ãßøñ æÜ÷ýïãÛðúìæ×ðûïâ×ôûîçÞõùï ôßøôýØùô ð×óýñêÞóöïîÞöõáåíùí êÜõñàÝîøì çáðúîååòüðêÞôðçÛðøï æÙôó åÝðûðìØôÿòëÔó÷ò ëØõûôîà÷õôïæóþñöçò÷ñûêòððúíóöóæøöøäñøóùäñôóúÝ÷ÿú îáôú÷öà÷ø óÛõþ÷ æÖôùöÛÛñ÷óæÚ÷ÿøäáòöôðâöûúéåñû÷çäòýøçÞóûø âßóúø æÛòúø äÕòü÷Ú×ðõöÛÚðõ÷ ßÚïøõ ÝÙëðóÝáïòõðÛñøùêÙïö÷èÙîöøëàðõùøßñüýìÝíøú ßÞîøø áÞìñö äãíõøîåòøûïäìôúðæéñõòêíòøõéòøû÷æïòúöåïóüüáñøþüÝñøþøáîöûûàôþóæðóüöåîõü÷çêð÷úåð÷üøåïóþúæòúÿúèïøýÿèò÷þäîöýþâñúÿþÛòøÿ÷ÞðòýûàñóüýàóöýùÛïðø ðçîóùþåôúÿ ÷ßòýëÞîñûÿæÞðòúàÙëõú×Òð÷úýÒÕíôûÜÔð÷ûÝÙïöü ãØð÷ü åÙðøýïÛî÷û ïàïõûíâî÷ûçæìôúôßîöþîÜìðøëáêô÷ïÛïôûéÞîóûñ×÷üÿå×òóüèÓôõþ ÜÜëî÷ àÙóõûþÖÚëñöþÚÝïõûá×ñöýúÕØíðúþ×ÏìõøþÍÐéìõÕÔóõú áÔó÷ûàÖëî÷ çÒììøÝÕêïöçÑîòøÿÞÙìíøâØïôúüÛØëñ÷ßÙëîö æØíîø äÔèåôÞÜäâóíÙíóû ìØï÷ú èÜèðø éäêð÷ îßìñø éÜìñû íØîñýæØîõüÿÞàåñ÷ éÛñùÿâÛèð÷ç×ðõüåÔðóü äÝíôüíàîùÿðâò÷ýóäîùþóåíùûïàíòú íäîôú ôÞñùýéæëôùõéïùúùáõùüñÛðñ÷ïÚíõøêÞð÷úíàðô÷õãóøø÷Þó÷ùòæêñôäñõùåóúûãñøùÿÛöýûôÚóôùóÛò÷úôÜóøùó×õùúèÛìñõëÙñúù éßóøùðá÷ùúóãòöù÷âóöøðàò÷ø íÜð÷õ ëàðõõøáïñ÷üÚè÷÷ìÖêýüåÓæüÞØäßàááâçæàÛùýæÜáãÚÞúûàÛÝúøáÞàúú òØãøûêÛáõùëßåöùîÙêùûáÕæñöâÑèúø âØçôõéàðþýíßðúùæÝíôõߨïöù ×ÙðøúÜÕóúüÖÙôöúâØúÿþç×÷ûú äÒóööÿÔÕíîðÔÙðõô Þ×úúø ÛØô÷òÛÚóöôÝÞóôó ÞØûýøÿÖÛôøôáÜúý÷âÜûûø ãÕþùù âÑüùö äÙùúõ ïáüû÷ òèüýöõâüüö êâüúóðÝþúõ íáöñðöàþûõôßÿüöïÚúö éÙûõ êÔøäÚýøó ëÞøóòàüùóûâÿùôüßþ÷õÞüöõßþöùâÿöúÛûùîØùöèÚýøíÙþ÷ìÛû÷ éÞÿ÷äâþøçÞü÷âÖûõó ÛÕøóòÞÖûóñåÔþúö áÏýøõÚ×÷ôñéÚüùóðÖüøö èÕøòôäÙúðó æÙõððâãñììïäöôðîÜóõðàÖñðíàÜïíîïÝöñóñÞôñðõÝö÷óõÚùø÷íÖüüú æÓøùöá×øöõåÝùúö èâøûö íßúýøëá÷øõóÞøùùë×óó÷àÝèìïôÙ÷û÷ò×úÿùêÏúÿùþÕÞéñò ëØúýùß×õûõüÕÕööôûÓÚðöñÜÞòöó åÚóøóáÝñöó çÒ÷ý÷ÜÙñû÷éÙõûùî×úÿü ëÕ÷üû æÔõüø ÝÔôøöÓÔðôïùÏÙïøòùÐÚëóïÔàìôñ ßäéðîæãìõðëáí÷òîÛï÷ó åÛìöò çÚêôîïÜêïñõÝëðñòÛîööáåæðî æèçññïçëñòùæéíñúäìõö÷àðùüñàéñö÷ßçõ÷üÓíöùåÖâðóâÖçøàÕãüöÜ×åùùØÜãùÜßê ÿ åÞÝÿû æÝàþ çÛâÿýãÙáýýäØãüæÕãúþÞÚáúýßÜâüûßÞá÷ùãÙàùøÝÕá÷õÚÙàïóßÝäöô ê׿÷÷ߨèúúþÙÙéûþáÒîÿÛÌèõ÷ÖÉëö÷ÔÏîù÷ÚÔòúøÞÙïô÷é×ñô÷ äØóöúßÛðöù çâôöúõàó÷ø ðÝîòôääëïôíåïðöøæîí÷þäñóüòÝñôþääðîÿíçôïïåéîÿåçäï îéâì ôçÞê óçÖàúêÔàÿêÐÚüîÑÚëÑÜ äÖÔþåßáþåáÜ üèÞÚ þáçëîâäí íßçì ëãìñ õæîõû÷âððôñÞñòìêáøöéñåúóç"øçÿúæøêùõá!âûã÷ÞüáñØúßéÒàáÐþÝÚÑüþÛúÓÊüÛïÄËüûÖùËÑÛÝÏ âÝÑ ÞáÐ à ÚÐ àßË ãÝÑúÝé× ä ïÒ ìæÎ ìýÞÑëâ× ì êÏ ðÞÒüæ á×ùåèÖýçæÛÿôäðÛüììÙüî éÚû÷îïÕüýñ çÒùÿñ æÕúûòè×úùóç×÷ûô ãÚûúôçÙþûøêÜþÿûíáüøúñßûõý çÝðñøáÜñ÷úÚÕ÷ÿüÔÙõþþáÑõþþÛÒîøøßÓîõùàÓîñøÝÝîðøêÞôùÿïÞòòýíÛóøþ èÜðùÿéÝîõþêÜîöê×óú êÙï÷ïÜíõðÝíôóÝíúðÛîøíÚéñÿêæêìþýßïøòàêîòâíõñÞõÿ ãÞëèýçÞðõòÞðð÷àîîõäééÿóãìîíåèèýôåêìþúâêîøâéíõâèñòéçêÿçíõßìõöääêþäèñãéðÿæèîýíìôêêõûèæñþûéäìýãèóüæçîýàëøïâçïíáêõïäè÷úäêôûáèòòäíõõåæó÷åëöüåë÷þçë÷ûãêöñçîüñäîû íÚïþá×ëùààç÷êàèûâåæòü áåæõþååèóþ êäëõ ðßóþ ïÞîú óâíõ÷ãñõáïúòáíôþôçìôéîüþìæîüúíéùý÷êäõùõáéôýðâèóûõçë÷ýùåîûÿôâêøû ñÚåò÷ ê×éðõåÜçñôéÜï÷ù éáäèððèëòôõçåñòîèçðñîäêñóìáïôøïâðöùôäïöøôÝïôøìÛîñöìØï÷ùãÕóùù äÛíôöéÛùõø ãÛøôöÞÞ÷ìñãÜô÷àÚóøØØóùÝ×üò÷ éÙ÷û ïÖüôøçÓûòôÛÕöòó ÛÒü÷õ ÝÓúúõ åÙôöñìØòôñàÚøöòÜÛòôñÙØööô×ÏöøóÍÍøöòÊÑóùðÖÕöùò âÖñïðæÓíñîÞÓêéèÙÖðøêÜÖøûðß×õýòâÜïøïìÜ÷ÿóêÛôüó èÔöýóþÙÔðýïÙÐòûîÿÏÓìõëÙÖôþïÝÖë÷éÚØðþìÿÚÖöÿïúÔØ÷îûÐÓýñÿÎ×ûð àÕúñãÔóêâÕøðýÛÔñþëûÔÐøðûÌÓîüë ÝÍôîÜÎòí âÓóýë äàîüìïä÷ðõàîþîðàóþðòÞïüðñâñüðüäïýðà÷÷þÜòõõÛò÷ íÙîüó âÒïóÕÏïþðÍÒêùïÔ×êøëáßèûìðÛëúî çßéóìêØïñàÙîýñèØîÿóîÔìûóìÏòøãÔóûöÞÜðüôÝÛäòíÒØçüîÎÝéóØÞìöÝÝë ùàÝðý æßðûð×îû èÖìøæÑì÷þÖÏîõúÏÔìöØ×ìôÞÛéýõ åØêüõÔÖê÷óÌÔè÷ðÐÒéõñÒÏïùõÓÌî÷ôÑÍëòòÓÑð÷ôÚÛêïò äãíöóîæôøøöäóöúöåëð÷üäöûüþßøùþößôùýõáó÷ûóâôôúöÙõôúñ×ñðøïÚõóúñÝòð÷øâöôúüÞîì÷ìÚöøù åØý÷ú áÞÿùöíÜùú éÕ û÷àÙ ÷øæÓùóßÙõôçÝõñçßôò èÙôó äÓÿòóÚÚüíó äÚýðó ãÜüô÷ çÚÿ÷ùåÖúóùáÛ÷ñ÷ íÕôí÷áÑðøØÖÿïõßÙéõ åÐõ÷ÒÏïøÕÏ äó ÕÐ ãóÏÔ çòÐÕâðÑÓßîÒÔýçòÔÕùâòÛÓüêöÚáõáò ëÝùäôßÞïâñ æÙôçõ äÝòè÷îÚôêüòàñèûúæôñÿåñìüùáîïþõàìêÿöÛñðñÝäàúòëäéýÿïæíþãðõñâêìÿôâöò÷àòðöÞðíðâðëôÜññëàìîìÞìôïßçòòåäíûùãêððãçõ ìääðþñãæôùÝãòñàäôêáàõ ìßâõ íàãúðßâôîÞÜòýéåÜíýöàåýöçáû äàùåÓùýáÝåÛâá åÛ  ìÚ çÓåÐÿãÐýýÜØ óâÖûàÙ õçÒþúãÖüú ûáÓû÷ ÷ÞÙýûóßÛÿûúÞÙøùùÞÏü÷ óçÒýþæÚüà×  óâÑ ùåÕ ýäÏ ûåÑ ûæÎÿþåÐùöåÕþöäÔùÿõàÙùþòÙÛùþîÖÞ÷ûìÑÝùúÚÙÞóõäØáó÷ãÚâòô æßäóô éÞéóö èÝëöó êàêôõòÝïóõïÞóùùîÜíðóìÖðöóçÓûúû ãÝûùøïÞþùüëáøñóêà÷ðóßÞôïíÚÞùöñ ààýóóãÜýóñ âÛþòò áÝÿñòæÜ÷÷æÙõõãÕùô ÝÝÿíîéàìïìÞòñêáððôßõôõâôóøÜýìïë×ìðæÛ÷øëà ÷øñàòùëÜï÷ãÛìóáØêïÞÜèïêàéíèàðñçàíïçÚîï ßÕòñÙÙïï ãßíïéâîîíÝëí æÝêêç×íî ÞÞõîêáóñóåðîúç ø÷ÿéûé úúâ ÷õûÝóõðáÿððõâúõòÞöòîØõóèÞóóòÞúõêßøòéÞùõëÜ÷öïØû÷ìÖûöéÙýùêÜýùìáú÷ïâý÷ìáü÷äâúñò âåøðñ èãÿûô çåÿûõìãùôïäÿþöôâýü÷ïÜù éÚþúöçÙýø÷ ãÝüùôåÜú Ý×øüôÐÛõóîÕÞøøò ÝÚø÷ôÙÖö÷òÖÙóøõàÐûüüÕÏæëñûÓÏéñöÿÑÉïþûÃËîûûÄÏçöýÊÐìü þÊÎãò ùÇÐØëÿÐÓÚèØÑÞéÏÎÜéüûÊÐâëÿøÏÑäîùÙØáêý êÑáîÿàÔßèùãØãðüæÞáëú ðàåñýöÜçóýìÕäëûßÎêòûÕÖçíö áÕëöøÜÔçòõ×ÔéöõÕÏèðó÷Ê×çñïÞØëöóäÙÚçíäÜäøö ëÞæ êÚìåÛÜ÷ÿêÚèÿ ñÝÛðû÷ßÞùþùÞáùý÷ÙäûúêÚáðóìßäòôöàìù÷øáëþõüÚíûøñàîöô úÖñõìÕîýòçÙñÿò ìÙòÿñìÞïûí÷ßøóõá÷ðôßóî ïÜöþíæÝõûëæÝ÷íæÙùïäÕ÷ìãØõýìé×øîåÝõþêêÞ÷îëàõþêñßûíôÛøêôÙúì öÚüì öØþîëÔüéâÑûþéäÒøÿéçÕûéî×þì í×üëçß÷þéòßýìôßûþéòÚüþê êÔüìÞØöüêêÔüîáÒûìÛÕûëàÝøì ïÙýðåÛøøêãáòøê ìàýó ìâñóìñäõûñòäùùõßüý îà÷ûüóÜûûý óÛööùøÝôóøðåöùùóæíîòïáðñòçäîïóìßóõó èÝñóõòßôööýÝòôöõÙôööæØóôô ã×îóòãÒìðñ ÞØìîñæÜðóó áãèíð ååïôô æßóøø àÜòö÷æÛõýùëÚðöøíÚðñ÷éØêîô ÞÜçîó ÞÜêîò àÚðóõÜÓñøöÓØèîò àÚñöùäâï÷øíàóùý áäêö÷ æÞð÷úÜàïôù ááïõüêãðúþïãñüÿèãðû âãîúþ ãåéõû åäïüèáíûÿçäðýëäïý êêê÷þòíìúþøçñÿòæìöýñæìøþôåì÷þðáîù èæèóüñãíöìåêóÿïæëøôäìøôçíõúßñÿïÞîúïÙðúäÜçïþ åÙêòÿâÚçòý æÚêö åÜëöéÚêöéÙçòý äÝêóýïÛìôìÜéôÿïÚí÷ìÖêôþ ãÕëñþ ÜÕîô ÜÑêòÿÕÒæìüÙ×éîýåÕîöçÞèîýöÚôüìÚëðÿéÜíõèÖðö ÝÔìòÿ Þ×éíýêÔñø áÖëò ßÖë÷ÞÒèñýÝÐêïþÞÑéðþäÙîóïÞìñÿöÚîôðÛéðþîÜêíü îÖéòÿíØæíû ñÙèîü ï×êñýëÙèíû óÚêòþ÷×ëôýõ×êôø×ìôôÔìô èÒêðýÞÓêîûßÚéìü íÑãëüßÒçïÝÐïõÚÏíó ØÛâè ëÝôùíÙéëäÜæéíÞåéíØéí äÙäéý êÞèìÿóÜëéýòßêëýôßéíüøàëíûþèæìù% àï÷üøÝéé÷ñâéî÷ûãîòùþâñöúúÛïôùíáèìòûÚõõøòÞîóô÷Üóú÷ðÝîôôòÜòöõ òÝîóò ñßîöñóÝñúôïßñóðôÚöýõ êÙõÿó çÜóøó éà÷öóà÷ÿ÷òàöùõïßùüôìÞüÿ÷ïÜûýóìà÷ûòíãõò éß÷ô ãÙõÿïäÖöüðÞÚõúîáÜøþðÞßôüï èÚûòáÛöûíäÜ÷ûïçâóûî îÞôôíèÙïðèáÕîóêáÕõøìàÓùïÝÔòöêÝÖñ÷ëáÙôúîäÛôþî ëß÷øðóÝùûñ æÜôûíÝ×÷÷ïÚÙöôíãØõöïáÛóúð æØøýò âÑúùò ÞÓúÿò ßÛùûô áÜ÷ýô ÜÜ÷ûô ÜÛõøñÙàôöó ãÝ÷üôáßòûòáÚïõîÛÝîõë äÙñùòÞØï÷ðÿÛâíôî ïãõûõ ïäò÷óõÞ÷úõ èáòõóñáøý÷ïâ÷÷õéßõõô áÞôöòâÜ÷ùöå×öøó àÚðõï áÞõõò ãâù÷õêàüÿø æÛøüùÞØøùöÖÚøþ÷ ÝÚýÿúàÞ÷ûøãÞ÷ùøàÝöûö åØ÷þøáÛõûö âÝøþø éÜøÿøéáðùöõáõü÷ ñàòüø ìÜõþøèãóùôòçòù÷ôéòûùøìóüúëøÿùäö òã÷ òãöÿ òÞøþéÝòÿÿ çáñúýðãõüþóçóüþ÷çöÿöéòøÿøæöýñçïùþ÷æ÷úöàöûóÛô÷ÿ ìÚëîø èÔðöûßÚíòøéáïóøëåñóùíæïôûôÜòúýéÓïò÷ áØëìôæÞíôøæâñ÷øíÞîõøñÓðöøçØííôñÞðî÷!öÞñï÷îçëêóöìïò÷öãð÷û ìâíò÷óÞïöúðÝñ÷ùëàñóù çãòôú æâïöùëÞñõúòâñøúÿàóøüøæîóú÷äñúýïãóúþòàðùý îàðôûôÞî÷ûõßóøþùåóõýþãùûõâòõýïäðöüõâïñúûÛññúòÝìò÷òÜò÷ü ëáîòùðàïôûðÜíùý ïÖïõúå×êîö éÚïöú èÕïùøâÖéîöåÙéðõ é×î÷ùÝÕêòóÚÔéïñÛÝæêï ëÛðòöêØëôöáßäîï ïÛñôùìÛìñô ïÕóùøæÙêñó ðÚðûú íãìò÷øÜôöû ñÚèìöñØíî÷ê×ñõøæÙñùúèÜïõ÷ îÙô÷ý ëÙîùüïÛóøûñÙòôøæÙóõû æÔõõû àÕñòøÛÛíìó àØñó÷ÙÙðð÷ÞÚñøû èÜòôøïÛóøüéßðõùòÜó÷úîÕóöùߨííößÛïðô â×ïñóàÚêòñêØðóóàÜìòñ çÛñóõé×òòõìÛñöøøÚó÷ùñ×ò÷ùêØôò÷ëÙòð÷òÖöõùéÕòöøàÛðôõçÖõøùß×ðñôáÕñóô×ÚéóóâßòùøïØôûø çÔìõñã×ëõòäÚïõõêÕî÷öÝÓäëëØÕêóñÛÓìõòÚ×íõôáØìöôãÕîùõßÓìóòÝÎîóôÙÎñøõÚÍ÷ùøÖÌöúøÏÍñøöþÊÔî÷òÒÕïòñÕÓó÷öÓÐ÷÷÷ÎÒöúùÙÙôúúäÝóøùçÛóûùáÚõúùçÔôþãÖõùüáÕôüü ÚÙñó÷áÝñ÷ù áÚðõøÚØîõ÷ÝÚóøùâÞðöùíÛ÷ÿþéÛíñõìÖñö÷å×ïôøèØó÷úê×ñöú èÜïöø èâñùøêâñøùæäñ÷ù êåñùûïåñóûíåíö÷ ðèìôù÷äôÿýôáòþûðâïòøòÜó÷ü èÞìôøîÝóúû êáðï÷ ëáóüúèäêò÷ ðäñùû ñæìõöõçñùøéßåñççùúþáíüôâëøÝé÷îäçøýÞë÷õßßêþòÞéø ïäáîþ òæçöþ÷áìóÿñÝéóþïßéòûõâë÷þ÷ÛïúìÚêôûëÙíõúéÒðûûÙÖëöõßÚîóößÜîõöçÜñú÷êÜðû÷ èÝõÿúçÙôûöäÚòþõêáôüøòÞûüýéÛîòöÞÚñúöáÝòù÷çÝûû åÜøøàÝ÷þ÷éÜ÷ÿù ìßûûòßûûòÚüüïØûü÷ìÕþùæÞøþõôÜüù îÝøôìÜ÷þõæÞõûòëãýöõßýõíà÷þòñÛýöëÙùþôðÝöûó÷ÙüÿôíÙüûñìÖûûó çÙûüó ëÛüýôíÕýþôàØùøñäÛùùòëÜýô íÚýúôíÝ÷øñõÚýþöíÖú÷ò ãÚ÷öòêÛ÷øòëßùüóîåøøóôâûõ íæõöòøÜúøìãï÷ð öàð÷ð ëßöõêáôõìàðóëÛðô åßïòòÜîýñ êÚïýñãÞëýñéßêõìíÝìûñëàê÷òîàïøòïâíùïöàìöññØîõñéÚîôñîÙïúõêáîòòôãôú÷óáïöõ ëàðûöçåñóô öàöùù óÞòóöïÚòõ÷â×ññöÜØððõãÖó÷øâÛïïõçÜðõ÷ åÝììô èáîñõïäðòöòÜõóøíÞíïõøâõïøüâõôúõáñîöïÝðîóçÝðëòìäîçð"ûéòëó(çòëó#üéñêõ ûéóìõ"ÿâ÷ñøöäîèõ÷ãóìùðäïéõôåôîùùã÷òû÷×úóýÝ×ñê÷ÖÚòí÷ãàñêö óâõïúößõòüéÛóïùàÞïíûíÞøøþòÛõôý çÜóñûâÛïêúàÚôöþ ãÖôõýßÔîîöÜØðñ÷ ÜÝñòøåÜóõúçÙòôøè×õóü áÕñò÷ÓÔîòöÐ×îñõÙÕñõùÛÖðò÷×Ôñô÷×ÓîóõÚÐòöùÿÕÑëðõÔÔðõùÚÖóøøÞÖòöùÜÓïöøÚÎòöüÿÓÎñ÷ùýÑÕïóùØÑðô÷ýÐÒêðôÑÔëñöÔÔòüýûÑÓëõù×ÖíòøàÓíôøÜÒìóùÛÕëòøäÏòøþýÜÕíòûéÜðõþöäìòüáîóÿõáçíûöÚèïûçÝéïùëäêõú úáíöþòåçïù öáêòú íÝåñøëÛéòúèäèîùýÝïóüïÚìóûìÝëõûóáíóü÷áéõø îääíô êÞìôúÜÚéíöà×êòø èØíôøðÖíôú åØéóöãØñüüãÖïöúãØìñøæÝîõùêÚôúý äàîöø ìâòúüêåî÷ú ëÞòüþàØíöùßÖëï÷à×í÷úßÜòýûáÜôûýâÝï÷øèÝðøùäáéôôïàòûû íÛñüûåÝñûúïÛðýü ïÞìøö òäëø÷öÝòþ ãÛñþûßÛîþø ìßîü÷öÜñýý ëâîûøïàöþ èßòýû éäñýúúèñ÷ú äñüÜòþëàëûûíãóÿôáø ðÞòüóÚóþïÜòúóÜùÿìåîüøóÛú ÞÞñýùæÜõýû ãÞñýùêÝõÿúèÝòûùèÛòûøçÙñþøàÚñûö àÞìõô éáñý÷óàñûùñßñþøîàñùöïÝð÷÷çÝïù÷ æàñúöì×öþùäÛððôìÒõþûÕÑîøöüÌÔôüøÍÖòû÷Õ×òøöÚÚðööàÒôûúÝÓóøøâÜ÷ýìÚþ è×ùýþ æÛõ÷øðÖõûúãÛñúø êÚöþüçÓõþý ÜÕòø÷ ÞÒñùöØÞìîó íàøúûñàõúúðàôúúïãóøú òÜ÷ûûéÔò÷øÝâó÷ø÷ßññöìéëòóöâ÷üúíßüûúëÚùüùãØö÷÷ß×öñõáÓùõößÍöøøßÌðíñãÕôöô éØôõô æâíëðõêñïòçññòûíïïñÿëðòöûêôùöúçóôøúãòñùòÝððø çÛîíóéÚðò÷ïÚñõøüÝòöúÜíìöõãîëõõæìëôûìïîóìïíôéñóøýèìîöùáíêõêÝòëùåÚôïøèÚúìùï×þñüð×üîûóÓüëüîÕùêþòÜöçúôÜòãô ëßöíõ îßóíôíßðêóçßíèóëßíèñóáïêòøâñîö÷àñòöôäñêôþàñöùûàíëöþàñó÷ûÞîîöñÚðóô çáìçññàîîòðÜïòôîÝïñôïÝïôóíÝìïñêÞðóòðÛíñöíÞæçìõÝöùøöáõóõûÞÿþöÜýüýòßûùüóßóî÷èÙõ÷øߨêïòááèíððÜóüø áÛîóôÚÞïòó ãâòöö ïÝñö÷çÚïúøäÛîùöïÖïû÷ ìÛðúøóÙõþ âÞïù÷ÛÞïüô ÜÛð÷ÝÙï÷âÜðøçßóùêÚõýýßáíü÷ ôÖøþæÓàïðüÙÕéùÛÑòÖÔë þØÒå þÔØç ÿÚÙâûÝáÝö çÚèþüÞÝÞûþäÛæÿáÖçþûØÚàüøßÕæýÝÑåüöØÌéø ÓÓåÿô ÜÔêú÷ÝÙêýøÝÕìúþØ×éÿøÿÞÜëÿ÷æÚê÷âÞéùö ìØïþùäÚìýõæÔíÿ÷ßÑí÷ôÞÓîýöëÐóýúãÓîúö ÛÜìöñßÞîþö âØòüøÜÔãõðýÑÔåõúÍÑæ úùÎÞÞÿêÜÜ!äÚÓ( ÞØÊ'ÛÑÄ1ÜÍÇ9 ÞÏÅ6úÓÛÀ6÷ÑâÂ*øÔãÀ%üÞÞÎ&þûØÜÇùüÕåÉò èáÑøíØØûçÓØ ÷èÒÝ ùåÚà÷èãâ ÷òäâÿó ñßáýò îäãøïöçêúóóêëôïîïìôîùêïñîöçñííôáôëïôÞöòïöÜúéïô×üèîêØùáìéÔ÷áêÚÕøçìÿÙÚúìîÝáüëð ëçûäíïâýêñáâõÚëâÜûßìÝÜýÝì ÝÙýÙêÜÞýÙìñßßðüÚÝñøØÚóôÛØó÷ãÓð àÐìøåþÌëùëÖïüêßôúè ÕòüçÓðþä Ùòüã Öñüç ÔòÿåÙóà ÓñÿÝ ÖóüÞ ÚñúÞØò÷Þ ×ðôß ÙñðÜ ×ôìÜÛôíÞ ×ôñÜÞõ íÜÚõíÙÞ÷ äÔÛõ âÔÛõçÜ Õð÷ÖáüïÚäùõÞáýøØçþî×ßý êÚáûðÚæý ï×çÿçÙäý êÑé áÐáúäÕæûæÚçÿëØçÿæÖ æüßÏ çþüÓÏâúÿ×ÓèûäÚèý îÜ í ðÝîÿõÙìôÝèýþâñëòë ÷ìðìóûéüïòëÿòüçúêùëáÿ ûçêúæêúÝ*æ!ú×=á ïÝKâ ÷áZß 'ûßcå$÷ÛfÞìÚhØýè×kÛþáÒ\Ôó×ÑUÖõÒÍNÞö ÌÐCßôÒÐ9ßôØÎ.ÞñÙÎ%ÞóÞÏåñÞÓßïàÕàî Ý× èïÞÝåîìÙýêóåÖôéï ÛÓðïîÑÒäéìÎÓâñíÿÏÔÝíìþÒÙÞ÷òâÕÎîèÝÔØúîÿÝÐàñôÐÚáêàØé îÝÒåèÐÐçêüÊÍâêöÅÍÝìóËÎÎ åõÊÖÐëùÎÔÌ íðÇÛÂèùÖ߯ðäâ¾îêâ½òêà´ðèÜ´ñ êÞ²óóß²õ óܱøêÝ­÷äÚªõÿàà¤õíà¬üêå¦ûëë« óì§ÿûä¥þ óä£üä¡þàšþïã—&îá•1ðÜ2ÿäߎ: þâè’= íì9ÿðìŽ/ òè‹) óÞ& í× èäöé˜$ õâš!ýëÜ—þáÕ—ÿüØÔš÷ÒØžóÔÚ¤ïÖÙ¤ñÓà¦çã§þòé¨ýâ¨òáªþïÞ¬ýìÔµ þþÜÔ±÷üÜܶõèã¾ùùåÀþ ì¿þìÀ ðÀüû îÃûû#áËûøñäÀëíôêÇñðêÓýù#éÚÿûèÛúûûçÛüýóâÝÿÿëæÝùûöäçùâãþÿûàèõÛçüü ëØäöø æØé÷ùéÒðûý ÞÔÞèó àÕèöþ áÛðü ëÝôýðæ÷ú'çþÿ& èôë%êîì"äöðëæÜëðêéìæ íìâýïòâü%êùæýåûàúûéþâ÷!àæú÷ÜèøñÛáòé×ßòã× íûí×ñíÕòãÔïØÖîýÙÓìùØÏîúØÍîø ØÌïøÒÐðö ÝÐêòÚÒëð ÛÎ ñóÍÍòðÐÊòóÓÏìñ ßÐ"õô ÚÑ ôïÐÒòðÔÐ!óñÖÕ!ññÝÓ'öðÖÖ!÷ðÞÓîïÛÓõëßÜ÷ïñÕ+ùåÐ#úô ÚÐöïÝÜïëë×õíÜÙöê ÛÕ õï×Õ óîß×"óí áÔ ôìÖÙïé Þ×ïê ÚÖöê ØÕðë ÝÚìäèÝïç æäïè ìãîê èÚòê àÚëåæ×ñéãÜîèíßñêóÞîìîØïé àØ îè áÚìê æÜõìêÝñìäÛòïÒÚ îëÎÛïí Ù×óòÙÑñòÐÚ íí ÞÛòóâà ïïëà óñîã ðîôæ ñðõã ïñîèìïöê ïóûé ïóûç ôöõéóö÷ã õùñÞòöêàõ÷èáõô æâôö äÙþóñ ØÚüëðÛÙîôÖÚÿîòØÛøèïÞÞøêñ èÖøñö ßËëçóþÐÏïíüùÕÖëëûÞÝßâüáßÓÚ åÞÕÞ íÞÆÔîÝÆÛêãÇÔëàÈÑäÞÃÎàÙÏÖÜ×ÔÖÛߨÛêÖÛâÙÔßãÙÚÞÝéÝéçëèãã þèèì þãàåóÜæèíÙæäüðØéêý îÛæèù íÙèêøâ×àäïàÙèëñæ×îíñå×ëñî ìáèíëúßìîê÷Þéáãôàäåâú×ïðèë×öóëíÖûüïìÕûþìéÖùöèçÏÿüíÕÒùüêØÐëÔÕ÷þæáÕöþãç×óâ îØôÿâñÙøÿæôÜøÿäòÙùå îÞùã÷ÜüèóÕùäèÙôÿáñÚ÷æîÜý éïÚûäëÚùåì×ùæ éÙûèìÕÿë çØ í çØñ å×ÿ ïãØý ìé×þ î îØïó×þ ñçÛú í ëÖû ï êÔöì ë×öëïÖû îèÕø íèÔø î èÞöëøÖ÷ ïçØëèëâîëÝöôýÝñ ñûÛìî íÞïîôÕñ ñãÓìëâÏéÿèþÜÓïíÝÛóñåáòñ íäïÿð ôâñòðäððóäïòùâóõûæðóçîöãíô óåéò ðçëóïæçò ôãåøðñéäúïüëí÷ÿêíúÿæìúüâôþÛõþÖô ìÜíýýæàñàåèûú æäèû çàè÷øßÜáõ÷ÝáÞòôîÛäúù æÙãô÷áÙáøúäáÞõùðääùüñáá÷ýìåãõüõåäõþôßåôú åÙãóüÔÞåöþÙâçö êÜêø îÜê÷óÙíôíÔìøèÐïö àÔíó Üáëòåéìøòïìñ ýëîôõâëøíÞëõéÚí÷ÞØéñØÒêòüÑÏéñûÎÕåð ÞÙæñãÜâïäßäòéãäïëíâíûéèòôçäðóäåðñßæõ ñÛäóëÛãñæÝèóåÜìõ æÜçñêàåîêãåïïåçñ ÷ÝéñèààéëÜéð çÛåï éÕæíÞÔäïÜÒç÷ûÔÙßêØ×éõûÎÞãìþ ØÝæîÿÚÝßåýßÚáêþ ÙÛÜßû ÚÜäíÿ ÞÚéïÙÐçîþËÕàåýØ×ëñ Ý×êò ÛÕêòÕÙääúÙÙçéü ×ÝÝâ÷ÞàáéùäÝæêûã×åëû àÛåçù ìÜêñÿ íãæçúößÝêú íáäó ïàêùíãæñÿòèãìûüéæîþêãêü!çæðýýçäëûÿææïûæêóþãçñýýäèïü÷åï÷üýæëòûåîðüûåïöûóãìòøñâíðùôÞîôöòàíò÷÷Üóùú ïÙóúùë×óûûæÖõ÷ùâÏ÷ûùûÔÕîòóØØøýø ÞØó÷õÜ×÷úø ÝÙõúúãÚùûøå×õøöâÑõöôÙÕööôàÕ÷ú÷àÔöõóäÓøù÷âÔúüö åÕøøõçÚôôðêÝùúôíÜøõóòÞüýøùÝýýøõÞ÷ôôöØùýø óÓöýõêÕùøôìØ÷øõêßøôòõÜúøôî×÷÷ó äÕõñîÜØõîë áÙ÷÷ï çÚøõîåßôïíìÛø÷ðåÞñîêëÜøúðàÞùõïéÜúóòëÞòôïëâóöïëàúøïäÝõùòæÝõõñïØúøõ íÙ÷õõìØüú÷àÖûøöÝÓùúóÝØõôñíÖùúõéÒþÿøèÐøõòæÓýúôåÐøôòßÏñîë àÖñïêîÛûùóñØ÷õñçØñòí ìÖ÷ôï æ×øûó åÛõòï ñà÷öòúàøõòùÞúúôöØúöôéÝø÷óïÙûüöêÔìðïâÕóÿöæØõýëß÷ÿü ðÛøý êÚòþûëÙôùúçßòôöñØôùøéÕêðñâÖñõõ ßÞïöóìâïõôôàòôöíÞìöôæÚñù÷ëÚñóöèÕòô÷ÜÖðóó ÚØòøöÞÛöú÷ãÜóøõãáððóìäóöõîÛöûù äÙôùö èÞöúú òßóóø ñãìïóñÞôüû æÞôööíÛøúòÜúûúðáúþþõä÷þûøæöüûûÞøüñÝ÷ûûïàûÿý ðÚûýýêÙùúæÖ÷ûùߨûû áÕúÿú àÕöû÷ åÕöùáÔ÷ù÷ ÚÜóùöàÝøüÜáøþûÝá÷ýûáâòú÷åãøþýãçò÷ ïåøýûîâó÷÷îÜöÿúáßîôò êàôúøíâòú÷ìåñúöïâñööéäðüøôâöüûòâöýòÜõý ëàðüúñàóþíàóþüîßöýíßôþûóÙ÷ýí×ôûø çÚñúù ìØõûäÚòúøåÜôüø èÝöþúëØöýú ã×òùùâØöÿúåÙöúûèàð÷øòÞùýýéßóùùìÝð÷øêßò÷öñßöúúòáóüû ðáòûú ðÛñõ÷ èÙðúõ äÚëõó åÛë÷ô èÙëöô âÚîöóßÜïóôßßìóóåãíõôóÜì÷õçãêðóñáñúùóáñöøùâìö÷õæìôôõàïøøîÜìõô ëÚèïñ èÖìòôÚßåòñçÞï÷÷ éåéíòõåòúûôãîúúóâïòøõèíóøûãïùùôáîô÷ ìáð÷øðßïõøóáïö÷ôßïöõ ñßîôö ìàìñóíßñøù ìàîöö ôâðúøúâñùø ñäðô÷ïÞñúù èßìôö ðâíóöøßóùûñáõùùíßò÷ùéÞôø÷îÚõøúëÛôôøçÙðóô àÝïðôÞÞìïó æÖî÷÷ÝÓîóôÚÒïôôûÏØìóóÿÖÞîôöäÙòõøáÝíòõ èÜòøû èÞð÷úñÙñ÷ü éÜêëöãÝèìóÿÜÙçòòþÚÕçëðÛÔèïóÚ×éíò áÖìðõá×ëðõÞÕîîöÚÔîïõ ÜÑïóöÙØìó÷ç×ìðùãÕèñöÜÚéõú âÞæòý æØåïÜÙàêûäÙçî éÕçïåÙåíþ ðÞæëýöØêìý ìÜçïý îÜåíý ïßåîúõåáè÷ÿàéðþòÙçïù æÙåéö çÖèëù ãØïøûç×íôûæÔîòú ãØëîöâÞìòø èÚòùü á×îðøØàéêôíáöÿþéßùÿþ ãÜóöùßÝñô÷áÙôúûÜÝõûûäÛøüûèÛööú ãåñõõóåþÿñâùûüðá÷üû÷ÞøÿüòÖýþý æÖó÷÷çÒöýøßÓòú÷àÖ÷þù âÒøÿúÞÕöüø äÖ÷ü÷áÙøü÷âÝôùõ åÜôýöé×õýõàÙôýõ áÜôüõ çÛô÷ô éÙôûõ åÔùþùÛÒôøõÚÕó÷õ ßÛõûöçÞöüö äàøýøëáøûùíÚøûû äÝôøøíØÿÿÿæÙúúûàÜôö÷äáöóöîØùûßÕññõØØîòð âÓôùöØÜîòðãßð÷óäØñúôýÛÖïõòúØÔìóñýÙØëóð éÔñ÷öæÜîôô òÚðùõéÚîõò æÝîñòìäðóó÷äõûùõáòùùóäóó÷úåôú÷üâùúú ÷ãðõøúàôùý ôÛõøùëÜñôøíÝò÷øíÜ÷úüéÞùþþéãõûþëâùþéÞöþþ çÞöüýðá÷ûþøãùþ÷äòøü õéñùúæ÷ýÿé÷üü!åõüû%çøÿü&éöûû$êôõú# èõ÷ùæñõøéðòôäóùùþäîó÷ ÿÞìñõòÚëóôèÝêðòïÕñóöçØïóôæÙòøøäÙîõöæØð÷ø âØïñøßÝïòõåÞëõöêâîöõñàçèó îÞÛëò ìÝßôû ëàØòþöÜà÷ëÚãý çáâø ðæÜîùâÛíõâÚåôà×äþòÝßì ìãÔáõõçÛèøûåÞìù÷ßàñú÷Úßé÷ðÝÞêöòÚçôùêÝêñøôßìñùùÞíðöõÚêñõ íÝêîòòáñö÷ûÙòøöíÚñöñìÞòòïîÝøúòëÞøùòîàø÷òôãøöðöçûüòþãþþôþçýúóäÿÿôÿÞõóÜüøïïØÿñëØùúíðÕï æØþýí æÛÿîäßì ãàì ââûüèë×ïàÔêÞÕìÚÕêØÒì××ýêàÔ ñ ÝÒï ØÎíÒÈíþÇÓû÷çÿÓÔÿüìøÑÖüýéÛÕÿïÝÑðÿÖÕÿüìàÓýÿíÝÍÿÿïÔÍúøíÕÐüùïÜÏ÷øðÖ×úúñÝØúûùüÕÚõÿüþØÝíúÞÜð àÝåñãäÞæîäÝâ(ïáÙÙ1éã×Ó9ïßÕÇ:æÛØÅ5çÛßÉ2 åÜßÊ(áàÝË äàãÔëÛëã ä×éäÝ×ñèåÕñïúáÒöúøÓÖõñÙÎú íÿÑÏòãÕËúâÿÌÌý ßÒÑý ÛÚÐÙúÐÊý ÓóÂÎþ ÑøÈÒÓÔÓÓÙÙþ ÌãÔÑúÒ×ýÌû×Û ÑÿåáÿÏñâÓ óàû Ó ðÛÿØ êÛû Ö ëÙû ØåÙû ØãÛþ Üá×ý ÜýÙÔøÚÜØýÜ åßþßòáåîÚÿãßÛöýÞÞÝûâ êÜúäçÛöþâæÜøÿå çÖüëáÛ÷ëìàúüìôãüñüäûýòþáüùôõÜóôðîÜï÷ððàóúððÜöÿö ßÚ÷ûõÝÛó÷ôçßðõöòÞòûøìÛòóúçÙñõúêÙðõú èÜïõû îÛïóÿëÜïñÿêÛïôåÖïôáÔïï ÜÞëðåâíò êãêìñÝéíèÞèìæÚêñåÝèìõãèíáìï øâæíñâäèîãéêóåéë ôëìî ûéîóúåéð ôãéî ïçèî óæâéóáãë ñÚçí íáçìøãéîÿâæì ääì äãì úäåë øãáì ðáàë ìßâï ðÞåí óáåî øÜçîíÚêñ ë×åë åØéì åßäèðßåìðáäæðããçðãàçñäßæ õâäçõÞåî ôÛãæõÝãçùáãëüãåéûáèíôâäè ïäâéòäæíúàéðùßæëøßæë ïããê íßéð éÝìñ íÛéï ëÚçïäÚèï çÛçë áåêðëèëñîäèïíåéòôåíõ÷Üðû êÚïðãØïóãÖíôßàçðýîàðóïßñúîåïóôçó÷óåð÷ ïæíõ ðêíòüáùþöãìíüø×óöÛÙìöüáÙìòö èÛï÷öíßýüðáÿ øðÝ òáØ óØØñá× íåÚ ïèÜ îëÜ îèÚÿí èÕüìßÙõûçéÞúýéòÝûÿì ìâûýïîáýýíëç÷öìôæöøïôå÷øðòßùýò éßòöîìÛöùïêÙñ÷ïçÕòóï åÖëéêæÕèïç ÞÒêñêÚÝåîç ëæéïì÷äìöîõèçïìüÚèèê æØñðí çÔýöò å×ôòæÔýñðäÏúíñÙÏðåèÏÓ÷ìêÐÖôðéÓÑóêæÇÔòìæÔÓïëèÝÏóìëÞÑõòì äÈùîïûÏÑíæèþÙÒôïîÞËöõòØÓêèêçÐòñïåÓïñîçÔñòï ãØëíì ãÓïòðÚÓéëëþÛÖéïíåÑïôðÜÒî÷òýÖÎñöò÷ÒÒëóïûÚÕêòïãÒðûõ áÌðøô ÝÍïöóÚÛêíïîßðÿö ðÜð÷äâíôõ éÜî÷ôààçõñêáðùõìãñý÷ðßîÿ÷ïÛíúõçÓë÷ôÙÖëõó áÙñûùéÒú ÝÖñÿú âÛïþø åÔñüÙØìûõãÛòú èØðû çÜîÿù íÞïþû òàïþø÷ØõûìÙîþõñÛîú÷ôßîý÷ûâïþøúáïý÷óçìúõÿáõÿùæíüøâôüùÞðý÷îÛôþùãÙïýõåàíú÷÷æñùüððüøéñúóáïüùèáðø÷òÞöþúôàôùóáñý÷îßðýøèÜïý÷ çÝóùéßðûö îßðý÷ ëãñùõ ïÛ÷üãÚëúõçÕîûøãÙÝëë ìÞðù òÞñþ ëÙóþÞÙëýúÚÛñþûåÞëöûóáðøùùßñûûñçëñõäøÿõåòûýôãóÿÿöäõýýüáòüýöãöÿüñÞ÷ÿûæÞïû÷éÞñ÷ùðÜöþùóàôýùþáôûù õâñüù ïÞöþúïØùú ì×ñóó íâðúõ÷áñùóéâì÷ïààòùòØÞöüõÕÞóúôãÜõùö ëÝð÷òîáøýø õÚùþùÝÖðùòÌ×ùÿ÷ ÔÔü ÚÕþûáØüúä×ùþøÛÞñûñ âÝûøçÙøýöåØýú çÜ÷û÷æØðóóÛÜëïð èÚòùôäÙò÷òÛâòôñ æçðöðíéðõðõäòõóõÛðõõðÛîòñéÜôøôçÞïôòíÜóòòðßðñòùØûýúïÕõö÷ åÖ÷øöÞØóúô àÜóôóãÜóòò ãßõõö æØ÷ø÷ÜÔõöö ÜÑùõöàÌõòõßÈóïðÕÏòïñ ÞÓøô÷àÚôóö åàñïôæàíæîââ÷ó÷ëàùóøðÞúóú ðàöðù îæûôýúßûõýõÛøòúö×øôýö×ùøúéÜþöþãáøóù äèõòúîçöóúìÞñîõÿßÙñõ÷ýÝÞñðõêØ÷õûçÖòï÷ åÔöôù âÙññöèÞóö÷îáñò÷ôåíðôüëëðõýêñ÷ùõæðôöîäïîöðàîóöîßïòöîÜíðô êØêïôçÝíðööàô÷ûõßïòö èßèìó ßåìñöêäòõøíèððö÷èóøûöéñøûúèï÷úÿàóûýöÝñðùòÚöúý éÞñôùíÝñõúæâíìöëÝôöú ÝãìðõíäïôøóÝãîöçßëÿÿíáïðâïðßíîåò úßì ïßäûþóâìüíáéüþ èâèõû îãêöû íßèöû çàéõùéÝêôöåÔé÷øÚÐèòó ×ÓéõøÕÖéóôØÐìó÷þÊÓêñòÖÑëóõÑÓéïòÐÒçòðÐÑéïñÒÎð÷öÈÎïñöùÅÕêðóÔÎòùøùÍÑéñóØÐèìñÙÏèèðÿÒÎõûùÔÓò÷ø ÞÓûþÚÕöýûÜÕúüýßÒô÷÷ÞÎø÷úØÑóõøØÒñòöþÎÕòøöûÓÖñòõûÚÙîðóçÞòôöô×÷ø÷èÙîíó îßðíô÷âôóøûÜ÷üüñÞñó÷öÞõôûþâôóùßøöþûÝ÷öûûÝöòûûàöòúýÝø÷üõâõòùùçñòùàíå÷ ðàîêø óÞóîøôàùÚü ïÚûùÿ ô×öõý îÖùõû çÕøõü çÓùòùßÙòñ÷ ïÙòðö ïÝòðö íÛõöû çØö÷úéÝôõü øáöõúÝñðøöØìëòëÙôòôëÔúùöä×û÷÷ ìÕüúúçÚûóõ êßøöô êâ÷öö íÛõúõèÖðïï îÖôôóîØðòòîÞöööøàôôöüÞó÷õûßñôõøáô÷÷òâòóõîÝôùùïÙîïõ ïÖìôó èÝîóó æßöÿú ãàùÿü çÝ÷þú êÜóýøò×ñöóéÛó÷÷ìáï÷õôêñúøãõýýùßïúö îÞì÷öîãñø÷ðáöÿý êáï÷øïåêóöùàæññïàêù÷îÛóýäâïúùìãðúôâóýöæðüûúæòÿýõéñüüåîúùòíìøûãòÿðæîûûñåðûýïâðþüçæèóôìéìóöëèîúú çâíÿû çáëøúñáêùúóáîýüòÝïûüìáëôöïÝåòõ çÝè÷øæÛîûû àßôþþçßì÷ü ëäéñûõäëõý÷âñûÿ îâíøþîÕîùÿÛÑæôøÕÕåïõßÖìòø×Üêö÷ÙÚêöùÕÜéô÷ àÜë÷ùäâéöùìãëùþéÝîøþ ãßãë÷ìÜïûÿìÙïóýçØú æÜíóüòÞöúõÝíïûïßðöú ëßèïõçàçëóêßìöù ñÛíïø ë×ïóûÞÓëñ÷ ÖÑëôöÙÖëñøäÎï÷üÕÓçñõ ÝÕìîøãÕîóùÞÚéö÷Þâëòøêàñúý çàêôø æáîõû çßìôø éßêó÷êáìòùïàòöûìâïôùòÜìóùíÞìîöðÞíð÷ëàèðõéãèîó êâëòõ çÝêõø äÜìñù åÙìôùßÕêôøÖÔèìõÿÑÙêïøÝÞíöÿæÑÚèüÿÎ×ÚíÝÖãõÝÓãô$ÖÎÕì+ýÎÓÒà0ØÍÉÝ2ÌÍ¿Ò"ÎÏÎÝ$ÑÊÍÝúÇÒÏàרÌÙ å×ÑÜåÙØßâàÖà ìàÛè óÜàç îÙÝåðáàæþÝçïöÛäîüóØçìù êØéôùåÎéóõþÕÏèñïÿÕÔëñëÛÕðõíÜÑôùìýÓØíõåÙÝï÷ã çÚ÷ûå äÙôýã æÚøøãëÚûÿäóÖÿå ìÕÿãäÕþàåÖâãàÿá íÜãçÛÞ ìÙâ îÜßù× â ó×ÜíÕ àéÐ á èÐ Þ íÔ ß ðÙ ÞëÜÞíØÛãá ÞõÛýÞ ìÜôßõâþõáõáé ùäß ýßÝ øÞÌîòâÐóôåÍëóíÊäðÒèêÏáýäÝó÷ßÛëøÞäïûÝæñÿøØçñúñÔíòõ ñÙëòðûáôûðýíúüëîùûæðú÷áðýùß" èãåÿßçâã ßÿåÜÞ ÝõÚÝ êÚÙéá Øòè Øùê Øôè ÕðæÓðàÓ ëÛÔ éØ Ö åÖ Ø äÕ ÚÞÙÙàÚ ÙÛ×ÖÔÔÕÑÖÖ ÙÙÚåÙ ß æÐàØÑßÙÖÞÿàØâþåÏÜÛËáÎÙààÜ+äߨ*âר4 ã ÚÔ:æÕÏEçÿÏÍO%æÎÏY'ßÕËe+ßÎÂg2Þ÷ÃÆ`(Ó÷ÅÍ`1ÒûÍÔa2ÐÔÑ[2ÍËÕU-Ç ÕÑM)ÇÏÐF-ÈÍÑD.ÐÏÕ=-ÒÛÑ6*Ó×Ð*ÐÕÍ#ÒÎÌÕýÎÐÕýÔØ ÖÛâ ÝÞâá Ûáà âÝüåæÞûÿéèÝúþíéâõúðòâïòóðÚéîó æ×Úàî á×ßëòÞÔÞçóÖÕÖäñ ÛØÓßõãÚÖãü ÝàÍßü áÙÒéÖØÌÛÿØØÉÛÿÞÕÅÕÚØÄ× âÜÁÕèܯÌæã³Öìê´Ý"÷é²à3ûæŸÑ5ùè¬ÙAýæžÇ> ÷æžÌ;üâšÃ8ùÝÂ5 ïãšÂ/÷àŸÄ2õ霽,%è¢Æ0øèœº'ù蜻%ü퟾% ê¥Å(ë ¾#ë£À!þã¦Å$ ó墿üä¦Ã ö䦿õå¨Äóä¬ÉõÞ¬Ìéè®Çþå¹Ò"ýå¸Õ!üã¶Îùæ¼ÑúßÃÚðã»Ñ öß¿ÙôÞÁÚó߯ÛôäÄÙóèÆÜôèÉáøæÓç÷âÐãôäÐæõèÎæüç×êùáØëòÚÙë èÛÖäëÝÚèìÞÙæ ëâÚç íàßðçÝÜê ÞæÙçíäâò òáâí íßàìæâáî îÞêõ åÖçó ÞÜåîèÝéõïãëóòãîûðèêòúäïùùãíöûçî÷ãðû ûáíöôßëóú ñÝíïøð×ïñø æÝíòöøåóöùæõùúáöúú÷ÜøýùóÙöøö ñÝñññöÜ÷ýõõÓüöæÖõûð íÜøûðôÚùøïîÞúúíøãüûïýäþþñûäúüìúâýï õáüûî ðãûýíõßðïÜþýììÚÿíïÕÿí ìÒð ãÚüê äÝêáåÿýæóÝúÿêêÙùëåÙ ôÿæÕ÷âÙøåÚ÷ ãØþñÜÕ÷êÛ×ûë âÎûêÓÔÿéÛÚìßÙüèÿÙÚýæÝÒþçýÒËûþä÷ÉÏúüáÖÐæÛÍç×ÑÿýäÛØÿâß×àÖÙúùÞÙÜø÷ÝßÛþýßâÚâäßåñÜççÓûöáÙÓùöÞß×ÿþãèÔè áÑç ÚØæ ãÛè àÚçÚÚûãÙÒê÷ÍÒýäüÑÒçÒÕè ÛÓì ÛÖëâÔì àÖë âÖ îãÔìÝÜí èÞí ðÜðíàí ðãòôß ôòÜ ôîÖó è×ò ç× ôàØñ àÚò âÛòãÕòÿÛ×òÝØôäÔóã×üòéØñëÑ÷ßÒö ÝÖÿõ áãûüïïãýÿñîÞþüóè×ôýÛÛùüñáÜüüõéäúúñöäüÿõûßý÷òÞüû÷îàýûõïàüþôóãúûôùäúúõôæø÷óøêùøôùåøüöôåööñõæ÷ùòþãûüûýãíóóüåöûÿßùôÙòõýêÛôüêÞõïßñöìÞçîø èÝïûþ æÜéíö åÞñ÷ûèßëóúêÖó÷ýÜÖñóùáÚðúûéÛöûýåÙïóû ááîöøëÜõþü çÚïõúãÜòùü èßöûüòÝóúûïÝí÷ø íàï÷÷öáõúüóÚ÷üãÙòôöâÞîôõòàôûù÷âòøöôÞóùøèáóøö îßòöøóÝîõ÷õØôüùòØð÷ùïÞîö÷ôåîõøõàôþûåÞï÷÷âàòýú ìÝóúù çØðú÷ èÝðúùñÜóþüïàðöùòáõùüðÙòùú æÖëïó çÚíóôìÞïõ÷îãîõõùåí÷õüçêïòüãêñóõäçíï÷Úêðò çÜååí ëÙçêî æàèíñîØíðô åÛçìñçÝî÷ôäÛîò÷âÙèèðà×çéðâÜçëñèÚëëôâÛèêò åÖìõøáÔçéõÝÒëïõÔÔæéôרéìöÛÖèíøÿרêìõ×Ýéí÷áàìïú êÖêíûÜÒàáõÙÒâéöÙÔçðûÝÏèïùþÓÓâëôØÎçðøýÎÍàèôúËÌâëôùÍÒâéóúÔÖåòöü×Õâèôÿ×Üßåñ çÜêðùíÝäë÷î×îïþèÜííúðÚ÷ö éÚòñ æØññ è×ìðþ äÚæèû âÞíòýçÞéíüëàëîüðàêîùóßîõþñÜêòýïÝêôþ ìãéñüñáëô ïàçìûòáêóþ÷àêôÿóèéóýýåñúøíåïùëë÷ýþäéöûöáê÷ýòëèôüþÜîøÿ ìÝè÷þðâðþñÜöâÙíøþÛáêõü åáñýâÞìúÿëäðûþëØêøû ߨì÷üâÖïøýÛ×èó÷ÜÝéùù ãÏïúüÕÔêô÷×Óêùú áÚëöú çÚïúú âßêôø çÛíøúæÝè÷÷îãì÷ûôÛïþýêØìøùëÝïøûðØðùú èÜî÷úîÞîûüðàîûûöàðüúðÝìôø ïßêõöóàïöü÷ãóúþ÷ÞòûýïÜïöùðÝïþû êÝïùú éÝòùý èâñùúóäòüûôÝóþýëßïøùðáðúù÷åñúøùãíùøòåìðõüèòûùèöÿýãòüû÷Þîñõêèéîðùêùþàý ôÜóùúìÏèíòøÑÝèñô êÞøÿñÞð×ú äßôùúïÞòùúèÛ÷üø çÞôôöóÙóõõéàïóóöÛùûù ç×õ÷ôåÜïòòòÕø÷õ éÝðõòóÛøü÷éÝôôó íßö÷õ ïÝøüø ìØùÿùäÖóöôàÖñúõÝÕðôñáÛïøñ éØöü÷ßÒùüöÿÔÚóöò ãÛøþø çáôøòôßþùê×øÿø ÝÔøôõÜÔîðñåØîôòíÛö÷ôêÛüÿúèÓûûÙÖñöõâÙùüùìØûú æØúûú åÙõû÷ãÕôúõþÖÖîððÝâñóóôàúþøô×÷øø îÔòóö îÖôõõéÙðñó éÛõø÷ çÛôùõäÞñôòéÜóòòåÝðïóóÙõõöòÚöö÷íÚ÷ôô äÙòïñå×óñò ìÕóðò ç×ðëð åØóñôßàóñôèà÷öøàâôôöåÚöøú ÞÜõñùêÕ÷ûýßÒô÷ûÓÏóöøÑÙïòö áÕô÷úÛÉð÷ùþÇËìñõÊÎóöùÉÚìòõ ÜÜñ÷ú ãÝìñú äÜìòøâÚíòûâÚïòüèßìñùôÚòöýëÙîñù è×íòø âÛëï÷ç×òöúÜØèíôßÞìí÷èÝîôû äÖïõùÖÙëñõßßïõö èÜðöö åßìòöðÙæìòçÖçíóãàïòøòàúòàõùïßîôüëÙìôüßÛåî÷ßâðøûçâíô÷ääìîöçâëñøìÙìøùáÙíòöäÝð÷úäÝöýü ÝÝîñô ÚàìòõäÞöÿûêäôúùòâðöø ïëîôöùå÷ûûðííðõæöûûúèòù÷'åòûú#äóúùÿéñ÷øÿéôû÷ýàöüøîéíóó éöýø"åúÿüûãöûûõçöûúþàùûüõâóõöüâøúø%ÿÜÿý$øÜûýü ñÖýûüáäóôôùâýýôÙýù âØ÷÷÷áÚõõó èÖøþöâÙóôòäÜñöòéÚõùôìÙôùôíÞòóò÷Üöùôïàñññòæòóñ÷âñøò óÝòøõïáîôòöâôýõøØóþ÷ëÜñóòõÞöþøôÞöýùðßôø÷Úòþõï×òõõîÜôü÷óßüüîâðôöèàæêîüâèäæî ôãöþðäðöõöàïýñÜèöÿòÛéõóéääãéç(÷ßáÜ+òåßÏ.ûçàÒ0øßÞÆ)èäàÌ$ ïãéÖ$ôäëÚùãìâôÛïè áØôøÝ×ôûùâÒôîÜ×ôê çÙûæ åÑýàÿØÛùÖåÙ×ýÝÐÕóÍÌúËòÍÚú Çç×ÍßÖÊáÕÈÞÑËøÚÙÿÇêÖÎâØÍ äÔÎàÐ ÏÙÑ ÏýÙÞþ ÏíÛØèÔÙ÷ÕÏúÒõÎÒöÓüÒÔúÕÿÙÖùÙþÚÏöÚõÎÏðÿ×úÒÕöýÜ âÔý ç ßÙúçèÙöç çÖ÷ëÙÒòþêñÍØîúçûÛØòüìßÙïüìÝÛì÷íãÜòüô çÞæñï ëÒî÷×ÒéôýÏØæöÕÛì úÜÝôßÝìþßÙìÿÛÓêþÚÙä÷ú âÖëÚÝéøý áßäôý çÚí÷ á×ãðûÜÝàêûìÝéóíÚæñèÚèêáàääçÞèêëáåêöåèçûâêëöåçáùÛæäèÙâàëÚáãôÙçßëåöçùÞñêÞëêØñäãêøßþëñæýè÷âûìïãòáýóå÷çöâñâ"÷àùéÿæòæ"Ýöê òáíãóÞëäèåâ×ÿòêäÚúåíäößìà ñÝèÜ÷ÝçåõÜåÞ÷áãÜøÝåßðÝâÞóÚãß ïÝÜÛóßßáôäàÝúçàâ úîßÞÝãæ æÛÜÝ êÕáä çÖáçà×ÛÞÚáÕØ çßáæ íÚãê îÚäê óÕÚä äÜÜê ëÞàóîÞåöïÞâôñÛèù ïÝÜëóÕäî èÙÖã íÖÖâ äÜÚä îàçõòêÝè üèæõøãçö óÞäò ñÝçð ïÙèõ éÕê÷ âØçòä×êîäßæî õÛíû îâîöõÞóùñáíô÷ßñ÷íÝðþ åÛíùý ÞÚõúü ãàûÿûðÜ þêÖúá×÷ çÙ ú åâõ ïäÿöôâÿòïå ö ñãûóôäøðúäüóùâúòöâûñóÝüññÜúðõÜøþîïßùïðÝúýïòÝùýî òßõûëòÝùðïÜùíî×ûïâÔöúëà×÷þî ãÕúñßÐýò ÔÔúÿïÖÚùÿîÝßöûìæÜûîãÝöûë åÜöýíÞÜ÷ÿîÜÚùïÛÓ÷ïÛÛ÷ûëðÙýðîÕûþí åÔõýíÜà÷üëââøî ââ÷þíéæôûìñãùòìÛýô àÝöÿñ èßþóõÚüõ îÕýöçØúôìÛÿõïÞþõíàüö éÜùòàÚôýî åÚûôíÝýö íÛûõ ìÜûóìÕ øáÕùñãÓõüîâÔ÷í æØùùîñßþüð÷âö÷îõßúøðïßò÷íðÖøòáÞðøëðÜ÷ýñ éÝò÷íçÛ÷þðæÚöøíìÔøùð âÔóõëàØñîåáØîôä ãÜî÷èïØôõì ìÚòñê ëßôúñ ðÛùýôæÕõþñÛÚïöì åÜ÷ùóëØùýóáÕóúñÚÓïóí ߨôöï çØøýð å×÷úðÜ×îõéÛßéñåéÚìùì äÜïòíåØõ÷ñ ÖÖôùòÒÙòôð ÛÚõýòáâõûòëçôøóïãð÷ñèÙéñïúÕÞãèæááîùîíÞñúôâàæøí Þàìøó áßóüöçÚòõöÚÞêññ áâíõ÷ èáéòõ çãëõõðÞëóöåÚìóõÚÛéëóÜçäìîøâðôôúÛíîòíÚæëíãÛêíðÞÝðïñ äàðñó êàîñó ëÜñõ÷äÞíòô çÚîôõ èØïõôçÙïñóéÝîòòðÚóøøèÜóñõåÚòðóÚÜîóñÞÚòôôãÞóõô îÛóúù òÙò÷øöÛðòõýÐôúû èÍðïõèËòôùáÃ÷ûÿÐÅõøùüÍÎòó÷üÑÐïõõ÷ÎÏðúôõÏÚðùøçÝõþ ïãôþûùâîôø÷äñô÷áøýýÿãöûÿæøúþßûòÕöüØÝìðø äçîöùîäòüççé÷ö ïåë÷úñãêôöñäéîñðßêîó åÛðó÷ÝÙóõø áÚìðõ äÔèèï×ÙýõöÔÛ ÷õÛÛòòæ×ñó áÙòó äÔïòßÔ éíÞÒïðÞÑèî ãÐçò ãÓüäí æ×ÿëô åØïö æßúíð íáúíñëâøçñ éáòåî ëàóçò îàíåðîßéåï íáêèðòÙðîø äßéæòîÝññþ ëÜîñùéÙëó÷åÝäïñãÜßíïáÞÒæèßÞÌôîéÜÕëÜÍ íÚÇþÞß·âÞµ*äá­÷,éܸ8èÜ­ò/ ïÚ´ü.éê³ð&þè¿ÿ'ôì»òýê½ó ýå¼í ûãÁï ûä¾éçÁåýçÃäù ðÁâû)ìÑñ'èØó& åÝî&áßö$ÖáóÿëÑÛíô àÉâóóýÕÉäõòþÚÐæøðåÓåòì åÙáðäíÙçøè éáèöéñàíôéêÙì÷çÛØõï ÝÖð ÜÛóèÚùçÞ ÷ïÑðÚÒùùçáÑéåÍìÝÏèÞÑâ×ÐùßüÌÑÿôÜöÍÍöÞîÉÓþøßýØÓçÝÛüäê×êèÒì âÜÿëôà ïüÞ òòã ðöäóöÝó éÝÿíìã òùÚøçÚòäÓ õ ÛÑ ÷ ×Ñüó ÖÑ õ ÙÓùô Û× úó ÚÚøñ Øâùïìáóò ìßõõñ ðßþöÝúÜøÝþùúÜýöÛùòäý÷ÿàðåøðûóçÿúÿ÷èÿôü ãöþúàýöüõà÷ñùõàÿóüõãûõüýáûþöãüóûõßþøý îßýõüìÞùÿ åâùòùñêþôý!çûýæÿùÿøâûõûñÞýøüêÞøñúíäþùûóÝüÿ äàöñùíáöñ÷íÝûûü çâóëôíáóûøìÞôù åÛðú àÜ÷ÿ âØû ÛÝôþáÙîüýØÚëúÜÕìùØÖëÿöÙàìöæèæûñòâïÿøîâéúñíæìúöõâñþûñàëøöîÜíú÷ éßëôó ìåîõó ñâðöõçßííòèßëîñçäìòó îàððô äåêîñ êêëëòôàôöù çÛîíõ ßÝíñö äßììô éÞîð÷éÞîðö éßïêöãáçåðæäëèôðäíèöõßñêø éÚíêöäÝïéøñàîéúúÞñîûðÝíçù çÞîèûãäëëûñèíëýúëíêýþÛêäùâÝôëøçÕû×Ñ öÑÒ õ Ô×÷ ß× ôÙÛñÛáð åÜÿ÷îÜÛüïÙÜøöí Þæ÷ììõåþüóõÞ÷óð ëÞôññ íÝôîðóÕõñò åÛðèð äÚðïóÞÙëéîÚ×ëéð×ÕèæîÜ×çäï âÚäãëéÖçäò ãÜæáôîàéæ÷ñÙéìû æäàßõøãêåùÙÕÐøæÜØØþ çÜâÞ éÖëêßÕÚÒ ããßÓ%ÿâÝÒ.ûâÔÎ%øäÐÅ!ýßÔËöãÐÊþáÖÒÿâØÒýÜÚÜ ñâÏÎ úãÔ× úáÚÜ úßÜáýÛÚÛüÙÞäüÙßå÷ÔßåíÖÜãýòÔáêÿîÔáêûçÖâéüãÒèóþ ÖÑâë÷ÓÏâíöÓÓáíóßÔåòù âÚÚåñêÕè åÖä éÚè íØé èÚë éÖä ãÕáüä×ãÿ ë×å æÓæäÑåþüâÑâúöãÎêûþÝÒåýõäÎë÷þßÓåúñåÝæûïûÕò ö ñÖéýî òØëï õßíï øÜíííâêýé ùÜõ ðñ×òëçÕîéåÖôìã×òéâØô êäâóçñâ÷ é ëÙ÷çáÙóÿãèßøæöÖý ìâÜ÷çêØü é éÛþ ëîÔü ê âÛþ ê æà÷ã ìÚ å àÐ'äÿÕÓ ÛÝË+çüÕË4åý×Ñ-âßÐ.âÚÏ(âÔÖ%ÚÝÛÛÝÙ%ßÞÙ ØåÒáß×ÞåÖ ßâÖ ÝàÕÛäÜ ÛôàÞõá àîß ßëêÝýà ç ìà âñáåüÝ ëøàêöÝ ëëâüé÷âþíòÞüì éÜ÷ÿíåãñùéîæ÷ûî êåóÿîêäòùïëÝñùïâÜòøïâÞíñïîÙóùöìÚðõö éÝíû÷ äÝîóø à×òôúÕÕíðùÿÑßçíõßàïóüçàóøéáðùëãìïþïÞïôéÛíïçÕïñÞØçêÿèÔïõß×èëþäÜçêÿåàéìæÞëóÞçãçýìäëï íäâîôèæïæëñþæèîúåáæüÝáãðØÝßþ æààãÿðâíòîãêòéçéí ôèéî öééîøäêêõÞéí îàåíòèçæ"ÿåïîøßìí èÚæé ÞÚäæ ßÝåä äèçæøæìð öãìîêäæåîàêêëÚåäèÓæèÜØæçæÖããßÚÝçÙÞáîÕàÛó ØÞÝôÜäÙøçÞàüÞßÔï ÝØÜñ Õ×ÓéÜÚØìã×Ýî äÐßï ÕÖÛæ àÜÛç åÑÝëÿÒÞÕÛú æÙäðÜÚáëýÝâàâûëçâèþ÷ÝìðçàèëÿëÝéêèßçéûìÙïñäÝèèùèäèèùñäïêúñâðíüïãòêýðä÷ñÿòàòíüîåóîûøÛøöþïÛöñû òÖùòýëÕõþâÞ÷ðùìßüòúëÞùï÷ê×úðù àÙöêôêÔýñõ äØûîõêÔþñùãÖÿóøçàõùùÕüþ äÜúïóéàþôõìçüóõùáùø ïèûîôüåýööúæúñôûæúóôÝûùøê÷ðó!íþ÷÷îÿõ÷ïûðòïúõôïøóñ ìÿôõêúóòâúöåøòóþàùõ÷æìàëÿÝöïõö×ûòîá÷ëùÜøå åÛòà åßðÙïáìÞíØïÞÛÛâÓ ãÖèÛÞ×âØþâàèÛÿîØðêåÔéßúâÒêæ÷ÚÓíçõ×ÓéæñýÙÏêëîùÕ×éåéãÕðëíÞÕòòíÞÕðñëàÛðïé èØ÷ùîÞÜðõæ åÖ÷úêÜÑóõæÔÙóùæáÙöüæáÚøüäàÞõùä êÙþéàÕöäßÙöä íÓþ é æÓûçäÖûççØúèçÛüæ ëÑÿëÞÒùãÿáÞøåîÜÿëýæØø æûâÙü æëØéëÔýê çÒûçíËû ëàÎòãáÌý èýÙÉú æóËÒõâüÕÏûçõÍÔ÷ãøÔÏ÷ åóÎÎõäþÒÊú éÑÑøç ÝÇÿìÎÈù ëÑÏüìÛÎý ðÿÕ×÷ëàÓòØÐù íÿÎÌ÷ë÷ÇÔöëþÚÓù îÿØØóê äÙõ ë âÑûí ØÒøí ãÒú ñ èÓöï èÏú óÙÕóîßÜöò áäøòéâ÷óåàìüë ãßóï äßôîëÞôþòñÙñþñ íÚóýòïØñõëÛóõîÛóöðÞôô íÝïóâãïñìåñýôôåòüõöàó÷òÝñÿöòÞðüöõÝðýøóäíùößòýöÝñü íßëöö ëçé÷öòãìú÷ãèéôõíçê÷øóáêö÷îãêô÷óàñüþîàïùÿíÞðýëåðþòæõðãðøëßìù âäêôþéãïøéáíöæèéóþôäíýóßìöïàéñíàíöìâìõîèìõöàîùæàèòÿèâåîýèâãëû éàäïýççåéúóÞéô çÜäêý èÜæìýèÝçïëãéïÿõäíòíÞêîþ ãáãçùêáêêþíàèîýìßëíþìãæêùðÛêìýëÛäåúìßêíþñâêñýõÞììýíäåâøöæïðûáïòòÞëìþ éåèèûöäïñõàìðÿòßêéúîÙéëú æÞåå÷ñÚêíú èæäå÷þßñïÿöãìëùýßîéü÷çæåöâïêü öâêïùüÛðñÿõÛéíûùßèèüúáäîüöáíùòâèôøáì÷ úáìô üéëô èèðúêæçÙëð ì×äìçÔçë æÙäëðÔëó ìÛåçýðÛéòçÓìôØ×ååù äÝêíþ ï×íòÿþÛÝèëúßßîøþ çÝîõïÛîïüñÖðïþäÏçè÷ÿÙÛäèõ íÝöÿ ïØóøüãÖíð÷ åàîò÷øÝúþåãòõùæÜô÷üãÞíîôíÏñô÷ûÍÖçéîÛÙô÷ø äÍôùùÿÑÐìîò×Òôõù×ÌõùúÎÎóõ÷ÕÕôøú ßÒýúüרòóöäÙûüýæÔùûüߨõóö êÝô÷øóÖüþý çÚöóøïÚøøøíâùùúùàûüõÙúúùîÚôóö îãòôõùãøúúüáøûøöáôöøöáøøöúÛúúûôÞö÷ö÷ßûûùôÜ÷õ÷ ïâóõôúÙûûçÔö÷õÝÙòóò çÜöüöíÚùýú í×ùÿùäÖó÷õ ÝÎúýùÑÎ÷øôþÑÑô÷óÙÊöü÷üÐÝíôïíÚüü ãÚôøö åÜöø÷ëàùû÷ôÝþÿû ì×ùüÙßó÷õêÕþüáÔöøö àÔ÷üöÛÙõûõ ßÞõùö éÚùÿù çÝïòðíÞõøõô×õûöèãñõòùß÷ý÷ñÛõþøèÖïõó æ×ððòêÕõúö âÙõý÷Üâñ÷ôëÞõü÷ èÞô÷öíÛõú÷ æáöüùòßñõ÷çÞåôá×ïØÙä ãÚß*Üà×6àáÞEàãË2ççÑ6 òãÐ, âçÍ!ÿéå×îæÐøøåÖù÷åØ øòÝÝùêÚÛöê×Üò äáÚùï çãáþó äæá÷ð æäãùð åâäóïèßìøôåÚçòî àÚìòí áÖíïìÚ×ïéìÛÒðíì×Òòéë ÜÔðèëâÕòåêßÕïàæÿÒÖòðêÿÌßóîç Ýàöîêåá÷çéîßùðêëâøéêïâúììóÝþíïîÙúéë åÛúæêîÚþãì îÝþçìéëýâëüåæíôçáì÷çãîúéàñ"âäóúãüÕèøÜÿÚíêÔáð ßÖâð èÔãòèÛäóïÔåöýØÛÝïÙßÜï áâàñðÜÝññÙÞñ èÛÚïéÓä÷ÛÒÙñÿÜÖÞòçÖàñêÐã÷ÝÓßóÙÙâôßÙáöáÜÝô êÚâô äØáö áØãöéÙÿß÷ðÖãøîÙâöíÙéø èÞüÝöóàäøøÝÿåúîáüãùìäåúðãèüóãúáøüáìÿõÚÿïÿäØüìýäÙüéüè×ÿíþèÙýîüçÝýòþ âÔÿóþÐÙ÷íù â×úïúäÞñêôîÜù÷ÿ åâúòþìáúóþñÛûöÿ÷áøôÿÿÛþø îåðîúóá÷ùþíÜööüëáðîúòÚõôý ãÝïóûßÝóøþáâòõýùÞöÿòæãåôýãòôþõÚöùçáñõöãðóÿûæìðüûàìóþîáåîùøâëõÿàìöÿ ýÝí÷ñÞéôþòÜëóþòÛíúïÝëúÿîßëûÿîßëýì×êúÿäÛêúþçÜíåÚð áÙíÿàÛìÿð×ðñÕî èØëÿäÜêÿýíÚïÿðÒïæÕèü÷êâìþøÜï íÞêýòÖñ àÕæþøà×èù êÔéüåÔèúäÙçûæÚìû åÙçö æØçøð×ï þ çÖéøÙäàýòîÛì üÿÝÛáõã׿ùÜÓèùÛÕêùàÕçøâÕçøÞÖåöÜÓæ÷ÛÎçøþ×ÔåõâÚéøãÜè÷ãÞäõéàèöèÛãõæÛäó ð×ßõêÜâøì׿ øß×ç ûÝ×áùÞ×ä úáÛàöäáá÷òáçù õâãöôçå÷ùèåÿõþßæø ôÛÞöóîßßùò óßç÷ òÜèöëÚçôåÜçóÿåßçõêäàôðõãíûõóåíûôôçöúùæôüüçïûõÝñ÷ õàìûóöáðþöøÜóÿöîÛôöæÞèõëåàìýì áâîûë æàí÷ìéÙîúíßÚòñ áÝðùìèÞðþïïÖîþñÞÏìùíÿÔÑêõëÚÛñüïëÞôôçÛòùí×Þéòé ÛÙìöê ÜÛëöëäÙðõò áÜìöðèÚôüó éØòûõÞØïùóߨðõóàÌêüðÿÍÙåûòßßïøßâòúáÚðøÙÞïúúéÝñûûçâîÿûõâñþþù×ñøû åÙëôø æÙðùúéÛîøûìàð÷û îåëô÷ðàóõúèàìñöéÞîóù àççêðõäóøüòåóûýûâõúþôÞðôøðÝóòýñãô÷þ÷æðöüõâô÷ýêäòõüìåññúïáïòüéáñóüéßïñû äÛñóûáÞíïú çÜñöý åßñìùîÓ÷÷ÿÜÙçéöîÚõóþéÝòðú âãíìøåãððúêáóñýëâìëøðäîëúöäðçü öãéìûùßîó òßæô öåßê %æÙå8"íÎÎI#øÉ¹P0 ñÓ¼Y!ýòͲM!òÚ¹G# ìß¹?æçÄ3ùãòÒ*úÝöÜøÜìß ÷×ôê îÔúòû åÝúøðïÞÿìéâüûÝíáýý×ìáÔìØ ÖßÜÑéÜÎíÕËãÖËäÙ Ð íÙ Ë ó×ÌðÓÌæÜÎìÞ ÏëãËôáÏíãÖôÝ ×éàÿÓ ëà× ñÜÚ òØþØ èÒÿþÙÚÒüüØ ÕÕýÜ ØÕßÙÔàÕÕÿüâ×ÖÿûãÖÒçüÑÒûüãüØÒþýæú×ÏéúÒËìüÊÌûùèËÎ÷òæÌÇøøêÃÊïíåÆËïîæüÄØôòé ÜÚóÝÐýÿõíÆ×ñóí÷ÔÓ÷ûöòÓÔñöõ÷ÛÏüÿûöÕÕôöøâÑòøùÙ×éîñãÙôõùáÙóñ÷ÝæîïöüàúøÞî÷ýïÜðïú çÜððýçÛôúîÔðòÿë×ðòþíÙòöèÙðïþäÕìîü ÚäçéöïÛôöéÜíñÿíÜëìþ ëáììþ ïâîó ñãðñõÞîïõÝïó÷áíðûÝðô ðàêðñàêðêÞêð æäêñóâðõóÞí÷ ìÜêõ ìÝíöìàêòðÜðü êÚìñæ×ìòâÛçòÿ ìÙíõ ç×íôçÛéò ì×ìõçØçïÿêÓïöýÝÓçñþþÛÕìôáÔïöãÑëóÞÓëòþ ãÔïóäÔíõäÞìòðßòö ìÚðúåÙïó çÓñõàÙìðþèØðö ãÚîóÿ âÖðõÞ×îðþè×î÷ æßìôñâñøøßñõïàðùìÞëôëßïõþóÜóûïÝñø ïàî÷õàõûñÛõûçàìòýðàôüóÞóüîâôûôâóüöàóøïãï÷ÿöçñùàõøýÜóùÿÿßõûþùáóùþôäôúûõæòõøúæíôöôæëðôñçíòöøàñùùñÝîööìßðö÷ìâîôøõÚòûø ìÚíðòòØôüúì×ñù÷ äØñúõÞÜð÷óàæëóïóãðùöðäïúôñÜ÷üû èåíõóûßõý÷ ñÙïøóåÖéñî ãÙìñïèÚóùõìÝïóòïßìóïðãíòïôèñ÷òüãò÷ôòêïûöþéêððüßèýó îàíù ñßñýõÜêúðÙìûç×åõãÖâñ Ýßæñ èáéñäÝãîáßçðëÖêòàÛäûðèÓîóô×Ùá÷êãÜëûîðÓðþòè×êøëéÚìùìãáéñêìÜîùìàåêñêïÝöþòãßð÷î çÝïöë èÜñ÷ííÖðóìßÒïóëÛÒïÿìßÔõíæ×ùîæÒý òÕÕîöéÕÛð÷êÚÞôüì äÚ÷þïÞÚñúêà×÷üîÞÚïðè éÝ÷ùîö×ûüñîÚõñí ëØöùíàÞíïåèÝöõëæàóîé êâôòìæâô÷ïéÞøöï çâóïíõÞýûóìÖôòñáÙöòïßÕùòôÕÖöòî ØÚ÷ïðÞÙùõô ßßôïñãßõïôèÚöíôâØõïó àÚùñöåØúó÷èÖøð÷çÓüòú ßÓùðø ÜÖýôúáÔþòûà×üòúáØüóúßÚøîú â×÷îøÝØôéúâØ÷ðýçÛøõîÙûôäÞøìüéáúðÿðã÷íþ"õåöðü%õãöïþ"óæøñùèûóüéøñçúôûêùòäû÷ûß÷ò÷ßùò øæýø'äûöøçïëûþæóíûùàöóðÙóñÿåÜöòÿçÝøö âá÷óìÜóòÿè×ôïý ßÛîíú âÞøô çÚñìý äÕöìþ æÖúîéÜÿêóÝð ñåëüâ î ûÞÿåøÙìðÜûçíÜýí ë×üòàÙõèüåÖ÷êüáÖöîûßÔõïüÛ×õñýáÝõñü娸õþ×ÙìéöÖÚðï÷Úáîóø ëÝóúýèÞîõùåàëö÷äáëôö êÚîõùàßçñõ ìÙóÿßÜëöøáÖïüûÖÚèõöÛÙìýûÙÖéýø×Öêú÷ÛÖëýúÛÜëüúäØñÿÜÕïþõ×Üêýøýâáëýù ïàêþûøÞæøõïâäøóÚáø éÛÜ÷óÞèþùÖôèÕäúåØäüÿàÞâ ûçÜçúûáãÞÿóéÞâöæàáüòòØå÷í×àýòìÒâôãÖßúð ëÍå÷âÏçöåÓäÿòàØåûïãÖåýïßÛãùîéÝæÿò ìÙèòçÝßøíôØéüóðÒçýñ ê×ãøíøØìþóúÚåýñû×à÷ìõÜáôîöÚçýð êàâôë ïäèôî úÙéûñëÞßîêôÛóùðÔ÷øçÍóýõàÑæïê æÒóþõ ßÏîõîÔÙñóì äÙð÷íâÜîöì çÛïúðæÜíôí ëæìöðùßñþô îÛïøôçÓîùõÙÓñùó ÜÒ÷ú÷ØÞîöðìÜ÷þù áâôöôæèñûõìêòùôïéñùóðåòûöïàñø÷ éäð÷öñÞ÷û éÞôùøîäôúúùáòýûîÜïúøÞçïõùñèûôßÿäãòíùìßúúéèóòüúâþýõà÷ðþñÞô÷þòß÷ôýôÜöïþìÖõóýâÛôôüæâóñùíãðòùîÙôóüÜÜðïùçâòïùöà÷øûðâññ÷ôâïñøüâññ÷ýâïì÷âïòö!áñôùýâò÷ùöÞòðø íçííòúëñð÷ççëõ÷êéî÷öãó÷þ íàøù ìÞñðíãððÿúÚóñìàêìûíãðñüîâîòû èèïíù óæîðú òâîòúñáïíøíßðñö êßïñ÷ ïÜðï÷ïàðñøý×ðõùìÖïñ÷æÔõùü ãÝòõøñÝôôù ëâîïôðãóõúîÝóøûþæçíïõ øäôõüôçòðûüãüûþÞöôýùÛ÷ùòàóöýøÛøø îØóõýäííëöÿèú ôéóôû öìò÷øÿìõ÷úÿìòôöêò÷ùüéðõö ãôüù÷êëóò%ã÷ûøñàððñéäëòíëééïïóéïóòõäñöóïãñùóòÝ÷ûúéßòõùêÜøúûàÑóõøÿÌÔëíðÎÒóööÊÑûûÿÈÊúýûð»ÍíñòúÄÄó÷÷óºÅó÷÷ö¼Äôøùò·Áõùøë°Çíôòó»ÈñøõõºÅïóôñ¶ÃðõóðµÏëëíûÈÒðôñüÍÏìñïùÌÖéððÝÓðøøÚÍóóùÖÎñòöÕÎñô÷þÔËîöóüÑÎïóõÓÑñööÔÏó÷øþÒÓôó÷ÜÐñõø×ÏïõõýÔÓìòõÞÔñøùçÒòôûèÕñöúïÎöúýÝÍîñø×ÑíðøÛ×ïñö ãÙðõùéÐïñ÷ãÑëîôëÌô÷û æÎò÷ûîÑôõúïÖñðõòÕö÷÷é×õööëÚíçòòÙøòûêØðïú çÝïíüðØ÷õ âÖóïÿÝÑêëü ãÖéãúî×ó÷íÞíéýûÜú÷ ýàôîþ$àöîý!çòíû%åóòùàó÷ûîÚñøúÝÜð÷ù çÚøýþôÚüþüûäûûûÿë÷üùúìöû÷ìíïøñ ðåïøñ ðêðûòåùú öçòþõ ðçïúñ îæõûóñèöþôæüøüêõõÿðùùî÷ú øìòõïëïýðñéññ ñêïúì õìõòúæ÷ÿò ñæòüî ôæóþïùäõþòøçøõúâþ úíÝøõäåòò ðç÷ö ñïøôè û ùäøõñá÷òíçóôúÛú÷åßñùîñàû÷õáûøõÞúõíÔóûðÜÞóùíëÙøò äÖ÷ýðÝÕõûïÛÕúõÛØ÷ô àÔøöØ×ñ÷ï ÜÔòýðÕÔôùðÖÑñüòÙ×ñ÷ðçÔù÷ ÝÓôüô×Öòúò ÞÔôüõÜÌòùôÏÕíøð àÑïôöØØïîò çÝôóù ê×÷úüÛÜññüçÕýý âÛóöð×ñô èßîïüíØïðýÚÚêêöà×ïñüåÙðóûñâòöýýâóøÿðäïöûõÞïóüïÓêëøߨÞáñéÕìóù ãÕìðöäÙõúüäÝíò÷èÝîóöéßèïóêÞðò÷êáíôøùÝõøû÷ÙòóøêÖëîôãÙêîòæÑòùùÕÖëïó àÒðùù ØÎóõ÷ÏÕíòôÛÔòøù ÜÑîöõÙÜéïô éÞñõ÷ðÜôüû íÝð÷÷ îßñöøóÞóýúòÛòöûìÞðôùíßóøùïÝñúúìÝñôøóâïôùûâòûû÷âìø÷ðèìöøûèñúüýßóüüóæêó÷âõúþöåðùú÷ãöþóãñûú÷æòûúá÷üÿâöÿþþà÷þòáíõù îàñûù ëÝïú÷ éàíøøïÙòûûãÜíõ÷ èÚñúú äàíööëÞõýü æàñ÷ù íàóüû ñÝôýý ì×ðùüãáîôø îÞòúüçàóþýèÝòùýàÙîùüÛ×ï÷ù×ßêô÷æÙóþûÝÚð÷üÜÞðøúâßíøú éÚïøûäÔìõûÚÙêö÷ãÙîõû äÓðöú×ÔíòöÛ×íô÷ äÓîòùÚÕçîôÖÛèìóã×ìòøßÜìñø ëØïûý çÏîóù×Ûåëò èÝíñøï×òöû èÔéêó äÒêêôßÙäèñîÙññù îÖïðø ë×ìí÷ ìÜééô ðÝëî÷íÞìïøïßîîùòÚîìú éÙëñù ãßééõêÛíòù äÛéîö èÕëîøÜÛåëò åÕîóúÝÙèìó ä×íñøâØéìõèÜîòúëÙñöüãØðòúâßëíøïàóóüðáîòúõãïñúüÞóóþ îÞéæôðßîðøòàðòùóßõõüëÞðôúî×ñõûâÛéëô äÝîóù êßìðø îÖíô÷ßßäåî í×ñö÷âÕçïòáÖêîòàÜæéñ èÛïó÷ çÜêñôíÞíñöñØìñö çÛìíôæàêïóòØïûû äàêðôóÝôøûïåíñöýßöÿý íåëóöóâïó÷óÜêìö ëßæìôõÙóûü èåíõøûàøÿþ îàîõøíÞñùù éÝëóö åßîõøéãíòôðßòúù ìÛîôõæåêïôùßòøúíèìðôÿíòòø# äçóõúÜåý ìßåôÞæ îáÚ îìÙ ßáìÜÎÿëåÖ ÷äÛ öãÞôáÙ÷ðâÛúÿóÛàþìÞÞõýñØåûâÖäôú ÛÚæöú àÜìúûåÕðúýÞÚêòøíÒõýþ ß×ðóøæÔöøùßÚñõôëÒûûøØÔ÷òñÙÕ÷öô ÛÓÿúöÐÔúöôÒÕùõïØÙøõî çÛýõð íß÷óóáùòôßûóîáüòíòå÷ðøÝýó éÞûð æßõí êèóíþßûó íàÿóí ìâöëòç÷ìúåüñôßýò ìä÷îõàùñíä÷ññÞúôåßùðåÙýóâßöó îÛ ÿö èÛ úò è×õñáÞïî êßõððÜ úóëÙöòãÚ÷ô ÝØøô ÔÚùôÔÚõóØÙùôÙÙõóÜÞöòäÞùõ êÜøôíÕûôááüîìõÛöôï×öóåàûðïðãóôðÙø÷àáûòòñåøøýÙþû éÝøñòïäýòôùÝúú ñÞýõö òÚÿü èÞý÷÷íÔÿúú×Üóïñ ØÕüûÿÆÝõðòÚÞüûúäÜùøø è×ûúøàÞóðóíÚúúù íÛ÷óö îÙóðó éÛïîñ èáòôõñ×ùþûßÕôõøÙÔñøøÔÖóõù ÛÖôøúÛáíòõïÛðø÷çÚêìó êãîóöÛ÷ÿþùÝóýüöÛíøø ðÚìóöòÖïöúëÒîöù ß×ëôöãØî÷û äßëõöïáîöûõÝòÿ öÝÜçò ôßæð÷úßíöþüÞìõÿ öãèôÿýßîøõÛçòÿêÞâìûêáçòþìÚàçû ߨàîûÝÙßìøâÞßíöóÞêúýóââïøùãäôùüââöøßçöüûßæöýùÝâó÷óÜáò÷îÛå÷ùëÞæ÷úîÚêúý èÝåùùïÝèýýîÜäôø êÝèüú çÕåù÷ÜÌä÷öÑÏäôñÖÑèþ÷ØÓãøõÖÙÛðî×ÔäûöúÎÕäþöØÕìûÞÙåÿøãÖæùüÚÔäù÷ûÔÒäÿ÷üÑÛåûö äÔëûÞËæýöÿÕÔß÷ðáÕêöÚÏæûöüÍÒãöòÖÕéüõâÕéüõ æÓìü÷áÔåúõáÛæúóê×îø çÕêþôæÚåúòõÛîûóÙìùçÜèüõ ãÝêúößÞçþõåÜêþ÷åàåôöíåîÿýõáóþìÚòþýßÞëõù êÜòþÿíÜìúýòâë÷ùûàóýöäíõûøæðüþ÷éìóøùâìýú òãéó÷æîöûëïûÿãïüüõèåìôýâñÿþôÜðùþì×ðùý åäêòù÷äóûÿïßïùúÝÜê÷÷ÿÚÛéöúßÙì÷ûÛÜèòöèÜéóöïÝïýþíÜî÷üâßìóùãÖôýý ÖÕð÷û Õ×íöùÕÛíõùÚáèñöäÝðúûÛãîò÷ çÞõûý ãâì÷øñÙôùýéàëïöñãóúýðäñúüïàðöûíåï÷ùóåð÷øòãîõùíãð÷ùíáóûü íàðûüðåðöúûåõûüøÞöøûòàîöõöÛöùúêáðõ÷ïÜó÷úèÞîõôéÛõøùáãïôöóãöûú÷Þô÷øðâðöø óäõüýôßøÿþðáöøýøÙýþåÙøöø áØö÷÷ ÞÝíîòêÝ÷ööåÜöøõâßñöõåãñ÷öëáùûçÜõû÷ÝÜïõõßÝñøöãÑóý÷ûÓÛìòñ äÓ÷ýøÙÙòóõ åÔøúúÜßñðôíâøúúîáùûüîÚóíùáØêéôÝÜìëò äÚøøú âÛóõö åÞöùùìÞèìñêÒéúöÕßéøñ×ú$ å×àÝÙ×ÿÞßÑ$åÛÎ3äàÊ2éÕÇ/ýÖÒ½ ûÕÞÇýë×Ò"ÝÜÍüçÚÏúæØÓ úé×ÓøåÜØøåÝÚùãáÝþõ ìÝáþöåàÝðñíàçüöõ×é÷øâÜâïï ëÛéïïí×ïóò èÓðíð åÖóèïïÑ÷ëò ç×ïâëëÙùçð èØûêñ åÔúçíÞÜõÛèðÞèñðÚêðçÚýÞêëÙáëêÛþÜëìæßìß éóùâßíûäÞíþå àñýàÞï îîüÒç#èèø ää÷ÚÝóöàÙïßáõÝáõøÜÛóíÝ ÜïìÕÞñ áÙ Ùñå×àò áÔ ØíØÙ ÚìèÒÝòãÚ ÖîôÙâôð×àôì×ßñëÜÝóïØßö åÔ Þô ߨÚïèÙâùåÚ àöåÝ âöêß ßõñÙãúèÕ äù àÙßöéÞ çûðØ åþäãÙø#ûâå!ûæ à#ÿä æûèþßòùÞ*ì÷Ò($ ðñÃ-'íî½5( éôº9&âò¹8 äî·2#ßúÌ5õÚðÄ&íØòÒ ëÞîÐñØÿë äÛ÷ì ëÛùöèâõöüõÖüßÒûòÛÐþÿë ÜÔ é äÕéáÔãÿ×ÎÜôÈÔüÔþÙÑØõÖÓû ÒòÔÌüÓêÅÑù ËìÅÒüËíÈÊúÈñÆÐöÅÞÑÿÑâÖÿÖåÌÿ×ùÐÈö ÌøËÀõ ÍðÁÍñÉøÒÖýÖæØØ èÛú× æÚõ Ò âØñÐ âÔéÏåÔåýÎ ìÐçÐåÏæÒÜÒé×ÞÜëØ éâçÿÚèêäýÛ óëäâúäî ì ëâæçæçåè÷äêëùæèíóæî0ôî û*ôìüíáÿøëÛôÿåâøóßãü áæâùêàë  á×ê üÒ×äþþÖÚåÜ×ë ýÕÙå Üàã æáé  êàé çÛå ÛÑâîÆÝØüüÿÙÚà ØÚÞþÜÕãÖÚÚßÝÝã×ÜþÖÚÜÖÓÝþÑÛÖýäÝÛÿéÑßüÓÙÓúþÜÓàüÕ×ÜÿÞØÝáÜÞÿèÒå ×ÙÝûåâäïåæóæá ÷áá íÙá âèÛýøââ ïàà ðÚáèÚÙ æÛÞ âÞãèáÞ  ìÞÛ ì×ß áÙØþæÜÝüæÞáéÜßú éßßûôÛÞûï×âüèÛåýìÝâùîâÝõÿöÙäøåÏâòý ÝÖÝîú êÚå÷ÿíàÞñûòâáîüôàçöòßæôïÞæîüòÝåìý ïÜáê÷çæÞæôöäÞæõïÞãýý å×áþÞÝÙúøñÝÞÿðÛçêä×þõæÚüõäÝþôêÛýú"çäý þèâüüúæàùöóâãõõòÜé÷÷ëâåîó÷Þìóö÷ÕéíöéäâãëùÚö÷ùäÞíéðèÚóñõ åÜõîõïÕûóû èÜòåòíÜ÷êö åÖùèõÿÕáïáïì×ýðøÞÛõæó æÞõèò ëÝ÷ãò èÔùçôØØøâò Ý×þéõ ÞØþçóáÙûèòäØûåñ ÞÓþáó×ßöÛïîÜèøíáÿàô÷Ûéù éßüäóîÞå÷íÜãõêÚå÷ãÜÿáô çÞåôîÚàñ éåÜòÿäêùýäçùùßãùôçá÷!èêúçêûÿäæù÷ãäøðÙá÷ ÛÜõØí äßþâðèÝîô èÙéôæâúÞíøÚïù ëÜþâñ ìÛé÷ìÖëõ ãÕìô àÑéõÓ×ÿçòÝØéõ ãÝìõìÔöùÚØÿîõ á×òù äÛï÷ìÙë÷ èÞýìôòÚôûèÜñ÷æÛõù æÜÿïöíáýî÷÷Úõù ëÛùñô ìÝþòø ñãýööúÜÿúû îÝøóõ íßúò÷ñá÷ûðßû÷÷ìÜûô÷êÛùñõ ëßùôõôß÷óöòÝúööïàõôò÷âòôñùãòòñùßõõôñáôõòõÚ÷ûõ èÛóöòëÜùüöêÖøýößÚòõò êÝôùõñÜóøòîÜóøññÞõüôõáóûô÷ßôúöñàíõîöÙõÿ÷êÞîøñìÖôþô×Ûêôë áÝðûôìÝñþõìÞóö è×ôøÛÜè÷ï èÚïþó æßëüóï×õû áÞðüõïÚõùìÚñþöìÝðÿöèÚðýõ áÓðôÙÍìúñöÌÑæ÷ìõÏÑæûî÷ÐÍçúïûÏÎçõñþÔØêþõé×äóïåØñö÷èÜýøûïÜúÿïßöòÞ%ÿëãïýôáìÿöÞøøàðöæ óý÷è óöèöþýæõûüãûïööëøìóÿçþ÷øöäõóôñåòñòõÛõú÷êØîõñëâêóñ÷âïúôðáìøóíãéûññßïÿùîÚÜñíæÚÛð ìÚâûèÚÚúæàÒùíáÖ,ÿîÝÔ"ýçÝÃóæÝÍ÷æÖÌôüÙÕÊñþÙÕËôüÖÖÍòØÑÏ òýÑÕËîÛÔÎ ôÜÕÕ öÚÑÒö÷ÊÛËïÝÒÒ ÷ýÑÌÑóõÄÎÍîôÇÎÒòóÇÑÔóûÍ××õØØÛúàÓÜùÿØÒÙû÷üÑÒØøüÏØàúÚÒå þþÐÑàùþÑÖÞþøÚÝáÿûàØáþûý×ÜÛõôãÚâþùçáâýúóÚêþ ëÙâôöãØãôõáßäöúðÝîÿÿñÞîùüõÙìúü êÛçôø êßéñùîÚêøú îçãïóãðûþ÷ÞðùýïÛïôû îáêðøûÙòôýéÑìñöýÙÔçéóÞÓìïôáÚêéô îÝéîô ðÝèêð îßíêòóÙõôú ñÛðí÷ ôÜññ÷ òâóñøöÛîðø éßð÷úøÞúÿüÜþíáôøê×ûýÛÛñîþ âØòöýäãðïû÷á÷ôÿìç÷õÿô×ýú áÒøôÿ áÒú÷þåÛôìø ïãõñúóÚùöûÝÖîéõüÕÞïçïãÙöò÷ÛÕôïõàÙôîôóÝöð÷÷âôïôöáøðöçâ÷êõ êâüôúóßþõûöÛþóûîäùê÷ôäøý ïå÷ëõ ðèùéõûàÿïùíÜþîøíáùíóÿßóû÷áøùõåðûùçõäò÷âø÷÷îåúó÷òéüûüåÿýöçüÿûúêôùÿâüöøôÛúó÷ïàøóõößüûõáôøøæüòõûåö÷øÚýõõâÞöæíìÜÿïôèÚûðñ æÜúìñ êÙýðò éÔýò÷âÝúðóñÜõúëÚõøçáûïöôáÿó÷ïáþíõìÞûóõ ãÞöìñ çÖ÷ìóâÛ÷îõíÞþõúèÝóûáÝöêóåØ÷óõâØõîôæÒýôù Þâ÷ëõñÞÿõùäâôîõæÛùí÷ áÙúóøéÖöïøíÑöîöãÔ÷îø ÝÙûõ÷ âàúôùêÚûñøâÝóîõéÚõìöåÚùóø ìÛõóøëèñïöúçýø÷äøöþôàüû ëâöòûôØøöþëßõõýúÙýüîÜïçøëØïîøßÚïðõ à×õöú ÞÜóòø çÜò÷ùîàðòøùÞ÷úðÞñ÷ýìÚóúýéÙóôûî×òóúêÜôóûíÛòøû æ×ñøüÙÛêñöÜÞíóöÛãíõ÷åÖøÿýÎÖìí÷×ÒïøúÖÛíöøæáðúýíÝîøýäçèñöõâìúûðäìöùóäí÷øðãìøùíÛéõ÷àÛæñóâÝéô÷ êÐïüúÙØâæï äÜêòö æÚìùøâÞçóöåßæôøèáê÷ùñÚêøù çàçò÷îàïþþ îØêþüýÜÝåøø çØíü æÓíýû ßÚèúù ãáëþû éàëÿùãÛêýùÿÝÜèúöÜÖíþúüÑàêù÷æÕ÷ ØÐíúøÕÍïùýÍÓêöõÔÒîúôÙÓìõôÙÖîúõßÕòþù áÔñùßÔðû÷ØÙì÷ø åÓóý æÓòüü æÔñùû ãÕîúüßÒðýýÚÍõ ÖÑñüþÜØðöüâßòúþêÔ÷ùÛ×ÙåôÜÙàúâÛãîÐã âÙÔÿîÙÛ)ççÉïúåÌóùÞÍòðÙÁåëßÈçôæÏëçÒïçÔêÿ ûÛ×íúããÌâõüäÙñúåÚñù"âÞöúýäÛìôúáåõ÷ ðÛãòòåààîîóßäòð òãçóð ôåêôïñÙôûóûÞÛèïèäØíôë åÜñ÷ëòÞôúìößôöê ñÛôýëâàóòæþãßùûèüãßýýëïßüúê ñÙþþè èØøùèêÖüúæé×øç îÞÿøçüÚëøßüéÿæþêèüé þæÿç ýñþèæ îýÝþèñÝ÷ãøÙþçøÚ÷äüØüæ íÚúâ ï×úåè×ÿäæÖÿèãÔüäÞÝôá ïÛùææÙé ãØþèáÖþëîÔþîóÓ ððÒ þïçÕýëä×ûï âÔóëÝØþóëäßÿìôßð÷Úÿñ î×üîìÙÿúíóÛÿöíú×ýñíÙúôë íÞûõì ïÜþþîèàúóëòàþúïùÛúòð×ýøï äÖüõï àÕýûòåØû÷ñïÜûõï÷ØþûõîÕüúõéÝúõóðÝøéÞúöóäÚûúõÙáõðñçÛüþøáÙôòóß×öøö ÖÜòôó ÛÝôôößÖúûùÓÞíìðéßùüúïÞ÷÷üìàöóû çãòôúìÜöûüåÞïïöìÜïóøïÝðöûðØñøýä×ìñú ÞÜìöü ãÜíôû âÝõøÿ åãðõþöæõþùßÞôýãäÝù êëåÿ ôäãîâÙûôßàÿõàÚö ðáÕõèäØö éä×ñ æßÛôâäÙóéÜÜûÜÜØïÝæÙïêâáúèâÞ÷íàÞõëØäùÚÕßòýÐ×áôþÓàãôþ äÜîþÙâåõÿâÝîúÜ×êû×ÐìøýÐÓäðø ÚßçòûéÝïøÿäáêóüíÚðúÿ ãÚïûÿ èÝïöý æàí÷ýèéëòûùâõ îáïúþ ðçóúÿþäù!þàøýøäòüþ#ÿäöÿ"Ùüìáò÷úðÝ÷ÿûäÝòüüýßÝñùùãêìõ÷üäøüòÚôúùÞÑðõ÷ÒÔéïïÕØòõô ß×ïòô èÞôùøôØ÷þüÝáíðõßßïôôÞÛðñðÙÞìððÝßììîßáìïðçßñòõéàðõ÷öÐõùû áÑëíó äÛîïöòÕõúø ã×ìðóÞÝêïðßäíðó êÞðööåææêîñêëññõßîòõ éßèîò éÞëõõîÛïõ÷ðÞíòöôæñõûþäñõýüßìéúôÝéíöíÜïòøäßîôõéáëîõóéëéõæðñûàññû÷Úòòúñ×íïøõÖïðùóÚðíøêâóòû ðâïñøéçíïö ìÚóúüÿ×Þëì÷ ëåóøþ ßòûþðØêýý ãÖêÿýàÙåúüéÖíåÜè ó×ëþè×åöüà×êöûàØâïöãäàîóùãðùýôççóøóàíøüóÜíð÷ ñÎîöûÿÛËêñ÷üÕÒììôÙ×ïñ÷ßÞëòõ êÜñ÷ùñÕóøùæÌðóöÜÌñôôÔÒîñòÓÒóööüÌÖðôóûÑÔòóôøÐÑñóôúÐÔóöõàÕðñó êÖóóõáãîìñòãùøùíãó÷÷ðÝ÷ùû éâñï÷óÕ÷þúÞÖïóóãÓóó÷þÜØóøùûÛÜôùúßßó÷øåäîïóíßòóõìâîóõ÷ÚöùúêÛòò÷êÛöùùéÝõø÷ëÙùùý âÛõöøîÕøùüèÓöôøÿàØòö÷ãÔööúÙÑôó÷ÐßïíõâÚûýý ÙØñí÷×ÙðóöÝÜñô÷ çÜôúû èàôúû îàñûý òÛôøûñÚô÷û ð×õøúèÛðôöñäôûùýÝþÿþíáòõöôÛöýùîàòôõù×ýýüíÙö÷øóÑûýü åÔù÷ø çÞö÷øðßúüüïßøùøðãõõø#þÞúúü õÙûýüïÞ÷úùóÝùøûôÑøüú åÕôõùïÓüþÿíÓüýý éÔøüû æÔùüúÕÜîññÙàòõóâÕøúöÑÕñòñÑ×ñôñÔÞòóóéÛûýù æãõö÷öÒûüþßÔíïôæÑìûöþÙÛîû áÝñæâëðßí ðÔî ßÔàúá×ÛøüæÛãøóÙäù õÝåøÿÿØçøÿ õÖã÷ùîÝàðõ ûÜçòöôÞçôöòãèõñøèêòôýèíñõýæäåñÿçãèïãéïó ûàêøóáíññßðöõ þßêññóåèíï òîêíîýèñ÷ðòãìóíìæððïûåõùôûâò÷ðóçòóñùàúÿö ñÜ÷ûòëÜóøî íÝ÷ùðçßôöîáçóöîìàÿôâÙúÿòáæöõíöçùûð÷åüýóðâüýòìßøùïðÚùúðìÝöôî òßûúñèîøùîûëõûèøõîõêõñíöâùøîèâöñììâöõíùÙýôòÖýþõ áÖøùóÙØõôï ÞÜüúñ âÙþþòØÖüüòÕÛùûóäÜüô âÙýûö ÛàöóðêÙýþ÷ â×ùùô àÖ÷ùôçÏûøáÌúýøÖÖö÷óàÖûÿøÖâõôó äÞýùßâõõõâÛøÿúÝØöüøÖ×÷üùÚÚ÷÷ù ãÚ÷ùø æØöøõâÙñðóãâñ÷õõÛôüùæâìðòîÙôûû àÝíòô æ×õöøÜÓïòõúÓÒëïóþÓÔïóöÚ×ôøû áÔóøûÙÏó÷úöÈÓïóöüÎÓòôøþÏÝîíó áÕöúûØÚîðöäÑçëõØÖâòôßÚìýþåÛïýæØîüãÕñâÕêõßÚçñýàâí÷æßëóþêãæóüöÖ÷þçÕêîüêÞïõ÷ÞõüóÙöú îØðöþ íÙíóûê×ìðùÞáèí÷èÖóùþ×ßéïõíàïõûòÔôûÿ áÎëóùÚÒìñøáÎïöùàËñ÷úÚÕíóøåÍùüÿÿÐÒíòöþ×ÔêðõÛÓôùúÜÕñõú ãÙòõúêáïñùúâùüøÝóúþ ïÜòöüñØðõúîÝñóüõ×ôþÿèàîóùòìðóøûòîõúòëöøîðöúúñìòöÿåïùýòïèîôåöüÿÜòùü ñãëóùøãòøúõÜïõû èàçèôìÛíï÷åÞèëòóáí÷õýÜôùùùÛïñ÷÷ÚìòõôÜëñòóÜðöøøÝóõúüÚõüþ óáïïö øéïøøþÝñùú èéèíóûáõúüëâðõ÷ñßôöûøàóùûäñõüÿãòúûóáïöûîàïöúôèðò÷äóöüùéïðøþòò÷û*ïô÷ý( êïôú$ÜíöøçâèîõñåïùûþÝõýÿóÕòöúåÙêíô ìÜîö÷ îæëðöùèîö÷úáíóõîâçîðïåèîó÷àï÷÷ñâëòò÷ÜíôõñÓëóöÞ×äîðâØéòóãÔîõôÞÐìóôÕ×íîòÜÛíôòÞàèñïäæéôóò×õýý ÛÚèïñáÚíúöâØñù÷ äÓëóõ ßÛçîñ èÛìööæßíòó éÙòúøÙÕíø÷ûÍÛëöóÙßêøó æßíôöîÜí÷÷çÕôúøÙÒíóõàÖëñô éÚíø÷ èÝïûù æÚïüûÜÖêöùÕáèïóêàðúûëÝõÿâÞïúü æÝñÿþ æßïûýèÕõþ ÜÌóýýÔÉòúýùÏÉñ÷øðÄÔîôøÿËÒòýúÅÛìòó ÚÚóüúã×÷þ ÞÑôþýÖØóþüáÑùÿÿÙÇöüüûÏÆöûýúÑÅôÿûøÏËïöõüÖÐóûúÿÕÒöÿúÍÓòüøÌÜòö÷ãÕû Û×öýü ÜÕ÷þÞÑóúúþÛÔòûüâÖù çÕû ìÌüÞÙð÷ø éÞûÿãÛøüûØãïôõìÞöþüëÜöüüéàô÷ûìÞúÿ éÜøýý íÛõþý ïÝóöüñÙöûû éÖóø÷íÒóûùï×òù÷òâôøùýßøüüîèíóõúèúÿþùèñöúöìæðöüãðøþóáê÷ýõÝðøü èäìôùóäñùýùßïùûóÞîòøëàëîöìÝêòöèççïóùâñ÷úõãðóöõãëðöõèëóô Þôô÷íãèëïõçíïòüèõ÷øëóôö! ãôø÷üàïóòóäîñóýéðòñæò÷óäñ÷ôáòòóûçïïñ éóôõìò÷òåôöó÷æïñïúáóøô óãîïîøãòõôùÞ÷ù÷ ðÜôòòìßñóòðØöûôâÛóõó êãóöñöÜ÷þõçßíðë ïâøûõ öàüøòØùþ÷ùàÙóöóüâØôøóÞÔõ÷òÛÒöúóßÑøýõÜÖ÷úó äÜ÷øôêÙûþõ ÚÖóøðýÍÕòôï÷ÌÞñôïäØùÿöÜ×ñðïüÖÙðôñÜ×öùóýÞÖõ÷óýáÖóóñã×õ÷õìÒ÷úöå×ðòðêÞòøõ êÞôøöûÖÛïññðÍ×ëïìòËáîððåÕöû÷þÓÛíìîÛÚñöò ÞØóø÷âÔö÷ùÜÝðóôíÝó÷÷ðÖôüùâÛíîó äßï÷ö êÚóøøâÛñô÷âÛíôößàîô÷æÛóûû ÛÛíïõÝÚïóõæÛóöùìÝôöû éÙîôøÝÝêîóéÖöùü à×îñöäÙìðõ ãßîîöêØõöú áÚïñö åÜîïõçÜðò÷âØìôöÙÚëñõ äØïõö åÜðôùêÞòùýîÝòùüìÚðòúæÕïõüÙÒèëòØÚîñ÷ðÚùýÿëÕóøû ÛàèìôêßñùýìÜëò÷ äÝìôøéØòøü âÏîóùÔÞçêòïÛûê×òöû âÔïôýÜÞìôøíÝòùýéßòùû çÚïôùÞÕëñõÛÝèíó èâðóøóàòøù ïççìóâò÷ûýÝðóúñâêñöùðèéò$äóûýýãëñøúåíöûÿâõþÿèðóý( éôóþ$ßðñÿõäéîûùâõÿ óáôýÿõÝòõüòâðøûñÙñôù åÕìðöæÛïóøíÖ÷þÿߨïï÷ßÕòþù ÜÒòúù×Ðõ÷ùÒÔðôõÜÕòõ÷ÿÛ×ìõôþØÛðóôáÖòûõÝÛïóô éÛòøø íÙòù÷ëÛïúöõÚñùùÿðÞòùüëéñùûúêöüýäñûýøêíøüê÷õèø÷ æôý  áôþàõ÷ æóï')ßö÷2Üìç/úÝêâ.÷áæÞ*üÞìí(øÞîí#ôãìê ÿßóýø×ïþ ìÓòåÓðùæÓù÷åÒøîâÙöéêØû æ æØü á èÔùÝ éØøÜïÙþÝæÝùÙèÛúÚèãøØùäàùäüÛÝâñâ÷ØõâûÜðäúÛðçûÙôâøÙìàöüÙèÞöþÚ ãÚõüÙÜÝòûÚ æÛøâäÞòüÝ éÙõäãâóúãêäûèáäñøáâæïöâçÝôúçÚßðýèãßòìèÝôúíáÛíõêâÖóþðÞØó÷î äÕòõðÜÛòöî äÞòôï ãàñòï áåîôñéßôùõ âÞìòòâÝðóöÞÞïòõâåìñöîÛ÷úýÞÚðõ÷ÛÓðöúÔÔëîøÙÐðòùÌÖëïøÐÙëîùÕÑìðýüË×ççûÚØàâüØÜââ äÔêòÚÙæôâ×ßè&ÜÛ×à1æÚÎÜ6ßÛÇÖ>æ×ÉÔA âÚÃÕB áÜÆÔCàáÅÜ? èßÇã= èÛÇè7ãØÄä*ãÞÈê$ íÚÑó æÛÑñ èØÙù ãËßþÿÍËàý÷ýÍÉêôûËÍð îúÑÏòæøÐØóãàÓþèýÝÔú ßâÍ Ý×Îÿ ×ÑÌ ×úÌÌÒùÌÌ ÓÿÐÊ ÓØÌ ÓÛÏÏÚÒ ÐØÑËÙÕÌåÓÐ äÖ ÕêãÕâ ÞÿÓá áÌ÷ØÿÐÏúòÔØÓýØ éÒàíáÿßþÜ åìáû÷Ûóáÿ÷ßöÚ÷áîÔýöá áßùóâøÝí÷Øõé ìÚúñç ìÙýõé éÖ÷ñååØõèâìÞùòèòäøñè ïìôææöíùëëöæþôóíàôéëèå÷îðôÛúøõ éÚõíõêßöëó ðåõëöøäóéõúååáïÿæí÷ùüìëøüÿåìôäßýøíÞù& êÞú!ÛÞü íØÞõäÓá÷ÝÙâõêàáò ÷âáîóèáïÿôçâìü éçâñþ ðêãíýåçîàæìþûãåéÿýêêï"âò÷òåçéþøãìê ôÜîìÿòÚìêþîçêçÿçõóûëìê èñê äîæ"ýáóèÿîïä*ç÷ä"ä æóåâóç0ç !ýÛBå ìÚOäìÛ?ÑðÛDÜ $òÔBá äØ0Úêà,Ú öÝ)ÚîæÕùèáùâäèå×íæÜéã Ý èßÙþéâÛþóßáïÙæíÞúâ÷Õð áØõáýãØùì àÜíâûàãëèúéáìêýçâèëýíÝéìþâáàêûíÙéö íÒÜèú áÍèûÔÆíüøÉÓê÷ôßÈù ýð¾ÒìóñÄØêüïöÍ×éòýÕÓì ÷úÔÖãòýØÑãõúÓÑàòþ×ÑÞõÛÏáùßÏÛ÷רÙôàÔßüÿÕßÖþ÷æáÙûæÚÖúá×ÑùàØÒúâàÔûíØØ ýÝÜÏüâÏÕ úÓÑËøáÒÑýéÐÒþÝßËúïàÐ ëèÌýóáÉûüääÈù ôß× øäÚåÛúÜÓÿæÛÊúêÖÐû éÙÖ þûÐØÿíÙÕÿõàÙüåÕ þüêÑû øðÓüöèÙ èçÓú ðèÐøúæÚþýåÒ÷ýàÊùõßÏý ðàÎ ïäÈñÜÆ$àß¿îåºôêÀ" õàÁãÜ»ûùÚྠùäÙÆúúÛàÂ÷íÞÊ ø òÞÉöõÛÐù éâÏõ òâ×úôÚØöåÜÓ÷òéÞÞöîãâÿöùÙæøåÙßúò èÝçþõòÖíÿ÷ êÓé÷ñ çÖëüóîÕçðíç×ðôíäÞôõîêÞúñîìÞöòíÚúô äÜðñä×óî ÝÛñïéÙòòêÚîñðÜïðñÛííæÖ ôô ÖÈîíÿÇÖþàæ âÛîî ããåëóèîîþà ôóóÝèì éÙïïéÞïïóÖÿúïØ ööèÛòô áÜíïØâéë ãà ðñèÝ ðòãØ ðñÛÙèêáÜéì ëØ íïâÏëîÑÒêí ØÑèì ÚÕãèåÚ éñêâ ëñöã óõõçêï÷äèñò×ïïÞ×çï äÕéóëÕñ÷îÏòöäÙ ëôñÕðøâÔ ðóØÜåì ßâçð åä êò çáëï çâìñìÜ ìò åÜìîêÒéðÛÔâìâÖñôçÏøùåÓéñìÕóõ áßêñ áäíô ææïñíßôöäãêðçÙó÷Õáûëïááö÷çÚõ÷ ãÔóùÜØñ÷äÏúü ×ÌõøÒÖôø ßÎ÷úüÌÛõéïÚàùúäÝûý åÛ÷íõáÛúõñÝÝ÷ áØ ÷àÚþõ çÍ öþÐÝõïðÛýðÕãÙýôðåàúóìäøö íäúôô ìêû÷ö÷ãüû÷óáöôôñàöóööáø÷øøÝüûôÝ÷÷öïæóóöþçôóûÿÚàßôìá×Üôøãçë üäæîèÕÛóÖà)%æÖä4äÌØ1þàÌÒ.õãÈÐ'ñßËÝ"äãÇÎèÙË× ÜÜËÑåâÑÚ ðÙÛãßÝÓÜ ëÜØãê×ÙãåÓÜåæßÚãÿ&ÞçòøäÝäøøæÞç÷øæàëõúßâïõ÷àâìóûäèôõ"ÞðüûùÝðû÷ùÙîúõñ×ëûòäÕèõíáÛçõé ðÚêüì îÖëøçæÚåóå ìßëûêñÜòï èÓñîÙÕíþèÝÑïêüÕÓêýãúÐÛïäÞÓ÷ ëúÙÕíäüßÕñÿåþÜÐø éÜÔðèáâæüä ïàúúæßñ øèÝîøæØèûÞÏí÷ÍÌáýüíÅÑãòÉÔåÿúÒ×âüùØáãú÷ðÜìýâáæÿõéÛìöáÞåüð çØìóÛ×éÿíÙÒëîÕÖîìßÚðïæÜõð éáöòðÝû õâÝø ðÞÝôì ããõ ìóáû ðôáü í÷âôê÷ãöéöÞùé òêóæáòûÝÿ íòäùëÿéÿìâòõÛþ ëëÜûæõßÿ êýÙ îòßüêüßí öà ì öàì óæýêùÜïëÙüè éàÿêòàî îàé ìâúæóØíéÓë äÚêî× ëëÒêâÛûþå ö×î ìÍéÞÙøûåîÜûéóÙýé çÙùýæäàúþéõÚïëÚüÿëìÔþÿî åÓøÿìçØúúëäàöúëíßý õîÜûï ìæôøíûäüþòöÝöèÞüÿôìÚüþõ åÜõõñ èÞøûõëÒýúÙÎøûö×ÉôööúÓÙôòõ ìÝýûû ïÜø÷ùïÜðìòòáìïóøäôóùøÚùúÿ åàðîøòÐøõÿÔÒëçõÚÔïîù ãÎ÷òüÒÓðïüúÔ×ïðúÿ×ÙëìøÝÜìæøçÞíèùïÙîæþâÙâß÷èÞççûõÑôõ ÛÎíìþ ÕÒêéû ×ÒíñÓÐëìüöÊÏäå÷òÅØßÞôü׿âæúóåêîÿîàäèú ääÜÝõìæãåûðßåçûíÝàäùîÝßÞöèÙáçú äãßáú÷ßéê ååàâù âèâäü çääæüìáâãüèåàçýñæåçÿïÚçéáàÞßþïÝèîñÖçé äÛâáÿíáèçöÞèíéàâäìàæéèÜèê ááâãþëáéìïÜèïéÛáèèßåé ðÖëñâàæçôØî÷Þßäíèäëðñâìòæããéþëàêììéãæ!çîõ þæìñ ýÜóø íâãéôåêõûÜïø ìÞçíôÛíõðâìöõäð÷ ïåêñ ìêåðøâîú íáèòî×òú àÚíóåØñø Ùáèðçæíòñâòùìßëó èÜëñ æÛéðãÚíôâÜëó çÞðñ åÝëñáàæìþ éÙéñçÕìñéÙìðñÛîóíãëðöãìôößäî òàæóöáñú ôÜìû ìÜãñ ðÝìú õáêø øàèöóßçóóßãò òäæóùÝìôëßçôý ñÝêõÿïÙìöýæÝëõûêâï÷þðäïûü õÝìùøçÛåíðàÜâìíÿßÜäíêæÝêôòêåíóòùëóú÷áõýùõçïõòþäôûõ õÜñøòåÛìôì çÙîðì åÞéîí éäïñî èêëíêðáïòìâßíðèåÛñöíâÙòöíáßñôíí×øùóÝÙòõëßÜóúì éÕøþò åØõøí çàõûî ìâúñ æÝöúíýÙÜïìéýÙÕìóêøÔÖðùëÛ×þöÚÏþóõÊÔñøìÕÕýó ÚÌÿõÍÑôùï×ÑüôÕÏÿòÓË÷üîþÆÍ÷ùîÄÌûüïùÁÏùûïüÍÐûüïþÔØüÿñ àÐöÐÕ÷úðÙÕüóÜÚûþóÝÐúÿðþÒÕóöê ÞØüþð àÚüüðâà÷ùï çÒûÿðüÑÙïôë åØüô æáúüóøáùøÛÿöçâø÷òðßÿöïÞýøïßüüôîâüÿöóáÿüùóßÿø÷Ûû îÛúûôðÕÿÿøíÎÿ÷àÕöûóêÜúþôôÔû áØøùô ä×ùüó åÖúþõ æÚúÿõ îÙüø íØùþó êÜöùñî×üüôéÛõñðò×ûýöîÔúû÷èÍýüõ ÝÖóôîãÚúüöâØüû÷ ÚÖòõðÖÖóõòØÑøüöÿÓÒöùôÙÛ÷÷çÒúù ÛÓñóñáÕ÷ü÷ìÏúúäÒõþ÷äÙùùçÝùúéÛóÿùç×õÿúæÝïúöóÝúÿôÛùòÝóþúøßóýúþÕöýòÕîû÷ô×óþüöÙøýôãöÿýúçöÿýåöÿþ÷Þóÿúðçìóöþîòüû é÷çóöü!êîõú) åôþýãêðøýçñùûþäôþýöäîúúõãîøù÷ßîùþ õäíóø øéðøúûãõþü óàîö÷ñàíôöößíô÷ôÝîöøòßòøøòâìö÷÷Ûñúø íÞéóò òßïôø òÜïõõçÞëïóèàçïðïæèìòþßòø÷øÚìòõ íßæåï÷ßíóöùÞëöøôÜëôõìæçêñùÝï÷ùìâæñô õàìñ÷ óÝëòöéîâéðãóýýòÛëïö ãÖëïó ÜØëòôèÒðõù äÛéíôðàíí÷ìßèêòãááæï êÞêô÷äàîúù èÖìô÷ÜÝåéóêÚëõ÷ ãÚë÷ø åÓìôøÚØéíö áÑìõùÛ×èðõ âßçòö éÙîöøØÚæêñáÓíóøÝÚäíòäÙêôøÛÕéî÷ÙÝéðø éÕíöùØÖåëóÝÖêîöÜÜìñ÷ å×ï÷úÝÝèìóèàìíøèÛìîößßèèðìÙîï÷ åÛîòø êÜîóû êÝïóùðÛíïøïÚëïø çâêí÷ëáíðøþçáæêñêÞæìô çßéïôðßíñø íáêóòíÜíò÷ èáæëóñÛð÷û æÙïôú ìÚéíøñ×éôûçáðúìçîø íáêôáæèñóêò÷#ãð÷õâéòðßãîûêÙçïü äÕêïþàÞèìþìÝðù ååèìùêãåðö çæêðø îçðôûõììïúþâöþìÜòôýéàìïúòáíóûúÙóþÿ éØï÷ù êÓõúþ ãÖõ÷ü âÞñóö ãÚñôøÕäçéïæàôýø ßÝðô÷ßÜïóö åßôüùóÚüþñÙõùúïÖóöø éÐöûÜ×õúøâ×÷ûúÝåðóôõçúúùäøúøìäéïïçãïø éáðù ëâòýôãõÿüþßøÿÚòûûôÞóûûöÞûþîÝõúæáîøõ æåìòð çäîùò éåòúõíéíöòöÞûúçÝôôôëÓøþù ãÐúü÷ ÞÒùý÷ÝÜøûõåßúýöáâöûó íÜþøçäóöîòàýþùêäøúóóßþëÖþý àÚÿíÓߨùüúèßÿþ ôÖÿäÕüü÷äÚ÷÷òåÞúúõ æÜûúó ãâøøññÝþùìØÿûø åÙøùó æÏøÙÚúôôïßüöàöÜ îÙ÷öüãÝõööêÞþýûêàüðâýþüùÝþûóÞûú÷òÙýæß÷øøíèúúûÿÝþ ëÙõöõ çÞôûöèÚøÿúÜÜõùõààöûö ëÜøüú è×óö÷ åÝö÷õìÙûúáÙôöôàÝôúõàÕúÿ÷ÿÐÚïòïÙÚóöïÝáçëè ïÝí÷îíßìðìîÜòüó éÕìôðÜàëëëóÙùþøéÖñúôâÙêíîèÖìðïãÑìñðßÒîòîß×êìì ÞÕðòðØÚíðíäÖôúóâÍôûöûÔÎíôîýÙÐìôïߨîðï ìÑóøõÝÏîòðÿÔÍñõò×ÄôùõúÊÇëòîýÌÌíñðüËÏêñîþËÎñøôÐÍïõòýÏÑìïðØÉñøöþÑÕéîðêØîöô ñÓðü÷ æÍìðò ßÅëðñþÏÑåëïÛÔîóôØÜíóòâÕïöôùÙåæïð ñáóýûìÚðøùãÚëíô æÙðô÷ßÝíóöãÕôûûàÏðõúÞÖí÷ùêÞêñøèåèúúîãíüþ æåçùëàéùèáå êÞåâáÚ êäÖÿ$óãÐó-ùßÍî.øÜÏï2ö×Ïð1çÜÐð+éÝÐí%áðÊçúêáüóæÙíðÞåô ëãéó ñÝôúåÛððùÿÝÚûùõßÙúöðé×üñäÛúëåÛõæåÝÿ÷ãëÖæÝÕùüÜ ßÎþÞþÔÎúóÕûÐÑøóÔÖÌüÚûËÑúùÕØÎÿúÙ à×øòÖ ü×ÿýÞöÔýùÜ àØóëÔ ÝÙøî×ßÙõõØãØñêÖæâíäÓýæõéÜ äûëßûæúçàþâúóéõÛêèä æäëÜâôéðíë÷äúòï êâ÷Ùìéëèâíùèñòóüâôßí÷åéëîàíñøð äð,î û ýíýö%ßóñ*ì%ü÷!ó õ3ê9õúé,Cù÷à)#ø ò×äýè ìàîäùôëüÞüûå&÷âæ íÎùñßàÔüéßüÕØÙìÚçÝùéâñÎúìíÛØæçãðóåâç ýÜãêç#úËôæì÷Õ½ÒÒãëÊÿÔâåÏÞèïßÞ×Ûèàçèî+ÇóñøÚÈãëñÎÜíõøïú@$à ÷áð "Ãýááø ôÐâõ;Ú(íÚæéø÷÷ý" é2%ô $ Ý0$4ÿû5éüùÚðÓø*óïàô$øÏç÷ òìÑç&èò(óöU&ãñýïÞÔìöíßîé ëâÓÞAÛÙçôÍíî õàÓãè9ùêîo#œÝÚ ½íÕÝþÏÞÄÑçÿóÚçÙ×ý2ôÚæá ÷øí üîÝêW­ÃÐþ÷ÎÄÒøüÿ¿íõÝÎà×ÙBÔÐè æÐÀ×úöåïçåÍÒÞ:ëåÎçÍÛ½ÚÛ ÓØÒè êÌÚíÛÕçÝõNÿÖåÿ8×àçàÖÎÙñÃÐÙéþ'ÙûØìý üÆ÷ýÌÞÊåúÔÍàçÿ Ôì D½èÿ ¯ÁßæêçÓäååÕéóé×éÿ¼æñ,ñÈãôÓ×îôëõÓÛìüÞùÍÙø5ÖëÁ«îÊßöüýÚäã îíØá íïÏÚæ ,êÿÒÚ Çèìâ½ÎÙлǸ¼óàçËÐüãÛÞÛæÿ1ñ»ÏÙüÓÒÑÐøùèæòÿñ«ÜàùöįËÑ쟪òÝäï*ø²çç÷ßÄ÷×Üëð»ããðÓ²·áçìò½ÌãçíýËëääîûä¯üúüÆÔïòòð×ÜñóñúèÈþýîÐéùû÷ìÇõòó ÓÇðíïÖÓöÙÛýöðعþôùÓðù#óÃüñòñÌäôôÒáêèÔ ùýÖàòÿàÑôÛâõø íÙýãÛõðäÞèì"Üæâã(üáÙâß.åâêë6ñÄåì1öÎèáå#éÜãé!âÌæçæ¾ÌãäýÌÌðóøØÛÿùÒÃõúåî¼ÀøöÜõ¾Ïúý×õÃÎÒóÅËÐÑÐÕØÒ ÊÛÊ Ç ÓÑ ÆÿÛÒÈÕÉÅÐÄÂÉÕ àÈÂÒä¿îÑ$Å ÛË,ÄÊÌ#»ÕÖ'ÂßÉ'Ã×Ç,à ÐÝ"ÂãÒ*ÈÖØ%ÇÏÓ ÐÎ#ÆÎÕ#ÊÛÖ"ÊãâÍ!íÜ!ÑçØ#Ñà×ÎßáÏãØÔÜÜ×#çÚÖãßÕäæÚèäßèèßðêß!øèà"ôæâñë Þ+í äüî å ÿì å*ì é+èéûãé øåíôë ð'üì ó+îÿ ô+ìÿô#ÿéøñõçöñðäöòñßøõðïïöñ& ìñúòçùúüæôööþð1í- ìþ!íôõþ èóùÿ÷êíõüþéïõÿÿìð÷# ôîö&îòúåíøúÛçðéÚäòÿìäÛéû÷åáòÿûòÝçü& æáë#þãÜçüøêØæþéÜð þëÙê!èÚèüçÔâÿçÜéåÖàÞÖæòÛÐáëèÖåôÚäì éÞßã æßàÙäßãäâáåæ òÝçè òãæéþåâè ÚìïêÙàç îÏÞì èÒÛç ûØáí ôÚÚåçáÔäÝãÔæþÑçÍÞý êàÒá ïëÒåïÙèäÙì óÖÖèìÓÔçàáÒá î×Úï åÑ×êüæÔÒãøìÛÓçïÝÓåõëÑåóçÐáòåÓäúçáé ûãçîîÝâç åâÛßÿÛäíóÚàé òÚÛäóÚÝå õÖßë ÿñåÖá üäâï üàÝì ö×Ýé êåØäô×ÜïêÚÚèêÜÚì ôÊàïéÊÙæþáÕàìãÛÚæþèÜàñëç×âûöÚÞï åÔäñØÚàöüâÙäòìÑèù ë¸éøòÊÈÜëþüÕÍäöýÛ×è÷çÛåñÿæñåöáäôæ×èýÍËñøÇßõÜÝï ý ÜÒçöõÎÔðüðÔÎêôòÕÒçóÜÍçÿðÚãèóïæëôöæåùòóÛëþõ ëêãõïïÕí÷ûØÊæøññÎËåûðùÓØâóíãÍåöðúÔÖÞëéßÕêõñûÖÙäðì çãéõòæßÔìëéâäÿû éÜà ïÞÜ ëäÍ õÙÖ íàÈêÙÎ% äÜÐ$çÏËÝ寸áÒòÜÒåÞÍþ äÜÓþ ßÌÔûøÑÖÙüþöÕßÑëõéÖÞöú àÓÞùøÛÞäõöéØëø÷æãí÷õêÞðìòèÏìèïÞÝííï âØûõù ãÏúö ÙÌþôò÷ÅèðäæäÔøò×ÃóïËÄðìÊÐèéÊÓñê÷¹Öæçô·éêäüÖØéçùÙÒîä ÞÓñë ÔÒ ééÒ× ëèÓØ íè âçðêùÚ÷êåÔ áá ÖØäß ØêöèãÛìè áå êäñÑíèàÙæäêÌñìÝÜòéåÓçé åÓëèèØçâ ìÙíêìëíæöÕîéßì âßûÞñìöôßÞÝòéèÖôæê×ùìòÍ!õ çíõíþÜûñïÝ÷êäåñç"÷êöêöÙñèñáðé òëöèúÕóìôå ëèÜñþÞøìøçóí"Úþôûä îë!çöò"ñõî"áôïùæíìüß óòóéñðúå õòåêí ×ùé× øöðÚÿþîÞ ùù ìç þû÷àðõ ëáúîî÷Ù ýüíßð÷ýàüüýãö÷õÐýÿØ×õøèÐýúèÒøûèÒ÷ùßßÿýùãÒþþú ÚÛöñøíèùãøøýòÖúùüÜØðîôÜÝþüûëÒýþíÜúûþïàøúý÷Ûþýéàý÷ýðÙôøú ãßîïô"øáø÷þ ðÖ÷ùü çÒõøü æÜñúûêßò÷ýîáôþÿêÞðúüñÛíúùóÞæñóþãëûøÛèñöñããïóîáìõ÷íèêõøøãêüûòÙéüüà×ãñøâÑêþûÿÝÔêýüíéëûþúàêòÔèþþèÕæþþ×ëãüúùìãýýúöØööçåêÖàýâÕåþâÑåá×çìÚãÿ íæáûûÚå ãÓÞüúÓæÜþøæàäþÚÚâúØ×ÛûûÎÖÜúúýÔÏÞýûùÊÕØööÖ×ÞüÞÓàüý ÚàÝúû åÙäÿÙÞÝþþÜâÞûþêÞæÜÝÛúúÝÒÚóúúÒÛÖò÷ äØàÿþàáÝùüñÙãþäÜßþü åÝ×óûâÓÉéõÿÍÞÑóÜÜØö àÕ×ôÿÓ×Èã âáÕè ðØÑåäÙÐìéáÌä ðÑÎåýߨÒï áßÑå æÙ×îÿߨÖêÿáÕÎèýáÔÖìÛÓ×îÿÛÚØò äÞ×ìþíàÝïþóÔÚðùáÒ×ïôßÓÜïößÑÞðöâÚáõùáÝÝïõãâàôôîÝãô÷ êáÛêðïâàôò íâãõõ êÞâøñ ëÔèþ÷äÑçýôÝØä÷ñßãçûïæßëðþÛåáòæéÔïðÚÝëúëìãîýì óìéúêâôð òßíìè×ñí æÕïûéåàìüç óÞðêæéë÷åüäòêÿàôëúÞóþèøãôüêöéóêýçùîúæúíùßõë íæõÿéúæõöã óóßþñôæÿñüäÿóóàþïóáþðùáýïøßûî îëùþê!åöÿáööèýðèõÚ ÷ êæúýðúÚôï×ôìÒüüïëãþò ÿÝ öëæûüíñÖ÷ñê äÛüñìôÚùòðâðôõçôøöÞûû æÛüóôêÎööÛ×ùîïíØôõðàùøôàýìôñäöìðñÙøìñì×öíîöæüñïÙø÷ îÞõñíóÕÿøöçÝðéì÷Òøûõ è×ñïí êÞõôôðãôîñúãüú÷õäöóõøÝùûù éÚõñõãÖ÷öö ãßøøùïÜüýý ëÜööø éÚöõùçÚ÷öø ëáúûü ðÚõöùèàððó î×ùúûÚßíìóÞÚõùø ß×ùö÷ÝÖùôùÝÔö÷÷ÚØððóæßöñ÷ìçññöþâöôûúæñòöúÞôóøëÙïñõèÛìêòîÚóø÷âÞëêóåÞôùú êÝøûüëØúúü äÛçëòáÚçõñßÙôÿÚÕóØÑôüÌÕí÷þÐÑïûÍÑéõýÎ×îõý àÍñýÑËêñøÏÑéôøÖÒóùþØÓïõüØØèíö ÞÕîóúÙÕîðùÿÑßèîôÜÙðûþÛÔóùÿÙÐïõýþÔÛìôú çÝõû íÞñõü ë×ôöýãÜíòø éÙôùýàßîóø æØðôû âáéëöößöùòàôôý òÞïóýóãïòúúÙ÷÷ìØöúëÕö÷ âÖñ÷þãÛú÷çÖúûÜÒóõþ×ÜðôýçÚûþâØöüÿÜÓôõþØÔñïúÝÕòñùÛÑôôüÑÐððøÎÔððøÔÑô÷úÿÐÒìîöØ×ïïõ ãÔúùÿÙÔðõùÚÕîí÷ÚÙëíö äÓòõùÝÙïñù æÛõúý æàòòûëÚõõüåÙïîøçßïôøòÔõõüáâççõ÷äñïûüèðöûåîïú÷æîïùøãîòú÷ßïïûñßîñûëäòôûñèõõøâùüòàñôü÷Þïñüöâïðûúèñðúûíðíøéóõýäóôý#äòñÿ&Üööÿíãëç÷÷ØîëûàäáâðúÝðõü ïääëóàíñûõäçñõôÜíöûåâææõöáïòý÷ÛêîøêÖèìõâÕççö ß×êìö áØèëöáÖìòùØÕêíõÚãéëôùáèøü îâçøÿìáêùÿ ðáìýõßåôóÛïýòÛêïôßçñûãêíßëðúÜêóïÞíô êáòø îãíôþ÷ãëùûùÝïúýñÝîûúöÙôýúóÜòûø óßïõó ÷æîõóÿÝóúõ òÓñúòÜÔìñëÞÕóðßÛñ÷ï çÛòüñéØð÷îãÑïôêýÔÓîòèßÑûóãÜôøïòæ÷ýóüçõüðýØûõ ßÒóöìÐÑñõíÓÒ÷÷ñØÖöúóÚÝö÷ïâàò÷î æãñøìëØóøíÞÜëïè ìÝøüñîàõûñøÞôõð ïäóöñôßõýó æÚóøò ÝÛðöðÚØ÷úóÒÚóøòÖÞôùô äÛñúòåèêïìõãôü÷íÛ÷ýõá×ðøñÞÚïöò êØõúöêÛøýù åßôùøçàøüúéäòùøíÛøû Ø×õüøÐØëìòÿÕèïìô÷äüýÿòÛüöÿ äÕøõÝ×÷ößÏòòþÓÔððùÛÔñûáÏôõþÛÖóñþãÐöøÑÕóðùÔäðóûîàøñâñ÷û÷âñôùöÛòúþêÕóúû ã×ìðø èÒòøüÚÕôüùàÒóüüÙ×õùûãÝùûþéÞ÷þüëáðùùõåòúùùâóûùòäëôõøæì÷õåöþýþæïùùýßïüùîäé÷òôàïú÷ñÞìõõìáí÷õ îçéòòôäïùø ðãíø÷ íàí÷÷èßì÷ôëåéñóùÝï÷öíáåðóñãîýü÷ÜòýüèÙòüú áØëóôáãêóòöÝïö÷ êÝêðõ éÜíöù ëâîúùñàòÿü ïÕðúúÙÍîø÷÷ÌÓíùôÚÕôúúåÎ÷þý ÝÐðùùÞ×íöøáÜëïô ìäñùùýâ÷ýþùØ÷þü é×ìðòíÎõúú àÐñ÷÷ßÓñùøßÚïñôèÔøþø áÑñôôæÐòöõêØðïõôÚõù÷ðàîòôöêíöóçï÷òüæìôïúãìñò òééòð ðçíûöèìëø÷ñàôüßßîõôàåîùóóåñùõüÛôøõêÝéðëçÜï÷ñæÙïöðåÝïùóåÕóùûÔÖîúøúÑÞïû÷ÜÐú üË×ðúøÞàôýú éäñöûðÛößÛì÷ùàÓóÿÜÓòý ßßôÿþñäøÿ÷Ýøèâóøüíåõþÿñæ÷ôáõîßñÿýëãóÿýïäõøýòìñöøäøüüóèíô÷÷Û÷üûâÝïöø äêñýüÞý éÜöýéÔõú ÝÕôüýåÔöùþçÛñõúíßíõ÷ðäðøù óåïøûöÜóøÿéÓãïöÛ×åôúáÞîøíÝò éÛñ äÝïøíáìôúàêõùãíóÿàçéü óéáê÷äì÷þõÞèñû íåçé÷ôäìñùíâëï÷ æáîñùéàòôùçßíñöæßéêò éÓïñõÖßæêïîßøùøöàôôööäíóôüáó÷÷õ×õú÷á×ðòó ßÕõ÷ö Ý×òõò áßóôòîÝôøô íÛóùôîÒðøòãÐóóïÞÝññïôÜú÷óï×óóîãÚñôïãÐüöóÏÍõóñËÕ÷õñ Ý×üÿøçÚùøôïâ÷öôöÖþùßÖóõñ ì×ööóóàøöòýãúûõêññï% ãüøùÝúúõíÙûúõëÕýÿ÷åÞöúôöàöòôùàðíðõÜòòòôÚûþöô×ÿöñÔ÷ûð èàíìêóÜùüò êÛíïêäÖðóìÙÔíïëÑÑôõîÓÔññíÝÙîïééÔîïìâØìíëè×óùðêÑóöòþÝÙíïí êÓõûôÝÓôõò×ÑôôóÕÖóñò àÔúúøáÒòòò ÝÝåáèðÞöûö ðßø÷øòÙüûýëÚòó÷òÔüÿîØññõñÛóô÷îÞòóùéÙ÷öúØÚóôõàÔ÷úú ߨóñ÷ìÓúýüáÚïóôíÞóõö ñÝóõ÷ îÖôøøâÒíñóÙÝêïïíÙöþûéÜñöùíÚôûûåÝñô÷éÚó÷üçßïö÷óáñúøùàòøûõáîõ÷õäîôøüÝóõûõÙíõ÷ ìÚïôøçáëóøòÛð÷û åãåëïìÝðõ÷áâéìóðâð÷ùòëìòõ!æôýþýâíòùöÝîôøíâïôúùâéôû óãÝèôðæçö ñÙï ÛÛáí ãØæ÷ßàæò èãßêðàæï îÖæôÞÒàéþÿÜÛÜçüîÚéõçáåëÿ ëâäìü èßåîúÝÞçóü ÞÔçòûÐÝãêõ âØëòúÞÝçì÷ èÝïóüïÞðõÿñàïõþòÔóúÿþ×ÔéîöÛÜíóø áÛúþ×ÖôúýÒÕò÷üÑÕïöù ÖÔóõø ÚÕòóù Þ×÷ùù ãÛõôõ åßôöõï×ôýùâÞîôôóÖüÿýÙ×íöð×Õð÷ñÓÔñöòÔÝòúô åÙÿûÛÛõøôÜÔøõÕßöôîïØý÷ æÞòôððØûôáÝòñìçâóüð îÜúÿóßÛôöð Ü×÷úò Ü×ûûóàÛøýó çÖüúõã×ïñîäÙíôí éÛøýòïÚúöêßôñòÞøþôõÛùüõïâôÿó÷åüúùãõ÷ööåñøôøéõüõûåøúûíôü÷$ çÿ ýåîùø ôäíøùøèöûßó ôààþ óãÛöõãÝú(÷ßÑô* ëßÏó, íáÎó/ ñßËõ+ íáÉð(òæÎü$èÎû"åÐúìÎéÚ éÚ æàÜâüðÛåöãÔéðÛÚê è èÔñåßÞëÞêßõß îØüáæ×õ ØåÒýÛÚÊþ Ö÷ÈÇùÑòÅÉõËòÇÊøÌôÇÎøùÇøËÕúÿÇÿÒÒþÍ÷ÉØùøÊÿ×ÏÓüÑÆÒòÆÏý÷Î÷ÎÕýÐüÐ×ÔÕÕúÖÕÐüÕÔË÷×ÿÎÐñÖÔÛõÙ ãÞ ùß åÙöáÚÙôâ ÝÖûæÜÑöç×Èðå÷ÇÏýéÞÖÐïâ×ÖêâààéçíÙ óðêÚêìíÔññäÙçëêÜêñèèæðùëÿêñùâùøéÝÿóòã×üù ÜÛÿðóæÕõø ÜØüìð ÝÙûïóÚàöèïéç÷ëóùâûíçûíùíêúìøìêùéøðè÷è÷ðÝýïûãÜóß÷éÜøèüìâ÷æüúÜùíïäõâþûßúîòßóåþ÷äõäÿäøçýä÷êùîòá#çúèþÞôä÷ÜñæõßðàõÝñàóáóäýáôè ûÚðäëãëÝüßöóüàóç ýäïá úãðã ðãíá îãíè ÷Úðå ì×èáëàíæ÷áôïöáôç ñêðå ÞóïîÕìã à×íæ âÜñò çâòî ñäää öäìêýÛóö ëäêéùÚîòëÐîïâÌèç ÙÐåë äÙéë ôßéì òâíïìßìõ ÝáäíÞäæïëáæë ðÛéñèåÝãûûßëõõÕçîåÐäíþåØèëþ÷×ðù òàèñÿÜïúùàéõ÷ééôáò øççðþíãîÿáìøðÝæõþîÖåïûìÔéöéÏç÷çÔèøýõÖêûÿñÜêùÿíÞìÿãáèûý íåæ÷ûúíå÷ûöì äîîáàõõ îÝä÷ù ìååû÷ûÔêýèÐêþüóÐñÿõÕçöö åÞñø æäòûóíòöôÿåþûçó÷ûòéúÿ÷ óâù÷ëÝõö íÞõóéÝù÷åÚðóìêÒõò ãÑîüðäáîýîýÞ÷÷ ëéíùììçíúí ãçëüíåéæùëìäïòëàïþòëßé÷ïóßïÿñóÛñöëäíþð÷æíò ôêäûì öîæýìãëò êéãôéðèãüìñßëðéßâøìïÚéôèÞêóíÑíóÝÐæøî×ÔèïÔÚìþðÞÝëôÜÞèÿîÚÙçðÑÓìòûÌÙåúëÛ×êðÚÕêñúÔÐîóöÒÏçþíÝÏëñ áÑßî åØç õ çÜçõ åÚêùàãîüèäíý ðØè ùÞ×âòÜàå ôîØðþíÓòûãÏçÿò àÒæûïâÕðöàÒìõ ÞÓêþòÚÔìþñÔÏéýîõÄÓç÷ìúÏÔíþíøÐÒéýëûÒÏêúíúÉÊêìüÇËíõìÿÎÎíüîÑÖñýñÞÏóòÓÖæðéâÐñõïÓÓìñìÒØíóïÛÚôýñÿÞÒðûðôÒÒîóîõÎÈÿøùÇÉùôòÿÏÈüüö ÕÌùïò ÛÑýïó ÕÙôêï ÜÓûøØÖðîîâÖôìò éÔùú÷ âÚöìòí×ýö÷ ð×÷óô÷Ý÷õôþÙ÷øöñáôìíóã÷íðôâ÷òñôáóîïïâðèèöÛöóðåßðéêëÜôìì ê×ððëäÙôðì êÚóñííâðîé÷åòïë÷àñííòãðïîóàðëí íáòõîíàðìïéäñðï ðâõùó ïàõûò óàòõð÷ßðøîùçòõñ( ÚóòñìÞäøéîØõóãÖòï á×úð áÐ(ôÑÕþïÚ×ùêÜÜüï í×ÿó æÚõí çÝöðäÛöðâÛõïäÚôî ÞÜñþðåÙøÿóæÒùüôÝßðòîíÜúÿ÷ åÚõöóÞÙïòïãÜòñòôÖüýëßóï÷ììöôúùæûüîà÷öü äßôñúíÝøóÿ÷Ýöîôåôíþûãùó÷×øíÿààéãõïÝöëþëÜ÷íþçÝòçûëåóåþ÷äúêóæøìóèùìöéøëúîñäÿ ïõå"÷ñç.íùð& èóç!æ÷èìòä!éòéûñðäïûí ýéõîöêñçöåòãëåðçïÙôéßÛîä àÚòê àÛùë ÝÜóáâÜðæ äàñã éçíåþöåóêõéöìùêúëóç÷îñÞïæçÙêäþ áÙìåüâÔöìÚÓöì ÛÎ÷ëÕÖòê àÖøðÝâïìòå÷íõØ÷êàÙæÞý íÔóï êÚùöï×óôÞÓéæýÔÐñìþÕÑõð åÓõëÖúñäÝ÷ð çÙöïÜÓðìû×ÕíìþçÒóïèÙïíðÕöð åÝïïýñÕñïþþÞÒëåöýÚÙéçö èÛïñúëÙóóü åÜíîöéÜõöýîÛòóú ðàðïûôÜðöûëÔ÷øýÞÒóòüßßòõûôÛúýþîßòôûîÙôùû âÖó÷û ßÐ÷ûýÔÕòùû äÐùýáÖïõöèÕòþùþÜÙìôóæÓñýöÚÖêöðÛÓñþöÛ×êõï éÑïûó åÔòûóëÖïúôæÝßøìè×ê øÞßåõ ïÝç ûíæã øþäëáè þøãæúúáêûöåå÷øåéõóáãþòéÝåóÿåÙèôçÝãúï òÏï øüÚÓáûìß×çýîãèêðøåòôôäëúïùÝðÿðòÚîüïóÒñÿðêÕðñíÖïÿðìÚî÷îêàñøíõÙøòêÕï÷ë ëÝîùëöêóîüéóþñûõñûðæôýô éÞê÷íßÕòþñØÎú÷×Õûø íÖ üòÚùþö ëâïúðíëöþñðæôûì çëïõéõçôøîöèñôìûìôùòÿæøôòßñöìéÞóûîìÔúþö äÓøøôéÒøüò çßñòîöå÷üóôåõúó ëèòþòðëõúô ïêñ÷î ëêëñé òìñõîýáöýòöáôøò÷áôûô÷ÚñöñíÐéôíÝÝîòððÙ÷þùáÕõùÔ×èøó×ãæ÷òñâëüö ïÜéûõëÞäíîîÞæîï çååïîñãèõðñèçîï âð÷÷ÿáñ÷ø#ßùýü!ûÝõöúöÞïõóóÞñêõïÓõ÷ù×Ùìðò ßÚö÷÷ ÞÝöøöãÜóø÷ àáóõõåÙ÷ùúÜÒõõøÒØòïõÛÓúýûÿÓÕñóóÖÚõö÷ ÞÖøüûØ×ôóù ÛÓ÷ôùÑÒòð÷øÍÐððöðÄÝðîóÞáøùüñÙú÷üçÝðìõð×éÞòå×îæö çÙñãîØôãìÛò× ñÖûã æããÈûÝìÓ íßåÏ óÛèÖ î׿Ô éâæÐ!þÞïà øÝíÜõÝã× íâåÚÿöÝêãîÚæâÿèÕèçþ äÓïê áÐìëüÝÓêëü áÕëìú áÏîòýÓÐèìõÔÓéñ÷ÛÑêòøØÏéôôÕÞéîñîÛôÿøëÙðöö æ×îûõ èÕòúô åÔóùòÜÖñýó ßÓûùßÔñýóæÒ÷þòãØûâØøñÓÜôÝÕ ÷ ÚÒ õÝÏÿøí Û×òßãõëÞ ÷å×ðÛÖ÷úè×ÏîÏÏþðÓÙûìåâó êãøïäßÿòÝßûíá×þðÚÑþ ð×Ïý ïÚÙý ï äÚûðãáòè îÝù ìäÝó ëçâ÷ ðõÝþöîÝ÷ ò ðåñìà÷ðöÙõ ñêØö ôìÜþ öóßúö÷ßúõößô ô óæíìùàô ñèàìíìàññ ðÞð ó òéêïæöúýåíóúàïô êÝïô åÔó÷þ×ÝéïñÕñöçÜæûññæï úúÛú çÚìöç×êôÿÝàçþó éÞì÷ æáëõðÝðý èÜìüöààéùó èÞïùíäëüøûÜíù ïÜæ÷ô ëÛëýø çáìú÷ñßíüûúäëøùÿæìöùÿæìøùÿÚïýü ìÜìøùïàê÷úðàìùù ïàéóõ ëÜëùôããæöõñÝëõùåßÛæïïÕãðõßÜâìñ ïÚïþúêÕïù÷áÞâêñ ìáéó÷ìãéôøóâèðöñÝèôø éßèò÷çáçôøêäçî÷òæëôüõÙïøýâÐéòûØÙæêõ êÚïóÿàÝîòüúØãçìöãßíôüàÝéîûÝáêïü âÝðóþ âÛïöýãâêìùìÛòõßáéèú çÕõùÖÌòòýÒËíðúÖÐììùØÛéçøæèèéùùæôñ ïáññ ëÖôð æÔðî ìØîîþñÛïðòØñóÞÓìêûôÉÝåèõÖÓôôÿûÊÒíêüþÑÔïïÿÿÚÖñðáÖñô åÛððýðàóîþûßõòûÞòðùáðëýùÛøññÙðîýîâóïÿûäïìÿöäâëü çáéø âÛìû ÝÑêöÑÖçóÿ äÝñûö×íõèäâêüûáéó ðÝÞè÷ êÕãêúØàÜáõ ãîéîÿüéö÷øìèëÿîêñíêéþÜïïåßæâ÷ïÙîèú êÐíìûã×èäøõÓõòäÔðíúÚÝíëøâäííùìßòîüéÞ÷ñþ éàñíúõÞöóÿñæ÷òÿøÞîÙúðÿêÙ÷îüé×öðûáÓûòü ×Õõëü ÙÜøóýìæúòþüáþøïÜöéüåÒøìúÖáìàôðØüö áÚòçõ äëìÞó$èûÿÓÿüäÓñßöèÔôæ÷çÔõéüßàõãÿðÔñ æâñßüÿñðà/èò âõçðîëÝý æúòúáöìôéòéúÿàóðüðÝòïøëÚóóù æàîëòíà÷ñõíÛú÷ö äÞîíí ëáîíìôäôôïúßøûò îçêæçûãôôíóÜóõìãÛòõê åÛóòëðÝõùïòàòñìõÝñóìì×ñôê äÜôóéìÞûðñßõûîóçîõéüÜøñ êÙóúí æÙõøíéÒüñ àÓöüîÛãóóéîèþóðØ öþØØòùëàØøïìÝúÿòôÚÿ÷ çß÷ñ ëÛøñ ãÖôúîÛ×øþîÛÙøïàÖöïßÓõüîúÔßíùé ë×úñáßð÷ê ðßõîðÚùòíÕ÷ïæÞòúìóÚþõ ëÔöúïÜâëñçöØúô éÖòûí ê×óýï ìÝñûë õÚñþïîÔôýîäÔñüìåÞìùìöæñýñþÛúøëÓîúïÝÖïùî äØôÿò åÖòýôáÕñúóÞÑóöÝÕìøò åÜðûõîØö÷ âÕò÷ßÔðùòߨîúõèÚñý÷ëÞôþùðÚôýæÝîù÷ìÚòÿù çØîú÷ äÜîû÷ìÛõýú ë×îûø æÙíøø çÙñû âÏòÿûÑ×çñò äÜñþû éÙòþàÑïøùþ×Ïëõ÷×Ðìøùß×òýþ éßóûýóÛøéÖïøýÞÕì÷ûÚÓì÷üÑØïüüÜÙñÿþàßîúüîÙóú ÛÑîùúÎÔéð÷ÑÚóûþþ×âêóú éÖøÛÜîñÿìÚôûëÜïö äÚóúÙâêëäâêïãÜï÷ÝØëô ßàåíúíÝëø äãçïû çáíöÿãèèîþøàõüíãêñýñßíøüìãëóýõæêõýøãíôþõÜðø êÜíûÿ éÚíøýãâèõú îÞïûü çÜëûúäÝéñ÷çáëõøïâëõúñæëõù÷æíúú!âõþþýäîøúçñûþ# ãôàõùøäñùúúâôþýûâõûüùïîøû+èøâìðùùàæïõõÞë÷÷õÙòûôÜïöøðáíù÷ñÝòûãæìòñ÷×õüø å×âñëÝÙéüòÝÚïöÛ×î÷ÚÚèùðÜÎîóùÊÕäóëØÝîþòèÙõùÛÓìþòúÏÚëõñÞÙòöÜÕóÿ÷ÿÒàëõó ãÔõûþÎ×ìõñØÚóüõÜ×ôøÿÔáïøöëàøýíáóþúðÞòýù êÛêõñàØë÷ßÝìÿøéãóûöÖø ÿàÛéøõíÞïüöîàïýöóÞðþ÷òàëõó òÛïûõêÙì÷òèØíüóëßì÷ó÷ÞðúôõÙñùõíØïòò çÕñöò áÖóõóâØóòò çßòòôðÜôüô èÝìíï æÜðîñ áÚòðô ßÞòòôìÒ÷ûöÛÓííðØÝïìïëÜøýùêÖùùøãßîðòóàö÷øôÛùûû çäïîôöæùøûùßûÿ íâõòùôâóò÷ôã÷ñùõÛöôùêßñìöñÔùõú ÝÚïéòçÝöî÷îÐÿúØÕöïøÞØõñùàâôñùôÜõñú ìßðï÷ö×öñùñÜóïøýä÷òùÿÙúôþ êâñçó÷ÝúñüñÖùõüçÙíéó ìàñêôûÝøï÷óØóéó äâïéïôâôë÷øãôíøþßôïøõâôí÷óàöí÷ëÜòëö æßíæñïÚñïõãÛííòâÚííõâßïìõóÔ÷õúÞÙñèö äÜøñûëÛøöÿéÝø÷ýèÝöøýèàóïøðÝùøÿ éàðí÷ðÚòðû êÜóðúï×õíþàßõìþ ëÛýúæØöõ äÓóïÛØòíûÝÚñíýÛÞðêù âÛõôþ à×óîúÚÛïðû æßïëùïÞöõþîÖööýÛÔíñ÷þÕÕíì÷ÿÒÍððøúÉÒçéòØÖöúý ßÏôøûÕÒëîõÑÛíñõãÖøþýÜßðñõëÜôøûçÝóóùëÝòõúíÚïðù äÛíò÷âßöýýäÝóúãÜïùùçàóùúó×öûäÓðøöÜ×îõõÞÚíôõ èÛìöò èØñûö áÞíøôèáúúûîàþñÞûý ïáòôøôÚöøùæÛóûøêÚóúùæÝñ÷÷ï×òöøåßëõóèàóÿø èÛòü÷ãÙí÷òáÜîøóíÖõø ê×í÷ó ëÝïúòóáîõó ÷èëóñçïöòüéñúõàñööâêóïößïúóíäíùóùáíùöùàíûóóáë÷òôàëþôïèê÷òüãóúùåîÿ÷üâð÷õëçõñÿåðÿøòáêöò íÝê÷ó éßëøôìâîûôðâíûôïÚíþô çàèòñòäðûöûàñûõõáì÷ôúåé÷ôýââ÷ððåêúôäì ÿðåðôêéáóöæäÿùáëÿ ëåäýøôâçÿúòìæúãêýõâåøöõäèú÷÷èêûøöæñüõÛñûáâèüøðâïÿûñßïùïØôü æÝíóö ëÛì÷õãåïö÷ñä÷ýöÝ÷ýüéØïöõáÛðöôàÝò÷øãÛðúõåØëðîâàìóñôÓûÿýâÖíñðåÚñøóçÞðøöîÖóûøæÖîñðæÒîöñÞßêëíìàôýö ïÙñõôèàèéíóäíïîúÙóøõçßðîòôÝöøøòä÷ôúûìúüýÿÝýÞÜïñõ ÜÙóö÷ÚÜõòö åÛõó÷àØëìòרêøóÙÜðûû äÕëÕÕäñýÓÞâû áÓé ûÎØÉï ÖÓÏõÿÌÑÅó*ýÈÓ»ô3ÿÌÙºì> ÙÒ»öFÿÍÕµõIÒÏ´úIúÇѲýDúÍÔ¬û=üÒØ±4Ù×µ.ÙϹ'úÏǹì¼Ø¸ÿÙÑÎøÒÎÓöÐÉÓ÷ñÈÏß íýÔÎììùÔÏùèüØÎ âÜËÜÖÁ ÿÓóÇà öÌøÉÆøÉþÎÀ$ûÊöÃÇ*üÈÒÊ1ÊÖÏ0ÈÞÍ.ùÆÚÑ,ùÅâÐ-ú åÒ)óÀ èÑ+öÂçÏ*óÁ éÕ)òÁñØ.úÇ÷Ø,úÅôá&îÅ Þ,öËöÞ)ôÌøÙ(ôÌíÔ"ëËæÖëÉçÖëÍæØîÎíÙìÏîÜæÐøÞêÓûßëÓúèèÔ'ÛêÚóèÜÑ&äêÜ#ÞèÝöÝÜØðÞàÚôÝ æáòÝæáöááãûàççøáÿÝãûÜàåòÞáèùÝãíöÞäîõåýßðþÜëõïÚúßð çÝøÝðìàùàõñÝþç÷ ëãòàóùÝøêüðàõáøñáöãûóÛòâýçÞôåèáóàýïäóæîæôäïãðàÿîéèÝÿýíïãæôêöãïæòåíáøçéáüáêé õàëçïßëåêæçåóåéáõâäã ñßæé ìâãæ ðåäç ÷âéïõâãê öÛåì ìÝÞé ìéáê þâßêñáäêíàæê æåëæòÝòð åæêçõàíì ëÝåå çâåêîÞåí æßâè çàáéíääðñæàí ôÝäð ééÜèÿæêûùàåöñÛáö èàÜïîäæû òáäý íàÝòçÙÞúßçÙöøæã øæßûóåÝúòáÛú çÝÛýáä×úïÞà æßÕ÷ æåÖùôâÙÿíâÕü êàÕú çåÓôïÜÙþãÝÐø åãÑÿ ëâÐý ìé¿ô)üåºëBöé·Û[ç¹Úkýî¯Íe#ã¸Õgöê²Ô[ñ»ÙW ëÈíNéÅí:ùæÊõ+÷ßÙ$ ïâÜ ïãè ðâó ôæøú÷âûïñØÿç æÝúØóÙ×áÚ ,ÓÝÛ +ÎåÔ)ÈßÛ#¿èÖ )ÃÜÒ -¿ùÓÑ+ÀúÑÕ#¼ÚÐ.ÁüÐÓ%»úÑÑ)½ôÎÏ(ÀñÌÎ (ÄöÎÍ#ÂùËÐ"ÃýÐ× ÅÞÐ &ÊüÒË"ÆùÉÐÉÒÏ ÏýÌÎÊúËÍËñÆÓËþÕÒÒÕÒÎüÑÒþÏûÑÕüÑ×ÚÿÕ äÚþ×äÛÿÙ çÚý ÚãÙúÜäÞûÞîßû àðÞùàîÞöáêßøä ìÕúæÝÛîûà èÜøéäÙöë âÙôê åÝñþë èãôíîÙöôÝßïøïçÞõôèÞðôìßíúó êàë÷òñÞïüùîÛóúú ÞÝî÷ø àÞðûû äÛëùùáÕêò÷ÚÖëôø ÙÞèó÷âÔïøúÓÚæí÷ âÛí÷ý æÙîöý å×íòûàÛéóüßÙì÷ýþÝÛçðûã×ëòýá×èìü âÙéïüÞØæîúÝÛæëùèÞâåúòÙæìþîØäåüîÛêëþðÝæéûïÚåæý êÞààû ïâäèÿøàæéþ ÷Úçå êáäßüúäëä!þÙçíçÖáæþãØçéîÚíö òØíôìÝéìøØêîìØãéîÙéìõØèîîàêîøÖëë èÕæëìÜéçöÚïõîÙéæ éØêæÿíÙëêï×ïì êãèâþÿßòòúáïëþÛ÷ô õÖðëìåèãý"áóêûÜôîìÛîãîÞöèøÝùëñâøãóÕðÙâóØùòâúä÷ÝûçÿïØ÷âý áßîØôðÜþìíØùéÿçÚòàùèÕûåþÚÚòáùáÔøåüÚ×ñàõâÚöéü åÖóÝÙôåøäÛôæø çàôçøîàúëÿñáóäüòÛóäûåßëÞô éÕöðúÞØïçöäÜ÷ñü î×ðçøâ×ïç÷þÝ×îëõâ×÷öüåÞøõûïäþùÿùßüôý íÞïäô ìÕûóûÞÖòìõ äÙüöüãÛ÷ñùæÛòñõà×ïéòÙÍðçïÖÕñäï åÙøóöëÖöïõâáïêïõÛüõøñÚôóõöÛöðöõáóîö÷æôôõúàññôðÝîëñôÚòñôöáùôøýÖöõùàçâèïúæùüÜ÷ íÛíþ ìàëÿôáò ïÜçþûåÛêþû éÌíþþÓËäøóÖÑèúõØÐïøûÐÒìÿôÕÌíÿòýÐ׿ùî âÛëýð ëâêõìòÚïúíèÚéñçïØêöéêßêðèóáìóêôâíòêòÝïñëëÜïïë ëßëïëðáñøò ïçïòïôäðóíëàîìé åÙòóêÝÞïïë ìÞùõóôÓùÞ×÷òïÝÚöóïäÙùõñ äÖýõÛÚùøóàÚú÷ó äÖû÷õ ÙÔÿùö ÔÒþö ÙÓüú ÝÔû Ýàýøó×þè×üùöêÚûöóìÜü÷éÕúÚÞüûô äßý÷ßß÷ùòÝãôõðâØüöÿÔ×úü÷ÚÜþüèÝþíÞþîßÿþþæçüúùíåýýùñãþóÝþòàÿýóßúýíãüÿú ñäûü ïßÿû èàõûõðá÷ü÷òâõýöõÞùý÷ïãô÷ôôáöþøìèõøõöåùúìÞ÷üøãëôööúäþýíäôúùèáôúø âæï÷õíãóûøñâòøøõâóþùõáôýúíéð÷ù÷ãöþüðêòù÷ýððø÷!Ûðùú æâàåìòÙîû÷ ÞÜìùõßÖñý÷ÚÜæóîêÝëùõó×ëùõåÛâöó ãÏèÿùùÌàâøòçÙîüÚÖìø Ù×éùõßÚéôߨìý÷ùÕ×åöðüÖÞáôí èÒéúóÙÍãòîÓÖßïìÚÛéöóþÛÝèôñáÝéøñäÙèôï àÙæôñåÜæïñíâèöóóäçôñ ÷åêõöýæëö÷Þïýûðáçìñóäëóõ÷ãñùûùÜï÷û ðãéîøüáïûý÷ßðýÿóÞî÷ùøÙòùþôÔòüüåÛìó÷ íÛôþü èÛíû÷ãÖëõöÿØ×ëòôâØïúú îØöüþ îØôûý æÜôøü êàòúþõÖúã×íð÷ íÒñöý îÚñøùùÝõûýæñõüãóýþ÷êïóøàøÿòÙïôú æßéôøõÛòùþïÛòöý íÚðøý êÚêòúæÔìùûßÜîõÿ÷Ýü÷Ü÷ü ëãïóÿõæïôöãíôþ ôÜðù ëØëñýèÛëîú ñÜðóüíÛï÷üäÜçïö ãÕîöùÛÝêòö ìàíîöñâïòúóÞôûþ ëßñöü êØðùüÚÖìöøáãìð÷ûàùÿ îàñôú éßòúü ãÝóúû äßñ÷÷ æÝòùùãÛðúûààóöûðÞùþ åÔïúûÖÓïüúÛÒôýÛÕùÛÛïúØÚîú÷ÜÙéúôáØìü÷ã×êöòçØíúõèæðþøý×úÿâÚêõôëÕïùöæÙëóñïÓòü÷çÚëòóðÛðúöïÜìõõ çÞéîïççëñðùã÷ú÷Ûðõö ñÞëñïõáîðóùÜéíðìÜìõõíÚöÿüìÙþþçÚòóùáéðôõöâ÷úú ëäòööóãôóùóàóñùïáîëõìÜìîô æÖïîôãËòö÷Ù×ëëðìÜ÷öûèáñö÷ßèïóô èáñòöäßííðãÜñóóàÜîïòäàîóôîÙïôôëÙïöõôÛðóôÜøüûßöûûãöüúëô÷ù! èûýûíï÷õöìîö÷ ñçîóôéêëîïôãòúõìÝñùôëÞñùõøÜòõø÷âëîóÛóýüùêìðö% éöúÿíîóù!ëñõûåô÷ü÷ìîïø$áõöûêèéëôøÝãèøèæçéûüÙô÷ ââêè åäêèéÚîì ÞÞáØåÙäá ßÚåã ßÑââÿÐØãàÿÜÍãáùÆÓÚ×õÕÚäãü äÕæåùÖÖÞÛòÿÑÑàßôþÒÖáÜòÞÐíðùÖÓæçõÙÒçéôÕÓæèòÙÒéíõÕÖéêó ßÑðõúÙÎîñ÷ÏÎêìôËÔêíóÕÒïôôÒÐñ÷õÑÓñõõÛÕøøù ÝÒñôõÕÌôóöþÎÕòíõ ÞÒü÷ýÙËûûýÌÐòñùÒØöðý ÜÑ÷õüÎÓõøøØÔóöøäÓ÷÷ùàÖòõô âÞõùóíÓþø×ÕêðèÚÖð÷êåÛ÷üïòÙþóðâøÿð÷ÞýóíåùýîúßöòÕýò äÜùúíëßøëñäýí÷ßòñÞÿïöÛðïÜýïçÚ î áÓ îߨþë ìÛÿð ñãþ ðúÞõìØý íäÖúêáÛü ì ëà ïôÔñÚÔöçÙÎÿéØÐ÷æ àÒÿî æÝþðñÜ ô çÛüï çâøíù×ö äÖòâÖúðáÚøî âÚýõêÖ ù åÕùô åÚúô éæüöýÙýåÜôúðåßöôèÞùõêä÷ÿóûâüùùãù÷üëó÷öãõýúøÛïýõ ëàíøóòãøÿûõãõû ñáòúîØõüüÞ×îø÷àäìòõöÞúÿ íÙñúûäáí÷ö ñÞêôõçääñ÷ ôÚïüÿ éãóûÿýáïõòãèöüòéìöþÜöÿñßîðûÜïòñáëñùÙñò ëÞçêüòÝåè÷îáèïûñãêìüòÕö÷ÿØÚçëõ âÖëíöâÖéîñãÐïô÷Õ×éïñÝÔíôôÞÕæîïâÜãíí ëÜéìñæäæìð ìÚîøõßÛæìïä×èòñßÛæòñêÙêôó èØí÷õÜ×èóñùÖÔæññýÛÚèóñ éÙóþû äÖïóøÿØÛëõôÛÙíö÷×Ýîõø âØñúúÙÞéôôäÙïöúÜÙêõöÚäìóöñ×ûáÚéïõèÞìó÷ êåîõøôÙóüþÛãéðôçãòùü ææðøú ïððùûæù÷åéñùøâîðüòéøóÿýåøíòäøëðáûíñßúïíéòéøäûõ äãñí ßàòî ââ÷òîÞñîïáïíÿ÷áñõøåíìýùäóòÿùßîíýõÚîëüíÝíìúíÚïðÿéßïîüóßôòÿðÑôõþ×ÝèæóïÚ÷öÿçÚððü äÞíïø êÜíðù êßëè÷óÜñôýðÞïïûòÖò÷þ àãéêöóÝô÷ÿëÛïñûêÝêñùðãìòùöäîôúøßïùÿñÜò÷ýíÚíõúèåéïùýáôþõáîüþòÚðùÿêÚîûüéÛêñ÷ìÝëóøïÞêó÷ ðÖèöøãÚäíòíÔìõøçÙèòôñÚïøü òÞì÷úòÞí÷ûìÚñûû âÚìø÷åÛêòø ìÜîõöíØïúø åÕìòöàØêñôáÛêõõ çØðüùãáð÷ùòÜùèáîðúêÞïôü äÙìôøÝÙðùø ãÑôÿüÚÚèóö çÞñúú íÛóýû êáï÷úöàèöøòÚëÿûèÐïÿØÚåôùðÑöÞÛãóøéãæõûùâê÷þùÖñø éÑæëö æØéðôñâíðøüÞïõúòßîî÷ðÜîó÷êÖïôø ßäèëõùÝøþÿòâòóúúÞõ÷ù ïãìëóùÞøûúõÛóó÷èáïóôñàõöøòáòööñåììòôçòöõôãóøö ìßñõõ åâîðóîÛõüõ êÝò÷ó íâñõññÙöûõÝãïñïðÙûþ÷áÙîñîÞâîñîðÚùôâÝïóíâáñöðêãòùòì×÷ýôÿÛÛîõïÞ×øüôØÐöýóþÏÓõøðÿÒÐóùðøÅÜîôìÖÖð÷ïÖÙòïëרõôðÿÜØôùòùÙ×øüõýÚãüÿù ïØÿþÞ×íïóÞßøøùêÛøüù âÙñöö ÞÝîõô èÛóöõ èÛòúöìÛòøö æãðñô ñåôúùöæóúøúÙôüùáÛíðò æ×óú÷ àÚðû÷ âÚòùø âÔðôóÚàïîñô×ýü äØóõ÷ æãïöõöè÷ùúýáøÿûùáñõ÷ûÙ÷øûñÖóõøéßô÷øô×ýÿþèÞðòöôàòõöøÓúûû æÔïðôéÓøüûßÙñ÷öãÜôö÷æãïñöíÖúÿþ ÝÜðñõêÞõûúíÕ÷ýú ÚÔðõöרíîñ ÝßîóôêØöøù åÞíðõòßïïôõãóô÷øâ÷üûôß÷ùûçÛðòõ áÝëíðéÔñõöÞÓêððÚÖìðñ ÜÙðòô àÖõø÷ ÙÚñõôçØîñ÷ çÚêéò éÖïöößÕêðôÚÚëõô áØöúú áÚôüùêÛïôöðßñõùóÖôøûäÚíîóòáïðõÞôõúüàïñöÿäõøüá÷üýñãñõ÷÷àññ÷ðâïööóÜðùø ïßïóöðÚñùù êÙí÷ö êÙîúø çÝðøøêÛóüù èÙð÷÷çÚõ÷ù åÝñöø èÜñüûâäíõøïÜõýüæßëòõ íäòùúøÞõýü íåíöøùÞôûþ ïÞñûûêÝïùø èÔêóø××åðõßÝíúÿïà÷ô×óþâáëôòæñùûÙ÷ý æàëïþ÷ßïñõæïñÿÞñúôãîòýüÝõöøäòóýçöÿáùÿøàðõùøßóûýøßóúýõÝñù÷ ïÚòøöçÔîöóáÞíñôòÙøû êÏ÷þùÿÙÙêñï èßôÿ÷ îßôûöêÙòýôäÝíòð ë×ôýôß×òøóä×òúô çÛôûö êÚøùëÖ÷ü÷ßÓöûõÜÖóøó åÐøþùÞàòöóóØýû áÓõúóÖÌóøòÌØïóðߨúúÕàôþôÝÜõÿöÿ×ÓòúôÿÐÍôþôÐÐóûõÔ×ðøôÙÙñýóûÖæïùòéÙúûùÙÕî÷òýØÖðûõÙâîøð çÞ÷ùÞÚðúõÙÔïûõÒÓîöñÓÒïùõØØðùò àÖö÷ÝÚïúó ãÕ÷øüÙØïóòÜÙñûö àÚöýùå×øú àÝï÷ó ìáñþ÷ñ×øüßÖïùõßÛðûö åÜóû÷ äàïüöâÝíöôÜ×îöôÛäëñðöãúýôÛùüéÝòûùðàôþûôÞùþüôÛöøúìÖóóøáÌîñøÕÉëóõÐÌñ÷öÔÖôúù æß÷üüôâûõêøûþëúéó÷úÿâôûû öèîó÷áóûûôÝîó÷ êÛïô÷áÛïôøØÓíðóûÏÙäììßÖéðñÝÖêíîãÜææë ïÝêïñ îÚëñóèÝìñóéÝëóòåÛìôò äÞçìïïáïðòîâêêïïÜéíî åäåëì÷æíòõ÷çâóóôãéúøðêêùúþäò÷êâòöèèôûâèïøúäèôøüáëôú÷çåòóêêó÷öéëó'êñùûçæìõãäëòûèæìòæîôøÿæï÷ùßïõùôØëð÷æØæèðýÞàäêî ñÞð÷÷öáíðöûßïõøøáïð÷óàîõõèãìñôîëîôöþÞõøú íÞîôöõÖôøû ëÔðò÷áèùóúüâ êáúõûîÕÿþ åÝüùýöÔþ âçõðøùéýþöÞøùý çâôîøôÖùúýÞ×òì÷âßñîøòÚùùÿ ìÜ÷ïüòÜõõýðæôðúøßöøþ ëÞííö íÛóöû ëÙõòûêÛóõûîÜóöûíììëõÿÛùýèÙíëõ áäêéôòäóôúôàôïûôÝñôüïÜô÷þêÜòðûéÙåéõàßéõø ëØôä×î ãÛæû ææä÷þüáåú ñåÝôùóååôþòäåöýðßìüèàèøüôËïýÿ áÅëòüÙÉëòùÌØêò÷ÒÞðõúÖÛìó÷þÓãçíð ãÙóûûØÜîïö áÑòõøÏÖíïòÕË÷ýùÿËÅðõóýÉÈíìòÖÆöøøÒÆôõøþËÍðíòýÈÏ÷ôõûÆ×ðññÔÚòòõÙÝöõ÷ ÝáúüüéÖýþþ ßÏ÷òùÔÙíæòçÛýýþìÔÞÙö÷ùßÔüüüÕÍûùøÿÍÙóòö âÝüøù çÚüÿûàâóïóòßÿùúðÞùòôñÕ÷õõåÚðíðôÙúüúñæóööùéùûùúèøó÷ùçý÷ûûáöóùóÜõóøíÝøòúõÜþóýôåõçû!þß ÿ ðÝöòÚøéìáõéÿöÚþö êåðåüúÞû÷ëÚôìý æÜóíùëÕùöÿ â×ñèõ êÓõòú íÔõï÷ì×öïùïÛúôüòÒýûüÛßíëñ íÚúüû æÐùýúÿ×ÕòôôäÑùøÜÒöúôÞÐôüôâÖøÿø ìÕùùáÙõüò äÞò÷ôèÛþúÛØ÷öÙÕôþõÛâíøðôÞþú éãóüó ò×õöà×î÷ï åÚöóñÙ÷õîÖóþòäÙîüîäáðñíØúúáÞïûïïÙõôäàíþï éÓñóøÒÞåïèäßòó è×öõߨìþñåÜðó ëÕõöàÕëúîÝ×îñÚÚîùîØÝîûïþÙâèøíãâëþðããçøí îØéøïâÞåòìñÝîôïãîýóõéê÷òÿéïþøûÜñÿùêÚìøôïÌöûÔÙèóî ààðþõââñþ÷éÚëùõÿÜÞÚëè áÜôý åÞîûñàìþüùÝò ñäðøáéûýîäæùùðßçýû æÐæ÷øúÏ×àðïßÐæõóýÔÑå÷ñûÒÔæúòûÒÛãñìàÚæñðàÐêøó÷ÒÜÞììçÒîþ÷ÚßÞçéíçêùóùéíúôýãìøõ õãäððüéíõõ!ãïöùûãèü÷ùãéûøçãüùÞÝüêçÓþþâÛ! ñéË%÷êÁ0 öð´'ã°1" íêœ"ûë˜*øîŸ /ó¡ 1#ß« 2 ðä¥&úç¯âÃæÊùçÞøááþïÝïü÷ìÞððìôàþûëïâûæçáóÝ âØôÙÚÓïÔÜÍ ó×ÙÊõØýØËóÕüÒÌôÔüÏÓ êÌØâëÌñèòÔ!ÿÜóÖëÚ äÌçÝçÍìßêÑòàèÓöæåÒ"ÏêØ ÞÙÒÌóÓéÛóÑìß ê×ÞÚçÝ ÝÙ åáßÛãâ ÞÙ çé ÙÙùâââîß ÖÞìã Ùã(øÜãéðÝßæùÖßëìÚ ÞêíÛ ÙêóÜãñøåÝñûç ÞïùìÚíüãßñ êäÛïóÝ èøíÙâö èßÿÜòò×á÷ æÓß÷áÍÛöÜÏßúÙÌàüÓÓöÓõÔÖúéýÕÏýôþÏÐ÷ýÖÎìú ÐÎíÔÍëÒÚå åÐåÿÐÑÝÑÑá ÜÌé ØÎâÿýÓÙáûáÚâø åÚç æÛêý êÏð ûÖÙáîåäëöôÜöÿ áÜîñ áÔíòÙÓðð×ÖïìÔØñíÑØîë×ÔñïÙÙìãÿ çÓ÷îáÔôëÙÜóç âÛçÜÿ ä×ëÞ åÔíà ëØòåïÚâÒ#ëñÝË'# ëäÊ6ÿÞáÅ6 åÛ×¹1 çÓÙ¼+ëÍàÄ+èÖßÅ"õßâÌ÷ìãÊêçÒæãÑÞìÚýßíÝ ýãïÜ#äóæ#ÝøìòàïáöâøîøÜüò îÛûîöÝúê"ÿØ÷óþõãðçôýàúöø çíòíîøòøõó(üõóñ3òýú÷%øóïï*÷øõó% íùú÷õåñåï ïäóôø ùÝèùÿüØæÿñãâóûåîõ. ùèãÑ5#ýöÝÅ79íïÕD(îèÂ7*ÿìóÅ6&ûêøÌ)ùåÝ$ðèÜößðìÖüÿ éÓðæÏæ×Ò!ÜÞÏ*(ÚÿØÔ!"ÌÝ×#(Ç ÞÖ"*¿ÿר+º÷×ä$³ ïÛ/¸ èÞ1·íÒ"4¸ÖÖ'¯ÜÐ,±òÔÏ-²ïÔÌ '¯ëÍÓ (²ú×Ï+¸ôÌÎ '³ïÉ×°úÛÍ ,¼ôÎÐþ·ÖʼþÏÑû½ÙÏ&ÈýÔÑúÄúÖÏùÆôÑÎõÇû×ÅùÏûÒÔóÏãØø ×ÝÙñÖÝÓÝÍÕÓçÚÕÌæèÒÐàï ÛÓÙùÔØÛØáÌûéØÐþüáÛÉüýèÜÆøúäáÆ÷îäÎ úðáÐùìÛÑøáÚÎöüÙæÎõ îß× üàßÑöàÙÒõûÕÔÍþóñÊÒÏôëÁ×ÐýñïËÝÐðÿÞÞÖ÷àÖ×øÖÖÓüõÔ××øÖÙÛúØÔÙøúÈÝÒ÷ñ ÜâØþ÷ æÞÚúäØÙþüÞØØúùâÚÝþæÖÜýàÒÞþúÿÏÒÜøøöÇÑÞýüõÉÖÝûþýÔÙâüÜáÝø ìåßúþñÞáûÿ äçÚïúõÜçüíÜÞòýùÜäùÙî ÍèÿìÒäøòÕèûð×ïÿåÜäóæîàìüðèøðäöéå÷øéäòÿÛêóñÞàèûü×çí#÷ËëöíÎåëñäîø & ôñö$îäö  éáò ÿòØð òÜýòÐôôÕù äÐò ÷åÉìÝÕîöÏ×ñâÏ×î ìÔÜòñÚÞðôãàí üîÞë çäî òòÓØïÞåöáäìàâÝçüâÛáàý×Üàáý ÜÕåèÿÖÙáÛ÷ÜØéáûÿÞØíëÿêÕðëçÝñæìÚñëþßßéàö æáëß÷ èèñéú÷ØýïáäïÝøõìûêÿ"þáòðäóãú÷áøáø ïãüêýüÚùãúöÛôáô"Ð øèÛöýìã õûðâ øùçâíò ááþéìßäÿäìîíçðïíöðîù$ëéõ$ ß òúÔêöíÓßòéÔçô àÞùÜì ëßöÏâ éÖ!êðÝÚ8çéæÚZóëïØdæåòØtåëôÛpÚæúÑqáíèÓfÞëòÏdáðíÎ[éñéÏMÞíã×EÚìèß>ÞìñÝ9Ýêíß/Øæîß"ÐáïÝ ÚèìÜ ßëéÛßíäØâïáßÚêïÜëóöÙãñôÜëôôÞüæòóæ÷äóûè÷ëöüèøíùúåïé÷òèåáðúãèíù÷àÛäóðáàòùòÕåúþÝÏâûüþÒØ×ìôãÚÛúûîÙÜÿÿ éØÛþþãÚÓ÷üâÛÑ÷üàÝÓüþ êÚÕæ×ËúúÜÖÊúúûÔÕÅôøÑÑÈûûÍÑÈùùÌÊÈüøô¿Ú¿óö ßÍÒ ÿÒÐËÙÓÄúýÕÏÆþüÌÊÐ þÉÉÖ ÿÎÈÛ þÍÍÛÏÒÞÌ×ÓüÑÖÔ üÓÝÒ ÿÝØÙöÐßËýáÖÕ úÓÕÌÿýÖÔÐþÝÐÕÿÜÍÍû×ÑÌûÓÎÌýûËÒÌúüÎÑÑþøÒÐÌþøúÓÓÍþøûÖØÌýøàÔÍú÷ÿ×ÔÔüö×ÛÛûõ èÜïýðÔý ÿ ãÓ þ áÕùýôÞÝ÷ÿôåÝ÷÷ ãßòöèåô÷óäóû÷èêþõÝíûõæÚìï$àæû÷ôÞäþô ïããúòùçãþöûíßùôäáÿøîߨôò æÕÞøõöÖÞØôïÿìéÜ÷ó éâÿùåàÿùÿëÝÿø!êÙø÷ÛÐýóçÙÌö èßÊ îäÆ ïö¸íÈ(ì³ í¹ & ë¶ÿ!ã±ööê³õ!å¼þ÷ê¸ï é½ó þáÁñóàÄòÿöáÊ÷úäÎùûæÓóûêÖùýèÚúýþàÜûü ÷àßüûûßàüúúåæúøäáñòòëÝùìøæíñ îâî îëÞðìì×ñ ëÿÝâóéíâõ êíá÷èñÓü êÞÏ÷åÞÈêÜÁþèÛÊêãÑíæÞ ë òéêé îüë íþñ÷æ&ïöã!üï üè#çþì÷ÕôÜÌõç ×ÇûëÔÌõçÜÖî éäñèôáùêãÚóçØá éàèÝüí ßÙ îåäÎíèÔÙ êãêÒüñâÏõíÝÑôðãÕééëÙðì ðáôñõçÿùõèøõëâõñãáííìÝïñ ðÞòðùÛöõöØóö íÛñöèàöóìãòôóêìï&æø÷óìò%íüüíòößõø äÖñô×× îð áÎ ñôþÐÊ íïõÂÈìíð¶Þÿàæ ÚÝ÷öÝäçðåÛ òöÓÞèð á× ôøÕÝàò ÞØ÷âôÚÖï×Òþè ÕÔâÛÐæÍÙùÚ ÕÝõÙ ×ÖõÚÍßïÓãÜõÝäÚúãÛÞíÙ àÝñÜ âÖôáÚÒéÕ÷ÚÎîßüÖÏîÜùÖÓïàøØÕöèýÝÕôåû ãÓõèþ ãÑöçýÛÒîÚõÝÒðåöÝÕðçõ ßÖôî÷ áÎõî÷Ó×îéò áÖòíõÝÕôñù ÝÎôîö×Ùëèñ ë×õõø çÕõñ÷ àÔñïõà×òñöåÖòõö æÚóôôòÖüüèÕöúõ ßÕðôñ×ÒðõðÚÔñøñ áÕ÷þõãÑøÿõ×ßõþóïÞ÷ùóíÖÿþ÷ ÝÙûùóßßøôóçÙþãÛÿýøêàúüõîØ÷ùóÚÞôùñçÛùýõêÙøýóìØ÷ûð íÝðôê ëãñùïóÚ÷ðïÛïøè÷Þòýí úÚíûéëãìúéøÚôï íØíþé òÙíÿì ðàïí ïáñï ðâïí÷áòðÏú÷ãàèùêúÝ÷ ÷ éÝëîäâçíóáîïýßîôþåíóïîö ãð ûöìáüï Ýò úêÛëô èÛçÿôîåéõ Þê÷ðÚã õàÜãüåÙäüæØãúëäàúüäê ÷ãæ ý òäáû ôéÜÿõÚçúåßÜüôðÜãú ïÞáøøàãùúÜæû ïÞåýù ïäÞùôüéæúãéûýéãúôáçý÷ ôçÝñïýèæûöàêú õÞçùø ïÛåûõëßèùøî×ìýúàäæøööÙñÿ äáåôõóàíüñÛìýýîâíúüöÛðÿêÙèëõêØóûÿìàôöþûÙÿëÜøûïæõù÷ÝöúáØîöýÙÍìðúÑ×ççõ Üåîöýìãðúþïäìîø÷Øñôü éÛææñëÚïöøîÜðõú ïåèîò÷åîòöîåïðøìÝòùúÞÝéîó ßÖêòõ ÞÔèîò à×êíð åÙíôöÝàèðòãåæêï îÞçïóæàãíñ íØîöúßáåëñ êÜêô÷äÞæíò ãÞìíö ÝØêìõÕÕæèô×ÔçðöÜàèíõøÖ÷ÿ ç×ïôÿéÛïôþëàðôþíÜíðüãÖåê÷ýÙØäèöÚÜëóüäÛóûãÒíòþøÑÚâìöÝÒñûÎÓéïûÐØéòûØÚêñûÛÖìõýÕÔèðúÔ×éíùÿÖÐêïùòÆÞÞäðÿÚ×ëôü÷ÐâÞåô ëåí÷þýßï÷÷ÞíõÿñÜêñüæÛïóþãÒïõÿ ØÙéïý âÛíóáÝíòÿÿÝééíûøãõù ñçòñøãôöõèñôþæðôüéíðàìò÷Öëó êåèòþ Õ åÖðëÓïü êÛìôü êÞïûÿ êäñÿþøØô æãèïõõäïýüôàñùû ëàéñõ òáçíóôÞìùúòàñòùõØî÷ùêÙèñö íåìïøÿÛúÿðÙïõûðÚðóú ñÜíñù òãêïøüÞóûüòÝðöù ïßïôú ñÞñóú íÜîñùåßñóúì×ùù ãÔññ÷ÜÖïèõ Þ×óòø ÛØôòøÚÕôñøØÒññ÷ÔÑôðùÕÛôïùßÏùöÿüÊÔðîùÒÐú÷ÿÓØòíøáÓû÷ ÓÒðíöÎÐñìöþËÔïîõÙÛñðø âËòðùúÈ×ðëõÞßûõÿïÙ÷á×ýõáÝùõïÙúò åßõîýêáúóóÕþ÷äØ÷ðüìâ÷íýÿâüüáÿûþâùñÿþàúõÿõæõïùúàùöüïÞö÷ûïÛû÷ûëÙùöüèÙùúüãÞøúûíßúõúôÙùûøêâóóô÷ÛúûíÞïóóïßñ÷ôðæò÷ôÿçøûúåøù÷øÞøùîÕôöó áÙó÷õéÚ÷øöîÙöÿ÷îÚõøõêÙôúõçÝñôòæ×ïöñÙßëðêãàõùóêÛùý÷ èÛôùôëÜóúôñáóõñöÞîöòñßîöñòÞøý÷òãòûôÿãôúáð÷öûçèîóüÚêóôåÜæïð ì×íúóéØïûôìÕõû÷â×ëóò èàëóðöÚõÿø íÝð÷ó ïÙðûóèÝéòîïÜóùñìÛñöð ëÖñõðáÚîöí åÚõúò ç×óûñ áÚôöïÞáðúîìÛñûòäæèòéöåñúðôÞöûò äÜñøïÚáîóîäâíùí íàòüð îßóýò éÞòúó åÞñøïîàóøñøáõ÷óóÞõþôêÛõþö äßóýô îáòüôõ×÷ÿ÷æÔñøó ÝØóúôéÙù÷ëÒúùÞÕôøó ãÕöþöàØóüòÞÞñþó æÛ÷÷áÛ÷ÿõÿÜßïûòåÞòüôé×ô÷åàðøóôÝô÷íÜòþöíàñþ÷õÚôú ê×òü÷ è×òþ÷àÜðý÷ æ×÷úÛ×ñûõÔÖðúöÓÖòÿø×ÚïùùàÛòýúàßðûùëÛøþ âØóþúáÙðù÷ æáðùöñÜøþ èÜïû÷ãÙðýúÜØíø÷ØÖíùøÕÛïúú àâñúýîÙôùÿÝ×ëóùÛÞíôý éá÷ýñÛûø çàññíÚöö èÝòòýëåïðüøÜùþ äÚïóùáÚñò÷ßÜö÷ø æÖöó÷ÞÚñíó äÕõõ÷ÝØñïñ ãÙôùõ ãÝòôòíäóðñ÷âøø÷òÝòöò èÝïñðêÙñôò èÚíïî èÝîñïíÙõü÷ åÖïòñàÚìïî æÚò÷ó çØñòòÞâîòñíØ÷üùàÖïöñ ß×îòõâÛéèòæ×òô÷ àÝìñùðÜ÷üî×ìõÿ ãÖíõ äßæëþóâí÷öÝëöÿïàæíúóÞí÷ýíÛëñúêßèìöñéæîöàòøü òèæíôçôúýÿìïõû äðôûúãàâðùÝÞéñèßåñô éÞöÿþîÝîöüíØéúûàÞçôü éÜêûÿ æÝë÷û ìÜèòø ëÚâèðîÜéò÷ïÜéóö íâäìð÷Ùêòò èáâæìöÛêòôìßéððöÞòùùîÚòøõ åÝìòóæÞìôò ãÙñõôÞÕìïïßÛêïï îÓõúõþßÙëîîæãñõóøÚýþìÚîóó êáîîñóÞöùöíÕùýùÙÛíôò èÞðõñóäó÷ôúÜúú íÚðôó êßõ÷õðÖúÿøãÝñ÷ò ìÝúþøçáøúðÜ÷þúìàõù÷øàýýóÞûüñçøûúßôßýûüñÜøýûïàôøøöÞúúüîÜûýü êçõùúùÚýþäæìñò÷Þøý íãõõúüáýÿûÝ÷ýþõãñõùþæ÷öúæøüûß÷öùõâóøùöÙòöø äÜìóô çàðúõ ëÖñøöÚÝèîðçÙñõ÷áÖðö÷ÝàîñóíÞóüû ìàìîóõàîòööÝîôö ðÞïó÷ìãïó÷öÝòõûïÞîôöìßðø÷ ëÝíööåâìòöìÜóÿþߨôûû×Úíõ÷ àÛòõúêÕñöú ãÐñôø×ÚíñôäÝõüü åßñöùêàôúüðÕøþü àÑñøúÖÖîòø ÙáóöùçÓøÿþÐÖìðôÔÍðûûÉÌïöùÌÝð÷ûëÝù éàòûý èÕôüýÓÔîóù×ÒïõûÚ×ðôû âÙðöû á×ï÷üÜØìõúÝÖòøýÖÐíóùÿÍ×íð÷ØÒñöüýÌÒíôûÿÍÔìó÷ÿÓÚïõùÚÙðúûÚÖî÷ù×ÛèïôãÓï÷úÛÛíóø æ×øþÿÛ×ï÷ù Ýãìñö÷ê÷ûÿ"âúüîÜïðüÞßëðú åáõûÿìáó÷ýíèíð÷äõùÿüßô÷þóÕôùÿ äßíðøõáûþöâïôþñÞèëøãÜîõÛØôó Ú×óô ÜÞðîìáø÷òäììöåððûÔïðå×êèþ ìÓïñç×èçýéÜäéø ðàêìüôÜíêúîÛòðüîãìíùúêñðûåîðúþâìë÷ýßïïûèóí*Ýýúåòì äúîâôíýâðîýøàïêûóãñîûøäô÷ü öåîòúùæòòø öáñòõ îØïïïåâíïìüÚóøò÷ÝíðîþÜóúñûÜôøóòÜîõí èßñøí éÝôýí èÙóúïàÝïøëäÖöïØÜñûì çÚõþíâÙðýìâÜñøê çÕ÷îãÑõìßÓñÿéßÝòþì ìâøòíçøòõäùóõØûô åÒñþíÚÝì÷ç íßõñ ìçóðöã÷ôóÞóüðôØöþðëÞðöììåóýîòÞèúêÿâØè îûÚÜèôãÚî/üâÛÞ+õßÞÚ6õÿàã×5õçÝÖ8õöÝÞÒ-ôüàÜÓ+óáÖÜ%öÚÞÖïçÕÜñþÖÛÖîâÖÝñØÝÚ íÜÞß ðâÜáðèÞâïñÝçñìÙçïçÞåúì ëÓíòÚÎèöîÓÔèòêàÕîõíäÕðøì ãÖòóí áÙññîßÕëìêýØäéáåñÚöñí âÙðåé âÚòçëâÕõèïÜÎòåíÔ×íÝçíÙúèñïÔüêóâ×ùäîäÖúæñ ãÒûáñÖØùÞïÞÜýçò âÕåóÕÏ÷ÜíúÊØ÷ÙíãÓçùæØßôîÜâ÷íÛßù ä×÷ÖòÞÞ÷×ôïØéý çÕçûÚÑàøÌÕûÛ÷ ÖÏúÚøËÕûÚù ßÔ äåØÞ ïÓØ êÓÒíàÉ+Ü,Ô!ùÛ&Ê õå¼)ýéÉ*ëÇ+êÊ'æ É $þé Ë $ê Ï#æ Ó!þÜÓñßÎÿ$ÿ×ÝòØÚÿíÞý×ûïÞÿáýæãúÛûêÛêáÛäüèÙÿêûèÙöá÷åßòãóîÚôë÷çÜïßíëÒîåî áÚèãêñÙððòëÜðïòéÜïôñ ä×î÷ôØØì÷ñÝÝìùó êÚðöåÕêþóþÛØçüðßÝáúîçØêõåÕçóàÖçÿñâÜìö ñÙèõáÓã ôþÒÙæöÚ×ó#úÔÖèüõÓÜÝóüàßßôéÚÞòýäáÜ ò öÞáõíÚß ñåÝÛ îê×à ðãØß ó èÝâ ó æØçøÕÖßñÿÐÕÞïýÔÜÜïåáÞñóäß õøÝæù ëÜÞõ êÜàóåÒß ô÷ØÜÜòèâä ÷öàéý ëßáöãßÜóåÞÝóçÝß õãáàõêÞåú ìÝäùêàã÷ôÜìüð×ïþ åÜéûïÝî þ ëÞï ÿéÛïÿçãçû ôâë ÿïãçùòëèú!åä÷ôêØþòþãëüàâÿüÜãïà×"èàÜ.ßâÓ$ýßãÖ$ì××âØÕþÞØÚýÛÜÙù âêÜ ú ÿææúæß üúäãýöçâúÿáæþüÚÜõõö×ÜõóíÚäüõèåâ÷ñôãéúõ íäãóñ òêáðïÿåë÷ööëëðôþáñõùôèêìô æô÷ýþìðòúìóóû"é÷òý&æùôÿ þæúòýðùñý#àü÷à÷éúôè÷ëúüæúîúøäûêûóãúçöôØëû æÛøãõêÚëúåÝùåòçéòÜïößþèöåÞ÷ßñèÙþçù è×÷àó éÎüïøÿÛÖùêö çÒóúÜÙýëö ããúëöïâìûìáüêøéâûíù îÞüî÷ æÝþëø äÒðûýÑÓõáðýÔÔûíöÚÖþêôâÑë÷ÝÙúäóæ×íû ÙÖèöÓÙúâóÞßùæòéÛäù âÝüìùåßüíéØùì Üâêáéàçâ*îÝâÐAðßÚÁLùãÛ½P%âã½P"ûêÝ´D"ï߸>( çíÆ;%âòÐ3ñåóÎ$õÚùÝ âÙ÷Ü ÝÝë çÒ ÚÑ ùõÞÑ ûí àÚ ùçìØã ãÚÜåá×ôãØùÚÓêØÐ äÒÑØÌÑúÐÌ ÿÈúÕÎ ÉþÝÉ ÍøÓÐùÇàÏ ÿÉÿÚ×ýÉàéøÈÝ ÕôÞøÌøßùÍûÝÿÓùÔüÓç×ûôÌ íÕöÏæÙýóÐ èÜøòÍäÞ÷öÒãæôñÐñÞüÛèÕ÷úØÛÓõ÷ÙÙÝööÛéÑÿåÓÒôøÝÕÐöûâÔÊ÷ýåúÇÎôüãÿÎÏøêûÍÖøýê×Õøÿî×ÛôúëßÔôþíûÐØñúíÝÒõô×ÎóÿôüÇÌðûòúÃÓñþóÖÐ÷ùÒÏöø×Ôõÿù ßàôþûñâóþûõÜéö÷ íæãðòùÛîÿû èÜæù÷ïãèøûùÞï÷ÜêüÿîÞçúîâíü÷Ùò èÜéøëÛëý âÝãúÿáÚåøþàââñûôÚæüåàâóéÛì äÝâ÷îÓæüãÖßòèÕãýàÍáóûÌÞÜîùæÕëÞÙâôÿáÕáøüÖØØïüÿØ×ÝõþÝÐãóÕÚÞòèÛáó å×Úñÿ×ÓÝðøÐÞÖõ æØØøáÓÓû-ÕßÄå7æêÂÜNøð«Ð\ò©Éh" ô¨Èn!é¬Îpâ£ÐküÝ¢Ðaûç¦ßW& Ý´øSúÞµù> øà¹/òáÁ òáÏïæËøÞÞ çÕæ"ùÚÖîðüÙÚõæÿÞÎþÞûÔÎÖ ÞÄ $ÙÛ¹ "ÒÿÎÄÉù×ÐÈúÞÒ ÇÿÙÏÁËÖ¿Ò×»ÕÝÿ³ÿÝÚ¶ùØàü²áÙ ¼×ÕºØÑ¹ ÞÖü¹îÙ ÃñêùÁ#çËøêúÅ!úæûÉñâõÉñàöÉïîûîÐCÀ@@À À À € À kkk+k««ûûû»û;;ûûû»û;;°°°p°ðð1!1!1!ñ!1$q$q$Í%Í%Í%&Í( ) ){*{*{*;+{-»-»-U/U/U/0U2•2•2444Á47A7A7¬8¬8¬8l9¬;ì;ì;===]>@Ý@Ý@=B=B=BýB=E}E}EæFæFæF¦GæI&J&JzKzKzK:LzNºNºNPPPÐPSPSPS™T™T™TYU™WÙWÙWnYnYnY.Zn\®\®\X^X^X^_Xa˜a˜aPcPcPcdPfffhhhÚhkZkZkmmmÃmpCpCp¨q¨q¨qhr¨tètètEvEvEvwEy…y…y{{{Â{~B~B~±±±q€±‚ñ‚ñ‚1„1„1„ñ„1‡q‡q‡åˆåˆåˆ¥‰å‹%Œ%Œggg'Žg§§<’<’<’ü’<•|•|•*—*—*—ê—*šjšjšì›ì›ì›¬œìž,Ÿ,Ÿì ì ì ¬¡ì£,¤,¤m¥m¥m¥-¦m¨­¨­¨.ª.ª.ªîª.­n­n­ã®ã®ã®£¯ã±#²#²e³e³e³%´e¶¥¶¥¶E¸E¸E¸¹E»…»…»-½-½-½í½-ÀmÀmÀƒƒƒ  ƒƒƒ  ƒƒƒƒƒƒ  ƒƒƒ  ƒƒƒ  ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ  ƒƒƒƒƒƒ  ƒƒƒƒƒƒƒƒƒƒƒƒ  ƒƒƒ  ƒƒƒ  ƒƒƒ  ƒƒƒƒƒƒƒƒƒƒƒƒ  ƒƒƒƒƒƒ  ƒƒƒ  ƒƒƒ  ƒƒƒ  ƒƒƒ  ƒƒƒ  ƒƒƒƒƒƒ  ƒƒƒ  ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒlibgdf-release-0.1.3/sampledata/NEQSuint32Ch678.GDF000066400000000000000000002137541223711576300213730ustar00rootroot00000000000000GDF 2.10P0000 anonymous EventTestFile 001 )))¸LŠ€ù7ƒ¸ˆ ^Ÿ:8 b4om2.39ÀÿÀÿÀÿÀÿÀÿÀÿchan 1 chan 2 chan 3 chan 4 chan 5 NEQSu32 1 NEQSu32 2 NEQSu32 3 Dry ECG Airflow xyz thermo BIA real BIA imag uV mV mV Ohm - °C Ohm Ohm ³²²À ÀÀY@Y@Y@Y@Y@@@@@@@àÿÿÿïAàÿÿÿïAàÿÿÿïAàÿÿÿïAàÿÿÿïAàÿÿÿïAàÿÿÿïAàÿÿÿïAÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿ¸ ,X,<@œEÀÿÀÿÀÿÀÿPCGÀÿÀÿ)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz” ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Êffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™×£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})\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz” ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Êffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™×£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})\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz” ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Êffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™×£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})\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzî)\q= ¸…+@GázTÂõh×£p}…ë‘fff¦­Gáºõ(\Ï= ×ã„ëQøÍÌÌ ®G!\Â5¤p=JëQ¸^333sz®‡Âõ(œ ×£°Q¸Å™™™Ùàzîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”®Ga®Gáz®GázGáz”Gáz”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Ê ×£0p= —p= —= ×c£p=Êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ffffffff€€™™™™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}×£p}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿczDdÈ,ôX¼ „èL°xÜ@¤lÐ4˜ü` Ä ( Œ ð T ¸  € ä H ¬ tØ< hÌ0”ø\À$ˆìP´|àD¨ pÔ8œdÈ,ôX¼ „èL°xÜ@¤ l Ð 4!˜!ü!`"Ä"(#Œ#ð#T$¸$%€%ä%H&¬&'ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"#ÿÿÿ'(ÿÿÿ,-ÿÿÿ12ÿÿÿ67ÿÿÿ;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd °rè °rè °rè‘í|¿‘í|¿‘í|¿.Ý$Æ.Ý$Æ.Ý$ÆÆK7ÉÆK7ÉÆK7ÉÆK7ÉÆK7ÉÆK7É -²Ý -²Ý -²ÝÌÌÌÌÌÌÌÌÌÌÌÌÆK7ÉÆK7ÉÆK7Éÿÿÿ¿ÿÿÿ¿ÿÿÿ¿ˆA`åˆA`åˆA`å“Ö“Ö“Ölibgdf-release-0.1.3/sampledata/alltypes.gdf000077500000000000000000000574101223711576300210330ustar00rootroot00000000000000GDF 2.10X X X  uint8 int8 uint16 int16 uint32 int32 uint64 int64 float32 float64 ào@ào@ào@ào@ào@ào@ào@ào@ào@ào@`ÀàÀàÁàÿÿÿÿÁào@À_@àÿï@Àÿß@àÿÿÿïAÀÿÿÿßAàÿÿÿÿAàÿÿÿÿAä›@ä›@ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀLÌLLLÌLLLLLLL̘˜˜˜2111ÿÿÿÿD €@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@      @@@@‚€€€þÿÿÿ`Cl@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@SÓSSSÓSSSSSSSÓ¦¦¦¦NMMMÿÿÿÿ@D(‚@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@vövvvövvvvvvvöììììÚÙÙÙÿÿÿÿ€NDЉ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@      @@@@‚€€€þÿÿÿ`Cl@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@DÄDDDÄDDDDDDDĈˆˆˆÿÿÿÿîCÀ}@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@qñqqqñqqqqqqqñââââÆÅÅÅÿÿÿÿÀED¸ˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@PÐPPPÐPPPPPPPР   BAAAÿÿÿÿ D€@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@      @@@@‚€€€þÿÿÿ`Cl@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@      @@@@‚€€€þÿÿÿ`Cl@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@vövvvövvvvvvvöììììÚÙÙÙÿÿÿÿ€NDЉ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@PÐPPPÐPPPPPPPР   BAAAÿÿÿÿ D€@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@hèhhhèhhhhhhhèÐÐÐТ¡¡¡ÿÿÿÿ6DÀ†@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@      @@@@‚€€€þÿÿÿ`Cl@fæfffæfffffffæÌÌÌÌš™™™ÿÿÿÿ€2DP†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@IÉIIIÉIIIIIIIÉ’’’’&%%%ÿÿÿÿ€ÿCð@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@      @@@@‚€€€þÿÿÿ`Cl@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@      @@@@‚€€€þÿÿÿ`Cl@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@      @@@@‚€€€þÿÿÿ`Cl@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@fæfffæfffffffæÌÌÌÌš™™™ÿÿÿÿ€2DP†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@EÅEEEÅEEEEEEEÅŠŠŠŠÿÿÿÿ€ñC0~@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@      @@@@‚€€€þÿÿÿ`Cl@jêjjjêjjjjjjjêÔÔÔÔª©©©ÿÿÿÿ€9D0‡@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@LÌLLLÌLLLLLLL̘˜˜˜2111ÿÿÿÿD €@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@      @@@@‚€€€þÿÿÿ`Cl@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@QÑQQQÑQQQQQQQÑ¢¢¢¢FEEEÿÿÿÿÀ D¸@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@qñqqqñqqqqqqqñââââÆÅÅÅÿÿÿÿÀED¸ˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@      @@@@‚€€€þÿÿÿ`Cl@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@gçgggçgggggggçÎÎÎΞÿÿÿÿ@4Dˆ†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@fæfffæfffffffæÌÌÌÌš™™™ÿÿÿÿ€2DP†@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@EÅEEEÅEEEEEEEÅŠŠŠŠÿÿÿÿ€ñC0~@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@      @@@@‚€€€þÿÿÿ`Cl@vövvvövvvvvvvöììììÚÙÙÙÿÿÿÿ€NDЉ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@      @@@@‚€€€þÿÿÿ`Cl@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@      @@@@‚€€€þÿÿÿ`Cl@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@AÁAAAÁAAAAAAAÁ‚‚‚‚ÿÿÿÿ€ãCp|@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@qñqqqñqqqqqqqñââââÆÅÅÅÿÿÿÿÀED¸ˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@      @@@@‚€€€þÿÿÿ`Cl@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@dädddädddddddäÈÈÈÈ’‘‘‘ÿÿÿÿ/Dà…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@,¬,,,¬,,,,,,,¬XXXX²°°°þÿÿÿšC@s@      @@@@‚€€€þÿÿÿ`Cl@vövvvövvvvvvvöììììÚÙÙÙÿÿÿÿ€NDЉ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@pðpppðpppppppðààààÂÁÁÁÿÿÿÿDD€ˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@      @@@@‚€€€þÿÿÿ`Cl@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@      @@@@‚€€€þÿÿÿ`Cl@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@nînnnînnnnnnnîÜÜÜܺ¹¹¹ÿÿÿÿ€@Dˆ@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@      @@@@‚€€€þÿÿÿ`Cl@MÍMMMÍMMMMMMMÍšššš6555ÿÿÿÿÀDØ€@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@bâbbbâbbbbbbbâÄÄÄÄŠ‰‰‰ÿÿÿÿ€+Dp…@iéiiiéiiiiiiiéÒÒÒÒ¦¥¥¥ÿÿÿÿÀ7Dø†@      @@@@‚€€€þÿÿÿ`Cl@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@uõuuuõuuuuuuuõêêêêÖÕÕÕÿÿÿÿÀLD˜‰@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@lìlllìlllllllìØØØØ²±±±ÿÿÿÿ=D ‡@oïoooïoooooooïÞÞÞÞ¾½½½ÿÿÿÿ@BDHˆ@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@      @@@@‚€€€þÿÿÿ`Cl@cãcccãcccccccãÆÆÆÆŽÿÿÿÿ@-D¨…@ròrrròrrrrrrròääääÊÉÉÉÿÿÿÿ€GDðˆ@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@sósssósssssssóææææÎÍÍÍÿÿÿÿ@ID(‰@      @@@@‚€€€þÿÿÿ`Cl@aáaaaáaaaaaaaᆅ……ÿÿÿÿÀ)D8…@mímmmímmmmmmmíÚÚÚÚ¶µµµÿÿÿÿÀ>D؇@eåeeeåeeeeeeeåÊÊÊÊ–•••ÿÿÿÿÀ0D†@tôtttôtttttttôèèèèÒÑÑÑÿÿÿÿKD`‰@.®...®.......®\\\\º¸¸¸þÿÿÿ¡C t@€?libgdf-release-0.1.3/test/000077500000000000000000000000001223711576300153465ustar00rootroot00000000000000libgdf-release-0.1.3/test/CMakeLists.txt000066400000000000000000000034411223711576300201100ustar00rootroot00000000000000cmake_minimum_required( VERSION 2.8 ) project( gdf_tests ) if( UNIX ) add_definitions( -Wall -Wextra -pedantic -Werror -fPIC) elseif( MINGW ) add_definitions( -Wall -Wextra -pedantic -Werror ) elseif( WIN32 ) add_definitions( -W3 ) endif( UNIX ) configure_file( config-tests.h.in config-tests.h ) find_package( Boost 1.36.0 COMPONENTS date_time filesystem system program_options ) include_directories( ../libgdf/include ${Boost_INCLUDE_DIR} ${gdf_tests_BINARY_DIR} ) add_executable( testok testOK.cpp ) target_link_libraries( testok ${Boost_LIBRARIES} GDF ) add_test( NAME testok COMMAND testok ) add_executable( testfail testFail.cpp ) target_link_libraries( testfail ${Boost_LIBRARIES} GDF ) add_test( NAME testfail COMMAND testfail ) set_tests_properties( testfail PROPERTIES WILL_FAIL TRUE ) add_executable( testCreateGDF testCreateGDF.cpp ) target_link_libraries( testCreateGDF ${Boost_LIBRARIES} GDF ) add_test( NAME testCreateGDF COMMAND testCreateGDF ) add_executable( testRWConsistency testRWConsistency.cpp ) target_link_libraries( testRWConsistency ${Boost_LIBRARIES} GDF ) add_test( NAME testRWConsistency COMMAND testRWConsistency ) add_executable( testSparseSampling testSparseSampling.cpp ) target_link_libraries( testSparseSampling ${Boost_LIBRARIES} GDF ) add_test( NAME testSparseSampling COMMAND testSparseSampling ) add_executable( testHeader3 testHeader3.cpp ) target_link_libraries( testHeader3 ${Boost_LIBRARIES} GDF ) add_test( NAME testHeader3 COMMAND testHeader3 ) add_executable( testDataTypes testDataTypes.cpp ) target_link_libraries( testDataTypes ${Boost_LIBRARIES} GDF ) add_test( NAME testDataTypes COMMAND testDataTypes ) #add_custom_target( buildtests DEPENDS testCreateGDF testRWConsistency ) #add_custom_target( check COMMAND ${CMAKE_CTEST_COMMAND} DEPENDS buildtests ) libgdf-release-0.1.3/test/config-tests.h.in000066400000000000000000000002031223711576300205240ustar00rootroot00000000000000#ifndef __CONFIG_TESTS_H_INCLUDED__ #define __CONFIG_TESTS_H_INCLUDED__ #cmakedefine GDF_SOURCE_ROOT "@GDF_SOURCE_ROOT@" #endif libgdf-release-0.1.3/test/gdftest/000077500000000000000000000000001223711576300170065ustar00rootroot00000000000000libgdf-release-0.1.3/test/gdftest/gdftest.pro000066400000000000000000000031401223711576300211660ustar00rootroot00000000000000# ------------------------------------------------- # Project created by QtCreator 2010-07-28T14:59:34 # ------------------------------------------------- QT -= core \ gui TARGET = gdftest CONFIG += console CONFIG -= app_bundle TEMPLATE = app INCLUDEPATH += ../../libgdf/include QMAKE_CXXFLAGS_WARN_ON = -Wall \ -pedantic SOURCES += main.cpp \ ../../libgdf/src/Channel.cpp \ ../../libgdf/src/SignalHeader.cpp \ ../../libgdf/src/Record.cpp \ ../../libgdf/src/RecordBuffer.cpp \ ../../libgdf/src/Writer.cpp \ ../../libgdf/src/GDFHeaderAccess.cpp \ ../../libgdf/src/MainHeader.cpp \ ../../libgdf/src/EventHeader.cpp \ ../../libgdf/src/Reader.cpp \ ../../libgdf/src/Types.cpp \ ../../libgdf/src/Modifier.cpp \ ../../libgdf/src/EventConverter.cpp HEADERS += ../../libgdf/include/GDF/Types.h \ ../../libgdf/include/GDF/SignalHeader.h \ ../../libgdf/include/GDF/Exceptions.h \ ../../libgdf/include/GDF/ChannelDataBase.h \ ../../libgdf/include/GDF/ChannelData.h \ ../../libgdf/include/GDF/Channel.h \ ../../libgdf/include/GDF/HeaderItem.h \ ../../libgdf/include/GDF/Record.h \ ../../libgdf/include/GDF/GDFHeaderAccess.h \ ../../libgdf/include/GDF/TagHeader.h \ ../../libgdf/include/GDF/MainHeader.h \ ../../libgdf/include/GDF/RecordBuffer.h \ ../../libgdf/include/GDF/Writer.h \ ../../libgdf/include/GDF/tools.h \ ../../libgdf/include/GDF/EventHeader.h \ ../../libgdf/include/GDF/Reader.h \ ../../libgdf/include/GDF/Modifier.h \ ../../libgdf/include/GDF/pointerpool.h \ ../../libgdf/include/GDF/EventConverter.h libgdf-release-0.1.3/test/gdftest/main.cpp000066400000000000000000000226361223711576300204470ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #include #include #include #include #include #include using namespace std; using boost::lexical_cast; void test_guillaume( ); void test_simple( ); void test_events( ); void test_buffer( size_t M, size_t T ); void test_load( ); void test_modify( ); int main( ) { test_guillaume( ); //test_buffer( 100, 100 ); //test_simple( ); /*test_load( ); test_modify( ); test_load( ); test_events( );*/ return 0; } void test_guillaume( ) { gdf::Reader r; r.open( "/media/bci-public/clauzel/Clemens/bo8_2dCenterOut_01.gdf"); r.getEventHeader( ); r.close( ); } void test_modify( ) { gdf::Modifier m; m.open( "test.gdf" ); m.setSample( 0, 0, -1 ); m.setSample( 0, 1, -1 ); m.setSample( 1, 0, -1 ); m.setSample( 1, 1, -1 ); gdf::EventHeader *e = m.getEventHeader( ); e->addEvent( gdf::Mode1Event( ) ); e->sort( ); m.close( ); m.saveChanges( ); } void test_load( ) { gdf::Reader r; r.open( "test.gdf" ); vector s1, s2; s1.resize( 22 ); s2.resize( 11 ); r.getSignal( 0, &s1[0] ); r.getSignal( 1, &s2[0] ); gdf::EventHeader *e = r.getEventHeader( ); r.close( ); cout << s1[0]; for( size_t i=1; igetNumEvents(); i++ ) { if( e->getMode() == 1 ) { gdf::Mode1Event ev; e->getEvent( i, ev ); cout << ev.position << " - " << ev.type << endl; } else if( e->getMode() == 1 ) { gdf::Mode3Event ev; e->getEvent( i, ev ); cout << ev.position << " - " << ev.type << ", " << ev.channel << ", " << ev.duration << endl; } } } void test_simple( ) { gdf::Writer w; w.getMainHeader( ).set_recording_id( "gdf::Writer - Simple Test" ); w.getMainHeader( ).setString( "patient_id", "bluba" ); cout << w.getFirstFreeSignalIndex( ) << endl; w.createSignal( 0 ); w.getSignalHeader(0).set_label( "Signal 1" ); w.getSignalHeader(0).set_datatype( gdf::FLOAT32 ); w.getSignalHeader(0).set_samplerate( 250 ); w.getSignalHeader(0).set_digmin( -1 ); w.getSignalHeader(0).set_digmax( 1 ); w.getSignalHeader(0).set_physmin( -100 ); w.getSignalHeader(0).set_physmax( 100 ); cout << w.getFirstFreeSignalIndex( ) << endl; w.createSignal( 1 ); w.getSignalHeader(1).set_label( "Signal 2" ); w.getSignalHeader(1).set_datatype( gdf::FLOAT32 ); w.getSignalHeader(1).set_samplerate( 125 ); w.getSignalHeader(1).set_digmin( -100 ); w.getSignalHeader(1).set_digmax( 100 ); w.getSignalHeader(1).set_physmin( -1 ); w.getSignalHeader(1).set_physmax( 1 ); try { w.open( "test.gdf", gdf::writer_ev_memory | gdf::writer_overwrite ); } catch( gdf::exception::header_issues &e ) { std::list< std::string >::iterator it; if( e.warnings.size( ) > 0 ) std::cout << "Warnings: " << std::endl; for( it=e.warnings.begin(); it!=e.warnings.end(); it++ ) std::cout << " -> " << *it << std::endl; if( e.errors.size( ) > 0 ) { std::cout << "Errors: " << std::endl; for( it=e.errors.begin(); it!=e.errors.end(); it++ ) std::cout << " -> " << *it << std::endl; exit( 1 ); } } cout << "Record Duration: " << w.getMainHeader_readonly( ).get_datarecord_duration()[0] << " / " << w.getMainHeader_readonly( ).get_datarecord_duration()[1] << endl; cout << "Number of signals: " << w.getMainHeader_readonly().get_num_signals( ) << endl; std::vector f; f.push_back( 9 ); f.push_back( 8 ); f.push_back( 7 ); f.push_back( 6 ); f.push_back( 5 ); f.push_back( 4 ); f.push_back( 3 ); f.push_back( 2 ); f.push_back( 1 ); w.blitSamplesPhys( 0, f ); w.blitSamplesPhys( 0, f ); w.blitSamplesRaw( 1, f ); /*w.addSamplePhys( 0, 1 ); w.addSamplePhys( 0, 2 ); w.addSamplePhys( 0, 3 ); w.addSamplePhys( 0, 4 ); w.addSamplePhys( 0, 5 ); w.addSampleRaw( 1, 0 ); w.addSampleRaw( 1, 10 );*/ w.addEvent( 0, 0x300 ); w.addEvent( 10, 0x300 ); w.addEvent( 20, 0x300 ); w.addEvent( 30, 0x300 ); w.close( ); } void test_events( ) { gdf::Writer w; w.getMainHeader( ).set_recording_id( "gdf::Writer - Event Test" ); w.getMainHeader( ).setString( "patient_id", "bluba" ); cout << w.getFirstFreeSignalIndex( ) << endl; w.createSignal( 0 ); w.getSignalHeader(0).set_label( "Signal 1" ); w.getSignalHeader(0).set_datatype( gdf::FLOAT32 ); w.getSignalHeader(0).set_samplerate( 250 ); w.getSignalHeader(0).set_digmin( -1 ); w.getSignalHeader(0).set_digmax( 1 ); w.getSignalHeader(0).set_physmin( -100 ); w.getSignalHeader(0).set_physmax( 100 ); cout << w.getFirstFreeSignalIndex( ) << endl; w.createSignal( 1 ); w.getSignalHeader(1).set_label( "Signal 2" ); w.getSignalHeader(1).set_datatype( gdf::FLOAT32 ); w.getSignalHeader(1).set_samplerate( 125 ); w.getSignalHeader(1).set_digmin( -100 ); w.getSignalHeader(1).set_digmax( 100 ); w.getSignalHeader(1).set_physmin( -1 ); w.getSignalHeader(1).set_physmax( 1 ); try { w.open( "test_events.gdf", gdf::writer_ev_memory | gdf::writer_overwrite ); } catch( gdf::exception::header_issues &e ) { std::list< std::string >::iterator it; if( e.warnings.size( ) > 0 ) std::cout << "Warnings: " << std::endl; for( it=e.warnings.begin(); it!=e.warnings.end(); it++ ) std::cout << " -> " << *it << std::endl; if( e.errors.size( ) > 0 ) { std::cout << "Errors: " << std::endl; for( it=e.errors.begin(); it!=e.errors.end(); it++ ) std::cout << " -> " << *it << std::endl; exit( 1 ); } } cout << "Record Duration: " << w.getMainHeader_readonly( ).get_datarecord_duration()[0] << " / " << w.getMainHeader_readonly( ).get_datarecord_duration()[1] << endl; cout << "Number of signals: " << w.getMainHeader_readonly().get_num_signals( ) << endl; std::vector f; f.push_back( 9 ); f.push_back( 8 ); f.push_back( 7 ); f.push_back( 6 ); f.push_back( 5 ); f.push_back( 4 ); f.push_back( 3 ); f.push_back( 2 ); f.push_back( 1 ); w.blitSamplesPhys( 0, f ); w.blitSamplesRaw( 1, f ); w.addSamplePhys( 0, 1 ); w.addSamplePhys( 0, 2 ); w.addSamplePhys( 0, 3 ); w.addSamplePhys( 0, 4 ); w.addSamplePhys( 0, 5 ); w.addSampleRaw( 1, 0 ); w.addSampleRaw( 1, 10 ); size_t time = 0; for( int i=0; i<100; i++ ) { w.addEvent( time, 0x300 ); w.addEvent( time+900, 0x8300 ); time += 1000; } w.close( ); } void test_buffer( size_t M, size_t T ) { std::vector fs; fs.push_back( 250 ); fs.push_back( 125 ); fs.push_back( 5 ); gdf::Writer w; w.setMaxFullRecords( 0 ); w.getMainHeader( ).set_recording_id( "gdf::Writer - Simple Test" ); size_t m=0; for( size_t j=0; j(m) ); w.getSignalHeader(m).set_datatype( gdf::FLOAT32 ); w.getSignalHeader(m).set_samplerate( fs[j] ); w.getSignalHeader(m).set_digmin( -1 ); w.getSignalHeader(m).set_digmax( 1 ); w.getSignalHeader(m).set_physmin( -1 ); w.getSignalHeader(m).set_physmax( 1 ); m++; } M *= fs.size( ); w.open( "test.gdf", gdf::writer_ev_memory | gdf::writer_overwrite ); cout << "Record Duration: " << w.getMainHeader_readonly( ).get_datarecord_duration()[0] << " / " << w.getMainHeader_readonly( ).get_datarecord_duration()[1] << endl; cout << "Number of signals: " << w.getMainHeader_readonly().get_num_signals( ) << endl; size_t R = T * w.getMainHeader_readonly().get_datarecord_duration( )[1] / w.getMainHeader_readonly().get_datarecord_duration( )[0]; std::vector samples_per_channel; samples_per_channel.resize( M ); for( size_t m=0; m. // // Copyright 2010 Martin Billinger #include #include #include #include using namespace std; const string testfile = "test.gdf.tmp"; const size_t gdf_emptysize = 264; // 256 bytes main header, 8 bytes event header bool fexist( std::string filename ) { std::ifstream f( filename.c_str(), std::ios_base::in ); if( f.fail() ) return false; f.close( ); return true; } size_t fsize( std::string filename ) { struct stat filestatus; stat( filename.c_str(), &filestatus ); return filestatus.st_size; } int main( ) { try { if( fexist( testfile ) ) { cout << "Removing existing " << testfile << endl; remove( testfile.c_str() ); } cout << "Creating Writer instance." << endl; gdf::Writer w; w.setEventSamplingRate( 100 ); cout << "Opening file for writing." << endl; try { w.open( testfile ); } catch( gdf::exception::header_issues &e ) { if( e.num_errors() > 0 ) throw; cout << "Header Issues: " << endl << e.what( ) << endl; } cout << "Closing file." << endl; w.close( ); cout << "Checking if " << testfile << " exists .... "; if( !fexist( testfile ) ) { cout << "Failed." << endl; return 1; } cout << "OK" << endl; cout << "Checking file size .... "; if( fsize( testfile ) != gdf_emptysize ) { cout << "Failed." << endl; return 1; } cout << "OK" << endl; cout << "Removing " << testfile << endl; remove( testfile.c_str() ); return 0; // test succeeded } catch( std::exception &e ) { std::cout << "Caught Exception: " << e.what( ) << endl; } catch( ... ) { std::cout << "Caught Unknown Exception." << endl; } return 1; // test failed } libgdf-release-0.1.3/test/testDataTypes.cpp000066400000000000000000000051711223711576300206540ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2012 Martin Billinger #include "config-tests.h" #include #include #include #include #include using namespace std; const string reffile = string(GDF_SOURCE_ROOT)+"/sampledata/alltypes.gdf"; // 512 Bytes of text which is coded in the file const string text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed elit massa, mattis vitae pretium a, congue et nisi. Duis quis sollicitudin turpis. Proin eget erat ac nulla adipiscing gravida. Proin eget pharetra felis. In posuere risus sed leo ultricies fermentum. Etiam eu justo elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque id erat diam, eget fermentum est. Etiam in nisl vel lectus ornare porta. Aenean quam est, rutrum ac sollicitudin eu, volutpat non enim. Morbi lacus lorem cras amet."; int main( ) { try { cout << "Creating Reader instance." << endl; gdf::Reader r; cout << "Opening '" << reffile << "' for reading." << endl; r.open( reffile ); size_t M = r.getMainHeader_readonly().get_num_signals(); if( M != 10 ) throw(std::invalid_argument("ERROR -- Wrong number of channels (expected 10).")); for( size_t i=0; i( d ); cout << ch; if( ch != text[j] ) throw(std::invalid_argument("ERROR -- Wrong content.")); } cout << endl; cout << endl; } r.close( ); return 0; // test succeeded } catch( std::exception &e ) { std::cout << "Caught Exception: " << e.what( ) << endl; } catch( ... ) { std::cout << "Caught Unknown Exception." << endl; } return 1; // test failed } libgdf-release-0.1.3/test/testFail.cpp000066400000000000000000000001241223711576300176220ustar00rootroot00000000000000#include int main( ) { std::cout << "Fail" << std::endl; return 1; } libgdf-release-0.1.3/test/testHeader3.cpp000066400000000000000000000313501223711576300202270ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2013 Owen Kelly #include "config-tests.h" #include #include #include #include //#include #include #include #include using namespace std; const string testfile = "test.gdf.tmp"; const string annotfile = string(GDF_SOURCE_ROOT)+"/sampledata/Header3Tag1.gdf"; const string eventcodefile = string(GDF_SOURCE_ROOT)+"/libgdf/eventcodes.txt"; bool fexist( std::string filename ) { std::ifstream f( filename.c_str(), std::ios_base::in ); if( f.fail() ) return false; f.close( ); return true; } size_t fsize( std::string filename ) { struct stat filestatus; stat( filename.c_str(), &filestatus ); return filestatus.st_size; } bool fcompare( std::string fileA, std::string fileB ) { std::ifstream f1( fileA.c_str(), std::ios_base::in | std::ios_base::binary ); std::ifstream f2( fileB.c_str(), std::ios_base::in | std::ios_base::binary ); bool state = true; size_t ofs = 0; while( !( f1.eof() || f2.eof() ) ) { unsigned char a, b; f1 >> a; f2 >> b; if( a != b ) { cout << ofs << " : " << (int)a << " ... " << (int)b << endl; state = false; } ofs++; } return state; } int main( ) { std::vector infilelist; // a list of files on which to run tests infilelist.push_back(annotfile); string reffile; try { for(size_t file_count=0; file_count < infilelist.size(); file_count++) { reffile = infilelist[file_count]; // file to be tested in this loop iteration cout << "Creating Writer instance." << endl; gdf::Writer w; cout << "Creating Reader instance." << endl; gdf::Reader r; r.enableCache( false ); cout << "Opening '" << reffile << "' for reading." << endl; r.open( reffile ); cout << "Copying Header information." << endl; w.getMainHeader( ).copyFrom( r.getMainHeader_readonly() ); w.getHeaderAccess().setRecordDuration( r.getMainHeader_readonly().get_datarecord_duration( 0 ), r.getMainHeader_readonly().get_datarecord_duration( 1 ) ); for( size_t m=0; mgetMode() ); w.setEventSamplingRate( r.getEventHeader()->getSamplingRate() ); // Copy GDF header 3 including user-specific event description table gdf::TagHeader input_file_tag_header = r.getHeaderAccess_readonly().getTagHeader_readonly(); w.getHeaderAccess().getTagHeader().copyFrom( input_file_tag_header ); if( 0 ) { // Test fails on this branch (because new events are put in the // file so input and output files are not the same), however // it is an instructive code branch to walk through. /// Demonstration of event description storage. // /// Workflow 1: Create event description tables from an aritrary collection of strings. // Each new string encountered is assigned a unique eventType beginning with eventType==1. gdf::EventDescriptor free_text_annotator; gdf::uint16 eventType; // // Phase 1 Option 1. Create event description tables from an aritrary collection of strings. // Each new string encountered is assigned a unique eventType beginning with eventType==1. free_text_annotator.clear(); eventType = free_text_annotator.addUserSpecificDesc("yellow"); // 1 eventType = free_text_annotator.addUserSpecificDesc("green"); // 2 eventType = free_text_annotator.addUserSpecificDesc("blue"); // 3 eventType = free_text_annotator.addUserSpecificDesc("yellow"); // 1. If same string is encountered, the existing eventType is returned. cout << "Text 'yellow' was assigned event #" << eventType << "." << endl; free_text_annotator.loadEventDescriptions(eventcodefile); // // Phase X. At any time after Phase 1, use the table to get Event TYP's or event description strings eventType = free_text_annotator.getUserDescEventType("blue"); // 3 // eventType = free_text_annotator.getUserDescEventType("turquoise"); // error, turquoise is not in the table. std::string a_description = free_text_annotator.getEventDesc(2); // user-specified descriptions a_description = free_text_annotator.getEventDesc(257); // standard description a_description = free_text_annotator.getEventDesc(33); // unknown user-specified description a_description = free_text_annotator.getEventDesc(4000); // unknown description // // Phase 1 Option 2: Associate specific event codes to a collection of strings. free_text_annotator.clear(); free_text_annotator.loadEventDescriptions(eventcodefile); free_text_annotator.setEventDesc(33,"yellow"); // eventType = free_text_annotator.setEventDesc(34,"yellow"); // Unpredicatable result, don't do this. free_text_annotator.setEventDesc(4,"green"); free_text_annotator.setEventDesc(17,"blue"); free_text_annotator.copyEventDescToUserDesc(); // // Phase X. At any time after Phase 1, use the table to get Event TYP's or event description strings eventType = free_text_annotator.getUserDescEventType("blue"); a_description = free_text_annotator.getEventDesc(4); a_description = free_text_annotator.getEventDesc(257); a_description = free_text_annotator.getEventDesc(33); // // Phase 2. Store the tables into header before opening file for write. w.getHeaderAccess().getTagHeader().setEventDescriptor(free_text_annotator); w.getHeaderAccess().getTagHeader().finalize(); // // Phase 3. Open file for write. cout << "Opening '" << testfile << "' for annotation demonstration." << endl; w.open( testfile, gdf::writer_ev_memory | gdf::writer_overwrite ); // // Phase 4. Create events at specific times in the file. Use existing strings. switch( w.getHeaderAccess().getEventHeader().getMode() ) { case 1: { gdf::Mode1Event ev; w.makeFreeTextEvent( 3.14159, "green", free_text_annotator, ev ); w.addEvent( ev ); w.makeFreeTextEvent( 43.9, "yellow", free_text_annotator, ev ); w.addEvent( ev ); w.makeFreeTextEvent( 19.1, "green", free_text_annotator, ev ); w.addEvent( ev ); } break; case 3: { gdf::Mode3Event ev; w.makeFreeTextEvent( 3.14159, "green", free_text_annotator, ev ); ev.channel = 1; // for example, the text could be associated to any specific channel w.addEvent( ev ); w.makeFreeTextEvent( 43.9, "yellow", free_text_annotator, ev ); ev.channel = 2; w.addEvent( ev ); w.makeFreeTextEvent( 19.1, "green", free_text_annotator, ev ); ev.channel = 3; w.addEvent( ev ); } break; default: break; } // Phase 5. Continue with other file writing tasks, including w.makeFreeTextEvent/w.addEvent. // Events are buffered and written at w.close(). // Phase 6. w.close(). } else { cout << "Opening '" << testfile << "' for writing." << endl; w.open( testfile, gdf::writer_ev_memory | gdf::writer_overwrite ); } cout << "Copying data .... "; size_t num_recs = boost::numeric_cast( r.getMainHeader_readonly( ).get_num_datarecords( ) ); for( size_t n=0; ngetNumEvents(); gdf::EventDescriptor & ev_descriptor_from_input = input_file_tag_header.getEventDescriptor(); switch( ev_header->getMode() ) { default: throw(std::runtime_error("ERROR -- Invalid event mode!")); case 1: { gdf::Mode1Event ev, ev_out; for(unsigned int m = 0; m < num_events; m++) { ev_header->getEvent(m, ev); if( ev.type == 0 ) { throw(std::runtime_error("ERROR -- event TYP 0")); } else if( ev.type < 256 ) { // case: user-specified event description // Here we could do simply w.addEvent(ev); and the event // with user-specified text would be written successfully to output. // However, for the sake of demonstration and testing, we will unpack // the event here and re-create it before storing it. // unpacking steps: std::string description_of_this_event = ev_descriptor_from_input.getEventDesc(ev.type); double ev_time_sec = r.getEventHeader()->posToSec( ev.position ); cout << description_of_this_event << endl; // recreating the free text event from time and string: w.makeFreeTextEvent(ev_time_sec, description_of_this_event, ev_descriptor_from_input, ev_out); w.addEvent(ev_out); } else { // case: standard event description from eventcodes.txt std::string description_of_this_event = ev_descriptor_from_input.getEventDesc(ev.type); cout << description_of_this_event << endl; w.addEvent(ev); } } } break; case 3: { gdf::Mode3Event ev; // Copy all event from source file to target file. // Mode 1 and 3 events are copied. for(unsigned int mm = 0; mm < num_events; mm++) { ev_header->getEvent(mm, ev); w.addEvent(ev); } } break; } cout << "OK" << endl; w.close( ); cout << "Comparing files .... "; if( !fcompare( reffile, testfile ) ) { cout << "Failed." << endl; return 1; } cout << "OK" << endl; cout << "Removing " << testfile << endl << endl; remove( testfile.c_str() ); } return 0; // test succeeded } catch( std::exception &e ) { std::cout << "Caught Exception: " << e.what( ) << endl; } catch( ... ) { std::cout << "Caught Unknown Exception." << endl; } return 1; // test failed } libgdf-release-0.1.3/test/testOK.cpp000066400000000000000000000001221223711576300172560ustar00rootroot00000000000000#include int main( ) { std::cout << "OK" << std::endl; return 0; } libgdf-release-0.1.3/test/testRWConsistency.cpp000066400000000000000000000157431223711576300215360ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010, 2013 Martin Billinger, Owen Kelly #include "config-tests.h" #include #include #include #include //#include #include #include #include using namespace std; const string testfile = "test.gdf.tmp"; const string reffile0 = string(GDF_SOURCE_ROOT)+"/sampledata/MI128.gdf"; // File NEQSuint32Ch678 uses Non-Equidistant sampling. // Channel 6, channel7 and channel 8 use NEQS. NEQS values are stored as Uint32. const string neqsfile = string(GDF_SOURCE_ROOT)+"/sampledata/NEQSuint32Ch678.GDF"; const string annotfile = string(GDF_SOURCE_ROOT)+"/sampledata/Header3Tag1.gdf"; const string alltypesfile = string(GDF_SOURCE_ROOT)+"/sampledata/alltypes.gdf"; const string eventcodefile = string(GDF_SOURCE_ROOT)+"/libgdf/eventcodes.txt"; bool fexist( std::string filename ) { std::ifstream f( filename.c_str(), std::ios_base::in ); if( f.fail() ) return false; f.close( ); return true; } size_t fsize( std::string filename ) { struct stat filestatus; stat( filename.c_str(), &filestatus ); return filestatus.st_size; } bool fcompare( std::string fileA, std::string fileB ) { std::ifstream f1( fileA.c_str(), std::ios_base::in | std::ios_base::binary ); std::ifstream f2( fileB.c_str(), std::ios_base::in | std::ios_base::binary ); bool state = true; size_t ofs = 0; while( !( f1.eof() || f2.eof() ) ) { unsigned char a, b; f1 >> a; f2 >> b; if( a != b ) { cout << ofs << " : " << (int)a << " ... " << (int)b << endl; state = false; } ofs++; } return state; } int main( ) { std::vector infilelist; // a list of files on which to run tests infilelist.push_back(annotfile); infilelist.push_back(alltypesfile); infilelist.push_back(reffile0); infilelist.push_back(neqsfile); string reffile; try { for(size_t file_count=0; file_count < infilelist.size(); file_count++) { reffile = infilelist[file_count]; // file to be tested in this loop iteration cout << "Creating Writer instance." << endl; gdf::Writer w; cout << "Creating Reader instance." << endl; gdf::Reader r; r.enableCache( false ); cout << "Opening '" << reffile << "' for reading." << endl; r.open( reffile ); cout << "Copying Header information." << endl; w.getMainHeader( ).copyFrom( r.getMainHeader_readonly() ); w.getHeaderAccess().setRecordDuration( r.getMainHeader_readonly().get_datarecord_duration( 0 ), r.getMainHeader_readonly().get_datarecord_duration( 1 ) ); for( size_t m=0; mgetMode() ); w.setEventSamplingRate( r.getEventHeader()->getSamplingRate() ); // Copy GDF header 3 including user-specific event description table gdf::TagHeader ath = r.getHeaderAccess_readonly().getTagHeader_readonly(); w.getHeaderAccess().getTagHeader().copyFrom( ath ); cout << "Opening '" << testfile << "' for writing." << endl; w.open( testfile, gdf::writer_ev_memory | gdf::writer_overwrite ); cout << "Copying data .... "; size_t num_recs = boost::numeric_cast( r.getMainHeader_readonly( ).get_num_datarecords( ) ); for( size_t n=0; ngetNumEvents(); switch( ev_header->getMode() ) { default: throw(std::runtime_error("ERROR -- Invalid event mode!")); case 1: { gdf::Mode1Event ev; for(unsigned int m = 0; m < num_events; m++) { ev_header->getEvent(m, ev); w.addEvent(ev); } } break; case 3: { gdf::Mode3Event ev; double sample_physical_value; double sample_time_sec; // Copy all event from source file to target file. // Mode 1 and 3 events are copied. // Sparse samples are extracted to (time,phys) then stored again. for(unsigned int mm = 0; mm < num_events; mm++) { ev_header->getEvent(mm, ev); if( ev.type != 0x7fff ) { w.addEvent(ev); } else { r.eventToSample(sample_time_sec, sample_physical_value, ev); // At this point we have successfully decoded a sparse sample // (sample_time_sec, sample_physical_value) . w.sampleToEvent( sample_time_sec, sample_physical_value, ev.channel, ev ); // At this point we have successfully encoded a sparse sample into an event. // Now write the event to file. w.addEvent( ev ); } } } break; } cout << "OK" << endl; w.close( ); cout << "Comparing files .... "; if( !fcompare( reffile, testfile ) ) { cout << "Failed." << endl; return 1; } cout << "OK" << endl; cout << "Removing " << testfile << endl << endl; remove( testfile.c_str() ); } return 0; // test succeeded } catch( std::exception &e ) { std::cout << "Caught Exception: " << e.what( ) << endl; } catch( ... ) { std::cout << "Caught Unknown Exception." << endl; } return 1; // test failed } libgdf-release-0.1.3/test/testSparseSampling.cpp000066400000000000000000000203571223711576300217110ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2013 Owen Kelly #include "config-tests.h" #include #include #include #include //#include #include #include #include using namespace std; const string testfile = "test.gdf.tmp"; //const string reffile0 = string(GDF_SOURCE_ROOT)+"/sampledata/MI128.gdf"; // File NEQSuint32Ch678 uses Non-Equidistant sampling. // Channel 6, channel7 and channel 8 use NEQS. NEQS values are stored as Uint32. const string neqsfile = string(GDF_SOURCE_ROOT)+"/sampledata/NEQSuint32Ch678.GDF"; bool fexist( std::string filename ) { std::ifstream f( filename.c_str(), std::ios_base::in ); if( f.fail() ) return false; f.close( ); return true; } size_t fsize( std::string filename ) { struct stat filestatus; stat( filename.c_str(), &filestatus ); return filestatus.st_size; } bool fcompare( std::string fileA, std::string fileB ) { std::ifstream f1( fileA.c_str(), std::ios_base::in | std::ios_base::binary ); std::ifstream f2( fileB.c_str(), std::ios_base::in | std::ios_base::binary ); bool state = true; size_t ofs = 0; while( !( f1.eof() || f2.eof() ) ) { unsigned char a, b; f1 >> a; f2 >> b; if( a != b ) { cout << ofs << " : " << (int)a << " ... " << (int)b << endl; state = false; } ofs++; } return state; } int main( ) { std::vector infilelist; // a list of files on which to run tests //infilelist.push_back(reffile0); infilelist.push_back(neqsfile); string reffile; try { for(size_t file_count=0; file_count < infilelist.size(); file_count++) { reffile = infilelist[file_count]; // file to be tested in this loop iteration cout << "Creating Writer instance." << endl; gdf::Writer w; cout << "Creating Reader instance." << endl; gdf::Reader r; r.enableCache( false ); cout << "Opening '" << reffile << "' for reading." << endl; r.open( reffile ); cout << "Copying Header information." << endl; w.getMainHeader( ).copyFrom( r.getMainHeader_readonly() ); w.getHeaderAccess().setRecordDuration( r.getMainHeader_readonly().get_datarecord_duration( 0 ), r.getMainHeader_readonly().get_datarecord_duration( 1 ) ); for( size_t m=0; mgetMode() ); w.setEventSamplingRate( r.getEventHeader()->getSamplingRate() ); // Copy GDF header 3 including user-specific event description table gdf::TagHeader ath = r.getHeaderAccess_readonly().getTagHeader_readonly(); w.getHeaderAccess().getTagHeader().copyFrom( ath ); cout << "Opening '" << testfile << "' for writing." << endl; w.open( testfile, gdf::writer_ev_memory | gdf::writer_overwrite ); cout << "Copying data .... "; size_t num_recs = boost::numeric_cast( r.getMainHeader_readonly( ).get_num_datarecords( ) ); for( size_t n=0; ngetNumEvents(); switch( ev_header->getMode() ) { default: throw(std::runtime_error("ERROR -- Invalid event mode!")); case 1: { gdf::Mode1Event ev; for(unsigned int m = 0; m < num_events; m++) { ev_header->getEvent(m, ev); w.addEvent(ev); } } break; case 3: { gdf::Mode3Event ev; double sample_physical_value; double sample_time_sec; /// NEQS demonstration of getSparseSamples // For the NEQS sample file, what follows is a simple // demonstration of how to get the samples. if (reffile.compare(neqsfile)==0) { /// Demonstrate getting all the events from channel 6. cout << endl << " reading non-equidistant samples (NEQS) ... "; int index_of_a_sparse_channel = 6; std::vector ch6samples = ev_header->getSparseSamples (index_of_a_sparse_channel); // If the channel has enough events, let's look at the third event (for example). size_t event_index_to_get = 3; if (ch6samples.size() > event_index_to_get) { // Extract a specific sample from the event table into a local event object, ev. ev_header->getEvent(ch6samples[event_index_to_get], ev); // Convert ev to time and physical values. r.eventToSample(sample_time_sec, sample_physical_value, ev); // sample_time_sec = time of 3rd sample of channel 6 // sample_physical_value = value of 3rd sample of channel 6 } cout << " OK" << endl; } /// end of getSparseSamples demonstration // Copy all event from source file to target file. // Mode 1 and 3 events are copied. // Sparse samples are extracted to (time,phys) then stored again. cout << " writing non-equidistant samples "; for(unsigned int mm = 0; mm < num_events; mm++) { ev_header->getEvent(mm, ev); if( ev.type != 0x7fff ) { w.addEvent(ev); } else { cout << "."; // a dot is written for each NEQS sample stored to file r.eventToSample(sample_time_sec, sample_physical_value, ev); // At this point we have successfully decoded a sparse sample // (sample_time_sec, sample_physical_value) . w.sampleToEvent( sample_time_sec, sample_physical_value, ev.channel, ev ); // At this point we have successfully encoded a sparse sample into an event. // Now write the event to file. w.addEvent( ev ); } } } break; } cout << endl << "OK" << endl; w.close( ); cout << "Comparing files .... "; if( !fcompare( reffile, testfile ) ) { cout << "Failed." << endl; return 1; } cout << "OK" << endl; cout << "Removing " << testfile << endl << endl; remove( testfile.c_str() ); } return 0; // test succeeded } catch( std::exception &e ) { std::cout << "Caught Exception: " << e.what( ) << endl; } catch( ... ) { std::cout << "Caught Unknown Exception." << endl; } return 1; // test failed } libgdf-release-0.1.3/tools/000077500000000000000000000000001223711576300155275ustar00rootroot00000000000000libgdf-release-0.1.3/tools/CMakeLists.txt000066400000000000000000000000401223711576300202610ustar00rootroot00000000000000add_subdirectory( gdf_merger ) libgdf-release-0.1.3/tools/gdf_merger/000077500000000000000000000000001223711576300176305ustar00rootroot00000000000000libgdf-release-0.1.3/tools/gdf_merger/CMakeLists.txt000066400000000000000000000015211223711576300223670ustar00rootroot00000000000000cmake_minimum_required( VERSION 2.8 ) project( gdf_merger ) if( UNIX ) add_definitions( -Wall -Wextra -pedantic -Werror -fPIC) elseif( MINGW ) add_definitions( -Wall -Wextra -pedantic -Werror ) elseif( WIN32 ) add_definitions( -W3 ) endif( UNIX ) if( WIN32 ) set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON) set(Boost_USE_STATIC_RUNTIME OFF) endif( WIN32 ) find_package( Boost COMPONENTS program_options filesystem system ) include_directories( ../../libgdf/include ${Boost_INCLUDE_DIR} ) set( HEADERS gdfmerger.h ) set( SOURCES gdfmerger.cpp main.cpp ) #message( ${Boost_LIBRARIES} ) add_executable( gdf_merger ${HEADERS} ${SOURCES} ) target_link_libraries( gdf_merger ${Boost_LIBRARIES} GDF) INSTALL( TARGETS gdf_merger RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) libgdf-release-0.1.3/tools/gdf_merger/gdfmerger.cpp000066400000000000000000000132121223711576300222750ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Martin Billinger #include "gdfmerger.h" #include #include using std::vector; using std::string; using std::cerr; using std::cout; using std::endl; namespace fs = boost::filesystem; //--------------------------------------------------------------------------------------- gdfMerger::gdfMerger(const vector& inputs, const string& output) : input_files_(inputs), output_file_(output), event_offset_(0) { for(unsigned int n = 0; n < inputs.size(); n++) if(!fs::exists(inputs[n]) ) throw(std::invalid_argument("Error - file not found: " + inputs[n])); } //--------------------------------------------------------------------------------------- gdfMerger::~gdfMerger() { } //--------------------------------------------------------------------------------------- void gdfMerger::merge() { reader_.open(input_files_[0]); writer_.getMainHeader( ).copyFrom( reader_.getMainHeader_readonly() ); writer_.getHeaderAccess().setRecordDuration( reader_.getMainHeader_readonly().get_datarecord_duration( 0 ), reader_.getMainHeader_readonly().get_datarecord_duration( 1 ) ); for( size_t m = 0; m < writer_.getMainHeader_readonly().get_num_signals(); m++ ) { writer_.createSignal( m, true ); writer_.getSignalHeader( m ).copyFrom( reader_.getSignalHeader_readonly( m ) ); //writer_.getSignalHeader( m ).set_samplerate( reader_.getSignalHeader_readonly( m ).get_samplerate() ); } gdf::EventHeader* ev_header = reader_.getEventHeader(); gdf::float32 fs_events = ev_header->getSamplingRate(); writer_.setEventMode( ev_header->getMode() ); writer_.setEventSamplingRate(fs_events); reader_.close( ); writer_.setMaxFullRecords( 0 ); writer_.open( output_file_, gdf::writer_ev_memory | gdf::writer_overwrite ); std::cout << "Record Duration : " << writer_.getMainHeader_readonly( ).get_datarecord_duration(0) << " : " << writer_.getMainHeader_readonly( ).get_datarecord_duration(1) << std::endl; std::cout << "Sampling Rate : " << writer_.getSignalHeader_readonly( 1 ).get_samplerate() << std::endl; std::cout << "Samples per Record: " << writer_.getSignalHeader_readonly( 1 ).get_samples_per_record() << std::endl; for(unsigned int n = 0; n < input_files_.size(); n++) { reader_.enableCache( false ); reader_.open(input_files_[n]); cout << " -- merging: " << input_files_[n]; cout << " Warning: No header checks performed yet!" << endl; size_t num_recs = boost::numeric_cast( reader_.getMainHeader_readonly( ).get_num_datarecords( ) ); std::cout << " Number of records: " << num_recs << std::endl; for( size_t r = 0; r< num_recs; r++ ) //for( size_t r = 0; r< 1; r++ ) { //std::cout << r << std::endl; //gdf::Record *rec = reader_.getRecordPtr( r ); //writer_.writeRecordDirect( rec ); gdf::Record *rec = writer_.acquireRecord( ); reader_.readRecord( r, rec ); writer_.addRecord( rec ); /*for( size_t i=0; i< rec->getNumChannels( ); i++ ) { gdf::Channel *ch = rec->getChannel( i ); std::cout << ch->getSize( ) << " "; } std::cout << std::endl;*/ /*for( size_t c = 0; c < reader_.getMainHeader_readonly().get_num_signals(); c++ ) { for( size_t n = 0; n < reader_.getSignalHeader_readonly(c).get_samples_per_record(); n++ ) { double v = rec->getChannel(c)->getSamplePhys(n); writer_.addSamplePhys( c, v ); } }*/ } ev_header = reader_.getEventHeader(); unsigned int num_events = ev_header->getNumEvents(); if(ev_header->getSamplingRate() != fs_events) throw(std::runtime_error("ERROR -- Event sampling rates differ!")); switch( ev_header->getMode() ) { default: throw(std::runtime_error("ERROR -- Invalid event mode!")); case 1: { gdf::Mode1Event ev; for(unsigned int m = 0; m < num_events; m++) { ev_header->getEvent(m, ev); ev.position += event_offset_; writer_.addEvent(ev); } } break; case 3: { gdf::Mode3Event ev; for(unsigned int m = 0; m < num_events; m++) { ev_header->getEvent(m, ev); ev.position += event_offset_; writer_.addEvent(ev); } } break; } double recdur_num = boost::numeric_cast( reader_.getMainHeader_readonly().get_datarecord_duration( 0 ) ); double recdur_den = boost::numeric_cast( reader_.getMainHeader_readonly().get_datarecord_duration( 1 ) ); double numrec = boost::numeric_cast( reader_.getMainHeader_readonly().get_num_datarecords( ) ); event_offset_ += boost::numeric_cast( numrec * recdur_num * (fs_events / recdur_den) ); reader_.close(); } writer_.close(); } //--------------------------------------------------------------------------------------- libgdf-release-0.1.3/tools/gdf_merger/gdfmerger.h000066400000000000000000000027521223711576300217510ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Christian Breitwieser #ifndef GDFMERGER_H #define GDFMERGER_H //--------------------------------------------------------------------------------------- #include #include #include #include "GDF/Reader.h" #include "GDF/Writer.h" //--------------------------------------------------------------------------------------- class gdfMerger { public: gdfMerger(const std::vector& inputs, const std::string&); ~gdfMerger(); void merge(); private: const std::vector& input_files_; const std::string& output_file_; gdf::Reader reader_; gdf::Writer writer_; gdf::uint32 event_offset_; }; //--------------------------------------------------------------------------------------- #endif // GDFMERGER_H libgdf-release-0.1.3/tools/gdf_merger/gdfmerger.pro000066400000000000000000000013421223711576300223140ustar00rootroot00000000000000 # ----------------------------------------------------------------------------- QT -= core \ gui TARGET = gdf_merger CONFIG += console CONFIG -= app_bundle TEMPLATE = app INCLUDEPATH += ../../libgdf/include DEPENDPATH += . ../../libgdf/include QMAKE_CXXFLAGS_WARN_ON = -Wall \ -pedantic # ----------------------------------------------------------------------------- SOURCES += main.cpp \ gdfmerger.cpp HEADERS += gdfmerger.h # ----------------------------------------------------------------------------- LIBS += -lboost_filesystem \ -lboost_system \ -lboost_program_options \ -L../../libgdf/lib -lGDF # ----------------------------------------------------------------------------- libgdf-release-0.1.3/tools/gdf_merger/main.cpp000066400000000000000000000063151223711576300212650ustar00rootroot00000000000000// // This file is part of libGDF. // // libGDF 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 3 of // the License, or (at your option) any later version. // // libGDF is distributed in the hope that 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 libGDF. If not, see . // // Copyright 2010 Christian Breitwieser //--------------------------------------------------------------------------------------- #include "gdfmerger.h" #include #include #include #include #include namespace po = boost::program_options; using std::vector; using std::string; using std::cerr; using std::cout; using std::endl; using std::ostream; using std::ostream_iterator; //--------------------------------------------------------------------------------------- template ostream& operator<<(ostream& os, const vector& v) { std::copy(v.begin(), v.end(), ostream_iterator(cout, " ")); return os; } //--------------------------------------------------------------------------------------- int main(int argc, char* argv[]) { try { po::options_description desc("Allowed options"); desc.add_options() ("help,h", "produce help message") ("input-files,i", po::value< vector >()->composing() , "input files") ("output-file,o", po::value< vector >() , "output file") ; po::positional_options_description p; p.add("input-files", -1); po::variables_map vm; po::store(po::command_line_parser(argc, argv).options(desc).positional(p).run(), vm); po::notify(vm); if(vm.count("help") || vm.size() == 0) { cout << "Usage: gdf_merger [options]\n"; cout << desc; return 0; } if(!vm.count("output-file")) { cerr << "Error -- No output file given!" << endl; return(1); } if(vm.count("output-file") > 1) { cerr << "Error -- More than 1 output file given!" << endl; return(1); } if(!vm.count("input-files")) { cerr << "Error -- No input file(s) given!" << endl; return(1); } cout << std::left; cout << "Merging gdf files ... " << endl; cout.width(23); cout << " -- Input files are: " << vm["input-files"].as< vector >() << endl; cout.width(23); cout << " -- Output file is: " << vm["output-file"].as< vector >() << endl; gdfMerger merger(vm["input-files"].as< vector >(), vm["output-file"].as< vector >()[0]); merger.merge(); cout << " ... done." << endl; } catch(std::exception& e) { cerr << "error: " << e.what() << "\n"; return 1; } catch(...) { cerr << "Exception of unknown type!\n"; } return(0); } //---------------------------------------------------------------------------------------