sockets-1.5.0/0000755000000000000000000000000015123475646010133 5ustar00sockets-1.5.0/.hgignore0000644000000000000000000000112415123475646011734 0ustar00syntax: regexp # The recurrent (^|/) idiom in the regexps below should be understood # to mean "at any directory" while the ^ idiom means "from the # project's top-level directory". (^|/).*\.dvi$ (^|/).*\.pdf$ (^|/).*\.o$ (^|/).*\.oct$ (^|/).*\.octlink$ (^|/)octave-core$ (^|/).*\.tar\.gz$ (^|/)aclocal\.m4$ (^|/)configure$ (^|/)autom4te\.cache($|/) # e.g. doc/faq/OctaveFAQ.info # doc/interpreter/octave.info-4 ^doc/.*\.info(-\d)?$ ^doc/\w*/stamp-vti$ ^doc/\w*/version\.texi$ # Emacs tools create these (^|/)TAGS$ (^|/)semantic.cache$ # Other text editors often create these (^|/)~.* sockets-1.5.0/.hgtags0000644000000000000000000000042315123475646011410 0ustar00e3ab881bc3deb8cab354a5c9616375cbbbb66e94 release-1.2.0 d6324ce97875dde4d634d1230520f662169ef953 release-1.2.1 93924550f4efb84f526c247229f82dcd94ad078d release-1.3.0 1a989fd9191df2e0ca4325c043d4890b97e324ac release-1.4.0 549395d486845f25470d49a3af4c3e56208b1806 release-1.4.1 sockets-1.5.0/COPYING0000644000000000000000000010451315123475646011172 0ustar00 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 . sockets-1.5.0/DESCRIPTION0000644000000000000000000000071715123475646011646 0ustar00Name: sockets Version: 1.5.0 Date: 2025-12-26 Author: John Swensen Maintainer: Octave-Forge community Title: Sockets Description: Socket functions for networking from within octave. Categories: Sockets Depends: octave (>= 3.6.0) License: GPLv3+ Url: https://gnu-octave.github.io/octave-sockets/ Repository: https://github.com/gnu-octave/octave-sockets/ Tracker: https://github.com/gnu-octave/octave-sockets/issues sockets-1.5.0/INDEX0000644000000000000000000000145715123475646010734 0ustar00sockets >> Sockets Sockets functions socket bind connect disconnect accept select send sendto recv recvfrom gethostbyname listen getsockopt setsockopt shutdown getaddrinfo Socket constants #! Domain family constants AF_LOCAL AF_UNIX AF_INET AF_APPLETALK AF_UNSPEC #! Socket Type constants SOCK_STREAM SOCK_DGRAM SOCK_SEQPACKET SOCK_RAW SOCK_RDM #! Send/Recv Flag constants MSG_PEEK MSG_DONTWAIT MSG_WAITALL #! Shutdown how constants SHUT_RD SHUT_RDWR SHUT_WR #! Set/getsockopt constants SOL_SOCKET SO_KEEPALIVE SO_REUSEADDR SO_DONTROUTE SO_BROADCAST #! Socket protocol constants IPPROTO_IP IPPROTO_ICMP IPPROTO_TCP IPPROTO_UDP #! Socket getaddrinfo flag constants AI_PASSIVE AI_NUMERICSERV AI_V4MAPPED AI_ADDRCONFIG AI_ALL sockets-1.5.0/Makefile0000644000000000000000000003114015123475646011572 0ustar00## Copyright 2015-2016 Carnë Draug ## Copyright 2015-2016 Oliver Heimlich ## Copyright 2017 Julien Bect ## Copyright 2017 Olaf Till ## Copyright 2020 John Donoghue ## ## Copying and distribution of this file, with or without modification, ## are permitted in any medium without royalty provided the copyright ## notice and this notice are preserved. This file is offered as-is, ## without any warranty. TOPDIR := $(shell pwd) ## Some basic tools (can be overriden using environment variables) SED ?= sed TAR ?= tar GREP ?= grep CUT ?= cut TR ?= tr TEXI2PDF ?= texi2pdf -q MAKEINFO ?= makeinfo MAKEINFO_HTML_OPTIONS := --no-headers --set-customization-variable 'COPIABLE_LINKS 0' --set-customization-variable 'COPIABLE_ANCHORS 0' --no-split # work out a possible help generator ifeq ($(strip $(QHELPGENERATOR)),) ifneq ($(shell qhelpgenerator-qt5 -v 2>/dev/null),) QHELPGENERATOR = qhelpgenerator-qt5 else ifneq ($(shell qcollectiongenerator-qt5 -v 2>/dev/null),) QHELPGENERATOR = qcollectiongenerator-qt5 #else ifneq ($(shell qhelpgenerator -qt5 -v 2>/dev/null),) # v4 doesnt work # QHELPGENERATOR = qhelpgenerator -qt5 else ifneq ($(shell qcollectiongenerator -qt5 -v 2>/dev/null),) QHELPGENERATOR = qcollectiongenerator -qt5 else QHELPGENERATOR = true endif endif ## Note the use of ':=' (immediate set) and not just '=' (lazy set). ## http://stackoverflow.com/a/448939/1609556 package := $(shell $(GREP) "^Name: " DESCRIPTION | $(CUT) -f2 -d" " | \ $(TR) '[:upper:]' '[:lower:]') version := $(shell $(GREP) "^Version: " DESCRIPTION | $(CUT) -f2 -d" ") pkg_date := $(shell $(GREP) "^Date: " DESCRIPTION | $(CUT) -f2 -d" ") ## These are the paths that will be created for the releases. target_dir := target release_dir := $(target_dir)/$(package)-$(version) release_tarball := $(target_dir)/$(package)-$(version).tar.gz html_dir := $(target_dir)/$(package)-html html_tarball := $(target_dir)/$(package)-html.tar.gz ## Using $(realpath ...) avoids problems with symlinks due to bug ## #50994 in Octaves scripts/pkg/private/install.m. But at least the ## release directory above is needed in the relative form, for 'git ## archive --format=tar --prefix=$(release_dir). real_target_dir := $(realpath .)/$(target_dir) installation_dir := $(real_target_dir)/.installation package_list := $(installation_dir)/.octave_packages install_stamp := $(installation_dir)/.install_stamp ## These can be set by environment variables which allow to easily ## test with different Octave versions. ifndef OCTAVE OCTAVE := octave endif OCTAVE := $(OCTAVE) --no-gui --silent --norc MKOCTFILE ?= mkoctfile ## Command used to set permissions before creating tarballs FIX_PERMISSIONS ?= chmod -R a+rX,u+w,go-w,ug-s ## Detect which VCS is used vcs := $(if $(wildcard .hg),hg,$(if $(wildcard .git),git,unknown)) ifeq ($(vcs),hg) release_dir_dep := .hg/dirstate HG := hg HG_CMD = $(HG) --config alias.$(1)=$(1) --config defaults.$(1)= $(1) HG_ID := $(shell $(call HG_CMD,identify) --id | sed -e 's/+//' ) REPO_TIMESTAMP := $(firstword $(shell $(call HG_CMD,log) --rev $(HG_ID) --template '{date|hgdate}')) endif ifeq ($(vcs),git) release_dir_dep := .git/index GIT := git REPO_TIMESTAMP := $(firstword $(shell $(GIT) log -n1 --date=unix --format="%ad")) endif TAR_REPRODUCIBLE_OPTIONS := --sort=name --mtime="@$(REPO_TIMESTAMP)" --owner=0 --group=0 --numeric-owner TAR_OPTIONS := --format=ustar $(TAR_REPRODUCIBLE_OPTIONS) ## .PHONY indicates targets that are not filenames ## (https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html) .PHONY: help ## make will display the command before runnning them. Use @command ## to not display it (makes specially sense for echo). help: @echo "Targets:" @echo " dist - Create $(release_tarball) for release." @echo " html - Create $(html_tarball) for release." @echo " release - Create both of the above and show md5sums." @echo " install - Install the package in $(installation_dir), where it is not visible in a normal Octave session." @echo " check - Execute package tests." @echo " doctest - Test the help texts with the doctest package." @echo " run - Run Octave with the package installed in $(installation_dir) in the path." @echo " clean - Remove everything made with this Makefile." ## ## Recipes for release tarballs (package + html) ## .PHONY: release dist html clean-tarballs clean-unpacked-release ## To make a release, build the distribution and html tarballs. release: dist html md5sum $(release_tarball) $(html_tarball) @echo "Upload @ https://sourceforge.net/p/octave/package-releases/new/" @echo " and note the changeset the release corresponds to" ## dist and html targets are only PHONY/alias targets to the release ## and html tarballs. dist: $(release_tarball) html: $(html_tarball) ## An implicit rule with a recipe to build the tarballs correctly. %.tar.gz: % $(TAR) -cf - $(TAR_OPTIONS) -C "$(target_dir)/" "$(notdir $<)" | gzip -9n > "$@" clean-tarballs: @echo "## Cleaning release tarballs (package + html)..." -$(RM) $(release_tarball) $(html_tarball) @echo ## doc build rules .PHONY: docs docs: doc/$(package).pdf doc/$(package).info doc/$(package).qhc doc/$(package).html .PHONY: clean-docs clean-docs: $(RM) -f doc/$(package).html $(RM) -f doc/$(package).qhc $(RM) -f doc/$(package).qch $(RM) -f doc/$(package).info $(RM) -f doc/$(package).pdf $(RM) -f doc/functions.texi $(RM) -f doc/version.texi $(RM) -f doc/docs.cpp doc/version.texi: $(release_dir_dep) @echo Generating $@ @echo "@c autogenerated from Makefile" > $@ @echo "@set VERSION $(version)" >> $@ @echo "@set PACKAGE $(package)" >> $@ @echo "@set DATE $(pkg_date)" >> $@ doc/$(package).pdf: doc/$(package).texi doc/functions.texi doc/version.texi cd doc && SOURCE_DATE_EPOCH=$(REPO_TIMESTAMP) $(TEXI2PDF) $(package).texi # remove temp files cd doc && $(RM) -f $(package).aux $(package).cp $(package).cps $(package).fn $(package).fns $(package).log $(package).toc doc/$(package).html: doc/$(package).texi doc/functions.texi doc/version.texi cd doc && SOURCE_DATE_EPOCH=$(REPO_TIMESTAMP) $(MAKEINFO) --html --css-ref=$(package).css $(MAKEINFO_HTML_OPTIONS) $(package).texi doc/$(package).qhc: doc/$(package).html # try also create qch file if can cd doc && ./mkqhcp.py $(package) && $(QHELPGENERATOR) $(package).qhcp -o $(package).qhc cd doc && $(RM) -f $(package).qhcp $(package).qhp doc/$(package).info: doc/$(package).texi doc/functions.texi doc/version.texi cd doc && $(MAKEINFO) $(package).texi # mkdocfuns can find some of our #define socket constants CONST_DOC=DEFUN_DLD(\1,,,"\\\n-*- texinfo -*-\nSocket constant for \1\n")\n\{\n doc/functions.texi: $(release_dir_dep) # we need make some marked up sources for our basic # mkfuncdocs to find the #defined constants $(SED) -n -e 's/^DEFUN_DLD_SOCKET_CONSTANT(\(.*\)).*/$(CONST_DOC)/p' src/*.cc > doc/docs.cpp $(SED) -n -e 's/^DEFUN_DLD_SOCKET_CONSTANT_VALUE(\([^,]*\).*/$(CONST_DOC)/p' src/*.cc >> doc/docs.cpp cd doc && ./mkfuncdocs.py --src-dir=../src/ --src-dir=. --allowscan ../INDEX | $(SED) 's/@seealso/@xseealso/g' > functions.texi $(RM) -f docs.cpp $(RM) -f doc/docs.cpp ## Create the unpacked package. ## ## Notes: ## * having ".hg/dirstate" (or ".git/index") as a prerequesite means it is ## only rebuilt if we are at a different commit. ## * the variable RM usually defaults to "rm -f" ## * having this recipe separate from the one that makes the tarball ## makes it easy to have packages in alternative formats (such as zip) ## * note that if a commands needs to be run in a specific directory, ## the command to "cd" needs to be on the same line. Each line restores ## the original working directory. $(release_dir): $(release_dir_dep) -$(RM) -r "$@" ifeq (${vcs},hg) hg archive --exclude ".hg*" --type files "$@" endif ifeq (${vcs},git) git archive --format=tar --prefix="$@/" HEAD | $(TAR) -x $(RM) "$@/.gitignore" endif ## Don't fall back to run the supposed necessary contents of ## 'bootstrap' here. Users are better off if they provide ## 'bootstrap'. Administrators, checking build reproducibility, can ## put in the missing 'bootstrap' file if they feel they know its ## necessary contents. ifneq (,$(wildcard src/bootstrap)) cd "$@/src" && ./bootstrap && $(RM) -r "autom4te.cache" endif ## Uncomment this if your src/Makefile.in has these targets for ## pre-building something for the release (e.g. documentation). # cd "$@/src" && ./configure && $(MAKE) prebuild && \ # $(MAKE) clean && $(RM) Makefile ## # build docs $(MAKE) -C "$@" docs # remove dev stuff cd "$@" && $(RM) -rf "devel" # && $(RM) -f doc/mkfuncdocs.py doc/mkqhcp.py ${FIX_PERMISSIONS} "$@" run_in_place = $(OCTAVE) --eval ' pkg ("local_list", "$(package_list)"); ' \ --eval ' pkg ("load", "$(package)"); ' #html_options = --eval 'options = get_html_options ("octave-forge");' ## Uncomment this for package documentation. html_options = --eval 'options = get_html_options ("octave-forge");' \ --eval 'options.package_doc = "$(package).texi";' \ --eval 'options.package_doc_options = [options.package_doc_options " --css-include=$(package).css"];' $(html_dir): $(install_stamp) $(RM) -r "$@"; $(run_in_place) \ --eval ' pkg load generate_html; ' \ $(html_options) \ --eval ' generate_package_html ("$(package)", "$@", options); '; $(FIX_PERMISSIONS) "$@"; clean-unpacked-release: @echo "## Cleaning unpacked release tarballs (package + html)..." -$(RM) -r $(release_dir) $(html_dir) @echo ## ## Recipes for installing the package. ## .PHONY: install clean-install octave_install_commands = \ ' llist_path = pkg ("local_list"); \ mkdir ("$(installation_dir)"); \ load (llist_path); \ local_packages(cellfun (@ (x) strcmp ("$(package)", x.name), local_packages)) = []; \ save ("$(package_list)", "local_packages"); \ pkg ("local_list", "$(package_list)"); \ pkg ("prefix", "$(installation_dir)", "$(installation_dir)"); \ pkg ("install", "-local", "-verbose", "$(release_tarball)"); ' ## Install unconditionally. Maybe useful for testing installation with ## different versions of Octave. install: $(release_tarball) @echo "Installing package under $(installation_dir) ..." $(OCTAVE) --eval $(octave_install_commands) touch $(install_stamp) ## Install only if installation (under target/...) is not current. $(install_stamp): $(release_tarball) @echo "Installing package under $(installation_dir) ..." $(OCTAVE) --eval $(octave_install_commands) touch $(install_stamp) clean-install: @echo "## Cleaning installation under $(installation_dir) ..." -$(RM) -r $(installation_dir) @echo ## ## Recipes for testing purposes ## .PHONY: run doctest check ## Start an Octave session with the package directories on the path for ## interactice test of development sources. run: $(install_stamp) $(run_in_place) --persist ## Test example blocks in the documentation. Needs doctest package ## https://octave.sourceforge.io/doctest/index.html doctest: $(install_stamp) $(run_in_place) --eval 'pkg load doctest;' \ --eval "targets = pkg('list', '$(package)'){1}.dir;" \ --eval "doctest (targets);" ## Test package. octave_test_commands = \ ' pkgs = pkg("list", "$(package)"); \ dirs = {pkgs{1}.dir}; \ __run_test_suite__ (dirs, {}); ' ## the following works, too, but provides no overall summary output as ## __run_test_suite__ does: ## ## else cellfun (@runtests, horzcat (cellfun (@ (dir) ostrsplit (([~, dirs] = system (sprintf ("find %s -type d", dir))), "\n\r", true), dirs, "UniformOutput", false){:})); endif ' check: $(install_stamp) $(run_in_place) --eval $(octave_test_commands) ## ## CLEAN ## .PHONY: clean clean: clean-tarballs clean-unpacked-release clean-install clean-docs clean-runinplace test -e $(target_dir)/fntests.log && rm -f $(target_dir)/fntests.log || true @echo "## Removing target directory (if empty)..." test -e $(target_dir) && rmdir $(target_dir) || true @echo @echo "## Cleaning done" @echo CC_SOURCES := $(wildcard src/*.cc) M_SOURCES := $(wildcard inst/*.m) PKG_ADD := $(shell $(GREP) -sPho '(?<=(//|\#\#) PKG_ADD: ).*' \ $(CC_SOURCES) $(M_SOURCES)) ifneq (,$(wildcard $(TOPDIR)/src/Makefile)) compile-inplace: src/Makefile $(MAKE) -C src else compile-inplace: # nothing to do ? endif runinplace: compile-inplace $(OCTAVE) --no-gui --silent --persist --path "$(TOPDIR)/inst/" --path "$(TOPDIR)/src/" \ --eval '$(PKG_ADD)' clean-runinplace: ifneq (,$(wildcard $(TOPDIR)/src/Makefile)) $(MAKE) -C src clean endif sockets-1.5.0/NEWS0000644000000000000000000000403515123475646010634 0ustar00Summary of important user-visible changes for sockets 1.5.0 ------------------------------------------------------------------- ** Minor documentation updates ** Added additional IPPROTO_ and AI_ constants ** Added getaddrinfo function Summary of important user-visible changes for sockets 1.4.1 ------------------------------------------------------------------- ** Minor documentation updates Summary of important user-visible changes for sockets 1.4.0 ------------------------------------------------------------------- ** Socket constants that are OS dependant will show an error if not available instead of not existing. (Bug #51273) ** Added new functions: select, shutdown ** Added constants: SHUT_RD, SHUT_RDWR, SHUT_WR ** Added qt5 documentation ** Install .cc tests Summary of important user-visible changes for sockets 1.3.0: ------------------------------------------------------------------- ** added new functions: sendto, recvfrom, getsockopt, setsockopt ** added constants SOL_SOCKET, SO_REUSEADDR, SO_KEEPALIVE, SO_DONTROUTE, SO_BROADCAST ** added initial user manual Summary of important user-visible changes for sockets 1.2.1: ------------------------------------------------------------------- ** Updates for Octave 6 compatability ** Change minimum Octave version to 3.6 Summary of important user-visible changes for sockets 1.2.0: ------------------------------------------------------------------- ** Sockets are now represented with ordinary numbers, not a custom socket type. If you relied on checks like isa(s,'octave_socket') you will need to update your code. ** Functions are cleaned on package unload (requires Octave >= 3.8) using the PKG_DEL directive. ** The sockets package is now dependent on Octave versions >= 3.2.0 ** Functions now perform better input check to prevent accidental segfaults. Summary of important user-visible changes for sockets 1.0.8: ------------------------------------------------------------------- ** updated function documentation with more details sockets-1.5.0/README.md0000644000000000000000000000155115123475646011414 0ustar00Introduction ============ The Sockets toolkit is a set of socket routines for GNU Octave Requirements ============ * Octave >= 3.6.0 Installing ========== To install, run the octave package manager: 1. If running Windows, the package may already be installed: type pkg list, to view the installed packages. 2. To install from source forge: pkg install -forge sockets 3. To install from a local tarball. pkg install octave-sockets-XXXXXXX.tar.gz Where XXXXXXX is the version of the the downloaded tarball. Usage: ====== 1. Load the package. pkg load sockets (Required each time Octave is started) 2. Use the function calls. Documentation ============== See the function list for [Octave sockets](https://gnu-octave.github.io/octave-sockets/) for function documentation. Known limitations and bugs ========================== None provided sockets-1.5.0/doc/0000755000000000000000000000000015123475646010700 5ustar00sockets-1.5.0/doc/functions.texi0000644000000000000000000003756115123475646013617 0ustar00@c --------------------------------------------------- @node Sockets functions @section Sockets functions @cindex Sockets functions @c Sockets functions accept @c ----------------------------------------- @subsection accept @cindex accept @deftypefn {Loadable Function} {[@var{client}, @var{info}] =} accept (@var{s}) Accept incoming connection on specified socket. Accepts an incoming connection on the socket @var{s}. The newly created socket is returned in @var{client}, and associated information in a struct info. See the @command{accept} man pages for further details. @end deftypefn @c Sockets functions bind @c ----------------------------------------- @subsection bind @cindex bind @deftypefn {Loadable Function} {} bind (@var{s}, @var{portnumber}) Bind specific socket to port number. See the @command{bind} man pages for further details. @end deftypefn @c Sockets functions connect @c ----------------------------------------- @subsection connect @cindex connect @deftypefn {Loadable Function} {} connect (@var{s}, @var{serverinfo}) Connect socket. Connects the socket @var{s} following the information in the struct @var{serverinfo} which must contain the following fields: @table @code @item addr a string with the host name to connect to @item port the port number to connect to (an integer) @end table On successful connect, the returned status is zero. See the @command{connect} man pages for further details. @end deftypefn @c Sockets functions disconnect @c ----------------------------------------- @subsection disconnect @cindex disconnect @deftypefn {Loadable Function} {} disconnect (@var{s}) Disconnect socket. Disconnects the socket @var{s}. If successful, @code{disconnect} returns 0, otherwise, it returns -1. Since we can't call fclose on the file descriptor directly, use this function to disconnect the socket. @end deftypefn @c Sockets functions getaddrinfo @c ----------------------------------------- @subsection getaddrinfo @cindex getaddrinfo @deftypefn {Loadable Function} {@var{addrinforesults} =} getaddrinfo (@var{hostname}, @var{service}, @var{hints}) Get addressinfo lookup for a hostname/service. Returns an array of addressinfo structs with the following fields: @table @code @item family Integer family value @item socktype Integer socktype value @item protocol Integer protocol value @item addr a string with the host name to send to @item port the port number to send to (an integer) @end table hints is optional with one or more fields: @table @code @item family Integer family value @item socktype Integer socktype value @item protocol Integer protocol value @item flags a integer ai flags @end table See the @command{getaddrinfo} man pages for details. @end deftypefn @c Sockets functions gethostbyname @c ----------------------------------------- @subsection gethostbyname @cindex gethostbyname @deftypefn {Loadable Function} {@var{ipaddress} =} gethostbyname (@var{hostname}) Return IP address for host name. For example: @example @group gethostbyname ("localhost") @result{} 127.0.0.1 @end group @end example See the @command{gethostbyname} man pages for details. @end deftypefn @c Sockets functions getsockopt @c ----------------------------------------- @subsection getsockopt @cindex getsockopt @deftypefn {Loadable Function} {[@var{data}, @var{status}] =} getsockopt (@var{s}, @var{level}, @var{optname}) Get a socket option value from a socket. Returns the value of @var{level} @var{optname} from the socket @var{s}. Data type depends on the option used. @var{status} returns as 0 if no error. See the @command{getsockopt} man pages for further details. @end deftypefn @c Sockets functions listen @c ----------------------------------------- @subsection listen @cindex listen @deftypefn {Loadable Function} {} listen (@var{s}, @var{backlog}) Listen on socket for connections. Listens on socket @var{s} for connections. @var{backlog} specifies how large the queue of incoming connections is allowed to grow. On success, zero is returned. See the @command{listen} man pages for further details. @end deftypefn @c Sockets functions recv @c ----------------------------------------- @subsection recv @cindex recv @deftypefn {Loadable Function} {[@var{data}, @var{count}] =} recv (@var{s}, @var{len}) @deftypefnx {Loadable Function} {[@var{data}, @var{count}] =} recv (@var{s}, @var{len}, @var{flags}) Read data from specified socket. Requests reading @var{len} bytes from the socket @var{s}. The optional integer @var{flags} parameter can be used to modify the behaviour of @code{recv}. The read data is returned in the uint8 array @var{data}. The number of bytes read is returned in @var{count}. You can get non-blocking operation by using the flag @code{MSG_DONTWAIT} which makes the @code{recv()} call return immediately. If there is no data, -1 is returned in count. See the @command{recv} man pages for further details. @end deftypefn @c Sockets functions recvfrom @c ----------------------------------------- @subsection recvfrom @cindex recvfrom @deftypefn {Loadable Function} {[@var{data}, @var{count}, @var{src_info}] =} recvfrom (@var{s}, @var{len}) @deftypefnx {Loadable Function} {[@var{data}, @var{count}, @var{src_info}] =} recvfrom (@var{s}, @var{len}, @var{flags}) Read data from specified socket. Requests reading @var{len} bytes from the socket @var{s}. The optional integer @var{flags} parameter can be used to modify the behaviour of @code{recvfrom}. The read data is returned in the uint8 array @var{data}. The number of bytes read is returned in @var{count} and a structure with fields addr and port contain the source of the data. You can get non-blocking operation by using the flag @code{MSG_DONTWAIT} which makes the @code{recvfrom()} call return immediately. If there is no data, -1 is returned in count. See the @command{recvfrom} man pages for further details. @end deftypefn @c Sockets functions select @c ----------------------------------------- @subsection select @cindex select @deftypefn {Loadable Function} {[@var{status}, @var{rfdset}, @var{wfdset}, @var{efdset}] =} select (@var{nfds}, @var{rfdset}, @var{wfdset}, @var{efdset}, @var{timeout}) Wait for socket activity on selected sockets. The fdsets are vectors of fds to check, for example [1 2 3]. Empty vectors equate to null. nfds tests file descriptions in the range of 0 - nfds-1. Timeout is can be either an real value for number of seconds, a struct with a tm_sec and tm_usec fields, or empty set for null. @var{status} returns as 0 if timeout, or number of waiting sockets if ok. See the @command{select} man pages for further details. @end deftypefn @c Sockets functions send @c ----------------------------------------- @subsection send @cindex send @deftypefn {Loadable Function} {@var{retval} =} send (@var{s}, @var{data}) @deftypefnx {Loadable Function} {@var{retval} =} send (@var{s}, @var{data}, @var{flags}) Send data on specified socket. Sends data on socket @var{s}. @var{data} should be an uint8 array or a string. See the @command{send} man pages for further details. @end deftypefn @c Sockets functions sendto @c ----------------------------------------- @subsection sendto @cindex sendto @deftypefn {Loadable Function} {@var{retval} =} sendto (@var{s}, @var{data}, @var{dest_info}) @deftypefnx {Loadable Function} {@var{retval} =} sendto (@var{s}, @var{data}, @var{flags}, @var{dest_info}) Send data on specified socket. Sends data on socket @var{s} to destination. @var{data} should be an uint8 array or a string. The dest_info struct @var{dest_info} must contain the following fields: @table @code @item addr a string with the host name to send to @item port the port number to send to (an integer) @end table See the @command{sendto} man pages for further details. @end deftypefn @c Sockets functions setsockopt @c ----------------------------------------- @subsection setsockopt @cindex setsockopt @deftypefn {Loadable Function} {@var{status} =} setsockopt (@var{s}, @var{level}, @var{optname}, @var{optvalue}) Set a socket option value on a socket. @var{status} returns as 0 if no error. See the @command{setsockopt} man pages for further details. @end deftypefn @c Sockets functions shutdown @c ----------------------------------------- @subsection shutdown @cindex shutdown @deftypefn {Loadable Function} {} shutdown (@var{s}, @var{how}) Shutdown all or part of a connection of a socket. On success, zero is returned. See the @command{shutdown} man pages for further details. @end deftypefn @c Sockets functions socket @c ----------------------------------------- @subsection socket @cindex socket @deftypefn {Loadable Function} {@var{sock} =} socket () @deftypefnx {Loadable Function} {@var{sock} =} socket (@var{domain}) @deftypefnx {Loadable Function} {@var{sock} =} socket (@var{domain}, @var{type}) @deftypefnx {Loadable Function} {@var{sock} =} socket (@var{domain}, @var{type}, @var{protocol}) Creates a socket. @var{domain} is an integer, where the value AF_INET can be used to create an IPv4 socket. @var{type} is an integer describing the socket. When using IP, specifying SOCK_STREAM gives a TCP socket. @var{protocol} is currently not used and should be 0 if specified. If no input arguments are given, default values AF_INET and SOCK_STREAM are used. See the local @command{socket} reference for more details. @end deftypefn @c --------------------------------------------------- @node Socket constants @section Socket constants @cindex Socket constants @c --------------------------------------------------- @node Socket constants - Domain family constants @subsection Domain family constants @cindex Socket constants - Domain family constants @c Socket constantsDomain family constants AF_APPLETALK @c ----------------------------------------- @subsubsection AF_APPLETALK @cindex AF_APPLETALK Socket constant for AF_APPLETALK @c Socket constantsDomain family constants AF_INET @c ----------------------------------------- @subsubsection AF_INET @cindex AF_INET Socket constant for AF_INET @c Socket constantsDomain family constants AF_LOCAL @c ----------------------------------------- @subsubsection AF_LOCAL @cindex AF_LOCAL Socket constant for AF_LOCAL @c Socket constantsDomain family constants AF_UNIX @c ----------------------------------------- @subsubsection AF_UNIX @cindex AF_UNIX Socket constant for AF_UNIX @c Socket constantsDomain family constants AF_UNSPEC @c ----------------------------------------- @subsubsection AF_UNSPEC @cindex AF_UNSPEC Socket constant for AF_UNSPEC @c --------------------------------------------------- @node Socket constants - Socket Type constants @subsection Socket Type constants @cindex Socket constants - Socket Type constants @c Socket constantsSocket Type constants SOCK_DGRAM @c ----------------------------------------- @subsubsection SOCK_DGRAM @cindex SOCK_DGRAM Socket constant for SOCK_DGRAM @c Socket constantsSocket Type constants SOCK_RAW @c ----------------------------------------- @subsubsection SOCK_RAW @cindex SOCK_RAW Socket constant for SOCK_RAW @c Socket constantsSocket Type constants SOCK_RDM @c ----------------------------------------- @subsubsection SOCK_RDM @cindex SOCK_RDM Socket constant for SOCK_RDM @c Socket constantsSocket Type constants SOCK_SEQPACKET @c ----------------------------------------- @subsubsection SOCK_SEQPACKET @cindex SOCK_SEQPACKET Socket constant for SOCK_SEQPACKET @c Socket constantsSocket Type constants SOCK_STREAM @c ----------------------------------------- @subsubsection SOCK_STREAM @cindex SOCK_STREAM Socket constant for SOCK_STREAM @c --------------------------------------------------- @node Socket constants - Send/Recv Flag constants @subsection Send/Recv Flag constants @cindex Socket constants - Send/Recv Flag constants @c Socket constantsSend/Recv Flag constants MSG_DONTWAIT @c ----------------------------------------- @subsubsection MSG_DONTWAIT @cindex MSG_DONTWAIT Socket constant for MSG_DONTWAIT @c Socket constantsSend/Recv Flag constants MSG_PEEK @c ----------------------------------------- @subsubsection MSG_PEEK @cindex MSG_PEEK Socket constant for MSG_PEEK @c Socket constantsSend/Recv Flag constants MSG_WAITALL @c ----------------------------------------- @subsubsection MSG_WAITALL @cindex MSG_WAITALL Socket constant for MSG_WAITALL @c --------------------------------------------------- @node Socket constants - Shutdown how constants @subsection Shutdown how constants @cindex Socket constants - Shutdown how constants @c Socket constantsShutdown how constants SHUT_RD @c ----------------------------------------- @subsubsection SHUT_RD @cindex SHUT_RD Socket constant for SHUT_RD @c Socket constantsShutdown how constants SHUT_RDWR @c ----------------------------------------- @subsubsection SHUT_RDWR @cindex SHUT_RDWR Socket constant for SHUT_RDWR @c Socket constantsShutdown how constants SHUT_WR @c ----------------------------------------- @subsubsection SHUT_WR @cindex SHUT_WR Socket constant for SHUT_WR @c --------------------------------------------------- @node Socket constants - Set/getsockopt constants @subsection Set/getsockopt constants @cindex Socket constants - Set/getsockopt constants @c Socket constantsSet/getsockopt constants SOL_SOCKET @c ----------------------------------------- @subsubsection SOL_SOCKET @cindex SOL_SOCKET Socket constant for SOL_SOCKET @c Socket constantsSet/getsockopt constants SO_BROADCAST @c ----------------------------------------- @subsubsection SO_BROADCAST @cindex SO_BROADCAST Socket constant for SO_BROADCAST @c Socket constantsSet/getsockopt constants SO_DONTROUTE @c ----------------------------------------- @subsubsection SO_DONTROUTE @cindex SO_DONTROUTE Socket constant for SO_DONTROUTE @c Socket constantsSet/getsockopt constants SO_KEEPALIVE @c ----------------------------------------- @subsubsection SO_KEEPALIVE @cindex SO_KEEPALIVE Socket constant for SO_KEEPALIVE @c Socket constantsSet/getsockopt constants SO_REUSEADDR @c ----------------------------------------- @subsubsection SO_REUSEADDR @cindex SO_REUSEADDR Socket constant for SO_REUSEADDR @c --------------------------------------------------- @node Socket constants - Socket protocol constants @subsection Socket protocol constants @cindex Socket constants - Socket protocol constants @c Socket constantsSocket protocol constants IPPROTO_ICMP @c ----------------------------------------- @subsubsection IPPROTO_ICMP @cindex IPPROTO_ICMP Socket constant for IPPROTO_ICMP @c Socket constantsSocket protocol constants IPPROTO_IP @c ----------------------------------------- @subsubsection IPPROTO_IP @cindex IPPROTO_IP Socket constant for IPPROTO_IP @c Socket constantsSocket protocol constants IPPROTO_TCP @c ----------------------------------------- @subsubsection IPPROTO_TCP @cindex IPPROTO_TCP Socket constant for IPPROTO_TCP @c Socket constantsSocket protocol constants IPPROTO_UDP @c ----------------------------------------- @subsubsection IPPROTO_UDP @cindex IPPROTO_UDP Socket constant for IPPROTO_UDP @c --------------------------------------------------- @node Socket constants - Socket getaddrinfo flag constants @subsection Socket getaddrinfo flag constants @cindex Socket constants - Socket getaddrinfo flag constants @c Socket constantsSocket getaddrinfo flag constants AI_ADDRCONFIG @c ----------------------------------------- @subsubsection AI_ADDRCONFIG @cindex AI_ADDRCONFIG Socket constant for AI_ADDRCONFIG @c Socket constantsSocket getaddrinfo flag constants AI_ALL @c ----------------------------------------- @subsubsection AI_ALL @cindex AI_ALL Socket constant for AI_ALL @c Socket constantsSocket getaddrinfo flag constants AI_NUMERICSERV @c ----------------------------------------- @subsubsection AI_NUMERICSERV @cindex AI_NUMERICSERV Socket constant for AI_NUMERICSERV @c Socket constantsSocket getaddrinfo flag constants AI_PASSIVE @c ----------------------------------------- @subsubsection AI_PASSIVE @cindex AI_PASSIVE Socket constant for AI_PASSIVE @c Socket constantsSocket getaddrinfo flag constants AI_V4MAPPED @c ----------------------------------------- @subsubsection AI_V4MAPPED @cindex AI_V4MAPPED Socket constant for AI_V4MAPPED sockets-1.5.0/doc/gpl.texi0000644000000000000000000010433015123475646012356 0ustar00@node Copying @appendix GNU General Public License @cindex warranty @cindex copyright @center Version 3, 29 June 2007 @display Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @end display @heading 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. @heading TERMS AND CONDITIONS @enumerate 0 @item 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. @item 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. @item 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. @item 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. @item 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. @item 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: @enumerate a @item The work must carry prominent notices stating that you modified it, and giving a relevant date. @item 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''. @item 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. @item 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. @end enumerate 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. @item 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: @enumerate a @item 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. @item 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. @item 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. @item 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. @item 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. @end enumerate 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. @item 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: @enumerate a @item Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or @item 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 @item 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 @item Limiting the use for publicity purposes of names of licensors or authors of the material; or @item Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or @item 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. @end enumerate 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. @item 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. @item 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. @item 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. @item 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. @item 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. @item 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. @item 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. @item 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. @item 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. @item 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 enumerate @heading END OF TERMS AND CONDITIONS @heading 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. @smallexample @var{one line to give the program's name and a brief idea of what it does.} Copyright (C) @var{year} @var{name of author} 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 @url{http://www.gnu.org/licenses/}. @end smallexample 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: @smallexample @var{program} Copyright (C) @var{year} @var{name of author} This program comes with ABSOLUTELY NO WARRANTY; for details type @samp{show w}. This is free software, and you are welcome to redistribute it under certain conditions; type @samp{show c} for details. @end smallexample The hypothetical commands @samp{show w} and @samp{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 @url{http://www.gnu.org/licenses/}. 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 @url{http://www.gnu.org/philosophy/why-not-lgpl.html}. sockets-1.5.0/doc/macros.texi0000644000000000000000000000624115123475646013062 0ustar00@c Copyright (C) 2012-2019 John W. Eaton @c @c This file is part of Octave. @c @c Octave is free software: you can redistribute it and/or modify it @c under the terms of the GNU General Public License as published by @c the Free Software Foundation, either version 3 of the License, or @c (at your option) any later version. @c @c Octave is distributed in the hope that it will be useful, but @c WITHOUT ANY WARRANTY; without even the implied warranty of @c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @c GNU General Public License for more details. @c @c You should have received a copy of the GNU General Public License @c along with Octave; see the file COPYING. If not, see @c . @c The following macro marks words that aspell should ignore during @c spellchecking. Within Texinfo it has no effect as it merely replaces @c the macro call with the argument itself. @macro nospell {arg} \arg\ @end macro @c The following macro works around the Info/plain text expansion of @code{XXX} @c which is `XXX'. This looks particularly bad when the macro body is @c single or double-quoted text, such as a property value `"position"' @ifinfo @macro qcode{arg} \arg\ @end macro @end ifinfo @ifnotinfo @macro qcode{arg} @code{\arg\} @end macro @end ifnotinfo @c The following macro is used for the on-line help system, but we don't @c want lots of `See also: foo, bar, and baz' strings cluttering the @c printed manual (that information should be in the supporting text for @c each group of functions and variables). @c @c Implementation Note: @c For TeX, @vskip produces a nice separation. @c For Texinfo, '@sp 1' should work, but in practice produces ugly results @c for HTML. We use a simple blank line to produce the correct @c behavior. @c @c We use @xseealso now because Texinfo introduced its own @seealso @c command. But instead of modifying all source files, we'll have the @c munge-texi script convert @seealso to @xseealso. @macro xseealso {args} @iftex @vskip 2pt @end iftex @ifnottex @end ifnottex @ifnotinfo @noindent @strong{See also:} \args\. @end ifnotinfo @ifinfo @noindent See also: \args\. @end ifinfo @end macro @c The following macro works around a situation where the Info/plain text @c expansion of the @code{XXX} macro is `XXX'. The use of the apostrophe @c can be confusing if the code segment itself ends with a transpose operator. @ifinfo @macro tcode{arg} \arg\ @end macro @end ifinfo @ifnotinfo @macro tcode{arg} @code{\arg\} @end macro @end ifnotinfo @c FIXME: someday, when Texinfo 5.X is standard, we might replace this with @c @backslashchar, which is a new addition to Texinfo. @macro xbackslashchar \\ @end macro @c These may be useful for all, not just for octave.texi. @tex \ifx\rgbDarkRed\thisisundefined \def\rgbDarkRed{0.50 0.09 0.12} \fi \ifx\linkcolor\thisisundefined \relax \else \global\def\linkcolor{\rgbDarkRed} \fi \ifx\urlcolor\thisisundefined \relax \else \global\def\urlcolor{\rgbDarkRed} \fi \ifx\urefurlonlylinktrue\thisisundefined \relax \else \global\urefurlonlylinktrue \fi @end tex @c Make the apostrophe in code examples cut-and-paste friendly. @codequoteundirected on sockets-1.5.0/doc/mkfuncdocs.py0000755000000000000000000003304215123475646013413 0ustar00#!/usr/bin/env python3 ## Copyright 2018-2025 John Donoghue ## ## 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 ## . ## mkfuncdocs v1.0.9 ## mkfuncdocs.py will attempt to extract the help texts from functions in src ## dirs, extracting only those that are in the specifed INDEX file and output them ## to stdout in texi format ## ## It will extract from both .m and the help text for DEFUN_DLD help in .cc/.cpp ## files. ## ## It attempts to find the help text for each function in a file within the src search ## folders that match in order: [ functionname.m functionname.cc functionname.cpp ## functionname_withoutprefix.cc functionname_withoutprefix.cpp ] ## ## The INDEX file can contain additional subgroups in the form of: ## #! Subgroup Name ## ## Usage: ## mkfundocs.py options INDEXfile ## Options can be 0 or more of: ## --verbose : Turn on verbose mode ## --src-dir=xxxxx : Add dir xxxxx to the dirs searched for the function file. ## If no directories are provided, it will default to looking in the ## 'inst' directory. ## --ignore=xxxxx : dont attempt to generate help for function xxxxx. ## --funcprefix=xxxxx : remove xxxxx from the function name when searching for matching ## source file. ## --allowscan : if can not find function, attemp to scan .cc,cpp,cxx files for match ## ## --standalone : generate a texinfo file expected to be used with being included in ## another document file. import sys import os import re import tempfile import shutil import fnmatch import subprocess import glob import calendar; import time; class SubGroup: name = "" functions = [] def __init__ (self, name): if name: self.name = name self.functions = [] class Group: name = "Functions" functions = [] subgroups = [] def __init__ (self, name=""): if name: self.name = name self.functions = [] self.subgroups = [] def add_function(self, f): if len(self.subgroups) == 0: self.functions.append(f); else: functions = self.subgroups[-1].functions functions.append(f) self.subgroups[-1].functions = functions def add_subgroup(self, f): self.subgroups.append(SubGroup(f)) def isempty(self): if len(self.functions): return False for sg in self.subgroups: if len(sg.functions): return False return True def dump(self): print(f"Group {self.name}") for f in self.functions: print(f" {f}") for sg in self.subgroups: print(f" *{sg.name}") for f in sg.functions: print(f" {f}") class Index: name = "" groups = [] def texify_line(line): # convert any special chars in a line to texinfo format # currently just used for group formatting ? line = line.replace("@", "@@") line = line.replace("{", "@{") line = line.replace("}", "@}") line = line.replace(",", "@comma{}") return line def find_defun_line_in_file(filename, fnname): linecnt = 0 defun_line=re.compile(r"^DEFUN_DLD\s*\(\s*{}".format(fnname)) with open(filename, 'rt') as f: for line in f: if re.match(defun_line, line): return linecnt linecnt = linecnt + 1 return -1 def find_function_line_in_file(filename, fnname): linecnt = 0 func = False defun_line=re.compile(r"^\s*function \s*") with open(filename, 'rt') as f: for line in f: if func == True: x = line.strip() if x.startswith("## -*- texinfo -*-"): return linecnt else: func = False if re.match(defun_line, line): if line.find("=") != -1: x = line.split("=") x = x[-1] else: x = line.replace("function ", "") x = x.split("(") x = x[0].strip() if x == fnname: func = True linecnt = linecnt + 1 return -1 def read_m_file(filename, skip=0): help = [] inhelp = False havehelp = False; with open(filename, 'rt') as f: for line in f: line = line.lstrip() if skip > 0: skip = skip - 1 elif not havehelp: if havehelp == False and inhelp == False and line.startswith('##'): if "texinfo" in line: inhelp = True elif inhelp == True: if not line.startswith('##'): inhelp = False havehelp = True else: if line.startswith("## @"): line = line[3:] else: line = line[2:] help.append (line.rstrip()); return help def read_cc_file(filename, skip=0): help = [] inhelp = False havehelp = False; with open(filename, 'rt') as f: for line in f: line = line.lstrip() if skip > 0: skip = skip - 1 elif not havehelp: if havehelp == False and inhelp == False: if "texinfo" in line: inhelp = True elif inhelp == True: line = line.rstrip() if len(line) > 0 and line[-1] == '\\': line = line[:-1] line = line.rstrip() line = line.replace("\\n", "\n") line = line.replace("\\\"", "\"") if len(line) > 0 and line[-1] == '\n': line = line[:-1] # endif a texinfo line elif line.endswith('")'): line = line[:-2] if line.startswith('{'): inhelp = False havehelp = True else: help.append (line); return help def read_help (filename, skip=0): help = [] if filename[-2:] == ".m": help = read_m_file(filename, skip) else: help = read_cc_file(filename, skip) return help def read_index (filename, ignore): index = Index () with open(filename, 'rt') as f: lines = f.read().splitlines() #print ("read", lines) first = True category = Group() for l in lines: if l.startswith("#!"): l = l[2:].strip() category.add_subgroup(l) elif l.startswith("#"): pass elif first: index.name = l; first = False elif l.startswith(" "): l = l.strip() # may be multiple functions here funcs = l.split() for f in funcs: if f not in ignore: category.add_function(l) else: # new category name if not category.isempty(): index.groups.append(category) category = Group(l.strip()) # left over category ? if not category.isempty(): index.groups.append(category) return index; def find_class_file(fname, paths): for f in paths: # class constructor ? name = f + "/@" + fname + "/" + fname + ".m" if os.path.isfile(name): return name, 0 # perhaps classname.func format ? x = fname.split(".") if len(x) > 0: zname = x.pop() cname = ".".join(x) name = f + "/" + cname + ".m" if os.path.isfile(name): idx = find_function_line_in_file(name, zname) if idx >= 0: return name, idx name = f + "/@" + cname + "/" + zname + ".m" if os.path.isfile(name): return name, 0 return None, -1 def find_func_file(fname, paths, prefix, scanfiles=False): for f in paths: name = f + "/" + fname + ".m" if os.path.isfile(name): return name, 0 # class constructor ? name = f + "/@" + fname + "/" + fname + ".m" if os.path.isfile(name): return name, 0 name = f + "/" + fname + ".cc" if os.path.isfile(name): return name, 0 name = f + "/" + fname + ".cpp" if os.path.isfile(name): return name, 0 # if have a prefix, remove and try if prefix and fname.startswith(prefix): fname = fname[len(prefix):] name = f + "/" + fname + ".cc" if os.path.isfile(name): return name, 0 name = f + "/" + fname + ".cpp" if os.path.isfile(name): return name, 0 # if here, we still dont have a file match # if allowed to scan files, do that if scanfiles: #sys.stderr.write("Warning: Scaning for {}\n".format(fname)) for f in paths: files = list(f + "/" + a for a in os.listdir(f)) cc_files = fnmatch.filter(files, "*.cc") cpp_files = fnmatch.filter(files, "*.cpp") cxx_files = fnmatch.filter(files, "*.cxx") for fn in cc_files + cpp_files + cxx_files: line = find_defun_line_in_file(fn, fname) if line >= 0: #sys.stderr.write("Warning: Found function for {} in {} at {}\n".format(fname, fn, line)) return fn, line return None, -1 def display_standalone_header(): # make a file that doesnt need to be included in a texinfo file to # be valid print("@c mkfuncdocs output for a standalone function list") print("@include macros.texi") print("@ifnottex") print("@node Top") print("@top Function Documentation") print("Function documentation extracted from texinfo source in octave source files.") print("@contents") print("@end ifnottex") print("@node Function Reference") print("@chapter Function Reference") print("@cindex Function Reference") def display_standalone_footer(): print("@bye") def display_func(name, ref, help, is_subgroup): print ("@c -----------------------------------------") if is_subgroup: print ("@subsubsection {}".format(name)) else: print ("@subsection {}".format(name)) print ("@cindex {}".format(ref)) for l in help: print ("{}".format(l)) def process_function_help(g_name, f, options, is_subgroup=False): if True: print ("@c {} {}".format(g_name, f)) h = "" filename = "" path = "" if "@" in f: #print ("class func") path = f name = "@" + f ref = f.split("/")[-1] filename, lineno = find_func_file(path, options["srcdir"], options["funcprefix"]) elif "." in f: path = f ref = f.split(".")[-1] name = f.split(".")[-1] filename, lineno = find_class_file(path, options["srcdir"]) if not filename: parts = f.split('.') cnt = 0 path = "" for p in parts: if cnt < len(parts)-1: path = path + "/+" else: path = path + "/" path = path + p cnt = cnt + 1 name = f; ref = parts[-1] filename, lineno = find_func_file(path, options["srcdir"], options["funcprefix"]) elif "/" in f: path = f name = f ref = f.split("/")[-1] filename, lineno = find_func_file(path, options["srcdir"], options["funcprefix"]) else: path = f name = f ref = f filename, lineno = find_func_file(path, options["srcdir"], options["funcprefix"], options['allowscan']) if not filename: sys.stderr.write("Warning: Cant find source file for {}\n".format(f)) else: h = read_help (filename, lineno) if h: display_func (name, ref, h, is_subgroup) def process (args): options = { "verbose": False, "srcdir": [], "funcprefix": "", "ignore": [], "standalone": False, "allowscan": False } indexfile = "" for a in args: #print ("{}".format(a)) c=a.split("=") key=c[0] if len(c) > 1: val=c[1] else: val="" if key == "--verbose": options["verbose"] = True; if key == "--standalone": options["standalone"] = True; elif key == "--allowscan": options["allowscan"] = True; elif key == "--src-dir": if val: options["srcdir"].append(val); elif key == "--ignore": if val: options["ignore"].append(val); elif key == "--func-prefix": if val: options["funcprefix"] = val; elif val == "": if indexfile == "": indexfile = key if indexfile == "": raise Exception("No index filename") if len(options["srcdir"]) == 0: options["srcdir"].append("inst") #print "options=", options if options['standalone']: display_standalone_header() idx = read_index(indexfile, options["ignore"]) for g in idx.groups: #print ("************ {}".format(g.name)) g_name = texify_line(g.name) print ("@c ---------------------------------------------------") print ("@node {}".format(g_name)) print ("@section {}".format(g_name)) print ("@cindex {}".format(g_name)) for f in sorted(g.functions): process_function_help(g_name, f, options) for sg in g.subgroups: sg_name = texify_line(sg.name) print ("@c ---------------------------------------------------") print ("@node {}".format(g_name + " - " + sg_name)) print ("@subsection {}".format(sg_name)) print ("@cindex {}".format(g_name + " - " + sg_name)) for f in sorted(sg.functions): process_function_help(g_name + sg_name, f, options, True) if options['standalone']: display_standalone_footer() def show_usage(): print (sys.argv[0], "[options] indexfile") if __name__ == "__main__": if len(sys.argv) > 1: status = process(sys.argv[1:]) sys.exit(status) else: show_usage() sockets-1.5.0/doc/mkqhcp.py0000755000000000000000000001521715123475646012546 0ustar00#!/usr/bin/env python3 ## mkqhcp.py ## Version 1.0.6 ## Copyright 2022-2025 John Donoghue ## ## 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 ## . import sys import os import re def process(name): with open(name + ".qhcp", 'wt') as f: f.write ('\n') f.write ('\n') f.write (' \n') f.write (' \n') f.write (' \n') f.write (' {0}.qhp\n'.format(name)) f.write (' {0}.qch\n'.format(name)) f.write (' \n') f.write (' \n') f.write (' \n') f.write (' {0}.qch\n'.format(name)) f.write (' \n') f.write (' \n') f.write ('\n') title = name pat_match = re.compile(r".*(?P<title>[^<]+).*") with open(name + ".html", 'rt') as fin: # find html for line in fin: line = line.strip() e = pat_match.match(line) if e: title = e.group("title") break # section h2_match = re.compile(r'.*

]*>(?P[^<]+)</h2>.*') # appendix h2a_match = re.compile(r'.*<h2 class="appendix"[^>]*>(?P<title>[^<]+)</h2>.*') # index h2i_match = re.compile(r'.*<h2 class="unnumbered"[^>]*>(?P<title>[^<]+)</h2>.*') h3_match = re.compile(r'.*<h3 class="section"[^>]*>(?P<title>[^<]+)</h3>.*') h4_match = re.compile(r'.*<h4 class="subsection"[^>]*>(?P<title>[^<]+)</h4>.*') h5_match = re.compile(r'.*<h4 class="subsubsection"[^>]*>(?P<title>[^<]+)</h4>.*') tag_match1 = re.compile(r'.*<span id="(?P<tag>[^"]+)"[^>]*></span>.*') #tag_match2 = re.compile(r'.*<div class="[sub]*section" id="(?P<tag>[^"]+)"[^>]*>.*') tag_match2 = re.compile(r'.*<div class="[sub]*section[^"]*" id="(?P<tag>[^"]+)"[^>]*>.*') tag_match3 = re.compile(r'.*<div class="chapter-level-extent" id="(?P<tag>[^"]+)"[^>]*>.*') tag_match4 = re.compile(r'.*<div class="appendix-level-extent" id="(?P<tag>[^"]+)"[^>]*>.*') tag_match5 = re.compile(r'.*<div class="unnumbered-level-extent" id="(?P<tag>[^"]+)"[^>]*>.*') index_match = re.compile(r'.*<h4 class="[sub]+section"[^>]*>[\d\.\s]*(?P<name>[^<]+)</h4>.*') index_match2 = re.compile(r'.*<h4 class="[sub]+section"[^>]*><span>[\d\.\s]*(?P<name>[^<]+)<.*') tag = "top" has_h2 = False has_h3 = False has_h4 = False #pat_match = re.compile(r'.*<span id="(?P<tag>[^"])"></span>(?P<title>[.]+)$') with open(name + ".html", 'rt') as fin: with open(name + ".qhp", 'wt') as f: f.write('<?xml version="1.0" encoding="UTF-8"?>\n') f.write('<QtHelpProject version="1.0">\n') f.write(' <namespace>octave.community.{}</namespace>\n'.format(name)) f.write(' <virtualFolder>doc</virtualFolder>\n') f.write(' <filterSection>\n') f.write(' <toc>\n') f.write(' <section title="{} Manual" ref="{}.html">\n'.format(title, name)) # chapters here for line in fin: line = line.strip() e = tag_match1.match(line) if not e: e = tag_match2.match(line) if not e: e = tag_match3.match(line) if not e: e = tag_match4.match(line) if not e: e = tag_match5.match(line) if e: tag = e.group("tag") e = h2_match.match(line) if not e: e = h2a_match.match(line) if not e: e = h2i_match.match(line) if e: if has_h4: f.write(' </section>\n') has_h4 = False if has_h3: f.write(' </section>\n') has_h3 = False if has_h2: f.write(' </section>\n') has_h2 = True f.write(' <section title="{}" ref="{}.html#{}">\n'.format(e.group("title"), name, tag)) e = h3_match.match(line) if e: if has_h4: f.write(' </section>\n') has_h4 = False if has_h3: f.write(' </section>\n') has_h3 = True f.write(' <section title="{}" ref="{}.html#{}">\n'.format(e.group("title"), name, tag)) e = h4_match.match(line) if e: if has_h4: f.write(' </section>\n') has_h4 = True #f.write(' <section title="{}" ref="{}.html#{}"></section>\n'.format(e.group("title"), name, tag)) f.write(' <section title="{}" ref="{}.html#{}">\n'.format(e.group("title"), name, tag)) e = h5_match.match(line) if e: f.write(' <section title="{}" ref="{}.html#{}"></section>\n'.format(e.group("title"), name, tag)) if has_h4: f.write(' </section>\n') if has_h3: f.write(' </section>\n') if has_h2: f.write(' </section>\n') f.write(' </section>\n') f.write(' </toc>\n') f.write(' <keywords>\n') fin.seek(0) for line in fin: line = line.strip() e = tag_match1.match(line) if not e: e = tag_match2.match(line) if e: tag = e.group("tag") e = index_match.match(line) if not e: e = index_match2.match(line) if e: f.write(' <keyword name="{}" ref="{}.html#{}"></keyword>\n'.format(e.group("name"), name, tag)) f.write(' </keywords>\n') f.write(' <files>\n') f.write(' <file>{}.html</file>\n'.format(name)) f.write(' <file>{}.css</file>\n'.format(name)) f.write(' </files>\n') f.write(' </filterSection>\n') f.write('</QtHelpProject>\n') def show_usage(): print (sys.argv[0], "projname") if __name__ == "__main__": if len(sys.argv) > 1: status = process(sys.argv[1]) sys.exit(status) else: show_usage() ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sockets-1.5.0/doc/sockets.css�����������������������������������������������������������������������0000644�0000000�0000000�00000001337�15123475646�013071� 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pre.example, .header, .float-caption, hr { /* base00 ~ body text in light solarized theme */ color: #657b83; border-color: #657b83; } pre.example { /* base3 ~ background color in light solarized theme */ background-color: #fdf6e3; padding: 0.5em; } table.cartouche { border: 1px solid #948473; background-color: #FFE3C6; width: 100%; } table.cartouche td, table.cartouche th { border: 1px solid #948473; padding: 4px 4px; } /* newer texinfo generation styles */ div.example { /* base00 ~ body text in light solarized theme */ color: #657b83; border-color: #657b83; } pre.example-preformatted { /* base3 ~ background color in light solarized theme */ background-color: #fdf6e3; padding: 0.5em; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������sockets-1.5.0/doc/sockets.html����������������������������������������������������������������������0000644�0000000�0000000�00000271052�15123475646�013250� 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<!DOCTYPE html> <html> <!-- Created by GNU Texinfo 7.2, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Octave Sockets - Socket functions for GNU octave.

Introduction

The Sockets toolkit is a set of socket routines for GNU Octave


1 Installing and loading

The Sockets toolkit must be installed and then loaded to be used.

It can be installed in GNU Octave directly from octave-forge, or can be installed in an off-line mode via a downloaded tarball.

The toolkit must be then be loaded once per each GNU Octave session in order to use its functionality.

1.1 Online Direct install

With an internet connection available, the Sockets package can be installed from octave-forge using the following command within GNU Octave:

pkg install -forge sockets

The latest released version of the toolkit will be downloaded and installed.

1.2 Off-line install

With the Sockets toolkit package already downloaded, and in the current directory when running GNU Octave, the package can be installed using the following command within GNU Octave:

pkg install sockets-1.5.0.tar.gz

1.3 Loading

Regardless of the method of installing the Sockets toolkit, in order to use its functions, the toolkit must be loaded using the pkg load command:

pkg load sockets

The toolkit must be loaded on each GNU Octave session.


2 Basic Usage Overview

The sockets toolkit attempts to use function names similar to the standard UNIX socket function naming, so functions such as socket, connect, bind, read, write etc are available and in general would follow the same flow as if being programmed in C.

# example socket connect and request a HTML page info

s = socket(AF_INET, SOCK_STREAM, 0);
if s < 0
  error ("Could not create a socket")
endif

addr = struct("addr", "google.com", "port", 80);
if connect(s, addr) < 0
  error ("Could not create a socket")
endif

# html request
send(s, "HEAD / HTTP/1.0\r\n\r\n")

# read data back
[d, l] = recv(s, 2000);
if d == -1
  error ("Error reading data");
endif

# display the data in human readable form
char(d)

# disconnect socket
disconnect(s);


3 Function Reference

The functions currently available in the Dicom toolkit are described below;


3.1 Sockets functions

3.1.1 accept

Loadable Function: [client, info] = accept (s)

Accept incoming connection on specified socket.

Accepts an incoming connection on the socket s. The newly created socket is returned in client, and associated information in a struct info.

See the accept man pages for further details.

3.1.2 bind

Loadable Function: bind (s, portnumber)

Bind specific socket to port number.

See the bind man pages for further details.

3.1.3 connect

Loadable Function: connect (s, serverinfo)

Connect socket.

Connects the socket s following the information in the struct serverinfo which must contain the following fields:

addr

a string with the host name to connect to

port

the port number to connect to (an integer)

On successful connect, the returned status is zero.

See the connect man pages for further details.

3.1.4 disconnect

Loadable Function: disconnect (s)

Disconnect socket.

Disconnects the socket s. If successful, disconnect returns 0, otherwise, it returns -1.

Since we can’t call fclose on the file descriptor directly, use this function to disconnect the socket.

3.1.5 getaddrinfo

Loadable Function: addrinforesults = getaddrinfo (hostname, service, hints)

Get addressinfo lookup for a hostname/service.

Returns an array of addressinfo structs with the following fields:

family

Integer family value

socktype

Integer socktype value

protocol

Integer protocol value

addr

a string with the host name to send to

port

the port number to send to (an integer)

hints is optional with one or more fields:

family

Integer family value

socktype

Integer socktype value

protocol

Integer protocol value

flags

a integer ai flags

See the getaddrinfo man pages for details.

3.1.6 gethostbyname

Loadable Function: ipaddress = gethostbyname (hostname)

Return IP address for host name.

For example:

gethostbyname ("localhost")
⇒ 127.0.0.1

See the gethostbyname man pages for details.

3.1.7 getsockopt

Loadable Function: [data, status] = getsockopt (s, level, optname)

Get a socket option value from a socket.

Returns the value of level optname from the socket s.

Data type depends on the option used. status returns as 0 if no error.

See the getsockopt man pages for further details.

3.1.8 listen

Loadable Function: listen (s, backlog)

Listen on socket for connections.

Listens on socket s for connections. backlog specifies how large the queue of incoming connections is allowed to grow.

On success, zero is returned.

See the listen man pages for further details.

3.1.9 recv

Loadable Function: [data, count] = recv (s, len)
Loadable Function: [data, count] = recv (s, len, flags)

Read data from specified socket.

Requests reading len bytes from the socket s. The optional integer flags parameter can be used to modify the behaviour of recv.

The read data is returned in the uint8 array data. The number of bytes read is returned in count.

You can get non-blocking operation by using the flag MSG_DONTWAIT which makes the recv() call return immediately. If there is no data, -1 is returned in count.

See the recv man pages for further details.

3.1.10 recvfrom

Loadable Function: [data, count, src_info] = recvfrom (s, len)
Loadable Function: [data, count, src_info] = recvfrom (s, len, flags)

Read data from specified socket.

Requests reading len bytes from the socket s. The optional integer flags parameter can be used to modify the behaviour of recvfrom.

The read data is returned in the uint8 array data. The number of bytes read is returned in count and a structure with fields addr and port contain the source of the data.

You can get non-blocking operation by using the flag MSG_DONTWAIT which makes the recvfrom() call return immediately. If there is no data, -1 is returned in count.

See the recvfrom man pages for further details.

3.1.11 select

Loadable Function: [status, rfdset, wfdset, efdset] = select (nfds, rfdset, wfdset, efdset, timeout)

Wait for socket activity on selected sockets.

The fdsets are vectors of fds to check, for example [1 2 3]. Empty vectors equate to null.

nfds tests file descriptions in the range of 0 - nfds-1.

Timeout is can be either an real value for number of seconds, a struct with a tm_sec and tm_usec fields, or empty set for null.

status returns as 0 if timeout, or number of waiting sockets if ok.

See the select man pages for further details.

3.1.12 send

Loadable Function: retval = send (s, data)
Loadable Function: retval = send (s, data, flags)

Send data on specified socket.

Sends data on socket s. data should be an uint8 array or a string.

See the send man pages for further details.

3.1.13 sendto

Loadable Function: retval = sendto (s, data, dest_info)
Loadable Function: retval = sendto (s, data, flags, dest_info)

Send data on specified socket.

Sends data on socket s to destination. data should be an uint8 array or a string.

The dest_info struct dest_info must contain the following fields:

addr

a string with the host name to send to

port

the port number to send to (an integer)

See the sendto man pages for further details.

3.1.14 setsockopt

Loadable Function: status = setsockopt (s, level, optname, optvalue)

Set a socket option value on a socket.

status returns as 0 if no error.

See the setsockopt man pages for further details.

3.1.15 shutdown

Loadable Function: shutdown (s, how)

Shutdown all or part of a connection of a socket.

On success, zero is returned.

See the shutdown man pages for further details.

3.1.16 socket

Loadable Function: sock = socket ()
Loadable Function: sock = socket (domain)
Loadable Function: sock = socket (domain, type)
Loadable Function: sock = socket (domain, type, protocol)

Creates a socket.

domain is an integer, where the value AF_INET can be used to create an IPv4 socket.

type is an integer describing the socket. When using IP, specifying SOCK_STREAM gives a TCP socket.

protocol is currently not used and should be 0 if specified.

If no input arguments are given, default values AF_INET and SOCK_STREAM are used.

See the local socket reference for more details.


3.2 Socket constants


3.2.1 Domain family constants

3.2.1.1 AF_APPLETALK

Socket constant for AF_APPLETALK

3.2.1.2 AF_INET

Socket constant for AF_INET

3.2.1.3 AF_LOCAL

Socket constant for AF_LOCAL

3.2.1.4 AF_UNIX

Socket constant for AF_UNIX

3.2.1.5 AF_UNSPEC

Socket constant for AF_UNSPEC


3.2.2 Socket Type constants

3.2.2.1 SOCK_DGRAM

Socket constant for SOCK_DGRAM

3.2.2.2 SOCK_RAW

Socket constant for SOCK_RAW

3.2.2.3 SOCK_RDM

Socket constant for SOCK_RDM

3.2.2.4 SOCK_SEQPACKET

Socket constant for SOCK_SEQPACKET

3.2.2.5 SOCK_STREAM

Socket constant for SOCK_STREAM


3.2.3 Send/Recv Flag constants

3.2.3.1 MSG_DONTWAIT

Socket constant for MSG_DONTWAIT

3.2.3.2 MSG_PEEK

Socket constant for MSG_PEEK

3.2.3.3 MSG_WAITALL

Socket constant for MSG_WAITALL


3.2.4 Shutdown how constants

3.2.4.1 SHUT_RD

Socket constant for SHUT_RD

3.2.4.2 SHUT_RDWR

Socket constant for SHUT_RDWR

3.2.4.3 SHUT_WR

Socket constant for SHUT_WR


3.2.5 Set/getsockopt constants

3.2.5.1 SOL_SOCKET

Socket constant for SOL_SOCKET

3.2.5.2 SO_BROADCAST

Socket constant for SO_BROADCAST

3.2.5.3 SO_DONTROUTE

Socket constant for SO_DONTROUTE

3.2.5.4 SO_KEEPALIVE

Socket constant for SO_KEEPALIVE

3.2.5.5 SO_REUSEADDR

Socket constant for SO_REUSEADDR


3.2.6 Socket protocol constants

3.2.6.1 IPPROTO_ICMP

Socket constant for IPPROTO_ICMP

3.2.6.2 IPPROTO_IP

Socket constant for IPPROTO_IP

3.2.6.3 IPPROTO_TCP

Socket constant for IPPROTO_TCP

3.2.6.4 IPPROTO_UDP

Socket constant for IPPROTO_UDP


3.2.7 Socket getaddrinfo flag constants

3.2.7.1 AI_ADDRCONFIG

Socket constant for AI_ADDRCONFIG

3.2.7.2 AI_ALL

Socket constant for AI_ALL

3.2.7.3 AI_NUMERICSERV

Socket constant for AI_NUMERICSERV

3.2.7.4 AI_PASSIVE

Socket constant for AI_PASSIVE

3.2.7.5 AI_V4MAPPED

Socket constant for AI_V4MAPPED


Appendix A GNU General Public License

Version 3, 29 June 2007
Copyright © 2007 Free Software Foundation, Inc. http://fsf.org/

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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:

    1. The work must carry prominent notices stating that you modified it, and giving a relevant date.
    2. 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”.
    3. 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.
    4. 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.

  7. 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:

    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. 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.

  8. 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:

    1. Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
    2. 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
    3. 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
    4. Limiting the use for publicity purposes of names of licensors or authors of the material; or
    5. Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
    6. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. 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.

  16. 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.

  17. 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.

  18. 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.

one line to give the program's name and a brief idea of what it does.  
Copyright (C) year name of author

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 http://www.gnu.org/licenses/.

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:

program Copyright (C) year name of author 
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 http://www.gnu.org/licenses/.

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 http://www.gnu.org/philosophy/why-not-lgpl.html.


Index

Jump to:   A   B   C   D   F   G   I   L   M   O   R   S   W  
Index EntrySection

A
acceptSockets functions
AF_APPLETALKSocket constants - Domain family constants
AF_INETSocket constants - Domain family constants
AF_LOCALSocket constants - Domain family constants
AF_UNIXSocket constants - Domain family constants
AF_UNSPECSocket constants - Domain family constants
AI_ADDRCONFIGSocket constants - Socket getaddrinfo flag constants
AI_ALLSocket constants - Socket getaddrinfo flag constants
AI_NUMERICSERVSocket constants - Socket getaddrinfo flag constants
AI_PASSIVESocket constants - Socket getaddrinfo flag constants
AI_V4MAPPEDSocket constants - Socket getaddrinfo flag constants

B
Basic Usage OverviewBasic Usage Overview
bindSockets functions

C
connectSockets functions
copyrightCopying

D
disconnectSockets functions

F
Function ReferenceFunction Reference

G
getaddrinfoSockets functions
gethostbynameSockets functions
getsockoptSockets functions

I
Installing and loadingInstalling and loading
IPPROTO_ICMPSocket constants - Socket protocol constants
IPPROTO_IPSocket constants - Socket protocol constants
IPPROTO_TCPSocket constants - Socket protocol constants
IPPROTO_UDPSocket constants - Socket protocol constants

L
listenSockets functions
LoadingInstalling and loading

M
MSG_DONTWAITSocket constants - Send/Recv Flag constants
MSG_PEEKSocket constants - Send/Recv Flag constants
MSG_WAITALLSocket constants - Send/Recv Flag constants

O
Off-line installInstalling and loading
Online installInstalling and loading

R
recvSockets functions
recvfromSockets functions

S
selectSockets functions
sendSockets functions
sendtoSockets functions
setsockoptSockets functions
SHUT_RDSocket constants - Shutdown how constants
SHUT_RDWRSocket constants - Shutdown how constants
SHUT_WRSocket constants - Shutdown how constants
shutdownSockets functions
SO_BROADCASTSocket constants - Set/getsockopt constants
SO_DONTROUTESocket constants - Set/getsockopt constants
SO_KEEPALIVESocket constants - Set/getsockopt constants
SO_REUSEADDRSocket constants - Set/getsockopt constants
SOCK_DGRAMSocket constants - Socket Type constants
SOCK_RAWSocket constants - Socket Type constants
SOCK_RDMSocket constants - Socket Type constants
SOCK_SEQPACKETSocket constants - Socket Type constants
SOCK_STREAMSocket constants - Socket Type constants
socketSockets functions
Socket constantsSocket constants
Socket constants - Domain family constantsSocket constants - Domain family constants
Socket constants - Send/Recv Flag constantsSocket constants - Send/Recv Flag constants
Socket constants - Set/getsockopt constantsSocket constants - Set/getsockopt constants
Socket constants - Shutdown how constantsSocket constants - Shutdown how constants
Socket constants - Socket getaddrinfo flag constantsSocket constants - Socket getaddrinfo flag constants
Socket constants - Socket protocol constantsSocket constants - Socket protocol constants
Socket constants - Socket Type constantsSocket constants - Socket Type constants
Sockets functionsSockets functions
SOL_SOCKETSocket constants - Set/getsockopt constants

W
warrantyCopying

sockets-1.5.0/doc/sockets.info0000644000000000000000000017002215123475646013232 0ustar00This is sockets.info, produced by makeinfo version 7.2 from sockets.texi. INFO-DIR-SECTION Math START-INFO-DIR-ENTRY * Octave Sockets: (sockets). Socket functions for GNU octave END-INFO-DIR-ENTRY  File: sockets.info, Node: Top, Next: Installing and loading, Up: (dir) Introduction ************ The Sockets toolkit is a set of socket routines for GNU Octave * Menu: * Installing and loading:: Installing and loading the Sockets toolkit * Basic Usage Overview:: Basic Usage Overview * Function Reference:: Sockets toolkit functions * Copying:: Copying * Index:: Index  File: sockets.info, Node: Installing and loading, Next: Basic Usage Overview, Prev: Top, Up: Top 1 Installing and loading ************************ The Sockets toolkit must be installed and then loaded to be used. It can be installed in GNU Octave directly from octave-forge, or can be installed in an off-line mode via a downloaded tarball. The toolkit must be then be loaded once per each GNU Octave session in order to use its functionality. 1.1 Online Direct install ========================= With an internet connection available, the Sockets package can be installed from octave-forge using the following command within GNU Octave: pkg install -forge sockets The latest released version of the toolkit will be downloaded and installed. 1.2 Off-line install ==================== With the Sockets toolkit package already downloaded, and in the current directory when running GNU Octave, the package can be installed using the following command within GNU Octave: pkg install sockets-1.5.0.tar.gz 1.3 Loading =========== Regardless of the method of installing the Sockets toolkit, in order to use its functions, the toolkit must be loaded using the pkg load command: pkg load sockets The toolkit must be loaded on each GNU Octave session.  File: sockets.info, Node: Basic Usage Overview, Next: Function Reference, Prev: Installing and loading, Up: Top 2 Basic Usage Overview ********************** The sockets toolkit attempts to use function names similar to the standard UNIX socket function naming, so functions such as socket, connect, bind, read, write etc are available and in general would follow the same flow as if being programmed in C. # example socket connect and request a HTML page info s = socket(AF_INET, SOCK_STREAM, 0); if s < 0 error ("Could not create a socket") endif addr = struct("addr", "google.com", "port", 80); if connect(s, addr) < 0 error ("Could not create a socket") endif # html request send(s, "HEAD / HTTP/1.0\r\n\r\n") # read data back [d, l] = recv(s, 2000); if d == -1 error ("Error reading data"); endif # display the data in human readable form char(d) # disconnect socket disconnect(s);  File: sockets.info, Node: Function Reference, Next: Copying, Prev: Basic Usage Overview, Up: Top 3 Function Reference ******************** The functions currently available in the Dicom toolkit are described below; * Menu: * Sockets functions:: * Socket constants::  File: sockets.info, Node: Sockets functions, Next: Socket constants, Up: Function Reference 3.1 Sockets functions ===================== 3.1.1 accept ------------ -- Loadable Function: [CLIENT, INFO] = accept (S) Accept incoming connection on specified socket. Accepts an incoming connection on the socket S. The newly created socket is returned in CLIENT, and associated information in a struct info. See the ‘accept’ man pages for further details. 3.1.2 bind ---------- -- Loadable Function: bind (S, PORTNUMBER) Bind specific socket to port number. See the ‘bind’ man pages for further details. 3.1.3 connect ------------- -- Loadable Function: connect (S, SERVERINFO) Connect socket. Connects the socket S following the information in the struct SERVERINFO which must contain the following fields: ‘addr’ a string with the host name to connect to ‘port’ the port number to connect to (an integer) On successful connect, the returned status is zero. See the ‘connect’ man pages for further details. 3.1.4 disconnect ---------------- -- Loadable Function: disconnect (S) Disconnect socket. Disconnects the socket S. If successful, ‘disconnect’ returns 0, otherwise, it returns -1. Since we can't call fclose on the file descriptor directly, use this function to disconnect the socket. 3.1.5 getaddrinfo ----------------- -- Loadable Function: ADDRINFORESULTS = getaddrinfo (HOSTNAME, SERVICE, HINTS) Get addressinfo lookup for a hostname/service. Returns an array of addressinfo structs with the following fields: ‘family’ Integer family value ‘socktype’ Integer socktype value ‘protocol’ Integer protocol value ‘addr’ a string with the host name to send to ‘port’ the port number to send to (an integer) hints is optional with one or more fields: ‘family’ Integer family value ‘socktype’ Integer socktype value ‘protocol’ Integer protocol value ‘flags’ a integer ai flags See the ‘getaddrinfo’ man pages for details. 3.1.6 gethostbyname ------------------- -- Loadable Function: IPADDRESS = gethostbyname (HOSTNAME) Return IP address for host name. For example: gethostbyname ("localhost") ⇒ 127.0.0.1 See the ‘gethostbyname’ man pages for details. 3.1.7 getsockopt ---------------- -- Loadable Function: [DATA, STATUS] = getsockopt (S, LEVEL, OPTNAME) Get a socket option value from a socket. Returns the value of LEVEL OPTNAME from the socket S. Data type depends on the option used. STATUS returns as 0 if no error. See the ‘getsockopt’ man pages for further details. 3.1.8 listen ------------ -- Loadable Function: listen (S, BACKLOG) Listen on socket for connections. Listens on socket S for connections. BACKLOG specifies how large the queue of incoming connections is allowed to grow. On success, zero is returned. See the ‘listen’ man pages for further details. 3.1.9 recv ---------- -- Loadable Function: [DATA, COUNT] = recv (S, LEN) -- Loadable Function: [DATA, COUNT] = recv (S, LEN, FLAGS) Read data from specified socket. Requests reading LEN bytes from the socket S. The optional integer FLAGS parameter can be used to modify the behaviour of ‘recv’. The read data is returned in the uint8 array DATA. The number of bytes read is returned in COUNT. You can get non-blocking operation by using the flag ‘MSG_DONTWAIT’ which makes the ‘recv()’ call return immediately. If there is no data, -1 is returned in count. See the ‘recv’ man pages for further details. 3.1.10 recvfrom --------------- -- Loadable Function: [DATA, COUNT, SRC_INFO] = recvfrom (S, LEN) -- Loadable Function: [DATA, COUNT, SRC_INFO] = recvfrom (S, LEN, FLAGS) Read data from specified socket. Requests reading LEN bytes from the socket S. The optional integer FLAGS parameter can be used to modify the behaviour of ‘recvfrom’. The read data is returned in the uint8 array DATA. The number of bytes read is returned in COUNT and a structure with fields addr and port contain the source of the data. You can get non-blocking operation by using the flag ‘MSG_DONTWAIT’ which makes the ‘recvfrom()’ call return immediately. If there is no data, -1 is returned in count. See the ‘recvfrom’ man pages for further details. 3.1.11 select ------------- -- Loadable Function: [STATUS, RFDSET, WFDSET, EFDSET] = select (NFDS, RFDSET, WFDSET, EFDSET, TIMEOUT) Wait for socket activity on selected sockets. The fdsets are vectors of fds to check, for example [1 2 3]. Empty vectors equate to null. nfds tests file descriptions in the range of 0 - nfds-1. Timeout is can be either an real value for number of seconds, a struct with a tm_sec and tm_usec fields, or empty set for null. STATUS returns as 0 if timeout, or number of waiting sockets if ok. See the ‘select’ man pages for further details. 3.1.12 send ----------- -- Loadable Function: RETVAL = send (S, DATA) -- Loadable Function: RETVAL = send (S, DATA, FLAGS) Send data on specified socket. Sends data on socket S. DATA should be an uint8 array or a string. See the ‘send’ man pages for further details. 3.1.13 sendto ------------- -- Loadable Function: RETVAL = sendto (S, DATA, DEST_INFO) -- Loadable Function: RETVAL = sendto (S, DATA, FLAGS, DEST_INFO) Send data on specified socket. Sends data on socket S to destination. DATA should be an uint8 array or a string. The dest_info struct DEST_INFO must contain the following fields: ‘addr’ a string with the host name to send to ‘port’ the port number to send to (an integer) See the ‘sendto’ man pages for further details. 3.1.14 setsockopt ----------------- -- Loadable Function: STATUS = setsockopt (S, LEVEL, OPTNAME, OPTVALUE) Set a socket option value on a socket. STATUS returns as 0 if no error. See the ‘setsockopt’ man pages for further details. 3.1.15 shutdown --------------- -- Loadable Function: shutdown (S, HOW) Shutdown all or part of a connection of a socket. On success, zero is returned. See the ‘shutdown’ man pages for further details. 3.1.16 socket ------------- -- Loadable Function: SOCK = socket () -- Loadable Function: SOCK = socket (DOMAIN) -- Loadable Function: SOCK = socket (DOMAIN, TYPE) -- Loadable Function: SOCK = socket (DOMAIN, TYPE, PROTOCOL) Creates a socket. DOMAIN is an integer, where the value AF_INET can be used to create an IPv4 socket. TYPE is an integer describing the socket. When using IP, specifying SOCK_STREAM gives a TCP socket. PROTOCOL is currently not used and should be 0 if specified. If no input arguments are given, default values AF_INET and SOCK_STREAM are used. See the local ‘socket’ reference for more details.  File: sockets.info, Node: Socket constants, Prev: Sockets functions, Up: Function Reference 3.2 Socket constants ==================== * Menu: * Socket constants - Domain family constants:: * Socket constants - Socket Type constants:: * Socket constants - Send/Recv Flag constants:: * Socket constants - Shutdown how constants:: * Socket constants - Set/getsockopt constants:: * Socket constants - Socket protocol constants:: * Socket constants - Socket getaddrinfo flag constants::  File: sockets.info, Node: Socket constants - Domain family constants, Next: Socket constants - Socket Type constants, Up: Socket constants 3.2.1 Domain family constants ----------------------------- 3.2.1.1 AF_APPLETALK .................... Socket constant for AF_APPLETALK 3.2.1.2 AF_INET ............... Socket constant for AF_INET 3.2.1.3 AF_LOCAL ................ Socket constant for AF_LOCAL 3.2.1.4 AF_UNIX ............... Socket constant for AF_UNIX 3.2.1.5 AF_UNSPEC ................. Socket constant for AF_UNSPEC  File: sockets.info, Node: Socket constants - Socket Type constants, Next: Socket constants - Send/Recv Flag constants, Prev: Socket constants - Domain family constants, Up: Socket constants 3.2.2 Socket Type constants --------------------------- 3.2.2.1 SOCK_DGRAM .................. Socket constant for SOCK_DGRAM 3.2.2.2 SOCK_RAW ................ Socket constant for SOCK_RAW 3.2.2.3 SOCK_RDM ................ Socket constant for SOCK_RDM 3.2.2.4 SOCK_SEQPACKET ...................... Socket constant for SOCK_SEQPACKET 3.2.2.5 SOCK_STREAM ................... Socket constant for SOCK_STREAM  File: sockets.info, Node: Socket constants - Send/Recv Flag constants, Next: Socket constants - Shutdown how constants, Prev: Socket constants - Socket Type constants, Up: Socket constants 3.2.3 Send/Recv Flag constants ------------------------------ 3.2.3.1 MSG_DONTWAIT .................... Socket constant for MSG_DONTWAIT 3.2.3.2 MSG_PEEK ................ Socket constant for MSG_PEEK 3.2.3.3 MSG_WAITALL ................... Socket constant for MSG_WAITALL  File: sockets.info, Node: Socket constants - Shutdown how constants, Next: Socket constants - Set/getsockopt constants, Prev: Socket constants - Send/Recv Flag constants, Up: Socket constants 3.2.4 Shutdown how constants ---------------------------- 3.2.4.1 SHUT_RD ............... Socket constant for SHUT_RD 3.2.4.2 SHUT_RDWR ................. Socket constant for SHUT_RDWR 3.2.4.3 SHUT_WR ............... Socket constant for SHUT_WR  File: sockets.info, Node: Socket constants - Set/getsockopt constants, Next: Socket constants - Socket protocol constants, Prev: Socket constants - Shutdown how constants, Up: Socket constants 3.2.5 Set/getsockopt constants ------------------------------ 3.2.5.1 SOL_SOCKET .................. Socket constant for SOL_SOCKET 3.2.5.2 SO_BROADCAST .................... Socket constant for SO_BROADCAST 3.2.5.3 SO_DONTROUTE .................... Socket constant for SO_DONTROUTE 3.2.5.4 SO_KEEPALIVE .................... Socket constant for SO_KEEPALIVE 3.2.5.5 SO_REUSEADDR .................... Socket constant for SO_REUSEADDR  File: sockets.info, Node: Socket constants - Socket protocol constants, Next: Socket constants - Socket getaddrinfo flag constants, Prev: Socket constants - Set/getsockopt constants, Up: Socket constants 3.2.6 Socket protocol constants ------------------------------- 3.2.6.1 IPPROTO_ICMP .................... Socket constant for IPPROTO_ICMP 3.2.6.2 IPPROTO_IP .................. Socket constant for IPPROTO_IP 3.2.6.3 IPPROTO_TCP ................... Socket constant for IPPROTO_TCP 3.2.6.4 IPPROTO_UDP ................... Socket constant for IPPROTO_UDP  File: sockets.info, Node: Socket constants - Socket getaddrinfo flag constants, Prev: Socket constants - Socket protocol constants, Up: Socket constants 3.2.7 Socket getaddrinfo flag constants --------------------------------------- 3.2.7.1 AI_ADDRCONFIG ..................... Socket constant for AI_ADDRCONFIG 3.2.7.2 AI_ALL .............. Socket constant for AI_ALL 3.2.7.3 AI_NUMERICSERV ...................... Socket constant for AI_NUMERICSERV 3.2.7.4 AI_PASSIVE .................. Socket constant for AI_PASSIVE 3.2.7.5 AI_V4MAPPED ................... Socket constant for AI_V4MAPPED  File: sockets.info, Node: Copying, Next: Index, Prev: Function Reference, Up: Top Appendix A GNU General Public License ************************************* Version 3, 29 June 2007 Copyright © 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. ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES. Copyright (C) YEAR NAME OF AUTHOR 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: PROGRAM Copyright (C) YEAR NAME OF AUTHOR 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 .  File: sockets.info, Node: Index, Prev: Copying, Up: Top Index ***** [index] * Menu: * accept: Sockets functions. (line 9) * AF_APPLETALK: Socket constants - Domain family constants. (line 9) * AF_INET: Socket constants - Domain family constants. (line 14) * AF_LOCAL: Socket constants - Domain family constants. (line 19) * AF_UNIX: Socket constants - Domain family constants. (line 24) * AF_UNSPEC: Socket constants - Domain family constants. (line 29) * AI_ADDRCONFIG: Socket constants - Socket getaddrinfo flag constants. (line 9) * AI_ALL: Socket constants - Socket getaddrinfo flag constants. (line 14) * AI_NUMERICSERV: Socket constants - Socket getaddrinfo flag constants. (line 19) * AI_PASSIVE: Socket constants - Socket getaddrinfo flag constants. (line 24) * AI_V4MAPPED: Socket constants - Socket getaddrinfo flag constants. (line 29) * Basic Usage Overview: Basic Usage Overview. (line 6) * bind: Sockets functions. (line 21) * connect: Sockets functions. (line 29) * copyright: Copying. (line 6) * disconnect: Sockets functions. (line 48) * Function Reference: Function Reference. (line 6) * getaddrinfo: Sockets functions. (line 60) * gethostbyname: Sockets functions. (line 94) * getsockopt: Sockets functions. (line 107) * Installing and loading: Installing and loading. (line 6) * IPPROTO_ICMP: Socket constants - Socket protocol constants. (line 9) * IPPROTO_IP: Socket constants - Socket protocol constants. (line 14) * IPPROTO_TCP: Socket constants - Socket protocol constants. (line 19) * IPPROTO_UDP: Socket constants - Socket protocol constants. (line 24) * listen: Sockets functions. (line 120) * Loading: Installing and loading. (line 38) * MSG_DONTWAIT: Socket constants - Send/Recv Flag constants. (line 9) * MSG_PEEK: Socket constants - Send/Recv Flag constants. (line 14) * MSG_WAITALL: Socket constants - Send/Recv Flag constants. (line 19) * Off-line install: Installing and loading. (line 29) * Online install: Installing and loading. (line 17) * recv: Sockets functions. (line 133) * recvfrom: Sockets functions. (line 152) * select: Sockets functions. (line 173) * send: Sockets functions. (line 192) * sendto: Sockets functions. (line 203) * setsockopt: Sockets functions. (line 223) * SHUT_RD: Socket constants - Shutdown how constants. (line 9) * SHUT_RDWR: Socket constants - Shutdown how constants. (line 14) * SHUT_WR: Socket constants - Shutdown how constants. (line 19) * shutdown: Sockets functions. (line 233) * SO_BROADCAST: Socket constants - Set/getsockopt constants. (line 14) * SO_DONTROUTE: Socket constants - Set/getsockopt constants. (line 19) * SO_KEEPALIVE: Socket constants - Set/getsockopt constants. (line 24) * SO_REUSEADDR: Socket constants - Set/getsockopt constants. (line 29) * SOCK_DGRAM: Socket constants - Socket Type constants. (line 9) * SOCK_RAW: Socket constants - Socket Type constants. (line 14) * SOCK_RDM: Socket constants - Socket Type constants. (line 19) * SOCK_SEQPACKET: Socket constants - Socket Type constants. (line 24) * SOCK_STREAM: Socket constants - Socket Type constants. (line 29) * socket: Sockets functions. (line 243) * Socket constants: Socket constants. (line 5) * Socket constants - Domain family constants: Socket constants - Domain family constants. (line 5) * Socket constants - Send/Recv Flag constants: Socket constants - Send/Recv Flag constants. (line 5) * Socket constants - Set/getsockopt constants: Socket constants - Set/getsockopt constants. (line 5) * Socket constants - Shutdown how constants: Socket constants - Shutdown how constants. (line 5) * Socket constants - Socket getaddrinfo flag constants: Socket constants - Socket getaddrinfo flag constants. (line 5) * Socket constants - Socket protocol constants: Socket constants - Socket protocol constants. (line 5) * Socket constants - Socket Type constants: Socket constants - Socket Type constants. (line 5) * Sockets functions: Sockets functions. (line 5) * SOL_SOCKET: Socket constants - Set/getsockopt constants. (line 9) * warranty: Copying. (line 6)  Tag Table: Node: Top208 Node: Installing and loading640 Node: Basic Usage Overview1918 Node: Function Reference2927 Node: Sockets functions3204 Node: Socket constants10608 Node: Socket constants - Domain family constants11099 Node: Socket constants - Socket Type constants11639 Node: Socket constants - Send/Recv Flag constants12251 Node: Socket constants - Shutdown how constants12726 Node: Socket constants - Set/getsockopt constants13176 Node: Socket constants - Socket protocol constants13818 Node: Socket constants - Socket getaddrinfo flag constants14390 Node: Copying14997 Node: Index52515  End Tag Table  Local Variables: coding: utf-8 End: sockets-1.5.0/doc/sockets.pdf0000644000000000000000000065773715123475646013077 0ustar00%PDF-1.5 %ĐÔÅØ 1 0 obj << /Length 587 /Filter /FlateDecode >> stream xÚmTM¢@½ó+z&ÎÁ±?tBL$ñ°ăd4›½*´.‰<øï·_•è̀f’W¯_wƠ«îrđăc;̣ê`GæUOÛV×&³£øç¾öƒ¤Ê®[vïÖæ6ïWÛ7ñÑTÙÖvb¯“uYt/N¼.³ó5·½êÿ¢¥=åS‚> stream xÚmTM¢@½ó+z&ÎÁ±?tBL0ñ°ăd4›½*´.‰<̀¿ß~U¢Îf’W¯_u½ªîvđăc;ZäƠÁ̀«Ÿ¶­®MfGñÏ}í I•]/¶́̃­Ím̃¯¶o⣩²­íÄ0^'ë²è^œx]fçkn{ƠÿEK{*ʇuÄpg6;µ̃$4»¢;»µgZ8, ’ü²M[Tå›P¯RJG¤eWxm½ñ­÷E™7·¢â ̉"/²îÑ7»¸¦‘¼ưj;{Y—ÇÊ‹"1₫t‹m×|‘£o¼irÛåI É‘c¶×º>[T̉›ÏEnn#×Ûû₫bÅø¹‘û̉î«¶BS¬ØEVå¶­÷™möåÉz‘”s…«¹gËüŸµ)gÏR©đ133wÄ xAÄbêí;¬̉aGL6K& 0+‡}&ö"?‘á°(̉¦̉a/ ¡ć,•!£½¥‰î-fö3¤Ù*IĂx {aªùđ”sIC%̉đhSô¢¨7å£Å}­HÏ=ŤIYƒ¹(îƒêjŧ ÿZóéàü4{ÖØSOØá5˜‡áZ ä®ekxvKº·Ǭü÷…Ü@2aÂ> stream xÚmSÁnâ0½ç+¼$z Ø¨"¤€ÄaKU¢Ơ^C<ĐHàDN8đ÷ờV{Hôüæç=üúØS`¾Jñ m}u%Œ̉ßE Y]^/`»w¦¶oâĂƠå:1L·ÙÖVƯ‹omy¾èUÿ­àTÙ ÖĂ₫v¹Êó‘DM^ug{¦…Ç‚° ÉpmUÛ7¡^¥”X[“ÖôÚă{=1î+kܽ¨8 …@iaª²»¯è_^|Ó˜¼¿µ\¶öXq,ÆŸ>ØvîF^‚ñÎp•=‰!9̣̀₫Ú4gÀêBË¥0pôù̃̃‹ ˆñs#P~k@hZ+vQÖÚ¦(ÁöA,åRÄÑf€5ÿĦœq8>K¥Â_¸—X NˆHæĐÔ3$¤Ç˜{<Ư0*¢5cƠ~ÿP÷ơʯÂùƯ5WÂ42^!0^#rq‰xƘœE„3xÎü ñ ªz“)c̉gl1B̀î̉°ơ•?ŸXqû!̣NA‡¨W»A*dư1ùÔ)iȧΰÅç“Đó â9ç’†NVf¤¡–kô¯VäaUJü†ố?%Í5Ø»bÿTW£=ј«±®–¾Œ¿É5ëñ2éfè&p2pj³V^ócH£Mc†VYxLS7˜E=›₫1âj· ¾gÈÈ endstream endobj 6 0 obj << /Length 322 /Filter /FlateDecode >> stream xÚ…QMKĂ@½çẂ19dÜÙÙ¯¹ ¶àAQăI> stream xÚSM›0½çWøH¤…Ř¯\[u+ơTU¹µ=xÁkGRơßẃ'́6Z­"Ïăy>̃<8KáÇY•±ªI-*ÖŒ»Ô£¶cxøñulj—")rçwiq‘o²~:ñ49¤Î'W–e"́زŸÑgs̃guô×ê®w‡eÿûøy’UP2ñ‡?>•ù6W,’T@é ïWÊ ¤¾.Ësh®„N=+K³,†?OeqY$U]³˜— }wƯ(;êyÖfÚÇ"‘Ư3‹:+§}VE‹jX Fùâ¯!*§áVÏ‹ƠÏëB/.î²²ÏrÑ#"9k5#Ûœ(i¯çvriW9`|̃óÈ—ä¢Ûk½Â· IûáRK$¼à8ÖMçXMfÑ»'rj@*,\¡ø oïXEL«fe/~úß¾<àɵ­÷ÔÎST¨vMjàƠ†g#lWµA%…Đhü ­{ä! 6k]Aªä•wúPû•̣¯S«¬›æ@zû6¦Vß{¡Ô°¨“±x ªa÷Y ÖyD£è©{ph ‚‡„;·ơrÁXÚy…Ñ–bXÂ:,CèUßVÀû‚‘¦̃H0k]½7SO_`]3múD›₫ k`&j¼‘ä ¿Sxuó™ÔǬa˜äf§iĐÍ ic@Ñ.̃›ÓÑ!Ç<ÈëîjÏ/@̣ÊNI¬J…$̀Ú+Ú÷ §n•z¸'æƠN"èG³Uø^ÀX¡'/É^à[¸µµp÷å¸û́’- endstream endobj 19 0 obj << /Length 1071 /Filter /FlateDecode >> stream xÚ•VKoă6¾çWèVXÓ|ˆ¢ÔÛö‘ EÑ-Z÷´Ø#Ó–°¶hHr̉ư÷áṔØ5 Öèăp5 ‡ŸHŒLL¡X¡LRx@»]BŸO"êeZ1)ÿSm©¥zË™ƠÖ«ÇB&"c*Ëe²̃·2g\gÉz“|Njú¡kOCăÛÅ—ơ¯«G­ÁYÉKú> stream xÚíMsÛ8†ïù:J3Ä îÍ;ÙL2IÆV*[5;Å–ƠÚRÖv’¿ ‘ ÑB`mÆ–Q©²́n‹ï# d£₫±QÉG¥™åè́êI¾~ơúÓ¨₫áäÅÖ´;€†¨å/Ó'OŸ+5byVåM/FóL1ÑÚ›₫/&N}r^Î'¢TăƠEưưÙj9l|;¯¿Ưôc3…–YÎø:¬LÁËY^ÁxÅÄ×}¥ÿö kÛe&dÁ›mƒuŒlrPåÅøạ̊ævvy¹X~ªcœ-Ïë.W³sój/F.‹LJÙ Ôÿ₫ÙÖ±±\ăà¸Ê3©n„ÿ˜°¢¬¿ÿƯñÅû́K›ixóªh Ùë·©ï¦QÓgÀƒ®ub[o¸î"®‹¬2Ú+ÊL•¢ñœ’‹<¿]‚ qBŒ×ó³[ó³/–6¾÷ll„nâ|ú¼Ø,ăùú“#ßî˜^÷ÅÆóZ„`~˜ˆæúd`°çéºñQ÷%8˜€‡vm‰P2“¼%‚7Dü;gâÀQ±¨?뇨X&$à©'áD²̉H)g€b¥£X/+(˜VH×– €”¶ßÊDÍÊk7Üé³Q0ú=6}?èÁGQ#²xœ¢–½¡`üI%j„±]Æ¥ †cZ)HÓ`0¯S_f7‹³:éx3ûÔ$Mo¿™$i~ưm1ÿ¾™„T™¨FÈ™ƒ¬oĶ‘‚°¬âU7”‚D¦ èÎÄ¥ ¤ún5ùR ™Hè;Öä ‘₫¢ä¯Ê2Ó̀¯₫æ÷ëpE-₫ç¦Tđuyv»€âÀZø's“«\̀¯ç˳ù†̣9ˆ™œ#JøuÛ~T}Ư ©w'´¤ú¢€nU ¤¦zNay8UÆ@đGeRè»d(5‰rK"oƠqÛD₫t59àz|6/ÿ1_æP*[§̣_M.¶ÎåđÓj¹QCcºÊ’⯵­7Âí*(-JƯ7¬ö˃g$‡…5’£Iè»ñ!\äÂTƯæC´k–Cb£AƠRgœ³–BĂ!cấ́l₫åv0%*ác‡¥‚Ù£Mº|°4R‡Å `é(Ö &̉u ‹PY^:VxĂÊÇLœ ¢Ê¬`e"%y ¹©UM{=E –®I3”ßn2k‡Œh9[-—f–f€r’¢HåèˆƠn­¡x@Úë)@°P½€¸HB¡ü¶€ä:+‹Ê"BÎ7$Údh*u-{íÁÇC#™x œˆ2½H `B˜ ][(d¥`䤪âÓüvv~~½X^¬<3™, ¸öµûóà`Å2@àĐƠ¤L´ëm†D‡ÂáđyusûÑÊ₫Zήæƒ+\rHØeJØ÷v…‹•G<ÎV¡ô€‚ €tƯP˜Ù ”y—€›~ÅxơÅ7b*¡¦}_)HœưGLV?ñ„8!X¦~BP0!„®[BT‘Á;áÑ !—‹³æx¨Ë3V‰´´å±óëc¦QT<3ÎÅ ®ŸL3¤ë–)`&1S5̀ÀúáoƒơÜ"Ó¥JÄ$ÀÉΦ‘U<8ÎV¯L8¤ëX\¢ …& ózö̃€sq½º,ëÂdˆ,Óøë}øiäˆ3@‚Uª¼€ `B!]·€À’IH³¼åf~é)èÂhLVEê[̉hl˜™FQñ̀83X¸~fP0!̀®[frX‚\`f¸eÆ?».u'Lø‘£±FVñà88X½~pP0!à®-8¢‚ư³L p„çvåYÂ%` f‹=VX¬”¢aAX:ơ‚ƒ €…vƯÂi/Đ‚&-,?RIf…HÏ^{đ̉è'g€"ËÔO &„̉uKH!!]Á„¨†Ï†‰¯·ç+óưû`MYƒ*%1¹ iäˆ3@‚UZxAÁ„BºnóJª/™/@6÷® ¾î÷̉­Ô§ü]ä4º'Ç ÈẠ́ơ“ƒ‚¡6ŒéLUàEo¢³Ïmp¿XÓ¦¡{·‹Ơ»Å`é$œw±4/Ứ+ tÀFÎ-¹M¬nܲ·ÈF묀?G™°xT#C·×³¥—b çd »!²†£2²B©htmox ¸CÛVtÚV_»ßóhu5[,ë#j.fW‹Ë¿ø5»ú+æŒn?À´̃ˆ´K°9 „Ñq'̉DƯư9^À"€nzh¤`ûn¶ ¤@7À¤Y:¹9lFÀ™*ǬXZŸÛ@₫ë:³2Ï„ë«J¹.₫ñg>:‡_₫ ïL¹~_·¼©̉”-.G§O~  ”æ´ŒÿĂwï^O'ZŒ_¿œ×e°º4•áïưÙNö®Æsă PÜ`ñø¹AÁ„pCº¶ÜđJ sĂ·sc®R•Ø7ÿ/ß5¸Àüq^êT"Ùä=´Y-DÓ† ´u$ç¥ @íº¥M«Œ»ƯĐBáP…ĦơFô½.N\Í5ëFŸH½ç‡Œ` ÄÑHJºïf Azt=M“íáà°Ï"Ç4µ‡.¾}öj ƒQjÅJs¾[]NZ¬`q{'‚£'‡¿ vqæÄÊt₫Ï;ưÍ̃Ûx~œ,!??(˜~H×-?¬‚Ăr%æ‡ñ×ºÚ @8„“Ă clüa0-+aÎ<=̉aŸ2°æÖÇóå P|a…ùùBÁ„đEºnùÊ ¨Ơ ̀—â ®SơiÅwæ ‡pr4Ø=qsêrÚÇøyó¡ƠÜơx´œ -,.?Z(˜´H×-8ç̣µZ2-sĐ;A«ÂéñïïÖSÊ&-{öjx¦ J,E‘ß§»ö&F“‚ ¤t´RúHÁÁB»nIÑBÎ1)*ˆ¸×ψ¼3)8„ÓéÉñp 4K©̉ïỐ]GÇ ĐÁâñ£ƒ‚ù Ơ>x2­¶®m[µèÙÑlc|zbdY¯|~9ûRÚS*ÓÜYƯRÚkZo„Ú_#X®ËưP-÷gÙ¾Ûq”‘Rí»ÙBYô\ESb;(xRW™cJlï·ÓCUơCǸe•Pw럌gƯàèí›é‡uâđåà(®¿EÚj|ïe±w5g€"‹ÇO &„̉uK„?Capx8pU©w àƯññàjZó2•N©Ü£êBs×ă¹j¯§°Ḅ̉Så" ̣Û2…fQU*7ËäN Â¸h½^}pE |V0‘NC~`›#ímÇÈ 8Âj̣ƒ„‚ MŸî=Á3ÿ`Ó¶́©iƠ’h |ư]ûëÔé³y€̃VI|¯“ª­Û­́ElÙneZoĽ¹ƯJÀ´r'îÔµƯ?đĐM”oßÍđ‚èº0Û‡Ay…¶Èv]Ä?ßO‡K~fퟹعkÉVóu"89<Ä_ƒáộ‡Ïº³Fñ˜9fXi~̀P0!˜‘®-fÚ,I(1e<„2ØWÏ4ßdØ?0=Ư‡“Á ,­°}đ›C{ “»` Ê‹$€$̉¯ Ö‹—U$R Oël aÿĂqÈEZÁ÷€=x¸jn}4Wîz‚+¬//W(’Ÿ0R.ä¶SÑ›F-—ṽx~ûÔ÷˜i¬|]®p³Xuă~¼›™—.ºñ¦Ú½;çƯñ(ÖHÍöœĐ¬QÚûxµ;½ endstream endobj 127 0 obj << /Length 1526 /Filter /FlateDecode >> stream xÚí›ËR"I†÷>E-aAṽ/³£ ºmeƯôôÂÚ ÆFG˜~ü9EƯNAeR”t(#aB‘yΟäÿ‘•§ Qøc‘ᑱ‚Xa¢›Gtyôñ6JŒNXÚ® ;¨åÇÉч¥"F‰£E“ï‘bH+̣x“iôµ5Ÿ·¿M>ơ'y$ÅQRÔL›µ̃›1 ïÂX¸&TÉ$· œ(ÂÚMik|q–)ù;ÏŒ&’Ée7n]üë7MáÍO%̉Dÿ.[₫ˆ –đ́.ư^©ÀB{U0¾8₫ÜŸÄi?œh[KC”ă-ÛưÖî0m’ºôª₫Á¦ư^)Ă>É]30%̀’Mul`¢à=B<0¾trùHÙ̉Iÿ P…ÓJ¥SŒ—&$¦MÁÔ9MŒĂ1iâM0iG”ÓĐK&́‹`2‚èUGmn[ñC·wÜW‚e8tt ÁÚ3†ö‚R<é̀6‡§‚ÈS`ê í1ªØ OÜËÙÀSĐ»8Ÿ$ü\Nú•àẠ̀ªØœ7“ÁN6«ÁAà”̀ă‹©N8uƠDSÁ‘5À±:;?|18XÀç~ض¢Ơ=\U‚£ BÀÙ“³¶lr›óSñƒ=ä物ĂO0uÎØXÂW9âGƠà'6¿Ơ;á ơ/Çưn¯7̣œ­½åmĐaÑÉÜœÎhsh!h°qüĐ 1~h$3BN¼Q[+g” ça­)Ô§?­Ÿ+N,/r…ÇŸµ^@™@®Ñ’•pñ2øĐC³Ư ½ WÓl@¯–ơơ*̀N¶^A1 -ĐÉJvƒá0Ù²L*Ö-N“̉]Ü[Xơ’u‹³eéëV-X‚Ñx—tàä—eđÁ“Lisṿ₫!toüäJê€Ê›s#qÎapø6àI¸» Tr:l’öH®©t¶›CUQ…Me½X!1u¸ ¦ÎÁ V–ÀۀŌ`'`a!“ăJ²`hÖ™÷AÖ~ø Jg¶9DE€DØ@~ˆ˜:SçQC´³"¹ DĐƯ ± ˆ°Ë^5D°tu¸ûFåú Jg¶9DE€DØ@~ˆ˜ºU Ö¼,¡œ„´fCY"k•Ch6”%ngÏ×Ói\›˜/¾ß'Ç₫ L]߯Ïņ…µDÁV i (̉ÖkCYAÓÅ®<’‹¿́́Ï]#¦ÂÆ\Mfª‘̣…ié¤,́áf"«7tUåqxÛ°e¯¸¶ư¢̣8#œÚ²€eeh:¾8?œVÖÈ¡>oKÓëËơ“Ngsb!b°küÄ 1uˆ ¦Î‰Ñ–p©11¼1ĐKZ¶b°€îÙYå)œ ”ÙĂ>è]]—ʌќ½"@ˆ=́??{HLö‚©söàú u ³'j°½^¶yÊÑĂùÏ/¿ôGƒăqÔfŒµ®ª8´.#ËC¥ïí]Iʦ²9,E€,Ø1~X˜:°Sç°HFœ,Á"kÀ"9üw;¡ Hn=÷ A‰_2v8±ÛC}€¥³ß°"@0l2?`HLÀ‚©sÀ¸%ÆI ˜ªw„̣Ư†\É/Ưá°ß«¼+~øñ^îÿÿ”ųémNP Dv‘Ÿ $&PÑS"!Hı·ßÆ¿«’2ÑbfyÄ$Róä&¹(kl€ ÇZ³Åt₫ƠêÂçJ©j_&Ng‹Ùăơ]̣bøÏŸwó›äùÙüf¶x­Y(ÆAÙ) Œ9k½&œ¢H¹°ñư}¦,ÿmŸ+1 ÛHWú¶2bÚĂ”®¦Y~0nƯˆzi×z“"•L€kœ0ÓÍŒ¨ă}1m\ê_Lg?WEĂÆî;Ó µ^˼â$ơr*t9ÿ¡¾[«§đs(ïc·lÅ[ÚƒsWÓ,íĂüÀ…¼ûOĂb endstream endobj 9 0 obj << /Type /ObjStm /N 100 /First 837 /Length 2347 /Filter /FlateDecode >> stream xÚƠZmo7₫®_Á¹årH_A¦†Z´HR w9ĐIkG¨«5d9/ÿ¾Ï,WÚE*§q$6>Àđ®v¹Ï3‡3²2Ê«YE‘²Á(JÊYVÄÊ3̃Å1*ëTtFY£RL¢Êf)(2Æ+‹flđo‚CăŒ1+'`Ù+`cđÛ*K¿²–AƒO]Æ••ef.@H 1;å îÊCX¼"öÊ BT̃*YåÑÔ£Đñ g>¼@ />"âw„g@:C ŸJGåSËNù€…*B1 U¤lg,Ÿ@~@1eV軀‡M)ˆÎœƒ’O"´,Xüvh¡ƒÇ+2*0^Å< ̣ úAWC?!©€pÑ鈦 BDÂ-p z$è+Ê`₫ᕇ~"ăÏÛYD“ˆ₫c¼b‚^0R1C/$¼ # Q“Ëø‘Tbt&1₫ĐG É£•J9Yr*y 3Áb´ƒÊÜÀ¼Œ¯I*³—'¦Ă¢œL€y‡;˜!Aj2Ö¹‘Çọ́L¾f‘T”ÿd’£L‚¡%L¥̀èPYia“<“ï=¬‘¬0²å™Ø0¡IÓ¤ØËr'Vï¤]#ṿ,Ë'Üèîä‹ +¤₫{#¨CÜIoaU¸ qöôé¬yơá¦UÍÏó«vÖ|ß­·íz{«f׋Yó¢½íî6‹öS­đc»\ÍŸuïƠkƒP»¶·äI§|1ÊŸ£Ë}ëo¿í Ϊ>U͹Œª¼Á-¬2ơ·hÔü¼é/Û­z 9ÎÎUóª}¿U»ï ˆ¡øHB Ø DÜËƠœĂàÉ%c₫“Œñ dl¾[¯;À½¯&âP?:âƠạ̈‘ }ăYọ́îÛ₫÷«ơo³æY·Y¶›Bg.D¤º’¼†§Á´¶`£ÖfÍ#X§ảhö]¯”—ªùW÷ªSÍ™ẓ}wóaµ¾ú‡èäïa"ïY;q(9h‡ÙûÖ ÇLÿûâ#yƠHüË‹çåß“7ÛíÍ?›¦[lço[]4zÙm®Z½n·Ím·ø­Ữ6,“sàG¬É2ö¿+Ét¦^Ó``¿₫û?½S £®Öw×ן7ep›±íî±îØc̀4ÅÍ4ñQfj‹Ä¶HkûY Ëi)b»"±+&́Ê4sż]1oWP\AqÅ_P|AñÅ_P|AñÅ_P¸ pAá‚Â… .(\P¸ pA %”PPBA %”PPBA %”XPbA‰%”XPbA‰%”XPbAI%ѱ.„DÚ¤¬Ú{YĐÎÑtÏ×·Ûùơ5<Âằ×K¹\wóå§|Äg ”´¡¼—!–6˜'_Ik {ˆp‘nt`‘á:óAièD”́µ·Ê@:纔.ẲHé“N>Ơ {3I#Â…½e\1‘*=Löl~»ZÈ ₫r &7?½m7oWí»Û Ễؾ‚,²$Ũ1•e=–€>Eăáåøün½Ø®ºµĐ¿h/[8äE{] B́Tñ7K‘‚–°™áȆ$Ó>’CÂóẶ²,·"Äå ĐíiæĂNƯ|øJRÀs’«1ÓA܉ëI°†$M#±¬Êˆù–'z¶Đ3W%Ä„G62R_•̉c“|Oiof_•2ô*́)}Æsx.ûQb¡¤<¡ŒAc]JÆüÊà4vªRzdJ4¡dQl¨J‰E!)]D”vØđ‰(1)"Rá=¥ơÚæªŒ˜&Œ„uØU¥Ä–’ö4†Y.GS]Ê>x]:¶ûtr©*eđZ6´ö”‘tHñ e8%æD“^r̉́ªPAƒs}ä‚MR¬WØm•͇>±ZËb½è$y@>|¢^»!z:ưwÊ€ƯJ’l„[h:ơu–qgµuü¹BÈoäßY÷û|Ơw—óßW×j¨ku¯¯G,*|‘́wïEE¼œƒ«9…lFZÂí†qƠ¥L/'ÁJÛûU)£Å¶ă„2b;’¨*%|Q6ăúö)«Pî&¥EÈúÚQBü]vÚ9z°¥ïD– v¾t¯›G+(|E0cDd=s®j7${ÅƯ IΦ.e¿U>Æ'–ƯrªII™´qă"†"}xå'¢D¦b̀Ÿv N™;Âî°ZÏ—ËÍj}Ùơû…u² Ü㉷ÿ¹q́ÆM«”Đ{º'^L§ª²cGlR¥d$·±*!2~“yRÖÇ&4We„;È~ÂØyÉU)ábCœù†–S Ê₫p:#Ɖơˆi*%C$R!ä/:Jú Ó*;âưq•ÚÄ̉Ù€¢Ṇ[̣Ú€7Âă{Î+<_/Û÷GvT³œ₫hw]}­œ?µ_˜Œ™Æ}ÙÈ_e <®÷„äÉ'›ÍŸG{̣Óô»Íg« Ô'w«tÿ7——ß́¾ú‹¶í©¿ endstream endobj 145 0 obj << /Type /ObjStm /N 100 /First 847 /Length 987 /Filter /FlateDecode >> stream xÚTMOăH½çWÔ‘9¬è®₫p[äIÈ P|O§¼ôm^âĂà©%/H=y/xB¹uR½¬%Z´3%ÆïgX×cå(A-V‚Â,;́Ÿe|x†–Ô¤8™R™r¤Đ¨9Q[!ˆe8J§=fLGYŒQ^9¹@§Â@˜!L…Ăä÷#f„‹f̀ˆ58ႳÁ4ÄûØ!³^†(†Í)ă‚¢Fd¡EØ Èß0†-ÂwQÔb4ln1w¶(ê”>¯}:#+ +¿X¼u 8å@ÏN¶²l—ÇÜÑ|Ä Kăå"#=cm`=zö²̉3¦ËEƒ4†ƠÑ>q">iẠ̊ÀP”HPt?nY­Ô $K8f¢ç ÄM4đ×MµîWuU•«îàơf÷å¦l–ëơvS]×Çûƒs[ï¯ÏỢ¾Œ±v^·‰9Pî6»¦¬:ám¹z<Ư+x½­ï; »̣®Uè¸m?M»¥ùåö[³®ŸªnÂ~)ºÖHvVíeƠ¼Ù¢·À‰–‡ßäß ¾_nö[|½¼ßÜ=·ÔˆSº¤d_Ùd2ÊgÙè÷³QŒ0¿₫ǧ“¼ÿkSyÅfÏetîÇ„®^¦ă₫ùbpVdqJ‘]½C´dH~"Ló?&Yÿ¼m°oh³"ok&:|§>³ưàỰ¦m8qNWOÓ³Å`|9»Ê†³(i’ççQ‚dÈF£_Tvø8å~[?µé1:'ưû|Ç̃Ă¯8£ ûÔœ¾₫ضÔMè̃ÑB6'ºX‹ÏÅ8ô³i”$Făù,‘Îó|’†FIE>ŸæÙ`PüßOüa[7ơª¾‹~æí¤®¶†“I1Ă₫Åä˜₫Eê¤|‚ô ' endstream endobj 326 0 obj << /Length 1068 /Filter /FlateDecode >> stream xÚ­WKœF¾ï¯à’éĐ ñ1Jb9bÉ+‡ÄzfĐ2°ƫͯOUWóaƶ­´KWWu½¾úº—{üp/^ª%Ó2ơÓCd¥ƯÁ£ï¸Ó A1\h₫¸{øá—8öxIJ(ẵnïÅ"b‘Φóv¥÷—σϻ_~̃MÅ"f±’ßèuÔ¾r­…ÇS&x¬Đ5f!ἆq"ư÷÷›~ÈëºjA(ÓØÏ›’>ê6/Q á]&y¡Đ,ÊÜa»£)ư?Ú6ü"€_OH}3ô´3ĐN[?UIN¨tîíJù° ê´¨($S’&E„‡MC_m+{4Ê­ɹ7%ĂĐ1V0îB}₫’Ø/r<)IV ]:¶Ë)ùŒe‰H0w)¦•€síï~ÿ´U!¨uªô¨ô¡rL÷K0úJü²êL1Ô¯äjßµ'’·¶EriîÛî`̃`k¤ßv¤ë²ˆïd‘`V“eG+“[ 7ú'bÍD’}­ïHƯêºèMßWmC‹ÊÚvå¦"@¢ÓY°:a"•ëïÏM1Àyy •/¯–>£Đp”“*óđé̀rfgYø2í+€Dù?Y€Ñ,;Hܘe1.\«₫¬†#Øh‡mññ ¦k̀@;EÛ4ÆFK®61ØT@(u₫X[¤fölnṔ<çNˆö§^Œ̃gb°¡̀ÈÖÓĐh8üz`&4b©)ĂsO\G„B€̃·uM˜ööt˜çª²ÍiÊ"ùu2€Zlƒé­3H–!OKD¶¢®ç'ˆ è~j¦]¸4íwßO†Pv‚…̀ÆPZ2Í3̣pgj“÷ăLSˆá·Ûưªp[¼₫RahWœ¾ESy§¾̃¼/€ŸÉlz€Äyëz‰u¡4å#Tv SM0Å5u¡dnBÀEa^w&/_éØủ0ø×f»Höä#„́̀‹s×8Đ5ÑvîÄˉøƠ›fy=ϘŒÖ̀r”7o(èôơ˜âäÍƠå{u_œ.ưî“1LF’₫ï'S çªơˆlœ³®M1¸÷ØáŸ-ܺ™[cWvĂ·94₫Îk‰Ơæwe —Ü&*¶“¨TBEÁÉ Gwk/5¦ØmWÛXÇåTT*é†ëñ†sZø—n8Ø«Fûñ2ë1º\±Cæw= —ıEá¶WăÛp…¨Í†Ï|xI¯dÿøt3­tLë⡺LkdÙ;¯J–dßÿÛ¯Opá^/lüçă_BeIO endstream endobj 329 0 obj << /Length 805 /Filter /FlateDecode >> stream xÚÅVßoÚ0~篈ØK–ÔÎÚúĐvtí¶¶S›J“Úª2‰ˆ$fN€í¿ŸÏç)HômBJî́ówßww± Q?j µ¹\e| ßJ!–ăE.¸x¦ÎyAdWB½#;é©Ç¼®p§Æ‘ϳWX­²×ê µ‹† 0Lm.+ƒ8Y–I‰½’ÜVY‘åL¶Ơ"5+S&Sôo¯aà‚E76y”ZG}—†婬Y9ư¨JúÁ†›ºƠ2¸z¬YƯ¯‡† ́D”%Oj:ÎÊÔ˜’³Æ\Ë ê@¼†&…ÄVUcŒ ˆ«^Ø·™*Å8o–K’¢•x~ÊK.Y~HƯPÄ2‡¾oOD ²F_—ŒJƠ¬À~&4pÊ„hµj=› ?Ö¢¹ªú )¦’7)4)áÙêïΖ¬H1́»Ô"Ă=˜s›ÿaÅD‚S‰d½ÛÔƠw4$ÿ½äU³¯«øæZ =ë`eåD4uQ߈O<̀Záöén¾g’³Ë×ëÛQü×î.¾¿>Ä÷£³³BTưÔª4By4¾>›pI©¨³Ơ.¥y»Ø$đKÑHWăRó–FdÚÚ9ˆ]¦Î®j³Á̉T¶…×r™há]Øë•Ư©Óœ»‰(6K !ëÆ‰”¶ë`ÚĐ•94ñ#ụ́ZĂ8«‹¼=gû ¯È®ºîƠè́ 'Í<Æ?O¨K©Hx”[kKđ0¸(ĐJYm¤Y2?@ä)5 ̣—Vo%OV»=B·Í$=5}÷¶>×÷CĂ¿»Íëjơ‘v¤YµÈÙ_tô•Ơ. \9ºmË‚•[ xi‚7²8P¹dÆ` Iz¤*ë2×Ó>à6P~£₫ü˜ 5 endstream endobj 334 0 obj << /Length 1585 /Filter /FlateDecode >> stream xÚ½XYoÜ6~÷¯Ø·J€Åˆ—}h&hQ @â·$²–²k¥…DÅH}‡—.smoá¼5œ{¾ïbøĂ»”́̉Œ¢Œ¦»̣pëƠ₫fg>~¸À–.ÂhAùöêâÍ{Îw8FyœăƯUµă$Fq–Oü®ö»Ï ¿^ưuñÇƠĈ8£Ï”ꨈÎȧˆ`ΔheIP¬̃ŒÔˆ'4xæ,ÛRÖ]F4åÁGQ‰^´¥Pjm ˆw”&W·6QT–Å ^YP=°IÈæ»¡(Ô۷󠨛⺱ëÖüJÉïêeá ;ØO]Á̃®¹«¥åƠÛƯ{1”}}­¿‹½Y³oM§̃ÿb¬P¾`ˆ²„8+2p ÂÊ$ø’(éđï.¤8r0N™í›ØQƒW»¥dfçe)̉çHÊ3”ävRD»óóß]±Ÿ}ó>̀¨‹ÍWË$ÙaŒrε‘ăÛư†Ø-ˆD̉ÄQ”M-ZéăES”đÜÑ]ú8a‚8§¤n«ÎÇ̉Ç“J_C• Á¯ægé$^ú#É S'ñ_bû4`ˆ0âˆ/°6]°Á>çG˜%ó  Xêߌr6-ËîP·76»¶®Dà«û&×ÊúKŒ™KÀÁäk’²H}—Hi¡̣s”»hy` ³ hƠ/_V«KÁêƯưêjQäZVº’e Η{<·v ”G<…Q’¥¦¾•œR¨¢¼Wơ¬UëE!•Éêe69›Ô0æXóz!ǾuäPô%¡%_GEg¬FŸ̉l)ÄqÊZí̃Ä­œj£«ZTyÛ9‚ ó}ưè hʆª3!Œ¬ÀU ? 1ƒØT‹ZÏÎ&ç?‚ “!‡Âêt,n„ÅTĐÚam‚z‡€đt@>\̣Qn0†'ÉŒNÄ Óu z-l…­ 2“'Ï©{ºÍ̃ä$Ê=½]/Ûñp ~ô¡Ai†‘˜ B¨MXCü¶n÷>t(í¢îl‹vêt:ê¦áơv¹U„ăAQÚæÖ{å¼<<}heª_6Ó åó<Ô(§üR¾^«´Èê >ËỊ́×OÉAôßD?·Ơÿ—’ĂŒGÖú»5vÓ4V§§Ú“Ư¤bÎ;ŸÁĂ©öz¤øÑ¦S™\]uÚLçŦ ¤q°n³¶Ñ  »ôª‚³å”/]­ơ^¸{3©CĂœÛáưm­ưukätẢ¼A*é₫T˜¶©ÆÀùfºÓ¨¼± JOÍ~øÙWµ*,‚á̃¶ư¾÷* óÛÔbl¤e?‰¸¯åíj̉¦Ám§-€mqk*çŒajÑ£W¤%ƯØ ªOé6‰äWI/ªê,æ>®Â nDïÊçä?nx¡:+È­±YÍz—gÍŒ™ 9V¬ưưWôƯ Ạ̀ ˜6Ơ‡ŒàLK°™l̃×Ă#ưh̃üq…äI8M`"Ô]6øw³zÏĂÓl»oØy}Ó³ĂÀ>Î’³†xÆXđgeŘ„¯Ææ̉—†)ôăœ ÂZL¢§iƠÔ†µ*¾4̉:•÷ơ l%¹³û‚˜vc5Ë4T® §V·…ƒÈ½v¬y.‹ö'雯—$7%y£Ơ—½˜éÈ/WëRÚ–ga„v½ÆFz'Lj‘©₫́áÿ`Èîơ$tè˜eg]ªƒé̃åÑA5pŒÏ¿ểË €w1> stream xÚíYYÛ6~ϯ0̣$1ËC¤¤}h›&Ø"mÄ@Q¤A![´-¬,¹’¼Ûí¯ïđĐA™ÎÚÈ¢b‘˜¢È¹ç›!Ef₫È,¢³(f(fÑl½†ơl½™Áû7ψ]·€…‹ÑÊo—ϾzÍùŒ`”à„̀–›1©e6û|·K­¬ç ÆXÀ^Îaȃ×ó8 åºÍ«R½ ƒ÷r#kY®å|A#.’ œZ₫đ́ûeÏ›SxÈ.´[}*­K D" IÂ<4ªºÙ§ñ ®×´;i4:€¼q vèÇrN£à¸ŸĂÜJ¿é4o+óÛÈ23w3¿aÓ̉ŒóRílåVÖ0M” â» 1, ÷]ר]¡X”=ÓẦ̃çíÎŒªRÚV˜}UË9 e‘5/­Âq°åj=¹I÷yñđ˜en S»M³»›s¤ÅQúØYEI‚b]ÑTëÛöá ¯fÚT*‚µrÇm«^>OÉ+a6&ꪭÖUqµ z£‘¥*̀ÔµFØé¶yŒq:P4đgA÷æ–ŒQÖ·¤5Œ lX,F$¦³­lÓ,«órSùä ÖK¶ï‚ûn¥ÔM‰PÊ‹2À0„6!1J€ä‚†H$6ö"H̀\Pc¾ qỜág5g$x(Ó½7Z×´Xbµ₫ø¶J³tUXƯ•X‡JŸ ÍA çTKÔQ±ªåeÙ4ƒÉ†Å‚¢H„Ử¯ç ’”å@Üv5’S౜I‚&Ư.… >ABDẴà9r#JÆäˆÏ8 ‰¬æ'Ü,~/Ûcm]wó³ñ¨ ¦®•I`ѧ÷¥’Ă,+a‘iÏ*$!%Ô’Ö†î¶É?Óư¡^¢1Ư­®µM•‘Ơ:-ԛ烒`ư1!ªª¡YâÄ[Åbp[˜åKh„0üùír”ÄÄ•ôê”Ƥ®ÆOS £0ä§999¥2JƠ'  ÿƯªÜ‚̣̣„™å&Ë4³>ú¢^€{XÉ̉6ơQ‚ºOp¿ê…„ç¬[̉´i{ôf0˜äq·î“‰¶!‘Uqêm2Éb† /ÉâA /†Œ5¾@—B̃É« Al¶ (bç0%d(aüqL‰¨cá`Êiû¤tT¦cU¦cˆ1Uí{ÓÊLë¥Á›ºÚ[4²-Ơ)/ê@k†¤ôQ¯6V™ÄŒQk>ª G̀µƠ$k1 ù´û:ÑǴFÅZÀ#@!6o7Ù‡{÷,(g₫¹vx¥2ÇH¡¸êÆ( ¬<™´eÖu•¥#²ë›ă\×È y —€á¢Ä›k.@Jú­Ç®J­ ض8ÛjWfZÖ5 éU¦ ñèK±ØÉíIw£†ñEH¼9ÖÀđ²V%Ø),Ç–‹¼ieùÁï˜ƯỊƒ¬Wơ'g‘-ºVéú¶¨¶gñ(|¨ÑaGÄ,~kô´§¤ó9ntBèäËRjc6^ 1TU0€ç4YA¼PçIu Åü³‰®<5@ è¯UVªóÙt ÏơSÓwa'¬Â$X‹Öy‚.zúkcSë\ #®R6»7EZ«^B™À ̀ưq”G;Wm̀T^®«}^nÍ,XvaÓ ̣Ø©ÑƯSoZ•’ü^5·Ă`[›w^?½³oëµjâÁP/̀̀_²®\.‘´q3/­ëæ3éüÔÈ̀¸§ßK °Ôr}÷_́êÖƠ±lï„ܦn0ÆäÅ‘âi@ïºv΋Áp,ịà‘˜£˜Pđ₫÷à¿äA—ŒëÁ èŒî€\Å\c\xÀ']CœZ¸̀lKZÔ Æg×6Ûö¾¡Œ¸%ÍÈûª”å$<µ×$– {d\éû¼VZâVd™Bƒ ‹-Á1¢×4Ơ i°́¸Œî[cî\½ùxC)›úû¸)OÈ”„ơw6‡´†³…¹Ak]`°²]»®–Œ‡pÉMœjyl¦Åpo:›,ß<Ø+讥·wƠ»TÙê.¯ơä4ä^p¢á`|®„PªoQÜ ‰à‚ "Ư cQuœ˜‘Hé ¬ß©3´ïó̉ü¶ƯÖ£½ÍcZ×Z™Ÿ/TsyËŸÀƠù>Lø ©fvrÑ/tc¿ă u4;«GĐ…;ˆd â µ®^±Åø¤Ø̀¤cô_ơ%ÜQ OMXQ˜ØªnW͔Эqé.M­©́±NÍAPÍu͸?æªa²›´£Ô@E¾ºÜz/ü8E8ê3îÇo~ơî§å/ßÜ,½Çk8 !v¿Ëµ¤;ĂhŸÔo:€«·7ƒF˜P>gU Îbiˆ9Â8øÚP“3uoù~/³> stream xÚíZYoăÈ~÷¯Đ# ;́‹l.‡»‹ r 3Á¬± ©–E EjyØ™Ÿê‹bÓ-[µÉ`(²Y]]ÇW_W¯øĂ«Œ¬2A‘ Ùª<Ü$únw¿2ï¿¿Áv\ ăÙÈßon~óç+œ <Éñj³›‹ÚlW£?́‹ă »uL)è7ë˜1}·,›r¨ÚF=aÑ{¹“lJ¹IÆÓ<âëÛÍŸn¾ƯLssÂgôBEƯè'Ú ²Â% ®Ó–¤(á̀hKF8YÇ<%Q'ˇuŒ£]×”2Ë•R.PóULÊr»Ün‹mqWK³`X(u ½µB̉Æ(çœ(!±“’Ø÷Í 4›JÉR7b[ EH,'Ó¨w!9˜ ΩR¶c3„$QŒ(˜érI}W₫\5»6$Œ'ˆ`́F̃®•g¢ß/eá“uÓdn]‘ ,›̃û)áIH†;©ß³Ưk©eR $H>S‡B"ÏPÎ E Â0Çÿˆ¯+"|1~D\ gW÷}ha¾uÏÅVḶq̀ưèz/‹­ ,Kµơ½₫p*"YV?%˜I;²oơƯr ŸÔ‡4ˆ1G%Nö/£́‡̃)¸¦ØVͽU-÷<ĂQ³§öâ‹ Âl²×÷ó ­p«2\ {i.´–™̉2sZ†æÆ ÈÍó¥Ç½©¢Éä´Ó„D7O{T©XÔêªFÍ7È{(Y¡ÙÀ¥„ó“¯0ŸœêÏ É—Ó)ZEW¤©ƒ0gY4æâN¯QjëCâ3(UØwđØ;· ­qïÁf[í>›Æd0âÎx{_(s=TíhËn»;đl-U“Ca•8÷̉.d×Z`ÛZ§]–„ø­{ddú¡º½BÎ ßƯ8¥Íe±¦p(ú _/‡¶³O\9ܹ:ë©̉LúÎ[‹ä?‹ĂÑÁÆGl¾‰yFo5ˆ³èÛĂñ´6¶œF@̀÷-û³¨nhL]ûK£³@7JZFo*–à4Ùʾ́*M…û9øÏØeW4÷`Qb«ˆƠ&‰qØ´6lb† mRߨ K»̀YHW×z@’k†ƒ#ÅÑƠ¯‡5çđc´/hÓª‹ ‘S”ºê»—@t¶=¸„‘\ñ(}Só(sm”Ù| ׆úeê-1Øî0È?5áTu–>̃&«-<„u#–­ơÈĂ«̀©Wn₫j–1µ‚……ÍĐ̉­~kê-KèS¨ ©†È­lÅHÊߢNԦɈJè´)}~ùÎf‚MWé‡m/—ù́Å膬vˆ”ùăUA¿,¨§3B¡ˆ‹#¼½•£D&J‡éÿ,ÈƠ#À&M9σ¦Qv¦ö“£ÅFÉ70¥gx‰¸2G‚₫đÖE""™€¼AZÔÓA‡>@Âj–_g&Zàt{R”0¦—̣bÓ({Eơ>mE}}üܹ"IÀ­¯́#₫ôMη¶áp ûC±pÎÙ> stream xÚíX[oÛ6~Ï¯Đ£ Tï°‡,M‹¬Y“Å.: íƒcÓ±QÇÊd¹Aöëw(’¶d+±È0 b]ȇçûÎ…‚„â$%Úpb¸N†÷'´zZÜ%₫âæư „q)Lk#íŸüôNÊ(ÉhI\‡ê’/³Éà¡´E7åœwøÏƯTÙy×5¢³œËi>woDçÆmaçCÛM™–*ë¨î·₫o'çưƠÚ’I"ßÓĐ8zËZĂà„¢¹ÑZ¦•Â[Ë ƯT*ÖYLº:Ër”»ßǹ3hs·\¢2™¤ gJđ _.óÁhp;³~Ó¸Y7û-€¨€dR2’Fêç/&nѸ ¢ơ¥$J©8̣+•4Œ̉uDA˜`+¸¶5aZÇoÚ0€w†ḶÇ6sÀ skÖ@›“R¤€g"IÁ9ÉíMº̀xçâïcPÁ`6ó>˃`EŒĂ;̀çs»̉ÏÖëE:2¡ÿî₫Ù’8ÓĐÔ$©Øwf\…é‹åph‹n èŒêÉß¶ÈưƠtá¡ [.‹.tæÖ áU+dÏ̃ˉ]{¾&CÀ°v®›~(̀0̣~0>¹³Á¤qôÓxYàráfdËÁt¶ ³)ø(ƒ×N±BÖT¯‚êƯ®zÿ}w·å…ߔؖđóá÷6±r |í²_º.º«ÁѶ]1̣œ2™¢„n(ó_»‰>ÊïÓÖ¬Á5Q2Û§ŒeD ¼ÿ%wl¬ƯpÇÙ¯|z°mVa‘ªvù2F¨1ÿûơ¿6~}hUz¼̀‡ù¬u‹”0€Ea‡̀4rÁYa¥O¶Ü—ñliAÀ¬¸Q^“A£:‚}Ó¸Z(‰8×(í-BezÄDoưËr‚U(\ÿèJ…tnOßÅê¯UWÄŒÀ¥T‚¶S°µ©½ĂÁÇSØẨ£¤)%!˜üéăÅŸ¯FƒUE9 âFëÍ=írO°èk8JVrP"&ÔO{×çg¯F„²£ä%†A®3±½«=bW?Ñw7îÀÄư™rß~`ƠUô®Åm½!`W%9₫âç!}ÇX-ñ˜î  ¨̣íûl ÛΩô2Ü̃ñâ×l5qAlµ†ƒÓx€Í$« $W[ÛÚ¤˜ÓjøV´­ỸÍ…ë@µ> EM ăæ´ øÉéóëñ‹(cA" É×ûˆûz‰z̀Åf`7ÇctD¢4ZưöĂ}\¤âD 瘰%·ä?Üg endstream endobj 348 0 obj << /Length 1184 /Filter /FlateDecode >> stream xÚŘÉnÛH†ï~ ÉÛ]ƠûÜ‹IÛ#…¢'‡ C–íAÉă(“×OY  Aµuëï¯kiB$é‘ĂÈy%¼rÑüÛ‰,}¾ªù»¨Ç¥40Ưù¦89}kLR *î¶M·Ñçǿáæi½xNR¥T¬₫JR­Mü6ñ:₫±œ¯ÿ]-ùç‹»Åób9_$):cĆ’/Ň“¬ØÜÛ F«6£¼ơ’Üm¼E+¤Ñ•·J ½t’‹ñl’¤Ÿ]4ü·1V £ œ«´aăŸ¿Èè–₫üIaè&?Ë¡ß"-4xúôÍN>¶¹Ö‹àwƯ˜e§IĐñ(Q́@V° û+ËSpªfâÖÏÇó„._ù²XWë;_-¿¯o–üÓºbq·ª¡̀&­¹&r̉ k$j·QHkæÔ®Â]GQ¢KS·zE É£…»K“‚’å̀µp~‡‘éÊÈ̉è†`Ħ¬²µ‚"ÏFWÇc­¨Ü`Ø””x¨«+UĂX0Œåíi¾˜ÿOEúăMñ}ơ¥ÑJ›zưï@Î¥¨ZnÛPY»bc³w-+`Œđ:D¬Ù7ú@ £² µăÉßŧĐÄ£óöĐó¡œƠñU«¾€Ẩ5DZC¯ĐÚÖể-Ķ:€uûœ‰/Ï:ä,°#ă(T¼„ ÛR¡»i–] É Á ‚„L9‹ûªº£P]Q(ZF†AÁÀƠé%D¸T]^ ¹j\ ™RZoÖaÂ¥ªQØQÓFå¯ăĐ ‡$* ‚ƒLAÓ4̣¥‘Öê E9ji¶T½JCYº%Â4Ø”ơvWTWf»\Ÿ̃/(¡ALr)·Í9Á}å»zZ¿Öne>³É|e·ÙVë¤@P‘"9Î÷Œ7ª›– 3Û̉¡>Ær/₫›c høí~›0ªŸÔäc`ÿ|¿G5AZ2…Â[u(ë ¬A9₫đ&ưMZüƠ C¤øP=Û?MCLÙ”¤°-x“óV™đe4>ÍÚ‘8]ÎIZ:¡á(éEÄ[Z_Z¢‚´HLø²-pèrj ƠŸă¡ƒ-đr´¨]ÙëdÔ"CÏĐâ hÈ×ï-uLg£®;ư:đüÄB‚…maÓÆ^dYơ8ẹ́üŸ́h–Ï#f,lªÙs¥¸²=߈ëNÅt Bïä2Đ’zº²æÙơ,Çùñˆ •tƒ!StkUÖ‡­á7 ‹ºWxz^­ëÿVü“îÖ>ئ}8ŸN¹ÈỤ̀¤h[˜@9Ưºˆ8`èˆÔöX6%eèÎÏ®¦­°ùɃ{Ó&…”¡Ơˆ ÖÚ"¡l)¸Ë‘ºW¿ˆUGA–” »ù–¿´h] endstream endobj 351 0 obj << /Length 724 /Filter /FlateDecode >> stream xÚÍ•[oÚ@…ßù~´¼ƯÙ™½ơ‰ˆ’BÁÉKÄ%̉@K¨ú÷;ëKÊM£¸J„„,3{æœù́"Ɉ¬¬CáĐFÓ‡–̀ï®o£âbtÚ‚².åÂt«̣SÖúp¢uRxé!ÊÛRÙ,º;ß&?6óu’"bŒ“”HÇ'‰£ø×rº¹[-Ă/æ‹ùz¾œÎ“TYm|́’›́¬ƠËzk¥…&¬i´ª>pëT($Û­Ü*#¤¦Â- %ŒPIªûĂa’B> stream xÚÙܸñƯ_Ño«¦eƯÇæÉ›́»0#ddó ‘ØÓ„»¥)=@>>u‘b÷ÈÉÂÀ¨HÉbƯUít—À¿tWg»ºÉă&¯wưùMB³æiÇÀ_ß¿Ioˆûó‡‡7o*Ë]Äm̉¦»‡Ă®̀’8iZ̃ðûgỖưëá—7?>øƒÊ¬ŒË"ÿ·:́WW7Ù.­ă,- ¼_‘Uq‚#¼ơƯår·ÏÓHƒ₫ P]Fïîöe•Gïÿü7¿W£2Ư‰—Ç“î₫ {5Z…tß¾0­Ú¸mƯ¨¢èª¿ß5y¤ŒƠÓûó<Êïù›µø-¢_–QÉL’Ôx́nŸiœâAiçIÆ'ưqºÜeMôbôÓ™pË"ÎàyIœg-ăơLZU„¤íó86h¿%i¹ùˆ8Z{ ‹h"ê~‡%´~3ñå.«£Î¨gZÆ¡›ñ½itÏoüýă[AçE×I»«ˆÊHĐq k1L&q‘įgBÑ»ưûàÖº*|Îí5ôªă<_¾ûö`ñd̃̃’VdM\¥ơißÖA‡ưk¾&IǗª²‰@|F*󂟉µ ˆ´e^‚†̉êYϳxnøÛ£*ÔÑ ºQ–mg£—YÄñŒHÊ<‚4Î~£VrÁtà ç#\‰ª”€¾åqZ2u'Ñs>y"júå¬F̉=,Ü%ắ±ŸôøÄ3z¾~Ï8 jw:M^uÔ³¢Áû*#u6đ·Ó¼bz>ƠïÀhO›Æ‡ÔzÖ0úĂHϪ–-gÑ8p°³h ¹øíøs¿Ç·g̀t°¿“Ơ§ÅS¸ñ0́j ›‡BB`J0?ëqëPø¥M“ùlc/’Àđ£êÚƯŒ›ëF®†éódg†6ˆD&–^L×Ϻ'ÆÀĐ ;ŒÜ8(«ŸF%ûQéÛ}&äơFâă¼ œ§E®C†ÓyCáH¹Û&²Gö'­Đ›·íª^²0øµ¯$úá…çû‰ơÔtuµH ·G4‘VïăöR`ئùDˆdHÅtơŒ”ßñ´t¦\<"i#¶pd h@¯†¯{u"ª’' ¾ºö¯Æ…Ó‰İ1¨X^"cNñ4¼˜éÉtçÿ¸ÓÏ^Nt×â®"#…¯QçNvë9öùe±¡S8KʇS€-‹A0eRG¿̃5E„¦”—­ˆ0‚ £O›\9a±²êb©"ॠ”*Ä!Ưo(œ—rQ%üŒ¢Jņp yJßE–nđxZV¯»\Nä]ip²ï'™Å(èL6@\w*̀ FTgQĂhbçOˆLß^·̀lj„PEôf¥¸́ndt¿„N{ 4«íRHb­²÷+’¾éª~=B¤»¢¶Ơj¥Q‡/N+fsZ‹¢Ö ŸÑ€óæê ̉ÜmÔACQç‰Ù©w3´³æØƒÓ2GWÑ–Ñ_H¬p„WÄ7°ÁÊ«Ï-3qŒFÄø’ÁÑCqÄGëÇnfH|$ÖgçKËœơ—¼·#=]\G˜B‰l”ëoíêµ-ü–”‰øÊy[Ă~§ˆ"·UGúÀ3₫8ø¢íJQ?̉T̃*XµÇ2ªWúÙ»£ È[L/pÏ:5ÈĐ]̀º À“…9z›z(û`A£Œ%lHwƯ~¯C ôÀó6ͦ/lJ&·)Ä;Ré)ߘ\tĂ#oƠO‹ÛCkk t}'›¯ÈưǹŸr)¤ăÓMÚ!ÛÈmø mV=R(ˆkèº\aBtW«Á"*Vdö<›\ ,\`Á(h^bÎCZÆ9 —0; ävQ¦¹RÁ÷¢+zxi:;ûYßîƯ`ؤh¼ƒ>É6s*ÇcˆkZ̀ÎÀMä¯̣6´°¯-ê•™;Vä€å„"º~Ô'=sK¤áM<½Nơáû†ÀÖs"hVƯ:ô®Tˆ“×R¬×ÁäỲR| øCJé¯o Gå’ â߯z“ç+-k*”‹ %$ùͨ¹RZCUưµ;_ND#t×y@w}SƠAưSKư_»°¿ăQDZ@9ûËQq¼Æ%˜Ÿµ;Cæ í`Ê^Ûå„+ªÎ8X́¼á‡/¥ä ¤ˆQrú—Nïÿ©á£Wíu”µ; °Ö#ç(Ó@+ËÔûb.Äö¤¹këg\BJyäƒ]ÅYdp8Ññ‚‰̃ư· ¹€A9Ë®ă@‘ÄLü’—B€œ}‘”ü<œq¡‚Đ\¨Àx^ÖÑ;ô’¸àyÏk:ȧÄ5gQ"ˆw9Ñä_ê‘^̣wÛδ˜Rè!6”ùO_\­ooù)in }Isøøå°zä5«0¢*¡„ñ=å<_‹zÙY],Ú48LR ä¼* ®á₫UÊ)ëFAÇ%x±•Ï­Ơ(¬ă}߇à ZS9×È0q@­ ‚>`èɤĂÔÏä×_m;©'®û‹ «b¹%GÇNüuC ¸—²7L´h~ zº!÷ ù\XÚp~¯$²:P}÷¯püG€³y™ÁKQ”¥¢$°Âº@Å„¡äêëåDUŒj§dD„2²‘ü|lj¿"1WÏrÓ鵤¥÷‘{å.û¬̣Pú”·£ŸbB?áö=²g@íÄ!ß1,Z’§S¥¢9‰®åütŒú÷¢²0Ê»« ”–JΖNÔÂeú(¯ÀÜ̃đƯ”Éa–ç×dq ¨%Ï‘ûÛÇy‡B̀#HÿDÎæ,g|ÑTEÄư2Ϲ»›ECíĂi±$äJ*7DdnñävFp´KĂVß,lÄñU´1ê0¤Ñ¦*ÎÔù)£Á9Íg.¶Ñ.©ƒT¸R€³6’Äôàẹ̈:‘üyW×CmCä2g;S·'¹÷‰È‚)!Ă¯e ˆW2&4ª”jÉêqâwJp·Æê¤È̀ lj»đ‰nsGÏZĐc[(ÑeÓ"Ç90G“°PJïk¨VÈŒp‰¿)%Ø93Ÿđù/‚1öÓù) öEi†¼ü·2À"…XSØk¥ôöI½Tщ·¿"́Vá—×ÉU?æƯÑ·ÄØ ~àñæ Ôör3(´2#ˆêO±)m649&bœàt¿°—\QU®J«H÷:^¢d¯¢ÊUcé¹,p ,̃‰ơ³è̃đ›i$Út zÔB-h놴̀*6Ă3F#DP½‡Ç &5˜^+Ö2¢ª_æäˆ.²N¯ ȵ}=UpÇ ^ë‰"lDàˆ=q^\ù6^"^.§(Äg̉̀Ä_à̉’ùùï‚¡#ëʵ‡ípæ@q¹m®yOoóó×Öä[0áơè qÔÍG F<‚És̉¬ûˆǯkgª19–”̣ƒ\5s(Ôb#ȧ´±³»ưd&TÄiá¥}ù¹ <Đ‚wXfN—¾vD¹(~î̀È=C Œ`…$Ûà̉5ó ÷ÈÏ£Ùn´»:KÚ³[9‰ÉœĐăT₫·*°ĐÚ•G8¨ØG%ƒ¯ÀEj^R/gôB;ÉFß²¤¾Ïíoˆ8{Á#|]]Á|aÊÊđ²§Ïâ®L®¿(mE¹ơ<̀’÷°çM‘m6>dͼ0¬y¹s·¼ÀyX–HZJÛ=KnŸ"I,À÷‰{ŒûËb¤\¶‚̃â¹!•Í Ücœ˜yMËnÖ®MƯtiÍ0Q&T­*OÙ„•ŒSÜ,Z½Æ¤̣©“¯̉5gËàRĐĂ›Û ê£t(5¾‡đ¦œ@Ë‚<Đë N÷,FJÈÖß*ê@¿ÖXE( :ÙŒœ94tƠÜRUjr§k·0D–¾³”qÀ®Äh`îưGàú†¡̃YH9¹“m7Du*'i¯IZFÁbƯB‡4₫W[Ƴ[!#ưz¾G¥ ̀ùÛ¿ ̣¤÷¢¨|½úýqĐ³xÜ>÷s2˜%Äÿû›_’ư[S Ÿ[¡Ơ`zƠw Ot–èîÿ/”¤  endstream endobj 360 0 obj << /Length 3227 /Filter /FlateDecode >> stream xÚË’Û¸ñK8U#…o¹9¶×qjmo­'§8ˆ„$́đ><|}úÔĐ®-4€F£Ño*¸ñáÜdáMvˆö‡(»)êW>Aûó w~ÿ*u;X¸[¬üûĂ«¿₫’$7¿Ïư<¸y8-Q=”7ÿö^wƯƯ.ÓĐ^!L÷~ó̃ư₫ñ ”%̃ëOo¹óæó§·>|₫ôIºfB²Ïƒäfäû <0·KSß{«¿úAܘѴͰÇÍ7A²O¸<Ưg–m_ƒ(~¸˜aŇ[fW¯Oº—™±åöÛ]˜y¬ ˆ¸iO¼g¼èÓ£%Ócfú]à<”ó˜<_(;̀”½i»;xÓç̃œ/ز8 =U -÷j­»€3đ®7́*óˆÍk*…ƒ'Ù1^Ô(»®z `ná*=wMSʼ'¶Oˆ§í‡{Bo˜ „\Ưàníá…èBƒ®MÑ6åTŒmϼ©Ơđ8¬o¿zäez¿ơí¹Wơ-ܳ? ÀTC׿AqÍu¬“%›G³¿äÑÔ”xá,p¾̣µG°µ‹£̀{§́…˜ôêÚ_Å —*Ë^|¼½0̃ô™ÈnwœHDC·²»)çơ½¦Ç6Petƒ29Ú…µ²¬€C ̉™§y¯h¾™öL @ ³/ÑögƠ˜ÿ©…º\½ÈĂƯ–áûæDCƯî̉œoª¸yBrˆÇqrEJ•đçGABÏ”yÏ<:ơmͽ¶çªTƯ(˜«j9—{êe2gÅ“ăöøî¼¢í¤† ªîÆ3ơú¿“éMsF3¼"‹‘ík3  éóÀê .jlOs§V-’‹­]¤¿«b\Ÿxwˆ=à̓E‚3U£Ăâîøq+€iNÖfÑ¡g;À³¡yÔ¥³j±jbûØE³=Óª¯ é̀.ÔˆdGDtkÏ<*'ơrÀ6âÈÉΦ¾1-.²í-́Ár1t†áZƒ¾;y[có'®æ®ë+ó/X~ªI(9x™®o;uV#ú0ñ0œC Ü'Æ–A¥àăF‹äfà¾-Eñäq JëÖ0́‘?r85¨đØ "cHƒ]Đ—°A4™I\đÓ¶\P₫‰[f*.Z÷BVÙj”¢2̀Æ':µk†ª©¹5W¢h^´‹Ưđ¥Ö#qÈWµ6ßë' Ăœ2r>gk¦̉d/@ˆ[ÇÈ„aº“pJ/O>̀ƠñÍØÚ•Å?´ëđ%ZGh¶ª/zA—KÓgÿ4JBwă£ù˜jüƯ ‚·ÁªtÉ¥ ˜ă@“Êư6s¨âñ²îŸJá=[_ u,5O¸OY©­÷g¶ªŸ²Ăk‘«¤wkDœl´¯aë¥w¦/q#û(„H¦ª¤äÉ+² W‡æR¦Ï’¤ °b“ÏÑ«ơ[³™eQ  ŸÍÀb~Cªø6W¤Ú˜K<§ç­ 2g erl0đÓX|&?, •è0ÁÀå­Đ.²Ä±o+™¼´ƒ` oX¢nÿ£uu-uw{ÜÈ[J¦YËIä±ă >Boèµåă_Đ¥‘÷ÅêyÍÁ eÁk$Àù5«]7ơ"¨äƯRyÄW ¶«ä!Óh«®‰àS¯¥'q¤`™MÉ–Ư¥Â[XÅĂ^ọ́S €©¶Í]kíP84 ûØ]?aLv–î×ÙĂ¹@†˜)æÀ̃Đja°ÈWÈEưBµ̉~»†¡ĐŸ"Û¡D=›„ƒ3 !d 6÷ ÓlY«¢ÑÊ#¨\|”çí8®́5 ̀²‹I%%KUû^Ê ‘o3m]¬ ́—ÔÅ‚9Ñ[{s:lĂEɇ&RwI:„ås£à7‹/lly—ăD4©x(²µ©Ú”döƠ²ƠwkS`í••sa¢ä²0ÊÚ™ó¼Œ?́ă$è$+Ÿç÷8G;¬u9aæJ0¦¦ΖjT<‡eª„4†3óŸy5cÀ`×Ê"€đÄ…øMod‹̀†hW8aÅ Ú̀qÖMÊÅíÇñŧÔáÎX%íø?—ÿ5ßz endstream endobj 364 0 obj << /Length 3157 /Filter /FlateDecode >> stream xÚÙ’ă¶ñ}¿b*/Ë©ÚQx“²Ÿ́M¼•ÔÆÙrÆv¥â<`(HB-…‡gçïÓJÜIJ@ƯèJîbø%wUzWƠٮΪ»¦{t<Ưqă§o™÷‚™ß?¾ùăEq—Ä»}¼Oî!ªÇĂƯ¿¢ï.—û‡´t0_î²,‹¾û†¿~üyôA÷zT-C?-O­i¸ưÑ4ºŸ4 HöU%Éư¿ÿúæÏî@EŹ<û?OogÿöÙ®:Ê]\äLÄăÎUô~G=!EU4Eư‰áÿ–±¡9eÔk}`h?̀Ü0ư}MIÔ.Đ:6Ơßg^æ³Ă3ŸỜX–I˜G°QŸ4"AlÔa65 Û2Í2 ~H²]R$LA£Úö…™z‡ù>̀g=2đ¢ÆyâæpäQDMtCÛÓ]3Ư0vâ!&}ç6-veR†l”7ËO wl<ÇA¢øóŒ¼ÆÏƯƯ?”e}¯&+Ÿîá̃ơØ™i2C?ñâƠZ+ơ-JsG£9q+dnºßG§/.eK ;€¹ 2ËÉ=‚Ơ( ^[óZËp₫|–)3At‹i† ™;ƒ‡̃î©y₫§qüƯ»-áQ=n˜§rh¸Ï߉…tzjeä‚—0 ‰¿›ƒ–uóYÄÚÓ¬f oPfdå₫NÏÀưt₫‘˜‚0Ïèè/°f&¡Æ•¿ÅI9vÓêø|ú:ç¬ÊA0–¾5¡`WŒ“½RÎÇÅKyVÀj±„¯¢ƒ}s‹Lx'¯̣¥ÁĂ2_–™Û¬|‚¼'EÀÚÔÙONlfm·jÛ%i !y’‘Äă7\5̉ÉøD2Àm3Dà8à¡oe‚9̣0SCDÀ;bÎÉf,[j¢á"+L9Îs0ä#§+{„D9¹x̀1;ï.1EQÛ0/q5K¥wx¬.“E$Ç{VíñC8úºĐ¡,¤̀¨›™}5tÉÊaƒø \£ø£EJÓÈβ‹PA»æÉ̀2‘ †ÄṢ̀•·³”¶¼=q›4¾î°›ưỆ3ëóP2r·“9hwgä 0bĐ-©÷}ÂÁ,üÂc¬›7̣÷r]g.…&G§/Üq$ÆŒÍ̉ÁÖ7́_9àÀ¯¡f&¨ÎÈ̀µ/7ØYëløá| 7x&r̉âÁN@ÎA9"è­ˆ¶÷Y½0‹he Y¿Ă·"¨Vt°“Ä–ûlR…‡ £ØIàỢè•L!“Lâ¿7°úö3æpoÛG}²÷ûSÀĐˆ̃%eß±Y0ï‰å₫¾Χ„a¼°•ƒüˆQlUp̃y±†ăGèMg2oØc§„ôJwvf‰ eGU ¼ĐWƒ÷ÉÈöư¿;ê¦Å$bÈĐ'Ó¨–QtZMË(ÓDHnÚÖÀ© ưœk¤`æ%dâÎqiѶ-±!ĂS‹r²>a²6ÓXTPZà5G₫r^_ỵ̈éïØJY{«UÜF3G Ö„¡= ÎîØ₫lÈtc„”Dù¢ †ăÁ (ś÷%Ås™qœ9AÎ̉*²'B†ö‹É†a»2îy4h®K N¨híQö[(¬>3TnjÚ´)¿9¨‚à:+;½0\á§üP¸ơB”?Ôkœ4¦$ tÎC§eæ”hpæó½đá”ÚÁ¼Û“‘-›¯+%‚Đ̀¡•P§UÜ£Ư*›IU¾}™%à>ñ™́­R­X(mC$¤kÄAÎcæ¼ sc=6f’à1 SŸ B¬FÔ®-_x«ñ-vE°r²d°K57nB —îmfRÇ>´ÀÎÁLM«LÇ=w±Ø1R3 ¥5Øœ2ú {1Xפ„‰)k~]ä́Ăf™p䯓I˜fXM U‚F+ ·ƒ…¬WG CàúŶ)¦_Ÿ̀¼Z{μ$”„rªO>₫Ưë‘ơ0t1ăÁWó 2y˽ֺ|ct1¸`Ôç4¯ù Ø̀@§Eă†q^ (€k½O„TÓ’?‘ÄÆú€£ơ9̣VsÔú•ô¨xỮÿíº”î_•û/H>dR¯?¹øú^{~dÉF}&( ™ø¤&Ú?‘÷‘D́?Üûô æZûá›7W‰#,ÏBÛMŒµ?"/I8ß„Ay—¬_•ăw’}ămh™Ut'·H{`Ƚ•Uë·²Êçä!kÁ†0]†‰¹́|å€*÷Ès|­:ª…ºĐ¦;Ó>I——È£«vL¶FEE=—JÁ7„«Øí“+ùR"_üàRæaÄVRɪâ’öñ„t¦sÄ£ÖT̉¸w%enơ´ œ,‚Wa$ăe&¾}o•¦AL™¼ơ8ͯ 6G "xP«]åâç5ơO!ơè—™†^P°CÎn]₫r Àc@V'.ÊHY`ëT @ [4 ®Ü“Zó S¬ù&Ê-7/Œi`f±³ª¡×9Đăù{v#˜èåàƠny0ȈÏ7đ@à)…O·2;2“•ÀἉ 1vỎ̃2æQ¾«K²ü3E}䥳lí¥CÎÿÁ̉¸Ú¯¯º‘«ö¦ ÜÁCÏ?‘¤¹¥&„ ¬ĐÓ kZ„)Y†neâ™?Ïg(àÉăsn/ZWû ²X"(zå×7XŸ;‰Cyk†"kp~nËĂ4iy™E Ù‰œÿ#€ïÇ„S"ªÑA›¹7ă,|3ƇâuNffÔ`0e€c.Xç%Å'̃A‚‹<óá¡]!•(ùGÊCăby endstream endobj 368 0 obj << /Length 3197 /Filter /FlateDecode >> stream xÚƯZKä¶¾ï¯ø50Ưѳ%9'Lj ÆÂ°×‡ Î#±{èí–:¤äƯù÷®)ªG»Ùs° 4Y$‹¬ªUÅ̉d)üËêü¡nCSÔƯơMJT{~àÆÏß¿Éd̃&÷æ¯ßUƠC–Ú´Í̃bVïú‡'ßÜn»}̃$zèÍÇƯ¾(䛯ù÷û·¿b£L¾×ƒ¶êÂÔŸæ§‹é¸ư£éôà40ÈÚ:M²|÷Ÿwÿ|ówá@U^ª²øÂÓûÙÿC„,« E~<¤UÉR8ƯMfP’<©ùGơ½A"́*¿ ›†¸₫Ÿ̀X‘¢°E¾¶|ô—[αAë4Ú+·ÿ\”=“º¡}c€#₫rMDetV IÂñ2_µ ŸVĂn-¸đ5 ød 8Gă™]uoæ°£cb±†P‚́† §û[V”ê|Æ 3é¯8>™û@¶%F0ÊB³ÚÍ—É g¿âF°æüLwWB«|Q¡¬—ƯF¦\̀ƠÈ`8€ê:r+3Ô†e.́¯ p˜a_Ç}ÂVéă4b‘²ä/2 Ư©4Ÿ8PpH •x Đă¬Á 2˜~Fo$›‡«ƒƯ8BHØ—u›ü0t—™ÂφtÔ#]øâؾ¾đ8æwàGY¼ ̣ëíÉâ€yläB@£S³“)“¤Mœ4êÛDƯnè©ñ?øœFỲÆF ¯¼üb8 ‘ƠáØTëy”ùí8, x!€!‹·ă°ÿür'±ù» n¤c–+rŒÑ”™}U!#A§ê÷¨ư©¿ÙR»JrơH>~$X»)°@ư÷¢0öØÁåÚ;uR²)ü’£:̃»ô¶(T[ ÿCç6=ÇT>Ë6„4¹Ơ­´R.`‹q+8ϽƠªWOùv´p÷ăpOØƯÛ"(C kôSø'´&ÁÖ‚ÉÇçÑï8"x9ât°…Ư×´Iuh³;<¨M„ƒ¶{´bÔ*ù]“5Û–­Y³5¡k8V™•ä˜qæ(Ăú`Ă E[™¬xñí™h:r0íFkf̃¯I~K«Ô ¿`Ơœ ĐÜxơ ô‘6×q¢Lk‰À6ĂĂäœw„Vpˆj0¼=OöaÛ¤ll™é̃äØ₫-ÍÊZ¸ø­ÿô³%üláv­°.—ÍÚẠ:^•5>íæèÓN»ŒMm7¦r"P”KÉHVĂYoeè§ÿ;pÄIû&8̣:[ƒ#‡WD^gy@ÎVLú`Í©ÓF°|Á™?,Ï1yâôEwø½hE «5SÉCieL_÷:ªD¬‹²`ÖØPvóä2’J%~̃Á°œ“GÜaMb-ÄÆ†Ø+Dé<Me-—@Ầ ±qiJÎ>k—iwZ¥!̉8Nvüû:f1ë`×I˜\µ‘!êÅ@gC`Qî™%+t €}¨,ˆ<Ø ÏđU¦ËlZ—P ÓØ/trT»e²O”a|eû-oï -7‡¬ë%Á–0Ñ?q ¾Ä ̃U₫mô4 ¶A n¿Ä>˜æ/µ‡è-·„S<?5Zʶ8¼vQn~ Åḿñé ê‘÷ÙNY‹»Ç†ßÔA­Œ2ËÇæÔú₫&c›/Qù§×ΜÁê”.B*wđD‡…”ÉÈZtÄC̉=æ̣‰¢är7%¡© )]”m”`Gÿw6’PèA Hç–Ú?ư’BÚl;† n8Y]¦¢á¢µyâÔU†¢·Êvmßó«ñÁåE%˱%ÊÂQ®†rùû§ÙJˆ±£‚43[Ă´„J™¹/e"É¢N¬°”››Ơ80É6̃Uùb+sC”M¯œE^½”¤mè‚ëú”·+—Û„BÁ÷Ǹ2¬ơHÙđ€_À{K*°U\–­ê(v`^ÆÏĂKøÀ„¸öïßjû…+@°œŸÎUT§ÀÔ¤˜¥́Ë zĂxđ]oÏ}¼N;2—¤øÎ1ëW\å xú–«T&©ld{nbÚL,8zó(¦Ç)³c̉Ö…ĂEdH8X@€’¿¹À÷8₫¦Ñ¦÷¥:̣ÇÈøª$‰Âß­Œ–'=ÀÛ—V°?@E[\‹ô÷­)×¾ ‘Ç®c3Iư° ÷N¯yዘ˦ßM=BA–¶äø9úLXÂ÷ Œä%|ùà%RbăăÈ3äw2™ƯPQoÆg¤ûưÉ…á»ô˜/jFV“¢i2(˶gñàøqfÜ@$Ú\û/|5*₫¬gœOÆÂW<¨ÏrrZø7V!9X'~"¢ ¾v¡{ÿṇŸ]0‚œ^–:‘¸f₫tG~îêÛV'aR&++©W—Ơ}¨¬Ö¡ºPü%MW₫ §µƯOă>t„ŸUƒ»:­ăJ5Ú~«K€|ë@Ç \e¤³„Ï­«LM2~Cz<¦·Ø”g^º q ƒÎ€2¥&Ưöï@₫½Iå¸gqº¼üîâê‰ÖºÿäË9.0Ÿă?<¸ExàQ‡ª|•ÁKMIª²˜üßçPưg¾̃••ÿÊF Å®¨ÂJñ­â.₫ R{¤Dù!YºÅ·¾“¹Î×תU‰]ÊàWÄbc¢ñ™Ö²Ÿ$ä›Iđ½áÀƠ₫‚ZÛA—.Z›r‰ F_ÜDß7¡ư£y²Êúü¹LKÿqÆH×·CĂW®ü4ÊmÛtóƯØzÀ´é}Ñ-ư|œöđZ|hô.û_}û•>¤cï'+w* _1‰_ QÅE“ß póƠÏ»Y†Ô,¾zägIü¹f]µd“åo% 3A À°¬ ÿđ¶₫8e»́ïCûäó†£ÿ6Jo ́RîrÄ7¬½̣C ©̣%î(¾IíG L ñøu ₫ $đä † ö¬đG1½°˜­/Rq¯aEôÚÇ®I’đï₫ƒ Ă1 endstream endobj 372 0 obj << /Length 3307 /Filter /FlateDecode >> stream xÚZYoäÆ~ß_!ø‰V oÎ8Oë$6ØĂ–qZdSÓY9á±ÚͯOU}Ơ¬0¿yzó‡o³́. á1º{ª×[=Uwÿ ̃].÷ñ!°må>Ư?$I¼û¿ß½ÿ•?̉à;ÛÚ̃4€₫4=7®Ä÷®´í`iƒèX„A”Üÿëé¯o₫̣4_(‹³Ç,M~çí=öÿ!á˜<æDG₫f)ˆ΅à^Z[Ñ­8èz₫‚¡kR®-» .ËŒ®k=üx0vüT¯ ´MăÚ—Çû‡,;ß+~eGÛŸ]K3¼́x²z°®¿ô°¶ÊnđŸˆæ‡(yŒ²D”];LgÙă¸]üö₫! ó ê¦ç± ”f°>‡“iÏ&à½%|"*@\‹ßÚ0T¦:=°«ußn"¡¿X¢<ĂàÛûC2ăv1ưèÊ©1ư†³¥>>é:¥uóụ̀ƒÏø6øYí)ăi°=ÑŸư¿EIÚvư™ˆư³èV:Yï g<¦" ƒ²1Ă€OfYœFJjáeg|ÓWƯ¢†´Åa4ă´?n™@cf‚¢öÛ£ç%¢«Æó“,jÆx=‘µø´œ±CßúÄ$ÉôD₫2dëtÎtOz-ŒO’œ§‡·ǿÏ~RGR ~F´0Q0†å=+L‹ƠáHƯRˆbĐZ‡HÓ, ̃ƯÎlO1;º¸2­0YÖIXNÀµÀx,æ@¿‹a‡±^l½Å¼₫dà Ó3É–üIŒN˜V6Û—Î4¢ÎGP5 cO€=0ó̉( Ú®}X®Ïå}Ê,kqa“³GÂWo/ä,@Bt- 4̉€ư§û-Œ̉R¯đYÉôøơ¼û0ˆ̉}ÅÚˆĐ#dÅólÔ߷ı¦ñ₫8‹ÉÏÖlè ø!‰ºđ ¾‡~~…‚̉̀O+ëälM;(¶Póƒ3‰Ro#Ú›óơJ[M½ơP3bï₫kv}\3Γàƒ8³Ï¼,. gN®Ăn!€̃₫gr½p &À Äa ¶0ºº"$d:¶œØjxà…"̣²ºÅG¦“< 4è-jƯ?¿N«v{E<øàơ¿p}Ixđ<'ØOWú ê¾;ËpsKêñỜ§A€?u=É®¤£œD,Á!ftS_r )͈~4_”đƒ~»ơ3́sµ›4*6¾ê-Ù´°Ô+W|âyuTåÔ˜ø»¥ÖƯ±'?h”j¸+V9Áêä<èƯËiö₫ùu*¤¦9P€Q3Î3‘ä¹r$ÇUxúŸ{&0èÊyĐœˆˆ‘ù¤œĐN»\ïB9¤»¸9Éb½ƒJ«×ßqbÏ0z÷Ÿk>B X|ûÂ’,“dư ₫ª`[9{pns¥‘~)¨Đ)¯hpÅ}•´)Xoz³dlE{G¬{Q¼¬̃÷ƒyđ‹8Á/Ôkóa[”4;̣æC5b¨z=Züc¬…DX LIÙËÅ´Îïø¬lÅ–µ ă€̀ÑOÜv|3é₫r‘[íBx´çEÂdfŒFʶÀIÍ/˜d¸ Ö:M×̉bí]hÆ­i5Kf(]£¯3Zfz;×̃‹X=̣Ù5nVªT54ÍçĐ½„®=Jø‹C“ôÀrILÙ"é`±ÜÔ›h:ûúÚCXGÅ7ñÀ~2çKĂ)uZdËúÅQ̣Hœ7Ÿså¼Ó…"a2³Ú~æí₫ö#kđ®£—0·‚e ä=ôËY«®«ûJ•²N¤PzV Rđ•øÍä÷1¿ăp²›‡Mœƒ<̉÷‘ó%ùŸo‹”_›(]?*Äö©7¢™>j³¾7z¼(•Ó:Ưiu1a“ÊŒVk‰ÚO-FV Z<'f±/>æ¸m[Àwr0ír%í¸ˆ–ʼđ5&}lœ/ç¼ä1ơ~j|¬°¡©üµƠT†HqZl‹Së´Đƒk@-ư6ó-¢ÀÔl²XÂ!w$È&JExífY¹Öb́ûR³EnätÇÇ^÷Ô„¾nBœ0'¢i!Q÷€¨›æ+Eă)©lđi0»ëg(Gt†\¤3+=AƠ?–ÓyU đG $´·e°Ñ£G ¿æVz>W’Lƒ˜qyn$;+4];øt­Đ+ˆ<­ :c‚̣mOSLŸO†Âg•ÅI¼H½9¦Z=rIÖ¥áÂgSŸîơ^:½º Àƒ/Û÷dSûZij/F\ÓR°·ĐÎ̃U·$™‹ª’́=…4‰yGVÖüm•¶à6jNí«ªr̀SßMâ8@I怵{K¹C²YF^×›úÙI>|°®Đç­ƒ~"JR SÍ:µ:ø̣t»Bœ†̀9…̀}₫äÍ¡'Άٳ£ öSi/#Üù®Ù4¥CÀ»GÎús×{H­rqo(ÙÄe#iÁç[²Ö_±P¥›ñ~kÎɱ²î5uXb_iÄi ©”û½Â(½ôæ Lßu³U| ¤‘Ô¥7ÍH`–m»éå¤'©n úªƯŒ4s©üÈc;ƯC¥ÀÊ«­a·=ź§qÉv Ÿ,àËj`Ö0ˆ,™RÛÆUúz_*.$¸™ojÄø_9¡§ă¹’Ä•Xxï[±`;ÉØ%l·ø̉î¿—p~«Jˆa¾4BĂ¥ ½:•4ÁQK£õY²Íđ‹Àƒ%|T£ÍAß3ÈẠ̈n`Đe×ÔèÙÏÓèW(¢]4fG(‹₫$Ü Ả§&Âôµè ÎlCỤ́rơçM3'ó‚'‰|xä°O^¨₫!/~ƒY₫Üáì~ëc£ÚñnL ¨(IÍ™·8̉„Ăç†Kh#¬…€³ÅËn.j\x5Ă9iƠm‘IÄRă…%#Ÿ€¹ÚkÂÆÑ ´̉hSơÅá`ŒÈ£öƯ…Èí6A/>I×ÊÄ2Đ®̃µù÷’p̣,ü’…”'ÎÖÊLÿÈ‘­Êw4e¶Æ¯ö›ÈWÎ^K²çØ¿Ê3’F3wäȪ̉:àçÆ‘0p‘À­ ,<§7ÂE«tM¤}ćúđœ/ ±¼Jæûæ.`SÉ´¼Ö~‘ư™ Λ|l}ˆÏÇ’ü‹/̉_Œêøy‡¯eiöxŒ®²J£ éŸƯ@/ÚÖç$×Í ™B§ACØăŒß8ß›ÙÇ:©RYÚóc6”xK»èƒÑ:ạ̊4Çú|ÂIj¥Q¦YU[mÓåEÎQ®éy ~ܰésúd=¤vä–7ÏÊ›ŸÅ]Î xyGíQơ,=uôÜ  …-b‹ ” ä—$yb́†"tƒ)êXÑ´—ßéP»ø#½Súµ/dû;ßüƒ3G|®(›}ơ•~Î*½àƯÆĐ̀¸!Ͻ÷7dxå†K£văÿ£$^YH<ûó*CÿZfüÿɺ™ÿø·ư_¡ÿ¹'ï# endstream endobj 376 0 obj << /Length 2975 /Filter /FlateDecode >> stream xÚÙăÆñ}¿b' X)l̃Ê>M®uÇ0ŒÉCÍCƠÚi˜"å&5ăưûÔƠ%Nb,0́ª®¾ê®̉ª‡ ₫©‡&hÚbßÍCw₫Ö}}àÁOŸ?(¡Ûá.¡üăÓ‡ßÿµªT¶?dơđtJ·z:>ü{óx¹lwy»1ĂÑ₫ºƯE±yü?ÿđO”›Ïf0N÷ŒưñúÜÛÇßÛÎ “ Ô¡É6ªÜ₫çéï₫̣.TåƠ¾*‹ßx{Oư ²l¯räJ½Ïª’ßÑí·»ºÎ6?ºñÅ>ÛÙ_á™Úœíä̀Å™É [xç¬g;<5ø;¿A8ûỠMêYv̉³qV÷l€˜ÑÎürµ.œ—ĐÄÙ£ư’©̉‘7ªÚgÍáa§½ª_ưïeÜ÷`eSñÙM¹™®ν0ÖŸÏsÏ,6ÎÚư¼Í› œB0=¾Îèiôsox‹7ÜNăŸor”˜’nY'\âÉ“Ï<Í,«9»UàÜ”É[ị̂‰u¸„d;UïsßN5û¶l™ú(2û̃E`y[đQ8¸N28!«qp!Ư³3=À£+đ8™‰QÈ=üú|‹êIaGçѲ¯¾Î/I´y¼°@m<ïƠæ ̉¿'>><ƠË8yª‘§₫Ùt½ø­U¶™QE*à§Óïˆ5|!pbø:cÊÙé£!qÓLOÂ|c€ùDW¸æ„·6¼é ₫Ùë.@  ẵ^F^ÖĂùàßr«êdFE#öƒÄHú’U3¬‰î^!đ¯d¸Áü‹Íf́ ëß́üÂ#¸é†ÓƯ|ơéiº/³ß£ {ôV?Û̃›Lj±â}H™¨ûưYg/VüêÅá T]Ľ–ó~“́xwcÚ)½1"Nûo¼ÆÑ¬4kFÀk·!ԻĶQ%I5/ª±g­̀Ơ¾†¿9‰=yTP\¸²ăá‚—¸è €L–¥Í“úx´xo-ë@àçI¦œĐÀ“' F˹Ø|QEyººx¤ÙÙ̃ÿ;F¡ˆÙq³¼w¯g£Åw´ñS-b‡6!f•Û]Yd›¿ …x²Gđ4gôÄ_Öư+“:2´ÎȃL‚*˪ĐÏ<$ÀE»™7à[ÁOï…¯í j¦ÆízE¨i§­×¨¢•˜c'†¿¸±„œ8 ³̃¸‘ø916d*ˆÖưèw³‚‘–% ̀»ƒ§„Ülc«R9~\{Käî¡ç¬§†•çäŒóæSÑ=HŒ9‹&5útÙ‘Jw=‡À47L÷‹«xw¾A¸;#1pÈQư! ­<̀¾ ªÎ90ÀWÎÿ¦%†áPÄ# fT?^áTà`r²t„?+Q#4oèFŒ¼OpȉÎ́VŒËëḈÙÙ\I~¦|€ÁQ wBÁ÷)°ǧƒc8̃n‰ÚÀBBÉÖF.6´j@WˆÍÁe‹D²(nDÇ!›ÈîD·»c—’ơ±,«(.HBeYz6!…Esü¹")#%a!„îVtƯè<™(mMzƒ8đylq»œåâ"g®Ó̀Đ¥×!²VJS̉e`!…ÜxUÓhXÖL‰ Yæz-¥vâwâ¬,.–ÄzÖÓơßÂÙÈ·W8B|&7H*‰ï+¢”°ܨÊvó8H‚ZÔÀGñ™2¾-IÇ·x?ؤvB8Í‚u+Ñ®Mø XÙ›Cœđ`´Gq¤¥5&ô”wâ•®óQ ̀­_×̀YDI¹¥̣îÎ1”ÖEƒqÀj0Ôn%ị$ j•&vèúë‘ BJ‡ÀEÏI/@y‹˜â‚¼$'¸Q*z'wY91´BØà"áˆK•̉;uF*…µÏ̉ăHùƯÈ5/»嵌‚,x¼·g¾Qpe€Tz!ÔçcßóøƠ}è µ̉öi}£$GQdƯB™ˆ ˜€6Á­<Œ?˜"ÛîÚkYĐâöZ*dja{́EåE­*LÔ!µóî¨âJSK¹Ó!Ơ˜È5÷ä9đ u ¢‚@"Û°:Â3?–¨íyGöc•Üê•­á‹5‹‹éRof]…éœ2/9ÚĐ…¬¢jO<-Rs E/\–ߣ¢·>ó[‘*=ˆÆ†çâ2T:JlÇù £í߃»´í'Y9¾fÉè‹$¡hqº ©è.1¢PG†£‚æ̃Ú¯¼%•|“˜³>q́.7uÆđ1öô0”œf;Â:y n‚ø?FgRư‘«ĐDÅë4Ç%’Ö`]q*^-ơ».×XŒdAe`̀.²\ê2nµ&P^qâï¤p«bU‰X3’u_&†cî˜sÏ‘œ¸Á ‘‚^rHË’ClÚdE˜DFÊçK¤·ÓÍ̃x 7­æï³¥>]›¥Åy¶AÖ¥dlñôeµQ›LR@¹"_¼%oÍ7̀Ó§ÑƤïv}°d–(Έ˜àị̂P6ăè^÷EóQ&Ÿ†Fß{ «ÏNµbŦȘ25Œ"F™ª60‘²‚$Ûá„z5ƯdZi₫œr‡i¬FX‚&EQª$ "Ô{²heÈ xÄ@¿ ™§™VD@ƯÎ:l/:mGÜ Lt« ṼÅRpTđp“,®á ·xˆÂ!ôe`3µZ5TY&ëü₫˜ÂHÜ‘ew–€H©̀đ?s(‰—øŸè6ïy˜‰₫‰"hêîaE´ØèèqrdÀ(:ú=+…ܼñ ¸UÊ;s’ú]¯Sôq̉çĐwƯæ"p˜ºó] 8Ø|·f8HÍđØa:®_9₫@ÏƠÜ«÷eÏÉ[ÚẁL—}qù'RßPmä¾US¯uæ !D}i¤ë¸LÈéW(ÉfHÜUAE ~¡k@Ư­dÏyª¿˜F&®²HóÇû«ôGÿs ¤yº_ÍăĐA:¯ =«B­ Y¥4Œ²sÁ¤̉øê(K;!HI—ßtàüüO‹P¿½é媘2¾5ü&`Ÿañ%'^¡Ëƒ?Ø1$:nÜnwk ’íB?QaÎ (q°đu¾pJƠZ/ñy‰Po&’7; Ù¢%:°Øöt›Öù]ƒrRO´5p0ÍÿÉ _c÷Núûe†¤?"¿  ú„èđƒœLÆ4!+—mÑo4Êd¬qá('.êDD„˜@7FgÆ­1@z…XƠ¸'₫y¥PĐ íüï> ›\'T™Z†`ÎÛ‘èÄßèÇ ?_‘E,Çâ±Ux́~^zÂ~ø#ÜÓ<}̣­@Ộ·Ä`/¾!©}?̣¶‹PD¶|\I½¡Ư…jÓñ/¶¬K÷Ñ^/\]°Ûéæ?6P 9Åqô9û̃ÿ?‡ÿµ̃O endstream endobj 381 0 obj << /Length 3371 /Filter /FlateDecode >> stream xÚËră¸ñ>_ạ́%t•åđRn“dwj’­­©sHer€)HB† Híưúô ¨¡³[®2F£4ú e7)üe7U~Sí‡]QƯÔí»” îtĂ_>¼Ëoˆ›óÏï₫øcỸdéĂ>Ưg7ǘÔăáæßÉûËån“ïÓ́ËƯ¦(äưŸøûáçbC%LgœnúizjlÍíŸlmºÁl_¥IṼưçñoï~x *ọ́¡TÅïܽÇ₫Í#<¨-üß>¤¥âSÀèƯf»M“÷ÓØ·z\nĐv'>Hdđ_û;8̣s7ŒÎè–Ç~1µ½XÓáÈ8<àIṇ́!S7›¬zH÷[^é]#Æ&í¶Éh[Ă­W„öwêÈ|Ăæ•aÚÍ#ÎøL“Ư—{èî÷Éx¢.̃“ñÔMC”KÄü,±w®3DK–Iăo aG×·t¶ÎUg…’»µ£¬£\¿Ó\å€wªëÑöØ»å1¤s5uœp4Îщ"²8º¾a*‘)½;éÎ₫ª‘\‰ªđrx®f³ÆåaÔ²o–B\€6ÊDƒ̉Zøí ’%̉¡['Áùf¼Y$̉ ₫Ơ¢‰­q§€ăÎn*ØôÇă|{a$FyÁ¦¾¨#yNjY-ÔƼZrijđ`Ø!5bBđú&] {^&f69‹QŒ̃Ë—T… ÀƠƠ[÷¾[vî±±'c`ùi¨û‹—±­ÁVL gE0è¿`ÏĂ×d÷°"¨¶0ŒqÄÎÈø(3ă*¿ƒWÎ8̣dt–ÂÅ™¬= ¤°)h@Ç–ù ·5Œ 9ë£*ê~jt²l¹7u#8lk }³ưä—ƠNŸœ¾œñ̃2•\?¢̀ä™Ị́1Å{„3²gíA†øB‚çù‚€¿ô.²Q¬ ÿG?92Cr]áZü¼H:¡wDI!™ô·J;îáM2Hä/qq65†O 6À×î‡)£\Ü ¨âY‹é³#ư@M€“cŒØp‚úN‹yeúœfEï¼¾2 ̃₫ọr—´ZÄ:/÷lơj[Ï|Ă6X‚vœà¸Îâ¸2ä,©ÓÀèx[øe¿(æÅ€›đÔđ>*Ă»Yd₫ m8\舶„f8ÙœlëZ¯p7Èeæ] ´bßW%?̉ÙɼhpW†d4A`(°;́ ¡±` 4æ:Gă)º‰À?ƯŒx×»JdÔï¢gFb“›v'³¢äsó]órÇ–¡ BŸY¸@¸ƒs$2Ø…Èà>>üJÆfâÎ,"Đa†í,ø¯QvÑ@Çûưœ–©íêf:¬Ú^ÖRPd`^ÖoêFÛ–áÄè'o¨¢QRÁjdz«¤¡ >“aƯLÆÆœÂ:âpÅ/‚:8@¡ÖØQ¨Àk1X—¸9¾Ϫ¿X 5N÷ÜŸ0p¾g…LÓ̀½ƠÓ¸W‡hjĐ,‘ú³È!CÆ€jOæÛŸ\7ƯÆ“èŒhjXd8ï¢q¼Ù>lVơ,“”à‰ïø›‘ư{\¦¢¨,ÄLö ÂmwË#,rtåøñuö>÷ˆiÅ^™¦Lă"ë_˜Xø+”ioyiÎ6ˆveWĐa-©Äâ@Ăóí{=ëEI4Ḳ́'HÛ:₫>Ÿ­DIÈóu`Ç+Ù“̀ Lxd̀<̣çL©Mƒ×&ÚúaIs ^ñü₫˜®\ K{u‡îơv=ØF_W®¬B` ÁÙ;Ṇ̃ĐB³jÖp‹­¤¥¨÷mtÆ–l“ÂJb?\Æ‘yăǼÜCûéê(hù¤g#₫ c̉ê ^1uưu²Ób¯À5ú8̣Œ‰¨•>Yƒ–£°ËA»a³e‘1±²ĐúvÍ´ºƒRYˆ`„FM1ÿµ¢Á@Ä0%hó‰Àđer!²4Ó¶9`X§Đí2‹÷ÙR±ûæ–…›TÆHçÍE––÷+¢Ÿ¨“ZV¾?PơJ̉r!»!Í]P_ €Á°œçúâÀBèüÅ”¨¥^çc™Øay‘Vÿ·@0טrJMƒ¼̣u 0sà~ˆưrÎiÖơƯƼ'ÉÜH¹•7ÜÍáÙÜé#ø_&!ɉƠ~ií°ïƯg%&RC}$ëÍóñªƒA¹âx˜&×Hï̀@ÍøÑ̃WÛÄaëØG1ó..x!´5º–ˆ^±¹7_éä»”' ÊQÚ™µ“ŒoÖâEóoœI*m'm»a¼2üóa '^5ä%h²Ñê»ÇÜYH)d¤’*$%óă@¾¯’/+Ük#lt¦y¥8IơƯÚ¹£(_®|¾¥s5jç«Q+ẃkSù>•$ơOiœ́ÙJàWÄơÎXBm.ùä ±~å¸í- íA¨²Ô§sä—Nµ/sµ—¨Áḳ£DœƠ¼ß Sóvó×̃FÈ̉åû8Í1°qưt:s‡êÈ à_ĐË ù¨%NH.é̀(æ¬̣fpMƱTH:Xä\7 ¾È’c-VlX¢Æ"œoG;0\§™đZ°n.ÎzÆs°ä V82¤—/ëvû­u±1R6#-Üca‡¢Éâ“ó«Q=5ZFâg?IÍŒ',¤]9áưz Ư(¿ôÇBôZnăèUüw †Ûe$>J‰/˜ÿùH¶Â“’“ ƶùÉÖäz1À3lù̀ ¬|X,R.ƒñr~˜\¯ £j®jæ®jÁ¥äÂ₫̃ù@‡-#è³XÆ[éƯ 4g€ÎYÏfẂIùˆRÎO¡Y°»8ĐxFañæäÍdzô¤™&OëY£Ä ¥t¸ª¤Ẹ̀¸ÈP±3đâàÅ•Qî1_qe¹1åï\I‘ªØÜ¤…'-ùE£œ+•ÎÛV\Üoy¹‰Åp<_RQëS¥¢[Øøî ÑûSÓÖđ«ưŒhkTVÙ^NC µ‚wd́đ̣Ôpüm{'Jn’y ³#B:³”‚üơgĐkñA¼?‰´¼q̀Ey/m~øI½s¦ºHcMŒ^¶Ù66öđFÈqÏ[…Œ|˜æ\XÂü̉•îähG/Ä‘·Äb·÷9.‡%øÁ̉ ù—ƯƠ‹sLM̀Tµ§yü³ˆ]œƠøè‡ ÙtVcç9RQyÚ0DŒª')D«|E9(£åç|…&ÅZñ³¯ÊW´De‹ß'(ŸÓ©|QZP¹'±Pa;èË•JmßÖ\rD•—ó  FæÉ%CÁUẨk}ÊcUǯ?óĂ9/Ö ©¿SlÊ8ÓÀzé/’]Å₫jM®¢[ÅÅ+¨1HT ¦ƒR œŸ¥±Gñ›R>œ(¿·Qƒ"âm^HK£Ùj™dANMTGA*¾[́RĐªÔƠ¯mV.ưœ9,5˜«Â¤̃±¯kA‹Àµ‹ß̀uÀB‹ óRCèo"ø+¬ÿ2.A endstream endobj 385 0 obj << /Length 3232 /Filter /FlateDecode >> stream xÚZKsÛF¾ûW¨r T%)ÄÜ›’(¶dY%1ë¤6{APD…¸hIûë÷ëÇ $»\%N÷4zfº{ú5öÏføçŸ¥ÁY…WY˜»w3ƶÏg2x|ÿÎWºK^:”?.̃ưđKŸù³«ùlîŸ-Ö.«Åếß̃ơ~~d^Y¯ª×óË0 ½ëÈïûûßhyï˺ló­`ËmUÈø®*ʺ+ÁÀŸ§3ÏOÎÿ³øç»›…ƯPÄWq~ăî ơW0¯œ#¹Å‘Û‰|oŸ÷e}Ăôϼ­ÙMVü₫é‡Ñªê¶ÚUũ7í¹ï½}§4kưU«Fd£ŸÖ mz%©‹ía¥¼_ª~sN8û⻢!é¦Âáâ^™ íøó9QµùsyA2„<.ưđÊ}9à¾m6Ơ²’of¯Vʸ|-Û¢êjÖºT+ˆJ?)(˜–­º\)qmØÑ×áÜ«›ụ́˜Ÿ!UĂw×´. fôÔ3¯­7¬…nt9I¿ÉI‚~́å̀ÀO¼N-°¨₫œùQ‘o·oBñÜæ¢Nú̃J‡zU¶2́7|:°PC¼:¿ŒẦûă< ½æ S»œX(ÇƠ,Ä¡bÇÂo‚Ë…†’êL[êª/„kÚ¿b;ÁoD„…&4Ƨ‹đQN? l³íu#„íAă€BƠâ¬ÏåÎÚ/!Ù¬„L¿ÚTíj‹•F¤äN‡µ™,å£å¡«ê²ÓiRaqú¶Zúª~:J׬y©úƒsÁÂ"?°˜'̃Ë7±0°ËÿbQ”bÛ¼éáœDBÂàßRé9 眓Àẽ•:ĂÖë~U¾ö#¶l˜ĂvÚ k̀‹¾ú\YAfbÍô;6’ £E”°0`FL¶S¯¯R‰̉¹+í§F‹ºZh ¾S¶l&˜ôщᔯÏ]V`D[^æ{mYĐ*«ÏF9 If₫İø Z·ÍNˆßøj`väzæß#PŒœ́›àFđà¡ü9‹g9₫øS§bß… —º,È‹œè‘™½[M›fåD<9h“̃¯Bl†ĂÉ"cr6¡Ri—tà7¦€ưăÑnvùJư5_˦+'ŒR>%A@“™øÜ8b₫Kƒ{H7o+ö–×B‹-†e†ß‘̀«̀@ÚixR×+HÆ® ̀f·¯¶9±êĂgB_*Â>çM„‘ 2ÑHb\@:׉ÀC½e7EăAÄÔz†+A4f.HM\‡ Q_–ÏáĐEc‹l,râHâÿtWClZ)o¨C؇v;A&đ‡¼-ˆx#`0›¥Wv…ä 1KV¸oàÈƠĐu`Áe¾‰rÀܹ·¥Û PÊpis <ÜùÁÜÚ\¿-_)_QæđÜU½]̉º^·ßV¥ú  ]„Z¢‹X³đ™ÁN–³*×´g 9d-`«zƯVăxÇ&ˆ‚6ß1˜Û §$Dµ”lAærqT1<0́r¹UYDZB×LWd³á(́ó%FÛ©›xb ä_D}È{¯üHu8—oüYH‚[{߈¶Ÿm[j¬I—Bï#ªû^€_(ciËrỚ„³ËXă–ܾŸJ&§7`É4üŒƆĐpˆ$ ]x"Äà‹—zÙ”ª" –&¶à‹q²tÓbÏ’QåÏØœ£,Ö5ŒvÄ1ÑÔ×|B›¯ªl‚¹æÊ4pE0É)˜’ëVz.âˆú&Äœ¨ă—ó;"„¹:ålOO€¸ßoXY/̃Ä1œdÓX-A8«(̣Ú Úx’r¶DdG:uä 9D#‚ºF~é*Ó—½Âüp·~S ÚÑG‡mŸ×esè¶o£mµ5lêƠ³zđS‹·Ùờf×¾ăwü™F`g¬̃xj6$¤.蛥]øÂäïe­L;ưṚaåe]è¢&Ç`ÀÉèEă_6µ!¿GÆU] cî†ÿ„cdR|ưØ%bº|ÍáùJNff’ê§™³ƒT¯ƒ0aWŸrHÚu’à¤YI‡@–jIJh¶Û²0;\ÛÈ)Ül5?œ8#ü`ykÜY?‰+Ó¨ƯgvȯMJY¢NÚcY¥ƒåkưöR¨apG’ÅĂLSo•X"¦ºrâ8fOΗGd¥§¦hÍ;LSuú ç-©IÆ‚OƠ4 '¦ Ô`ºi6Ê-ÏR9ªÛrƯJΤÚoƠ–œd¥FŒ47!gYz2wxhYTaC½;ˆ%lüÆ»ELĐ,mHlG-¤k¡Md›okÓœF–¹M;¸¾Ă‚܇d AWˆú(Íf´ƠƠÛ—ĂƠ~±“ö”Ëûç­8¢Y Æ´0¨´ S±Æ–Éqâ¹²kË¡EËàØJ6›!/ ™^Fâô‡0ɬT2j I.ëÛAxĐy¾ø¥¼íÍE͆¢•kiáÆ…·¤Û™v₫2\̃+úÈ©@æ!Z%ưÑWC› º:µ¶ Â$I\úis̀7Í1 Ä€ql€ĐÖ0eï.Æw'‰7múëlE*?dlHâ+ʶw„‰ÊÔK¹POª¤mÏZäâJjS¹́—XW Ê÷ …„‘=áà­ØS2Á\wJ ṭÛDEă#ơˆ%Ô{¡÷/ ƠrÙ”“$ÔÆó|‹¿cs ¢TÓnsVF&̃·»RÛ¸Ñ¸ơzÂÙD„€=)­ÛĐ-CÜ´Øca¢._dà8N0́A#íÖÑ€M…ă˜+ÖT7M³mê!U;ű†è—JŸY;¦OÛ¿Ă¼I"o’¦Tù~ê}¢üjàèÉ}Ưª­´ßj—̃hÓw¢µùÄerÖ%®-ÆÊ^Ur‘l;@°%:Ûq5Î]˜Uk rL®Ü‘¨•;E›"^¯R7®ÔƠ„nrăa"<|Œ"@”̀ÙåĐijö× –®¸¡˜‹xTLY€HüŸ8qͨÉÛÆ¡‚‰i(‚T“ Á»é\x'&'%â|ªă„l“í̉‰…Ù’15Úd -Ö`ns¿Dmv>Ø,”䉡8< ÷Id'߀6“ä´±y¡u¿ đådyÆñl†̀½¿8®~ƯäC #Í^®6×̣»FzΙËhÊ¥7Án¦E FÅ9`v,¸¾·ÑtmÄ^Ơ2›}AêÇgö¥'°KCÚ@…HĂ“ƠcÉk?´5Ư,Ó˜èéè%À¡±®‘ç•Ê­áSÛœ$¹¨Ă|SEạ̈ăX…µÜôH†B)f35®•ƒ™¦Ö™̉xÈ^ĂY4®[·ÏE ¹9ÖU©UÁWƠGMŨ+rtpiS8:¡ö̉ êi£ôª ¬f&Z·ë£WëL{êLäy&×'–\_u¤xƠG"¯¿Â‡üFzúF´>ô‡V§EvîÓ Ư„¢°Ë)¹jö”ECHÄØI2cƯV9…´‰¸ƒ;œ+‹†}ß)Â2EƯăR9/X™¦úøÍ‹¢Ü£„*tI‹—WùS/7j´»ÜtN¶ạ̈*̃¶ú_yÚmâ%âmLđ¸#~bykÛ®6–5ªR åN=Í;¯6±ï¾©0kNSĂ8p¢4¨‡‡¦ØéÈ„evR©K‹}Û5VycÂJ å"Y 9(đׯ&næZ‘jăDîÍz´`5iEf½º ư*Bø b0n´FªUy§“f¬4%hGÿ!€¤bßÈezÓlW¥’r›/á^Ryé–Ö‚sz‰ä‚q‡ HÖxFîBr"A›0!fb.ăß4¹cÍÍÆ#ß6G†Ù“ñO”.󌜒¥Ô»Û‹_ooäÑóö‰~cï₫£ÀŸÎ}4ú®¯ïêâúñQ|*<<2úưăơ}?]|‘$̃Íï‹›û…’ß<~¸]LÚÁâægĐD‘÷#-¡bx¸»ưéúÇ»Áß]ó¦>]ÉôÍï´̣O7 ™₫ôëͽ̀|¤ƒ íí“~ü´ ×|ṂĐ…bïö^¿|Ô-Ñ£ù?Ùრendstream endobj 390 0 obj << /Length 2820 /Filter /FlateDecode >> stream xÚµY[oêH~?¿"'#%¾p;óDÀI¼C€±!Ùhgh‚µÆF¶ 'ÿ~êÖÆŸƯY­V‘âêêêêªêª¯ËƺjĂŸuƠ³¯z}Ḉ;½«Ơî[›¸ùûÁĂ7Kän@đ¦&y·øv{ßé\YmsĐXW‹M]Ơb}ơc¸ß·ń¾¡̉uü£uă81üÎχé ×xP©Ê£„¹óĂ[¯˜Ä+• Xƒ^Û°z­.₫öÍ[TúÙq¿h½–₫. ³ ~tÍvÇe'üéÔî‹G‰Ñl₫ø >Î&c¯eAÈăát|; ˜Á"!ç­¾k ƒVß1¾'²ó ñ™á¿ǵ]l$³7è9xqc9¦Ơ±Ø¬‡`øR}ÛøĂrÜ!êÍ~ø 3_üÅăl¹`îK˲lØ;N¯̀Ư³Üp*Œßüéøy/V#ư÷yà…¡7æ!øU·E"ô4Ÿø­îô ^£Ér Q“ñYÄt&ÄẠ̈¤‹™È±×¨€ƠñM·ÄtZ§‹Æ7DäÉ£pA£<¼ó'>úkwÛx(LÜû‹)8$o "ø°ÎÏi´œ ez¾ æ³Đ3yDÖ"á]×dOà‡¿µnÜ6X̣s1“gëÆ2P~_ÙL’D3‘˜{÷4œDÖóZW'çÎø²ĂI½Î–bÙ1_ø‚êzZfèô™±wï₫³wÍcP)á Ăå“w¦Ñ‚R ̀j>³ádÂƠ>ơFp*öWf…pxøÏ₫H² ˜7§³ơS¡ŒŒfA€vͦ&í¨aZ.lÖ5mqÈÖML™Ä»¸ŒÊ8KYG¶a“8z‹¡“¸Ä8|b"°¶¯Êü)ºÛ‡¤ÆgÏđ!˜µœN(Áx¿/!=Æq¨½đ¹„ñ đ¼© '"ÎÁ oäW X.à3áµ€)Ñ0„ˆ(è´¿XẦ!`ˆÜ?®ÁpÄ=?åpe(_;S?„|Á-Û`ÑBĂѤÀởî´kA‚tœ#HGNé'˜³É, ëÀe‹“”H$æRƒÔÙ,8ßpwáö¡´¦Á´'ŒÀcÿÑ2` óI7<ÑŒ*̉á2ä ü©^N• OÊ’úºÅ£Œ›Æ0 ¾˜Ü¶%X́^/tyù“eà‰À=ÏH¸­Ëp[<ÀKÈư“'0ANS”¤j´É¸“ÖÎÏ¢b±¤˜̣1…p ,G̀a@`«µ]u/ë̀ƯWYÁUjÁ¡°Z°lLơé‡X¡ă†ó£ÔuäC̀c€=w˜«r_®‹ èPvôj̉óâ¼Ơœ÷S”-U¾ÏŨ‡j…̀‚¹V‡ŸQºæi¼/~₫ ÀîuŒr‹íi¯k¬ăb•DñNå<‘m˜D¢<Øü÷É3´ &µË¨¾4ÁË(Đèˈf÷y†J>âµZ‹¢7| }àœbÉU”¦YÉ2,"¶¾Ç,&û%µè+hÁ¿W¢̃±5·{°ú¶å@Àx­VY¾Ów–`g&äVŹ*ßtÅô\}ÄêX-Xe‡¼,˜.¶Q’ˆ3û}̣ÉÜ]<Đê£̃$×v˜7Y!£U’ 44”¨æØưˆwQ©pï>ø‘Êó­È’C©ØX>6‰SÎt.(I¶±?b!ù¬âê|AE,WYrñø—[¦8y€˜çÙ{í0Pƒ®qHU ¸û³œ‚™,çgT‡Ư^ïééîW3]:ÇƯ>Jcˆ«7YeûºbRàh“]m2bÙ́ ½©lá•¥¨˜nïûö•åÛµñu ë· ÿ¦mËû–‡-°™IÏ4!“C=èØÇn/Ô‘r,s0H=f-ÇÂ\AÑ2“µœ[¤q«đÅ’ÈÖÀ50OÏ…_‘ 9Ê£©]âwÁ®œ¿9âi LËîŸ0Qäă˜x°VX§*đ#âGJ±¯rÁq:'(:S §OrqÉ3d=<ßø­›íèđxÏ€¬Ư3|Eü–ˆÀ‚ăt*}Ở=½Ÿ_7e'ɸö@oúqÈÖ „!•â3Zá̀6VµhrĂI¸NÛ gM|ư«&‹öM®ËÙ¦d„ ̣¹ă6æmXHöÊ9©­Èy™Ço„d$œÀWXd•Qú®–₫­)$Z@‡Ь4tM§«û-¼O1¼–c¬éé‚ xî˜_–‘6'8₫ ¹É’$„›vE@EÀzø^Rˆ|v±N̉ÊÄ(@¯Ṭt,âE´átI½´Á„]]¹£•Ặ2ÊE#äZCj¨“&½<ä+ Ü)®Î:l»¬tÖWN,Eó) àºT‰©~¬’C!7ü)ç›°̣W©<][d]O[W·¨Øf‡D¤¶ë¨~Ç’²ÉƯDÉs²¿ÑhLÍă÷-™ó %qªÎlrƒ¿e±îcD©ê¸U¹:Ûä$)”̀¥ÅÙd‡t-8Üí]ơÍA·ë"vÙ}³ONt{â|3ëÂ}ñ „æl…ü‚àu æ¤ÑNæÈ)"øñ–ÇjĂ$t1Ầ„s¤‹æä¹ÎT!&;VÍd zÛt»̣B•í)®²ßYFØø6øÚídÛ°~ª(¿´XÊ-Üc_÷¾76À¿mKEtƠ¢!~“‘ )Dª# Ôw~"®#A0„Ä9 Ơƒ±¼ÍÄ̃]¶7•§nĂ!ǧÀy«üâ°J¾îêVsôY–ưYú³,̉ƠgY²G{ŒÅVÉI¿ừ¬jŸû*¡DCø˜¡Ô _3CA¿¤=øP9—8œŸx öÉr,L¬ạ̀̀*IºçI&Ê ÷§AT^Qú‘§S•8Åé…ñÛl_•Öe!ăDăMdà†zOAmSÄ«ïÀ(C/H¼È·à_µjHôƒ́£>Ô¥YñnŸÄÚè#áiùYÅÿkDáK,}…­¾ÀÖ¢úK|Ơ$Ó$Ó†AơÑ•ÆƠGW ÑØTCÂ6¸ư×̉wsª%€kxSŒ“¢ñx_u¥ê‹,̉h˜«•h\£QXkæ†I‘ÉŽ–~!N›³|W}w€®D¾?lu wj{|Q¤[>ZIïđ‰Ư÷ü *¿!­°÷Ă/D¬Ê<Ăö“6«ơûH~|“¶ayƯØ̉›+‰ /f'đBî:“~çđ̣ˆSú½Î%ăÎ$Z f;n½U'™’WÀ́%ó"~@å2[µ+.¶§ơ]ÉjäCĂ“2/=Ôz6¾,Ç©₫£Ï£f驇ƒ°°k¸ÿJ_¤cóµ)pzf·Ó×}Åÿ¹!Áø¢tp endstream endobj 397 0 obj << /Length 1321 /Filter /FlateDecode >> stream xÚ•VmoÛ8 ₫̃_́K v,¿{ûÔ[±C±½‡âzÀ\[I„Ù–!+đ̣ïGă¼n‡±H‘/b3~l–³4 ½,Lgeså®ZÏhñ|Ŭœ ‚îḌnyµøÇ3æ{¹Ÿ³Ùr55µ¬f;·]7wƒ̀ám%~ÎƯ0 Ûô½ÿö‚‹È¹ç-WEMܧí{-JZ?ˆ’·=,O}‡eó–\}^ÅÁÅQø›̃ï¥Ï „l–yy’Dˆ€ù¾—Äóăˆ@,7¢Ÿ£ºÓ)¹VECD)nùƒĐZỮưùøđ²üüđJô·Gú₫uûü|ûmùú‰È•T´¨¸.DmÍè]Çiơ½Ÿ3g#k₫ÚCèĂ…XG ;ơkÿ])n ôr¥‡Bñ"‹¶¢ÅNn-GYÉ׈Äz é«x%z­ÄûVÛ¡\ ¶mÅ-’+@̉îC÷­…lûOçÈFXåơå`°§™Y÷â²Äcăµ€É(œÍ2l‡‰–:Ro¸%¦n²°÷H…Îwk8™fQ́¥YÈŒUrÓo¸äFx$¹¾&»&ºxÜÅÂĐ Yxn¿üMûêl!êj$ñ@”¦0€¤g§D¡-£+”îIH®ˆ…Âxn…^ÅĐĐc±M¨±#¸Œ'8Ñ#’¶½¹›²̀yD{Æw«zL²(‚+@¯€A[¶V®{̉ŸÜl6b ·–:ÈwjDTâÍg!W¼% æ@E)£÷s—9/_ǼD$̣́i®VE‰̃a›±̃íïÖQ$·ØeP¨h‰ñÆÂ¨ ¯äVÏ’¨ùóĂ¡  ù:ÏB:!¦w†dQ÷’Vk®iqR¼éjc{‡¨¹á2çÍ}±:’'b@)ˆs~Øzû¥~Ă˜`Ä“ö¨¾DKDO·ç'Î₫˜¢%/‹ƯÑÖó^¬Ûư!ç1Ç•²3ÊÊ\oæØÈUǘñ¶ÊºàÓät¡¸09Œ ëö é—€Ụ̂’÷}¡ŒSeô—y9{ưm›hp«Ù‚í¦ÀDû¯†yCKSµ(<–“GØle@mƠ;’ƠV²ÆK[ÏÄt²==X$=ç§Ă+ˆreÁ, |/€spxy1́y~,0Ś˜3g{}wb€&̣Q÷9=ÆÀÙhƯ}\,†ađÖíÖ“j½¨©¾ûÅ©Ÿ‘ŸĂØŒüü÷!»—>÷ê¨Í5^QMA¼R2qÚëC–ÚØ²ḍjîøj€ơ&[‰ A®(×q\£H+5ñíăD5BÓhK©́$Q>íø“Zj|  Ûkä¸-æ$ëyXE˜pn ©üó;ͧÖ:XÏ|3Ù‘YĐ§ß¾+hH¢å´]‹weê"ÂbÅqè°ƯTËF†r/̀¼6†5q‰\A\mkÚ5pĐ—I€.”E-Ú£8?‚nX40Í;8‰oßI¸GÅ’¸°CqÇ Œ‘VÓ|3l M+Ó' Pd#Nê\ Ø©$&IlÇs4la.]ơ½ÆD)Î&YO² 6Æ·)¶¿ijA€§"¹"‹$N'ƒ4†Azg¦ °aæEª×ÆY5/Èz o10vZ”aî%a<‹“ÈKâü7½¾;1p¡yœs©yØ¢MR28Évl+ƯFÔ²—Ưf·6;*Ï­×]ímtSŸuÄ8†Ç<ëcçÿÑiö̉îDüB§95zè4xô/KÎIk endstream endobj 465 0 obj << /Length 3674 /Filter /FlateDecode >> stream xÚíM[9Çïù>ÂÖ[·zoœ,Œm&û<³s`À!^ G'GăáhŸ1¹÷Ë:Ä5hỘG†˜ÎƠS6pÈ ÜR0Hà°+ ÀÅ„ p|VƠóÀA9!›-‡/ÚåÉñøä—á:lvD?ÑI¡ÓÖi>̃M'M'r%…Έ°¡³j̃:¡œ̃ Xđy‹èĂăÀâ9,VjWѤ(´u—O¡7@SˆDSˆ\I¡pExy'±f…Í@IÓåÚÖùm|+Ñú÷öêéîzÿ@H±wùtu;5?̣½ó?÷¹̃›>₫y7ư¾VĂ Y×?Z0°¥ª9Ûo€Æ–i«““À WR€‰›f‹U…p¿ßÍnÖẰ`eDô+#¯¿Áçb‘™7@C†Nî-cWR [¶JR×…â¼S>Jj•®f³éu ĂA€É­éù¿=@à'kQH½A§ˆ ø¹2qü°+ øÅ„¡ axÔ7³̀ö×ăƯíӹ̓KÁLôpm8Ærµ“7@ă„CÛ8!WRpZ·f°ÅÁ¹M”8NjÍnîÈÍ́×ư 2w«L2]°Fl›7@ĂfË<Óv!WR`[Â&L鯿¾KÊ |gÖ+₫˜]ÏïfƯ¸~4ư<}œÎ®§Å²¦5°³› ¢V R«W&v%ŸUá0>²*”S~Ÿ„Ïít~usóx7ûüh¬ QµßxñK@—¡¸Ü€2o€¦̀–y†2äJ ea` ØW-¹Xóåái₫{;Ê]} 47Đ¿j!w [—ùx4$8`’„¹’IDØ@Û  Ạô°Ïî]›Aø¿ ,ßÂă¢jçQɹJϧÉ i‘¥iB®¤Đ´"́Ø8¬Éו^Ÿ$ul'³§ùƠưưỨ¶[⼂%¯vxtÿpuc>]C’ˆ4û1»;‚É&µØ`!  ©qeº#95Ø•jbÂĐq{'Ô“‹‹6áæ|r¾¾YĂ`A«;æÙQ˜¹[Ă`ùTÊe壳‹@Ö ªj±ó§lE壷x&Å¢&Áó~¤pG«́¤*_‚<Đl»%åÀÚ>¤&ơ#ù(] æó¸xæ‰Ü'D~¤đH«…za3l§DÊ“£‹`îYÍt¿]½̀`Wkù .§D¡ô~¤0H«9»ơÓ4ቆó-@ˆ¥/C2P¬{ —)´Ơ–¡7@sˆcCƒˆ\I!qE88—` ô¹ö/à4i*q÷4ŸÎôẠ̀FÓ¿~ÅơZ¦!¿Qù("$®L|Z‹]I@1&\›ë˜_è?¥f¤pæO*Ơ¶•7Wåù,y4K8®äd»’Ẩđr³&ÊÚ +X¾¨œ̣Y¸]k›5¦măw6~¿̃ ygdn¨K¹A' G Rv–³óÿăó“Om*÷áIà<¶2=ÿîmO)ṇ«EU½Q÷ü2°U‘đ´ØƯy‚]I¸!%&,J³ó ›|”Ä^{@µ ö°æÅpø!¸SöIo/`ÔVi>£̃Í(Í(r%…ш°c²¨%S)Œ J½ F±¦oÛKR‡¶̀„ïü¡h´•—O£7@Óˆ#DÓˆ\I¡qE8Ü©sQ(·ïq̉©Ÿÿ«dâ¶=¦ƯnÇ]· èjapÑgVÆá*¡ô&M7@ĂeË„GŒ ¸+)pE„mS§Øîr3ÜóÙ 1ûl/*ªªê¡¡Q\X]ơf³ƒ ́,Åd»’ÀΪp°aR•öù˜£”†éqzưg`_B²́g¸¯·Ư¶@¦VºÜ -Chm™đJÊ‚GäJ a×–IYp¥ĨM¨"IB®¤´"nÙà#YÚ–mmÙ́bËÓô>˜êÍ»[œzÜ^m.ªÊróù(z4¶̀3("WRPŒÛFMẬ,«8ƨ{ưh́ơ;OlÎ’³¥x“œaW8‹ ;ÎàPă•çl₫\%ăưE™¯2SpơŸ—7@Ă…ƒLĂ…\I+"́à‚y‚ªµƒ«KnL2pOf²ï9sÅ\¥çå ĐDáÈ̉D!WRˆ;¢à–h7ÅÿưrX¢5Û¦GbJ̣’™̀´dK£ÀƯ¸"›>½îåưjW¯ùœ.§1E¡#—n‘)̉ªQ88%5O‚VµÚ¤X(…ÆơÓ(0 †»—D¿âÅ̉Öd>—̃ &M&r%͈°cSÀK#„LbÈb¼̃›X4D%¼N£.ûTª—£j+6Uo€FGF¹’‚jDØ¡ WÚ·ÈüôÅ´h̀òA²ï³àuª¿ÎaÓå=WéùDy4Q8²Ir%…¨ˆ°#ÁMåÂZÇç¡í}¸ “›Ăư].̣Mä¢*!–%ßvÙφàĂă£Ăq ª‚Ư¥¤R C[mùz4†86tÆ\IÁ0"́0,!c¾I ÊI-¶A!R49x‡—“À—%Ăk¶»Ix¶ª̣Á[¯©#ÄƠ\6…ȉáRxH±+ Æ„‰,Í\ªr”D((t½ ±ähx9¶÷đ{ß]º†€ÂÏVW>~̃ r%¿ˆ°Ăn‘«¤Ûá=?ú7p‚̀Ơ¢Ùh¬!‰_.‹¿óê₫0Ú ‰¶̣̃IôhqpÈév%…Ĉ°#ÆZe£“H4Ă²†mƒD,::l?vü` ¨éwüRµ¨7@#£F#\IA4"́Up#”J"JÖRlƒP¤9:> ²©TŸøÂfW•ùh.§ÉDÑ¢Áô~¤pI«:,%ÜAỤ$.¡(kÔ6¸\₫ÜMg̀bÎчĐÛEaŸèG]¤p³5”Ï›7@‡Ă@‘+)ÈE„spµT2‰9(ZI½ æ–D'£ahà(́TưÜỤ̀a«,Bo€†Ç…†¹’aDØAhô]zêJ6 ¼ÁÎm„ß/u¹̃«t°6ù°y4l8èt‹\I-"́`cĐf¹—3WS·¦óîÀÜu '†fæ£ùS`ILín–*…­Ù|l¼>äJ 6a‹ oàƠǴEÔ´tÿ;~øzu7ënmü|ơơî₫¯$ÎX é^Í&­+ûu²CåŸ'#…kŒ ̣#!NU&È æîuFœÆp'Û»ùidNvµŸ¼»¿ºM‹•yI–̀Úd¢‚d¿L~”¼:L¸ÆÈN»’¨ˆ°‹ ]»ÈY‘C¤~º]Ë¿Ơm₫mû—¶xZ“]f)~û]ö»åΠ‡+r%%pa8ÓùUu~àP̉Kc’^ÚO¿tÿJláĐ[ư­¢ưjùqóè¸áú£ă†\I‰[DØÅMAV&kbq+ÙZÜà#·²¤Á×í·%ḾjÍ…=øK%ÿ ¹q%S±±îçÇÆ cƒëH“±A®¤Ä&"́b9e?¼¯̃Gîùöø0·¿{¸ÓÆ̀ë©¶Ù‹Ùï–8o€®@ú ¹’¸ˆ° dü-®ßfà&í+¾µ§+½8x»"ßâ[ƒ©pÚoœNo€'®Vzđˆ\I gDØ…Ê65=(±ÁûlßMˆ\k&wđÎ [Ÿù°x4,8h‚„¹’KDØÁẦÅÂn t~Êù¨Ú÷æ’ßhå´lwJW$ĂKô°rZVuÿ†’ ¶óôh q”èι’äpđ ?ÓÊ`û”rĐÿ»iØ®í,©íuYº?*»ùH(÷¶Î|±Û:WEÂot8EoëüààKQ endstream endobj 296 0 obj << /Type /ObjStm /N 100 /First 857 /Length 1701 /Filter /FlateDecode >> stream xÚÍYYO9~Ÿ_áÇä!Ư¶«|­¢H„#BÊ1âˆv—"Ă¡̀Î Dø÷ûUO… t8fĐ> v»Ë_ù«r—Ë…/ÁXăK2ÑCѵ&X4ƒ-—e8o3Úh¼g´Ùx–ñb|=rÎø” 9$¼ẉĂ{ y ;¼ ÀsÀˆ2…Đ:Ă¢Ö“áèÑĂÉö7!9Sœ‰’Đ(>› "k²O9Êdt­ “)³Ø8›ÑÆ9ï{D ă²q>ES¢q”°î²6pu1‘Å  ´T2+°́ä •Cß•„' îVˆa¾·A:Éx— fô>ÉzđŒiaj ̉EÅæñŒ¥́é9Qàdiàé#AAE”Ă >‰®€é)ƒ°|*…$'/ˆœˆˆé¬íQtb;îâß(zÅvâ”`!v âÚ(.kv~É0F Cp %qŸ¨É₫O?¡0§dLÅn`›e*vđe‹üCX6û,Ó ¼ï¡†æf*ö³l$¼æàbđèÈÊ;‚đă,˘™àO.²p¬)ˆc{ Àªè‚đ_L0!Z×ă™(KÀ„(ŸƒdÄZÑñ&/#dbdÁLAF‚‰¢”ñ)DaʰZOƒ.¶§K½ëư₫Ƨ­O_·–û/{¯_›zÓÔïÆ[cS¯˜ù¥yóæ—̀öÊod6Ç{ß“,Û½ñèl²;œÉĂ+ùóëƯá`²»¿z<:ËăÁp÷đÚ”©¢9äo[ë̉ú×¥••åO×ÖßƯ)ơ₫ư]¯?nXƯX_̃\Ưø|—Xissưóê]"ŸùĂR¿¿º̉–YŸ\URø½û¸Ư4ƒÑàtw(Ư₫ù·áñỗï Fgƒ6̀úhđC=Ơt!Ñ«·.O¦îïzợx4Àjø¶"âèF¯̃œÏO÷gMÄj†> öwߘ‹PB%ñ'³«rù̉̉)  i(%+fGâ FLưç_cO™ &˜ÑùpøeN±5,Ó»5„Œ<_Ă˜´$¢7}L¨û§ă½ÍÁÄ́€åÊ©·?&æ ëú¥M?ÍCŸ̃ṇÏăŸÿü‰[üÉwäđö₫7Äb•]ÜơÄ| ?G)₫”ÂÁăº™©½M¨ë6¡ư?ËyÆ·ÓÇYáøÑLÁ¾e ¶MÁî?…§Ư Úô©+}~ĐsCŒW–»W· ÙÆ}bNÖ{Sn.«_Ûs³.x«ç¶ƠcW«§‡YưºX ±’|ü>¹`© H¼î“CâZep¹OÎ9ª(øyܳ¨±ƒk»̀éào;Øû†Xt±’́₫9H·ó À‹®—F£1wë,醿æ}¯~;>ƯœN1íQ¼7·û*áb³ '¹kT—<\är›çß& ÎûăÑw Í₫¶7Ö§^M&'ÔơÁÙA5>=¬›DpÖÆKÏB÷ốÚÁÓ9U‰¶í¡Üu[–$&Óλ¢ïH&̉"dfĐÉ1ve“Ajg2Évdܳ2h­4_ĐJ¹Å <'ƒÜ>kRéÈ ÛgeĐN3ueÀÏÉ ´k΋0˜9úrûèó©Tå3”ư*ÔPÙ¹±=œw•£2ÏÉwqqQΛÓo8-’œµÁ\ºŸo³I.Iu¯Û WRË%ttD™ RTœ¶e~Çp©\–l,U¹),\!)„úÊK‹û”¿Cj]ÎÉÑñp|6>9º¬/._a¯†‡'ĂêḥïpÎJú›Y|Æø<åP¾mŸzq²±K\lcÏlàGH×8¶â"Gê¶™¥Ø-K’Z÷´ơÚ’¶¬mĐ6j›´ÍÚN?vçÏ)S<Í^Ù)S<§xNñœâyÅÓÛ.« Ù+W<-}²W<¯xZd¯x¤x¤x¤xZ:cR< B¬×o&ÅÓ“â±âi½…YñXñ´$À¬x¬xzeV”+•8}Ss‚´UæGRi‘jͪ´ ,ŸTe(öËPâư,ÿ…´¤̉ endstream endobj 482 0 obj << /Length1 2289 /Length2 17469 /Length3 0 /Length 18814 /Filter /FlateDecode >> stream xÚŒúPZÖ€‹Á‚×и»»»;Áh ñ4îNIÁ%¸»;ÁƯ=¸»Ăå̀™™œùß«º·¨¾åkïµvWQP‘©j0‰™;˜‚¤́™Ø˜YùJâºĺVVfVVv$**M°³-è?r$*mÄ ́`Ïÿ èü*“:¿*9Øä]ll6n~6~VV;++ß  üI +Ø Ä w°9!QI88z@À–Vίy₫ó+€ÖŒÀÆÇÇĂø/w€˜6Ú”€ÎV »×Œf@[€†ƒä́ñ?!h­œùYXÜÜܘvǸKa:F€ØÙ  rA\A怿Z(í@ÿn‰  ivú[¡á`á́„€¯[°È̃éƠÅÅ̃¼fhÈ)TAö+₫mÀø÷áØ˜Ù₫îß̃ÛÿËhfæ`ç´÷Û[,À¶ €´"³³»3#ho₫—!ĐÖÉáƠè ÛM_ ₫U: -¦¾vøï₫œ̀ `Gg'f'°í_=²üæơ˜¥́Í%́́@öÎNHƠ' †€̀^ÏƯƒåß—kcïàfïơ²Û›[üƠ†¹‹#‹–=ø£ HṆß6¯"¤?2K3€‹•••‡›ú¹›Y±ü•@ÓĂô/%Û_â×|¼¯m€|À ×H^N@WÀậñú§â ‰ `6s˜‚,ÁöH¢¿AóëưCÀî}Ö×ñc°₫ơơßß _'̀ÜÁ̃Öăù¿®˜EALMMZáß-ÿW).îàđbââ0±s±ØØ8ø<\¬Ÿÿ£ ÿ»Ö?¾rö¾¿Ë}=§ÿ”́úï ư÷‚Đ₫7–²Ăëä‚´Ư€•‹ỚơÛÿçqÿ—Ëÿ¿)ÿ+Êÿë ÿߤ]lmÿ¥§ưÛàÿG´ÛzüÛâur]œ_·@Éáúÿ¯©èïƠw°5ÿ¿:9gàë.ˆÙ[Ú₫÷ÁN̉`w¹*ØÙ̀êïqù[®ơ×¢Ù‚íAªNà¿+ëÿѽn—™Íëóáô:“ÿR^—çSJÙ›9˜ÿµé\Ü ô@b}%v..€Ûë:ƒÜÿ5Åf{çWÀks> ̉_7ÊÍ`ûKô7qXÄÿ€EâñX$ÿ€Eê¿ÄĂ `‘₫Cl™?Ä`‘ưC¹?ô]á½fWüC¯Ù•₫Đkvå?ô]å¿Äû]ơ½fWûC¯ÙƠÿĐkv?Ä `ÑüC¯µhư¡×Z´ÿĐk-:èµƯ?ôZˇÿß«%đ½Z₫¡WK³ÿ̉_·Íb₫|­ô_|½L–¿íÁk+đƠÜâ¾®7‹ØơO¶¿¶ô9;¸@₫îƠẠ̀øzVÿEÎ×ð̣p´z}₫ÿX¼ÊÀÿÀ×Nm₫¯­Ú₫_{µûG±¯½₫ Åơêjÿ:̃ÿĐ¿văđ'û«³Ăÿ¨_«wü£~=Ç×§Ăá§ÇöZ₫?c{­ƠéO¾¿äúf¸^Í^_Øÿ†|­ÈÉèdơ¯Y₫œ₫ëËÅâlưă†^[rvsø‡Ăk —àë¸₫_{rûƒ́¯̃îÿÀ×đªyuơA₫ư?ënæ¼~èưëA~} ₫Ăÿú„ÜAfHó3fÁÖ•ÁÍ·åbDnL[#B“T[:‰tL^ó—{4„8º²ÔÀUȵXÜ@'Æ̉¦í•èé“×AC5§ÆXµ¦ïGă¯êă[MHsc¸½£9bU=$o‰™4E·½Ÿ>zkؼi€n“§Êøè‹¦…uëÖ-ă^ƠS¸8:³¥¶]Æ­€üX8Á©ơÅ *Ó4mŸ̃™‰‘óÔ}êêz3}ô…T₫+’Ïa$G®—̃{ÔƯ´çr±&»S;%>É›+̀¡qj/ñƯxy¼Y¯‚¼hùĐˆ< £™:átàGÎ ²¶yÁÂÁÑơAü=ă‰BôÍñĐh3µ *ñ=[ôV|̀Œ*ü‰'6ăl$'µÖ'\ψ’©THH¯ó‘*û§¤®o¶ïƒ¯hEà[w?íÆÏrÏdơöđùNĐT{ñư:Çné¬ßátG=j…á¹=ó•±Gü¡©ùáHXs x€ø‹Í,]̃äè‡No)æ‹04ÑÏÈqë¡Uù6O´—.åfA" F‚Ûw¢(0k³5·\‚ç̀ ơAăQÉÖụ̈ö°ƒ á́Yåúßz̉ÄM1E†• ‚+yÊ €Àœø°,ÂúO–—ù7ª$ü#Ơă?'>#ï™—‰›ó—+;‘5rû¬„^Z4 ¢”Ǩ̃kƠ₫˜reÈ ¢‹ƠϨéÀ‰~É‘ù̀ÆƠ©£|üºzR¸öö)¤ßL#ZôĂ‹ï9w|¯7esƯđ‚<·Ôøa¦HÑfÖ‡™¿ă˜¹7âf»â'̉&b ê †sÏ%s),N%WAO2x>¾“iÉd…¦k÷ƒ|( çŸ-Ă0Ë‚ÆGư™É#§=đ7³•¡ó̉¢nˆZ“Ê× §§—Bbçm†çü©"&` PÎÀ.T*Ô×>éû₫ÖÊu«Á“…"J vn6®9@¥ûÅqayø(*¥¤út0í/…m̉€„‹ ÔG–\3„ Éľ'‚^è _÷ê½´èÁ#XY°ƯómÉ”§X±dcä$K|U_ÔB?S—b HĐÇkÓƒluh woÛ„³#f³ L̃ª ¬»VnïCjă?Í̀×O¢N7ç›á̀$Y?I<(±ÿ6â‚”*F_đgăÿ®Êé¿_+iö]{6ËÀœU2y[°†EfÁg,¬º_æƒ(óóºDnn;+®6a ‘3¶™„×£…È wG`óEP˜QÖ·Ô¨¨ZK¸̀÷æ/,^¼L:¶q0ĂèÔ'øöÛæ»dđöƯH¤"îçáe°^ÑñĐÈhÔ0´Ưn <…HRơr<¹à3w#Ñ×ïw|y®BVRíÆº´½1¡Ê·‰´|„ù;xæ\3‚Y+ºœ…pM\Xdѧ(º)đåRï寣Zë0 æ¦ u3±ñăßW—¦<ÎÛ̉×O ñ ®a&v๫Wl|¨î›ÓûÑ'á[Ơg{uwUÙdÄ–3̀Ïp°$cÄîCjỴ‰̀DSa8EàăĐö´Æ©EÚÎÈ”ÖÔn ̣@‘ Â@{|dXß.:C¯ó;€ƒ»ízcÍ›^H ̉#QÅ ă,·˜aPqÔ5₫́́ à×V×£´ÊXqKl!={àTĂúîfeÚæ'{Ç–̣ ¬ÑGϵ;ô¼‰Sǹ¥$™||£/•Áé…̉íè©Î¢s·‡Æô¶) h,·]kg[²8§i®÷ßÑÿ˜R—Èœ6#ÁêB¬•uCrØB]¸µÈ(6₫Ö‰œ³r%Wx¢!'Qˆ¢$ª@¯Ó,Væ k<À$ß̣½Ù”d$ûSö…yôéO«Oñ1•ÑƯÂîÊG?³V7£̃ä¥5È(úÏ«äZ _¤O:D^Nd¤¶C-È œÊ3Ø!Ë{ĐkÜA£ù\‡e´¹Ư€uĐxë”v•¡®‚zjDFÓ;¬ÊûꓯÉéy\UG„Lư†}—åß>IʉråÂ!k¢x:åWù¸(Ä+Íù¶’óüPhD~s|³Ót₫;t™×Cáu~“ăájB÷¾“Y2”˜˜#s~;N2;{÷mR3€‘Ă¯29~bÙ©+M¯imRư%,6·SµÖȬ¡ˆưđkUÀ£‡¤Rơ; >Ù¹SµÈæé4ˆÅ¥L¾Ñ£×§8ÍyWư£Ơt8;¸ ¿5rˆ«}í’J”uy©³y€¨½æ”Ï ËqÈFÎ,:˜s£m~mƯøùˆÅœơj ^tóBĂP!:’ÍæÂM„ ư½Çù8Bp0]Tơ›â‹i´wñ5…#9w›B$"©ªîધ)Z^º^¨ÙÄÏKÀ✂… ;úriÀÆ€VyªZ+¦Œ©ổñKÿrî‚¢^ÔàñEÓÆW¸‘f­Röhe…o<é;Ư]ÛƒKR» ¶mµùƠoνzÏŸfNŸbqo5åáơùá]GC¶¿ˆè„)ßF(áĐ7¢–+ĂO-.,¤§X̣E³¡†¾;`Œ ‡É2–P7Ä÷ ¯< ZđRàW¾«³$A8svp•î âq§¡Rf¥ƯüúO@\4Q†ç~ƠzíªĂïû¡£fgkó e"ưª1ÀàôÅX¦7D=H£f8ï #–n8d|r5¡ vh’2£íÛ)ú„a¢'2fh2˜RêaưWü—¤o[Ư”T4cÊ$äƠˆ«ï;‚¼̃>´h®´Ö]²—j|-UvZˆz8G÷k¥Z°úr¾HI<˸~!œ¾ư‰đÂaO!a\6m´ m =P_Ä>"Q 5̀C#_A[{̉D̉—2~^bƦ*·³~Ăl›¡6m= Me^ ZÄvÜäiÊ>PZ¡ă¿¢Ä`§PÜĐÛgÁH¾ÄÂá›Ư]&đpÏ“ÅÂÓQ"4èÀ´£Nå¾½fO,/^K,j¿ ưÂ-ƺ×iƠ­.ÍW®9ƒâC›ExJ¹ăÇ?xiƠFxór­ôbƯ¾ƒP2GtH# ƒ§ü²đYf£ßµ.^ÄDƒí€_ä¨̃;T;€~ë·Á—Rơ%cpYđĂ¾}BmÉeß LÔ"öäZëúLï>å}9qLsÚ†™ä̀bÅ"83>úKú r)æÏÀjU7"©¾ü«QJå¦àÁ¬§‚—ÏäÖºpMºNo” „sûReƠ‡iÓä»d‡ôø )dĐZba_GÁ 0p`¶oºóÄŸqSµ½É.Â…>oRôc=íl”ÖH»^iê ·ùÛ#Q¹Ăé[VOa…XsûæbJ Oá,‘ûfdc+Qyẫ¸DEüLJ7Fe_«3-ªÂ…­„‘äQâ7€=µă{¡÷±åèç)X.+$€2/]bP3…̃=¨°Çđ¡p'î’œ í̀©—¯ 5eh· = ơuAå!6À¿ôª™Î üÜ€tNÅ#¯Ơ›¡oQ®©Ë3ÅÂLbö 7"Q ö3ăÏ ¯Rçè>ñ[Ï]>₫Í¡ªuëg;ˆëUêeªđ· DS÷ó¦M㛦¼AÅ®úîtd¢ĐÂØ ̣ËQ.ôquQ/‹5‰3Ÿ"ó_íˆư³×¾s›ª=²²7œMOéă1WM_,T³êüÛ”&ŒhѹYu¼¬æ†NXÂÆ“÷‡¬wª4|&ä?y";…†O×₫_Ÿ±Æ{[°Rå뙢èơQ̀J}Â’.‚ßSYC^qÙƒØÚèG÷÷¾o$5Đ1½Äïé&4Ç|ÇỗˆáÜ«²ÂEÂË«âú̉ ụ̂mPw宸vl½#Áµ̉µ|̉åÚ!²z£<TƘ«üIÉ·1ă ϶dé*²ăÏÉ]Å {ư÷€́ù¢Fụ̀©Ă:kC…“¤ {¾Ơtùe+§!Ú9SúÜă|»jëêŒúÄëÂMMŸA/\₫[ÖÇz$††uQä“M;{ÆUk%{) 9;äu’2-Ø’êhe¼É·Ê!xÙ/i áüD†Ư9âd…=xÊ"₫̣8á';4³b̀×6í^‚ªư "[”,¦Y›TfêƠ¡ëöÍd°ôA›çÉ™|ØØ¼á¤KÊè.ÆiûÉlµ(¤ÔÇôp e#ê|9ï«»`†—ÖŸ5äÈüÈĐ1æx§%EÜ¥ZnW*äR³~$c§çB̉Ñ]‚½¤èăúä!î¬ØPï6Ÿ“®ô¼¼#».WH™ƒñQxûhjỡVw ©,ÍQ}›übL7wt¦´2x…IVSp"ßIzX ÔQÚçb˜ÿJ§VB‰§qŒƯBN¾¿^2–x‡Í6c†öøë(%…¶ÄĨ–'¨¿?ṔÇăÏC5ט´ăoĂÂ.WkFS’ïöÆTpH<óÚ»OàĂÆWä̉6Ûvi¯¹BFœëÔí\>$,Fá Ûâl½EËMpĂđ±%"ÊѸ ¼Ïµv+ơÙû~zƯÖmm{]W‡¿·mZ³~;íUâ’TñfHL*uµ3«ó]qn †ÅéƠôÔO|”í¸}²’Û–®`*²÷jÛmfưé>;EÓ/~ïÁ±fî•̀YNÙ»̣Ü)È™¯\0”TT®ƯåÔY²kIX™)c§~²{a`Àz?ƇѺÄ5±"^];Í=)Ç ¿I®D´¯.ƒñvb«:…̀o1íngĂpÉsÔÖj²·3¬₫ô.«p‹—¦¿ñÊˉ Æ̣*•ĂËÓk©.Æ ,¡Îû µt©­†?sÇ̀©´î\ܯM錰W-à߯@£yÊ”=ÀÊ#EOO-Æ/äóẦ–&ׄâÜ2;HOưâqïûÍucj°¯¢t¥| *RBB¶A:˜Mƻ鶶j?±¸ŸàÁÁߤ«b9¦’ỡnG€Ù:ZRazpÉ!P/oL ÛÍÔư¢ù7ˆ́1¸S‡Å.®óW[/Q‚ÔZ3›ó .¶«!G„̉ô)ƒ÷ÍÜèƠV²j ?¹5EÍú<¼À{v@&+D,„©2æ*ØÏ†¦¥®–u®°ËFÏè¢Æ=•ß©5 vÍcéiTHØ‘ .¿'Í^̉¤b?„9¡ÆGp%ÂB£Ó)Ú$+éÛâÔû é₫Æm…%…ÏîöaÙ^ÔÅCp»³Ưd!+ơC¦ư^«áê¼w̃c¤-fW¸ Ü¢*=1,k`b2TéÇ9©AƠás´́2´S̀ ~*®>‚Ê÷ß7É6JçÑ¢I“sü$à{sgåÇÁ¶?¸>yJ­îF₫F ăeÛ{œô,ß…´û#v0‚^ ¥˜r@₫„'D'æ€êr₫EOÆp)"70“”R7ƒ*^)Â"Ô€%ÿ[ }•z”_±‹Ec®¾U¸_đ‡£“hÍd9lµt ³ª̀¨ÂJØvă‰wØfü³›»`/ªÓCc‚P ÇÊiX} ¤f®l_6aÇƠ#àA‰ơƒ¹ƒæHß~ơœáZ¢¼~ÿsù²₫®¿h_5…4/xó­_J­`́è`·qC&S¾m]‹x¦yj+Ö‰đoñŸ1́ëïơÉñp/đ­g½e‰• £ '› gNVx¬‘@ôË“ÙY‡Ù˜ă_¦AaIïB‘U‚Ææe}–;0̣›jrNú¶—WŸ=ä?“z>®¸wÏ««èán*K}Às¹³Ä†{„ÿ²æœ`H<½ƒ ḲŸ…Ó-áâÙO .4v3Ø>]Ä‹O99øL›t %×è43—ŒựCRË2ƯíKÇ)xC![¶aÍŸFH&ÿ÷ƯƠ©,^D®eü^·˜ëKÿx6ó®ÍJu 9Âá•Ԯ퀻®Æƒ!}I@VềÈ`}¥¼[$"aơF‚ÛÛ£!˜¸¤P+|Jƒw"B‘æÏQH¿”}Kµü‹ÀÙTµàÊ%”l«æøh­_‚pgZ Mí,),5¸Çó†_}ÏïQ¤äͼd®\ù+·48~Ï%¿̀–ÏKNá~…7Ÿ=ể{ó…JyGÈ=¢³Jƒ†Y«/²,gDú¶˜W,­yøaL2z¢Íúå¼ặ%`ÖT›p'đ%á|C¡9¹B"±’ufE¿±êJ*x*ƯŒÔÖ»Ư´\°>ùX¡*WÖ*+0‡\uhyJ ña X—Ô¸×̀HBÇSËEtv•ؽ_BđøMI%k»‰©½‘;s"b²́Hà Đ†ÄÄ8]¼{©nï,xR§¾„7çvtËdR39ƒiÛéÙZ¼J¿",Ư@w½?ƠàR[ª̃Ñ´m²ÉKod1J¾h† zœḄÑmI>ȵúâó.\8>ø"¢],á¾Qf̀Ư.áˆe-sơ¥¾;ƒÎA`â7›4º—á_´4 DZ˜`âCçvTF€éWƯRÖă<̀>½ù¸lñÙm{‡Ü)¼ñĐE?®^‰_ôÙ'qœr`ž˜¤5^^8gơ…>£œ1>[²<Ñqû‡ÍĐÄŒ@aưÑwûmx4ª•Éë2ËIˆ€K—²LùªÚƠè/Çd;z‰ä±•"Ư«åñ¡¬>_§9JK¯l(ÁOặ^i æ¬ó-Æ âµú÷îEy³ºÅĂVM?dƠƯ{è…‹êaoßj]ábÍÊ‚!NAíxk¢Á±L ä-¢ñfBc~"XfOjë^Ú@ÂaȸtOæqă:· 4{^”ŒÖc08¶¢ô´µ°KíWíö̉à Ǿƒv¸½½/H#>ĂëN'¡<`6gUü¾£UÆ}a ẉ̃4A|pn:g毑¾†à¼µ¤ø2ÇM›ôŸ¬jÂs §réáQ‹¶ë`ú3‰ođ±c³äå?-zÙ;¼Ô‘ƠÈ¥®}GZæDc̃¤2–ÂÿêØT;ót@å0ƠH°ë5SzLå ơŒ{Rm/øf^âbY`ØJU ¢$©s.ZZÔ#¸₫rá–6ÄK÷¹æë™¼¯d¸ÎÉc³\8#î4~H¼ø€‘ƒøưË;öhÚF\đe.xéÆåëô™̃ÍÈ' º»÷{Íó¶DmÊúûÙô´.ä¿’‘âLÚLå,hJÔúƒüGJƒíâ¶Kdv¿Ÿt¨BÙÉ %i³1**sÚñWTpÚgѨ‡9nT|Ï$)8lö73—<ñ ´ $ää›[a¿‰88’ˆZ{!à,É [A®²ß¡9K¢–$£½OÏÈ܆çö Nil6*S“V«XÙ‹d©Y¤ÛW .GĐ„PhÖ ưW.«ªmé Œ́6₫à3ĐÊw’}C…ÑàÉđ“Ơm8ơƾœơÚ0ƒơKP2d­æ₫½ûç¼\_VÓ…B¿ª´˜Ă­'²“¡ÄC¨˜Y’° I‡ZŸ„ª̣™ÈHk#²:²°̉Í‘÷—èv_hQ„[‹;yË@»Ûó³‰&··ªÖÔÔC ;71l!+ˆ°'¶FÀG6r˜₫¶ÉµÓª¥Ư"=¡Å§¬§Û$§‘dáI¾7æ̉·ÇjZO¢K‚̉‰àôˆĂº™ºŸ–4™&J®p¸(ơ6,·̣3X+"»†y7¥Ê+µ¶–`-ÄXW³¼º%¶¯Í*}Ù-·`©üÙäLjªß¶’¸TqU¨§ơ₫÷ĐÛHØḾKÚϹFr>o›7¼ñÖ{~Ư ú"è2cPÇ’·M¢¶1ÊeèSyºÍîưWÓC¬±W‚N9RXxÿfÓ@Gê£,ù1WˆÑ)r|\ăp™oơGº- ÙâÅÀM^+×ïơm@ßH9Ăéçô>Y«±1¡ƯäNCû2#Z~©[µàº(jü.^“ä•n—Ÿ=ŸoîR¾0ø~#I€À₫ßöâÄFĂKSlL4Xă„œ`ưfÿÂOVÙÔû(̀ä¤3ËƠ°áK&÷Å*NfûpÖê)$lÁ…T/éö/1·Đ‚6)ƒQwÂ_Z?—¿ĐÛEÇû¥DfG`N¶ăh§÷E¾è†¹?²vLûjxÔT)­ú<» ê[k[ùßrûy™¹³X:™På ̀̀§iŸèÜ;Ù~FW¥))Á^ï³i‹Ü¹ñ 7ÊrçÚH ÇpvûUptkf¨[Ê"UUä'0¿åßñ¬ u†å–”º-‘ëÛ(ÿơ“iZĐ®ëùˆ5ÑÈCzîfĂ€Ơµ7N+Gpç»Â“Ơ±Û>¥HP¯ÄÅ&̃4Éæ›Ư6ÊNƯvPºÈĐ=•9ë:«4pê»6f̃0ĐƯ¡#…3mæưç›´Ê'! •ºÆ$ë~D¸)ºÉTïƠ«ßYQçwCÂØÏë4tNŃj%jCH î˲r_»Ù;ä'¿DJŸ²\V¤˜¹Ê‡¼B–ƯYĂV³ă`à(×pàœ¦öiP9yÑ9ÁB?jW¶ ¬¤>­+¡°! „Ù,,è{hŒPßü₫¬. ÎG ;pé2>©íà¥ÑAGÆ5}«-Ơ¶¨¦w."1€WæĐ…m:âS ÛIw…{°ÍÓÚ¸áiG¬+ÛLG%úáÄC^²üb7Ơ+³hP;]-Û)ÀIF ÈuƯßÔö¦•gu_—Xª÷Nä̉â^îêB¸Tî·[ÂË–d–¯«ñ†¶₫2‘Ÿȯ É!k{̃̉z£ÿ’@W>+3óÙëÖ©£6û7îmÆ¥+ 7'ĂOÛ®ĐoáC|BIuet07? ·“Ç]ç0H’ѳ›6+­sØí¢ç¨ùñäáÍF:›‰ÚbJ~Lëü̃½VÑ ²îØj?$¾˜ºT¹K -•s­…ư®;Ä/8\t÷0¿ñ¼†@­Oøe†.a[¯®)ssy¦ßÛoff_JïäưLX̣ëÀÓñx2v´€‡â£P”ŸµÁêJC/ 8î}¡_ÍvD)c÷¾^Gxßú’Û&¦ˆYîDjF›¢·₫AíX9M+–FÖáÅùảU¥¢Úùh™VåĐpđF-ø«TFcÅö÷w>U¢ó™Œ»4åuÄó̃Åé«ëêµhój¼§¦’·ÙÁI_û”Yx¯§–ûÀ7́±ƯØß±đÛÚoáèß“ơ~X(A?¾¦€&â2åĐ›7áǘR×Kº…[¢“cÆŸ̀öÈB¦UgmDôÛ¦uü’_ñ8Ô¥[H5’Z‡«Ù@,wÎ-ÁD•c¢KdP\„#&öbƯĂ]ßê`% 7à‹JFÜmVsK±§ßX‚ëơÔtE™̉²l0 ñÆ­íú·÷Ń-³µbqƯÛUÑ&™ÈE! !¼0‡Y¿·áµ§JTënƠRnḯ«3<ª̣±0wƒ©”‡©¶äư CW?Ít~Î{ ÅẸ̈ `» n¹} Îí|Ă;¢DƯ—yÙÖ‹±R¢áxẮ,;ÙRG±S¡Ä2‹}¬{ sđ¬eÈà¨Ûü¢×:ÑÜCîzG-Vđ{W‡ ­hlÅ'M/|Æ â•…7ÀÀ&qÔŸ‘$ÜØ`ΑÏ~_C¬æn§ÎåÉÑÈಢo¢©A@íªôW‡ë7¬$¼÷Ṭu¥’1#÷…E‘×ùä«PŹ„Øº5L‚9ÀOs<99©l«æ™€êï^¼‹W¬M•q%›TƒÁ±éÛ1?ă/̉÷ z®|`>r2̣p ·9)¹³ÉƠkU//†H<|4¼úæÑåÉè²·Ÿ'/â₫ˆPÏŒÎaÛoÚ|Àï>ûY%ŸkÈ‘·÷†¿Ö₫•w-v–À„SµÚa}íSÎÉÍâI›’Ô Î4«DâA2Ødg„º₫n¿½P’NÄ-'·O!?–Pfw¡GÇ9ÿûxÿ‰‹Œă;"¥bs=:Ưó@«Çz«Ÿdß|×Ơl¹N@«¾RB=à,L·’ÓµµÍhwZÁnûCFådzưăp °æGÿHb‰ĂÏZư:éô!„‚€ô§‡H÷ôÖä;ˆ=”˜Ù†Ñ$Y¶xǸ ơküÆ©$"€Ö+ÇsjÇ•«Ê!,pû)åNÑú‰ĂăUœ.Ưª«[½‡¥[ù*wA ¾›̣Ơ1OÁj*¨ßC^üe8©‘à2ª2k`ÊS̃ÖYŸÔ4Ú¬A+í¬é9æ}O¯Sêí½ˆç¥ưä¼É7ïÛ^`ü€nT±êđW¸ÛKøYơ²)UçÜ0 5yMÇ/÷×Ñ<}–¬đ•'çPe$d$¥·ˆ¸Áæn}ZYÊï¥]ˆŸ>l̀ÍøÉÂ!Øk¶‡BS,ª3¹z”&v¤í~ù™Ê|";€ƒÁj8ùüa!Í@ôjŸF½ÔxĂ½<Û]F€ü>k'^5όƙè{RA1NÉơ÷: £a'đ+wÿbP(ŸÁ—¬¨"¹CªŸ¥÷p¹SBß¶‹î> ›¡Đöà] eæcÙàŒS̃†Ds‹êó´üÙ̃Äbtd́ˆj">\ÍP÷ME4¼lcX¡gŸ] wù1îTđ-…O<˜û¡…ănú(&Ñ®ehÊ'H ®>ÄEñ4±ûUù¡…ôÁC}qccZ ‘ÙL eGĐ»>@h”dÛäL!7Ü£’+Đ­D46lăÍ^EaèÜíyØ‚¸³4ÊñUr¶x5eÜ·#pg7xÂHFÊjƠKpâ?JJo¥ Huÿäƒâøn$¹–TĂ’bR³§hØN&\"9— ‡̀C`®ÎŒ–VK¶¾æ“OUcơ®c+¾¬»3J]‡zơÉÛèÑA«»[îk"Zo`™øÖKRÀÓ;Wga¨é_ƯbHçAĐÉ¡:(„‚PËAä¶T]Ôâ:%eG·+D×ơ§?Dú>O0úºoFªqXçÂÙF”ỀâƠÛơ&ä8—•ỮèP.‚Ü}›GyÑYqLí¿Ön2ƯÓ-PW¢f©¼BgÅEë˜Ú́ÖôØ?­Àœ³:‹”½@=ơBC ÁBv„ç«{éÇ••Àt›Ơ‚)sǤøf7’¨®!ô[ưˆÙo_å^Ÿ÷¡>1̉™  ½È0r‹¨e &7₫2«+~Ï ';– ă1+$1L41ÁÂ&‡2D— ¡Å%{ê@}¸æỰZlơs ?¼»XÂqƒÿ&Ó¥¸E·m̃#D;›j¯¸@³Ệ~ÏMLÔÇÓ½‚ʼnYJ©ëï¥!JÀ€đ₫CÉ’1O6ÍH`,÷q¹ö¯å:^½é2©đüϺ–ïq=FBëßÖÑ-¸£y—µ4ß‘bf~€í>d ^Ư¤ÔûÆ=ÀP5Z|·#€JÏ÷₫p¤5aáο̃7TIà%cP/và₫= ét\÷}æê¼)ˆdHf~HûÍ;˜¾¿‰'ưçØs^±~P5lNf3‰ÍÍ}EñŒ‡j6“SÍtCKê@×yM¥Î꾜f–¨ºNÄy ¶ ˜M̉;\BÈ]­cTŸ‹`́û^u§̃v^ÖV´fBø‰û'v5嘷¿`Ó•×Óˆe¯mRÂ(«¨rçêr‹Fđ¿—±̣_Ă#Ï„ÿßD+µ_’-kîwđ‹ûñÄy¼&?D…¶"ç!R×ÿS'êÑ.Èîd¼£èduc¨xa24ăù}¢$ựC‚ÚCk@ØX‰cØKĐbÊüÍ'ÇPIY“œkÈÚB•‹¦›½va†çª ưé›¶´ê–2S»V–5ơ4₫ᨂưH“‡IÂơqîML¯Î[?:!kq̣À³´mIïjy¸ëØF›O¬†œ„£ïUø“£/í=u®›HtÊx‰gH:„ë‰D\å^X+·×ˆØºØ©"¢ØXÉd„­Ïëü¨Ü_tªÙ…d,`I%›»ăC“û×̣ø½÷vƠ'Ÿv“n5¤S¸­JbÙ6đº? ¹đIé6n¤Q̉_̃‹îÆÀåe₫¶È•Bqºå-­kÛë,< ²…<7OpáïµƯß!q±+M>V@̣ó̃}[œ̣©Ê“¡a@î>¤ÄÇèÀb’îxỎ|ŒXV%ơq%›*°o,¤©à…Ư±Ä/ó Ă₫B c0̣. ̣óZ¯ÊD‹IóqăÚ·ŒÖr• ÀïF¸(|/Bù¹²â¶rùRÛÊ(a”§k_®+/Nđ5S{@ù˜5S$l»|ÓW“U3ß­4±J¸’Îư&¾]×½$xE²ú.^càKûxi™Á“Z{ß•\8đ[D7‰ÿ]Đ1Û`ÚCB Êø±¿bÛÅDÖÖÂö‡ƯÜ Ÿn₫èe`Ké¼VÑ7xÛ₫Ă„oçIn¢Åiæ…,n?WÜêƠ5¶ăB̃ ®(ÜëH]ų[̣†‚ï¸Fg=úFc /+SüsJG6Gđ¯2Y&ÑCC=¹µÑÊƠrª¸#©¾Ùî¶É-Ơ\̉©ß7Â7]°F ~¬ :ï6ئ|ǿ¿¢ơ´HEĉSÅ ẩÛÙ#¶? ­óö…uk`a{§¦+j:L]é(Yº˜““áŸG(Iæ Z|C–nRïåä²v#b8iU%&}cؾ+Lù~ÊWÿưÀå Î-…§Œ°W J‰₫D.mzx`0cZ0đ&¤·ÚK©]́ذ‹TU໩¸Úơ1̉s3«†•E¢Œèm¥:0 ´¨h"ˆ́é́½Í«ñNư~–È3ưêÜç©n€×ºÛ‚ =MpÏÇy1Z=”$^–tF£@|̀5 Rñl’¿±L]̃¸!Üú>7Mîd=ô;› 0G8$©‡wB—Q¤Ç’wöfD^Ö½ơT̀ÖOư‰Î ß,*0Ô¾*ư2mMà#VéöâƠsÿ؉j8<¬6xJ1yF—6¿L€ß“\ßđúOo›>†qæ²>D›6̉cä;Elt®jÅO“ë4¿tóƯŸa`íP˜>́G+¦éûÚdÙ¨Û'¨Ă¦Ữp‡'Å#‹„|îrHS4‡›X§„kqX@NÓ¼EêkhNïWN"ÇKlû/gÆ,I&–~£aâÀgÔ "|uÊưó¶áb5.Ê8–œ1ö}y÷Dç—¯Gß1>Q7A%‘dñv  :ÛŒ]T>Kµ„÷đEgñ›º=}’! Ï–øôóÇé́j‹Gí Xî­ ’ ©ªïPbR2ʰ7 ¥»D€cSû‰¹?0 ·±s÷ê](å)í®ÎˆDÓAóÉ6;ûG̀~B9wJ¹[å±ó¦drTsÉ?iÙhKÓ!ös[ṣ\8 ƯH‰ê¤0Ëɼ³±$ˆæÙ{2KFº̉«äÖô;7'ǼZË7́¼Ư”¾2ˆG÷Gáúr_KÆhhKµ´́xôê7ÁÑÅBHaCï…IÁÄhü¨»Ă TwéJºđa+•ƒ̣́:̃"ÄƯ*bêeË›=}äĐ˜}`$/‘ûñ;Í“Ó0Œ̉V1¿\´ÈQJ3« ñ¦3H\JŒ+3R¹Ïm$ÙÅO’wpbƯQÀƯ‰Z ézc%Jæ(PçQHsùù>!4̉ûíăCq)—óé $~ÿÊ(_Ôz"‰o ’ZªÅÈ"Ă“P’EÚî\Áü2s†øvÈ]³±Ê^|+Q¿—ëÍK·²Û]Ωá(«̀w£`ä ÙƯ2«Í²Ô[¿5„ uG·>&•–Aa‹ȇèC¥WWí¤¶¦â:Ç¥]NZĐí¶AîùĂ* •1&唇ªEhGú„æăC¢4ù3ă Ï=á̃ ̉“OĂdµÙ³³đ oß:̃•9ÍPÙæ£Iñ–ßwçªÈ™}áTt÷¨Xi~ù—₫ü)=¹üö¬É1?1đ~&[†i-~ÔNSçù&¼X|8±ñk[ØsAv=Ñ>Ƕe¼ü6í[qUœÔ™c…‹ú(XÊ_“Ñí‰ä¾`™VxƯ ÆSFb.™îx\'OÄdEÉA_Œw券q«~¿vo?2n¼ûØ@jÑIH§RÊ7§ nO7m’*W ÜŸÏ(É¡ƒ‹¦óÖ()å¡PÆ=^gXÜÚܘ%W¶-`¡̃eIø±9¢ŸÆ}E"÷hza®KSDœè%?Ư¾Ỵ¸¦ ¯]­àƯhl ưî}m‘K8»?¿ÆrVùÈ¡»¬ù=1]Ÿ'ÿ—À3É=cZftô†Y¨*&CϪHYỴ̈xÿ4âKÄU-§ÑƯ²‹Â¢'<%¢¬OÎm_AA®„@Ư©”.N Ă«6­™(!Hê{;?ßƠ5CËØS®’Ö\Vä[\M(cü>¦ÄiÆÙ·ê|ÁƠ°æOư‘,˜W_kƒE·–VNđ˜jN”qC~—º›Q"§ñÈ=ǹÜH¦!̉óØĐC#Å훑ê3ÉÓa.Ïûvß\Ó@̀†ÂúzD´,鈄î6¥Åm…‰=66Чơ.~¨–X ØgE0±èáJϵQ#̣oô ®zå’Lj‡’ÿv¢t·q€ÚwES÷®ØaXëÊ3q4}¦pcÆaèåOÔGw¿ûy†T¬•ƒ0ûzû‘Ï·cÈ5ÚQÎ0Ïó¼\¸ắ«(;¸«Ñöóå₫BZÙ f‡»åå̀ïà`û-îé!ÓÊP¦Y;yb}?N©åÁ̀îϹä,"ëˆÁ뉟Çѯ̣…7Œẫ{¨2ﻹaqC“F' 1qté÷Ê€óuµú­ù¦¼…H_]’ÎÏÙô3đ·÷Q·o±¤ú̃b¥¢o$^Đ¿›Œñ ߟŸèAƯ×´†Ơ½âzNé`e7(M4ëƠë¡ÆbºI¡01_ÓÙFÜƠGºÎ¹mptüBqÚ —ƒ_§ÙIó$>÷¢ˆ`Jm"”íùa¥Lg驵ÿ<̃*ƯŸçöY₫3Eøơ… ₫'}É₫$”"ÅƠqÊ.¬. .¼[bÓ_æiƠ°>›ølwv²~%EH†s+34£V‚m¢’Mbî*,*ơf£Í ’[:³°Ùg^[́™iy¿3ñùñC Ơc ŸÖ ïW¢é~klÙSæ\ơ6³‚¥ƒ')$h̃C4T¸Ú̀Vcÿn[~tªI“€Ÿ×“œóM#Ô¢¡n|UH̀åÍè[ÙĂÔ³ăÎơMZ¼’ƒ\iœë:}'j0‹^̃y–Ö®U°́¡)Z¹ơ ¨+åĂpÚ₫³XéǤ÷Öă÷†®¦ît×}¹9ˆ0z‚,H#{ ĐQtT¼ùse‚¿äen"$ư±5¨ëèª¶Û {¾ơçxû鱟Oy_¹ƒ-½Byô5ÙË;å¬äöëkaa÷Wp̉† ̀âÔè~ÖaƠúM_í{Kèef¨Mödxg †zt̀£xRê#f~̃w¼g<@³’É1Ư‰x₫ jñø¬ÑTè«ùi²:̀Üđœ~‰Ư±ÄØ­>5pª5éÊg(Q&ùƯ7ÏŒrÛa^³³eû U°F.K–•¾@Üeöµp4ß›¼—ª…²LzIMṃxrZfŒÛ !mŸorỲSu^~ơÁm’ÖŒÅÂEܘèü"™](cP}‹W̃&ê²đé½ö'­íƠMŒUá ĂàÓ'£hæ=+ù£o=a t$Vj°Ồíô8›|ư^8h¦:½f¢¼ï]7^*E$ïï"2Dc«¿Í =˨iyÀr[ó&Oâ ¦@3³}hûUøîî£(–OÂ%Mi„¥óˆ¿”w'€ås₫ob+ë°alĂbl¶’¡±ø¯̣Đl¹$˜Çsg”ƯT×–ûùô[%ñ7iMơêz̀ăSAö¯V]2neyqaœÈË^ ¨h¦‹\·§Nú{½e♈’L¼C[ö÷ÜIĐ82˜ù îà¢Á}?S[*ô ³;$ÍNdm£|É;«°ÇúÖ¿ơË|¯whç…¬0™0»’]Ü“¥T¶)¯đ¸kưü+Ag*›ÂNƠrPÓ|Ön¶©¦…ù̀Ü ´L!Û#1BrNs!¶?AW—àÜ„̣‡Bßsüôj§léÜA¶ÑªMôr ¼̉xỰ bU¼)2Œÿ{ Ç…ÉÀn‘¶³®ÀƠ-–dÈLKéyîÑà>Dú#WG¿ª1_œ¥p˜«‰wBhắz°ÉF9:wt³¾mf̃̀“Xa‰!.ȤTú²÷N IäY‚M0ḉ½—ñΗ·3ÅN/Üt#ä~´F •2ï¯T®f ø&ÏđTmh·¡Î—Æ$+§aÔ)Ơ§Xëç®(¼9J²"³!deåbO+MNüíøYÜIÔ¿LÏÙ¥a“to3,¦tưŒ8ÖÁ]¨qư‚$ü{D́>ëăÁ¯©üº4}uKK$†\§XÊö –N×½8çjÈUg{¬ªÜœós&*YË·̀(–¶Y.Ơ8Œ–g•Çîîi£!3æ:±Ú”µ“»v”ÓÉ1?üˆG'uÀû< ÓϼĂÁ•TVû…¢(Øçhåµa8ÁT­@Û́²íû2¾í€ ª é4Q5¬ú@=*‘úf:£ö¨–å₫Ï,û¼‚:Zë ‚¾pà½Ø\3Ê-ƠÙj£ ³xđ7ˆè÷º4ÓÑ́f”m5²aÚ^ÏÉœÂ#›r›ÈJ$³À̀%áœöûg ù¤Ơ¥Vp1[ß'ñ6ëh=±”4o®Ö*́;?·ÓKÄí™̃µ-,Y…W?}Ñ öá…Ûâ|¿ƠÚFÙÚĐÇÿ8Êq¯Ơ—ơ•vSîGgxQ"¿Ö»Éÿ'êøª=@ëWœ+Vø̉ûv O¹P2OWv@土z2ø÷Àƒ£('¦*çvnʶ¸¯?ëfw¬§±—gn!Œ¬-H¼:_¦uµ YùU‹@₫­"ד ¸Ötâ:}¿Êâ$X-ûºLµËÖX'Ë`ƯÄb‡µ₫̣­b@Hw ¯üçk¤ôLNUá€Öá6±ß{²1Œ•z—Q:lC–¦d^÷¶¬OFoëc…Ϥ“öTĂ%†ÑÔÁm̉!đôë ŒWÜ(eeœ†$ሢîE^Û¿ÂËŒÁȰx Qcâ`‡¥Ún̉—]!ơ”Ùyr¼xPác‹8Êp£a<2laVºÄ‰Ó³»cߤˆ *b·nyR茶…s¥oN÷ơËû©ñ8´:W´lz³Í³HÔë³ÍƠ”ïIæ*™³±@c:ªTå=(ï?̉‡ơ‡é]Â1¹k3ß3Ÿ»V̉5–́ơ1o(Iq¢́^ºaÔ•5DœÂ«|Ÿ·g/€U–Mø]‚DOú¸ucEí‡₫u£ƯîÊAé̀ôƯ ÈÚ‚¹q²ŒæÔZZPVFWÄÀv¥Ô®"†¾ üÎ*X"IFÄʃ!̉Å£¦‚íkÓT›ô]ü^CƒrChÆÂ3Í‹>ƒ;»œsf‡6›¯0]LX†ơʯsY<}Ç‘7J2—®¯Ó!ü98‡3ʦ,">Ñæ±A6ÙÛ!Öe¨W}ç¿xVb Àt™”Ơ‘O±®ùU:¨œWÍ_5&¬•Y˜[₫ÆúôÜ ÉĐ̀•(=÷|`U‹‚E£Z…¨°¿`®‡̣¤ ‡ÚºÏmF Ÿ~&EúE9l6¸¬h¾<{ñîó–‰àb»çw1\—ºv ŒêSF©ø¥Á‚ r4ï,G‘‘ëđÚøøOL÷\`½.±9T¬¼ÚltÇfg£T|p̣Ѿ^p¿Đ̀”bEÂɳ¥,Í÷Úª|…̀¨mWƠz? ‘2¬çÇ¿ 9/x×́0v1ÜXƯ!n£5yiî©<ß9ÿ! ô¤îMë©ÇkH•=J’.¥©5éβ3ÿÁ‡)TÖ ¯u%YÆi½BØå)Á¶&ŒHÈ‹î£ ‡W-ZaÎñ÷̃͋Ϭ•5—kùºí‚Ŷ?Ùº5„ºâƯạ́ư%„Ú}Œl8Ô7o> ÔLE€ ¬]Àñ€àYû”)RẠ̊̉dœIéè÷âánÅfï‡Këụ̂ạ̈T ¼µˆ¸F Û\§J€pĂ‚£^=a¶egƒ[Th™˜7î́‹ÓÆ•wiz3JåéWŒJ5’Ơ¼œSĂRZ£Ç¢™j,$‰HŸ—Ÿ`ƠÂ?徯®©6¡töƠ«7÷.«¹¥,C´á±*IØéûøœ•Ë/å1¯Å•œÄZ²hx½¡9u\JeÏíÍ}!XQ`ÖÜ=Æ̀°ƒ̣D÷ÙƠ"¶-ÖƯîœ3zÄûmeuYº-Qyy9f·¬é<̉Ûtä?ü  æ¿×8DÊùè½€åÑÄHA<² Ô$%Å•Z‰Ç!VƉc‚î3Q¯‚–ÏœơÙV-™eÅlfíí¡Ç72(¹Ư.Ü@Љpñ7dL3B£c…©T!3XäJ²ßöô Sa$”nû©D´—|ëÓ”±¬Ăb§ÓăĐîŒQÄQ'‚œ6HW‰̉ÑàläSoS»xLd¤_›+GTêR¡h%ƠWƠû)bTZ·7ƶ«£Í±E -¸^Ö0²£G®BƯFèÈfÏX"nYG¼è)_tEXÆIΙíÖSnD¦|€3 Q ”jv2tŒW¸/\´A,x>ª¶d©/÷0ÊŒâ (¼4"»ọ́́*X8 T±(ö‡´÷Èà#<¼3\Áđ»|-«èÖœs1̃ëâZœU¦^º¼Ü´Oï15b§c•ÄÛH.½í'Tư©rhưDé Á¨ă9Œ ¨₫S*Đ0n°€ɰó]—+•¢®¼˜ç4÷ÅS3AÅw½,!‰¢l$¨»›z¡{NOÏ1.O~ü–¢j\cuê3½¦¶å£2dEl8[Ü_T¢³­ûíme”Y¼|ă’> stream xÚwT“ë²6‚´ RD¤JD`ÓIh"½÷^U@I€P’„ ½)½7é*½ƒ(U@”ªt"EEéEàuŸsöùÿµî]Y+ygæ™öÎ3ßúÂ}ĂĐDH †²ƒ«£8!°0H¨¢§§A 1aHÀÍmÀ¹ÀÿÖ¸Íá,…”₫„ Átª¨‡BµƯ]€`1 XR|K‚@·ÿ¢0̉@UˆÔj£p,€[…öÆ q„<¼P> øöí[‚¿ÜJ®p  Aơ 8G¸+!#â4AApœ÷?BđÊ:âphiOOOaˆ+V…qçz"p@c8ñ€Ă€ç-ơ!®đ?­ ¸¦́oƒ Êç ÁÀ…  Gb .îH$dhé Đpäo°îo€ đÏåÁÂà…ûă}üå BQ®h̉tÚ#\à@u]aœNAÂÎ,àñ€ \ vÀ¯̉!@u%# „ĐáŸ₫°P Ă c.ç=œ‡!\³¦‚ru…#qXÀy}ª J¸wo‘?ĂuF¢<‘>Kö$̀₫¼ ˜;ZÄ ‰ps‡k©₫ÁT€ëà8 Hê–˜”î„{AEΘz£á¿Œàs5¡?4 ´'´÷CØĂ ?,ÄÄaÜá~>ÿiø§ƒ0´ƒ; €G'¨áö¿eÂü1/ %ˆ@?0t₫ù×ÉÀ0 éâưoø¯‹¨˜ikê« üiù_Fee”ĐGHL($*‚AâRÀ[„ƒß?ăBêø_-¤= x́¼^ÂEư]³Çđ₫Ù>à?ƒé£Ô…yÿÍt+JøÿŸù₫ËåÿGóó(ÿ+Óÿ»"uw—_ṽ߀ÿÇqE¸xÿA¨ë#¬° Èÿ†ZÀﮆpwưo«BX%¤̉B`qaøo=«đ‚Ă 8¨ăoÚüÖ›/œ  7Daç‚ô_6–A ,›¿M,aåp¿y.Ă KơÏ:ÔṔ|ûD%$ â Ÿ I}À„5…Á½~±("ŒDá.@BÏ~@{p>h ) 0́\øGl¨;CH₫‹„ÄË¿Ö÷‚Că(¨L°SupËA¥«§Đ̣ ,éfêÁQ¡Á‚û¸.µa›…x“¬̀Igê`ơûNmúÊnÙ³¶}–j8j½Å÷„8ÔW8́bÇÏö.Œ&ǿ³qÓ4=±HV¾.]Œé"2d¢m§T€9t™pÓø₫UƯñ1Á“‡¡Dư–vH‹~k{eI¦.#Ûmó/ŸŒqMv½¦Ë;Lå|r}´m‘¢ŸÎ©#Ûzˆ÷¬ ïéë¦ëd¨íñpù;W(NM¦—MUœ¼Â|:ị̈Ïœbtz;+°®çs|ÉƠú[K[Ö7xÛo9Ú&ÚGƒ¿àÙéĐÓ Ê©˜Üü•HØTvIC|Â>Ö¼# ¡ùz¶́»³vXˆ÷ähÇĐüOw-ËwƯÁ¼‚zñr§¥K_üê¸_Æx؇7ÿU™L·¤&À˜É·îg”×Íå’5½Ç2j!j)•êØb*_4};¸9à˜µ"µǗ²HƯç̣»{>xñÓ¼íÖVeI·(d }4~¾fÚ7½àÉÑ&XäM-4­*Zï麰ç[áµ`­Ûă*ô+Ă·¸J|ÿ@÷(% äÈ~º̃Ă$ÜÁY6µØ¾{½”8FT¢Ÿûüh'ñm7ª…H àQ}´?Ù Nêеx̉g†Wè‡Û${̣º¨ˆå'Ï~È7§h‹»*NŒÅêÇ›øz}Ẓ›—èoÓ-„ Ü—ßé%.(̉8ú ]™â}DưÁ¨7h-₫qt‹̉üNSNßHëè×K-%r·Ÿ~ÎÜØs`eÙΔ»̀aÙjĂqfw†²¹ú]™Í¼`î¨ûa?yư–'ÇWfâ¥ú¬Œ×ó­5Ô=u¬A_pb÷&Lt«É3ZÿEÙˆ¦ü®ªßîw©¬¸®»I—[¾ÖVî•9”\&kÛµ6ej?ƒøÚ¶:ÆÛ=à{åy7hjÉrJü^}‡è–÷àJª#³ICHé?zô©Đđºưø} äxÜĐÅê"7_Û^EoÏ·±ÛÄÀ+jø‰ñ¾ÉqIá†Û|z̉2”CMÍaÅ̃=~́œ+x?Ú.>ư;¾¿‰BƠ"n£L¶¸~…”~ú¸{đ¼)04I7ræ‹E]µh•©zœù<‚¤ƠK¾Ï₫ƒfÍ‘%‡µ©Ú̃+§tẵHcª¥%Æu`z*팋Ô₫Ît<ºz''#Kó†ù₫t ¬₫F}€ Lécgúr Å,ôÓ×Ü2ŸƯá đöv@߬ۋ}EóGûßêæä¯L.Ơæ~́E}3öLY„]Ï€7mD¶(#WÙÙ^11zm¼́œ†[™¼“Ồy+`Ë 8ƒk1W’ḤÚ`ô8"p!°€€ ™gú¡¢ÖPdaO|ûLn“ư-&í…‡÷T…ă}₫W:U¾V;ïFx^©cÑÛÈä¯ëŒôđ~Vx»èZe§$¤¥–î2üîZº_,‰äSQ? Đ7óJÆÁÑäS"Å’í₫ư -gåøđîS—ọñ³wÖe?ĩ©́¾èåAỵ̈_À’ºWg†Ă ̃:¼³ª‘±N¦¦ç̣SAcg–3Ơ’>óxÙ™øaÚÎ\Íô™“†­Ăp˜Ñ³ªjJ̃¢Ï2ư•FÔfÁ*h»Ơ·2*D·ák<ê–¼Q€¼Ÿ!‡±‡E ƒL1¢È¯©-Í6;å!ätĂö³ï‰KrJÜA3ûq1Î"ñå<»—̃ —Ö}¤ ¬Ó½k~ï™Ưñ;Ù– ÷'FyµQçê€êwºÚuc[ëôÄ™¥Tîe,ơÂ\L5Ùz‘ç̃p³îØ¥‹Ó™‘¨1A_k`…uÚ̉ +¾)pF¿œ'‰%Qc̀ ¬X*,r›X¦gHëÂú;u|"WQk€ÙGb—ö’^nó¹́”̃€jO¿ª‡"5üÜGSvIÎ ?ïVy£¼̃×;•Kñʯ6y™Jbå]LJ¼¦Đœm¾úP»ùú!™G/«3$$×’?=`ŸZ@Ỵ̈Á^‹Æ̉YXQl„»åÇÓrÚ·gåơ¼¤mVB÷nD3_Ï̃Đîḥ±aŒöbëØ$ọ̈˜2Ùéú‰ÈJ8ÓaÚ—3̣̀38½Å(ñ3ü&«t̉Á<3F]C…¸º¾kú*å+&z{cˆÍ1êIù¤ËtƯïöĂ—/-ÿăÿàtÓ¢#Ku]j5kkÄw+ûFƒzä\ß@dă)ËÚ¤n‚ŒÍ̀(Y[‹«¾9¹ăn/ïG&FWc·Ơ+ûùÚ–Lñ₫öă´$·“ŸKÖ|ºf>Êñ÷R½ØxÊf"Hª~¬DAµ=®4Ú5çíÂûpQ÷BÓ;Ü‹\’M³Xúo_V)Û™Ÿ»*ó3Ç2ÜRk".´0pLMS©¹†^aº Ñ$»ÎIa…/8yM+2Z¹@Á¨*•a+s^©­‡ÙmF ª”»mwđ„ܹ²¡•ŸÑ=zó̉jª₫ơĂ7gŸá([ø…f ́ZáË»Ṇ̃Lû1•Á«dUOÇ›,H÷Đ¡£ÛÎdyAƒ½J¹´¼ÖzK̀èh(iö¦cï– $U¹̀¼{ï-ǶSr/¡ÈŒç:}Øư: êw6‰D?~©ôرƒ¥ ynKªư6áÔ9ª¥i@CÍq”gUájP0ÿÊ|9«mRÖ¢âí¨©(+EƯˆiµ1ê ¾­â/₫Wûf2¡BjC,Ë! ¨¦vŸfÚ$–*Ú~¾Ml•₫EÇËM¬£p₫ ®˜½,c-ö½ïÅîpP₫€ÜZœbEs¢đ¦èưyLM¡t/»¦|)|ủp`¦fT¦bÿcχ'Á~®™kB?êô”ñX[¬_lvôÄI¶Q‘Á&Û"Bœ’½¨̃Lc¯öúyË·¨YG+ [» {ëRé \¼³[½÷ÍÄ®T¸¥×în.n«r>?óh‹jÜu:¥#QHÍ9îWbiX‘.ÁJ·Z÷°Êh–‡¼¬Vpi«­†2Đ/îïÜ€SäO­ áÀ>°ˆôÄÙɆ&%LŸ8‹,û̀‘­ %¢2s¯?~ÛM²ø¥PJƒ›.=Ø̣f£»Aï‡ôḤ̉ä5Ô$`ƒUâÆ³ǿfPRä§IÅÉơ₫Kª”#7¥d.=x²U{¶½Ès½RÎAå{^\màŒÂáêÆ<¹LŒuB ÆŸđO3¡"B÷“ªc{URåé- ‡GM©‡oX¥i•ånsí’ÿèÙ`âÊàoŒÛ=êuÄĐ́̃¢ä€—ʬö_¶è.ùïkœ‚ÔR)‰ fÁKơ…1^ˆÊHógn—â+'–Ñ£?;è_đô¶·ÊœÆº¹~;UÈ₫X¨S´'ă³»kÚ$₫6´=çơăbư¼ÍQÚy²VçùNؼ×+-G5¹ âđBëxk Đ4¾Ưºù›ÖĂă¯¢3̀å7© Ă.¦®wYRV¦Æâ¡î'̃MfÆÎó$±„7’º¾ÖçoÛBƒ}[îæ¿́â]ĂÏ­»úx¼|Ô¡ăÏø‘¥%RM«`‰§²‘Á9Î ed­‹³sדª—n¦1_:˜ùZÍrDÉ ‡·<ûƾ›wú=¨:¥É)ÊC*„¤̉Ùô¯Œ°[Ü»!ç®¶m´–˜BÁ»¡*+SăTÙÙ×p47¡µ|(e`Ï«Ÿ;VªuƠHx«ỏ íưÙüC/:³xkLåÑ}åÜ…¨ƠJ¹ĹṃC¦‹[¯¨ơL[>œ5Kg5TĂ₫E¡x ÑÿAu?&uë2ĂU:[C“39™3µĂÖŒ íˆ|Œ—(%—å‡h¯q´X+ÑÆ§»fOJƯ‚Hëø‰ms1À§ûJTe fRƯ=]¨X~4öÛ!µZá‹s±"̉H`{@Æ8.™!êư.´‚1x¢̃ïú‹Uµ:æ¦A7ŸK±,Dg'¡Ơ¤[=û²²‡Ơ ôT 9¥rZ»kÅÚ=¶ßß$̃á3öÚœ_‹%éô¢”t,¹IѬªÉ¼3ê%†Öù¿jbÔ.¼´Ú¸X(ív‘±»×Ñ[g¦öT]FöîYÎûŸ₫¾[Ïæ(Gé®́˜`ÚN8*6•:íÖ[ẓk—\J¹]đ; tˆ?ös‚ª¡¾¸UừÖ‚ÚÍÆÈáư$Îơç›39;ñ&¹G¾ÚT|g;VYÉü‡=̀Teùú“7­ 2N ¾%½ø_úivMă}Ư«R¢†tS®U-½½ï(¢t)Fq=vßʆ¶›9r¶’,Ư¤Ä¤q8ê+ƒRÎ}×y«d²v‡I™9M‹9Lá×eä¨3.jL=x€—¢½e‚Aó„VsE8ï.½U\¤¨+J‚è„¿N¾Æp³¯î{œºcWñézƠ%œn˜ÔP(¥/Ü÷ƯÈz«Áu¾9·÷Ë´êI8Êdƒâ|9¯êÂæ.̉¨IêE6+]rg ´')Ă·—C•ü˜XQ-xß§”ó²‰~ơÜŒôÅăö¹'’aNÊ“‹R ! ÁŸ—UI_ÄűY>ÚñVMœh#wµ(²¹o9Köơä£Ó²§)ë@@ ¾ńK!aí,S4§X¯’"Ï·â˯ŒŸF‘…·'£Döă†X¨¼¨’¶wùoƠoj¾³90’Ưa{` ‚L/ÔL9I¤Àî`’5UÁœ-Đ·–Ư¼‡e{®/xQÉíez„_ü©ñÁ¯̣nÓ7<4mt§â‚ø‡«ùøo©nẓ¢…CÔÓ §˜A9‘*6°º©Ÿơ±'sÅ&ÜlxE•ê+T Ơ¥½¼Skz‘.ç̃¿—8óŒU÷ˆ%ôÖha™†À½ö₫å誹ȶu¹F ~@Ó[Ï¥ü„Å̃LïnsIz-Åqµ£ºëe££öqCÑ«\¶<^§˜3»e~F9_\4« t8Dßriج¬}‹•5oö$*í'î?áàçx¬Î´•"T̉1UsH÷’ê-œ~^+%¡U{pÜÇÓÁđđ#YwqÁÁƯ&aPíŒĐØâ¤‰­Ê%¢‡·Üà¦éŒÅ²v…Th4®ºav¸gja`Ê6ü]\ØÀ‹Ë+̃ë3ƯGw™sKû¤t4l¾jn£vđEAßú̉=d-[StjZÚ~›^ôüüëfZÚêøP3¹¾¥›À#mq7²³%-¸èđ¬ N&F¬CA­x,6fơÍD_ZêI>ă_׿(̀fù–Fí¸‡'QÑ ©«̣‘’Ô‹=₫|©”ñ€çO{îxJ¼á́_đuN+á…3s‰0Íj?oƠ jœO¸̃³û*› ¤·‹ºéˆ2]ăîÜZ¾ dœË+_È?xD9\̣¥WT"ܱeu³ÙWKXÂư•­‘a₫₫øC>ÛOSŒŒzê×x’ï‹'H0%ƠÜ/ ~È 7W g§Đà·Uxk¬®WB=ßp:6à°øhƯn?9GŒ$9%j•èÓÀJ â¾êtnĐ[ê¼Ư(k•Ûë¹:ÿbï“\»a±1Œ=R»Zß­Ơ´)y x¬eú+,ætĐ;c"́[ÂÍd4¢iå̀ê˜mÍäÂ35÷D½cFºé5­AÁ×Í̃Hª̉%DQtD!Ü|Ää ¦Å =¯„“̃NƯ”#¶×0z₫#é°qЦ¨ơ-/̃/ÍâhªrC©~6á‹́ÙØ~;ÙƯG5ÖºF¡ M₫ƒz¯IåáÂB“¨g#WOU˜Ë™i.&?épé£Ứ²̣g6¸ÊåÑJV-L›t£8ơ<\Ï]…p„_ú¬ªÄ¬̣ó•ăsË‚&,yºxÂÚÏVFº —Gơ°·Í¼/ »Ö9X¸Ñă’hî%¶kớ̉·®…̀Î?R+‹’3y‰ô¾†đô5Ö;ºªÂ)Ëày‹¨û0\æA®ïă³Á=)d½˜-”*ÓD/ŒRd›L×}T1è¯Î6‚₫ăSÊĨ"w¯¯ËÉV$Aí²–v–¬3ô/äQQ‹…§¼‹âº |æ½ • §åŸ\£û8̉¢AöÁ+}÷h³¤Å®ôPnƠ¹ç[²|2}u^c(hÅà>¡Hư\ÄI-u¯fïf[`¸9–Ç£x«úăUCαwÅ6z5tz0#K̃ÅiÖ²¹–Ñ÷x̀¯ơ0¸×H’“ä3·ú…æÑ8M¤xmL}³ù±Gv endstream endobj 486 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xÚuTÓưû6("LAB¥a”̉0º¤$¤[’±ml£AºD@º;%¤„$DAB:Dº‘₫3ßó~ï{Îû³}?÷}Ươ¹¯ë;NV=C~E(Ú¦FáøAB̉ÀûÚÚê a ˆ€0€“Ó‰³‡ưmp>„a°H4Jú!îc``̃¦ ÆáÚhPĂÙ‚Ä¥ẢBB@a!!©¿hŒ4Ṕ‚„µ€h à¼vtÇ á¾Îß@.7$%%Á÷+¨èĂ !`PŒCÀđ!`{ !‚„áÜÿ•‚KĂ9J ººº €°h \›èÄ!€0, ăƒ Ô;À₫Œ&à!ØßC´-ÎŒñ{$†ÂâCœQPˆ¯4T×ê:ÂP¿ÁZ¿|À?— €₫“îOôÏDHÔ¯`0‚vp£Ü‘(8Điêªj àÜp|@0 ú¶Ç¢ññ`0̉lƒüj TUÔ‚ñ₫™ Á qX,̉₫猂?Óà¯Y½vp€¡pXÀÏ₫”‘ïî‚–û…vEy₫}²E¢ ¶?Ç€:; £NÎ0uå?¼ đ ĂÅ„$%D$Å0' ̀ ‚üYÀÈƯöË úiÆÏàíéˆvÚâÇ€y#maø€'́â0Î0oÏÿíø÷ ¡Hhƒ#Q€²ăÍ0Ûßgü₫1H7 ¹~  ĐÏÏ,ñ ƒ¢QöîÿÀ­XPMOQÇÈ”÷ÏÈÿq*)¡Ư€ü" ¿°˜$$,”À?xÿ;ù§¡bƠQ¶h|Äï~ñơwÏ.HÀơG!ÜÀ'ÓAă© rưĂt !1!₫ ôÿÍ÷_!ÿ7ỵ̈̀ÿdúw¤êloÿËÏơđøÁH{÷?í›x,"Ö ™˜ù™-₫̀*;­jàÛ\?̉3Hs4~e¶gÁ₫Zkÿ®4v/DiÑÏÓ†ávI¯ fü&Y°ếwT<®¡kGơj DY·Œ¼½¤æ icäàx¬ Gë_í + €Æ¦êmư1đ–Çg‹êjà 0•ư“®DÜxQÁé™t_‰Ä¬TÜƠ¸ø8¹­(/A«ZùØ(iFÚ5’,]è÷¥µ= 'Åu%÷å/ Ë&5 ƒưd¶³ ·®UyôăŸ6÷·÷F¯O–l 2:T µ-_̣£®ÏÈë¤ë¡ÍÜ›Ô 7¿Ç"ªBªƠPpgít<¼xGBüÖ¹½óe®RïI¦GĐ•n¾l“³x%lÎ_ḷ¨q© Ơ‡_ëYoơ›Öz.±ZÁ½Ê\f@₫n"1”åïb+;²4I—jæ!#Ó] .¥te& Ú<°°…€Ù2?Ä‹B¬\éI¤Tj°À#•Æëư$ă>å— 7 4U[¿Ü\Ư¦RO”iƒÍŒ%ÈæZz‰¿ZT9uçª+è^®Br«4)O†=•_ôñ?Ÿ¤•LfÔ¢æ›]ôªc¿#U˜F ˜ƯÙfˆ™è}‹d€ó?ắ÷–ôñfµ|ª/s/s¬ƠU{@RØcsË+aÆU:¹•hû;®’¼®‰\•,iX ŒĐŔR’l%ªux1dûä"í%q‘Mê’†ư|á“KYfØfÊ$£eí“7ºQÉk.a+;zËÊ ñêTLù‰ư;„ÆÓă’ß®Q±đV·z<à́Dô,2¶NÙ|¸ÉNóƠès=¼:l4ö`Pxo-W™©übÂ.—;œhøæi÷+»>ú ?ɅŶƠÎSp.—‚wn•C̉e`aßP³èÀJÉ^!M$´S£Í|{º¿Ø1‡§K‘ ‡‘ügă ƯÇwY2³\ Đ=ù¦ï̀€|…Ç0³Be›¬éư˜µ©€= £~BFǤY œ0GF·¤¾B̀ÑŸÇ̃ÖÅ–LUTÁ}N^4\aAT|ƠÈ́å~̀üÊ“4¥0í¨l©3ôĐ—ñN©é‘ Íníï¦]/a& ,Åå^/+“z`[,ï;©®ˆ–̃_`Dyé²…]søôp¥'µJùú„⻌“Uf²ƯÜĂÔ‚)©Æ±¿‰ü'»oíP•ñ^&!®–Ă`#̃qÙNOMUyI‘+PNqÅÉúÇa­hNî23µAÔÙg÷cß­Û]ë£'ơ>)Á̉§:¬MúñsÍ£c`ØD%³LuŒˆ%KàÚ:ƒZ$n₫‰₫Dđ ‰N³Ø=ó¡^Ç$céUßEƒ× ^q›ºí6Æ]Ÿ̃÷½æ¥üï9k-ï!ú ›>i²V´@‹ÂÛ’ ¿˜ôUŸ9](Wơ‰„ÄRÓ(o’|@"Δ¿‘ïèùí9KË̀¼kî7×¾́LƒË8Ơ>×đa<“Pb9^{̃ÔT³s®çé^Å  VWs[í1ÍM£‹MöƯÜØ½|‡¨:́Çä`Î @n]êz”(¤Î8¯"u¡ƯɃî:˜L7HkÛĐ1WÎ^V¡¥÷™aó’X ¼BÖ¼eÙØ3ňè¿Đ’Sº(âT:U‡§O™>y“²Èçi0Bê†Ú OEg½K×ÉTÍSÑ$ù<î« .á~‘ºuséè©%UcíñƒœÀƯ…1UѵÎú½âï_ˆ® tâ J,j‹ Û]Íđä⃒µ·ópÿ»ƒ7–j]¨@ªöb©pTÖEÍFN_çtà$ß`Đ ø̃gëa‚•ưI¹´̣Ö ÷ă7r×0—oˆÜ¸eÁaÑA›5̉ÓYyP£±Aä}) ~ĂiîªÂĂw6ésÏÔÑÜ|_+Ôç3„<’||/Zư.Ïô ‰!3ÆÉÁºt‡d#̀d=Î?ÜpKTXXă-¿¶́G5ªLº7vÊp©*rPéÙ©™˜èN«¶Yñ² ┪ůªjvONF)÷̉_çpù!*&|UÓûÍïa\à¢[QV oÏ„âEú\ñØÁxAœ‘ÎGrUvƒöúB=t+bÅ­ƒ…·ÁHÜv¢ÄDưfưhc_,!B©ï¢«ÍÿƠíß=»eê>Đd«j?ó…ñ¹nW˜É»\¢–ZéưñKk¨’"ˆ¬°gÊ%±w ơf[0Ûơ^ň®|µSu_? (Â51ÿzkEƒÏôW×÷ùêa|f ´m-‹8Rè JÚ´¥„ÍÆR3Ă¡üĂà́DØö€̣Éøb¥[.êÓØÊ–£E?h‹koA€Xc\²̣fVẠ̊¢Ë^đ,ÆæîZtm^q¥MY´‘{¬ç±¨|#—̣Ü̃ $ëÇø ƒâ*ˆœß­½SR3èa¹Ư20OûÆh£ă{n7°}ØñéѨç†ÙD$Áq$‹ŸôƯ)âÔ‚£²ñ;G/̣ï9 ŒǼRÚ»^Êóè́ ½ÿ*öá„}<¿9̃ë[f¿sL«Â^`-iw§mf—Ù,'<@̃àÑ{Ô ñô+́‘»ßVùvạ̊ÔFÉ,(Å*Cd¬gƯ),¨¥V¤cWÛö¶ 8>ọ̈Sö) ïGÆp`V¶O*ç>&%Oímotí g_ra:#¶2µÏ"Æ—̣ê 9æß7ø̣c¼¸K‚µT¿“Ü£Á»qaé÷ ^à<­kè%ˆu“mߤ5ĂzëŒCvè ƠMNŸ êa€úèá¿À ny@‘çÂêØ ±í>—=³{¸đ†râĂ›Á ¡­ i¸P·½èJ«6F[ëüÂZöºƠ«b&ÛWU=ÑÔ“§BÍ}k--_»=ä .úHÖF´ÉüŒ,`ZzWM<€Y¿wöܵuØDxè†Ù=@5̀3’6S”Sèqvd S“K…°¾éOèÅ3#|íè’VH^ñ–«.­kk]PêwG“Á̀@ëjêàˆ@I Ùï«Öü:Åörg½áù /®,ßOx˜ˆÖÊ×éÓM«́øx™ó1A@Đ»ó8Ơœ§3GvcÑ‹V;:4{‹ÀfÛ×yÄHœpúQ=ÈVÅ©ºÛ\ñmÄY„ peMÑĐ2Ø48#̣¸¢d6­°c-6R̀ơ˜*₫¾Çû‘RŸ%i§sƠ‰G«<,ÏLÁ/́jƒ̣Qê ñ–&Ơ°.ẰB?vFÖ5‰¼l± ¾ö>‰WKÁä'ÛbV[¬ù„Ó÷ëIK_ic‹aĂ9 ºÚ,Jh¥~±û$Æă×ëÚ3^Ă•ë¡ÈÜßhÖ§’}ĐáÖ¦¿»À¬¼·R§Y(ª÷3qüâ]LaƠ¢Ø0:äw²“‘R]@g —Dº‰Å­37AZ‡hx*ëlƯ?¿TÊÏ ́"Q\]”|!¢hΖ·‹kAø̉ĂßM$æÍ÷ºå€C$Qä>”ùÓAâ%ö~¯bv®sñ#¿>¦„bR_ººçùÅ7T̀¿xùEǾ§6 tk@Ôˆ½1:cèm$i¤9M”ưªU}íÖ-„ëù@Ù3·§̣?ØôÔnꦨx¹{¼Đ́WÊ8M ̉ßäHŒ4›ơ,ØØë ¾CY<V('®^—uÄ}±ªgw2™±¾Ml¦TÏí¯Ä>Æ8Ñÿ–=zÏêǦô]0ˆlûFÚ’ZR)…₫Ư-̣ég”ÈB(V½6‰nó₫e›-ă1¥ÜN₫›¸LØ{c#‚°lc₫ñ^®Ëö ŸoÓg„e¼Ơ®~ÄĐ™;Ødº<Ü©₫fép/#°œy=Î܇Kr₫ɤe¾#âc¤MZ€_̉)Gb‰NrZâxÅỶr@zNMÆ_“„LØơ€̉*»o\¾/i‘Pa T+L,¯ióªN—Uuz6‘~ ‚́,×›X_·*ÛYU÷-\&,ÚøX9u{Ơ‹ä˜Œ½YtÍađ)¶­L|“‰@!ÚÖv3Ă~¿4¦Y];Ó-²=×TLÖÚ¿ È­~)×&{%Äm}Ü„4d³¢Tsµ Œ®¼„´đ*̣®Ë¶‘A·’§ç[‚B=ǯ$£Ú AOÚÉNŒ›wew\r¾m_v?ÙÂ=̀ØđyyUà?3ỏ$çÏjâHî¬ÍIö 6°#Úd°4d–]+Ö$˜„Ù?R}O°¼óе`;åÍë  ñÔ“NïĐp)},ƒ́¸…ÊÁóÓUăG—ö߃N£i£¤ßN3ơêT–—­WŒ$è]5˜Yjçc¥¶ĂiójØ|ahZ—蟅«Â9 l핯ô¿̃H&n&Hó }ó âMx“ÀơHzỵ̈Rk•Ú^i>çp?³Œ¨₫qÿu ̉Æy*~=‹£ó/íưUØåÑ»ĂÊ2_‡öRÁ•ÎÅ˘a‚üǴ́¬¶MûijßF‹6/OnK̀?}" Q ô·§|NÇeiG4í”OÙ¾ẠS¡UxtI^¶5fhÙ"ªs7’à‚“—*=«|öfJ AȸJ(́/BOrg h ³©5ñàÊ5ÉŒ®j̃„áá‰ÙÂÚîµI>Óí…ëeơÍ,¾ôå̃<¼60å)_¡¯aÚ›.ŸK/èÅv=ßPÉŒ›Xơ1,4§Â¸2zß3>o«…¥©$@‡*~°ÖKù7}2¡SxœPé8êĂ½‘´Ä5÷”Émh1Œ>mÇ«ÛÜ–›_̀g̣ºyÁ$îYÄ_ªóo(öhJ/ÂÚöȼÀ=«Ê¢€đ S ^¥»Y(×N6oY~ßqZ¤ßZñâ+"·à× ;"]PnÅ)µÜÖlÈÆP“÷Ö’I‹6ÿd‹Æjg¹¥âǼ`×̀œYß’Ä9ÈeÊñ³!¥å­1‘˜«‹¥7  ªÙ “xóơA?öPÅüU¥+øÙ‰§ùD˜v́/Gù¬¼ˆ?ß°?ƒ_¤jƒ_́œ¨µ×u++<§3¹ Ï•-'æ›2ᡟE/µÊŒªTDơ‰‘3mc* Ÿ&|T²-Hyt(uư³1½‘ ”6ö×븽Ñ~L©nY!Oí$ÁqÄ×¹ÁZñÉöû}năôgyá˜dùƠôjÓÍDLK~â«dâKô$ߘ¬œƯƯ™P×̀ +˜sX¾̀IÓ·LÉæ®|₫Øöó9¯û*Óëº_øµ‘¡t’¸tV5æ<êIç™l vÚ­‹ç „^3Ç}<5ï˲ïÂ¦Ï  m! +*Ú|i#y4̀´Ü~›RP×y'щË$đ́Ù1 ƒ€”-O÷À„‹·Ô.:5ßÛº%lMá’'Ä¥Ç9E' —ÏúBJW%ej¾ä;™Í C/‚(__‚‘xỚîŸÈtEĐo­¦«i´ơm’j¿z(‰ÊR·½°r‰}2×̣“éêùÀ&md›‚Eè/½dĂÿĂQ <ÖĂª/=ä&|ˆÂ¾kï xpímTëưX²ORcṆ̃Ơ"Ô|°è$“øÜ§kåÚë{‹´/¹:âÍuÖÖ›»n]^{¦›Â ¥=ĂTd~@Ư $1Ë™jRÅ)\u›.·8¶Qëk —kÉóÆÎÜË'¥*ESÛƯ#È\®W› Á”Ï{îôb™ê¸ ‡‡.4+ &±›ï6wójóë> stream xÚtT”ïö.‚€ C "0”„twHˆ„0  13C HKJ*¢€t§t#©tç )¥̉ñăœóÿ{׺wÍZß|{ïgïwïw?ÏÇÁ¢«Ï+g ·‚(Ăa(^> @AKKM ñ‚$P”#䯛„Ă‚@Bá0‰ÿP@@@(ŒO„Âà´à0€º«#@@ đPB@TâÿÂEÔ ÅP‡Ă H¸³'jk‡Âó¯W˜ ..úàw:@Î ‚€‚A0€eqœ9ôá`(åù\’v(”³?¿»»;È ÉGØJs?¸CQv€Ç$á±ü  r‚ü™Œ„``E₫ñëĂmPî €q8BÁ“á ³† ˜ĂújǵXóààïƯø₫]îoö¯BPØïd wrÁ<¡0[€ ÔĐQÖäCy @0ë_@#ɹ  + àwç €²œ„đïxH0êŒḄ!¡¿FäÿUsËJ0k¸“†B’üêO€€1×îÉÿg³0¸;̀ë¯a…YÛüÂÚƠ™ßuq…¨)₫…`\$ÿñÙBP ˜¨˜0â€x€íø•7đt†ü ürc&đñr†;l0C@| 6̀‰ä ®¯ÿø§E" °†‚Q+ˆ-F̣Ÿê7ÄæY>ê0b¸'₫úưûÍC/k8̀Ñó?đßûå×ƠSÓ4Påù3ñ¿c̣̣p€¯ 8€WPD1/>ÿ,£ ‚₫møŸ\5˜ “ñ§]̀=ư«e·¿ àú«nÀ?‹iĂ1´…¸₫Ăr3 ŒyüsưwÊÿ⿪ü¿X₫ß )»::₫sưÿaÔÑó/ĂZWFZpŒ`ÿ }ù£Z-ˆ5ÔƠé¿£j(F r0[ ›y„ù€ÂüP¤2Ôb­ Eí₫pæßđ—Ö¡0ˆ. ươqÁdÿĂ ́€ù€ 1Äü!1jCư^ă/‚ÑÓ?ûP‚áÖ¿„'(̣B @$˜Ơc,€—F¡ÖßÔđóÁà(L 3³À ùµf1¿3f7pë_~’Ô»"˜ĂSsđ¿́ß ‡@< `’é 8øQ}EPăI™ƒ;ïÚ$₫^̉‰± ïPö3"T—̉ˆÅrœ~zÚŒF̣t§€̣3ûmy—“Œ…Éï^èJæ*Oá#^få [f«˜‰ë#́±x¯cFÖ :¬¬' ̣L]Xºw#n¶ËXÛvésPxß«è˜wç¤ÎSUnÔnn-ËKÓ¤e7ÚYyŒª·ê5XùAw/sÅ):p5̉,,Q;…UC²ù”$νôæRO_ïeçƯ¶u·€µ}ö—(J¥G½ŒÂ„¥FsïÈ/2?¸m§PyY©Ü’Ư¶î*\äN8©Đ>´Cn›³Üwé̀¨¥ë$ÚÉÑT‰{‘’Ơ';[ö=Öl¢(¶@í!0Ô"ăåçQJ?`uú2§/X^HC  ƯƠ¢…#fư"½ú¿.o₫ ÆywU\ •–Ô@¼¼4äeÚŸvAµSe|µ[)\ç°ư™„ÛÀäÈÊ'F3wbqd¤N¨F}ơÖ ‰5,đ‹(É#¥N­Ul¤û`vk,mÂÑŒúH¶0Z¼€Ư»_0+>«Ê¬üN÷Ñù–@P¯ÖÙ'ooü­RWH̉Ͳh˜EÈ'B³ yߘĐkÈÈ’œë¶²jçéưºr±©’§¯Đñ‘ÆƠ³ù¡¥8Láo–ä6e7:ö¨=)îÖh“ÉÈrh™Ô§'§Ó0, ˜ó7’Í”øaơqúªƯ¶Q.å:¦›2*ÎíH°—º®%³Aï yÚoïE₫Vd+xÜÇEåG ¨¸ØI£vẽ ̣„lyEªØiû±s蒥Ƴ¹8D'änLv>ø9¨»«QPFF}îåB×̣ÚIĐ =­ó°®`‡̃bÑ[‚ÇÏ×UÔ|“ˆÔ(?LJ”²P=T¾êÆÜtM À)ơÓ0£y ‘y7{­°Küjéën¶¾¢ÀyzC•‰På™ĂfEÓg NC ·)úøÖvFÏ•‡Q‹Í¾Ư…ï±[¥¹å è¨=M°—¦Ưë Ô›N­ưè9ÚvyÖ®"̃V´Î`̀–ư#Ä,Z&¹§¤8E‹±èà…á}Ó冷QO› -çóV¢E\Ûǯê½È®X÷’{®•¾8ͪû7›̃Mƒ©¥S·gíơtÍÇ¡d ›ä(å±5†Ôđûë&twmáxÍ ²°ÎXß'+đJÉ£C ëdîÔßÜYç;±Æ¹m@F̣¸Í!7 w÷ÊyơÄ)Fy~£‰‚½ ïd!ø½$gdÜ–NZäÁXPéWÜØB•ªºLÆ·œSăy»:¹Dvjøü‚ûq†Ơcœ/I/}”D›÷`wÖ±c±ç’™$ôà;=¬X7ăŒâ·Ï\]›8“È%A±t|ă á—>;Ñ5m Qûçéă??-z’̉ă+}äRê*¼^pzmxÖ̀³œÓ̉Æ!ấxEÄVƯmÊ2ÓR§̉Ö5hỤ̈ăZªØÏ`Éæ—]Óêï0×îæåC8àBïXK“¿œw§­„äSP=ÑÍ£’6ÊBÍR–çOƒLV’Y°EnkD ê¨ØëízÀù>ºă¹rLIsđT–KXêë±ù i|O¾XI•z€&lC¸̣Ú·¡gêX́œOÊ‚́̀gÆ'[CíêC¦s& w›?a¯µI“ܧ üÖï WßEMå:û§₫&‹›đ4½‘ª9R#;Æ~ĂWºI8aFéæï öüJ×*Öíסsån§–cijË?UKûC¾Jn®ë¸;Ç.§½âÊÑ­û ×̃ñwă‰ga·Ë•Yº„w.¬$¨†{enj‰û+„–É£gnMÈ– ·7Æ6\*=*¸A˜Íkç•yâ_×cƒKÓŸG|öÂú#pú*GpiKÚ/pûIB6˾&ơ‡±…­gÆ7q1Ÿœ ¾•‘̀—Ç~¸z\Á”| ;âœ$.™Äµ2TÄÓX›¶él¦+Tkû6K ʉËÀظI…#üP7m\âÛô<«x.|~I "yèù` Ûϼ8…ă éè¶+G9̃,KN)ç1’‚…&DŒf }₫Â~p1†ưî.Ń缒1ˆöñÅBíÎ =e¾lÛ÷lm±»–oÏ®^N¼xnơƯ <:.‘àëˆz”/¡– ô§Ụ̂V R±âµôö)îŒY0•çüøåÓưº„Z‘*•»Ë¯”íªy%ừˆ»ëÀÂïMüư3ƒ§lW+*)F ̃ë…c=†V™f=¨[0ö¨µuo)c|qe,X5.¸ÏÏL+ÏKAú˜WÏ–öxw¶Ăm—8 Ä5ôÁ₫ s7.Ñq,àZûƠ¸È 4¬@OUl»úă„!c²©ô'aIđ±́ÇÛ‚â8POe’D*3%­A;Á¶Öù·g¾œiM̃ºGI5''x̉Œxô#Ïư£àÄÈ}Ç-ó^ç?dQ#ëâ%x,x:îÄdJ,{¡4¤ ®ÆV#Jˆû9-uÍg$h7·ËĂ›,l°Y«÷—±ˆ’<Ún$gñ@óøWd|¢æå–ùW-\³P–:; b:8Wú­~ñœycOßL̃m›‘­Aúƒ™Éߢ­=>*“Ë'![0@OSº@yê¢ñêŒL¿g“J^u˜B¿tç|P_=BơM6Æ¡è:FO{%sưQ†…1Ôäưé±Ư‹1ÙU‰3׃¯ÔC]†¢%øñyTăR~SàµË©‹|¸Ø¨j̉ÓEwßœxĐAú"©™ƯFå¡ÁN˜ÖXÜJUÂÈ,)1•s¦9 ÷ñâö¬K( c™dBí‘ʺMo[»U÷ &6,?ÛPqákhpÙnăuÆWo¦6ø®’ï2¯m0‹z°‹¸0ˆE’t—(8ÚM‰fîĂK7́¦5ós­ˆY㨠|{Ăᵑ¬„P+®ĂÚÚ´ưĂÆ‚N¥uø &Ơ—·vÑ U²¶ííi–2ăÓÇ7¯×ßqd{sˆ/¤^å”W—ă ä¾²OÜ,jgaLX~)œ2e$`yĹ‹;oÅX/*ŦnZñT,°̣ö£¡_˜"F[íª|8W&4D¤ỊƠaê3€SÚz¯±¡.4Ínr2Çc‚x'̣̀oÙ¿Ür<ô:qµÉë+ă.h$»à8*†ÄT7©Øœ|+ÑR<_ ²00¸o±Ä®Ï?*-ÎzÄvSm̉½Èƒ¥1^àtS²tw"ßV?ôHíơÎÍ_Ï”à˜s _ &?£Yđ̉S¨µL¯ô Öë9Ú‡Í;µR™P)39Ÿ JH&¥íƠùăÄl7_y_Ó=tµÈK -R̀‘,•u~k¼́p‹S×ó¡hÿêƒRWk5ĂáÉÜçê!)÷F»¬ÂḿĐç_p—Ê©ä†m’‰TưµHăX]˜—¼o¢Q(`áÅíl?éèÍ~“ H/°ÇL©Y°Ôñ— á0ö¼Í“ÒöC«<ĂƠv•ªĐëx”R©ïđä"AF´RSÉé#€Zậ`íªưœ8ÔH”¹HíŸíÀ=~¡tQûƠï§băë!9““üÜBëå]­ç₫âÖäí ï È5É'm`ơêd|Ă[&Gè”×﬽̣ôn4lăÅÊ|¤̃ ¸ ¡DG̉•ï ”æS}¥å}öÎ kI¢Æ­W ß­ê¦́~$È"!ơđ̣NWÆ…1ë[5½¯Ûă Q^Sj¥›_kdóŸÑX̣¯Ê¡5ÔƠ²_ôÊÀ}à¸dÉ Dư4ÚÉM/jÖ²v́”®”b̃́bl¿đÇsy`/ËÁ©hWTüóà~W_~°0o"Ëè¥Kèă³®qxÀ‰́3©C—h5¯_k_ƠđÓëü+¡îÉæÁèÅsjöWĐ‚×È|~^FkdÓnBËÜx\Û|mö çä½gßoåWíLH®f(Qáô!XÛ̃ƯÍ2ørÖqjZØùAß§réŸMƠß~91"XZ)"»³'́¦¶’(Ir.̣¡P9 ̣î „’©†.‰6M?%•àG"[!ÏVÉ•¡²̉’“HNæow oR_@‘7|xÅj(AÙ”yZbEă ùÏ._:tϯc/œöëñr+/ªm÷̣œä»í6’ﬕ)Ä[rS₫hwXWKôÙré˜Ù*’¡wÍrµa˜̉Æ›ư(ÏÑ©„U‘S£YÊŸ‰Rág0«ƒÆPÁƒ¯e~ê¿€J¾GŸtb×7²êªóÄ ËXÅ1áäy÷ô¦æ&pMOÔŒµ6¨txăÉ„×tô·Í¶\ư¯È¥ư$’ÂóÚi48”N‰ ój»a7gUR‹§Ơ‡̃˜¢7ûqÇÕ̃ïƒ<Ëü×Ú,ÓíÄf̃Â(̃÷’rôc¸`ï”\£¡₫›6|iÂ8­6`Û>Ơr%XœU0$r|ù º]JƠe¡Íq–;̣MÉú6%ïëåÚ“ ¯äÊe¯´$ 5ïø'à“R~%ägùxiÇØÅTæ¨4đbñ̃´?ÏaGùƒÓ\á‰Dâ€GÊpV’¸È‰@Đ÷đƯ§—Ö̃x°ÂÚÍ¥ç´ï^O"¨øH$—ég@©K3²aO}DùăØLÆÄëï=„»|OÀÇû/5ÑĂ*wv×?JT…o›Dç~2Y"¥–̣Ơ N{Ps7˜́>̀¹ÚÓñJPÖ·7Ó‰t-BĂ`3‡/NA­¥Èưvâ§9Ơ=Œ?{₫ùÀKPºe|sL…À¼3ÙÄrwz(”ú\ ïÀ>¿'äË–ïƒá®ü’O+JĂœ ̉6 ÷„.û¥'vä°*ëԪ͓KoƯ¸=¢éürevy—ÛỞßđÉ>.$|N2ˆËr!"¾b×~J¶²ªG‚Ÿ̀ñJútÈcD]0È@³z₫°´ <7¹+†SŸÿ¾OúXă¼-³Û´Ó©ùëĂbuzåé¡[ªŸM•å]ÆIá&$O.NÑGQem㸻b>ÍLé7JV¯%ḳ¯‹qƠÚËTÑ.¨p|óÈ×¹J4¹ótfIÖ́ư-‰i|®ùúĐ›ô…̀ úJØ?Ó'ƒ€’`Uœ́˜+5¸Ü¥2(ö¡ï#O’±q»e—Í¥¼9iê7ÑÈ‘äøœ…®&C̃NÓÀĂ}ŸQÈ;c•j.g"¶V»£Îjöô¼-eÿUN¹µoùk@ê] o<È›‘ÁæÀ¹Yă¼́-x’ɾ‘zBh0[¤»¤XA€Ö7®ND_§½©£üBv5> ư|¹“‚{1ËH÷Ö$Ư)¦³”·Q₫øKœ– ßÍkơZ2Øâuơơëí6ƒ0Ü̉½§¨#Â?S̀Æh-ëÎÂ`±KŸY¼‚öÂÖÑTQ̣æ@…Ưƒ–z₫Œ>/·ÁTÉe¬´ù J6JùÇæu¹U¥êëR_̉])̉®b;Ă¹C×»µ[ÜGb†²Ëă…ܔӫ3ư]nGo9 T<«xrzç.Ø=o0º?ŒëÖ‹ -q¦nߦ€.>Ÿ¤w4hÊUñ¢ÇAÅF¬ê¹;¹Ç†Âậá KŸY§j̣Yóf5o¯±®"öAÈ÷ú¹™VΟ²%°–öÀ/FU%W$\7F¾s/W{œƯsܨ˜¿/ưi<¡BFk›øƯëú†ùÉÚ)q»bà£H¼øæº,Ÿt)ûGFƠc…P¢ûRˆË¨lN6J&ĐÓ¤;4@Ă¡ë\ÈJ́sŸ;V¢(û&jµkIz“YÙÑ©*<\Qsx §ë«œ+¬₫$FăV~ ™²feDÜ=́¸a½„ î§Œ<ú̉9ÍÅĐëÆÙDæÆÆV¶{«?îœѧ29đuæñ÷¤ñµ€j©j½'̓]¹QuûéäjLơ(:=|îÍ(rjE£ øEéT){Qrøè~QTøCƯ·Vá Ư?î Ï91˜&Èîè¬ß9wŸ£v/Yliz¿WÄØ‡&‰«ªn½µÂCxå†î€º‰‰ˆz¥si5H´¸Â.ïè-|è£üü.&Z|À̀̀Ⱥ?ơ<µàêVơp>¯$î°p›̀Ë–çÑ&N~ßøĐee«âđ/»­Ö‡­5_Ϙ›(®Ñß6t¼%Óœ₫ôµï »WUzûÛM¿qê:w¬¥4q¾¯̣FơfƯ_p"9—ƒ̉±ïRV‡h¿5–/霃–´I¹‰9UMu1ë°}̀êËJOTó^ˆ“#LO¹i KiPÓĐÜeÄÖxëñá‘ äÄ'ùÂ3:Ó§føơØj¡Ë­›^L!Å'÷×kwˆØ½‚6Ûßd̃-‘óe&ß­DjÛÁ´iäU¯³¨Rù¼­đ$R}.®CÙÏâ¦*V™±&Î#»¾à´'á²Ï»<¹zÄÀđé4—-`­Q¯5™OÊ‘ú$ªm};“YíV„côöíCö©–*+rd]F%©5).Ü€jwØ{¡Ê3̉Ñ+ß´§ï°úṔ®Më̉ùḍÖÿ¬́́í4Ôq)xyóâÓ~o ïlÇûÏ}»{í‹)Ó”Û‘?-¦ñ>jîê?Nbû”ơZ2 &(3Œ¬ç‚Ÿđz€+G²)Q•²Df󺈓Ù§PM?û=âépYñ£vËGW~ăỊ̂DblñoÉe«(QâgĐÁ"CVVÉ– ́K0]¤¬k+¶íṂ”|*_i)Úf4₫l¹á¢jP³F6ä–Zñ² Od9«bB]ŸÈb[ơfx§ü23JëtI3&c†ükIq.‹é=Úo·ôÇĂ“ÈÁ‘t3z\–7«~0ø‡-£¶s¬ü§̃˜iBí†üơƯfêñp.»¿ÉLM½À·Äaß+i}4<ô½HY¿u/LaŒùud`3U×%ùpÿư!*Ÿ‚̀­g5_ù[Œf»9äx„+rßÊ™®îp+èɦ*êN:Ư2…î÷OƯ¿014ÿ¹:Á endstream endobj 490 0 obj << /Length1 2641 /Length2 23115 /Length3 0 /Length 24601 /Filter /FlateDecode >> stream xÚŒ»P\ëº- A‚»kăÁƯƯƯƯµqw— ÁƯàîî.ÁƯ!Hp»½ÖÙYë¼WuoQs|öÏǽ®n(H”Té…ÍL€ö®ồ L<Qyf&+ …•«-đo1…ĐÙÅÊÁç¢Î@cWL̀Ød'ï`q³0³˜9x˜9y˜˜,LLÜÿcèà̀3v·2È3d́.p¢^ÎV–® c₫çđÁ”À̀ÍÍI÷w€°ĐÙÊÔØ ój ´hjl Pu0µºzư+Ä>KWWGFFc;g j:€‡•«%@ètv~' P0¶₫•@Í̉Êå/¹ªƒ¹«‡±3ØZ™í]@nöf@gèp€ª´@Ñhÿ—±Ü_t€¿k`f`₫o¸¿½²²ÿ³±©©ƒ£±½—•½ÀÜÊP”cpơt¥Û›ư64¶uqù»[Ù›€ ₫ĂÜ !¬ 0%øwz.¦ÎV®. .V¶¿SdüTeq{3Q;; ½« Üo~bVÎ@SPÙ½ÿꬽƒ‡½ÏßÀÜỄ̀üwfnŒêöVNn@i±¿M@"¸?2  +€‰‰‰“›t=M-‡Wór₫GÉü[ ÊÀÏÇÑÁ`Jègeưóq1v\Ư€~>ÿTüÁ13̀¬L]&@ +{¸?ÑAb ù_Ô|g+O€.hö˜L¿₫{¥/3{[¯?æÿé/£´†„”(í_ÿW'"âà đ¡gcĐ³°3˜'èÂïßa”Œ­₫¦ñ_i{s÷_lAeúÆîÀ‡¿—ƒđïX  ©>ür=&v&SĐ/æÿçQÿËÿß„ỵ̣̈ÿMHÂÍÖö?êÿÑÿÔÆvV¶^€†ÖÍ´̣ 5°ÿߦÀ¿–Vhfåf÷¿µ̉®Æ E¶·°ưo­\$¬RÜ̃ÔÁ́÷±°sŒ½à@M!v€3hÍ€ÿb#ƒ½ƒ+ÈJÏ`îà ÷»£́Fáߢ¿€Qäâ0₫A\F±?ˆÀ(₫_ÄÉ`”øƒ˜Œ’ €QêbÍéÄ`”ùƒ@\dÿ ¹?ÄE₫qQøƒ@\ÿ‹¸@\”₫ å?ÄEåqQưƒ@\Ô₫ ơ?ÄEăqÑüƒ@\´₫ íÿ"n¥ñ²4ùƒ@̀LœMm€ ç¹ë9ëåíΠЦÿÉ `¦¶ ¹ù Ûo‰ƯŸ£Ù? èHàŸ ¤€ÿ:™hgf́bù'PÍ̀ÿ@Pó@¶ßĐê@ødgư ƯÿœÉü[`ûGÿÛÜÁÍù§ ,₫Añÿpa5Å̉ËÑhÿ ́ç3’²₫5ÀæT4Û@PEí₫‘¨Z"³ƒ\íA;ø=(w‡?d@ÎÿRƒ’qü£s=ZíÿƠ\6æ¿¥ÿn-ˆµ#èfèđfư.•ӟ惂;¹9¸ÍLlÿ‘•íâÍ ÇßÛsÿ-ư·1óïN₫£̀ ²ºü©ÈÉhgơïcÿmtÿG7ØAA\@Ï­ÿ檡‹í¿Æ‰Äêϱ £«¥3đS ª›«‡Ă?@1Ü₫A-tÿ1óøÇø¼=ÿAá½₫AEô₫CÉèü×Qÿº©º9ƒZäúŸÇèû?ø?/b€@O )ÜS̃ë¶ûïÂøô{ü³{ÉÔô>?œÛƯ‘̃£®Jÿ¸á|+üm¸euGüĂĐ2ñ‹ÏIsƯû°–xåÖ'ßgĂ8•é½V¸¥)¬ÉüáÚ~BXz5¡}ß'_ ˆfđNl'7.$¥\ô{>IÏÚ₫̉•±O {ÊûU²đÏ¥3ôÑêQzAEs9&ó8¤Đ®ô„04hÈs7·³hY“oÄ2q´p~§Ñ¬>:›,_æ½×ÊƠX\ºpÉqup!nĐÆ¦)}De°} V–<›ù ˆ³é’VéQỶª¬T"í{«ƯÇ~t0ïf„Pá ïÆW—4b:“*bVµF¢»V³Ú ;̀EÖÚn5ºÍ­“–¹gjßsˆÚ–'MƯ>OuNkĂ#ôwŸ’Zî‡Gvºư4‹û ,<˜iÄ-u#VWx̉“ J]Çßui¥1Pè–Ư¿q=C‡̣ù|¼yÄc̃Îgb̉á‚ê#8gÏö½üâWQ¡Đ±9‡ºhë¦ǜ¡đf̉™tq‘kÉ*n”₫éCNx÷çœơ*ẽ`ư\p)ăÅfƒX‰±Ü×mö¥ËẠ6iÉ̃½ÅÊá½^ÖÜy çê­±́yÊ$»§‘ôă‡ơAC"Á¡}Ü·f‡Û·ee"˜Gá"Ă_¶Ô8Cr>w¨fu¹(¦H G¾+¼Û™ï…5!;Sq'±kŒAÖTăÜï*|ö +•£ *ø!ß/{ÄæûCI¬ ÷{ Öç›Æ@–vÅû`é(k_(̉÷W È Û‡5._ñDđUƠîsɼ7ÁzgÆwHF§wÈ}l+ôØú¼́Q)¶q”$‹;©×ü¢"^Í#ÖƠ=„ë– ªÓ性Cc"dïÛY™0&N¥ù%Téër´o ñ™ÖÛ̃BÄ1Mü•.z5ë7|¡eüz]Úàäb‚áêǰSûÏß²f<%s”íËđS#pw­ª(2I§áäXÀ°«u3SQíP“D™‡j}„1=D„Ûᛧª‰I¼TAWbÏ! ¡ç©F¥BƯ|F’A®b€úÑW#*3&ăZ FÙëĂ ËQ G¤1Ơ;Ơu2¿ 5ÉX2‚$±háA*Áăq©Nî[ơä ̀7q0‘?mäßÀ—AÄ̀Tâ “̣Æ×zd÷³®ña)}}Ø̣b=;d£â(¦¾₫û÷4Áa\#ÁkÎÄ,xñl(Ưo×\J|l̀ó„×ü®“÷R`ËȈ¼)ÍM~βǹG¬O©ê¢`PV©XuR®5Ó³~·^8D ¯₫¦DzN?ơZZöÙÙÜItÓ ï¤[r¿ÿ¬­zÆØ7ÄcÚ ,»’—yÏ̉f*‹q÷áØÀIXĐ»ï¼sÎrN%eÅ心HÈP›Ñ–eX•Å9¦î¦Ă–‘ơ1Ơ‘̀l‡#"ôZù€!Kơ©—E‘iV#©’CZ‰œÜöéè±¼‰>{S· çd8>y?ˆƒ+;¶HÉBa‘`Råv'3†›Bçæà/_Î̉‡ă½îö5%;lƒ&µ•¦±¿±lú»s¢xC°/O6Ë”gṭnKïÂ"˵‚R°dçËd߯'{hµöøư6̣l3=Ѧ´ü‰eÅÛ…I¡MOâC.'9³™Ê|‡ÿ]f ƨ!~¡ê_g$L_»µs¼ÈϦî)ú*:§‡1=¶Ö·XôJ{7•†/‚̉–£Èn‡9"vçĐØ<ờH0K‰f0%C^w»–ׄˆÅ!8rö́ªW”%ô'³ß«2%½ï‹¹qø‡¨¾î~{i“~¶Tx¬[đÙUD %3Cȹ›ÎÛaBYƠvQ‘ÊŸÛơ 5jΪÀɯ°[5¡`ú‘ Eóh”ẓ¾/'~#Ñü¦7öBIœ%‡‡HC˜ZUDqŸ¯ëœ½T4S8oă.Ă–·̉g´ ₫YË’”½ôWR˜H°d°.•%‡¯¨Ư}jØv 5/̃™¿Èú:ÈĂ¢/̀&i¢n¼ĵ#zíʾq–eW´ß»fĂ)2Ÿä0f€I\'4°z‘¥́˜"ËË/NIö뼬éBØ•¿µxOFI@Ă¢Ù–>”‘öÈT!—4Db4Eü4¨c!WU‡V¬pér~­ưTAĂjÂ*ho•ˆ„(mWÊ`8l—ƒœô¼‡,Ä1ÔĐ̉Gż₫¥œ]…¨¦ôvăœư¡ûêøºŒ́`ÿØï†ueDkëƒsT¾[ˆ52Çæ`Å“ÚP2vŸöÆUÇ4ü51 SÆLDSº;V#O;hâø‰×g­t 6¨B™ëPCƒw)§m<| ­R‘A1sÓ®‹«l(ø´÷S¨E¿ÿ¦©Ä棬ĽZÉSr\‡FĐÛ¶•ƯË&3Ñk$M‡¥ó‰ó£z[/ÆlỀØßÇüeÜÛNMEc€¯.6g¹.f_̉́‘¼ăºãWääó,ÈezăêA½(u†(È- vW눔—ää&—–³z¥Œ^²Àß²·åđ“‘P¬¿â“…Ư;QÏWü",Œ3â₫)>`}Æ6—̣ ₫^{o±êǘæ̣Ô^0eW.S,à3•Ñ ÖêÇŒ¬I&^(×`Ÿ·°TÁ|+8œĂ•n¶góö+³°[Ei‚£đ$ƒ.[ꋉG­)Àµ$ÿ\ˆ‡cI 6V³ßOBBä¿[ÆKË騗ïቋ¦½- g°Æ.^9¾z‰Fe¸Úœ(Y·uqøHÁ¶}úœÙh•ËáÚö|çéăµï]€÷pƯ4œCkƠF¶'ÄS²ËGÔ…!\4Mf ÏÉó¹Ă¤ €Å«]\t½§†×Mư2êt©>™·?NR‘£ûU7b᧸”Û¥₫bgîÏä˜öMÚ¢¢̀}®¥fBdwÅ\`S6 as‘²ßÁ³gyóºçâmƒ$?@Ă/E)\G‚ónn˜½–÷<­@ỹ i‹à(̀ù¶Ó‚^ á̉UÈÍW/ƒ(*nªq”k¹Ù>ÜG©?!Qà Ỗ·=@^ÛN:ÍÊÚv§Ä½È}ªíÂNe´SA„x꼬ùÀ£Pp:ä2{3˜ĐH,mŒn@¨¹JÉÂæVbë ¿O>Ç¢ù½Æc-tàT‘Ûä-oT±0 }d\³—FM±ĐÈ«4J¹6|8AOù[¾M骕Öeô¡àÖ̀0Õ(8ÿ“*…Z­B‹,gL ­JÊ©®sAÚóöM?ú™¶Đ¯­z‰¡ ̣nI;LéñÜ„¸ºxîéơkÔŬlp×<²TUM½¸²Đ²ôMW¼Ư·Äô.ƯbjÎ>ÊçlË û „jÜ#mª¹ăµ̃K*-瀹F{Cûo2r9Xđ0…àj²G§Rá*ê}d%ê7V. l̉LÖ{́ư±ÎŒäª̣ôaVŒóƠsÀ›û}ĂÑÜ·Êm¬¶́ç²ÅÿbN&@w¶~;wù†Ñ3p}e¯³A“̉Ê_r7ârsá†a"äçµC"*Jéƒm Ă  Ópú“hŸ Û~ÓÄ1ÔÂE)ÙŒœ~Zï¶jb.Rϱ­ ÙÁ·Ù?­ëđ‘a¸/±Ö|bĐÛ«Ø=˜x˰FÄ»r$,ëÓ/A÷¹6èwÇ×m7‹a½ZàÆy$\¸óùvp‰+a8?H̃ĂÁÜsîIÀj y©êû_†f½K©x°uY8*‡%Ǹp'az8lŒHøˆ°¶ñx^"¾a¬₫Ñü^É“-P*4Ó÷ø½æsï$Ñ6:)«È/ö×Ïû÷[Rz¤³eºĐ÷̀‰)g¦́ ÷Ü¥,œ2­"/×ơ.Œç ~•xb*Ó!¹ èVnsÇKºô7ñ«sës`P†?ÚyUR[ƠăF¸Y÷ÜjGÊơ©ˆªˆÛvxÖf/jgđÔ°ËUAńŸ¯`üŒx₫¥µ¹? ø‰Ñ:?t³ÿG‰ßºQÂù‰¥&AàPéV39´ÔFṆ̃˜«t~ElÀĐ<Ăm‚K¡%{̀2çDĂ_§ö«A=0ˆÏ;®Â Pôrˆö‰‘I‚P†ëX†¡+_ëư3±bx£ˆ¾OË„­_pûºW‰«âàm;•ă>á•å̀Rw}jÈx¨/¸bŒæ}¯K…`Đ|Ă³ë )Sm-tŒáYV,₫Ir„w¢sEÙéƯ—’Á5ªæ‹L̃L¾X'|û¥]· W[9Qæx­>û8^œSÜbŸÓLAànä”7³¨*mAs¯?pø*Ë8Tƒ%4:^¦ ±ÊƯ7ûè%y·.û¼ƒ3CÓ¤tô(bÔÏÜ—ºÀˆ§¼w p6GE¢½(Ô¶›Xùq*µN6Û́0d¾̃cÑϲ†ÜZí,J ­Æ™O¿Ø4©0œ¤Ư¼¸SÚ1 Q«îôˆµư°ơz&ÆáŒÇÊEĐ¾Y­­è·;ª7h¨’tc7”L{_ÿƒ¹đ Ù•1j₫u3zlûn“ís5s…}¸á“˜€Ÿ#4í¾y©·%9ácq?¸¾ĐOù£%ƒ™fIÙ[^ö2è|Á“VÈ]ig§ŸÂŬæÂ7´Q­ÜÊ{Öv{¯Ú§Πi;£ƯỤ̈ÄD/›½W)€XÄ »¢"œĐ—Æ̉aPo·—æ·XnOrëι½Á¨àpË~Å AíS“-1Ö"ßơ°oP ÖƯ~ç‰ï4œç)ư!ñ­Í…]®¨TºË´̃Ï×’¨‹<Î[l]}²'Ö£U;¶ư¥\‡gâçAßd~:sçU½mÀ`₫ ¸‘Û½Đ;<_Ẹ̀Sb̀…ƠđĂºÔƒeüsÆL¯é'#ă‹´Â!ÄƯª‰£™1ñ̀¼¼n¨Sc"|„ï}«+9ăl4?ë‘ïĂBOy{~ưÈû?5 ̃§́Ù‡¹|If²§ẠAª²Ô)ñ¾ü6‚)ĐtÀuF́H/7M9”÷ñSÖH`TWLÑc”˜{¾Ö9́R*Øâ>Ú:` ÷ü™æ+æÂ‹̣ÈV±‚‰y(íJ[ÇzH¦)lô"uØ6ïék‹c‹qăƯ/±nuÙÓ)|½èZ^kM¥åSïiÚ̃ Yܾ± j±è÷IJK¥ç¦-^¥tO9Éj̉“ƠÏ®ưî ¾~â8¥È¿N‘²Í|×R\!̀Izä#öI…‘ÅơE¾đ׃Ë^aà“ ·´Ö¯¯æy%éÓÛo“/O´è? µÄO‹Q†·Hº¦zIidVT9‘º–µ‰ª`¡~Z¯ RÎü>”A -Ûïln…A[Fă¿ITÈÙ#çp¯QÅSÓFưL¶‚S)—ôÆ6Qt~ ˜6Iu{z×û m¦!)·@G{€å‚Y.ù¿iÀØTâT× 9| nƠ\₫đ CTî"Vâ*„ÀzDKMË:”_°¦æÓ´4Ú•o x[̀~óßniˆÉ̀û&µ´h!ûM‰:G a¨ Â›ă¼¼KÎû äÇ A:Û&{;K6§–Ưˆ$q÷¨w€÷rg0AˆÏ›Ûå{¬Óëûˆ(å6Çñ¦Üÿ2•L•¡̀:dÂëIÖô…˜ơXuŒ§ÔÚơl…¢ÉU&î=£ÀHâÛy:¡³ÆzP®§₫÷fè6êíŸYƯơú¶́(º9S¼(t ”ÅTèV%zƠ ÊỬWRsă¿¦ˆ»Ơx΄–$~b(¼Á¿WƠê^cªæ+§nµÜÔ\€jg3o–k´ŒYaXªU{Gm  5MOjïá÷B®£Đ$9% ₫«ê^>Z XïƯ3w{ÁÚ6£×°äzöúª½Ånƒ-áo˜æÙ ¡éI¥ơµ~0,DRY}…C^8%ä`ơVà™gXĂđéƯ°À|!74“Öl½©Ï&̀OVơeïËa·]‰tsˆ±ù¡7JÅ#Ôâ±á\ÈŸƠ ̉=¨+/,Đ#F1æx6Í¬É «V1Ă-ß; ¤·¹8 ̉7 }…“…äŒÙ!­đU {·_ú¸Đ¹̣vñ ưè—×'7_§QÀh^:o×VÔ#̀ú3fáB¥7nA·Ö¬q)₫Y&]oµ‹¨‚à Ëôt'đùÙzÔµĂyz MøÀù5³²kº̣wLƽ‡N–Øöª.ṭ›Æzll:\̣srHîê:Ÿz·äÇåASÚ[ÍjØ3…ÖUUvîO÷ÁƯµàÑ¥™¤½ }鵇jGmk»&%ư0Đ+jhÈQĐå÷‡Ô˜Qñ;¡ $νÚ̃|Ÿ(±“x…ͤEñĂƒüàè­à̃z£¶WÈc/é²lx4ăA²ô¸‹kª{J‘ă•Â¥’TÁ}X}«ØµS3câ?Y–¦¤”8»±«ˆÎ´w5‡ék$†ÑÄåăơS‡D>og‘£é_²Pđ)7ïoûïCXlí~È$[ô1+tô˜!³z´:&v€ávW÷±÷ơăPƠ¿æW2Ü9Ă ú\¯hSVsT.PPÑ-¸StÈÑTä(e0تÀ"9XL:6À«Ä>…¯\mä¥p][me„ÚW¥m̉́FÔmBÏ ØLH‰™̀2ÁûK>À‹ó~)%JTH‘hẮúµkæpÿ`Ù/¶ä.Ú(Ūl¿½7¸K7†d©‹%J‰ÛĐŸf•åûúz <ªsƯ₫LÆFIV¾ET¾]º mx.Ó$zH˜EN eư3÷â¼~~lúyv¹:?RmGȺ)Ÿ̃ÈV9J‰K³“ZxĐ=ª1ùN-ÍX{{}!K̉÷sôÊQm 7äô1~†Nëë/̣ơ”¨>6 Eŵ­€!É4̃xuÉæÚ³ÓufdS®zÏdÇZ²ïn¢KÆw×DD/\¢N ¸É>#~S›̀èK¬ÇÔsK^XDŘ6̃béĂWUç}×î7è’8]„‚˜§OśÍÂVbzw;(ÇF~ɲ"Q ]vâÁ·d´]¼ÉIT^fØû)Czêúç’Np«­ysrƠ{ÇÏM½Ă3×s ~Ä‘6ÊUü˜¼WŒíV´7̀íw‘;îâûܦGœO W¶?¼¾¢l Ô øeö5Û£Úû*(Ví/ëíl>-g¡yxÚÓ³Ù¨Ç'wKE‘íVy4 9¢oÖ\̀ÆóÈ=’Ăºßăp6”QƠÁZ‹ÛTø₫µœ‚œ«²­€l€GđxGø›™‹m¡‡*ÖÚ ‘„¶©I7“ù…ôÖü+,£ÍÂüȘqÜx`±‡bT5ÄƠ'-DˆGÊÂr[ÿXÖă¤;BŒÙ¹¦hóB<Éê‚Ï 6Ûåá£b=(bÎÔD­XX~© '$vºˆ#¥áï·Hƒè©4â“ÅuƠúzÚmz6¸_]ÂEzéΤ•k&tN™¥7×”©đSÔ2ëØBŒÑÚŒ`§¶¢O5>̃JẠ̀Ù^ßXH5đ"Ø©²§ṚÓ¯¨_å‡Ô•9Åó4J‰Ö Yí´vRs₫”ƒ®.$ƠFZ.o8è°©ß}={]­¦4ë[µ(”ÀuIG¾»L[½6-ôünæÿöSX‹ w\uÙMNײ_=•¼æ¥È×t ¡üT =¦:;¯̃܇=KŒü"ªŸLÈu!P±5¹mư­v|ÎÎ2ñÁNUö”8aɪF{-> ½ÙcëưÇ­ÍUoÚ —BÈi²hÏÎJa¤ xs/ä$¦Ÿ]Ír2ZFˆ&VPX ¹t±¿`|P#È‚x“ñ3aŒ,!%qPOĐ)RÚÊÑéV Eđïg[F̀Î)Ó7E¢ß'Fz §kÎeuƯ®LDÙç@YÙ³ÉAm-u4YuE~ư·ưërI­–̀đņ:‚lw_Đn/U†7öÜzÖ›)lƠy.…èÅEÇ|è¾}d‘ƒå₫<):m·Û·V/6Æíú̃€”}:tZkCø AmmÁ÷’ô·ï·-GÙ2ÜdŸßG·ùúĂĐERG;¡ê†8ó Ú¤$<^ª‘xlGļväl€µ Û $ö¶}%! yr}E¶‡B·W ©׳c76Ѩ ›ÖŒ¼ü5]³\X¾P=›Qºx'égZ™+{V‡×A D÷{ñ¦"‚’ï}°LY¥À#ƒT™íJ—*a3̀Ç÷K½Aj»Ă\o ’$Q°üåœ̉{ăå€%y'Đ¾: c ßƯñÉ*4ЇܸL%ÜăEC7܆“Å̀œơCĐ}#Î UY¡da¡d”0ă×.Œå±ỂPE½v¹́Œ˜m1áiÈ–·ßáÉX4îs±•«iƠ× 1ŒYZr²”jW‰úÜ9i–¨0\|ö¼„Áè_$̀+ùưªUĐ3DHÑ_ñ³.Ö„6̣ØŸLa5AôF~&‹Ôü~}[Ë̃/ Vu·́u¢·E¤Ô}å#•*fæ3‘dXˆ4±ô'§=iCÄ&çInÆe2çøblF8"°€v>Ù_âhN;Ṿ«ëÍ="Ưת{µÆË @¼†éØx­m-r'•+O.¢mËíă÷¸Känçê…[Ï¢}ÒTk;ùÑa·é]Ú‘ œ&GYw¯­s©ÑŒ›Í6¹̉ÛH2Ë«’ƯǾD7‚íó³Ñ ô†-UÍ¡à` ·‡­w Ÿ§´ }‡ø³–™ Ö–’Ÿºr±„Ö~›ï̃c=ÓBˆĂí‚¶›ÖdÁ§nŒ0Â' °‰+qèЉœ8!à§ØÓ¨µÚÁJơK®•Z¦MÎ5°?üPƳ¤6̀‘Jïª%÷­ùT³!/½G´†}Œ U½…–)!W©‡*¼*ï̀‚=¾Uă´Á0ë5Οï+׺yzʼn—`üÎnÖ?±¹®Ê{Lû—²·ûưÔQ›RrF8ÁéÛæ/ùéï€N~p(8°Â0›Hns_½¹¬ưƒêâ׃¬:>6@Û#ßP½( b®’×a’B.׬&^m9úÍ6FđYDñk×/K;}ÚƯjwñŒ{Ö@®%9q€“£~x)[©4œ̃c¶X)‘r·Ơe°a₫÷Ë<÷¬~Œ‰áơ\í‹RWÇ̣FñơoQ÷ÓăÀÓbíeç‘Ç₫éOµ»¸åÛRê÷pƒe bŒ[ÔSuü–ä8ØKOÊĐûs†ƯwxÙÇ×̃–>ɧƒK™NP£±U.#…C\x`×ơ¹2_]KFÂ8fs!0+h̀ßA±Eư`*Ocä50ú¨fJ¬,­RBßgíßpCÉ¶í³ ö3F̀`́}e 7?rR†îŒ́©IœŸ‘å×1₫ƯwÀúW™OL3ˆ…!¦ÚÍÜu6÷H¡bfV‚r£YmÙ ´̣̀¿P‘+|Ô©o3́@+¶üæ2gØơ|FEÁÙ Ïư¬ÛÜO=Cû́1d\h$®5é‹ö¢Cà­U¾sNđÔÑè FăN½Éepéqac/PB%̃@_$˜fAñă _Ø¥œsUHÙ¤iŒé5>|¬®p ưB:ê™#¬ÆêÀ’¤‰,üÆƯ[Ç…†»”/‹i룒 –{¢Q™—úW‹IÀ€ b¥åí¯UGöǶ–œ™Ê!̉ªk/ă”cœ¢/&¹•ªY}’/q+†‘Û¥WWpÙ’Ó̉ï¶{x,«¼N»çϼ'ê#½åæY7ëpÉm&ÙHÈĐ”h=¬ÓÚsÅQ¾áL·p¶Đˆÿkz¶äĐGm;ü₫]ă';DxíRÇéîoêèbKïS2oÍ%FYÅ@ßLY&d<Ú„?Q›¿ă—?¹́•¬À †™ZçïËlê¸XíƯÚ­>²r‚áÍáùˆƯÊHêq]×Í,¤  ‰Đđ˜ ˜ËÀHâU¶”óMT¸TDHTx@â‹»ßRËGÚH_µơàW&mº+’ 3>*΢p ç~°OÂEơÏM;hÑ»²UsfvëRPs€ ÍươºµÑ§î‰¾Äq)s¢s2̃(µ:&E ›7AYû´/0éüôdî½Éằçp„ÙSß³ª½Ø:d’€Ăñç “zœƒ¬A*ÂZåKØ|S!eúל|a=,BuWædwœÙ^2ÖĂkơ ͺCl9£÷*eÑaF̉èª[ÙgƠ§‚£i”îdăè.ơ¥Ÿ”}„u±Eà Đt~?8Beé ̀ÊïåôÂê'²¶.‘˪¥ºœ+o—ètỆvˆ?Ă)†́a°̉Ÿ$©­đÂe¼6Ú™¬£‘Ô‡v‹|!Äôb0óÉ9ßöưbt0̣*Ù&8_ỌáƯDZæ `wǿ[x+² ‰J›…Ÿ’XP` èµơ6ÑHYU,{–»Ïv;›§˜?àÄ~úEUX4”Ơ/…`ÉD÷ZÊñpâIˆƯå̃Tlçï|Gé3¦Ư³P }ÍjÓJÛ‹œP3G[aÓŒª”Rñ{{B¦dµs™; ;‚pîÙó9“7J́—LèN®¿8ZpFCĐ&^œø¾! Ơ_3(zÄ‘rQÿ^PƯZÿ£¿;í7OÇ_¡"b7"/…«Ç b‰Yá<ߌMBpÂibpä}ÚRH=Vüxáª>îbí,Ï‚̀ƠMX½öwr·Ÿˆ²s‹̃ËM¡ăæËu€Oßâq31ù½Ú~ñJP´J ;“2 ~—\ÆuqêÏ>Ă)@CBاò,X%4•n•Ï@pM.^Yôc&ƯGù@Êcă£T́æÅ$áZr´„È‹¹ô…½±ÅH5:ŒÖË6 I a,]ÅQVb¶?ƒéê4ṛÀAæUùT—Îà‘2I‹4«[J!0ăB(|́rÔNqssÎô¢·ç×°“k>AênB©+çø*Ë i9Z›;ËmƠÅk€ú2ëº,µÛç´y‰1_t«—̣€ÎWÊ•øüÁq+ó$å² ƯE¸ÛÂĐ]T¬–“ăQX»IC4^b̀{O- µ­n₫GåŒûä&œO?£khưq´SÚLÖy%f.E€ü3¾Q4"‘[l÷%*5;2¬T‹3ߪÆ0¾·f_)¨m52‹ú‘æ?f½Í÷à@f{&çw­ó¼7u¢€ÜJî×ED}› H©§{}ij’£XímCf=< |éê+¬ØÂEô\¡v˜Ês¾ˆaOq]SwíºÆ@±Ă‰N'i›¾b¥¯Dj8u}±›=QK¸)Lcl²ßok±À¤ÿ$ϾØô–aygÔè >±ÜM:Ưüf­x»*ƒO/øđ+éQù¦ö¨†’J“l̀…›̉8´míđEGH‹‹'Q\²)øcÚÂרèeîDe·cƯüá0ëÀfFưă™ùU¼³EĂRøz…‚º-8ö‡"×9ú!Ö¹[¨ÏÓå̉V_Åư‡)wF?úÁï$œ)U­–WÏ,̀‰Ö_o‹U¬ˆÄF‘·Ăë+-‹5%+l¤PX®E t’\´¼Ó}OçVéPư­%d&v'¶4JdÄW…3Ó³áMOC₫Ŕûv;—É^ö¨¸kbü»§T`K̉ç¥ÂŒ’¤’Äé)–Eh~*Œ7o­ÓDưI$rdÁâ¼Ci¤Q ]v 9´¯)«l©*d[²60Hêy˜ẳ#4:ûæ.zK ¦ŸHź;»‹²ci~f]ê‰ „«Ÿ×àđ8kñgc‘'U@ï̃ÓjÓµ%Ă8Á3 |diÆfƒf }y:rPµ.«›ÈÓ€®#“íkCL‰̣+ÉP½é™¯2ÔœóWË”/..6Ñ5®Ÿ|üCÁ¹ ́÷ñÍQÉ µw”Ê׈–N”ĐZ)ƠÜs*vfHÄ’¸–3K•<ĂKZD*}opẳÄé+á=¿–©iàO‰ål²ÍPO/® +úeµ·ç;G5Ça- öss¶ï+"vçWZăëk~½äíIE|)Yc“Đêó°”³‘~¡Lá% ¶seu×,¡¦ĐÑ"I$ZG¾VŸdËÈ2̣§×‡C‰ß2°N»0 #̉#vâ´»Ièú¥d|ˈËéˆ,=O”V¾–M,ĂfliÄcpo¬/ÜC^7ƒá)réT̀ä{Û°qˆxßY%U×±ÄÑÚ™@4á‡`Ú¾_ÉÈs6+ñ=ι!9₫z̃5klB‰HƠé%\BÎL¿²ư+c´ ÍO‘i 9ånBYœ)%E&Å^°Íä:}p0«9çl>†Z̀Ñ£&7nÖè}>RAj½=·ïºÓ  °êœ&Ơá:ñ7WY8g•1¶ó—1€ñœ#`ZûRl®­Ä́4†óơ&ùk½ïPƠï Ö?ódúû#Ù·“BÚNø^½qṕ¸AÓp9궈ưDù"±nÜ»ƒk‰P­óÅ5ÏE­Ă.¢E…°†a+9›\J—œûôßçY5”+:´Çq®T¾“ÙG ,yëkMßàE ®8Ü|̣ö‹‰5Ê"•«Ư^…b­Ííßï55r$~‹˜ưúËáZw Íá(́à b+ ÷($ÿ°©ó{n*Ø×4ë>÷â·[{9cäçM§Z\í˜öœÜ¦ÖÅ»çXÓbŒ³BÈHÊ™đ²¶ôpVÇJµçKÏhă¢H…E¤übn•s­ªÄơ2½rxÉ> `´Ù lRÜ"QaKt.Ư:¯Û¦›Izœx̉Q’†ü<­Äm†|!Z€3Ár$@(]°ˆM,7áÇï;ɧ.^ deơæˆM?;‹ưxăA²V&Ë₫k%ĂB m´½±%DZ™ ÀÂOÛ̃²a©.ÓEØSKºÄ´ç”Rp%7aª›‡ä½_nñ%'ăØÈơJ³´Nl̀ở6~̃}$ĂÈf·µÑÀ3µ1εT%½ÏUq&=­W„)ôªnÊưz̃×Ơ£üµÿ:đ†nŒí‘ ?¯ª*Íơ‘f<®’"#·óiäs×ươÄǨ÷¸ïTK"/Œ+ƱQ,̃ëÊ%ïüæüRE°(MSb‡œ½ü†ơü[×¶0”LJX¸«GyỨƯù ÈƠ¿ƒ‹wcŒ }¢I¢°F¬Cè_ªu!‡sàlAy,È̉¿ÖÈđŒèËgˆ> !2M¶½.¡[²­ăkJ¬b j¾yü)&D-îh1n›ï×{mˆpp¶X;ùd̃Ó́¨ÈçÔ vŧ“¼Ü¾Îô¬ÚÍdđQü%}̀ö»ï[Ơ]m'ö1"‡[7ˆK £%xm₫(7¯œ3Rú₫nă‰âhMÜt2™Qàm;;â´¯È|³YU(H|Œà9'eX‡u«ú£ ¡"hªccQÄBê˜2 ¹o>¨”™OJ=áÏ-¯x÷́7>–>5G”'&s·0z]ímß•“é/ù ˜Ơ[–׳tpPqs¿0&ØÇ¢ó%êâ’Ùr&Bc¥s%‡Y¼ˆ~˜µÙR«´}æ$cꉵbƒƒß< °DÙ¨¹f±ÄU}2¦pQ`vă‹°0’Æz=èWÜÔ3–±i''Àÿú2CèÂÜÓ̀B/£âp¥(Dt^ª-´^VhơQgûWÍưœE üÖ“Z"¢ºƠùn&ƯæüàÑY>W$xÆ:ºæJ¹™‡²{óDºâEÂÜ}DQÑ.Vœª+nºcÚÈ•jÄä‡pyÉ CçB¾Ơ’B«QÄ$¦wvZ#½lË8‚]çû 9†8ûAKGÔăÍ÷Êu⥠<×roℱz=Ù,™P§»øÍœŒ§©‹¨Á±ÛŒ$ ¶_ƒæ~Qê—½$x­hH{HŸ­¬ÆḤfqÊPèC&œÔ*áà/Ù=â‰x=2(CƠ6Ḯ₫ƒ4¡núè·.|ꯣ:*P"£SO~O¶îô$‘Ù¼9*T½VÔñí_ºiߥ† bœ)pz5¶G¡)ª\îº̀Áöî¼öl~IưVp„ep̉̉¬rîÂá˜Ø^9ыۙh-†Àhw¿Ë§c¥²«.* K—WÖ¥¡%׿~ÍéơÀÄĐܬÀª_E/Ï•ØíïÔRTFư”˜Û+äéQđ̃ʰ8 r/Q›Á¾º[KÅ,eC„½|µbI¼×̀Kú ‰7h–𓤂fô=‘ su²oëHƒ¿g‚+£2m1Ư2lÁ‰­ÅÊDhiĂàQ~zÇœ%?*ëỲ U褣%S ;ïr˜3é î[vP2…C~™—?¦?bÔ=LßÓ·gpĂw ÿYQÜÅ]2&Đ µ-{NÂKƠ₫K¿ăçm#Ô.‘«[(m˜Åü”¬°k§*;s¨t₫—ubTO.Ḥá,¦ÁèDÄBÆ tt|F߀jCmÇX̉úxMëne{í"¯$ƳcyUÄ;9BRZ œåIèÓ„²† pZlm²|ùAöÉ=%GÉœ½Â¢XUñ‘¢Åæ jṇxU<׳µöĐ½…qA¹”(NTx;‘³ËV~0¬ÁyưFóà·Â7Ÿèg:ÖèƯí›§Đ–`lë ¿ª³Đg}U_?U«TX£<­ôÅh“t ê…ZÂ?‘ö›©“ùEË3. pXZ·/ÂÔ'<7|•]÷aX ïç)F–¬íp['æ¥È@ZúvZÂúÚlđ-Ö_Đ»\Â<Ú´ö7„«ZÀÔ‡>mÊ·’˽ӗè]Gçkç>u—Úub®8ûăÜ’¢éQÔY ÆJwïç­P_‡!?́@øaŒ‘¼RÇư˜Ư[—ÆùúxK#m$D™¨SúûĐ4¬ä(’Ÿƒ;È8̀ËO¾‡æđ#H…1†‰]×-¤L¹b­Ó}0VbzÄ”{QTUu=Œù”³¢0É¿†/­äbµRHIơSúWH¿Íi'xJ:%×,*îcîÆ$ö{̉]±^…}Ë'²èæ)/Ilȹ`UÀñƯ¯Ơ~ÂrïBÁïĐiƠVü!Í…ááÎ0Cơ$öă©_Ë„ ŒÊñŒ>ºªxc—Í®ºÿè¿$ó̀₫(%“Íàñ±©‹Ï\_TđBÏ”BE  °‚Ù<Œ~1~ ÀÈ\¹Éó97ÙÛG‡3W=ưºFPaÆ‚Ÿ~0áùªè(Fnɧ5ÿ”f¡8¶ m—¡¡M™ưܘû*vg×¼³zai7&¢^DÇö¥]'‰œ¦Ç'ÂWg‹-WÜÂ4¾Ó8H©háÀ•3WÍ_K¨`P½êÍË£ (Ø“ ç=^²Û÷ă#Œùô©äÙ¯zÚ¼­ṭˆ|gäPÖ72i†÷C,Ơàe\n—CËß•××ư—P¬eƒ‹ ©ĐÿO;ÄáÑỹlX:°ûŇó¾W$‰Ôl(uø ²‚ÓˆL0Êk~(—*%ô<ưzCn¤ƒÙö/WH™•ÀfYœ…Í5‡wùơ 瘭}‹/̉dvçeDq$đƯnbµDPu. G]”ÇáƠu]½ñøM+Äa,2ỐcöC¤©G]©̣ ®¶ö} ̃ĂŸœŸI’Øf”’@‰wPeÚöÈ Î>i¬c?æ?̣̀˜›äÓ76ƯÛ¢w3í‡âø̉,> Ú3?̉@ j®Ư2!Å‹ñ ́‡{Ñ3 (‘yđ€Ï›Cÿ̉ ³ 0jlU²µ×6i8g ¦&Pÿ ®́44C`œdÁ€ú6cˆíº6Ô1«¦å×î%|B"|pâJ-¢ª)aƒ•(¦eÚ‹EÇÄ Ë³‘†I{KʼJ•3)ŸZkhmü• \¬Ëă×Af&9[ä×Ơn˜~­Üè‹s³5ίXệpưăÁÓö6]ÂkBë)Ɇ ª.°÷‚¢Ú0ü}Ơ”j^vRX†GQ íÏt7ЧWж+À=RrÆ öE¢û…Yó̉–/ê“o?v+:uOµ̀`-ˆ+éGâỤ́7¬₫)NvÆ/'$(ÆËJ~¡d§V&4©¿̃{~¹9p N#°‹₫ẹ̀ܳ=h»øºhØÈL\’hE[Éï±bœ–Bu©\€ñ¬‰á8ÄHÔÂ$fû?ÅÛ$HưĂ%xj0v•™í–Óú|¡à‰6é£̀Ag‚_pÉ.cG¨nMúçöz¶oÜ ˆ bR´â‘m¡œüÇ_Û€KçPy'hä:%qÑ•*¯®ÜI óv/,íj’Ö}æÑƩ꛼¹ÁÊ–=ßF²1¬L1 `UrÛƠ ¿÷߆¿Œw™X̣˵ͷ—/Üô*d#ZP} ¡̀³₫„4 ¼RÄ6ăÅ0úÄHÙiAµUºÁxÔØªG ÿñÎƠ3Áÿ-ÚC¯ĂŸQ g5ƯoñÎ%± áîu›¨ój,¥J· Jmÿ¹¿b₫0„"ü[qư`øIŒî„ø—“ (È<óÉy±“3hP‘„WàÅ=Cz àês¦Đê0ê%;ƠD¡đóL»ºëdjçcJ̣7CVú±w=‘¤}üK/ßÑ€A6Ñ?.Œđ˜ajỬQuægcgh†k]«eưÍX³ë®û¹™BTèb'X”wPL”º10=ÿÙzyv²;§œ†ƒÕ¦Đ”®ee1ËĐvÇú—7èư½ÀÊÎMk̀~±ç–¼ƠĂ(Ût;É+.ĂÑ䇯¥ưaôŸB Ùe#Äÿ6ơ§4*…8³Ä}~‹«Ä¼"À¦TQ Ó+DíûÊ.æ ‘ê U©̃üéM¼eĐñ†̀»̉y‰½6¢5‹>8+.éƯ—†ÉæQ÷• ăr!†È¥́LJ^₫ÔÍä¹*Äû6— sr¯XñóbœƒÛ¶‚Í# 2DO}æ{*_iÀ_{¼;ax£uhă`1¯ÿfG̉bk‡Éœ;¤‘ÓF‹bn*ó¾!` ª%ZwpăCœ%£E//ñö(t Ơrh]§önä†J nö́=*́₫Wˆ’ô«,Ïn(ü•ßx`;’Kí«)×~û† $§ LKQ¦w" 5 )îĂ’,´ Ù™mA hÜ;́/ĐD¸X«¶„)4ưñÄ"Ø//™ùg¨5.cÔÅ\àD+ ¾Wî;ŸKŒ7)A×êiiQƒË•«ïóÿ´Pz²Ê­±'­³kWZÜVÚQNSÇdăXN™Ün_^¡ ±ö ëL¹|‚ˆœÀ·'‰4­}Œâ ’G:×ñ[ü‹lv¯ï^~u¶qd!Q*É}Ụ̈=üa±_¿ă•tÏ›@Ó}ø£rGNăHĂĐѲ›£Lu}l.<ă|̣Æ;ù]´ä¿)€¸d§*a˜5û’ÿ ›¸ÑKĂÀFˆ†Ën<³ûó(}7é^Sº́I(Z˜v3 Ïµ»Z_Ë:ˆ·-<ʪûüfạ̀mÛ¿L8K•˜;yΓèg¦*wªyaFEƠư4~̀…~´P8^¥'Ñ%ƒ=]~4†\rH¤¢Y*¦|1̣̀´Æérœö+IUùj`wJ̀¤ÉM˜”ŒÈuû§3R&Q»ZßűWNn„Mlª™“Út=“6Ơ"Ơrœ›k¸0̣®ï/Jrz·6ă£Wíi ‘1¿°S^¸|1ÎwÂƠWƉ₫S9ÜW‚Ëൌ}?é’Çf¢–¢M¤́ˆ)ê²D@{ÜVáÄw«ÔÊÛ>÷ 9n¬xÀ[ΗK¤Zù]Q-Ơ"œ%@l—…`tëA8èÈí@=@ÂÈ~å·Rg¼”>½₫"/êËàV"PQBç~q„1­êD‹=)SmËmkSHđ"B¼RzT_ĐFà˜gíƯ‡°]hư°è\·~ÅÀ¹&ưw’ lđ)̀=‘S÷¡6Q2 ]íï鿯„Ư*EUơTzRé9ÜLÁÙMû.#Ü{Ú•ÎåäºkPơ5¹9®}̣ȧĂu€]_ Å‹Å&a/Kî¬ĐëÎíçXJ·qÏ ơS ky“ßÎđă™Û„Ó;ÜäÛˆèérXB-j9íà[ÉжöUûÆ]\_úsơB‡l²Óà!œ=oÏ,ăÖĵ›¨×T(ó°Ïa¸±ó\4 #y(5wÂ5Ó=®Dæ¾ä{ÎÚW‡UÏÍ>è“<ñƠïzz₫rÁóưăÓnô>Éê(â)ÇÆ¹ÏÜ—®ăÄJƠ#^/ùKHË>§+.ÆßÏ{ĹiHå6ƒ*¼Mf{º Ÿ©øÛ":YÔü ªê96µŒƠ“äçWQoÇ‹Ñ?ÿ°ưÊ«7Ú4hc đY ă[d̃₫C‹>Á›̀Y]Á³i¼¦D™¨ƒî¤úG°}VÈ0Júà¥çđU&hïh‘‰¹‘ÆZ¿Zéû¾r înªØÏûR̀ÆÉ÷Rf1“Vó¢:r¾‹ñ®Z™÷Uđ¼ôK´ GÑ̉ÿƯ&́8;Æ@">—Öƒôø{|7ĂÁ•ÈĐƒĂÙåºæüĐJüC“̃.ÙnúĐ̀èx ̀ƠË\W0;¾‘Hö+“™ơæ·ë₫ pR€»Ơß"=—K:NîVAơÎ ¦Å0±¶‘¦úĐ(£”Ix̣¤U~Q ÊxE/‚yÓ˘˜…éµpmX}زRkf†ü6́DÍVÄÿơWˆ›¼è™4vYk-.ÅL»3 =‰_"—"Nv‘\t.ÙWLö½4¢̃?Ôù)l”ö= "½…ÓTOLj=ê¾FL•“ßf÷¹Ú ÷¦ß?é‘È‚²h~¦îø SÚjKc#¶½Ó YÖ\¶¯­­R£RÆ×a{D G½¹°=È„²Kà%RiơƒÎèu!*¸ç'»ÄđÇ\äw'©ßXßg;£ pYáyH^«Û„.jÖ3µ›æơ!NÙA-¾;]‚|Œ·Ü“(†—›„r¿9́¹8 ưf«YàØâelbđ.:ư°Ü6@ ” HóèwjØ»ûŒS R—JÖŒ2đÆzđ̉qgđÑÂwfp<`•D¶g“Y %Htv̉¹!׳fóaHsäjólSÔ›é̉p<ûæx';Ư,4BÛ ©̀}VùÖ9C•Ï&ÔÂŸîÆ "At #Zz®íÍ–e\Ç÷Çu®Sd.ÑÎ@Fưÿ½·8¸ú¨…ÄưRÛpÓÊFX-²À™/cc«Êh¾;„ƶăûÉtÓ¿\O)Êư,:¥aÙưÜNˆS\̃°ÆyÛO°+̃jDvlÄc‘0Tùú¿Ư¤½¡€²ó³÷"W*´¬‘¦ ̀^·Q4¶ä‚M÷³—•ÿđ#Ç«̀L– ‡¼Ơˆ@ÚýÔƯ†~^ …;O}ƒÓ¸C³ â3´̉›Ÿ¸”\‘b07ˆă!§ơ€í eDL(r #n`ÉÑ£ẫZ¥v?¡_Îp±zÍEñüa,e•” Àă/{̣ÇÇ [—›a¨>¯‰w£;^#ü°KäLî¢Ă*ƠüÛ@d‚̀̃G§³’¡7lºuă `IK>BĂ6`Í̉MxF B°\"0aZVƒQô»…ÿ™˜6c)2ÂqàJ˜·©Zª>‡̀¡wny”JÇà£æ±ó¥Ofpl¡’)`VÈæqÈF½…T•çø̃¹‰^JE©FEÀ·tÁª±5–nƯs‰1«µ¡ß< ö`—“dßG¢u}S³§û̃7ÎóĂÊ91-™ä@&*‚ 4«§U~…pM•ô¦VĨäèX2JƠé–ç×GđëüiíÛb4Eï~ZÈâˆ]âuBÖưyX™Ï1ï¢*Ûwï~zVx:Råkó"Ü5$?Ÿ‹[îÊ™¸ ‚ªÁ?Æé5&AMăØ²BíöG%°dvT›Å7d¸íœ-P7k+2üg~Y·Ÿ•Ui…GLêŸs[¨O—€œÏKk¼å1|–cƒªŸ|哈0#¼ª÷I…‰¾+_+;ô‚PÉ*¤…¿°¡5v¨ŸdUÁh5¹É₫°¶Ä¬V ;yLX̉°…ñ¬¦¶¥…ö·™Ç#úƠ¹÷¯ô/Gÿÿôl`DÈ8iẹ̈2:¨‹ê)È·ú±xz”pJóFP[Ap”;¾;ơ%́îÑu¿$7²^ȆY$¿ôØưIVS0hÔî”æớˆ ±)$bºµ5[kûÂ9œ¢W¼´ÿüü£·<7‰»¯.̉ɯïq·ô®8mŒ|†.2{è:Ă·TƒÖ±_‘VcG^ÓL¾< [ô“û…}â]Ѥ‹ÙVÍŒ̣ë­Ü!ñÓYv9PD6‹½Ø€Xom…<†€8Í€+ï0±bü=˸ÔvÇo’ÔÉÓ{ŒđÁIÂ0eÄdÈw®¨±Z–ïÙɳԢü{m¨Ø«Â'¤è°jÙw4%Üê;ăB²ñ!ƒBRH·ÇßI¨“«Ë`hñf}CMès™uvxMM p̉½ÓK‹(öùç’T×êUŸb;qÙËçưI,A¨Ù« ˜ $9-Ä>Ƈg-Jßt0¸+Q2bl#¼¨]¨8%Ø9 ½Lxb‘#²¦mZ…¦±SYÓß çaC×C¥Ơ™‘2₫²[Èrà ªÑ‰.Æ3ưŒZÓû¢¢*đ÷à)”5ƒzñÓ; (ĂFN ÂWF!Oü¦½L#ùưçă»gÖ"MÑÏ9N›Q«3bxHï0’}¹?Î-[ rE ƯP(tM­–20t`äøcíHEÊui>̣܉D’g|¡ÔG‘|ñUR”È¡-*é† ´ö«å4»Öapl‹FÖ$**—fBS¡ñofơ£:i6ªº+œ–Ưçqi6£ư"rÙøÉÈ4‘̀èÔ­÷£éêfSF¹{¬ˆU©Ÿ8ôh›;½¢z¶Å'i½`̣¢­–} ¦Âº7ÚÇ^&cÓ ™ùå‚Ûp2ø‹&đ,ơ'¸O˜BpU°­§LëÚüÍỬïL]\ ‹>ÖPE1ƒ°Éê9 ²C×VÂX¼SĂ:tئeĐ Yu®L²¦ơ•ñ́¢;ăđZẂ«Ť”Z“ă¸E€¢̃Hx͇ք(ë•ôÿ^³f;îxˆ«ÛíÏGÂ@iB¬1•¥.¶s>Ưæ@̉x×Yx/èĂY{£ç€fÀ̀)g…KB±£kñk±à¿ÈÛ’&€ÙÇƠȃ¥ùñ$¿»¢"̣µSĂLº}¸¡¶à{ˆÛ˜ ¡uB÷%́ñƯXGÜ>˜7¤¤Q Î¡ 7ûù²}×í¤ñœ¼̣̣‹¢4¦»@nG~3pƠ²ÁSŸE‰6¶£ô‡.‘̀Ë'₫Gvé\óxéŒêÇ+ùË›4’ơÇØ+Ú%úÚ•Èpkj¹ë>LÆ@uí¨A6e2¤hª>ëˆ"ø“ u~Evj3¹¾­jqȯ!B«‹º’ÿ×ûÔëƯŸÜ¤ Zø̀‘ÑÿKFYia ö—hê@¿"ú¡å·­ 7ȧP¦d"s]Ñß)xK$Ès;ñ¬xVpH¡º{ƒ÷6·ÓÙü–(ç9s€£¿ˆ“ÄSiË›Cgj¯¢XÁê=£ô…ˆRÚ&âg²ïmc§.ö颷èi ß·(œH!ª«‡c¿? X²(Eđ#ÛÿCaæíஈ÷' “âz°x˜ÖYæ~÷üä“ôÄ] t7*€DkÅw›—#>è`(u N/¨9»ˆÏy3å•]8HĂ£¾Ú‰¥,²T5>Ú]â€̃_D—â?Íé×ßĐ¥¬ ôă•GÍ7DN%ÂWd°­pºñ›`đPëÅI4¥Ct»aÖNtơGïD>êIÏû[àºNëưk‘o²wñ$Úb*jß¡Èj«½•±¿ ÂJëñ]øÊæ–₫:l¦ˆäPóFÓ*!fɰ·HŒ9A_lÓ ¼Ù”˜ 8LÙù5§¢\ÂQù}ú&»¦µ©G®>Qv„«óeqà ³S@Åˈ½áÀ¦n-ê"—̃ˆSØ.bheBFùûm.ÆƠóÙ2n²tŒ-vÀ‚X"kºŸ'Ú|¿nû’C€́³Ëñ‰›c Nx$TX2 °Đbc¦Ă¡đÇÂ…̀üÇàNIëÖÊLĐ“µHArV9ÖÚméë@¸8à¸Đ ÛÇe›h4n k縿´èóÜëÏÁĂG«ŒẲà–³°âmî ÈâßĂN@UGÿp&§ª+v×· ±…đŒ ô@˜%@ªZuM=UU®è¿`.ÈXb¿ƒúÑïF('JÀL3™ëÀÀOµVJ¡ø  *fge?gxđŒ̉2_n:OI/µ_̀2—± âw=ơïë²ÏXû5A@aaªD™ÿK»Å2f!‚¯zË@VúísE‹ª¹̣,¼¬]wèưkhÈLØ G ô­’1Ȇº=¬€ÔÅmøváư˜9¡¯Èvï¾Rx’·«¹Ë÷• *gàZÅ?ÖE˜óî<[çă´ØÏq2¤3ÓÉÂ₫v¸;Ư²[WlÉ#rmÙ‡„ơYA‹dº3@n€a¦ ÿl¸Ơäpwư…o3Ö“åó~¾›×H²¤IúoQ¶¹ÇJ_ºóY)D ˆE®œß¬7öƠÙ^³¹¥åÊBƒ†’%8à_Zú© K9,÷C_GIµLRv«öæ̣†1ä6%Æ;߆z?¾Ú‚º>b¥P.ù€ ₫ză]RÑp5Dx 5ë~LzTªơÍÓƠ`o.è…!sfƠÚ•[›‘%Æó|rUÚAň c“—C|êƠ+QæF¯É8ªˆU†÷Bå}4}Èۤ6äË ¤©-Á́¿¹ÆÍdMÎßvƯöd¨~"Ü#…Đ¥h#Óư(ó3ïÇ FÆäôNƠ%Hă1HÊ;¢G VæâcuèO`½ñ‡„ Ó˺½E®Àû́“å…à[@×Ñ!s÷#H%¤-âj)uŒn7nèMSÁÀÛ<Ù¾M후ïv›µ6Ñ¿û¾§¼ƒM¬Åî½…fÉOí[f½khé7¸.ø£9ße§±¿”›ÈwgvXø`«OZ«×•±\¢/fçøÔr"L‹Î2¢ˆÆ¿̉â¢O2ÿ™%Åö7!ºÛêZIÅeeÖBÑ—ÿÿ’ƒ9 æ«Î°º¨›[¡ÓÇíơ4ö©Y”_ gzø‹0ÚN=ÙJ̀A: >†4u¨ ̉•µaD$aÍ2X˜³‘%ù²íCFÙÊû̉ÜSÏ‹eb±§£¥árî´Ÿù/S"c¤±äB—ôF¤Ñ¬Œ£/7±Ålu=—êö ZÁMGµGÖ•;z̀ˆÖ:Ñ g‹Ä)r /,—«F‰f,nFîưÂ…¢@K‹0êRg­6’Ä Ï¹Êt4?P‡%ÉÿØ"¸¦́»êưRur/½-aEâMHÇ/lÓà₫>₫|ĂVkÄ*ƯY•àßw­§‘\qÎùå²h³ íç²N°Ö#±,Qª9>âù10Ùâî/SCx8“_›£{èùöØw£?Ự:t³ ôêÁ¥#QÚ|lvA}!æ)L±Çí dDẠÜe?Å…ï¬ùöß̉HHâ"\K–Çx@N©’tÖÓ'6F1}̀¿´4‹Qz-‰̀fK"Ê_˜{8 Ë•IOQ=ú”1Đ¾Pÿo₫ `묯́?4›#/K’l̃Œ™ 2$ÆŸÁu×®€PëN FídJcáJ Ü2u¾½¤®d6bá)Ó©ư‰pY'>z ÏC€ư–èµ';?Œ̉ú<:·F¶r7•ÈûVl²‹ªLâ0"ü}0Ê<>‰t~ C…EâFĂ‚đnÿáç3S>¯üÉMY₫¬_™̉DS×¾–{íÁº@6Q:đ*ÀØÂX̉M8aºÖû`]Đ”EÿfOƠuDd!¯F£'R©—Awbfª^…á3€®)Ç´FÏjêư;¯ M(8lí 5\ê5©ăÈ¡\^f©gäa—3MT‘ß̣öy:Ê':¥®sđU“ &dïM0x ”^*Ö~̣Z‰o2beAö6“§”¶%Åm¼lŒ²¼=ȳÑîYn˜\ÜÆ£L\­ïÉÛ­c± ƒ;ÛQ¯ö—q|}‹;9ÜE*¹³N:jľĂô·…%ô­dz=ăçơÙŒó©à÷~QLÎH¿d ÿ'+å+ñ¶ésÀ››ÖÊ¢n"₫*³›/,^\-¬†¤₫JÆ â‚ÖÚK0 endstream endobj 492 0 obj << /Length1 2210 /Length2 18306 /Length3 0 /Length 19618 /Filter /FlateDecode >> stream xÚŒ»p¥ÛÖ¨Ư±m¯Ø¶m[Û¶:́˜¤cÛN:¶m'ÛÖÍ̃ç|§÷ù₫¿ễJƠÊû 9Çœ«ê­Z¤„ Ê´‚Æv†&bv¶Î´Œt \aY%N34)©…³µÉ¿¤Đ¤j&Nv¶\ÿĐ ;8ÊD œ?ÍdílR.ÖFf##;€‰ó í¹"®ÆY:€”­‰4©°½‡£…™¹óg–ÿyPQ99Ùi₫vÚ˜8ZØd œÍMl>3X”íŒ,Lœ=₫+¹³³==½››£% ÀÍÂÙ dâdâèjb ø«]€œÉßÑA“T̀-œ₫%V¶3uv3p4| ¬-ŒLl>\lMŸ¹Ê’2y{ÛËüË€đï¥0̉1₫'Ü¿½ÿ daû·³‘‘½­‡…­ÀÔÂÚ /&CḉîL0°5₫ËĐÀÚÉîÓßÀƠÀÂÚÀđÓàï b‚ƒÏ₫₫Ư“‘£…½³“…ơ_̉ÿæs‘Em…íllLl ÿªOÄÂÑÄèsƠ=èÿ̃V+[;7[¯=›ZØ›₫Ơ‚±‹=½ª­…ƒ‹‰¤È¿->EĐdf&ÎVvN&€‰ÀÄƯÈœ₫¯à*ö&+ÿÖïăeog0ưlÁÄÇÂÔäó´—“« ÀÙÑÅÄÇëŸÿ&hFF€±…‘3ÀĐÄ̀ÂúOôO±‰é¿øsç-ÜÚ ŸƒÇ`øëï?O:Ÿ³elgkíñÇüïÍ¥×T”VĐ¥₫»áÿ¨„„́Ü^´̀œZ&V#3€ưóÁç¿£(Xü» †?¾’¶¦vÎû¹JÿS°ë¿wŸâ߃đß±ä́>'Ö@ñgÀ¿2°2}~0₫?ùß.ÿÓưW”ÿË€ÿïzÄ\¬­ÿÖRü¥₫ÿh l,¬=₫­ÿœWçÏÙ—µû<¶ÿÛTƯä_ÇUÖÄØÂÅæk% >Ï€ ­™ơÑÂÌÂƯÄXÁÂÙÈü_£̣/¹ê_̀ÚÂÖDÁÎÉ⯠@ËÈÀđ¿tŸ§ÊÈêó̉púœÇ¿U&Ÿ‡æ¿SÚÙÿuº˜XÙĐŸ[üI¬/ÆÏchlâ₫÷èélíœ?]ŸíùLí¡ÿÚO6V½à_¢€^è±è…ÿ€^äqèEÿĆ z±?Ä ÿCLz‰?Ä  —üCŸÙ¥ÿĐgv™?ô™]ö}f—ûCŸÙåÿCŸÙ₫ĐgvÅ?ô™]é}fW₫C,z•?ôY‹êú¬Eí}Ö¢₫‡>kÑøq~ê ₫ЧÎđ}ÖiôúkéÿŸ•ü?·₫_ĂơÇà³xÓ?øinúY?{1µpư€ñ/ơư_Îv.ÿ÷i`öülßü?Ẹ̀Ù¾¹‡½ùçEÿÇâSfñǘÔêøÙªơ?đ³W›ûÙëŸP¬Ÿ®¶Ÿưưg7v²:Ûư—ú³zûàg­ÿè„ñ³0§?Áÿ"×TÎúiîôyy₫'ügz'k'ó„ø\î?Kưy-Ñ;›;üc;>ëwv³û‡Ăg —àg÷®ÿÀÏÜ₫ Óg<¿ñ¿N«‘‹£ăçwƠß·éçQ₫₫û‹ÑÄÄƯÄzyÁΈ;Ȳ6¨í±ZÇvo‚w–tOư'%­×²c»Ë3á ëºïá|?*mL4²gJ¨•1̀OwÜ88Xp>v§bÓ+ôf½/q›=*ªª¤%P[¢¯xëA©¿1±öhfl‚%&™\à¨J; åûá~gvÆ"­q^ăƠ½́W^÷´Ï~Ḍ^¿wơS^@ö¥4ÿkÚ(8 jèï’èTHỎ,Đyli9©×ư¾²üŸu¶æÜ¾lLAÈ(D6¹£È4¢pvưÖ¶µ—y9è<ås k*‹Ù>wwÉƠt*yz¢¤.˜&hgFn뀡±R¸~@t΋=qu®ÏâÊ·Ö—G4̣ÚB%eỨôY…цƒïbwGƠ¾µ˜ơ÷đÄđ-]%AAë¨å«A¥KBÓ’¸d=HYû;ă»>a´Û?¹¼ö<¿4Ûp=‚„‘øÎ¡Xê~=₫èûÅ·ăôv`’4dÖ¿í FH³Ö°NÿĂå² —ˆ³ÑÅ'¾À$®Ảl̉~¶Ñ‰/ÚøohQN‘~j–³œ7 ~Fÿ¢NO?(ņ{…Å%ÖÀÔƯ±‚°sRFV¸«-Ö…₫;¦´Èq´¢]̉t›Ñ“'•ug?Vú¶áËzÊâ*_SËÆÎû ~ÔRcYĐ¼Ù`K^>\Æ¿’6œÏ„ú/Zd9ª9HhÊé£v&H{CµP‹‡° â…|€·4~®Sº«ư<À‘œñ@NZç£j× èB\&¨Ù2™âNµ–¤vz¢>#Io®/ á®B?ĐÄÉ™oàÍD|²ëûÚ Ñ₫îƯï¾îô–±b4¹C-­F₫ %{ųë¶<óÇJœKî½£[µ†ñ`¬½J¨`DĂu¬`ƒVHj‘±RÙ·e]n²[3µ­âơ¼G^§,ªª|¶¯µ~¹Ç@U™¸à7¦/›)ImÙƯ6Ă[J_Ư¤\¡&•́﫯ö(|C.V\09¡Qªdž€¦êÚß\ăÛñ9Ɇö[¢ËÔg¨ H@‚FÆï@ei2(¦z̉·̉gçKoÑRt@ÖQQ>ç=D+6•]„zÄ+Eî†3ö¬rÚïTJNÉ?HN¸ éÏê)‚#̉Ï (^¦ÅË›¾?Ù+g   ·ù̉)»K(–€Æ`1Qû¡ÂºtÙđZÄ…&)…1MÓ¬Ăº̀y§̣¾D¾Ơơù•ü‚´'FÍ>‰nü“dGjañخ ÙăJCJæÅ¶D$I¤à§j ;Sh›æs‘y”ơ{p§4ïbÑạ̊Đ,gÍ#ABW7 3-–ÿQ‡`MoPtddžô;²¹^}µúÜĂ₫xÏ…zɱE*P36K˜SŒ̃FGFQ9ưñ°!ÍÎôz)øÎ¡gjæÉ̃~‡Z@YuĂ#Ö*‡^ ˜x±¥å¤»°˜Jy_:Q£+nYr‚†€Çơ¢¢Ü_ĂÎÙ`œ¦ff¯à;N‹Pë̉x6x10>îÚwƒ„tZÂfë‚YO«åcw ·<œ®“ø"ÓÆæœ“4øv̉Ó,Sßø;5LtQçübĐñûD/ºøÂ~4‚ÛX(ÎḅeÊ|§§á¿A‡ ߃zS$3ñmáREùûăc‡“†çÈùĂbÀ/°ăÏåÚó!Á]«;¢t2B´‘ó’Y梮æë}+¸¡éOJºkæR½‡ <1¿å)Zw^Ỵ.°d„Ù¬¤eöIÌ#XSFUv¡ƠÁ¥ºDÖ÷¢iđ£Pkœj=È&Ø,¤Yq­ḯ " ¤[Đ̉)¼¥8#̉°ưnÑCZø£HsđFWÄ£…Y_Ă<œ{±eôu¥ơ.ü Êh‰‹5`Xàÿ{₫œŒ¢fŒB“ăN«SÍ;"‚]p:À‡¥¢ñôËæQ ́VµG[ Êê óå̉둼ª}ª÷°M]Tígù'F?„Wy8u'¡tĐ̃Öb!6068æ}fÎ?@Ẹ̈Ụ̂›]Ă³f"—é-e&¯Ú"i«7*ø‚&R&îªƠÚû) î¾—qxl©aó°HPªâơJ>Çs4ZƠÆô+½ÜysßNx‚SK¤ùhăhg-˜„ÆØ½³i@ôR~âdƠúÇ3̀£Ê=É–̃Í”·¿,JüFöƯ,¼QØiüàBvU`ø*á¿Ñf‹î›sÎp—å[ËB¾?³̃%̃Üe ư¥“åÍ‚³¬\ĂÜ®¬={’Ea¶ÖsN‹qjYă|gầđ­vØ­z°W.¿Œ™xtΰ[¢¢Ÿ˜Fn_₫$˜Ñ¹'<Ø©¶&`•Nexcp›ƯM¡ưö:&4ÉêÀñ=/Ưbt?m6ùc‘¤lY_XyÜbÈøÎª –Ṽ#R—9+K.@×N´©á¥DQwÅư9 _‡)Hpª- Âp$ß¡’{9óÍ:亷Óu@-ô{øǹ[}ñ6ZÂÁø«9ế,h6‰&âÊÉ™̣–¿ø"p ÀIùÅ[¥ ’>Xªi-R¶ß=ºŸl·ÔXå]NœyÆ@´U¾'6́º[_ u6ôD"4<'„6k}ëo>ï9å2µ’7|a SºÂâ\üÔặ¶T¿ÓFµ˜—ơÂJ·™"ñ@´n6t%ÍtØ# 2N³° ˆ\¾§eÆ1 üaơªä^I₫ä ₫º¡B&œÄKMnÙ3;ô§å¢_5/­À–a¨Í:ê/•=zlX̉ÙŒzh^úî₫ˆ1î7ƠĐzfµf_û%›œĂÎ ̉j¢#BYmúH³Lp¼κpAéư˜U,<ƯNAwÏÀ|F’ äîöŸ̃·ễ2q%MÄàxÉ£5„Á¦á'8#Ó"uøç_ưJ#MöÜ’S(l¨ø´ûÅ9ë«Ï»è ÙEÁ–ƒ}*:*P•¯)DóçÇ¥|§Düà• ƒƯ¡ô mư¨.C«ë Ä‘Nđ’í„(k³PCáÙÑă•ç '̃7ơí`ù!8Ÿ*Ằ½Ä¢¬8… e+N*<́(1ÅăHR«u˜+ˆiä¥ 9¼}·Ï‰"/&Ï[æ{åkí̀(úZƯ oưhgñQÀ7A ³³nĂdˆy ï‚k"ơÓä{Pk•³;ơ\ºµX‡‡´̀äåv¿ˆ|﫸MéaFØ£_&¿q®m]2•̉Á ¦€¼ạZ£´pdŒâ O2N×́̉d4ăQ}Zü1f~¤úîs»ăØÜ¢K+kE>±₫Åp§Î̃×z5Ε¾³†ÓQ¥2F`2¿¬9›°QϘœj¾–Óî«û1/—hØÇw¾A‡‰@§ÊE?rfîÁ³Ø¸øÑL¥}9g ÛX>h¢RxØhly„_úÈ‚ÉvHî†Ă¢p·3©ịRÑëÍ·µÎĂâ‰AƒæF†´7'@nơÊœ“:©üÄMí`'Äăå—_ØÇWCPDæÍihˆÓ±’·Ë‡O5xW¯1"" *ƒ'`Xøøv#O÷ØÓÈ…•&ak¹B́ñ¿RÜ8«ƠH‚4˜3U!0&ê.cæ̉ä’dÈ‘Îê1¾tª€lW²q‚xØ‹…7_÷ñm!^~Ư$vñ•‘k¥œé¿PÛ‹ÙøqWw/ϰNôR“z6‹%øØ_r‰à7Ôç–ú>~äqç)GÄœ—Cm y!ID¥V¢ÚáÆ"̃³ø=‰bb{;³n© óؘG½Ô¢̃^,„ơƠÄÜá̃ƒ¶Å ¶|¬jÍàọ̈–Üq%ä¥t¥˜À í*U •Úø°‹Æ-1{đ·Z‘Mv}ŒoÛàôûåÙ£·ä®Gz_S*tń‡ iT*ƒ­¥ ä÷Fhf„Rxœ^<é˹R-J!‹=b#P)²«m—…c'¿w³%u°ulQm%< 7dî9Ê|Œg1ÍMÿ‰Àn ™P•äÑèÓè¼^Bk6{IÇX%)2–°™¢½‰ï"&êw±G‰¢Ị́€$đ³ C 9γă|dÉ/·QLĂ²1™D¡Rèö8›uÈmc1=2‹îœ'Œ0–A^îº w‹s3ëfÊT¸gI†=&dá%H 7æZẓÅ{ùjÄ™ÇRÜ}åX¥Ă@̀ˆlK̉₫¦%#cP¯£²ˆÅ<5Ï?_§ú̀÷¥BpÛb{RC+vR8ß‹aX{ËàYÓ¦½+‚“.jÄ“7G¸,dU"\MÆ̣d@]b<Œzöß­úëx„¾m ¯ÄÉ꣼—Ñ2́íUÅ`™që?FÙ4À˜ŒÅzïđ Q3ÄÈÂă†_}c5±Ö̃PoFlM·<â“Ús¹¢ˆQZ+̃Jîÿ̃+ûrΨ*V=u¶ÙP²ÔÊfäÜGqÓ5ßU®hsäCicƠR„̣«Ư¢‘ÑqkÈ6˜€2]1óÂ/ i©¾³«n¢ăÄ₫‡×qëM~ÜëV Z¨$3÷$K´Ùö­MÍÔ₫^fFwJ÷ê™±¢́~›U(̃i°2u GP|uađŸ×Î%Hª43H?-®' ¹pṕY(Mœ!!n ¼„©¦Œà´ï›CàÁĂÙ*ij4“í‘MD¥Ù:k•ă0qHó½÷QMëÄè̃ŒÔ­}ŸDä•p}“‹̀r₫»£ú”&™ œUw.ᥕ–IÛØˆ­E8ĂÓ·`?ø%ëÔ¦­úË÷8Ü₫"Í4äT”€V'ŸäjÑ(t‘*ñIe*J90VJáU4L·»Ç†™T̃ö96"YOçèLUA)J™„tpG¿H*IÛ¤ª,aƯEBÉvä" tEµøôêË”đ½H­ÚWd£p¦•ùXUÄüyî H¡ÈäNx1Ă+±ùªÄ8[? P[¬†dI¼xPA€nä]UO@ZƯQ̉×gåóí{́½eĐMI—SL § ~ü1ÆL¼®Î›©®|q°Jăª â[9)³R°g[§]/!ÍK¬ÄÓwM¡Ç“èđ³ »k‹̀ÑÖZ{åHđ²náºÚl.èNÎÏ—hà:J³^Â5 ßñ{ÈÿR^ Û§̃R!Ö•¢ª *®”w_ä‚a¤­m7@$Ó0lƒ`úÙ//FÍØÁSˆ±GT¡ÔüBa ö! ÿ¥ ¦U+~:g,êE 4t½C+£v×±F7zŸK¶Ó©ö=8kÚA ˆJ$₫Yó§¢ß,ÏIC>á+íóè©"̉¼Â¡o8Ä̉́sÇχCJ–qéVL‚i|{d¸ºµë‡XJÓ¼¦HaGI”f–‚ë äîß …Œyªv tg¢if zs\ç÷l–`¤ăj¨x*kè•k‡z€yeÇ8}4đ´W•˜·Ÿ™¨åOˆ~»~cƒ½‹×¾ CÈ™˜Ơ’“ ÁÁÛé9 0ÇD‹̀ó&@¾”>àc‰ c¥̃~F›å£† ¤fiơ˜(FÛˈ?×Ö$hnûqUG«ÿ™ö#îj<° ˆÖ»äNIMÖ‘ ʘÉ2ê¡̀­̉;ëWEÔ)>Ưư5œsW´>æƠ_hæá}}Œ-ă9ÁÖszƠD)cë±í“Í.ê†|5đûr¦[›¼ •Üà#¼Ơw£đŒ”µ¼¹nÎr‰j¦áüI$æ«Ü‰ëëE¿ù´ÛÜ@:åTpê! 2„öđ¸¯}Ó:]†ê›9„¹röËh½ç ñ¦1mÖ1ë¶­³Đ¢"Q°ơö‡Â\WƠ7xH{s§ˆ ¼y»_âQe¨7à€ sxáÇÙ«.5q7):¿ắdhW†km–"#Y¤Ö{k‚(² í ó i™L.cØíî=‹øóíCq€dQn“_É^h1Y® ˜¶ƒÛ$½̣7ÔÔoÊÓè?.`Ú̀x¤îqço—%L]²ej(>@:‡\ƒzM'¿_ü¢¾‹Â$0ÀEvUƠq ‘yä[ᡅ˼OëEÜC`ToLYŒÍ¸6/|²_¶d"é«ÉaMèbU₫\?P[ ßKHVÄ”×™*åm¤Ÿ“Ÿ­Ûq2^6¾n\x‘\SÅLæ¦́1Û¼ÿc­vˆø˜Î”¼'₫ E>8Åclü†]É ŸÈ7”Ô“\ƒéˆ\[ʧe5Ï6,ÅÚ»÷zÆÄi)ƠóHñÚŸ.™}ÜŸR*-I ­s[%NP V±Ñá@_J­m$‚µß jö]Îà‹©G«z½ÎÊ<;œ}sú ]güÄá+R½ýµ kzsà™_ñ pz-[mî+#'[œø(HbXU¤”¥jsîT¹v/[T !²¤c†ûPö̃ÂÆ«lÔ#@ 3³̀üœµNJß}|uÊ´#‰ÔÖ9e‚‡eq«s¤‹Èë‚€SZl½Ú¡ ä½­±² ƒ&\†€P²â1đ:SŒ[O}¾Úe\ ‘Jr̃Y"4z˜«₫FÚwÁùj†¡ôä­^±ÙÎ!‚,­N€¶FăĐº«ª&åL¶‚ß~̀ >=ÂE·;LS‹p’î£S<Ê"«ƠÅ?úƠw³ïç˜2³ÎI S·§,y@V‘-óŒóÍf!.îè°P¯́—ºÚØ̉72æXưˆƯpa‰-TÔ‹Ú™¿K.›Wǜăf2X€¸Xº»_LÑœÁ§¹¸¢Rv¶{âz€9¬29…{Ư¼ÿăCIư7(ó Z^JB­â°Ä1J.¯t® 7?0¸Cđ{®–[ưK̉˜̉Ó\Üá›`÷| !¨º`8Å/ `¤¦¯{C”… Éå)Q0dƠÏ'¾€ƒ´æL9{/»€èÁsíîͳ‹ÏbàǸM *–sÙƒ-Â}₫üATºÍơ~Ëü c§¿˜¡¡₫́&aư{ùql…È74M@]ÖÊû‚›´AÓzơ€å¬₫Á¦ÀÓHå#c¸ÖzGơNkää÷Ơù^*¯-·I匃>>Zæ—_ÜËcö^±€w¿‚>[›º˜‚„{ÜĐl—ŸẓƠĂZ³–`Öq7D¢é}d'ÅfjsxZ£Đ éŸ ÎúÀä_S G&uŸ@ {gDyM‡ç ç@ä6¬i©ä‚„Â\x€W›*ù²Up.\KS°w°f¹„=–° €}·V²8̣׿<æk`2 /đgvqÖ=‰‹UÔà£NÅåî²k´Ñ¶ÏáÙSËF^!̣`8ÈŒ(øf¤›ç®MSï!œGCLÚ…̀ƯU›ḅë#‡O@-®ç¢[ˆ¯ápàapŒ ö†¾(LI•î· Äµ—BêÁ¿XÀ?̉ĂÍ'lٱѡ ̃O±EI·ÆÄ-¹fum6û§´ Cđ¹:” ±÷íŒz{‡¶ó'Ÿ¹ˆ̃^2kp²ËôơQH³áV1k@=¿÷׬l r”!员b+†4¸ ªÛ uK?„W_2°ûû7®£y¡áëƠHỗæù›90]¨:8k¾kê+?a°Ê%xº!XW ¸yv'á&‚¾lÿ6CäG ƒỵ̈Yï₫ lû³T²¸?N£l–-ɶÂz:ó”•otçi(²Ø?ü*ûÚÈø)lC¢Kä ´‡¹dH–˰}rúp¶P§BWOczmÀú+ĺl9áÓ‘v˜‡w,ÜkqÖÍÏ»/ä!íßÉ xtÁăÁ8©^ăQÖ1¶´®„ÔAW#̀Èç·wUØ`Ó¬„Á[ +!\ ÍlÅ—ú‰_h7·#) ¿HÏÚá₫°{ªP)%₫ꇕÆGdQ4Ø›yâ[¾t“*Ä,Ú̀N‹°$Ë™#HôÎB¤  ăîØŸêMR Ê?M¤—NÍ‚l¯ó/ưÀ¢ù*ĐùKºÇÄÛÁ@±í¦b°9cÀsÂsưE¨ÑjGl<  ³dl*ºù|UR²`3½z®Ù†¥”ơ¶‚K<,Ç_Ơ^ø í½µ‡÷„¥óÜ)IGÛ¹³Áùrd®m﹘æ(?“Y%¯ÆTû„½‚J%©w.{V%¸îX¼ư«©ë5ˆ>r)Xj¨ê@œ¥̀)VW(s#ß ̃Ø!Öi¡¼"UÉiIxÛ s”óà‚<•[êå%Ç/ÅpƠˆÀñ˜På4àwxS®é“ ]JŸ¶ºh”´Q¼ ăîe÷®#Ôy4_˜kŸR9-UÁ¤¶f}’rn‰q¨æ&ºÚè$ B¼×A9!9ÊáÅăÖÈWÅé¥ >h oñdÉl.R¡F<\‰½́]Dptß «(mGÖ#ü¾ú*?z €‹ ưÊƯÂJlÎÙ·<¶Mt=%ñ=€i vå©bi›Ç…æ«¶Û¶Rsí–Ù]Ë,p5#·™̣–¯u ÙmçνúzÙ|7 Ñ{Ơ9qùo6¡µœ¿̃@J uüÑK7P}0¾GSôX¥̀s"•¦l’‡@G,Å’5ôWÄ1‘)®ê2ơcJ́x¯dà•êBt׺ö§ïW§‰Q•₫Iđ=Íêçơªéµ&Hî̃eÁ#íÖÑb£M¶¨¥ï…g#dID„ô<‚+¥…`d¤ZpÀoÑ£S±IW~~\5sq¤_¥¾4_í’ưF©ÀªäœD˜V*ÅJÀàí­é^¡ Ƙóä̃'<ÅWæĐ~­4H;ƯNâ»m°J¬Ü+îJc§³¹ß÷OYkí¤˜ŸÀWÀms)lOt]˜»I‘Đ8ØÎu »qk ›))ÅÆ^ån,%®₫|3$ùÁ–¦¬ë·–i@l®J¸ïrG{ĂÖèƯ\¾•ø{ÎÆưØxº8˜µö¢…W %̀¾v¯$2Óîåû6YpÔWe` 3䑇+©LSĐ˜.«ÛÀV*ïΫå®jaBá7^wvß¼’p„÷6‚‚¬üç^ÑÀ+{ñ¬ÇŸNóoưr$M¸„Äsđ–³_̣+‹Ÿ³ó“ơIÈÔöóG„®íøăªS¤6ƒ(éïnÔ`÷É^ÀÖfrËôÔ MeÑz¶ÏÀkÓ K®aƯ‹ÛƠ툱¦Á~BE͵|&Ưù5t¶J]3§G¯;e`̀[=ÊÉ“Nø̉Ù½xÔ#·ƒD§oß Ă/yüÄÖăê-wxë°¶¼ˆù¥yú­]lQ¦P/,Çb®3î0́₫(·¯º‹Ë²¿îŒo?¸·ü¯ÿ/×áÁk­“—îÏ›É;ªùTºû{ve€çµu×ø†eYlÔ˜~¤Ø•¥́;é”:lÊ;í¢[óB¯ư®Ü.¼­ˆƯ¨BäăDăû„­ËÅ»¦Jf'ƠäeÖt)ñ´½ÄW `X&VîIË ?e.3¥‰b™¦ c±ư ¹'F´}‰l¸?¡#µŸˆf#–vs’k)¯›Nªç»¼Mùí6$… ¨à7Zî ~¬́ä PØÅUđ„ån¯¦Y]â™ÂcË\̀₫¶V₫hđåëó Ø©{ß’úŸz¼@̉3o ¯:ºË̃—›…̃’xK̃c{£4c¬»W†ơ«Z;ÓL¢_WÔp,W‡·V©ÿjÀDa’ưÅÏƯó˜$•Êæ ̉taŒct›k²†Iơă}"Ÿé›œư}qóSGåדuqøN‚¼ß¹çwGWÆ—¶Ô>‹³ï1iĂÁL·:5zq¦µC€ ŒtW5~¢¾Q7̣œ̣₫n€ïđ‰57đÁ6§^‡$pé·î”?:oD ù>ŒŸẉ%¥Èxơˆđ~Û«¼Yª;Ï ̀WB8 +çäR@Ê?P X$\;ë9̃’ÈYB_¼Ñú=µj̣¤oúdƒ+±Øă1y©(ŒoṬE—i›bæ¬æ%çëơ2ṭ}úGˆP$¡^Ơ¦LnË mV¶Ùùù§Åè́ˆ£Ÿ_ï)¾Ÿ/ḱ2ÂyîƯ öªăP̃ŒkñoŒụ̈`|âÈơä¶hæú0¶±5$LéJ4#aϹ,s·@\sWé"~ÿx€Ü+³„ÿ–XUh˜\·ªÍ+đ@S}¹·} :¶ Öƒ‚c¿³{EÂúVV1ư-ç|f.Ç¿+(qÊÑŒ‘ d™Ÿu‰Ú#ư KW½3¨j‹e]üüÏÚ‹Ë^‡]{‘¡÷N¾Ú̀ªơç}Q†Ú¤yÙ·2kP>€¾ü¡”đ́ CÙSû$oiZǽ5ndÏZZgZ¤Q́‰º¦Ûm‘ö¹.ă¹Åc| ¤íYvyÅZn1¢²yƠ3ùg*\máĂé*®–÷ỏ ·9ơ²Ñ·“Ư¼Ü(Rë*×B]6‚f\v.#å?A#C9èu¬¹@<¹™Đ5tÑsôỊ”6‚6ƒ¢¼¨ùp˜ßÔTÆ×Oa…‹h\́F@ªKĂHđ³:ak3aÅÑkñ¨-^%Œ=ñI!ß“Áå~đ₫ﮫ̉m4ÿÚtă›x¨¦®÷Ó‰èT¡Ó”•)c3’ë¼2F¼U-"cŒ \J¼åT™å=ø¨fÊỨ~ă ß!¯P¸"Ç…qa,ÎØQ8Ú(̀¼üvAƒX Ïh®̀¤â}…»Œ/œ¸sZT¥ù»~ÏR XfÂÇ'~­q4ăËWî!Æ›Pô³ª$­«Ó¡°ßÀ³M€ơÖØ¾¢C`£ %á:Iz§)õT…ăyÖ wÑøâ!¥Ỳ½R,Îö̃ô5|K" É·Ëgÿ"cú&Ú¶è­µŸFiP×àơîù˜/ƯÉÜбX‰u$ ´đ>N¹ưh»íFø«ïI«Éâ¬Ö«[Ä~ưªJ´kÀ ´µÙ+£|,0¾@~í$Xô€#&`) Z¬bộ̣lÜ]ó$Ùñ@‹/û¢˜<º¥oé7ơkD]‚YµỄBÈŒđ4hÎÏÖ æ÷KÈ‹Â×Î/ ¾úeœ ÜÖâóKă à·ùívÆÉœ^Ç̣@¹ÓŒÁ—3ñ.’(¸²̀îë±ÊÊ\pºPxå€ö[´ Èî0* ÍhDƠ TJí'62©¼Q{ßæ¶ơÎö¦vNé ˆ§*C(ơ ½E&Û‘;/8sß.âIù"èÇFËé T9tg ßçăÓôCoĂT₫¨Ư¾|䵿]̣‘₫ñ“ưuÎûDí½¿{à&ËÁ±º\RT| W¦Ú2Œ ó¼ ơXøW©Đ×÷‘À›CQ́ă^Ȳó̉ØN¡,Pl¥ÅoçÜ´̉•N|Ù3wưë¦Đđ$kk¦)¿̣]†¯²ÜM.™#^ÔX–́Ø̀SʰtV473^gl 9gĂV*-[EVD4¬ O¿Ü`Üù¨”ßS2Ïvÿ\f $‹üî ×¹Z\‰¯æW¾·NđkV_?̃·ÏLy#b{GHÖ*RpÆ\®ơ}ß+!Ñ»åđ’¼n,Abl`æ¼}ù ³R]•„"¢QÔKpÎ=7ơX!CÏÆœaë}EV+s&‘Nc­ô»³_6̉ĆùKÛđñj2­…7E{z¥7&‚#îư3ô®ôẉß̃ă(ß}¢Œ:è|q̣ PeÙ_æâL1Uèf£¯KÑT昶̉̉ˆÇ4«ê×Î*ó¤Xcú驟FfÊTŒZù?´xe}™¢¤ïqM¼đoa1•¥É¸ÔÔ•ôê§I°›ỸÚª0‹"°‚;/S®t !XO‘«dr=f;Cc₫‰û©¤Ä¯²ƒ£É:9Î\íư‰ơ¢d æPéÆrŒ°¸æ²WŸ*ûZƠK9Ï=P [¼8pø€̣ ¢f³Œ7VüÄ­Vó”A  "éùLˆàó²F®Z”±†OͶ¥°ø¦öËAYå&Rw›5@—Îơ£×H¤rÅá÷Bf•W Y.Pf¶_cÅ]s²3BÇĂ”&.§e×~ {¿/Ü~#̣́̃1ËÅ%h ‰hXn% Ï¡bµ+Laù`r‰·W=ɳ>øö¬[K!I|ѳëP!ÛSe¾ÜIúyJÀ>¾cÁưcÛ¿E2˜1ô ïVƠeứ-Íc¼(8\i›%²'½´\‘î—sîVr{Je…{½•¬0K¾ơ•?¾àuzáoç“z=¹¬û'¾¥3£‚-̀˜9_Î6s:{XU?Ô: £ ñ3Ừ8àŸûư/}6 ª?ÊO+ƒÖ …$€p' ØïW`ª5Le7PD<öơh•ó„FÄb\h½qŸüçX·Uyö^•îct•EÅg½±ŕÿ¾H‹ợ}¿.}êPéQ\¦ÁÊ‹¡çÖ†ø\~Ö¥a´ÿĐ:ëÉ)©ÇÔÊ7Ë¡4mŸ77­%p¬­4q¼7…o§Pᤗ·Ä̀æäP‚eˆ¡ÅT¨̃AQ9 “±P±S¬ï¿̉T ¨ØnÿE(/Î ̉m’Z-BƠÂsVÙ³åüœD¡´ j~»„Ươټc‡£çµB²QÙ‘,K¬ •?Ö;LRÏÙ^̣8Øÿâz½±‹Wxº.UƠ—pÊî íª «huI¶aØP÷<ˆ= Üoüb¹ĂÛåeư ®k¦sµ½ú­+¼₫‹Ê K¯Â Íq¦‹±×¢öLlNÙ@Ú́åJ iT2îNbß*LµûÈvĂ>Ï;“¦Ü†•d½s˼̉W£‘F«½f[JƯ©qƒyÁcø 0ÉŒâörÜOàEö,8m€¸¿f¯Áư •à¥ô\+wÊ_°‘>CyV—n¾ï5ßÿñúùS¤™#¦;ñj"’ÁKÏ.'BåÓ!lô¶ª9¬Ê”!^aûW2…çÛăê4åø—‚¶´’@ø qzEîH´ư FT?÷1¦[v ˆºYjX7’Öæ}½mT´q!ÏDíat*_Í<×V~(@*×oQdhÖ́VÓ2î;¹ïˆæ$«đ¸+¶öU*¦3në|…œ~1ư7W`²¾äĐ/IàH ½dmM¹—hPm_»r€ÿÑè(@JÎ I¬F´UÀÆ¡>Ï[*‘–‡¤L–ú̃x½ÑĂ×&NăŒ'¥ư8¤TG›ræNœ×f¥Å¥> h5 CŪuYî-¸X}"ŔhuÏ-kX€ÁúMÊÈÑ0-SEâlÂá”̃äÜÏ)7  ^¿è»”íåIOCB,ܲû$ϳ˜kæ®´Ó*Rw=ˆÜ”Y ̣Ú.Ùf½fuE&Üj0?IèIÜ—^­¡îqPzÁ(q¾0ClEh¦ĐÚ¤)g/í\±¶zá ‰1ÆØyiL‡æƠîªă&˜Á/Ï…o«’åị́<ͧ™ºÇƠø¹;î|Ă_í©ïvYRÆŒÊóµ6whaºK®ª“ÂaSmƒư¿&‰¼Î@Íÿ 92ºI®’ûí)Úºkp ›üB(”èK ƒy°p¨Ô÷>H"9Úf˜’ê[\!ÙEú Új́&¿tUn9ùz)N€æ|DÀà9ƽ«3èăˆ¾÷§ÔDÂŒ/1:WÑ寖]Lê«®˜mB̃æE‘ÑĂ÷`̣6gÿóđôb`í†*5?!ÅËĐƠ†î{ ªç‰Å¾ôñ{N÷¤}è.!/’ç5jŒ¤ơä®_‰—Æüôk碆¯q‡·Bѱ®¾+ĂÉE1ÀTç7Đ\H÷ƒ7é•Cê\ 4ë®ƠL¥S‡3,rvŒXÚOVàjBƯĐ"¯êĹÓ(ËĂ•â2¢†æï?äŒđ÷û÷,$Ú́ó_H¸rư×Wï“´ ÅĂ‚ JåÁ†1øØU¢¬öƯåƯûơ «GêCذ¿Ÿ–ÅŒnMí† z@+vĐ•r/áU“˜§|¨ÀN…Á•KÛa3×+”„D…˜â>Ÿ¯ ™©ĂÑw¹MÖ“ÇE‹†₫e‡ïl>b“vLê?¯Áµ6_8á³µK%Ë‘†x"Ö[]ôZµ‰Å $¦Ç+-±;#‰Í(é/̀º&»X¾¾|̀¾Ñ9°¼XÉÍy÷‚À}³¡?ô8×VÚcÆù1qXOÆïĂÊĂT„9?´1½\DË]ô‹p­.¢!‘ Ï.i·mïöF©¾<C¿ơö}â?Ó̀•c‘5f¢âÇÂơ´ÆÑ˜ü$üê&–@¢ûÙc±'œ}4Zä£dP°« ~3K9gÇzä¶đ­$"†¶Ú§Øf©Jœ£ơ÷Ă%˜S°ú'8Á‰º]Ùmû–fÉ†Đ£‘ưj(üTpäc̀‚$`¾̣AÁ°ăÄëUÆ©±›Âáßé¯H“|²̀Jë^îpë#ÛÜV&ư°Jû>#«›₫ñH¡^Ôê ÁúÛä1rP xåK¯{₫[̉Ë́«̉® ¥ô_*èÄÁxYĐ́+A˜§³ 4>t²®£"Ư³Éu ºíçơt^;(ñV)—SEtÑ¿¡M"ÿÈk\Pâ(á±Ç‡ÚHăĂí y–/N¦LĂi:—Á/¼Å±ªÓåñ/Nªt@W˜ mØ 6;*í²`¾2–†ÂÚ̉ª©¡€.Ûê[S2”eƠMÊƠAaéO]”ă½Ÿà…„#êÓVđ|5Y¸₫¡>¢T¹ïÄ.DŒ‚âèèäpëÅU–‹ñ¬oúë\ÓÔ‹%¢BlDmÑO…Ñ•̣̃|纣+âË’ 7üi—²Ơ ¾ỦO¦wË, Œï;L=¨­äzÅôm8b3"ó–)±DJ9 1›DG‰»ï¨±‰œ—_ĐrpÚHœ5 Ù„ß-×£#íĐÖœMÿˆz0‡o ;%"óû¼·käf/P̀*ƒç\9Oâ{[×øæöD ¤9đÀ¡̉>ĂYJ'Cxw¶ñ>ûTÖ$bưS( ñ< Ù̀óúg₫ăgöàyƒ©^JȃQ&Eåbd5!DjCJSäëơrzĂ D1ÎcÊÅ#Y׬;!ï9¥©ăö6¿©Æ~y¶³Æ)5²È¹™´ ̃¯È÷̀̉^'ÅËå3S]»¢ [Óöº>!LTùrb́ ›¬T­âvˆ‘™ª¬[“¨-½ûàÏ„PÜIñ¼CüƒăvAzD₫Ô&P_:¹¼áÇÔ¤ØM­ä¦âÊP²́G^C*?ƒº‰OÙ¶ëCæâÚ̉¢S”—h&(ŒÆ̣¡8–€D'oÄy®¹LQOÔPSơ5– …‡-îzµ” ?âå…„8Nl§»ư¤kFåJ:’3'„³P§*é®'Ö)µ­.#¼’ơlƠÖñụ́ZÁ0áXºb÷Ao¯l™êÉM&z¾~&½Ë±2đ­Çl·ÿÚø`›içưüđµí¾{, ê L,í˜ |.Mª¯Á)³cá)Ë ,‚kä ¿xcà71v_*̣ü\©‡éiÓ¶±jJnM÷‰1|BU©<Ôi¨ÄdºBdŸ+¡…·^´æ EŒ0½ÈNÅâëI7î’L³ơüĂ™ZÊưñ“(€o©E–¼ÄrÔ;”Ó3aFo3é$́ó ³Ø3Kö%Œc/+9Ârí*RĂư¥~3ØóơÛè:ß èÁ¦È%Äê%µÄÔîQ `‡¯ÿO íô^¥Œ9D.–éi*®ŸÎzi¿:neÿæJD¤•É[ÊpŸB³Ê+R­˜Àîïçû˜¿-¢“ βn™Ë©ó.Œxc?ô3hJgó;{×2¬kư˼^Z,BÀØ̣lå xÔ‹D£:nJÁ% è|ô‡L»ÓËITŸ@€ Ô6´=ZmÅƠMĂ88e^!ƒ×É|›ŸĐ?ónƠç7Kˆ,<}¯{`zKäó–呌QéNi!vY$Ñy„@4Qöª§áùKî¼ß…&B$¢JE`Ên½PÍJS(«Ï²ơIoa,°Çîôºø*,Ød¹F|bÜN¨̣ÎFtôn’ÇvxÀị̈÷)AÅ:> «Åë † ê¿n^9rS”ÈƯ›ÀÎXzẾepD³^jLÁ/­i₫îüÓaMWg‰¥›j]P`÷–‡éZw5m·®·B ä.·ïwXË=0hàTQåKÔ­„ª1qH~\̀‡F—đpst“ÍT@‹Ñr ̃+ƠÀ'JJb•.ÎËăp6Zø§ôW£¹…”œ…~TèLSXGI90²ƒ—‰gađd4“}SÔ¾F;"ß•öK4{¡¹ ÷UZ?Ô²›}\M‘uiẸ̈NË9“I®-¶ºLSn-°Èï -¥(…“e£±k»T™´°W ¼Ä¨ ¦¤ÿØđ…Ơ*e‡‚ÙJb½ë‚1³¸!©5Xïºo#±ñ® lÅ)°DÁ·˜Óû.ù[œ²¾ôFë©BÆ—±ü :¥å$ÿ碮P-Cm˿ؤẳđÔùó03ÎyAp[C kMƯ^Xv„çJɵ¶NÎ x®@܇s ˜`öÆóCư²Ë&Ă;ä¹¥Íe/Ư¥êÏ“ ¯»c·•ßq<Ï ÅA¢1TdÀ 8Y†%ëûZ¼Î-{¼u¥ÄhăÓæútTR₫Ư%wm­œ1Ø…èkI¬ơHü˜ Í»†JtivG" $(¡’D|m·‡")sl‹9YɉrÚn 2Îbúçtœs~çX×Ơ.ä…ÚË \kưÇÖ_@Ç·0ˆăMM[*Ụ̈×a™H+U æ ë¾ßfè/₫‰›atÖ­Ç-#Kû@T" æă2a"ʠ䟇;‡¹¹;)”SÅû|).2Ä¿_Ëùña—AâîoF33̉ÂƠ°È÷Á‘˜ë45ÑY B¦DÆ5ñsÚ‡pÔGª5J ô«â"ó’h-oŒE|„[ưX¦iç·@w’Ïé³&ÊhÁƠ°©G%»wW†óÄ¿¦]́î ,OÊă §÷æÓ·)R±ˆ%¿ÈĂ„aØÑÚ£®JăC mê˜̀+<[dÉ+Ừs“˜üÍûâñăZÇlđ9„NA*Çxc™̃œé³˜Á]̀`ơÉyDϘ1’™é†:X,“ñú ƒ ¡Ñ¼Å1çhU|*ợ»„V1íLr•á̃ĐGT;üÂ=JuƓɂ|à0ïÍ+h̃Œßllµäøv‰‹ŸÉz|(¯a”u`¥¶1 ̃öđùÍ©åhW™B–’6Q™;}î;@K$ËB‰·XX D„Ơn8!,é‹"ơ^71’Qƒ“Ö92 ¡ñÍT̃ ®:=´>Úd¥§8–2x‡.ö„¼-!Yr=wÿ‰Ô₫O£+rë[@;ưùơ”Ô-ö>xÉP0­đ\\ĂúímD9àå“Äykqˆ7¨º¦^†ÎÇOàIưc_›³«V èù~€¨RPÊVNoûVHΙÁëxÍÆƠîËsßị̈ÙăœÊ.ÆäÉ»ŒŸóW÷œrP4±?H®—­në«V¢)èPr-Êe‰Ô@a©¦[;&-½ælrh@ÉD?Vi%”~à·ùaÔ?‰!>8yB¢1 Iƒ«ñơ.ƒJæûegƒTYE#̃Ѭđn¯qÉ^=nv¬ÈplĐădAÊơ9 ù]Đ́́ÜSÔÿ|e=1h¬9sVêá̃´ëăcoµÜ$¡Aö„ >µI¹9{˜sisưmß>nE.ƯåĂиŒñB¿¶(Üëââ”?µ¬L>×…GÙ7 CÚ¦$‚đ‚hÅ?¢ø}µ‘ObZ`V-m#p4ÛØCÙ6RÊ {à§EVÚ¡aŒª­Æ6¸¿|UÅ›XóÀ¹Úhç₫ÏÉA‹Qøƒ¯»QÜ6…Ă“ḶÚE0{´¬rdƒ endstream endobj 494 0 obj << /Length1 1673 /Length2 10308 /Length3 0 /Length 11378 /Filter /FlateDecode >> stream xÚ¹P›ë.Lâ”âJqww») H!-.¥¸;ÅƯ‹»»»-î-ZÊ¥{ïsNÏùÿ™{'3É÷,_ïzÖ›ĐR©i²HX@̀€²0Œ…ƒ•] ¥¬©ÄÁ`gçbegçD£¥ƠÁ́€ÿ’£Ñê¡N Xđ )(Đö$“6…=*CÀg;€ƒWƒOÀÉÎ.đ/CT múdPf(@À@'4Z)ˆƒde {Êó¯G½9€C@€ù/w€„= 27”MaÖ@û§Œæ¦vMˆ9sû¯ôÂÖ0˜ƒ ›‹‹ «©½+j%ÊÀ pÁ¬@' ô=Đđ»e€©=đŸÖXÑhZÖ §¿K˜‹)xØ̀`§'g° xÊĐ”W¨:Á+ưmÀ øçp¬ÿ÷÷ï@ đ_Φææ{S°l°Ùª²J¬0W3ÀlñÛĐÔÎ ̣äoú̃dgjödđWé¦Y u€éS‡ÿôçd9ÀœX@v¿{dûæé˜eÀR{{ æ„ö»>ih₫tînlÿ × q{ü Y‚À–¿Û°pv`Óƒ̣̉ÿØ<‰Đ₫#³Â<́́́|ü #èjnÍö;–›đ/%ÇoñS< ˧6€@–À§4'Ó÷@ ê üàñ§â¿Àd˜­@`´ÿD-ÿÆOó‡‚\oÙŸèÇ`ÿưú÷“ÑĂ, `;·ÿ˜ÿ5b6™7ÚÚj’Lÿ´üo¥¤$ÄàÁÂË `áäappprø>üw5SĐ?uüá+¶„₫.÷éœ₫Ụû8@ÿÏ‚0₫;– 䉹@ưˆnÈÎĂn₫ôÆñÿL÷¿\₫ÿX₫;Êÿ•èÿ[‘¬³Ư_zú¿ ₫?zS{Û?Òu†=m2äiÀÿkª ü{u• gûÿƠÊĂLŸ¶AlơÄhVñ¿Å 'Y+ĐB 3·₫›4˵¯› Tƒ8~_0vöÿÑ=혹íÓ%âôÄ̀¿TÀ§úï´2`sˆÅï]ăäá˜B¡¦nhO£~B<§¥´º₫Åe+{r<µø` ¢ư«€Íô·èoÄ`3û°™ÿư®ÍâÈ`₫9l–ÿ\OÈîí¶ụ́Ø@À§"lÿ€OUüéûT†ưàĂÙÀÀ§2 À§2₫€Ü6èđ)¯ÓÀû>•áü|*ăư çS"·¿à ÀÜ }ºŒ₫Z”§éü ÿuó®@s´Å9ˆ¹P€Mu@ËM¥© ËÎ'7fßŧï(ºÛ2ÄïwƠư¤„o/¹rB$:f¾…̃®ăr>ÖÛê°ÛơL$X¬iyni¶Ǻ9#rwè¤ä̀ùM±½ƯàØÂà´AcÀ廸4!³ăùÎlÚ₫á× å×eÖ§ÈtuG¬đcá¡ÈDüü\đ­i­å’UÓ3ṃ¯œ.ÄÇcÉe÷o“{‡9y6û–™Ÿ6’I0¿§ˆ&íuñ’(¾›LÓnwÉƯGÑû}o đ¥7sÑ£J—߸»8I׫yù8|«Äü½F€Î<׬§ªˆ×Áµ­Ü­lzzß/ÇƯh¯ñnEơJ[¿)L|UĐfÿă%̀¨Á“kư´©GŒĐ@Û¿‚ƒNׯnj¹TmljLB¹¬”ø‰m3°€c!M_¸l°Èđ°Ü‰*¿r´V½â?#71"́´ QÅFñÆƠ‘ä’c&¨ÔÅabsÁ¿2“íûnÉ HƠ9 Ơz œïw«ûbÔẠ́ơ³ƠKà¤aQM%ơGWLœ>¯f?“úIè\œ3ÄÑ­O¢TmVÙô,{}ÙFă± ë p«¨Ëd(Xă¢ḯƠuE¬Qoåá|s²Â0\°5|©3cu ”ȲÜñÇ’́JËR½.năW̃Uâû”¢¡FäÛdÇuª^bæÍ->Ơä€ÉăËçgá+È­ikWë4•ñÁ[Pø*1uJ O5|YŒ ^f[’̣̉­?{q-ˆª>£ơ§(üÊæ»7a„¦(2–o>hưƯù²G…¼Çơqvhey cWKá‚ö>Ơ£l·—ùRŒ<\pÚ}ơ¸́‘âÁâ‹G…[/Á´lØOC¨XjÚ ¿É¢ëe4Ö†đí¨₫ÛU†.æ ÚÔHôT¶éĽˆ ëƒƯ¶"€}ˆY ëI\„KXpÔÉQ¥ÔÙ»î¢g¶ ‘»¨5œÏÏW‚D›VIî# ]èéA*ê¡°(4i;„ Ç$…6’mߌG{/¢twY<tñÚ₫GăÅ“X‰¥o-E $¡Á*D,!"œ?¹‰ZơƯxÍ2TúÄÑ´>ó>hf̣gú†Dj…–L :9„¡ê³ÄNDñ_fø¿ Iù™S OѮʽ+ö}ÍŸqj¾{|̉ÇRˆUPwƯO1µíö×IóäÓT¡"ôâÉƠsâÆ^¾ƯÍ™©ÍOƯûEÿ£\»X­›fa¶*Zú×ø@ÉdôŸơ÷XßΨ9¶Â¹ªÑM@.mˆÑi6µèàUûŸ5ŸÜ l—Ù1•y;×7ṂE…½2Í׋åàîƯ^ûƯ0!z°c®}·~±…UDü\üæJư/T*ï¨#Ư” øÍX/üüµË ¥Tơ‡¯/r?Aj"KEM5á¨OE˜öföưQ3Ụ̂̃Œ¾âü…îë®³Đ‚Ưpº×.¦Ø$É…\ßÏöH÷ îâ:̣ƠWÍ3ûÎ{ÀÁ’`§«eNÑç^8 ₫0‚A|6ƯfYaiÂÇËû±€%ÖàÖĂ¢)\$Úz¬L…ǃé«x¥ƒ7–ĐÀÖ¦èC̣œf²é/¸çæå¸?K₫|$ô¼₫~ ‰p«0;jK†ßxÛĐÍlÊN>ßߤå©`TỌ́Ew'¶Öu„¯Ö`ËơËó|̉FÚê½ØN¼._¢ïLä‰ïQïÑϔ߄I¸̉CN‘í’´¾̀µÂïi”Ơùàê,0÷È=Æ ·§":×1SÔñÍXÏḮ9"ơ#̃P^2đt-‚Mn§ÆuÚXè&½«cƯ&l¹Sî' ï'‰¹ô³KĐ©&0Dt_<Àœv!¨PâOnkËŒQ-ÆÔ·Ö„¢gµ¯Ï W%&ßiL Æïœp»,¦YŸ—³¼K›g™q:3q pfm ·Ưe X`K}Ù́̃Àó-±0¶Nï"°àă¥[vÏBHº½8,₫3¶,˜÷¬˜:®ÜOépüj6d₫3€¸®`%€“4§Ư­Ød4(PççµEï¡÷—¹ëˆKˆÛù{ÔÅ€]ëj".—û1%Ă®ŸÔ[vƒ`…R‰Ø®ÛÁ\Î1Åó¼»<…¨LÜÁ&WiGç¦E”‡m%ÉÂÆ@/³à·³øăĐO‹¡çú ÎxnD¡ÛÎ-úÈGÖ€ ¸:WY¥~’3[+'«ư*´t̀½QZr«{Î_‡‰1Táç—2̀|̀Jr$9;vï¢TÉN² v$c\CĂæ ó¾¿Íœƒú]_ưĐH`‹DfæSÇY &國BÑë>vuœ`©5XLôX°›U±‘­qÇb₫X»Öj³7:9Ù‹̉Ñ[® iÄ¥¨â ÿø†R°Ñ—gˆ'Ø<Ø%́á²<ëUƠă~ĐÙö|¿-a…dX³Aågû ëi^Sátw"W[øv±J̉#dKmY¿dkă72Y<Äy,̉”ZëÉj__Wwø•§£>.è[8¡Ø‘PôÉđÍƯK{5hGDwñRQSf>±æ‰TK4êTŃTasMuÛ,Ÿ§pküCV®|‚m2­}^È=³̣+ùùSy`N?“”v«ÇÄ+¶¶lĂ½la"‹ñÑ›!fC-¢ÉZ÷·~ÿđͳ  2)–„µ:såYÏ~ô‡¾M…3u°MJÀ"TÜăt₫N`ª«ˆ"¦×¶¨J Z§u«úÀ&ÏAø}¯—J̉át¸L.đN_Áư0nº“BlOh—‹Â WbÑ9IÔÄ.æ€G=¾ÂÓsq†(Ú¹n×3¦åä"e¶ÈÔ[oɉÙç¤óâ¯åƯuPŒŒ¯"ºœ­Ơ Ă6oêă\l]Tu¤x®§ñ°Êưb½Ïë¹³©3K?… 6Ac¿÷ ¤Ê{Ûªó»/øó¯K*¾ăß-ÎÅkVHK™6%M¤î-0Jà2Đx̀B̃¨z•k(Ơ9c£yspWr2¯íkÀcÅr뺛»™̣Ù¼₫ÆøpwÚw0Ï‹tyăg^è$¸âÆWH,1LYÄX3Z1/Ûw 9àQ¦ăo1¹‚Œ™oéă¨¿!åƠ‰~¦°oq .ç̀Âđ’§*_dqêêcÀ«%JéiÙUŒđ̀3âGÔDê4µf̀ec₫Àëñ¶Œ)>güëỆT­ßpêö0¦üR̉B™;¡‡·E»|ÜVÁ'üˆ)è¨l¬0X±‹GĂ(Qª‘ºM¹Ú:°;e6êÚñ‹éˆ¦fƠÚö\Oñ›´ä6̣¯—²F†6¨û¨eD—I.¦tnb\oëä Ñᤅ ú S>săàñ„«{¦'₫iºöóÉbûG–ơ¾‰Đ¨÷£|¨î.¢ÚLîuÇ|ÀZ̀ôkÇØ—Öùlùi³s₫|é±éA)„$Ö~ÚCëV7|Ûkÿ F–e‘pK‹¢óa€'‚Đ‘·ÎJƠKÏ£x·̉́Çè”°•OŸÿÔƠơ/åØ̀¯XŸ́;.ü‡lèHËv©̣åøh‘Öû%öœE(íĐºÖùĂ¯ĂïX…ÜtÁ̉#¦ÈÓçh@ûâ‰,ŸhÚ39=Ơmµ³VWp̣A€îê³Åíåª!GBYO¤‡¹¸T¯*ÙGj§X́UÂXù@ï!Á2 Xb#Q†ÓD´ç¤hW_ [r“0,+o´₫Kɲ@¶Muœ<ßø &öÇ‚‹P›²-îÈc°àsù¦rIÇĐĐ’åÎu=íÅC— ñ_^Tï—ṃǤ³ ̀J™ºd‡7ŒÇ ‰wÜ´¼UÖ º\äT½›ä̃›éU1£éˆ§ûx ËŒïÖ& —pT'w´«ttŒÜw’¹¢ÏˆT/í“Ë̃á¹_ ¶i]ê}"·Ê4̃kpñ‰7ơG̃î¸QacÇdÏ[Ú]çĂe< uR&¡'Á* ¼o#ˆă;Yß ˜ä Ơ{IñîR“L°ßÂÉæ*ü‘oIđÍéË#IJ£₫¨LÿÏi4,BÉÍøØÖ;4‹“cN45t{W6Yˆ2éFC®ˆ?‰œ³ÇÖv~ôöا³`V‚ïFeG¿–Oí́è̀h4Ræœ QMHL°çÛç‰æĐ¥ĩô…y—S¶}ÿà₫]Ä8©¾{D€sBTđ.£UªsG O;T—䦔 –Q)Nl> ¶ml)ÆER3‹¼X>1¬³¥ß›e†c';¦' CUH³…­d†•ÏLRw¿>;N æÀY&~Ưư®&{"D%s¦û½qåÚès÷W‚^ï̉sµw³¨á¢éM,49â.ˆ"­µ0¢Đ‡R©OCXs¢̃×5ÇâáN~è‹>^)"Á­W¼w }›₫v1Œn%@ñƯ”—Đ̃é‹/n¸‡ó¥„+đq§ ẻ³¸WWBWÖ{̃₫’[çU΋Ơ&[Æ(«_¼!„ö=ÚŒôÇ ™w«Àm¨üĂf₫=6s'Î’óàQ½3íKèÚ˜uÿ ßRQbàL}>myœ•ά‡âư—ä¼ËE9“>ÀOă˲9¢Ïâ˜\`nrJ,6KŒø¡f¤è2cùb¦ô²M̀µ¼Á÷L¿èÉ?ó8m’§ÛA„¢Ö^ǰfs?or‹q¿êM¿ßY*MP₫<ưs¯ơÓ₫¹¦«8vPá·^Ô­-TÅágƠ?‚ó•…NưYO鿸ܿlå±¹9ñkÚcÙäYHC¦®‹tÎ)Ă9åí_&6( µÚ w¹?Ê&!”œ®éÀóv ZXBM‚̃§ÁygCPŒÖđ Í8Ÿ}ö@êÊŸ^㉴džmDO}8³üÈ"o\€”ƠFè*¢†ébwµ¶æ‰úX œܯEq‰U ¼Æærè H B§‚‚âÓ„=Ư´´?­Ê]̣c[¾Ơ=ÙwV¶MÆÁg -Xo tÊ­UçÙ1?.ƯßúŸpp ?¨/·³Âo×ʵ¨úÙñ¿îùØA R)%oø ¡ç5Ú¤äÇư–Û·,‘?d£ô$7&Ô">£f¿kÖ\÷éOht@QͼNÅ«h¢ùUö’Iö&› ÿ*ƠØ 0Á‹‘B‘=W\Ù61—®Ú„£Z9%F̣ƒqjĐí´R˜}ØN%E$fvôØH »‡ÏGDr̉·uWÈuå!œ2wÜa!?|ÇÑæ6U‡1<È-WtP­̀æRơxÈCŸíŸkpP‹ÔĐ. .íà́–íÁ÷đ¸Î±4mó/f©[ ¾¨½•8]»²¿ô±%UAr†’ŒZrÛ®Z¾zTJËNù˜ƒ˜ßn7çG¹rM5]|ư 7…/¦¬' qfÅ đ}œ• #_›G´,áđĐăz´¦Đ₫ “§:­e‡w .Ê!úk雬#₫M`-|%aâ´Œiè˜EL0¬ Yi­oe›Z’— ÍåGïxfĐĂ0áÆY6í,𠉋 ù2§´̀½'ˆTŒ#׫©Ü|Ñ»YLjcÔµçÊbÏĐ9É»Đ,•£ IR»3St‘Î@]*RÆö:ÿ°G8`̉đÅ<«œ5pkåe¤Ä·°AKăx¨2Ằæ>ôÜÈI[Êó!ñ<¦_ Sø¾Ä¹¬ùéó²J₫å·2ñ¾̣_$Ø ¸Ó›+®ăÀR€q©[À¤ưx½†µ½Ợ‘;;ç}zZλwt1Íx₫¾ü¢Ơ‹oïtÙ·]y3ØÔ>Í#hz¶p\~Ï1È1×K(‹8x½)ÄÓØ=æÛO§îkñ!­é»<ă¤ÀßÅï¶ÙA°¡ƠúÚûh+‹™j¹đĐ~Qdẹ̈fÎåLÂƠ$”°”Eïx¿6.u°pä—LMlj?ưÊ´H˜%&M4Ûë&¬â$8êW:9t‡ûß©R#åưÔ»m¾×_t¸‡~{l×7 ¿P€Ă€ëƠ@hÀ° ­đ, IZd>¶À~ ^×^Tà[Ο[QÛµÛá±·BưÄSè)Eñ¥°Î±Ÿđï•?ë\x&Dzk§µ­ÛBđÊ1©ăà0KNà-F¥Â Ù¦­‰U1²jñuHMdà'Ö3ï¥è5ˆđ ûdGçĂƒzCƠ×Á- &ÑDù±eÔKB/xLa6QLcIØøÊ¨DËÏè oÍùÛ­§åñ·s¶R4̣‚T•¼¬C8-“ñ›I8*—·‡œèçËÙ¿EÊ âX=®v*b̀!£º½l*‰!ÔÔ<“±>ÿbhô(r>¸ÓvØgE;¬!Í—½,±́Œ…Mpµ%À§T˜¸"¦Eºsđl#ku²)ÁÇ+YOÿÚgụ̂˜üE%ƠKȾ}?ü%D³É²Hơ–Ûwóc•å§ơ×¶X¦X,»Û82oBđ_ƒ·ˆ©!€çCê¦É–~oÆÜƠÉölüë…^Un‘]Kz9Èq8RH„s7†ó c£p¿¤« ÙÙÂYS¼7_T™·G@’s#ƒ¦\W'°è¶¼.ª°ú_6èÿüJrªâµ|’Äà?—‡×Wú8˜(Àü&µSV‹ëƯ¢´Á÷-qoP+ûŒơ˜ó.Gđ¨½¹sJF YEº́›ØÈ¶!œ#¾‚/Ÿ¶“|¼[Ôê¤åk.eT ÎŒGÑôå)<”Æ–‘nŒiçׂ‘ˆWÅËÈơ’¼ gå÷øKîIMµ Á^•Kƒ­O–´o˜ÎÚØ–!c|1™1ä1H=)ï{†©$–>óBƠ“ß*ÉrÊè)KÊÓú†VH|…‚¯}¹WÀ®à<̉!xÙ·Pǘ–€íJ÷ë|¥kÜî0₫Ú=eưó¦ÏZϪ6œ¿Kà¿@´×µöR)3³́»‹‡Hâ„6ÛÉn(·»ï³‹9AMÂ]¹Ü󜱖q©%–U ;qïQJÚ́/ÉXSRG¿c|đjZÜ̃B•đ_}œm Đ6/Vö4@H‹÷zŸBà @—¥/ö‘©Æ%Wđ:f̉§Ô»üªYNRz‚%ơÜ…̣ä¹WM8̀¸—ơˆ¼ÍĐËt<ô>°¥VYÈÆur"b›nLöÑï–]ôú×v£}ơ~íö½«lÚ÷…aëWZƒ+•Æ7Ù̀†Ç¸·]µL˜Î¶ ¶ÖyBö‰rHGF%!,$¬áBí;ØA/µZ ¬'W®xP¶B #ĐÏ®nWûp¾y؆}0É”Î,cØOc.™VF ‹_WZ ­nă(ÀÚ̃ị́–5¯¾²|_Htp»@sößbOa[¹´v+«Â‹₫¡C6‡Îz[Ú`x²—{P)´%¨ÍPĂl#-@›ûƯô2âÆÑ×d¥”×́S¿Ø1ñăkÍ—ă½ÑVK7dÇăÄ/sË]Ơ•Àt%)Z)dŸUàß}ËFö>’±{EÈ̀̃O[ ••¢yçĐêÇ5́Ưw¤JµpS»OlX±>́f§³µ@ÖóöẪƯ_4‡I‘à™& ¢Đ b¥ çñ%¬́̃ơÊ­ñpyoMöùÙ„&ư ù·¶ï››#?zbu½X‡âǘeƒJï·éê%©ẉÊ>h—§Uæ64¯Á–â…›øü©iE®`]ϸƠàqÚZ½- äÉÂĐwđĂ‚8 ưw3¡…)—ö ˆë¿j¾ ÿ0_:sw-¼Àt¿ ô“ÊA#ëµ º;¸ˆï¢_́œ,‘ñơ»¤¨où̃œ•Q zc¯Ăâ>²1Må }¦‚ùr¥1|ç~t„₫r¾NÀ8ŸèÙê#ûu®Àጦ̃̃%¯»î)øÍÛA€e¹³d3îWY Ûö́ÜNQ®îâ‡FÍu T R„…̉fX£%öÑÇẪH¸´M̀Œ\¨†0„#¥Ç÷5̀Â…éƠ®ONDrĂ¼pÔ*'N4ă×Ïö_ ^×U-h ÖëÇ~>RW>öh¾’»CHcN‡k ÜUvekeÊör²µå¡Ø–^ôêJ;y¤ECâ™F+oy¸zÈvỤ̂©7ïtÉx…¿đsEí| Â¬đ.H¯ÆÎ9 ê >²Œ‰˜Ơ¯¥ç’úyääx44β*Ü/$Á#kŒ ÆÑííù¥ºÎjàưaúM̀6ë` úŒŒø1mü³7Û=?99^ˆ„YÛU(eßv¦ăƠr†F2Ư[¯HÅ^×o»M0Ç< *^ e₫£Ö~&E™v¦"_È a#~îP:YfXb̃Ùæ§QI–-Úẩ FFÀÏX»mÑÁäÁ"Ÿ×Ôœr+ª;fX)Ǿ 7{2¨ ÷{ú_Ị́qE>H#øÅÀ…Ă56»ßđĐ`L|éiªÀ#, |°nÏ,º.„ZRœÍ₫±kÈN–¢!äûÅÅ+G¥€Ry2 Ü»h Ö^´À"=Tmëe3£-‘̣đvÈôèYÆ>9Øôa¨ # Áô‡Të ¡|‚}s¾\aªù{‹çPæ‹•ĂƠĂîÇ£^½xe\̃~©•Ïï¼9+ÏÅ÷1?‹##K\uê¡]ufâ qƬԻlW¡ ̉|ÈÑçëd‚°®ÙÅÎxß©%ËÏ" –µ?Œß0uU¸±*Rt<—“Ûe‚3à,Hœgé¸Àœ¦›Æg/üp϶ư1ÊsÊ;Û¢œÖnE[•Æ5ve°»²ö†äÎÜƠa»[sz'ưD\ŒªÕ§¶Îj÷ŒàÎki‹Ư=¤É5|ÜRÂ{¥Up¨ïu'©iq¦‡†íă[›L6ơăc½l<9Q˜W)‰Ip8” «ÿé¦Úể‹”î`:H!I%;ö„ô”¥ßí̉<³¿âR!¬»³x61¢ü •È3¯uàGÖưYr_<ø‘=³­É¯̃§ßBŸë+t…íZpœˆIè:*b•l‚P}VÜl¼Wüž¶Ùz`»NÉl::)¹¨Øä%t<¾PÎo*8,ʈƠ]ëÎt̉3ódôn¿c®‘åmØ`@m}f̃ªnù"âK#ûZSû̃Kæç4;öØ+§}˜m]2Œ¿̀¹æmÙÛƠææ̉‹ÈÑhH:–¶eµLj¯v1Ơ{Æ>̃w¼©<įÁ".5̉8‰g*éÖi&‘‡ŒÜi°) ï¨0Sú€±¦‹ ¼ü[D¢¸7º˜¬ëµ~¦a0t$±Ü<Ü^íZ‘ư¸×§@È55øđøt¬ơT˜B¸œà`ˆÄÏ̃À!”æéŒpîÚ˜\ƒñ)€™r[°pú<¬cđưäzñóĂÙ«gD¾¤–§ăÆ*è;pƯØ̃H$©Á‰Úi÷#ÔÏđ¨L °c®ð!Ëé p Iåăg^Ë>̉±ŒC‚fœqăë0»ÓNĂmqÛ+FúẢóĐÁICàxà³Óù5J\ —S]íúƒy4ñAöÏêz“Àºk7°ÂYc*Ơ^[¸4ú%îùA5´ê2UáÁ®đ·ä¾y&f2'JÖ0çüă×5‹hcÏáTá=x¤/Ă+q'‹;vW*’^7†_¤F¯OÙe?à8ƒÖsgŸud…9ûÆ''bñö\²Ë]e·¦è9s¤Z.•¹µá·wI›MăÉ+.r ®Ÿ{Ơ®^$ 9Ñ©ä#vnˆv%¼G¡ÏĐƯđ¼®qƯöÑ̀}‘g§h²·¾¡́BFĐË”k9R—$¿ï ÿZ®í+»<§…pâö”hDÊiQÉ5ÑB¦DB sªxœÑ/‡OåÅM[÷«½’Ûư÷ܺǰídu’za“R6ËŒcơd+¾Đm~¢—âÓÁ‰™Ùôä —̃ÇŸl±­¡ ₫_o3"+´-8‡Ư3Ùñ$®'̉̀៾.o¸}QÔ¶$}PRÁàf‰Å6Ÿ´xùoƒ©ŸÁŸ[("DÁäK]2ö3#;ÇEå0üw-ÎH©²;”¿êÅ2+jûARŒ8´‰µ w"e²m#A²TÈM}†TToç®ôÜMy¥ÜR8Œ°@®¿Dp§&K¤Ôœºëxás?[–[)ß ÓÛ9k¤É‘=Ü|ĂV¼ }V^vŸue  ïÂÍZŸ¼̣Ëâüü†ÇÁ†[åSêªÚ œœ2¶h3“Y¨>^71:A¥Ü¶Đ'ưEæÙ¤~ng*øđơ 4f}â/<»¢ € f³a_UÑm­pJ̀›Ươî•›•L–´§ïIXđ›™z9ÍW¨#ƒ¥VI‚‚t¢ ÷%'‘°øÍz`á “ê÷§Ú ªr¦Å‚Đbhyg€ălKo%|frn-)kúû®¼(kơœ¼-́Ă×VuJø‘¥kºŸÎ†ơô‡K²^ ̣b“!vÄá•a¡¥?‹¥gÖJ-Eñ€Bw†ÊF …D×óY,¬́óoÓf‘3¼7$è:²±;½ –‘JMoë|8].7 N½ª[O!"…HhùHâÏ„Eùà'ÊÏE:ùưĐj?Ùÿ¯R1r5ùâÈ₫]$<ª<ˆTÈ7Xƒ1öhƯdV˜xÉ«‹[¹R½59’Ư'9Z·8¾n¼Ûv•‚†v¡€[¶â»‘%Oé¼1‰f®©FäM8¢Íh2ư#TTÔ®†ă¶™₫æñh(÷júÛƯötµ&ç(ÄF4CçÒ²®G™¤³z«&ű7I:QŔâ1…H‹±Áö?ïŒMÖ Ñr†1 îSÁ© ^sHRçv2¯6A›€iư¹1· endstream endobj 496 0 obj << /Length1 1768 /Length2 9769 /Length3 0 /Length 10887 /Filter /FlateDecode >> stream xÚyuTÔ[.̉)̉5tĂ ƯỬ!3ÀPCwwwJ(" Ư%%Jtw#H+*qGÏùÎñûîưă®Ykf·öóîư¼{ưf –.— nU„;{p¸¢9u]5==̣q¼XLLz0Gè¿,¦§P7wÜYô97(Øa“{ BƠáÎUOGˆ ‰^ Pä?p7Q€<Ø ¨sTáÎPw,&9¸‹¯̀Öα̉¾X­Ù !Îßé'῭́ P{ØA+ZƒºpkÔĂ÷¿J°Ûyx¸ˆ̣đx{{sƒÜ¹án¶’lœo˜‡@êuó‚B¿Úh€ ÿ4ÇÅĐ³ƒ¹ÿå̉…ÛxxƒƯ „Áf uvG$y:C nÄú]5€¦ Ôù¯`µ¿8oÄ ú§ÜßÙ¿ Áœ'ƒ­­áN.`g_˜³-Àæh*ªq{øxpÀÎ_`Gw8"́†9‚­¿Éƒ2Ú0¢Ç¿;t·vƒ¹x¸s»ĂuÉó« b£œ!rp''¨³‡;Ö/~̣07¨5bç}y₫9bg¸·³ÿ¿Øæ ±ùƠ ÄÓ…Gßæê U‘ÿ; aÂú×f ơ@aÄÁB]Pk;_‹èùº@;A¿̀ˆ>ư]à.D+Đ@˜ ñåïö‚<Ü<¡₫:₫a@̀Ú`µ…9cư[a†Úü…*pƒùL€‚À_¯¾™!t;;ú₫₫û y´” Uä”9₫iú·¬,ÜàÏÅ pṇ̃ñABAA@à̉Ă₫&̣Gª³  ̣_ÄFư‡³×ßB`ư{NØÿ]K0Àú¯̃M@kÄèÿ[ơ¿S₫_bÿUåÿCïÿËIÑÓÑñwëB₫¯°̀Ñ÷ï„„==ă G …óÿ†@ÿbu(æéô¿^0b,dœm̉æáæüË sW„ù@!Z0k»ß2ùˬÿḱaÎP-¸;́×UàÿăC̀µâ:qG¨ó· ¥ÿ^UÁÙù5s¼‚°›Ø ˆ¯€À„NÔç·<ÜÎpD Ña Àî†ơëhE„<à_¦¿0€Çê_$à±₫ưbÇù‚<Đ? /€ÇæÈà±ựx́₫€ØAÂáˆ`áøDĐpú"4ÎăüDĐ€ÿ4\₫ˆ3àqA¨ ₫o1WO¸Ôöû¤₫ÍDPtû"(ºÿ•<₫€Æÿn"ö÷5ên wû³$¢¯? ¢ï!/‚¹ïoø_'jí鿆¸å~â¸ÿƒ_©P¨Ôkqn-aßÑy]'Cé͵;Æ÷^Pÿë½'-?V¢#̣6÷ƒwdå”üEW™̣Z#v’5&(ê(ÈQ)” ‰B̃"²]Üèˆ"=P¥8ân×Å9Å`8¾§HM Ë~~ ç; |BWùƠˆIRnô‘nœ8˜úÚøÓ¾«&%Meq5¦æ₫›ɰ/ÊAÚ¢h3ĂỰ@û°èllƠ–Éï,ªÆØ-G߈ª»YÎÎơÉâ ÏD)ay4œZQ• ‰vöđ₫°ëz"Ưü–³$î˧ Î’áo‹j(iA ŒnBÚ$qÏw¥̣sÇ£¼o®T5Í\¼%ÇgØ#Dçpŕ1m¼CḰ”¿$ù •‡N+³<4Ơ›úhɰ‹ú\#^œ$ªH…1ZnÁ nÜö@9R¦½ơˆüë½cꮢ`ª¹E9¦ÑÍlÆ ÇÖPˆêÓÊO„ÇPчn(̣½Ó–OÀ&ÅTǬÏFöŸlÎ=RPÔ3}2¶Y‹gE­û¦¼̀ŒO{«öj|£ÇƠ'A©å†~G“MÁ4^ă|fa2ƠäwŒi2f ÈŸÈg^̉ü8›VeƒV÷ĐáĂöc·̃ëOpú§•‘Û{‘î+d>²úv¢JÖ`[gWaqHí}ŸB…,³0[/˜<6¥€¬̃Ɔg [ )Ë—€³„_s½]×¹HXR—‘KkQNÆIª0pñ¹É¢ïMáú~Ö  ««̣1Íh¢í çb/¡kf¡Z hÚ%!èÅĂÖÅ¢˜è‹ơ $>&º”U•£öƱ6˜ªóMu˜#·’̉¤ X×[|t²½§RÔ°4-ë(oúkk$Să`k÷ÊÄç—ùZxßkT̀>Ă%2 ¬ßê_ñ˜MÏ q“3‘érCfƯƠsº»ŸñăïN„èh*GØb®J£¸ínøÙỵ œt̉Ụ̂S¸ˆ¥é§Qº½±₫Úp¼›]ƒVæ"@†YÓztƒÄ£ÔŸ)jl̀¢÷CÛLNï…?Z~v ªf^¾ ¬(¥Â}ƒơ C›  ›:7Ùuo£‘ù4³ưºOÍ£ofY?g4ä¾{mw¾—1‘u/ë ›ß Ü6÷ÄL}¹zÏå‘Mœ£w’)ø> đÊü4)èÇ->›ªüRœk@ÖåƠ@M•³8²Ö„>­üZT\’×»ÚW ¬|Ï)i ¿S„ôÑ ùƯÔBAË¥åd»#b¦µ»3¸aÉeعº¡'{-öÇeå÷]íTùR-w½¥1 î 9n›âK&@iX»]ֺΗ ûÉEîÖ¯6s4W:rË|Èsó¹—øÙ0F&¾rûɰS̀>~Pô 8eàÇ‚—µá~̣w­GOơ“ƹi¼ôL̃îT$n¨h½<[g-NÔ²¥•Zº}½µj§ªÈÔĐôƠ5ç0[û°@C¶U4o₫§Í$ÍƯÏæ]?~´Ûo"ê²/]ÍI£mŒøÉeƯnr˜}å(đ6a9®}W¹ö5ø'j=ĐçâƯ—G—nª˜42_°å¬ ̃g~„™]^̣xw#Öö´́<# ßWr1oLLÂXLC÷]Í[RXA˜¬JoG-ä³ê?ËÑ{Ik?ºzæ;dQúu%‡åƒ n)º‡~ÆÜŒ®C¨í+W¥¼ë¹NÏCZT¡gr`ÔIIƠ³N° K ‰¦yîÇ]YøREZƠ|²¡Û¢ăµG3½R¯;mçÍV¸Ú~•HúçC~îă²ê/ûÖ¯dzE&Ÿë¤zÅ¥®*tơB0†´…†w’J¡°Á“0F ơÂ]hÍͱ†\,ë´Ó«éï‘̃=«ú‡¼tÊ›́5‘…Ơß`é½ânhë%¶(‘ÚOôÎû®ÜM{  /”ĐvQÈÔt2; ë¸ÇƯ;ËÑÊß:ÊLtzßåơ†÷í¬8V3Ơ2ƒƠÈøtÎA3¦mü WmXƒ4ĐL!; ăó«9ÏnÚơ´F̀yçØs',ö¦ ^Êuº0×Y½ß‘ 0²4zùÜê|çĂ­å|üPØBŸ uÇYº3{ă鬀Cũà;é²áÓ«"@ÏUje¶äÛ+qÀ₫ÊÅlÅ*iá Ê¡Ÿº¦•©?eL}øĐ,×®;ó“qª6Ï.úY W&Ê×çIzF’ăÁưßÖ?Ăù"MüŸ‘ÜmR¼ø± ¹b=®ëËŸe©y9Aö¤AT?ö¼×¦$TRïs[äEav9ÎÜÓFøJ¬æy)o3†-2Ư÷BæxŸï¡ #ă½ƠqXo‰UË^^‰„VÅ_Í.5÷¹i›í6ûMúå!/hNåĐö³vç$]H̉g¬+ËKÔđö́[‰ès.(„̉m¾Ơ¬DÓ93§YÙO#jíœe* >§s£ô"À¸~Ă‘Åå.Q»øYa³¿ˆÀđuÈÍËt›ƠØÆùq …R ‚y|Óæ¯‹Ơû œáå¨Îc‘‰dxœfdºôäûi=hă’Ü|M,.(×Đ6ñO¤ÚO-×?ˆµXR´ÊJNçBÎyL.ÇOô¢K±oM“n»Ï4o6oܰ-UQèµï«T½ ²[c}6b> I5æVm‰Í®đx´7áÖ­Á¹÷É—ẁt=8!Ư )+^Ûr)yôC^ª¶¶.×í6 ¶U ¨_‰éó}ßbỄI‹œ®2•Ư!˜9M₫äO`é,¼3Îñ9å àD¡Q:êeÛzC¢¼$éS₫Iû-?ws€±£‰%Lä–VÊ‘›{ưá”?)Q̣lO¦̃ẃ“¶Ä£  ®‚+,§`§đ7;Ÿñ8̉”-øG+»P8íÈ(G|À$÷ñ&v榮,V•¯z²Ú3.W)Sv†ÇùSUÑ•èp—ÜÊw*µr­Êux¯ÂÄ *{Û 80ùi ‹âfWMAQí¥°(ô}€́Fó„/Ó˜àôễSE­m,¾M²…DåÈam9Ugö!éúăƒź º•ÚǗ—3ʃ̣•Ê4Ñé‡ñ3·9#Ä^z ̣¬¯ø~ItWö¢ÇTĂq)bu1̣·^ô¯±ïA:…Î6ø90¸˜÷ ̉w;̣ÑAÈ >ŸoF N„Y½ÆZUÈưæ đ¸N”!ïO—¹P¾¹₫·d9Äs´O—•gë"¿µ¬îb)a˜ngFW/Z‹Ó.˜[áo®=aKăûµ­…ø̣Ö»*găŒ¾´ ï¦ññA©öuEÑT¦QmØ™”Œc¾ç\m[ËS›;{`dư=û²’Ë”²y6½Uæ³Áƅ智ÎuCn¢cq×"D́3WxÑđÉäMêÅÏÂ-(hvne˜L%ØGl+m]#‰ÛàĐ"¤¸ó4ú‚ñè.&Ỷ—Ïkꃸ̃Ư ̉™&Ç»1¹̣}¹È·@önƒWơÈ1ÀYåíÓ¾‰Öd¾ÉƠFKgƒ]̣%Ï[|¹8Ï+$úĂmÚ¥E,qÖ …×68óëbµvë™FĐƒ’¤aÏƯ ¤¬6iäví£³c¸Đ¼ÓEç̣ƒÄ9w8)kÚzJè ³_ñ<%̉Áö SvĂ3׋h-~bïÏ ®2óÔ¦ù ¾£ÄNµ÷́sôfE‡½Oydr@ßHR €ưØŸÈ7 3Jb =Fj"w»ol,²qƠüôˆX!Åô¡¯ æc÷î´£Å₫¦®§3cinr\Æơ^…Âûxgé”ê_x=I¼v’ºqồ­XO«¤©oNtseU×îF:́H¢nyLÍcF³s©$i½ÆJËu@­ ±DƯeXµ8|ß~_ËNF5;Ă%¿0¹>­©ôQ"WŸua 5æøD¤­1Yü½¥´‡ñf!n\kQÂyẴPÖ÷—HCy­|]Ç‘“<´²qù¨¤´vz=ÄB"&̃i¹¸ NĐQ¿÷°fÿ₫!¢¿Y§¬>2îåâÑ–m@iV£ï\™WÍê&º^ô:1léÁŸó:Zµ‡Ndqă!ZUÁ¤·¿që"ùɳ‡¯÷M]G!¿¦Aªq5—ưdƒ´å"'3…‚\¯Döîu\×ƠÑ7âaˆjºùư˜é%e.)hƯđÇKÅEÔgÇyº}:£!u;ºy¦Ï.ó^•QC£,¤ë;à–â“ÎËüR¸¢qÖéJH¡ANÿ k«¤,§đÄé™̉³ØnÅ>cÀ¨OÔỎˆ9/áC±z‚\ÿă´ » ¶úWodpƠY‰)³W7•~lÍĂ^á~½Åt'œ3;MƯÛ÷cMµµ½)zoVà°ÈÑ yÎƠ5æo'£"Q;̣RL]ù”ÉD„K̉ñL•ÚkZ¹ùy]‰”̀:9̉ªÖ Á¬ = üè¶¥O˜×…%D¤ Ơ ª(hÑH¢!)Đ z¶&ro‹½hă”A ¤[‹}î^:Ê|ïLÊw³ÅYÓ̃-Đr¬Ñ^¤:µ@×Vq˜¾₫™Â¹nrêTawî™ø A¦ëR‘*Ÿ|Ö–•¾¶â†±‚Q« î:×0Ø„F8á 6Áù#£n° iI.îë)7¯<ÇŪï)̣Ó? Y©|ÀVơ¬êƯÁ̉¾_Œ nÛÉ•̃c¢ÀÙ_j¡¼–ü 2Nk*̉‡9θQ¸0*ªÔs,Úz.…t{Y:•¯¥ßRŒ½‚~nù¼)û”“Ś…·(Ôa¯+­íØvÑIOñ™6g—W°ét½|b0LèŸejë-T™Ûç·;®W U¬3gOăÆæ_Äzº¶‹¯ï¨—)Gç=“ '!SnØ­;èơ[ë.eÅf=Ȧ‰V«¾{jJ—,äæ ~mixûƠ#ỉ]®|¼•:“ ừ9vºç›¦V8 †3$‰›r|IíCå9>3Û¼¨uf婆¶Q%÷ï|A÷O1y†½Q¬“4»¾2²ÄE€½û̉Ås鹑&)hư¶¡a{2ÙK‹³4\‡y¾q U5>Z7È¥̣Æzà:³£dQ́Éç×'~÷-áq©áï‘ƯWØƠ¥º%¶½ÇezăÔb©(O½±+“jÑèø ß›¦̣„v÷Æfî-UG‹ø +¾üÑ¿’¼*Ä„ 0ơƯR³tƠÿXˆxº¬ ×̃•( ̣>ƠFY¯áúÔCD‹̃ía)Ôä#̀vË|Ä ˆM !¡‘j§·¨¤¦÷&̃áD鲬U©¿\zºC¤q˜D¡FW´Í¾VÔV—ņwßÚ́J1c–f^WS3S ®i™Ñ₫8ŸûˆkïÄtî€ÙHcYä„€Ơ¨×R©g¾Y¬®Wàè¨ÅîÂ-‹ñ!$́çg)0 ̣2e’wŒ̣ dñ-'¥OæD_vûÖ™¸Èźk¶&¹ï¯Ô¶»?͹ÄÈ!Gvu]ÍƯ’9ÎêT¹Qß›X˵Uo†ŒYLg}G™06·X$¦́Y˜´Dº:îK‚œo?¤̣¢{ uîĂXH…bª_Å»¾’ă‰è=D)œ´³ÿ¨4µ'OáÓ-+ÔMûGQ¦ºíåˆçåƒo%t»KbÎ̃†ÀÛUïLEµ¬\í¯¼œÉ3Û/!@Q2yiÔ Ç]̣]œÏzi—á’”-Ùö#„~6+~ă·7é[w?¸Hl’ܹ`ß%Ï‚µ‚ÍŔ¹L‹qu{¥>E?Sd—Øíœf=̣z₫DM$­ăº¬¦LEªËßö¯sE2ëT ³8çHẫ­¡»ÅB?·ÁxơX@kPÆo¸ä-æ ¾ä́*î…î–pŹƒ¾Fí4₫Qr[«zÿÉ•ºsgœ2Xî?bâü,—ûVµt>‚¢ñ}Y~Ot¬?øMq…Jc©æÆå³“`MF̃¨₫³/±Cmµ y)ü‡¾K¢NbŒIAÈ;á8¯à c‡Ư ±×:̉°N%}ÏzÁ#Ûw*ÚQʰ;kË f?ÏÀêÓ»p•~ ß'™VœßCrGB«V1í`†4H́ C¢sy–ÏOÙZ ỷ=‹Ơ\yc^>”hnŸ^´£±¡bs´{Ñ÷÷/4îÉ $Pqà… Æ ˆb1¾¿JTǯ}‰Y+Ka¢ßÄy‹¥ŒWÿÓ`DA\¯B»ßqÔ•~!äK´É‘B<榣ÜêmÏK¾=ƒ̉¸\˜å`öä Ú'ùs/¢ÈMI"9°r©Ú홿®‚U÷ØJ̣·”ĂœÔà8Ñ„‘ æ€~ưùº†M5è³½ù…Ưå×tµé(Û|¨HY ̃Ëọ́Yj»›$²-M¿äûx2‡±³Ú"»X*hó˜§1(&ăú¦ˆdü₫:$¾̀¤̉–½Å̀¹[zô( •¤@z͘UATœÚ„1T-âÍÜ̉KôúI%ûîn ­§x%ơÈ2Æơ<5¾Ö£Œ“ÔÀ‚ú»75ư»ñ1/6ó]d‘đÄ̉1Å™‡©-²31?6j’̉ZK Üf' '{f˜Åôc¬WK˜~”Ă×VJz#`xØ¥­ˆ-ÊƯ/ÛÀEÍ{hËM°‹s0ª/è+¤OQñY6•NÛª̃z÷Æé0¶ñY²ÀS̃¦CÉ ÊG¢ÅvZ¤PZ!±iáɲ ~H—ŶÂAë«aS³-Q éb»Z•íw2“u±F›ö‹ˆçµô%ÎÑLûÖK% IΗoJ–º¬Qk=¯åYIÜÓfl:I$¡đLN¦l[j4Â:xß9û¹/Tp ßi ½d …(…̉äcă˜©ñTql ̀&¥̣ƒ¹³8ûô—f3Z)ïŸD)v-ù́÷ ¿d/уå'Ü~S4qÛ́¨¸:5´KÀLH)Ï]•R•ï3®xư!F¬‰Nûf™*«T´z£7̃µ eN&—Ẃ\² Ù”W36Ṇ89ûgÚX¡ÎJ­M¸fiÎCÇôI“ÂƯ]ÍÄ{4 I´º0~¨Ù[³óÚ¤́ÛŒezÍm/ü¾âh×Á¢q=Ô†‡$Ù€˜é·aÄ»éV{íß̣^s˜ ₫‹QlS"]’°4–ÛÜÀ›đ‹½¹¡ó(ÉÀ®ƒŸµ±ƠB|óV’Fs Y~¡ư)‡÷¯Ưªß›µ¥[çÆb>”èƠĐG̃g ßÜÊÁ»IMÇ l'%a£T2£Nœ[ÆK°4P|º±)Ïúи®­¶Oà=œQTRFw{M# í¡WH»•¦tăoù˜₫ÙÊơÄgFÉ́ûî@I ÆîJĐQsp›Å~Ç;‚€[yUÅÎD̃S/ÖW×Á«ÚŒ¥°® ø½yf‹^àbĂ~3^’”N!`E¼₫é–¼ƠñB$}àËsG\•7̃O]f,2HhM&~%A®V²02áó·ù¼¢n5‡Óù%Ó«̣ÙJhf̃)¨˜!¨K&ÛØJP3®“½ÙsƠẹĐJñl×]ïa·RÓ`fm‚&•êf ÂÅóB]USûѶ/ÖrKŃ̃s½á&¼o¿’@Açă9{$’H[>{Ÿ eƠF&Ë&?ˆuÿá1Äé°·^±|]EŒ¬œă+8kª½FÈ tg’”/ £ ÉPª§åƯÖF1ïÇ8¢áF=ÊäÖ(đØ³œÅ~ÆŒoáü—”HKơñy®2Y‘‘W¢”ªÜñ3´ôY}ä=§4 ?k²~hm%K•mÁ̉ÄhW@ê~ơ8hŸJa+jMZµÚµc+øËẂ÷CÂ_ƠX?û*Q}™ûJ¼­₫¶z„,ªđ8S[ư¡+†œơï½2ØRM‰+^[az¸tpè|ö„BÉJÉ–âæ#¡é©rÙƠ±ïFZ_ọ́8æM v$9§Ư†@†¿ØÀ¼9[GΣû)2¯:™Ñ»u¬VW ¨†ăí2+I‡}‡ÍøZ˜*“m¦û ‹Ó¿^÷ˆGŸú|´?ÀY©A£Ơihæ}Aa¬£OG1qü$@áÈ@ÎPú$ É2đæô!s¿₫éÁëbçbEdÁM ‰‘»ˆ­êsÙ“VŒÑá¬ÈºQ¡ùÇ[×™)}́}Ư ´³çó+0•dk&sôµù8¼̣Df­L•đkœ¾ÛŸ´"7{¬V‡́å•AÄÏCO!U\úƒƯǺÄñ¢or¼Uªzßc*áúÍôfœ¶Ṕv)±Z|±{~A0ö*ÿ S&²Ö‘$ë¾ädăy ܘÑSól,c½ kÏ\÷V­2Vụ̈ŃA₫^™º+3>Åø*[̃”»];êS=ó·'Åûû÷ê1ØàU^ü·»ü(_´Û{V=ácç5ă,¤…¢-_Ä“, ë:8I0·ù?¾„0ÄEMëíŒÏôïÂV[S{åyÈ|ßǰ¢›Áûl·VFTúFÙN£r°ŒÓ{l#OH¼æ¬Ø½C5|‹Ô‚΅YjrĐv æ¹̉ømˆ÷ §rÉ"_̀‰ß¡›æÎaB*'sPh,‰lIÇaÇl̃é= Ù"ƒ—I)qÑxMÉëôÓï’àYÉm¼(̉7cbO½µ%p~ÄÙ¹54Ä7…N^Ư„ç}ÈŒW[BZpØ µèvà½ăơ<œ3́`̉3÷±RnŸ”IĂ}ƒ^‚íĐœ”!H¦§¤YÔ@́JB×Ü£8#Z̉+iÁow‰^Ky¼8_µYi]Â₫\qÑî6p¤4]Ù}ôđÁađåRh1ËđÿưlÖ endstream endobj 498 0 obj << /Length1 1401 /Length2 6058 /Length3 0 /Length 7007 /Filter /FlateDecode >> stream xÚwT”[Û6R"ÀC7 ‚¤tw0À3À ]̉ ¡̉©H(%]̉ " %!̉Ư)~cœs̃ó₫ÿZß·f­g}ß×]{_×^ëaaĐÖ㑵ƒÛ@”à0$?/H×ĐÓă /$€Ç¢Eº@₫²ă±B<P8Lâ?̣0eS#Q@ 8 Pơtø~ ~Q ÄÿÂ=$°ÔĐàTá0EîæëupD¢êüơ °Ûrüââ¢Ü¿ÂYWˆÔ 4ÀHGˆ+ª¢-ØĐƒÛB!Hߥ`—rD"Ư$øø¼½½yÁ®^¸‡ƒ47à E:ºÄĂ büĐ»B₫ŒÆ‹Çè;B¿zp{¤7Ø  .P[ ñ„ÙA<Tu@OEĐrƒÀ~ƒƠ¸?›đọ́ÿîOôÏDPد`°­-ÜƠ ó…Â{¨ ĐRRçEú ¹0̀î'́‚€£âÁ^`¨ ØøƠ:P’ƠÀ¨ ÿ̀‡°ơ€º!¼¨ËÏù~¦Am³"̀Nîê !x?ûS€z@lQûîË÷çpapo˜ÿ_+{(̀Î₫çvn|0¨»'DEáeÂûÇæA H $@܈­#ßÏú¾n_N₫ŸfÔ ₫np7À5$jAưáù#À^éá ôÿOÇ¿Wxüü€Ô Ø@ 0¼²£̀ûßkÔù{@}3~üèçïï7 Ắà0ß࿘OIÉDÍXëÏÈ;åäà>€??À# ÄÅÅQaq đßi´ÁĐ?müG¨ ̀ˆÿîµMúơ‡́ôÁü;—&E\À₫ÏÍA [Ôƒÿÿ̀ö_!ÿ?’ỵ̈̀¿̣ü¿;Ṛtqùågÿ øü`W¨‹ï¸H”4à()À₫jù­\ ˆÔÓơ¿½*H0J ²0—¿7P‚ú@́´¡H[Çß|ùm7ø©4( ¢ G@̃-?ô_>”¼lQ÷EÊ_.J=ÿ.©³…Ûư”™€°öđûâP\üùQz´ƒøü¢1ÀÇ ƒ#Q!j¼@Àî÷óL…@Ÿê€¹@́‘?]¿­ü¬¿Ïï§ù_Um==PNä/f ZúkưKéˆÄojn+îT̃rV)Kăͳü{~±5æ‰IO´0’ơs¿£úÍŒ£îrÖve”©Ú“%‘#4œ;gC>æY!s)ʹH4Å%¹=ü₫óĂœÚá£hj̀̉íƯDZ"k3L3¶$£‰«ÑNÁỢ•‚ï­ˆUSñMÀ(:e1wˆbå¾5bsc¶E·|–1Xx n î9½0cäjkçX/®¬b9YX£ÅïàFÍi±}xñªˆp2ú ZíHTE-Ç͵8ó×̀où1ơ!Ï G¹0g¯§ûº¶<-NxåÏç}:„lIÖ EcºíÈ&s°Xs…ôA$ù½‰ŒqV]6í“ß6ÛΪ3ô‹«okb.„YÑăØnCZƯS÷hÍåƠßơ9iMưèæXùàè{Ó#”+»Å=ÿ O£"”p¥RªñMêÀú„ÓG¥Ù4®s·AĂIÎƯêë·z̉ ¶[&ä›^Đ-ñpµz^ó¬&ë±3c\ÑíŸ'%m=ño‘D+¬Ek{Uí¤Z\³æ¼ưó¥]ˆ„³K-b4'0X·°ư—zÿ#”ÆëưŒëºá¬‰­S:Q¯Ÿ·̀qË‹ Pàngđ́ ’"eS?)<ä%C2ƠM@GÖH-Ü]ôD„´Æ)×jZF!ë&g¥ˆßăNHƯ‘kÆN¸4dRydÚ2Mº“Êæ‰…}YçíkËâ ¢1tÖmbé#M½p ôGƠ£æ9L Ó¸^ä‰Ă˜iº€fñÔ‡G¾¿đÇÈz%æ`læ¼G³L{?Ñïu·ÊŒ~ëdúÙ·–Ü›Z*£ C½ù}¯C˜åe0±#¡Áü–Ò\é¶²–LGùnKRÛMáz~9ei#åæ¶¡hÏŸ|sa£ë>Æ9Ư¡ƒưƠ¦°ºFÇ–«Ö´ûêËơ` ×r6el:&có³Đ’ùeÇS …Ơ×öóˆù‡@Ù%µư…†Ó±ÉĐiGÉæH­C b̉Àø†Ø/×V½¹ÇD»~"‘ÆJ]“ƒVMªÁ¡ë¥$Q& ¤Xs»Wc ?J#íO¹ơYj1Û¯ÅûÁM©:¾¨éƠ'½Œ©u+¼EÆw"&¦¥ơLB¦°–sÓÜ 0Ư°>$–Ï+jÀôDkÖ¡·)Ù)O*É®đ©øZ¯‡b19Èä+C‘ôôº¬¢îƠëoDXïÜîF̀½GsVíß°¥  Ú}¦G¶ôüùĐù«jÙd«"̉L^÷äWÎÚW¸í/.ZiØđ¬!M£9̃ÛÎ…îŸäMd[Ö®@©»Ë&sb}AäpP9ÛßM,IῈSs§KJ;wØù!\#-Óư)%tiépüFTÀ'Ưƒ@f & %̀^¿nơ×›Wµ.ï›rŸ̉Îv>K]7µ›$e%: :”…fàÓSnÚô“̀T§¥¿¬ƒQ}´˜i—Ö L˱k«¥z]#7 êœñ™û{AÓ"º¬ éÙlû‚ố8û1`î÷Ú—Ûä†̃Ó >&đØ~ôæÊ„Û¡ÔÛei*Pƒ’ƒZ̀qƠ *E€y” úF(ÖÖÔA>ï+¡„ufÈjƯ\µôi¡{[—¼ï ,—ÑŒk¿œêÍ;GS'»AGçÁ‘)] ¾ê'̉¶W2Ôª́'(lºă- {w“f4Ë Ç$1_N ÷aèŒå*å®`ÂÆßXwíMaÔ4!†d8d“GZỊ̂ 'Åmu&ÈâG‘% 9N‹pµ6~jơR§Ñ•\Îå‰Â˜J›h^å£S›ˆpäÓ̃é&Sˆ•*ă>_#ñ¼̉%Ó¼ă‚¿¼ĐJM¼­é[ñ₫@(“̉ÈL¤3îÎMhæÖ̃ÆcăÓ;?’#&¾$óèO3üyäjí!ựXŒÆPođᡘ¿èƯ×C†[<ƒy¸–§g^!ùiŸlå3‹%́Pù>Fèiß7Ǘ ~®bæÊ©»³°–>ogNwăëv§Œq<Öîj|ô©‚É+‚O²•ë̀=Uï v&c'ÚçêÅ€{œ]Kg<‘¯9’¬4×̃ơ-h±9)>i³'̉̀ÚÀN/4₫5)Pp°üeßXQ—~Gb¹wØ”µỨ1•g•?Z©G…Qê'K~.YNöab>#|XñˆÍ¤ºôá²o7ñ9W……ª©bq× ØGĂV¸Év$uW?¶s‡qY₫ö›|uR™È‘ŸOơqø!‰›ïˆ̉»kÑ܈x‡~Ç?<ÖÙO+ê¯^„3íß¾́¾ÁÉ-¢FÜăæđDæ“æ DB6I}±dNé«ỏ‰§ñáfm[62Êơ—D°˜¡¹fÿ2K—T‡zBLe/<Ɔc{̣å Ù)!EaèÖaÿ:ƠÛ7Í[xVÏaXƒ{™ Ơ[U,¯'Đ ư"´Ÿ’M̉*¼hI^v7e2uPgÛd!́¾Uî•#«y×)ó¼ƒQz¹U6Ú7÷¤’â9¥‹/ñ¼^̃Ç(K88ưÔç-¨sûƠAÉYav‚¾̃^5ơ`QnW†ƒ-eA·Úh»?ñG%.È]¡—SÈƠ _â‹À9s½nß' À?=s(˜o¼@Ó⡲ôG¯e›¬iˆcK4“ª8H«!eg3‰ Æ»n.‹¨¾ÄÓiês»°ñÉ5Á2¹¸×{Ö±ơó¾]æ­Á—µS_•6«³ûSờâƠ¹ צ—\ÊøEùÏåÍ̀«X„g#|_s¬-ïÜ2¥1g Qºf^äë&O•¡»—>Oí¬6ÍBß2ß×µüîê÷úȺ̀í¢¦ŸXpÖÆ<Æ»Q»jØ$]’ÚøY$k'?âßÉtWtymшÀPî4=±=v|8́Zgq1~¿Îy¢.5ñËƯm/ p´”îUơÛxl³á: Y•¸E²êè»d ›´äª†¶1ă÷ÉΑkr0Føđ ÀmưUÏ¢J̃đÙ»ä>Å•8œ0AC¨Ía,ˆ*›à}lÿU0ư¾€SX&\•”ĂTss#œ̣-=µ{ûª,^cR2̉ËÁ‚â©àÇè2í…yø;} 7t¿¬o¤Q¥„%æÙ€]Ú¶0†TÅœ‹ U†™­ûx1)êvCF ÆMǘNñ2H'È»d«¥È™·K2‹N™NºS‚ŒªóM¥ÊI-gˆqˆ ®·óù"8hwàÁTgeù ¥”äO–¯Zí 7 ̉!•ªy¨·ÑB¨C´&‡¬æ™̀¸,l°Ç—†¥ÛwW"ă•mJ7éáuY*_„2 ×V#ïḤ›%–#Ô- ’®¿µu~¥Ù1Ó_érb*s roûFæ@cËU\Ê?‘ ÷„§*ÇËÅ0<¥N#à­»#¾zŸ+úË„ƒ&Å1ê‚?PI‰ñó‰×̀”Do³;ïMƒ7z°ña₫OƯ(Ă= Ÿ¼×iërwÙ°Ÿ²wz ̉À1Ax÷‹Ï·øÛ ÷̃¾˜Q™äN½¼=h{ÆkSx‘ă·ííFÚŒ̃¸ÜÀŸC;ßơØ“J±H_¹µ§¸†§µ“‡a 4 äôŒå&ï»qºöÄùđ*̃éÊ;µĐº̀öÖ‘åü†£j³Ơt“#ùcέĐYYsg©Íâ£2I/¨ˆZưeDñY„ˆ3/—̃¼¼­¿QôíAók‰§d4ØäuK’|{•údp¤:4­º&–ç¸h.[²§”×áM̃²@FâîQ´4Ùø=®3PK¿–ß0z/̉$‡ús’̣8&¯E 5ưbAC—J³gZÈÉ9Óáœt«h³Á¤~‹ó³Ïµ¡¡…¤G¦.V₫́”F•ûaĐ|£Á[2‹ wMM–Óú¥åÆ-dú7Å3CæÔªS­Hî,ºD²÷‹QÆoKÓǪçÇ»Ế˜Ji¯u®¾K÷'Ff…nỉ̃Sđï‚ƠJÊß1%OI×<‘-/âkzbåk{ư¾û®2œë g›ï=¬«·ÅéPLAÊ–ÁNA ¢ÀÑc!ß7Üà;Hsê3t^9-'!±ªÀë Ø9)¨èX÷:³;×;,ƯúI}\̣Ơ¦ù¤ÓÔ¶Et‰öáÔiß v*µÍ•ô>7¦N̉¶C,fß[Å•„Ç ½!Ü+E]”Ä׿èŦ³@mX¡Fu¤­±vOG˜>ć§bÄÛ«á\æ[Ä-aê#ÉƯ¶G.¹g̀æx;Ç›¥7SK³²U¸ŸÅ)Ơóq†|†\ÓK:™¢Í/Ëcñ‘:Q‘˜$ơºÆÑHI®Ú{œËîwêÙ?„d«zjµÚl™toîc~=pt>p)UDç,ç~óăÅQg4&H'÷xPnkù1ï~₫ơƒäµDÂ!t:j8ç²tśΪ¹‰J;Ăt徯Aœ¦cP Æ´=}<‡6ÏO ³¿ßÜŒ~wÊÇÍ%Ëd1¦wª{„òÆ®ÿÆM÷f̀¤´¥F¸îyÊÄ̉ûUXÈ+ƒZyánüÜ|³È2ù¨Î·Ä±̃4ç<«¹V9"®ĂV^ÙéYÏ Ơ^©ë½­'‰räz>©ÔδÔö¢Aº%¬–̃‘óÓ1óÓÍ‚!Q_ÊDH½^äKë$]—ÀÙ’œ]̃÷> ZWöÀWÍ Å¼è^ Óú,!°”c–å(<ê₫`‰¼÷“ 5 ©¼“¦¢ûÀGñnEÎŒ:×ö˜S7CíS™éR%<¥äܵÓü«••ÉK.{˲0÷ z¾Í̀x̃» "ià"h{˜ë¾ưf̃£-h©TŒ Áí£ ¥I>–o²ƒÈ̃9jͤ€úÓSÇŧ—dcX~­Uk²?of¬-½Ávˆ»Â£Ă1~9³0?YÂ.yÖ$­àQ̀Ÿ¸B⪥ÁtˆzÇ~1¢ĐĂ³Æ?Lj£ÛÚ¬Ö;Y¿ụ̀Ư¸2›ºª¤ y†@6ăg‘Ûă`»¡6¹BóoĂß `geØbÓl¾ÊơÑơ₫K Ơ·jvL [̀¤8Årܼ˜eáÙ œO V¥‰3‘꺣‹˜bóÁs5Jwú²ñdóùvc2B7*đ6ψ HjÍ{ă—Ă€)¬ÜÆÜ;zÈƯByt…̃^_ôƒ^N°A9H¤ˆ~ÙơøCỵ̄QXe.¡øKΕº!÷¾oÓñgíaAf+¬ï^œû²³‡»¯*hÑ(>Ñ;í º˜ú›XÊ2 i?»ă9ÂRϺc;`¬v™0Aç¹|{§{¨PŒà ±̣Ỡ£×‘‰–}ß@,Té_‡Œ« R¥ơZÅ ÍZ•±[ó—fŒrr®*RG {¦˜‹5ª; ”‚&_Đô&È;Û?.`³âÆà‚OĐ^„jêă »Yàâ3|0ÂVø‚]Md[¥SŒ>‘]ÛƯk$ÖàiíQ4/.́[Ôµ[Ÿrkù¢¶bßW¾¢eÔ=©·¨¶%̉Ùî-‘YƠf×PŒ…0ơ”Ôó`?ê¼ÇÚỀœ̃©c—å~YƠÊDH]5™·ó ̃TYœÈ‘¤Êª3ÉB©o#ô¡ŸN—QyÂä–ÙH]ô„^‰È÷iËøçûỌ̈[[\ñdÙ”>q…]̣PÈ>¤¼ûăÍ÷>U—tDñ‹0%₫FM™4€¢KÍ' Ça幃̃`ø¡t«´û|ÁóưIÍ3_wåó^ăx:|»,°=¨s°ô²Çêîæ^³̃µE…è]ӱɵ ËVÂ3¢Ù'âơhgç¡ĂG‹̀6LtÈvbơigo¢Uăn¤ œ*ỗ¤;†ĂȾF¯zâGùç=h­"I×c2±©’…QØ–ÍÂôÈœÇ ŒÙđ÷úă5îÇàÍçă6£NÛ[L–Å—:‰—̃ÛÇGoö çkarj.Ÿt"·Ô´M̃œc·qéTZ7†u»|ç³bï2KëêĐ—;mËC^’ñúI|Ç>HăU•xÆ̉Œ}ĂQÏ%̣󈔗ӾÇʨ-zc%•ß₫æËÛ\+”KÍÛKa5í†Å2ư&É·¸Nå#̀Ÿ­E<U®B}·­1T÷*/û©—5 >6#†pv›wªĂ5ĂLŸËsúo˜}‹PŸ˜Æêp¶±;Wà5T?ox|ÿưÇâ8…‡» _ºâ#`£³#‡ăï§,ơŒÄÂC¶'«GlGüa®Ô]%ô£Đ·²aûñä^ƯøÍ…̣ä—:Là#& f₫é—ûúRcR[– c¾ƯƯÜGLÏ\üu+¬'êÅaø§¦₫N„z¦oEk#̀øz-ên„Ö;ØX ¢€H‰¸µDmú@¾ƒKºÍ¿cŒđÙó3‘¹ú‰(‘Rưç˜"̉γqööÅKéƠXW$E˯öˈqœ̀‚¡>vÉqr¿ŸöçTX5zṢ†FZ}²®ưÚƠ™ø endstream endobj 500 0 obj << /Length1 1413 /Length2 6155 /Length3 0 /Length 7124 /Filter /FlateDecode >> stream xÚxTÔƯÖ>R̉Ư HwHKwwK 3À ̉)Ư ̉()]‚„€”tˆ(ߨï{ï}ïÿ¿Ö÷­Ykæwö~ö>{ŸưAq¸?@@@@ ** üg][đ_uüG¬ÔÿS.̣œ₫.Ùë/°ÿ%À?siẰØÿMô'üÂü@ä›Àÿ™î¿C₫,ÿ•å%úW¤́ üö³ÿü?~[W0Ä÷/’¹¤ ´`H-@ÿjú#]-=ØÓơ¿½j[¤ä HFó<âåôdž+ƒ}@öº`Đék₫Ø~é †‚tapđ¯ÅÏÿ_>¤È€.È[¤æo©¡î«Ấ‰MPX`ëáa닃œ5r% đ@ª̉äó›̀>^(  { 8À@}fÆÈ¼1{B˜@́a‘åi¨f4ùơ8áJ¾3ê›ï¦EBöÈÊÊ»¼ÁL¡³b¾:‘—‘$T¤~ꌣ)CTdÉyê¯á(¬̣— •éILT¥®‘¬«h6¢«ßg‹;’‡„<›µBè<kñl„ ÏKô®ÑZoå~ăĂ£lM‰qâ®Ïd–g©³G¹É:©‚ö¡“Ó0»—ï´faåWf¨K-q˜OĂ„¬>OQ^ÛÄç$ Z¦KAĆ>½Ñ…Đ»:˜,Ư>NP³èª¡i3:¯{>äæưúb\mÊ ½Øm}×9̉u c>¦#› I2íÊ9èßO~­&|ùȘSIÑ ñÖcÍ‘X8¤_X€®ÛÑ­"i.+¾0Å”h,DPdHôÁPs%KÛL"B.x–ŸÄ帒®v©Fd́¹Th«TºX0ÿÓå©Ó{z‡‰„ ›ôz¿Ư·J²ó8åIJ̉(́6w²)×fSGªÍ7—è§$v#*CLá¥ê–Dáv…•A²#‹A[Í΋V,̃1‡–‹o¸W’¶Bܬv›µOܾW¹Ë+ˆ Ø"Ä…6_j³û£ăF)â}#Ƴjœ‡̣¢89´àlAd4–È‹,˜ŸµÆ5̃¨¸^öÑ®´7Đ̣©ù¯ĐJC•ž{é }üÄgª#̣ÎWÖÓpüô`Ç̉ÄF1T« #Ú́ÑZùyd+Q±YâÜX±©®̉©æÁMkÁ¶/Û*aªé₫8>3T¤Ăûl=T0¼ëËm:ư¥´³²£́¶ÄYÔ‹ï¬i›Yå;̣'AD¨úNµôÊv_Ê^NrEAđ®-e¥Ë½́Xá´^s°0.‡IÊ<­ƒ#†ÆÀ+ˆ -s5éø¥U~ÍgË*×È-Â÷ạ̀p*á™Fµq¯f_}ß¡üªOôÓ1k"™Ư3ö%kÈS–ưa‚s¬œdöÑó<ÿ€Í¯_ơm…¶•+ héƯçb>è54˜%3ˆU¹̃—’ŒKÆ«S?ñÚGHĂŒa™Ë^í‡)2½i ’iy R£¥¹Ă7Ë«»Ÿ0UkIÏ¡˜Ö?ºï¥¯¾P§§è„C…?+kÍ]0D>GĐåBLoçÙ‘S»ÖµB­j̀ö^̀!)³WVơsa^ …ù|O¢941̉Uktđט¨‡SGà›Ơuñz½Mœ´(jû¾@ߪɢS${­™JüxU—-AưÅèrẈ÷ s““Q¹–̀Eằzªç|¸¨₫ ©e]xঠAªl‰v°Ơ©PzŒáv£˜C{$€ÚW¯,*¬M‡#¼ ¯†_töó ~v¸ nÉM¾ß ’ós‡=ÿ¨)+"E§·ư³³7äÓG÷çõ .ÀØÎ}W7ê­‡jgke-ôb© PjQw¶0ªÏ÷4¢o¹èHQư¬–7¤T|„p¯è”­R|vA}ŸÍ‰/åf±Äˆqxuózbawö ¬#ÔêókÖ¸íó3K"1HzâÖkxkxø[¾¤ +FĂí₫`[¼sÔơăÅ©Æụ.¦"ÉÄƯô[O+ƒ9á³ly)¢åb/èr¶á&ÖË́ĆÉN¦ˆé«JK>Œq @ÿèéÁaÙÂÙ ®g´9`ü{?*¶nĐáåͦÙOs₫UxÚ•¡('N,đoU{§”¶ëÚ%ä¡[Û5ÆK[Ca=¶•9–»2sܸ¨Ggvˆ"Hj–¡ḤN´W¯u9†₫̃X£x’À M÷ˆQÏí ûmÍU›‡ÈUç[É̉FóŒƯÁ-¯zq\_¢̣fƠ_7IjÅᛀTgª#¼)‰SưpË•\;?&–ĐĐJ©7ănCƸHüh©¾î.óç×mw]ï9†»”.́–Ú³Ơôm÷Đđ´µà¾Dᣰ|IŒŹ¡‰[øHë:Qg~KƯ_¬‰/6ùæb18z̃< #]D­‰ÍƠT-}ß®ññâ¼¥€#ë+¦{ׇe ™oúÀxGiaî=k­±¸6<²˜üÄÆ?hØ.̣&¦.+Ă%ö2+ ¦dè$́afaưW.Ú&Ífo”ïÊ6f́¹4.÷a®é±/ÍMZ .°̣£ÊƯ₫8t ï@‰› ؃¸†ÁfßV>¢̉Ûn'{^ä›O¸äÅ@|Âơ4©¤¾?M©˜đ₫Ơ"ZÖàÁ¾——t䈅´[UPN䢮BÓ—öñ“H nÙ!̃1fae³@‘Ẻ›¸4®€zö­6ă¹/k±*5ÑP R¿UBë#©ï*L₫lUF#Mµé=”}é ‘'T~|[ưf4û̀ĂÚbïÑ>â!ø¶Î¯täÖKmnpÓz.7´UƒƯønj¡Un+­ím̉Ư0¡ú£ÈÅ0Ä>¡UL¡ĂÙôªL,s(ëFñvY¢¤¿VàŪH3ÅOơ„2óÓ-ü iªî3–÷Çøïˆ ô”JÛß9ûæÄ‡ô5»}Î\§r/sT¡J>O>YxÓsOÜï~Ƕa´Âj_?âi{̣@VäưrçQ¦xÜ ÇäœÚ³"˜sÑ‘Æ%‰sQ;/67Æø5—@ưü«/¸}j¹EÍ=s4¡«](́¢ó¬‹íñ”Y׈çP€ï?®P4$SIøa¦}Ô—XB†¿¥B•4óO4el?GÆ©hΰv”Ùûαïy´¿‡—¿„‰%hxë9®Ä»åq X‘à‡̣ÎÇFçOô4àjÇ<½xww{íG ±À³d!=äe*³Iꨴ®Ơ{ ¦ ¢̃r{s9@?‚‰ OAöå5 KD£¯åø̣™¶Ø°è¥́̉^@£°Ø¥ºz,Öy%¨º‹ÊïGQ¥RK·Îàó:ñÀ¶̉DoÅ/|–RưUÛ‚i uq¯BÍ—¿¿û/ú́Ă˜‹Ô‡%ta•̃‡¦¸¹Ơ)sVW|mXỊ́:ñĐ™µŸ€B”Í 9ˆ‡qÖÑJ|í̃‘ề‘à_Ơ¤s@'ëOaµMq–ä¢ó'ëàÂæ˜Z’Kq́«×àÜ1ƠèE]6naó[4?“£[âÀ†_N>hœ3́L#êËNZÖœXĂW?89Û³RWü°(;•€?ÎÿØ*ØËø…tƠ(ê& %ă!Æ7aăđ‡i£Ø}wƯÀ«Û™©»¸äï™^aƯ>Œ]xø—rú„À­íTN:.G7¹`îzî·RÎƠ‚ÂD Ă¡¢¹_çpSN2ê3h ƒx÷ø”+hh†ÛFù‹3úyëí±¨¼L´̃ \'jª|Ưàç ­yW·³cơ(X“l}ĂFFÈơé¾ÜLPù†Ù^<½ñÅSæSq¥âṿ$g)œg–2€êƯ|ïûuÖÂBW¥Êdz=̣å³w·rå*ª‰×»Ü_M0¬½Y~ÔŒKU’4u,P«ë@ù»æœ{̃` Päb³ó>ís’r‹ä•·^6Ÿp;›¾ÇS\ôù\©0ß̉„—îỌµM<K{]Añq²[y<; Xß“*Eụ̀­#Å=ÎÑ®*^ ¾oŒ₫}±vvÙÅÅg9~xÀÖ.Ù>mV5×̀‚•̉¦Œï\ÓA_Fd' äø&wL3Æ ª»×ùbï](æ’ï?ö½ÎÓöijMĂÜ/­èà-ª'¾Û_¬âJâ¿ ny\ôÔ—Íơ₫8Ûh/DÜѺµ\¯séë[™v®JÓÉúư,i|Ôñ7ΖMÄĐs!Siơ"?™EÅ£`)íëˆ{]vP<ºxw ;3vi¦E1ÎƯgƯĂă.¾B×°Øk”€àóƠÍ^¼DEï¶kË’`Ü.$²ûç₫J)d#¥}ϼC©Ö³‰x™ÉŒ×wœ¨y—~.̀..̀–êÈĐO­E7u„ è&²g£çß…̣/3Ư zuÏSơ>gÇ Û­Wñ¹ßk>Nk˜ễ­<-†nưsN(¥z@¢÷ó®ØU#ÁŸƠỌñ\OFˆëÙ¦Xtl’¼é ïÅ6Ṇî¦Á†÷ gˆÇ4sq.g|X2•‚®T£“muGéëÅ×¾Ù7ëlX–ü«hË;ơèóøøYák>m;̣Ơ\5sÏN”ÖN,ÓK:´ñz/˜o˜_I‘R ư'³o/+ä ´ª¢ÎÀߟ£CaáÔ T¥í£Î̃+-T°±uØĂ­‹ª^€ÔùG¡25aO40N‡H?Ra»ÚPx’ÑîÆ₫’ăăg5CQ1GĂ{ÛMnió-­vœæÆp<÷A/Ö–º‘+…µm!m”Msx£·¡®§29¼³}²₫Z·àO₫ËÊ"£g™ Ê_®u™:4&"#¹ª;g̀ºA¢$2üỚé—X`{Í&IGLñ·Ä́fjoÜ‹„—§ØúƯSY0íÇÎ?cưd ƯéïxI²€ÿF2à4â‰VP>p]b”Ø s¹Ibưˆ^#Ú1 ½r`·¤·r‡€D6.ϰ& 0Çf{ÉÄ2¨`£§ø©øƯæ™§bd^j ~à9kđ~1q̃óå;vÔ^̣@® ¥.Üaá²hVˆø…i›®ôÔñ[MyGB¦‘¶„a`¤3ÄwTpµ(ưT­#*âbrăRZ\Ù…:jZÇö꘮Œ<€¬÷±Qù«ÚËb0{çeø|!Â(iǗ‡4Ô_2¦l¦éödâ\J¢ §Ú[XÙöqb₫–gq®mù|QT¿t|H +µ§ö¢zf†‰a–qù“ÁæFr±—͘­Ô¯›/ª,£œ́wÖ%ß8{É”ûÖ1U>6?nb`Q÷8áBR̃J/Q§2Uè[§ü¡Æ0Ohóë5µAüư»Bk ĐO›÷8 ỲoÖlByÄÉôøúK·µAÁ2 o‡†÷gê›ïÑ:m¡YÆ–Ùö`ÿØëد¶̃|<}=1È…Nxˆ í­ª·˜̀kˆ¦R/úY©#[¢•¬ºº‡‡(k^đ‹œ{BƯÆg·9Ưw¦e¬L6Â/|7Á墶-h".íXù@8uƯßr!„ˆj©¾k/r®,ë `*oú|qœ4S84lA6«ëTˆ`FLÖȱu![û™ú%S5å wÏDÀ¼îsTªZđXYƒhs+já₫ø‘Sùƒ6s‘)ÊWîƠi'sâD|´ uJ¶×ơW#R[½µ·óm!U1̀×:Âkº[á̃}ÖS1Jü±Œ«B1S£LVÛÓßƯó78( ²Kº1Iưq~àÍuQÍ)Œ„lÆbë|ûr`C<‚Uî–’åߺV¡&B¡¡ñCÏ»>ß•³úăˆÁ{æZ½ïôÓ ÅçÉ­ä>ỸØŸºËè"”[Wsï³â=e ßRJ• h‘´A'ÀơúÎrͰTghqœÇ°< ¡Æ2©dQ;ǯUc„ûÆ"¼|æ$<íơ’É=Í}­I_Ú3¥V½°ăÚy«i¹©óùÄ&â}¶)búJ°GQƒ^“êm”C.»£¬·¥C™qöh¯Å~ĐÓƒ8åo{ôVrB^5ØC:¹^3u´-‚÷¼pqün¶ [WoFùWHí^æ̃³ÈơóL™cF Ô,»̀ gÚëËÚ°DÈú'IƯ÷5‘î9̃’¾I®Ûñ•ưUÉ! Æéc_y;ÑJ#«Obûé}Ùʨ÷'éX<öEèË][ûOPzÇQ?3e]±y1J/ }ço§èë|a5W›FÉ1—ÍăÿZ'±­^g₫FP¿¢·‰ÀçƯîC´̃Ö…·¼ăṬF烹Lª ¹v§—~’m Yj¾sO”>Ü;ºăæQᢅûZC¶Äúæ¹Pz¤o$apơ¹Ÿ….äˆc—ÏMèzuñM¥`³'N–(Eø«±^n~ÆFEÚĐV₫5ëÓ]´̃+ê‹Ózq¡óÀ% ‰ÚÓ‹ …p5xă) /‰†ßm̉¢ØđÛÍ+r¥}LîM±à ‘”Œ„ƒ”'D8dü©Db†ÚhQpºUzX úĂ»T&‚=“öça:?¾N'?âÔñû̃Î l=w¦U›±̃®}\X˜$I<Ü—:%N3£̀nº¼~wºÏ-' Q[SMçË“¹‹Í^dz´…ó6isî¼2loL‹'Ư·ÈH̉ÏPbÚu]Đ×8̃{îQuæe¿¢íƒèßbwâV\ÍÏ%íµ®èƯơÂ÷ưBK²eõ·h"C·— ®®¥ma-@yW-—¯ÖgăBÔp}ơơöÉ¥:èîé/›åy? !A«÷Íÿ™uƒ{m@|ŸÊüÛ^Êrºp%%Ă˜MY–RÆzkî5₫P—§q²å₫¹‚‰NưmÑ ª“³ˆÍ6JVÁÛÎ₫‹YA:́8đ³0•,èäîpư¦dïüT­–̉>ó̀Ø¿ d“O àa₫ñeĵ₫b¥µ{øP˜„S·ÿ+´"îCƠ©œooxdăꣾ¸Å$ ˜,”éÎøÏ,íºD₫Œ_V¬OUđxă0«MC„™1¬³‘÷$Æ̣A¢#¥öPÜh^°ÈœbI*„5MÔ(rÚ’ö´1ư[ÖúfM]ae×{*åưÚ"›Zåú(:4–‚·=Åø• ×q–°\ư ïj×Å!\%éh3ư&a~G›ßLW1©­Ă“YhVXŸK.„Y_ƠâbD₫ŒÚªëOøæ º´$ñ̉Ë6‘~fç₫Ưk¡YfhÛ]=\øe–7ïéƒơáƠÂ+~­O2Uy©$çđgCí¸sƯ¬¤ØûG…Ö燶«®: ôï,n •Ø™æñZËc'/F½¶èóïŒ>…7?ơS7x5hÑ÷?³úƠV endstream endobj 502 0 obj << /Length1 2412 /Length2 16559 /Length3 0 /Length 17972 /Filter /FlateDecode >> stream xÚŒûPÚÚ cÅƯ)‚»»»»w‚»»[‘âîwww—¢mq»;Ǘ}¤û|ÿ?sï0y^×µ’+©̉ ›Ú%́í\虘x¢̣jj̀L&&V&&xrr5KàèđäŸNΖöv<ÿu¹€hbF. Ay{;€Œ« €™À̀ÁẰÉĂÄ`abâ₫ ½@̀ÈÍ̉ ϱ·:Ă“‹Ú;x:Y[¸€üüç!€Ê„À̀ÍÍI÷·:@Øèdibd7r±Ú‚<ÙTíM,.ÿc‚ÏÂÅŇ‘ÑƯƯÁÈÖ™Á̃É\€ànébP:Ü€¦€¿R(Ùÿ<9@ÍẨù_ U{3w#' D°±4Ú9ƒT\íLNw€ª´@Ñh÷/a¹ Đ₫]3óÍư[û/C–v+™˜ØÛ:ÙyZÚ™̀,m€E 9:€‘é_‚F6Îö }#7#K#cÀß¡$„•F  ÿŸ³‰“¥ƒ‹3ƒ³¥Í_92₫eTfq;SQ{[[ ‹3ü_ñ‰Y:M@u÷düws­í́Ưí¼ÿƒ̀,íLÍ₫JĂÔƠQƯÎ̉Ñ(-öo ₫Íè`gbbâbe@ Æ¿¨y:ÿf2ÿEåàëí`ï0¥ôµ4‚₫À{;¹.N®@_ï2₫Á33L-M\Æ@sK;ø?ÖAd Ù¿0¨ÿN–&Đø1˜₫úùï#=Đ„™ÚÛÙx₫ÿ»ÅŒŸDåTiỵ̈™""öoz6= ++€•ÀÁÍđư_+JF–ÿẩvföî ª̉vû÷Pư{=¨ÿkKÁ4·@ƠŸ1×ebg2ưb₫ÿ<́«üÿ›ñ¿¬ü¿ùÿHÂƠÆæo>Ơ¿₫øF¶–6ÿ–Í­« häíA›`÷E5€ÿZ\y ©¥«íÿåJ»vAØÎÜæ¿…´t–°ô*Yº˜Xü=ÿ"«ÿµg6–v@%{gË¿N=3Óÿá–ËÄtz8ƒF̣o´;ÿëQÜÎÄ̃ô¯%caç99yÂ3&‰…àÍ ÚFS ÇßC `d°³w©@Ùù̀́àÿj);€Qø/̉¿'€Qôâ0ưAÜFñÿ"N&£ÄÄ `”üƒXŒR+€Qúù“ưƒ8ŒrÈ»ụ̈®đ¼+₫q¼+ưA *ÈŸêÄ`Tûƒ@4₫‹¸AÈèù3₫ƒ@6L¬mŒœ-₫PAy;È@Đ}aæ̣‡Îú_ú¿₫¿ PØ&ÿÉ &ö6 ^ÿ‡ÂÆöÅÖöO £é? È%đPÁ€ÿăă/¾£+hs₫¨€b7û£Í̀̉ ø>ˆb₫áOl Yx:Xí₫!¢Y₫‚êfưÊêwPø6Ḿ>¨¶ èhbüc›dÚÎƠÖø¯#Åü.Ag$£ưŸ @&@·è?Ø ₫°A&@™Ưÿ4…ùßÔÿm ¨„ “Ç₫EƯăŒbÄÑỠhjüª2ƒ¨Nÿ€ Àÿ$É Đhkù¿ƯeÿKèöR²J÷¿#Å̀ çOt =gtq·ÿ¤áúg@ÿ¾¡Ḿ₫YPÜ₫Aá¸ÿ, £ÿ€ Âx₫‚jéơ'B%/ Ó¿"øŸ£ÆÄƠ TL—¿oĐ9ôü÷åzMà,Ù›đ†XƠ‡t>Ô ă»ÓïNóÏ“ïj¤QÓ{ÿpêr}B†I¦®É ÚpºNëG]Ư§ºúIôê}ÜÖ̃¨Üñ́ób¯2·Û¿2‹=.z­Uª±8÷â‘áiă~‚¼EŸœ£đ9H‘ÁYö.-̃à_Îa¢fÛ˜"̣™è!>åÑ‘“FÇa²qúÁ-9IæÛÑÀ¨9€—µ«jè@SïpŒ¼ŒKkæî.!Y ØZ<¨¿7wáDk*ï £àé½·ơêVëøVöø´~FÇk\Çl~kµEdḾ5ÜÑSàf«×§Đ*³Œ¬Î{ÀjæÄãcÏCµk¸Bǜ¦09£0£™“|,₫¶ƒM®†»Ă N·Zg ï§„ú/Ç˽7¶ÓüIí4.Ùg/ww‚&O›¤™bivcô"+“øSm¬JäôHºDÎÜÂ¥±rÙ:R!™_¦ƠBs'àṢáû÷}åùϦh¤æ´ơOÇü-Ç‘P ÚÙáF₫­-©‘ ·˜‘ŔZŒ?wø´ë‡  óÇÁ±ñŧt&¦)̣b¤úÙïï¢C§ àZ8X›µD(èTe‘c‹¼Œ_ƠHô «¤Ë–5è}™ăSW jí}G‰­,â¿-ßÖ™$Hü¡WKê—6©=ß§½â9î1Z]^7¨A!¦?–Ĩ´Û¾ÈKÂMĐªäûèÛ¿Ñ30gt»dÅ`đ:“÷sB¨iÍn/FÿèaØ=vl^¾eÆĂ¶u{O«:sRàd‰Ái£2ÎÁ̀›I¬×‡C¨b?÷0›W¦ÛÂgf–á¡DEj}¬Vv̉6ËæN•Bc5'jmÄ›°¥àâƠVbđăÚyŧ́ÆÔüŸ‹éc¬q²~̉ØaEœBØjœÂ«̣ÏJÈ‘ ¼_×⢥Æi-Ă4ërx}ër0÷¬†´4oÅ—]+ˆ:¿±t8ü‘î,̃ÊT`¿”åq:(wŰ1™€K¥/,²]¸êœ ¹ku ¤dä́f³tê¸̀~Oùù-º1KĐâ&=²Ơ8këæÇ'²xÓá"ĂH2€R(bhæ@T’ ¼Ë2ê¯e>êsçĂeÇÑf8ĐbM….¨ ¦©ư%yü•™ÝS×₫´øÍ…gVœ}äÇ–Bï©ØÛ£hÔxàsjŒ`³ƠWg%ëîăÚ˜“\Äg‚¾·¬!Íà0ă |«—ĐWL¡ÏNξê/vÄÑÏ"~† a6w¿ßgéÍgc,ÎËmeíªØÖ­åôúeäu4ÇLpHư¥…a3ưâ:0JÜ#H‹²}´ü₫ˆ=BÂÄŸßΪ›e»kzÉó Î1æåạ€5À8WZ/<+²Ï³µçëäo$³¥ü²Ơ£¨ÄƯ£ËâçR3ọ́‡üg>ËK"EB*Jï²ØÅú d÷7Ơ=U`&%—ØûåÄ₫vË̀tï/á½DU€Èb©ư|L{ü)†>Tp_ê™vq.4ÂñwÊ个0dpEï9‰´/F[™£Ï3¼́kY…J¶Â £´yŸ—Ç½ÖÆ¿%d`…ă²ê«!Ăç*¹ÁS|¬­Ưé;ªŒ×»WQÉ,-…̉¯aå&½>Ư¢9&Û_¡>J¨ç)¡̉ Ü£ƒ {’,GÄ£wJ˜TËK^ÄÖ² €B ¡³Î†,Ư§@ơŸ®'Ét½́ø¡µùTfx.€6§oHÖH•\5O m›₫ô A–Ev{‰R -K|SIG₫À;R•U’EYˆC7wS₫bQ[3†2à×Á­¿6ƒ£EÚÀ‡{-üÜ«g› £̣R÷É ƠêS%†UU7Ụ̂ÜuĐ¿ 0è¿»o§"Nv:«}O«ë…4ăÑp$Öó·ÎwïH4|?(,ƒ‚‰¦Üí7ܴЇîGTS‹•®°“ú´ùƯ\€Ö5•pơơ~ Ï}íni'0-àny @YJè±LÅU¡ÅܶwWñ%O½g®²”ñDñéƒ<¹!Å w®́ƒè‰å”,wA‡Ô=†Û¶øË›‡;aÄnl̃ö—ÈŒAº›œÓmvJă ă5Gº©;€bbí×Đœ‚‚Ư½ö äƠG×)–‘º%ù$ˆî›>óçĂSFHûS?Á®ô­ön”ñ ¦ĂĂD<óY½¯=J€,Ø Uʹ·đÇYgùO†‚4Äœ¦ _£Ơz~–µ„óåP­Ø\¤Ñ ăG ·ú«Ä‘L ºƒ^?ÂÏăÓÑ+}yÓ½ ¥—aê\3‹‰^ùûëƯra‚ O‰8/<„²Q¼Ơ·Oùïä“I!·Pd+á<8ÆcÜ;ú¦"Ó„K2*Tà:ôj4§lÄY1sZ`†”̣M¯TU°5§ặJ¤Ăfñj$fÑ$P‚ÀûÔ7Í•îAñ‘c½R¹€£°A0(ÄKA j.I,F#T³à»”Dbœv¦ˆ¦ Ôy¾¡(HM&p¯.æ 22¬ßç@ ¾ f«]ËmNưW²n¶: xmc`¿Ln—Îm:_ÍUùÀ¾gíÿ̉÷S“xăD)ƠêøÄCbOÍWæujÓǵ¨`̉ëqiè)̃%=ô®±¦Ë6lđ·ä—ƒäviHº$’QÁ̀́ÄÀ»c‘Ü™éÑ—e.ŸƠ_’39ëk纼íRˆđvĂ[Đ&,5DÓĐ˜ỳÄ‚<›X[hm)»¨Ø.¤„›Ø‚äms÷Éæ!‘ª=@¯Œ\àX¨/`|Ă‚:ơÍ̉₫)6dđD1„ĂíÖ˵0NÈ8.jÎ̉£ÑdxÍĐé:…Sï>²ôÉ4z,^́Ï64Ø@$fƠ#UÓ7`¸»Zdg¡†Ô…ưU·sƒ¸Ë<"±Ïz’ÑôTĐơf%¤«Ơ¬=.2­̀s¤Ma¨xàû¶Ï+²¢g!RÉ {Êo°ư+ô½<è~zë'L™è9ensØW·„5µƯæ®WºH%ª­¾Î,’yg·ơ¸É0=[[D"́圼ùÍz›+É(C¾4·Áä4QÈèOåO.¦ÎØ™¢à ^&Í%ÏÁ’~S₫+ư­9@ÀKÔ§Ó tđÈ=cg/ÊQƯ# áÆ̣t6\ZøWˆbv× ~Bµ«§ªD©,p®R­­l»VŒÙï—:ú@”·'Ø—÷ï¾J/'I.ƒX%2 É\Ë£ó*¿¶pt½Ç ]×̃u°"đ‰JnÈÛXû"b_B9ûú‚Âdˆ̃¢f®̉_ó$ª¬+ë>\u+Zơ¤v}¬̃ø¹GÛ£ü¸8ë\&¿ø95ºü!-åºo¦\æRëóåD&WăI/sß+´)©Œ3¶ †|㨠ÉP¦qɤr2Áyw›™IË́|®ScW Ÿ¹_̀yj<»V́  êî¥̃±)¼PDa€ û¢”ófĐóí*ÖđăƠv{Ô¤ơg‚5×=óß₫I¯ùQKg¨¾”l6ɳI»B5=̉mœx™3Œ̃qúP^ô¦NS¸Hføù]“DOèœ2sK—!Ëó½÷ªÙe;”¹ñ½¼ñÚ›æM¬•Œaư†ÁVà™̣ëú§¼đw¤ç«ˆCÔ‚[£TÊÉæéƒJOóDÀ O¶)ÄÓ ¹ú̉G^äáÜƠï³NØRW~̉emZ‡kn´ÑWô´hcoäă iZ²ưÚñ{½VÛùÖ=Ơ÷Dg…ÂRµ¾…áçéµOlغf‡Ms<û*â‰3¨7i£-¶ùe °F~.h<Ă˃nÄgS9$‰ư„]X?Ûtt±…ŒŒTf&“úU£¢«ÍGC›ê1ähVJnLh/|ÓTqàÛ̃xˆ£FT˜Qü^ÍjN39Œ! ‰<ß$4açạ́¶·‚´î‡´aö‹Å5zƯÄÈÇßr„Æ X}t5æv”\Xc/£åUƠÄ8ÅÂ(y?½…2cÂw²Æư)ñ®´‡6û¥ó•wœ$ùÓÆjß…RH”ñ“ܦ­2±-4™ïx)oKg?4ê;¢đÍP_û?ơ±Kö"„¹P ⌦ơđ‰ àLSim*ÔH¼ -9j Üœ>+₫Â.ƒ3ƒNÙÏ *·̃0gL÷èȯU˜;Wg¼2=ĂT¬À$u€÷Ơ’†‘Ơ z ë¿N;WQ$‚Q²¶ä»×PßM,ŒCÚ<6Œp™VŒHPΰ™Œ½Só¦ÑeRC˜"$ù¹›§‡X/ø))ƠïưôMî¢1I³±éçú£X’‘ô®€Q ºS'Ûrâ¢̃£iwyj_̉¾[ ;fÄQ{;kP̀L…¶Å„_ÉâƯ¹â—f<×§·Œ…Y[Û¨€Œ_¼âU5rGƒzYR>Uª‰ưµuá-̉Ûј’‹‡‰O%»ûµ½Ă(å6ûÈ·ơøé;€Ñû̉«Ud́ÇȽ `áY_1+x¬ˆ–9jôOè:_lµ|5£´éˆ ˆÜ3¬̀óÜâ…· ÍbZ—$æ|já%dï̉‡ó“àåÚ¼øR/%割TƠe•]S¢}…Sœ•Xc «±đ2L÷.Wƒ¡H\¦ \Ö"ƒÛ~Hƃ åË›W³›íøKJi8¨‚mÁ1 G«̣Ëtjøñ¯Çóơ´9ÍùÂè#sŸf ¶;Ê8(¤f“D¹—l>ø p:Ơ£_K>’ó„_É8½5ó­SU˜Kê÷66øƠx(BëÈn¯/àáômj=i…M$’<´&‘a µp¦₫̀ØđEkKĐœøm±Ïú’E¹M« ôá¼ơËơxà–èNX‚O$cºÂO§%YîÀZ€Ás+¸ á}Jåêpµ4Ùsú-ào¢íÓ܇ùLtTgĐ2rxŒđä́¹~³{˜÷#«p¼—Ä–Û̀*Ôx̀VIÎ!µß;&yV‰±N¢àÀå/V®{øFÛˆxû7A’]Ÿ̃Åji³ˆ$MJ]ÓÈÙÇg_–hưaK8ƒƯ´èá/Û¢*8ŤÍW₫©óJ^?Ç^bké< ‰O3ÂÔ(‹¤ï7²Ù@ GŒÜ½Ég+ÙæăiÎÄ-P̉HBÈ|X|ª[œ®”nFTuF‘Vk‰^\p»Bÿ1}13Y-»\̉º<4½Àöb’ôs¸)iº ÷Eºt,d(i`fÈüëF³ M‡8miÖª„†i˜¼ïŒ–kº±dKP•[ƾ‰ ¹¼5»¶ư ưæo‚̉܆àïfya~8§’ư /+MÇSt¹¨y•i;æÖczâ\-‚i¹+†F Œ†Đ%(ûÓÛ‡,,–¥O.pTŒ:ƒB;>¼¢Å`zFN;‹·H!­t¢Q‘``Øw_”O¾h–îʈÔlZ”,8^bp!ó1\ÍŒà÷Đ öÈÉßWœïg÷$ËËâ¥yÛËfJïÙÍ©‡Ø·â»/ºbMè[Œñ‰Wévü$ˆvQAùT†²®ú´d/½ôYwæ—å’ùhTŒÁ†v“Á‰UAơ··$öÂRJ.wùrZq·høÈq’ÈÖụ̀ó2ÿ­D£bl̃-ᆠ¶ˆ÷uÓĂÀ˜«óó2cçMKGºÁÚvăŸJ3Y÷ú£³“TEuæĂ+öÏÅX~²•Ç–÷ܦ·Ơʧ5¹”Û2<&Vå¬ÅAf,đ M<¬¢¢q¼¨ăn$|₫Ø£ ‚Üü= áF ó¸£̃˜OỌ‘Íw¾r{v®ÙÅ₫¸El¿r?ëLn̉2„•’¹ÜUÄ114û-̀÷™̀½Ôxÿ®àăËt;¹_mƯÀôZº ç{B˜»Lư¶Æ=é½ÛH’eä̉œ>Fæy8[¾”ÿù §‘‚Û¿ô}AàÛÚdÚ­?‘R¡HB‹Í'mѱá̀HÅœ#ƠÀ¸c¦†Ă€E£Xœö é¥̃vè]Ơ:öéä{z_Î/A° ĂØ?èû2ipZ¥E«c½™GÛ„#Ó6´‡~ĂTă9)ÆSIÂ"|´KCçØ!ẤŒ-à¶Üaß0F{U¸¯'"¤t—ëGBߥC¯·"I>Ópkđ”Ÿ66sËl+|$  [ “‚© Fkî”Ô 2 =Ä¢H,Sêơhm¤FÇÍH?.Œµä§B™HÍ;đâ ̉ñd= ,AÍé5æïKÛ¸U{*Ưüx1×!„ rAk÷sÿÍ;gfRÄRs¨‰¨Êu‚­U)ĂfåÜvAIæD›é’ñ¾ÇIB½aK%§1©¼€´#Ç™H]Ơ`~ж|?ßLÂÑÛùnˆ@Ï|¥Ù†G©Å‘¿ âá$¨¹µúh›™‰XNÜDY ƠƒÉÚæ9ˆÏ§ă8û]uö%ïØ.nM?Ư¹}Œ'W?Ũ{€[@#ÎØvp̣¶Î¼¾£° Ï4Ă²ë›C>éT°›¨@6ùÊ~̉ÚTr ·Óv}ËIt ßôgmI2iiuo¦¥ZôTñTàœ ¸£ ×¼ÛJqªH!â,¨bKĂÀđi)~x]5h̀µbJRd¨î¶Ö§oY+%_o 'Zå…—ùKèù“*dW¹X'»\µÂiôùÀshÁO‰ŸJ¼‘Ë’`ñ–°K¶V_Ơ?gÍ7îê’§pïÛ~Đ‹T×´N«Ó‘Ñ­/6>läÏ|}m}29‘„åˆZù÷YÙxo1&kr.;ZM—óÀ‰"ç1?&±Ø10”z…è<”¹¹åu› ¬¦£­›¡d+V×Fo·KX|˜et…/Là8M¥ai*áUVYW¤ ÜÅU.{FØUï%Ôn·¡¨Rî›Ék©/øל4ô±Ó9¨Y—ƒ”m}\Êkà¾e=¢e”A;̣é—À­Îê{]¶º̃<áưù„Í,÷gÁÙ;‚ñMÚqư&©x|³”@rutZ‰<Ö¤ƒd8v³²6•|BYO íäÜ*SHÁ*ÊzËƯ÷Cáµåbx‰Y¡ˆÆBơ=Ư1\đƯrk7¹yïT*å*—8’ó…°§«7đB¥”¶Ç@Öøơ’ …Â4ˆư錄$£Â5Œ–éZv;9Bđöø‘áÄăRr÷Cë:½¨½ï·0xö8¶ú®Lè¡qï#³=+([g—LZ¨',$a¡ø¨vœœ–è/^0ÍÖ`bđ4ÎUD¸i¯$T…A)%4ü+´âĂO&ÂDWñrq¤jIĐẒI}1<Ej‚_~)h½oFkB/ơ ¿ .rÍ(É>ßND¯,ÏŒ#ĐÚjĐk'đ;C¸³©N₫ÊÓ7â\iÍŒß#>°́ Ï9æz»2â… á–§øFé¯XÑ—NóÄ ómxÙïP{̀Ë |Ahña¹Çç/¾ëÓ±-$O%Đ÷W¨²0?ù.K?(í”f”æ“ÀFê¸s¦µăzpÅüµH…Ëû¾d´}cZ¯aÀ&¯“)Q·(K©lđº Û Ù{ܶÈi†‹̃)¼ƒr4Ơï&×`†̃i˜£tkK7»̃¦¸-6]=ÍßWQs¿Ị́ơ–c₫€íË6ÅêA±Ù{NRă x_ºåÔƒ”/щ{z ›eŸÿFÖj÷k$ "m&ñ‘­bău‚»âFr4ILKí ‰±Â†h±æl” ß2ÍâP;~{^4½x\+µb½èÆ; "B#Ö˜­Æ3FĐ³7Ô—₫œ_‡].¶O:pÔ•·­‹jeX(GÄñÅKĂÍ”éK0=ùÖR¢‹™ú(ă˜xoª—È_¹ü̃ïB¼ªv¾SsT—'®”Ú‰EĐD„+‘¥£dp©×]†ư¯m?Ù²-é̃–>Î…×Zúç4¯ÏÔ>wG|¡­è,–O•MĐzK'­·{9Á¨̉¡g(—ó́ϱ9)Îi,¹@…ú½. ½Ä̉Xm KR[Ȩ6́csA ~•Yøù ÷¦D´»˜̣̃[µŒQÜß4§Eµt)z´jËøöeÄßÄߥ×^«á¥Ä¢Î%Ö$‹Ỷùó̀– —d®á‘ƒZáE nôpw}”î{v¥ém×ë¯|8˜÷ëÑ«N‡nêEϰ»…‹AcÙÀ¢Đ4ÁpÙº\krHâß¼npZÙÔ¸/Ó¯›ú>»H«n~å?'`\¬vúÜŒÙÈF¥ôŸL¤¥DHˆĂ6<\î FJ¡×4bÇœEëÉç¨;‹wùS!Ü ¡ë#7 Mg&ú”Ă ÊQh‹Ÿ…·Ü²{Ơ&°¿^ Ề ™`·AÏ¢Iá¦vơ ¿´M«ưư Ñ|ơ‡Ñ„«ƠŒhÆƯ‹§ÓŸ|T=oŒÖv“~ËøưđGÈ”6†|£Ÿ #Ú'=˜̃‹\§ñ¥!ΧêpÉrLÂÓ̃…:?—´ûĐßH•v]cn&P₫²>Ế,&½S@VØôpơƯdq{eóvĂ÷ỆNeœ%lÍăäœ-®ĂàZU<5k­mv¹½tÑ6×­fA=ăg}ª'T8ªˆ†Mô‡T?XÁ₫dÔtÄbÔu»CËĐ\2ư[2èK9›ËúÑW™:7ÛƯ_]ŸMᾜ–ÄÏ…¼ơS3ù+Ÿ‹çs+mΠ¥-ÀC“e`~ºÁµÊ¼q\äT:EñéefOtw‚Y/~à`hñs÷Gí7—µ©uºơ]n&5•âßÀw? °"­;0R¡eÏbwO®‘ m‘Ô?đËq[P_éÅàS¸‡!Glh«ÏsØ[Y°Bù¿%–„ ‹Ú)Äđ¶¯¯+ù}Âê0Ä4hR}~Iï”@’ư©øÎ¥y‘V?~cĐÁkí|€Äs¡/Đünî`Đ :CjU…G‰ª†úæ+Tâºu?fß2|(áàç…Xt™5)ïróŒ¨i¹…‹OÖ%x@îàóW|$ûå»^DÎ!Ó „b_́k¨u™)i›¬GFA at@Å 7 ̃§T¨j맃–3 úo›î̃lR÷S`¥ºâ™¨y4¤”’Jåàh4G‚ÿÑ Yx W“À§‹q\É—±kÄ´Đ›œùfêg o2‚æ;'óùT¬]%U@“‹«³ J1v³Qưmnå^|üZ—wåªrä·ùÔ¦¸  ôs­Ï¢ZFY+úym–ÈKă»KÜ‚·¶–?Q>~Œ1jÊæ½E ÷ĂAĐ‚ßæFâđǿªwµ̉‡™[²zŸ”!‰:Y  @ă¤}Âö-2ÁQfˬ"ä¾¥4Üæ°w´0.9ѯå²CS‹Îàˆc¬_ô.zƯHç’#Cwè…2ßpª́Îp˹bbÛó1yưd±Cpè îĈÀm€Ăưă‹§ê´³Úƒzßæê·æéj’2ú¯î$2;÷^đ‰=¬ÍÓ„¶¥₫«BŒû@w`|RÂ;[S3i¾n£z*V ̃â‘ơ“ ƠVª¯ỉ2²û*p1$3N¾¶~MŒ _‰r["ĐËæ:¾HdKv °KÇ6`¬C%à•µöw¹ª,®("ó~55qBsÙâæ`±’QK—£nøB,¬bkĂó ’­{?¡Kđ„¢ 7ƠiJªÅ–Ä̃ïfeÊ*™ơJ×ÔÎ3Sî(è"6¦µÓZwlå³ dSr‘p0vè™RíÄxv¢•jF2 c¥‘&ÿŒx„ÙÊ:³́s&í¶ÅÉa›zïêdÑ̃—«©1Œ¥ÀĂz¥qzÖàünö»j‡r–ªµ€‰Đ†qóêѦŸ;$ ±xï·Z2fÂEøëŒ¨!“ˆơÈ8Â`£©ßS v+ Fc‹B#úT)geH3đ«|P·<ƠçíéJV•±ß588.oyÉQ"̉ư‘½ïß”ÜM«Hh‘z₫톰îq#óSkgGóÓQÿ­.K‚¯Ư£Ø0wiƒîÁá¥,üỷÚ¼QB;÷Ư‹h«“W)Ă~Ë_”®yyjÓUû¦‚5¿zmïú&gVƯG»1 ră +±â]*E©W %óTKÖUơ>V’LU/¡uüđ2}‡b]ÎÁ)S₫1W/ăÊßZ¤d2†Ṛ0é‘-¿2;—E–*´ø{Lâ¶å̀ñàMq CC fÁç­́¶Tdé¸ ªûèFo`%\¬ÖÛÎ F'.öXÏR?OH·…×̀Ô$E%H=ÀuoÄÆŸSƠ Gˆ»=q•'IbE±hT ·CÅ:|đ?g©àOêQÉ.¿#ú} ©Q3ÜÊ„eíI¢dưs=lơƠ§̣¤|R•9Í7ø¸ÖuÎM̉àÑë×A'éLP',å•jkf ô‡ƒCJiZí†USø¶IQ›ëH¦kMñé̉層½ â±u«ĐJVđ$ÄÉ›ư>ăß‘?“ 6‰”§X™Æ´yÓLé_sÁÀääu’½®x5Ù²Hl[ü&øđsœ°Êç8*¦„G­d|e¤6iê Æ²é´ZĂĂÅ£^>,G&‡Ëñlj1Ésâ(«đº2É1æ €&̉Èd_7 ˆ÷₫Œb[•P¥}`¸²póñÜ­çàVˆgG8©!Ê~ÂA®‘¿BđơƯưÓ$Gw8E!€_gv¨ 7oöXé ¦ø<#zơ׳JrOgáµÔđ­ä¨ṇ̃éđDƯlÖbÄ n̉ê®Kq¼L,iÄv«¼¯rR†´_}©®ê¾4@J¸='¡S6Èkªî ¢¤¥VÆ/•/® có#²5•T´tD¢{ëÑÂi°‡w€°ä¢î©[#ĐưI½+º~øaȨ¡+ø¨jƒ`«Gƒóº_bm5xÂ\Ù¨ÀÁ«9Vgs“bbM ê=×Z[m­è¯OơTf;¥ÀÄ=ö*đ 1"ûÓúÅt`ITèP¡9T0mæ/¥̀è {(êWơ?Kélo = %*µ!‡!̀´\ØVè̃^Åb”SpƒU Ä" ¾×´t¹X–íe«XraôתG£ycĂ3 ‰ÖƯ-¨yÚ~vd°=o}ưÊ¥̣ơ* N .®gK¢Ơ=”̃”/?¶öË™“ ˆ^p6ÛÿU‘ 5âê¥ó]È?U¬ö¡ê„̃ʏM¢ƯÁaoÇ¢•³%¦¶äuió',¾âeg¯8„è·ˆó8ôGŸŒ²ó\$ûd§÷hĂ–₫Ă3ºƒ…M·¤‚¢đFŸ)Ô†'®z$a›×±ưbüưKû›•·çfœ>ơû¡ƠhKW?iỏ²¬î‘w’Ríá¥ZgsmªăFjk°WïvʨƯâ9Q̣(,¨XPñΟøX¢ç…±'ñH@O’ P DJîˆÍV?̀a#L0Ñ¡æŸÿTÍä”RkR^è#3}CêóŸs³àsr7é–wXµ₫Nƒ¾‹„äÆ*ÓíZî,âèi‡5Œ\µ¨‘•;r1£n÷aóARM¦m¹»Hÿdÿ‹ªt,å2#›Ậùª~)4vI3¡;Z0÷;f×í|ÚÚ`‚24ö{‡¾|n̉CRí6…s\3åv ©+ÊmZˆ#Ø1/F‹PYn{zíÊ0)ÄN'Úmư <¶îäK|jÙÛg³àѧQS±đᙼ_¨§oơó¯>5Ơơ¡ËJ`Ó/‰ħ=¾ÏS&Ú(́íg·dÊ/¨Ñ²qWü°}9@›Á*‘9# ₫`xÈ×jè/"¨Eæó¢Ê?®ăE*ØÀrsÓx bW¡¦é\³™åGó4tØ®àùBWmjcÛ\b7·£mC•~œYSpT™±xëµ›ˆÅív́ô1©Aù¬1‡ÄàỚ™?w»‡¶8¨‘sg~kĐ˜L¹e¹àƠD«w¬Íê ÏøŒÇû}qđû\s¹|à›±sª#ù«ñE¾ëƳ‚E₫k±æmÂkƒ´z ¸`b̀ZBäuÛ8ѺăÖºé6¶Tơ´Oˆ¨'TDÎD‘Ëå/°½'k[—…4¯ÙÖÓB_™uEi­¯± NưUnä_’ !ü¤a;¬­J|‰quµ”4Œy¬ÿ đÙ?Ñá>ẈTä½èkÍé¸+́Û)/0×¹±;ù…Âî¢fæ@اêÛÁ ­æưes¼9 Â₫e½àÍN ¿ü‹.cTäåÜÓU %ø£³˜_.Z¹„‡jØ“qƒ"A]bƒ0g+ê'< \]Ûßt|ÊîƠí4i{̃˜®™/̀üa/[?ÿó¾PáBª%Ư9ËA"2•X ‚äÓeéûÂD05ñ°&¢YăÖ LéÈ̃x+Oœ©1 _g{Đú)%×»_»N?»é¢á:´JIʺWÆ´Çg›Đ;› [º‡L³w¸ ¢½£m”p0¼×E~÷D_|‹,¹BÑ‚4́XfyF÷9kq›Đ¼ùT…{GŒ§NÂó‡ƒålP¹Đxù>¥ï÷TÁèÍÉ.yíª9ØË·ä ŒxÔùQ—D̃¿¥ ŒvssßQ¶Xl<4~c]6wöxzWD}d_ÚŸ6Zm¤ŸUøm뻀߷ f0ag¶ lÀBVúFY¤Æ2£¸±r±6P<=DEå—ÀO²Yô[ëókŒªÑẻ¢ÊNY®8x3µAÉ ‹Ï |™LéÖ7[Æm[/+ío¿M®C¬ú…Ơ¶H÷“Ní¸ Ü0Íd Ơ>u‹¬q¥ƒ™ÊŸÛVÄé:Ñ$üT̉ ƒG¤Bj›̃´—~ë#̉UÆœ¦Us ?\¹0{“<™Ë¹–2Óu9tE/¼~î-‰4†…co™o(Ñg‡Mæ¹äuẃÓ>_sÖlàuª(Ư—K±6¶që@p%µ¤~@i:yôùaé…‘3ºœÈÁsàÏJ>£ƯÈ966©î¬¢ü­ÑC1Ëb¨bè5™{x -̣ Ă:Ö|L²+–‡ºj0nt#Kă°f®µY2> ­ŸçE3ßRi¾Â»ÜYµÆT+û!ăLƠP¡¹rȤºX¸Gç½ÊêEœ. ©WtDhW}7Z:˜₫ß Ç«~yÈ}kFDºZ̃Êà¶D÷:Ç̉̃êÉJRQLÖ}‡(T“Ái˜e.¸ă}œ.›r R¹†b.Ü¿y% §„|b†57ƒ`ºû&ŸÉG# O₫v²Î±,‘\ƯìjIKÁ½m̃Ơ×/!Eû#SQJ ¼ü(BÿÍìXläơ7üe¯ˉ́Q¸R{I!F°˜,¢̀XúW”ÎDÍç™Ú'l/FcØ0—­&ơ6·s>“@G»²WwFët”Ö²ăÁyUÊéÚâwÊ ŒÊB“Î÷‹ưùÛñó³×ÜdüQôå̃*ø¿I4yp´&%xĐeËé[Ù¨pk.~¯8øéá­.z0cú“.å·bÚ¢CK“B`føñ¾`Eû ÔD¿Ứ&•vùWÄ́Îç¼è¥C¼4ë×₫ßjç|=·÷¤VH‘å™Ă1µhz|¬PƒNgçsB›œ̃lĨK{ư¹=o>÷̣Ys?|Àơ·É&ów’ä²B1‹‘ñ›óVJ̉åapNE¼("+WK\u(rO¦-ü&ä‡ç‘-³¦Úa­öƒŒÙ%ưç¦/vÂÂ1#ú‰›u÷¯¤ukë[d/$‚qơ'œq£ÜVb5SWă»ŒruZe'¯ëVw2ªĐ̃;¸ï¯dxV²Óđa#Aê_`÷_Pơ¤dËôrº¹¨é>ê]“Fgÿh‡VD6±%‚óW¥k“Œ39•¯ÁÑW+f…¼$Z‚è§g±¦ëû*ư"ΧcÔ¶Ú-ΗÁó‰“G —ÈFÿa­@\3"vڙƷ/æ©ź̀.+–V¼€?2ŸíÙï#ŸV#dž|ñm4ßc¢G̣ơâuÜ…\₫ĂRÎÇ{Ưuljàà”±ÜhÓS¿ơiSçB#ÉŒaÛªäˆ,¸ïD7Ï̃aÂí£h&kÏ:ºÿEœ̃óqøzîöæY¨ë}[}ô˜q̀ïaéA´Ö ¶ •ÓI‹û8ñ~‡û@é×Nm½ăŒ˜đdÑžO_«Z1Í7 öu;ØÖD¿&2“}₫<('ÿ;~q^ü˳¢ |5O’ÆøgAe¾‚pÆƯ·Ăôl¿ßëJ'YI…íÖ­ÀIưüL5·2)¢›´:¾D°/PotZ@[kïIY¼X‰Ï´BØ$ÂZ/£ïª×¤Œ– ]®£WGÆ¡¶’ñÁÑ‘Ưư²¨m;J[Đ–Ç›a³Xgr¿È±Ǘ4àÖ…`Ídqü>BÛª’qm4¥FR[Ŕ¦ÿ*í`ÁAéÓc‚Ÿw_¶Ü·ü³PùéŸd“Ệ)l†ävg²FºëfCo¶\ nø"N¯–öi“¤„D[«NW~›œPÅ–Ö®¬´A„’^ôƯ6º],}1Nv́EDm̉<=ÿ ¼J8³CËCÍHùOÏơ ·c¿ª̉đËtl“4¿ê­$¦Ï”k2çØà½a_×NÏ‚Ụ»}Ở:W£̃Ÿnó\}’3‹’]ç+ƒÊ.ä¬Ê{‚ư'k×´£ö«ø~{(ÿ»Î’ï á̀¢s4©}›²Œ_î=U¤<7ËŨá¸(Í;s÷˜k¾+â•ùŸăæ9^‹à¬®²½¦øÔ†¢Ål„O× Åv™!t÷Ø:¡¾x*E,ZÎè<æˆÄjƒ·Ô«¨-v?e“ôưí Œ[̃Œ‰OUQ¹iåÙÅe …ĂÈ7~xÆÖÙÚÿvP¥Oưz¬Âàä̀aú̀âs̉²§É¦–祾T»?„ÉŒèC1â©q$$+4Á©¸³ç3#ˆR3U“ø¶a7|#Ÿ€Ùm`JÚ†u]NgjK#rÓmºeœ=®µ}r̃jdÜ„oUứ%¯†/úi[B>=Ké΋¥«Qó—ùꃌ'‘¾¿•}æËΧ߂›(‹u?eÄËÎü %ƯL¶¾ä´gÊj±éÛZØèOæW\¢¤Å_Å}Î;H¥×OU/&PA›uBüf¡m8W₫Nƒ î́đûXçnú0₫úH‡ FîĐWëÄ,©*YDí7÷³†onå̃L±ÊsqÁ‚Â×üiµg1“·>8‚ë¶ơvNúfúùQ‘@RUÉQÇ>ĂCÙ SŸ!\'ñÀ‹ É΂×á%Í a•̀‹—BBT‡p¥íµúÅT(4ÉÀQîGØ °“ƒün)½(ñ%Wÿ‹HÍ%Cc0/>¸›¬*ª¢û5’.DÑQ¼­Ư†9˹V¬̀=#¦[Ǧœ¡ïrisñ²æpWœwÀ!<¬J=w¥À|ºâÔá´ÆH&ƠøÏ¿…#ú#Ö7à¹SªIÓ́éà ¹;́V!‘ˆvJƯ©óЧ'(fE>®V_öo]¾‘–â ­uLï̃|å«c/“yđ *ÿÁTĐo îq“¨í.GºÎKï+ÓÛ+55úÖĐüä˜ï˜~]œÎ²p Ο\ăo9²–|³Á§2Ù›‡̃‘Ê@±D¹/꺣%í°µ̉? “Æ8Äïn»x›Ç{puñO@¼^ôƯXVíM«,_óJ¢¥ ©‰ë8Ó»^GÜ… ĂWÀb#[Æ´ÔĐè$ÿ>½£ư^öÿy†ûr¡^½;F]ºr™ư¹ƒØF/ǿĐ.®Ơcú ®¢æqÁƒÍ„¡ä8i`3Gør¦S€b+uˆ½¾ăûB§Âß:td̉ÑK?…)œ¥´ ß™›Ÿ™±Ô#P!ắèSH6,a}`ºªudX"ÂCöU@¬íÅBiXö‰́'¶±̃Ó_7 ÜEÉ­nEé/çG’«y–COŸä,§7R¼µ£K¬ử¥‰(æđà@Ó*¾6b¨;‰ 亶&uàI~ˆ(êÔÑÓqa OËmÆT†ëDñ¦æªÅ/ù(™™?¤â.­Rµ$Ù₫Ÿ@®ÙHbÍ}XXVsH› æˆûVg–]Z7ø©·#£cÈBÇN £ôt‘´CA +Àă(Ë3̃ÚGN[ N» mó#–ơÊ7ØÄFzp4°#èZ‹´<p¶—ô…óùêü´¶5̀ˆHơ©|j§ÅÖ”?˜ñ\G¨-YsÁX\Ê’â1‹JÏ™%±f{pñ ªÑ À#¥´¸–HƠ_V)~L‚)ˆ´ßđ¼P*K^P=ÅqRJ@%d’mÀH{‚MÄ3u§4Y€̉¼}B”Hÿt_uîcEëK%z@¦ñ.Oăü. FÛ6‰†ˆG|èÏátZ:ƒVÑ ¶mR¯°*=/wÍTó£áàZ]ñ'¹eơ™WÓ–Ưº’aö•±‚%—)§‹¾4–D-$¥.̣2¶’Zu=±_°zÑA0?Úê₫9hdYï.ưåö(¿xâøƠKàˆ²†ˆêV̀ÿV ¾—â ¡:Tc½áûâơX}aEḥuƠ›“JYµƯT"‰&¸¬‚d,´Ôk½!àÛ’+ ₫D́æhùb'j¬LÍtWơJy£™ĐÁ…ßa¯[èÍÛîæØo₫‹À48é@ư3™ÚO=*Å®ø›)hûLÙ“à>,ưYÀ—ù=C–m4ơ†tc:iiîŒEw÷k\êG#©—†¢Kê®Ơ Ïó˜yR>Ç;ªÙïƘ»»µ́­@îdÀuuz:túTl"OÖ ViêÂñ;»–=—‚Ø}{eơbjrÄã@9ó«y°KÙàơ³ôCdjXÔmêüí': 5ñ+-øtEd! ߨYR"¿•wÙ×€ƒp95`ÿïXˆ7mXÜƠÛ_±ï‚¿‚7±‚E«Fqøơ£ǵ¸Ü[eÇ̀À,é½NS²×gpU`”D*Ä7£â?Ù÷BL Ül`±¹4yÄ(±ï–KÎO²đ)“ÉLU KÓLÍ~jÙ%ñ;Ôlư²ưŸX&¯…Dj?‡MÛ5UƒÓÓ¬«Â²Ô§˜éWw1Q̀̉ ZÂôaå~&“t3ÙÆªW0ƯFđ»Ÿ£³¦Cå endstream endobj 504 0 obj << /Length1 2127 /Length2 13081 /Length3 0 /Length 14352 /Filter /FlateDecode >> stream xÚ»TÚ¨»»”´¸»»»»Ü»ww·¢Å—;Å)N±ẫ—#÷ôÜûÿk½·X ̣́Ù3{f'@C¡¦É,nåd”q»3³³° $•µ´øllœ,ll(44Z wàßb «È ,đ/IW ¹;D&eî±Sv<́œvv^66ÿ \Ræ +€2 @Á tC¡‘tröqÙØºCÂüç!€Î’ÀÎÏÏËô§;@Üè ²4”ÍƯmˆ–æM'KĐƯç¿– ²uww`eợ̣b1wtcqrµ¡gxÜm@7 «'Đ đGÂsGà_™± Đ´lAnÉ5¬Ư½̀]ˆÀd »A<<ÀV@W$8@S^  ê ÿe¬ô—àïÚØYØÿYîoï?ÿt6·´trt6û€À6k *£ÄâîíÎ0[ưahîàæñ7÷49˜[@ ₫ܹ9@F\`IđïôÜ,]AÎîn,n ‡?RdưcH•¥ÁV’N@°»Êû“¹-!e÷aưëdíÁN^`ß¿Á¶²₫# +gVm0ÈÅ(/ơ· D„̣[ftp³±±ñq²€. ·¥-ëËkù8ÿT₫)†dàïë́ä °†$ôY!?P|Ừ=wW ¿ï¿ÿM(́́+¥;Àh£ü^"ZÿÅĂwy Ù ½Ç`ûăëŸGÆö²r;øü6ÿó|Y¥Ơe$euÿÊø„„“7À—™À̀ÁÉ àæâđđóüÿ{5sĐß›`ûí)¶vđÿµWH‘₫³_Ï¿ŸîïÑ ü÷Z*Nè~·¸7›%äûÿs£ÿẹ́ÿ×̣߬kñÿƯŒ‡ƒĂŸjº?ơÿµ¹#ÈÁçoHËz¸CÚ_Ù 2àÿ5Ơ₫5²Ê@+‡ăÿjåƯÍ!c ¶qø§Œ 77ĐJ äniûgcü%Ö₫cÄ@` “è;À̀ÎÆö?:È\YÚCî 7H?₫©BÆæ¿#Jƒ-¬₫˜/n€¹««¹ ¤8¸¹¾́A´zÿÙÁV°“;ÄÉÎ`íạ̈Ç̣pXÅÿưE<V‰ßÄ `•üMüöú‡xÙ¬2¿‰À*û›8¬r¿‰À*ÿ› ”~$‚̣oâ°ªü&H<ƠˆOí7A"hü&HÍßÄ`ƠúMü´$îo‚DĐÿ‡ø!:óßÙ‹Åo‚XZ₫CÜ¥“äÈ₫#áâúCâèøÛÿ³dµúB*üB°₫B2°ùB–³ưBrư !á₫…½9₫FvH\đ¿×é_‰ëü{Û[gÈƯvZ»ÿ–²ÿ-ưkrÿCNÎ2¯N¿³â‡ˆ\<œÜÿåÏÉÿ·ô¿ưÙÙ!Y¹₫ !Y¹ư®)ÄÉ èúŸºBÎÄÍÁÜí_Å`‡Äü½(ä>au·u₫«´́!¤ZÿBH¯ßÈñ÷ùÿkª,=\!ù»ÿyíAFî?üçSè ´Dù¶àd)f×öñ®AœÔ‹ywBx–fW7“Ù÷›k·ÇbưûÜ ×ñ´‘¬Ơmiºk±ẹgß-ˆ‘)ê]~O¦IÓ»](KSŸ'Kˆ7‘!¿bÖÛó{vñÓ ¶‡í€îU )tñàĂP+ƽóú$ëƯbjb"2Økœ±iZ_‰ƒtÂEßỆØ áÅ|6z¨%pñ¹„•É k³́"cÀE¹Å4o3@åÖ!ôÅ Ê æ:s‹Æ‰»íœS¥ưq| N­Ñ’ÿT›)UÿGc>¼RSïÍ~ăWFUñ~+¡µ<—“£ Q¾í†w© ăS«^íj} SSÊc]¹üO3è²rñ3–QÜ₫p'Ó!ÀLHU^–ñ·ă*1· XgÁ•Å Á̃û^ƧÍS€e¥rN ½6€Á±,¿&©˜‹‘؉º†\»%TÚ2U¡îÉV%éÿ+¢Km—vÉ,ÿäƯÍrU¦ñz†¦?«yFEW)AÍ!åđ ù Ÿ´ºH–`.ɇYÄüƠƯ›nC₫Q̉2ÊR{Ów³ÔPÓ³„ó™Ó6C—Hh#ñ̃•³:ʶÇsJÔœj0™+'x3ß|º0¸skñ˜z(§xßDíw2 œH—† Á5@ÿ=¬°́úY=nÁçJm&Ó·ƒ´^ÁÚ˜÷àzsụ1|ínÀ8(E@âúvW̃ˆ: Cx.©¸å(h2*´­8>“àÛ(̃Ưpîp/ÅÎQzS£z_‹&œ©̉„Ï̃W†n * A+<Ÿ~tO–NïZƯƠ ÂÉưËhEĂ™Ăº»«:”ĐƠŸèMZ¹̀¶ví™sp}ÉH MGc–C³Å̃¤÷S6¯í‰àسMJ ̉'*[hc99mbrîy9rÜÂơÅ;KÄæÊÁcD $¸ÔÊ`l†D{­™AËK O2L+L±ÔxÈXÂqc/đ‘ë7.°°cÙ)»Å v”ê¿5›Đ0™ó!—TçḄé_ÆØEûđ…Ö—Ø#á\ƯFe¸̀Ó¡I­è¬½ª¡x¬¿å+pÿ“°¬ƒ·±gi'v B íC/¶¿uÛ2Hư£sËÀĐú´¢£úœ+‰À.qTvÅh¼OGÊ£YÀípŸ,².+́‹ïbÄ yovµº£»Â§`¦|-ƒ]sYÏ-c̃Z{Œù\·¯F$b6U|¶]ȸÜ$•Ô¶ÏÖ‰˜Óe¼MKgư–‚ê¹<ÜsÍÀăă”Á¥Î ¶ôHÁƒWƯƯ3óô+(±®@„mÀ! Á‡o ÀΣ¹ÆS»hàâWĂÖ>̃Ÿ„7̀&vÉĐÅß Ïđ–‰QHl¢ăøßaEsÖ¡- †&”ªê'I¾F¶¤Akl_ÊZñy¯ )\ơ₫(ơ„{ÆĐà™••úµJ$Dgoˆ³̉1ëW=?aÈy°®syă¶ĂBB?x1’œÓ¦°’÷³ÀWơ`¢~±Vµ€æc±ÙF©3#R7ͪdÁoA”P…úÚIôú7Î Đ(>¢c/ &’#×8÷̣è¨ådơ ƯgÍHĐĂ0V•ríh­ks'`½¿k"ä .Ǻ¯­öTâ±½ ç;6́ *OË‹8$[)Q?¯7't]U˧™|ÅWơëơ`1ù>­‚½ïqI’ëeav<ÍßÉ-̉Tz·d¥ ÖđéœíäêR/±ü|„̀ù¦ÎpÂưrm÷5üˆÇ¹ ÍRù…Ù›k6­À"48y_ḍp;á"â˜1¯˜%ä‘î²̃åh¤®Ñ!̃â»á̀ç„É•cÜ¡ûe߇r¼*̀ë‚ÎHQ¹–Yôû| ªơÖ¥Åz`¦˜æ×™£èjÙ0Ư ĐË̉ˆ±-Fډģ·/I&7Ù—ZëW̉=Qëơ=R¤î›ûoøÁ£>Eᯇ>r¶Ư‘w¸b£à^¾âc2:/R‹yÓ>û½>ûTÉ%À…s«À[)²™-Tœ35Pƒ'Ù8¢¶7Üïïñö`À/ïÖfÚ•™ [€¤đÀcú²ˆøjÓpPêÀH ¤w½jæE2Ë–đ:zD̃Öx¦AÅØg›àDZ²ƠöôË‹–H‚ ¥Ç™20¦l•j^VẠ́ Y&ïæµ~¾Sœ?R¯xfùîắVâ(ư„géá;K « ¨ÎưËû&S¬œ'?\ĂÚïx7sệ̀–øÔnïÓ7á4Îâ«°RFÇY=\t åeßÈOjVaê0g2KÆØj}ñ–Á@I{åNư#¤´ẉà4OăT9Ÿd‘ƒs/'xƯ!®Á¤Ä¾^éA ¦U‰œnyRipí×ëá˜Û|MW»G¬´Ÿ¨Ï¾°¿|  ¿m:©éoÙåb†D@ øø&ÜvAUµS]ÉYTϲ­jmk+¡&\†ÊéF'íÁØĐ×uQIû>—8–’,®¿ưƯ•¼CU¹‘{ËơW E¤lÍøÖT7“Óí ÁIq¶ŒXºûu[¶̃k)ÊûY ăÂpègjZtœÍEÏn}ÿ`œÂF íGy"M߬̃e៰U3Ljh29öaëoPÊ÷ƒ‘°,”Ÿ†¯vÜ NT‰̃2sjßQc<₫#Tc»&Ïû]ízưγª7u•÷¦ÅÎ4pˆg OÆ&ö€!"‹^xΙ&O£—Đ„„ {́ˆú}p̃Ă5ÇØ»P1ơà$(B\Ïiÿ9î·œ›KÙ¬Ÿ¯+ß7×·˜bF_ôNÉZŸCÊW'¥p¥†0•Ơ½;.ç~¼£)Zî0̃‘Γ‹±¬y¿û¬ñªåâ¡@‰•üM€‰%·mû'₫v²»",ñ}d$©ùŒ¬ÿn8ÑÁ¦kSJÀ-=Z±uüù{ÖRR¡gO¡‹E5\¿bñá'Yû̉1TD5ưºÏÓ³¯U+»º%4r_Ñ×U9Ơê5 k¾́ } É4RÍëñ–-Jñ ™Æˆ'4ØF0É·̃óÚ¾fˆôtj'`)œ&Øđ–ăw₫~æî„ƯÈOqB°ßÙ=“ÅÖ}±¥gjk†G1ÑѲñûY³¥yE1HÍZçy´Èæà3G¢X‹ J8’‹e€»±1ṃ9—ÜôơØzßÈ=UbZ€¡¹)áĂÈ3ơ½>ÑŸLٸܟ†~̃Î9d°y¥ÿBáTtAÑú~¿:‡S76hT =ûñíY|²Ă«êHc‹28çg›¼Ur^Y$Rún÷ï †›:ÑÓ*E=K/_TMÊ#3÷cçĐÉ`<Íbj<ͦ#1Q†¢ô mÛ+Ÿ3D\ {Bù¤́W*’ǛԖ{Kw4hјcx×ÔäåLZEÊ1“’ªkO:EÀá´»/0¼[%Ái¦ a¾̃¹èiËÔÇT ö¯‘Ơ¹¨>èƒLüÔó‹”&£,{i‰§äÀÉô«HÈ“•_ï‡ưlDƒDkè}₫?1räï:•'¯¿¤éΟ3`22Ô₫Ø`²Z¯ö±.ªtôœË1vG~„##5[ÆvjY"6NÑ•«Åi8ÙÔ‡]ó'|£¦bÖ©é!aM@Í”w6Ÿ6«t3·sÙ&üà…éØ̀æHªƒ„5·‹œîœ…¥¥ v'.áYT¦Ô Ư~ụ́qW*̃í«£¿(Ù§ülÓ́„=G°œÙ¶x¸ø"¶ăLv'1ÊÂj]ỵYq:ÔÁ©5xL{i%+vP2?§Ă¼Ä½5vuÿÓ^7Ô…çÊêâÆ²Ë+ij5Óoá!V÷í7”˜ZP’†€—^¿ÊnŒr¯™`v?^œ« Ù_¬CÈKuëâ(­ú¶xÔåÍ»og̣"0†¤Y¶„z4ó@¹÷ư¸óYô¸óŒ­ù¨c4SCpúf‚È 1ơÜ‘NJ]*ó¯“olƠlw¤Î—?h$e1÷„Ơwh^î½ ÛïE¾(ß/Ơä{„#¡¨Î`ú:I€Vă9©BøªÉö#Àl„RÑ|/y€{|€*ØÊ«ñP—Fß!º'€€P€µ%D¤̃ R8'Óï«BUè;sâÿU”×çÎ7Ó–X³-¼mÓ̀Ư œ˜à@]’VÑ ÁĂáëœB[¶Ï" hÚ5JzAFÏÆf¢gƒÖóë°œ©|M9}ó—5% ¢-†øF̉6xơ›½÷PÙ:LSÉ”Ơ4¦‰Ud‰Ja¥”\«eߪ<ƒ» ¾\SÀ£́Î>nè‹Ư)ÅDăùynt&1#¾›PaĐ'Hetß!²(Ño¿i‰!K&uôÙ`'¾ŒT́Ăk×Y¸]€£!ñŒ´«Ưlûex˜¹̃@nö ¼Ck 0ænö9Èës7Á4¬¨A½cˆ¤v`DËĂúS̉BB CPŸ%œ ‰pEơíGV¨¯̉ÁT?6Ă]¨5çI‘IµúÏ h¬,.ẩă¨¯÷x̉0Ö• «KOVO‘½Y—óÀ!ªV>ËÎlSo!I'_‘ªwíó¹ ©HñdÚ¼WI«ôOàKïöHñ/1GBÚÑo×ûaùBQ”F~áÎß‹½́ÑMC©6Øéå Ï'±C¤Đ€«}¿[ă˜]Ê™{ϧ=dr̉[â\50.—„¬ŒNÎ|äÚØ\Nç´ÖÜi{Öè.ZíFĐyÛ5à-×ȯă;¥ñ?rZ i…Ă6ĂœÅÄu“`vT ƠzêMí•·^‰̃`¥Ï̉¿æÍ™²s‡¢¾ç4?S₫x̀ĂƯ_ü¡¿¨u¢*¢¤+¬£™›î+™Ï¢ëuđy»H,±æÊÜw*ƠU< ñŒÄiH ç§®ùyP¶đÀ¥¥É|À|&WØûJ0–Ö–V¦©bb™àÖ¼¥/øyHnO{Ë̀¿5Ûœc€Å¼[‰à¥&¨XSÚ]ư0-?•¦{Åüâ¾­̃ŸgîƒÙÈjAb‘Úhđ9 ]PĐ” –©?ö½Q×Y¥Ư`Ú++m¤ù耦®ÂJw»“ÙJˆ„B¬́Xj×"*#ĐA¿o‡¦}b¹ca…Ów¤·0ä×O”‘‘+)/9ÂöÄU-ÜÍ,y$­ÚjxĐ4w˜?²ÉÁËâæoywYxGøß_éw ´ósÖk¡̀Y³†éÊ}ùiz4zç4Lư1¯Q4̉”Ëû:—ç$;³&ˆĐC_Œ®æ¬R¾Ư¤duøƯimI*uưAÖœ6đ×eƒø¥t÷Mo Û;O ¦¤J 5Ỵ̈L®ºNå«yåưÂÉæ³Î1Z”ă¼iA4€½÷BÇô^xP ưèv"ƯkQd̃øiÖŒc(9̉¸•_xĐE4´OlẮˆaâe{߸/ÍŒq²[…f VJx̃¿[âi”WZ—Á›Ã_DÈÚÄÖ‹r%~Ư@`åjûœÙ® @ơÁé‡Ù{c›ïœ‚Đ`„Æ \•ǴÆ*¥R¦ÂơÚ rUƯ­¯&áj†Ëtđú©å Ï”5Mp´ÈƯ«ĂëWE’ˆï|ÉƯzk9f(#_ª|̃dj̃¾y8ă&ÈÜñøv?â~90'rÜeơ0TOwºVåR¸ü³!Óf„‹¿Ơú–%'>g’‡̀böɶ»ô¬ÂÙëè™!N¤çiçÊøÉn~̣¸Êƒàû0^¶>¼k…óC± ̀g:»×ë£2Óº̃ê½§ÏöaŸËÜ=^7S*–Ç ¿ï©D®†5l̀˜³Í¦ä3ö,é^',.EÑôiE½Ñ„Ÿ¿‘:(+b¾3ˆ=KIÛ}4ÁÎe¹7\¶øñæ*™™]ĐÈ́ăÁ¨Ù]‚o†zjƒ‘æÑ¹¡ëȲjê5°ÙÚf½Â ¹Ü§ôV¹âEåX„BY¬ÜlUd4fú¨Ḯ{̣,pe­‡qRïRùf̉´JA!Çh‘ÎFÄt£ĂáỔÎtLçƠ™]Îv3îèÈpŸ¢ÀX$…;Ù (,(TÖÄ0²§2²‡-v{¶-½RèÊVŒ!»ÛréÅÀî–ö¢ 5»öôsro­VˆF‹ÈHœ7‘Ưïew‘Ư¬™ˆ4I©g”GOç&éV-Zܨˆ®̣ßbÜ‹ăVǦÿœUäs®»Œq†*8đûéÚ„*^wŸ)«ô‰¸̀÷…Ưáë¾æs<ù!c™Î_) T¸Ù| ̃h-æùñ f́z&&F?Ü·Ơ_ÖßP~ø)[ñ&'´2’ª/Ä?‹,ɤÂ+£tZ—…¬ù˜S`mASĐÑp̀7u¢Ë¼kÿØOS¸(Úc-₫IF@öÊ0‰(ñîRÖKVß₫úIöE~J„AEuÀM¨¥(» —ê]TÉ™«³L›é>F¢jávÈ̃°'Øà‡€¢Í‚¦_i;Ø€ûÛ§uUØK%:ZĨ)gÂ:ÁôÍ¡â½x¨̣;´Û [^eºŸ5)7ErWÙï¬~|à¿ê àÁ[¥¢(„35ÚaX>¦]´áñḷ5zEÓ‡(n ˜Dコă{¹½ˆBËߺRk̃྽ß|L»=¿{Ø.é]’›ńN|nƯIKï°‘ØqiÊ’wܲ(7̃-1Uoj/¨/ÏFrV*nȺÔ4á¥é®l²'á<§›đ|›oŸœ’¦èù\—¿­\>„ê5H¿ÖÎ₫nÏè§/ÆvĂYZèám÷­‰ằPêđlÓÀ¬ÑNsÔ2×ä(áÜWS̉Á×—E¼“S9˜…ŸÖ×9B­†U°«Ñ³àhEîÛ^s·ZOÚ>U¶&¯‡¶Xđ¤̀ &¡åöY¬Ëçß/ú*ö3‹bɬ”D¥öu’¦öEé.Qá0`ÏdÅà)sa_Ê¡(/̀ÀĂ–bœXïx<Ø4¯ưt»Á[Ç,hCưp8:å¾…øÆnăzœé!Ôú{ÛO¤cE¾—5øâÖ 8• 賸Ơ¹Ë°_Îây ï6J0¯ çiäƒ+ÓØ î£y½‘*·µÆùLĐ+s‘½lŸ̀·Đ 1lWŸé¹"Mi1ó˜)9C¤HÓQQÀVNC]76œoÆ‹7 ¾V]ñÉ5ÿÈLîø&ó¶+,R¢—„Ÿ₫¼@c“¬qå"AiGk¶̣9À°ÑÅ:,̉…?¨°vç&ྭ‘Œ6‰ø§÷X(°‰SÔöt8’̣dnÑEŒ¿ó₫y.æ̉¼#Ưº—~'•̀V! Çá1®„ưíËñ›DëĐÏ»ßYvơÄƠûÜÅ;‚EDNk“^9’b$S`E©›Ü*Ôén¶,ƯR˜LRÖÊ·Ö/åÉÚ™äƠÈ78Œ¸fœaơR›)ăèmÁºå”(œMà¤Jt}çÛø çà$Y†ơkăng†̣’[ÁṛÜK`)ú棗’Ôñ1Kxæ4¯ *#§/y ­c̉Tdˤ̣Ú’±™̃$s®óÆëYÚJD/èÇA+aiPŒ ̣ …훸¼ØÑ¤́³Äu‡¼#‡ă“WÛ!M=í´8›|I,Å…ëö7L ŒƯŸ”u2ư¹ºÎ6YÖṛÍtÀÄ’₫f]®ª ́ÜƠî|y}¶́W(kqtEñà•3̃?aEóª,çÅøơléÅÊ››WÉ:¶œ¦ùô_pXå†:g3v“:¯ÏµQ^®&¦4>qP "`X¼ÂlÖ¯¼S_@Ñ„AWü9ˆ¦Û#T¿Aö¨—˜Hë÷~yóù/¡ă´±ÀQ†öùñ@–§ă'Tfˆnq¯Ơó¬}úÔy2üÜë9ToJ×ÜẲµü½­ ïzúŒ+q`₫=B½₫¾]köÈ́̃ƒá g¶ ̉t™J¶PăÁ6¡«;-ư ‹NNLí·l~iA÷oúî‰æ\>^~PƯƯœdÖmWRÔ’“°’ ‘ƠxE`pøǽ2+Yúù9c,¬Û3lÆBơĂ;e˜Wö₫.„àP®xÆNÄA94ô(Q5µở,!zßtwÆ·½̃íVÑüB±{OJy%(ä?Tº%€’¥ˆ2æ×` ¿êx„°P“lx\ˈ>ñ°b(b74Ă0}ֱ׳6vw <àXúÛP¥FÏêm™Øøoí®Í°ÎxÑ«ö‘D iêƯư…îf¢œ—qµ}Fȵ±hÊôu;#á{8Ú%)ä—¾ÁµøKK_Kj̀â ^¥é')Éboˆ&MD(ø§–n>'„Ä–û̉èâ{Ơ»˜­}½ñL¦1Ǥ¾K±çµè-¥–œ₫R ûÈ₫>̀ˆñ(ç×»)³ @"ƒF;â\ß. ªƯ£}¤_́—o½ûăF¡§ö-‚wƱâCOl¬>JL+}ÆT“DƠ?W a»+&üDy´•,÷dHe¼5N2§éSCñx¥„Dz‚ £¬ă»öw™t©ƠŸµ—ơ”NsƯưƯE4ß$½”íĐg}´ÖUWÄsº‹qK`|•;Kˆ£r“:£/ê‘Yè¸/¦A±ƒ₫8„®ß!èÈy’ÄÜa;º°!Ü·ặ3”ªd›đ-A’¼‰b‰$àäṬʉG>ø ³xuûŸ â«“û&c(X4“k‚pƠꔯ J‰¬”IQ8²ÈĂ˜ ˆîÅœí-AÛ³¡ào®ÓÅñ~Q‹Ó"40¡k̀'+đC#]7ñÙJ¨8AY9Fqk%·ï'j6~ ô´ï¬‹§6¢MFiç5>‚Ë›ÙǪ†êΧT¾nyŸ¶6|ÖïLCíd |Ο̣m¯é÷*•Æk6»¤=<²Œ<–/*jGŸ¬Ñ8ôÆÇ^9ü>)V¤nZz“¶…<:¢^!VêyäÇ;½E¡™ñơj;‡2Êl¶¶wW%äg´üĐ ¹s[>L®n²“5³à#Ù€»„B/`ëÔ ;^ÀS=ñ&+'ËC̣Á—ñe=ˆ öC‰÷À¯™ËÍN̉~‡"aÈF’½‚sx{i­œ×.·W<™cº`„×PS¦û7̉{‚WóXŸöÛ^îVK&f}¥Ï|î:ô4— £!S92R¯Ö8e:ÂnĐPÁ+áª{¤ÙŒçˆl4½‡–ë]yßLA2@üĐDëŸ)ä_ye‡qöÆă[Ųù§ơ©W÷®ÂƒÂ¢»h³0ü®€U¹.ñ Ë47]sÛ€QwüüRø!#¯br²A=晦øỢÎy l­=-±-ÅAÆ̉jZtJÆÈ1É{‚N¡fDx’÷QøåSßW6ư»á¨¦¾µÚ•©‹²o™­¹"Ï-¶ –4<ø̀hD²l8UYÁWt§uGsM±}ÙƯ¹Ë’±øqq‚l±ªÓxQ…ûÈ´g!®R_$ÄW%QƯwøƯ÷×E½Û×),1V"æ{¦ï ̣FøØhÖ S>´·ƯđƯVó£Llïon…æ’öp4ß&ù:3»H"¾‰v– ¦&̀̃a¼́hâlÁĂ›¯ùº+}5̣¡ ÑÁà#P$÷Éâ-é~óhu瘘Ơ[¨̣ß§Cæ·¹{v¡QiŸ́puÜÖBQ™Ùouq‡J>¸¼BÿAl²…LDôÑDA¬c ưÎ`ir•o= á4."Ug+R̀Ô₫ơµ8/̣ÏŸ#³ïzX+Jèë´œ9̀c ïbÎGƤÙømÛ5vÙˆ’s ïƒn¾1mñ0øˆ:¦àâ–$wäPªà!¨Êvrx‚˜Ơí—êđK™đ'ªúRTưŒ4:‚åWEáÂ…od (æ¦hz¥´Ä)vÑPøn%÷̉Ít»ø›k£OÿTÁÅ–À—̃{5uŒäøæI¡Ư· Ăơ´d©ñˆr‰¹£ÂA5¯f#ÑăÊe‰r¾8\>r9¢7JăµQăưƒ{ Áñ£ ;î^Ÿ[JÎ`aåR¬ÙOƯ.{¨{E?dÔH¹m›ê"’¥Đ¸:̃†Åñ­zåăS=S)ÅÔăèàÓ{¢}‰đB ‚5̉Å#f~û‘́.~Oæ¡j k”«K8»d8ØĐA{ëÅÎÄo?đÆ›aÙâC¥Cđé„l\ö„NBÿZE‹9t /Bä"±ạîfŒ EïÑÏí"ÏđÆ\… âCmù™©Qtm‚üm‹ăÑm;ëè˜(Eù`>ëI"]¤ˆ.hôKÚ¥’ü/Øđ—w[ˆ/»¹˜·U´ÀL5ƒÖ™lË»–́ Ûuq¥W7¯zUÆƯĂ–é.pŸ.²‰w 4dñCÜOWp¦AùUôæmø‚z)ĨF̀pj¡₫„́³NH§cƯ|Nă@ÓäP¢¥%û·5Z(Ơ.–v JO|ÁÀâÔ‰Îđư;]ƠË "VFZ‹¶AEú¸§¸Øåxé§*ô öáää.o¬ œùu ,6_i{‘;Táñ<µC™Çª;ç&3[H€’;—z|ø"́ùqÄ•TÛœÑñç&fï^— MÎÊ¿̉u À́M-„ESP=>p=¹•¸ e†±âëŸ4jÔÆ—×a(,ÄCnÇ̉~7m²‰UhAØ>úØÔkă\—ñtƠ$Ôơʇƒ8FWëîÙ,¸Ơºét£HƠj ¸èĐFÜÀ6ÈØ3a>vÄcfË€‚'>$>¶©n+”«Å^&ë.äơ B³Ë#ỒÎè{6-WÂÅ̉ê "X碆9°-k £Í¹Ư^\kX®_!b\Ÿ…2àï7tÂo¯4̣±·0Îv_Ù³æô¹‡ëGơœß±• G‹¶%åáó™NG©u¹í"²ïi¶•) M¶ưZåÿœ¼·‹mj¯wà/zª¥;ûAk(,?†Ưs„™/OG̀”fÄÏ{ơÉè-Ê´MAÔ.ËA÷­Û¨_ÀÎDÑ©ª6/̣áD€ÎY.]’mZh«];ëîe©ØÍá‘«smĂîY¬3¯'óưĂÀ£ÄHdÀmǪlOª&½ŸP&éô†Û€[79ñ¢‹àQ³ÿĂêÀ"«ÿË|Î:ơ9ÁÑ´½2¸Á}e·̀p036l¼u˜ÙeçHomhƯ¥7(¼uÈ Söḿ¸bÛ7h€P2Úöb₫ÚÄ¢êÓn²¯Sƒ)ä)Î÷ä•鬲vKÉe'na]Ơ¬"1ư.œéî–Èơ$‡¤Aó¥Ü¢Ơ9óĂ!Û°YX¦AÔ‘‰Ø ¦Q”]±4Ñ ¥,ªÓo|Œ»̉[³V¯³SE³³Skp̣¹ –ܽÓF åÓ ™?(}Ô)êéú Jj2H Ư'«`Æ7áDi™$ß¹¦ÓúQ„m‹*@ÇđZ‡Gw[ùåËêyÇ ]Â>ÿYB÷©¿d)A4S,·9~ aê©đ/c…î·œÔ(Ưéö„€4Œoí́€GW6S=ÿ–n¡%Rœ‘í6́Ù«dÖ#ôc»7EDÏTÔL®è“Ù½}|xF¸:W7Ùg0:{ưs3¿D0p×Dy¿ \1ÜrËZÍßN/ºˆùH\9~̃a÷̀üÀgM*iѽrƒ‰x`/Eذ²7â'µç×TZ|ˆæ\ ]}cđ÷Ÿ½¯*јÍưNú¨‹æ}ª̀q)EæhfA`˜¿ÙùÅ[‹â1˜·v§To)öDpÚÖsú‡>M5â€ẹ̈MJ”‡u2ùĐÁ V{­¦CÊ׳Y„á֘ȭ+kØo6Y•m×+@‡EÑgù×½Ï+´ƠÀÑm tn•Í‘É ăø‰ÓÉƠ|w_Æ&F¹Uߣ̣á~ÊÍđ.ùµ ¿Ö÷ä/¢$̀åKLÎFmÁC¬b‚ Ó–e£ë1n§ÅWD7ƒ ØÁ ë›üáûw0FÅWïŒøU¥¨)±X" ữHXxJ@Ê£y3&í.S©xK€X×̣ÔKÓ†mßK'é‡^ƒÆ×´`R76/ÿÉ…]Å4ï7 C̉¯ƒ¨\¹˺c^¹BMXÉ2éû` :µ†£&-µ°fb}’O₫1Â9˜á²R“Ûß(omÔb-ưNØơUW`öp‘2mE¾1£ø­̃«¥7ôºk₫Ú³cæÆEDRµ{,(̀=ĐrËf»VKVLLÙ8[YĂn ’]ë¾ü‡¬±{,+ ÊÙª4¼SàǬ́Zf–ƯdîR5O8+ßđœ’É’~9“bI¾œM~ŒíF*œk̉'˜Â§wåk±˜!óßÅ`Nhî¬ÊợĂ,†1°=Ǿ´ ÜL©¨à»Öz(ÏR+¾ ’øƯG•é‰ z‘Ư‚~.Ôuà¬%ª0¦³àtêxn*¬/Ûéñg·àÁ÷±DŒ.5Ådz‚¶á+†Æ"º£Rä6±Mûd,?>Ü^̣å@K¬ÇUV­ó½†zªjŒ÷aRñ|xÎwüjâ˯b{ˆcXä„U>Đi˜‡\¢5Ôeü °C Ư¿êĆŒG–ÅĂ;ùÈ­B‚>®ÔF%dT‘‡ét©JèdíM¸¤r¸KY·´Û=khRư­?ẈŒdº¼ÛpäMËi 7$Jh§ă¤ÂǴNáụ̈ <¤c0e¨?KÁô^́ïµ~'‘«b†ÀÁ₫&)M©s„×Iƒh¥Æ$ứűµRƒùX[Xư$…T_†±&Hđm¹đó#‰Zzú懯Ễơ¹#,ù;] }{ºá*ȶ½¬V+l@} _( ÑĐjëcüG̉£º/FôẺ: ÎΤbÔâ~E¯ í a×Êî\_µlĂïm/¦ĐúçkToj¢ñ%¦jÜ5Ô8.·}¯Z̀N¹M4'00ÈÁTR3g»hê·Î«•đ“Cöc´¾ ưĐæÀDFܦÏzRư)ÚÚxwJÀ_U^Ztâ%ag£Ç»nû&¿ĂjqÉÑk†ưíÛz5÷²ün›gƠÛ*/ÅnU‡&Œ3̉²$É)p×JÉÜơ;Fåå Ôͨ™fơ5#]Åê–g¦ëµ«ŒDđ`ođ®×g¹AA›&O‚€´)´(;Oa0Q;uKY%œ{½đçÛ³fïª̃BƠÁ¼»r+NS ‰fÇUGT%3hơYdKúŸ[x|óJTë· ¿ŒøÓh<.|}†Yå^*e.M!b“É4¨â$µN8øPƒÚ؆1T³µœđø}÷¤`4ÚlŸ/%^hø”#Szt¥´ƯîáÙ‡́ÜVùÂSHl“‰cïµü4Ë=dº>đ÷Å÷ ¶Q9} ¸~̉Đ8„g˧*Á!tåKZ¢Sñk˜ïĐV̉ Cv±I¨Îë¾èˆ}}gíA7;÷Œ̃Öù¿—ºå*½f₫Û£qƪk÷6¥o²̀׿+nD̀ E,æ¿§Đ¶î)%Rí°d gÏî5× cÇẒúĂb¶ÍÄyØ7Ù•‚Jy¨æ[ºÀw÷ó¯[ .µNߦC_× +·/»½Ăö́ÇIü,?®mû-¢Z»Î€5oj„ïuUƒ…‚Ví’ø,ÙcÜÛ2½»ºÆ.KŒơª½É•̣æ}ë˨M»¬azÑÓ«›[jùmËĉ‹\îÉWŒzS¸¬¡•©‘°óÎVÜ8³+6ï ơ¶ï |N->NµŒ®IÀTÁÅ£Á/!á|zî¡”0rô?¢ ¥×øzœ;øNÀ7®ùgÈ›q¾’81ßpƠĐOüƠ]å³ĐÛr~I «àÿ¹¾~ endstream endobj 469 0 obj << /Type /ObjStm /N 100 /First 910 /Length 3362 /Filter /FlateDecode >> stream xÚí[[o7~ׯàc‹E†÷°:qs©;‰Ó =¶µ•¥T’Ódư~‡ÍŒdMjÅ qHÉçÂĂĂË™`F &¥ÅS2¥)­˜6”Ö̀8Jf=¥-s‘̉ađô,ʈg`Rh50HHI5ZT6 "™Ôí(Ť ͤä'Xe™ „«“1U÷L BV)éíÀ¨È” ÀB9e\£³–еbÊiÊÑLyC9†©à(Ç2=å8¦E¤Ï´”˜ÖÊ Œ )cÓÖ¢«F2íå€>Pf:DÊÁ1‰=è¦1(¡Ox”Cå<¸A]±ï-(ñD²Å?HÊA…¨)G3+¨ KG9–Yå)Ç1«#åxf­ œÀ¬Sr`l„@@IÇj5mt”£˜rs2‚£àSà„qo¨/̀i4^"â©wy!ÜÀ@T^Ê1ˆX*l™÷‘ ;惠W"Ạ̀*YđT8"ñ=ˆ–øöI!­˜1 a“Há©K¨Iä TB ñ1GƯ‹¨¡©HD ¥H#b$Í‚- Oj¨ÂÀ ÔĐ$.”פ£PW©#DBHFơ¬„‚¢§xjêCiCù¤­`%“†H̉`³4QˆF„¬ dPeÈ z)¦%‘ˆILC¨̉ZˆD[zé(>I ˆ\“I`VÓ̉èÑ©9héàáĂ?₫ú©d|g<̀üèæă<¥Ÿ Çøîdz^NÙ{1+> ø«̣lÎ̃«` Ú àAóc¡I­‚+TĐ(·Ă>düˆñÇ“ă ăØOágöË/üî ébáÚ̃¾gHe ~ÖZïZHµ%Hé ͨ!•*l¤̃$†aaBĂX °B9Û+¤“…"å^@B¶J®—eܤ …Œ-He £ú$RCA5ŒçQY`8ö ©EÑ̉W­CáûT¢P-@ µĐl PÄ% ¥ï¢pK€Ê™"bY *`ưZH¹%H cÚhªr Ïơˆ~Kˆ¶´…he:·dZá#,Ñhd'ÛBÄ€÷ªp>A¤ëRbÄø H`ƒ”́S]e%›ùCz_¸È{ª«ÅØpXœ7……7O³¥…Qwđ œ}èk étn ½(D́Ñb’”¶A´OƠ+$L-"¥-\•[¥¡ºE¥€äzƠkMDC¥u³d/c¤†4³TC%Ö;p€ÖCÚ-A ̀“đ½kHá ,Ùú„Är§ÀЬ!±À)¢è•J̣%ÖƠ5d H÷ éÜ’Æb) u²½BÚP´ÖÀAưLÏ5¢ñPĐF{°ï´Û‚ÔÏ–öƯi ¶©°ô -íÁjËu, Ü– aR¶cjH%1¯Ø^©„I…R#J‰y¥WíÁ\ƒ–öÀ׫öhx#Ø\«!u´ªí«XgíѰẼ÷ª=^ˆˆöhZÅv,¶i±ĐX; Sä¼ïÑ`æ²ÂjC>l¿Ú£1&lK{´ït ¶IOÑ̉å ©ûƠ‰1a[ÚƒŸ®í-AbÛFÜ7đB„îU}Tđ…PÍâ@‘zµwØÏ.hk¹†„‚÷^!E‹±Øø.tÔ½BZL]¾18•(‚±},gkH́``4pCpâÑ+•s—o¬?0—Å^5P±ÍX¸!ªĂoÖ[‚„bÚŒ…‚uQŸŒ]́, iŸ@ú;́À>bïáñ¢ÍWŒŸ¼ûƒÑaÚÂ‰Çøf4ú°a±ưÉxđö1«…\|®¯¢*—TÙé4…â῭§“³£1~øhŸñặËœ¥vßÓ€Ç@xo#Öè8'齤r˜JÀẩ1v:C}O‡cEXä@qàƒ–u#¦ :’„‡•³să9̀E2h;̃.©÷UX´ßĐ-µvŸ°Ư·f¬´R«Âœ“I÷ ®&:Љ,½£ír‰DI*§‰ÉØü•©6ÎSH<Éíäz¹åf ^Ơz.—BœÜat)Ë¥ÆÛl¸_b’— ¹¥˜G{-y{ÙÖt`ÁîPw«)™ß¡’ón¢ªßdr<…¤{*YÿûÿÁMS^Røƒ·ÿ§2T˜aBzª2üñw0y­aŸr˜¤ÇỴ̈±)yëV”tơ„l̉çÏd‰©¥£Pi¶«¦GÊV­05‘€X»Tk çæÛïZ\×µ®¿ºƠ‹Ü* sÇƯơ‚,:FÈçØĐ'Â<£¤rGÔ²v¨¶[#iù}•—êV­cË 5Ë«ö©₫R¨'©é†ĐƠX‹©±J­xK~)wIªªi£…].Kà¶Or;R{Y ­·™€O!´I×}‹Ó÷ S£)XŸ»ÀkrZ…ë4ézhѺ±̃“\~hư­_Ñú–NTj†+H…N\Iœ¡­©*ÔR%]“sè(̃“&Ô5l`i’j¦Ơ|zE ôÀ±*Ñ6­,]wKˆ¹t7¥LJ›V‰V úÛ=¼KXµØêY¢›wº )i%Ÿ?,ètÉßÇƯ¸Î‚óư£̉‘D[jDa´Æp¸CC·öœ'6¥rºIñ q́”ÄáùนÊÅÄCÜíËѺĐÈpÚÜhSd£Q¢²œ̉S’ZµåK¹KRæœ,•T¯.›ß::N*¡’Ró.s(ÇSø¡µÎ§Ạ̊£rv6~O¦yñüâôoî¼|¹ỵ̈_{ÏwO¤Â‹Ñé匙\bwẉ…½€»p¯ ÁTŒGZéÏÎJ,¿]DɽÓOOÊáå’Áaù^æw$½<˜Ÿ†g;ăËQÉ6æåơºJ9à'U% ´qu:¥%ùO|‡ị̈=₫ˆÿÊ÷ùc₫„đ§üÎ_đßù!É_ñ#~̀_ó7ü-?áïø)ÿÈÏø9/yj_đ ü†ŸK~1â“›)¿äWüêë§«r̀‡üO>â×|̀ÇĂqÉ'|‚đÿTN‡“s>å3>+?£Ülø…ÏF§³+>çó«iỴùß~Ă?ó¿ù₫•ÿ§œN~Î<Ú‚2:aĂîẬ̃J7Ï÷^ÿöäÅ#đüùëy˰à9™₫çú[< Í‚ë¸êÛ0]Ë6Ó3–)2›PôøpçÅñI¦¨C‹pá´¢ǼۡÈÙ(r›Ptø̣àÙñ“DQ\Oâ*‚èêñvDd6"(lBĐÁñ›ư'{ èU—Îá:uEˆ÷!¨ç.v’s{˜ÿv‡₫qzzög9•óE|Fư?›Œ&c„××§-kP^ŸÓ(ÎFábÈÓ¯Ë6ü»Ă:œNËq‚L± X™Œ¿ø_7“yy₫q” ,¹LJ5ù93™ëaîïÍÍmƒÅ&²÷̣éá¿’́;tY׺¬ƯVDÿ M̃̀ÂoĂ¾ßͰ]fđFư×ǯ_î‚ÁGϺF—[Xt‰Ë‹÷1±æq÷đj¸vA|ºlqfR1dÈ^!z#£øøä`ïI"úø¸‹lEFEÓ4́ÄF×¢ZÊ%ª)YS O]T»»QMZ±LôbÈ̉Xœ ©Ơ7cœẁÎ&Ór&l4óï¿{zBsûÑQ§&T3aŒdfc·"P̣.c-tzSël×2qÍ!ï¿zNĽë”7,It¤æ’Öy¶¡:ÿ}³¢ƯŸN'×÷l8=•g“O_§KT’¾•oß¼Ø{v*»µÚd¥¦ï{î¡Ôw›(»me¶”oóÔˆÙ0[¶Í'É¿nNG¼²ª·¬é¨œÍ²I½¹₫ˆQ2¼o85®ŸóV8Ùß•¸~̉³b3›ürïñ›$ÆYÏURÄY“‹á̃RüÇ9¯‘⪠_C‹µ̀ª¶¬eɾÅö;8KàÉ_­gt뤘2Aâîé¬L'±·’KrIß×Q“|8͉1Œ¸ú́t‘Àç‚üíđ|~5K奲Ǔ×côù¼dró₫¬.²VûcWûcC«?”XtÇÛÍÑWD«è₫îènsô•ÅË*x¼;¸Ø|e¡±å?èi騂,û¾«½Ù@+ư6´rƠQ\íÏ-­”º³?a ư¹íĂ­öÈoĐ#³Ú#½yV¨Ơ₫ÜR^rê₫˜vwô6ÔgÅåYî}Üû-ö,u'n¾ê¬¢ßR_m–„£Zđ~ ÂY™SW»sK{úÔu‡î^–3̀£“•qs‡¦»yú<9U~:<ŸábRºÙ#U~ä{>y³‡Ñ'ô¤Ï§ñüđ=ÍăËÄ܆ÖƠ³JY=MơôßaEnĂÚêóÓU˜ƠU&Đ÷aøªíPa…ªß¡ÂÊ V]¾úéܨ¬Ú̉/¬ªúÖ´ñûÍ|„uù¬̉ú>wT$}`RĂÖu‡đeñ¶̉ơF9§hMg¥Ú‡Ọ́3öĐëqö_üIT endstream endobj 518 0 obj << /Producer (pdfTeX-1.40.25) /Creator (TeX) /CreationDate (D:19700101000000Z) /ModDate (D:19700101000000Z) /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) kpathsea version 6.3.5) >> endobj 508 0 obj << /Type /ObjStm /N 71 /First 622 /Length 1741 /Filter /FlateDecode >> stream xÚYMo7½ëWđ ‘C?#@› @Ñ6-̣qjsP­+Ô– KvßÇ]®(R4›ö`-¹ä¼yÎ#G²VAH¡•Îâ¡…̉O)H¡¥0,Ѷ—J̣xçSÀÓ O%¬u ̣^8£y^2$ËĐ&øP’ààHiƒ†¢;ëĐp˜cMäÇV eLX à˜ÑˆCLB9‰É&  2@ö8p¯Â8„T˜¬ñ'Á€¢? ̉ ŒŵŒ‹ŒèÚbEK'¢Ă@%„†l|àÅÊGºÎ™ˆ%jŒ#>F? Ả~¡ÂE,.0qƯ„‰û ´†gåQSå5“ñ§™1Ù9\ÇU"̣Nb²²óf¡,½Åd äïÊ’0Ra24|Œ–FÅ@²Æ†æ°ftjœ0& †±J…@öj¡°cû€@‡!–ôØ@Æ’Mб¡đ¦ ¬FXXÇÉH¶!¾aa"Ï%åŒ%„åêj±ü°9Ü…D̃½[,¿CxüÔüuơ0lÀw©ÿ0<̀Ç̃Ûáï̀h́½|y¥\Æâ+flÆùƯ°6ÙºÖ,®¥X2ô°æ5&¬/é3–íb™K¶°8cé6ÖdxUÖ”­eaM³ï‘IÔưØ{³yØ2±ŸVû°å«Ư#,/¹tB!̀N(¸̉É ;9 æœ"ÎÖºk}ºÜx5°(cÉ–÷V‹—Ï«̣Ϭ*Y«–µÍÖ¦x[¤Ó¼¥Ó6iÛ0/ỹS»ÔÙ¥*]ÚS]Æ3½Aø¨jr¾kmOïªÆ›±¸‹¥O±¼œÉXÔÅ’–ma5ë •¬ª&ë³µím)éQ*ëHsÚ̉¾ç”e³6l¥ .̣Ù¶rĐf5XÙ³æB ¶¥Îj`ׯJÖ-&œƠÀ]5˜"!æMI¡ăB ‰æ:]»̀jàJ ³“䲕uœƠ`|׺P·Ô`² ·±&ë&“óßP/tTl—Y7ÓœBÇÔ É2Ñ•L¨ÈƯ¸rP,dkÛµ6Åâe +ç¿Ö]¬ânhóÊjĐ²‡E…tK ”Ơ@®•¬[j ¬ꪡ(5É’¶” 5¤đ=wPVUj(j6R­̀U_m]¨¡UñQ®ø¨ªøj¬BM^¹₫#E]¬ânhƠ”ë?ªê¿jZåä3wCI©KUÜÔ¿ r)HU)x,µSá]fỀ*ææ#9qµ“,“ªb<ÂNNZ˜Ê¥ ªJÁÚº‰T-,›±L‹N°á¥3–êaÍU_ÂâÖQ Êû.–-°jP̃e,îbªafYa™ŒE],Y`ÙÖQ Ê…–sVCÊùŒe»X¦À’-,ÎXº‹uz!̀,+,ÊXƯL·¾Àj\Êæ¼·Ư¼·\`µ̣̃æ¼·Ư¼·ẼÛṼÛœ÷¶›÷\ä½må½ÍyÏƯ¼ç"ïm+ï9ç=?“÷“5·2s¦3µÂt®˜ÓƒđHl:m«ƒPÙÚKÖ€ ½ß9Lù‹@(}êÂgY´Rå̉d©ÛsYÔNó¢+¬¤ªp¯î6·_+%å¿c¼¶ëå»áú)ṽÜ®nÎ@ô·€–7Ăa)»ûĂ×!MqúߘgïưùxXフqús÷åŒù†ơÇ>|½ÎÔAÀVëơĂfûy7î\#äú?̃?́»ëƯmBE–ŸSÇü:Û”ÿö‹ă&ư¸YŸ§ï@ă¿¦§JOJO¦yèơ}¼ö˜Êª¬2°Ybùj înâƒdáùÛÔ/(s|3úc6±:̃(7ĂÏ»5 >î‡yöøö§ƠĂí^\]‰åÛÇ;P”cûWñâĂå…X¾Ë×âåKß¡ư€¶àÔ‰âSüˆ,ÿ‰¤ endstream endobj 519 0 obj << /Type /XRef /Index [0 520] /Size 520 /W [1 3 1] /Root 517 0 R /Info 518 0 R /ID [<30891205CA64AB72A2B599ADF29590EE> <30891205CA64AB72A2B599ADF29590EE>] /Length 1208 /Filter /FlateDecode >> stream xÚ%•ËoUU‡÷º·Ú-(}@¡Pº¡J¡/ -…¾ß-m¡-T¬Ctî`b8X‰G:U&Ɖ€Lit1Đ˜˜hbâ#qàÈœ¤̃ïçäË₫{î¹ç®ơíµSJÍû–R}²Tú´‚ê¥TJ©Æ@%|Q‰«`ĂRÇ¿Où´ J–jFtm›X €Pe©îO=ï·<;ă•UN)µ́Wö¹Vƒ#à(¨ à8Á pœMà4h- ´3à,hçÀyĐ.€‹ \] ƒËà è=à*¸®ƒ^pô›àè` apŒ€;à.cà“` Lƒ ÖRĂsƠô>å|Ö(çIp4ƒ6pœÀ%Đ2¸ zÀUp èÍ€Y0æÁXK`¬€U°‚u°6Á#đlỴLXjûBÿc‡ßí7Á-₫‘ VÑ̀ g¼FTÁ׉*âxƒHa½¢mÏ<ÙkTÜK L¤ ^ª‰üc¬ădA·ü¨!̉A¯uDºê(êGˆtÚñÔë‰tß‘Ơ1Â1Ö‰Xâhë4ª Î»̃DÄ&G`§y†9{+땆˜èǿíD́t¤öóDŒùvz^`±£·w1ÛqÜñ ĐJ· CÁp=¯›¨¯éǤ`§¸̃ô:Q¿¡¿uƒÈrƠ€6z!¬ŸÈÎsUw¨·W+†‰́PWóFˆú«tÚïÙÉÎ₫đ1¢êÂ&ñq";̃ïƒDqL™ Ị̂i¢*̃>Kd‚8ûúK×fxƒg¬Àœ¥?é„Ëx•-}¹¥kK¹2JåK/çô>°B®¼ T¦uKß|¬[(]Ƶ¬yª›±)«Îª^‡̣ [¡ ÑƠ ÓA÷#KKKB8‚nnZZFF2„dÀƒ`ô‡R0ơ-‚R€Y¸Œ¹àÈ &\ E0Ü‚Ă+!:#-!˜fÁ ²à@ fXàF0¾‚£-˜\ÁÑ ­àœ |‰>À¨ 8H2bÛ̉«fƠeṔX·̣„Ü æU R0ª_‡b J O0›BG4æDÅ’?~Đ&Íú¿ƠjÊlµJ«i³7µ1{÷-­fÍ~Û×jÎJư-ZÍ[i¯Z«+½ÿÿw­ôÉZ-Yée—VËV®û^«@ÏcÏÊk¿s­àM R̃´ĐåM Đ  Ù9eåƠ¿“•·»̉X%nê endstream endobj startxref 219687 %%EOF sockets-1.5.0/doc/sockets.qch0000644000000000000000000024000015123475646013044 0ustar00SQLite format 3@ .~Z  o–«A $ § › 3 ½ ? É oX''qtableMetaDataTableMetaDataTableCREATE TABLE MetaDataTable(Name Text, Value BLOB )t ##/tableFolderTableFolderTableCREATE TABLE FolderTable(Id INTEGER PRIMARY KEY, Name Text, NamespaceID INTEGER )| ''7tableFileNameTableFileNameTable CREATE TABLE FileNameTable (FolderId INTEGER, Name TEXT, FileId INTEGER, Title TEXT )t ++tableFileFilterTableFileFilterTable CREATE TABLE FileFilterTable (FilterAttributeId INTEGER, FileId INTEGER )f '' tableFileDataTableFileDataTable CREATE TABLE FileDataTable (Id INTEGER PRIMARY KEY, Data BLOB ) 77#tableFileAttributeSetTableFileAttributeSetTable CREATE TABLE FileAttributeSetTable (Id INTEGER, FilterAttributeId INTEGER )33/tableContentsFilterTableContentsFilterTable CREATE TABLE ContentsFilterTable (FilterAttributeId INTEGER, ContentsId INTEGER ){''5tableContentsTableContentsTableCREATE TABLE ContentsTable (Id INTEGER PRIMARY KEY, NamespaceId INTEGER, Data BLOB )x--#tableIndexFilterTableIndexFilterTableCREATE TABLE IndexFilterTable (FilterAttributeId INTEGER, IndexId INTEGER ) !!‚ tableIndexTableIndexTableCREATE TABLE IndexTable (Id INTEGER PRIMARY KEY, Name TEXT, Identifier TEXT, NamespaceId INTEGER, FileId INTEGER, Anchor TEXT )h##tableFilterTableFilterTableCREATE TABLE FilterTable (NameId INTEGER, FilterAttributeId INTEGER )l++tableFilterNameTableFilterNameTableCREATE TABLE FilterNameTable (Id INTEGER PRIMARY KEY, Name TEXT ){55tableFilterAttributeTableFilterAttributeTableCREATE TABLE FilterAttributeTable (Id INTEGER PRIMARY KEY, Name TEXT )h)) tableNamespaceTableNamespaceTableCREATE TABLE NamespaceTable (Id INTEGER PRIMARY KEY,Name TEXT ) ăă=octave.community.sockets    5'êØÀ¢‚^@*₫èÖÀ¢ˆr# ư á Ă § ‡ <  ü ̃ ´ ;  ÷ Ó † j J . Ù · ‘ k E  ̀ ¦ „ ` <Ù±—mK'"5# +AI_V4MAPPEDAI_005fV4MAPPED 4! )AI_PASSIVEAI_005fPASSIVE(3) 1AI_NUMERICSERVAI_005fNUMERICSERV2 !AI_ALLAI_005fALL&1' /AI_ADDRCONFIGAI_005fADDRCONFIGa0O }Socket getaddrinfo flag constantsSocket-constants-_002d-Socket-getaddrinfo-flag-constants"/# +IPPROTO_UDPIPPROTO_005fUDP".# +IPPROTO_TCPIPPROTO_005fTCP -! )IPPROTO_IPIPPROTO_005fIP$,% -IPPROTO_ICMPIPPROTO_005fICMPQ+? mSocket protocol constantsSocket-constants-_002d-Socket-protocol-constants$*% -SO_REUSEADDRSO_005fREUSEADDR$)% -SO_KEEPALIVESO_005fKEEPALIVE$(% -SO_DONTROUTESO_005fDONTROUTE$'% -SO_BROADCASTSO_005fBROADCAST &! )SOL_SOCKETSOL_005fSOCKETS%= sSet/getsockopt constantsSocket-constants-_002d-Set_002fgetsockopt-constants$ #SHUT_WRSHUT_005fWR# 'SHUT_RDWRSHUT_005fRDWR" #SHUT_RDSHUT_005fRDK!9 gShutdown how constantsSocket-constants-_002d-Shutdown-how-constants" # +MSG_WAITALLMSG_005fWAITALL %MSG_PEEKMSG_005fPEEK$% -MSG_DONTWAITMSG_005fDONTWAITS= sSend/Recv Flag constantsSocket-constants-_002d-Send_002fRecv-Flag-constants"# +SOCK_STREAMSOCK_005fSTREAM() 1SOCK_SEQPACKETSOCK_005fSEQPACKET %SOCK_RDMSOCK_005fRDM %SOCK_RAWSOCK_005fRAW ! )SOCK_DGRAMSOCK_005fDGRAMI7 eSocket Type constantsSocket-constants-_002d-Socket-Type-constants 'AF_UNSPECAF_005fUNSPEC #AF_UNIXAF_005fUNIX %AF_LOCALAF_005fLOCAL #AF_INETAF_005fINET$% -AF_APPLETALKAF_005fAPPLETALKM; iDomain family constantsSocket-constants-_002d-Domain-family-constants socketsocket shutdownshutdown! !setsockoptsetsockopt  sendtosendto  sendsend  selectselect  recvfromrecvfrom  recvrecv listenlisten! !getsockoptgetsockopt"' 'gethostbynamegethostbyname# #getaddrinfogetaddrinfo! !disconnectdisconnect connectconnect bindbind acceptaccept  ¦¦¶O í sockets.htmlpOctave Sockets - Socket functions for GNU octave. ManualFsockets.html#Installing-and-loading01 Installing and loadingDsockets.html#Online-Direct-install21.1 Online Direct installBsockets.html#Off_002dline-install(1.2 Off-line install(sockets.html#Loading1.3 LoadingBsockets.html#Basic-Usage-Overview,2 Basic Usage Overview>sockets.html#Function-Reference(3 Function Reference<sockets.html#Sockets-functions*3.1 Sockets functions&sockets.html#accept3.1.1 accept"sockets.html#bind3.1.2 bind(sockets.html#connect3.1.3 connect.sockets.html#disconnect 3.1.4 disconnect0sockets.html#getaddrinfo"3.1.5 getaddrinfo4sockets.html#gethostbyname&3.1.6 gethostbyname.sockets.html#getsockopt 3.1.7 getsockopt&sockets.html#listen3.1.8 listen"sockets.html#recv3.1.9 recv*sockets.html#recvfrom3.1.10 recvfrom&sockets.html#select3.1.11 select"sockets.html#send3.1.12 send&sockets.html#sendto3.1.13 sendto.sockets.html#setsockopt"3.1.14 setsockopt*sockets.html#shutdown3.1.15 shutdown&sockets.html#socket3.1.16 socket:sockets.html#Socket-constants(3.2 Socket constantsvsockets.html#Socket-constants-_002d-Domain-family-constants:3.2.1 Domain family constants:sockets.html#AF_005fAPPLETALK(3.2.1.1 AF_APPLETALK0sockets.html#AF_005fINET3.2.1.2 AF_INET2sockets.html#AF_005fLOCAL 3.2.1.3 AF_LOCAL0sockets.html#AF_005fUNIX3   RûzR‚%„Nßxœ½‘MnÂ0…÷>Å“P7($Aü6,«r'ÄVÛrL ­à,=KOV™HP•J́X̀ffô¾7󜧔z̃:M RI\OÖỤ́0©¸ Ểă“Ù%ï(ÏqBiÅúe U#:«¹W$$µ„qÆ€Êjë Œ–‹U¹mPZ/ÈO₫ pd̀]ÍüæÍpú₫*yơÖx»3b¼ƒ½®_@µ¨—tvà¸Ê4̣tAíx©)­¸vWÉ?-0u}„(Ñó|=_ WܶÛ×ÙË2÷JY`çOv¼"ÁMÕg^|Ï]+j³l C{̣1 ej‹† yƒCºø¡̃ÿ{í#¢œ8Oµơ-ăsư'́;œi‚¹Tr*xœí}ioI²à÷úù8@¯ ’î™ym™-Ñ6·eQCRí×xû`$«’d­‹•œ:DsûßqäQÅâ!YênOÏÓ‹ÅÈŒ̀Èȸắ?.†ç“_®ûbQ,“npÆÿüG§#Î3% ‰éF¼»ºơ%NgZüåäE[,b•ÿxzº^¯Oæiy¢³ùi®gÅZfê´ 7OE§•ŒºÁÙRÖQ/ăÛ×­s*-:“ÍJµDHŸ^· ơ¥8…Y¼áBf¹*^—Ŭó×V78+â"QƯaXÈ[%Æ:ü¬\tø/1+Ó°ˆu‹™ÎpÊß<9;¥<‹T.ƠëV¤̣0‹Wđ oø;ou+P?«ÍZgQ₫€ 3•ë2 U§¨®T¤Ăr©̉¢özçEOËbóDOeR{÷JU& y/.ågÛW{ơ6Vë•Î ïÍu‹×‘ºCƠÁí8‹X&<”‰zư¼kÄég±ÈỐuëO½j‰L%¯[y!î̀ë<ïV_¤‘úÂ/Çô7¿LßÔ^÷Ï?1Iåü«Đ~4£Èi¢„ ûâÖ˜y!“$Nç™FDË(Nç .U_ oæM!ÓH˜7»ÁY^l%`¯˜˜ĂÇùN''y¹\ÊlÓITQ¨¬³Êâ´@́Ä?áåN¤BIØ»EªSơÿ‚(¾= UZ¨Œ_‘I/›Då ¥€«ÄÅÔ›ƒ9!z ‚³Sb½ÁÙTG‘Èt₫º¥RüÎÿßYß0‘y₫ºUèU'Q·*é¨/pBZ"́é\<÷^£oi‘é¨Ä¥iuưOg§‹çƯàlƠ,ï+´N>Ç…ˆs!E® 8‹4m‘鲈Så˜!±Íà́tƠ­Î1SóX§wºa"•ăs}a^7ïáÆáƯbg§‹µAB+8+‡xm [Ư@ˆ³$îIœ¼°‹‹́g2Ư碙©œJäĐ,¶æ1L“8U‹8Saщ ¸Fó·Ưç'Ï}%è+Á_Á4ÎN“¸y¨Ù́Ó³g/"¹5RÓ—Ưç'/Äp6ëàPÇŒqY[ÇK»p'/Å¥[+à́´L܇*¬72ĂÎM.çª3¼UÜnpă—ƯŸ |.̀óÊ€Ơ1̣̃ữ©™ÊT*;BĂWƯ—Â<öé½·\ÇÊvèíoº/OÛjóĐG ¾5¼ Cµ*́˜ü:y.èSu«· Lă4²¿Çøë₫>đÛP§© Ưđæ3Bx)øă Qœ×áxÔ÷Â=9m® EÊUœÿ áư ¼G‡.t^L7pû ½§ôÏ¢̣đ0XàÇÚÛ<ïü‹pO@ƒÛM¥D(ôé„L…·ö÷øưŸ₫>â·³L/+¿ÇDˆÏ„ypP®Ÿ ø#y.èăA9ăúù øq¡+?/˜d¿ôñ ˆ­}Íkûúü{‘»±ù¢,"½v[k¨„yp²†>?³hP»|®¾ƒïÈ ‰ÂA…íy_t_¼0˜}úULïB/eœ² |Ä:x)îüLđä¹ ¯}Ư0Ó#çº5Û̃ÛOÏư0ë]__ö'½ËŸ́4·¾ ‰œ<½·Ÿ́Óú¾î‚?¸êOê ñC}PáÁ±/‡ç½Ë:DzÈ _H|r,̀›«ÁƠAâ3†ø=@„Ç_÷Ï·AâSú…G[‡¤J㻨,'ÇÓYóp2ö À—HcăáùOˆùÅ»Q`ơ1MdxÏ®³1ê}܆ ê ‚:ê}¼̀‹†¹ÂC†ù’a^Üaă₫ß®{ç?y‡¡á+†ÿ=Á·Ïï0ÊdÔoZh~Îđ`øøđδ§̉j6Rámçm"çw Á}¿ÅɽđÎ)|/àû$ÆăwDtĂ«ÉÇ̃ÀmÄÖ4““ç¾1On‚sƯïÿ´2Ü &Đ»¼Ük3ä—™̃ycùÆî,ôú[Úü+œĐ÷Â|+zư|åưÍ„¥›Ÿ÷ŒFG‡ûñÇQÈ#ô…úqt<Ø& äK¹ đđY,đ89ü.gqÏoqb?ˆ±*NƯ÷z1\_ÖXbå1Í/†ËOốVˆ̃Œ†½‹ó̃؇]û‚¡ĂñÉ>=>p…Ñđf̉¯Ăw_0|¸,>Ù§ÇÂÿ©ß¿î]~̃‚ï¾`øpY|²O…?êߌû½‹‹Q¾û‚áĂeñÉ>½§¤²Êt¡CÜYZiø!ÎëÏFb1/< q®¯GĂ -Çàüõ3ÜƠ¿ ©œ<æxzp *`v@·°_8Øwƒ<9o ÏöK {r~7à7ÍÀá9ÿ̃¿¹Ø~$ÙxæÎ́n’ÆA8Í¿2̣^³‡•;z̉§..FçĂ«·ƒwN-Øú†&ªÖà“{|Xë`@„à=b /è¶\° ÚƠ͇₫hp>î~®Cơ¿bè/º÷üØQ®{ă±Ïæjú÷Ÿ ùçï?ô®¯ûuĐö9Ă₫`›‡µjR̃c_~wuÓ!çj̉¹.§Iv.ăP¥¹³ƠëƠÍ×½ƠJ¥QüEôĐïÁ?ô3Á?ÛcgfGéN·i98ïà́4oƯ?‹¬[ơ,ä ”ÛΠ]î‹Ï…~½ïçû<à9“œḉÄA¥g»&ƒ§v—÷iYæ…˜Z§ƒṕb¡Rœ€D¡áû2WÑ 9 ÎVƯA!B™V§âLN§™™¨ 3n–­î»«›³Sø¦Ë~,¡3%Ù08²§¿3ÓÙ\µ5‚–©ĐÆA²Ô‘·±R€@mæ)³©L7I@·&"6U7†J¬T&” GO?Wy®‰8:‹TKTæJÄÏ@&q±1sñh‰]§ ´´Ăœ-^Ö~¼×1µxyµđpv¤’³U÷c\,`µcp©§dLÙ¥,oeœ€Ă° iii%ĂÏàÚÚ7Ø̃Àß^Qæ@̃đă™N½†O¡^.èÖq±8ˆ~Ü^[ö́Ă­2U{Zqç·º«Ïs3QÁscŸ1ÀÍT—™!¤D*/€•(™«Hܪ i@ÏCgë8I` <ºỐ’`Nsa4º wĐE“ñh’h¨BE 1Û/“LÉhăá̃fäñga™e*-øđël#Öp³2Măt¹íDy;)îwI_LXç'?œ<;)dv2ÿGÊîB—̃5ÓDøØ­¿¬\g«îHÍe%*Ï ‰/ÁuÁ§Ø]T ôĐ̃ËóvP4đe>+nû`ưà¡Ù½Ø·÷Nïu?˜³âDUÂ8J¸hv½ï-^Áb—¯₫X±¢y¡"¯qXôå  ˜ÍÇđ¹\äñ2N$’l5è‘̀"^†ø?‰Óy[äÚ ̀Ëp!dÎ/·ÍƠFx[j‹uJ¨"2S½» O³l¹Öe1» ù@ × >É\Ä31U@”«LÏ3¹\’8r̃pµß…ÿ$LZnƯn€N.S/ᲑâưäĂ¥XÁ¾6¹xÍ?x®¢¶o¿n‹gO_ñLä⻤x%B¨,Ó™x̣ƯßK]¼:G\S]ˆZ!̣ÁÑ×O¾gAú UdeXđoáưƠôï\ëy¢NB½¬>‡ĐHóä¯<#ÆïĨèéWNđO£kV*¿/€¦·̃÷{âT¼ŸL®OŸŸ<û?ÙÿIáÿDđ'$ÉB© ?ÿµẸ?â5:Á΋gÏx̃‘xưZt×çÙÇEQ!$†₫ÊÍĐD"MáXq*åR¦ø;$E ˆB{ŸDOù'†ø¸'Ọ§¯‚:ß̣yËQL¥)Úf'KÙ~Jspά¤ifâN9K ÉÆ F˜¸ˆC½tü&S‚B˜§£­½~å3ߣnƠ†` ¦ûµù]\—æĐ¡c¯à†ñé2ög_Nw#`"‹‚³Å÷Û?¨G-¾?nZ*ÏÅZ}fq–Cˆî 0g©€Øi¢C°₫œE…y­úH–ÛÀañỊ̂•L-ÊBÍu¶đ­.È&¸÷†t~g§đz÷,MĐDQáƯÿ>»•ö¾•Y«&±J‹³Ó[™uÛbëk1‚/ÿG¼>;¨]qF±½>x$2+HßwÅÖ,àsGfsŒHÏ[Ư'[æ4ÚSë́4*`Ơ¢îÙªÛCđ"NC½$ñƠê_:ùJ…ñ,VF’qê.ư.'Ư­ñ·…½ª·—€gtÀLƠâ+8çç"SE™¥¬ëï_c™F̀sÆV.?V›%_-øÜ¡0V¨¡WW”@·î´=ÀGáf¤ ÙY™ •‰H2Nr§fE°¸I³Æµï0Q˜Ư¾£dÂï=HñQ€¾ÿ!ÚEç„̃×SyĂ LÆ{›8 ½‡† -àÇ‚~},é*¿ áØ¨È}´ă^K>î£PCx"²x> å*»U™cßtt^‘¨Éđóü¾è™àm,‘0C;8E±^Äá‚TL¬—ôûÀ 0‹UåVáu~XzÚÔǹ#¸–¢(kBy-À]DÀ¢*§ÉÈ›…öH×p  –ù´– ##sockets.csssockets.cssC %osockets.htmlOctave Sockets - Socket functions for GNU octave. ÷÷ doc îî!qchVersion1.0ôÆ@ƯË*\ñ„͉s•=ÅAx <_°Ă4ºPåù¬Lœ2Pí•“²(s¸…₫¡²£ï K~GŸư¯8ú~Lô¾Ó_•>–øĐ…¸ ø?’ÜtQ׸¯:́'B fE¶ëÄƠ0"â"RÍųv ®Öq®Ú".́çÙÆàzX£ ó»,ÿ{©_O%IÄ,Lt®Œ¼6‹£Û¬ Y×I +Å"Ω¤Đ¾éưúK­¿´kaûÇ̉v₫£·ïư~`uc‹Œ̀@™Êˤ07ÈaÅ¢²t_qJ€¿S~Ăk3w¿ˆÓbßQ{§ ´â€¢­?—+ä©R˜ÑOyGó#>22ËälÉ>ºBswQ}ơH‘âM( è>2±ä·2)•75Ăƒó›¾¢yçX˜&jgLÙs$̀{Ê`F{pA€–êà‚×+̣ ̉,uª„ÎÄRgêßdp72€è¼™x'„Œ1Æ'ß̃‘ĂÂU…_5 X¦TƠr¹öƯ@[9^w¸ƒü1ërc<ú=¯˜»̃ạ̊—îÁî Æ[„®1¸6—̉ŒeHî̃x«3ă.ÙïôÎ3]®ZƯĂ˜ ÊÆ¼ŸèP&đØø ¾ËzYöJ<ñ—“g'ÏNẂđñàñ—÷±ŒMiÛw^ª)Œw8,úcưèÖapÎ́–•Pï<̃:́¯æ£ØPÇ«|ü|WO›»Uăñ§Û«Đ>yä®]nvÈ-ë¾­qrî:ׯÚDûc»—NƯ¤ÖÔfçX\¶‡2e kÔë±»<çqØQ;Ÿƒˆy~îˆ pd_‰ ·:ˆßaè¸đÁ·¾ê`t¯¹Ñq¡ /}=&Ô8é .•JwƆ9ˆ¼vT™ËûđÉ]öqÉû4vúJ¹cÈ;óÇz'¨\ou4µaöm±ƒoª­ö¡:ˆ“ߢêÎáñơ>>6ḈßëîØ\³;£‹Ø¯ëÖAœ¶rƯ3o¸ƒøÙwKnüuÅZO°»ăÇF_|<₫¹·ÅØ^6úUÍɾ–¡îüÎ|u»¥ÙØîvv,BÛCí#Œ{Swµ©ÚÀü~kwņ8„¼ơƠØØ^nªµy»+Nv Chñ‹wVwôÛ{JïƠoîkOçAï.ïøMếs¥ƯÑǿåÅù₫7Lµ7̃A\*móî r>G_ÑQøx=ûîŒÍQ¸XLăÜ×úoÿù5M¿úÜ7ø=tj³Á[^ïCx¼„Tf¿€dà…äWosx¯zÄă1«µ77Æ×bç5Y<ˆ]½ÿâ±ó†:€}ók±óZ<Ä®̃ưñØyCÀξùµØy &bWï=yǴ¼¡`gß|l»NS?Ë#l;÷jƒù06¦¡ï̀k·;gØûí¦Çb³=Ô¾½÷Ǹ7e×;wÄ­ÚÔó^˜‹×Ă`…MC¢Uë'z¼p c›œ? fرô fµf¦÷Á :³›‹ëÇæBûÚ¢Á¤«êĂp§}S¹»·n»ëÊhhƠz´×a{°½”ûûS¼®°Qs cïÓ!ăÁưZ,*]hb³Ư öXU†;€÷î×bi;áİÚ$÷ØÙa`Æï}-V® ïA´jưyèbæEÂ,hä¾;y±ä¾ Û6¿~Ç)ó>½²§Yđ±ÍíDµ†T´Ø˜å8ª Çj“Åó… ­6ƯRĐ2µƠư™[ƒ¾l‹ÿ)₫w™*è'ö—¦µâaµ–qü´V¨ôÜŒ-¾ƒi¼B âm¦ ă¬XCXÏ[]¦&®´Å O„Cª̀ÓyQ«OOgù́DgóÓV·ö€PëߪlÅ—ăZä.c˜uvXm0d)!_dZLMe/áËXqÏÈ8Úéă•ÚbZ"\ÈtQVqAƠ S¢îd«Á™ øYP¹ÚëLÉ%&¹˜¿(´Ç¤Ù́¦ ³L©6b’¨Y!̀4g: r³˜€"̣Ÿc,99k}®e”óOs„Ê¡ûÀ€U)ê!v̀>ç¦aYÓcdèÓD-sjâB äơ¼pf̃¥J—y²4Xà±.s;Z­—¸¢qØÀ¶³¢Ø–3ÇÓjº†CÙ2 ¶qá~Ü–gÆiGH}˶I±ĐåÓwƒ¥LË™ÄZ[™a¹FcaàÜ´ —É.7(¼’E )&8ñ’p¤ OçƠ­ñ®—†NÜ/È7y¡ _Z(V Îf©ă#S8:: Ë̀–È‘™’9À'€ ±xdqBf¥R˜À9b ·JVH—;â K`·”T €+‚D‹ EIio[‘ª&C$}‘É4ŸQ½?ÉÚ™ô¢R§—ºÁnñâËèÁL†J°ƯÓr®̃îWØÆKÔm®4È]–1!˜i Đ^ÀÛ‹5nU¹b•A{ J¾qj¨`¦dauIĐÈ́,Èècgà2ÅYXÍ,(T’‹̉z˜µ?a’fêñ‘àĬ2 đ©ÈØ^ ÇÏ‘3Ó2# „ën s̉LQÓƠâ6Vk̃)c¥îF[s{²ÊTNâ61̉¢à¼Pº ¨À¥» e°TiÙ&­¸ˆ 0$WBHK¥P÷¦›Å…Ê Ü’ñ¥$q¥„1©îç º[ă.“‡§Ö‚˜96ÈlŒ¤%°µ©¾^ú7 ²!>Î₫!'=¬p÷åpú̃n(wAFă¹À„́} "¾̀"10+\‡ç­=ibû”À¬g³Ø 7p"£T2¸„ă­çiüj—Œ/äbª£ ‹ÚfơCIâµ(÷gÑ "ëËDZ3'¶•Id:/ålO)M/³i,L™̀KÈdw\d×̀¢ ˆª@kVƠDqO3 LÓ]¶ooàưN6âsn/)¾û{÷ă[@b½Đ‰âÓóD>%c8₫Ú–ÂNÁÓ’ V2ü,çt•|ÿWgâ\/W:µ> «z‚ïDYĐë÷:̣‰éS­ÀÁF%qkVvÜ„Yñ–E°5®Æ’Y1XèHWÛô„;H““i`ßå›/ߺ¶][tc9;.¬ËŒTX› ï ÓaêKÑ6t,–øFQçÅ+<ù¬²T%p‡¤‘^ 2Đ2åZèô©5qY†¦7Ô’Å—ƒ'1Äæ)È„,]U ÉÊ”JỬ '*3ÊV@»ó§Đ{©Đî¨ÓQ\eXƯ*ieZ±yä{®32¿bYyb] œ)®‚Ç«–$AÍ`é)ï¤`œ%SÖŒ&îÇ{à)Î{¤yƒÉ´V\q§Ó€ Œ‹è[̉ kÖNt9â½^ƒqÛ[GZÑ)0̉€eQÔÏ5®u]£/´&Å‚¿H6­‚ă¿!o®cà‹Ăq Ê,)w¨Nnà~\=¹4g6AZ;xÓVÂđd«Îbågïr‚àщ67~É^|re¨úù#O\$³lät…æ‘àJL6A§`̉̀Ë©]#|X…Æœ!\PßøÈ&Óv`nmp}¥E¼a«%Â_¦ÆX@ƯÊ f`È™ªb­Û]ßSfE^ỸʹiZ\rÅøäd•chÏĐxdÊœ0Nk4/"–¤UnO i¸#&T=ºu&If1YĂÇÑ 1od‡âÚ*KlđèA§̣ ̀Ñ5ÈnT߃¿6̣#Ø}à’Ụ́\— ŹAÍ2u«I£2b$јç¢À³ÁëK,ƒâ›`Đ˜‡1ˆ̀r6‹Áà„>2Mâe 0ªĂu¶uTÖ¹uY@ܤ¬LS¼c_ïE=œ?O7ƠåÀË3¦ư$Hm*n[äXxS¢u2.Ê‚Ơ¼Ÿ ÁË“¨ª’fñîÍÄLÆä!é Î̀­LèZÏƯ’N7U…µÚ¡Äô%ú+`uX!å»27Ïñi<$Ü·£zû•CßuX;̃Ă€]ƒyñh!ÖHëf2¬3ÔÆÖÖíÉt–k æÏzær(†ƒ₫2T)«B³ú&eN–Q±Ñ%rz^%ö!‹`&Căœ‘›#ú-kµŸ±^‚-Î:&ÈúYÓa¨…+hQ~–Å$ÚñÍáØ̃qv÷>È’\æÖ|äO²¾gÀ̀­C=,••Đ)ítqIfm>ăøˆŒ$Æ4ËSiăaFÜÈ^́¹–tlŒ‚l†́•EÚµh¨È!®ËÂxˆÀ“©Ú¯E¼¢ÅÜè̉Ñë¹]<6ÉØˆ‰0ÎÂr ¨ •¨ PŒưÚç+ÄiÄT©Yˆ1›*Å*KƠàŸW‚ĂƯÄógơ]‰Á2”B0@6ö:g½vN©ß)EÖ‚ä·°d½´ˆ;çˆèaK8¦€̣•®́(Ü»IÏH©¥\ÍÄÔÿE¡ÂEª=‡K'X*‰i·f)+‘k1+“Yœ$HLÓ$ó‘á÷AÛJTđü¹¹ª>®‡G)Àí²2̉«-âÅ3q¡B…etŸÿç₫ZÇËt64_º1ôËδœVÖ=q‡¼ËBGùE•“’o-a5cv?ë5UöélGÁÖX•…fP£°'Tưiœóê»U_TÆHȰ.Oä66üAo^º(9Đ!LÀƠ ˜` TÁ^së'd́ŒV.Ơ”M’åơL¨Ø.j¦rœ¸ê¢1‰3mbäψàPư%j¦…e,ï¼²[‡ÆđŸMỖ9ÙÿÂâ=oŒ́óŒ‡/Ñd£1 đLøéF@?¤rÙ̀ÜÓ|‡%¹×Ñßïloài¶‘/€ôx=8q¯…îUđY©́&˜ư%9ơÑ<ÉJ”Uq §t€QÇ6·ÖÓ±Á@†¡ÎŒ`Ï<ë/ÎWDd홯¢œæXD ™ËÆ )âb+I/T¦Ùp'$J¶l÷–Ơßî)vÁXf†ưZ4ÿ}óÚú;ƒ"ˆ9)‡bQ̣r…Ơ¼á^5&Nâ‚€öPà##²¬ư³  h EßÁ±%ñ²ÈR7ăY=?.\7û#¶ư» OÄî.³r†Ùé‰ƯX3(r¡)Ó̃è…R…¯[̉ºIŸ7éİ*/3rȳQµ‘mD*Äí‡ I y¼…x¼HhSµ»r¡(̀ÂDQMê '_p¥SDïÚĂĂbyÀZ)·‰œăÅÜ †™½€óÆö—Úa ̉· ‚« &3R3̃=igV)÷́† xAPáÑëˆK²h±̉y®̣Ü–U¶̃ÆÊµD†D!¾ÑöqM€đXLD«(bIí€Ù ÎÔ¿‹Xäˆ[ÔƒÛ"Ss™E D8OÑm›€7Àà‰‘v•¹RµK`5Ï_7V/¸Vn8.£bº•I dÇ2 GB8N+艈LßDÿ¡ÁÍÛ½wå.d¾Ç§”·‰¥‘lN`§_é, Ûµ*×\}ßvÎ'ˆ" vÀ7=ºµ­¡U)”î)>‹1=ƠÜú ÇÖK+oTå0"Zx³x́„ŒdL€Ñ•µªªñ •kĐ Ṛ¡đU !ªKÈHªB½œ¢ÿÁ8ˆ1‰Ä”%¸àʱ~„6xóAŸ₫­NÊ¥ậă…Îäo¤7Öˆ o>5Fi9ŸE;vlfí– »}W¿‹ÀØvQÔ£‹™ÂñtV¾ôüª LƠFă"±ÎÅL°²H:xÚRT›6Ra±sG(”gZaDU¹Ăù~”aí¹ˆ¯tÚá;ø­Î–».ઙ¦Ám¯Ma®Í€¹W.¾ÇÍøaçíé<™b)ĂEœªĂ¡I»Ñ2·=XÍï 3L•»×rsÏ{øÜÍ­ê!àVzS‘ư½‹M28‡Oœ}Ưû¶ÎŸ¶Q¶\®dë×ägñƒ¤ˆÊŒ,|2a™ƒ]/ˆÆ©g¢-TF1›îú›¡*Å:{B |Ùx_Y1 Œ@Tb£dFvfï•Ü·‡,¢®ènË(\ŸÄ]É̉EV˜>Èàw đyïç‹ÅeØE‹áÜ|¾kß8¦ĂkÂ₫p$\åÁ+hûèmGI°kÛÛÆƯ‹̣ª©3úO)n]É\£—29ĂÆŒ*™ïh! 3+J#Å@đ:ñÓÀÄ}í²Æ“ˆ.M˜ yLq÷SÍÊK©z\¶ª¥ú»Ä‘-̃₫TÉăcoÙRÖ́-`áH&Ă,Qàˆó€íWdœÖa(sÑH‘…øđ¤€¹‚ÂjÑ?ÂvlOQ§L7j*øLÔµO›#üyz̀1²ö†”n9^tr¡±n•ÈPOê ´O\4g÷BØw̉¾éè ¥ ÛÊDÙ‡80íw`Úƒđ¾SˆX¨ä‘8êj¾¦&{Ëbû3ó T°Åó-êlï¦f œ è°Æ3,™^¢~B&%:Ưpâ;Đæ)û•ˆUå·Ô¸&œ!Ư»TII©aæd8Cs¤ê‹5…ù˜å!r)~-f1{%›½f£&̣ă=Ặ¿lsZL0`K( _*u9=¤Wzîß*·>ñ %Ov^ÑócΕú_)•u Ư)Í5úk ñh' Ç¢ÂèÛ¸ îdo¤%Sa¦ÄT·œ!“çMa÷·‰Ëđy <;óâÏ‘ÅÓSH À«Ag¾‘̉›%èàæđm1ûp"¸3Œ±¤ù$Á9¨¸ơ7mw6§ÖEUư1[ ®9J lù zÁ]hEû¼zϺPɤ7suÚÀî̃n¢´‚RqIT–£ *ÊÊ1@&– ˆÎ¼Ü¨>^h ]æj¡“ÈøÆrwÏ_µơ´ăƠ›Dñêl¥3†©DB”$èĐE4„”Ï"Z¹EPG¹-"]N‹Y™`hWîü™ÊurK›0“· vÍH¦s“lUöÂq́„R™÷h9m£~U–«!¤¤i”K4Å êÔ;InƠ‚±Vªy¸©Kû©6Ô#ù&—Đ\(PưUÈ‚2såö×_À+€·̉ư ] I-̣Ä1ˆƒªl¨oAuæÙ8_¤ ‚—$œHwzT‚|ŒK…¦g;M·L4đDd3éH0ô†¦Ï´€,Å¡ví—zV€b‰ˆ$)đƯéæ÷O¤ú¸TÅBGy¶0T¸Úœ)È™â³ÚĐzߌƯ†]##7YoÀ;)’I5¤ñmÛ>L\!L00d¦₫{Ê'ÎwKv*đ§G ¢%„\ªúEV€´ˆÓ8·âLg‡†ó_• ™YS&ç  ƒáN+ö¨N©ü̉Bo–2̣X³¯.Ưâ´¾Ó\ ¬ƠÁ˜äBôĂ…fœMªO.hÉ“ú)‡Oæk2‡×©4Cyç“ĂVf¾½Ô¥~¡W¡9ˆ²áPsï®´Â~­TQÆÅÆJ¬)É/ó¤ÑøYa­ Áq₫¸̃!K̃Ơ˜³¨H9Såë·©̣b×qƒj%û¢|S·5ư ‘'€| Â^§œÍÔ=ú0êƒüK n¼´̉ ‘0Ù™RYqŒ+´qp¾½5@âc€t»Œ†VC©|$<Íj₫ÛQ„2¨0çÍgôx=1&ß8¢˜ËU„Iˆ^^w€́bd>lu±ÄƠ6ô´µF–¤ăf  wˆƠœ Á©U‘BÈz¡̉-/V¹Jf6œƒµJWS–…̃ÎMMlŸ t&ncàràÉ)(4E Mæ ó'ĂLçøƒ€ù"{Nñ‡›mäj´ûêlă1¢ü/ü±±Œ°tœlSYFET»‚ư'¢ù¼;́9¨Gô±~‹£-3Ơ6wê¬aÂ:ƒË »2÷ zú3Ê. sËêÚsNœ‰²¶V“ôâ¾t—§—)?6ÈŸcÁ·¬ &OÈ™†(ă„²D1F2U´ïâ»ÑùéN‚æ©p^$û­ØCe¢7ȃf¼&(ˆSEñ+”•è̉Ó7bMÙG~ ¾o䪄„Øb›́~[Ycz‡ª¼lœ{@¦rïÿZŸ0'éf…9œ¨ 8¯”ơrb̃·ƒM¯†U0axs[(W#ØRà>º  ÚÍ́Î!ÓVS˜à"¹åë™ZjƯiË8̀eÁ‰]ÀQ´‚øZ»Ov ¯ ÛÙ¼¨cö;é5OC&¨(rQRcÖÁZ´úÉS."7l¨Ú1}`!̀4Û́ufS ̣àªo«ˆ…LŒĂhŒ3q£¹}¹̉l(&à˜(=SÊ$ño9*°ˆ‘‰×cƒŒ¢†YÚ­Äü–³íåM ´SđG]ËÀ~º—eT(’¾ºŸ·ä‚£©P‹5¡!àLfÅF4±v1¸mg¸‹\<ÿ™̣ó?×çú ®Y¹l~0jHÙ­½]’“³k³{φåd¼ª©ûƒ%ĂETfÆ”¹ÓÓ°/˜v‡œ ÁH̉íă¢>ñk/^oçVĂ«\ç:‹çq*êÛ̉ËŒ̃QŔܰh¸ª(1œC»(kL̀=›¥Ư€´ÁêX\ætH²¢à] »m &0hrP,ÖRÉü²*䤹ÖǹPaB+ ® °Z`&#ÈQô%+2è˜X*ú6À ´Ư«¤§²(‰+“ï¦.p®/ÓJ ĂĂ+˜³µWÀ₫+¡#À½ó ²â‰ 2¬í_\<%ư꾡QRMÊ%ßë8 Ó¯hÍïI!sľĂ×j®Ä.˜6—;^R$¸IúhDx;|â¡Ö‚êêÁ,x±ƒå#å±DÄ~€ÀF°ẓ¬ŸD°Jç“ #vv}sWƒ1@J°eĘH’̀ŸïFß'Iû4r« è8¾Îw2mÂ<fD½¢_`  "j€áY6à’x*̃¾¬èÉ M÷#Đ*æĂö”½ªU?ÆÜ5̀t@ˆÚ‚ê^·XYØƠ®ùoY>pÎ$oÍ|AUÙ¨Fˆ6,ІÊù¹[mŒU‘]¡lªØ¢äjí’ù程2Mă2D² ¶/¾xMj‚5”×£À„wªtưœµÆ‘ø„]`‚¥'ÛZI-±æ̀üLæ₫đбú^Æ™Mk¹²?Aó6Ù<*1&˜gÓb\‰²ÚFrÖ<ÎnÈ<Ù–º¶ơ°àˆ¾…Z® /9†Œv´ÀDƒS ƒH ÄZ`Ơô²‚1P•ânä©p?Ù †¶Û‚¡ơ¤/Ef°Éy&W‹ +{îÙW̃{Qj¨@ø%ƠéD¿QÄ,Xœ¶™B›I=Sy]€¤èN4b‚ưÔ ±èËØ2¦»´ˆ“F9´’D–F@☿hW²Âä2¦ˆ%lh»à®*đ`m§a?áPÍØ—JïºåÀUKå‹~dÆ^e1¦U~&"”{fofá₫ƒÎ”Æ¥¯ä\µ’·’b»đ"tbZĂh#Ô¦mI¢˜ÅÍÄKå,íƠÇLHÏv“É.& ö©Óƒút]*EXfîªYdñ̉_䀃LB¯¬N“̣l‰_˜,§†„sL¬ÑRX6{æÀà̀eQ@øB5Ï®‡‰± ¶€̉öᦋٟ ÂB ;âøÂßo Ú~ªßßK™ «m™–T­«ơ…MœD`/âjơógÛÆ&*~YWº`–½›ï1Ÿo+ûĂwz₫A5ô¶RítQäŒWzªVăl\h/ ă$‘Yn‹×lG@¢/ålv„HăvS/MÊÄ÷}àM‹çŽû[:1öi—ÉËnY½¹•¢R~p4°p: Ơđ覫…Âàk™¨ÔIͤ‚H+0eX5E ›P-/ ¦>[‰2/i‘·rl‰ôX₫à›̀­Á rP¹̃&/s5̣«,_èuƒƠo)F6@‡( ‹–Y´#³¬êܩܿ†åX¼­ZƠ¤ÍIÉm+O¤Qඇêíà˜yIØ*+\=\`7AÊ%yQ~jŒË7ơ]2Èl¬Đ¹U®—Ɇ ‘9”üPơ¥Y_ L9¬˜EøuÙH~«TD'k+ Ö©2ï`É*Û0–*›MùEßî:ÈW؆°kc–m9BŸœWUd |\Q{{^ àĂHˆ¶/@(^ÇóM†¹(4`că¶W™0¿”l:è‡U9¸s"̉6Ê$ ĐXzƠ¹̃«ƠÚb•”0;Î׬ḉt#Vª*̃1'‚ú÷˜™PÔên#¹y’Í „l;! n¤Ơ{jPÊrăä„Kë­•.1ë́Ă+e5XÍ üñƯi†ºÑ™̃È„üx&ÿØV%÷çRŸÇ®̣Wc¨Ô§bçˆt«qËèöêPB(ÍâgôFA†m ÆpîÍY đÄ|~ÙqơÈ9bÚtuµEN¡?m’‰dÂå½—¿ÅÖ4¿ÔŒăB»\=gM4uXkƠS2kê¬ÂZ¶dO8sÖ¾ŒÉ Ö‚ÚơîƠ ¬Tå¹vơc1uC-ø<–¹+rérØŸƠI -™”pÎ~½úµ°±ôi¼îŒê®)¡çL(4O3œ£)5ºalâoF„\ve¯ubéƠỖqQ$Æđvå¦Äæäa-*X@2-æø®/0v§éîSZ¬CĂü$[lŨ„™%E³L¬Cå‹*ú¿w4Ñéi& R"¥[̀܃’;ußpux¨ÈˆæÀk°‹^<{›I›…¸wbOX/Ù܆h$3eF+Xû\'ƯN ç™bƒ… ÄÙ 9$4ëTm̉ï4K^ ơnô?±ơSyK,çÊƯæ74̃­J%¥¸bLqÉ^ zĂ/Sú”ª<3jH#Ó¡ºÉ 9$ÚØºªÜ¿€¢úw`¾…£¡.$à™ñ_5‰ªÜÄé³*̉̉­ùRßΨ__X1¥;ª1Úè×lß,£­g.ï<:œ³e«&ÆĂ¤–beŒº€71Æ&vÖ °^d0đz!Ä&—n®…F“©́à.ÈsRÔ™%ư £tx‰¦*U³ØÚ‡kTa»x#[ƒîÉK;BÛg_Á́k;€Â‘7¥ÙƒÄW鬖æ̉(\ƠËŸê$S­Ui J́2²u”¸J0Ü.ÆhQ#3̉7+qáÁ–¹‹ç’hLE4I?ë²)U5¨₫.2«^ûa/1dÇÆ3ªJlJ³³¿7`.M‘íE W$±ºU. Å?Œmpv楤à5’äC ÅlüB»pY'Ơ(Dp‚̉₫ô0ø:=j™w[%đVmXyooiûXƯ¤M< Å ?ÈZå¬f7•<²’!¹´ứǛMX‡ àjÊ9ú*Ü–̃Ÿ6 ÖW¢éÇyÍOÎV*(©æ‚ªCĉF}ôÆÛ:~9Ç^}ub+3B‰˜,Æ[Hg/帩¢sLy¨W^|Eß·m}¼®]µ9$Ư†bá,2‚¤áô°Z—‰¼ -? 7Ø­$¸˜WwlˉFùj(;…n1G¯Öëé…¤ç'/ÈDTĂu‰¡hë3Moh‚.ï̀•ܘXP¬ËáP© Â5„Œµ˜ë?"ÅUY;₫xÖðIÖkÛöaƠcñckÜ:.ÆŒÜÆ40Ÿˆê<kÓn³‰jRc¶ Cnđ<¡¸Ă‹CGÖ2F-3àñSºdÀ¹’Åœ$JW7FÔ‡¶gÖöb!9Åä¿ç&>Œ̉ÍêŒÜ¦.Àܰ?": Ù̀#*|ΦâV×d-­rßv„d.° b%øjaË {öK›ƒ…³̉ú3Yå÷b“P‰‡èÑko²¦kHͬU©RÀc<6“¸!Ü;µßµkØ«huø+-ƶ£˜‰!Vç3U¡̃Rÿ̉đ3Q+åHV•ˆËω'F)ÅJ…%Ví!¯'€º¹?uÛÉ(mƃ¢É½¸1EơÔ—.f×Ú´vÿÖºRLK¢é Æ|rÍu%LÎ_/ˤ¦%…6Ök«U=²¦Éáă ¢î~ÆwĐ–»Ùæq!•2IêÖ-¶Úẳb`RMbf¨WctE<Œ6ơƠ°«À;Ç…ó̀̉ök¬œÄư$Ù†i– »k1$Û?¦ưgô~t ̀28ØÓlh"ƠŒ¾Z¹)K¿7¹k#…Zz §êưZî=i%Ñzô3³+(R²å€1WU¥Ó ‡÷66Ù;“ÏG]à*£¸¿•Ỡ#\µ9‚ƒüô‡JÅ [²9Œ[2U`Â’Mû¶ÎpvíÀú_btT¨2 dôG¸†FO£đ o¶¼.”O)m[„3R·1đ®Ÿ+ ­|ĂŒÉ2ÙƠ9”‚ƒ¹f\Æà¸ơxUML]p°s0đWñRaËpM)ml" #—`„U«8‹m®µÉ×3Æ7Tྠ KøA™; î/ơñÁ©Ú>b$JĂºç5Ë”!Ö8çZ¸(gm•q÷¡y#-¡bäVTœIû2匤 ŦTsè̀R+‹Ël¦†”“º‘V˜¶¬ØfÁ_NaaÛaàÛ—v4»b}̃mÏ6 ¸¶^e†4œw!¹ÆŒmE}Z3’««Û°DAí0ÙÛ$\hă{1@Đ̃Ơ8¿ i~¾ùÇŸæÖ®2ưeC]U¹SÄ2j½ă8‚Ó"L¶€v5"‡J\Ơµ́V̀ƒñü t9¼:8†ù…±(lƠ8¼Ä 6›=˜°Ês6Ñø§XgĂ›?ÁÂ+nŸêÊ/<Ù¢&aAH-MßäưT¼)¼@ü̃j%ˆ›éÿ‹„.dP!̉-¶h¢ê‰Ä>r\=3Ă÷ưQ_ Æâj(>öF£̃Ơäñv8“÷}q=¾ơ>´ÅdˆŸûÿ5é_MÄuôa0™ô/Ä›_‚̃ơơåà¼÷æ²/.{¡¹Ø÷¯'âăû₫•øƒq_Œ'=øÁàJ| &ƒ«wđ|xưËhđîư$x?¼¼è°3ÜépD?×½ÑdĐĂ<~\ôư9Ù^?c1öđq0y?¼™‘á[Ñ»úEü4¸ºh‹₫öÿëzÔûb8ƒ×—ƒ₫E[ ®Î/o.WïÚâÍÍD\ 'ÁåàĂæ<¶qd~×,LløV|èÎß÷®&½7ƒËÁälm÷v0¹êǰA°8¿¹́ÄơÍèz8îĂ¥ Ëy5Œúb4ÿ$zc³È»é@Áuôv8úĐ»:ïĂX>₫ƒ1¢+~̃ÀẠ̊~xsyQy­\ôßöÏ'ƒŸûmxSôÆă›}^ûñẹ̀R\ơÏûăqoô‹÷G?ÎqFưë̃`$†£à|8”áƠmaܾơÚ\đpÖ.®€¬ú?ÑÜ\]Â’Œú»ŒtD•t`;zïF}\qP‚ƒËKÜFK-‚¨¥?¹úÅ£–_ÄÇ÷Cñax1x ûCÔœ¯~îÿ2®,OóÑqïÍVèM_\p>“!.„‹̃‡̃»₫¸XÁ1ßơ¯ú£̃e[Œ¯ûçøcpu>¸è_Mz—0¯óáƠ¸ÿ·Øẵ¥ôFƒ1@̃L̀†̃ŒûH‰W†‚&C|æOö‰ûÍÍ$¸N„£Nq9#)^ô&=3ôÄ›>¼=ê_]ôGxđzçç7£̃ àư±ߌ'½Áíà‹ç~0º°'X¼í .oFu &C1¼î#H¤Do'èñÓ6n¾¼ă›ó÷¼mœï€v́}o,̃ôûW¢wñóÏ%3¼&C†Àë¸E†ÓqÅ’âx+Èj¼p DhsàͤB̉.ăÁD sø²ëĂI²S¢¡dåQÁigfM™k\}DKµ&ûk EÆÈĐ@/C’k“eUMI»7ô›mäĐPNs@Ѭ§MíÔ@èoăÄ›{ƒq„j«û™pÜJÖ•Ëå¨.„KO'ew+`O`ƒ̣¢̀vóåCûWáÛNsÑ₫È>¢;À¾×kˆ÷ëÁw0‚®ƒi´đđ]f+µî0y ‚¥aÛđu¸›˜$x]\©µA87C[o·²B•fíZ›ˆîlÏ̃"^½9f»æE1@±éñTÉ;n³—(/¨X.Đ—`£wµé8Tzd³Ø†­yÁü ̉X¦ª ¾M'fëk3Í+Í1 ¯ ¡ñ’­Nà6 qVy1œ4äærøÁ´í¯—æeL„µÀ¸./w‚:啺$&²ÙÖ«ˆY-…÷FmÁDñÜF Ô¼&¤ùCKÏ•Fe• (¦pÓ¬´e¹±#6HÖf™¢øÖf=’mGäPñ†?@¶ă*SµW:+ŒÆ\BÊAÔêƯB48½q+³V6 'Å5ư₫_9fÅñ|§Y¬fà¡’¶Æ»NÎNoeÖ"°MmÅ“ó§bk0(”Èïn}‡#i“GJoÁ„ÛM› ñưh̀tU’‹‹j[ù .ư¼{ơ ™WÔ`ŸZÖ6ß–Æ…Ädâ‰,/ăùé¶"x²°ĂËö†[€Çä}M¿̀Ơ¬LPX`ūӭ¯l^7”yA8ƪ́˜ó,¨Ë:óÅN±Ć+e–3Øe·0!2+@(xxüd#ß«Q•»÷(¨TĐsëF…T‘¢Ä™4„VfIK,25{ƯZÅêÇÓÓơz}2OËÍOM”Îi«»ïÛ³SÙÅ#™©îÙiß¼Âơ³JM!(C ]!ùm¡_˜Y3BI5¨z!W­$ădKƒ^ù>Ç̣'¾«m{s/# «\p£̀iy0…ª"X”êúúƠª¡PÓÉmæ̀-DơđPt$̃›ñđ̣f̉¿üÅWH©Ó#f‹ï´œår¹2ăÁß­nû¸>;…O]6.œĐ€u¶äîc¼ Uê%[¯+\m»¶̀€µ#½:j2au2>2 ä æÉÅfÆktU»–©wĂq»ằøĂw§Ú,ơJiè¦x!†3”hM¬†é½g<™%’Ô°1ÖS3́ƯÍÀbçf1è‰(Ñâenl99Ơ_¶"8=v…1̃ÜŒ́\-W‰̃@{Z\óÓ®TeO1̀,I; v‘èĂ…:i~ư@s"œ&á—>óúu¼^Dom I•ÿÀɯ´Ü%mßÈĐc™́ơ%2̀౦­Æ´çÚµöL /^‘Ât^Ù|np€”¤ NâA±Ùˆ̣nR ‘˜™ß>¤`q•È«)‰̃ÀqéBÅ0= øo¨ƒ1`ÏiÁFwv.1pc×&±6Q;kÁ‰4FMfù/!È2ÛíÎÉ %£o囲0±¢₫1ơÂϾơV‹8ѹ^-6§ëŦ“ꢓ̀WÉÉ¢X&ûºï₫V/2ĐËù—I™³x'm¦Cñ¤L ̉H}«eñbû}ï•ÎóVÿ8;]¼è¢2Â*ƒÆ‘đ­W÷ àR;V~1\uU*Ë; ̉©¬̣̣Y‘uÏE÷—Ë•(ôâ»t¯^‰³ÓbÑ=+¢®[á¼\.e¶ah>^÷?ád?…«OüJ¯Ơ=›v{g§Ó.¬Y`€_ô }ó°@ÏèùĂ½@  ô-}û°@ß!Đw t€@ ô^>,ĐôĂĂ"ĐáĂ!ĐÑĂ#ĐñĂưˆ@?6=®r |çUĂR¯̣:[ˈ#!Ñ2Å‘èå}(e†feª5ưŒíŸô˜©BG̣•L_·^¶ºÀû2üʱï*#́mC3˜DÛ<½CÿÔ6-àÁ¼Êô˜<{­.ư Ë{£ëĂëđ³*̣©¤·ºüÈWÍ́™xïí§gÏ~˜ó¢?é]₫Ôêö̃~²Ÿ¾¬ß 9—yçÓ³g/¢Î…†p*"í¾5X ûDt½+è]÷Íă ?¸êOsøă‚ôåđ¼w‰Xă_´o®ÿ…XäÁ±ÇhĂŸÿúˆˆ±]\ŒÎ‡WoïZỮà“ûøÀ À窀¨%Đ…;³DÎ,?̣~%àW¾(——´—}ê¿©e¸ºùĐ Î!H—ĂûüG^–ë̃x<ø¹KÂÿ‘—ăçï?ô®¯û¸æĂ·¼ ÷™ß´@Ç0‘ù̀ă°s“˹ê o¡Ü¤Z·ºøTàSãw±ï3ƒ 6Ó¨Ơ…ÿ₫úÀ}w÷¼Æ–Û]ÏhuùoH%²Æp˜<ÿyßéŸSñóV—ÿxØ=»h-ëÁö lÿfÛÜßß ¿mîÁ–ă-ϲ3Rè̉ U«k û́¾ËsWè±@ïZ`Q|°̣.V×ûđ ơ9´îɋ黈„ûøm¡‘ëđ³”ûûÛ9¹ƒX¥Œ0¹ăFœÎ;2:‰¦¸¹®{N¡‘ôü¾ËtßQÅëëÑp2$ëƠù‡ëV×ö“V˜O}8TÁ_³‘ o;o°[¨4:…—ÅÛǴߘE¸î÷¢€¿₫`ÈĂ~£¹đ‡ok î{¤†-pơ?Ø‘Îfˆ.­w¸¡]«;œÍ:ÆÎO¾IYr˜ÖJ/(ƯwïG-ˆÈx°½ÏTxÛê¿¡k¦ Yû4qøëÛÑÇ-~y°ưË1́½Ơ¥¿¡=̀’á¿ßؤ MÓ.¾%cPîYQ̣ßĐroÆïo&xë.Z]ü0zpOƠ¢, `bg¡×‡®y~ÀKÎñP₫8²HưQжHÿË£œó ́A}K'“̀oFẴÅyo.‚ưôÇZ„Ÿúưë̃%†YŒ‡Ÿ́§?Ö"Œú7ă>„dá"ØO˜E8ÿ‰”—€%8ÿé₫ư8ÖËÉf¥³\›ö¨÷‘‘ơ>₫AP¾0û<ºøƒ̣́¸ÿ·ë̃ùOư #n?ÿAĐŸŒúöpÓ‡iÄs£Ơ¥¿% ­¶ºÛ+øPû¶̣£ ̣1Úÿ¢Qă¿‰û[0½?ü2>¸$ö¯-!>ºf₫/i)ø­‚¬¿½PđGZ⇋“øưGo<̉~½8÷/(\̃M,üư‹œĂK̉†F?ºüD[÷Û}½|[₫`^>SO¬Ơ5ư†Qû;éMå™ÖÅ¿+4ưwåW₫øwạ̊߬•N¶†×r ‚³Ó©6đJ.uƒÿ,«$/.2.1.4 AF_UNIX4sockets.html#AF_005fUNSPEC"3.2.1.5 AF_UNSPECrsockets.html#Socket-constants-_002d-Socket-Type-constants63.2.2 Socket Type constants6sockets.html#SOCK_005fDGRAM$3.2.2.1 SOCK_DGRAM2sockets.html#SOCK_005fRAW 3.2.2.2 SOCK_RAW2sockets.html#SOCK_005fRDM 3.2.2.3 SOCK_RDM>sockets.html#SOCK_005fSEQPACKET,3.2.2.4 SOCK_SEQPACKET8sockets.html#SOCK_005fSTREAM&3.2.2.5 SOCK_STREAM€sockets.html#Socket-constants-_002d-Send_002fRecv-Flag-constants<3.2.3 Send/Recv Flag constants:sockets.html#MSG_005fDONTWAIT(3.2.3.1 MSG_DONTWAIT2sockets.html#MSG_005fPEEK 3.2.3.2 MSG_PEEK8sockets.html#MSG_005fWAITALL&3.2.3.3 MSG_WAITALLtsockets.html#Socket-constants-_002d-Shutdown-how-constants83.2.4 Shutdown how constants0sockets.html#SHUT_005fRD3.2.4.1 SHUT_RD4sockets.html#SHUT_005fRDWR"3.2.4.2 SHUT_RDWR0sockets.html#SHUT_005fWR3.2.4.3 SHUT_WR€sockets.html#Socket-constants-_002d-Set_002fgetsockopt-constants<3.2.5 Set/getsockopt constants6sockets.html#SOL_005fSOCKET$3.2.5.1 SOL_SOCKET:sockets.html#SO_005fBROADCAST(3.2.5.2 SO_BROADCAST:sockets.html#SO_005fDONTROUTE(3.2.5.3 SO_DONTROUTE:sockets.html#SO_005fKEEPALIVE(3.2.5.4 SO_KEEPALIVE:sockets.html#SO_005fREUSEADDR(3.2.5.5 SO_REUSEADDRzsockets.html#Socket-constants-_002d-Socket-protocol-constants>3.2.6 Socket protocol constants:sockets.html#IPPROTO_005fICMP(3.2.6.1 IPPROTO_ICMP6sockets.html#IPPROTO_005fIP$3.2.6.2 IPPROTO_IP8sockets.html#IPPROTO_005fTCP&3.2.6.3 IPPROTO_TCP8sockets.html#IPPROTO_005fUDP&3.2.6.4 IPPROTO_UDPsockets.html#Socket-constants-_002d-Socket-getaddrinfo-flag-constantsN3.2.7 Socket getaddrinfo flag constants<sockets.html#AI_005fADDRCONFIG*3.2.7.1 AI_ADDRCONFIG.sockets.html#AI_005fALL3.2.7.2 AI_ALL>sockets.html#AI_005fNUMERICSERV,3.2.7.3 AI_NUMERICSERV6sockets.html#AI_005fPASSIVE$3.2.7.4 AI_PASSIVE8sockets.html#AI_005fV4MAPPED&3.2.7.5 AI_V4MAPPED(sockets.html#CopyingJAppendix A GNU General Public License$sockets.html#Index Indexsockets-1.5.0/doc/sockets.qhc0000644000000000000000000030000015123475646013041 0ustar00SQLite format 3@ ##.~Z ²¨†’$ º  w † ä h ó z ó H¾"¾fó| ¨b''tableVersionFilterVersionFilterCREATE TABLE VersionFilter (Version TEXT, FilterId INTEGER)n++tableComponentFilterComponentFilterCREATE TABLE ComponentFilter (ComponentName TEXT, FilterId INTEGER)u--tableComponentMappingComponentMappingCREATE TABLE ComponentMapping (ComponentId INTEGER, NamespaceId INTEGER)q))tableComponentTableComponentTableCREATE TABLE ComponentTable (ComponentId INTEGER PRIMARY KEY, Name TEXT)VtableFilterFilterCREATE TABLE Filter (FilterId INTEGER PRIMARY KEY, Name TEXT)b%%tableVersionTableVersionTableCREATE TABLE VersionTable (NamespaceId INTEGER, Version TEXT)))mtableTimeStampTableTimeStampTableCREATE TABLE TimeStampTable (NamespaceId INTEGER, FolderId INTEGER, FilePath TEXT, Size INTEGER, TimeStamp TEXT)551tableOptimizedFilterTableOptimizedFilterTableCREATE TABLE OptimizedFilterTable (NamespaceId INTEGER, FilterAttributeId INTEGER)(77otableFileAttributeSetTableFileAttributeSetTableCREATE TABLE FileAttributeSetTable (NamespaceId INTEGER, FilterAttributeSetId INTEGER, FilterAttributeId INTEGER) 33/tableContentsFilterTableContentsFilterTableCREATE TABLE ContentsFilterTable (FilterAttributeId INTEGER, ContentsId INTEGER )w --!tableIndexFilterTableIndexFilterTable CREATE TABLE IndexFilterTable (FilterAttributeId INTEGER, IndexId INTEGER)s ++tableFileFilterTableFileFilterTable CREATE TABLE FileFilterTable (FilterAttributeId INTEGER, FileId INTEGER)z ''3tableContentsTableContentsTable CREATE TABLE ContentsTable (Id INTEGER PRIMARY KEY, NamespaceId INTEGER, Data BLOB) !!‚ tableIndexTableIndexTable CREATE TABLE IndexTable (Id INTEGER PRIMARY KEY, Name TEXT, Identifier TEXT, NamespaceId INTEGER, FileId INTEGER, Anchor TEXT)''MtableFileNameTableFileNameTable CREATE TABLE FileNameTable (FolderId INTEGER, Name TEXT, FileId INTEGER PRIMARY KEY, Title TEXT)e'' tableSettingsTableSettingsTableCREATE TABLE SettingsTable (Key TEXT PRIMARY KEY, Value BLOB )9M'indexsqlite_autoindex_SettingsTable_1SettingsTableh##tableFilterTableFilterTableCREATE TABLE FilterTable (NameId INTEGER, FilterAttributeId INTEGER )l++tableFilterNameTableFilterNameTableCREATE TABLE FilterNameTable (Id INTEGER PRIMARY KEY, Name TEXT ){55tableFilterAttributeTableFilterAttributeTableCREATE TABLE FilterAttributeTable (Id INTEGER PRIMARY KEY, Name TEXT )u##1tableFolderTableFolderTableCREATE TABLE FolderTable (Id INTEGER PRIMARY KEY, NamespaceId INTEGER, Name TEXT )x))+tableNamespaceTableNamespaceTableCREATE TABLE NamespaceTable (Id INTEGER PRIMARY KEY, Name TEXT, FilePath TEXT ) ××'=#octave.community.socketssockets.qch ÷÷ doc    #Ô¶{fS>#9FullTextSearchFallback%CreationTimeiN|-) HideAddressBar- EnableAddressBarA EnableDocumentationManager; HideFilterFunctionality? EnableFilterFunctionality*-;LastRegisterTime2025-12-26T07:14:37.393 ?Z~“Î?k²́9FullTextSearchFallback%CreationTime)HideAddressBar-EnableAddressBarAEnableDocumentationManager;HideFilterFunctionality?EnableFilterFunctionality- LastRegisterTime Ÿ¼Ÿ ##sockets.csssockets.cssB %osockets.htmlOctave Sockets - Socket functions for GNU octave. 5\ëÚæ‡dG2!óâͰ—‚4 ô × ¼ S 2  ø Ï ¬ X 3  ó § Œ m R ₫ Ư ¸ “ n I ÷ ̉ ± k âÉ \!5# +AI_V4MAPPEDAI_005fV4MAPPED4! )AI_PASSIVEAI_005fPASSIVE'3) 1AI_NUMERICSERVAI_005fNUMERICSERV2 !AI_ALLAI_005fALL%1' /AI_ADDRCONFIGAI_005fADDRCONFIG`0O }Socket getaddrinfo flag constantsSocket-constants-_002d-Socket-getaddrinfo-flag-constants!/# +IPPROTO_UDPIPPROTO_005fUDP!.# +IPPROTO_TCPIPPROTO_005fTCP-! )IPPROTO_IPIPPROTO_005fIP#,% -IPPROTO_ICMPIPPROTO_005fICMPP+? mSocket protocol constantsSocket-constants-_002d-Socket-protocol-constants#*% -SO_REUSEADDRSO_005fREUSEADDR#)% -SO_KEEPALIVESO_005fKEEPALIVE#(% -SO_DONTROUTESO_005fDONTROUTE#'% -SO_BROADCASTSO_005fBROADCAST&! )SOL_SOCKETSOL_005fSOCKETR%= sSet/getsockopt constantsSocket-constants-_002d-Set_002fgetsockopt-constants$ #SHUT_WRSHUT_005fWR# 'SHUT_RDWRSHUT_005fRDWR" #SHUT_RDSHUT_005fRDJ!9 gShutdown how constantsSocket-constants-_002d-Shutdown-how-constants! # +MSG_WAITALLMSG_005fWAITALL %MSG_PEEKMSG_005fPEEK#% -MSG_DONTWAITMSG_005fDONTWAITR= sSend/Recv Flag constantsSocket-constants-_002d-Send_002fRecv-Flag-constants!# +SOCK_STREAMSOCK_005fSTREAM') 1SOCK_SEQPACKETSOCK_005fSEQPACKET %SOCK_RDMSOCK_005fRDM %SOCK_RAWSOCK_005fRAW! )SOCK_DGRAMSOCK_005fDGRAMH7 eSocket Type constantsSocket-constants-_002d-Socket-Type-constants 'AF_UNSPECAF_005fUNSPEC #AF_UNIXAF_005fUNIX %AF_LOCALAF_005fLOCAL #AF_INETAF_005fINET#% -AF_APPLETALKAF_005fAPPLETALKL; iDomain family constantsSocket-constants-_002d-Domain-family-constants socketsocket shutdownshutdown! !setsockoptsetsockopt  sendtosendto  sendsend  selectselect  recvfromrecvfrom  recvrecv listenlisten! !getsockoptgetsockopt!' 'gethostbynamegethostbyname# #getaddrinfogetaddrinfo! !disconnectdisconnect connectconnect bindbind acceptaccept ¦¦¶O í sockets.htmlpOctave Sockets - Socket functions for GNU octave. ManualFsockets.html#Installing-and-loading01 Installing and loadingDsockets.html#Online-Direct-install21.1 Online Direct installBsockets.html#Off_002dline-install(1.2 Off-line install(sockets.html#Loading1.3 LoadingBsockets.html#Basic-Usage-Overview,2 Basic Usage Overview>sockets.html#Function-Reference(3 Function Reference<sockets.html#Sockets-functions*3.1 Sockets functions&sockets.html#accept3.1.1 accept"sockets.html#bind3.1.2 bind(sockets.html#connect3.1.3 connect.sockets.html#disconnect 3.1.4 disconnect0sockets.html#getaddrinfo"3.1.5 getaddrinfo4sockets.html#gethostbyname&3.1.6 gethostbyname.sockets.html#getsockopt 3.1.7 getsockopt&sockets.html#listen3.1.8 listen"sockets.html#recv3.1.9 recv*sockets.html#recvfrom3.1.10 recvfrom&sockets.html#select3.1.11 select"sockets.html#send3.1.12 send&sockets.html#sendto3.1.13 sendto.sockets.html#setsockopt"3.1.14 setsockopt*sockets.html#shutdown3.1.15 shutdown&sockets.html#socket3.1.16 socket:sockets.html#Socket-constants(3.2 Socket constantsvsockets.html#Socket-constants-_002d-Domain-family-constants:3.2.1 Domain family constants:sockets.html#AF_005fAPPLETALK(3.2.1.1 AF_APPLETALK0sockets.html#AF_005fINET3.2.1.2 AF_INET2sockets.html#AF_005fLOCAL 3.2.1.3 AF_LOCAL0sockets.html#AF_005fUNIX3      ××' #3sockets.qch@2025-12-26T07:14:37 ûû  øødoc ûû  .2.1.4 AF_UNIX4sockets.html#AF_005fUNSPEC"3.2.1.5 AF_UNSPECrsockets.html#Socket-constants-_002d-Socket-Type-constants63.2.2 Socket Type constants6sockets.html#SOCK_005fDGRAM$3.2.2.1 SOCK_DGRAM2sockets.html#SOCK_005fRAW 3.2.2.2 SOCK_RAW2sockets.html#SOCK_005fRDM 3.2.2.3 SOCK_RDM>sockets.html#SOCK_005fSEQPACKET,3.2.2.4 SOCK_SEQPACKET8sockets.html#SOCK_005fSTREAM&3.2.2.5 SOCK_STREAM€sockets.html#Socket-constants-_002d-Send_002fRecv-Flag-constants<3.2.3 Send/Recv Flag constants:sockets.html#MSG_005fDONTWAIT(3.2.3.1 MSG_DONTWAIT2sockets.html#MSG_005fPEEK 3.2.3.2 MSG_PEEK8sockets.html#MSG_005fWAITALL&3.2.3.3 MSG_WAITALLtsockets.html#Socket-constants-_002d-Shutdown-how-constants83.2.4 Shutdown how constants0sockets.html#SHUT_005fRD3.2.4.1 SHUT_RD4sockets.html#SHUT_005fRDWR"3.2.4.2 SHUT_RDWR0sockets.html#SHUT_005fWR3.2.4.3 SHUT_WR€sockets.html#Socket-constants-_002d-Set_002fgetsockopt-constants<3.2.5 Set/getsockopt constants6sockets.html#SOL_005fSOCKET$3.2.5.1 SOL_SOCKET:sockets.html#SO_005fBROADCAST(3.2.5.2 SO_BROADCAST:sockets.html#SO_005fDONTROUTE(3.2.5.3 SO_DONTROUTE:sockets.html#SO_005fKEEPALIVE(3.2.5.4 SO_KEEPALIVE:sockets.html#SO_005fREUSEADDR(3.2.5.5 SO_REUSEADDRzsockets.html#Socket-constants-_002d-Socket-protocol-constants>3.2.6 Socket protocol constants:sockets.html#IPPROTO_005fICMP(3.2.6.1 IPPROTO_ICMP6sockets.html#IPPROTO_005fIP$3.2.6.2 IPPROTO_IP8sockets.html#IPPROTO_005fTCP&3.2.6.3 IPPROTO_TCP8sockets.html#IPPROTO_005fUDP&3.2.6.4 IPPROTO_UDPsockets.html#Socket-constants-_002d-Socket-getaddrinfo-flag-constantsN3.2.7 Socket getaddrinfo flag constants<sockets.html#AI_005fADDRCONFIG*3.2.7.1 AI_ADDRCONFIG.sockets.html#AI_005fALL3.2.7.2 AI_ALL>sockets.html#AI_005fNUMERICSERV,3.2.7.3 AI_NUMERICSERV6sockets.html#AI_005fPASSIVE$3.2.7.4 AI_PASSIVE8sockets.html#AI_005fV4MAPPED&3.2.7.5 AI_V4MAPPED(sockets.html#CopyingJAppendix A GNU General Public License$sockets.html#Index Indexsockets-1.5.0/doc/sockets.texi0000644000000000000000000001277715123475646013264 0ustar00\input texinfo @c -*-texinfo-*- @c Copyright (c) 2022-2025, John Donoghue @c Octave Sockets - Socket functions for GNU octave. @c For manually generating the documentation use @c LANGUAGE=en makeinfo --html --no-split sockets.texi @c %*** Start of HEADER @setfilename sockets.info @settitle Octave Sockets - Socket functions for GNU octave. @afourpaper @paragraphindent 0 @finalout @set COPYRIGHT_DATE 2022-2025 @c @afourwide @c %*** End of the HEADER @include version.texi @include macros.texi @c %*** Start of TITLEPAGE @titlepage @title Sockets Toolkit @value{VERSION} @subtitle Socket functions for @acronym{GNU} Octave. @author The Octave-Forge community @page @vskip 0pt plus 1filll Copyright @copyright{} @value{COPYRIGHT_DATE} Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the same conditions as for modified versions. @page @heading Distribution The @acronym{GNU} Octave Sockets package is @dfn{free} software. Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software. This means that everyone is free to use it and free to redistribute it on certain conditions. The @acronym{GNU} Octave Sockets package is not, however, in the public domain. It is copyrighted and there are restrictions on its distribution, but the restrictions are designed to ensure that others will have the same freedom to use and redistribute Octave that you have. The precise conditions can be found in the @acronym{GNU} General Public License that comes with the @acronym{GNU} Octave Sockets package and that also appears in @ref{Copying}. To download a copy of the @acronym{GNU} Octave Sockets package, please visit @url{http://octave.sourceforge.net/sockets/}. @end titlepage @c %*** End of TITLEPAGE @dircategory Math @direntry * Octave Sockets: (sockets). Socket functions for GNU octave @end direntry @c %*** Start of BODY @contents @ifnottex @node Top @top Introduction The Sockets toolkit is a set of socket routines for GNU Octave @end ifnottex @menu * Installing and loading:: Installing and loading the Sockets toolkit * Basic Usage Overview:: Basic Usage Overview * Function Reference:: Sockets toolkit functions * Copying:: Copying * Index:: Index @end menu @c ------------------------------------------------------------------------- @node Installing and loading @chapter Installing and loading @cindex Installing and loading The Sockets toolkit must be installed and then loaded to be used. It can be installed in @acronym{GNU} Octave directly from octave-forge, or can be installed in an off-line mode via a downloaded tarball. The toolkit must be then be loaded once per each @acronym{GNU} Octave session in order to use its functionality. @section Online Direct install @cindex Online install With an internet connection available, the Sockets package can be installed from octave-forge using the following command within @acronym{GNU} Octave: @example pkg install -forge sockets @end example The latest released version of the toolkit will be downloaded and installed. @section Off-line install @cindex Off-line install With the Sockets toolkit package already downloaded, and in the current directory when running @acronym{GNU} Octave, the package can be installed using the following command within @acronym{GNU} Octave: @example pkg install sockets-@value{VERSION}.tar.gz @end example @section Loading @cindex Loading Regardless of the method of installing the Sockets toolkit, in order to use its functions, the toolkit must be loaded using the pkg load command: @example pkg load sockets @end example The toolkit must be loaded on each @acronym{GNU} Octave session. @c ------------------------------------------------------------------------- @node Basic Usage Overview @chapter Basic Usage Overview @cindex Basic Usage Overview The sockets toolkit attempts to use function names similar to the standard UNIX socket function naming, so functions such as socket, connect, bind, read, write etc are available and in general would follow the same flow as if being programmed in C. @example # example socket connect and request a HTML page info s = socket(AF_INET, SOCK_STREAM, 0); if s < 0 error ("Could not create a socket") endif addr = struct("addr", "google.com", "port", 80); if connect(s, addr) < 0 error ("Could not create a socket") endif # html request send(s, "HEAD / HTTP/1.0\r\n\r\n") # read data back [d, l] = recv(s, 2000); if d == -1 error ("Error reading data"); endif # display the data in human readable form char(d) # disconnect socket disconnect(s); @end example @c ------------------------------------------------------------------------- @node Function Reference @chapter Function Reference @cindex Function Reference The functions currently available in the Dicom toolkit are described below; @include functions.texi @c ------------------------------------------------------------------------- @include gpl.texi @c ------------------------------------------------------------------------- @node Index @unnumbered Index @printindex cp @bye sockets-1.5.0/doc/version.texi0000644000000000000000000000013415123475646013256 0ustar00@c autogenerated from Makefile @set VERSION 1.5.0 @set PACKAGE sockets @set DATE 2025-12-26 sockets-1.5.0/inst/0000755000000000000000000000000015123475646011110 5ustar00sockets-1.5.0/inst/__load_sockets__.m0000644000000000000000000000265515123475646014544 0ustar00## Copyright (C) 2024 John Donoghue ## ## 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 ## . ## -*- texinfo -*- ## @deftypefn {} {} __load_sockets__ () ## Undocumented internal function of sockets package. ## @end deftypefn ## PKG_ADD: __load_sockets__ () function __load_sockets__ () # on package load, attempt to load docs try pkg_dir = fileparts (fullfile (mfilename ("fullpath"))); doc_file = fullfile (pkg_dir, "doc", "sockets.qch"); doc_file = strrep (doc_file, '\', '/'); if exist(doc_file, "file") if exist("__event_manager_register_documentation__") __event_manager_register_documentation__ (doc_file); elseif exist("__event_manager_register_doc__") __event_manager_register_doc__ (doc_file); endif endif catch # do nothing end_try_catch endfunction sockets-1.5.0/inst/__unload_sockets__.m0000644000000000000000000000267715123475646015113 0ustar00## Copyright (C) 2024 John Donoghue ## ## 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 ## . ## -*- texinfo -*- ## @deftypefn {} {} __unload_sockets__ () ## Undocumented internal function of sockets package. ## @end deftypefn ## PKG_DEL: __unload_sockets__ () function __unload_sockets__ () # on package unload, attempt to unload docs try pkg_dir = fileparts (fullfile (mfilename ("fullpath"))); doc_file = fullfile (pkg_dir, "doc", "sockets.qch"); doc_file = strrep (doc_file, '\', '/'); if exist(doc_file, "file") if exist("__event_manager_unregister_documentation__") __event_manager_unregister_documentation__ (doc_file); elseif exist("__event_manager_unregister_doc__") __event_manager_unregister_doc__ (doc_file); endif endif catch # do nothing end_try_catch endfunction sockets-1.5.0/src/0000755000000000000000000000000015123475646010722 5ustar00sockets-1.5.0/src/Makefile0000644000000000000000000000415515123475646012367 0ustar00# Makefile for the octave sockets package. # The intent is to keep this makefile working for # * Octave>=3.2 # * Windows # straight out of the box. OCT := socket.oct SRC := $(OCT:.oct=.cc) MKOCTFILE ?= mkoctfile -Wall OCTAVE_CONFIG ?= octave-config OCTAVE ?= octave GREP ?= grep CANONICAL_HOST_TYPE := $(shell $(OCTAVE_CONFIG) -p CANONICAL_HOST_TYPE)) ARCHDIR := "$(shell $(OCTAVE_CONFIG) -p CANONICAL_HOST_TYPE)-$(shell $(OCTAVE_CONFIG) -p API_VERSION)" CC_SOURCES := $(wildcard *.cc) CC_TST_SOURCES := $(shell $(GREP) --files-with-matches '^%!' $(CC_SOURCES)) TST_SOURCES := $(patsubst %.cc,../inst/$(ARCHDIR)/%.cc-tst,$(CC_TST_SOURCES)) #The following is necessary to get the sockets package working in Windows. #It has been tried on Win7 and XP, in Octave 3.8.0 using mxe-octave (mingw) EXTRALIBS := ifneq (,$(findstring mingw,$(CANONICAL_HOST_TYPE))) EXTRALIBS := -lws2_32 endif all: $(OCT) archtests %.oct: %.cc $(MKOCTFILE) $< $(EXTRALIBS) $(TST_SOURCES): ../inst/$(ARCHDIR)/%.cc-tst: %.cc | ../inst/$(ARCHDIR) @echo "Extracting tests from $< ..." @$(RM) -f "$@" "$@-t" @( echo "## Generated from $<"; \ $(GREP) '^%!' "$<") > "$@" PHONY: archtests archtests: $(TST_SOURCES) PHONY: cleanarchtests cleanarchtests: -rm -f $(TST_SOURCES) -test -e ../inst/$(ARCHDIR) && rmdir ../inst/$(ARCHDIR) || true ../inst/$(ARCHDIR): @mkdir -p "$@" # We need to generate a PKG_ADD file for this to work. We could also # get a string with the stuff in PKG_ADD and eval it before the test # command, but it messes up the quotes. check: $(OCT) $(GREP) PKG_ADD $(SRC) | sed 's/\/\/ PKG_ADD: //' > PKG_ADD $(OCTAVE) -q --no-window-system --eval "test $(SRC)" rm PKG_ADD clean: cleanarchtests -rm -f *.o octave-core octave-workspace core *.oct *~ PKG_ADD PHONY: distclean distclean: clean #This creates a package for distribution. It requires the checked out hg #repo to be named sockets, or that a symlink of name sockets point to the #checked out repo. pkgversion:=$(word 2,$(shell grep ^Version ../DESCRIPTION|head -n1)) pkg: cd ../.. && tar cvfzh sockets-${pkgversion}.tar.gz --exclude=.hg sockets/ .PHONY: all clean check pkg sockets-1.5.0/src/socket.cc0000644000000000000000000015406015123475646012527 0ustar00// Copyright (C) John Swensen // Copyright (C) 2007 Tom Holroyd // Copyright (C) 2009 Paul Dreik // Copyright (C) 2013 CarnĂ« Draug // Copyright (C) 2020 Octave maintainers // // 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 . // eliminate some compiler warnings #ifdef __WIN32__ #define _NO_SYS_GUID_OPERATOR_EQ_ 1 #endif // Octave Includes #include #include #include #include #include #include #include #include #include #include #include #include #include #include // System includes #include #ifndef __WIN32__ #include #include #include #include #include #define SOCK_OPT_TYPE void* #else typedef int socklen_t; #define SOCK_OPT_TYPE char* #include #include #endif #include #include /* * fixes for older octave */ #if (OCTAVE_MAJOR_VERSION<4) || ( (OCTAVE_MAJOR_VERSION==4) && (OCTAVE_MINOR_VERSION<4)) // changed for 4.4 #define isempty is_empty #define isstruct is_map #endif /* * macro for defining all the socket constants as * octave functions. */ # define DEFUN_DLD_SOCKET_CONSTANT_VALUE(name, value)\ DEFUNX_DLD ( #name, F ## name, G ## name, args, nargout, \ "socket constant") \ { return octave_value(value); }; # define DEFUN_DLD_SOCKET_CONSTANT(name)\ DEFUNX_DLD ( #name, F ## name, G ## name, args, nargout, \ "socket constant") \ { return octave_value( name ); }; # define DEFUN_DLD_UNIMPLMENTED_SOCKET_CONSTANT(name)\ DEFUNX_DLD ( #name, F ## name, G ## name, args, nargout, \ "socket constant") \ { error (#name " is not supported on this platform."); return octave_value(); }; // PKG_ADD: autoload ("AF_UNSPEC", which ("socket")); // PKG_DEL: try; autoload ("AF_UNSPEC", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(AF_UNSPEC ); // PKG_ADD: autoload ("AF_UNIX", which ("socket")); // PKG_DEL: try; autoload ("AF_UNIX", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(AF_UNIX ); #ifndef __WIN32__ // PKG_ADD: autoload ("AF_LOCAL", which ("socket")); // PKG_DEL: try; autoload ("AF_LOCAL", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(AF_LOCAL ); #else DEFUN_DLD_UNIMPLMENTED_SOCKET_CONSTANT(AF_LOCAL ); #endif // PKG_ADD: autoload ("AF_INET", which ("socket")); // PKG_DEL: try; autoload ("AF_INET", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(AF_INET ); // PKG_ADD: autoload ("AF_APPLETALK", which ("socket")); // PKG_DEL: try; autoload ("AF_APPLETALK", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(AF_APPLETALK ); //DEFUN_DLD_SOCKET_CONSTANT(AF_INET6 ); //DEFUN_DLD_SOCKET_CONSTANT(AF_IPX ); //DEFUN_DLD_SOCKET_CONSTANT(AF_NETLINK ); //DEFUN_DLD_SOCKET_CONSTANT(AF_X25 ); //DEFUN_DLD_SOCKET_CONSTANT(AF_AX25 ); //DEFUN_DLD_SOCKET_CONSTANT(AF_ATMPVC ); //DEFUN_DLD_SOCKET_CONSTANT(AF_PACKET ); // PKG_ADD: autoload ("SOCK_STREAM", which ("socket")); // PKG_DEL: try; autoload ("SOCK_STREAM", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SOCK_STREAM ); // PKG_ADD: autoload ("SOCK_DGRAM", which ("socket")); // PKG_DEL: try; autoload ("SOCK_DGRAM", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SOCK_DGRAM ); // PKG_ADD: autoload ("SOCK_SEQPACKET", which ("socket")); // PKG_DEL: try; autoload ("SOCK_SEQPACKET", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SOCK_SEQPACKET ); // PKG_ADD: autoload ("SOCK_RAW", which ("socket")); // PKG_DEL: try; autoload ("SOCK_RAW", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SOCK_RAW ); // PKG_ADD: autoload ("SOCK_RDM", which ("socket")); // PKG_DEL: try; autoload ("SOCK_RDM", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SOCK_RDM ); //DEFUN_DLD_SOCKET_CONSTANT(SOCK_PACKET ); // PKG_ADD: autoload ("MSG_PEEK", which ("socket")); // PKG_DEL: try; autoload ("MSG_PEEK", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(MSG_PEEK ); #ifdef MSG_DONTWAIT // PKG_ADD: autoload ("MSG_DONTWAIT", which ("socket")); // PKG_DEL: try; autoload ("MSG_DONTWAIT", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(MSG_DONTWAIT ); #else DEFUN_DLD_UNIMPLMENTED_SOCKET_CONSTANT(MSG_DONTWAIT ); #endif #ifdef MSG_WAITALL // PKG_ADD: autoload ("MSG_WAITALL", which ("socket")); // PKG_DEL: try; autoload ("MSG_WAITALL", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(MSG_WAITALL ); #else #define MSG_WAITALL -1 DEFUN_DLD_UNIMPLMENTED_SOCKET_CONSTANT(MSG_WAITALL ); #endif // PKG_ADD: autoload ("SOL_SOCKET", which ("socket")); // PKG_DEL: try; autoload ("SOL_SOCKET", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SOL_SOCKET ); // PKG_ADD: autoload ("SO_KEEPALIVE", which ("socket")); // PKG_DEL: try; autoload ("SO_KEEPALIVE", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SO_KEEPALIVE ); // PKG_ADD: autoload ("SO_REUSEADDR", which ("socket")); // PKG_DEL: try; autoload ("SO_REUSEADDR", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SO_REUSEADDR ); // PKG_ADD: autoload ("SO_TYPE", which ("socket")); // PKG_DEL: try; autoload ("SO_TYPE", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SO_TYPE ); #ifdef SO_DONTROUTE // PKG_ADD: autoload ("SO_DONTROUTE", which ("socket")); // PKG_DEL: try; autoload ("SO_DONTROUTE", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SO_DONTROUTE ); #else #define SO_DONTROUTE -1 DEFUN_DLD_UNIMPLMENTED_SOCKET_CONSTANT(SO_DONTROUTE ); #endif #ifdef SO_BROADCAST // PKG_ADD: autoload ("SO_BROADCAST", which ("socket")); // PKG_DEL: try; autoload ("SO_BROADCAST", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SO_BROADCAST ); #else #define SO_BROADCAST -1 DEFUN_DLD_UNIMPLMENTED_SOCKET_CONSTANT(SO_BROADCAST ); #endif #ifdef SO_DEBUG // PKG_ADD: autoload ("SO_DEBUG", which ("socket")); // PKG_DEL: try; autoload ("SO_DEBUG", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(SO_DEBUG ); #else #define S_DEBUG -1 DEFUN_DLD_UNIMPLMENTED_SOCKET_CONSTANT(SO_DEBUG ); #endif // PKG_ADD: autoload ("SHUT_RD", which ("socket")); // PKG_DEL: try; autoload ("SHUT_RD", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT_VALUE(SHUT_RD, 0); // PKG_ADD: autoload ("SHUT_WR", which ("socket")); // PKG_DEL: try; autoload ("SHUT_WR", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT_VALUE(SHUT_WR, 1); // PKG_ADD: autoload ("SHUT_RDWR", which ("socket")); // PKG_DEL: try; autoload ("SHUT_RDWR", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT_VALUE(SHUT_RDWR, 2); // A few well known IPPROTO_ values // PKG_ADD: autoload ("IPPROTO_IP", which ("socket")); // PKG_DEL: try; autoload ("IPPROTO_IP", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(IPPROTO_IP); // PKG_ADD: autoload ("IPPROTO_ICMP", which ("socket")); // PKG_DEL: try; autoload ("IPPROTO_ICMP", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(IPPROTO_ICMP); // PKG_ADD: autoload ("IPPROTO_TCP", which ("socket")); // PKG_DEL: try; autoload ("IPPROTO_TCP", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(IPPROTO_TCP); // PKG_ADD: autoload ("IPPROTO_UDP", which ("socket")); // PKG_DEL: try; autoload ("IPPROTO_UDP", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(IPPROTO_UDP); // AI flags // PKG_ADD: autoload ("AI_PASSIVE", which ("socket")); // PKG_DEL: try; autoload ("AI_PASSIVE", which ("socket"), "remove"); catch; end; DEFUN_DLD_SOCKET_CONSTANT(AI_PASSIVE); // PKG_ADD: autoload ("AI_NUMERICSERV", which ("socket")); // PKG_DEL: try; autoload ("AI_NUMERICSERV", which ("socket"), "remove"); catch; end; #ifdef AI_NUMERICSERV DEFUN_DLD_SOCKET_CONSTANT(AI_NUMERICSERV); #else DEFUN_DLD_UNIMPLMENTED_SOCKET_CONSTANT(AI_NUMERICSERV ); #endif // PKG_ADD: autoload ("AI_V4MAPPED", which ("socket")); // PKG_DEL: try; autoload ("AI_V4MAPPED", which ("socket"), "remove"); catch; end; #ifdef AI_V4MAPPED DEFUN_DLD_SOCKET_CONSTANT(AI_V4MAPPED); #else DEFUN_DLD_UNIMPLMENTED_SOCKET_CONSTANT(AI_V4MAPPED); #endif // PKG_ADD: autoload ("AI_ADDRCONFIG", which ("socket")); // PKG_DEL: try; autoload ("AI_ADDRCONFIG", which ("socket"), "remove"); catch; end; #ifdef AI_ADDRCONFIG DEFUN_DLD_SOCKET_CONSTANT(AI_ADDRCONFIG); #else DEFUN_DLD_UNIMPLMENTED_SOCKET_CONSTANT(AI_ADDRCONFIG); #endif // PKG_ADD: autoload ("AI_ALL", which ("socket")); // PKG_DEL: try; autoload ("AI_ALL", which ("socket"), "remove"); catch; end; #ifdef AI_ALL DEFUN_DLD_SOCKET_CONSTANT(AI_ALL); #else DEFUN_DLD_UNIMPLMENTED_SOCKET_CONSTANT(AI_ALL); #endif //we need to keep track if sockets has been loaded, as it //requires initialization on windows platforms. #ifdef __WIN32__ static bool type_loaded = false; #endif // PKG_ADD: autoload ("socket", which ("socket")); // PKG_DEL: try; autoload ("socket", which ("socket"), "remove"); catch; end; // Function to create a socket DEFUN_DLD(socket, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{sock} =} socket ()\n\ @deftypefnx {Loadable Function} {@var{sock} =} socket (@var{domain})\n\ @deftypefnx {Loadable Function} {@var{sock} =} socket (@var{domain}, @var{type})\n\ @deftypefnx {Loadable Function} {@var{sock} =} socket (@var{domain}, @var{type}, @var{protocol})\n\ Creates a socket.\n\ \n\ @var{domain} is an integer, where the value AF_INET\n\ can be used to create an IPv4 socket.\n\ \n\ @var{type} is an integer describing the socket. When using IP, specifying\n\ SOCK_STREAM gives a TCP socket.\n\ \n\ @var{protocol} is currently not used and should be 0 if specified.\n\ \n\ If no input arguments are given, default values AF_INET and\n\ SOCK_STREAM are used.\n\ \n\ See the local @command{socket} reference for more details.\n\ @end deftypefn") { int domain = AF_INET; int type = SOCK_STREAM; int protocol = 0; #ifdef __WIN32__ if (! type_loaded) { type_loaded = true; WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD (2, 2); err = WSAStartup (wVersionRequested, &wsaData); if (err != 0) { error ("socket: could not initialize winsock library"); return octave_value(); } } #endif // Convert the arguments to their #define'd value const octave_idx_type nargin = args.length (); if (nargin > 0) { if (! args(0).is_real_scalar ()) { error ("socket: DOMAIN must be a scalar integer"); return octave_value (); } domain = args(0).int_value (); } if (nargin > 1) { if (! args(0).is_real_scalar ()) { error ("socket: TYPE must be a scalar integer"); return octave_value (); } type = args(1).int_value (); } if (nargin > 2) { if (! args(0).is_real_scalar ()) { error ("socket: PROTOCOL must be a scalar integer"); return octave_value (); } protocol = args(2).int_value (); if (protocol != 0) { error ("socket: for now, PROTOCOL must always be 0 (zero)"); return octave_value (); } } // Create the new socket const int sock_fd = ::socket (domain, type, protocol); if (sock_fd == -1) error ("socket failed with error %i (%s)", errno, strerror(errno)); return octave_value(sock_fd); } /* * helper function to convert an octave value to an integer, * returning -1 if it failed. */ int get_socket(const octave_value& arg) { if (! arg.is_real_scalar ()) { return -1; } const int fd = arg.int_value(); return fd; } /* * closes the given socket file descriptor */ inline void close_octavesocket(const int sock_fd) { #ifndef __WIN32__ ::close (sock_fd); #else ::closesocket (sock_fd); #endif } // PKG_ADD: autoload ("connect", which ("socket")); // PKG_DEL: try; autoload ("connect", which ("socket"), "remove"); catch; end; // function to create an outgoing connection DEFUN_DLD(connect, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {} connect (@var{s}, @var{serverinfo})\n\ Connect socket.\n\ \n\ Connects the socket @var{s} following the information\n\ in the struct @var{serverinfo} which must contain the\n\ following fields:\n\ \n\ @table @code\n\ @item addr\n\ a string with the host name to connect to\n\ \n\ @item port\n\ the port number to connect to (an integer)\n\ @end table\n\ \n\ On successful connect, the returned status is zero.\n\ \n\ See the @command{connect} man pages for further details.\n\ @end deftypefn") { if (args.length () != 2) { print_usage (); return octave_value (); } // Determine the socket on which to operate const int s = get_socket (args(0)); if (s == -1) { error ("connect: S must be a valid socket"); return octave_value (); } // Extract information about the server to connect to. const octave_scalar_map struct_serverInfo = args(1).scalar_map_value (); if (struct_serverInfo.nfields () == 0) { error ("connect: SERVERINFO must be a struct"); return octave_value (); } if(! (struct_serverInfo.contains ("addr") && struct_serverInfo.contains ("port"))) { error ("connect: SERVERINFO must have a string and integer in fields \"addr\" and \"port\""); return octave_value (); } if(! (struct_serverInfo.getfield ("addr").is_string() && struct_serverInfo.getfield ("port").is_real_scalar())) { error ("connect: SERVERINFO must have a string and integer in fields \"addr\" and \"port\""); return octave_value (); } const std::string addr = struct_serverInfo.getfield ("addr").string_value (); const int port = struct_serverInfo.getfield ("port").int_value (); if (addr.empty ()) { error ("connect: SERVERINFO addr is an empty string"); return octave_value (); } // Fill in the server info struct struct sockaddr_in serverInfo; serverInfo.sin_family = AF_INET; struct hostent* hostInfo = gethostbyname (addr.c_str ()); if (! hostInfo) { error ("connect: error in gethostbyname()"); return octave_value (); } serverInfo.sin_addr.s_addr = *((long*)hostInfo->h_addr_list[0]); serverInfo.sin_port = htons(port); const int retval = connect (s, (struct sockaddr*)&serverInfo, sizeof (struct sockaddr)); if (retval == -1) error ("connect failed with error %i (%s)", errno, strerror(errno)); return octave_value (retval); } // PKG_ADD: autoload ("disconnect", which ("socket")); // PKG_DEL: try ; autoload ("disconnect", which ("socket"), "remove") ; catch ; end; // function to disconnect asocket DEFUN_DLD(disconnect, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {} disconnect (@var{s})\n\ Disconnect socket.\n\ \n\ Disconnects the socket @var{s}. If successful, @code{disconnect} returns 0,\n\ otherwise, it returns -1.\n\ \n\ Since we can't call fclose on the file descriptor directly, use this\n\ function to disconnect the socket.\n\ \n\ @end deftypefn") { if (args.length () != 1) { print_usage (); return octave_value (); } int retval = -1; const int s = get_socket (args(0)); if (s != -1) { close_octavesocket(s); retval = 0; } return octave_value (retval); } // PKG_ADD: autoload ("getaddrinfo", which ("socket")); // PKG_DEL: try; autoload ("getaddrinfo", which ("socket"), "remove"); ; catch; end; // function to get a host information from a host name/service DEFUN_DLD(getaddrinfo, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{addrinforesults} =} getaddrinfo (@var{hostname}, @var{service}, @var{hints})\n\ Get addressinfo lookup for a hostname/service.\n\ \n\ Returns an array of addressinfo structs with the following fields:\n\ \n\ @table @code\n\ @item family\n\ Integer family value\n\ @item socktype\n\ Integer socktype value\n\ @item protocol\n\ Integer protocol value\n\ @item addr\n\ a string with the host name to send to\n\ \n\ @item port\n\ the port number to send to (an integer)\n\ @end table\n\ \n\ hints is optional with one or more fields:\n\ \n\ @table @code\n\ @item family\n\ Integer family value\n\ @item socktype\n\ Integer socktype value\n\ @item protocol\n\ Integer protocol value\n\ @item flags\n\ a integer ai flags\n\ @end table\n\ \ \n\ See the @command{getaddrinfo} man pages for details.\n\ \n\ @end deftypefn") { const int nargin = args.length (); if (nargin < 2 || nargin > 3) { print_usage (); return octave_value (); } if (! args(0).is_string ()) { error ("getaddrinfo: HOSTNAME must be a string"); return octave_value (); } const std::string addr = args(0).string_value (); if (! args(1).is_string ()) { error ("getaddrinfo: SERVICE must be a string"); return octave_value (); } const std::string service = args(1).string_value (); struct addrinfo hints; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_INET; /* ipv4 */ hints.ai_socktype = SOCK_STREAM; /* any type */ hints.ai_flags = 0; //AI_PASSIVE; /* For wildcard IP address */ hints.ai_protocol = 0; /* Any protocol */ hints.ai_canonname = NULL; hints.ai_addr = NULL; hints.ai_next = NULL; if (nargin > 2 && !args(2).isempty()) { const octave_scalar_map struct_hint_info = args(2).scalar_map_value (); if (struct_hint_info.nfields () == 0) { error ("getaddrinfo: HINTS must be a struct"); return octave_value (); } // family, socktype, flags, protocol if (struct_hint_info.contains ("family")) { if (struct_hint_info.getfield ("family").is_real_scalar ()) hints.ai_family = struct_hint_info.getfield ("family").int_value(); else { error ("getaddrinfo: HINTS.family must be an integer value"); return octave_value (); } } if (struct_hint_info.contains ("socktype")) { if (struct_hint_info.getfield ("socktype").is_real_scalar ()) hints.ai_socktype = struct_hint_info.getfield ("socktype").int_value(); else { error ("getaddrinfo: HINTS.socktype must be an integer value"); return octave_value (); } } if (struct_hint_info.contains ("flags")) { if (struct_hint_info.getfield ("flags").is_real_scalar ()) hints.ai_flags = struct_hint_info.getfield ("flags").int_value(); else { error ("getaddrinfo: HINTS.flags must be an integer value"); return octave_value (); } } if (struct_hint_info.contains ("protocol")) { if (struct_hint_info.getfield ("protocol").is_real_scalar ()) hints.ai_protocol = struct_hint_info.getfield ("protocol").int_value(); else { error ("getaddrinfo: HINTS.protocol must be an integer value"); return octave_value (); } } } int status; struct addrinfo *result, *rp; if ((status = getaddrinfo ( addr.empty() ? NULL : addr.c_str(), service.empty() ? NULL : service.c_str(), &hints, &result)) != 0) { error ("getaddrinfo: Failed to get info - error %d", status); return octave_value (); } std::vector result_array; for (rp = result; rp != NULL; rp = rp->ai_next) { octave_scalar_map client_info_map; client_info_map.assign ("family", octave_value (rp->ai_family)); client_info_map.assign ("socktype", octave_value (rp->ai_socktype)); client_info_map.assign ("protocol", octave_value (rp->ai_protocol)); // there would normally be addr // TODO: depend on family here sockaddr_in * addr = (sockaddr_in*)rp->ai_addr; client_info_map.assign ("port", octave_value (ntohs(addr->sin_port))); client_info_map.assign ("addr", octave_value (inet_ntoa(addr->sin_addr))); result_array.push_back(octave_value(client_info_map)); } freeaddrinfo(result); // free the linked-list Cell cell(result_array.size(), 1); for(octave_idx_type i=0; i<(octave_idx_type)result_array.size(); i++) cell(i, 0) = result_array[i]; octave_value_list ret; ret(0) = cell; return ret; } // PKG_ADD: autoload ("gethostbyname", which ("socket")); // PKG_DEL: try; autoload ("gethostbyname", which ("socket"), "remove"); ; catch; end; // function to get a host number from a host name DEFUN_DLD(gethostbyname, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{ipaddress} =} gethostbyname (@var{hostname})\n\ Return IP address for host name.\n\ \n\ For example:\n\ \n\ @example\n\ @group\n\ gethostbyname (\"localhost\")\n\ @result{} 127.0.0.1\n\ @end group\n\ @end example\n\ \n\ See the @command{gethostbyname} man pages for details.\n\ \n\ @end deftypefn") { const int nargin = args.length (); if (nargin != 1) { print_usage (); return octave_value (); } if (! args(0).is_string ()) { error ("gethostbyname: HOSTNAME must be a string"); return octave_value (); } const std::string addr = args(0).string_value (); string_vector host_list; struct hostent* hostInfo = gethostbyname (addr.c_str ()); if (hostInfo) { for (int i = 0 ; i < hostInfo->h_length/4; i++) { std::string temp_addr = inet_ntoa (*(struct in_addr*)hostInfo->h_addr_list[i]); host_list.append (temp_addr); } } return octave_value (host_list); } // PKG_ADD: autoload ("send", which ("socket")); // PKG_DEL: try; autoload ("send", which ("socket"), "remove"); catch; end; // function to send data over a socket DEFUN_DLD(send, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{retval} =} send (@var{s}, @var{data})\n\ @deftypefnx {Loadable Function} {@var{retval} =} send (@var{s}, @var{data}, @var{flags})\n\ Send data on specified socket.\n\ \n\ Sends data on socket @var{s}. @var{data} should be an uint8 array or\n\ a string.\n\ \n\ See the @command{send} man pages for further details.\n\ \n\ @end deftypefn") { const octave_idx_type nargin = args.length (); if (nargin < 2 || nargin > 3) { print_usage (); return octave_value (); } int flags = 0; if (nargin > 2) { if (! args(2).is_real_scalar ()) { error ("send: FLAGS must be a scalar integer"); return octave_value (); } flags = args(2).int_value (); } // Determine the socket on which to operate const int s = get_socket (args(0)); if (s == -1) { error ("send: s must be a valid socket"); return octave_value (); } int retval = -1; // Extract the data from the octave variable and send it const octave_base_value& data = args(1).get_rep (); if (data.is_string ()) { std::string buf = data.string_value (); retval = ::send (s, buf.c_str (), buf.length (), flags); } else if (data.byte_size () == size_t (data.numel ())) { const NDArray d1 = data.array_value (); const octave_idx_type length = d1.numel (); const double* d1fvec = d1.data (); OCTAVE_LOCAL_BUFFER (unsigned char, buf, length); for (int i = 0 ; i < length; i++) buf[i] = (unsigned char)d1fvec[i]; //hmm, flags are set to 0, unlike the call above! retval = ::send (s, (const char*)buf, data.byte_size (), 0); } else { error( "connect: invalid DATA to send. Please format it prior to sending" ); return octave_value (); } return octave_value (retval); } // PKG_ADD: autoload ("recv", which ("socket")); // PKG_DEL: try; autoload ("recv", which ("socket"), "remove"); catch; end; // function to receive data over a socket DEFUN_DLD(recv, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {[@var{data}, @var{count}] =} recv (@var{s}, @var{len})\n\ @deftypefnx {Loadable Function} {[@var{data}, @var{count}] =} recv (@var{s}, @var{len}, @var{flags})\n\ Read data from specified socket.\n\ \n\ Requests reading @var{len} bytes from the socket @var{s}.\n\ The optional integer @var{flags} parameter can be used to modify the\n\ behaviour of @code{recv}.\n\ \n\ The read data is returned in the uint8 array @var{data}. The number of\n\ bytes read is returned in @var{count}.\n\ \n\ You can get non-blocking operation by using the flag @code{MSG_DONTWAIT}\n\ which makes the @code{recv()} call return immediately. If there is no\n\ data, -1 is returned in count.\n\ \n\ See the @command{recv} man pages for further details.\n\ \n\ @end deftypefn") { const octave_idx_type nargin = args.length (); int retval = 0; int flags = 0; if (nargin < 2 || nargin > 3) { print_usage (); return octave_value (); } if (nargin > 2) { if (! args(2).is_real_scalar ()) { error ("recv: FLAGS must be a scalar integer"); return octave_value (); } flags = args(2).int_value (); } // Determine the socket on which to operate const int s = get_socket (args(0)); if (s == -1) { error ("recv: S must be a valid socket"); return octave_value (); } if (! args(1).is_real_scalar ()) { error ("recv: LEN must be a non-negative integer"); return octave_value (-1); } const long len = args(1).int_value (); if (len < 0) { error ("recv: LEN must be a non-negative integer"); return octave_value(-1); } OCTAVE_LOCAL_BUFFER (unsigned char, buf, len); #ifndef __WIN32__ retval = ::recv( s, buf, len, flags ); #else retval = ::recv( s, ( char* )buf, len, flags ); #endif octave_value_list return_list; uint8NDArray data; //always return the status in the second output parameter return_list(1) = retval; if (retval <= 0) // We get -1 if an error occurs,or if there is no data and the // socket is non-blocking. We should return in both cases. // We get 0 if the peer has shut down. return_list(0) = data; else { //Normal behaviour. Copy the buffer to the output variable. For //backward compatibility, a row vector is returned. data.resize (dim_vector (1, retval)); octave_uint8* data_fvec = data.fortran_vec (); for (int i = 0 ; i < retval ; i++) data_fvec[i] = buf[i]; return_list(0) = data; } return return_list; } // PKG_ADD: autoload ("bind", which ("socket")); // PKG_DEL: try; autoload ("bind", which ("socket"), "remove"); catch; end; // function to bind a socket DEFUN_DLD(bind, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {} bind (@var{s}, @var{portnumber})\n\ Bind specific socket to port number.\n\ \n\ See the @command{bind} man pages for further details.\n\ \n\ @end deftypefn") { if (args.length () != 2) { print_usage (); return octave_value (); } // Determine the socket on which to operate const int s = get_socket (args(0)); if (s == -1) { error ("bind: S must be a valid socket"); return octave_value (); } if (! args(1).is_real_scalar ()) { error ("bind: PORT must be a scalar integer"); return octave_value (-1); } const long port = args(1).int_value (); struct sockaddr_in serverInfo; serverInfo.sin_family = AF_INET; serverInfo.sin_port = htons (port); serverInfo.sin_addr.s_addr = INADDR_ANY; int retval = ::bind (s, (struct sockaddr *)&serverInfo, sizeof (serverInfo)); if (retval == -1) error ("bind failed with error %i (%s)", errno, strerror(errno)); return octave_value (retval); } // PKG_ADD: autoload ("listen", which ("socket")); // PKG_DEL: try; autoload ("listen", which ("socket"), "remove"); catch; end; // function to listen on a socket DEFUN_DLD(listen, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {} listen (@var{s}, @var{backlog})\n\ Listen on socket for connections.\n\ \n\ Listens on socket @var{s} for connections. @var{backlog} specifies\n\ how large the queue of incoming connections is allowed to\n\ grow.\n\ \n\ On success, zero is returned.\n\ \n\ See the @command{listen} man pages for further details.\n\ \n\ @end deftypefn") { if (args.length() != 2) { print_usage (); return octave_value (); } // Determine the socket on which to operate const int s = get_socket (args(0)); if (s == -1) { error ("listen: S must be a valid socket"); return octave_value (); } if (! args(1).is_real_scalar ()) { error ("listen: BACKLOG must be an integer scalar"); return octave_value (-1); } const int backlog = args(1).int_value (); const int retval = ::listen (s, backlog); if (retval == -1) error ("listen failed with error %i (%s)", errno, strerror(errno)); return octave_value (retval); } // PKG_ADD: autoload ("accept", which ("socket")); // PKG_DEL: try; autoload ("accept", which ("socket"), "remove"); catch; end; // function to accept on a listening socket DEFUN_DLD(accept,args,nargout, "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {[@var{client}, @var{info}] =} accept (@var{s})\n\ Accept incoming connection on specified socket.\n\ \n\ Accepts an incoming connection on the socket @var{s}.\n\ The newly created socket is returned in @var{client}, and\n\ associated information in a struct info.\n\ \n\ See the @command{accept} man pages for further details.\n\ \n\ @end deftypefn") { struct sockaddr_in clientInfo; socklen_t clientLen = sizeof (struct sockaddr_in); if (args.length () != 1) { print_usage (); return octave_value (); } // Determine the socket on which to operate const int s = get_socket (args(0)); if (s == -1) { error ("accept: S must be a valid socket"); return octave_value (); } #ifndef __WIN32__ int fd = ::accept( s, (struct sockaddr *)&clientInfo, &clientLen ); #else int fd = ::accept( s, (struct sockaddr *)&clientInfo, ( int* )&clientLen ); #endif if (fd == -1) { error ("accept failed with error %i (%s)", errno, strerror(errno)); return octave_value (); } #if 0 // create the octave_socket object and set the fd octave_socket* retobj = new octave_socket(fd); #endif // place the client information into a structure octave_scalar_map client_info_map; client_info_map.assign ("sin_family", octave_value (clientInfo.sin_family)); client_info_map.assign ("sin_port", octave_value (clientInfo.sin_port)); client_info_map.assign ("sin_addr", octave_value (inet_ntoa(clientInfo.sin_addr))); // returns the accepted socket and a clientinfo structure octave_value_list return_list; return_list(0) = octave_value (fd); return_list(1) = client_info_map; return return_list; } // PKG_ADD: autoload ("sendto", which ("socket")); // PKG_DEL: try; autoload ("sendto", which ("socket"), "remove"); catch; end; // function to send data over a socket DEFUN_DLD(sendto, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{retval} =} sendto (@var{s}, @var{data}, @var{dest_info})\n\ @deftypefnx {Loadable Function} {@var{retval} =} sendto (@var{s}, @var{data}, @var{flags}, @var{dest_info})\n\ Send data on specified socket.\n\ \n\ Sends data on socket @var{s} to destination. @var{data} should be an uint8 array or\n\ a string.\n\ \n\ The dest_info struct @var{dest_info} must contain the\n\ following fields:\n\ \n\ @table @code\n\ @item addr\n\ a string with the host name to send to\n\ \n\ @item port\n\ the port number to send to (an integer)\n\ @end table\n\ \n\ See the @command{sendto} man pages for further details.\n\ \n\ @end deftypefn") { const octave_idx_type nargin = args.length (); if (nargin < 3 || nargin > 4) { print_usage (); return octave_value (); } int dest_info_pos = 2; int flags = 0; if (nargin == 4) { if (! args(2).is_real_scalar ()) { error ("send: FLAGS must be a scalar integer"); return octave_value (); } dest_info_pos = 3; } // Determine the socket on which to operate const int s = get_socket (args(0)); if (s == -1) { error ("send: s must be a valid socket"); return octave_value (); } // Extract information about the server to send to. const octave_scalar_map struct_dest_info = args(dest_info_pos).scalar_map_value (); if (struct_dest_info.nfields () == 0) { error ("sendto: DESTINFO must be a struct"); return octave_value (); } if(! (struct_dest_info.contains ("addr") && struct_dest_info.contains ("port"))) { error ("sendto: DESTINFO must have a string and integer in fields \"addr\" and \"port\""); return octave_value (); } if(! (struct_dest_info.getfield ("addr").is_string() && struct_dest_info.getfield ("port").is_real_scalar())) { error ("sendto: DESTINFO must have a string and integer in fields \"addr\" and \"port\""); return octave_value (); } const std::string addr = struct_dest_info.getfield ("addr").string_value (); const int port = struct_dest_info.getfield ("port").int_value (); if (addr.empty ()) { error ("sendto: DESTINFO addr is an empty string"); return octave_value (); } // Fill in the dest info struct struct sockaddr_in dest_info; memset(&dest_info, 0, sizeof(dest_info)); dest_info.sin_family = AF_INET; struct hostent* hostInfo = gethostbyname (addr.c_str ()); if (! hostInfo) { error ("sendto: error in gethostbyname()"); return octave_value (); } dest_info.sin_addr.s_addr = *((long*)hostInfo->h_addr_list[0]); dest_info.sin_port = htons(port); int retval = -1; // Extract the data from the octave variable and send it const octave_base_value& data = args(1).get_rep (); if (data.is_string ()) { std::string buf = data.string_value (); retval = ::sendto (s, buf.c_str (), buf.length (), flags, (sockaddr*)&dest_info, sizeof(dest_info)); } else if (data.byte_size () == size_t (data.numel ())) { const NDArray d1 = data.array_value (); const octave_idx_type length = d1.numel (); const double* d1fvec = d1.data (); OCTAVE_LOCAL_BUFFER (unsigned char, buf, length); for (int i = 0 ; i < length; i++) buf[i] = (unsigned char)d1fvec[i]; //hmm, flags are set to 0, unlike the call above! retval = ::sendto (s, (const char*)buf, data.byte_size (), flags, (sockaddr*)&dest_info, sizeof(dest_info)); } else { error( "sendto: invalid DATA to send. Please format it prior to sending" ); return octave_value (); } return octave_value (retval); } // PKG_ADD: autoload ("recvfrom", which ("socket")); // PKG_DEL: try; autoload ("recvfrom", which ("socket"), "remove"); catch; end; // function to receive data over a socket DEFUN_DLD(recvfrom, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {[@var{data}, @var{count}, @var{src_info}] =} recvfrom (@var{s}, @var{len})\n\ @deftypefnx {Loadable Function} {[@var{data}, @var{count}, @var{src_info}] =} recvfrom (@var{s}, @var{len}, @var{flags})\n\ Read data from specified socket.\n\ \n\ Requests reading @var{len} bytes from the socket @var{s}.\n\ The optional integer @var{flags} parameter can be used to modify the\n\ behaviour of @code{recvfrom}.\n\ \n\ The read data is returned in the uint8 array @var{data}. The number of\n\ bytes read is returned in @var{count} and a structure with fields addr and port contain the source of the\n\ data.\n\ \n\ You can get non-blocking operation by using the flag @code{MSG_DONTWAIT}\n\ which makes the @code{recvfrom()} call return immediately. If there is no\n\ data, -1 is returned in count.\n\ \n\ See the @command{recvfrom} man pages for further details.\n\ \n\ @end deftypefn") { const octave_idx_type nargin = args.length (); int retval = 0; int flags = 0; if (nargin < 2 || nargin > 3) { print_usage (); return octave_value (); } if (nargin > 2) { if (! args(2).is_real_scalar ()) { error ("recv: FLAGS must be a scalar integer"); return octave_value (); } flags = args(2).int_value (); } // Determine the socket on which to operate const int s = get_socket (args(0)); if (s == -1) { error ("recv: S must be a valid socket"); return octave_value (); } if (! args(1).is_real_scalar ()) { error ("recv: LEN must be a non-negative integer"); return octave_value (-1); } const long len = args(1).int_value (); if (len < 0) { error ("recv: LEN must be a non-negative integer"); return octave_value(-1); } struct sockaddr_in src_addr; #ifndef __WIN32__ socklen_t addrlen = sizeof(src_addr); #else int addrlen = sizeof(src_addr); #endif OCTAVE_LOCAL_BUFFER (unsigned char, buf, len); #ifndef __WIN32__ retval = ::recvfrom( s, buf, len, flags, (sockaddr*)&src_addr, &addrlen ); #else retval = ::recvfrom( s, ( char* )buf, len, flags, (sockaddr*)&src_addr, &addrlen ); #endif octave_value_list return_list; uint8NDArray data; octave_scalar_map client_info_map; //always return the status in the second output parameter return_list(1) = retval; return_list(2) = client_info_map; if (retval <= 0) // We get -1 if an error occurs,or if there is no data and the // socket is non-blocking. We should return in both cases. // We get 0 if the peer has shut down. return_list(0) = data; else { //Normal behaviour. Copy the buffer to the output variable. For //backward compatibility, a row vector is returned. data.resize (dim_vector (1, retval)); octave_uint8* data_fvec = data.fortran_vec (); for (int i = 0 ; i < retval ; i++) data_fvec[i] = buf[i]; return_list(0) = data; client_info_map.assign ("family", octave_value (src_addr.sin_family)); client_info_map.assign ("port", octave_value (htons(src_addr.sin_port))); client_info_map.assign ("addr", octave_value (inet_ntoa(src_addr.sin_addr))); return_list(2) = client_info_map; } return return_list; } // PKG_ADD: autoload ("getsockopt", which ("socket")); // PKG_DEL: try; autoload ("getsockopt", which ("socket"), "remove"); catch; end; // function to get socket option DEFUN_DLD(getsockopt,args,nargout, "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {[@var{data}, @var{status}] =} getsockopt (@var{s}, @var{level}, @var{optname})\n\ Get a socket option value from a socket.\n\ \n\ Returns the value of @var{level} @var{optname} from the socket @var{s}.\n\ \n\ Data type depends on the option used. @var{status} returns as 0 if no error.\n\ \n\ See the @command{getsockopt} man pages for further details.\n\ \n\ @end deftypefn") { if (args.length () != 3) { print_usage (); return octave_value (); } // Determine the socket on which to operate const int s = get_socket (args(0)); if (s == -1) { error ("getsockopt: S must be a valid socket"); return octave_value (); } if (! args(1).is_real_scalar ()) { error ("getsockopt: LEVEL must be a scalar integer"); return octave_value (-1); } if (! args(2).is_real_scalar ()) { error ("getsockopt: OPTNAME must be a scalar integer"); return octave_value (-1); } const int level = args(1).int_value (); const int optname = args(2).int_value (); if (level != SOL_SOCKET) { error ("getsockopt: currently only a level of SOL_SOCKET is supported"); return octave_value (-1); } socklen_t optlen; SOCK_OPT_TYPE optvalue; #ifndef __WIN32__ int ivalue = 0; #else DWORD ivalue = 0; #endif if (optname == SO_KEEPALIVE || optname == SO_REUSEADDR || optname == SO_TYPE || optname == SO_DONTROUTE || optname == SO_BROADCAST || optname == SO_DEBUG) { optlen = sizeof(ivalue); optvalue = (SOCK_OPT_TYPE)&ivalue; } else { error ("getsockopt: currently unimplmented or unknown socket optname"); return octave_value (-1); } int result = ::getsockopt( s, level, optname, optvalue, &optlen); octave_value value; if(result == 0) { if (optname == SO_KEEPALIVE || optname == SO_REUSEADDR || optname == SO_TYPE || optname == SO_DONTROUTE || optname == SO_BROADCAST || optname == SO_DEBUG) value = octave_value(ivalue); } // returns the accepted socket and a clientinfo structure octave_value_list return_list; return_list(0) = value; return_list(1) = octave_value(result); return return_list; } // PKG_ADD: autoload ("setsockopt", which ("socket")); // PKG_DEL: try; autoload ("setsockopt", which ("socket"), "remove"); catch; end; // function to get socket option DEFUN_DLD(setsockopt,args,nargout, "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{status} =} setsockopt (@var{s}, @var{level}, @var{optname}, @var{optvalue})\n\ Set a socket option value on a socket.\n\ \n\ @var{status} returns as 0 if no error.\n\ \n\ See the @command{setsockopt} man pages for further details.\n\ \n\ @end deftypefn") { if (args.length () != 4) { print_usage (); return octave_value (); } // Determine the socket on which to operate const int s = get_socket (args(0)); if (s == -1) { error ("setsockopt: S must be a valid socket"); return octave_value (); } if (! args(1).is_real_scalar ()) { error ("setsockopt: LEVEL must be a scalar integer"); return octave_value (-1); } if (! args(2).is_real_scalar ()) { error ("setsockopt: OPTNAME must be a scalar integer"); return octave_value (-1); } const int level = args(1).int_value (); const int optname = args(2).int_value (); if (level != SOL_SOCKET) { error ("setsockopt: currently only a level of SOL_SOCKET is supported"); return octave_value (-1); } socklen_t optlen; SOCK_OPT_TYPE optvalue; #ifndef __WIN32__ int ivalue = 0; #else DWORD ivalue = 0; #endif if (optname == SO_KEEPALIVE || optname == SO_REUSEADDR || optname == SO_DONTROUTE || optname == SO_BROADCAST || optname == SO_DEBUG) { if (! args(3).is_real_scalar ()) { error ("setsockopt: OPTVALUE must be a scalar integer"); return octave_value (-1); } ivalue = args(3).int_value (); optlen = sizeof(ivalue); optvalue = (SOCK_OPT_TYPE)&ivalue; } else if (optname == SO_TYPE) { error ("setsockopt: can not set SO_TYPE"); return octave_value (-1); } else { error ("setsockopt: currently unimplemented or unknown socket optname"); return octave_value (-1); } int result = ::setsockopt( s, level, optname, optvalue, optlen); return octave_value(result); } // PKG_ADD: autoload ("select", which ("socket")); // PKG_DEL: try; autoload ("select", which ("socket"), "remove"); catch; end; // function wait for data on a socket DEFUN_DLD(select,args,nargout, "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {[@var{status}, @var{rfdset}, @var{wfdset}, @var{efdset}] =} select (@var{nfds}, @var{rfdset}, @var{wfdset}, @var{efdset}, @var{timeout})\n\ Wait for socket activity on selected sockets.\n\ \n\ The fdsets are vectors of fds to check, for example [1 2 3]. Empty vectors equate to null.\n\ \n\ nfds tests file descriptions in the range of 0 - nfds-1.\n\ \n\ Timeout is can be either an real value for number of seconds, a struct with a tm_sec and tm_usec fields, or empty set for null.\n\ \n\ @var{status} returns as 0 if timeout, or number of waiting sockets if ok.\n\ \n\ See the @command{select} man pages for further details.\n\ \n\ @end deftypefn") { if (args.length () != 5) { print_usage (); return octave_value (); } if (! args(0).is_real_scalar ()) { error ("select: NFDS must be a scalar integer"); return octave_value (-1); } if (! args(1).isempty () && ! args(1).is_real_matrix () && ! args(1).is_real_scalar ()) { error ("select: RFDS must be a vector"); return octave_value (-1); } if (! args(2).isempty () && ! args(2).is_real_matrix () && ! args(2).is_real_scalar ()) { error ("select: WFDS must be a vector"); return octave_value (-1); } if (! args(3).isempty () && ! args(3).is_real_matrix () && ! args(3).is_real_scalar ()) { error ("select: EFDS must be a vector"); return octave_value (-1); } // timeout if (! args(4).isempty ()) { if (!args(4).is_real_scalar ()) { if (!args(4).isstruct ()) { error ("select: TIMEOUT must be a real value or struct"); } else { const octave_scalar_map timeout = args(4).scalar_map_value (); if(! (timeout.contains ("tv_sec") && timeout.contains ("tv_usec"))) { error ("select: TIMEOUT must have integer fields \"tv_sec\" and \"tv_usec\""); return octave_value (); } if(! (timeout.getfield ("tv_sec").is_real_scalar() && timeout.getfield ("tv_usec").is_real_scalar())) { error ("select: TIMEOUT must have integer fields \"tv_sec\" and \"tv_usec\""); return octave_value (); } } } } // verify all the inputs are valid sockets ? fd_set wfdset, rfdset, efdset; fd_set *wfdsetp, *rfdsetp, *efdsetp; FD_ZERO (&wfdset); FD_ZERO (&rfdset); FD_ZERO (&efdset); const int nfds = args(0).int_value (); if (args(1).isempty()) { rfdsetp = NULL; } else { rfdsetp = &rfdset; const Array d1 = args(1).vector_value(); for (octave_idx_type i = 0 ; i < d1.numel(); i++) { FD_SET((int)d1(i), rfdsetp); } } if (args(2).isempty()) { wfdsetp = NULL; } else { wfdsetp = &wfdset; const Array d1 = args(2).vector_value(); for (octave_idx_type i = 0 ; i < d1.numel(); i++) { FD_SET((int)d1(i), wfdsetp); } } if (args(3).isempty()) { efdsetp = NULL; } else { efdsetp = &efdset; const Array d1 = args(3).vector_value(); for (octave_idx_type i = 0 ; i < d1.numel(); i++) { FD_SET((int)d1(i), efdsetp); } } struct timeval tv; struct timeval *tvp; if (args(4).isempty ()) { tvp = NULL; } else if (args(4).is_real_scalar ()) { tvp = &tv; double ivalue, fvalue; fvalue = modf(args(4).double_value(), &ivalue); tv.tv_sec = (long)ivalue; tv.tv_usec = (long)(fvalue * 1000000L); } else { tvp = &tv; const octave_scalar_map timeout = args(4).scalar_map_value (); tv.tv_sec = timeout.getfield ("tv_sec").long_value(); tv.tv_usec = timeout.getfield ("tv_usec").long_value(); } octave_value rret = Matrix(0,0); octave_value wret = Matrix(0,0); octave_value eret = Matrix(0,0); int result = ::select( nfds, rfdsetp, wfdsetp, efdsetp, tvp); if (result > 0) { if (! args(1).isempty()) { const Array d1 = args(1).vector_value(); std::vector selfd; for (octave_idx_type i = 0 ; i < d1.numel(); i++) { if (FD_ISSET((int)d1(i), rfdsetp)) { selfd.push_back((int)d1(i)); } } MArray arr(dim_vector(1,selfd.size())); for (octave_idx_type i = 0 ; i < (octave_idx_type)selfd.size(); i++) { arr(i) = selfd[i]; } if (selfd.size() > 0) rret = arr; } if (! args(2).isempty()) { const Array d1 = args(2).vector_value(); std::vector selfd; for (octave_idx_type i = 0 ; i < d1.numel(); i++) { if (FD_ISSET((int)d1(i), wfdsetp)) { selfd.push_back((int)d1(i)); } } MArray arr(dim_vector(1,selfd.size())); for (octave_idx_type i = 0 ; i < (octave_idx_type)selfd.size(); i++) { arr(i) = selfd[i]; } if (selfd.size() > 0) wret = arr; } if (! args(3).isempty()) { const Array d1 = args(3).vector_value(); std::vector selfd; for (octave_idx_type i = 0 ; i < d1.numel(); i++) { if (FD_ISSET((int)d1(i), efdsetp)) { selfd.push_back((int)d1(i)); } } MArray arr(dim_vector(1,selfd.size())); for (octave_idx_type i = 0 ; i < (octave_idx_type)selfd.size(); i++) { arr(i) = selfd[i]; } if (selfd.size() > 0) eret = arr; } } octave_value_list return_list; return_list(0) = octave_value(result); return_list(1) = octave_value(rret); return_list(2) = octave_value(wret); return_list(3) = octave_value(eret); return return_list; } // PKG_ADD: autoload ("shutdown", which ("socket")); // PKG_DEL: try; autoload ("shutdown", which ("socket"), "remove"); catch; end; // function to listen on a socket DEFUN_DLD(shutdown, args, , "\ -*- texinfo -*-\n\ @deftypefn {Loadable Function} {} shutdown (@var{s}, @var{how})\n\ Shutdown all or part of a connection of a socket.\n\ \n\ On success, zero is returned.\n\ \n\ See the @command{shutdown} man pages for further details.\n\ \n\ @end deftypefn") { if (args.length() != 2) { print_usage (); return octave_value (); } // Determine the socket on which to operate const int s = get_socket (args(0)); if (s == -1) { error ("shutdown: S must be a valid socket"); return octave_value (); } if (! args(1).is_real_scalar ()) { error ("shutdown: HOW must be an integer scalar"); return octave_value (-1); } const int how = args(1).int_value (); if(how < 0 || how > 2) { error ("shutdown: HOW must be an integer scalar between 0 and 2"); return octave_value (-1); } const int retval = ::shutdown (s, how); if (retval == -1) error ("shutdown failed with error %i (%s)", errno, strerror(errno)); return octave_value (retval); } /* %!test %! ## Server socket %! server = socket (AF_INET, SOCK_STREAM, 0); %! assert (server >= 0); %! %! rc = bind (server, 9001); %! assert (rc, 0); %! %! rc = listen (server, 1); %! assert (rc, 0); %! %! ## Client socket %! client = socket (AF_INET, SOCK_STREAM, 0); %! assert (client >= 0); %! %! ## Create the connection and accept the connection %! server_info = struct ("addr", "127.0.0.1", "port", 9001); %! rc = connect (client, server_info); %! assert (rc, 0); %! %! server_data = accept (server); %! assert (server_data >= 0); %! %! ## Send and receive data %! %! ## Send as string from client %! msg = "Hello socket-land!"; %! rc = send (client, msg); %! assert (rc,length (msg)); %! %! ## Receive at server %! [msg_s, len_s] = recv (server_data, 100); %! assert (msg_s != -1); %! assert (len_s, length (msg)); %! %! ## Send back out from server %! rc = send (server_data, msg_s); %! assert (rc, length (msg_s)); %! %! ## Receive at client %! [msg_c, len_c] = recv (client, 100); %! assert (msg_c != -1); %! assert (len_c, length (msg)); %! %! ## Compare original string with recv string %! assert (msg, num2str (msg_c, "%c")); %! %! assert (shutdown (client, SHUT_WR), 0); %! assert (shutdown (client, SHUT_RD), 0); %! assert (shutdown (client, SHUT_RDWR), 0); %! %! assert (disconnect (client), 0); %! assert (disconnect (server_data), 0); %! assert (disconnect (server), 0); %!test %! ## UDP %! sock = socket (AF_INET, SOCK_DGRAM, 0); %! assert (sock >= 0); %! %! rc = bind (sock, 9001); %! assert (rc, 0); %! %! msg = "Hello socket-land!"; %! addrinfo = struct ("addr", "127.0.0.1", "port", 9001); %! rc = sendto (sock, msg, 0, addrinfo); %! assert (rc,length (msg)); %! %! [msg_c, len_c, addr_c] = recvfrom (sock, 100); %! assert (msg_c != -1); %! assert (len_c, length (msg)); %! assert (addr_c.port, 9001); %! %! assert (msg, num2str (msg_c, "%c")); %! %! assert (disconnect (sock), 0); %!test %! assert (SOL_SOCKET != 0) %! assert (MSG_WAITALL != 0) %! assert (MSG_PEEK != 0) %! assert (SO_REUSEADDR != 0) %! assert (SO_KEEPALIVE != 0) %! assert (SO_TYPE != 0) %! assert (SHUT_RD, 0) %! assert (SHUT_WR, 1) %! assert (SHUT_RDWR, 2) %!test %! ## select %! sock = socket (AF_INET, SOCK_DGRAM, 0); %! assert (sock >= 0); %! %! rc = bind (sock, 9001); %! assert (rc, 0); %! %! [ret, rdfs, wdfs, edfs] = select(sock+1, [sock], [sock], [sock], 1); %! assert(ret, 1); %! assert(rdfs, []); %! # initial open %! assert(wdfs, [sock]); %! assert(edfs, []); %! %! start = tic; %! [ret, rdfs, wdfs, edfs] = select(sock+1, [sock], [], [], 1); %! timeout = toc(start); %! assert(ret, 0); %! assert(rdfs, []); %! assert(wdfs, []); %! assert(edfs, []); %! assert(timeout, 1, 0.01); %! %! timeout = struct ("tv_sec", 2, "tv_usec", 0); %! start = tic; %! [ret, rdfs, wdfs, edfs] = select(sock+1, [sock], [], [], timeout); %! timeout = toc(start); %! assert(ret, 0); %! assert(rdfs, []); %! assert(wdfs, []); %! assert(edfs, []); %! assert(timeout, 2, 0.01); %! %! msg = "Hello socket-land!"; %! addrinfo = struct ("addr", "127.0.0.1", "port", 9001); %! rc = sendto (sock, msg, 0, addrinfo); %! assert (rc,length (msg)); %! pause(1); %! %! [ret, rdfs, wdfs, edfs] = select(sock+1, [sock], [], [], .2); %! assert(ret, 1); %! assert(rdfs, [sock]); %! assert(wdfs, []); %! assert(edfs, []); %! %! [msg_c, len_c, addr_c] = recvfrom (sock, 100); %! assert (msg_c != -1); %! assert (len_c, length (msg)); %! assert (addr_c.port, 9001); %! %! [ret, rdfs, wdfs, edfs] = select(sock+1, [sock], [], [], .1); %! assert(ret, 0); %! assert(rdfs, []); %! assert(wdfs, []); %! assert(edfs, []); %! %! assert (disconnect (sock), 0); */ sockets-1.5.0/src/test_socket0000755000000000000000000000222215123475646013175 0ustar00#! /usr/local/bin/octave -q # Simple serialization function s = mat2str(a) s = [sprintf("%d ", size(a)) ":" sprintf("%g ", a)]; end function a = str2mat(s) i = strfind(s, ":"); a = str2num(s(i + 1:end)); d = str2num(s(1:i - 1)); a = reshape(a, d); end # Server. Accept incoming connections and send them a random matrix. function test_server() s = socket(AF_INET, SOCK_STREAM, 0); if s < 0 return end if bind(s, 9001) < 0 fprintf("bind failed\n"); return end if listen(s, 1) < 0 return end c = accept(s); if c < 0 return end # Send a matrix. a = rand(10); n = send(c, mat2str(a)); disconnect(c); disconnect(s); end # Client. Create a connection and read a result. function test_client() s = socket(AF_INET, SOCK_STREAM, 0); if s < 0 return end addr = struct("addr", "127.0.0.1", "port", 9001); if connect(s, addr) < 0 return end [d, l] = recv(s, 1000); if d == -1 return end d = num2str(d, '%c'); a = str2mat(d); disp(a); disconnect(s); end args = argv(); if length(args) < 1 printf("usage: test_socket [s|c]\nUse 's' first."); return end if args{1} == 's' test_server(); else test_client(); end